活动图像信号,也称为数字序列图像或连续帧图像,指由多幅尺寸相同的静止图像组成的图像序列。例如数字化后的电视或视频信号。其中每幅静止图像称为一个帧。
活动图像与静止图像相比,可以认为多了一个时间轴,成为三维信号,因此活动图像也被称为三维图像。
视频图像编码的必要性:由于电视信号数字化后的码率太高,必须先对数据进行压缩编码,然后再进行存储和传输。视频图像编码的目的:就是要在人眼不能察觉、有失真条件下,尽可能采用比较简单有效的编码方法,降低码率,便于能够在给定的通信信道上实时传输视频信号。
视频图像编码的要求:
帧内编码:也称为空间压缩。利用每幅(单帧)图像内部的相关性进行帧内压缩编码。当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息。帧内一般采用有损压缩算法。压缩后的视频数据仍可以以帧为单位进行编辑。帧内压缩一般达不到很高的压缩比。
帧间编码:也称为时间压缩。利用时间轴上相邻帧之间的相关性(前后两帧信息变化很小)进行帧间压缩编码。帧间压缩一般是无损的。
混合编码:为不同的编码方法组合在一起相结合的编码方法。例如变换编码和帧间预测编码相结合。
(1)图像信号中存在大量冗余度可供压缩
(2)根据内容的重要程度压缩
背景区:指摄像机不动而摄取人物后面的背景。
一般背景区是静止的,若外界条件不变,则这两帧背景区绝大部分数据相同,意味着两帧背景区之间帧间相关性很强。
运动物体区:若将物体运动近似看作简单平移,则第k帧与第k-1帧的运动区的数据也基本相同。
简单平移看作只有x方向位移量,则可采用某种位移估值方法对位移量进行“运动补偿”。
暴露区:指在运动后所暴露出的原来曾被物体遮盖住区域。
若有存储器将这暴露区的数据暂时存储,则再次经遮盖后再暴露出来的数据与原先存储数据相同,这为一帧间相关性。
这三类区域的帧间相关性是帧间压缩编码的重要依据。
注意:如果将整个画面从一类景物切换为另一类景物时,则谈不上帧间相关性利用。因为整个画面内容数据全部改变了。
(3)利用人的视觉心理特征压缩
人眼的图像的细节分辨率、运动分辨率、对比度分辨率等的要求都有一定限度,而这三者的分辨能力是相互制约的,即人眼对图像的某种分辨率要求很高时,对其他分辨率的要求就低,因此图像信号在空间、时间、幅度等几方面进行数字化的精细程度,只要达到上述分辨率的限制即可,超过没有必要。
人眼的视觉特性是图像压缩编码的另一个重要根据。人眼的视觉系统对于图像的注意是非均匀和非线性的,图像的编码和解码处理尽管引入了噪声使图像发生了变化,但这些变化如果不一定被视觉所查觉,称之为视觉冗余。视觉冗余是可以被压缩的。
(4)从频域分析,图像可压缩
在PAL制电视图像信号的频带宽度6MHZ,但信号的主体只集中了3MHZ以下的中低频段,其高频段往往只是为了表示画面中突变的轮廓和为数不多的图像纹理细节及景物的快速运动。
统计说明,图像信号在大部分时间并不是含有如此高频率分量的信息。所以,从频域的角度来说,图像信号的数据是可以压缩。
对于序列图像中大量存在的静止或缓变区域,如何把运动区域和静止或缓变区域分割开来?对于静止区域如何压缩编码?对于运动区域如何压缩编码?
(1)如何把运动区域和静止或缓变区域分割?
(2)如何对于静止或缓变区域压缩编码?
帧(场)重复工作模式:
(3)如何对运动区域进行压缩编码?
采用运动估计与运动补偿预测方法:
定义:
定义
定义
对于运动的物体,如果能估计出物体在相邻帧内的相对位移,那么用上一帧中物体的对应区域对当前帧物体进行预测,编码传输预测误差部分,就可压缩这部分区域的码率。这种考虑了运动物体对应区域的位移或运动的预测方式称为运动补偿帧间预测编码。
运动补偿帧间预测编码技术的组成:
视频压缩的时候,只需保存运动矢量和残差数据就可以完全恢复出当前块;预测越准确,残差中的数值越小,编码后所占用的比特数越少;
利用运动矢量在参考帧上进行运动补偿,补偿残差经DCT变换、量化、编码后与运动矢量共同编码传送。
子块大小的选择:
(1)初始搜索点的选择
运动估计算法研究的目标——直接选择参考帧对应的(0,0)位置。该方法简单,但是易陷入局部最优点(初始步长太大,原点不是最优点,有可能使快速搜索跳出原点周围可能性较大的区域而去搜索远距离的点,导致搜索方向不确定,可能陷入局部最优)。
改进:利用相关性预测初始搜索点,减少搜索次数。
(2)匹配准则
不同的准则函数也就是不同的统计量里面所涉及的运算如上表所示。
(3)运动搜索策略
(1)分层的和多分辨率的快速块匹配方法
用低分辨率块的运动矢量预测较高分辨率块的运动矢量,或者用同一分辨率下大尺寸块的运动矢量预测其内部子块的运动矢量,并在后续搜索中做进一步修正。
缺点:构造多层/多分辨率图像有较大的计算复杂度,且内存需求较大。
(2)固定搜索模式的快速块匹配方法
(3)降低匹配准则复杂度的快速块匹配方法
不会减少搜索点数,而是着眼于匹配准则计算复杂度的降低,因而常常用于全搜索法的快速实现;
例如:像素子采样法
像素子采样法:
通常的匹配准则是把块里所有的象素点进行计算和比较,事实上一个块里相邻象素的差别很小,使得它们之间也存在冗余;
子采样运动估计算法就利用了这一事实,只取其中的一部分象素进行计算(比如,可以把这个块中隔行或者隔列进行采样),可大大减少计算量,但同时降低了准确性。
(4)基于时空相关性和视觉特性的快速块匹配方法
针对固定模式法的不足,近几年来,人们针对序列图像的时空相关性和人眼视觉特性,提出了许多改进算法,主要可分类下面几类:
预测搜索起点、在终止条件上提出改进算法、改进搜索模版、宏块运动类型判别。
<1>预测搜索起点
<2>改变终止条件
由于一般序列中背景块占有相当的比例,对背景块的快速检测对搜索算法的性能提高很大,一般使用终止判别方法;门限值的选择至关重要:
<3>改进搜索模块
在序列图像中,大多数的运动矢量都位于水平或垂直方向,因此有设计了扁平搜索模板(非对称搜索模板);
在新的算法中,针对运动特别剧烈的宏块,设计了另两种超大模版:大十字模板、多层次六边形模版。
<4>宏块运动类别判断
这节主要是四种类型的快速块匹配方法,以及在每种类型中如何进行思考和改进,来提高块匹配方法的速度和准确度。
在经典运动估计算法中有一大类就是固定搜索模式的搜索算法,经典运动估计算法中有多种,全搜索法、三步搜索法、新三步搜索法、四步搜索法、基于块的梯度下降搜索法、菱形搜索法、六边形搜索法等等。
绿色像素点,所标注的是第一步搜索过程中所设定的9个待匹配位置,这9个待匹配位置相应有9个宏块,这9个宏块和待编码块进行求它的匹配测度,第一步算得9个匹配测度,在这9个匹配测度中最小的那个值,认为是第一步的最优值。
从中心位置到粉色点的矢量就是运动矢量。
视频序列,运动矢量的分布在中心位置上的概率最大,即运动矢量具有中心偏移特性。
基于现实中序列图像一个特征,即运动矢量都是中心分布的,从而在5×5搜索窗上构造了9个检测点的搜索模板;
若这次的最匹配点不在窗口边上也不再角上而是在窗口的中心,则缩小搜索窗口为3*3,如果是在边上或四个角上,需要重复上述的步骤。
窗口缩小到3*3后,计算出相邻检测点的最小匹配误差,从而找到最匹配点的位置,即对应最佳运动矢量。
搜索窗口太小易陷入局部最优,搜索窗口太大易产生错误的搜索路径;
统计表明,视频图像进行运动估计最优点通常在零矢量周围;基于上述事实,采用两种模板:9个检测点的大菱形模板和5个检测点的小菱形模板;先用大模板计算当最小块误差点出现在中心处时,换为小模板,此时5个点中最小块误差点即为最优匹配点。
菱形搜索法性能分析:
固定模式搜索法的缺点:
编码结构就是规定图像在编码的时候的编码顺序以及编码类型(对应着编码技术)的,编码类型定了之后相对应的就使用那些具体的编码技术对当前图像进行编码。
全帧内编码结构:在编码时将视频中的所有帧都用帧内预测技术进行编码。视频中所有帧的编码帧类型都是I帧,帧内帧(当前图像中的块在做预测的时候它的最优匹配块只能够在与当前块处于同一个图像里面的其他块来寻找)
在编码视频的时候,会将内容相近相邻的几幅图像组成一起,我们称之为图像组(GOP)
在一个GOP中会将不同的图像分配到不同的时间层。编号1234这四幅图像,认为处在第一个GOP,这四副图像又会近一步分配到不同的时间层上,编号为4的图像处在时间1层,编号为2的处在时间2层,编号为13的两幅图像处在时间3层。
图中箭头表示参考帧的方向,之所以叫帧间帧,也就是说当前图像在编码的时候,处在当前的图像里边的块,它在寻找最优匹配块的时候除了可以在本图像内的块找之外,它还可以在其他图像里边找。
使用帧间预测技术可以有效的消除视频中的时域冗余,因为它利用了图像之间的相关性。
使用低时延编码结构,图像的编码顺序和它的显示顺序是一致的,不存在编码时延的一个问题。
随机接入编码结构的一个缺点:在编码的时候图像的编码顺序和它的实际显示顺序是有差别的,会带来一个比较大的编码时延,不适用于对实时性要求高的场景。
然后通过结论进行函数化简,再使用数学方法求解函数。