针对屏幕内容编码的编码器侧判定的制作方法

文档序号:9602867阅读:574来源:国知局
针对屏幕内容编码的编码器侧判定的制作方法
【专利说明】针对屏幕内容编码的编码器侧判定
[0001]背景
[0002]工程师使用压缩(也叫做源译码或源编码)来降低数字视频的比特率。压缩通过将视频信息转换成较低比特率的形式来降低存储和传送该信息的成本。解压(也被称为解码)从压缩的形式中重构一种版本的原始信息。“编解码器”是编码器/解码器系统。
[0003]在过去的二十年中,已采用了各种视频编解码器标准,包括ITU-T H.261、H.262(MPEG-2或IS0/IEC 13818-2)、Η.263和 Η.264(MPEG-4 AVC或IS0/IEC 14496-10)标准、MPEG-1(IS0/IEC 11172 1 172-2)和 MPEG-4 可视(IS0/IEC 14496-2)标准以及 SMPTE421M(VC-1)标准。最近,H.265/HEVC标准(ITU-T Η.265 或 IS0/IEC 23008-2)已被批准。目前,(例如,用于可缩放视频编码/解码、用于在样本比特深度或色度采样率方面具有较高保真度的视频的编码/解码、用于屏幕捕捉内容、或用于多视图编码/解码的)H.265/HEVC标准的扩展处于开发中。视频编解码器标准通常定义针对经编码的视频比特流的句法的选项,从而详述当在编码和解码时使用特定特征时该比特流中的参数。在许多情况下,视频编解码器标准还提供关于解码器应当执行以在解码时取得一致的结果的解码操作的细节。除了编解码器标准外,各种专用编解码器格式定义针对经编码的视频比特流的句法的其他选项以及相应的解码操作。
[0004]如当前在一些参考软件中针对H.265/HEVC标准(及其扩展)实现的,编码器侧判定在各种情况下(尤其是在编码模式和屏幕内容视频的选项方面)并不被高效地作出。
[0005]概述
[0006]简言之,详细描述呈现了在针对屏幕内容视频或其他视频的编码的编码器侧判定方面的创新。例如,这些创新中的一些涉及通过标识出不同参考图片中用于运动估计的合适开始点来加速该运动估计的方式。其他创新涉及在基于散列的块匹配被使用时加速编码的方式。又一些创新涉及用于标识某些图片内预测模式在编码期间何时应当或不应当被评估的方式,该标识可加速编码。其他创新涉及其他编码方面。
[0007]根据本文中描述的创新的第一方面,在视频的编码期间,视频编码器为当前图片的当前块执行运动估计以为当前块选择运动矢量(“MV”)值。作为运动估计的一部分,视频编码器评估多个参考图片中的每一者中的一个或多个候选MV值。对于多个参考图片中的每一者,视频编码器仅用使用该参考图片的先前编码的块的一个或多个MV值(即不用使用任何其他参考图片的先前编码的块的任何MV值)来确定用于运动估计的开始点。例如,编码器从使用参考图片的先前编码的块的(诸)MV值确定MV预测值,随后将这些MV预测值所指示的位置用作那个参考图片中用于运动估计的开始点。视频编码器使用当前块的MV值来对当前块进行编码。
[0008]根据这些创新的另一方面,在图像或视频的编码期间,编码器对当前图片的当前块执行基于散列的块匹配。基于条件是否被满足,编码器确定是否为当前块跳过一个或多个编码阶段。该条件取决于在针对当前块的基于散列的块匹配期间是否发现了匹配。该条件还可取决于其他因素(例如,当前块的预期质量相对于用于该匹配的候选块的质量和/或当前块的块尺寸相对于阈值块尺寸)。基于该确定的结果,编码器为当前块选择性地跳过(诸)编码阶段。
[0009]例如,该针对当前块的基于散列的块匹配被执行用于运动估计,并且有可能被跳过的(诸)编码阶段包括针对当前块的部分精密(fract1nal-precis1n)运动估计或对当前块的编码模式和编码选项的评估。或者,该针对当前块的基于散列的块匹配被执行用于块矢量估计,并且有可能被跳过的(诸)编码阶段包括对当前块的图片内编码模式和编码选项的评估。
[0010]根据本文中描述的这些创新的另一方面,在图像或视频的编码期间,编码器测量该图像或视频的单元(例如,块、片、图片)中的不同色彩的数目。至少部分地基于该测量的结果,编码器为该单元确定是否跳过一个或多个图片内预测模式(例如,帧内块复制(“BC”)预测和/或字典编码模式)。例如,编码器将该测量的结果与阈值进行比较。如果没有为该单元跳过(诸)图片内预测模式,则编码器为该单元评估(诸)图片内预测模式。
[0011]根据本文中描述的这些创新的另一方面,在图像或视频的编码期间,编码器为当前图片的当前块标识空间图片内预测的候选方向集合。在对候选方向集合中的每一者执行了速率失真分析后,编码器选择候选方向集合中的一个候选方向以供使用那个候选方向来对当前块进行编码,而无需基于速率失真优化的量化(“RD0Q”)。随后,在当前块是使用所选的候选方向来进行编码时,编码器为当前块确定如何对残留四叉树进行编码。在该阶段,编码器用RD0Q执行速率失真分析以得到对残留四叉树进行编码的不同方式。
[0012]根据本文中描述的这些创新的另一方面,在图像或视频的编码期间,编码器检查当前块是否是使用帧内BC预测来编码的。取决于当前块是否是使用帧内BC预测来编码的,编码器为当前块启用或禁用变换模式。编码器随后对当前块进行编码。例如,如果当前块是使用帧内BC预测来编码的,则编码器评估当前块的变换跳跃模式而不评估变换模式。否则(当前块不是使用帧内BC预测来编码的),编码器评估当前块的变换跳跃模式以及变换模式。
[0013]针对编码器侧判定的创新可以被实现为方法的一部分、被适配成执行该方法的计算系统的一部分或存储用于使计算系统执行该方法的计算机可执行指令的有形计算机可读介质的一部分。各创新可以结合地或分开地使用。
[0014]参考附图阅读以下详细描述,将更清楚本发明的前述和其他目标、特征和优点。
[0015]附图简述
[0016]图1是其中可实现所描述的一些实施例的示例计算系统的示图。
[0017]图2a和2b是其中可实现所描述的一些实施例的示例网络环境的示图。
[0018]图3是结合其可实现所描述的一些实施例的示例编码器系统的示图。
[0019]图4a和4b是示出结合其可实现所描述的一些实施例的示例视频编码器的示图。
[0020]图5是示出针对图片的块的运动估计的示图。
[0021]图6和7是示出确定不同的参考图片中用于运动估计的开始点的示例方法的示图。
[0022]图8是示出用于执行运动估计的通用技术的流程图,其中某参考图片中的开始点是仅用使用该参考图片的MV值来确定的。
[0023]图9和10是示出对图片的块和该块在块匹配中的候选块的帧内BC预测的示图。
[0024]图11是示出在基于散列的块匹配中的候选块的散列值的表。
[0025]图12a_12c是示出为基于散列的块匹配组织候选块的示例数据结构的表。
[0026]图13a_13c是示出为迭代的基于散列的块匹配组织候选块的示例数据结构的表。
[0027]图14和15是示出用于取决于基于散列的块匹配的结果选择性地跳过一个或多个编码阶段的技术的流程图。
[0028]图16是示出自然视频和屏幕捕捉视频的块的特征的示图。
[0029]图17是示出用于取决于对视频单元中的不同色彩的数目的测量选择性地跳过对一个或多个图片内预测模式的评估的通用技术的流程图。
[0030]图18是示出示例空间图片内预测方向的示图。
[0031]图19是示出残留四叉树的示例组织的示图。
[0032]图20是示出用于为用空间图片内预测编码的块作出编码判定的示例技术的流程图。
[0033]图21是示出用于为用帧内BC预测编码的块选择性地跳过变换模式的通用技术的流程图。
[0034]详细描述
[0035]该详细描述呈现了用于对屏幕内容视频或其他视频进行编码的编码器侧判定方面的创新。例如,这些创新中的一些涉及通过标识出不同参考图片中用于运动估计的合适开始点来该加速运动估计的方式。这些编码器侧判定中的许多通过在条件被满足时终止对块的编码或跳过对某些模式或选项的评估来加速编码。例如,这些创新中的一些涉及用于在基于散列的块匹配被使用时加速编码的方式。又一些创新涉及标识某些图片内预测模式在编码期间何时应当或不应当被评估的方式。其他创新涉及其他编码方面。
[0036]虽然本文中描述的操作是被适当描述为由视频编码器来执行,但在许多情况中,这些操作可由另一类型的媒体处理工具(例如图像编码器)来执行。
[0037]本文中描述的一些创新是参考专用于H.265/HEVC标准的句法元素和操作来示出的。例如,对H.265/HEVC标准的草稿版本JCTVC-P1005—即2014年2月的“高效视频编码(HEVC)范围扩展文本规范??第6稿”JCTVC-P1005_vl作出参考。本文中描述的各创新还可以被实现为针对其它标准或格式。
[0038]本文中描述的许多创新可以在对诸如屏幕捕捉内容之类的某种“人工”创建的视频内容进行编码时改善速率-失真性能。屏幕捕捉内容典型地包括重复的结构(例如图形、文本字符)。屏幕捕捉内容通常以具有高色度采样分辨率的格式(例如YUV 4:4:4或RGB4:4:4)被编码,虽然它也可以以具有较低的色度采样分辨率(例如YUV 4:2:0)的格式被编码。编码/解码屏幕捕捉内容的常见场景包括远程桌面会议和对自然视频或其它“经混合的内容”视频的图形覆盖的编码/解码。本文中描述的创新中的若干个(例如,取决于基于散列的块匹配的结果来加速运动估计或块矢量估计、选择性地跳过某些图片内预测模式)被适配成用于对屏幕内容或其他人工创建的视频进行编码。这些创新也可以被用于自然视频,但可能不像那样有效。本文中描述的其他创新(例如,对运动估计的开始位置的计算)对于对自然视频或人工创建的视频进行编码是有效的。
[0039]更一般地,本文中描述的各示例的各种替代是可能的。例如,本文中描述的一些方法可以通过改变描述的方法动作的顺序、通过拆分、重复或忽略某些方法动作等来更改。所公开的技术的各方面能够被组合地或分开地使用。不同的实施例使用所描述的创新中的一个或多个。本文中描述的一些创新解决了背景中指出的一个或多个问题。通常,所给出的技术/工具并不解决所有这些问题。
[0040]1.示例计算系统
[0041]图1示出了其中可实现几个所描述的创新的合适计算系统(100)的概括示例。计算系统(100)并不旨对使用范围或功能提出任何限制,因为这些创新可以在不同的通用或专用计算系统中实现。
[0042]参考图1,计算系统(100)包括一个或多个处理单元(110、115)和存储器(120、125)。处理单元(110、115)执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”)、专用集成电路(“ASIC”)中的处理器或任意其它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图1示出中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120、125)可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPR0M、闪存等)或两者的某种组合,可由处理单元存取。存储器(120,125)存储实现针对屏幕内容编码的编码器侧判定的一个或多个创新的软件(180),该软件采用适用于由(诸)处理单元执行的计算机可执行指令的形式。
[0043]计算系统可具有附加的特征。例如,计算系统(100)包括存储(140)、一个或多个输入设备(150)、一个或多个输出设备(160)以及一个或多个通信连接(170)。诸如总线、控制器或网络之类的互连机制(未示出)将计算系统(100)的各组件互连。通常,操作系统软件(未示出)为在计算系统(100)中执行的其它软件提供操作环境,并协调计算系统(100)的各组件的活动。
[0044]有形存储(140)可以是可移动或不可移动的,并包括磁盘、磁带或磁带盒、CD-R0M、DVD或可用于储存信息并可在计算系统(100)内访问的任何其他介质。存储(140)存储实现针对屏幕内容编码的编码器侧判定的一个或多个创新的软件(180)的指令。
[0045](诸)输入设备(150)可以是触摸输入设备(诸如键盘、鼠标、笔或跟踪球)、语音输入设备、扫描设备或向计算系统(100)提供输入的另一设备。对于视频,(诸)输入设备
(150)可以是相机、视频卡、TV调谐卡、屏幕捕捉模块或接受模拟或数字形式的视频输入的类似设备、或将视频输入读到计算系统(100)中的CD-ROM或CD-RW。(诸)输出设备(160)可以是显示器、打印机、扬声器、CD刻录机或提供来自计算系统(100)的输出的另一设备。
[0046](诸)通信连接(170)允许通过通信介质与另一计算实体通信。通信介质传达诸如计算机可执行指令、音频或视频输入或输出、或已调制数据信号中的其他数据之类的信息。已调制数据信号是使其一个或多个特征以在信号中编码信息的方式设置或改变的信号。作为示例而非限制,通信介质可以使用电的、光学的、RF或其它载体。
[0047]各创新可以在计算机可读介质的一般上下文中描述。计算机可读介质是可在计算环境内访问的任何可用有形介质。作为示例而非局限,对于计算系统(100),计算机可读介质包括存储器(120、125)、存储(140)、和以上任意的组合。
[0048]各创新可在计算机可执行指令(诸如包括在程序模块中的在目标现实或虚拟处理器上在计算系统中执行的那些计算机可执行指令)的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。如各实施例中所描述的,这些程序模块的功能可以被组合,或者在这些程序模块之间拆分。针对各程序模块的计算机可执行指令可以在本地或分布式计算系统中执行。
[0049]术语“系统”和“设备”在此被互换地使用。除非上下文明确指示,否则,术语并不暗示对计算系统或计算设备的类型的任何限制。一般来说,计算系统或计算设备可以是本地的或分布式的,并且可以包括具有实现本文中描述的功能的软件的专用硬件和/或通用硬件的任意组合。
[0050]所公开的方法还可使用被配置成执行所公开的方法中的任一者的专用计算硬件来实现。例如,所公开的方法可以由被专门设计或配置成实现所公开的方法中的任一者的集成电路(例如,诸如ASIC数字信号处理器(“DSP”)之类的ASIC、图像处理单元(“GPU”)、或诸如场可编程门阵列(“FPGA”)之类的可编程逻辑器件(“PLD”))来实现。
[0051]为了呈现起见,本详细描述使用了如“确定”和“使用”等术语来描述计算系统中的计算机操作。这些术语是对由计算机执行的操作的高级抽象,且不应与人类所执行的动作混淆。对应于这些术语的实际的计算机操作取决于实现而不同。
[0052]I1.示例网络环境
[0053]图2a和2b示出了包括视频编码器(220)和视频解码器(270)的示例网络环境(201,202)。编码器(220)和解码器(270)使用合适的通信协议通过网络(250)连接。网络(250)可包括因特网或另一计算机网络。
[0054]在图2a所示的网络环境(201)中,每个实时通信(“RTC”)工具(210)都包括用于双向通信的编码器(220)和解码器(270)两者。给定的编码器(220)可以产生符合H.265/HEVC 标准、SMPTE 421M 标准、IS0/IEC 14496-10 标准(也称为 H.264 或 AVC)、另一标准、或专用格式的变型或扩展的输出,使得相应的解码器(270)接受来自编码器(220)的经编码的数据。双向通信可以是视频会议、视频电话呼叫或其它双方或多方通信场景的部分。虽然,图2a中的网络环境(201)包括两个实时通信工具(210),但网络环境(201)可改为包括参与多方通信的三个或更多个实时通信工具(210)。
[0055]实时通信工具(210)管理编码器(220)做出的编码。图3示出可以被包括在实时通信工具(210)中的示例编码器系统(300)。替换地,实时通信工具(210)使用另一编码器系统。实时通信工具(210)还管理解码器(270)做出的解码。图4示出可以被包括在实时通信工具(210)中的示例解码器系统(400)。替换地,实时通信工具(210)使用另一解码器系统。
[0056]在图2b中示出的网络环境(202)中,编码工具(212)包括编码供递送给多个回放工具(214)的视频的编码器(220
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1