CN115442618A - 基于神经网络的时域-空域自适应视频压缩 - Google Patents

基于神经网络的时域-空域自适应视频压缩 Download PDF

Info

Publication number
CN115442618A
CN115442618A CN202210625548.XA CN202210625548A CN115442618A CN 115442618 A CN115442618 A CN 115442618A CN 202210625548 A CN202210625548 A CN 202210625548A CN 115442618 A CN115442618 A CN 115442618A
Authority
CN
China
Prior art keywords
video
compression
current video
neural network
unit
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.)
Pending
Application number
CN202210625548.XA
Other languages
English (en)
Inventor
张召宾
张莉
李跃
张凯
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.)
Lemon Inc Cayman Island
Original Assignee
Lemon Inc Cayman Island
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 Lemon Inc Cayman Island filed Critical Lemon Inc Cayman Island
Publication of CN115442618A publication Critical patent/CN115442618A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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
    • 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
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

本公开涉及基于神经网络的时域‑空域自适应视频压缩。公开了一种处理视频数据的机制。确定将基于端到端神经网络的视频编解码器应用到视频的当前视频单元。基于端到端神经网络的视频编解码器包括空域‑时域自适应压缩STAC组件,该空域‑时域自适应压缩STAC组件包括帧外推压缩FEC分支和图像压缩分支。通过基于端到端神经网络的视频编解码器执行当前视频单元和视频的比特流之间的转换。

Description

基于神经网络的时域-空域自适应视频压缩
相关申请的交叉引用
本专利申请要求Zhaobin Zhang等人于2021年6月3日提交的第63/196,332号美国临时专利申请的权益,该专利申请的名称为“基于神经网络的时域-空域自适应视频压缩”,其通过引用并入本文。
技术领域
本专利文档涉及数字视频处理。
背景技术
数字视频在互联网和其他数字通信网络中占最大的带宽使用量。随着能够接收和显示视频的连接用户设备数量增加,预计数字视频使用的带宽需求将继续增长。
发明内容
第一方面涉及一种处理视频数据的方法,包括:确定将基于端到端神经网络的视频编解码器应用到视频的当前视频单元,其中,所述基于端到端神经网络的视频编解码器包括空域-时域自适应压缩STAC组件,所述空域-时域自适应压缩STAC组件包括帧外推压缩FEC分支和图像压缩分支;以及通过所述基于端到端神经网络的视频编解码器执行所述当前视频单元和所述视频的比特流之间的转换。
可选地,在前述任一方面中,该方面的另一实施方式提供了基于所述当前视频单元的运动信息、所述当前视频单元的熵或者其组合,通过所述FEC分支和所述图像压缩分支之一来分配所述当前视频单元进行转换。
可选地,在前述任一方面中,该方面的另一实施方式提供了所述FEC分支采用多个编解码帧作为参考帧来预测所述当前视频单元,并且其中,所述比特流中包括所述参考帧和所述当前视频单元之间的运动信息的指示。
可选地,在前述任一方面中,该方面的另一实施方式提供了所述FEC分支采用多个编解码帧作为参考帧来预测所述当前视频单元,并且其中,所述比特流中不包括所述参考帧和所述当前视频单元之间的运动信息。
可选地,在前述任一方面中,该方面的另一实施方式提供了所述基于端到端神经网络的视频编解码器还包括双边预测学习压缩BPLC组件,其中,当所述当前视频单元为关键帧时,所述STAC组件执行对所述当前视频单元的所述转换,并且其中,当所述当前视频单元不是关键帧时,所述BPLC组件执行对所述当前视频单元的所述转换。
可选地,在前述任一方面中,该方面的另一实施方式提供了所述BPLC组件基于至少一个在前参考帧和至少一个在后参考帧对所述当前视频单元进行插值。
可选地,在前述任一方面中,该方面的另一实施方式提供了基于在前重构关键帧、在后重构关键帧、运动信息、多个参考帧或者其组合来预测所述当前视频单元。
可选地,在前述任一方面中,该方面的另一实施方式提供了所述基于端到端神经网络的视频编解码器选择多个帧间预测压缩网络之一应用于所述当前视频单元。
可选地,在前述任一方面中,该方面的另一实施方式提供了所述多个帧间预测压缩网络包括基于流的网络,所述基于流的网络通过推导光流来对所述当前视频单元进行编解码。
可选地,在前述任一方面中,该方面的另一实施方式提供了所述多个帧间预测压缩网络包括基于内核的网络,所述基于内核的网络通过将学习内核与一个或多个参考帧进行卷积以推导预测帧来对所述当前视频单元进行编解码。
可选地,在前述任一方面中,该方面的另一实施方式提供了对所述多个帧间预测压缩网络之一的所述选择包括在所述比特流中。
可选地,在前述任一方面中,该方面的另一实施方式提供了所述基于端到端神经网络的视频编解码器选择多个帧内预测压缩网络之一应用于所述当前视频单元。
可选地,在前述任一方面中,该方面的另一实施方式提供了所述基于端到端神经网络的视频编解码器使用块预测和帧预测的组合对所述当前视频单元进行编解码。
可选地,在前述任一方面中,该方面的另一实施方式提供了所述基于端到端神经网络的视频编解码器选择多个运动压缩网络之一应用于所述当前视频单元。
可选地,在前述任一方面中,该方面的另一实施方式提供了所述转换包括将所述当前视频单元编码成所述比特流。
可选地,在前述任一方面中,该方面的另一实施方式提供了所述转换包括从所述比特流解码所述当前视频单元。
第二方面涉及一种处理视频数据的装置,包括:处理器;以及其上具有指令的非暂时性存储器,其中,所述指令在由所述处理器执行时使所述处理器:确定将基于端到端神经网络的视频编解码器应用到视频的当前视频单元,其中,所述基于端到端神经网络的视频编解码器包括空域-时域自适应压缩STAC组件,所述空域-时域自适应压缩STAC组件包括帧外推压缩FEC分支和图像压缩分支;以及通过所述基于端到端神经网络的视频编解码器执行所述当前视频单元和所述视频的比特流之间的转换。
可选地,在前述任一方面中,该方面的另一实施方式提供了基于所述当前视频单元的运动信息、所述当前视频单元的熵或者其组合,通过所述FEC分支和所述图像压缩分支之一来分配所述当前视频单元进行转换。
可选地,在前述任一方面中,该方面的另一实施方式提供了所述基于端到端神经网络的视频编解码器还包括双边预测学习压缩BPLC组件,其中,当所述当前视频单元为关键帧时,所述STAC组件执行对所述当前视频单元的所述转换,并且其中,当所述当前视频单元不是关键帧时,所述BPLC组件执行对所述当前视频单元的所述转换。
第三方面涉及一种非暂时性计算机可读记录介质,存储由视频处理装置执行的方法生成的视频的比特流,其中,所述方法包括:确定将基于端到端神经网络的视频编解码器应用到所述视频的当前视频单元,其中,所述基于端到端神经网络的视频编解码器包括空域-时域自适应压缩STAC组件,所述空域-时域自适应压缩STAC组件包括帧外推压缩FEC分支和图像压缩分支;以及通过所述基于端到端神经网络的视频编解码器生成所述比特流。
为了清楚起见,上述任何一个实施例可与上述其他实施例中的任何一个或多个相结合,在本公开的范围内形成新的实施例。
从以下结合附图和权利要求的详细描述中,可以更清楚地理解这些和其他特征。
附图说明
为了更全面地理解本公开,现结合附图和详细描述参考以下简要说明,其中,相同或相似的附图标记表示相同或相似的部件。
图1为示出示例变换编解码方案的示意图。
图2为示出比较压缩方案的示意图。
图3为示出示例神经网络框架的示意图。
图4为示出帧间预测压缩的直接合成方案的示意图。
图5为示出帧间预测压缩的基于内核的方案的示意图。
图6为示出示例残差细化网络的示意图。
图7为示例视频处理系统的框图。
图8为示例视频处理装置的框图。
图9为示例视频处理方法的流程图。
图10为示出示例视频编解码系统的框图。
图11为示出示例编码器的框图。
图12为示出示例解码器的框图。
图13为示例编码器的示意图。
具体实施方式
首先应当理解的是,尽管下文提供了一个或多个实施例的说明性实施方式,但所公开的系统和/或方法可以使用任何数量的技术来实施,无论是当前已知的还是现有的。本公开不应以任何方式局限于以下示出的说明性实施方式、附图和技术,包括在此示出和描述的示例性设计和实施方式,而是可以在所附权利要求的范围内连同其全部等效范围内进行修改。
本专利文件涉及使用神经网络的视频压缩,并且更具体地,涉及用于随机访问场景的基于神经网络(基于NN)的视频压缩的空域-时域自适应压缩。所公开的机制还可以应用于混合压缩框架,其中,将基于神经网络的编解码工具集成到视频编解码标准的框架中,例如高效视频编解码(high efficiency video coding,HEVC)、通用视频编解码(versatile video coding,VVC)等。
所描述的技术涉及优化率失真(rate-distortion,R-D)性能的改进算法和方法。通常,所描述的技术支持基于神经网络的视频编解码框架中的时域自适应压缩,例如,通过为关键帧提供帧间预测压缩和/或帧内预测压缩模式和/或提供内容自适应压缩模式选择机制。例如,空域-时域自适应压缩可以去除关键帧中的时域相关性,这可以带来更好的R-D性能。此外,还可以在基本单元(basic unit,BU)级别执行空域-时域自适应压缩。例如,关键帧可以在块级别的帧间预测方案和帧内预测方案之间选择更优化的压缩方案。
深度学习正在多个领域发展,例如计算机视觉和图像处理。受深度学习技术成功应用于计算机视觉领域的启发,神经图像/视频压缩技术正在被研究以应用于图像/视频压缩技术。神经网络是基于神经科学和数学的跨学科研究而设计的。神经网络在非线性变换和分类方面表现出了强大的能力。基于神经网络的图像压缩算法示例与通用视频编解码(VVC)实现了相当的R-D性能,VVC是由联合视频专家团队(Joint Video Experts Team,JVET)与来自运动图片专家组(MPEG)和视频编解码专家组(VCEG)的专家共同开发的视频编解码标准。基于神经网络的视频压缩是一个积极发展的研究领域,其使得神经图像压缩的性能不断提高。然而,由于神经网络解决问题的固有困难,基于神经网络的视频编解码仍然是一个很大程度上未开发的学科。
现在讨论图像和/或视频压缩。图像/视频压缩通常是指将视频图像压缩成二进制编解码以方便存储和传输的一种计算技术。二进制编解码可以支持也可以不支持无损重构原始图像/视频。没有数据丢失的编解码被称为无损压缩,而允许有针对性地丢失数据的编解码被称为有损压缩。大多数编解码系统采用有损压缩,因为在大多数情况下无损重构不是必须的。通常,根据得到的压缩比和重构质量来评估图像/视频压缩算法的性能。压缩比与压缩产生的二进制编解码的数量直接相关,二进制编解码越少,压缩效果越好。重构质量是通过将重构的图像/视频与原始图像/视频进行比较来衡量的,相似度越高,重构质量越好。
图像/视频压缩技术可以分为视频编解码方法和基于神经网络的视频压缩方法。视频编解码方案采用基于变换的解决方案,其中,潜在变量(例如离散余弦变换(discretecosine transform,DCT)和小波系数)中的统计相关性被用于仔细地手工设计熵编解码,以对量化机制中的相关性进行建模。基于神经网络的视频压缩可以分为基于神经网络的编解码工具和基于端到端神经网络的视频压缩。前者作为编解码工具嵌入现有的视频编解码器中,仅作为框架的一部分,而后者是基于神经网络开发的独立框架,不依赖于视频编解码器。
一系列视频编解码标准已被开发以适应不断增长的可视内容传输需求。国际标准化组织(ISO)/国际电工委员会(IEC)有两个专家组,即联合图像专家组(JointPhotographic Experts Group,JPEG)和运动图片专家组(MPEG)。国际电信联盟(International Telecommunication Union,ITU)电信标准化部门(ITU-T)还有一个视频编解码专家组(VCEG),其负责图像/视频编解码技术的标准化。这些组织发布的有影响力的视频编解码标准包括联合图像专家组(JPEG)、JPEG 2000、H.262、H.264/高级视频编解码(Advanced Video Coding,AVC)和H.265/高效视频编解码(HEVC)。由MPEG和VCEG组成的联合视频专家团队(JVET)开发了通用视频编解码(VVC)标准。与HEVC相比,在相同的可视质量下,VVC报告的比特率平均降低了50%。
基于神经网络的图像/视频压缩/编解码也在开发中。示例的神经网络编解码网络架构相对较浅,并且此类网络的性能并不令人满意。基于神经网络的方法得益于丰富的数据和强大的计算资源的支持,因此在各种应用中得到了更好的利用。基于神经网络的图像/视频压缩已显示出有希望的改进,并被证实是可行的。然而,这项技术还远未成熟,需要克服许多挑战。
神经网络,也称为人工神经网络(artificial neural networks,ANN),是机器学习技术中使用的计算模型。神经网络通常由多个处理层组成,每一层由多个简单但非线性的基本计算单元组成。这种深度网络的一个好处是能够处理具有多个抽象级别的数据并将数据转换为不同类型的表示。由神经网络创建的表示不是手工设计的。相反,包含处理层的深度网络是使用通用机器学习程序从大量数据中学习的。深度学习消除了手工表示的必要性。因此,深度学习被认为特别适用于处理原生非结构化数据,例如声学和可视信号。此类数据的处理一直是人工智能领域长期存在的难题。
用于图像压缩的神经网络可以分为两类,包括像素概率模型和自动编码器模型。像素概率模型采用预测编解码策略。自动编码器模型采用基于变换的解决方案。有时,将这两种方法结合在一起。
现在讨论像素概率建模。根据Shannon的信息论,无损编解码的最优方法可以达到最小的编解码率,其表示为-log2p(x),其中p(x)为符号x的概率。算术编解码是一种无损编解码方法,被认为是最佳方法之一。给定一个概率分布p(x),算术编解码使得编解码率尽可能接近理论极限-log2p(x)而不考虑取整误差。因此,剩下的问题是确定概率,由于维数灾难,这对于自然图像/视频来说非常具有挑战性。维数灾难是指维数增加导致数据集变得稀疏的问题,因此随着维数的增加,需要快速增加的数据量来有效地分析和组织数据。
遵循预测编解码策略,对p(x)建模的一种方法是基于先前的观察,以光栅扫描顺序逐一预测像素概率,其中x是图像,可以表示如下:
p(x)=p(x1)p(x2|x1)…p(xi|x1,…,xi-1)…p(xm×n|x1,…,xm×n-1) (1)
其中,m和n分别是图像的高度和宽度。先前的观察也称为当前像素的上下文。当图像很大时,条件概率的估计可能会很困难。因此,一种简化的方法是限制当前像素的上下文范围如下:
p(x)=p(x1)p(x2|x1)…p(xi|xi-k,…,xi-1)…p(xm×n|xm×n-k,…,xm×n-1) (2)
其中,k是控制上下文范围的预定义常数。
需要说明的是,该条件还可以考虑其他颜色分量的样点值。例如,在对红色(R)、绿色(G)和蓝色(B)(RGB)颜色分量进行编解码时,R样点取决于先前编解码的像素(包括R、G和/或B样点),当前G样点可以根据先前编解码的像素和当前R样点进行编解码。此外,在对当前B样点进行编解码时,还可以考虑先前编解码的像素以及当前的R和G样点。
神经网络可以设计用于计算机视觉任务,也可以有效地解决回归和分类问题。因此,神经网络可用于在给定上下文x1,x2,…,xi-1的情况下估计p(xi)的概率。在示例的神经网络设计中,像素概率根据xi∈{-1,+1}用于二值图像。神经自回归分布估计器(neuralautoregressive distribution estimator,NADE)为像素概率建模而设计。NADE是一个具有单个隐藏层的前馈网络。在另一个示例中,前馈网络可以包括跳过隐藏层的连接。此外,还可以共享参数。这种神经网络用于对二值化的修正的国家标准与技术研究院(ModifiedNational Institute of Standards and Technology,MNIST)数据集进行实验。在一个示例中,NADE被扩展到实值NADE(real-valued NADE,RNADE)模型,其中,概率p(xi|x1,…,xi-1)由高斯混合推导出。RNADE模型前馈网络也具有单个隐藏层,但隐藏层采用重新缩放来避免饱和,并使用修正线性单元(rectified linear unit,ReLU)代替sigmoid。在另一个示例中,通过使用重新组织像素的顺序和更深的神经网络,NADE和RNADE得到改进。
设计先进的神经网络在改进像素概率建模方面发挥着重要作用。在示例的神经网络中,使用了多维长短期记忆(LSTM)。LSTM与条件高斯尺度混合的混合一起用于概率建模。LSTM是一种特殊的循环神经网络(recurrent neural network,RNN),可用于对序列数据进行建模。LSTM的空域变体也可用于图像。可以采用几种不同的神经网络,分别包括循环神经网络(RNN)和卷积神经网络(convolutional neural network,CNN),例如像素RNN(PixelRNN)和像素CNN(PixelCNN)。在PixelRNN中,使用了LSTM的两种变体,表示为行LSTM和对角双向LSTM(BiLSTM)。对角BiLSTM是专门为图像设计的。PixelRNN结合了残差连接来帮助训练具有多达12层的深度神经网络。在PixelCNN中,掩蔽卷积用于调整上下文的形状。PixelRNN和PixelCNN更专注于自然图像。例如,PixelRNN和PixelCNN将像素视为离散值(例如,0、1、...、255)并预测离散值上的多项分布。此外,PixelRNN和PixelCNN处理RGB颜色空间中的彩色图像。此外,PixelRNN和PixelCNN在较大规模图像数据集图像网络(ImageNet)上表现良好。在一个示例中,门控PixelCNN用于改进PixelCNN。门控PixelCNN实现了与PixelRNN相当的性能,但复杂性要低得多。在一个示例中,采用PixelCNN++对PixelCNN进行了以下改进:使用离散逻辑混合似然而不是256路多项分布;下采样用于捕获多种精度的结构;引入了额外的快捷连接以加快训练速度;正则化采用dropout;RGB组合为一个像素。在另一个示例中,PixelSNAIL将因果卷积与自注意力(self-attention)相结合。
上述大多数方法直接对像素域中的概率分布进行建模。一些设计还将概率分布建模为基于显式或潜在表示的条件。这样的模型可以表示为:
Figure BDA0003677175760000081
其中,h是附加条件,并且p(x)=p(h)p(x|h)表示建模分为无条件模型和条件模型。附加条件可以是图像标签信息或者高级别表示。
现在描述自动编码器。自动编码器经过降维训练,包括编码组件和解码组件。编码组件将高维输入信号转换为低维表示。低维表示可以具有减小的空域尺寸,但通道数量更多。解码组件从低维表示中恢复高维输入。自动编码器能够自动学习表示并消除手工制作特征的需要,这也被认为是神经网络最重要的优势之一。
图1为示出示例变换编解码方案100的示意图。分析网络ga对原始图像x进行变换以获得潜在表示y。潜在表示y被量化(q)并压缩成比特。比特数R用于衡量编解码率。然后通过合成网络gs对量化的潜在表示
Figure BDA0003677175760000091
进行逆变换以获得重构图像
Figure BDA0003677175760000092
失真(D)在感知空间中通过用函数gp变换x和
Figure BDA0003677175760000093
来计算,得到z和
Figure BDA0003677175760000094
将它们进行比较以获得D。
自动编码器网络可以应用于有损图像压缩。学习到的潜在表示可以从训练好的神经网络中编码。然而,由于原始的自动编码器没有对于压缩进行优化,使自动编码器适应图像压缩并非易事,因此对于直接用作经过训练的自动编码器来说效率不高。此外,还存在其他重大挑战。首先,低维表示应当在编码之前进行量化。然而,量化是不可微的,其在训练神经网络时的反向传播中是必需的。其次,压缩场景下的目标是不同的,因为需要同时考虑失真和速率。估计速率具有挑战性。第三,实际的图像编解码方案应支持可变速率、可扩展性、编码/解码速度和互操作性。为了应对这些挑战,正在开发各种方案。
使用示例变换编解码方案100的图像压缩的示例自动编码器可以被视为变换编解码策略。原始图像x用分析网络y=ga(x)进行变换,其中,y是要量化和编解码的潜在表示。合成网络将量化的潜在表示
Figure BDA0003677175760000095
逆变换回来,以获得重构图像
Figure BDA0003677175760000096
该框架使用速率失真损失函数
Figure BDA0003677175760000097
进行训练,其中,D是x和
Figure BDA0003677175760000098
之间的失真,R是根据量化表示
Figure BDA0003677175760000099
计算或估计的速率,且λ是拉格朗日乘数。D可以在像素域或感知域中计算。大多数示例系统都遵循此原型,并且此类系统之间的差异可能仅在于网络结构或损失函数。
在网络结构方面,RNN和CNN是使用最广泛的架构。在RNN相关类别中,一个可变速率图像压缩的示例通用框架使用RNN。该示例使用二进制量化来生成代码,并且在训练期间不考虑速率。该框架提供了可扩展的编解码功能,其中,带有卷积层和去卷积层的RNN表现良好。另一个示例通过使用类似于PixelRNN的神经网络压缩二进制代码来升级编码器,由此提供了改进的版本。在使用多尺度结构相似性(multi-scale structural similarity,MS-SSIM)评估指标的Kodak图像数据集上,性能优于JPEG。另一个示例通过引入隐藏状态启动进一步改进了基于RNN的解决方案。此外,还设计了SSIM加权损失函数,并包括空域自适应比特率机制。此示例在使用MS-SSIM作为评估指标的Kodak图像数据集上取得了比更好的便携式图形(better portable graphics,BPG)更好的结果。另一个示例系统通过训练停止代码容忍RNN来支持空域自适应比特率。
另一个示例提出了率失真优化图像压缩的通用框架。示例系统使用多元量化来生成整数代码并考虑训练期间的速率。损失是联合率失真成本,其可以是均方误差(meansquare error,MSE)或其他指标。示例系统在训练期间添加随机噪声以刺激量化,并使用噪声代码的差分熵作为速率的代理。示例系统使用广义除法归一化(generalized divisivenormalization,GDN)作为网络结构,其中包括线性映射和非线性参数归一化。验证了GDN对图像编解码的有效性。另一个示例系统包括使用三个卷积层的改进版本,每个卷积层后跟随着下采样层和GDN层作为正变换。相应地,这个示例版本使用三层逆GDN,每层后面跟随着上采样层和卷积层来刺激逆变换。此外,还设计了一种算术编解码方法来压缩整数代码。据报道,在MSE方面,Kodak数据集上的性能优于JPEG和JPEG 2000。另一个示例通过在自动编码器中设计超先验比例来改进该方法。系统将具有子网络ha的潜在表示y变换为z=ha(y),并且z被量化并作为边信息传输。相应地,逆变换是采用子网络hs实施的,子网络hs将量化的边信息
Figure BDA0003677175760000101
解码为量化的
Figure BDA0003677175760000102
的标准偏差,在
Figure BDA0003677175760000103
的算术编码期间进一步使用该标准偏差。在Kodak图像集上,这种方法在峰值信噪比(peak signal to noise ratio,PSNR)方面比BGP略差。另一个示例系统通过引入自回归模型来估计标准偏差和均值,进一步利用了残差空间中的结构。此示例使用高斯混合模型来进一步去除残差中的冗余。在使用PSNR作为评估指标的Kodak图像集上,性能与VVC相当。
现在讨论视频压缩的神经网络的使用。与视频编解码技术类似,神经图像压缩是基于神经网络的视频压缩中帧内压缩的基础。因此,基于神经网络的视频压缩技术的发展落后于基于神经网络的图像压缩的发展,因为基于神经网络的视频压缩技术具有更高的复杂性,因此需要付出更多的努力来解决相应的挑战。与图像压缩相比,视频压缩需要有效的方法来去除帧间图片冗余。然后,帧间图片预测是这些示例系统中的主要步骤。运动估计和补偿在视频编解码器中被广泛采用,但通常不是由经过训练的神经网络实施。
基于神经网络的视频压缩可以根据目标场景分为两类:随机访问和低延迟。在随机访问的情况下,系统允许从序列的任何点开始解码,通常将整个序列分成多个单独的段,并允许每个段独立解码。在低延迟情况下,该系统旨在减少解码时间,从而在时域上先前帧可以用作参考帧来解码后续帧。
现在讨论低延迟系统。一个示例系统采用具有经过训练的神经网络的视频压缩方案。系统首先将视频序列帧划分成块,每个块根据帧内编解码模式或帧间编解码模式进行编解码。如果选择帧内编解码,则关联的自动编码器来压缩块。如果选择帧间编解码,则执行运动估计和补偿,并使用经过训练的神经网络进行残差压缩。自动编码器的输出通过Huffman方法直接量化和编解码。
另一种基于神经网络的视频编解码方案采用PixelMotionCNN。帧以时域顺序进行压缩,每个帧被划分成块,这些块按光栅扫描顺序压缩。首先用前两个重构帧外推每一帧。当要压缩一个块时,将外推帧连同当前块的上下文输入到PixelMotionCNN中来推导潜在表示。然后通过可变速率图像方案压缩残差。该方案的性能与H.264相当。
另一个示例系统采用基于端到端神经网络的视频压缩框架,其中,所有模块均使用神经网络实施。该方案接受当前帧和先前重构的帧作为输入。使用预先训练的神经网络作为运动信息推导光流。运动信息与参考帧一起扭曲,然后由神经网络生成运动补偿帧。使用两个独立的神经自动编码器对残差和运动信息进行压缩。整个框架使用单个率失真损失函数进行训练。示例系统实现了比H.264更好的性能。
另一个示例系统采用高级的基于神经网络的视频压缩方案。该系统继承和扩展了具有以下主要特征的神经网络视频编解码方案。首先,系统仅使用一个自动编码器来压缩运动信息和残差。其次,该系统使用多帧和多光流的运动补偿。第三,系统使用在线状态,该在线状态随着时间的推移通过在后的帧学习和传播。该方案在MS-SSIM中实现了比HEVC参考软件更好的性能。
另一个示例系统使用基于扩展的端到端神经网络的视频压缩框架。在此示例中,使用多个帧作为参考。示例系统由此能够通过使用多个参考帧和相关联的运动信息来提供对当前帧的更准确的预测。此外,还配置了运动场预测来去除沿时域通道的运动冗余。后处理网络也用于从先前的过程中去除重构伪影。该系统的性能在PSNR和MS-SSIM方面均以明显的优势优于H.265。
另一个示例系统通过添加基于框架的尺度参数来使用尺度空间流来替换光流。该示例系统可以实现比H.264更好的性能。另一个示例系统使用基于光流的多精度表示。具体来说,运动估计网络产生具有不同精度的多个光流,并让网络在损失函数下学习选择哪一个。其性能略好于H.265。
现在讨论采用随机访问的系统。另一个示例系统使用具有帧插值的基于神经网络的视频压缩方案。关键帧首先用神经图像压缩器进行压缩,其余帧按层级顺序进行压缩。该系统通过在原始帧的多个空域尺度上推导特征图并使用运动来扭曲特征图,在感知域中执行运动补偿。其结果用于图像压缩器。该方法与H.264相当。
一个示例系统使用基于插值的视频压缩方法。插值模型结合了运动信息压缩和图像合成。相同的自动编码器用于图像和残差。另一个示例系统采用基于具有确定性编码器的变分自动编码器的基于神经网络的视频压缩方法。具体来说,该模型包括自动编码器和自回归先验。与之前的方法不同,该系统接受一组图片(group of pictures,GOP)作为输入,并通过在编解码潜在表示时考虑时域相关性来结合三维(3D)自回归先验。该系统提供与H.265相当的性能。
现在讨论初步(Preliminaries)。几乎所有的自然图像和/或视频都是数字格式。灰度数字图像可以由
Figure BDA0003677175760000121
表示,其中,
Figure BDA0003677175760000122
是像素值的集合,m是图像高度,且n是图像宽度。例如,
Figure BDA0003677175760000123
是一个示例设置,并且在这种情况下
Figure BDA0003677175760000124
因此,像素可以由8位整数表示。未压缩的灰度数字图像具有8位/像素(bpp),而压缩位肯定更少。
彩色图像通常以多个通道表示来记录颜色信息。例如,在RGB颜色空间中,图像可以由
Figure BDA0003677175760000125
表示,其中,三个单独的通道存储红色、绿色和蓝色信息。与8位灰度图像类似,未压缩的8位RGB图像具有24bpp。数字图像/视频可以用不同的颜色空间来表示。基于神经网络的视频压缩方案大多在RGB颜色空间中开发,而视频编解码器通常使用YUV颜色空间来表示视频序列。在YUV颜色空间中,图像被分解为三个通道,即亮度(Y)、蓝色差值色度(Cb)和红色差值色度(Cr)。Y是亮度分量,Cb和Cr是色度分量。YUV的压缩优势出现是因为通常对Cb和Cr进行下采样来实现预压缩,因为人类视觉系统对色度分量不太敏感。
彩色视频序列由多个彩色图像(也称为帧)组成,用于记录不同时间戳的场景。例如,在RGB颜色空间中,彩色视频可以表示为X={x0,x1,…,xt,…,xT-1},其中,T是视频序列中的帧数,并且
Figure BDA0003677175760000131
如果m=1080、n=1920、
Figure BDA0003677175760000132
并且视频具有50帧/秒(fps),则此未压缩视频的数据速率为1920×1080×8×3×50=2,488,320,000位/秒(bps)。这导致大约2.32千兆比特/秒(Gbps),其使用大量存储空间并且应在通过网络传输之前进行压缩。
对于自然图像,通常无损方法可以实现大约1.5到3的压缩比,这明显低于流媒体的要求。因此,采用有损压缩来获得更好的压缩比,但代价是产生失真。失真可以通过计算原始图像和重构图像之间的平均方差来测量,例如基于MSE。对于灰度图像,可以使用以下公式计算MSE。
Figure BDA0003677175760000133
相应地,重构图像与原始图像相比的质量可以通过峰值信噪比(peak signal-to-noise ratio,PSNR)来衡量:
Figure BDA0003677175760000134
其中,
Figure BDA0003677175760000135
Figure BDA0003677175760000136
中的最大值,例如,对于8位灰度图像其为255。还有其他质量评估指标,例如结构相似性(SSIM)和多尺度SSIM(MS-SSIM)。为了比较不同的无损压缩方案,可以比较给定结果速率的压缩比,反之亦然。然而,为了比较不同的有损压缩方法,比较必须同时考虑速率和重构质量。例如,这可以通过计算几个不同质量级别的相对速率然后对这些速率进行平均来实现。平均相对率称为Bjontegaard’s Delta率(BD率)。还有其他方面来评估图像和/或视频编解码方案,包括编码/解码复杂性、可伸缩性、鲁棒性等。
图2为示出比较压缩方案200的示意图。将使用帧内预测方法(例如,图像压缩方法)压缩关键帧的方案与使用帧间预测方法(例如,帧外推(extrapolative)压缩方法)压缩关键帧的方案进行比较。这些帧来自超视频组(ultra video group,UVG)数据集中的HoneyBee序列。结果表明,运动简单但纹理(texture)丰富的视频内容更适合帧间预测压缩。
以下是通过公开的技术方案解决的示例性技术问题。对于随机访问场景,示例系统使用图像压缩方法来压缩第一帧和最后一帧,也称为关键帧。剩余的帧是从先前重构的帧中进行插值。然而,仅对关键帧使用图像压缩无法考虑时域相关性。如图2所示,帧外推压缩(frame extrapolative compression,FEC)和图像压缩可用于压缩当前帧xt。结果表明,帧外推压缩方法比图像压缩方法产生了更好的R-D性能。因此,具有丰富纹理和简单运动的序列更适合帧间预测压缩方案。
本文档公开了解决上述一个或多个问题的机制。本公开包括一种基于端到端神经网络的视频编解码器。编解码器包括多个压缩网络。编解码器可以接收包括多个帧的视频。然后,编解码器可以使用不同的压缩网络对不同的帧进行编解码。这可以通过基于预定的和/或学习特性(例如基于帧之间的运动和/或图像纹理)为每个帧选择压缩网络来实现。在另一个示例中,这可以通过使用多个图像压缩网络对每个帧进行编解码并选择提供压缩和图像失真的最佳组合的图像压缩网络来实现。在示例中,基于端到端神经网络的视频编解码器包括双边预测学习压缩(BPLC)组件和空域-时域自适应压缩(STAC)组件。关键帧可由STAC组件编解码,并且非关键帧可由BPLC组件编解码。BPLC组件采用双向预测网络、残差自动编码器和双向预测残差细化网络来获得压缩帧。STAC组件还可以包括帧外推压缩(frameextrapolative compression,FEC)分支和图像压缩分支。FEC分支使用运动估计(motionestimation,ME)、运动矢量压缩、运动补偿、残差压缩和残差细化的组合来获得压缩帧。图像压缩分支包含来自帧的潜在表示并量化潜在表示以获得压缩帧。在一个示例中,分类为具有丰富纹理和简单运动的帧由FEC分支进行压缩,而纹理不丰富和/或复杂运动的帧由图像压缩分支进行压缩。这样的分类可以通过神经网络和/或通过与预定和/或学习参数进行比较来执行。
为了解决上述问题和其他问题,公开了如下总结的方法。这些项目应被视为解释一般概念的示例,不应被狭隘地解释。此外,这些项目可以被单独应用或以任何方式组合应用。本公开描述的技术提供了一种基于神经网络的具有空域-时域自适应的视频压缩方法。更具体地说,对于要编解码/解码的视频单元(例如,帧、图片和/或条带),可以选择外推过程(通过使用另一个视频单元中的重构样点)或图像压缩器(通过使用当前视频单元中的信息)。在下面的讨论中,帧、图片和图像可以具有相同的含义。
示例1
在一个示例中,通过将FEC模块引入基于端到端神经网络的视频编解码器来实现外推过程。通过包括FEC模块,当前视频单元可以通过图像压缩器或FEC模块进行压缩。在一个示例中,FEC模块使用至少一个先前编解码帧作为参考来预测当前视频单元。在比特流中信令通知或者由解码器隐式地推导关于当前视频单元和参考帧之间的运动信息的指示。在一个示例中,FEC模块使用两个或更多个先前编解码帧作为参考来预测当前视频单元。可以在比特流中信令通知或者由解码器隐式地推导关于当前视频单元和参考帧之间的运动信息的指示。在一个示例中,FEC模块使用两个或更多个先前编解码帧来外推当前视频单元而不信令通知运动信息。在一个示例中,FEC中使用的参考图片在显示顺序中应在当前图片之前。
示例2
在一个示例中,具有最小成本(例如R-D损失)的重构帧被保存在编码器侧的重构帧缓冲区中。在一个示例中,所使用的压缩方法(例如,FEC或图像压缩器)的指示存在于比特流中。在一个示例中,解码过程和/或重构过程取决于指示。在一个示例中,视频单元可以是关键帧和/或紧随另一个关键帧编解码的帧,例如帧内编解码帧或者用FEC编解码的帧。在一个示例中,可以使用相同的或者两种不同的基于端到端NN的方法来利用FEC压缩器或利用图像压缩器对帧进行编解码。在一个示例中,可以使用基于端到端NN的方法来压缩运动信息。
示例3
在另一个示例中,使用基于端到端可训练神经网络的视频编解码器来提供改进的R-D性能。该编解码器包括空域-时域自适应压缩(STAC)模块和专用于关键帧和非关键帧压缩的双边预测学习压缩(BPLC)模块。空域-时域自适应压缩包括多个分支,其能够去除关键帧中的空域和时域冗余。在一个示例中,STAC可以至少包括图像压缩器和基于外推的压缩方法。在一个示例中,BPLC可以使用至少两个参考帧,例如一个在前参考帧和一个在后参考帧(就显示顺序而言)来对当前帧进行插值。在一个示例中,BPLC可以使用两个以上的参考帧来预测当前帧。在一个示例中,BPLC可遵循层级顺序来插入帧。
示例4
在另一个示例中,除了单独使用图像压缩方法来压缩关键帧,还可以使用空域-时域自适应压缩。在一个示例中,对于要压缩的视频序列,帧间预测压缩方法与压缩关键帧的图像压缩器结合使用。在一个示例中,先前重构的关键帧可用于预测当前关键帧。在一个示例中,可以显式或隐式地使用运动信息来推导预测帧。在一个示例中,可以将在前的重构帧或在后的重构帧用作参考帧。在一个示例中,可以使用多个参考帧推导预测帧。
示例5
在一个示例中,可以采用一种以上的帧间预测压缩方法。在一个示例中,可以结合基于内核的方法使用基于流的方法来推导预测帧。基于流的方法可以显式地推导出光流和编码。基于内核的方法可以使用与参考帧卷积的学习内核推导预测帧,而无需推导光流。在一个示例中,正向预测和反向预测可以以某种形式组合以形成最终预测帧。在一个示例中,可以在比特流中信令通知或由解码器推导帧间预测压缩方法的选择。
示例6
在一个示例中,可以采用一种以上的帧内预测压缩方法。在一个示例中,可以提供不同的图像压缩网络/实施方式作为帧内预测压缩方法。在一个示例中,可以共同使用不同的块级别。例如,可以组合使用块级别和帧级别预测。在一个示例中,可以在比特流中信令通知或由解码器推导帧内预测压缩方法的选择。
示例7
在一个示例中,可以采用一种以上的运动压缩方法。在一个示例中,可以提供不同的运动压缩网络和/或实施方式作为运动压缩方法。在一个示例中,可以共同使用不同的块级别。例如,可以组合使用块级别和帧级别预测。在一个示例中,可以在比特流中信令通知或由解码器推导运动压缩方法的选择。
示例8
在一个示例中,可以在对帧进行编解码之前做出压缩模式决定,而不是进行多次压缩,这将降低运行时间复杂度。在一个示例中,两个特定帧之间的运动信息可用于决定是否应该选择帧间预测方案。例如,应考虑小于阈值的运动幅度来使用帧间预测方案。在一个示例中,可以使用帧的熵来确定是否应该使用帧内预测方案来压缩当前关键帧。例如,应考虑小于阈值的熵来使用帧内预测方案。在一个示例中,可以结合使用多个标准来确定压缩模式。
示例9
在一个示例中,外推帧被用作附加信息以增强残差编解码。在一个示例中,外推帧与残差帧连接,然后在编码器和解码器端都作为输入。在一个示例中,首先从插值帧和残差帧中提取各个特征,然后在编码器和解码器端将各个特征融合在一起。在一个示例中,外推帧仅用于解码器侧以帮助提高重构残差帧的质量。
示例10
在上述示例中,视频单元可以是图片、条带、片、子图片、编解码树单元(codingtree unit,CTU)行、CTU、编解码树块(coding tree block,CTB)、编解码单元(codingunit,CU)、预测单元(prediction unit,PU)、变换单元(transform unit,TU)、编解码块(coding block,CB)、变换块(transform block,TB)、虚拟流水线数据单元(virtualpipeline data unit,VPDU)、图片内的区域、条带内的区域、片内的区域、子图片内的区域、CTU内的一个或多个像素和/或样点、或者其组合。
示例11
在一个示例中,端到端运动压缩网络被设计为运动矢量(motion vector,MV)编码器-解码器,如下图3所示。在一个示例中,端到端FEC网络被设计为如下图3所示。
现在描述示例实施例。视频信号中有两种常见的冗余类型,空域冗余和时域冗余。一些基于神经网络的视频压缩方法仅对随机访问场景中的关键帧应用图像压缩。这种方法可能会由于忽略时域冗余而降低R-D性能。本神经网络实施例对随机访问场景中的关键帧使用帧内预测压缩和帧间预测压缩。基于来自每个方案的重构帧和原始帧的R-D损失来选择最佳解决方案。以下小节提供了一个示例。
图3为示出示例神经网络框架300的示意图。在神经网络框架300中,原始视频序列被分成图片组(GOP)。在每个GOP中,关键帧用包括图像压缩分支303和帧外推压缩(FEC)分支305的空域-时域自适应压缩(STAC)组件来进行压缩。剩余的帧用双边预测学习压缩(BPLC)组件301进行压缩。
图3中使用的符号如下。原始视频序列(V)表示为
Figure BDA0003677175760000171
其中,xt是时间t的帧。每第N帧设置为关键帧,对两个关键帧之间的剩余N-1帧进行插值。这些帧被组织成GoPs,两个连续的GoPs共享相同的边界帧。在本文档中,上标I、E和B分别表示分支图像压缩、帧外推压缩和双向预测学习压缩中使用的变量,如神经网络框架300所示。Vt
Figure BDA0003677175760000172
分别表示原始和重构的运动矢量(MV)场。
Figure BDA0003677175760000189
Figure BDA00036771757600001810
分别是来自双向预测网络(Bi-predictionNet)和运动补偿网络(motion compensation network,MC Net)的预测帧。rt
Figure BDA0003677175760000181
分别是残差自动编码器的原始残差和重构残差。残差细化网络后的最终解码残差为
Figure BDA0003677175760000182
zt、mt和yt分别表示图像压缩、MV和残差的潜在表示。
Figure BDA0003677175760000183
Figure BDA0003677175760000184
是量化的潜在值。最终解码的帧表示为
Figure BDA0003677175760000185
神经网络框架300包括STAC组件和BPLC组件301。STAC组件用于压缩关键帧,而BPLC组件301用于压缩两个关键帧之间的剩余帧。关键帧之间的帧可以称为非关键帧和/或插值帧。STAC组件包括图像压缩分支303和FEC分支305。对于视频序列
Figure BDA0003677175760000186
由于没有可用的参考帧,因此使用图像压缩分支303压缩第一帧x0。以下关键帧由这两个分支中的任何一个(图像压缩分支303和/或FEC分支305)进行压缩。在训练阶段,GoP中的第一帧用于训练图像压缩分支303,最后一帧用于训练FEC分支305。在推理阶段,对关键帧执行两次压缩。选择具有最小RD损失的重构帧并将其保存在重构帧缓冲区中以供将来使用。在关键帧被压缩之后,剩余的帧采用BPLC组件301进行压缩。
现在讨论空域-时域自适应。视频信号中有两种常见的冗余类型,空域冗余和时域冗余。在大多数视频编解码器中,帧内编解码和帧间编解码分别是去除空域冗余和时域冗余的两种主要技术。运动和纹理是决定帧间预测编解码还是帧内预测编解码更适合序列的两个因素。根据经验,可以基于运动和纹理特点对视频内容进行分类。运动可以简单或复杂,纹理可以简单或丰富。复杂运动有两种类型和/或有时混合在一起。首先,复杂运动中的运动信息可能难以用运动估计(ME)技术来估计。其次,对复杂运动的运动信息进行编解码可能需要过多的比特,与帧内预测编解码相比,这会导致较差的R-D性能。例如,一些视频序列可能只包含特定的运动,如平移,而其他视频序列可能包含多个运动的组合,如平移、旋转和放大/缩小。类似地,一些视频序列包含简单的纹理,如大部分天空和/或单色物体,而其他视频序列可能包含丰富的纹理,如灌木、草和建筑。
帧内预测编解码适用于纹理简单但运动复杂的视频内容,而帧间预测编解码适用于运动简单但纹理丰富的视频内容。如图2所示,序列HoneyBee在帧之间包含非常微小的运动,但每一帧都包含丰富的纹理。引入具有光流的FEC分支305可以有效地去除相关性。由于图像压缩分支303仅需要21%的比特,FEC分支305实现了甚至更好的重构质量。然而,仅使用帧间预测编解码并不是最优的。一些视频序列具有简单的纹理但非常复杂的运动。在这种情况下,图像压缩分支303的性能优于FEC分支305。因此,神经网络框架300结合图像压缩分支303和FEC分支305来为学习视频压缩范例中的关键帧构建STAC组件。
相应地,STAC分量用于关键帧。STAC组件的目标表述为:
Figure BDA0003677175760000191
其中,λ是拉格朗日乘数;
Figure BDA0003677175760000192
Figure BDA0003677175760000193
分别表示来自图像压缩分支303和FEC分支305的解码帧;
Figure BDA0003677175760000194
Figure BDA0003677175760000195
分别表示对残差和运动矢量进行编码的比特。对于图像压缩,
Figure BDA0003677175760000196
设置为零。
Figure BDA0003677175760000197
Figure BDA0003677175760000198
的推导可以表示为:
Figure BDA0003677175760000199
其中,θ和ψ是优化后的参数。在图像压缩分支303中使用深度自动编码器作为图像压缩网络。图像压缩分支303包括分析变换组件和合成变换组件。分析变换组件从关键帧xt获得潜在表示zt。潜在表示zt被量化以获得量化的潜在值
Figure BDA00036771757600001910
合成变换组件对量化的潜在值
Figure BDA00036771757600001911
进行变换以获得图像压缩解码帧
Figure BDA00036771757600001912
现在讨论FEC。本公开考虑了三种方法来获得预测关键帧。这些方法如图3、图4和图5所示。
图4为示出获取预测关键帧的直接合成方案400的示意图。直接合成方案400通过CNN发送(forward)先前解码的关键帧
Figure BDA00036771757600001913
来获得预测帧
Figure BDA00036771757600001914
从预测帧
Figure BDA00036771757600001915
中减去当前帧xt以获得残差rt。残差rt通过细化网络发送以获得最终解码的残差
Figure BDA00036771757600001916
然后将预测帧
Figure BDA00036771757600001917
与最终解码残差
Figure BDA00036771757600001918
相加,得到最终解码帧
Figure BDA00036771757600001919
图5为示出获取预测关键帧的基于内核的方案500的示意图。基于内核的方案500基本上类似于直接合成方案400。然而,基于内核的方案500采用多个先前解码的关键帧
Figure BDA00036771757600001920
...来生成预测帧
Figure BDA00036771757600001921
相应地,获得预测关键帧的方法包括如图3中的FEC分支305所示的基于流的方案、如图5所示的直接合成方案400以及如图5所示的基于内核的方案500。在这些选项中,只有FEC分支305中的基于流的方案显示地推导和编码运动信息。在一个示例中,FEC分支305的基于流的解决方案被用作FEC模型,原因如下。首先,由于较大的时域距离,关键帧预测更具挑战性,通常伴随着较大的运动。当内核尺寸小于运动时,基于内核的方法难以捕获较大运动。此外,考虑到模型尺寸和性能之间的权衡,确定最佳内核尺寸并非易事。其次,准确的运动估计是捕捉时域相关性的主要因素。显式地推导光流的有效性已在实践中得到验证。如图3所示,FEC分支305采用以下主要步骤来推导解码帧
Figure BDA0003677175760000201
运动估计(ME)、MV压缩、运动补偿(MC)、残差压缩和残差细化。
在FEC分支305中,运动估计和压缩由用作ME网络的预训练金字塔、扭曲(warping)、成本体积网络(cost volume network,PWC-Net)实施。由于使用两个连续帧训练PWC-Net,本公开使用GoP中的第一帧和最后一帧在训练数据上微调PWC-Net。由于光流标签的稀缺性,扭曲帧和原始帧之间的L2损失直接用于部署微调。注意力模型被用作MV压缩自动编码器。在一个示例中,特征图的数量设置为128。FEC分支305分别将ME Net表示为hme,以及将MV自动编码器表示为
Figure BDA0003677175760000202
运动估计和压缩表示为:
Figure BDA0003677175760000203
现在讨论运动补偿。MC网络包括基于双边线性插值的扭曲层,然后是卷积神经网络(CNN)来细化扭曲帧。MC网络表示为hmc
Figure BDA0003677175760000204
现在讨论残差压缩和细化。图6为示出示例残差细化网络600的示意图,其可用于细化FEC分支305中的残差。在残差细化网络600中,conv(3,64,1)表示卷积层,内核尺寸为3×3,输出通道数为64,跨步(stride)为1。卷积层使用泄漏整流线性单元(leaky rectifiedlinear unit,ReLU)激活单元。每个残差块包括两个卷积层。
回到图3,在从MC Net获得预测帧之后,使用残差自动编码器对残差进行压缩。残差自动编码器可以与MV自动编码器共享相同的架构,但具有192个通道。为了补偿前一阶段的误差,图6中的残差细化网络600用于增强重构残差的质量。最终解码的残差,表示为
Figure BDA0003677175760000205
从FEC分支305中的残差解码器输出。残差自动编码器表示为
Figure BDA0003677175760000206
残差细化网络表示为
Figure BDA0003677175760000207
这个过程表示为:
Figure BDA0003677175760000208
现在讨论BPLC组件301。当关键帧由STAC组件进行压缩时,剩余的非关键帧由BPLC组件301进行压缩。BPLC组件301包括双向预测网络、残差自动编码器和双向预测残差细化网络。帧以层级顺序进行插值以支持随机访问。基于当前帧xt识别两个参考帧
Figure BDA0003677175760000211
其中,dt表示xt和相应的参考帧之间的时域距离。当GoP尺寸N为2的整数指数时,dt根据xt相关联的时域层确定:
Figure BDA0003677175760000212
其中,τ(xt)是xt的时域ID,k是GoP中的索引,
Figure BDA0003677175760000213
通过自适应可分离卷积(adaptive separable convolution,SepConv)进行的视频帧插值被用作双向预测残差细化网络。在联合训练之前,预先训练的模型在数据集上进行微调。直观地说,不同的时域层应使用单独的模型。然而,实验表明使用多个双向预测网络没有观察到明显的性能改进。因此,本示例对所有时域层使用单个网络。使用三个连续帧对双向预测残差细化网络进行微调。残差自动编码器可以与具有192个通道的MV自动编码器共享相同的结构。残差细化网络还可以与FEC分支305中的外推残差细化网络共享相同的架构。双向预测学习压缩组件可以描述为:
Figure BDA0003677175760000214
其中,hbp
Figure BDA0003677175760000215
Figure BDA0003677175760000216
分别表示双向预测残差细化网络、残差自动编码器和双向预测残差细化网络。
图7示出了可以实施本公开的各种技术的示例视频处理系统4000的框图。各种实施方式可以包括系统4000的一些或所有组件。系统4000可以包括用于接收视频内容的输入4002。视频内容可以以原始或未压缩格式(例如,8或10位多分量像素值)接收,或者可以以压缩或编码格式接收。输入4002可以表示网络接口、外围总线接口或者存储接口。网络接口的示例包括例如以太网(Ethernet)、无源光网络(PON)等的有线接口和例如Wi-Fi或蜂窝接口的无线接口。
系统4000可以包括编解码组件4004,其可以实施本文档中描述的各种编解码或编码方法。编解码组件4004可以降低从输入4002到编解码组件4004的输出的视频平均比特率以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件4004的输出可以被存储或通过通信连接传输,如组件4006所示。在输入4002处接收的视频的存储或通信的比特流(或编解码)表示可以被组件4008用于产生发送到显示接口4010的像素值或可显示视频。从比特流表示产生用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,应理解的是,编解码工具或操作用于编码器,且相应的将编解码结果反转的解码工具或操作将由解码器执行。
外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清多媒体接口(HDMI)或显示端口等。存储接口的示例包括串行高级技术附件(serial advancedtechnology attachment,SATA)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,例如移动电话、笔记本电脑、智能电话或能够执行数字数据处理和/或视频显示的其他设备。
图8为示例视频处理装置4100的框图。装置4100可用于实施本文档所述的一种或多种方法。装置4100可以体现在智能电话、平板电脑、计算机、物联网(IoT)接收器等中。装置4100可以包括一个或多个处理器4102、一个或多个存储器4104和视频处理电路4106。处理器4102可以被配置为实施本文档中描述的一种或多种方法。存储器(Memory)4104可用于存储用于实施在此描述的方法和技术的数据和代码。视频处理电路4106可用于在硬件电路中实施本文档中描述的一些技术。在一些实施例中,视频处理电路4106可以至少部分地包括在处理器4102(例如,图形协处理器)中。
图9为视频处理的示例方法4200的流程图。方法4200包括在步骤4202确定将基于端到端神经网络的视频编解码器应用到视频的当前视频单元。当前视频单元可以是图片、条带、片、子图片、CTU行、CTU、CTB、CU、PU、TU、CB、TB、VPDU、图片内的区域、条带内的区域、片内的区域、子图片内的区域、CTU内的一个或多个像素和/或样点,或者其组合。在一个具体的示例中,当前视频单元是一帧(也称为图片)。视频包括可用作随机访问点的关键帧和由于帧之间的帧间预测相关的依赖性而可能不能用作随机访问点的非关键帧。基于端到端神经网络的视频编解码器包括多个组件/分支来处理不同的帧。例如,基于端到端神经网络的视频编解码器可以包括STAC组件,该STAC组件包括FEC分支和图像压缩分支。基于端到端神经网络的视频编解码器还可以包括BPLC组件。取决于当前视频单元的性质,当前视频单元可以传递到不同的组件/分支。
在步骤4204,通过基于端到端神经网络的视频编解码器执行当前视频单元和视频的比特流之间的转换。在一个示例中,转换包括将当前视频单元编码成比特流。在一个示例中,转换包括从比特流解码当前视频单元。例如,当当前视频单元不是关键帧时,BPLC组件可以执行对当前视频单元的转换。此外,当当前视频单元为关键帧时,STAC组件可以执行对当前视频单元的转换。
例如,当当前视频单元是关键帧时,当前视频单元可以基于当前视频单元的运动信息、当前视频单元的熵或其组合由FEC分支和图像压缩分支之一分配以进行转换。例如,FEC分支可以采用多个编解码帧作为参考帧来预测当前视频单元。在一个示例中,在比特流中包括参考帧和当前视频单元之间的运动信息的指示。在另一示例中,在比特流中不包括参考帧和当前视频单元之间的运动信息。例如,当当前视频单元不是关键帧时,BPLC组件可以基于至少一个在前参考帧和至少一个在后参考帧对当前视频单元进行插值。
在一些示例中,基于在前的重构关键帧、在后的重构关键帧、运动信息、多个参考帧或其组合来预测当前视频单元。在本公开中,在前帧是在视频序列中位于当前帧之前的帧,在后帧是在视频序列中位于当前帧之后的帧。
在一些示例中,基于端到端神经网络的视频编解码器选择多个帧间预测压缩网络之一应用于当前视频单元。帧间预测压缩网络通过确定帧之间的运动来压缩视频。例如,基于端到端神经网络的视频编解码器可以包括一个或多个BPLC组件、一个或多个FEC分支以及一个或多个图像压缩分支。基于端到端神经网络的视频编解码器可以将当前视频单元发送到最佳组件/分支。在一个示例中,这可以通过按每个相关组件/分支对当前视频单元进行编解码并选择结果为压缩和失真的最佳组合的组件/分支来实现。在另一示例中,基于端到端神经网络的视频编解码器可以采用一个或多个学习或预定义的参数来对当前视频单元进行分类以通过相应的组件/分支进行压缩。在示例中,在比特流中包括对多个帧间预测压缩网络之一的选择。其向解码器指示应当应用哪个帧间预测压缩网络来正确地解码当前视频单元。
在一个示例中,多个帧间预测压缩网络包括基于流的网络,其通过推导光流来对当前视频单元进行编解码。光流是可视场景中由观察者和场景之间的相对运动引起的对象、表面和边缘的明显运动模式。可以通过基于随时间变化的图像强度计算运动场的近似值来估计光流。
在一个示例中,多个帧间预测压缩网络包括基于内核的网络,其通过将学习内核与一个或多个参考帧进行卷积以推导预测帧来对当前视频单元进行编解码。学习内核是一组内核函数中的一个,该内核函数已根据机器学习算法通过将测试数据应用于该组内核函数而进行了调整。可以执行数学卷积操作以将学习内核与一个或多个参考帧进行卷积,以生成当前视频单元的预测。
在一个示例中,基于端到端神经网络的视频编解码器可以用块预测和帧预测的组合对当前视频单元进行编解码。块预测使用参考块中的样点来预测当前块中的样点。帧预测使用参考帧中的样点来预测当前帧中的样点。
在一个示例中,基于端到端神经网络的视频编解码器选择多个运动压缩网络之一应用于当前视频单元。运动压缩是一种机制,其采用机器学习来基于空域-时域模式预测跨多个帧的对象运动,并对对象形状和对象的行进方向进行编码。
在一个示例中,基于端到端神经网络的视频编解码器选择多个帧内预测压缩网络之一应用于当前视频单元。帧内预测压缩网络基于同一帧中区域之间的相似性来对帧进行压缩。
应当注意的是,方法4200可以在用于处理视频数据的装置中实施,该装置包括处理器和其上具有指令的非暂时性存储器,例如视频编码器4400、视频解码器4500和/或编码器4600。在这种情况下,指令在由处理器执行时使处理器执行方法4200。此外,方法4200可以由包括供视频编解码设备使用的计算机程序产品的非暂时性计算机可读介质来执行。计算机程序产品包括存储在非暂时性计算机可读介质上的计算机可执行指令,使得指令在被处理器执行时,使视频编解码设备执行方法4200。并且,一种非暂时性计算机可读记录介质可以存储由视频处理装置执行的方法4200生成的视频的比特流。此外,该方法4200可以由处理视频数据的装置执行,该装置包括处理器和其上具有指令的非暂时性存储器。指令在由处理器执行时使处理器执行方法4200。
图10为示出可以利用本公开的技术的示例视频编解码系统4300的框图。视频编解码系统4300可以包括源设备4310和目标设备4320。源设备4310产生编码视频数据,其可以被称为视频编码设备。目标设备4320可以解码由源设备4310产生的编码视频数据,其可以被称为视频解码设备。
源设备4310可以包括视频源4312、视频编码器4314和输入/输出(I/O)接口4316。视频源4312可以包括诸如视频捕获设备、从视频内容提供者接收视频数据的接口、和/或用于产生视频数据的计算机图形系统之类的源,或者这些源的组合。视频数据可以包括一个或多个图片。视频编码器4314对来自视频源4312的视频数据进行编码以产生比特流。比特流可以包括形成视频数据的编解码表示的位序列。比特流可以包括编解码图片和关联数据。编解码图片是图片的编解码表示。关联数据可以包括序列参数集、图片参数集和其他语法结构。I/O接口4316可以包括调制器/解调器(调制解调器)和/或发射器。编码的视频数据可以通过网络4330经由I/O接口4316直接传输到目标设备4320。编码的视频数据也可以存储在存储介质/服务器4340上以供目标设备4320访问。
目标设备4320可以包括I/O接口4326、视频解码器4324和显示设备4322。I/O接口4326可以包括接收器和/或调制解调器。I/O接口4326可以从源设备4310或存储介质/服务器4340获取编码视频数据。视频解码器4324可以对编码的视频数据进行解码。显示设备4322可以向用户显示解码的视频数据。显示设备4322可以与目标设备4320集成,或者可以在目标设备4320外部,目标设备4320可以配置为与外部显示设备接口。
视频编码器4314和视频解码器4324可以根据视频压缩标准操作,例如高效视频编解码(HEVC)标准、通用视频编解码(VVC)标准和其他当前和/或进一步的标准。
图11为示出视频编码器4400的示例的框图,视频编码器4400可以是图10中所示的系统4300中的视频编码器4314。视频编码器4400可以配置为执行本公开的任何或所有技术。视频编码器4400包括多个功能组件。本公开中描述的技术可以在视频编码器4400的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
视频编码器4400的功能组件可以包括分割单元4401、预测单元4402(其可以包括模式选择单元4403、运动估计单元4404、运动补偿单元4405和帧内预测单元4406)、残差生成单元4407、变换单元4408、量化单元4409、逆量化单元4410、逆变换单元4411、重构单元4412、缓冲区4413和熵编码单元4414。
在其他示例中,视频编码器4400可以包括更多、更少或不同的功能组件。在一个示例中,预测单元4402可以包括帧内块复制(IBC)单元。IBC单元可以在IBC模式下执行预测,其中至少一个参考图片是当前视频块所在的图片。
此外,一些组件(例如运动估计单元4404和运动补偿单元4405)可以高度集成,但是为了解释的目的而在视频编码器4400的示例中单独表示。
分割单元4401可以将图片分割成一个或多个视频块。视频编码器4400和视频解码器4500可以支持各种视频块尺寸。
模式选择单元4403可以选择编解码模式之一(帧内或帧间,例如基于误差结果),并且将得到的帧内或帧间编解码块提供给残差生成单元4407以生成残差块数据,并提供给重构单元4412来重构编码块以用作参考图片。在一些示例中,模式选择单元4403可以选择帧内和帧间预测(CIIP)模式的组合,其中预测基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元4403还可以为块选择运动矢量的精度(例如,子像素或整数像素精度)。
为了对当前视频块执行帧间预测,运动估计单元4404可以通过将来自缓冲区4413的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元4405可以基于来自缓冲区4413的除了与当前视频块相关联的图片之外的图片的运动信息和解码样点来确定当前视频块的预测视频块。
运动估计单元4404和运动补偿单元4405可以对当前视频块执行不同的操作,例如,取决于当前视频块是在I条带、P条带还是B条带中。
在一些示例中,运动估计单元4404可以对当前视频块执行单向预测,并且运动估计单元4404可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。然后,运动估计单元4404可以生成参考索引和运动矢量,该参考索引指示列表0或列表1中包含参考视频块的参考图片,该运动矢量指示当前视频块与参考视频块之间的空域移位。运动估计单元4404可以输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元4405可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
在其他示例中,运动估计单元4404可以对当前视频块执行双向预测,运动估计单元4404可以在列表0中的参考图片中搜索当前视频块的参考视频块,并且还可以在列表1中的参考图片中搜索当前视频块的另一参考视频块。然后运动估计单元4404可以生成参考索引和运动矢量,该参考索引指示列表0和列表1中包含参考视频块的参考图片,该运动矢量指示参考视频块与当前视频块之间的空域移位。运动估计单元4404可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元4405可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
在一些示例中,运动估计单元4404可以输出完整的运动信息集以用于解码器的解码处理。在一些示例中,运动估计单元4404可以不输出当前视频的完整的运动信息集。相反,运动估计单元4404可以参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元4404可以确定当前视频块的运动信息与邻近视频块的运动信息足够相似。
在一个示例中,运动估计单元4404可以在与当前视频块相关联的句法结构中指示一个值,该值向视频解码器4500指示当前视频块具有与另一视频块相同的运动信息。
在另一示例中,运动估计单元4404可以在与当前视频块相关联的语法结构中识别另一视频块和运动矢量差(motion vector difference,MVD)。运动矢量差表示当前视频块的运动矢量与指示的视频块的运动矢量之间的差值。视频解码器4500可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
如上文所讨论,视频编码器4400可预测性地信令通知运动矢量。可由视频编码器4400实施的预测信令通知技术的两个示例包括高级运动矢量预测(AMVP)和merge模式信令通知。
帧内预测单元4406可以对当前视频块执行帧内预测。当帧内预测单元4406对当前视频块执行帧内预测时,帧内预测单元4406可以基于同一图片中的其他视频块的解码样点生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
残差生成单元4407可以通过从当前视频块减去当前视频块的预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括残差视频块,该残差视频块对应于当前视频块中样点的不同样点分量。
在其他示例中,对于当前视频块可能不存在当前视频块的残差数据,例如在跳过模式中,并且残差生成单元4407可以不执行减法操作。
变换(处理)单元4408可以通过对与当前视频块相关联的残差视频块应用一个或多个变换,来生成当前视频块的一个或多个变换系数视频块。
在变换单元4408生成与当前视频块相关联的变换系数视频块之后,量化单元4409可以基于与当前视频块相关联的一个或多个量化参数(QP)值来量化与当前视频块相关联的变换系数视频块。
逆量化单元4410和逆变换单元4411可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重构残差视频块。重构单元4412可以将重构的残差视频块添加到由预测单元4402生成的一个或多个预测视频块的对应样点中,以产生与当前块相关联的重构视频块以存储在缓冲区4413中。
在重构单元4412重构视频块之后,可以执行环路滤波操作以减少视频块中的视频块伪影。
熵编码单元4414可以从视频编码器4400的其他功能组件接收数据。当熵编码单元4414接收数据时,熵编码单元4414可以执行一个或多个熵编码操作以生成熵编码数据并输出包括熵编码数据的比特流。
图12为示出视频解码器4500的示例的框图,视频解码器4500可以是图10中所示的系统4300中的视频解码器4324。视频解码器4500可经配置以执行本公开任何或所有技术。在所示的示例中,视频解码器4500包括多个功能组件。本公开中描述的技术可以在视频解码器4500的各种组件之间共享。在一些示例中,处理器可以被配置为执行本公开中描述的任何或所有技术。
在所示的示例中,视频解码器4500包括熵解码单元4501、运动补偿单元4502、帧内预测单元4503、逆量化单元4504、逆变换单元4505、重构单元4506和缓冲区4507。在一些示例中,视频解码器4500可以执行通常与关于视频编码器4400描述的编码通道(pass)相应的解码通道。
熵解码单元4501可以检索编码比特流。编码比特流可以包括熵编解码的视频数据(例如,编码的视频数据块)。熵解码单元4501可以对熵编解码的视频数据进行解码,并且根据熵解码的视频数据,运动补偿单元4502可以确定包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。例如,运动补偿单元4502可以通过执行AMVP和merge模式来确定该信息。
运动补偿单元4502可以产生运动补偿块,可以基于插值滤波器执行插值。以子像素精度使用的插值滤波器的标识符可以包括在语法元素中。
运动补偿单元4502可以使用视频编码器4400在对视频块进行编码期间使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元4502可以根据接收的语法信息来确定由视频编码器4400使用的插值滤波器并且使用插值滤波器来产生预测块。
运动补偿单元4502可以使用一些语法信息来确定用于对编码视频序列的帧和/或条带进行编码的块的尺寸、描述编码视频序列的图片的每个宏块如何分割的分割信息、指示每个分割如何编码的模式、每个帧间编解码块的一个或多个参考帧(和参考帧列表)以及其他对编码的视频序列进行解码的信息。
帧内预测单元4503可以使用例如在比特流中接收的帧内预测模式来从空域相邻块形成预测块。逆量化单元4503对在比特流中提供并且由熵解码单元4501进行解码的量化视频块系数进行逆量化,也即去量化。逆变换单元4505应用逆变换。
重构单元4506可以将残差块与由运动补偿单元4502或帧内预测单元4503生成的相应预测块相加以形成解码块。如果需要,还可以应用去方块滤波器来过滤解码块,以便去除块状伪影。然后将解码的视频块存储在缓冲区4507中,其为之后的运动补偿/帧内预测提供参考块并且还产生用于在显示设备上呈现的解码视频。
图13为示例编码器4600的示意图。编码器4600适用于实施VVC技术。编码器4600包括三个环路滤波器,即去方块滤波器(deblocking filter,DF)4602、样点自适应偏移(sample adaptive offset,SAO)4604和自适应环路滤波器(adaptive loop filter,ALF)4606。与使用预定义滤波器的DF 4602不同,SAO 4604和ALF 4606利用当前图片的原始样点,分别通过添加偏移和应用有限脉冲响应(FIR)滤波器来减少原始样点和重构样点之间的均方误差,用编解码的边信息信令通知偏移量和滤波器系数。ALF 4606位于每张图片的最后一个处理阶段,可以看作是一种试图捕捉和修复先前的阶段产生的伪影的工具。
编码器4600还包括帧内预测组件4608和被配置为接收输入视频的运动估计/运动补偿(ME/MC)组件4610。帧内预测组件4608被配置为执行帧内预测,而ME/MC组件4610被配置为利用从参考图片缓冲区4612获得的参考图片来执行帧间预测。来自帧间预测或帧内预测的残差块被提供至变换(T)组件4614和量化(Q)组件4616中以生成量化残差变换系数,其被提供至熵编解码组件4618中。熵编解码组件4618对预测结果和量化变换系数进行熵编解码,并向视频解码器(未示出)传输相同的内容。从量化组件4616输出的量化组件可以被提供至逆量化(IQ)组件4620、逆变换组件4622和重构(REC)组件4624。REC组件4624能够将图像输出到DF 4602、SAO 4604和ALF 4606,以在这些图像被存储到参考图片缓冲区4612之前进行滤波。
以下提供一些示例优选的解决方案列表。
以下解决方案示出了本公开讨论的技术的示例。
1、一种媒体数据处理方法(例如,图9中描绘的方法4200),包括:对于包括视频单元的视频和使用基于神经网络的处理的视频的比特流之间的转换,基于规则确定对于当前视频单元使用外推过程和图像压缩器方案中的哪个编解码过程;以及根据该确定执行转换。
2、如解决方案1所述的方法,其中,外推过程是基于帧外推压缩FEC。
3、如解决方案2所述的方法,其中,FEC使用N个先前编解码的视频单元来预测当前视频单元,其中,N为正整数。
4、如解决方案3所述的方法,其中,在比特流中指示N和/或编解码过程。
5、一种视频处理方法,包括:使用视频处理装置执行视频与视频的比特流之间的转换,其中,视频处理系统包括被配置为处理视频的关键帧的空域-时域自适应压缩STAC模块和被配置为处理视频的非关键帧的双边预测学习压缩BPLC模块,其中,STAC模块包括用于去除视频中的空域或时域冗余的多种技术。
6、如解决方案5所述的方法,还包括:操作STAC模块来实施图像压缩或解压缩技术和基于外推的压缩或解压缩技术。
7、如解决方案5-6中任一项所述的方法,还包括:操作BPLC模块来使用N个参考帧,其中,N为大于1的整数。
8、如解决方案5-7中任一项所述的方法,还包括:操作BPLC模块以层级方式执行视频单元插值。
9、一种视频处理方法,包括:使用基于神经网络的处理执行视频和视频的比特流之间的转换;其中,视频包括一个或多个关键视频单元和一个或多个非关键视频单元,其中,根据规则使用空域-时域自适应压缩工具对关键视频单元进行选择性地编解码。
10、如解决方案9所述的方法,其中,该规则规定根据率失真最小化标准在空域-时域自适应压缩工具和图像处理工具之间使用。
11、如解决方案9所述的方法,其中,使用先前处理的关键帧对关键视频单元进行预测编解码。
12、如解决方案9所述的方法,其中,空域-时域自适应压缩工具包括帧间预测编解码工具,该工具包括基于流的编解码工具。
13、如解决方案9所述的方法,其中,空域-时域自适应压缩工具包括帧间预测编解码工具,该工具包括正向预测工具或反向预测工具。
14、如解决方案9所述的方法,其中,该规则能够使用帧内预测编解码工具。
15、如解决方案9所述的方法,其中,该规则能够使用运动压缩编解码工具。
16、如解决方案9所述的方法,其中,该规则能够使用多通道编解码工具。
17、如解决方案1-16中任一项所述的方法,其中,基于神经网络的处理包括,对于当前视频单元的转换,使用外推视频单元和残差视频单元。
18、如解决方案17所述的方法,其中,外推视频单元与残差视频单元连接,并用作编码器侧和解码器侧的神经网络处理中的输入。
19、如解决方案1-18中任一项所述的方法,其中,视频单元包括视频图片或视频条带或视频片或视频子图片。
20、如解决方案1-18中任一项所述的方法,其中,视频单元包括编解码树单元CTU行、CTU、编解码树块CTB、编解码单元CU、预测单元PU、变换单元TU、编解码块CB、变换块TB、虚拟流水线数据单元VPDU、或者样点区域。
21、如解决方案1-20中任一项所述的方法,其中,转换包括从视频生成比特流。
22、如解决方案1-20中任一项所述的方法,其中,转换包括从比特流生成视频。
23、一种视频解码装置,包括被配置为实施如解决方案1-21中的一个或多个中所述的方法的处理器。
24、一种视频编码装置,包括被配置为实施如解决方案1-21中的一个或多个中所述的方法的处理器。
25、一种其上存储有计算机代码的计算机程序产品,该代码在由处理器执行时使处理器实施如解决方案1-22中任一项中所述的方法。
26、一种视频处理方法,包括:根据解决方案1-21中的任一个或多个中所述的方法生成比特流,并且将该比特流存储在计算机可读介质上。
27、一种在本公开中描述的方法、装置或系统。
在本文所述的解决方案中,编码器可以通过根据格式规则产生编解码表示来符合格式规则。在本文描述的解决方案中,解码器可以使用格式规则来解析编解码表示中的语法元素,根据格式规则了解语法元素的存在和不存在,以生成解码视频。
在本公开中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在从视频的像素表示转换为相应的比特流表示期间应用,反之亦然。当前视频块的比特流表示可以例如对应于在比特流内共位或分布在不同位置的比特,如语法所定义。例如,宏块可以根据变换和编解码的误差残差值进行编码,并且也可以使用比特流中的标头和其他字段中的比特。此外,在转换期间,解码器可以基于该确定在了解一些字段可能存在或不存在的情况下解析比特流,如以上解决方案中所描述的。类似地,编码器可以确定包括或不包括某些语法字段,并通过从编解码表示中包括或排除语法字段来相应地生成编解码表示。
本文档中所公开的和其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路或计算机软件、固件或硬件中实现,包括本文档中公开的结构及其结构等效物,或其中的一种或多种的组合。所公开的和其他实施例可以实施为一个或多个计算机程序产品,即,在计算机可读介质上编码的一个或多个计算机程序指令模块,由数据处理装置执行或控制操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质组合物,或者其中的一个或多个的组合。术语“数据处理装置”涵盖处理数据的所有装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或其中一个或多个的组合的代码。传播的信号是人工生成的信号,例如机器生成的电、光或电磁信号,其被生成是为了对信息进行编码以传输到合适的接收器装置。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且可以以任何形式进行部署,包括独立程序或适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)。可以部署计算机程序,以在一台计算机或位于一个位置上或分布在多个位置上并通过通信网络互连的多台计算机上执行。
本文档中描述的过程和逻辑流程可以由一个或多个可编程处理器来执行,以执行一个或多个计算机程序,从而通过对输入数据进行操作并产生输出来执行功能。处理和逻辑流程也可以由专用逻辑电路执行,并且也可以实现为专用逻辑电路,例如FPGA(fieldprogrammable gate array,现场可编程门阵列)或ASIC(application specificintegrated circuit,应用专用集成电路)。
例如,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合到一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,以从中接收数据,或将数据传输到一个或多个大容量存储设备,或两者。但是,计算机不必具有这样的装置或设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内置硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
尽管本专利文档包含许多细节,但是这些细节不应解释为对任何发明或可要求保护的范围的限制,而应解释为对特定发明的特定实施例可能特定的特征的描述。在单独的实施例的上下文中在本专利文档中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。此外,尽管以上可以将特征描述为以某些组合起作用并且甚至最初如此要求保护,但是在某些情况下,可以从组合中剔除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行此类操作,或要求执行所有所示操作以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离。
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容进行其他实施方式、增强和变化。
当除了第一组件和第二组件之间的线、迹线或另一介质之外没有中间组件时,第一组件直接耦合到第二组件。当在第一组件和第二组件之间存在除了线、迹线或另一介质之外的中间组件时,第一组件间接耦合到第二组件。术语“耦合”及其变体包括直接耦合和间接耦合。除非另有说明,术语“大约”的使用是指包括后续数值的±10%的范围。
虽然本公开中提供了若干实施例,但应当理解,在不脱离本公开的精神或范围的情况下,所公开的系统和方法可以以许多其他特定形式体现。当前示例应被认为是说明性的而非限制性的,并且其意图不限于本公开给出的细节。例如,可以将各种元件或组件组合或集成在另一个系统中,或者可以省略或不实施某些特征。
此外,在不背离本公开的范围的情况下,在各个实施例中描述和所示的分离或单独的技术、系统、子系统和方法可以与其他系统、模块、技术或方法组合或集成。所示或讨论为耦合的其他项目可以直接连接,或者可以通过一些接口、设备或中间组件以电、机械或其他方式间接耦合或通信。本领域的技术人员可以确定改变、替换和变更的其他示例,并且可以在不脱离本公开的精神和范围的情况下进行这些改变、替换和变更。

Claims (20)

1.一种处理视频数据的方法,包括:
确定将基于端到端神经网络的视频编解码器应用到视频的当前视频单元,其中,所述基于端到端神经网络的视频编解码器包括空域-时域自适应压缩STAC组件,所述空域-时域自适应压缩STAC组件包括帧外推压缩FEC分支和图像压缩分支;以及
通过所述基于端到端神经网络的视频编解码器执行所述当前视频单元和所述视频的比特流之间的转换。
2.根据权利要求1所述的方法,其中,基于所述当前视频单元的运动信息、所述当前视频单元的熵或者其组合,通过所述FEC分支和所述图像压缩分支之一来分配所述当前视频单元进行转换。
3.根据权利要求1所述的方法,其中,所述FEC分支采用多个编解码帧作为参考帧来预测所述当前视频单元,并且其中,所述比特流中包括所述参考帧和所述当前视频单元之间的运动信息的指示。
4.根据权利要求1所述的方法,其中,所述FEC分支采用多个编解码帧作为参考帧来预测所述当前视频单元,并且其中,所述比特流中不包括所述参考帧和所述当前视频单元之间的运动信息。
5.根据权利要求1所述的方法,其中,所述基于端到端神经网络的视频编解码器还包括双边预测学习压缩BPLC组件,其中,当所述当前视频单元为关键帧时,所述STAC组件执行对所述当前视频单元的所述转换,并且其中,当所述当前视频单元不是关键帧时,所述BPLC组件执行对所述当前视频单元的所述转换。
6.根据权利要求5所述的方法,其中,所述BPLC组件基于至少一个在前参考帧和至少一个在后参考帧对所述当前视频单元进行插值。
7.根据权利要求1所述的方法,其中,基于在前重构关键帧、在后重构关键帧、运动信息、多个参考帧或者其组合来预测所述当前视频单元。
8.根据权利要求1所述的方法,其中,所述基于端到端神经网络的视频编解码器选择多个帧间预测压缩网络之一应用于所述当前视频单元。
9.根据权利要求8所述的方法,其中,所述多个帧间预测压缩网络包括基于流的网络,所述基于流的网络通过推导光流来对所述当前视频单元进行编解码。
10.根据权利要求9所述的方法,其中,所述多个帧间预测压缩网络包括基于内核的网络,所述基于内核的网络通过将学习内核与一个或多个参考帧进行卷积以推导预测帧来对所述当前视频单元进行编解码。
11.根据权利要求8所述的方法,其中,对所述多个帧间预测压缩网络之一的所述选择包括在所述比特流中。
12.根据权利要求1所述的方法,其中,所述基于端到端神经网络的视频编解码器选择多个帧内预测压缩网络之一应用于所述当前视频单元。
13.根据权利要求1所述的方法,其中,所述基于端到端神经网络的视频编解码器使用块预测和帧预测的组合对所述当前视频单元进行编解码。
14.根据权利要求1所述的方法,其中,所述基于端到端神经网络的视频编解码器选择多个运动压缩网络之一应用于所述当前视频单元。
15.根据权利要求1所述的方法,其中,所述转换包括将所述当前视频单元编码成所述比特流。
16.根据权利要求1所述的方法,其中,所述转换包括从所述比特流解码所述当前视频单元。
17.一种处理视频数据的装置,包括:
处理器;以及
其上具有指令的非暂时性存储器,其中,所述指令在由所述处理器执行时使所述处理器:
确定将基于端到端神经网络的视频编解码器应用到视频的当前视频单元,其中,所述基于端到端神经网络的视频编解码器包括空域-时域自适应压缩STAC组件,所述空域-时域自适应压缩STAC组件包括帧外推压缩FEC分支和图像压缩分支;以及
通过所述基于端到端神经网络的视频编解码器执行所述当前视频单元和所述视频的比特流之间的转换。
18.根据权利要求17所述的装置,其中,基于所述当前视频单元的运动信息、所述当前视频单元的熵或者其组合,通过所述FEC分支和所述图像压缩分支之一来分配所述当前视频单元进行转换。
19.根据权利要求17所述的装置,其中,所述基于端到端神经网络的视频编解码器还包括双边预测学习压缩BPLC组件,其中,当所述当前视频单元为关键帧时,所述STAC组件执行对所述当前视频单元的所述转换,并且其中,当所述当前视频单元不是关键帧时,所述BPLC组件执行对所述当前视频单元的所述转换。
20.一种非暂时性计算机可读记录介质,存储由视频处理装置执行的方法生成的视频的比特流,其中,所述方法包括:
确定将基于端到端神经网络的视频编解码器应用到所述视频的当前视频单元,其中,所述基于端到端神经网络的视频编解码器包括空域-时域自适应压缩STAC组件,所述空域-时域自适应压缩STAC组件包括帧外推压缩FEC分支和图像压缩分支;以及
通过所述基于端到端神经网络的视频编解码器生成所述比特流。
CN202210625548.XA 2021-06-03 2022-06-02 基于神经网络的时域-空域自适应视频压缩 Pending CN115442618A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202163196332P 2021-06-03 2021-06-03
US63/196,332 2021-06-03

Publications (1)

Publication Number Publication Date
CN115442618A true CN115442618A (zh) 2022-12-06

Family

ID=84240934

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210625548.XA Pending CN115442618A (zh) 2021-06-03 2022-06-02 基于神经网络的时域-空域自适应视频压缩

Country Status (2)

Country Link
US (1) US20220394240A1 (zh)
CN (1) CN115442618A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115834905A (zh) * 2023-02-09 2023-03-21 北京大学 帧间预测的方法、装置、电子设备及介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116437089B (zh) * 2023-06-08 2023-09-05 北京交通大学 一种基于关键目标的深度视频压缩方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200053388A1 (en) * 2018-08-10 2020-02-13 Disney Enterprises, Inc. Machine learning based video compression

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115834905A (zh) * 2023-02-09 2023-03-21 北京大学 帧间预测的方法、装置、电子设备及介质
CN115834905B (zh) * 2023-02-09 2023-04-11 北京大学 帧间预测的方法、装置、电子设备及介质

Also Published As

Publication number Publication date
US20220394240A1 (en) 2022-12-08

Similar Documents

Publication Publication Date Title
Rippel et al. Learned video compression
CN114501010B (zh) 图像编码方法、图像解码方法及相关装置
US10432961B2 (en) Video encoding optimization of extended spaces including last stage processes
CN115442618A (zh) 基于神经网络的时域-空域自适应视频压缩
US20160353107A1 (en) Adaptive quantization parameter modulation for eye sensitive areas
US9565404B2 (en) Encoding techniques for banding reduction
WO2022221374A9 (en) A method and an apparatus for encoding/decoding images and videos using artificial neural network based tools
US20220337824A1 (en) System and method for applying neural network based sample adaptive offset for video coding
CN115836525A (zh) 用于从多个交叉分量进行预测的方法和系统
WO2024020053A1 (en) Neural network-based adaptive image and video compression method
CN114793282B (zh) 带有比特分配的基于神经网络的视频压缩
CN113615173A (zh) 对仿射译码块进行光流预测修正的方法及装置
Jenab et al. Content-adaptive resolution control to improve video coding efficiency
CN117616751A (zh) 动态图像组的视频编解码
WO2023241690A1 (en) Variable-rate neural network based compression
US20160360219A1 (en) Preventing i-frame popping in video encoding and decoding
KR20210015811A (ko) 코딩/디코딩에서의 데이터 종속
WO2024020112A1 (en) A neural network-based adaptive image and video compression method with variable rate
WO2024083249A1 (en) Method, apparatus, and medium for visual data processing
WO2024083250A1 (en) Method, apparatus, and medium for video processing
Jadhav Variable rate video compression using a hybrid recurrent convolutional learning framework
WO2023138686A1 (en) Method, apparatus, and medium for data processing
WO2024083247A1 (en) Method, apparatus, and medium for visual data processing
WO2023138687A1 (en) Method, apparatus, and medium for data processing
WO2023165596A1 (en) Method, apparatus, and medium for visual data processing

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