CN102055987B - 一种解码错误宏块的错误隐蔽方法及装置 - Google Patents
一种解码错误宏块的错误隐蔽方法及装置 Download PDFInfo
- Publication number
- CN102055987B CN102055987B CN 200910210867 CN200910210867A CN102055987B CN 102055987 B CN102055987 B CN 102055987B CN 200910210867 CN200910210867 CN 200910210867 CN 200910210867 A CN200910210867 A CN 200910210867A CN 102055987 B CN102055987 B CN 102055987B
- Authority
- CN
- China
- Prior art keywords
- macro block
- motion vector
- error
- vector value
- decoding error
- 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.)
- Active
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种解码错误宏块的错误隐蔽方法及装置,其中方法包括:对当前帧进行解码过程中解码错误的宏块,使用该宏块周围相邻的正确解码的各第一宏块的运动矢量值、已完成错误隐蔽的各第二宏块的运动矢量值和发生错误解码且未完成错误隐蔽的各第三宏块的运动矢量预测值,预测出该宏块的运动矢量值;根据预测出的运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该宏块的运动补偿值作为该宏块的错误隐蔽结果。在该解码错误的宏块相邻宏块也发生解码错误时,依然可以准确有效地预测该宏块的运动矢量值。针对视频图像中出现较剧烈运动的情况,由于采用同一帧内与解码错误的宏块相邻的宏块进行运动矢量值的预测,错误隐蔽的效果更好。
Description
技术领域
本发明涉及视频解码技术领域,尤其涉及一种解码错误宏块的错误隐蔽方法及装置。
背景技术
随着网络技术的快速发展和多媒体技术的不断进步,视频通讯的应用得到了越来越多的关注。例如在目前3G标准使用的H.324-M规范中,规定使用H.263和MPEG-4视频编码标准。这两种标准都是基于运动补偿的视频编码算法,其中的大多数视频帧与前面帧的相关性很高,任一帧的错误都会被传播、扩散到后续的若干帧中,从而引起视频质量的严重降低。
因此视频通讯对传输信道的要求很高,但是现有的有线和无线网络不能提供有效的服务质量(QoS,Quality of Service)。特别在类似3G可视电话这种实时性要求高的系统中,不能采用丢包重传等错误恢复机制,所以只能利用接收端接收到的解码错误的宏块的数据进行错误隐蔽。
传统的接收端解码器根据错误检测结果进行错误隐蔽的方法一般分为两类:基于时域的错误隐蔽和基于空域/频域的错误隐蔽。其中基于运动补偿的时域错误隐蔽方法的一种简单实现,就是利用错误宏块所在帧的前一帧中与错误宏块空间位置相同的宏块,替代当前错误宏块。但是在视频中存在较剧烈运动时,这种方法的效果并不理想。
发明内容
本发明实施例提供了一种解码错误宏块的错误隐蔽方法及装置,用以提高解码过程中对解码错误宏块的错误隐蔽效果,提高解码后的图像质量。
本发明实施例提供的一种解码错误宏块的错误隐蔽方法,包括:
对当前帧进行解码过程中解码错误的宏块,确定该解码错误的宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块或该解码错误的宏块上、下、左、右相邻的四个宏块中所包含的正确解码的各第一宏块、已完成错误隐蔽的各第二宏块和发生错误解码且未完成错误隐蔽的各第三宏块;对所述各第三宏块的运动矢量值进行预测,得到各第三宏块的运动矢量预测值;对该解码错误的宏块相邻的各第一宏块的运动矢量值、各第二宏块运动矢量值和各第三宏块的运动矢量预测值进行加权平均,得到该解码错误的宏块的运动矢量值;
根据得到的该解码错误的宏块的运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该解码错误的宏块的运动补偿值,作为该解码错误的宏块的错误隐蔽结果。
在当前帧解码过程中出现多个解码错误的宏块时,按照解码时的先后顺序,依次对各解码错误的宏块进行错误隐蔽的操作。
使用该解码错误的宏块周围相邻的各第一宏块宏块的运动矢量值、各第二宏块的运动矢量值和各第三宏块的运动矢量预测值,预测出该解码错误的宏块的运动矢量值,包括:
所述对所述各第三宏块的运动矢量值进行预测,得到各第三宏块的运动矢量预测值,包括:
当第三宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块中存在正确解码的宏块时,从所述第三宏块相邻的八个宏块中选取正确解码的宏块的运动矢量值进行加权平均运算,得到第三宏块的运动矢量预测值;或者
当第三宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块中都不存在正确解码的宏块时,在该第三宏块周围的若干宏块行中查找正确解码的宏块,对查找到的正确解码的宏块的运动矢量值进行加权平均运算得到第三宏块的运动矢量预测值。
根据该解码错误的宏块与其相邻的各第一宏块、第二宏块和第三宏块之间运动矢量值的相关度,确定加权平均运算中各第一宏块、第二宏块和第三宏块的权重。
本发明实施例提供的另一种解码错误宏块的错误隐蔽方法,包括:
对当前帧进行解码过程中解码错误的宏块,确定该解码错误的宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块或该解码错误的宏块上、下、左、右相邻的四个宏块中所包含的正确解码的各第一宏块、已完成错误隐蔽的各第二宏块和发生错误解码且未完成错误隐蔽的各第三宏块;对所述各第三宏块的运动矢量值进行预测,得到各第三宏块的运动矢量预测值;对该解码错误的相邻的各第一宏块的运动矢量值、各第二宏块运动矢量值和各第三宏块的运动矢量预测值进行加权平均,得到该解码错误的宏块的第一运动矢量值;
根据得到的该解码错误的宏块的第一运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该解码错误的宏块的第一运动补偿值;
根据当前帧的参考帧中与该解码错误的宏块位置对应的宏块的运动矢量值,或者根据所述参考帧中与该解码错误的宏块位置对应的宏块的周围宏块的运动矢量值,预测出该解码错误的宏块的第二运动矢量值;
根据预测出的该解码错误的宏块的第二运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该解码错误的宏块的第二运动补偿值;
比较第一运动补偿值和第二运动补偿值的错误隐蔽效果,选择错误隐蔽效果较佳的作为该解码错误的宏块的错误隐蔽结果。
根据当前帧的参考帧中与该解码错误的宏块位置对应的宏块的运动矢量值,预测该解码错误的宏块的第二运动矢量值,包括:
将当前帧的参考帧中与该解码错误的宏块位置对应的宏块的运动矢量值作为该解码错误的宏块的第二运动矢量值;
根据参考帧中与该解码错误的宏块位置对应的宏块的周围宏块的运动矢量值,预测出该解码错误的宏块的第二运动矢量值,包括:
将参考帧中与该解码错误的宏块位置对应的宏块周围相邻的八个宏块的运动矢量值进行算术平均,运算结果作为该宏块的第二运动矢量值。
采用边缘匹配算法BMA或加强的边缘匹配算法EBMA,分别对该解码错误的宏块第一、第二运动补偿值中边缘像素点的像素值与相邻的其他该解码错误的宏块的边缘像素点的像素值的相关度进行计算,并根据计算结果确定错误隐蔽的效果。
本发明实施例提供的一种解码错误宏块的错误隐蔽装置,包括:
运动矢量值预测单元,包括确定子单元和预测子单元,所述确定子单元,用于对当前帧进行解码过程中解码错误的宏块,确定该解码错误的宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块或该解码错误的宏块上、下、左、右相邻的四个宏块中所包含的正确解码的各第一宏块、已完成错误隐蔽的各第二宏块和发生错误解码且未完成错误隐蔽的各第三宏块,所述预测子单元,用于对所述各第三宏块的运动矢量值分别进行预测,得到各第三宏块的运动矢量预测值;以及对该解码错误的宏块相邻的各第一宏块的运动矢量值、各第二宏块运动矢量值和各第三宏块的运动矢量预测值进行加权平均,得到该解码错误的宏块的运动矢量值;
运动补偿单元,用于根据得到的该解码错误的宏块的运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该解码错误的宏块的运动补偿值,作为该解码错误的宏块的错误隐蔽结果。
所述预测子单元,还用于当第三宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块中存在正确解码的宏块时,从所述第三宏块相邻的八个宏块中选取正确解码的宏块的运动矢量值进行加权平均运算,得到第三宏块的运动矢量预测值;或者
当第三宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块中都不存在正确解码的宏块时,在该第三宏块周围的若干宏块行中查找正确解码的宏块,对查找到的正确解码的宏块的运动矢量值进行加权平均运算得到第三宏块的运动矢量预测值。
本发明实施例提供的另一种解码错误宏块的错误隐蔽装置,包括:
第一运动矢量值预测单元,用于对当前帧进行解码过程中解码错误的宏块,确定该解码错误的宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块或该解码错误的宏块上、下、左、右相邻的四个宏块中所包含的正确解码的各第一宏块、已完成错误隐蔽的各第二宏块和发生错误解码且未完成错误隐蔽的各第三宏块;对所述各第三宏块的运动矢量值进行预测,得到各第三宏块的运动矢量预测值;对该解码错误的宏块相邻的各第一宏块的运动矢量值、各第二宏块运动矢量值和各第三宏块的运动矢量预测值进行加权平均,得到该解码错误的宏块的第一运动矢量值;
第一运动补偿单元,用于根据得到的该解码错误的宏块的第一运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该解码错误的宏块的第一运动补偿值;
第二运动矢量值预测单元,用于根据当前帧的参考帧中与该解码错误的宏块位置对应的宏块的运动矢量值,或者根据所述参考帧中与该解码错误的宏块位置对应的宏块的周围宏块的运动矢量值,预测出该解码错误的宏块的第二运动矢量值;
第二运动补偿单元,用于根据预测出的该解码错误的宏块的第二运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该解码错误的宏块的第二运动补偿值;
比较单元,用于比较第一运动补偿值和第二运动补偿值的错误隐蔽效果,选择错误隐蔽效果较佳的作为该解码错误的宏块的错误隐蔽结果。
第二运动矢量值预测单元,还用于将当前帧的参考帧中与该解码错误的宏块位置对应的宏块的运动矢量值作为该解码错误的宏块的第二运动矢量值;或者将参考帧中与该解码错误的宏块位置对应的宏块周围相邻的八个宏块的运动矢量值进行算术平均,运算结果作为该解码错误的宏块的第二运动矢量值。
本发明实施例的有益效果包括:
本发明实施例提供的解码错误宏块的错误隐蔽方法及装置,对解码错误的宏块,使用基于空域的预测方式预测其运动矢量值,即根据该宏块周围相邻的正确解码的各第一宏块的运动矢量值、已完成错误隐蔽的各第二宏块的运动矢量值和发生错误解码且未完成错误隐蔽的各第三宏块的运动矢量预测值,预测出该宏块的运动矢量值;然后根据预测出的该宏块的运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该宏块的运动补偿值,作为该宏块的错误隐蔽结果。本发明实施例在该解码错误的宏块的相邻宏块也发生解码错误时,依然可以准确有效地预测该宏块的运动矢量值。尤其是当视频图像中出现较剧烈运动的情况下,由于采用同一帧内与该解码错误的宏块周围相邻的宏块进行运动矢量值的预测,比现有的使用解码错误的宏块所在帧的前一帧中与该宏块位置相同的宏块,替代该宏块的方法,错误隐蔽的效果更好。
本发明实施例提供的另一种解码错误宏块的错误隐蔽方法及装置,不仅对发生解码错误的宏块使用基于空域的方式预测其运动矢量值,还对该发生解码错误的宏块使用基于时域的方式预测其运动矢量值,即根据当前帧的参考帧中与该宏块位置对应的宏块的运动矢量值,或者根据参考帧中与该宏块位置对应的宏块的周围宏块的运动矢量值,预测出该宏块的运动矢量值,然后比较两种预测方式得到的运动补偿值的错误隐蔽效果,择优选取其中一种方式得到的运动补偿值作为错误隐蔽的结果。本发明实施例二提供的解码错误宏块的错误隐蔽方法及装置同时使用了基于空域的和时域的运动矢量值的预测方式,更有效地利用基于空域的和时域的预测方式的优势,提高错误隐蔽效果,提高图像的解码质量。
附图说明
图1为本发明实施例一提供的解码错误宏块的错误隐蔽方法的流程图;
图2为本发明实施例一提供的解码错误宏块的错误隐蔽方法的具体实例的示意图之一;
图3为本发明实施例一提供的解码错误宏块的错误隐蔽方法的具体实例的示意图之二;
图4为本发明实施例一提供的解码错误宏块的错误隐蔽装置的结构示意图;
图5为本发明实施例一提供的运动矢量值预测单元结构示意图;
图6为本发明实施例二提供的解码错误宏块的错误隐蔽方法的流程图;
图7为本发明实施例二提供的解码错误宏块的错误隐蔽装置的结构示意图。
具体实施方式
下面结合附图,对本发明提供的一种解码错误宏块的错误隐蔽方法及装置的具体实施方式进行详细的说明。
实施例一:
在对当前帧进行解码的过程中,通过语法检测视频码流中当前帧的宏块的解码的数据是否存在错误;例如可以使用下述语法检测方法来判断是否出现宏块的解码错误,运动矢量值是否超过范围;可变长编码(Variable-length,VLC)码字是否有效;离散余弦变换(Discrete ConsineTransform,DCT)系数是否超出范围;DCT系数的个数是否超出范围;量化系数是否超过范围;解码的宏块数目是否超过范围,码流是否发生丢包(丢失数据包中的宏块也属于发生解码错误),当出现解码错误的宏块时,对发生解码错误的宏块进行标识,在当前帧的解码过程结束后,如果不存在解码错误的宏块,进行下一帧的解码;如果存在解码错误的宏块,对于发生解码错误的宏块,则需要按照发明实施例一提供的解码错误宏块的错误隐蔽方法,执行错误隐蔽的操作。
如果当前帧解码过程中出现多个解码错误的宏块,则对于各个解码错误的宏块,按照宏块解码时的先后顺序,依次对各个解码错误的宏块进行错误隐蔽的操作。下面针对某个解码错误的宏块的错误隐蔽过程进行描述。
本发明实施例一提供的解码错误宏块的错误隐蔽方法,采用基于空域的运动矢量值的预测,也就是根据当前进行错误隐蔽的宏块(下面简称当前宏块)周围相邻的宏块的运动矢量值来预测该当前宏块的运动矢量值,进而得到该当前宏块的运动补偿值,作为错误隐蔽的结果,具体来说,如图1所示,包括下述步骤:
步骤S101、使用该当前宏块周围相邻的正确解码的各第一宏块的运动矢量值、已完成错误隐蔽的各第二宏块的运动矢量值和发生错误解码且未完成错误隐蔽的各第三宏块的运动矢量预测值,预测出该当前宏块的运动矢量值;
步骤S102、根据预测出的该当前宏块的运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该当前宏块的运动补偿值,作为该当前宏块的错误隐蔽结果。
在本发明实施例一提供的上述解码错误宏块的错误隐蔽方法中,为了区分正确解码的宏块,已完成错误隐蔽的宏块和发生错误解码且未完成错误隐蔽操作的宏块依次称为第一宏块、第二宏块和第三宏块。
在上述步骤S101中,使用当前宏块周围相邻的各第一宏块宏块的运动矢量值、各第二宏块的运动矢量值和各第三宏块的运动矢量预测值,预测出该当前宏块的运动矢量值,具体包括:
确定当前宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块或该宏块上、下、左、右相邻的四个宏块中包含的各第一宏块、第二宏块和第三宏块;
对各第三宏块(解码错误且未完成错误隐蔽操作的宏块)的运动矢量值分别进行预测,得到各第三宏块的运动矢量预测值;
对当前宏块相邻的各第一宏块的运动矢量值、各第二宏块运动矢量值和各第三宏块的运动矢量预测值进行加权平均,得到该当前宏块的运动矢量值。
进一步地,本发明实施例一中,对第三宏块的运动矢量值进行预测,得到各第三宏块的运动矢量预测值,包括:
当第三宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块中存在正确解码的宏块时,从所述第三宏块相邻的八个宏块中选取已正确解码的宏块的运动矢量值进行加权平均运算,得到第三宏块的运动矢量预测值;或者
当第三宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块中都不存在正确解码的宏块时,在该第三宏块相邻的若干宏块行中查找正确解码的宏块,对查找到的正确解码的宏块的运动矢量值进行加权平均运算,得到第三宏块的运动矢量预测值。
在根据当前宏块相邻的第一宏块、第二宏块和第三宏块的运动矢量值进行加权平均得出该宏块的运动矢量值的计算式中,各第一宏块、第二宏块和第三宏块的加权平均运算的权重,根据各宏块与当前宏块之间运动矢量值的相关度来块定。换言之,相关度越高的,权重值相应的越大,反之,相关度低的,权重值相应的越小,这样,计算出的当前宏块的运动矢量值才会尽可能地接近当前宏块的真实的运动矢量值。
下面以两个具体的实例对本发明实施例一提供的解码错误宏块的错误隐蔽方法进行说明。
如图1所示,当对宏块E进行错误隐蔽的操作时,选取该宏块E上、下、左、右相邻的四个宏块即宏块A、B、C和D的运动矢量值预测宏块E的运动矢量值。
宏块A、B、C和D当中,假设宏块A已正确解码,宏块B、C和D解码错误,由于宏块B在宏块E之前已经完成了错误隐蔽的操作(因为宏块B的解码的顺序在宏块E解码的顺序之前),那么此次错误隐蔽操作中,可以直接使用该宏块B的运动矢量值,而错误解码的宏块C和宏块D的运动矢量值是不可用的,必须首先利用其周围相邻的正确解码的宏块的运动矢量值进行预测,得到宏块C和D的运动矢量预测值。
对宏块C来说,宏块C周围相邻的8个宏块中,存在正确解码的宏块,选取宏块C右上相邻的正确解码的宏块M和对宏块C右下相邻的正确解码的宏块N的运动矢量值,计算宏块C的运动矢量预测值。
假设宏块M的运动矢量值为VM,宏块N的运动矢量值为VN,两者进行加权平均的运算的运算式如下:
VC=a*VM+b*VN;
上式中,VC是宏块C的运动矢量预测值;
a和b分别是VM和VN加权平均运算的权重值。
同样地,如图2所示,对宏块D来说,将宏块D左下方、下方和右下方相邻的已正确解码的宏块J、K和L的运动矢量值VJ、VK和VL进行加权平均运算,得到宏块D的运动矢量预测值VD。
然后,将宏块A的运动矢量值VA、宏块B的运动矢量值VD、宏块C的运动矢量预测值VC和宏块D的运动矢量预测值VD进行加权平均运算,得到宏块E的运动矢量值VE。
后续的运动补偿的操作包括:即根据宏块E的运动矢量值VE,在当前帧的参考帧中查找到相应的最匹配宏块,将查找到的最匹配宏块的像素值加上解码出的差值,得到该宏块E的运动补偿值作为错误隐蔽结果。
另一个实例如图3所示,当前宏块为图中的宏块E,如果其周围相邻的宏块都解码错误(例如图3中的宏块A、B、C和D),其中,宏块A和宏块B已经在宏块E进行错误隐蔽操作之前,完成了错误隐蔽操作,因此,宏块A和宏块B的运动矢量值VA和VB是可用的,宏块C解码错误且未经过错误隐蔽操作,宏块C的运动矢量值不可用,必须先对宏块C的运动矢量值进行预测,得到宏块C的运动矢量预测值VC。
对于宏块C来说,其周围紧邻的8个宏块中,没有解码正确的宏块,因此,需要在其周围的若干宏块行中查找解码正确的宏块,例如图3中,对与宏块C右上方相隔两个宏块行的宏块M的运动矢量值VM,以及宏块C右下方相隔两个宏块行N的运动矢量值VN进行加权平均运算,得到宏块C的运动矢量预测值VC。
对于宏块D来说,其周围紧邻的8个宏块中,没有解码正确的宏块,利用宏块D下方、左下方和右下方与宏块D相隔一个宏块行的宏块J、K和L(这三个宏块都是解码正确的宏块)的运动矢量值VJ、VK和VM进行加权运算,得到宏块D的运动矢量预测值VD。
然后,对宏块A和宏块B的运动矢量值VA和VB、以及宏块C和D的运动矢量预测值VC和VD进行加权平均运算,得到宏块E的运动矢量值VE。
后续根据宏块C的运动矢量值VE进行运动补偿,得到宏块E的运动补偿值作为错误隐蔽结果。
在上述对宏块E的错误隐蔽的操作过程中,优先选择宏块E右方和宏块E左下方、下方和右下方正确解码的宏块进行加权平均的运算,因为在宏块右方、左下方、下方和右下方的宏块的运动矢量值是真实的运动矢量值,而非经过运算过的运动矢量预测值,能够提高宏块E进行错误隐蔽时预测的运动矢量值的准确度。
基于同一发明构思,本发明实施例一中还提供了一种解码错误宏块的错误隐蔽的装置,由于该装置解决问题的原理与前述一种解码错误宏块的错误隐蔽的方法相似,因此该装置的实施可以参见方法的实施,重复之处不在赘述。
本发明实施例一提供的解码错误宏块的错误隐蔽装置,如图4所示,包括:运动矢量值预测单元401和运动补偿单元402;
运动矢量值预测单元401,用于对当前帧进行解码过程中解码错误的宏块,使用该宏块周围相邻的正确解码的各第一宏块的运动矢量值、已完成错误隐蔽的各第二宏块的运动矢量值和发生错误解码且未完成错误隐蔽的各第三宏块的运动矢量预测值,预测出该宏块的运动矢量值;
运动补偿单元402,用于根据预测出的该宏块的运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该宏块的运动补偿值,作为该宏块的错误隐蔽结果。
其中,运动矢量值预测单元401,如图5所示,具体包括:
确定子单元4011,用于确定该宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块中所包含的各第一宏块、第二宏块和第三宏块;
预测子单元4012,用于对所述各第三宏块的运动矢量值分别进行预测,得到各第三宏块的运动矢量预测值;以及对所述当前宏块相邻的各第一宏块的运动矢量值、各第二宏块运动矢量值和各第三宏块的运动矢量预测值进行加权平均,得到该宏块的运动矢量值。
预测子单元4012,还用于当第三宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块中存在正确解码的宏块时,从所述第三宏块相邻的八个宏块中选取正确解码的宏块的运动矢量值进行加权平均运算,得到第三宏块的运动矢量预测值;或者
当第三宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块中都不存在正确解码的宏块时,在该第三宏块周围的若干宏块行中查找正确解码的宏块,对查找到的正确解码的宏块的运动矢量值进行加权平均运算得到第三宏块的运动矢量预测值。
实施例二:
本发明实施例二中,在实施例一提供的技术方案的基础上,还对当前宏块的运动矢量值进行时域上的预测,然后比较两种方式下运动补偿值的错误隐蔽的效果,选择效果较优的一种方式得到的运动补偿值作为当前宏块最终的错误隐蔽结果。
如图6所示,本发明实施例二提供的解码错误宏块的错误隐蔽方法,具体包括下述步骤:
S601、对当前帧进行解码过程中解码错误的宏块,使用该宏块周围相邻的正确解码的各第一宏块的运动矢量值、已完成错误隐蔽的各第二宏块的运动矢量值和发生错误解码且未完成错误隐蔽的各第三宏块的运动矢量预测值,预测出该宏块的第一运动矢量值;
S602、根据预测出的该宏块的第一运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该宏块的第一运动补偿值;
S603、根据当前帧的参考帧中与该宏块位置对应的宏块的运动矢量值,或者根据所述参考帧中与该宏块位置对应的宏块的周围宏块的运动矢量值,预测出该宏块的第二运动矢量值;
S604、根据预测出的该宏块的第二运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该宏块的第二运动补偿值;
S605、比较第一运动补偿值和第二运动补偿值的错误隐蔽效果,选择错误隐蔽效果较佳的作为该宏块的错误隐蔽结果。
上述步骤S601、S602的具体执行过程与实施例一中相同,在此不再赘述。
上述步骤S603的根据当前帧的参考帧中与该宏块位置对应的宏块的运动矢量值,预测该宏块的第二运动矢量值的步骤,可以通过下述方式实现:
将当前帧的参考帧中与该宏块位置对应的宏块的运动矢量值作为该宏块的第二运动矢量值;或者
将当前帧的参考帧中与该宏块位置对应的宏块周围相邻的八个宏块的运动矢量值进行算术平均,将算术平均的运算结果作为该宏块的第二运动矢量值。
上述步骤S605中,采用现有的边缘匹配算法(Boundary MatchingAlgorithm,BMA)或加强的边缘匹配算法(Enhanced Boundary MatchingAlgorithm,EBMA),对当前宏块第一运动补偿值以及当前宏块的第二运动补偿值的错误隐蔽效果进行比较。
BMA和EBMA算法的基本原理是利用视频图像中邻接像素点的像素值具有高度相关性的事实,也就说,计算出当前宏块的运动补偿值中边缘像素点与相邻宏块边缘像素点的相关度越高,则错误隐蔽的效果越好。
分别对当前宏块第一运动补偿值以及当前宏块的第二运动补偿值中,边缘像素点的像素值与相邻的其他宏块的边缘像素点的像素值的相关度进行计算,以图2中的宏块E为例,计算宏块E的运动补偿值中右侧边缘像素点的像素值和相邻宏块C的左侧边缘像素点的像素值之间的相关度,相关度越高,则认为该运动补偿值的错误隐蔽效果越好。
基于同一发明构思,本发明实施例二中还提供了一种解码错误宏块的错误隐蔽的装置,由于该装置解决问题的原理与前述一种解码错误宏块的错误隐蔽的方法相似,因此该装置的实施可以参见方法的实施,重复之处不在赘述。
本发明实施例二提供的一种解码错误宏块的错误隐蔽装置,如图7所示,具体包括:
第一运动矢量值预测单元701,用于对当前帧进行解码过程中解码错误的宏块,使用该宏块周围相邻的正确解码的各第一宏块的运动矢量值、已完成错误隐蔽的各第二宏块的运动矢量值和发生错误解码且未完成错误隐蔽的各第三宏块的运动矢量预测值,预测出该宏块的第一运动矢量值;
第一运动补偿单元702,用于根据预测出的该宏块的第一运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该宏块的第一运动补偿值;
第二运动矢量值预测单元703,用于根据当前帧的参考帧中与该宏块位置对应的宏块的运动矢量值,或者根据所述参考帧中与该宏块位置对应的宏块的周围宏块的运动矢量值,预测出该宏块的第二运动矢量值;
第二运动补偿单元704,用于根据预测出的该宏块的第二运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该宏块的第二运动补偿值;
比较单元705,用于比较第一运动补偿值和第二运动补偿值的错误隐蔽效果,选择错误隐蔽效果较佳的作为该宏块的错误隐蔽结果。
上述第二运动矢量值预测单元703,还用于将当前帧的参考帧中与该宏块位置对应的宏块的运动矢量值作为该宏块的第二运动矢量值;或者将参考帧中与该宏块位置对应的宏块周围相邻的八个宏块的运动矢量值进行算术平均,运算结果作为该宏块的第二运动矢量值。
本发明实施例一提供的解码错误宏块的错误隐蔽方法及装置,对解码错误的宏块,使用基于空域的预测方式预测其运动矢量值,即根据该宏块周围相邻的正确解码的各第一宏块的运动矢量值、已完成错误隐蔽的各第二宏块的运动矢量值和发生错误解码且未完成错误隐蔽的各第三宏块的运动矢量预测值,预测出该宏块的运动矢量值;然后根据预测出的该宏块的运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该宏块的运动补偿值,作为该宏块的错误隐蔽结果。本发明实施例一在该解码错误的宏块的相邻宏块也发生解码错误时,依然可以准确有效地预测该宏块的运动矢量值。尤其是当视频图像中出现较剧烈运动的情况下,由于采用同一帧内与该解码错误的宏块周围相邻的宏块进行运动矢量值的预测,比现有的使用解码错误的宏块所在帧的前一帧中与该宏块位置相同的宏块,替代该宏块的方法,准确度更好,相应的图像解码效果也更好。
本发明实施例二提供的解码错误宏块的错误隐蔽方法及装置,不仅对发生解码错误的宏块使用基于空域的方式预测其运动矢量值,还对该发生解码错误的宏块使用基于时域的方式预测其运动矢量值,即根据当前帧的参考帧中与该宏块位置对应的宏块的运动矢量值,或者根据参考帧中与该宏块位置对应的宏块的周围宏块的运动矢量值,预测出该宏块的运动矢量值,然后比较两种预测方式得到的运动补偿值的错误隐蔽效果,择优选取其中一种方式得到的运动补偿值作为错误隐蔽的结果。本发明实施例二提供的解码错误宏块的错误隐蔽方法及装置同时使用了基于空域的和时域的运动矢量值的预测方式,更有效地利用基于空域的和时域的预测方式的优势,提高错误隐蔽效果,提高图像的解码质量。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种解码错误宏块的错误隐蔽方法,其特征在于,包括:
对当前帧进行解码过程中解码错误的宏块,确定该解码错误的宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块或该解码错误的宏块上、下、左、右相邻的四个宏块中所包含的正确解码的各第一宏块、已完成错误隐蔽的各第二宏块和发生错误解码且未完成错误隐蔽的各第三宏块;对所述各第三宏块的运动矢量值进行预测,得到各第三宏块的运动矢量预测值;对该解码错误的宏块相邻的各第一宏块的运动矢量值、各第二宏块运动矢量值和各第三宏块的运动矢量预测值进行加权平均,得到该解码错误的宏块的运动矢量值;
根据得到的该解码错误的宏块的运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该解码错误的宏块的运动补偿值,作为该解码错误的宏块的错误隐蔽结果。
2.如权利要求1所述的方法,其特征在于,在当前帧解码过程中出现多个解码错误的宏块时,按照解码时的先后顺序,依次对各解码错误的宏块进行错误隐蔽的操作。
3.如权利要求1所述的方法,其特征在于,所述对所述各第三宏块的运动矢量值进行预测,得到各第三宏块的运动矢量预测值,包括:
当第三宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块中存在正确解码的宏块时,从所述第三宏块相邻的八个宏块中选取正确解码的宏块的运动矢量值进行加权平均运算,得到第三宏块的运动矢量预测值;或者
当第三宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块中都不存在正确解码的宏块时,在该第三宏块周围的若干宏块行中查找正确解码的宏块,对查找到的正确解码的宏块的运动矢量值进行加权平均运算得到第三宏块的运动矢量预测值。
4.如权利要求1或3所述的方法,其特征在于,根据该解码错误的宏块与其相邻的各第一宏块、第二宏块和第三宏块之间运动矢量值的相关度,确定加权平均运算中各第一宏块、第二宏块和第三宏块的权重。
5.一种解码错误宏块的错误隐蔽方法,其特征在于,包括:
对当前帧进行解码过程中解码错误的宏块,确定该解码错误的宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块或该解码错误的宏块上、下、左、右相邻的四个宏块中所包含的正确解码的各第一宏块、已完成错误隐蔽的各第二宏块和发生错误解码且未完成错误隐蔽的各第三宏块;对所述各第三宏块的运动矢量值进行预测,得到各第三宏块的运动矢量预测值;对该解码错误的宏块相邻的各第一宏块的运动矢量值、各第二宏块运动矢量值和各第三宏块的运动矢量预测值进行加权平均,得到该解码错误的宏块的第一运动矢量值;
根据得到的该解码错误的宏块的第一运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该解码错误的宏块的第一运动补偿值;
根据当前帧的参考帧中与该解码错误的宏块位置对应的宏块的运动矢量值,或者根据所述参考帧中与该解码错误的宏块位置对应的宏块的周围宏块的运动矢量值,预测出该解码错误的宏块的第二运动矢量值;
根据预测出的该解码错误的宏块的第二运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该解码错误的宏块的第二运动补偿值;
比较第一运动补偿值和第二运动补偿值的错误隐蔽效果,选择错误隐蔽效果较佳的作为该解码错误的宏块的错误隐蔽结果。
6.如权利要求5所述的方法,其特征在于,根据当前帧的参考帧中与该解码错误的宏块位置对应的宏块的运动矢量值,预测该解码错误的宏块的第二运动矢量值,包括:
将当前帧的参考帧中与该解码错误的宏块位置对应的宏块的运动矢量值作为该解码错误的宏块的第二运动矢量值;
根据参考帧中与该解码错误的宏块位置对应的宏块的周围宏块的运动矢量值,预测出该解码错误的宏块的第二运动矢量值,包括:
将参考帧中与该解码错误的宏块位置对应的宏块周围相邻的八个宏块的运动矢量值进行算术平均,运算结果作为该解码错误的宏块的第二运动矢量值。
7.如权利要求5所述的方法,其特征在于,采用边缘匹配算法BMA或加强的边缘匹配算法EBMA,分别对该解码错误的宏块第一、第二运动补偿值中边缘像素点的像素值与相邻的其他该解码错误的宏块的边缘像素点的像素值的相关度进行计算,并根据计算结果确定错误隐蔽的效果。
8.一种解码错误宏块的错误隐蔽装置,其特征在于,包括:
运动矢量值预测单元,包括确定子单元和预测子单元,所述确定子单元,用于对当前帧进行解码过程中解码错误的宏块,确定该解码错误的宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块或该解码错误的宏块上、下、左、右相邻的四个宏块中所包含的正确解码的各第一宏块、已完成错误隐蔽的各第二宏块和发生错误解码且未完成错误隐蔽的各第三宏块,所述预测子单元,用于对所述各第三宏块的运动矢量值分别进行预测,得到各第三宏块的运动矢量预测值;以及对该解码错误的宏块相邻的各第一宏块的运动矢量值、各第二宏块运动矢量值和各第三宏块的运动矢量预测值进行加权平均,得到该解码错误的宏块的运动矢量值;
运动补偿单元,用于根据得到的该解码错误的宏块的运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该解码错误的宏块的运动补偿值,作为该解码错误的宏块的错误隐蔽结果。
9.如权利要求8所述的装置,其特征在于,所述预测子单元,还用于当第三宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块中存在正确解码的宏块时,从所述第三宏块相邻的八个宏块中选取正确解码的宏块的运动矢量值进行加权平均运算,得到第三宏块的运动矢量预测值;或者
当第三宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块中都不存在正确解码的宏块时,在该第三宏块周围的若干宏块行中查找正确解码的宏块,对查找到的正确解码的宏块的运动矢量值进行加权平均运算得到第三宏块的运动矢量预测值。
10.一种解码错误宏块的错误隐蔽装置,其特征在于,包括:
第一运动矢量值预测单元,用于对当前帧进行解码过程中解码错误的宏块,确定该解码错误的宏块上、下、左、右、左上、左下、右上和右下相邻的八个宏块或该解码错误的宏块上、下、左、右相邻的四个宏块中所包含的正确解码的各第一宏块、已完成错误隐蔽的各第二宏块和发生错误解码且未完成错误隐蔽的各第三宏块;对所述各第三宏块的运动矢量值进行预测,得到各第三宏块的运动矢量预测值;对该解码错误的宏块相邻的各第一宏块的运动矢量值、各第二宏块运动矢量值和各第三宏块的运动矢量预测值进行加权平均,得到该解码错误的宏块的第一运动矢量值;
第一运动补偿单元,用于根据得到的该解码错误的宏块的第一运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该解码错误的宏块的第一运动补偿值;
第二运动矢量值预测单元,用于根据当前帧的参考帧中与该解码错误的宏块位置对应的宏块的运动矢量值,或者根据所述参考帧中与该解码错误的宏块位置对应的宏块的周围宏块的运动矢量值,预测出该解码错误的宏块的第二运动矢量值;
第二运动补偿单元,用于根据预测出的该解码错误的宏块的第二运动矢量值,使用当前帧的参考帧的像素值进行运动补偿,得出该解码错误的宏块的第二运动补偿值;
比较单元,用于比较第一运动补偿值和第二运动补偿值的错误隐蔽效果,选择错误隐蔽效果较佳的作为该解码错误的宏块的错误隐蔽结果。
11.如权利要求10所述的装置,其特征在于,第二运动矢量值预测单元,还用于将当前帧的参考帧中与该解码错误的宏块位置对应的宏块的运动矢量值作为该解码错误的宏块的第二运动矢量值;或者将参考帧中与该解码错误的宏块位置对应的宏块周围相邻的八个宏块的运动矢量值进行算术平均,运算结果作为该解码错误的宏块的第二运动矢量值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910210867 CN102055987B (zh) | 2009-11-11 | 2009-11-11 | 一种解码错误宏块的错误隐蔽方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910210867 CN102055987B (zh) | 2009-11-11 | 2009-11-11 | 一种解码错误宏块的错误隐蔽方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102055987A CN102055987A (zh) | 2011-05-11 |
CN102055987B true CN102055987B (zh) | 2013-07-03 |
Family
ID=43959849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910210867 Active CN102055987B (zh) | 2009-11-11 | 2009-11-11 | 一种解码错误宏块的错误隐蔽方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102055987B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013123635A1 (en) * | 2012-02-20 | 2013-08-29 | Thomson Licensing | Methods for compensating decoding error in three-dimensional models |
CN104427347A (zh) * | 2013-09-02 | 2015-03-18 | 苏州威迪斯特光电科技有限公司 | 网络摄像机视频监控系统图像质量提高方法 |
CN106358044B (zh) * | 2016-10-28 | 2017-07-21 | 济南大学 | 一种立体视频帧率提升中运动矢量检测与校正方法及系统 |
CN115514975B (zh) * | 2022-07-19 | 2024-04-23 | 西安万像电子科技有限公司 | 一种编解码方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1455596A (zh) * | 2003-03-03 | 2003-11-12 | 西南交通大学 | 基于运动向量外推及运动向量搜索的视频差错掩盖方法 |
EP1387587A1 (en) * | 2002-07-30 | 2004-02-04 | Matsushita Electric Industrial Co., Ltd. | Image encoder and decoder with error concealment of motion vector losses |
CN101188772A (zh) * | 2006-11-17 | 2008-05-28 | 中兴通讯股份有限公司 | 一种视频解码的时域错误隐蔽方法 |
CN101193313A (zh) * | 2006-11-20 | 2008-06-04 | 中兴通讯股份有限公司 | 一种视频解码的时域错误隐蔽方法 |
-
2009
- 2009-11-11 CN CN 200910210867 patent/CN102055987B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1387587A1 (en) * | 2002-07-30 | 2004-02-04 | Matsushita Electric Industrial Co., Ltd. | Image encoder and decoder with error concealment of motion vector losses |
CN1455596A (zh) * | 2003-03-03 | 2003-11-12 | 西南交通大学 | 基于运动向量外推及运动向量搜索的视频差错掩盖方法 |
CN101188772A (zh) * | 2006-11-17 | 2008-05-28 | 中兴通讯股份有限公司 | 一种视频解码的时域错误隐蔽方法 |
CN101193313A (zh) * | 2006-11-20 | 2008-06-04 | 中兴通讯股份有限公司 | 一种视频解码的时域错误隐蔽方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102055987A (zh) | 2011-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101379816B (zh) | 双向预测帧的时间错误隐藏 | |
US10542284B2 (en) | Method and arrangement for video coding | |
TWI520586B (zh) | 用於編碼單元的視訊編碼的局部多重假設預測的執行方法及裝置 | |
JP5296679B2 (ja) | 画像復号装置および画像復号方法 | |
JP5957532B2 (ja) | ビデオシーケンスにおける知覚品質評価のためのシーン変化検出 | |
JP2011511541A (ja) | フレーム間予測符号化の方法、装置、およびシステム | |
KR20110008653A (ko) | 움직임 벡터 예측 방법과 이를 이용한 영상 부호화/복호화 장치 및 방법 | |
MXPA06010360A (es) | Metodos y aparato para tomar decisiones en modo rapido en codecs de video. | |
CN102860006A (zh) | 管理预测运动向量候选 | |
CN101198063A (zh) | 编解码方法及装置、分像素插值处理方法及装置 | |
CN101375602A (zh) | 基于与错误隐藏有关的失真值确定编码方法的方法和设备 | |
KR101482514B1 (ko) | 움직임 예측 방법 및 비디오 인코딩 방법 | |
CN102883159A (zh) | 图像编码方法以及图像解码方法 | |
CN101663895B (zh) | 使用所估计译码成本的视频译码模式选择 | |
WO2012092045A1 (en) | Block based sampling coding systems | |
CN102055987B (zh) | 一种解码错误宏块的错误隐蔽方法及装置 | |
KR20230145097A (ko) | 공간 국소 조명 보상 | |
CN106534871B (zh) | 视频编解码器的编码方法和解码方法 | |
WO2007132538A1 (ja) | 画像データ圧縮装置、圧縮方法及びプログラム並びに画像データ復元装置、復元方法及びプログラム | |
US20070133689A1 (en) | Low-cost motion estimation apparatus and method thereof | |
CN1922889A (zh) | 使用加权预测的误差隐蔽技术 | |
CN103384327A (zh) | 基于自适应阈值的avs快速模式选择算法 | |
CN101867818B (zh) | 宏块模式的选择方法和装置 | |
JPWO2020035829A5 (zh) | ||
CN112565768A (zh) | 一种帧间预测方法、编解码系统及计算机可读存储介质 |
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 |