根据基于散列的块匹配的结果的编码器决定的制作方法

文档序号:9925618阅读:338来源:国知局
根据基于散列的块匹配的结果的编码器决定的制作方法
【专利说明】根据基于散列的块匹配的结果的编码器决定
[0001 ] 背景
[0002]工程师使用压缩(也叫做源编码或源编码)来降低数字视频的比特率。压缩通过将视频信息转换成较低比特率的形式来降低存储和传送该信息的成本。解压(也被称为解码)从压缩的形式中重构一种版本的原始信息。“编解码器”是编码器/解码器系统。
[0003]在过去的二十年中,已采用了各种视频编解码器标准,包括ITU-T H.26UH.262(MPEG-2或IS0/IEC 13818-2)、Η.263和H.264(MPEG_4AVC或IS0/IEC 14496-10)标准、MPEG-KIS0/IEC 11172 I 172-2)和MPEG-4可视(IS0/IEC 14496-2)标准以及SMPTE 421M(VC_1)标准。最近,H.265/HEVC标准(ITU-T H.265或IS0/IEC 23008-2)已被批准。目前,(例如,用于可缩放视频编码/解码、用于在样本比特深度或色度采样率方面具有较高保真度的视频的编码/解码、用于屏幕捕捉内容、或用于多视图编码/解码的)H.265/HEVC标准的扩展处于开发中。视频编解码器标准通常定义针对经编码的视频位流的句法的选项,从而详述当在编码和解码时使用特定特征时该位流中的参数。在许多情况下,视频编解码器标准还提供关于解码器应当执行以在解码时取得一致的结果的解码操作的细节。除了编解码器标准夕卜,各种专用编解码器格式定义针对经编码的视频位流的句法的其他选项以及相应的解码操作。
[0004]一般而言,视频压缩技术包括“图像内”压缩和“图像间”压缩。图片内压缩技术压缩各个体图片,且图片间压缩技术参考前导和/或跟随图片(通常被称为参考或另一图片)来压缩图片。
[0005]图片间压缩技术通常使用运动估计和运动补偿通过利用视频序列中的时间冗余来降低比特率。运动估计是用于估计图片之间的运动的过程。在一个常用技术中,使用运动估计的编码器尝试将当前图片中的当前样本值块与另一图片(参考图片)中的搜索区域中的相同尺寸的候选块匹配。一般来说,参考图片是包含在对其他图片的解码过程中可用于预测的样本值的图片。
[0006]对于当前块,当编码器在参考图片中的搜索区域中找到精确或“足够接近”的匹配时,编码器将当前和候选块之间的位置改变参数化为运动数据(诸如运动矢量(“MV”))。常规上MV是二维值,具有指示左或右空间位移的水平MV分量和指示上或下空间位移的垂直MV分量。一般来说,运动补偿是使用运动数据从(诸)参考图片中重构图片的过程。
[0007]MV 精度。
[0008]MV可根据当前块从参考图片中的共同位置开始的整数样本数来指示空间位移。例如,对于在当前图片中的位置(32,16)处的当前块,MV(-3,I)指示参考图片中的位置(29,17)。或者,MV可根据当前块从参考图片中的共同位置起分数样本数来指示空间位移。例如,对于在当前图片中的位置(32,16)处的当前块,MV(-3.5,1.25)指示参考图片中的位置(28.5,17.25)。为了确定在参考图片中的分数偏移处的样本值,编码器通常在各整数样本位置处的样本值之间插值。这样的插值可能是计算上密集的。在运动补偿期间,解码器还按需执行该插值以计算在参考图片中的分数偏移处的样本值。
[0009]在使用运动估计和运动补偿来对块进行编码时,编码器通常计算该块的各样本值及其运动补偿的预测之间逐样本的差异(也被称为残留值或误差值)。这些残留值可随后被编码。对于这些残留值来说,编码效率取决于这些残留值的复杂度以及有多少损失或失真作为压缩过程的一部分被引入。一般来说,良好的运动补偿的预测接近地近似块,使得这些残留值包括很少有效值,并且这些残留值可被高效地编码。另一方面,低劣的运动补偿的预测通常产生包括许多有效值的残留值,这些残留值更难以高效地编码。编码器通常花费很大比例的编码时间来执行运动估计,以尝试寻找到良好的匹配并由此改善速率-失真性能。
[0010]不同的视频编解码器标准和格式已使用具有不同MV精度的MV。对于整数样本MV预测,MV分量指示针对空间位移的整数数目的样本值。对于诸如1/2样本MV精度或1/4样本MV精度之类的分数样本MV精度,MV分量可指示针对空间位移的整数数目的样本值或分数数目的样本值。例如,如果MV精度为I/4样本MV精度,则MV分量可指示O个样本、0.25个样本、0.5个样本、0.75个样本、1.0个样本、1.25个样本等的空间位移。当编解码器使用具有整数样本的MV精度的MV时,编码器和解码器不需要针对运动补偿执行参考图片的样本值之间的插值操作。当编解码器使用具有分数样本MV精度的MV时,编码器和解码器针对运动补偿执行参考图片的样本值之间的插值操作(增加了计算复杂度),但与整数样本MV精度相比,运动补偿的精度趋于更接近地近似各块(导致具有更少有效值的残留值)。
[0011]—些视频编解码器标准和格式支持MV精度在编码期间的切换。然而,在某些编码场景中,关于要使用哪个MV精度的编码器侧决定没有被有效地作出。具体地,在各种情况下,在对人工创建的视频内容(诸如,屏幕捕捉内容)进行编码时,这样的编码器侧决定没有被有效地作出。
[0012]I1.参考图片集合。
[0013]在一些视频编解码器标准和格式中,在给定时间多个参考图片可用于供运动补偿的预测使用。这样的视频编解码器标准/格式指定如何管理此多个参考图片。例如,可在视频编码和解码期间根据规则自动地添加或丢弃参考图片。或者,比特流中的参数可指示关于在视频编码和解码期间使用的参考图片的信息。
[0014]在一些视频编解码器标准和格式中,参考图片集合(“RPS”)是在给定时间可用于供在运动补偿的预测中使用的参考图片的集合。在编码和解码期间,RPS可被更新以添加新解码的图片并移除不再被用作参考图片的较旧的图片。在一些新近的编解码器标准(诸如,H.265/HEVC标准)中,RPS在编码和解码期间被更新,并且信号化在比特流中的句法元素指示如何更新该RPS。
[0015]然而,在某些编码场景中,关于如何更新RPS的编码器侧决定未被有效地作出。具体地,在各种情况下,在对人工创建的视频内容(诸如,屏幕捕捉内容)进行编码时,这样的决定不被高效地作出。
[0016]II 1.样本自适应偏移过滤。
[0017]视频编码器或视频解码器可将一个或多个滤波器应用于图片的经重构的样本值。根据H.265/HEVC标准,例如,去块滤波和样本自适应偏移(“SA0”)滤波可被应用于重构的样本值。去块滤波往往降低由基于块的编码造成的块伪像,并且被自适应地应用于块边界处的样本值。在某区域内,SAO滤波被自适应地应用于满足某些条件(诸如,跨各样本值存在梯度)的样本值。
[0018]根据H.265/HEVC标准,SAO滤波可针对序列被启用或禁用。在SAO滤波针对序列被启用时,SAO滤波可在逐片的基础上针对片的亮度内容和/或针对该片的色度内容被启用或禁用。SAO滤波也可针对片内的块被启用或禁用。例如,SAO滤波可针对片中的编码树单元(“CTU”)的编码树块(“CTB”)被启用或禁用,其中CTU通常包括亮度CTB和相应的色度CTB。对于CTB,类型索引指示是否SAO滤波被禁用、使用带偏移或使用边缘偏移。如果SAO滤波使用带偏移或边缘偏移,则附加的句法元素指示用于针对CTB的SAO滤波的参数。在一些情况下,CTB可重新使用来自毗邻CTB的句法元素来控制SAO滤波。在任何事件中,当SAO滤波被使用时,它增加编码和解码的计算复杂性。
[0019]存在SAO滤波应当被禁用的许多情况和场合。然而,在某些编码场景中,关于何时使用SAO滤波的编码器侧决定没有被有效地作出。具体地,在各种情况下,在对人工创建的视频内容(诸如,屏幕捕捉内容)进行编码时,这样的决定没有被有效地作出。
[0020]概述
[0021]总而言之,详细描述呈现了在编码期间设置参数时使用基于散列的块匹配的结果的编码器侧决定方面的创新。例如,这些创新中的一些涉及取决于基于散列的块匹配的结果来选择运动矢量(“MV”)精度的方式。其他创新涉及取决于基于散列的块匹配的结果来选择性地禁用样本自适应偏移(“SA0”)滤波的方式。又一些创新涉及取决于基于散列的块匹配的结果来选择要将哪些参考图片保留在参考图片集合(“RPS”)中的方式。具体地,这些创新可提供计算上高效的方式来在对人工创建的视频内容(诸如视频捕捉内容)进行编码期间设置参数。
[0022]根据本文中描述的这些创新的第一方面,视频编码器对视频进行编码以产生经编码的数据并在比特流中输出该经编码的数据。作为编码的一部分,编码器至少部分地根据基于散列的块匹配的结果来确定针对视频的单元的MV预测。该单元可以是序列、场景改变之间的图片系列、图片群组、图片、小块、片、编码单元或其他视频单元。MV精度可以是整数样本精度、四分之一样本精度或某个其他分数样本精度。
[0023]例如,在确定MV精度时,编码器将该单元拆分成多个块。对于该单元的多个块中的给定块,编码器确定针对该给定块的散列值,随后确定(诸)参考图片的多个候选块之间是否存在对该给定块的匹配。该匹配可表示该给定块和多个候选块之一之间的匹配散列值,这提供快速结果。或者,该匹配还可表示该给定块和多个候选块之一之间逐样本的匹配,这较慢但可能较可靠。随后,对于单元的多个块之中的非匹配块,编码器可将该非匹配块分类成包含自然视频内容或人工创建的视频内容。例如,在对非匹配块进行分类时,编码器测量该非匹配块中不同色彩的数目,随后将该不同色彩的数目与阈值进行比较。
[0024]根据本文中描述的这些创新中的另一方面,图像编码器或视频编码器对图像或视频进行编码以产生经编码的数据并在比特流中输出该经编码的数据。作为编码的一部分,编码器执行针对当前图片的当前块的基于散列的块匹配。基于条件是否被满足,编码器确定是否禁用针对当前块的SAO滤波。基于该确定的结果,编码器选择性地禁用针对当前块的SAO滤波。如果没有禁用针对当前块的SAO滤波,则编码器可检查一个或多个其他条件以决定是否使用针对当前块的SAO滤波,并且如果SAO滤波被使用,则为针对当前块的SAO滤波确定参数。
[0025](针对启用还是禁用针对当前块的SAO滤波的)条件取决于在针对当前块的基于散列的块匹配期间是否发现匹配。该条件还可取决于当前块的预期质量相对于该匹配的候选块的质量(如适用于该当前块的量化参数(“QP”)值和适用于该候选块的QP值分别指示的)。
[0026]例如,在执行针对当前块的基于散列的块匹配时,编码器确定当前块的散列值,随后尝试在(诸)参考图片的多个候选块之中寻找到该当前块的匹配。当前块可以是编码树单元(“CTU”)的编码树块(“CTB”),在该情况下,针对CTU的一个或多个其他CTB的SAO滤波也被选择性地启用。
[0027]根据本文中描述的各创新的另一方面,视频编码器对视频进行编码以产生经编码的数据并在比特流中输出该经编码的数据。作为编码的一部分,编码器至少部分地根据基于散列的块匹配的结果来确定要将多个参考图片中的哪些参考图片保留在RPS中。
[0028]在用于确定要保留哪些参考图片的一个方法中,对于该多个参考图片中的每一者,编码器使用基于散列的块匹配来估计该参考图片预测序列的下一图片有多么好。编码器丢弃被预期预测下一图片比其他参考图片预期下一图片更差的参考图片。例如,编码器在下一图片的各块和参考图片的各候选块之间执行基于散列的块匹配,其中计数指示下一图片中有多少块具有参考图片中的匹配块。利用该信息,编码器丢弃具有最低计数的参考图片。
[0029]多个参考图片可包括先前在RPS中的用于对当前图片进行编码的一个或多个先前参考图片。在该示例中,多个参考图片还可包括作为当前图片的经重构版本的当前参考图片。
[0030]在用于确定要保留哪些参考图片的另一方法中,对于RPS中的(诸)先前参考图片中的每一者,编码器使用基于散列的块匹配来估计与当前参考图片的相似性。编码器丢弃被估计与当前参考图片最类似的(诸)先前参考图片之一。例如,编码器在当前参考图片的各块和先前参考图片的各候选块之间执行基于散列的块匹配,其中计数指示当前参考图片中有多少块具有先前参考图片中的匹配块。利用该信息,编码器丢弃具有最高计数的先前参考图片。
[0031]针对编码器侧决定的创新可以被实现为方法的一部分、被适配成执行该方法的计算系统的一部分或存储用于使计算系统执行该方法的计算机可执行指令的有形计算机可读介质的一部分。各创新可以结合地或分开地使用。例如,用于选择MV精度的任何创新可与用于选择性地禁用SAO滤波的任何创新和/或用于决定要将哪些参考图片保留在RPS中的任何创新分开地或组合地使用。作为另一示例,用于选择性地禁用SAO滤波的任何创新可与用于选择MV精度的任何创新和/或用于决定要将哪些参考图片保留在RPS中的任何创新分开地或组合地使用。作为另一示例,用于决定要将哪些参考图片保留在RPS中的任何创新可与用于选择性地禁用SAO滤波的任何创新和/或用于选择MV精度的任何创新分开地或组合地使用。
[0032]参考附图阅读以下详细描述,将更清楚本发明的前述和其他目标、特征和优点。
[0033]附图简述
[0034]图1是其中可实现所描述的一些实施例的示例计算系统的示图。
[0035]图2a和2b是其中可实现所描述的一些实施例的示例网络环境的示图。
[0036]图3是结合其可实现所描述的一些实施例的示例编码器系统的示图。
[0037]图4a和4b是示出结合其可实现所描述的一些实施例的示例视频编码器的示图。
[0038]图5是示出具有可为屏幕捕捉提供输入的内容的计算机桌面环境的示图。
[0039]图6是示出具有自然视频内容和人工创建的视频内容的复合视频的示图。
[0040]图7是示出在基于散列的块匹配中的候选块的散列值的表。
[0041]图8a_8c是示出为基于散列的块匹配组织候选块的示例数据结构的表。
[0042]图9a_9c是示出为迭代的基于散列的块匹配组织候选块的示例数据结构的表。
[0043]图1Oa和1b是示出利用分别具有整数样本空间位移和分数样本空间位移的MV值的运动补偿的示图。
[0044]图11、12和15是示出用于取决于基于散列的块匹配的结果选择MV精度的技术的流程图。
[0045]图13是示出自然视频内容的各块和屏幕捕捉内容的各块的特性的示图。
[0046]图14是示出用于取决于对视频块中的不同色彩的数目的测量来对该块进行分类的通用技术的流程图。
[0047]图16和17是示出用于取决于基于散列的块匹配的结果来选择性地禁用SAO滤波的技术的流程图。
[0048]图18是示出对RPS的参考图片的更新的示图。
[0049]图19-21是示出用于取决于基于散列的块匹配的结果来决定要将哪些参考图片保留在RPS中的技术的流程图。
[0050]详细描述
[0051]该详细描述呈现了在编码期间设置参数时使用基于散列的块匹配的结果的编码器侧决定方面的创新。例如,这些创新中的一些涉及取决于基于散列的块匹配的结果来选择运动矢量(“MV”)精度的方式。其他创新涉及取决于基于散列的块匹配的结果来选择性地禁用样本自适应偏移(“SA0”)滤波的方式。又一些创新涉及取决于基于散列的块匹配的结果来选择要将哪些参考图片保留在参考图片集合(“RPS”)中的方式。具体地,这些创新可提供用于在对人工创建的视频内容(诸如屏幕捕捉内容)进行编码期间设置参数的计算上高效的方式。
[0052]虽然本文中描述的操作是被适当描述为由视频编码器来执行,但在许多情况中,这些操作可由另一类型的媒体处理工具(例如图像编码器)来执行。
[0053]本文中描述的一些创新是参考专用于H.265/HEVC标准的句法元素和操作来示出的。例如,对H.265/HEVC标准的草稿版本JCTVC-P1005—即2014年2月的“高效视频编码(HEVC)范围扩展文本规范:第6稿” JCTVC-P1005_vl作出参考。本文中描述的各创新还可以被实现为针对其它标准或格式。
[0054]本文中描述的许多创新可在对某个人工创建的视频内容(诸如来自屏幕捕捉模块的屏幕捕捉内容)进行编码时改善决定作出过程。屏幕捕捉内容通常包括重复的结构(例如图形、文本字符)。屏幕捕捉内容通常以具有高色度采样分辨率的格式(例如YUV 4:4:4或RGB 4:4:4)被编码,虽然它也可以以具有较低的色度采样分辨率(例如YUV 4:2:0)的格式被编码。对屏幕捕捉内容进行编码/解码的常见场景包括远程桌面会议和对自然视频或其它“混合内容”视频的图形覆盖进行编码/解码。本文中描述的若干创新(例如,选择MV精度、选择性地禁用SAO滤波、确定要将哪些参考图片保留在RPS中)被适配成用于对人工创建的视频内容进行编码或者用于对包括至少一些人工创建的视频内容的混合内容视频进行编码。这些创新也可以被用于自然视频内容,但可能不像那样有效。
[0055]更一般地,本文中描述的各示例的各种替代是可能的。例如,本文中描述的一些方法可以通过改变描述的方法动作的顺序、通过拆分、重复或忽略某些方法动作等来更改。所公开的技术的各方面能够被组合地或分开地使用。不同的实施例使用所描述的创新中的一个或多个。本文中描述的一些创新解决了背景中指出的一个或多个问题。通常,所给出的技术/工具并不解决所有这些问题。
[0056]示例计算系统
[0057]图1示出了其中可实现几个所描述的创新的合适计算系统(100)的概括示例。计算系统(100)并不旨对使用范围或功能提出任何限制,因为这些创新可以在不同的通用或专用计算系统中实现。
[0058]参考图1,计算系统(100)包括一个或多个处理单元(I 10、115)和存储器(120、125)。处理单元(I 10、115)执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”)、专用集成电路(“ASIC”)中的处理器或任何其它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图1示出中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120、125)可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,R0M、EEPR0M、闪存等)或两者的某种组合,可由处理单元存取。存储器(120,125)存储实现根据基于散列的块匹配的结果的编码器决定的一个或多个创新(例如,用于选择MV精度、用于选择性地禁用SAO滤波和/或用于决定要将哪些参考图片保留在RPS中)的软件(180),该软件处于适用于由(诸)处理单元执行的计算机可执行指令的形式。
[0059]计算系统可具有附加的特征。例如,计算系统(100)包括存储(140)、一个或多个输入设备(150)、一个或多个输出设备(160)以及一个或多个通信连接(170)。诸如总线、控制器或网络之类的互连机制(未示出)将计算系统(100)的各组件互连。通常,操作系统软件(未示出)为在计算系统(100)中执行的其它软件提供操作环境,并协调计算系统(100)的各组件的活动。
[0060]有形存储(140)可以是可移动或不可移动的,并包括磁盘、磁带或磁带盒、⑶-R0M、DVD或可用于储存信息并可在计算系统(100)内访问的任何其他介质。存储(140)存储实现针对根据基于散列的块匹配的结果的编码器决定的一个或多个创新的软件(180)的指令。
[0061](诸)输入设备(150)可以是触摸输入设备(诸如键盘、鼠标、笔或跟踪球)、语音输入设备、扫描设备或向计算系统(100)提供输入的另一设备。对于视频,(诸)输入设备(150)可以是相
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1