基于图像切片结构的帧场自适应编码方法

文档序号:7590469阅读:136来源:国知局
专利名称:基于图像切片结构的帧场自适应编码方法
技术领域
本发明涉及视频信号的编码技术,更具体地说,涉及一种基于图像切片结构的帧场自适应编码方法。
背景技术
传统的视频编码标准如ITU制定的H.261,H.263,H.263+,H.264标准以及ISO的MPEG组织制定的MPEG-1,MPEG-2,MPEG-4等都是建立在混合编码(Hybrid Coding)框架之上的。所谓混合编码框架是一种混合时间空间视频图象编码方法,这种方法包括先进行帧内、帧间的预测,以消除时间域的相关性;然后对原始图象与预测结果的残差进行二维变换(采用离散余弦变换或其它线性变换),消除空间相关性;然后进行熵编码,去除统计上的冗余度。
为了提高视频信号的压缩效率,预测是视频编码标准中最重要的技术,预测方法一般分为帧内预测和帧间预测。
在上述视频编码标准中,宏块(16×16的图象象素块)是预测及编解码的基本单位。帧间预测方法是用这些矩形块大小的原始图象(原始输入的图象),即原始图象块,在参考图象(在以前编码的重建帧中用作为参考的图象)中进行运动估计,就得到原始图象块的最佳匹配图象块作为预测结果。帧内预测方法是在当前编码帧中利用需要编码的矩形块周围已经编码的矩形块,对需要编码的矩形块进行预测得到的预测矩形块作为预测结果。
目前在视频编码标准中,主要存在四种预测编码方法。因为视频信号的输入可以分为逐行扫描的和隔行扫描的。逐行扫描的视频信号叫作帧图象,隔行扫描的视频信号叫作场图象。帧图象中的宏块叫帧宏块,场图象中的宏块叫场宏块。以帧宏块为单位的预测编码方法叫帧预测编码方法(简称帧编码),以场宏块为单位的预测编码方法叫场预测编码方法(简称场编码)。在H.261,H.263,H.263+,H.264标准以及ISO的MPEG组织制定的MPEG-1,MPEG-2,MPEG-4标准等都包含的帧编码,MPEG-2,MPEG-4,H.264还括场编码。在H.264又提出了根据编码代价进行自适应选择帧编码或场编码的自适应帧场预测编码方法,以及基于宏块对的自适应帧场预测编码方法。
帧场自适应预测编码方法为对视频信号首先分别进行帧编码和场编码然后根据两者的编码代价,决定采用帧编码还是场编码。这种预测编码方法能够适应帧图象和场图象,但是这种方法是以整帧的编码代价为依据进行选择的,当图像的一部分比较适合按帧编码,而另一部分比较适合按场编码时就无法找到最佳的编码方法。
基于宏块对的帧场自适应预测编码方法为编码单位是32行×16列的象素块,先进行基于宏块对的帧编码(分成上下两个宏块分别编码)和场编码(把奇数行和偶数行分别抽出来形成两个宏块再分别编码),然后根据两者的编码代价,决定采用帧编码还是场编码。这种预测编码方法能够较好的适应图像的局部运动,但在按场编码时编码第二个宏块时不利用第一个宏块做预测,效率仍然不是很高,而且复杂度很大。
因此,就需要一种更加有效,更加灵活的图像编码方法。

发明内容
由于现有技术中对整个图像的帧场自适应编码和基于宏块对的帧场自适应编码方法各有缺点,都不能很好的适应图像特性的变化。因此本发明提供一种新的图像数据自适应编码方法。该方法中,将图像分割为图像切片,在将图像切片进一步分割为宏块,在进行编码方式的选择时,以图像切片为单位选择帧编码还是场编码,这样即克服了整个图像编码方案灵活性不足的缺点,又避免了基于宏块的方案运算量太大、复杂度太大的缺点。
本发明的技术方案提供一种基于图像切片结构的帧场自适应编码方法,包括如下的步骤a.将图像划分成一个或数个图像切片;b.对所述每一个图像切片,分别进行帧编码和场编码;其中,进行帧编码时将所述图像切片划分成数个宏块,之后对每一个宏块进行编码;进行场编码时首先将所述图像切片的奇数行象素和偶数行象素分别形成一子切片,之后再将所述两个子切片划分成数个宏块,再对每一个宏块进行编码;c.根据所述帧编码和场编码的编码代价,选择代价较小的一个作为所述图像切片的编码方式;d.为所述每一个图像切片添加一图像切片头,其与其中的数个宏块的编码数据一同组成图像切片的编码数据,其中,所述图像切片头标示该图像切片中的宏块是采用帧编码方式还是场编码方式;e.为所述每一个图像切片添加一宏块索引,其不包括在所述图像切片的编码数据中;f.为所述每一个图像添加一图像头,其与其中的一个或数个图像切片的编码数据以及所述宏块索引一同组成图像的编码数据。
在上述的方法中,所述图像的最小单位为采用逐行扫描序列的一帧或者采用隔行扫描的相邻的两场。而所述图像切片为所述图像中的矩形区域,其左上角象素到所述图像上边和左边的距离都是16的整数倍,所述图像切片的高度和宽度也是16的整数倍。所述图像切片的最小单位是32×16象素。所述宏块的大小为16×16象素。
较佳的,采用该方法对所述图像切片进行场编码时,首先选择其中的一个子切片进行编码,之后再选择另一个子切片进行编码。在对后一个子切片进行编码时,进行运动补偿,所述运动补偿的参考范围可限制在所述前一个子切片之内。
本发明的方法中进行帧编码和场编码需要建立不同的宏块索引,对所述图像切片进行帧编码时,所述建立宏块索引按照如下的步骤按照光栅扫描的顺序从0开始依次递增,每次增加1。
而对所述图像切片进行场编码时,建立宏块索引按照如下的步骤e1.第一个子切片的左上角宏块的索引为0;e2.在同一个子切片内按照光栅扫描的顺序依次递增,每次增加1;e3.第二个子切片的左上角宏块的索引为第一个子切片的右下角宏块的索引加1。
采用上述技术方案后,可以大大地提高图像编码的效率,和传统的技术相比较,本发明的方法具有如下的优势(1)相对于整帧的帧场自适应编码方案来说,本发明的方法能够更好的适应图像的局部运动。
(2)相对于基于宏块对的帧场自适应编码方案来说,只需在图像切片头中标示(例如通过增加一个标志位来实现)其中的宏块是帧宏块还是场宏块,不需要再为每一个宏块对传送一个标志位来指出是帧宏块还是场宏块,从而提高了编码效率。
(3)图像切片可大可小,最大可以是整个图像,最小可以是32行×16列的象素块。因此只要适当设定图像切片的大小,本发明的方法既可实现整帧的帧场自适应编码方案又可实现基于宏块对的帧场自适应编码方案,具有更好的灵活性。
同时,采用上述的编码方法还可以降低编解码器的复杂度(1)解码器每次解一个图像切片。在图像切片内部宏块的编码模式是一致的,不需要像解码基于宏块对的帧场自适应编码方案那样进行帧场切换,从而简化了代码的编写和存储器访问的次数。
(2)编码器可以做得很简单,也可以做得很复杂。最简单的就是退化到整帧的帧场自适应,即一个图像只有一个图像切片。对于非实时的应用,编码器可以实现复杂的优化算法,在所有可能的图像切片分割方式中寻找最佳的分割方式。但是编码器的实现并不影响解码器,无论编码器怎么编码,对于解码器来说都是一样的。


本发明的特征、本质和优势将在下面结合附图和实施例的描述之后变得更加明显,其中图1是按照本发明的图像数据自适应编码方法的一个实施例的流程图;图2是按照本发明的图像数据自适应编码方法对一视频流中的图像进行编码的过程的一个实施例的流程图;
图3是按照本发明的图像数据自适应编码方法对一视频流中的图像进行解码的过程的一个实施例的流程图。
具体实施例方式
下面结合附图和实施例来进一步说明本发明的技术方案。
本发明的主要设计思想是将图像首先分割成图像切片,图像切片的大小是可以变化的,最大可以设定为整个图像,而最小可以设定为一个宏块的大小。在每一个图像切片中,再分成若干个宏块,在对图像进行编码时,以图像切片为单位考虑所采用的编码方式(帧编码或者是场编码),即同一个图像切片中的宏块都采用相同的编码方式。通过设定图像切片,就能将图像进行合理的分割,比如,在图像中,一部分的区域比较适合使用帧编码的方式,而另一部分区域比较适合使用场编码的方式,按照本发明的方法,就可以将它们划分成不同的图像切片,分别采用帧编码和场编码的方式进行编码。这样,就比传统技术中对整个图像统一编码的技术方案更加有效率。同时,和传统技术中基于宏块的编码方式相比,本发明中的图像切片的面积较大,也就是说一个图像中具有相对数量较少的图像切片,这样就使得编码运算的运算量和复杂度都得到了有效的降低。
本发明的基于图像切片结构的帧场自适应编码方法包括如下的步骤a.将图像划分成一个或数个图像切片。本发明中图像的最小单位为采用逐行扫描序列的一帧或者采用隔行扫描的相邻的两场。而图像切片为图像中的矩形区域,其左上角象素到图像上边和左边的距离都是16的整数倍,图像切片的高度和宽度也是16的整数倍。如前面所述的,图像切片的大小是可变的,最大可以为整个图像,最小理论上可以为一个宏块(16×16象素)的大小。但考虑到编码的性能和效率的问题,本发明的方法中最小的图像切片的大小为32×16象素(2个宏块的大小)。
b.对每一个图像切片,分别进行帧编码和场编码。其中,进行帧编码时将图像切片划分成数个宏块,每个宏块的大小为16×16象素,之后对每一个宏块进行编码。进行场编码时首先将图像切片的奇数行象素和偶数行象素分别形成一子切片,之后再将两个子切片划分成数个宏块,宏块的大小同样为16×16象素,再对每一个宏块进行编码。由于在进行场编码是其实需要的最小单位为两个宏块,因此本发明中规定图像切片的最小单位为2个宏块的大小。对于编码方式来说,无论帧编码的方式还是场编码的方式都是本领域中的成熟的技术,所以此处就不再多说了,这里还要说明的是,在进行场编码时,首先选择两个子切片其中的一个进行编码,之后再选择另一个子切片进行编码,且在对后一个子切片进行编码时,进行运动补偿,运动补偿的参考范围可限制在前一个子切片之内,也可以不不限制参考的范围。就运动补偿技术本身而言,其在本领域内是被广泛地使用的,所以这里就不详细介绍运动补偿的原理了。本发明的方法在对一图像切片进行场编码时使用前一切片的编码结果对后一切片的编码进行运动补偿,克服了现有技术中前后宏块之间没有联系而造成的运算量较大的缺点。
c.根据帧编码和场编码的编码代价,选择代价较小的一个作为所述图像切片的编码方式。步骤b完成后,以图像切片为单位比较采用帧编码和场编码方式的编码代价,选取代价较小的一个作为该图像切片的编码方式。
d.为每一个图像切片添加一图像切片头,其与其中的数个宏块的编码数据一同组成图像切片的编码数据,其中,图像切片头标示该图像切片中的宏块是采用帧编码方式还是场编码方式。经编码之后的图像切片数据应当包括图像切片头和其中各个宏块的编码数据,按照本发明的方法,每个图像切片头表明了该图像切片中的各个宏块所采用的编码方式。前面已经说过了,本发明中每一个图像切片中的所有宏块采用的编码方式相同。因此至需要在图像切片头中表明就可以了,例如在图像切片头中定义一个标志位,该标志位的值就表示了该图像切片中的宏块所采取的编码方式。本发明采用以图像切片为单位选择编码方式的方法,与传统的基于宏块的方式相比较,减少了分割区域的数量,减少了编码以及解码过程中的编解码方式的转换次数,降低了运算复杂度和运算量。
e.为每一个图像切片添加一宏块索引,其不包括在图像切片的编码数据中。按照本发明,一个图像切片中会具有数个宏块,为了区分这些宏块,建立一宏块索引,对于采用帧编码和场编码的图像切片而言,建立宏块索引的方式是不同的对图像切片进行帧编码时,建立宏块索引按照如下的步骤按照光栅扫描的顺序从0开始依次递增,每次增加1。
对所述图像切片进行场编码时,建立宏块索引按照如下的步骤e1.第一个子切片的左上角宏块的索引为0;e2.在同一个子切片内按照光栅扫描的顺序依次递增,每次增加1;e3.第二个子切片的左上角宏块的索引为第一个子切片的右下角宏块的索引加1。
f.为每一个图像添加一图像头,其与其中的一个或数个图像切片的编码数据以及宏块索引一同组成图像的编码数据。图像头中包括了一些组成视频流或者诸如网络地址的信息。
采用了本发明的技术方案后,大大地提高了图像编码的效率,和传统的两种技术相比较,本发明的方法具有如下的优势相对于整帧的帧场自适应编码方案来说,本发明的方法能够更好的适应图像的局部运动。
相对于基于宏块的编码方案来说,只需在图像切片头中标示(例如通过增加一个标志位来实现)其中的宏块是帧宏块还是场宏块,不需要再为每一个宏块对传送一个标志位来指出是帧宏块还是场宏块,从而提高了编码效率。
同时,图像切片可大可小,最大可以是整个图像,最小可以是32行×16列的象素块。因此只要适当设定图像切片的大小,本发明的方法既可实现整帧的帧场自适应编码方案又可实现基于宏块对的帧场自适应方法方案,具有更好的灵活性。
在解码采用本发明的方法进行编码的图像数据时,同样具有如下的几点优势解码器每次解一个图像切片。在图像切片内部宏块的编码模式是一致的,不需要像解码基于宏块的编码方案那样进行帧场切换,从而简化了代码的编写和存储器访问的次数。
编码器可以做得很简单,也可以做得很复杂。最简单的就是退化到整帧的帧场自适应,即一个图像只有一个图像切片。对于非实时的应用,编码器可以实现复杂的优化算法,在所有可能的图像切片分割方式中寻找最佳的分割方式。但是编码器的实现并不影响解码器,无论编码器怎么编码,对于解码器来说都是一样的。
下面结合图2和图3分别介绍一下采用本发明的方法对一视频流中的图像进行编码和解码的具体实施步骤。
图2是按照本发明的图像数据自适应编码方法对一视频流中的图像进行编码的过程的一个实施例的流程图。如图2示,包括如下的步骤S21.获得视频序列中图像的原始数据;S22.判断是否还有未编码的图像,如果没有了的话转S28;S23.把图像划分为一个或数个图像切片;S24.判断是否还有未编码的图像切片,如果没有了的话转S22,继续判断视频流中的下一图像;S25.判断该图像切片的编码方式是不是按帧编码,不是的话转S27;S26.按帧编码该图像切片,并转S24;S27.按场编码该图像切片,并转S24S28.结束。
需要注意的是,该流程图中只是说明了对视频流中的图像进行编码的总体步骤,具体的实施细节请参见前面所述的步骤a-f。
图3是按照本发明的图像数据自适应编码方法对一视频流中的图像进行解码的过程的一个实施例的流程图。
S31.获得经编码的视频序列编码数据,例如是按照上述的步骤S21一S27所编码的;S32.判断是否还有未解码的图像,如果没有的话转S38;S33.判断是否还有未编码的图像切片,如果没有的话转S32;S34.解码一个图像切片头;S35.判断该图像切片的编码方式是不是按帧编码的,不是的话转S37;S36.按帧编码的方式解码该图像切片,转S33;
S37.按场编码的方式解码该图像切片,转S33S38.结束。
上述实施例是提供给熟悉本领域内的人员来实现或使用本发明的,熟悉本领域的人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。
权利要求
1.一种基于图像切片结构的帧场自适应编码方法,包括如下的步骤a.将图像划分成一个或数个图像切片;b.对所述每一个图像切片,分别进行帧编码和场编码;其中,进行帧编码时将所述图像切片划分成数个宏块,之后对每一个宏块进行编码;进行场编码时首先将所述图像切片的奇数行象素和偶数行象素分别形成一子切片,之后再将所述两个子切片划分成数个宏块,再对每一个宏块进行编码;c.根据所述帧编码和场编码的编码代价,选择代价较小的一个作为所述图像切片的编码方式;d.为所述每一个图像切片添加一图像切片头,其与其中的数个宏块的编码数据一同组成图像切片的编码数据,其中,所述图像切片头标示该图像切片中的宏块是采用帧编码方式还是场编码方式;e.为所述每一个图像切片添加一宏块索引,其不包括在所述图像切片的编码数据中;f.为所述每一个图像添加一图像头,其与其中的一个或数个图像切片的编码数据以及所述宏块索引一同组成图像的编码数据。
2.如权利要求1所述的方法,其特征在于,所述图像的最小单位为采用逐行扫描序列的一帧或者采用隔行扫描的相邻的两场。
3.如权利要求2所述的方法,其特征在于,所述图像切片为所述图像中的矩形区域,其左上角象素到所述图像上边和左边的距离都是16的整数倍,所述图像切片的高度和宽度也是16的整数倍。
4.如权利要求3所述的方法,其特征在于,所述图像切片的最小单位是32×16象素。
5.如权利要求1至4中任一项所述的方法,其特征在于,所述宏块的大小为16×16象素。
6.如权利要求1所述的方法,其特征在于,对所述图像切片进行场编码时,首先选择其中的一个子切片进行编码,之后再选择另一个子切片进行编码。
7.如权利要求6所述的方法,其特征在于,在对后一个子切片进行编码时,进行运动补偿,所述运动补偿的参考范围可限制在所述前一个子切片之内。
8.如权利要求1所述的方法,其特征在于,对所述图像切片进行帧编码时,所述建立宏块索引按照如下的步骤按照光栅扫描的顺序从0开始依次递增,每次增加1。
9.如权利要求1所述的方法,其特征在于,对所述图像切片进行场编码时,建立宏块索引按照如下的步骤e1.第一个子切片的左上角宏块的索引为0;e2.在同一个子切片内按照光栅扫描的顺序依次递增,每次增加1;e3.第二个子切片的左上角宏块的索引为第一个子切片的右下角宏块的索引加1。
全文摘要
本发明公开了一种基于图像切片结构的帧场自适应编码方法,包括如下的步骤将图像划分成图像切片;对每一个图像切片,分别进行帧编码和场编码;选择代价较小的一个作为图像切片的编码方式;为每一个图像切片添加一标示该图像切片所采用的编码方式的图像切片头;为每一个图像切片添加一宏块索引;为每一个图像添加一图像头,其与其中的一个或数个图像切片的编码数据以及宏块索引一同组成图像的编码数据。本发明的方法既克服了整个图像帧场自适应编码方案灵活性不足的缺点,又克服了基于宏块对的帧场自适应编码方案运算量太大、复杂度太大的缺点。
文档编号H04N7/32GK1595990SQ20041002571
公开日2005年3月16日 申请日期2004年7月2日 优先权日2004年7月2日
发明者赵海武 申请人:上海广电(集团)有限公司中央研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1