CN112715027B - 神经网络驱动型编解码器 - Google Patents

神经网络驱动型编解码器 Download PDF

Info

Publication number
CN112715027B
CN112715027B CN201980048796.9A CN201980048796A CN112715027B CN 112715027 B CN112715027 B CN 112715027B CN 201980048796 A CN201980048796 A CN 201980048796A CN 112715027 B CN112715027 B CN 112715027B
Authority
CN
China
Prior art keywords
video
neural network
parameters
encoding
encoded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980048796.9A
Other languages
English (en)
Other versions
CN112715027A (zh
Inventor
J.王
E.陈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Priority to CN202211111736.7A priority Critical patent/CN115623200B/zh
Publication of CN112715027A publication Critical patent/CN112715027A/zh
Application granted granted Critical
Publication of CN112715027B publication Critical patent/CN112715027B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/563Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

训练视频解码器系统,包括:生成至少两个视频编码参数集,其中所述至少两个视频编码参数集是有效的;用无效值掩盖所述至少两个编码参数集中的某个集以生成无效视频编码参数集;将所述至少两个视频编码参数集中的某个集提供给神经网络;使用迭代训练算法来训练所述神经网络以预测针对所述无效集的有效视频编码参数值;基于对所述经训练的循环神经网络的预测误差的分析而确定需要对哪些编码参数进行编码;从编码的数据舍弃被确定为由所述经训练的循环神经网络准确地预测的所述编码参数;在没有所述被舍弃的编码参数的情况下对新的视频流进行编码。还公开了一种具有神经网络的编码器和解码器系统。

Description

神经网络驱动型编解码器
发明领域
本公开涉及对视频流进行编码和解码。更具体地,本公开涉及使用神经网络来对视频流进行编码和解码。
发明背景
数字信号压缩已被广泛地用于许多多媒体应用和装置中。使用编码器/解码器(编解码器)进行的数字信号压缩允许诸如音频或视频信号的流媒体通过互联网传输或存储在压缩盘上。已出现了许多不同数字视频压缩标准,包括H.261、H.263;DV;MPEG-1、MPEG-2、MPEG-4、VC1;以及AVC(H.264)。这些标准以及其他视频压缩技术寻求通过移除或减少给定图片内和/或连续图片间的空间和时间冗余来高效地呈现视频帧图片。通过使用此类压缩标准,视频内容可被携载在高度压缩的视频比特流中,并且因此高效地存储在盘中或通过网络传输。
许多编解码器利用不同类型的帧编码。不同帧编码格式的示例包括内编码帧(I帧)、预测编码帧(P帧)和双向预测编码帧(B帧)。一般而言,I帧在不参考任何其他帧的情况下进行编码。I帧可独立于任何其他帧的解码进行解码。I帧可由编码器生成来创建随机访问点,所述随机访问点允许解码器在I帧的位置处开始正确地解码。相比P帧或B帧来说,I帧通常要求对更多的比特进行编码。
P帧参考一个或多个其他帧(诸如I帧或另一个P帧)进行编码。P帧包含来自一个或多个先前帧的图像的变化。对P帧进行解码要求先前对一个或多个其他帧进行解码。相比I帧来说,P帧要求对更少的比特进行编码。B帧类似于P帧,但是相对于先前帧和后续帧两者包含图像差异。B帧可在一些预测模式下进行编码,所述预测模式通过将使用两个不同的先前解码的参考区域获得的预测平均来形成对帧内的运动区域的预测。相比I帧或P帧来说,B帧要求对更少的比特进行编码。
将视频流编码为包含I帧的比特流来通过互联网传输存在某些问题。一个问题是压缩延迟。尽管I帧典型地要求比P帧或B帧更多的比特,但是将视频图像压缩和编码为P帧或B帧要比压缩和编码为I帧花费更多的时间。另一个问题被称为比特率抖动。由于I帧消耗比P帧或B帧多得多的比特计数,因此用于产生编码的图片的比特率是不均匀的。另外地,对于每个部段,在视频流内必须对若干不同参数进行编码以实现正确的解码。这些参数是必须被添加到编码的视频流并因此增加编码的比特流的大小的附加比特。具有较小的比特流以及因此更平滑的比特率将是更期望的。
已对广泛范围的其他领域具有影响的最近发展领域是神经网络(NN)。神经网络已成功地应用于包括图像识别、语音识别和手写识别以及股市预测的无数领域中。神经网络在其最简单水平来说是具有转移权重和内部偏差的一系列节点。输入(被称为特征)被提供给神经网络。当神经网络在被训练时,输入将具有期望的结果(被称为标签)。为了训练神经网络针对特征产生正确标签,在多次尝试中使用成本函数来调整权重,直到针对特定特征正确地给出标签为止。在诸如图像识别和股市预测的应用中使用的常见类型的神经网络是循环神经网络(RNN)。RNN将第二输出添加到典型的节点网络设计;此第二输出可简单地为节点自身的重复。第二输出表示添加的存储器部件,所述添加的存储器部件允许网络维护关于特征和相关标签的无限的历史信息。此重复可被认为是具有与前一个层相同的转移权重和偏差的附加隐藏节点层。
正是在这种背景下提出本公开的各方面。
附图说明
通过考虑以下结合附图进行的详细描述可容易地理解本发明的教示,在附图中:
图1A是示出在本发明的实施方案的背景内的流式数据图片的一种可能的分割的示意图。
图1B是示出根据本公开的各方面的用于循环神经网络的一种可能的节点布局的示意图。
图1C是示出根据本公开的各方面的展开的循环神经网络的示意图。
图2是示出根据本公开的各方面的用于训练双向预测神经网络的方法的框图。
图3是示出根据本公开的各方面的用于训练预测神经网络的方法的框图。
图4是示出可与本发明的实施方案结合使用的神经网络增强型数字图片编码的流程图。
图5是示出可与本发明的实施方案结合使用的流式神经网络增强型数据解码中的一般过程流的流程图。
图6是示出根据本发明的一个实施方案的用于对数字图片进行神经网络编码和/或解码的设备的框图。
具体实施方式
尽管以下具体实施方式包含用于说明用途的许多具体细节,但是本领域的任何普通技术人员将了解,对以下细节的许多改变和更改在本发明的范围内。因此,下文描述的本发明的示例性实施方案在不失一般性并且未暗示对所要求保护的本发明的限制的情况下进行阐述。
引言
本发明的实施方案实现了一种新的编码方案,所述新的编码方案包括使用一个或多个经训练的神经网络来减少编码的比特流内所包括的信息量。经训练的神经网络可允许编解码器从先前编码参数预测编码参数。因此,根据本公开的各方面,可不对由神经网络准确地预测的编码参数进行编码,并且可通过比特流内编码的编码误差流来校正不正确地预测的参数。
所提出的方案使用第一神经网络和第二神经网络。第一神经网络和第二神经网络两者都能够将其他编码参数用作输入来预测编码参数。然而,第一神经网络(NN)的输入不同于第二NN的输入。
为了更好地了解本公开的某些方面,在论述第一NN和第二NN的输入之前阐明一些术语是有用的。常规的视频编码器可将视频序列压缩为编码的流。在编码的流中,原始输入视频像素由诸如MB类型、帧内预测类型、运动矢量和DCT系数的一系列编码的参数表示。时间概念可用于描述参数之间的顺序。具体地,如果参数A置于比参数B更靠近视频序列的开头之处,则参数A被说成是在参数B之前。否则,参数A就被说成是在参数B之后。
对于第一NN,输入包括在待预测的当前参数之前和之后的两种参数。对于第二NN,输入仅具有在待预测的当前参数之前的参数。这类似于编码的视频流中的预测(P)图片和双向预测(B)图片。P图片仅使用在当前图片之前的参考图片。B图片使用在当前图片之前和之后两者的参考图片。由于第一NN接收来自在待预测的当前参数之前和之后两者的输入,因此第一NN的预测结果优于第二NN的预测结果。但是,类似于B图片预测,由于第一NN取决于未来参数作为输入,因此第一NN的使用受到未来参数的可用性的限制。
第一NN和第二NN两者可用于通过预测编码的参数来提高视频编码效率。由于预期只有早期参数会作为输入,因此输入始终可用于第二NN,而不用对原始编码的视频流进行重排序。但是,为了实现第一NN预测,在第一NN开始预测之前,一些未来参数必须是可用的。就像P图片必须可用作B图片的参考一样,第二NN的预测结果可用作第一NN的输入。但是,第一NN的输出无法用作第二NN的输入。为了方便起见,在本文中有用的是,将类似于第一NN的神经网络称为“双向预测”神经网络并且将类似于第二NN的神经网络称为“预测”神经网络。
如果第一NN和第二NN两者一起使用,则可通过第一NN预测一些参数并且可通过第二NN预测一些参数。没有参数会被两者都预测到。类似地,一些图片被编码为P图片并且一些图片被编码为B图片,但是没有图片会被编码为P和B两者。
一般而言,过多第二NN预测会降低预测准确性。过多第一NN预测会减少第一NN和第二NN两者的可用输入参数的数量,并且这也会降低预测准确性。重要的是找出第一NN和第二NN的最优组合来实现最佳的总体预测准确性。例如,第二NN可预测DCT系数。然后,在DCT系数之前和之后两者的编码参数将可供第一NN用来进行其他参数预测。请注意,第一NN仅可将可用参数用作输入。即使所有DCT系数可用,也并不是所有未来参数都必定可用。例如,当MB1的MB编码类型是第一NN的预测目标时,MB0的MB编码类型是可用的,但是MB2的MB编码类型是不可用的。然而,MB2的DCT系数是可用的。在一种实现方式中,为第一NN和第二NN两者准备相同的数据集格式。根据参数可用性,可用特殊的无效值将不可用参数掩盖掉。在预测之后,将预测误差熵压缩为最终编码结果。为了使解码过程更顺畅,可在存储或传输预测误差之前对所述预测误差进行重排序。在每个图片作为一个单元的情况下,可首先存储或传输第二NN的预测误差,然后可存储或传输第一NN的预测误差。在解码器侧上,在第一NN之前执行第二NN。
为了有助于按照现有的视频编码方法进行理解,尽管最终的编码的流顺序不同于常规的编码器输出顺序,但是本公开仍使用常规的编码器输出顺序来指定编码参数之间的“之前”和“之后”关系。
为了更好地理解关于图片编码的术语,将相对于图1A论述屏幕空间的分割。图1A示出了单个图片100(例如,数字视频帧)可被分解为一个或多个部段。如本文所使用,术语“部段”可指代图片100内的一个或多个像素的组。部段的范围可为图片内的单个像素,直至整个图片。部段的非限制性示例包括切片102、宏块104、子宏块106、块108和单独的像素110。如图1A所示,每个切片102包含一行或多行宏块104或者一个或多个这样的行的部分。在行中的宏块的数量取决于宏块的大小以及图片100的大小和分辨率。例如,如果每个宏块包含十六乘十六个像素,则可通过将图片100的宽度(以像素计)除以十六来确定每行中的宏块的数量。每个宏块104可被分解为多个子宏块106。每个子宏块106可被分解为多个块108,并且每个块可包含多个像素110。作为示例而非对本发明的限制,在常见的视频编码方案中,每个宏块104可被分解为四个子宏块106。每个子宏块可被分解为四个块108,并且每个块可包含呈四乘四排列的十六个像素110。
神经网络增强型编码
根据本公开的各方面,可通过使用神经网络来减少对编码参数,例如运动矢量、帧内预测模式运动矢量和变换系数的包括,所述神经网络被训练来从当前帧和/或先前帧的编码参数预测下一个帧的编码参数,和/或可从当前帧的其他编码参数预测当前帧的编码参数。编码系统可针对当前部段执行编码方案,所述编码方案通过如下文所详述的标准手段来获取编码参数,所述编码参数之后可被提供给神经网络,所述神经网络被训练来从当前编码参数集预测下一个编码参数集(在下文被称为第二NN)。所述系统之后可获取未编码的视频流的下一个部段的编码参数并且检查由NN对下一个部段的编码参数作出的预测的结果。如果预测准确,则所述系统不会将编码参数包括在编码的比特流中。如果预测不准确,则所述系统可将编码参数包括在比特流中。在一些实施方案中,当预测不准确时,可将由神经网络预测的编码参数与由标准编码过程获取的实际编码参数之间的差异(在下文被称为编码误差)包括在编码的比特流中。以此方式,减少的编码参数集可被包括在编码的比特流内,并且因此可减少视频流的存储器占用。
根据本公开的另外的方面,另一个神经网络(在下文被称为第一NN,因为在训练过程中,可首先训练此神经网络)可被训练来从前一个部段的参数值预测当前部段的编码参数,并且可提供下一个部段来增加准确性。用作第一NN的输入的前一个部段和下一个部段编码参数可从第二NN的结果加上编码误差生成。第一神经网络之后可从由第二NN生成的前一个部段和下一个部段参数值的集预测当前部段的缺失的参数值。如上文相对于第二NN所描述,可将这个预测的结果与从编码过程获取的下一个部段的实际编码参数进行比较。如果由第一NN预测的编码参数正确,则可从编码的比特流舍弃所述编码参数,并且像先前一样,如果预测的参数值不正确,则将实际编码参数包括在编码的比特流中,或者可选地,将包括编码误差。
神经网络可为本领域中已知的任何类型,但是优选地,神经网络是循环神经网络(RNN)。RNN可为卷积RNN(CRNN)。在替代实施方案中,RNN是任何类型的长短期记忆(LSTM)RNN。
图1B示出了RNN的基本形式是节点层120,所述节点层具有激活函数S、一个输入权重U、循环隐藏节点转移权重W和输出转移权重V。应注意到,激活函数可为本领域中已知的任何非线性函数并且不限于Tanh函数,例如激活函数S可为Sigmoid或ReLu函数。不同于其他类型的神经网络,RNN在整个层上具有一组激活函数和权重。如图1C所示,RNN可被视为一系列节点120,所述节点具有移动经过时间T和T+1的相同的激活函数。因此,RNN通过将结果从前一个时间T馈送到当前时间T+1来维护历史信息。在一些实施方案中,可使用卷积RNN。卷积RNN将具有所连接的若干不同的节点层,其中第一节点层的输出连接到第二节点层的输入,以此类推,从而形成分层结构。可使用的另一种类型的RNN是LSTM神经网络,所述LSTM神经网络将存储器块添加在RNN节点中,所述RNN节点具有输入门激活函数、输出门激活函数和遗忘门激活函数,从而产生门控存储器,所述门控存储器允许网络将一些信息保留较长的时间段,如由Hochreiter&Schmidhuber“Long Short-term memory”NeuralComputation 9(8):1735-1780(1997)所描述。
训练神经网络
图2示出了用于训练新的神经网络以识别并正确地预测编码参数的方法200。训练神经网络(NN)开始于初始化NN 210的权重。初始权重取决于激活函数的类型以及节点的输入的数量。NN的初始权重不能为0,因为这会导致隐藏层中的不对称计算。一般而言,初始权重应随机分配。例如,具有tanh激活函数的NN应具有在
Figure BDA0002909171220000081
Figure BDA0002909171220000082
之间分配的随机值,其中n是节点的输入的数量。
NN可具有任何数量的状态。在一般的NN中,每个隐藏状态将被提供每个特征作为其输入并且产生与标签空间一样大的输出。在CRNN中,通过添加额外的节点层来减小标签空间,其中节点的数量与前一个层相比较有所减少。在一些实施方案中,用于编码参数值的标签空间是4比特小的无符号整数加上符号比特。对于大于4比特的参数值,可不用预测就将参数直接编码在流中。
一旦NN已用随机值初始化,就可用特征数据来训练所述NN。应注意到,用于两种神经网络类型的训练数据的形式应密切匹配当所述系统实际上执行编码/解码功能时将发送和接收的数据的形式。当编码器和解码器使用相同的NN时尤其如此。在此类情况下,期望解码器侧NN输出与编码器侧NN相同的结果。根据本公开的各方面,可训练第一NN来根据前一个部段和下一个部段的编码参数而预测正确编码参数。
为了训练第一NN从前一个部段和下一个部段预测当前部段的编码参数,必须创建视频编码参数的阵列220。每个阵列包括视频流的按时间戳从前一个部段直至未来一个部段排列的每个部段的编码参数。这些阵列可通过上文描述的编码参数生成方法来生成。用于第一NN的特征数据包含用于视频流中直至下一个部段的每个部段的标签,并且因此必须用无效值掩盖230当前部段的至少一种类型的编码参数。在一些情况下,并非比特流的每个编码参数都可能可用;在这种情况下,必须用无效值掩盖下一个部段之后的所有未来编码参数。然后,向第一NN提供包括被掩盖的编码参数作为特征数据的编码参数阵列。将由NN为被掩盖的阵列预测的标签与实际编码参数进行比较,并且用具有随机梯度下降的标准反向传播算法来训练NN 240。
在每一轮训练240之后,可掩盖不同编码参数类型,并且可不掩盖先前被掩盖的参数。以此方式,可训练第一NN来从前一个部段和下一个部段的参数识别并预测当前部段的每种类型的编码参数。类似地,可训练第一NN来从当前部段和/或前一个部段和下一个部段的其他参数值预测当前部段的缺失参数值。应理解,可掩盖当前部段的多个编码参数,或者可在训练过程期间掩盖当前部段的所有参数。另外地,在一些实施方案中,在训练期间,下一个部段可能具有将被预测为会被掩盖的类型的编码参数。在预测错误率不再改进之后将会停止对第一NN的训练。在一些实施方案中,输出符记可代替实际参数值。
根据对第一NN的节点输入、输出和转移权重的检查,可确定使用其他编码参数能够准确地预测哪些编码参数。另外,对NN的权重和偏差的元分析可用于确定编码参数类型在预测其他编码参数类型中的重要性。
图3示出了用于训练第二NN的方法。类似于第一NN,可根据方法300使用具有随机梯度下降的反向传播来训练第二NN以预测下一个部段的编码参数。首先以与上文针对图2论述相同的方式用随机值初始化第二神经网络310。向第二神经网络提供包含直至当前部段的每个部段的每种类型的编码参数的阵列320。可用无效值掩盖330下一个部段的编码参数的阵列,并且可将无效值的阵列提供给神经网络。正确标签是下一个部段的编码参数,这可从如下所述的编码参数生成方法中获知。使用具有随机梯度下降的随时间的反向传播来产生第二神经网络的正确的权重和偏差340。执行训练的若干次迭代,直到预测错误率不再降低为止。在训练之后,NN将为下一个部段产生有效编码参数。
神经网络编码方法
可根据如图4所示的一般化方法400来对数字图片进行编码。编码器接收多个数字图像401并且对每个图像进行编码。数字图片401的编码可逐部段地进行。针对每个部段的编码过程可任选地涉及填充402、图像压缩404和像素重建406。为了有助于帧内编码图片和帧间编码图片两者的共用的过程流,如402处所指示,用临时像素值对当前处理图片401内的所有未解码的像素进行填充以产生填充图片。将填充图片添加到存储在缓冲区中的参考图片列表403。在402处填充图片有助于在图像压缩404和像素重建406期间的后续处理中将当前处理图片用作参考图片。这种填充更详细地描述于共同受让的美国专利8,218,641中,所述专利以引用的方式并入本文。
如本文所使用,图像压缩指代将数据压缩应用于数字图像。图像压缩404的目的是减少给定图像401的图像数据的冗余,以便能够以有效的压缩数据形式存储或传输所述图像的数据。图像压缩404可能是有损或无损的。对于诸如技术制图、图标或漫画的人造图像,无损压缩有时是优选的。这是因为有损压缩方法尤其是在以低比特率使用时会引入压缩伪影。对于诸如医学影像或出于归档目的而进行的图像扫描的高价值内容,无损压缩方法可能也是优选的。有损方法尤其适合于自然图像,诸如照片的应用,其中为了实现比特率的显著降低,轻微(有时察觉不到)的保真度损失是可接受的。
用于无损图像压缩的方法的示例包括但不限于游程编码(在PCX中用作默认方法并且在BMP、TGA、TIFF中用作可能的方法中的一种)、熵编码、自适应字典算法(诸如用于GIF和TIFF中的LZW和用于PNG、MNG和TIFF中的紧缩)。用于有损压缩的方法的示例包括将图片401的色彩空间减小为图像中最常见的色彩、色度二次抽样、变换编码和分形压缩。
在色彩空间减小中,可在压缩图像的标头中的调色板中指定所选择的色彩。每个像素仅引用调色板中的色彩的索引值。这种方法可与混色组合以避免色调分离。色度二次抽样利用了以下事实:眼睛对亮度的感知比对色彩的感知更为敏锐,这通过舍弃图像中的色度信息的一半或更多来进行。变换编码可能是最常用的图像压缩方法。变换编码通常应用傅立叶相关变换,诸如离散余弦变换(DCT)或子波变换,之后进行量化和熵编码。分形压缩依赖性于以下事实:在某些图像中,图像的多个部分类似于同一个图像的其他部分。分形算法将这些部分,或者更精确地说几何形状转换为被称为“分形码”的数学数据,所述数学数据被用于重新创建编码的图像。
图像压缩404可包括目标区域编码,其中图像401的某些部分以高于其他部分的质量进行编码。这可与可扩展性组合,这涉及首先对图像的某些部分进行编码,并且稍后对其他部分进行编码。压缩数据可包含关于图像的信息(有时被称为元信息或元数据),所述信息可用于对图像进行分类、搜索或浏览。这种信息可包括色彩和纹理统计信息、小的预览图像以及作者/版权信息。
作为示例而非限制,在404处的图像压缩期间,编码器可搜索压缩像素块的最佳方式。编码器可在参考图片列表403中的包括当前填充的图片的所有参考图片中搜索良好匹配。如果当前图片被编码为帧内图片,则参考列表中只有填充图片可用。在404处的图像压缩产生运动矢量MV和变换系数407,所述运动矢量和变换系数随后在206处的像素重建期间连同参考图片(包括填充图片)中的一个或多个一起使用。
图像压缩404通常包括用于最佳帧间预测匹配的运动搜索MS、用于最佳帧内预测匹配的帧内搜索IS、用于决定当前宏块是帧间编码还是帧内编码的帧间/帧内比较C、从用最佳匹配预测像素编码的部段中减去S原始输入像素以计算无损残余像素405。残余像素之后进行变换和量化XQ以产生变换系数407。变换通常是基于傅里叶变换,诸如离散余弦变换(DCT)。对于现有视频标准,如果将对帧内图片进行编码,则关闭运动搜索MS和帧间/帧内比较C。然而,在本发明的一些实施方案中,如果填充图片可用作参考,则不关闭这些功能。因此,图像压缩204对于帧内编码图片和帧间编码图片而言可能是相同的。
就像对帧间编码图片通常所做的那样,运动搜索MS可通过搜索图片401的最佳匹配块或宏块以进行运动补偿来生成运动矢量MV。如果当前图片401是帧内编码图片,则编解码器通常不允许跨图片预测。相反,通常会对帧内图片关闭所有运动补偿,并且通过生成变换系数并执行像素预测来编码图片。然而,在一些替代实现方式中,帧内图片可用于通过将当前图片中的部段匹配到同一个图片内的另一个偏移部段来进行帧间预测。在两个部段之间的偏移可被编码为运动矢量MV’,所述运动矢量可用于406处的像素重建。作为示例,编码器可能会试图将帧内图片中的块或宏块与同一个图片中的某个其他偏移部段进行匹配,然后将这两者之间的偏移编码为运动矢量。之后可使用编解码器对“帧间”图片的普遍的运动矢量补偿来对“帧内”图片进行运动矢量补偿。某些现有的编解码器具有可将两个块或宏块之间的偏移转换为运动矢量的功能,可在所述功能之后进行406处的像素重建。然而,对于帧内图片的编码,这些功能常规上是关闭的。在一些替代实现方式中,可指示编解码器不对帧内图片的编码关闭此类“帧间”图片功能。
如本文所使用,像素重建指代在将参考图像变换为当前处理图像的方面描述图片的技术。像素重建406的输出有时被称为“解码的像素”。一般而言,像素重建406在实现编码过程400的编码器内充当局部解码器。具体地,像素重建406包括帧间预测IP1和(任选地)帧内预测IP2,以使用来自图像压缩404的运动矢量MV或MV’以及来自参考列表中的图片的参考像素来获取预测像素PP。使用来自图像压缩404的变换系数407进行逆量化和逆变换IQX产生有损残余像素405L,所述有损残余像素被添加到预测像素PP以生成解码的像素409。解码的像素409插入到参考图片中,并且可供用于当前处理图片401的后续部段的图像压缩404和像素重建406中。在已插入解码的像素之后,参考图片中的未解码的像素可进行填充402。
作为示例而非限制,在一种类型的被称为块运动补偿(BMC)的运动补偿中,可将每个图像划分为像素块(例如,16×16像素的宏块)。从参考帧中的相等大小的块预测每个块。除了转移到预测块的位置,不以任何方式对块进行变换。这种转移由运动矢量MV表示。为了利用相邻的块矢量之间的冗余(例如,对于被多个块覆盖的单个移动对象),常见的是仅对比特流中的当前运动矢量与先前运动矢量之间的差异进行编码。这种差分过程的结果是在数学上等于能够平移的全局运动补偿。进一步顺着编码流水线进行下去,方法400可任选地使用熵编码408来利用运动矢量围绕零矢量的所得统计分布以减小输出大小。
块运动补偿将当前编码图像分割为不重叠的块,并且计算指示这些块来自于参考图像中何处的运动补偿矢量。参考块典型地在源帧中重叠。一些视频压缩算法从参考图像列表403中的若干不同参考图像的碎片中拼接出当前图像。关于编码和解码方法的更多信息可参见共同拥有的美国专利号8,711,933,所述专利引用的方式并入本文。
根据本公开的各方面,可将运动矢量MV(和/或帧内预测模式运动矢量MV’)以及变换系数407(在本文中被统称为编码参数)提供给第二神经网络420。如上文所论述,训练第二神经网络以从当前部段预测下一个部段的编码参数。一旦已作出预测,就在421处通过将由神经网络420提供的预测编码参数与下一个部段的实际编码参数进行比较来确定预测编码参数预测误差。作为示例而非限制,预测误差可为从下一个部段的实际编码参数减去预测编码参数。如果减法的结果是零,则编码参数已被准确地预测。准确地预测的编码参数可从编码舍弃并且不会被包括在编码的图片411中或传递到熵编码器408。如果编码误差确定的结果是非零数值,则编码误差可(任选地)使用熵编码408进行编码并且被包括在编码的图片411中。根据本公开的替代方面,如果编码误差的结果是非零数值,则正确编码参数可(任选地)用熵编码408进行编码并且被包括在编码的图片411中。作为示例而非限制,预测误差可能被包括在切片数据中或者编码的图片411的标头或标头的部分中。
应注意到,对于第一部段或若干个部段,实际编码参数可被包括在编码的图片411中。确定预测误差421可包括确定部段是否是初始部段或图片组的部段,并且如果确定部段是初始部段或图片组的部段,则所述部段的编码参数可(任选地)进行熵编码并且不经修改就被包括在编码的图片411中。这允许包括在解码系统中的神经网络具有一个正确起点以预测编码参数。另外地,初始编码参数可包括在标头中的标记,所述标记表明编码参数是未更改的初始编码参数还是预测误差。
在本公开的替代实施方案中,向第一神经网络提供第二神经网络的结果和(任选地)预测误差。训练第一神经网络以从当前部段和/或前一个部段和下一个部段的编码参数预测缺失的编码参数。第一神经网络可使用来自第二神经网络的预测编码参数和(任选地)预测误差来产生对编码参数的更准确的预测。在一些实施方案中,为了协助这个过程,如上文所论述,还可向第一神经网络提供实际编码参数(通过上文描述的过程来确定),所述实际编码参数包括“之前”和“之后”的参数两者。类似于第二神经网络的结果,可确定预测误差并且将其包括在编码的图片中。在替代实施方案中,可对编码的图片的部段进行标记以使用第一NN进行预测。在其他替代实施方案中,可使用某种算法来确定将使用第一NN预测哪些部段的哪些编码参数。作为示例而非限制,可由第一NN确定一种编码参数类型,同时由第二NN确定其他编码参数或者可使用第一NN来预测每个其他部段。在一些替代实施方案中,某些部段的实际编码参数可被包括在编码的图片中以使用第一NN来实现预测。在其他替代实现方式中,可以分层方式使用双向预测第一NN。例如,可由第二(预测)NN预测部段0、4、8...。部段0和4两者之后可用作第一NN的输入来预测部段2。然后,部段0和2用作另一个双向预测神经网络的输入来预测部段1。部段2和4由又另一个双向预测NN使用来预测部段3。
填充402、图像压缩404和像素重建406、预测误差确定421以及(任选的)熵编码408的结果是编码的图片411。
神经网络增强型解码器系统
解码器系统使用训练后的第二NN来从如上文所论述的编码的比特流预测正确编码参数。最初,编码的比特流可用熵解码器解码,从而允许从比特流提取参数值。应注意到,视频流的最先一个部段或若干个部段的参数值可能具有比特流中所包括的所有视频编码参数;这允许NN准确地预测下一个部段的接下来的参数值。作为示例而非限制,编码参数可能被包括在编码的切片数据中或者比特流中的每个视频帧的帧标头中,或比特流中的任何其他合适的位置中。编码的比特流还可包括预测误差流,所述预测误差流可与由NN作出的预测组合来生成下一个部段的校正的编码参数集。预测误差可例如被编码到图片的标头信息中。
在替代实施方案中,由第二NN生成的预测结果加上预测误差将被用作第一NN的输入。第一NN可使用由第二NN预测的参数来生成对参数的更准确的预测。一般而言,第二NN进行过多预测会降低预测准确性。类似地,由第一NN作出过多预测会减少第一NN和第二NN两者的可用输入参数的数量,并且这也会降低预测准确性。重要的是找出第一NN和第二NN的最优组合来实现最佳的总体预测准确性。作为示例而非限制,第二NN可用于预测DCT系数。然后,之前和之后的DCT系数两者都可供第一NN用于进行其他参数预测。应注意到,第一NN仅可将可用参数用作输入。即使所有DCT系数都可用,也并不是未来的所有参数都可在预测期间使用。继续所述示例,当MB1的MB编码类型是第一NN的预测目标时,MB0的MB编码类型是可用的,但是MB2的MB编码类型是不可用的。然而,由第二NN预测的MB2的DCT系数是可用的,因此第一NN将使用MB0的MB编码类型和MB2的DCT系数来预测MB1的MB编码类型。在其他替代实施方案中,解码器可接收下一个部段的实际编码参数,并且使用第一NN来用下一个部段的所接收的实际编码参数和前一个部段的所确定的参数对当前部段进行预测。如上文所论述,第一NN是“双向预测的”并且第二NN是“预测的”。因此,第二NN预测结果可用作第一NN的输入。但是,第一NN结果无法用作第二NN的输入。
根据本公开的各方面,校正的编码参数集之后可用于解码过程中。
解码方法
图5示出了可与本发明的实施方案结合使用的用于解码流式数据501的方法500中的可能的过程流的示例。这个特定示例示出了用于例如使用AVC(H.264)标准进行视频解码的过程流。编码的流式数据501最初可存储在缓冲区中。在编码的流式数据501(例如,视频数据比特流)已通过网络,例如互联网传送的情况下,数据501最初可经历502处所指示的被称为网络抽象层(NAL)解码的过程。NAL解码可从数据501移除被添加来协助传输数据的信息。这种信息(被称为“网络包封器”)可将数据501识别为视频数据,或者指示比特流的开头或结尾、数据对准的比特数和/或关于视频数据自身的元数据。这种元数据可包括在标头中的将特定的编码的帧识别为两个或更多个连续的相继帧的序列中的第一编码的帧的比特,所述相继帧包含可用于形成补片帧的帧内编码子部段。元数据还可包括前述在标头中的标记,所述标记表明编码参数是未更改的初始编码参数还是预测误差。
此外,作为示例,网络包封器可包括关于数据501的信息,包括例如分辨率、图片显示格式、用于显示数据的调色板变换矩阵、有关每个图片中的比特数量的信息、切片或宏块以及用于较低级别解码中的信息,例如指示切片的开头或结尾的数据。此信息可用于确定在单个部段中传递到每个任务组的宏块的数量。
由于其复杂性,NAL解码通常在图片和切片级别上完成。用于NAL解码的最小NAL缓冲区通常是切片大小的。幸运的是,NAL解码过程502涉及相对少量的循环。因此,NAL解码过程502可在单个处理器上完成。
在一些实施方案中,在502处进行NAL解码之后,图5所示的剩余解码可在本文中被称为视频编码层(VCL)解码504、运动矢量(MV)重建510和图片重建514的三个不同的线程组或任务组中实现。图片重建任务组514可包括像素预测和重建516以及后处理520。这些任务组可基于数据依赖性而选择,使得每个任务组可完成其对图片(例如,帧或字段)或部段中的所有宏块的处理,之后宏块被发送到下一个任务组以进行后续处理。
某些编解码器可使用涉及将像素信息从空间域变换为频域的数据压缩形式。其中一个这样的变换被称为离散余弦变换(DCT)。用于这种压缩数据的解码过程涉及从频域回到空间域的逆变换。在使用DCT压缩数据的情况下,逆过程被称为逆离散余弦变换(IDCT)。变换数据有时被量化以减少用于表示离散变换数据中的数字的比特数量。例如,数字1、2、3可全部映射到2,并且数字4、5、6可全部映射到5。为了对数据进行解压缩,在执行从频域到空间域的逆变换之前使用被称为逆量化(IQ)的过程。对于同一个切片内的宏块,VCL IQ/IDCT解码过程504的数据依赖性典型地是处于宏块级别。因此,由VCL解码过程504产生的结果可在宏块级别缓存。
VCL解码504通常包括被称为熵解码506的用于对VCL语法进行解码的过程。诸如AVC(H.264)的许多编解码器使用被称为熵编码的编码层。熵编码是将码分配给信号以便使码长与信号的概率匹配的编码方案。通常,熵编码器用于通过用由与概率的负对数成比例的码表示的符号替换由等长码表示的符号来压缩数据。AVC(H.264)支持两种熵编码方案,即上下文自适应可变长度编码(CAVLC)和上下文自适应二进制算术编码(CABAC)。由于CABAC倾向于提供比CAVLC多约10%的压缩,因此在生成AVC(H.264)比特流时,CABAC受到许多视频编码器的青睐。对AVC(H.264)编码的数据流的熵层进行解码可能是计算密集的,并且可能会对使用通用微处理器对AVC(H.264)编码的比特流进行解码的装置提出挑战。为了对Blu-ray或HD-DVD标准所针对的高比特率流进行解码,硬件需要是非常快速且复杂的,并且总体系统成本可能是相当高的。这个问题的一个常见解决方案是为CABAC解码设计专用硬件。可选地,熵解码可在软件中实现。熵解码的软件实现方式的示例可参见Xun Xu的2006年8月25日提交且名称为“ENTROPY DECODING METHODS AND APPARATUS”(代理人案卷号SCEA06054US00)的共同拥有的美国专利号8,7494,09,所述专利以引用的方式并入本文。
除了熵解码506之外,VCL解码过程504还可涉及如508处所指示的逆量化(IQ)和/或逆离散余弦变换(IDCT)。这些过程可对来自宏块的标头509和数据进行解码。解码的标头509可用于协助对相邻宏块的VCL解码。
根据本发明的各方面,可将视频元数据(例如,切片数据)的最初解码的标头或部分提供给神经网络505,所述神经网络可预测视频元数据的后续标头或部分。之后可将视频元数据的部分插入到标头509中以用于解码过程。另外地,根据本发明,VCL解码过程可从解码的标头对每个后续部段的编码误差进行解码,所述编码误差可与视频元数据组合来校正由神经网络505作出的不正确预测。视频元数据可包括前述在标头中的标记,所述标记表明编码参数是未更改的初始编码参数还是预测误差。在一些实现方式中,可将来自神经网络的预测插入到标头509中。
VCL解码504和神经网络预测505可以宏块级别数据依赖性频率实现。具体地,同一个切片内的不同宏块可在神经网络预测期间并行进行VCL解码,并且结果可发送到运动矢量重建任务组510以进行进一步处理。
因此,图片或部段中的所有宏块都可进行运动矢量重建510。MV重建过程510可涉及使用来自给定宏块的标头511和/或协同定位的宏块标头513进行运动矢量重建512。运动矢量描述了图片内的表观运动。此类运动矢量允许基于对在先图片的像素的了解以及那些像素在图片间的相对运动而重建图片(或其部分)。一旦恢复了运动矢量,就可在516处使用基于来自VCL解码过程504的残余像素以及来自MV重建过程510的运动矢量的过程来重建像素。MV的数据依赖性频率(以及并行级别)取决于MV重建过程510是否涉及来自其他图片的协同定位的宏块。对于不涉及来自其他图片的协同定位的MB标头的MV重建,MV重建过程510可在切片级别或图片级别上并行实现。对于涉及协同定位的MB标头的MV重建,数据依赖性频率是处于图片级别并且MV重建过程510可在切片级别上并行实现。
运动矢量重建510的结果发送到图片重建任务组514,这可在图片频率级别上并行化。在图片重建任务组514内,图片或部段中的所有宏块可结合解块520一起进行像素预测和重建516。像素预测和重建任务516和解块任务520可并行化来提高解码的效率。这些任务可基于数据依赖性在宏块级别上在图片重建任务组514内并行化。例如,可对一个宏块执行像素预测和重建516,并且接着执行解块520。来自由解块520获得的解码的图片的参考像素可用于对后续宏块进行像素预测和重建516。像素预测和重建518产生解码的部段519(例如,解码的块或宏块),所述解码的部段包括可用作后续宏块的像素预测和重建过程518的输入的相邻像素。像素预测和重建516的数据依赖性允许在宏块级别上对同一个切片中的宏块进行某种程度的并行处理。
像素预测可使用来自被解码为参考像素的当前图片之内的像素,而不是来自已经解码的图片的像素。尚未被解码的任何参考像素可由填充像素替换,可从当前图片内已经被解码的像素确定所述填充像素。如果没有像素被解码,则可如上文所论述任意地确定填充像素的值。
后处理任务组520可包括解块滤波器522,所述解块滤波器应用于解码的部段519中的块,以通过使在使用块编码技术时可能形成于块之间的锐利边缘平滑来提高视觉质量和预测性能。解块滤波器522可用于改进所得的解块的部段524的表观。
解码的部段519或解块的部段524可提供相邻像素以用于对相邻宏块进行解块。此外,包括来自当前解码图片的部段的解码的部段519可为后续宏块的像素预测和重建518提供参考像素。正是在此阶段期间,来自当前图片之内的像素可任选地如上文所论述用于所述同一个当前图片内的像素预测,而与图片(或其子部段)是帧间编码还是帧内编码无关。解块520可在宏块级别上对同一个图片中的宏块并行化。
在后处理520之前产生的解码的部段519和后处理的部段524可存储在同一个缓冲区,例如取决于所涉及的特定的编解码器的输出图片缓冲区中。应注意到,解块是处于H.264的后处理滤波器。因为H.264将预解块宏块用作相邻宏块帧内预测的参考,并且将后解块宏块用于未来图片宏块帧间预测。由于预解块像素和后解块像素两者都用于预测,因此解码器或编码器必需缓存预解块宏块和后解块宏块两者。对于大多数低成本的消费者应用,预解块图片和后解块图片共享同一个缓冲区以减少存储器使用。对于在日期上早于H.264的标准,诸如MPEG2或MPEG4,除了MPEG4 part 10(应注意:H.264也被称为MPEG4 part10)之外,仅将预后处理宏块(例如,预解块宏块)用作其他宏块预测的参考。在此类编解码器中,预滤波的图片可能不与后滤波的图片共享同一个缓冲区。
因此,对于H.264,在像素解码之后,解码的部段519保存在输出图片缓冲区中。稍后,后处理的部段524替换输出图片缓冲区中的解码的部段519。对于非H.264情况,解码器仅将解码的部段519保存在输出图片缓冲区中。在显示时间完成后处理,并且后处理输出可能不共享与解码器输出图片缓冲区相同的缓冲区。
对于大多数多处理器硬件平台,处理器间数据访问延迟短于视频图片之间的时间间隔。然而,只有少数并行处理引擎可实现快于宏块处理速度的处理器间数据传送。可接受的是使两个任务以图片频率交换数据。基于上文相对于图3描述的图片频率依赖性,有可能将解码过程500分解为五个单独的任务。这些任务是A)NAL解码502和解码器内部管理,B)VCL语法解码和IQ/IDCT 504,C)运动矢量重建510和D)像素预测和重建516以及E)解块520。
一般而言,NAL解码可以图片或切片级别数据依赖性频率完成。对于诸如AVC(H.264)的编解码器,NAL解码302中所涉及的数据依赖性可能是相当复杂的,但是总的NAL解码过程502可能采用相对少量的循环。因此,可能更有效的是,在单个处理器上实现所有NAL解码502,而不是试图将此过程并行化。运动矢量重建任务510典型地采用约为用于VCL语法解码和IQ/IDCT504、像素预测和重建516以及解块520的处理器循环的十分之一那么多的处理器循环。后三个任务的计算复杂性相当相似。然而,在这三个大的循环任务之间的执行循环分配不同于对不同的编码的视频流的执行循环分配。
对于一些编解码器,在VCL语法解码和IQ/IDCT 504内,在每个切片内仅存在宏块级别数据依赖性,但是由于神经网络预测的性质,在切片之间存在更大的依赖性。在一些实施方案中,依赖性因在切片边界内执行第二和第一NN预测而受到限制。这种方法会极大地限制输入参数的数量并且降低预测准确性,但是会提供更好的容错性。运动矢量重建任务510的输入取决于VCL语法解码和IQ/IDCT 504的输出。像素预测和重建任务516采用VCL语法解码和IQ/IDCT任务504和运动矢量重建任务510的输出作为输入。在运动矢量重建任务510以及像素预测和重建任务518内,存在宏块级别数据依赖性,但是在一个图片内的切片独立于彼此。
像素预测和重建任务516可涉及运动补偿。像素预测和重建任务516中的图片依赖性可能是由这种运动补偿引起的。运动补偿指代将残余像素添加到通过运动矢量获取的参考像素。运动补偿的输入是运动矢量和残余像素。运动补偿的输出是解码的像素。如上文所论述,运动补偿是通常使用先前解码的图片来预测当前图片的过程。在运动补偿过程中,使用被称为运动矢量的二维矢量来参考先前解码的图片中的像素。运动矢量重建任务510中的图片级别依赖性是由直接预测引起的。在直接预测中,使用先前解码的宏块的运动矢量来计算当前宏块的运动矢量。在AVC解码器中,先前解码的参考图片是解块任务520的输出。由于编码标准所定义的对运动矢量范围的限制,并不是先前图片中的所有像素都可用于预测当前图片中的某些宏块。例如,AVC级别4.1流的运动矢量范围在垂直方向上是-512至511.75个像素,并且在水平方向上是-1024至1023.75个像素。如果图片大小是1920X1088像素,则参考图片中的约四分之一的像素可用于预测角部宏块。相比之下,参考图片中几乎所有的像素都可用于预测中心宏块。
应注意,在图5所示的示例中,在VCL解码和IQ/IDCT任务508与任何其他任务之间不存在依赖性循环。因此,此任务可被合并到VCL解码任务504、运动矢量重建任务510或像素预测和重建任务516中的任一者或全部中以在可用处理器之间平衡任务量。由于一些块可能不具有DCT系数,因此将IQ/IDCT任务508合并到块语法解码循环中可允许解码器仅对解码的块进行IQ/IDCT,并且减少分支数量。在已由NN重建所有参数之后,仍可在多个处理器上并行地完成常规的解码过程。在一些实现方式中,基于NN的参数预测可使用流水线与另一个解码过程并行地完成。
上文相对于图3描述的解码方法可在单个线程中实现。可选地,图3的解码方法可由能够实现并行处理的处理模块在多个线程中实现。特别地,可并行地处理图片的不同的部段。如本文所使用,并行处理指的是在一定程度上,两个或更多个不同的任务在时间上重叠的处理。
计算装置
图6示出了根据本公开的各方面的系统。所述系统可包括耦合到用户输入装置602的计算装置600。用户输入装置602可为控制器、触摸屏、传声器、键盘、鼠标、光笔或者允许用户将控制数据输入到所述系统中的其他装置。
计算装置600可包括一个或多个处理器单元603,所述一个或多个处理器单元可根据熟知的架构,例如像单核、双核、四核、多核、处理器-协处理器、单元处理器等来配置。计算装置还可包括一个或多个存储器单元604(例如,随机存取存储器(RAM)、动态随机存取存储器(DRAM)、只读存储器(ROM)等)。
处理器单元603可执行一个或多个程序,所述一个或多个程序的部分可存储在存储器604中,并且处理器603可例如通过经由数据总线605访问存储器来可操作地耦合到所述存储器。所述程序可被配置为实现对第一NN 610的训练。另外地,存储器604可包含实现对第二NN 621的训练的程序。存储器604也可包含用于对视频进行编码608和/或对视频进行解码622的程序。存储器604还可包含软件模块,诸如第一NN模块610和第二NN模块621。NN的总体结构和概率也可作为数据618存储在大容量存储615中。处理器单元603还被配置为执行存储在大容量存储615或存储器604中的一个或多个程序617,这致使处理器执行根据特征数据训练第一NN 610的方法200和/或训练第二NN的方法300。作为NN训练过程的一部分,所述系统可生成神经网络。这些神经网络可在存储器604中存储为第一NN模块621或第二NN模块610的一部分。完成的NN可存储在存储器604中或作为数据618存储在大容量存储615中。程序617(或其部分)还可被配置为例如通过适当的编程来根据图4和图5的方法对未编码的视频进行编码或者对编码的视频进行解码。
计算装置600还可包括熟知的支持电路,诸如输入端/输出端(I/O)607、电路、电源(P/S)611、时钟(CLK)612和高速缓存613,它们可例如经由总线605与所述系统的其他部件通信。计算装置可包括网络接口614。处理器单元603和网络接口614可被配置为经由合适的网络协议,例如适合于个人局域网(PAN)的蓝牙而实现局域网(LAN)或PAN。计算装置可任选地包括大容量存储装置615,诸如磁盘驱动器、CD-ROM驱动器、磁带驱动器、闪存等,并且大容量存储装置可存储程序和/或数据。计算装置还可包括用户界面616以有助于所述系统与用户之间的交互。用户界面可包括显示监视器、头戴式显示器、七段显示器或其他装置。
计算装置600可包括网络接口614以有助于经由电子通信网络620通信。网络接口614可被配置为通过局域网和诸如互联网的广域网来实现有线或无线通信。装置600可通过网络620经由一个或多个消息包发送和接收数据和/或对文件的请求。通过网络620发送的消息包可暂时地存储在存储器604中的缓冲区609中。
虽然上文是对本发明的优选实施方案的完整描述,但是有可能使用各种替代方案、修改和等效形式。因此,本发明的范围不应参考以上描述来确定,而是相反地应参考所附权利要求连同其等效形式的全部范围一起来确定。本文描述的任何特征(无论是否优选)都可与本文描述的任何其他特征(无论是否优选)进行组合。在以下的权利要求中,除非另外明确说明,否则不定冠词“一个/种(A或An)”指代所述冠词之后的物品的一个或多个的数量。所附权利要求不应被解释为包括手段附加功能限制,除非在给定权利要求中使用短语“用于…的手段”明确叙述了这种限制。

Claims (20)

1.一种用于视频编码的方法,所述方法包括:
a)用视频编码器确定来自未编码的视频流的某个部段的视频编码参数;
b)将所述部段的所述视频编码参数提供给一个或多个经训练的神经网络,其中所述一个或多个经训练的神经网络被训练来预测其他视频编码参数;
c)用所述一个或多个经训练的神经网络从所述提供的视频编码参数预测其他视频编码参数;
d)确定来自所述一个或多个神经网络的所述预测的其他视频编码参数与来自所述视频编码器的实际编码参数的预测误差;
e)在没有不具有预测误差的部段的编码参数的情况下对所述未编码的视频流进行编码。
2.如权利要求1所述的方法,其中d)还包括对所述视频流的具有预测误差的部段的所述预测误差进行编码。
3.如权利要求1所述的方法,其中d)还包括对所述视频流的具有预测误差的部段的正确编码参数进行编码。
4.如权利要求1所述的方法,其中所述一个或多个经训练的神经网络包括预测神经网络和双向预测神经网络。
5.如权利要求4所述的方法,其中c)包括将由所述预测神经网络预测的编码参数作为输入提供给所述双向预测神经网络。
6.如权利要求1所述的方法,其中始终对所述视频流的初始部段的编码参数进行编码。
7.如权利要求1所述的方法,其中在b)中提供的所述视频编码参数和在c)中作出的预测被限制于切片边界内以移除切片之间的依赖性。
8.一种用于用神经网络对视频流进行解码的方法,所述方法包括:
a)接收编码的视频流,其中所述编码的视频流具有所述编码的视频流中的至少一个部段的视频编码参数;
b)从所述编码的视频流提取所述至少一个部段的所述视频编码参数;
c)将所述至少一个部段视频编码参数提供给一个或多个神经网络,所述一个或多个神经网络被训练来预测其他视频编码参数;
d)用所述一个或多个神经网络从所述提供的视频编码参数预测所述其他视频编码参数;
e)使用所述预测的视频编码参数和所述编码的视频流对所述视频流进行解码;
f)在显示器上显示所述解码的视频流。
9.如权利要求8所述的方法,其中所述一个或多个神经网络包括预测神经网络和双向预测神经网络。
10.如权利要求9所述的方法,其中d)包括将由所述预测神经网络预测的编码参数作为输入提供给所述双向预测神经网络。
11.如权利要求8所述的方法,其中b)还包括从所述编码的视频流提取预测误差。
12.如权利要求11所述的方法,其中d)还包括校正具有所述预测误差的所述预测的视频编码参数。
13.如权利要求8所述的方法,其中在b)中提供的所述视频编码参数和在c)中作出的预测被限制于切片边界内以移除切片之间的依赖性。
14.一种用于视频编码的系统,所述系统包括:
处理器;
神经网络,所述神经网络被训练来预测参数值;
存储器,所述存储器可操作地耦合到所述处理器;
所述存储器在其上体现有用于视频编码的指令,所述存储器还包括用于执行用于改进视频编码的方法的指令,所述方法包括:
a)用视频编码器确定来自未编码的视频流的某个部段的视频编码参数;
b)将所述视频编码参数提供给一个或多个经训练的神经网络,其中所述神经网络被训练来预测其他视频编码参数;
c)用所述经训练的神经网络预测所述其他视频编码参数;
d)确定来自所述神经网络的所述预测的编码参数与来自所述视频编码器的实际编码参数的预测误差;
e)在没有不具有预测误差的部段的编码参数的情况下对所述未编码的视频流进行编码。
15.如权利要求14所述的系统,其中所述一个或多个经训练的神经网络包括预测神经网络和双向预测神经网络。
16.如权利要求15所述的系统,其中c)包括将由所述预测神经网络预测的编码参数作为输入提供给所述双向预测神经网络。
17.一种用于视频解码的系统,所述系统包括:
处理器;
神经网络,所述神经网络被训练来预测编码参数值;
存储器,所述存储器可操作地耦合到所述处理器;
所述存储器在其上体现有用于视频解码的指令,所述存储器还包括用于执行用于改进视频解码的方法的指令,所述方法包括:
a)接收编码的视频流,其中所述编码的视频流具有所述编码的视频流中的至少一个部段的视频编码参数;
b)从所述编码的视频流提取所述至少一个部段的所述视频编码参数;
c)将所述至少一个部段的所述视频编码参数提供给一个或多个神经网络,其中所述神经网络被训练来预测其他视频编码参数;
d)用所述经训练的神经网络从所述至少一个部段的视频编码参数预测其他视频编码参数;
e)使用所述预测的视频编码参数和所述编码的视频流对所述视频流进行解码;
f)在显示器上显示所述解码的视频流。
18.如权利要求17所述的系统,其中所述一个或多个神经网络包括预测神经网络和双向预测神经网络。
19.如权利要求18所述的系统,其中d)包括将由所述预测神经网络预测的编码参数作为输入提供给所述双向预测神经网络。
20.如权利要求17所述的系统,其中b)还包括从所述编码的视频流提取预测误差,并且d).还包括校正具有所述预测误差的所述预测的下一个部段视频编码参数。
CN201980048796.9A 2018-06-19 2019-06-11 神经网络驱动型编解码器 Active CN112715027B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211111736.7A CN115623200B (zh) 2018-06-19 2019-06-11 神经网络驱动型编解码器

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/012,570 2018-06-19
US16/012,570 US10499081B1 (en) 2018-06-19 2018-06-19 Neural network powered codec
PCT/US2019/036589 WO2019245805A1 (en) 2018-06-19 2019-06-11 Neural network powered codec

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202211111736.7A Division CN115623200B (zh) 2018-06-19 2019-06-11 神经网络驱动型编解码器

Publications (2)

Publication Number Publication Date
CN112715027A CN112715027A (zh) 2021-04-27
CN112715027B true CN112715027B (zh) 2022-09-30

Family

ID=68695758

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980048796.9A Active CN112715027B (zh) 2018-06-19 2019-06-11 神经网络驱动型编解码器
CN202211111736.7A Active CN115623200B (zh) 2018-06-19 2019-06-11 神经网络驱动型编解码器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202211111736.7A Active CN115623200B (zh) 2018-06-19 2019-06-11 神经网络驱动型编解码器

Country Status (5)

Country Link
US (3) US10499081B1 (zh)
EP (2) EP3811614B1 (zh)
JP (4) JP6960548B2 (zh)
CN (2) CN112715027B (zh)
WO (1) WO2019245805A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10499081B1 (en) 2018-06-19 2019-12-03 Sony Interactive Entertainment Inc. Neural network powered codec
US11829869B2 (en) * 2018-07-25 2023-11-28 Servicenow Canada Inc. Multiple task transfer learning
US11334798B2 (en) * 2018-07-31 2022-05-17 Dell Products L.P. Configurable layered neural network engine for customer support
US10740901B2 (en) * 2018-12-17 2020-08-11 Nvidia Corporation Encoder regularization of a segmentation model
US10965945B2 (en) * 2019-03-29 2021-03-30 Bitmovin, Inc. Optimized multipass encoding
WO2020208913A1 (ja) * 2019-04-11 2020-10-15 株式会社Nttドコモ ネットワークノード
CN111222561B (zh) * 2019-12-31 2023-06-09 深圳云天励飞技术股份有限公司 图像识别神经网络处理方法、装置与系统
US11240465B2 (en) * 2020-02-21 2022-02-01 Alibaba Group Holding Limited System and method to use decoder information in video super resolution
US20220094977A1 (en) * 2020-09-23 2022-03-24 Electronics And Telecommunications Research Institute Method, apparatus and storage medium for image encoding/decoding
WO2022116085A1 (zh) * 2020-12-03 2022-06-09 Oppo广东移动通信有限公司 编码方法、解码方法、编码器、解码器以及电子设备
WO2022116165A1 (zh) * 2020-12-04 2022-06-09 深圳市大疆创新科技有限公司 视频编码方法、解码方法、编码器、解码器以及ai加速器
US20220353521A1 (en) * 2021-04-30 2022-11-03 Tencent America LLC Method and apparatus for content-adaptive online training in neural image compression
CN113783876B (zh) * 2021-09-13 2023-10-03 国网数字科技控股有限公司 基于图神经网络的网络安全态势感知方法及相关设备
CN113743595B (zh) * 2021-10-09 2023-08-15 福州大学 基于物理驱动自编码器神经网络的结构参数识别方法
CN115407874B (zh) * 2022-08-18 2023-07-28 中国兵器工业标准化研究所 一种基于神经网络的vr维修训练操作熟练度预测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819525B1 (en) * 2012-06-14 2014-08-26 Google Inc. Error concealment guided robustness
CN107734333A (zh) * 2017-09-29 2018-02-23 杭州电子科技大学 一种利用生成网络提高视频错误隐藏效果的方法
CN107925762A (zh) * 2015-09-03 2018-04-17 联发科技股份有限公司 基于神经网络的视频编解码处理方法和装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553566B1 (en) * 1998-08-27 2003-04-22 X Out Corporation Viewer controlled multi-function system for processing television signals
KR100529311B1 (ko) * 2003-01-21 2005-11-17 삼성전자주식회사 신경 회로망을 이용하여 가변 길이 부호화 비트 스트림의길이를 선택하는 장치 및 방법
US8749409B2 (en) 2006-08-25 2014-06-10 Sony Computer Entertainment Inc. Entropy decoding methods and apparatus using most probable and least probable signal cases
US8218641B2 (en) 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture encoding using same-picture reference for pixel reconstruction
JP2009111691A (ja) * 2007-10-30 2009-05-21 Hitachi Ltd 画像符号化装置及び符号化方法、画像復号化装置及び復号化方法
US8711933B2 (en) 2010-08-09 2014-04-29 Sony Computer Entertainment Inc. Random access point (RAP) formation using intra refreshing technique in video coding
US8787459B2 (en) * 2010-11-09 2014-07-22 Sony Computer Entertainment Inc. Video coding methods and apparatus
GB201603144D0 (en) * 2016-02-23 2016-04-06 Magic Pony Technology Ltd Training end-to-end video processes
CN116546221A (zh) * 2016-02-05 2023-08-04 渊慧科技有限公司 使用神经网络压缩图像
US10499056B2 (en) * 2016-03-09 2019-12-03 Sony Corporation System and method for video processing based on quantization parameter
WO2017201506A1 (en) 2016-05-20 2017-11-23 Google Llc Training neural networks using synthetic gradients
US10121103B2 (en) * 2016-12-09 2018-11-06 Cisco Technologies, Inc. Scalable deep learning video analytics
US11593632B2 (en) * 2016-12-15 2023-02-28 WaveOne Inc. Deep learning based on image encoding and decoding
JP2018125718A (ja) * 2017-02-01 2018-08-09 日本放送協会 モード予測情報生成装置およびプログラム
US10382770B2 (en) * 2017-02-06 2019-08-13 Google Llc Multi-level machine learning-based early termination in partition search for video encoding
CN107396124B (zh) * 2017-08-29 2019-09-20 南京大学 基于深度神经网络的视频压缩方法
US10721471B2 (en) * 2017-10-26 2020-07-21 Intel Corporation Deep learning based quantization parameter estimation for video encoding
US10499081B1 (en) 2018-06-19 2019-12-03 Sony Interactive Entertainment Inc. Neural network powered codec

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819525B1 (en) * 2012-06-14 2014-08-26 Google Inc. Error concealment guided robustness
CN107925762A (zh) * 2015-09-03 2018-04-17 联发科技股份有限公司 基于神经网络的视频编解码处理方法和装置
CN107734333A (zh) * 2017-09-29 2018-02-23 杭州电子科技大学 一种利用生成网络提高视频错误隐藏效果的方法

Also Published As

Publication number Publication date
US11032569B2 (en) 2021-06-08
JP2022133346A (ja) 2022-09-13
JP7336004B2 (ja) 2023-08-30
US20200084473A1 (en) 2020-03-12
EP3811614B1 (en) 2024-03-06
JP2021522756A (ja) 2021-08-30
CN112715027A (zh) 2021-04-27
US10499081B1 (en) 2019-12-03
US20210297695A1 (en) 2021-09-23
EP3811614A1 (en) 2021-04-28
EP4171032A2 (en) 2023-04-26
EP4171032A3 (en) 2023-06-07
JP6960548B2 (ja) 2021-11-05
JP7098805B2 (ja) 2022-07-11
US11432008B2 (en) 2022-08-30
WO2019245805A1 (en) 2019-12-26
EP3811614A4 (en) 2022-08-24
CN115623200A (zh) 2023-01-17
JP2023126970A (ja) 2023-09-12
JP2022003775A (ja) 2022-01-11
US20190387252A1 (en) 2019-12-19
CN115623200B (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
CN112715027B (zh) 神经网络驱动型编解码器
CN109997361B (zh) 用于视频译码的低复杂度符号预测
US9872018B2 (en) Random access point (RAP) formation using intra refreshing technique in video coding
US8787459B2 (en) Video coding methods and apparatus
CN106797464B (zh) 用于视频编码和解码中的矢量编码的方法和装置
US8218641B2 (en) Picture encoding using same-picture reference for pixel reconstruction
US8218640B2 (en) Picture decoding using same-picture reference for pixel reconstruction
JP2018533261A (ja) 画像予測方法および装置
CN111819853A (zh) 变换域中预测的信令残差符号
GB2488830A (en) Encoding and decoding image data
US8594189B1 (en) Apparatus and method for coding video using consistent regions and resolution scaling
CN107231557B (zh) 用于在视频编码中的高级帧内预测的递归块分区中的智能重排的编、解码方法及装置
US11212536B2 (en) Negative region-of-interest video coding
US8891616B1 (en) Method and apparatus for entropy encoding based on encoding cost
CN113259671B (zh) 视频编解码中的环路滤波方法、装置、设备及存储介质
CN115956363A (zh) 用于后滤波的内容自适应在线训练方法及装置
CN116349225A (zh) 用于逐块图像压缩中的去块的内容自适应在线训练方法和装置
CN116114248A (zh) 神经图像压缩中具有特征替换的内容自适应在线训练

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant