掌桥专利:专业的专利平台
掌桥专利
首页

带有比特分配的基于神经网络的视频压缩

文献发布时间:2023-06-19 16:06:26



交叉引用

根据适用的专利法和/或依据巴黎公约的规则,本申请是为了及时要求2021年1月25日提交的美国专利申请第63/141,059号的优先权和权益。所有上述专利申请全部引入本文作为参考。

技术领域

本专利文档涉及数字音频视频媒体信息的生成、存储和消费。

背景技术

数字视频占互联网和其他数字通信网络上最大的带宽使用。随着能够接收和显示视频的连接用户设备数量的增加,预计数字视频使用的带宽需求将继续增长。

发明内容

本文档公开了可由视频编码器和解码器用于处理视频或图像的编解码表示的技术。

在一个示例方面,公开了一种视频处理方法。该方法包括确定视频的当前视频单元的目标比特率,目标比特率基于率失真函数,其中使用λ对比率部分进行加权,其中λ是有理数,并且其中λ是对视频的每个视频单元自适应调整的;以及执行当前视频单元和视频的比特流之间的转换。

在另一示例方面,公开了一种视频处理方法。该方法包括:使用神经网络,使用率失真函数确定具有多个时域层的视频的每个时域层的目标比特率,其中使用时域层特定的λ值对率失真函数的比率部分进行加权,其中每个λ值是基本λ值的缩放版本,其中λ值是有理数;以及执行当前视频单元和视频的比特流之间的转换。

在另一示例方面,公开了一种视频处理方法。该方法包括根据规则在包括当前视频帧的视频和该视频的比特流之间执行转换;其中使用N个参考帧对当前视频帧进行预测编解码,其中N是大于2的整数。

在另一示例方面,公开了一种视频处理方法。该方法包括根据率失真函数确定视频单元的视频区域的目标比特率,其中使用每个视频区域的区域特定的λ值对率失真函数的比率部分进行加权;以及执行当前视频单元和视频的比特流之间的转换。

在另一示例方面,公开了一种视频处理方法。该方法包括根据规则在包括视频帧的视频和视频的比特流之间执行转换;其中规则指定使用残差帧在比特流中编解码视频帧的当前视频帧,所述残差帧使用基于从多个视频帧确定的插值帧的残差来编解码。

在又一示例方面,公开了一种视频编码器装置。该视频编码器包括被配置为实现上述方法的处理器。

在又一示例方面,公开了一种视频解码器装置。该视频解码器包括被配置为实现上述方法的处理器。

在又一示例方面,公开了一种其上存储有代码的计算机可读介质。该代码以处理器可执行代码的形式体现了本文描述的方法之一。

在又一示例方面,公开了一种其上存储有比特流的计算机可读介质。使用本文档中描述的方法生成或处理该比特流。

本文档通篇描述了这些和其他特征。

附图说明

图1是示例视频处理系统的框图。

图2是视频处理设备的框图。

图3是视频处理的示例方法的流程图。

图4是示出根据本公开的一些实施例的视频编解码系统的框图。

图5是示出根据本公开的一些实施例的编码器的框图。

图6是示出根据本公开的一些实施例的解码器的框图。

图7示出了编码器框图示例。

图8是典型变换编解码方案的图示。

图9示出了提出的视频处理方法的示例框架

图10示出了图片组(group of pictures,GOP)中层次层次压缩结构的示例。

图11示出了双向帧合成(bi-directional frame synthesis,BFS)模块的示例。

图12是辅助预测残差编解码示例的图示。

具体实施方式

为了便于理解,在本文档中使用了章节标题,并且不将每个章节中公开的技术和实施例的适用性仅限于该章节。此外,在一些描述中使用H.266术语仅仅是为了便于理解,而不是为了限制所公开技术的范围。这样,本文描述的技术也适用于其他视频编解码器协议和设计。在本文档中,相对于VVC规范或ISOBMFF文件格式规范的当前草案,对文本的编辑更改以删除线显示,指示取消的文本,并且通过突出显示(包括粗体斜体)表示增加的文本。

1.介绍

本文档涉及使用神经网络的视频压缩,并且更具体地,涉及为基于神经网络(基于NN)的视频压缩的比特分配。它可以应用于端到端(end-to-end)压缩框架,其中所有模块都在联合优化。它也可以应用于混合压缩框架,其中基于神经网络的编解码工具被集成到现有视频编解码标准(例如,HEVC、VVC)或未来视频编解码标准的框架中。

所描述的技术涉及最佳率失真(R-D)性能的改进算法和方法。通常,所描述的技术能够在基于神经网络的视频编解码系统中实现自适应比特分配。也就是说,通过调整每个层次级别的比特分布以适应各种序列的固有率失真(R-D)特性,提供了与内容相关的比特分配机制。例如,自适应比特分配可以基于视频内容调整不同图片之间的比特百分比,使得重要图片总是能够以更好的质量被编解码,从而导致更好的R-D性能。此外,比特分配也可以在基本单元(basic unit,BU)级别执行,即调整图片内不同小补丁(patch)的比特分布。

为了进一步提高帧间编解码性能,本文提出了多参考帧技术。例如,当对较高时域层中的帧进行编码时,缓冲区中存在多于两个的重建的帧,除了两个基本参考帧之外,可以利用重建的帧来增强帧间编解码增益。

为了进一步开发对来自帧间预测的残差进行编解码的方法,本文提出了辅助预测残差编解码的技术。例如,当压缩和解压缩帧间预测的帧的残差部分时,帧间预测的图片可以提供附加信息来帮助学习更紧凑的潜在表示,从而使得编解码性能的提高。

视频编解码介绍

过去的十年见证了深度学习在各种领域的快速发展,尤其是在计算机视觉和图像处理领域。受深度学习技术在计算机视觉领域的巨大成功的启发,许多研究人员已经将注意力从传统的图像/视频压缩技术转移到神经图像/视频压缩技术。神经网络最初是随着神经科学和数学的交叉研究而发明的。它在非线性变换和分类方面表现出很强的能力。在过去的五年中,基于神经网络的图像/视频压缩技术取得了重大进展。据报道,最新的基于神经网络的图像压缩算法实现了与通用视频编解码(VVC)相当的R-D性能,通用视频编解码是联合视频专家团队(JVET)与MPEG和VCEG的专家共同开发的最新视频编解码标准。随着神经图像压缩性能的不断提高,基于神经网络的视频压缩已经成为积极发展的研究领域。然而,基于神经网络的视频编解码由于其固有的困难性仍处于起步阶段。

图像/视频压缩

图像/视频压缩通常是指将图像/视频压缩成二进制代码以方便存储和传输的计算技术。二进制代码可能支持也可能不支持无损重建原始图像/视频,称为无损压缩和有损压缩。大部分精力都放在有损压缩上,因为无损重建在大多数情况下是不必要的。通常从压缩比和重建质量两个方面来评价图像/视频压缩算法的性能。压缩比与二进制码数直接相关,越少越好;重建质量是通过将重建的图像/视频与原始图像/视频进行比较来衡量的,越高越好。

图像/视频压缩技术可以分为两个分支,经典的视频编解码方法和基于神经网络的视频压缩方法。经典的视频编解码方案采用基于变换的解决方案,其中研究人员通过精心手工设计熵编码(hand-engineering entropy code)来模拟量化区域中的相关性,从而利用了潜在变量(例如,DCT或小波系数)中的统计相关性。基于神经网络的视频压缩有两种风格,即基于神经网络的编解码工具和基于端到端神经网络的视频压缩。前者作为编解码工具嵌入到现有的经典的视频编解码器中,并且仅作为框架的一部分,而后者是基于神经网络开发的独立框架,不依赖于经典的视频编解码器。

在过去的三十年中,已经开发了一系列经典的视频编解码标准来适应日益增长的视觉内容。国际标准化组织ISO/IEC有两个专家组,即联合图像专家组(JPEG)和运动图片专家组(MPEG),ITU-T也有自己的视频编解码专家组(VCEG),其负责图像/视频编解码技术的标准化。这些组织发布的有影响力的视频编解码标准包括JPEG、JPEG 2000、H.262、H.264/AVC和H.265/HEVC。继H.265/HEVC之后,由MPEG和VCEG组成的联合视频专家团队(JVET)一直致力于一种新的视频编解码标准——通用视频编解码(VVC)。VVC的第一版于2020年7月发布。与HEVC相比,在相同的视觉质量下,VVC平均降低了50%的比特率。

基于神经网络的图像/视频压缩并不是新发明,因为有许多研究人员致力于基于神经网络的图像编码。但网络架构相对较浅,并且性能不尽如人意。得益于丰富的数据和强大计算资源的支持,基于神经网络的方法在各种应用中得到了更好的利用。目前,基于神经网络的图像/视频压缩已经显示出有希望的改进,证实了其可行性。尽管如此,这项技术仍远未成熟,还有许多挑战需要解决。

2.2神经网络

神经网络,又称人工神经网络(artificial neural network,ANN),是机器学习技术中使用的计算模型,通常包括多个处理层,每层包括多个简单但非线性的基本计算单元。这种深度网络的一个好处被认为是能够处理具有多个抽象级别的数据,并将数据转换成不同类型的表示。请注意,这些表示不是手动设计的;相反,包括处理层的深度网络是使用通用机器学习过程从海量数据中学习的。深度学习消除了手工表示的必要性,因此被认为特别适用于处理原始的非结构化数据,诸如声音和视觉信号,而处理这种数据一直是人工智能领域的长期难题。

2.3图像压缩的神经网络

现有的神经网络图像压缩方法可以分为两类,即像素概率建模和自动编码器。前者属于预测编解码策略,而后者是基于变换的解决方案。有时,这两种方法在文献中结合在一起。

2.3.1像素概率建模

根据香农信息论(Shannon’s information theory),无损编解码的最佳方法可以达到最小码率log

遵循预测编解码策略,建模p(x)的一种方法是基于先前的观察,以光栅扫描顺序逐个预测像素概率,其中x是图像。

p(x)=p(x

其中m和n分别是图像的高度和宽度。先前的观察也被称为当前像素的上下文(context)。当图像较大时,很难估计条件概率,因此简化的方法是限制其上下文的范围。

p(x)=p(x

其中k是控制上下文范围的预定义常数。

应当注意,该条件也可以考虑其他颜色分量的样点值。例如,当编解码RGB颜色分量时,R样点依赖于先前编解码的像素(包括R/G/B样点),当前G样点可以根据先前编解码的像素和当前R样点进行编解码,而对于编解码当前B样点,也可以考虑先前编解码的像素和当前R和G样点。

神经网络最初是为计算机视觉任务而引入的,并已被证明在回归和分类问题中是有效的。因此,已经提出使用神经网络来估计给定其上下文x

设计先进的神经网络在改进像素概率建模方面起着重要作用。提出了多维长短期记忆(long short-term memory,LSTM),它与条件高斯尺度混合的混合一起用于概率建模。LSTM是特殊种类的递归神经网络(recurrent neural network,RNN),被证明能够很好地对序列数据进行建模。LSTM的空域变体用于图像。分别研究了几种不同的神经网络,包括RNN和CNN,即PixelRNN和PixelCNN。在PixelRNN中,提出了LSTM的两种变体,称为行(row)LSTM和对角线BiLSTM,其中后者是专门为图像设计的。PixelRNN结合了残差连接,帮助训练多达12层的深度神经网络。在PixelCNN中,使用掩膜卷积(masked convolution)来适应上下文的形状。与之前的工作相比,PixelRNN和PixelCNN更专注于自然图像:它们将像素视为离散值(例如,0,1,…,255),并预测离散值上的多项式分布;它们在RGB颜色空间中处理彩色图像;它们在大尺寸图像数据集ImageNet上运行良好。提出了门控PixelCNN以改进PixelCNN,并获得了与PixelRNN相当的性能,但复杂度要低得多。提出了PixelCNN++,对PixelCNN进行了以下改进:使用离散逻辑混合似然,而不是256路多项式分布;下采样用于捕获多个分辨率的结构;引入附加的捷径连接(short-cut connection)以加快训练速度;为正则化采用丢弃(dropout);RGB是为一个像素进行组合。提出了PixelSNAIL,其中随意的卷积与自注意力(self-attention)相结合。

上述方法大多直接对像素域的概率分布进行建模。一些研究人员还试图将概率分布建模为基于显式或潜在表示的条件分布。话虽如此,我们可以估计

其中h是附加条件,并且p(x)=p(h)p(x|h),这意味着建模划分为无条件建模和有条件建模。附加条件可以是图像标签信息或高级别表示。

2.3.2自动编码器

自动编码器源于辛顿(Hinton)和萨拉赫库季诺夫(Salakhutdinov)提出的著名工作。该方法经过降维训练,由编码和解码两部分组成。编码部分将高维输入信号转换为低维表示,通常具有减小的空域尺寸但通道数量更多。解码部分试图从低维表示中恢复高维输入。自动编码器实现了表示的自动学习,并消除了手工特征的需要,这也被认为是神经网络最重要的优势之一。

图8是典型变换编解码方案的图示。通过分析网络g

将自动编码器网络应用于有损图像压缩是很直观的。实施例可能只需要对来自训练有素的神经网络的学习的潜在表示进行编码。然而,使自动编码器适应图像压缩并非易事,因为原始自动编码器没有针对压缩进行优化,因此直接使用经过训练的自动编码器效率不高。此外,还存在其他主要挑战:首先,低维表示在被编码之前应该被量化,但是量化是不可微的,这在训练神经网络的反向传播中是需要的。其次,压缩场景下的目标是不同的,因为失真和比率都需要考虑。估算这个比率具有挑战性。第三,实用的图像编解码方案需要支持可变比率、可扩展性、编码/解码速度、互操作性。为了应对这些挑战,许多研究人员一直在积极致力于这一领域。

图像压缩的原型自动编码器如图8所示,它可以被视为变换编解码策略。原始图像x用分析网络y=g

在网络结构方面,RNN和CNN是应用最广泛的架构。在RNN相关类别中,提出了使用RNN的可变比率图像压缩的通用框架。使用二进制量化来生成代码,并且在训练期间不考虑比率。该框架确实提供了可扩展的编解码功能,其中具有卷积和去卷积层的RNN被报道表现良好。随后提出了改进的版本,用类似于PixelRNN的神经网络升级编码器,以压缩二进制代码。据报道,在使用MS-SSIM评价标准的柯达(Kodak)图像数据集上,性能优于JPEG。通过引入隐藏状态启动进一步改进了基于RNN的解决方案。此外,还设计了SSIM加权损失函数,并启用了空域自适应比特率机制。在使用MS-SSIM作为评估指标的柯达图像数据集上,他们取得了比BPG更好的结果。通过训练停止码容忍RNN来支持空域自适应比特率。

提出了为率失真优化图像压缩的通用框架。使用多进制量化来生成整数代码,并考虑训练期间的比率,即损失是联合率失真成本,可能是MSE或其他。它们在训练期间添加随机噪声来刺激量化,并使用噪声码的差分熵作为比率的代理。他们使用广义除归一化(generalized divisive normalization,GDN)作为网络结构,网络结构包括线性映射和其后的非线性参数归一化。验证了GDN对图像编解码的有效性。然后提出了改进的版本,其中使用了3个卷积层,每个卷积层后面是下采样层和GDN层作为前向变换。相应地,使用了3层逆GDN,每层后接上采样层和卷积层来刺激逆变换。此外,还设计了一种算术编解码方法来压缩整数码。据报道,就MSE而言,该算法在柯达数据集上的性能优于JPEG和JPEG 2000。此外,通过在自动编码器中设计缩放超先验(scale hyper-prior)来改进该方法。它们将带有子网h

2.4用于视频压缩的神经网络

与传统的视频编解码技术类似,神经图像压缩是基于神经网络的视频压缩中帧内压缩的基础,因此基于神经网络的视频压缩技术的发展晚于基于神经网络的图像压缩,但由于其复杂性,需要付出更大的努力来解决这些挑战。从2017年开始,一些研究人员一直在研究基于神经网络的视频压缩方案。与图像压缩相比,视频压缩需要有效的方法来消除图片间的冗余。图片间预测是这些工作的关键步骤。运动估计和补偿被广泛采用,但是直到最近才通过经训练的神经网络来实现。

基于神经网络的视频压缩研究可以根据目标场景分为两类:随机访问和低延迟。在随机访问的情况下,它要求解码可以从序列的任何点开始,通常将整个序列分成多个单独的片段,并且每个片段可以独立解码。在低延迟的情况下,它旨在减少解码时间,从而通常只有时域上先前的帧可以用作参考帧来解码后续帧。

2.4.1低延迟

提出了一种具有经训练的神经网络的视频压缩方案。首先将视频序列帧划分成块,并且每个块将从两种可用模式中选择一种,帧内编解码或帧间编解码。如果选择了帧内编解码,则有相关联的自动编码器来压缩该块。如果选择帧间编解码,则使用传统方法执行运动估计和补偿,并且经训练的神经网络将用于残差压缩。自动编码器的输出通过霍夫曼(Huffman)方法直接量化和编解码。

提出了另一种具有PixelMotionCNN的基于神经网络的视频编解码方案。帧按时间顺序压缩,并且每个帧被划分成按光栅扫描顺序压缩的块。每个帧将首先用前面两个重建的帧外推。当块要被压缩时,外推的帧连同当前块的上下文一起被馈送到PixelMotionCNN以导出潜在表示。然后,残差被可变比率图像方案压缩。这个方案的性能与H.264相当

提出了基于真正意义上的端到端神经网络的视频压缩框架,其中所有模块都用神经网络实现。该方案接受当前帧和先前重建的帧作为输入,并且将使用预训练的神经网络导出光流作为运动信息。运动信息将随着参考帧被扭曲,随后是生成运动补偿帧的神经网络。残差和运动信息用两个独立的神经自动编码器压缩。整个框架是用单个率失真损失函数训练的。它实现了比H.264更好的性能。

提出了一种先进的基于神经网络的视频压缩方案。它继承和扩展了传统的神经网络视频编解码方案,具有以下主要特点:1)仅使用一个自动编码器来压缩运动信息和残差;2)具有多个帧和多个光流的运动补偿;3)随着时间的推移,在线状态通过以下帧被学习和传播。该方案在MS-SSIM中的性能优于HEVC参考软件。

基于上述端到端神经网络的视频压缩框架提出了一种扩展的基于端到端神经网络的视频压缩框架。在该解决方案中,多个帧被用作参考。因此,它能够通过使用多个参考帧和相关联的运动信息来提供当前帧的更准确的预测。此外,还采用了运动场预测来消除沿时间通道的运动冗余。在这项工作中还引入了后处理网络,以消除先前过程中的重建伪影。就PSNR和MS-SSIM而言,性能明显优于上述基于端到端神经网络的视频压缩框架和H.265。

在上述基于端到端神经网络的视频压缩框架的框架基础上增加了一个尺度参数,提出用尺度空间流代替常用的光流。据报道,它取得了比H.264更好的性能。

在上述基于端到端神经网络的视频压缩框架的基础上提出了光流的多分辨率表示。具体来说,运动估计网络产生多个不同分辨率的光流,让网络在损失函数下学习选择哪一个。性能较上述基于端到端神经网络的视频压缩框架]略有提升,并且优于H.265。

2.4.2随机存取

提出了一种基于神经网络的帧插值视频压缩方案。关键帧首先用神经图像压缩器压缩,并且其余帧按层次顺序压缩。在感知域中执行运动补偿,即在原始帧的多个空域尺度上导出特征图,并使用运动来扭曲特征图,这将用于图像压缩器。据报道,这种方法与H.264不相上下。

提出了一种基于插值的视频压缩方法,其中插值模型结合了运动信息压缩和图像合成,并且相同的自动编码器用于图像和残差。

提出了一种基于神经网络的视频压缩方法,该方法基于具有确定性编码器的可变自动编码器。具体来说,该模型由自动编码器和自回归先验构成。与以前的方法不同,该方法接受图片组(GOP)作为输入,并通过在编解码潜在表示时考虑时间相关性来结合3D自回归先验。它提供了与H.265相当的性能

2.5准备工作

几乎所有的自然图像/视频都是数字格式的。灰度数字图像可以表示为

彩色图像通常以多个通道表示,以记录颜色信息。例如,在RGB颜色空间中,可以用具有存储红色、绿色和蓝色信息的三个独立通道的

彩色视频序列包括多个彩色图像,这些图像称为帧,用于记录不同时间戳的场景。例如,在RGB颜色空间中,彩色视频可以用X={x

通常无损方法对于自然图像可以达到约1.5比3的压缩比,这显然低于要求。因此,有损压缩被开发来实现进一步的压缩比,但代价是引起失真。失真可以通过计算原始图像和重建的图像之间的平均平方差,即均方误差(mean-squared-error,MSE)来测量。对于灰度图像,MSE可以用以下公式计算。

因此,与原始图像相比,重建的图像的质量可以通过峰值信噪比(peak signal-to-noise ratio,PSNR)来测量:

其中

要比较不同的无损压缩方案,只要在给定结果比率的情况下比较压缩比就足够了,反之亦然。然而,为了比较不同的有损压缩方法,必须同时考虑比率和重建的质量。例如,计算几个不同质量水平的相对比率,然后对该比率进行平均,这是一种常用的方法;平均相对比率被称为Bjontegaard的delta-rate(BD-rate)。评估图像/视频编解码方案还有其他重要方面,包括编码/解码复杂性、可扩展性、鲁棒性等。

3.由公开的技术方案解决的技术问题的示例

现有的基于神经网络的视频压缩解决方案仍然存在以下问题:

1.比特分配方案在现有解决方案中是次优的。对于不同的时域层使用统一的比特分配,即,将相同数量的比特分配给所有时域层,这不是最佳解决方案,因为存在“质量依赖性”。然而,在经典的视频编解码器(例如,H.264、H.265)中,比特分配是将R-D性能推向理论最佳的重要工具。据报道,使用层次比特分配平均节省8.4%的比特。然而,基于神经网络的视频压缩的比特分配在现有技术中还没有被研究。更频繁被引用的帧应该以更好的质量被编解码,以减少传播到后续帧的失真,从而应该被分配更多的比特,反之亦然。

2.现有的随机访问方法不能充分利用可用信息来预测当前帧。当预测/插值当前帧时,例如,根据其解码顺序,可以使用两个以上的参考帧来提高预测精度。

3.现有方法没有考虑帧内的比特分配,即空域比特分配。为了获得最佳的R-D性能,比特分配应该基于其纹理在帧中针对不同的区域进行区分。

4.可用的信息没有被充分利用来编解码插值的帧的残差。插值/预测的帧可以用作附加信息来增强残差编解码。

4.技术解决方案的示例

下面按项目列举的解决方案和实施例应该被认为是解释一般概念的示例。不应狭隘地解释这些项目。此外,这些项目可以以任何方式组合。

在此文描述的技术提供了一种具有比特分配的基于神经网络的视频压缩方法。通过将不同数量的比特分配给不同的时域层,系统根据“质量依赖”现象提供了更好的R-D性能。不仅比特分配在时域上存在,而且在空域空域上也存在。本文还描述了空域比特分配,用于将不同数量的比特分配给帧内的不同区域。总之,本发明包括以下内容:

1.替代对一个视频内的所有图片使用相同的λ(lambda)值(对应于目标比特率的推导),提出使用自适应调整的λ值来编解码一个视频。

a.在一个示例中,对于给定的目标比特率,首先导出基本(例如,序列级)λ值。此外,对于要编解码的视频单元,进一步导出/选择应用于基本λ值的缩放因子,并且缩放后的λ值(表示为最终λ值)用于编解码视频单元。

i.在一个示例中,缩放因子和/或给定缩放因子和/或最终λ值可以从给定的缩放因子集中选择。

a)在一个示例中,给定的缩放因子集可以包括{1.0,0.25,0.20,0.08}。

ii.在一个示例中,缩放因子和/或给定的缩放因子集和/或最终λ值可以取决于目标比特率。

iii.在一个示例中,缩放因子和/或给定的缩放因子集和/或最终λ值可以取决于图片的编解码顺序。

iv.在一个示例中,缩放因子和/或给定的缩放因子集和/或最终λ值可以取决于时域层id(例如,VVC的TemporalId)。

a)可选地,此外,缩放因子可以随着时域层索引的增加而增加。

b)可选地,此外,缩放因子可以随着时域层索引的增加而减小。

c)可选地,此外,对于具有连续时域层索引的两个层,缩放因子可以被设置为相同的值。

d)可选地,此外,对于给定的时域层id,缩放因子可以被设置为1(例如,调整的λ值等于基本λ值)。

v.在一个示例中,缩放因子和/或给定的缩放因子集和/或最终λ值可以取决于一个视频单元的位置,例如,是否靠近某个边界(例如,图片边界、条带边界、片边界)。

vi.在一个示例中,缩放因子和/或给定的缩放因子集和/或最终λ值可以取决于颜色分量。

a)在一个示例中,对于第一颜色(例如,Y颜色分量)和第二颜色(例如,Cb或Cr颜色分量)分量,最终λ可以被设置为不同的值。

b)在一个示例中,对于第一颜色(例如,Y颜色分量)和第二颜色(例如,Cb或Cr颜色分量)分量,最终λ可以被设置为不同的值;而对于第二和第三颜色分量,最终的λ可以被设置为相同的值

a.在一个示例中,Cb和Cr分量可以共享相同的值,该值不同于用于编解码Y颜色分量的值。

b.在一个示例中,B和R分量可以共享相同的值,该值不同于用于编解码G颜色分量的值。

c.在一个示例中,G和B分量可以共享相同的值,该值不同于用于编解码R颜色分量的值。

b.或者,对于给定的目标比特率和对于要编解码的视频单元,可以从给定的目标比特率直接导出λ值。

c.在一个示例中,视频单元是图片/条带/片/子图片。

d.在一个示例中,视频单元是图片/条带/片/子图片内的CTU行/CTU/CTB/CU/PU/TU/CB/TB/VPDU/区域。

e.在一个示例中,视频单元是CTU内的一个或多个像素/样点。

f.在一个示例中,对于一个λ可以产生一个以上的神经网络。

i.例如,可以为具有不同缩放因子的一个λ产生不同的神经网络。

ii.在一个示例中,可以向解码器信令通知哪个神经网络用于一个λ。

2.一种基于神经网络的视频压缩的时间比特分配方法,包括为给定的目标比特率确定对应的基本λ值,从每个时域层确定对于调整的λ值的缩放因子。

a.在一个示例中,比特分配方法可以取决于图片组(GOP)的结构,诸如GOP的尺寸和参考图片设置。

3.当前帧可以从解码的图片缓冲区中的两个以上的参考帧中预测。

a.在一个示例中,要利用多少帧可以取决于时域层id/编解码顺序等。

b.在一个示例中,定义了参考帧的最大数量(例如,表示为C)。当可用参考帧的数量超过最大数量时,利用在时域距离方面最接近的C个参考帧。

c.在一个示例中,对于基于神经网络的编解码方案,不同的参考帧可以用于不同的区域。

4.提出了一种空域比特分配方法,该方法将不同数量的比特分配给视频单元内的不同区域(例如,图片/条带/片/子图片/CTU行/CTU)。基于空域位置的特性和/或其他信息,通过利用应用于基本λ值的缩放因子来调整λ值或者调整量化步长来部署空域比特分配。

a.在一个示例中,当使用调整的λ值时,潜在表示的空域位置的缩放因子被动态确定或者从给定的候选集合中选择。

i.或者,此外,缩放因子的确定可以取决于项目符号1中提到的信息(例如,时域层id)。

b.在一个示例中,可以对图片的一个或多个或所有空域区域信令通知与基于NN的视频压缩相关的信息。

c.在一个示例中,可以在像素/样点空间、感知空间或任何其他空间中测量补丁的特性。

i.在一个示例中,像素空间/样点空间中的标准可以包括熵、梯度等。

ii.在一个示例中,感知空间中的标准可以包括从预先训练的神经网络等导出的感知分数。

iii.在一个示例中,当使用调整的量化步长时,可以应用上述方法,

5.插值的帧被用作附加信息来增强残差编解码。

a.在一个示例中,插值的帧与残差帧级联,然后在编码器和解码器侧都作为输入。

b.在一个示例中,首先从插值的帧和残差帧中提取单独特征,然后在编码器和解码器侧将其融合在一起。

5实施例示例

比特分配是视频压缩中的一项有用技术,是比率控制中的关键步骤。我们提出了一种具有层次比特分配的端到端神经视频压缩方案。现有方法由于对不同时域层使用统一比特分配而受到限制。原始视频序列以层次顺序压缩成图片组(GOP)。比特分配是基于R-λ模型开发的。所有模块都通过单个率失真损失函数进行联合优化。渐进训练策略用于优化整个方案。以下小节提供了示例。

5.1框架

图9示出了提出的方法的示例框架。原始视频序列被分成图片组(GOP)。在每个GOP中,关键帧用图像压缩方法压缩,其余帧用双向帧合成(BFS)模块合成。

让X={x

我们在本节中介绍了基本版本(使用2个参考帧),并且多帧版本在第5.2节中进行了描述。图9示出了所提出的基于端到端神经网络的视频压缩方案。原始视频序列被分成GOP。每个GOP包括N个连续的帧,并且可以独立编码和解码。两个连续的GOP共享边界帧。

图10示出了图片组(GOP)中的层次压缩结构的示例。

GOP中的第一帧和最后一帧是关键帧,直接使用图像压缩方法进行压缩。中间帧以层次顺序合成,如图10和等式6所示,其中h

损失函数是整个GOP的平均R-D损失,如下所示。

其中N是GOP尺寸;R

5.2多帧插值

图11示出了双向帧合成(BFS)模块的示例。

双向帧合成(BFS)模块接受两个或更多个参考帧,并生成重建的帧。本模块包括两个步骤:插值和残差编解码。插值的目的是在给定参考帧的情况下导出预测的帧,而残差编解码对预测的帧与其原始帧之间的差值进行编码。只要支持多个输入,插值网络可以是任何形式的神经网络。残差编解码网络应该是自动编码器类型的神经网络。当解码的帧缓冲区中有两个以上的参考帧可用时,可以合并更多的参考帧用于插值。在一个示例中,当GOP尺寸为8时,表1中列出了用于插值当前帧的参考帧。

表1.当GOP尺寸为8时,用于插值当前帧的参考帧列表示例。

应当注意的是,参考帧的数量不应局限于固定数量。

a.在一个示例中,当插值x

如果输入数量不同,则需要训练单独的BFS模块。例如,具有三个参考帧输入的BFS模块需要单独的网络系数的集合,就像具有两个参考帧输入的BFS模块一样。此外,当相对时间距离关系改变时,可能需要训练单独的BFS模块。例如,例如,用于使用x

5.3辅助预测残差编解码

图12是辅助预测残差编解码的示意图。插值的帧

为了充分利用可用信息以获得更好的R-D性能,插值的帧

5.4时间比特分配

5.4.1R-λ率控制模型

在经典的视频编解码技术中,λ是R-D曲线的斜率。当将这一信息与双曲线R-D模型相结合时,我们得到如下表示的λ。

其中,

其中C和K是与视频内容的特性相关的模型参数。等式8示出R-D关系可以用λ域来描述。

5.4.2神经视频压缩的比特分配

由于帧之间的GOP中存在“质量依赖性”,即当前帧的质量通常对后续帧的质量有显著影响。因此,我们应该压缩失真较小的重要图片。由于λ

其中ω

为了选择当前图片的合适的ω

表2.对于分级比特分配的ω

其中ρ表示目标比特率,并且ρ

λ=α·ρ

其中α=3.2003并且β=-1.367。因此,边界比特率ρ

λ

5.5空域比特分配

基于神经网络的视频压缩中现有的量化被加性均匀噪声所取代。因此,等效量化步长为1。然而,帧的不同区域可能需要不同的比特数来达到最佳的R-D性能。所提出的空域比特分配可以采用调整的λ值或调整的量化步长。

当使用调整的λ值时,为每个空域位置导出相对于基本λ值的缩放因子。当前位置补丁使用调整的λ值,而不是基本λ值。潜在表示的每个空域位置的缩放因子是动态确定的,或者是从给定的候选集中选择的。基本λ值、表示为λ

1.当使用预定义的候选列表来导出缩放因子时,在一个示例中,候选列表可以被定义为γ={0.5,0.8,1.5,2.8}。

2.在动态推导缩放因子时,缩放因子可以表述如下。应当注意,等式中的参数(π,η和κ)的值取决于视频内容、优化参数和指定的评估标准。

γ=πη

当使用调整的量化步长时,训练并保存多个量化模型,其中每个量化模型对应于单独的量化步长。量化模型选择基于用户在当前补丁上指定的评估标准。使用调整的量化步长的空域比特分配描述如下。

1.预先定义了量化步长的集合Q={q

2.输入帧被划分成尺寸为H×W的小补丁。

3.使用第4-4.c节中描述的特定评估标准,从补丁或潜在表示(即特征图)中定义阈值的集合T={τ

4.当网络接受输入补丁时,导出潜在表示,基于该潜在表示,如果当前补丁的指定的评估标准满足以下等式,选择量化步长q

τ

其中H(x)表示使用指定的评估标准对输入补丁x的评估分数。

确定量化步长集是基于网络架构、输入像素值范围等。在一个示例中,它可以被定义为Q={2.0,1.6,1.2,0.8,0.4。应当注意,间隔可以不相等,例如,Q={1.8,1.0,0.4,0.2的量化集合也是可能的。

当决定阈值集T时,可以使用预先训练的图像压缩网络来导出潜在表示的统计结果。在一个示例中,大量图像被划分成补丁,并通过预先训练的图像压缩网络馈送,以在瓶颈(bottleneck)处导出特征图。当横轴与Q中定义的量化步长成比例时,通过导出的特征图计算熵,并且阈值设置为交叉点处的垂直位置。

图1是示出示例视频处理系统1900的框图,其中可以实现本文公开的各种技术。各种实现可以包括系统1900的一些或所有组件。系统1900可以包括用于接收视频内容的输入1902。视频内容可以以原始或未压缩格式接收,例如8或10比特多分量像素值,或者可以是压缩或编码格式。输入1902可以代表网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口,例如以太网、无源光网络(PON)等,以及无线接口,诸如Wi-Fi或蜂窝接口。

系统1900可以包括编解码组件1904,其可以实现本文档中描述的各种编解码或编码方法。编解码组件1904可以降低从输入1902到编解码组件1904的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频代码转换技术。编解码组件1904的输出可以被存储,或者经由连接的通信来传输,如组件1906所表示的。组件1908可以使用在输入端1902接收的视频的存储或传送的比特流(或编解码)表示来生成发送到显示接口1910的像素值或可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是应当理解,编解码工具或操作在编码器处使用,并且反转编解码的结果的对应的解码工具或操作将由解码器执行。

外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清晰度多媒体接口(HDMI)或显示端口等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。

图2是视频处理装置3600的框图。装置3600可用于实现本文所述的一种或多种方法。装置3600可以体现在智能手机、平板电脑、计算机、物联网接(IoT)收器等中。装置3600可以包括一个或多个处理器3602、一个或多个存储器3604和视频处理硬件3606。处理器3602可以被配置成实现本文档中描述的一种或多种方法。存储器3604可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件3606可以用于在硬件电路中实现本文档中描述的一些技术。在一些实施例中,视频处理硬件3606可以至少部分地包括在处理器3602中,例如图形协处理器。

图4是示出可以利用本公开的技术的示例视频编解码系统100的框图。

如图4所示,视频编解码系统100可以包括源设备110和目标设备120。源设备110生成编码的视频数据,其可以被称为视频编码设备。目标设备120可以解码由源设备110生成的编码的视频数据,源设备110可以被称为视频解码设备。

源设备110可以包括视频源112、视频编码器114和输入/输出(I/O)接口116。

视频源112可以包括诸如视频捕获设备的源、从视频内容提供商接收视频数据的接口、和/或用于生成视频数据的计算机图形系统,或者这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码,以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码的图片和相关联的数据。编解码的图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法结构。I/O接口116可以包括调制器/解调器(调制解调器)和/或发送器。编码的视频数据可以通过网络130a经由I/O接口116直接传输到目标设备120。编码的视频数据也可以存储在存储介质/服务器130b上,以供目标设备120访问。

目标设备120可以包括I/O接口126、视频解码器124和显示设备122。

I/O接口126可以包括接收器和/或调制解调器。I/O接口126可以从源设备110或存储介质/服务器130b获取编码的视频数据。视频解码器124可以解码该编码的视频数据。显示设备122可以向用户显示解码的视频数据。显示设备122可以与目标设备120集成,或者可以在目标设备120的外部,目标设备120被配置为与外部显示设备接口。

视频编码器114和视频解码器124可以根据视频压缩标准操作,诸如高效视频编解码(HEVC)标准、通用视频编解码(VVM)标准和其他当前和/或进一步的标准。

图5是示出视频编码器200的示例的框图,视频编码器200可以是图4所示的系统100中的视频编码器114。

视频编码器200可以被配置成执行本公开的任何或所有技术。在图5的示例中,视频编码器200包括多个功能组件。本公开中描述的技术可以在视频编码器200的各种组件之间共享。在一些示例中,处理器可以被配置成执行本公开中描述的任何或所有技术。

视频编码器200的功能组件可以包括分割单元201、预测单元202、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重建单元212、缓冲区213和熵编码单元214,预测单元202可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206。

在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在示例中,预测单元202可以包括块内拷贝(IBC)单元。IBC单元可以在IBC模式中执行预测,其中至少一个参考图片是当前视频块所在的图片。

此外,一些组件,诸如运动估计单元204和运动补偿单元205可以高度集成,但是为了解释的目的,在图5的示例中被单独表示。

分割单元201可以将图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块尺寸。

模式选择单元203可以例如基于误差结果来选择编解码模式之一,帧内或帧间,并将所得的帧内或帧间编解码的块提供给残差生成单元207以生成残差块数据,并提供给重建单元212以重建该编码的块用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测(CIIP)模式的组合,其中预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还可以为块选择运动矢量的分辨率(例如,子像素或整数像素精度)。

为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲区213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于除了与当前视频块相关联的图片之外的来自缓冲区213的图片的运动信息和解码的样点来确定当前视频块的预测视频块。

运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作,例如,取决于当前视频块是在I条带、P条带还是B条带中。

在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。运动估计单元204然后可以生成指示列表0或列表1中包含参考视频块的参考图片的参考索引和指示当前视频块和参考视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。

在其他示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中的参考图片中搜索当前视频块的另一参考视频块。运动估计单元204然后可以生成参考索引,该参考索引指示包含参考视频块的列表0和列表1中的参考图片以及指示参考视频块和当前视频块之间的空域位移的运动矢量。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。

在一些示例中,运动估计单元204可以输出完整的运动信息的集合,用于解码器的解码处理。

在一些示例中,运动估计单元204可以不输出当前视频的完整的运动信息的集合。相反,运动估计单元204可以参考另一个视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与临近(neighboring)视频块的运动信息足够相似。

在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示值,该值向视频解码器300指示当前视频块具有与另一视频块相同的运动信息。

在另一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中识别另一个视频块和运动矢量差(MVD)。运动矢量差指示当前视频块的运动矢量和指示的视频块的运动矢量之间的差。视频解码器300可以使用指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。

如上所述,视频编码器200可以预测性地信令通知运动矢量。可以由视频编码器200实现的预测信令技术的两个示例包括高级运动矢量预测(AMVP)和合并模式信令。

帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于相同图片中的其他视频块的解码的样点来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。

残差生成单元207可以通过从当前视频块中减去(例如,由减号指示)当前视频块的预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中的样点的不同样点分量的残差视频块。

在其他示例中,例如在跳过模式下,当前视频块可能没有当前视频块的残差数据,并且残差生成单元207可能不执行减法操作。

变换处理单元208可以通过对与当前视频块相关联的残差视频块应用一个或多个变换来为当前视频块生成一个或多个变换系数视频块。

在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(QP)值来量化与当前视频块相关联的变换系数视频块。

逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重建残差视频块。重建单元212可以将重建的残差视频块添加到来自预测单元202生成的一个或多个预测视频块的对应的样点,以产生与当前块相关联的重建的视频块,用于存储在缓冲区213中。

在重建单元212重建视频块之后,可以执行环路滤波操作来减少视频块中的视频块伪影。

熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码的数据并输出包括熵编码的数据的比特流。

图6是示出视频解码器300的示例的框图,视频解码器300可以是图4所示的系统100中的视频解码器114。

视频解码器300可以被配置为执行本公开的任何或所有技术。在图6的示例中,视频解码器300包括多个功能组件。本公开中描述的技术可以在视频解码器300的各种组件之间共享。在一些示例中,处理器可以被配置成执行本公开中描述的任何或所有技术。

在图6的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305以及重建单元306和缓冲区307。在一些示例中,视频解码器300可以执行通常与关于视频编码器200(图5)描述的编码过程相反的解码过程。

熵解码单元301可以检索编码的比特流。编码的比特流可以包括熵编解码的视频数据(例如,编码的视频数据的块)。熵解码单元301可以解码熵编解码的视频数据,并且根据熵解解码的视频数据,运动补偿单元302可以确定包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。运动补偿单元302例如可以通过执行AMVP和合并模式来确定这样的信息。

运动补偿单元302可以产生运动补偿块,可能基于插值滤波器执行插值。语法元素中可以包括要以子像素精度(sub-pixel precision)使用的插值滤波器的标识符。

运动补偿单元302可以使用由视频编码器200在视频块编码期间使用的插值滤波器来计算参考块的子整数像素的经插值的值。运动补偿单元302可以根据接收的语法信息确定视频编码器200使用的插值滤波器,并使用插值滤波器来产生预测块。

运动补偿单元302可以使用一些语法信息来确定用于对编码的视频序列的帧和/或条带进行编码的块的尺寸、描述编码的视频序列的图片的每个宏块如何被分割的分割信息、指示每个分割如何被编码的模式、每个帧间编解码的块的一个或多个参考帧(和参考帧列表)以及对编码的视频序列进行解码的其他信息。

帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来从空域相邻(adjacent)的块形成预测块。逆量化单元303逆量化,即解量化在比特流中提供并由熵解码单元301解码的量化视频块系数。逆变换单元303应用逆变换。

重建单元306可以将残差块与由运动补偿单元202或帧内预测单元303生成的对应的预测块相加,以形成解码块。如果需要,还可以应用解块滤波器来对解码的块进行滤波,以便去除块效应伪影。解码的视频块然后被存储在缓冲区307中,缓冲区307为后续的运动补偿/帧内预测提供参考块,并且还产生解码的视频以呈现在显示设备上。

接下来提供一些实施例优选的解决方案列表。

以下解决方案示出了在先前节中讨论的技术的示例实施例(例如,项目1)。

1.一种视觉媒体处理方法(例如,图3中描述的方法700),包括确定(702)视频的当前视频单元的目标比特率,目标比特率基于率失真函数,其中使用λ对比率部分进行加权,其中λ是有理数,并且其中λ是针对视频的每个视频单元自适应调整的;以及执行(704)当前视频单元和视频的比特流之间的转换。

2.解决方案1的方法,其中基于在每个视频单元的基础上缩放的视频的基本λ值,为视频的每个视频单元自适应地调整λ。

3.解决方案1-2中任一项的方法,其中响应于每个视频单元的目标比特率来调整每个视频单元的λ值。

4.解决方案1-3中任一项的方法,其中使用为确定多个视频单元的值而训练的多个神经网络来调整λ值。

5.解决方案1-4的方法,其中视频单元是编解码树单元行或编解码树单元或编解码树块或编解码单元或预测单元或变换单元或编解码块或变换块或虚拟流水线数据单元或图片或条带或片或子图片。

6.解决方案1-4中任一项的方法,其中视频单元是编解码树单元内的像素的子集。

以下解决方案示出了在先前节中讨论的技术的示例实施例(例如,项目2)。

7.一种视频处理方法,包括:使用神经网络,使用率失真函数确定具有多个时域层的视频的每个时域层的目标比特率,其中使用时域层特定的λ值对率失真函数的比率部分进行加权,其中每个λ值是基本λ值的缩放版本,其中λ值是有理数;以及执行当前视频单元和视频的比特流之间的转换。

8.解决方案7的方法,其中时域层的λ值响应于图片组(GOP)的结构。

9.解决方案8的方法,其中GOP的结构包括GOP的尺寸或GOP的参考图片设置。

以下解决方案示出了在先前节中讨论的技术的示例实施例(例如,项目3)。

10.一种视频处理方法,包括:根据规则在包括当前视频帧的视频和该视频的比特流之间执行转换;其中使用N个参考帧对当前视频帧进行预测编解码,其中N是大于2的整数。

11.解决方案10的方法,其中N取决于当前视频帧的时域层标识符。

12.解决方案10-11的方法,其中N取决于当前视频帧的编解码顺序。

13.根据解决方案10-12中任一项的方法,其中规则指定数字C,数字C表示对于视频N可以取的最大值,并且其中,在C大于N的情况下,N个参考帧对应于与当前视频帧在时域上最接近的N个参考帧。

14.解决方案10-13中任一个的方法,其中神经网络确定用于当前视频帧的不同视频区域的参考帧。

以下解决方案示出了在先前节中讨论的技术的示例实施例(例如,项目4)。

15.一种视频处理方法,包括:根据率失真函数确定视频单元的视频区域的目标比特率,其中使用每个视频区域的区域特定的λ值对率失真函数的比率部分进行加权;以及执行当前视频单元和视频的比特流之间的转换。

16.解决方案15的方法,其中通过将缩放因子应用于基本λ值来获得区域特定的λ值。

17.解决方案15的方法,其中通过调整对应的视频区域的量化步长或对应的视频区域在视频单元内的位置来获得给定区域特定的λ值。

18.根据解决方案15-17中任一项的方法,其中视频单元包括视频图片、条带、片、子图片、编解码树单元行或编解码树单元。

以下解决方案示出了在先前节中讨论的技术的示例实施例(例如,项目5)。

19.一种视频处理方法,包括:根据规则在包括视频帧的视频和视频的比特流之间执行转换;其中规则指定使用残差帧在比特流中编解码视频帧的当前视频帧,所述残差帧使用基于从多个视频帧确定的插值的帧的残差来编解码。

20.解决方案19的方法,其中,为了编解码,插值帧与残差帧级联。

21.解决方案19的方法,其中首先从插值的帧和残差帧中提取单独特征,并在转换期间融合在一起。

22.一种视频解码装置,包括被配置为实现解决方案1至21中的一个或多个所述的方法的处理器。

23.一种视频编码装置,包括被配置为实现解决方案1至21中的一个或多个中所述的方法的处理器。

24.一种其上存储有计算机代码的计算机程序产品,当由处理器执行时,该代码使得处理器实现解决方案1至21中任一个中所述的方法。

25.一种计算机可读介质,在计算机可读介质介质上生成符合根据解决方案1至21中任一项所述的比特流格式的比特流。

26.一种方法,包括根据解决方案1至21中任一项所述的方法生成比特流,并将比特流写入计算机可读介质。

27.根据本文档中描述的公开方法或系统生成的方法、装置、比特流。

在本文描述的解决方案中,编码器可以通过根据格式规则产生编解码表示来符合格式规则。在本文描述的解决方案中,解码器可以使用格式规则来解析编解码表示中的语法元素,同时根据格式规则了解语法元素的存在和不存在,以产生解码的视频。

在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在从视频的像素表示到对应的比特流表示的转换期间应用,反之亦然。如语法所定义的,当前视频块的比特流表示可以例如对应于位于比特流内不同位置或在比特流内不同位置扩展的比特。例如,宏块可以根据变换和编解码的误差残差值进行编码,并且还可以使用报头中的比特和比特流中的其他字段。此外,在转换期间,解码器可以基于该确定,在知道一些字段可能存在或不存在的情况下解析比特流,如以上解决方案中所述。类似地,编码器可以确定是否包括某些语法字段,并通过从编解码表示中包括或排除语法字段来相应地生成编解码表示。

本文档中描述的所公开的和其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本文档中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实现。所公开的和其他实施例可以被实现为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储设备、实现机器可读传播信号的物质组合,或者它们中的一个或多个的组合。术语“数据处理装置”包括用于处理数据的所有设备、装置和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如机器生成的电、光或电磁信号,其被生成来编码信息以传输到合适的接收器设备。

计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协同文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在一台计算机上或位于一个站点或分布在多个站点并通过通信网络互连的多台计算机上执行。

本文档中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。这些过程和逻辑流程也可以由专用逻辑电路来执行,并且设备也可以被实现为专用逻辑电路,例如,FPGA(现场可编程门阵)列或ASIC(专用集成电路)。

举例来说,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和一个或多个用于存储指令和数据的存储设备。通常,计算机还将包括或可操作地耦合到一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,以从其接收数据或向其传输数据,或两者兼有。然而,计算机不需要有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和CD ROM以及DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或结合在其中。

尽管本专利文件包含许多细节,但这些细节不应被解释为对任何主题或所要求保护的范围的限制,而是对特定技术的特定实施例可能特定的特征的描述。本专利文件中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独实现或者在任何合适的子组合中实现。此外,尽管特征可以在上面被描述为在某些组合中起作用,并且甚至最初被这样要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以指向子组合或子组合的变体。

类似地,虽然在附图中以特定顺序描述了操作,但是这不应该被理解为要求以所示的特定顺序或顺序执行这些操作,或者要求执行所有示出的操作,以获得期望的结果。此外,本专利文件中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离。

仅描述了几个实现和示例,并且可以基于本专利文件中描述和示出的内容进行其他实现、增强和变化。

技术分类

06120114707754