视频和图像编码中的基于散列的块匹配的制作方法_3

文档序号:9916961阅读:来源:国知局
码器。
[0077]图5a和5b是可结合其实现所描述的一些实施例的通用视频编码器(500)的框图。 编码器(500)接收包括当前图片的视频图片序列作为输入视频信号(505)并在经编码视频 位流(595)中产生经编码数据作为输出。
[0078] 编码器(500)是基于块的并使用取决于实现的块格式。块还可在不同的阶段上被 进一步细分,例如在预测、频率变换和/或熵编码阶段。例如,图片可以被划分成64x64块、 32x32块或16x16块,这些块随后可以被划分成更小的样本值块以用于编码和解码。在针对 HEVC标准的编码的实现中,编码器将图片分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
[0079] 编码器(500)使用图片内编码和/或图片间编码来压缩图片。编码器(500)的许多 组件被用于图片内编码和图片间编码两者。由这些组件执行的确切操作可取决于所压缩的 信息的类型而变化。
[0080] 小块化模块(510)可选地将图片分割成相同尺寸或不同尺寸的多个小块。例如,小 块化模块(510)沿小块行和小块列来拆分图片,所述小块行和小块列利用图片边界定义在 图片内的小块的水平和垂直边界,其中每个小块是矩形区域。
[0081]通用编码控件(520)接收输入视频信号(505)的图片以及来自编码器(500)的各个 模块的反馈(未示出)。整体上,通用编码控件(520)将控制信号(未示出)提供给其它模块 (例如小块化模块(510)、变换器/缩放器/量化器(530)、缩放器/逆变换器(535)、图片内估 计器(540)、运动估计器(550)以及帧内/帧间切换)以设置和改变编码期间的编码参数。特 别是,通用编码控件(520)可以决定在编码期间是否和如何使用基于散列的块匹配。通用编 码控件(520)还可以估计编码期间的中间结果,例如执行速率-失真分析来估计。通用编码 控件(520)产生指示在编码期间所做出的决定的通用控制数据(522),使得对应的解码器可 以作出一致的决定。通用控制数据(522)被提供给头部格式化器/熵编码器(590)。
[0082]如果使用图片间预测来预测当前的图片,运动估计器(550)相对于一个或多个参 考图片估计输入视频信号(505)的当前图片的采样值的块的运动。经解码的图片缓冲器 (570)缓冲一个或多个经重构的先前编码的图片以供用作参考图片。当使用多个参考图片 时,这多个参考图片可以来自不同的时间方向或相同的时间方向。运动估计器(550)产生诸 如运动向量数据和参考图片选择数据之类的辅助信息运动数据(552)。运动数据(552)被提 供给头部格式化器/熵编码器(590)以及运动补偿器(555)。
[0083]运动补偿器(555)将运动向量应用于来自经解码图片缓冲器(570)的(诸)经重构 的参考图片。运动补偿器(555)产生针对当前图片的经运动补偿的预测。
[0084]在编码器(500)内的分开的路径中,图片内估计器(540)确定如何执行对输入视频 信号(505)的当前图片的样本值块的图片内预测。当前图片可全部或部分使用图片内编码 来编码。对于空间内预测,使用当前图片的重构(538)的值,图片内估计器(540)确定如何从 当前图片的邻近的、先前重构的样本值中空间地预测当前图片的当前块的样本值。或者,对 于使用BV值的帧内BC预测,图片内估计器(540)估计当前块的样本值到当前图片内的不同 候选区域的位移。针对BV估计期间的基于散列的块匹配,图片内估计器(540)可使用块散列 字典(541)来寻找当前块的BV值。块散列字典(541)是为基于散列的块匹配组织候选块的数 据结构,如以下所描述的。块散列字典(541)可在编码期间被更新以存储关于新候选块的信 息,如变得可以用于基于散列的块匹配中的那些候选块。替换地,帧内BC预测可使用代表块 的散列值,代替使用BV值。在此情况中,针对基于散列的块匹配,图片内估计器(540)可使用 块散列字典(541)来寻找散列值来用于代表当前块,如下所述。
[0085]图片内估计器(540)生成诸如指示帧内预测是否使用空间预测或BC预测(例如每 个帧内块一个标记值)、预测模式方向(用于空间内预测)以及BV值或散列值(用于帧内BC预 测)的信息之类的辅助信息图片内预测数据(542)。图片内预测数据(542)被提供给头部格 式化器/熵编码器(590)以及图片内预测器(545)。
[0086]根据图片内预测数据(542),图片内预测器(545)从当前图片的邻近的先前重构的 采样值中在空间上预测当前图片的当前块的采样值。或者,对于帧内BC预测,图片内预测器 (545)使用图片内预测区域的先前重构的样本值来预测当前块的样本值,图片内预测区域 的先前重构的样本值由针对当前块的BV值来指示(或被块散列字典(541)中的散列值指 示)。当图片的色度数据具有与亮度数据相同的分辨率时(例如,当格式为YUV 4:4:4格式或 RGB 4:4:4格式时),对色度块应用的BV值可与对亮度块应用的BV值相同。另一方面,当图片 的色度数据相对于亮度数据具有降低的分辨率时(例如,当格式为YUV 4: 2:0格式时),对色 度块应用的BV值可被缩小并可能被四舍五入以对色度分辨率方面的差异进行调整(例如, 通过将BV值的垂直和水平分量除以2并且将其截短或四舍五入成整数值来调整)。当散列值 代表(来自块散列字典(541)的)帧的亮度样本值的重构块时,可使用在帧的对应位置的色 度样本值的重构块。
[0087] 帧内/帧间切换选择运动补偿的预测或图片内预测的值用作给定块的预测(558)。 预测(558)的块和输入视频信号(505)的原始当前图片的对应部分之间的差异(如果有的 话)提供残留值(518)。在当前图片的重构期间,经重构的残留值与预测(558)组合来从视频 信号(505)中产生对原始内容的重构(538)。然而,在有损压缩中,还是从视频信号(505)中 丢失了 一些?目息。
[0088] 在变换器/缩放器/量化器(530)中,频率变换器将空间域视频信息转换为频域(即 频谱、变换)数据。对于基于块的视频编码,频率变换器将离散余弦变换("DCT")、其整数近 似、或另一类型的前向块变换应用于预测残留数据的块(或者在预测(558)为空的情况下, 应用于样本值数据),从而产生频率变换系数的块。编码器(500)可能还能够指示这样的变 换步骤被省略了。缩放器/量化器对变换系数进行缩放和量化。例如,量化器将用步骤尺寸 将非统一的标量量化应用于频域数据,该步骤尺寸在逐帧的基础、逐小块的基础、逐片的基 础、逐块的基础、或其它基础上变化。经量化的变换系数数据(532)被提供给头部格式化器/ 熵编码器(590)。
[0089] 在缩放器/逆变换器(535)中,缩放器/逆量化器对经量化的变换系数执行逆缩放 和逆量化。逆频率变换器执行逆频率变换,从而产生经重构的预测残留值或样本值的块。编 码器(500)将经重构的残留值与预测(558)的值(例如,经运动补偿的预测值、图片内预测 值)组合以形成重构(538)。
[0090] 对于图片内预测,重构(538)的值可以被馈送回图片内估计器(540)和图片内预测 器(545)。重构(538)的值还可用于更新块散列字典(541)。同样,重构(538)的值可以被用于 对后续图片的经运动补偿的预测。重构(538)的值可被进一步滤波。对于视频信号(505)的 给定图片,滤波控件(560)确定如何对重构(538)的值执行去块滤波和样本自适应偏移 ("SA0)滤波。"滤波控件(560)生成滤波控制数据(562),它被提供给头部格式化器/熵编码 器(590)和合并器/(诸)滤波器(565)。
[0091] 在合并器/(诸)滤波器(565)中,编码器(500)将来自不同小块的内容合并到图片 的经重构版本中。编码器(500)根据滤波器控制数据(562)选择性地执行去块滤波和SA0滤 波,以便自适应地平滑各帧中的各边界上的间断。取决于编码器(500)的设置,小块边界可 以被选择性地滤波或根本不被滤波,并且编码器(500)可以在经编码的位流内提供指示是 否应用这样的滤波的句法。经解码的图片缓冲器(570)缓冲经重构的当前图片以供在后续 的经运动补偿的预测中使用。
[0092] 头部格式化器/熵编码器(590)对通用控制数据(522)、经量化的变换系数数据 (532)、图片内预测数据(542)、运动数据(552)以及滤波器控制数据(562)进行格式化和/或 熵编码。例如,头部格式化器/熵编码器(590)将上下文自适应二进制算法编码用于对各句 法元素进行熵编码。
[0093]头部格式化器/熵编码器(590)在经编码的视频位流(595)中提供经编码数据。经 编码的视频比特流(595)的格式可以是HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x 格式(例如,MPEG-UMPEG-2 或 MPEG-4)、H.26x 格式(例如,!1.261、!1.262、!1.263或!1.264)或其 它格式的变型或扩展。
[0094]取决于所需的压缩的实现和类型,编码器的模块可被添加、省略、拆分成多个模 块、与其它模块组合、和/或用相似的模块来替代。在替换实施例中,具有不同模块和/或其 它配置的模块的编码器执行一个或多个所描述的技术。编码器的具体实施例通常使用编码 器(500)的变型或补充版本。所示的编码器(500)内的各模块之间的关系指示了信息在编码 器中的一般流动;为简明起见,未示出其它关系。
[0095] VI.示例视频解码器。
[0096]图6是一般化解码器(600)的框图。解码器(600)接收经编码的视频比特流(605)中 的经编码数据并产生包括经重构视频(695)的图片的输出。经编码的视频比特流(605)的格 式可以是HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或 MPEG-4)、H. 26x格式(例如,H. 261、H. 262、H. 263或H. 264)或其它格式的变型或扩展。
[0097] 解码器(600)是基于块的并使用取决于实现的块格式。块可以在不同的阶段被进 一步细分。例如,图片可以被划分成64x64块、32x32块或16x16块,这些块随后可以被划分成 更小的样本值块。在针对HEVC标准的解码实现中,将图片分割成CTU(CTB)、CU(CB)、PU(PB) 和TU(TB)。
[0098] 解码器(600)使用图片内解码和/或图片间解码来对图片进行解压缩。解码器 (600)的许多组件被用于图片内解码和图片间解码这两者。由这些组件执行的确切操作可 以取决于正被解压缩的信息的类型而变化。
[0099]缓冲器接收经编码的视频比特流(605)中的经编码数据,并使得接收到的经编码 数据可用于解析器/熵解码器(610)。解析器/熵解码器(610)通常应用在编码器(500)中执 行的熵编码的逆(例如上下文自适应二进制算术解码)对经熵编码的数据进行熵解码。作为 解析和熵解码的结果,解析器/熵解码器(610)产生通用控制数据(622)、经量化的变换系数 数据(632)、图片内预测数据(642)、运动数据(652)以及滤波器控制数据(662)。
[0100]通用解码控件(620)接收通用控制数据(622)并将控制信号(未示出)提供给其它 模块(例如缩放器/逆变换器(635)、图片内预测器(645)、运动补偿器(655)以及帧内/帧间 切换)以设置和改变解码期间的解码参数。
[0101] 如果当前图片是使用图片间预测来预测的,则运动补偿器(655)接收运动数据 (652),诸如运动向量数据和参考图片选择数据。运动补偿器(655)将运动向量应用于来自 经解码图片缓冲器(670)的(诸)经重构的参考图片。运动补偿器(655)产生针对当前图片中 的帧间编码块的运动补偿的预测。经解码图片缓冲器(670)存储一个或多个先前重构的图 片以供用作参考图片。
[0102] 在解码器(600)内的分开路径中,图片内预测预测器(645)接收图片内预测数据 (642),诸如指示图片内预测是否使用空间预测或BC预测(例如,每个帧内块一个标志值)、 预测模式方向(对于帧内空间预测)、和BV值或散列值(对于帧内BC预测)的信息。对于帧内 空间内预测,根据预测模式数据使用当前图片的重构(638)的值,图片内预测器(645)从当 前图片的相邻的、先前重构的样本值中空间地预测当前图片的当前块的样本值。或者,对于 使用BV值的帧内BC预测,图片内预测器(645)使用图片内预测区域的先前重构的样本值来 预测当前块的样本值,图片内预测区域的先前重构的样本值由针对当前块的BV值来指示。 替换地,对于使用散列值的帧内BC预测,图片内预测器(645)使用当前块的被信号化的散列 值确定当前块的重构块。在这种情况下,图片内预测器(645)使用块散列字典(641)以寻找 用于经信号化的散列值的重构块。块散列字典(641)是根据散列值组织候选块值的数据结 构。
[0103] 图片内/图片间开关选择运动补偿的预测或图片内预测的值用作给定块的预测 (658)。例如,当遵循HEVC句法时,可以基于为图片中的CU编码的句法元素来控制图片内/图 片间切换,该CU可以包括图片内预测的CU和图片间预测的CU。解码器(600)将预测(658)与 重构的残留值组合以产生来自视频信号的内容的重构(638)。
[0104]为了重构残留值,缩放器/逆变换器(635)接收并处理经量化的变换系数数据 (632)。在缩放器/逆变换器(635)中,缩放器/逆量化器对经量化的变换系数执行逆缩放和 逆量化。逆频率变换器执行逆频率变换,从而产生经重构的预测残留值或样本值的块。例 如,逆频率变换器将逆块变换应用到频率变换系数,从而产生样本值数据或预测残留数据。 逆频率变换可以是逆DCT、其整数近似或另一种类型的逆频率变换。
[0105] 对于图片内预测,重构(638)的值可以被馈送回图片内预测器(645)。重构(638)的 值可被用于更新块散列字典(641)。对于图片间预测,重构(638)的值可以被进一步滤波。在 合并器/(诸)滤波器(665)中,解码器(600)将来自不同小块的内容合并到图片的经重构版 本中。解码器(600)根据滤波器控制数据(662)和滤波自适应规则来执行去块滤波和SA0滤 波,以便自适应地平滑各帧中的各边界上的间断。小块边界可以被选择性地滤波或根本不 滤波,这取决于解码器(600)的设置或经编码的比特流数据内的句法指示。经解码的图片缓 冲器(670)缓冲经重构的当前图片以供在后续的经运动补偿的预测中使用。
[0106] 解码器(600)还可包括后处理去块滤波器。后处理去块滤波器可选地平滑经重构 图片中的间断。其他滤波(诸如去振铃滤波)还可作为后处理滤波的一部分被应用。
[0107] 取决于所希望的解压缩的实现和类型,解码器的模块可以被添加、省略、拆分成多 个模块、与其他模块组合和/或用类似的模块来替代。在替换实施例中,具有不同模块和/或 其它配置的模块的解码器执行一个或多个所描述的技术。解码器的具体实施例通常使用解 码器(600)的变型或补充版本。所示的解码器(600)内的模块之间的关系指示信息在解码器 中的一般流动;为简明起见,未示出其它关系。
[0108] VII.基于散列的块匹配。
[0109] 本章节呈现基于散列的块匹配的各特征。这些特征中的一些涉及在块向量("BV") 估计期间使用基于散列的块匹配的编码,而其
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1