首页> 中国专利> 用于下一代视频的视频编解码器架构

用于下一代视频的视频编解码器架构

摘要

描述了一种用于对下一代视频(NGV)编码进行预测和编码的内容自适应划分有关的系统、装置和方法。NGV编码与基于标准的方法不同,这是由于NGV编码自然地将基于重要内容的自适应性并入到视频编码过程以实现更高的压缩。在另一方面,NGV利用了由于自然存在于典型的视频场景中的运动和其他类型的帧间差(增益、模糊、配准)所导致的帧间差。

著录项

  • 公开/公告号CN104737540A

    专利类型发明专利

  • 公开/公告日2015-06-24

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201380053514.7

  • 发明设计人 A·普里;N·N·戈卡莱;

    申请日2013-11-13

  • 分类号H04N19/50(20060101);H04N19/00(20060101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人邬少俊;王英

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 09:38:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-05-22

    授权

    授权

  • 2015-07-22

    实质审查的生效 IPC(主分类):H04N19/50 申请日:20131113

    实质审查的生效

  • 2015-06-24

    公开

    公开

说明书

相关申请

本申请要求享有于2012年11月13日递交的、且其名称为“CONTENTADAPTIVE VIDEO CODER”的美国临时申请No.61/725,576以及于2013年1月30日递交的、且其名称为“NEXT GENERATION VIDEO CODING”的美国临时申请No.61/758,314的权益。

背景技术

视频编码器压缩视频信息,使得可以在给定的带宽上发送更多信息。然后,可以将压缩的信号发送至具有解码器的接收器,该解码器在显示之前将信号解码或解压缩。

高效视频编码(HEVC)是最新的视频压缩标准,其由关于视频编码(JCT-VC)的联合协作团队开发,该关于视频编码的联合协作团队由ISO/IEC移动图片专家组(MPEG)和ITU-T视频编码专家组(VCEG)形成。响应于先前的H.264/AVC(高级视频编码)标准未提供对于演进的较高分辨率视频应用足够的压缩,正在开发HEVC。与先前的视频编码标准相类似,HEVC包括诸如帧内/帧间预测、变换、量化、循环内滤波、和熵编码之类的基本功能模块。

进行中的HEVC标准可能尝试改进H.264/AVC标准的限制,例如针对所允许的预测分区和编码分区的有限的选择、有限的所允许的生成多个参考和预测、有限的变换块大小和实际变换、有限的用于减小编码噪音的机制、以及低效的熵编码技术。但是,进行中的HEVC标准可以使用迭代方法来解决这样的问题。

例如,随着要压缩的视频的分辨率和对高视频质量的期望的日益增加,使用诸如H.264之类的现有的视频编码标准或甚至诸如H.265/HEVC之类的更演进的标准进行编码所需的相应的比特率/带宽相对较高。前述的标准使用传统方式的扩展形式来隐式地解决不充分压缩/质量问题,但是经常的,其结果是有限的。

在下一代视频(NGV)编解码器项目的背景中开发的本公开解决了设计最大化可获得的压缩效率且同时保持足够实际以用于在设备上实现的高级视频编解码器的一般问题。例如,随着由于好显示器的可用性所导致的视频分辨率和对高视频质量的期望的日益增加,使用诸如较早的MPEG标准之类的现有视频编码标准和甚至较新的H.264/AVC标准所需的相应比特率/带宽相对较高。H.264/AVC未被认为对于演进的较高分辨率视频应用提供了足够的压缩。

附图说明

通过示例的方式而非通过限制的方式在附图中示出了本申请中描述的资料。为了说明的简单和清楚,附图中示出的元件不一定按比例画出。例如,为了清晰起见,可能相对于其他元件而放大了一些元件的尺寸。此外,在认为适当的地方,在附图中重复了附图标记以指示相应的或类似的元件。在附图中:

图1(a)为示例性下一代视频编码器的直观图;

图1(b)为示例性下一代视频编码器的直观图;

图2为示例性下一代视频解码器的直观图;

图3为示例性下一代视频编码器和相关控制信号的直观图;

图4为示例性下一代视频解码器和相关控制信号的直观图;

图5(a)为示例性下一代视频编码器和子系统的直观图;

图5(b)为示例性下一代视频解码器和子系统的直观图;

图6为示例性下一代视频编码器和子系统的直观图;

图7为示例性下一代视频编码器和子系统的直观图;

图8示出了具有用于预测分块的示例性瓦片和超分片的示例性视频帧;

图9示出了示例性视频帧的一行瓦片的示例性超分片;

图10示出了视频帧的示例性区域层分段;

图11(A)和11(B)示出了被分段成区域层并根据瓦片被划分成超分片的示例性视频帧;

图12(A)和12(B)为示例性编码器子系统的直观图;

图13为示例性解码器子系统的直观图;

图14为经修改的预测参考图片的直观图;

图15为示例性编码器子系统的直观图;

图16为示例性解码器子系统的直观图;

图17为示例性编码器滤波器子系统的直观图;

图18为示例性编码器滤波器子系统的直观图;

图19为使用二叉树划分技术的示例性划分;

图20为使用k-d树划分技术的示例性划分;

图21为示例性编码器滤波器子系统的直观图;

图22为示例性解码器滤波器子系统的直观图;

图23为示例性编码器滤波器子系统的直观图;

图24为示例性解码器滤波器子系统的直观图;

图25为示例性熵编码器模块的直观图;

图26为示例性熵解码器模块的直观图;

图27为示例性编码过程的流程图;

图28为示例性比特流;

图29为示出了示例性解码过程的流程图;

图30(A)、30(B)、和30(C)是示例性视频编码系统和在运行中的视频编码过程的直观图;

图31为示例性视频编码系统的直观图;

图32为示例性系统的直观图;

图33示出了全部根据本公开的至少一些实施方式而布置的示例性设备。

具体实施方式

现在参照附图来描述一个或多个实施例或实施方式。虽然讨论了特定的配置和布置,但是应该理解的是这仅是为了说明的目的而进行的。相关领域的技术人员将认识到可以利用其它的配置和布置而不偏离描述的精神和范围。对相关领域的技术人员而言将显而易见的是,本申请中描述的技术和/或布置也可以在与本申请中所描述的不同的各种其他系统和应用中采用。

虽然以下描述阐述了可以在诸如例如片上系统(SoC)架构中表示的各种实施方式,但是本申请中描述的技术和/或布置的实施方式并不限于特定的架构和/或计算系统,且其可以为了类似的目的由任何架构和/或计算系统来实现。例如,采用例如多个集成电路(IC)芯片和/或封装的各种架构、和/或诸如机顶盒、智能电话等的各种计算设备和/或消费电子(CE)设备可以实现本申请中描述的技术和/或布置。此外,虽然以下描述可能阐述了诸如逻辑实现、系统组件的类型和相互关系、逻辑分块/集成选择等的许多特定细节,但是可以在没有这样的特定细节的情况下实践要求保护的主题。在其他实例中,为了不混淆本申请中所公开的资料,可能不详细示出诸如例如控制结构和完整的软件指令序列之类的一些材料。

本申请中公开的资料可以以硬件、固件、软件或其任何组合来实现。本申请中公开的资料也可以实现为在机器可读介质上存储的指令,该指令可以由一个或多个处理器读取和执行。机器可读介质可以包括用于以机器(例如,计算设备)可读的形式存储或发送信息的任何介质和/或机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等);以及其他的。

本说明书中提及的“一个实施方式”、“实施方式”、“一示例性实施方式”等指示所描述的实施方式可以包括特定的特征、结构、或特性,但是每一实施例未必包括该特定的特征、结构或特性。此外,这样的短语未必指代同一实施方式。此外,当结合实施例描述特定的特征、结构或特性时,所主张的是,无论在本申请中是否明确描述,结合其他实施方式来产生这样的特征、结构或特性是在本领域的普通技术人员的知识之内的。

下文描述了与用于下一代视频编码的针对预测和编码的内容自适应划分有关的系统、装置、制品和方法。

如上文所讨论的,随着由于好显示器的可用性所导致的视频分辨率和对高视频质量的期望的日益增加,使用诸如较早的MPEG标准以及甚至更新的H.264/AVC标准之类的现有视频编码标准所需的相应的比特率/带宽相对较高。实际上,由于H.264/AVC未被认为对于演进的较高分辨率视频应用提供了足够的压缩,所以开发新标准(HEVC)被认为是必需的。

H.264/AVC编码标准,虽然其与过去的MPEG标准相比代表改进,但是其仍然很有限。例如,进行中的HEVC标准具有如下限制:1)针对所允许的预测分区和编码分区的选择非常有限;2)所允许的多个参考和预测生成非常有限;3)变换块大小和实际可用的变换非常有限;4)用于减小编码噪音的机制(仅解块(deblocking))非常有限;以及5)用于开销数据(例如模式、运动向量等)的熵编码技术效率不高。在HEVC中正在进行的工作认识到了诸如H.264的标准的目前发展水平的前述限制,HEVC使用迭代方式来修复这些限制。

如将在下文更详细讨论的,本公开是在下一代视频(NGV)编解码器项目的背景下开发的,本公开解决了设计最大化可获得的压缩效率且同时保持足够实际以用于在设备上实现的高级视频编解码器的一般问题。在HEVC中正在进行的工作认识到了诸如H.264的标准的目前发展水平的前述限制,HEVC使用迭代方式来修复这些限制,这与由本公开描述的NGV视频编码系统所使用的方式相对照。

NGV视频编码与基于标准的方式不同,这是由于NGV视频编码自然地将基于重要内容的自适应性并入到视频编码过程中以实现较高的压缩。通过比较,基于标准的视频编码方式通常趋向于通过对传统方式的适配和精调(fine tunning)来挤压更高的增益。例如,所有基于标准的方式严重地依赖于适配及进一步微调(tweak)运动补偿的帧间编码作为用于减小预测差以获得增益的主要方式。在另一方面,除了利用由于运动导致的帧间差之外,NGV还利用自然存在于典型的视频场景中的其他类型的帧间差(增益、模糊、配准)。

如在本申请中所使用的,术语“编码器”可以指代编码器和/或解码器。类似地,如在本申请中所使用的,术语“编码”可以指代通过编码器执行视频编码和/或通过解码器执行视频解码。例如,视频编码器和视频解码器两者都可以是能够对视频数据进行编码的编码器的示例。此外,如在本申请中所使用的,术语“编解码器”可以指代诸如例如可以实现编码器和/或解码器的软件、固件、和/或硬件的任何过程、程序、或操作组。此外,如在本申请中所使用的,短语“视频数据”可以指代与视频编码相关联的诸如例如视频帧、图像数据、经编码的比特流数据等的任何类型的数据。

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

如所示出的,可以从自适应图片组织器模块104向预测分区生成器模块105发送视频帧和/或其他的数据。在一些示例中,预测分区生成器模块105可以将帧或图片分成瓦片(tiles)或超分片(super-fragments)等。在一些示例中,额外的模块(例如,在模块104和105之间)可以被提供以用于将帧或图片分成瓦片或超分片。预测分区生成器模块105可以将每一瓦片或超分片分成潜在的预测分块分块(partitionings)或分区(partitions)。在一些示例中,可以使用诸如例如k-d树划分技术、二叉树划分技术等的划分技术来确定潜在的预测分块,潜在的预测分块可以基于个体视频帧的图片类型(例如,I-、P-、或F/B-图片)、被划分的帧部分的特性等来确定。在一些示例中,所确定的潜在的预测分块可以是用于预测的分区(例如,帧间或帧内预测)并且所确定的潜在的预测分块可以被描述为预测分区或预测块等。

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

如所示出的,在差异确定器106处,可以确定所选择的预测分块(例如,当前帧的预测分区)的原始像素与所预测的分区的差异(例如,基于一参考帧或多个参考帧或诸如帧间或帧内预测数据的其他预测性数据而对当前帧的预测分区的预测)。预测分区的确定将在下文进一步描述且如图1(a)中所示包括解码循环。可以将来自该差异的任何残差或残差数据(例如,划分预测误差数据)发送至编码分区生成器模块107。在一些示例中,例如对于在任何图片类型(I、F/B、或P图片)中进行的对预测分区的帧间预测,编码分区生成器模块107可以通过开关107a和107b被绕开。在这样的示例中,仅可以执行单级的划分。这样的划分可以被描述为预测分块(如所讨论的)或编码分块或两者。在各种示例中,这样的划分可以通过预测分区生成器模块105来执行(如所讨论的),或如在本申请中进一步讨论的,这样的划分可以通过k-d树帧内预测/编码划分器模块来执行或通过经由编码分区生成器模块107实现的二叉树帧内预测/编码划分器模块来执行。

在一些示例中,分区预测误差数据,如果有的话,可能不够重要来保证编码。在其他示例中,在可能期望对分区预测误差数据进行编码且分区预测误差数据与帧间预测相关联等的情况下,编码分区生成器模块107可以确定预测分区的编码分区。在一些示例中,可能不需要编码分区生成器模块107,这是因为分区可以在没有编码分块的情况下被编码(例如,如通过开关107a和107b而可用的旁路路径所示出的)。在有编码分块或没有编码分块的情况下,如果残差或残差数据需要编码,则可以向自适应变换模块108发送分区预测误差数据(随后其可以在任何事件中被描述为编码分区)。在一些示例中,预测分区生成器模块105和编码分区生成器模块107可以一起被认为是编码器100的划分器子系统。在各个示例中,编码分区生成器模块107可以对分区预测误差数据、原始像素数据、残差数据、或小波数据进行操作。

编码分区生成器模块107可以使用二叉树和/或k-d树划分技术等生成例如分区预测误差数据的潜在的编码分块(例如,编码分区)。在一些示例中,可以通过自适应变换模块108使用具有各种块大小的自适应或固定变换来变换潜在的编码分区,并且可以基于速率失真优化或其它基础来确定所选择的编码分块和所选择的变换(例如,自适应的或固定的)。在一些示例中,所选择的编码分块和/或所选择的变换可以基于根据编码分区尺寸等的预先确定的选择方法来确定。

例如,自适应变换模块108可以包括:用于执行参数变换以允许对小到中型尺寸的块的局部优化变换的第一部分或组件以及用于使用固定变换(例如,离散余弦变换(DCT)或来自各种变换(包括参数变换)的基于图片的变换)执行全局稳定的、低开销变换编码的第二部分或组件,或如本申请中进一步讨论的任何其他配置。在一些示例中,如在本申请中进一步讨论的,对于局部优化转换编码,可以执行参数哈尔变换(PHT)。在一些示例中,可以对大小在大约4x4像素和64x64像素之间的矩形2D块执行变换,其中实际尺寸取决于多个因素,例如被变换的数据是亮度还是色度,或是帧间还是帧内,或所确定的所使用的变换是PHT还是DCT等。

如所示出的,可以将所产生的变换系数发送至自适应量化模块109。自适应量化模块109可以量化所产生的变换系数。此外,可以根据需要而向自适应量化模块109(如果想要量化)或自适应熵编码器模块110发送与参数变换相关联的任何数据。此外,如在图1(a)中所示出的,可以扫描并向自适应熵编码器模块110发送经量化的系数。自适应熵编码器模块110可以对经量化的系数进行熵编码且将其包含在输出比特流111中。在一些示例中,自适应变换模块108和自适应量化模块109可以一起被认为是编码器100的变换编码器子系统。

如也在图1(a)中所示出的,编码器100包括局部解码循环。局部解码循环可以在自适应逆量化模块112处开始。自适应逆量化模块112可以被配置为执行自适应量化模块109的相反操作,使得可以执行逆扫描并且经量化的系数可以被去缩放以确定变换系数。这样的自适应量化操作可能是例如有损耗的。如所示出的,可以向自适应逆变换模块113发送变换系数。自适应逆变换模块113可以执行如由自自适应变换模块108所执行的变换的逆变换,例如,以生与编码分区相关联的成残差或残差值或分区预测误差数据(或如所讨论的,原始数据或小波数据)。在一些示例中,自适应逆量化模块112和自适应逆变换模块113可以一起被认为是编码器100的变换解码器子系统。

如所示出的,可以向可选的编码分区组装器114发送分区预测误差数据(等)。根据需要,编码分区组装器114可以根据需要将编码分区组装成解码的预测分区(如所示出的,在一些示例中,可通过开关114a和114b跳过编码分区组装器114,使得解码的预测分区可已在自适应逆变换模块113处生成),以生成预测误差数据的预测分区或解码的残差预测分区等。

如所示出的,可以在加法器115处将解码的残差预测分区添加到预测的分区(例如,预测像素数据),以生成重建的预测分区。可以向预测分区组装器116发送该重建的预测分区。预测分区组装器116可以组装重建的预测分区以生成重建的瓦片或超分片。在一些示例中,编码分区组装器模块114和预测分区组装器模块116可以一起被认为是编码器100的非划分器(un-partitioner)子系统。

可以向块分析器(blockiness analyzer)和解块滤波模块117发送重建的瓦片或超分片。块分析器和解块滤波模块117可以对重建的瓦片或超分片(或瓦片或超分片的预测分区)进行解块和振动(dither)。例如,所生成的解块和振动滤波参数可以用于当前的滤波操作和/或在输出比特流111中被编码以由解码器使用。可以向质量分析器和质量恢复滤波模块118发送块分析器和解块滤波模块117的输出。质量分析器和质量恢复滤波模块118可以确定QR滤波参数(例如,用于QR分解)并使用所确定的参数以用于滤波。QR滤波参数也可以在输出比特流111中被编码以由解码器使用。如所示出的,可以向解码的图片缓冲器119发送质量分析器和质量恢复滤波器模块118的输出。在一些示例中,质量分析器和质量恢复滤波模块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(a)中所示出的,预测模式和参考类型分析器模块125可以允许针对瓦片(或超分片)的每一预测分区,从“跳过”、“自动”、“帧间”、“分裂”、“多个”、以及“帧内”中选择预测模式,这些模式全部可以应用于P和F/B图片。除了预测模式之外,预测模式和参考类型分析器模块125还允许选择参考类型,根据“帧间”或“多个”模式以及对于P和F/B图片,上述参考类型可以是不同的。在预测模式和参考类型分析器模块125的输出处的预测信号可以被预测分析器和预测融合滤波模块126来滤波。预测分析器和预测融合滤波模块126可以确定要用于滤波和可以执行滤波的参数(例如,滤波系数、频率、开销)。在一些示例中,对预测信号进行滤波可以融合代表不同模式(例如,帧内、帧间、多个、分裂、跳过、以及自动)的不同类型的信号。在一些示例中,帧内预测信号可能与所有其他类型的帧间预测信号都不同,使得适当的滤波可以极大地增强编码效率。在一些示例中,可以在输出比特流111中编码滤波参数以供由解码器使用。如上文所讨论的,经滤波的预测信号可以向差异确定器106提供第二输入(例如,预测分区),上述差异确定器106可以确定预测差异信号(例如,分区预测误差)以用于之前讨论的进行编码。此外,也如上文所描述的,相同的经滤波的预测信号可以向加法器115提供第二输入。如所讨论的,输出比特流111可以提供高效编码的比特流以供由解码器使用以用于呈现视频。

图1(b)是根据本公开的至少一些实施方式布置的示例性下一代视频编码器100b的直观图。图1(b)呈现了与图1(a)中示出的编码器类似的编码器,且为了简洁将不重复类似的元件。如在图1(b)中所示出的,编码器100b可以包括变形分析器和变形的图片生成模块120b以及合成分析器和生成模块121b。在该示例性配置中,变形分析器和变形的图片生成模块120b以及合成分析器和生成模块121b可以从自适应图片组织器104接收输出。由于变形分析器和变形的图片生成模块120b以及合成分析器和生成模块121b的操作可以不在局部解码循环中发生,所以变形分析器和变形的图片生成模块120b以及合成分析器和生成模块121b可以被认为“在循环外”。相反地,由于变形分析器和变形的图片生成模块120以及合成分析器和生成模块121的操作可以在局部解码循环中发生,所以变形分析器和变形的图片生成模块120以及合成分析器和生成模块121可以被认为“在循环内”。

重新参照图1(a),与编码器100b稍微不同的图1(a)中的编码器100。所示出的示例的一个特征是变形分析器和变形的图片生成模块120的特定位置以及在于合成分析器和合成的图片生成模块121的位置。在图1(a)中,在预测循环中示出执行操作,使得可以对解码的图片而不是如图1(b)中示出的原始帧执行变形参数生成或合成参数生成所需的分析。从而,上述变形和合成参数生成结构提供了更好的结果,然而,代价是一些延迟,这是因为分析现在可以是基于解码的图片而不是基于原始帧的。

图2是根据本公开的至少一些实施方式布置的示例性下一代视频解码器200的直观图。如所示出的,解码器200可以接收输入比特流201。在一些示例中,输入比特流201可以通过编码器100和/或通过本申请中讨论的编码技术来编码。如所示出的,可以由自适应熵解码器模块202来接收输入比特流201。自适应熵解码器模块202可以解码各种类型的编码的数据(例如,开销、运动向量、变换系数等)。在一些示例中,自适应熵解码器202可以使用可变长度解码技术。在一些示例中,自适应熵解码器202可以执行上文讨论的自适应熵编码器模块110的逆操作。

可以向自适应逆量化模块203发送解码的数据。自适应逆量化模块203可以被配置为对量化的系数进行逆扫描和去缩放以确定变换系数。例如,这样的自适应量化操作可能是有损耗的。在一些示例中,自适应量化模块203可以被配置为执行自适应量化模块109的相反操作(例如,与自适应逆量化模块112大致相同的操作)。如所示出的,可以向自适应逆变换模块204发送变换系数(以及,在一些示例中,用于在参数变换中使用的变换数据)。自适应逆变换模块204可以对变换系数执行逆变换以生成与编码分区相关联的残差或残差值或分区预测误差数据(或原始数据或小波数据)。在一些示例中,自适应逆变换模块204可以被配置为执行自适应变换模块108的相反操作(例如,与自适应逆变换模块113大致相同的操作)。在一些示例中,自适应逆变换模块204可以基于诸如例如解码的相邻分区之类的其他先前解码的数据来执行逆变换。在一些示例中,自适应逆量化模块203和自适应逆变换模块204可以一起被认为是解码器200的变换解码器子系统。

如所示出的,可以向编码分区组装器205发送残差或残差值或分区预测误差数据。编码分区组装器205可以根据需要将编码分区组装为解码的预测分区(如所示出的,在一些示例中,可以通过开关205a和205b而跳过编码分区组装器205,使得解码的预测分区可已经在自适应逆变换模块204处生成)。可以在加法器206处将预测误差数据的解码预测分区(例如,预测分区残差)添加到预测的分区,以生成重建的预测分区。可以向预测分区组装器207发送重建的预测分区。预测分区组装器207可以组装重建的预测分区以生成重建的瓦片或超分片。在一些示例中,编码分区组装器模块205和预测分区组装器模块207可以一起被认为是解码器200的非划分器子系统。

可以向解块滤波模块208发送重建的瓦片或超分片。解块滤波模块208可以使重建的瓦片或超分片(或瓦片或超分片的预测分区)解块和振动。例如,可以根据输入比特流201来确定所生成的解块和振动滤波器参数。可以向质量恢复滤波模块209发送解块滤波模块208。例如,质量恢复滤波模块209可以基于QR参数而应用质量滤波,QR参数可以根据输入比特流201来确定。如在图2中所示出的,可以向解码图片缓冲器210发送质量恢复滤波模块209的输出。在一些示例中,质量恢复滤波模块209的输出可以是最终重建帧,该最终重建帧可以用于针对编码其他帧的预测(例如,最终重建帧可以是参考帧等)。在一些示例中,解块滤波模块208和质量恢复滤波模块209可以一起被认为是解码器200的滤波子系统。

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

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

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

如所讨论的,质量恢复滤波模块209的输出可以是最终重建帧。可以向自适应图片重组织器217发送最终重建帧,自适应图片重组织器217可以根据需要而基于输入比特流201中的排序参数来重新排序或重新组织帧。可以向内容后恢复器模块218发送重新排序的帧。内容后恢复器模块218可以是被配置为执行对解码的视频的感知质量进行进一步改进的可选模块。改进过程可以响应于输入比特流201中的质量改进参数来执行或其可以被执行成单独的操作。在一些示例中,内容后恢复器模块218可以应用参数以提高质量,诸如例如估计薄膜纹理噪声或残差块减小(例如,甚至在关于解块滤波模块208所讨论的解块操作之后)。如所示出的,解码器200可以提供显示器视频219,其可以被配置用于通过显示设备(未示出)来显示。

如所讨论的,在一些示例中,编码器100和/或解码器200可以实现关于对用于下一代视频编码的预测和编码进行内容自适应划分的技术。在一些示例中,可以由编码器100的预测分区生成器模块105来执行对于预测的内容自适应划分。在一些示例中,对于编码的内容自适应划分可以由编码器100的编码分区生成器模块107执行。在一些示例中,对于针对帧间预测等的预测的内容自适应划分可以由预测分区生成器模块105执行且对于针对帧间预测的编码的内容自适应划分等可以由编码器100的编码分区生成器模块107执行。在一些示例中,对于针对帧内预测的预测/编码的内容自适应划分(例如,仅一层的划分)可以由编码器100的预测分区生成器模块105或编码分区生成器模块107执行。此外,在一些示例中,基于编码的预测分块和/或编码分块,编码器100的编码分区组装器模块114和/或解码器200的编码分区组装器模块205可以组装编码分区以形成预测分区。此外,在一些示例中,编码器100的预测分区组装器116和/或解码器200的预测分区组装器207可以组装重建的预测分区以形成可以被组装以生成帧或图片的瓦片、超分片。如所讨论的,各种预测分区、编码分区、或瓦片或超分片可以用于帧间预测、帧内预测、其他编码效率增强、或如本申请中讨论的图像或视频增强。

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

此外,可以认识到的是,编码器100可以与内容提供商系统相关联和/或由内容提供商系统(包括例如视频内容服务器系统)提供,并且可以认识到可以由未在图1和2中描绘的诸如收发器、天线、网络系统等的各种通信组件和/或系统而向诸如例如解码器200的解码器发送或传送输出比特流111。还可以认识到的是,解码器200可以与诸如计算设备(例如,台式计算机、膝上型计算机、平板计算机、可翻转笔记本、移动电话等)的客户端系统相关联,该客户端系统远离编码器100且通过未在图1和2中描绘的诸如收发器、天线、网络系统等的各种通信组件和/或系统而接收输入比特流201。因此,在各个实施方式中,编码器100和解码器子系统200可以一起实现或彼此单独实现。

图3是根据本公开的至少一些实施方式布置的示例性下一代视频编码器300的直观图。就视频编码器300与图1(a)的视频编码器100相类似而言,为了简洁在此未重复对类似元件的讨论。图3示出了与视频编码器300的操作相关联的示例性控制信号,其中以下缩写可以表示相关联的信息:

synchg 场景变化信息

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成本 运动和编码成本

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

mv  运动向量

mop  变形参数

syp   合成参数

ddi   解块和振动信息

qri   质量恢复滤波索引/信息

api   自适应精确滤波索引/信息

fii   融合滤波索引/信息

mod   模式信息

reftyp 参考类型信息

idir  帧内预测方向

虽然将这些控制信号被示出为与图3中的编码器300的特定示例性功能模块相关联,但是其他的实施方式可以包括编码器300的功能模块之间的控制信号的不同分布。本公开不在该方面受到限制,在各个示例中,在本申请中控制信号的实施方式可以包括仅采用所示出的特定示例性控制信号、额外控制信号、和/或在与所示出的不同的布置中的子集。

图4是根据本公开的至少一些实施方式布置的示例性下一代视频解码器400的直观图。就视频解码器400与图2的视频解码器200相类似而言,为了简洁在此未重复对类似元件的讨论。图4示出了与视频解码器400的操作相关联的示例性控制信号,其中如上文关于图3所讨论的,所指出的缩写可以表示类似的信息。

虽然这些控制信息被示出为与图4中解码器400的特定示例性功能模块相关联,但是其他的实施方式可以包括编码器400的功能模块之间的控制信号的不同分布。本公开不受该方面的限制,且在各个示例中,在本申请中控制信号的实施方式可以包括仅采用所示出的特定示例性控制信号、额外控制信号、和/或在与所示出的不同的布置中的子集。

图5(a)是根据本公开的至少一些实施方式布置的示例性下一代视频编码器500a的直观图。图5(a)呈现了与图1(a)和1(b)中示出的编码器类似的编码器,且为了简洁将不重复类似的元件。如在图5(a)中所示出的,编码器500a可以包括预分析器子系统510a、划分器子系统520a、预编码子系统530a、变换编码器子系统540a、滤波编码子系统550a、熵编码器系统560a、变换解码器子系统570a、和/或非划分器子系统580a。预分析器子系统510a可以包括内容预分析器模块102和/或自适应图片组织器模块104。划分器子系统520a可以包括预测分区生成器模块105、和/或编码分区生成器107。预测编码子系统530a可以包括运动估计器模块122、特性和运动补偿的滤波估计器模块123、和/或帧内方向预测分析器和预测生成模块124。变换编码器子系统540a可以包括自适应变换模块108和/或自适应量化模块109。对编码子系统550a进行滤波可以包括块分析器和解块滤波模块117,质量分析器和质量恢复滤波模块118、运动估计器模块122、特性和运动补偿的滤波预测器模块123、和/或预测分析器和预测融合滤波模块126。熵编码子系统560a可以包括自适应熵编码器模块110。变换解码器子系统570a可以包括自适应逆量化模块112和/或自适应逆变换模块113。非划分器子系统580a可以包括编码分区组装器114和/或预测分区组装器116。

编码器500a的划分器子系统520a可以包括两个划分子系统:可以对预测执行分析和划分的预测分区生成器模块105,以及可以对编码执行分析和划分的编码分区生成器模块107。另一划分方法可以包括可以将图片分段成区域或片的自适应图片组织器104,其也可以可选地被当作该划分器的一部分。

编码器500a的预测编码器子系统530可以包括运动估计器122以及可以对“帧间”信号执行分析和预测的特性和运动补偿的滤波预测器123,以及可以对“帧内”信号执行分析和预测的帧内方向预测分析器和预测生成模块124。运动估计器122以及特性和运动补偿的滤波预测器123可以允许首先通过补偿其他源的差异(诸如增益、全局运动、配准),然后进行实际的运动补偿来增加可预测性。它们还可以允许使用数据建模来创建可以允许更好的预测的合成帧(超分辨率、和投影),然后在这样的帧中使用实际的运动补偿。

编码器500a的变换编码器子系统540a可以执行分析以选择变换的类型和大小,并且可以包括两个主要类型的组件。第一类型的组件可以允许使用参数变换来允许对小到中型大小块的局部优化变换编码;然而这样的编码可能需要一些开销。第二类型的组件可以允许使用诸如DCT的通用/固定变换、或来自包括参数变换的少量变化选择中的基于图片的变换的全局稳定的、地开销编码。对于局部自适应变换编码,可以使用PHT(参数哈尔变换)。可以对4x4和64x64之间的矩形大小的2D块执行变换,其中实际大小可以取决于许多因素,诸如变换的数据是亮度还是色度,是帧间还是帧内变换,以及所使用的变换是PHT还是DCT。可以量化、扫描和熵编码所产生的变换系数。

编码器500a的熵编码器子系统560a可以包括多个高效但低复杂性的组件,每一个这样的组件具有对特定类型的数据(各种类型的开销、运动向量、或变换系数)进行高效编码的目标。该子系统的组件可以属于通用类别的低复杂性可变长度编码技术,然而,对于高效的编码,每一组件可以针对最高效率进行自定义优化。例如,可以设计自定义解决方案以用于对“编码的/未编码的”数据进行编码、另一个用于“模式和参考类型”数据、又一个用于“运动向量”数据、且又一个用于“预测和编码分区”数据。最终,因为要被熵编码的很大部分的数据是“变换系数”数据,所以可以使用用于对特定块大小进行高效处理的多个方式,以及可以在多个表之间适配的算法。

编码器500a的滤波编码器子系统550a可以执行对参数的分析并基于这些参数执行对重建的图片多次滤波,且其可以包括若干子系统。例如,第一子系统(块分析器和解块滤波模块117)可以解块和振动以减小或掩盖任何潜在的块编码噪音。第二示例性的子系统(质量分析器和质量恢复滤波模块118)可以执行一般的质量恢复以减小由于在任何视频编码中的量化操作导致的噪音。第三示例性的子系统(可以包括运动估计器122以及特性和运动补偿的滤波预测器模块123)可以通过使用适配用于内容的运动特性(运动速度/模糊度)的滤波器来改进来自运动补偿的结果。第四示例性子系统(预测融合分析器和滤波生成模块126)可以允许预测信号的自适应滤波(其可以减小预测中的假噪音,这经常来自帧内预测),从而减小了需要被编码的预测误差。

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

最后,编码器500a的预分析器子系统510a可以执行对内容的分析以计算对于提高视频编码效率和速度性能有用的各种类型的参数。例如,其可以计算水平和垂直梯度信息(Rs、Cs)、方差、每图片空间复杂性、每图片时间复杂性、场景变化检测、运动范围估计、增益检测、预测距离估计、对象数量估计、区域边界检测、空间复杂性映射计算、焦点估计、薄膜纹理估计等。由预分析器子系统510a生成的参数可以由编码器消耗或被量化并发送至解码器200。

虽然子系统510a至580a被示出为与图5(a)中的编码器500a的特定示例性功能模块相关联,但是在本申请中编码器500a的其他实施方式可以包括在子系统510a至580a之中的编码器500a的功能模块的不同分布。本公开不受该方面的限制,且在各个示例中,本申请中的示例性子系统510a至580a的实施方式可以包括仅采用所示出的编码器500a的特定示例性功能模块、额外功能模块、和/或在与所示出的不同的布置中的子集。

图5(b)是根据本公开的至少一些实施方式布置的示例性下一代视频解码器500b的直观图。图5(b)呈现了与图2中示出的解码器类似的解码器,且为了简洁将不重复类似的元件。如在图5(b)所示出的,解码器500b可以包括预测解码器子系统530b、滤波解码器子系统550b、熵解码器子系统560b、变换解码器子系统570b、非划分器_2子系统580b、非划分器_子系统551b、滤波解码器子系统550b、和/或后恢复器子系统590b。预测解码器子系统530b可以包括特性和运动补偿的滤波预测器模块213和/或帧内方向预测生成模块214。滤波解码器子系统550b可以包括解块滤波模块208、质量恢复滤波模块209、特性和运动补偿的滤波预测器模块213、和/或预测融合滤波模块216。熵解码器子系统560b可以包括自适应熵解码器模块202。变换解码器子系统570b可以包括自适应逆量化模块203和/或自适应逆变换模块204。非划分器_2子系统580b可以包括编码分区组装器205。非划分器_1子系统551b可以包括预测分区组装器207。后恢复子系统790可以包括内容后恢复器模块218和/或自适应图片重组织器217。

解码器500b的熵解码子系统560b可以执行编码器500a的熵编码器子系统560a的逆操作,即,熵解码子系统560b可以使用被松散地称为可变长度解码的一类技术来解码由熵编码器子系统560a所编码的各种数据(开销、运动向量、变换系数类型)。具体地,要解码的各种类型的数据可以包括“编码/未编码的”数据、“模式和参考类型”数据、“运动向量”数据、“预测和编码分区”数据、以及“变换系数”数据。

解码器500b的变换解码器子系统570b可以执行编码器500a的变换编码器子系统540a的操作的逆操作。变换解码器子系统570b可以包括两种类型的组件。第一种类型的示例性组件可以支持使用对小到中型块大小的参数逆PHT变换,而其他类型的示例性组件可以支持针对所有块大小的逆DCT变换。用于块的PHT变换可以取决于对相邻块的解码的数据的分析。输出比特流111和/或输入比特流201可以携带关于用于PHT变换的分区/块大小的信息,以及在要被进行逆变换的2D块的那个方向上可以使用PHT(另一方向使用DCT)。对于仅由DCT所编码的块,分区/块大小信息也可以从输出比特流111和/或输入比特流201中取出并且用于应用适当尺寸的逆DCT。

解码器500b的非划分器子系统580b可以执行编码器500a的划分器子系统520a的操作的逆操作,并且非划分器子系统580b可以包括两个非划分子系统,可以执行对编码的数据的非划分的编码分区组装器模块205以及可以对预测执行非划分的预测分区组装器模块207。此外,如果在编码器500a处使用可选的自适应图片组织器模块104以用于区域片段或片,则在解码器处可以需要自适应图片重组织器模块217。

解码器500b的预测解码器子系统530b可以包括可以执行对“帧间”信号的预测的特性和运动补偿的滤波预测器模块213以及可以执行对“帧内”信号的预测的帧内方向预测生成模块214。特性和运动补偿的滤波预测器模块213可以允许通过首先补偿其它源的差异(例如增益、全局运动、配准)或合成帧的创建(超分辨率、和投影),然后进行实际的运动补偿来增加可预测性。

解码器500b的滤波解码器子系统550b可以基于由编码器500a发送的参数来执行对重建的图片的多次滤波,并且滤波解码器子系统550b可以包括若干子系统。第一示例性子系统(解块滤波模块208)可以解块和振动以减小或掩盖任何潜在的块编码噪音。第二示例性子系统(质量恢复滤波模块209)可以执行一般的质量恢复以减小由于在任何视频编码中的量化操作所导致的噪音。第三示例性子系统(特性和运动补偿的滤波预测器模块213)可以通过使用可以适配用于内容的运动特性(运动速度/模糊度)的滤波器来提高来自运动补偿的结果。第四示例性子系统(预测融合滤波模块216)可以允许对预测信号的自适应滤波(其可以减小预测中的假噪音,其经常来自帧内预测),从而减小可以需要编码的预测误差。

解码器500b的后恢复器子系统590b是可以对解码的视频的感知质量执行进一步提高的可选块。可以响应于由编码器100发送的质量改进参数来完成该处理,或该处理可以是在后恢复器子系统590b处的单独的决策。关于在编码器100处计算的可以在后恢复器子系统590b处使用以改进质量的特定参数方面,这些特定参数可以是编码器100处的薄膜纹理噪声和残差块的估计(甚至在解块之后)。关于薄膜增益噪声,如果可以计算参数并通过输出比特流111和/或输入比特流201向解码器200发送,则可以使用这些参数来合成薄膜增益噪声。同样地,对于编码器100处的任何残差块噪音,如果它们可以被测量并通过输出比特流111和/或比特流201发送,则后恢复器子系统590b可以解码这些参数并且可以在显示前使用它们来可选地执行额外的解块。此外,编码器100还可以具有对以下的访问:有助于在后恢复器子系统590b中的质量恢复的场景变化、空间复杂性、时间复杂性、运动范围以及预测距离信息。

虽然将子系统530b至590b示出为与图5(b)中的解码器500b的特定的示例性功能模块相关联,但是本申请中解码器500b的其他实施方式可以包括在子系统530b至590b之间的解码器500b的功能模块的不同分布。本公开在该方面不受限制,且在各个示例中,本申请中示例性子系统530b至590b的实施方式可以包括仅采用所示出的解码器500b的特定的示例性功能模块、额外功能模块、和/或在与所示出的不同的布置中的子集。

图6是根据本公开的至少一些实施方式布置的示例性下一代视频编码器600的直观图。图6呈现了与图1(a)、1(b)和5中示出的编码器类似的编码器,且为了简洁将不重复类似的元件。如在图6中示出的,编码器600可以包括预分析器子系统610、划分器_1子系统619、划分器_2子系统621、变换编码器子系统640、非划分器_1子系统651、滤波_1编码器子系统652、滤波_2编码器子系统653、预测_1和滤波_3编码器子系统654、预测_2编码器子系统655、滤波_4编码器子系统656、熵编码器子系统660、变换解码器子系统670、和/或非划分器_2子系统680。

预分析器子系统610可以包括内容预分析器模块102和/或自适应图片组织器模块104。划分器_1子系统619可以包括预测分区生成器模块105。划分器_2子系统621可以包括代码分区生成器107。变换编码器子系统640可以包括自适应变换模块108和/或自适应量化模块109。非划分器_1子系统651可以包括预测分区组装器模块116。滤波_1编码器子系统652可以包括块分析器和解块滤波模块117。滤波_2编码器子系统653可以包括质量分析器和质量恢复滤波模块118。预测_1和滤波_3编码器子系统654可以包括运动估计器模块122和/或特性和运动补偿的滤波预测器模块123。预测_2编码器子系统655可以包括帧内方向预测分析器和预测生成模块124。滤波_4编码器子系统656可以包括预测分析器和预测融合滤波模块126。熵编码器子系统660可以包括自适应熵编码器模块110。变换解码器子系统670可以包括自适应逆量化模块112和/或自适应逆变换模块113。非划分器_2子系统680可以包括编码分区组装器模块114。

如由编码器600所示出的,可以将要被压缩的视频输入到内容预分析器模块102并接着输入到自适应图片组织器104(其一起被称为预分析器子系统610)。内容预分析器模块102可以对正被编码的场景执行分析,在其输出处提供关于场景变化(scnchg)、时间复杂性(tpcpx)、空间复杂性(spcpx)、时间预测距离(pdist)等的信息。此外,可以将内容预分析器模块102的输出处的原始视频帧输入到自适应图片组织器104,自适应图片组织器104可以输出指示图片组结构(pgst)、以及由此指示组中每一图片的相应的图片类型(ptyp)的输出控制信号,以及根据需要的以编码顺序重新排序的图片。为了参考,本公开的编码可以使用3种图片类型:I(帧内)、P(预测性)、以及F(功能)图片。F图片是非随意的且需要对帧重新排序,以用于在编码器处进行编码(且在编码器处显示)。

编码器600中的下两个块可以执行预测和编码划分(在图5(a)中一起被称为划分器子系统520a)。在本公开的编码中,可以将要被编码的帧分成被称为瓦片的处理单元。本公开中的编码可以支持两种片大小,32x32和64x64。64x64大小的瓦片可以用于针对对I、P和F图片类型进行编码以及对所有大小的I和F图片进行编码的标准定义和更高大小的视频,而32x32大小的瓦片可以用于较低分辨率序列的P图片。

如果正被编码的图片是I图片,则每一瓦片可以在预测分区生成器模块105中被进一步分成基于Kd树的分区,Kd树可以一次在一个维度中将空间分成没有进一步的部分、或分成两个相等的部分、或分成空间的1/4和3/4两个部分、或分成空间的3/4和1/4两个部分,或不进一步分割(直到达到最小的大小)。因此,在I图片使用64x64作为最大的大小(并允许4x4的最小尺寸)的情况下,如果没有施加其他的约束,则可以生成瓦片的巨大数量的分块。例如,可以设置在64x64瓦片上的约束为第一对切割已经被预先决定以在每一维度中将空间等分。这可以相当于以64x64开始,并将其分成32x32大小的子瓦片,并接着通过Kd树划分将每一32x32进行子划分;其他的限制也可以用于减小组合的数量。I图片瓦片的这些分区可以被称为预测分区,这是由于每一瓦片划分可以用于空间预测(定向角预测或其他类型的预测)以及对预测差的编码。同样地,P图片瓦片也可以以此方式来划分以进行预测。在P图片的情况下,警告(caveat)可以是对于较低的分辨率,P图片划分以32x32瓦片开始且可以不使用基于Kd树的划分,而可以使用更简单的B树划分。二叉树划分仅将空间分成2个相等的部分,一次一个维度,在两个维度之间交替。此外,可以主要使用运动(利用一个或多个参考)而不是空间预测来预测P图片分区,尽管一些子分区可以使用帧内空间预测来处理例如未覆盖的背景。对于对较高图片大小的标准定义,P图片可以仅以64x64瓦片大小开始。最终,F图片也可以使用64x64瓦片大小的二叉树划分以用于生成可以主要使用运动(具有一个或多个分区)的预测分区,虽然一些子分区也可以使用空间预测(用于帧内编码)。在本公开的编码中,与仅仅使用运动向量来生成预测相比,可存在更多的帧间预测的生成。在P和F图片编码中,可以通过将预测模式(跳过、自动、帧间、多个、和帧内)包括在内来识别每一子分区的预测。预测分区生成器105的输出在字面上可以是瓦片的成百上千的潜在分块(更多或更少取决于所设置的限制)。可以将这些分块索引为1…m并且可以将其提供给编码控制器103以选择最佳的可能的预测分块。

确定分区的原始块与预测块(稍后讨论预测块的生成细节)的差异,以确定是否存在值得编码的任何残差信号。从而,不是瓦片的所有子分区都可以实际上需要被编码(使用变换编码),这是因为预测对于某些子分区来说可能已经足够。

不能仅由预测补偿的分区可以需要进一步子划分成更小的分区以用于变换编码。对于P和F图片,可以使用编码分区生成器107来完成用于编码的子划分,该编码分区生成器107可以使用二叉树划分以用于对需要进一步分割的预测差异分区进行编码;其他的分区可以仅由运动补偿来编码。在P或F图片中,仅在一些情况(非常简单的内容和/或较大的量化器步长)下,编码分区可以等于整个瓦片的大小,其可以是在这些情况下由预测分区使用的相同的大小。因此,一些P和F图片瓦片可以不包含编码分块、包含一个编码分块、或包含多个编码分块。这些划分可以被索引为1…n且可以被提供至编码控制器103,以从给定的选择中选择预测和编码分块的最佳的可能的组合。关于I图片瓦片,可以仅存在预测分块,其后是实际的变换编码而其自身没有进一步的编码分块。换句话说,可以跳过编码分块。

接下来的两个块(自适应变换模块108和自适应量化模块109)和编码控制器103的可以执行量化器自适应的部分在图5(a)中可以被统称为变换编码器子系统540,并且接下来将对其进行描述。

划分(在对I图片进行预测分块以及对P和F图片进行编码分块之后)在自适应变换模块108中经历了变换编码,其中自适应变换模块108可以对矩形块执行前向混合PHT变换或前向DCT变换。对于HPHT变换,可以支持小到中型块大小,而对于DCT变换,可以支持大量的块大小。分区/块大小的选择,以及所采用的变换(HPHT对DCT),可以取决于RDO分析的结果。对于HPHT变换,可以需要一些开销来识别在其中DCT可能应用的方向(水平或垂直),而PHT则可能应用在正交方向中,以及模式(至少对于帧内编码,其中模式可以基于解码的像素或预测差异像素)中。用于变换特定块的实际的PHT变换基础可以是内容自适应,这是由于其可以取决于编码的相邻像素。因为编码器100和解码器200两者都可以需要同一基矩阵的计算,所以通过允许从其中要选择的有限数目的已知(对于编码器100和解码器200两者)的好变换,可以将计算的复杂性保持为较低。关于自适应量化模块109,其可以执行对内容的分析以提出局部自适应量化参数,然后上述局部自适应量化参数可以由可以被高效编码且被包含在比特流中的多级别映射来表示。所计算的量化器组(qs,以及被应用到系数块的矩阵)可以由自适应量化模块109单元使用以执行系数的缩放。

可以需要向解码器发送的各种信号和数据项,即,pgst、ptyp、prp、pptn、cptn、modes、reftype、ethp、xmtyp、xmdir、xmmod、idir、mv、qs、mop、syp、ddi、qri、api、fii、quant系数等然后可以由自适应熵编码器110进行熵编码,其中自适应熵编码器110可以包括被统称为熵编码器子系统660的不同熵编码器。

编码器600可以包括局部解码循环。根据RDO如何操作,并非瓦片的成百上千的或者更多的分块都可需要被完全编码(有时比特数的查询可以是足够的)。然而,在确定瓦片的最佳划分之后,在该情况下完全编码可以当然是有必要的。解码循环中的前两个单元可以是自适应逆量化模块122和自适应逆变换模块113(被统称为变换解码器子系统670)。自适应逆量化模块112的操作可以是自适应量化模块109的相反,且基本上自适应逆量化模块122可以去缩放(unscale)经缩放的变换系数(有损耗的过程)。此外,自适应逆变换模块113可以反转去量化的变换系数块以生成重建的预测差异像素的块。对于P和F图片,解码的像素差异块可以由编码分区组装器114以正确的顺序重新组装。对于I图片瓦片分块,可以跳过编码分区重组装过程。接下来,在局部解码循环中,可以使用加法器115将预测信号(帧间或帧内)添加到解码的分区,并且在加法器115的输出处的重建的分区可以由预测分区组装器116组装。

下一组步骤可以包括滤波,以及滤波和预测生成的混合。特别地,可以由块分析器和解块滤波模块117对重建的分区进行解块和振动;针对分析ddi的参数可以用于对操作滤波且还可以被编码并通过比特流发送至解码器。然后,可以将解块的重建输出交给质量分析器和质量恢复滤波模块118,质量分析器和质量恢复滤波模块118可以计算QR滤波参数且可以使用它们来进行滤波。这些参数也可以被编码并通过比特流发送至解码器。QR滤波的输出可以是最终重建帧,其还可以被用作用于编码未来帧的预测。

被示出为图5(a)中的预测编码器子系统530b的预测过程可以包括用于帧间预测和帧内预测的两个主要子系统。本公开可以采用若干类型的变形来生成局部缓冲器/预测图片,该局部缓冲器/预测图片允许在运动补偿的预测之前对增益、主要运动、配准、和/或模糊的补偿,并且采用若干类型的合成帧(SR(超分辨率)图片、PI(投影插值)图片等),其中运动补偿的预测可以导致甚至更高的增益。变形分析器和变形的图片生成模块120可以通过计算针对关于要利用其来被编码的参考帧的增益改变、主要运动改变、配准改变、以及模糊改变的参数来执行对当前图片的分析的任务。所计算的mop参数可以被量化/去量化并用于生成变形的参考帧,该变形的参考帧可以由运动估计器使用以用于计算运动向量以对当前帧进行高效的运动(和特性)补偿的预测。同样地,合成分析器和合成的图片生成121可以执行分析任务以用于针对运动生成SR图片和PI图片,以供由运动估计器使用以用于计算运动向量以在这些帧中进行高效的运动补偿的预测。

值得注意的有趣的一点是预测_1和滤波_3编码器子系统654可以缠绕(intertwine)滤波和预测。它的滤波参数api可以被编码并通过比特流向解码器发送。要注意的另一点是预测_2编码器子系统655指代空间方向预测且其使用解码的相邻分区,并且由于在此发生了方向的分析和预测的实际生成两者,所以这里被称为帧内方向预测分析器和预测生成模块124。

预测模式和参考类型分析器125可以允许针对瓦片的每一分区从“跳过”、“自动”、“帧间”、“多个”、和“帧内”中选择预测模式,所有这些模式应用于P和F图片;这在下面的表1中示出。除了预测模式之外,预测模式和参考类型分析器125还允许选择参考类型,该参考根据“帧间”或“多个”模式以及针对P和F图片可以是不同的;在表2(a)和2(b)中针对P图片以及在表3(a)、3(b)、3(c)和3(d)中针对F图片示出了参考类型的详细列表。

下面所示的表1至3(d)示出了码本条目的一个示例。全码本的条目可以提供所有可能的条目及其编码的完全的或基本完全的列表。在一些示例中,码本可以如上文所描述的将约束考虑在内。在一些示例中,如本申请中讨论的,与用于预测模式和/或参考类型的码本条目相关联的数据可以在比特流中被编码,以用于在解码器处使用。

表1针对P和F图片中的瓦片的分区的预测模式

编号预测模式0帧内1.跳过2.分开3.自动4.帧间5.多个

表2(a)针对在P图片中具有“帧间”模式的瓦片的分区的参考类型

编号针对具有“帧间”模式的分区的参考类型0.MR0n(=过去的SR0)1.MR1n2.MR2n3.MR3n4.MR5n(过去的SR1)5.MR6n(过去的SR2)6.MR7n(过去的SR3)7.MR0d8.MR0g

表2(b)针对在P图片中具有“多个”模式的瓦片的分区的参考类型

表3(a)针对在F图片中具有“帧间”模式的瓦片的分区的参考类型

编号针对具有“帧间”模式的分区的参考类型0.MR0n1.MR7n(=proj F)

2.MR3n(=未来的SR0)3.MR1n4.MR4n(=未来的SR1)5.MR5n(=未来的SR2)6.MR6n(=未来的SR3)7.MR3d8.MR0g/MR3g

表3(b)针对在F图片中具有“多个”模式和Dir 0的瓦片的分区的参考类型

表3(c)针对在F图片中具有“多个”模式和Dir 1的瓦片的分区的参考类型

表3(d)针对在F图片中具有“多个”模式和Dir 2的瓦片的分区的参考类型

在预测模式和参考类型分析其125的输出处的预测信号可以由预测融合分析器和滤波生成模块126(滤波_4编码器子系统656)滤波,其中预测融合分析器和滤波生成模块126可以首先确定用于该滤波的参数(滤波系数、频率、开销),并且接着可以实际执行该滤波。对预测信号进行滤波的目的是将表示不同模式即帧内、帧间、多个、跳过、以及自动的不同类型的信号进行融合。由于通常帧内预测信号看上去与所有其他的帧间类型的信号非常不同,所以适当地滤波可以是对编码效率的大贡献。滤波参数fii可以在比特流中被编码以供由解码器使用。滤波的预测形成到计算用于进行先前所讨论的编码的预测差异信号的差异确定器的第二输入。此外,同一滤波的预测信号形成到加法器115的第二输入,其中加法器115的第一输入可以是被量化/去量化的解码的差异信号。

最后,自适应熵编码器660可以用于对各种类型的控制数据/信号、参数、模式和参考类型、运动向量、和变换系数进行编码。这是基于被称为自适应可变长度编码器(vlc)的通用类别的低复杂性熵编码器的。可以将要被熵编码的数据分成若干类别(在本公开的一些方面中为7类),且从通用vlc编码器开始,可以针对每一类别发展出专门的编码器。

虽然子系统610至680被示出为与在图6中的编码器600的特定的示例性功能模块相关联,但是本申请中编码器600的其它实施方式可以包括在子系统610至680之间的编码器600的功能模块的不同分布。本公开在该方面中不受限制,在各个示例中,本申请中示例性子系统610至680的实施方式可以包括仅采用所示出的编码器600的特定示例性功能模块、额外功能模块、和/或在与所示出的不同的布置中的子集。

图7是根据本公开的至少一些实施方式布置的示例性下一代视频解码器700的直观图。图7呈现了与图2中所示出的相似的解码器,且为了简洁起见,将不重复相似的元件。如在图7中所示出的,解码器700可以包括熵解码器子系统760、变换解码器子系统770、非划分器_2子系统780、非划分器_1子系统751、滤波_1解码器子系统752、滤波_2解码器子系统753、预测_1和滤波_3解码器子系统754、预测_2解码器子系统755、滤波_4解码器子系统756、和/或后恢复器子系统790。熵解码器子系统760可以包括自适应熵解码器模块202。变换解码器子系统770可以包括自适应逆量化模块203和/或自适应逆变换模块204。非划分_2子系统780可以包括编码分区组装器205。非划分_1子系统751可以包括预测分区组装器207。滤波_1解码器子系统752可以包括解块滤波模块208。滤波_2解码器子系统753可以包括质量恢复滤波模块209。预测_1和滤波_3解码器子系统754可以包括特性和运动补偿的滤波预测器模块213。预测_2解码器子系统755可以包括帧内方向预测生成模块214。滤波_4解码器子系统756可以包括预测融合滤波模块216。后恢复器子系统790可以包括内容后恢复器模块218和/或自适应图片重组织器217。

该解码器700的一般操作可以与先前讨论的编码器600中的局部解码循环类似,其中警告是解码器中的运动补偿解码循环不需要任何需要分析以确定参数的组件,这是因为参数可以实际上通过比特流201向解码器700发送。可以将要被解码的比特流输入到自适应熵解码器模块202,自适应熵解码器模块202对头部、控制信号和经编码的数据进行解码。例如,其对ptyp、pgst、prp、pptn、cptn、ethp、mop、syp、mod、reftyp、idir、qs、xmtyp、xmdir、xmmod、ddi、qri、api、fii、mv、以及构成开销的量化的变换系数、可以被分发以在整个解码器中使用的控制信号和数据进行解码。接着,量化的变换系数可以由自适应逆量化模块203进行逆量化以产生解码的像素确定差异的矩形分区,该矩形分区可以根据所使用的码划分来组装并且可以向其添加导致重建编码的分区的生成的预测,该重建编码的分区进一步经历根据运动划分的进一步重新组装以生成重建的瓦片和帧,上述重建的瓦片和帧在解块滤波模块208中经历使用解码的ddi参数的解块和振动,然后是在质量恢复滤波模块209中使用解码的qri参数进行质量恢复滤波,创建最终重建帧的过程。可以使用通过应用解码的mop参数所创建的变形的图片/局部缓冲器来将最终重建帧保存在解码的图片缓冲器210中。通过将解码的syp参数应用到解码的图片缓冲器210可以创建同样的合成的图片缓冲器。变形的局部缓冲器以及合成的帧可以用于运动补偿的预测,该运动补偿的预测基于api参数使用自适应精确(AP)滤波且根据解码的ethp信号保留1/4或1/8图素预测。实际上,根据mod的Char&运动AP滤波器1/4&1/8图素补偿的预测器生成“帧间”、“多个”、“跳过”、或“自动”分区,而帧内方向预测生成模块214生成“帧内”分区,并且预测模式选择器模块215可以允许正确模式的分区通过。下一步涉及选择性地使用预测融合滤波模块216来根据需要在到加法器206的第二输入处对预测进行滤波并输出。

响应于控制参数ptyp和pgst,可以由自适应图片重组织器217将质量恢复滤波模块209的输出处的重建帧重新排序,并且进一步地,自适应图片重组织器217的输出可以在由编码器发送的prp参数控制的内容后恢复器218中经历可选的处理。除了其他的以外,该处理包括解块和薄膜纹理添加。

虽然子系统751至790被示出为与图7中的解码器700的特定的示例性功能模块相关联,但是本申请中解码器700的其他实施方式可以包括在子系统751至790之间的解码器700的功能模块的不同分布。本公开在该方面中不受限制,在各个示例中,本申请中示例性子系统751至790的实施方式可以包括仅采用所示出的解码器700的特定的示例性功能模块、额外功能模块、和/或在与所示出的不同的布置中的子集。

图8示出了根据本公开的至少一些实施方式布置的具有用于预测分块的示例性瓦片或超分片的示例性视频帧810。视频帧810可以包括用于编码的任何适合的视频图像、帧、图片、或数据等。在所示出的示例中,为了说明的目的,视频帧810包括来自“花”测试序列的视频帧。如所讨论的,可以将视频帧810分段成帧部分(例如,瓦片或超分片)。然后,可以如下文将要进一步讨论的将帧部分进行分区。可以使用任何适合的技术来将视频帧810分成帧部分。在一些示例中,可以通过瓦片边界330将视频帧810分成片820-1至820-30(在图8中,为了呈现的清晰,未标记每一个瓦片),使得片820-1至820-30可以是用于划分的帧部分。视频帧810可以包括任何数量的瓦片820,且瓦片820可以是任何大小。在一些示例中,瓦片820可以是64x64像素。此外,瓦片820可以具有任何形状。在各个示例中,瓦片820可以是方形的或矩形的。此外,如所示出的,在帧810内,瓦片820可以具有不同的形状和大小。例如,瓦片820-3可以是方形的且为64x64像素,瓦片820-12可以是矩形的且为32x64像素,瓦片820-30可以是方形的且为32x32像素,等等。

在其他示例中,用于划分的视频帧部可以是超分片。例如,为了确定超分片,可以将视频帧810分段成一个或多个区域层。基于在比特成本方面的效率约束,该分段可以以任何精确度(例如,像素分辨率)来执行并被量化成任何分辨率。例如,可以以4图素、8图素、或16图素等的精确度(例如,4像素、8像素、或16像素的精确度)来执行分段。现在转到图10,其示出了将视频帧分段成区域层。

图10示出了根据本公开的至少一些实施方式布置的对视频帧810的示例性区域层分段。如在图10中所示出的,可以将视频帧810分段成一个或多个区域层。在图10中所示出的示例中,视频帧810可以被分段成两个区域层:区域层1010和区域层1020。在图10中,区域层1010包括没有标记的视频帧段(segment),而区域层1020包括用点标记的视频帧段。例如,区域层1010可以表示视频帧810的背景(back-ground)部分而区域层1020可以表示视频帧810的前景(fore-ground)部分。在一些示例中,区域层可以表示场景等的前景、背景和中间景(middle-ground)(或多个中间景)。在一些示例中,视频帧810可以包括单个区域层。在一些示例中,视频帧810可以包括3、4、5或更多的区域层。在一些示例中,可以由预测分区生成器模块105(请参考图1)来执行对视频帧810的分段。在一些示例中,可以由插入到自适应图片组织器104和预测分区生成器105之间的另一模块(例如,瓦片或超分片生成器模块)来执行对视频帧810的分段。在一些示例中,可以由自适应图片组织器模块104(或例如,自适应图片组织器模块104的瓦片或超分片生成器模块)来执行对视频帧810的分段。可以使用任何适当的技术来执行分段。在一些示例中,分段可以包括符号运行(symbol-run)编码技术。

此外,区域边界(例如,在区域层1010与区域层1020之间的边界等)可以被编码以在编码器100和/或解码器200处使用。可以使用任何适当的技术来执行区域边界编码。在一些示例中,区域边界编码可以包括符号运行编码技术。在一些示例中,区域边界编码可以包括生成近似于瓦片网格上的区域边界的码本。例如,瓦片网格(其可以与图8中的瓦片820对应或不对应)可以是具有32x32像素或64x64像素等大小的等距瓦片。

回到图8,其示出了区域层1010和区域层1020,使得通过模糊视频帧810的像来示出区域层1020并且通过不模糊视频帧810的像来示出区域层1010。此外,如所讨论的,可以将视频帧分成瓦片820-1至820-30。在一些示例中,用于划分的帧部可以包括包含瓦片的个体区域层部分的超分片,如在图9中所示出的。

图9示出了根据本公开的至少一些实施方式布置的、示例性视频帧810的一行瓦片820-12至820-18的示例性超分片901至911。如所示出的,超分片901至911可以包括区域层中的部分瓦片。例如,超分片901可以包括区域层1010中的部分瓦片820-13,超分片902可以包括区域层1020中的部分瓦片820-14,超分片903可以包括区域层1010中的部分瓦片820-14等。如所示出的,超分片可以具有基本上任何形状和大小(仅被由所描述的分段操作的精确度所限制)。例如,超帧903、910、和911可以分别是瓦片820-14、820-17、以及820-18的整体,使得这些超分片可以与其各自的瓦片具有相同的形状。此外,超分片901以及904至909示出了各种可能的形状,而许多其他的形状也是可能的。又进一步地,超分片904示出了超分片无需是连续的。

图11(A)和11(B)示出了根据本公开的至少一些实施方式布置的被分段成区域层1120、1130、1140并且根据瓦片1150a至1150d被分成超分片1161至1169的示例性视频帧1110。如在图11(A)中所示出的以及如上文所讨论的,可以如上文所讨论的使用诸如例如通过分区生成器模块105或自适应图片组织器模块104进行符号运行编码的任何合适的技术,将视频帧1110(为了呈现的清楚,示出了视频帧的一部分)分段成区域层1120、1130、1140。在一些示例中,区域层1120、1130、1140可以表示场景等的前景、背景、和中间景。如在图11(B)中所示出的,区域层1120、1130、1140可以用瓦片1150a至1150d覆盖或与瓦片1150a至1150d组合等(其中可以如上文所描述的关于视频帧1110来定义上述瓦片(例如,视频帧1110可以被划分成瓦片1150a至1150d)),以定义超分片1161至1169,使得超分片1161至1169中的每一个可以包含在区域层中或内的瓦片的部分。

例如,超分片1161可以包括在区域层1120中或内的瓦片1150a的部分,超分片1162可以包括在区域层1130中或内的瓦片1150a的部分,超分片1163可以包括在区域层1120中或内的瓦片1150b的部分(例如,瓦片1150b的全部),超分片1164可以包括在区域层1130中或内的瓦片1150c的部分,超分片1165可以包括在区域层1120中或内的瓦片1150c的部分,超分片1166可以包括在区域层1140中或内的瓦片1150c的部分,超分片1167可以包括在区域层1130中或内的瓦片1150d的部分,超分片1168可以包括在区域层1120中或内的瓦片1150d的部分,并且超分片1169可以包括在区域层1140中或内的瓦片1150d的部分。要注意的是,在图11(B)中,由表示区域层边界的实线和表示瓦片边界的剖面线两者来定义超分片边界。

如所讨论的,可通过将视频帧分成瓦片或定义超分片来定义帧部分。在一些示例中,使用瓦片可以提供简单的优点,而超分片可能更复杂,但是其可以提供增强的帧间或帧内预测或图像增强的优点。在任一情况下,可以如本申请中所讨论的来划分帧部分。

如下文所进一步讨论的,可以由预测分区生成器模块105(或例如,预测分区生成器105的瓦片或超分片生成器模块)、由插入到自适应图片组织器104和预测分区生成器105之间的另一模块、或由自适应图片组织器模块104(或例如,自适应图片组织器模块104的瓦片或超分片生成器模块)来执行将视频帧810分段成瓦片或超分片。

图12(A)和12(B)是根据本公开的至少一些实施方式布置的示例性编码器子系统1200和1210的直观图。在一些示例中,编码器子系统1200或1210可以通过图1中所示出的编码器100来实现。如在图12(A)中所示出的,编码器子系统1200可以包括预测分区生成器模块105,如上文所讨论的。如所示出的,在一些示例中,预测分区生成器模块105可以包括瓦片或超分片生成器模块1201,如本申请中所讨论的,瓦片或超分片生成器模块1201可以生成瓦片或超分片。

如在图12(B)中所示出的,编码器子系统1210可以包括在自适应图片组织器104(在一些实现中其可不被认为是编码器子系统1210的一部分)与预测分区生成器105之间实现的分裂的瓦片或超分片生成器模块1201。在其他示例中,分裂的瓦片或超分片生成器模块1201可以通过自适应图片组织器104实现并自适应图片组织器104可以被认为是编码器子系统的一部分。

如所讨论的,在一些示例中,可以对超分片进行编码。在一些示例中,可以由符号运行编码来对超分片进行编码,其中符号运行编码可以沿一维(1D)扫描而利用相邻块之间的相关,这是因为相邻的块很可能属于同一区域。在其他的示例中,可以使用码本以近似于等距或基本等距的32x32像素或64x64像素等的瓦片网格上的帧部分边界。在这样的示例中,通过每一瓦片的主边界可以与从码本可获得的最接近的模式近似,并且可以在比特流中包含与该模式对应的码以供由解码器使用。在一些示例中,这样的边界表示可以是有损耗的以便最小化比特成本。

在各个实施方式中,可以由预测分区生成器模块105生成帧部分(例如,瓦片或超分片)或可以向预测分区生成器模块105发送帧部分,预测分区生成器模块105可以包括二叉树分区生成器模块1202和k-d树分区生成器模块1203。如所示出的,根据开关1204、1205的操作,可以将帧部分输入到二叉树分区生成器模块1202或k-d树分区生成器模块1203中。在一些示例中,开关1204、1205可以基于帧部分的帧的图片类型来操作。例如,如果帧是I图片,则可以通过开关1204、1205将所接收的帧部分输入到k-d树分区生成器模块1203中。例如,如果帧是P或F/B图片,则可以通过开关1204、1205将所接收的帧部分输入到二叉树分区生成器模块1202中。在其他示例中,开关1204、1205可以基于所接收的帧部分的特性而操作。例如,如果所期望的帧部分的帧内块的数量大于阈值,则可以将帧部分输入到k-d树分区生成器模块1203中,并且如果所期望的帧部分的帧内块的数量小于阈值,则可以将帧部分输入到二叉树分区生成器模块1202中。在各个示例中,可以预定义阈值或启发式地确定阈值等。

如所示出的,预测分区生成器模块105的输出(通过开关1205控制)可以被输入到差异确定器106中,如上文针对图1所讨论的,在差异确定器106中处理可以继续,使得到差异确定器106中的第二输入是预测融合分析器和预测融合滤波模块126的输出,并且使得通过开关107a、107b控制,差异确定器106的输出(例如,预测误差数据分区或残差等)可以如本申请中讨论的可选地被输入到编码分区生成器107中。在一些示例中,对于F/B图片或P图片中的帧间预测,预测误差数据分区可以被发送至编码分区生成器模块107以用于进一步划分成编码分区(例如,通过二叉树划分技术)。在一些示例中,对于I图片中的帧内预测,预测误差数据分区(或原始像素数据)可以绕开编码分区生成器模块107,使得在变换编码之前不进行额外的划分(例如,通过自适应变换模块108)。在这样的示例中,可以仅划分帧部分(例如,瓦片或超分片)一次,并且可以根据上下文将这样的分区描述为预测分区或编码分区或两者。例如,作为来自预测分区生成器的输出,可以将这样的分区认为是预测分区(由于它们用于预测),而在自适应变换模块108中,这样的分区可以被认为是编码分区(由于这样的分区被变换编码)。

图13是根据本公开的至少一些实施方式布置的示例性解码器子系统1300的直观图。在一些示例中,解码器子系统1300可以通过如图2中所示出的解码器200实现。如在图13中所示出的,解码器子系统1300可以包括编码分区组装器模块205,通过开关205a、205b控制,编码分区组装模块205可以可选地从自适应逆变换模块204(未示出,请参考图2)接收输入。编码分区组装器模块205的输出或绕开的数据(例如,预测误差数据分区)可以被提供为加法器206的输入。如所讨论的,在一些示例中,预测误差数据分区可已经被变换编码而没有进一步划分(例如,在I图片的帧间预测中)并且可以绕过编码分区组织器模块205,并且在一些示例中,预测误差数据分区可以已经被进一步划分成编码分区以进行变换编码并且编码分区组装器模块205可以将这样的编码分区组装成预测误差数据分区。

如上文关于图2所讨论的,可以从预测融合滤波模块216的输出提供到加法器206的第二输入(例如,解码的预测分区)。如所示出的,解码器子系统1300也可以包括预测分区组装器模块207,预测分区组装器模块207可以包括二叉树分区组装器模块1301和k-d树分区组装器模块1302。基于对开关1304、1305的控制,加法器206的输出(例如,重建的预测分区)可以被输入到二叉树分区组装器模块1306或k-d树分区组装器模块1302中。例如,可以将二叉树分区输入到二叉树分区组装器模块1301中以用于组装成帧部分,并且可以将k-d树分区输入到k-d树分区组装器模块1302中以用于组装成帧部分(例如,根据在编码器处执行的划分类型)。

此外如所示出的,在一些示例中,预测分区组装器模块207可以包括瓦片或超分片组装器模块1303,瓦片或超分片组装器模块1303可以被配置为将组装的帧部分(例如,瓦片或超分片)组装成视频帧。如本申请中所讨论的,可以将分区组装器模块207的输出视频帧输入到解块滤波模块208(未示出,请参考图2)中以用于进行进一步处理。在其他示例中,可以在预测分区组装器模块207和解块滤波模块208(请参考图2)之间单独地实现瓦片或超分片组装器模块1303。

图14是根据本公开的至少一些实施方式布置的经修改的预测参考图片1400的直观图。如所示出的,质量分析器和质量恢复滤波的输出可以是最终重建帧,该最终重建帧可以用于预测以对其他帧进行编码(例如,最终重建帧可以是参考帧等)。

所提出的NGV编码器(例如,编码器100和/或解码器200)的实施方式可以使用变形的预测参考1428到1438(MR0到3)和/或合成的预测参考1412和1440到1446(S0到S3、MR4到7)的组合来实现P图片编码。NGV编码涉及使用被称为I图片、P图片、和F/B图片的3种图片类型。在所示出的示例中,在时间t=4处示出了要被编码的当前图片。在编码期间,所提出的NGV编码器(例如,编码器100和/或解码器200)的实施方式可以并使用4个先前解码的参考R01412、R11414、R21416、和R31418中的一个或多个。不像可以简单地直接使用这些参考以进行预测的其他解决方案,所提出的NGV编码器(例如,编码器100和/或解码器200)的实施方式可以根据这样先前解码的参考而生成修改的(变形的或合成的)参考,并且接着基于这样所生成的修改的(变形的或合成的)参考来使用运动补偿的编码。

如下文将更详细地描述的,在一些示例中,所提出的NGV编码器(例如,编码器100和/或解码器200)的实施方式可以并入多个组件以及在高效的视频编码算法中由这些组件生成的组合预测。例如,所提出的NGV编码器的实施方式可以包括以下特征中的一个或多个:1.增益补偿(例如,针对场景中增益/亮度的变化的显式补偿);2.模糊补偿:例如,针对场景中模糊/清晰度的变化的显式补偿;主/全局运动补偿(例如,针对场景中主要运动的显式补偿);4.配准补偿(例如,针对场景中的配准失配的显式补偿);5.超分辨率(例如,针对场景中分辨率精确度的变化的显式模型);6.投影(例如,针对场景中运动运动轨迹的变化的显式模型);等,和/或其组合。

在所示出的示例中,如果应用了帧间预测,则特性和运动滤波预测器模块可以将运动补偿应用到当前图片1410(例如,在图中标记为P图(当前))以作为局部解码循环一部分。在一些实例中,这样的运动补偿可以至少部分地基于未来的帧(未示出)和/或先前的帧R01412(例如,在图中标记为R0)、先前的帧R11414(例如,在图中标记为R1)、先前的帧R21416(例如,在图中标记为R2)、和/或先前的帧R31418(例如,在图中标记为R3)。

例如,在一些实施方式中,预测操作可以包括帧间预测和/或帧内预测。帧间预测可以由包括变形分析器和生成模块和/或合成分析器和生成模块的一个或多个模块执行。这样的变形分析器和生成模块可以分析当前图片以确定这样的参数:该参数针对关于利用其要被编码的参考帧的模糊1420(例如,在图中被标记为模糊标准)变化、增益1422(例如,在图中被标记为增益标准)变化、配准1424(例如,在图中被标记为配准标准)变化、以及主要运动1426(例如,在图中被标记为主标准)变化等。

所确定的变形参数1420、1422、1424、和/或1426可以用于生成变形的参考帧。这样的所生成的变形的参考帧可以被存储并且可以用于计算运动向量以对当前帧进行高效的运动(和特性)补偿的预测。在所示出的示例中,例如,所确定的变形参数1420、1422、1424、和/或1426可以用于生成变形的参考帧,例如模糊补偿变形的参考帧1428(例如,在图中被标记为MR3b)、增益补偿的变形参考帧1430(例如,在图中被标记为MR2g)、增益补偿的变形的参考帧1432(例如,在图中被标记为MR1g)、配准补偿的变形的参考帧1434(例如,在图中被标记为MR1r)、主要运动补偿的变形的参考帧1436(例如,在图中被标记为MR0d)、和/或配准补偿的变形的参考帧1438(例如,在图中被标记为MR0r)等或其组合。

类似地,合成分析器和生成模块可以生成超分辨率(SR)图片1440(例如,在图中被标记为S0(其等于先前的帧R01412)、S1、S2、S3)和投影的插值(PI)图片1442(例如,在图中被标记为PE)等以用于确定运动向量以在这些帧中进行高效的运动补偿的预测。这样的所生成的合成参考帧可以被存储并可以用于计算运动向量以对当前帧进行高效的运动(和特性)补偿的预测。

此外或替代地,所确定的变形参数1420、1422、1424、和/或1426可以用于使生成的合成参考帧超分辨率(SR)图片1440和/或所投影的插值(PI)图片1442变形。例如,合成分析器和生成模块可以根据所确定的配准变形参数1424生成变形的配准补偿超分辨率(SR)图片1444(例如,在图中被标记为MR4r、MR5r、和MR6r)和/或变形的配准补偿投影的插值(PI)图片1446(例如,在图中被标记为MR7r)等。这样的所生成的变形的和合成的参考帧可以被存储并可以用于计算运动向量以对当前帧进行高效的运动(和特性)补偿的预测。

在一些实施方式中,可以显式地计算一组特性(诸如例如增益、模糊、主要运动、配准、分辨率精确度、运动轨迹等、或其组合)中的变化。除了局部运动之外,还可以计算一组特性。在一些情况下,可以在适当的情况下利用先前的和接下来的图片/片;然而,在其他的情况下,这样的一组特性可根据先前的图片/片进行更好的预测。此外,由于在任何估计过程中都可能存在误差,(例如,根据多个过去的或多个过去的和未来的图片/片)可以选择产生最佳估计的与一组特性(例如,诸如增益、模糊、主要运动、配准、分辨率精确度、运动轨迹等、或其组合)相关联的修改的参考帧。因此,所提出的利用与该组特性(诸如例如增益、模糊、主要运动、配准、分辨率精确度、运动轨迹等、或其组合)相关联的修改的参考帧的方法可以对这些特性中的差异进行显式补偿。所提出的实施方式可以解决如何改善预测信号的问题,这继而允许在视频编码中实现较高的压缩效率。

例如,随着要被压缩的视频的分辨率和对高视频质量的期望的日益增加,使用诸如H.264的现有的视频编码标准或甚至诸如H.265/HEVC的更演进的标准进行编码所需的相应的比特率/带宽相对较高。前述的标准使用传统方式的扩展形式来隐式地解决不充分压缩/质量的问题,但是经常其结果是有限的。

所提出的实施方式通过改进帧间预测提高了视频压缩效率,其继而减小了需要被编码的帧间预测差(误差信号)。要被编码的帧间预测差的数量越少,编码所需要的比特数量就越少,这有效地提高了压缩效率,这是由于其现在花费了更少的比特来存储或发送编码的预测差信号。通过采用除了运动补偿之外或者替代运动补偿的方法来显式地补偿内容的特性中的变化(而非仅受限于运动预测),所提出的NCV编解码器可以对内容的变化的特性(例如,诸如增益、模糊、主要运动、配准、分辨率精确度、运动轨迹等、或其组合)高度地自适应。因此,通过显式地解决该问题的根本原因,NGV编解码器可以解决基于标准的编解码器的限制的关键源,从而实现了较高的压缩效率。

由于所提出的NCV编解码器对视频内容中的变化的各种不同的原因进行补偿的能力,所以可以实现帧间预测输出中的该变化。由于许多局部和全局的变化(在本申请中称为特性),典型的视频场景逐帧各不相同。除了局部运动之外,还存在许多当前的解决方案未充分解决的其他的特性,这些其他特征可以通过所提出的实施方式来解决。

除了局部运动之外,所提出的实施方式还可以显式地计算一组特性(例如诸如增益、模糊、主要运动、配准、分辨率精确度、运动轨迹等、或其组合)中的变化,并因此与仅使用根据先前的和接下来的图片/片的局部运动预测相比,可以根据先前的图片/片而进行更好的预测。此外,由于在任何估计过程中可能存在误差,所以NGV编码器可以从多个过去的或多个过去的和未来的图片/片中选择通过对各种特性中的差显式地补偿而产生最佳结果的帧。

具体地,所提出的NGV编码器的实施方式可以包括以下特征:i.对场景中的增益/亮度的变化的显式补偿;ii.对场景中的模糊/清晰度的变化的显式补偿;iii.对场景中的主要运动的显式补偿;iv.对场景中的配准失配的显式补偿;v.对场景中的分辨率的精确度的变化的显式模型;和/或vi.对场景中的运动轨迹的变化的显式模型。

下文所示的表4和5示出了码本条目的一个示例。全码本的条目可以提供所有可能的条目及其编码的完全的或基本完全的列表。在一些示例中,码本可以如上文所描述的将约束考虑在内。在一些示例中,如本申请中讨论的,与用于预测模式和/或参考类型的码本条目相关联的数据可以在比特流中被编码,以供在解码器处使用。

表4在P图片中的示例性预测参考

编号针对用于帧间预测模式的P图片的参考类型0.MR0n(=过去的SR0)1.MR1r

2.MR2r3.MR2g4.MR4r(过去的SR1)5.MR5r(过去的SR2)6.MR6r(过去的SR3)7.MR0d8.MR1g9.MR3b

表5在F图片中的示例性预测参考

编号针对用于帧间预测模式的F图片的参考类型0.MR0r1.MR7r(=投影的插值)2.MR3r(=未来的SR0)3.MR1r4.MR4r(=未来的SR1)5.MR5r(=未来的SR2)6.MR6r(=未来的SR3)7.MR0d8.MR3d9.MR0g/MR3g10.MR3b

在操作中,所提出的NGV编码器的实施方式(例如,编码器100和/或解码器200)可以操作以使得可以使用符号运行编码或码本等来定义预测模式和/或参考类型数据。可以在各种示例中使用内容自适应或离散变换来对预测模式和/或参考类型数据进行变换编码。此外,如所讨论的,与分区相关联的数据(例如,变换系数或量化的变换系数)、开销数据(例如,如本申请中所讨论的针对变换类型、自适应变换方向、和/或变换模式的指示符)、和/或定义分区的数据等可以被编码(例如,通过熵编码器)成比特流。可以向解码器传送比特流,解码器可以使用编码的比特流来解码视频帧以进行显示。在局部的基础上(例如宏块或瓦片内的逐块、或在瓦片或预测单元内的逐分区、或超分片或区域内的分片),例如可以基于速率失真优化(RDO)或基于对视频的预分析来选择最佳模式,并且针对模式和所需参考的标识符可以在比特流内被编码以供由解码器使用。

在操作中,除了关于解码的过去的和/或未来的图片/片的通常的局部运动补偿之外,所提出的NGV编码器的实施方式(例如,编码器100和/或解码器200)可以使用上文的组件中的一个或多个。由此,该实施方式不强制采取例如针对增益组件的、或针对任何其他的特性补偿的参考帧生成的特定解决方案。

图15是根据本公开的至少一些实施方式布置的、用于执行特性和运动补偿的预测的另一示例性编码器预测子系统530的直观图。如所示出的,编码器1500的编码器预测子系统530可以包括解码的图片缓冲器119、变形分析器和变形的图片生成模块120、合成分析器和生成模块121、运动估计器模块122、和/或特性和运动补偿的滤波预测器模块123。

如所示出的,质量分析器和质量恢复滤波的输出可以被发送至解码的图片缓冲器119。在一些示例中,质量分析器和质量恢复滤波的输出可以是可以用于对编码其他帧进行预测的最终重建帧(例如,最终重建帧可以是参考帧等)。在编码器1500中,预测操作可以包括帧间预测和/或帧内预测。如在图15中所示出的,帧间预测可以由一个或多个模块执行,上述一个或多个模块包括变形分析器和变形的图片生成模块120、合成分析器和生成模块121、和/或特性和运动补偿的滤波预测器模块123。

变形分析器和变形的图片生成模块120可以包括变形类型分析器(MTA)和变形的图片生成器(MPG)1599以及变形的预测参考(MPR)图片缓冲器520。变形类型分析器(MTA)和变形的图片生成器(MPG)1599可以被配置为分析和/或生成一种或多种类型的修改的预测参考图片。

例如,变形类型分析器(MTA)和变形的图片生成器(MPG)1599可以包括增益估计器和补偿的预测生成器1505、模糊估计器和补偿的预测生成器1510、主要运动估计器和补偿的预测生成器1515、配准估计器和补偿的预测生成器1520等和/或其组合。增益估计器和补偿的预测生成器1505可以被配置为分析和/或生成可以被适配成解决增益中的变化的变形的预测参考图片。模糊估计器和补偿的预测生成器1510可以被配置为分析和/或生成被适配成解决模糊中的变化的变形的预测参考图片。主要运动估计器和补偿的预测生成器1515可以被配置为分析和/或生成被适配成解决主要运动中的变化的变形的预测参考图片。配准估计器和补偿的预测生成器1520可以被配置为分析和/或生成被适配成解决配准中的变化的变形的预测参考图片。

变形类型分析器(MTA)和变形的图片生成器(MPG)1599可以将这样的所生成的变形的参考帧存储在变形的预测参考(MPR)图片缓冲器520中。例如,变形的预测参考(MPR)图片缓冲器1598可以包括增益补偿的(GC)图片缓冲器1525、模糊补偿的(BC)图片缓冲器1530、主要运动补偿的(DC)图片缓冲器1535、配准补偿的(RC)图片缓冲器1540等和/或其组合。增益补偿的(GC)图片缓冲器1525可以被配置为存储被适配成解决增益中的变化的变形的参考帧。模块补偿的(BC)图片缓冲器1530可以被配置为存储被适配成解决模糊中的变化的变形的参考帧。主要运动补偿的(DC)图片缓冲器1535可以被配置为存储被适配成解决主要运动中的变化的变形的参考帧。配准补偿的(RC)图片缓冲器1540可以被配置为存储被适配成解决配准中的变化的变形的参考帧。

合成分析器和生成模块121可以包括合成类型分析器(STA)和合成的图片生成器(SPG)1597以及合成的预测参考(SPR)图片缓冲器540。合成类型分析器(STA)和合成的图片生成器(SPG)1597可以被配置为分析和/或生成一种或多种类型的合成的预测参考图片。例如,合成类型分析器(STA)和合成的图片生成器(SPG)1597可以包括超分辨率滤波器选择器和预测生成器1545、投影轨迹分析器和预测生成器1550等和/或其组合。超分辨率滤波器选择器和预测生成器1545可以被配置为分析和/或生成超分辨率(SR)类型的合成的预测参考图片。投影轨迹分析器和预测生成器1550可以被配置为分析和/或生成投影的插值(PI)类型的合成的预测参考图片。

合成类型分析器(STA)和合成的图片生成器(SPG)1597可以生成超分辨率(SR)图片和投影的插值(PI)图片等以在这些帧中进行高效的运动补偿的预测。这样的所生成的合成的参考帧可以被存储在合成的预测参考(SPR)图片缓冲器1596中且可以由运动估计器模块122使用以用于计算运动向量以对当前帧进行高效的运动(和特性)补偿的预测。

例如,合成的预测参考(SPR)图片缓冲器1596可以包括超分辨率(SR)图片缓冲器1555,投影的插值(PI)图片缓冲器1560等和/或其组合。超分辨率(SR)图片缓冲器1555可以被配置为存储针对超分辨率(SR)图片所生成的合成的参考帧。投影的插值(PI)图片缓冲器1560可以被配置为存储针对投影的插值(PI)图片所生成的合成的参考帧。

运动估计器模块122可以基于变形的参考帧和/或超分辨率(SR)图片和投影的插值(PI)图片以及当前帧而生成运动向量数据。在一些示例中,运动估计器模块122可以被认为是帧间预测模块。例如,运动向量数据可以用于帧间预测。如所讨论的,如果应用了帧间预测,则特性和运动补偿的滤波预测器模块123可以应用运动补偿作为局部解码循环的一部分。

图16是根据本公开的至少一些实施方式布置的、用于执行特性和运动补偿的预测的另一示例性解码器预测子系统1601的直观图。如所示出的,解码器预测子系统1601可以包括解码的图片缓冲器210、变形的图片生成模块211、合成的图片生成模块212、和/或特性和运动补偿的滤波预测器模块213。

如所示出的,可以向解码的图片缓冲器210发送质量恢复滤波模块的输出。在一些示例中,质量恢复滤波模块的输出可以是可以用于对编码其他帧进行预测的最终重建帧(例如,最终重建帧可以是参考帧等)。如所讨论的,由于预测操作所导致的补偿可以包括帧间和/或帧内预测补偿。如所示出的,帧间预测补偿可以由包括变形的图片生成模块211、合成的图片生成模块212、和/或特性和运动补偿的滤波预测器模块213的一个或多个模块执行。

变形的图片生成模块211可以包括变形的图片生成器(MPG)1699以及变形的预测参考(MPR)图片缓冲器1698。变形的图片生成器(MPG)1699可以使用去量化变形参数(例如,根据输入比特流确定的)来生成变形的参考帧。例如,变形的图片生成器(MPG)1699可以包括增益补偿的预测生成器1605、模糊补偿的预测生成器1610、主要运动补偿的预测生成器1615、配准补偿的预测生成器1620等和/或其组合。增益补偿的预测生成器1605可以被配置为生成被适配成解决增益中的变化的变形的预测参考图片。模糊补偿的预测生成器1610可以被配置为生成被适配成解决模糊中的变化的变形的预测参考图片。主要运动补偿的预测生成器1615可以被配置为生成被适配成解决主要运动中的变化的变形的预测参考图片。配准补偿的预测生成器1620可以被配置为生成被适配成解决配准中的变化的变形的预测参考图片。

变形的图片生成器(MPG)1699可以将这样的所生成的变形的参考帧存储在变形的预测参考(MPR)图片缓冲器1698中。例如,变形的预测参考(MPR)图片缓冲器1698可以包括增益补偿的(GC)图片/缓冲器1625、模糊补偿的(BC)图片缓冲器1630、主要运动补偿的(DC)图片缓冲器1635、配准补偿的(RC)图片/缓冲器1640等和/或其组合。增益补偿的(GC)图片/缓冲器1625可以被配置为存储被适配成解决增益中的变化的变形的参考帧。模糊补偿的(BC)图片/缓冲器1630可以被配置为存储被适配成解决模糊中的变化的变形的参考帧。主要运动补偿(DC)图片缓冲器1635可以被配置为存储被适配成解决主要运动中的变化的变形的参考帧。配准补偿的(RC)图片缓冲器1640可以被配置为存储被适配成解决配准中的变化的变形的参考帧。

合成的图片生成模块212可以包括合成的图片生成器(SPG)1697以及合成的预测参考(SPR)图片缓冲器1696。合成的图片生成器(SPG)1697可以被配置为基于根据输入比特流201确定的参数而生成诸如超分辨率(SR)图片和投影的插值(PI)图片等的一种或多种类型的合成的预测参考图片。这样的所生成的合成的参考帧可以被存储在合成的预测参考(SPR)图片缓冲器1696中并且可以由特性和运动补偿的滤波预测器模块213使用。例如,合成的图片生成器(SPG)1697可以包括超分辨率图片生成器1645、投影轨迹图片生成器1650等和/或其组合。超分辨率图片生成器1645可以被配置为生成超分辨率(SR)类型的合成的预测参考图片。投影轨迹图片生成器1650可以被配置为生成投影的插值(PI)类型的合成的预测参考图片。

合成的图片生成器(SPG)1697可以生成超分辨率(SR)图片和投影的插值(PI)图片等以在这些帧中进行高效的运动补偿的预测。这样的所生成的合成的参考帧可以被存储在合成的预测参考(SPR)图片缓冲器1696中并且可以用于由特性和运动补偿的滤波预测器模块213使用以对当前帧进行高效的运动(和特性)补偿的预测。

例如,合成的预测参考(SPR)图片缓冲器1696可以包括超分辨率(SR)图片缓冲器1655、投影的插值(PI)图片缓冲器1660等和/或其组合。超分辨率(SR)图片缓冲器1655可以被配置为存储针对超分辨率(SR)图片所生成的合成的参考帧。投影的插值(PI)图片缓冲器1660可以被配置为存储针对投影的插值(PI)图片所生成的合成的参考帧。

如果应用了帧间预测,则特性和运动补偿的滤波预测器模块213可以基于变形的参考帧和/或超分辨率(SR)图片和投影的插值(PI)图片以及当前帧而应用运动补偿。

图17是根据本公开的至少一些实施方式布置的示例性编码器子系统1700的直观图。如所示出的,编码器子系统1700可以包括编码分区生成器模块107、编码控制器模块103、自适应变换模块108、自适应量化模块109、和/或自适应熵编码器模块110。虽然在图17中未示出,但是为了呈现的清晰,可以将视频数据从差异确定器106、预测分区生成器模块105等输入到编码分区生成器模块107。由编码分区生成器模块107接收的视频数据可以是任何适当的视频数据,诸如例如预测误差数据分区、预测分区、瓦片或超分片、原始像素数据、小波数据、残差数据、或如本申请中所讨论的任何其他的视频数据。例如,视频数据可以提供或表示亮度数据或色度数据。如所示出的,在示例性编码器子系统1700中,可以由编码分区生成器模块107接收视频数据。

如所示出的,编码分区生成器模块107可以包括k-d树帧内预测/编码划分器模块1701和二叉树编码划分器模块1702。在开关1703的控制下,可以向k-d树帧内预测/编码划分器模块1701或二叉树编码划分器模块1702发送所接收的视频数据。例如,开关1703可以基于视频数据的图片类型和/或与视频数据相关联的预测类型来路由视频数据。例如,当图片类型是F/B图片或P图片且预测类型是帧间预测等时,视频数据可以包括预测误差数据分区(例如,用于预测分区的误差数据或残差)且开关1703可以将视频数据路由到二叉树编码划分器模块1702以用于划分成编码分区。例如,当图片类型是F/B图片或P图片且预测类型是帧内预测时,视频数据可以包括瓦片或超分片视频且开关1703可以将视频数据路由到二叉树编码划分器模块1702以用于划分成可以被标记为预测分区或编码分区(由于仅可以执行一个级别的划分)的分区。如所讨论的,在这样的示例中,可以由二叉树编码划分器模块1702或预测分区生成器模块105执行划分。当图片类型是I图片(例如,其可以整体使用帧内预测进行编码)时,视频数据可以包括瓦片或超分片,且开关1703可以将视频数据路由到k-d树编码划分器模块1701以用于划分成可以被标记为预测分区或编码分区(由于仅可以执行一个级别的划分)的分区。如所讨论的,在这样的示例中,可以由k-d树编码划分器模块1701或预测分区生成器模块105执行划分。

尽管利用二叉树编码划分器模块1702来进行示出,但是在一些示例中,编码分区生成器模块107可以实现k-d树编码划分器模块以代替可以使用k-d树划分技术来划分预测分区的模块1701。类似地,尽管利用k-d树帧内预测/编码划分器模块1701来进行示出,但是在一些示例中,编码分区生成器模块107可以实现二叉树编码划分器模块以代替可以使用二叉树划分技术来划分预测分区的模块1702。

如所讨论的,在一些示例中,例如在I图片帧内编码中,仅可以应用一层划分,其可以被标记为预测分块或编码分块。在一些示例中,编码分区生成器107因此可以接收I图片瓦片或超分片或帧以通过k-d帧内预测/编码划分器模块1701使用k-d树划分技术来进行划分。在其它示例中,先前可以已经通过预测分区生成器105对I图片进行了划分,可以不需要进一步的划分了。在这样的示例中,可以绕开k-d树帧内预测/编码划分器模块1701。在任一情况下,可以向自适应变换模块108发送I图片分区(被标记为预测分区或编码分区)。

此外,如所讨论的,在一些示例中,在P或F/B图片帧内编码中,可以仅应用一层划分,其可以被标记为预测分块或编码分块。在一些示例中,编码分区生成器107因此可以接收P或F/B图片瓦片或超分片或帧以用于通过二叉树编码划分器模块1702使用二叉树划分技术来进行划分(在这样的实例中,二叉树编码划分器模块1701可以被认为是二叉树预测/编码划分器模块)。在其他示例中,先前可以已经通过预测分区生成器105对P或F/B图片进行了划分,且可以不需要进一步的划分了。在这样的示例中,可以绕开二叉树编码划分器模块1702。在任一情况下,可以向自适应变化模块108发送P或F/B分区(其被标记为预测分区或编码分区)。

在一些示例中,针对每一帧内预测分区,预测方向(例如,9或31个预测方向中的1个)可以与帧内预测分区相关联,使得可以使用过去的解码的临时区域、先前的相邻瓦片的像素和/或在当前帧的相同瓦片中的相邻分区而对每一预测分区进行帧内预测。

如本申请中下文关于图19进一步讨论的,二叉树编码划分器模块1702可以使用二叉树划分技术将视频数据划分成多个分区。二叉树编码划分器模块1702可以提供灵活的划分,其可以允许替代地在水平和垂直方向上分成分区。这样的技术可以允许在水平或垂直方向上或在两个方向上的切割,并且从而可以允许多个、灵活的分区。如本申请中下文关于图20所进一步讨论的,k-d树帧内预测/编码划分器模块1701可以使用k-d树划分技术将视频数据划分成多个分区。例如,k-d树帧内划分/编码划分器模块1701可以在划分中提供甚至更大的灵活性,这可以允许替代地在分区的中点和在沿着分区的1/4和3/4点处在水平和垂直方向分成分区。这样的增加可以导致增加的开销和计算,例如,这对于I图片可以被证明是合理的。如所示出的,可以将分区或子分区(例如,先前针对预测所定义的分区的编码分区)从编码分区生成器模块107向自适应变换模块108发送。

采用k-d分区的第一示例(例如,针对I图片),可以从k-d树帧内预测/编码划分器模块1701或预测分区生成器模块105向自适应变换模块108发送分区(例如,预测或编码)。例如,可以使用k-d树划分技术来划分瓦片或超分片以生成分块(例如,针对预测的分区)。可以对于针对预测的分区执行帧内预测以生成预测分区,可以确定其与原始像素数据的差异以生成预测误差数据分区。如所讨论的,可以基于速率失真优化等来确定所选择的划分。可以向自适应变换模块108发送与所选择的划分相关联的预测误差数据分区(和/或预测分区)。如所讨论的,由于仅可以执行单个层的划分,所以这样的预测分区可以替代地被标记为编码分区。

如所示出的,自适应变换模块108可以包括内容自适应变换模块1704和固定变换模块1705,自适应变换模块108可以基于开关1706、1707的操作选择性地被操作。例如,内容自适应变换可以包括利用可以根据解码相邻的视频数据(例如,相邻块、分区等)确定的内容依赖的基函数的变换或包括利用与必须从编码器(例如,通过比特流)向解码器发送以进行解码的变换数据相关联的变换,并且固定变换可以包括具有固定的基函数的固定变换,并且其中仅变换系数必须被发送以进行解码,如上文所讨论的。

在一些示例中,内容自适应变换模块1704可以应用自适应变换,诸如例如参数变换、参数哈尔变化、混合参数哈尔变换(例如,在一个方向上的参数哈尔变化以及在正交方向上的离散变换)、参数斜变换、混合参数斜变换等。在一些示例中,自适应变换模块1704可以应用闭型(closed-form)混合参数变换或闭型混合参数哈尔变换。如所示出的,在一些示例中,内容自适应变换模块1704可以被应用于小到中型大小的分区。例如,小到中型大小的分区可以包括具有小于或等于16像素的高度且具有小于或等于16像素的宽度的分区或块。例如,小到中型大小的分区或块可以包括具有4x4像素、4x8像素、8x4像素、8x8像素、4x16像素、16x4像素、8x16像素、16x8像素、16x16像素等大小的分区。

在一些示例中,固定变换模块1705可以应用离散变换,诸如例如离散余弦变换、离散余弦变换逼近器(approximator)等。如所示出的,在一些示例中,固定变换模块1705可以被应用到中到大型大小的分区或块。例如,中到大型大小的分区和块可以包括具有大于或等于16像素的高度且具有大于或等于16像素的宽度的分区。例如,中到大型大小的分区或块可以包括具有每边各有至少16像素(包括方形和矩形分区)的大量分区,包括16x16像素、16x32像素、32x16像素、32x32像素、32x64像素、64x32像素、64x64像素等。在一些示例中,固定变换模块1705可以使用较高精确度的整型逼近来应用离散余弦变换。如所讨论的,在一些示例中,在向内容自适应变换模块1704提供的分区与向固定变的换模块1705提供的分区之间可能存在重叠。在这样的示例中,可以评估向内容自适应变换模块1704和固定变换模块505两者提供的分区,以确定要使用哪一变换。在其他示例中,可能没有重叠。例如,小到中型大小的分区或块可以包括具有小于16像素的宽度和小于16像素的高度等的分区或块,而中到大型大小的像素可以包括大于16像素的宽度且大于16像素的高度等的分区。在其他示例中,启发式技术可以用于确定何时向模块发送中型大小的块以进行变换处理。

如所讨论的,可以操作开关1706、1707以针对k-d树分区(例如,I图片的分区)选择变换。在一些示例中,开关1706、1707和/或编码分区生成器107可以在编码控制器103的速率失真优化选择器模块1796的控制下操作。速率失真优化选择器模块1796可以针对给定的分区确定最佳选择,诸如例如基于向自适应变换模块108的内容自适应变换(小到中型块)1704、1708提供小到中型分区以及向自适应变换模块108的固定变换(中到大型模块)1705、1709提供中到大型分区,进一步的划分(例如,分割)和相关联的变换大小如何可以产生最佳编码。例如,一些开销(例如,额外的经编码的比特)可以与自适应变换相关联,例如变换数据,解码器可以需要其以构建自适应基函数等。然而,通过向自适应变换模块108发送关键信息(诸如例如包括变换类型(例如,xmtyp;例如,针对一分区的变换是自适应的还是离散的)、变换方向(例如,xmdir;描述了在混合变换中参数变换是水平的还是垂直的)、和/或变换模式(例如,xmmode;仅用于在对使用预测差异信号或原始信号的模式选择之间的帧内编码信号))的一组指示符可以减小这样的开销。量化器/速率控制器1797可以被配置为响应于改变的带宽限制而调整量化参数以改变编码过程中的损耗。

现在转向二叉树分区的示例,可以向自适应变换模块108发送编码分区(例如,针对F/B和P图片的编码分区),如所示出的,自适应变换模块108可以包括内容自适应变换模块1708和固定变换模块1709,自适应变换模块108可以基于开关1710、1711的操作选择性地操作。内容自适应变换模块1708、固定变换模块1709、和开关1710、1711可以与内容自适应变换模块1704、固定变换模块1705、和开关1706、1707相类似地操作,并且为了简洁起见将不重复上述操作。如所示出的,内容自适应变换模块108还可以包括开关1712,开关1712可以结合开关1703操作以如上文所讨论的针对各种视频数据(例如,与图片或F/B和图片相关的视频数据分区)选择适当的路线。

在图17的编码器子系统1700中,在一些示例中,例如混合参数哈尔变换,内容自适应变换可以仅针对具有2的幂的分区来执行。在这样的示例中,可以通过k-d树帧内预测/编码划分器模块1701来施加约束,使得分区仅为2的幂以适应可用的变换。在一些示例中,如果小到中型分区不能被保持在2的幂的大小,则针对这样的分区可以使用固定变换(例如,离散余弦变换等),而不需要额外的信令开销。

图18是根据本公开的至少一些实施方式布置的示例性编码器子系统1800的直观图。如所示出的,编码器子系统1800可以包括编码分区生成器模块107、编码控制器模块103、自适应变换模块108、自适应量化器模块109、和/或自适应熵编码器模块110。尽管为了呈现的清晰而未在图18中示出,但是可以从差异确定器106、预测分区生成器105等向编码分区生成器模块107输入视频数据。由编码分区生成器模块107接收的视频数据可以是任何适当的视频数据,诸如例如预测误差数据分区、预测分区、瓦片或超分片、原始像素数据、小波数据、残差数据、或如本申请中讨论的任何其他的视频数据。例如,视频数据可以提供或表示亮度数据或色度数据。如所示出的,在示例性编码器子系统1700中,可以由编码分区生成器模块107接收视频数据。

如所示出的,如上文关于图17所讨论的,编码分区生成器模块107可以包括k-d树帧内预测/编码划分器模块1701和二叉树代码划分器模块1702,其在开关1801的控制下操作。在开关1801的控制下,可以向k-d树帧内预测/编码划分器模块1701或二叉树编码划分器模块1702发送所接收的视频数据。例如,开关1801可以基于视频数据的图片类型和/或与视频数据相关联的预测类型来路由视频数据。例如,当图片类型是F/B图片或P图片且预测类型是帧间预测等时,视频数据可以包括预测误差数据分区(例如,用于预测分区的误差数据或残差)并且开关1801可以将视频数据路由到二叉树编码划分器模块1702以划分成编码分区。例如,当图片类型是F/B图片或P图片且预测类型是帧内预测时,视频数据可以包括瓦片或超分片视频并且开关1801可以将视频数据路由到二叉树编码划分器模块1702以划分成可以被标记为预测分区或编码分区(由于仅可以执行一个级别的划分)的分区。如所讨论的,在这样的示例中,可以由二叉树编码划分器模块1702或预测分区生成器模块105来执行划分。当图片类型是I图片(例如,其可以整体使用帧内预测进行编码)时,视频数据可以包括瓦片或超分片,且开关1703可以将视频数据路由到k-d树编码划分器模块1701,以划分成可以被标记为预测分区或编码分区(由于仅可以执行一个级别的划分)的分区。如所讨论的,在这样的示例中,可以由k-d树编码划分器模块1701或预测分区生成器模块105来执行划分。

如所讨论的,尽管利用二叉树编码划分器模块1702进行了示出,但是在一些示例中,编码分区生成器模块107可以实现k-d树编码划分器模块以代替可用使用k-d树划分技术来划分预测分区的模块1701。类似地,尽管利用k-d树帧内预测/编码划分器模块1701进行了示出,但是在一些示例中,编码分区生成器模块107可以实现二叉树编码划分器模块以代替可以使用二叉树划分技术来划分预测分区的模块1702。

如所讨论的,在一些示例中,例如在I图片帧内编码中,仅可以使用一层划分,其可以被标记为预测分块或编码分块。在一些示例中,编码分区生成器107因此可以接收I图片瓦片或超分片或帧以通过k-d树帧内预测/编码划分器模块1701使用k-d树划分技术来进行划分。在其他示例中,先前可以已经通过预测分区生成器105划分了I图片,并且可不需要进一步划分了。在这样的示例中,可以绕开k-d树帧内划分/编码划分器模块1701。在任一情况下,可以向自适应变换模块108发送I图片划分(被标记为预测分区或编码分区)。

此外,如所讨论的,在一些示例中,在P或F/B图片帧内编码中,仅可以应用一层划分,其可以被标记为预测分块或编码分块。在一些示例中,编码分区生成器107因此可以接收P或F/B图片瓦片或超分片或帧,以通过二叉树编码划分器模块1702(在这样的示例中,二叉树编码划分器模块1701可以被认为是二叉树预测/编码划分器模块)使用二叉树划分技术来进行划分。在其他示例中,先前可以已经通过预测分区生成器105划分了P或F/B图片,并且可以不需要进一步划分了。在这样的示例中,可以绕开二叉树编码划分器模块1702。在任一情况下,可以向自适应变换模块108发送P或F/B图片分区(被标记为预测分区或编码分区)。

二叉树编码划分器模块1702可以使用如下文针对图19在本申请中进一步讨论的二叉树划分技术将视频数据划分成多个分区。k-d树帧内预测/编码划分器模块1701可以使用如下文关于图20在本申请中进一步讨论的k-d树划分技术将视频数据划分成多个分区。如本申请中所讨论的,二叉树编码划分器模块1702可以使用二叉树划分技术将划分预测误差数据分区(例如)划分成多个编码分区,并且k-d树帧内预测/编码划分器模块1701可以使用k-d树划分技术将视频数据(例如,I图片瓦片或超分片)划分成多个分区。如图18中所示出的,可以从编码分区生成器模块107向自适应变换模块108发送编码分区或(在I图片的情况下)编码分区或预测分区(如所标记的)。

采取k-d树划分为第一示例,可以向自适应变换模块108的内容自适应变换模块1802和固定变换模块1803发送分区(例如,针对I图片)。例如,可以使用k-d树划分技术来划分瓦片或超分片以生成分区(例如,用于预测的分区)。可以针对用于预测的分区来执行帧内预测,以生成预测分区,可以确定其与原始像素数据的差异以生成预测误差数据分区。如所讨论的,可以基于速率失真优化等来确定所选择的划分。可以向自适应变换模块108发送与所选择的划分相关联的预测误差数据分区(和/或预测分区)。如所讨论的,由于仅可以执行单个级别的划分,所以可以替代地将这样的预测分区标记成编码分区。

如所示出的,自适应变换模块108可以包括内容自适应变换模块1802和固定变换模块1803。例如,内容自适应变换可以包括利用可以根据解码相邻的视频数据(例如,相邻块、分区等)确定的内容依赖的基函数的变换或包括利用与必须从编码器(例如,通过比特流)向解码器发送以进行解码的变换数据相关联的变换,并且固定变换可以包括具有固定的基函数的固定变换,并且其中仅变换系数必须被发送以进行解码,如上文所讨论的。

在一些示例中,内容自适应变换模块1802可以应用自适应变换,诸如例如参数变换、参数哈尔变化、混合参数哈尔变换(例如,在一个方向上的参数哈尔变化以及在正交方向上的离散变换)、参数斜变换、混合参数斜变换等。在一些示例中,自适应变换模块1802可以应用闭型混合参数变换或闭型混合参数哈尔变换。如所示出的,在一些示例中,内容自适应变换模块1802可以被应用于小到中型大小的分区。例如,小到中型大小的分区可以包括具有小于或等于16像素的高度且具有小于或等于16像素的宽度的分区或块。例如,小到中型大小的分区或块可以包括具有4x4像素、4x8像素、8x4像素、8x8像素、4x16像素、16x4像素、8x16像素、16x8像素、16x16像素等大小的分区。

在一些示例中,固定变换模块1803可以应用离散变换,诸如例如离散余弦变换、离散余弦变换逼近器等。如所示出的,在一些示例中,固定变换模块1803可以被应用到中到大型大小的分区或块。例如,中到大型大小的分区和块可以包括具有大于或等于16像素的高度且具有大于或等于16像素的宽度的分区。例如,中到大型大小的分区或块可以包括具有每边各有至少16像素(包括方形和矩形分区)的大量分区,包括16x16像素、16x32像素、32x16像素、32x32像素、32x64像素、64x32像素、64x64像素等。在一些示例中,固定变换模块1803可以使用较高精确度的整型逼近来应用离散余弦变换。

现在转向二叉树分区的示例,编码分区(例如,针对F/B或P图片的编码分区)可以被传送至自适应变换模块108的自适应变换模块1804和离散变换模块1805。自适应变换模块1804和离散变换模块1805可以与自适应变换模块1802和离散变换模块1804相类似地操作,并且为了简洁起见将不重复上述操作。如所示出的,自适应变换模块108还可以包括开关1806,开关1806可以结合开关1801操作以针对各种视频数据选择适合的路径。

对于被提供至内容自适应变换模块1802和固定变换模块1803两者或提供至内容自适应变换模块1804和离散变换模块1805两者的分区(例如,小到中型尺寸的分区),可以通过速率失真优化选择器模块1796基于权衡分析而做出关于使用哪种变换模块结构的决策。对于中到大型大小的分区,基本不存在关于编码器子系统1700的在性能中的变换,这是因为固定变换仍可以应用于这样的分区。编码器子系统1800可以提供以额外的计算和决策开销为代价而根据关于小到中型大小的分区的编码效率/比特节省来做出最优决策的能力。这样的开销可以被编码为包括变换类型(例如,xmtyp;例如,针对一分区的变换是自适应的还是离散的)、变换方向(例如,xmdir;描述了在混合变换中参数变换是水平的还是垂直的)、和/或变换模式(例如,xmmode;仅用于在对使用预测差异信号或原始信号的模式选择之间的帧内编码信号)的一组指示符。如在图18中所示,这样的指示符或数据等可以被提供至自适应熵编码器模块110以用于在诸如输出比特流111的比特流中进行编码。

如关于图17到18所讨论的,各个分区(例如,用于帧间预测的F/B或P图片的编码分区或用于帧内预测的I、F/B、或P图片的预测/编码分区)可以被变换编码。在这样的示例中,与分区相关联的数据(例如,描述分区的大小或位置的数据)也可以通过诸如输出比特流111等的比特流被提供。

此外,如所讨论的,已在各种上下文(例如,图片类型和/或亮度或色度)中讨论了小、中、和大型分区的概念。以下的表示出了在一些实施方式中的示例性块大小和相关联的变换类型。

例如,表6示出了用于进行诸如混合参数哈尔变换的内容自适应变换以用于对亮度(例如,针对k-d树分区)进行帧间编码(例如,针对I图片)的示例性分区或块大小(例如,小到中型大小的预测/编码分区)。

编号分区大小0.4x41.4x82.4x163.8x44.16x45.8x86.8x167.16x88.16x16

表6:针对用于亮度的帧内编码的内容自适应变换的示例性分区

例如,表7示出了用于进行诸如混合参数哈尔变换的内容自适应变换以用于对色度(例如,针对k-d树分区)进行帧内编码(例如,针对I图片)的示例性分区(例如,小到中型大小的预测/编码分区)。

编号分区大小0.2x21.2x42.2x8

3.4x24.8x25.4x46.4x87.8x48.8x8

表7:针对用于色度的帧内编码的内容自适应变换的示例性分区

例如,表8示出了用于进行诸如混合参数哈尔变换的内容自适应变换以用于对亮度(例如,针对二叉树分区)进行帧间编码(例如,针对F/B和P图片)的示例性分区(例如,小到中型大小的编码分区)。

编号分区大小0.4x41.8x82.16x16

表8:用于进行内容自适应变换以用于对亮度的帧间编码的示例性分区

例如,表9示出了用于进行诸如混合参数哈尔变换的内容自适应变换以用于对色度(例如,针对二叉树分区)进行帧内编码(例如,针对F/B和P图片)的示例性分区(例如,小到中型大小的编码分区)。

编号分区大小0.2x21.4x42.8x8

表9:针对用于色度的帧间编码的内容自适应变换的示例性分区

例如,对于固定变换例如离散余弦变换(例如,所有编码分区)而用于进行帧内编码(例如,针对使用k-d树划分的I图片)和帧间编码(例如,针对使用二叉树划分的F/B和P图片),具有因子4的从4x4到64x64的大小的所有组合可以具有可适用的变换。类似地,对于固定变换或亮度,具有因子2的从2x2到32x32的所有大小的组合可以具有可适用的变换

图19示出了根据本公开的至少一些实施方式布置的使用二叉树划分技术对帧部分1900的示例性划分。如所示出的,在一些示例中,帧部分1900可以包括方形。如上文所讨论的,在各个示例中,帧部分1900可以包括任意适合的类型。此外,如在本申请中讨论的帧部分1900可以包括瓦片或超分片等。此外,在一些示例中,帧部分1900其自身可以作为一分区,使得所示出的分区可以被认为是子分区。如将在下文进一步讨论的,这样的示例可以在通过子分区生成器模块107将分区进一步划分以用于进行编码时发生。

如图19所示,二叉树划分可以包括划分的进展。从帧部分1900开始,分区1可以被定义为帧部分1900其自身。分区1可以被垂直地划分为两个分区2、3。分区2、3中的每一个可以进一步被划分,这一次垂直地划分为分区4、5(例如,对分区3的划分)和分区6、7(例如,对分区2的划分)。图19的第二行(从顶端)示出了将分区3进一步垂直地划分为分区8、9以及将分区2进一步垂直地划分为分区10、11。图19的第三行(从顶端)示出了水平划分(例如,而不是对第一行(从顶端)的垂直划分)以从分区1生成分区12、13。图19的第三行(从顶端)示出了对分区12、13的进一步垂直划分以生成分区14、15(例如,对分区13的划分)和分区16、17(例如,来自对分区12的划分)。第四行或底端行示出了对分区12的水平划分以生成分区18、19以及对分区13的水平划分以生成分区20、21。如所示出的,二叉树划分可以递归地使用,一次在一个维度中使用(例如,水平地或垂直地)以将每个分区子分割或划分为两个相等的分区,直到可以达到最小分区。二叉树划分可以将帧部分划分为大量的组合并且可以支持平滑的划分进展。

图20示出了根据本公开的至少一些实施方式布置的使用k-d树划分技术对帧部分2000的示例性划分。如所示出的,在一些示例中,帧部分2000可以包括方形。如所讨论的,在各个示例中,帧部分2000可以包括任何适合的形状。此外,如所讨论的,帧部分2000可以包括瓦片、或超分片等。

如图20所示,k-d树划分可以包括多次划分。此外,如所示出的,k-d树划分可以是二叉树划分的超集(superset),使得图20的1-4行(从图20的顶端开始)可以与图19的1-4行相匹配。在一些示例中,在图20中所示的k-d树划分的过程可以在特定的维度中(例如,垂直或水平)将帧部分2000迭代地分成四个矩形分区。从帧部分2000开始,分区1可以被定义为帧部分2000其自身。分区1可以被垂直的划分为两个分区2、3。分区2、3中的每一个可以进一步被划分,这一次被垂直地划分为分区4、5(例如,对分区3的划分)和分区6、7(例如,对分区2的划分)。图20的第二行(从顶端)示出了将分区3垂直地划分为分区8、9以及将分区2进一步垂直地划分为分区10、11。图20的第三行(从顶端)示出了水平划分(例如,而不是对第一行(从顶端)的垂直划分)以从分区1生成分区12、13。图20的第三行(从顶端)示出了对分区12、13的进一步垂直划分以生成分区14、15(例如,对分区13的划分)和分区16、17(例如,来自对分区12的划分)。第四行或底端行示出了对分区12的水平划分以生成分区18、19以及对分区13的水平划分以生成分区20、21。

如所讨论的,通过第四行,k-d树划分可以基本上与二叉树划分相匹配。如在图20的第五行(从顶端)处所示出的,帧部分2000可以被垂直地划分为1/4和3/4大小的分区以生成分区22、23。此外,分区23可以被垂直地划分为一半以生成分区24、25并且分区22可以被垂直地划分为一半以生成分区26、27。如在图20的第六行或底端行处所示出的,帧部分2000可以被水平地划分为1/4和3/4大小的分区以生成分区28、29。此外,分区28可以被水平地划分为一半以生成分区30、31并且分区29可以被划分为一半以形成分区32、33。可以递归地重复这样的划分过程,改变维度(例如,水平和垂直)以将每一个分区子分割或划分为2个相等的部分(等分)和2个不相等的部分(例如,以1:3的比例),直到可以达到最小的分区大小。k-d树划分可以不仅在分区和子分区(等)的中点处将帧部分划分为大量的组合,而且针对每一访问具有进一步准确度。在所示出的示例中,使用了四分之一准确度。在其它示例中,可以使用任意的准确度,例如可以使用三分之一、五分之一等。

如关于图19和20所讨论的,帧部分可以被划分为各种分区。可以使用索引值来索引每一个分区并且每一个分区可以被传送至编码控制器103(请参见图1)。例如,被索引和被传送的分区可以包括成百上千的分区。如关于图1所讨论的,可以使用一个或多个分区以进行预测和/或编码(例如,转换编码;在一些示例中,用于进行编码的分区可以进一步被划分为子分区)。例如,可以完全使用帧内预测来预测I图片,P图片可以使用帧间预测和帧内预测,经过帧间预测可以是对P图片的预测的主要源,并且F/B图片还可以使用帧间预测和帧内预测两者。例如,编码控制器103可以选择分区以供在帧间预测和帧内预测操作中使用。例如,如在下文中进一步讨论的,与帧间预测和/或帧内预测相关联的数据和定义所利用的分区的数据可以在比特流中被编码。

在一些示例中,各种划分选项可以是受限的或受约束的。这样的约束可以应用在二叉树或k-d树划分示例中。例如,划分帧部分(例如,瓦片或超分片)可以包括将第一分区预定义为在第一维度(例如,水平或垂直)中等分帧部分,并且在第二维度中将第二分区预定义为等分该至少一个帧部分(例如,与第一等分相反)。仅可以在这样的初始约束划分之后进行进一步的划分,例如使得基于初始帧部分的其它可选划分不再可用。这样的约束可以支持从64x64像素帧部分开始,并且将帧部分分割为32x32大小的子部分,并接着通过k-d树或二叉树划分将每个子部分进行划分,这可以限制分区的数量。

预测分区和/或编码分区可以被定义(例如,它们的形状和/或位置可以被定义)以供由编码器和/或解码器使用。在一些示例中,可以基于像素块使用符号运行编码来定义帧部分的个体预测分区或预测分区的编码分区。在其它示例中,可以使用码本来定于帧部分的个体预测分区或预测分区的编码分区。表10示出了用于在定义对瓦片或超分片的划分中使用的具有32x32像素的分片大小的条目的示例性二叉树划分码本。在表10中,大“X”表示非终止性的划分。

表10:二叉树划分码本条目的示例

表11示出了示例性示出了用于在定义瓦片或超分片的划分中使用的具有32x32像素的分片大小的条目的示例性k-d树划分码本。

表11:k-d树划分码本条目的示例

表10和11仅示出示例性码本条目。条目的完整码表可以提供所有可能的条目及其编码的完整或基本上完整的列表。在一些示例中,如上文所述,码本可以将约束考虑在内。在一些示例中,如在本申请中讨论的,与中的分区(子分区)的码本条目相关联的数据可以在比特流中被编码以供在解码器处使用。

如所讨论的,可以基于所选的划分技术(例如,二叉树划分或k-d划分)来划分帧部分(例如,瓦片或超分片)以生成预测分区。预测分区可以用于基于帧间预测技术和/或帧内预测技术而进行编码。通过编码器实现的局部解码循环可以生成预测分区,预测分区可以用于生成预测误差数据分区或残差(例如,预测分区与原始像素数据之间的差)。在一些实例中,预测分区可以被编码并且它们可以因此实质上可互换地被描述为预测分区或编码分区。例如,这样的实例可以在I图片中的帧内预测的背景下(或者,在一些实施方式中,在P和F/B图片中的帧内预测的背景下)发生。在其它示例中(例如,在P和F/B图片中),可以评估预测误差数据分区以确定它们是否需要被编码,并且如果需要,则相关联的分区可以被进一步划分为编码分区以用于编码。此外,可以使用符号运行编码或码本等来定义或或特性化预测分区和/或编码分区。此外如所讨论的,与预测分区和/或编码分区相关联的数据、预测数据等可以(例如,通过熵编码器)被编码车比特流。比特流可以被发送到解码器,解码器可以使用编码的比特流来解码视频帧以用于显示。

图21是根据本公开的至少一些实施方式布置的示例性编码器滤波子系统2100的直观图。如所讨论的,滤波子系统2100可以包括重建块分析器和解块滤波器生成器2117、重建质量分析器和LF滤波生成器2118、运动估计器、运动补偿分析器和运动补偿的AM滤波器预测器和参考图片存储2123、帧内预测器2124、预测模式分析器和模式选择器2125、和/或预测效率分析器和增强的预测滤波生成器2130。

在所示出的实施方式中,重建块分析器和解块滤波器生成器2117可以能够分析在编码期间产生的块,确定dbi参数以控制如何应用解块。

在所示出的实施方式中,重建质量分析器和LF滤波生成器2118可以能够分析和执行循环滤波、确定lfi参数(例如,滤波器系数、滤波器指数、滤波器块图等)。

在所示出的实施方式中,运动估计器、运动补偿分析器和运动补偿的AM滤波器预测器和参考图片存储2123可以能够改进运动补偿的预测、确定ami参数。

在所示出的实施方式中,帧内预测器2124可以能够执行帧内预测。

在所示出的实施方式中,预测模式分析器和模式选择器2125可以能够在块的基础上在各种运动预测模式与帧内预测模式之间进行选择,并且选择预测参考。

在所示出的实施方式中,预测效率分析器和增强的预测滤波生成器2130可以能够可选地对预测信号进行滤波,使得经滤波的版本和未经滤波的版本两者都可以被提供到预测模块分析器和模式选择器2125、确定epi参数。

图22是根据本公开的至少一些实施方式布置的示例性解码器子系统2200的直观图。如所示出的,解码器子系统2200可以包括重建解块滤波生成器2217、重建LF滤波生成器2218、运动补偿的AM滤波预测器和参考图片存储2223、帧内预测器2224、预测模块选择器2225、和/或预测EP滤波器生成器2230。

在所示出的实施方式中,重建解块滤波器生成器2217可以能够进行解块。重建解块滤波器生成器2217的操作可以由从例如图1的编码器100所接收的dbi参数来控制。

在所示出的实施方式中,重建LF滤波生成器2218可以能够执行循环滤波。重建LF滤波生成器2218的操作可以由从例如图1的编码器100所接收的lfi参数来控制。

在所示出的实施方式中,运动补偿的AM滤波预测器和参考图片存储2223可以能够进行AM滤波。运动补偿的AM滤波预测器和参考图片存储2223的操作可以由从例如图1的编码器100所接收的ami参数来控制。

在所示出的实施方式中,帧内预测器2224可以能够执行帧内预测。

在所示出的实施方式中,预测模块选择器2225可以能够基于例如输入比特流201中的模式选择数据而针对瓦片的每一预测分区从“跳过”、“自动”、“帧间”、“多个”、以及“帧内”中选择预测模式,这些模式全部可以应用于P和F/B图片。除了预测模式之外,预测模式选择器2225还允许选择可以根据“帧间”或“帧内”模式以及针对P和F/B图片而不同的参考类型。

根据本公开的至少一些实施方式布置了2300。如所示出的,编码器子系统2300可以包括重建块分析器和DD滤波器生成器2317、重建质量分析器和QR滤波器生成器2318、运动估计器、运动补偿分析器和特性和运动补偿的AP滤波器预测器和变型的/合成的参考图片存储2323、帧内预测器2324、预测模式分析器和模式选择器2325、预测效率分析器和EI滤波生成器2330、和/或预测融合分析器和FI滤波器生成器2335。

在所示出的实施方式中,重建块分析器和DD滤波器生成器2317可以能够分析在编码期间产生的块、确定ddi系数来控制如何应用解块。重建块分析器和DD滤波器生成器1617可以一次对4个像素进行操作,以从编码的视频中移除块,该编码的视频可以使用针对运动补偿和变换编码的各种块大小。重建块分析器和DD滤波器生成器2317还可以使用可以在不减少统计(PSNR)度量的情况下进一步减少块的出现的振动操作。

在所示出的实施方式中,重建质量分析器和QR滤波器生成器2318可以能够执行质量恢复滤波、输出可以通过比特流向解码器发送的qri参数。重建质量分析器和QR滤波器生成器2318可以使用维纳滤波器,维纳滤波器可以是非对称的、点对称或混合(部分对称部分非对称)的9x9方形或9x9或11x9系数的子集的形状。重建质量分析器和QR滤波器生成器2318可以通过使用码本搜索而最小化滤波开销,因此可以编码所计算的系数(在预测之后)并将其发送至解码器或可以向解码器发送历史滤波器或码本滤波器的索引。重建质量分析器和QR滤波器生成器2318可以通过发送校正项来校正来自码本的滤波器系数,且可以在编码进展的同时更新码本。亮度和色度信号两者可以被滤波并且可以使用不同的形状和滤波器大小。

在所示出的实施方式中,运动估计器、运动补偿分析器和特性和运动补偿的AP滤波器预测器和变型的/合成的参考图片存储2323可以能够执行执行自适应精确滤波并输出可以通过比特流向解码器发送的api参数。运动估计器、运动补偿分析器和特性和运动补偿的AP滤波器预测器和变型的/合成的参考图片存储2323可以使用维纳滤波器,维纳滤波器可以针对16个1/4图素位置中的每一个使用显式计算出的滤波器。通过使用混合和匹配方式,运动估计器、运动补偿分析器和特性和运动补偿的AP滤波器预测器和变型的/合成的参考图片存储2323可以使用码本中的一系列可用的滤波器来生成滤波组合,这允许不同类型的内容,例如利用相应滤波器的慢运动到高运动(模糊内容)。运动估计器、运动补偿分析器和特性和运动补偿的AP滤波器预测器和变型的/合成的参考图片存储2323可以根据混合和匹配来自多个滤波器的特定的1/4图素位置来创建新的滤波器组合。

在所示出的实施方式中,帧内预测器2324可以能够执行帧内预测。

在所示出的实施方式中,预测模式分析器和模式选择器2325可以能够在以块为基础可用的各种运动预测模式和帧内预测模式之间选择,并选择预测参数。

在所示出的实施方式中,预测效率分析器和EI滤波生成器2330可以能够输出经滤波预测信号和可以通过比特流向解码器发送的eii滤波器参数。

在所示出的实施方式中,预测融合分析器和FI滤波器生成器2335可以能够从预测模式分析器和模式选择器2325接收输出并执行对预测的图片(区域、或1个或多个片)的分析以确定以确定滤波如何可以改进预测信号并从而减小被编码的实际信号中的预测误差。滤波信息,包括可以使用一个滤波器还是多个滤波器(对于一个或多个块类型),与实际的滤波器系数、基于历史或码本的预测的索引、以及相关联的系数预测差别一起可以作为fii信息被发送。预测融合分析器和FI滤波器生成器2335可以使用维纳滤波器,维纳滤波器可以是非对称的、点对称或混合(部分对称部分非对称)的9x9方形或9x9或11x9系数的子集的形状。预测融合分析器和FI滤波器生成器2335可以通过使用码本搜索来最小化滤波开销,因此通可以编码所计算的系数(在预测之后)并将其发送至解码器或可以向解码器发送历史滤波器或码本滤波器的索引。预测融合分析器和FI滤波器生成器2335可以通过发送校正项来校正来自码本的滤波器系数,且可以在编码进展的同时更新码本。亮度和色度信号可以被滤波并且可以使用不同的形状和滤波器大小。

图24是根据本公开的至少一些实施方式布置的示例性解码器子系统2400的直观图。如所示出的,解码器子系统2400包括重建DD滤波器生成器2417、重建QR滤波器生成器2418、特性和运动补偿的AP滤波器预测器和变型的/合成的参考图片存储2423、帧内预测器2424、预测模式选择器2425、预测EI滤波生成器2430、和/或预测FI滤波器生成器2435。

在所示出的实施方式中,重建DD滤波器生成器2417可以能够对重建的信号进行解块并去振动,这是由在解码器处从比特流中所解码的ddi参数所引导的。

在所示出的实施方式中,重建QR滤波器生成器2418可以能够执行QR滤波,这是由从比特流中所解码的qri参数所引导的。

在所示出的实施方式中,特性和运动补偿的AP滤波器预测器和变型的/合成的参考图片存储2423可以能够执行自适应精确滤波,这是由从比特流中所解码的api参数所引导的。

在所示出的实施方式中,帧内预测器2424可以能够执行帧内预测。

在所示出的实施方式中,预测模式选择器2425可以能够在块的基础上在各种运动预测模式与帧内预测模式之间进行选择,并且选择预测参考。

在所示出的实施方式中,预测EI滤波生成器2430可以能够生成经滤波的预测,以供由预测模式分析器和模式选择器2425基于由编码器在比特流中发送的预测模式信息而进行选择。预测效率分析器和预测EI滤波生成器2430可以执行滤波,其可以是在本地块自适应的并且响应于通过比特流所携带至解码器的模式信息。

在所示出的实施方式中,预测FI滤波器生成器2435可以能够通过从预测模式选择器2425接收输出而执行融合改进滤波,并且在fii信息的引导下执行实际的滤波。

图25是根据本公开的至少一些实施方式布置的示例性熵编码器模块110的直观图。如所示出的,熵编码器模块110可以包括头部、参数和数据编码器模块2501,图相分区、预测分区、和编码分区编码器模块2502,编码模式和参考类型编码器模块2503、编码/未编码的数据编码器模块2504、变换参数编码器模块2505、运动向量和差异运动向量编码器模块2506、帧内预测和方向数据编码器模块2507、和/或比特流组装器模块2508。在本申请的讨论中,为了简洁的目的,模块2501至2507中的每一个可以被缩短为编码器模块2501、编码器模块2504等。

如所示出的,编码器模块2501至2507可以通过自适应熵编码器110分别接收视频数据2511至2517(例如,开销数据2511、划分数据2512、模式和参考类型数据2513、编码/未编码的数据2514、变换数据2515、运动数据2516、和/或帧内预测数据2517)。在一些示例中,如在本申请中讨论的,所接收的视频数据2511至2517可以是从编码器100的各个模块接收到的。如所示出的,编码器模块2501至2507可以压缩所接收的视频数据2511至2517以生成压缩的视频数据2521至2527。可以向比特流组装器2508提供压缩的视频数据2521至2527,比特流组装器2508可以组装压缩的视频数据2521至2527以生成输出比特流111。

在一些示例中,编码器模块2501至2507每个可以包括一个或多个专用组件以用于对与所接收的视频数据2511至2517相关联的数据类型高效地进行编码。在一些示例中,编码器模块2501至2507中的一个或多个可以基于所接收的视频数据2511至2517的一个参数、多个参数或特性或其他系统信息而预处理所接收的视频数据2511至2517和/或选择熵编码技术。

例如,编码器2501可以接收视频数据2511,视频数据2511可以包括头部数据(例如,序列和/或图片等级比特流头部)、变型参数、合成参数、或全局图数据(例如,指示在分区的基础上要被使用的量化器的图片的量化器映射)。在一些示例中,编码器模块2501可以实现自适应符号运行可变长度编码技术、自适应代理可变长度编码技术、或可变长度编码表或表以对视频数据2511进行压缩。在一些示例中,编码器模块2511可以确定哪种技术提供了最大压缩效率(例如,针对压缩的视频数据2521的最少比特),使得与划分数据2511相关联的参数可以为每种编码技术所需的比特数等。编码器模块2511可以熵编码分块数据2511以生成压缩的视频数据2521,可以如所示出地向比特流组装器2508传送视频数据2521。

如所讨论的,在一些示例中,与视频数据相关联的参数(例如,视频数据2511至2517中的任意一个)可以为最少数量的可达到比特、最高效的编码技术等。在其它示例中,与视频数据相关联的参数可以为预定义或预先确定的参数,使得编码技术是被预先确定的。在一些示例中,如在本申请中进一步讨论的,与视频数据相关联的参数可以是基于视频数据的特性的,使得所确定的编码技术可以适应于所接收的视频数据。

如所示出的,在一些示例中,编码器模块2502可以接收视频数据2512,视频数据2512可以包括图片片或区域数据、帧内预测分区数据、和/或帧间预测分区和编码分区数据。在一些示例中,编码器模块2502可以实现自适应符号运行可变长度编码技术或自适应代理可变长度编码技术,以用于基于与帧内预测分区数据和/或帧间预测分区数据相关联的参数(例如,最少数量的可达到比特、最高效的编码技术、预先确定的参数、视频数据2512的特性等)而压缩视频数据2512的帧内预测分区数据和/或帧间预测分区数据部分,并且编码器模块2512可以实现对视频数据2512的片或区域数据部分的自适应码本可变长度编码以生成压缩的视频数据2522,压缩的视频数据2522可以如所示出地被传送至比特流组装器2508。在一些示例中,帧内预测分区数据和/或帧间预测分区数据可以包括指示将瓦片划分为分区、将分区划分为子分区等的数据。在一些示例中,分区和/或子分区可以包括预测分区和/或子分区。在一些示例中,分区和/或子分区可以包括编码分区和/或子分区。

进一步如所示出的,在一些示例中,编码器模块2503可以接收视频数据2513,视频数据2513可以包括针对每个预测分区的模式(例如,帧内、分裂、跳过、自动、帧间、或多个)数据和/或参考数据。例如,模式分裂信息可以指示分区是否进一步被分割。如果分区被进一步分割,则模式数据可以进一步包括指示该分裂是水平分裂(例如,hor)还是垂直分裂(例如,vert)的方向信息。在一些示例中,编码器模块2503可以实现自适应符号运行可变长度编码技术或自适应代理可变长度编码技术,以用于基于与数据相关联的参数(例如,最少数量的可达到比特、最高效的编码技术、预先确定的参数、视频数据2513的相关部分的特性等)而单独编码分裂/未分裂的分区信息数据、单独编码分裂/未分裂的分裂信息数据或预测参考信息数据,并且编码器模块2503可以实现自适应可变长度编码以用于对模式和分裂信息的联合编码,以生成压缩的视频数据2523,视频数据2523可以如所示出地被传送至比特流组装器2508。

此外,在一些示例中,编码器模块2504可以接收视频数据2514,视频数据2514可以包括编码的/未编码的数据。例如,如果分区(或子分区)具有任何非零变换系数,则其可以被编码,并且如果分区(或子分区)具有全部令变换系数,则其不可以被编码。在一些示例中,对于具有帧内或跳过模式的分区,可以不需要编码的/未编码的数据。在一些示例中,对于具有自动、帧间、或多个模式的分区,可以不需要编码的/未编码的数据。在一些示例中,编码器模块2504可以基于与编码的/未编码的数据相关联的参数(例如,最少数量的可达到比特、最高效的编码技术、预先确定的参数、视频数据2514的特性等)来实现自适应符号运行可变长度编码技术或自适应代理可变长度编码技术以用于编码的/未编码的数据,以生成压缩的视频数据2524,视频数据2524可以如所示出地被传送至比特流组装器2508。

在一些示例中,编码器模块2505可以接收视频数据2515,视频数据2515可以包括变换系数数据。例如,对于被编码的块或分区或子分区(例如,具有一个或多个非零变换系数),可以接收变换系数数据以用于熵编码。编码器模块2505可以实现对在一个维度中具有大小为2的块或分区或子分区(例如,2xK分区或Kx2大小的分区)的块或分区或子分区进行自适应向量可变长度编码。此外,编码器模块2505可以实现自适应1维可变长度编码以用于4x4大小的块或分区或子分区,并且实现自适应2维可变长度编码以用于所有其他块或分区或子分区大小(例如,4x8、8x4、8x8、16x16、32x32、64x64等)。所生成的压缩的视频数据2525可以如所示出地被传送至比特流组装器2508。

例如,可以由于通过自适应变换模块108所实现的对像素数据的矩形(或方形)分区或对像素差值的矩形(或方形)分区的前向变换,接着是通过自适应量化模块109的对得到的系数量化而产生变换系数数据。在一些示例中,可以扫描变换系数数据以通过编码器模块2505将变换系数数据转换为1维频率有序分区。这样的转换可以高度适应于任何分区大小(例如,24或更大或32或更大的分区大小)、不同数据类型(例如,帧内分区或帧间分区的离散余弦变换系数或混合参数哈尔变换系数等)、和/或不同量化器组特性(例如,量化器参数和/或矩阵的各种组合)。此外,块或分区或子分区可以属于不同图片类型:I图片(例如,仅帧内补偿)、P图片(例如,预测)或F图片(例如,功能)和/或可以表示不同类型的信号或数据(例如,亮度或色度等),可以用不同量化器设置来对其进行量化。

此外,在一些示例中,编码器模块2506可以接收视频数据2516,视频数据2516可以包括运动向量数据。可以基于视频数据2516执行运动向量预测,以生成一个或多个预测的运动向量。可以确定预测的运动向量与视频数据2516的原始运动数据的差异,以生成差值运动向量。在一些示例中,编码器模块2516可以针对插值运动向量实现自适应分类的可变长度编码,以生成压缩的视频数据2526,如所示出的,可以将视频数据252向比特流组装器2508发送。

此外,在一些示例中,编码器模块2507可以接收视频数据2517,视频数据2517可以包括帧内预测类型或帧内预测方向数据。例如,如所讨论的,帧内编码可以使用预测,其可以使用相邻的过去的同一帧内的解码的分区来生成空间预测。在这样的示例中,可以存在用于指示过去的解码的分区的预测器。例如,预测器可以包括dc、斜率、方向、BTPC、特征匹配等。此外,在一些示例中,方向预测器可以自适应于不同的分区大小。例如,指定方向预测器可以包括提供用于确定角度预测像素分区的技术以使用随意(casual)相邻的解码的分区进行编码和/或指定用于熵编码空间预测方向的技术。在一些示例中,这样的技术可以通过编码器2507来执行。在一些示例中,编码器模块2507可以基于与帧内预测类型或帧内预测方向数据(例如,最少数量的可达到比特、最高效的编码技术、预先确定的参数、视频数据2517的相关部分的特性等)针对帧内预测类型或帧内预测方向数据实现自适应可变长度编码技术或算术编码技术以生成压缩的视频数据2527,如所示出的,可以将视频数据2527向比特流组装器2508发送。

如在图25中所示出的,自适应熵编码器110可以包括比特流组装器2508。在一些示例中,编码器模块2501至2507中的一些或全部可以在时间的不同实例处提供熵编码的压缩的视频数据2521至2527。此外,在一些示例中,压缩的视频数据2521至2527中的一个或一些可以是基于图片、基于区域或片、基于瓦片、基于预测分区、基于编码分区、或其任何组合的。在一些示例中,比特流组装器可以复用(潜在地不同的)压缩的视频数据2521至2527以创建诸如例如输出比特流111的有效的比特流。例如,有效的比特流可以是有效的下一代视频(NGV)编码的比特流,其可以遵循NGV比特流语法规范。在一些示例中,输出比特流111可以是仅视频比特流。在一些示例中,输出比特流111可以与未编码或编码的音频复用(例如,传输或媒体文件格式)以创建复用的视听流。在任何情况下,如本申请中所讨论的,可以使用比特流进行局部解码、存储或向解码器传输。

图26是根据本公开的至少一些实施方式布置的示例性熵解码器模块202的直观图。如所示出的,熵解码器模块202可以包括头部、参数和映射数据解码器模块2601、图片分区、预测分区、和编码分区解码器模块2602、编码模式和参考类型解码器模块2603、编码/未编码的数据解码器模块2604、变换系数解码器模块2605、运动向量和差异运动向量解码器模块2606、帧内预测和方向数据解码器模块2607、和/或比特流解组装器模块2608。在本申请的讨论中,为了简洁起见,模块2601至2607中的每一个可以被缩短为解码器模块2601、解码器模块2605等。

如所示出的,比特流解码器模块2608可以接收输出比特流201。在一些示例中,输入比特流201可以是诸如例如有效的下一代视频(NGV)编码的比特流的有效的比特流,其可以遵循NGV比特流语法规范。在一些示例中,输入比特流201可以是仅视频比特流。如本申请中所讨论的,在一些示例中,输入比特流201可以是复用的视听流。如所示出的,比特流解组装器模块2608可以将输入比特流201解组装以确定压缩的视频数据2611至2617。例如,比特流解组装器模块2608可以使用预定义的语法或规范根据数据类型将输入比特流201分割成分量压缩的视频数据2611至2617以通过解码器模块2601至2607解压缩。在一些示例中,比特流解组装器模块2608可以执行相对于比特流组装器模块2508的逆操作。

如在图26中所示出的,解码器模块2601至2607可以分别接收压缩的视频数据2611至2617,并生成视频数据2621至2627。如本申请中所讨论的,可以向解码器200的各个组件发送视频数据2621至2627以进行进一步解码。从而,解码器200可以生成视频帧以通过显示设备(未示出)向用户呈现。在一些示例中,解码器模块2601至2607各自可以执行相对于编码器模块2501至2507的逆变换。在一些示例中,解码器模块2601至2607可以各自包括一个或多个专门的组件,以将与压缩的视频数据2611至2617相关联的数据的类型进行高效地熵解码。

例如,解码器模块2601可以接收压缩的视频数据2611,压缩的视频数据2611可以包括压缩的头部数据(例如,序列和/或图片级别比特流头部)、变形参数、合成参数、或全局映射数据(例如,指示要以分区为基础所使用的量化器的图片的量化器映射)。在一些示例中,解码器模块2611可以实现自适应符号运行可变长度编码技术、自适应代理可变长度编码技术、或可变长度编码表以对压缩视频数据2611进行解压缩,以生成视频数据2621。在一些示例中,解码器模块2601可以基于通过比特流201提供的参数或指示符来确定要实现哪一个编码技术。

如所示出的,在一些示例中,解码器模块2602可以接收压缩的视频数据2612,视频数据2612可以包括压缩的图片片或区域数据、帧内预测分区数据、和/或帧间预测分区数据。在一些示例中,解码器2602可以实现自适应符号运行可变长度编码技术或自适应代理可变长度编码技术以对压缩的视频数据2612的帧内预测分区数据或帧间预测分区数据部分进行解压缩,并且解码器模块2602可以实现自适应码本可变长度编码以对压缩的视频数据2612的片或区域数据部分进行解压缩,以生成视频数据2622。在一些示例中,帧内预测分区数据和/或帧间预测分区数据可以包括指示将瓦片划分成分区、将分区划分成子分区的数据等。在一些示例中,上述分区和/或子分区可以包括预测分区和/或子分区。在一些示例中,分区和/或子分区可以包括编码分区和/或子分区。在一些示例中,解码器模块2602可以基于通过比特流201提供的参数或指示符确定要实现哪一个编码技术以将压缩的视频数据2612的帧内预测分块数据和/或帧间预测分块数据部分解压缩。

此外,在一些示例中,解码器模块2603可以接收压缩的视频数据2613,压缩的视频数据2613可以包括针对每一预测分区的压缩模式(例如,帧内、分裂、跳过、自动、帧间、或多个)数据和/或参考数据。例如,模式分裂信息可以指示是否进一步分割分区。如果进一步分割分区,则模式数据可以进一步包括指示该分裂是水平分裂(例如,hor)或垂直分裂(例如,vert)的方向信息。在一些示例中,解码器模块2603可以实现自适应符号运行可变长度编码技术或自适应代理可变长度编码技术,以对分裂/未分裂的分区信息数据的单独编码、分裂/未分裂的分裂信息数据的单独编码、或预测参考信息数据进行解压缩,并且解码器模块2603可以实现自适应可变长度编码以对模式和分裂信息的联合编码进行解压缩,以生成视频数据2623。在一些示例中,解码器模块2603可以基于通过比特流201提供的参数或指示符来确定要实现哪一个编码技术以对分裂/未分裂的分区信息数据的单独编码、分裂/未分裂的分裂信息数据的单独编码、或预测参考信息数据进行解压缩。

此外,在一些示例中,解码器模块2604可以接收压缩的视频数据2614,压缩的视频数据2614可以包括编码/未编码的数据。例如,如果分区(或子分区)具有任何非零的变换系数,则其可被编码,并且如果分区(或子分区)具有全部都是零的变换系数,则其可以不被编码。在一些示例中,对于具有帧内或跳过模式的分区,可不需要编码/未编码的数据。在一些示例中,对于具有自动、帧间或多模式的划分,可需要编码/未编码的数据。在一些示例中,解码器模块2604可以实现自适应符号运行可变长度编码技术或自适应代理可变长度编码技术,以解压缩编码/未编码的数据,以生成视频数据2624。在一些示例中,解码器模块2604可以基于通过比特流201提供的参数或指示符来确定要实现哪一个编码技术以进行解压缩。

如所示出的,在一些示例中,解码器模块2605可以接收压缩的视频数据2615,视频数据2615可以包括变换系数数据。例如,对于被编码的块或分区或子分区(例如,具有一个或多个非零的变换系数),压缩的视频数据2615可以包括变换系数数据。在一些示例中,解码器模块2605可以实现自适应向量可变长度编码,以对在一个维度上具有大小为2的块或分区或子分区的块或分区或子分区(例如,2xK分区或Kx2大小的分区)进行解压缩。此外,解码器模块2605可以实现自适应1维可变长度编码以用于对4x4大小的块或分区或子分区进行解压缩,并且实现自适应2维可变长度编码以用于对所有其他的块或分区或子分区大小(例如,4x8、8x4、8x8、16x16、32x32、64x64等)进行解压缩。如所示出的,可以向解码器200的其他模块发送所生成的视频数据2625。

此外,在一些示例中,解码器模块2606可以接收压缩的视频数据2616,压缩的视频数据2616可以包括运动向量数据。在一些示例中,可以使用自适应分类的可变长度编码技术来解压缩压缩的视频数据2616以生成预测差运动向量。可以将预测的差异运动向量添加到运动向量预测,以生成重建的运动向量。可以基于使用通过编码器模块2506所实现的技术的逆向的先前解码的相邻块或分区的运动向量来生成运动向量预测,例如,和/或运动向量。如所示出的,可以通过视频数据2626向解码器200的其他模块发送重建的运动向量。

此外,在一些示例中,解码器2607可以接收压缩的视频数据2617,压缩的视频数据2617可以包括帧内预测类型或帧内预测方向数据。例如,如所讨论的,帧内编码可以使用预测,其可以使用相同帧内的相邻的过去编码的分区来生成空间预测。在这样的示例中,可存在用于指示过去的解码的分区的预测器。例如,预测器可以包括dc、斜率、方向、BTPC、特征匹配等。此外,在一些示例中,方向预测器可以自适应于不同的分区大小。例如,指定方向预测器可以包括提供用于确定角度预测像素分区的技术以使用随意相邻的解码的分区进行编码和/或指定用于熵编码空间预测方向的技术。在一些示例中,解码器模块2617可以实现自适应可变长度编码技术或算术编码技术以对帧内预测类型或帧内预测方向数据进行解压缩以生成视频数据2627。在一些示例中,解码器模块2607可以基于通过比特流201提供的参数或指示符确定要实现哪一个编码技术来解压缩。

如上文所讨论的,可以对各种数据类型实现各种熵编码技术以无损压缩视频数据以在熵编码器处生成压缩的视频数据以及用于解压缩压缩的视频数据以在熵编码器处生成复制的视频数据。

在一些示例中,可以实现自适应符号运行的可变长度编码技术。例如,编码器和解码器模块2501、2601、2502、2602、2503、2603、和/或2504、2604可以对所接收的视频数据中的一些或全部或压缩视频数据中的一些或全部实现自适应符号运行的可变长度编码技术。

在一些示例中,自适应符号运行的可变长度编码技术可以包括在允许人们确定邻接的跳过的块数目的视频编码中的帧内的非跳过的块之间的地址的相对差进行编码。例如,在编码/未编的码数据通过编码器和解码器模块2504、404进行编码和解码的背景下,编码器模块2504例如可以对跳过块的运行进行编码,而不是向信号编码/未编码的(例如,跳过的)块而针对每一块来发送一个比特(例如,位图)。在这样的实施方式中,跳过的块运行的越长,就可以越高效地压缩数据。

此外,如本申请中所描述的,可以将若干类型的自适应性添加到自适应符号运行的可变长度编码技术:可以允许使用多个表的自适应性、可以允许使用对原始位图数据、反转的位图、确定差异的位图、或梯度预测位图等执行该类型的编码的自适应性。例如,自适应符号运行的可变长度技术可以用于对基本上任何类型的事件(例如,符号/运行组合)进行熵编码。此外,符号/运行事件可以用于对多级(例如,0、1、2、3等)或二进制(例如,0、1)事件进行编码。在多级别事件被编码的示例中,自适应符号运行可变长度编码技术可以应用多个连续次,将多级映射分割成多个二进制子映射,其中将每一先前的子映射排除在下一级的子映射外等。

在一些示例中,可以实现自适应代理可变长度编码技术。例如,编码器和解码器模块2501、401、2502、402、2503、403、和/或2504、404可以对所接收的视频数据中的一些或全部或压缩的视频数据中的一些或全部实现自适应代理可变长度编码技术。

在一些示例中,自适应代理可变长度编码技术可以包括对具有可变长度编码(例如,比特序列的图案(pattern))的原始的固定长度1D比特块(例如,组)的替代,使得在替换之后,所产生的比特流在大小方面更小。在一些示例中,在解码器处,可以重复(或反转)该过程以导致原本期望的比特流。在一些示例中,所替换的原始比特块可以具有固定的小尺寸(例如,2比特组、3比特组、或4比特组等)。在一些示例中,替换代码可以天然具有较小的尺寸和可变的长度。在一些示例中,本申请中所讨论的自适应代理可变长度编码的特征是短VLC(例如,可变长度编码)。此外,通过提供多个替换选项,本申请中描述的自适应代理可变长度编码技术可以自适应于内容。在一些示例中,可以利用1-3比特长编码来替换1维的2比特块/组。在一些示例中,可以利用1-5比特长编码来替换具有编码1维的3比特块/组(或块/组的集合)。在一些示例中,自适应代理可变长度编码技术可以利用比特流内的统计冗余。在一些示例中,自适应代理可变长度编码技术可以提供大约1-1.3的压缩增益。在一些示例中,自适应代理可变长度编码技术可以提供可服从于应用到短比特序列的优点。

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

在一些示例中,自适应符号块可变长度编码技术可以包括两个子编码技术。例如,自适应符号块可变长度编码技术可以包括自适应向量可变长度编码技术和自适应1D/2D(1维/2维)可变长度编码技术。在一些示例中,如本申请中所讨论的,自适应符号块可变长度编码技术可以用于对诸如变换系数块的紧密相关的符号块进行编码。

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

在一些示例中,自适应符号块可变长度编码技术的自适应1D可变长度编码技术可以用于对4x4变换系数块或分区大小进行编码。本质上与CAVLC编码器相同。该编码器主要用于对4x4进行编码。在一些示例中,可以通过具有基于被编码的系数的上下文使用的多个不同的VLC表的内容的自适应可变长度编码技术来实现自适应1D可变长度编码技术。例如,基于被编码的系数的背景,编码器和/或解码器模块304、405可以交换VLC表。

在一些示例中,自适应符号块可变长度编码技术的自适应2D可变长度编码技术可以基于多个不同的VLC表之间的上下文而利用符号块的2维属性进行交换。在一些示例中,自适应2D可变长度编码技术的特征可以是CA2DVLC(内容自适应2D可变长度)编码器。在一些示例中,在一些示例中,除了2xK、Kx2块和4x4块之外,自适应2D可变长度编码技术还可以对所有剩余的变换系数块或请求的大小(例如,4x8、8x4、8x8、16x16、32x32、64x64等)进行编码。

图27是根据本公开的至少一些实施方式布置的示出了示例性过程2700的流程图。过程2700可以包括一个或多个操作、功能或动作,如由操作2702、2704、2706、2708、2710、2712、2714、2716、2718、2720和/或2722中的一个或多个所示出的。过程2700可以形成下一代视频编码过程的至少一部分。通过非限制性示例的方式,过程2700可以形成下一代视频编码过程的至少一部分,如由图1中的编码器系统100和/或本申请中所描述的任何其它的编码器子系统所采用的。

过程2700可以在操作2702开始,例如“接收视频序列的输入视频帧”,其中视频序列的输入视频帧可以通过编码器100接收。

过程2700可以在操作2704继续,例如“将图片类型与每一视频帧相关联”,其中图片类型可以通过内容预分析器模块102与一组图片中的每一视频帧相关联。例如,图片类型可以是F/B图片、P图片、或I图片等。在一些示例中,视频序列可以包括图片组,并且可以对一组图片中的帧或图片执行本申请中所描述的处理(例如,操作2703至2711),并且可以针对所有帧或一组图片重复该处理,并且接着针对视频序列中的所有图片组进行重复。

过程2700可以在操作2706继续,例如“将图片分割成瓦片和/或超分片和潜在的预测分块”,其中可以通过预测分区生成器105来将图片分割成瓦片或超分片和潜在的预测分区。

过程2700可以在操作2708继续,“确定修改(例如,变形或合成)特性参数以生成变形的或合成的预测参考并形成预测”,其中,可以执行修改(例如,变形或合成)特性参数和预测。例如,可以执行修改(例如,变形或合成)特征参数和预测。例如,可以生成用于生成变形的或合成的预测参考的修改(例如,变形或合成)特性参数并且可以执行预测。

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

过程2700可以在操作2710继续,“针对潜在的预测分块,确定潜在的预测误差”,其中,针对每一潜在的预测分块,可以确定潜在的预测误差。例如,针对每一预测分块(及相关联的预测分区、预测、以及预测参数),可以确定预测误差。例如,确定潜在的预测误差可以包括确定原始像素(例如,预测分区的原始像素数据)与预测像素的差异。在一些示例中,可以存储所关联的预测参数。如所讨论的,在一些示例中,预测误差数据分区可以包括至少部分地基于使用变形技术或合成技术中的至少一个所生成的先前解码的帧而生成的预测误差数据。

过程2700可以在操作2712继续,“选择预测分块和预测类型并保存参数”,其中可以选择预测分块和预测类型,且可以保存关联的参数。在一些示例中,可以选择具有最小预测误差的潜在的预测分块。在一些示例中,可以基于速率失真优化(RDO)来选择潜在的预测分块。

过程2700可以在操作2714继续,“对潜在编码分块执行变换”,其中可以对分区预测误差数据的各种潜在编码分块执行具有各种块大小的固定的或内容自适应的变换。例如,可以划分分区预测误差数据以生成多个编码分区。例如,如本申请中所讨论的,可以通过编码分区生成器模块107的二叉树编码划分器模块或k-d树编码划分器模块来划分分区预测误差数据。在一些示例中,可以由二叉树编码划分器模块来划分与F/B或P图片关联的分区预测误差数据。在一些示例中,可以由k-d树编码划分器模块划分与I图片相关联的视频数据(例如,在一些示例中为瓦片或超分片)。在一些示例中,可以通过开关来挑选或选择编码划分器模块。例如,可以通过编码分区生成器模块107生成分区。

过程2700可以在操作2716继续,“确定最佳编码分块、变换块大小、以及实际变换”,其中可以确定最佳编码分块、变换块大小、以及实际变换。例如,可以基于RDO或另一基础来评估各种编码分块(例如,具有各种编码分区),以确定所选择的编码分块(如所讨论的,其也可以包括当编码分区与变换块大小不匹配时,将编码分区进一步分割成变换块)。例如,如本申请中所描述的,实际变换(或所选择的变换)可以包括对编码分区或块大小所执行的任何内容自适应变换或固定变换。

过程2700可以在操作2718继续,“量化并扫描变换系数”,其中可以在准备熵编码中将与编码分区相关联的变换系数(和/或变换块)进行量化和扫描。

过程2700可以在操作2720继续,“重建像素数据、组装成图片、并且保存在参考图片缓冲器中”,其中像素数据可以被重建、组装成图片、并保存在参考图片缓冲器中。例如,在局部解码循环(例如,包括逆扫描、逆变换、以及组装编码分区)之后,可以生成预测误差数据分区。可以使预测误差数据分区与预测分区相加以生成重建的预测分区,其可以被组装成瓦片或超分片。可以通过解块滤波和/或质量恢复滤波可选地处理所组装的瓦片或超分片并将其组装以生成图片。可以将该图片保存在解码图片缓冲器119中,作为用于预测其他(例如,随后的)图片的参考图片。

过程2700可以在操作2722继续,“解码熵编码的比特流以确定编码分区指示符、块大小数据、变换类型数据、量化器(Qp)、量化的变换系数、运动向量和参考类型数据、特性参数(例如,mop、syp)”,其中数据可以被熵编码。例如,熵编码的数据可以包括编码分区指示符、块大小数据、变换类型数据、量化器(Qp)、量化的变换系数、运动向量和参考类型数据、特性参数(例如,mop、syp)等、和/或其组合。另外地或替代地,熵编码的数据可以包括预测分块、预测参数、所选择的编码分块、所选择的特性数据、运动向量数据、量化的变换系数、滤波器参数、选择数据(例如模式选择数据)、以及指示符。

操作2702至2722可以支持视频编码和比特流传输技术,如本申请中所讨论的,其可以由编码器系统所采用。

图28示出了根据本公开的至少一些实施方式布置的示例性比特流2800。在一些示例中,比特流2800可以与如图1中所示出的输出比特流111和/或如图2中所示出的输入比特流201对应。虽然为了呈现的清楚起见在图28中未示出,但是在一些示例中比特流2800可以包括头部部分和数据部分。在各个示例中,比特流2800可以包括数据、指示符、索引值、模式选择数据等如本申请中所讨论的与对视频帧进行编码相关联的。

如所讨论的,比特流2800可以由诸如例如编码器100的编码器生成和/或由解码器200接收以进行解码,使得解码的视频帧可以通过显示设备进行呈现。

图29是示出根据本公开至少一些实施方式布置的示例性过程2900的流程图。过程2900可以包括一个或多个操作、功能或动作,如由操作2902、2904、2906、2908、2910、2912和/或2914中的一个或多个所示出的。过程2900可以形成下一代视频编码过程的至少一部分。通过非限制性示例的方式,过程2900可以形成下一代视频解码过程的至少一部分,如由图2中的解码器系统200和/或本申请中所描述的任何其它的编码器子系统所采用的。

过程2900可以在操作2902开始,“接收编码的比特流”,其中可以接收比特流。例如,可以在视频解码器处接收如本申请所讨论的编码的比特流。在一些示例中,可以通过解码器200接收比特流2800。

过程2900可以在操作2904继续,“解码熵编码的比特流以确定编码分区指示符、块大小数据、变换类型数据、量化器(Qp)、量化的变换系数、运动向量和参考类型数据、特性参数(例如,mop、syp)”,其中可以对比特流进行解码以确定编码分区指示符、块大小数据、变换类型数据、量化器(Qp)、量化的变换系数、运动向量和参考类型数据、特性参数(例如,mop、syp)等、和/或其组合。另外地或替代地,熵编码的数据可以包括预测分块、预测参数、所选择的编码分块、所选择的特性数据、运动向量数据、量化的变换系数、滤波器参数、选择数据(例如,模式选择数据)、以及指示符。

过程2900可以在操作2906继续,“对量化的系数应用量化器(Qp)以生成逆量化的变换系数”,其中量化器(Qp)可以被应用于量化的变换系数,以生成逆量化的变换系数。例如,操作2906可以通过自适应逆量化模块203被应用。

过程2900可以在操作2908继续,“在编码(或帧内预测)分区中对系数的每一解码块基于变换类型和块大小数据执行逆变换,以生成解码的预测误差分区”,其中,在编码(或帧内预测)分区中对系数的每一解码块,可以基于变换类型和块大小数据执行逆变换,以生成解码的预测误差分区。在一些示例中,逆变换可以包括逆固定变换。在一些示例中,逆变换可以包括逆内容自适应变换。在这样的示例中,执行逆内容自适应变换可以包括基于解码的视频数据的相邻块确定与逆自适应变换关联的基函数,如本申请中所讨论的。用于如本申请中所讨论的进行编码的任何前向变换可以用于使用关联的逆变换而进行解码。在一些示例中,逆变换可以由自适应逆变换模块204执行。在一些示例中,生成解码的预测误差分区也可以包括通过编码分区组装器205组装编码分块。

过程2900可以在操作2909继续,“使用解码的修改特性(例如,mop、syp)来生成用于预测的修改的参考并使用运动向量和参考信息、预测的分区信息、以及修改的参考来生成预测的分区”,其中可以生成用于预测的修改的参考并且也可以生成预测的分区。例如,其中可以至少部分地基于解码的修改特性(例如,mop、syp)来生成用于预测的修改的参考并且可以至少部分地基于运动向量和参考信息、预测的分区信息、和修改的参考来生成预测的分区。

过程2900可以在操作2910继续,“将预测的分区添加到解码的预测误差数据分区以生成重建的分区”,其中可以将预测分区添加到解码的预测误差数据分区以生成重建的预测分区分。例如,可以通过加法器206将解码的预测误差数据分区添加到关联的预测分区。

过程2900可以在操作2912继续,“组装重建的分区以生成瓦片或超分片”,其中可以组装重建的预测分区以生成瓦片或超分片。例如,可以通过预测分区组装器模块207来组装重建的预测分区以生成瓦片或超分片。

过程2900可以在操作2914继续,“组装图片的瓦片或超分片以生成全解码的图片”,其中可以组装图片的瓦片或超分片以生成全解码的图片。例如,在可选的解块滤波和/或质量恢复滤波之后,可以组装瓦片或超分片以生成全解码的图片,其可以通过解码的图片缓冲器210保存和/或在通过自适应图片重组织器模块217和内容后恢复器模块218处理之后发送,以通过显示设备进行呈现。

可以以软件、固件、和/或硬件和/或其任何组合来实现本申请中描述的系统的各个组件。例如,可以至少部分地通过诸如可以在诸如例如智能手机之类的计算系统中找到的计算片上系统(SoC)的硬件来提供各个组件,本领域的熟练技术人员可以认识到本申请中描述的系统可以包括尚未在相应的图中描绘的另外的组件。例如,本申请中所讨论的系统可以包括诸如为了清楚起见尚未描绘的比特流复用器或解复用器模块等之类的另外的组件。

虽然实现本申请中的示例性过程可以包括按照所示出的顺序采用所示出的所有操作,但是本公开在该方面不受限制,在各个示例中,实现本申请中的示例性过程可以包括仅承担所示出的操作的子集和/或按照与所示出的顺序不同的顺序。

可以在本申请中讨论的实施方式中的一个或多个示例中并且具体地关于下文的图23来描述与过程2700、2900相关的一些额外的和/或替代的细节以及本申请中讨论的其他过程。

图30(A)、30(B)和30(C)提供了根据本公开的至少一些实施方式布置的运行中的示例性视频编码系统13000和视频编码过程3000的直观图。在所示出的实施方式中,过程3000可以包括一个或多个操作、功能或动作,如由动作3001至3076中的一个或多个所示出的。通过非限制性示例的方式,将参考示例性视频编码系统13000在本申请中描述过程3000,上述示例性视频编码系统13000包括图1中的编码器100和图2中的解码器200、和/或本申请中描述的其他编码器和解码器系统和子系统,如下文参考图31在本申请中进一步讨论的。在各个示例中,过程3000可以由包括编码器和解码器的系统或具有使用编码器(及可选地解码器)的一个系统和使用解码器(以及可选地编码器)的另一系统的分开的系统所执行。还要注意的是,如上文所讨论的,编码器可以包括采用局部解码器的局部解码循环以作为编码器系统的一部分。

在所示出的实现中,视频编码系统13000可以包括逻辑电路3050,和/或其组合。例如,逻辑电路3050可以包括图1中的编码器系统100和/或图2中的解码器系统200,并且可以包括如针对本申请中所描述的编码器系统和子系统和/或解码器系统和子系统中的任何一个所讨论的任何模块。虽然如在图30(A)-(C)中所示出的,视频编码系统13000可以包括与特定模块相关联的一个特定组的块或动作,但是这些块或动作可以与在此示出的特定的模块不同的模块相关联。虽然如所示出的,过程3000是针对编码和解码的,但是可以将所描述的概念和/或操作分别应用到编码和/或解码,且更一般地,应用到视频编码。

过程3000可以在操作3001开始,“接收视频序列的输入视频帧”,例如,其中可以通过编码器100接收视频序列的输入视频帧。

过程3000可以在操作3002继续,“将图片类型与一组图片中的每一视频帧相关联”,例如,其中可以通过内容预分析器模块102将图片类型与一组图片中的每一视频帧相关联。例如,图片类型可以是F/B图片、P图片、或I图片等。在一些示例中,视频序列可以包括图片组并且可以对一组图片的帧或图片执行本申请中描述的处理(例如,操作3003至3011)并且针对一组中的所有帧或图片可以重复上述处理,并接着针对视频序列中的所有图片组进行重复。

过程3000可以在操作3003继续,“将图片分割成瓦片和/或超分片以及潜在的预测分块”,例如,其中可以通过预测分区生成器105来将图片分割成瓦片或超分片和潜在的预测分区。

过程3000可以在操作3004继续,“针对每一潜在的预测分块,执行预测并确定预测参数”,其中,针对每一潜在的预测分块,可以执行预测且可以确定预测参数。例如,可以生成一系列潜在的预测分块(每一具有各种预测分区)并且可以确定关联的预测和预测参数。例如,预测可以包括使用基于特性和运动的多参考预测或帧内预测的预测。

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

过程3000可以在操作3005继续,“针对每一潜在的预测分块,确定潜在的预测误差”,其中,针对每一潜在的预测分块,可以确定潜在的预测误差。例如,针对每一预测分块(以及相关联的预测分区、预测、以及预测参数),可以确定预测误差。例如,确定潜在的预测误差可以包括确定原始像素(例如,预测分区的原始像素数据)与预测像素的差异。在一些示例中,可以存储关联的预测参数。如所讨论的,在一些示例中,预测误差数据分区可以包括至少部分地基于使用变形技术或合成技术中的至少一个所生成的先前解码的帧而生成的预测误差数据。

过程3000可以在操作3006继续,“选择预测分块和预测类型并保存参数”,其中可以选择预测分块和预测类型且可以保存所关联的参数。在一些示例中,可以选择具有最小预测误差的潜在的预测分块。在一些示例中,可以基于速率失真优化(RDO)来选择潜在的预测分块。

过程3000可以在操作3007继续,“对分区预测误差数据的各种潜在的编码分块执行固定或具有各种块大小的内容自适应变换”,其中可以对分区预测误差数据的各种潜在的编码分块执行固定变换或具有各种块大小的内容自适应变换。例如,可以划分分区预测误差数据以生成多个编码分区。例如,如本申请中所讨论的,可以通过编码分区生成器107的二叉树编码划分器模块或k-d树编码划分器模块来划分分区预测误差数据。在一些示例中,可以通过二叉树编码划分器模块来划分与F/B或P图片相关联的分区预测误差数据。在一些示例中,可以通过k-d树编码划分器模块来划分与I图片相关联的视频数据(例如,在一些示例中为瓦片或超分片)。在一些示例中,可以通过开关挑选或选择编码划分器模块。例如,可以通过编码分区生成器模块107来生成分区。

过程3000可以在操作3008继续,“确定最佳编码分块、变换块大小、以及实际变换”,其中可以确定最佳编码分块、变换块大小、以及实际变换。例如,可以基于RDO或另一基础来评估各种编码分块(例如,具有各种编码分区),以确定所选择的编码分块(如所讨论的,其也可以包括当编码分区与变换块大小不匹配时,将编码分区进一步分割成变换块)。例如,如本申请中所描述的,实际变换(或所选择的变换)可以包括对编码分区或块大小所执行的任何内容自适应变换或固定变换。

过程3000可以在操作3009继续,“量化并扫描变换系数”,其中可以在准备熵编码中将与编码分区相关联的变换系数(和/或变换块)进行量化和扫描。

过程3000可以在操作3011继续,“对与每一瓦片或超分片相关联的数据进行熵编码”,其中可以对与每一瓦片或超分片关联的数据进行熵编码。例如,可以对与每一视频序列的每一图片组的每一图片的每一瓦片或超分片关联的数据进行熵编码。被熵编码的数据可以包括预测分块、预测参数、所选择的编码分块、所选择的特性数据、运动向量数据、量化的变换系数、滤波器参数、选择数据(例如,模式选择数据)、以及指示符。

过程3000可以在操作3012继续,“生成比特流”,其中可以基于熵编码的数据而生成比特流。如所讨论的,在一些示例中,比特流可以包括与预测分区相关联的帧或图片参考、变形参数、或合成参数。

过程3000可以在操作3013继续,“发送比特流”,其中可以发送比特流。例如,视频编码系统13000可以通过天线3102(请参考图31)发送输出比特流111、比特流2100等。

过程3000可以在操作3020继续,“重建像素数据,组装成图片,并且保存在参考图片缓冲器中”,其中像素数据可以被重建、组装成图片、并保存在参考图片缓冲器中。例如,在局部解码循环(例如,包括逆扫描、逆变换、以及组装编码分区)之后,可以生成预测误差数据分区。可以使预测误差数据分区与预测分区相加以生成重建的预测分区,其可以被组装成瓦片或超分片。可以通过解块滤波和/或质量恢复滤波可选地处理所组装的瓦片或超分片并将其组装以生成图片。可以将该图片保存在解码的图片缓冲器119中,作为用于预测其他(例如,随后的)图片的参考图片。

过程3000可以在操作3022继续,“生成解码的预测参考图片”,其中可以解码解码的预测参考图片。例如,可以组装解码的(或最终解码的)瓦片或超分片以生成解码的视频图片,且可以将解码的视频图片保存在参考图片缓冲器中(例如,解码的图片缓冲器119)中以在未来的预测中使用。

过程3000可以在操作3023继续,“生成修改特性参数”,其中,可以生成修改的特性参数。例如,可以至少部分地基于第二解码的预测参考图片来生成第二修改的预测参考图片和与第二修改的预测参考图片关联的第二修改特性参数,其中第二修改的参考图片可以具有与第一修改的参考图片不同的类型。

过程3000在操作3024继续,“生成修改的预测参考图片”,其中,可以生成修改的预测参考图片,例如,可以至少部分地基于第一解码的预测参考图片而生成第一修改的预测参考图片和与第一修改的预测参考图片关联的第一修改特性参数。

过程3000可以在操作3025继续,“生成运动数据”,其中可以生成运动估计数据。例如,可以至少部分地基于第一修改的预测参考图片或第二修改的预测参考图片中的一个而生成与当前图片的预测分块相关联的运动数据。

过程3000可以在操作3026继续,“执行运动补偿”,其中,可以执行运动补偿。例如,可以至少部分地基于运动数据和第一修改的预测参考图片或第二修改的预测参考图片来执行运动补偿,以生成用于预测分区分的预测分区数据。过程1300可以将该信息反馈回操作1304,在操作1304中可以将每一解码的预测误差分区(例如,包括零预测误差分区)添加到相应的预测分区以生成重建的预测分区。

操作3001至3026可以提供视频编码和比特流传输技术,如本申请中所讨论的其可以由编码器系统所采用。随后的操作,操作3054至3076可以提供视频解码和视频显示技术,如本申请中讨论的其可以由解码器系统所采用。

过程3000可以在操作3054进行,“接收比特流”,其中可以接收比特流。例如,可以通过解码器200接收输入比特流201、比特流2100等。在一些示例中,如上文所讨论的,比特流可以包括与编码分区相关联的数据、一个或多个指示符、和/或定义编码分块的数据。在一些示例中,比特流可以包括预测分块、预测参数、所选择的编码分块、所选择的特性数据、运动向量数据、量化的变换系数、滤波器参数、选择数据(例如,模式选择数据)、以及指示符。

过程3000可以在操作3055继续,“解码比特流”,例如,其中可以通过自适应熵解码器模块202对所接收的比特流进行解码。例如,可以熵解码所接收的比特流以确定预测分块、预测参数、所选择的编码分块、所选择的特性数据、运动向量数据、量化的变换系数、滤波器参数、选择数据(例如,模式选择数据)、以及指示符。

过程3000可以在操作3056继续,“对每一编码分区的每一块执行逆扫描和逆量化”,其中可以针对正被处理的预测分区,对每一编码分区的每一块执行逆扫描和逆量化。例如,可以通过自适应逆量化模块203执行逆扫描和逆量化。

过程3000可以在操作3057继续,“执行固定或自适应逆变换以解码变换系数,以确定解码的预测误差数据分区”,其中可以执行固定变换或内容自适应逆变换以对变换系数解码,以确定解码预测误差数据分区。例如,逆变换可以包括诸如混合参数哈尔逆变换的逆内容自适应变换,使得混合参数哈尔逆变换可以包括在参数变换方向的方向上的参数哈尔逆变换和在与参数变换方向正交的方向上的离散余弦逆变换。在一些示例中,固定逆变换可以包括离散余弦逆变换或离散余弦逆变换逼近器。例如,可以通过自适应逆变换模块204执行固定变换或内容自适应变换。如所讨论的,内容自适应逆变换可以基于诸如例如解码的相邻分区或块的其他的先前解码的数据。在一些示例中,生成劫阿曼预测误差数据分区可以包括通过编码分区组装器模块204组装解码的编码分区。

过程3000可以在操作3058继续,“针对每一预测分区生成预测像素数据”,其中可以针对每一预测分区生成预测像素数据。例如,可以使用所选择的预测类型(例如,基于特性和运动、或帧内、或其他类型)和相关联的预测参数来生成预测像素数据。

过程3000可以在操作3059继续,“将相应的预测分区添加到每一解码的预测误差分区,以生成重建的预测分区”,其中,可以将每一解码预测误差分区(例如,包括零预测误差分区)添加到相应的预测分区以生成重建的预测分区。例如,预测分区可以通过图2中示出的解码循环生成并通过加法器206添加到解码的预测误差分区。

过程3000可以在操作3060继续,“组装重建的预测分区以生成解码的瓦片或超分片”,其中可以将重建的预测分区组装以生成解码的瓦片或超分片。例如,可以组装预测分区以通过预测分区组装器模块207生成解码的瓦片或超分片。

过程3000可以在操作3061继续,“应用解块滤波和/或QR滤波以生成最终的解码的瓦片或超分片”,其中可以将可选的解块滤波和/或质量恢复滤波应用到解码的瓦片或超分片,以生成最终的解码的瓦片或超分片。例如,可以通过解块滤波模块208来应用可选的解块滤波和/或可以通过质量恢复滤波模块209来应用可选的质量恢复滤波。

过程3000可以在操作3062继续,“组装解码的瓦片或超分片以生成解码的视频图片,并保存在参考图片缓冲器中”,其中可以将解码的(或最终的解码的)瓦片或超分片组装以生成解码的视频图片,且可以将解码的视频图片保存在参考图片缓冲器(例如,解码的图片缓冲器210)中以在未来的预测中使用。

过程3000可以在操作3063继续,“发送解码的视频帧以通过显示设备呈现”,其中可以发送解码的视频帧以通过显示设备呈现。例如,解码的视频图片还可以通过自适应图片重组装器217和内容后恢复器模块218进一步处理,并且其作为显示视频219的视频帧被发送至显示设备以向用户呈现。例如,可以向显示设备2405(如在图24中所示出的)发送视频帧以进行呈现。

过程1300可以在操作1372继续,“生成解码的预测参考图片”,其中可以对解码的预测参考图片进行解码。例如,可以组装解码的编码分区以生成解码的预测误差数据分区,并且可以将解码的视频图片(例如,可以生成第三解码预测参考图片和第四解码预测参考图片)保存在参考图片缓冲器中以在未来的预测中使用。

过程3000可以在操作3074继续,“生成修改的预测参考图片”,其中可以生成修改的预测参考图片,例如,可以至少部分地基于第三修改特性参数来生成第三修改的预测参考图片的至少一部分。类似地,可以至少部分地基于关联的第二修改特性参数来生成第四修改的预测参考图片的至少一部分。

过程3000可以在操作3075继续,“生成运动数据”,其中,可以生成运动估计数据。例如,可以至少部分地基于第三修改的预测参考图片或第三修改的预测参考图片中的至少一个来生成与当前图片的预测分区关联的运动数据。

过程3000可以在操作3076继续,“执行运动补偿”,其中,可以执行运动补偿。例如,可以至少部分地基于运动数据和第三修改的预测参考图片或第四修改的预测参考图片中的至少一个来执行运动补偿,以生成用于预测分区的预测分区数据。过程1300可以将该信息反馈回操作1359,在操作1359中,可以将每一解码的预测误差分区(例如,包括零预测误差分区)添加到相应的预测分区,以生成重建的预测分区。

可以通过如上文所讨论的编码器系统中的任何一个实现过程1300。此外,可以对任何数目的诸如预测误差数据分区、原始数据分区、或小波数据等的实例化视频数据串行或并行地重复过程1300(例如,在操作1301处,过程1300可以接收原始数据或小波数据以类比于所描述的预测误差数据分区而进行处理)。

在操作中,过程1300可以操作成用于视频编码的计算机实现的方法,其包括将第一类型的第一视频帧和第二类型的第二视频帧分段成第一多个瓦片或超分片和第二多个瓦片或超分片。可以使用第一划分技术来划分第一多个瓦片或超分片,以及可以使用第二划分技术来划分第二多个瓦片或超分片,其中第一和第二划分技术不同。所选择的预测分块和关联的多个预测分块可以针对第二视频帧确定。可以生成第一重建的瓦片或超分片。可以至少部分地基于第一重建的瓦片或超分片和解块滤波参数来生成解块滤波参数和第一最终的重建的瓦片或超分片。可以将第一最终的重建的瓦片或超分片和第二最终的重建的瓦片或超分片组装以生成第一解码的预测参考图片。可以至少部分地基于变形特性参数和第一解码的参考图片来生成变形特性参数和变形的预测参考图片。可以至少部分地基于合成特性参数和第一解码的参考图片或第二解码的参考图片来生成合成特性参数和合成的预测参考图片。可以针对多个预测分块中的每一个来确定模式和参考类型。可以至少部分地基于变形的预测参考图片或合成的预测参考图片中的一个来生成与多个预测分块关联的运动数据。可以基于运动数据和变形的预测参考图片或合成的预测参考图片中的至少一个来执行运动补偿以针对多个预测分块生成多个预测的分区。可以求多个预测的分区与相应的原始像素数据的差以生成相应的多个预测误差数据分区。多个预测误差数据分区的预测误差数据分区的子集被确定为需要被编码。可以将预测误差数据分区的子集中的个体预测误差数据分区划分成所选择的编码分块和关联的多个编码分块。可以对一个或多个第一编码分块执行内容自适应变换,且可以对多个编码分块的一个或多个第二编码分块执行固定变换以生成变换系数。可以将变换系数量化以生成量化的变换系数。与第一类型和第二类型关联的帧数据、与模式和参考类型关联的模式数据、与所选择的预测分块关联的预测分块指示符或预测分块码字、与所选择的编码分块关联的编码分块指示符或编码分块码字、运动数据、量化的变换系数、变形特性参数、合成特性参数、以及解块滤波参数可以被熵编码成比特流。

在另一示例中,用于视频编码的计算机实现的方法可以进一步包括生成解块滤波或解块和振动滤波参数以及循环内滤波或质量恢复滤波参数以及至少部分地基于解块滤波或解块和振动滤波参数以及循环内滤波或质量恢复滤波参数和第二重建的瓦片或超分片生成第二最终的重建的瓦片或超分片。可以将第一解码的预测参考图片存储在图片缓冲器中,其中执行运动补偿可以包括生成自适应运动滤波参数或自适应准确度滤波参数以及使用自适应运动滤波参数或自适应准确度滤波参数、至少部分地基于自适应运动或自适应准确度滤波来执行运动补偿。可以基于预测分块和增强的预测参数来生成增强的预测参数和增强的预测分块。可以确定是使用增强的预测分块还是预测分块作为针对预测分块所选择的预测分块。当所选择的预测分块包括增强的预测分块时,将增强的预测参数熵编码成比特流,可以确定是应用融合滤波还是融合改进滤波到所选择的预测分块。当融合滤波或融合改进滤波被应用到所选择的预测分块时,所选择的预测划分和第二所选择的预测分块可以被组装以生成组装图片的至少一部分。当融合滤波或融合改进滤波要被应用于所选择的预测分块时,可以生成融合滤波参数或融合改进滤波参数,且可以至少部分地基于融合滤波参数或融合改进滤波参数来融合滤波或融合改进滤波所组装的图片的部分。当要将融合滤波或融合改进滤波应用于所选择的预测分块时,可以将融合滤波参数或融合改进滤波参数熵编码成比特流。与所选择的内容自适应变换和固定变换关联的数据、解块滤波或解块和振动滤波参数、以及循环内滤波或质量恢复滤波参数可以被熵编码成比特流,其中熵编码可以包括自适应符号运行可变长度编码技术或自适应代理可变长度编码技术中的至少一个,且其中熵编码预测分块指示符或预测分块码字可以包括与熵编码变形特性参数或合成特性参数不同的熵编码技术。可以发送比特流。

类似地,可以接收比特流。可以熵编码比特流以确定与第一类型和第二类型关联的帧数据、与模式和参考类型关联的模式数据、与所选择的预测分块关联的预测分块指示符或预测分块码字、与所选择的编码分块关联的编码分块指示符或编码分块码字、运动数据、量化的变换系数、变形特性参数、合成特性参数、解块滤波参数、增强的预测参数、融合滤波参数或融合改进滤波参数、与所选择的内容自适应变换和固定变换关联的数据、解块滤波或解块和振动滤波参数、以及循环内滤波或质量恢复滤波参数,其中熵解码可以包括自适应符号运行可变长度编码技术或自适应代理可变长度编码技术中的至少一个,其中熵解码预测分块指示符或预测分块码字可以百科与熵解码量化的变换系数不同的熵解码技术。

在一些实现中,可以至少部分地基于量化的变换系数来执行逆量化,以生成解码的变换系数。可以至少部分地基于解码的变换系数和变换指示符来执行逆变换以生成多个解码的编码分块,其中逆变换可以包括逆固定变换、逆离散余弦变换、逆离散余弦变换逼近器、逆自适应变换、或逆混合参数哈尔变换中的至少一个。可以组装多个解码的编码分块以生成解码的预测误差数据分区。可以生成第一解码的瓦片或超分片中的至少一个。可以至少部分地基于解块滤波参数或解块和针对滤波参数和循环内滤波参数或质量恢复滤波参数来将解码器解块滤波或解码器解块和振动滤波和解码器循环或解码器质量恢复滤波应用于第一解码的瓦片或超分片,以生成第一最终解码的重建的瓦片或超分片。可以组装第一最终解码的重建的瓦片或超分片和第二最终解码的重建的瓦片或超分片,以生成解码的重建的视频帧。可以将解码的重建的视频帧存储在解码器图片缓冲器中。可以至少部分地基于变形特性参数来生成解码器变形的预测参考图片。可以至少部分地基于合成特性参数来生成解码器合成预测参考图片。

在一些实现中,可以至少部分地基于解码器变形的预测参考图片或解码器合成预测参考图片来执行解码器运动补偿,以生成解码的预测分块,其中解码器运动补偿可以包括至少部分地基于自适应运动滤波参数或自适应准确度滤波参数来进行解码器自适应运动滤波或解码器自适应准确度滤波。可以至少部分地基于增强的预测参数和解码的预测分块来生成增强的解码的预测分块。可以确定使用解码的增强的预测分块还是解码的预测分块作为所选择的解码的预测分块。可以确定应用解码器融合滤波还是解码器融合改进滤波到所选择的解码的预测分块。当要将解码器融合滤波或解码器融合改进滤波应用到所选择的解码的预测分块时,可以组装所选择的解码的预测分块和第二所选择的解码的预测分块以生成解码的组装图片的至少一部分。当要将解码器融合滤波或解码器融合改进滤波应用于所选择的解码的预测分块时,可以至少部分地基于融合滤波参数或融合改进滤波参数来将解码的组装图片的该部分进行解码器融合滤波或解码器融合改进滤波。可以将所选择的解码的预测分块添加到解码的预测误差数据分区,以生成第一解码的重建的分区。可以组合第一解码的重建的分区和第二解码的重建的分区以生成第三最终的解码的重建的瓦片或超分片。可以组装第三最终的解码的重建的片或超分片和第四最终的解码的重建的片或超分片以生成第二解码的重建的视频帧。可以发送第二解码的重建的视频帧以通过显示设备呈现。可以将第一视频帧分段成第一多个超分片,其包括将第一视频帧分割成第三多个片和将第一视频帧分段成两个或更多区域层,其中第一多个超分片中至少一个超分片包括在第二多个瓦片的个体瓦片内的两个或更多个区域层的个体区域层。

在一些实现中,第一划分技术可以包括k-d树划分技术且第二划分技术可以包括二叉树划分技术。针对第二视频帧确定所选择的划分和所关联的多个预测分块可以包括:基于第二划分技术将第二视频帧划分成多个潜在的预测分块;针对多个潜在的预测分块中的每一个执行预测以及针对多个潜在的预测分块中的每一个确定潜在的预测误差;基于预测和潜在的预测误差执行速率失真优化以确定所选择的预测分块和所关联的多个预测分块;以及生成与所选择的预测分块和多个预测分块关联的预测分块指示符或预测分块码字。划分预测误差数据分区的子集的个体预测误差数据分区可以包括二叉树划分。将预测误差数据分区的子集的个体预测误差数据分区划分成所选择的编码分块和所关联的多个编码分块可以包括:将预测误差数据分区的子集的个体预测误差数据分区划分成多个潜在的编码分块;对多个潜在的编码分块中的每一个的一个或多个第一编码分块执行内容自适应变换以及对多个潜在的编码分块中的每一个的一个或多个第二编码分块执行固定变换,其中第一编码分块包括小到中型大小的划分,其中第二编码分块包括中到大型大小的划分,其中固定变换包括离散余弦变换或离散余弦变换逼近器中的至少一个,且其中内容自适应变换包括混合参数哈尔变换,其中混合参数哈尔变换包括在第一方向上的参数哈尔变换和在第二方向上的离散余弦变换;和/或基于多个潜在的编码分块的内容自适应变换和固定变换执行第二速率失真优化,以确定所选择的编码分块和所关联的多个编码分块和所关联的所选择的内容自适应变换和固定变换,其中编码分块具有关联的变换系数。

在一些实现中,第一视频帧是I图片且第二视频帧是B/F图片或P图片中的至少一个。确定第一视频帧是第一类型且第二视频帧是第二类型可以包括第三速率失真优化。上述模式可以包括帧内模式、帧间模式、多模式、跳过模式、或自动模式中的至少一个。参考类型可以包括变形的预测参考图片、合成的预测参考图片、第一编码的预测参考图片、或第二编码的预测参考图片中的至少一个,且其中第一编码的预测参考图片包括过去的解码的预测参考图片或未来的解码的预测参考图片。确定模式和参考类型可以包括第四速率失真优化。

在一些实现中,变形的预测参考图片可以包括增益修改的预测参考图片、模糊修改的预测参考图片、主要运动修改的预测参考图片、或配准修改的预测参考图片中的至少一个,且其中合成的预测参考图片包括超分辨率预测参考图片或投影轨迹预测参考图片中的至少一个。生成变形特性参数可以包括至少部分地基于第二视频帧和先前解码的预测参考图片生成变形特性参数或至少部分地基于第二视频帧和第三原始视频帧生成变形特性参数,且运动数据可以包括运动向量。

虽然在本申请中实现示例型过程可以包括按照所示出的顺序承担所有操作,本公开在该方面不受限制,在各个示例中,在本申请中实现示例型过程可以包括仅承担所示出的操作的一子集和/或按照与所示出的不同的顺序进行。

本申请中描述的系统的各个组件可以以软件、固件、和/或硬件和/或其组合来实现。例如,系统1400的各个组件可以至少部分地通过诸如可以在诸如例如智能手机质量的计算系统中找到的之类的计算片上系统(SoC)的硬件来提供。本领域的熟练的技术人员可以认识到本申请中描述的系统可以包括尚未在相应的附图中描绘的另外的组件。例如,本申请中讨论的系统可以包括诸如比特流复用器或解复用器模块等之类的为了清除起见尚未描绘的另外的组件。

此外,可以响应于由一个或多个计算机程序产品所提供的指令来承担本申请中所讨论的操作中的任何一个或更多。这样的程序产品可以包括提供指令的信号承载介质,当由例如处理器执行指令时,可以提供本申请中描述的功能。可以以任何形式的一个或多个机器可读介质来提供计算机程序产品。从而,例如,包括一个或多个处理器内核的处理器可以响应于通过一个或多个机器可读介质向处理器传送的程序代码和/或指令或指令集承担本申请中示例性过程的操作中的一个或多个。通常而言,机器可读介质可以以程序代码和/或指令或指令集的形式传送软件,其可以使本申请中描述的设备和/或系统中的任何一个实现如本申请中所讨论的视频系统的至少部分。

如在本申请中描述的任何实现中所使用的,术语“模块”指被配置为提供本申请中所描述的功能的软件逻辑、固件逻辑和/或硬件逻辑的任何组合。可以将软件实施为软件包、代码和/或指令集或指令,且“硬件”,如在本申请中所描述的任何实现中所使用的,可以例如单独地或以任何组合地包括硬接线电路、可编程电路、状态机电路、和/或存储由可编程电路执行的指令的固件。上述模块可以集体地或单独地被实施为形成较大系统的部分的电路,上述较大系统例如为集成电路(IC)、片上系统(SoC)等。例如,可以在逻辑电路中实施模块,以通过本申请中所讨论的编码系统的软件、固件、或硬件来实现。

图31是根据本公开至少一些实施方式布置的示例性视频编码系统3100的直观图。在所示出的实现中,视频编码系统3100可以包括成像设备3101、视频编码器100和/或通过处理单元3120的逻辑电路3150实现的视频编码器、天线3102、一个或多个处理器3103、一个或多个存储器存储3104、和/或显示设备3105。

如所示出的,成像设备3101、天线3102、处理单元3120、逻辑电路3150、视频编码器100、视频解码器200、处理器3103、存储器存储3104、和/或显示设备3105可以相互通信。如所讨论的,虽然利用视频编码器100和视频解码器200进行了说明,但是在各个示例中,视频编码系统3100可以仅包括视频编码器100或仅包括视频解码器200。

如所示出的,在一些示例中,视频编码系统3100可以包括天线3102。例如,天线3102可以被配置为发送或接收视频数据的编码的比特流。此外,在一些示例中,视频编码系统3100可以包括显示设备3105。显示设备3105可以被配置为呈现视频数据。如所示出的,在一些示例中,可以通过处理单元3120实现逻辑电路3150。处理单元3120可以包括专用集成电路(ASIC)逻辑、图形处理器、通用处理器等。视频编码系统3100还可以包括可选的处理器3103,其可以类似地包括专用集成电路(ASIC)逻辑、图形处理器、通用处理器等。在一些示例中,逻辑电路3150可以通过硬件或视频编码专用应用等来实现,且处理器3103可以实现通用软件或操作系统等。此外,存储器存储3104可以是诸如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪存等)等指令的任何类型的存储器。在非限制性示例中,可以通过高速缓存存储器来实现存储器存储3104。在一些示例中,逻辑电路3150可以存取存储器存储3104(例如,用于实现图像缓冲器)。在其他示例中,逻辑电路3150和/或处理单元3120可以包括用于实现图像缓冲器等的存储器存储(例如,高速缓存等)。

在一些示例中,通过逻辑电路实现的视频编码器100可以包括图像缓冲器(例如,通过处理单元3120或存储器存储3104)和图形处理单元(例如,通过处理单元3120)。图形处理单元可以可通信地耦合到图像缓冲器。当通过逻辑电路3150实现以实施如针对图1所讨论的各个模块和/或本申请中描述的任何其他的编码器系统或子系统时,图形处理单元可以包括视频编码器100。例如,图形处理单元可以包括预测分块生成器逻辑电路、自适应图片组织器逻辑电路、帧间预测逻辑电路、运动补偿生成逻辑电路、差异确定逻辑电路、自划分生成器逻辑电路、自适应变换逻辑电路、自适应熵编码器逻辑电路等。逻辑电路可以被配置为执行如本申请中所讨论的各种操作。

在另一示例中,视频编码器100可以包括图像缓冲器和可通信地耦合到图像缓冲器的图形处理单元。图形处理单元可以被配置为:将第一类型的第一视频帧和第二类型的第二视频帧分段成第一多个片或超分片和第二多个片或超分片。图形处理单元还可以被配置为使用第一划分技术将第一多个片或超分片以及使用第二划分技术将第二多个片或超分片进行划分,其中第一和第二划分技术不同。可以针对第二视频帧确定所选择的预测分块和所关联的多个预测分块。可以生成第一重建的片或超分片。可以至少部分地基于第一重建的片或超分片和解块滤波参数生成解块滤波参数和第一最终的重建的片或超分片。第一最终的重建的片或超分片和第二最终的重建的片或超分片可以被组装以生成第一解码的预测参考图片。可以至少部分地基于变形特性参数和第一解码的参考图片来生成变形特性参数和变形的预测参考图片。可以至少部分地基于合成特性参数和第一解码的参考图片或第二解码的参考图片来生成合成特性参数和合成的预测参考图片。可以针对多个预测分块中的每一个确定模式和参考类型。可以至少部分地基于变形的预测参考图片或合成的预测参考图片中的一个来生成与多个预测分块关联的运动数据。可以基于运动数据以及变形的预测参考图片或合成的预测参考图片中的至少一个来执行运动补偿,以针对多个预测分块生成多个预测的分区。可以确定预测的分区与相应的原始像素数据的差异,以生成相应的多个预测误差数据分区。可以确定多个预测误差数据分区的预测误差数据分区的子集是否需要被编码。对于需要被编码的预测误差数据分区的子集:可以将预测误差数据分区的子集中的个体预测误差数据分区划分成所选择的编码分区和关联的多个编码分区;可以对一个或多个第一编码分区执行内容自适应变换以及对多个编码分区的一个或多个第二编码分区执行固定变换以生成变换系数;且可以量化变换系数以生成量化的变换系数。可以将与第一类型和第二类型相关联的帧数据、与模式和参考类型关联的模式数据、与所选择的预测分块关联的预测分块指示符或预测分块码字、与所选择的编码分块关联的编码分块指示符或编码分块码字、运动数据、量化的变换系数、变形特性参数、合成特性参数、以及解块滤波参数全部熵编码成比特流。

在一些示例中,视频编码系统3100的天线3102可以被配置为接收视频数据的编码比特流。视频编码系统3100还可以包括视频解码器200,其耦合到天线3102且被配置为对所编码的比特流进行解码。

在进一步的示例中,解码器系统200可以包括被配置为对编码的比特流进行解码的视频解码器。视频解码器可以被配置为对编码的比特流进行熵解码以确定量化的变换系数、与所选择的内容自适应变换和固定变换关联的数据、编码分块指示符或编码分块码字、解块滤波参数、变形特性参数、合成特性参数、运动数据、预测分块指示符或预测分块码字。可以至少部分地基于量化的变换系数来执行逆量化以生成解码的变换系数。逆变换可以至少部分地基于解码的变换系数和与所选择的内容自适应变换和固定变换关联数据,以生成多个解码的编码分块。可以至少部分地基于编码分块指示符或编码分块码字来组装多个解码的编码分块,以生成解码的预测误差数据分区。可以生成第一解码的片或超分片中的至少一个。可以至少部分地基于解块滤波参数将解块滤波应用到第一解码的片或超分片,以生成第一最终解码的重建的片或超分片。第一最终的解码的重建的片或超分片和第二最终的解码的重建的片或超分片可以被组装以生成解码的重建的视频帧。可以至少部分地基于变形特性参数和解码的重建的视频帧来生成变形的预测参考图片。可以至少部分地基于合成特性参数和重建的视频帧或第二重建的视频帧中的至少一个来生成合成的预测参考图片。可以至少部分地基于解码器变形的预测参考图片或解码器合成的预测参考图片和运动数据来执行运动补偿,以生成解码的预测分块。可以将解码的预测分块添加到解码的预测误差数据分区以生成第一解码的重建的分区。可以至少部分地基于预测分块指示符或预测分块码字来组合第一解码的重建的分区和第二解码的重建的分区以生成第三最终的解码的重建的片或超分片。第三最终的解码的重建的片或超分片和第四最终的解码的重建的片或超分片可以被组装以生成第二解码的重建的视频帧。可以发送第二解码的重建的视频帧以通过显示设备呈现。

在实施例中,可以响应于由一个或多个计算机程序产品提供的指令来承担本申请中描述的特征。这样的程序产品可以包括提供指令的信号承载介质,当由例如处理器执行指令时,其可以提供本申请中描述的功能。可以以任何形式的一个或多个机器可读介质来提供计算机程序产品。从而,例如,包括一个或多个处理器内核的处理器可以响应于通过一个或多个机器可读介质向处理器传送的程序代码和/或指令或指令集承担本申请中描述的一个或多个特征。通常,机器可读介质可以传送程序代码和/或指令或指令集形式的软件,其可以使本申请中描述的设备和/或系统中的任何一个实现本申请中描述的至少部分的特征。

图32是根据本公开至少一些实施方式布置的示例性系统3200的直观图。在各个实现中,系统3200可以是介质系统,虽然系统3200不受限于该背景。例如,可以将系统3200并入个人计算机(PC)、膝上型计算机、超级笔记本电脑、平板电脑、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板或智能电视)、移动互联网设备(MID)、消息传送设备、数据传送设备、照相机(例如,傻瓜照相机)、超级变焦照相机、数字单镜头反光(DSLR)照相机)、等。

在各个实现中,系统3200包括耦合到显示器3220的平台3202。平台3202可以从主内容服务设备3230或内容传送设备3240或其他类似的内容源之类的内容设备接收内容。包括一个或多个导航特征的导航控制器3250可以用于例如与平台3202和/或显示器3220交互。下文将更详细地多地描述了这些组件中的每一个。

在各个实现中,平台3202可以包括芯片组3205、处理器3210、存储器3212、天线3213、存储器3214、图形子系统3215、应用3216和/或无线电设备3218的任何组合。芯片组3205可以提供处理器3210、存储器3212、存储器3214、图形子系统3215、应用3216和/或无线电设备3218之间的相互通信。例如,芯片组3205可以包括能够提供与存储器3214相互通信的存储器适配器(未描绘)。

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

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

存储器3214可以被实现为非易失性存储器设备,例如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接存储设备、闪存、电池支持的SDRAM(同步DRAM)、和/或网络可获得的存储设备。在各个实现中,存储器3214可以包括用于增加存储器性能的技术,例如,当包括多个硬盘驱动时,对有价值数字介质的增强保护。

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

可以在各种硬件架构中实现本申请中描述的图形和/或视频处理技术。例如,图形和/或视频功能可以被集成到芯片组中。或者,可以使用离散图形和/或视频处理器。作为又一个实现,可以由通用处理器,包括多核处理器来提供图形和/或视频功能。在另外的实施例中,可以在消费电子设备中实现上述功能。

无线电设备3218可以包括能够使用各种适当的无线通信技术发送和接收信号的一个或多个无线电设备。这样的技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络、和卫星网络。在跨这样的网络的通信中,无线电设备3218可以根据任何版本的一个或多个适用的标准操作。

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

在各个实现中,例如,可以由任何国内的、国际的和/或独立的服务来主持内容服务设备3230,且从而通过互联网可存取到平台3202。内容服务设备3230可以耦合到平台3203和/或到显示器3220。平台3202和/或内容服务设备3230可以耦合到网络3260以将媒体信息传送(例如,发送和/或接收)至网络3260和从网络3260传送。内容传送设备3240还可以耦合到平台3202和/或到显示器3220。

在各个实现中,内容服务设备3230可以包括能够传送数字信息和/或内容的有线电视盒、个人计算机、网络、电话、具有互联网能力的设备或装置,以及能够通过网络3260或直接地在内容提供商和平台3202和/或显示器3220之间单向或双向传送内容的任何其他类似的设备。将明白的是,可以通过网络3260单向地和/或双向地向以及从系统3200中的组件中的任何一个和内容提供商传送内容。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。

内容服务设备3230可以接收诸如有线电视节目之类的内容,包括媒体信息、数字信息、和/或其他内容。内容提供商的示例可以包括任何有线的、或卫星电视或无线或互联网内容提供商。所提供的示例并不意在以任何方式限制根据本公开的实现。

在各个实现中,平台3202可以从具有一个或多个导航特征的导航控制器3250接收控制信号。例如,控制器3250的导航特征可以用于与用户设备3222交互。在各个实施例中,导航控制器3250可以是定点设备,该定点设备可以是允许用户输入空间(例如,连续的和多维的)数据到计算机的计算机硬件组件(特别地,人接口设备)。诸如图形用户接口(GUI)之类的许多系统、以及电视机和监控器允许用户使用物理手势控制并向计算机或电视机提供数据。

控制器3250的导航特征的运动可以通过指针、光标、焦点环、或在显示器上显示的其他视觉指示符的运动在显示器(例如,显示器3220)上复制。例如,在软件应用3216的控制下,位于导航控制器3250上的导航特征可以被映射到例如在用户接口3222上显示的视觉导航特征。在各个实施例中,控制器3250可以不是单独的组件而可以被集成到平台3202和/或显示器3220中。但是,本公开并不限于本申请中示出或描述的元件或在本申请中示出或描述的背景下。

在各个实现中,驱动器(未示出)可以包括用于使用户能够在初始启动之后,例如当启用时,利用对按钮的触摸即刻打开或关闭象电视机一样的平台3202的技术。程序逻辑可以允许平台3202将内容流式传送至介质适配器或其他的内容服务设备3230或内容传送设备3240,即使当平台被“关闭”时。此外,例如,芯片组3205可以包括支持5.1环绕立体声音频和/或高清7.1环绕立体声音频的硬件和/或软件。驱动器可以包括用于集成的图形平台的图形驱动器。在各个实施例中,图形驱动器可以包括外围组件互连(PCI)Express图形卡。

在各个实现中,可以集成系统3200中示出的组件中的任何一个或多个。例如,平台3202和内容服务设备3230可以被集成,或平台3202和内容传送设备3240可以被集成,或平台3202、内容服务设备3230、以及内容传送设备3240可以被集成,例如。在各个实施例中,平台3202和显示器3220可以是集成的单元。显示器3220和内容服务设备3230可以被集成,或显示器3220和内容传送设备3240可以被集成,例如。这些示例并不意味着限制本公开。

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

平台3202可以建立一个或多个逻辑或物理信道以传送信息。上述信息可以包括媒体信息和控制信息。媒体信息可以指代表用于用户的内容的任何数据。内容的示例可以包括,例如,来自语音对话、视频会议、流式视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音对话的数据可以是例如语音信息、静默时段、背景噪声、舒适噪声、音调等。控制信息可以指代表用于自动系统的命令、指令或控制字的任何数据。例如,控制信息可以用于路由媒体信息通过系统,或指示节点以预定的方式处理媒体信息。但是,上述实施例不限于在图32中示出或描述的元件或在图32中示出或描述的背景下。

如上文所描述的,可以以不同的物理样式或形状因子来实施系统3200。图33示出了小形状因子设备3300的实现,其中可以实施系统3300。在各个实施例中,例如,设备3300可以被实现为具有无线能力的移动计算设备。移动计算设备可以指具有处理系统和诸如例如一个或多个电池之类的移动电源或供电的任何设备。

如上文所描述的,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超级笔记本电脑、平板电脑、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如,智能电话、智能平板或智能电视)、移动互联网设备(MID)、消息传送设备、数据传送设备、照相机(例如,傻瓜照相机、超级变焦照相机、数字单镜头反光(DSLR)照相机)等。

移动计算设备的示例还可以包括被安排成由人佩戴的计算机,例如手腕计算机、手指计算机、戒指计算机、眼睛计算机、皮带扣计算机、臂环计算机、鞋计算机、衣服计算机、以及其他可佩戴的计算机。在各个实施例中,例如,移动计算设备可以被实现为能够执行计算机应用以及语音通信和/或数据通信的计算机应用的智能电话。虽然可以通过示例的方式利用被实现为智能手机的移动计算设备来描述一些实施例,但是可以明白的是,也可以使用其他的无线移动计算设备来实现其他的实施例。上述实施例并不限于在该背景下。

如图33中所示出的,设备3300可以包括壳体3302、显示器3304、可以包括用户接口3310的输入/输出(I/O)设备3306、以及天线3308。设备3300还可以包括导航特征3312。显示器3304可以包括用于显示适合移动计算设备的信息的任何适当的显示单元。I/O设备3306可以包括用于将信息输入到移动计算设备的任何适当的I/O设备。I/O设备3306的示例可以包括字母数字键盘、数字小型键盘、触摸板、输入按键、按钮、开关、拨动开关、麦克风、扬声器、语音识别设备和软件等。还可以通过麦克风(未示出)的方式将信息输入到设备3300中。可以通过语音识别设备(未示出)来数字化这样的信息。上述实施例不受限于该背景。

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

可以由存储在机器可读介质上的代表性指令来实现至少一个实施例的一个或多个方面,其代表处理器内的各个逻辑,当由机器读取时,其使得机器构造用于执行本申请中描述的技术的逻辑。这样的表示,被称为“IP内核”,可以存储在有形的、机器可读介质上,并提供给各个客户或生产设施备以装载到实际制造该逻辑或处理器的生产机器中。

虽然已经参考各个实现描述了本申请中呈现的某些特征,但是该描述并不意在以限制性的意义来解释。从而,对于本领域的熟练技术人员而言显而易见且本申请所涉及的本申请中描述的实现的各个修改以及其他的实现被认为在本公开的精神和保护范围之内。

下列的示例与进一步的实施例相关。

在一个示例中,用于视频编码的计算机实现的方法包括将第一类型的第一视频帧和第二类型的第二视频帧分段成第一多个瓦片或超分片和第二多个瓦片或超分片。可以使用第一划分技术来划分第一多个瓦片或超分片以及可以使用第二划分技术来划分第二多个瓦片或超分片,其中第一和第二划分技术不同。可以针对第二视频帧确定所选择的预测分块和关联的多个预测分区划分。可以生成第一重建的瓦片或超分片。可以至少部分地基于第一重建的瓦片或超分片和解块滤波参数来生成解块滤波参数和第一最终的重建的瓦片或超分片。可以组装第一最终的重建的瓦片或超分片和第二最终的重建的瓦片或超分片以生成第一解码的预测参考图片。可以至少部分地基于变形特性参数和第一解码的参考图片来生成变形特性参数和变形的预测参考图片。可以至少部分地基于合成特性参数和第一解码的参考图片或第二解码的参考图片来生成合成特性参数和合成的预测参考图片。可以针对多个预测分块中的每一个来确定模式和参考类型。可以至少部分地基于变形的预测参考图片或合成的预测参考图片中的一个来生成与多个预测分块关联的运动数据。可以基于运动数据和变形的预测参考图片或合成的预测参考图片中的至少一个来执行运动补偿以针对多个预测分区生成多个预测的分区。可以确定多个预测的分区与相应的原始像素数据的差异,以生成相应的多个预测误差数据分区。多个预测误差数据分区的预测误差数据分区的子集被确定为需要被编码。可以将预测误差数据分区的子集的个体预测误差数据分区划分成所选择的编码分块和关联的多个编码分块。可以对一个或多个第一编码分块执行内容自适应变换以及可以对多个编码分块的一个或多个第二编码分块执行固定变换以生成变换系数。可以量化变换系数以生成量化的变换系数。与第一类型和第二类型关联的帧数据、与模式和参考类型关联的模式数据、与所选择的预测分块关联的预测分块指示符或预测分块码字、与所选择的编码分块关联的编码分块指示符或编码分块码字、运动数据、量化的变换系数、变形特性参数、合成特性参数、以及解块滤波参数可以被熵编码成比特流。

在另一示例中,用于视频编码的计算机实现的方法可以进一步包括生成解块滤波或解块和振动滤波参数以及循环内滤波或质量恢复滤波参数以及至少部分地基于解块滤波或解块和振动滤波参数和循环内滤波或质量恢复滤波参数和第二重建的瓦片或超分片来生成第二最终的重建的瓦片或超分片。第一解码的预测参考图片可以被存储在图片缓冲器中,其中执行运动补偿可以包括生成自适应运动滤波参数或自适应准确度滤波参数以及使用自适应运动滤波参数或自适应准确度滤波参数至少部分地基于自适应运动或自适应准确度滤波来执行运动补偿。增强的预测参数和增强的预测的分区可以基于预测的分区和增强的预测参数来生成。可以确定使用增强的预测的分区还是预测的分区作为针对预测分块所选择的预测的分区。当所选择的预测的分区包括增强的预测的分区时,将增强的预测参数熵编码成比特流,可以确定应用融合滤波还是融合改进滤波到所选择的预测的分区。当要将融合滤波或融合改进滤波应用到所选择的预测的分区时,可以组装所选择的预测的分区和第二选择的预测的分区以生成组装的图片的至少一部分。当要将融合滤波或融合改进滤波应用到所选择的预测的分区时,可以生成融合滤波参数或融合改进滤波参数且可以至少部分地基于融合滤波参数或融合改进滤波参数来融合滤波或融合改进滤波所组装的图片的该部分。当要将融合滤波或融合改进滤波应用到所选择的预测的分区时,可以将融合滤波参数或融合改进滤波参数熵编码成比特流。与所选择的内容自适应变换和固定变换关联的数据、解块滤波或解块和振动滤波参数、以及循环内滤波或质量恢复滤波参数可以被熵编码到比特流中,其中熵编码可以包括自适应符号运行可变长度编码技术或自适应代理可变长度编码技术中的至少一个,且其中熵编码预测分块指示符或预测分块码字可以包括与熵编码变形特性参数或合成特性参数不同的熵编码技术。可以发送比特流。

类似地,可以接收比特流。可以将比特流熵解码以确定与第一类型和第二类型关联的帧数据、与模式和参考类型关联的模式数据、与所选择的预测分块关联的预测分块指示符或预测分块码字、与所选择的编码分块关联的编码分块指示符或编码分块码字、运动数据、量化的变换系数、变形特性参数、合成特性参数、解块滤波参数、增强的预测参数、融合滤波参数或融合改进滤波参数、与所选择的内容自适应或固定变换关联的数据、解块滤波或解块和振动滤波参数、以及循环内滤波或质量恢复滤波参数,其中熵解码可以包括自适应符号运行可变长度编码技术或自适应代理可变长度编码技术中的至少一个,其中熵解码预测分块指示符或预测分块码字可以包括与熵解码量化的变换系数不同的熵解码技术。

在一些实现中,可以至少部分地基于量化的变换系数来执行逆变换以生成解码的变换系数。可以至少部分地基于解码的变换系数和变换指示符来执行逆变换,以生成多个解码的编码分块,其中逆变换可以包括逆固定变换、逆离散余弦变换、逆离散余弦变换逼近器、逆自适应变换、或逆混合参数哈尔变换中的至少一个。可以组装多个解码的编码分块以生成解码的预测误差数据分区。可以生成第一解码的瓦片或超分片中的至少一个。解码器解块滤波或解码器解块和振动滤波和解码器循环内或解码器质量恢复滤波可以至少部分地基于解块滤波参数或解块和振动滤波和循环内滤波参数或质量恢复滤波参数被应用到第一解码瓦片或超分片,以生成第一最终的解码的重建的瓦片或超分片。可以组装第一最终的解码的重建的瓦片或超分片和第二最终的解码的重建的瓦片或超分片以生成解码的重建的视频帧。解码的重建的视频帧可以被存储在解码器图片缓冲器中。可以至少部分地基于变形特性参数来生成解码器变形的预测参考图片。可以至少部分地基于合成特性参数来生成解码器合成预测参考图片。

在一些实现中,可以至少部分地基于解码器变形的预测参考图片或解码器合成的预测参考图片来执行解码器运动补偿,以生成解码的预测分块,其中解码器运动补偿可以包括至少部分地基于自适应运动滤波参数或自适应准确度滤波参数的解码器自适应运动滤波或解码器自适应准确度滤波。可以至少部分地基于增强的预测参数和解码的预测分块来生成增强的解码的预测分块。可以确定使用解码的增强的预测的分区还是解码的预测的分区作为所选择的解码的预测的分区。可以确定应用解码器融合滤波还是解码器融合改进滤波到所选择的解码的预测的分区。当要将解码器融合滤波或解码器融合改进滤波应用到所选择的解码的预测的分区时,可以组装所选择的解码的预测的分区和第二选择的解码的预测的分区,以生成解码的组装图片的至少一部分。当要将解码器融合滤波或解码器融合改进滤波应用到所选择的解码的预测的分区时,解码的组装图片的该部分可以是至少部分地基于融合滤波参数或融合改进滤波参数的解码器融合滤波的或解码器融合改进滤波的。可以将所选择的解码的预测的分区添加到解码的预测误差数据分区以生成第一解码的重建的分区。可以组合第一解码的重建的分区和第二解码的重建的分区,以生成第三最终的解码的重建的瓦片或超分片。可以组装第三最终的解码的重建的瓦片或超分片和第四最终的解码的重建的瓦片或超分片,以生成第二解码的重建的视频帧。可以发送第二解码的重建的视频帧以通过显示设备呈现。可以将第一视频帧分段成第一多个超分片可以包括将第一视频帧分割成第三多个瓦片以及将第一视频帧分段成两个或更多个区域层,其中第一多个超分片中的至少一个超分片包括第二多个瓦片的个体瓦片中的两个或更多个区域层的个体区域层。

在一些实现中,第一划分技术可以包括k-d树划分技术且第二划分技术可以包括二叉树划分技术。针对第二视频帧确定所选择的预测分块和所关联的多个预测分块可以包括:基于第二划分技术将第二视频划分成多个潜在的预测分块;针对多个潜在的预测分块中的每一个执行预测以及针对多个潜在的预测分块中的每一个确定潜在的预测误差;基于预测和潜在的预测误差执行速率失真恢复优化,以确定所选择的预测分块和所关联的多个预测分块;且生成与所选择的预测分块和多个预测分块关联的预测分块指示符或预测分块码字。划分预测误差数据分区的子集的个体预测误差数据分区可以包括二叉树划分。将预测误差数据分区的子集的个体预测误差数据分区划分成所选择的编码分块和所关联的多个编码分块可以包括:将预测误差数据分区的子集的个体预测误差数据分区划分成多个潜在的编码分块;对多个潜在的编码分块中的每一个的一个或多个第一编码分块执行内容自适应变换以及对多个潜在编码分块中的每一个的一个或多个第二编码分块执行固定变换,其中第一编码分块包括小到中型大小的划分,其中第二编码分块包括中到大型大小的划分,其中固定变换包括离散余弦变换或离散余弦变换逼近器中的至少一个,并且其中内容自适应变换包括混合参数哈尔变换,其中混合参数哈尔变换包括在第一方向上的参数哈尔变换以及在第二方向上的离散余弦变换;和/或基于多个潜在编码分块的内容自适应变换和固定变换,执行第二速率失真优化,以确定所选择的编码分块和所关联的多个编码分块以及所关联的所选择的内容自适应变换和固定变换,其中编码分块具有关联的变换系数。

在一些实现中,第一视频帧是I图片且第二视频帧是B/F图片或P图片中的至少一个。确定第一视频帧是第一类型、第二视频帧是第二类型可以包括第三速率失真优化。上述模式可以包括帧内模式、帧间模式、多模式、跳过模式、或自动模式中的至少一个。参考类型可以包括变形的预测参考图片、合成的预测参考图片、第一解码的预测参考图片、或第二解码的预测参考图片中的至少一个,且其中第一解码的预测参考图片包括过去解码的预测参考图片或未来解码的预测参考图片。确定模式和参考类型可以包括第四速率失真优化。

在一些实现中,变形的预测参考图片可以包括增益修改的预测参考图片、模糊修改的预测参考图片、主要运动修改的预测参考图片、或配准修改的预测参考图片中的至少一个,且其中合成的预测参考图片包括超分辨率预测参考图片或投影轨迹预测参考图片中的至少一个。生成变形特性参数可以包括至少部分地基于第二视频帧和先前解码的预测参考图片生成变形特性参数或至少部分地基于第二视频帧和第三原始视频帧生成变形特性参数中的至少一个,且运动数据可以包括运动向量。

在另一示例中,视频编码器可以包括图像缓冲器且图形处理单元可通信地耦合到图像缓冲器。图形处理单元可以被配置为:将第一类型的视频帧和第二类型的第二视频帧分段成第一多个瓦片或超分片和第二多个瓦片或超分片。图形处理单元还可以被配置为使用第一划分技术划分第一多个瓦片或超分片以及使用第二划分技术划分第二多个瓦片或超分片,其中第一和第二划分不同。可以针对第二视频帧确定所选择的预测分块和所关联的多个预测分块。可以生成第一重建的瓦片或超分片。可以至少部分地基于第一重建的瓦片或超分片和解块滤波参数生成解块滤波参数和第一最终的重建的瓦片或超分片。可以组装第一最终的重建的瓦片或超分片和第二最终的重建的瓦片或超分片以生成第一解码的预测参考图片。可以至少部分地基于变形特性参数和第一解码的参考图片来生成变形特性参数和变形的预测参考图片。可以至少部分地基于合成特性参数和第一解码的参考图片或第二解码的参考图片来生成合成特性参数和合成的预测参考图片。可以针对多个预测分块中的每一个确定模式和参考类型。可以至少部分地基于变形的预测参考图片或合成的预测参考图片中的一个来生成与多个预测分块关联的运动数据。可以基于运动数据和变形的预测参考图片或合成的预测参考图片中的至少一个来执行运动补偿,以针对多个预测分块生成多个预测的分区。可以确定多个预测的分区与相应的原始像素数据的差异,以生成相应的多个预测误差数据分区。可以确定多个预测误差数据分区的预测误差数据分区子集是否需要被编码。对于需要被编码的预测误差数据分区的子集:可以将预测误差数据分区的子集的个体预测误差数据分区划分成所选择的编码分块和关联的多个编码分块;可以对一个或多个第一编码分块执行内容自适应变换以及对多个编码分块中的一个或多个第二编码分块执行固定变换以生成变换系数;且可以量化变换系数以生成量化的变换系数。与第一类型和第二类型关联的帧数据、与模式和参考类型关联的模式数据、与所选择的预测分块关联的预测分块指示符或预测分块码字、与所选择的编码分块关联的编码指示符或编码分块码字、运动数据、量化的变换系数、变形特性参数、合成特性参数、以及解块滤波参数全部都可以被熵编码成比特流。

在进一步的示例中,解码器系统可以包括被配置为对编码的比特流进行解码的视频解码器。视频解码器可以被配置为对编码的比特流进行熵解码,以确定量化的变换系数、与所选择的内容自适应变换和固定变换关联的数据、编码分块指示符或编码分块码字、解块滤波参数、变形特性参数、合成特性参数、运动数据、预测分块指示符或预测分块码字。可以至少部分地基于量化的变换系数来执行逆量化,以生成解码的变换系数。逆变换可以至少部分地基于解码的变换系数和与所选择的内容自适应变换和固定变换关联的数据以生成多个解码的编码分块。可以至少部分地基于编码分块指示符或变换划分码字来组装多个解码的编码分块,以生成解码的预测误差数据分区。可以生成第一解码的瓦片或超分片中的至少一个。可以至少部分地基于解块滤波参数将解块滤波应用于第一解码的瓦片或超分片来生成第一最终的解码的重建的瓦片或超分片。可以组装第一最终的解码的重建的瓦片或超分片和第二最终的解码的重建的瓦片或超分片以生成解码的重建的视频帧。可以至少部分地基于变形特性参数和解码的重建的视频帧生成变形的预测参考图片。可以至少部分地基于合成特性参数和重建的视频帧或第二重建的视频帧中的至少一个来生成合成的预测参考图片。可以至少部分地基于解码器变形的预测参考图片或解码器合成的预测参考图片和运动数据来执行运动补偿以生成解码的预测的分区。可以将解码的预测的分区添加到解码的预测误差数据分区,以生成第一解码的重建的分区。可以至少部分地基于预测分块指示符或预测分块码字来组合第一解码的重建的分区和第二解码的重建的分区,以生成第三最终的解码的重建的瓦片或超分片。可以组装第三最终的解码的重建的瓦片或超分片和第四最终的解码的重建的瓦片或超分片,以生成第二解码的重建的视频帧。可以发送第二解码的重建的视频帧以通过显示设备呈现。

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

在又进一步的示例中,一种装置可以包括用于执行根据上述示例中的任何一个的方法的模块。

上述的示例可以包括特征的特定组合。但是,这样的上述的示例在该方面不受限制,且在各个实现中,上述的示例可以包括仅承担这样的特征的子集、承担不同顺序的这样的特征、承担这样的特征的不同组合、和/或承担与明确列出的那些特征不同的另外的特征。例如,可以针对示例性的装置、示例性系统、和/或示例性制品来实现针对示例性方法描述的所有特征,且反之亦然。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号