用于确定隐藏顺序以使错误传播最小化的技术的制作方法

文档序号:7587518阅读:172来源:国知局
专利名称:用于确定隐藏顺序以使错误传播最小化的技术的制作方法
技术领域
本发明涉及一种用于建立具有丢失和/或破坏数据的宏块的隐藏(concealment)顺序的技术。
背景技术
在许多情况下,视频流都经历压缩(编码),以方便存储和传输。常见的是,因为信道错误和/或网络拥塞,这种编码的视频流在传输期间造成数据丢失或者被破坏。一旦解码,数据的丢失/破坏就将它自己显现为被解码图像中的一个或多个宏块中的丢失像素值。为减少可归因于这种丢失/破坏的像素值的人为噪声(artifact),解码器将通过从相同图像中的其它宏块、或者从另一幅图像估计像素值,来“隐藏”这种丢失/破坏的像素值。术语“隐藏”有点用词不当,因为解码器实际上并没有隐藏丢失或破坏的像素值。
空间隐藏方法设法依赖于空间域中相邻区域之间的相似性、利用相同图像中其它区域的像素值来推导丢失/破坏的像素值。与空间错误隐藏相反,时间隐藏试图恢复被编码的运动信息,即参考图像索引和运动矢量,以便从至少一个先前发送的宏块估计丢失的像素值。当错误不影响孤立的宏块、但影响邻接宏块组时,隐藏错误可能需要利用已经隐藏的块的信息。如国际标准化组织/国际电信同盟(ISO/ITU)H.264视频压缩标准的Main Profile中定义的丢失片隐藏举例说明了一种需要使用先前隐藏的宏块的信息的典型情况。然而,这种策略易于传播错误,并且损害被恢复图像的质量。
克服该困难的一种方法提出,从图像边界向内进行到图像中心、隐藏全部宏块列。左边宏块和右边宏块经历相互独立的隐藏。类似,每一列内的隐藏独立地向上和向下进行,直到隐藏的宏块在中间会合为止。该方法通过在处理结尾隐藏通常难以预测、但是在视觉上重要的图像中心,来减少错误传播。然而,这样实现隐藏降低了将有意义的信息从左传到右的能力,反之亦然。在没有来自图像右边宏块的信息的情况下预测图像左边的宏块,反之亦然。这种行为使对角线轮廓跨越丢失区域的传播变得困难。
因而,需要一种在克服上述缺点的同时实现错误隐藏的技术。

发明内容
简而言之,根据本发明原理,通过在矩形阵列两个较大边之一的方向上渐进地隐藏具有丢失/破坏的像素值的宏块,来隐藏矩形阵列中的宏块。因而,例如,对于宽度大于高度的矩形阵列,按照行进行隐藏。相反,对于高度大于宽度的矩形阵列,按照列进行隐藏。(对于方形阵列,可以任意地按照行或按照列进行隐藏。)在阵列两个较大边之一的方向上渐进地隐藏宏块便于预测垂直、水平或对角线方向的轮廓,由此与在与阵列大小无关的给定方向上渐进地隐藏宏块的先有隐藏技术相比、提高了隐藏质量。


图1显示了被分成许多宏块的图像;图2显示了当图像预先被编码、并通过易出错信道被传输时、经历解码之后的图1图像,其中信道中的错误造成了矩形宏块阵列的丢失;图3显示了在根据先有技术从图像外边缘到图像中心、按照列垂直地进行错误隐藏的期间的图2图像;图4显示了在根据本发明原理按照行水平地进行错误隐藏的期间的图2图像;图5显示了当图像预先被编码、并且通过易出错信道被传输时、经历解码之后的图1图像,其中信道中的错误造成了非矩形宏块阵列的丢失;以及图6显示了根据本发明原理将图5的非矩形丢失宏块阵列分割成两个矩形子区,以使能错误隐藏。
具体实施例方式
如所提出的ISO/ITU H.264视频压缩标准所体现的基于块视频压缩技术通过将图像分成片进行操作,每一片都包括一组宏块或宏块对,并且每个宏块都根据该标准被编码。宏块典型地包括16×16像素的方形区。为了编码,可以将宏块进一步分成不必是方形的子宏块。当对宏块编码时,每一个子宏块都可以具有不同的编码方式。图1描述了将原始图像100分成许多宏块110。注意,图像100内的宏块数目可以随宏块大小而变。
在所示的例子中,图像100具有从图像左上角对角地延伸到图像右下角的黑条纹120。为说明起见,图像100的剩下部分具有灰阶(graylevel)。为方便传输,图像100典型地将经历编码,典型地通过几种众所周知的基于块编码技术中任一种、如所提出的ISO/ITU H.264标准中描述的技术来实现编码。在已编码图像100的传输期间,一个或多个宏块110可能被破坏。换句话说,这种宏块110所携带的像素值将丢失或被污染。在显示解码后的图像100的图2中,显现了这种情况的例子。图2中的已解码图像100有许多行具有丢失像素值、并全部位于矩形错误区130中的宏块。为方便说明,在图2中以白色显示具有丢失像素值的宏块110,以便和以黑色或灰色显示的具有完好无损像素值的那些宏块形成对比,以黑色或灰色来显示具有完好无损像素值的宏块分别取决于这种宏块是位于包括条纹120的对角线轮廓内、还是位于条纹以外。
图2的图像100中错误区130内每个宏块110的丢失像素值的存在造成了视觉图像人为噪声。破坏的像素值也将引起人为噪声。与图1相比,位于图2的错误区130中的宏块110中的丢失像素值改变了图2中的条纹120的外观。尤其是,图2中的条纹120看上去只从图像左上角延伸到图像中间。在努力将图2的被解码图像100恢复成如图1所示的原始状态的过程中,作为解码过程的一部分,错误区130中具有丢失像素值的宏块110经历了错误隐藏。这种错误隐藏需要从相同图像的其它宏块或另一幅图像估计丢失或破坏的像素值。
一种用于实现错误隐藏的方法提出,通过从图像100的边界向内进行到图像中心、来垂直地隐藏全部宏块列,如图3所示。以H.264标准的参考软件(reference software)实施的该方法造成了难以在水平或对角线方向上传播隐藏信息。如图3所示,当错误隐藏从外向内按照列进行时,在到达图像100的中心以前、将不能检测和条纹120的丢失部分关联的信息。结果,图像左下部分中具有丢失像素值的、在隐藏后应该与黑色条纹120的轮廓一致的宏块110已经被错误像素值(灰色而不是黑色)隐藏。
为克服上述缺点,根据本发明原理、错误隐藏改为按照行水平地进行,如图4所示。以这种方式执行错误隐藏使能在错误区130中的最上面一行宏块110的隐藏期间检测关于条纹120的信息。如可以从图4看到,根据在至少一个邻接行(例如刚好在错误区130之上的行)中正确收到的宏块所携带的像素值,来隐藏错误区130中最上面一行宏块110。在隐藏错误区130中最上面一行宏块110后,像素值的信息渐进地向下传播到下面的每个邻接宏块行。换句话说,一旦隐藏错误区130中最上面一行宏块110,则通过隐藏错误区130中最上面一行宏块110获得的像素值就用作用于预测下面紧接着的一行宏块中的像素值的参考。一旦隐藏错误区130中下面接连的每一行宏块110,则像素值用作用于预测错误区中下面紧接着的一行宏块的参考值,等等。只要错误区130中最顶部行和最底部行的每一行都与正确收到的一行宏块110邻接,则隐藏也可以同时自顶向下和自底向上进行,使得信息分别自顶向下和自底向上传播。
在所示的实施例中,如果错误区130的宽度大于其高度,则按照行水平地隐藏宏块将实现改进的、但不必完善的条纹120重构。水平地渐进隐藏宏块110的行允许信息在水平/对角线方向上传播,由此提高隐藏质量。为使水平方向的错误传播最小化,隐藏以从左到右和从右到左的交替扫描形式发生。换句话说,错误区130中每隔一行中的宏块110经历从左到右的隐藏,而介于其间的行中的宏块经历从右到左的隐藏。一种用于实现这种交替扫描的简单方案需要在相反方向上扫描偶数行和奇数行。
除了图像100包含高度比宽度大的错误区130的情况以外,与按照列垂直地实现隐藏相比,以上述方式按照行水平地隐藏图4中的宏块110获得了改进的性能。在几乎所有情况下,已编码图像100中的错误区130的宽度将比高度大。在图像100的高度实际上比宽度大的极少情况下,宏块隐藏应该按照列垂直地进行。为使垂直方向的错误传播最小化,隐藏以从顶到底和从底到顶的交替扫描形式发生。换句话说,每隔一列中的宏块经历从顶到底的隐藏,而介于其间的列中的宏块则经历从底到顶的隐藏。一种用于实现这种交替扫描的简单方案需要在相反方向上扫描偶数列和奇数列。
因而,根据本发明原理,错误隐藏应该在宏块阵列的两个较大边之一的方向上进行。在这点上,建立图像100的相对方向变得重要。实际上,在解码期间图像100的方向变得显而易见。
为保证最佳性能,在执行隐藏之前,应该将非矩形错误区分成矩形子区。根据本发明原理对诸如图4的错误区130的矩形错误区执行错误隐藏保证了从最顶部行和最底部行(等效地,从最左边列和最右边列)的对称进行。如果错误区的宽度大于高度,则将错误区分成矩形子区,以便每个子区都具有和正确收到的行邻接的最上面行和最下面行。如果错误区的高度大于宽度,则将错误区分成矩形子区,以便每个子区都具有和正确收到的列邻接的最左边列和最右边列。
为更好理解分割非矩形错误区的过程,参考图5,图5描述了当图像在解码之前已经经历了通过造成结果错误的易出错信道的传输的时候、解码后的图1图像100。这种错误在图5的图像100中以非矩形错误区130’的形式显示了错误自己。根据本发明原理,非矩形错误区130’被分成两个或多个矩形子区,如图6中的子区1351和1352所示,每个子区都具有和正确收到的一行宏块接壤的最上面行和最下面行。此后,通过在相反方向上在子区1351和1352的每个子区中交替扫描宏块行,来隐藏每个子区中的宏块,如每个子区中的蜿蜒箭头所示。
以上描述了一种建立矩形阵列中宏块的隐藏顺序的技术,该技术便于预测垂直、水平或对角线方向的轮廓预测,由此提高隐藏质量。
权利要求
1.一种用于建立具有相对边的矩形阵列中的宏块的隐藏顺序的方法,包括以下步骤通过在阵列的较大边之一的方向上进行隐藏,来隐藏具有丢失/破坏的像素值的宏块。
2.根据权利要求1所述的方法,包括以下步骤在相对方向上,向阵列两个较大边的每个边渐进地隐藏,直到到达阵列中心部分为止。
3.一种隐藏具有N行和M列的矩形阵列中的宏块的方法,其中N大于M,该方法包括以下步骤通过在自顶向下和自底向上方向至少之一上按照行水平地进行隐藏,来隐藏具有丢失/破坏的像素值的宏块。
4.根据权利要求3所述的方法,其中隐藏同时在自顶向下和自底向上方向上按照行水平地进行。
5.根据权利要求3所述的方法,其中隐藏只在自顶向下方向上按照行水平地进行。
6.根据权利要求3所述的方法,其中隐藏只在自底向上方向上按照行水平地进行。
7.根据权利要求3所述的方法,其中在从左到右方向和从右到左方向之一上扫描每一行中的宏块。
8.根据权利要求7所述的方法,其中从左到由和从右到左,交替地扫描连续行中的宏块。
9.根据权利要求3所述的方法,其中从左到右隐藏所有行中的宏块。
10.根据权利要求3所述的方法,其中从右到左隐藏所有行中的宏块。
11.根据权利要求5所述的方法,其中从左到右隐藏偶数行中的宏块。
12.根据权利要求5所述的方法,其中从右到左隐藏奇数行中的宏块。
13.根据权利要求5所述的方法,其中从右到左隐藏偶数行中的宏块。
14.根据权利要求5所述的方法,其中从左到右隐藏奇数行中的宏块。
15.根据权利要求3所述的方法,进一步包括以下步骤在执行隐藏之前,将具有丢失/破坏的像素值的非矩形宏块阵列排列成至少两个矩形宏块子阵列,以及独立隐藏每个子阵列。
全文摘要
一种用于建立具有相对边的矩形阵列中的宏块的隐藏顺序的方法,其中通过在阵列较大边的方向上渐进地隐藏连续的宏块行,来有利地隐藏矩形阵列(130)中的宏块(110)。通过这样执行隐藏,来自前面行或列的隐藏的信息以一种便于预测垂直、水平或对角线方向的轮廓的方式传播,由此提高隐藏质量。
文档编号H04N17/04GK1736104SQ200380108503
公开日2006年2月15日 申请日期2003年12月30日 优先权日2003年1月10日
发明者克里斯汀娜·吉奥米拉 申请人:汤姆森许可贸易公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1