CN112042202B - 解码图片缓冲区管理及动态范围调整 - Google Patents

解码图片缓冲区管理及动态范围调整 Download PDF

Info

Publication number
CN112042202B
CN112042202B CN201980026371.8A CN201980026371A CN112042202B CN 112042202 B CN112042202 B CN 112042202B CN 201980026371 A CN201980026371 A CN 201980026371A CN 112042202 B CN112042202 B CN 112042202B
Authority
CN
China
Prior art keywords
dra
picture
inverse
video
chroma
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980026371.8A
Other languages
English (en)
Other versions
CN112042202A (zh
Inventor
A.K.拉马苏布拉莫尼恩
D.鲁萨诺夫斯基
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 CN112042202A publication Critical patent/CN112042202A/zh
Application granted granted Critical
Publication of CN112042202B publication Critical patent/CN112042202B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • G06T5/94Dynamic range modification of images or parts thereof based on local image properties, e.g. for local contrast enhancement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20208High dynamic range [HDR] image processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开描述了作为从存储器输出图片的一部分对图片执行逆动态范围调整(DRA)的示例。用于对视频数据进行解码的设备包括:被配置为存储DRA域中的图片的存储器;以及处理器,被配置为确定要从存储器中输出存储在存储器中的动态范围调整(DRA)域中的图片,在确定要输出DRA域中的图片之后,执行输出DRA域中的图片的处理,并且在从存储器输出DRA域中的图片的处理中,将逆DRA应用于图片。

Description

解码图片缓冲区管理及动态范围调整
本申请要求于2019年4月16日提交的美国申请No.16/385,469的优先权,该美国申请要求于2018年4月18日提交的美国临时申请No.62/659,617的权益,这两个申请的整体内容都通过引用并入本文。
技术领域
本公开涉及视频编码和视频解码。
背景技术
数字视频能力可以被并入到广泛的设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、平板计算机、电子书阅读器、数字相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流式传输设备等。数字视频设备实现视频编码技术,诸如在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4部分10、先进视频编码(AVC)、高效视频编码(HEVC)标准、ITU-T H.265/高效视频编码(HEVC)定义的标准以及此类标准的扩展中描述的那些技术。通过实现这样的视频编码技术,视频设备可以更高效地发送、接收、编码、解码和/或存储数字视频信息。
视频编码技术包括空间(图片内)预测和/或时间(图片间)预测,以减少或移除视频序列中固有的冗余。对于基于块的视频编码,可以将视频条带(slice)(例如,视频图片或视频图片的一部分)分割为视频块,这些视频块也可以被称为编码树单元(CTU)、编码单元(CU)和/或编码节点。使用相对于图片中的相邻块中的参考样本的空间预测来对同一图片的帧内编码(I)的条带中的视频块进行编码。图片的帧间编码(P或B)的条带中的视频块可以使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。
发明内容
本公开涉及具有高动态范围(HDR)和宽色域(WCG)表示的视频信号的编码的领域。更具体而言,本公开描述了应用于某些颜色空间中的视频数据的信号通知和操作,以使得能够对HDR和WCG视频数据进行更高效的压缩。本文描述的技术可以提高用于编码HDR和WCG视频数据的基于混合变换的视频编码系统(例如,利用包括帧间和帧内预测的基于块的视频编码的视频编码器)的压缩效率。
视频编码器(coder)(例如,视频编码器(encoder)或视频解码器)被配置为执行“碰撞(bumping)处理”以输出(例如,用于显示或进一步处理)当前存储在解码图片缓冲区(DPB)中的图片。在一些示例中,视频编码器被配置为基于定时参数来输出图片。DPB中存储的图片可以被存储在映射域中(例如,在动态范围调整(DRA)之后)。映射域也称为DRA域。在本发明中描述的一个或多个示例中,视频编码器可以将逆DRA应用于正被移除的图片(例如,以作为碰撞处理的一部分或基于定时参数)。以这种方式,代替在视频编码器的外部执行逆DRA操作,可以将逆DRA操作集成到视频编码器的操作中,从而促进更高效的逆DRA处理。此外,通过应用逆DRA,视频编码器可能不需要将图片存储在DRA域和原始域两者中或者为了帧间预测而执行从原始域到DRA域的实时(on-the-fly)转换。
在一个示例中,本公开描述了一种解码视频数据的方法。该方法包括:确定要从存储器中输出存储在存储器中的动态范围调整(DRA)域中的图片,在确定要输出DRA域中的图片之后,执行输出DRA域中的图片的处理,并在输出DRA域中的图片的处理中,将逆DRA应用于图片。
在一个示例中,本公开描述了一种用于解码视频数据的设备。该设备包括被配置为存储动态范围调整(DRA)域中的图片的存储器以及处理器,该处理器被配置为确定要从存储器中输出存储在存储器中的动态范围调整(DRA)域中的图片,在确定要输出DRA域中的图片之后,执行输出DRA域中的图片的处理,并在输出DRA域中的图片的处理中,将逆DRA应用于图片。
在一个示例中,本公开描述了一种在其上存储指令的计算机可读存储介质,指令在被执行时使得用于解码视频数据的设备的一个或多个处理器确定要从存储器中输出存储在存储器中的动态范围调整(DRA)域中的图片,在确定要输出DRA域中的图片之后,执行输出DRA域中的图片的处理,并在输出DRA域中的图片的处理中,将逆DRA应用于图片。
在一个示例中,本公开描述了一种用于解码视频数据的设备。该设备包括:用于确定要从存储器中输出存储在存储器中的动态范围调整(DRA)域中的图片的部件,用于在确定要输出DRA域中的图片之后执行输出DRA域中的图片的处理的部件,以及用于在输出DRA域中的图片的处理中将逆DRA应用于图片的部件。
在附图和以下描述中阐述一个或多个示例的细节。根据说明书、附图和权利要求书,其它特征、目的和优点将是显而易见的。
附图说明
图1是图示可以执行本公开的技术的示例视频编码和解码系统的框图。
图2A和图2B是图示示例四叉树二叉树(QTBT)结构以及对应的编码树单元(CTU)的概念图。
图3是图示可以执行本公开的技术的示例视频编码器的框图。
图4是图示可以执行本公开的技术的示例视频解码器的框图。
图5是图示HDR数据的概念的概念图。
图6是图示示例色域的概念图。
图7是图示HDR/WCG表示转换的示例的流程图。
图8是图示HDR/WCG逆转换的示例的流程图。
图9是图示电-光转换函数(EOTF)的示例的概念图,该电-光转换函数用于从感知上均匀的编码等级到线性亮度的视频数据转换(包括SDR和HDR)。
图10是图示PQ转换函数的图。
图11是图示亮度驱动的色度缩放(LCS)函数的图。
图12是图示解码视频数据的示例方法的流程图。
具体实施方式
在视频编码中,视频编码器对视频数据进行编码以用于发信号通知,而视频解码器执行相反处理以对视频数据进行解码。可以将动态范围调整(DRA)应用于块/图片中的视频样本从而产生“映射域”中的样本,该映射域是用于压缩(例如,视频编码)的更高效表示。可以在映射域(例如,DRA域)中进行视频编码(coding)(例如,编码(encoding)或解码(decoding)),从而将映射域中的图片保存在解码图片缓冲区(DPB)中,以在帧间预测期间用于参考。帧间预测是将参考图片中的块用于对当前图片中的块进行编码的处理,并且DPB存储参考图片。在一些示例中,参考图片被存储在映射域中。
可以在输出DPB中的一些图片之前将逆DRA应用于这些图片,以将样本转换到原始域。例如,视频解码器可以在映射域(例如,DRA域)中重构视频数据,并且视频解码器或某个其它组件可以执行逆DRA处理以将映射域(例如,DRA域)中的图片转换回原始域以输出,从而进行显示或用于进一步处理。
动态范围调整是对视频样本执行的映射操作。可以将动态范围调整应用于若干应用中的视频样本。要被编码的视频样本被视为原始域。在一些示例中,通过将数据从原始域映射到映射域,将动态范围调整应用于视频以提高压缩效率。这种映射可以被称为前向映射,并且可以在映射域中完成编码。可以在解码器侧应用逆处理以将样本转换到原始域。
在一些示例中,可以将DRA用于将视频转换到更适于显示的域。例如,在一些示例中,视频可以被捕获并以适于具有一组能力的显示器的格式来表示(例如,适于在使用PQ(感知量化)转换函数的HDR(高动态范围)显示器中显示的内容)。在解码器侧使用的显示器可能不具有这种能力(例如,只能利用伽马(gamma)转换函数显示SDR内容的显示器)。在这样的情况下,可以将DRA用于将视频映射到更适于第一显示器的域。在这样的情况下,前向映射可以是可选的,并且可以在解码器侧执行逆映射。
本申请中公开的技术可以适用于在解码器侧使用某种形式的映射的一个或多个应用场景。将操作称为逆映射并不一定暗示将前向映射应用于原始视频。对于特定的显示器,捕获的原始内容本身可以是映射域,并且在逆DRA映射之后的域可以被视为本公开中描述的“原始域”。
如以下更详细描述的,可能存在与在解码器侧处置与DRA有关的操作相关联的技术问题,诸如增加的DPB尺寸或增加的计算复杂度或处理能力。本公开描述了若干种技术来改善动态范围调整及其与基于混合变换的视频编解码器的集成,包括发信号通知。作为一个示例,在解码器侧,视频解码器或某个其它组件可以在碰撞处理中或当基于定时参数要输出图片时,对图片应用逆DRA,连续应用一致性裁剪窗口。裁剪窗口定义高度和宽度,并且保留裁剪窗口内的图像内容,而丢弃其余部分(或反之亦然,基于裁剪窗口的操作)。以这种方式,示例技术可以提供针对在解码器侧执行与DRA相关的操作的技术问题的技术解决方案的实际应用。
图1是图示可以执行本公开的技术的示例视频编码和解码系统100的框图。本公开的技术大体上涉及编码(coding)(编码(encoding)和/或解码(decoding))视频数据。一般而言,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的未编码的视频、编码的视频、解码的(例如,重构的)视频以及视频元数据(诸如信令数据)。
如图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。本公开将“编码”设备称为执行数据的编码(coding)(编码(encoding)和/或解码(decoding))的设备。因此,视频编码器200和视频解码器300表示编码(coding)设备(特别是分别表示视频编码器和视频解码器)的示例。在一些示例中,设备102、116可以以基本上对称的方式进行操作,使得设备102、116中的每一个包括视频编码和解码组件。因此,系统100可以支持视频设备102、116之间的单向或双向视频传输,例如,用于视频流式传输、视频回放、视频广播或视频电话。
一般而言,视频源104表示视频数据(即,原始的未编码的视频数据)的源,并将视频数据的图片(也称为“帧”)的连续序列提供给视频编码器200,该视频编码器200针对图片编码数据。源设备102的视频源104可以包括视频捕获设备(诸如摄像机)、包含先前捕获的原始视频的视频存档(archive)和/或从视频内容提供者接收视频的视频馈送接口。作为另一个替代方案,视频源104可以生成基于计算机图形的数据作为源视频,或者实况视频、存档视频和计算机生成的视频数据的组合。在每种情况下,视频编码器200对捕获的、预先捕获的或计算机生成的视频数据进行编码。视频编码器200可以将图片从接收到的次序(有时称为“显示次序”)重新布置为用于编码的编码次序。视频编码器200可以生成包括编码的视频数据的比特流。然后,源设备102可以经由输出接口108将编码的视频数据输出到计算机可读介质110上,以通过例如目的地设备116的输入接口122进行接收和/或取得。
源设备102的存储器106和目的地设备116的存储器120表示通用存储器。在一些示例中,存储器106、120可以存储原始视频数据,例如,来自视频源104的原始视频和来自视频解码器300的原始的、解码的视频数据。附加地或可替代地,存储器106、120可以分别存储可以由例如视频编码器200和视频解码器300执行的软件指令。虽然在这个示例中与视频编码器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可以包括多种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、Blu-rayTM盘、DVD、CD-ROM、闪存、易失性或非易失性存储器,或任何其它用于存储编码的视频数据的合适的数字存储介质。
在一些示例中,源设备102可以将编码的视频数据输出到文件服务器114或可以存储由源设备102生成的编码的视频的另一个中间存储设备。目的地设备116可以经由流式传输或下载来访问来自文件服务器114的存储的视频数据。文件服务器114可以是能够存储编码的视频数据并将该编码的视频数据传输到目的地设备116的任何类型的服务器设备。文件服务器114可以表示web服务器(例如,用于网站)、文件传输协议(FTP)服务器、内容递送网络设备或网络附加存储(NAS)设备。目的地设备116可以通过包括互联网连接的任何标准数据连接来访问来自文件服务器114的编码的视频数据。这可以包括适合于访问存储在文件服务器114上的编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。文件服务器114和输入接口122可以被配置为根据流式传输协议、下载传输协议或其组合来操作。
输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线网络组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任何一种进行操作的无线通信组件,或其它物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据诸如4G、4G-LTE(长期演进)、LTE Advanced、5G等之类的蜂窝通信标准来传递数据(诸如编码的视频数据)。在输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可以被配置为根据其它无线标准(诸如IEEE 802.11规范、IEEE 802.15规范(例如,ZigBeeTM)、BluetoothTM标准等)来传递数据(诸如编码的视频数据)。在一些示例中,源设备102和/或目的地设备116可以包括相应的片上系统(SoC)设备。例如,源设备102可以包括SoC设备以执行归因于视频编码器200和/或输出接口108的功能,并且目的地设备116可以包括SoC设备以执行归因于视频解码器300和/或输入接口的功能122。
本公开的技术可以应用于支持各种多媒体应用中的任何一种的视频编码,诸如空中电视广播、有线电视传输、卫星电视传输、互联网流式视频传输(诸如HTTP(DASH)上的动态自适应流式传输)、编码到数据存储介质上的数字视频、存储在数据存储介质上的数字视频的解码或其它应用。
目的地设备116的输入接口122从计算机可读介质110(例如,存储设备112、文件服务器114等)接收编码的视频比特流。编码的视频比特流计算机可读介质110可以包括由视频编码器200定义的信令信息,该信令信息也被视频解码器300使用,诸如具有描述视频块或其它编码单元(例如,条带、图片、图片组、序列等)的特性和/或处理的值的语法元素。显示设备118向用户显示解码的视频数据的解码的图片。显示设备118可以表示各种显示设备中的任何一种,诸如阴极射线管(CRT)、液晶显示器(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可以根据视频编码标准(诸如ITU-T H.265,也称为高效视频编码(HEVC))或其扩展(诸如多视图和/或可缩放视频编码扩展)进行操作。可替代地,视频编码器200和视频解码器300可以根据其它专有或行业标准(诸如联合探索测试模型(JEM)或ITU-T H.266,该ITU-T H.266也称为多功能视频编码(VVC))进行操作。Bross等人的“通用视频编码(Versatile Video Coding)(草案5)”,ITU-T SG 16WP 3和ISO/IECJTC 1/SC 29/WG 11的联合视频研究组(Joint Video Experts Team,JVET),第13次会议:日内瓦,2019年3月19-27日,JVET-N1001-v2中描述了VVC标准的最新草案(下文中简称为“VVC草案5”)。但是,本公开的技术不限于任何特定的编码标准。
一般而言,视频编码器200和视频解码器300可以执行图片的基于块的编码。术语“块”一般是指包括要处理(例如,编码、解码或以其它方式在编码和/或解码处理中使用)的数据的结构。例如,块可以包括亮度和/或色度数据的样本的二维矩阵。一般而言,视频编码器200和视频解码器300可以对以YUV(例如,Y、Cb、Cr)格式表示的视频数据进行编码。即,并非针对图片的样本编码红色、绿色和蓝色(RGB)数据,而是视频编码器200和视频解码器300可以对亮度和色度分量进行编码,其中色度分量可以包括红色色调(hue)和蓝色色调色度分量。在一些示例中,视频编码器200在编码之前将接收到的RGB格式的数据转换成YUV表示,并且视频解码器300将YUV表示转换成RGB格式。可替代地,预处理和后处理单元(未示出)可以执行这些转换。
本公开大体上可以指对图片的编码(coding)(例如,编码(encoding)和解码(decoding))以包括对图片的数据进行编码或解码的处理。类似地,本公开可以指对图片的块的编码以包括对块的数据进行编码或解码的处理(例如,预测和/或残差编码)。编码的视频比特流一般包括语法元素的一系列值,该语法元素代表编码决策(例如,编码模式)以及图片到块的分割。因此,对编码图片或块的引用一般应当被理解为编码形成图片或块的语法元素的值。
HEVC定义各种块,包括编码单元(CU)、预测单元(PU)和变换单元(TU)。根据HEVC,视频编码器(诸如视频编码器200)根据四叉树结构将编码树单元(CTU)分割为CU。即,视频编码器将CTU和CU分割为四个相等的、不重叠的正方形,并且四叉树的每个节点具有零个或者四个子节点。没有子节点的节点可以被称为“叶节点”,并且这种叶节点的CU可以包括一个或多个PU和/或一个或多个TU。视频编码器可以进一步分割PU和TU。例如,在HEVC中,残差四叉树(RQT)表示TU的分割。在HEVC中,PU表示帧间预测数据,而TU表示残差数据。帧内预测的CU包括帧内预测信息,诸如帧内模式指示。
作为另一个示例,视频编码器200和视频解码器300可以被配置为根据JEM或VVC进行操作。根据JEM或VVC,视频编码器(诸如视频编码器200)将图片分割为多个编码树单元(CTU)。视频编码器200可以根据树结构来分割CTU,诸如四叉树-二叉树(QTBT)结构或多类型树(MTT)结构。QTBT结构移除了多种分割类型的概念,诸如HEVC的CU、PU和TU之间的分离。QTBT结构包括两个等级:根据四叉树分割来分割的第一等级,和根据二叉树分割来分割的第二等级。QTBT结构的根节点与CTU对应。二叉树的叶节点与编码单元(CU)对应。
在MTT分割结构中,可以使用四叉树(QT)分割、二叉树(BT)分割和一种或多种类型的三叉树(TT)分割来对块进行分割。三叉树分割是将一个块分为三个子块的分割。在一些示例中,三叉树分割将一个块划分为三个子块,而不通过中心划分原始块。MTT中的分割类型(例如,QT、BT和TT)可以是对称的或不对称的。
在一些示例中,视频编码器200和视频解码器300可以使用单个QTBT或MTT结构来表示亮度和色度分量中的每一个,而在其它示例中,视频编码器200和视频解码器300可以使用两个或更多个QTBT或MTT结构,诸如用于亮度分量的一个QTBT/MTT结构和用于两个色度分量的另一个QTBT/MTT结构(或用于相应色度分量的两个QTBT/MTT结构)。
视频编码器200和视频解码器300可以被配置为使用每个HEVC的四叉树分割、QTBT分割、MTT分割或其它分割结构。出于解释的目的,相对于QTBT分割呈现了对本公开的技术的描述。但是,应当理解的是,本公开的技术也可以应用于被配置为使用四叉树分割或其它类型的分割的视频编码器。
本公开可以在垂直和水平维度的方面互换地使用“NxN”和“N乘N”来指代块(诸如CU或其它视频块)的样本维度,例如16x16样本或16乘16样本。一般而言,16x16 CU在垂直方向上将有16个样本(y=16)并且在水平方向上将有16个样本(x=16)。同样,NxN CU一般在垂直方向上有N个样本并且在水平方向上有N个样本,其中N表示非负整数值。CU中的样本可以按行和列排列。而且,CU在水平方向上不必具有与垂直方向上相同数量的样本。例如,CU可以包括NxM个样本,其中M不必等于N。
视频编码器200对表示预测和/或残差信息以及其它信息的CU的视频数据进行编码。预测信息指示要如何预测CU以便形成CU的预测块。残差信息一般表示在编码之前的CU的样本与预测块之间的逐样本差异。
为了预测CU,视频编码器200一般可以通过帧间预测或帧内预测来形成CU的预测块。帧间预测一般是指从先前编码的图片的数据中预测CU,而帧内预测一般是指从同一图片的先前编码的数据中预测CU。为了执行帧间预测,视频编码器200可以使用一个或多个运动向量来生成预测块。视频编码器200一般可以例如在CU与参考块之间的差异方面执行运动搜索,以识别与CU紧密匹配的参考块。视频编码器200可以使用绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)或其它此类差异计算来确定差异度量,以确定参考块是否紧密匹配当前CU。在一些示例中,视频编码器200可以使用单向预测或双向预测来预测当前CU。
为了执行帧内预测,视频编码器200可以选择帧内预测模式以生成预测块。JEM提供了六十七种帧内预测模式,包括各种方向模式以及平面模式和DC模式。一般而言,视频编码器200选择帧内预测模式,该帧内预测模式描述了从中预测当前块的样本的到当前块(例如,CU的块)的相邻样本。假设视频编码器200以光栅扫描次序(从左到右、自顶向下)对CTU和CU进行编码,那么此类样本一般可以在与当前块在同一个图片中的当前块的上方、左上方或左侧。
视频编码器200对表示当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示使用了各种可用的帧间预测模式中的哪一种帧间预测模式的数据以及用于对应模式的运动信息进行编码。对于单向或双向帧间预测,例如,视频编码器200可以使用先进运动向量预测(AMVP)或合并模式对运动向量进行编码。视频编码器200可以使用相似的模式对用于仿射运动补偿模式的运动向量进行编码。
在诸如块的帧内预测或帧间预测之类的预测之后,视频编码器200可以计算块的残差数据。残差数据(诸如残差块)表示块与使用对应的预测模式形成的块的预测块之间的逐样本差异。视频编码器200可以将一个或多个变换应用于残差块,以在变换域而非样本域中产生经变换的数据。例如,视频编码器200可以将离散余弦变换(DCT)、整数变换、小波变换或概念上相似的变换应用于残差视频数据。此外,视频编码器200可以在第一变换之后应用辅助变换,诸如与模式相关的不可分离的辅助变换(MDNSST)、与信号相关的变换、Karhunen-Loeve变换(KLT)等。视频编码器200在应用一个或多个变换之后产生变换系数。
如上所述,在进行任何变换以产生变换系数之后,视频编码器200可以执行变换系数的量化。量化一般是指对变换系数进行量化以可能地减少用于表示该系数的数据量从而提供进一步压缩的处理。通过执行量化处理,视频编码器200可以减小与一些或全部系数相关联的比特深度。例如,视频编码器200可以在量化期间将n比特的值舍入成m比特的值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可以执行待量化的值的逐位右移。
在量化之后,视频编码器200可以扫描变换系数,从而从包括经量化的变换系数的二维矩阵产生一维向量。可以将扫描设计为将较高能量(以及因此较低频率)的系数放在向量的前面,并将较低能量(以及因此较高频率)的变换系数放在向量的后面。在一些示例中,视频编码器200可以利用预定义的扫描次序来扫描经量化的变换系数以产生序列化的向量,然后对经量化的向量的变换系数进行熵编码。在其它示例中,视频编码器200可以执行自适应扫描。在扫描经量化的变换系数以形成一维向量之后,视频编码器200可以例如根据上下文自适应二进制算术编码(CABAC)对一维向量进行熵编码。视频编码器200还可以对语法元素(该语法元素描述与编码的视频数据相关联的元数据)的值进行熵编码,以供视频解码器300在解码视频数据时使用。
为了执行CABAC,视频编码器200可以将上下文模型内的上下文指派给要传输的符号。上下文可以涉及例如符号的相邻值是否为零值。概率确定可以基于被指派给符号的上下文。
视频编码器200还可以例如在图片头部、块头部、条带头部中向视频解码器300生成语法数据,诸如基于块的语法数据、基于图片的语法数据和基于序列的语法数据,或生成其它语法数据,诸如序列参数集(SPS)、图片参数集(PPS)或视频参数集(VPS)。视频解码器300同样可以解码此类语法数据以确定如何解码对应的视频数据。
以这种方式,视频编码器200可以生成包括编码的视频数据的比特流,例如,描述将图片分割为块(例如,CU)的语法元素以及用于块的预测和/或残差信息。最终,视频解码器300可以接收比特流并对编码的视频数据进行解码。
一般而言,视频解码器300执行与视频编码器200执行的处理相反的处理以对比特流的编码的视频数据进行解码。例如,视频解码器300可以使用CABAC,以与视频编码器200的CABAC编码处理基本相似但相反的方式来解码比特流的语法元素的值。语法元素可以根据诸如QTBT结构之类的对应分割结构来定义图片到CTU的分割信息以及每个CTU的分割,以定义CTU的CU。语法元素还可以定义视频数据的块(例如,CU)的预测和残差信息。
可以由例如经量化的变换系数来表示残差信息。视频解码器300可以对块的经量化的变换系数进行逆量化和逆变换以再现块的残差块。视频解码器300使用信号通知的(signaled)预测模式(帧内或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)来形成块的预测块。视频解码器300然后可以组合预测块和残差块(在逐样本的基础上)以再现原始块。视频解码器300可执行附加处理,诸如执行解块处理以减少沿着块的边界的视觉伪影。
根据本公开的技术,视频编码器200和/或视频解码器300可以被配置为执行用于动态范围调整(DRA)的操作。DRA可以是应用于视频样本以将视频样本转换到更适于压缩的不同的域(称为映射域或DRA域)的处理。仅仅为了便于描述而关于视频编码器200和视频解码器300描述了示例技术。但是,在一些示例中,视频预处理器可以执行DRA操作,并将结果输出到视频编码器200以进行编码。在一些示例中,视频后处理器可以从视频解码器300接收解码的视频数据并执行逆DRA操作。逆DRA操作将映射域中的视频数据恢复到原始域,该原始域可以是用于要显示的视频数据的域(例如,用于HRD或WCG视频)。可以通过处理电路来执行示例技术,处理电路的示例包括在编码器侧的视频预处理器、视频编码器200或两者的组合,在解码器侧的视频后处理器、视频解码器300或两者的组合。
但是,描述了在本公开中描述的示例技术,使得视频编码器200和/或视频解码器300并且更具体而言是视频解码器300被配置为执行示例逆DRA操作。通过使视频编码器200和/或视频解码器300执行示例逆DRA操作,本公开描述了基于混合变换的视频编解码器的示例。例如,除了在“映射域”(也称为DRA域)中进行编码和解码之外,视频编码器200和视频解码器300还可以被配置为执行逆DRA操作以将DRA域视频数据转换到原始域,从而使得视频后处理器无需执行此类操作。
使视频解码器300执行逆DRA操作可以具有技术优势。例如,通过在视频解码器300内执行逆DRA操作,视频解码器300可能不需要向视频后处理器输出用于执行逆DRA操作的缩放和偏移参数,这可以促进高效的逆DRA操作。例如,在视频解码器300的外部执行逆DRA操作可能要求在存储参数和稍后在后处理中取得参数上浪费时间,而不是在解码处理中执行逆DRA操作。
例如,视频解码器300可以接收针对图片的编码的视频数据和包括用于图片的DRA参数的元数据。在视频后处理器执行逆DRA操作的示例中,视频解码器300然后可能需要确保元数据与图片同步,这是因为视频解码器300可能需要在DRA域中输出解码的图片并输出该图片的元数据,以便视频后处理器可以执行逆DRA。如果图片与元数据之间的同步丢失,那么视频后处理器可能无法正确执行逆DRA。
而且,在一些示例中,视频后处理器不一定必需直接耦合到视频解码器300,而可以是更下游的组件。作为一个示例,视频后处理器可以被嵌入在显示设备118中,并且在视频解码器300和显示设备118之间可以存在许多组件。因而,在视频后处理器中执行逆DRA的示例中,包括DRA参数的元数据需要保持与图片同步并经过许多不同的组件,在这些组件中元数据可能相对于图片不同步或丢失。
因而,通过在视频解码器300内执行逆DRA,如果包括DRA参数的元数据变得与图片不同步,那么可能不会产生负面影响。而且,诸如在直到显示设备118才执行逆DRA的示例中,DRA参数可能不需要经过许多组件。
在本公开中描述的示例技术中,视频编码器200和视频解码器300可以被配置为执行逆DRA操作,以作为碰撞处理的一部分或作为基于定时参数输出图片的一部分。解码图片缓冲区(DPB)维护可以被用作帧间预测的参考图片的图片或帧的集合。可以在DRA域中存储在DPB中存储的图片。
碰撞处理和基于定时参数输出图片的处理定义了输出来自DPB的图片并随后将其移除(例如,以便可以将新的图片存储在DPB中)的方式。在一个或多个示例中,视频编码器200和视频解码器300可以执行逆DRA,以作为碰撞处理的一部分或作为基于定时参数移除图片的一部分。例如,视频编码器200和/或视频解码器300可以确定要从DPB输出存储在DPB中的图片。在确定要输出图片之后,视频编码器200和/或视频解码器300可以执行输出图片的处理。在输出图片的处理中,视频编码器200和/或视频解码器300可以将逆DRA应用于图片。
一般而言,在输出图片的处理中是指图片可以被视频解码器300外部的另一组件(例如,诸如视频后处理器)访问之前的实例。在一个或多个示例中,在输出图片的处理中是指导致从DPB输出图片的一系列连续操作。当图片被标记为“未用于参考”时,该一系列操作可以以选择要输出哪个图片开始并以所选择的图片被输出并且可能随后被移除而结束。在一些示例中,“在输出图片的处理中”执行的技术之后可以接着识别要输出哪个图片,并且在输出该图片之前(例如,在图片可以被视频解码器300外部的另一组件访问之前)执行这些技术。
作为一个示例,视频编码器200和/或视频解码器300选择要输出哪个图片(例如,基于碰撞处理或基于何时要输出图片的定时参数),执行逆DRA操作和图片裁剪(或先执行图片裁剪,然后再执行逆DRA操作)并输出图片。然后,当图片被标记为“未用于参考”时,清空存储有输出图片的DPB的图片存储缓冲区,以将图片从DPB中移除。在一些示例中,在输出图片的处理中,视频编码器200和/或视频解码器300可以执行裁剪操作以移除图片的部分。在一些示例中,裁剪操作可以是可选的,并且在执行裁剪操作的示例中可以在逆DRA操作之前或之后发生裁剪操作。
在逆DRA操作之后发生裁剪的情况下,图片在裁剪操作之后可以不被进一步处理或修改(但在一些示例中可以被用作参考图片),直到图片从DPB中被移除为止。在一些示例中,在其中在逆DRA操作之前发生裁剪的输出图片的处理中,图片在逆DRA操作之后可以不被进一步处理或修改(但在一些示例中可以被用作参考图片),直到图片从DPB中被移除为止。
因而,输出处理包括:选择要输出的图片,输出图片,并随后从DPB中移除图片。在选择要输出的图片和输出图片之间,可以存在裁剪操作。视频编码器200和/或视频解码器300可以被配置为在输出图片的处理中执行逆DRA操作,使得在选择要输出的图片之后并且在输出图片之前或者在移除图片之前执行逆DRA操作。可以在逆DRA操作之前或逆DRA操作之后执行裁剪操作。
应当理解的是,视频编码器200可能不需要将逆DRA应用于图片。在一些示例中,本公开中描述的逆DRA技术仅适用于视频解码器300。但是,视频编码器200有可能可以执行示例技术。
如在本公开的其它部分中更详细地描述的,碰撞处理或基于定时参数的移除的一部分也可以包括裁剪。在裁剪中,视频编码器200和/或视频解码器300可以裁剪掉图片中将不被显示的部分。例如,视频编码器200可以定义裁剪窗口并发信号通知裁剪窗口的尺寸(例如,高度和宽度)的信息。视频解码器300裁剪掉图片在裁剪窗口之外的部分。视频编码器200和/或视频解码器300可以被配置为与将逆DRA应用于图片的操作连续地执行裁剪。例如,视频编码器200和/或视频解码器300可以被配置为执行裁剪操作,然后应用逆DRA。作为另一个示例,视频编码器200和/或视频解码器300可以被配置为应用逆DRA,然后对结果执行裁剪。
本公开一般可以指“发信号通知(signaling)”某些信息,诸如语法元素。术语“发信号通知”一般可以指语法元素的值和/或用于对编码的视频数据进行解码的其它数据的通信。即,视频编码器200可以发信号通知比特流中的语法元素的值。一般而言,发信号通知是指在比特流中生成值。如上所述,源设备102可以基本实时地或不实时地(诸如可能在将语法元素存储到存储设备112时发生的,以供稍后由目的地设备116取得)将比特流传送到目的地设备116。
图2A和2B是图示示例四叉树二叉树(QTBT)结构130和对应的编码树单元(CTU)132的概念图。实线表示四叉树拆分,而点线表示二叉树拆分。在二叉树的每个拆分(即,非叶)节点中,发信号通知一个标志(flag)以指示使用哪种拆分类型(即,水平或垂直),其中,在这个示例中0指示水平拆分,而1指示垂直拆分。对于四叉树拆分,由于四叉树节点将块水平和垂直地拆分为尺寸相等的4个子块,因此无需指示拆分类型。因而,视频编码器200可以对用于QTBT结构130的区域树等级的语法元素(诸如拆分信息)(即,实线)和用于QTBT结构130的预测树等级的语法元素(诸如拆分信息)(即,虚线)进行编码,并且视频解码器300可以对这些语法元素进行解码。视频编码器200可以针对由QTBT结构130的终端叶节点表示的CU对视频数据(诸如预测和变换数据)进行编码,并且视频解码器300可以对这些视频数据进行解码。
一般而言,图2B的CTU 132可以与定义与在第一和第二等级处的QTBT结构130的节点对应的块的尺寸的参数相关联。这些参数可以包括CTU尺寸(表示样本中的CTU 132的尺寸)、最小四叉树尺寸(MinQTSize,表示允许的最小四叉树叶节点尺寸)、最大二叉树尺寸(MaxBTSize,表示允许的最大二叉树根节点尺寸)、最大二叉树深度(MaxBTDepth,表示允许的最大二叉树深度)和最小二叉树尺寸(MinBTSize,表示允许的最小二叉树叶节点尺寸)。
图3是图示可以执行本公开的技术的示例视频编码器200的框图。提供图3是为了解释的目的,并且不应当被认为是对本公开中广泛例示和描述的技术的限制。为了解释的目的,本公开在诸如HEVC视频编码标准和开发中的H.266视频编码标准之类的视频编码标准的上下文中描述视频编码器200。但是,本公开的技术不限于这些视频编码标准,并且一般可应用于视频编码和解码。如将在下面更详细解释的,视频编码器200可以被配置为使用本公开的技术来执行DRA操作。再次,在一些示例中,视频预处理器可以执行示例操作以向视频编码器200进行输出。
在图3的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、解码图片缓冲区(DPB)218和熵编码单元228。
视频数据存储器230可以存储要由视频编码器200的组件编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。DPB218可以充当参考图片存储器,其存储参考视频数据,以供视频编码器200在预测后续的视频数据时使用。视频数据存储器230和DPB 218可以由多种存储器设备中的任何一种形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)或其它类型的存储器设备。视频数据存储器230和DPB 218可以由相同的存储器设备或分离的存储器设备提供。在各种示例中,视频数据存储器230可以与视频编码器200的其它组件一起在芯片上,如图所示,或者相对于那些组件在芯片外。
在本公开中,对视频数据存储器230的引用不应当被解释为限于在视频编码器200内部的存储器,除非如此专门地进行描述,或者限于在视频编码器200外部的存储器,除非如此专门地进行描述。而是,对视频数据存储器230的引用应当被理解为对存储视频编码器200接收到的用于编码的视频数据(例如,要编码的当前块的视频数据)的存储器的引用。图1的存储器106还可以提供来自视频编码器200的各个单元的输出的临时存储。
图示图3的各个单元以帮助理解由视频编码器200执行的操作。这些单元可以被实现为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能并针对可以执行的操作被预设的电路。可编程电路是指可以被编程以执行各种任务并在可以执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以由软件或固件的指令定义的方式进行操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作类型一般是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。
视频编码器200可以包括由可编程电路形成的算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或可编程核心。在使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收并执行的软件的目标代码,或者视频编码器200内的另一个存储器(未示出)可以存储此类指令。
视频数据存储器230被配置为存储接收到的视频数据。视频编码器200可以从视频数据存储器230取得视频数据的图片,并且将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是要被编码的原始视频数据。
模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括附加的功能单元,以根据其它预测模式来执行视频预测。作为示例,模式选择单元202可以包括调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(LM)单元等。
模式选择单元202一般协调多个编码遍次(pass),以测试编码参数的组合以及针对此类组合导致的速率失真值。编码参数可以包括CTU到CU的分割、用于CU的预测模式、用于CU的残差数据的变换类型、用于CU的残差数据的量化参数等等。模式选择单元202可以最终选择具有比其它经测试的组合更好的速率失真值的编码参数的组合。
视频编码器200可以将从视频数据存储器230取得的图片分割为一系列CTU,并将一个或多个CTU封装在条带内。模式选择单元202可以根据树结构(诸如上述HEVC的QTBT结构或四叉树结构)来分割图片的CTU。如上所述,视频编码器200可以通过根据树结构分割CTU来形成一个或多个CU。这种CU一般也可以被称为“视频块”或“块”。
一般而言,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以生成当前块(例如,当前CU,或在HEVC中,PU和TU的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可以执行运动搜索,以在一个或多个参考图片(例如,存储在DPB 218中的一个或多个先前编码的图片)中识别一个或多个紧密匹配的参考块。特别地,运动估计单元222可以例如根据绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)等来计算代表潜在的参考块与当前块有多相似的值。运动估计单元222一般可以使用当前块与正被考虑的参考块之间的逐样本差异来执行这些计算。运动估计单元222可以识别具有由这些计算产生的最小值的参考块,其指示与当前块最紧密匹配的参考块。
运动估计单元222可以形成一个或多个运动向量(MV),其定义参考图片中的参考块相对于当前图片中的当前块的位置。运动估计单元222然后可以将运动向量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动向量,而对于双向帧间预测,运动估计单元222可以提供两个运动向量。运动补偿单元224然后可以使用运动向量来生成预测块。例如,运动补偿单元224可以使用运动向量来取得参考块的数据。作为另一个示例,如果运动向量具有小数样本精度,那么运动补偿单元224可以根据一个或多个插值滤波器来插值预测块的值。此外,对于双向帧间预测,运动补偿单元224可以取得通过相应的运动向量识别出的两个参考块的数据,并组合取得的数据,例如通过逐样本求平均或加权求平均。
作为另一个示例,对于帧内预测或帧内预测编码,帧内预测单元226可以根据与当前块相邻的样本来生成预测块。例如,对于方向模式,帧内预测单元226一般可以在数学上组合相邻样本的值,并跨当前块在既定的方向上填充这些计算出的值,以产生预测块。作为另一个示例,对于DC模式,帧内预测单元226可以计算到当前块的相邻样本的平均值,并且生成预测块以包括针对预测块的每个样本的这个所得的平均值。
模式选择单元202将预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始的、未编码版本,并从模式选择单元202接收预测块。残差生成单元204计算当前块与预测块之间的逐样本差异。所得的逐样本差异定义了针对当前块的残差块。在一些示例中,残差生成单元204还可以确定残差块中的样本值之间的差异,以使用残差差分脉冲编码调制(RDPCM)来生成残差块。在一些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。
在模式选择单元202将CU分割为PU的示例中,每个PU可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种尺寸的PU。如上面所指示的,CU的尺寸可以指CU的亮度编码块的尺寸,并且PU的尺寸可以指PU的亮度预测单元的尺寸。假设特定CU的尺寸为2Nx2N,那么视频编码器200可以支持用于帧内预测的2Nx2N或NxN的PU尺寸,以及用于帧间预测的2Nx2N、2NxN、Nx2N、NxN或类似的对称PU尺寸。视频编码器200和视频解码器300还可以支持用于帧间预测的2NxnU、2NxnD、nLx2N和nRx2N的PU尺寸的非对称分割。
在模式选择单元不将CU进一步分割成PU的示例中,每个CU可以与亮度编码块和对应的色度编码块相关联。如上所述,CU的尺寸可以指CU的亮度编码块的尺寸。视频编码器200和视频解码器300可以支持2Nx2N、2NxN或Nx2N的CU尺寸。
对于其它视频编码技术(诸如块内复制模式编码、仿射模式编码和线性模型(LM)模式编码,作为少数示例),模式选择单元202经由与编码技术相关联的相应单元,针对正被编码的当前块生成预测块。在一些示例中,诸如调色板模式编码,模式选择单元202可以不生成预测块,而是替代地生成语法元素,该语法元素指示基于所选择的调色板重构块的方式。在这样的模式中,模式选择单元202可以将这些语法元素提供给熵编码单元228以便对其进行编码。
如上所述,残差生成单元204接收当前块和对应的预测块的视频数据。残差生成单元204然后针对当前块生成残差块。为了生成残差块,残差生成单元204计算预测块与当前块之间的逐样本差异。
变换处理单元206将一个或多个变换应用于残差块以生成变换系数的块(在本文中称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(DCT)、方向变换、Karhunen-Loeve变换(KLT)或概念上相似的变换应用于残差块。在一些示例中,变换处理单元206可以执行对残差块的多个变换,例如,初级变换和次级变换(诸如旋转变换)。在一些示例中,变换处理单元206不将变换应用于残差块。
量化单元208可以量化变换系数块中的变换系数,以产生经量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(QP)值来对变换系数块的变换系数进行量化。视频编码器200(例如,经由模式选择单元202)可以通过调整与CU相关联的QP值来调整应用于与当前块相关联的系数块的量化程度。量化会引入信息的损失,因此,经量化的变换系数的精度可能比由变换处理单元206产生的原始变换系数的精度低。
逆量化单元210和逆变换处理单元212可以分别对经量化的变换系数块应用逆量化和逆变换,以从变换系数块重构残差块。重构单元214可以基于重构的残差块和由模式选择单元202生成的预测块来产生与当前块对应的重构的块(虽然可能具有某种程度的失真)。例如,重构单元214可以将重构的残差块的样本添加到来自通过模式选择单元202生成的预测块的对应样本,以产生重构的块。
滤波器单元216可以对重构的块执行一个或多个滤波操作。例如,滤波器单元216可以执行解块操作以减少沿着CU的边缘的块状伪影。在一些示例中,可以跳过滤波器单元216的操作。
视频编码器200将重构的块存储在DPB 218中。例如,在不需要滤波器单元216的操作的示例中,重构单元214可以将重构的块存储到DPB 218。在需要滤波器单元216的操作的示例中,滤波器单元216可以将经滤波的重构的块存储到DPB 218。运动估计单元222和运动补偿单元224可以从DPB 218取得由重构的(并且可能经滤波的)块形成的参考图片,以对随后编码的图片的块进行帧间预测。此外,帧内预测单元226可以使用当前图片的DPB 218中的重构的块来对当前图片中的其它块进行帧内预测。
一般而言,熵编码单元228可以对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元228可以对来自量化单元208的经量化的变换系数块进行熵编码。作为另一个示例,熵编码单元228可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内信息)进行熵编码。熵编码单元228可以对作为视频数据的另一个示例的语法元素执行一个或多个熵编码操作,以生成熵编码的数据。例如,熵编码单元228可以对数据执行上下文自适应可变长度编码(CAVLC)操作、CABAC操作、可变至可变(V2V)长度编码操作、基于语法的上下文自适应二进制算术编码(SBAC)操作、概率区间分割熵(PIPE)编码操作、指数哥伦布编码操作或另一类型的熵编码操作。在一些示例中,熵编码单元228可以在语法元素未被熵编码的跳过(bypass)模式下操作。
关于块描述了上述操作。这样的描述应当被理解为用于亮度编码块和/或色度编码块的操作。如上所述,在一些示例中,亮度编码块和色度编码块是CU的亮度和色度分量。在一些示例中,亮度编码块和色度编码块是PU的亮度和色度分量。
在一些示例中,不需要针对色度编码块来重复关于亮度编码块执行的操作。作为一个示例,不需要针对识别用于色度块的MV和参考图片来重复识别用于亮度编码块的运动向量(MV)和参考图片的操作。而是,可以缩放用于亮度编码块的MV以确定用于色度块的MV,并且参考图片可以是相同的。作为另一个示例,对于亮度编码块和色度编码块,帧内预测处理可以是相同的。
视频编码器200表示被配置为对视频数据进行编码的设备的示例,该设备包括被配置为存储视频数据的存储器以及在电路中实现并被配置为执行本公开中描述的示例技术的一个或多个处理单元。
例如,视频编码器200包括耦合到DPB 218的图片碰撞单元220。图片碰撞单元220可以被配置为对存储在DPB 218中的DRA域中的图片执行逆DRA。在一些示例中,图片碰撞单元220可以被配置为对逆DRA的结果执行裁剪操作,或者在执行逆DRA之前执行裁剪操作(例如,在这两种情况下,裁剪操作都与逆DRA连续)。图片碰撞单元220对于视频编码器200可以是可选的。例如,视频编码器200可以不被配置为执行本公开中描述的逆DRA技术或裁剪技术。但是,视频编码器200可以被配置为生成视频解码器300执行逆DRA和裁剪操作所需的信息。
图4是图示可以执行本公开的技术的示例视频解码器300的框图。提供图4是为了解释的目的并且不限制本公开中广泛例示和描述的技术。如将在下面更详细解释的,视频解码器300可以被配置为使用本公开的技术来执行DRA操作。再次,在一些示例中,视频后处理器可以基于从视频解码器300接收到的视频数据来执行示例操作。视频后处理器和视频解码器300,或两者的组合,是被配置为执行本公开中描述的一种或多种示例技术的处理电路(例如,固定功能的、可编程的,或固定功能与可编程的组合)的示例。
出于解释的目的,本公开描述了根据JEM和HEVC的技术描述的视频解码器300。但是,本公开的技术可以由被配置为其它视频编码标准的视频编码设备来执行。
在图4的示例中,视频解码器300包括编码图片缓冲区存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和解码图片缓冲区(DPB)314。预测处理单元304包括运动补偿单元322和帧内预测单元318。预测处理单元304可以包括附加的单元,以根据其它预测模式来执行预测。作为示例,预测处理单元304可以包括调色板单元、块内复制单元(其可以形成运动补偿单元322的一部分)、仿射单元、线性模型(LM)单元等。在其它示例中,视频解码器300可以包括更多、更少或不同的功能组件。
CPB存储器320可以存储要由视频解码器300的组件解码的视频数据,诸如编码的视频比特流。可以例如从计算机可读介质110(图1)获得存储在CPB存储器320中的视频数据。CPB存储器320可以包括CPB,该CPB存储来自编码的视频比特流的编码的视频数据(例如,语法元素)。此外,CPB存储器320可以存储除编码的图片的语法元素以外的视频数据(诸如表示来自视频解码器300的各个单元的输出的临时数据)。DPB 314一般存储解码的图片,当对编码的视频比特流的后续数据或图片进行解码时,视频解码器300可以输出该解码的图片和/或将其用作参考视频数据。CPB存储器320和DPB 314可以由各种存储器设备中的任何一种来形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)、或其它类型的存储器设备。可以由相同的存储器设备或分离的存储器设备提供CPB存储器320和DPB 314。在各种示例中,CPB存储器320可以与视频解码器300的其它组件一起在芯片上,或者相对于那些组件在芯片外。
附加地或可替代地,在一些示例中,视频解码器300可以从存储器120(图1)取得编码的视频数据。即,存储器120可以如上面关于CPB存储器320所讨论的那样存储数据。同样,当视频解码器300的一些或全部功能在软件中实现以便由视频解码器300的处理电路执行时,存储器120可以存储要由视频解码器300执行的指令。
图示了图4中所示的各种单元,以帮助理解由视频解码器300执行的操作。这些单元可以被实现为固定功能电路、可编程电路或其组合。与图3相似,固定功能电路是指提供特定功能并针对可以执行的操作被预设的电路。可编程电路是指可以被编程以执行各种任务并在可以执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以由软件或固件的指令所定义的方式进行操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型一般是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。
视频解码器300可以包括ALU、EFU、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在通过在可编程电路上执行的软件来执行视频解码器300的操作的示例中,片上或片外存储器可以存储视频解码器300接收并执行的软件的指令(例如,目标代码)。
熵解码单元302可以从CPB接收编码的视频数据并且对视频数据进行熵解码以再现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流中提取出的语法元素来生成解码的视频数据。
一般而言,视频解码器300在逐块的基础上重构图片。视频解码器300可以单独地对每个块执行重构操作(其中当前正在被重构(即,被解码)的块可以被称为“当前块”)。
熵解码单元302可以对定义经量化的变换系数块的经量化的变换系数以及诸如量化参数(QP)和/或(一个或多个)变换模式指示之类的变换信息进行熵解码。逆量化单元306可以使用与经量化的变换系数块相关联的QP来确定量化的程度,并且同样,确定逆量化单元306要应用的逆量化的程度。逆量化单元306可以例如执行按位(bitwise)左移操作以对经量化的变换系数进行逆量化。逆量化单元306可以由此形成包括变换系数的变换系数块。
在逆量化单元306形成变换系数块之后,逆变换处理单元308可以将一个或多个逆变换应用于变换系数块以生成与当前块相关联的残差块。例如,逆变换处理单元308可以将逆DCT、逆整数变换、逆Karhunen-Loeve变换(KLT)、逆旋转变换、逆方向变换或其他逆变换应用于系数块。
此外,预测处理单元304根据由熵解码单元302熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,那么运动补偿单元322可以生成预测块。在这种情况下,预测信息语法元素可以指示从中取得参考块的DPB 314中的参考图片,以及标识参考图片中的参考块相对于当前图片中的当前块的位置的运动向量。运动补偿单元322一般可以以与关于运动补偿单元224(图3)所描述的方式基本相似的方式来执行帧间预测处理。
作为另一个示例,如果预测信息语法元素指示当前块是帧内预测的,那么帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。再次,帧内预测单元318一般可以以与关于帧内预测单元226(图3)所描述的方式基本相似的方式来执行帧内预测处理。帧内预测单元318可以从DPB 314取得到当前块的相邻样本的数据。
重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样本添加到预测块的对应样本以重构当前块。
滤波器单元312可以对重构的块执行一个或多个滤波操作。例如,滤波器单元312可以执行解块操作以减少沿着重构的块的边缘的块状伪影。不必在所有示例中都执行滤波器单元312的操作。
视频解码器300可以将重构的块存储在DPB 314中。如上面所讨论的,DPB 314可以向预测处理单元304提供参考信息,诸如用于帧内预测的当前图片和用于后续运动补偿的先前解码的图片的样本。而且,视频解码器300可以从DPB输出解码的图片,以用于随后在显示设备(诸如图1的显示设备118)上呈现。
如图所示,视频解码器300包括图片碰撞单元316。当要从DPB 314输出图片时,该图片经历撞击处理。图片碰撞单元316可以被配置为执行碰撞处理。例如,碰撞处理(也称为输出图片的处理)可以包括将逆DRA(以及,在一些示例中,裁剪处理)应用于正在输出的图片。碰撞处理包括输出图片,以及在一些示例中,当针对帧间预测不再需要该图片时,随后从DPB 314移除该图片。
在一些示例中,图片碰撞单元316可以被配置为基于定时参数从DPB 314输出图片。例如,视频编码器200可以发信号通知DbpOutputTime[]参数,或者视频解码器300可以确定DbpOutputTime[]参数。DbpOutputTime[]参数是定时参数的示例。定时参数指示何时预期从DPB 314输出图片。图片碰撞单元316可以被配置为基于定时参数从DPB 314输出图片。
图片碰撞单元316可以被配置为将逆DRA应用于图片并应用裁剪处理(例如,连续地应用逆DRA和裁剪处理)。在一些示例中,为了连续应用逆DRA和裁剪处理,图片碰撞单元316可以应用逆DRA,然后应用裁剪处理。在一些示例中,为了连续应用逆DRA和裁剪处理,图片碰撞单元316可以应用裁剪处理,然后应用逆DRA。下面更详细地描述执行逆DRA和裁剪处理的示例方式。
如上所述,视频编码器200可以在DRA域中对视频数据(例如,图片)进行编码,其中(例如,由视频预处理器)对原始域中的图片进行动态范围调整以生成更适于压缩的DRA域中的图片。因此,作为重构视频数据(例如,图片)的一部分,视频解码器300重构DRA域中的图片并将映射域中的图片存储在DPB 314中。
根据本公开中描述的一种或多种示例技术,预测处理单元304(或可能地,某个其它单元)可以被配置为确定要从DPB 314输出存储在DPB 314中的DRA域(例如,映射域)中的图片。在确定要输出DRA域中的图片之后,图片碰撞单元316可以执行输出DRA域中的图片的处理。在从DPB输出DRA域中的图片的处理中,图片碰撞单元316可以将逆DRA应用于图片,并且在应用逆DRA之后,图片碰撞单元316可以将一致性裁剪窗口应用于图片以执行裁剪操作。
以这种方式,视频解码器300表示视频解码设备的示例,该视频解码设备包括被配置为存储视频数据的存储器以及在电路中实现并被配置为执行本公开中描述的示例DRA操作的一个或多个处理单元。
下一代视频应用有望对表示具有HDR和WCG的捕获的场景的视频数据进行操作。所利用的动态范围和色域的参数是视频内容的两种独立属性,并且其用于数字电视和多媒体服务的规范由若干国际标准定义。例如,ITU-R Rec.BT.709,“Parameter values for theHDTV standards for production and international programme exchange”,以及ITU-RRec.BT.2020,“Parameter values for ultra-high definition television systemsfor production and international programme exchange”分别定义了用于HDTV(高清晰度电视)和UHDTV(超高清晰度电视)的参数,诸如标准动态范围(SDR)和扩展到标准色域之外的基色。Rec.BT.2100,“Image parameter values for high dynamic rangetelevision for use in production and international programme exchange”定义了用于HDR电视使用的转换函数和表示,包括支持宽色域表示的基色。还存在指定其它系统中的动态范围和色域属性的其它标准开发组织(SDO)文档,例如,在SMPTE-231-2(电影电视工程师协会)中定义了DCI-P3色域并且在SMPTE-2084中定义了HDR的一些参数。下面简要介绍视频数据的动态范围和色域。
动态范围通常被定义为视频信号的最大与最小亮度(brightness)(例如,亮度(luminance))之比。动态范围也可以用“f光圈值(f-stop)”来测量,其中一个f光圈值与信号的动态范围的两倍对应。按照MPEG的定义,以具有超过16个f光圈值的亮度变化为特征的内容被称为HDR内容。在一些术语中,介于10到16个f光圈值之间的等级被视为中间动态范围,但在其它定义中被视为HDR。在本公开的一些示例中,HDR视频内容可以是具有比传统使用的具有标准动态范围的视频内容(例如,如ITU-R Rec.BT.709指定的视频内容)更高的动态范围的任何视频内容。
人类视觉系统(HVS)能够感知比SDR内容和HDR内容大得多的动态范围。但是,HVS包括自适应机制,以将HVS的动态范围缩小到所谓的同时的范围。同时的范围的宽度可以取决于当前的照明条件(例如,当前的亮度)。在图5中示出了由HDTV的SDR、UHDTV的预期HDR提供的动态范围和HVS动态范围的可视化,但是确切范围可以因每个个体和显示而有所不同。
当前的视频应用和服务由ITU Rec.709规定并提供SDR,通常支持约为每平方米(m2)0.1到100坎德拉(cd)(常常称为“尼特(nit)”)的亮度(brightness)(例如,亮度(luminance))范围,从而导致少于10个f光圈值。一些示例下一代视频服务有望提供高达16个f光圈值的动态范围。虽然目前正在开发有关此类内容的详细规范,但已在SMPTE-2084和ITU-R Rec.2020中指定了一些初始参数。
除了HDR外,用于更逼真的视频体验的另一方面是颜色维度。颜色维度通常由色域定义。图6是概念图,其示出了SDR色域(基于BT.709基色的三角形400)和用于UHDTV的更宽的色域(基于BT.2020基色的三角形402)。图6还描绘了所谓的光谱轨迹(由舌形区域404界定),表示自然色的极限。如图6所示,从BT.709(三角形400)到BT.2020(三角形402)基色移动旨在为UHDTV服务提供大约70%以上的颜色。D65指定用于BT.709和/或BT.2020规范的示例白色。
表1中示出了用于DCI-P3、BT.709和BT.2020颜色空间的色域规范的示例。
表1-色域参数
Figure BDA0002727913750000291
如表1中可以看到的,色域可以由白点的X和Y值以及由基色(例如,红色(R)、绿色(G)和蓝色(B))的x和y值定义。x和y值表示从颜色的色度(X和Z)和亮度(Y)得出的归一化的值,如由CIE 1931颜色空间定义的。CIE 1931颜色空间定义了纯色(例如,在波长方面)与人眼如何感知这样的颜色之间的联系。
HDR/WCG视频数据通常用4:4:4色度格式和非常宽的颜色空间(例如,CIE XYZ)以每个分量非常高的精度(甚至是浮点)被获取和存储。这种表示以高精度为目标,并且在数学上几乎无损。但是,这种用于存储HDR/WCG视频数据的格式可能包括很多冗余,并且对于压缩目的而言可能不是最优的。具有基于HVS的假设的较低精度格式可以被用于最新的视频应用。
用于压缩目的的视频数据格式转换处理的一个示例包括三个主要处理,如图7中所示。
1.用于动态范围压缩的非线性转换函数(TF)
2.到更紧凑或更稳健的颜色空间的颜色转换
3.浮点到整数表示的转换(量化)
图7的技术可以由源设备102执行。线性RGB数据410可以是HDR/WCG视频数据并且可以以浮点表示被存储。可以使用用于动态范围压缩的非线性转换函数(TF)412来压缩线性RGB数据410。转换函数412可以使用任何数量的非线性转换函数(例如,如SMPTE-2084中定义的PQ(感知量化器)TF)来压缩线性RGB数据410。在一些示例中,颜色转换处理414将压缩后的数据转换到更紧凑或更稳健的颜色空间(例如,YUV或YCrCb颜色空间),该颜色空间更适于由混合视频编码器(例如,视频编码器200)进行压缩。然后,使用浮点到整数表示的量化单元416对该数据进行量化,以产生经转换的HDR’数据418(例如,映射域数据或DRA域中的数据)。在这个示例中,HDR’数据418以整数表示。现在,HDR’数据418的格式更适于由混合视频编码器(例如,应用其它混合视频编码技术的HEVC的视频编码器200)进行压缩。图7中所描绘的处理的次序仅作为示例给出,并且在其它应用中可以变化。例如,颜色转换可以在TF处理之前进行。此外,附加处理(例如空间子采样)可以被应用于颜色分量。
在图8中描绘了解码器侧的逆转换。图8的技术可以由目的地设备116执行。可以通过使用混合视频解码器(例如,通过应用HEVC或其它混合视频编码技术的视频解码器300)对视频数据进行解码,以在目的地设备116处获得经转换的HDR’数据420。然后可以由逆量化单元422对HDR’数据420进行逆量化。然后,可以将逆颜色转换处理424应用于经逆量化的HDR’数据。逆颜色转换处理424可以是颜色转换处理414的逆。例如,逆颜色转换处理424可以将HDR’数据从YCrCb格式转换回RGB格式。接下来,可以将逆转换函数426应用于数据以添加回由转换函数412压缩的动态范围,从而重新创建线性RGB数据428。在一些示例中,执行逆转换的示例操作可以由视频解码器300执行和/或作为视频解码器300的一部分,诸如由碰撞单元316执行和/或作为碰撞单元316的一部分。
现在将更详细地讨论图7中描绘的技术。一般而言,将转换函数应用于数据(例如,HDR/WCG视频数据)以压缩数据的动态范围,使得在亮度值的范围内由量化引起的误差在感知上是(近似)均匀的。这种压缩允许用更少的比特来表示数据。在一个示例中,转换函数可以是一维(1D)非线性函数,并且可以反映终端用户显示器的电-光转换函数(EOTF)的逆,例如,如在Rec.709中为SDR指定的那样。在另一个示例中,转换函数可以使HVS感知近似于亮度改变,例如,在用于HDR的SMPTE-2084(ST2084)中指定的PQ转换函数。OETF的逆处理是EOTF(电-光转换函数),它将编码等级映射回亮度。图9示出了用作EOTF的非线性转换函数的几个示例。转换函数也可以被分别应用于每个R、G和B分量。
ST2084的规范如下定义了EOTF应用。TF应用于归一化的线性R、G、B值,这导致R’G’B’的非线性表示。ST2084通过NORM=10000定义归一化,这与10000尼特(cd/m2)的峰值亮度相关联。
οR’=PQ_TF(max(0,min(R/NORM,1)))
οG’=PQ_TF(max(0,min(G/NORM,1)))
οB’=PQ_TF(max(0,min(B/NORM,1)))
其中
Figure BDA0002727913750000311
Figure BDA0002727913750000312
Figure BDA0002727913750000313
Figure BDA0002727913750000314
Figure BDA0002727913750000315
Figure BDA0002727913750000316
通过在范围0..1内被归一化的输入值(线性颜色值)和被归一化的输出值(非线性颜色值),在图10中将PQ EOTF可视化。如从曲线可以看出的,输入信号的动态范围的1%(低亮度)转换成输出信号的动态范围的50%。
通常,将EOTF定义为具有浮点准确性的函数,因此,如果应用逆TF(所谓的OETF),那么不会对具有这种非线性的信号引入误差。在ST2084中指定的逆TF(OETF)被定义为逆PQ函数:
οR=10000*inversePQ_TF(R’)
οG=10000*inversePQ_TF(G’) (2)
οB=10000*inversePQ_TF(B’)
其中
Figure BDA0002727913750000321
Figure BDA0002727913750000322
Figure BDA0002727913750000323
Figure BDA0002727913750000324
Figure BDA0002727913750000325
Figure BDA0002727913750000326
具有浮点准确性的EOTF和OETF的连续应用提供了完美的重构而不会发生错误。但是,这种表示对于流式传输或广播服务不是最优的。以下各节描述具有非线性R’G’B’数据的固定比特准确性的更紧凑表示。
EOTF和OETF当前可能是非常活跃的研究主题,并且在一些HDR视频编码系统中使用的TF可以不同于ST2084。
在本公开的上下文中,术语“信号值”或“颜色值”可以被用于描述与图像元素的特定颜色分量(诸如R、G、B,或Y)的值对应的亮度等级。信号值通常代表线性光等级(亮度值)。术语“编码等级”或“数字编码值”可以指图像信号值的数字表示。通常,这种数字表示代表非线性信号值。EOTF表示提供给显示设备(例如,显示设备118)的非线性信号值与由显示设备产生的线性颜色值之间的关系。
RGB数据通常被用作输入颜色空间,因为RGB是通常由图像捕获传感器产生的数据的类型。但是,RGB颜色空间在其分量之间具有高冗余度,因此对于紧凑表示而言并不是最优的。为了获得更紧凑和更稳健的表示,通常将RGB分量转换(例如,执行颜色变换)为更适于压缩的更不相关的颜色空间,例如YCbCr。YCbCr颜色空间将亮度(Y)形式的亮度和颜色信息(CrCb)分离为不同的、相关性较小的分量。在这种上下文中,稳健的表示可以是指当以受约束的比特率压缩时具有更高等级的错误恢复能力的颜色空间。
对于现代视频编码系统,通常使用的颜色空间是YCbCr,如在ITU-R BT.709或ITU-R BT.709中指定的。BT.709标准中的YCbCr颜色空间指定了从R’G’B’到Y’CbCr(非恒定亮度表示)的以下转换处理:
οY’=0.2126*R’+0.7152*G’+0.0722*B’
ο
Figure BDA0002727913750000331
ο
Figure BDA0002727913750000332
以上也可以使用以下近似转换来实现,该近似转换避免了用于Cb和Cr分量的除法:
οY’=0.212600*R’+0.715200*G’+0.072200*B’
οCb=-0.114572*R’-0.385428*G’+0.500000*B’ (4)
οCr=0.500000*R’-0.454153*G’-0.045847*B’
ITU-R BT.2020标准指定了从R’G’B’到Y’CbCr(非恒定亮度表示)的以下转换处理:
οY’=0.2627*R’+0.6780*G’+0.0593*B’
ο
Figure BDA0002727913750000333
ο
Figure BDA0002727913750000334
以上操作也可以使用以下近似转换来实现,该近似转换避免了用于Cb和Cr分量的除法:
οY’=0.262700*R’+0.678000*G’+0.059300*B’
οCb=-0.139630*R’-0.360370*G’+0.500000*B’ (6)
οCr=0.500000*R’-0.459786*G’-0.040214*B’
应该注意的是,两个颜色空间均保持归一化,因此,对于在0...1范围内被归一化的输入值,所得的值将被映射到0..1范围。一般而言,以浮点准确性实现的颜色变换提供完美的重构,因此这个处理是无损的。
上述处理阶段通常以浮点准确性表示来实现,因此它们可以被认为是无损的。但是,对于大多数消费电子应用而言,这种类型的准确性可能被认为是冗余且昂贵的。对于此类服务,目标颜色空间中的输入数据被转换成目标比特深度定点准确性。某些研究表明,与PQ TF结合的10-12比特的准确性足以提供16个f光圈值的HDR数据,其中失真低于最小可觉差异(Just-Noticeable Difference)(例如,失真需要改变以便可被察觉的量)。以10比特的准确性表示的数据可以用大多数最新的视频编码解决方案进行进一步编码。这种转换处理包括信号量化并且是有损编码的元素,并且是引入经转换的数据的不准确性的根源。
下面示出在目标颜色空间(在这个示例中为YCbCr)中应用于码字的这种量化的示例。将以浮点准确性表示的输入值YCbCr转换成用于Y值的固定比特深度BitDepthY和用于色度值(Cb,Cr)的固定比特深度BitDepthC。
οDY′=Clip1Y(Round((1<<(BitDepthY-8))*(219*Y′+16)))
οDCb=Clip1C(Round((1<<(BitDepthC-8))*(224*Cb+128))) (7)
οDCr=Clip1C(Round((1<<(BitDepthC-8))*(224*Cr+128)))
其中
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
Sign(x)=-1如果x<0,0如果x=0,1如果x>0
Floor(x)小于或等于x的最大整数
Abs(x)=x如果x>=0,-x如果x<0
Clip1Y(x)=Clip3(0,(1<<BitDepthY)-1,x)
Clip1C(x)=Clip3(0,(1<<BitDepthC)-1,x)
Clip3(x,y,z)=x如果z<x,y如果z>y,z其它情况
D.Rusanovskyy、A.K.Ramasubramonian、D.Bugdayci、S.Lee、J.Sole、M.Karczewicz在VCEG文档COM16-C 1027-E,2015年9月的“Dynamic Range Adjustment SEIto enable High Dynamic Range video coding with Backward-CompatibleCapability”中提出了动态范围调整(DRA)处理。作者建议将DRA实施为分段线性函数f(x),该线性函数f(x)针对输入值x的一组非重叠动态范围分割(范围){Ri}定义,i是范围0到N-1(含0和N-1)的范围的索引,并且其中N是用于定义DRA函数的范围{Ri}的总数。假设DRA的范围由属于范围Ri的最小值和最大值x定义,例如[xi,xi+1-1],其中xi和xi+1分别表示范围Ri和Ri+1的最小值。将DRA函数Sy应用于视频的Y颜色分量(亮度)时,通过缩放Sy,i和偏移Oy,i来定义该DRA函数Sy,这被应用于每个x∈[xi,xi+1-1],因此Sy={Sy,i,Oy,i}。
这样,对于任何Ri和每个x∈[xi,xi+1-1],输出值X如下计算:
X=Sy,i*(x-Oy,i) (8)
对于在解码器处进行的用于亮度分量Y的DRA逆映射处理,DRA函数Sy由缩放Sy,i和偏移Oy,i的值的逆进行定义,这被应用于每个X∈[Xi,Xi+1-1]。这样,对于任何Ri和每个X∈[Xi,Xi+1-1],重构的值x如下计算:
x=X/Sy,i+Oy,i (9)
用于色度分量Cb和Cr的前向DRA映射处理定义如下。用表示属于范围Ri的Cb颜色分量的样本的项“u”给出了示例,u∈[ui,ui+1-1],因此Su={Su,i,Ou,i}:
U=Su,i*(u-Oy,i)+Offset (10)
其中Offset等于2(bitdepth-1)表示双极Cb、Cr信号偏移。
在解码器处针对色度分量Cb和Cr进行的DRA逆映射处理如下定义。用表示属于范围Ri的重映射的Cb颜色分量的样本的U项给出了示例,U∈[Ui,Ui+1-1]:
u=(U-Offset)/Su,i+Oy,i (11)
其中Offset等于2(bitdepth-1)表示双极Cb、Cr信号偏移。
亮度驱动的色度缩放(LCS)在A.K.Ramasubramonian、J.Sole、D.Rusanovskyy、D.Bugdayci、M.Karczewicz的JCTVC-W0101,“HDR CE2:Report on CE2.a-1LCS”中提出。在本论文中,提出了一种通过利用与经处理的色度样本相关联的亮度信息来调整色度信息(例如,Cb和Cr)的方法。类似地,对于VCEG文档COM16-C 1027-E,JCTVC-W010的DRA方法,提出了将用于Cb的缩放因子Su和用于Cr的缩放因子Sv,i应用于色度样本。但是,代替如等式(3)和(4)中那样针对由色度值u或v可访问的范围集合{Ri}将DRA函数定义为分段线性函数Su={Su,i,Ou,i},提出了利用亮度值Y的LCS方法,以推导出用于色度样本的缩放因子。这样,色度样本u(或v)的前向LCS映射按以下方式进行:
U=Su,i(Y)*(u-Offset)+Offset (12)
在解码器侧进行的逆LCS处理定义如下:
u=(U-Offset)/Su,i(Y)+Offset (13)
更详细地,对于位于(x,y)的给定像素,色度样本Cb(x,y)或Cr(x,y)用从通过其亮度值Y'(x,y)访问的其LCS函数SCb(或SCr)推导出的因子进行缩放。
在用于色度样本的前向LCS中,将Cb(或Cr)值及其相关联的亮度值Y’作为色度缩放函数SCb(或SCr)的输入,并将Cb或Cr转换成Cb’和Cr’,如等式9中所示。在解码器侧,应用逆LCS,将重构的Cb’或Cr’转换成Cb或Cr,如等式(10)中所示。
Cb′(x,y)=SCb(Y′(x,y))*Cb(x,y),
Cr′(x,y)=SCr(Y′(x,y))*Cr(x,y) (14)
Figure BDA0002727913750000361
Figure BDA0002727913750000362
图11示出了LCS函数的示例,在这个示例中的LCS函数中,使具有较小亮度值的像素的色度分量乘以较小的缩放因子。
在本公开中描述的示例中,视频样本被输入到编码器(例如,视频编码器200);可能与LCS结合的前向DRA可以在编码器(例如,视频编码器200)处应用以产生映射的样本。应用前向DRA之前的视频样本被称为在“原始域”中;映射的样本被称为在“映射/DRA”域中。
类似地,恰好在重构之后的视频样本(假设逆DRA不是重构处理的一部分)被称为在“映射/DRA”域中,并且在应用逆DRA处理之后的视频样本被称为在原始域中。
现在将讨论视频编解码器的DRA样本缩放和量化参数(QP)之间的关系。为了在编码器处调整压缩率,基于块变换的视频编码方案(诸如HEVC)利用缩放器量化器,该缩放器量化器被应用于块变换系数。
Xq=X/scalerQP
其中Xq是通过应用从QP参数推导出的缩放器(scaler)scalerQP产生的变换系数X的经量化的编码值。在大多数编解码器中,经量化的编码值将近似为整数值(例如,通过舍入)。在一些编解码器中,量化可以是不同的函数,这不仅取决于QP,而且还取决于编解码器的其它参数。
缩放器的值scalerQP由量化参数(QP)控制,QP与缩放器量化器之间的关系定义如下,其中k为已知常数:
scalerQP=k*2^(QP/6) (16)
逆函数定义应用于变换系数的缩放器量化器与HEVC的QP之间的关系,如下所示:
QP=ln(scalerQP/k)*6/ln(2); (17)
QP值的加性改变(例如deltaQP)将分别导致应用于变换系数的scalerQP值的乘法变化。DRA有效地将scaleDRA值应用于像素样本值,并且考虑到变换特性,可以将其与scalerQP值结合使用,如下所示:
Xq=T(scaleDRA*x)/scaleQP
其中Xq是由经缩放的x样本值的变换T产生并使用在变换域中应用的scaleQP进行了缩放的经量化的变换系数。因此,在像素域中应用乘法器scaleDRA会导致缩放器量化器scaleQP的有效改变,该改变被应用于变换域。这进而可以被解释为应用于当前已处理的数据块的QP参数的加性改变:
dQP=log2(scaleDRA)*6; (18)
其中dQP是由HEVC通过在输入数据上部署DRA而引入的近似QP偏移。
现在将讨论色度QP对亮度QP值的依赖性。一些最新的视频编码设计(诸如HEVC和更新的)可以利用有效地应用于处理当前编码的块Cb的亮度与色度QP值之间的预定义依赖性。可以利用这种依赖性来实现亮度与色度分量之间的最优比特率分配。
这种依赖性的示例由HEVC规范的表8-10表示,其中从用于解码亮度样本的QP值推导出应用于色度样本的解码的QP值。下面再现了基于对应的亮度样本的QP值(应用于对应的亮度样本所属的块/TU的QP值)、色度QP偏移和HEVC规范的表8-10推导出色度QP值的相关部分:
当ChromaArrayType不等于0时,以下适用:
–变量qPCb和qPCr如下被推导出:
–如果tu_residual_act_flag[xTbY][yTbY]等于0,那么以下适用:
qPiCb=Clip3(-QpBdOffsetC,57,
QpY+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb) (8-287)
qPiCr=Clip3(-QpBdOffsetC,57,
QpY+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr) (8-288)
–否则(tu_residual_act_flag[xTbY][yTbY]等于1),以下适用:
qPiCb=Clip3(-QpBdOffsetC,57,QpY+PpsActQpOffsetCb+slice_act_cb_qp_offset+
CuQpOffsetCb) (8-289)
qPiCr=Clip3(-QpBdOffsetC,57,QpY+PpsActQpOffsetCr+slice_act_cr_qp_offset+
CuQpOffsetCr) (8-290)
–如果ChromaArrayType等于1,那么基于分别等于qPiCb和qPiCr的索引qPi,将变量qPCb和qPCr设置为等于如表8-10中指定的QpC的值。
–否则,基于分别等于qPiCb和qPiCr的索引qPi,将变量qPCb和qPCr设置为等于Min(qPi,51)。
–如下推导出用于Cb和Cr分量的色度量化参数Qp'Cb和Qp'Cr
Qp′Cb=qPCb+QpBdOffsetC (8-291)
Qp′Cr=qPCr+QpBdOffsetC (8-292)
表8-10–对于等于1的ChromaArrayType,作为qPi的函数的QpC的规范
qPi <30 30 31 32 33 34 35 36 37 38 39 40 41 42 43 >43
Qp<sub>C</sub> =qPi 29 30 31 32 33 33 34 34 35 35 36 36 37 37 =qPi-6
现在将讨论用于DRA的色度缩放因子的推导。
在同时采用变换域中的统一缩放器量化和利用DRA的像素域缩放的视频编码系统中,应用于色度样本(Sx)的缩放DRA值的推导可以取决于以下内容:
-SY:相关联的亮度样本的亮度缩放值
-SCX:从内容的色域推导出的缩放,其中CX代表Cb或Cr(如果适用)
-Scorr:校正缩放项,用于考虑变换编码与DRA缩放中的不匹配,例如以补偿由HEVC的表8-10引入的依赖性
SX=fun(SY,SCX,Scorr)。
一个示例是如下定义的可分离函数:SX=f1(SY)*f2(SCX)*f3(Scorrr)
以上描述了执行DRA操作的示例方式。以下描述输出DRA域(例如,映射域)中的图片的碰撞处理。
下面描述“碰撞操作”。解码图片缓冲区(DPB)维护图片/帧的集合,其可以被用作编解码器的编码循环中的图片间预测的(一个或多个)参考。取决于编码状态,可以输出一个或多个图片以供外部应用消费或由外部应用读取。取决于编码次序、DPB尺寸或其它条件,可以将不再在编码循环中使用并且由外部应用消费的图片从DPB中移除,和/或将其替换为较新的参考图片。从DPB输出图片并可能移除图片的处理称为碰撞处理。下面引用为HEVC定义的碰撞处理的示例。下面,对PicOrderCntVal或POC值进行引用。POC值指示图片的输出次序(例如,具有较高POC值的图片比具有较小POC值的图片晚输出)。输出次序(或显示次序)不需要与编码次序相同。例如,在第二图片之前输出的第一图片可以在第二图片之后被解码。
C.5.2.4“碰撞”处理
“碰撞”处理由以下有序步骤组成:
1.将首先输出的图片选择为在DPB中被标记为“需要输出”的所有图片中具有最小PicOrderCntVal值的图片。
2.使用在活动的SPS中为该图片指定的一致性裁剪窗口对图片进行裁剪,输出裁剪后的图片,并将该图片标记为“不需要输出”。
3.当包括已裁剪并输出的图片的图片存储缓冲区包含被标记为“未用于参考”的图片时,清空图片存储缓冲区。
注意-对于属于同一CVS并通过“碰撞处理”输出的任意两个图片picA和picB,当picA早于picB输出时,picA的PicOrderCntVal值小于picB的PicOrderCntVal值。
以上,对在活动的序列参数集(SPS)中指定的“一致性裁剪窗口”进行引用。HEVC标准的第7.4.3.2.1节定义了通用序列参数集RBSP语义,并将一致性裁剪窗口的示例定义为:一致性裁剪窗口包含亮度样本,其中水平图片坐标为从SubWidthC*conf_win_left_offset到pic_width_in_luma_samples-(SubWidthC*conf_win_right_offset+1)并且垂直图片坐标为从SubHeightC*conf_win_top_offset到pic_height_in_luma_samples-(SubHeightC*conf_win_bottom_offset+1)(包括端点值)。SubWidthC*(conf_win_left_offset+conf_win_right_offset)的值应小于pic_width_in_luma_samples,而SubHeightC*(conf_win_top_offset+conf_win_bottom_offset)的值应小于pic_height_in_luma_samples。当ChromaArrayType不等于0时,两个色度阵列的对应指定样本是具有图片坐标(x/SubWidthC,y/SubHeightC)的样本,其中(x,y)是指定的亮度样本的图片坐标。在一些示例中,一致性裁剪窗口偏移参数仅应用于输出。在一些示例中,所有内部解码处理都应用于未裁剪的图片尺寸。上面为一致性裁剪窗口识别出的变量是来自HEVC标准的示例变量。在一个或多个非限制性示例中,变量的定义可以与来自HEVC标准的变量的定义相同,但是对该定义进行某种修改是可能的。
动态范围调整(DRA)可以被应用于块/图片中的视频样本,从而生成“映射域”中的样本,这是用于压缩的更高效表示。在一些示例中,在映射域(例如,DRA域)中进行视频编码,因此映射域中的图片可以被保持在DPB中,以供帧间预测进行参考。可以将逆DRA应用于DPB中的图片,然后再将其输出以将图片转换到原始域。
例如,对于帧间预测,存储在DPB 314中的图片可以在DRA域中。这是因为基于表示编码的图片的视频数据来重构存储在DPB 314中的图片。因为视频编码器200在DRA域中对图片进行编码,因此编码的图片在DRA域中。
可以存在与在视频解码器300处执行逆DRA的方式相关联的技术问题。例如,视频解码器300可以被配置为将DRA域图片转换到原始域(例如,通过应用逆DRA)。但是,在应用逆DRA时(诸如关于存储或关于使用原始域中的图片作为参考图片)可能存在某些技术问题。
在一个示例中,解码图片缓冲区(DPB)314包含在映射/DRA域中的图片,以供在编码循环中进行参考(例如,用于帧间预测)。为了输出,可以使用分离的图片缓冲区和/或DPB中的附加空间将图片存储在原始域中(逆DRA后)。在最坏的情况下,这导致解码图片缓冲区尺寸加倍(例如,DPB 314的尺寸加倍)。对于对存储器要求敏感的实施方式(例如,附加的存储器需求可以转换成芯片/半导体上的更大区域),DPB尺寸的这种增加的要求可能是昂贵的。
例如,在一些示例中,DPB 314可以有可能在DRA域中存储图片。此外,与图4中所示的示例不同,图片碰撞单元316应用逆DRA并将结果存储回DPB 314中。在这个示例中,DPB314将图片存储在DRA域中,并且还将同一个图片存储在原始域中(例如,逆DRA的结果)。这可能导致DPB 314的尺寸加倍。然后,在碰撞处理期间,视频解码器300可以输出原始域中的图片以进行进一步处理(诸如,显示该图片)和/或删除DRA域中的图片(如果其被标记为“未用于参考”的话)。例如,原始域中的图片已准备好输出以用于显示,并且DRA域中的图片可以用于帧间预测。但是,在这种情况下,存在两个具有相同的图片次序计数(POC)值的图片,这会造成碰撞处理出现问题,因为两个不同的图片由相同的POC值标识。
在一些示例中,不是将DRA域图片和原始域图片都存储在DPB 314中,而是可以有可能仅将原始域图片存储在DPB 314中。例如,与图4中所示的示例不同,逆DRA单元(未示出)可以在DPB 314之前并且对图片执行逆DRA以存储在DPB 314中。但是,这种技术可能存在技术缺陷。如上面所提到的,对于帧间预测,可能需要DRA域中的图片,而不需要原始域中的图片。但是,在这种情况下,DPB 314可能存储原始域中的图片。因此,当需要DPB 314中的图片(现在存储在原始域中)进行帧间预测时,将需要将DPB 314中的原始域图片实时转换到DRA域。
即,在一个示例中,DPB 314包含原始域中的图片,其准备好输出。为了在编码循环中对图片进行参考(例如,帧间预测),在使用样本之前应用“实时”前向DRA映射,并且在将样本写入DPB 314时应用逆DRA映射(例如,经由逆DRA单元)以作为编码的输出。在一些编码体系架构中,可以应用多个双向DRA映射操作。这样的多个操作可能导致视频解码器300的更多计算复杂度或处理能力。
本公开描述了改善动态范围调整及其与基于混合变换的视频编解码器的集成的若干示例方法,包括发信号通知。应该理解的是,这些方法中的一种或多种可以单独使用,或与其它方法结合使用。
在一个示例中,视频编码器200或视频解码器300可以与一致性裁剪窗口的应用连续,在碰撞处理或由定时参数指示的时间对图片执行逆动态范围调整(DRA)。再次,定时参数指示何时期望输出图片。作为一个示例,视频解码器300可以确定要从DPB 314输出存储在DPB 314中的DRA域中的图片。作为一个示例,视频解码器300(例如,经由预测处理单元304或某个其它电路)可以确定DPB 314已满(例如,基于DPB 314的尺寸)。可以存在视频解码器300确定要输出存储在DPB 314中的DRA域中的图片的其它情况,诸如编码状态、编码次序等。
在确定要输出DRA域中的图片之后,视频解码器300可以执行从DPB 314输出DRA域中的图片的处理。例如,响应于确定要输出DRA域中的图片,视频解码器300可以输出该图片。
在输出DRA域中的图片的处理中,视频解码器300可以将逆DRA应用于图片。例如,作为撞击处理或基于定时参数的图片输出的一部分,图片撞击单元316可以将逆DRA应用于图片。在一个或多个示例中,在输出图片的处理中是指导致从DPB 314移除图片的一系列顺序操作。当图片被标记为“未用于参考”时,该一系列操作可以开始于选择要输出哪个图片,并且以所选择的图片被移除而结束。在一些示例中,“在输出图片的处理中”执行的技术之后可以接着识别要输出哪个图片,并且在移除该图片之前执行这些技术。
作为一个示例,图片碰撞单元316可以确定要输出哪个图片(例如,根据需要被标记为输出)并输出该图片,并且将该图片标记为不需要输出。然后,视频解码器300可以将图片标记为未用于参考(当不再需要该图片作为参考图片时),并且存储该图片的DPB 314中的图片缓冲区被清空。“在输出图片的处理中”执行的技术可以在确定要输出哪个图片之间,并且在从DPB 314移除图片之前(例如,在清空DPB 314中的图片缓冲区之前)执行或在从存储图片的图片缓冲区输出图片之前执行这些技术。
与应用逆DRA连续,视频解码器300可以将一致性裁剪窗口应用于图片。作为一个示例,利用视频编码器200或视频解码器300(例如,通过视频编码器200的图片碰撞单元220或视频解码器300的图片碰撞单元316),在应用一致性裁剪窗口之后将逆DRA映射应用于碰撞处理中的输出图片。作为一个示例,利用视频编码器200或视频解码器300(例如,通过视频编码器200的图片碰撞单元220或视频解码器300的图片碰撞单元316),在应用一致性裁剪窗口之前将逆DRA映射应用于碰撞处理中的输出图片。在又一个示例中,逆映射的应用可以与一致性裁剪窗口处理相结合。
如更详细地描述的,视频编码器200和视频解码器300可以被配置为基于一个或多个DRA参数来执行逆DRA。视频编码器200可以发信号通知参数,而视频解码器300可以接收DRA参数。在一些示例中,视频编码器200可以发信号通知动态范围调整(DRA)参数的一个或多个集合,使得可以对图片中的两个块应用不同的DRA映射。视频解码器300可以被配置为接收和解析这样的参数。当调用这种图片的碰撞处理时或当定时参数指示要输出图片时,应用与每个样本/块对应的逆DRA映射。
换句话说,视频解码器300可以接收指示用于图片的块的DRA参数的信息。第一DRA参数集合用于图片的第一块,而第二DRA参数集合用于图片的第二块。第一DRA参数集合中的一个或多个参数的值可以与第二DRA参数集合中的一个或多个参数的值不同。为了应用逆DRA,视频解码器300(例如,经由图片碰撞单元316)可以基于用于第一块的第一DRA参数集合为第一块应用逆DRA,并基于用于第二块的第二DRA参数集合来应用逆DRA。
在以上示例中,两个不同的块被描述为具有不同的DRA参数(例如,以逐块为基础的DRA参数)。在一些示例中,可以有可能在逐区域的基础上存在DRA参数,其中区域包括一个或多个块(例如,条带或切片(tile))。
在一些示例中,代替逐块地或逐区域地确定DRA参数,可以有可能在逐样本的基础上确定DRA参数。例如,视频解码器300接收DRA参数(例如,用于DRA处理或逆DRA处理的参数)的一个或多个集合。在一些示例中,视频解码器300从用于DRA处理的DRA参数推导出用于逆DRA的DRA参数。视频解码器300在碰撞处理中或在定时参数指示要输出图片时应用逆DRA映射。如上所述,在一些示例中,当DRA应用于编码的视频时,解码图片缓冲区(例如,DPB314)将图片存储在DRA映射域中。
可以在编码器(例如,视频编码器200)或解码器(例如,视频解码器300)或两者上应用上述的一些方法。这些方法还可以应用于不基于参考图片集合的DPB管理系统(例如,AVC编解码器)。
以下是可以如何实现上述一种或多种技术的一些示例。例如,如上所述,视频编码器200和视频解码器300可以被配置为应用逆DRA。以下提供了应用逆DRA的一些示例方式。将应用逆DRA的示例技术描述为碰撞处理的一部分。在下文中,带下划线的部分是添加到上述碰撞处理的那些部分。
在示例1中,如下应用碰撞处理;改变用下划线示出:
“碰撞”处理由以下有序步骤组成:
1.将首先输出的图片选择为在DPB中被标记为“需要输出”的所有图片中具有最小PicOrderCntVal值的图片。
2.设sY[i]、sCb[i]、sCr[i]分别是与第i个DRA分割的Y、Cb和Cr分量相关联的逆DRA 缩放,并且oY[i]、oCb[i]、oCr[i]分别是与第i个DRA分割的Y、Cb和Cr分量相关联的逆DRA偏 移。
对于每个亮度样本yi,逆DRA映射的亮度样本yo如下计算:
yo=sY[k]*y+oY[k],
其中亮度样本y属于第k个DRA分割。
对于每个Cb样本cbi,逆DRA映射的Cb样本cbo如下计算:
cbo=sCb[l]*cbi+oCb[l],
其中与cbi对应的亮度样本属于第l个DRA分割。
对于每个Cr样本cri,逆DRA映射的Cr样本cro如下计算:
cro=sCr[m]*cri+oCr[m],
其中与cri对应的亮度样本属于第m个DRA分割。
3.使用在活动的SPS中为该图片指定的一致性裁剪窗口对图片进行裁剪,输出裁剪后的图片,并将该图片标记为“不需要输出”。
4.当包括已裁剪并输出的图片的图片存储缓冲区包含被标记为“未用于参考”的图片时,清空图片存储缓冲区。
注意-对于属于同一CVS并通过“碰撞处理”输出的任意两个图片picA和picB,当picA早于picB输出时,picA的PicOrderCntVal值小于picB的PicOrderCntVal值。
上述碰撞处理中的步骤2是实现逆DRA处理的一种方法。应该理解的是,本公开中公开的方法总体上可适用于逆DRA处理,包括其它实施方式。
在示例1中,sY(例如,亮度缩放因子)、sCb(例如,第一色度缩放因子)和scr(例如,第二色度缩放因子)以及oY(例如,亮度偏移)、oCb(例如,第一色度偏移)和oCr(例如,第二色度偏移)是视频解码器300基于视频编码器200发信号通知的信息(例如,基于在编码器侧用于执行DRA的DRA参数)或基于隐式技术确定的DRA参数的示例。为了将逆DRA应用于图片,图片碰撞单元316可以被配置为将亮度样本(y)乘以亮度缩放因子并且加上亮度偏移以生成逆DRA映射的亮度样本(例如,yo),将第一类型的色度样本(例如,cbi)乘以第一色度缩放因子并加上第一色度偏移以生成第一类型的DRA逆映射色度样本(例如,cbo),并且将第二类型的色度样本(例如,cri)乘以第二色度缩放因子并加上第二色度偏移以生成第二类型的逆DRA映射的色度样本(例如,cro)。
在以上示例中,视频解码器300首先应用逆DRA,然后执行裁剪。在一些示例中,视频解码器300可以首先执行裁剪,然后使用上述示例技术执行逆DRA。
在示例2中,如下应用碰撞处理;改变用下划线示出:
“碰撞”处理由以下有序步骤组成:
1.将首先输出的图片选择为在DPB中被标记为“需要输出”的所有图片中具有最小PicOrderCntVal值的图片。
2.使用一致性裁剪窗口对图片进行裁剪,使用示例2(下面)第X.X节中指定的逆映 射处理对裁剪后的图片进行重新映射,输出重新映射的图片,并将该图片标记为“不需要输出”。
3.当包括已裁剪并输出的图片的图片存储缓冲区包含被标记为“未用于参考”的图片时,清空图片存储缓冲区。
注意-对于属于同一CVS并通过“碰撞处理”输出的任意两个图片picA和picB,当picA早于picB输出时,picA的PicOrderCntVal值小于picB的PicOrderCntVal值。
示例2的第X.X节描述了裁剪和映射处理,并且如下。这个处理的输入是位于DPB中的图片,即,样本的阵列recPictureL,以及,当ChromaArrayType不等于0时,符合由裁剪视频参数指定的条件的阵列recPictureCb和recPictureCr
这个处理的输出是通过应用逆DRA处理修改后的样本,即,阵列outPictureL,以及,当ChromaArrayType不等于0时,阵列outPictureCb和outPictureCr
1.令sY[i]、sCb[i]、sCr[i]分别是与第i个DRA分割的Y、Cb和Cr分量相关联的逆DRA缩放,oY[i]、oCb[i]、oCr[i]分别是与第i个DRA分割的Y、Cb和Cr分量相关联的逆DRA偏移。oY[i]、oCb[i]、oCr[i]的参数指定在缩放之前应用于样本的DRA偏移。
对于每个亮度样本recPictureY,逆DRA映射的亮度样本outPictureL如下计算:
outPictureL=sY[k]*(recPictureY-oY[k])+oY[k],
其中亮度样本y属于第k个DRA分割。
对于每个Cb样本recPicturecb,逆DRA映射的Cb样本outPicturecb如下计算:
outPicturecb=sCb[l]*(recPictureCb-oCb[k])+oCb[l],
其中与cbi对应的亮度样本属于第l个DRA分割。
对于每个Cr样本recPicturecr,逆DRA映射的Cr样本outPicturecr如下计算:
outPicturecr=sCr[m]*(recPictureCr-oCr[k])+oCr[m],
其中与cri对应的亮度样本属于第m个DRA分割。
在一种替代方案中,oY[i]、oCb[i]、oCr[i]的值可能分别不同于oY[i]、oCb[i]、oCr[i]的值。
在以上示例2中,首先裁剪图片,然后应用逆DRA。例如,在示例2中,sY(例如,亮度缩放因子)、sCb(例如,第一色度缩放因子)和scr(例如,第二色度缩放因子)、oY(例如,第一亮度偏移)、oY(例如,第二亮度偏移)、oCb(例如,第一色度偏移)、oCb(例如,第二色度偏移)、oCr(例如,第三色度偏移)和oCr(例如,第四色度偏移)是视频解码器300基于视频编码器200发信号通知的信息(例如,基于用于在编码器侧执行DRA的DRA参数)确定的DRA参数的示例。以下包括视频编码器200可以发信号通知给视频解码器300的附加DRA参数的非限制性示例:范围/分割的数量(亮度样本值范围被拆分成的分割)、分割的端点、用于表示缩放值的小数部分和整数部分的比特数、用于表示偏移值的小数部分和整数部分的比特数、指示许多分割可以共享相同的缩放值的相等范围标志、色度缩放值,以及可以发信号通知但在一些示例中可以推断的色度偏移值。
为了将逆DRA应用于图片,图片碰撞单元316可以被配置为从亮度样本中减去第一亮度偏移以生成初始亮度偏移值(例如,(recPictureY–oY[k]是初始亮度偏移值))。图片碰撞单元316可以将初始亮度偏移值乘以亮度缩放因子(例如,sY)并加上第二亮度偏移(例如,oY)以生成逆DRA映射的亮度样本。
图片碰撞单元316可以被配置为从第一类型的色度样本中减去第一色度偏移以生成第一类型的初始色度偏移值(例如,recPictureCb–oCb[k]是第一类型的初始色度偏移值)。图片碰撞单元316可以将第一类型的初始色度偏移值乘以第一色度缩放因子(例如,sCb)并加上第二色度偏移(例如,oCb)以生成第一类型的逆DRA映射的色度样本。
图片碰撞单元316可以被配置为从第二类型的色度样本中减去第三色度偏移以生成第二类型的初始色度偏移值(例如,recPictureCr–oCr[k]是第二类型的初始色度偏移值)。图片碰撞单元316可以将第二类型的初始色度偏移值乘以第二色度缩放因子(例如,sCr),并加上第四色度偏移(例如,oCr)以生成第二类型的逆DRA映射的色度样本。
在上述示例中,视频解码器300首先执行裁剪,然后应用逆DRA。在视频解码器300首先执行逆DRA的示例中,视频解码器300可以执行与上述技术相似的示例技术但在裁剪之前执行。视频解码器300然后可以执行裁剪。
在示例2.1中,可以使用查找表而不是缩放和偏移来应用逆DRA操作。在一些示例中,DRA参数包括可以用于导出查找表以将样本从映射域(例如,DRA域)映射到原始域的信令参数。在如示例1的情况下,为了将逆DRA应用于图片,图片碰撞单元316可以被配置为:对于图片中的亮度样本,使用查找表获得第一亮度样本并使用第一亮度样本作为原始域中的对应亮度样本,对于第一类型的色度样本,使用查找表获得第一色度样本,并使用第一色度样本作为原始域中的对应色度样本,对于第二类型的色度样本,使用查找表获得第二色度样本,并使用第二色度样本作为原始域中的对应色度样本。在其它情况下,可以使用查找表来获得要应用于样本值的缩放值。
在示例3中,如下应用碰撞处理;改变用下划线示出:
“碰撞”处理由以下有序步骤组成:
1.将首先输出的图片选择为在DPB中被标记为“需要输出”的所有图片中具有最小PicOrderCntVal值的图片。
2.使用一致性裁剪窗口对图片进行裁剪,使用在示例3(下面)第X.X节中指定的逆 映射处理对裁剪后的图片进行重新映射,输出重新映射的图片,并将该图片标记为“不需要输出”。
3.当包括已裁剪并输出的图片的图片存储缓冲区包含被标记为“未用于参考”的图片时,清空图片存储缓冲区。
注意–对于属于同一CVS并通过“碰撞处理”输出的任意两个图片picA和picB,当picA早于picB输出时,picA的PicOrderCntVal值小于picB的PicOrderCntVal值。
示例3的第X.X节描述了裁剪和映射处理,并且如下。这个处理的输入是位于DPB中的图片,即,样本的阵列recPictureL,以及,当ChromaArrayType不等于0时,符合由裁剪视频参数指定的条件的阵列recPictureCb和recPictureCr
这个处理的输出是通过应用逆DRA处理修改后的样本,即,阵列outPictureL,以及,当ChromaArrayType不等于0时,阵列outPictureCb和outPictureCr
令sY[i][x,y]、sCb[i][x,y]、sCr[i][x,y]分别是与第i个DRA分割的Y、Cb和Cr分量相关联的逆DRA缩放,oY[i][x,y]、oCb[i][x,y]、oCr[i][x,y]分别是与第i个DRA分割的Y、Cb和Cr分量相关联的逆DRA偏移。oY[i][x,y]、oCb[i][x,y]、oCr[i][x,y]的参数指定在缩放之前应用于样本的DRA偏移。[x,y]是样本的水平和垂直坐标,被计算为相对于当前图片中的样本的左上(0,0)坐标的偏移。
对于每个亮度样本recPictureY[x,y],逆DRA映射的亮度样本outPictureL[x,y]的计算如下:
outPictureL[x,y]=sY[k][x,y]*(recPictureY[x,y]–oY[k][x,y])+oY[k][x,y],
其中亮度样本y属于第k个DRA分割。
对于每个Cb样本recPicturecb,考虑编码的图片的ChromaArrayType,相应地计算逆DRA映射的Cb样本outPicturecb
示例3与示例2相似。但是,在示例3中,缩放和偏移参数对于不同的样本可以是不同的,或者对于不同的块或区域(例如,其中一个区域包括一个或多个块)可以是不同的。例如,视频解码器300可以被配置为基于用于第一块的第一DRA参数集合为图片的第一块应用逆DRA,并且基于第二DRA参数集合为图片的第二块应用逆DRA(例如,对于两个块可以具有不同的偏移和/或缩放因子)。
在以上示例中,视频解码器300可以与执行裁剪连续地执行逆DRA(例如,在应用逆DRA之前或在应用逆DRA之后应用一致性裁剪窗口)。在一些示例中,在应用逆DRA之前应用一致性裁剪窗口可能是有益的,因为存在较少的要对其应用逆DRA的样本。
但是,可以在裁剪之前基于整个图片来定义DRA参数,因此可能需要对DRA参数进行调整以应对裁剪问题。例如,可以为两个块B1和B2定义DRA参数,其中可以基于块的边界相对于图片边界的偏移值来定义块。也可以发信号通知偏移值以将其作为DRA参数的一部分。
考虑通过裁剪图片左右两侧的10个样本列以及顶部和底部的5个样本行,将尺寸为500x250单位的亮度样本的图片裁剪为尺寸为480x250样本的图片。令B1和B2由块的顶部、底部、左侧和右侧边界相对于图片的对应边界的偏移定义,如下所示:对于B1分别是100、50、100和300,并且对于B2分别是150、0、300和100。在这个示例中,B1是尺寸为100x100的块,其左上角位置为(100,100),而B2是尺寸为100x100的块,其左上角位置为(150,300)。如果在裁剪之后应用逆DRA,那么参数将应用于与发信号通知的那些样本窗口不同的样本窗口。对于裁剪后的图片,块B1现在将分别具有偏移95、45、90和290,而块B2将具有偏移145、0、290、90。
在这个示例中,当块B2的一部分被裁剪掉时,块B2的高度不再是100。对于可能没有能力对DRA参数应用此类修改的解码器,在逆DRA操作之后应用裁剪窗口可能会是有益的。
图12是图示解码视频数据的示例方法的流程图。为了便于说明,示例技术被描述为用视频解码器300对视频数据进行解码的一部分。在一些示例中,视频编码器200(例如,经由图片碰撞单元220)可以被配置为执行类似操作。
视频解码器300可以被配置为确定要从DPB 314输出存储在DPB 314中的动态范围调整(DRA)域中的图片(500)。例如,视频解码器300可以确定DPB 314已满并且要移除图片,以便有空间来存储下一图片。如上所述,在从DPB 314输出之前,DPB 314中的图片是解码的图片并且被用作参考图片(例如,用于帧间预测)。在一些情况下,视频解码器可以确定存储在DPB 314的DRA域中的图片将在特定的DpbOutputTime[](例如,定时参数)处输出,其中预期该图片按比特流一致性参数描述的那样输出。
在确定要输出DRA域中的图片之后,视频解码器300可以执行输出DRA域中的图片的处理(502)。例如,图片碰撞单元316可以被配置为基于定时参数来执行碰撞处理或图片输出。如上所述,在一个非限制性示例中,作为碰撞处理的一部分,要输出的图片是在DPB314中被标记为“需要输出”的所有图片中具有最小PicOrderCntVal值(POC值)的图片。图片碰撞单元316可以确定被标记为需要输出的并且具有最小POC值的图片是要输出的图片,并且可以执行碰撞处理以输出图片。在一些示例中,图片碰撞单元316可以基于定时参数来确定何时将输出图片,并且基于定时参数来输出图片。
在从DPB 314输出DRA域中的图片的处理中,视频解码器300可以将逆DRA应用于图片(504)。视频解码器300可以以多种方式将逆DRA应用于图片。作为一个示例,图片碰撞单元316可以将亮度样本乘以亮度缩放因子并且加上亮度偏移以生成逆DRA映射的亮度样本,并且针对图片中的亮度样本重复这些操作。图片碰撞单元316可以将第一类型的色度样本乘以第一色度缩放因子并且加上第一色度偏移以生成第一类型的逆DRA映射的色度样本,并且针对图片中的第一类型的色度样本重复这些操作。图片碰撞单元316可以将第二类型的色度样本乘以第二色度缩放因子并且加上第二色度偏移以生成第二类型的逆DRA映射的色度样本,并且针对图片中的第二类型的色度样本重复这些操作。
作为另一个示例,为了将逆DRA应用于图片,图片碰撞单元316可以从亮度样本中减去第一亮度偏移以生成初始亮度偏移值,将初始亮度偏移值乘以亮度缩放因子并加上第二亮度偏移以生成逆DRA映射的亮度样本,并对图片中的亮度样本重复这些操作。图片碰撞单元316可以从第一类型的色度样本中减去第一色度偏移以生成第一类型的初始色度偏移值,将第一类型的初始色度偏移值乘以第一色度缩放因子并加上第二色度偏移以生成第一类型的逆DRA映射的色度样本,并对图片中的第一类型的色度样本重复这些操作。图片碰撞单元316可以从第二类型的色度样本中减去第三色度偏移以生成第二类型的初始色度偏移值,将第二类型的初始色度偏移值乘以第二色度缩放因子并加上第四色度偏移以生成第二类型的逆DRA映射的色度样本,并对第二类型的色度样本重复这些操作。
在一些示例中,视频解码器300可以确定用于图片的块的DRA参数。第一DRA参数集合用于图片的第一块,而第二DRA参数集合用于图片的第二块。第一DRA参数集合中的一个或多个参数的值可以不同于第二DRA参数集合中的一个或多个参数的值。在这样的示例中,为了应用逆DRA,视频解码器300(例如,经由图片碰撞单元316)可以基于用于第一块的第一DRA参数集合为第一块应用逆DRA,并且基于用于第二块的第二DRA参数集合为第二块应用逆DRA。
在一些示例中,并且不一定在所有示例中,与应用逆DRA连续,视频解码器300可以被配置为将一致性裁剪窗口应用于图片(506)。作为一个示例,与应用逆DRA连续,图片碰撞单元316可以在应用逆DRA之前应用一致性裁剪窗口。图片碰撞单元316可以将逆DRA应用于来自一致性裁剪窗口的输出。作为一个示例,与应用逆DRA连续,图片碰撞单元316可以在应用逆DRA之后应用一致性裁剪窗口。图片碰撞单元316可以应用逆DRA并从DPB 314输出并且执行一致性裁剪窗口。
应当认识到,根据示例,在此描述的任何技术的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,并非所有描述的动作或事件对于技术的实践都是必需的)。而且,在某些示例中,可以例如通过多线程处理、中断处理或多个处理器而不是顺序地并发执行动作或事件。
在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任意组合来实现。如果以软件实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或在计算机可读介质上发送,并由基于硬件的处理单元来运行。计算机可读介质可以包括计算机可读存储介质,其对应于任何有形介质,诸如数据存储介质,或者包括例如根据通信协议来促进将计算机程序从一个地方转移到另一个地方的任何介质的通信介质。以此方式,计算机可读介质一般可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、闪速存储器或者可以用于存储以指令或数据结构的形式的、并且可以由计算机访问的期望的程序代码任何其他介质。此外,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或诸如红外、无线电和微波的无线技术从网站、服务器或其他远程源发送指令,则介质的定义包括同轴电缆、光纤电缆、双绞线、DSL或诸如红外、无线电和微波的无线技术。然而,应该理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬时介质,而是针对非瞬时的有形存储介质。在此使用的磁盘和光盘包括光盘(CD)、激光光盘、光盘、数字多功能盘(DVD)、软盘和蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述各项的组合也应包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效的集成或离散逻辑电路。因此,在此使用的术语“处理器”可以指任何前述结构或适合于实现在此描述的技术的任何其他结构。另外,在一些方面,在此描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或者可以结合在组合编解码器中。此外,该技术可以在一个或多个电路或逻辑元件中完全实现。
本公开的技术可以在各种设备或装置中实现,包括无线手持设备、集成电路(IC)或IC的集合(例如,芯片集合)。在本公开中描述了各种组件、模块或单元,以强调被配置成为执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元来实现。相反,如上所述,各种单元可以组合在编解码器硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合结合适当的软件和/或固件来提供。
已经描述了各种示例。这些示例和其他示例在所附权利要求的范围内。

Claims (28)

1.一种解码视频数据的方法,所述方法包括:
确定要从存储器中输出存储在所述存储器中的动态范围调整(DRA)域中的图片;
在确定要输出DRA域中的图片之后,执行输出所述DRA域中的图片的处理;
在输出所述DRA域中的图片的所述处理中,利用视频处理器将逆DRA应用于所述图片;以及
在应用所述逆DRA后,将所述图片输出到视频后处理器。
2.如权利要求1所述的方法,还包括输出所述图片以进行显示。
3.如权利要求1所述的方法,还包括,与应用所述逆DRA连续,将一致性裁剪窗口应用于所述图片。
4.如权利要求3所述的方法,其中,与应用所述逆DRA连续,应用所述一致性裁剪窗口包括在应用所述逆DRA之前应用所述一致性裁剪窗口,并且其中应用逆DRA包括将逆DRA应用于来自所述一致性裁剪窗口的输出。
5.如权利要求3所述的方法,其中,与应用所述逆DRA连续,应用所述一致性裁剪窗口包括在应用所述逆DRA之后应用所述一致性裁剪窗口,并且其中应用逆DRA包括应用逆DRA并输出以执行所述一致性裁剪窗口。
6.如权利要求1所述的方法,还包括确定用于所述图片的块的DRA参数,其中第一DRA参数集合用于所述图片的第一块并且第二DRA参数集合用于所述图片的第二块,其中所述第一DRA参数集合中的一个或多个参数的值与所述第二DRA参数集合中的一个或多个参数的值不同,其中应用所述逆DRA包括:
基于用于所述第一块的所述第一DRA参数集合对所述第一块应用所述逆DRA;以及
基于用于所述第二块的所述第二DRA参数集合对所述第二块应用所述逆DRA。
7.如权利要求1所述的方法,其中存储在所述存储器中的所述图片是在从所述存储器输出之前被解码并用作参考图片的图片。
8.如权利要求1所述的方法,其中,在输出所述DRA域中的图片的处理中,将逆DRA应用于所述图片包括:
将亮度样本乘以亮度缩放因子并加上亮度偏移以生成逆DRA映射的亮度样本;
将第一类型的色度样本乘以第一色度缩放因子并加上第一色度偏移以生成第一类型的逆DRA映射的色度样本;以及
将第二类型的色度样本乘以第二色度缩放因子并加上第二色度偏移以生成第二类型的逆DRA映射的色度样本。
9.如权利要求1所述的方法,其中,在输出所述DRA域中的图片的处理中,将逆DRA应用于所述图片包括:
从亮度样本中减去第一亮度偏移以生成初始亮度偏移值;
将所述初始亮度偏移值乘以亮度缩放因子并加上第二亮度偏移以生成逆DRA映射的亮度样本;
从第一类型的色度样本中减去第一色度偏移以生成第一类型的初始色度偏移值;
将所述第一类型的初始色度偏移值乘以第一色度缩放因子并加上第二色度偏移以生成第一类型的逆DRA映射的色度样本;
从第二类型的色度样本中减去第三色度偏移以生成第二类型的初始色度偏移值;以及
将所述第二类型的初始色度偏移值乘以第二色度缩放因子并加上第四色度偏移以生成第二类型的逆DRA映射的色度样本。
10.如权利要求1所述的方法,其中确定要从所述存储器输出存储在所述存储器中的所述DRA域中的图片包括以下至少之一:
确定要应用碰撞处理以从所述存储器输出所述DRA域中的图片;或者
基于定时参数来确定要从所述存储器中输出所述DRA域中的图片。
11.一种用于解码视频数据的设备,所述设备包括:
存储器,被配置为存储动态范围调整(DRA)域中的图片;以及
处理器,被配置为:
确定要从所述存储器中输出存储在所述存储器中的所述动态范围调整(DRA)域中的图片;
在确定要输出DRA域中的图片之后,执行输出所述DRA域中的图片的处理;
在输出所述DRA域中的图片的所述处理中,利用视频处理器将逆DRA应用于所述图片;以及
在应用所述逆DRA后,将所述图片输出到视频后处理器。
12.如权利要求11所述的设备,其中所述处理器包括视频解码器,所述视频解码器包括固定功能或可编程电路中的至少一个,并且其中所述存储器包括所述视频解码器的解码图片缓冲区(DPB)。
13.如权利要求11所述的设备,其中所述处理器被配置为输出所述图片以进行显示。
14.如权利要求11所述的设备,其中所述处理器被配置为,与应用所述逆DRA连续,将一致性裁剪窗口应用于所述图片。
15.如权利要求14所述的设备,其中,与应用所述逆DRA连续,为了应用所述一致性裁剪窗口,所述处理器被配置为在应用所述逆DRA之前应用所述一致性裁剪窗口,并且其中为了应用逆DRA,所述处理器被配置为将逆DRA应用于来自所述一致性裁剪窗口的输出。
16.如权利要求14所述的设备,其中,与应用所述逆DRA连续,为了应用所述一致性裁剪窗口,所述处理器被配置为在应用所述逆DRA之后应用所述一致性裁剪窗口,并且其中为了应用逆DRA,所述处理器被配置为应用逆DRA并输出以执行所述一致性裁剪窗口。
17.如权利要求11所述的设备,其中所述处理器被配置为确定用于所述图片的块的DRA参数,其中第一DRA参数集合用于所述图片的第一块并且第二DRA参数集合用于所述图片的第二块,其中所述第一DRA参数集合中的一个或多个参数的值与所述第二DRA参数集合中的一个或多个参数的值不同,其中为了应用所述逆DRA,所述处理器被配置为:
基于用于所述第一块的所述第一DRA参数集合对所述第一块应用所述逆DRA;以及
基于用于所述第二块的所述第二DRA参数集合对所述第二块应用所述逆DRA。
18.如权利要求11所述的设备,其中存储在所述存储器中的所述图片是在从所述存储器输出之前被解码的图片。
19.如权利要求11所述的设备,其中,在输出所述DRA域中的图片的处理中,为了将逆DRA应用于所述图片,所述处理器被配置为:
将亮度样本乘以亮度缩放因子并加上亮度偏移以生成逆DRA映射的亮度样本;
将第一类型的色度样本乘以第一色度缩放因子并加上第一色度偏移以生成第一类型的逆DRA映射的色度样本;以及
将第二类型的色度样本乘以第二色度缩放因子并加上第二色度偏移以生成第二类型的逆DRA映射的色度样本。
20.如权利要求11所述的设备,其中,在输出所述DRA域中的图片的处理中,为了将逆DRA应用于所述图片,所述处理器被配置为:
从亮度样本中减去第一亮度偏移以生成初始亮度偏移值;
将所述初始亮度偏移值乘以亮度缩放因子并加上第二亮度偏移以生成逆DRA映射的亮度样本;
从第一类型的色度样本中减去第一色度偏移以生成第一类型的初始色度偏移值;
将所述第一类型的初始色度偏移值乘以第一色度缩放因子并加上第二色度偏移以生成第一类型的逆DRA映射的色度样本;
从第二类型的色度样本中减去第三色度偏移以生成第二类型的初始色度偏移值;以及
将所述第二类型的初始色度偏移值与第二色度缩放因子相乘并加上第四色度偏移以生成第二类型的逆DRA映射的色度样本。
21.如权利要求11所述的设备,还包括显示器,该显示器被配置为显示所输出的图片。
22.如权利要求11所述的设备,其中所述设备包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。
23.如权利要求11所述的设备,其中,为了确定要从所述存储器输出存储在所述存储器中的所述DRA域中的图片,所述处理器被配置为以下至少之一:
确定要应用碰撞处理以从所述存储器输出所述DRA域中的图片;或者
基于定时参数来确定要从所述存储器中输出所述DRA域中的图片。
24.一种在其上存储指令的计算机可读存储介质,所述指令在被执行时使得用于解码视频数据的设备的一个或多个处理器:
确定要从存储器中输出存储在所述存储器中的动态范围调整(DRA)域中的图片;
在确定要输出DRA域中的图片之后,执行输出所述DRA域中的图片的处理;
在输出所述DRA域中的图片的所述处理中,利用视频处理器将逆DRA应用于所述图片;以及
在应用所述逆DRA后,将所述图片输出到视频后处理器。
25.如权利要求24所述的计算机可读存储介质,还包括使所述一个或多个处理器输出所述图片以进行显示的指令。
26.如权利要求24所述的计算机可读存储介质,还包括使所述一个或多个处理器与应用所述逆DRA连续,将一致性裁剪窗口应用于所述图片的指令。
27.如权利要求26所述的计算机可读存储介质,其中,与应用所述逆DRA连续,使所述一个或多个处理器应用所述一致性裁剪窗口的指令包括使所述一个或多个处理器在应用所述逆DRA之前应用所述一致性裁剪窗口的指令,并且其中使所述一个或多个处理器应用逆DRA的指令包括使所述一个或多个处理器将逆DRA应用于来自所述一致性裁剪窗口的输出的指令。
28.如权利要求26所述的计算机可读存储介质,其中,与应用所述逆DRA连续,使所述一个或多个处理器应用所述一致性裁剪窗口的指令包括使所述一个或多个处理器在应用所述逆DRA之后应用所述一致性裁剪窗口的指令,并且其中使所述一个或多个处理器应用逆DRA的指令包括使所述一个或多个处理器应用逆DRA并输出以执行所述一致性裁剪窗口的指令。
CN201980026371.8A 2018-04-18 2019-04-17 解码图片缓冲区管理及动态范围调整 Active CN112042202B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862659617P 2018-04-18 2018-04-18
US62/659,617 2018-04-18
US16/385,469 2019-04-16
US16/385,469 US11303912B2 (en) 2018-04-18 2019-04-16 Decoded picture buffer management and dynamic range adjustment
PCT/US2019/027869 WO2019204437A1 (en) 2018-04-18 2019-04-17 Decoded picture buffer management and dynamic range adjustment

Publications (2)

Publication Number Publication Date
CN112042202A CN112042202A (zh) 2020-12-04
CN112042202B true CN112042202B (zh) 2022-08-19

Family

ID=68236638

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980026371.8A Active CN112042202B (zh) 2018-04-18 2019-04-17 解码图片缓冲区管理及动态范围调整

Country Status (7)

Country Link
US (1) US11303912B2 (zh)
EP (1) EP3782370A1 (zh)
CN (1) CN112042202B (zh)
BR (1) BR112020021315A2 (zh)
SG (1) SG11202009221TA (zh)
TW (1) TWI793308B (zh)
WO (1) WO2019204437A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11516512B2 (en) * 2019-03-04 2022-11-29 Alibaba Group Holding Limited Method and system for processing video content
WO2020226424A1 (ko) * 2019-05-08 2020-11-12 엘지전자 주식회사 Mip 및 lfnst를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
CN115299064A (zh) 2020-03-11 2022-11-04 抖音视界有限公司 基于颜色格式的自适应参数集信令通知
WO2021244420A1 (en) 2020-05-31 2021-12-09 Beijing Bytedance Network Technology Co., Ltd. Palette mode with local dual tree modetype definition
CN116708802A (zh) * 2020-06-24 2023-09-05 北京达佳互联信息技术有限公司 用于针对视频编解码的预测相关残差缩放的方法和设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7068396B1 (en) * 2000-11-21 2006-06-27 Eastman Kodak Company Method and apparatus for performing tone scale modifications on a sparsely sampled extended dynamic range digital image
US7123655B2 (en) * 2001-08-09 2006-10-17 Sharp Laboratories Of America, Inc. Method for reduced bit-depth quantization
US8606009B2 (en) * 2010-02-04 2013-12-10 Microsoft Corporation High dynamic range image generation and rendering
US8761539B2 (en) * 2012-07-10 2014-06-24 Sharp Laboratories Of America, Inc. System for high ambient image enhancement
EP3058747B1 (en) * 2013-10-15 2019-11-20 Nokia Technologies Oy Scalable video encoding and decoding using syntax element
CN106416250B (zh) 2013-12-02 2020-12-04 诺基亚技术有限公司 视频编码和解码
US9445111B2 (en) * 2014-01-08 2016-09-13 Sony Corporation Image processing apparatus and image processing method
KR20170007261A (ko) * 2014-05-15 2017-01-18 소니 주식회사 통신 장치 및 통신 방법과 컴퓨터 프로그램
US20160309154A1 (en) * 2015-04-17 2016-10-20 Qualcomm Incorporated Dynamic range adjustment for high dynamic range and wide color gamut video coding
TWI764870B (zh) * 2015-07-28 2022-05-21 法商內數位麥德遜專利控股有限公司 視訊訊號處理裝置及方法
US10129558B2 (en) * 2015-09-21 2018-11-13 Qualcomm Incorporated Supplement enhancement information (SEI) messages for high dynamic range and wide color gamut video coding
US10244249B2 (en) * 2015-09-21 2019-03-26 Qualcomm Incorporated Fixed point implementation of range adjustment of components in video coding
WO2017053852A1 (en) 2015-09-23 2017-03-30 Arris Enterprises Llc System for reshaping and coding high dynamic range and wide color gamut sequences
US20170105014A1 (en) * 2015-10-08 2017-04-13 Qualcomm Incorporated Luma-driven chroma scaling for high dynamic range and wide color gamut contents
US10007990B2 (en) * 2015-12-24 2018-06-26 Intel Corporation Generating composite images using estimated blur kernel size
US20180198970A1 (en) * 2017-01-12 2018-07-12 Intel Corporation High dynamic range imaging using camera arrays
EP3373585A1 (en) * 2017-03-09 2018-09-12 Thomson Licensing Method for inverse tone mapping of an image with visual effects
US10567777B2 (en) * 2017-03-16 2020-02-18 Intel Corporation Contrast optimization and local adaptation approach for high dynamic range compression

Also Published As

Publication number Publication date
EP3782370A1 (en) 2021-02-24
US11303912B2 (en) 2022-04-12
SG11202009221TA (en) 2020-11-27
TW201946454A (zh) 2019-12-01
BR112020021315A2 (pt) 2021-01-19
WO2019204437A1 (en) 2019-10-24
TWI793308B (zh) 2023-02-21
CN112042202A (zh) 2020-12-04
US20190327477A1 (en) 2019-10-24

Similar Documents

Publication Publication Date Title
CN112042202B (zh) 解码图片缓冲区管理及动态范围调整
CN113508589A (zh) 视频译码中的组合残差译码
TWI807008B (zh) 在視訊寫碼中之基於變換之量化及動態範圍調整尺度推導之協調
CN113994678A (zh) 信令通知色度量化参数(qp)映射表
TWI765903B (zh) 用於循環樣本處理之視訊寫碼工具
US11533512B2 (en) Dynamic range adjustment parameter signaling and enablement of variable bit depth support
US11558616B2 (en) Methods for quantization parameter control for video coding with joined pixel/transform based quantization
US11671600B2 (en) Signaling intensity dependent deblocking filtering for video coding
US11463737B2 (en) Signaling of dynamic range adjustment parameters for decoded picture buffer management and dynamic range
US20240098293A1 (en) Encoding high dynamic range video data
TW202415070A (zh) 編碼高動態範圍視頻資料

Legal Events

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