CN1471321A - 基于运动估计的小波视频编解码方法 - Google Patents
基于运动估计的小波视频编解码方法 Download PDFInfo
- Publication number
- CN1471321A CN1471321A CNA031495044A CN03149504A CN1471321A CN 1471321 A CN1471321 A CN 1471321A CN A031495044 A CNA031495044 A CN A031495044A CN 03149504 A CN03149504 A CN 03149504A CN 1471321 A CN1471321 A CN 1471321A
- Authority
- CN
- China
- Prior art keywords
- frame
- carried out
- image
- coding
- decoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
一种基于运动估计的小波视频编解码方法,在编码端首先确定图像数据转换为YUV格式,默认第一帧图像为I帧,对其后的视频帧默认为PB帧,对所述其后的视频帧进行运动估计,根据运动估计的结果,自适应的重新调整所述其后的视频帧的类型,根据视频帧类型,对I帧进行帧内编码,对PB帧进行帧间编码,相应的,在解码端首先默认第一帧图像为I帧,并根据编码码流中的信息得到其后视频帧的编码类型,确定其为I帧或PB帧,然后对I帧进行帧内解码,对PB帧进行帧间解码,最后将还原图像数据转换为要求的格式,本发明自适应的判断编码类型,使编码方法更加灵活,提高了编码效率,能在较低或甚低传输速率下实现较高质量的可靠的图像压缩。
Description
技术领域
本发明涉及一种视频图像的编解码方法,特别涉及一种基于运动估计的小波视频编解码方法。
背景技术
目前多媒体图像压缩标准大都基于传统的离散余弦变换(DCT),包括静止图像的JPEG标准、运动图像的MPEG1/2/4系列标准以及用于低码率视频通信的H.261/H.263标准等。
H.263是国际电信协会-电信标准化部门ITU-T(The InternationalTelecommunications Union-Telecommunication Standardization Sector)于1995年通过的用于低比特率实时传输的视频编解码标准。其设计初衷是满足带宽低于64kbps的低带宽视频应用需求,如视频会议、可视电话等。H.263的输入视频帧格式为QCIF(Quarter Common Intermediate Format,大小为176×144)、CIF(Common Intermediate Format,大小为352×288)等。将每个视频帧分成许多宏块(MB-Micro Block),每个宏块由4个Y亮度块、1个Cb色度块和1个Cr色度块组成。块(Block)的大小为8×8。H.263以宏块为单位进行视频帧的压缩。
H.263使用离散余弦变换DCT(Discrete Cosine Transform)减小空间冗余,使用运动估计和运动补偿(Motion Estimation and MotionCompensation)减小时间冗余。H.263有两种编码方式,一种是Intra方式,帧内编码,产生的帧作为关键帧—I帧;另一种是Inter方式,帧间编码,产生的帧作为非关键帧—P帧;而B帧是使用与它在时间上最近邻的前后两个I帧或P帧来预测的,它自己并不作为任何其它帧的参考图像。
运动估计是指在参考帧中搜索一个与当前帧图像块最相似的图像块,即最佳匹配块,搜索结果用运动向量来表示。有两种方法进行运动估值,一种是差的平方的和(SSD),另一种是差的绝对值的和(SAD),这两种方法在特定的环境下都有自己的优点和局限性,由于SAD实现起来比较快(没有乘法运算),MPEG中使用SAD方法进行运动估值;运动补偿是指利用参考帧和已求得的运动向量重构当前帧,把重构帧和当前帧的差值作为当前帧的补偿值进行压缩编码。两者互相配合,共同实现压缩效果。
运动估计算法的研究从两方面着手:快速搜索算法和块匹配准则。最简单的搜索算法是全搜索法(FS),这种算法精度高,但计算量过于庞大。为了加快运算速度,保证精度,人们提出了很多快速搜索算法:三步法(TSS)及基于三步法的改进算法、二维对数法(LOGS)、交叉搜索法(CS)、四步法(4SS)、预测搜索法(PSA)、钻石(菱形)搜索法(DS)等。钻石搜索法是迄今为止综合性能最优的快速搜索算法之一。块匹配准则决定何时找到最佳匹配块,从而终止搜索进程。传统的准则有绝对平均误差函数(MAE)、互相关函数(CCF)、均方误差函数(MSE)、最大误差最小函数(MME)等。由于传统方法没有考虑人眼的视觉特性,所以判断结果和人眼的感知相差较大。实际H.263采用的块匹配准则为MSE的替代准则SAD(绝对差和),SAD用绝对值运算代替了MSE的乘方运算,明显降低了运算量,从而可以加快计算速度。
目前基于运动估计的视频编码方案,通常是首先对每一帧图像进行格式转换,转换成Y,U,V三个分量,然后默认第一帧图像为I帧,对其进行帧内编码;强制指定其后的序列中的图像指定为I帧、P帧或B帧,分别对其进行帧内或帧间编码,其中I帧和P帧都可以作为帧间编码的参考帧;帧内编码采用分块的DCT变换,然后使用量化、熵编码,将编码数据输入码流;帧间编码分为运动估计、运动补偿、运动矢量编码和残差图像编码几个部分;帧间编码的运动估计只对Y分量进行,得到的运动矢量适用于UV分量;运动估计分为两大类,其中P帧采用单向运动估计,B帧采用双向运动估计,运动估计是将图像划分为若干个宏块进行的,包括整像素运动估计和半像素运动估计,运动估计后的宏块分为两种:inter块和intra块;对于inter块,需要根据其参考帧和当前帧,进行运动补偿,并对其残差进行DCT变换、量化和熵编码;对于intra块,则直接对其进行帧内编码;运动矢量编码采用差分的哈夫曼编码。
在解码端,首先默认第一帧图像为I帧,对其进行帧内解码;对其后的序列中的图像可以指定为I帧、P帧或B帧,分别对其进行帧内或帧间解码,其中I帧和P帧的还原帧都可以作为帧间解码的参考帧;帧内解码根据输入码流,对其进行解码,通过反量化和分块的DCT反变换,得到还原帧数据;帧间解码分为运动矢量解码、残差图像解码和运动补偿几个部分,运动矢量解码采用与编码端一致的哈夫曼解码;帧间解码分宏块进行,宏块种类分为:inter块和intra块,对于inter块,对其进行反量化和分块的DCT反变换,并根据其参考帧和解码的运动矢量,进行运动补偿,对于intra块,则直接对其进行帧内解码,最后将还原图像数据进行格式转换,从YUV格式转换为RGB格式。
然而,基于DCT分块压缩技术的压缩效率很低,在保证恢复图像质量可以接受的条件下,压缩比约为1∶20~40,但是在较大压缩倍数下,块效应将使图像质量急剧恶化。H.261和H.263是依赖视频序列在时域和空域的冗余来提高压缩比,但在较低码率条件下,视频序列的帧率大大低于25~30帧/秒,因而视频序列在时域的相关性减弱,导致H.261和H.263的编码效率必然降低。再者,从H.263可视电话标准的应用来看,DCT变换技术明显不适合于低码率图像传输,由DCT变换和运动估计所带来的块效应是影响图像质量的主要因素。DCT变换的分块特性,使得I帧的还原图像也存在马赛克,降低了图像的还原质量,也影响了其作为参考帧的运动估计结果。
而且,现有方案也没有充分考虑图像序列运动的剧烈程度,强制指定图像的编码类型,编码机制不灵活,会影响图像序列的还原质量;帧间编码运动估计的代价函数过于单一,不能根据运动估计的情况自适应的调整该帧图像的编码类型,同时,运动矢量的哈夫曼编码过于复杂,而码字的长度也有冗余,编码效率不高。
发明内容
本发明所要解决的技术问题在于提供一种基于运动估计的小波视频编解码方法,从而能在较低或甚低传输速率下,实现较高质量的可靠的图像压缩。
本发明提供一种基于运动估计的小波视频编码方法,首先确定图像数据转换为YUV格式;默认第一帧图像为I帧,对其后的视频帧默认为PB帧;对所述其后的视频帧进行运动估计;根据运动估计的结果,自适应的重新调整所述其后的视频帧的类型;根据视频帧类型,对I帧进行帧内编码,对PB帧进行帧间编码。
相应的,本发明还提供一种基于运动估计的小波视频解码方法,首先默认第一帧图像为I帧,并根据编码码流中的信息得到其后视频帧的编码类型,确定其为I帧或PB帧;然后对I帧进行帧内解码,对PB帧进行帧间解码;最后将还原图像数据转换为要求的数据格式。
本发明用自适应的判断取代了传统MPEG和H.263中只能每隔一个固定数目做一个I帧的机械做法,使编码方法更加灵活,充分利用一帧图像在时间上与前几帧的相关性,提高了编码效率,还可以结合小波变换的全局性特点,对PB帧模式的运动估计进行改进,取消帧内块概念,同时还可以对哈夫曼编码表按照需要进行改进,进一步缩短了编码长度,从而使本发明能在较低或甚低传输速率下,实现较高质量的可靠的图像压缩。
附图说明
图1是本发明之基于运动估计的小波视频编码方法流程图;
图2是本发明对视频帧进行运动估计之实施例流程图;
图3是本发明之优选实施例所应用的LIST二维数组示意图;
图4是本发明之优选实施例所应用的SDL二维数组示意图;
图5是本发明之优选实施例所应用的SPIHT编码初始化示意图;
图6是本发明之基于运动估计的小波视频解码方法流程图。
具体实施方式
本发明提供一种基于运动估计的小波视频编码方法,如图1所示,首先确定图像数据转换为YUV格式(步骤101),一般而言,是将RGB格式的数据转换为YUV格式,但如果输入直接是YUV格式的数据,则该步骤可以省略;默认第一帧图像为I帧,对其后的视频帧默认为PB帧(步骤102);对所述其后的视频帧进行运动估计(步骤103);根据运动估计的结果,自适应的重新调整所述其后的视频帧的类型(步骤104);根据视频帧类型,对I帧进行帧内编码,对PB帧进行帧间编码(步骤105),其中,I帧和P帧都可以作为帧间编码的参考帧。
为了进一步提高还原图像序列的质量,对所述其后的视频帧还可以指定每隔一定时间强迫一帧图像为I帧,来进行帧内编码。
对图像数据进行图像数据格式转换,RGB与YUV的相互转换是浮点运算,对整个图像进行浮点运算相当耗时,在硬件实现时可以把浮点运算改成整数运算。
本发明中采用的RGB到YUV整数转换公式为:
Y=[(9798R+19235G+3736B)/215]
U=[(-4784R-9437G+14221B)/215]+128
V=[(20218R-16941G-3277B)/215]+128
YUV到RGB整数转换公式:
U-=128
V-=128
R=[(32768Y+31326U+20348V)/215]
G=[(32768Y-8912U-21200V)/215]
B=[(32768Y-36244U-55804M)/215]
如图2所示,对视频帧进行运动估计时,可以把当前帧划分成M×N大小的宏块,并预设SAD阈值(步骤201);然后对每一宏块在参考帧范围内进行搜索,在参考帧和原始帧的SAD值大于SAD阈值时,则视为该宏块运动估计失败(步骤202);同时,累计所述当前帧运动估计失败的宏块数,并预设失败数阈值(步骤203);比较所述当前帧累计运动估计失败的宏块数与所述失败数阈值(步骤204),如果所述当前帧累计运动估计失败的宏块数大于所述失败数阈值,则将所述当前帧调整为I帧,否则则判断该帧为P帧,并对其进行帧间编码。
例如,进行运动估计时,可以采用自适应的16×16或8×8的搜索,设SAD阈值为SAD_threshold,失败宏块数阈值为distortion_num_threshold,当前宏块的SAD值为cur_SAD,当前失败的宏块数为big_distortion_num,当前帧的宏块总数为block_num,则,第一个代价函数是判断当前宏块是否运动估计失败,判断公式为:cur_SAD>SAD_threshold,如果满足代价函数,则big_distortion_num加1;第二个代价函数是给定阈值distortion_num_threshold,判断公式为:distortion_num_threshold=block_num/K。其中K的范围可以是8~16,第三个代价函数是判断当前帧是否运动估计失败,判断公式为:big_distortion num>distortion num threshold。
以16×16宏块为例,如果设置阈值SAD_threshold=2000~5000,判断该16×16宏块运动估计是否成功,当该宏块运动估计后,在参考帧和在原始帧的SAD值>SAD_threshold,就可认为该宏块运动估计失败。同时累计运动估计失败的宏块数,设置阈值distortion_num_threshold=图像的16×16宏块数目/8~16,如果一帧累计运动估计失败的宏块数目>distortion_num_threshold,则判断本帧为I帧,并对其进行帧内编码。否则,则判断本帧为P帧,并对其进行帧间编码。
为了进一步提高视频帧编解码的效率,帧内编码可以采用二维的离散小波(DWT)变换,然后使用量化、零树编码和算术编码等,将编码数据形成码流;帧间编码包括运动估计、运动补偿、运动矢量编码和残差图象编码,其中,运动估计得到的预测帧,根据其参考帧和当前帧,进行运动补偿,并对其残差图像进行二维离散小波变换,然后使用量化、零树编码和算术编码等,将编码数据形成码流。
具体的说,I帧帧内编码包括如下步骤:
(1)对变换格式后的原始图像数据进行小波变换;
(2)对小波变换后产生的系数进行零树编码和算术编码;
(3)在编码后生成的数据码流中插入控制信息,并按帧输出到信道上传输。
P帧帧间编码包括如下步骤:
(1)根据相应的运动矢量,平移参考帧中的相应宏块,形成运动补偿图像,对运动矢量编码并形成码流;
(2)将当前帧图像和运动补偿图像相减,得到余量误差图像;
(3)对余量误差图像进行帧内编码,
B帧帧间编码包括:
(1)根据其前后两个P帧的运动矢量,采用相应的运动补偿方法,得到(-1,+1)范围内的运动矢量增量,对运动矢量增量编码并形成码流;
(2)将当前帧图像和运动补偿图像相减,得到余量误差图像;
(3)对余量误差图像的Y分量进行帧内编码。
所述余量误差图像的帧内编码包括如下步骤:
(1)对余量误差图像数据进行小波变换;
(2)对小波变换后产生的系数进行零树编码和算术编码,并形成码流;
(3)在编码后生成的数据码流中插入控制信息,并按帧输出到信道上传输。
以四层二维Daubechies(5,3)为例,小波变换被分割成多个一维整型小波行变换和一维整型小波列变换。一维整型小波行变换和一维整型小波列变换的算法如下:
其中,sl (0)为一维图像信号x的偶数样本,dl (o)为一维图像信号x的奇数样本,sl为变换后的偶数样本,dl为变换后的奇数样本;α、β为小波变换系数,k为伸缩变换系数(α=-0.5,β=0.25,k=1.2~1.5)。
对于其中的零树编码,优选的,可以使用SPIHT编码,同时,为了进一步提高编解码效率,可以对SPIHT编码做进一步的改进,例如,用二维数组取代SPIHT编码中原来的链表结构,对该二维数组初始化时将小波系数的符号与绝对值分离,计算出小波系数的最大绝对值位平面;计算出所有有后代的系数的最大子孙值;初始化表示非重要象素LIP、重要象素LSP和非重要集合LIS三个状态的数组,用一个统一的二维数组状态表LIST代表。更优选的,为了进一步提高压缩比,还可以将小波系数树形结构增加一层。
如图3所示,LIST二维数组用一个字节代表原系数矩阵中相邻两个系数的状态,大小为原系数矩阵的1/2,LIS用两个比特表示,LIP和LSP用两个比特表示,而LSP在初始化时为空。其中A1A2B1B2表示第i个数据的状态,C1C2D1D2表示第i+1个数据的状态:
A1A2:表示LIS状态 B1B2:表示LIP,LSP状态
01-----a类LIS 01----LIP
10-----b类LIS 10----LSP
00-----忽略 00----忽略
如图4所示,SDL二维数组中一个字节代表原系数矩阵中有后代系数的状态,存储SD和SL的最高位平面值,其中SD表示包括直接后代的所有后代,SL表示不包括直接后代的间接后代。1个字节可以表示一个LIS系数的SD和SL最高位平面值值,其中高四位表示SLmax位平面值,低四位表示SDmax位平面值。
在保存所有有后代的系数的最大子孙值的二维数组SDL中,一个字节可以表示两个相邻系数的最大子孙值,具体实现方法可以用二进制的形式,使用四个比特将最大值的最高位平面代替数值本身。例如:相邻两个系数的最大子孙值分别为max1=1000,max2=500,29<max1<210,28<max2<29,因此,max1的最大位平面=9(0x1001),max2的最大位平面=8(0x1000),在SDL中用0x10001001表示。从最高位平面开始编码。
在初始化过程的优选方案中,为了使初始化数组LIST的LIP、LIS状态数据量减小,进一步提高压缩比,还可以将小波变换的最低频系数继续按空间划分四个部分,作为LIP和LIS的初始化数据,即将小波系数树形结构增加一层。SPIHT是一种基于零树的小波系数编码方法,而零树编码的特征是利用不同尺度之间图像小波变换系数之间的自相似性,可以用零树根很少的比特树代表所有后代子孙的值。本发明的更优选实施例将最低频系数简单的继续划分,可以使初始化的数据减小到原来的1/4,使零树根的位置提高一层,一棵零树所表示的系数更多,使算法的压缩效率提高。而这种简单的划分,虽然没有利用频带间的自相似性,但却利用了最低频系数数量级上的相似性,在不增加算法复杂度的情况下,增大了压缩效率。举例来说,如果对一帧图像进行4层小波变换,其具体初始化如图5所示。
如果是利用本发明之实施例中所述的小波变换来进行帧内以及帧间的编解码,则需要注意的是,在做运动预测时,需要取消传统运动估计中帧内块(intra-block)这一不符合小波特性的部分,将帧内的概念扩大到整帧的概念。这是因为在传统方法中,在整像素的运动估计后,编码器将决定采用INTER还是INTRA方式,利用公式:
如果A<(SADinter-2*NB),就采用INTRA方式编码,不必继续进行运动搜索;否则采用INTER方式,然后继续在V0附近进行半像素的运动搜索。INTER方式即为当前宏块直接采用离散余弦变换(DCT)变换,可以看出,之所以划分出INTRA宏块,主要是因为运动估计过于剧烈,针对DCT变换的特点,INTRA宏块中,每个像素值与该宏块的平均值之差的和很小,这就说明该宏块的像素值很平均,很平滑,适合DCT变换。但对针对整帧图像进行处理的小波变换,无法对局部进行单独的变换。因此,INTRA宏块的编码不适合小波变换的特性。
在本发明的优选实施例中,具体到帧内编码时则抛弃了宏块的概念。也就是说,I帧的编码和残差图像的编码是抛弃宏块的概念的,因为小波变换是整帧概念的。但对运动图像,仍然可以采用分块的运动估计,从而利用运动序列在时间上的相关性,去除冗余度。同时,运动补偿可以采取重叠块运动补偿法(Overlapped Block Motion Compensation)。
本发明借用了ITU-T H.263和MPEG-4中的运动估计和补偿的PB帧模式,在优选实施例中更进一步结合了小波变换的全局性的特点,改造ITU-TH.263和MPEG-4中的运动估计和运动补偿算法,自适应的将图像分为三类:I帧、P帧和B帧。其中I帧作为参考帧,作帧内压缩编码。PB帧的具体做法是将二帧待编码的图像组成一个单元进行联合编码,形式如:IBBPBBPBBP……,对P帧图像进行运动估计,根据运动估计的结果来判断是用帧内压缩编码还是帧间压缩编码,如果运动估计失败,则将此帧图像重新调整为I帧,进行帧内编解码。对于B帧图像,则只在现存的前后两帧P帧的运动矢量的基础上,在一个很小的范围内(一般是[-1,+1])进行半象素运动估计。
对P帧图像进行运动估计的搜索窗可选用[-32,+32],而不是H.263中的[-48,+48],减少了搜索时间和运动矢量的范围。对运动矢量的编码参考了标准中的差分法,查表的哈夫曼编码,但编码所用的表格按照需要进行了改动,使编码长度相对标准缩短了很多。为了缩短编码的码字长度,采取了一系列措施:
1)将半像素的运动矢量统一写成正数。例如整像素运动矢量为(5,6),半像素运动矢量为(-1,-1),则改写整像素运动矢量为(4,5),半像素运动矢量为(+1,+1),这样可将半像素运动矢量不放入哈夫曼表内,以一个比特单独编码。
2)由于搜索窗口范围为[-32,+32],则运动矢量的范围是[-8,+8],考虑到措施1)中的做法,运动矢量的范围为[-9,+8],但我们对边界采取四舍五入的方式,仍然约束为[-8,+8],这样哈夫曼输出码表的范围为[-16,+16]。
下表就是运动矢量预测后的哈夫曼输出码表,相对于H.263的码表,由于它只包括了整像素的运动矢量,所以大大减少了编码的码字长度,而对还原图像的质量却基本没有影响。
运动矢量预测后的哈夫曼输出码表
MVD | 码字 |
0 | 0 |
+1 | 10s |
+2 | 110s |
+3 | 1110s |
+4 | 11110s |
+5 | 111110s |
+6 | 111110s |
+7 | 1111110s |
+8 | 11111110s |
+9 | 111111110s |
+10 | 1111111110s |
+11 | 11111111110s |
+12 | 111111111110s |
+13 | 1111111111110s |
+14 | 11111111111110s |
+15 | 111111111111110s |
+16 | 1111111111111110s |
在本发明的实施例中,对I帧的原始输入图像或是P帧的余量误差图像数据进行小波变换和SPIHT编码后的码流,可以采用自适应模式的二符号QM编码器,进行算术编码。QM编码器起源于IBM公司的Q编码器,它是由Langon,Rissanen等人的早期工作发展而来的。和其它的算术编码方法一样,QM编码器从原理上可清晰的分为二进制编码和统计模型两个部分。QM编码器是一种二进制编码方法,这意味着就单一上下文而言,它只能对0和1两个符号进行编码。例如符号流:100011111001011011010……………。
相应的,本发明还提供一种基于运动估计的小波视频解码方法,其基本上相当于编码过程的逆过程。如图6所示,首先默认第一帧图像为I帧,并根据编码码流中的信息得到其后视频帧的编码类型,确定其为I帧或PB帧(步骤601);然后对I帧进行帧内解码,对PB帧进行帧间解码(步骤602);最后将还原图像数据转换为要求的格式(步骤603),一般来说,是从YUV格式转换为RGB格式,但如果只需要YUV格式的数据,则不需要就其进行转换了。
其中,对应于本发明之编码方的小波变换以及零树编码的实施例过程,解码方的帧内解码可以根据输入码流,采用算术解码、零树解码和反量化,然后使用二维的离散小波反变换,得到还原数据;帧间解码包括运动矢量解码、残差图像解码和运动补偿,其中对帧间解码的残差图像,采用算术解码、零树解码和反量化,然后使用二维离散小波反变换,得到还原数据,然后根据其参考帧进行运动补偿,得出还原帧。
具体的说,所述的I帧帧内解码包括如下步骤:
(1)从解码码流中分离出控制信息;
(2)对码流进行算术解码,再把码流传送给零树解码部分;
(3)对接收后的码流顺序进行零树解码;
(4)对解码后的数据进行小波逆变换,得到还原的图像数据进行格式变换。
所述的P帧帧间解码包括如下步骤:
(1)从解码码流中分离出控制信息,进行运动矢量解码,其次算术解码零树编码的码流;
(2)根据运动矢量和上一帧解压图像,构成当前帧的预测图像;
(3)对所述码流进行零树解码,得到余量误差图像的小波变换系数;
(4)对解码后的小波系数进行小波逆变换,恢复出余量误差图像;
(5)将预测图像与余量误差图像相加,解码出当前帧图像。
B帧帧间解码包括如下步骤:
(1)从解码码流中分离出控制信息,解码运动矢量增量,根据其前后两个P帧的运动矢量和运动矢量增量,构成当前帧的预测图像;
(2)对码流进行算术解码和零树解码,得到余量误差图像的小波变换系数;
(3)对解码后的数据进行小波逆变换,恢复出余量误差图像;
(4)将预测图像与余量误差图像相加,解码出当前帧图像。
以四层二维Daubechies(5,3)小波逆变换为例,对解码后的数据码流进行的四层二维小波逆变换被分割成多个一维整型小波行逆变换和一维整型小波列逆变换。被分割成的一维整型小波行逆变换和一维整型小波列逆变换的算法如下:
式中:dl为信号的高频样本,sl为信号的低频样本,dl (1)为经伸缩变换后的高频样本,sl (1)为经伸缩变换后的低频样本,α、β为小波变换系数,sl(0)为变换后的高频样本,dl (0)为变换后的低频样本,(α=-0.5,β=0.25,k=1.2~1.5)。
相应的,作为更优选实施例,所述零树解码在初始化时也可以将小波系数树形结构增加一层。
Claims (17)
1、一种基于运动估计的小波视频编码方法,其特征在于包括:
(1)确定图像数据格式为YUV格式;
(2)默认第一帧图像为I帧,对其后的视频帧默认为PB帧;
(3)对所述其后的视频帧进行运动估计;
(4)根据运动估计的结果,自适应的重新调整所述其后的视频帧的类型;
(5)根据视频帧类型,对I帧进行帧内编码,对PB帧进行帧间编码。
2、如权利要求1所述的方法,其特征在于所述步骤(2)中,对其后的视频帧还可以指定每隔一定时间强迫一帧图像为I帧。
3、如权利要求1所述的方法,其特征在于所述步骤(3)包括:
(3-1)把当前帧划分成M×N大小的宏块,并预设SAD阈值;
(3-2)对每一宏块在参考帧范围内进行搜索,在参考帧和原始帧的SAD值大于SAD阈值时,则视为该宏块运动估计失败;
(3-3)累计所述当前帧运动估计失败的宏块数,并预设失败数阈值;
(3-4)比较所述当前帧累计运动估计失败的宏块数与所述失败数阈值。
4、如权利要求1所述的方法,其特征在于所述步骤(4),如果所述当前帧累计运动估计失败的宏块数大于所述失败数阈值,则将所述当前帧调整为I帧。
5、如权利要求1所述的方法,其特征在于步骤(5)所述的I帧帧内编码包括:
对变换格式后的原始图像数据进行小波变换;
对小波变换后产生的系数进行零树编码和算术编码;
在编码后生成的数据码流中插入控制信息,并按帧输出到信道上传输。
6、如权利要求1所述的方法,其特征在于步骤(5)所述的P帧帧间编码包括:
根据相应的运动矢量,平移参考帧中的相应宏块,形成运动补偿图像;
将当前帧图像和运动补偿图像相减,得到余量误差图像;
对运动矢量进行哈夫曼编码,对余量误差图像进行帧内编码,
B帧帧间编码包括:
根据其前后两个P帧或IP帧的运动矢量,采用相应的运动补偿方法,得到(-1,+1)范围内的运动矢量增量,对运动矢量增量进行哈夫曼编码;
将当前帧图像和运动补偿图像相减,得到余量误差图像;
对余量误差图像的Y分量进行帧内编码。
7、如权利要求6所述的方法,其特征在于所述余量误差图像的帧内编码包括:
对余量误差图像数据进行小波变换;
对小波变换后产生的系数进行零树编码和算术编码;
在编码后生成的数据码流中插入控制信息,并按帧输出到信道上传输。
8、如权利要求5或7所述的方法,其特征在于所述小波变换采用一个伸缩系数k进行优化,k=1.2~1.5。
9、如权利要求5或7所述的方法,其特征在于所述零树编码在初始化时将小波系数树形结构增加一层;计算出所有有后代的系数的最大子孙值,并将其保存于二维数组SDL中,用一个字节代表原系数矩阵中有后代系数的状态,用最大值的最高位平面代替数值本身。
10、如权利要求3所述的方法,其特征在于所述运动估计的搜索窗选用[-32,+32]。
11、如权利要求6所述的方法,其特征在于所述运动矢量编码,将半像素的运动矢量统一写成正数。
12、如权利要求6所述的方法,其特征在于所述运动矢量编码,是对边界采取四舍五入的方式进行约束。
13、一种基于运动估计的小波视频解码方法,其特征在于包括:
(1)默认第一帧图像为I帧,并根据编码码流中的信息得到其后视频帧的编码类型,确定其为I帧或PB帧;
(2)对I帧进行帧内解码,对PB帧进行帧间解码;
(3)将还原图像数据转换为要求的格式。
14、如权利要求13所述的方法,其特征在于步骤(2)所述的I帧帧内解码包括:
从解码码流中分离出控制信息,进行运动矢量解码;
进行算术解码,再把解码码流传送给零树解码部分;
对接收后的码流顺序进行零树解码;
对解码后的数据进行小波逆变换,得到还原的图像数据进行格式变换。
15、如权利要求13所述的方法,其特征在于步骤(2)所述的P帧帧间解码包括:
进行解码输出的数据首先是运动矢量,其次算术解码零树编码的码流;
根据运动矢量和上一帧解压图像,构成当前帧的预测图像;
对所述的码流进行零树解码形成余量误差图像的小波系数;
对解码后的小波系数进行小波逆变换,恢复出余量误差图像;
将预测图像与余量误差图像相加,解码出当前帧图像。
B帧帧间解码包括:
从解码码流中分离出控制信息,解码出运动矢量增量,并根据其前后两个P帧的运动矢量和运动矢量增量,构成当前帧的预测图像;
对码流进行算术解码和零树解码,得到余量误差图像的小波变换系数;
对解码后的小波系数进行小波逆变换,恢复出余量误差图像;
将预测图像与余量误差图像相加,解码出当前帧图像。
16、如权利要求14或15所述的方法,其特征在于所述小波逆变换采用一个伸缩系数k进行优化,k=1.2~1.5。
17、如权利要求14或15所述的方法,其特征在于所述零树解码在初始化时将小波系数树形结构增加一层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03149504 CN1235413C (zh) | 2003-07-14 | 2003-07-14 | 基于运动估计的小波视频编解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03149504 CN1235413C (zh) | 2003-07-14 | 2003-07-14 | 基于运动估计的小波视频编解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1471321A true CN1471321A (zh) | 2004-01-28 |
CN1235413C CN1235413C (zh) | 2006-01-04 |
Family
ID=34156327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 03149504 Expired - Lifetime CN1235413C (zh) | 2003-07-14 | 2003-07-14 | 基于运动估计的小波视频编解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1235413C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100384254C (zh) * | 2005-03-10 | 2008-04-23 | 复旦大学 | 一种基于视频图像复杂度的自适应残差帧操作方法 |
CN1949877B (zh) * | 2005-10-12 | 2010-12-15 | 三星电子株式会社 | 自适应量化控制器及其方法 |
CN101621685B (zh) * | 2008-07-04 | 2011-06-15 | 株式会社日立制作所 | 编码装置和编码方法 |
CN102256137A (zh) * | 2011-07-13 | 2011-11-23 | 西安电子科技大学 | 基于上下文预测的极光图像无损编码方法 |
CN101990091B (zh) * | 2009-08-05 | 2012-10-03 | 宏碁股份有限公司 | 视频图像传送方法、系统、视频编码装置及视频解码装置 |
CN105306787A (zh) * | 2015-10-26 | 2016-02-03 | 努比亚技术有限公司 | 图像处理方法及装置 |
CN108737825A (zh) * | 2017-04-13 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 视频数据编码方法、装置、计算机设备和存储介质 |
CN111510683A (zh) * | 2020-04-26 | 2020-08-07 | 西安工业大学 | 一种图像传输装置及其图像数据处理方法 |
-
2003
- 2003-07-14 CN CN 03149504 patent/CN1235413C/zh not_active Expired - Lifetime
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100384254C (zh) * | 2005-03-10 | 2008-04-23 | 复旦大学 | 一种基于视频图像复杂度的自适应残差帧操作方法 |
CN1949877B (zh) * | 2005-10-12 | 2010-12-15 | 三星电子株式会社 | 自适应量化控制器及其方法 |
CN101621685B (zh) * | 2008-07-04 | 2011-06-15 | 株式会社日立制作所 | 编码装置和编码方法 |
CN101990091B (zh) * | 2009-08-05 | 2012-10-03 | 宏碁股份有限公司 | 视频图像传送方法、系统、视频编码装置及视频解码装置 |
CN102256137A (zh) * | 2011-07-13 | 2011-11-23 | 西安电子科技大学 | 基于上下文预测的极光图像无损编码方法 |
CN102256137B (zh) * | 2011-07-13 | 2013-07-17 | 西安电子科技大学 | 基于上下文预测的极光图像无损编码方法 |
CN105306787A (zh) * | 2015-10-26 | 2016-02-03 | 努比亚技术有限公司 | 图像处理方法及装置 |
WO2017071542A1 (zh) * | 2015-10-26 | 2017-05-04 | 努比亚技术有限公司 | 图像处理方法及装置 |
CN108737825A (zh) * | 2017-04-13 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 视频数据编码方法、装置、计算机设备和存储介质 |
CN108737825B (zh) * | 2017-04-13 | 2023-05-02 | 腾讯科技(深圳)有限公司 | 视频数据编码方法、装置、计算机设备和存储介质 |
CN111510683A (zh) * | 2020-04-26 | 2020-08-07 | 西安工业大学 | 一种图像传输装置及其图像数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1235413C (zh) | 2006-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1225914C (zh) | 视频编码器和使用视频编码器的压缩视频信号的方法 | |
JP3796217B2 (ja) | 静止映像及び動映像を符号化/復号化するための変換係数の最適走査方法 | |
CN1233160C (zh) | 自适应编码和解码运动图像的方法及其装置 | |
JP4685849B2 (ja) | スケーラブルビデオコーディング及びデコーディング方法、並びにその装置 | |
US20060153294A1 (en) | Inter-layer coefficient coding for scalable video coding | |
CN101036388A (zh) | 对混合比特流进行预解码的方法和设备 | |
CN1893666A (zh) | 视频编码和解码方法及设备 | |
CN1902939A (zh) | 数字画面序列的编码方法和解码方法以及编码设备 | |
CN1949877A (zh) | 自适应量化控制器及其方法 | |
JP2007028579A (ja) | ビデオデータストリームの統合及び補償方法 | |
US20120008686A1 (en) | Motion compensation using vector quantized interpolation filters | |
CN1669235A (zh) | 在混合视频codec比特流之间进行码转换的方法和装置 | |
CN1738424A (zh) | 基于h.264的精细颗粒可伸缩编码的码率控制方法 | |
KR100843080B1 (ko) | 비디오 트랜스코딩 방법 및 장치 | |
CN1835590A (zh) | 用于视频编码的方法及系统 | |
CA2815642A1 (en) | Video coding using vector quantized deblocking filters | |
CN1235413C (zh) | 基于运动估计的小波视频编解码方法 | |
CN1268136C (zh) | 基于图像切片结构的帧场自适应编码方法 | |
CN1857002A (zh) | 使用凸包搜索的速率-失真视频数据分割 | |
KR100801967B1 (ko) | 문맥 기반 적응적 가변 길이 부호화 인코더 및 디코더,문맥 기반 적응성 가변 길이 부호화하는 방법과 복호화하는방법 및 이를 이용한 동영상 전송 시스템. | |
US7912124B2 (en) | Motion compensation for fine-grain scalable video | |
CN100337481C (zh) | 一种mpeg-2到avs视频码流格式转换方法及其装置 | |
CN1207918C (zh) | 低码率下的高效小波视频编解码方法 | |
KR100323701B1 (ko) | 영상부호화장치 | |
Richter et al. | Towards high-speed, low-complexity image coding: variants and modification of JPEG 2000 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20060104 |
|
CX01 | Expiry of patent term |