用于下一代视频的内容自适应熵编码的制作方法

文档序号:15523158发布日期:2018-09-25 20:10阅读:219来源:国知局

本申请要求2013年1月30日递交的美国临时申请号61/758,314且名为“下一代视频编码”的优先权,其整个内容特此并入本文。



背景技术:

视频编码器压缩视频信息,以便能够通过给定的带宽发送更多信息。压缩的信号然后可以传输至具有解码器的接收器,解码器在显示之前将信号解码或者解压。

高效视频编码(HEVC)是正在由视频编码联合协作小组(JCT-VC)开发的、最新的视频压缩标准,该小组是由ISO/IEC运动图像专家组(MPEG)和ITU-T视频编码专家组(VCEG)形成的。HEVC是响应于之前的H.264/AVC(高级视频编码)标准没有提供足够的压缩以发展更高分辨率的视频应用而开发的。类似于之前的视频编码标准,HEVC包含基本功能模块,诸如帧内/帧间预测、转换、量化、环路内滤波、以及熵编码。

目前的HEVC标准可以尝试改善H.264/AVC标准的限制,诸如对于允许的预测分区和编码分区的有限的选择、有限的允许的多个参考和预测产生、有限的转换块尺寸和实际的转换、用于减小编码效应(artifact)的有限机制、以及低效的熵编码技术。然而,目前的HEVC标准可以使用迭代法来解决这样的问题。

例如,随着要压缩的视频的不断增加的分辨率以及高视频质量的期望,使用现有视频编码标准(诸如H.264或甚至诸如H.265/HEVC的演进标准)来编码所要求的对应比特率/带宽相对高。上述的标准使用传统方法的展开形式来隐含处理不充分压缩/质量问题,但通常结果是有限的。

在下一代视频(NGV)编解码器项目的背景内开发的本描述处理了以下一般问题:设计令可实现的压缩效率最大化并对于在设备上实现保持足够实用的高级视频编解码器。例如,随着视频的不断增加的分辨率以及由于好显示器的可用性而导致的对高视频质量的期望,使用现有视频编码标准(诸如更早的MPEG标准、甚至更近的H.264/AVC标准)所要求的对应比特率/带宽相对高。H.264/AVC不被认为对于发展更高分辨率的视频应用提供足够高的压缩。

附图说明

本文描述的材料在附图中是以示例的方式,而非以限制的方式示出。为了说明的简洁和清楚,在图中示出的要素不一定是成比例绘出的。例如,为了清楚,一些要素的尺寸可以相对于其他要素夸大。此外,认为适当时,附图标记在附图中重复,以表明对应的或类似的要素。在图中:

图1是示例下一代视频编码器的示意图;

图2是示例下一代视频解码器的示意图;

图3(a)是示例下一代视频编码器和子系统的示意图;

图3(b)是示例下一代视频解码器和子系统的示意图;

图4是示例熵编码器模块的示意图;

图5是示例熵解码器模块的示意图;

图6是示例熵编码器模块的示意图;

图7是示例熵解码器模块的示意图;

图8是示出示例处理的流程图;

图9示出示例比特流;

图10是示出示例处理的流程图;

图11是操作中的示例视频编码系统和视频编码处理的示意图;

图11是示例视频编码系统的示意图;

图12是示出示例编码处理的流程图;

图13示出示例比特流;

图14是示出示例解码处理的流程图;

图15(A)、15(B)、以及15(C)提供操作中的示例视频编码系统和视频编码处理的示意图;

图16是示例视频编码系统的示意图;

图17是示例系统的示意图;以及

图18示出都是根据本公开的至少一些实现而布置的示例设备。

具体实施方式

现在参考附图描述一个或多个实施例或者实现。虽然讨论了特定配置和布置,但应该理解的是,这仅是出于示例性目的。相关领域的技术人员将会认识到可以采用其他配置和布置,而不脱离描述的精神和范围。对于相关领域的技术人员明显的是,本文描述的技术和/或布置还可以在除本文描述外的各种其他系统和应用中采用。

虽然下面的描述记载了可以表现在架构(例如诸如片上系统(SoC)架构)中的各种实现,但本文描述的技术和/或布置的实现不限于特定架构和/或计算系统,并可以由用于类似目的的任何架构和/或计算系统实现。例如,采用例如多个集成电路(IC)芯片和/或封装的各种架构、和/或各种计算设备和/或消费者电子(CE)设备(诸如机顶盒、智能电话等)可以实现本文描述的技术和/或布置。此外,虽然下面的描述可能记载大量具体细节(诸如逻辑实现、系统部件的类型和相互关系、逻辑分段/集成选择等),但要求保护的主题可以付诸实践而没有这样的具体细节。在其他实例中,一些材料(诸如例如控制构造和全软件指令序列)可能不详细示出,以不模糊本文公开的材料。

本文公开的材料可以以硬件、固件、软件、或者其任何组合实现。本文公开的材料还可以实现为存储在机器可读介质的指令,该指令可以由一个或多个处理器读出并执行。机器可读介质可以包含用于以由机器(例如计算设备)可读的形式存储或者传输信息的任何介质和/或机构。例如机器可读介质可以包含:只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光学存储介质;闪存设备;电、光学、声学或者其他形式的传播的信号(例如载波、红外线信号、数字信号等)、以及其他。

说明书中提到的“一个实现”、“实现”、“示例实现”等表明了描述的实现可以包含特定的特征、构造、或者特性,但是每个实施例可能不一定包含该特定的特征、构造、或者特性。此外,该词组不一定是指相同的实现。此外,在结合实施例描述了特定的特征、构造、或者特性时,认为结合其他实现来运用该特征、构造、或者特性是在本领域的技术人员知识范围内的,无论本文是否明确描述。

下面描述与用于视频系统的内容自适应熵编码相关的系统、装置、物品、以及方法。

下面描述下一代视频(NGV)系统、装置、物品、以及方法。NGV视频编码在视频编码处理中可以合并大量基于内容的自适应性,来实现更高压缩。如上所述,H.264/AVC标准可能具有各种限制以及不断的尝试来改善该标准,诸如例如HEVC标准可以使用迭代法来处理这样的限制。本文将描述包含编码器和解码器的NGV系统。

例如,H.264标准可以支持2个模式的熵编码。在第一模式、自适应VLC(可变长度编码)中,转换系数可以使用上下文自适应VLC(CAVLC)来编码,并且所有其他语法元素(例如开销数据、模式、运动矢量等)可以使用指数哥伦布编码来编码。CAVLC编码的数据和指数哥伦布编码的数据可以被复用以产生编码的比特流。在第二模式中,所有数据可以使用上下文自适应二进制算术编码(CABAC)来编码。对应的解码器还可以以2个模式操作,在第一模式中分解并解码复用的比特流,并在第二模式中解码CABAC编码的比特流。这样的技术可能具有限制。例如,CABAC编码可能有效,但可能比较复杂,使得更高分辨率上下文中的吞吐量可能受限。此外,通过将数据类型组合在一起用于编码,熵编码的效率和复杂性可能没被优化。

在一些视频编解码器实现中,各种数据(诸如开销数据、模式、运动矢量、和/或转换系数)的熵编码和解码可以是编码效率和系统复杂性的显著原因之一。在一些示例中,本文讨论的技术可以平衡编码效率和系统复杂性。

在一些示例中,在熵编码器模块处可以接收第一视频数据和第二视频数据用于熵编码。第一视频数据和第二视频数据可以是不同的数据类型(例如头部数据、变形参数、合成参数、或者全局映射数据或者运动矢量或者帧内预测分区数据等,如本文进一步讨论的那样)。可以基于关联于第一视频数据的参数(诸如例如第一视频数据的压缩的比特的数量、关联于第一视频数据的预定指示符或者标志、预定阈值、或者启发式地确定的阈值等),对于第一视频数据确定第一熵编码技术。在一些示例中,第一熵编码技术可以选自以下中的一个:自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术。第一视频数据可以使用第一熵编码技术进行熵编码,并且第二视频数据可以使用第一熵编码技术进行熵编码。在一些示例中,可以基于如相对于第一视频数据讨论的参数,对于第二视频数据确定第二熵编码技术。在一些示例中,第二熵编码技术可以从以下选项确定:该选项包含自适应符号运行可变长度编码技术、自适应代理可变长度编码技术、自适应矢量可变长度编码、自适应1维可变长度编码技术、自适应2维可变长度编码技术、或者本文讨论的其他技术。在一些示例中,第二熵编码技术可以对于第二视频数据的数据类型预先确定。将第一视频数据和第二视频数据熵编码可以产生第一压缩的视频数据和第二压缩的视频数据。第一和第二压缩的视频数据可以组装来产生输出比特流。

输出比特流可以从编码器传输到解码器,其可以将比特流分解来确定第一和第二压缩的视频数据。压缩的视频数据可以被熵解码来产生熵解码的视频数据,其可以进一步被解码来产生视频帧。视频帧可以传输至显示器设备来呈现给用户。

在一些示例中,可以在熵编码器模块处接收附加的视频数据类型用于熵编码。例如,第三、第四、第五、第六、第七、或更多的视频数据可以被熵编码来产生相关联的压缩的视频数据,其可以组装在输出比特流中,被传输,并接下来经由解码器被熵解码。本文进一步讨论各种数据类型和编码/解码技术选项和实现。

本文使用的术语“编码器(coder)”可以指编码器(encoder)和/或解码器(decoder)。类似地,本文使用的术语“编码(coding)”可以指经由编码器执行视频编码(encoding)和/或经由解码器执行视频解码(decoding)。例如,视频编码器和视频解码器可以都是能够编码视频数据的编码器的示例。此外,本文使用的术语“编解码器”可以指任何处理、程序或者一组操作,诸如例如可以实现编码器和/或解码器的软件、固件、和/或硬件的任何组合。此外,本文使用的词组“视频数据”可以指关联于视频编码的任何类型的数据,诸如例如视频帧、图像数据、编码的比特流数据等。

图1是跟据本公开的至少一些实现布置的示例下一代视频编码器100的示意图。如图所示,编码器100可以接收输入视频101。输入视频101可以包含用于编码的任何适当的输入视频,诸如例如视频序列的输入帧。如图所示,输入视频101可以经由内容预分析器模块102被接收。内容预分析器模块102可以被配置为执行输入视频101的视频帧的内容的分析,来确定用于改善视频编码效率和速度性能的各种类型的参数。例如,内容预分析器模块102可以确定水平和垂直梯度信息(例如Rs、Cs)、方差、每画面的空间复杂性、每画面的时间复杂性、场景改变检测、运动范围估计、增益检测、预测距离估计、对象估计的数量、区域边界检测、空间复杂性映射计算、焦点估计、胶片颗粒估计等。由内容预分析器模块102产生的参数可以由编码器100(例如经由编码控制器103)使用和/或量化,并传达至解码器。如图所示,视频帧和/或其他数据可以从内容预分析器模块102传输至自适应画面组织器模块104,其可以确定每个视频帧的画面类型(例如I-、P-、或者F/B-画面),并根据需要将视频帧重新排序。在一些示例中,自适应画面组织器模块104可以包含配置为产生帧部分的帧部分产生器。在一些示例中,内容预分析器模块102和自适应画面组织器模块104可以一起被视为编码器100的预分析器子系统。

如图所示,视频帧和/或其他数据可以从自适应画面组织器模块104传输至预测分区产生器模块105。在一些示例中,预测分区产生器模块105可以将帧或者画面分割为图块或者超片段等。在一些示例中,(例如在模块104和105之间的)附加的模块可以被提供用来将帧或者画面分割为图块或者超片段。预测分区产生器模块105可以将每个图块或者超片段分割为潜在的预测分段或者分区。在一些示例中,可以使用如下分段技术来确定潜在的预测分段:诸如例如k-d树分段技术、bi-tree分段技术等,其可以基于单独视频帧的画面类型(例如I-、P-、或者F/B-画面)、被分区的帧部分的特性等来确定。在一些示例中,确定的潜在的预测分段可以是对预测(例如帧间或者帧内预测)的分区,并可以描述为预测分区或者预测块等。

在一些示例中,选择的预测分段(例如预测分区)可以根据潜在的预测分段确定。例如,选择的预测分段可以基于对每个潜在的预测分段确定使用特性的预测和基于运动的多参考预测或者帧内预测,并且确定预测参数。对于每个潜在的预测分段,可以通过确定原始的像素与预测像素的差异来确定潜在的预测误差,并且选择的预测分段可以是具有最小预测误差的潜在的预测分段。在其他示例中,可以基于包含加权评分的率失真优化来确定选择的预测分段,该加权评分基于用于对分段进行编码的比特数和关联于预测分段的预测误差。

如图所示,在差异确定器106处的选择的预测分段(例如当前帧的预测分区)的原始像素可以与预测的分区(例如,基于参考帧的当前帧的预测分区的预测和其他预测数据,诸如帧间或者帧内预测数据)的原始像素确定差异。确定预测的分区将在下文进一步描述,并且可以包含图1所示的解码循环。来自差异确定的任何剩余或者剩余数据(例如分区预测误差数据)可以传输至编码分区产生器模块107。在一些示例中,诸如对于任何画面类型(I-、F/B-或者P-画面)中的预测分区的帧内预测,编码分区产生器模块107可以经由开关107a和107b被绕开。在这样的示例中,仅单级的分段可以被执行。这样的分段可以描述为预测分段(如描述的那样)或者编码分段或者两者。在各种示例中,这样的分段可以经由预测分区产生器模块105(如讨论的那样)执行,或者如本文进一步讨论的那样,这样的分段可以经由(经由编码分区产生器模块107实现的)k-d树帧内预测/编码分区器模块或者bi-tree帧内预测/编码分区器模块执行。

在一些示例中,如果有的话,分区预测误差数据可能不足够显著来授权编码。在可能期望将分区预测误差数据编码并且分区预测误差数据与帧间预测相关联等的其他示例中,编码分区产生器模块107可以确定预测分区的编码分区。在一些示例中,可能不需要编码分区产生器模块107,因为分区可以没有编码分段而被编码(例如如图所示,经由(经由开关107a和107b可用的)绕开路径)。无论是否有编码分段,在剩余或者剩余数据要求编码时,分区预测误差数据(其可以接下来描述为任何事件中的编码分区)可以传输至自适应转换模块108。在一些示例中,预测分区产生器模块105和编码分区产生器模块107可以一起被视为编码器100的分区器子系统。在各种示例中,编码分区产生器模块107可以对分区预测误差数据、原始的像素数据、剩余数据、或者小波数据进行操作。

编码分区产生器模块107可以使用bi-tree和/或k-d树分段技术等,产生例如分区预测误差数据的潜在的编码分段(例如编码分区)。在一些示例中,潜在的编码分区可以经由自适应转换模块108使用具有各种块尺寸的自适应或者固定转换来转换,并且选择的编码分段和选择的转换(例如自适应或固定的)可以基于率失真优化或者其他基础来确定。在一些示例中,选择的编码分段和/或选择的转换可以基于以编码分区尺寸等为基础的预定的选择方法来确定。

例如,自适应转换模块108可以包含用于执行参数转换的第一部分或者部件,以允许小至中尺寸块的本地最佳转换编码;以及第二部分或者部件用于使用来自各种转换(包含参数转换)的固定转换(诸如离散余弦转换(DCT)或者基于画面的转换)或者本文进一步讨论的任何其他配置,执行全局稳定、低开销转换编码。在一些示例中,为了本地最佳转换编码,可以执行参数哈尔转换(PHT),如本文进一步讨论的那样。在一些示例中,转换可以对约4x4像素与64x64像素之间的矩形尺寸的2D块执行,而实际的尺寸根据多个因子(诸如转换的数据是否是亮度或者色度、或者帧间或者帧内、或者使用的确定的转换是否是PHT或者DCT等)。

如图所示,作为结果的转换系数可以传输至自适应量化模块109。自适应量化模块109可以将作为结果的转换系数量化。此外,根据需要,关联于参数转换的任何数据可以传输至自适应量化模块109(如果期望量化)或者自适应熵编码器模块110。另外如图1所示,量化的系数可以被扫描并传输至自适应熵编码器模块110。自适应熵编码器模块110可以将量化的系数熵编码,并将其包含在输出比特流111中。在一些示例中,自适应转换模块108和自适应量化模块109可以一起被视为编码器100的转换编码器子系统。

另外如图1所示,编码器100包含本地解码循环。本地解码循环可以始于自适应逆量化模块112。自适应逆量化模块112可以被配置为执行自适应量化模块109的相反操作,使得可以执行逆扫描并且量化的系数可以去缩放(de-scaled)来确定转换系数。这样的自适应量化操作例如可能是有损的。如图所示,转换系数可以传输至自适应逆转换模块113。自适应逆转换模块113可以如通过自适应转换模块108执行的那样执行逆转换,例如来产生关联于编码分区的剩余或者剩余值或者分区预测误差数据(或者原始数据或者小波数据,如描述的那样)。在一些示例中,自适应逆量化模块112和自适应逆转换模块113可以一起被视为编码器100的转换解码器子系统。

如图所示,分区预测误差数据(等)可以传输至可选的编码分区组装器114。编码分区组装器114可以根据需要,将编码分区组装为解码的预测分区(如图所示,在一些示例中,编码分区组装器114可以经由开关114a和114b被跳过,使得解码的预测分区可以在自适应逆转换模块113处产生),以产生预测误差数据的预测分区或者解码的剩余预测分区等。

如图所示,解码的剩余预测分区可以在增加器115处增加至预测的分区(例如预测像素数据),以产生重建的预测分区。重建的预测分区可以传输至预测分区组装器116。预测分区组装器116可以组装重建的预测分区以产生重建的图块或者超片段。在一些示例中,编码分区组装器模块114和预测分区组装器模块116可以一起被视为编码器100的去分区器(un-partitioner)子系统。

重建的图块或者超片段可以传输至块效应(blockiness)分析器和去块(deblock)滤波模块117。块效应分析器和去块滤波模块117可以将重建的图块或者超片段(或者图块的预测分区或者超片段)去块并抖动。产生的去块和抖动滤波器参数可以用于当前滤波器操作和/或编码在输出比特流111中,例如供解码器使用。块效应分析器和去块滤波模块117的输出可以传输至质量分析器和质量恢复滤波模块118。质量分析器和质量恢复滤波模块118可以确定QR滤波参数(例如对于QR分解),并使用确定的参数用来滤波。QR滤波参数还可以被编码在输出比特流111中供解码器使用。如图所示,质量分析器和质量恢复滤波模块118的输出可以传输至解码的画面缓冲器119。在一些示例中,质量分析器和质量恢复滤波模块118的输出可以是最终重建的帧,其可以用于针对编码其他帧的预测(例如最终重建的帧可以是参考帧等)。在一些示例中,块效应分析器和去块滤波模块117以及质量分析器和质量恢复滤波模块118可以一起被视为编码器100的滤波子系统。

在编码器100中,预测操作可以包含帧间和/或帧内预测。如图1(a)所示,帧间预测可以由一个或多个模块执行,模块包含变形分析器和变形的画面产生模块120、合成分析器和产生模块121、以及特性和运动滤波预测器模块123。变形分析器和变形的画面产生模块120可以分析当前画面来确定针对于以下的参数:相对于其可能要编码的参考帧,增益中的改变、支配性运动中的改变、注册中的改变、以及模糊中的改变。确定的变形参数可以被量化/去量化并(例如由变形分析器和变形的画面产生模块120)使用以产生变形的参考帧,其可以由运动估计器模块122使用,用来计算对于当前帧的有效运动(和特性)补偿的预测的运动矢量。合成分析器和产生模块121可以对于运动产生超分辨率(SR)画面和投影的插值(PI)画面等,用于确定这些帧中的有效运动补偿的预测的运动矢量。

运动估计器模块122可以基于变形的参考帧和/或超分辨率(SR)画面和投影的插值(PI)画面以及当前帧,产生运动矢量数据。在一些示例中,运动估计器模块122可以被视为帧间预测模块。例如,运动矢量数据可以用于帧间预测。如果应用了帧间预测,那么特性和运动补偿滤波预测器模块123可以应用运动补偿作为本地解码循环的部分,如讨论的那样。

帧内预测可以由帧内方向预测分析器和预测产生模块124执行。帧内方向预测分析器和预测产生模块124可以被配置为执行空间方向预测,并可以使用解码的相邻分区。在一些示例中,方向的确定和预测的产生这两者可以由帧内方向预测分析器和预测产生模块124执行。在一些示例中,帧内方向预测分析器和预测产生模块124可以被视为帧内预测模块。

如图1所示,预测模式和参考类型分析器模块125可以允许对于图块(或者超片段)的每个预测分区,从“跳过”、“自动”、“帧间”、“分离”、“多帧”、以及“帧内”之中选择预测模式,其全部可以应用到P-和F/B-画面。除了预测模式外,还允许选择能够根据“帧间”或者“多帧”模式以及对于P-和F/B-画面而不同的参考类型。在预测模式和参考类型分析器模块125的输出处的预测信号可以由预测分析器和预测融合滤波模块126滤波。预测分析器和预测融合滤波模块126可以确定参数(例如,滤波系数、频率、开销)供滤波使用,并可以执行滤波。在一些示例中,将预测信号滤波可以融合代表不同模式(例如帧内、帧间、多帧、分离、跳过、以及自动)的不同类型的信号。在一些示例中,帧内预测信号可以不同于所有其他类型的帧间预测信号,使得适当的滤波可以大大增强编码效率。在一些示例中,滤波参数可以在输出比特流111中编码供解码器使用。滤波的预测信号可以将第二输入(例如预测分区)提供至差异确定器106,如上所述,其可以对于之前讨论的编码确定预测差异信号(例如分区预测误差)。此外,相同的滤波的预测信号可以将第二输入提供至增加器115,如上所述。如上所述,输出比特流111可以提供有效编码的比特流供解码器使用来呈现视频。

图1示出关联于视频编码器100的操作的示例控制信号,其中下面的缩写可以代表相关联的信息:

scnchg 场景改变信息

spcpx 空间复杂性信息

tpcpx 时间复杂性信息

pdist 时间预测距离信息

pap 预分析参数(对于除了scnchg, spcpx, tpcpx, pdist外的所有其

他预分析参数的占位符)

ptyp 画面类型信息

pgst 画面组构造信息

pptn cand. 预测分段候选

cptn cand. 编码分段候选

prp 预处理

xmtyp 转换类型信息

xmdir 转换方向信息

xmmod 转换模式

ethp 八分之一(1/8)像素运动预测

pptn 预测分段

cptn 编码分段

mot&cod cost 运动和编码成本

qs 量化器信息集(包含量化器参数(Qp)、量化器矩阵(QM)选择)

mv 运动矢量

mop 变形参数

syp 合成参数

ddi 去块和抖动信息

qri 质量恢复滤波指数/信息

api 自适应精确滤波指数/信息

fii 融合滤波指数/信息

mod 模式信息

reftyp 参考类型信息

idir 帧内预测方向

可能需要发送至解码器的各种信号和数据项目,即pgst,ptyp,prp,pptn,cptn,modes,reftype,ethp,xmtyp,xmdir,xmmod,idir,mv,qs,mop,syp,ddi,qri,api,fii,定量系数和其他的,然后可以由自适应熵编码器110进行熵编码,其可以包含共同被称为熵编码器子系统的不同的熵编码器。这些控制信号被示出为与图1中的编码器100的特定示例功能模块相关联,但其他实现可以包含编码器300的功能模块中间的控制信号的不同分布。本公开不限于此,在各种示例中,本文中控制信号的实现可以包含示出的特定示例控制信号、附加的控制信号的仅子集任务,和/或不同于示出的布置。

图2是跟据本公开的至少一些实现布置的示例下一代视频解码器200的示意图。如图所示,解码器200可以接收输入比特流201。在一些示例中,输入比特流201可以经由编码器100和/或经由本文讨论的编码技术进行编码。如图所示,输入比特流201可以由自适应熵解码器模块202接收。自适应熵解码器模块202可以解码各种类型的编码的数据(例如开销、运动矢量、转换系数等)。在一些示例中,自适应熵解码器202可以使用可变长度解码技术。在一些示例中,自适应熵解码器202可以执行上述自适应熵编码器模块110的逆操作。

解码的数据可以传输至自适应逆量化模块203。自适应逆量化模块203可以被配置为将量化的系数逆扫描并去缩放,以确定转换系数。这样的自适应量化操作例如可能是有损的。在一些示例中,自适应逆量化模块203可以被配置为执行自适应量化模块109的相反操作(例如,与自适应逆量化模块112实质上相同的操作)。如图所示,转换系数(在一些示例中,用于参数转换的转换数据)可以传输至自适应逆转换模块204。自适应逆转换模块204可以对转换系数执行逆转换,以产生关联于编码分区的剩余或者剩余值或者分区预测误差数据(或者原始数据或者小波数据)。在一些示例中,自适应逆转换模块204可以被配置为执行自适应转换模块108的相反操作(例如,与自适应逆转换模块113实质上相同的操作)。在一些示例中,自适应逆转换模块204可以基于其他之前解码的数据(诸如例如解码的相邻分区)来执行逆转换。在一些示例中,自适应逆量化模块203和自适应逆转换模块204可以一起被视为解码器200的转换解码器子系统。

如图所示,剩余或者剩余值或者分区预测误差数据可以传输至编码分区组装器205。编码分区组装器205可以根据需要,将编码分区组装为解码的预测分区(如图所示,在一些示例中,编码分区组装器205可以经由开关205a和205b被跳过,使得解码的预测分区可以在自适应逆转换模块204处产生)。预测误差数据的解码的预测分区(例如,预测分区剩余)可以在增加器206处被增加至预测的分区(例如预测像素数据),以产生重建的预测分区。重建的预测分区可以传输至预测分区组装器207。预测分区组装器207可以组装重建的预测分区以产生重建的图块或者超片段。在一些示例中,编码分区组装器模块205和预测分区组装器模块207可以一起被视为解码器200的去分区器子系统。

重建的图块或者超片段可以传输至去块滤波模块208。去块滤波模块208可以将重建的图块或者超片段(或图块或者超片段的预测分区)去块并抖动。例如,产生的去块和抖动滤波器参数可以根据输入比特流201确定。去块滤波模块208的输出可以传输至质量恢复滤波模块209。质量恢复滤波模块209可以基于QR参数来应用质量滤波,该QR参数可以例如根据输入比特流201确定。如图2所示,质量恢复滤波模块209的输出可以传输至解码的画面缓冲器210。在一些示例中,质量恢复滤波模块209的输出可以是最终重建的帧,其可以用于编码其他帧的预测(例如最终重建的帧可以是参考帧等)。在一些示例中,去块滤波模块208和质量恢复滤波模块209可以一起被视为解码器200的滤波子系统。

如上所述,(由于预测操作的)补偿可以包含帧间和/或帧内预测补偿。如图所示,帧间预测补偿可以由一个或多个模块执行,模块包含变形产生模块211、合成产生模块212、以及特性和运动补偿滤波预测器模块213。变形产生模块211可以使用去量化的变形参数(例如,根据输入比特流201确定)来产生变形的参考帧。合成产生模块212可以基于根据输入比特流201确定的参数,产生超分辨率(SR)画面和投影的插值(PI)画面等。如果应用帧间预测,那么特性和运动补偿滤波预测器模块213可以基于输入比特流201中的接收的帧和运动矢量数据等,应用运动补偿。

帧内预测补偿可以由帧内方向预测产生模块214执行。帧内方向预测产生模块214可以被配置为执行空间方向预测,并可以使用根据输入比特流201中的帧内预测数据的解码的相邻分区。

如图2所示,预测模式选择器模块215可以基于输入比特流201中的模式选择数据,对于图块的每个预测分区从“跳过”、“自动”、“帧间”、“多帧”、以及“帧内”之中(其全部可以应用到P-和F/B-画面)确定预测模式选择。除了预测模式外,还允许选择能够根据“帧间”或者“多帧”模式以及对于P-和F/B-画面而不同的参考类型。在预测模式选择器模块215的输出处的预测信号可以由预测融合滤波模块216滤波。预测融合滤波模块216可以基于经由输入比特流201确定的参数(例如滤波系数、频率、开销)来执行滤波。在一些示例中,滤波预测信号可以融合代表不同模式(例如帧内、帧间、多帧、跳过、以及自动)的不同类型的信号。在一些示例中,帧内预测信号可以不同于所有其他类型的帧间预测信号,使得适当的滤波可以大大增强编码效率。滤波的预测信号可以将第二输入(例如预测分区)提供至差异确定器206,如上所述。

如上所述,质量恢复滤波模块209的输出可以是最终重建的帧。最终重建的帧可以传输至自适应画面重新组织器217,其可以基于输入比特流201中的排序参数,根据需要来重新排序或者重新组织帧。重新排序的帧可以传输至内容后恢复器模块218。内容后恢复器模块218可以是可选的模块,配置为对解码视频的感知质量执行进一步改善。改善处理可以响应于输入比特流201中的质量改善参数而被执行,或者其可以作为独立操作而被执行。在一些示例中,内容后恢复器模块218可以应用参数来改善质量(诸如例如胶片颗粒噪声的估计、或者剩余块效应减小)(例如,甚至在相对于去块滤波模块208讨论的去块操作之后)。如图所示,解码器200可以提供显示视频219,其可以被配置为经由显示器设备(未示出)显示。

图2示出关联于视频解码器200的操作的示例控制信号,其中指示的缩写可以代表与上面相对于图1讨论的类似的信息。虽然这些控制信号被示出为与图4中的解码器200的特定示例功能模块相关联,但其他实现可以包含编码器100的功能模块之中的控制信号的不同分布。本公开不限于此,并且在各种示例中,本文中控制信号的实现可以包含示出的特定示例控制信号、附加的控制信号的仅子集任务,和/或不同于示出的布置。

虽然图1至2示出特定编码和解码模块,但跟据本公开还可以利用未绘出的各种其他编码模块或者部件。此外,本公开不限于其中布置了各种部件的,图1和2中示出的特定部件和/或方式。本文描述的系统的各种部件可以以软件、固件、和/或硬件和/或其任何组合实现。例如,编码器100和/或解码器200的各种部件可以至少部分由计算片上系统(SoC)的硬件(诸如可以在计算系统中发现的,诸如例如移动电话)提供。

此外,可以认识到编码器100可以关联于内容提供商系统和/或由内容提供商系统提供,其包含例如视频内容服务器系统,并且输出比特流111可以通过各种通信部件和/或系统(诸如图1和2未绘出收发器、天线、网络系统等)传输或运输至解码器(诸如例如解码器200)。还可以认识到解码器200可以关联于对于编码器100为远程的客户端系统,诸如计算设备(例如桌面计算机、膝上型计算机、平板计算机、可转换膝上型计算机、移动电话等),并且经由各种通信部件和/或系统(诸如图1和2未绘出的收发器、天线、网络系统等)接收输入比特流201。因此,在各种实现中,编码器100和解码器子系统200可以一起或者彼此独立地实现。

图3(a)是根据本公开的至少一些实现布置的示例下一代视频编码器300a的示意图。图3(a)呈现与图1(a)和1(b)示出的类似的编码器,为了简洁起见类似的元件将不会被重复。如图3(a)所示,编码器300a可以包含预分析器子系统310a、分区器子系统320a、预测编码子系统330a、转换编码器子系统340a、滤波编码子系统350a、熵编码器系统360a、转换解码器子系统370a、和/或去分区器子系统380a。预分析器子系统310a可以包含内容预分析器模块102和/或自适应画面组织器模块104。分区器子系统320a可以包含预测分区产生器模块105和/或编码分区产生器107。预测编码子系统330a可以包含运动估计器模块122、特性和运动补偿滤波预测器模块123、和/或帧内方向预测分析器和预测产生模块124。转换编码器子系统340a可以包含自适应转换模块108和/或自适应量化模块109。滤波编码子系统350a可以包含块效应分析器和去块滤波模块117、质量分析器和质量恢复滤波模块118、运动估计器模块122、特性和运动补偿滤波预测器模块123、和/或预测分析器和预测融合滤波模块126。熵编码子系统360a可以包含自适应熵编码器模块110。转换解码器子系统370a可以包含自适应逆量化模块112和/或自适应逆转换模块113。去分区器子系统380a可以包含编码分区组装器114和/或预测分区组装器116。

编码器300a的分区器子系统320a可以包含2个分区子系统:预测分区产生器模块105可以对预测执行分析并分区,并且编码分区产生器模块107可以对编码执行分析并分区。另一个分区方法可以包含自适应画面组织器104,其可以将画面分割为区域或者片,其还可以可选地被认为是该分区器的部分。

编码器300a的预测编码器子系统330a可以包含运动估计器122;可以执行“帧间”信号的分析和预测的特性和运动补偿滤波预测器123;以及可以执行“帧内”信号的分析和预测的帧内方向预测分析器和预测产生模块124。运动估计器122和特性和运动补偿滤波预测器123可以允许:通过对差异的其他源(诸如增益、全局运动、注册)的第一补偿(随后为实际运动补偿),来增加预测性。其还可以允许使用数据建模来创建可以允许更好预测的合成帧(超分辨率和投影),随后使用这样的帧中的实际的运动补偿。

编码器300a的转换编码器子系统340a可以执行分析来选择转换的类型和尺寸,并可以包含2个主要类型的部件。第一类型的部件可以允许使用参数转换来允许小至中尺寸块的本地最佳转换编码;然而这样的编码可能会要求一些开销。第二类型的部件可以允许使用来自包含参数转换的少数转换的选择的通用/固定转换(诸如DCT、或者基于画面的转换)的全局稳定、低开销编码。对于本地自适应转换编码而言,可以使用PHT(参数哈尔转换)。转换可以对4x4和64x64之间的矩形尺寸的2D块执行,而实际的尺寸可以取决于多个因子(诸如转换的数据是否是亮度或者色度、帧间或者帧内、以及使用的转换是否是PHT或者DCT)。作为结果的转换系数可以被量化、扫描以及熵编码。

编码器300a的熵编码器子系统360a可以包含多个有效但是低复杂性部件,每个部件的目标是将特定类型的数据(各种类型的开销、运动矢量、或者转换系数)有效地编码。该子系统的部件可以属于通用级别的低复杂性可变长度编码技术,然而,为了有效编码,每个部件可以为了最高效率被定制优化。例如,定制解决方案可以被设计用于:编码“编码的/未编码的”数据,还用于“模式和参考类型”数据,又用于“运动矢量”数据,又用于“预测和编码分区”数据。最终,因为要熵编码的数据的非常大一部分是“转换系数”数据,所以可以使用用于有效处理特定块尺寸的多个方法、以及可以在多个表格间适应的算法。

编码器300a的滤波编码器子系统350a可以基于这些参数来执行重建画面的参数的分析以及多个滤波,并可以包含若干子系统。例如,第一子系统、块效应分析器和去块滤波模块117可以去块并抖动,以减小或遮掩(mask)任何潜在的块编码效应(block coding artifact)。第二示例子系统、质量分析器和质量恢复滤波模块118可以执行一般质量恢复,以减小由于任何视频编码中的量化操作的效应。可以包含运动估计器122和特性以及运动补偿滤波预测器模块123的第三示例子系统可以通过使用滤波器,改善来自运动补偿的结果,其适应内容的运动特性(运动速度/模糊程度)。第四示例子系统、预测融合分析器和滤波器产生模块126可以允许预测信号的自适应滤波(其可以减小预测中的经常来自帧内预测的虚假效应),因而减小需要被编码的预测误差。

编码器300a的编码控制器模块103可以负责在给定的资源和期望的编码速度的约束下的总体视频质量。例如,在不使用任何捷径的基于全RDO(率失真优化)的编码中,软件编码的编码速度可以简单地是计算资源(处理器的速度、处理器的数量、超线程、DDR3存储器等)可用性的后果。在这样的情况下,编码控制器模块103可以输入预测分区和编码分区的每个单个组合并通过实际的编码,并且码率可以对于每个情况与重建误差一起被计算,并基于拉格朗日优化方程,最佳组预测和编码分区可以对于被编码的每个帧的每个图块而被发送。基于全RDO的模式可以导致最好的压缩效率,并还可以为最慢编码模式。通过使用来自内容预分析器模块102的内容分析参数,并使用其进行RDO简化(不测试所有可能的情况),或者仅通过全RDO传递某百分比的块,可以做出质量对速度折衷并允许更快的编码。迄今已描述了基于可变比特率(VBR)的编码器操作。编码控制器模块103还可以包含能够在恒定比特率(CBR)控制的编码情况下调用的率控制器。

最后,编码器300a的预分析子系统310a可以执行内容的分析来计算各种类型的参数,该参数对于改善视频编码效率和速度性能是有用的。例如,其可以计算水平和垂直梯度信息(Rs、Cs)、方差、每画面的空间复杂性、每画面的时间复杂性、场景改变检测、运动范围估计、增益检测、预测距离估计、对象估计的数量、区域边界检测、空间复杂性映射计算、焦点估计、胶片颗粒估计等。由预分析器子系统310a产生的参数可以由编码器消耗,或者被量化并传达至解码器200。

虽然子系统310a至380a被示出为与图3(a)中的编码器300a的特定示例功能模块相关联,本文的编码器300a的其他实现可以包含子系统310a至380a之中的编码器300a的功能模块的不同分布。本公开不限于此,并且在各种示例中,本文的示例子系统310a至380a的实现可以包含示出的编码器300a的特定示例功能模块、附加的功能模块的仅子集任务,和/或不同于示出的布置。

图3(b)是根据本公开的至少一些实现布置的示例下一代视频解码器300b的示意图。图3(b)呈现与图2示出的类似的解码器,为了简洁起见类似的元件将不会被重复。如图3(b)所示,解码器300b可以包含预测解码器子系统330b、滤波解码器子系统350b、熵解码器子系统360b、转换解码器子系统370b、去分区器_2子系统380b、去分区器_1子系统351b、滤波解码器子系统350b、和/或后恢复器子系统390b。预测解码器子系统330b可以包含特性和运动补偿滤波预测器模块213和/或帧内方向预测产生模块214。滤波解码器子系统350b可以包含去块滤波模块208、质量恢复滤波模块209、特性和运动补偿滤波预测器模块、213和/或预测融合滤波模块216。熵解码器子系统360b可以包含自适应熵解码器模块202。转换解码器子系统370b可以包含自适应逆量化模块203和/或自适应逆转换模块204。去分区器_2子系统380b可以包含编码分区组装器205。去分区器_1子系统351b可以包含预测分区组装器207。后恢复器子系统790可以包含内容后恢复器模块218和/或自适应画面重新组织器217。

解码器300b的熵解码子系统360b可以执行编码器300a的熵编码器子系统360a的逆操作,即,可以使用笼统被称为可变长度解码的级别的技术,将由熵编码器子系统360a编码的各种数据(多个类型的开销、运动矢量、转换系数)解码。具体而言,要解码的各种类型的数据可以包含“编码的/未编码的”数据、“模式和参考类型”数据、“运动矢量”数据、“预测和编码分区”数据、以及“转换系数”数据。

解码器300b的转换解码器子系统370b可以执行编码器300a的转换编码器子系统340a的逆操作。转换解码器子系统370b可以包含2种类型的部件。第一类型的示例部件可以支持使用小至中块尺寸的参数逆PHT转换,而其他类型的示例部件可以对所有块尺寸支持逆DCT转换。用于块的PHT转换可以取决于相邻块的解码的数据的分析。输出比特流111和/或输入比特流201可以携带以下信息:关于PHT转换的分区/块尺寸,以及在要逆转换的2D块哪个方向上PHT可以被使用的(其他方向使用DCT)。对于纯粹由DCT编码的块而言,分区/块尺寸信息也可以从输出比特流111和/或输入比特流201取回,并用于应用适当尺寸的逆DCT。

解码器300b的去分区器子系统380b可以执行编码器300a的分区器子系统320a的逆操作并可以包含2个去分区子系统,编码分区组装器模块205可以执行编码的数据的去分区,并且预测分区组装器模块207可以执行对预测的去分区。此外,如果在编码器300a处对于区域分割或者片使用可选的自适应画面组织器模块104,可能在解码器处会需要自适应画面重新组织器模块217。

解码器300b的预测解码器子系统330b可以包含特性和运动补偿滤波预测器模块213,其可以执行“帧间”信号的预测;以及帧内方向预测产生模块214,其可以执行“帧内”信号的预测。特性和运动补偿滤波预测器模块213可以允许:通过对差异的其他源(诸如增益、全局运动、注册)的第一补偿来增加预测性或创建合成帧(超分辨率和投影)(随后为实际运动补偿)。

解码器300b的滤波解码器子系统350b可以基于由编码器300a发送的参数,执行重建的画面的多个滤波,并可以包含若干子系统。第一示例子系统、去块滤波模块208可以去块并抖动,以减小或遮掩任何潜在的块编码效应。第二示例子系统、质量恢复滤波模块209可以执行一般质量恢复,以减小由于任何视频编码中的量化操作导致的效应。第三示例子系统、特性和运动补偿滤波预测器模块213可以通过使用滤波器,改善来自运动补偿的结果,其可以适应内容的运动特性(运动速度/模糊程度)。第四示例子系统、预测融合滤波模块216可以允许预测信号的自适应滤波(其可以减小预测中的经常来自帧内预测的虚假效应),因而减小可能需要被编码的预测误差。

解码器300b的后恢复器子系统390b是可选的块,其可对解码视频的感知质量执行进一步改善。该处理能够响应于由编码器100发送的质量改善参数完成,或者其可以是在后恢复器子系统390b处做出的独立决定。针对在编码器100处计算的、能够被用于在后恢复器子系统390b处改善质量的特定参数方面,可以是在编码器100处(甚至在去块后)的胶片颗粒噪声和剩余块效应的估计。至于胶片颗粒噪声,如果参数能够经由输出比特流111和/或输入比特流201计算并发送至解码器200,那么这些参数可以被用于合成胶片颗粒噪声。同样,对于在编码器100处的任何剩余块效应,如果其能够被测量并且参数经由输出比特流111和/或比特流201被发送,那么后恢复器子系统390b可以解码这些参数并可以使用其来在显示之前可选地执行附加的去块。此外,编码器100还可以访问场景改变、空间复杂性、时间复杂性、运动范围、以及预测距离信息,其可以帮助后恢复器子系统390b中的质量恢复。

虽然子系统330b至390b被示出为与图3(b)中的解码器300b的特定示例功能模块相关联,本文的解码器300b的其他实现可以包含子系统330b至390b之中的解码器300b的功能模块的不同分布。本公开不限于此,在各种示例中,本文的示例子系统330b至390b的实现可以包含示出的解码器300b的特定示例功能模块、附加的功能模块的仅子集任务,和/或不同于示出的布置。

图4是根据本公开的至少一些实现布置的示例熵编码器模块110的示意图。如图所示,熵编码器模块110可以包含比特流头部;参数和映射数据编码器模块401;画面分区、预测分区、以及编码分区编码器模块402;编码模式和参考类型编码器模块403;编码的/未编码的数据编码器模块404;转换系数编码器模块405;运动矢量预测和差分运动矢量编码器模块406;帧内预测类型和方向数据编码器块407;和/或比特流组装器模块408。在本文的讨论中,为了简洁起见,每个模块401-107可以简记为编码器模块401、编码器模块404等。

如图所示,编码器模块401-407可以分别经由自适应熵编码器110接收视频数据411-417。在一些示例中,接收的视频数据411-417可以从本文讨论的编码器100的各种模块接收。如图所示,编码器模块401-107可以压缩接收的视频数据411-417以产生压缩的视频数据421-427。压缩的视频数据421-427可以被提供给比特流组装器408,其可以将压缩的视频数据421-427组装来产生输出比特流111。

在一些示例中,编码器模块401-107可以每个都包含一个或多个专门的部件,用于将关联于接收的视频数据411-417的类型的数据有效地编码。在一些示例中,一个或多个编码器模块401-407可以基于接收的视频数据411-417的参数或者特性或其他系统信息,预处理接收的视频数据411-417和/或选择熵编码技术。

例如,编码器模块401可以接收开销数据411,其可以包含比特流头部数据(例如序列和/或画面水平比特流头部)、变形参数、合成参数、或者全局映射数据(例如,画面的量化器映射,表明在分区基础上使用的量化器)。如下文进一步相对于图6讨论的那样,在一些示例中,编码器模块401可以实现自适应符号运行可变长度编码技术、自适应代理可变长度编码技术、或者视频数据411的可变长度编码表格压缩。在一些示例中,编码器模块411可以确定哪个技术提供最大压缩效率(例如,压缩的视频数据421的最少位),使得关联于视频数据411的参数可以是每个编码技术等需要的位数。编码器模块411可以将视频数据411熵编码以产生压缩的视频数据421(例如,压缩的开销数据),其可以传输至比特流组装器408,如图所示。

如上所述,在一些示例中,关联于视频数据(例如,任何视频数据411-417)的参数可以是可达比特的最小数、最有效编码技术等。在其他示例中,关联于视频数据的参数可以是预定义或者预定的参数,使得编码技术是预定的。在一些示例中,关联于视频数据的参数可以基于视频数据的特性,使得确定的编码技术可以适应接收的视频数据,如本文进一步讨论的那样。

如图所示,在一些示例中,编码器模块402可以接收分区数据412,其可以包含画面片或者区域数据、帧内预测分区数据、和/或帧间预测分区以及编码分区数据。如下文进一步相对于图6讨论的那样,在一些示例中,编码器模块412可以实现自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术,用于基于关联于帧内预测分区数据和/或帧间预测分区数据的参数(例如,视频数据412的可达比特的最小数、最有效编码技术、预定参数、特性等),压缩视频数据412的帧内预测分区数据和/或帧间预测分区数据部分;并且编码器模块412可以对于视频数据412的片或者区域数据部分实现自适应码书可变长度编码,以产生可以传输至比特流组装器408的压缩的视频数据422(例如压缩的分区数据),如图所示。在一些示例中,帧内预测分区数据和/或帧间预测分区数据可以包含表明对以下分区动作的数据:图块到分区、分区到子分区等。在一些示例中,分区和/或子分区可以包含预测分区和/或子分区。在一些示例中,分区和/或子分区可以包含编码分区和/或子分区。

此外如图所示,在一些示例中,编码器模块403可以接收模式和参考类型数据413,其可以包含每个预测分区的模式(例如帧内、分离、跳过、自动、帧间、或者多帧)数据和/或参考数据。例如,模式分离信息可以表明分区是否被进一步分割。如果进一步分割了分区,那么模式数据还可以包含表明分离是水平分离(例如hor)还是垂直分离(例如vert)的方向信息。如下文进一步相对于图6讨论的那样,在一些示例中,编码器模块403可以实现自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术,用于分离的/非分离的分区信息数据的分开编码,分离的/非分离的分离信息数据的分开编码,或者基于关联于数据的参数(例如视频数据413的可达比特的最小数、最有效编码技术、预定参数、相关部分的特性等)的预测参考信息数据;并且编码器模块403可以实现自适应可变长度编码,用于模式和分离信息的联合编码,以产生可以传输至比特流组装器408的压缩的视频数据423(例如压缩的模式和参考类型数据),如图所示。

此外,在一些示例中,编码器模块404可以接收编码的/未编码的数据414,其可以包含本文描述的编码的/未编码的数据。例如,如果分区(或者子分区)具有任何非零转换系数,则其可以被编码;如果分区(或者子分区)具有全部零转换系数,则其不可被编码。在一些示例中,对于具有帧内或者跳过模式的分区,可能不需要编码的/未编码的数据。在一些示例中,对于具有自动、帧间、或者多帧模式的分区,可能需要编码的/未编码的数据。如下文进一步相对于图6描述的那样,在一些示例中,编码器模块404可以基于关联于编码的/未编码的数据的参数(例如视频数据414的可达比特的最小数、最有效编码技术、预定参数、特性等),对于编码的/未编码的数据实现自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术,以产生可以传输至比特流组装器408的压缩的视频数据424(例如压缩的编码的/未编码的数据),如图所示。

在一些示例中,编码器模块405可以接收转换数据415,其可以包含转换系数数据。例如,对于编码的块或者分区或者子分区(例如具有一个或多个非零转换系数),转换系数数据可以被接收用来熵编码。如进一步相对于图6讨论的那样,编码器模块405可以对于在一个维度具有为2的块或者分区或者子分区尺寸(例如,2xK分区或者Kx2尺寸的分区)的块或者分区或者子分区,实现自适应矢量可变长度编码。此外,编码器模块405可以对于尺寸4x4的块或者分区或者子分区实现自适应1维可变长度编码,并对于所有其他块或者分区或者子分区尺寸(例如4x8、8x4、8x8、16x16、32x32、64x64等)实现自适应2维可变长度编码。产生的压缩的视频数据425(例如压缩的转换数据)可以被传输至比特流组装器408,如图所示。

例如,转换系数数据可以起因于经由自适应转换模块108实现的、像素数据的矩形(或者方形等)分区或者像素差异值的矩形(或者方形等)的正变换,随后是经由自适应量化模块109的、得到的系数的量化。在一些示例中,可以扫描转换系数数据来将其经由编码器模块405转换至1维频率排序的分区。这样的转换可以是高度自适应的任何分区尺寸(例如24或以上、或者32或以上的分区尺寸)、不同数据类型(例如帧内或者帧间分区的离散余弦转换系数、或者混合参数哈尔转换系数等)、和/或不同的量化器设定特性(例如量化器参数和/或矩阵的各种组合)。此外,块或者分区或者子分区可以属于不同画面类型:I-画面(例如仅帧内补偿)、P-画面(例如预测)或者F-画面(例如功能);和/或可以代表不同类型的信号或者数据(例如亮度或者色度等),其可以用不同量化器设定来量化。

此外,在一些示例中,编码器模块406可以接收运动数据416,其可以包含运动矢量数据。如相对于图6进一步讨论的那样,运动矢量预测可以基于视频数据416被执行,以产生一个或多个预测的运动矢量。预测的运动矢量可以与视频数据416的原始的运动数据确定差异,以产生差异运动矢量。在一些示例中,编码器模块416可以对于差异运动矢量实现自适应分类的可变长度编码,以产生可以传输至比特流组装器408的压缩的视频数据426(例如压缩的运动数据),如图所示。

此外,在一些示例中,编码器模块407可以接收帧内预测数据417,其可以包含帧内预测类型或者帧内预测方向数据。例如,如讨论的那样,帧内编码可以使用预测,其可以使用相同帧内相邻的过去解码的分区,以产生空间预测。在这样的示例中,可能有预测器用于表明过去解码的分区。例如,预测器可以包含dc、倾斜、方向、BTPC、特征匹配等。此外,在一些示例中,方向预测器可以对不同分区尺寸自适应。例如,指明方向预测器可以包含提供用于确定使用因果相邻解码的分区来编码的角预测像素分区的技术、和/或指明将空间预测方向熵编码的技术。在一些示例中,这样的技术可以经由编码器模块407执行。如下文进一步相对于图6讨论的那样,在一些示例中,编码器模块407可以基于关联于帧内预测类型或者帧内预测方向数据的参数(例如视频数据417的可达比特的最小数、最有效编码技术、预定参数、特性等),对帧内预测类型或者帧内预测方向数据实现自适应可变长度编码技术或者算术编码技术,以产生可以传输至比特流组装器408的压缩的视频数据427(例如压缩的帧内预测数据),如图所示。

如图4所示,自适应熵编码器110可以包含比特流组装器408。在一些示例中,在时间中一些或者所有的编码器模块401-107可以在不同实例处提供熵编码的压缩的视频数据421-427。此外,在一些示例中,一个或者一些压缩的视频数据421-127可以基于画面,基于区域或者片,基于图块,基于预测分区,基于编码分区,或者其任何组合。在一些示例中,比特流组装器可以将(潜在不同的)压缩的视频数据421-127复用,以创建有效比特流(诸如例如输出比特流111)。例如,有效比特流可以是有效的下一代视频(NGV)编码的比特流,其可以遵循NGV比特流语法规范。在一些示例中,输出比特流111可以是仅视频比特流。在一些示例中,输出比特流111可以用未编码的或编码的音频进行复用(例如,传输或者媒体文件格式),以创建复用的音频视频流。在任何情况下,比特流可以被用于本地解码、存储、或者传输至解码器,如本文讨论的那样。

图5是根据本公开的至少一些实现布置的示例熵解码器模块202的示意图。如图所示,熵解码器模块202可以包含比特流头部;参数和映射数据解码器模块501;画面分区、预测分区、以及编码分区解码器模块502;编码模式和参考类型解码器模块503;编码的/未编码的数据解码器模块504;转换系数解码器模块505;运动矢量和差分运动矢量解码器模块506;帧内预测和方向数据解码器模块507;和/或比特流分解器模块508。在本文的讨论中,为了简洁起见,每个模块501-507可以简记为解码器模块501、解码器模块505等。

如图所示,比特流分解器模块508可以接收输入比特流201。在一些示例中,输入比特流201可以是有效比特流(诸如例如有效下一代视频(NGV)编码的比特流)其可以遵循NGV比特流语法规范。在一些示例中,输入比特流201可以是仅视频比特流。在一些示例中,输入比特流201可以是复用的音频视频流,如本文描述的那样。比特流分解器模块508可以分解输入比特流201,以确定压缩的视频数据511-517,如图所示。例如,比特流分解器模块508可以使用预定义的语法或者规范来将输入比特流201根据数据类型分割为部件压缩的视频数据511-517,用于经由解码器模块501-507进行解压缩。在一些示例中,比特流分解器模块508可以执行相对于比特流组装器模块508的逆操作。

如图5所示,解码器模块501-507可以分别接收压缩的视频数据511-517,并产生视频数据521-527。视频数据521-527可以被传输至解码器200的各种部件,用于进一步解码,如本文描述的那样。解码器200因而可以产生视频帧以经由显示器设备(未示出)呈现给用户。在一些示例中,解码器模块501-507每个可以执行相对于编码器模块401-107的逆操作。在一些示例中,解码器模块501-507每个可以包含一个或多个专门部件,用于将关联于压缩的视频数据511-517的类型的数据有效地熵解码。

例如,编码器模块501可以接收压缩的开销数据511,其可以包含压缩的比特流头部数据(例如序列和/或画面水平比特流头部)、变形参数、合成参数、或者全局映射数据(例如,画面的量化器映射,表明在分区基础上使用的量化器)。在一些示例中,解码器模块511可以对于压缩的开销数据511的解压缩实现自适应符号运行可变长度编码技术、自适应代理可变长度编码技术、或者可变长度编码表格,以产生开销数据521。在一些示例中,解码器模块501可以基于经由比特流201提供的参数或者指示符,确定实现哪个编码技术。

如图所示,在一些示例中,解码器模块502可以接收压缩的分区数据512,其可以包含压缩的画面片或者区域数据、帧内预测分区数据和/或帧间预测分区数据。在一些示例中,解码器模块512可以对于压缩的分区数据512的帧内预测分区数据和/或帧间预测分区数据部分的解压缩,实现自适应符号运行可变长度编码技术、或者自适应代理可变长度编码技术;并且解码器模块512可以对于压缩的分区数据512的片或者区域数据部分的解压缩实现自适应码书可变长度编码,以产生分区数据522。在一些示例中,帧内预测分区数据和/或帧间预测分区数据可以包含表明对以下分区动作的数据:图块到分区、分区到子分区等。在一些示例中,分区和/或子分区可以包含预测分区和/或子分区。在一些示例中,分区和/或子分区可以包含编码分区和/或子分区。在一些示例中,解码器模块502可以基于经由比特流201提供的参数或者指示符,确定对于压缩的视频数据512的帧内预测分区数据和/或帧间预测分区数据部分的解压缩实现哪个编码技术。

此外,在一些示例中,解码器模块503可以接收压缩的模式和参考类型数据513,其可以包含对每个预测分区的压缩的模式(例如帧内、分离、跳过、自动、帧间、或者多帧)数据和/或参考数据。例如,模式分离信息可以表明分区是否被进一步分割。如果进一步分割了分区,那么模式数据还可以包含表明分离是水平分离(例如hor)还是垂直分离分离(例如vert)的方向信息。在一些示例中,解码器模块503可以对于分离的/非分离的分区信息数据的分开编码的解压缩、分离的/非分离的分离信息数据的分开的编码、或者预测参考信息数据,实现自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术;并且解码器模块503可以对于模式和分离信息的联合编码的解压缩实现自适应可变长度编码,以产生模式和参考类型数据523。在一些示例中,解码器模块503可以基于经由比特流201提供的参数或者指示符,确定对分离的/非分离的分区信息数据的分开编码的解压缩,分离的/非分离的分离信息数据的分开编码的解压缩,或者预测参考信息数据实现哪个编码技术。

此外,在一些示例中,解码器模块504可以接收压缩的编码的/未编码的数据514,其可以包含本文描述的编码的/未编码的数据。例如,如果分区(或者子分区)具有任何非零转换系数,那么其可以被编码;如果分区(或者子分区)具有全部零转换系数,那么其不可被编码。在一些示例中,对于具有帧内或者跳过模式的分区,可能不需要编码的/未编码的数据。在一些示例中,对于具有自动、帧间、或者多帧模式的分区,可能需要编码的/未编码的数据。在一些示例中,解码器模块504可以对编码的/未编码的数据的解压缩实现自适应符号运行可变长度编码技术、或者自适应代理可变长度编码技术,以产生编码的/未编码的数据524。在一些示例中,解码器模块504可以基于经由比特流201提供的参数或者指示符,确定对解压缩实现哪个编码技术。

如图所示,在一些示例中,解码器模块505可以接收压缩的转换数据515,其可以包含转换系数数据。例如,对于编码的块或者分区或者子分区(例如具有一个或多个非零转换系数),压缩的转换数据515可以包含转换系数数据。在一些示例中,解码器模块505可以对于在一个维度具有为2的块或者分区或者子分区尺寸(例如,2xK分区或者Kx2尺寸的分区)的块或者分区或者子分区的解压缩,实现自适应矢量可变长度编码。此外,解码器模块505可以对于尺寸4x4的块或者分区或者子分区的解压缩实现自适应1维可变长度编码,并对于所有其他块或者分区或者子分区尺寸(例如4x8、8x4、8x8、16x16、32x32、64x64等)的解压缩实现自适应2维可变长度编码。产生的转换数据525可以被传输至解码器200的其他模块,如图所示。

此外,在一些示例中,解码器模块506可以接收压缩的运动数据516,其可以包含运动矢量数据。如下文进一步相对于图6讨论的那样,在一些示例中,压缩的运动数据516可以使用自适应分类的可变长度编码技术来解压缩,以产生预测的差异运动矢量。预测的差异运动矢量可以被增加至运动矢量预测,以产生重建的运动矢量。运动矢量预测可以使用经由编码器模块506例如和/或运动矢量实现的技术的逆,基于相邻块或者分区的之前解码的运动矢量来产生。重建的运动矢量可以经由运动数据526被传输至解码器200的其他模块,如图所示。

此外,在一些示例中,解码器模块507可以接收压缩的帧内预测数据517,其可以包含帧内预测类型或者帧内预测方向数据。例如,如描述的那样,帧内编码可以使用预测,其可以使用相同帧内相邻的过去解码的分区,以产生空间预测。在这样的示例中,可能有预测器用于表明过去解码的分区。例如,预测器可以包含dc、倾斜、方向、BTPC、特征匹配等。此外,在一些示例中,方向预测器可以对不同分区尺寸自适应。例如,指明方向预测器可以包含提供用于确定使用因果相邻解码的分区来编码的角预测像素分区的技术、和/或指明将空间预测方向熵编码的技术。在一些示例中,解码器模块517可以对于帧内预测类型或者帧内预测方向数据的解压缩实现自适应可变长度编码技术或者算术编码技术,以产生帧内预测数据527。在一些示例中,解码器模块507可以基于经由比特流201提供的参数或者指示符,确定对解压缩实现哪个编码技术。

如上所述,各种熵编码技术可以实现在各种数据类型上,用于视频数据的无损压缩以在熵编码器处产生压缩的视频数据;并用于压缩的视频数据的解压缩以在熵解码器处产生重复视频数据。

在一些示例中,自适应符号运行可变长度编码技术可以被实现。例如,编码器和解码器模块401、501、402、502、403、503、和/或404、504可以在接收的一些或者所有的视频数据或者压缩的视频数据上实现自适应符号运行可变长度编码技术。

在一些示例中,自适应符号运行可变长度编码技术可以包含允许人确定连续跳过块的数量的视频编码中的帧内的非跳过块之间的地址中的相对差异的编码。例如,在经由编码器和解码器模块504、504编码并解码的编码的/未编码的数据的背景下,不是对每个块发送1比特(例如位图)来标志编码的/未编码的(例如跳过的)块,编码器模块504例如可以对跳过的块的运行进行编码。在这样的实现中,跳过的块的运行越长,数据可以越有效地被压缩。

此外,若干类型的适应性可以被增加至自适应符号运行可变长度编码技术,如本文描述的那样:可以允许使用多个表格的适应性,可以允许使用在原始的位图数据、逆位图(inverted bitmap)、差分位图、或者梯度预测位图等上执行这种类型的编码的适应性。例如,自适应符号运行可变长度编码技术可以包含在应用自适应符号运行可变长度编码之前,将第一视频数据从位图数据转换至逆位图、差分位图、或者梯度预测位图中的至少一个。例如,自适应符号运行可变长度编码技术可以被用于实质上将任何类型的事件(例如符号/运行组合)熵编码。此外,符号/运行事件可以被用于将多级(例如0,1,2,3等)或者二进制(例如0,1)事件编码。在编码了多级事件的示例中,自适应符号运行可变长度编码技术可以被应用连续多次,将多级映射打碎为多个二进制子映射,每个之前的子映射从下级的子映射等排除。

在一些示例中,可以实现自适应代理可变长度编码技术。例如,编码器和解码器模块401、501、402、502、403、503、和/或404、504可以在接收的一些或者所有的视频数据或者压缩的视频数据上实现自适应代理可变长度编码技术。

在一些示例中,自适应代理可变长度编码技术可以包含用可变长度代码(例如比特的序列的模式)来替换比特的原始的固定长度ID块(例如群组),使得在更换之后得到的比特流的尺寸可以变小。在一些示例中,在解码器处,可以重复(或者逆)处理,导致原始的预期的比特流。在一些示例中,更换的比特的原始块可以是固定的小尺寸(例如2比特的群组、3比特的群组、或者4比特的群组等)。在一些示例中,更换代码在本质上可以是小尺寸且可变长度。在一些示例中,本文讨论的自适应代理可变长度编码可以被表征为短VLC(例如可变长度代码)。此外,本文描述的自适应代理可变长度编码技术可以通过提供多个更换选项来适应内容。在一些示例中,2比特的1维块/群组可以被更换为1-3比特长代码。在一些示例中,具有代码的3比特的1维块/群组(或者块/群组的集合)可以被更换为1-5比特长代码。在一些示例中,自适应代理可变长度编码技术可以开发比特流内的统计冗余。在一些示例中,自适应代理可变长度编码技术可以提供约1-1.3倍的压缩增益。在一些示例中,自适应代理可变长度编码技术可以提供的优点是接受应用至比特的短序列。

在一些示例中,可以实现自适应符号块可变长度编码技术。例如,编码器和解码器模块405、505可以在接收的一些或者所有的视频数据或者压缩的视频数据上实现自适应符号块可变长度编码技术。

在一些示例中,自适应符号块可变长度编码技术可以包含2个子编码技术,如将进一步相对于图7讨论的那样。例如,自适应符号块可变长度编码技术的可以包含自适应矢量可变长度编码技术和自适应1D/2D(1维/2维)可变长度编码技术。在一些示例中,自适应符号块可变长度编码技术可以被用于编码密切相关符号的块(诸如本文讨论的转换系数的块)。

在一些示例中,自适应符号块可变长度编码技术的自适应矢量可变长度编码技术可以通过使用联合单个码字,对相对小的2D块或者符号的分区进行编码,使得将符号块编码可以导致VLC(可变长度编码)码书。在一些示例中,块或者分区的尺寸越大,码书的尺寸就越大。在一些示例中,自适应矢量可变长度编码技术可以被应用到在一个维度具有尺寸为2(例如2xK或者Kx2块或者分区)的块或者分区尺寸。通过将自适应矢量可变长度编码技术应用至这样的尺寸的块或者分区,VLC码书的尺寸可以有利地受限。

在一些示例中,自适应符号块可变长度编码技术的自适应1D可变长度编码技术可以用于对4x4转换系数块或者分区尺寸进行编码,与CAVLC编码器基本相同。该编码器主要用于编码4x4。在一些示例中,自适应1D可变长度编码技术可以经由内容自适应可变长度编码技术被实现,带有基于系数被编码的背景使用的多个不同的VLC表格。例如,基于系数被编码的背景,编码器和/或解码器模块505、505可以切换VLC表格。

在一些示例中,自适应符号块可变长度编码技术的自适应2D可变长度编码技术可以利用符号块的二维性质来基于在多个不同的VCL表格之间的背景切换。在一些示例中,自适应2D可变长度编码技术可以被表征为CA2DVLC(内容自适应2D可变长度)编码器。在一些示例中,在一些示例中,自适应2D可变长度编码技术,除了2xK,Kx2块和4x4块外,还可以被用于编码的所有剩余的转换系数块或者分区尺寸(例如4x8、8x4、8x8、16x16、32x32、64x64等)。

图6是依据本公开的至少一些实现布置的示例熵编码器模块110的示意图。如上相对于图4所示并所述的,熵编码器模块110可以包含比特流头部、参数和映射数据编码器模块401;画面分区、预测分区、以及编码分区编码器模块402;编码模式和参考类型编码器模块403;编码的/未编码的数据编码器模块404;转换系数编码器模块405;运动矢量和差分运动矢量编码器模块406;帧内预测和方向数据编码器模块407;和/或比特流组装器模块408。

如图所示,编码器模块401可以包含用于比特流头部、参数、以及映射数据的自适应VLC、符号运行VLC、和/或代理VLC编码器模块611,并且可以接收视频数据411。视频数据411可以具有数据类型,使得视频数据411可以包含比特流头部数据(例如序列和/或画面水平比特流头部)、变形参数、合成参数、和/或全局映射数据(例如,表明量化器以分区为基础来被使用的画面的量化器映射)。在一些示例中,可以基于视频数据411的参数或者特性或其他系统参数,对视频数据411确定熵编码技术。在一些示例中,用于视频数据411的熵编码技术可以是自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术(如上所述)或者可变长度编码表格或者表格压缩技术中的一个。确定的熵编码技术可以被应用到视频数据411来产生压缩的视频数据421。可变长度编码表格压缩技术可以包含内容自适应可变长度编码技术,例如带有可用于基于视频数据411编码的一个或多个表格。在一些示例中,编码器模块404可以确定哪个技术提供最大压缩效率(例如,对于压缩的视频数据421的最少比特),使得关联于视频数据411的参数可以是每个编码技术等需要的比特数。在一些示例中,关联于视频数据411的参数可以基于视频数据411的特性,使得确定的编码技术可以适应接收的视频数据。

如图6所示,编码器模块402可以包含用于画面分区模块621的自适应码书VLC编码器;用于帧内预测分区模块622的符号运行VLC和/或代理VLC编码器;和/或用于帧间预测分区和编码分区的符号运行VLC和/或代理VLC编码器模块623。另外如图所示,编码器模块402可以接收视频数据412。在一些示例中,视频数据412可以包含画面片或者区域数据624、帧内预测分区数据625、和/或帧间预测和编码分区数据626。

如图所示,画面片或者区域数据624可以经由画面分区的自适应码书VLC编码器模块621来接收,其可以将自适应码书可变长度编码应用至画面片或者区域数据624以产生压缩的画面片或者区域数据627。在一些示例中,画面片或者区域数据624可以包含用于画面、片、区域等的区域边界。在一些示例中,自适应码书可变长度编码可以包含使用适应画面片或者区域数据624的内容或者其他系统参数等的码书的内容自适应可变长度编码。

如图所示,帧内预测分区数据625可以经由帧内预测分区的符号运行VLC和/或代理VLC编码器模块622来接收。在一些示例中,可以基于帧内预测分区数据625的参数或者特性或其他系统参数(例如压缩效率、数据的特性等),确定对于帧内预测分区数据625的熵编码技术,如本文描述的那样。确定的熵编码技术可以被应用到帧内预测分区数据625,以产生压缩的帧内预测分区数据628。如图所示,在一些示例中,用于帧内预测分区数据625的熵编码技术可以是自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个,如上所述。在一些示例中,帧内预测分区数据625可以包含基于bi-tree分段或者k-d树分段等的分区。

如图所示,帧间预测和编码分区数据626可以经由帧间预测分区和编码分区的符号运行VLC和/或代理VLC编码器模块623来接收。在一些示例中,可以基于帧间预测和编码分区数据626的参数或者特性或其他系统参数(例如压缩效率、数据的特性等),确定对于帧间预测和编码分区数据626的熵编码技术,如本文描述的那样。确定的熵编码技术可以被应用到帧间预测和编码分区数据626,以产生压缩的帧间预测和编码分区数据629。如图所示,在一些示例中,用于帧间预测和编码分区数据626的熵编码技术可以是自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个,如上所述。在一些示例中,帧间预测和编码分区数据426可以包含帧间分区和编码树分区等。

如图6所示,编码器模块403可以包含用于联合模式和分离的自适应VLC编码器模块631;用于模式的符号运行VLC和/或代理VLC编码器模块632;用于分离的符号运行VLC和/或代理VLC编码器模块633;和/或用于参考类型的符号运行VLC和/或代理VLC编码器模块634。另外如图所示,编码器模块403可以接收视频数据412。在一些示例中,视频数据412可以是模式和分离数据的联合编码635、模式信息数据636、分离的/未分离的信息数据637、和/或预测参考信息数据638。

如图所示,模式和分离数据的联合编码635可以经由用于联合模式和分离的自适应VLC编码器模块631来接收,其可以将自适应可变长度编码应用至模式和分离数据的联合编码635,以产生模式和分离数据639的压缩的联合编码。在一些示例中,自适应可变长度编码可以包含适应以下内容的内容自适应可变长度编码:模式和分离数据635或者其他系统参数等的联合编码。

如上所述,在一些示例中,模式和分离数据可以经由用于联合模式和分离的自适应VLC编码器模块631来联合编码。在一些示例中,模式和分离数据可以经由用于模式的符号运行VLC和/或代理VLC编码器模块632、以及用于分离的符号运行VLC和/或代理VLC编码器模块633来分开编码,如下所述。在一些示例中,基于编码技术的比较的结果,来(例如经由自适应熵编码器110和/或编码控制器103)联合或者分开编码的编码器100确定哪个技术压缩数据最有效。

如图所示,模式信息数据636可以经由用于模式的符号运行VLC和/或代理VLC编码器模块632来接收。在一些示例中,可以基于模式信息数据636的参数或者特性或其他系统参数(例如压缩效率、数据的特性等),确定对于模式信息数据636的熵编码技术,如本文讨论的那样。确定的熵编码技术可以应用到模式信息数据636来产生压缩的模式信息数据642。如图所示,在一些示例中,用于模式信息数据636的熵编码技术可以是自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个,如上所述。

如图所示,分离的/未分离的信息数据637可以经由用于分离的符号运行VLC和/或代理VLC编码器模块633来接收。在一些示例中,可以基于分离的/未分离的信息数据637的参数或者特性或其他系统参数(例如压缩效率、数据的特性等),确定对于分离的/未分离的信息数据637的熵编码技术,如本文讨论的那样。确定的熵编码技术可以被应用到分离的/未分离的信息数据637来产生压缩的分离的/未分离的信息数据643。如图所示,在一些示例中,用于分离的/未分离的信息数据637的熵编码技术可以是自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个,如上所述。

如图所示,预测参考信息数据638可以经由用于参考类型的符号运行VLC和/或代理VLC编码器模块634来接收。在一些示例中,可以基于预测参考信息数据638的参数或者特性或其他系统参数(例如压缩效率、数据的特性等),确定对于预测参考信息数据638的熵编码技术,如本文讨论的那样。确定的熵编码技术可以被应用到预测参考信息数据638来产生压缩的预测参考信息数据644。如图所示,在一些示例中,用于预测参考信息数据638的熵编码技术可以是自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个,如上所述。

如图所示,编码器模块404可以包含用于编码的/未编码的数据的符号运行VLC和/或代理VLC编码器641,并可以接收视频数据414。视频数据414可以具有数据类型,使得视频数据411可以是编码的/未编码的数据。例如,如果分区(或者子分区)具有任何非零转换系数,那么其可以被编码;如果分区(或者子分区)具有全部零转换系数,那么其不可被编码。在一些示例中,对于具有帧内或者跳过模式的分区,可能不需要编码的/未编码的数据。在一些示例中,对于具有自动、帧间、或者多帧模式的分区,可能需要编码的/未编码的数据。在一些示例中,可以基于视频数据414的参数或者特性或其他系统参数,确定对于视频数据414的熵编码技术。在一些示例中,用于视频数据414的熵编码技术可以是自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个,如上所述。确定的熵编码技术可以被应用到视频数据414来产生压缩的视频数据424。在一些示例中,编码器模块404可以确定哪个技术提供如讨论的那样的最大压缩效率,使得关联于视频数据411的参数可以是每个编码技术等需要的比特数。在一些示例中,关联于视频数据411的参数可以基于视频数据的特性,使得确定的编码技术可以适应接收的视频数据。

如图所示,在一些示例中,编码器模块405可以包含用于转换系数的自适应矢量VLC编码器模块651;和/或用于转换系数的自适应1D和2D VLC编码器模块652。

如图所示,用于转换系数的自适应矢量VLC编码器模块651可以接收转换系数数据653,其可以包含对于在一个维度具有为2的块或者分区或者子分区尺寸(例如,2xK分区或者Kx2尺寸的分区)的块或者分区或者子分区的转换系数数据。自适应矢量可变长度编码技术可以被应用到转换系数数据653来产生压缩的转换系数数据655。在一些示例中,自适应矢量可变长度编码技术可以包含块或者分区的四叉树划分,代表经由(带有用单个指数值代表所有系数的单个矢量码字的)四叉树划分产生的每个象限,并使用可变长度编码技术等对码字进行熵编码。

另外如图所示,用于转换系数的自适应1D和2D VLC编码器模块652可以接收转换系数数据654,并可以对于尺寸4x4的块或者分区或者子分区实现自适应1维可变长度编码,并对于所有其他块或者分区或者子分区尺寸(例如4x8、8x4、8x8、16x16、32x32、64x64等)实现自适应2维可变长度编码,以产生压缩的转换系数数据656。如上所述,转换系数数据653、654可以起因于经由自适应转换模块108实现的、像素数据的矩形(或者方形等)分区、或者像素差异值的矩形(或者方形等)的正变换,随后是经由自适应量化模块109的、得到的系数的量化。在一些示例中,可以扫描转换系数数据来将其经由编码器模块405转换至1维频率排序的分区。这样的转换可以高度自适应任何分区尺寸(例如24或以上或者32或以上的分区尺寸)、不同数据类型(例如帧内或者帧间分区的离散余弦转换系数、或者混合参数哈尔转换系数等)、和/或不同量化器设定特性(例如量化器参数和/或矩阵的各种组合)。此外,块或者分区或者子分区可以属于不同画面类型:I-画面(例如仅帧内补偿)、P-画面(例如预测)或者F-画面(例如功能);和/或可以代表不同类型的信号或者数据(例如亮度或者色度等),其可以用不同量化器设定来量化。

如图所示,编码器模块406可以包含运动矢量预测器模块661;用于运动矢量差异的自适应VLC编码器模块662;和/或差异确定器663。如图所示,编码器模块406可以经由运动矢量预测器模块661接收视频数据416,其可以包含运动矢量数据。运动矢量预测器模块661可以基于视频数据416(例如视频数据516的运动矢量数据),使用原始的运动矢量来执行运动矢量预测,以产生相关联的预测的运动矢量。在一些示例中,运动矢量预测可以基于预测的运动矢量的左、右、上、或者下的近邻。在一些示例中,可以使用可以共享相同或者类似的特性的其他空间邻近。例如,可以自适应地选择多个不同类型的预测,并且选择信息可以经由比特流111来提供给解码器200。差异确定器663可以确定预测的运动矢量和原始的运动矢量的差异,以产生用于熵编码的差异运动矢量。如图所示,用于运动矢量差异的自适应VLC编码器模块662可以将自适应可变长度编码技术应用至差异运动矢量,以产生压缩的视频数据526。在一些示例中,差分(例如,差异)运动矢量可以具有原始的运动矢量的两倍范围。此外1/8像素精确运动补偿可以通过为8的因子来扩展差异运动矢量的范围。在一些示例中,为了处理这样的扩展,大空间分类为更小的子区间,并可以使用子区间内的矢量索引。

如图所示,编码器模块407可以包含用于帧内预测和方向数据的自适应VLC和/或算术编码器模块671,并可以接收视频数据417。视频数据517可以具有数据类型,使得视频数据417可以包含帧内预测类型或者帧内预测方向数据。在一些示例中,可以基于视频数据417的参数或者特性或本文讨论的其他系统参数(例如,压缩效率等),确定对于视频数据417的熵编码技术。在一些示例中,用于视频数据417的熵编码技术可以是自适应可变长度编码技术或者算术编码技术中的一个,如上所述。确定的熵编码技术可以应用到视频数据417来产生压缩的视频数据427。在一些示例中,自适应可变长度编码技术可以包含基于视频数据417的内容的内容自适应可变长度编码。在一些示例中,算术编码技术可以包含基于视频数据417的内容的内容自适应二进制算术编码。在一些示例中,视频数据417可以支持9种或更多的预测方向和各种预测类型,包含平面、二叉树预测编码(BTPC)等。

如图6所示并相对于图4所述,输出编码器模块401-107(经由相关联的子模块)可以是比特流组装器408的输入,其可以输出每比特流语法的格式化的复用的比特流,如上所述。

图7是跟据本公开的至少一些实现布置的示例熵解码器模块202的示意图。如图所示,并如上相对于图5所述,熵解码器模块202可以包含头部、参数和映射数据解码器模块501;画面分区、预测分区、以及编码分区解码器模块502;编码模式和参考类型解码器模块503;编码的/未编码的数据解码器模块504;转换系数解码器模块505;运动矢量和差分运动矢量解码器模块506;帧内预测和方向数据解码器模块507;和/或比特流分解器模块508。在一些示例中,熵解码器模块202(和相关子模块)可以执行相对于熵编码器模块110(和相关子模块)的逆技术,使得编码器模块(和子模块)和解码器模块(和子模块)之间可能有一对一对应。

如图所示,比特流分解器模块508可以接收输入比特流201。在一些示例中,输入比特流201可以是有效比特流(诸如例如有效下一代视频(NGV)编码的比特流,其可以遵循NGV比特流语法规范或者本文讨论的任何有效比特流)。如上相对于图5所述,比特流分解器模块508可以将输入比特流201分解,以确定压缩的视频数据511-517,其每个可以具有一个或多个部件部分,如下文进一步描述的那样。例如,比特流分解器模块508可以使用预定义的语法或者规范来将输入比特流201根据数据类型分割为部件压缩的视频数据511-517,用于经由解码器模块501-507进行解压缩。在一些示例中,比特流分解器模块508可以执行相对于比特流组装器模块308的逆操作。在一些示例中,分解输入比特流201可以被表征为解复用。

如图所示,解码器模块501可以包含用于头部、参数、以及映射数据的自适应VLC、符号运行VLC、和/或代理VLC解码器模块711,并可以接收压缩的视频数据511。在一些示例中,压缩的视频数据511可以包含使用自适应符号运行可变长度编码技术、自适应代理可变长度编码技术、或者可变长度编码表格压缩技术中的一个的、熵编码的头部数据(例如序列和/或画面水平比特流头部)、变形参数、合成参数、和/或全局映射数据。在一些示例中,用于头部、参数、以及映射数据的自适应VLC、符号运行VLC、和/或代理VLC解码器模块711可以确定可应用于压缩的视频数据511的熵解码技术,并使用可应用技术将压缩的视频数据511解码以产生视频数据521。在一些示例中,可应用的技术可以经由输入比特流201基于运输的指示符、参数、头部数据等确定。

如图所示,解码器模块502可以包含用于画面分区的自适应码书VLC解码器模块721;用于帧内预测分区数据的符号运行VLC和/或代理VLC解码器模块722;和/或用于帧间预测分区和编码分区数据的符号运行VLC和/或代理VLC解码器模块723,并可以接收压缩的视频数据512。

如图所示,压缩的画面片或者区域数据724可以经由用于画面分区的自适应码书VLC解码器模块721来接收。在一些示例中,用于画面分区的自适应码书VLC解码器模块721可以将自适应码书可变长度编码应用至压缩的画面片或者区域数据724,以产生画面片或者区域数据727。如上所述,自适应码书可变长度编码可以包含使用适应于压缩的画面片或者区域数据724的内容或者其他系统参数等的码书的内容自适应可变长度编码。在一些示例中,码书可以经由用于画面分区的自适应码书VLC解码器模块721来实现。

如图所示,用于帧内预测分区数据的符号运行VLC和/或代理VLC解码器722可以接收压缩的帧内预测分区数据725。在一些示例中,压缩的帧内预测分区数据725可以包含使用本文描述的自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个的、熵编码的压缩的帧内预测分区数据。在一些示例中,用于帧内预测分区数据的符号运行VLC和/或代理VLC解码器722可以确定可应用于压缩的帧内预测分区数据725的熵解码技术,并使用可应用的技术将压缩的帧内预测分区数据725熵解码,以产生帧内预测分区数据728。在一些示例中,可应用的编码技术可以经由输入比特流201基于运输的指示符、参数、头部数据等确定。

如图所示,用于帧间预测分区和编码分区数据的符号运行VLC和/或代理VLC解码器723可以接收压缩的帧间预测和编码分区数据726。在一些示例中,压缩的帧间预测和编码分区数据726可以包含使用本文描述的自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个的、熵编码的、压缩的帧间预测和编码分区数据。在一些示例中,用于帧间预测分区和编码分区数据的符号运行VLC和/或代理VLC解码器723可以确定可应用于压缩的帧间预测和编码分区数据726的熵解码技术,并使用可应用的技术将压缩的帧间预测和编码分区数据726熵解码,以产生帧间预测和编码分区数据729。在一些示例中,可应用的编码技术可以经由输入比特流201基于运输的指示符、参数、头部数据等确定。

如图所示,解码器模块503可以包含用于联合模式和分离的自适应VLC解码器模块731;用于模式的符号运行VLC和/或代理VLC解码器模块732;用于分离的符号运行VLC和/或代理VLC解码器模块733;和/或用于参考类型的符号运行VLC和/或代理VLC解码器模块734,并可以接收压缩的视频数据513。

如上所述相对于编码器模块403,在一些示例中,模式和分离数据可以联合编码,并在一些示例中,模式和分离数据可以分开编码。在一些示例中,用于联合模式和分离的自适应VLC解码器模块731可以将编码的数据联合解码,并且用于模式的符号运行VLC和/或代理VLC解码器模块732、以及用于分离的符号运行VLC和/或代理VLC解码器模块733可以将编码的数据分开解码。在一些示例中,数据是否联合或者分开编码可以经由输入比特流201表明。

如图所示,模式和分离数据的压缩的联合编码735可以经由用于联合模式和分离的自适应VLC解码器模块731来接收。在一些示例中,用于联合模式和分离的自适应VLC解码器模块731可以将自适应可变长度编码应用至模式和分离数据的压缩的联合编码735,以产生模式和分离数据的联合编码739。如上所述,自适应可变长度编码可以是适应于模式和分离数据的压缩的联合编码735或者其他系统参数等内容的内容自适应可变长度编码。

如图所示,用于模式的符号运行VLC和/或代理VLC解码器模块732可以接收压缩的模式信息数据736。在一些示例中,压缩的模式信息数据736可以包含使用本文描述的自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个的、熵编码的、压缩的模式信息数据。在一些示例中,用于模式的符号运行VLC和/或代理VLC解码器模块732可以确定可应用于压缩的模式信息数据736的熵解码技术,并使用可应用的技术将压缩的模式信息数据736熵解码,以产生模式信息数据742。在一些示例中,可应用的编码技术可以经由输入比特流201基于运输的指示符、参数、头部数据等确定。

如图所示,用于分离的符号运行VLC和/或代理VLC解码器模块733可以接收压缩的分离信息数据737。在一些示例中,压缩的分离信息数据737可以包含使用本文描述的自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个的、熵编码的、压缩的分离信息数据。在一些示例中,用于分离的符号运行VLC和/或代理VLC解码器模块733可以确定可应用于压缩的分离信息数据737的熵解码技术,并使用可应用的技术将压缩的分离信息数据737熵解码,以产生分离信息数据743。在一些示例中,可应用的编码技术可以经由输入比特流201基于运输的指示符、参数、头部数据等确定。

如图所示,用于参考类型的符号运行VLC和/或代理VLC解码器模块734可以接收压缩的参考类型信息数据738。在一些示例中,压缩的参考类型信息数据738可以包含使用本文描述的自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个的、熵编码的、压缩的参考类型信息数据。在一些示例中,用于参考类型的符号运行VLC和/或代理VLC解码器模块734可以确定可应用于压缩的参考类型信息数据738的熵解码技术,并使用可应用的技术将压缩的参考类型信息数据738熵解码,以产生参考类型信息数据744。在一些示例中,可应用的编码技术可以经由输入比特流201基于运输的指示符、参数、头部数据等确定。

如图所示,解码器模块504可以包含用于编码的/未编码的数据的符号运行VLC和/或代理VLC解码器模块741,并可以接收压缩的视频数据514。在一些示例中,压缩的视频数据514可以包含本文讨论的、使用自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个的、熵编码的编码的/未编码的数据。在一些示例中,用于编码的/未编码的数据的符号运行VLC和/或代理VLC解码器模块741可以确定可应用于压缩的视频数据514的熵解码技术,并使用可应用的技术将压缩的视频数据514解码,以产生视频数据524。在一些示例中,可应用的技术可以经由输入比特流201基于运输的指示符、参数、头部数据等确定。在一些示例中,可应用技术可以是自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个。

如图所示,解码器模块505可以包含用于转换系数的自适应矢量VLC解码器模块751;和/或用于转换系数的自适应1D和2D VLC解码器模块752,并可以接收压缩的视频数据515。

如图所示,用于转换系数的自适应矢量VLC解码器模块751可以接收压缩的转换系数数据753,其可以包含对于在一个维度具有为2的尺寸的块或者分区或者子分区(例如,2xK分区或者Kx2尺寸分区)的压缩的转换系数数据,如本文讨论的那样。在一些示例中,用于转换系数的自适应矢量VLC解码器模块751可以将自适应矢量可变长度编码技术应用至熵解码压缩的转换系数数据753,以产生转换系数数据755。如上所述,在一些示例中,自适应矢量可变长度编码技术可以包含使用可变长度码字,以产生块的四叉树划分的所有系数,其可以经由合并四叉树划分来产生。

如图所示,用于转换系数的自适应1D和2D VLC解码器模块752可以接收压缩的转换系数数据754,其可以包含对于4x4和所有其他块或者分区或者子分区尺寸(例如4x8、8x4、8x8、16x16、32x32、64x64等)的块或者分区或者尺寸子分区压缩的转换系数数据。在一些示例中,用于转换系数的自适应1D和2D VLC解码器模块752可以对尺寸4x4的块或者分区或者的子分区应用自适应1维可变长度编码,并对所有其他块或者分区或者子分区尺寸(例如4x8、8x4、8x8、16x16、32x32、64x64等)应用自适应2维可变长度编码,将压缩的转换系数数据754熵解码,以产生转换系数数据756。

如图所示,解码器模块506可以包含用于运动矢量差异的自适应VLC解码器模块762、运动矢量预测器761、以及增加器763,并可以接收压缩的视频数据516。在一些示例中,用于运动矢量差异的自适应VLC解码器模块762可以将压缩的视频数据516解码,以产生运动矢量差异。此外,运动矢量预测器761可以使用之前解码的相邻运动矢量来产生预测运动矢量,类似于相对于运动矢量预测器模块661讨论的技术。如图所示,解码的差异运动矢量可以经由增加器763被增加至预测运动矢量,以产生重建的运动矢量,其可以输出作为视频数据526的部分,并且此外被用于经由运动矢量预测器模块761对其他运动矢量执行运动矢量预测。

如图所示,解码器模块507可以包含用于帧内预测类型和方向的自适应VLC和/或算术解码器模块771,并可以接收压缩的视频数据517。在一些示例中,压缩的视频数据517可以包含使用自适应VLC技术或者算术编码技术中的一个的、熵编码的帧内预测类型和方向数据。在一些示例中,用于帧内预测类型和方向的自适应VLC和/或算术解码器模块771可以确定可应用于压缩的视频数据517的熵解码技术,并使用可应用的技术将压缩的视频数据517解码,以产生视频数据527。在一些示例中,可应用的技术可以经由输入比特流201基于运输的指示符、参数、头部数据等确定。

如上所述,视频数据521-527(包含讨论的各种子部件)可以被传输至解码器200的各种部件。此外,如讨论的那样,解码器200可以使用熵解码的视频数据521-527,以产生视频帧,其可以经由显示视频219输出,以经由显示器设备呈现或显示给用户。

图8是示出跟据本公开的至少一些实现布置的示例处理800的流程图。处理800可以包含由一个或多个操作802、804、806、和/或808示出的一个或多个操作、功能或动作。处理800可以形成下一代视频编码处理的至少一部分。通过非限制性示例,处理800可以形成由图1的编码器系统100和/或图5或者7的熵编码器模块110承担的下一代视频编码处理的至少一部分。

处理800可以开始于操作802,“获得对于熵编码的不同类型的第一和第二视频数据”,其中可以获得或接收第一和第二(或者附加的)不同类型的视频数据用于熵编码。例如,可以接收两个或更多个视频数据411-417(和/或视频数据511-517的任何子部件)。在一些示例中,视频数据411—417可以经由自适应熵编码器110来接收。如上所述,第一和第二(或者附加的)视频数据可以是不同类型(诸如任何类型或者子部件类型)如相对于视频数据411-417或者本文别处讨论的那样。

在操作804处,处理800可以继续,“对第一视频数据确定熵编码技术”,其中可以对第一视频数据确定第一熵编码技术。如上所述,在一些示例中,编码器模块401-107中的一个或多个可以根据各种编码技术选项确定用于视频数据411-417的编码技术。例如,编码器模块401可以根据自适应符号运行可变长度编码技术、自适应代理可变长度编码技术、或者可变长度编码表格或者表格压缩技术中的一个,对视频数据411确定编码技术。此外,编码器模块402可以根据自适应符号运行可变长度编码技术和自适应代理可变长度编码技术等中的一个,对视频数据402的帧内预测分区数据625确定编码技术。本文相对于图4和6提供了范围广泛的示例,为了简洁起见,本文将不会重复。如上所述,在一些示例中,可以接收两个或更多个类型的视频数据。在一些示例中,可以对本文描述的两个、三个或更多个类型的视频数据确定熵编码技术。

如上所述,可以对视频数据确定熵编码技术。在一些示例中,关联于第一编码技术的选择的编码表格可以从两个或更多个可用表格确定。例如,表格选择可以基于比特计数比较、编码效率等在可用表格之间进行。例如,本文讨论的任何描述的熵编码技术可以具有多个可用表格。在一些示例中,表格指示符可以被产生并提供在比特流900中,表明对视频数据选择的表格。例如,比特流900可以包含表明选择的编码技术和选择的编码表格的指示符。此外,关联于视频数据的长度的指示符可以包含在比特流900内。例如,可以提供视频数据中元组的长度或者数量(例如视频串的长度),并且任何剩余部分(例如如果长度不均匀划分为元组)可以被使用位图技术进行编码,并被提供至输出比特流。

在操作806处,处理800可以继续,“使用第一熵编码技术将第一视频数据熵编码,并将第二视频数据熵编码来产生第一和第二压缩的视频数据”,其中,第一视频数据可以使用第一熵编码技术被熵编码,以产生第一压缩的视频数据,并且第二视频数据可以使用第二熵编码技术被压缩,以产生第一和第二压缩的视频数据。

在操作808处,处理800可以继续,“组装第一和第二压缩的视频数据以产生输出比特流”,其中第一压缩的视频数据和第二压缩的视频数据可以被组装以产生输出比特流。例如,比特流组装器508可以将第一压缩的视频数据以及第二压缩的视频数据组装或复用,以产生输出比特流111,如本文讨论的那样。

如上所述,在一些示例中,输出比特流111可以用音频流(编码或未编码)复用,以产生复用的音频视频的流。此外,如讨论的那样,在一些示例中,一个或多个视频数据可以在熵编码之前被预处理或者操纵。例如,对于运动矢量数据而言,可以执行运动矢量预测以产生预测的运动矢量,预测的运动矢量可以与原始的运动矢量确定差异,以产生差异运动矢量,并且差异运动矢量可以被熵编码,如本文讨论的那样。此外,在一些示例中,7个编码器模块401-107的每个可以同时被实现,来操作7个类型的视频数据411-417。处理800可以经由自适应熵编码器模块110来实现,如本文讨论的那样。此外,处理800可以对任何数量的视频数据的实例串行或者并行地重复。

如上所述,不同类型的视频数据可以使用各种确定的(或者预定的)自适应熵编码技术进行熵编码,以产生压缩的视频数据。压缩的视频数据可以被组装来产生输出比特流。

图9示出跟据至少本公开的一些实现布置的示例比特流900。在一些示例中,比特流900可以对应于如图1、3a、4、以及6所示的输出比特流111;和/或如图2、3b、5、以及7所示的输入比特流201。尽管为了清楚呈现,在图9中未示出,在一些示例中,比特流900可以包含头部部分和数据部分。在各种示例中,比特流900可以包含关联于如本文讨论的对压缩的视频进行编码的数据、指示符、指数值、模式选择数据等。如图所示,在一些示例中,比特流900可以包含指示符数据901、压缩的视频数据421、压缩的视频数据422、压缩的视频数据423、压缩的视频数据424、压缩的视频数据425、压缩的视频数据426、和/或压缩的视频数据427。示出的数据可以在比特流900中是任何顺序,并可以与任何其他用于对视频进行编码的各种附加的数据相邻或者由其分开。如上所述,比特流900还可以包含表明(例如在指示符数据901中)选择的编码技术和选择的编码表格的指示符。此外,关联于视频数据的长度的指示符可以被包含在比特流900内。例如,可以提供视频数据中元组的长度或者数量(例如视频串的长度),并且任何剩余部分(例如如果长度不均匀划分为元组)可以使用位图技术进行编码,并被提供至输出比特流。

在一些示例中,压缩的视频数据421-427可以包含经由本文讨论的任何技术来编码的任何压缩的视频数据。在一些示例中,指示符数据901可以包含头部数据、模式指示符数据、和/或表明关联于压缩的视频数据421-127的熵编码技术的数据。例如,指示符数据901可以表明用于压缩视频数据421的熵编码技术、用于压缩视频数据422的部分的熵编码技术、用于压缩视频数据423的部分的熵编码技术、用于压缩视频数据424的熵编码技术、和/或用于压缩视频数据427的熵编码技术,如本文相对于图4和6讨论的那样。

如上所述,比特流900可以由编码器(诸如例如编码器100)产生和/或由解码器200接收用于解码,使得视频帧可以经由显示器设备来呈现。

图10是示出跟据本公开的至少一些实现布置的示例处理1000的流程图。处理1000可以包含由一个或多个操作1002、1004、1006、和/或1008示出的一个或多个操作、功能或动作。处理1000可以形成下一代视频编码处理的至少一部分。通过非限制性示例,处理1000可以形成由图2的解码器系统200承担的下一代视频解码处理的至少一部分。

处理1000可以在操作1002处开始,“接收熵编码的比特流”,其中可以接收熵编码的比特流。例如,可以在视频解码器处接收如本文讨论的编码的比特流。在一些示例中,比特流100或者900等可以经由解码器200来接收。

处理1000可以在操作1004处继续,“将熵编码的比特流分解为第一压缩的视频数据和第二压缩的视频数据”,其中可以分解接收的比特流,来确定不同类型的压缩的视频数据。例如,比特流201可以经由比特流分解器508来分解,以产生压缩的视频数据511-517(和任何子部件视频数据)如图7所示。例如,分解的压缩的视频数据可以包含第一压缩的视频和第二压缩的视频数据。

处理1000可以在操作1006处继续,“对第一和第二压缩的视频数据进行熵解码,以产生第一视频数据和第二视频数据”,其中,第一和第二压缩的视频数据可以被熵解码,以产生(解压的)第一和第二视频数据。如上所述,在一些示例中,解码器模块501-507中的一个或多个可以根据各种编码技术选项确定用于压缩的视频数据511-517的编码技术。例如,解码器模块501可以根据自适应符号运行可变长度编码技术、自适应代理可变长度编码技术、或者可变长度编码表格压缩技术中的一个,基于经由输入比特流提供的指示符,确定用于压缩的视频数据511的编码技术。此外,解码器模块502可以根据自适应符号运行可变长度编码技术和自适应代理可变长度编码技术等中的一个,确定对于视频数据512的压缩的帧内预测分区数据725的编码技术。本文相对于图5和7提供了范围广泛的示例,为了简洁起见,这里将不会重复。如上所述,在一些示例中,可以接收两个或更多个类型的视频数据。在一些示例中,可以确定对于如本文描述的两个、三个、或更多类型的视频数据的熵解码技术。

处理1000可以在操作1008处继续,“将第一和第二视频数据解码来产生视频帧”,其中第一和第二视频数据(以及任何其他熵解码的视频数据)可以被解码来产生视频帧。例如,视频帧可以适于经由显示器设备呈现给用户。

如上所述,在一些示例中,一个或多个熵解码的视频数据可以是后处理的,或者在进一步解码之前被操纵。例如,熵解码的差异运动矢量可以被增加至预测运动矢量,以产生重建的运动矢量,其可以经由解码器200被输出用于运动矢量预测(例如帧间预测)。

本文描述的系统的各种部件可以以软件、固件、和/或硬件和/或其任何组合来实现。例如,编码器100或解码器200的各种部件可以至少部分由计算片上系统(SoC)的硬件(诸如可以在计算系统中发现的,诸如例如智能电话)来提供。本领域的技术人员可以认识到本文描述的系统可以包含未在对应的图中绘出的附加部件。例如,本文讨论的系统可以包含附加部件(诸如比特流复用器或者解复用器模块等,为了清楚而没有绘出)。

与处理800、1000和本文讨论的其他处理相关的一些附加和/或替代细节可以被示出在本文讨论的实现的一个或多个的示例中,尤其是下文相对于图11说明的那样。

图11是跟据本公开的至少一些实现布置的操作中的示例视频编码系统1610和视频编码处理1100的示意图。在示出的实现中,处理1100可以包含一个或多个操作、功能或者动作,由一个或多个动作1100-1112示出。通过非限制性示例的方式,本文将参考示例视频编码系统1610来描述处理1100,视频编码系统1610包含图1的编码器100和图2的解码器200,如本文下面进一步相对于图16讨论的那样。在各种示例中,处理1100可以由包含编码器和解码器两者的系统承担,或者由分开的系统承担,一个系统采用编码器(和可选的解码器)且另一个系统采用解码器(和可选的编码器)。还要注意,如上所述,编码器可以包含采用本地解码器作为编码器系统的部分的本地解码循环。

在示出的实现中,视频编码系统1610可以包含逻辑电路1150等和/或其组合。例如,逻辑电路1150可以包含编码器100,并可以包含相对于图1和/或图3和5讨论的任何模块、以及解码器200,并可以包含相对于图2和/或图4和6讨论的任何模块。尽管如图16所示,视频编码系统1610可以包含关联于特定模块的块或者动作的一个特定组,但这些块或者动作可以关联于不同于本文示出的特定模块的模块。尽管如图所示,处理1100针对编码和解码,但描述的概念和/或操作可以分开应用到编码和/或解码,并更通常地应用到视频编码。

处理1100可以在操作1101处开始,“获得不同类型的视频数据”,其中可以接收不同类型的视频数据用于熵编码。例如,可以接收两个或更多个类型的视频数据用于熵编码。例如,两个或更多个视频数据411-417(和/或视频数据411-417的任何子部件)可以经由自适应熵编码器110来接收。如上所述,第一和第二(或者附加的)视频数据可以是不同类型(诸如任何类型或者子部件类型)如相对于视频数据411-417或者本文别处讨论的那样。

处理1100可以从操作1101到操作1102继续,“对于一个或多个类型的视频数据确定熵编码技术”,其中可以对于一个或多个视频数据类型确定熵编码技术。如上所述,在一些示例中,编码器模块401-107中的一个或多个可以根据各种编码技术选项确定用于视频数据411-417的编码技术。例如,编码器模块401可以根据自适应符号运行可变长度编码技术、自适应代理可变长度编码技术、或者可变长度编码表格压缩技术中的一个,确定对视频数据411的编码技术。此外,编码器模块402可以根据自适应符号运行可变长度编码技术和自适应代理可变长度编码技术等中的一个,确定对视频数据402的帧内预测分区数据625的编码技术,如本文讨论的那样。

处理1100可以在操作1103处继续,“使用确定的技术将视频数据熵编码”,视频数据可以使用确定的技术来熵编码。例如,第一视频数据可以使用第一熵编码技术来熵编码,以产生第一压缩的视频数据。在一些示例中,第二、第三、或者更多附加的视频数据可以使用本文讨论的第二、第三或更多附加的熵编码技术来熵编码,以产生第一、第二、第三等各压缩的视频数据。

处理1100可以从操作1103到操作1104继续,“组装压缩的视频数据”,其中不同类型的压缩的视频数据可以被组装来产生输出比特流。例如,比特流组装器408可以将压缩的视频数据组装或复用,以产生本文讨论的输出比特流111。

处理1100可以从操作1104到操作1105继续,“可选地用音频流将视频比特流复用”,其中视频比特流可以可选地用编码的或者未编码的音频流来复用,以产生音频视频比特流。

处理1100可以从操作1105或者操作1104到操作1106继续,“传输比特流”,其中可以传输比特流。例如,视频编码系统1610可以经由天线1102(请参考图16)来传输输出比特流111或者比特流800等。

操作1101-1106可以提供视频编码和比特流传输技术,其可以由本文讨论的编码器系统采用。下面的操作,操作1107-1112可以提供视频解码和视频显示器技术,其可以由本文讨论的解码器系统采用。

处理1100可以在操作1107处继续,“接收比特流”,其中可以接收编码的比特流。例如,输入比特流100、201、或者比特流800等可以经由解码器200来接收。在一些示例中,比特流可以包含不同类型的熵编码的数据,如本文讨论的那样。

处理1100可以从操作1107到操作1108继续,“分解比特流来产生不同类型的压缩的视频数据”,其中接收的比特流可以被分解来确定不同类型的压缩的视频数据。例如,比特流201可以经由比特流分解器508来分解,以产生压缩的视频数据511-517(和任何子部件视频数据)如图7所示。例如,分解的压缩的视频数据可以包含第一、第二、第三、或者更多压缩的视频数据。

处理1100可以从操作1108到操作1109继续,“确定对于一个或多个类型的压缩的视频数据的熵解码技术”,可以确定对于一个或多个压缩的视频数据类型的熵解码技术。在一些示例中,熵解码技术可以基于经由接收的比特流运输的标志或者指示符等来确定。如上所述,在一些示例中,解码器模块501-507中的一个或多个可以根据各种编码技术选项确定用于压缩的视频数据511-517的编码技术。例如,解码器模块401可以根据自适应符号运行可变长度编码技术、自适应代理可变长度编码技术、或者可变长度编码表格压缩技术中的一个,基于经由输入比特流提供的指示符,确定用于压缩的视频数据511的编码技术。此外,解码器模块502可以从自适应符号运行可变长度编码技术和自适应代理可变长度编码技术等中的一个,确定对视频数据512的压缩的帧内预测分区数据725的编码技术。本文提供了范围广泛的示例,为了简洁起见,本文将不会重复。如上所述,在一些示例中,可以接收两个或更多个类型的视频数据。在一些示例中,可以对本文讨论的两个、三个、或更多类型的视频数据确定熵解码技术。

处理1100可以从操作1109到操作1610继续,“将压缩的视频数据熵解码”,其中压缩的视频数据可以基于确定的熵解码技术来熵解码。例如,压缩的视频数据511-517可以经由解码模块501-507来熵解码。

处理1100可以从操作1610到操作1111继续,“将熵解码的视频数据解码来产生视频帧”,其中第一和第二视频数据(以及任何其他熵解码的视频数据)可以被解码来产生视频帧。例如,视频帧可以适于经由显示器设备呈现给用户。例如,视频帧可以基于相对于解码器200讨论的解码技术的实现来确定。

处理1100可以从操作1111到操作1112继续,“传输视频帧用于经由显示器设备呈现”,其中产生的视频帧可以被传输用于经由显示器设备呈现。例如,视频帧可以被传输至显示器设备1105(如图16所示)用来呈现。在一些示例中,例如显示器设备1105可以显示视频帧给用户。

虽然本文的示例处理的实现可以包含示出的顺序示出的所有操作的承担,但本公开不限于此,在各种示例中,本文的示例处理的实现可以包含示出的操作的仅子集的承担和/或以不同于示出的顺序。

此外,本文讨论的任何一个或多个操作可以响应于由一个或多个计算机程序产品提供的指令来承担。这样的程序产品可以包含提供指令的信号承载介质,当例如由处理器执行时,指令可以提供本文描述的功能。计算机程序产品可以设置在任何形式的一个或多个机器可读介质中。因此,例如,包含一个或多个处理器核心的处理器可以响应于通过一个或多个机器可读介质运输给处理器的程序代码和/或指令或者指令集,承担本文的示例处理的一个或多个操作。一般而言,机器可读介质可以以程序代码和/或指令或者指令集的形式运输软件,该软件可以使本文描述的任何设备和/或系统实现本文讨论的视频系统的至少部分。

如在本文描述的任何实现中使用的,术语“模块”是指配置为提供本文说明的功能的软件逻辑、固件逻辑和/或硬件逻辑的任何组合。软件可以实施为软件包、代码和/或指令集或者指令;并且如用于本文描述的任何实现的“硬件”,例如可以包含单独或者以任何组合的硬连线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。模块可以共同或者单独实施为形成更大系统的部分的电路,例如集成电路(IC)、片上系统(SoC)等。例如,模块可以在逻辑电路中实施,用于经由软件、固件、或者硬件的本文讨论的编码系统的实现。

图12是示出跟据本公开的至少一些实现布置的示例处理1200的流程图。处理1200可以包含一个或多个操作、功能、或者动作,如由一个或多个操作示出。处理1200可以形成下一代视频编码处理的至少一部分。通过非限制性示例,处理1200可以形成由图1的编码器系统100和/或本文说明的任何其他编码器系统或者子系统承担的下一代视频编码处理的至少一部分。

处理1200可以在操作1202处开始,“接收视频序列的输入视频帧”,其中视频序列的输入视频帧例如可以经由编码器100来接收。

处理1200可以在操作1204处继续,“将画面类型与每个视频帧关联”,其中画面类型可以例如经由内容预分析器模块102与一组画面中的每个视频帧关联。例如,画面类型可以是F/B-画面、P-画面、或者I-画面等。在一些示例中,视频序列可以包含画面的群组,并且本文描述的处理(例如操作1203至1211)可以对一组画面的帧或者画面执行;并且处理可以对群组的所有帧或者画面重复,进而,对视频序列中的画面的所有群组重复。

处理1200可以在操作1206处继续,“将画面划分为图块和/或超片段以及潜在的预测分段”,其中画面可以例如经由预测分区产生器105被划分为图块或者超片段以及潜在的预测分区。

处理1200可以在操作1210处继续,“对于潜在的预测分段,确定潜在的预测误差”,其中对于每个潜在的预测分段,可以确定潜在的预测误差。例如,对于每个预测分段(和相关联的预测分区、预测、以及预测参数),可以确定预测误差。例如,确定潜在的预测误差可以包含确定原始像素(例如,预测分区的原始像素数据)与预测像素的差异。在一些示例中,可以存储相关联的预测参数。如上所述,在一些示例中,预测误差数据分区可以包含至少部分基于之前使用变形技术或者合成技术中的至少一个产生的解码的帧,而产生的预测误差数据。

处理1200可以在操作1212处继续,“选择预测分段和预测类型并保存参数”,其中可以选择预测分段和预测类型,并可以保存相关联的参数。在一些示例中,可以选择具有最小预测误差的潜在的预测分段。在一些示例中,潜在的预测分段可以基于比特率失真优化(RDO)来选择。

处理1200可以在操作1214处继续,“对潜在的编码分段执行转换”,其中可以对分区预测误差数据的各种潜在的编码分段执行具有各种块尺寸的固定或者内容自适应转换。例如,分区预测误差数据可以被分区来产生多个编码分区。例如,分区预测误差数据可以由本文讨论的编码分区产生器模块107的bi-tree编码分区器模块或者k-d树编码分区器模块来分区。在一些示例中,关联于F/B-或者P-画面的分区预测误差数据可以由bi-tree编码分区器模块来分区。在一些示例中,关联于I-画面(例如在一些示例中为图块或者超片段)的视频数据可以由k-d树编码分区器模块来分区。在一些示例中,可以经由开关来选用或选择编码分区器模块。例如,分区可以由编码分区产生器模块107来产生。

处理1200可以在操作1216处继续,“确定最佳编码分段、转换块尺寸、以及实际转换”,其中可以确定最佳编码分段、转换块尺寸、以及实际转换。例如,(例如具有各种编码分区的)各种编码分段可以基于RDO或者另一个基础来评价,以确定选择的编码分段(其还可以包含当编码分区不匹配转换块尺寸时,进一步将编码分区划分为转换块,如讨论的那样)。例如,实际转换(或者选择的转换)可以包含本文描述的对编码分区或者块尺寸执行的任何内容自适应转换或者固定转换。

处理1200可以在操作1218处继续,“量化并扫描转换系数”,其中可以量化并扫描关联于编码分区(和/或转换块)的转换系数,准备熵编码。

处理1200可以在操作1222处继续,“将关联于每个图块或者超片段解码的数据(诸如编码分区指示符、块尺寸数据、转换类型数据、量化器(Qp)、以及量化的转换系数、运动矢量和参考类型数据、特性参数(例如mop、syp))熵编码”,其中数据可以被熵编码。例如,熵编码的数据可以包含编码分区指示符、块尺寸数据、转换类型数据、量化器(Qp)、量化的转换系数、运动矢量和参考类型数据、特性参数(例如mop、syp)等和/或其组合。附加地或替代地,熵编码的数据可以包含预测分段、预测参数、选择的编码分段、选择的特性数据、运动矢量数据、量化的转换系数、滤波器参数、选择数据(诸如模式选择数据)、以及指示符。

处理1200可以在操作1223处继续“应用DD/DB滤波器,重建像素数据,组装为画面”,其中可以应用去块滤波(例如DD或者DB滤波器),可以重建像素数据,并组装为画面。例如,在本地解码循环(例如包含逆扫描、逆转换、以及组装编码分区)之后,可以产生预测误差数据分区。预测误差数据分区可以增加预测分区,以产生重建的预测分区,其可以组装为图块或者超片段。组装的图块或者超片段可以可选地经由去块滤波和/或质量恢复滤波来处理,并被组装来产生画面。

处理1200可以在操作1224处继续“应用QR/LF滤波器,保存在参考画面缓冲器中”,其中可以应用质量恢复滤波(例如QR或者LF滤波),并且组装的画面可以保存在参考画面缓冲器中。例如,除了或者替代DD/DB滤波,组装的图块或者超片段可以可选地经由质量恢复滤波来处理,并被组装来产生画面。画面可以被保存在解码的画面缓冲器119中作为用于其他(例如下个)画面的预测的参考画面。

处理1200可以在操作1225处继续,“应用AP/AM滤波器,确定修改(例如变形或者合成)特性参数来产生变形的或者合成的预测参考,并执行预测”,其中可以执行修改(例如变形或者合成)特性参数和预测,并且可以应用自适应运动滤波或者自适应精确滤波(例如AP/AM滤波器)。例如,可以产生用于产生变形的或者合成的预测参考的修改(例如变形或者合成)特性参数,并可以执行预测。另外,处理中此时可以应用自适应运动滤波或者自适应精确滤波。

如上所述,在一些示例中,可以执行帧间预测。在一些示例中,高达4个解码的过去和/或将来的画面和若干变形/合成预测可以被用于产生大量的参考类型(例如参考画面)。例如在‘帧间’模式中,可以在P-画面中支持高达9个参考类型,并且对于F/B-画面可以支持高达10个参考类型。此外,‘多帧’模式可以提供一种类型的帧间预测模式,其中,不是1个参考画面,可以使用2个参考画面,并且P-和F/B-画面可以分别允许3个、以及高达8个参考类型。例如,预测可以基于使用变形技术或者合成技术中的至少一个产生的之前解码的帧。在这样的示例中,比特流(下文相对于操作1212讨论)可以包含关联于预测分区的帧参考、变形参数、或者合成参数。

处理1200可以在操作1229处继续“可选地应用EP滤波器和/或可选地应用FI/FP滤波器”,其中可以可选地应用增强的预测的分区(例如EP滤波)或者FI/FP滤波(例如融合滤波或者融合改善滤波)。在一些示例中,可以决定是否利用一些形式或者FI/FP滤波器(融合改善滤波/融合滤波)或者不使用FI/FP滤波。当一些形式或者FI/FP滤波器(例如融合滤波或者融合改善滤波)要被应用到选择的预测的分区时,该选择的预测的分区和第二选择的预测的分区可以组装来产生至少一部分的组装画面。FI/FP滤波可以被应用来滤波组装画面的部分。关联于FI/FP滤波的FI/FP滤波参数(例如滤波参数或者融合改善滤波参数)可以被产生并发送至熵编码器子系统。

在实现中,当EP滤波或者FI/FP滤波两者可用时,可以产生的指示符表明解码器系统是否使用增强的预测的分区(例如EP滤波)、或者预测的分区数据,作为用于预测分区的选择的预测的分区。

操作1202至1229可以提供视频编码和比特流传输技术,其可以由本文讨论的编码器系统采用。

图13示出跟据至少本公开的一些实现布置的示例比特流1300。在一些示例中,比特流1300可以对应于图1所示的输出比特流111和/或图2所示的输入比特流201。尽管为了清楚呈现,在图29中未示出,在一些示例中,比特流1300可以包含头部部分和数据部分。在各种示例中,比特流1300可以包含关联于本文讨论的将视频帧编码的数据、指示符、指数值、模式选择数据等。

如上所述,比特流1300可以由编码器(诸如例如编码器100)产生和/或由解码器200接收用于解码,使得解码的视频帧可以经由显示器设备呈现。

图14是示出跟据本公开的至少一些实现布置的示例处理1400的流程图。处理1400可以包含一个或多个操作、功能、或者动作,如由一个或多个操作示出。处理1400可以形成下一代视频编码处理的至少一部分。通过非限制性示例的方式,处理1400可以形成由解码器系统200和/或本文描述的任何其他解码器系统或者子系统承担的下一代视频解码处理的至少一部分。

处理1400可以在操作1402处开始,“接收解码的比特流”,其中可以接收比特流。例如,可以在视频解码器处接收如本文讨论那样编码的比特流。在一些示例中,比特流900或者1300可以经由解码器200来接收。

处理1400可以在操作1404处继续,“将熵解码的比特流解码来确定编码分区指示符、块尺寸数据、转换类型数据、量化器(Qp)、量化的转换系数、运动矢量和参考类型数据、特性参数(例如mop、syp)”,其中可以解码比特流来确定编码分区指示符、块尺寸数据、转换类型数据、量化器(Qp)、量化的转换系数、运动矢量和参考类型数据、特性参数(例如mop、syp)等和/或其组合。附加地或替代地,熵编码的数据可以包含预测分段、预测参数、选择的编码分段、选择的特性数据、运动矢量数据、量化的转换系数、滤波器参数、选择数据(诸如模式选择数据)、以及指示符。

处理1400可以在操作1406处继续,“对量化的系数应用量化器(Qp)来产生逆量化的转换系数”,其中量化器(Qp)可以被应用到量化的转换系数,来产生逆量化的转换系数。例如,操作1406可以经由自适应逆量化模块203来应用。

处理1400可以在操作1408处继续,“对于编码(或者帧内预测的)分区中的系数的每个解码的块,基于转换类型和块尺寸数据执行逆转换,以产生解码的预测误差分区”,其中对于编码(或者帧内预测的)分区中的转换系数的每个解码的块,可以基于转换类型和块尺寸数据执行逆转换,以产生解码的预测误差分区。在一些示例中,逆转换可以包含逆固定转换。在一些示例中,逆转换可以包含逆内容自适应转换。在这样的示例中,执行逆内容自适应转换可以包含基于本文讨论的解码的视频数据的相邻块,确定关联于逆内容自适应转换的基础功能。用于本文讨论的编码的任何正变换可以用于使用相关联的逆转换来解码。在一些示例中,逆转换可以由自适应逆转换模块204执行。在一些示例中,产生解码的预测误差分区还可以包含经由编码分区组装器205对编码分区进行组装。

处理1400可以在操作1423处继续“应用DD/DB滤波器,重建像素数据,组装为画面”,其中可以应用去块滤波(例如DD或者DB滤波器),可以重建像素数据,并组装为画面。例如,在逆扫描、逆转换、以及组装编码分区之后,预测误差数据分区可以增加预测分区,以产生可以被组装为图块或者超片段的重建的预测分区。组装的图块或者超片段可以可选地经由去块滤波来处理。

处理1400可以在操作1424处继续“应用QR/LF滤波器,保存在参考画面缓冲器中”,其中可以应用质量恢复滤波(例如QR或者LF滤波),并且组装的画面可以保存在参考画面缓冲器中。例如,除了或者替代DD/DB滤波,组装的图块或者超片段可以可选地经由质量恢复滤波来处理,并且被组装来产生画面。画面可以被保存在解码的画面缓冲器119中作为用于其他(例如下个)画面的预测的参考画面。

处理1400可以在操作1425处继续,“应用AP/AM滤波器,使用解码的修改特性(例如mop、syp)来产生用于预测的修改的参考,并使用运动矢量和参考信息、预测的分区信息、以及修改的参考来产生预测的分区”,其中可以产生用于预测的修改的参考、也可以产生预测的分区,并可以应用自适应运动滤波或者自适应精确滤波(例如AP/AM滤波器)。例如,可以至少部分基于解码的修改特性(例如mop、syp)来产生用于预测的修改的参考;并且可以至少部分基于运动矢量和参考信息、预测的分区信息、以及修改的参考来产生预测的分区。另外,处理中此时可以应用自适应运动滤波或者自适应精确滤波。

处理1400可以在操作1429处继续,“可选地应用EP滤波器和/或可选地应用FI/FP滤波器”,其中可以可选地应用增强的预测的分区(例如EP滤波)或者FI/FP滤波(例如融合滤波或者融合改善滤波)。在一些示例中,可以决定是否利用一些形式或者FI/FP滤波器(融合改善滤波/融合滤波)或者不使用FI/FP滤波。当一些形式或者FI/FP滤波器(例如融合滤波或者融合改善滤波)要被应用到选择的预测的分区时,该选择的预测的分区和第二选择的预测的分区可以被组装来产生至少一部分的组装画面。FI/FP滤波可以被应用来滤波组装画面的部分。关联于FI/FP滤波的FI/FP滤波参数(例如滤波参数或者融合改善滤波参数)可以被产生并发送至熵编码器子系统。

在实现中,当EP滤波或者FI/FP滤波两者可用时,可以从编码器系统接收指示符,其向解码器系统表明是否使用增强的预测的分区(例如EP滤波)、或者预测的分区数据,作为用于预测分区的选择的预测的分区。

处理1400可以在操作1430处继续,“增加预测分区到解码的预测误差数据分区,以产生重建的分区”,其中预测分区被增加至解码的预测误差数据分区,以产生重建的预测分区。例如,解码的预测误差数据分区可以经由增加器206被增加至相关联的预测分区。

处理1400可以在操作1432处继续,“组装重建的分区来产生图块或者超片段”,其中重建的预测分区可以被组装来产生图块或者超片段。例如,重建的预测分区可以经由预测分区组装器模块207被组装来产生图块或者超片段。

处理1400可以在操作1434处继续,“组装画面的图块或者超片段来产生全解码画面”,其中画面的图块或者超片段可以被组装来产生全解码画面。例如,在可选的去块滤波和/或质量恢复滤波之后,图块或者超片段可以被组装来产生全解码画面,其可以经由解码的画面缓冲器210来存储,和/或在经由自适应画面重新组织器模块217和内容后恢复器模块218处理之后被传输用于经由显示器设备呈现。

图15(A)、15(B)、以及15(C)提供跟据本公开的至少一些实现布置的操作中的示例视频编码系统1600和视频编码处理1500的示意图。在示出的实现中,处理1500可以包含一个或多个的操作、功能或者动作,由一个或多个的动作1501至1580示出。通过非限制性示例的方式,本文将参考示例视频编码系统1600来说明处理1500,视频编码系统1610包含图1的编码器100和图2的解码器200,如本文下面进一步相对于图16讨论的那样。在各种示例中,处理1500可以由包含编码器和解码器两者的系统承担,或者由分开的系统承担,一个系统采用编码器(和可选的解码器)且另一个系统采用解码器(和可选的编码器)。还要注意,如上所述,编码器可以包含采用本地解码器作为编码器系统的部分的本地解码循环。

在示出的实现中,视频编码系统1600可以包含逻辑电路1650等,和/或其组合。例如,逻辑电路1650可以包含图1的编码器系统100和/或图2的解码器系统200,并可以包含相对于本文描述的任何编码器系统或者子系统和/或本文描述的解码器系统或者子系统讨论的任何模块。尽管如图15(A)至(C)所示,视频编码系统1600可以包含关联于特定模块的块或者动作的一个特定组,但这些块或者动作可以关联于不同于本文示出的特定模块的模块。尽管如图所示,处理1500针对编码和解码,但说明的概念和/或操作可以分开应用到编码和/或解码,并更通常地应用到视频编码。

处理1500可以在操作1501处开始,“接收视频序列的输入视频帧”,其中视频序列的输入视频帧例如可以经由编码器100来接收。

处理1500可以在操作1502处继续,“将画面类型与一组画面中的每个视频帧关联”,其中画面类型可以例如经由内容预分析器模块102与一组画面中的每个视频帧关联。例如,画面类型可以是F/B-画面、P-画面、或者I-画面等。在一些示例中,视频序列可以包含画面的群组,并且本文描述的处理(例如操作1503至1511)可以对一组画面的帧或者画面执行;并且处理可以对群组的所有帧或者画面重复,进而,对视频序列中的画面的所有群组重复。

处理1500可以在操作1503处继续,“将画面划分为图块和/或超片段以及潜在的预测分段”,其中画面可以例如经由预测分区产生器105被划分为图块或者超片段以及潜在的预测分段。

处理1500可以在操作1504处继续,“对于每个潜在的预测分段,执行预测并确定预测参数”,其中对于每个潜在的预测分区,可以执行预测并可以确定预测参数。例如,可以产生潜在的预测分段的范围(每个具有各种预测分区),并可以确定相关联的预测和预测参数。例如,预测可以包含使用基于特性和运动的多参考预测或者帧内预测的预测。

如上所述,在一些示例中,可以执行帧间预测。在一些示例中,高达4个解码的过去和/或将来的画面以及若干变形/合成预测可以被用于产生大量的参考类型(例如参考画面)。例如在‘帧间’模式中,可以在P-画面中支持高达9个参考类型,并且对于F/B-画面可以支持高达10个参考类型。此外,‘多帧’模式可以提供一种类型的帧间预测模式,其中,不是1个参考画面,可以使用2个参考画面,并且P-和F/B-画面可以分别允许3个、以及高达8个参考类型。例如,预测可以基于使用变形技术或者合成技术中的至少一个产生的之前解码的帧。在这样的示例中,比特流(下文相对于操作1512讨论)可以包含关联于预测分区的帧参考、变形参数、或者合成参数。

处理1500可以在操作1505处继续,“对于每个潜在的预测分段,确定潜在的预测误差”,其中对于每个潜在的预测分段,可以确定潜在的预测误差。例如,对于每个预测分段(和相关联的预测分区、预测、以及预测参数),可以确定预测误差。例如,确定潜在的预测误差可以包含确定原始像素(例如,预测分区的原始像素数据)与预测像素的差异。在一些示例中,可以存储相关联的预测参数。如上所述,在一些示例中,预测误差数据分区可以包含至少部分基于使用变形技术或者合成技术中的至少一个产生的之前解码的帧,而产生的预测误差数据。

处理1500可以在操作1506处继续,“选择预测分段和预测类型并保存参数”,其中可以选择预测分段和预测类型,并可以保存关联的参数。在一些示例中,可以选择具有最小预测误差的潜在的预测分段。在一些示例中,潜在的预测分段可以基于比特率失真优化(RDO)来选择。

处理1500可以在操作1507处继续,“对分区预测误差数据的各种潜在的编码分段执行具有各种块尺寸的固定的或者内容自适应的转换”,其中可以对分区预测误差数据的各种潜在的编码分段执行具有各种块尺寸的固定的或者内容自适应的转换。例如,分区预测误差数据可以被分区来产生多个编码分区。例如,分区预测误差数据可以由本文讨论的编码分区产生器模块107的bi-tree编码分区器模块或者k-d树编码分区器模块分区。在一些示例中,关联于F/B-或者P-画面的分区预测误差数据可以由bi-tree编码分区器模块分区。在一些示例中,关联于I-画面(例如在一些示例中为图块或者超片段)的视频数据可以由k-d树编码分区器模块分区。在一些示例中,可以经由开关来选用或选择编码分区器模块。例如,分区可以由编码分区产生器模块107产生。

处理1500可以在操作1508处继续,“确定最佳编码分段、转换块尺寸、以及实际转换”,其中可以确定最佳编码分段、转换块尺寸、以及实际转换。例如,(例如具有各种编码分区的)各种编码分段可以基于RDO或者另一个基础来评价,以确定选择的编码分段(其还可以包含当编码分区不匹配转换块尺寸时,进一步将编码分区划分为转换块,如讨论的那样)。例如,实际转换(或者选择的转换)可以包含本文描述的对编码分区或者块尺寸执行的任何内容自适应转换或者固定转换。

处理1500可以在操作1509处继续,“量化并扫描转换系数”,其中可以量化并扫描关联于编码分区(和/或转换块)的转换系数,准备熵编码。

处理1500可以在操作1511处继续,“将关联于每个图块或者超片段的数据熵编码”,其中关联于每个图块或者超片段的数据可以被熵编码。例如,关联于每个视频序列的每组的画面的每个画面的每个图块或者超片段的数据可以被熵编码。熵编码的数据可以包含预测分段、预测参数、选择的编码分段、选择的特性数据、运动矢量数据、量化的转换系数、滤波器参数、选择数据(诸如模式选择数据)、以及指示符。

处理1500可以在操作1512处继续,“产生比特流”,其中可以基于熵编码的数据来产生比特流。如上所述,在一些示例中,比特流可以包含关联于预测分区的帧或者画面参考、变形参数、或者合成参数。

处理1500可以在操作1513处继续,“传输比特流”,其中可以传输比特流。例如,视频编码系统2400可以经由天线2402(请参考图34)来传输输出比特流111、比特流2100等。

处理1500可以在操作1520处继续,“重建像素数据,组装为画面,并保存在参考画面缓冲器中”,其中可以重建像素数据,组装为画面,并保存在参考画面缓冲器中。例如,在本地解码循环(例如包含逆扫描、逆转换、以及组装编码分区)之后,可以产生预测误差数据分区。预测误差数据分区可以增加预测分区,以产生重建的预测分区,其可以组装为图块或者超片段。组装的图块或者超片段可以可选地经由去块滤波和/或质量恢复滤波来处理,并且被组装来产生画面。画面可以被保存在解码的画面缓冲器119中作为用于其他(例如下个)画面的预测的参考画面。

处理1500可以在操作1523处继续“应用DD/DB滤波器,重建像素数据,组装为画面”,其中可以应用去块滤波(例如DD或者DB滤波器),可以重建像素数据,并组装为画面。例如,在本地解码循环(例如包含逆扫描、逆转换、以及组装编码分区)之后,可以产生预测误差数据分区。预测误差数据分区可以增加预测分区,以产生重建的预测分区,其可以被组装为图块或者超片段。组装的图块或者超片段可以可选地经由去块滤波和/或质量恢复滤波来处理,并被组装来产生画面。

处理1500可以在操作1524处继续“应用QR/LF滤波器,保存在参考画面缓冲器中”,其中可以应用质量恢复滤波(例如QR或者LF滤波),并且组装的画面可以被保存在参考画面缓冲器中。例如,除了或者替代DD/DB滤波,组装的图块或者超片段可以可选地经由质量恢复滤波来处理,并且被组装来产生画面。画面可以被保存在解码的画面缓冲器119中作为用于其他(例如下个)画面的预测的参考画面。

处理1500可以在操作1525处继续,“产生修改特性参数”,其中可以产生修改的特性参数。例如,可以至少部分基于第二解码的预测参考画面,产生第二修改的预测参考画面和关联于第二修改的预测参考画面的第二修改特性参数,其中第二修改的参考画面可以与第一修改的参考画面是不同类型。

处理1500可以在操作1526处继续,“产生修改的预测参考画面”,其中可以产生修改的预测参考画面,例如,可以至少部分基于第一解码的预测参考画面,产生第一修改的预测参考画面和关联于第一修改的预测参考画面的第一修改特性参数。

处理1500可以在操作1527处继续,“产生运动数据”,其中可以产生运动估计数据。例如,可以至少部分基于第一修改的预测参考画面或者第二修改的预测参考画面中的一个,产生关联于当前画面的预测分区的运动数据。

处理1500可以在操作1528处继续,“应用AP/AM滤波器来执行运动补偿”,其中可以执行运动补偿。例如,可以至少部分基于运动数据和第一修改的预测参考画面或者第二修改的预测参考画面中的至少一个来执行运动补偿,以产生用于预测分区的预测分区数据,并且可以应用自适应运动滤波或者自适应精确滤波(例如AP/AM滤波器)。处理1500可以将该信息馈送回操作1504,其中每个解码的预测误差分区(例如包含零预测误差分区)可以被增加至对应的预测分区,以产生重建的预测分区。另外,处理中此时可以应用自适应运动滤波或者自适应精确滤波。

处理1500可以在操作1529处继续“可选地应用EP”,其中可以可选地应用增强的预测的分区(例如EP滤波)。在一些示例中,当EP滤波或者FI/FP滤波两者可用时,可以产生指示符,其向解码器系统表明是否使用增强的预测的分区(例如EP滤波)或者预测的分区数据,作为用于预测分区的选择的预测的分区。

处理1500可以在操作1530处继续“可选地应用FI/FP滤波器”,其中可以可选地应用FI/FP滤波(例如融合滤波或者融合改善滤波)。在一些示例中,可以决定是否利用一些形式或者FI/FP滤波器(融合改善滤波/融合滤波)或者不使用FI/FP滤波。当一些形式或者FI/FP滤波器(例如融合滤波或者融合改善滤波)要被应用到选择的预测的分区时,该选择的预测的分区和第二选择的预测的分区可以被组装来产生至少一部分的组装画面。FI/FP滤波可以被应用来滤波组装画面的部分。关联于FI/FP滤波的FI/FP滤波参数(例如滤波参数或者融合改善滤波参数)可以被产生并且被发送至熵编码器子系统。

操作1501至1530可以提供视频编码和比特流传输技术,其可以由本文讨论的编码器系统采用。下面的操作,操作1554至1568可以提供视频解码和视频显示器技术,其可以由本文讨论的解码器系统采用。

处理1500可以在操作1554处继续,“接收比特流”,其中可以接收比特流。例如,输入比特流201、比特流2100等可以经由解码器200来接收。在一些示例中,比特流可以包含关联于编码分区、一个或多个的指示符的数据,和/或限定编码分区的数据,如上所述。在一些示例中,比特流可以包含预测分段、预测参数、选择的编码分段、选择的特性数据、运动矢量数据、量化的转换系数、滤波器参数、选择数据(诸如模式选择数据)、以及指示符。

处理1500可以在操作1555处继续,“解码比特流”,其中可以经由例如自适应熵解码器模块202将接收的比特流解码。例如,接收的比特流可以被熵解码来确定预测分段、预测参数、选择的编码分段、选择的特性数据、运动矢量数据、量化的转换系数、滤波器参数、选择数据(诸如模式选择数据)、以及指示符。

处理1500可以在操作1556处继续,“对每个编码分区的每个块执行逆扫描和逆量化”,其中可以对于正被处理的预测分区的每个编码分区的每个块执行逆扫描和逆量化。例如,可以经由自适应逆量化模块203执行逆扫描和逆量化。

处理1500可以在操作1557处继续,“执行固定的或者内容自适应逆转换来解码转换系数以确定解码的预测误差数据分区”,其中可以执行固定的或者内容自适应逆转换来解码转换系数,以确定解码的预测误差数据分区。例如,逆转换可以包含逆内容自适应转换(诸如混合参数哈尔逆转换,使得混合参数哈尔逆转换可以在参数转换方向的方向包含参数哈尔逆转换,并在与参数转换方向正交的方向包含离散余弦逆转换)。在一些示例中,固定的逆转换可以包含离散余弦逆转换或者离散余弦逆转换近似器。例如,可以经由自适应逆转换模块204执行固定的或者内容自适应转换。如上所述,内容自适应逆转换可以基于其他之前解码的数据(诸如例如解码的相邻分区或者块)。在一些示例中,产生解码的预测误差数据分区可以包含经由编码分区组装器模块205将解码的编码分区组装。

处理1500可以在操作1558处继续,“对每个预测分区产生预测像素数据”,其中可以对每个预测分区产生预测像素数据。例如,可以使用选择的预测类型(例如基于特性和运动、或者帧内、或者其他类型)和相关联的预测参数来产生预测像素数据。

处理1500可以在操作1559处继续,“向每个解码的预测误差分区增加对应的预测分区来产生重建的预测分区”,其中每个解码的预测误差分区(例如,包含零预测误差分区)可以被增加至对应的预测分区来产生重建的预测分区。例如,预测分区可以经由图2所示的解码循环来产生,并且经由增加器206被增加至解码的预测误差分区。

处理1500可以在操作1560处继续,“组装重建的预测分区来产生解码的图块或者超片段”,其中重建的预测分区可以被组装来产生解码的图块或者超片段。例如,预测分区可以经由预测分区组装器模块207来组装,以产生解码的图块或者超片段。

处理1500可以在操作1561处继续,“应用去块滤波和/或QR滤波来产生最终解码的图块或者超片段”,其中可选的去块滤波和/或质量恢复滤波可以被应用到解码的图块或者超片段,以产生最终解码的图块或者超片段。例如,可以经由去块滤波模块208应用可选的去块滤波和/或可以经由质量恢复滤波模块209应用可选的质量恢复滤波。

处理1500可以在操作1562处继续,“将解码的图块或者超片段组装来产生解码的视频画面,并保存在参考画面缓冲器中”,其中解码(或者最终解码)的图块或者超片段可以被组装来产生解码的视频画面,并且解码的视频画面可以被保存在参考画面缓冲器(例如解码的画面缓冲器210)中,用于将来的预测。

处理1500可以在操作1563处继续,“传输解码的视频帧来经由显示器设备呈现”,其中解码的视频帧可以被传输来经由显示器设备呈现。例如,解码的视频画面可以经由自适应画面重新组织器217和内容后恢复器模块218来进一步处理,并作为显示视频219的视频帧被传输至显示器设备来呈现给用户。例如,视频帧可以被传输至显示器设备2405(如图34所示)用来呈现。

处理1500可以在操作1573处继续“应用DD/DB滤波器,重建像素数据,组装为画面”,其中可以应用去块滤波(例如DD或者DB滤波器),可以重建像素数据,并组装为画面。例如,在逆扫描、逆转换、以及组装编码分区之后,预测误差数据分区可以增加预测分区,以产生可以被组装为图块或者超片段的重建的预测分区。组装的图块或者超片段可以可选地经由去块滤波来处理。

处理1500可以在操作1574处继续“应用QR/LF滤波器,保存在参考画面缓冲器中”,其中可以应用质量恢复滤波(例如QR或者LF滤波),并且组装的画面可以被保存在参考画面缓冲器中。例如,除了或者替代DD/DB滤波,组装的图块或者超片段可以可选地经由质量恢复滤波来处理,并且被组装来产生画面。画面可以被保存在画面缓冲器中作为用于其他(例如下个)画面的预测的参考画面。

处理1500可以在操作1576处继续,“产生修改的预测参考画面”,其中可以产生修改的预测参考画面,例如可以至少部分基于第三修改特性参数,产生至少一部分第三修改的预测参考画面。类似地,可以至少部分基于相关联的第二修改特性参数,产生至少一部分第四修改的预测参考画面。

处理1500可以在操作1577处继续,“产生运动数据”,其中可以产生运动估计数据。例如,可以至少部分基于第三修改的预测参考画面或者第三修改的预测参考画面中的一个,产生关联于当前画面的预测分区的运动数据。

处理1500可以在操作1578处继续,“应用AP/AM滤波器并执行运动补偿”,其中可以执行运动补偿,并且其中可以应用自适应运动滤波或者自适应精确滤波(例如AP/AM滤波器)。例如,可以至少部分基于运动数据以及第三修改的预测参考画面或者第四修改的预测参考画面中的至少一个来执行运动补偿,以产生用于预测分区的预测分区数据。处理1300可以将该信息馈送回操作1559,其中每个解码的预测误差分区(例如包含零预测误差分区)可以被增加至对应的预测分区,以产生重建的预测分区。另外,处理中此时可以应用自适应运动滤波或者自适应精确滤波。

处理1500可以在操作1579处继续“可选地应用EP滤波器”,其中可以可选地应用增强的预测的分区(例如EP滤波)。在一些示例中,当EP滤波或者FI/FP滤波两者可用时,可以从编码器系统接收指示符,其向解码器系统表明是否使用增强的预测的分区(例如EP滤波)或者预测的分区数据,作为用于预测分区的选择的预测的分区。

处理1500可以在操作1580处继续“可选地应用FI/FP滤波器”,其中可以可选地应用FI/FP滤波(例如融合滤波或者融合改善滤波)。在一些示例中,可以决定是否利用一些形式或者FI/FP滤波器(融合改善滤波/融合滤波)或者不使用FI/FP滤波。当一些形式或者FI/FP滤波器(例如融合滤波或者融合改善滤波)要被应用到选择的预测的分区时,该选择的预测的分区和第二选择的预测的分区可以被组装来产生至少一部分的组装画面。FI/FP滤波可以被应用来滤波组装画面的部分。关联于FI/FP滤波的FI/FP滤波参数(例如滤波参数或者融合改善滤波参数)可以被产生并且被发送至熵编码器子系统。

处理1500可以经由本文讨论的任何编码器系统来实现。此外,可以对视频数据的任何数量的实例(诸如预测误差数据分区、原始数据分区、或者小波数据等)串行或者并行地重复处理1500。

虽然本文的示例处理的实现可以包含以示出的顺序示出的所有操作的承担,但本公开不限于此,在各种示例中,本文的示例处理的实现可以包含示出的操作的仅子集的承担和/或以不同于示出的顺序。

图16是跟据本公开的至少一些实现布置的示例视频编码系统1600的示意图。在示出的实现中,视频编码系统1600可以包含成像设备1601、视频编码器100和/或经由处理单元1620的逻辑电路1650实现的视频编码器、视频解码器200和/或经由处理单元1620的逻辑电路1650实现的视频解码器、天线1602、一个或多个处理器1603、一个或多个存储器存储2004、和/或显示器设备1605。

如图所示,成像设备1601、天线1602、处理单元1620、逻辑电路1650、视频编码器100、视频解码器200、处理器1603、存储器存储1604、和/或显示器设备1605能够彼此通信。如上所述,尽管示出有视频编码器100和视频解码器200这两者,但在各种示例中视频编码系统1600可以包含仅视频编码器100或者仅视频解码器200。

如图所示,在一些示例中,视频编码系统1600可以包含天线1602。天线1602可以被配置为传输或接收例如视频数据的编码的比特流。此外,在一些示例中,视频编码系统1600可以包含显示器设备1605。显示器设备1605可以被配置为呈现视频数据。如图所示,在一些示例中,逻辑电路1650可以经由处理单元1620来实现。处理单元1620可以包含特定应用集成电路(ASIC)逻辑、图形处理器、通用处理器等。视频编码系统1600还可以包含可选的处理器1603,其可以类似地包含特定应用集成电路(ASIC)逻辑、图形处理器、通用处理器等。在一些示例中,逻辑电路1650可以经由硬件或者视频编码专用的硬件等来实现,并且处理器1603可以实现通用软件或者操作系统等。此外,存储器存储1604可以是任何类型的存储器,诸如易失性存储器(例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或者非易失性存储器(例如闪存存储器等)等。在非限制性示例中,存储器存储1604可以由缓存存储器实现。在一些示例中,逻辑电路1650可以访问存储器存储1604(例如对于图像缓冲器的实现而言)。在其他示例中,逻辑电路1650和/或处理单元1620可以包含存储器存储(例如缓存等),用于图像缓冲器等的实现。

在一些示例中,经由逻辑电路实现的视频编码器100可以包含图像缓冲器(例如经由处理单元1620或者存储器存储1604)和图形处理单元(例如经由处理单元1620)。图形处理单元可以通信地耦合至图像缓冲器。图形处理单元可以包含经由逻辑电路1650实现的视频编码器100,以实施相对于图1和图3和图5讨论的各种模块。例如,图形处理单元可以包含熵编码器逻辑电路等。逻辑电路可以被配置为执行本文讨论的各种操作。例如,熵编码器逻辑电路可以被配置为接收第一视频数据和不同类型的第二视频数据用于熵编码;至少部分基于关联于第一视频数据的参数确定对第一视频数据的第一熵编码技术,使得第一熵编码技术至少包括自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的一个;使用第一编码技术将第一视频数据熵编码,以产生第一压缩的视频数据;并使用第二编码技术将第二视频数据熵编码,以产生第二压缩的视频数据;并且组装第一压缩的视频数据和第二压缩的视频数据来产生输出比特流。视频解码器200可以以类似的方式来实现。

在一些示例中,视频编码系统1600的天线1602可以被配置为接收视频数据的熵编码的比特流。如上所述,比特流可以包含两个或更多个压缩的视频数据类型。视频编码系统1600还可以包含耦合至天线1602并配置为将编码的比特流解码的视频解码器200。例如,视频解码器200可以被配置为将熵编码的比特流分解来确定第一压缩的视频数据和第二压缩的视频数据;对第一压缩的视频数据确定第一熵解码技术,使得第一熵解码技术包括自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的至少一个;基于第一熵解码技术将第一压缩的视频数据熵解码,以产生第一视频数据;并且基于第二熵解码技术将第二压缩的视频数据熵解码,以产生第二视频数据;并且解码第一视频数据和第二视频数据来产生视频帧。

在实现中,本文描述的特征可以响应于由一个或多个的计算机程序产品提供的指令来承担。这样的程序产品可以包含提供指令的信号承载介质,当例如由处理器执行时,指令可以提供本文说明的功能。计算机程序产品可以设置在任何形式的一个或多个机器可读介质中。因此,例如,包含一个或多个处理器核心的处理器可以响应于通过一个或多个机器可读介质运输给处理器的程序代码和/或指令或者指令集,承担本文描述的一个或多个特征。一般而言,机器可读介质可以以程序代码和/或指令或者指令集的形式运输软件,该软件可以使本文描述的任何设备和/或系统实现本文描述的至少部分特征。

图17是跟据本公开的至少一些实现布置的示例系统1700的示意图。在各种实现中,系统1700可以是媒体系统,尽管系统1700不限于该背景。例如,系统1700可以整合到个人计算机(PC)、膝上型计算机、超膝上型计算机、平板计算机、触摸板、便携计算机、手持型计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如智能手机、智能平板计算机或者智能电视)、移动互联网设备(MID)、消息收发设备、数据通信设备、照相机(例如任意拍摄照相机、超大变焦照相机、数字单反(DSLR)照相机)等。

在各种实现中,系统1700包含耦合至显示器1720的平台1702。平台1702可以从内容设备(诸如内容服务设备1730、或者内容输送设备1740、或者其他类似的内容源)接收内容。导航控制器1750包括可以被用于例如与平台1702和/或显示器1720交互的一个或多个导航功能。下文进一步具体描述这些部件中的每个。

在各种实现中,平台1702可以包含芯片组1705、处理器1710、存储器1712、天线1713、存储设备1714、图形子系统1715、应用1716和/或无线电装置1718的任何组合。芯片组1705可以在处理器1710、存储器1712、存储设备1714、图形子系统1715、应用1716和/或无线电装置1718之间提供相互通信。例如,芯片组1705可以包含能够提供与存储设备1714相互通信的存储适配器(未绘出)。

处理器1710可以被实现为复杂指令集计算机(CISC)或者精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核、或者任何其他微处理器或者中央处理单元(CPU)。在各种实现中,处理器1710可以是双核处理器、双核移动处理器等。

存储器1712可以实现为易失性存储器设备,诸如但是不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、或者静态RAM(SRAM)。

存储设备1714可以实现为非易失性存储设备,诸如但是不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加存储设备、闪存存储器、配有电池的SDRAM(同步DRAM)、和/或可访问网络的存储设备。在各种实现中,存储设备1714可以包括如下技术:例如当包含多个硬盘驱动器时,对于有价值的数字媒体增加存储性能增强的保护。

图形子系统1715可以执行用于显示的图像(诸如静止图像或者视频)的处理。图形子系统1715例如可以是图形处理单元(GPU)或者视觉处理单元(VPU)。模拟或者数字接口可以被用于将图形子系统1715与显示器1720通信地耦合。例如,接口可以是高清晰度多媒体接口、DisplayPort、无线HDMI、和/或无线HD兼容技术中的任一个。图形子系统1715能够被集成到处理器1710或者芯片组1705中。在一些实现中,图形子系统1715可以是通信地耦合至芯片组1705的独立设备。

本文描述的图形和/或视频处理技术可以在各种硬件架构中实现。例如,图形和/或视频功能可以被集成在芯片组中。替代地,可以使用独立显卡和/或视频处理器。作为又一个实现,图形和/或视频功能可以由包括多核处理器的通用处理器提供。在其他实现中,该功能可以在消费者电子设备中实现。

无线电装置1718可以包含能够使用各种适当的无线通信技术来传输并接收信号的一个或多个无线电装置。该技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包含(但是不限于)无线局域网(WLAN)、无线个人区域网络(WPAN)、无线城域网(WMAN)、蜂窝网络、以及卫星网络。在跨这样的网络的通信中,无线电装置1718可以跟据任何版本的一个或多个应用标准来操作。

在各种实现中,显示器1720可以包含任何电视类监控器或者显示器。显示器1720例如可以包含计算机显示屏、触摸屏显示器、视频监控器、类似电视的设备、和/或电视。显示器1720可以是数字和/或模拟的。在各种实现中,显示器1720可以是全息显示器。另外,显示器1720可以是可以接收视觉投影的透明表面。该投影可以传输各种形式的信息、图像、和/或对象。例如,这样的投影可以是用于移动增强现实(MAR)应用的视觉叠加。在一个或多个软件应用1716的控制下,平台1702可以在显示器1720上显示用户界面1722。

在各种实现中,内容服务设备1730可以由任何国内、国际和/或独立服务作为主机,因此,例如经由互联网可访问平台1702。内容服务设备1730可以耦合至平台1702和/或显示器1720。平台1702和/或内容服务设备1730可以耦合至网络1760来将媒体信息向/从网络1760通信(例如发送和/或接收)。内容输送设备1740还可以被耦合至平台1702和/或显示器1720。

在各种实现中,内容服务设备1730可以包含有线电视盒、个人计算机、网络、电话、具有上网功能的设备或者能够输送数字信息和/或内容的家电、以及能够经由网络1760或者直接在内容提供商与平台1702和/显示器1720之间单向或者双向对内容进行通信的任何其他类似的设备。应该理解的是内容可以经由网络1760向/从系统1700中的任何一个部件和内容提供商单向和/或双向通信。内容的示例可以包含任何媒体信息,例如包含视频、音乐、医疗和游戏信息等。

内容服务设备1730可以接收诸如有线电视节目表的内容,包含媒体信息、数字信息、和/或其他内容。内容提供商的示例可以包含任何有线或者卫星电视、或者无线电、或者互联网内容提供商。提供的示例不意味着以任何方式限制跟据本公开的实现。

在各种实现中,平台1702可以从具有一个或多个导航功能的导航控制器1750接收控制信号。控制器1750的导航功能例如可以被用于与用户界面1722交互。在各种实现中,导航控制器1750可以是指向设备,该指向设备可以是允许用户向计算机输入空间(例如连续和多维)数据的计算机硬件部件(具体而言为人机界面设备)。诸如图形用户界面(GUI)、以及电视和监控器的很多系统允许用户使用物理手势控制并提供数据给计算机或者电视。

控制器1750的导航功能的移动可以通过指针、光标、聚焦环、或者显示在显示器上的其他视觉指示器的移动复制在显示器(例如显示器1720)上。例如,在软件应用程序1716的控制下,导航控制器1750中的导航功能例如可以映射至显示在用户界面1722上的虚拟导航功能。在各种实现中,控制器1750可能不是分离部件,而是可以集成到平台1702和/或显示器1720。然而,本公开不限于本文示出或者说明的元件或者背景。

在各种实现中,驱动器(未示出)可以具有例如当启动时在初始引导之后用触摸按钮能使用户立即开启并关掉类似电视的平台1702的技术。甚至当平台被关掉时,程序逻辑也可以允许平台1702将内容流传输至媒体适配器、或者其他内容服务设备1730、或者内容输送设备1740。此外,芯片组1705可以包含例如用于5.1环绕声音频和/或高清7.1环绕声音频的硬件和/或软件支持。驱动器可以包含用于集成图形平台的图形驱动器。在各种实现中,图形驱动器可以包括外围部件互连(PCI)Express图形卡。

在各种实现中,可以将系统1700中示出的任何一个或多个部件集成。例如,可以将平台1702和内容服务设备1730集成,或者可以将平台1702和内容输送设备1740集成,或者例如可以将平台1702、内容服务设备1730和内容输送设备1740集成。在各种实现中,平台1702和显示器1720可以是集成单元。例如可以将显示器1720和内容服务设备1730集成,或者可以将显示器1720和内容输送设备1740集成。这些示例不意味着限制本公开。

在各种实现中,系统1700可以实现为无线系统、有线系统、或者两者的组合。当实现为无线系统时,系统1700可以包含适于在无线共享介质(诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等)上通信的部件和接口。无线共享的介质的示例可以包含无线频谱的部分、诸如RF频谱等。当实现为有线系统时,系统1700可以包含适于在有线通信介质(诸如输入/输出(I/O)适配器、将I/O适配器与对应的有线通信介质连接的物理连接件、网络接口卡(NIC)、磁盘光盘控制器、视频控制器、音频控制器等)上通信的部件和接口。有线通信介质的示例可以包含线、线缆、金属导线、印制电路板(PCB)、背板、交换结构、半导体材料、双绞线、同轴线缆、光纤等。

平台1702可以建立一个或多个逻辑或者物理信道来对信息进行通信。信息可以包含媒体信息和控制信息。媒体信息可以指表现对于用户有意义的内容的任何数据。内容的示例例如可以包含来自声音会话、视频会议、流式视频、电子邮件(email)消息、语音信箱消息、字母数字符号、图形、图像、视频、文本等的数据。来自声音会话的数据例如可以是语音信息、静默时段、背景噪声、舒适噪声、音调等。控制信息可以指表现对于自动化系统有意义的命令、指令或者控制字的任何数据。例如,控制信息可以被用于以预定的方式通过系统对媒体信息进行路由,或者指示节点来处理媒体信息。然而,实施例不限于图17示出或者描述的要素或者背景。

如上所述,系统1700可以以变化的物理风格或者形状因子来实施。图18示出其中系统1800可以实施的小形状因子设备1800的实现。例如,在各种实现中,设备1800可以实现为具有无线能力的移动计算设备。移动计算设备可以指例如具有处理系统和移动电源或者供电(诸如一个或多个电池)的任何设备。

如上所述,移动计算设备的示例可以包含个人计算机(PC)、膝上型计算机、超膝上型计算机、平板计算机、触摸板、便携计算机、手持型计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如智能电话、智能平板计算机或者智能电视)、移动互联网设备(MID)、消息收发设备、数据通信设备、照相机(例如任意拍摄照相机、超大变焦照相机、数字单反(DSLR)照相机)等。

移动计算设备示例还可以包含被布置为由人穿戴的计算机,诸如腕上计算机、指上计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋内计算机、衣服计算机、以及其他可穿戴计算机。在各种实施例中,例如移动计算设备可以实现为能够执行计算机应用以及声音通信和/或数据通信的智能手机。尽管一些实施例以示例的方式可以描述为具有实现为智能手机的移动计算设备,但可以理解的是也可以使用其他无线移动计算设备来实现其他实施例。实施例不限于该背景。

如图18所示,设备1800可以包含外壳1802、显示器1804、输入/输出(I/O)设备1806和天线1808。设备1800还包含导航功能1812。显示器1804可以包含用于对移动计算设备适当显示信息的任何适当的显示器单元。I/O设备1806可以包含用于向移动计算设备输入信息的任何适当的I/O设备。用于I/O设备1806的示例可以包含字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、摇臂开关、麦克风、扬声器、声音识别设备和软件等。信息还可以通过麦克风(未示出)输入至设备1800。这样的信息可以由声音识别设备(未示出)来数字化。实施例不限于该背景。

各种实施例可以使用硬件元素、软件元素、或者两者的组合来实现。硬件元素的示例可以包含处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、特定应用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件的示例可以包含软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子程序、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或者其任何组合。确定是否使用硬件元素和/或软件元素实现了实施例可以跟据任何数量的要素而变化,诸如期望的计算速度、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度、以及其他设计或者性能约束。

至少一个实施例的一个或多个方面可以由存储在机器可读介质上的代表性指令实现,其代表处理器内的各种逻辑,当由机器读出时,使机器生成执行本文描述的技术的逻辑。这样的代表被称为“IP核心”,可以被存储在有形、机器可读介质中,并供应至各种客户或者制造设施,以载入到实际上生成逻辑或者处理器的生成机器中。

虽然已参考各种实施例描述了本文记载的某些特征,但该描述不意图从限制意义上解释。因此关于本公开的领域的技术人员容易想到本文描述的实现的各种修改以及其他实现被视为落入本公开的精神和范围内。

下面的示例涉及其他实施例。

在一个示例中,一种用于视频编码的计算机实现的方法可以包含:获得用于熵编码的第一视频数据和第二视频数据,使得第一视频数据和第二视频数据包括不同数据类型;确定对于关联于第一视频数据的第一视频数据的第一熵编码技术,使得第一熵编码技术包含自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的至少一个;使用第一编码技术将第一视频数据熵编码,以产生第一压缩的视频数据,并使用第二编码技术将第二视频数据熵编码,以产生第二压缩的视频数据;以及组装第一压缩的视频数据和第二压缩的视频数据,以产生输出比特流。

在另一个示例中,用于视频编码的计算机实现的方法还可以包含:用音频流将输出比特流复用,以产生复用的音频视频的流,使得音频流包括编码的音频流或者未编码的音频流中的至少一个;基于获得的运动矢量数据来执行运动矢量预测,以产生预测的运动矢量,使得获得的运动矢量数据包括原始的运动矢量;确定原始的运动矢量与预测的运动矢量的差异来产生差异运动矢量,使得第二视频数据包括差异运动矢量,并且使得第二熵编码技术包括自适应分类的可变长度编码;获得用于熵编码的第三视频数据、第四视频数据、第五视频数据、第六视频数据、以及第七视频数据;使用第三视频编码技术将第三视频数据熵编码,以产生第三压缩的视频数据;使用第四视频编码技术将第四视频数据熵编码,以产生第四压缩的视频数据;使用第五视频编码技术将第五视频数据熵编码,以产生第五压缩的视频数据;使用第六视频编码技术将第六视频数据熵编码,以产生第六压缩的视频数据;并且使用第七视频编码技术将第七视频数据熵编码,以产生第七压缩的视频数据,使得组装第一压缩的视频数据和第二压缩的视频数据还包括:组装第三、第四、第五、第六、以及第七压缩的视频数据,以产生输出比特流,使得第一视频数据包括比特流头部数据、变形参数、合成参数、或者全局映射数据中的至少一个,第三视频数据包括帧内预测分区数据、帧间预测分区数据或者画面片或者区域数据中的至少一个,第四视频数据包括分离的/非分离的分区信息数据的分开编码、分离的/非分离的分离信息数据的分开编码、预测参考信息数据、或者模式和分离信息数据的联合编码中的至少一个,第五视频数据包括编码的/未编码的数据,第六视频数据包括转换系数数据,并且第七视频数据包括帧内预测类型或者帧内预测方向数据、传输输出比特流、接收输出比特流中的至少一个;将输出比特流分解来确定第一、第二、第三、第四、第五、第六、以及第七压缩的视频数据;使用关联的第一、第二、第三、第四、第五、第六、以及第七熵解码技术将第一、第二、第三、第四、第五、第六、以及第七压缩的视频数据熵解码,以产生熵解码的视频数据,将熵解码的视频数据解码,以产生视频帧,并将视频帧传输至显示器设备用于呈现。第一视频数据可以包含比特流头部数据、变形参数、合成参数、或者全局映射数据中的至少一个。第一视频数据可以包含帧内预测分区数据、帧间预测分区数据和/或编码分区数据中的至少一个。第一视频数据可以包含模式信息数据的分开编码、分离的/非分离的信息数据的分开编码、或者预测参考信息数据中的至少一个。第一视频数据可以包含编码的/未编码的数据。第二视频数据可以包含转换系数数据,使得第二熵编码技术可以包含自适应矢量可变长度编码、自适应1维可变长度编码、或者自适应2维可变长度编码中的至少一个,使得转换系数数据可以包含第一转换系数数据、第二转换系数数据、以及第三转换系数数据,使得第一转换系数数据可以经由自适应矢量可变长度编码来编码,第二转换系数数据可以经由自适应1维可变长度编码来编码,并且第三转换系数数据可以经由自适应2维可变长度编码来编码,并使得第一转换系数数据可以包含在一个维度中具有为2的块尺寸的数据,第二转换系数数据可以包含具有为4x4的块尺寸的数据,并且第三转换系数数据可以包含具有为4x8、8x4、8x8、16x16、32x32、或者64x64中的至少一个的块尺寸的数据。第二视频数据可以包含画面片或者区域数据,并且第二熵编码技术可以包含自适应码书可变长度编码。第二视频数据可以包含模式和分离信息数据的联合编码,并且第二熵编码技术可以包含自适应可变长度编码。第二视频数据可以包含帧内预测类型或者帧内预测方向数据中的至少一个,并且第二熵编码技术可以包含自适应可变长度编码技术或者算术编码技术中的至少一个。获得第一视频数据和第二视频数据可以包含在不同时间获得第一视频数据和第二视频数据。组装第一压缩的视频数据和第二压缩的视频数据可以包含将第一压缩的视频数据和第二压缩的视频数据复用,使得第一压缩的视频数据是基于画面的,并且第二压缩的视频数据是基于区域、基于片、基于图块、基于预测分区、或者基于编码分区中的至少一个。自适应符号运行可变长度编码技术可以包含在应用自适应符号运行可变长度编码之前,将第一视频数据从位图数据转换至逆位图、差分位图、或者梯度预测位图中的至少一个。自适应符号运行可变长度编码技术可以包含对第一视频数据中的跳过的块的运行进行编码。自适应符号运行可变长度编码技术可以包含第一视频数据的多级符号运行编码。自适应代理可变长度编码技术可以包含用可变长度代码来更换第一视频数据的原始的固定长度1维块,其中,原始的固定长度1维块可以包含为2比特、3比特、或者4比特中至少一个的长度,其中,原始的固定长度1维块可以包含为2比特的长度并且可变长度代码包括为1至3比特的可变长度,使得原始的固定长度1维块可以包含为3比特的长度并且可变长度代码包括为1至5比特的可变长度。

在另一个示例中,用于经由自适应熵编码器来视频编码的计算机实现的方法可以包含:获得用于熵编码的视频数据;确定关联于用于编码视频数据的自适应符号运行可变长度编码技术的选择的表格;基于选择的表格,使用自适应符号运行可变长度编码技术将视频数据熵编码,以产生压缩的视频数据;并且将对于选择的表格的指示符和压缩的视频数据编码到输出比特流中。

在又一个示例中,用于经由自适应熵编码器来视频编码的计算机实现的方法可以包含:获得用于熵编码的视频数据;确定关联于用于编码视频数据的自适应代理运行可变长度编码技术的选择的表格;基于选择的表格,使用自适应代理运行可变长度编码技术将视频数据熵编码,以产生压缩的视频数据;并且将对于选择的表格的指示符和压缩的视频数据编码到输出比特流中。

在其他示例中,视频编码器可以包含图像缓冲器,并且图形处理单元具有熵编码器逻辑电路。图形处理单元可以通信地耦合至图像缓冲器,并且熵编码器逻辑电路可以被配置为获得用于熵编码的第一视频数据和第二视频数据,使得第一视频数据和第二视频数据包括不同数据类型;确定对于第一视频数据的第一熵编码技术,使得第一熵编码技术可以包含自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的至少一个;使用第一编码技术将第一视频数据熵编码,以产生第一压缩的视频数据,并使用第二编码技术将第二视频数据熵编码,以产生第二压缩的视频数据;并且组装第一压缩的视频数据和第二压缩的视频数据,以产生输出比特流。

在其他示例视频编码器中,熵编码器逻辑电路还可以被配置为用音频流复用输出比特流,以产生复用的音频视频的流,使得音频流包括编码的音频流或者未编码音频流中的至少一个;执行运动矢量预测,基于获得的运动矢量数据来执行运动矢量预测,以产生预测的运动矢量,使得获得的运动矢量数据包括原始的运动矢量;确定原始的运动矢量与预测的运动矢量的差异来产生差异运动矢量,使得第二视频数据可以包含差异运动矢量,并且使得第二熵编码技术可以包含自适应分类的可变长度编码;获得用于熵编码的第三视频数据、第四视频数据、第五视频数据、第六视频数据、以及第七视频数据,并使用第三视频编码技术将第三视频数据熵编码,以产生第三压缩的视频数据;使用第四视频编码技术将第四视频数据熵编码,以产生第四压缩的视频数据;使用第五视频编码技术将第五视频数据熵编码,以产生第五压缩的视频数据;使用第六视频编码技术将第六视频数据熵编码,以产生第六压缩的视频数据,并使用第七视频编码技术将第七视频数据熵编码,以产生第七压缩的视频数据,其中,组装第一压缩的视频数据和第二压缩的视频数据还可以包含:熵编码器逻辑电路被配置为组装第三、第四、第五、第六、以及第七压缩的视频数据,以产生输出比特流,使得第一视频数据包括比特流头部数据、变形参数、合成参数、或者全局映射数据中的至少一个,第三视频数据可以包含帧内预测分区数据、帧间预测分区数据或者画面片或者区域数据中的至少一个,第四视频数据可以包含分离的/非分离的分区信息数据的分开编码、分离的/非分离的分离信息数据的分开编码、预测参考信息数据、或者模式和分离信息数据的联合编码中的至少一个,第五视频数据可以包含编码的/未编码的数据,第六视频数据可以包含转换系数数据并且第七视频数据可以包含帧内预测类型或者帧内预测方向数据中的至少一个。第一视频数据可以包含比特流头部数据、变形参数、合成参数、或者全局映射数据中的至少一个。第一视频数据可以包含帧内预测分区数据、帧间预测分区数据、和/或编码分区数据中的至少一个。第一视频数据可以包含模式信息数据的分开编码、分离的/非分离的信息数据的分开编码、或者预测参考信息数据中的至少一个。第一视频数据可以包含编码的/未编码的数据。第二视频数据可以包含转换系数数据,使得第二熵编码技术可以包含自适应矢量可变长度编码、自适应1维可变长度编码、或者自适应2维可变长度编码中的至少一个,使得转换系数数据可以包含第一转换系数数据、第二转换系数数据、以及第三转换系数数据,使得第一转换系数数据可以经由自适应矢量可变长度编码来编码,第二转换系数数据可以经由自适应1维可变长度编码来编码,并且第三转换系数数据可以经由自适应2维可变长度编码来编码,并使得第一转换系数数据可以包含在一个维度中具有为2的块尺寸的数据,第二转换系数数据可以包含具有为4x4的块尺寸的数据,并且第三转换系数数据可以包含具有为4x8、8x4、8x8、16x16、32x32、或者64x64中的至少一个的块尺寸的数据。第二视频数据可以包含画面片或者区域数据,并且第二熵编码技术可以包含自适应码书可变长度编码。第二视频数据可以包含模式和分离信息数据的联合编码,并且第二熵编码技术可以包含自适应可变长度编码。第二视频数据可以包含帧内预测类型或者帧内预测方向数据中的至少一个,并且第二熵编码技术可以包含自适应可变长度编码技术或者算术编码技术中的至少一个。获得第一视频数据和第二视频数据可以包含在不同时间获得第一视频数据和第二视频数据。组装第一压缩的视频数据和第二压缩的视频数据可以包含将第一压缩的视频数据和第二压缩的视频数据复用,使得第一压缩的视频数据是基于画面的,并且第二压缩的视频数据是基于区域、基于片、基于图块、基于预测分区、或者基于编码分区中的至少一个。自适应符号运行可变长度编码技术可以包含在应用自适应符号运行可变长度编码之前,将第一视频数据从位图数据转换至逆位图、差分位图、或者梯度预测位图中的至少一个。自适应符号运行可变长度编码技术可以包含对第一视频数据中的跳过的块的运行进行编码。自适应符号运行可变长度编码技术可以包含第一视频数据的多级符号运行编码。自适应代理可变长度编码技术可以包含用可变长度代码来更换第一视频数据的原始的固定长度1维块,其中,原始的固定长度1维块可以包含为2比特、3比特、或者4比特中的至少一个的长度,其中,原始的固定长度1维块可以包含为2比特的长度并且可变长度代码包括为1至3比特的可变长度,使得原始的固定长度1维块可以包含为3比特的长度并且可变长度代码包括为1至5比特的可变长度。

在又一个示例中,系统可以包含天线,其配置为接收视频数据的熵编码的比特流;以及视频解码器,其通信地耦合至天线并配置为将编码的比特流解码。编码的比特流可以包含第一压缩的视频数据和第二压缩的视频数据,使得第一压缩的视频数据和第二压缩的视频数据包括不同数据类型。视频解码器可以被配置为将熵编码的比特流分解来确定第一压缩的视频数据和第二压缩的视频数据;确定对于第一压缩的视频数据的第一熵解码技术,使得第一熵解码技术可以包括自适应符号运行可变长度编码技术或者自适应代理可变长度编码技术中的至少一个;基于第一熵解码技术将第一压缩的视频数据熵解码,以产生第一视频数据;并且基于第二熵解码技术将第二压缩的视频数据熵解码,以产生第二视频数据;并且解码第一视频数据和第二视频数据来产生视频帧。

在其他示例系统中,系统还可以包含显示器设备,其配置为呈现视频帧。视频解码器还可以被配置为经由第二视频数据确定差异运动矢量;基于解码的运动矢量数据来执行运动矢量预测,以产生预测的运动矢量;对差异运动矢量和预测的运动矢量进行加和,来产生重建的运动矢量;使用第三视频解码技术将第三压缩的视频数据熵解码,以产生第三视频数据;使用第四视频解码技术将第四压缩的视频数据熵解码,以产生第四视频数据;使用第五视频解码技术将第五压缩的视频数据熵解码,以产生第五视频数据;使用第六视频解码技术将第六压缩的视频数据熵解码,以产生第六视频数据;并且使用第七视频解码技术将第七压缩的视频数据熵解码,以产生第七视频数据,其中,第一压缩的视频数据可以包含头部数据、变形参数、合成参数、或者全局映射数据中的至少一个,第三压缩的视频数据可以包含帧内预测分区数据、帧间预测分区数据或者画面片或者区域数据中的至少一个,第四压缩的视频数据可以包含分离的/非分离的分区信息数据的分开编码、分离的/非分离的分离信息数据的分开编码、预测参考信息数据、或者模式和分离信息数据的联合编码中的至少一个,第五压缩的视频数据可以包含编码的/未编码的数据,第六压缩的视频数据可以包含转换系数数据,并且第七压缩的视频数据可以包含帧内预测类型或者帧内预测方向数据中的至少一个,并传输视频帧至显示器设备用来呈现。第一压缩的视频数据可以包含头部数据、变形参数、合成参数、或者全局映射数据中的至少一个。第一压缩的视频数据可以包含帧内预测分区数据、帧间预测分区数据、和/或编码分区数据中的至少一个。第一压缩的视频数据可以包含模式信息数据的分开编码、分离的/非分离的信息数据的分开编码、或者预测参考信息数据中的至少一个。第一压缩的视频数据可以包含编码的/未编码的数据。第二压缩的视频数据可以包含转换系数数据,使得第二熵编码技术可以包含自适应矢量可变长度编码、自适应1维可变长度编码、或者自适应2维可变长度编码中的至少一个,使得转换系数数据可以包含第一转换系数数据、第二转换系数数据、以及第三转换系数数据,使得第一转换系数数据可以经由自适应矢量可变长度编码来编码,第二转换系数数据可以经由自适应1维可变长度编码来编码,并且第三转换系数数据可以经由自适应2维可变长度编码来编码,并使得第一转换系数数据可以包含在一个维度中具有为2的块尺寸的数据,第二转换系数数据可以包含具有为4x4的块尺寸的数据,并且第三转换系数数据可以包含具有为4x8、8x4、8x8、16x16、32x32、或者64x64中的至少一个的块尺寸的数据。第二压缩的视频数据可以包含画面片或者区域数据,并且第二熵编码技术可以包含自适应码书可变长度编码。第二压缩的视频数据可以包含模式和分离信息数据的联合编码,并且第二熵编码技术可以包含自适应可变长度编码。第二压缩的视频数据可以包含帧内预测类型或者帧内预测方向数据中的至少一个,并且第二熵编码技术可以包含自适应可变长度编码技术或者算术编码技术中的至少一个。

在其他示例中,至少一个机器可读介质可以包含多个指令,其响应于在计算设备上被执行,使计算设备执行根据任何一个上述示例的方法。

在其他示例中,装置可以包含用于根据任何一个上述示例执行方法的单元。

上述示例可以包含特征的特定组合。然而,这样的上述示例不限于此,在各种实现中,上述示例可以包含:承担这样的特征的仅子集,承担不同顺序的这样的特征,承担这样的特征的不同组合,和/或承担明确列出的这些特征附加的特征。例如,相对于示例方法描述的所有特征可以相对于示例装置、示例系统、和/或示例物品来实现,并且反之亦然。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1