CN102325258A - 一种采用线性规划模型的视频错误隐藏方法 - Google Patents
一种采用线性规划模型的视频错误隐藏方法 Download PDFInfo
- Publication number
- CN102325258A CN102325258A CN201110272005A CN201110272005A CN102325258A CN 102325258 A CN102325258 A CN 102325258A CN 201110272005 A CN201110272005 A CN 201110272005A CN 201110272005 A CN201110272005 A CN 201110272005A CN 102325258 A CN102325258 A CN 102325258A
- Authority
- CN
- China
- Prior art keywords
- macro block
- sub
- sigma
- repaired
- alternative
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种采用线性规划模型的视频错误隐藏方法,属于视频图像处理领域,包括获得待修复宏块的边界像素、获得运动矢量集、获得备选宏块集和边界集、获得备选宏块集和边界集、利用线性规划模型,获得加权权值五个步骤。本发明采用线性规划的方法得到加权权值,对备选宏块的加权结果是最优的,且能有效平滑错误区域,而不影响正确区域,并综合考虑了待修复宏块周围运动矢量和周围像素的相关性,对视频编码时的子宏块划分方式没有要求。本发明的处理速度适中,能够提升修复后图像的主观质量和客观质量。
Description
技术领域
本发明属于视频图像处理领域,具体涉及一种采用线性规划模型的视频错误隐藏方法。
背景技术
视频图像作为一种直观的理解事物的方式,影响着人类生活的方方面面。社会发展,尤其是互联网(包括移动互联网)的发展,极大的拓宽了视频图像的应用范围,使人们能够在工作、娱乐等多方面享受视频图像带来的体验。本领域公知,互联网是一个带宽受限的网络环境,视频图像的数据量相比来讲十分巨大,因此需要对视频图像进行压缩,以便在带宽受限的环境下传输。在过去的十几年里,各种先进的视频编码方式不断涌现,解决各种适用场合的视频图像压缩问题。尤其是近年来,H.264作为一种先进的视频编码方法,能够在保证视频质量不变或稍有损失的情况下,有效地降低码速率,节约带宽开销,使在互联网环境下传输高质量视频变得可行。
编码算法带来高压缩率的同时,编码后的码流对传输噪声极为敏感。由于编码中采用了前帧与后续帧相关的编码结构,当某帧由于传输错误而出现解码错误时,不仅影响该帧的图像质量,而且对后续帧的解码有着很大的影响,即所谓的“误码扩散”现象。甚至码流中仅有一个比特位置发生错误,都可能导致视频质量的极大降低。然而,互联网的另一个特点便是在传输中可能出现丢包及误码现象。为了适应这一特点,即在码流出错的情况下仍能得到较高质量的视频图像,常在视频解码后采用错误隐藏(EC Error concealment)技术对出错区域进行恢复。
视频图像中帧内以及前帧和后续帧之间存在着大量的冗余。错误隐藏技术正是使用本帧或前帧的冗余信息对破损区域进行修复。然而由于当前区域已损坏,如何找到和损坏区域最接近的替代区域,成为错误隐藏的难点。
在文献“Aign S.and Fazel K.,Temporal and spatial error concealment techniquefor hierarchical MPEG-2video codec.”中,作者提出了一种边界匹配算法(BMA Boundarymatching algorithm)。该算法寻找替代区域的规则是:所选的替代区域的边界与破损区域的边界能够较好的匹配。使用绝对误差和(SAD Sum of absolute differences)衡量匹配程度,如此一来,使SAD最小的块即可认定为最佳的修补区域。但是BMA方法仅使用一个运动矢量(MV Motion vector)进行修复,可能出现边界错位、物体变形等瑕疵,因此在实践中修复效果欠佳。随后又出现了大量BMA的改进方法,以修正这些问题。还有一些修复方法如基于运动矢量恢复的思想。在文献“JH Zheng and LP Chau,A temporal error concealmentalgorithm for H.264using Lagrange interpolation.”中,作者使用拉格朗日插值(LILagrange interpolation)的方法,利用损坏区域周围的运动矢量进行拉格朗日插值,恢复出丢失区域的运动矢量,并利用恢复的运动矢量找到替代区域进行修复。这种修复方法要求被恢复的区域具有平滑的运动矢量,在实际应用中比较受限。所以该方法的恢复效果虽比BMA有所提高,但仍欠佳。
在文献“J Wu,XG Liu and KY Yoo,A temporal error concealment method for H.264/AVCusing motion vector recovery.”中,作者仍是提出了一种运动矢量恢复的方法。不同的是,作者对多种错误情况进行分析,并且提出了在各种情况下的运动矢量恢复方法。这种方法考虑了破损区域内部可能出现分界的情况,不再需要平滑运动矢量假设,因此该方法效果比LI方法有所提高。但这类的运动矢量恢复方法只使用损坏区域周围的运动矢量进行修复,并没有考虑损坏区域边界匹配效果,因此错误隐藏效果仍然欠佳。
在文献“WN Lie,CH Yeh and ZW Gao,Video error concealment by using iterativedynamic-programming optimization.”中,作者提出了一种使用动态规划模型的错误隐藏方法,该方法将所有需要错误隐藏的区域建立为若干条从虚拟起点到虚拟终点的“路径”,并套用动态规划解决行程问题的方法,通过选择一条最小花费的“路程”,最终确定用来隐藏的全部替代区域。该方法虽然能够得到较好的恢复效果,但花费的时间较长,因此在使用中受限。
综上所述,BMA算法提出了边界匹配准则,是大多数错误隐藏方法的基础,但实现的效果并不理想。LI等方法利用运动矢量的相关性首先恢复运动矢量,之后修复损坏的图像区域,但该方法并没有考虑丢失区域边界的相关性,因此效果仍然欠佳。而另外一些方法,虽然效果较好,但处理速度又不令人满意。因此迫切需要一种能够得到较好恢复效果的,处理速度适中的错误隐藏方法。
发明内容
针对现有技术中存在的问题,本发明提供一种采用线性规划模型的视频错误隐藏方法视频图像错误隐藏方法,从而恢复错误传输的视频图像,提高视频图像的质量。
本发明提出一种采用线性规划模型的视频图像错误隐藏方法,包括以下几个步骤:
步骤一:获得待修复宏块的边界像素:
解码后的图像存储在缓冲区中,利用本帧待修复宏块所在位置,计算待修复宏块的边界像素所在位置,并从缓冲区中将像素值取出,得到待修复宏块的边界像素;
步骤二:获得运动矢量集:
本帧中待修复宏块与其上、下、左、右四个方向的正确宏块邻接,正确宏块被拆分为多个正确子宏块,而每个邻接正确子宏块均具有运动矢量。获得所有邻接子宏块的运动矢量及其对应的参考帧,并去除其中重复的运动矢量及参考帧,构成运动矢量集;
步骤三:获得备选宏块集和边界集:
当给定一个运动矢量和参考帧时,在其参考帧中得到与运动矢量和该参考帧对应的整宏块,整宏块的获取方式与解码端利用运动矢量和参考帧得到预测宏块的方式相同,对于步骤二得到的运动矢量集中的每一个运动矢量和参考帧,均能得到与之对应的整宏块,这些整宏块构成备选宏块集,不同运动矢量和参考帧得到的整宏块通常不相同。分别记录下各个参考帧中每一个整宏块的边界像素,所有整宏块的边界像素构成边界集;
步骤四:对待修复宏块和整宏块进行拆分:
对备选宏块集中的整宏块进行拆分,设备选宏块集中有N个备选整宏块,将备选宏块集中的每个备选整宏块拆分为(16×16)/(m×m)个m×m备选子宏块,各个整宏块中处于相同位置的备选子宏块构成备选子宏块集,则共有(16×16)/(m×m)个备选子宏块集,每个备选子宏块集中具有N个处于相同位置的备选子宏块,将各备选子宏块按行进行标号,每个备选整宏块拆分后处于相同位置的备选子宏块的标号是一致的;备选子宏块集的标号与该备选子宏块集中的备选子宏块的标号是相同的。
在以子宏块为单位修复待修复宏块时,将待修复宏块进行拆分,拆分方法与备选宏块集中的整宏块的拆分方法一致,拆分为(16×16)/(m×m)个m×m大小的待修复子宏块;将待修复子宏块按行进行标号,标号方法与备选子宏块的标号方法完全相同;
拆分后共存在3种待修复子宏块,第一种待修复子宏块与两个正确的边界邻接;第二种待修复子宏块与一个正确的边界邻接,并且与另一个同类型的待修复子宏块邻接;第三种待修复子宏块不与正确的边界邻接,但与另外三个同类型的待修复子宏块邻接;
步骤五:利用线性规划模型,获得加权权值:
(1)第一种待修复子宏块的修复方法:
无论何种宏块拆分类型,拆分后处于四个角上的待修复子宏块均属于第一种待修复子宏块,并且只有四个角上的待修复子宏块属于此类型;并标记左上角的待修复子宏块为a号待修复子宏块;
PBa表示a号待修复子宏块的边界像素PBa,a号备选子宏块集中子宏块的边界为Pak,k=1,2,...,N,将备选子宏块集中备选子宏块的边界像素Pak进行加权,得到合成边界,选择使合成边界与PBa之间的SAD达到最小的权值;待优化问题的目标函数为:
其中,Ba表示边界区域,是像素坐标的集合,区域宽度为n,Ba中包含全部边界像素位置;坐标(i,j)表示Ba中各个像素的坐标;PBa(i,j)为a号待修复子宏块(i,j)位置的边界像素值;Pak(i,j),k=1,2,...,N为a号备选子宏块集中第k个子宏块(i,j)位置的边界像素值;有N个a号备选子宏块,有N个备选子宏块边界像素Pak,需要N个权值ω1,ω2,...,ωN对这N个备选子宏块边界Pak进行加权
其中权值ω1,ω2,...,ωN服从两个约束:ω1,ω2,...,ωN和为1;ω1,ω2,...,ωN均大于等于0:
ωk≥0,k=1,2,...,N
其中Pambk代表a号备选子宏块集中第k个备选子宏块;
然后将目标函数线性化,将每一个绝对值替换为一个待优化的变量,实现目标函数线性化:
等价于
等价于
ts表示人为引入的待优化的变量,将目标函数转变为线性函数:
minimize∑ts
采用相同的方法完成其他同类型的第一种子宏块的修复;
(2)第二种待修复子宏块的修复方法:
第二种待修复子宏块的特征为与一个正确的边界邻接,并且与另一个同类型的待修复子宏块邻接;共同考虑两个待修复子宏块的修复,同时优化两组权值,以分别加权两个备选子宏块集中的备选子宏块;标记这两个待修复子宏块为u及v号子宏块;
对于u、v号待修复子宏块,首先考虑两者的边界与正确边界的匹配程度,之后考虑两个待修复子宏块邻接区域的匹配程度,匹配程度均以SAD度量。得到u、v号备选子宏块集中子宏块的边界,以及u、v号待修复子宏块的边界,得到u、v号备选子宏块集中子宏块的邻接区域,构成邻接区域集,目标函数表示为:
式中,Bu、Bv表示u、v号待修复子宏块的边界区域,Du-v、Dv-u分别表示u、v号待修复子宏块与v、u号待修复子宏块的邻接区域;PBu、PBv分别为u、v号待修复子宏块的边界;Puk、Pvk分别为u、v号备选子宏块集中第k个备选子宏块的边界,Pcuk、Pcvk分别为u、v号备选子宏块集中第k个备选子宏块的内部邻接区;Peuk、Pevk分别为u、v号备选子宏块集中第k个备选子宏块的外部邻接区;目标函数的前两个求和分别计算由u、v号备选子宏块的边界加权得到的合成边界与待修复子宏块边界的边界SAD;后两个求和分别计算u、v号备选子宏块邻接区域的邻接SAD;参数α用于调节边界SAD与邻接SAD的相对比例;
ωuk,k=1,2,…,N;ωvk,k=1,2,…,N为两组待优化变量,为备选子宏块边界的权值。上述两组权值仍然服从约束:ωu1,ωu2,...,ωuN及ωv1,ωv2,...,ωvN求和等于1;ωu1,ωu2,...,ωuN及ωv1,ωv2,...,ωvN均大于等于0:
ωtk≥0,k=1,2,...,N
t=u,v
t=u,v
Ptmbk,k=1,2,...,N,t=u,v,表示t号备选子宏块集中第k个备选子宏块;目标函数线性化方法是将每个绝对值替换为一个待优化的变量,具体为:
ts=|Cs(ωu,ωv)|
ωu=(ωu1,ωu2,...,ωuN)T
ωv=(ωv1,ωv2,...,ωvN)T
式中,Cs(ωu,ωv)表示目标函数中任意一个绝对值内部的函数,以ωu、ωv为该目标函数的变量;
等价于
|Cs(ωu,ωv)|≤ts
等价于
Cs(ωu,ωv)≤ts
-ts≤Cs(ωu,ωv)
将目标函数转变为线性函数如下:
minimize∑ts
(3)第三种待修复子宏块的修复方法:
第三种待修复子宏块的特征为均不与正确的边界相邻,但与另外三个同类型的待修复子宏块邻接,共同考虑四个待修复子宏块的修复,同时优化四组权值,以分别加权四个备选子宏块集中的备选子宏块;
标记这四个待修复子宏块为w、x、y、z号子宏块;得到四个待修复子宏块的边界、备选子宏块集中的备选子宏块的边界,得到四个待修复子宏块的内部及外部邻接区域集,目标函数为:
该目标函数中,Bt,t=w,x,y,z为第t号待修复子宏块的边界区域;Dm-n为m号待修复子宏块到n号待修复子宏块的邻接区域,Dm-n和Dn-m是不同的区域;PBt,t=w,x,y,z分别为第t号待修复子宏块的边界;Ptk,k=1,2,...,N,t=w,x,y、z为第t号备选子宏块集中的第k个备选子宏块的边界;Pcm-nk为备选子宏块m到备选子宏块n的内部邻接区域集中的第k个内部边界;Pem-nk则为备选子宏块m到备选子宏块n的外部邻接区域集中的第k个外部边界,使用参数α调节边界SAD与邻接SAD的相对比例;
ωw1,ωw2,...,ωwN,ωx1,ωx2,...,ωxN,ωy1,ωy2,...,ωyN及ωz1,ωz2,...,ωzN为四组待优化变量,意义为备选子宏块边界的权值;
四组权值仍然服从约束:每组权值求和均等于1;每组中的各个权值均大于等于0:
ωtk≥0,k=1,2,...,N
t=w,x,y,z
t=w,x,y,z
其中,Ptmbk,k=1,2,...,N,t=w,x,y、z代表t号备选子宏块集中第k个备选子宏块。目标函数线性化方法是将每个绝对值替换为一个待优化的变量,具体为:
ts=|Cs(ωw,ωx,ωy,ωz)|
ωw=(ωw1,ωw2,...,ωwN)T
ωx=(ωx1,ωx2,...,ωxN)T
ωy=(ωy1,ωy2,...,ωyN)T
ωz=(ωz1,ωz2,...,ωzN)T
式中,Cs(ωw,ωx,ωy,ωz)表示目标函数中任意一个绝对值内部的函数,以ωw,ωx,ωy,ωz为函数Cs的变量;
等价于
|Cs(ωw,ωx,ωy,ωz)|≤ts
等价于
Cs(ωw,ωx,ωy,ωz)≤ts
-ts≤Cs(ωw,ωx,ωy,ωz)
将目标函数转变为线性函数如下:
minimize∑ts
(4)整宏块的修复方法:
首先得到待修复宏块的边界PB,然后得到备选宏块集中整宏块的边界,构成边界集BS,计算一组权值,用该组权值加权边界集中的边界得到合成边界,目标函数为极小化该合成边界与待修复宏块边界的SAD值:
式中,B为宏块的边界区域;PB为待修补宏块的边界,Pk,k=1,2,...,N为边界集中第k个边界;
权值ω1,ω2,...,ωN仍然服从两个约束:ω1,ω2,...,ωN和为1;ω1,ω2,...,ωN均大于等于0:
ωk≥0,k=1,2,...,N
其中Pmbk,k=1,2,...,N表示备选宏块集中第k个备选整宏块;
将目标函数线性化,将每一个绝对值替换为一个待优化的变量,以实现目标函数线性化:
等价于
等价于
ts表示人为引入的待优化的变量,应用上述步骤后,将目标函数转变为线性函数:
minimize∑ts。
本发明的优点在于:
(1)本发明提供一种采用线性规划模型的视频错误隐藏方法,采用线性规划的方法得到加权权值,因此对备选宏块的加权结果是最优的;
(2)本发明提供一种采用线性规划模型的视频错误隐藏方法,采用备选宏块加权的方法,能有效平滑错误区域,而不影响正确区域;
(3)本发明提供一种采用线性规划模型的视频错误隐藏方法,所采用的线性规划模型的求解算法已经成熟;
(4)本发明提供一种采用线性规划模型的视频错误隐藏方法,综合考虑了待修复宏块周围运动矢量和周围像素的相关性;
(5)本发明提供一种采用线性规划模型的视频错误隐藏方法,对视频编码时的子宏块划分方式没有要求;
(6)本发明提供一种采用线性规划模型的视频错误隐藏方法,处理速度适中;
(7)本发明提供一种采用线性规划模型的视频错误隐藏方法,能够提升修复后图像的主观质量和客观质量。
附图说明
图1为本发明所涉及的线性规划模型所需的待修复宏块边界的示意图。
图2为本发明中邻接子宏块和运动矢量集的示意图。
图3为本发明中备选宏块集中宏块边界的示意图。
图4为本发明中备选宏块集和边界集的示意图。
图5为本发明中备选子宏块集及子宏块标号的示意图。
图6为本发明以子宏块为单位修复时存在的3种子宏块示意图。
图7为本发明中a号待修复子宏块的边界和备选子宏块集中a号子宏块的边界示意图。
图8为本发明中对待修复4×4子宏块标号的示意图。
图9为本发明中u、v号待修复子宏块的边界和备选子宏块集中u、v号子宏块的边界示意图。
图10为本发明中u、v号子宏块的邻接区域集示意图。
图11为本发明中对待修复8×8子宏块标号的示意图。
图12为本发明中u、v、x、y号待修复子宏块的边界和备选子宏块集中的u、v、x、y号子宏块的边界示意图。
图13为本发明中u、v、x、y号子宏块的邻接区域集示意图。图14为本发明中待修复整宏块的边界和备选宏块的边界示意图。
图15为本发明中4×4备选子宏块集的示意图。
图16为本发明4×4修复方法中1号待修复子宏块的边界和备选子宏块集中1号子宏块的边界示意图。
图17为本发明4×4修复方法中2、3号待修复子宏块的边界和备选子宏块集中2、3号子宏块的边界示意图。
图18为本发明4×4修复方法中2、3号子宏块的邻接区域集示意图。
图19为本发明4×4修复方法中6、7、10、11号待修复子宏块的边界和备选子宏块集中的6、7、10、11号子宏块的边界示意图。
图20为本发明4×4修复方法中6、7、10、11号子宏块的邻接区域集示意图。
图21为本发明8×8修复方法中备选子宏块集和备选子宏块的边界的示意图。
具体实施方式
下面将结合附图对本发明作进一步的详细说明。
本发明提供一种采用线性规划模型的视频图像错误隐藏方法,包括以下几个步骤:
步骤一:获得待修复宏块的边界像素:
本步骤中获得的边界像素(PBPixel Boundary)具体为待修复宏块(MB MarcoBlock)的邻近像素,如图1所示。本发明中并未限制边界像素的宽度,但一般优选为2像素宽。具体的方法是:解码后的图像存储在缓冲区中,利用本帧(即出现错误的视频图像帧)待修复宏块所在位置,计算待修复宏块的边界像素所在位置,并从缓冲区中将这些像素值取出,即得到待修复宏块的边界像素。
步骤二:获得运动矢量集(MVS Motion vector set):
视频编码方法通常是基于宏块的,一个宏块一般包含16×16个像素。为了得到更好的压缩效果,常常将一个宏块拆分为4个或16个子宏块(SMB Sub MarcoBlock),每个子宏块像素数分别为8×8或4×4。对于8×4和4×8的划分方式,可将其看作两个4×4个像素子宏块。对于16×8和8×16的划分方式,可将其看作两个8×8个像素子宏块。
本帧(即出现错误的视频图像帧)中待修复宏块与其上、下、左、右四个方向的正确宏块邻接。如前述,上、下、左、右四个方向的正确宏块被拆分为多个正确子宏块,因此一个待修复宏块常常具有8个或16个邻接正确子宏块,如图2所示,而每个邻接子宏块均具有运动矢量。获得所有邻接子宏块的运动矢量及其对应的参考帧,并去除其中重复的运动矢量及参考帧,构成运动矢量集。例如,当编码采用4×4子宏块类型时,待修复宏块具有16个邻接子宏块,每个子宏块均具有运动矢量和参考帧,但是这些子宏块的运动矢量和参考帧可能出现重复,也就是说,可能具有两个(或多个)子宏块的运动矢量和参考帧均相同。因此需要去除这样的重复元素,使运动矢量集中的每个元素(运动矢量和参考帧)都是唯一的。
步骤三:获得备选宏块集(MBS MarcoBlock Set)和边界集(BS Boundary Set):
当给定一个运动矢量和参考帧时,可在其参考帧中得到与运动矢量和该参考帧对应的整宏块,整宏块的获取方式与解码端利用运动矢量和参考帧得到预测宏块(整宏块)的方式相同,例如在H.264(一种高性能的视频编解码技术)中采用1/4插值的方式得到该整宏块。对于步骤二得到的运动矢量集中的每一个运动矢量和参考帧,均能得到与之对应的整宏块。这些整宏块构成备选宏块集。不同运动矢量和参考帧得到的整宏块通常不相同,并且由于运动矢量集中不包含重复元素,因此运动矢量集中元素个数与备选宏块集中整宏块个数相同。在得到备选宏块集的同时,分别记录下各个参考帧中每一个整宏块的边界像素,边界像素如图3所示,且每个整宏块的边界像素宽度和待修复宏块的边界像素宽度相同。所有整宏块的边界像素构成边界集,如图4所示。
步骤四:对待修复宏块和整宏块进行拆分:
宏块在进行编码时可能的编码类型有三种:分别为8×8(包括16×8和8×16)、4×4(包括4×8和8×4)或16×16。不划分子宏块直接以整宏块进行编码,编码类型为16×16。本发明适用于8×8、4×4或16×16三种编码类型的视频进行修复。线性规划模型以最小化SAD为目标函数,且具有2个约束条件:待优化变量之和等于1;待优化变量均大于等于0。
对备选宏块集中的整宏块进行拆分。设备选宏块集中有N个备选整宏块,将备选宏块集中的每个备选整宏块拆分为(16×16)/(m×m)个m×m备选子宏块,各个整宏块中处于相同位置的备选子宏块构成备选子宏块集,则共有(16×16)/(m×m)个备选子宏块集,每个备选子宏块集中具有N个处于相同位置的备选子宏块,如图5所示。将各备选子宏块按行进行标号,第一行第一个子宏块标号为1,依次标号,第一行最后一个子宏块标号为16/m,第二行第一个宏块标号为(16/m)+1,直至最后一个子宏块标号为(16×16)/(m×m)。每个备选整宏块拆分后处于相同位置的备选子宏块的标号是一致的。备选子宏块集的标号与该备选子宏块集中的备选子宏块的标号是相同的。
在以子宏块为单位修复待修复宏块时,将待修复宏块进行拆分,拆分方法与备选宏块集中的整宏块的拆分方法一致,拆分为(16×16)/(m×m)个m×m大小的待修复子宏块,图像的编码类型决定了m的值。对4×4(包括4×8和8×4)编码类型中m=4,8×8(包括16×8和8×16)编码类型中m=8。将待修复子宏块按行进行标号,标号方法与备选子宏块的标号方法完全相同。
拆分后共存在3种待修复子宏块,如图6所示,第一种待修复子宏块与两个正确的边界(步骤一得到的本帧中待修复整宏块的正确边界)邻接;第二种待修复子宏块与一个正确的边界(步骤一得到的本帧中待修复整宏块的正确边界)邻接,并且与另一个同类型的待修复子宏块邻接;第三种待修复子宏块不与正确的边界(步骤一得到的本帧中待修复整宏块的正确边界)邻接,但与另外三个同类型的待修复子宏块邻接。
步骤五:利用线性规划模型,获得加权权值:
针对不同待修复子宏块的修复方法为:
(1)第一种待修复子宏块的修复方法:
无论何种宏块拆分类型,拆分后处于四个角上的待修复子宏块均属于第一种待修复子宏块,与两个正确的边界(步骤一得到的本帧中待修复整宏块的正确边界)邻接,并且只有四个角上的待修复子宏块属于此类型。以左上角待修复子宏块的修复来说明第一种待修复子宏块的修复方法,并标记左上角的待修复子宏块为a号待修复子宏块。
本发明中没有限制边界像素的宽度,n表示边界像素的宽度。如图7所示,PBa表示a号待修复子宏块的边界像素PBa(下标表示是a号待修复子宏块的边界像素),a号备选子宏块集中子宏块的边界为Pak,k=1,2,...,N。将备选子宏块集中备选子宏块的边界像素Pak进行加权,得到合成边界,选择使合成边界与PBa之间的SAD达到最小的权值。为求得加权值,待优化问题的目标函数为:
其中,Ba表示边界区域,是像素坐标的集合,边界区域如图7所示,区域宽度为n,Ba中包含全部边界像素位置;坐标(i,j)表示Ba中各个像素的坐标;PBa(i,j)为a号待修复子宏块(i,j)位置的边界像素值;Pak(i,j),k=1,2,...,N为a号备选子宏块集中第k个子宏块(i,j)位置的边界像素值。本领域内公知,求和符号和取绝对值符号对计算SAD是必要的。有N个a号备选子宏块,故有N个备选子宏块边界像素Pak。此时,需要N个权值ω1,ω2,...,ωN对这N个备选子宏块边界Pak进行加权。目标函数为极小化PBa与以权值ω1,ω2,...,ωN合成边界的SAD值。
其中权值ω1,ω2,...,ωN服从两个约束:(1)ω1,ω2,...,ωN和为1;(2)ω1,ω2,...,ωN均大于等于0,即:
ωk≥0,k=1,2,...,N
其中Pambk代表a号备选子宏块集中第k个备选子宏块。
然后将目标函数线性化,优化领域公知,将每一个绝对值替换为一个待优化的变量,即可实现目标函数线性化:
等价于
等价于
ts表示人为引入的待优化的变量。应用上述步骤后,可将目标函数转变为线性函数:
minimize∑ts
(2)第二种待修复子宏块的修复方法:
第二种待修复子宏块的特征为与一个正确的边界(步骤一得到的本帧中待修复整宏块的正确边界)邻接,并且与另一个同类型的待修复子宏块邻接。共同考虑两个待修复子宏块的修复,同时优化两组权值,以分别加权两个备选子宏块集中的备选子宏块。标记这两个待修复子宏块为u及v号子宏块。对于4×4子宏块类型,(u,v)可取(2,3)、(5,9)、(8,12)、(14,15),如图8所示;而8×8子宏块类型和整宏块类型中没有该第二种待修复子宏块。
对于u、v号待修复子宏块,首先考虑两者的边界与正确边界的匹配程度,之后考虑两个待修复子宏块邻接区域的匹配程度,匹配程度均以SAD度量。如图9所示,得到u、v号备选子宏块集中子宏块的边界,以及u、v号待修复子宏块的边界,边界宽度可任意选择。如图10所示,可得到u、v号备选子宏块集中子宏块的邻接区域,构成邻接区域集,邻接区域宽度可任意选择。此时目标函数表示为:
式中,Bu、Bv表示u、v号待修复子宏块的边界区域,Du-v、Dv-u分别表示u、v号待修复子宏块与v、u号待修复子宏块的邻接区域。PBu、PBv分别为u号、v号待修复子宏块的边界;Puk、Pvk分别为u、v号备选子宏块集中第k个备选子宏块的边界,如图9所示;Pcuk、Pcvk分别为u、v号备选子宏块集中第k个备选子宏块的内部邻接区;Peuk、Pevk分别为u、v号备选子宏块集中第k个备选子宏块的外部邻接区,如图10所示。
上述公式中的前两个求和分别计算由u、v号备选子宏块的边界加权得到的合成边界与待修复子宏块边界的边界SAD;后两个求和分别计算u、v号备选子宏块邻接区域的邻接SAD。参数α用于调节边界SAD与邻接SAD的相对比例,α取值范围为:α∈[0,+∞)。α=0代表优化时仅考虑边界SAD;而当α→+∞时,邻接SAD相对于边界SAD所占比例增加。
ωuk,k=1,2,…,N;ωvk,k=1,2,…,N(ωu1,ωu2,...,ωuN,ωv1,ωv2,...,ωvN)为两组待优化变量,为备选子宏块边界的权值。上述两组权值仍然服从约束:(1)ωu1,ωu2,...,ωuN及ωv1,ωv2,...,ωvN求和等于1;(2)ωu1,ωu2,...,ωuN及ωv1,ωv2,...,ωvN均大于等于0,具体为:
ωtk≥0,k=1,2,...,N
t=u,v
t=u,v
Ptmbk(k=1,2,...,N,t=u,v)表示t号备选子宏块集中第k个备选子宏块。目标函数线性化方法是将每个绝对值替换为一个待优化的变量,具体为:
ts=|Cs(ωu,ωv)|
ωu=(ωu1,ωu2,...,ωuN)T
ωv=(ωv1,ωv2,...,ωvN)T
式中,Cs(ωu,ωv)表示目标函数中任意一个绝对值内部的函数,以ωu、ωv为该目标函数的变量。
等价于
|Cs(ωu,ωv)|≤ts
等价于
Cs(ωu,ωv)≤ts
-ts≤Cs(ωu,ωv)
将目标函数转变为线性函数如下:
minimize∑ts
采用相同的方法完成其他同类型即与一个正确边界像素邻接且与另一个同类型的子宏块相邻的第二种子宏块的修复。
(3)第三种待修复子宏块的修复方法:
第三种待修复子宏块的特征为均不与正确的边界(出现错误的视频图像的本帧中正确的边界)相邻,但与另外三个同类型的待修复子宏块邻接。共同考虑四个待修复子宏块的修复,同时优化四组权值,以分别加权四个备选子宏块集中的备选子宏块。
标记这四个待修复子宏块为w、x、y、z号子宏块。对于4×4子宏块类型,(w,x,y,z)仅可取(6,7,10,11),如图8所示;对于8×8子宏块类型,(w,x,y,z)仅可取(1,2,3,4),如图11所示。在整宏块类型中,没有第三种待修复子宏块。
四个待修复子宏块的共同优化也需要考虑边界的匹配,以及邻接区域的匹配,匹配程度均以SAD度量。如图12所示,得到四个待修复子宏块的边界、备选子宏块集中的备选子宏块的边界。如图13所示,得到四个待修复子宏块的内部及外部邻接区域集。目标函数为:
该目标函数中,Bt,t=w,x,y,z为第t号待修复子宏块的边界区域;Dm-n为m号待修复子宏块到n号待修复子宏块的邻接区域,Dm-n和Dn-m是不同的区域;PBt,t=w,x,y,z分别为第t号待修复子宏块的边界;Ptk,k=1,2,...,N,t=w,x、y、z为第t号备选子宏块集中的第k个备选子宏块的边界;Pcm-nk为备选子宏块m到备选子宏块n的内部邻接区域集中的第k个内部边界;Pem-nk则为备选子宏块m到备选子宏块n的外部邻接区域集中的第k个外部边界。仍使用参数α调节边界SAD与邻接SAD的相对比例,α取值范围为:α∈[0,+∞),α=0代表优化时仅考虑边界SAD;而当α→+∞时,邻接SAD相对于边界SAD所占比例增加。
ωw1,ωw2,...,ωwN,ωx1,ωx2,...,ωxN,ωy1,ωy2,...,ωyN及ωz1,ωz2,...,ωzN为四组待优化变量,意义为备选子宏块边界的权值。
四组权值仍然服从约束:(1)每组权值求和均等于1;(2)每组中的各个权值均大于等于0,具体如下:
ωtk≥0,k=1,2,...,N
t=w,x,y,z
t=w,x,y,z
其中,Ptmbk,k=1,2,...,N,t=w,x,y、z代表t号备选子宏块集中第k个备选子宏块。目标函数线性化方法是将每个绝对值替换为一个待优化的变量,具体为:
ts=|Cs(ωw,ωx,ωy,ωz)|
ωw=(ωw1,ωw2,...,ωwN)T
ωx=(ωx1,ωx2,...,ωxN)T
ωy=(ωy1,ωy2,...,ωyN)T
ωz=(ωz1,ωz2,...,ωzN)T
式中,Cs(ωw,ωx,ωy,ωz)表示目标函数中任意一个绝对值内部的函数,以ωw,ωx,ωy,ωz为函数Cs的变量。
等价于
|Cs(ωw,ωx,ωy,ωz)|≤ts
等价于
Cs(ωw,ωx,ωy,ωz)≤ts
-ts≤Cs(ωw,ωx,ωy,ωz)
将目标函数转变为线性函数如下:
minimize∑ts
因不与正确边界像素邻接但与另三个同类型的子宏块相邻的第三种子宏块在8×8、4×4类型中仅有4个,至此已经全部修复。
(4)除了以子宏块为单位的修复外,另外一种是整宏块的修复。待修复整宏块是指16×16像素的块,与四个正确的边界(步骤一得到的本帧中待修复整宏块的正确边界)相邻接。由于整宏块没有子宏块划分,所以不存在内部的邻接区域。优化时仅需要考虑待修复宏块的边界与备选整宏块的边界(即边界集中的各个边界)加权得到的合成边界的匹配,匹配程度以SAD度量。
首先得到待修复宏块的边界,即步骤一所述边界像素PB,如图1所示。之后得到备选宏块集中整宏块的边界,构成边界集,即步骤三所述边界集BS,如图3所示,计算一组权值,用该组权值加权边界集中的边界得到合成边界,目标函数为极小化该合成边界与待修复宏块边界的SAD值:
式中,B为宏块的边界区域;PB为待修补宏块的边界,Pk,k=1,2,...,N为边界集中第k个边界,如图14所示。
权值ω1,ω2,...,ωN仍然服从两个约束:(1)ω1,ω2,...,ωN和为1;(2)ω1,ω2,...,ωN均大于等于0:
ωk≥0,k=1,2,...,N
其中Pmbk,k=1,2,...,N表示备选宏块集中第k个备选整宏块。
仍需将目标函数线性化,即将每一个绝对值替换为一个待优化的变量,以实现目标函数线性化:
等价于
等价于
ts表示人为引入的待优化的变量。应用上述步骤后,可将目标函数转变为线性函数:
minimize∑ts。
实施例1
本实施例提出一种针对4×4子宏块类型的采用线性规划模型的视频图像错误隐藏方法,包括以下几个步骤:
步骤一:获得待修复宏块的边界像素:
解码后的图像存储在缓冲区中,利用本帧待修复宏块所在位置,计算待修复宏块的边界像素所在位置,并从缓冲区中将像素值取出,得到待修复宏块的边界像素;
步骤二:获得运动矢量集:
本帧中待修复宏块与其上、下、左、右四个方向的正确宏块邻接,正确宏块被拆分为多个正确子宏块,而每个邻接正确子宏块均具有运动矢量。获得所有邻接子宏块的运动矢量及其对应的参考帧,并去除其中重复的运动矢量及参考帧,构成运动矢量集;
步骤三:获得备选宏块集和边界集:
当给定一个运动矢量和参考帧时,在其参考帧中得到与运动矢量和该参考帧对应的整宏块,整宏块的获取方式与解码端利用运动矢量和参考帧得到预测宏块的方式相同,对于步骤二得到的运动矢量集中的每一个运动矢量和参考帧,均能得到与之对应的整宏块,这些整宏块构成备选宏块集,不同运动矢量和参考帧得到的整宏块通常不相同。分别记录下各个参考帧中每一个整宏块的边界像素,所有整宏块的边界像素构成边界集;
步骤四:对待修复宏块和整宏块进行拆分:
对备选宏块集中的整宏块进行拆分,设备选宏块集中有N个备选整宏块,将备选宏块集中的每个备选整宏块拆分为(16×16)/(m×m)个m×m备选子宏块,各个整宏块中处于相同位置的备选子宏块构成备选子宏块集,则共有(16×16)/(m×m)个备选子宏块集,每个备选子宏块集中具有N个处于相同位置的备选子宏块,将各备选子宏块按行进行标号,每个备选整宏块拆分后处于相同位置的备选子宏块的标号是一致的;备选子宏块集的标号与该备选子宏块集中的备选子宏块的标号是相同的。
在以子宏块为单位修复待修复宏块时,将待修复宏块进行拆分,拆分方法与备选宏块集中的整宏块的拆分方法一致,拆分为(16×16)/(m×m)个m×m大小的待修复子宏块;将待修复子宏块按行进行标号,标号方法与备选子宏块的标号方法完全相同;
拆分后共存在3种待修复子宏块,第一种待修复子宏块与两个正确的边界邻接;第二种待修复子宏块与一个正确的边界邻接,并且与另一个同类型的待修复子宏块邻接;第三种待修复子宏块不与正确的边界邻接,但与另外三个同类型的待修复子宏块邻接;
步骤五:利用线性规划模型,获得加权权值:
设备选宏块集中有N个备选宏块。将备选宏块集中的每个备选宏块拆分为16个4×4子宏块,构成备选子宏块集,如图15所示,待修复的宏块也进行同样拆分,得到每个待修复子宏块。
(1)待修复子宏块为1、4、13、16号子宏块,标号如图8所示。这些子宏块属于第一种待修复子宏块。本发明中,这四个待修复子宏块的修复方法一致,以1号子宏块的修复为例,本发明没有限制边界像素的宽度,以n表示。如图16所示,图中标示了1号待修复子宏块的边界像素PB1以及1号备选子宏块集中子宏块的边界P1k,k=1,2,...,N。将备选子宏块集中子宏块的边界P1k进行加权,得到合成边界,选择使合成边界与PB1的SAD达到最小的权值,目标函数为:
其中,B1表示待修复子宏块1的边界区域,共有8×n个像素;坐标(i,j)表示像素的位置;PB1为1号待修复子宏块边界;P1k,k=1,2,...,N为1号备选子宏块集中第k个子宏块的边界。目标函数极小化PB1与以权值ω1,ω2,...,ωN合成的边界的SAD值。
权值ω1,ω2,...,ωN服从两个约束:(1)ω1,ω2,...,ωN和为1;(2)ω1,ω2,...,ωN均大于等于0。
ωk≥0,k=1,2,...,N
这里,P1mbk,k=1,2,...,N代表1号备选子宏块集中第k个备选子宏块。
最后需将目标函数线性化,优化领域公知,将每一个绝对值替换为一个待优化的变量,即可实现目标函数线性化:
等价于
等价于
ts表示人为引入的待优化的变量,将目标函数转变为线性函数:
(2)修复2、3;5、9;8、12;14、15号待修复子宏块。这些待修复子宏块属于第二种待修复子宏块。以2、3号待修复子宏块的修复说明,其余子宏块的修复方法与2、3号待修复子宏块一致。
对于2、3号待修复子宏块,需考虑两者的边界与正确边界的匹配程度,此外还需考虑两个待修复子宏块邻接区域的匹配程度。如图17所示,得到2、3号备选子宏块集中备选子宏块的边界,以及2、3号待修复子宏块的边界,边界宽度可任意选择。如图18所示,可得到2、3号备选子宏块集中子宏块的邻接区域,构成邻接区域集,邻接区域宽度可任意选择。此时目标函数表示为:
式中,B2、B3表示2、3号待修复子宏块的边界区域,D2-3、D3-2表示2、3号备选子宏块邻接区域。PB2、PB3分别为2号、3号待修复子宏块的边界;P2k、P3k分别为2、3号备选子宏块集中第k个备选子宏块的边界,如图17所示;Pc2k、Pc3k分别为2、3号备选子宏块集中第k个子宏块的内部邻接区;Pe2k、Pe3k分别为2、3号备选子宏块集中第k个备选子宏块的外部邻接区,如图18所示。
前两个求和分别计算由2、3号备选子宏块的边界加权得到的合成边界与待修复子宏块边界的SAD;后两个求和分别计算2、3号子宏块邻接区域的SAD。参数α的意义如前所述。
ω21,ω22,...,ω2N,ω31,ω32,...,ω3N为该问题的两组待优化变量,为备选子宏块边界的权值。两组权值仍然服从约束:(1)ω21,ω22,...,ω2N及ω31,ω32,...,ω3N求和等于1;(2)ω21,ω22,...,ω2N及ω31,ω32,...,ω3N均大于等于0,具体如下:
ωtk≥0,k=1,2,...,N
t=2,3
t=2,3
Ptmbk,k=1,2,...,N,t=2,3代表t号备选子宏块集中第k个备选子宏块。
目标函数线性化方法与上述第二种子宏块修复时的目标函数线性化方法一致。
(3)修复6,7,10,11号待修复子宏块。6,7,10,11号子宏块属于第三种待修复子宏块。备选子宏块集的获得方法仍如前所述。
对于6,7,10,11号子宏块,需考虑四个待修复宏块与边界的匹配程度,此外还需考虑待修复子宏块邻接区域的匹配程度。如图19所示,得到6,7,10,11号待修复子宏块的边界、备选子宏块集中的备选子宏块的边界。如图20所示,得到6,7,10,11号备选子宏块集中子宏块的邻接区域集。目标函数可表示为:
该目标函数中,Bt,t=6,7,10,11为第t号待修复子宏块的边界区域;Dm-n为m号备选子宏块到n号备选子宏块的邻接区域,注意,Dm-n和Dn-m是不同的区域;PBt,t=6,7,10,11分别为第t号待修复子宏块的边界;Ptk,k=1,2,...,N,t=6,7,10,11为第t号备选子宏块集中的第k个备选子宏块的边界;Pcm-nk为备选子宏块m到n的内部邻接区域集中的第k个内部边界;Pem-nk则为备选子宏块m到n的外部邻接区域集中的第k个外部边界。参数α意义如前所述。
ω61,ω62,...,ω6N,ω71,ω72,...,ω7N,ω10,1,ω10,2,...,ω10,N及ω11,1,ω11,2,...,ω11,N为该问题的四组待优化变量,意义为备选子宏块边界的权值。
四组权值仍然服从约束:(1)每组权值求和均等于1;(2)每组中的各个权值均大于等于0,具体如下:
ωtk≥0,k=1,2,...,N
t=6,7,10,11
t=6,7,10,11
Ptmbk,k=1,2,...,N,t=6,7,10,11代表t号备选子宏块集中第k个备选子宏块。目标函数线性化仍是将其中每个绝对值替换为一个待优化的变量。该处的线性化方法与第三种子宏块修复时目标函数线性化的方法完全相同。
实施例2
本实施例提出一种针对8×8子宏块类型的采用线性规划模型的视频图像错误隐藏方法,包括以下几个步骤:
步骤一:获得待修复宏块的边界像素:
解码后的图像存储在缓冲区中,利用本帧待修复宏块所在位置,计算待修复宏块的边界像素所在位置,并从缓冲区中将像素值取出,得到待修复宏块的边界像素;
步骤二:获得运动矢量集:
本帧中待修复宏块与其上、下、左、右四个方向的正确宏块邻接,正确宏块被拆分为多个正确子宏块,而每个邻接正确子宏块均具有运动矢量,获得所有邻接子宏块的运动矢量及其对应的参考帧,并去除其中重复的运动矢量及参考帧,构成运动矢量集;
步骤三:获得备选宏块集和边界集:
当给定一个运动矢量和参考帧时,在其参考帧中得到与运动矢量和该参考帧对应的整宏块,整宏块的获取方式与解码端利用运动矢量和参考帧得到预测宏块的方式相同,对于步骤二得到的运动矢量集中的每一个运动矢量和参考帧,均能得到与之对应的整宏块,这些整宏块构成备选宏块集,不同运动矢量和参考帧得到的整宏块通常不相同。分别记录下各个参考帧中每一个整宏块的边界像素,所有整宏块的边界像素构成边界集;
步骤四:对待修复宏块和整宏块进行拆分:
对备选宏块集中的整宏块进行拆分,设备选宏块集中有N个备选整宏块,将备选宏块集中的每个备选整宏块拆分为(16×16)/(m×m)个m×m备选子宏块,各个整宏块中处于相同位置的备选子宏块构成备选子宏块集,则共有(16×16)/(m×m)个备选子宏块集,每个备选子宏块集中具有N个处于相同位置的备选子宏块,将各备选子宏块按行进行标号,每个备选整宏块拆分后处于相同位置的备选子宏块的标号是一致的;备选子宏块集的标号与该备选子宏块集中的备选子宏块的标号是相同的。
在以子宏块为单位修复待修复宏块时,将待修复宏块进行拆分,拆分方法与备选宏块集中的整宏块的拆分方法一致,拆分为(16×16)/(m×m)个m×m大小的待修复子宏块;将待修复子宏块按行进行标号,标号方法与备选子宏块的标号方法完全相同;
拆分后共存在3种待修复子宏块,第一种待修复子宏块与两个正确的边界邻接;第二种待修复子宏块与一个正确的边界邻接,并且与另一个同类型的待修复子宏块邻接;第三种待修复子宏块不与正确的边界邻接,但与另外三个同类型的待修复子宏块邻接;
步骤五:利用线性规划模型,获得加权权值:
设备选宏块集中有N个备选宏块。将备选宏块集中的每个备选宏块拆分为4个8×8子宏块,构成备选子宏块集。待修复宏块也同样拆分,得到每个待修复子宏块。将子宏块分别标记为1、2、3、4,如图21所示。这四个待修复子宏块属于第三种子宏块。
如图21所示,分别得到1,2,3,4号待修复子宏块的边界像素及备选子宏块集中每个备选子宏块的边界。如图20所示,得到备选子宏块集中子宏块的邻接区域集,以计算两个待修复子宏块之间的匹配程度(见括号中的待修复子宏块标号)。目标函数表示为:
该目标函数中,Bt,t=1,2,3,4为第t号待修复子宏块的边界区域;Dm-n为m号备选子宏块到n号备选子宏块的邻接区域,注意,Dm-n和Dn-m是不同的区域;PBt,t=1,2,3,4分别为第t号待修复子宏块的边界;Ptk,k=1,2,...,N,t=1,2,3,4为第t号待修复子宏块集中的第k个子宏块的边界;Pcm-nk为备选子宏块m到n的内部邻接区域集中的第k个内部边界;Pem-nk则为备选子宏块m到n的外部邻接区域集中的第k个外部边界。参数α意义如前所述。
ω11,ω12,...,ω1N,ω21,ω22,...,ω2N,ω31,ω32,...,ω3N及ω41,ω42,...,ω4N为该问题的四组待优化变量,意义为备选子宏块边界的权值。
四组权值仍然服从约束:(1)每组权值求和均等于1;(2)每组中的各个权值均大于等于0,具体如下:
ωtk≥0,k=1,2,...,N
t=1,2,3,4
t=1,2,3,4
Ptmbk,k=1,2,...,N,t=1,2,3,4代表t号备选子宏块集中第k个备选子宏块。
目标函数线性化仍是将其中每个绝对值替换为一个待优化的变量。该处的线性化方法与第三种子宏块修复时目标函数线性化的方法完全相同。
Claims (1)
1.一种采用线性规划模型的视频图像错误隐藏方法,其特征在于:包括以下几个步骤:
步骤一:获得待修复宏块的边界像素:
解码后的图像存储在缓冲区中,利用本帧待修复宏块所在位置,计算待修复宏块的边界像素所在位置,并从缓冲区中将像素值取出,得到待修复宏块的边界像素;
步骤二:获得运动矢量集:
本帧中待修复宏块与其上、下、左、右四个方向的正确宏块邻接,正确宏块被拆分为多个正确子宏块,而每个邻接正确子宏块均具有运动矢量,获得所有邻接子宏块的运动矢量及其对应的参考帧,并去除其中重复的运动矢量及参考帧,构成运动矢量集;
步骤三:获得备选宏块集和边界集:
当给定一个运动矢量和参考帧时,在其参考帧中得到与运动矢量和该参考帧对应的整宏块,整宏块的获取方式与解码端利用运动矢量和参考帧得到预测宏块的方式相同,对于步骤二得到的运动矢量集中的每一个运动矢量和参考帧,均能得到与之对应的整宏块,这些整宏块构成备选宏块集,分别记录下各个参考帧中每一个整宏块的边界像素,所有整宏块的边界像素构成边界集;
步骤四:对待修复宏块和整宏块进行拆分:
对备选宏块集中的整宏块进行拆分,设备选宏块集中有N个备选整宏块,将备选宏块集中的每个备选整宏块拆分为(16×16)/(m×m)个m×m备选子宏块,各个整宏块中处于相同位置的备选子宏块构成备选子宏块集,则共有(16×16)/(m×m)个备选子宏块集,每个备选子宏块集中具有N个处于相同位置的备选子宏块,将各备选子宏块按行进行标号,每个备选整宏块拆分后处于相同位置的备选子宏块的标号是一致的;备选子宏块集的标号与该备选子宏块集中的备选子宏块的标号是相同的;
在以子宏块为单位修复待修复宏块时,将待修复宏块进行拆分,拆分方法与备选宏块集中的整宏块的拆分方法一致,拆分为(16×16)/(m×m)个m×m大小的待修复子宏块;将待修复子宏块按行进行标号,标号方法与备选子宏块的标号方法完全相同;
拆分后共存在3种待修复子宏块,第一种待修复子宏块与两个正确的边界邻接;第二种待修复子宏块与一个正确的边界邻接,并且与另一个同类型的待修复子宏块邻接;第三种待修复子宏块不与正确的边界邻接,但与另外三个同类型的待修复子宏块邻接;
步骤五:利用线性规划模型,获得加权权值:
(1)第一种待修复子宏块的修复方法:
无论何种宏块拆分类型,拆分后处于四个角上的待修复子宏块均属于第一种待修复子宏块,并且只有四个角上的待修复子宏块属于此类型;并标记左上角的待修复子宏块为a号待修复子宏块;
PBa表示a号待修复子宏块的边界像素PBa,a号备选子宏块集中子宏块的边界为Pak,k=1,2,...,N,将备选子宏块集中备选子宏块的边界像素Pak进行加权,得到合成边界,选择使合成边界与PBa之间的SAD达到最小的权值;待优化问题的目标函数为:
其中,Ba表示边界区域,是像素坐标的集合,区域宽度为n,Ba中包含全部边界像素位置;坐标(i,j)表示Ba中各个像素的坐标;PBa(i,j)为a号待修复子宏块(i,j)位置的边界像素值;Pak(i,j),k=1,2,...,N为a号备选子宏块集中第k个子宏块(i,j)位置的边界像素值;有N个a号备选子宏块,有N个备选子宏块边界像素Pak,需要N个权值ω1,ω2,...,ωN对这N个备选子宏块边界Pak进行加权
其中权值ω1,ω2,...,ωN服从两个约束:ω1,ω2,...,ωN和为1;ω1,ω2,...,ωN均大于等于0:
ωk≥0,k=1,2,...,N
其中Pambk代表a号备选子宏块集中第k个备选子宏块;
然后将目标函数线性化,将每一个绝对值替换为一个待优化的变量,实现目标函数线性化:
等价于
等价于
ts表示人为引入的待优化的变量,将目标函数转变为线性函数:
minimize∑ts
采用相同的方法完成其他同类型的第一种子宏块的修复;
(2)第二种待修复子宏块的修复方法:
第二种待修复子宏块的特征为与一个正确的边界邻接,并且与另一个同类型的待修复子宏块邻接;共同考虑两个待修复子宏块的修复,同时优化两组权值,以分别加权两个备选子宏块集中的备选子宏块;标记这两个待修复子宏块为u及v号子宏块;
对于u、v号待修复子宏块,首先考虑两者的边界与正确边界的匹配程度,之后考虑两个待修复子宏块邻接区域的匹配程度,匹配程度均以SAD度量,得到u、v号备选子宏块集中子宏块的边界,以及u、v号待修复子宏块的边界,得到u、v号备选子宏块集中子宏块的邻接区域,构成邻接区域集,目标函数表示为:
式中,Bu、Bv表示u、v号待修复子宏块的边界区域,Du-v、Dv-u分别表示u、v号待修复子宏块与v、u号待修复子宏块的邻接区域;PBu、PBv分别为u、v号待修复子宏块的边界;Puk、Pvk分别为u、v号备选子宏块集中第k个备选子宏块的边界,Pcuk、Pcvk分别为u、v号备选子宏块集中第k个备选子宏块的内部邻接区;Peuk、Pevk分别为u、v号备选子宏块集中第k个备选子宏块的外部邻接区;目标函数的前两个求和分别计算由u、v号备选子宏块的边界加权得到的合成边界与待修复子宏块边界的边界SAD;后两个求和分别计算u、v号备选子宏块邻接区域的邻接SAD;参数α用于调节边界SAD与邻接SAD的相对比例;
ωuk,k=1,2,…,N;ωvk,k=1,2,…,N为两组待优化变量,为备选子宏块边界的权值;上述两组权值仍然服从约束:ωu1,ωu2,...,ωuN及ωv1,ωv2,...,ωvN求和等于1;ωu1,ωu2,...,ωuN及ωv1,ωv2,...,ωvN均大于等于0:
ωtk≥0,k=1,2,...,N
t=u,v
t=u,v
Ptmbk,k=1,2,...,N,t=u,v,表示t号备选子宏块集中第k个备选子宏块;目标函数线性化方法是将每个绝对值替换为一个待优化的变量,具体为:
ts=|Cs(ωu,ωv)|
ωu=(ωu1,ωu2,...,ωuN)T
ωv=(ωv1,ωv2,...,ωvN)T
式中,Cs(ωu,ωv)表示目标函数中任意一个绝对值内部的函数,以ωu、ωv为该目标函数的变量;
等价于
|Cs(ωu,ωv)|≤ts
等价于
Cs(ωu,ωv)≤ts
-ts≤Cs(ωu,ωv)
将目标函数转变为线性函数如下:
minimize∑ts
(3)第三种待修复子宏块的修复方法:
第三种待修复子宏块的特征为均不与正确的边界相邻,但与另外三个同类型的待修复子宏块邻接,共同考虑四个待修复子宏块的修复,同时优化四组权值,以分别加权四个备选子宏块集中的备选子宏块;
标记这四个待修复子宏块为w、x、y、z号子宏块;得到四个待修复子宏块的边界、备选子宏块集中的备选子宏块的边界,得到四个待修复子宏块的内部及外部邻接区域集,目标函数为:
该目标函数中,Bt,t=w,x,y,z为第t号待修复子宏块的边界区域;Dm-n为m号待修复子宏块到n号待修复子宏块的邻接区域,Dm-n和Dn-m是不同的区域;PBt,t=w,x,y,z分别为第t号待修复子宏块的边界;Ptk,k=1,2,...,N,t=w,x,y,z为第t号备选子宏块集中的第k个备选子宏块的边界;Pcm-nk为备选子宏块m到备选子宏块n的内部邻接区域集中的第k个内部边界;Pem-nk则为备选子宏块m到备选子宏块n的外部邻接区域集中的第k个外部边界,使用参数α调节边界SAD与邻接SAD的相对比例;
ωw1,ωw2,...,ωwN,ωx1,ωx2,...,ωxN,ωy1,ωy2,...,ωyN及ωz1,ωz2,...,ωzN为四组待优化变量,意义为备选子宏块边界的权值;
四组权值仍然服从约束:每组权值求和均等于1;每组中的各个权值均大于等于0:
ωtk≥0,k=1,2,...,N
t=w,x,y,z
t=w,x,y,z
其中,Ptmbk,k=1,2,...,N,t=w,x,y,z代表t号备选子宏块集中第k个备选子宏块,目标函数线性化方法是将每个绝对值替换为一个待优化的变量,具体为:
ts=|Cs(ωw,ωx,ωy,ωz)|
ωw=(ωw1,(ωw2,...,ωwN)T
ωx=(ωx1,ωx2,...,ωxN)T
ωy=(ωy1,ωy2,...,ωyN)T
ωz=(ωz1,ωz2,...,ωzN)T
式中,Cs(ωw,ωx,ωy,ωz)表示目标函数中任意一个绝对值内部的函数,以ωw,ωx,ωy,ωz为函数Cs的变量;
等价于
|Cs(ωw,ωx,ωy,ωz)|≤ts
等价于
Cs(ωw,ωx,ωy,ωz)≤ts
-ts≤Cs(ωw,ωx,ωy,ωz)
将目标函数转变为线性函数如下:
minimize∑ts
(4)整宏块的修复方法:
首先得到待修复宏块的边界PB,然后得到备选宏块集中整宏块的边界,构成边界集BS,计算一组权值,用该组权值加权边界集中的边界得到合成边界,目标函数为极小化该合成边界与待修复宏块边界的SAD值:
式中,B为宏块的边界区域;PB为待修补宏块的边界,Pk,k=1,2,...,N为边界集中第k个边界;
权值ω1,ω2,...,ωN仍然服从两个约束:ω1,ω2,...,ωN和为1;ω1,ω2,...,ωN均大于等于0:
ωk≥0,k=1,2,...,N
其中Pmbk,k=1,2,...,N表示备选宏块集中第k个备选整宏块;
将目标函数线性化,将每一个绝对值替换为一个待优化的变量,以实现目标函数线性化:
等价于
等价于
其中ts表示人为引入的待优化的变量,应用上述步骤后,将目标函数转变为线性函数:minimize∑ts。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110272005 CN102325258B (zh) | 2011-09-14 | 2011-09-14 | 一种采用线性规划模型的视频错误隐藏方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110272005 CN102325258B (zh) | 2011-09-14 | 2011-09-14 | 一种采用线性规划模型的视频错误隐藏方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102325258A true CN102325258A (zh) | 2012-01-18 |
CN102325258B CN102325258B (zh) | 2013-01-30 |
Family
ID=45452920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110272005 Expired - Fee Related CN102325258B (zh) | 2011-09-14 | 2011-09-14 | 一种采用线性规划模型的视频错误隐藏方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102325258B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102984525A (zh) * | 2012-12-18 | 2013-03-20 | 北京大学 | 一种视频码流错误隐藏方法 |
CN105847823A (zh) * | 2016-04-05 | 2016-08-10 | 北京佳讯飞鸿电气股份有限公司 | 一种在视频解码中减少内存带宽使用的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020021761A1 (en) * | 2000-07-11 | 2002-02-21 | Ya-Qin Zhang | Systems and methods with error resilience in enhancement layer bitstream of scalable video coding |
US20050147164A1 (en) * | 2000-12-15 | 2005-07-07 | Microsoft Corporation | Drifting reduction and macroblock-based control in progressive fine granularity scalable video coding |
EP1775954A1 (en) * | 2005-10-14 | 2007-04-18 | Thomson Licensing | Method and apparatus for reconstructing a video frame for spatial multi-layer video sequence |
CN101931820A (zh) * | 2009-06-26 | 2010-12-29 | 宏碁股份有限公司 | 空间性错误隐藏方法 |
US20110122945A1 (en) * | 2008-07-22 | 2011-05-26 | John Qiang Li | Methods for error concealment due to enhancement layer packet loss in scalable video coding (svc) decoding |
-
2011
- 2011-09-14 CN CN 201110272005 patent/CN102325258B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020021761A1 (en) * | 2000-07-11 | 2002-02-21 | Ya-Qin Zhang | Systems and methods with error resilience in enhancement layer bitstream of scalable video coding |
US20050147164A1 (en) * | 2000-12-15 | 2005-07-07 | Microsoft Corporation | Drifting reduction and macroblock-based control in progressive fine granularity scalable video coding |
EP1775954A1 (en) * | 2005-10-14 | 2007-04-18 | Thomson Licensing | Method and apparatus for reconstructing a video frame for spatial multi-layer video sequence |
US20110122945A1 (en) * | 2008-07-22 | 2011-05-26 | John Qiang Li | Methods for error concealment due to enhancement layer packet loss in scalable video coding (svc) decoding |
CN101931820A (zh) * | 2009-06-26 | 2010-12-29 | 宏碁股份有限公司 | 空间性错误隐藏方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102984525A (zh) * | 2012-12-18 | 2013-03-20 | 北京大学 | 一种视频码流错误隐藏方法 |
CN102984525B (zh) * | 2012-12-18 | 2015-10-28 | 北京大学 | 一种视频码流错误隐藏方法 |
CN105847823A (zh) * | 2016-04-05 | 2016-08-10 | 北京佳讯飞鸿电气股份有限公司 | 一种在视频解码中减少内存带宽使用的方法 |
CN105847823B (zh) * | 2016-04-05 | 2018-12-11 | 北京佳讯飞鸿电气股份有限公司 | 一种在视频解码中减少内存带宽使用的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102325258B (zh) | 2013-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101344425B1 (ko) | 다시점 화상 부호화 방법, 다시점 화상 복호 방법, 다시점 화상 부호화 장치, 다시점 화상 복호 장치, 다시점 화상 부호화 프로그램 및 다시점 화상 복호 프로그램 | |
JP4414379B2 (ja) | 映像符号化方法、映像復号方法、映像符号化プログラム、映像復号プログラム及びそれらのプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
KR101287458B1 (ko) | 다시점 화상 부호화 방법, 다시점 화상 복호 방법, 다시점 화상 부호화 장치, 다시점 화상 복호 장치, 다시점 화상 부호화 프로그램 및 다시점 화상 복호 프로그램 | |
CN102215389B (zh) | 一种局部亮度补偿的视频编解码方法及装置 | |
KR101950015B1 (ko) | 템플릿 매칭을 이용한 영상 부호화 방법 및 장치, 그리고 복호화 방법 및 장치 | |
CN106507116B (zh) | 一种基于3d显著性信息和视点合成预测的3d-hevc编码方法 | |
EP2262270A1 (en) | Method, device and system for interframe prediction encoding and decoding | |
CN101163250B (zh) | 一种基于边界梯度的视频流容错方法 | |
CN102972028A (zh) | 新的帧内预测模式 | |
CN101207823A (zh) | 用于视频通信的综合抗误码视频编码方法 | |
CN102308583B (zh) | 对多视角图像进行编码和解码的设备和方法 | |
US20150365699A1 (en) | Method and Apparatus for Direct Simplified Depth Coding | |
CN102595130A (zh) | 图像编码装置和图像解码装置 | |
CN102572446A (zh) | 一种多视点视频整帧丢失错误隐藏方法 | |
CN101242540B (zh) | 用于视频解码器芯片的差错控制方法 | |
CN102740081B (zh) | 一种基于分布式编码技术的多视点视频传输差错控制方法 | |
CN103139571A (zh) | 基于fec与wz编解码相结合的视频容错抗误码方法 | |
CN102316323B (zh) | 一种快速的双目立体视频分形压缩与解压缩方法 | |
CN102325258B (zh) | 一种采用线性规划模型的视频错误隐藏方法 | |
CN111510722A (zh) | 一种抗误码性能卓越的视频图像高质量转码方法 | |
CN110677644B (zh) | 一种视频编码、解码方法及视频编码帧内预测器 | |
KR20050025568A (ko) | 프레임의 오류 은닉 장치 및 방법 | |
CN100493194C (zh) | 用于视频感兴趣区域编解码的泄漏运动补偿方法 | |
CN101986713B (zh) | 基于视点合成的多视点容错编码框架 | |
US20220375033A1 (en) | Image processing method, data processing method, image processing apparatus and program |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130130 Termination date: 20140914 |
|
EXPY | Termination of patent right or utility model |