CN105706450B - 根据基于散列的块匹配的结果的编码器决定 - Google Patents
根据基于散列的块匹配的结果的编码器决定 Download PDFInfo
- Publication number
- CN105706450B CN105706450B CN201480048046.9A CN201480048046A CN105706450B CN 105706450 B CN105706450 B CN 105706450B CN 201480048046 A CN201480048046 A CN 201480048046A CN 105706450 B CN105706450 B CN 105706450B
- Authority
- CN
- China
- Prior art keywords
- block
- reference picture
- matching
- value
- picture
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
呈现了在设置参数时使用基于散列的块匹配的结果的编码器侧决定方面的创新。例如,这些创新中的一些涉及取决于基于散列的块匹配的结果来选择运动矢量精度的方式。其他创新涉及取决于基于散列的块匹配的结果来选择性地禁用样本自适应偏移滤波的方式。又一些创新涉及取决于基于散列的块匹配的结果来选择要将哪些参考图片保留在参考图片集合中的方式。
Description
背景
工程师使用压缩(也叫做源编码或源编码)来降低数字视频的比特率。压缩通过将视频信息转换成较低比特率的形式来降低存储和传送该信息的成本。解压(也被称为解码)从压缩的形式中重构一种版本的原始信息。“编解码器”是编码器/解码器系统。
在过去的二十年中,已采用了各种视频编解码器标准,包括ITU-T H.261、H.262(MPEG-2或ISO/IEC 13818-2)、H.263和H.264(MPEG-4AVC或ISO/IEC 14496-10)标准、MPEG-1(ISO/IEC 11172 1 172-2)和MPEG-4可视(ISO/IEC 14496-2)标准以及SMPTE 421M(VC-1)标准。最近,H.265/HEVC标准(ITU-T H.265或ISO/IEC 23008-2)已被批准。目前,(例如,用于可缩放视频编码/解码、用于在样本比特深度或色度采样率方面具有较高保真度的视频的编码/解码、用于屏幕捕捉内容、或用于多视图编码/解码的)H.265/HEVC标准的扩展处于开发中。视频编解码器标准通常定义针对经编码的视频位流的句法的选项,从而详述当在编码和解码时使用特定特征时该位流中的参数。在许多情况下,视频编解码器标准还提供关于解码器应当执行以在解码时取得一致的结果的解码操作的细节。除了编解码器标准外,各种专用编解码器格式定义针对经编码的视频位流的句法的其他选项以及相应的解码操作。
一般而言,视频压缩技术包括“图像内”压缩和“图像间”压缩。图片内压缩技术压缩各个体图片,且图片间压缩技术参考前导和/或跟随图片(通常被称为参考或另一图片)来压缩图片。
图片间压缩技术通常使用运动估计和运动补偿通过利用视频序列中的时间冗余来降低比特率。运动估计是用于估计图片之间的运动的过程。在一个常用技术中,使用运动估计的编码器尝试将当前图片中的当前样本值块与另一图片(参考图片)中的搜索区域中的相同尺寸的候选块匹配。一般来说,参考图片是包含在对其他图片的解码过程中可用于预测的样本值的图片。
对于当前块,当编码器在参考图片中的搜索区域中找到精确或“足够接近”的匹配时,编码器将当前和候选块之间的位置改变参数化为运动数据(诸如运动矢量(“MV”))。常规上MV是二维值,具有指示左或右空间位移的水平MV分量和指示上或下空间位移的垂直MV分量。一般来说,运动补偿是使用运动数据从(诸)参考图片中重构图片的过程。
MV精度。
MV可根据当前块从参考图片中的共同位置开始的整数样本数来指示空间位移。例如,对于在当前图片中的位置(32,16)处的当前块,MV(-3,1)指示参考图片中的位置(29,17)。或者,MV可根据当前块从参考图片中的共同位置起分数样本数来指示空间位移。例如,对于在当前图片中的位置(32,16)处的当前块,MV(-3.5,1.25)指示参考图片中的位置(28.5,17.25)。为了确定在参考图片中的分数偏移处的样本值,编码器通常在各整数样本位置处的样本值之间插值。这样的插值可能是计算上密集的。在运动补偿期间,解码器还按需执行该插值以计算在参考图片中的分数偏移处的样本值。
在使用运动估计和运动补偿来对块进行编码时,编码器通常计算该块的各样本值及其运动补偿的预测之间逐样本的差异(也被称为残留值或误差值)。这些残留值可随后被编码。对于这些残留值来说,编码效率取决于这些残留值的复杂度以及有多少损失或失真作为压缩过程的一部分被引入。一般来说,良好的运动补偿的预测接近地近似块,使得这些残留值包括很少有效值,并且这些残留值可被高效地编码。另一方面,低劣的运动补偿的预测通常产生包括许多有效值的残留值,这些残留值更难以高效地编码。编码器通常花费很大比例的编码时间来执行运动估计,以尝试寻找到良好的匹配并由此改善速率-失真性能。
不同的视频编解码器标准和格式已使用具有不同MV精度的MV。对于整数样本MV预测,MV分量指示针对空间位移的整数数目的样本值。对于诸如1/2样本MV精度或1/4样本MV精度之类的分数样本MV精度,MV分量可指示针对空间位移的整数数目的样本值或分数数目的样本值。例如,如果MV精度为1/4样本MV精度,则MV分量可指示0个样本、0.25个样本、0.5个样本、0.75个样本、1.0个样本、1.25个样本等的空间位移。当编解码器使用具有整数样本的MV精度的MV时,编码器和解码器不需要针对运动补偿执行参考图片的样本值之间的插值操作。当编解码器使用具有分数样本MV精度的MV时,编码器和解码器针对运动补偿执行参考图片的样本值之间的插值操作(增加了计算复杂度),但与整数样本MV精度相比,运动补偿的精度趋于更接近地近似各块(导致具有更少有效值的残留值)。
一些视频编解码器标准和格式支持MV精度在编码期间的切换。然而,在某些编码场景中,关于要使用哪个MV精度的编码器侧决定没有被有效地作出。具体地,在各种情况下,在对人工创建的视频内容(诸如,屏幕捕捉内容)进行编码时,这样的编码器侧决定没有被有效地作出。
II.参考图片集合。
在一些视频编解码器标准和格式中,在给定时间多个参考图片可用于供运动补偿的预测使用。这样的视频编解码器标准/格式指定如何管理此多个参考图片。例如,可在视频编码和解码期间根据规则自动地添加或丢弃参考图片。或者,比特流中的参数可指示关于在视频编码和解码期间使用的参考图片的信息。
在一些视频编解码器标准和格式中,参考图片集合(“RPS”)是在给定时间可用于供在运动补偿的预测中使用的参考图片的集合。在编码和解码期间,RPS可被更新以添加新解码的图片并移除不再被用作参考图片的较旧的图片。在一些新近的编解码器标准(诸如,H.265/HEVC标准)中,RPS在编码和解码期间被更新,并且信号化在比特流中的句法元素指示如何更新该RPS。
然而,在某些编码场景中,关于如何更新RPS的编码器侧决定未被有效地作出。具体地,在各种情况下,在对人工创建的视频内容(诸如,屏幕捕捉内容)进行编码时,这样的决定不被高效地作出。
III.样本自适应偏移过滤。
视频编码器或视频解码器可将一个或多个滤波器应用于图片的经重构的样本值。根据H.265/HEVC标准,例如,去块滤波和样本自适应偏移(“SAO”)滤波可被应用于重构的样本值。去块滤波往往降低由基于块的编码造成的块伪像,并且被自适应地应用于块边界处的样本值。在某区域内,SAO滤波被自适应地应用于满足某些条件(诸如,跨各样本值存在梯度)的样本值。
根据H.265/HEVC标准,SAO滤波可针对序列被启用或禁用。在SAO滤波针对序列被启用时,SAO滤波可在逐片的基础上针对片的亮度内容和/或针对该片的色度内容被启用或禁用。SAO滤波也可针对片内的块被启用或禁用。例如,SAO滤波可针对片中的编码树单元(“CTU”)的编码树块(“CTB”)被启用或禁用,其中CTU通常包括亮度CTB和相应的色度CTB。对于CTB,类型索引指示是否SAO滤波被禁用、使用带偏移或使用边缘偏移。如果SAO滤波使用带偏移或边缘偏移,则附加的句法元素指示用于针对CTB的SAO滤波的参数。在一些情况下,CTB可重新使用来自毗邻CTB的句法元素来控制SAO滤波。在任何事件中,当SAO滤波被使用时,它增加编码和解码的计算复杂性。
存在SAO滤波应当被禁用的许多情况和场合。然而,在某些编码场景中,关于何时使用SAO滤波的编码器侧决定没有被有效地作出。具体地,在各种情况下,在对人工创建的视频内容(诸如,屏幕捕捉内容)进行编码时,这样的决定没有被有效地作出。
概述
总而言之,详细描述呈现了在编码期间设置参数时使用基于散列的块匹配的结果的编码器侧决定方面的创新。例如,这些创新中的一些涉及取决于基于散列的块匹配的结果来选择运动矢量(“MV”)精度的方式。其他创新涉及取决于基于散列的块匹配的结果来选择性地禁用样本自适应偏移(“SAO”)滤波的方式。又一些创新涉及取决于基于散列的块匹配的结果来选择要将哪些参考图片保留在参考图片集合(“RPS”)中的方式。具体地,这些创新可提供计算上高效的方式来在对人工创建的视频内容(诸如视频捕捉内容)进行编码期间设置参数。
根据本文中描述的这些创新的第一方面,视频编码器对视频进行编码以产生经编码的数据并在比特流中输出该经编码的数据。作为编码的一部分,编码器至少部分地根据基于散列的块匹配的结果来确定针对视频的单元的MV预测。该单元可以是序列、场景改变之间的图片系列、图片群组、图片、小块、片、编码单元或其他视频单元。MV精度可以是整数样本精度、四分之一样本精度或某个其他分数样本精度。
例如,在确定MV精度时,编码器将该单元拆分成多个块。对于该单元的多个块中的给定块,编码器确定针对该给定块的散列值,随后确定(诸)参考图片的多个候选块之间是否存在对该给定块的匹配。该匹配可表示该给定块和多个候选块之一之间的匹配散列值,这提供快速结果。或者,该匹配还可表示该给定块和多个候选块之一之间逐样本的匹配,这较慢但可能较可靠。随后,对于单元的多个块之中的非匹配块,编码器可将该非匹配块分类成包含自然视频内容或人工创建的视频内容。例如,在对非匹配块进行分类时,编码器测量该非匹配块中不同色彩的数目,随后将该不同色彩的数目与阈值进行比较。
根据本文中描述的这些创新中的另一方面,图像编码器或视频编码器对图像或视频进行编码以产生经编码的数据并在比特流中输出该经编码的数据。作为编码的一部分,编码器执行针对当前图片的当前块的基于散列的块匹配。基于条件是否被满足,编码器确定是否禁用针对当前块的SAO滤波。基于该确定的结果,编码器选择性地禁用针对当前块的SAO滤波。如果没有禁用针对当前块的SAO滤波,则编码器可检查一个或多个其他条件以决定是否使用针对当前块的SAO滤波,并且如果SAO滤波被使用,则为针对当前块的SAO滤波确定参数。
(针对启用还是禁用针对当前块的SAO滤波的)条件取决于在针对当前块的基于散列的块匹配期间是否发现匹配。该条件还可取决于当前块的预期质量相对于该匹配的候选块的质量(如适用于该当前块的量化参数(“QP”)值和适用于该候选块的QP值分别指示的)。
例如,在执行针对当前块的基于散列的块匹配时,编码器确定当前块的散列值,随后尝试在(诸)参考图片的多个候选块之中寻找到该当前块的匹配。当前块可以是编码树单元(“CTU”)的编码树块(“CTB”),在该情况下,针对CTU的一个或多个其他CTB的SAO滤波也被选择性地启用。
根据本文中描述的各创新的另一方面,视频编码器对视频进行编码以产生经编码的数据并在比特流中输出该经编码的数据。作为编码的一部分,编码器至少部分地根据基于散列的块匹配的结果来确定要将多个参考图片中的哪些参考图片保留在RPS中。
在用于确定要保留哪些参考图片的一个方法中,对于该多个参考图片中的每一者,编码器使用基于散列的块匹配来估计该参考图片预测序列的下一图片有多么好。编码器丢弃被预期预测下一图片比其他参考图片预期下一图片更差的参考图片。例如,编码器在下一图片的各块和参考图片的各候选块之间执行基于散列的块匹配,其中计数指示下一图片中有多少块具有参考图片中的匹配块。利用该信息,编码器丢弃具有最低计数的参考图片。
多个参考图片可包括先前在RPS中的用于对当前图片进行编码的一个或多个先前参考图片。在该示例中,多个参考图片还可包括作为当前图片的经重构版本的当前参考图片。
在用于确定要保留哪些参考图片的另一方法中,对于RPS中的(诸)先前参考图片中的每一者,编码器使用基于散列的块匹配来估计与当前参考图片的相似性。编码器丢弃被估计与当前参考图片最类似的(诸)先前参考图片之一。例如,编码器在当前参考图片的各块和先前参考图片的各候选块之间执行基于散列的块匹配,其中计数指示当前参考图片中有多少块具有先前参考图片中的匹配块。利用该信息,编码器丢弃具有最高计数的先前参考图片。
针对编码器侧决定的创新可以被实现为方法的一部分、被适配成执行该方法的计算系统的一部分或存储用于使计算系统执行该方法的计算机可执行指令的有形计算机可读介质的一部分。各创新可以结合地或分开地使用。例如,用于选择MV精度的任何创新可与用于选择性地禁用SAO滤波的任何创新和/或用于决定要将哪些参考图片保留在RPS中的任何创新分开地或组合地使用。作为另一示例,用于选择性地禁用SAO滤波的任何创新可与用于选择MV精度的任何创新和/或用于决定要将哪些参考图片保留在RPS中的任何创新分开地或组合地使用。作为另一示例,用于决定要将哪些参考图片保留在RPS中的任何创新可与用于选择性地禁用SAO滤波的任何创新和/或用于选择MV精度的任何创新分开地或组合地使用。
参考附图阅读以下详细描述,将更清楚本发明的前述和其他目标、特征和优点。
附图简述
图1是其中可实现所描述的一些实施例的示例计算系统的示图。
图2a和2b是其中可实现所描述的一些实施例的示例网络环境的示图。
图3是结合其可实现所描述的一些实施例的示例编码器系统的示图。
图4a和4b是示出结合其可实现所描述的一些实施例的示例视频编码器的示图。
图5是示出具有可为屏幕捕捉提供输入的内容的计算机桌面环境的示图。
图6是示出具有自然视频内容和人工创建的视频内容的复合视频的示图。
图7是示出在基于散列的块匹配中的候选块的散列值的表。
图8a-8c是示出为基于散列的块匹配组织候选块的示例数据结构的表。
图9a-9c是示出为迭代的基于散列的块匹配组织候选块的示例数据结构的表。
图10a和10b是示出利用分别具有整数样本空间位移和分数样本空间位移的MV值的运动补偿的示图。
图11、12和15是示出用于取决于基于散列的块匹配的结果选择MV精度的技术的流程图。
图13是示出自然视频内容的各块和屏幕捕捉内容的各块的特性的示图。
图14是示出用于取决于对视频块中的不同色彩的数目的测量来对该块进行分类的通用技术的流程图。
图16和17是示出用于取决于基于散列的块匹配的结果来选择性地禁用SAO滤波的技术的流程图。
图18是示出对RPS的参考图片的更新的示图。
图19-21是示出用于取决于基于散列的块匹配的结果来决定要将哪些参考图片保留在RPS中的技术的流程图。
详细描述
该详细描述呈现了在编码期间设置参数时使用基于散列的块匹配的结果的编码器侧决定方面的创新。例如,这些创新中的一些涉及取决于基于散列的块匹配的结果来选择运动矢量(“MV”)精度的方式。其他创新涉及取决于基于散列的块匹配的结果来选择性地禁用样本自适应偏移(“SAO”)滤波的方式。又一些创新涉及取决于基于散列的块匹配的结果来选择要将哪些参考图片保留在参考图片集合(“RPS”)中的方式。具体地,这些创新可提供用于在对人工创建的视频内容(诸如屏幕捕捉内容)进行编码期间设置参数的计算上高效的方式。
虽然本文中描述的操作是被适当描述为由视频编码器来执行,但在许多情况中,这些操作可由另一类型的媒体处理工具(例如图像编码器)来执行。
本文中描述的一些创新是参考专用于H.265/HEVC标准的句法元素和操作来示出的。例如,对H.265/HEVC标准的草稿版本JCTVC-P1005—即2014年2月的“高效视频编码(HEVC)范围扩展文本规范:第6稿”JCTVC-P1005_vl作出参考。本文中描述的各创新还可以被实现为针对其它标准或格式。
本文中描述的许多创新可在对某个人工创建的视频内容(诸如来自屏幕捕捉模块的屏幕捕捉内容)进行编码时改善决定作出过程。屏幕捕捉内容通常包括重复的结构(例如图形、文本字符)。屏幕捕捉内容通常以具有高色度采样分辨率的格式(例如YUV 4:4:4或RGB 4:4:4)被编码,虽然它也可以以具有较低的色度采样分辨率(例如YUV 4:2:0)的格式被编码。对屏幕捕捉内容进行编码/解码的常见场景包括远程桌面会议和对自然视频或其它“混合内容”视频的图形覆盖进行编码/解码。本文中描述的若干创新(例如,选择MV精度、选择性地禁用SAO滤波、确定要将哪些参考图片保留在RPS中)被适配成用于对人工创建的视频内容进行编码或者用于对包括至少一些人工创建的视频内容的混合内容视频进行编码。这些创新也可以被用于自然视频内容,但可能不像那样有效。
更一般地,本文中描述的各示例的各种替代是可能的。例如,本文中描述的一些方法可以通过改变描述的方法动作的顺序、通过拆分、重复或忽略某些方法动作等来更改。所公开的技术的各方面能够被组合地或分开地使用。不同的实施例使用所描述的创新中的一个或多个。本文中描述的一些创新解决了背景中指出的一个或多个问题。通常,所给出的技术/工具并不解决所有这些问题。
示例计算系统
图1示出了其中可实现几个所描述的创新的合适计算系统(100)的概括示例。计算系统(100)并不旨对使用范围或功能提出任何限制,因为这些创新可以在不同的通用或专用计算系统中实现。
参考图1,计算系统(100)包括一个或多个处理单元(110、115)和存储器(120、125)。处理单元(110、115)执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”)、专用集成电路(“ASIC”)中的处理器或任何其它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图1示出中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120、125)可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或两者的某种组合,可由处理单元存取。存储器(120,125)存储实现根据基于散列的块匹配的结果的编码器决定的一个或多个创新(例如,用于选择MV精度、用于选择性地禁用SAO滤波和/或用于决定要将哪些参考图片保留在RPS中)的软件(180),该软件处于适用于由(诸)处理单元执行的计算机可执行指令的形式。
计算系统可具有附加的特征。例如,计算系统(100)包括存储(140)、一个或多个输入设备(150)、一个或多个输出设备(160)以及一个或多个通信连接(170)。诸如总线、控制器或网络之类的互连机制(未示出)将计算系统(100)的各组件互连。通常,操作系统软件(未示出)为在计算系统(100)中执行的其它软件提供操作环境,并协调计算系统(100)的各组件的活动。
有形存储(140)可以是可移动或不可移动的,并包括磁盘、磁带或磁带盒、CD-ROM、DVD或可用于储存信息并可在计算系统(100)内访问的任何其他介质。存储(140)存储实现针对根据基于散列的块匹配的结果的编码器决定的一个或多个创新的软件(180)的指令。
(诸)输入设备(150)可以是触摸输入设备(诸如键盘、鼠标、笔或跟踪球)、语音输入设备、扫描设备或向计算系统(100)提供输入的另一设备。对于视频,(诸)输入设备(150)可以是相机、视频卡、TV调谐卡、屏幕捕捉模块或接受模拟或数字形式的视频输入的类似设备、或将视频输入读到计算系统(100)中的CD-ROM或CD-RW。(诸)输出设备(160)可以是显示器、打印机、扬声器、CD刻录机或提供来自计算系统(100)的输出的另一设备。
(诸)通信连接(170)允许通过通信介质与另一计算实体通信。通信介质传达诸如计算机可执行指令、音频或视频输入或输出、或已调制数据信号中的其他数据之类的信息。已调制数据信号是使其一个或多个特征以在信号中编码信息的方式设置或改变的信号。作为示例而非限制,通信介质可以使用电的、光学的、RF或其它载体。
各创新可以在计算机可读介质的一般上下文中描述。计算机可读介质是可在计算环境内访问的任何可用有形介质。作为示例而非局限,对于计算系统(100),计算机可读介质包括存储器(120、125)、存储(140)、和以上任意的组合。
各创新可在计算机可执行指令(诸如包括在程序模块中的在目标现实或虚拟处理器上在计算系统中执行的那些计算机可执行指令)的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。如各实施例中所描述的,这些程序模块的功能可以被组合,或者在这些程序模块之间拆分。针对各程序模块的计算机可执行指令可以在本地或分布式计算系统中执行。
术语“系统”和“设备”在此被互换地使用。除非上下文明确指示,否则,术语并不暗示对计算系统或计算设备的类型的任何限制。一般说来,计算系统或计算设备可以是本地的或分布式的,并且可以包括具有实现本文中描述的功能的软件的专用硬件和/或通用硬件的任意组合。
所公开的方法还可使用被配置成执行所公开的方法中的任一者的专用计算硬件来实现。例如,所公开的方法可以由被专门设计或配置成实现所公开的方法中的任一者的集成电路(例如,诸如ASIC数字信号处理器(“DSP”)之类的ASIC、图像处理单元(“GPU”)、或诸如场可编程门阵列(“FPGA”)之类的可编程逻辑器件(“PLD”))来实现。
为了呈现起见,本详细描述使用了如“确定”和“使用”等术语来描述计算系统中的计算机操作。这些术语是对由计算机执行的操作的高级抽象,且不应与人类所执行的动作混淆。对应于这些术语的实际的计算机操作取决于实现而不同。
II.示例网络环境
图2a和2b示出了包括视频编码器(220)和视频解码器(270)的示例网络环境(201,202)。编码器(220)和解码器(270)使用合适的通信协议通过网络(250)连接。网络(250)可包括因特网或另一计算机网络。
在图2a所示的网络环境(201)中,每个实时通信(“RTC”)工具(210)都包括用于双向通信的编码器(220)和解码器(270)两者。给定的编码器(220)可以产生符合H.265/HEVC标准、SMPTE 421M标准、ISO/IEC 14496-10标准(也称为H.264或AVC)、另一标准、或专用格式的变型或扩展的输出,使得相应的解码器(270)接受来自编码器(220)的经编码的数据。双向通信可以是视频会议、视频电话呼叫或其它双方或多方通信场景的部分。虽然,图2a中的网络环境(201)包括两个实时通信工具(210),但网络环境(201)可改为包括参与多方通信的三个或更多个实时通信工具(210)。
实时通信工具(210)管理编码器(220)做出的编码。图3示出可以被包括在实时通信工具(210)中的示例编码器系统(300)。替换地,实时通信工具(210)使用另一编码器系统。实时通信工具(210)还管理解码器(270)做出的解码。
在图2b中示出的网络环境(202)中,编码工具(212)包括编码供递送给多个回放工具(214)的视频的编码器(220),此多个回放工具(214)包括解码器(270)。单向通信可被提供用于视频监视系统、web相机监视系统、远程桌面会议演示或在其中编码视频并将视频从一个位置发送到一个或多个其它位置的其它场景。虽然在图2b中的网络环境(202)包括两个回放工具(214),但该网络环境(202)可以包括更多或更少的回放工具(214)。一般来说,回放工具(214)与编码工具(212)通信以确定回放工具(214)要接收的视频流。回放工具(214)接收该流、缓冲所接收的经编码的数据达合适的时间段并开始解码和回放。
图3示出可以被包括在编码工具(212)中的示例编码器系统(300)。替换地,编码工具(212)使用另一编码器系统。编码工具(212)还可以包括用于管理与一个或多个回放工具(214)的连接的服务器侧控制器逻辑。回放工具(214)还可以包括用于管理与一个或多个编码工具(212)的连接的客户机侧控制器逻辑。
III.示例编码器系统
图3是结合其可实现所描述的一些实施例的示例编码器系统(300)的框图。编码器系统(300)可以是能够用多种编码模式中的任一者(诸如用于实时通信的低等待时间编码模式、转码模式和用于从文件或流中产生供回放的媒体的较高等待时间编码模式)操作的通用编码工具,或它可以是适用于一种这样的编码模式的专用编码工具。编码器系统(300)可以适用于编码特定类型的内容(例如屏幕捕捉内容)。编码器系统(300)可以被实现为操作系统模块、应用库的部分、独立的应用。总体上,编码器系统(300)从视频源(310)接收源视频帧序列(311)并产生经编码的数据作为到信道(390)的输出。输出到信道的经编码的数据可包括使用如本文中所述的编码器侧决定编码的内容。
视频源(310)可以是相机、调谐卡、存储介质、屏幕捕捉模块或其它数字视频源。视频源(310)以例如每秒30帧的帧速率产生视频帧序列。如本文中所使用的,术语“帧”一般指代源、经编码的或经重构的图像数据。对于逐行扫描视频,帧是逐行扫描视频帧。对于隔行视频,在各示例实施例中,隔行视频帧可以在编码之前被去隔行。替换地,两个互补的隔行视频场可以被编码在一起作为单个视频帧或者被编码成两个经分开编码的场。除了指示逐行扫描视频帧或隔行扫描视频帧之外,术语“帧”或“图片”可以指示单个非成对的视频场、互补的成对视频场、表示在给定时间的视频对象的视频对象平面、或较大图像中的感兴趣区域。视频对象平面或区域可以是包括场景的多个对象或区域的较大图像的一部分。
抵达的源帧(311)被存储在包括多个帧缓冲器存储区域(321、322、…、32n)的源帧临时存储器存储区域(320)中。帧缓冲区(321、322等)在源帧存储区域(320)中保持一个源帧。在一个或多个源帧(311)已被存储在帧缓冲区(321、322等)中后,帧选择器(330)从源帧存储区域(320)中选择一个体源帧。帧选择器(330)选择帧以供输入到编码器(340)的顺序可不同于视频源(310)产生这些帧的顺序,例如某些帧的编码可以被按序延迟,从而允许一些更后面的帧被先编码并由此促成时间上向后的预测。在编码器(340)之前,编码器系统(300)可包括预处理器(未示出),该预处理器在编码之前执行对选中的帧(331)的预处理(例如滤波)。预处理可包括色彩空间转换成主要(例如亮度)和次要(例如偏向红色和偏向蓝色的色度差)分量以及用于编码的重采样处理(例如以减少色度分量的空间分辨率)。通常,在编码之前,视频已被转换成诸如YUV的色彩空间,其中亮度(Y)分量的样本值表示明亮度或强度值,而色度(U,V)分量的样本值表示色差值。色差值(以及从YUV色彩空间到诸如RGB的另一色彩空间和/或从另一色彩空间到YUV色彩空间的转换操作)的精确定义取决于实现。通常,如在此所用,术语YUV指示具有亮度(或照度)分量和一个或多个色度(或色差)分量的任意色彩空间,包括Y’UV、YIQ、Y’IQ和YDbDr以及诸如YCbCr和YCoCg之类的变体。色度采样值可以被子采样到较低的色度采样率(例如用于YUV 4:2:0格式),或者色度采样值可以具有与亮度采样值相同的分辨率(例如用于YUV 4:4:4格式)。或者,视频可用另一格式(例如RGB 4:4:4格式、GBR 4:4:4格式或BGR 4:4:4格式)来编码。
编码器(340)编码选中的帧(331)以产生经编码的帧(341)并且还产生存储器管理控制操作(“MMCO”)信号(342)或参考图片集(“RPS”)信息。RPS是在针对当前帧或任意后续帧的运动补偿中可用于供参考的帧集。如果当前帧不是已被编码的第一帧,则在执行其编码处理时,编码器(340)可以使用已经被存储在经解码帧的临时存储器存储区域(360)中的一个或多个先前被编码/解码的帧(369)。这样的存储的经解码帧(369)被用作用于当前源帧(331)的内容的帧间预测的参考帧。MMCO/RPS信息(342)向解码器指示哪些经重构的帧可被用作参考帧,并且因此应该被存储在帧存储区域中。以下描述作出关于要将哪些参考图片保留在RPS中的决定的示例方式。
一般来说,编码器(340)包括执行编码任务的多个编码模块,编码任务为诸如分割成小块、帧内预测估计和预测、运动估计和补偿、频率变换、量化和熵编码。由编码器(340)执行的确切操作可以取决于压缩格式而变化。输出的经编码数据的格式可以是H.265/HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的变型或扩展。
编码器(340)可以将帧分割成相同尺寸或不同尺寸的多个小块。例如,编码器(340)沿小块行和小块列来拆分帧,这些小块行和小块列利用帧边界定义在该帧内的小块的水平和垂直边界,其中每个小块是矩形区域。小块通常被用于提供并行处理的选项。帧还可以被组织成一个或多个片,其中一个片可以是整个帧或该帧的区域。片可以独立于帧中的其它片编码,这改善了错误复原性。出于编码和解码的目的,片或小块的内容被进一步分隔成块或其它采样值集。
对于根据H.265/HEVC标准的句法来说,编码器将帧(或片或小块)的内容拆分成编码树单元。编码树单元(“CTU”)包括被组织为亮度编码树块(“CTB”)的亮度采样值,并且对应的色度采样值被组织为两个色度CTB。CTU(及其CTB)的尺寸由编码器来选择,并且可例如为64x64、32x32或16x16个样本值。CTU包括一个或多个编码单元。编码单元(“CU”)具有亮度编码块(“CB”)和两个对应的色度CB。例如,具有64x64亮度CTB和两个64x64色度CTB(YUV 4:4:4格式)的CTU可以被拆分成4个CU,其中每个CU包括一32x32亮度CB和两个32x32色度CB,并且每个CU可能被进一步拆分成更小的CU。或者,作为另一示例,具有64x64亮度CTB和两个32x32色度CTB(YUV 4:2:0格式)的CTU可以被拆分成4个CU,其中每个CU包括一32x32亮度CB和两个16x16色度CB,并且每个CU可能被进一步拆分成更小的CU。CU的最小允许尺寸(例如8×8、16×16)可被信号化在比特流中。
通常,CU具有诸如帧间或帧内之类的预测模式。出于信号化预测信息(例如预测模式细节、移位值等)和/或预测处理的目的,CU包括一个或多个预测单元。预测单元(“PU”)具有亮度预测块(“PB”)和两个对应的色度PB。对于帧内预测的CU,PU与CU具有相同的尺寸,除非CU具有最小尺寸(例如8×8)。在那个情况下,CU可被拆分成四个较小的PU(例如,如果最小CU尺寸为8x8,则每个PU为4x4),或者PU可具有最小CU尺寸,如CU的句法元素所指示的。在帧内预测的CU中的PU可以包含单个TU(尺寸与PU相同)或多个TU。编码器决定如何将视频分割成CTU、CU、PU、TU等。
在H.265/HEVC实现中,片可以包括单个片段(独立的片段)或被划分成多个片段(独立的片段和一个或多个从属的片段)。片段是在小块扫描中包含在单个网络抽象层(“NAL”)单元中的连续排序的整数个CTU。对于独立的片段,片段头部包括适用于该独立的片段的句法元素的值。对于从属片段,截断的片段头部包括适用于该从属片段的句法元素的几个值,并且从属片段的其它句法元素的值是以解码顺序从在前的独立的片段的值中推导出来的。
如本文中所使用的,术语“块”可以指示宏块、预测单元、残留数据单元、或者CB、PB或TB,或者某些其它样本值集,这取决于上下文。
回到图3,编码器根据来自源帧(331)中的其它、先前重构的样本值的预测来表示该帧(331)内编码的块。对于帧内块复制(“BC”)预测,图片内估计器或运动估计器估计块相对于同一帧中的其它、先前重构的样本值的位移。帧内预测参考区域是帧中被用于生成块的BC预测值的样本值区域。帧内预测区域可以用块矢量(“BV”)值来指示,该块矢量值可在比特流中被表示为运动矢量(“MV”)值。对于块的空间内预测,图片内估计器估计相邻的经重构的样本值到该块的外插。预测信息(诸如,针对帧内BC预测的BV/MV值、或针对帧内空间预测的预测模式(方向))可被熵编码并被输出。帧内预测预测器(或针对BV/MV值的运动补偿器)应用预测信息来确定帧内预测值。
编码器(340)依据来自一个或多个参考帧(369)的预测来表示源帧(331)的帧间编码的预测的块。运动估计器估计块相对于一个或多个参考帧(369)的运动。运动估计器可例如使用本文中描述的方法来选择MV精度(例如,整数样本MV精度、1/2样本MV精度或1/4样本MV精度),随后在运动估计期间使用所选的MV精度。当使用多个参考帧时,这多个参考帧可来自不同的时间方向或相同的时间方向。经运动补偿的预测参考区域是在参考帧中被用于生成当前帧的采样值的块的经运动补偿的预测值的采样值的区域。运动估计器输出诸如MV量信息之类的运动信息,该运动信息被熵编码。运动补偿器将MV应用于参考帧(369)以确定用于帧间预测的经运动补偿的预测值。
编码器可以确定在块预测值(帧内或帧间)和对应的原始值之间的差值(如果有的话)。这些预测残留值将进一步使用频率变换、量化和熵编码来编码。例如,编码器(340)为图片、小块、片和/或视频的其它部分设置量化参数(“QP”)的值,并相应地量化变换系数。编码器(340)的熵编码器压缩经量化的变换系数值以及某些辅助信息(例如MV信息、所选的MV精度、SAO滤波参数、RPS更新信息、QP值、模式决定、其他参数选择)。典型的熵编码技术包括指数-Golomb编码、Golomb-Rice编码、算术编码、差分编码、Huffman编码、行程长度编码、可变长度对可变长度(“V2V”)编码、可变长度对固定长度(“V2F”)编码、Lempel-Ziv(“LZ”)编码、字典编码、概率区间划分熵编码(“PIPE”)和上述编码的组合。熵编码器可对不同种类的信息使用不同的编码技术,并可组合地应用多个技术(例如,通过应用Golomb-Rice编码,随后应用算术编码),并可从特定编码技术内的多个码表中进行选择。
自适应去块滤波器可以被包括在编码器(340)中的运动补偿循环内以平滑经解码的帧中的块边界行和/或列上的间断。可替换地或另外地应用其它滤波(诸如去振铃滤波、自适应环路滤波(“ALF”)或SAO滤波)作为内环路滤波操作。以下描述了作出关于启用还是禁用SAO滤波的决定的示例方法。
由编码器(340)产生的经编码的数据包括针对各层位流句法的句法元素。对于根据H.265/HEVC的标准的句法,例如,图片参数集(“PPS”)是包含了与图片相关联的句法元素的句法结构。PPS可被用于单个图片,或者PPS可被重用于序列中的多个图片。PPS典型地与图片的经编码的数据分开地发送信号(例如PPS的一个NAL单元和用于图片的经编码的数据的一个或多个其它NAL单元)。在图片的经编码数据内,句法元素指示要为该图片使用哪个PPS。类似地,对于根据H.265/HEVC的标准的句法,序列参数集(“SPS”)是包含了与图片的序列相关联的句法元素的句法结构。位流可包括单个SPS或多个SPS。SPS通常被信号化成与序列的其它数据分开,并且其它数据中的句法元素指示要使用哪个SPS。
经编码的帧(341)和MMCO/RPS信息(342)(或与MMCO/RPS信息(342)等价的信息,因为在编码器(340)处已经知道各帧的依赖关系和排序结构)由解码处理仿真器(350)处理。解码处理仿真器(350)实现了解码器的一些功能,例如对任务进行解码以重构参考帧。以与MMCO/RPS信息(342)相一致的方式,解码处理仿真器(350)确定给定的经编码帧(341)是否需要被重构并被存储以供在对要编码的后续帧的帧间预测中用作参考帧。如果经编码的帧(341)需要被存储,则解码处理仿真器(350)对将由解码器进行的解码处理建模,该解码器接收经编码的帧(341)并产生相应的经解码的帧(351)。通过这么做,当编码器(340)已经使用已被存储在经解码帧存储区域(360)中的经解码的帧(369)时,解码处理仿真器(350)还使用来自存储区域(360)的经解码的帧(369)作为解码处理的一部分。
经解码帧临时存储器存储区域(360)包括多个帧缓冲存储区域(361,362,…,36n)。以与MMCO/RPS信息(342)相一致的方式,解码处理仿真器(350)管理存储区域(360)中的内容,以便标识出具有编码器(340)不再需要将其用作参考帧的帧的任何帧缓冲区(361、362等)。在对解码处理进行建模之后,解码处理仿真器(350)在帧缓冲区(361、362等)中存储已经以此方式标识出的新解码的帧(351)。
经编码的帧(341)和MMCO/RPS信息(342)被缓冲在临时的经编码数据区域(370)中。被聚集在经编码数据区域(370)中的经编码数据包含一个或多个图片的经编码数据作为基本经编码视频位流的句法的一部分。在经编码数据区域(370)中被聚集的经编码数据还可包括与经编码的视频数据相关的媒体元数据(例如作为一个或多个补充增强信息(“SEI”)消息或视频可用性信息(“VUI”)消息中的一个或多个参数)。
来自临时的经编码数据区域(370)的经聚集的数据(371)由信道编码器(380)处理。信道编码器(380)可以分组化和/或复用经聚集的数据以供作为媒体流传输或存储(例如根据媒体程序流或传输流格式,例如ITU-T H.222.0|ISO/IEC 13818-1或因特网实时传输协议格式(例如IETF RFC 3550)),在这种情况中,信道编码器(380)可以添加句法元素作为媒体传输流的句法的一部分。或者,信道编码器(380)可以组织经聚集的数据以供存储成文件(例如根据媒体容器格式,诸如ISO/IEC 14496-12),在这种情况中信道编码器(380)可添加句法元素作为媒体存储文件的句法的一部分。或者,更一般地,信道编码器(380)可以实现一个或多个媒体系统复用协议或传输协议,在这种情况中,信道编码器(380)可以添加句法元素作为(诸)协议的句法的一部分。信道编码器(380)将输出提供给信道(390),该信道(390)表示存储、通信连接或该输出的另一信道。信道编码器(380)或信道(390)还可以包括例如用于前向纠错(“FEC”)编码和模拟信号调制的其它元素(未示出)。
IV.示例视频编码器
图4a和4b是可结合其实现所描述的一些实施例的通用视频编码器(400)的框图。编码器(400)接收包括当前图片的视频图片序列作为输入视频信号(405)并在经编码视频位流(495)中产生经编码的数据作为输出。
编码器(400)是基于块的并使用取决于实现的块格式。块还可在不同的阶段上被进一步细分,例如在预测、频率变换和/或熵编码阶段。例如,图片可以被划分成64x64块、32x32块或16x16块,这些块随后可以被划分成更小的样本值块以用于编码和解码。在针对H.265/HEVC标准的编码的实现中,编码器将图片分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
编码器(400)使用图片内编码和/或图片间编码来压缩图片。编码器(400)的许多组件被用于图片内编码和图片间编码两者。由这些组件执行的确切操作可取决于所压缩的信息的类型而变化。
小块化模块(410)可选地将图片分割成相同尺寸或不同尺寸的多个小块。例如,小块化模块(410)沿小块行和小块列来拆分图片,所述小块行和小块列利用图片边界定义在图片内的小块的水平和垂直边界,其中每个小块是矩形区域。在H.265/HEVC实现中,编码器(400)将图片分割成一个或多个片,其中每个片包括一个或多个片段。
通用编码控件(420)接收输入视频信号(405)的图片以及来自编码器(400)的各个模块的反馈(未示出)。整体上,通用编码控件(420)将控制信号(未示出)提供给其它模块(例如小块化模块(410)、变换器/缩放器/量化器(430)、缩放器/逆变换器(435)、图片内估计器(440)、运动估计器(450)、滤波控件(460)以及帧内/帧间切换)以设置和改变编码期间的编码参数。例如,在编码期间,通用编码控件(420)可管理关于MV精度、启用还是禁用SAO滤波以及要将哪些参考图片保留在RPS中的决定,通用编码控件(420)还可以估计编码期间的中间结果,例如执行速率-失真分析来估计。通用编码控件(420)产生指示在编码期间所做出的决定的通用控制数据(422),使得对应的解码器可以作出一致的决定。通用控制数据(422)被提供给头部格式化器/熵编码器(490)。
如果使用图片间预测来预测当前的图片,运动估计器(450)相对于一个或多个参考图片估计输入视频信号(405)的当前图片的采样值的块的运动。经解码的图片缓冲器(470)缓冲一个或多个经重构的先前编码的图片以供用作参考图片。当使用多个参考图片时,这多个参考图片可以来自不同的时间方向或相同的时间方向。
与通用编码控件(420)和块散列字典(451)一起工作,运动估计器(450)可使用本文中描述的方法来选择MV精度(例如,整数样本MV精度、1/2样本MV精度或1/4样本MV精度),随后在运动估计期间使用所选的MV精度。对于运动估计期间的基于散列的块匹配,运动估计器(450)可使用块散列字典(451)来寻找当前块的MV值。块散列字典(451)是为基于散列的块匹配组织候选块的数据结构。块散列字典(451)是散列表的示例。在图4b中,块散列字典(451)是基于输入样本值来构建的。替换地,块散列字典可基于重构的样本值来构建并在编码器期间被更新,以存储关于新的候选块(如变得可用于供在基于散列的块匹配时使用的那些候选块)的信息。
运动估计器(450)产生诸如MV数据、合并模式索引值和参考图片选择数据之类的辅助信息运动数据(452)以及所选的MV精度。这些被提供给头部格式化器/熵编码器(490)以及运动补偿器(455)。
运动补偿器(455)将MV应用于来自DPB(470)的(诸)经重构的参考图片。运动补偿器(455)产生针对当前图片的经运动补偿的预测。
在编码器(400)内的分开的路径中,图片内估计器(440)确定如何执行对输入视频信号(405)的当前图片的样本值块的图片内预测。当前图片可全部或部分使用图片内编码来编码。对于空间内预测,使用当前图片的重构(438)的值,图片内估计器(440)确定如何从当前图片的邻近的、先前重构的样本值中空间地预测当前图片的当前块的样本值。图片内估计器(440)可确定要对当前块使用的空间预测的方向。
或者,对于使用BV/MV值的帧内BC预测,图片内估计器(440)或运动估计器(450)估计当前块的样本值相对于作为参考图片的当前图片内的不同候选参考区域的位移。对于基于散列的块匹配,图片内估计器(440)或运动估计器(450)可使用块散列字典(未示出)来寻找当前块的BV/MV值。或者,对于图片内字典编码模式,块中的像素是使用存储在字典或其他位置的先前的样本值来编码的,其中一像素是位于同处的各样本值的集合(例如,RGB三元组或YUV三元组)。
图片内估计器(440)产生诸如模式信息、(针对帧内空间预测的)预测模式方向和(针对字典模式的)偏移和长度等作为辅助信息帧内预测数据(442)。帧内预测数据(442)被提供给头部格式化器/熵编码器(490)以及图片内预测器(445)。
根据帧内预测数据(442),图片内预测器(445)从当前图片的邻近的先前重构的采样值中在空间上预测当前图片的当前块的采样值。或者,对于帧内BC预测,图片内预测器(445)或运动补偿器(455)使用图片内预测参考区域的先前重构的样本值来预测当前块的样本值,图片内预测参考区域由针对当前块的BV/MC值指示。或者,对于图片内字典模式,图片内预测器(445)使用偏移和长度重构各像素。
帧内/帧间切换选择对给定块的预测(458)将是经运动补偿的预测还是图片内预测。
对于非跳跃模式块,预测(458)的块和输入视频信号(405)的原始当前图片的对应部分之间的差异(如果有的话)提供残留值(418)的值。在当前图片的重构期间,对于非跳跃模式块,经重构的残留值与预测(458)组合来从视频信号(405)中产生对原始内容的近似或精确的重构(438)。(在有损压缩中,一些信息从视频信号(405)中丢失。)
在变换器/缩放器/量化器(430)中,频率变换器将空间域视频信息转换为频域(即频谱、变换)数据。对于基于块的视频编码,频率变换器将离散余弦变换(“DCT”)、其整数近似、或其它类型的前向块变换(例如离散正弦变换或其整数近似)应用于预测残留数据的块(如果预测(458)为空则应用于采样值数据),产生频率变换系数的块。变换器/缩放器/量化器(430)可以应用具有可变块尺寸的变换。在一些情况下,编码器(400)还可跳过变换步骤。
缩放器/量化器对变换系数进行缩放和量化。例如,量化器将以逐图片基础、逐小块基础、逐片基础、逐块基础、频率专用基础或其它基础来变化的量化步进尺寸将死区标量量化应用于频域数据。经量化的变换系数数据(432)被提供给头部格式化器/熵编码器(490)。
在缩放器/逆变换器(435)中,缩放器/逆量化器对经量化的变换系数执行逆缩放和逆量化。当变换阶段没有被跳过时,逆频率变换器执行逆频率变换,生成经重构的预测残留值或采样值的块。对于非跳跃模式块,编码器(400)将经重构的残留值与预测(458)的值(例如,经运动补偿的预测值、图片内预测值)组合以形成重构(438)。对于跳跃模式块或字典模式块,编码器(400)使用预测(458)的值作为重构(438)。
对于空间图片内预测,重构(438)的值可以被馈送回图片内估计器(440)和图片内预测器(445)。对于帧内BC预测,重构(438)的值可被类似地馈送回以提供经重构的样本值。同样,重构(438)的值可以被用于对后续图片的经运动补偿的预测。
重构(438)的值可被进一步滤波。对于视频信号(405)的给定图片,滤波控件(460)确定如何对重构(438)的值执行去块滤波和SAO滤波。使用通用编码控件(420)和块散列字典(451),滤波控件(460)可作出关于启用还是禁用SAO滤波的决定,如以下所解释的。滤波控件(460)生成滤波控制数据(462),它被提供给头部格式化器/熵编码器(490)和合并器/(诸)滤波器(465)。
在合并器/(诸)滤波器(465)中,编码器(400)将来自不同小块的内容合并到图片的经重构版本中。编码器(400)根据滤波器控制数据(462)选择性地执行去块滤波和/或SAO滤波。替换地或另外地,可应用其它滤波(例如去振铃滤波或ALF)。取决于编码器(400)的设置,小块边界可以被选择性地滤波或根本不被滤波,并且编码器(400)可以在经编码的位流内提供指示是否应用这样的滤波的句法。
DPB(470)缓冲经重构的当前图片以供在后续的经运动补偿的预测中使用。具体地,RPS中的参考图片可被缓冲在DPB(470)中。然而,DPB(470)具有有限的存储器空间。如果将经重构的当前图片保留在DPB(470)中以供用作参考图片,则可将另一图片从DPB(470)中移除(并将其从RPS中丢弃)。通用编码控件(420)决定要将哪些图片保留在RPS中并缓冲在DPB(470)中。使用块散列字典(451),通用编码控件(420)可作出关于要将哪些参考图片保留在RPS中的决定,如以下所解释的。
头部格式化器/熵编码器(490)对通用控制数据(422)、经量化的变换系数数据(432)、帧内预测数据(442)、运动数据(452)以及滤波器控制数据(462)进行格式化和/或熵编码。对于运动数据(452),头部格式化器/熵编码器(490)可以选择并熵编码合并模式索引值,或可使用默认的MV预测器。在一些情况中,头部格式化器/熵编码器(490)还确定针对MV值(相对于MV预测值)的MV差分,随后例如使用上下文自适应二进制算术编码对MV差分进行熵编码。
头部格式化器/熵编码器(490)在经编码的视频位流(495)中提供经编码的数据。经编码的视频比特流的格式(495)可以是H.265/HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的变型或扩展。
取决于期望的实现和压缩类型,编码器(400)的模块可被添加、省略、分成多个模块、与其它模块组合、和/或用相似的模块来替代。在替换实施例中,具有不同模块和/或其它配置的模块的编码器执行一个或多个所描述的技术。编码器的具体实施例通常使用编码器(400)的变型或补充版本。所示的编码器(400)内的各模块之间的关系指示了信息在编码器中的一般流动;为简明起见,未示出其它关系。
V.视频的类型。
本文中描述的用于选择MV精度、选择性地禁用SAO滤波并确定要将哪像参考图片保留在RPS中的方法可在对任何类型的视频进行编码时被应用。然而,具体地,这些方法可在对某个人工创建的视频内容(诸如屏幕捕捉内容)进行编码时改善性能。
一般来说,屏幕捕捉视频表示计算机屏幕或其他显示器的输出。图5示出具有可为屏幕捕捉提供输入的内容的计算机桌面环境(510)。例如,屏幕捕捉内容的视频可表示整个计算机桌面(511)的一系列图像。或者,屏幕捕捉内容的视频可表示针对计算机桌面环境的窗口之一的一系列图像,窗口为诸如包括游戏内容的应用窗口(513)、具有网页内容的浏览器窗口(512)或具有文字处理器内容的窗口(514)。
作为计算机生成的、人工创建的视频内容,屏幕捕捉内容往往具有与使用摄像机捕捉的自然视频内容相比相对较少的离散样本值。例如,屏幕捕捉内容的区域通常包括单个统一色彩,而自然视频内容中的区域更可能包括逐渐变化的色彩。同样,屏幕捕捉内容通常包括不同的结构(例如,图形、文本字符),这些不同的结构精确地逐帧重复,即使该内容可能在空间上被移位(例如,由于滚动)。屏幕捕捉内容通常是用具有高色度采样分辨率的格式(例如YUV 4:4:4或RGB 4:4:4)来编码的,但是它也可以用具有较低色度采样分辨率的格式(例如YUV 4:2:0、YUV 4:2:2)来编码。
图6示出包括自然视频内容(621)和人工创建的视频内容的复合视频(620)。人工创建的视频内容包括自然视频内容(621)旁边的图形(622)以及在自然视频内容(621)下面运行的贴标(623)。与图5中示出的屏幕捕捉内容类似,图6中示出的人工创建的视频内容往往具有相对较少的离散样本值。它往往还具有精确地逐帧重复或逐帧逐渐偏移(例如,由于滚动)的不同的结构(例如,图形、文本字符)。
VI.基于散列的块匹配的示例。
在本文中描述的各创新中,视频编码器当在编码期间作出关于参数的决定时使用基于散列的块匹配的结果。本章节描述基于散列的块匹配的各示例。
基于散列的块匹配。
在编码器使用基于散列的块匹配时,该编码器为一个或多个参考图片的多个候选块中的每一者确定散列值。散列表存储这些候选块的散列值。编码器还通过相同散列方法来确定当前块的散列值,并接着搜索散列表寻找匹配散列值。如果两个块相同,它们的散列值相同。使用散列值,编码器可快速且高效地标识具有与当前块相同的散列值的候选块,并过滤出具有不同散列值的候选块。取决于实现和基于散列的块匹配的目标,编码器可随后进一步评估与当前块具有相同散列值的那些候选块。(不同块可具有相同的散列值。因此,编码器可进一步在具有相同散列值的各候选块之中标识出匹配当前块的候选块。)
在一些示例实现中,针对候选块的散列值是从针对包括候选块的图片(参考图片)的输入样本值中确定的。在基于散列的块匹配期间,编码器使用输入的样本值为当前块确定块散列值。编码器将其(或以其他方式使用散列值)与从候选块的输入的样本值中确定的散列值进行比较。即便如此,来自匹配块的经重构的样本值被用于代表当前块。因此,预测操作仍使用经重构的样本值。
替换地,在基于散列的块匹配中考虑的候选块包括经重构的样本值。即,候选块是图片中先前编码接着重构内容的部分。候选块的散列值从重构的样本值中确定。在基于散列的块匹配期间,编码器使用输入的样本值为当前块确定块散列值。编码器将其(或以其他方式使用散列值)与从候选块的重构的样本值中确定的散列值进行比较。
图7示出了在基于散列的块匹配中用于候选块B(x,y)的散列值(700),其中x和y分别指示给定候选块的左上位置的水平和垂直坐标。候选块具有使用散列函数h()确定的散列值。对于参考图片中的候选块B(x,y),编码器从针对参考图片的输入样本值中确定针对该候选块的散列值h(B)。编码器可为参考图片中的所有候选块确定散列值。或者,编码器可筛选出一些候选块。
一般而言,散列函数h()得到n个可能散列值,指定为h0到hn-1。对于给定散列值,具有那个散列值的候选块聚成组。例如,在图7中,候选块B(1266,263)、B(1357,365)、B(1429,401),B(502,464)…具有散列值h0。各组可包括不同数量的候选块。例如,在图7中,散列值h4的组包括单个候选块,而散列值h0的组包括4个以上候选块。
以此方式,可能的候选块被分发到n个分类。例如,如果散列函数h()产生12比特散列值,则候选块被拆分成212=4,096个类别。每散列值的候选块数可通过消除具有那个散列值的冗余的、相同的块或者通过筛选出具有某些样本值图案的候选块被进一步降低。同样,编码器可使用不同的散列函数迭代地过滤减少候选块的数量。
用于基于散列的块匹配的散列函数取决于实现。散列函数可产生具有8比特、12比特、16比特、24比特、32比特或其它数量的比特的散列值。如果散列值具有更少比特,则数据结构包括更少分类,但是每个分类可包括更多候选块。换言之,使用具有更多比特的散列值有助于增加组织候选块的数据结构的尺寸。如果散列值具有更多比特,则数据结构包括更多分类,但是每个分类可包括更少候选块。散列函数h()可以是密码散列函数、密码散列函数的一部分、循环冗余校验(“CRC”)函数、CRC的一部分、或另一散列函数(例如,使用求平均和XOR操作来确定候选块或当前块的签名)。某些类型的散列函数(例如,CRC函数)将类似块映射到不同散列值,其在搜索精确对应于当前块的匹配块时可能是高效的。其他类型的散列函数(例如,位置敏感的散列函数)将相似的块映射到相同的散列值。
在基于散列的块匹配期间,使用散列函数h(),编码器为当前块B当前确定散列值。在图7中,散列值h(B当前)是h3。使用当前块的散列值,编码器可标识具有相同散列值的候选块(图7中的轮廓框所示),并过滤出其它候选块。当散列函数将类似块映射到不同散列值时,被标识的候选块(与当前块相同的散列值)包括可能与当前块相同的块。当散列函数将类似块映射到相同散列值时,被标识的候选块(与当前块相同的散列值)包括可能与当前块相同的或可能非常接近当前块的块。不管怎样,从这些标识出的候选块中,编码器还可(例如,使用逐样本的块匹配操作、使用第二散列函数)标识出当前块的匹配块。
总体地,由于散列值比较与逐样本的块匹配相比要简单得多,因此基于散列的块匹配可使得评估(诸)参考图片中的候选块的过程变得高效得多。同样,在编码期间,候选块的散列值可在针对图片内的不同块的基于散列的块匹配中重新使用。在该情况下,计算针对这些候选块的散列值的成本可跨针对整个图片、针对使用相同的参考图片的其他图片以及针对使用这些散列值的其他编码器侧决定的基于散列的块匹配操作被分摊。
B.用于基于散列的块匹配的数据结构。
在某些示例实现中,编码器使用根据它们的散列值组织候选块的数据结构。数据结构可帮助使得基于散列的块匹配更加计算高效。数据结构实现,例如,如在此描述的块散列字典或散列表。
图8a示出为基于散列的块匹配组织候选块的示例数据结构(800)。对于散列函数h(),n个可能散列值为h0到hn-1。具有相同散列值的候选块在同一候选块列表中分类。给定候选块列表可包括零个或更多条目。例如,散列值h2的候选块列表没有条目,散列值h6的列表具有两个条目,以及散列值h1的列表具有四个以上的条目。
条目(hi,k)包括具有散列值hi的第k个候选块的信息。如图8b所示,候选块列表中的条目可包括块B(x,y)的地址(例如,该块的左上角位置的水平和垂直坐标)。或者,如图8c中所示,候选块列表中的条目可包括块B(x,y)的地址以及来自第二散列函数的散列值,其可用于进行迭代的基于散列的块匹配。
在针对当前块的基于散列的块匹配期间,编码器确定当前块的散列值h(B当前)。编码器保留具有相同散列值的候选块列表并排除其它n-1个列表。为选择匹配块,编码器可将当前块与保留的候选块列表中的候选块(如果有)进行比较。因此,通过使用散列值h(B当前)的简单的查找操作,编码器可消除候选块的(n-1)/n(平均),并聚焦于保留的列表中余下的1/n候选块(平均),显著减少了样本级块匹配操作的数量。
不同的数据结构可被用于不同的参考图片。替换地,数据结构中针对候选块的条目存储指示包括该候选块的参考图片的信息,该信息可在基于散列的块匹配中被使用。
同样,不同的数据结构可被用于不同尺寸的块。例如,一个数据结构包括8×8个候选块的散列值、第二数据结构包括16×16个候选块的散列值、第三数据结构包括32×32个候选块的散列值,以此类推。在基于散列的块匹配期间使用的数据结构取决于当前块的尺寸。可替换地,单个、统一的数据结构可被用于不同尺寸的块。散列函数可产生一个n比特散列值,其中n比特散列值的m比特根据一个m比特散列函数指示给定块尺寸的可能的块中的散列值,而余下的n比特散列值的n-m比特指示给定块尺寸。例如,14比特散列函数的前两个比特可指示块尺寸,而余下的12比特根据12比特的散列函数指示散列值。或者,散列函数可产生m比特散列值而不考虑块尺寸,且数据结构中的候选块的条目存储指示候选块的块尺寸的信息,其可被用于基于散列的块匹配中。
对于高分辨率图片,数据结构可存储代表很大数量的候选块的信息。为了减少用于数据结构的存储器的量,编码器可去除冗余值。例如,编码器可跳过将相同的块添加到该数据结构。一般而言,通过去除相同块来减少数据结构的尺寸可伤及编码效率。因此,通过决定是否去除相同块,编码器可折衷数据结构的存储器尺寸和编码效率。编码器还可取决于这些块的内容来筛选出候选块。
C.迭代的基于散列的块匹配。
当编码器使用具有n个可能散列值的单个散列函数时,该编码器可基于当前块的散列值来排除候选块的n-1个列表,但编码器可能还需要针对余下的候选块(如果有)执行样本级块匹配操作以查找具有匹配散列值的列表。同样,当更新组织候选块的数据结构时,编码器可能需要执行样本级块匹配操作来标识相同的块。总体而言,这些样本级块匹配操作可以是计算密集的。
因此,在某些示例实现中,编码器使用迭代的基于散列的块匹配。迭代的基于散列的块匹配可加速块匹配过程,并且还可以加速更新组织候选块的数据结构的过程。
迭代的基于散列的块匹配使用以不同散列函数确定的多个散列值。对于块B(当前块或候选块),除了散列值h(B),编码器使用不同散列函数h'()确定另一个散列值h'(B)。使用当前块的第一散列值h(B当前),编码器为第一散列函数h()标识具有相同散列值的候选块。为进一步排除这些被标识的候选块的一些,编码器使用当前块的使用不同散列函数确定的第二散列值h'(B当前)。编码器将第二散列值h'(B当前)与先前标识的候选块的第二散列值(其具有相同第一散列值)进行比较,以过滤出更多候选块。散列表根据不同散列函数跟踪候选块的散列值。
在图8a的示例中,如果h(B当前)=h3,那么编码器选择具有条目(3,0)、条目(3,1)、条目(3,2)、条目(3,3),…的候选块用于进一步细化。如图8c中所示,对于候选块B,条目包括块地址和来自散列函数h'()的第二散列值h'(B)。编码器将当前块的第二散列值h'(B当前)与具有条目(3,0)、条目(3,1)、条目(3,2)、条目(3,3),…的各候选块的第二散列值h'(B)进行比较。基于第二散列值比较的结果,编码器可排除更多候选块,留下具有分别匹配h(B当前)和h'(B当前)的第一和第二散列值的候选块(如果有)。编码器可在任何余下的候选块上执行样本级块匹配以选择匹配块。
图9a-9c示出使用不同数据结构的迭代的基于散列的块匹配的另一示例。图9a中的数据结构(900)依据来自第一散列函数h()(其具有n1个可能散列值)的第一散列值来组织候选块。数据结构(900)包括从h0…hn1-1的散列值的列表。在该示例中,编码器为当前块确定第一散列值h(B当前)=h2,并从结构(900)选择h2的列表。
如图9b所示,h2的列表(910)包括进一步依据来自第二散列函数h'()(其可能具有n2个可能散列值)的第二散列值来组织余下的候选块的多个列表。列表(910)包括从h'0…h'n2-1的散列值的列表,每个列表包括具有块地址的条目(例如,各候选块的左上角位置的水平和垂直坐标),如图9c中的条目(920)所示。在该示例中,编码器为当前块确定第二散列值h'(B当前)=h'0,并从列表(910)选择h'0的列表。对于h'0的列表中的候选块,编码器可执行样本级块匹配以选择匹配块。在此示例中,第二散列值的列表对于第一散列值的给定列表是专用的。替换地,有针对第二散列值的一组列表,且编码器标识(1)在第一散列值的匹配列表中的且还(2)在第二散列值的匹配列表中的任何候选块。
除了基于散列的块匹配之外,第二散列函数h'()可被用于简化更新组织候选块的数据结构的过程。例如,当编码器检查新候选块是否与已经表示在数据结构中的候选块相同时,编码器可使用具有不同散列函数的多个散列值来过滤出不相同的块。对于余下的候选块,编码器可执行样本级块匹配以标识任何相同块。
在前面的示例中,迭代基于散列的块匹配以及更新使用两个不同散列函数。替换地,编码器使用三个、四个或更多个散列函数以进一步加速基于散列的块匹配或过滤出不相同的块,并且因此减少样本级块匹配操作的数量。同样,对于低复杂度的编码器或对于较快的决定作出过程,在散列值匹配时,编码器可跳过逐样本的块匹配操作。对于具有大量可能散列值的散列函数,如果两个块的散列值匹配,则存在很高的可能性这两个块是相同的。具体地,在以下描述的编码器侧决定的一些示例实现中,编码器将散列值是否匹配作为基于散列的块匹配的结果来考虑,但不执行任何逐样本的块匹配操作。
VII.MV精度的选择。
本章节呈现取决于基于散列的块匹配的结果(例如,匹配散列值)来在编码期间选择运动矢量(“MV”)精度的各方法。通过在编码期间选择合适的MV精度,这些方法可促成在编码和解码的速率-失真性能和/或计算效率方面有效的压缩。
不同的MV精度。
在对人工创建的视频内容进行编码时,MV值通常表示整数样本空间位移,并且非常少的MV值表示分数样本空间位移。这提供了降低MV精度以改善整体性能的机会。
图10a示出利用具有整数样本空间位移的MV(1020)的运动补偿。MV(1020)指示相对于针对当前块的参考图片中的共置位置(1010)向左四个样本且向上一个样本的空间位移。例如,对于在当前图片中的位置(64、96)处的4x4当前块,MV(1020)指示其位置为参考图片中的(60,95)的4x4预测区域(1030)。预测区域(1030)包括在参考图片中的整数样本位置处的经重构的样本值。编码器或解码器不需要执行插值来确定预测区域(1030)的值。
图10b示出利用具有分数样本空间位移的MV(1021)的运动补偿。MV(1021)指示相对于针对当前块的参考图片中的共置位置(1010)向左3.75个样本且向上0.5个样本的空间位移。例如,对于在当前图片中的位置(64、96)处的4x4当前块,MV(1021)指示其位置为参考图片中的(60.25,95.5)的4x4预测区域(1031)。预测区域(1031)包括在参考图片中的分数样本位置处的经插值的样本值。编码器或解码器执行插值来确定预测区域(1031)的样本值。当分数样本空间位移被允许时,存在可匹配当前块的更多的候选预测区域,并且由此至少对于一些类型的视频内容(例如,自然视频内容)来说运动补偿的预测的质量通常改善了。
B.MV值的表示。
MV值通常是使用其含义取决于MV精度的整数值来表示的。对于整数样本MV精度,例如,整数值1指示1个样本的空间位移,整数值2指示2个样本的空间位移并以此类推。对于1/4样本MV精度,整数值1指示0.25个样本的空间位移。整数值2、3、4和5分别指示0.5、0.75、1.0和1.25个样本的空间位移。不管MV精度为何,整数值均可指示空间位移的幅度,并且分开的标志值可指示该位移是负的还是正的。给定MV值的水平MV分量和垂直MV分量可使用两个整数值来表示。由此,表示MV值的两个整数值的含义取决于MV精度。例如,对于具有2样本水平位移和没有垂直位移的MV值,如果MV精度为1/4样本MV精度,则MV值被表示为(8,0)。然而,如果MV精度为整数样本MV精度,则该MV值被表示为(2,0)。
经编码的视频数据的比特流中的MV值通常(例如,在逐MV分量的基础上)被熵编码。MV值还可(例如,在逐MV分量的基础上)相对于预测的MV值被差分编码。在许多情况下,MV值等于预测的MV值,使得差分MV值为零,其可被非常高效地编码。可使用指数-Golomb编码、上下文自适应二进制算法编码或另一形式的熵编码来对差分MV值(或者在MV预测没有被使用的情况下,为MV值)进行熵编码。虽然MV值(或差分MV值)和经编码的比特之间的确切关系取决于所使用的熵编码的形式,但一般来说,较小的值被较高效地编码(即,使用较少的比特),因为它们较常见,而较大的值被较不高效地编码(即,使用较多的比特),因为它们较不常见。
C.自适应MV精度—介绍。
为了概述前面的两个章节,使用具有整数样本MV精度的MV值往往会降低与信号化MV值相关联的比特率,并降低进行编码和解码的计算复杂度(通过避免对在参考图片中的分数样本位置处的样本值进行插值),但至少对于一些类型的视频内容而言可降低运动补偿的预测的质量。另一方面,使用具有分数样本MV精度的MV值往往会增加与信号化MV值相关联的比特率,并增加进行编码和解码的计算复杂度(通过包括对在参考图片中的分数样本位置处的样本值进行插值),但至少对于一些类型的视频内容而言可改善运动补偿的预测的质量。一般来说,计算复杂度、用于信号化MV值的比特率以及运动补偿的预测的质量随着MV精度的增加(例如,从整数样本到1/2样本、或者从1/2样本到1/4样本)而增加,直到收益递减。
在对人工创建的视频内容进行编码时,分数样本MV精度(在比特率和计算复杂度方面)的增加的成本可能被证明是不正确的。例如,如果大多数MV值表示整数样本空间位移,且非常少的MV值表示分数样本空间位移,则分数样本MV精度的增加的成本是不值得的。编码器可在运动估计期间跳过在分数样本位置处进行搜索(以及用于确定这些位置处的样本值的插值操作)。对于这样的内容,可通过使用具有整数样本MV精度的MV值来降低比特率和计算复杂性,而没有对运动补偿的预测的质量的显著惩罚。
由于分数样本MV精度仍可对其他类型的视频内容(例如,通过相机捕捉的自然视频)有用,因此编码器和解码器可被适配成在各MV精度之间进行切换。例如,编码器和解码器可将整数样本MV精度用于人工创建的视频内容,但将分数样本MV精度(诸如,1/4样本MV精度)用于自然视频内容。在下一章节中描述了编码器在选择MV精度时可遵循的方法。编码器可使用比特流中的一个或多个句法元素来向解码器信号化所选的MV精度。
在用于信号化MV精度的一个方法中,在对MV精度的自适应选择被启用时,编码器在逐片的基础上选择MV精度。序列参数集合(“SPS”)、图片参数集合(“PPS”)或其他句法结构中的标志值指示对MV精度的自适应选择是否被启用。如果如此,则给定片的片头部中的一个或多个句法元素指示为那个片中的各块所选择的MV精度。例如,标志值0指示1/4样本MV精度,且标志值1指示整数样本MV精度。
在用于信号化MV精度的另一方法中,编码器在逐图片的基础上或在逐片的基础上选择MV精度。PPS中的句法元素指示以下三个MV精度模式之一:(0)针对与PPS相关联的图片的(诸)片的MV值的1/4样本MV精度,(1)针对与PPS相关联的图片的(诸)片的MV值的整数样本MV精度,或(2)取决于每个片头部被信号化的标志值的片自适应MV精度,其中该片头部中的标志值可为该片的MV值指示1/4样本MV精度或整数样本MV精度。
在用于信号化MV精度的又一方法中,在对MV精度的自适应选择被启用时,编码器在逐CU的基础上选择MV精度。在针对给定CU的结构中的一个或多个句法元素指示为那个CU的各块选择的MV精度。例如,在针对CU的CU句法结构中的标志值指示针对与该CU相关联的所有PU的MV值具有整数样本MV精度还是1/4样本MV精度。
在这些方法中的任一者中,编码器和解码器可针对水平和垂直MV分量使用不同的MV精度。在对已被水平地或垂直地缩放的人工创建的视频内容进行编码时,这可能是有用的(例如在未经缩放的维度中使用整数样本MV精度,并且在经缩放的维度中使用分数样本MV精度)。在一些示例实现中,如果比特率控制无法单独通过调整QP值来实现,则编码器可在水平上或垂直上重设视频的尺寸,以降低比特率,并随后对经重设尺寸的视频进行编码。在解码器侧,在进行解码之后将该视频缩放回到其原始大小。编码器可向解码器信号化各水平MV分量的MV精度并还信号化各垂直MV分量的MV精度。
更一般地,当对MV精度的自适应选择被启用时,编码器选择MV精度并按某种方式信号化所选的MV精度。例如,SPS、PPS或其他句法结构中的标志值可指示对MV精度的自适应选择是否被启用。当自适应MV精度被启用时,在序列层句法、GOP层句法、图片层句法、片层句法、小块层句法、块层句法或另一句法结构中的一个或多个句法元素可指示为MV值的水平和垂直分量选择的MV精度。或者,在序列层句法、GOP层句法、图片层句法、片头部层句法、片数据层句法、小块层句法、块层句法或另一句法结构中的一个或多个句法元素可指示针对不同MV分量的MV精度。当存在两个可用MV精度时,标志值可指示在这两个MV精度之间的选择。在存在更多可用MV精度的情况下,整数值可指示在这些MV精度之间的选择。
除了对信号化/解析指示(诸)所选的MV精度的句法元素的修改外,解码可被修改为取决于所选的MV精度而改变如何解释经信号化的MV值。MV值如何被编码和重构的细节可取决于MV精度而改变。例如,当MV精度为整数样本精度时,预测的MV值可被四舍五入到最接近的整数,并且差分MV值可指示整数样本偏移。或者,当MV精度为1/4样本精度时,预测的MV值可被四舍五入到最接近的1/4样本偏移,并且差分MV值可指示1/4样本偏移。或者,可按某一其他方式来信号化MV值。当MV值具有整数样本MV精度,且视频使用4:2:2或4:2:0色度采样时,色度MV值可通过可导致针对色度的1/2样本移位的缩放等推导出。或者,色度MV值可被四舍五入成整数值。
替换地,编码器不改变如何预测MV值或者如何将MV差异信号化在比特流中,并且解码器也不改变如何预测MV值或者如何重构MV差异,但对经重构的MV值的解释却取决于所选的MV精度而改变。如果所选的MV精度是整数样本精度,则重构的MV值在(以四分之一样本精度操作的)运动补偿过程中被使用之前被缩放四分之一。如果所选的MV精度为四分之一样本精度,则重构的MV值在运动补偿过程中被使用之前不被缩放。
D.使用基于散列的块匹配的结果来选择MV精度。
当MV精度在视频编码期间可被适配时,编码器选择针对视频单元的MV精度(例如,针对该单元的各MV值的一个或两个分量的MV精度)。编码器可取决于基于散列的块匹配的结果(例如,匹配散列值)来选择要使用的MV精度。对MV精度的选择还可取决于其他因素,诸如块作为自然视频内容或人工创建的视频内容的分类。这些方法可提供计算高效的方式来选择合适的MV精度。
用于选择MV精度的示例技术。
图11示出用于取决于基于散列的块匹配的结果来选择MV精度的通用技术(1100)。技术(1100)可由如编码器(诸如以上参考图3或图4a和4b描述的编码器)或由另一编码器来执行。
编码器对视频进行编码(1110)以产生经编码的数据,随后在比特流中输出(1120)该经编码的数据。作为编码(1110)的一部分,编码器至少部分地根据基于散列的块匹配的结果来确定针对该视频的单元的MV精度。该MV精度可适用于MV值的一个或两个分量。基于散列的块匹配可使用在章节VI中描述的散列表或使用另一散列表。例如,如果该视频的该单元的至少阈值数目的块具有以基于散列的块匹配(根据匹配散列值,而不执行逐样本的块匹配)标识出的匹配块,则编码器选择整数样本MV精度。否则,编码器选择分数样本MV精度。
图12示出用于在编码期间适配MV精度的更具体的技术(1200),其中MV精度是取决于基于散列的块匹配的结果来选择的。技术(1200)可由编码器(诸如参考图3或图4a和4b描述的编码器)或由另一编码器来执行
根据技术(1200),在对视频进行编码期间,编码器从针对该视频的各单元的多个MV精度之中确定MV精度。具体地,在对视频单元进行编码时,编码器确定(1210)是否改变MV精度。在编码开始的时候,编码器最初可根据默认值来设置MV精度,或者前进就好像改变MV精度。对于稍后的视频单元,编码器可使用当前MV精度(其供一个或多个先前编码的单元使用)或改变MV精度。例如,编码器可决定在发生定义的事件之际(例如,在对阈值数目的单元进行编码之后、在场景改变之后、在确定视频类型已改变后)改变MV精度。
为了改变MV精度,编码器至少部分地根据基于散列的块匹配的结果来确定(1220)针对该视频单元的MV精度。例如,编码器将该单元拆分成多个块。对于多个块中的给定块,编码器确定散列值,随后确定在一个或多个参考图片的多个候选块之中是否存在针对该给定块的匹配。编码器可评估单个参考图片(例如,参考图片列表中的第一参考图片)或多个参考图片(例如,参考图片列表中的每一参考图片)。匹配可表示给定块和多个候选块之一之间的匹配散列值。(也就是说,仅散列值被检查。)或者,该匹配还可表示给定块和多个候选块之一之间逐样本的匹配。(也就是说,逐样本比较确认匹配。)仅考虑散列值较快,但可能较不可靠,因为来自非相同块的散列值可匹配。基于散列的块匹配可使用如章节VI中描述的散列表或使用另一散列表。如果该单元的至少阈值数目的块具有在基于散列的块匹配中标识出的匹配块,则编码器可选择整数样本MV精度。否则,编码器可选择分数样本MV精度(诸如四分之一样本MV精度)。
不管MV精度是否已改变,编码器都可使用所选的MV精度对该单元进行编码(1230)。在该视频的该单元内的各块(例如,预测单元、宏块或其他块)的MV值具有所选的MV精度。编码器在比特流中输出针对当前单元的经编码的数据。经编码的数据可包括指示所选的MV精度的句法元素。
编码器决定(1240)是否继续下一单元。如果如此,则编码器决定(1210)是否改变针对下一单元的MV精度。由此,MV精度可为每一单元选择。或者,为了降低复杂度,针对某单元的MV精度可有时(例如,周期性地,或在定义的事件发生之际)被改变,随后对一个或多个后续单元重复。
在图11和12的技术(1100、1200)中,该视频单元可以是序列、场景改变之间的图片系列、图片群组、图片、片、小块、CU、PU、其他块或其他类型的视频单元。取决于复杂度和灵活性之间的期望折衷,编码器可在高度本地化的基础上(例如,在逐CU的基础上)、在逐较大区域的基础上(例如在逐小块的基础上或逐片的基础上)、在整个图片的基础上或在较全局的基础上(例如,根据每编码会话、根据每序列、根据每GOP、或根据每检查到的场景改变之间的图片系列)来选择MV精度。
在图11和图12的技术(1100、1200)中,编码器在使用1/4样本MV精度和整数样本MV精度之间进行选择。更一般地,编码器在多个可用MV精度之间进行选择,多个可用MV精度可包括整数样本MV精度、1/2样本MV精度、1/4样本MV精度和/或另一MV精度。所选的MV精度可适用于该视频单元的各MV值的水平分量和/或垂直分量。
在图11和图12的技术(1100、1200)中,基于散列的块匹配使用从该单元的各输入样本值以及(对于候选块)针对一个或多个参考图片的输入样本值中确定的散列值。替换地,对于表示在散列表中的各候选块,基于散列的块匹配可使用从重构的样本值确定的散列值。
在图11和图12的技术(1100、1200)中,在确定针对视频单元的MV精度时,编码器还可考虑其他因素,诸如非匹配块是否包含大量的自然视频内容(相机捕捉的视频),如在下一章节中描述的。
对非匹配块进行分类。
本章节呈现将非匹配块分类成自然、相机捕捉的视频内容或人工创建的视频内容(诸如屏幕捕捉内容)的各种方式。在确定针对视频单元的MV精度时,基于散列的块匹配可能无法找到针对该单元中中的至少一些块的匹配块。对于该单元的各块之中的非匹配块,编码器可将该非匹配块分类为包含自然视频内容或人工创建的视频内容。通过提供将非匹配块中的自然视频内容与人工创建的视频内容进行区分的高可能性方式,编码器可选择更合适的MV精度。
图13示出了(描绘同一通用图案的)自然视频内容和屏幕捕捉内容的典型块的特性。自然视频内容的块(1310)包括逐渐改变的样本值和不规则的线。相反,人工创建的视频内容的块(1320)包括统一样本值的更清晰的线和图案。同样,不同色彩值的数目在自然视频内容的块(1310)和屏幕捕捉内容的块(1320)之间改变。屏幕捕捉内容的块(1320)包括三种色彩,而自然视频内容的块(1310)包括更多的不同色彩。
图14示出用于取决于对视频块中的不同色彩的数目的测量来对该块进行分类的技术(1400)。技术(1400)可由编码器(诸如参考图3或图4a和4b描述的编码器)或由另一编码器来执行。
开始,编码器测量(1410)非匹配块中不同色彩的数目。例如,编码器对该块中的各样本值之中的不同色彩进行计数。或者,编码器在将该块中的样本值聚类成更少的色彩(例如,对这些样本值进行量化,使得相似的样本值变成相同的样本值)后,对这些样本值之中的不同色彩进行计数。或者,编码器用某一其他方式测量该块中不同色彩的数目。样本值可被组织成直方图或按某种其他方式来组织。
编码器测量块中不同色彩的数目的方式取决于所使用的色彩空间。如果色彩空间例如为YUV(例如,YCbCr,YCoCg),则编码器可对视频单元中的不同Y值进行计数。或者,编码器可对不同的YUV三元组(即,针对各位置处的像素的Y、U和V样本值的不同组合)进行计数。如果色彩空间为RGB(或GBR或BGR),则编码器可对一个色彩分量或多个色彩分量中的样本值进行计数。或者,编码器可对不同的三元组(即,针对各位置处的像素的R、G和B样本值的不同组合)进行计数。
随后,编码器将非匹配块中不同色彩的数目与阈值计数进行比较(1420)。阈值计数的值取决于实现,并且可为例如5、8、10、20或50。该阈值计数对于所有的单元尺寸而言是相同的(例如,不理会块尺寸)。或者,该阈值计数对于不同的单元尺寸(例如,不同的块尺寸)而言可以是不同的。该阈值可以是预定义和静态的,或者该阈值可以是可调整的(可调谐的)。在任何情况下,非匹配块中存在小数目的离散样本值往往指示屏幕捕捉内容,而非匹配块中存在大数目的离散样本值往往指示自然视频内容。
如果不同色彩的数目大于该阈值,则编码器将该块分类(1440)成自然视频内容。如果不同色彩的数目小于该阈值,则编码器将该块分类(1430)成人工创建的视频内容。边界条件(计数等于阈值)可使用任一选项来处理,这取决于实现。编码器在逐块的基础上对单元的非匹配块重复技术(1400)。在一些示例实现中,当该单元中有多于定义比例的非匹配块被分类成自然视频内容,则编码器选择分数样本MV精度,因为整数样本MV精度主要在对人工创建的视频内容进行编码时有用。
替换地,编码器否则考虑来自非匹配块的收集的样本值的统计。例如,编码器确定x个最常用的收集的样本值是否占这些样本值的y%以上。x和y的值取决于实现。x的值可以为10或某个其他计数。y的值可以为80、90或小于100的某个其他比例。如果x个最常用的样本值占该块中的样本值的y%以上,则该块被分类成包含人工创建的视频内容。否则,该块被分类成包含自然视频内容。
示例决定作出过程。
图15示出用于取决于基于散列的块匹配的结果并进一步取决于非匹配块的分类来选择MV精度的示例技术(1500)。技术(1500)可由编码器(诸如参考图3或图4a和4b描述的编码器)或由另一编码器来执行。
编码器将视频单元拆分(1510)成T个块。例如,该T个块为非重叠的MxN个块。在一些实现中,该MxN个块为8x8个块。替换地,该MxN个块具有另一尺寸。
编码器将T与块计数阈值进行比较(1520)。在示例实现中,块计数阈值为10。替换地,块计数阈值具有另一值。块计数阈值可以是预定义且静态的,或者块计数阈值可以是可调整的(可调谐的)。块计数阈值确保编码器在为该单元选择MV精度时考虑足够数目的块。如果T小于块计数阈值,则编码器为该单元选择(1580)四分之一样本MV精度。边界条件(T等于块计数阈值)可使用该选项或其他选项来处理,这取决于实现。
如果T大于块计数阈值,则编码器执行(1530)针对该单元的T个块的基于散列的块匹配。对于该T个块中的每一者,编码器计算散列值,并查明参考图片中是否存在具有相同散列值的候选块。编码器用基于散列的块匹配(根据匹配散列值)在该单元的T个块中寻找具有匹配块的M个块。该留下T–M个非匹配块。
编码器将比例M/T与匹配块阈值进行比较(1540)。在示例实现中,匹配块阈值为25%。替换地,匹配块阈值具有另一值。匹配块阈值可以是预定义且静态的,或者匹配块阈值可以是可调整的(可调谐的)。匹配块阈值确保在选择针对该单元的MV精度时已经找到了足够数目的匹配块。如果M/T小于匹配块阈值,则编码器为该单元选择(1580)四分之一样本MV精度。边界条件(M/T等于匹配块阈值)可使用该选项或其他选项来处理,这取决于实现。替换地,取代使用M/T,编码器将涉及匹配块的数目的某一其他测量与阈值进行比较。
如果M/T大于匹配块阈值,则编码器取决于块中的色彩值的直方图(不同色彩的数目)将T–M个非匹配块中的每一者分类成两个类别之一。这两个类别为(1)针对更可能包含相机捕捉的视频内容的块的自然视频内容,以及(2)针对更可能包含屏幕捕捉内容的块的人工创建的视频内容。在单元的T–M个非匹配块中,编码器找出被分类成自然视频内容的C个块以及被分类成人工创建的视频内容的S个块。T=M+C+S。
例如,对于给定非匹配块,编码器对包含在该块中的不同色彩的数目进行计数。在对不同色彩的数目进行计数时,编码器可对单个色彩分量(例如,亮度G)进行计数或对所有色彩分量(例如,亮度和色度;R、G和B)进行计数。编码器将计数与色彩阈值进行比较,色彩阈值的值取决于实现。在示例实现中,对于8x8块,色彩阈值为8。替换地,色彩阈值具有另一值。色彩阈值可对所有尺寸的块相同。或者,色彩阈值可对不同的块尺寸不同。色彩阈值可以是预定义且静态的,或该色彩阈值可以是可调整的(可调谐的)。如果计数小于色彩阈值,则非匹配块被分类成人工创建的视频内容。如果计数大于色彩阈值,则非匹配块被分类成自然视频内容。边界条件(计数等于色彩阈值)可取决于实现使用任一选项来处理。
编码器将比例C/T与自然视频块阈值进行比较(1560)。在示例实现中,自然视频块阈值为3%。替换地,自然视频块阈值具有另一值。自然视频块阈值可以是预定义且静态的,或者自然视频块阈值可以是可调整的(可调谐的)。该自然视频块阈值确保在存在过多自然视频内容块的情况下,不选择整数样本MV精度。如果C/T大于自然视频块阈值,则编码器为该单元选择(1580)四分之一样本MV精度。如果C/T小于自然视频块阈值,则编码器为该单元选择(1570)整数样本MV精度。边界条件(C/T等于自然视频块阈值)可取决于实现使用任一选项来处理。替换地,取代使用C/T,编码器将与自然视频块的数目有关的某一其他测量与阈值进行比较。
由此,编码器基于以下中的一者或多者来选择MV精度:(a)多个块的数目与块阈值的比较,(b)多个块的具有来自基于散列的块匹配的测量与匹配块阈值的比较,以及(c)多个块中被分类成自然视频内容的测量与自然视频块阈值的比较。例如,在以下情况下,编码器选择整数样本MV精度:(a)多个块的数目大于块阈值,(b)多个块的具有来自基于散列的块匹配的匹配块的测量大于匹配块阈值,以及(c)多个块的被分类成自然视频内容的测量小于自然视频块阈值。否则,在这些条件(a)-(c)中的任一者不被满足时,编码器选择四分之一样本MV精度。如所述的,对边界条件的处理取决于实现。
替换和变型
当编码器逐图片地使用相同的小块模式时,编码器可逐图片地重复每小块的MV精度。逐图片位于共同位置的小块使用相同的MV精度。类似地,逐图片位于共同位置的片可使用相同的MV精度。例如,假设视频描绘计算机桌面,并且该桌面的一部分具有显示自然视频内容的窗口。可在桌面的该区域内逐图片地使用分数样本MV精度,而不管示出文本或其他渲染内容的区域是否是使用整数样本MV精度来编码的。
编码器可至少部分地基于整数样本MV精度为合适的置信程度来调整距离或相对该整数样本MV精度的偏移量。编码器还可至少部分地基于编码和/或解码的目标计算复杂度(支持整数样本MV精度以降低计算复杂度)来调整距离或相对该整数样本MV精度的偏移量。例如,编码器可调整比较操作中使用的阈值以使得整数样本MV精度更可能或更不可能被选择。
所选的MV精度可针对在视频的单元内的各块的MV值的水平MV分量和/或垂直MV分量,其中这些水平MV分量和垂直MV分量被准许具有不同的MV精度。或者,所选的MV精度可针对在视频的单元内的各块的MV值的水平MV分量和垂直MV分量两者,其中这些水平MV分量和垂直MV分量具有相同的MV精度。
在MV精度选择的大多数前述示例中,比特流中经编码的视频包括指示针对该单元的所选MV精度的一个或多个句法元素。解码器解析指示所选的MV精度的(诸)句法元素,并根据所选的MV精度来解释MV值。替换地,比特流中经编码的视频可缺少指示所选的MV精度的任何句法元素。例如,即使比特流支持对具有分数样本MV精度的MV值的信号化,编码器仍可包含对视频的单元的运动估计,以仅使用具有为零的分数部分的MV值,并且仅指示整数样本偏移的MV值被用在运动补偿中。解码器以分数样本MV精度重构并应用MV值(其中MV值指示整数样本偏移)。这可通过避免插值操作来降低编码的计算复杂度。
VIII.选择性地禁用SAO滤波。
本章节呈现取决于基于散列的块匹配的结果(例如,匹配散列值)来选择地禁用样本自适应偏移(“SAO”)滤波的各方法。通过在SAO滤波不可能有效时禁用SAO滤波,这些方法可促成在速率-失真性能和/或编码和解码的计算效率方面高效的压缩。
SAO滤波
SAO滤波涉及可例如用于增强边缘锐度或抑制带伪像或振铃伪像的非线性滤波操作。在某区域内,SAO滤波可被自适应地应用于满足某些条件的样本值,条件为诸如跨这些样本值存在梯度。
根据H.265/HEVC标准,可启用或禁用针对序列的SAO滤波。具体地,可由SPS中的句法元素来控制是否对序列中的图片执行SAO滤波。如果sample_adaptive_offset_enabled_flag(样本_自适应_偏移_启用_标记)为1,则SAO滤波可在去块滤波后被应用于经重构的图片中的片。如果sample_adaptive_offset_enabled_flag为0,则SAO滤波不被应用。
根据H.265/HEVC标准,当针对序列的SAO滤波被启用时,针对片的亮度内容和/或片的色度内容的SAO滤波可在逐片的基础上被启用或禁用。具体地,两个片段头部标志控制针对片的SAO滤波。如果slice_sao_luma_flag(片_SAO_亮度_标记)为1,则针对片的亮度分量的SAO滤波被启用。如果slice_sao_luma_flag为0(如果不存在的话,则为默认值),则针对片的亮度分量的SAO滤波被禁用。如果slice_sao_chroma_flag(片_SAO_色度_标记)为1,则针对片的色度分量的SAO滤波被启用。如果slice_sao_chroma_flag为0(如果不存在的话,则为默认值),则针对片的色度分量的SAO滤波被禁用。
此外,根据H.265/HEVC标准,针对片中的CTU的各CTB的SAO滤波可被启用或禁用,其中CTU通常包括亮度CTB和相应的色度CTB。对于CTB,类型索引(sao_type_idx_luma(SAO_类型_索引_亮度)或sao_type_idx_chroma(SAO_类型_索引_色度))指示SAO滤波被禁用、还是使用带偏移、还是使用边缘偏移。如果类型索引为0,则针对CTB的SAO滤波被禁用。如果类型索引为1,则被用于CTB的SAO滤波的类型为带偏移。最后,如果类型索引为2,则被用于CTB的SAO滤波的类型为边缘偏移。在一些情况下,CTB可重新使用来自毗邻CTB的句法元素来控制SAO滤波。
对于根据H.265/HEVC标准的带偏移SAO滤波,相关的样本值范围被拆分成32个带。四个连续带中的样本值通过增加带偏移来修改。一句法元素指示要被修改的带的开始位置,并且其他句法元素指示带偏移。
对于根据H.265/HEVC标准的边缘偏移SAO滤波,句法元素(sao_eo_class(SAO_eo_类))指示在SAO滤波中使用水平、垂直、45度还是135度梯度。CTB的每一样本值都是基于与其相邻样本值的关系沿着所选的梯度来分类的(例如,被分类成平坦区域、局部最小、边缘、或局部最大)。对于除“平坦区域”以外的类别,偏移(由比特流中的句法元素指示)被添加到样本值中。
SAO滤波可增强边缘锐度并抑制某种类型的伪像,但它可增加编码和解码的计算复杂度,并且它可消耗一些比特来对SAO参数进行信号化。在对人工创建的视频内容进行编码时,所增加的对SAO进行滤波的成本(与比特率和计算复杂度有关)可能是不正确的。例如,如果当前图片的屏幕内容区域中的块被使用参考图片中的候选块进行了良好的预测,并且这些块的预期质量至少与参考图片中的候选块的质量一样好,则SAO滤波可能无法改善质量。对于这样的内容,比特率和计算复杂度可通过禁用SAO滤波来降低,而没有显著的对质量的惩罚。
B.使用基于散列的块匹配的结果来选择性地禁用SAO滤波。
图16示出用于取决于基于散列的块匹配的结果(例如,匹配散列值)来选择性地禁用SAO滤波的通用技术(1600)。技术(1600)可由编码器(诸如参考图3或图4a和4b描述的编码器)或由另一编码器来执行。
编码器对图像或视频进行编码以产生经编码的数据,编码器将该经编码的数据作为比特流的一部分来输出。在编码期间,编码器对当前图片的当前块执行(1610)基于散列的块匹配。当前块可以是CTU的CTB或一些其他块。例如,编码器确定当前块的散列值,随后尝试在一个或多个参考图片的多个候选块中找到该当前块的匹配。编码器可评估单个参考图片(例如,参考图片列表中的第一参考图片)或多个参考图片(例如,参考图片列表中的每一参考图片)。匹配可表示给定块和多个候选块之一之间的匹配散列值。(也就是说,仅散列值被检查。)或者,该匹配还可表示给定块和多个候选块之一之间逐样本的匹配。(也就是说,逐样本的比较确认匹配。)仅考虑散列值较快,但可能较不可靠,因为来自非相同块的散列值可匹配。基于散列的块匹配可使用在章节VI中描述的散列表或使用另一散列表。
基于条件是否被满足,编码器确定(1620)是否禁用针对当前块的SAO滤波。该条件取决于在针对当前块的基于散列的块匹配期间是否发现了匹配(例如,考虑匹配散列值,但不考虑逐样本的比较)。重构的样本值可不同于用于确定散列值的输入样本值。由此,该条件还可取决于其他因素,诸如当前块的预期质量相对于针对该匹配的候选块的质量。替换地,该条件取决于其它和/或附加因素。
当前块的预期质量可由适用于当前块的量化参数(“QP”)值指示,并且候选块的质量可由适用于候选块的QP值指示。QP值可以是图片QP值(针对当前图片的QP值对照包括候选块的参考图片的QP值)或块级QP值。如果候选块(其匹配当前块)覆盖具有不同QP值的各块的部分,则适用于该候选块的QP值可以是:(a)针对这些块的不同QP值中的最小QP值,(b)覆盖该候选块的最大部分的无论哪个块的QP值,(c)这些块的不同QP值间的平均QP值,(d)这些块的不同QP值间的加权平均QP值,(e)这些块的不同QP值中的最大QP值,或(f)从这些块的不同QP值中的一者或多者中推导出的某一其他QP值。
具体地,作为该条件的一部分,编码器可检查针对当前图片的QP值大于或等于针对包括候选块的参考图片的QP值。或者,作为该条件的一部分,编码器可检查适用于当前块的QP值大于或等于适用于候选块的QP值。如果针对当前图片的QP值大于或等于针对参考图片的QP值,则当前图片的预期误差与参考图片的预期误差相比相当或更差。类似地,如果适用于当前块的QP值大于或等于适用于候选块的QP值,则当前块的预期误差与候选块的预期误差相比相当或更差。替换地,取代检查当前块以及候选块的QP值,编码器按某种其他方式来评估当前块的预期质量相对于针对该匹配的候选块的质量。
基于该确定(1620)的结果,编码器选择性地禁用(1630)针对当前块的SAO滤波。如果针对当前块的SAO滤波没有被禁用,则编码器可检查一个或多个其他条件以决定是否使用针对当前块的SAO滤波,以及如果SAO滤波被使用,则确定针对当前块的SAO滤波的参数。作为SAO确定过程的一部分,编码器可评估针对SAO滤波器的类型(边缘偏移或带偏移)的不同选项、梯度、带、偏移值等等。
编码器可在逐块的基础上对CTU、片或图片的其他块重复技术(1600)。
图17示出用于取决于基于散列的块匹配的结果选择性地禁用SAO滤波的更详细的示例技术(1700)。技术(1700)可由编码器(诸如参考图3或图4a和4b描述的编码器)或由另一编码器来执行。
在编码期间,编码器选择性地禁用针对当前图片的当前块的SAO滤波。编码器执行(1710)针对当前块的基于散列的块匹配。例如,编码器使用在章节VI中描述的散列表之一来执行基于散列的块匹配。
编码器检查(1720)基于散列的块匹配是否产生针对当前块的匹配(此处为匹配散列值)。如果基于散列的块匹配产生匹配,则编码器(例如,从图片级、片级和/或CU级QP值中)确定(1730)针对当前块和候选块的QP值,随后确定(1740)候选块是否通过质量检查(例如,候选块(或参考图片)的重构质量不比当前块(或当前图片)的预期质量更差)。如果两个检查(1720、1740)都通过了,则编码器禁用(1750)针对当前块的SAO滤波,从而绕过(根据一个或多个其他条件的)针对当前块的任何其他SAO滤波检查。否则,如果这两个检查(1720、1740)中的任何一者失败了,则编码器执行(1760)针对当前块的SAO滤波检查。也就是说,如果这两个检查(1720、1740)中的任一者失败了,则编码器仍可(根据一个或多个其他条件)确定SAO滤波应当还是不应当被用于当前块,并且如果SAO滤波被使用,则确定针对当前块的SAO滤波的参数。
编码器可在逐块的基础上对CTU、片或图片的其他块重复技术(1700)。
IX.确定要保留哪些参考图片。
本章节提出用于取决于基于散列的块匹配的结果(例如,匹配散列值)来决定要保留参考图片集合(“RPS”)中的哪些参考图片。通过选择促成高效的运动补偿的预测的参考图片,这些方法可促成在速率-失真性能方面有效的补偿。
参考图片集合。
一般来说,参考图片是包含在解码过程中可用于预测解码次序(也被称为编码次序、编码的次序或解码的次序)中在该参考图片后面的其他图片的样本的图片。多个参考图片在给定时间可用于供运动补偿的预测使用。
一般来说,RPS是可供在运动补偿的预测中使用的参考图片集合。例如,对于当前图片,编码器或解码器确定诸如经解码图片缓冲器(“DPB”)之类的经解码帧存储区域中包括参考图片的RPS。RPS的尺寸可根据比特流中的句法元素来被预定义或设置。例如,一句法元素指示对包含在RPS中的参考图片的最大数目的约束。RPS中的参考图片可以在显示次序(也被称为时间次序)中相邻或者在显示次序中彼此分开。同样,RPS中的给定参考图片可在显示次序中在当前图片之前或在显示次序中在当前图片之后。在编码和解码期间,RPS被更新—RPS中的参考图片随时间而改变以添加新的经解码的图片并丢弃不再被用作参考图片的较旧图片。
根据H.265/HEVC标准,对于当前图片,RPS是对于在对当前和将来编码的图片的解码过程中使用的参考图片的描述。包括在RPS中的参考图片被显式地列在比特流中。具体地,RPS在多个群组(也被称为RPS列表)中包括参考图片。编码器可每图片确定RPS一次。对于当前图片,编码器确定在对当前图片和/或后面的图片(按解码次序)的图片间预测中可使用的短期参考图片群组和长期参考图片群组。这些参考图片群组共同地定义针对当前图片的RPS。编码器在片段头部中信号化指示解码器应如何更新针对当前图片的RPS的句法元素。
根据H.265/HEVC标准,对于当前图片,解码器在对针对当前图片的片的片段头部进行解码后使用信号化在该片头部中的句法元素来确定RPS。参考图片是用图片次序计数(“POC”)值、其部分和/或信号化在比特流中的其他信息来标识的。解码器确定在对当前图片和/或后面的图片(按解码次序)的图片间预测中可使用的短期参考图片群组和长期参考图片群组,这些群组定义针对当前图片的RPS。
图18示出对RPS的参考图片的更新的示例(1800)RPS包括高达四个参考图片,其在图18中按显示次序彼此分隔开。替换地,RPS中的至少一些参考图片在显示次序方面可以是毗邻的。在图18中,PRS中的三个参考图片在显示次序方面在当前图片之前,但一个参考图片在显示次序方面在当前图片之后。在图18中,当图片222是当前图片时,RPS包括参考图片37、156、221和230。在对图片222进行编码/解码后,更新RPS。将图片221从RPS中丢弃,并将图片222添加到RPS中。由此,当图片223是当前图片时,RPS包括参考图片37、156、222和230。
一般来说,参考图片列表(“RPL”)是用于运动补偿的预测的参考图片的列表。RPL从RPS构造而成。根据H.265/HEVC标准,RPL是为片构造的。RPL中的参考图片用参考索引来寻址。在编码和解码期间,当RPL被构造时,RPL中的参考图片可改变以反映对RPS的改变和/或对RPL内的参考图片进行重新排序以使得对最常使用的参考索引的信号化更高效。通常,RPL是基于关于RPL的可用信息(例如,RPS中的可用图片)、根据规则的修改和/或信号化在比特流中的修改在编码和解码期间构建的。
H.265/HEVC标准允许编码器决定将哪些图片保留在RPS中,但不限定所保留的参考图片的模式或用于保留参考图片的准则。编码器可应用简单、固定的策略(诸如丢弃RPS中最旧的参考图片),但可导致丢弃有用的参考图片。评估要保留哪些参考图片的复杂方法可能是计算密集的。
B.使用基于散列的块匹配的结果来更新RPS。
本章节描述了用于决定要将哪些参考图片保留在RPS中的计算上高效且有效的方法。这些方式被适配成用于对人工创建的视频内容进行编码,但也可被应用于其他类型的视频内容。
图19示出用于取决于基于散列的块匹配的结果(例如,匹配散列值)来决定要将哪些参考图片保留在RPS中的通用技术(1900)。该技术(1900)可由编码器(诸如参考图3或图4a和4b描述的编码器)或由另一编码器来执行。
编码器对视频进行编码(1910)以产生经编码的数据并在比特流中输出(1920)该经编码的数据。作为编码(1910)的一部分,编码器至少部分地根据基于散列的块匹配的结果来确定要将多个参考图片中的哪些参考图片保留在RPS中。例如,此多个参考图片包括先前在RPS中的用于对当前图片进行编码的一个或多个先前参考图片以及作为当前图片的经重构版本的当前参考图片。为了确定要将哪些参考图片保留在RPS中,编码器可使用图20中示出的方法、图21中示出的方法或另一方法。
例如,假设RPS包括最多四个参考图片。该RPS可包括用于对当前图片进行编码的参考图片picref1(图片参考1)、picref2(图片参考2)、picref3(图片参考3)和picref4(图片参考4)。在对下一图片进行编码时,编码器更新该RPS。当前图片(pic当前)的经重构版本可被添加到RPS中,在该情况下,如果RPS的容量被超过了,则先前在RPS中的参考图片之一被丢弃。例如,picref1,picref2,picref3,picref4和piccurrent(图片当前)中的任四幅图片可被包括在RPS中,并且剩下的图片被丢弃。
在图20和21中所述的方法中,基于散列的块匹配的散列值是从图片的输入样本值中计算的,而不管该图片是下一图片、当前图片(当前参考图片)还是先前参考图片。也就是说,即使编码器正作出关于参考图片(其包括经重构的样本值)的决定,这些散列值也是从这些图片的输入样本值中计算出的。
图20示出用于取决于关于基于散列的块匹配的结果来决定要将哪些参考图片保留在RPS中的第一示例技术(2000)。该技术(2000)可由编码器(诸如参考图3或图4a和4b描述的编码器)或由另一编码器来执行。
一般来说,在图20所示的方法中,如果RPS在当前图片已被编码时已经满了,则编码器丢弃被预期在预测下一图片时最不有效的候选参考图片。编码器连续地评估候选参考图片(当前参考图片和先前参考图片)。对于候选参考图片中的每一者,编码器使用基于散列的块匹配来估计该候选参考图片预测下一图片有多好。在评估候选参考图片后,编码器丢弃被预期预测下一图片最差的候选参考图片。另一方面,如果RPS没有满,则编码器可简单地将当前图片添加到RPS中作为新参考图片并保留先前的参考图片。通常,图20中示出的方法将最适合于对下一图片进行运动补偿的预测的那些候选参考图片保留在RPS中,但所保留的参考图片可能对在将来(例如,在场景改变后)对其他图片进行预定补偿的预测不同样有用。
如图20中所示出的,编码器添加(2010)当前图片作为候选参考图片。编码器检查(2020)在将当前图片(当前参考图片)和先前参考图片看作候选参考图片的情况下RPS是否会变满。如果不是,则经更新的RPS包括先前的参考图片(如果有的话)和当前图片(当前参考图片),并且技术(2000)结束。
否则(RPS已经处于具有先前参考图片的容量),则编码器确定要将哪些候选参考图片丢弃。对于给定的候选参考图片,编码器在下一图片的块和候选参考图片的块之间执行(2030)基于散列的块匹配。例如,编码器将下一图片拆分成MxN个块(此MxN个块可以是8x8块或某一其他尺寸的块),并尝试找出针对下一图片的相应块和候选参考图片的候选块的匹配散列值。编码器对在候选参考图片中具有匹配(例如,来自基于散列的块匹配而无需逐样本的比较的匹配散列值)的下一图片的块进行计数(2040)。计数值countcand_x指示下一图片的块中有多少块在候选参考图片中具有匹配块。
编码器检查(2050)是否继续另一候选参考图片。如果如此,则编码器在下一图片的块和其他候选参考图片的块之间执行(2030)基于散列的块匹配。由此,编码器将RPS中的先前参考图片(来自对当前图片的编码)以及当前参考图片(在对当前图片的重构之后)评估为候选参考图片。在确定对所有候选参考图片的匹配的计数后,编码器丢弃(2060)具有最低计数的候选参考图片。
例如,编码器将picref1、picref2、picref3、picref4和piccurrent评估为候选参考图片,从而执行(2030)针对下一图片的块的基于散列的块匹配。编码器确定(2040)相应候选参考图片的计数值countcand_ref1(计数候选_参考1)、countcand_ref2(计数候选_参考2)、countcand_ref3(计数候选_参考3)、countcand_ref4(计数候选_参考4)和countcand_current(计数候选_当前)。编码器确定countcand_ref1、countcand_ref2、countcand_ref3、countcand_ref4和countcand_current中的哪一个最低,并丢弃(2060)具有最低计数的候选参考图片。
编码器可以在逐图片的基础上重复技术(2000)。
图21示出用于取决于关于基于散列的块匹配来决定要将哪些参考图片保留在RPS中的第二示例技术(2100)。该技术(2100)可由编码器(诸如参考图3或图4a和4b描述的编码器)或由另一编码器来执行。
一般来说,在图21所示的方法中,如果RPS在当前图片已被编码时已经满了,则编码器将当前图片(当前参考图片)添加到RPS,并丢弃被估计与当前图片(当前参考图片)最相似的候选的先前参考图片。这往往维持RPS中的各参考图片之间的多元性。编码器连续地评估候选的先前参考图片。对于候选的先前参考图片中的每一者(其在用于对当前图片进行编码的RPS中),编码器使用基于散列的块匹配来估计与当前参考图片的相似性。在评估候选的先前参考图片后,编码器丢弃被估计成与当前参考图片最相似的候选的先前参考图片。另一方面,如果RPS没有满,则编码器可简单地将当前图片添加到RPS中作为新参考图片并保留先前的参考图片。通过这种方式,图21中示出的方法可将对运动补偿的预测有用的参考图片保留在RPS中,即使将来的图片显著地改变了(例如,在场景改变后)。
如图21中所示出的,编码器添加(2110)当前图片作为当前参考图片。与要被编码的下一图片相比,当前参考图片往往具有小时间差和高相关性,使得编码器将其保留为参考图片。编码器检查(2120)在将当前参考图片和先前参考图片看作候选参考图片的情况下RPS是否会变满。如果不是,则新RPS包括先前的参考图片(如果有的话)和当前参考图片,并且技术(2100)结束。
否则(RPS已经处于具有先前参考图片的容量),则编码器确定要将哪些候选的先前参考图片丢弃。对于给定的候选参考图片,编码器在当前参考图片的块和候选的先前参考图片的块之间执行(2130)基于散列的块匹配。例如,编码器将当前参考图片拆分成MxN个块(其中此MxN个块可以是8x8块或某一其他尺寸的块),并尝试找出针对当前参考图片的相应块和候选的先前参考图片的候选块的匹配散列值。编码器对在候选的先前参考图片中具有匹配(例如,来自基于散列的块匹配而无需进行逐样本的比较的匹配散列值)的当前参考图片的块进行计数(2140)。计数值countcand_x(计数候选_x)指示当前参考图片的块中有多少块在候选的先前参考图片中有匹配块。
编码器检查(2150)是否继续另一候选的先前参考图片。如果如此,则编码器在当前参考图片的块和其他候选的先前参考图片的块之间执行(2130)基于散列的块匹配。由此,编码器将RPS中的先前参考图片(来自对当前图片的编码)评估为候选参考图片。在确定针对所有候选的先前参考图片的匹配的计数后,编码器丢弃(2160)具有最高计数的候选的先前参考图片。
例如,编码器将picref1、picref2、picref3和picref4评估成候选参考图片,从而执行(2130)针对当前参考图片的块的基于散列的块匹配。编码器确定(2140)相应的候选的先前参考图片的计数值countcand_ref1,countcand_ref2,countcand_ref3和countcand_ref4。编码器确定countcand_ref1、countcand_ref2、countcand_ref3和countcand_ref4中的哪一个最高,并丢弃(2160)具有最高计数的候选的先前参考图片。
编码器可以在逐图片的基础上重复技术(2100)。
鉴于可应用所公开的本发明的原理的许多可能的实施例,应当认识到,所示实施例仅是本发明的优选示例,并且不应认为是限制本发明的范围。相反,本发明的范围由后续的权利要求来界定。我们要求作为我们的发明保护落入这些权利要求范围和精神内的所有内容。
Claims (23)
1.一种在计算设备中的方法,包括:
对视频进行编码以产生经编码的数据,包括至少部分地根据基于散列的块匹配的结果来确定针对所述视频的单元的运动矢量(“MV”)精度;以及
在比特流中输出经编码的数据;
其中所述确定所述MV精度包括:
将所述单元拆分成多个块;
确定所述单元的具有在所述基于散列的块匹配中所标识的匹配块的多个块的数量的测量;
确定所述测量满足匹配块阈值,并且,作为结果,为所述单元选择整数样本MV精度;以及
当编码所述单元时使用所选择的整数样本MV精度,而不在分数样本位置处执行样本值的插值。
2.如权利要求1所述的方法,其特征在于,所述匹配表示给定块和多个候选块之一之间的匹配散列值。
3.如权利要求2所述的方法,其特征在于,所述匹配还表示所述给定块和所述多个候选块之一之间逐样本的匹配。
4.如权利要求1所述的方法,其特征在于,进一步包括:
对于所述单元的所述多个块之中的非匹配块,将所述非匹配块分类成包含自然视频内容或人工创建的视频内容。
5.如权利要求4所述的方法,其特征在于,所述分类包括:
测量所述非匹配块中不同色彩的数目;以及
将所述非匹配块中不同色彩的数目与阈值进行比较。
6.如权利要求5所述的方法,其特征在于,所述测量包括(a)对所述非匹配块中的样本值间的不同色彩进行计数,或者(b)在将所述样本值聚类成较少的色彩后,对所述非匹配块中的样本值间的不同色彩进行计数。
7.如权利要求1所述的方法,其特征在于,所述单元被拆分成多个块,并且其中所述MV精度是基于以下中的一者或多者来选择的:
所述多个块的数目与第一阈值的比较;
所述多个块的具有来自基于散列的块匹配的匹配块的测量与第二阈值的比较;以及
所述多个块中被分类成自然视频内容的测量与第三阈值的比较。
8.如权利要求1所述的方法,其特征在于,所述基于散列的块匹配将从所述单元的输入样本值计算出的散列值与从针对一个或多个参考图片的输入样本值计算出的散列值进行比较。
9.如权利要求1所述的方法,其特征在于,所述单元选自由序列、场景改变之间的图片系列、图片群组、图片、小块、片和编码单元组成的群组,并且其中所述MV精度选自由整数样本MV精度和四分之一样本MV精度组成的群组。
10.一种在计算设备中的方法,包括:
对图像或视频进行编码以产生经编码的数据,包括:
执行针对当前图片的当前块的基于散列的块匹配;
基于条件是否被满足,确定是否禁用针对所述当前块的样本自适应偏移(“SAO”)滤波,其中所述条件取决于在针对所述当前块的基于散列的块匹配期间是否找到匹配;以及
基于所述确定的结果,选择性地禁用针对所述当前块的SAO滤波;以及
在比特流中输出经编码的数据。
11.如权利要求10中所述的方法,其特征在于,所述条件进一步取决于所述当前块的预期质量相对于用于所述匹配的候选块的质量。
12.如权利要求11所述的方法,其特征在于,所述当前块的预期质量由适用于所述当前块的量化参数(“QP”)值指示,并且其中所述候选块的质量由适用于所述候选块的QP值指示。
13.如权利要求10所述的方法,其特征在于,执行针对所述当前块的基于散列的块匹配包括:
确定针对所述当前块的散列值;以及
尝试至少部分地基于针对所述当前块的散列值在一个或多个参考图片的多个候选块中找到所述匹配。
14.如权利要求10所述的方法,其特征在于,所述编码进一步包括:
如果针对所述当前块的SAO滤波没有被禁用,则确定用于针对所述当前块的SAO滤波的参数。
15.如权利要求10所述的方法,其特征在于,所述当前块是编码树单元的编码树块,并且其中SAO滤波也被选择性针对所述编码树单元的一个或多个其他编码树块来被禁用。
16.一种在计算设备中的方法,包括:
对视频进行编码以产生经编码的数据,包括至少部分地根据基于散列的块匹配的结果来确定要将多个参考图片中的哪些参考图片保留在参考图片集合中,其中所述确定要将多个参考图片中的哪些参考图片保留在参考图片集合中包括:对于序列中的下一图片:
对于所述多个参考图片中的每一者,使用所述基于散列的块匹配来估计该参考图片预测下一图片有多好;以及
将所述多个参考图片中的被预期预测所述下一图片比所述多个参考图片中的其它参考图片更差的一个参考图片丢弃;以及
在比特流中输出经编码的数据。
17.如权利要求16所述的方法,其特征在于,确定要将所述多个参考图片中的哪些参考图片保留包括对于序列中的下一图片:
对于所述多个参考图片中的每一者,在所述下一图片的块和所述参考图片的块之间执行所述基于散列的块匹配,其中计数指示所述下一图片中有多少块具有所述参考图片中的匹配块;以及
丢弃所述多个参考图片中具有最低计数的一个参考图片。
18.如权利要求16所述的方法,其特征在于,所述多个参考图片包括:
先前在所述参考图片集合中的用于对当前图片进行编码的一个或多个先前参考图片;以及
作为所述当前图片的经重构版本的当前参考图片。
19.如权利要求18所述的方法,其特征在于,确定要将所述多个参考图片中的哪些参考图片保留包括对于所述当前参考图片:
对于所述一个或多个先前参考图片中的每一者,使用所述基于散列的块匹配来估计与所述当前参考图片的相似性;以及
丢弃所述一个或多个先前参考图片中被估计与所述当前参考图片最类似的一个先前参考图片。
20.如权利要求18所述的方法,其特征在于,确定要将所述多个参考图片中的哪些参考图片保留包括对于所述当前参考图片:
对于所述一个或多个先前参考图片中的每一者,在所述当前参考图片的块和所述先前参考图片的块之间执行所述基于散列的块匹配,其中计数指示所述当前参考图片中有多少块具有所述先前参考图片中的匹配块;以及
丢弃所述一个或多个先前参考图片中具有最高计数的一个先前参考图片。
21.一种在计算设备中的系统,包括:
用于对视频进行编码以产生经编码的数据的装置,包括用于至少部分地根据基于散列的块匹配的结果来确定针对所述视频的单元的运动矢量(“MV”)精度的装置;以及
用于在比特流中输出经编码的数据的装置;
其中所述用于确定所述MV精度的装置包括:
用于将所述单元拆分成多个块的装置;
用于确定所述单元的具有在所述基于散列的块匹配中所标识的匹配块的多个块的数量的测量的装置;
用于确定所述测量满足匹配块阈值,并且,作为结果,为所述单元选择整数样本MV精度的装置;以及
用于当编码所述单元时使用所选择的整数样本MV精度,而不在分数样本位置处执行样本值的插值的装置。
22.一种在计算设备中的系统,包括:
用于对图像或视频进行编码以产生经编码的数据的装置,包括:
用于执行针对当前图片的当前块的基于散列的块匹配的装置;
用于基于条件是否被满足,确定是否禁用针对所述当前块的样本自适应偏移(“SAO”)滤波的装置,其中所述条件取决于在针对所述当前块的基于散列的块匹配期间是否找到匹配;以及
用于基于所述确定的结果,选择性地禁用针对所述当前块的SAO滤波的装置;以及
用于在比特流中输出经编码的数据的装置。
23.一种在计算设备中的系统,包括:
用于对视频进行编码以产生经编码的数据的装置,包括用于至少部分地根据基于散列的块匹配的结果来确定要将多个参考图片中的哪些参考图片保留在参考图片集合中的装置,其中所述用于确定要将多个参考图片中的哪些参考图片保留在参考图片集合中的装置包括:对于序列中的下一图片:
用于对于所述多个参考图片中的每一者,使用所述基于散列的块匹配来估计该参考图片预测下一图片有多好的装置;以及
用于将所述多个参考图片中的被预期预测所述下一图片比所述多个参考图片中的其它参考图片更差的一个参考图片丢弃的装置;以及
用于在比特流中输出经编码的数据的装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/080481 WO2015196322A1 (en) | 2014-06-23 | 2014-06-23 | Encoder decisions based on results of hash-based block matching |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105706450A CN105706450A (zh) | 2016-06-22 |
CN105706450B true CN105706450B (zh) | 2019-07-16 |
Family
ID=54936402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480048046.9A Active CN105706450B (zh) | 2014-06-23 | 2014-06-23 | 根据基于散列的块匹配的结果的编码器决定 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10681372B2 (zh) |
EP (2) | EP3158751B1 (zh) |
KR (1) | KR102287779B1 (zh) |
CN (1) | CN105706450B (zh) |
WO (1) | WO2015196322A1 (zh) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3061233B1 (en) | 2013-10-25 | 2019-12-11 | Microsoft Technology Licensing, LLC | Representing blocks with hash values in video and image coding and decoding |
US10567754B2 (en) | 2014-03-04 | 2020-02-18 | Microsoft Technology Licensing, Llc | Hash table construction and availability checking for hash-based block matching |
CN105556971B (zh) | 2014-03-04 | 2019-07-30 | 微软技术许可有限责任公司 | 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定 |
EP3158751B1 (en) | 2014-06-23 | 2019-07-31 | Microsoft Technology Licensing, LLC | Encoder decisions based on results of hash-based block matching |
CA2961089C (en) | 2014-09-30 | 2023-03-28 | Microsoft Technology Licensing, Llc | Hash-based encoder decisions for video coding |
US10291932B2 (en) * | 2015-03-06 | 2019-05-14 | Qualcomm Incorporated | Method and apparatus for low complexity quarter pel generation in motion search |
US9875552B1 (en) * | 2016-07-26 | 2018-01-23 | Teradici Corporation | Content independent method of motion determination using sparse matrices |
US10390039B2 (en) | 2016-08-31 | 2019-08-20 | Microsoft Technology Licensing, Llc | Motion estimation for screen remoting scenarios |
US10192295B2 (en) * | 2016-11-09 | 2019-01-29 | AI Analysis, Inc. | Methods and systems for normalizing images |
US11095877B2 (en) | 2016-11-30 | 2021-08-17 | Microsoft Technology Licensing, Llc | Local hash-based motion estimation for screen remoting scenarios |
CN110063059B (zh) * | 2016-12-15 | 2022-05-13 | 华为技术有限公司 | 视频编解码方法、相关编解码器和计算机可读存储介质 |
US10291928B2 (en) * | 2017-01-10 | 2019-05-14 | Blackberry Limited | Methods and devices for inter-prediction using motion vectors for video coding |
US11134253B2 (en) * | 2017-02-02 | 2021-09-28 | Hewlett-Packard Development Company, L.P. | Video compression |
EP3709642A4 (en) * | 2017-11-09 | 2020-09-16 | Sony Corporation | IMAGE PROCESSING DEVICE AND IMAGE PROCESSING METHOD |
WO2019240630A1 (en) * | 2018-06-13 | 2019-12-19 | Huawei Technologies Co., Ltd. | Intra sharpening and/or de-ringing filter for video coding |
JP7460617B2 (ja) | 2018-06-29 | 2024-04-02 | 北京字節跳動網絡技術有限公司 | Lut更新条件 |
KR20210024502A (ko) | 2018-06-29 | 2021-03-05 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Hmvp 후보를 병합/amvp에 추가할 때의 부분/풀 프루닝 |
TWI728388B (zh) | 2018-06-29 | 2021-05-21 | 大陸商北京字節跳動網絡技術有限公司 | Lut中的運動候選的檢查順序 |
AU2019293670B2 (en) | 2018-06-29 | 2023-06-08 | Beijing Bytedance Network Technology Co., Ltd. | Update of look up table: FIFO, constrained FIFO |
CN110662053B (zh) | 2018-06-29 | 2022-03-25 | 北京字节跳动网络技术有限公司 | 使用查找表的视频处理方法、装置和存储介质 |
EP3791586A1 (en) * | 2018-06-29 | 2021-03-17 | Beijing Bytedance Network Technology Co. Ltd. | Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks |
JP7295231B2 (ja) | 2018-06-29 | 2023-06-20 | 北京字節跳動網絡技術有限公司 | Lutとamvpの間の相互作用 |
EP3791589A1 (en) | 2018-06-29 | 2021-03-17 | Beijing Bytedance Network Technology Co. Ltd. | Which lut to be updated or no updating |
TWI731365B (zh) | 2018-07-02 | 2021-06-21 | 大陸商北京字節跳動網絡技術有限公司 | Merge索引編碼 |
WO2020031061A2 (en) | 2018-08-04 | 2020-02-13 | Beijing Bytedance Network Technology Co., Ltd. | Mvd precision for affine |
CN111064961B (zh) | 2018-09-12 | 2023-06-09 | 北京字节跳动网络技术有限公司 | 视频处理方法和装置 |
KR102154407B1 (ko) * | 2018-11-15 | 2020-09-09 | 한국전자기술연구원 | 타일 기반 스트리밍을 위한 모션 제한 av1 영상 부호화 방법 및 장치 |
KR20200081328A (ko) * | 2018-12-27 | 2020-07-07 | 인텔렉추얼디스커버리 주식회사 | 영상 부/복호화 방법 및 장치 |
WO2020140952A1 (en) * | 2019-01-02 | 2020-07-09 | Beijing Bytedance Network Technology Co., Ltd | Hash-based motion searching |
JP7275286B2 (ja) | 2019-01-10 | 2023-05-17 | 北京字節跳動網絡技術有限公司 | Lut更新の起動 |
CN113383554B (zh) | 2019-01-13 | 2022-12-16 | 北京字节跳动网络技术有限公司 | LUT和共享Merge列表之间的交互 |
CN113330739A (zh) | 2019-01-16 | 2021-08-31 | 北京字节跳动网络技术有限公司 | Lut中的运动候选的插入顺序 |
WO2020192611A1 (en) | 2019-03-22 | 2020-10-01 | Beijing Bytedance Network Technology Co., Ltd. | Interaction between merge list construction and other tools |
JP7194651B2 (ja) | 2019-07-12 | 2022-12-22 | 信越化学工業株式会社 | レジスト下層膜形成用組成物、パターン形成方法及び重合体 |
WO2021047540A1 (en) | 2019-09-09 | 2021-03-18 | Beijing Bytedance Network Technology Co., Ltd. | Coefficient scaling for high precision image and video coding |
CN114731392A (zh) | 2019-09-21 | 2022-07-08 | 北京字节跳动网络技术有限公司 | 用于图像和视频编解码的高精度变换和量化 |
US11202085B1 (en) | 2020-06-12 | 2021-12-14 | Microsoft Technology Licensing, Llc | Low-cost hash table construction and hash-based block matching for variable-size blocks |
US11546617B2 (en) * | 2020-06-30 | 2023-01-03 | At&T Mobility Ii Llc | Separation of graphics from natural video in streaming video content |
US12026919B2 (en) * | 2021-12-22 | 2024-07-02 | Red Hat, Inc. | Content-based encoding of digital images |
US11956441B2 (en) * | 2021-12-23 | 2024-04-09 | Ati Technologies Ulc | Identifying long term reference frame using scene detection and perceptual hashing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1857001A (zh) * | 2003-05-20 | 2006-11-01 | Amt先进多媒体科技公司 | 混合视频压缩方法 |
CN1874487A (zh) * | 2005-06-03 | 2006-12-06 | 中国科学院研究生院 | 数字电视信号安全认证装置及带有该装置的电视设备 |
Family Cites Families (204)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2239538A (en) | 1939-03-30 | 1941-04-22 | Zeiss Carl Fa | Photographic teleobjective |
US2718173A (en) | 1950-09-26 | 1955-09-20 | Cycloptic Anstalt Fur Optik Un | High intensity five component photographic objective |
US3059528A (en) | 1957-07-02 | 1962-10-23 | Allan Ted | Panoramic motion picture camera |
US3142236A (en) | 1961-03-08 | 1964-07-28 | American Optical Corp | Cameras and high speed optical system therefor |
CH486707A (de) | 1968-06-14 | 1970-02-28 | Voigtlaender Ag | Lichtstarkes objektiv aus mindestens vier in Luft stehenden Gliedern vom erweiterten Triplet-typus |
US5016980A (en) | 1985-11-12 | 1991-05-21 | Waldron Robert D | Systems for deviating and (optionally) converging radiation |
US4918583A (en) | 1988-04-25 | 1990-04-17 | Nikon Corporation | Illuminating optical device |
US5565921A (en) * | 1993-03-16 | 1996-10-15 | Olympus Optical Co., Ltd. | Motion-adaptive image signal processing system |
US5610841A (en) | 1993-09-30 | 1997-03-11 | Matsushita Electric Industrial Co., Ltd. | Video server |
US5850312A (en) | 1993-10-22 | 1998-12-15 | Olympus Optical Co., Ltd. | Three-unit zoom lens |
JP3580869B2 (ja) | 1994-09-13 | 2004-10-27 | オリンパス株式会社 | 立体視内視鏡 |
US5613004A (en) * | 1995-06-07 | 1997-03-18 | The Dice Company | Steganographic method and device |
US5774271A (en) | 1996-07-29 | 1998-06-30 | Welch Allyn, Inc. | Lamp assembly |
JP3869895B2 (ja) | 1996-12-27 | 2007-01-17 | キヤノン株式会社 | 防振機能を有した光学系 |
US7206346B2 (en) | 1997-06-25 | 2007-04-17 | Nippon Telegraph And Telephone Corporation | Motion vector predictive encoding method, motion vector decoding method, predictive encoding apparatus and decoding apparatus, and storage media storing motion vector predictive encoding and decoding programs |
US6904110B2 (en) * | 1997-07-31 | 2005-06-07 | Francois Trans | Channel equalization system and method |
US6879266B1 (en) | 1997-08-08 | 2005-04-12 | Quickshift, Inc. | Memory module including scalable embedded parallel data compression and decompression engines |
JPH1166301A (ja) | 1997-08-15 | 1999-03-09 | Nippon Telegr & Teleph Corp <Ntt> | カラー画像分類方法及び装置及びこの方法を記録した記録媒体 |
US6895048B2 (en) | 1998-03-20 | 2005-05-17 | International Business Machines Corporation | Adaptive encoding of a sequence of still frames or partially still frames within motion video |
US6487440B2 (en) | 1998-07-08 | 2002-11-26 | Lifespex, Inc. | Optical probe having and methods for difuse and uniform light irradiation |
US6332092B1 (en) | 1998-07-08 | 2001-12-18 | Lifespex, Incorporated | Optical probe having and methods for uniform light irradiation and/or light collection over a volume |
US6400764B1 (en) | 1999-04-06 | 2002-06-04 | Koninklijke Philips Electronics N. V. | Motion estimation method featuring orthogonal-sum concurrent multi matching |
US7216232B1 (en) * | 1999-04-20 | 2007-05-08 | Nec Corporation | Method and device for inserting and authenticating a digital signature in digital data |
US6785815B1 (en) * | 1999-06-08 | 2004-08-31 | Intertrust Technologies Corp. | Methods and systems for encoding and protecting data using digital signature and watermarking techniques |
US7430670B1 (en) * | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US6671407B1 (en) | 1999-10-19 | 2003-12-30 | Microsoft Corporation | System and method for hashing digital images |
JP2001228401A (ja) | 2000-02-16 | 2001-08-24 | Canon Inc | 投影光学系、および該投影光学系による投影露光装置、デバイス製造方法 |
GB0006153D0 (en) | 2000-03-14 | 2000-05-03 | Inpharmatica Ltd | Database |
CA2304433A1 (en) | 2000-04-05 | 2001-10-05 | Cloakware Corporation | General purpose access recovery scheme |
GB2364459B (en) * | 2000-06-30 | 2004-03-31 | Nokia Mobile Phones Ltd | Video error resilience |
US6915387B1 (en) | 2000-07-20 | 2005-07-05 | Silicon Graphics, Inc. | System and method for handling updates to memory in a distributed shared memory system |
US6938128B1 (en) | 2000-07-20 | 2005-08-30 | Silicon Graphics, Inc. | System and method for reducing memory latency during read requests |
US6765963B2 (en) | 2001-01-03 | 2004-07-20 | Nokia Corporation | Video decoder architecture and method for using same |
US6920175B2 (en) | 2001-01-03 | 2005-07-19 | Nokia Corporation | Video coding architecture and methods for using same |
GB2375673A (en) | 2001-05-14 | 2002-11-20 | Salgen Systems Ltd | Image compression method using a table of hash values corresponding to motion vectors |
US7328153B2 (en) | 2001-07-20 | 2008-02-05 | Gracenote, Inc. | Automatic identification of sound recordings |
DE10158658A1 (de) | 2001-11-30 | 2003-06-12 | Bosch Gmbh Robert | Verfahren zur gerichteten Prädiktion eines Bildblockes |
US6819322B2 (en) | 2002-01-04 | 2004-11-16 | Hewlett-Packard Development Company, L.P. | Method and apparatus for detecting potential lock-up conditions in a video graphics controller |
KR20060111735A (ko) * | 2002-01-18 | 2006-10-27 | 가부시끼가이샤 도시바 | 동화상 복호화방법 및 장치 |
US6922246B2 (en) | 2002-02-22 | 2005-07-26 | Xenogen Corporation | Bottom fluorescence illumination assembly for an imaging apparatus |
US6894289B2 (en) | 2002-02-22 | 2005-05-17 | Xenogen Corporation | Fluorescence illumination assembly for an imaging apparatus |
US6983020B2 (en) * | 2002-03-25 | 2006-01-03 | Citrix Online Llc | Method and apparatus for fast block motion detection |
JP4151374B2 (ja) | 2002-03-29 | 2008-09-17 | セイコーエプソン株式会社 | 動画像符号化装置および動画像符号化方法 |
US7400774B2 (en) | 2002-09-06 | 2008-07-15 | The Regents Of The University Of California | Encoding and decoding of digital data using cues derivable at a decoder |
US20040174570A1 (en) | 2002-12-02 | 2004-09-09 | Plunkett Richard Thomas | Variable size dither matrix usage |
CA2508141C (en) * | 2002-12-02 | 2009-11-03 | Silverbrook Research Pty Ltd | Dead nozzle compensation |
US7792121B2 (en) | 2003-01-03 | 2010-09-07 | Microsoft Corporation | Frame protocol and scheduling system |
JP4499370B2 (ja) | 2003-04-04 | 2010-07-07 | オリンパス株式会社 | 結像光学系及びそれを用いた撮像装置 |
DE10316428A1 (de) | 2003-04-08 | 2004-10-21 | Carl Zeiss Smt Ag | Katadioptrisches Reduktionsobjektiv |
US8264489B2 (en) | 2003-07-11 | 2012-09-11 | Intel Corporation | Interface remoting |
US7609763B2 (en) | 2003-07-18 | 2009-10-27 | Microsoft Corporation | Advanced bi-directional predictive coding of video frames |
US20050060643A1 (en) | 2003-08-25 | 2005-03-17 | Miavia, Inc. | Document similarity detection and classification system |
WO2005027491A2 (en) | 2003-09-05 | 2005-03-24 | The Regents Of The University Of California | Global motion estimation image coding and processing |
EP2278287B1 (en) | 2003-10-27 | 2016-09-07 | The General Hospital Corporation | Method and apparatus for performing optical imaging using frequency-domain interferometry |
US20050105621A1 (en) | 2003-11-04 | 2005-05-19 | Ju Chi-Cheng | Apparatus capable of performing both block-matching motion compensation and global motion compensation and method thereof |
DE602004010040T2 (de) | 2003-12-11 | 2008-09-11 | Tokendo | Messvorrichtung für eine video-endoskopische Sonde |
US20040133548A1 (en) | 2003-12-15 | 2004-07-08 | Alex Fielding | Electronic Files Digital Rights Management. |
US7095568B2 (en) | 2003-12-19 | 2006-08-22 | Victor Company Of Japan, Limited | Image display apparatus |
KR100995398B1 (ko) | 2004-01-20 | 2010-11-19 | 삼성전자주식회사 | 수직 및 수평 방향의 패턴을 고려한 전역 움직임 보상순차주사화 방법 |
WO2005116837A1 (en) | 2004-05-26 | 2005-12-08 | Intel Corporation | Automatic caching generation in network applications |
US7672005B1 (en) | 2004-06-30 | 2010-03-02 | Teradici Corporation | Methods and apparatus for scan block caching |
US20060062303A1 (en) | 2004-09-17 | 2006-03-23 | Sony Corporation | Hybrid global motion estimator for video encoding |
US7526607B1 (en) | 2004-09-23 | 2009-04-28 | Juniper Networks, Inc. | Network acceleration and long-distance pattern detection using improved caching and disk mapping |
US7773784B2 (en) | 2004-10-15 | 2010-08-10 | University Of Colorado Board Of Regents | Revocable biometrics with robust distance metrics |
JP2006265087A (ja) | 2004-12-13 | 2006-10-05 | Ohara Inc | 光学素子用プリフォーム |
US20060153295A1 (en) | 2005-01-12 | 2006-07-13 | Nokia Corporation | Method and system for inter-layer prediction mode coding in scalable video coding |
US20060224594A1 (en) * | 2005-04-04 | 2006-10-05 | Oracle International Corporation | Methods and systems for identifying highly contended blocks in a database |
KR100716999B1 (ko) | 2005-06-03 | 2007-05-10 | 삼성전자주식회사 | 영상의 대칭성을 이용한 인트라 예측 방법, 이를 이용한영상의 복호화, 부호화 방법 및 장치 |
US8787460B1 (en) | 2005-07-28 | 2014-07-22 | Teradici Corporation | Method and apparatus for motion vector estimation for an image sequence |
US20070025442A1 (en) | 2005-07-28 | 2007-02-01 | Sanyo Electric Co., Ltd. | Coding method for coding moving images |
US8107527B1 (en) | 2005-07-28 | 2012-01-31 | Teradici Corporation | Progressive block encoding using region analysis |
KR101211665B1 (ko) | 2005-08-12 | 2012-12-12 | 삼성전자주식회사 | 영상의 인트라 예측 부호화, 복호화 방법 및 장치 |
JP4815944B2 (ja) | 2005-08-19 | 2011-11-16 | 富士ゼロックス株式会社 | ホログラム記録方法及び装置 |
JP2007066191A (ja) | 2005-09-01 | 2007-03-15 | Toshiba Corp | 再生装置および再生方法 |
FR2891685B1 (fr) * | 2005-10-03 | 2008-04-18 | Envivio France Entpr Uniperson | Procede et dispositif d'estimation de mouvement a references multiples, procede et dispositif de codage, produits programme d'ordinateur et moyens de stockage correspondants. |
KR20080066790A (ko) * | 2005-10-12 | 2008-07-16 | 데이터캐슬 코퍼레이션 | 데이터 백업 시스템 및 방법 |
US7702127B2 (en) * | 2005-10-21 | 2010-04-20 | Microsoft Corporation | Video fingerprinting using complexity-regularized video watermarking by statistics quantization |
RU2298226C1 (ru) | 2005-10-28 | 2007-04-27 | Самсунг Электроникс Ко., Лтд. | Способ улучшения цифровых изображений |
GB2431798A (en) | 2005-10-31 | 2007-05-02 | Sony Uk Ltd | Motion vector selection based on integrity |
US7986844B2 (en) | 2005-11-22 | 2011-07-26 | Intel Corporation | Optimized video compression using hashing function |
US20070199011A1 (en) | 2006-02-17 | 2007-08-23 | Sony Corporation | System and method for high quality AVC encoding |
US20070217702A1 (en) * | 2006-03-14 | 2007-09-20 | Sung Chih-Ta S | Method and apparatus for decoding digital video stream |
US7949186B2 (en) * | 2006-03-15 | 2011-05-24 | Massachusetts Institute Of Technology | Pyramid match kernel and related techniques |
KR100763917B1 (ko) | 2006-06-21 | 2007-10-05 | 삼성전자주식회사 | 고속으로 움직임을 추정하는 방법 및 장치 |
US7636824B1 (en) | 2006-06-28 | 2009-12-22 | Acronis Inc. | System and method for efficient backup using hashes |
DE102006045565B3 (de) | 2006-08-04 | 2008-06-26 | Leica Camera Ag | Weitwinkel-Aufstecksucher an Messsucherkameras für fotografische Aufnahmen mit unterschiedlichen Brennweiten |
US7747584B1 (en) * | 2006-08-22 | 2010-06-29 | Netapp, Inc. | System and method for enabling de-duplication in a storage system architecture |
US8099415B2 (en) * | 2006-09-08 | 2012-01-17 | Simply Hired, Inc. | Method and apparatus for assessing similarity between online job listings |
GB0618057D0 (en) | 2006-09-14 | 2006-10-25 | Perkinelmer Ltd | Improvements in and relating to scanning confocal microscopy |
US8443398B2 (en) | 2006-11-01 | 2013-05-14 | Skyfire Labs, Inc. | Architecture for delivery of video content responsive to remote interaction |
US8320683B2 (en) | 2007-02-13 | 2012-11-27 | Sharp Kabushiki Kaisha | Image processing method, image processing apparatus, image reading apparatus, and image forming apparatus |
US20080212687A1 (en) | 2007-03-02 | 2008-09-04 | Sony Corporation And Sony Electronics Inc. | High accurate subspace extension of phase correlation for global motion estimation |
US8494234B1 (en) | 2007-03-07 | 2013-07-23 | MotionDSP, Inc. | Video hashing system and method |
US8817878B2 (en) | 2007-11-07 | 2014-08-26 | Broadcom Corporation | Method and system for motion estimation around a fixed reference vector using a pivot-pixel approach |
KR101365444B1 (ko) | 2007-11-19 | 2014-02-21 | 삼성전자주식회사 | 영상의 해상도의 조정을 통하여 동영상을 효율적으로부호화/복호화하는 방법 및 장치 |
CN101904173B (zh) | 2007-12-21 | 2013-04-03 | 艾利森电话股份有限公司 | 用于视频编码的改进像素预测的方法及设备 |
US8213515B2 (en) * | 2008-01-11 | 2012-07-03 | Texas Instruments Incorporated | Interpolated skip mode decision in video compression |
KR101446771B1 (ko) | 2008-01-30 | 2014-10-06 | 삼성전자주식회사 | 영상 부호화장치 및 영상 복호화장치 |
WO2009102013A1 (ja) | 2008-02-14 | 2009-08-20 | Nec Corporation | 移動ベクトル検出装置 |
JP2009230537A (ja) | 2008-03-24 | 2009-10-08 | Olympus Corp | 画像処理装置、画像処理プログラム、画像処理方法、および、電子機器 |
US8295617B2 (en) | 2008-05-19 | 2012-10-23 | Citrix Systems, Inc. | Systems and methods for enhanced image encoding |
US8527482B2 (en) * | 2008-06-06 | 2013-09-03 | Chrysalis Storage, Llc | Method for reducing redundancy between two or more datasets |
GB2460844B (en) | 2008-06-10 | 2012-06-06 | Half Minute Media Ltd | Automatic detection of repeating video sequences |
KR101226394B1 (ko) * | 2008-06-30 | 2013-01-24 | 후지쯔 세미컨덕터 가부시키가이샤 | 메모리 장치 |
US8515123B2 (en) * | 2008-07-03 | 2013-08-20 | Verimatrix, Inc. | Efficient watermarking approaches of compressed media |
US9235577B2 (en) | 2008-09-04 | 2016-01-12 | Vmware, Inc. | File transfer using standard blocks and standard-block identifiers |
US8213503B2 (en) | 2008-09-05 | 2012-07-03 | Microsoft Corporation | Skip modes for inter-layer residual video coding and decoding |
US8831103B2 (en) * | 2008-10-02 | 2014-09-09 | Sony Corporation | Image processing apparatus and method |
EP2351288B1 (en) * | 2008-10-23 | 2014-12-10 | University Of Ulster | An encryption method |
US20100119170A1 (en) | 2008-11-07 | 2010-05-13 | Yahoo! Inc. | Image compression by comparison to large database |
US20100166073A1 (en) | 2008-12-31 | 2010-07-01 | Advanced Micro Devices, Inc. | Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors |
US8599929B2 (en) | 2009-01-09 | 2013-12-03 | Sungkyunkwan University Foundation For Corporate Collaboration | Distributed video decoder and distributed video decoding method |
WO2010086548A1 (fr) | 2009-01-28 | 2010-08-05 | France Telecom | Procede et dispositif de codage d'une image, procede et dispositif de decodage, et programmes d'ordinateur correspondants |
WO2010085899A1 (en) | 2009-02-02 | 2010-08-05 | Calgary Scientific Inc. | Image data transmission |
WO2010090630A1 (en) | 2009-02-03 | 2010-08-12 | Thomson Licensing | Methods and apparatus for motion compensation with smooth reference frame in bit depth scalability |
US7868792B2 (en) | 2009-02-05 | 2011-01-11 | Polytechnic Institute Of New York University | Generating a boundary hash-based hierarchical data structure associated with a plurality of known arbitrary-length bit strings and using the generated hierarchical data structure for detecting whether an arbitrary-length bit string input matches one of a plurality of known arbitrary-length bit springs |
US8838824B2 (en) * | 2009-03-16 | 2014-09-16 | Onmobile Global Limited | Method and apparatus for delivery of adapted media |
US9113169B2 (en) | 2009-05-07 | 2015-08-18 | Qualcomm Incorporated | Video encoding with temporally constrained spatial dependency for localized decoding |
US8724707B2 (en) | 2009-05-07 | 2014-05-13 | Qualcomm Incorporated | Video decoding using temporally constrained spatial dependency |
US8355585B2 (en) | 2009-05-12 | 2013-01-15 | Red Hat Israel, Ltd. | Data compression of images using a shared dictionary |
US8694547B2 (en) | 2009-07-07 | 2014-04-08 | Palo Alto Research Center Incorporated | System and method for dynamic state-space abstractions in external-memory and parallel graph search |
JP2011024066A (ja) * | 2009-07-17 | 2011-02-03 | Sony Corp | 画像処理装置および方法 |
KR101712097B1 (ko) | 2009-08-19 | 2017-03-03 | 삼성전자 주식회사 | 유연한 직교 변환에 기초한 영상 부호화, 복호화 방법 및 장치 |
US8345750B2 (en) | 2009-09-02 | 2013-01-01 | Sony Computer Entertainment Inc. | Scene change detection |
US8411750B2 (en) | 2009-10-30 | 2013-04-02 | Qualcomm Incorporated | Global motion parameter estimation using block-based motion vectors |
US8633838B2 (en) | 2010-01-15 | 2014-01-21 | Neverfail Group Limited | Method and apparatus for compression and network transport of data in support of continuous availability of applications |
JP2013518256A (ja) | 2010-01-22 | 2013-05-20 | デユーク・ユニバーシテイ | 分光光コヒーレンストモグラフィ(oct)およびフーリエドメイン低コヒーレンス干渉法のための多重ウィンドウ処理スキーム |
WO2012077928A1 (ko) * | 2010-12-07 | 2012-06-14 | 한국전자통신연구원 | 초고해상도 영상을 부호화하는 장치 및 방법, 그리고 복호화 장치 및 방법 |
US9237355B2 (en) | 2010-02-19 | 2016-01-12 | Qualcomm Incorporated | Adaptive motion resolution for video coding |
EP2365456B1 (en) | 2010-03-11 | 2016-07-20 | CompuGroup Medical SE | Data structure, method and system for predicting medical conditions |
US8442942B2 (en) | 2010-03-25 | 2013-05-14 | Andrew C. Leppard | Combining hash-based duplication with sub-block differencing to deduplicate data |
US8619857B2 (en) | 2010-04-09 | 2013-12-31 | Sharp Laboratories Of America, Inc. | Methods and systems for intra prediction |
WO2011127964A2 (en) | 2010-04-13 | 2011-10-20 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus for intra predicting a block, apparatus for reconstructing a block of a picture, apparatus for reconstructing a block of a picture by intra prediction |
EP2559238B1 (en) * | 2010-04-13 | 2015-06-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Adaptive image filtering method and apparatus |
KR20110123651A (ko) | 2010-05-07 | 2011-11-15 | 한국전자통신연구원 | 생략 부호화를 이용한 영상 부호화 및 복호화 장치 및 그 방법 |
WO2011152099A1 (ja) | 2010-06-01 | 2011-12-08 | Hoya株式会社 | 内視鏡用対物レンズ、及び内視鏡 |
US8417039B2 (en) | 2010-06-03 | 2013-04-09 | Microsoft Corporation | Motion detection techniques for improved image remoting |
CN101866366B (zh) | 2010-07-15 | 2012-01-18 | 哈尔滨工业大学 | 一种基于内容的图像格式中文文档检索方法 |
GB2483294B (en) | 2010-09-03 | 2013-01-02 | Canon Kk | Method and device for motion estimation of video data coded according to a scalable coding structure |
WO2012042792A1 (en) * | 2010-09-30 | 2012-04-05 | Nec Corporation | Storage system |
RS62555B1 (sr) | 2010-11-04 | 2021-12-31 | Ge Video Compression Llc | Kodiranje slike koje podražava objedinjavanje blokova i režim preskakanja |
US20130266078A1 (en) * | 2010-12-01 | 2013-10-10 | Vrije Universiteit Brussel | Method and device for correlation channel estimation |
US20120170653A1 (en) * | 2010-12-30 | 2012-07-05 | General Instrument Corporation | Block based sampling coding systems |
KR20120095610A (ko) * | 2011-02-21 | 2012-08-29 | 삼성전자주식회사 | 다시점 비디오의 부호화 방법 및 장치, 그 복호화 방법 및 장치 |
WO2012128242A1 (ja) | 2011-03-18 | 2012-09-27 | ソニー株式会社 | 画像処理装置、画像処理方法、及び、プログラム |
US9363500B2 (en) | 2011-03-18 | 2016-06-07 | Sony Corporation | Image processing device, image processing method, and program |
US8480743B2 (en) | 2011-03-25 | 2013-07-09 | Vicente Vanaclocha Vanaclocha | Universal disc prosthesis |
US8582886B2 (en) | 2011-05-19 | 2013-11-12 | Microsoft Corporation | Compression of text contents for display remoting |
CN103563374B (zh) | 2011-05-27 | 2017-02-08 | 索尼公司 | 图像处理设备及方法 |
US9167020B2 (en) | 2011-06-10 | 2015-10-20 | Microsoft Technology Licensing, Llc | Web-browser based desktop and application remoting solution |
US8644620B1 (en) | 2011-06-21 | 2014-02-04 | Google Inc. | Processing of matching regions in a stream of screen images |
US9521418B2 (en) | 2011-07-22 | 2016-12-13 | Qualcomm Incorporated | Slice header three-dimensional video extension for slice header prediction |
US11496760B2 (en) | 2011-07-22 | 2022-11-08 | Qualcomm Incorporated | Slice header prediction for depth maps in three-dimensional video codecs |
JP5651560B2 (ja) | 2011-09-07 | 2015-01-14 | 日本放送協会 | 動きベクトル予測装置、符号化装置、復号装置、及びこれらのプログラム |
US10031636B2 (en) | 2011-09-08 | 2018-07-24 | Microsoft Technology Licensing, Llc | Remoting desktop displays using move regions |
US9351808B2 (en) | 2011-09-27 | 2016-05-31 | Sharon M. E. McCarthy | Apparatus for removing dental appliance and dental system |
GB2495301B (en) | 2011-09-30 | 2018-01-17 | Advanced Risc Mach Ltd | Method of and apparatus for encoding data |
US9357235B2 (en) | 2011-10-13 | 2016-05-31 | Qualcomm Incorporated | Sample adaptive offset merged with adaptive loop filter in video coding |
US9609217B2 (en) | 2011-11-02 | 2017-03-28 | Mediatek Inc. | Image-based motion sensor and related multi-purpose camera system |
US9332271B2 (en) | 2011-11-03 | 2016-05-03 | Cisco Technology, Inc. | Utilizing a search scheme for screen content video coding |
GB201119206D0 (en) | 2011-11-07 | 2011-12-21 | Canon Kk | Method and device for providing compensation offsets for a set of reconstructed samples of an image |
EP3739886A1 (en) | 2011-11-18 | 2020-11-18 | GE Video Compression, LLC | Multi-view coding with efficient residual handling |
KR101874100B1 (ko) | 2011-12-02 | 2018-07-04 | 삼성전자주식회사 | 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치 |
US9262986B2 (en) * | 2011-12-07 | 2016-02-16 | Cisco Technology, Inc. | Reference frame management for screen content video coding using hash or checksum functions |
US9223534B1 (en) | 2011-12-30 | 2015-12-29 | hopTo Inc. | Client side detection of motion vectors for cross-platform display |
WO2013103376A1 (en) | 2012-01-05 | 2013-07-11 | Intel Corporation | Device, system and method of video encoding |
US9235313B2 (en) | 2012-01-11 | 2016-01-12 | Google Inc. | Efficient motion estimation for remote desktop sharing |
US9380320B2 (en) | 2012-02-10 | 2016-06-28 | Broadcom Corporation | Frequency domain sample adaptive offset (SAO) |
US20130258052A1 (en) | 2012-03-28 | 2013-10-03 | Qualcomm Incorporated | Inter-view residual prediction in 3d video coding |
US9154749B2 (en) * | 2012-04-08 | 2015-10-06 | Broadcom Corporation | Power saving techniques for wireless delivery of video |
US20130268621A1 (en) * | 2012-04-08 | 2013-10-10 | Broadcom Corporation | Transmission of video utilizing static content information from video source |
US9286862B2 (en) | 2012-04-09 | 2016-03-15 | Oracle International Corporation | System and method for detecting a scrolling event during a client display update |
US9123084B2 (en) * | 2012-04-12 | 2015-09-01 | Activevideo Networks, Inc. | Graphical application integration with MPEG objects |
US20130271565A1 (en) | 2012-04-16 | 2013-10-17 | Qualcomm Incorporated | View synthesis based on asymmetric texture and depth resolutions |
AU2012202352A1 (en) | 2012-04-20 | 2013-11-07 | Canon Kabushiki Kaisha | Method, system and apparatus for determining a hash code representing a portion of an image |
US9979958B2 (en) * | 2012-04-20 | 2018-05-22 | Qualcomm Incorporated | Decoded picture buffer processing for random access point pictures in video sequences |
US9549180B2 (en) * | 2012-04-20 | 2017-01-17 | Qualcomm Incorporated | Disparity vector generation for inter-view prediction for video coding |
US9479776B2 (en) | 2012-07-02 | 2016-10-25 | Qualcomm Incorporated | Signaling of long-term reference pictures for video coding |
TWI606716B (zh) * | 2012-07-09 | 2017-11-21 | Vid衡器股份有限公司 | 多層視訊編碼編解碼器架構 |
US9264713B2 (en) | 2012-07-11 | 2016-02-16 | Qualcomm Incorporated | Rotation of prediction residual blocks in video coding with transform skipping |
US9277237B2 (en) | 2012-07-30 | 2016-03-01 | Vmware, Inc. | User interface remoting through video encoding techniques |
US9467692B2 (en) | 2012-08-31 | 2016-10-11 | Qualcomm Incorporated | Intra prediction improvements for scalable video coding |
US9565452B2 (en) * | 2012-09-28 | 2017-02-07 | Qualcomm Incorporated | Error resilient decoding unit association |
CN103841426B (zh) * | 2012-10-08 | 2017-04-26 | 华为技术有限公司 | 用于运动矢量预测的运动矢量列表建立的方法、装置 |
US9225979B1 (en) | 2013-01-30 | 2015-12-29 | Google Inc. | Remote access encoding |
US11317123B2 (en) | 2013-04-25 | 2022-04-26 | Vmware, Inc. | Systems and methods for using pre-calculated block hashes for image block matching |
CN104142939B (zh) | 2013-05-07 | 2019-07-02 | 杭州智棱科技有限公司 | 一种基于运动特征信息匹配特征码的方法与设备 |
CN103281538B (zh) | 2013-06-06 | 2016-01-13 | 上海交通大学 | 基于滚动哈希和块级别帧内预测的帧内编码方法 |
US9210434B2 (en) | 2013-06-12 | 2015-12-08 | Microsoft Technology Licensing, Llc | Screen map and standards-based progressive codec for screen content coding |
US20140369413A1 (en) | 2013-06-18 | 2014-12-18 | Vmware, Inc. | Systems and methods for compressing video data using image block matching |
US10812694B2 (en) | 2013-08-21 | 2020-10-20 | Faro Technologies, Inc. | Real-time inspection guidance of triangulation scanner |
US20150063451A1 (en) | 2013-09-05 | 2015-03-05 | Microsoft Corporation | Universal Screen Content Codec |
JP6212345B2 (ja) | 2013-10-02 | 2017-10-11 | ルネサスエレクトロニクス株式会社 | 動画像符号化装置およびその動作方法 |
CN105684441B (zh) | 2013-10-25 | 2018-09-21 | 微软技术许可有限责任公司 | 视频和图像编码中的基于散列的块匹配 |
EP3061233B1 (en) | 2013-10-25 | 2019-12-11 | Microsoft Technology Licensing, LLC | Representing blocks with hash values in video and image coding and decoding |
US10567754B2 (en) | 2014-03-04 | 2020-02-18 | Microsoft Technology Licensing, Llc | Hash table construction and availability checking for hash-based block matching |
CN105556971B (zh) | 2014-03-04 | 2019-07-30 | 微软技术许可有限责任公司 | 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定 |
WO2015139165A1 (en) | 2014-03-17 | 2015-09-24 | Microsoft Technology Licensing, Llc | Encoder-side decisions for screen content encoding |
EP3158751B1 (en) | 2014-06-23 | 2019-07-31 | Microsoft Technology Licensing, LLC | Encoder decisions based on results of hash-based block matching |
WO2016018422A1 (en) | 2014-07-31 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | Virtual changes to a real object |
CA2961089C (en) | 2014-09-30 | 2023-03-28 | Microsoft Technology Licensing, Llc | Hash-based encoder decisions for video coding |
CN104574440A (zh) | 2014-12-30 | 2015-04-29 | 安科智慧城市技术(中国)有限公司 | 一种视频运动目标跟踪方法及装置 |
US10390039B2 (en) | 2016-08-31 | 2019-08-20 | Microsoft Technology Licensing, Llc | Motion estimation for screen remoting scenarios |
US11095877B2 (en) | 2016-11-30 | 2021-08-17 | Microsoft Technology Licensing, Llc | Local hash-based motion estimation for screen remoting scenarios |
-
2014
- 2014-06-23 EP EP14895767.3A patent/EP3158751B1/en active Active
- 2014-06-23 CN CN201480048046.9A patent/CN105706450B/zh active Active
- 2014-06-23 KR KR1020177002065A patent/KR102287779B1/ko active IP Right Grant
- 2014-06-23 WO PCT/CN2014/080481 patent/WO2015196322A1/en active Application Filing
- 2014-06-23 EP EP19182387.1A patent/EP3598758B1/en active Active
- 2014-06-23 US US15/321,536 patent/US10681372B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1857001A (zh) * | 2003-05-20 | 2006-11-01 | Amt先进多媒体科技公司 | 混合视频压缩方法 |
CN1874487A (zh) * | 2005-06-03 | 2006-12-06 | 中国科学院研究生院 | 数字电视信号安全认证装置及带有该装置的电视设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3158751A1 (en) | 2017-04-26 |
CN105706450A (zh) | 2016-06-22 |
US20170163999A1 (en) | 2017-06-08 |
EP3158751A4 (en) | 2017-07-12 |
KR20170021337A (ko) | 2017-02-27 |
KR102287779B1 (ko) | 2021-08-06 |
EP3598758B1 (en) | 2021-02-17 |
EP3158751B1 (en) | 2019-07-31 |
WO2015196322A1 (en) | 2015-12-30 |
US10681372B2 (en) | 2020-06-09 |
EP3598758A1 (en) | 2020-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105706450B (zh) | 根据基于散列的块匹配的结果的编码器决定 | |
CN105359531B (zh) | 用于针对屏幕内容编码的编码器侧判定的方法和系统 | |
CN105981382B (zh) | 用于视频编码的基于散列的编码器判定 | |
CN105917648B (zh) | 具有非对称分区的帧内块复制预测以及编码器侧搜索图案、搜索范围和用于分区的方法 | |
CN105393537B (zh) | 用于基于散列的块匹配的散列表构建和可用性检查 | |
CN105556971B (zh) | 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定 | |
CN106416254B (zh) | 在媒体编码期间跳过评估阶段 | |
CN105960802B (zh) | 切换色彩空间时对编码和解码的调整 | |
CN105684409B (zh) | 在视频和图像编码和解码中使用散列值来表示各块 | |
CN105684441B (zh) | 视频和图像编码中的基于散列的块匹配 | |
CN105874795B (zh) | 在波前并行处理被启用时对图片内预测模式的规则 | |
CN105264888B (zh) | 用于对色彩空间、色彩采样率和/或比特深度自适应切换的编码策略 | |
CN105432077B (zh) | 在切换色彩空间时调整量化/缩放和逆量化/缩放 | |
CN105659602B (zh) | 用于视频和图像编码的帧内块复制预测模式的编码器侧选项 | |
CN105765974B (zh) | 用于视频和图像编码和解码的帧内块复制预测模式的特征 | |
CN105874791B (zh) | 在对重叠区域内的经重构样本值的块向量预测和估计方面的创新 | |
CN105230023B (zh) | 色彩空间、色彩采样率和/或比特深度的自适应切换 | |
CN105493505B (zh) | 统一的帧内块复制和帧间预测模式 | |
CN107211155A (zh) | 图内块拷贝预测模式下的合并的色度块的特殊情况处理 | |
CN107431814B (zh) | ρ域速率控制的变化的方法、系统及计算机可读存储器 | |
CN107113422A (zh) | 用于视频编码和解码的灵活的参考图片管理 | |
CN110024398A (zh) | 针对屏幕远程处理场景的局部的基于散列的运动估计 | |
CN109076241A (zh) | 利用样本值的非相邻参考线进行帧内图片预测 | |
CN106664405A (zh) | 用调色板模式对经逸出编码的像素的稳健编码/解码 | |
CN105917650A (zh) | 视频和图像编码/解码中的块向量预测 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |