帧内块复制预测中的块翻动和跳跃模式的制作方法_4

文档序号:9494007阅读:来源:国知局
编码。具体地,对于跳跃模式帧内BC预测的块,BV差被信号化。
[0116]头部格式化器/熵编码器(590)在经编码视频比特流(595)中提供经编码的数据。经编码的视频比特流的格式(595)可以是H.265/HEVC格式、Windows媒体视频格式、VC-1 格式、MPEG-x 格式(例如,MPEG-1、MPEG-2 或 MPEG-4)、H.26x 格式(例如,H.261、H.262、H.263或H.264)或其它格式的变型或扩展。
[0117]取决于所需的压缩的实现和类型,编码器的模块可被添加、省略、拆分成多个模块、与其它模块组合、和/或用相似的模块来替代。在替换实施例中,具有不同模块和/或其它配置的模块的编码器执行一个或多个所描述的技术。编码器的具体实施例通常使用编码器(500)的变型或补充版本。所示的编码器(500)内的各模块之间的关系指示了信息在编码器中的一般流动;为简明起见,未示出其它关系。
[0118]V1.示例视频解码器
[0119]图6是结合其可实现所描述的一些实施例的通用解码器¢00)的框图。解码器(600)接收经编码的视频比特流¢05)中的经编码的数据并产生包括经重构视频¢95)的图片的输出。经编码的视频比特流的格式(605)可以是H.265/HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的变型或扩展。
[0120]解码器(600)是基于块的并使用取决于实现的块格式。块可以在不同的阶段被进一步细分。例如,图片可以被划分成64x64块、32x32块或16x16块,这些块随后可以被划分成更小的样本值块。在针对H.265/HEVC标准的解码实现中,将图片分割成CTU(CTB)、CU (CB)、PU (PB)和 TU (TB)。
[0121]解码器(600)使用图片内解码和/或图片间解码来对图片进行解压缩。解码器(600)的许多组件被用于图片内解码和图片间解码这两者。由这些组件执行的确切操作可以取决于正被解压缩的信息的类型而变化。
[0122]缓冲器在经编码的视频比特流¢05)中接收经编码数据,并使得接收到的经编码数据可用于解析器/熵解码器¢10)。解析器/熵解码器(610)通常应用在编码器(500)中执行的熵编码的逆(例如上下文自适应二进制算术解码)对经熵编码的数据进行熵解码。作为解析和熵解码的结果,解析器/熵解码器(610)产生通用控制数据¢22)、经量化的变换系数数据¢32)、帧内预测数据¢42)、运动数据¢52)以及滤波器控制数据¢62)。对于帧内预测数据(642),解析器/熵解码器(610)对(帧内BC预测的)BV预测值索引值进行熵解码。解析器/熵解码器(610)还可对指示是否将块翻动用于帧内BC预测(或运动补偿)的句法元素进行熵解码。在一些情况中,解析器/熵解码器(610)还可以(例如使用上下文自适应二进制算术解码)对BV值的BV差进行熵解码,随后将该BV差与相应的BV预测值组合以重构BV值。具体地,对于跳跃模式的帧内BC预测的块,将BV差从比特流中解析出来,并将其与(例如,用BV预测值索引值指示的)BV预测值组合以重构BV值。
[0123]通用解码控件(620)接收通用控制数据(622)并将控制信号(未示出)提供给其它模块(例如缩放器/逆变换器(635)、图片内预测器(645)、运动补偿器(655)以及帧内/帧间切换)以设置和改变解码期间的解码参数。
[0124]如果当前图片是使用图片间预测来预测的,则运动补偿器(655)接收运动数据(652),例如MV数据、参考图片选择数据、合并模式索引值以及指示是否(对运动补偿)使用块翻动的句法元素。运动补偿器(655)将MV应用于来自经解码图片缓冲器(670)的(诸)经重构的参考图片。当块翻动被使用时,运动补偿器(655)可考虑(当前块的)预测区域相对于其参考区域的翻动,如以下所描述的。运动补偿器(655)产生针对当前图片中的帧间编码块的运动补偿的预测。经解码图片缓冲器(670)存储一个或多个先前重构的图片以供用作参考图片。
[0125]在解码器(600)内的分开路径中,帧内预测预测器(645)接收帧内预测数据(642),例如指示帧内预测使用空间预测还是帧内BC预测的信息、(针对帧内空间预测的)预测模式方向、(针对帧内BC预测的)BV值、以及指示是否(对帧内BC预测)使用块翻动的句法元素。对于帧内空间内预测,根据预测模式数据使用当前图片的重构(638)的值,图片内预测器(645)从当前图片的相邻的、先前重构的样本值中空间地预测当前图片中的当前块的样本值。或者,对于使用BV值的帧内BC预测,图片内预测器(645)使用帧内预测参考区域的先前重构的样本值来预测当前块的样本值,帧内预测参考区域由当前块的BV值来指示。对于帧内BC预测,图片内预测器(645)可考虑(当前块的)帧内BC预测区域相对于其参考区域的翻动,如以下所描述的。
[0126]帧内/帧间切换选择对于给定块的预测(658)是经运动补偿的预测还是图片内预测。例如,当遵循H.265/HEVC句法时,可以基于为图片中的CU编码的一个或多个句法元素来控制帧内/帧间切换,该CU可以包括帧内预测的CU和帧间预测的CU。对于非跳跃模式块,解码器(600)将预测(658)与重构的残留值组合以产生来自视频信号的内容的重构(638) ο对于跳跃模式块,解码器(600)使用预测¢58)的值作为重构¢38)。
[0127]为了重构非跳跃模式块的残留值,缩放器/逆变换器(635)接收并处理经量化的变换系数数据¢32)。在缩放器/逆变换器(635)中,缩放器/逆量化器对经量化的变换系数执行逆缩放和逆量化。逆频率变换器执行逆频率变换,从而产生经重构的预测残留值或样本值的块。例如,逆频率变换器将逆块变换应用到频率变换系数,从而产生样本值数据或预测残留数据。逆频率变换可以是逆DCT、其整数近似、或另一种类型的逆频率变换(例如逆离散正弦变换或其整数近似)。
[0128]对于图片内预测,重构(638)的值可以被馈送回图片内预测器(645)。对于图片间预测,重构(638)的值可以被进一步滤波。在合并器/(诸)滤波器(665)中,解码器(600)将来自不同小块的内容合并到图片的经重构版本中。解码器(600)根据滤波器控制数据(662)和滤波自适应规则来执行去块滤波和SAO滤波,以便自适应地平滑各帧中的各边界上的间断。可替换地或另外地应用其它滤波(例如去振铃滤波或ALF;未示出)。小块边界可以被选择性地滤波或根本不滤波,这取决于解码器¢00)的设置或经编码的比特流数据内的句法指示。经解码图片缓冲器(670)缓冲经重构的当前图片以供在后续的运动补偿的预测中使用。
[0129]解码器(600)还可包括后处理滤波器。后处理滤波器(608)可以包括去振铃滤波、自适应维纳滤波、膜颗粒再现滤波、SAO滤波或另一种类型的滤波。
[0130]取决于所希望的解压缩的实现和类型,解码器的模块可以被添加、省略、拆分成多个模块、与其他模块组合和/或用类似的模块来替代。在替换实施例中,具有不同模块和/或其它配置的模块的解码器执行一个或多个所描述的技术。解码器的具体实施例通常使用解码器(600)的变型或补充版本。所示的解码器¢00)内的模块之间的关系指示信息在解码器中的一般流动;为简明起见,未示出其它关系。
[0131]VI1.帧内块复制预测中的创新
[0132]该部分呈现帧内块复制(“BC”)预测的特征。例如,这些特征中的一些涉及其中帧内BC预测区域被相对于参考区域翻动的块翻动,该参考区域可由块矢量(“BV)值来指示。其他特征涉及跳跃模式的信号化,在跳跃模式中,当前的帧内BC预测的块使用经信号化的BV差但缺少残留数据。在许多情况下,这些特征改善了对帧内BC预测的块的编码效率。
[0133]具体地,本文中描述的各创新可在编码诸如屏幕捕捉内容之类的某种“人工”创建的视频内容时改善速率-失真性能。屏幕捕捉内容典型地包括重复的结构(例如图形、文本字符),其为帧内BC预测提供了改善性能的机会。屏幕捕捉内容通常用具有高色度采样分辨率的格式(例如YUV 4:4:4或RGB 4:4:4)来编码,但是它也可以用具有较低的色度采样分辨率(例如YUV 4:2:0)的格式来编码。用于编码/解码屏幕捕捉内容的常见场景包括远程桌面会议,和对自然视频或其它“混合内容”视频上的图形覆盖的编码/解码。
[0134]A.帧内BC预测模式、BV值和BV预测一介绍
[0135]对于帧内BC预测,图片中的当前块的样本值是使用同一图片中的样本值来预测的。BV值指示从当前块到图片中包括用于预测的样本值的区域(“参考区域”)的位移。参考区域为当前块提供预测的值(“帧内BC预测区域”)。用于预测的样本值是先前重构的样本值,由此这些样本值可在编码期间在编码器处获得并在解码期间在解码器处获得。BV值可被信号化在比特流中,并且解码器可使用BV值来确定图片中的参考区域(其已在解码器处被重构)以供用于预测。帧内BC预测是一种形式的图片内预测一针对图片中的块的帧内BC预测不使用除了同一图片中的样本值以外的任何样本值。
[0136]图7a示出针对当前帧(710)中的当前块(760)的帧内BC预测。当前块可以是编码单元(“CU”)的编码块(“CB”)、预测单元(“PU”)的预测块(“PB”)、变换单元(“TU”)的变换块(“TB”)或其它块。当前块的尺寸可以是64x64,32x32,16x16,8x8或某个其它尺寸。更一般地,当前块的尺寸为m X n,其中m和η中的每一者都是整数,并且其中m和η可彼此相等或可具有不同的值。替换地,当前块可具有某一其他形状(例如,经编码视频对象的具有非矩形形状的区域)。
[0137]BV(761)指示当前块(760)到图片中包括用于预测的样本值的参考区域(780)的位移(或偏移)。由BV (761)指示的参考区域(780)有时被称为当前块(760)的“匹配块”。匹配块可与当前块(760)相同,或它可以是当前块(760)的近似。假设当前块的左上位置在当前帧中的位置处,并假设参考区域的左上位置在当前帧中的位置(Xl,yi)处。BV指示位移(Xl-X(],y1-yj。例如,如果当前块的左上位置在位置(256,128)处,并且参考区域的左上位置在位置(176,104)处,则BV值为(-80,-24)。在本示例中,负水平位移指示在当前块的左边的位置,而负垂直位移指示在当前块之上的位置。
[0138]帧内BC预测可以通过利用使用BC操作的冗余性(例如帧内部的重复模式)来改善编码效率。代替直接编码当前块的样本值,使用BV值来表示当前块的样本值。即使当前块的样本值不直接匹配用BV值指示的参考区域的样本值,但是这些差异可能是可忽略的(即在感知上不是显而易见的)。或者,如果这些差异是显著的,则这些差异可被编码成可比当前块的原始样本值更高效地被压缩的残留值。
[0139]共同地,使用帧内BC预测编码的块的BV值可消费大量的比特。这些BV值可被熵编码以降低比特率。为了进一步降低BV值的比特率,编码器可使用BV值的预测。BV值通常展示出冗余性一给定块的BV值通常与图片中的先前块的BV值相似或甚至相同。对于BV预测,给定块的BV值是使用BV预测值来预测的。给定块的BV值和BV预测值之间的差(或BV差)随后被熵编码。通常,BV差是针对BV值的水平和垂直分量以及BV预测值来计算的。当BV预测工作良好时,BV差具有支持高效熵编码的概率分布。在H.265/HEVC标准的一个草稿版本(JCTVC-P1005)中,BV预测值是当前CTU内最后编码的⑶的BV值(即,当前CTU内的先前帧内BV预测的块的BV值)。替换地,BV预测值是从(例如,在当前块的周围附近的)多个可用BV值中选择的。
[0140]图7b示出帧中的当前块(760)的BV(761)以及帧(710)中的先前块(750)的BV (751) ο先前块(750)的BV (751)用作当前块(760)的BV (761)的BV预测值。例如,如果BV值为(-80,-24)并且BV预测值为(-80,-32),则为(O, 8)的BV差被熵编码。
[0141]解码器接收BV值的经熵编码的BV差,并对该BV差进行熵解码。解码器还确定BV值的BV预测值。由解码器确定的BV预测值与由编码器确定的BV预测值相同。解码器将BV预测值和经解码的BV差组合以重构BV值。
[0142]B.帧内BC预测中的块翻动
[0143]在帧内BC预测的先前方法中,BV值所指示的参考区域为当前块提供帧内BV预测区域。即,参考区域的样本值是当前块的经帧内BC预测的值。
[0144]根据本文中描述的创新的一方面,当前块的帧内BC预测区域相对于参考区域被翻动。当前块的BV值可指示参考区域。取代将参考区域直接用作当前块的帧内BC预测区域,该参考区域可被水平地和/或垂直地翻动。具体地,块翻动可改善对屏幕捕捉内容的文本字符的编码效率。
[0145]1.块翻动的示例
[0146]图8a-8d、9a_9c和1a-1Oc示出帧内BC预测中的块翻动的示例。
[0147]图8a示出当前图片(810)中的当前块(860)。当前块(860)包括文本字符P,如图8b中详述的。当前块(860)的BV(861)指示到当前图片(810)中的参考区域(880)的位移。参考区域(880)包括文本字符d,如图8c中详述的。在没有翻动的情况下,参考区域(880)是当前块(860)的劣质预测值。(当前块(860)和参考区域(880)之间的逐样本的差是显著的。)
[0148]编码器和解码器可使用帧内BC预测中的块翻动来改善编码效率。例如,参考区域(880)可被水平和垂直地翻动,如在图Sd的经翻动的参考区域(881)中所示的。在该示例中,当参考区域(880)被水平和垂直地翻动时,经翻动的参考区域(881)精确地匹配当前块(860) ο (即,帧内BC预测区域对于当前块(880)而言是完美的,并且残留值仅包括零值样本)。
[0149]类似地,参考区域(880)可被水平地翻动。例如,如果给定块包括文本字符b,则参考区域(880)的水平翻动可得到精确地匹配给定块的经翻动的参考区域。或者,参考区域(880)可被垂直地翻动。例如,如果给定块包括文本字符q,则参考区域(880)的垂直翻动可得到精确地匹配给定块的经翻动的参考区域。
[0150]通过针对许多字体的块翻动,包括文本字符集合(例如,集合b、d、P和q或者集合u和η)中的一文本字符的块可从包括同一文本字符集合中的另一文本字符的参考区域中精确地预测出。对于其他字体,包括文本字符集合中的一文本字符的块可从包括同一文本字符集合中的另一文本字符的参考区域中大致地预测出。更一般地,块翻动可改善对屏幕内容中的文本字符或其他模式的各个字母的编码效率。
[0151]由此,通过块翻动,包括文本字符(或其他模式)的块可被帧内BC预测,即使该文本字符(或其他模式)先前没有出现在图片中,这与对块进行编码的其他方法相比可改善编码效率。或者,即使文本字符(或其他模式)先前已出现在图片中,帧内BC预测也可使用相比于具有相同文本字符(或其他模式)的参考区域更靠近块的经翻动的参考区域。较靠近的经翻动的区域的BV值可相比于较远的参考区域的BV值被高效地多的编码。例如,对于包括文本字符q的当前块,假设包括相同的字符q的第一候选参考区域可用BV值(-280, -24)来指示,而包括不同的字符P的第二候选参考区域可用BV值(-32,O)来指示。第二候选参考区域可被水平地翻动以精确地匹配当前块。第二候选参考区域的BV值与第一候选参考区域的BV值相比可被更高效地编码(更少的比特),甚至还考虑信号化句法元素以指示该块翻动。
[0152]如图9a_9c所示,块和参考区域可包括多个文本字符。图9a示出包括文本字符dl的当前块(960)。当前块(960)的BV值指示到同一图片中的参考区域(980)的位移。参考区域(980)包括文本字符lb,如图9b中详述的。在没有翻动的情况下,参考区域(980)是当前块(960)的差预测值。然而,如果参考区域(980)被水平地翻动,则经翻动的参考区域(981)精确地匹配当前块(960)。
[0153]在上述示例中,块和参考区域包括各完整的文本字符。如图1Oa-1Oc所示,块和参考区域可改为包括文本字符、符号或模式的一个或多个部分。图1Oa示出包括文本字符L的一部分的当前块(1060)。当前块(1060)的BV值指示到同一图
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1