首页 / 专利库 / 视听技术与设备 / 运动补偿预测 / 基于运动估计的小波视频编解码方法

基于运动估计的小波视频编解码方法

阅读:454发布:2021-07-31

专利汇可以提供基于运动估计的小波视频编解码方法专利检索,专利查询,专利分析的服务。并且一种基于 运动估计 的小波视频编解码方法,在编码端首先确定图像数据转换为YUV格式,默认第一 帧 图像为I帧,对其后的 视频帧 默认为PB帧,对所述其后的视频帧进行运动估计,根据运动估计的结果,自适应的重新调整所述其后的视频帧的类型,根据视频帧类型,对I帧进行帧内编码,对PB帧进行帧间编码,相应的,在解码端首先默认第一帧图像为I帧,并根据编码码流中的信息得到其后视频帧的编码类型,确定其为I帧或PB帧,然后对I帧进行帧内解码,对PB帧进行帧间解码,最后将还原图像数据转换为要求的格式,本 发明 自适应的判断编码类型,使编码方法更加灵活,提高了编码效率,能在较低或甚低传输速率下实现较高 质量 的可靠的图像压缩。,下面是基于运动估计的小波视频编解码方法专利的具体信息内容。

1、一种基于运动估计的小波视频编码方法,其特征在于包括:
(1)确定图像数据格式为YUV格式;
(2)默认第一图像为I帧,对其后的视频帧默认为P帧或B帧;
(3)对所述其后的视频帧进行运动估计;
(4)根据运动估计的结果,自适应的重新调整所述其后的视频帧的 类型;
(5)根据视频帧类型,对I帧进行帧内编码,对P帧或B帧进行帧间 编码。
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帧或I帧、P帧的运动矢量,采用相应的运动补偿方 法,得到(-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帧或P帧、B帧;
(2)对I帧进行帧内解码,对P帧、B帧进行帧间解码;
(3)将还原图像数据转换为要求的格式。
14、如权利要求13所述的方法,其特征在于步骤(2)所述的I帧帧 内解码包括:
从解码码流中分离出控制信息,进行运动矢量解码;
对码流进行算术解码,再把解码码流传送给零树解码部分;
对接收后的码流顺序进行零树解码;
对解码后的数据进行小波逆变换,得到还原的图像数据进行格式变 换。
15、如权利要求13所述的方法,其特征在于步骤(2)所述的P帧帧 间解码包括:
从解码码流中分离出控制信息,进行运动矢量解码,其次算术解码零 树编码的码流;
根据运动矢量和上一帧解压图像,构成当前帧的预测图像;
对所述的码流进行零树解码形成余量误差图像的小波系数;
对解码后的小波系数进行小波逆变换,恢复出余量误差图像;
将预测图像与余量误差图像相加,解码出当前帧图像,
B帧帧间解码包括:
从解码码流中分离出控制信息,解码出运动矢量增量,并根据其前后 两个P帧的运动矢量和运动矢量增量,构成当前帧的预测图像;
对码流进行算术解码和零树解码,得到余量误差图像的小波变换系 数;
对解码后的小波系数进行小波逆变换,恢复出余量误差图像;
将预测图像与余量误差图像相加,解码出当前帧图像。
16、如权利要求14或15所述的方法,其特征在于所述小波逆变换采用 一个伸缩系数k进行优化,k=1.2~1.5。
17、如权利要求14或15所述的方法,其特征在于所述零树解码在初始 化时将小波系数树形结构增加一层。

说明书全文

技术领域

发明涉及一种视频图像的编解码方法,特别涉及一种基于运动估计 的小波视频编解码方法。

背景技术

目前多媒体图像压缩标准大都基于传统的离散余弦变换(DCT),包 括静止图像的JPEG标准、运动图像的MPEG1/2/4系列标准以及用于低码率 视频通信的H.261/H.263标准等。
H.263是国际电信协会-电信标准化部ITU-T(The International Telecommunications 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 Motion Compensation)减小时间冗余。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帧或I帧、P帧的运动矢量,采用相应的运动补 偿方法,得到(-1,+1)范围内的运动矢量增量,对运动矢量增量编码并 形成码流;
(2)将当前帧图像和运动补偿图像相减,得到余量误差图像;
(3)对余量误差图像的Y分量进行帧内编码。
所述余量误差图像的帧内编码包括如下步骤:
(1)对余量误差图像数据进行小波变换;
(2)对小波变换后产生的系数进行零树编码和算术编码,并形成码流;
(3)在编码后生成的数据码流中插入控制信息,并按帧输出到信道 上传输。
以四层二维Daubechies(5,3)为例,小波变换被分割成多个一维整型小 波行变换和一维整型小波列变换。一维整型小波行变换和一维整型小波列 变换的算法如下:
s l ( 0 ) = x 2 l
d l ( 0 ) = x 2 l + 1
d l ( 1 ) = d l ( 0 ) + α ( s l ( 0 ) + s l + 1 ( 0 ) )
s l ( 1 ) = s l ( 0 ) + β ( d l ( 1 ) + d l - 1 ( 1 ) )
s l = k · s l ( 1 )
d l = d l ( 1 ) / k
其中,sl (0)为一维图像信号x的偶数样本,dl (0)为一维图像信号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方式,利用公式:
MB _ mean = ( Σ i = 1 , j = 1 Nc original ) / N c
A = Σ i = 1 , j = 1 16,16 | original - MB _ mean |
如果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-T H.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)小波逆变换为例,对解码后的数据码 流进行的四层二维小波逆变换被分割成多个一维整型小波行逆变换和一 维整型小波列逆变换。被分割成的一维整型小波行逆变换和一维整型小波 列逆变换的算法如下:
d l ( 1 ) = κ · d l
s l ( 1 ) = s l / κ
s l ( 0 ) = s l ( 1 ) - β ( d l ( 1 ) + d l - 1 ( 1 ) )
d l ( 0 ) = d l ( 1 ) - α ( s l ( 0 ) + s l + 1 ( 0 ) )
x 2 l + 1 = d l ( 0 )
s 2 l = s l ( 0 )
式中:dl为信号的高频样本,sl为信号的低频样本,dl (1)为经伸缩变换 后的高频样本,sl (1)为经伸缩变换后的低频样本,α、β为小波变换系数, sl (0)为变换后的高频样本,dl (0)为变换后的低频样本, (α=-0.5,β=0.25,k=1.2~1.5)。
相应的,作为更优选实施例,所述零树解码在初始化时也可以将小波 系数树形结构增加一层。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈