CN116114247A - 基于端到端神经网络的视频译码 - Google Patents

基于端到端神经网络的视频译码 Download PDF

Info

Publication number
CN116114247A
CN116114247A CN202180061904.3A CN202180061904A CN116114247A CN 116114247 A CN116114247 A CN 116114247A CN 202180061904 A CN202180061904 A CN 202180061904A CN 116114247 A CN116114247 A CN 116114247A
Authority
CN
China
Prior art keywords
frame
channel
layer
values associated
output
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
CN202180061904.3A
Other languages
English (en)
Inventor
M·Z·科班
A·K·辛格
H·E·埃吉尔梅兹
M·卡尔切维茨
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN116114247A publication Critical patent/CN116114247A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • 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
    • 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/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/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/117Filters, e.g. for pre-processing or post-processing
    • 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
    • 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/172Methods 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 picture, frame or field
    • 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
    • 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/048Activation functions

Landscapes

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

Abstract

本文描述了用于使用神经网络系统处理视频数据的系统和技术。例如,过程可以包括:由神经网络系统的编码器子网络的第一卷积层生成与帧的亮度通道相关联的输出值。该过程可以包括由编码器子网络的第二卷积层生成与帧的至少一个色度通道相关联的输出值。该过程可以包括通过对与帧的亮度通道相关联的输出值和与帧的至少一个色度通道相关联的输出值进行组合来生成帧的经组合表示。该过程可以包括基于帧的经组合表示生成经编码视频数据。

Description

基于端到端神经网络的视频译码
技术领域
本公开通常涉及图像和视频译码,包括图像和/或视频的编码(或压缩)和解码(解压缩)。例如,本公开的各方面涉及用于使用基于端到端机器学习(例如,神经网络)的图像和视频译码系统对亮度-色度(YUV)输入格式(例如,YUV420、YUV444、YUV422等)和/或其他输入格式进行处理的技术。
背景技术
许多设备和系统允许视频数据被处理并输出以供使用。数字视频数据包括大量数据,以满足消费者和视频提供者的需求。例如,视频数据的消费者期望高质量视频,包括高的保真度、分辨率、帧速率等。因此,满足这些需求所需要的大量视频数据给处理和存储视频数据的通信网络和设备带来了负担。
可以使用视频译码技术来压缩视频数据。视频译码的目标是将视频数据压缩成使用低比特率的形式,同时避免或最小化视频质量的下降。随着持续演进的视频服务变得可用,需要具有更高译码效率的编码技术。
发明内容
描述了用于使用一个或多个机器学习系统对图像和/或视频内容进行译码(例如,编码和/或解码)的系统和技术。例如,提供了一种基于端到端机器学习(例如,神经网络)的图像和视频译码(E2E-NNVC)系统,该系统可以处理YUV(数字域YCbCr)输入格式(以及在一些情况下可以处理其他输入格式)。该E2E-NNVC系统可以对独立帧(也称为图像)和/或包括多个帧的视频数据进行处理。YUV格式包括亮度通道(Y)和一对色度通道(U和V)。U通道和V通道可以相对于Y通道被子采样,而不会对视觉质量产生显著或明显的影响。在YUV格式中,通道之间的相关性被减小,而其他色彩格式(例如,红-绿-蓝(RGB)格式)可能不是这种情况。
本文中所描述的一些示例通过对采用具有不同特性的通道的视频格式启用E2E-NNVC操作来改进设备的操作。例如,一些YUV格式(例如,YUV420格式)包括亮度通道(Y通道),该亮度通道的分辨率大于(例如,水平和垂直维度两者上的像素数量的两倍)色度通道(U和V通道)的分辨率。标准E2E-NNVC系统不能有效地处理这种视频格式。本文中所描述的示例构造初始编码层和最终解码层。初始编码层和最终解码层对不同通道的特性进行均化(equalize)以使得这些不同的通道一起被E2E-NNVC系统的其他层处理。初始编码层和最终解码层可以包括用于现有RGB系统的卷积层,其中第二并行层用于处理具有不同特性的通道(例如,修改的RGB处理系统)。可以针对YUV格式处理专门设计其他的示例。诸如,使用YUV420格式作为说明性示例,亮度通道被初始层下采样,而色度通道不被下采样。在初始层处的归一化(例如,执行操作以平衡数据)之后,亮度和色度数据处于共享分辨率并且可以一起被剩余的编码和解码步骤处理直到最终解码层为止,其中色度和亮度数据被分离并被不同地处理以返回YUV 420格式。与初始编码层相似,在最终解码层中,亮度数据可以被上采样,而色度数据在最终层中不被进行上采样。其他示例包括使用初始编码层和最终解码层来执行这种操作以对通道数据进行标准化的其他这种结构。这种层通过允许在处理采用具有不同特性的通道的数据的过程中使用标准化的中心NNVC层(例如,在视频格式采用具有相似特性的通道(例如RGB格式数据)的情况下使用的层),进一步提高了设备的操作和效率。
一些示例可以通过对初始层的数据进行高效处理来进一步改进设备的操作。例如,针对各通道可以选择定制的滤波器,而不是在较高分辨率通道和较低分辨率通道上使用相同的滤波器。当较小的滤波器被用于较低分辨率通道时,所使用的处理资源被减少(例如,与对较高分辨率通道和较低分辨率通道都使用较大的滤波器相比),而当较大的滤波器被用于较大分辨率通道时,视频质量被提高(例如,与对较高分辨率通道和较低分辨率通道都使用较小的滤波器相比)。此外,针对初始编码层和最终解码层处的不同通道的目标归一化(例如,平衡操作、缩放操作或其他操作)允许具有不同统计特性(例如,不同平均值、方差或可以影响视频处理结果的其他这种统计特性)的通道被独立地管理并被标准化以由剩余层进行处理,从而在给定量的视频压缩下提高了整体视频质量。因为采用具有不同特性(例如,分辨率或统计特性)的通道的视频格式在许多视频通信系统中提供改进的压缩,所以与现有的E2E-NNVC(例如,RGB格式)系统相比,上述示例通过进一步使能改进的通信效率来改进E2E-NNVC系统的操作。
在一个说明性示例中,提供了一种编码视频数据的方法。该方法包括:由神经网络系统的编码器子网络的第一卷积层生成与帧的亮度通道相关联的输出值;由编码器子网络的第二卷积层生成与该帧的至少一个色度通道相关联的输出值;通过对与该帧的该亮度通道相关联的输出值和与该帧的该至少一个色度通道相关联的输出值进行组合来生成该帧的经组合表示;以及基于该帧的经组合表示生成经编码视频数据。
在另一示例中,提供了一种用于编码视频数据的装置。该装置包括:存储器和耦接至该存储器的处理器(例如,以电路的方式实现)。在一些示例中,多于一个处理器可以被耦接至存储器并可以被用于执行操作中的一个或多个。处理器被配置为:使用神经网络系统的编码器子网络的第一卷积层生成与帧的亮度通道相关联的输出值;使用编码器子网络的第二卷积层生成与该帧的至少一个色度通道相关联的输出值;通过对与该帧的该亮度通道相关联的输出值和与该帧的该至少一个色度通道相关联的输出值进行组合来生成该帧的经组合表示;以及基于该帧的经组合表示生成经编码视频数据。
在另一示例中,提供了一种用于编码视频数据的非暂时性计算机可读介质,其上存储有指令。当这些指令被一个或多个处理器执行时,使得这一个或多个处理器:使用神经网络系统的编码器子网络的第一卷积层生成与帧的亮度通道相关联的输出值;使用编码器子网络的第二卷积层生成与该帧的至少一个色度通道相关联的输出值;通过对与该帧的该亮度通道相关联的输出值和与该帧的该至少一个色度通道相关联的输出值进行组合来生成该帧的经组合表示;以及基于该帧的经组合表示生成经编码视频数据。
在另一示例中,提供了一种用于编码视频数据的装置。该装置包括:用于生成与帧的亮度通道相关联的输出值的部件;用于生成与该帧的至少一个色度通道相关联的输出值的部件;用于通过对与该帧的该亮度通道相关联的输出值和与该帧的该至少一个色度通道相关联的输出值进行组合来生成该帧的经组合表示的部件;以及用于基于该帧的经组合表示生成经编码视频数据的部件。
在一些方面,上述用于编码视频数据的方法、装置和计算机可读介质还包括:使用编码器子网络的第一归一化层处理与该帧的该亮度通道相关联的输出值;以及使用编码器子网络的第二归一化层处理与该帧的该至少一个色度通道相关联的输出值。在这方面,经组合表示基于第一归一化层的输出和第二归一化层的输出被生成。
在一些方面,该至少一个色度通道和该亮度通道具有不同的统计特性。在一些方面,第一归一化层和第二归一化层被配置为对与该至少一个色度通道相关联的输出值的统计特性和与该亮度通道相关联输出值的统计特性进行平衡。
在一些方面,编码器子网络的第一卷积层对该帧的该亮度通道进行子采样。在一些情况下,第一卷积层的亮度滤波器的亮度滤波器尺寸大于第二卷积层的色度滤波器的色度滤波器尺寸。
在一些方面,上述用于编码视频数据的方法、装置和计算机可读介质还包括:访问与该帧的该亮度通道相关联的输入亮度值,其中输入亮度值还与亮度分辨率相关联;以及访问与该帧的该至少一个色度通道相关联的输入色度值,其中输入色度值还与色度分辨率相关联,并且其中亮度分辨率大于色度分辨率。
在一些方面,第一卷积层的亮度滤波器具有五像素乘五像素的亮度滤波器尺寸,以及其中,第二卷积层的色度滤波器具有三像素乘三像素的色度滤波器尺寸。
在另一说明性示例中,提供了一种解码视频数据的方法。该方法包括:获得经编码帧;由神经网络系统的解码器子网络的第一卷积层生成与经编码帧的亮度通道相关联的重建输出值;由解码器子网络的第二卷积层生成与经编码帧的至少一个色度通道相关联的重建输出值;以及生成包括与该亮度通道相关联的重建输出值和与该至少一个色度通道相关联的重建输出值的输出帧。
在另一示例中,提供了一种用于解码视频数据的装置。该装置包括存储器和耦接至该存储器的处理器(例如,以电路的方式实现)。在一些示例中,多于一个处理器可以被耦接至存储器并且可以被用于执行操作中的一个或多个。处理器被配置为:获得经编码帧;使用神经网络系统的解码器子网络的第一卷积层生成与经编码帧的亮度通道相关联的重建输出值;使用解码器子网络的第二卷积层生成与经编码帧的至少一个色度通道相关联的重建输出值;以及生成包括与该亮度通道相关联的重建输出值和与该至少一个色度通道相关联的重建输出值的输出帧。
在另一示例中,提供了一种用于解码视频数据的非暂时性计算机可读介质,其上存储有指令,当这些指令被一个或多个处理器执行时,使得这一个或多个处理器:获得经编码帧;使用神经网络系统的解码器子网络的第一卷积层生成与经编码帧的亮度通道相关联的重建输出值;使用解码器子网络的第二卷积层生成与经编码帧的至少一个色度通道相关联的重建输出值;以及生成包括与该亮度通道相关联的重建输出值和与该至少一个色度通道相关联的重建输出值的输出帧。
在另一示例中,提供了一种用于解码视频数据的装置。该装置包括:用于获得经编码帧的部件;用于生成与经编码帧的亮度通道相关联的重建输出值的部件;用于生成与经编码帧的至少一个色度通道相关联的重建输出值的部件;以及用于生成包括与该亮度通道相关联的重建输出值和与该至少一个色度通道相关联的重建输出值的输出帧的部件。
在一些方面,上述用于解码视频数据的方法、装置和计算机可读介质还包括:使用解码器子网络的第一归一化层对与经编码帧的该亮度通道相关联的值进行处理,其中,与该亮度通道相关联的重建输出值基于第一归一化层的输出被生成;以及使用解码器子网络的第二归一化层对与经编码帧的该至少一个色度通道相关联的值进行处理,其中,与该至少一个色度通道相关联的重建输出值基于第二归一化层的输出被生成。
在一些方面,上述用于解码视频数据的方法、装置和计算机可读介质还包括:使用解码器子网络的第一归一化层对与经编码帧的该亮度通道相关联的值进行处理,其中,与该亮度通道相关联的重建输出值基于第一归一化层的输出被生成;以及使用解码器子网络的第二归一化层对与经编码帧的该至少一个色度通道相关联的值进行处理,其中,与该至少一个色度通道相关联的重建输出值基于第二归一化层的输出被生成。
在一些方面,解码器子网络的第一卷积层对经编码帧的该亮度通道进行上采样。
在一些方面,第一卷积层的亮度滤波器的亮度滤波器尺寸大于第二卷积层的色度滤波器的色度滤波器尺寸。
在一些方面,亮度滤波器尺寸是九像素乘九像素,而色度滤波器尺寸是五像素乘五像素。
在一些方面,上述用于解码视频数据的方法、装置和计算机可读介质还包括对经编码帧的样本进行熵解码。
在一些方面,上述用于解码视频数据的方法、装置和计算机可读介质还包括:使用神经网络系统的编码器子网络的第一卷积层生成与帧的该亮度通道相关联的输出值;使用编码器子网络的第二卷积层生成与该帧的该至少一个色度通道相关联的输出值;通过对与该帧的该亮度通道相关联的输出值和与该帧的该至少一个色度通道相关联的输出值进行组合来生成该帧的经组合表示;以及基于该帧的经组合表示生成该经编码视频数据。
在一些方面,装置包括移动设备(例如,移动电话或所谓的“智能电话”、平板计算机或其他类型的移动设备)、可穿戴设备、扩展现实设备(例如,虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR)设备)、个人计算机、膝上型计算机、视频服务器、电视、载具(或载具的计算设备)或其他设备。在一些方面,装置包括至少一个用于捕获一个或多个图像或视频帧的相机。例如,装置可以包括用于捕获一个或多个图像和/或包括视频帧的一个或多个视频的一个或多个相机(例如,RGB相机)。在一些方面,装置包括用于显示一个或多个图像、视频、通知或其他可显示数据的显示器。在一些方面,装置包括被配置为通过传输介质向至少一个设备发送一个或多个视频帧和/或语法数据的发送器。在一些方面,处理器包括神经处理单元(NPU)、中央处理单元(CPU)、图形处理单元(GPU)或其他处理设备或组件。
本概述不旨在标识要求保护的主题的关键或基本特征,也不旨在单独使用以确定要求保护的主题的范围。应该通过参考本专利的整个说明书、任何或全部附图以及每项权利要求的适当部分来理解该主题。
参考以下说明书、权利要求和附图,上述内容连同其他特征和实施例将变得更加明显。
附图说明
以下参考附图对本申请的说明性实施例进行详细描述。
图1示出了根据一些示例可以被用于实现神经网络视频译码层的片上系统(systme-on-a-chip,SOC)的示例实现方式;
图2A示出了根据本文所述的一些示例的神经网络的方面;
图2B示出了根据本文所述的一些示例的神经网络的方面;
图2C示出了根据本文所述的一些示例的神经网络的方面;
图2D示出了根据本文所述的一些示例被设计的用于从图像中识别视觉特征的深度卷积网络(DCN)的方面;
图3是示出根据本文所述的示例的深度卷积网络(DCN)的方面的框图;
图4是示出根据一些示例的系统的示例的图,该系统包括可操作以使用基于神经网络的系统执行图像和/或视频译码(例如,编码和解码)的设备;
图5A是示出基于神经网络的图像和视频译码系统的方面的图;
图5B是示出根据本文所述的示例的基于神经网络的图像和视频译码系统的方面的图;
图6是示出根据一些示例的针对具有亮度-色度(YUV)格式的输入的基于端到端神经网络的图像和视频译码系统的示例的图;
图7是示出根据一些示例的用于处理视频数据的过程的示例的流程图;
图8是示出根据一些示例的用于处理视频数据的过程的另一示例的流程图;以及
图9示出了可以实现本文所述的多种技术的示例计算设备的示例计算设备架构。
具体实施方式
下文中提供了本公开的特定方面和实施例。本领域技术人员明白的是,这些方面和实施例中的一些可以被独立应用而其中的一些可以被组合应用。在以下描述中,出于解释的目的,阐述了具体细节以提供对本申请的实施例的透彻理解。然而,很明显的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述不旨在是限制性的。
随后的描述仅提供示例实施例,并不旨在限制本公开的范围、适用性或配置。相反,示例实施例的随后描述将为本领域技术人员提供用于实现示例实施例的使能描述。应当理解,在不脱离如所附权利要求所阐述的本申请的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
本公开的方面通常涉及图像和视频译码,包括图像和/或视频的编码(或压缩)和解码(解压缩)。本公开的一些方面涉及用于使用基于端到端机器学习的图像和视频译码系统(例如,端到端神经网络视频译码(E2E-NNVC)系统)对亮度-色度(YUV)输入格式(例如,YUV420、YUV444、YUV422等)和/或对采用具有不同特性的通道的其他输入格式进行处理的技术。
如上所述,数字视频涉及大量的数据,并且视频数据的网络传输持续增长,从而需要对网络资源的有效压缩和有效使用。计算功率的提高推动了机器学习结构(例如,神经网络)的使用,这可以充分利用处理设备的改进来标识数据中的非预期关系并提高各种应用中的数据分析。视频通信系统中的大量数据与神经网络的处理器密集性相结合,使得资源的有效利用对于视频译码系统中的机器学习结构尤为重要。同时,视频译码系统的重要方面是图像质量,而过度的压缩会损害图像质量。
YUV视频格式使用一系列色彩空间,这些色彩空间在与色彩信息分开的通道中对亮度信息进行编码。相比之下,红-绿-蓝(RGB)视频格式在不同的通道(例如,红色通道、绿色通道和蓝色通道)中对不同色彩的亮度信息和色彩信息进行编码。然而YUV格式本质上并不比RGB格式更紧凑,因为人眼对色调变化不如对亮度变化敏感,所以与亮度通道(例如,亮度通道)相比,YUV视频格式可以在色彩通道(例如,色度通道)上使用额外的压缩。与RGB格式视频相比,该差别可以允许针对YUV格式视频的更大的压缩和更有效的网络资源利用,但可能导致译码系统对具有不同特性(例如,每帧像素数、统计特性(诸如,像素数据的均值和方差等))的通道进行处理。
神经网络结构被高度定制以输入数据,因此不同通道(例如YUV格式数据中的Y通道和UV通道)的特性使用不同的神经网络处理结构来处理数据。尽管YUV格式具有与压缩级别相关联的益处和与感知图像质量相关联的益处,但是使用两个单独的神经网络处理路径却是低效的。本文所述的示例包括对具有不同特性的通道进行单独处理并对数据特性进行标准化的初始神经网络译码层,使得E2E-NNVC系统中的后续处理层可以被不同的通道共享。相似地,根据本文所述的示例的解码使用共享层来处理不同的通道。最终输出层中的单独的处理路径可以获得标准化的经编码数据,并且可以在最终层中对具有不同特性的各通道进行处理以生成输出数据。
本文所述的一些示例对具有不同特性的各YUV通道所需的额外资源与YUV译码的益处进行平衡,以提高E2E-NNVC系统的性能。通过对YUV格式进行本地处理,RGB-YUV转换会使用的处理资源针对YUV视频译码被消除。此外,通过使用初始层和最终层来管理通道差别,将共享的中部层或中间层(例如,初始编码层和最终解码层之间的层)用于具有不同本地特性的通道,从而实现针对中部层的有效处理资源使用。上述各方面改进了视频译码设备和系统的操作。
另外,在一些方面,初始编码层和最终解码层可以被构造为对不同的通道进行高效滤波。例如,较高分辨率的亮度(Y)层可以使用单独的具有较大的滤波器(例如,5×5滤波器)的滤波器结构,而较低分辨率的色度(U和V)层可以使用较小的滤波器(例如,3×3滤波器)。通过使用针对初始编码层和最终解码层中的特定通道的特性的滤波器,可以基于各通道的特性来分配用于实现期望图像质量的资源。相比之下,在初始层和最终层中使用单个滤波器会导致过多的资源被专用于较低分辨率数据或者会导致其中较小的滤波器被用于较高分辨率数据的较低图像质量。本文所述的一些示例通过使用设计于通道级的初始编码层和最终解码层中的视频滤波器来高效地平衡资源利用和视频图像质量,从而提高了译码设备的操作。结果是改善的图像质量(例如,与被应用于不同分辨率的通道的较小滤波器相比)、减少的处理资源利用(例如,与被应用于不同分辨率的通道的较大滤波器相比),或者以上两者(例如,由于用于较低分辨率通道的较小滤波器和对具有不同统计特性的通道的不同归一化的益处)。
如上所述,视频数据,尤其是数字视频数据,可以包括大量的数据,特别是由于对高质量视频数据的需求持续增长。例如,视频数据的消费者通常期望视频质量越来越高,具有高保真度、高分辨率、高帧速率等。然而,满足这种需求所需的大量的视频数据会给通信网络以及处理和存储视频数据的设备带来重大负担。
可以使用各种技术对视频数据进行译码。可以根据特定的视频译码标准来执行视频译码。示例视频译码标准包括高效视频译码(HEVC)、高级视频译码(AVC)、运动图像专家组(MPEG)译码和多功能视频译码(VVC)。视频译码通常使用诸如帧间预测或帧内预测的预测方法,这些方法利用了视频图像或序列中存在的冗余。视频译码技术的共同目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的下降。随着对视频服务的需求增长以及新的视频服务变得可用,需要具有更好的译码效率、更高的性能和更好的速率控制的译码技术。
本文描述了用于使用一个或多个机器学习(machine learning,ML)系统执行图像和/或视频译码的系统、装置、过程(也称为方法)以及计算机可读介质(统称为“系统和技术”)。通常,ML是人工智能(artificial intelligence,AI)的一个子集。ML系统可以包括算法和统计模型,凭借模式和推理而无需使用显式指令,计算机系统可以使用这些算法和统计模型来执行各种任务。ML系统的一个示例是可以包括一组互连的人工神经元(例如,神经元模型)的神经网络(也称为人工神经网络)。神经网络可以被用于各种应用和/或设备,诸如,图像和/或视频译码、图像分析和/或计算机视觉应用、互联网协议(IP)相机、物联网(IoT)设备、自主车辆、服务机器人等。
神经网络中的各个节点可以通过获取输入数据并对数据执行简单的操作来仿真生物神经元。对输入数据执行的简单操作的结果被选择性地传递给其他神经元。权重值与网络中的每个向量和节点相关联,并且这些值对输入数据如何与输出数据关联进行约束。例如,可以将每个节点的输入数据乘以对应的权重值,并且可以对乘积求和。可以通过可选的偏置对乘积的和进行调整,并且可以对结果应用激活函数,从而产生节点的输出信号或“输出激活”(有时称为激活图或特征图)。权重值最初可以由通过网络的训练数据的迭代流来确定(例如,权重值在其中网络学习如何通过其典型的输入数据特性来标识特定类的训练阶段期间被建立)。
不同类型的神经网络存在,诸如,卷积神经网络(CNN)、循环神经网络(RNN)、生成对抗网络(GAN)、多层感知器(MLP)神经网络等。诸如,卷积神经网络(CNN)是一种前馈人工神经网络。卷积神经网络可以包括人工神经元的集合,其都具有感受野(例如,输入空间的空间局部区域)并且共同拼成输入空间。RNN的工作原理是对层的输出进行保存并将该输出反馈给输入,以帮助预测该层的结果。GAN是一种生成型神经网络的形式,其可以学习输入数据中的模式,以使得神经网络模型可以生成新的、可以合理地来自原始数据集的合成输出。GAN可以包括两个一起工作的神经网络,包括生成合成输出的生成型神经网络和评估输出的真实性的辨别神经网络。在MLP神经网络中,数据可以被馈送到输入层,而一个或多个隐藏层为数据进行多级别提取。然后基于经提取的数据在输出层上进行预测。
在分层神经网络架构(当存在多个隐藏层时被称为深度神经网络)中,第一层人工神经元的输出成为第二层人工神经元的输入,第二层人工神经元的输出成为第三层人工神经元的输入,依此类推。例如,CNN可以被训练以识别特征的层次。CNN架构中的计算可以被分配在一组处理节点上,其可以被配置在一个或多个计算链中。这些多层架构可以一次被训练一层,并且可以使用反向传播被微调。
在一些方面,本文所述的系统和技术包括被设计用于处理具有亮度-色度(YUV)输入格式的输入数据的基于端到端ML(例如,使用神经网络架构)的图像和视频译码(E2E-NNVC)系统。YUV格式包括亮度通道(Y)和一对色度通道(U和V)。U通道可以被称为色度(chrominance)(或色彩度(chroma))-蓝通道而U通道可以被称为色度(或色彩度)-红通道。在一些情况下,亮度(luminance)(Y)通道或分量还可以被称为明亮度(luma)通道或分量。在一些情况下,色度(U和V)通道或分量也可以被称为色彩度通道或分量。YUV输入格式可以包括YUV420、YUV444、YUV422等。在一些情况下,本文所述的技术和系统可以被设计成处理其他输入格式,诸如具有Y-色彩度蓝(Cb)-色彩度红(Cr)(YCbCr)格式、红-绿-蓝(RGB)格式和/或其他格式的数据。YUV格式用于模拟域和YCbCr格式。E2E-NNVC系统可以对独立帧(也称为图像)和/或包括多个帧的视频数据进行编码和/或解码。
在许多情况下,E2E-NNVC系统被设计为自动编码器子网络(编码器子网络)和第二子网络的组合,第二个子网络负责学习关于用于熵译码的经量化延迟的概率模型(解码器子网络)。在一些情况下,可以存在解码器的其他子网络。这种E2E-NNVC系统架构可以被视为变换加量化模块(或编码器子网络)和熵建模子网络模块(或解码器子网络)的组合。E2E-NNVC系统通常被设计为处理RGB输入。例如,编码器子网络和解码器子网络通常被设计用于三通道RGB输入,其中全部输入通道都经过相同的神经网络层(例如,卷积神经网络(CNN)和/或广义分裂归一化(generalized division normalization,GDN)层)。然而,大多数图像和图像译码系统使用YUV输入格式(例如,在许多情况下,YUV420输入格式)。本文所述的技术和系统提供一种被设计用于处理具有YUV输入格式的输入数据的E2E-NNVC系统。
将结合附图对本公开的各个方面进行描述。图1示出了片上系统(SOC)100的示例实现方式,SOC 100可以包括被配置为执行本文所述的功能中的一个或多个功能的中央处理单元(CPU)102或多核CPU。参数或变量(例如,神经信号和突触权重)、与计算设备相关联的系统参数(例如,具有权重的神经网络)、延迟、频率槽信息(frequency bininformation)、任务信息以及其他信息可以被存储在与神经处理单元(NPU)108相关联的存储器块中、在与CPU 102相关联的存储器块中、在与图形处理单元(GPU)104相关联的存储器块中、在与数字信号处理器(DSP)106相关联的存储器块中、在存储器块118中,和/或可以被分布在多个块中。在CPU 102处执行的指令可以从与CPU 102相关联的程序存储器被加载,或者可以从存储器块118被加载。
SOC 100还可以包括适用于特定功能的附加处理块,诸如,GPU 104、DSP 106、连接块110(其可以包括第五代(5G)连接、第四代长期演进(4GLTE)连接、Wi-Fi连接、USB连接、蓝牙连接等)、以及可以例如检测和识别姿势的多媒体处理器112。在一个实现方式中,NPU在CPU 102、DSP 106和/或GPU 104中被实现。SOC 100还可以包括传感器处理器114、图像信号处理器(ISP)116和/或可以包括全球定位系统的导航模块120。
SOC 100可以基于ARM指令集。在本公开的方面,加载到CPU 102中的指令可以包括用于在对应于输入值和滤波器权重的乘积的查找表(LUT)中搜索存储的乘法结果的代码。加载到CPU 102中的指令还可以包括当检测到在查找表中查到乘积时,在乘积的乘法运算期间禁用乘法器的代码。此外,加载到CPU 102中的指令可以包括用于在检测到在查找表中未查到乘积时,对算出的输入值与滤波器权重的乘积进行存储的代码。
SOC 100和/或其组件可以被配置为根据本文中讨论的本公开的方面,使用机器学习技术执行视频压缩和/或解压缩(也被称为视频编码和/或解码,统称为视频译码)。通过使用深度学习架构来执行视频压缩和/或解压缩,本公开的方面可以提高设备上的视频压缩和/或解压缩的效率。例如,使用本文所描述的视频译码技术的设备可以使用基于机器学习的技术更高效地压缩视频,可以向另一设备发送经压缩视频,并且另一设备可以使用本文所描述的基于机器学习的技术更高效地对经压缩视频进行解压缩。
如上所述,神经网络是机器学习系统的示例,可以包括输入层、一个或多个隐藏层以及输出层。数据从输入层的输入节点被提供,处理被一个或多个隐藏层的隐藏节点执行,并且输出通过输出层的输出节点产生。深度学习网络通常包括多个隐藏层。神经网络的每一层都可以包括可以包括人工神经元(或节点)的特征图或激活图。特征图可以包括滤波器、内核等。节点可以包括用于指示层中的一个或多个的节点的重要性的一个或多个权重。在一些情况下,深度学习网络可以有一系列的许多隐藏层,靠前的层用于确定输入的简单且低级的特性,而靠后的层则建立更复杂且抽象的特性的层次。
深度学习架构可以学习特征的层次。例如,如果以视觉数据呈现,则第一层可以学习识别输入流中相对简单的特征,诸如边缘。在另一示例中,如果以听觉数据呈现,则第一层可以学习识别具体频率中的谱功率。将第一层的输出作为输入的第二层可以学习识别特征的组合,诸如视觉数据的简单形状或听觉数据的声音的组合。例如,较高的层可以学习重现视觉数据中的复杂形状或听觉数据中的文字。较高的层还可以学习识别常见的视觉对象或口语短语。
当被应用于具有自然分层结构的问题时,深度学习架构可以表现得特别好。例如,机动车辆的分类可以得益于初步学习以识别车轮、挡风玻璃和其他特征。这些特征可以在较高的层以不同的方式被组合以识别汽车、卡车和飞机。
神经网络可以被设计成具有多种连接模式。在前馈网络中,信息从较低层被传递到较高层,其中在给定层中的每个神经元与较高层中的神经元通信。如上所述,分层表示可以被建立于前馈网络的连续层中。神经网络还可以具有循环或反馈(也称为自顶向下)连接。在循环连接中,来自给定层中的神经元的输出可以被传递给同一层中的另一神经元。循环架构可以有助于识别在序列中涵盖多于一个被递送至神经网络的输入数据块的模式。从给定层中的神经元到较低层中的神经元的连接被称为反馈(或自顶向下)连接。在识别高层概念可以有助于辨别输入的特定低层特征的情况下,具有许多反馈连接的网络可以是有帮助的。
神经网络的各层之间的连接可以是完全连接的,也可以是局部连接的。图2A示出了完全连接神经网络202的示例。在完全连接神经网络202中,第一层中的神经元可以将其输出传递给第二层中的每个神经元,使得第二层的每个神经元将从第一层中每个神经元接收输入。图2B示出了局部连接神经网络204的示例。在局部连接神经网络204中,第一层中的神经元可以被连接至第二层中的有限数量的神经元。更一般地,局部连接神经网络204的局部连接层可以被配置为使得层中的每个神经元将具有相同的或相似的连接模式,但是具有可以具有不同的值(例如,210、212、214和216)的连接强度。局部连接的连接模式可以在较高的层中产生空间上不同的感受野,因为给定区域中的更高层神经元可以接收通过训练被调整至网络的总输入中受限部分的属性的输入。
局部连接神经网络的一个示例是卷积神经网络。图2C示出了卷积神经网络206的示例。卷积神经网络206可以被配置以使得与针对第二层中的每个神经元的输入相关联的连接强度被共享(例如,208)。卷积神经网络可以很好地适用于其中输入的空间位置有意义的问题。根据本公开的方面,卷积神经网络206可以被用于执行视频压缩和/或解压缩的一个或多个方面。
卷积神经网络的一种类型是深度卷积网络(deep convolutional network,DCN)。图2D示出了被设计为从图像捕获设备230(诸如车载相机)输入的图像226识别视觉特征的DCN 200的详细示例。当前示例的DCN 200可以被训练以标识交通标志和交通标志上设置的数字。当然,DCN 200也可以被训练用于其他任务,诸如标识车道标记或标识交通灯。
可以通过监督学习对DCN 200进行训练。在训练期间,可以以图像的方式呈现DCN200,诸如限速标志的图像226,然后可以计算正向传递以产生输出222。DCN 200可以包括特征提取部分和分类部分。在接收图像226时,卷积层232可以将卷积核(未示出)应用于图像226以生成第一组特征图218。作为示例,卷积层232的卷积核可以是生成28×28特征图的5×5的核。在本示例中,因为在第一组特征图218中生成四个不同的特征图,所以在卷积层232处四个不同的卷积核被应用于图像226。卷积核还可以被称为滤波器或卷积滤波器。
第一组特征图218可以由最大池化层(未示出)进行子采样,以生成第二组特征图220。最大池化层减小了第一组特征图218的尺寸。也就是说,第二组特征图220的尺寸(诸如14×14)小于第一组特征图218的尺寸(诸如28×28)。经减小的尺寸为后续层提供相似的信息,却减小了存储器消耗。第二组特征图220可以经由一个或多个后续卷积层(未示出)被卷积,以生成一个或更多个后续组的特征图(未示出)。
在图2D的示例中,第二组特征图220被卷积以生成第一特征向量224。此外,第一特征向量224被进一步卷积以生成第二特征向量228。第二特征向量228的每个特征可以包括与图像226的可能特征相对应的数字,例如“sign”、“60”和“100”。softmax函数(未示出)可以将第二特征向量228中的数字转换为概率。这种情况下,DCN 200的输出222是图像226包括一个或多个特征的概率。
在本示例中,输出222中的针对“sign”和“60”的概率高于输出222中的其他项(诸如,“30”、“40”、“50”、“70”、“80”、“90”和“100”)的概率。在训练之前,DCN 200产生的输出222很可能不正确。因此,输出222和目标输出之间的误差可以被计算。目标输出是图像226的基准真值(ground truth)(例如,“sign”和“60”)。然后DCN 200的权重可以被调整,使得DCN 200输出222与目标输出更紧密地对准。
为了调整权重,学习算法可以计算针对权重的梯度向量。梯度可以指示如果权重被调整,误差会增加或减少的量。在顶层,梯度可以直接对应于连接倒数第二层中的激活神经元和输出层中的神经元的权重。在较低的层中,梯度可以取决于权重的值并取决于较高的层的算出的误差梯度。然后权重可以被调整以减小误差。这种权重调可以被称为“反向传播”,因为它涉及通过神经网络的“反向推导”。
在实践中,可以通过少量的示例来计算权重的误差梯度,使得算出的梯度近似于真实的误差梯度。这种近似方法可以被称为随机梯度下降。随机梯度下降可以被重复直到整个系统的可实现误差率已经停止下降或者直到误差率已经达到目标水平。在学习之后,DCN可以被以新图像呈现,并且通过网络的前相传递可以产生输出222,该输出222可以被认为是DCN的推断或预测。
深度置信网络(deep belief network,DBN)是包括多层隐藏节点的概率模型。DBN可以被用于提取训练数据集的分层表示。可以通过对受限玻尔兹曼机(RestrictedBoltzmann Machine,RBM)的层进行叠加来获得DBN。RBM是一种可以学习关于一组输入的概率分布的人工神经网络。因为RBM可以在缺少关于每个输入应该被分类到的类别的信息的情况下学习概率分布,所以RBM通常被用于非监督学习。使用混合的非监督和监督的范式,DBN的底部RBM可以用非监督的方式被训练并且可以用作特征提取器,而顶部RBM可以用监督的方式(基于来自前一层和目标类的输入的联合分布)被训练并可以用作分类器。
深度卷积网络(DCN)是卷积网络的网络,被配置有另外的池化层和归一化层。DCN在许多任务上都取得了现有技术水平的性能。可以使用监督学习来训练DCN,在监督学习中输入目标和输出目标对于许多示例来说都是已知的并且都被用于通过使用梯度下降方法对网络的权重进行修改。
DCN可以是前馈网络。此外,如上所述,从DCN的第一层中的神经元到下一个较高的层中的一组神经元的连接在第一层中的神经元之间共享。DCN的前馈和共享连接可以被用于快速处理。例如,DCN的计算负担可以比包括循环或反馈连接的相似尺寸的神经网络的计算负担小得多。
卷积网络每一层的处理可以被认为是空间不变的模板或基础投影。如果输入首先被分解为多个通道(诸如色彩图像的红色通道、绿色通道和蓝色通道),则基于该输入被训练的卷积网络可以被认为是三维的,其中两个空间维度沿着图像的轴,而第三个维度捕获色彩信息。卷积连接的输出可以被认为在后续层中形成特征图,其中特征图(例如,220)的每个元素从前一层(例如,特征图218)中的一些神经元以及从多个通道中的每个通道接收输入。可以用非线性(诸如,校正、max(0,x))对特征图中的值做进一步处理。相邻神经元的值可以被进一步池化(对应于下采样),并且可以提供附加的局部不变性和降维。
图3是示出深度卷积网络350的示例的框图。深度卷积网络350可以包括基于连接和权重共享的多个不同类型的层。如图3中所示,深度卷积网络350包括卷积块354A、354B。卷积块354A、354B中的每一个可以配置有卷积层(CONV)356、归一化层(LNorm)358和最大池化层(MAX POOL)360。
卷积层356可以包括一个或多个卷积滤波器,其可以被应用于输入数据352以生成特征图。尽管只有两个卷积块354A、354B被示出,但本公开并不限于此,而是任意数量的卷积块(例如,块354A和354B)根据设计偏好都可以包括在深度卷积网络350中。归一化层358可以平衡(例如,归一化、缩放或以其他方式相对于彼此设置每个卷积滤波器的值)卷积滤波器的输出。例如,归一化层358可以提供白化(whitening)或侧抑制(lateralinhibition)。最大池化层360可以在空间上提供下采样聚合,以实现局部不变性和降维。
例如,深度卷积网络的并行滤波器组可以被加载到SOC 100的CPU 102或GPU 104上,以实现高性能和低功耗。在可替换的实施例中,并行滤波器组可以被加载到SOC 100的DSP 106或ISP 116上。此外,深度卷积网络350可以访问可以存在于SOC 100上的其他处理块,诸如分别被专用于传感器和导航的传感器处理器114和导航模块120。
深度卷积网络350还可以包括一个或多个完全连接层,诸如层362A(标记为“FC1”)和层362B(标记为“FC2”)。深度卷积网络350还可以包括逻辑回归(LR)层364。在深度卷积网络350的各个层356、358、360、362A、362B、364之间是待被更新的权重(未示出)。这些层(例如,356、358、360、362A、362B、364)中的每一层的输出可以用作深度卷积网络350中的各层(例如,356、358、360、362A、361B、364)中的后续一个的输入,以从提供于卷积块354A的开始处的输入数据352(例如,图像、音频、视频、传感器数据和/或其他输入数据)学习分层特征表示。深度卷积网络350的输出是针对输入数据352的分类得分366。分类得分366可以是一组概率,其中每个概率是包括来自特征集中的特征的输入数据的概率。
如上所述,数字视频数据可以包括大量数据,这会给通信网络以及处理和存储视频数据的设备带来巨大负担。例如,录制未压缩的视频内容通常导致随着所录制视频内容的分辨率的增大而急剧增大的大文件尺寸。在一个说明性示例中,以1080p/24(例如,宽1920像素、高1080像素的分辨率,每秒捕获24帧)录制的未压缩的16比特每通道的视频可以占用每帧12.4兆字节,或每秒297.6兆字节。以每秒24帧以4K的分辨率录制的未压缩的16比特每通道的视频可以占用每帧49.8兆字节,或每秒1195.2兆字节。
网络带宽是另一制约,大的视频文件可能因此会称为问题。例如,视频内容通常通过无线网络(例如,经由LTE、高级LTE、新空口(NEW Radio,NR)、WiFiTM、BluetoothTM或其他无线网络)传送,并且可以构成消费者互联网流量的很大一部分。尽管无线网络中可用带宽的数量有所改进,但是仍然需要减少用于在这些网络中传送视频内容的带宽的数量。
因为未压缩的视频内容可以导致大文件,这些大文件需要相当大的用于物理存储的存储器和相当大的用于传输的带宽,所以视频译码技术可以被用于压缩该视频内容并在之后解压缩该视频内容。
为了减小视频内容的尺寸,从而减少存储视频内容所需要的存储的量,以及减少传送视频内容所需要的带宽的量,可以根据特定的视频译码标准(诸如HEVC、AVC、MPEG、VVC等)执行各种视频译码技术。视频译码通常使用诸如帧间预测或帧内预测的预测方法,这些预测方法利用视频图像或序列中存在的冗余。视频译码技术的共同目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的下降。随着对视频服务的需求增长以及新的视频服务变得可用,需要具有更好的译码效率、性能和速率控制的译码技术。
通常,编码设备根据视频译码标准对视频数据进行编码以生成经编码视频比特流。在一些示例中,经编码视频比特流(或“视频比特流”或“比特流”)是一系列一个或多个经译码视频序列。编码设备可以通过将每个图片分割为多个切片来生成图片的经译码表示。切片独立于其他切片,以使得不依赖于同一图片内其他切片的数据对该切片中的信息进行译码。切片包括一个或多个切片段,切片段包括独立的切片段,以及依赖于先前切片段的一个或多个依赖切片段(如果存在)。在HEVC中,切片被分割为亮度样本和色度样本的译码树块(CTB)。亮度样本的CTB和色度样本的一个或多个CTB,连同样本的语法,被称为译码树单元(CTU)。CTU还可以被称为“树块”或“最大译码单元”(largest coding unit,LCU)。CTU是HEVC编码的基本处理单元。CTU可以被拆分为多个不同尺寸的译码单元(CU)。CU包含被称为译码块(CB)的亮度和色度样本阵列。
亮度和色度CB可以进一步被拆分为预测块(PB)。PB是亮度分量或色度分量的样本块,其使用相同的运动参数进行帧间预测或帧内块复制(intra-block copy,IBC)预测(当可用或启用时)。亮度PB和一个或多个色度PB,和相关联的语法一起形成预测单元(PU)。对于帧间预测,在针对每个PU的比特流中信令通知一组运动参数(例如,一个或多个运动向量、参考索引等),该组运动参数被用于亮度PB和一个或多个色度PB的帧间预测。运动参数还可以被称为运动信息。CB还可以被分割为一个或多个变换块(TB)。TB表示色彩分量的样本的正方形块,残差变换(例如,在一些情况下的相同的二维变换)被用于其上以对预测残差信号进行译码。变换单元(TU)表示亮度和色度样本的TB,以及对应的语法元素。下文对变换译码进行更详细的描述。
根据HEVC标准,可以使用TU来进行变换。可以基于给定CU内的PU的尺寸来确定TU的尺寸。TU的尺寸可以与PU尺寸相同或者小于PU的尺寸。在一些示例中,可以使用称为残差四叉树(residual quad tree,RQT)的四叉树结构将对应于CU的残差样本细分为更小的单元。RQT的叶节点可以对应于TU。可以对与TU相关联的像素差进行变换以产生变换系数。然后可以由编码设备对变换系数进行量化。
一旦视频数据的图片被分割为CU,编码设备就使用预测模式来预测每个PU。之后,从原始视频数据中减去预测单元或预测块以获得残差(如下所述)。对于每个CU,可以使用语法数据在比特流内信令通知预测模式。预测模式可以包括帧内预测(或图片内预测)或帧间预测(或图片间预测)。帧内预测利用图片内空间相邻的样本之间的相关性。例如,在使用帧内预测的情况下,使用例如求PU的平均值的DC预测、将平面表面拟合到PU的平面预测、根据相邻数据进行推断的方向预测或任何其他合适类型的预测,根据同一图片中的相邻图像数据来预测每个PU。帧间预测使用图片之间的时间相关性来得出图像样本的块的运动补偿预测。例如,在使用帧间预测的情况下,使用根据一个或多个参考图片(按输出顺序在当前图片之前或之后)中的图像数据的运动补偿预测来预测每个PU。可以在例如CU级别做出是使用图片间预测还是图片内预测对图片区域进行译码的决定。
在使用帧内和/或帧间预测执行预测之后,编码设备可以执行变换和量化。例如,在预测之后,编码设备可以计算对应于PU的残差值。残差值可以包括正在被译码的当前像素块(PU)和用于预测当前块的预测块(例如,当前块的经预测版本)之间的像素差值。例如,在生成预测块(例如,由帧间预测或帧内预测得出)之后,编码器设备可以通过从当前块中减去由预测单元产生的预测块来生成残差块。残差块包括对当前块的像素值和预测块的像素值之间的差进行量化的一组像素差值。在一些示例中,可以以二维块格式(例如,像素值的二维矩阵或阵列)来表示残差块。在这种示例中,残差块是像素值的二维表示。
使用块变换对在预测被执行之后剩余的任何残差数据进行变换,其可以基于离散余弦变换、离散正弦变换、整数变换、小波变换、其他合适的变换函数或以上各项的任意组合。在一些情况下,可以将一个或多个块变换(例如,尺寸32×32、16×16、8×8、4×4或其他合适的尺寸)应用于每个CU中的残差数据。在一些实施例中,TU可以被用于由编码设备实现的变换和量化过程。具有一个或多个PU的给定CU还可以包括一个或多个TU。如下文进一步详细描述的,可以使用块变换将残差值变换为变换系数,并且之后可以使用TU对其进行量化和扫描以产生用于熵译码的串行化变换系数。
编码设备可以执行变换系数的量化。量化通过对变换系数进行量化以减少用于表示这些系数的数据量,从而提供进一步的压缩。例如,量化可以减少与这些系数中的一些或全部相关联的比特深度。在一个示例中,具有n比特值的系数可以在量化期间向下取整为m比特值,其中n大于m。
一旦量化被执行,经译码视频比特流包括经量化变换系数、预测信息(例如,预测模式、运动向量、块向量等)、分割信息和任何其他合适的数据,诸如其他语法数据。之后,可以由编码设备对经译码视频比特流的不同元素进行熵编码。在一些示例中,编码设备可以利用预定义的扫描顺序来扫描经量化变换系数以产生可以被熵编码的串行化向量。在一些示例中,编码设备可以执行自适应扫描。在扫描经量化变换系数以形成向量(例如,一维向量)之后,编码设备可以对该向量进行熵编码。例如,编码设备可以使用上下文自适应可变长度译码(context adaptive variable length coding)、上下文自适应二进制算术译码(context adaptive binary arithmetic coding)、基于语法的上下文自适应二进制算术译码(syntax-based context-adaptive binary arithmetic coding)、概率区间分割熵译码(probability interval partitioning entropy coding)或其他合适的熵编码技术。
编码设备可以存储经编码视频比特流和/或可以通过通信链路将经编码视频比特流发送给可以包括解码设备的接收设备。解码设备可以通过熵解码(例如,使用熵解码器)并通过提取组成经编码视频数据的一个或多个经译码视频序列的元素来对经编码视频比特流数据进行解码。然后解码设备可以对经编码视频比特流数据进行重新缩放并执行逆变换。之后残差数据被传递到解码设备的预测阶段。随后,解码设备使用帧内预测、帧间预测、IBC和/或其他类型的预测对像素块(例如,PU)进行预测。在一些示例中,预测被添加到逆变换的输出(残差数据)。解码设备可以将经解码视频输出到视频目标设备。视频目标设备可以包括显示器或用于将经解码视频数据显示给内容的消费者的其他输出设备。
由各种视频译码标准(例如,上述HEVC视频译码技术)定义的视频译码系统和技术能够保留原始视频内容中的大部分信息,并且可以基于信号处理和信息理论概念被定义为先验(priori)。然而,在一些情况下,基于机器学习(ML)的图像和/或视频系统可以提供优于非基于ML的图像和视频译码系统的益处,诸如基于端到端神经网络的图像和视频译码(E2E-NNVC)系统。如上所述,许多E2E-NNVC系统被设计为自动编码器子网络(编码器子网络)和负责学习关于用于熵译码的经量化延迟的概率模型的第二子网络的组合。这种架构可以被视为变换加量化模块(编码器子网络)和熵建模子网络模块的组合。
图4描绘了包括被配置为使用E2E-NNVC系统410执行视频编码和解码的设备402的系统400。设备402被耦接至相机407和存储介质414(例如,数据存储设备)。在一些实现方式中,相机407被配置为将图像数据408(例如,视频数据流)提供给处理器404,以便由E2E-NNVC系统410进行编码。在一些实现方式中,设备402可以被耦接到和/或可以包括多个相机(例如,双相机系统、三个相机或其他数量的相机)。在一些情况下,设备402可以被耦接至麦克风和/或其他输入设备(例如,键盘、鼠标、诸如触摸屏和/或触摸板的触摸输入设备、和/或其它输入设备)。在一些示例中,相机407、存储介质414、麦克风和/或其他输入设备可以是设备402的一部分。
设备402还经由传输介质418(诸如,一个或多个无线网络、一个或多个有线网络、或以上两者的组合)被耦接至第二设备490。例如,传输介质418可以包括由无线网络、有线网络或有线和无线网络的组合提供的通道。传输介质418可以形成基于分组的网络的一部分,诸如局域网、广域网、或全球网络(诸如,因特网)。传输介质418可以包括路由器、交换机、基站、或者可以用于促进从源设备到接收设备的通信的任何其他设备。无线网络可以包括任何无线接口或无线接口的组合,并且可以包括任何合适的无线网络(例如,因特网或其他广域网、基于分组的网络、WiFiTM、射频(RF)、UWB、WiFi-Direct、蜂窝、长期演进(LTE)、WiMaxTM等)。有线网络可以包括任何有线接口(例如,光纤、以太网、电力线以太网、同轴电缆以太网、数字信号线(digital signal line,DSL)等)。可以使用各种设备(例如,基站、路由器、接入点、网桥、网关、交换机等)来实现有线和/或无线网络。经编码的视频比特流数据可以根据通信标准(诸如无线通信协议)被调制,并被发送给接收设备。
设备402包括耦接至存储器406、第一接口(“I/F 1”)412和第二接口(“I/F 2”)416的一个或多个处理器(本文中被称为“处理器”)404。处理器404被配置为从相机407、从存储器406和/或从存储介质414接收图像数据408。处理器404经由第一接口412(例如,经由存储器总线)被耦接至存储介质414,并且经由第二接口416(例如,网络接口设备、无线收发器和天线、一个或多个其他网络接口设备、或以上各项的组合)被耦接至传输介质418。
处理器404包括E2E-NNVC系统410。E2E-NNVC系统410包括编码器部分462和解码器部分466。在一些实现方式中,E2E-NNVC系统410可以包括一个或多个自动编码器。编码器部分462被配置为接收输入数据470并对输入数据470进行处理以至少部分地基于输入数据470生成输出数据474。
在一些实现方式中,E2E-NNVC系统410的编码器部分462被配置为对输入数据470执行有损压缩,以生成输出数据474,使得输出数据474具有比输入数据470更少的比特。编码器部分462可以被训练为不使用基于任何先前表示(例如,一个或多个先前重建的帧)的运动补偿对输入数据470(例如,图像或视频帧)进行压缩。例如,编码器部分462可以仅使用视频帧中的视频数据而不使用先前重建帧的任何数据来对该视频帧进行压缩。由编码器部分462处理的视频帧在本文中可以被称为帧内预测帧(I帧)。在一些示例中,可以使用传统视频译码技术(例如,根据HEVC、VVC、MPEG-4或其他视频译码标准)来生成I帧。在这样的示例中,处理器404可以包括或被耦接至被配置为执行基于块的帧内预测的视频译码设备(例如,编码设备),诸如上文参考HEVC标准描述的那样。在这样的示例中,E2E-NNVC系统410可以从处理器404中被排除。
在一些实现方式中,E2E-NNVC系统410的编码器部分462可以被训练为使用基于先前表示(例如,一个或多个先前重建的帧)的运动补偿对输入数据470(例如,视频帧)进行压缩。例如,编码器部分462可以使用来自视频帧的视频数据并使用先前重建的帧的数据来对该视频帧进行压缩。由编码器部分462处理的视频帧在本文中可以被称为帧内预测帧(P帧)。运动补偿可以被用于通过描述来自先前重建的帧的像素是如何连同残差信息一起移动到当前帧中的新位置来确定当前帧的数据。
如所示,E2E-NNVC系统410的编码器部分462可以包括神经网络463和量化器464。神经网络463可以包括一个或多个卷积神经网络(CNN)、一个或多个完全连接的神经网络、一个或者多个门控循环单元(gated recurrent unit,GRU)、一或多个长短期记忆(Longshort-term memory,LSTM)网络、一或多个ConvRNN、一或一个ConvGRU、一个或多个ConvLSTM、一个或多个GAN、和/或以上各项的任一组合、和/或生成中间数据472的其他类型的神经网络架构。中间数据472被输入到量化器464。可以被包括在编码器部分462中的组件的示例在图6中示出。
量化器464被配置为对中间数据472进行量化,以及在一些情况下进行熵译码,以产生输出数据474。输出数据474可以包括经量化(以及在一些情况下是经熵译码)的数据。量化器464执行的量化操作可以根据中间数据472生成经量化码(或表示由E2E-NNVC系统410生成的经量化码的数据)。经量化码(或表示经量化码的数据)还可以被称为潜在码(latent code)或潜在(latent)(表示为z)。应用于潜在的熵模型在本文中可以被称为“先验”。在一些示例中,可以使用在根据现有视频译码标准对视频数据进行编码和/或解码时执行的现有量化和熵译码操作来执行量化和/或熵译码操作。在一些示例中,量化和/或熵译码操作可以由E2E-NNVC系统410完成。在一个说明性示例中,可以使用监督训练来训练E2E-NNVC系统410,其中残差数据被用作输入,经量化码和经熵码被用作训练期间的已知输出(标签)。
E2E-NNVC系统410的解码器部分466被配置为接收输出数据474(例如,直接来自量化器464和/或来自存储介质414)。解码器部分466可以对输出数据474进行处理以至少部分地基于输出数据474生成输入数据470的表示476。在一些示例中,E2E-NNVC系统410的解码器部分466包括神经网络468,神经网络468可以包括一个或多个CNN、一个或多个完全连接的神经网络、一个或者多个GRU、一个或多个长短期记忆(LSTM)网络、一或多个ConvRNN、一或多个ConvGRU、一个或多个ConvLSTM、一个或多个GAN、以上各项的任一组合、和/或其他类型的神经网络架构。可以包括在解码器部分466中的组件的示例在图6中被示出。
处理器404被配置为向传输介质418或存储介质414中的至少一个发送输出数据474。例如,输出数据474可以被存储在存储介质414处,以用于由解码器部分466稍后进行的检索和解码(或解压缩),以生成输入数据470的表示476作为重建数据。重建数据可以被用于各种目的,诸如用于对已经被编码/压缩以生成输出数据474的视频数据进行回放。在一些实现方式中,输出数据474可以在与解码器部分466匹配的另一解码器设备处(例如,在设备402中、在第二设备490中或在另一设备中)被解码,以生成输入数据470的表示476作为重建数据。例如,第二设备490可以包括与解码器部分466匹配(或基本匹配)的解码器,并且可以经由传输介质418向第二设备490发送输出数据474。第二设备490可以对输出数据474进行处理以生成输入数据470的表示476作为重建数据。
系统400的组件可以包括电子电路或其他电子硬件,和/或可以使用电子电路或其他电子硬件被实现,其可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)、和/或其他合适的电子电路);和/或可以包括计算机软件、固件或以上各项的任一组合,和/或可以使用计算机软件、固件或以上各项的任一组合被实现,以执行本文中所描述的各种操作。
虽然系统400被示出为包括某些组件,但是普通技术人员应该理解的是,系统400可以包括比图4所示的那些组件更多或更少的组件。例如,系统400还可以包括输入设备和输出设备(未示出),或可以是包括输入设备和输出设备(未示出)的计算设备的一部分。在一些实现方式中,系统400还可以包括下述设备,或者可以是包括下述设备的计算设备的一部分该下述设备包括:一个或多个存储器设备(例如,一个或多个随机存取存储器(RAM)组件、只读存储器(ROM)组件、高速缓存组件、缓冲器组件、数据库组件和/或其他存储器设备),与一个或多个存储器设备通信和/或电连接的一个或多个处理设备(例如,一个或多个CPU、GPU、和/或其他处理设备)、用于执行无线通信的一个或多个无线接口(例如,包括一个或多个收发器和用于每个无线接口的带宽处理器)、用于通过一个或多个硬连线连接执行通信的一个或多个有线接口(例如,诸如通用串行总线(USB)输入的串行接口、闪电接口和/或其他有线接口)、和/或图4中未示出的其他组件。
在一些实现方式中,系统400可以由计算设备本地实现和/或包括在计算设备中。例如,计算设备可以包括移动设备、个人计算机、平板计算机、虚拟现实(VR)设备(例如,头戴式显示器(head-mounted display,HMD)或其他VR设备)、增强现实(AR)设备(如,HMD、AR眼镜或其他AR设备)、可穿戴设备、服务器(例如,在软件即服务系统或其他基于服务器的系统中)、电视机、和/或具有执行本文所述的技术的资源能力的任何其他计算设备。
在一个示例中,E2E-NNVC系统410可以被并入便携式电子设备中,该便携式电子设备包括耦接至处理器404并被配置为存储由处理器404可执行的指令的存储器406,以及耦接至天线和处理器404并可运行以向远程设备发送输出数据474的无线收发器。
图5A和图5B是可以实现针对采用具有不同特性的通道的视频格式的高效E2E-NNVC的机器学习(例如,神经网络)结构的示例。例如,图5A是示出其中视频译码数据的帧在标准化通道输入(例如,RGB格式帧的三个通道)之间被划分的基于机器学习的视频译码系统的图。标准化通道输入502A-N的标准化通道数据的共享特性允许使用共享层中的相同结构来处理全部通道。标准化通道输入502A-N可以包括任何数量的具有共享特性的通道。标准化通道输入用于RGB格式数据的一个示例会包括三个通道,包括红色(R)通道、绿色(G)通道和蓝色(B)通道。其他示例可以包括任何数量的具有共享特性(例如,共享分辨率,沿着视频数据的每个维度具有相同数量的像素,以及针对视频数据的共享统计特性,诸如像素值的共享均值和方差特性)的通道。
如图5A所示,神经网络编码操作516包括初始编码层511和附加操作515。初始编码层511包括初始操作512和初始归一化514。初始操作512可以包括滤波操作、去采样操作、或如本文中所述的用于视频译码的任何这种操作。初始归一化514可以包括组织、格式化和/或修改来自标准化通道输入502A-N的数据的任何处理,以准备用于神经网络编码操作516中的附加处理层的数据。附加操作515作为用于视频译码的机器学习结构的一部分可以包括任何数量的处理层和归一化步骤。在一些情况下,归一化步骤可以包括缩放步骤或者可以执行相似操作的其他操作。在图5A的示例中,使用神经网络编码操作516的同一流程来处理标准化通道输入502A-N的各个单独的通道。在编码完成之后,输出的经编码数据可以作为视频译码系统的一部分以任何方式被存储、发送和/或使用。
神经网络解码操作526是神经网络编码操作516的逆操作。在神经网络解码操作526中,从存储介质或从传输系统访问来自神经网络编码操作516的经编码数据,并且逆神经网络译码操作被执行以对视频数据进行解码。解码包括对操作515进行逆转的操作520,以及对初始编码层511的操作进行逆转的最终解码层521。最终归一化522和最终操作524生成被输出为标准化通道输出530A-N的重建视频数据。
如上所述,从标准化通道输入502A-N到标准化通道输出530A-N的单个路径取决于针对视频格式的视频数据(例如,RGB格式视频数据)的每个通道的共享特性。为了使用具有其中通道具有不同特性的视频格式的图5A的结构,对于具有不同特性的各种类型的通道都需要单独的拷贝,或者在编码之前和解码之后进行格式转换。对于YUV格式数据,可以在初始编码层511之前将数据转换为RGB数据,并在最终操作524之后将其转换回YUV数据。这种转换使用大量资源。替代地,图5A的结构的第一拷贝需要被用于Y通道,而第二拷贝需要被用于U和V两个通道(例如,其共享特性)。这种重复使用大量资源。本文所述的示例通过减少处理包括具有不同特性的通道的视频格式(诸如YUV格式数据)所需的资源来改进E2E-NNVC系统的操作。
图5B是示出根据本文所述的示例的基于神经网络的图像和视频译码系统的方面的图。图5B的系统与图5A的系统相似,但是共享的初始编码层511被神经网络编码操作566的单独的初始编码单元561A至561N替换,并且图5A的共享的最终解码层521被神经网络解码操作580的单独的最终解码层581A至581N替换。
在图5B的示例中,单独的初始编码层561A至561N处理不同的差异通道输入552A和552N。单独的初始编码层中的每一个可以处理多于一个通道,只要通道共享特性,如上所述。作为使用图5B的系统对视频数据进行编码的神经网络编码操作566的一部分,来自视频帧的不同通道的输入数据被输入为差异通道输入552A和差异通道输出552N。差异通道输入552A由初始编码层561A处理,而差异通道输入552N由初始编码单元561N处理。单独的初始编码层561A至561N使用单独的初始操作562A和562N。单独的初始归一化操作564A和564N被用于从差异通道输入552A和差异通道输入552N获取具有不同特性的数据,以创建被标准化的数据,从而使得其可以在操作565的后续层中被结合(例如,合并)并被一起处理。例如,如果差异通道输入552A包括较高分辨率的Y通道(例如,亮度)数据,而差异通道输入552N包括较低分辨率的U和V通道(例如,色度)数据,则初始操作562N可以包括下采样操作,以将分辨率降低到两种类型的数据在操作565开始处要使用的共享分辨率。相似地,初始操作562A和初始操作562N都可以包括滤波操作,但是较高分辨率的数据(例如,在下采样之前)可以用较大的滤波器处理。相似地,初始归一化操作564A和564N可以对不同类型的数据应用不同的数据变换,以对数据的统计特性进行标准化,从而使得不同类型的数据在操作565中由共享的神经网络层处理。
对应的神经网络解码操作580共享相似的结构。共享操作570对操作565的编码进行逆转,然后将用于单独的通道的数据针对最终解码层581A和最终解码层581N分割。最终解码层581A执行最终操作572A和最终归一化574A,以将差异通道输入552A至552N重建为重建的差异通道输出582A至582N。最终解码层581N执行最终操作572N和最终归一化574N,以将差异通道输入552N重建为重建的差异通道输出582N。
虽然操作565和570在图5B的图示中占了很小的空间,但在各种实现方式中,在除了初始编码层561A至561N和最终解码层581A至581N之外任何数量的层(例如,5层、9层等)作为神经网络结构的一部分的情况下,这些操作可以是分配的物理资源的大部分(例如,随着时间的推移对神经网络处理电路的使用)。因此,如以下示例进一步详细描述的,对差异通道进行标准化可以显著减少E2E-NNVC的管线中针对采用具有不同特性的通道的视频格式的重复。
图6是示出根据一些示例的用于具有亮度-色度(YUV)格式的输入的基于端到端神经网络的图像和视频译码系统的示例的图。图6的视频译码系统的示例网络接受Y通道输入602和UV通道输入604中的YUV数据,并输出重建的Y通道670和重建的U和V通道672。图6的视频译码系统还包括ga子网络610和子网络gs 660以及子网络620和子网络650。ga子网络610对应于编码器子网络(例如,编码器部分462),而子网络gs 660对应于解码器子网络(例如,解码器部分466)。ga和gs子网络使用以相似于用于处理三通道RGB输入的系统的方式被构造的附加操作,其中R、G和B全部三个输入通道被相同的神经网络层(例如,卷积层和广义分裂归一化(GDN)层)处理,但是初始编码层和最终解码层修改,以处理其中通道具有不同的特性的YUV格式数据。
所图示的子网络包括卷积层612、613、614、661、662和663,以及广义分裂归一化(GDN)层691、690、616和614或逆GDN(IGDN)层665、666、667和668。各种层可以被视为各种组中的神经网络层。这种结构的神经网络层(例如,对GDN层617和卷积层614进行组合的神经网络层)可以包括执行卷积操作的卷积层和实现局部分裂归一化的GDN和/或逆GDN(IGDN)非线性层。局部分裂归一化是一种已被证明特别适合于图像的密度建模和压缩的变换类型。E2E-NNVC系统用于具有相似统计特性(例如,相似的平均像素值或像素值之间的相似方差)的通道的通道数据,诸如,RGB数据(例如,不同的R、G和B通道的统计属性(例如平均值和方差特性)是相似的)。
如上所述,尽管E2E-NNVC系统通常被设计为具有单个译码路径(例如,与图5A相似)以处理RGB输入,但大多数图像和视频译码系统使用YUV输入格式(例如,在许多情况下,是YUV420输入格式)。YUV格式的数据的色度(U和V)通道可以相对于亮度(Y)通道被子采样。子采样对视觉质量的造成最小的影响(例如,由于其中亮度变化比色调或色彩外观参数的相似幅度的变化更明显的人类感知特性,因此对视觉质量没有显著的或明显的影响)。经子采样的格式包括YUV420格式、YUV422格式和/或其他YUV格式。通道之间的相关性在YUV格式中被减小(例如,Y通道通常具有与U或V通道不同的特性),其他色彩格式(例如RGB格式)并不是这样。此外,亮度(Y)和色度(U和V)通道的统计特性通常是不同的。例如,U和V通道通常具有比亮度通道小的方差,而在RGB格式中,例如,不同的R、G和B通道的统计属性更加相似。这种统计属性的差别导致相关联的通道具有足够不同的特性,即用于这种不同通道的相同视频译码路径会因为视频质量降低或过度使用设备资源而导致降级的结果。根据数据的输入特性设计了视频编码器-解码器(或CODEC)(例如,CODEC可以根据数据的输出格式来编码和/或解码数据)。例如,如果对帧的色度通道进行子采样(例如,色度通道是亮度通道的一半分辨率),那么当CODEC对帧的块进行预测以进行运动补偿时,亮度块的宽度和高度都会是色度块的两倍大。在另一示例中,CODEC可以确定将对多少个像素进行编码或解码以用于色度和亮度,等等。
如果RGB输入数据(如上所述,大多数E2E-NNVC系统被设计用于处理RGB输入数据)被YUV 444输入数据(其中全部通道具有相同的维度)替换,则E2E-NNVC系统处理输入数据的性能由于亮度(Y)和色度(U和V)通道的不同统计特性而降低,即使通道分辨率相同。如上所述,以一些YUV格式(诸如在YUV420的情况下)对色度(U和V)通道进行子采样。例如,对于具有YUV420格式的内容,U和V通道分辨率是Y通道分辨率的一半(由于宽度和高度减半,U和Y通道的尺寸为Y通道的四分之一)。这种子采样可以导致输入数据与E2E-NNVC系统的输入不兼容。输入数据是E2E-NNVC系统试图编码和/或解码的信息(例如,包括三个通道的YUV帧,包括亮度(Y)和色度(U和V)通道)。许多基于神经网络的系统假设输入数据的全部通道维度都相同,从而将全部的输入通道都馈送至同一网络。在这种情况下,特定操作的输出可以被相加(例如,使用矩阵加法),在这种情况中,通道的维度必须相同。这种问题可以通过将YUV数据转换为具有有限损失的RGB数据来解决,但是这种转换操作是资源密集型的。
图6的视频译码系统被配置有单独的初始卷积层681和680,以解决这些问题。在图6的示例中,Y通道输入602可以在卷积层680中被子采样为四个半分辨率的Y通道。U和V输入604可以在卷积层681中被处理而无需子采样。来自层680的四个半分辨率的Y通道可以由GDN层690进行平衡(例如,归一化、缩放或以其他方式修改),并且可以在合并结构699中与来自层681和GDN层691的两个色度通道进行组合,从而产生具有共享输入的六个输入通道。可以被用于平衡通道数据的操作包括对数据内的像素值进行调整、归一化、缩放、或者相反地修改(例如,平衡)。六个输入通道可以被输入或馈送到所示的作为图6的E2E-NNVC系统的一部分的神经网络层的流程中,该系统被设计用于RGB输入并用初始编码层(例如,与GDN层690和681组合的层681和680)和最终解码层(例如,与IGDN层667和668组合的层683和684)进行修改。这种方法可以解决关于亮度(Y)和色度(U和V)通道的分辨率差别(例如,在单独的路径中使用不同的采样或步长特性)和关于使用单独的GDN和IGDN层的统计特性的问题。
图6的视频译码系统示出了使用一个或多个基于ML的系统执行图像和/或视频译码的系统的示例。本文所述的系统和技术提供被设计为处理具有亮度-色度(YUV)输入格式(例如,YUV420、YUV444、YUV422、等等)的输入数据的基于端到端神经网络的图像和视频译码(E2E-NNVC)系统(例如,诸如图6的视频译码系统)。本文所述的E2E-NNVC系统解决亮度(Y)和色度(U和V)通道的不同特性的问题,以及亮度(Y)和色度(U和V)通道的分辨率差别的问题。E2E-NNVC系统可以对独立帧(或图像)和/或对包括多个帧的视频数据进行编码和/或解码。
在一些示例中,本文所述的E2E-NNVC系统最初可以将Y和UV通道输入或馈送到两个单独的层(例如,层680和层681)中。然后,E2E-NNVC系统可以在合并结构699中在一定数量的层之后(例如,在第一卷积和GDN层组合之后)将与Y和UV通道相关联的数据进行组合。这种技术可以允许E2E-NNVC系统对具有不同通道特性和分辨率的YUV输入数据进行处理。在一个说明性示例中,E2E-NNVC可以被设计用于YUV420输入数据。对于YUV420输入数据,由于色度(U和V)通道相对于亮度(Y)通道被子采样,第一卷积层中的子采样可以被跳过,并且特定尺寸(例如,具有(N/2+1)×(N/2+1)的尺寸)的卷积(例如,CNN)核可以在差异的(例如,不共享)层681和680中被用于经子采样的输入色度(U和V)通道。然后具有与用于色度(U和V)通道的核的不同尺寸的CNN核(例如,N×N的CNN核)可以被用于亮度(Y)通道。在另一说明性示例中,相同的核尺寸可以被用于亮度(Y)和色度(U和V)通道两者。例如,在YUV444输入数据的情况下,第一卷积层中具有相同子采样(例如,2的子采样,其中输出在每个维度上被以2进行子采样,有时被称为步长2,并且在两个维度上每隔一个的样本被丢弃)的相同的核尺寸可以被用于全部的通道Y、U和V。
上述示例(例如,其中对Y通道输入602使用的2的子采样)在YUV420数据格式的上下文中被描述。显然,相似的神经网络架构可以被用于对其他类型的YUV内容(例如,YUV444、YUV422等)和/或对具有其中通道具有不同的特性的其他输入格式的内容进行编码和/或解码。
如图6所示,通过单独处理被示出为在编码器子网络610和对应的解码器子网络gs660中的前两个神经网络层中连接的输入602和604的亮度(Y)和色度(U和V)通道(例如,特定输入图像或视频帧的Y和UV通道)来修改输入处理。例如,编码器子网络ga中的前两个神经网络层包括第一卷积层681(表示为Nconv|3x3|↓1)、第二卷积层680(表示为Nconv|5x5|↓2)、以及两个GDN层691和690。解码器子网络gs 660中的最后两个神经网络层包括两个逆-GDN(IGDN)层667和668、用于生成帧的重建色度(U和V)分量的第一卷积层684(表示为2conv|3x3|↑1)、以及用于生成帧的重建亮度(Y)分量的第二卷积层683(表示为1conv|5x5|↑2)。符号“Nconv”是指给定卷积层的多个输出通道(对应于多个输出特征)(值N定义了输出通道的数量)。符号3×3和5×5指示各个卷积核的尺寸(例如,3×3的核和5×5的核)。符号“↓1”和“↓2”(例如,D1和D2)表示步长值,其中↓1是指步长为1(用于如“↓”或D指示的下采样),并且↓2表示步长为1(用于下采样)。符号“↑1”和“↑2”(例如,U1和U2)是指步长值,其中↑1表示步长为1(用于如“↑”或U指示的上采样),并且↑2表示步长为1(用于上采样)。
除了子网络610和660之外,图6的示例视频译码系统包括子网络620和650。子网络620和650是附加的可以被用于使用熵模型h提高视频译码性能的编码和解码网络。ABS层625执行绝对值函数(例如,用作神经网络中的激活函数)。修正线性单元(Rectifiedlinear unit,ReLU)层626、627、655、656和657将输入转换为输入值或零中的最大值(例如,用零值替换负数据)。层621、622、623、651、652和653是卷积层。从子网络610输出的数据包括正被编码或解码的系数(例如,量化变换的输出),包括输入到量化器(Q)632的数据和由算术解码器(AD)638输出的数据。从子网络620输出的数据表示描述针对熵模型ha的对应子网络620和针对子网络650的熵模型hs的熵模型ha和hs(例如,被称为超优先级(hyperprior)并在下文更详细地被描述)的参数。从子网络620输出的数据由Q 643量化,由编码器(AE)644设置为二进制数据646,然后输出为来自AD648的被输入到子网络650的经修改数据。
在图6中示出的视频译码系统的示例网络中,上部的子网络610和660实现图像自动编码器架构,而下部的子网络620和650实现超优先级网络。输入数据(例如,来自U和V通道输入604和Y通道输入602)由子网络610编码,其输出包括空间变化的标准偏差的数据。从子网络610输出的数据被输入到Q 632和实现熵模型ha的子网络620两者。子网络620基本上概括了来自从子网络610输出的数据的标准偏差(例如,z数据)的分布。然后z数据由Q 642处理,Q 642输出由子网络650和熵模型hs使用的经量化向量,以估计标准偏差的空间分布。对视频数据的标准偏差的空间分布进行估计的经量化向量是子网络650的输出。
Q 632使用从子网络610(例如,编码网络)输出的数据生成经量化图像表示。AE634使用来自Q 632的经量化图像表示和从子网络650输出的标准偏差的估计空间分布来压缩经量化图像表示并将其发送到二进制数据636中。AD 638使用从子网络650输出的标准偏差的估计空间分布与经压缩的发送的二进制数据636来恢复经量化图像表示(例如,由Q632生成的)。恢复的经量化图像表示被从AD 638输出到子网络gs 660。然后,子网络660对经量化图像表示进行解码,以创建用于经恢复的U和V通道672和经恢复的Y通道670的数据。
参考图6的视频译码系统描述的示例是根据本文中提供的描述的实现方式的一个示例。很明显的是,其他实现方式是可能的,包括被构造为处理两种以上不同类型的通道的实现方式,或者其他这样的配置。
在一些示例中,图6的系统可以被构造为针对RGB数据配置的具有一个或多个附加的初始输入层以适应具有不同特性的通道的单路径系统。例如,在图6中的编码器子网络ga610中,用于处理亮度(Y)通道的第二卷积层680(例如,编码器子网610ga的Nconv|5x5|↓2层)可以与用于处理RGB通道数据的编码器子网络ga的卷积层相同。在这种结构中,层681和合并结构699被添加以在相同结构中实现YUV处理能力和RGB处理能力。在这样的示例中,用于生成重建亮度(Y)分量的解码器子网络gs 660的第二卷积层683(表示为1conv|5x5|↑2)可以与具有用于对RGB格式数据进行译码的单个路径的解码器子网gs的最后卷积层相同。与单路径系统不同,色度(U和V)通道由图6的系统使用卷积层681(编码器子网络ga 610的Nconv|3x3|↓1层)来处理,卷积层681的核尺寸是用于处理亮度(Y)通道(例如,(N+1)/2,所以(N+1)/2*(N+1)/2))的后接GDN层690的Nconv|5x5|↓2卷积层680中使用的核的尺寸的一半(并且没有下采样,对应于等于1的步长)。在卷积层680和681(Nconv|5x5|↓2和Nconv|3x3|↓1层)和对应的GDN层690和691之后,亮度(Y)通道和色度(U和V)通道的表示或特征(例如,输入通道的变换或滤波版本和合并结构699的输入)具有相同的维度,并且其通过求和进行组合。因此,输入到合并结构699的Y通道数据具有与输入到合并机构699的U和V通道数据相似的特性,这允许剩余的层被共享。
在一个示例中,亮度(Y)通道在每个维度上的尺寸都是色度(U和V)通道的两倍。当以2对色度(U和V)通道进行子采样时,基于处理这些通道产生的输出变得与亮度通道的conv2d输出相同(因为亮度通道没有被子采样)。通道的单独归一化解决了亮度和色度通道的方差差别。在解码器子网络gs 660中,单独的I-GDN层667和668以及卷积层683和684被用来单独生成重建的亮度(Y)分量和重建的色度(U和V)分量。例如,卷积层684(例如,解码器子网络gs 660的2conv|3x3|↑1层)被用于以大约为1conv|5x5|↑2卷积层683中使用的核的尺寸的一半(并且没有上采样,对应于等于1的步长)的核尺寸生成重建的U和V通道672,1conv|5x5|↑2卷积层683被用于生成重建的Y通道670(例如亮度)分量。
在一些示例中,本文所述的系统和技术可以被用于在基于神经网络的译码系统的输入处使用卷积(例如,CNN)和归一化阶段的组合的其他编码器-解码器子网络。
图7是示出使用本文所述的基于循环的机器学习技术中的一种或多种对视频进行处理的过程700的示例的流程图。过程700可以例如被实现为SOC100、设备402或使用如本文所述的计算设备架构900实现的任何设备。在一些示例中,过程700被实现为存储在非暂时性计算机可读介质中的指令,当指令被设备的一个或多个处理器执行时,使得设备执行过程700的操作。
在框702处,过程700包括由神经网络系统的编码器子网络的第一卷积层生成与帧的亮度通道相关联的输出值。例如,如上文参考图6所述,神经网络系统的编码器子网络610的卷积层680输出与帧的Y通道(例如,亮度通道)输入相关联的值。
在框704处,过程700包括由编码器子网络的第二卷积层生成与该帧的至少一个色度通道相关联的输出值。在图6的示例中,编码器子网络610的卷积层681输出与该帧的UV通道输入604(例如,至少一个色度通道)相关联的值。
在框706处,过程700包括通过将与该帧的该亮度通道相关联的输出值和与该帧的该至少一个色度通道相关联输出值进行组合来生成该帧的经组合表示。在图6的对应结构中,卷积层681和680的输出值在合并结构699处被组合。
在框708处,过程700包括基于该帧的经组合表示生成经编码视频数据。在图6的示例中,由合并结构699生成的组合值接着被附加卷积层和614以及612、613和614以及GDN层616、617处理。量化器632和编码器634接着被用于基于来自合并结构699的该帧的经组合表示来生成经编码视频数据。
在一些示例中,过程700包括使用编码器子网络的第一归一化层处理与该帧的该亮度通道相关联的输出值;以及使用编码器子网络的第二归一化层处理与该帧的该至少一个色度通道相关联的输出值。在这种示例中,经组合表示基于第一归一化层的输出和第二归一化层的输出被生成(例如,使用子网络620的归一化层)。在一些示例中,上述用于编码视频数据的方法、装置和计算机可读介质还包括对经编码视频数据进行量化(例如,使用量化器632)。在一些情况下,归一化层可以被称为缩放层。
在一些示例中,过程700包括对经编码视频数据进行熵译码(例如,使用AE 634)。在一些示例中,过程700包括将经编码视频数据存储在存储器中。在一些示例中,过程700包括通过传输介质向至少一个设备发送经编码视频数据。
在一些示例中,过程700包括获得经编码帧;由神经网络系统的解码器子网络的第一卷积层生成与经编码帧的亮度通道相关联的重建输出值;以及由解码器子网络的第二卷积层生成与经编码帧的至少一个色度通道相关联的重建输出值。
在一些示例中,帧包括视频帧。在一些示例中,至少一个色度通道包括色度-蓝通道和色度-红通道。在一些示例中,帧具有亮度-色度(YUV)格式。
图8是示出使用本文所述的基于循环的机器学习技术中的一种或多种对视频进行处理的过程800的示例的流程图。在一些示例中,过程800可以被当作与过程700的编码操作相对应的解码操作。正如上文对于过程700所述,过程800可以例如被实现为SOC 100、设备402或者使用如本文所述的计算设备架构900实现的任何设备。在一些示例中,过程800被实现为存储在非暂时性计算机可读介质中的指令,当指令被设备的一个或多个处理器执行时,使得设备执行过程800的操作。
在框802处,过程800包括获得经编码帧。例如,经编码帧可以包括在上文的框708中生成的经编码视频数据,或者根据任何其他相似的过程的操作生成的经编码帧。在图6的示例中,AD 638接收经编码视频数据的两种帧作为经压缩经发送的二进制数据636,以及从经发送的二进制数据646生成的熵模型数据,其被用于提高经解码视频数据的质量。
在框804处,过程800包括由神经网络系统的解码器子网络的第一卷积层生成与经编码帧的亮度通道相关联的重建输出值。在图6的示例中,在使用与卷积层614、613和612相对应的卷积层661、662和663、以及IGDN层665和666对数据进行逆处理之后,视频数据被分割成下述数据,所述数据要被输出作为在重建Y通道670处被输出的重建Y数据并作为要被输出为重建UV通道672的重建UV数据。
在框806处,过程800包括由解码器子网络的第二卷积层生成与经编码帧的至少一个色度信道相关联的重建输出值。在框808处,过程800包括生成包括与该亮度通道相关联的重建输出值和与该至少一个色度通道相关联的重建输出值的输出帧。在图6的示例中,在使用与卷积层614、613和612相对应的卷积层661、662和663、以及IGDN层665和666对数据进行逆处理之后,视频数据被分割成下述数据,所述数据要被输出作为要在重建Y通道670处输出的重建Y数据并作为要被输出为重建UV通道672的重建UV数据。
在一些示例中,过程800包括使用解码器子网络的第一归一化层对与经编码帧的该亮度通道相关联的值进行处理,其中与该亮度通道相关联的重建输出值基于第一归一化层的输出被生成;以及使用解码器子网络的第二归一化层对与经编码帧的该至少一个色度通道相关联的值进行处理,其中与该至少一个色度通道相关联的重建输出值基于第二归一化层的输出被生成(例如,使用子网络650的归一化层)。
在一些示例中,过程800包括对经编码帧的样本进行去量化。在一些示例中,过程800包括对经编码帧的样本进行熵解码(例如,使用AD 638)。在一些示例中,过程800包括将输出帧存储在存储器中。在一些示例中,过程800包括显示该输出帧。
在一些示例中,过程800包括:由神经网络系统的编码器子网络的第一卷积层生成与帧的亮度通道相关联的输出值(例如,与Y通道输入602相关联);由编码器子网络的第二卷积层生成与帧的至少一个色度通道相关联的输出值(例如,与重建的UV通道输入604相关联);通过对与帧的该亮度通道相关联的输出值和与帧的该至少一个色度通道相关联的输出值进行组合来生成帧的经组合表示;以及基于帧的经组合表示生成经编码帧(例如,作为接下来在块802中作为经编码帧被获得的二进制数据636)。
在一些示例中,经编码帧包括经编码视频帧。在一些示例中,至少一个色度通道包括色度-蓝通道和色度-红通道。在一些示例中,经编码帧具有亮度-色度(YUV)格式。
在一些示例中,本文所述的过程(例如,过程700、过程800和/或本文所述的其他过程)可以由计算设备或装置(诸如具有图9中所示的计算设备架构900的计算设备)执行。在一个示例中,过程700和/或过程800可以由具有实现图6中所示的神经网络架构的计算设备架构900的计算设备执行。在一些示例中,计算设备可以包括移动设备(例如,移动电话、平板计算设备等)、可穿戴设备、扩展现实设备(例如,虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR)设备)、个人计算机、膝上型计算机、视频服务器、电视机、车辆(或车辆的计算设备)、机器人设备、和/或具有资源能力以执行本文所述的过程(包括过程700和/或过程800)的任何其他计算设备。
在一些情况下,计算设备或装置可以包括各种组件,诸如,一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或者多个微处理器、一个或多个微型计算机、一个或多个发送器、接收器或者组合的发送器-接收器(例如,被称为收发器)、一个或多个相机、一个或多个传感器、和/或被配置为执行本文所述的过程的步骤的其他组件。在一些示例中,计算设备可以包括显示器、被配置为传递和/或接收数据的网络接口、以上各项的任一组合、和/或其他组件。网络接口可以被配置为传递和/或接收基于因特网协议(IP)的数据或其他类型的数据。
计算设备的组件可以以电路实现。例如,组件可以包括电子电路或其他电子硬件,和/或可以使用电子电路或其他电子硬件被实现,其可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)、神经处理单元(NPU)和/或其他合适的电子电路);和/或可以包括计算机软件、固件或以上各项的任一组合,和/或可以使用计算机软件、固件或以上各项的任一组合被实现,以执行本文所述的各种操作。
过程700和800被示出为逻辑流程图,其操作表示可以在硬件、计算机指令或其组合中实现的操作的序列。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读取存储介质上的计算机可执行指令,当其由一个或多个处理器执行时,执行所列举的操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,而可以以任何顺序和/或并行地组合任何数量的所述的操作来实现这些过程。
另外,本文所述的过程(包括过程700、过程800、和/或本文所述的其他过程)可以在配置有可执行指令的一个或多个计算机系统的控制下被执行,并且可以被实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序),这些过程还可以由硬件执行或者以上述的组合方式被执行。如上所述,代码可以例如,以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读取或机器可读取存储介质上。计算机可读取或机器可读取存储介质可以是非暂时性的。
图9示出了可以实现本文所述的各种技术的示例计算设备的示例计算设备架构900。在一些示例中,计算设备可以包括移动设备、可穿戴设备、扩展现实设备(例如,虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR)设备)、个人计算机、膝上型计算机、视频服务器、车辆(或车辆的计算设备)或其他设备。例如,计算设备架构900可以实现图6的系统。计算设备架构900的组件被示出为使用诸如总线的连接905彼此电通信。示例计算设备架构900包括处理单元(CPU或处理器)910和计算设备连接905,其将包括计算设备存储器915(诸如只读存储器(ROM)920和随机存取存储器(RAM)925)的各种计算设备组件耦接至处理器910。
计算设备架构900可以包括与处理器910直接连接的、接近处理器910的或集成为处理器910的一部分的高速存储器缓存。计算设备架构900可以将数据从存储器915和/或存储设备930复制到高速缓存912以供处理器910快速访问。高速缓存可以提供避免处理器910在等待数据时的延迟的性能提升。这些和其他模块可以控制或被配置为控制处理器910以执行各种动作。其他计算设备存储器915也可用于使用。存储器915可以包括具有不同性能特性的多个不同类型的存储器。处理器910可以包括任何通用的处理器和硬件或软件服务,诸如存储在存储设备930中服务1 932、服务2 934和服务3936,被配置为控制其中软件指令被集成在处理器设计中的处理器910以及专用处理器。处理器910可以是包含多个核或处理器、总线、存储器控制器、高速缓存等的自包含系统。多核处理器可以是对称的或非对称的。
为了实现与计算设备架构900的用户交互,输入设备945可以表示任何数量的输入机制,诸如用于语音的麦克风、用于姿势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等。输出设备935还可以是本领域技术人员经知的多个输出机制中的一个或多个,诸如显示器、投影仪、电视机、扬声器设备等。在一些情况下,多模式计算设备可以使用户能够提供多种类型的输入以与计算设备架构900进行通信。通信接口940通常可以控制和管理用户输入和计算设备输出。对在任何特定硬件装置上进行的操作没有限制,因此,这里的基本特征随着其发展可以容易地被改进的硬件或固件装置替代。
存储设备930是非易失性存储器,可以是能存储由计算机可访问的数据的硬盘或其他类型的计算机可读介质,诸如盒式磁带、闪存卡、固态存储器设备、数字多功能磁盘、盒式磁盘、随机存取存储器(RAM)925、只读存储器(ROM)920以及以上各项的混合。存储设备930可以包括用于控制处理器910的服务932、934、936。其他硬件或软件模块被考虑。存储设备930可以被耦接至计算设备连接905。在一个方面,执行特定功能的硬件模块可以包括存储在与必要的硬件组件(例如处理器910、连接905、输出设备935,等)相连接的计算机可读介质中的软件组件,以实现该功能。
本公开的方面适用于包括或耦合到一个或多个有源深度传感系统的任何合适的电子设备(例如,安全系统、智能手机、平板电脑、膝上型计算机、车辆、无人机、或其他设备)。尽管以下参考具有或被耦接至一个光投影仪的设备进行的描述,但本公开的方面适用于具有任何数量的光投影仪的设备,因此不受限于具体设备。
术语“设备”不限于一个或具体数量的物理对象(诸如,一个智能手机、一个控制器、一个处理系统等)。如本文所使用的,设备可以是具有可以实现本公开的至少一些部分的一个或多个部件的任何电子设备。虽然下文的描述和示例使用术语“设备”来描述本公开的各个方面,但是术语“设备”并不限于具体的配置、类型、或对象的数量。此外,术语“系统”不限于多个组件或具体实施例。例如,系统可以被实现于一个或多个印刷电路板或其他基板上,并且可以具有可移动的或静态的组件。尽管下文的描述和示例使用术语“系统”描述本公开的各个方面,但是术语“系统”并不限于具体的配置、类型或对象的数量。
在以上描述中提供了具体细节以提供对本文提供的实施例和示例的全面理解。然而,本领域普通技术人员应当理解的是,可以在没有这些具体细节的情况下实践这些实施例。为了解释的清楚,在一些实例中,本技术可以被呈现为包括独立的功能块,这些功能块包括包含设备、设备组件、以软件或者硬件和软件的组合体现的方法中的步骤或例程的功能块。可以使用除了图中所示和/或本文所述的组件之外的附加组件。例如,电路、系统、网络、过程和其他组件可以以框图形式示出为组件,以免在不必要的细节方面混淆实施例。在其他实例中,为了避免混淆实施例,可以示出已知的电路、过程、算法、结构、和技术,而不带有不必要的细节。
以上可以将各个实施例描述为过程或方法,其被描绘为流程图、流图、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但许多操作可以并行或者同时被执行。另外,可以重新安排操作的顺序。过程在其操作完成时被终止,但可以具有图中未包括的其他步骤。过程可以对应于方法、函数、进程、子例程、子程序等。当过程对应于函数时,它的终止可以对应函数返回到调用函数或主函数。
可以使用存储的或者来自计算机可读取介质的可用的计算机可执行指令来实现根据上述示例的过程和方法。这种指令可以包括例如导致或以其他方式配置通用计算机、专用计算机或处理设备以执行特定功能或功能组的指令和数据。所使用的计算机资源的部分可以通过网络访问。计算机可执行指令可以是例如二进制、诸如汇编语言的中间格式指令、固件、源代码等。
术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备以及能够存储、包含或承载指令和/或数据的各种其他介质。计算机可读介质可以包括其中可以存储数据并且不包括无线地或通过有线连接传播的载波和/或暂时性电子信号的非暂时性介质。非暂时性介质的示例可以包括但不限于磁盘或磁带、诸如闪存的光学存储介质、存储器或存储器设备、磁盘或光盘、闪存、配备有非易失性存储器的USB设备、网络存储设备、压缩盘(CD)或数字多功能盘(DVD)、以上各项的任一合适的组合,等等。计算机可读介质上可以存储有代码和/或机器可执行指令,其可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类,或指令、数据结构或程序语句的任一组合。可以通过传递和/或接收信息、数据、自变量、参数或存储器内容将代码段耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的方式被传递、转发或发送。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的线缆或无线信号。然而,当被提及时,非暂时性计算机可读存储介质明确排除诸如能量、载波信号、电磁波和信号自身的介质。
实现根据这些公开的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采用多种形式因素中的任何一种。当以软件、固件、中间件或微代码的形式被实现时,执行必要任务(例如,计算机程序产品)的程序代码或代码段可以被存储于计算机可读取或机器可读取介质中。处理器可以执行必要的任务。形式因素的典型示例包括膝上型计算机、智能手机、移动电话、平板设备或其他小外形因素个人计算机、个人数字助理、机架式设备、独立设备等。本文所描述的功能还可以体现在外围设备或插卡中。作为另一示例,这样的功能还可以在不同芯片之间的电路板上或在单个设备中执行的不同进程之间被实现。
指令、用于传送这种指令的介质、用于执行其的计算资源以及用于支持这些计算资源的其他结构是用于提供本公开中描述的功能的示例方式。
在前面的描述中,参考本申请的具体实施例描述了本申请的各方面。但是本领域技术人员应该了解的是,本申请并不限于此。因此,虽然本文中详细描述了本申请的说明性实施例,但应当理解的是,本发明构思可以多方面地被体现和采用,并且所附权利要求旨在被解释为包括这些变体,除非受限于现有技术。上述申请的各种特征和方面可以单独地或联合地被使用。此外,在不脱离本说明书的更广泛的精神和范围的情况下,实施例可以在超出本文描述的环境和应用的任何数量的环境和应用中被使用。因此,说明书和附图被认为是说明性的而非限制性的。为了说明的目的,按特定顺序描述了方法。应当理解的是,在替换实施例中,这些方法可以按照与所描述的顺序不同的顺序被执行。
普通技术人员应当理解的是,本文使用的小于(“<”)和大于(“>”)符号或术语可以在不脱离本说明书的范围的情况下分别被替换为小于或等于(“≤”)和大于或等于(“≥”)符号。
在组件被描述为“被配置为”执行某些操作的情况下,这种配置可以通过以下方式来完成,例如,通过设计电子电路或其他硬件来执行操作,通过对可编程电子电路(例如,微处理器,或其他合适的电子电路)进行编程来执行操作,或其任何组合。
短语“耦接至”是指直接地或间接地被物理连接到另一个组件的任何组件,和/或直接地和/或间接地与另一个组件进行通信(例如,通过有线或无线连接,和/或其他合适的通信接口,被连接到另一个组件)的任何组件。
陈述集合“中的至少一个”和/或集合“中的一个或多个”的权利要求语言或其他语言指示该组的一个成员或该组的多个成员(以任何组合)都满足权利要求。例如,陈述“A和B中的至少一个”或“A或B中的至少一个”的权利要求语言的意思是A、B、或A和B。在另一示例中,陈述“A、B、和C中的至少一个”或“A、B、或C中的至少一个”的权利要求语言的意思是A、B、C、或A和B,或A和C,或B和C,或A和B和C。语言集合“中的至少一个”和/或集合“中的一个或多个”并不将集合限制为集合中所列的项目。例如,陈述“A和B中的至少一个”或“A或B中的至少一个”的权利要求语言可以表示A、B、或A和B,并且可以另外包括未在A和B的集合中列出的项目。
结合本文公开的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种可互换性,以上已经在其的功能方面对各种说明性组件、块、模块、电路和步骤进行了大体描述。这种功能被实现为硬件还是软件取决于特定的应用和对整个系统施加的设计约束。技术人员可以针对每种特定应用以不同方式来实现所描述的功能,但是这种实现决定不应被解释为导致偏离本申请的范围。
本文所描述的技术还可以在电子硬件、计算机软件、固件或其任何组合中被实现。这些技术可以在各种设备中的任一种中被实现,各种设备包括例如通用计算机、无线通信设备手机或具有多种用途(包括在无线通信设备手机和其他设备中的应用)的集成电路设备。被描述为模块或组件的任何特征可以在集成逻辑设备中一起被实现或者在分立可互操作的逻辑设备被单独实现。如果以软件实现,则这些技术可以至少部分地通过包括程序代码的计算机可读取数据存储介质来实现,程序代码包括在被执行时执行上述方法中的一种或多种的指令。计算机可读取数据存储介质可以形成计算机程序产品的一部分,其可以包括封装材料。计算机可读取介质可以包括存储器或数据存储介质,例如,诸如同步动态随机存取存储器(SDRAM)的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、FLASH存储器、磁或光数据存储介质等。附加地或可替换地,这些技术可以至少部分地由计算机可读取通信介质来实现,该计算机可读取通信介质携带或传送指令或数据结构形式的、可以由计算机访问、读取和/或执行的程序代码,例如传播的信号或波。
程序代码可以由处理器执行,处理器可以包括一个或多个处理器,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA),或者其他等效的集成或分立逻辑电路。这种处理器可以被配置为执行本公开中所描述的任何技术。通用处理器可以是微处理器;但在替代方案中,处理器可以是任何传统的处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器的组合、一个或多个微处理器与DSP核结合的组合,或任何其他这样的配置。因此,如本文所使用的术语“处理器”可以指前述结构的任一种、前述结构的任何组合、或者适用于实施本文所述技术的任何其他结构或装置。
本公开的说明性方面包括:
方面1:一种处理视频数据的方法,该方法包括:由神经网络系统的编码器子网络的第一卷积层生成与帧的亮度通道相关联的输出值;由编码器子网络的第二卷积层生成与帧的至少一个色度通道相关联的输出值;通过对与帧的亮度通道相关联的输出值和与帧的至少一个色度通道相关联的输出值进行组合来生成帧的经组合表示;以及基于帧的经组合表示生成经编码视频数据。
方面2:根据方面1所述的方法,还包括:使用编码器子网络的第一归一化层处理与帧的亮度通道相关联的输出值;以及使用编码器子网络的第二归一化层处理与帧的至少一个色度通道相关联的输出值;其中,经组合表示基于第一归一化层的输出和第二归一化层的输出被生成。
方面3:根据方面1或2中任一项所述的方法,还包括:对经编码视频数据进行量化。
方面4:根据方面1至3中任一项所述的方法,还包括:对经编码视频数据进行熵译码。
方面5:根据方面1至4中任一项所述的方法,还包括:将经编码视频数据存储在存储器中。
方面6:根据方面1至5中任一项所述的方法,还包括:通过传输介质将经编码视频数据发送到至少一个设备。
方面7:根据方面1至6中任一项所述的方法,还包括:获得经编码帧;由神经网络系统的解码器子网络的第一卷积层生成与经编码帧的亮度通道相关联的重建输出值;以及由解码器子网络的第二卷积层生成与经编码帧的至少一个色度通道相关联的重建输出值。
方面8:根据方面1至7中任一项所述的方法,其中帧包括视频帧。
方面9:根据方面1至8中任一项所述的方法,其中至少一个色度通道包括色度-蓝通道和色度-红通道。
方面10:根据方面1至9中任一项所述的方法,其中帧具有亮度-色度(YUV)格式。
方面11:根据方面1至10中任一项所述的方法,其中,至少一个色度通道和亮度通道具有不同的统计特性,以及其中,第一归一化层和第二归一化层被配置为对与至少一个色度通道相关联的输出值的统计特性和与亮度通道相关联输出值的统计特性进行平衡。
方面12:根据方面1至11中任一项所述的方法,其中,编码器子网络的第一卷积层对帧的亮度通道进行子采样。
方面13:根据方面12所述的方法,其中,第一卷积层的亮度滤波器的亮度滤波器尺寸大于第二卷积层的色度滤波器的色度滤波器尺寸。
方面14:根据方面1至13中任一项所述的方法,还包括:访问与帧的亮度通道相关联的输入亮度值,其中输入亮度值还与亮度分辨率相关联;以及访问与帧的至少一个色度通道相关联的输入色度值,其中输入色度值还与色度分辨率相关联,并且其中亮度分辨率大于色度分辨率。
方面15:根据方面14所述的方法,其中,第一卷积层的亮度滤波器具有五像素乘五像素的亮度滤波器尺寸,以及其中,第二卷积层的色度滤波器具有三像素乘三像素的色度滤波器尺寸。
方面16:一种用于处理视频数据的装置,包括:存储器;以及耦接至存储器的一个或多个处理器,该一个或多个处理器被配置为:使用神经网络系统的编码器子网络的第一卷积层生成与帧的亮度通道相关联的输出值;使用编码器子网络的第二卷积层生成与帧的至少一个色度通道相关联的输出值;通过对与帧的亮度通道相关联的输出值和与帧的至少一个色度通道相关联的输出值进行组合来生成帧的经组合表示;以及基于帧的经组合表示生成经编码视频数据。
方面17:根据方面16所述的装置,其中,该一个或多个处理器被配置为:使用编码器子网络的第一归一化层处理与帧的亮度通道相关联的输出值;以及使用编码器子网络的第二归一化层处理与帧的至少一个色度通道相关联的输出值;其中,经组合表示基于第一归一化层的输出和第二归一化层的输出被生成。
方面18:根据方面16或17中任一项所述的装置,其中该一个或多个处理器被配置为:对经编码视频数据进行量化。
方面19:根据方面16至18中任一项所述的装置,其中该一个或多个处理器被配置为:对经编码视频数据进行熵译码。
方面20:根据方面16至19中任一项所述的装置,其中该一个或多个处理器被配置为:将经编码视频数据存储在存储器中。
方面21:根据方面16至20中任一项所述的装置,其中该一个或多个处理器被配置为:通过传输介质将经编码视频数据发送到至少一个设备。
方面22:根据方面16至21中任一项所述的装置,其中该一个或多个处理器被配置为:获得经编码帧;使用神经网络系统的解码器子网络的第一卷积层生成与经编码帧的亮度通道相关联的重建输出值;以及使用解码器子网络的第二卷积层生成与经编码帧的至少一个色度通道相关联的重建输出值。
方面23:根据方面16至22中任一项所述的装置,其中帧包括视频帧。
方面24:根据方面16至23中任一项所述的装置,其中至少一个色度通道包括色度-蓝通道和色度-红通道。
方面25:根据方面16至24中任一项所述的装置,其中帧具有亮度-色度(YUV)格式。
方面26:根据方面16至25中任一项所述的装置,其中一个或多个处理器包括神经处理单元(neural processing unit,NPU)。
方面27:根据方面16至26中任一项所述的装置,其中装置包括移动设备。
方面28:根据方面16至27中任一项所述的装置,其中装置包括扩展现实设备。
方面29:根据方面16至28中任一项所述的装置,还包括显示器。
方面30:根据方面16至29中任一项所述的装置,其中装置包括电视机。
方面31:根据方面16至30中任一项所述的装置,其中装置包括被配置为捕获一个或多个视频帧的相机。
方面32:根据方面16至31中任一项所述的装置,其中,至少一个色度通道和亮度通道具有不同的统计特性,以及其中,第一归一化层和第二归一化层被配置为对与至少一个色度通道相关联的输出值的统计特性和与亮度通道相关联输出值的统计特性进行平衡。
方面33:根据方面16至32中任一项所述的装置,其中,编码器子网络的第一卷积层对帧的亮度通道进行子采样。
方面34:根据方面33所述的装置,其中,第一卷积层的亮度滤波器的亮度滤波器尺寸大于第二卷积层的色度滤波器的色度滤波器尺寸。
方面35:根据方面16至34中任一项所述的装置,其中一个或多个处理器被配置为:访问与帧的亮度通道相关联的输入亮度值,其中输入亮度值还与亮度分辨率相关联;以及访问与帧的至少一个色度通道相关联的输入色度值,其中输入色度值还与色度分辨率相关联,并且其中亮度分辨率大于色度分辨率。
方面36:根据方面35所述的装置,其中,第一卷积层的亮度滤波器具有五像素乘五像素的亮度滤波器尺寸,以及其中,第二卷积层的色度滤波器具有三像素乘三像素的色度滤波器尺寸。
方面37:根据方面16至36中任一项所述的装置,其中装置包括移动设备。
方面38:根据方面16至37中任一项所述的装置,还包括耦接至处理器的显示器。
方面39:一种存储指令的计算机可读存储介质,当指令被执行时,使得一个或多个处理器执行方面1至38所述的操作中的任一种。
方面40:一种包括用于执行方面1至38所述的操作中的任一种的部件的装置。
方面41:一种处理视频数据的方法,该方法包括:获得经编码帧;由神经网络系统的解码器子网络的第一卷积层生成与经编码帧的亮度通道相关联的重建输出值;由解码器子网络的第二卷积层生成与经编码帧的至少一个色度通道相关联的重建输出值;以及生成包括与亮度通道相关联的重建输出值和与至少一个色度通道相关联的重建输出值的输出帧。
方面42:根据方面41所述的方法,还包括:使用解码器子网络的第一归一化层对与经编码帧的亮度通道相关联的值进行处理,其中,与亮度通道相关联的重建输出值基于第一归一化层的输出被生成;以及使用解码器子网络的第二归一化层对与经编码帧的至少一个色度通道相关联的值进行处理,其中,与至少一个色度通道相关联的重建输出值基于第二归一化层的输出被生成。
方面43:根据方面41或42中的任一项所述的方法,其中,解码器子网络的第一卷积层对经编码帧的亮度通道进行上采样。
方面44:根据方面41至43中的任一项所述的方法,其中,第一卷积层的亮度滤波器的亮度滤波器尺寸大于解码器子网络的第二卷积层的色度滤波器的色度滤波器尺寸。
方面45:根据方面44所述的方法,其中,亮度滤波器尺寸是九像素乘九像素,以及其中,色度滤波器尺寸是五像素乘五像素。
方面46:根据方面41至45中的任一项所述的方法,还包括对经编码帧的样本进行熵解码。
方面47:根据方面41至46中的任一项所述的方法,还包括:使用神经网络系统的编码器子网络的第一卷积层生成与帧的亮度通道相关联的输出值;使用编码器子网络的第二卷积层生成与帧的至少一个色度通道相关联的输出值;通过对与帧的亮度通道相关联的输出值和与帧的至少一个色度通道相关联的输出值进行组合来生成帧的经组合表示;以及基于帧的经组合表示生成经编码帧。
方面48:根据方面41至47中的任一项所述的方法,其中神经网络系统是神经处理单元(NPU)的一部分。
方面49:根据方面41或48中的任一项所述的方法,还包括对经编码帧的样本进行去量化。
方面50:根据方面41至49中的任一项所述的方法,还包括:将输出帧存储在存储器中。
方面51:根据方面41至50中的任一项所述的方法,还包括:显示输出帧。
方面52:根据方面41至51中的任一项所述的方法,其中经编码帧包括经编码视频帧。
方面53:根据方面41至52中的任一项所述的方法,其中至少一个色度通道包括色度-蓝通道和色度-红通道。
方面54:根据方面41至53中的任一项所述的方法,其中经编码帧具有亮度-色度(YUV)格式。
方面55:一种用于处理视频数据的装置,包括:存储器;以及耦接至该存储器的一个或多个处理器,该一个或多个处理器被配置为:获得经编码帧;使用神经网络系统的解码器子网络的第一卷积层生成与经编码帧的亮度通道相关联的重建输出值;使用解码器子网络的第二卷积层生成与经编码帧的至少一个色度通道相关联的重建输出值;以及生成包括与亮度通道相关联的重建输出值和与至少一个色度通道相关联的重建输出值的输出帧。
方面56:根据方面55所述的装置,其中该一个或多个处理器被配置为:使用解码器子网络的第一归一化层对与经编码帧的亮度通道相关联的值进行处理,其中与亮度通道相关联的重建输出值基于第一归一化层的输出被生成;以及使用解码器子网络的第二归一化层对与经编码帧的至少一个色度通道相关联的值进行处理,其中与至少一个色度通道相关联的重建输出值基于第二归一化层的输出被生成。
方面57:根据方面55或56中任一项所述的装置,其中,解码器子网络的第一卷积层对经编码帧的亮度通道进行上采样。
方面58:根据方面55至57中任一项所述的装置,其中,第一卷积层的亮度滤波器的亮度滤波器尺寸大于第二卷积层的色度滤波器的色度滤波器尺寸。
方面59:根据方面58所述的装置,其中,亮度滤波器尺寸是九像素乘九像素,以及其中,色度滤波器尺寸是五像素乘五像素。
方面60:根据方面55至59中任一项所述的装置,其中该一个或多个处理器被配置为对经编码帧的样本进行熵解码。
方面61:根据方面55至60中任一项所述的装置,其中该一个或多个处理器被配置为:使用神经网络系统的编码器子网络的第一卷积层生成与帧的亮度通道相关联的输出值;使用编码器子网络的第二卷积层生成与帧的至少一个色度通道相关联的输出值;通过对与帧的亮度通道相关联的输出值和与帧的至少一个色度通道相关联的输出值进行组合来生成帧的经组合表示;以及基于帧的经组合表示生成经编码帧。
方面62:根据方面55至61中任一项所述的装置,其中神经网络系统是神经处理单元(NPU)的一部分。
方面63:根据方面55或62中任一项所述的装置,其中该一个或多个处理器被配置为对经编码帧的样本进行去量化。
方面64:根据方面55或63中任一项所述的装置,其中该一个或多个处理器被配置为使得输出帧被存储在存储器中。
方面65:根据方面55至64中任一项所述的装置,其中该一个或多个处理器被配置为使得输出帧被显示。
方面66:根据方面55至65中任一项所述的装置,其中经编码帧包括经编码视频帧。
方面67:根据方面55至66中任一项所述的装置,其中至少一个色度通道包括色度-蓝通道和色度-红通道。
方面68:根据方面55至67中任一项所述的装置,其中经编码帧具有亮度-色度(YUV)格式。
方面69:根据方面55至68中任一项所述的装置,还包括耦接至处理器的显示器,输出帧包括输出到装置的显示器的视频帧。
方面70:一种存储指令的计算机可读存储介质,当指令被执行时,使得一个或多个处理器执行方面41至69所述的操作中的任一种。
方面71:一种包括用于执行方面41至69所述的操作中的任一种的部件的装置。
方面72:一种执行方面1至38所述的操作中的任一种和方面41至69所述的操作中的任一种的方法。
方面73:一种用于处理视频数据的装置,包括:存储器;以及耦接至存储器的一个或多个处理器,一个或多个处理器被配置为执行方面1至38所述的操作中的任一种和方面41至69所述的操作中的任一种。
方面74:一种存储指令的计算机可读存储介质,当指令被执行时,使得一个或多个处理器执行方面1至38所述的操作中的任一种和方面41至69所述的操作中的任一种。
方面75:一种包括用于执行方面1至38所述的操作中的任一种和方面41至69所述的操作中的任一种的部件的装置。

Claims (30)

1.一种用于处理视频数据的装置,包括:
存储器;以及
处理器,所述处理器耦接至所述存储器并且被配置为:
使用神经网络系统的编码器子网络的第一卷积层生成与帧的亮度通道相关联的输出值;
使用所述编码器子网络的第二卷积层生成与所述帧的至少一个色度通道相关联的输出值;
通过对与所述帧的所述亮度通道相关联的输出值和与所述帧的所述至少一个色度通道相关联的输出值进行组合来生成所述帧的经组合表示;以及
基于所述帧的所述经组合表示生成经编码视频数据。
2.根据权利要求1所述的装置,其中,所述处理器被配置为:
使用所述编码器子网络的第一归一化层处理与所述帧的所述亮度通道相关联的输出值;以及
使用所述编码器子网络的第二归一化层处理与所述帧的所述至少一个色度通道相关联的输出值;
其中,所述组合表示基于所述第一归一化层的输出和所述第二归一化层的输出被生成。
3.根据权利要求2所述的装置,其中,所述至少一个色度通道和所述亮度通道具有不同的统计特性,以及其中,所述第一归一化层和所述第二归一化层被配置为对与所述至少一个色度通道相关联的输出值的统计特性和与所述亮度通道相关联的输出值的统计特性进行平衡。
4.根据权利要求1所述的装置,其中,所述编码器子网络的所述第一卷积层对所述帧的所述亮度通道进行子采样。
5.根据权利要求4所述的装置,其中,所述第一卷积层的亮度滤波器的亮度滤波器尺寸大于所述第二卷积层的色度滤波器的色度滤波器尺寸。
6.根据权利要求1所述的装置,其中,所述处理器还被配置为:
访问与所述帧的所述亮度通道相关联的输入亮度值,其中所述输入亮度值还与亮度分辨率相关联;以及
访问与所述帧的所述至少一个色度通道相关联的输入色度值,其中所述输入色度值还与色度分辨率相关联,并且其中所述亮度分辨率大于所述色度分辨率。
7.根据权利要求6所述的装置,其中,所述第一卷积层的亮度滤波器具有五像素乘五像素的亮度滤波器尺寸,以及其中,所述第二卷积层的色度滤波器具有三像素乘三像素的色度滤波器尺寸。
8.根据权利要求1所述的装置,其中,所述装置包括移动设备。
9.根据权利要求1所述的装置,还包括耦接至所述处理器的显示器。
10.一种处理视频数据的方法,所述方法包括:
由神经网络系统的编码器子网络的第一卷积层生成与帧的亮度通道相关联的输出值;
由所述编码器子网络的第二卷积层生成与所述帧的至少一个色度通道相关联的输出值;
通过对与所述帧的所述亮度通道相关联的输出值和与所述帧的所述至少一个色度通道相关联的输出值进行组合来生成所述帧的经组合表示;以及
基于所述帧的所述经组合表示生成经编码视频数据。
11.根据权利要求10所述的方法,还包括:
使用所述编码器子网络的第一归一化层处理与所述帧的所述亮度通道相关联的输出值;以及
使用所述编码器子网络的第二归一化层处理与所述帧的所述至少一个色度通道相关联的输出值;
其中,所述经组合表示基于所述第一归一化层的输出和所述第二归一化层的输出被生成。
12.根据权利要求11所述的方法,还包括:
获得根据所述至少一个色度通道和所述亮度通道生成的经编码帧;
由所述神经网络系统的解码器子网络的第一卷积层生成与所述经编码帧的亮度通道相关联的重建输出值;以及
由所述解码器子网络的第二卷积层生成与所述经编码帧的至少一个色度通道相关联的重建输出值。
13.根据权利要求11所述的方法,其中,所述帧具有亮度-色度(YUV)格式。
14.一种用于处理视频数据的装置,包括:
存储器;以及
处理器,所述处理器耦接至所述存储器的并且被配置为:
获得经编码帧;
使用神经网络系统的解码器子网络的第一卷积层生成与所述经编码帧的亮度通道相关联的重建输出值;
使用所述解码器子网络的第二卷积层生成与所述经编码帧的至少一个色度通道相关联的重建输出值;以及
生成包括与所述亮度通道相关联的所述重建输出值和与所述至少一个色度通道相关联的所述重建输出值的输出帧。
15.根据权利要求14所述的装置,其中,所述处理器被配置为:
使用所述解码器子网络的第一归一化层对与所述经编码帧的所述亮度通道相关联的值进行处理,其中与所述亮度通道相关联的所述重建输出值基于所述第一归一化层的输出被生成;以及
使用所述解码器子网络的第二归一化层对与所述经编码帧的所述至少一个色度通道相关联的值进行处理,其中与所述至少一个色度通道相关联的所述重建输出值基于所述第二归一化层的输出被生成。
16.根据权利要求15所述的装置,其中,所述解码器子网络的所述第一卷积层对所述经编码帧的所述亮度通道进行上采样。
17.根据权利要求16所述的装置,其中,所述第一卷积层的亮度滤波器的亮度滤波器尺寸大于所述第二卷积层的色度滤波器的色度滤波器尺寸。
18.根据权利要求17所述的装置,其中,所述亮度滤波器尺寸是九像素乘九像素,以及其中,所述色度滤波器尺寸是五像素乘五像素。
19.根据权利要求14所述的装置,其中,所述处理器被配置为:
对经编码帧的样本进行熵解码。
20.根据权利要求14所述的装置,其中,所述处理器被配置为:
使用所述神经网络系统的编码器子网络的第一卷积层生成与帧的所述亮度通道相关联的输出值;
使用所述编码器子网络的第二卷积层生成与所述帧的所述至少一个色度通道相关联的输出值;
通过对与所述帧的所述亮度通道相关联的输出值和与所述帧的所述至少一个色度通道相关联的输出值进行组合来生成所述帧的经组合表示;以及
基于所述帧的所述经组合表示生成所述经编码帧。
21.根据权利要求14所述的装置,其中,所述处理器包括神经处理单元(NPU)。
22.根据权利要求14所述的装置,还包括耦接至所述处理器的显示器,其中,所述输出帧包括输出到所述装置的所述显示器的视频帧。
23.一种处理视频数据的方法,所述方法包括:
获得经编码帧;
由神经网络系统的解码器子网络的第一卷积层生成与所述经编码帧的亮度通道相关联的重建输出值;
由所述解码器子网络的第二卷积层生成与所述经编码帧的至少一个色度通道相关联的重建输出值;以及
生成包括与所述亮度通道相关联的所述重建输出值和与所述至少一个色度通道相关联的所述重建输出值的输出帧。
24.根据权利要求23所述的方法,还包括:
使用所述解码器子网络的第一归一化层对与所述经编码帧的所述亮度通道相关联的值进行处理,其中,与所述亮度通道相关联的所述重建输出值基于所述第一归一化层的输出被生成;以及
使用所述解码器子网络的第二归一化层对与所述经编码帧的所述至少一个色度通道相关联的值进行处理,其中,与所述至少一个色度通道相关联的所述重建输出值基于所述第二归一化层的输出被生成。
25.根据权利要求24所述的方法,其中,所述解码器子网络的所述第一卷积层对所述经编码帧的所述亮度通道进行上采样。
26.根据权利要求23所述的方法,其中,所述第一卷积层的亮度滤波器的亮度滤波器尺寸大于所述解码器子网络的所述第二卷积层的色度滤波器的色度滤波器尺寸。
27.根据权利要求26所述的方法,其中,所述亮度滤波器尺寸是九像素乘九像素,以及其中,所述色度滤波器尺寸是五像素乘五像素。
28.根据权利要求23所述的方法,还包括对所述经编码帧的样本进行熵解码。
29.根据权利要求23所述的方法,还包括:
使用所述神经网络系统的编码器子网络的第一卷积层生成与帧的所述亮度通道相关联的输出值;
使用所述编码器子网络的第二卷积层生成与所述帧的所述至少一个色度通道相关联的输出值;
通过对与所述帧的所述亮度通道相关联的输出值和与所述帧的所述至少一个色度通道相关联的输出值进行组合来生成所述帧的经组合表示;以及
基于所述帧的所述经组合表示生成所述经编码帧。
30.根据权利要求23所述的方法,其中,所述神经网络系统是神经处理单元(NPU)的一部分。
CN202180061904.3A 2020-09-16 2021-08-16 基于端到端神经网络的视频译码 Pending CN116114247A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063079402P 2020-09-16 2020-09-16
US63/079,402 2020-09-16
US17/182,686 US11477464B2 (en) 2020-09-16 2021-02-23 End-to-end neural network based video coding
US17/182,686 2021-02-23
PCT/US2021/046176 WO2022060505A1 (en) 2020-09-16 2021-08-16 End-to-end neural network based video coding

Publications (1)

Publication Number Publication Date
CN116114247A true CN116114247A (zh) 2023-05-12

Family

ID=80627338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180061904.3A Pending CN116114247A (zh) 2020-09-16 2021-08-16 基于端到端神经网络的视频译码

Country Status (7)

Country Link
US (1) US11477464B2 (zh)
EP (1) EP4214683A1 (zh)
KR (1) KR102578967B1 (zh)
CN (1) CN116114247A (zh)
BR (1) BR112023003932A2 (zh)
TW (1) TW202213997A (zh)
WO (1) WO2022060505A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111508038A (zh) * 2020-04-17 2020-08-07 北京百度网讯科技有限公司 图像处理方法、装置、电子设备及计算机可读存储介质
US20220286696A1 (en) * 2021-03-02 2022-09-08 Samsung Electronics Co., Ltd. Image compression method and apparatus
US12010335B2 (en) * 2021-04-08 2024-06-11 Disney Enterprises, Inc. Microdosing for low bitrate video compression
CN113128116B (zh) * 2021-04-20 2023-09-26 上海科技大学 可用于轻量级神经网络的纯整型量化方法
US20230186435A1 (en) * 2021-12-14 2023-06-15 Netflix, Inc. Techniques for component-based image preprocessing
CN114513660B (zh) * 2022-04-19 2022-09-06 宁波康达凯能医疗科技有限公司 一种基于卷积神经网络的帧间图像模式决策方法
KR20240002346A (ko) * 2022-06-29 2024-01-05 삼성전자주식회사 Ai 부호화/복호화를 이용하여 영상을 처리하는 전자 장치 및 그 제어 방법
WO2024081872A1 (en) * 2022-10-14 2024-04-18 Bytedance Inc. Method, apparatus, and medium for video processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190220746A1 (en) * 2017-08-29 2019-07-18 Boe Technology Group Co., Ltd. Image processing method, image processing device, and training method of neural network
CN111133756A (zh) * 2017-10-12 2020-05-08 联发科技股份有限公司 用于视频编码的神经网络方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150278628A1 (en) * 2014-03-27 2015-10-01 Qualcomm Incorporated Invariant object representation of images using spiking neural networks
US11631199B2 (en) * 2017-08-10 2023-04-18 Sharp Kabushiki Kaisha Image filtering apparatus, image decoding apparatus, and image coding apparatus
US11388439B2 (en) * 2019-10-21 2022-07-12 Google Llc Sparse matrix representation using a boundary of non-zero coefficients

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190220746A1 (en) * 2017-08-29 2019-07-18 Boe Technology Group Co., Ltd. Image processing method, image processing device, and training method of neural network
CN111133756A (zh) * 2017-10-12 2020-05-08 联发科技股份有限公司 用于视频编码的神经网络方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MARC GORRIZ BLANCH等: "CHROMA INTRA PREDICTION WITH ATTENTION-BASED CNN ARCHITECTURES", 《2020 IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP)》, pages 3 *

Also Published As

Publication number Publication date
WO2022060505A1 (en) 2022-03-24
KR20230041084A (ko) 2023-03-23
TW202213997A (zh) 2022-04-01
US11477464B2 (en) 2022-10-18
KR102578967B1 (ko) 2023-09-14
US20220086463A1 (en) 2022-03-17
BR112023003932A2 (pt) 2023-04-11
EP4214683A1 (en) 2023-07-26

Similar Documents

Publication Publication Date Title
US11405626B2 (en) Video compression using recurrent-based machine learning systems
KR102578967B1 (ko) 단대단 신경망 기반 비디오 코딩
KR20230074137A (ko) 머신 러닝 시스템들을 이용한 인스턴스 적응적 이미지 및 비디오 압축
US20220191523A1 (en) Front-end architecture for neural network based video coding
CN116325742A (zh) 用于并行译码的双向数据块的联合终止
US12003734B2 (en) Machine learning based flow determination for video coding
US20240064318A1 (en) Apparatus and method for coding pictures using a convolutional neural network
US11399198B1 (en) Learned B-frame compression
CN117980916A (zh) 用于媒体的变换译码的基于变换器的架构
US20240214578A1 (en) Regularizing neural networks with data quantization using exponential family priors
CN116547965A (zh) 用于基于神经网络的视频译码的前端架构
WO2022126120A1 (en) A front-end architecture for neural network based video coding
CN116965032A (zh) 用于视频译码的基于机器学习的流确定
JP2024508772A (ja) ビデオコーディングのための機械学習ベースのフロー決定
US20240015318A1 (en) Video coding using optical flow and residual predictors
WO2024137094A1 (en) Regularizing neural networks with data quantization using exponential family priors
US20240013441A1 (en) Video coding using camera motion compensation and object motion compensation
TW202404360A (zh) 用於具有機器學習增強的視訊解碼的位元速率估計
WO2024073213A1 (en) Diffusion-based data compression
KR20240090145A (ko) 미디어의 변환 코딩을 위한 트랜스포머 기반 아키텍처

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