CN105359531B - 用于针对屏幕内容编码的编码器侧判定的方法和*** - Google Patents

用于针对屏幕内容编码的编码器侧判定的方法和*** Download PDF

Info

Publication number
CN105359531B
CN105359531B CN201480037981.5A CN201480037981A CN105359531B CN 105359531 B CN105359531 B CN 105359531B CN 201480037981 A CN201480037981 A CN 201480037981A CN 105359531 B CN105359531 B CN 105359531B
Authority
CN
China
Prior art keywords
block
value
encoder
coding
estimation
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
Application number
CN201480037981.5A
Other languages
English (en)
Other versions
CN105359531A (zh
Inventor
B·李
J·徐
F·吴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105359531A publication Critical patent/CN105359531A/zh
Application granted granted Critical
Publication of CN105359531B publication Critical patent/CN105359531B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/187Methods 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 a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/557Motion estimation characterised by stopping computation or iteration based on certain criteria, e.g. error magnitude being too large or early exit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/567Motion estimation based on rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (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标准的扩展处于开发中。视频编解码器标准通常定义针对经编码的视频比特流的句法的选项,从而详述当在编码和解码时使用特定特征时该比特流中的参数。在许多情况下,视频编解码器标准还提供关于解码器应当执行以在解码时取得一致的结果的解码操作的细节。除了编解码器标准外,各种专用编解码器格式定义针对经编码的视频比特流的句法的其他选项以及相应的解码操作。
如当前在一些参考软件中针对H.265/HEVC标准(及其扩展)实现的,编码器侧判定在各种情况下(尤其是在编码模式和屏幕内容视频的选项方面)并不被高效地作出。
发明内容
简言之,详细描述呈现了在针对屏幕内容视频或其他视频的编码的编码器侧判定方面的创新。例如,这些创新中的一些涉及通过标识出不同参考图片中用于运动估计的合适开始点来加速该运动估计的方式。其他创新涉及在基于散列的块匹配被使用时加速编码的方式。又一些创新涉及用于标识某些图片内预测模式在编码期间何时应当或不应当被评估的方式,该标识可加速编码。其他创新涉及其他编码方面。
根据本文中描述的创新的第一方面,在视频的编码期间,视频编码器为当前图片的当前块执行运动估计以为当前块选择运动矢量(“MV”)值。作为运动估计的一部分,视频编码器评估多个参考图片中的每一者中的一个或多个候选MV值。对于多个参考图片中的每一者,视频编码器仅用使用该参考图片的先前编码的块的一个或多个MV值(即不用使用任何其他参考图片的先前编码的块的任何MV值)来确定用于运动估计的开始点。例如,编码器从使用参考图片的先前编码的块的(诸)MV值确定MV预测值,随后将这些MV预测值所指示的位置用作那个参考图片中用于运动估计的开始点。视频编码器使用当前块的MV值来对当前块进行编码。
根据这些创新的另一方面,在图像或视频的编码期间,编码器对当前图片的当前块执行基于散列的块匹配。基于条件是否被满足,编码器确定是否为当前块跳过一个或多个编码阶段。该条件取决于在针对当前块的基于散列的块匹配期间是否发现了匹配。该条件还可取决于其他因素(例如,当前块的预期质量相对于用于该匹配的候选块的质量和/或当前块的块尺寸相对于阈值块尺寸)。基于该确定的结果,编码器为当前块选择性地跳过(诸)编码阶段。
例如,该针对当前块的基于散列的块匹配被执行用于运动估计,并且有可能被跳过的(诸)编码阶段包括针对当前块的部分精密(fractional-precision)运动估计或对当前块的编码模式和编码选项的评估。或者,该针对当前块的基于散列的块匹配被执行用于块矢量估计,并且有可能被跳过的(诸)编码阶段包括对当前块的图片内编码模式和编码选项的评估。
根据本文中描述的这些创新的另一方面,在图像或视频的编码期间,编码器测量该图像或视频的单元(例如,块、片、图片)中的不同色彩的数目。至少部分地基于该测量的结果,编码器为该单元确定是否跳过一个或多个图片内预测模式(例如,帧内块复制(“BC”)预测和/或字典编码模式)。例如,编码器将该测量的结果与阈值进行比较。如果没有为该单元跳过(诸)图片内预测模式,则编码器为该单元评估(诸)图片内预测模式。
根据本文中描述的这些创新的另一方面,在图像或视频的编码期间,编码器为当前图片的当前块标识空间图片内预测的候选方向集合。在对候选方向集合中的每一者执行了速率失真分析后,编码器选择候选方向集合中的一个候选方向以供使用那个候选方向来对当前块进行编码,而无需基于速率失真优化的量化(“RDOQ”)。随后,在当前块是使用所选的候选方向来进行编码时,编码器为当前块确定如何对残留四叉树进行编码。在该阶段,编码器用RDOQ执行速率失真分析以得到对残留四叉树进行编码的不同方式。
根据本文中描述的这些创新的另一方面,在图像或视频的编码期间,编码器检查当前块是否是使用帧内BC预测来编码的。取决于当前块是否是使用帧内BC预测来编码的,编码器为当前块启用或禁用变换模式。编码器随后对当前块进行编码。例如,如果当前块是使用帧内BC预测来编码的,则编码器评估当前块的变换跳跃模式而不评估变换模式。否则(当前块不是使用帧内BC预测来编码的),编码器评估当前块的变换跳跃模式以及变换模式。
针对编码器侧判定的创新可以被实现为方法的一部分、被适配成执行该方法的计算***的一部分或存储用于使计算***执行该方法的计算机可执行指令的有形计算机可读介质的一部分。各创新可以结合地或分开地使用。
参考附图阅读以下详细描述,将更清楚本发明的前述和其他目标、特征和优点。
附图说明
图1是其中可实现所描述的一些实施例的示例计算***的示图。
图2a和2b是其中可实现所描述的一些实施例的示例网络环境的示图。
图3是结合其可实现所描述的一些实施例的示例编码器***的示图。
图4a和4b是示出结合其可实现所描述的一些实施例的示例视频编码器的示图。
图5是示出针对图片的块的运动估计的示图。
图6和7是示出确定不同的参考图片中用于运动估计的开始点的示例方法的示图。
图8是示出用于执行运动估计的通用技术的流程图,其中某参考图片中的开始点是仅用使用该参考图片的MV值来确定的。
图9和10是示出对图片的块和该块在块匹配中的候选块的帧内BC预测的示图。
图11是示出在基于散列的块匹配中的候选块的散列值的表。
图12a-12c是示出为基于散列的块匹配组织候选块的示例数据结构的表。
图13a-13c是示出为迭代的基于散列的块匹配组织候选块的示例数据结构的表。
图14和15是示出用于取决于基于散列的块匹配的结果选择性地跳过一个或多个编码阶段的技术的流程图。
图16是示出自然视频和屏幕捕捉视频的块的特征的示图。
图17是示出用于取决于对视频单元中的不同色彩的数目的测量选择性地跳过对一个或多个图片内预测模式的评估的通用技术的流程图。
图18是示出示例空间图片内预测方向的示图。
图19是示出残留四叉树的示例组织的示图。
图20是示出用于为用空间图片内预测编码的块作出编码判定的示例技术的流程图。
图21是示出用于为用帧内BC预测编码的块选择性地跳过变换模式的通用技术的流程图。
具体实施方式
该详细描述呈现了用于对屏幕内容视频或其他视频进行编码的编码器侧判定方面的创新。例如,这些创新中的一些涉及通过标识出不同参考图片中用于运动估计的合适开始点来该加速运动估计的方式。这些编码器侧判定中的许多通过在条件被满足时终止对块的编码或跳过对某些模式或选项的评估来加速编码。例如,这些创新中的一些涉及用于在基于散列的块匹配被使用时加速编码的方式。又一些创新涉及标识某些图片内预测模式在编码期间何时应当或不应当被评估的方式。其他创新涉及其他编码方面。
虽然本文中描述的操作是被适当描述为由视频编码器来执行,但在许多情况中,这些操作可由另一类型的媒体处理工具(例如图像编码器)来执行。
本文中描述的一些创新是参考专用于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)的格式被编码。编码/解码屏幕捕捉内容的常见场景包括远程桌面会议和对自然视频或其它“经混合的内容”视频的图形覆盖的编码/解码。本文中描述的创新中的若干个(例如,取决于基于散列的块匹配的结果来加速运动估计或块矢量估计、选择性地跳过某些图片内预测模式)被适配成用于对屏幕内容或其他人工创建的视频进行编码。这些创新也可以被用于自然视频,但可能不像那样有效。本文中描述的其他创新(例如,对运动估计的开始位置的计算)对于对自然视频或人工创建的视频进行编码是有效的。
更一般地,本文中描述的各示例的各种替代是可能的。例如,本文中描述的一些方法可以通过改变描述的方法动作的顺序、通过拆分、重复或忽略某些方法动作等来更改。所公开的技术的各方面能够被组合地或分开地使用。不同的实施例使用所描述的创新中的一个或多个。本文中描述的一些创新解决了背景中指出的一个或多个问题。通常,所给出的技术/工具并不解决所有这些问题。
I.示例计算***
图1示出了其中可实现几个所描述的创新的合适计算***(100)的概括示例。计算***(100)并不旨对使用范围或功能提出任何限制,因为这些创新可以在不同的通用或专用计算***中实现。
参考图1,计算***(100)包括一个或多个处理单元(110、115)和存储器(120、125)。处理单元(110、115)执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”)、专用集成电路(“ASIC”)中的处理器或任意其它类型的处理器。在多处理***中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图1示出中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120、125)可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或两者的某种组合,可由处理单元存取。存储器(120,125)存储实现针对屏幕内容编码的编码器侧判定的一个或多个创新的软件(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)做出的解码。图4a示出可以被包括在实时通信工具(210)中的示例解码器***(400)。替换地,实时通信工具(210)使用另一解码器***。
在图2b中示出的网络环境(202)中,编码工具(212)包括编码供递送给多个回放工具(214)的视频的编码器(220),此多个回放工具(214)包括解码器(270)。单向通信可被提供用于视频监视***、web相机监视***、屏幕捕捉模块、远程桌面会议演示或在其中编码视频并将其从一个位置发送到一个或多个其它位置的其它场景。虽然在图2b中的网络环境(202)包括两个回放工具(214),但该网络环境(202)可以包括更多或更少的回放工具(214)。一般来说,回放工具(214)与编码工具(212)通信以确定回放工具(214)要接收的视频流。回放工具(214)接收该流、缓冲所接收的经编码的数据达合适的时间段并开始解码和回放。
图3示出可以被包括在编码工具(212)中的示例编码器***(300)。替换地,编码工具(212)使用另一编码器***。编码工具(212)还可以包括用于管理与一个或多个回放工具(214)的连接的服务器侧控制器逻辑。图4b示出可以被包括在回放工具(214)中的示例解码器***(400)。替换地,回放工具(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)向解码器指示哪些经重构的帧可被用作参考帧,并且因此应该被存储在帧存储区域中。
一般来说,编码器(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还具有一个或多个变换单元,其中变换单元(“TU”)具有一变换块(“TB”)和两个色度TB。在帧内预测的CU中的PU可以包含单个TU(尺寸与PU相同)或多个TU。编码器决定如何将视频分割成CTU、CU、PU、TU等。
在H.265/HEVC实现中,片可以包括单个片段(独立的片段)或被划分成多个片段(独立的片段和一个或多个从属的片段)。片段是在小块扫描中包含在单个网络抽象层(“NAL”)单元中的连续排序的整数个CTU。对于独立的片段,片段头部包括适用于该独立的片段的句法元素的值。对于从属片段,截断的片段头部包括适用于该从属片段的句法元素的几个值,并且从属片段的其它句法元素的值是以解码顺序从在前的独立的片段的值中推导出来的。
如本文中所使用的,术语“块”可以指示宏块、预测单元、残留数据单元、或者CB、PB或TB,或者某些其它样本值集,这取决于上下文。
回到图3,编码器根据来自源帧(331)中的其它、先前重构的样本值的预测来表示该帧(331)内编码的块。对于帧内BC预测,图片内估计器估计块相对于其它、先前重构的采样值的块的位移。帧内预测参考区域是帧中用于生成块的BC预测值的样本值区域。帧内预测区域可以用(在BV估计中确定的)块矢量(“BV”)值来指示。对于BV估计期间的基于散列的块匹配,散列表可被使用。对于块的空间内预测,图片内估计器估计相邻的经重构的样本值到该块的外插。图片内估计器可以输出经熵编码的预测信息(例如帧内BC预测的BV值或帧内空间预测的预测模式(方向))。帧内预测预测器应用预测信息来确定帧内预测值。以下描述了在图片内编码期间作出判定的示例方法。
编码器(340)依据来自参考帧的预测来表示源帧(331)的帧间编码的预测的块。运动估计器估计块相对于一个或多个参考帧(369)的运动。对于运动估计期间的基于散列的块匹配,散列表可被使用。当使用多个参考帧时,这多个参考帧可来自不同的时间方向或相同的时间方向。经运动补偿的预测参考区域是在参考帧中被用于生成当前帧的采样值的块的经运动补偿的预测值的采样值的区域。运动估计器输出经熵编码的诸如运动矢量(“MV”)信息之类的运动信息。运动补偿器将MV应用于参考帧(369)以确定用于帧间预测的经运动补偿的预测值。以下描述了在图片内编码期间作出判定的示例方法。
编码器可以确定在块预测值(帧内或帧间)和对应的原始值之间的差值(如果有的话)。这些预测残留值将进一步使用频率变换、量化和熵编码来编码。例如,编码器(340)为图片、小块、片和/或视频的其它部分设置量化参数(“QP”)的值,并相应地量化变换系数。编码器(340)的熵编码器压缩经量化的变换系数值以及某些辅助信息(例如MV信息、BV预测值的索引值、BV差、QP值、模式判定、参数选择)。典型的熵编码技术包括指数-Golomb编码、Golomb-Rice编码、算术编码、差分编码、Huffman编码、行程长度编码、可变长度对可变长度(“V2V”)编码、可变长度对固定长度(“V2F”)编码、Lempel-Ziv(“LZ”)编码、字典编码、概率区间划分熵编码(“PIPE”)和上述编码的组合。熵编码器可对不同种类的信息使用不同的编码技术,并可组合地应用多个技术(例如,通过应用Golomb-Rice编码,随后应用算术编码),并可从特定编码技术内的多个码表中进行选择。
自适应去块滤波器可以被包括在编码器(340)中的运动补偿循环内以平滑经解码的帧中的块边界行和/或列上的间断。可替换地或另外地应用其它滤波(诸如去振铃滤波、自适应环路滤波(“ALF”)或样本自适应偏移(“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)以及帧内/帧间切换)以设置和改变编码期间的编码参数。具体地,通用编码控制(420)可在编码期间管理关于编码模式的判定。通用编码控件(420)还可以估计编码期间的中间结果,例如执行速率-失真分析来估计。通用编码控件(420)产生指示在编码期间所做出的判定的通用控制数据(422),使得对应的解码器可以作出一致的判定。通用控制数据(422)被提供给头部格式化器和熵编码器(490)。
如果使用图片间预测来预测当前的图片,运动估计器(450)相对于一个或多个参考图片估计输入视频信号(405)的当前图片的采样值的块的运动。经解码的图片缓冲器(470)缓冲一个或多个经重构的先前编码的图片以供用作参考图片。对于运动估计期间的基于散列的块匹配,运动估计器(450)可使用块散列字典(未示出)来寻找当前块的MV值。块散列字典是为基于散列的块匹配组织候选块的数据结构,如以下所描述的。块散列字典是散列表的示例。运动估计器(450)可使用来自基于散列的块匹配的结果作出关于是否执行某些编码阶段(例如,部分精密运动估计、针对经运动补偿的块的编码模式和选项的评估)的判定,如以下所描述的。
当使用多个参考图片时,这多个参考图片可以来自不同的时间方向或相同的时间方向。运动估计器(450)可使用以下解释的方法来确定不同参考图片中用于运动估计的开始点。
运动估计器(450)产生诸如MV数据、合并模式索引值和参考图片选择数据的辅助信息运动数据(452)。运动数据(452)被提供给头部格式化器和熵编码器(490)以及运动补偿器(455)。
运动补偿器(455)将MV应用于来自经解码的图片缓冲器(470)的(诸)经重构的参考图片。运动补偿器(455)产生针对当前图片的经运动补偿的预测。
在编码器(400)内的分开的路径中,图片内估计器(440)确定如何执行对输入视频信号(405)的当前图片的样本值块的图片内预测。当前图片可全部或部分使用图片内编码来编码。对于空间内预测,使用当前图片的重构(438)的值,图片内估计器(440)确定如何从当前图片的邻近的、先前重构的样本值中空间地预测当前图片的当前块的样本值。图片内估计器(440)可使用以下解释的方法来确定要对当前块使用的空间预测的方向(并作出针对当前块的其他编码判定)。
或者,对于使用BV值的帧内BC预测,图片内估计器(440)估计当前块的样本值到当前图片内的不同候选参考区域的位移。针对BV估计期间的基于散列的块匹配,图片内估计器(440)可使用块散列字典(441)来寻找当前块的BV值。块散列字典(441)是为基于散列的块匹配组织候选块的数据结构,如以下所描述的。块散列字典(441)是散列表的示例。图片内估计器(440)可使用来自基于散列的块匹配的结果作出关于是否执行某些编码阶段(例如,针对帧内BC预测的块的编码模式和选项的评估)的判定,如以下所描述的。在图4b中,块散列字典(441)是基于原始样本值构建的。替换地,块散列字典可基于重构的样本值来构建并在编码器期间被更新,以存储关于新的候选块(如变得可用于供在基于散列的块匹配时使用的那些候选块)的信息。
或者,对于图片内字典编码模式,块中的像素是使用存储在字典或其他位置的先前的样本值来编码的,其中一像素是位于同处的各样本值的集合(例如,RGB三元组或YUV三元组)。例如,编码器(400)可计算先前重构的样本值(例如,1个像素、2个像素、4个像素、8个像素并以此类推的群组)的散列值并将那些散列值与正被编码的当前像素集合的散列值进行比较。长度为一或更多的匹配可在先前重构的样本值中基于散列比较来标识出。(诸)当前像素(或样本值)可使用标识在先前像素内(例如,字典中)的位置的偏移以及指示从该偏移预测出的像素数的长度以各种1-D和伪2-D字典模式来编码。通常,没有计算出针对用图片内字典编码模式编码的块的残留值。
图片内估计器(440)产生帧内预测数据(442)作为副信息,帧内预测数据(442)为诸如指示帧内预测是否使用空间预测、帧内BC预测或字典模式、预测模式方向(用于空间内预测)、BV值(用于帧内BC预测)以及偏移和长度(用于字典模式)的信息。帧内预测数据(442)被提供给头部格式化器和熵编码器(490)以及图片内预测器(445)。
根据帧内预测数据(442),图片内预测器(445)从当前图片的邻近的先前重构的采样值中在空间上预测当前图片的当前块的采样值。或者,对于帧内BC预测,图片内预测器(445)使用图片内预测参考区域的先前重构的样本值来预测当前块的样本值,图片内预测参考区域由针对当前块的BV值指示。在一些情况中,BV值可以是BV预测值(预测的BV值)。在其它情况中,BV值可以不同于其被预测的BV值,在该情况中BV差异指示了在被预测的值BV和BV值之间的差值。或者,对于图片内字典模式,图片内预测器(445)使用偏移和长度重构各像素。
帧内/帧间切换选择对给定块的预测(458)将是经运动补偿的预测还是图片内预测。编码器(400)可取决于某一块中的色彩的数目而为该块跳过对某些编码模式(诸如帧内BC预测和/或字典编码)的评估。
对于非字典模式,预测(458)的块和输入视频信号(405)的原始当前图片的对应部分之间的差异(如果有的话)为非跳跃模式块提供残留值(418)。在当前图片的重构期间,对于非跳跃模式块(其不是用字典模式编码的),经重构的残留值与预测(458)组合来从视频信号(405)中产生对原始内容的近似或精确的重构(438)。(在有损压缩中,一些信息从视频信号(405)中丢失。)
在变换器、缩放器、量化器(430)中,对于非字典模式,频率变换器将空间域视频信息转换为频域(即频谱、变换)数据。对于基于块的视频编码,频率变换器将离散余弦变换(“DCT”)、其整数近似、或其它类型的前向块变换(例如离散正弦变换或其整数近似)应用于预测残留数据的块(如果预测(458)为空则应用于采样值数据),产生频率变换系数的块。变换器、缩放器、量化器(430)可以应用具有可变块尺寸的变换。在这种情况中,变换器、缩放器、量化器(430)可以使用以下解释的方法来确定要使用哪些块尺寸的变换来得到当前块的残留值。在一些情况下,编码器(400)还可跳过变换步骤。例如,对于帧内BC预测的块,编码器(400)可跳过变换步骤,如以下解释的。
缩放器、量化器对变换系数进行缩放和量化。例如,量化器将以逐图片基础、逐小块基础、逐片基础、逐块基础、频率专用基础或其它基础来变化的量化步进尺寸将死区标量量化应用于频域数据。经量化的变换系数数据(432)被提供给头部格式化器和熵编码器(490)。
在缩放器和逆变换器(435)中,对于非字典模式,缩放器/逆量化器对经量化的变换系数执行逆缩放和逆量化。当变换阶段没有被跳过时,逆频率变换器执行逆频率变换,生成经重构的预测残留值或采样值的块。对于非跳跃模式块(其不是用字典模式来编码的),编码器(400)将经重构的残留值与预测(458)的值(例如,经运动补偿的预测值、图片内预测值)组合以形成重构(438)。对于跳跃模式块或字典模式块,编码器(400)使用预测(458)的值作为重构(438)。
对于图片内预测,重构(438)的值可以被馈送回图片内估计器(440)和图片内预测器(445)。在一些实现中,重构(438)的值还可用于更新块散列字典(541)。同样,重构(438)的值可以被用于后续图片的经运动补偿的预测。重构(438)的值可以被进一步滤波。对于视频信号(405)的给定图片,滤波控件(460)确定如何对重构(438)的值执行去块滤波和SAO滤波。滤波控件(460)生成滤波控制数据(462),它被提供给头部格式化器和熵编码器(490)和合并器、(诸)滤波器(465)。
在合并器、(诸)滤波器(465)中,编码器(400)将来自不同小块的内容合并到图片的经重构版本中。编码器(400)根据滤波器控制数据(462)选择性地执行去块滤波和SAO滤波,以便自适应地平滑跨各图片中的各边界上的间断。可替换地或另外地应用其它滤波(例如去振铃滤波或ALF;未示出)。取决于编码器(400)的设置,小块边界可以被选择性地滤波或根本不被滤波,并且编码器(400)可以在经编码的比特流内提供指示是否应用这样的滤波的句法。经解码的图片缓冲器(470)缓冲经重构的当前图片以供在后续的经运动补偿的预测中使用。
头部格式化器和熵编码器(490)格式化和/或熵编码通用控制数据(422)、量化的变换系数数据(432)、帧内预测数据(442)、运动数据(452)以及滤波器控制数据(462)。对于运动数据(452),头部格式化器和熵译码器(490)可以选择并熵译码合并模式索引值,或可使用默认的MV预测器。在一些情况中,头部格式化器和熵译码器(490)还确定MV值(相对于MV值的MV预测器)的MV差异,随后熵译码MV差异,例如使用上下文自适应二进制算术译码。对于帧内预测数据(442),头部格式化器和熵编码器(490)可以选择(帧内BC预测的)BV预测值索引值并对其进行熵编码,或者可使用默认BV预测值。在一些情况中,头部格式化器和熵编码器(490)还(相对于BV值的BV预测值)确定BV值的BV差,随后对BV差进行熵编码,例如使用上下文自适应二进制算术编码来对BV差进行熵编码。
头部格式化器和熵编码器(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.确定不同参考图片中用于运动估计的开始点。
本章节呈现通过标识不同参考图片中用于运动估计的合适开始点来加速该运动估计的各种方式。
A.运动估计和MV值——介绍
对于运动估计,当前图片中的当前块的样本值是使用另一图片(其被称为参考图片)中的样本值来预测的。运动矢量(“MV”)值指示从当前块在参考图片中的位置到参考图片的包括用于预测的样本值的区域(“参考区域”)的位移。参考区域为当前块提供预测的值。用于预测的样本值是先前重构的样本值,由此这些样本值可在编码期间在编码器处获得并在解码期间在解码器处获得。MV值在比特流中被信号化,并且解码器可以使用该MV值来确定参考图片的参考区域以用于预测,其也在解码器处被重构。当多个参考图片可用时,比特流还可包括关于要使用哪个参考图片来找到参考区域的指示。
图5示出针对当前图片(510)的当前块(530)的运动预测。当前块可以是编码单元(“CU”)的编码块(“CB”)、预测单元(“PU”)的预测块(“PB”)、变换单元(“TU”)的变换块(“TB”)或其它块。
当前块的尺寸可以是64×64、32×32、16×16、8×8或某个其它尺寸。更一般地,当前块的尺寸为m×n,其中m和n中的每一者都是整数,并且其中m和n可彼此相等或可具有不同的值。这样,当前块可以是正方形或矩形。或者,当前块可以具有某种其它形状。
MV值(540)指示从当前块(530)的位置到参考图片(550)中包括用于预测的样本值的参考区域(有时被称为参考块)的位移(或偏移)。该MV值(540)所指示的参考区域有时被称为当前块(530)的“匹配块”。匹配块可与当前块(530)相同,或它可以是当前块(530)的近似。假设当前(530)块的左上位置在当前图片(510)中的位置(x0,y0)处,并假设参考区域的左上位置在参考图片(550)中的位置(x1,y1)处。MV值(540)指示位移(x1-x0,y1-y0)。例如,如果当前块的左上位置在位置(256,128)处,并且参考区域的左上位置在位置(126,104)处,该MV值为(-130,-24)。在本示例中,负水平位移指示在当前块的左边的位置,而负垂直位移指示在当前块之上的位置。
当前块(530)的参考区域是在运动估计期间从多个候选块之中选出的。图5还示出运动估计中针对当前图片(510)的当前块(530)的某些候选块。四个MV值(541,542,543,544)指示四个候选参考块的位移。一般来说,这些候选块可在参考图片(550)内的任何地方。候选块可与其它候选块重叠,如针对MV值(543,544)所指示的候选块示出的。运动估计的计算复杂度在MV值的搜索范围包含参考图片的全部区域时因当前块与大量候选块比较,而特别成问题。当运动估计针对多个参考图片执行时,该计算复杂性更加复杂。在许多情况下,编码器可通过以下方式来限制运动估计的计算复杂性:在有可能以良好的预测产生MV值的点开始运动估计,随后按需从那个开始点起向外扩展,以估计其他候选块,并且只要编码器寻找到足够好的MV值就终止搜索过程。
在针对多个参考图片的运动估计的一些先前实现中,编码器如下确定参考图片中用于运动估计的开始点。编码器将MV预测值的位置标识成运动估计的开始点。例如,对于当前块,编码器(使用被用来对空间上相邻的块或时间上相邻的块进行编码的MV值)获得两个MV预测值,并将具有较小预测误差(或预测成本)的MV预测值选为参考图片中用于运动估计的开始点。如果相邻块所使用的参考图片与正被评估以找出当前块的运动估计的参考图片不同,则编码器根据图序计数(“POC”)值中的差异来缩放MV预测值。
例如,假设当前图片的POC值为10,而左边的邻近块使用具有为9的POC值的参考图片。左边的邻近块的MV值为(1,2),并且其被用作针对当前块的MV预测值。对于具有为9的POC值的参考图片中的运动估计,该运动估计的开始点是离开当前块的左上位置的坐标(1,2)的位置。然而,对于另一参考图片,MV预测值被缩放。例如,假设编码器在具有为0的POC值的参考图片中执行运动估计。来自左边的邻近块的MV预测值被缩放了因子(10-9)/(10-0)=10。因此,MV预测值变为(10,20),并且参考图片(具有为0的POC值)中的运动估计的开始点是离开当前块的左上位置的坐标(10,20)的位置。
在许多情况下,通过缩放MV预测值来确定用于运动估计的开始点是不可靠的。具体地,这样的开始点可导致对具有大幅度运动的视频的低效运动估计,而具有大幅度运动的视频对于屏幕捕捉视频和其他人工创建的视频而言是常见的。
B.选择不同参考图片中用于运动估计的合适开始点。
本章节呈现通过标识不同参考图片中用于运动估计的合适开始点来加速该运动估计的各种方式。通过选择较有可能快速地产生合适的MV值的开始点,可通过搜索过程的早期终止来降低运动估计的计算复杂性。
图6示出了确定不同的参考图片中用于运动估计的开始点的示例方法。在该方法中,编码器使用相邻块的MV值(其参考在参考图片中的位置)来确定仅在同一参考图片中的运动估计的开始点,而无需缩放。对于不同的参考图片,编码器使用不同的MV值(其参考在那个不同参考图片中的位置)来确定运动估计的开始点,而无需缩放。编码器可缓冲用于对当前图片中的块进行编码的MV值(以及参考图片的指示符)以及在针对当前图片的相应块的其他参考图片的运动估计期间评估的最佳MV值,并在选择用于运动估计的开始点时使用这样的经缓冲的MV值。
在图6中,当前图片(610)的当前块(630)包括分别在当前块(630)的左方、上方和右上方的三个空间上相邻的块(631、632、633)。对于空间上相邻的块(631、632、633)中的每一者,编码器缓冲两个MV值。这些MV值(641、642或643)之一指示在第一参考图片(660)中的位置。其他MV值(651、652或653)指示在第二参考图片(670)中的位置。对于第一参考图片(660),编码器基于与第一参考图片(660)相关联的邻近MV值(641、642、643)来确定在由MV预测值(662)所指示的位置处的用于运动估计的开始点(664)。例如,编码器将MV预测值(662)选为具有最佳预测成本或最低预测误差的邻近MV值(641、642或643),或将MV预测值(662)确定为是邻近MV值(641、642、643)的逐分量的中值,或者以其他方式基于邻近MV值(641、642、643)推导出MV预测值(662)。类似地,对于第二参考图片(670),编码器基于与第二参考图片(670)相关联的邻近MV值(651、652、653)来确定在由MV预测值(672)所指示的位置处的用于运动估计的开始点(674)。例如,编码器将MV预测值(672)选为具有最佳预测成本或最低预测误差的邻近MV值(651、652或653),或将MV预测值(672)确定为是邻近MV值(651、652、653)的逐分量中值,或者以其他方式基于邻近MV值(651、652、653)推导出MV预测值(672)。
图7示出了确定不同的参考图片中用于运动估计的开始点的另一示例方法。在该方法中,编码器将包括当前块的较大块的MV值(其参考在参考图片中的位置)用作仅在同一参考图片中的运动估计的开始点,而无需缩放。对于不同的参考图片,编码器将较大块的不同的MV值(其参考在那个不同参考图片中的位置)用作运动估计的开始点,而无需缩放。编码器可缓冲用于对当前图片中的给定尺寸(例如64x64)的块进行编码的MV值(以及参考图片的指示符)以及在针对给定尺寸的相应块的其他参考图片的运动估计期间评估的最佳MV值,并在为较小的块(例如,32x32块、32x64块或64x32块)选择用于运动估计的开始点时使用这样的经缓冲的MV值。这例如在编码器评估不同尺寸的块(诸如可变尺寸的PU)的MV值时可能是有帮助的。
在图7中,当前图片(710)的较大块(735)包括当前块。对于较大块(735),编码器缓冲两个MV值。这些MV值(745)之一指示第一参考图片中的位置。其他MV值(755)指示第二参考图片中的位置。对于第一参考图片,编码器基于与第一参考图片相关联的第一经缓冲的MV值(745)来确定在由MV预测值所指示的位置处的用于运动估计的开始点。类似地,对于第二参考图片,编码器基于与第二参考图片相关联的第二经缓冲的MV值(755)来确定在由MV预测值所指示的位置处的用于运动估计的开始点。
当多个不同尺寸的较大块都具有经缓冲的MV值(例如,用于为相应的较大块内的16x16块进行运动估计的64x64块、32x32块和64x32块)时,编码器可根据规则(例如,下一较大块的合适参考图片的MV值,或针对合适参考图片的、被较大块中的大多数使用的MV值)或者通过标识出哪一个MV值提供最佳预测性能或最低预测成本来选择经缓冲的MV值之一。
替换地,编码器可首先确定当前图片中的较小块的MV值,缓冲与较小块的不同参考图片相关联的MV值,并随后使用经缓冲的MV值来选择用于与较小块重叠的较大块的运动估计的开始点。在该情况下,在确定用于针对较大块的运动估计的开始点时,编码器可根据规则(例如,第一较小块的合适参考图片的MV值,或合适的参考图片的、被较小块中的大多数使用的MV值)或者通过标识出哪一个MV值提供最佳预测性能或最低预测成本来在较大块内的较小块的经缓冲的MV值之中进行选择。
同样,编码器可在包括当前块的较大块(或包括当前块的多个较大块、或者当前块内的一个或多个较小块)的MV值和空间相邻块的MV值之间进行选择。例如,对于当前的32x32块,编码器可将使用较大的64x64块的MV值产生的预测误差与使用来自空间上相邻的32x32块的MV值产生的预测误差进行比较,并选择具有较小预测误差(或预测成本)的一个MV值来指示用于运动估计的开始点。对于最大尺寸的块(例如,64x64),编码器可使用与运动估计的开始点具有相同参考图片的相邻64x64块的MV值。
图8是示出用于执行运动估计的通用技术(800)的流程图,其中某参考图片中的开始点是仅用使用该参考图片的MV值(即,不用使用任何其他参考图片的任何MV值)来确定的。视频编码器(诸如参考图3或图4a-4b描述的编码器)可执行技术(800)。
编码器编码视频以产生经编码的数据,编码器在比特流中输出该经编码的数据。作为编码的一部分,编码器为当前图片的当前块执行(810)运动估计,以便为当前块选择MV值。作为运动估计的一部分,编码器评估多个参考图片中的每一者中的一个或多个候选MV值。对于多个参考图片中的每一者,编码器仅用使用那个参考图片的先前编码的块的一个或多个MV值(即不用使用任何其他参考图片的先前编码的块的任何MV值)来确定用于运动估计的开始点。先前编码的块可包括当前图片中的一个或多个较大的块(其包括当前块)、当前图片中的一个或多个较小的块(其与当前块重叠)、当前图片中的一个或多个空间上相邻的块或另一图片中的时间上相邻的块。编码器随后使用针对当前块的MV值来对当前块进行编码(820)。
例如,在执行针对当前块的运动估计时,对于多个参考图片中的每一者,编码器从使用那个参考图片的先前编码的块的一个或多个MV值中确定MV预测值。编码器随后将该MV预测值所指示的位置用作那个参考图片中用于运动估计的开始点。替换地,开始点可以是MV预测值所指示的位置周围的某一其他位置。
编码器缓冲先前编码的块的MV值以供在确定用于运动估计的开始点时使用。先前编码的块的MV值可包括在先前编码的块的编码期间被使用的实际MV值。先前编码的块的MV值还可包括在针对先前编码的块的运动估计期间被评估、但在先前编码的块的编码期间没有被使用的候选MV值。
对于当前图片,编码器可按由上而下的方式执行运动估计,该运动估计以最大尺寸的块开始,并以最小尺寸的块结束。例如,编码器执行针对当前图片的具有第一尺寸的块的运动估计。编码器缓冲具有第一尺寸的块的MV值(例如,在具有第一尺寸的块的编码期间被使用的实际MV值,以及在针对具有第一尺寸的块的运动估计期间被评估、但在具有第一尺寸的块的编码期间没有被使用的候选MV值)。编码器使用经缓冲的MV值中的至少一些来执行针对当前图片的具有第二尺寸的块的运动估计,以为第二尺寸的块选择用于运动估计的开始点。替换地,对于当前图片,编码器可按由下而上的方式执行运动估计,该运动估计以最小尺寸的块开始,并以最大尺寸的块结束。
VI.基于基于散列的块匹配的结果跳过编码阶段。
本章节呈现在基于散列的块匹配被使用时加速编码的各种方式。基于散列的块匹配可被用于运动估计(如在先前章节中描述的)或用于块矢量估计。
A.帧内BC预测模式和BV值—介绍。
对于帧内BC预测,图片的当前块的样本值是使用同一图片中的样本值来预测的。BV值指示从当前块到图片的包括用于预测的样本值的区域(“参考区域”)的位移。参考区域提供了当前块的预测值。用于预测的样本值是先前重构的样本值,由此这些样本值可在编码期间在编码器处获得并在解码期间在解码器处获得。BV值在比特流中被信号化,并且解码器可以使用BV值来确定图片的参考区域以用于预测,其也在解码器处被重构。帧内BC预测是一种形式的图片内预测—针对图片的块的帧内BC预测不使用除了同一图片中的样本值以外的任何样本值。
图9示出针对当前图片(910)的当前块(930)的帧内BC预测。当前块可以是编码单元(“CU”)的编码块(“CB”)、预测单元(“PU”)的预测块(“PB”)、变换单元(“TU”)的变换块(“TB”)或其它块。当前块的尺寸可以是64×64、32×32、16×16、8×8或某个其它尺寸。更一般地,当前块的尺寸为m×n,其中m和n中的每一者都是整数,并且其中m和n可彼此相等或可具有不同的值。这样,当前块可以是正方形或矩形。或者,当前块可以具有某种其它形状。
BV(940)指示当前块(930)到图片的包括用于预测的样本值的参考区域(950)的位移(或偏移)。由BV(940)指示的参考区域(950)有时被称为当前块(930)的“匹配块”。匹配块可与当前块(930)相同,或它可以是当前块(930)的近似。假设当前块的左上位置是在当前图片中的位置(x0,y0)处,并假设参考区域的左上位置在当前图片中的位置(x1,y1)处。BV指示位移(x1-x0,y1-y0)。例如,如果当前块的左上位置是在位置(256,128)处,并且参考区域的左上位置在位置(126,104)处,BV值是(-130,-24)。在本示例中,负水平位移指示在当前块的左边的位置,而负垂直位移指示在当前块之上的位置。
帧内BC预测可以通过利用使用BC操作的冗余性(例如在图片内部的重复的图案)来改善译码的效率。然而,考虑到编码器可能估计的候选块的数量,为当前块查找匹配块可以在计算上是复杂的并且耗时的。图10示出在块匹配操作中用于当前图片(1010)的当前块(1030)的某些候选块。四个BV(1041,1042,1043,1044)指示了四个候选块的位移。候选块可在当前图片(1010)的经重构内容内的任何地方。(通常从左向右随后从上到下编码块。)候选块可以与其它候选块重叠,如由BV(1043,1044)指示的候选块所示。当BV值的搜索范围包括图片的所有先前重构的区域时,由于当前块可与其进行比较的候选块的较大数目,BV估计的计算复杂性特别成问题。对于整个帧的各候选块,操作的数量甚至更高。类似地,如果搜索范围包括另一先前重构的帧(用于运动估计),操作的数量可能非常高。例如,对于涉及单个参考帧(或多个参考帧)的运动估计,由于当前块与之进行比较的大量候选块,逐样本的块匹配可可消耗非常大数目的操作。
B.基于散列的块匹配
当编码器使用基于块的匹配时,该编码器为多个候选块的每一块确定散列值。散列表存储这些候选块的散列值。编码器还通过相同散列方法来确定当前块的散列值,并接着搜索散列表寻找匹配的散列值。如果两个块相同,它们的散列值相同。使用散列值,编码器可快速且高效地标识具有与当前块相同的散列值的候选块,并过滤出具有不同散列值的候选块。编码器可接着进一步评估具有与前块相同的散列值的候选块。(不同块可具有相同散列值。因此,编码器可在具有相同散列值的候选块之中标识出匹配当前块的候选块。)基于散列的块匹配通常使针对当前块的块匹配过程加速。
在某些示例实现中,在基于散列的块匹配中考虑的候选块包括输入样本值。即,候选块是图片的输入版本的一部分。候选块的散列值是从输入的样本值中确定的。
在基于散列的块匹配期间,编码器使用输入的样本值为当前块确定块散列值。
编码器将其(或以其他方式使用散列值)与从候选块的输入的样本值中确定的散列值进行比较。即便如此,来自匹配块的经重构的样本值被用于代表当前块。因此,BC预测操作(以及运动补偿操作)仍使用经重构的样本值。替换地,在基于散列的块匹配中考虑的候选块包括经重构的样本值。
即,候选块是图片中先前编码接着重构内容的部分。候选块的散列值从重构的样本值中确定。在基于散列的块匹配期间,编码器使用输入的样本值为当前块确定块散列值。
编码器将其(或以其他方式使用散列值)与从候选块的重构的样本值中确定的散列值进行比较。
图11示出了在基于散列的块匹配中用于候选块B(x,y)的散列值(1100),其中x和y分别指示给定候选块的左上位置的水平和垂直坐标。候选块具有使用散列函数h()确定的散列值。对于搜索范围中的候选块B(x,y),编码器为该候选块确定散列值h(B)。编码器可为搜索范围中的全部候选块确定散列值。或者,编码器可筛选出具有某种样本值模式(例如,用诸如空间图片内预测之类的另一预测模式容易地预测出的模式)的候选块。
一般而言,散列函数h()得到n个可能散列值,指定为h0到hn-1。对于给定散列值,具有那个散列值的候选块聚成组。例如,在图11中,候选块B(1266,263)、B(1357,365)、B(1429,401),B(502,464)…具有散列值h0。各组可包括不同数量的候选块。例如,在图11中,散列值h4的组包括单个候选块,而散列值h0的组包括4个以上候选块。
以此方式,可能的候选块被分发到n个分类。例如,如果散列函数h()产生12比特散列值,则候选块被拆分成212=4,096个类别。在一些实现中,每散列值的候选块数可通过消除具有那个散列值的冗余、相同的块或者通过筛选出具有某些样本值图案的候选块被进一步降低。同样,在某些实现中,编码器可使用不同的散列函数迭代地去除减少候选块的数量。
用于基于散列的块匹配的散列函数取决于实现。散列函数可产生具有8比特、12比特、16比特、24比特、32比特或其它数量的比特的散列值。如果散列值具有更少比特,则数据结构包括更少分类,但是每个分类可包括更多候选块。换言之,使用具有更多比特的散列值有助于增加组织候选块的数据结构的尺寸。如果散列值具有更多比特,则数据结构包括更多分类,但是每个分类可包括更少候选块。散列函数h()可以是密码散列函数、密码散列函数的一部分、循环冗余校验(“CRC”)函数、CRC的一部分、或另一散列函数(例如,使用求平均和XOR操作来确定候选块或当前块的签名)。某些类型的散列函数(例如,CRC函数)将类似块映射到不同散列值,其在搜索精确对应于当前块的匹配块时可能是高效的。其它类型的散列函数(例如,位置敏感散列函数)将类似块映射到相同散列值,其在匹配块可近似当前块时可能是合适的。
在基于散列的块匹配期间,使用散列函数h(),编码器为当前块B当前确定散列值。在图11中,散列值h(B当前)是h3。使用当前块的散列值,编码器可标识具有相同散列值的候选块(图11中的轮廓框所示),并过滤出其它候选块。当散列函数将类似块映射到不同散列值时,被标识的候选块(与当前块相同的散列值)包括可能与当前块相同的块。当散列函数将类似块映射到相同散列值时,被标识的候选块(与当前块相同的散列值)包括可能与当前块相同的或可能非常接近当前块的块。无论哪种方式,从这些标识的候选块中,编码器可标识当前块的匹配块(例如,使用逐样本的块匹配操作)。
总体地,因为散列值比较比逐样本的块匹配简单得多,基于散列的块匹配可使得在大搜索范围中评估候选块的过程高效得多。同样,在编码期间,候选块的散列值可在针对图片内的不同块的基于散列的块匹配中重新使用。在该情况下,计算候选块的散列值的成本可跨针对整个图片的基于散列的块匹配操作来分摊。
C.用于基于散列的块匹配的数据结构。
在某些示例实现中,编码器使用根据它们的散列值组织候选块的数据结构。数据结构可帮助使得基于散列的块匹配更加计算高效。数据结构实现,例如,如在此描述的块散列字典或散列表。
图12a示出为基于散列的块匹配组织候选块的示例数据结构(1200)。对于散列函数h(),n个可能散列值为h0到hn-1。具有相同散列值的候选块在同一候选块列表中分类。给定候选块列表可包括零个或更多条目。例如,散列值h2的候选块列表没有条目,散列值h6的列表具有两个条目,以及散列值h1的列表具有四个以上的条目。
条目(hi,k)包括具有散列值hi的第k个候选块的信息。如图21中所示,候选块列表中的条目可包括块B(x,y)的地址(例如,块的左上位置的水平和垂直坐标)。或者,如图12c中所示,候选块列表中的条目可包括块B(x,y)的地址以及来自第二散列函数的散列值,其可用于进行迭代的基于散列的块匹配。
在当前块的基于散列的块匹配(用于BV估计或运动估计)期间,编码器确定当前块的散列值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比特散列值而不考虑块尺寸,且数据结构中的候选块的条目存储指示候选块的块尺寸的信息,其可被用于基于散列的块匹配中。
对于高分辨率图片,数据结构可存储代表很大数量的候选块的信息。为了减少用于数据结构的存储器的量,编码器可去除冗余值。例如,编码器可跳过将相同的块添加到该数据结构。一般而言,通过去除相同块来减少数据结构的尺寸可伤及编码效率。因此,通过决定是否去除相同块,编码器可折衷数据结构的存储器尺寸和编码效率。编码器还可取决于候选块的内容筛选出不可能从帧内BC预测中获益的候选块。
D.迭代的基于散列的块匹配。
当编码器使用具有n个可能散列值的单个散列函数时,该编码器可基于当前块的散列值来排除候选块的n-1个列表,但编码器可能还需要针对余下的候选块(如果有)执行样本级块匹配操作以查找具有匹配散列值的列表。同样,当更新组织候选块的数据结构时,编码器可能需要执行样本级块匹配操作来标识相同的块。总体而言,这些样本级块匹配操作可以是计算密集的。
因此,在某些示例实现中,编码器使用迭代的基于散列的块匹配。迭代的基于散列的块匹配可加速块匹配过程,并且还可以加速更新组织候选块的数据结构的过程。
迭代的基于散列的块匹配使用以不同散列函数确定的多个散列值。对于块B(当前块或候选块),除了散列值h(B),编码器使用不同散列函数h'()确定另一个散列值h'(B)。使用当前块的第一散列值h(B当前),编码器为第一散列函数h()标识具有相同散列值的候选块。为进一步排除这些被标识的候选块的一些,编码器使用当前块的使用不同散列函数确定的第二散列值h'(B当前)。编码器将第二散列值h'(B当前)与先前标识的候选块的第二散列值(其具有相同第一散列值)进行比较,以过滤出更多候选块。散列表根据不同散列函数跟踪候选块的散列值。
在图12a的示例中,如果h(B当前)=h3,那么编码器选择具有条目(3,0)、条目(3,1)、条目(3,2)、条目(3,3),…的候选块用于进一步细化。如图12c中所示,对于候选块B,条目包括块地址和来自散列函数h'()的第二散列值h'(B)。编码器将当前块的第二散列值h'(B当前)与具有条目(3,0)、条目(3,1)、条目(3,2)、条目(3,3),…的各候选块的第二散列值h'(B)进行比较。基于第二散列值比较的结果,编码器可排除更多候选块,留下具有分别匹配h(B当前)和h'(B当前)的第一和第二散列值的候选块(如果有)。编码器可在任何余下的候选块上执行样本级块匹配以选择匹配块。
图13a-13c示出使用不同数据结构的迭代的基于散列的块匹配的另一示例。图13a中的数据结构(1300)通过来自第一散列函数h()的具有n1的可能散列值的第一散列值来组织候选块。数据结构(1300)包括从h0…hn1-1的散列值的列表。在该示例中,编码器为当前块确定第一散列值h(B当前)=h2,并从结构(1300)选择h2的列表。
如图13b所示,h2的列表(1310)包括进一步通过来自第二散列函数h'()的第二散列值组织余下的候选块的多个列表,其具有n2个可能散列值。列表(1310)包括从h'0…h'n2-1的散列值的列表,每个包括具有块地址的条目(例如,各候选块的左上位置的水平和垂直坐标),如在图13c中条目(1320)所示。在该示例中,编码器为当前块确定第二散列值h'(B当前)=h'0,并从列表(1310)选择h'0的列表。对于h'0的列表中的候选块,编码器可执行样本级块匹配以选择匹配块。在此示例中,第二散列值的列表对于第一散列值的给定列表是专用的。替换地,有针对第二散列值的一组列表,且编码器标识(1)在第一散列值的匹配列表中的且还(2)在第二散列值的匹配列表中的任何候选块。
除了基于散列的块匹配之外,第二散列函数h'()可被用于简化更新组织候选块的数据结构的过程。例如,当编码器检查新候选块是否与已经表示在数据结构中的候选块相同时,编码器可使用具有不同散列函数的多个散列值来过滤出不相同的块。对于余下的候选块,编码器可执行样本级块匹配以标识任何相同块。
在前面的示例中,迭代基于散列的块匹配以及更新使用两个不同散列函数。替换地,编码器使用三个、四个或更多个散列函数以进一步加速基于散列的块匹配或过滤出不相同的块,并且因此减少样本级块匹配操作的数量。同样,对于低复杂度的编码器,在散列值匹配时,编码器可跳过逐样本的块匹配操作。对于具有大量可能散列值的散列函数,如果两个块的全部散列值匹配那么存在很高可能性两个块是相同的。
E.基于基于散列的块匹配的结果跳过编码阶段。
本章节呈现在基于散列的块匹配被使用时加速编码的各种方式。
图14示出用于取决于基于散列的块匹配的结果选择性地跳过一个或多个编码阶段的通用技术(1400)。图像编码器或视频编码器(诸如参考图3或图4a-4b描述的编码器)可执行技术(1400)。
编码器对图像或视频进行编码以产生经编码的数据,编码器在比特流的一部分中输出该经编码的数据。在编码期间,编码器为当前图片的当前块执行(1410)基于散列的块匹配。例如,编码器使用以上描述的数据结构之一来执行基于散列的块匹配。基于散列的块匹配可包括一些逐样本的块匹配操作,以在当前块与候选块的散列值匹配后确认当前块与候选块匹配。
编码器检查条件是否被满足。该条件取决于在针对当前块的基于散列的块匹配期间是否发现了匹配。一般来说,在基于散列的块匹配中的匹配表示当前块和候选块之间的匹配散列值。它还可表示当前块和候选块之间的逐样本匹配。
该条件还可取决于其他因素,诸如(1)当前块的预期质量相对于用于该匹配的候选块的质量,(2)当前块的块尺寸相对于阈值块尺寸,和/或(3)某些其他因素。
当前块的预期质量可由适用于当前块的量化参数(“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值,编码器相对于候选块来评估当前块的残留值(例如,检查残留值中的能量、在频率变换后对残留值的非零频率系数进行计数)。
当编码器将当前块的块尺寸与阈值块尺寸进行比较时,阈值块尺寸可被设置成处于或大于编码器对跳跃判定有信心的块尺寸。一般来说,编码器对针对较大块的跳跃判定较有信心,而对针对较小块的跳跃判定较不有信心。例如,阈值块尺寸可以为64×64、32×32或某个其它块尺寸。
基于条件是否被满足,编码器确定(1420)是否为当前块跳过一个或多个编码阶段。随后,基于该确定的结果(1420),编码器为当前块选择性地跳过(1430)(诸)编码阶段。
例如,针对当前块的基于散列的块匹配被执行用于运动估计(且散列值是从输入样本值计算出的),并且编码器选择性地跳过针对当前块的部分精密运动估计。在一些示例实现中,编码器执行基于散列的块匹配以在参考图片中的整数样本偏移处寻找到匹配的候选块。如果基于散列的块匹配过程在参考图片中寻找到匹配,则编码器跳过部分样本运动估计(例如,在参考图片中的1/2样本偏移处和/或1/4样本偏移处)。这节省了计算资源,而这些计算资源原本将被用来进行对部分样本值的插值和部分精密运动估计期间的逐样本的值比较。作为该条件的一部分,编码器还可检查当前块和候选块的QP值、当前块的块尺寸和/或另一因素。
作为另一示例,针对当前块的基于散列的块匹配被执行用于运动估计(且散列值是从输入样本值计算出的),并且编码器选择性地跳过对针对当前块的编码模式和编码选项的评估(例如,在基于散列的块匹配后的对编码模式和编码选项的所有评估)。在一些示例实现中,如果编码器使用基于散列的块匹配在参考图片中寻找到了匹配的候选块,则编码器可终止对当前块的编码,这显著地降低了编码时间。对于跳过条件,编码器还可(例如,通过将候选块的QP值、平均QP值、加权平均QP值、最小QP值等与将被用于当前块的QP值进行比较)检查参考图片中的候选块的重构质量不差于当前块的预期重构质量,并检查当前块的块尺寸大于还是等于阈值块尺寸(例如,64x64)。替换地,在该条件被满足时,编码器跳过一些而非全部对编码模式和编码选项的评估。
作为另一示例,针对当前块的基于散列的块匹配被执行用于块矢量估计(且散列值是从输入样本值计算出的),并且编码器选择性地跳过对针对当前块的图片内编码模式和编码选项的评估(例如,在基于散列的块匹配后的对图片内编码模式和编码选项的所有评估)。在一些示例实现中,当通过(用于运动估计的)基于散列的块匹配没有在参考图片中寻找到匹配时,如果编码器使用(用于BV估计的)基于散列的块匹配在当前图片中寻找到匹配的候选块,则编码器可终止对当前块的编码,这显著地降低了编码时间。作为该条件的一部分,编码器还可检查当前块和候选块的QP值、当前块的块尺寸和/或另一因素。
图15示出用于取决于基于散列的块匹配的结果选择性地跳过一个或多个编码阶段的更详细的示例技术(1500)。图像编码器或视频编码器(诸如参考图3或图4a-4b描述的编码器)可执行技术(1500)。
在编码期间,编码器针对当前图片的当前块选择性地跳过一个或多个编码阶段。编码器为当前块执行(1510)基于散列的块匹配。例如,编码器使用以上描述的数据结构之一执行基于散列的块匹配,其作为运动估计或块矢量估计的一部分。基于散列的块匹配可包括一些逐样本的块匹配操作,以在当前块与候选块的散列值匹配后确认当前块与候选块匹配。
编码器检查(1520)基于散列的块匹配是否产生对当前块的匹配。如果基于散列的块匹配产生匹配,则编码器确定(1530)当前块和候选块的QP值,随后确定(1540)候选块是否通过质量检查(例如,当前块的预期质量不比候选块的重构质量更好)。如果是这样的,则编码器确定(1550)当前块是否通过块尺寸检查(例如,当前块的块尺寸大于或等于阈值块尺寸)。如果所有三个检查(1520、1540、1550)都通过了,则编码器跳过(诸)编码阶段。否则,如果这三个检查(1520、1540、1550)中的任何一者失败了,则编码器执行(1560)被选择性地跳过的(诸)编码阶段。
VII.选择性地跳过各图片内预测模式。
本章节呈现了标识某些图片内预测模式何时应当或不应当在编码期间被评估的各种方式,这些方式可加速编码。具体地,某些图片内预测模式适用于屏幕捕捉内容或其他人工创建的视频。通过提供检测人工创建的视频的高概率方式,编码器可在这样的图片内预测模式何时可能是高效(例如,针对屏幕捕捉视频或其他人工创建的视频时)的方面评估这样的图片内预测模式,并在它们可能是低效的时(例如,针对自然视频时)跳过那些模式。
图16示出了自然视频和屏幕捕捉视频的典型块(其描绘了相同的通用模式)的特征。自然视频的块(1610)包括逐渐改变的样本值和不规则的线。相反,屏幕捕捉视频的块(1620)包括统一样本值的更清晰的线和模式。同样,不同色彩值的数目在自然视频的块(1610)和屏幕捕捉视频的块(1620)之间改变。屏幕捕捉视频的块(1620)包括三个色彩,而自然视频的块(1610)包括更多的不同色彩。
图17示出用于取决于对视频单元中的不同色彩的数目的测量选择性地跳过对一个或多个图片内预测模式的评估的通用技术(1700)。图像编码器或视频编码器(诸如参考图3或图4a-4b描述的编码器)可执行技术(1700)。
编码器对图像或视频进行编码以产生经编码的数据,编码该将经编码的数据器作为比特流的一部分输出。在编码期间,编码器测量(1710)图像或视频的单元(例如,块、片、图片)中不同色彩的数目。例如,编码器对单元中的各样本值之中的不同色彩进行计数。或者,编码器在将单元中的样本值聚类成更少的色彩(例如,对这些样本值进行量化,使得相似的样本值变为相同的样本值)后,对这些样本值之中不同色彩进行计数。或者,编码器用某一其他方式测量单元中的不同色彩的数目。
编码器测量不同色彩的数目的方式取决于所使用的色彩空间。如果色彩空间例如为YUV(例如,YCbCr,YCoCg),则编码器可对视频单元中的不同Y值进行计数。或者,编码器可对不同的YUV三元组(即,各位置处的像素的Y、U和V样本值的不同组合)进行计数。如果色彩空间为RGB(或GBR或BGR),则编码器可对一个色彩分量或多个色彩分量中的样本值进行计数。或者,编码器可对不同的三元组(即,各位置处的像素的R、G和B样本值的不同组合)进行计数。
至少部分地基于该测量的结果,编码器为该单元确定(1720)是否跳过一个或多个图片内预测模式。例如,图片内预测模式包括帧内BC预测模式和/或图片内字典模式。为了确定是否跳过(诸)图片内预测模式,编码器可将该测量的结果与阈值计数进行比较。
阈值计数的值取决于实现,并且可例如为5、10、20或50。阈值计数可对所有的单元尺寸相同(例如,不理会块尺寸)。或者,该阈值计数可针对不同的单元尺寸(例如,不同的块尺寸)而不同。该阈值可以是预定义和静态的,或者该阈值可以是可调整的(可调谐的)。例如,在对图像或视频进行编码之前,阈值可由用户或应用来调整以对编码速度对照编码效率的降低进行折衷。一般来说,降低阈值通过跳过针对更多块的(诸)图片内模式来增加编码速度,但当使用(诸)跳过的模式会很高效时,这可导致编码效率的下降。
如果没有跳过(诸)图片内预测模式,则编码器为该单元评估(1730)(诸)图片内预测模式。编码器还为该单元评估(1740)一个或多个其他预测模式。如果跳过(诸)图片内预测模式,则编码器仅为该单元评估(1740)(诸)其他预测模式。
在一些示例实现中,编码器选择性地跳过针对块的帧内BC预测模式的评估,这取决于该块中不同色彩的数目。帧内BC预测主要是针对屏幕捕捉内容中的块设计的,并通常不适合用于自然视频内容。通常,屏幕捕捉内容的某一块中的不同色彩的数目不大。因此,如果块中的不同色彩的数目大于阈值计数,则编码器跳过针对该块的帧内BC预测模式的评估,这趋于改善编码速度。
在一些示例实现中,编码器选择性地跳过针对块的字典模式的评估,这取决于该块中不同色彩的数目。字典模式通常适合用于屏幕捕捉内容中的块,但几乎不适合用于自然视频内容。因此,如果块中的不同色彩的数目大于阈值计数,则编码器跳过针对该块的字典模式的评估,这趋于改善编码速度。
VIII.针对用空间图片内预测模式的块的编码器侧判定。
本章节呈现执行针对使用空间图片内预测被编码的块的编码判定的各种方式。这样的块在自然视频和人工创建的视频中是常见的。
图18示出针对根据H.265/HEVC标准的块的空间图片内预测的示例方向(1800)。这些方向包括33个有角度的方向和两个空方向(DC预测模式和平面预测模式)。对于一些类型的块,所有35个方向都是可用的。对于其他类型的块,这些方向的子集可用。对于其他标准或格式,编码器可使用不同的空间预测方向。
考虑到不同选项的数目,为当前块评估不同的空间预测方向(并为该块作出其他编码判定)可能非常耗时。在一个先前方法中,H.265/HEVC编码器执行三阶段过程来作出这些判定。首先,编码器得到最好的n个空间预测方向,其中n为2、3或某个其他计数,这取决于实现。编码器根据绝对变换差之和(“SATD”)对空间预测方向进行排名,绝对变换差之和是基于对在空间预测方向被使用时得到的残留值的失真的测量。编码器可检查最可能模式(“MPM”)是否被表示在最佳的n个空间预测方向中。如果不是,则编码器可增加n,并将任何缺失的MPM添加到最佳的n个空间预测方向的集合中。
接着,对于n个最佳预测方向,当(针对残留值的)变换尺寸是最大的变换尺寸时,编码器根据速率失真优化(“RDO”)来选择最佳的预测方向。在该阶段,编码器使用速率失真优化的量化(“RDOQ”),而这是非常耗时的。对于RDOQ,编码器为每一系数设置最优量化级别,从而基于速率失真效率适应性地调整系数值。例如,对于给定预测方向,编码器确定残留值,以最大的变换尺寸执行频率变换,通过使用RDOQ来量化系数,对经量化的系数进行熵编码,重构残留值,并测量失真成本和速率成本。编码器对其他n个预测方向中的每一个重复那个过程。
最后,对于所选的预测方向,编码器在确定残留值的变换尺寸时通过RDOQ执行RDO。残留值被组织成残留四叉树(“RQT”)。图19示出针对RQT的示例组织(1901、…、1908),这些示例组织在残留值的块如何被组织以用于频率变换方面不同。许多针对RQT的其他可能的组织没有被示出。例如,对于RQT的组织,编码器以所选的预测方向将空间预测应用于变换块,计算残留量值,对变换块的残留值执行频率变换,使用RDOQ来量化系数,对经量化的变换系数进行熵编码,以及(用逆量化和逆变换)重构变换块的值。编码器对当前块的任何其他变换块重复那个过程,随后测量失真成本和速率成本。编码器对其他经评估的RQT选项中的每一者重复那个过程,并选择最佳的RQT选项。
图20示出了用于为用空间图片内预测编码的块作出编码判决的示例技术(2000)。在许多场景中,技术(2000)与先前的方法相比显著地要快,并且仍为使用空间图片内预测编码的块提供良好的编码效率。图像编码器或视频编码器(诸如参考图3或图4a-4b描述的编码器)可执行技术(2000)。
编码器对图像或视频进行编码以产生经编码的数据,编码器在比特流的一部分中输出该经编码的数据。在编码期间,对于当前图片的当前块,在第一阶段中,编码器为当前块标识(2010)空间图片内预测的候选方向集合。例如,对于针对当前块的空间图片内预测的多个可能方向中的每一者,编码器计算该可能方向的失真度量(诸如SAD或SATD)的值。随后,编码器根据多个可能方向的失真度量的值来选择候选方向集合。编码器可检查MPM是否被表示在候选方向集合中。如果为否,则编码器可将任何缺失的MPM添加到候选方向集合中。
在第二阶段,编码器选择(2020)候选方向集合中的一个候选方向。具体地,对于候选方向集合中的每一候选方向,编码器使用那个候选方向来执行针对当前块的编码的速率失真分析,而无需RDOQ。通过忽略RDOQ,该第二阶段比先前方法中的第二阶段要快得多,这可显著地降低总编码时间。例如,对于候选方向集合中的每一候选方向,编码器(a)在当前块是使用该候选方向来编码的时,计算当前块的残留值,(b)使用最大的变化尺寸来对这些残留值进行编码,而无需RDOQ,(c)重构这些残留值,以及(d)测量速率成本和失真成本。编码器随后选择具有最低成本的候选方向。
在第三阶段,在当前块是使用所选的候选方进行编码的时,编码器确定(2030)如何对该块的RQT进行编码。在该阶段,编码器用RDOQ执行速率失真分析以得到对RQT进行编码的不同方式。例如,对于RQT的变换尺寸的多个组合中的每一者,编码器使用该变换尺寸的组合以及RDOQ对RQT的残留值进行编码。编码器随后选择具有最低成本的RQT组合。
IX.为帧内BC预测的块跳过变换模式。
本章节呈现了标识变换模式何时应当或不应当在编码期间被评估的各种方式,这些方式可加速编码。诸如变换跳跃模式之类的某些编码选项适用于屏幕捕捉内容或其他人工创建的视频。当这样的编码选项可能是高效的时(例如,对于屏幕捕捉视频或其他人工创建的视频),编码器可支持这些编码选项,并禁用其他可能是低效的、冲突的编码选项。与变换跳跃模式类似,帧内BC预测模式适用于屏幕捕捉内容或其他人工创建的视频。
图21示出用于为用帧内BC预测编码的块选择性地跳过变换模式的通用技术(2100)。图像编码器或视频编码器(诸如参考图3或图4a-4b描述的编码器)可执行技术(2100)。
编码器对图像或视频进行编码以产生经编码的数据,编码器在比特流的一部分中输出该经编码的数据。在编码期间,编码器检查(2110)当前图片的当前块是否是使用帧内BC预测被编码的。取决于当前块是否是使用帧内BC预测来编码的,编码器为当前块启用或禁用变换模式。例如,变换模式包括频率变换、量化和熵编码,然而变换跳跃模式缺少频率变换但包括量化和熵编码。
编码器随后对当前块进行编码。如果当前块不是使用帧内BC预测来编码的,则编码器为当前块评估(2120)变换模式(变换块被启用),并且还为当前块评估(2130)变换跳跃模式。在另一方面,如果当前块是使用帧内BC预测来编码的,则编码器跳过对变换模式的评估,但仍为当前块评估(2130)变换跳跃模式。替换地,如果当前块是使用帧内BC预测来编码的,则编码器自动地选择变换跳跃模式,而无需评估变换跳跃模式。
本章节描述了为帧内BC预测的块避免变换模式的评估的编码器侧判决。编码器侧判决不影响比特流句法(例如,变换跳跃标志的信号化)。替换地,比特流句法可被更改(例如,在块级)以避免信号化帧内BC预测的块的变换跳跃标志。在该变型中,帧内BC预测的块被假设为使用变换跳跃模式。编码器可信号化非帧内BC预测的块的变换跳跃标志,但不信号化帧内BC预测的块的变换跳跃标志。解码器解析非帧内BC预测的块的变换跳跃标志,但不解析帧内BC预测的块的变换跳跃标志,帧内BC预测的块被假设为使用变换跳跃模式。
鉴于可应用所公开的本发明的原理的许多可能的实施例,应当认识到,所示实施例仅是本发明的优选示例,并且不应认为是限制本发明的范围。相反,本发明的范围由后续的权利要求来界定。我们要求作为我们的发明保护落入这些权利要求范围和精神内的所有内容。

Claims (9)

1.一种在计算设备中用于针对屏幕内容编码的编码器侧判定的方法,包括:
对视频进行编码以产生经编码的数据,包括:
为当前图片的当前块执行运动估计以为所述当前块选择运动矢量(“MV”)值,包括评估多个参考图片中的每一者中的一个或多个候选MV值,其中对于所述多个参考图片中的每一者,所述运动估计的开始点仅用使用该参考图片的先前编码的块的一个或多个MV值来确定为有可能以良好的预测产生MV值的点而无需缩放;以及
使用所述当前块的MV值来对所述当前块进行编码;以及
在比特流中输出经编码的数据。
2.如权利要求1所述的方法,其特征在于,为所述当前块执行运动估计包括对于所述多个参考图片中的每一者:
从使用那个参考图片的先前编码的块的一个或多个MV值确定MV预测值;以及
将所述MV预测值所指示的位置用作那个参考图片中用于运动估计的开始点。
3.如权利要求1所述的方法,其特征在于,所述先前编码的块包括所述当前块的空间上相邻的块以及包括所述当前块的较大的块中的至少一者。
4.如权利要求1所述的方法,其特征在于,所述先前编码的块的一个或多个MV值包括在所述先前编码的块的编码期间被使用的至少一些实际MV值以及在针对所述先前编码的块的运动估计期间被评估但在所述先前编码的块的编码期间没有被使用的至少一些候选MV值。
5.如权利要求1所述方法,其特征在于,对所述视频进行编码包括对于所述当前图片:
为所述当前图片的具有第一尺寸的块执行动估计;
缓冲具有所述第一尺寸的块的MV值;
为所述当前图片的具有第二尺寸的块执行运动估计,包括使用经缓冲的MV值中的至少一些来为所述第二尺寸的块选择用于所述运动估计的开始点。
6.如权利要求5所述的方法,其特征在于,经缓冲的MV值包括在具有所述第一尺寸的块的编码期间被使用的至少一些实际MV值,以及在针对具有所述第一尺寸的块的运动估计期间被评估、但在具有所述第一尺寸的块的编码期间没有被使用的至少一些候选MV值。
7.如权利要求1所述方法,其特征在于,所述视频是屏幕内容视频。
8.一种适于执行权利要求1-7中的任一项所述的方法的计算设备。
9.一种在计算设备中用于针对屏幕内容编码的编码器侧判定的***,包括:
用于对视频进行编码以产生经编码的数据的装置,包括:
用于为当前图片的当前块执行运动估计以为所述当前块选择运动矢量(“MV”)值的装置,包括用于评估多个参考图片中的每一者中的一个或多个候选MV值的装置,其中对于所述多个参考图片中的每一者,所述运动估计的开始点仅用使用该参考图片的先前编码的块的一个或多个MV值来确定为有可能以良好的预测产生MV值的点而无需缩放;以及
用于使用所述当前块的MV值来对所述当前块进行编码的装置;以及
用于在比特流中输出经编码的数据的装置。
CN201480037981.5A 2014-03-17 2014-03-17 用于针对屏幕内容编码的编码器侧判定的方法和*** Active CN105359531B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/073498 WO2015139165A1 (en) 2014-03-17 2014-03-17 Encoder-side decisions for screen content encoding

Publications (2)

Publication Number Publication Date
CN105359531A CN105359531A (zh) 2016-02-24
CN105359531B true CN105359531B (zh) 2019-08-06

Family

ID=54143602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480037981.5A Active CN105359531B (zh) 2014-03-17 2014-03-17 用于针对屏幕内容编码的编码器侧判定的方法和***

Country Status (4)

Country Link
US (1) US10136140B2 (zh)
EP (1) EP3120556B1 (zh)
CN (1) CN105359531B (zh)
WO (1) WO2015139165A1 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3061253A1 (en) 2013-10-25 2016-08-31 Microsoft Technology Licensing, LLC Hash-based block matching in video and image coding
EP3061233B1 (en) 2013-10-25 2019-12-11 Microsoft Technology Licensing, LLC Representing blocks with hash values in video and image coding and decoding
US10368092B2 (en) 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
WO2015131325A1 (en) 2014-03-04 2015-09-11 Microsoft Technology Licensing, Llc Hash table construction and availability checking for hash-based block matching
US9715559B2 (en) * 2014-03-17 2017-07-25 Qualcomm Incorporated Hash-based encoder search for intra block copy
KR102319384B1 (ko) * 2014-03-31 2021-10-29 인텔렉추얼디스커버리 주식회사 템플릿 매칭 기반의 화면 내 픽쳐 부호화 및 복호화 방법 및 장치
CN105706450B (zh) 2014-06-23 2019-07-16 微软技术许可有限责任公司 根据基于散列的块匹配的结果的编码器决定
KR102358276B1 (ko) 2014-09-30 2022-02-04 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 코딩을 위한 해시 기반 인코더 결정
JP6527949B2 (ja) 2015-01-29 2019-06-12 ヴィド スケール インコーポレイテッド イントラブロックコピー探索
US10356422B2 (en) * 2015-03-06 2019-07-16 Qualcomm Incorporated Fast rate-distortion optimized quantization
US10097842B2 (en) 2015-09-18 2018-10-09 Qualcomm Incorporated Restriction of escape pixel signaled values in palette mode video coding
EP3414906A4 (en) * 2016-02-08 2019-10-02 Sharp Kabushiki Kaisha SYSTEMS AND METHOD FOR INTRAPRADICATION CODING
CN107295340A (zh) * 2016-03-31 2017-10-24 中兴通讯股份有限公司 一种远程桌面视频编码的方法及装置
CN109479132B (zh) * 2016-04-29 2021-10-01 世宗大学校产学协力团 用于对图像信号进行编码和解码的方法和装置
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
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
CN107197278B (zh) * 2017-05-24 2019-08-23 西安万像电子科技有限公司 屏幕图像的全局运动向量的处理方法和装置
US10762691B2 (en) 2017-09-08 2020-09-01 Microsoft Technology Licensing, Llc Techniques for compensating variable display device latency in image display
WO2019118097A1 (en) * 2017-12-14 2019-06-20 Interdigital Vc Holdings, Inc. Method and apparatus for encoding a picture block
AU2018217336A1 (en) * 2018-08-17 2020-03-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
US11184630B2 (en) * 2018-09-28 2021-11-23 Tencent America LLC Method and apparatus for video coding
WO2020140952A1 (en) 2019-01-02 2020-07-09 Beijing Bytedance Network Technology Co., Ltd Hash-based motion searching
CN113615202A (zh) * 2019-01-28 2021-11-05 北京达佳互联信息技术有限公司 用于屏幕内容编解码的帧内预测的方法和装置
US20220132109A1 (en) * 2019-02-21 2022-04-28 Lg Electronics Inc. Image decoding method and apparatus using intra prediction in image coding system
KR20220147731A (ko) 2019-03-11 2022-11-03 엘지전자 주식회사 Ibc 모드를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
KR20210154157A (ko) * 2019-04-23 2021-12-20 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 다중 변환 행렬의 선택 및 컨텍스트 모델링
EP3989547A4 (en) * 2019-06-21 2023-04-19 Samsung Electronics Co., Ltd. VIDEO ENCODING METHOD AND DEVICE, AND VIDEO DECODER METHOD AND DEVICE
EP3994886A4 (en) 2019-08-06 2022-12-28 Beijing Bytedance Network Technology Co., Ltd. VIDEO ZONE PARTITION ACCORDING TO COLOR FORMAT
EP4008109A4 (en) 2019-09-02 2022-09-14 Beijing Bytedance Network Technology Co., Ltd. ENCODING MODE DETERMINATION BASED ON COLOR FORMAT
CN118055248A (zh) 2019-09-21 2024-05-17 北京字节跳动网络技术有限公司 处理视频数据的方法、装置以及计算机可读记录介质
CN114731430A (zh) * 2019-12-05 2022-07-08 交互数字Vc控股法国有限公司 与多个变换选择、矩阵加权帧内预测或多参考线帧内预测结合的用于视频编码和解码的帧内子分区
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
CN118118680A (zh) * 2022-11-30 2024-05-31 华为技术有限公司 视频处理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1369820A2 (en) * 2002-06-03 2003-12-10 Microsoft Corporation Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
CN102055977A (zh) * 2009-11-06 2011-05-11 三星电子株式会社 使用多个参考帧的快速运动估计方法
CN103281538A (zh) * 2013-06-06 2013-09-04 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法

Family Cites Families (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6753878B1 (en) 1999-03-08 2004-06-22 Hewlett-Packard Development Company, L.P. Parallel pipelined merge engines
US6876703B2 (en) * 2000-05-11 2005-04-05 Ub Video Inc. Method and apparatus for video coding
DE60141961D1 (de) 2001-09-10 2010-06-10 Texas Instruments Inc Verfahren und Vorrichtung zur Bewegungsvektorenabschätzung
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US6763068B2 (en) 2001-12-28 2004-07-13 Nokia Corporation Method and apparatus for selecting macroblock quantization parameters in a video encoder
JP4039076B2 (ja) 2002-02-19 2008-01-30 ソニー株式会社 符号化処理装置、復号処理装置、および方法、並びにコンピュータ・プログラム
KR100865034B1 (ko) 2002-07-18 2008-10-23 엘지전자 주식회사 모션 벡터 예측 방법
EP1734511B1 (en) 2002-09-04 2009-11-18 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US8711923B2 (en) 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
GB0229354D0 (en) 2002-12-18 2003-01-22 Robert Gordon The University Video encoding
JP4593556B2 (ja) 2003-01-09 2010-12-08 ザ リージェンツ オブ ザ ユニバーシティ オブ カリフォルニア 映像符号化方法及びデバイス
CN1795680B (zh) 2003-03-03 2010-06-16 新加坡科技研究局 采用avc帧内预测以便对数字视频进行编码的方法和装置
US8094715B2 (en) 2003-03-10 2012-01-10 Mitsubishi Denki Kabushiki Kaisha Video signal encoding device and video signal encoding method
NO318318B1 (no) 2003-06-27 2005-02-28 Tandberg Telecom As Fremgangsmate for forbedret koding av video
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
KR100987765B1 (ko) 2003-09-30 2010-10-13 삼성전자주식회사 동영상 부호화기에서의 예측 수행 방법 및 장치
US20050201469A1 (en) 2004-03-11 2005-09-15 John Sievers Method and apparatus for improving the average image refresh rate in a compressed video bitstream
EP1578131A1 (en) 2004-03-18 2005-09-21 STMicroelectronics S.r.l. Encoding/decoding methods and systems, computer program products therefor
KR100627329B1 (ko) 2004-08-19 2006-09-25 전자부품연구원 H.264 비디오 코덱을 위한 적응형 움직임 예측 및 모드결정 장치 및 그 방법
US7580456B2 (en) 2005-03-01 2009-08-25 Microsoft Corporation Prediction-based directional fractional pixel motion estimation for video coding
US8514933B2 (en) 2005-03-01 2013-08-20 Qualcomm Incorporated Adaptive frame skipping techniques for rate controlled video encoding
CN100358365C (zh) 2005-06-02 2007-12-26 上海交通大学 网络视频编码器多维尺度码率控制方法
US7733380B1 (en) 2005-07-19 2010-06-08 Maxim Integrated Products, Inc. Method and/or architecture for controlling encoding parameters using integrated information from camera ISP
US20070030894A1 (en) 2005-08-03 2007-02-08 Nokia Corporation Method, device, and module for improved encoding mode control in video encoding
KR100695158B1 (ko) 2005-08-03 2007-03-14 삼성전자주식회사 영상 부호화장치 및 방법과 그 복호화장치 및 방법
EP1761069A1 (en) 2005-09-01 2007-03-07 Thomson Licensing Method and apparatus for encoding video data using block skip mode
US8121194B2 (en) 2005-12-16 2012-02-21 Texas Instruments Incorporated Fast macroblock encoding with the early qualification of skip prediction mode using its temporal coherence
US7843995B2 (en) 2005-12-19 2010-11-30 Seiko Epson Corporation Temporal and spatial analysis of a video macroblock
US7903733B2 (en) 2006-01-26 2011-03-08 Qualcomm Incorporated Adaptive filtering to enhance video encoder performance
KR100739790B1 (ko) 2006-02-02 2007-07-13 삼성전자주식회사 인트라 예측 모드 결정 방법 및 장치
US8077775B2 (en) 2006-05-12 2011-12-13 Freescale Semiconductor, Inc. System and method of adaptive rate control for a video encoder
US20070274396A1 (en) 2006-05-26 2007-11-29 Ximin Zhang Complexity adaptive skip mode estimation for video encoding
US8379996B2 (en) 2006-06-20 2013-02-19 Nikon Corporation Image processing method using motion vectors, image processing device using motion vectors, and image processing program using motion vectors
KR100763917B1 (ko) 2006-06-21 2007-10-05 삼성전자주식회사 고속으로 움직임을 추정하는 방법 및 장치
CN102098517B (zh) 2006-08-28 2014-05-07 汤姆森许可贸易公司 用于确定解码视频块中的期望失真的方法及设备
US7456760B2 (en) 2006-09-11 2008-11-25 Apple Inc. Complexity-aware encoding
JPWO2008044658A1 (ja) 2006-10-10 2010-02-12 日本電信電話株式会社 イントラ予測符号化制御方法および装置、そのプログラム並びにプログラムを記録した記憶媒体
US8467448B2 (en) 2006-11-15 2013-06-18 Motorola Mobility Llc Apparatus and method for fast intra/inter macro-block mode decision for video encoding
CA2681025C (en) 2007-03-20 2015-10-13 Fujitsu Limited Video encoding and decoding apparatus and method using quantization in sub-blocks
US7957600B2 (en) 2007-05-08 2011-06-07 Arris Group, Inc. Methods and systems for rate-distortion optimized quantization of transform blocks in block transform video coding
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
CN100566427C (zh) 2007-07-31 2009-12-02 北京大学 用于视频编码的帧内预测编码最佳模式的选取方法及装置
US8908765B2 (en) * 2007-11-15 2014-12-09 General Instrument Corporation Method and apparatus for performing motion estimation
WO2009067155A2 (en) 2007-11-16 2009-05-28 Thomson Licensing System and method for encoding video
JP2009159323A (ja) 2007-12-26 2009-07-16 Toshiba Corp 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
JP2009182623A (ja) 2008-01-30 2009-08-13 Panasonic Corp 画像符号化方法
US8295356B2 (en) 2008-03-07 2012-10-23 International Business Machines Corporation Method and system for coding mode selection in video compression systems
KR101608426B1 (ko) 2008-03-28 2016-04-04 삼성전자주식회사 영상의 인트라 예측 부호화/복호화 방법 및 그 장치
US8270467B1 (en) 2008-05-13 2012-09-18 Marvell International Ltd. Encoding image data
US8571106B2 (en) 2008-05-22 2013-10-29 Microsoft Corporation Digital video compression acceleration based on motion vectors produced by cameras
KR100949917B1 (ko) 2008-05-28 2010-03-30 한국산업기술대학교산학협력단 적응적 인트라 예측을 통한 고속 부호화 방법 및 시스템
US8213503B2 (en) 2008-09-05 2012-07-03 Microsoft Corporation Skip modes for inter-layer residual video coding and decoding
US9479786B2 (en) 2008-09-26 2016-10-25 Dolby Laboratories Licensing Corporation Complexity allocation for video and image coding applications
FR2936926B1 (fr) 2008-10-06 2010-11-26 Thales Sa Systeme et procede de determination de parametres de codage
TWI382770B (zh) 2008-12-11 2013-01-11 Univ Nat Taiwan 視訊影像傳輸中遇到封包遺失時的有效選取方法
US9042656B2 (en) 2009-01-23 2015-05-26 Nec Corporation Image signature extraction device
US8311115B2 (en) 2009-01-29 2012-11-13 Microsoft Corporation Video encoding using previously calculated motion information
BRPI1008081A2 (pt) 2009-02-06 2017-10-17 Thomson Licensing metodos e aparelho para sinalizacao intra-modal implicita e semi-implicita para codificadores e desodificadores de video
US20100215104A1 (en) 2009-02-26 2010-08-26 Akira Osamoto Method and System for Motion Estimation
JP5133290B2 (ja) 2009-03-31 2013-01-30 株式会社Kddi研究所 動画像符号化装置および復号装置
US8379728B2 (en) 2009-04-17 2013-02-19 Texas Instruments Incorporated Adaptive real-time video prediction mode method and computer-readable medium and processor for storage and execution thereof
JP5588438B2 (ja) 2009-06-22 2014-09-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 画像符号化方法及び画像符号化装置
CN102474606B (zh) 2009-07-20 2014-09-24 三星电子株式会社 分层视频编码和解码中对颜色通道进行编码和解码的方法和设备
US8848799B2 (en) 2009-09-02 2014-09-30 Sony Computer Entertainment Inc. Utilizing thresholds and early termination to achieve fast motion estimation in a video encoder
US9473792B2 (en) 2009-11-06 2016-10-18 Texas Instruments Incorporated Method and system to improve the performance of a video encoder
US9369720B2 (en) 2009-12-28 2016-06-14 Panasonic Intellectual Property Management Co., Ltd. Image coding apparatus and image coding method
US8532408B2 (en) 2010-02-17 2013-09-10 University-Industry Cooperation Group Of Kyung Hee University Coding structure
KR101503269B1 (ko) 2010-04-05 2015-03-17 삼성전자주식회사 영상 부호화 단위에 대한 인트라 예측 모드 결정 방법 및 장치, 및 영상 복호화 단위에 대한 인트라 예측 모드 결정 방법 및 장치
KR101483179B1 (ko) 2010-10-06 2015-01-19 에스케이 텔레콤주식회사 주파수 마스크 테이블을 이용한 주파수변환 블록 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US9137544B2 (en) 2010-11-29 2015-09-15 Mediatek Inc. Method and apparatus for derivation of mv/mvp candidate for inter/skip/merge modes
JP5741076B2 (ja) 2010-12-09 2015-07-01 ソニー株式会社 画像処理装置及び画像処理方法
US20120195366A1 (en) 2011-02-01 2012-08-02 Mediatek Singapore Pte. Ltd. Method and Apparatus of Adaptive Inter Mode Coding Using Variable Length Codes
CN102148989B (zh) 2011-04-22 2012-07-25 西安交通大学 一种h.264中全零块检测的方法
US20120281760A1 (en) 2011-05-04 2012-11-08 Hyung Joon Kim Iterative Grid-Pattern Motion Search
MX2013012980A (es) 2011-06-28 2013-12-06 Panasonic Corp Metodo de decodificacion de imagenes, metodo de codificacion de imagenes, aparato de decodificacion de imagenes, aparato de codificacion de imagenes y aparato de codificacion y decodififcacion de imagenes.
JP2013012905A (ja) 2011-06-29 2013-01-17 Sony Corp 画像処理装置および方法
EP2705667B1 (en) 2011-06-30 2016-09-21 Huawei Technologies Co., Ltd. Lossless coding and associated signaling methods for compound video
US9516349B2 (en) 2011-07-12 2016-12-06 Futurewei Technologies, Inc. Pixel-based intra prediction for coding in HEVC
US20130021512A1 (en) 2011-07-20 2013-01-24 Broadcom Corporation Framing of Images in an Image Capture Device
RU2011131824A (ru) 2011-07-28 2013-02-10 ЭлЭсАй Корпорейшн Поиск интра-режима для кодирования видеоинформации
GB2493777A (en) 2011-08-19 2013-02-20 Skype Image encoding mode selection based on error propagation distortion map
US9369703B2 (en) 2011-09-29 2016-06-14 Texas Instruments Incorporated Method and apparatus for SSIM-based bit allocation
US9398300B2 (en) 2011-10-07 2016-07-19 Texas Instruments Incorporated Method, system and apparatus for intra-prediction in video signal processing using combinable blocks
US9930329B2 (en) 2011-11-03 2018-03-27 Thomson Licensing Video encoding and decoding based on image refinement
KR20130049522A (ko) 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
US10390046B2 (en) 2011-11-07 2019-08-20 Qualcomm Incorporated Coding significant coefficient information in transform skip mode
US9344715B2 (en) 2011-11-07 2016-05-17 Futurewei Technologies, Inc. Angular table for improving intra prediction
US9253482B2 (en) 2011-11-08 2016-02-02 Texas Insturments Incorporated Method and apparatus for sample adaptive offset without sign coding
US8693551B2 (en) 2011-11-16 2014-04-08 Vanguard Software Solutions, Inc. Optimal angular intra prediction for block-based video coding
US9628789B2 (en) 2011-11-18 2017-04-18 Qualcomm Incorporated Reference mode selection in intra mode coding
EP3094094B1 (en) 2012-01-20 2018-03-28 BlackBerry Limited Multiple sign bit hiding within a transform unit
WO2013143103A1 (en) 2012-03-29 2013-10-03 Mediatek Singapore Pte. Ltd. Methods and apparatuses of intra mode coding for scalable extension of high efficiency video coding (hevc)
US9154749B2 (en) 2012-04-08 2015-10-06 Broadcom Corporation Power saving techniques for wireless delivery of video
US9584802B2 (en) 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
CN102665078A (zh) 2012-05-08 2012-09-12 北方工业大学 用于hevc的基于方向矢量的帧内预测模式决策
WO2013181821A1 (en) 2012-06-07 2013-12-12 Mediatek Singapore Pte. Ltd. Improved intra transform skip mode
US9426466B2 (en) 2012-06-22 2016-08-23 Qualcomm Incorporated Transform skip mode
US9749645B2 (en) 2012-06-22 2017-08-29 Microsoft Technology Licensing, Llc Coded-block-flag coding and derivation
CN103533325B (zh) * 2012-07-06 2017-07-07 乐金电子(中国)研究开发中心有限公司 一种深度图像帧内编解码方法、装置及编解码器
US20140064359A1 (en) 2012-08-31 2014-03-06 Qualcomm Incorporated Intra prediction most probable mode order improvement for scalable video coding
US10785498B2 (en) 2012-11-27 2020-09-22 Squid Design Systems Pvt Ltd System and method of mapping multiple reference frame motion estimation on multi-core DSP architecture
US9219915B1 (en) 2013-01-17 2015-12-22 Google Inc. Selection of transform size in video coding
US9426473B2 (en) 2013-02-01 2016-08-23 Qualcomm Incorporated Mode decision simplification for intra prediction
CN103118262B (zh) 2013-02-04 2016-03-16 深圳广晟信源技术有限公司 率失真优化方法及装置、视频编码方法及***
US20140219331A1 (en) 2013-02-06 2014-08-07 Magnum Semiconductor, Inc. Apparatuses and methods for performing joint rate-distortion optimization of prediction mode
US9148667B2 (en) 2013-02-06 2015-09-29 Qualcomm Incorporated Intra prediction mode decision with reduced storage
US9357210B2 (en) 2013-02-28 2016-05-31 Sonic Ip, Inc. Systems and methods of encoding multiple video streams for adaptive bitrate streaming
US9998750B2 (en) * 2013-03-15 2018-06-12 Cisco Technology, Inc. Systems and methods for guided conversion of video from a first to a second compression format
US10904551B2 (en) 2013-04-05 2021-01-26 Texas Instruments Incorporated Video coding using intra block copy
CN103384327A (zh) 2013-04-22 2013-11-06 张新安 基于自适应阈值的avs快速模式选择算法
CN103248895B (zh) 2013-05-14 2016-06-08 芯原微电子(北京)有限公司 一种用于hevc帧内编码的快速模式估计方法
US20140369413A1 (en) * 2013-06-18 2014-12-18 Vmware, Inc. Systems and methods for compressing video data using image block matching
US20150189269A1 (en) 2013-12-30 2015-07-02 Google Inc. Recursive block partitioning
CN103763570B (zh) 2014-01-20 2017-02-01 华侨大学 一种基于satd的hevc快速帧内预测方法
US9924183B2 (en) 2014-03-20 2018-03-20 Nanjing Yuyan Information Technology Ltd. Fast HEVC transcoding
US9807398B2 (en) 2014-09-30 2017-10-31 Avago Technologies General Ip (Singapore) Pte. Ltd. Mode complexity based coding strategy selection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1369820A2 (en) * 2002-06-03 2003-12-10 Microsoft Corporation Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
CN102055977A (zh) * 2009-11-06 2011-05-11 三星电子株式会社 使用多个参考帧的快速运动估计方法
CN103281538A (zh) * 2013-06-06 2013-09-04 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法

Also Published As

Publication number Publication date
US10136140B2 (en) 2018-11-20
EP3120556B1 (en) 2021-01-13
CN105359531A (zh) 2016-02-24
EP3120556A1 (en) 2017-01-25
EP3120556A4 (en) 2017-01-25
US20160269732A1 (en) 2016-09-15
WO2015139165A1 (en) 2015-09-24

Similar Documents

Publication Publication Date Title
CN105359531B (zh) 用于针对屏幕内容编码的编码器侧判定的方法和***
CN105706450B (zh) 根据基于散列的块匹配的结果的编码器决定
CN105393537B (zh) 用于基于散列的块匹配的散列表构建和可用性检查
CN105556971B (zh) 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
CN105981382B (zh) 用于视频编码的基于散列的编码器判定
CN105917648B (zh) 具有非对称分区的帧内块复制预测以及编码器侧搜索图案、搜索范围和用于分区的方法
CN106416254B (zh) 在媒体编码期间跳过评估阶段
CN105684409B (zh) 在视频和图像编码和解码中使用散列值来表示各块
CN105874791B (zh) 在对重叠区域内的经重构样本值的块向量预测和估计方面的创新
CN105874795B (zh) 在波前并行处理被启用时对图片内预测模式的规则
CN105960802B (zh) 切换色彩空间时对编码和解码的调整
CN105432077B (zh) 在切换色彩空间时调整量化/缩放和逆量化/缩放
CN105659602B (zh) 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
CN105765974B (zh) 用于视频和图像编码和解码的帧内块复制预测模式的特征
CN105264888B (zh) 用于对色彩空间、色彩采样率和/或比特深度自适应切换的编码策略
CN105230023B (zh) 色彩空间、色彩采样率和/或比特深度的自适应切换
CN105493505B (zh) 统一的帧内块复制和帧间预测模式
CN105659606B (zh) 用于视频和图像编码和解码的方法、***和介质
CN105917650A (zh) 视频和图像编码/解码中的块向量预测
CN109716771A (zh) 用于视频译码的线性模型色度帧内预测
CN107431814B (zh) ρ域速率控制的变化的方法、***及计算机可读存储器
CN106664405A (zh) 用调色板模式对经逸出编码的像素的稳健编码/解码
CN110024398A (zh) 针对屏幕远程处理场景的局部的基于散列的运动估计
CN105900420A (zh) 选择运动向量精度
CN107211155A (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