音视频之视频压缩及数字视频基础概念
系列文章:
1、音视频之视频压缩技术及数字视频综述
一、视频压缩编码技术综述:
1、信息化与视频通信:
什么是信息:
众所周知,人类社会的三大支柱是物质、能量和信息。具体而言,农业现代化的支柱是物质,工业现代化的支柱是能量,而信息化的支柱是信息。
广义地讲,信息就是客观世界的描述和分析,它无所不在、无时不在,具有广泛性和通用性,这是信息的一个特性。信息没有重量,没有长度,具有抽象性,但它确实存在,这是信息的另一个特性。
信息的第三个特性是无限性。例如,关于物质的信息,物质具有 无限的不可分性,物质由分子组成,分子由原子组成,下面还有中子、质子、电子、中微子等;关于通信网络的信息,为了增加通信容量,最初一对电话线只能通一路电话,后来利用N-ISDN技术,可在一 对电话线上同时通两路电话,以后又发展B-ISDN、ATM、IP、 MPLS,直到今天,通信网络技术仍在不断地发展,应该说,它具有无限性。
总之,信息具有通用性、抽象性、无限性三个特征,其中,无限性最重要。
什么是信息化:
信息化是这样一个过程:“在现代信息技术广为普及的基础上,通过开发和利用信息资源,各种社会和经济活动的功能和效益得以显著提高。人类社会的物质和精神文明达到了一个新的水平。”
可见,信息化的目的是提高人类的社会效益和经济效益,而实现 信息化的关键在于开发和利用各种信息资源。
信息化的实现依赖于图1.1所示的信息系统来构建。
信息化的实现首先要开发和利用各种信息资源,其次要有一个信息网络(如宽带通信网),通过该网络将大量信息传送到信息用户。
2、视频信息和信号的特点:
直观性:
利用人的视觉获取的信息称为视频信息,它具有直观性的特点。 话音信息则是利用人的听觉获取的信息。两者相比,视频信息给人印象深刻、具体,话音信息则相对较浅显。从信息交流的客观效果讲, 视频信息的效果更好。
确定性:
视频信息直观具体,不易和其他内容相混淆,能保证信息的准确性。而话音信息则会由于地方口音的不同产生歧义,导致不必要的损失。
高效性:
利用视觉,人们可以并行地观察一幅图像的各个像素,因而获取视频信息的效率比音频信息高得多。例如,通过一幅电机构建的图,人们可以很快搞清楚定子、转子及其相关位置,从而很快弄清电机的结构及其原理;如果人们没有这样的图,只是一味地听讲,通过音频信息去反复理解电机结构,仍可能搞不清楚,其接受的效率要低得多。
广泛性:
据统计,人们每天通过视觉获取的信息占外界信息总量的70%左 右。也就是说,人们每天获得的信息大部分是视觉信息。
视频信号的高带宽性:
视频信息的表示形式是视频信号,通常为视频的电信号。视频信号通过网络传送至终端用户,并在屏幕上显示。
视频信号所包含的信息量大,其内容可以是活动的,也可以是静止的;可以是彩色的,也可以是黑白的;有时变化多、细节多,有时十分平坦。一般而言,视频信号信息量大,传输网络所需要的带宽相对较宽。
视频信息虽然具有直观性、确定性、高效性等优越性能,但要传送包含视频信息的信号却需要较高的网络带宽,这就是为获得视频信息所需付出的代价。
3、视频压缩编码的要求和可能性:
视频压缩编码的目标:
视频信号由于信息量大,传输网络带宽要求高,就像 一辆体型巨大的货车只有在宽阔的马路上才能行驶一样。于是出现一 个问题:能否将视频信号在传送前先进行压缩编码,即进行视频源压缩编码,然后在网络上进行传送,以便节省传送带宽和存储空间。
视频信号压缩编码有两个要求:
- 必须压缩在一定的带宽内,即视频编码器应具有足够的压缩比;
- 视频信号压缩之后,经解压重建应保持一定的视频质量。
视频质量有两个标准:一个为主观质量,由人从视觉上进行评定;一个为客观质量,通常用信噪比(S/N)表示。
视频压缩的可能性:
预测编码:
众所周知,一幅图像由许多个称为像素的点组成,如图1.2中 的“○”表示一个像素。大量的统计表明,同一幅图像的像素之间具有较强的相关性,两个像素之间的距离越短,其相关性越强,通俗地讲, 即两个像素的值越接近。换言之,两个相邻像素的值发生突变的概率 极小,相等、相似或缓变的概率则极大。
于是,人们可利用这种像素间的相关性进行压缩编码。例如,当 前像素X(设为立即传送的像素)可用前一个像素a、b或c,或三者的 线性加权来预测。a、b、c被称为参考像素。实际传送时,把实际像素 X(当前值)和参考像素(预测值)相减,只传送X-a,到了接收端 再把(X-a)+a恢复成X。由于a是已传送的(在接收端被存储), 于是得到当前值。由于X与a相似,(X-a)值很小,视频信号被压缩,这种压缩方式称为帧内预测编码。
不仅如此,还可利用图1.3所示的帧间相关性进行压缩编码。由于邻近帧之间的相关性一般比帧内像素间的相关性更强,因此压缩比也更大
由此可见,利用像素之间(帧内)的相关性和帧间的相关性,找 到相应的参考像素或参考帧作为预测值,可以实现视频压缩编码。
变换编码:
大量统计表明,视频信号中包含着能量上占大部分的直流和低频成分(图中的平坦部分),还有少量的高频成分(图像的细节部 分)。因此,可以用另一种方法进行视频编码,将图像经过某种数学变换后,得到变换域中的图像(如图1.4所示),其中u、v分别是空间频率坐标轴。在图1.4中,用“o”表示的低频和直流占图像能量中的大 部分;而用“×”表示的高频成分则是少量的;其余均是零值,用“O”表 示。于是可用较少的码表示直流、低频以及高频,而“O”则不必用码表示,由此可完成压缩编码。
4、视频压缩编码技术综述:
基本结构:
视频编码系统的基本结构如图1.5所示。
由图1.5可见,视频编码方法与可采用的信源模型有关。如果采用“一幅图像由许多像素构成”的信源模型,这种信源模型的参数就是每个像素的亮度和色度的幅度值,对这些参数进行压缩编码的技术称为基于波形的编码。如果采用“一个分量由几个物体构成”的信源模型,这种信源模型的参数就是各个物体的形状、纹理和运动,对这些参数进行压缩编码的技术称为基于内容的编码。
由此可见,根据采用信源模型,视频编码可以分为两大类:基于 波形的编码和基于内容的编码。它们利用不同的压缩编码方法,得到 相应的量化前的参数;再对这些参数进行量化,用二进制码表示其量化值;最后,进行无损熵编码进一步压缩码率。解码则为编码的逆过程。
基于波形的编码:
利用像素间的空间相关性和帧间的时间相关性,采用预测编码和变换编码技术可大大减少视频信号的相关性,从而显著降低视频序列的码率,实现压缩编码的目标。
基于波形的编码采用了把预测编码和变换编码组合起来的基于块的混合编码方法。
为了减少编码的复杂性,使视频编码操作易于执行,采用混合编 码方法时,首先把一幅图像分成固定大小的块,例如块8×8(即每块8 行,每行8个像素)、块16×16(每块16行,每行16个像素)等,然后对块进行压缩编码处理。
基于内容的编码:
基于块的编码易于操作,但由于人为地把一幅图像划分成许多固定大小的块,当包含边界的块属于不同物体时,它们分别 具有不同的运动方向,不能用同一个运动矢量表示该边界块的运动状 态。如果强制划分成固定大小的块,这种边界块必然会产生高的预测误差和失真,严重影响了压缩编码信号的质量。
于是产生了基于内容的编码技术。先把视频帧分成对应于不同物体的区域,然后分别对其进行编码。具体说来,就是对不同物体的形状、运动和纹理进行编码。在最简单的情况下,利用二维轮廓描述物体的形状,利用运动矢量描述其运动状态,而纹理则用颜色的波形进行描述。
当视频序列中的物体种类已知时,可采用基于知识或基于模型的编码。例如,对人的脸部,已开发了一些预定义的线框对脸的特征进 行编码,这种编码效率很高,只需少数比特就能描述其特征。
对于人脸的表情(如生气、高兴等),可能的行为可用语义编 码,由于物体可能的行为数目非常小,可获得非常高的编码效率。
MPEG-4采用的编码方法既是基于块的混合编码,又有基于内容的编码方法。
立体(三维)视频编码:
立体视频编码是视频编码的发展方向之一,它在平面信息外增加 了深度信息,数据量非常庞大。 立体视频编码也有两种:第一种是基于波形的,它组合运动补偿 预测和位差补偿预测,所谓位差估计,是在两幅不同的图像中寻找对应的点,然后对预测残差图像、位差和运动矢量进行编码;第二种是基于物体的,它直接对成像物体的三维结构和运动进行编码,当物体结构简单时,可获得非常高的压缩比,其编码结构如图1.6所示。
二、数字视频:
视频压缩编码技术就是对数字视频信号进行压缩和解压缩的技术,因此讨论视频压缩编码前,必须先了解数字视频信号的概念和构成。
1、数字电视的基本概念:
数字电视的优越性:
模拟电视的缺陷日益显露。为此,数字电视应运而生,与模拟电视相比,具有许多突出的优点。
- 失真小、噪声低、视频质量高:
模拟电视信号在放大、处理、传输、存储过程中,难免会引入失真和噪声,而且多种噪声与失真叠加到电视信号上后,不易去除,并会随着处理次数和传输距离的增加不断累积,导致图像质量及信噪比下降。
相反,数字电视信号没有上述的噪声累积效应。如图2.1所示,只要噪声电平不超过信号脉冲幅度的一半,就可用脉冲再生技术对其整形,并恢复成“0”或“1”两种电平,不会引入噪声。这样说来,数字电视信号是否没有任何失真和噪声呢?从下面的叙述可知,它会引入“量化 噪声”,这是因为信号的数字化必须要经过取样、量化、编码三个基本 步骤,“量化”是不可缺少的,量化噪声不可避免,但可控制在相当低的电平以下。
可见,数字电视的第一个突出优点是噪声低、失真小、视频质量好。
- 易处理、易校正:
模拟电视信号要进行压缩编码处理、加密处理、校正处理都不是 一件容易的事情。
数字电视信号利用VLSI芯片进行压缩编码处理、加密处理、白平 衡调整、γ校正、彩色校正和轮廓校正,相对来说容易得多。随着大规模集成电路设计和工艺的不断发展,现在利用专用芯片和通用DSP来实 现以上处理的成本不断下降,这是视频数字压缩编码能取得不断发展 的一个重要原因。
- 容量大、节目多:
同样的带宽能容纳的数字电视节目比模拟电视节目多得多。例如,CATV频道中,550~750MHz的200MHz带宽中,如果传送模拟电 视,每个节目需8MHz带宽,充其量只能传送25套节目。如果传送数字 电视节目,采用64QAM调制,其频谱利用率为5.3,如果每路节目用 MPEG-2压缩为4Mbit/s,实际只需4÷5.3≈0.75(MHz)带宽,于是在同 样的200MHz带宽中可传送数字电视节目数为200÷0.75≈260,约为模拟电视的11倍。
数字电视的PCM原理:
将输入的模拟电视信号变成输出的数字电视信号需经过取样、量化、编码三个步骤,如图2.2所示,由A/D变换器完成这三个步骤。
取样:
所谓取样,就是在时间轴上把连续变化的模拟信号变为离散量的过程。图2.3(a)中的ua (t)在时间上是连续变化的,经取样后变换成图 2.3(c)所示的时间上离散的ud (t)信号。
根据取样定理,当输入的模拟信号上限频率为f c,只要取样脉冲 us(t)的重复频率不低于
的两倍,总可以无失真地由取样后的离散信号恢复出原来的模拟信号,即不失真输出条件为:
通过下式实现:
图2.3(e)、(f)分别是和
的频谱
、
。于是,图 2.3(c)中
的频谱,即图2.3(g)中的
可由
和
卷积得到:
由图2.3(g)可知,当或满足取样定理时,则可恢复出原始的模拟信号,否则会发生频谱重叠,产生混叠效应,无法恢复出原始信号。
由于实际的低通滤波器(限制模拟信号的上限频率)滤波特性不可能做成理想的陡峭的截止特性,当低通滤波器的截止频率为
时,实际的取样频率
应取成:
对于电视信号,经分析可知,其信号能量主要集中在行频及其多次谐波
附近。而在
附近,信号能量很弱。当取样频率
取下式:
当时,即所谓的亚取样时,发生频谱混叠,但频谱以
的间隔交错开,因此仍可通过设计得当的梳状滤波器将所需信号的频谱分离出来。
这种亚取样可显著压缩数字电视的数字码率。
量化:
取样后的脉冲信号在时间上是离散的,但在幅值上(空间上)仍 是连续的,即其可能取的值有无限多个,这就需要对它采用四舍五入 的方法,将其可能的幅值数由无限多个变为有限个值。这种将信号幅值由连续量变成离散量的过程称为量化。
图2.5所示为信号的量化过程。量化器的输入输出特性(如图 2.5(a)所示)呈阶梯形状,图2.5(b)为输入模拟信号,图2.5(c) 为其相应的量化后的输出信号。由于采用四舍五入的方法,输出信号 不同于原模拟信号,产生了失真,即加入了所谓的“量化噪声”。
如果模拟信号的动态范围(最大值)为A,量化级数为M,量化节 距(或量化步长)为Q,则
这种量化称为均匀量化,量化节距为恒定值Q。
PCM编码:
对于量化后的信号,通常用“0”和“1”表示,即用二进制码表示。这时的编码称为脉冲编码调制——PCM编码。模拟电视信号经取样、量化、编码(PCM编码)后得到的二进制序列,即数字电视信号。
每个取样信号用8位二进制码表示,可能取的量化值为M=28= 256。一般说来,当用n位二进制码表示时,有:
n越大,则M越大,Q越小,即量化噪声越小,数字信号越接近原 模拟信号。
A/D与D/A变换:
上述取样、量化、编码过程均由A/D变换器完成。反之,数字信号的解码、反量化、恢复成模拟信号的逆过程则由D/A变换器完成,如图 2.6所示。
2、数字电视信号:
时间取样:
电视信号的取样有两种:空间取样和时间取样。运动图像可由每秒若干帧的静止图像构成,我国采用的PAL制规定彩色电视每秒25帧, 美国、日本等采用的NTSC制彩色电视则为每秒30帧。这种取样方式就 是时间取样。如果是会议电视、可视电话等运动量不大的视频信号, 帧频也可取15~20帧/秒,但低于15帧/秒的视频质量不高。
隔行扫描帧图像由两场组成,每场由若干行组成,奇数行和偶数行各构成一场,它们分别为顶场和底场,如图2.7所示。帧、场的邻近 行相关性并不相同。帧的邻近行空间相关性强,时间相关性弱,因为某行的邻近行(下一行)要一场扫描完才能被扫描,因此在压缩静止图像或运动量不大的图像时采用帧编码方式。场的邻近行时间相关性 强,空间相关性差,因为场的一行扫描完毕,接着对场中下一行扫 描,因此对运动量大的图像常采用场编码方式。实际的视频图像有快有慢,有粗有细,应根据这个标准自适应选择帧/场编码方式。
空间取样:
在同一电视信号帧中,同一行由若干取样点构成,这些取样点称为像素,这种取样就属于空间取样。其前提是假定一帧图像是静止的,每个像素点处于同一时刻的不同的空间位置上。
色彩空间:
黑白图像的每个像素只需一个幅值表示其亮度即可,而彩色图像的每个像素至少需要3个值表示表示其亮度和色度。所谓色度空间就是表示彩色图像的亮度与色度的方法。
- RGB:
众所周知,任何彩色图像可由不同比例的红色、绿色和蓝色组合而成,即三基色原理。这种表示彩色图像的方法即RGB彩色空间。
彩色显象管(CRT)和液晶显示器件(LCD)可显示彩色图像,彩色摄像机中的电荷耦合器件(CCD)等传感器可产生彩色电视图像, 这些都是根据RGB原理获得的。
(YUV):
人类视觉系统(HVS)对亮度比彩色更敏感,因此可以把亮度信息从彩色信息中分离出来,并使之具有更高的清晰度。彩色信息的清晰度降低,可显著压缩带宽,实现视频压缩的一部分。但是,人眼对 画面的感觉却没有不同。
色彩电视取样格式:
有3种不同的彩色电视取样格式,如图2.8所示:
- 4∶4∶4,Y、Cb和Cr具有同样的水平和垂直清晰度,在每一像 素位置,都有Y、Cb和Cr分量,即不论水平方向还是垂直方向,每4个亮度像素相应的有4个Cb和4个Cr色度像素。
- 4∶2∶2,这时彩色分量和亮度分量具有同样的垂直清晰度,但水平清晰度彩色分量是亮度分量的一半。水平方向上,每4个亮度像素 具有2个Cb和2个Cr。在CCIR601标准中,这是彩色电视的标准取得格 式。
- 4∶2∶0,在水平和垂直清晰度方面,Cb和Cr都是Y的一半。
4∶2∶0的彩电取样格式广泛应用于数字电视、会议电视、DVD等。 因为3种格式中,4∶2∶0的彩色分量最少,对人眼的彩色感觉而言,这种 格式与其他两种类似,最适合用于进行数字压缩。
数字电视信号的编码参数:
现在介绍电视信号的量化值和取样频率值,即未压缩前数字信号的编码参数。
- 量化值(
):
量化值(量化节距)取得太大,视频图像显得粗糙;取得太小, 视频图像质量好,但带宽浪费过大。一般认为,每个取样值采用8个比特表示,即256个灰度级,是比较合理的。在会议电视的视频通信中, 随着网络带宽的变化,可进行自动调整。
- 取样频率(
):
CCIR601建议的电视国际标准为:对每幅画面625/50(625行,每 秒50场)的电视系统和525/60(525行,每秒60场)的电视系统取样频率都为:
= 13.5MHZ (亮度信号,即Y信号)
= 6.75MHZ (色差信号,即
、
信号)
彩色电视采用4∶2∶2格式时(垂直方向、
和Y具有同等清晰度, 水平方向
、
只是Y一半),Y和
、
取样频率如上,则电视信号总码率为:
13.5×8+2×6.75×8=216(Mbit/s)
当彩色会议电视采用CIF格式时,取4∶2∶0格式,帧频为25帧/秒,总码率为:
352×288×25×8×1.5=30.41(Mbit/s)
对于高级窄屏幕的HDTV(1250×1440),采用4∶2∶0格式,亮度 =54MHz,色度
=27MHz,总码率为:
54×8+27×8=648(Mbit/s)
对于高级宽屏幕的HDTV(1250×1920),采用4∶2∶0格式,亮度 =72MHz,色度
=36MHz,总码率为:
72×8+36×8=864(Mbit/s)
不论何种数字电视信号,这些值30.41Mbit/s、216Mbit/s、 648Mbit/s、864Mbit/s都是没有经过压缩的码率。如果直接在现有的信 道中传输,都需要相当大的带宽,因此需对这些数字视频信号进行压 缩编码。
3、视频信号的预处理:
视频处理和通信系统所要处理的信息是十分庞大的视频图像数据,对于处理的速度和精度都有相当高的要求,系统的应用也非常广泛。
目前的视频处理和通信系统有各种各样的结构,但不论结构复杂还是简单,一个基本的视频处理和通信系统大致可如图2.9所示,主要包括采集、预处理、视频编码、通信、图像处理以及显示等几个方面。
图像采集的功能由图像传感器实现,目前图像传感器主要有电荷耦合器件(CCD,Charge Coupled Devices)和CMOS传感器。前者技术发展成熟,具有高解析度、低噪声、动态范围大等优点,在高端产品 中得到广泛应用;后者随着半导体技术的发展,以其低成本、高集成 度、低功耗等特性占领了低端市场,且随着技术的不断发展,CMOS图 像传感器的一些参数性能指标已达到或超过CCD。但不论是CCD还是 CMOS传感器,在将实际景物转换为图像信号时总会引入各种噪声和畸 变失真,因此一般需要对图像传感器的图像进行预处理,包括伽马校正、图像插值、图像校正、白平衡、图像增强以及增益控制等技术, 一方面改善图像的质量,另一方面,可使得图像有利于视频编码的处理。
色彩插值(Color Interpolation):
不论是CCD还是CMOS图像传感器,为了简化工艺和降低成本, 一个像素点往往只能给出记录从纯白到纯黑的系列色调,因而只能给出单色的色调值,不能同时给出RGB三组数据。因此,对于彩色的图像值的获取,就需要借助色彩滤镜阵列(CFA,Color Filter Array), 即在图像传感器的像素表面覆盖一个多色的滤镜阵列。通过应用不同的色彩滤镜阵列,可以获得不同的图像输出阵列,其中,最常见的一 种滤镜阵列的图像传感器获得的是一幅如图2.10所示的马赛克的图像阵 列,即Bayer模型。
显然,在这种图像阵列中,每个像素值只有一个颜色的色调值, 另外两个颜色的色调必须利用相邻像素之间的相关性,通过数据计算 获得,这些方法通常被称为色彩插值。这里就以Bayer图像阵列为基 础,描述色彩的插值算法。多种色彩插值算法的实现方法和性能比较,例如,相邻像素复制法、双线性插值算法以及双三次多项式插值等。这里仅以双线性插值算法为例做个简单的介 绍。显然,色彩的插值涉及RGB三色的处理。具体如下:
- 红色/蓝色点处的像素绿色分量:
插值等于其相邻的4个像素点的绿色分量平均值。例如,G8=(G3 +G7+G9+G13)/4。
- 在绿色点处的红色/蓝色分量的插值:
这里分两种情况。一种情况是如果存在相邻的两个像素的红色/蓝色分量,就取红色/绿色分量的均值,例如B7=(B6+B8)/2,R7=(R2 +R12)/2;另一个情况是周围没有相邻的红色/蓝色分量,就取对角线 方形的4个像素点处红色/蓝色分量的均值,R8=(R2+R4+R12+ R14)/4,B12=(B6+B8+B16+B18)/4。
色彩校正(Color Correction):
通过插值已经得到了RGB三基色齐全的图像(R、G、B) 了,但传感器响应的这个图像与真实场景之间仍存在差异。这其中存 在多方面的原因,涉及图像传感器中光学器件(棱镜)的光谱特性、 场景的光源光照条件(诸如白光、荧光或者钨光)以及色彩滤镜的光谱特性等。图2.11给出了配置RGB色彩滤镜阵列的CMOS图像传感器的光谱响应曲线。
为了补偿这种差异,必须对图像的像素值(R、G、B)按照公式 (2.10)进行变换处理
其中,系数是由传感器的光谱特性、光源光照条件和滤镜的光 谱特性所决定的,不能简单地给出,往往需要传感器厂商在满足人眼 的视觉效果的前提下,依据性能指标和测试结果综合给出。因此,这里的色彩校正不可能做到理想的效果,只能做到尽可能地减小上述的差异性。
伽马校正(Gamma Correction):
在计算机图形领域,“伽马校正”这个术语大家并不陌生,但能正 确理解它的含义的人并不多。这其中又涉及另一个术语——强度 (Intensity),其表示的是每单位面积传播的(光)辐射能量。在图像显示器中,这个强度作为参量和输入的电压信号密切相关。
以目前应用最为广泛的阴极射线管显示器(CRT)为例,CRT的感 光材料的响应随着加载电子束电压信号的不同而不同。在理想状态 时,输出的色彩强度和电子束的电压信号之间的关系应该是线性的, 如图2.12(a)所示;但实际上,它们之间的关系如图2.12(b)所示, 输出的强度与电压信号之间的关系是非线性的。
研究表明,显示器的输出强度和输入电压的响应大致呈幂指数关 系,如公式(2.11)所示输出的强度随着输入电压的增长成指数增长。 通常我们就把这个幂指数称为伽马(gamma)。事实上,几乎各种显示器都存在这种非线性关系,其伽马值大小在1.7~2.7之间,CRT的伽马值一般取2.2。
其中,I指显示器输出的光强度;P指显示器上加载的光束电压, 一般光束电压P是由图像相应位置的像素值决定的;γ为伽马值。
为了在显示器上显示的图像效果和实际相符,有必要在摄像机获取图像后进行伽马校正,将上述这种非线性的关系校正为线性关系, 公式如下:
其中,是进行了校正处理的图像的像素值;
是校正前的像素值;伽马值γ影响着校正的程度,γ=1时,不进行校正,γ越大,像素值的校正量越大。
伽马校正的具体实现方法是多种多样的,在模拟电视中,伽马校正可采用分段折线与渐变式两种方法。对于分段式是通过选择二极管的配置电路,确定不同的分段导通特性来实现校正处理。随着数字电路技术的发展,高度灵活的数字化伽马校正得到了广泛应用,可以采用数字电路的硬件实现折线式的伽马校正电路,也可采用软件实现渐变式伽马校正电路。如图2.13所示,软件实现的伽马校正的步骤分为两 步:①建立伽马校正数据表;②根据输入的像素值进行查表获取伽马校正后的数据。其中,伽马校正数据表可以通过各种公式的修正公式计算获得,也可预先设定。
4、图像增强:
很显然,实际应用中图像传感器的输出图像经过上述的处理并不是完美的,图像质量获得的改进也是有限的,加之噪声、光照等原因,需要进一步处理,丢弃无用的信息,保留我们感兴趣的重要信息。图像增强作为一种重要的图像处理技术,目的无非就是两个:第 一,更适合人眼的感觉;第二,有利于后续的分析处理。
图像增强主要包括直方图均衡、平滑滤波、中值滤波、锐化等内容。一般情况下,图像增强既可以在空间域实现,也可以在频域内实现。这里我们主要介绍在空间域内对图像进行点运算,它是一种既简单又重要的图像处理技术,能让用户通过改变图像上像素点的灰度值,进行运算处理产生一幅新图像。总之,图像增强有利于视觉效果 和后续的处理,消除了相关性和高频噪声,有利于图像的压缩和处理,节省带宽。
平滑滤波:
图像平滑作为一种主要的图像增强技术,其主要目的是为了消除图像采样系统的量化过程所产生的噪声。噪声并不限于人眼所能看见 的失真和变形,有些噪声只有在进行图像处理时才可以发现。图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。图像中的噪声往往和信号交织在一起,尤其是乘性噪声,如果平滑不当,就会使图像本身的细节如边界轮廓、线条等变得模糊不清。如何能既平滑掉噪声又尽量保持图像细节,是图像平滑研究的主要任务。
一般来说,图像的能量主要集中在其低频部分,噪声所在的频段 主要在高频段,同时图像中的细节信息也主要集中在其高频部分,因此,如何去掉高频干扰同时又保持细节信息是关键。为了去除噪声, 有必要对图像进行平滑,可以采用低通滤波的方法去除高频干扰。图像平滑包括空域法和频域法两大类。
在空域法中,图像平滑的常用方法是采用均值滤波或中值滤波。对于均值滤波,它是用一个有奇数点的滑动窗口在图像上滑动,将窗口中心点对应的图像像素点的灰度值用窗口内的各个点的灰度值的平均值代替,如果滑动窗口规定了取均值过程中窗口各个像素点所占的权重,也就是各个像素点的系数,这时候就称为加权均值滤波;对于中值滤波,对应的像素点的灰度值用 窗口内的中间值代替。
在频域法中,一般采用低通滤波法。这里主要采用介绍空域处理的方法。
加权均值滤波是取一个n×n的窗口,取该窗口内的个像素的加权 平均值取代中心像素原来的值。加权均值算法的一般表达形式为:
其中,g(x, y)是窗口的中心元素,f(x+i, y+j)是有噪声图像的像素,w(i, j)为加权值,其窗口大小为(2k+1)×(2k+1)。把n×n的权值排成矩阵,称为加权模板。下面介绍几个3×3的加权模板。
相等加权的模版为:
锥形加权的模版为:
灰度差倒数加权的模版为:
其中,每个加权值为:
图2.14给出了采用锥形加权的模板运算得出的平滑效果图:
中值滤波:
中值滤波也是一种典型的低通滤波器,它的目的是在保护图像的细节的同时,消除噪声。中值滤波的原理是指把以某点(x, y)为中心的小窗口内的所有像素的灰度按从大到小的顺序排列,将中间值作为(x, y)处的灰度值(若窗口中有偶数个像素,则取两个中间值的平均)。
对二维的数字图像,设定一个大小为(2k+1)×(2k+1)的窗口,计算其中值为:
可以采用冒泡法对数组进行排序,然后返回数组元素的中值。
实际处理中可采用多种快速算法求解,例如,Narendra提出了对图像先进行行方向的一维中值滤波,再做列方向的一维中值滤波的方法,可得到与二维中值滤波相近的结果,使计算量大大降低,也易于硬件实现。T.S.Huang提出了对图像用n×n的滑动窗口进行中值滤波时, 每次求中值只要考虑去掉最左列,补上最右列的像素,其余的像素不变,因此计算量大大缩小。
图像锐化:
图像的边缘信息在图像风险和人的视觉中都是非常重要的,物体的边缘是以图像局部特性不连续的形式出现的。前面介绍的图像滤波对于消除噪声是有益的,但往往使图像中的边界、轮廓变的模糊,为了减少这类不利效果的影响,就需要利用图像锐化技术,使图像的边缘变得更加鲜明。
图像锐化处理的目的就是为了使图像的边缘、轮廓线以及图像的细节变得清晰,经过平滑处理后的图像变得模糊的根本原因是因为图像的像素受到了平均或积分,因此对其进行逆运算(如微分运算)就可以使图像变得清晰。从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器使图像清晰。
图像锐化的技术有两种:微分法和高通滤波法。这里主要介绍微 分法,常用的微分锐化主要有两种:梯度锐化和拉普拉斯锐化。以拉 普拉斯锐化为例,对于给定的图像f(x,y),其二阶差分为:
从而拉普拉斯算子为:
显然,公式(2.20)可以变成前面的模板运算,从而拉普拉斯锐化运算也变成了模板运算,其模板形式为:
图2.15给出了采用锐化处理的效果图。
直方图均衡:
图像直方图是图像处理中一种十分重要的图像分析工具,它描述 了一幅图像的灰度级内容。从数学上来说,图像直方图是图像各灰度值统计特性与图像灰度值的函数,它统计一幅图像中各个灰度级出现的次数或概率;从图形上来说,它是一个二维图,横坐标表示图像中各个像素点的灰度级,纵坐标为各个灰度级上图像像素点出现的次数或概率。
在介绍灰度直方图均衡之前,先讲讲直方图修正。所谓直方图修正,就是通过一个灰度映射函数S=F(r),将原灰度直方图改造成我们所希望的直方图。所以,直方图修正的关键就是灰度映射函数。直方图均衡化是一种最常用的直方图修正。它是把给定图像的直方图分布改造成均匀直方图分布。由信息学的理论来解释,具有最大熵(信息 量)的图像为均衡化图像。
则图像直方图均衡的变化函数为:
图2.16给出了直方图均衡处理前后的效果图。
白平衡(White Balance):
白平衡作为图像处理的一个重要术语,也随着数码相机的普及进入了人们的认识中。白平衡指的就是对白色物体颜色的还原。当我们用肉眼观看这大千世界时,在不同的光线下,对相同的颜色的感觉基本是相同的,比如在早晨旭日初升时,我们看一个白色的物体,感到它是白的;而我们在夜晚昏暗的灯光下,看到的白色物体,感到它仍然是白的。这是由于人类在出生以后的成长过程中,大脑已经对不同光线下的物体的彩色还原有了适应性。但是,图像传感器没有这种人眼的适应性,在不同的光线下,由于图像传感器输出的不平衡性,造成其输出的彩色失真:或者图像偏蓝,或者偏红,如图2.17所示。
要理解白平衡,就涉及另一个重要的概念:色温。所谓色温,简而言之,就是定量地以开尔文温度表示色彩。色温越高,蓝色成分就越多;色温越低,红色成分就越多。这跟我们传统的认知不一样。在摄影、摄像时,不同色温光源下拍摄物体,获得的图像不可避免会出现色彩上的偏差。为了获得现实际世界中各种色彩的图像,必须消除环境中光源色温的影响,即进行白平衡处理。
传统的白平衡方法,首先在色温环境中拍摄一纯白色物体,分析所拍摄的图像数据,对白色物体的数据进行平均,得出三原色的平均 值(、
、
),根据白色的定义:
R=G=B
改变R、B感应通道的增益可以实现图像的白平衡,这种白平衡方法需要有白色参照物,使用不便。因此,实际应用中,产生了一些自动白平衡的算法,主要有以下几种算法
- 全局平衡法:认为所拍摄的图像的R、G、B三色分量的统计平均应该相等,对于拍摄的图像进行统计平均,以R、B分量的均值作为白平衡校准的依据。
- 局部白平衡法:搜索所拍摄的图像中,最亮的区域作为白色区域,该区域的R、 G、B三色分量的统计平均值应该相同,以该区域的R、B分量的均值作为白平衡校准的依据。
三、视频质量:
对压缩后的视频质量进行估计是一件困难的工作。大体上,可分 为主观视频质量评定和客观视频质量评定两种估计方法。
1、主观质量的评定:
由于个人的视觉系统(HVS)不尽相同,对视频内容的熟悉程度 也不一样。为了减少主观随意性,在对视频图像主观评定前,选若干 名专家和“非专家”作为评分委员,共同利用5项或7项评分法对同一种视频图像进行压缩编码的图像评定。最后按加权平均法则对该压缩后的图像质量进行主观评定,见表2.2。
测试方法可用随机的次序请评委观察比较原始图像和压缩编解码 后的图像。国际上称为DSCQS的测试系统如图2.18所示。其中A为原始图像,B为编码解码后的图像,以任意的A、B次序让评委打分评定。
2、客观质量的测量:
主观的视频质量评分更接近人的真实视觉感受,但需耗费人力和 时间,成本较高。客观质量的测定方法速度快、易实行,但往往不会太符合人眼的视觉感受,只能反映大体上的质量情况。客观质量测定方法应致力于改进其测试标准和测试方法,使其符合人的视觉感受。
最常用的测试标准是峰值信噪比(PSNR):
其中,MSE为原始和编解码后图像之间的均方误差,为图像中最大可能的信号值平方,n为表示每个像素的比特数。
一般来讲,PSNR越高,视频质量越高,反之亦然。但实际上有时并非如此,如图2.19和图2.20所示。图2.20的PSNR=27.7dB,其主观评定的分数可能比图2.19(b)、(c)的高,但客观质量PSNR却低于图 2.19(b)、(c)的30.6dB和28.3dB。这是因为图2.20中的脸部更清 晰,只是背景模糊,而人眼对脸部往往更敏感更重视。
参考资料:
《新一代视频压缩编码标准 —H.264/AVC》——毕厚杰 王健 编著
相关文章:

音视频之视频压缩及数字视频基础概念
系列文章: 1、音视频之视频压缩技术及数字视频综述 一、视频压缩编码技术综述: 1、信息化与视频通信: 什么是信息: 众所周知,人类社会的三大支柱是物质、能量和信息。具体而言,农业现代化的支柱是物质&…...

Ubuntu 24.04部署安装Honeyd蜜罐
🌴 前言 最近有个大作业,里面要求我们部署Hoenyd蜜罐,在网上搜了一通,发现相关的教程竟然少的可怜,即使有比较详细的教程,也是好几年前的了,跟着做一遍报一堆错,无奈之下࿰…...
C++复习核心精华
一、内存管理与智能指针 内存管理是C区别于其他高级语言的关键特性,掌握好它就掌握了C的灵魂。 1. 原始指针与内存泄漏 先来看看传统C的内存管理方式: void oldWay() {int* p new int(42); // 分配内存// 如果这里发生异常或提前return,…...
Android中获取控件尺寸进阶方案
在Android开发中,很多场景都需要获取控件(View)的宽高信息,比如动态布局调整、动画效果实现等。然而,直接在Activity的onCreate()中调用控件的getWidth()或getHeight()`方法,得到结果却是0,因为控件还没完成布局测量。 本文总结了几种获取控件大小的实用方法,并对各方…...
云原生安全之PaaS:从基础到实践的技术指南
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 云原生安全之PaaS:从基础到实践的技术指南 一、基础概念 PaaS(Platform as a Service)平台 PaaS是一种云计算服务模型…...

MCP技术体系介绍
MCP,全称时Model Context Protocol,模型上下文协议,由Claude母公司Anthropic于2014年11月正式提出。 MCP的核心作用是统一了Agent开发过程中大模型调用外部工具的技术实现流程,从而大幅提高Agent的开发效率。在MCP诞生之前,不同外部工具各有不同的调用方法。 要连接这些…...
《深入探秘:从底层搭建Python微服务之FastAPI与Docker部署》
FastAPI作为一款现代、快速的Web框架,在Python微服务开发领域独树一帜。它基于Python 3.6的类型提示功能,融合了Starlette和Pydantic的优势,具备诸多令人瞩目的特性。 FastAPI的性能表现十分卓越,可与Go和Node.js相媲美。这得益于…...
深入解析Spring Boot与JUnit 5集成测试的最佳实践
深入解析Spring Boot与JUnit 5集成测试的最佳实践 引言 在现代软件开发中,单元测试和集成测试是确保代码质量的重要手段。Spring Boot作为当前最流行的Java Web框架之一,提供了丰富的测试支持。而JUnit 5作为最新的JUnit版本,引入了许多新特…...

我的第1个爬虫程序——豆瓣Top250爬虫的详细步骤指南
我的第1个爬虫程序——豆瓣Top250爬虫的详细步骤指南 一、创建隔离开发环境 1. 使用虚拟环境(推荐venv) # 在项目目录打开终端执行 python -m venv douban_env # 创建虚拟环境 source douban_env/bin/activate # Linux/macOS激活 douban_env\Scri…...

Selenium 测试框架 - C#
🚀Selenium C# 自动化测试实战:以百度搜索为例 本文将通过一个简单示例,手把手教你如何使用 Selenium + C# 实现百度搜索自动化测试。适合初学者快速上手,也适合作为企业 UI 自动化测试模板参考。 🧩 一、安装必要 NuGet 包 在 Visual Studio 的 NuGet 管理器中安装以下…...

JavaWeb:SpringBoot工作原理详解
一、SpringBoot优点 1.为所有Spring开发者更快的入门 2.开箱即用,提供各种默认配置来简化项目配置 3.内嵌式容器简化Web项目 4.没有冗余代码生成和XML配置的要求 二、SpringBoot 运行原理 2.1. pom.xml spring-boot-dependencies: 核心依赖在父工程中;…...
5.25本日总结
一、英语 复习list6list25 二、数学 写14讲课后题,学习15讲部分 三、408 完成计网5.3题目,学习计组第二章 四、总结 今日所学内容不难,但是英语最近的进度缓慢,单词记忆情况不好,阅读也很久没有再写,…...
OpenGL Chan视频学习-6 How Shaders Work in OpenGL
bilibili视频链接: 【最好的OpenGL教程之一】https://www.bilibili.com/video/BV1MJ411u7Bc?p5&vd_source44b77bde056381262ee55e448b9b1973 一、知识点整理 1.1 着色器 1.1.1 阐述 实际上是代码。需要告诉GPU发送数据要干啥,也是着色器的本质。…...

dify_plugin数据库中的表总结
本文使用dify-plugin-daemon v0.1.0版本,主要对dify_plugin数据库中的数据表进行了总结。 一.agent_strategy_installations 源码位置:dify-plugin-daemon\internal\types\models\agent.go type AgentStrategyInstallation struct {ModelTenantID …...
【数据仓库面试题合集④】SQL 性能调优:面试高频场景 + 调优策略解析
随着业务数据规模的持续增长,SQL 查询的执行效率直接影响到数据平台的稳定性与数据产出效率。因此,在数据仓库类岗位的面试中,SQL 性能调优常被作为重点考察内容。 本篇将围绕常见 SQL 调优问题,结合实际经验,整理出高频面试题与答题参考,助你在面试中游刃有余。 🎯 高…...

HarmonyOS学习——UIAbility组件(上)
UIAbility组件概述 应用程序有几种界面交互形式 UIAbility:应用程序的入口 概述 UIAbility组件是一种包含UI的应用组件,主要用于和用户交互。 UIAbility的设计理念: 原生支持应用组件级的跨端迁移和多端协同。 支持多设备和多窗口形态。…...

【Linux】磁盘空间不足
错误提示: no space left on device 经典版(block占用) 模拟 dd if/dev/zero of/var/log/nginx.log bs1M count2000排查 #1. df -h 查看哪里空间不足,哪个分区#2. du -sh详细查看目录所占空间 du -sh /* 排查占用空间大的目录 du -sh /var/* du…...

持续更新 ,GPT-4o 风格提示词案例大全!附使用方式
本文汇集了各类4o风格提示词的精选案例,从基础指令到复杂任务,从创意写作到专业领域,为您提供全方位的参考和灵感。我们将持续更新这份案例集,确保您始终能够获取最新、最有效的提示词技巧。 让我们一起探索如何通过精心设计的提…...
线性代数之张量计算,支撑AI算法的数学原理
目录 一、张量计算的数学本质 1、线性代数:张量的几何与代数性质 2、微积分:梯度与自动微分 3、优化理论:张量分解与正则化 4、张量计算的核心操作 二、张量计算在AI算法中的作用 1、数据表示与处理 2、神经网络的参数表示 3、梯度计算与优化 三、张量计算在AI中的…...

QStandardItemModel的函数和信号介绍
前言 Qt版本:6.8.0 QStandardItem函数介绍 函数 部分函数有不同的重载来适应不同的模型,例如appendrow 构造函数与析构函数 1. QStandardItemModel(QObject *parent nullptr) 说明:创建一个空的模型(0行0列)。参数: parent&…...

Python 内存管理机制详解:从分配到回收的全流程剖析
在 Python 编程中,开发者无需像 C/C 那样手动分配和释放内存,但这并不意味着内存管理与我们无关。了解 Python 内存管理机制,能帮助我们编写出更高效、稳定的代码。接下来,我们将深入剖析 Python 内存管理的各个环节,并…...

【报错】Error attempting to get column ‘created_time‘ from result set.解决方法
postman报错以下内容 {"code": "500","msg": "查询失败:Error attempting to get column created_time from result set. Cause: java.sql.SQLFeatureNotSupportedException\n; null; nested exception is java.sql.SQLFeatur…...
Redis 3.0~8.0特性与数据结构全面解析
目录 引言 第一部分:Redis版本演进与核心特性 Redis 3.0(2015年):分布式架构的里程碑 Redis 4.0(2017年):模块化与性能优化 Redis 5.0(2018年):流数据结构…...

Google 推出 Flow —— AI 电影制作新平台
这周, Google I/O 2025 大会上发布了一些重磅 AI 公告。 他们推出了全新的图像模型 Imagen 4,还发布了升级版视频生成器 Veo 3、升级版 Gemini Pro 模型,以及一系列其他令人印象深刻的更新。 但将所有这些生成式媒体工具整合在一起的,是他们称为 Flow 的平台。 什么是 F…...

跨链风云:打破区块链孤岛,实现价值自由流转
嘿,各位技术爱好者们!今天我们来聊一个区块链领域非常火热且至关重要的话题——跨链技术。你可能听说过,比如想把在波场(Tron)链上的USDT转移到以太坊(Ethereum)网络上,这个过程就涉…...

鸿蒙开发:了解$$运算符
前言 本文基于Api13 有这样一个需求,一个Text组件,一个TextInput组件,要求Text组件同步展示TextInput组件里的内容,也就是TextInput组件输入什么内容,就要在Text组件里展示什么内容,这个需求如何实现呢&…...

基于CEEMDAN-Transformer-BiLSTM的多特征风速气候预测的完整实现方案及PyTorch源码解析
基于CEEMDAN-Transformer-BiLSTM的多特征风速气候预测的完整实现方案及PyTorch源码解析 一、模型架构设计 1.1 整体框架 该模型采用三级架构设计(图1): CEEMDAN分解层:对非平稳风速序列进行自适应分解多模态特征融合模块&#…...
特征预处理
作为机器学习初学者,理解特征预处理就像学做菜前必须学会的"洗菜、切配、腌制"——它直接决定了最终模型的口感(性能)。我会用最生活化的比喻代码示例带你轻松掌握这个必备技能。 一、为什么要特征预处理? 原始数据的问…...
第七课 医学影像学临床研究数据管理与统计分析思路
引言 医学影像学作为现代医学的重要组成部分,在疾病诊断、治疗监测和预后评估中发挥着关键作用。随着影像技术的快速发展和临床研究需求的不断增长,如何有效管理和分析医学影像学研究数据已成为临床研究成功的关键因素。本文将系统介绍医学影像学临床研究中的数据管理流程、…...

基于TypeScript的全栈待办事项应用Demo
Demo地址:git clone https://gitcode.com/rmbnetlife/todo-app.git Todo List 应用 这是一个基于TypeScript的全栈待办事项应用,前端使用React,后端使用Node.js和Express。 项目概述 这个Todo List应用允许用户: 查看所有待办…...