用于视频编码的低复杂度帧内预测的制作方法_2

文档序号:9474678阅读:来源:国知局
生成算术码字的熵编码器。当为 分片生成算术码字时,熵编码器利用在视频信号位流中的语法元素的数据值之间的统计依 赖性。编码器201向图3中所示视频解码器301输出用于画面200的分片的、编码的视频 信号。
[0043] 图3示出了本发明可以被应用于的视频解码器的总体视图。类似地,图中所示块 代表处理器101执行存储器102中的软件103而实现的功能模块。视频解码器301接收编 码的视频信号并且先将信号熵解码恢复成语法元素。解码器301使用语法元素以便逐个宏 块、然后按分片重建画面300中的像素的画面采样300A。
[0044] 图4示出了视频编码器201的功能模块。处理器101执行存储器102中的软件 103来实现这些功能模块。输入视频画面是采样点限定的自然(未压缩)视频图像的帧或 者场,这些采样点代表原有颜色的分量、比如色度("chroma")和亮度("luma")(其它分 量是可能的、例如色调、饱和度和值)。输入视频画面划分成宏块400,每个宏块代表由画面 颜色的亮度分量的16X16个像素构成的方形画面区域。输入视频画面也分割成宏块,每个 宏块代表画面颜色的两个色度分量中的每个色度分量的8X8个像素。在一般编码器操作 中,可以使用帧间或者帧内预测来在时间上或者在空间上预测输入的宏块。然而出于讨论 的目的而假设宏块400都是I分片型宏块并且仅经受帧内预测。
[0045] 在帧内预测模块401处实现帧内预测,下文将具体讨论该帧内预测模块的操作。 帧内预测模块401根据先前已经编码、重建并且存储于帧存储器403中的邻近块的水平和 竖直边界像素生成预测块402。使用视频编码领域中的技术人员已知的方法和技术在变换 /量化模块405处来变换、缩放并且量化预测块402的残差404,该残差是目标块400与预 测块402之间的差。然后在熵编码模块407处对量化的变换系数406熵编码并且(与其它 与帧内预测有关的信息一起)发送作为编码的视频信号408。
[0046] 视频编码器201包含用于对目标块执行帧内预测的解码功能。解码功能包括逆量 化/变换模块409,该逆量化/变换模块对量化的变换系数406执行逆量化和逆变换以产生 与预测块402相加的解码的预测残差410。解码的预测残差410与预测块402之和是重建 的块411,该重建的块存储于帧存储器403中,并且帧内预测模块401将从该帧存储器读取 该重建的块并且使用该重建的块以生成用于对下一目标块400解码的预测块402。
[0047] 图5是示出了帧内预测模块401执行的过程的流程图。根据H. 264/AVC标准,帧 内预测涉及到使用先前编码并且重建的邻近块的边界像素("参考像素")的插值在多个预 测模式之下预测目标块400的每个像素。预测模式由正整数0、1、2···标识,每个预测模式与 用于预测目标块400中的具体像素的不同指令或者算法关联。帧内预测模块401在相应预 测模式之下运行帧内预测并且生成不同预测块。在全搜索("FS")算法之下,比较每个生 成的预测块与目标块400以发现预测模式之中的最优预测模式,该最优预测模式最小化预 测残差404或者产生更少预测残差404。压缩最优预测模式的标识并且与其它控制信息语 法元素一起发送到解码器301。
[0048] 每个预测模式可以由如口头描述的一般预测方向(即水平向上、竖直和对角左 下)描述。预测方向可以在图形上由通过如图7中所示具有箭头的图表达的角方向描述。 在这一类型的图中,每个箭头可以视为代表预测方向或者预测模式。与预测模式对应的角 度与从用来预测目标像素的参考像素的加权平均位置到目标像素位置的方向具有一般关 系。请注意像素模式包括未与任何预测方向关联、因此与其它预测模式不同不能在图中用 图形来描述的DC预测模式。在DC预测模式中,生成预测块402,从而统一地设置预测块402 中的每个像素为参考像素的均值。
[0049] 回顾图5,在步骤501中初始化预测模式。然后在步骤502中确定预测模式是否指 示DC预测。如果它指示DC预测,则流程前进到步骤503,其中在步骤503中用参考像素的 均值生成DC预测块402。如果预测模式未指示DC预测,则在步骤504中根据与预测模式 关联的指令或者算法生成预测块402,下文将具体讨论该步骤的过程。在步骤503或者504 之后,流程前进到步骤505,其中确定是否为所有预测模式生成预测块。如果在所有预测模 式之下运行了帧内预测,则流程前进到步骤506。否则,在步骤507中递增预测模式,并且流 程返回到步骤502。在步骤506中,比较每个生成的预测块与目标块400以确定最小化预测 残差404的最优预测模式。
[0050] 图6示出了视频解码器301的功能模块。处理器101执行存储器102中的软件 103来实现这些功能模块。熵解码器600先接收来自编码器201的编码的视频信号并且熵 解码恢复成量化的变换系数601。逆量化/变换模块602逆量化并且变换量化的变换系数 601以生成预测残差603。向帧内预测模块604通知编码器201选择的预测模式。根据所 选预测模式,帧内预测模块604使用先前重建并且存储于帧存储器606中的邻近块的边界 像素来执行与在图5的步骤502、503和504中执行的过程相似的帧内预测过程以生成预测 块605。预测块605与预测残差603相加以重建解码的视频信号的块607。重建的块607 存储于帧存储器606中用于在预测下一块时使用。
[0051] 将关于帧内预测模块401和604执行的用于在除了 DC预测模式之外的预测模式 之一之下生成预测块的步骤504的过程给出具体描述如下。H. 264/AVC支持Intra_4X4预 测、Intra_8X8预测和Intra_16X 16预测。当在画面中有重要细节时通常使用Intra_4X4 预测。Intra_4X4预测对一个宏块内的十六个4X4亮度块分别预测。在包括一个DC预 测模式的九个预测模式之下执行Intra_4X4预测。在图7中示出了空间预测方向,沿着这 些空间预测方向执行Intra_4 X 4预测。在包括一个DC预测模式的九个预测模式之下执行 Intra_8X8预测。在包括一个DC预测模式的四个预测模式之下执行Intra_16X 16预测。
[0052] 最近研究表明预测方向数目的增加或者预测模式数目的增加一般有助于提高视 频编码中的压缩效率。例如参见通过引用而均结合于此、向视频编码联合小组(JCT-VC)提 交的第 JCT-VC A119 号("Angular Intra Predication")和第 JCT-VC A124("Arbitrary Direction Intra")号文档。预测方向数目的增加造成可用预测方向的角度间隔数目的增 加、因此造成预测块候选数目的增加。预测块候选的数目增加简单地增加了具有与待编码 的目标块几乎相同的预测块的机会。图8是示出了在第JCT-VCA119号文档中提出的预测 方向的图。在图8中,参考像素由十七(17)个水平像素和十七(17)个竖直像素构成,其中 左上像素为水平和竖直边界二者所共用。因此,33个不同预测方向可用于生成8 X 8块的预 测像素。JCT-VC A124提出任意方向帧内预测,其中根据待预测的块的大小调整预测方向数 目。
[0053] 图9是示出了在JCT-VC A119中提出的沿着图8中所示预测方向之一生成预测块 的过程的流程图。在对过程的以下描述中,为了易于说明而简化一些算法。而且,描述的过 程限于沿着基本上竖直的预测方向的帧内预测。如在JCT-VC A119提供的软件中示范的那 样,可以与图9中所示过程对称地实施沿着基本上水平的预测方向的帧内预测。虽然图8示 出了待预测的8 X 8块,但是图9中所示过程可扩展成应用于在不同配置中的各种数目的像 素。例如,待预测的块可以包括4X4像素阵列。预测块也可以包括8X8像素阵列、16X16 像素阵列或者更大像素阵列。包括方形和矩形阵列二者的其它像素配置也可以组成预测 块。
[0054] 在图9中的步骤900中,从先前已经编码、重建并且存储于帧存储器(比如图4中 所示存储器403)中的邻近块读取分别位于紧接目标块的上方和左侧的水平和竖直边界中 的参考像素。来自水平边界的像素存储于称为"refH"的存储器区域中。来自竖直边界的 像素存储于称为"refV"的另一存储器区域中。回顾图8,参考像素由它们在坐标系中的坐 标标识,该坐标系在8X8块中的左上像素位置具有原点。因此,水平边界像素具有由X = 0, 1··· 16而y = 0的p[x, y]表达的坐标。竖直边界像素具有由X = 0、y = 0, -1,-2----16 的P[x, y]表达的坐标。
[0055] 假设存储于存储器区域refH中的水平边界像素由x = 0, 1··· 16的逻辑地址(x) 标识,并且存储于存储器区域refV中的竖直边界像素类似地由y = 0,-1,-2…-16的逻辑 地址(y)标识,其中每个像素存储于具有从其中读取该像素的坐标中的数的地址中。因此, 在图8中用图形代表水平和竖直像素时,存储器区域refH和refV可以视为线性地并且相 互正交地延伸而且各自具有2Xsize+l的长度,其中"size"是代表目标块的大小的参数。 假设size具有与2的整数幂、比如4、8、16…相等的值。如在H. 264/AVC中的第8. 3. 2. 2. 1 节中描述的低通滤波器可以可选地应用于refH和refV中的像素。
[0056] 在步骤901中,将称为"row"的计数器设置成零("0")。计数器row取从0至 size的值并且指示预测块中的预测像素的行位置。在步骤902中,按照angle X (row+Ι)计 算称为"pos"的参数。angle是具有定点表示的分数的参数。这样,用整数部分和分数部分 形成angle,并且分数部分由固定数目的二进制数位构成。angle代表图8中所示预测方向 之一。例如"angle = -size"标识图8中的穿过坐标[X = 0, y = 0]的预测方向。具有正 值的angle标识仅与水平边界交叉的预测方向,而具有负值的angle标识与水平和竖直边 界二者交叉的预测方向。angle在希望使用的预测方向的数目所确定的范围内变化。如在 JCT-VC A124中提出的那样,可以根据待预测的块的大小来确定待使用的预测方向的数目。 在以下描述中,假设angle取在从"-size"至"size"的范围内变化的分数。请注意可以用 其它值限定angle的范围限制。
[0057] 如同angle,参数pos由整数部分和分数部分构成,并且其分数部分由固定数目的 二进制数位构成,该数目等于angle的范围限制的以2为底的对数,该对数根据将angle的 范围限制设置成size这样的上述假设可以由log2_size表达。pos标识水平边界与angle 代表的预测方向之间的交点的位置。回顾步骤902,运算"p〇S>>l〇g2_si ze"标识存储于参 数"int"中的在pos中的整数,并且运算"p〇S&(size-l) "标识存储于参数"frac"中的在 pos中的分数。运算符"》"调用二进制数位的算术右移。运算符"&"调用逐位"与"运算。
[0058] 在步骤903中,确定angle是否具有等于或者大于零("0")的值。如果angle具 有等于或者大于零的值,则流程继续步骤904。否则,流程继续步骤913。angle等于或者大 于零表示仅可以依赖于位于水平边界中或者存储于refH中的参考像素以推导预测块中的 预测像素。另一方面,angle小于零表示需要位于竖直边界中或者存储于refV中的参考像 素以推导预测块中的预测像
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1