用于下一代视频的视频编解码器架构的制作方法

文档序号:8417908阅读:273来源:国知局
用于下一代视频的视频编解码器架构的制作方法
【专利说明】用于下一代视频的视频编解码器架构
[0001] 相关申请
[0002] 本申请要求享有于2012年11月13日递交的、且其名称为"CONTENT ADAPTIVE VIDEO CODER"的美国临时申请No. 61/725, 576以及于2013年1月30日递交的、且其名称 为"NEXT GENERATION VIDEO CODING"的美国临时申请No. 61/758, 314的权益。
【背景技术】
[0003] 视频编码器压缩视频信息,使得可以在给定的带宽上发送更多信息。然后,可以将 压缩的信号发送至具有解码器的接收器,该解码器在显示之前将信号解码或解压缩。
[0004] 高效视频编码(HEVC)是最新的视频压缩标准,其由关于视频编码(JCT-VC)的联 合协作团队开发,该关于视频编码的联合协作团队由IS0/IEC移动图片专家组(MPEG)和 ITU-T视频编码专家组(VCEG)形成。响应于先前的H. 264/AVC(高级视频编码)标准未提 供对于演进的较高分辨率视频应用足够的压缩,正在开发ffiVC。与先前的视频编码标准相 类似,HEVC包括诸如帧内/帧间预测、变换、量化、循环内滤波、和熵编码之类的基本功能模 块。
[0005] 进行中的HEVC标准可能尝试改进H. 264/AVC标准的限制,例如针对所允许的预 测分区和编码分区的有限的选择、有限的所允许的生成多个参考和预测、有限的变换块大 小和实际变换、有限的用于减小编码噪音的机制、以及低效的熵编码技术。但是,进行中的 HEVC标准可以使用迭代方法来解决这样的问题。
[0006] 例如,随着要压缩的视频的分辨率和对高视频质量的期望的日益增加,使用诸如 H. 264之类的现有的视频编码标准或甚至诸如H. 265/HEVC之类的更演进的标准进行编码 所需的相应的比特率/带宽相对较高。前述的标准使用传统方式的扩展形式来隐式地解决 不充分压缩/质量问题,但是经常的,其结果是有限的。
[0007] 在下一代视频(NGV)编解码器项目的背景中开发的本公开解决了设计最大化可 获得的压缩效率且同时保持足够实际以用于在设备上实现的高级视频编解码器的一般问 题。例如,随着由于好显示器的可用性所导致的视频分辨率和对高视频质量的期望的日益 增加,使用诸如较早的MPEG标准之类的现有视频编码标准和甚至较新的H. 264/AVC标准所 需的相应比特率/带宽相对较高。H. 264/AVC未被认为对于演进的较高分辨率视频应用提 供了足够的压缩。
【附图说明】
[0008] 通过示例的方式而非通过限制的方式在附图中示出了本申请中描述的资料。为了 说明的简单和清楚,附图中示出的元件不一定按比例画出。例如,为了清晰起见,可能相对 于其他元件而放大了一些元件的尺寸。此外,在认为适当的地方,在附图中重复了附图标记 以指示相应的或类似的元件。在附图中:
[0009] 图1 (a)为示例性下一代视频编码器的直观图;
[0010] 图1 (b)为示例性下一代视频编码器的直观图;
[0011] 图2为示例性下一代视频解码器的直观图;
[0012] 图3为示例性下一代视频编码器和相关控制信号的直观图;
[0013]图4为示例性下一代视频解码器和相关控制信号的直观图;
[0014] 图5 (a)为示例性下一代视频编码器和子系统的直观图;
[0015] 图5 (b)为示例性下一代视频解码器和子系统的直观图;
[0016] 图6为不例性下一代视频编码器和子系统的直观图;
[0017] 图7为示例性下一代视频编码器和子系统的直观图;
[0018] 图8示出了具有用于预测分块的示例性瓦片和超分片的示例性视频帧;
[0019]图9示出了示例性视频帧的一行瓦片的示例性超分片;
[0020] 图10示出了视频帧的示例性区域层分段;
[0021] 图11 (A)和11⑶示出了被分段成区域层并根据瓦片被划分成超分片的示例性视 频帧;
[0022] 图12(A)和12⑶为示例性编码器子系统的直观图;
[0023] 图13为示例性解码器子系统的直观图;
[0024] 图14为经修改的预测参考图片的直观图;
[0025] 图15为不例性编码器子系统的直观图;
[0026] 图16为不例性解码器子系统的直观图;
[0027] 图17为示例性编码器滤波器子系统的直观图;
[0028] 图18为示例性编码器滤波器子系统的直观图;
[0029]图19为使用二叉树划分技术的示例性划分;
[0030]图20为使用k-d树划分技术的示例性划分;
[0031] 图21为示例性编码器滤波器子系统的直观图;
[0032] 图22为示例性解码器滤波器子系统的直观图;
[0033] 图23为示例性编码器滤波器子系统的直观图;
[0034] 图24为示例性解码器滤波器子系统的直观图;
[0035] 图25为示例性熵编码器模块的直观图;
[0036] 图26为示例性熵解码器模块的直观图;
[0037] 图27为示例性编码过程的流程图;
[0038] 图28为示例性比特流;
[0039] 图29为示出了示例性解码过程的流程图;
[0040] 图30 (A)、30 (B)、和30 (C)是不例性视频编码系统和在运彳丁中的视频编码过程的 直观图;
[0041] 图31为示例性视频编码系统的直观图;
[0042] 图32为示例性系统的直观图;
[0043] 图33示出了全部根据本公开的至少一些实施方式而布置的示例性设备。
【具体实施方式】
[0044] 现在参照附图来描述一个或多个实施例或实施方式。虽然讨论了特定的配置和布 置,但是应该理解的是这仅是为了说明的目的而进行的。相关领域的技术人员将认识到可 以利用其它的配置和布置而不偏离描述的精神和范围。对相关领域的技术人员而言将显而 易见的是,本申请中描述的技术和/或布置也可以在与本申请中所描述的不同的各种其他 系统和应用中采用。
[0045]虽然以下描述阐述了可以在诸如例如片上系统(SoC)架构中表示的各种实施方 式,但是本申请中描述的技术和/或布置的实施方式并不限于特定的架构和/或计算系统, 且其可以为了类似的目的由任何架构和/或计算系统来实现。例如,采用例如多个集成电 路(1C)芯片和/或封装的各种架构、和/或诸如机顶盒、智能电话等的各种计算设备和/或 消费电子(CE)设备可以实现本申请中描述的技术和/或布置。此外,虽然以下描述可能阐 述了诸如逻辑实现、系统组件的类型和相互关系、逻辑分块/集成选择等的许多特定细节, 但是可以在没有这样的特定细节的情况下实践要求保护的主题。在其他实例中,为了不混 淆本申请中所公开的资料,可能不详细示出诸如例如控制结构和完整的软件指令序列之类 的一些材料。
[0046]本申请中公开的资料可以以硬件、固件、软件或其任何组合来实现。本申请中公开 的资料也可以实现为在机器可读介质上存储的指令,该指令可以由一个或多个处理器读取 和执行。机器可读介质可以包括用于以机器(例如,计算设备)可读的形式存储或发送信 息的任何介质和/或机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储 器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其他形式的传播信号(例如, 载波、红外信号、数字信号等);以及其他的。
[0047]本说明书中提及的"一个实施方式"、"实施方式"、"一示例性实施方式"等指示所 描述的实施方式可以包括特定的特征、结构、或特性,但是每一实施例未必包括该特定的特 征、结构或特性。此外,这样的短语未必指代同一实施方式。此外,当结合实施例描述特定 的特征、结构或特性时,所主张的是,无论在本申请中是否明确描述,结合其他实施方式来 产生这样的特征、结构或特性是在本领域的普通技术人员的知识之内的。
[0048]下文描述了与用于下一代视频编码的针对预测和编码的内容自适应划分有关的 系统、装置、制品和方法。
[0049]如上文所讨论的,随着由于好显示器的可用性所导致的视频分辨率和对高视频质 量的期望的日益增加,使用诸如较早的MPEG标准以及甚至更新的H. 264/AVC标准之类的现 有视频编码标准所需的相应的比特率/带宽相对较高。实际上,由于H. 264/AVC未被认为 对于演进的较高分辨率视频应用提供了足够的压缩,所以开发新标准(HEVC)被认为是必 需的。
[0050] H. 264/AVC编码标准,虽然其与过去的MPEG标准相比代表改进,但是其仍然很有 限。例如,进行中的HEVC标准具有如下限制:1)针对所允许的预测分区和编码分区的选择 非常有限;2)所允许的多个参考和预测生成非常有限;3)变换块大小和实际可用的变换非 常有限;4)用于减小编码噪音的机制(仅解块(deblocking))非常有限;以及5)用于开销 数据(例如模式、运动向量等)的熵编码技术效率不高。在ffiVC中正在进行的工作认识到 了诸如H. 264的标准的目前发展水平的前述限制,HEVC使用迭代方式来修复这些限制。
[0051]如将在下文更详细讨论的,本公开是在下一代视频(NGV)编解码器项目的背景下 开发的,本公开解决了设计最大化可获得的压缩效率且同时保持足够实际以用于在设备上 实现的高级视频编解码器的一般问题。在ffiVC中正在进行的工作认识到了诸如H. 264的 标准的目前发展水平的前述限制,ffiVC使用迭代方式来修复这些限制,这与由本公开描述 的NGV视频编码系统所使用的方式相对照。
[0052] NGV视频编码与基于标准的方式不同,这是由于NGV视频编码自然地将基于重要 内容的自适应性并入到视频编码过程中以实现较高的压缩。通过比较,基于标准的视频编 码方式通常趋向于通过对传统方式的适配和精调(fine tunning)来挤压更高的增益。例 如,所有基于标准的方式严重地依赖于适配及进一步微调(tweak)运动补偿的帧间编码作 为用于减小预测差以获得增益的主要方式。在另一方面,除了利用由于运动导致的帧间差 之外,NGV还利用自然存在于典型的视频场景中的其他类型的帧间差(增益、模糊、配准)。
[0053] 如在本申请中所使用的,术语"编码器"可以指代编码器和/或解码器。类似地, 如在本申请中所使用的,术语"编码"可以指代通过编码器执行视频编码和/或通过解码器 执行视频解码。例如,视频编码器和视频解码器两者都可以是能够对视频数据进行编码的 编码器的示例。此外,如在本申请中所使用的,术语"编解码器"可以指代诸如例如可以实 现编码器和/或解码器的软件、固件、和/或硬件的任何过程、程序、或操作组。此外,如在 本申请中所使用的,短语"视频数据"可以指代与视频编码相关联的诸如例如视频帧、图像 数据、经编码的比特流数据等的任何类型的数据。
[0054] 图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的预分析器子系 统。
[0055] 如所示出的,可以从自适应图片组织器模块104向预测分区生成器模块105发送 视频帧和/或其他的数据。在一些示例中,预测分区生成器模块105可以将帧或图片分 成瓦片(tiles)或超分片(super-fragments)等。在一些示例中,额外的模块(例如,在 模块104和105之间)可以被提供以用于将帧或图片分成瓦片或超分片。预测分区生成 器模块105可以将每一瓦片或超分片分成潜在的预测分块分块(partitionings)或分区 (partitions)。在一些示例中,可以使用诸如例如k-d树划分技术、二叉树划分技术等的划 分技术来确定潜在的预测分块,潜在的预测分块可以基于个体视频帧的图片类型(例如, 1-、P-、或F/B-图片)、被划分的帧部分的特性等来确定。在一些示例中,所确定的潜在的 预测分块可以是用于预测的分区(例如,帧间或帧内预测)并且所确定的潜在的预测分块 可以被描述为预测分区或预测块等。
[0056] 在一些示例中,可以根据潜在的预测分块来确定所选择的预测分块(例如,预测 分区)。例如,所选择的预测分块可以是基于使用基于特性或运动的多参考预测或帧内预测 而针对每一潜在的预测分块确定预测的并且是基于确定预测参数的。对于每一潜在的预测 分块,可以通过确定原始像素与预测像素的差异来确定潜在的预测误差,且所选择的预测 分块可以是具有最小预测误差的潜在预测分块。在其他示例中,所选择的预测分块可以是 基于速率失真优化来确定的,速率失真优化包括基于用于对预测分块进行编码的比特数以 及与预测分块相关联的预测误差的加权得分。
[0057] 如所示出的,在差异确定器106处,可以确定所选择的预测分块(例如,当前帧的 预测分区)的原始像素与所预测的分区的差异(例如,基于一参考帧或多个参考帧或诸如 帧间或帧内预测数据的其他预测性数据而对当前帧的预测分区的预测)。预测分区的确定 将在下文进一步描述且如图1(a)中所示包括解码循环。可以将来自该差异的任何残差或 残差数据(例如,划分预测误差数据)发送至编码分区生成器模块107。在一些示例中,例 如对于在任何图片类型(I、F/B、或P图片)中进行的对预测分区的帧间预测,编码分区生成 器模块107可以通过开关107a和107b被绕开。在这样的示例中,仅可以执行单级的划分。 这样的划分可以被描述为预测分块(如所讨论的)或编码分块或两者。在各种示例中,这 样的划分可以通过预测分区生成器模块105来执行(如所讨论的),或如在本申请中进一步 讨论的,这样的划分可以通过k-d树帧内预测/编码划分器模块来执行或通过经由编码分 区生成器模块107实现的二叉树帧内预测/编码划分器模块来执行。
[0058] 在一些示例中,分区预测误差数据,如果有的话,可能不够重要来保证编码。在其 他示例中,在可能期望对分区预测误差数据进行编码且分区预测误差数据与帧间预测相关 联等的情况下,编码分区生成器模块107可以确定预测分区的编码分区。在一些示例中, 可能不需要编码分区生成器模块107,这是因为分区可以在没有编码分块的情况下被编码 (例如,如通过开关107a和107b而可用的旁路路径所示出的)。在有编码分块或没有编码 分块的情况下,如果残差或残差数据需要编码,则可以向自适应变换模块108发送分区预 测误差数据(随后其可以在任何事件中被描述为编码分区)。在一些示例中,预测分区生 成器模块105和编码分区生成器模块107可以一起被认为是编码器100的划分器子系统。 在各个示例中,编码分区生成器模块107可以对分区预测误差数据、原始像素数据、残差数 据、或小波数据进行操作。
[0059] 编码分区生成器模块107可以使用二叉树和/或k-d树划分技术等生成例如分区 预测误差数据的潜在的编码分块(例如,编码分区)。在一些示例中,可以通过自适应变换 模块108使用具有各种块大小的自适应或固定变换来变换潜在的编码分区,并且可以基于 速率失真优化或其它基础来确定所选择的编码分块和所选择的变换(例如,自适应的或固 定的)。在一些示例中
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1