CN116584096A - 用于视频译码的根据亮度的色度预测 - Google Patents
用于视频译码的根据亮度的色度预测 Download PDFInfo
- Publication number
- CN116584096A CN116584096A CN202180081743.4A CN202180081743A CN116584096A CN 116584096 A CN116584096 A CN 116584096A CN 202180081743 A CN202180081743 A CN 202180081743A CN 116584096 A CN116584096 A CN 116584096A
- Authority
- CN
- China
- Prior art keywords
- block
- luma
- chroma
- prediction
- sample
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods 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 characterised by memory arrangements
- H04N19/426—Methods 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 characterised by memory arrangements using memory downsizing methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods 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 characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/88—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种视频译码器可以被配置为根据经重构的亮度样本来对视频数据的色度块进行译码。该视频译码器可以在用于亮度块的预测过程期间,将亮度块的每个子块的经重构的亮度样本值的总和存储在第一缓冲器中,并且在用于亮度块的预测过程期间,将经重构的亮度样本值的平均值存储在第二缓冲器中。该视频译码器可以执行根据亮度的色度预测,以使用总和以及平均值来重构与亮度块相对应的视频数据的色度块。
Description
本申请要求享受于2020年12月11日递交的美国申请No.17/119,810的优先权,其全部内容通过引用方式被并入本文。
技术领域
本公开内容涉及视频编码和视频解码。
背景技术
数字视频能力可以被合并到各种各样的设备中,包括数字电视机、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型计算机或台式计算机、平板计算机、电子书阅读器、数字相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话(所谓的“智能电话”)、视频电话会议设备、视频流式传输设备等。数字视频设备实现视频译码技术(诸如在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4(第10部分,高级视频译码(AVC))、ITU-T H.265/高效率视频译码(HEVC)所定义的标准和这样的标准的扩展以及专有视频编解码器/格式(诸如由开放媒体联盟开发的AOMedia Video 1(AV1))中描述的那些技术)。通过实现这样的视频译码技术,视频设备可以更加高效地发送、接收、编码、解码和/或存储数字视频信息。
视频译码技术包括空间(图片内(intra-picture))预测和/或时间(图片间(inter-picture))预测以减少或去除在视频序列中固有的冗余。对于基于块的视频译码,视频切片或视频瓦片(例如,视频图片或视频图片的一部分)可以被分割为视频块,视频块也可以被称为译码块、超级块、译码树单元(CTU)、译码单元(CU)和/或译码节点。图片的经帧内译码(I)的切片中的视频块是使用相对于同一图片中的相邻块中的参考样本(也被称为预测样本)的空间预测来编码的。图片的经帧间译码(P或B)的切片中的视频块可以使用相对于同一图片中的相邻块中的参考样本的空间预测或者相对于其它参考图片中的参考样本的时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。
发明内容
概括而言,本公开内容描述了用于对视频数据进行编码和解码的技术。具体而言,本公开内容描述了用于使用根据亮度的色度(CFL)预测模式来对视频数据进行编码和解码的技术。当使用CFL预测模式来对视频数据进行译码时,视频译码器可以使用对应的亮度块中的经重构的亮度样本来确定用于视频数据的色度块的预测样本。视频译码器可以基于对应的亮度块的子块(例如,2x2子块)中的经重构的亮度样本的总和以及亮度块的亮度样本的平均亮度值来确定用于CFL预测模式的预测样本。
在一些示例技术中,在执行CFL预测之前,将经重构的亮度样本存储在存储器中。为了执行CFL预测,视频译码器在第一读取状态中读出先前经重构的亮度样本,以计算和存储总和以及平均值。然后,视频译码器读出总和以及平均值,以确定用于CFL预测的预测样本。
视频译码器可以被配置为在重构亮度样本的过程期间计算和存储亮度总和(例如,2x2亮度总和)并且累积亮度块的亮度平均值,而不是从存储器读出先前存储的经重构的亮度样本以对色度样本执行CFL预测。以这种方式,视频译码器在CFL预测过程期间仅需要执行一个读取过程(例如,读出先前计算的亮度总和以及亮度平均值)。因此,减少了CFL预测过程的硬件实现所需的存储器的数量。另外,由于相对于其它CLF实现技术消除了用于先前存储的经重构的亮度样本的读出过程,因此减少了执行CFL预测所需的处理周期的数量。因此,可以提高视频译码速度。
在一个示例中,一种设备包括被配置为存储视频数据的一个或多个存储器单元以及在电路中实现并且与所述一个或多个存储器单元进行通信的一个或多个处理器。所述一个或多个处理器被配置为:执行用于所述视频数据的亮度块的预测过程以形成经重构的亮度样本值。所述一个或多个处理器还被配置为:在用于所述亮度块的所述预测过程期间,将所述亮度块的每个子块的所述经重构的亮度样本值的总和存储在所述一个或多个存储器单元的第一缓冲器中;以及在用于所述亮度块的所述预测过程期间,将所述经重构的亮度样本值的平均值存储在第二缓冲器中。所述一个或多个处理器还被配置为:执行根据亮度的色度预测,以使用所述亮度块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值来重构与所述亮度块相对应的所述视频数据的色度块。
在另一示例中,一种方法包括:执行用于视频数据的亮度块的预测过程以形成经重构的亮度样本值;在用于所述亮度块的所述预测过程期间,将所述亮度块的每个子块的所述经重构的亮度样本值的总和存储在一个或多个存储器单元的第一缓冲器中;在用于所述亮度块的所述预测过程期间,将所述经重构的亮度样本值的平均值存储在第二缓冲器中;以及执行根据亮度的色度预测,以使用所述亮度块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值来重构与所述亮度块相对应的所述视频数据的色度块。
在另一示例中,一种设备包括:用于执行用于视频数据的亮度块的预测过程以形成经重构的亮度样本值的单元;用于在用于所述亮度块的所述预测过程期间,将所述亮度块的每个子块的所述经重构的亮度样本值的总和存储在一个或多个存储器单元的第一缓冲器中的单元;用于在用于所述亮度块的所述预测过程期间,将所述经重构的亮度样本值的平均值存储在第二缓冲器中的单元;以及用于执行根据亮度的色度预测,以使用所述亮度块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值来重构与所述亮度块相对应的所述视频数据的色度块的单元。
在另一示例中,本公开内容描述了一种存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得被配置为对视频数据进行解码的设备的一个或多个处理器进行以下操作:执行用于所述视频数据的亮度块的预测过程以形成经重构的亮度样本值;在用于所述亮度块的所述预测过程期间,将所述亮度块的每个子块的所述经重构的亮度样本值的总和存储在一个或多个存储器单元的第一缓冲器中;在用于所述亮度块的所述预测过程期间,将所述经重构的亮度样本值的平均值存储在第二缓冲器中;以及执行根据亮度的色度预测,以使用所述亮度块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值来重构与所述亮度块相对应的所述视频数据的色度块。
在附图和以下描述中阐述了一个或多个示例的细节。根据描述、附图和权利要求,其它特征、目的和优点将是显而易见的。
附图说明
图1是示出可以执行本公开内容的技术的示例视频编码和解码系统的框图。
图2是示出可以执行本公开内容的技术的示例视频编码器的框图。
图3是示出可以执行本公开内容的技术的示例视频解码器的框图。
图4是示出根据本公开内容的技术的示例解码方法的流程图。
图5是示出根据本公开内容的技术的另一示例解码方法的流程图。
具体实施方式
概括而言,本公开内容描述了用于对视频数据进行编码和解码的技术。具体而言,本公开内容描述了用于使用根据亮度的色度(chroma from luma,CFL)预测模式来对视频数据进行编码和解码的技术。当使用CFL预测模式来对视频数据进行译码时,视频译码器可以使用对应的亮度块中的经重构的亮度样本来确定用于视频数据的色度块的预测样本。视频译码器可以基于对应的亮度块的子块(例如,2x2子块)中的经重构的亮度样本的总和以及亮度块的亮度样本的平均亮度值来确定用于CFL预测模式的预测样本。
在一些示例技术中,在执行CFL预测之前,将经重构的亮度样本存储在存储器中。为了执行CFL预测,视频译码器必须在第一读取状态中读出先前经重构的亮度样本,以计算和存储总和以及平均值。然后,视频译码器必须读出总和以及平均值,以确定用于CFL预测的预测样本。
视频译码器可以被配置为在重构亮度样本的过程期间计算和存储亮度总和(例如,2x2亮度总和)并且累积亮度块的亮度平均值,而不是从存储器读出先前存储的经重构的亮度样本以对色度样本执行CFL预测。以这种方式,视频译码器在CFL预测过程期间仅需要执行一个读取过程(例如,读出先前计算的亮度总和以及亮度平均值)。因此,减少了CFL预测过程的硬件实现所需的存储器数量。另外,由于相对于其它CFL实现技术消除了用于先前存储的经重构的亮度样本的读出过程,因此减少了执行CFL预测所需的处理周期的数量。因此,可以提高视频译码速度。
图1是示出可以执行本公开内容的技术的示例视频编码和解码系统100的框图。概括而言,本公开内容的技术针对于对视频数据进行译码(编码和/或解码)。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的未经编码的视频、经编码的视频、经解码(例如,经重构)的视频、以及视频元数据(例如,信令数据)。
如图1中所示,在该示例中,系统100包括源设备102,源设备102提供要被目的地设备116解码和显示的、经编码的视频数据。具体地,源设备102经由计算机可读介质110来将视频数据提供给目的地设备116。源设备102和目的地设备116可以包括各种各样的设备中的任何一种,包括台式计算机、笔记本计算机(即,膝上型计算机)、移动设备、平板计算机、机顶盒、诸如智能电话之类的电话手机、电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备、广播接收机设备等。在一些情况下,源设备102和目的地设备116可以被配备用于无线通信,并且因此可以被称为无线通信设备。
在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200以及输出接口108。目的地设备116包括输入接口122、视频解码器300、存储器120以及显示设备118。根据本公开内容,源设备102的视频编码器200和目的地设备116的视频解码器300可以被配置为应用用于使用根据亮度的色度预测来对视频数据的色度块的色度样本进行编码和解码的技术。因此,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其它示例中,源设备和目的地设备可以包括其它组件或布置。例如,源设备102可以从诸如外部相机之类的外部视频源接收视频数据。同样,目的地设备116可以与外部显示设备对接,而不是包括集成的显示设备。
如图1中所示的系统100仅是一个示例。通常,任何数字视频编码和/或解码设备可以执行用于使用根据亮度的色度预测来对视频数据的色度块的色度样本进行编码和解码的技术。源设备102和目的地设备116仅是这样的译码设备的示例,其中,源设备102生成经译码的视频数据以用于传输给目的地设备116。本公开内容将“译码”设备指代为执行对数据的译码(例如,编码和/或解码)的设备。因此,视频编码器200和视频解码器300表示译码设备(具体地,分别为视频编码器和视频解码器)的示例。在一些示例中,源设备102和目的地设备116可以以基本上对称的方式进行操作,使得源设备102和目的地设备116中的每一者都包括视频编码和解码组件。因此,系统100可以支持在源设备102与目的地设备116之间的单向或双向视频传输,例如,以用于视频流式传输、视频回放、视频广播或视频电话。
通常,视频源104表示视频数据(即,原始的未经编码的视频数据)的源,并且将视频数据的顺序的一系列图片(也被称为“帧”)提供给视频编码器200,视频编码器200对用于图片的数据进行编码。源设备102的视频源104可以包括视频捕获设备,诸如摄像机、包含先前捕获的原始视频的视频存档、和/或用于从视频内容提供者接收视频的视频馈送接口。作为另外的替代方式,视频源104可以生成基于计算机图形的数据作为源视频,或者生成实时视频、被存档的视频和计算机生成的视频的组合。在每种情况下,视频编码器200对被捕获的、预捕获的或计算机生成的视频数据进行编码。视频编码器200可以将图片从所接收的次序(有时被称为“显示次序”)重新排列为用于译码的译码次序。视频编码器200可以生成包括经编码的视频数据的比特流。然后,源设备102可以经由输出接口108将经编码的视频数据输出到计算机可读介质110上,以便由例如目的地设备116的输入接口122接收和/或取回。
源设备102的存储器106和目的地设备116的存储器120表示通用存储器。在一些示例中,存储器106、120可以存储原始视频数据,例如,来自视频源104的原始视频以及来自视频解码器300的原始的经解码的视频数据。另外或替代地,存储器106、120可以存储由例如视频编码器200和视频解码器300分别可执行的软件指令。尽管存储器106和存储器120在该示例中被示为与视频编码器200和视频解码器300分开,但是应当理解的是,视频编码器200和视频解码器300还可以包括用于在功能上类似或等效目的的内部存储器。此外,存储器106、120可以存储例如从视频编码器200输出并且输入到视频解码器300的经编码的视频数据。在一些示例中,存储器106、120的部分可以被分配为一个或多个视频缓冲器,例如,以存储原始的经解码和/或经编码的视频数据。
计算机可读介质110可以表示能够将经编码的视频数据从源设备102输送到目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示通信介质,其使得源设备102能够例如经由射频网络或基于计算机的网络,来实时地向目的地设备116直接发送经编码的视频数据。根据诸如无线通信协议之类的通信标准,输出接口108可以对包括经编码的视频数据的传输信号进行调制,并且输入接口122可以对所接收的传输信号进行解调。通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成诸如以下各项的基于分组的网络的一部分:局域网、广域网、或诸如互联网之类的全球网络。通信介质可以包括路由器、交换机、基站、或对于促进从源设备102到目的地设备116的通信而言可以是有用的任何其它设备。
在一些示例中,源设备102可以将经编码的数据从输出接口108输出到存储设备112。类似地,目的地设备116可以经由输入接口122从存储设备112访问经编码的数据。存储设备112可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器、或用于存储经编码的视频数据的任何其它适当的数字存储介质。
在一些示例中,源设备102可以将经编码的视频数据输出到文件服务器114或者可以存储由源设备102生成的经编码的视频数据的另一中间存储设备。目的地设备116可以经由流式传输或下载来从文件服务器114访问被存储的视频数据。
文件服务器114可以是能够存储经编码的视频数据并且将该经编码的视频数据发送给目的地设备116的任何类型的服务器设备。文件服务器114可以表示网页服务器(例如,用于网站)、被配置为提供文件传输协议服务(诸如文件传输协议(FTP)或基于单向传输的文件递送(FLUTE)协议)的服务器、内容递送网络(CDN)设备、超文本传输协议(HTTP)服务器、多媒体广播多播服务(MBMS)或增强型MBMS(eMBMS)服务器、和/或网络附加存储(NAS)设备。文件服务器114可以另外或替代地实现一种或多种HTTP流式传输协议,诸如基于HTTP的动态自适应流式传输(DASH)、HTTP实时流式传输(HLS)、实时流式传输协议(RTSP)、HTTP动态流式传输等。
目的地设备116可以通过任何标准数据连接(包括互联网连接)来从文件服务器114访问经编码的视频数据。这可以包括适于访问被存储在文件服务器114上的经编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线(DSL)、电缆调制解调器等)、或这两者的组合。输入接口122可以被配置为根据上文讨论的用于从文件服务器114取回或接收媒体数据的各种协议或者用于取回媒体数据的其它这样的协议中的任何一种或多种进行操作。
输出接口108和输入接口122可以表示无线发射机/接收机、调制解调器、有线联网组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任何一种标准进行操作的无线通信组件、或其它物理组件。在其中输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准(诸如4G、4G-LTE(长期演进)、改进的LTE、5G等)来传输数据(诸如经编码的视频数据)。在其中输出接口108包括无线发射机的一些示例中,输出接口108和输入接口122可以被配置为根据其它无线标准(诸如IEEE 802.11规范、IEEE 802.15规范(例如,ZigBeeTM)、BluetoothTM标准等)来传输数据(诸如经编码的视频数据)。在一些示例中,源设备102和/或目的地设备116可以包括相应的片上系统(SoC)设备。例如,源设备102可以包括用于执行被赋予视频编码器200和/或输出接口108的功能的SoC设备,并且目的地设备116可以包括用于执行被赋予视频解码器300和/或输入接口122的功能的SoC设备。
本公开内容的技术可以被应用于视频译码,以支持各种多媒体应用中的任何一种,诸如空中电视广播、有线电视传输、卫星电视传输、互联网流式传输视频传输(诸如基于HTTP的动态自适应流式传输(DASH))、被编码到数据存储介质上的数字视频、对被存储在数据存储介质上的数字视频的解码、或其它应用。
目的地设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收经编码的视频比特流。经编码的视频比特流可以包括由视频编码器200定义的诸如以下语法元素之类的信令信息(其也被视频解码器300使用):所述语法元素具有描述视频块或其它译码单元(例如,切片、图片、图片组、序列等)的特性和/或处理的值。显示设备118将经解码的视频数据的经解码的图片显示给用户。显示设备118可以表示各种显示设备中的任何一种,诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、或另一种类型的显示设备。
尽管在图1中未示出,但是在一些示例中,视频编码器200和视频解码器300可以各自被集成有音频编码器和/或音频解码器,并且可以包括适当的MUX-DEMUX单元或其它硬件和/或软件,以处理包括公共数据流中的音频和视频两者的经复用的流。如果适用,MUX-DEMUX单元可以遵循ITU H.223复用器协议或其它协议(诸如用户数据报协议(UDP))。
视频编码器200和视频解码器300各自可以被实现为各种适当的编码器和/或解码器电路中的任何一种,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件、或其任何组合。当所述技术部分地用软件实现时,设备可以将用于软件的指令存储在适当的非暂时性计算机可读介质中,并且使用一个或多个处理器,用硬件来执行指令以执行本公开内容的技术。视频编码器200和视频解码器300中的每一者可以被包括在一个或多个编码器或解码器中,编码器或解码器中的任一者可以被集成为相应设备中的组合的编码器/解码器(CODEC)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器、和/或无线通信设备(诸如蜂窝电话)。
在本公开内容的一些示例中,视频编码器200和视频解码器300可以根据视频译码格式(诸如AOMedia Video 1(AV1)或其扩展以及当前可能正在开发或即将推出的后续译码格式(例如,AV2))进行操作。在其它示例中,视频编码器200和视频解码器300可以根据其它专有或行业标准进行操作。然而,本公开内容的技术不限于任何特定的译码标准和/或视频译码格式。通常,视频编码器200和视频解码器300可以被配置为结合使用亮度样本值来对色度样本值进行编码或解码的任何视频译码技术来执行本公开内容的技术。
通常,视频编码器200和视频解码器300可以执行对图片的基于块的译码。术语“块”通常指代包括要被处理的(例如,在编码和/或解码过程中被编码、被解码或以其它方式使用的)数据的结构。例如,块可以包括亮度和/或色度数据的样本的二维矩阵。通常,视频编码器200和视频解码器300可以对以YUV(例如,Y、Cb、Cr)格式表示的视频数据进行译码。也就是说,视频编码器200和视频解码器300可以对亮度和色度分量进行译码,而不是对用于图片的样本的红色、绿色和蓝色(RGB)数据进行译码,其中,色度分量可以包括红色色相和蓝色色相色度分量两者。在一些示例中,视频编码器200在进行编码之前将所接收的经RGB格式化的数据转换为YUV表示,并且视频解码器300将YUV表示转换为RGB格式。替代地,预处理和后处理单元(未示出)可以执行这些转换。
概括而言,本公开内容可以涉及对图片的译码(例如,编码和解码)以包括对图片的数据进行编码或解码的过程。类似地,本公开内容可以涉及对图片的块的译码以包括对用于块的数据进行编码或解码(例如,预测和/或残差译码)的过程。经编码的视频比特流通常包括用于表示译码决策(例如,译码模式)以及将图片分割为块的语法元素的一系列值。因此,对图片或块进行译码的提及通常应当被理解为对用于形成图片或块的语法元素的值进行译码。
本公开内容可以可互换地使用“NxN”和“N乘N”来指代块(诸如译码块、超级块或视频数据的其它块)在垂直和水平尺寸方面的样本尺寸,例如,16x16个样本或16乘16个样本。通常,16x16译码块在垂直方向上将具有16个样本(y=16),并且在水平方向上将具有16个样本(x=16)。同样地,NxN译码块通常在垂直方向上具有N个样本,并且在水平方向上具有N个样本,其中N表示非负整数值。译码块中的样本可以按行和列来排列。此外,译码块不一定需要在水平方向上具有与在垂直方向上相同的数量的样本(即,译码块可以是非正方形的)。例如,译码块可以包括NxM个样本,其中M不一定等于N。
当根据AV1编解码器操作时,视频编码器200和视频解码器300可以被配置为以块的形式对视频数据进行译码。在AV1中,可以被处理的最大译码块被称为超级块。在AV1中,超级块可以是128x128亮度样本或64x64亮度样本。然而,在后续视频译码格式(例如,AV2)中,超级块可以由不同(例如,更大)的亮度样本大小来定义。在一些示例中,超级块是块四叉树的顶层。视频编码器200可以进一步将超级块划分为更小的译码块。视频编码器200可以使用正方形或非正方形分割来将超级块和其它译码块划分成更小的块。非正方形块可以包括N/2xN、NxN/2、N/4xN和NxN/4块。视频编码器200和视频解码器300可以对译码块中的每个译码块执行单独的预测和变换过程。
AV1还定义了视频数据的瓦片。瓦片是超级块的矩形阵列,其可以独立于其它瓦片进行译码。也就是说,视频编码器200和视频解码器300可以分别对瓦片内的译码块进行编码和解码,而不使用来自其它瓦片的视频数据。然而,视频编码器200和视频解码器300可以跨越瓦片边界执行滤波。瓦片的大小可以是统一的或不统一的。基于瓦片的译码实现针对编码器和解码器实现的并行处理和多线程。
在一些示例中,对于具有三个样本阵列的图片,译码块包括亮度样本的译码块和对应于色度样本的两个译码块。在其它示例中,译码块包括亮度样本的单个译码块(例如,对于单色图片)。AV1支持4:0:0色度二次采样(例如,单色)、4:2:0色度二次采样、4:2:2色度二次采样和4:4:4色度二次采样(即,无色度二次采样)。AV1可以在YUV色彩空间中对视频数据进行译码,其中Y是亮度分量,U是第一色度分量(例如,蓝色投影),并且V是第二色度分量(例如,红色投影)。
AV1包括用于对视频数据的译码块进行编码和解码的两种通用技术。这两种通用技术是帧内预测(例如,帧内预测或空间预测)和帧间预测(例如,帧间预测或时间预测)。在AV1的上下文中,当使用帧内预测模式来预测视频数据的当前帧的块时,视频编码器200和视频解码器300不使用来自视频数据的其它帧的视频数据。对于大多数帧内预测模式,视频编码器200基于当前块中的样本值与从同一帧中的参考样本生成的预测值之间的差来对当前帧的块进行编码。视频编码器200基于帧内预测模式来确定从参考样本生成的预测值。
当前经编码的样本与从参考样本生成的预测值之间的差被称为残差。视频编码器200可以在经编码的视频比特流中对残差值进行编码(例如,通过变换、量化和熵译码)。视频解码器300可以对残差值进行解码,以与视频编码器200相同的方式确定从参考样本生成的预测值,并且将从参考样本生成的预测值添加到残差中以重构译码块。AV1的帧内预测模式包括定向帧内预测、非定向平滑帧内预测、递归滤波器帧内预测、根据亮度的色度(CFL)预测、块内复制和调色板模式。视频编码器200可以对指示用于视频解码器300的帧内预测模式的语法元素进行编码。
视频编码器200通常可以使用前述帧间预测模式或帧内预测模式之一(例如,不包括调色板模式)来形成用于译码块的预测块。通常,视频编码器200从根据帧内预测模式或帧间预测模式之一确定的预测样本中减去译码块的样本的值,以确定残差块。视频解码器300执行该操作的相反操作。视频解码器300以与视频编码器200相同的方式确定预测样本,但是将经解码的残差添加到预测样本以重构译码块。
为了使用定向帧内预测来对块进行编码,视频编码器200可以确定特定的定向帧内预测模式以确定预测样本。AV1提供五十六种定向帧内预测模式。当使用定向帧内预测来对译码块进行编码时,视频编码器200使用将译码块的每个样本投影到预测样本位置的定向预测器。预测样本位置可以是亚像素位置(例如,在样本之间)。在这样的情况下,视频编码器可以使用插值(例如,2抽头双线性滤波器)来确定预测样本的值。
在非定向平滑帧内预测中,视频编码器200可以根据DC预测模式、Paeth预测模式或通过使用三个平滑预测器之一来确定预测样本。在DC预测模式中,视频编码器200根据可用相邻参考样本的平均值来预测块的样本。在Paeth预测模式中,视频编码器200使用顶部参考样本、左侧参考样本或左上边缘参考样本中具有最接近(顶部+左侧-左上)的值的一者。视频编码器200可以使用水平方向上的二次插值、垂直方向上的二次插值或水平和垂直方向上的插值的平均值来确定三个平滑预测器。
视频编码器200可以确定在译码块的样本与译码块边缘处的预测样本之间存在降低的空间相关性的情况下使用递归滤波器帧内预测。为了执行递归帧内预测,视频编码器200可以确定五种滤波器帧内模式之一。五种帧内模式中的每一种都由7抽头滤波器集合来定义,该7抽头滤波器集合指定4x2子块中的样本与七个相邻样本之间的相关性。视频编码器200可以在块级别确定五种类型的帧内滤波器模式中的一种,并且预测4x2子块中的样本。
视频编码器200可以确定使用根据亮度的色度(CFL)来从对应的经重构的亮度样本预测色度样本。具体地,视频编码器200可以使用亮度块的子块(例如,2x2子块)中的经重构的亮度样本的总和减去该块的平均亮度样本值、以及色度块的DC预测样本,来确定用于预测色度样本的最终预测样本。亮度块的子块(例如,2x2子块)中的经重构的亮度样本的总和减去该块的平均亮度样本值表示来自亮度块的“AC”贡献。
在块内复制模式下,视频编码器200和视频解码器300可以使用先前经重构的译码块作为参考块来预测译码块,其中参考块与当前经译码的译码块在同一帧中。视频编码器200可以使用位移矢量(例如,来自当前经译码的译码块的x和y位移)指示先前经重构的译码块的位置。块内复制模式类似于平移帧间预测模式,但是块内复制模式使用来自同一帧的参考块,而不是使用另一帧中的参考块。块内复制模式对于可能包括文本、字符和/或重复的纹理(例如,诸如显示计算机屏幕内容的视频)的所谓的“屏幕内容”视频帧可能特别有用。
在上述帧内预测模式中的每一种中,视频编码器200可以通过从根据帧内预测模式之一生成的预测像素中减去当前经译码的块的样本值来生成残差块。调色板模式被认为是另一种类型的帧内预测模式,因为调色板模式不使用从参考样本值生成的预测样本。然而,视频编码器200和视频解码器300在调色板模式下不对残差值分别进行编码和解码。替代地,视频编码器200可以将指示索引的代码信息与用于译码块的每个样本/像素的调色板进行关联。调色板是色彩值表。对具有有限数量的唯一色彩(例如,屏幕内容)的视频数据帧,调色板模式可能是有用的。
当使用帧间预测模式来预测视频数据的当前帧的块时,视频编码器200和视频解码器300可以使用来自视频数据的一个或多个参考帧的视频数据。视频编码器200可以基于要译码的当前块的样本值与不同帧(例如,参考帧)内的预测样本之间的差(例如,残差)来对样本值进行编码。按照呈现顺序,参考帧可以在当前经译码的帧之前或之后。视频编码器200可以基于帧间预测模式来确定预测样本和参考帧。
与帧内预测模式(调色板模式除外)类似,视频编码器200可以在经编码的视频比特流中对残差值进行编码(例如,通过变换、量化和熵译码)。视频解码器300可以对残差值进行解码,以与视频编码器200相同的方式确定预测块,并且将预测块添加到残差中以重构译码块。视频编码器200可以从多个帧间预测模式中确定提供最佳率失真成本的特定帧间预测模式。视频编码器200可以在经编码的视频比特流中对模式信息、残差值(例如,当前样本与预测样本之间的差)和其它块特性进行编码。AV1的帧间预测模式包括平移运动补偿、仿射运动补偿(例如,扭曲的运动补偿)、重叠的块运动补偿(OBMC)和复合的帧间-帧内预测器模式。
对于平移运动补偿,视频编码器200可以使用一个或多个运动矢量来生成预测块(例如,包括预测样本的块)。视频编码器200通常可以执行运动搜索,以识别例如在译码块的样本与参考块的预测样本之间的差异方面与译码块紧密匹配的参考块。视频编码器200可以使用绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)、或其它这样的差计算来计算差度量,以确定参考块是否与当前CU紧密匹配。在一些示例中,视频编码器200可以使用单向预测或双向预测来预测当前译码块。
视频编码器200还可以使用预测方法来对运动矢量进行编码。例如,视频编码器200可以参考其它候选运动矢量(包括空间运动矢量(例如,使用帧间预测进行编码的相邻块的运动矢量)或时间运动矢量(例如,来自使用帧间预测进行译码的其它图片中的共置块的运动矢量))来对运动矢量进行编码。可以将候选运动矢量添加到动态运动矢量参考列表中。
AV1还提供仿射运动补偿模式。在仿射运动补偿模式中,视频编码器200可以确定扭曲参数以扭曲参考块,以使用相邻候选的运动矢量获得预测。扭曲参数表示非平移或仿射运动,诸如放大或缩小、旋转、透视运动或其它不规则运动类型。
视频编码器200可以使用OBMC模式来减少块边缘附近的预测误差。在OBMC模式下,视频编码器200和视频解码器300使用基于来自顶部相邻块和/或左侧相邻块的运动矢量生成的预测样本来确定预测样本。视频编码器200和视频解码器300可以通过使用平滑滤波器组合这样的预测样本来生成最终预测样本。
在复合的帧间-帧内预测器模式下,视频编码器200和视频解码器300可以使用帧间预测和帧内预测技术两者形成预测样本。可以使用加权系数来组合两个预测样本。
当执行预测过程(诸如块的帧内预测或帧间预测)时,视频编码器200可以计算用于该块的残差数据。残差数据(诸如残差块)表示在块与用于该块的预测样本之间的逐样本差,该预测样本是使用对应的预测模式来形成的。视频编码器200可以将一个或多个变换应用于残差块,以在变换域中而非在样本域中产生经变换的数据。例如,视频编码器200可以应用水平/垂直变换组合,其可以包括离散余弦变换(DCT)、非对称离散正弦变换(ADST)、翻转的ADST(例如,反向顺序的ADST)和恒等变换(IDTX)。当使用恒等变换时,在垂直或水平方向之一上跳过变换。在一些示例中,可以跳过变换处理。视频编码器200在应用一个或多个变换之后产生变换系数。
如上面提到的,在用以产生变换系数的任何变换之后,视频编码器200可以执行对变换系数的量化。量化通常指代如下的过程:在该过程中,对变换系数进行量化以可能地减少用于表示变换系数的数据的量,从而提供进一步的压缩。通过执行量化过程,视频编码器200可以减小与一些或所有变换系数相关联的比特深度。例如,视频编码器200可以在量化期间将n比特的值向下舍入为m比特的值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可以执行对要被量化的值的按位右移。
在量化之后,视频编码器200可以对语法元素(包括指示经量化的变换系数的值的语法元素)进行熵编码。作为另一示例,视频编码器200可以对预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。根据AV1,视频编码器200可以被配置为使用符号到符号自适应多符号算术译码器来执行熵编码。AV1中的语法元素包括N个元素的字母表,并且上下文(例如,概率模型)包括N个概率的集合。视频编码器200可以将概率存储为15比特累积分布函数(CDF)。视频编码器200可以利用基于字母表大小的更新因子来执行递归缩放以更新上下文。
以这种方式,视频编码器200可以生成比特流,其包括经编码的视频数据,例如,描述将图片分割为块(例如,超级块和译码块)以及用于该块的预测模式和/或残差信息的语法元素。最终,视频解码器300可以接收比特流并且对经编码的视频数据进行解码。
通常,视频解码器300执行与由视频编码器200执行的过程相反的过程,以对比特流的经编码的视频数据进行解码。例如,视频解码器300可以使用熵解码,以与视频编码器200的熵编码过程基本上类似的、但是相反的方式来对用于比特流的语法元素的值进行解码。语法元素可以定义用于将图片分割为超级块和译码块的分割信息。语法元素还可以定义用于视频数据的块(例如,译码块)的预测和残差信息。
残差信息可以由例如经量化的变换系数来表示。视频解码器300可以对块的经量化的变换系数进行逆量化和逆变换以重现用于该块的残差块。视频解码器300使用经信号通知的预测模式(帧内预测模式或帧间预测模式)和相关的预测信息(例如,用于帧间预测的运动信息)来形成用于该块的预测样本。视频解码器300然后可以对预测样本和残差块的对应样本值(在逐个样本的基础上)进行组合以重现原始块。视频解码器300可以执行额外处理,诸如执行环路滤波过程以减少沿着块的边界的视觉伪影。
概括而言,本公开内容可能涉及“用信号通知”某些信息(诸如语法元素)。术语“用信号通知”通常可以指代对用于语法元素的值和/或用于对经编码的视频数据进行解码的其它数据的传送。也就是说,视频编码器200可以在比特流中用信号通知用于语法元素的值。通常,用信号通知指代在比特流中生成值。如上面提到的,源设备102可以基本上实时地或不是实时地(诸如可能在将语法元素存储到存储设备112以供目的地设备116稍后取回时发生)将比特流传输到目的地设备116。
根据本公开内容的技术,如将在下文更详细地讨论的,视频编码器200和视频解码器300可以被配置为:执行用于视频数据的亮度块的预测过程以形成经重构的亮度样本值;在用于亮度块的预测过程期间,将亮度块的每个子块的经重构的亮度样本值的总和存储在一个或多个存储器单元的第一缓冲器中;在用于亮度块的预测过程期间,将经重构的亮度样本值的平均值存储在一个或多个存储器单元的第二缓冲器中;以及执行根据亮度的色度预测,以使用亮度块的每个子块的经重构的亮度样本值的总和以及经重构的亮度样本值的平均值来重构与亮度块相对应的视频数据的色度块。
图2是示出可以执行本公开内容的技术的示例视频编码器200的框图。图2是出于解释的目的而提供的,并且不应当被认为对如在本公开内容中泛泛地举例说明和描述的技术进行限制。出于解释的目的,本公开内容描述了根据AV1译码格式的技术的视频编码器200。然而,本公开内容的技术可以由被配置为根据其它视频译码格式和/或各种视频译码标准来对视频数据进行编码的视频编码设备来执行。
在图2的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、环路滤波器单元216、解码图片缓冲器(DPB)218和熵编码单元220。视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、环路滤波器单元216、DPB 218和熵编码单元220中的任何一者或全部可以在一个或多个处理器中或者在处理电路中实现。例如,视频编码器200的单元可以被实现为一个或多个电路或逻辑元件,作为硬件电路的一部分,或者作为处理器、ASIC或FPGA的一部分。此外,视频编码器200可以包括额外或替代的处理器或处理电路以执行这些和其它功能。
视频数据存储器230可以存储要由视频编码器200的组件来编码的视频数据。视频编码器200可以从例如视频源104(图1)接收被存储在视频数据存储器230中的视频数据。DPB 218可以充当参考图片存储器,其存储参考视频数据以在由视频编码器200对后续视频数据进行预测时使用。视频数据存储器230和DPB 218可以由各种存储器设备中的任何一种形成,诸如动态随机存取存储器(DRAM)(包括同步DRAM(SDRAM))、磁阻RAM(MRAM)、电阻性RAM(RRAM)、或其它类型的存储器设备。视频数据存储器230和DPB 218可以由同一存储器设备或单独的存储器设备来提供。在各个示例中,视频数据存储器230可以与视频编码器200的其它组件在芯片上(如所示出的),或者相对于那些组件在芯片外。
在本公开内容中,对视频数据存储器230的提及不应当被解释为限于在视频编码器200内部的存储器(除非如此具体地描述),或者不限于在视频编码器200外部的存储器(除非如此具体地描述)。确切而言,对视频数据存储器230的提及应当被理解为存储视频编码器200接收以用于编码的视频数据(例如,用于要被编码的当前块的视频数据)的参考存储器。图1的存储器106还可以提供对来自视频编码器200的各个单元的输出的临时存储。例如,如下面将解释的,视频数据存储器230可以包括用于存储用于CFL预测的经重构的亮度样本值的总和以及平均值的第一缓冲器和第二缓冲器。
示出了图2的各个单元以帮助理解由视频编码器200执行的操作。这些单元可以被实现为固定功能电路、可编程电路、或其组合。固定功能电路指代提供特定功能并且关于可以被执行的操作而预先设置的电路。可编程电路指代可以被编程以执行各种任务并且以可以被执行的操作来提供灵活功能的电路。例如,可编程电路可以执行软件或固件,软件或固件使得可编程电路以由软件或固件的指令所定义的方式进行操作。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不可变的。在一些示例中,这些单元中的一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,这些单元中的一个或多个单元可以是集成电路。
视频编码器200可以包括由可编程电路形成的算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或可编程核。在其中使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收并且执行的软件的指令(例如,目标代码),或者视频编码器200内的另一存储器(未示出)可以存储这样的指令。
视频数据存储器230被配置为存储所接收的视频数据。视频编码器200可以从视频数据存储器230取回视频数据的图片/帧,并且将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是要被编码的原始视频数据。
模式选择单元202包括帧间预测单元222和帧内预测单元226。如上所述,帧间预测单元222可以被配置为使用平移运动补偿、仿射运动补偿、OBMC和/或复合的帧间-帧内预测来对视频数据的译码块(例如,亮度译码块和色度译码块两者)进行编码。如上所述,帧内预测单元226可以被配置为使用定向帧内预测、非定向帧内预测、递归滤波器帧内预测、CFL、块内复制(IBC)和/或调色板模式来对视频数据的译码块(例如,亮度译码块和色度译码块两者)进行编码。模式选择单元202可以包括用于根据其它预测模式来执行视频预测的额外的功能单元。
模式选择单元202通常协调多个编码通路(pass),以测试编码参数的组合以及针对这样的组合所得到的率失真值。编码参数可以包括将超级块分割为译码块、用于译码块的预测模式、用于译码块的残差数据的变换类型、用于译码块的残差数据的量化参数等。模式选择单元202可以最终选择编码参数的具有比其它测试的组合更佳的率失真值的组合。
视频编码器200可以将从视频数据存储器230取回的图片分割为一系列的译码块,并且将一个或多个超级块封装在瓦片内。模式选择单元202可以根据树结构来分割图片的超级块。
通常,模式选择单元202还控制其组件(例如,帧间预测单元222和帧内预测单元226)以生成用于当前译码块的预测样本。例如,对于当前块的平移帧间预测,帧间预测单元222可以执行运动搜索以识别在一个或多个参考图片(例如,被存储在DPB 218中的一个或多个先前经译码的图片)中的一个或多个紧密匹配的参考块。
具体地,帧间预测单元222可以例如根据绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)等,来计算表示潜在参考块将与当前块的类似程度的值。帧间预测单元222通常可以使用在当前块与所考虑的参考块之间的逐样本差来执行这些计算。帧间预测单元222可以识别从这些计算所得到的具有最低值的参考块,其指示与当前块最紧密匹配的参考块。
对于平移帧间预测,帧间预测单元222可以形成一个或多个运动矢量(MV),所述一个或多个运动矢量定义了相对于当前块在当前图片中的位置而言参考块在参考图片中的位置。例如,对于单向帧间预测,帧间预测单元222可以确定单个运动矢量,而对于双向帧间预测,帧间预测单元222可以确定两个运动矢量。
然后,帧间预测单元222可以使用运动矢量来生成预测样本的预测块。例如,帧间预测单元222可以使用运动矢量来取回参考块的数据。作为另一示例,如果运动矢量具有分数样本精度,则帧间预测单元222可以根据一个或多个插值滤波器来对用于预测块的值进行插值。此外,对于双向帧间预测,帧间预测单元222可以取回用于由相应的运动矢量标识的两个参考块的数据并且例如通过逐样本平均或加权平均来将所取回的数据进行组合。
作为另一示例,对于帧内预测,帧内预测单元226可以从与当前块相同的图片中的样本生成预测样本。在一些示例中,帧内预测单元226可以从与当前块相邻的参考样本生成预测样本。例如,对于定向帧内预测模式,帧内预测单元226通常可以在数学上将相邻样本的值进行组合,并且跨越当前块在所定义的方向上使用这些计算出的值作为预测块。作为另一示例,对于非定向DC模式,帧内预测单元226可以计算当前块的相邻样本的平均值以生成预测样本。
根据本公开内容的技术,帧内预测单元226可以被配置为使用CFL预测模式来对视频数据的色度译码块进行编码。通常,当根据CFL预测模式进行编码时,帧内预测单元226可以被配置为针对色度样本使用DC帧内预测以及针对对应的亮度译码块使用经重构的亮度样本的总和以及平均值来确定预测样本。
如下文将更详细地解释的,当对色度译码块进行编码时,视频编码器200被配置为重构视频数据的亮度块以形成经重构的亮度样本值。视频编码器200可以被配置为在用于亮度块的重构过程期间,将亮度块的每个子块的经重构的亮度样本值的总和存储在视频数据存储器230的第一缓冲器中。视频编码器200还可以被配置为在用于亮度块的重构过程期间,将经重构的亮度样本值的平均值存储在视频数据存储器230的第二缓冲器中。
然后,视频编码器200可以执行根据亮度的色度预测,以使用亮度块的每个子块的经重构的亮度样本值的总和以及经重构的亮度样本值的平均值来确定预测值,从而对与亮度块相对应的视频数据的色度块进行编码。在一个示例中,视频编码器200可以在不从视频数据存储器230读取经重构的亮度样本值的情况下,使用块的每个子块的经重构的亮度样本值的总和以及经重构的亮度样本值的平均值,来执行用于与亮度块相对应的色度块的色度样本的根据亮度的色度预测。
通过在用于亮度块的预测过程期间将每个子块的经重构的亮度样本值的总和以及经重构的亮度样本值的平均值存储在缓冲器中,视频编码器200不需要读出任何亮度样本值来执行用于色度块的根据亮度的色度预测。因此,与其它技术相比,实现根据亮度的色度预测所需的存储器的数量被减少。另外,执行根据亮度的色度预测所需的处理周期的数量被减少。
对于其它视频译码技术(诸如块内复制模式、仿射运动补偿、递归滤波器帧内预测和其它预测模式,作为一些示例),帧间预测单元222或帧内预测单元226根据正被使用的特定译码模式的技术来生成预测样本。在一些示例(诸如调色板模式译码)中,帧内预测单元226可以不生成预测样本,而是生成指示基于所选调色板来重构块的方式的语法元素。在这样的模式下,模式选择单元202可以将这些语法元素提供给熵编码单元220以被编码。
模式选择单元202将预测样本提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始的未经编码的版本,并且从模式选择单元202接收预测样本。残差生成单元204计算在当前块与预测样本之间的逐样本差。所得到的逐样本差定义了用于当前块的残差块。在一些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。
变换处理单元206将一种或多种变换应用于残差块,以生成变换系数的块(本文中被称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块,以形成变换系数块。例如,变换处理单元206可以应用水平/垂直变换组合,其可以包括离散余弦变换(DCT)、非对称离散正弦变换(ADST)、翻转的ADST(例如,反向顺序的ADST)和恒等变换(IDTX)。当使用恒等变换时,在垂直方面或水平方向之一上跳过变换。在一些示例中,可以跳过变换处理。
量化单元208可以对变换系数块中的变换系数进行量化,以产生经量化的变换系数块。量化单元208可以根据与当前译码块相关联的量化参数(QP)值来对变换系数块的变换系数进行量化。视频编码器200(例如,经由模式选择单元202)可以通过调整与译码块相关联的QP值来调整被应用于与当前块相关联的变换系数块的量化程度。量化可能引起信息损失,并且因此,经量化的变换系数可能具有与由变换处理单元206所产生的原始变换系数相比较低的精度。
逆量化单元210和逆变换处理单元212可以将逆量化和逆变换分别应用于经量化的变换系数块,以从变换系数块重构残差块。重构单元214可以基于经重构的残差块和由模式选择单元202生成的预测样本来产生与当前译码块相对应的重构块(尽管潜在地具有某种程度的失真)。例如,重构单元214可以将经重构的残差块的样本与由模式选择单元202所生成的对应的预测样本相加,以产生经重构的块。
环路滤波器单元216可以对经重构的块执行一个或多个滤波器操作。例如,环路滤波器单元216可以执行去块操作以减少沿着CU的边缘的块效应伪影。在其它示例中,环路滤波器单元216可以应用约束定向增强滤波器(CDEF)(其可以在去块之后应用),并且可以包括基于估计的边缘方向的不可分离非线性低通定向滤波器的应用。环路滤波器单元216还可以包括在CDEF之后应用的环路恢复滤波器,并且可以包括可分离对称归一化维纳滤波器或双自导滤波器。在一些示例中,可以跳过环路滤波器单元216的操作。
视频编码器200将经重构的块存储在DPB 218中。例如,在其中不执行环路滤波器单元216的操作的示例中,重构单元214可以将经重构的块存储到DPB 218中。在其中执行环路滤波器单元216的操作的示例中,环路滤波器单元216可以将经滤波的重构块存储到DPB218中。帧间预测单元222可以从DPB 218取回由经重构的(并且潜在地经滤波的)块形成的参考图片,以对后续经编码的图片的块进行帧间预测。另外,帧内预测单元226可以使用在DPB 218中的当前图片的经重构的块来对当前图片中的其它块进行帧内预测。
通常,熵编码单元220可以对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的经量化的变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。
根据AV1,熵编码单元220可以被配置为符号到符号自适应多符号算术译码器。AV1中的语法元素包括N个元素的字母表,并且上下文(例如,概率模型)包括N个概率的集合。熵编码单元220可以将概率存储为15比特累积分布函数(CDF)。熵编码单元220可以利用基于字母表大小的更新因子来执行递归缩放以更新上下文。
视频编码器200可以输出经编码的视频比特流,其包括用于重构切片或图片的块所需要的经熵编码的语法元素。例如,熵编码单元220可以输出比特流。
图3是示出可以执行本公开内容的技术的示例视频解码器300的框图。图3是出于解释的目的而提供的,并且不对如在本公开内容中泛泛地举例说明和描述的技术进行限制。出于解释的目的,本公开内容描述了根据AV1译码格式的技术的视频解码器300。然而,本公开内容的技术可以由被配置为根据其它视频译码格式和/或各种其它视频译码标准来对视频数据进行解码的视频解码设备来执行。
在图3的示例中,视频解码器300包括译码图片缓冲器(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、环路滤波器单元312和解码图片缓冲器(DPB)134。CPB存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、环路滤波器单元312和DPB 134中的任何一者或全部可以在一个或多个处理器中或者在处理电路中实现。例如,视频解码器300的单元可以被实现为一个或多个电路或逻辑元件,作为硬件电路的一部分,或者作为处理器、ASIC或FPGA的一部分。此外,视频解码器300可以包括额外的或替代的处理器或处理电路以执行这些和其它功能。
预测处理单元304包括帧间预测单元316和帧内预测单元318。如上所述,帧间预测单元316可以被配置为使用平移运动补偿、仿射运动补偿、OBMC和/或复合的帧间-帧内预测来对视频数据的译码块(例如,亮度译码块和色度译码块两者)进行解码。如上所述,帧内预测单元318可以被配置为使用定向帧内预测、非定向帧内预测、递归滤波器帧内预测、CFL、块内复制(IBC)和/或调色板模式来对视频数据的译码块(例如,亮度译码块和色度译码块两者)进行解码。预测处理单元304可以包括用于根据其它预测模式来执行视频预测的额外的功能单元。
CPB存储器320可以存储要由视频解码器300的组件解码的视频数据,诸如经编码的视频比特流。例如,可以从计算机可读介质110(图1)获得被存储在CPB存储器320中的视频数据。CPB存储器320可以包括存储来自经编码的视频比特流的经编码的视频数据(例如,语法元素)的CPB。此外,CPB存储器320可以存储除了经译码的图片的语法元素之外的视频数据,诸如表示来自视频解码器300的各个单元的输出的临时数据。例如,如下面将解释的,CPB存储器320可以包括用于存储用于CFL预测的经重构的亮度样本值的总和以及平均值的第一缓冲器和第二缓冲器。
DPB 314通常存储经解码的图片,视频解码器300可以输出经解码的图片,和/或在解码经编码的视频比特流的后续数据或图片时使用经解码的图片作为参考视频数据。CPB存储器320和DPB 314可以由各种存储器设备中的任何一种形成,诸如DRAM,包括SDRAM、MRAM、RRAM或其它类型的存储器设备。CPB存储器320和DPB 314可以由同一存储器设备或单独的存储器设备来提供。在各个示例中,CPB存储器320可以与视频解码器300的其它组件在芯片上,或者相对于那些组件在芯片外。
另外或替代地,在一些示例中,视频解码器300可以从存储器120(图1)取回经译码的视频数据。也就是说,存储器120可以如上文所讨论地利用CPB存储器320来存储数据。同样,当视频解码器300的一些或全部功能是用要被视频解码器300的处理电路执行的软件来实现时,存储器120可以存储要被视频解码器300执行的指令。
示出了图3中示出的各个单元以帮助理解由视频解码器300执行的操作。这些单元可以被实现为固定功能电路、可编程电路、或其组合。类似于图2,固定功能电路指代提供特定功能并且关于可以被执行的操作而预先设置的电路。可编程电路指代可以被编程以执行各种任务并且以可以被执行的操作来提供灵活功能的电路。例如,可编程电路可以执行软件或固件,软件或固件使得可编程电路以由软件或固件的指令所定义的方式进行操作。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不可变的。在一些示例中,这些单元中的一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,这些单元中的一个或多个单元可以是集成电路。
视频解码器300可以包括由可编程电路形成的ALU、EFU、数字电路、模拟电路和/或可编程核。在其中由在可编程电路上执行的软件执行视频解码器300的操作的示例中,片上或片外存储器可以存储视频解码器300接收并且执行的软件的指令(例如,目标代码)。
熵解码单元302可以从CPB存储器320接收经编码的视频数据,并且对视频数据进行熵解码以重现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和环路滤波器单元312可以基于从比特流中提取的语法元素来生成经解码的视频数据。
通常,视频解码器300以逐块为基础重构图片。视频解码器300可以单独地对每个块执行重构操作(其中,当前正在被重构(即,被解码)的块可以被称为“当前块”)。
熵解码单元302可以对定义经量化的变换系数块的经量化的变换系数的语法元素以及诸如量化参数(QP)和/或变换模式指示之类的变换信息进行熵解码。逆量化单元306可以使用与经量化的变换系数块相关联的QP来确定量化程度,并且同样地,确定供逆量化单元306应用的逆量化程度。逆量化单元306可以例如执行按位左移操作以对经量化的变换系数进行逆量化。逆量化单元306从而可以形成包括变换系数的变换系数块。
在逆量化单元306形成变换系数块之后,逆变换处理单元308可以将一种或多种逆变换应用于变换系数块,以生成与当前译码块相关联的残差块。例如,逆变换处理单元308可以应用逆DCT、逆ADST、逆翻转的ADST或逆恒等变换的水平/垂直组合。
此外,预测处理单元304根据由熵解码单元302进行熵解码的预测信息语法元素来生成预测样本。例如,如果预测信息语法元素指示当前块是经帧间预测的,则帧间预测单元316可以生成预测样本。在这种情况下,预测信息语法元素可以指示在DPB 314中的要从其取回参考块的参考图片、以及标识相对于当前块在当前图片中的位置而言参考块在参考图片中的位置的运动矢量。帧间预测单元316通常可以以与关于帧间预测单元222(图2)所描述的方式基本类似的方式来执行帧间预测过程。
作为另一示例,如果预测信息语法元素指示当前块是经帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测样本。再次,帧内预测单元318通常可以以与关于帧内预测单元226(图2)所描述的方式基本上类似的方式来执行帧内预测过程。帧内预测单元318可以从DPB 314取回当前块的相邻样本的数据。
根据本公开内容的技术,帧内预测单元318可以被配置为使用CFL预测模式来对视频数据的色度译码块进行解码。通常,当根据CFL预测模式进行解码时,帧内预测单元318可以被配置为针对色度样本使用DC帧内预测以及针对对应的亮度译码块使用经重构的亮度样本的总和以及平均值来确定预测样本。
如下文将更详细解释的,当对色度译码块进行解码时,视频解码器300被配置为重构视频数据的亮度块以形成经重构的亮度样本值。视频解码器300可以被配置为在用于亮度块的预测过程期间,将亮度块的每个子块的经重构的亮度样本值的总和存储在第一缓冲器中。视频解码器300还可以被配置为在用于亮度块的预测过程期间,将经重构的亮度样本值的平均值存储在第二缓冲器中。
然后,视频解码器300可以执行根据亮度的色度预测,以使用亮度块的每个子块的经重构的亮度样本值的总和以及经重构的亮度样本值的平均值来确定预测值,从而对与亮度块相对应的视频数据的色度块进行编码。在一个示例中,视频解码器300可以在不从DPB314读取经重构的亮度样本值的情况下,使用块的每个子块的经重构的亮度样本值的总和以及经重构的亮度样本值的平均值来执行用于与亮度块相对应的色度块的色度样本的根据亮度的色度预测。
通过在用于亮度块的预测过程期间将每个子块(例如,2x2子块)的经重构的亮度样本值的总和以及经重构的亮度样本值的平均值存储在缓冲器中,视频解码器300不需要读出任何亮度样本值来执行用于色度块的根据亮度的色度预测。因此,与其它技术相比,实现根据亮度的色度预测所需的存储器的数量被减少。另外,执行根据亮度的色度预测所需的处理周期的数量被减少。
重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样本与对应的预测样本相加来重构当前块。
环路滤波器单元312可以对经重构的块执行一个或多个滤波器操作。例如,环路滤波器单元312可以执行去块操作以减少沿着经重构的块的边缘的块效应伪影。在其它示例中,环路滤波器单元312可以应用约束定向增强滤波器(CDEF)(其可以在去块之后被应用),并且可以包括基于估计的边缘方向的不可分离非线性低通定向滤波器的应用。环路滤波器单元312还可以包括在CDEF之后应用的环路恢复滤波器,并且可以包括可分离对称归一化维纳滤波器或双自导滤波器。不一定在所有示例中都执行环路滤波器单元312的操作。
视频解码器300可以将经重构的块存储在DPB 314中。例如,在其中不执行环路滤波器单元312的操作的示例中,重构单元310可以将经重构的块存储到DPB 314中。在其中执行环路滤波器单元312的操作的示例中,环路滤波器单元312可以将经滤波的重构块存储到DPB 314中。如上所讨论的,DPB 314可以将参考信息(诸如用于帧内预测的当前图片以及用于后续运动补偿的先前经解码的图片的样本)提供给预测处理单元304。此外,视频解码器300可以从DPB 314输出经解码的图片(例如,经解码的视频),以用于在诸如图1的显示设备118之类的显示设备上的后续呈现。
以这种方式,视频解码器300表示视频解码设备的示例,该视频解码设备包括:存储器,其被配置为存储视频数据;以及一个或多个处理单元,其在电路中实现并且被配置为:执行用于视频数据的亮度块的预测过程以形成经重构的亮度样本值;在用于亮度块的预测过程期间,将亮度块的每个子块的经重构的亮度样本值的总和存储在一个或多个存储器单元的第一缓冲器中;在用于亮度块的预测过程期间,将经重构的亮度样本值的平均值存储在第二缓冲器中;以及执行根据亮度的色度预测,以使用亮度块的每个子块的经重构的亮度样本值的总和以及经重构的亮度样本值的平均值来重构与亮度块相对应的视频数据的色度块。
如上所述,当根据AV1编解码器操作时,视频编码器200和视频解码器300可以被配置为使用根据亮度的色度(CFL)预测模式来对视频数据的一个或多个色度译码块进行译码。当根据CFL预测模式操作时,视频编码器200和视频解码器300可以被配置为使用视频数据的对应的亮度译码块的经重构/解码的亮度样本的值来预测视频数据的色度译码块的色度样本的值。
下面描述示例CFL预测过程。对于AV1中用于空间预测的解码过程,视频解码器300可以提取用于译码块的以下信息:
-定义用于解码的规则的当前预测模式。
-为块存储的经量化和逆变换的残差(原始帧中同一块的样本差)。
-译码块尺寸(例如,按照样本中的宽度和高度)
-邻居可用性(例如,相邻译码块中的样本值的可用性)
-如果邻居可用,则为相对于当前经解码的译码块的顶部、右上、左侧、左上和左下位置处的邻居样本的值。
基于邻居样本值和预测模式,视频解码器300生成被称为预测样本的值。视频解码器300可以将所生成的预测样本添加到经解码的残差值中,以形成该译码块的最终样本。这些最终样本被称为经重构的样本。
如上所述,视频编码器200和视频解码器300将每个帧(例如,图片)划分为块(例如,超级块和译码块)。视频编码器200和视频解码器300可以被配置为以3色分量样本格式对块的像素值进行编码和解码:Y(亮度分量)、U和V(色度分量模式)。视频编码器200和视频解码器300可以使用CFL预测模式来预测色度样本译码块。CFL预测模式与其它空间预测模式之间的一个区别是CFL模式不是仅使用邻居色度样本进行预测。当根据CFL预测模式对色度样本的译码块进行译码时,视频编码器200和视频解码器300还使用来自对应的亮度译码块的经重构的样本。另外,当根据CFL预测模式操作时,视频编码器200和视频解码器300执行(从经色度重构的邻居的DC预测获得的)色度DC预测样本的缩放混合,并且然后生成色度预测样本。在CFL中,用于对U和V分量进行译码的过程通过其被称为alpha的单个缩放因子来区分。这样的缩放因子的alpha值可以被称为CflAlphaU和CflAlphaV。视频解码器300可以从输入比特流中用信号通知的一个或多个语法元素来确定这些alpha值。
根据AV1规范的第11.7.5节,视频解码器300可以按如下执行CFL预测。视频解码器300可以首先重构亮度译码块,以创建经重构的亮度样本。视频解码器300可以使用任何预测模式来重构亮度译码块。视频解码器300可以将经重构的亮度译码块划分为子块。例如,子块的大小可以是2x2个样本。视频解码器300还可以将经重构的亮度的样本的平均值(LumaAvg)初始化为零。对于每个2x2子块,视频解码器300计算所有四个经重构的亮度样本值的总和,并且根据任何色度二次采样(例如,对于4:2:0色度二次采样)来移位该总和。视频解码器300可以根据以下等式来确定移位量:移位=(3-subsampling_in_x_direction_enabled-subsampling_in_y_direction_enabled)。视频解码器300可以将经重构的亮度块的每个2x2子块的每个总和存储到存储器中的阵列中。
如果在x方向上对色度样本进行二次采样,则subsampling_in_x_direction_enabled的值可以为1。否则,subsampling_in_x_direction_enabled的值为0。如果在Y方向上对色度样本进行二次采样,则subsampling_in_u_direction_enabled的值可以为1。否则,subsampling_in_y_direction_enabled的值为0。如果在X和Y方向两者上对色度样本进行二次采样(例如,如以YUV420格式),则移位值将为1。
视频解码器300可以累加经重构的亮度块的2x2子块的所有总和,并且将块的平均值(例如,LumaAvg)计算为:LumaAvg=Round2(sum_of_luma_sums,log2(BlockWidth)+log2(BlockHeight)),其中,sum_of_luma_sums是对2x2子块的所有总和的求和,BlockWidth是亮度样本中的经重构的亮度块的宽度,并且BlockHeight是亮度样本中的经重构的亮度块的高度。
为了执行根据亮度的色度预测,视频解码器300将色度译码块中的每个样本映射到对应的亮度总和(例如,2x2子块中的经重构的亮度样本的总和)。视频编码器200还可以使用DC帧内预测模式来确定用于色度译码块的DC预测样本。在一些示例中,视频解码器300可以与确定亮度总和以及亮度平均值并行地确定DC预测样本。视频解码器300可以使用以下等式来确定每个色度样本的最终预测样本值:
ScaledLuma=Round2Signed(alpha*(对应的亮度总和-LumaAvg),6)
中间预测样本值=DC+ScaledLuma
最终预测样本值=clip(0,中间预测样本值,最大样本值)
Round2(x,n)函数被定义为Round2=(x+(2^(n-1)))>>n(其中>>是右移操作)。按如下定义Round2Signed(x,n)函数:
if(x>=0)
Round2Signed(x,n)=Round2(x,n)
Else
Round2Signed(x,n)=-Round2(-x,n)
首先,视频解码器300可以确定每个色度样本位置的经缩放的亮度样本值(ScaledLuma)。视频解码器300通过确定与色度样本相对应的亮度总和(对应的Luma sum)与经重构的亮度块的亮度平均值(LumaAvg)之间的差来计算经缩放的亮度样本值。视频解码器300将该差乘以与正在被解码的特定色度分量(例如,U色度或V色度)相关联的alpha缩放值(例如,CflAlphaU或CflAlphaV)。然后,视频解码器300舍入经缩放的差以确定经缩放的亮度样本值(ScaledLuma)。
然后,视频解码器300可以将计算出的经缩放的亮度样本值与当前经解码的色度样本的对应的DC预测样本(DC)相加,以产生中间预测样本值。然后,视频解码器300可以通过将中间预测样本值限幅在0与最大样本值(Max sample value)之间来确定最终预测样本值。然后,视频解码器300可以通过将最终预测样本值与对应的经解码的残差值相加来重构色度样本值。注意的是,如果正在被译码的色度译码块部分地位于帧外,则其对应的亮度块也将部分地位于帧外。在这种情况下,为了预测帧外部分,视频解码器300可以在帧边缘处复制该块的最后一行/列。
更一般地,在一个示例中,视频解码器300可以被配置为通过从对应的亮度总和(例如,来自对应的2x2亮度子块的2x2亮度总和)和经重构的亮度值的平均值来重构每个色度样本值来执行根据亮度的色度预测。例如,视频解码器300可以使用与相应色度样本的相应子块(例如,2x2子块)的经重构的亮度样本值的相应总和与经重构的亮度样本值的平均值之间的差来计算每个相应色度样本。在另一示例中,视频解码器300可以使用缩放因子来对与相应色度样本相对应的相应子块(例如,2x2子块)的经重构的亮度样本值的相应总和与经重构的亮度样本值的平均值之间的差进行缩放,从而计算每个相应的色度样本。在又一示例中,视频解码器300可以执行DC帧内预测过程以确定色度块的每个相应色度样本的相应DC预测值,并且通过将相应DC预测值与以下项相加来计算每个相应色度样本:与相应色度样本相对应的相应子块(例如,2x2子块)的经重构的亮度样本值的相应总和与经重构的亮度样本值的平均值之间的差或经缩放的差。
前面的描述是参考视频解码器300描述的。视频编码器200将在重构循环中执行相同的过程。视频编码器200可以通过以上述相同方式确定最终预测样本值,并且然后从对应的色度样本值中减去最终预测样本值以创建残差色度样本值,来计算色度译码块的残差值。
在上述CFL过程的一个示例先前硬件实现中,视频译码器(例如,视频编码器200和/或视频解码器300)将首先对亮度译码块执行预测过程,以形成经重构的亮度样本。视频编码器200和视频解码器300将经重构的亮度样本值存储在存储器(例如,缓冲器)中。当执行用于色度译码块的CFL过程时,视频编码器200和视频解码器300可以被配置为从缓冲器(例如,在“读取1”阶段中从存储器)读出经重构的亮度样本值,以计算每个2x2子块的亮度总和并且累积经重构的亮度块的平均亮度值。然后,视频编码器200和视频解码器300将计算出的总和以及平均值存储在另一存储器中。然后,如上所述,视频编码器200和视频解码器300将以2x2子块顺序(例如,在“读取2”阶段中从存储器)读出亮度总和以确定最终预测样本值。视频编码器200和视频解码器300还将从存储器读出亮度平均值。
给定该两阶段读取过程,对于具有N比特比特深度样本格式的MxM块,缓冲器的存储器区(例如,RAM)要求将为MxMxN比特。例如,对于具有10比特亮度样本值的64x64亮度译码块,RAM大小将为64x64x10=40,960比特。如果视频编码器200和/或视频解码器300被配置为每个周期处理K个分量,则在重构亮度译码块之后,每个读取阶段的处理周期的数量为:
“读取1”阶段的周期=(MxM)/K
“读取2”阶段的周期=(MxM)/K
总周期=2x(MxM)/K
通常,用于CFL预测的上述示例先前硬件实现使用相对大量的存储器和相对大量的周期来完成。
为了减少CFL预测所需的存储器和执行的总周期数量,本公开内容提出了以下硬件实现。如上所述,视频编码器200和视频解码器300可以被配置为在重构亮度样本的过程期间计算每个亮度子块的总和(LumaSum)并且将其存储到第一缓冲器(例如,RAM)中,并且累积亮度块的平均值并且将其存储在第二缓冲器(例如,相同或不同的RAM)中,而不是在用于亮度块的预测过程之后将每个经重构的亮度样本值存储在存储器中,并且然后在用于色度块的CFL预测期间计算亮度块的亮度总和(例如,2x2亮度总和)以及平均值。当针对色度块启用CFL预测时,用于对应的亮度块的预测过程被改变为2x2亮度总和以及亮度平均值,而不是输出经重构的亮度样本。因此,由于亮度总和以及平均值是在亮度预测期间计算的,因此消除了上述的“读取1”阶段,因为不需要读回经重构的亮度样本值来分别计算总和以及平均值。
图4是示出根据本公开内容的技术的示例解码方法的流程图。图4中的虚线框通常示出用于亮度译码块的预测过程(预测过程400)与用于对应的色度块的CFL预测过程450之间的分离。在该上下文中,对应的色度块是与亮度块共置的色度块(例如,U或V)。视频编码器200和视频解码器300可以被配置为在要使用CFL对与亮度块共置的一个或多个色度块进行编码和/或解码的情况下执行预测过程400。也就是说,在不使用CFL预测的情况下,视频编码器200和视频解码器300可能不必执行用于亮度块的预测过程400。以下将参考视频解码器300描述本公开内容的CFL技术。应当理解的是,视频编码器200可以在重构循环中执行相同的过程,并且可以在对用于色度块的残差块进行编码时执行相反的过程。
视频解码器300可以首先通过将亮度译码块中的亮度样本的平均值(LumaAvg)初始化为零来执行用于亮度译码块的预测过程400(402)。然后,视频解码器300可以按照子块顺序为亮度译码块生成经重构的亮度样本(404)。在一些示例中,亮度子块的大小可以是2x2亮度样本(例如,2x2亮度子块)。然而,本公开内容的技术可以适用于与NxM亮度样本的通用子块大小一起使用。
例如,不同的亮度子块可以用于不同的色度二次采样格式。在AVI译码格式中,2x2亮度子块用于4:2:0色度二次采样,其中在水平(X)和垂直(Y)方向中的每个方向上相对于亮度样本对色度样本进行二次采样。视频解码器300可以被配置为基于所使用的色度二次采样格式来针对不同的视频译码格式或视频译码标准使用不同的子块大小。例如,如果仅在一个方向(例如,X或Y方向)上对色度样本进行二次采样,则亮度子块大小可以是2x1或1x2。如果不进行色度二次采样,则每个色度样本对应于单个亮度样本。在这种情况下,亮度“子块”将为1x1(即,单个样本)。如果色度样本被二次采样超过4:2:0,则可以基于二次采样率来使用更大的亮度子块(例如,3x3、4x4等)。
视频解码器300可以从在经编码的视频比特流中接收的数据解码与亮度译码块相对应的残差块。视频解码器300还可以基于用于对亮度译码块进行编码的预测模式来确定用于亮度译码块的预测样本。然后,视频解码器300可以将残差值与对应的预测值相加,以形成经重构的亮度样本值。
如图4中所示,对于经重构的亮度译码块的每个后续(例如,下一个)子块,视频解码器300可以将子块中的经重构的亮度样本值加在一起(406),以生成亮度样本值的总和(LumaSum,406)。视频解码器300可以将亮度总和存储到第一缓冲器(410)。第一缓冲器可以是RAM或任何类型的存储器单元。此外,视频解码器300可以基于所生成的亮度总和以及块的任何先前累积的平均值来更新经重构的亮度译码块的亮度平均值(412),以生成经重构的亮度译码块的平均亮度值(414)。
如果亮度译码块的当前经处理的子块是最后一个子块(即,该块被完成)(416),则视频解码器300可以对LumaAvg的当前值进行舍入(418),并且将LumaAvg值存储到第二缓冲器(420)。再次,第二缓冲器可以是RAM或任何其它类型的存储器单元。第一缓冲器(410)和第二缓冲器(420)可以是同一存储器单元中被分配的空间,或者可以是单独的存储器单元。
如果亮度译码块的当前经处理的子块不是亮度译码块的最后一个子块(即,该块未被完成)(416),则视频解码器300然后可以在下一子块中生成经重构的亮度样本值(404),并且重复对亮度总和的存储(410)以及更新亮度平均值(412)。如图4中可见,经重构的亮度样本不可用于CFL预测过程450。确切而言,向CFL预测过程提供第一缓冲器中的亮度总和以及第二缓冲器中的亮度平均值。然而,应当理解的是,经重构的亮度样本仍然可以被滤波(例如,通过图3的环路滤波器单元312)并且被存储在DPB 314(参见图3)中以用于最终输出或用作后续经译码的块的参考样本。
然后,CFL预测过程450可以使用上述技术确定预测值。然而,由于亮度总和以及亮度平均值已经被计算并且被存储到存储器(例如,第一缓冲器和第二缓冲器),因此CFL预测过程450不需要从存储器读出经重构的亮度样本。因此,与其它技术相比,实现根据亮度的色度预测所需的存储器的数量被减少。此外,执行根据亮度的色度预测所需的处理周期的数量被减少。
视频解码器300可以在单个存储器读取阶段中读取子块的亮度总和(456)。在一些示例中,视频解码器300可以使用第一缓冲器的奇偶存储器组来提高CFL预测过程450的速度。例如,使用奇偶存储器组,可以并行读取来自两个子块的亮度总和。另外,视频解码器300可以读取存储在第二缓冲器中的亮度平均值。视频解码器300可以使用所读取的子块的亮度总和来计算最终预测样本以用于在CFL预测中使用(458)。首先,视频解码器300可以确定每个色度样本位置的经缩放的亮度样本值(Scaled Luma)。视频解码器300通过确定与色度样本相对应的亮度总和(对应的Luma sum)与经重构的亮度块的亮度平均值(LumaAvg)之间的差来计算经缩放的亮度样本值。视频解码器300将该差乘以与正在被解码的特定色度分量(例如,U色度或V色度)相关联的缩放因子(例如,alpha缩放值CflAlphaU或CflAlphaV)。视频解码器300可以根据在经编码的视频比特流中用信号通知的语法元素来确定缩放因子(454),或者可以根据视频译码特性来确定缩放因子。然后,视频解码器300舍入经缩放的差以确定经缩放的亮度样本值(ScaledLuma)(458)。
然后,视频解码器300可以将计算出的经缩放的亮度样本值与当前经解码的色度样本的对应的DC预测样本(DC)相加,以产生中间预测样本值(458)。在这方面,视频解码器300可以被配置为基本上与执行用于亮度译码块的预测过程400并行地计算DC预测样本(452)。视频解码器300使用DC帧内预测来确定DC预测值。然后,视频解码器300可以通过将中间预测样本值限幅在0与最大样本值(Max sample value)之间来确定最终预测样本值(458)。
ScaledLuma=Round2Signed(alpha*(对应的亮度总和-LumaAvg),6)
中间预测样本值=DC+ScaledLuma
最终预测样本值=clip(0,中间预测样本值,最大样本值)
在已经确定了最终预测值之后,视频解码器300然后可以通过将最终预测样本值与对应的经解码的残差值相加来重构色度块的色度样本值。视频解码器300可以对色度块的残余值进行解码,如上文参照图3描述的。
使用本公开内容的技术,考虑具有(N+2)比特LumaSum格式的MxM块,CFL的硬件实现的RAM区要求将为(MxMx(N+2))/4比特。对于具有10比特亮度样本比特深度的64x64亮度译码块,第一缓冲器的RAM区要求将为64x64x(10+2)/4=32x32x12=12,288比特。与第一缓冲器相比,用于存储平均值的第二缓冲器可能是小的。例如,考虑亮度样本的10比特比特深度,第二缓冲器可以是256x13=3,328比特。因此,对于具有10比特比特深度的64x64块,与在一些现有技术中使用的40,960比特相比,本公开内容的技术将使用15,616比特的RAM。这表示RAM区减少了60%。
本公开内容的技术还可以减少执行CFL预测所需的处理周期。如果在亮度预测过程400之后每周期处理K个像素,则执行的处理周期可以是:
-“读取1”阶段的周期=0个周期,因为“读取1”阶段被消除,并且与亮度预测并行发生。不需要额外的周期。
-“读取2”阶段的周期=(MxM)/4K
-总周期=(MxM)/4K
因此,由于消除了先前CFL技术的“读取1”阶段,因此周期计数也减少到一半。因此,存储器(例如,RAM)区和处理周期的总数两者都被减少。
图5是示出根据本公开内容技术的另一示例解码方法的流程图。图5的技术可以由视频解码器300的一个或多个结构单元(包括帧内预测单元318)来执行。
在一个示例中,视频解码器300被配置为:执行用于视频数据的亮度块的预测过程以形成经重构的亮度样本值(500)。视频解码器300可以被配置为:在用于亮度块的所述预测过程期间,将亮度块的每个子块的经重构的亮度样本值的总和存储在一个或多个存储器单元的第一缓冲器中(502)。视频解码器300还可以被配置为:在用于亮度块的预测过程期间,将经重构的亮度样本值的平均值存储在第二缓冲器中(504)。在本公开内容的另一个示例中,视频解码器300还被配置为:在用于亮度块的亮度样本的预测过程期间,计算亮度块的每个子块的经重构的亮度样本值的总和,并且在用于亮度块的亮度样本的预测过程期间,计算经重构的亮度样本值的平均值。
然后,视频解码器300可以执行根据亮度的色度预测,以使用亮度块的每个子块的经重构的亮度样本值的总和以及经重构的亮度样本值的平均值来重构与亮度块相对应的视频数据的色度块(506)。例如,视频解码器300可以被配置为:通过从对应的亮度总和(例如,来自对应的2x2亮度子块的2x2亮度总和)和经重构的亮度值的平均值来重构每个色度样本值,来执行根据亮度的色度预测。
在一个示例中,视频解码器300可以使用与相应的色度样本相对应的相应子块(例如,2x2子块)的经重构的亮度样本值的相应总和与经重构的亮度样本值的平均值之间的差来计算每个相应的色度样本。在另外的示例中,视频解码器300可以使用缩放因子来对与相应的色度样本相对应的相应子块(例如,2x2子块)的经重构的亮度样本值的相应总和与经重构的亮度样本值的平均值之间的差进行缩放,来计算每个相应的色度样本。在另外的示例中,视频解码器300可以执行DC帧内预测过程,以确定色度块的每个相应的色度样本的相应的DC预测值,以及通过将相应的DC预测值与以下项相加来计算每个相应的色度样本:与相应的色度样本相对应的相应子块(例如,2x2子块)的经重构的亮度样本值的相应总和与经重构的亮度样本值的平均值之间的差或经缩放的差。
在本公开内容的一个示例中,视频解码器300可以在不从一个或多个存储器单元读取经重构的亮度样本值的情况下,使用块的每个子块的经重构的亮度样本值的总和以及经重构的亮度样本值的平均值,来执行用于与亮度块相对应的色度块的色度样本的根据亮度的色度预测。
通过在用于亮度块的预测过程期间将每个子块的经重构的亮度样本值的总和以及经重构的亮度样本值的平均值存储在缓冲器中,视频解码器300不需要读出任何亮度样本值来执行用于色度块的根据亮度的色度预测。因此,与其它技术相比,实现根据亮度的色度预测所需的存储器的数量被减少。另外,执行根据亮度的色度预测所需的处理周期的数量被减少。
在本公开内容的另一示例中,视频解码器300可以被配置为执行DC帧内预测过程以确定色度块的每个相应的色度样本的相应的DC预测值。视频解码器300可以根据用于色度块的缩放因子、与相应的色度样本相对应的相应子块的经重构的亮度样本值的相应总和以及经重构的亮度样本值的平均值,来计算每个相应的色度样本的相应的经缩放的亮度样本值。在一个示例中,视频解码器300可以使用奇偶组来从第一缓冲器访问亮度块的每个子块的经重构的亮度样本值的总和。
视频解码器300还可以根据相应的DC预测值和相应的经缩放的亮度样本值来计算每个相应的色度样本的相应的中间预测样本值,并且然后根据相应的中间预测样本值和最大样本值来计算每个相应的色度样本的相应的最终预测样本值。视频解码器300可以使用相应的最终预测样本值来重构相应的色度样本值。在一个示例中,视频解码器300可以与执行用于亮度块的预测过程并行地执行DC帧内预测过程,以确定色度块的每个相应的色度样本的相应的DC预测值。
在另外的示例中,视频解码器300可以对色度块的残差值的块进行解码,并且将每个相应的残差值与对应的相应的最终预测样本值相加,以重构色度块的色度样本值。视频解码器300还可以显示包括根据经重构的色度块确定的像素值的图片。
下文描述了本公开内容的其它说明性示例。
条款1-一种对视频数据进行解码的方法,所述方法包括:执行用于所述视频数据的亮度块的预测过程以形成经重构的亮度样本值;在用于所述亮度块的所述预测过程期间,将所述亮度块的每个子块的所述经重构的亮度样本值的总和存储在第一缓冲器中;在用于所述亮度块的所述预测过程期间,将所述经重构的亮度样本值的平均值存储在第二缓冲器中;以及执行根据亮度的色度预测,以使用所述亮度块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值来重构与所述亮度块相对应的所述视频数据的色度块。
条款2-根据条款1所述的方法,还包括:在用于所述亮度块的所述亮度样本的所述预测过程期间,计算所述亮度块的每个子块的所述经重构的亮度样本值的所述总和;以及在用于所述亮度块的所述亮度样本的所述预测过程期间,计算所述经重构的亮度样本值的所述平均值。
条款3-根据条款1或2所述的方法,其中,执行根据亮度的色度预测以重构所述视频数据的所述色度块包括:在不从一个或多个存储器单元读取所述经重构的亮度样本值的情况下,使用所述块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值,来执行用于与所述亮度块相对应的所述色度块的色度样本的根据亮度的色度预测。
条款4-根据条款1-3中任一项所述的方法,其中,所述子块是2x2子块,并且其中,执行根据亮度的色度预测以重构所述视频数据的所述色度块包括:执行DC帧内预测过程以确定所述色度块的每个相应的色度样本的相应的DC预测值;根据用于所述色度块的缩放因子、与所述相应的色度样本相对应的相应的2x2子块的所述经重构的亮度样本值的相应总和以及所述经重构的亮度样本值的所述平均值,来计算每个相应的色度样本的相应的经缩放的亮度样本值;根据所述相应的DC预测值和所述相应的经缩放的亮度样本值来计算每个相应的色度样本的相应的中间预测样本值;根据所述相应的中间预测样本值和最大样本值来计算每个相应的色度样本的相应的最终预测样本值;以及使用所述相应的最终预测样本值来重构相应的色度样本值。
条款5-根据条款4所述的方法,其中,执行所述DC帧内预测过程包括:与执行用于所述亮度块的所述预测过程并行地执行所述DC帧内预测过程,以确定所述色度块的每个相应的色度样本的所述相应的DC预测值。
条款6-根据条款4或5所述的方法,还包括:对所述色度块的残差值的块进行解码;以及将每个相应的残差值与对应的相应的最终预测样本值相加,以重构所述色度块的所述色度样本值。
条款7-根据条款1-6中任一项所述的方法,其中,执行所述根据亮度的色度预测包括:使用奇偶组来从所述第一缓冲器访问所述亮度块的每个子块的所述经重构的亮度样本值的所述总和。
条款8-根据条款1-7中任一项所述的方法,还包括:显示包括根据所述经重构的色度块确定的像素值的图片。
条款9-一种装置,包括用于执行根据条款1-8所述的方法的任何组合的单元。
条款10-一种装置,包括存储器和一个或多个处理器,所述一个或多个处理器被配置为执行根据条款1-8所述的方法的任何组合。
条款11-一种存储指令的非暂时性计算机可读介质,所述指令在被执行时使得一个或多个处理器执行根据条款1-8所述的方法的任何组合。
要认识到的是,根据示例,本文描述的任何技术的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,并非所有描述的动作或事件对于实施所述技术都是必要的)。此外,在某些示例中,动作或事件可以例如通过多线程处理、中断处理或多个处理器并发地而不是顺序地执行。
在一个或多个示例中,所描述的功能可以用硬件、软件、固件或其任何组合来实现。如果用软件来实现,则所述功能可以作为一个或多个指令或代码被存储在计算机可读介质上或者通过其进行传输并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质或者通信介质,所述通信介质包括例如根据通信协议来促进计算机程序从一个地方传送到另一个地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质、或者(2)诸如信号或载波之类的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器访问以取得用于实现在本公开内容中描述的技术的指令、代码和/或数据结构的任何可用的介质。计算机程序产品可以包括计算机可读介质。
举例来说而非进行限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或者能够用于以指令或数据结构形式存储期望的程序代码以及能够由计算机访问的任何其它介质。此外,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者无线技术(诸如红外线、无线电和微波)从网站、服务器或其它远程源传输指令,则同轴电缆、光纤光缆、双绞线、DSL或者无线技术(诸如红外线、无线电和微波)被包括在介质的定义中。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是替代地针对非临时性的有形存储介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘利用激光来光学地复制数据。上述的组合也应当被包括在计算机可读介质的范围之内。
指令可以由一个或多个处理器来执行,诸如一个或多个DSP、通用微处理器、ASIC、FPGA、或其它等效的集成或分立逻辑电路。因此,如本文所使用的术语“处理器”和“处理电路”可以指代前述结构或者适于实现本文描述的技术的任何其它结构中的任何一者。另外,在一些方面中,本文描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或者被并入经组合的编解码器中。此外,所述技术可以完全在一个或多个电路或逻辑元件中实现。
本公开内容的技术可以在多种多样的设备或装置中实现,包括无线手机、集成电路(IC)或一组IC(例如,芯片组)。在本公开内容中描述了各种组件、模块或单元以强调被配置为执行所公开的技术的设备的功能性方面,但是不一定需要通过不同的硬件单元来实现。确切而言,如上所述,各个单元可以被组合在编解码器硬件单元中,或者由可互操作的硬件单元的集合(包括如上所述的一个或多个处理器)结合适当的软件和/或固件来提供。
已经描述了各个示例。这些和其它示例在所附的权利要求的范围内。
Claims (34)
1.一种被配置为对视频数据进行译码的装置,所述装置包括:
一个或多个存储器单元,其被配置为存储视频数据;以及
一个或多个处理器,其在电路中实现并且与所述一个或多个存储器单元相通信,所述一个或多个处理器被配置为:
执行用于所述视频数据的亮度块的预测过程以形成经重构的亮度样本值;
在用于所述亮度块的所述预测过程期间,将所述亮度块的每个子块的所述经重构的亮度样本值的总和存储在所述一个或多个存储器单元的第一缓冲器中;
在用于所述亮度块的所述预测过程期间,将所述经重构的亮度样本值的平均值存储在所述一个或多个存储器单元的第二缓冲器中;以及
执行根据亮度的色度预测,以使用所述亮度块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值来重构与所述亮度块相对应的所述视频数据的色度块。
2.根据权利要求1所述的装置,其中,所述一个或多个处理器还被配置为:
在用于所述亮度块的所述亮度样本的所述预测过程期间,计算所述亮度块的每个子块的所述经重构的亮度样本值的所述总和;以及
在用于所述亮度块的所述亮度样本的所述预测过程期间,计算所述经重构的亮度样本值的所述平均值。
3.根据权利要求1所述的装置,其中,所述一个或多个处理器还被配置为:
在不从所述一个或多个存储器单元读取所述经重构的亮度样本值的情况下,使用所述块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值来执行用于与所述亮度块相对应的所述色度块的色度样本的根据亮度的色度预测。
4.根据权利要求1所述的装置,其中,所述子块是2x2子块,并且其中,所述一个或多个处理器还被配置为:
执行DC帧内预测过程以确定所述色度块的每个相应的色度样本的相应的DC预测值;
根据用于所述色度块的缩放因子、与所述相应的色度样本相对应的相应的2x2子块的所述经重构的亮度样本值的相应总和以及所述经重构的亮度样本值的所述平均值,来计算每个相应的色度样本的相应的经缩放的亮度样本值;
根据所述相应的DC预测值和所述相应的经缩放的亮度样本值来计算每个相应的色度样本的相应的中间预测样本值;
根据所述相应的中间预测样本值和最大样本值来计算每个相应的色度样本的相应的最终预测样本值;以及
使用所述相应的最终预测样本值来重构相应的色度样本值。
5.根据权利要求4所述的装置,其中,所述一个或多个处理器还被配置为:
与执行用于所述亮度块的所述预测过程并行地执行所述DC帧内预测过程,以确定所述色度块的每个相应的色度样本的所述相应的DC预测值。
6.根据权利要求4所述的装置,其中,所述一个或多个处理器还被配置为:
对所述色度块的残差值的块进行解码;以及
将每个相应的残差值与对应的相应的最终预测样本值相加,以重构所述色度块的所述色度样本值。
7.根据权利要求1所述的装置,其中,为了执行所述根据亮度的色度预测,所述一个或多个处理器还被配置为:
使用奇偶组来从所述第一缓冲器访问所述亮度块的每个子块的所述经重构的亮度样本值的所述总和。
8.根据权利要求1所述的装置,还包括:
显示器,其被配置为显示包括根据所述经重构的色度块而确定的像素值的图片。
9.根据权利要求1所述的装置,其中,所述装置是移动设备。
10.根据权利要求9所述的装置,还包括:
接收机,其被配置为经由无线通信标准接收所述视频数据。
11.一种对视频数据进行解码的方法,所述方法包括:
执行用于所述视频数据的亮度块的预测过程以形成经重构的亮度样本值;
在用于所述亮度块的所述预测过程期间,将所述亮度块的每个子块的所述经重构的亮度样本值的总和存储在第一缓冲器中;
在用于所述亮度块的所述预测过程期间,将所述经重构的亮度样本值的平均值存储在第二缓冲器中;以及
执行根据亮度的色度预测,以使用所述亮度块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值来重构与所述亮度块相对应的所述视频数据的色度块。
12.根据权利要求11所述的方法,还包括:
在用于所述亮度块的所述亮度样本的所述预测过程期间,计算所述亮度块的每个子块的所述经重构的亮度样本值的所述总和;以及
在用于所述亮度块的所述亮度样本的所述预测过程期间,计算所述经重构的亮度样本值的所述平均值。
13.根据权利要求11所述的方法,其中,执行根据亮度的色度预测以重构所述视频数据的所述色度块包括:
在不从一个或多个存储器单元读取所述经重构的亮度样本值的情况下,使用所述块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值,来执行用于与所述亮度块相对应的所述色度块的色度样本的根据亮度的色度预测。
14.根据权利要求11所述的方法,其中,所述子块是2x2子块,并且其中,执行根据亮度的色度预测以重构所述视频数据的所述色度块包括:
执行DC帧内预测过程以确定所述色度块的每个相应的色度样本的相应的DC预测值;
根据用于所述色度块的缩放因子、与所述相应的色度样本相对应的相应的2x2子块的所述经重构的亮度样本值的相应总和以及所述经重构的亮度样本值的所述平均值,来计算每个相应的色度样本的相应的经缩放的亮度样本值;
根据所述相应的DC预测值和所述相应的经缩放的亮度样本值来计算每个相应的色度样本的相应的中间预测样本值;
根据所述相应的中间预测样本值和最大样本值来计算每个相应的色度样本的相应的最终预测样本值;以及
使用所述相应的最终预测样本值来重构相应的色度样本值。
15.根据权利要求14所述的方法,其中,执行所述DC帧内预测过程包括:
与执行用于所述亮度块的所述预测过程并行地执行所述DC帧内预测过程,以确定所述色度块的每个相应的色度样本的所述相应的DC预测值。
16.根据权利要求14所述的方法,还包括:
对所述色度块的残差值的块进行解码;以及
将每个相应的残差值与对应的相应的最终预测样本值相加,以重构所述色度块的所述色度样本值。
17.根据权利要求11所述的方法,其中,执行所述根据亮度的色度预测包括:
使用奇偶组来从所述第一缓冲器访问所述亮度块的每个子块的所述经重构的亮度样本值的所述总和。
18.根据权利要求11所述的方法,还包括:
显示包括根据所述经重构的色度块而确定的像素值的图片。
19.一种存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得被配置为对视频数据进行解码的设备的一个或多个处理器进行以下操作:
执行用于所述视频数据的亮度块的预测过程以形成经重构的亮度样本值;
在用于所述亮度块的所述预测过程期间,将所述亮度块的每个子块的所述经重构的亮度样本值的总和存储在第一缓冲器中;
在用于所述亮度块的所述预测过程期间,将所述经重构的亮度样本值的平均值存储在第二缓冲器中;以及
执行根据亮度的色度预测,以使用所述亮度块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值来重构与所述亮度块相对应的所述视频数据的色度块。
20.根据权利要求19所述的非暂时性计算机可读存储介质,其中,所述指令还使得所述一个或多个处理器进行以下操作:
在用于所述亮度块的所述亮度样本的所述预测过程期间,计算所述亮度块的每个子块的所述经重构的亮度样本值的所述总和;以及
在用于所述亮度块的所述亮度样本的所述预测过程期间,计算所述经重构的亮度样本值的所述平均值。
21.根据权利要求19所述的非暂时性计算机可读存储介质,其中,所述指令还使得所述一个或多个处理器进行以下操作:
在不从一个或多个存储器单元读取所述经重构的亮度样本值的情况下,使用所述块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值,来执行用于与所述亮度块相对应的所述色度块的色度样本的根据亮度的色度预测。
22.根据权利要求19所述的非暂时性计算机可读存储介质,其中,所述子块是2x2子块,并且其中,所述指令还使得所述一个或多个处理器进行以下操作:
执行DC帧内预测过程以确定所述色度块的每个相应的色度样本的相应的DC预测值;
根据用于所述色度块的缩放因子、与所述相应的色度样本相对应的相应的2x2子块的所述经重构的亮度样本值的相应总和以及所述经重构的亮度样本值的所述平均值,来计算每个相应的色度样本的相应的经缩放的亮度样本值;
根据所述相应的DC预测值和所述相应的经缩放的亮度样本值来计算每个相应的色度样本的相应的中间预测样本值;
根据所述相应的中间预测样本值和最大样本值来计算每个相应的色度样本的相应的最终预测样本值;以及
使用所述相应的最终预测样本值来重构相应的色度样本值。
23.根据权利要求22所述的非暂时性计算机可读存储介质,其中,所述指令还使得所述一个或多个处理器进行以下操作:
与执行用于所述亮度块的所述预测过程并行地执行所述DC帧内预测过程,以确定所述色度块的每个相应的色度样本的所述相应的DC预测值。
24.根据权利要求22所述的非暂时性计算机可读存储介质,其中,所述指令还使得所述一个或多个处理器进行以下操作:
对所述色度块的残差值的块进行解码;以及
将每个相应的残差值与对应的相应的最终预测样本值相加,以重构所述色度块的所述色度样本值。
25.根据权利要求19所述的非暂时性计算机可读存储介质,其中,为了执行所述根据亮度的色度预测,所述指令还使得所述一个或多个处理器进行以下操作:
使用奇偶组来从所述第一缓冲器访问所述亮度块的每个子块的所述经重构的亮度样本值的所述总和。
26.根据权利要求19所述的非暂时性计算机可读存储介质,其中,所述指令还使得所述一个或多个处理器进行以下操作:
显示包括根据所述经重构的色度块而确定的像素值的图片。
27.一种被配置为对视频数据进行解码的装置,所述装置包括:
用于执行用于所述视频数据的亮度块的预测过程以形成经重构的亮度样本值的单元;
用于在用于所述亮度块的所述预测过程期间,将所述亮度块的每个子块的所述经重构的亮度样本值的总和存储在第一缓冲器中的单元;
用于在用于所述亮度块的所述预测过程期间,将所述经重构的亮度样本值的平均值存储在第二缓冲器中的单元;以及
用于执行根据亮度的色度预测,以使用所述亮度块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值来重构与所述亮度块相对应的所述视频数据的色度块的单元。
28.根据权利要求27所述的装置,还包括:
用于在用于所述亮度块的所述亮度样本的所述预测过程期间,计算所述亮度块的每个子块的所述经重构的亮度样本值的所述总和的单元;以及
用于在用于所述亮度块的所述亮度样本的所述预测过程期间,计算所述经重构的亮度样本值的所述平均值的单元。
29.根据权利要求27所述的装置,其中,所述用于执行根据亮度的色度预测的单元包括:
用于在不从一个或多个存储器单元读取所述经重构的亮度样本值的情况下,使用所述块的每个子块的所述经重构的亮度样本值的所述总和以及所述经重构的亮度样本值的所述平均值,来执行用于与所述亮度块相对应的所述色度块的色度样本的根据亮度的色度预测的单元。
30.根据权利要求27所述的装置,其中,所述子块是2x2子块,并且其中,所述用于执行根据亮度的色度预测的单元包括:
用于执行DC帧内预测过程以确定所述色度块的每个相应的色度样本的相应的DC预测值的单元;
用于根据用于所述色度块的缩放因子、与所述相应的色度样本相对应的相应的2x2子块的所述经重构的亮度样本值的相应总和以及所述经重构的亮度样本值的所述平均值,来计算每个相应的色度样本的相应的经缩放的亮度样本值的单元;
用于根据所述相应的DC预测值和所述相应的经缩放的亮度样本值来计算每个相应的色度样本的相应的中间预测样本值的单元;
用于根据所述相应的中间预测样本值和最大样本值来计算每个相应的色度样本的相应的最终预测样本值的单元;以及
用于使用所述相应的最终预测样本值来重构相应的色度样本值的单元。
31.根据权利要求30所述的装置,其中,所述用于执行所述DC帧内预测过程的单元包括:
用于与执行用于所述亮度块的所述预测过程并行地执行所述DC帧内预测过程,以确定所述色度块的每个相应的色度样本的所述相应的DC预测值的单元。
32.根据权利要求30所述的装置,还包括:
用于对所述色度块的残差值的块进行解码的单元;以及
用于将每个相应的残差值与对应的相应的最终预测样本值相加,以重构所述色度块的所述色度样本值的单元。
33.根据权利要求27所述的装置,其中,所述用于执行所述根据亮度的色度预测的单元包括:
用于使用奇偶组来从所述第一缓冲器访问所述亮度块的每个子块的所述经重构的亮度样本值的所述总和的单元。
34.根据权利要求27所述的装置,还包括:
用于显示包括根据所述经重构的色度块而确定的像素值的图片的单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/119,810 US11394987B2 (en) | 2020-12-11 | 2020-12-11 | Chroma samples from luma samples prediction for video coding |
US17/119,810 | 2020-12-11 | ||
PCT/US2021/054223 WO2022125180A1 (en) | 2020-12-11 | 2021-10-08 | Chroma from luma prediction for video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116584096A true CN116584096A (zh) | 2023-08-11 |
Family
ID=78463993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180081743.4A Pending CN116584096A (zh) | 2020-12-11 | 2021-10-08 | 用于视频译码的根据亮度的色度预测 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11394987B2 (zh) |
EP (1) | EP4260560A1 (zh) |
KR (1) | KR20230117570A (zh) |
CN (1) | CN116584096A (zh) |
TW (1) | TW202228438A (zh) |
WO (1) | WO2022125180A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12081742B2 (en) * | 2021-06-11 | 2024-09-03 | Tencent America LLC | Intra mode coding |
US20230069089A1 (en) * | 2021-08-31 | 2023-03-02 | Mediatek Inc. | Video decoder with hardware shared between different processing circuits and associated video decoding method |
US20240007676A1 (en) * | 2022-06-29 | 2024-01-04 | Tencent America LLC | Signaling of downsampling filters for chroma from luma intra prediction mode |
CN115988223A (zh) * | 2022-12-26 | 2023-04-18 | 阿里巴巴(中国)有限公司 | 帧内预测模式的确定、图像编码以及图像解码方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1162010C (zh) * | 1996-08-29 | 2004-08-11 | 松下电器产业株式会社 | 图象译码设备和图象存储器 |
EP2725799B1 (en) * | 2011-06-27 | 2020-04-29 | Sun Patent Trust | Image encoding method, image decoding method, image encoding device, image decoding device, and image encoding/decoding device |
CN104718759B (zh) | 2012-01-24 | 2019-01-18 | 华为技术有限公司 | Lm模式的简化 |
US10397607B2 (en) * | 2013-11-01 | 2019-08-27 | Qualcomm Incorporated | Color residual prediction for video coding |
US10200719B2 (en) * | 2015-11-25 | 2019-02-05 | Qualcomm Incorporated | Modification of transform coefficients for non-square transform units in video coding |
US11025903B2 (en) | 2017-01-13 | 2021-06-01 | Qualcomm Incorporated | Coding video data using derived chroma mode |
WO2019066384A1 (ko) * | 2017-09-26 | 2019-04-04 | 삼성전자 주식회사 | 크로스-성분 예측에 의한 비디오 복호화 방법 및 장치, 크로스-성분 예측에 의한 비디오 부호화 방법 및 장치 |
CN112655206A (zh) | 2018-08-24 | 2021-04-13 | 三星电子株式会社 | 视频解码方法和设备、以及视频编码方法和设备 |
US11477476B2 (en) | 2018-10-04 | 2022-10-18 | Qualcomm Incorporated | Affine restrictions for the worst-case bandwidth reduction in video coding |
WO2020069652A1 (en) | 2018-10-06 | 2020-04-09 | Huawei Technologies Co., Ltd. | Candidate mv construction method for hmvp mode |
US11146801B1 (en) * | 2020-06-30 | 2021-10-12 | Tencent America LLC | Cross component intra prediction mode |
-
2020
- 2020-12-11 US US17/119,810 patent/US11394987B2/en active Active
-
2021
- 2021-10-08 KR KR1020237018496A patent/KR20230117570A/ko active Search and Examination
- 2021-10-08 EP EP21801372.0A patent/EP4260560A1/en active Pending
- 2021-10-08 WO PCT/US2021/054223 patent/WO2022125180A1/en active Application Filing
- 2021-10-08 CN CN202180081743.4A patent/CN116584096A/zh active Pending
- 2021-10-08 US US18/247,985 patent/US20230421786A1/en active Pending
- 2021-10-12 TW TW110137840A patent/TW202228438A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20220191526A1 (en) | 2022-06-16 |
US11394987B2 (en) | 2022-07-19 |
US20230421786A1 (en) | 2023-12-28 |
TW202228438A (zh) | 2022-07-16 |
WO2022125180A1 (en) | 2022-06-16 |
KR20230117570A (ko) | 2023-08-08 |
EP4260560A1 (en) | 2023-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112385223B (zh) | 取决于模式的帧内平滑(mdis)与帧内内插滤波器切换的组合 | |
US11394987B2 (en) | Chroma samples from luma samples prediction for video coding | |
US11595665B2 (en) | Upsampling reference pixels for intra-prediction in video coding | |
US12010325B2 (en) | Intra block copy scratch frame buffer | |
CN112673636B (zh) | 将运动向量取整以自适应运动向量差分辨率及提高视频译码中的运动向量存储精度 | |
US10764605B2 (en) | Intra prediction for 360-degree video | |
CN113728629A (zh) | 视频译码中的运动向量推导 | |
CN112425164A (zh) | 多个可分离变换选择的变换变体 | |
TW202044833A (zh) | 使用不同色度格式之三角預測單元模式中之視訊寫碼 | |
CN112789856A (zh) | 视频编/解码中基于变换域滤波的量化伪影抑制 | |
TW202027507A (zh) | 在視訊寫碼中框內區塊複本之預測限制 | |
CN116918332A (zh) | 用于调色板模式下的视频译码的缓冲器 | |
CN113615178B (zh) | 视频译码中的色度帧内预测 | |
WO2024026182A1 (en) | Tracking sample completion in video coding | |
US20240357121A1 (en) | Tracking sample completion in video coding | |
TWI856085B (zh) | 用於視訊寫碼之以梯度為基礎的預測細化 | |
CN116235495A (zh) | 用于视频译码中的跨分量线性模型(cclm)模式的固定比特深度处理 | |
CN117461313A (zh) | 视频译码中用于几何划分模式的运动矢量候选构建 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |