在波前并行处理被启用时对图片内预测模式的规则的制作方法

文档序号:10518146阅读:184来源:国知局
在波前并行处理被启用时对图片内预测模式的规则的制作方法
【专利摘要】各创新促成编码器或解码器在波前并行处理(“WPP”)被启用时对诸如调色板预测模式、帧内块复制模式、帧内行复制模式和帧内串复制模式之类的图片内预测模式的使用。例如,对于调色板编码/解码模式,编码器或解码器使用来自图片的先前WPP行中的先前单元的先前调色板数据来预测该图片的当前WPP行中的初始单元的调色板。或者,作为另一示例,对于帧内复制模式(例如,帧内块复制模式、帧内串复制模式、帧内行复制模式),编码器强制实施归因于WPP的一个或多个约束,或者解码器接收满足归因于WPP的一个或多个约束的经编码的数据,并对该数据进行解码。
【专利说明】在波前并行处理被启用时对图片内预测模式的规则
[0001 ] 背景
[0002]工程师使用压缩(也叫做源编码(source coding或source encoding))来降低数字视频的比特率。压缩通过将视频信息转换成较低比特率的形式来降低存储和传送该信息的成本。解压(也被称为解码)从压缩的形式中重构一种版本的原始信息。“编解码器”是编码器/解码器系统。
[0003]在过去的至少25年中,已采用了各种视频编解码器标准,包括ITU-T H.26UH.262(MPEG-2或IS0/IEC 13818-2)、Η.263和H.264(MPEG_4AVC或IS0/IEC 14496-10)标准、MPEG-KIS0/IEC 11172-2)和MPEG-4可视(IS0/IEC 14496-2)标准以及SMPTE 421M(VC_1)标准。最近,H.265/HEVC标准(ITU-T H.265或IS0/IEC 23008-2)已被批准。目前,(例如,用于可缩放视频编码/解码、用于在样本比特深度或色度采样率方面具有较高保真度的视频的编码/解码、用于屏幕捕捉内容、或用于多视图编码/解码的)H.265/HEVC标准的扩展处于开发中。视频编解码器标准通常定义针对经编码的视频比特流的句法的选项,从而详述当在编码和解码时使用特定特征时该比特流中的参数。在许多情况下,视频编解码器标准还提供关于解码器应当执行以在解码时取得一致的结果的解码操作的细节。除了编解码器标准外,各种专用编解码器格式定义针对经编码的视频比特流的句法的其他选项以及相应的解码操作。
[0004]波前并行处理(“WPP”)是可用于以H.265/HEVC标准进行编码和解码的工具。在WPP被启用时,图片的一部分被划分成几行被称为编码树单元(“CTU”)的专用部分。在编码或解码期间,第一行CTU可被从左到右一个CTU接一个CTU地处理。对第二行CTU的处理(编码或解码)不需要等待对第一行CTU的处理完成。相反,对第二行的处理可在对第一行CTU中的若干CTU的处理完成后开始,其提供在处理第二行的初始CTU时所使用的信息。类似地,对第三行CTU的处理可在对第二行CTU中的若干CTU的处理完成后开始。WPP促成对不同行CTU的并行处理。不同的线程或处理核可在分阶段时间延迟的基础上执行针对不同行CTU的处理。
[0005]块内复制(“BC”)是H.265/HEVC扩展的处于开发中的预测模式。对于帧内BC预测模式,图片的当前块的样本值是使用同一图片中的先前重构的样本值来预测的。块向量(“BV”)指示从当前块到图片的包括用于预测的先前重构的样本值的参考块的位移。BV被信号化在比特流中。帧内BC预测是一种形式的图片内预测一一针对图片的块的帧内BC预测不使用除了同一图片中的样本值以外的任何样本值。帧内串复制(“SC”)模式和帧内行复制(“LC”)模式是图片内预测模式的其他示例,其与帧内BC预测相同,使用偏移值来指示到被用于预测的先前重构的样本值中的某位置的位移。作为图片内预测模式的另一示例的调色板预测模式预测用于表示诸如编码单元(“CU”)之类的部分中的色彩的调色板。如当前针对H.265/HEVC标准的扩展所指定的,各种图片内预测模式在WPP被启用时没有被高效地使用。
[0006]概述
[0007]总而言之,详细描述呈现在波前并行处理(“WPP”)被启用时对图片内预测模式强制实施的规则方面的创新。比特流中的句法元素可指示是否对视频序列(一个或多个图片的集合)启用WPP。这些创新促成编码器或解码器在WPP被启用时对诸如调色板预测模式、帧内块复制模式、帧内行复制模式和帧内串复制模式之类的图片内预测模式的使用。
[0008]根据本文中描述的创新中的一个方面,编码器在WPP被启用的情况下对图片进行编码。该编码产生经编码的数据。对于调色板编码模式,编码器使用来自图片的先前WPP行中的先前单元的先前调色板数据来预测该图片的当前WPP行中的初始单元的调色板。编码器将经编码的数据作为比特流的一部分来输出。
[0009]相应的解码器接收该经编码的数据作为比特流的一部分。解码器在WPP被启用的情况下对经编码的数据进行解码。该解码重构图片。对于调色板解码模式,解码器使用来自图片的先前WPP行中的先前单元的先前调色板数据来预测该图片的当前WPP行中的初始单元的调色板。
[0010]根据本文中描述的创新中的另一方面,编码器在WPP被启用的情况下对图片进行编码。该编码产生经编码的数据。对于帧内复制模式(例如,帧内块复制模式、帧内串复制模式、帧内行复制模式),编码器强制实施可归因于WPP的一个或多个约束。编码器将经编码的数据作为比特流的一部分来输出。
[0011]相应的解码器接收经编码的数据作为比特流的一部分。对于帧内复制模式(例如,帧内块复制模式、帧内串复制模式、帧内行复制模式),经编码的数据满足可归因于WPP的一个或多个约束。解码器通过启用的WPP对经编码的数据进行解码。该解码重构图片。
[0012]本发明可以被实现为方法的部分、被配置为执行所述方法的计算系统的部分或存储用于使得计算系统执行所述方法的计算机可执行指令的有形计算机可读介质的部分。各创新可以结合地或分开地使用。提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些概念。本
【发明内容】
并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。参考附图阅读以下详细描述,将更清楚本发明的前述和其他目标、特征和优点。
[0013]附图简述
[0014]图1是其中可实现所描述的一些实施例的示例计算系统的示图。
[0015]图2a和2b是其中可实现所描述的一些实施例的示例网络环境的示图。
[0016]图3是结合其可实现所描述的一些实施例的示例编码器系统的示图。
[0017]图4是结合其可实现所描述的一些实施例的示例解码器系统的示图。
[0018]图5a和5b是示出结合其可实现所描述的一些实施例的示例视频编码器的示图。
[0019]图6是结合其可实现所描述的一些实施例的示例视频解码器的示图。
[0020]图7是示出WPP的时序的示图以及图8示出在WPP被启用时可被用于预测的经重构的内容的示图。
[0021 ]图9和10是示出根据所描述的一些实施例的调色板预测的各方面的示图。
[0022]图11和12是示出根据所描述的一些实施例的在WPP被启用时分别用调色板预测来进行编码和解码的流程图。
[0023]图13和14是示出对图片的当前块的帧内块复制预测的示例的各方面的示图。
[0024]图15和16是分别示出帧内行复制预测和帧内串复制预测的示例的各方面的示图。
[0025]图17是示出图片的各单元的示例Z-扫描次序的示图。
[0026]图18是示出根据所描述的一些实施例的在WPP被启用时对帧内复制模式的参考区域的位置的约束的示例的示图。
[0027]图19和20是分别示出根据所描述的一些实施例的分别用在WPP被启用时对帧内复制模式强制实施的规则进行编码和解码的流程图。
[0028]详细描述
[0029]该详细描述呈现在波前并行处理(“WPP”)被启用时对图片内预测模式强制实施的规则方面的创新。例如,这些创新中的一些涉及在WPP被启用时对调色板编码/解码模式的调色板的预测。其他创新涉及在WPP被启用时,在帧内复制模式(诸如,帧内块复制模式、帧内行复制模式或帧内串复制模式)期间被强制实施的约束。这些创新促成编码器或解码器在WPP被启用时对图片内预测模式的使用。
[0030]虽然在此所述的操作是被适当描述为由视频编码器或视频解码器来执行,但在许多情况中,所述操作可以由另一类型的媒体处理工具(例如图像编码器或图像解码器)来执行。
[0031]在此所述的一些发明是参考针对H.265/HEVC标准的扩展的条款。例如,对H.265/HEVC标准的屏幕内容编码/解码扩展的草稿版本JCTVC-P1005—即2014年8月的“高效视频编码(HEVC)屏幕内容编码:第I稿“JCTVC-R1005_v2作出参考。本文中描述的各创新还可以被实现为用于其它标准或格式。
[0032]在此所述的许多发明可以在当编码诸如屏幕捕捉内容之类的某种?人工创建的?视频内容时改善速率-失真性能。通常,与仅相机捕捉的视频内容相比,屏幕捕捉视频(也称为屏幕内容视频)是包含当被呈现给计算机显示器时所捕捉的经渲染的文本、计算机图形、动画生成的内容或其它类似类型的内容的视频。屏幕捕捉内容通常包括重复的结构(例如图形、文本字符)。屏幕捕捉内容一般以具有高色度的采样分辨率的格式(例如,YUV 4:4:4或RGB 4:4:4)来编码,但是也可以具有较低色度的采样分辨率的格式(例如,YUV 4:2:0)来编码。编码/解码屏幕捕捉内容的常见场景包括远程桌面会议和对自然视频或其它“经混合的内容”视频的图形覆盖的编码/解码。在此所述的几种发明适用于编码屏幕内容视频或其它人工创建的视频。这些创新也可以被用于自然视频,但可能不像那样有效。
[0033]更一般地,本文中描述的各示例的各种替代是可能的。例如,本文中描述的一些方法可以通过改变描述的方法动作的顺序、通过拆分、重复或忽略某些方法动作等来更改。所公开的技术的各方面能够被组合地或分开地使用。不同的实施例使用所描述的创新中的一个或多个。本文中描述的一些创新解决了背景中指出的一个或多个问题。通常,所给出的技术/工具并不解决所有这些问题。
[0034]示例计算系统
[0035]图1示出了在其中可实现若干所描述的发明的合适的计算环境(100)的一般化示例。计算系统(100)并不旨对使用范围或功能提出任何限制,因为这些创新可以在不同的通用或专用计算系统中实现。
[0036]参考图1,计算环境(100)包括一个或多个处理单元(110、115)和存储器(120、125)。处理单元(I 10、115)执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”)、专用集成电路(“ASIC”)中的处理器或任何其它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图1示出中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120、125)可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,R0M、EEPR0M、闪存等)或两者的某种组合,可由处理单元存取。存储器(120,125)存储实现在WPP被启用时对图片内预测模式强制实施的规则的一个或多个创新的软件(180),该软件用适用于由(诸)处理单元执行的计算机可执行指令的形式。
[0037]计算系统可具有附加的特征。例如,计算系统(100)包括存储(140)、一个或多个输入设备(150)、一个或多个输出设备(160)以及一个或多个通信连接(170)。诸如总线、控制器或网络之类的互连机制(未示出)将计算系统(100)的各组件互连。通常,操作系统软件(未示出)为在计算系统(100)中执行的其它软件提供操作环境,并协调计算系统(100)的各组件的活动。
[0038]有形存储(140)可以是可移动或不可移动的,并包括磁盘、磁带或磁带盒、⑶-R0M、DVD或可用于储存信息并可在计算系统(100)内访问的任何其他介质。存储(140)存储实现在WPP被启用时对图片内预测模式强制实施的规则的一个或多个创新的软件(180)的指令。
[0039](诸)输入设备(150)可以是触摸输入设备(诸如键盘、鼠标、笔或跟踪球)、语音输入设备、扫描设备或向计算系统(100)提供输入的另一设备。对于视频,(诸)输入设备(150)可以是相机、视频卡、TV调谐卡、屏幕捕捉模块或接受模拟或数字形式的视频输入的类似设备、或将视频输入读到计算系统(100)中的CD-ROM或CD-RW。(诸)输出设备(160)可以是显示器、打印机、扬声器、CD刻录机或提供来自计算系统(100)的输出的另一设备。
[0040](诸)通信连接(170)允许通过通信介质与另一计算实体通信。通信介质传达诸如计算机可执行指令、音频或视频输入或输出、或已调制数据信号中的其他数据之类的信息。已调制数据信号是使其一个或多个特征以在信号中编码信息的方式设置或改变的信号。作为示例而非限制,通信介质可以使用电的、光学的、RF或其它载体。
[0041]各创新可以在计算机可读介质的一般上下文中描述。计算机可读介质是可在计算环境内访问的任何可用有形介质。作为示例而非局限,对于计算系统(100),计算机可读介质包括存储器(120、125)、存储(140)、和以上任意的组合。
[0042]各创新可在计算机可执行指令(诸如包括在程序模块中的在目标现实或虚拟处理器上在计算系统中执行的那些计算机可执行指令)的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。如各实施例中所描述的,这些程序模块的功能可以被组合,或者在这些程序模块之间拆分。针对各程序模块的计算机可执行指令可以在本地或分布式计算系统中执行。
[0043]术语“系统”和“设备”在此被互换地使用。除非上下文明确指示,否则,术语并不暗示对计算系统或计算设备的类型的任何限制。一般说来,计算系统或计算设备可以是本地的或分布式的,并且可以包括具有实现本文中描述的功能的软件的专用硬件和/或通用硬件的任意组合。
[0044]所公开的方法还可使用被配置成执行所公开的方法中的任一者的专用计算硬件来实现。例如,所公开的方法可以由被专门设计或配置成实现所公开的方法中的任一者的集成电路(例如,诸如ASIC数字信号处理器(“DSP”)之类的ASIC、图像处理单元(“GPU”)、或诸如场可编程门阵列(“FPGA”)之类的可编程逻辑器件(“PLD”))来实现。
[0045]为了呈现起见,本详细描述使用了如“确定”和“使用”等术语来描述计算系统中的计算机操作。这些术语是对由计算机执行的操作的高级抽象,且不应与人类所执行的动作混淆。对应于这些术语的实际的计算机操作取决于实现而不同。
[0046]I1.示例网络环境
[0047]图2a和2b示出了包括视频编码器(220)和视频解码器(270)的示例网络环境(201,202)。编码器(220)和解码器(270)使用合适的通信协议通过网络(250)连接。网络(250)可包括因特网或另一计算机网络。
[0048]在如图2a中所示的网络环境(201)中,每个实时通信(“RTC”)工具(210)包括用于双向通信的编码器(220)和解码器(270)两者。给定的编码器(220)可以产生输出,该输出遵循H.265/HEVC标准、SMPTE 421M标准、IS0/IEC14496-10标准(也称为H.264或AVC)、另一标准的变体或扩展,或遵循针对接受来自编码器(220)的经编码的数据的对应的解码器(270)的专用格式。双向通信可以是视频会议、视频电话呼叫或其它双方或多方通信场景的部分。虽然,图2a中的网络环境(201)包括两个实时通信工具(210),但网络环境(201)可实际包括参与多方通信的三个或更多的实时通信工具(210)。
[0049]实时通信工具(210)管理编码器(220)做出的编码。图3示出可以被包括在实时通信工具(210)中的示例编码器系统(300)。替换地,实时通信工具(210)使用另一编码器系统。实时通信工具(210)还管理解码器(270)做出的解码。图4示出可以被包括在实时通信工具(210)中的示例解码器系统(400)。替换地,实时通信工具(210)使用另一解码器系统。
[0050]在图2b中示出的网络环境(202)中,编码工具(212)包括编码递送给多个回放工具(214)的视频的编码器(220),所述回放工具包括解码器(270)。单向通信可被提供用于视频监视系统、web相机监视系统、远程桌面会议演示或在其中编码视频并将视频从一个位置发送到一个或多个其它位置的其它场景。虽然在图2b中的网络环境(202)包括两个回放工具(214),该网络环境(202)可以包括更多或更少的回放工具(214)。一般来说,回放工具(214)与编码工具(212)通信以确定回放工具(214)要接收的视频流。回放工具(214)接收该流、缓冲所接收的经编码数据达合适的时间段并开始解码和回放。
[0051]图3示出可以被包括在编码工具(212)中的示例编码器系统(300)。替换地,编码工具(212)使用另一编码器系统。编码工具(212)还可以包括用于管理与一个或多个回放工具(214)的连接的服务器侧控制器逻辑。图4示出可以被包括在回放工具(214)中的示例解码器系统(400)。替换地,回放工具(214)使用另一解码器系统。回放工具(214)还可以包括用于管理与一个或多个编码工具(212)的连接的客户机侧控制器逻辑。
[0052]II 1.示例编码器系统。
[0053]图3是结合其可实现一些所述的实施例的示例编码器系统(300)的框图。编码器系统(300)可以是能够用多种编码模式中的任一者(诸如用于实时通信的低等待时间编码模式、转码模式和用于从文件或流中产生供回放的媒体的较高等待时间编码模式)操作的通用编码工具,或它可以是适用于一种这样的编码模式的专用编码工具。编码器系统(300)可以适用于编码特定类型的内容(例如屏幕捕捉内容)。编码器系统(300)可以被实现为操作系统模块的部分、应用库的部分、独立的应用的部分或使用专用的硬件。总体上,编码系统(300)从视频源(310)接收源视频图片(311)序列并产生经编码的数据作为给信道(390)的输出。输出到信道的经编码的数据可包括使用在WPP被启用时对图片内预测模式强制实施的规则编码的内容。
[0054]视频源(310)可以是相机、调谐卡、存储介质、屏幕捕捉模块或其它数字视频源。所述视频源(310)以例如每秒30帧的帧速率产生视频图片序列。如在此所用,术语“图片”一般是指源、已编码的或已重构的图像数据。对于逐行扫描视频,图片是逐行扫描视频帧。对于隔行视频,在各示例实施例中,隔行视频帧可以在编码之前被去隔行。替换地,两个互补的隔行视频场可以被编码在一起作为单个视频帧或者被编码成两个经分开编码的场。除了指示逐行扫描视频帧或隔行扫描视频帧之外,术语“图片”可以指示单个非成对的视频场、互补的成对视频场、表示在给定时间或在较大的图像中的感兴趣区域处的视频对象的视频对象平面。视频对象平面或区域可以是包括场景的多个对象或区域的较大图像的一部分。
[0055]正在到达的源图片(311)被存储在包括多个图片缓冲存储区域(321,322,-^3211)的源图片临时存储器存储区域(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之类的变体。色度样本值可以被子采样到较低的色度采样率(例如用于YUV4:2:0格式),或者色度样本值可以具有与亮度样本值相同的分辨率(例如用于YUV 4:4:4格式)。或者,视频可用另一格式(例如RGB 4:4:4格式、GBR 4:4:4格式或BGR4:4:4格式)来编码。具体地,屏幕内容视频可用RGB 4:4:4格式、GBR 4:4:4格式或BGR4:4:4格式来编码。
[0056]编码器(340)编码选中的图片(331)以产生编码的图片(341)并且还产生存储器管理控制操作(“MMC0”)信号(342)或参考图片集(“RPS”)信息。RPS是可以被使用以供在对当前图片或任意后续图片的运动补偿中的参考的图片集。如果当前图片不是已经被编码的第一图片,当执行其编码处理时,所述编码器(340)可以使用已经被存储在经编码的图片的临时存储器存储区域(360)中的一个或多个先前被编码/解码的图片(369)。这样的存储的经解码图片(369)被用作当前的源图片(331)的内容的图片间预测的参考图片。MMC0/RPS信息(342)指示解码器经重构的图片可以被用作参考图片,并且因此应该被存储在图片存储区域中。
[0057]通常,编码器(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)或其它格式的变型或扩展。
[0058]编码器(340)可以将图片分隔成相同尺寸或不同尺寸的多个小块。例如,编码器
(340)沿小块行和小块列来拆分图片,所述小块行和小块列利用图片边界定义在图片内的小块的水平和垂直边界,其中每个小块是矩形区域。小块通常被用于提供并行处理的选项。图片还可以被组织为一个或多个片,其中一个片可以是整个图片或图片的部分。片可以独立于图片中的其它片被编码,这改善了错误复原力。出于编码和解码的目的,片或小块的内容被进一步分隔成块或其它样本值集。某些块的行(例如,根据H.265/HEVC标准对片的树单元进行编码的行)可使用WPP被并行地编码,如以下进一步解释的。
[0059]对于基于H.265/HEVC标准的语法来说,编码器将图片(或片或小块)的内容拆分成编码树单元。编码树单元(“CTU”)包括被组织为亮度编码树块(“CTB”)的亮度样本值,并且对应的色度样本值被组织为两个色度CTB XTU(和其CTB)的大小由编码器选择。亮度CTB可以包含例如64x64,、32x32或16x16亮度样本值。CTU包括一个或多个编码单元。编码单元(“CU”)具有亮度编码块(“CB”)和两个对应的色度CB。例如,具有64x64亮度CTB和两个64x64色度CTB(YUV 4:4:4格式)的CTU可以被拆分成4个⑶,其中每个⑶包括一32x32亮度CB和两个32x32色度CB,并且每个CU可能被进一步拆分成更小的CU。或者,作为另一示例,具有64x64亮度CTB和两个32x32色度CTB (YUV 4:2:0格式)的CTU可以被拆分成4个CU,其中每个⑶包括一 32x32亮度CB和两个16x16色度CB,并且每个⑶可能被进一步拆分成更小的⑶。CU的最小允许尺寸(例如8 X 8、16 X 16)可被信号化在比特流中。
[0060]通常,CU具有诸如帧间或帧内之类的预测模式。出于信号化预测信息(例如预测模式细节、移位值等)和/或预测处理的目的,CU包括一个或多个预测单元。预测单元(“PU”)具有亮度预测块(“PB”)和两个对应的色度PB。根据H.265/HEVC标准,对于帧内预测⑶,PU与⑶具有相同的尺寸,除非CU具有最小尺寸(例如8x8)。在那个情况下,CU可被拆分成四个较小的PU(例如,如果最小CU尺寸为8x8,则每个PU为4x4),或者PU可具有最小CU尺寸,如CU的句法元素所指示的。然而,对于帧内BC预测中使用的对称或非对称分区,较大的CU可被拆分成多个PU。
[0061]出于残差编码和解码的目的,CU还具有一个或多个变换单元,其中变换单元(“TU”)具有亮度变换块(“TB”)和两个色度TB。在帧内预测的⑶中的PU可以包含单个TU(尺寸与HJ相同)或多个TU。编码器决定如何将视频分割成CTU、⑶、PU、TU等。
[0062]在H.265/HEVC实现中,片可以包括单个片段(独立的片段)或被划分成多个片段(独立的片段和一个或多个从属的片段)。片段是在小块扫描中包含在单个网络抽象层(“NAL”)单元中的连续排序的整数个CTU。对于独立的片段,片段头部包括适用于该独立的片段的句法元素的值。对于从属片段,截断的片段头部包括适用于该从属片段的句法元素的几个值,并且从属片段的其它句法元素的值是以解码顺序从在前的独立的片段的值中推导出来的。
[0063]如在此所用,术语“±夬”可以指示宏块、残余数据单元、CB、PB或TB,或某些其它样本值集,这取决于上下文。术语“单元”可以指示宏块、CTU、CU、PU、TU或某些块集,或它可指示单个块,这取决于上下文。
[0064]参考图3,编码器根据来自源图片(331)中的其它、先前重构的样本值的预测来表示该图片(331)的帧内编码的块、行或串。对于帧内复制预测,图片内估计器估计从当前块、行或串到该其它、先前重构的样本值中的一位置的位移。图片中的样本值的参考块、行或串被用于生成当前块、行或串的预测值。例如,对于帧内块复制(“BC”)预测,图片内估计器估计从当前块到图片中的先前重构的样本值中的一位置的位移。参考块是图片中提供针对当前块的BC预测值的样本值的块。参考块可以用块向量(“BV”)值(在BV估计中确定)来指示。作为另一示例,对于帧内行复制(“LC”)预测,图片内估计器估计从(当前块的)当前行到图片中的先前重构的样本值中的一位置的位移。参考行是图片中提供针对当前行的LC预测值的样本值的行。参考行可用偏移值来指示,偏移值指示从当前行到参考行的位移。作为另一示例,对于帧内串复制(“SC”)预测,图片内估计器估计从(当前块的)当前行到图片中先前重构的样本值中的一位置的位移。参考串是图片中被用于生成当前串的SC预测值的一系列样本值。参考串可用(指示从当前串到参考串的位移的)偏移值以及串长度值来指示。取决于实现,编码器可以使用输入样本值或经重构的样本值(同一图片中的先前编码的样本值)对块、行或串执行偏移估计。当WPP被启用时,图片内估计器可确定与对参考区域位置的约束一致的位移(例如,在帧内BC预测中针对BV值或在帧内SC预测或帧内BC预测中针对偏移值),如以下所解释的。
[0065]对于对块的帧内空间预测,图片内估计器估计相邻的经重构的样本值到该块的外插。
[0066]图片内估计器可以输出预测信息(例如对于帧内BC预测而言为BV值,对于帧内LC预测或帧内SC预测而言为偏移值,或者对于帧内空间预测而言为预测模式(方向)),该预测信息被熵编码。图片内预测预测器应用该预测信息来确定帧内预测器。
[0067]对于调色板编码模式,编码器(340)使用调色板来表示⑶或其他单元的至少一些样本值。调色板表示在单元中使用的色彩。例如,调色板将索引值0,1,2,…,P映射到对应的色彩。在对该单元进行编码期间,适当的索引值取代了该单元内的各位置处的各样值。可以使用逸出代码值和文字值来编码单元中的稀有值,以取代在调色板中使用索引值。调色板可以随单元而改变,并且说明调色板的信息可被信号化在比特流中。
[0068]编码器(340)依据来自参考图片的预测表示源图片(331)的经图片间编码的经预测的块。运动估计器估计块相对于一个或多个参考图片(369)的运动。当使用多个参考图片时,这多个参考图片可以来自不同的时间方向或相同的时间方向。经运动补偿的预测参考区域是(诸)参考图片中用于生成当前图片的样本值块的经运动补偿的预测器的样本值区域。运动估计器输出诸如运动向量(“MV” )信息之类的运动信息,该运动信息被熵编码。运动补偿器将MV应用于参考图片(369)以确定用于图片间预测的经运动补偿的预测器。
[0069]编码器可以确定块的预测器(帧内或帧间)和对应的原始值之间的差值(如果有的话)。这些预测残留值将使用频率变换(如果该频率变换不被跳过)、量化和熵编码来被进一步编码。例如,编码器(340)为图片、小块、片和/或视频的其它部分设置量化参数(“QP”)的值,并相应地量化变换系数。编码器(340)的熵编码器压缩经量化的变换系数值以及某些辅助信息(例如MV信息、BV信息、QP值、模式判定、参数选择)。典型的熵编码技术包括指数-Go 1mb编码、Go 1mb-Ri ce编码、算术编码、差分编码、Huffman编码、彳丁程长度编码、可变长度对可变长度(“V2V”)编码、可变长度对固定长度(“V2F”)编码、Lempel-ZiV( “LZ”)编码、字典编码、概率区间划分熵编码(“PIPE”)和上述编码的组合。熵编码器可对不同种类的信息使用不同的编码技术,并可组合地应用多个技术(例如,通过应用Golomb-Rice编码,随后应用算术编码),并可从特定编码技术内的多个码表中进行选择。在一些实现中,可以跳过频率变换。在这种情况中,可以对预测残留值进行量化和熵编码。当调色板编码模式被使用时,熵编码器可对调色板数据进行编码。编码器(340)可使用调色板预测,如以下所解释的。
[0070]自适应去块滤波器可以被包括在编码器(340)中的运动补偿环路(也即“内环路”滤波)中以平滑经解码的图片中的块边界行和/或列上的间断。可替换地或另外地应用其它滤波(诸如去振铃滤波、自适应环路滤波(“ALF”)或样本自适应偏移(“SA0”)滤波,未示出)作为内环路滤波操作。
[0071]由编码器(340)产生的经编码的数据包括针对各层位流句法的句法元素。对于根据H.265/HEVC的标准的句法,例如,图片参数集(“PPS”)是包含了与图片相关联的句法元素的句法结构。PPS可被用于单个图片,或者PPS可被重用于序列中的多个图片。PPS通常被信号化为与图片的经编码数据分开(例如,针对PPS的一个网络提取层(“NAL“)单元和针对图片的经编码数据的一个或多个其它NAL单元)。在图片的经编码数据内,句法元素指示要为该图片使用哪个PPS ο类似地,对于根据H.265/HEVC的标准的句法,序列参数集(“SPS”)是包含了与图片的序列相关联的句法元素的句法结构。位流可包括单个SPS或多个SPSt3SPS通常被信号化成与序列的其它数据分开,并且其它数据中的句法元素指示要使用哪个SPS。
[0072]经编码的图片(341)和MMC0/RPS信息(342)(或与MMC0/RPS信息(342)等价的信息,因为编码器(340)处已经知道各图片的依赖关系和排序结构)而由解码处理仿真器(350)处理。解码处理仿真器(350)实现了解码器的一些功能,例如对任务进行解码以重构参考图片。以与MM⑶/RPS信息(342)相一致的方式,解码处理仿真器(350)确定给定的经编码帧
(341)是否需要被重构并被存储以供在对要编码的后续图片的图片间预测中用作参考帧。如果经编码的图片(341)需要被存储,则解码处理仿真器(350)对将由解码器进行的解码处理建模,该解码器接收经编码的图片(341)并产生相应的经解码的图片(351)。通过这么做,当编码器(340)已经使用已被存储在经解码图片存储区域(360)中的经解码的(诸)图片(369)时,解码处理仿真器(350)还使用来自存储区域(360)的经解码的图片(369)作为解码处理的一部分。
[0073]经解码图片临时存储器存储区域(360)包括多个图片缓冲存储区域(361,362,...,36η)。在与MMC0/RPS信息(342)相一致的方式中,解码处理仿真器(350)管理存储区域(360)中的内容,以便标识出具有编码器(340)不再需要将其用作参考图片的图片的任何图片缓冲器(361,362等)。在对解码处理进行建模之后,解码处理仿真器(350)在图片帧缓冲器(361、362等)中存储已经以此方式标识出的新解码的图片(351)。
[0074]经编码的图片(341)和MM⑶/RPS信息(342)在临时经编码数据区域(370)中被缓冲。被聚集在经编码数据区域(370)中的经编码数据包含一个或多个图片的经编码数据作为基本经编码视频位流的句法的一部分。在经编码数据区域(370)中被聚集的经编码数据还可包括与经编码的视频数据相关的媒体元数据(例如作为一个或多个补充增强信息(“SEI”)消息或视频可用性信息(“VUI”)消息中的一个或多个参数)。
[0075]来自临时经编码数据区域(370)的经聚集的数据(371)由信道编码器(380)处理。信道编码器(380)可以分组化和/或复用经聚集的数据以供作为媒体流传输或存储(例如根据媒体程序流或传输流格式,例如ITU-T H.222.0 IIS0/IEC13818-1或因特网实时传输协议格式(例如IETF RFC 3550)),在这种情况中,信道编码器(380)可以添加句法元素作为媒体传输流的句法的一部分。或者,信道编码器(380)可以组织经聚集的数据以供存储成文件(例如根据媒体容器格式,诸如IS0/IEC 14496-12),在这种情况中,信道编码器(380)可添加句法元素作为媒体存储文件的句法的一部分。或者,更一般地,信道编码器(380)可以实现一个或多个媒体系统复用协议或传输协议,在这种情况中,信道编码器(380)可以添加句法元素作为(诸)协议的句法的一部分。信道编码器(380)将输出提供给信道(390),该信道(390)表示存储、通信连接或该输出的另一信道。信道编码器(380)或信道(390)还可以包括例如用于前向纠错(“FEC")编码和模拟信号调制的其它元素(未示出)。
[0076]IV.示例解码器系统。
[0077]图4是结合其可实现所描述的一些实施例的示例解码器系统(400)的框图。解码器系统(400)可以是能够在多种解码模式(例如针对实时通信的低等待时间解码模式以及针对来自文件或流中的媒体回放的较高等待时间解码模式)中的任一者操作的通用解码工具,或它可以是适用于一种这样的解码模式的专用解码工具。解码器系统(300)可以被实现为操作系统模块的部分、应用库的部分、独立的应用的部分或使用专用的硬件。总体上,解码器系统(400)从信道(410)接收经编码的数据并产生经重构的帧作为针对输出目的地(490)的输出。接收到的经编码的数据可包括使用在WPP被启用时对图片内预测模式强制实施的规则编码的内容。
[0078]解码器系统(400)包括信道(410),该信道(410)可以表示存储、通信连接或针对作为输入的经编码数据的另一信道。信道(410)产生已经被信道编码的经编码数据。信道解码器(420)可以处理经编码的数据。例如,信道解码器(420)可以(例如根据诸如ITU-TH.222.0|IS0/IEC 13818-1的媒体程序流或传输流格式,或诸如IETF RFC 3550的因特网实时传输协议格式)去分组化和/或去复用已被聚集以供作为媒体流来传输或存储的数据,在这种情况中,信道解码器(420)可以解析所添加的作为媒体传输流的句法的一部分的句法元素。或者,信道解码器(420)可以(例如根据诸如IS0/IEC 14496-12的媒体容器格式)来将已被聚集以供作为文件来存储的经编码的视频数据分开,在这种情况中,信道解码器(420)可以解析所添加的作为媒体存储文件的句法的一部分的句法元素。或者,更一般地,信道解码器(420)可以实现一个或多个媒体系统去复用协议或传输协议,在这种情况中,信道解码器(420)可以解析所添加的作为(诸)协议的句法的一部分的句法元素。信道(410)或信道解码器(420)还可以包括例如用于FEC解码和模拟信号解调的其它元素(未示出)。
[0079]从信道解码器(420)输出的经编码的数据(421)被存储在临时的经编码数据区域
(430)中,直到已经接收到足够数量的这样的数据。经编码的数据(421)包括经编码图片
(431)和MMC0/RPS信息(432)。在经编码数据区域(430)中的经编码数据(421)包含一个或多个图片的经编码数据作为基本编码的视频比特流的句法的一部分。在经编码数据区域(430)中的经编码数据(421)还可包括与经编码的视频数据相关的媒体元数据(例如作为一个或多个SE I消息或VUI消息中的一个或多个参数)。
[0080]一般来说,经编码数据区域(430)临时存储经编码数据(421),直到这样的经编码数据(421)被解码器(450)使用。此时,经编码图片(431)和MMC0/RPS信息(432)的经编码数据被从经编码数据区域(430)传送到解码器(450)。当解码继续时,新的经编码数据被添加到经编码数据区域(430)并且保留在经编码数据区域(430)中的最旧的经编码数据被传输到解码器(450)。
[0081]解码器(450)解码经编码图片(431)以生成对应的经解码图片(451)。图片可以被组织为相同尺寸或不同尺寸的多个小块。一个图片还可以被组织成一个或多个片。片或小块的内容可以被进一步分隔成块或其它样本值集。如果图片是在WPP被启用的情况下(即使用WPP或在其他情况下按与在解码期间使用WPP—致的方式)被编码的,则某些块的行(例如,根据H.265/HEVC标准的各CTU行)可使用WPP被并行地解码,如以下进一步解释的。
[0082]当执行其解码处理时,在适当时,解码器(450)可以将一个或多个先前解码的图片(469)作为图片间预测的参考图片。解码器(450)从经解码的图片临时存储器存储区域(460)中读取这样的先前解码的图片(469)。通常,解码器(450)包括执行诸如熵解码、图片内预测、运动补偿图片间预测、逆量化、逆频率变换(如果未被跳过)和合并小块之类的解码任务的多个解码模块。由解码器(450)执行的确切操作可以取决于压缩格式而变化。
[0083]例如,解码器(450)接收经压缩的图片或图片序列的经编码数据,并生成包括经解码图片(451)的输出。
[0084]在解码器(450)中,缓冲接收经压缩的图片的经编码数据,并在适当时,使得所接收的经编码数据对熵解码器可用。
[0085]熵解码器对经熵编码的量化数据以及经熵编码的辅助信息进行熵解码,通常应用编码器中执行的熵编码的逆来进行熵解码。当使用了调色板解码模式时,熵解码器可以解码调色板数据。编码器(450)可使用调色板预测,如以下所解释的。
[0086]运动补偿器将运动信息应用于一个或多个参考帧以形成针对正被重构的图片的任何帧间编码块的经运动补偿的预测器。帧内预测模块可以从邻近的、先前重构的样本值中空间地预测当前块的样本值。或者,对于帧内BC预测、帧内LC预测或帧内SC预测,图片内预测模块可以使用图片中用位移值指示的参考块、行或串的先前重构的样本值来预测当前块、行或串的样本值。具体地,参考块/行/串可以用BV值(对于帧内BC预测)、偏移值(对于帧内LC预测)或偏移值和串长度值(对于帧内SC预测)来指示。当WPP被启用时,位移(例如,在帧内BC预测中针对BV值或者在帧内SC预测或帧内LC预测中针对偏移值)与对参考区域位置的约束一致,如以下解释的。
[0087]解码器(450)还重构预测残留值。逆量化器对经熵解码的数据进行逆量化。例如,解码器(450)基于比特流中的句法元素来设置图片、小块、片和/或其它视频部分的QP值,并相应地对变换系数进行逆量化。逆频率变换器将量化的频域数据转换成空间域数据。在一些实现中,可以跳过频率变换,在这样的情况中逆频率变换也被跳过。如果这样,预测残留值可以被熵解码并被逆量化。对于图片间预测块,解码器(450)将重构的预测残留值与运动补偿预测器相组合。解码器(450)可以类似地将预测残留值与来自图片内预测的预测器相组合。
[0088]对于调色板解码模式,解码器(450)使用表示⑶或其它单元的样本值中的至少一些的调色板。调色板将索引值映射到对应的色彩。在解码期间,对于单元中的位置,来自调色板的索引值被适当的样本值取代。单元中的逸出编码值可以使用逸出代码值和文字值来解码。调色板可以随单元而改变,并且说明调色板的信息可被信号化在比特流中。
[0089]自适应去块滤波器被包括在视频解码器(450)中的运动补偿环路内以平滑经解码的图片(451)中的块边界行和/或列上的间断。可替换地或另外地应用其它滤波(例如去振铃滤波、ALF或SAO滤波;未示出)作为内环路滤波操作。
[0090]经解码图片临时存储器存储区域(460)包括多个图片缓冲存储区域(461,462,…,46η)。经解码的图片存储区域(460)是经解码的图片缓冲器的一个示例。解码器(450)使用MMC0/PS信息(432)来标识该解码器可将经解码的图片(451)存储在其中的图片缓冲器(461、462等)。解码器(450)将经解码的图片(451)存储在那个图片缓冲器中。
[0091]输出序列发生器(480)标识按输出次序将产生的下一图片何时可在经编码图片存储区域(460)中获得。。当将按输出次序产生的下一图片(481)可在经解码图片存储区域(460)中获得时,输出序列发生器(480)读取该下一图片并将其输出到输出目的地(490)(例如显示器)。一般来说,输出序列发生器(480)将图片从经解码图片存储区域(460)中输出的次序可以与解码器(450)解码这些帧的次序不同。
[0092]V.示例视频编码器。
[0093]图5a和5b是结合其可实现所描述的一些实施例的通用视频编码器(500)的框图。编码器(500)接收包括当前图片的视频图片序列作为输入视频信号(505)并在经编码视频位流(595)中产生经编码数据作为输出。
[0094]编码器(500)是基于块的并使用取决于实现的块格式。块还可在不同的阶段(例如在预测、频率变换和/或熵编码阶段)被进一步细分,。例如,图片可以被划分成64x64块、32x32块或16x16块,这些块随后可以被划分成更小的样本值块以用于编码和解码。在针对H.265/HEVC标准的编码的实现中,编码器将图片分割成CTU(CTB)、CU(CB)、HJ(PB)和TU(TB)。
[0095]编码器(500)使用图片内编码和/或图片间编码来压缩图片。编码器(500)的许多组件被用于图片内编码和图片间编码两者。由这些组件执行的确切操作可取决于所压缩的信息的类型而变化。
[0096]小块化模块(510)可选地将图片分割成相同尺寸或不同尺寸的多个小块。例如,小块化模块(510)沿小块行和小块列来拆分图片,所述小块行和小块列利用图片边界定义在图片内的小块的水平和垂直边界,其中每个小块是矩形区域。在H.265/HEVC实现中,编码器(500)将图片分割成一个或多个片,其中每个片包括一个或多个片段。某些块的行(例如,根据H.265/HEVC标准的片的CTU的行)可使用WPP被并行地编码,如以下进一步解释的。
[0097]通用编码控件(520)接收输入视频信号(505)的图片以及来自编码器(500)的各个模块的反馈(未示出)。整体上,通用编码控件(520)在编码期间将控制信号(未示出)提供给其它模块(例如小块化模块(510)、变换器/缩放器/量化器(530)、缩放器/逆变换器(535),图片内估计器(540)、运动估计器(550)以及帧内/帧间切换)以设置和改变编码参数。具体地,通用编码控件(520)可在编码期间决定是否以及如何使用调色板预测、帧内BC预测、帧内LC预测和帧内SC预测。通用编码控件(520)还可在编码期间评估中间结果,例如执行速率-失真分析。通用编码控件(520)产生指示在编码期间作出的判定的通用控制数据(522),使得对应的解码器可以作出一致的判定。通用控制数据(522)被提供给头部格式化器/熵编码器(590)。
[0098]如果当前图片是使用图片间预测来预测的,则运动估计器(550)相对于一个或多个参考图片来估计输入视频信号(505)的当前图片的样本值的块的运动。经解码的图片缓冲器(570)缓冲一个或多个经重构的先前编码的图片以供用作参考图片。当使用多个参考图片时,这多个参考图片可以来自不同的时间方向或相同的时间方向。运动估计器(550)产生诸如MV数据、合并模式索引值和参考图片选择数据之类的辅助信息运动数据(552)。运动数据(552)被提供给头部格式化器/熵编码器(590)以及运动补偿器(555)。
[0099]运动补偿器(555)将MV应用于来自经解码的图片缓冲器(570)的(诸)经重构的参考图片。运动补偿器(555)产生针对当前图片的经运动补偿的预测。
[0100]在编码器(500)内的分开的路径中,图片内估计器(540)确定如何执行对输入视频信号(505)的当前图片的样本值块的图片内预测。当前图片可全部或部分使用图片内编码来编码。对于帧内空间预测,图片内估计器(540)使用当前图片的重构(538)的值来确定如何从当前图片的邻近的、先前重构的样本值中空间地预测当前图片的当前块的样本值。
[0101]或者,对于帧内复制预测,图片内估计器(540)估计从当前块、行或串到其它、先前重构的样本值中的一位置的位移。图片中的样本值的参考块、行或串被用于生成当前块、行或串的预测值。例如,对于帧内BC预测,图片内估计器(540)估计从当前块到可用BV值来指示的参考块的位移。作为另一示例,对于帧内LC预测,图片内估计器(540)估计从(当前块的)当前行到可用偏移值指示的参考行的位移(从而指示从当前行到参考行的位移)。作为另一示例,对于帧内SC预测,图片内估计器估计从(当前块的)当前串到可用偏移值指示的参考串的位移(从而指示从当前串到参考串的位移)。当WPP被启用时,图片内估计器(540)可确定与对参考区域的位置的约束一致的位移(例如,在帧内BC预测中针对BV值,或者在帧内SC预测或帧内LC预测中针对偏移值),如以下所解释的。
[0102]取决于实现,图片内估计器(540)可以使用输入样本值、内环路滤波之前重构的样本值,或内环路滤波之后重构的样本值来执行对当前块、行或串的偏移估计。一般来说,通过将输入样本值或未经滤波的、经重构的样本值用于偏移估计,图片内估计器(540)可避免顺序处理瓶颈(该瓶颈可能由在偏移估计/帧内复制预测之前对参考块、行、串等的经重构的样本值进行滤波而导致)。另一方面,存储所述未经滤波的、经重构的样本值使用了额外的存储器。而且,如果内环路滤波在偏移估计之前被应用,则可能存在重叠在将在当前块/行/串被解码之后应用的滤波处理和正被用于偏移估计/帧内复制预测的区域之间的影响区域。在这样的情况中,偏移估计/帧内复制预测将在滤波操作的那个方面之前被应用。在一些实现中,编码器可在偏移估计/帧内复制预测之前应用一些内环路滤波操作,并且在稍后的处理阶段中执行附加的或替换的滤波。
[0103]图片内估计器(540)产生帧内预测数据(542)作为辅助信息,诸如指示帧内预测使用空间预测、帧内BC预测、帧内LC预测还是帧内SC预测的信息、预测模式方向(对于帧内空间预测的情况)、BV值(针对帧内BC预测的情况)、偏移值(针对帧内LC预测的情况)或偏移值和长度值(针对帧内SC预测的情况)。帧内预测数据(542)被提供给头部格式化器/熵编码器(590)以及图片内预测器(545)。
[0104]根据帧内预测数据(542),图片内预测器(545)从当前图片的邻近的先前重构的样本值中在空间上预测当前图片的当前块的样本值。或者,对于帧内复制预测,图片内预测器(545)使用由针对当前块、行、串等的位移(BV值、偏移值等)指示的参考块、行、串或其他部分的先前重构的样本值来预测当前块、行、串或其他部分的样本值。在一些情况中,BV值(或其他偏移值)可以是预测的值。在其它情况中,BV值(或其他偏移值)可不同于其预测的值,在该情况中差异指示预测的值和BV值(或其它偏移值)之间的差。对于帧内SC模式,图片内预测器(545)在预测当前串的样本值时还使用串长度值。
[0105]对于调色板编码模式,编码器(500)使用调色板来表示⑶或其它单元的至少一些样本值。调色板表示该单元中使用的色彩。例如,调色板将索引值0,1,2,…,P映射到对应的色彩,该色彩可采用RGB 4:4:4格式、BGR 4:4:4格式、GBR 4:4:4格式、YUV 4:4:4格式或另一格式(色彩空间、色彩采样率)。索引值可表示像素的RGB三元组、BGR三元组或GBR三元组,其中像素是一组共置样本值。对于对该单元的编码,索引值取代该单元内的各像素的样本值。取代使用调色板中的索引值,可使用逸出代码值和文字值来对单元中的稀有值进行编码。调色板可随单元而改变,并且详细说明调色板的调色板数据可被信号化在比特流中。
[0106]帧内/帧间切换选择对给定块的预测(558)将是经运动补偿的预测还是图片内预测。
[0107]在一些示例实现中,对于用调色板编码模式或帧内复制模式(帧内BC预测、帧内LC预测或帧内SC预测)编码的单元,不计算残留值。实际上,残差值编码被跳过,并且预测的样本值被用作经重构的样本值。
[0108]当残差值编码没有被跳过时,预测(558)的块和输入视频信号(505)的原始当前图片的对应部分之间的差(如果有的话)提供各残留(518)值。在当前图片的重构期间,当残留值已经被编码/信号化,经重构的残留值与预测(558)组合以从视频信号(505)中生成对原始内容的近似重构或准确重构(538)。(在有损压缩中,一些信息从视频信号(505)中丢失。)
[0109]作为残留值编码的一部分,在变换器/缩放器/量化器(530)中,当频率变换没有被跳过时,频率变换器将空间域视频信息转换成频域(即频谱变换)数据。对于基于块的视频编码,频率变换器将离散余弦变换(“DCT” )、其整数近似、或其它类型的前向块变换(例如离散正弦变换或其整数近似)应用于预测残留数据块(如果预测(558)为空则应用于样本值数据),从而产生频率变换系数块。变换器/缩放器/量化器(530)可应用具有可变块尺寸的变换。在这种情况中,变换器/缩放器/量化器(530)可确定要对当前块的残留值使用哪些块尺寸的变换。缩放器/量化器对变换系数进行缩放和量化。例如,量化器将以逐图片基础、逐小块基础、逐片基础、逐块基础、频率专用基础或其它基础来变化的量化步进尺寸将死区标量量化应用于频域数据。经量化的变换系数数据(532)被提供给头部格式化器/熵编码器(590)。如果频率变换被跳过,则缩放器/量化器可对预测残留数据块(或如果预测(558)为空则对样本值)进行缩放和量化,从而生成要提供给头部格式化器/熵编码器(590)的经量化的值。
[0110]为了重构残留值,在缩放器/逆变换器(535)中,缩放器/逆量化器对经量化的变换系数执行逆缩放和逆量化。在变换阶段尚未被跳过时,逆频率变换器执行逆频率变换,从而产生经重构的预测残留值或样本值的块。如果变换阶段已经被跳过,则也跳过逆频率变换。在这种情况中,缩放器/逆量化器可对预测残留数据(或样本值数据)的块执行逆缩放和逆量化,从而产生经重构的值。当残留值已经被编码/信号化时,编码器(500)将经重构的残留值与预测(558)的值(例如,经运动补偿的预测器、图片内预测器)组合以形成重构(538)。当残留值尚未被编码/信号化时,编码器(500)将预测(558)的值用作重构(538)。
[0111]对于图片内预测,重构(538)的值可以被馈送回图片内估计器(540)和图片内预测器(545)。重构(538)的值可以被用于对后续图片的经运动补偿的预测。重构(538)的值可被进一步滤波。对于视频信号(505)的给定图片,滤波控件(560)确定如何对重构(538)的值执行去块滤波和SAO滤波。滤波控件(560)产生滤波器控制数据(562),它被提供给头部格式化器/熵编码器(590)和合并器/(诸)滤波器(565)。
[0112]在合并器/(诸)滤波器(565)中,编码器(500)将来自不同小块的内容合并到图片的经重构版本中。编码器(500)根据滤波器控制数据(562)和用于滤波器自适应规则选择性地执行去块滤波和SAO滤波,以便自适应地平滑各图片中的边界上的间断。可替换地或另外地应用其它滤波(例如去振铃滤波或ALF;未示出)。取决于编码器(500)的设置,边界可选择性地被滤波或根本不被滤波,并且编码器(500)可在经编码的比特流内提供句法元素以指示是否应用这样的滤波。经解码的图片缓冲器(570)缓冲经重构的当前图片以供在后续的经运动补偿的预测中使用。
[0113]头部格式化器/熵编码器(590)对通用控制数据(522)、经量化的变换系数数据(532)、图片内预测数据(542)、运动数据(552)以及滤波器控制数据(562)进行格式化和/或熵编码。对于运动数据(552),头部格式化器/熵编码器(590)可选择合并模式索引值并对其进行熵编码,或可使用默认的MV预测器。在一些情况中,头部格式化器/熵编码器(590)还确定MV值(相对于MV值的MV预测器)的MV差异,随后例如使用上下文自适应二进制算术编码对该MV差异进行熵编码。对于帧内预测数据(542),可使用预测来编码BV值(或其他偏移值)。预测可使用默认预测器(例如来自一个或多个邻近块的BV值或其他偏移值)。当多个预测器可能时,预测器索引可指示要将此多个预测器中的哪个预测器用于预测BV值(或其他偏移值)。头部格式化器/熵编码器(590)可以选择预测器索引值并对其进行熵编码(用于帧内复制预测的情况),或者可以使用默认预测器。在一些情况中,头部格式化器/熵编码器(590)还确定(相对于BV值或其他偏移值的预测器)的差,随后例如使用上下文自适应二进制算术编码对该差进行熵编码。对于调色板编码模式,头部格式化器/熵编码器(590)可以对调色板数据进行编码。具体地,头部格式化器/熵编码器(590)可使用调色板预测,如以下所解释的。
[0114]头部格式化器/熵编码器(590)在经编码的视频位流(595)中提供经编码数据。经编码的视频比特流的格式(595)可以是H.265/HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG_2或MPEG-4)、Η.26x格式(例如,H.261、Η.262、Η.263或H.264)或其它格式的变型或扩展。
[0115]取决于期望的实现和压缩类型,编码器(500)的模块可被添加、省略、拆分成多个模块、与其它模块组合、和/或用相似的模块来替代。在替换实施例中,具有不同模块和/或其它配置的模块的编码器执行一个或多个所描述的技术。编码器的具体实施例通常使用编码器(500)的变型或补充版本。所示的编码器(500)内的各模块之间的关系指示信息在编码器中的一般流动;为简明起见,未示出其它关系。
[0116]V1.示例视频解码器。
[0117]图6是结合其可实现所描述的一些实施例的通用解码器(600)的框图。解码器(600)接收经编码的视频比特流(605)中的经编码数据并产生包括经重构视频(695)的图片的输出。经编码的视频比特流的格式(605)可以是H.265/HEVC格式、Windows媒体视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG_2或MPEG-4)、Η.26x格式(例如,H.261、Η.262、H.263或H.264)或其它格式的变型或扩展。
[0118]图片可以被组织为相同尺寸或不同尺寸的多个小块。一个图片还可以被组织成一个或多个片。片或小块的内容还可被组织成块或其它样本值集。解码器(600)是基于块的并使用取决于实现的块格式。块可以在不同的阶段被进一步细分。例如,图片可以被划分成64x64块、32x32块或16x16块,这些块随后可以被划分成更小的样本值块。在针对H.265/HEVC标准的解码实现中,将图片分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。如果图片是在WPP被启用的情况下(即使用WPP或用与在解码期间对WPP的使用一致的方式)被编码的,则某些块的行(例如,根据H.265/HEVC标准的CTU的行)可使用WPP被并行地解码,如以下进一步解释的。
[0119]解码器(600)使用图片内解码和/或图片间解码来对图片进行解压缩。解码器(600)的许多组件被用于图片内解码和图片间解码这两者。由这些组件执行的确切操作可取决于正被解压缩的信息的类型而变化。
[0120]缓冲器接收经编码的视频比特流(605)中的经编码数据,并使得接收到的经编码数据可用于解析器/熵解码器(610)。解析器/熵解码器(610)通常应用在编码器(500)中执行的熵编码的逆(例如上下文自适应二进制算术解码)对经熵编码的数据进行熵解码。作为解析和熵解码的结果,解析器/熵解码器(610)产生通用控制数据(622)、经量化的变换系数数据(632)、帧内预测数据(642)、运动数据(652)以及滤波器控制数据(662)。对于帧内预测数据(642),如果预测器索引值被信号化,解析器/熵解码器(610)可以例如使用上下文自适应二进制算术解码来熵解码预测器索引值。在一些情况中,解析器/熵解码器(610)还可熵解码(例如使用上下文自适应二进制算术解码)BV值或其他偏移值的差,随后将该差与对应的预测器组合以重构BV值(或其他偏移值)。在其它情况中,该差可被从比特流中忽略,并且BV值(或其他偏移值)仅是(例如用预测器索引值指示的)预测器。对于调色板解码模式,解析器/熵解码器(610)可以解码调色板数据。具体地,解析器/熵解码器(610)可使用调色板预测,如以下所解释的。
[0121]通用解码控件(620)接收通用控制数据(622)并将控制信号(未示出)提供给其它模块(例如缩放器/逆变换器(635)、图片内预测器(645)、运动补偿器(655)以及帧内/帧间切换)以设置和改变解码期间的解码参数。
[0122]如果当前图片是使用图片间预测来预测的,则运动补偿器(655)接收运动数据(652),例如MV数据、参考图片选择数据以及合并模式索引值。运动补偿器(655)将MV应用于来自经解码的图片缓冲器(670)的(诸)经重构的参考图片。运动补偿器(655)产生对当前图片的帧间编码块的经运动补偿的预测。经解码图片缓冲器(670)存储一个或多个先前重构的图片以供用作参考图片。
[0123]在解码器(600)内的分开路径中,图片内预测器(645)接收帧内预测数据(642),例如指示图片内预测是使用空间预测、帧内BC预测、帧内LC预测还是帧内SC预测的信息以及预测模式方向(对于帧内空间预测的情况)、BV值(对于帧内BC预测的情况)、偏移值(对于帧内LC预测的情况)或偏移值和长度值(对于帧内SC预测的情况)。对于帧内空间预测,根据预测模式数据使用当前图片的重构(638)的值,图片内预测器(645)从当前图片的相邻的、先前重构的样本值中空间地预测当前图片的当前块的样本值。或者,对于帧内复制预测,图片内预测器(645)使用由针对当前块、行、串等的位移(BV值、偏移值等)指示的参考块、行、串或其他部分的先前重构的样本值来预测当前块、行、串或其他部分的样本值。在一些情况中,BV值(或其他偏移值)可以是被预测的值。在其它情况中,BV值(或其他偏移值)可不同于其预测的值,在该情况中该BV值(或其他偏移值)是使用差异和预测的值来重构的。对于帧内SC模式,图片内预测器(645)在预测当前串的样本值时还使用串长度值。
[0124]对于调色板解码模式,解码器(600)使用表示⑶或其它单元的至少一些样本值的调色板。调色板将索引值映射到在单元中使用的对应的色彩。例如,调色板将索引值0,I,2,?,p映射到对应的色彩,该色彩可采用RGB 4:4:4格式、BGR 4:4:4格式、GBR 4:4:4格式、YUV 4:4:4格式或另一个格式(色彩空间、色彩采样率)。索引值可以表示像素的RGB三元组、BGR三元组或GBR三元组。在解码期间,对于单元中的位置,来自调色板的索引值被适当的样本值取代。在单元中的逸出编码值可以使用逸出代码值和文字值来解码。调色板可基于信号化在比特流中的调色板数据逐单元地改变。
[0125]帧内/帧间切换选择经运动补偿的预测或图片内预测的值用作给定块的预测(658)。例如,当H.265/HEVC句法被遵循时,可以基于为图片中的⑶编码的句法元素来控制帧内/帧间切换,该图片可以包含帧内预测的CU和帧间预测的CU。当残留值已经被编码/信号化时,解码器(600)将预测(658)与重构的残留值组合以产生来自视频信号的内容的重构(638)。当残留值尚未被编码/信号化时,解码器(600)将预测(658)的值用作重构(638)。
[0126]为了在残留值已被编码/信号化时重构残留,缩放器/逆变换器(635)接收并处理经量化的变换系数数据(632)。在缩放器/逆变换器(635)中,缩放器/逆量化器对经量化的变换系数执行逆缩放和逆量化。逆频率变换器执行逆频率变换,从而产生经重构的预测残留值或样本值的块。例如,逆频率变换器将逆块变换应用于频率变换系数,从而产生样本值数据或预测残留数据。逆频率变换可以是逆DCT、其整数近似、或另一种类型的逆频率变换(例如逆离散正弦变换或其整数近似)。如果频率变换在编码期间被跳过,则逆频率变换也被跳过。在这种情况中,缩放器/逆量化器可对预测残留值(或样本值数据)的块执行逆缩放和逆量化,从而产生经重构的值。
[0127]对于图片内预测,重构(638)的值可以被馈送回图片内预测器(645)。对于图片间预测,重构(638)的值可被进一步滤波。在合并器/(诸)滤波器(665)中,解码器(600)将来自不同小块的内容合并到图片的经重构版本中。解码器(600)根据滤波器控制数据(662)和滤波自适应规则来执行去块滤波和SAO滤波,以便自适应地平滑各图片中的各边界上的间断。可替换地或另外地应用其它滤波(例如去振铃滤波或ALF;未示出)。小块边界可以被选择性地滤波或根本不被滤波,这取决于解码器(600)的设置或经编码的比特流数据内的句法元素。经解码的图片缓冲器(670)缓冲经重构的当前图片以供在后续的经运动补偿的预测中使用。
[0128]解码器(600)还可包括后处理滤波器。后处理滤波器(608)可以包括去块滤波、去振铃滤波、自适应维纳滤波、膜颗粒再现滤波、SAO滤波或另一种类的滤波。尽管“内环路”滤波是在运动补偿环路中对图片的经重构的样本值执行的,并因此影响参考图片的样本值,但后处理滤波器(608)是在经重构的样本值被输出以供显示之前在运动补偿环路外部被应用于经重构的样本值的。
[0129]取决于实现和期望的解压缩类型,解码器(600)的模块可被添加、被省略、被拆分成多个模块、被与其他模块组合和/或被替换为类似的模块。在替换实施例中,具有不同模块和/或其它配置的模块的解码器执行一个或多个所描述的技术。解码器的具体实施例通常使用解码器(600)的变型或补充版本。所示的解码器(600)内的模块之间的关系指示该解码器中的一般信息流动;为简明起见,未示出其它关系。
[0130]VI1.WPP被启用时针对各图片内预测模式的规则。
[0131]本章节呈现在波前并行处理(“WPP”)被启用时针对各图片内预测模式的规则的示例。这些创新促成编码器或解码器在WPP被启用时对诸如调色板预测模式、帧内块复制(“Bf )模式、帧内行复制(“LC”)模式和帧内串复制(“SC )模式之类的图片内预测模式的使用。
[0132]波前并行处理一介绍。
[0133]一般来说,WPP是通过将针对图片中的各行单元的处理的开始不同地延迟来促成并行处理的编码/解码工具。当WPP被启用时,图片中的不同行单元可被并行地编码或解码。在编码或解码期间,第一行单元可被从左到右一个单元接一个单元地处理。对第二行单元的处理(编码或解码)不需要等待针对整个第一行单元的处理的完成。相反,对第二行单元的处理可在针对第一行单元中的若干单元的处理完成后开始,这提供在处理第二行中的初始单元时所使用的信息。类似地,对第三行单元的处理可在针对第二行单元中的若干单元的处理完成后开始。由此,WPP促成对不同行单元的并行处理一一不同的线程或处理内核可在分阶段的时间延迟的基础上执行针对不同行单元的处理。
[0134]例如,根据H.265/HEVC标准,当WPP被启用时,片被划分成诸行CTU。在编码或解码期间,第一行CTU可被一个CTU接一个CTU地处理。对第二行CTU的处理可在针对第一行中的前两个CTU的处理完成后开始,这提供在处理第二行的初始CTU时所使用的信息(例如,经重构的样本值、经重构的MV值或BV值、上下文模型信息)。类似地,对第三行CTU的处理可在针对第二行中的前两个CTU的处理完成后开始。
[0135]图7示出根据H.265/HEVC标准的当前图片(710)的WPP的时序(700)。图片(710)被分割成各CTU,这些CTU被组织在各CTU列和各CTU行中。不同的CTU行可使用WPP被并行地编码或解码。WPP的时序反映了编码或解码期间各CTU之间的依赖关系。在该示例中,给定CTU可依赖于来自以下的信息(诸如经重构的样本值、经重构的MV值或BV值、上下文模型信息):(I)其左边的(诸)相邻CTU,(2)其左上方的(诸)相邻CTU,(3)该给定CTU上方的(诸)相邻CTU,以及(4)该给定CTU右上方的(诸)相邻CTU,其中这样的相邻CTU( 1)-(4)是获得的(例如,在图片内的相同片和小块中)。每一相邻CTU进而可取决于其相邻CTU(l)-(4)(如果可获得的话)。图8示出第五CTU行的初始CTU的级联依赖关系。第五CTU行的初始CTU依赖于第四CTU行的前两个CTU,这第四行CTU行的前两个CTU—起取决于第三CTU行的前三个CTU,并以此类推。
[0136]参考图7,对于WPP,对于波O,第一CTU行(即,CTU行O)被一个CTU接一个CTU地处理。对于波I,对CTU行I中的初始CTU的处理可在对CTU行O中的第二CTU的编码/解码结束后开始。类似地,对于波2,对CTU行2中的初始CTU的处理可在对CTU行I中的第二 CTU的编码/解码结束后开始。对于波3,对CTU行3中的初始CTU的处理可在对CTU行2中的第二 CTU的编码/解码结束后开始,并且对于波4,对CTU行4中的初始CTU的处理可在对CTU行3中的第二 CTU的编码/解码结束后开始。
[0137]即使在各CTU行被并行处理时,该分阶段、时间延迟处理仍确保在针对某CTU行的处理开始时各CTU之间的依赖关系被满足。在图7中,每一 CTU行的双CTU引导在处理期间被维护。对于每一CTU行,针对当前CTU的处理(以粗轮廓线示出)比针对下一CTU行中的当前CTU的处理提前两个CTU。然而,在实践中,针对给定CTU行的处理可停止或慢下来,从而导致针对在后CTU行的处理的级联延迟,针对在后CTU行的处理(直接或间接)取决于针对给定CTU行中的某CTU的处理的完成。对于在后CTU行中的给定CTU,依赖关系从先前CTU行向下级联。在图8中示出的示例(800)中,对于帧(810)的第五CTU行中的初始CTU,第四CTU行中的前两个CTU已经被处理。否则,针对第五CTU行中的初始CTU的处理不可能开始。作为扩展,第三CTU行中的第三CTU已经被处理,因为否则针对第四CTU行中的第二 CTU的处理不可能已经开始。类似地,作为针对第三CTU行中的第三CTU的处理的先决条件,第二 CTU行中的第四CTU已经被处理。最后,作为针对第二 CTU行中的第四CTU的处理的先决条件,第一 CTU行中的第五CTU已经被处理。图8由此示出保证在WPP被启用时可用于预测波4 (第五CTU行)中的初始CTU的经重构的内容。
[0138]相反,当WPP没有被启用时,在CTU行中从左到右地并对图片从上到下一个CTU行接一个CTU行地处理各CTU。供给定CTU使用的上下文模型信息(也被称为CABAC状态信息或熵编码信息)可考虑处理图片(或片/小块)的相同CTU行和任何先前CTU行中的任何先前CTU(其是编码/解码次序中的较早的CTU)的结果。例如,对某CTU行中的第二CTU的处理取决于对该CTU行中的第一 CTU的处理的结果,并以此类推。作为另一示例,对某CTU行中的初始CTU的处理取决于对图片(或片/小块)中的先前CTU行中的最后一个CTU的处理的结果。
[0139]另一方面,在WPP被启用时,对某CTU行中的初始CTU的处理不取决于对图片(或片/小块)中的先前CTU行中的最后一个CTU的处理的结果。对某CTU行中的初始CTU的处理可在对图片(或片/小块)中的先前CTU行中的第二 CTU的处理完成之后开始,即使来自先前CTU行中的最后一个CTU的上下文模型信息不可用。对先前CTU行中的第三CTU的处理仍取决于对那个CTU行中的第二 CTU的处理的结果,就像WPP没有被启用时一样。
[0140]在WPP被启用时,编码器在编码期间实际上可使用或可不使用WPP。无论如何,编码器强制实施在WPP实际上被使用时适用的约束和预测规则。类似地,当WPP被启用时,解码器在解码期间实际上可使用或可不使用WPP。比特流中的句法元素可指示是否对视频序列、图片集合或图片启用WPPO例如,该句法元素可被信号化在比特流中的SPS、PPS或其他句法结构中。例如,在H.265/HEVC实现中,被信号化在PPS句法结构中的句法元素entropy_coding_sync_enabled_flag(熵_编码_同步_启用标志)的值指示是否对与该PPS句法结构相关联的(诸)图片启用WPP。如果entropy_coding_sync_enabled_flag等于I,则对(诸)图片启用了WPP。否则,没有对(诸)图片启用WPP。
[0141]B.调色板编码/解码模式及调色板预测一介绍。
[0142]一般来说,调色板编码/解码模式使用调色板来表示单元(例如,H.265/HEVC实现中的CU或其他单元)的至少一些样本值。例如,调色板将索引值0,1,2,...,口映射到对应的色彩,该色彩可采用RGB 4:4:4格式、BGR4:4:4格式、GBR 4:4:4格式、YUV 4:4:4格式或另一个格式(色彩空间、色彩采样率)。索引值可表示像素的RGB三元组、BGR三元组或GBR三元组。图9示出调色板的两个示例。当前单元的调色板(S卩,“当前调色板”)包括P个索引值O,…,p-1,这些索引值与RGB三元组相关联。先前单元的调色板(表示在“先前调色板数据”中)包括q个索引值0,-_,q-l,这些索引值与RGB三元组相关联。P和q的值可相同或不同。在编码期间,编码器可使用索引值来替换像素的样本值,该索引值可例如使用熵编码来被进一步编码。在解码期间,解码器可例如在对索引值进行熵解码后,使用调色板从该索引值中恢复像素的样本值。
[0143]具体地,调色板编码/解码模式在单元包括相对较少的不同色彩时可能是高效的,这是屏幕内容视频的共有特征。例如,采用RGB 4:4:4格式的641640]包括64164 = 4096个像素,但可包括少的多的色彩(例如,I到20个色彩)。可以使用逸出代码值和(相应样本值的)文字值来编码单元中的稀有值,而不是将稀有色彩直接包括在调色板中。
[0144]两个单元可使用相同的调色板,但色彩通常在图片中逐单元地改变。由此,调色板通常在图片内逐单元地改变。对于调色板,编码器将调色板数据信号化在比特流中,该调色板数据可被熵编码。解码器接收并解析调色板数据、在适当时对调色板数据进行熵解码并重构调色板。编码器和解码器可使用调色板预测来降低与信号化调色板数据相关联的比特率。
[0145]—般来说,调色板预测可以是编码或解码期间被用于使用来自针对先前单元的一个或多个调色板的调色板数据(先前调色板数据)来预测当前单元的调色板(当前调色板)的值的任何方法。虽然色彩通常在图片内逐单元地改变,但在许多情况下,给定单元中的至少一些色彩也可在相邻单元中被使用。调色板预测采用那个观察来降低调色板数据的比特率。
[0146]图9示出其中当前单元的调色板(当前调色板)是使用先前单元的调色板(被表示在先前调色板数据中)来预测的调色板预测的简化示例(900)。例如,如果在当前单元之前被编码或解码的先前单元使用了调色板编码/解码模式,则先前调色板数据可来自由该先前单元使用的调色板。如果先前单元没有使用调色板编码/解码模式,则当前单元的先前调色板数据可“继承”自该先前单元。也就是说,对先前单元可用的先前调色板数据可作为对当前单元可用的先前调色板数据被重新使用。(在一些示例实现中,先前调色板数据实际上是当前单元的状态或状态信息。本身不使用调色板编码/解码模式的给定单元仍具有先前调色板数据,该先前调色板数据可被下一单元继承。)由此,通过继承链,当前单元的先前调色板数据可包括来自使用了调色板编码/解码模式的最新近的、先前处理的单元(如果有的话)的调色板的调色板数据。
[0147]对于调色板预测,编码器可确定当前调色板是否与先前调色板数据相同。如果如此,则编码器可简单地指示先前调色板数据将作为当前调色板被重新使用。否则(当前调色板不同于先前调色板数据),编码器确定先前调色板数据和当前调色板之间的改变,并信号化指示这些改变的句法元素。例如,如图9所示,对于当前调色板的给定索引值,编码器信号化该给定索引值的相应色彩是先前调色板数据中的色彩(“先前”)还是新色彩(“新”)。如果相应色彩是先前调色板数据中的色彩,则编码器信号化针对先前调色板数据中的该色彩的(来自先前调色板数据的)索引值,该先前调色板数据可被用于填充当前调色板。在图9中,针对先前调色板数据的索引值I的色彩被重新分配给当前调色板中的索引值0,并且针对先前调色板数据的索引值O的色彩被重新分配给当前调色板中的索引值2。由此,色彩可逐调色板地改变位置,例如使得最常用的色彩具有最小的索引值,这可改善熵编码的效率。如果针对给定索引值的相应色彩是新色彩,则编码器信号化该新色彩的三元组。例如,在图9中,对于当前调色板中的索引值I,编码器信号化新三元组(215,170,200),其被用于更新当前调色板。
[0148]基于由编码器信号化的句法元素,解码器可确定当前调色板是否与在解码器处可用的先前调色板数据相同。如果如此,则解码器可将先前调色板数据作为当前调色板重新使用。否则(当前调色板不同于先前调色板数据),解码器接收并解析指示先前调色板数据和当前调色板之间的改变的句法元素。例如,如图9所示,对于当前调色板的给定索引值,解码器确定该给定索引值的相应色彩是先前调色板数据中的色彩(“先前”)还是新色彩(“新”)。如果相应色彩是先前调色板数据中的色彩,则解码器接收并解析指示针对先前调色板数据中的色彩的(来自先前调色板数据的)索引值的句法元素,该先前调色板数据可被用于填充当前调色板。如果针对给定索引值的相应色彩是新色彩,则解码器接收并解析指示该新色彩的句法元素。
[0149]在构造了当前调色板后,编码器和解码器更新下一单元的先前调色板数据,以存储来自当前调色板的调色板数据。该新“先前调色板数据”可被用于预测下一单元的调色板。
[0150]图9示出简化的示例(900)。具体地,被用于信号化调色板数据的句法元素和规则可能更复杂。对于示例实现中的关于调色板编码/解码和调色板预测的附加细节,参见例如JCTVC-R1005的章节7.3.8.8,7.4.9.6和8.4.1。替换地,另一方法被用于信号化调色板数据。
[0151]C.WPP被启用时的调色板预测。
[0152]—般来说,用于调色板预测目的的先前调色板数据被用来预测当前单元的调色板(当前调色板)。例如,(如果在当前单元之前编码或解码的邻居单元使用了调色板编码/解码模式),先前调色板数据可以是来自该邻居单元的实际调色板数据。或者(如果邻居单元没有使用调色板编码/解码模式),则对邻居单元可用的先前调色板数据可作为当前单元的先前调色板数据被重新使用(或者“继承”)。
[0153]在一些示例实现中,当WPP没有被启用时,对于当前行中的初始单元,先前调色板数据来自先前行中的最后一个单元(例如,在最后一个单元使用了调色板编码/解码模式的情况下,来自最后一个单元的调色板;否则,是对最后一个单元可用的先前调色板数据)。当WPP被启用时,对于当前行中的初始单元,来自先前行中的最后一个单元的先前调色板数据可能不是可用的。然而,在每一单元行开始处重置调色板预测(当前单元中没有用于初始单元的调色板预测的预测器)可对编码效率具有负面影响。
[0154]相反,在WPP被启用时,编码器或解码器可使用来自先前行中的前两个单元之一(例如,先前行的前两个CTU中的前两个CU之一)的先前调色板数据,该前两个单元之一已被按需处理以用于对要开始的当前行中的初始单元的处理。例如,对于当前行中的初始单元,用于调色板预测目的的先前调色板数据来自先前行的第二单元(如果第二单元使用了调色板编码/解码模式,则为第二单元的实际调色板数据,或者否则,为对先前行的第二单元可用的先前调色板数据)。由此,对于当前行中的初始单元,如果第二单元没有使用调色板编码/解码模式,则先前调色板数据(在来自先前行的第一单元使用了调色板编码/解码模式的情况下)可能为该第一单元的调色板数据,或者(在先前行中的前两个单元都没有使用调色板编码/解码模式的情况下)为来自先前行的第一单元的先前调色板数据,该先前调色板数据可取决于先前行之前的行的第二单元的调色板,并以此类推。(替换地,如果先前行中的前两个单元都没有使用调色板编码/解码模式,则先前调色板数据可为空一没有预测器一或使用默认预测器。)在当前行中的初始单元之后,对于当前单元,用于调色板预测目的的先前调色板数据(在于当前单元之前编码或解码的邻居单元使用了调色板编码/解码模式的情况下)为来自该邻居单元的调色板数据,或者(在该邻居单元没有使用调色板编码/解码模式的情况下)为对该邻居单元可用的先前调色板数据,就像WPP没有被启用时一样。
[0155]图10示出根据一些示例实现的针对在WPP被启用的情况下被处理的当前图片(I O1)的调色板预测依赖关系(1000)。图片(1010)通过各CTU行和CTU列来组织。在图1O的示例中,每一CTU包括单个⑶。更一般地,给定CTU可被递归地拆分成多个⑶(例如,单个⑶可被拆分成四个CU,这些CU中的每一者可被进一步拆分成更小的CU)。处理状态(例如,当前CTU正被编码或解码)一般对应于图7中示出的处理状态。图1O中的箭头示出在WPP被启用时调色板预测的方向。对于第一CTU行中的初始CU,不存在预测器。替换地,可使用默认预测器。对于第一 CTU行中的每一在后⑶,先前调色板数据来自左边的⑶。对于第一 CTU行之后的任何CTU行中的初始CU,先前调色板数据来自先前行的第二CU O对于第一CTU行之后的任何CTU行中的每一在后CU,先前调色板数据来自同一行中的先前CU。对于使用调色板编码/解码模式的任何CU,其调色板被用于构造用于预测下一 CU的调色板的先前调色板数据。如果给定CU没有使用调色板编码/解码模式,则对给定CU可用的先前调色板数据被保持作为下一⑶的先前调色板数据。
[0156]当CTU包括多个⑶时,出于针对当前⑶的调色板预测的目的,先前⑶可以是Z扫描次序中的较早的CU O较早的CU可以在相同的CTU或不同的CTU中(针对该CTU的第一CU)。参考图17,在一些示例实现中,章节VI1.D解释了Z扫描次序的示例。
[0157]编码器和解码器可使用存储器来存储被用于调色板预测的先前调色板数据。所保存的先前调色板数据的调色板数据的量取决于实现。一般来说,先前调色板数据可包括先前调色板数据中的色彩的计数C和这些色彩的样本值的细节(例如,采用RGB 4:4:4格式、GBR 4:4:4格式、BGR 4:4:4格式、YUV 4:4:4格式或另一格式的色彩三元组)。编码器和解码器可保存先前调色板的所有调色板数据。然而,对于大型调色板而言,保存先前调色板的所有调色板数据可消耗显著量的存储器。替换地,在一些情况下为了降低存储器消耗,编码器和解码器通过阈值计数来限制C,其中该阈值计数取决于实现。在该情况下,编码器和解码器保存针对先前调色板中的前C个不同色彩的先前调色板数据,其中C通过阈值计数来限制。例如,阈值计数为16或32。或者,当WPP被启用时,对于针对当前行的初始单元的调色板预测,编码器和解码器最多保存前(^个不同色彩的先前调色板数据。在此之后,编码器和解码器最多保存针对当前行内用于调色板预测的前&个不同色彩的先前调色板数据。例如,C1为16或32,并且C2为64。
[0158]图11示出在WPP被启用时用于进行编码的一般技术(1100),该技术包括调色板预测。编码器(诸如图3或图5a和5b中示出的编码器或其他编码器)可执行技术(1100)。图12示出在WPP被启用时用于进行解码的一般技术(1200),该技术包括调色板预测。解码器(诸如参考图4或图6中示出的解码器或其他解码器)可执行技术(1200)。
[0159]参考图11,编码器在WPP被启用的情况下对图片进行编码(1110)。编码(1110)产生经编码的数据。作为编码(1110)的一部分,对于调色板编码模式,编码器使用来自图片的先前WPP行中的先前单元的先前调色板数据来预测图片的当前WPP行中的初始单元的调色板。编码器将经编码的数据作为比特流的一部分来输出(1120)。
[0160]参考图12,解码器将经编码的数据作为比特流的一部分来接收(1210)。解码器在WPP被启用的情况下对经编码的数据进行解码(1220)。解码(1220)重构图片。作为解码(1220)的一部分,对于调色板解码模式,解码器使用来自图片的先前WPP行中的先前单元的先前调色板数据来预测图片的当前WPP行中的初始单元的调色板。
[0161]在一些示例实现中,在编码器或解码器处,当前WPP行和先前WPP行是CTU行,并且初始单元和先前单元是CU。替换地,WPP行是另一种类型的单元的行,和/或初始和先前单元是另一种类型的单元。比特流中的句法元素可指示是否对视频序列、图片集合或图片启用WPP。该句法元素可被信号化在比特流中的SPS句法结构、PPS句法结构(例如,在H.265/HEVC实现中为句法元素entropy_coding_sync_enabled_f lag)或另一句法结构中。
[0162]一般来说,在编码或解码期间,当前WPP行中的初始单元的调色板表示在当前WPP行中的初始单元中所使用的至少一些色彩。(如果先前WPP行中的先前单元使用了调色板编码/解码模式),来自该先前单元的先前调色板数据可表示在先前WPP行中的该先前单元的调色板中所使用的至少一些色彩。或者(如果该先前单元没有使用调色板编码/解码模式),则来自先前WPP行中的该先前单元的先前调色板数据可能已被来自较早的单元的先前单元继承,该较早的单元可能已使用了调色板编码/解码模式或者本身继承了先前调色板数据。没有表示在调色板中的色彩可被逸出编码。先前WPP行可以是紧接在当前WPP行上方的WPP行。先前WPP行中的先前单元可在当前WPP行中的初始单元的上方(例如,在图10中为先前行中的第一单元),或者它可在当前WPP行中的初始单元的右上方(例如,在图10中为先前行中的第二单元)。在处理了当前WPP行中的初始单元后,为了得到图片的当前WPP行中的后续单元的调色板,编码器或解码器可使用来自当前WPP行中的初始单元的调色板的调色板数据来预测(该后续单元的)调色板。
[0163]在编码或解码期间,调色板预测可包括若干阶段。例如,在编码期间,编码器可(基于当前调色板与先前调色板数据的比较)确定是否将来自先前WPP行中的先前单元的先前调色板数据作为当前WPP行中的初始单元的调色板(当前调色板)来重新使用。在解码期间,解码器可(基于由编码器?目号化的?目息)确定是否将来自先前WPP行中的先前单兀的先前调色板数据作为当前WPP行中的初始单元的调色板(当前调色板)来重新使用。作为另一示例,在编码期间,在存在对调色板的改变时,编码器可从来自先前WPP行的先前单兀的先前调色板数据中选择一个或多个色彩以包括在当前WPP行的初始单元的调色板(当前调色板)中。编码器信号化指示所选的色彩的句法元素。接着,在解码期间,解码器可接收并解析该句法元素,并基于该句法元素来从来自先前WPP行中的先前单元的先前调色板数据中选择一个或多个色彩以包括在当前WPP行中的初始单元的调色板(当前调色板)中。替换地,编码器和解码器可使用另一种方法来信号化调色板数据。
[0164]编码器和解码器可存储来自先前WPP行中的先前单元的所有先前调色板数据。例如,对于来自先前WPP行中的先前单元的先前调色板数据中的C个色彩中的每一色彩,编码器和解码器可保存一个或多个色彩分量值。替换地,在一些情况下,为了降低存储器消耗,编码器和解码器可通过先前调色板数据的阈值计数来限制C,使得通过阈值计数来限制的前C个色彩的调色板数据被存储用于调色板预测。
[0165]D.帧内复制预测-介绍。
[0166]—般来说,帧内复制模式使用帧内复制预测,在帧内复制预测中,图片中的当前块、行、串或其他部分是使用同一图片中的参考块、行、串或其他部分中的先前重构的样本值来预测的。例如,帧内复制模式可使用帧内块复制(“BC")预测、帧内行复制(“LC”)预测或帧内串复制(“SC")预测。
[0167]一般来说,帧内BC模式使用帧内BC预测,在帧内BC预测中图片的当前块的样本值是使用同一图片中的样本值来预测的。块向量(“BV”)值指示从当前块到该图片的包括用于预测的样本值的块(“参考块”)的位移。参考块提供了当前块的预测器。用于预测的样本值是先前重构的样本值,由此这些样本值可在编码期间在编码器处获得并在解码期间在解码器处获得。BV值被信号化在比特流中,并且解码器可使用BV值来确定图片的参考块以供预测使用。
[0168]图13示出了针对当前图片(1310)的当前块(1330)的帧内BC预测的示例(1300)。当前块可以是编码单元(“CU”)的编码块(“CB”)、预测单元(“PU”)的预测块(“PB”)、变换单元(“TU”)的变换块(“TB”)或其它块。当前块的尺寸可以是64X64、32 X 32、16 X 16、8 X8或某个其它尺寸。出于帧内BC预测的目的,块可被对称地或非对称地分割成较小块。更一般地,当前块的尺寸为mXn,其中m和η中的每一者都是整数,并且其中m和η可彼此相等或可具有不同的值。这样,当前块可以是正方形或矩形。替换地,当前块可具有某种其它形状。
[0169]BV( 1340)指示从当前块( 1330)到该图片的包括用于预测的样本值的参考块(1350)的位移(或偏移)。参考块(1350)可以等同于当前块(1330),或它可以是当前块(1330)的近似。假设当前块的左上位置在当前图片的位置(XQ,yQ)处,并假设参考块的左上位置在当前图片的位置(X1,yO处。BV指示位移(χ1-Χο,71-7ο)。例如,如果当前块的左上位置在位置(256,128)处,并且参考块的左上位置在位置(126,104)处,则BV值是(-130,-24)。在本示例中,负水平位移指示在当前块的左边的位置,而负垂直位移指示在当前块的上方的位置。
[0170]帧内BC预测可使用BC操作通过利用冗余性(例如在图片内部的重复的图案)来改善编码效率。然而,考虑到编码器可评估的候选参考块的数目,寻找当前块的匹配参考块可能是计算上复杂并耗时的。图14示出了解说在WPP没有被启用时的当前图片(1410)的当前块(1430)的候选参考块中的一些的示例(1400)。四个BV(1441,1442,1443,1444)指示四个候选参考块的位移。在WPP没有被启用时,候选参考块可在当前图片(1410)的经重构内容内内的任何地方。(通常从左向右随后从上到下地编码块。)候选参考块可以与其它候选参考块重叠,如针对由BV值(1443,1444)所指示的候选参考块示出的。在一些示例实现中,参考块被约束为在与当前块相同的片或小块内。这样的帧内BC预测不使用在其它片或小块中的样本值。参考块的位置可以经受一个或多个其它约束,例如在WPP被启用时的约束,如以下所描述的。
[0171]具有帧内BC预测的预测模式的块可以是CB、PB或其它块。当块是CB时,该块的BV值可在CU级处被信号化(且该CU中的其它CB使用相同的BV或其经缩放的版本)。或者,当块是I3B时,该块的BV可在PU级处被信号化(而PU中的其它I3B使用相同的BV或其经缩放的版本)。更一般地,帧内BC预测块的BV被信号化在该块的适当句法级别处。
[0172]—般来说,帧内LC模式使用帧内LC预测,在帧内LC预测中,图片的当前块的当前行的样本值是使用同一图片中的样本值来预测的。偏移值指示从当前行到图片的包括用于预测的样本值的行(“参考行”)的位移。该偏移值被信号化在比特流中,并且解码器可使用该偏移值来确定参考行以供预测使用。
[0173]图15示出了针对当前图片的当前块(1530)的行的帧内BC预测的示例(1500)。当前块可以是CU的CB、PU的PB、TU的TB或其他块。当前块的尺寸可以是64X64、32X32、16X16、8X 8或某个其它尺寸。更一般地,当前块的尺寸为m X η,其中m和η中的每一者都是整数,并且其中m和η可彼此相等或可具有不同的值。这样,当前块可以是正方形或矩形。对于帧内LC预测,块被拆分成水平行或垂直行。水平行具有I样本高度并具有当前块的宽度。垂直行具有I样本宽度并具有当前块的高度。
[0174]在图15中,第一偏移(1551)指示从当前块(1530)的第一行(1541)到包括用于预测第一行(1541)的样本值的参考行(1561)的位移。参考行可等同于给定行,或者它可以是给定行的近似。第二偏移(1552)指示从当前块(1530)的第二行(1542)到包括用于预测第二行(1542)的样本值的参考行(1562)的位移。偏移值(1551,1552)与BV值相似,因为它指示当前图片内的位移。虽然图15示出水平行,但当前块(1530)可改为被拆分成用于帧内LC预测的各垂直行。每个块、每个单元或每个图片的句法元素可指示是水平行还是垂直行被用于帧内LC预测。
[0175]帧内LC预测可使用LC操作通过利用冗余性(例如在图片内部的重复的图案)来改善编码效率。在WPP没有被启用时,候选参考行可在当前图片的经重构内容内的任何地方。候选参考行可与其他候选参考行重叠。在一些示例实现中,参考行被约束为在与当前行相同的片或小块内。参考行的位置可以经受一个或多个其它约束,例如在WPP被启用时的约束,如以下所描述的。
[0176]通常,帧内SC模式使用帧内SC预测,在帧内SC预测中,图片的当前块的当前串的样本值是使用同一图片中的样本值来预测的。偏移值指示从当前串到图片的包括用于预测的样本值的串(“参考串”)的位移。串长度值根据样本值来指示串的长度。偏移值和串长度值被信号化在比特流中,并且解码器可使用偏移值和串长度值来确定参考串以供预测使用。
[0177]图16示出针对当前图片的当前块(1630)的串的帧内SC预测的示例(1600)。当前块可以是CU的CB、PU的PB、TU的TB或其他块。当前块的尺寸可以是64Χ64、32Χ32、16Χ16、8Χ8或某个其它尺寸。更一般地,当前块的尺寸为mXn,其中m和η中的每一者都是整数,并且其中m和η可彼此相等或可具有不同的值。这样,当前块可以是正方形或矩形。对于帧内SC预测,块被拆分成一个或多个串。在图16中,当前块(1630)被拆分成三个串。块的串在给定行中可被水平地一即从左到右地一扫描,随后下一行被扫描,并以此类推。或者,块的串在给定列中可被垂直地一即从上到下一扫描,随后下一列被扫描,并以此类推。在图16中串被水平地扫描。
[0178]在图16中,第一偏移(1651)指示从当前块(1630)的第一串(1641)到包括用于预测第一串(1641)的样本值的参考串(1661)的位移。第一串(1641)和相应的参考串(1661)中的每一者的长度为6个样本值。参考串可等同于给定串,或者它可以是给定串的近似。第二偏移(1652)指示从当前块(1630)的第二串(1642)到包括用于预测第二串(1642)的样本值的参考串(1662)的位移。第二串(1642)和相应的参考串(1662)中的每一者的长度为14个样本值。没有示出针对当前块(1630)的第三串的偏移,该第三串具有44个样本的长度。类似BV值,偏移值(1651,1652)指示当前图片内的位移。虽然图16示出水平扫描,但当前块(1630)可改为被拆分成被垂直地扫描以用于帧内SC预测的串。每个块、每个单元或每个图片的句法元素可指示是水平扫描次序还是垂直扫描次序被用于帧内SC预测。
[0179]帧内SC预测可使用SC操作通过利用冗余性(诸如图片内部的重复的图案)来改善编码效率。帧内SC预测比帧内BC预测或帧内LC预测更灵活(从而允许分割成任意串,而不只是固定的分割),但信号化更多信息(除了偏移值外,还有串长度值)。在WPP没有被启用时,候选参考串可在当前图片的经重构内容内的任何地方。候选参考串可与其他候选参考串重叠。在一些示例实现中,参考串被约束为在与当前串相同的片或小块内。参考串的位置可以经受一个或多个其它约束,例如在WPP被启用时的约束,如以下所描述的。
[0180]帧内BC模式、帧内LC模式或帧内SC模式的帧内复制预测操作可在CB级别处(在BV值或其他偏移值是根据CB或其部分来信号化的情况下)或者PB级别处(在BV值或其他偏移值是根据PB或其部分来信号化的情况下)被应用。在这种情况中,参考区域被约束为不与当前区域或包括当前区域的块重叠。替换地,即使在BV值或其他偏移值被针对PB或CB(或其部分)来信号化时,帧内复制预测操作仍可被应用于PB或CB内的较小部分。例如,对于块的第一部分,参考区域包括在该块之外的位置。然而,对于块的第二部分,帧内复制预测操作中使用的参考区域可包括在同一块的先前重构的第一部分中的位置。通过这种方式中,BV值或偏移值可参考同一 PB或CB中的位置。允许帧内复制预测操作被应用于PB或CB内的各部分促成对具有相对较小的量级的BV值或其他偏移的使用。
[0181]在当前单元中的当前区域的参考区域可包括同一单元内的位置时,编码器可通过考虑当前区域和参考区域(其在相同的片和相同的小块中)的z扫描次序来检查BV值或其他偏移值的有效性。例如,编码器检查包含参考区域的右下位置(XQ+offsetx+m-l,yQ+offsety+n-1)的块的z扫描次序小于包含当前区域的左上位置(XQ,yo)的块的z扫描次序,其中offset(偏移)指示偏移值,并且当前区域和参考区域具有维度m X η。如果如此,则包含参考区域的右下位置的块已在先前被重构(并且因此具有参考区域的剩余部分)。编码器还可以检查偏移值满足条件offsetx+m< O和offsety+n < O中的至少一个,从而确保参考区域不与当前区域重叠。
[0182]—般来说,z扫描次序遵循分割图片的单元的顺序指定的排序。图17示出针对当前区域(I730)和可包括参考区域的右下位置的单元的示例z扫描次序(1700)。当前区域(1730)可以是CB、I3B或其他块、行或包括串的矩形。通常,z扫描次序在一行中被从左到右顺序地分配给各单元,并从上到下地在后继行中重复。当单元被拆分时,z扫描次序被递归地在拆分的单元内分配。对于H.265/HEVC标准的编码/解码的实现,z扫描次序沿着CTU光栅扫描模式(在一 CTU行中为从左到右,并从上到下地在后继CTU行中重复)逐CTU地继续。如果CTU被拆分,则z扫描次序遵循针对经拆分的CTU内的四叉树的CU的光栅扫描模式。并且,如果CU被拆分(例如,被拆分成多个CU或被拆分成多个PU),则z扫描次序遵循针对经拆分的CU内的块的光栅扫描模式。
[0183]在一些示例实现中,BV值或其他偏移值针对CU、PU或其他单元来被信号化,并被应用于该单元的所有块。取决于色彩空间和色彩采样率,BV值或其他偏移值可被用于所有块而无需缩放,或者它可针对不同的色彩分量中的块被缩放。替换地,不同的BV值或其他偏移值可针对单元的不同块被信号化。在一些示例实现中,相同的预测模式(例如,帧内BC模式)适用于单元的所有块。替换地,不同的块可具有不同的预测模式。
[0184]E.WPP被启用时对帧内复制预测的约束。
[0185]—般来说,帧内BC预测、帧内LC预测和帧内SC预测使用图片中的先前重构的样本值来预测同一图片的当前块、行或串的样本值。作为规则,在WPP被启用时图片的包括先前重构的样本值的区域不同于WPP没有被启用时该图片的包括先前重构的样本值的区域。对于帧内复制预测,对参考区域的位置的一些约束被强制实施,而不管WPP是否被启用。对参考区域的位置的一个或多个其他约束在WPP被启用时应用。对参考区域的位置的约束可采用对帧内BC预测允许的BV值的限制或对帧内LC预测或帧内SC预测允许的偏移值的限制的形式。
[0186]图18示出根据一些示例实现的在WPP被启用时对图片(I810)的当前区域(I 830)的参考区域的位置的约束的示例(1800)。图片(1810)通过各CTU行和CTU列来组织。
[0187]当前区域(1830)用帧内复制模式来编码或解码。当前区域(1830)是当前CTU的一部分。对于当前CTU,依赖关系从先前CTU行向下级联。当WPP被启用时,为了处理要开始的当前CTU,同一行中其左边的(诸)CTU已经被处理,并且先前行中一直到右上方的CTU的各CTU已经被处理。类似地,对于这些已经被处理的CTU中的任一者,同一行中的左边的各CTU以及先前行中一直到右上方的CTU的各CTU已经被处理。如图18中所示,这些先前处理的CTU提供保证在WPP被启用时可用于帧内复制预测的经重构的内容。
[0188]图18示出当前图片(1810)的当前区域(1830)的候选参考区域中的一些。四个偏移值(1841,1842,1843,1844)指示四个候选参考区域的位移。候选参考区域可与其他候选参考区域重叠。候选参考区域可在当前图片(1810)的经重构内容内的任何地方。在WPP没有被启用时,当前图片(I 810)的经重构的内容一般包括在当前CTU左边的各CTU以及先前CTU行中的所有CTU。然而,在WPP被启用时,较少的经重构的内容可用,如图18中所示出的。在图18中,三个偏移值(1841、1842、1843)指示有效参考区域。这些有效参考区域仅包括在保证在WPP被启用时可用于帧内复制预测的经重构的内容内的样本值。偏移值之一(1844)指示有效参考区域,该有效参考区域包括在保证在WPP被启用时可用于帧内复制预测的经重构的内容外部的至少一些样本值。
[0189]通过WPP被启用时对帧内复制模式的约束来进行编码和解码。
[0190]图19示出用在WPP被启用时对帧内复制模式强制实施的规则进行编码的一般技术(1900)。编码器(诸如图3或图5a和5b中示出的编码器或其他编码器)可执行技术(1900)。图20示出用在WPP被启用时对帧内复制模式强制实施的规则进行解码的一般技术(2000)。解码器(诸如在图4或图6中示出的解码器或其他解码器)可执行技术(2000)。
[0191]参考图19,编码器在WPP被启用的情况下对图片进行编码(1910)。编码(1910)产生经编码的数据。作为编码(1910)的一部分,对于帧内复制模式(例如,使用帧内BC预测、帧内LC预测或帧内SC预测的模式),编码器强制实施归因于WPP的一个或多个约束。编码器将经编码的数据作为比特流的一部分来输出(1920)。
[0192]参考图20,解码器将经编码的数据作为比特流的一部分来接收(2010)。对于帧内复制模式(例如,使用帧内BC预测、帧内LC预测或帧内SC预测的模式),经编码的数据满足归因于WPP的一个或多个约束。解码器在WPP被启用的情况下对经编码的数据进行解码(2020)。解码(2020)重构图片。
[0193]比特流中的句法元素可指示是否对视频序列、图片集合或图片启用WPP。该句法元素可被信号化在比特流中的SPS句法结构、PPS句法结构(例如,在H.265/HEVC实现中为句法元素entropy_coding_sync_enabled_flag(熵编码同时启用标志))或另一句法结构中。
[0194]帧内复制模式可以是帧内BC模式。在该情况下,对于图片中的当前块,偏移值指示到图片中的参考块的位移。参考块包括先前重构的样本值。或者,帧内复制模式可以是帧内LC模式。在该情况下,对于图片的块中的当前行,偏移值指示到图片中的参考行的位移。参考行包括以行扫描方向(其可以是水平的或垂直的)扫描的先前重构的样本值。或者,帧内复制模式可以是帧内SC模式。在该情况下,对于图片的块中的当前串,偏移值指示到图片中的参考串的位移。参考串包括以串扫描次序(其可以是水平的或垂直的)扫描的先前重构的样本值。对于当前串,长度值指示当前串和参考串中的每一者的长度。或者,帧内复制模式可以是使用偏移值来为图片中的当前块、行、串或其他部分寻找相同图片中的参考块、行、串或其他部分的某一其他模式,其中参考块、行、串等包括先前重构的样本值。
[0195]归因于WPP的(诸)约束可包括从参考区域到当前区域的水平位移值小于或等于从当前区域到参考区域的垂直位置值的约束。例如,水平位移值测量从包括参考区域的右边缘的WPP列到包括当前区域的左边缘的WPP列的差异,并且垂直位移值测量从包括当前区域的上边缘的WPP行到包括参考区域的下边缘的WPP行的差异。在一些示例实现中,每一个WPP列都是CTU列,并且每一 WPP行均是CTU行。替换地,归因于WPP的(诸)约束包括一个或多个其他和/或附加约束。
[0196]如果帧内复制模式是帧内BC模式,则当前区域是当前块,并且参考区域是参考块。如果帧内复制模式是帧内LC模式,则当前区域是当前行,并且参考区域是参考行。如果帧内复制模式是帧内SC模式,则当前区域是包括当前串的矩形,并且参考区域是包括参考串的矩形。编码器或解码器可通过以串扫描次序(例如,水平的、垂直的)确定包括当前串的开始位置、当前串的结束位置、以及当前串的开始位置和结束位置之间的任何位置的矩形来标识包括当前串的矩形。编码器或解码器可使用被应用于包括当前串的矩形的偏移值来标识包括参考串的矩形。
[0197]编码器还可强制实施不归因于WPP的一个或多个其他约束。例如,编码器可检查当前区域的左上位置和参考区域的左上位置在同一片(如果合适的话)中并在同一小块中(如果合适的话)。作为另一示例,编码器可检查当前区域的左上位置和参考区域的右下位置在同一片中(如果合适的话)并在同一小块中(如果合适的话)。作为又一示例,编码器可检查下述三个条件之一被满足:(a)包括参考区域的下边缘的CTU行在包括当前区域的上边缘的CTU行上方;(b)如果包括参考区域的下边缘的CTU行等于包括当前区域的上边缘的CTU行,则包括参考区域的右边缘的CTU列在包括当前区域的左边缘的CTU列的左边;以及(C)如果包括参考区域的下边缘的CTU行等于包括当前区域的上边缘的CTU行并且如果包括参考区域的右边缘的CTU列等于包括当前区域的左边缘的CTU列,则在Z扫描次序中参考区域的右下位置比当前区域的左上位置更早。
[0198]以下章节详述根据一些示例实现的编码器可在WPP被启用时对帧内BC预测、帧内LC预测和帧内SC预测强制实施的约束的示例。
[0199]在WPP被启用时对帧内BC预测的BV值的示例约束。
[0200]本章节详述编码器可在WPP被启用时对帧内BC预测强制实施的约束的示例。对于当前块,约束验证由BV值指示的候选参考块包括将在当前块被编码或解码时可用的经重构的样本值。
[0201]定义当前块从相对于当前图片的左上位置的位置(XQ,yQ)处开始。当前块(block)的宽度和高度分别为WbId和hbic^k。当前块是当前⑶的一部分。CTU尺寸为S。当前⑶从相对于图片的左上位置的(xcu,ycu)处开始。块向量为(BVx,BVy)。
[0202]编码器验证所有下述约束被满足。[Ο2。3] 第一约束。编码器验证位置(XQ,yo)和位置(XQ+BVx,yo+BVy)在同一片中并在同一小块中。也就是说,编码器验证当前块的左上位置和参考块的左上位置在同一片中并在同一小块中。如果这两个位置在不同的片或不同的小块中,则第一约束不被满足。
[0204]第二约束。编码器验证位置(XQjQ)和位置(χο+BVx+wb1ck-l,yo+BVy+hb1ck-1)在同一片和同一小块中。也就是说,编码器验证当前块的左上位置和参考块的右下位置在同一片中并在同一小块中。如果这两个位置在不同的片或不同的小块中,则第二约束不被满足。
[0205]对于第一和第二约束,如果没有使用多个片,则被检查的两个位置必然在同一片中,并且针对片不需要检查第一和第二约束。类似地,如果没有使用多个小块,则被检查的两个位置必然在同一小块中,并且针对小块不需要检查第一和第二约束。当前块的所有位置是在单个片或单个小块中。如果第一和第二约束被满足,则参考块的所有位置也在那个片和小块中。编码器检查第一和第二约束,而不管WPP是否被启用。
[0206]第三约束。对于第三约束,编码器验证以下三个条件之一被满足。编码器检查第三约束,而不管WPP是否被启用。
[0207]第三约束的第一条件。编码器检查是否(yo+BVy+hb1ck-D/SOo/S。也就是说,编码器计算包括参考块的下边缘的CTU行:(yo+BVy+hblDck-l)/S。编码器还计算包括当前块的上边缘的CTU行:yo/S。编码器随后检查包括参考块的下边缘的CTU行是否在包括当前块的上边缘的CTU行上方。如果如此,则至少在WPP没有被启用时,参考块必然包括先前重构的样本值。
[0208]第三约束的第二条件。当(yo+BVy+hb1ck-) /S = = yo/S时,编码器检查是否(xo+BVx+wbimk-l )/S〈xo/S。也就是说,如果包括参考块的下边缘的CTU行等于包括当前块的上边缘的CTU行(同一CTU行),则编码器计算(a)包括参考块的右边缘的CTU列((χο+BVx+wb1ck-l) /S),和(b)包括当前块的左边缘的CTU列(xo/S)。编码器随后检查包括参考块的右边缘的CTU列是否在包括当前块的左边缘的CTU列的左边。如果如此,则参考块必然包括先前重构的样本值。
[0209]第三约束的第三条件。当(yo+BVy+hb1ck-l)/S = = yo/S 并且(xo+BVx+wb1ck-l)/S ==叉0/3时,编码器检查位置^+8¥\+肌1。矿1,7()+78¥+1^1。。1{-1)的2扫描次序是否小于位置(X0,yQ)的z扫描次序。也就是说,如果包括参考块的下边缘的CTU行等于包括当前块的上边缘的CTU行(同一 CTU行),并且包括参考块的右边缘的CTU列等于包括当前块的左边缘的CTU列(同一CTU列),则编码器检查参考块的右下位置是否在z扫描次序中比当前块的左上位置更早。第三条件在来自当前CU内的预测被允许的情况下应用。如果来自当前CU内的预测不被允许,则(XQ,y ο)应该是(XQj,y Cu)。
[0210]第四约束。在WPP被启用时,编码器检查第四约束。对于第四约束,编码器验证(X0+BVx+wb1ck_l )/S~xo/S< = yo/S-(yo+BVy+hb1ck_l)/S。也就是说,编码器计算包括参考块的右边缘的01'11列和包括当前块的左边缘的(]1'1]列之间的差异(1()+1^+¥1)1。。1{-1)/3~?()/3。编码器还计算包括当前块的上边缘的CTU行和包括参考块的下边缘的CTU行之间的差异:yo/S-(yo+BVy+hblDck-l)/S。编码器验证(CTU列之间的)第一差异小于或等于(CTU行之间的)第二差异。如图8或图18中从当前CTU向上并向右的各CTU的锯齿形行中示出的,这验证参考块是保证在WPP被启用时可用于预测的经重构内容的一部分。在WPP被启用时对帧内LC预测的偏移值的示例约束。
[0211]本章节详述编码器在WPP被启用时可对帧内LC预测强制实施的约束的示例。对于当前行,这些约束验证由偏移值指示的候选参考行包括在当前行被编码或解码时将可用的经重构的样本值,即使在WPP被启用时。
[0212]定义当前块在相对于当前图片的左上位置的位置(XQ,yQ)处开始。当前块的宽度和高度分别为WbIMk和hbiMk。当前块是当前CU的一部分。该CTU的尺寸为S。当前行的偏移值为(offsetx,offsety)。当前块中的L行已经被处理。
[0213]编码器定义当前块的当前行的开始位置和结束位置。位置(Xcurr—line—start,ycurr—Iine—start)是当前行的开始位置,并且(Xcurr_ line_end , Ycurr_line —end)是当前行的结束位置。当水平扫描(也被称为行模式)被使用时,每一行为当前块的行:(Xc^rr —line —start,
Ycurr—line—start) — ( XO , Y0+L) JzL ( Xcurr—line—end,Ycurr—line—end ) — ( X0+Wblock_l,Y0+L)。ξ!ξ| 3? 言牛3(也被称为列模式)被使用时,每一行为当前块的列start,ycurr—line—start) — (XO+L,
YO ) _M* ( Xcurr—line—end,Ycurr_line_end ) — ( XO+L,yo+hblock—l ) o
[0214]编码器还定义预测当前行的候选参考行的开始位置和结束位置。位置
(Xref_line_start , Yref_line_start ) 考.1丁 Xf 女台七/.置 ο ?、/.置(Xref_line_ end , Yref_line_end )是参考行的结束位置。参考行可以是行(在水平扫描被使用时)或列(在垂直扫描被使用时)。无论水平扫描(行模式)还是垂直扫描(列模式)被使用:(Xref_line_start , Y r e f _ I i ne_s t ar t )=
(Xcurr—line—start, Ycurr—line—start ) + ( of f S?tx,of f S?ty ) ( Xref_line_end , yref—end ) — ( Xcurr—line—end,y curr—line—end ) + (offsetx,of f S?ty ) o
[0215]编码器验证所有以下约束被满足。对于这些约束中的一些,当前块的左上位置(xo,yo)被考虑。替换地,对于这样的约束,代替当前块的左上位置Uo,yo),当前行的开始位置(Xcurr—line—start, Y curr—line— —Start)可被检查。
[02^6] 第一约束。编码器验证位置(X0 ,yo)和位置(Xref—line—start, yref—line—start)在同一片中并在同一小块中。也就是说,编码器验证当前块的左上位置和参考行的开始位置在同一片中并在同一小块中。如果这两个位置在不同的片或不同的小块中,则第一约束不被满足。[02^7] 第二约束。编码器验证位置(XQ,yo)和位置(Xref—line—end, yref—line—end)在同一片及同一小块中。也就是说,编码器验证当前块的左上位置和参考行的结束位置在同一片中且在同一小块中。如果这两个位置在不同的片或不同的小块中,则第二约束不被满足。
[0218]对于第一和第二约束,如果没有使用多个片,则被检查的两个位置必然在同一片中,并且针对片不需要检查第一和第二约束。类似地,如果没有使用多个小块,则被检查的两个位置必然在同一小块中,并且针对小块不需要检查第一和第二约束。当前行的所有位置都在单个片和单个小块中。如果第一和第二约束被满足,则参考行的所有位置也在那个片和小块中。编码器检查第一和第二约束,而不管WPP是否被启用。
[0219]第三约束。对于第三约束,编码器验证以下三个条件之一被满足。编码器检查第三约束,而不管WPP是否被启用。
[0220]第三约束的第一条件。编码器检查是否(yref—line—end/S〈yo/S。也就是说,编码器计算包括参考行的下边缘或位置的CTU行:yref—line—end/S。编码器还计算包括当前块的上边缘的CTU行:yo/S。编码器随后检查包括参考行的下边缘或位置的CTU行是否在包括当前块的上边缘的CTU行上方。如果如此,至少在WPP没有被启用时,参考行必然包括先前重构的样本值。
[0221]第三约束的第二条件。当yref—line—end/S==yQ/S时,编码器检查是否Xref—line—end/S〈xo/S。也就是说,如果包括参考行的下边缘或位置的CTU行等于包括当前块的上边缘的CTU行(同一 CTU行),则编码器计算(a)包括参考行的右边缘或位置的CTU列(Xrrf—line3—d/S),和(b)包括当前块的左边缘的CTU列(xo/S)。编码器随后检查包括参考行的右边缘或位置的CTU列是否在包括当前块的左边缘的CTU列的左边。如果如此,则参考行必然包括先前重构的样本值。
[0222]第三约束的第三条件。当yref—line—end/S= = yt)/S 且 Xref—line—end/S = =X()/S 时,编码器检查位置(Xrrf_ _line—end , yref—line—end )的 Z:扫描次序TE 否小于彳兄置.( Xcurr—line—start,ycurr—line—start)
的z扫描次序。也就是说,如果包括参考行的下边缘或位置的CTU行等于包括当前块的上边缘的CTU行(同一CTU行),并且包括参考行的右边缘或位置的CTU列等于包括当前块的左边缘的CTU列(同一 CTU列),则编码器检查参考行的结束位置在Z扫描次序中是否早于当前行的开始位置。第三条件在来自当前CU内的预测被允许的情况下应用。如果来自当前CU内的预测不被允许,则(Xojrr—Iine_ start, Ycurr_line —51;虹1;)应该是(叉。,70)0
[0223]第四约束。当WPP被启用时,编码器检查第四约束。对于第四约束,编码器验证Xref—line—end/S-X()/S〈 = y()/S-yref—line—end/S。也就是说,编码器计算包括参考行的右边缘或位置的CTU列和包括当前块的左边缘的CTU列之间的差异:Xref—line—end/S-XQ/S。编码器还计算包括当前块的上边缘的CTU行和包括参考行的下边缘或位置的CTU行之间的差异:yo/s-yref—line—end/s。编码器验证(各CTU列之间的)第一差异小于或等于(各CTU行之间的)第二差升。
[0224]在WPP被启用时对帧内SC预测的偏移值的示例约束。
[0225]本章节详述了编码器在WPP被启用时可对帧内SC预测强制实施的约束的示例。对于当前串,约束验证由偏移值和长度值指示的候选参考串包括在当前串被编码或解码时将可用的经重构的样本值,即使在WPP被启用时。
[0226]定义。当前块在相对于当前图片的左上位置的位置(XQ,yQ)处开始。当前块的宽度和高度分别为WbIMk和hbiMk。当前块是当前CU的一部分。该CTU的尺寸为S。当前串的偏移(offset)值为(offsetx,offsety),并且当前串的串(string)长度(length)值为
Iengthstring。当前块的K个像素已使用帧内SC预测被处理。
?0227] 编码器定义当前块的当前串(current string)的开始(start)位置和结束(end)
位置。位置(xcurr_ string_start , Ycurr_string_start )是 ξ!ξ| 肖U 串的开始置,并且(Xcurr—string—end,
ycurr—string—end)是当前串的结束位置。编码器还定义包含当前串的开始位置、当前串的结束位置以及当前串的开始和结束位置之间的任何位置(处于串扫描次序)的边界矩形。边界矩开? 的ilL 置 (Xcurr—rect—TL,ycurr—rect—TL)。3? 界.矩? 开? 的右' 下' ilL 置 ( Xcurr—rect—BR,
yc^r—rmt—BR)。编码器将(包括参考串的)参考矩形定义为移位了偏移值的边界矩形。参考矩形的左上位置为(Xref_ rect—TL , yref—rect —TL )。边界矩形的右下位置为(Xref_ _rect—BR,yref—rect—BR) ο
[0228]在水平串扫描被使用时(即在当前块的某行中从左到右,并从顶行到底行),开始
?、/.置 ( Xcurr—s tr ing—s tart,y curr—str ing—start ) — (X0 + K%Wblock,y〇 + K/wblock)。?吉 ?、/.置 JFt:(Xcurr—string—end,ycurr—string—end ) — ( XO+ ( K+1 GIlgthstring-1 ) % Wblock,yo+ ( K+1 ?ngthstring-1 ) /
WblodO。在当前串的开始位置和结束位置在当前块的同一行中时,(Xc:Urr_ rect TL , Ycurr_rect_TL)
—(Xcurr_s tr ing_s tart,Ycurr_s tr ing_s tart ) -S* ( Xcurr_rect_BR,Y curr_rect_BR ) — ( Xcurr_s tr ing_end,ycurr—string—end )o 否贝丨J,边界矩^^的左上vIiL置为(Xcurr—rect—TL,ycurr—rect—TL ) 一 ( XO , y0+K/wblock ),并且边界矩^^的右下 vIiL 置为(Xcurr—rect—BR,Y curr—rect—BR ) — ( X0+Wblock_l ) ? y 0+ ( K+1 GIlgths tr ing-1 ) /wblock ) o
[0229]在垂直扫描被使用时(在当前块的列中从上到下,并从左列到右列),开始位置为:
(Xcurr—string—start,ycurr—string—start ) — ( X0+K/hblock,y0+K % hblock ) o 会吉: ( Xcurr—string—end,ycurr—string—end ) — ( XO+ (K+1 GIlgthstring-1 ) /hblock,y0+ ( K+1 GIlgthstring-1 ) % hblock)。当目Li 串的开始位置和结束位置在当前块的同一列中时,(X.!.—mt—TL,y。.—iwt—TL) = (xcurr_ string—start j
ycurr—string—start) ^4*-S* ( Xcurr—rect—BR,Ycurr—rect—BR ) — ( Xcurr_string_end,ycurr—string—end )。否则,边界矩形的左上位置为(XCUrr—rect—TL,ycurr_rect_TL ) = ( X0+K/hblock,yt)),并且边界矩形的右下位置为
(Xcurr—rect—BR,Y curr—rect—BR) — ( XO+ (K+l eilgthstring_l ) /hblock),? 0+hblock_l ) ο
[0230]不论水平扫描还是垂直扫描被使用,参考矩形的左上位置都为(Xref—rect—TL,
Y ref—rect—TL ) — ( Xcurr—rect—TL,Y curr—rect—TL ) + ( OffSG tx , OffSG ty ),且参考'矩开? 的右' 下 ?、/.置者 R(Xref—rect—BR,yref—rect—BR ) — ( Xcurr—rect—BR,Y curr—rect—BR ) + ( of fSGtx,OffSGty )。考.串的$台置 ( Xref—string—start, Y ref—string—start) — ( Xcurr—string—start, Y curr—string—start ) + (offsetx,Offsety) o
[0231]编码器验证所有下述约束被满足。对于这些约束中的一些,当前块的左上位置(xo,yo)被考虑。替换地,对于这样的约束,代替当前块的左上位置(XQ,yo),可检查当前串的开始位置或边界矩形的左上位置。
[0232]第一约束。编码器验证位置(XQ,yo)和位置(Xref—rect—TL,yref—rect—TL)在同一片中并在同一小块中。也就是说,编码器验证当前块的左上位置和参考块的左上位置在同一片中并在同一小块中。如果这两个位置在不同的片或不同的小块中,则第一约束不被满足。
[0233]第二约束。编码器验证位置(XQ,yo)和位置(Xref—rect—BR ,yref—rect—BR)在同一片中并在同一小块中。也就是说,编码器验证当前块的左上位置和参考矩形的右下位置在同一片中并在同一小块中。如果这两个位置在不同的片或不同的小块中,则第二约束不被满足。
[0234]对于第一和第二约束,如果没有使用多个片,则被检查的两个位置必然在同一片中,并且针对片不需要被检查第一和第二约束。类似地,如果没有使用多个小块,则被检查的两个位置必然在同一小块中,并且针对小块不需要检查第一和第二约束。当前串的所有位置是在单个片和单个小块中。如果第一和第二约束被满足,则参考矩形(并且此处为参考串)的所有位置也在那个片和小块中。编码器检查第一和第二约束,而不管WPP是否被启用。
[0235]第三约束。对于第三约束,编码器验证以下三个条件之一被满足。编码器检查第三约束,而不管WPP是否被启用。
[0236]第三约束的第一条件。编码器检查是否yref—rec;t—BR/S〈yQ/S。也就是说,编码器计算包括参考矩形的下边缘的CTU行:yref—rect—BR/S。编码器还计算包括当前块的上边缘的CTU行:yo/s。编码器随后检查包括参考矩形的下边缘的CTU行是否在包括当前块的上边缘的CTU行上方。如果如此,则至少在WPP没有被启用时,参考矩形必然包括先前重构的样本值。
[0237]第三约束的第二条件。当yref—rect—BR/S==yo/S时,编码器检查是否xref—rect—BR/S〈xo/S。也就是说,如果包括参考矩形的下边缘的CTU行等于包括当前块的上边缘的CTU行(同一 CTU行),则编码器计算(a)包括参考矩形的右边缘的CTU列(Xrrf—mt—BR/S),和(b)包括当前块的左边缘的CTU列(xo/S)。编码器随后检查包括参考矩形的右边缘的CTU列是否在包括当前块的左边缘的CTU列的左边。如果如此,则参考矩形必然包括先前重构的样本值。
[0238]第三约束的第三条件。当yref—rect—Br/S==yo/S and Xref—rect—Br/S= =Xo/S时,编码器检查是否位置(Xrrf—Mt—BR,yrrf—Mt—BR)的Z扫描次序小于位置(X0,yQ)的Z扫描次序。也就是说,如果包括参考矩形的下边缘的CTU行等于包括当前块的上边缘的CTU行(同一CTU行),且包括参考矩形的右边缘的CTU列等于包括当前块的左边缘的CTU列(同一 CTU列),则编码器检查参考矩形的右下位置在Z扫描次序中是否早于当前块的左上位置。
[0239]第三约束的第四条件。如果来自当前CU内的预测被允许,则当yref—string—start==y0时,编码器检查Xref—string—Start〈XQ。也就是说,如果来自当前⑶内的预测被允许,则第三约束可在当前串和参考串在同一行开始,并且参考串在当前串的左边开始的情况下被满足。
[0240]第四约束。在WPP被启用时,编码器检查第四约束。对于第四约束,编码器验证Xref_rect_BR/S-Xo/S< = yo/S-yref_rect_BR/S ο也就是说,编码器计算包括参考矩形的右边缘或位置的CTU列和包括当前块的左边缘的CTU列之间的差异:Xref—rect—BR/S-XQ/S。编码器还计算包括当前块的上边缘的CTU行和包括参考矩形的下边缘的CTU行之间的差异:yo/S-yrrf—racrt—BR/
S。编码器验证(CTU列之间的)第一差异小于或等于(CTU行之间的)第二差异。
[0241 ] 第五约束。对于第五约束,编码器验证K+lengthstring〈=wb1ck*hb1c;k。也就是说,考虑已经被处理的位置的计数,编码器检查当前块包括当前串的足够位置。
[0242]F.替换和变型
[0243]在本文中描述的许多示例中,在分开的组件或过程中实现帧内复制预测和运动补偿,并且在分开的组件或过程中实现偏移估计和运动估计。替换地,帧内复制预测可被实现为运动补偿的特定情况,而偏移估计可被实现为运动估计的特定情况,对于这些情况,当前图片被用作参考图片。在这样的实现中,偏移值可以被信号化为MV值,但用于(在当前图片内)的帧内复制预测,而非图片间预测。当以下术语在本文中被使用时,“帧内复制预测”指示在当前图片内的预测,无论该预测是使用图片内预测模块、运动补偿模块、或某种其它模块提供的。类似地,可使用MV值或使用不同类型的参数或语法元素来表示BV值或其他偏移值,并且可使用图片内估计模块、运动补偿模块、或某种其它模块来提供偏移估计。
[0244]鉴于可应用所公开的本发明的原理的许多可能的实施例,应当认识到,所示实施例仅是本发明的优选示例,并且不应认为是限制本发明的范围。相反,本发明的范围由后续的权利要求来界定。我们要求作为我们的发明保护落入这些权利要求范围和精神内的所有内容。
【主权项】
1.一种在计算系统中的方法,包括: 在波前并行处理(“WPP”)被启用的情况下对图片进行编码,其中所述编码产生经编码的数据,包括对于调色板编码模式,使用来自所述图片的先前WPP行中的先前单元的先前调色板数据来预测所述图片的当前WPP行中的初始单元的调色板;以及将所述经编码的数据作为比特流的一部分来输出。2.一种在计算系统中的方法,包括: 将经编码的数据作为比特流的一部分来接收;以及 在波前并行处理(“WPP”)被启用的情况下对所述经编码的数据进行解码,其中所述解码重构图片,包括对于调色板解码模式,使用来自所述图片的先前WPP行中的先前单元的先前调色板数据来预测所述图片的当前WPP行中的初始单元的调色板。3.如权利要求1或2所述的方法,其特征在于: 所述当前WPP行中的初始单元的调色板表示在所述当前WPP行中的初始单元中使用的至少一些色彩; 来自所述先前WPP行中的所述先前单元的所述先前调色板数据(a)表示在所述先前WPP行中的先前单元的调色板中使用的至少一些色彩或者(b)被所述先前WPP行中的先前单元继承; 所述先前WPP行紧接在所述当前WPP行上方;以及 所述先前WPP行中的先前单元在所述当前WPP行中的初始单元上方或在所述当前WPP行中的初始单元的右上方。4.如权利要求1或2所述的方法,其特征在于,进一步包括: 使用来自所述图片的所述当前WPP行中的初始单元的调色板的调色板数据来预测所述图片的所述当前WPP行中的后续单元的调色板。5.如权利要求1或2所述的方法,其特征在于,所述当前WPP行和所述先前WPP行是编码树单元行,并且其中所述当前WPP行中的初始单元以及所述先前WPP行中的先前单元是编码单元。6.如权利要求1或2所述的方法,其特征在于,来自所述先前WPP行中的先前单元的所述先前调色板数据包括针对C个色彩中的每一者的一个或多个色彩分量值,并且其中C通过来自所述先前WPP中的先前单元的所述先前调色板数据的阈值计数来限制。7.如权利要求1或2所述的方法,其特征在于,所述预测包括以下中的一者或多者: 确定是否将来自所述先前WPP行中的先前单元的所述先前调色板数据作为所述当前WPP行中的初始单元的调色板来重新使用;以及 从所述先前WPP行中的先前单元的所述先前调色板数据中选择一个或多个色彩以包括在所述当前WPP行中的初始单元的调色板中。8.一种在计算系统中的方法,包括: 在波前并行处理(“WPP”)被启用的情况下对图片进行编码,其中所述编码产生经编码的数据,包括对于帧内复制模式,强制实施归因于所述WPP的一个或多个约束;以及将所述经编码的数据作为比特流的一部分来输出。9.一种在计算系统中的方法,包括: 将经编码的数据作为比特流的一部分来接收,其中对于帧内复制模式,所述经编码的数据满足归因于波前并行处理(“WPP”)的一个或多个约束;以及 在所述WPP被启用的情况下对所述经编码的数据进行解码,其中所述解码重构图片。10.如权利要求8或9所述的方法,其特征在于,归因于所述WPP的一个或多个约束包括从参考区域到当前区域的水平位移值小于或等于从所述当前区域到所述参考区域的垂直位移值。11.如权利要求10所述的方法,其特征在于: 所述水平位移值测量从包括所述参考区域的右边缘的WPP列到包括所述当前区域的左边缘的WPP列之间的差异;以及 所述垂直位移值测量从包括所述当前区域的上边缘的WPP行到包括所述参考区域的下边缘的WPP行之间的差异。12.如权利要求11所述的方法,其特征在于,所述WPP列中的每一者都是一列编码树单元(“CTU” ),并且所述WPP行中的每一者都是一行CTU。13.如权利要求10所述的方法,其特征在于,对于所述帧内复制模式,其他约束包括: (1)所述当前区域的左上位置以及所述参考区域的左上位置在合适的情况下在同一片中并在合适的情况下在同一小块中; (2)所述当前区域的左上位置和所述参考区域的右下位置在合适的情况下在同一片中并在合适的情况下在同一小块中;以及 (3)以下三个条件之一被满足: (a)包括所述参考区域的下边缘的编码树单元(“CTU”)行在包括所述当前区域的上边缘的CTU行上方; (b)如果包括所述参考区域的下边缘的CTU行等于包括所述当前区域的上边缘的CTU行,则包括所述参考区域的右边缘的CTU列在包括所述当前区域的左边缘的CTU列的左边;以及 (C)如果包括所述参考区域的下边缘的CTU行等于包括所述当前区域的上边缘的CTU行,且如果包括所述参考区域的右边缘的CTU列等于包括所述当前区域的左边缘的CTU列,则所述参考区域的右下位置在Z扫描次序中早于所述当前区域的左上位置。14.如权利要求10-13中的任一项所述的方法,其特征在于: 如果所述帧内复制模式是帧内块复制模式,则所述当前区域是当前块,并且所述参考区域是参考块; 如果所述帧内复制模式是帧内行复制模式,则所述当前区域是当前行,并且所述参考区域是参考行;以及 如果所述帧内复制模式是帧内串复制模式,则所述当前区域是包括当前串的矩形,并且所述参考区域是包括参考串的矩形。15.如权利要求14所述的方法,其特征在于,进一步包括,当所述帧内复制模式是所述帧内串复制模式时: 通过按串扫描次序确定包括所述当前串的开始位置、所述当前串的结束位置以及所述当前串的所述开始位置和所述结束位置之间的任何位置的矩形来标识包括所述当前串的矩形;以及 使用被应用于包括所述当前串的矩形的偏移值来标识包括所述参考串的矩形。16.如权利要求8或9所述的方法,其特征在于,所述帧内复制模式是帧内块复制模式,根据所述帧内块复制模式,对于所述图片中的当前块,偏移值指示到所述图片中的参考块的位移,所述参考块包括先前重构的样本值。17.如权利要求8或9所述的方法,其特征在于,所述帧内复制模式是帧内串复制模式,根据所述帧内串复制模式,对于所述图片的块中的当前串: 偏移值指示到所述图片中的参考串的位移,所述参考串包括以串扫描次序扫描的先前重构的样本值;以及 长度值指示所述当前串和所述参考串中的每一者的长度。18.如权利要求8或9所述的方法,其特征在于,所述帧内复制模式是帧内行复制模式,根据所述帧内行复制模式,对于所述图片中的块中的当前行,偏移值指示到所述图片中的参考行的位移,所述参考行包括以行扫描方向扫描的先前重构的样本值。19.一个或多个存储计算机可执行指令的计算机可读介质,所述计算机可执行指令用于使得计算设备因此被编程为执行任一前述权利要求所述的方法。20.—种被配置成执行如权利要求1-18中的任一项所述的方法的计算系统。
【文档编号】H04N19/436GK105874795SQ201480071878
【公开日】2016年8月17日
【申请日】2014年9月30日
【发明人】B·李, J·徐
【申请人】微软技术许可有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1