针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定的制作方法

文档序号:9794462阅读:168来源:国知局
针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定的制作方法
【专利说明】针对顺内块复制预测中的块翻动和跳跃模式的编码器侧判定
[000。 背景
[0002] 工程师使用压缩(也叫做源编码)来降低数字视频的比特率。压缩通过将视频信息 转换成较低比特率的形式来降低存储和传送该信息的成本。
[0003] 解压(也被称为解码)从压缩的形式中重构一种版本的原始信息。"编解码器"是编 码器/解码器系统。
[0004] 在过去的二十年中,已采用了各种视频编解码器标准,包括ITU-T H.261、H. 262 (MPEG-2或IS0/IEC 13818-2)、H. 263和H.264(MPEG-4 AVC或IS0/IEC 14496-10)标准、 MPEG-1(IS0/IEC 1 1 172-2)和MPEG-4可视(IS0/IEC 14496-2)标准W及SMPTE 421M(VC-1)标准。
[0005] 最近,H.265/肥VC标准(ITU-T H.265或IS0/IEC 23008-2)已被批准。当前,正在开 发(例如,针对可缩放视频编码/解码、针对在样本比特深度或色度采样率方面具有较高保 真度的视频的编码/解码、或针对多视图编码/解码的)肥VC标准的扩展。视频编解码器标准 通常定义针对经编码的视频比特流的句法的选项,从而详述当在编码和解码时使用特定特 征时该比特流中的参数。在许多情况下,视频编解码器标准还提供关于解码器应当执行W 在解码时取得一致的结果的解码操作的细节。除了编解码器标准外,各种专用编解码器格 式定义针对经编码的视频比特流的句法的其他选项W及相应的解码操作。
[0006] 帖内块复制("BC")是H.265/肥V讶广展的处于开发中的预测模式。对于帖内BC预测 模式,图片中的当前块的样本值是使用同一图片中的先前重构的样本值来预测的。块矢量 ("Br)指示从当前块到图片中包括用于预测的先前重构的样本值的区域的位移。BV被信号 化在比特流中。帖内BC预测是一种形式的图片内预测一针对图片中的块的帖内BC预测不使 用除了同一图片中的样本值W外的任何样本值。
[0007] 如当前在H. 265/皿VC标准中规定并在针对H. 265/皿VC标准的某一参考软件中实 现的,帖内BC预测模式具有若干问题。具体地,对具有可预测的BC位移的块的编码不会被高 效地处理,并且针对具有相反模式的内容的帖内BC预测不会被高效地处理。
[000引概述
[0009] 概括而言,详细描述呈现了在使用预测来编码块的领域中的创新。例如,运些创新 中的一些设及关于在预测期间何时使用块翻动的编码器侧判定。其他创新设及关于何时对 使用帖内块复制r'BC')预测来预测的块使用跳跃模式的编码器侧判定。
[0010] 根据本文中描述的创新的第一方面,编码器执行基于散列的块匹配W便为当前图 片中的当前块确定参考区域。基于散列的块匹配考虑当前块的预测区域相对于参考区域的 翻动。例如,作为基于散列的块匹配的一部分,编码器翻动当前块,为经翻动的当前块确定 块散列值,并随后捜索散列表W标识出多个候选块中具有与经翻动的当前块的块散列值匹 配的块散列值的任一者。散列表根据其块散列值来组织候选块。
[001。 或者,作为另一示例,散列表根据其块散列值来组织候选块,并且散列表还根据其 块散列值来组织候选块的至少一些经翻动的版本。作为基于散列的块匹配的一部分,编码 器可确定当前块的块散列值,并随后捜索散列表W标识出候选块及候选块的经翻动版本中 具有与当前块的块散列值匹配的块散列值的任一者。
[0012]对于块矢量("Br)估计,当前图片包括候选块。对于运动估计,参考图片包括候选 块。候选块可包括具有相同块尺寸或不同块尺寸的块。
[0013] 编码器基于参考区域来确定当前块的预测区域。预测区域可相对于参考区域被翻 动。例如,预测区域相对于参考区域被水平地翻动和/或相对于参考区域被垂直地翻动。
[0014] 编码器使用预测区域来编码当前块,并在比特流中输出经编码的数据。例如,经编 码的数据包括块的BV值,该BV值指示到参考区域的位移。或者,经编码的数据包括当前块的 运动矢量("MV")值,该MV值指示到参考区域的位移。
[0015] 根据本文中描述的创新的第二方面,编码器判定是否将使用帖内BC预测W跳跃模 式对当前图片中的当前块进行编码。当作出该判定时,编码器执行基于散列的块匹配W确 定当前图片中的参考区域。例如,作为当前块是使用帖内BC预测W跳跃模式来编码的条件, 编码器检查参考区域的输入样本值等同地匹配当前块的相应输入样本值。在作出该判定 时,编码器还可将当前块的量化参数("QP")与参考区域的QP值进行比较。例如,作为当前块 是使用帖内BC预测W跳跃模式来编码的条件,编码器检查当前块的QP值大于或等于参考区 域的QP值。或者,取代检查块和参考区域的QP值,编码器相对于参考区域评估该块的残留 值。
[0016] 当当前块是使用帖内BC预测W跳跃模式来编码的时候,编码器确定当前块的BV 值。当前块的BV值指示到参考区域的位移。编码器使用帖内BC预测用该BV值来编码当前块。 编码器随后在比特流中输出经编码的数据。由于当前块是使用帖内BC预测W跳跃模式来编 码的,所W比特流缺少当前块的残留数据。
[0017] 运些创新可W被实现为方法的一部分、被适配成执行该方法的计算系统的一部分 或存储用于使得计算系统执行该方法的计算机可执行指令的有形计算机可读介质的一部 分。各个创新可被结合地或分开地使用。具体地,所描述的对帖内BC预测中的块翻动的编码 器侧判定可结合所描述的对用于帖内BC预测的块的跳跃模式的编码器侧判定来使用。
[0018] 参考附图阅读W下详细描述,将更清楚本发明的前述和其他目标、特征和优点。 [0019] 附图简述
[0020] 图1是其中可实现所描述的一些实施例的示例计算系统的示图。
[0021] 图2a和化是其中可实现所描述的一些实施例的示例网络环境的示图。
[0022] 图3是结合其可实现所描述的一些实施例的示例编码器系统的示图。
[0023] 图4是结合其可实现所描述的一些实施例的示例解码器系统的示图。
[0024] 图5a和化是示出结合其可实现所描述的一些实施例的示例视频编码器的示出。
[0025] 图6是示出结合其可实现所描述的一些实施例的示例视频解码器的示图。
[0026] 图7a和7b是分别示出针对图片中的块的帖内BC预测和针对该块的BV预测的示图。
[0027] 图8a-8d、9a-9c和IOa-IOc是示出针对各块的参考区域的翻动的示图。
[0028] 图11和12是分别示出用于编码和解码的技术的流程图,其中帖内BC预测区域被相 对于参考区域翻动。
[0029] 图13和14是示出用于包括针对帖内BC预测的块的跳跃模式的编码的技术的流程 图。
[0030] 图15和16是示出用于包括针对帖内BC预测的块的跳跃模式的解码的技术的流程 图。
[0031] 图17a和17b是示出编码单元的根据现有方法的句法结构的表格。
[0032] 图18是示出编码单元的可用跳跃模式编码成帖内BC预测的块的新句法结构的表。 图19是示出块匹配中针对示例帖的块的候选块的示图。
[0033] 图20是示出基于散列的块匹配中的候选块的散列值的表格。
[0034] 图21a-21c是示出组织基于散列的块匹配的候选块的示例数据结构的表格。
[0035] 图22a-22c是示出组织用于迭代的基于散列的块匹配的候选块的示例数据结构的 表格。
[0036] 图23a和23b是示出第二示例视频编码器的示图,并且图24a和24b是示出第=示例 视频编码器的示图,结合运些编码器可实现所描述的一些实施例。
[0037] 图25是示出用于判定在编码期间是否使用块翻动的技术的流程图。
[0038] 图26是示出用于判定在编码期间是否应当用帖内BC预测跳跃模式来编码块的技 术的流程图。
[0039] 详细描述
[0040] 该详细描述呈现了在使用预测来编码块的领域中的创新。例如,运些创新中的一 些设及关于在预测期间何时使用块翻动的编码器侧判定。其他创新设及关于何时对使用帖 内块复制("BC")预测来预测的块使用跳跃模式的编码器侧判定。在许多情况下,运些创新 改善了编码效率。
[0041] 虽然本文中描述的操作是被适当描述为由视频编码器或视频解码器来执行,但在 许多情况中,运些操作可由另一类型的媒体处理工具(例如图像编码器或图像解码器)来执 行。
[0042] 本文中描述的一些创新是参考专用于H. 265/皿VC标准的句法元素和操作来示出 的。例如,对H.265/皿VC标志的草稿版本JCTVC-P1005-即2014年2月的"高效视频编码 化EVC)范围扩展文本规范:第6稿"JCTVC-P1005_vl作出参考。本文中描述的各创新还可W 被实现为针对其它标准或格式。
[0043] 本文中描述的一些创新(例如,块翻动)是参考帖内BC预测来描述的。运些创新也 可适用于其他上下文(例如,运动补偿中针对参考区域的块翻动)。
[0044] 更一般地,本文中描述的各示例的各种替代是可能的。例如,本文中描述的一些方 法可W通过改变描述的方法动作的顺序、通过拆分、重复或忽略某些方法动作等来更改。所 公开的技术的各方面能够被组合地或分开地使用。不同的实施例使用所描述的创新中的一 个或多个。本文中描述的一些创新解决了背景中指出的一个或多个问题。
[0045] 通常,所给出的技术/工具并不解决所有运些问题。
[0046] I.示例计算系统
[0047] 图1示出了其中可实现几个所描述的创新的合适计算系统(100)的概括示例。计算 系统(100)并不旨对使用范围或功能提出任何限制,因为运些创新可W在不同的通用或专 用计算系统中实现。
[004引参考图1,计算系统(100)包括一个或多个处理单元(110、115)和存储器(120、 125)。处理单元(110、115)执行计算机可执行指令。处理单元可W是通用中央处理单元 ("CPU")、专用集成电路("ASIC")中的处理器或任何其它类型的处理器。在多处理系统中, 多个处理单元执行计算机可执行指令W提高处理能力。例如,图I示出中央处理单元(110) W及图形处理单元或协处理单元(115)。有形存储器(120、125)可W是(诸)处理单元可访问 的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存 等)或运两者的某一组合。
[0049] 存储器(120,125)存储实现帖内BC预测中的块翻动和/或跳跃模式的编码器侧判 定的一个或多个创新的软件(180),该软件处于适用于由(诸)处理单元执行的计算机可执 行指令的形式。
[0050] 计算系统可具有附加的特征。例如,计算系统(100)包括存储(140 )、一个或多个输 入设备(150)、一个或多个输出设备(160) W及一个或多个通信连接(170)。诸如总线、控制 器或网络之类的互连机制(未示出)将计算系统(100)的各组件互连。通常,操作系统软件 (未示出)为在计算系统(100)中执行的其它软件提供操作环境,并协调计算系统(100)的各 组件的活动。
[0051 ] 有形存储(140)可W是可移动或不可移动的,并包括磁盘、磁带或磁带盒、CD-ROM、 DVD或可用于储存信息并可在计算系统(100)内访问的任何其他介质。存储(140)存储针对 实现帖内BC预测中的块翻动和/或跳跃模式的编码器侧判定的一个或多个创新的软件 (180)的指令。
[0052] (诸)输入设备(150)可W是触摸输入设备(诸如键盘、鼠标、笔或跟踪球)、语音输 入设备、扫描设备或向计算系统(100)提供输入的另一设备。对于视频,(诸)输入设备(150) 可W是相机、视频卡、TV调谐卡、屏幕捕捉模块或接受模拟或数字形式的视频输入的类似设 备、或将视频输入读到计算系统(100)中的CD-ROM或CD-RW。(诸)输出设备(160)可W是显示 器、打印机、扬声器、CD刻录机或提供来自计算系统(100)的输出的另一设备。
[0053] (诸)通信连接(170)允许通过通信介质与另一计算实体通信。通信介质传达诸如 计算机可执行指令、音频或视频输入或输出、或已调制数据信号中的其他数据之类的信息。 已调制数据信号是使其一个或多个特征W在信号中编码信息的方式设置或改变的信号。作 为示例而非限制,通信介质可W使用电的、光学的、RF或其它载体。
[0054] 各创新可W在计算机可读介质的一般上下文中描述。计算机可读介质是可在计算 环境内访问的任何可用有形介质。作为示例而非局限,对于计算系统(100),计算机可读介 质包括存储器(120、125 )、存储(140 )、和W上任意的组合。
[0055] 各创新可在计算机可执行指令(诸如包括在程序模块中的在目标现实或虚拟处理 器上在计算系统中执行的那些计算机可执行指令)的一般上下文中描述。一般而言,程序模 块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构 等。如各实施例中所描述的,运些程序模块的功能可W被组合,或者在运些程序模块之间拆 分。针对各程序模块的计算机可执行指令可W在本地或分布式计算系统中执行。
[0056] 术语"系统"和"设备"在本文中被互换地使用。除非上下文明确指示,否则,术语并 不暗示对计算系统或计算设备的类型的任何限制。一般来说,计算系统或计算设备可W是 本地的或分布式的,并且可W包括具有实现本文中描述的功能的软件的专用硬件和/或通 用硬件的任意组合。
[0057] 所公开的方法还可使用被配置成执行所公开的方法中的任一者的专用计算硬件 来实现。例如,所公开的方法可W由被专口设计或配置成实现所公开的方法中的任一者的 集成电路(例如,诸如ASIC数字信号处理器("DSP")之类的ASIC、图像处理单元rGPU")、或 诸如场可编程口阵列("FPGA")之类的可编程逻辑器件("PL护))来实现。
[0058]出于介绍的目的,本详细描述使用了如"确定"和"使用"等术语来描述计算系统中 的计算机操作。运些术语是对由计算机执行的操作的高级抽象,且不应与人类所执行的动 作混淆。对应于运些术语的实际的计算机操作取决于实现而不同。
[0化9] II.示例网络环境
[0060] 图2a和化示出了包括视频编码器(220)和视频解码器(270)的示例网络环境(201, 202)。编码器(220)和解码器(270)使用合适的通信协议通过网络(250)连接。网络(250)可 包括因特网或另一计算机网络。
[0061] 在图2a所示的网络环境(201)中,每个实时通信("TC")工具(210)都包括用于双向 通信的编码器(220)和解码器(270)两者。给定的编码器(220)可W产生符合H. 265/肥VC标 准、SMPTE 421M标准、IS0/TEC 14496-10标准(也称为H.264或AVC)、另一标准、或专用格式 的变型或扩展的输出,使得相应的解码器(270)接受来自编码器(220)的经编码的数据。双 向通信可W是视频会议、视频电话呼叫或其它双方或多方通信场景的部分。虽然,图2a中的 网络环境(201)包括两个实时通信工具(210),但网络环境(201)可改为包括参与多方通信 的=个或更多个实时通信工具(210)。
[0062] 实时通信工具(210)管理编码器(220)做出的编码。图3示出可W被包括在实时通 信工具(210)中的示例编码器系统(300)。替换地,实时通信工具(210)使用另一编码器系 统。实时通信工具(210)还管理解码器(270)做出的解码。图4示出可W被包括在实时通信工 具(210)中的示例解码器系统(400)。替换地,实时通信工具(210)使用另一解码器系统。
[0063] 在图化中示出的网络环境(202)中,编码工具(212)包括编码供递送给多个回放工 具(214)的视频的编码器(220),此多个回放工具(214)包括解码器(270)。单向通信可被提 供用于视频监视系统、web相机监视系统、屏幕捕捉模块、远程桌面会议演示或在其中编码 视频并将其从一个位置发送到一个或多个其它位置的其它场景。虽然在图化中的网络环境 (202)包括两个回放工具(214),但该网络环境(202)可W包括更多或更少的回放工具 (214)。一般来说,回放工具(214)与编码工具(212)通信W确定回放工具(214)要接收的视 频流。回放工具(214)接收该流、缓冲所接收的经编码的数据达合适的时间段并开始解码和 回放。
[0064] 图3示出可W被包括在编码工具(12)中的示例编码器系统(300)。替换地,编码工 具(212)使用另一编码器系统。编码工具(212)还可W包括用于管理与一个或多个回放工具 (214)的连接的服务器侧控制器逻辑。图4示出可W被包括在回放工具(214)中的示例解码 器系统(400)。替换地,回放工具(214)使用另一解码器系统。回放工具(214)还可W包括用 于管理与一个或多个编码工具(212)的连接的客户机侧控制器逻辑。
[00化]III.示例编码器系统
[0066]图3是结合其可实现所描述的一些实施例的示例编码器系统(300)的框图。编码器 系统(300)可W是能够用多种编码模式中的任一者(诸如用于实时通信的低等待时间编码 模式、转码模式和用于从文件或流中产生供回放的媒体的较高等待时间编码模式)操作的 通用编码工具,或它可W是适用于一种运样的编码模式的专用编码工具。编码器系统(300) 可W适用于编码特定类型的内容(例如屏幕捕捉内容)。编码器系统(300)可W被实现为操 作系统模块、应用库的部分、独立的应用。总体上,编码器系统(300)从视频源(310)接收源 视频帖序列(311)并产生经编码的数据作为到信道(390)的输出。到该信道的经编码的数据 输出可包括在帖内BC预测中使用块翻动和/或跳跃模式编码的内容,如本文中所描述的。
[0067] 视频源(310)可W是相机、调谐卡、存储介质、屏幕捕捉模块或其它数字视频源。视 频源(310) W例如每秒30帖的帖速率产生视频帖序列。如本文中所使用的,术语"帖"一般指 代源、经编码的或经重构的图像数据。对于逐行扫描视频,帖是逐行扫描视频帖。对于隔行 视频,在各示例实施例中,隔行视频帖可W在编码之前被去隔行。
[0068] 替换地,两个互补的隔行视频场可W被编码在一起作为单个视频帖或者被编码成 两个经分开编码的场。除了指示逐行扫描视频帖或隔行扫描视频帖之外,术语"帖"或"图 片"可W指示单个非成对的视频场、互补的成对视频场、表示在给定时间的视频对象的视频 对象平面、或较大图像中的感兴趣区域。视频对象平面或区域可W是包括场景的多个对象 或区域的较大图像的一部分。
[0069] 抵达的源帖(311)被存储在包括多个帖缓冲器存储区域(321、322、…、32n)的源帖 临时存储器存储区域(320)中。帖缓冲器(321、322等)在源帖存储区域(320)中保持一个源 帖。在一个或多个源帖(311)已被存储在帖缓冲器(321,322等)中后,帖选择器(330)从源帖 存储区域(320)中选择一个体源帖。帖选择器(330)选择帖W供输入到编码器(340)的次序 可不同于视频源(310)产生运些帖的次序,例如某些帖的编码可W被按序延迟,从而允许一 些更后面的帖被先编码并由此促成时间上向后的预测。在编码器(340)之前,编码器系统 (300)可包括预处理器(未示出),该预处理器在编码之前执行对选中的帖(331)的预处理 (例如滤波)。预处理可包括色彩空间转换成主要(例如亮度)和次要(例如偏向红色和偏向 蓝色的色度差)分量W及用于编码的重采样处理(例如W减少色度分量的空间分辨率)。通 常,在编码之前,视频已被转换成诸如YUV的色彩空间,其中亮度(Y)分量的样本值表示明亮 度或强度值,而色度(U,V)分量的样本值表示色差值。色差值(W及从YUV色彩空间到诸如 RGB的另一色彩空间和/或从另一色彩空间到YUV色彩空间的转换操作)的精确定义取决于 实现。一般来说,如本文中所使用的,术语YUV指示具有亮度(或辉度)分量和一个或多个色 度(或色差)分量的任意色彩空间,包括¥'1^、¥19、¥'19和¥抓化^及诸如¥化化和¥(:〇〔旨之类 的变型。色度样本值可W被子采样到较低的色度采样率(例如用于YUV 4:2:0格式),或者色 度样本值可W具有与亮度样本值相同的分辨率(例如用于YUV 4:4:4格式)。或者,视频可用 另一格式(例如,RGB 4:4:4格式)来编码。
[0070] 编码器(340)编码选中的帖(331) W产生经编码的帖(341)并且还产生存储器管理 控制操作("MMC0")信号(342)或参考图片集("RPS")信息。RPS是在针对当前帖或任意后续 帖的运动补偿中可用于供参考的帖集。如果当前帖不是已被编码的第一帖,则在执行其编 码处理时,编码器(340)可W使用已经被存储在经解码帖的临时存储器存储区域(360)中的 一个或多个先前被编码/解码的帖(369)。运样的存储的经解码帖(369)被用作用于当前源 帖(331)的内容的帖间预测的参考帖。MMC0/RPS信息(342)向解码器指示哪些经重构的帖可 被用作参考帖,并且因此应该被存储在帖存储区域中。
[0071] -般来说,编码器(340)包括执行编码任务的多个编码模块,编码任务为诸如分割 成小块、帖内预测估计和预测、运动估计和补偿、频率变换、量化和赌编码。由编码器(340) 执行的确切操作可W取决于压缩格式而变化。
[0072] 输出的经编码数据的格式可W是H. 265/皿VC格式、Windows媒体视频格式、VC-I格 式、MPEG-X格式(例如,MPEG-I、MPEG-2或MPEG-4)、H. 26x格式(例如,H. 261、H. 262、H. 263或 H. 264)或其它格式的变型或扩展。
[0073] 编码器(340)可W将帖分割成相同尺寸或不同尺寸的多个小块。例如,编码器 (340)沿小块行和小块列来拆分帖,运些小块行和小块列利用帖边界定义在该帖内的小块 的水平和垂直边界,其中每个小块是矩形区域。小块通常被
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1