专利名称:一种基于微块的视频信号编/解码方法
技术领域:
本发明属于信号处理中的视频编解码技术领域,尤其涉及一种基于微块的视频信号编/解码方法。
背景技术:
电视电话,电话会议系统,视频点播系统,以及其他一些传输动态图像的系统的问世,使得对这类图像的编码的方法也要国际标准化。ITU-T制定的H.261、H.263和H.264,以及由运动图像专家组制定的MPEG-1,MPEG-2,MPEG-3就是这类图像的压缩标准,其中有些已经被世界标准组织所采用。在这些标准中,预测是一种最重要的技术,预测方法一般分为帧内预测和帧间预测,宏块(16×16的图像像素块)是预测及编解码的基本单位。宏块由图像的一部分的亮度分量和与这部分空间相关的色差分量组成,它的格式是多样的,最常用的格式是用术语4:2:0来表达的,它表示了每个宏块包含了4个8*8的亮度像素,每个亮度像素为8比特,和2个8*8的色度像素,每个色度像素为8比特。
帧间预测方法是用这些矩形块大小的原始图像(原始输入的图像),即原始图像块,在参考图像(在以前编码的重建帧中用作为参考的图像)中进行运动估计,就得到原始图像块的最佳匹配图像块作为预测结果。帧内预测方法是在当前编码帧中利用需要编码的矩形块周围已经编码的矩形块,对需要编码的矩形块进行预测得到的预测矩形块作为预测结果。在H.264视频编码标准中,帧间编码采用不同大小的宏块分割和亚分割方法,支持7种不同宏块大小的帧间编码模式,即每个宏块都可以按照16像素*16像素,16像素*8像素,8像素*16像素,8像素*8像素进行分割,如果选择8像素*8像素的宏块模式,还可以按照8像素*4像素,4像素*8像素或者4像素*4像素进行宏块亚分割。在编码时,编码器对每一种可能的宏块模式进行运动搜索,并且计算其代价,然后找到代价最小的宏块模式,由于需要计算每一种宏块模式的代价,则大大的增加了计算量,降低了编码的速率。对于帧内编码,由于宏块模式比较多,这样就使得块相邻关系和帧内预测和编解码也变得复杂。
发明内容
本发明是为了克服现有帧内编解码复杂的缺陷而提出的一种基于微块的视频信号编/解码方法。本发明利用微块的特点,结合8×8和4×4自适应变换、基于上下文的算术编码、多参考帧预测,帧场自适应、分像素插值和自适应插值滤波器等编码方法,可以有效的提高视频信号的压缩效率。
本发明采取的技术方案是一种基于微块的视频信号编/解码方法,其特点是,所述的微块为一8×8数据块,该8×8数据块对应图像上8像素×8像素的像素方块;所述的编/解码方法包括对每帧中各具有亮度数据的微块进行编码和解码;其中,编码时首先编亮度数据,以微块为单位按照从上到下、从左到右的顺序依次编码;若该微块具有色度数据,则再依次编具有两个色度Cb和Cr的色度数据,同样是以微块为单位按照从上到下、从左到右的顺序依次编码;解码时首先解码亮度数据,以微块为单位按照从上到下、从左到右的顺序依次解码;如果该帧包含色度数据,则依次解码两个色度Cb和Cr的数据,同样是以微块为单位按照从上到下、从左到右的顺序依次解码;上述一种基于微块的视频信号编/解码方法,其中,所述的8×8数据块为色度数据和/或亮度数据。
上述一种基于微块的视频信号编/解码方法,其中,所述的亮度编码包括下列步骤(1)确定当前微块的预测模式是帧内预测还是帧间预测;(2)确定当前微块的分割模式,并根据确定的分割模式将当前微块分割成一、二或四个分块;(3)如果是帧内预测,为每一个分块确定帧内预测模式;如果是帧间预测,为每一个分块确定运动矢量;(4)对预测残差进行变换;
(5)对变换系数进行量化;(6)对分割模式、预测模式或者运动矢量以及量化后的变换系数进行熵编码;(7)重复(1)到(6)步骤,直到所有的亮度微块完成编码。
上述一种基于微块的视频信号编/解码方法,其中,所述的色度编码包括对两个色度分量的编码,包括以下步骤(1)确定当前微块的预测模式是帧内预测还是帧间预测;(2)确定当前微块的分割模式,并根据确定的分割模式将当前微块分割成一、二或四个分块;(3)如果是帧内预测,为每一个分块确定帧内预测模式;如果是帧间预测,为每一个分块确定运动矢量;(4)对预测残差进行变换(5)对变换系数进行量化;(6)对分割模式、预测模式或者运动矢量以及量化后的变换系数进行熵编码;(7)重复(1)到(6)步骤,直到所有的微块完成第一个色度分量的编码;(8)重复(1)到(7)步骤一次,完成第二个色度分量编码。
上述一种基于微块的视频信号编/解码方法,其中,亮度编码中步骤(2)和色度编码步骤(2)所述的确定当前微块的分割模式为8×8、8×4、4×8或4×4模式。
上述一种基于微块的视频信号编/解码方法,其中,所述的亮度解码包括以下步骤(1)对微块进行变长码解码或者算术解码,得到包括微块编码模式,分割模式、预测模式或者运动矢量、量化后的变换系数的数据;(2)根据步骤(1)得到的预测模式或者运动矢量计算预测值;(3)根据步骤(2)的预测值进行反量化和反变换,计算残差值;(4)将步骤(2)和步骤(3)得到的预测值和残差值相加得到一个解码微块的值;
(5)重复第(1)到第(4)的步骤,直到所有的亮度微块都被解码。
上述一种基于微块的视频信号编/解码方法,其中,所述的色度解码包括对两个色度分量的解码,包括以下步骤(1)进行变长码解码或者算术解码,得到包括微块编码模式,分割模式、预测模式或者运动矢量、量化后的变换系数的数据;(2)根据步骤(1)得到的预测模式或者运动矢量计算预测值;(3)根据步骤(2)得到的预测值进行反量化和反变换,计算残差值;(4)将步骤(2)和步骤(3)得到的预测值和残差值相加得到解码微块的值;(5)重复第(1)到第(4)的步骤,直到所有的色度微块的第一个色度分量都被解码;(6)重复第(1)到第(4)的步骤,直到所有的色度微块的第二个色度分量都被解码。
上述一种基于微块的视频信号编/解码方法,其中,所述的编码一帧时,对于编码亮度数据,不论是帧内预测还是帧间预测,微块可以进一步划分为8×4,4×8和4×4等三种模式;编码色度数据时,不论是帧内预测还是帧间预测,微块都不再进一步划分。
上述一种基于微块的视频信号编/解码方法,其中,所述的编码色度数据时,如果是帧内预测,则不参考亮度数据的编码结果;如果是帧间预测,则利用空间位置上相同的几个亮度微块的运动矢量来预测当前色度微块的运动矢量,或为色度微块单独传送一个运动矢量或者传送一个差分量。
本发明的具体特征性能由以下的实施例及其附图进一步描述。
图1是本发明的一帧数据的结构示意图。
图2是图1中其中一个微块的放大示意图。
图3是本发明的基于微块的编码方法的编码过程的一个实施例的流程图。
图4是本发明的基于微块的编码方法的解码过程的一个实施例的流程图。
具体实施例方式
请参阅图1、图2。其中图1是一帧数据的结构示意图,图2是该一帧中一个微块的放大结构示意图。本发明所述的微块100是将该一帧中的数据划分成8×8的亮度或者色度采样数据构成的方块获得,该8×8数据块对应图像上8像素×8像素的像素方块。
本发明是基于微块的编/解码方法。编码一帧时,首先编亮度数据,以微块为单位按照从上到下、从左到右的顺序依次编码;如果具有色度数据,再依次编两个色度Cb和Cr的数据,同样是以微块为单位按照从上到下、从左到右的顺序依次编码。编码亮度数据时,不论是帧内预测还是帧间预测,微块可以进一步划分为8×4,4×8和4×4等三种模式。编码色度数据时,不论是帧内预测还是帧间预测,微块都不再进一步划分。编码色度数据时,如果是帧内预测,则不参考亮度数据的编码结果;如果是帧间预测,则可以利用空间位置上相同的几个亮度微块的运动矢量来预测当前色度微块的运动矢量,也可以为色度微块单独传送一个运动矢量或者传送一个差分量。下面结合附图3、4和具体实施例来进一步说明本发明的技术方案。
图3是本发明的基于微块的编码方法的编码过程的一个实施例的流程图。如图3所示,该实施例包括以下步骤1)将微块作为预测基本单位,该微块可以是亮度数据,也可以是色度数据。
2)进行亮度编码,包括下列步骤(1)确定当前微块的预测模式,即帧内预测还是帧间预测;(2)确定当前微块的分割模式,即8×8、8×4、4×8或4×4(3)如果是帧内预测,为每一个分块确定帧内预测模式。例如可以在直流预测、垂直预测、水平预测、正负45度两个方向预测等5个帧内预测模式中选择一个预测效果最好的作为该分块的预测模式;如果是帧间预测,为每一个分块确定运动矢量。例如可以采用全搜索的方法在48×48像素范围内搜索,精度为四分之一像素,将匹配最好的一个位置和该分块的位置的插值作为该分块的运动矢量;(4)对预测残差进行变换。例如可以采用8×8DCT;
(5)对变换系数进行量化。可以分64个量化级,根据码率要求选择一个量化级或者指定的量化级进行量化;(6)对分割模式、预测模式或者运动矢量以及量化后的变换系数进行熵编码,熵编码可以采用变长码表也可以采用算术编码;(7)重复(1)到(6)步骤,直到所有的亮度微块完成编码;3)进行色度编码,包括下列步骤(1)确定当前微块的预测模式,即帧内预测还是帧间预测;(2)确定当前微块的分割模式,即8×8、8×4、4×8或4×4(3)如果是帧内预测,确定帧内预测模式;如果是帧间预测,确定运动矢量。例如可以在直流预测、垂直预测、水平预测、正负45度两个方向预测等5个帧内预测模式中选择一个预测效果最好的作为该分块的预测模式;如果是帧间预测,为每一个分块确定运动矢量。例如可以采用全搜索的方法在48×48像素范围内搜索,精度为四分之一像素,将匹配最好的一个位置和该分块的位置的插值作为该分块的运动矢量;(4)对预测残差进行变换。例如可以采用8×8DCT;(5)对变换系数进行量化;(6)对分割模式、预测模式或者运动矢量以及量化后的变换系数进行熵编码,熵编码可以采用变长码表也可以采用算术编码;(7)重复(1)到(6)步骤,直到所有的微块完成编码;(8)重复(1)到(7)步骤一次,完成第二个色度分量编码;图3是本发明的基于微块的编码方法的解码过程的一个实施例的流程图。如图3所示,该实施例包括以下步骤1)亮度解码进行变长码解码或者算术解码,得到微块编码模式,分割模式、预测模式或者运动矢量、量化后的变换系数等等;根据预测模式或者运动矢量计算预测值;(3)进行反量化和反变换,计算残差值;(4)预测值和残差值相加得到解码微块的值;(5)重复第(1)到第(4)的步骤,直到所有的亮度微块都被解码;
2)色度解码进行变长码解码或者算术解码(具体算法由编码端确定),得到微块编码模式,分割模式、预测模式或者运动矢量、量化后的变换系数等等;根据预测模式或者运动矢量计算预测值,具体算法由编码端确定;进行反量化和反变换,计算残差值,具体算法由编码端确定;预测值和残差值相加得到解码微块的值;重复第(1)到第(4)的步骤,直到所有的色度微块都被解码。
本发明利用微块的特点,使编解码方法简单,同时可以有效的提高视频信号的压缩效率。
权利要求
1.一种基于微块的视频信号编/解码方法,其特征在于,所述的微块为一8×8数据块,该8×8数据块对应图像上8像素×8像素的像素方块;所述的编/解码方法包括对每帧中亮度数据的微块进行编码和解码,如果该帧包含色度数据,那么还包括依次对两个色度Cb和Cr的微块进行编码和解码;其中,编码时首先编码亮度数据,以微块为单位按照从上到下、从左到右的顺序依次编码;如果该帧包含色度数据,则依次编码两个色度Cb和Cr的数据,同样是以微块为单位按照从上到下、从左到右的顺序依次编码;解码时首先解码亮度数据,以微块为单位按照从上到下、从左到右的顺序依次解码;如果该帧包含色度数据,则依次解码两个色度Cb和Cr的数据,同样是以微块为单位按照从上到下、从左到右的顺序依次解码;
2.根据权利要求1所述的一种视频信号编码中的微块,其特征在于,所述的8×8数据块可以是亮度数据,也可以是某一个色度Cb或Cr的数据,但是不能同时包含亮度数据和色度数据,也不能同时包含两个色度Cb和Cr的数据。
3.根据权利要求1所述的一种基于微块的视频信号编/解码方法,其特征在于,所述的亮度编码包括下列步骤(1)确定当前微块的预测模式是帧内预测还是帧间预测;(2)确定当前微块的分割模式,并根据确定的分割模式将当前微块分割成一、二或四个分块;(3)如果是帧内预测,为每一个分块确定帧内预测模式;如果是帧间预测,为每一个分块确定运动矢量;(4)对预测残差进行变换;(5)对变换系数进行量化;(6)对分割模式、预测模式和运动矢量以及量化后的变换系数进行熵编码;(7)重复(1)到(6)步骤,直到所有的亮度微块完成编码。
4.根据权利要求1所述的一种基于微块的视频信号编/解码方法,其特征在于,所述的色度编码包括对两个色度分量的编码,包括以下步骤(1)确定当前微块的预测模式是帧内预测还是帧间预测;(2)确定当前微块的分割模式,并根据确定的分割模式将当前微块分割成一、二或四个分块;(3)如果是帧内预测,为每一个分块确定帧内预测模式;如果是帧间预测,为每一个分块确定运动矢量;(4)对预测残差进行变换(5)对变换系数进行量化;(6)对分割模式、预测模式和运动矢量以及量化后的变换系数进行熵编码;(7)重复(1)到(6)步骤,直到所有的微块完成第一个色度分量的编码;(8)重复(1)到(7)步骤一次,完成第二个色度分量编码。
5.根据权利要求3或4所述的一种基于微块的视频信号编/解码方法,其特征在于,亮度编码的步骤(2)和色度编码的步骤(2)所述的确定当前微块的分割模式为8×8、8×4、4×8或4×4模式。
6.根据权利要求1所述的一种基于微块的视频信号编/解码方法,其特征在于,所述的亮度解码包括以下步骤(1)对微块进行熵解码,得到包括微块编码模式,分割模式、预测模式或者运动矢量、量化后的变换系数的数据;(2)根据步骤(1)得到的预测模式和运动矢量计算预测值;(3)根据步骤(1)得到的变换系数进行反量化和反变换,计算残差值;(4)将步骤(2)和步骤(3)得到的预测值和残差值相加得到一个解码微块的值;(5)重复第(1)到第(4)的步骤,直到所有的亮度微块都被解码。
7.根据权利要求1所述的一种基于微块的视频信号编/解码方法,其特征在于,所述的色度解码包括对两个色度分量的解码,包括以下步骤(1)进行熵解码,得到包括微块编码模式,分割模式、预测模式和运动矢量、量化后的变换系数的数据;(2)根据步骤(1)得到的预测模式或者运动矢量计算预测值;(3)根据步骤(1)得到的变换系数进行反量化和反变换,计算残差值;(4)将步骤(2)和步骤(3)得到的预测值和残差值相加得到解码微块的值;(5)重复第(1)到第(4)的步骤,直到解码帧第一个色度的全部微块都被解码;(6)重复第(1)到第(4)的步骤,直到解码帧第二个色度的全部微块都被解码。
8.根据权利要求1所述的一种基于微块的视频信号编/解码方法,其特征在于,所述的编码一帧时,对于编码亮度数据,不论是帧内预测还是帧间预测,微块可以进一步划分为8×4,4×8和4×4等三种模式;编码色度数据时,不论是帧内预测还是帧间预测,微块都不再进一步划分。
9.根据权利要求1所述的一种基于微块的视频信号编/解码方法,其特征在于,所述的编码色度数据时,如果是帧内预测,则不参考亮度数据的编码结果;如果是帧间预测,则利用空间位置上相同的几个亮度微块的运动矢量来预测当前色度微块的运动矢量,或为色度微块单独传送一个运动矢量或者传送一个差分量。
全文摘要
本发明一种基于微块的视频信号编/解码方法,其特点是,所述的微块为一8×8数据块;编码一帧时,首先编亮度数据,以微块为单位按照从上到下、从左到右的顺序依次编码,再依次以同样方式编两个色度Cb和Cr的数据。编码色度数据时,如果是帧内预测,不参考亮度数据的编码结果;如果是帧间预测,可以利用空间位置上相同的几个亮度微块的运动矢量来预测当前色度微块的运动矢量,也可以采用其他任何方法为色度微块确定一个运动矢量。本发明利用微块的特点,使编解码方法简单,同时可以有效的提高视频信号的压缩效率。
文档编号H04N7/32GK1777283SQ20051000385
公开日2006年5月24日 申请日期2004年12月31日 优先权日2004年12月31日
发明者赵海武, 张一钧, 王国中, 侯钢 申请人:上海广电(集团)有限公司