CN111357287B - 针对通过时间预测进行的上下文初始化的存储器减小 - Google Patents
针对通过时间预测进行的上下文初始化的存储器减小 Download PDFInfo
- Publication number
- CN111357287B CN111357287B CN201880074589.6A CN201880074589A CN111357287B CN 111357287 B CN111357287 B CN 111357287B CN 201880074589 A CN201880074589 A CN 201880074589A CN 111357287 B CN111357287 B CN 111357287B
- Authority
- CN
- China
- Prior art keywords
- picture
- video
- quantization parameter
- quantization
- probability state
- 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
Links
Images
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/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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/17—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 an image region, e.g. an object
-
- 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/187—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 scalable video layer
-
- 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/124—Quantisation
-
- 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/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- 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/134—Methods 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/167—Position within a video image, e.g. region of interest [ROI]
-
- 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/17—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 an image region, e.g. an object
- H04N19/174—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 an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- 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/17—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 an image region, e.g. an object
- H04N19/176—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 an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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/177—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 group of pictures [GOP]
-
- 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/184—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 bits, e.g. of the compressed video stream
-
- 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/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/55—Motion estimation with spatial constraints, e.g. at image or region borders
-
- 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/70—Methods 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
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种解码视频数据的方法,其包含通过实施于处理电路中的视频解码器,使用用于通过时间预测解码的视频数据的图片的一部分的多个量化参数来确定上下文初始化。所述方法包含通过所述视频解码器,以所述多个量化参数的单个概率状态存储所述上下文初始化。所述方法包含通过所述视频解码器,使用所述单个概率状态熵解码位流中的一组语法元素。
Description
本申请案主张2018年11月19日申请的美国专利申请案16/195,590的优先权,所述美国专利申请案主张2017年11月20日申请的美国临时专利申请案62/588,867的权益,所述申请案两者的全部内容特此以引用的方式并入本文中。
技术领域
本公开涉及视频译码。
背景技术
数字视频能力可并入到各种装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、手提式或台式计算机、平板计算机、电子图书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电话会议装置、视频流式传输装置等等。数字视频装置实施视频压缩技术,例如描述于以下中的那些技术:由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)、ITU-T H.265定义的标准、高效视频译码(HEVC)以及这类标准的扩展。视频装置通过实施这类视频压缩技术可以更有效地发射、接收、编码、解码和/或存储数字视频信息。
视频压缩技术执行空间(图片内)预测和/或时间(图片间)预测来减少或移除视频序列中固有的冗余。对基于块的视频译码,视频切片(即,视频帧或视频帧的一部分)可被分割成视频块,视频块还可被称作树块、译码单元(CU)和/或译码节点。使用关于同一图片中的相邻块中的参考样本的空间预测来编码图片的经帧内译码(I)切片中的视频块。图片的经帧间译码(P或B)切片中的视频块可使用关于同一图片中的相邻块中的参考样本的空间预测,或关于其它参考图片中的参考样本的时间预测。空间或时间预测产生用于待译码块的预测性块。残余数据表示待译码原始块与预测块之间的像素差。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生残余变换系数,可接着量化所述残余变换系数。
发明内容
一般来说,本公开描述与熵译码有关的技术,并且更具体地说,用于熵译码的上下文初始化。举例来说,视频解码器可使用从先前经解码图片(或先前经解码图片的部分)确定的上下文初始化执行用于当前图片(或所述图片的部分)的上下文自适应二进制算术译码(CABAC)。在一些实例中,并非存储每一量化参数的概率值,而是视频译码器(例如,视频编码器、视频解码器等)可存储(连续)量化参数的单个概率状态。另外或替代地,视频译码器可响应于确定启用用于图片的部分的时间层,响应于确定启用多个量化参数,和/或响应于确定启用指配给所述部分的群组,使用从先前经解码图片的一部分确定的上下文初始化执行用于图片的部分的熵译码。以此方式,可减小视频译码器的用于存储上下文初始化的存储器使用,同时准许从使用通过时间预测进行的上下文初始化改进译码效率。本文中所描述的一或多种技术可应用于现有视频编解码器中的任一个,例如高效视频译码(HEVC),或可用于任何未来视频译码标准(例如H.266)中。
在一个实例中,一种解码视频数据的方法,包含:通过实施于处理电路中的视频解码器,使用用于通过时间预测解码的视频数据的图片的一部分的多个量化参数来确定上下文初始化;通过所述视频解码器,以所述多个量化参数的单个概率状态存储所述上下文初始化;和通过所述视频解码器,使用所述单个概率状态熵解码位流中的一组语法元素。
在另一实例中,一种用于解码视频数据的装置包含:一或多个存储媒体;和一或多个处理器,其被配置成:使用用于通过时间预测解码的视频数据的图片的一部分的多个量化参数来确定上下文初始化;将所述上下文初始化以所述多个量化参数的单个概率状态存储于所述一或多个存储媒体处;和使用所述单个概率状态熵解码位流中的一组语法元素。
在另一实例中,一种计算机可读存储媒体编码有指令,所述指令在被执行时致使可编程处理器:使用用于通过时间预测解码的视频数据的图片的一部分的多个量化参数来确定上下文初始化;将所述上下文初始化以所述多个量化参数的单个概率状态存储于所述一或多个存储媒体处;和使用所述单个概率状态熵解码位流中的一组语法元素。
在另一实例中,一种用于解码视频数据的装置包含用于使用用于通过时间预测解码的视频数据的图片的一部分的多个量化参数来确定上下文初始化的装置;用于以所述多个量化参数的单个概率状态存储所述上下文初始化的装置;和用于使用所述单个概率状态熵解码位流中的一组语法元素的装置。
在另一实例中,一种编码视频数据的方法包含:通过实施于处理电路中的视频编码器,使用用于通过时间预测编码的视频数据的图片的一部分的多个量化参数来确定上下文初始化;通过所述视频编码器,以所述多个量化参数的单个概率状态存储所述上下文初始化;和通过所述视频编码器,使用所述单个概率状态熵编码位流中的一组语法元素。
在另一实例中,一种用于编码视频数据的装置包含或多个存储媒体,其被配置成存储视频数据;和一或多个处理器,其被配置成:使用用于通过时间预测编码的视频数据的图片的一部分的多个量化参数来确定上下文初始化;将所述上下文初始化以所述多个量化参数的单个概率状态存储于所述一或多个存储媒体处;和使用所述单个概率状态熵编码位流中的一组语法元素。
在另一实例中,一种计算机可读存储媒体编码有指令,所述指令在被执行时致使可编程处理器:使用用于通过时间预测编码的视频数据的图片的一部分的多个量化参数来确定上下文初始化;将所述上下文初始化以所述多个量化参数的单个概率状态存储于所述一或多个存储媒体处;和使用所述单个概率状态熵编码位流中的一组语法元素。
在另一实例中,一种用于解码视频数据的装置包含用于使用用于通过时间预测编码的视频数据的图片的一部分的多个量化参数来确定上下文初始化的装置;用于以所述多个量化参数的单个概率状态存储所述上下文初始化的装置;和用于使用所述单个概率状态熵编码位流中的一组语法元素的装置。
在附图和以下描述中阐述本公开的一或多个方面的细节。本公开中所描述的技术的其它特性、目标和优点将从描述、图式且从权利要求书显而易见。
附图说明
图1是说明可使用本公开中所描述的一或多种技术的实例视频编码和解码系统的框图。
图2A和2B是说明实例四叉树二叉树(QTBT)结构和对应译码树(CTU)的概念图。
图3是说明用于基于表的二进制算术译码的实例过程的流程图。
图4是基于残余的变换方案的说明。
图5是基于系数群组(CG)的系数扫描的说明。
图6是多参数概率更新图的说明。
图7是具有多个最大译码单元(LCU)和代表性LCU的视频数据切片的实例的说明。
图8是译码次序的实例的说明。
图9说明具有等于16的图片群组(GOP)的随机存取配置的实例。
图10是代表性LCU的说明,其中所有切片共享共同切片明度和/或色度量化参数(QP)。
图11是多个代表性LCU的说明,其中所有切片具有不同的切片明度和/或色度QP。
图12是说明可实施本公开中所描述的一或多种技术的实例视频编码器的框图。
图13是说明可实施本公开中所描述的一或多种技术的实例视频解码器的框图。
图14是说明用于存储上下文初始化的技术的流程图。
图15是说明用于使用上下文初始化进行编码的技术的流程图。
图16是说明用于使用上下文初始化进行解码的技术的流程图。
具体实施方式
使用上下文初始化来熵译码视频数据可增加所发射的视频数据的压缩率,这可减小要发射的视频数据的量。然而,与不使用上下文初始化的视频译码器相比,被配置成用于使用上下文初始化来熵译码视频数据的视频译码器(例如,视频编码器、视频解码器等)可使用于存储上下文初始化的存储器使用率增加。
本文中所描述的技术可减小视频译码器针对上下文初始化技术,特定地针对通过时间预测进行的上下文初始化(CITP)而对存储器的使用量。举例来说,通过将视频译码器配置为使用用于通过时间预测解码的视频图片数据的一部分的多个量化参数来确定上下文初始化并且以量化参数的单个概率状态存储上下文初始化,视频译码器可减小存储于存储器中的针对所述多个量化参数的概率状态的数目。以此方式,视频译码器可减小用于存储上下文初始化的存储器量,这可改进视频译码器的处理性能和/或减小视频译码器的功率使用量。
图1是说明可使用本公开的技术的实例视频编码和解码系统10的框图。如图1中所示,系统10包含源装置12,其提供稍后由目的地装置14解码的经编码视频数据。特定来说,源装置12经由计算机可读媒体16将视频数据提供到目的地装置14。源装置12和目的地装置14可包括广泛范围的装置中的任一个,包含无线通信装置、台式计算机、笔记型(例如,手提式)计算机、平板计算机、机顶盒、例如所谓的“智能”电话的电话手持机、平板计算机、电视、摄像机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置等。在一些情况下,可装备源装置12和目的地装置14以支持无线通信标准。因此,源装置12和目的地装置14可为无线通信装置。源装置12是实例视频编码装置(即,用于编码视频数据的装置)。目的地装置14是实例视频解码装置(即,用于解码视频数据的装置)。
在图1的实例中,源装置12包含视频源18、被配置成存储视频数据的存储媒体19、视频编码器20和输出接口24。目的地装置14包含输入接口26、被配置成存储经编码视频数据的存储媒体28、视频解码器30和显示装置32。在其它实例中,源装置12和目的地装置14包含其它组件或布置。举例来说,源装置12可从外部视频源(例如,外部摄像机)接收视频数据。同样地,目的地装置14可以与外部显示装置介接,而不是包括集成式显示装置。
图1中说明的系统10仅是一个实例。可由任何数字视频编码和/或解码装置执行用于处理和/或译码视频数据的技术。虽然本公开的技术通常由视频编码装置执行,但是所述技术也可由视频编码器/解码器(通常被称作“编解码器”)执行。源装置12和目的地装置14只是这类译码装置的实例,其中源装置12产生经译码视频数据以供发射到目的地装置14。在一些实例中,源装置12和目的地装置14可以大体上对称方式操作,使得源装置12和目的地装置14中的每一个包含视频编码和解码组件。因此,系统10可支持源装置12与目的地装置14之间的单向或双向视频发射,例如以用于视频流式传输、视频重放、视频广播或视频电话。
源装置12的视频源18可包含视频捕获装置,例如摄像机、含有先前所捕获视频的视频档案和/或用于从视频内容提供者接收视频数据的视频馈送接口。作为另一替代方案,视频源18可产生基于计算机图形的数据作为源视频,或实况视频、存档视频与计算机产生的视频的组合。源装置12可包含被配置成存储视频数据的一或多个数据存储媒体(例如存储媒体19)。本公开中所描述的技术一般来说可适用于视频译码,并且可应用于无线和/或有线应用。在每一情况下,捕获、预捕获或计算机产生的视频可由视频编码器20编码。输出接口24可将经编码视频信息输出到计算机可读媒体16。
目的地装置14可经由计算机可读媒体16接收待解码的经编码视频数据。计算机可读媒体16可包含能够将经编码视频数据从源装置12移动到目的地装置14的任一类型的媒体或装置。在一些实例中,计算机可读媒体16包含通信媒体以使源装置12能够实时地将经编码视频数据直接发射到目的地装置14。经编码视频数据可根据无线通信标准(例如,无线通信标准)加以调制,并发射到目的地装置14。通信媒体可包含任何无线或有线通信媒体,例如射频(RF)频谱或一或多个物理传输线。通信媒体可形成基于包的网络的部分,所述基于包的网络例如局域网、广域网或全球网络,例如因特网。通信媒体可包含路由器、交换机、基站或可适用于促进从源装置12到目的地装置14的通信的任何其它设备。目的地装置14可包含被配置成存储经编码视频数据和经解码视频数据的一或多个数据存储媒体。
在一些实例中,可将经编码数据从输出接口24输出到存储装置。类似地,经编码数据可由输入接口从存储装置存取。存储装置可包含各种分布式或本地存取的数据存储媒体中的任一个,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器、或用于存储经编码视频数据的任何其它适合的数字存储媒体。在另一实例中,存储装置可对应于可存储由源装置12产生的经编码视频的文件服务器或另一中间存储装置。目的地装置14可经由流式传输或下载从存储装置存取存储的视频数据。文件服务器可为能够存储经编码视频数据并且将经编码视频数据发射到目的地装置14的任何类型的服务器。实例文件服务器包含万维网服务器(例如,用于网站)、文件传送协议(FTP)服务器、网络连接存储(NAS)装置或本地磁盘驱动器。目的地装置14可通过包含因特网连接的任何标准数据连接来存取经编码的视频数据。这可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置的传输可为流式传输、下载传输或其组合。
所述技术可应用于支持多种多媒体应用中的任一个的视频译码,所述多媒体应用例如空中电视广播、有线电视传输、卫星电视传输、因特网流式视频传输(例如,根据HTTP的动态自适应流式传输(DASH))、数字视频编码到数据存储媒体上、存储在数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统10可以被配置成支持单向或双向视频传输,以支持例如视频流式传输、视频重放、视频广播和/或视频电话等应用。
计算机可读媒体16可包含瞬时媒体,例如无线广播或有线网络传输,或存储媒体(即,非暂时性存储媒体),例如硬盘、快闪驱动器、压缩光盘、数字视频光盘、蓝光光盘或其它计算机可读媒体。在一些实例中,网络服务器(未示出)可例如经由网络传输从源装置12接收经编码视频数据并且将经编码视频数据提供到目的地装置14。类似地,媒体生产设施(例如,光盘冲压设施)的计算装置可从源装置12接收经编码的视频数据且生产含有经编码的视频数据的光盘。因此,在各种实例中,计算机可读媒体16可理解为包含各种形式的一或多个计算机可读媒体。
目的地装置14的输入接口26(在本文中也称为“接收器”)接收(例如,解调)来自计算机可读媒体16的信息。计算机可读媒体16的信息可包含由视频编码器20的视频编码器20定义的也供视频解码器30使用的语法信息,所述语法信息包含描述块和其它经译码单元(例如,图片群组(GOP))的特性和/或处理的语法元素。存储媒体28可被配置成存储经编码视频数据,例如由输入接口26接收的经编码视频数据(例如,位流)。显示装置32向用户显示经解码视频数据,且可包含多种显示装置中的任一种,例如阴极射线管(CRT)、液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器,或另一类型的显示装置。
视频编码器20和视频解码器单元30各自可实施为多种适当的编码器和/或解码器电路中的任一个,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当部分地用软件实施所述技术时,装置可将用于软件的指令存储在合适的非暂时性计算机可读媒体中且在硬件中使用一或多个处理器执行所述指令以执行本公开的技术。视频编码器20和视频解码器30中的每一个可以包含在一或多个编码器或解码器中,所述编码器或解码器中的任一个可以集成为相应装置中的组合编码器/解码器(编解码器)的部分。
在一些实例中,视频编码器20和视频解码器30可根据视频译码标准(例如现有或将来的标准)操作。实例视频译码标准包含但不限于ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual和ITU-TH.264(也称为ISO/IEC MPEG-4AVC),包含其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展。此外,实例视频译码标准包含但不限于新视频译码标准,即高效视频译码(HEVC)或ITU-T H.265,包含其范围扩展、多视图扩展(MV-HEVC)和可缩放扩展(SHVC),已由ITU-T视频译码专家组(VCEG)和ISO/IEC动画专家组(MPEG)的关于视频译码的联合合作小组(JCT-VC)以及关于3D视频译码扩展开发的联合合作小组(JCT-3V)开发。最新的HEVC草案说明书(且在下文中称为HEVC WD)可从http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip/获得。作为实例,变换系数译码以及上下文自适应二进制算术译码(CABAC)可在HEVC的设计方面加以论述,但可一起用于视频译码的其它标准或实施方案中。
可在Benjamin Bross的文献JVET-J1001“通用视频译码(草案1)(VersatileVideo Coding(Draft 1))”中获得被称为H.266/通用视频译码(VVC)标准的新视频译码标准的早期草案,且可在Jianle Chen和Elena Alshina的文献JVET-J1002“对通用视频译码和测试模型1(VTM 1)的算法描述(Algorithm description for Versatile Video Codingand Test Model 1(VTM 1))”中获得其算法描述。然而,本公开的技术不限于任何特定译码标准。视频编码器20和视频解码器30可根据例如HEVC、VVC、专属或例如联合开发测试模型(JEM)的其它行业标准等任何视频译码标准进行操作。然而,本公开的技术不限于任何特定译码标准。
在HEVC和其它视频译码规范中,视频序列通常包含一系列图片。图片也可以称为“帧”。图片可包含三个样本阵列,标示为SL、SCb和SCr。SL是明度样本的二维阵列(即,块)。SCb是Cb彩度样本的二维阵列。SCr是Cr彩度样本的二维阵列。彩度样本在本文中还可称为“色度(chroma)”样本。在其它情况下,图片可为单色的且可仅包含亮度样本阵列。
为产生图片的经编码表示,视频编码器20可编码视频图片数据的块。视频编码器20可在位流中包含视频块的经编码表示。举例来说,视频编码器20产生经解码视频图片数据的一部分的上下文初始化。如本文中所使用,上下文初始化可指示在熵译码视频数据时使用的概率模型的参数。上下文初始化的实例可包含但不限于一或多个概率状态、一或多个初始化表或其它上下文初始化。在此实例中,视频编码器20使用上下文初始化熵编码位流中的一组语法元素。举例来说,在HEVC中,为产生图片的经编码表示,视频编码器20可产生按光栅扫描次序连续地排序的一组译码树单元(CTU)。CTU中的每一个可包含一或多个译码树块(CTB)并且可包含用以译码一或多个译码树块的样本的语法结构。举例来说,每一CTU可包含明度样本的译码树块、色度样本的两个对应译码树块,以及用以将译码树块的样本译码的语法结构。在单色图片或具有三个单独颜色平面的图片中,CTU可包含单个译码树块和用以对译码树块的样本进行译码的语法结构。译码树块可以是N×N样本块。CTU也可以被称为“树块”或“最大译码单元(LCU)”。语法结构可定义为在位流中按特定次序一起呈现的零或多个语法元素。CTB的大小在HEVC主规范中可在16×16到64×64的范围内(不过技术上可支持8×8CTB大小)。
译码单元(CU)可与CTU具有相同大小,不过还可为8×8的大小。每一译码单元用一个模式进行译码。当CU经帧间译码时,CU可进一步分割成2个或4个预测单元(PU),或当进一步分割不适用时变为一个PU。当一个CU中存在两个PU时,所述PU可为二分之一大小的矩形或具有CU的1/4或3/4大小的大小的两个矩形。当CU经帧间译码时,针对每一PU存在一组运动信息。
为预测CU,视频编码器20通常可通过帧间预测或帧内预测形成用于CU的预测块。帧间预测通常是指从先前经译码图片的数据预测CU,而帧内预测通常是指从同一图片的先前经译码数据预测CU。为执行帧间预测,视频编码器20可使用一或多个运动向量产生预测块。视频编码器20通常可执行运动搜索以识别例如就CU和参考块之间的差异来说紧密匹配CU的参考块。视频编码器20可使用绝对差总和(SAD)、平方差总和(SSD)、绝对差均值(MAD)、平方差均值(MSD),或其它这类差计算来计算差度量,以确定参考块是否紧密匹配当前CU。在一些实例中,视频编码器20可使用单向预测或双向预测来预测当前CU。
JEM/VVC还提供仿射运动补偿模式,其可被视为帧间预测模式。在仿射运动补偿模式中,视频编码器20可确定表示例如放大或缩小、旋转、透视运动或其它不规则运动类型的非平移运动的两个或更多个运动向量。
为执行帧内预测,视频编码器20可选择帧内预测模式来产生预测块。JEM/VVC的实例提供六十七个帧内预测模式,包含各种定向模式,以及平面模式和DC模式。一般来说,视频编码器20选择帧内预测模式,其描述与当前块(例如,CU的块)相邻的样本,从所述相邻样本预测当前块的样本。这类样本通常可在当前块的相同样本中的当前块的上方、下方和左侧,或左侧,其前提是假设视频编码器20以光栅扫描次序(从左到右,从上到下)译码CTU和CU。
如本公开中所描述,视频译码器可指视频编码器或视频解码器。类似地,视频译码单元可指视频编码器或视频解码器。同样地,在适用时,视频译码可指视频编码或视频解码。在本公开中,用语“基于”可指示仅基于,至少部分地基于,或一定程度上基于。本公开可使用术语“视频单元”或“视频块”或“块”来指代一或多个样本块以及用于对所述一或多个样本块中的样本进行译码的语法结构。视频单元的实例类型可包含CTU、CU、PU、变换单元(TU)、宏块、宏块分区等。在一些情形中,PU的论述可与宏块或宏块分区的论述互换。视频块的实例类型可包含译码树块、译码块和其它类型的视频数据块。
图2A和2B是说明实例四叉树二叉树(QTBT)结构29和对应译码树(CTU)31的概念图。A视频编码器可应用图2A和2B中说明的概念以产生将在位流中使用上下文初始化进行熵编码的视频数据。在一些实例中,视频解码器可应用图2A和2B中说明的概念以使用上下文初始化熵解码位流中的视频数据。实线表示四叉树拆分,且虚线指示二叉树拆分。在二叉树的每一拆分(即,非叶)节点中,用信号发送一个旗标以指示使用哪个拆分类型(即,水平或竖直),其中在此实例中,0指示水平拆分且1指示竖直拆分。对于四叉树拆分,不需要指示拆分类型,这是因为四叉树节点将块水平和竖直拆分成具有相等大小的4个子块。因此,视频编码器20可编码,且视频解码器30可解码用于QTBT结构29的区树层级(即,实线)的语法元素(例如拆分信息)和用于QTBT结构29的预测树层级(即,虚线)的语法元素(例如拆分信息)。视频编码器20可编码,且视频解码器30可解码用于由QTBT结构29的终端叶节点表示的CU的视频数据,例如预测和变换数据。
一般来说,图2B的CTU 31可与定义与QTBT结构29的第一层级和第二层级处的节点对应的块的大小的参数相关联。这些参数可包含CTU大小(表示样本中的CTU 31的大小)、最小四叉树大小(MinQTSize,表示允许的最小四叉树叶节点大小)、最大二叉树大小(MaxBTSize,表示允许的最大二叉树根节点大小)、最大二叉树深度(MaxBTDepth,表示允许的最大二叉树深度),以及最小二叉树大小(MinBTSize,表示允许的最小二叉树叶节点大小)。
视频编码器20可将CU的残余块分解为一或多个变换块。举例来说,如上文所描述,视频编码器20可使用四叉树分割将CU的残余块分解为一或多个变换块。变换块是被应用相同变换的矩形(例如,正方形或非正方形)样本块。CU的变换单元(TU)可包含一或多个变换块。举例来说,TU可包含明度样本的变换块、色度样本的两个对应变换块,以及用以变换所述变换块样本的语法结构。因此,CU的每一TU可具有亮度变换块、Cb变换块和Cr变换块。TU的明度变换块可为CU的明度残余块的子块。Cb变换块可为CU的Cb残余块的子块。Cr变换块可为CU的Cr残余块的子块。在单色图片或具有三个单独颜色平面的图片中,TU可包含单个变换块和用以对变换块的样本进行变换的语法结构。
视频编码器20可以将一或多个变换应用到TU的变换块以产生TU的系数块。举例来说,视频编码器20可将一或多个变换应用到TU的明度变换块以产生TU的明度系数块。系数块可以是变换系数的二维阵列。变换系数可为标量。视频编码器20可将一或多个变换应用至TU的Cb变换块以产生TU的Cb系数块。视频编码器20可将一或多个变换应用于TU的Cr变换块,以产生用于TU的Cr系数块。
在产生系数块之后,视频编码器20可量化系数块。量化总体上是指对变换系数进行量化以可能减少用以表示变换系数的数据量从而提供进一步压缩的过程。在一些实例中,视频编码器20跳过量化。在视频编码器20量化系数块之后,视频编码器20可产生指示经量化变换系数的语法元素。视频编码器20可对指示经量化变换系数的语法元素中的一或多个进行熵编码。举例来说,视频编码器20可对指示经量化变换系数的语法元素执行上下文自适应二进制算术译码(CABAC)。
CABAC是在H.264/AVC的D.Marpe、H.Schwarz和T.Wiegand的“H.264/AVC视频压缩标准中的基于上下文的自适应二进制算术译码(Context-based adaptive binaryarithmetic coding in the H.264/AVC video compression standard)”(IEEETrans.Circuits Syst.Video Technol.,第13卷,第7期,第620-636页,2003年7月)中介绍并且现在用于最新标准高效视频译码(HEVC)中的熵译码方法。CABAC涉及三个主要功能:二进制化、上下文建模,以及算术译码。二进制化将语法元素映射到称为二进制数串的二进制符号(二进制数)。上下文建模估计二进制数的概率。最后,二进制算术译码器基于估计的概率而将二进制数压缩为位。
可使用数种不同的二进制化过程,包含例如一元(U)、截短一元、k阶指数哥伦布(EGk)和固定长度(FL)。可在(但不限于)V.Sze和M.Budagavi的“HEVC中的高处理量CABAC熵译码(High throughput CABAC entropy coding in HEVC)”(IEEE电路和系统视频技术汇刊(Transactions on Circuits and Systems for Video Technology,TCSVT),第22卷,第12期,第1778-1791页,2012年12月)中找到二进制化的进一步细节。
上下文建模提供更准确的概率估计,这有助于达成高译码效率。因此,上下文建模是高度自适应的。不同上下文模型可用于不同二进制数,其中上下文模型的概率是基于先前经译码二进制数的值而更新。具有相似分布的二进制数可共享相同的上下文模型。视频译码器可基于语法元素的类型、语法元素(binIdx)中的二进制数位置、明度/色度、相邻信息等选择用于每一个二进制数的上下文模型。
可在每一个二进制数经译码之后发生上下文切换。视频译码器可将概率模型作为7位条目(例如,6位用于概率状态且1位用于最可能符号(MPS))存储于上下文存储器中并且使用上下文选择逻辑所计算的上下文索引进行寻址。视频译码器可使用与H.264/AVC相同的概率更新方法。然而,视频译码器可应用经修改以提高处理量的上下文选择逻辑。
对于CABAC,可通过以下递归方程式针对最小可能符号(LPS)导出64个代表性概率值pσ∈[0.01875,0.5]:
对于全部σ=1、…、63,pσ=α*pσ-1
此处,所述组概率的所选比例因子α≈0.9492和基数N=64均表示快速自适应需求之间的实例折中。最可能符号(MPS,即1-LPS)的概率等于1减LPS的概率。因此,可由CABAC表示的概率范围是[0.01875,0.98125(=1-0.01875)]。
在译码一个切片之前,可基于一些预定义值初始化概率模型。举例来说,给定qp标示的输入量化参数和initVal标示的预定义值,可如下导出概率模型的7位条目(由状态和MPS标示):
其中mpState和initState是中间变量。
应注意,导出的状态索引可隐式地包含MPS信息,例如,当状态索引是偶数值时,MPS值等于0;否则,当状态索引是奇数值时,MPS值等于1。initVal在具有8位精确度的范围[0,255]内。
应注意,预定义initVal可为切片相依的,例如那些概率模型的三个上下文初始化参数集特定地分别用于I切片、P切片和B切片中。以此方式,可启用视频编码器20以针对这些切片类型在三个初始化表之间进行选择,以便可以更好地适应不同译码情境和/或不同类型的视频内容。
可应用另一工具以允许用B(或P)切片初始化一个P(或B)切片。如下描述来自HEVC的相关语法元素、语义和解码过程。
HEVC的表9-4
语义可包含以下内容。
cabac_init_present_flag等于1指定在涉及图片参数集(PPS)的切片标头中存在cabac_init_flag。cabac_init_present_flag等于0指定在涉及PPS的切片标头中不存在cabac_init_flag。
cabac_init_flag指定用于确定在上下文变量的初始化过程中使用的初始化表的方法。当cabac_init_flag不存在时,推断其等于0。
在HEVC的表9-4中,列出由变量initType指定的针对三种初始化类型中的每一种进行初始化所需的ctxIdx。还列出包含用于初始化的initValue的值的表编号。对于P和B切片类型,initType的导出取决于语法元素的值。可如下导出变量initType:
对于给定概率状态,更新可取决于状态索引和识别为LPS或MPS的经编码符号的值。由于更新过程,可导出新概率状态,其包含可能经修改的LPS概率估计值并,且必要时还包含经修改MPS值。基本上,LPS概率的转变规则的导出可基于给定LPS概率pold与其经更新计数器部分pnew之间的以下关系:
为减小复杂性,在CABAC中,可通过各自具有7位无符号整数值的128个条目的至多两个表实现转变规则。给定状态索引i,更新之后的新状态索引当MPS值经译码时定义为TransIdxMPS[i],或当LPS值经译码时定义为TransIdxLPS[i]。
算术译码是基于递归区间划分。在一个实例算术译码器中,具有0到1的初始值范围基于二进制数的概率而划分成两个子区间。经编码位提供偏移,所述偏移当转换成二进制分数时选择两个子区间中的一个,其指示经解码二进制数的值。在每个经解码二进制数之后,范围经更新为等于选定的子区间,且区间划分过程自身重复。范围和偏移具有有限的位精确度,因此每当范围低于某一值时需要重新归一化以防止下溢。重新归一化可在每一个二进制数经解码之后发生。
算术译码可使用估计概率(上下文经译码)(称为常规译码模式)来完成,或假设0.5的相等概率(旁路译码,称为旁路模式)来完成。对于经旁路译码的二进制数,可通过移位将范围划分为子区间,而对于上下文译码二进制数可能需要查找表。HEVC与H.264/AVC使用相同的算术译码。
在下文进一步详细描述使用基于表的二进制算术译码和常规译码模式的流程。
视频编码器20可输出包含经编码视频数据的位流。举例来说,位流可包含形成视频数据和相关联数据的经译码图片的表示的位序列。因此,位流包含视频数据的经编码表示。在一些实例中,经译码图片的表示可包含块的经编码表示。因此,视频编码器20可在位流中用信号表示块的经编码表示中的块的变换系数。在一些情况下,视频编码器20可使用一或多个语法元素用信号表示块的每一变换系数
位流可包含网络抽象层(NAL)单元序列。NAL单元是含有NAL单元中的数据类型的指示和含有所述数据的呈按需要穿插有模拟阻止位的原始字节序列有效负载(RBSP)的形式的字节的语法结构。NAL单元中的每一个可包含NAL单元标头,且封装RBSP。所述NAL单元标头可包含指示NAL单元类型码的语法元素。由NAL单元的NAL单元标头指定的NAL单元类型代码指示NAL单元的类型。RBSP可为含有包封在NAL单元内的整数数目个字节的语法结构。在一些情况下,RBSP包含零个位。
视频解码器30可接收由视频编码器20产生的位流。另外,视频解码器30可解析位流以获得来自位流的语法元素。视频解码器30可至少部分地基于从位流获得的语法元素来重构视频数据的图片。重构视频数据的过程可大体与由视频编码器20执行的过程互逆。举例来说,视频解码器30可使用PU的运动向量确定用于当前CU的PU的预测性块。另外,视频解码器30可逆量化当前CU的TU的系数块。视频解码器30可对系数块执行逆变换以重构当前CU的TU的变换块。通过将当前CU的PU的预测性块的样本添加到当前CU的TU的变换块的对应样本,视频解码器30可重构当前CU的译码块。通过重构用于图片的每个CU的译码块,视频解码器30可重构图片。
出于说明的目的,已相对于HEVC标准的扩展描述了本公开的某些方面。然而,本公开中描述的技术可适用于其它视频译码过程,包括尚未开发的其它标准或专有视频译码过程。
图3是说明用于基于表的二进制算术译码的实例过程40的流程图。具体地,图3包含针对单个二进制数值(binVal)使用常规译码模式的包含概率估计的更新过程的二进制算术编码过程的流程图。
图3说明针对给定二进制数值binVal使用常规译码模式的二进制算术编码过程。算术编码引擎的内部状态可表征为两个数量:当前区间范围R和当前代码区间的基底(下端点)L。然而,应注意,将这些寄存器存储于CABAC引擎中(在常规和旁路模式两者中)的精确度可分别减小到9位和10位。可在如下四个基本步骤序列中执行在具有概率状态索引δ和MPS值(δ%2)的上下文中观察到的给定二进制值binVal的编码。
在步骤42中,根据给定概率估计值细分当前区间。此区间细分过程涉及如图3中的流程图的步骤42中所示的三个操作。首先,通过量化值Q(R)使用将整个范围28≤R≤29等分割成四个单元来估算当前区间范围R。但代替在CABAC引擎中显式地使用对应的代表性经量化范围值Q0、Q1、Q2和Q3,视频译码器可被配置成计算量化器索引ρ,其可通过移位和位掩蔽操作的组合来有效地计算,例如
ρ=(R>>6)&3 (5)
接着,如图3中所示,此索引ρ和概率状态索引δ用作2-D表TabRangeLPS中的用于确定(近似)LPS相关子区间范围RLPS的条目。在一些实例中,表TabRangeLPS可包含在8位精确度中针对0≤(δ>>1)≤63且0≤ρ≤3的pσ·Qρ的全部64×4个预计算的乘积值。
给定MPS的双子区间范围,在编码过程的步骤44中选择对应于给定二进制数值binVal的子区间。如果binVal等于MPS值(图3中的步骤44的“否”),那么选择下部子区间以使得L不变且过程继续到步骤47。如果binVal不等于MPS值(图3中的步骤44的“是”),那么选择范围等于RLPS的上部子区间(步骤43)。
步骤45和47可表示用于更新概率状态的常规算术编码过程。步骤48包含寄存器L和R的重新归一化(图3中的“RenormE”方框)。
实例2-D表TabRangeLPS可如下定义:
图4示出其中CU 49包含用字母a到j标注的10个TU和对应块分割51的实例。A视频编码器可应用图4中说明的概念以产生将在位流中使用上下文初始化进行熵编码的视频数据。在一些实例中,视频解码器可应用图4中说明的概念以使用上下文初始化熵解码位流中的视频数据。残余四叉树(RQT)的每一节点实际上是变换单元(TU)。以深度优先树遍历次序处理个别TU,其在图中说明为字母次序,后跟具有深度优先遍历的递归Z扫描。四叉树方法实现变换对残余信号的变化空间-频率特性的自适应。通常,具有较大空间支持的较大变换块大小提供较好频率分辨率。然而,具有较小空间支持的较小变换块大小提供较好空间分辨率。通过编码器模式20决策例如基于速率失真优化技术来选择空间分辨率和频率分辨率两者之间的折衷。速率失真优化技术计算用于每一译码模式(例如,特定RQT拆分结构)的译码位和重构失真的加权和(即,速率失真成本),且选择具有最少速率失真成本的译码模式作为最佳模式。
图4是基于残余四叉树的变换方案的说明。可在http://www.hhi.fraunhofer.de/fields-of-competence/image-processing/researchgroups/image-video-coding/hevc-high-effici ency-video-coding/transform-coding-using-the-residual-quadtree-rqt.html处描述关于HEVC中的基于残余四叉树的变换方案的另外细节。
可在RQT中定义三个参数:树的最大深度、允许的最小变换大小和允许的最大变换大小。在HEVC中,最小和最大变换大小可在范围从4×4到32×32个样本内变化,其对应于在先前段落中提到的所支持的块变换。RQT的允许的最大深度可约束TU的数目。最大深度等于零意味着如果每一所包含的TU达到允许的最大变换大小,例如32×32,那么CU无法进行任何进一步的拆分。
所有这些参数与RQT结构相互作用并且影响RQT结构。考虑根CB大小是64×64的情况,最大深度等于零,并且最大变换大小等于32×32。在此情况下,CTU必须分割至少一次,这是因为如果不这样做的话,将产生不被允许的64×64TB。例如最大RQT深度、最小变换大小和最大变换大小等RQT参数可在位流中在序列参数集层级发射。关于RQT深度,对于经帧内和帧间译码CU可指定且用信号表示不同的值。
可将四叉树变换应用于帧内和帧间残余块两者。通常,将当前残余四叉树分割的相同大小的DCT-II变换应用于残余块。然而,如果当前残余四叉树块是4×4并且通过帧内预测产生,那么应用上述4×4DST-VII变换。
在HEVC中,不采用例如64×64变换的较大大小变换,主要是由于考虑到其对于相对较小分辨率视频的有限的益处和相对高复杂性。
无论TU大小,变换单元的残余用非重叠系数群组(CG)译码,并且每个群组含有TU的4×4块的系数。举例来说,32×32TU具有全部64个CG,且16×16TU具有全部16个CG。TU内部的CG是根据某一预定义的扫描次序而译码。当译码每一CG时,视频译码器可根据4×4块的某一预定义扫描次序来扫描和译码当前CG内部的系数。图5说明用于含有4个CG的8×8TU 52的系数扫描50。如下是用于HEVC的残余译码语法。
下文论述HEVC中的实例语义。
last_sig_coeff_x_prefix指定在变换块内按扫描次序的最低有效系数的列位置的前缀。last_sig_coeff_x_prefix的值应处于0到(log2TrafoSize<<1)-1的范围内(包含端点)。
last_sig_coeff_y_prefix指定在变换块内按扫描次序的最低有效系数的行位置的前缀。last_sig_coeff_y_prefix的值应处于0到(log2TrafoSize<<1)-1的范围内(包含端点)。
last_sig_coeff_x_suffix指定在变换块内按扫描次序的最低有效系数的列位置的后缀。last_sig_coeff_x_suffix的值应处于0到(1<<((last_sig_coeff_x_prefix>>1)-1))-1的范围内(包含端点)。
如下导出变换块内按扫描次序的最低有效系数的列位置LastSignificantCoeffX:
如果last_sig_coeff_x_suffix不存在,那么以下适用:
LastSignificantCoeffX=last_sig_coeff_x_prefix
否则(last_sig_coeff_x_suffix存在),那么以下适用:
LastSignificantCoeffX=(1<<((last_sig_coeff_x_prefix>>1)-1))*(2+(last_sig_coeff_x_prefix&1))+
last_sig_coeff_x_suffix
last_sig_coeff_y_suffix指定在变换块内按扫描次序的最低有效系数的行位置的后缀。last_sig_coeff_y_suffix的值应处于0到(1<<((last_sig_coeff_y_prefix>>1)-1))-1的范围内(包含端点)。
如下导出变换块内按扫描次序的最低有效系数的行位置LastSignificantCoeffY:
如果last_sig_coeff_y_suffix不存在,那么以下适用:
LastSignificantCoeffY=last_sig_coeff_y_prefix
否则(last_sig_coeff_y_suffix存在),那么以下适用:
LastSignificantCoeffY=(1<<((last_sig_coeff_y_prefix>>1)-1))*
(2+(last_sig_coeff_y_prefix&1))+last_sig_coeff_y_suffix
当scanIdx等于2时,交换坐标如下:
(LastSignificantCoeffX,LastSignificantCoeffY)=Swap(LastSignificantCoeffX,LastSignificantCoeffY)
当导出使用扫描次序中的最低有效系数的行位置并且使用CG的系数扫描次序经译码的位置时,视频编码器可用信号表示除了最后一个CG(按扫描次序)以外的CG的一个旗标。最后一个CG的旗标可指示最后一个CG是否含有非零系数。
当对一个CG是否具有非零系数、例如CG旗标(HEVC规范中的coded_sub_block_flag)进行译码时,视频译码器可使用相邻CG的信息来建置上下文。更具体地说,用于译码CG旗标的上下文选择可定义为:
(右边CG可用&&右边CG的旗标等于1)||(下方CG可用&&下方CG的旗标等于1)
此处,右边和下方的CG是靠近当前CG的两个相邻CG。举例来说,在图5中,当对左上方4×4块进行译码时,右边CG被定义为右上方4×4块且下方CG被定义为左下方4×4块。
应注意,色度和明度可使用不同的上下文模型集,但可应用类似过程来选择一个上下文模型。
可在HEVC规范的9.3.4.2.4中找到可用于解码在位流中经熵解码的视频数据或编码将在位流中经熵编码的视频数据的上下文索引增量的导出的细节,所述HEVC规范可在JCTVC-L1003_v34,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip处获得。
下文论述一个CG内的变换系数译码。视频解码器可使用一个CG内的变换系数译码来解码在位流中经熵解码的视频数据。在一些实例中,视频编码器可使用一个CG内的变换系数译码来编码将在位流中经熵编码的视频数据。
在HEVC规范的9.3.4.2.5,9.3.4.2.6和9.3.4.2.7中定义上下文索引增量的选择的示范性细节,所述HEVC规范可在JCTVC-L1003_v34,http://phenix.it-sudparis.eu/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip处获得。
对于可含有非零系数的那些CG,可根据预定义的4×4系数扫描次序针对每一系数进一步译码有效旗标(significant_flag)、系数的绝对值(包含coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag和coeff_abs_level_remaining)和正负号信息(coeff_sign_flag)。变换系数等级的译码可分成多个扫描遍次。
在第一遍次中,视频译码器可译码在一个CG内的每一位置处的变换系数的所有第一个二进制数(或二进制数索引0,bin0),例外情况是,视频译码器可导出特定变换係数等于0。
变量sigCtx取决于相对于当前TU的左上方位置的当前方位、色彩分量索引cIdx、变换块大小和语法元素coded_sub_block_flag的先前经解码二进制数。视频译码器可取决于TU大小而应用不同规则。
在下文论述第二个二进制数译码的第二遍次。
视频译码器可在此遍次中应用coeff_abs_level_greater1_flags的译码。上下文建模取决于色彩分量索引、当前子块扫描索引和当前子块内的当前系数扫描索引。
在下文论述第三个二进制数译码的第三遍次。
视频译码器可在第三遍次中应用coeff_abs_level_greater2_flags的译码。所述上下文建模类似于coeff_abs_level_greater1_flags所使用的上下文建模。
应注意,为改进处理量,第二遍次和第三遍次可不处理CG中的所有系数。CG中的前八个coeff_abs_level_greater1_flags以常规模式译码。在那之后,视频译码器可将剩下的值在第五遍次中通过语法coeff_abs_level_remaining以旁路模式译码。类似地,视频译码器可译码CG中仅具有大于1的量值的第一系数的coeff_abs_level_greater2_flags。CG的具有大于1的量值的剩余系数使用coeff_abs_level_remaining对值进行译码。此技术将用于系数层级的常规二进制数的数目限制为每CG最大9个:8个用于coeff_abs_level_greater1_flags且1个用于coeff_abs_level_greater2_flags。
在下文中论述正负号信息的第四遍次。
在HEVC中,视频译码器可在第四扫描遍次中以旁路模式译码每一非零系数的正负号。对于每一CG,且取决于准则,当使用正负号数据隐藏(SDH)时可省略对最后一个非零系数(按反向扫描次序)的正负号的编码。替代地,视频译码器可使用预定义的约定将正负号值嵌入于CG的层级的总和的奇偶校验中:偶数对应于“+”且奇数对应于“-”。使用SDH的准则是CG的第一个非零系数与最后一个非零系数之间的在扫描次序上的距离。如果此距离等于或大于4,那么使用SDH。选择此值4是因为其可提供关于HEVC测试序列的最大增益。
在下文中论述剩余的二进制数的最后一个遍次。
视频译码器可在另一扫描遍次中译码剩余的二进制数。令系数的baseLevel定义如下。
baseLevel=significant_flag+coeff_abs_level_greater1_flag+coeff_abs_level_greater2_flag
(6)
其中旗标具有值0或1,且如果不存在,那么推断为0。接着,系数的绝对值如下。
absCoeffLevel=baseLevel+coeff_abs_level_remaining (7)
莱斯(Rice)参数可在每一CG的开头设置为0且其取决于参数的前一值和当前层级而有条件地经更新,如下:
如果absCoeffLevel>3×2m,那么m=min(4,m+1) (8)
视频译码器可在旁路模式中译码语法元素coeff_abs_level_remaining。另外,视频译码器可针对较小值应用采用哥伦布-莱斯码的HEVC并且针对较大值切换到指数-哥伦布码。所述码之间的转变点可为当一元码长度等于4时。参数更新过程可允许二进制化适应当在分布中观察到大值时的系数统计数据。
inter_pred_idc指定list0、list1或双向预测是否用于当前预测单元。语法元素具有至多两个二进制数,其两者均经CABAC上下文译码。如在表2中定义经二进制化的二进制数串。
表2
其中nPbW和nPbH分别表示当前明度预测块宽度和高度。
对于每一经帧间译码切片,例如P切片或B切片,视频译码器可基于以下规则选择上下文。如果(nPbW+nPbH)不等于12,那么视频译码器可使用四个上下文译码第一个二进制数并且可用一个上下文译码第二个二进制数。第一个二进制数的上下文选择可根据当前CU深度。在HEVC中,CU深度在0到3的范围内(包含端点)。
在JCTVC-F254和JCTV-G764中,提议新的算术译码器,所述JCTVC-F254可在T.Nguyen、D.Marpe、T.Wiegand的“非CE11:所提议的针对变换系数译码的清除(Non-CE11:Proposed Cleanup for Transform Coefficient Coding)”(JCTVC-H0228,第8次会议:美国加利福尼亚州圣何塞,2012年2月1-10日)处找到。举例来说,每个概率表示为从1到32767的整数。因而,可进行16位精确度的所有计算。代替在AVC CABAC中使用的查找表(TransIdxMPS和TransIdxLPS)和每一概率的指数网,可在JCTVC-F254和JCTV-G764中使用用于概率更新的均匀网和无乘法公式的显式计算。
在一些实例中,视频译码器可被配置成通过概率索引表示概率pi,其为从0到2k(其中k等于例如15)的整数Pi,即
pi=Pi/2k (9)
视频译码器可在现代算术编解码器中针对概率更新应用以下公式,可在D.Marpe、H.Schwarz和T.Wiegand的“H.264/AVC视频压缩标准中的基于上下文的自适应二进制算术译码(Context-based adaptive binary arithmetic coding in the H.264/AVC videocompression standard)”(IEEE Trans.Circuits Syst.Video Technol.,第13卷,第7期,第620-636页,2003年7月)处找到所述现代算术编解码器的更多细节。
pnew=αy+(1-α)pold。 (10)
此处,如果当前符号匹配最可能符号(MPS),那么y等于“零”,否则,y等于“一”。此公式提供最小可能符号(LPS)的概率的估计值。参数N=1/α是对当前更新具有显著影响的先前经编码二进制数的数目的量度(“窗口大小”)。
如果假设α是二的幂(α=1/2M,M是正整数),且给定方程式(9)的Pi为输入pold,那么经更新概率索引可重写为:
Pi=((2k)>>M)+Pi-(Pi>>M) (11)。
在示范性的一概率更新模型中,M可针对所有上下文模型为固定的且仅一个寄存器用以记录经更新概率。在一些实例中,M可设置成等于6。也就是说,窗口大小可等于64。概率更新过程可表示为:
Pnew=((2k)>>6)+Pi-(Pi>>6) (12)
在一些实例中,视频译码器可使用具有不同α的数个概率估计(而非仅一个)并且将其组合为用于下一个二进制数概率预测的加权平均值。
pi new=αiy+(1-αi)pi old (13)
pnew=Σβipi new。 (14)
公式(13)中针对每一概率pi的计算是独立的。
图6是多参数概率更新图(两个概率式模型)的说明。在图6的过程60中,视频编码器20和/或视频解码器30(在本文中也简单地称为“视频译码器”)可根据如下方程式15和16计算两个概率(62)。
在实例技术中,用于概率估计的线性组合可包含对应N0=16且N1=256(Ni=1/αi)的两个被加数:
P0=(Y>>4)+P0-(P0>>4) (15)
P1=(Y>>8)+P1-(P0>>8) (16)
P=(P0+P1+1)>>1 (17)
此处,在最后一个译码二进制数是“1”的情况下,Y=215,且在最后一个译码二进制数是“0”的情况下,Y=0,且“>>M”是针对M位的算术右移。
在短转变时段内,可使用具有快速更新速度的短距离预测(例如,较小窗口大小)。但在接近最优值的稳定化之后,两个概率式更新模型对于大部分上下文模型可更准确。视频译码器可从最后一个初始化起使用更新计数器。在每一更新之后,视频译码器可使计数器增加一(64)。视频译码器可确定计数器是否超过阈值X(例如,50)(66)。在计数器超过某一阈值(66的“是”)之前,视频译码器可仅使用短“窗口大小”模型(方程式15)(68)。当计数器达到阈值(66的“否”)时,视频译码器可切换到更准确的两个概率式更新模型(方程式17)(70)。可通过512×64查找表执行范围计算过程。
视频译码器(例如,视频编码器20和视频解码器30)可应用不同的上下文初始化技术。双参数(分别由asCtxInit[0]和asCtxInit[1]标示)对于一个上下文模型可为预定义的。
Int iQPreper=I slice?37:40;
Int c=asCtxInit[0]+asCtxInit[1]*(iQp-iQPreper);
iP0=min(max(1,c),32767);
对于一个概率式更新模型,视频译码器可通过具有15位精确度的iP0表示上下文模型。对于两个概率式更新模型,视频译码器可另外使用可初始地设置成等于iP0的变量iP1和已经译码多少个二进制数的计数器来表示上下文模型。
视频译码器可将asCtxInit[0]和asCtxInit[1]两者存储成15位。另外或替代地,如下文所论述,视频译码器可被配置成执行根据本公开用于上下文初始化的技术。
视频译码器可继承在译码或解码位于先前经译码图片中的一个块(或大于一个块)之后的上下文信息以作为用于译码当前切片的经初始化上下文信息。在一些实例中,视频译码器可将用于继承上下文信息的技术应用于P和/或B切片。在一些实例中,视频译码器可预先定义和固定一个完整序列的‘一个块’的位置。在一些实例中,视频译码器可将最大译码单元大小(LCU)标示为N×N,且图片宽度为W且图片高度为H。由PicWidthInCtbsY标示的一个LCU行内的LCU的数目等于Ceil(W÷N),其由PicHeightInCtbsY标示的LCU行的数目等于Ceil(H÷N),其中函数Ceil(x)表示大于或等于x的最小整数。
在一些实例中,视频译码器可将位置定义为:TargetCUAddr=(PicWidthInCtbsY*PicHeightInCtbsY)/2+PicWidthInCtbsY/2。此外,当TargetCUAddr等于或大于(PicWidthInCtbsY*PicHeightInCtbsY),(例如,PicHeightInCtbsY等于1)时,视频译码器可将TargetCUAddr重置为(PicWidthInCtbsY*PicHeightInCtbsY-1),其对应于最后一个LCU。
在一些实例中,视频译码器可将位置定义为先前经译码图片的最后一个LCU,或一个帧内的中心LCU(即,PicWidthInCtbsY*PicHeightInCtbsY/2),或中心LCU行的最后一个LCU(即,PicWidthInCtbsY*(PicHeightInCtbsY/2)-1),或第k个LCU行的最后一个LCU(例如,k等于1)。
在一些实例中,视频译码器可将位置定义为先前经译码图片中的第一切片的最后一个LCU。在一些实例中,视频译码器可将位置定义为先前经译码图片中的第一切片的中心LCU。假设numLCUinSlice表示第一切片中的LCU数目,视频译码器可将位置定义为:TargetCUAddr=numLCUinSlice/2。
不同分辨率可具有对译码块的位置的不同定义。在一些实例中,视频译码器可在SPS或PPS或切片标头中用信号表示‘一个块’的位置切片标头/图片参数集中。在一些实例中,视频译码器可在切片标头/图片参数集中用信号表示‘先前经译码图片’的指示,例如参考图片索引、图片次序计数器(POC)差。在一些实例中,视频译码器可将‘先前经译码图片’定义为刚好在当前图片之前经译码/解码的图片。在一些实例中,视频译码器可将‘先前经译码图片’定义为如下图片:其为在当前图片和与当前切片具有相同切片类型的前一图片中的第一切片之前的经编码/解码图片。在一些实例中,视频译码器可将‘先前经译码图片’定义为如下图片:其为在当前图片和与当前切片具有相同的经初始化量化参数的前一图片中的第一切片之前的经编码/解码图片。在一些实例中,视频译码器可将‘先前经译码图片’定义为含有如下的先前经译码切片的图片:所述先前经译码切片与当前切片具有相同切片类型、或相同切片类型和量化参数两者、或相同切片类型和时间层两者和/或具有相同的经初始化量化参数。在一些实例中,‘先前经译码图片’可为存在于经解码图片缓冲器(DPB)中的图片且视频译码器可使用先前经译码(例如,经编码、经解码等)图片作为当前图片的参考图片,特定来说,如在基于HEVC的平台中,前一切片可属于参考图片集(RPS)中的图片,或甚至是RPS的以下子集中的一个中的图片:RefPicSetStCurrBefore、RefPicSetStCurrAfter和RefPicSetLtCurr。
如果在一个帧内图片之后按显示次序经译码的所有图片不具有相同切片类型和相同的经初始化量化参数,那么视频译码器可停用上下文信息的继承。在此情况下,视频译码器可应用使用固定上下文信息的初始化技术。视频译码器可将本文中所描述的用于上下文初始化的技术仅应用于特定的上下文模型。替代地或另外,‘一个块’的位置对于不同上下文模型可为不同的。以上技术可组合。当另外启用cabac_init_present_flag时,包含在‘先前经译码图片’中的切片应与当前切片具有相同的类型。也就是说,举例来说,视频译码器可能不使用用信号表示的cabac_init_flag。替代地或另外,视频译码器可基于cabac_init_flag修改当前切片的切片类型并且接着选择‘先前经译码图片’。
在下文中论述JEM中的通过时间预测进行的上下文初始化(CITP)。如本文中所使用,时间预测可指帧间预测、运动补偿或另一时间预测。视频译码器可应用JEM中的使用本文中所描述的技术的CITP来存储(连续)量化参数的单个概率状态。
假设视频译码器译码(例如,编码、解码等)用一个切片译码的的一个图片,视频译码器可应用以下规则导出上下文模型的经初始化状态。如果不满足条件,那么视频译码器可使用原始上下文初始化技术(例如,来自固定初始化表)。
先前经译码图片可包含具有与当前切片类型相同的切片类型的切片。替代地或另外,经初始化切片量化参数(QP)与当前切片中使用的经初始化切片QP相同。
视频译码器可记录在用先前经译码图片中的预定义地址译码一个块之后的状态并且可使用所述记录的状态作为当前切片的经初始化状态。在一些实例中,‘一个块’表示最大译码单元(LCU)。举例来说,图7是具有多个LCU和代表性LCU 74的视频数据的一个切片72的实例的说明。视频译码器可使用经重新译码的状态确定用于熵译码的上下文初始化。
视频译码器可将最大译码单元(LCU)大小标示为N×N,且图片宽度标示为W,图片高度标示为H。标示为PicWInCtbsY的一个LCU行内的LCU的数目等于Ceil(W÷N),且标示为PicHInCtbsY的LCU行的数目等于Ceil(H÷N),其中函数Ceil(x)返回大于或等于x的最小整数。在一个实例中,视频译码器可将代表性LCU的地址定义为:
TargetCUAddr=(PicWInCtbsY*PicHInCtbsY)/2+PicWInCtbsY/2 (18)
此外,当TargetCUAddr等于或大于(PicWInCtbsY*PicHInCtbsY)(例如,PicHInCtbsY等于1)时,视频译码器可将TargetCUAddr重新设置为(PicWInCtbsY*PicHInCtbsY-1),其对应于一个图片中的最后一个LCU。
图8是译码次序的实例的说明。在一些实例中,此外,不需要按显示次序在新的经帧内译码图片之后将上述技术应用于第一数个图片(首次出现的新切片类型或新QP)。这是为了避免在用在译码I图片之后发生的照片译码I图片之前发生图片随机存取问题。举例来说,如图8中所示,具有从28到35的图片次序计数(POC)的图片75的译码/解码次序是:32、28、…、30、29、31、40、36、34、33、35。
在显示次序中,具有等于40的POC的图片是在具有等于32的POC的I图片之后解码的第一图片。虽然具有等于24的POC的图片与具有等于40的POC的图片具有相同的QP表情具有相同的切片类型,但可能不允许视频译码器使用具有等于24的POC的图片的经译码信息进行预测,这是因为具有等于40的POC的图片是在具有等于32的POC的I图片之后,且具有等于24的POC的图片是在具有等于32的POC的I图片之前。类似地,可能不允许视频译码器使用具有等于31的POC的图片的经译码信息预测具有等于33的POC的图片,这是因为具有等于33的POC的图片是在具有等于32的POC的I图片之后,且具有等于31的POC的图片是在具有等于32的POC的I图片之前。相比之下,可允许视频译码器使用具有等于33的POC的图片的经译码信息预测具有等于35的POC的图片,这是由于两个图片均将在具有等于32的POC的I图片之后显示。
当不允许从先前经译码图片进行预测时,视频译码器可应用如HEVC(例如,固定初始化表)中定义的的初始化技术。
图9说明具有等于16的GOP 77的随机存取配置的实例。如HEVC规范中定义,temporalId是用于NAL单元的索引。参考图片列表、子位流提取和/或其它信息可依赖于temporalId。在图9中给出实例,其中GOP大小等于16。在此实例中,支持五个时间层(由T0到T4指示)。图片的译码/解码次序是:图片次序计数器(POC)0、POC 16、POC 8、POC 4、POC 2、POC 1、POC 3、POC 6、POC 5、POC 7、POC 12、POC 10、POC 9、POC 11、POC 14、POC 13、POC15。在图9的实例中,POC 0和POC 16表示第一时间层(‘To’),POC 8表示第二时间层(‘T1’),POC 4和POC 12表示第三时间层(‘T2’),POC2、POC 6、POC 10和POC 14表示第四时间层(‘T3’),且POC 1、POC 3、POC 5、POC 7、POC 9、POC 11、POC 13和POC 15表示第一时间层(‘T4’)。
在第一实例中,假设存在共计N个上下文。每一上下文与K位变量相关联以指示概率状态。如果一个GOP含有例如针对最差情况具有不同QP的多个帧,那么52允许的QP可用于GOP内的帧。在此情况下,用于存储上下文概率状态的存储器将为N*K*52。
在第二实例中,如何处置一个图片含有多个切片的情况和/或如何处置具有不同切片QP的切片,和/或多个QP用于译码用于CITP的一个帧。
在第三实例中,假设存在两个GOP,第一GOP中的帧具有T3(如图9中所描绘)且QP等于X,且第二GOP中的另一帧具有T1且QP等于X。在当前设计中,可从第1GOP中的帧初始化第2GOP中的帧,这是非所要的。这是因为其可中断用较低时间层索引解码帧应独立于具有较高时间层索引的帧的基础规则。
本公开的技术可克服上文所论述的各种问题。特定来说,在本文中如下描述用于CITP的存储器减小/性能改进的技术。可单独应用以下详细列举的技术。另外或替代地,可应用所述技术的任何组合,可应用以下技术和/或2016年12月1日公开的标题为“使用增强型上下文自适应二进制算术译码(CABAC)设计译码数据(CODING DATA USINGAN ENHANCEDCONTEXT-ADAPTIVE BINARY ARITHMETIC CODING(CABAC)DESIGN)”的美国专利申请案2016-0353112中的技术的任何组合,所述美国专利申请案以全文引用的方式并入本文中。
视频译码器可使用量化参数(QP)。在2016年12月1日公开的标题为“使用增强型上下文自适应二进制算术译码(CABAC)设计译码数据(CODING DATA USING AN ENHANCEDCONTEXT-ADAPTIVE BINARY ARITHMETIC CODING(CABAC)DESIG)”的美国专利申请案2016-0353112中描述QP的实例,所述美国专利申请案以全文引用的方式并入本文中。在一些实例中,视频译码器可使用使QP与明度分量相关联的CITP。替代地,视频译码器可使用使QP与色度分量相关联的CITP。在一些实例中,‘QP’可指示与切片相关联的QP。在一些实例中,‘QP’可指示与含有多个译码块(例如拼片)的其它类别的单元相关联的QP。
代替存储和/或更新每一QP的概率状态,视频译码器可被配置成存储和/或更新共享相同概率状态的连续QP(在本文中也称为“连续量化参数值”)的概率状态。在一些实例中,连续量化参数值可共享单个概率状态,然而,在其它实例中,连续量化参数值可共享多个概率状态。换句话说,举例来说,视频译码器可使用用于使用时间预测解码的视频数据的图片的一部分的连续量化参数(例如,在包含端点的QP范围[q0,q1]内)确定上下文初始化(例如,包含概率状态),并且以量化参数的单个概率状态(或多个概率状态)存储上下文初始化。如本文中所使用,图片的一部分可指例如(但不限于)图片的切片、图片的最大译码块、图片的拼片、或图片的另一部分。在一些实例中,对于在在范围[q0,q1]内(包含端点)的帧/切片QP,视频译码器可从与相同QP索引相关联的那些概率状态初始化概率状态。在一些实例中,对于在范围[q0,q1]内(包含端点)的帧/切片QP,视频译码器可存储概率状态以更新与相同QP索引相关联的状态。在这些实例中,多个量化参数可在量化参数值范围(例如,[q0,q1])内为连续的,且连续QP可共享相同的概率状态。
视频译码器可在SPS和/或PPS和/或VPS和/或切片标头中用信号表示旗标以指示CITP的使用量。在一些实例中,此外,即使在SPS/PPS/VPS中用信号表示的旗标指示可启用CITP,视频译码器仍可另外例如在切片标头中用信号表示较低层级旗标,指示是启用还是停用CITP。当针对一个单元(例如切片)停用CITP时,视频译码器可使用固定表应用初始化技术。在一些实例中,视频译码器可用信号表示索引以指示初始化方法的索引。
视频译码器可将CITP技术应用于某些时间层。换句话说,举例来说,视频译码器可响应于确定启用用于图片的部分的时间层而存储多个量化参数的单个概率状态。
在一些实例中,视频译码器可停用用于最高时间层的CITP技术。换句话说,举例来说,视频译码器可响应于用于第二图片的第二部分的时间层是用于图片群组的多个时间层中的最高时间层而停用用于第二图片的第二部分的时间层。
在一些实例中,对于最高时间层,视频译码器可从低于当前时间层的时间层更新概率状态。换句话说,举例来说,当用于图片的时间层低于用于图片群组的多个时间层中的最高时间层时,为存储单个概率状态,视频译码器可更新用于最高时间层的单个概率状态。
在一些实例中,当存在具有相同时间层或更小时间层的至少一个先前经译码图片和/或切片或一个参考图片时,视频译码器可启用CITP技术。换句话说,举例来说,如果仅存在具有更大时间层索引的图片(或参考图片),那么视频译码器可被配置成停用CITP技术。换句话说,视频译码器可响应于解码不大于第一时间层的第二时间层中的前一图片而确定启用用于当前图片的一部分的第一时间层。
视频译码器可(仅)启用用于某些量化参数的CITP技术并且(自动)停用剩余的量化参数。在此情况下,举例来说,对于一些量化参数,视频译码器可能不存储和/或更新概率状态。换句话说,举例来说,视频译码器可响应于确定启用量化参数而存储多个量化参数的单个概率状态。另外,举例来说,对于一些量化参数,视频译码器可强制概率状态的初始化是从固定初始化表开始。在一些实例中,QP的一或多个最小量化参数(或命名为QP的阈值)和/或视频译码器启用的量化参数的范围是预定义的。换句话说,视频译码器可响应于确定每一量化参数是在量化参数值范围内而确定启用量化参数。在一些实例中,视频译码器可将最小QP(阈值)定义为17。在又另一实例中,视频译码器可将一个QP范围定义为[18,51]。
在一些实例中,视频译码器可将最小QP和/或QP范围用信号表示为例如SPS、PPS、视图参数集(VPS)和/或其它类别的高层级语法元素。换句话说,举例来说,视频解码器可使用指示来自位流的量化参数值范围的一或多个符号来确定量化参数值范围。在一些实例中,视频编码器可使用指示来自位流的量化参数值范围的一或多个符号用信号表示量化参数值范围。
在一些实例中,‘QP’可指示与图片相关联的QP。换句话说,举例来说,视频译码器可响应于确定与图片的部分相关联的量化参数满足阈值而启用CITP(例如,存储多个量化参数的单个概率状态)。举例来说,当一个图片(含有具有高于图片QP的切片QP的多个切片)的QP小于阈值时,视频译码器可针对图片内的所有切片停用CITP。在一些实例中,‘QP’可指示与切片相关联的QP。在此实例中,视频译码器可针对图片内的一个切片启用CITP,但针对同一图片内的另一切片停用CITP。在一些实例中,‘QP’可指示与含有多个译码块(例如拼片)的其它类别的单元相关联的QP。
视频译码器可将上下文分类成多个群组。举例来说,视频译码器可针对一个群组启用CITP并且针对一个图片/切片/含有多个译码块的其它类别的单元内的另一群组停用CITP。换句话说,举例来说,视频译码器可响应于确定启用指配给所述部分的群组而存储多个量化参数的单个概率状态。在一些实例中,所述群组可按帧内预测模式或帧间预测模式、明度分量或色度分量、滤波器参数或其它参数、变换系数信息译码或其它信息或其它群组中的一或多个进行分类。在一些实例中,视频译码器可将与帧内(例如帧内预测模式)和帧间译码(例如合并旗标)相关联的上下文分类成两个群组。在一些实例中,视频译码器可将与明度和色度分量相关联的上下文分类成两个群组。在一些实例中,是否将CITP应用于明度相关上下文可取决于与明度分量相关联的QP,而是否将CITP应用于色度相关上下文可取决于与一个/两个色度分量相关联的QP。在一些实例中,视频译码器可将与滤波器参数和其它参数相关联的上下文分类成两个群组。在一些实例中,视频译码器可将与变换系数译码和其它译码相关联的上下文分类成两个群组。
在图10的实例中,当一个图片80拆分成多个切片(或含有多个译码块的其它所述)时,视频译码器可在译码一个或多个代表性LCU 82之后存储和/或使用概率状态初始化后续切片。在一些实例中,如果多个切片与相同切片明度和/或色度QP相关联,那么如图10中所描绘,可使用如2016年12月1日公开的标题为“使用增强型上下文自适应二进制算术译码(CABAC)设计译码数据(CODING DATA USING AN ENHANCED CONTEXT-ADAPTIVE BINARYARITHMETIC CODING(CABAC)DESIGN)”的美国专利申请案2016-0353112中定义的规则选择一个代表性LCU,所述美国专利申请案以全文引用的方式并入本文中。
在图11的实例中,视频译码器可选择用于每一切片的一个代表性LCU。如所示出,视频译码器可选择用于图片90的Slice0的代表性LCU 92、用于图片90的Slice1的代表性LCU 94,和用于图片90的Slice2的代表性LCU 96。举例来说,如果多个切片与不同切片明度和/或色度QP相关联,那么如图11中所描绘,视频译码器可使用如美国专利申请案2016-0353112中定义的规则选择用于每一切片的一个代表性LCU。在此情况下,用于导出代表性LCU的地址的图片宽度和高度可替换为切片宽度和高度。在一些实例中,如果多个切片中的两个共享相同切片明度和/或色度QP,那么视频译码器可选择(仅)一个代表性LCU。
当一个图片拆分成一个或多个切片(或含有多个译码块的其它单元),且可启用多个QP以用于译码一个切片时,视频译码器可应用以下技术。在一些实例中,视频译码器可使用与切片(或含有当前切片或其它单元的图片)相关联的明度QP选择具有相同明度QP的所存储概率状态。在一些实例中,视频译码器可使用与切片(或含有当前切片或其它单元的图片)相关联的明度QP更新具有相同明度QP的所存储概率状态。在一些实例中,视频译码器可使用切片(或含有当前切片或其它单元的图片)内的一个或多个块的功能导出QP并且用相同的所导出QP更新所存储的概率状态。在一些实例中,视频译码器可定义来自用以导出QP的切片内的所选择的块的平均/最小/最大QP。
图12是说明可以实施本公开的技术的实例视频编码器20的框图。图12是出于解释的目的而提供,并且不应被视为将技术限制为本公开中所大致示范和描述者。本公开的技术可适用于各种译码标准或方法。
在图12的实例中,视频编码器20包含预测处理单元100、视频数据存储器101、残余产生单元102、变换处理单元104、量化单元106、逆量化单元108、逆变换处理单元110、重构单元112、滤波器单元114、经解码图片缓冲器116和熵编码单元118。预测处理单元100包含帧间预测处理单元120和帧内预测处理单元126。帧间预测处理单元120可包含运动估计单元和运动补偿单元(未示出)。应理解,视频编码器20可执行本公开的一或多种技术。
视频数据存储器101可被配置成存储待由视频编码器20的组件编码的视频数据。可例如从视频源18获得存储在视频数据存储器101中的视频数据。经解码图片缓冲器116可为存储参考视频数据以供视频编码器20在以例如帧内或帧间译码模式编码视频数据时使用的参考图片存储器。视频数据存储器101和经解码图片缓冲器116可由多种存储器装置中的任一个形成,例如动态随机存取存储器(DRAM),包含同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM),或其它类型的存储器装置。视频数据存储器101和经解码图片缓冲器116可由相同存储器装置或单独的存储器装置提供。在各种实例中,视频数据存储器101可与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。视频数据存储器101可与图1的存储媒体20相同或为所述存储媒体的部分。
视频编码器20接收视频数据。视频编码器20可对视频数据的图片的切片中的每一CTU进行编码。CTU中的每一个可以与图片的大小相等的亮度译码树块(CTB)以及对应的CTB相关联。作为对CTU进行编码的一部分,预测处理单元100可执行分割以将CTU的CTB划分为逐渐更小的块。更小的块可以是CU的编码块。举例来说,预测处理单元100可根据树结构分割与CTU相关联的CTB。
视频编码器20可对CTU的CU进行编码以产生CU的经编码表示(即,经译码CU)。作为对CU进行编码的部分,预测处理单元100可在CU的一或多个PU当中分割与CU相关联的译码块。因此,每一PU可与亮度预测块和对应的色度预测块相关联。视频编码器20和视频解码器30可支持具有各种大小的PU。如上文所指示,CU的大小可指CU的亮度译码块的大小,且PU的大小可指PU的亮度预测块的大小。假定特定CU的大小为2N×2N,视频编码器20及视频解码器30可支持用于帧内预测的2N×2N或N×N的PU大小,及用于帧间预测的2N×2N、2N×N、N×2N、N×N或类似大小的对称PU大小。视频编码器20和视频解码器30还可支持用于帧间预测的2N×nU、2N×nD、nL×2N以及nR×2N的PU大小的不对称分割。
帧间预测处理单元120可通过对CU的每个PU执行帧间预测来产生用于PU的预测数据。PU的预测数据可以包含PU的预测块以及PU的运动信息。帧间预测处理单元120可根据PU是否在I切片、P切片或B切片中而对CU的PU执行不同操作。在I切片中,所有PU都是经帧内预测。因此,如果PU是在I切片中,那么帧间预测处理单元120不对PU执行帧间预测。因此,对于在I模式中编码的块,经预测块是使用来自同一帧内的经先前编码的相邻块的空间预测而形成的。如果PU在P切片中,那么帧间预测处理单元120可使用单向帧间预测以产生PU的预测性块。如果PU在B切片中,那么帧间预测处理单元120可使用单向或双向帧间预测来产生PU的预测性块。
帧内预测处理单元126可通过对PU执行帧内预测而产生PU的预测性数据。PU的预测性数据可包含PU的预测性块和各种语法元素。帧内预测单元126可对I切片、P切片和B切片中的PU执行帧内预测。
为了对PU执行帧内预测,帧内预测处理单元126可使用多个帧内预测模式产生PU的预测性数据的多个集合。帧内预测处理单元126可使用来自相邻PU的样本块的样本以产生用于PU的预测块。假定对于PU、CU及CTU采用从左到右、从上到下的编码次序,相邻PU可以在所述PU的上方、右上方、左上方或左方。帧内预测处理单元126可使用各种数目个帧内预测模式,例如,33个定向帧内预测模式。在一些实例中,帧内预测模式的数目可以取决于与PU相关联的区的大小。
预测处理单元100可从PU的由帧间预测处理单元120产生的预测性数据或PU的由帧内预测处理单元126产生的预测性数据当中选择CU的PU的预测性数据。在一些实例中,预测处理单元100基于预测性数据集的速率/失真量度选择CU的PU的预测性数据。所选择的预测数据的预测块在本文中可被称作所选择的预测块。
残余产生单元102可基于用于CU的译码块(例如,明度、Cb和Cr译码块)和用于CU的PU的选定预测性块(例如,预测性明度、Cb和Cr块),产生用于CU的残余块(例如,明度、Cb和Cr残余块)。举例来说,残余产生单元102可产生CU的残余块以使得残余块中的每一样本具有等于CU的译码块中的样本与CU的PU的对应选定预测性样本块中的对应样本之间的差的值。
变换处理单元104可以执行四叉树分割以将与CU相关联的残余块分割成与CU的TU相关联的变换块。因此,TU可与明度变换块及两个色度变换块相关联。CU的TU的明度变换块以及色度变换块的大小和位置可以或可不基于CU的PU的预测块的大小和位置。被称为“残余四叉树”(RQT)的四叉树结构可包含与区域中的每一者相关联的节点。CU的TU可以对应于RQT的叶节点。
变换处理单元104可通过将一或多个变换应用到TU的变换块而产生用于CU的每个TU的变换系数块。变换处理单元104可以将各种变换应用到与TU相关联的变换块。举例来说,变换处理单元104可以将离散余弦变换(DCT)、定向变换或概念上类似的变换应用于变换块。在一些实例中,变换处理单元104并不将变换应用到变换块。在这类实例中,变换块可被视作变换系数块。
量化单元106可量化系数块中的变换系数。量化过程可减小与变换系数中的一些或全部相关联的位深度。举例来说,n位变换系数可在量化期间舍入到m位变换系数,其中n大于m。量化单元106可基于与CU相关联的量化参数(QP)值量化与CU的TU相关联的变换系数块。视频编码器20可通过调整与CU相关联的QP值来调整应用于与CU相关联的系数块的量化程度。量化可引入信息损耗。因而,经量化变换系数可具有比初始系数低的精确度。
逆量化单元108和逆变换处理单元110可分别将逆量化和逆变换应用于系数块,以从系数块重构残余块。重构单元112可将重构残余块添加到来自预测处理单元100所产生的一或多个预测性块的对应样本,以产生与TU相关联的重构变换块。通过以此方式重构CU的每一TU的变换块,视频编码器20可重构CU的译码块。
滤波器单元114可执行一或多个解块操作来减少与CU相关联的译码块中的块效应。在滤波器单元114对经重构译码块执行一或多个解块操作之后,经解码图片缓冲器116可存储经重构译码块。帧间预测处理单元120可使用含有经重构译码块的参考图片来对其它图片的PU执行帧间预测。另外,帧内预测处理单元126可使用经解码图片缓冲器116中的经重构构译码块来对与CU处于相同图片中的其它PU执行帧内预测。
熵编码单元118可从视频编码器20的其它功能组件接收数据。举例来说,熵编码单元118可从量化单元106接收系数块,且可从预测处理单元100接收语法元素。熵编码单元118可对数据执行一或多个熵编码操作以生成经熵编码数据。例如,熵编码单元118可以对数据执行上下文自适应可变长度译码(CAVLC)操作、CABAC操作、可变到可变(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间分割熵(PIPE)译码操作、指数哥伦布编码操作或另一类型的熵编码操作。视频编码器20可输出包含由熵编码单元118生成的经熵编码数据的位流。举例来说,位流可包含表示CU的变换系数的值的数据。熵编码单元118可被配置成执行CITP。举例来说,熵编码单元118可被配置成存储上下文初始化并且使用上下文初始化进行熵编码。
图13是说明被配置成实施本公开的技术的实例视频解码器30的框图。图13是出于解释的目的而提供,并且不应被视为将技术限制为本公开中所大致示范和描述者。出于解释的目的,本公开在HEVC译码的情形中描述视频解码器30。然而,本公开的技术可适用于其它译码标准或方法。应理解,视频解码器30可执行本公开的一或多种技术。在一些实例中,编码器20和解码器30可被配置成执行互逆技术。
在图13的实例中,视频解码器30包含熵解码单元150、视频数据存储器151、预测处理单元152、逆量化单元154、逆变换处理单元156、重构单元158、滤波器单元160和经解码图片缓冲器162。预测处理单元152包含运动补偿单元164和帧内预测处理单元166。在其它实例中,视频解码器30可包含更多、更少或不同功能组件。
视频数据存储器151可存储待由视频解码器30的组件解码的经编码视频数据,例如经编码视频位流。可例如从计算机可读媒体16,例如从本地视频源(例如相机),经由视频数据的有线或无线网络通信,或通过接入物理数据存储媒体,获得存储在视频数据存储器151中的视频数据。视频数据存储器151可形成经译码图片缓冲器(CPB),其存储来自经编码视频位流的经编码视频数据。经解码图片缓冲器162可为存储参考视频数据以供视频解码器30在以例如帧内或帧间译码模式解码视频数据时使用或供输出的参考图片存储器。视频数据存储器151和经解码图片缓冲器162可由多种存储器装置中的任一个形成,例如动态随机存取存储器(DRAM),包含同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。视频数据存储器151和经解码图片缓冲器162可由相同存储器装置或单独的存储器装置提供。在各种实例中,视频数据存储器151可与视频解码器30的其它组件一起在芯片上,或相对于所述组件在芯片外。视频数据存储器151可与图1的存储媒体28相同或为图1的存储媒体28的部分。
视频数据存储器151接收和存储位流的经编码视频数据(例如,NAL单元)。熵解码单元150可从视频数据存储器151接收经编码视频数据(例如,NAL单元),且可解析NAL单元以获得语法元素。熵解码单元150可对NAL单元中的经熵编码语法元素进行熵解码。预测处理单元152、逆量化单元154、逆变换处理单元156、重构单元158和滤波器单元160可基于从位流提取的语法元素,产生经解码视频数据。熵解码单元150可执行与熵编码单元118的过程大体上互逆的过程。熵解码单元150可被配置成执行CITP。举例来说,熵解码单元150可被配置成存储上下文初始化并且使用上下文初始化进行熵解码。
除了获得来自位流的语法元素之外,视频解码器30可对未分割的CU执行重构操作。为了对CU执行重构操作,视频解码器30可对CU的每一TU执行重构操作。通过对CU的每一TU执行重构操作,视频解码器30可重构CU的残余块。
作为对CU的TU执行重构操作的部分,逆量化单元154可逆量化(即,解量化)与TU相关联的系数块。在逆量化单元154逆量化系数块之后,逆变换处理单元156可将一或多个逆变换应用于系数块,以便产生与TU相关联的残余块。例如,逆变换处理单元156可以将逆DCT、逆整数变换、逆卡忽南-拉维(Karhunen-Loeve)变换(KLT)、逆旋转变换、逆定向变换或另一逆变换应用于变换系数块。
逆量化单元154可执行本公开的特定技术。举例来说,对于视频数据的图片的CTU的CTB内的多个量化群组中的至少一个相应量化群组,逆量化单元154可至少部分地基于在位流中用信号发送的局部量化信息,导出相应量化群组的相应量化参数另外,在此实例中,逆量化单元154可基于相应量化群组的相应量化参数,逆量化CTU的CU的TU的变换块的至少一个变换系数。在此实例中,相应量化群组定义为呈译码次序的连续CU或译码块的群组,使得相应量化群组的界限必须是CU或译码块的界限,且相应量化群组的大小大于或等于阈值。视频解码器30(例如,逆变换处理单元156、重构单元158和滤波器单元160)可基于变换块的经逆量化变换系数,重构CU的译码块。
如果使用帧内预测对PU进行编码,那么帧内预测处理单元166可执行帧内预测以产生PU的预测性块。帧内预测处理单元166可使用帧内预测模式来基于样本空间相邻块产生PU的预测性块。帧内预测处理单元166可基于从位流获得的一或多个语法元素确定用于PU的帧内预测模式。
如果PU是使用帧间预测经编码,那么熵解码单元150可确定所述PU的运动信息。运动补偿单元164可基于PU的运动信息来确定一或多个参考块。运动补偿单元164可基于所述一或多个参考块产生PU的预测性块(例如,预测性亮度、Cb和Cr块)。
重构单元158可以在适当时使用CU的TU的变换块(例如,明度变换块、Cb变换块和Cr变换块)以及CU的PU的预测性块(例如,明度块、Cb块和Cr块)(即,帧内预测数据或帧间预测数据)来重构CU的译码块(例如,明度译码块、Cb译码块和Cr译码块)。举例来说,重构单元158可将变换块(例如,亮度、Cb和Cr变换块)的样本添加到预测性块(例如,亮度、Cb和Cr预测性块)的对应样本,以重构CU的译码块(例如,亮度、Cb和Cr译码块)。
滤波器单元160可执行解块操作以减少与CU的译码块相关联的成块假影。视频解码器30可将CU的译码块存储在经解码图片缓冲器162中。经解码图片缓冲器162可提供参考图片以供后续运动补偿、帧内预测和在显示装置(例如,图1的显示装置32)上呈现。举例来说,视频解码器30可基于经解码图片缓冲器162中的块对其它CU的PU执行帧内预测或帧间预测操作。
图14是说明用于存储上下文初始化的技术的流程图。A视频译码器(例如,视频编码器20、视频解码器30等)确定启用用于图片的一部分的时间层(174)。举例来说,视频译码器可响应于解码不大于第一时间层的第二时间层中的前一图片而确定启用用于当前图片的部分的第一时间层。前一图片是在解码当前图片之前经解码。
视频译码器确定启用用于图片的部分的量化参数(176)。举例来说,视频译码器可响应于确定每一量化参数在量化参数值范围内而确定启用量化参数。在一些实例中,视频译码器可使用来自位流的指示量化参数值范围的一或多个符号来确定量化参数值范围。
视频译码器确定启用指配给图片的部分的群组(178)。举例来说,视频译码器可确定图片的部分指配给所启用的用于帧内预测模式或帧间预测模式的群组、所启用的用于明度分量或色度分量的群组、所启用的用于滤波器参数或其它参数的群组、所启用的用于变换系数信息译码或其它信息的群组或另一经启用群组。
视频译码器使用用于图片的部分的量化参数确定上下文初始化(180)。举例来说,视频译码器确定用于计算熵译码(例如,编码、解码等)的概率值或指配给用于图片的部分的量化参数的概率值的信息。视频译码器以量化参数的单个概率状态存储上下文初始化(182)。举例来说,视频编码器20可将上下文初始化以量化参数的单个概率状态存储于视频数据存储器101或视频编码器20的另一存储器处。在一些实例中,视频解码器30可将上下文初始化以量化参数的单个概率状态存储于视频数据存储器151或视频解码器30的另一存储器处。
图15是说明用于使用上下文初始化进行编码的技术的流程图。当前块可包含当前CU或当前CU的一部分。虽然相对于视频编码器20进行描述,但应理解,其它装置可被配置成执行类似于图15的方法的方法。
在此实例中,视频编码器20预测当前块(202)。例如,视频编码器20可计算当前块的一或多个预测单元(PU)。视频编码器20可接着计算当前块的残余块,例如,以产生变换单元(TU)(204)。为了计算残余块,视频编码器20可计算原始的未经译码块与当前块的经预测块之间的差值。视频编码器20可接着变换残余块以产生变换系数,且量化残余块的变换系数(206)。接下来,视频编码器20可扫描残余块的经量化变换系数(208)。
在扫描期间,或在扫描以后,视频编码器20可对所述系数进行熵编码(210)。举例来说,视频编码器20可使用CABAC编码所述系数。特定来说,根据本公开的技术,视频编码器20的熵编码单元118可使用上下文初始化编码经量化变换系数。视频编码器20可随后输出块的经熵译码数据(212)。
本文中所描述的技术可减小视频译码器针对上下文初始化技术,特定地针对CITP对存储器的使用量。举例来说,通过将视频译码器配置为使用用于通过时间预测解码的视频图片数据的一部分的多个量化参数来确定上下文初始化并且以量化参数的单个概率状态存储上下文初始化,视频译码器可减小存储于存储器中的针对所述多个量化参数的概率状态的数目。以此方式,视频译码器可减小用于存储上下文初始化的存储器量,这可改进视频译码器的处理性能和/或减小视频译码器的功率使用量。
在另一实例中,通过将视频译码器配置成响应于确定启用用于图片的部分的时间层而存储上下文初始化,视频译码器可减小存储于存储器中的概率状态的数目。在另一实例中,将视频译码器配置成响应于确定启用量化参数而存储上下文初始化,视频译码器可减小存储于存储器中的概率状态的数目。在另一实例中,将视频译码器配置成响应于确定与图片的部分相关联的量化参数满足阈值而存储上下文初始化,视频译码器可减小存储于存储器中的概率状态的数目。使用本文中所描述的一或多种技术减小存储于存储器中概率状态的数目,视频译码器可减小用于存储上下文初始化的存储器量,这可改进视频译码器的处理性能和/或减小视频译码器的功率使用量。
图16是说明用于使用上下文初始化进行解码的技术的流程图。当前块可包含当前CU或当前CU的一部分。虽然相对于视频解码器30进行描述,但应理解,其它装置可被配置成执行类似于图16的方法的方法。
视频解码器30可例如使用帧内或帧间预测模式预测当前块(232)以计算当前块的经预测块。视频解码器30还可接收当前块的经熵译码数据,例如对应于当前块的残余块的系数的经熵译码数据(234)。
视频解码器30可对经熵译码数据进行熵解码以重新产生残余块的系数(236)。特定来说,根据本公开的技术,视频解码器30的熵解码单元150可使用上下文初始化解码经量化变换系数。视频解码器30接着可逆扫描重新产生的系数(238)以创建经量化变换系数块。视频解码器30接着可逆量化且逆变换所述系数以产生残余块(240)。视频解码器30最终可通过组合经预测块与残余块而对当前块进行解码(242)。
应认识到,取决于实例,本文中所描述的技术中的任一种的某些动作或事件可用不同顺序来执行,可添加、合并或全部省略所述动作或事件(例如,实践所述技术未必需要所有所描述动作或事件)。此外,在某些实例中,可例如通过多线程处理、中断处理或多个处理器同时而非依序执行动作或事件。
在一或多个实例中,所描述功能可用硬件、软件、固件或其任何组合来实施。如果用软件实施,那么所述功能可以作为一或多个指令或代码在计算机可读媒体上存储或传输,并且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于例如数据存储媒体或通信媒体的有形媒体,所述通信媒体包含例如根据通信协议有助于将计算机程序从一处传送到另一处的任何媒体。以此方式,计算机可读媒体通常可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如,信号或载波。数据存储媒体可以是可由一或多个计算机或一或多个处理器存取以检索用于实施本公开中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可以包含计算机可读媒体。
借助于实例而非限制,这类计算机可读存储媒体可包含RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器,或可用于以指令或数据结构的形式存储所要的程序代码且可由计算机存取的任何其它媒体。并且,恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波等无线技术包含在媒体的定义中。然而,应理解,有形计算机可读存储媒体和数据存储媒体并不包含连接、载波、信号或其它暂时性媒体,而实际上是针对非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各个的组合也应包含在计算机可读媒体的范围内。
指令可由固定功能和/或可编程处理电路执行,包含一或多个处理器,例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指代上述结构或适合于实施本文中所描述的技术的任何其它结构中的任一个。此外,在一些方面中,本文中所描述的功能性可在被配置成用于编码和解码或并入在组合编解码器中的专用硬件和/或软件模块内提供。并且,所述技术可完全实施于一或多个电路或逻辑元件中。
本公开的技术可实施于多种装置或设备中,包含无线手持机、集成电路(IC)或IC的集合(例如,芯片组)。本公开中描述各种组件、模块或单元是为了强调被配置成执行所公开的技术的装置的功能方面,但未必需要通过不同硬件单元实现。确切地,如上文所描述,各种单元可结合合适的软件和/或固件组合在编解码器硬件单元中,或由互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述了各种实例。这些和其它实例在所附权利要求书的范围内。
Claims (26)
1.一种解码视频数据的方法,所述方法包括:
通过实施于处理电路中的视频解码器,使用用于使用时间预测进行解码的视频数据的图片的一部分的多个量化参数来确定上下文初始化;
通过所述视频解码器,确定所述多个量化参数中的每个量化参数在一组允许的量化参数值中的量化参数值的范围内,其中,所述一组允许的量化参数值还包括不在量化参数值的所述范围内的一个或多个剩余量化值;
响应于确定所述多个量化参数中的每个量化参数在所述范围内,通过所述视频解码器,以所述多个量化参数的单个概率状态存储所述上下文初始化;和
通过所述视频解码器,使用所述单个概率状态熵解码位流中的一组语法元素。
2.根据权利要求1所述的方法,其中所述多个量化参数包括在所述一组允许的量化参数值中的量化参数值的所述范围内的连续量化参数值。
3.根据权利要求1所述的方法,其中以所述单个概率状态存储所述上下文初始化包括更新所述单个概率状态。
4.根据权利要求1所述的方法,其中以所述单个概率状态存储所述上下文初始化还是响应于确定启用用于所述图片的所述部分的时间层的。
5.根据权利要求4所述的方法,其中所述图片是当前图片且其中所述时间层是第一时间层,所述方法另外包括:
通过所述视频解码器,响应于解码不大于所述第一时间层的第二时间层中的前一图片而确定启用用于所述当前图片的所述部分的所述第一时间层,其中所述视频解码器在解码所述当前图片之前解码所述前一图片。
6.根据权利要求1所述的方法,其中用于所述图片的时间层低于用于包括所述图片的图片群组的多个时间层中的最高时间层,且其中以所述单个概率状态存储所述上下文初始化包括更新所述最高时间层的所述单个概率状态。
7.根据权利要求1所述的方法,其中所述图片是第一图片,所述方法另外包括:
通过所述视频解码器,响应于用于第二图片的第二部分的时间层是用于包括所述第一图片和所述第二图片的图片群组的多个时间层中的最高时间层,确定停用用于所述第二图片的所述第二部分的所述时间层。
8.根据权利要求1所述的方法,其另外包括:
通过所述视频解码器,使用来自所述位流的指示所述量化参数值范围的一或多个符号来确定所述量化参数值范围。
9.根据权利要求1所述的方法,其中以所述单个概率状态存储所述上下文初始化还是响应于确定与所述图片的所述部分相关联的量化参数满足阈值的。
10.根据权利要求1所述的方法,其中以所述单个概率状态存储所述上下文初始化还是响应于确定启用指配给所述图片的所述部分的群组的,且其中所述群组是按由以下组成的群组中的一或多个进行分类:
帧内预测模式或帧间预测模式;
明度分量或色度分量;
滤波器参数或其它参数;或
变换系数信息译码。
11.根据权利要求1所述的方法,
其中所述图片的所述部分是所述图片的切片;
其中所述图片的所述部分是所述图片的最大译码块;或
其中所述图片的所述部分是所述图片的拼片。
12.一种用于解码视频数据的装置,所述装置包括:
一或多个存储媒体;和
一或多个处理器,其被配置成:
使用用于使用时间预测进行解码的视频数据的图片的一部分的多个量化参数来确定上下文初始化;
确定所述多个量化参数中的每个量化参数在一组允许的量化参数值中的量化参数值的范围内,其中,所述一组允许的量化参数值还包括不在量化参数值的所述范围内的一个或多个剩余量化值;
响应于确定所述多个量化参数中的每个量化参数在所述范围内,将所述上下文初始化以所述多个量化参数的单个概率状态存储于所述一或多个存储媒体处;和
使用所述单个概率状态熵解码位流中的一组语法元素。
13.根据权利要求12所述的装置,其中所述多个量化参数包括在所述一组允许的量化参数值中的量化参数值的所述范围内的连续量化参数值。
14.根据权利要求12所述的装置,其中为以所述单个概率状态存储所述上下文初始化,所述一或多个处理器被配置成更新所述单个概率状态。
15.根据权利要求12所述的装置,其中以所述单个概率状态存储所述上下文初始化还是响应于确定启用用于所述图片的所述部分的时间层的。
16.根据权利要求15所述的装置,其中所述图片是当前图片,其中所述时间层是第一时间层,且其中所述一或多个处理器被进一步配置成:
响应于解码不大于所述第一时间层的第二时间层中的前一图片而确定启用用于所述当前图片的所述部分的所述第一时间层,其中所述一或多个处理器被配置成在解码所述当前图片之前解码所述前一图片。
17.根据权利要求12所述的装置,其中用于所述图片的时间层低于用于包括所述图片的图片群组的多个时间层中的最高时间层,且其中为以所述单个概率状态存储所述上下文初始化,所述一或多个处理器被配置成更新所述最高时间层的所述单个概率状态。
18.根据权利要求12所述的装置,其中所述图片是第一图片且其中所述一或多个处理器被配置成:
响应于用于第二图片的第二部分的时间层是用于包括所述第一图片和所述第二图片的图片群组的多个时间层中的最高时间层,确定停用用于所述第二图片的所述第二部分的所述时间层。
19.根据权利要求12所述的装置,其中所述一或多个处理器被配置成使用来自所述位流的指示所述量化参数值范围的一或多个符号来确定所述量化参数值范围。
20.根据权利要求12所述的装置,其中以所述单个概率状态存储所述上下文初始化还是响应于确定与所述图片的所述部分相关联的量化参数满足阈值的。
21.根据权利要求12所述的装置,其中为以所述单个概率状态存储所述上下文初始化,所述一或多个处理器被配置成还响应于确定启用指配给所述图片的所述部分的群组而以所述单个概率状态存储所述上下文初始化,且其中所述群组是按由以下组成的群组中的一或多个进行分类:
帧内预测模式或帧间预测模式;
明度分量或色度分量;
滤波器参数或其它参数;或
变换系数信息译码或其它信息。
22.根据权利要求12所述的装置,
其中所述图片的所述部分是所述图片的切片;
其中所述图片的所述部分是所述图片的最大译码块;或
其中所述图片的所述部分是所述图片的拼片。
23.根据权利要求12所述的装置,其中所述装置包括无线通信装置,所述装置另外包括被配置成接收经编码视频数据的接收器。
24.根据权利要求23所述的装置,其中所述无线通信装置包括电话手持机,且其中所述接收器被配置成根据无线通信标准来解调包括所述经编码视频数据的信号。
25.一种编码视频数据的方法,所述方法包括:
通过实施于处理电路中的视频编码器,使用用于使用时间预测进行编码的视频数据的图片的一部分的多个量化参数来确定上下文初始化;
通过所述视频编码器,确定所述多个量化参数中的每个量化参数在一组允许的量化参数值中的量化参数值的范围内,其中,所述一组允许的量化参数值还包括不在量化参数值的所述范围内的一个或多个剩余量化值;
响应于确定所述多个量化参数中的每个量化参数在所述范围内,通过所述视频编码器,以所述多个量化参数的单个概率状态存储所述上下文初始化;和
通过所述视频编码器,使用所述单个概率状态熵编码位流中的一组语法元素。
26.一种用于编码视频数据的装置,所述装置包括:
一或多个存储媒体,其被配置成存储视频数据;和
一或多个处理器,其被配置成:
使用用于使用时间预测进行编码的视频数据的图片的一部分的多个量化参数来确定上下文初始化;
确定所述多个量化参数中的每个量化参数在一组允许的量化参数值中的量化参数值的范围内,其中,所述一组允许的量化参数值还包括不在量化参数值的所述范围内的一个或多个剩余量化值;
响应于确定所述多个量化参数中的每个量化参数在所述范围内,将所述上下文初始化以所述多个量化参数的单个概率状态存储于所述一或多个存储媒体处;和
使用所述单个概率状态熵编码位流中的一组语法元素。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762588867P | 2017-11-20 | 2017-11-20 | |
US62/588,867 | 2017-11-20 | ||
US16/195,590 US11039143B2 (en) | 2017-11-20 | 2018-11-19 | Memory reduction for context initialization with temporal prediction |
US16/195,590 | 2018-11-19 | ||
PCT/US2018/062012 WO2019100060A1 (en) | 2017-11-20 | 2018-11-20 | Memory reduction for context initialization with temporal prediction |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111357287A CN111357287A (zh) | 2020-06-30 |
CN111357287B true CN111357287B (zh) | 2022-05-06 |
Family
ID=66532712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880074589.6A Active CN111357287B (zh) | 2017-11-20 | 2018-11-20 | 针对通过时间预测进行的上下文初始化的存储器减小 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11039143B2 (zh) |
CN (1) | CN111357287B (zh) |
WO (1) | WO2019100060A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109983771A (zh) * | 2016-11-21 | 2019-07-05 | 松下电器(美国)知识产权公司 | 编码装置、解码装置、编码方法及解码方法 |
US20210274182A1 (en) * | 2018-07-02 | 2021-09-02 | Interdigital Vc Holdings, Inc. | Context-based binary arithmetic encoding and decoding |
US11218737B2 (en) * | 2018-07-23 | 2022-01-04 | Google Llc | Asymmetric probability model update and entropy coding precision |
WO2020141856A1 (ko) * | 2019-01-02 | 2020-07-09 | 엘지전자 주식회사 | 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치 |
CN117793346A (zh) | 2019-01-31 | 2024-03-29 | 北京字节跳动网络技术有限公司 | 视频编解码中的细化量化步骤 |
WO2020228762A1 (en) | 2019-05-14 | 2020-11-19 | Beijing Bytedance Network Technology Co., Ltd. | Context modeling for residual coding |
CN118200586A (zh) | 2019-06-11 | 2024-06-14 | 北京三星通信技术研究有限公司 | 模型更新方法、装置、电子设备及计算机可读存储介质 |
US20220159258A1 (en) * | 2019-06-25 | 2022-05-19 | Intel Corporation | Generalized bypass bins and applications for entropy coding |
CA3148299C (en) | 2019-07-26 | 2024-06-04 | Beijing Bytedance Network Technology Co., Ltd. | Determination of picture partition mode based on block size |
US11363307B2 (en) * | 2019-08-08 | 2022-06-14 | Hfi Innovation Inc. | Video coding with subpictures |
US11323711B2 (en) * | 2019-09-20 | 2022-05-03 | Alibaba Group Holding Limited | Method and system for signaling chroma quantization parameter offset |
US11785214B2 (en) * | 2019-11-14 | 2023-10-10 | Mediatek Singapore Pte. Ltd. | Specifying video picture information |
EP4097976A4 (en) * | 2020-02-21 | 2023-03-01 | Beijing Bytedance Network Technology Co., Ltd. | SLICE AND TILE PARTITIONING IN VIDEO ENCODING |
US20220353547A1 (en) * | 2021-04-16 | 2022-11-03 | Tencent America LLC | Entropy coding of sign map for transform coefficients |
WO2023198075A1 (en) * | 2022-04-13 | 2023-10-19 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for video processing |
WO2024017259A1 (en) * | 2022-07-19 | 2024-01-25 | Douyin Vision Co., Ltd. | Method, apparatus, and medium for video processing |
WO2024041249A1 (en) * | 2022-08-25 | 2024-02-29 | Mediatek Inc. | Method and apparatus of entropy coding for scalable video coding |
WO2024041369A1 (en) * | 2022-08-25 | 2024-02-29 | Mediatek Inc. | Method and apparatus of entropy coding for subpictures |
WO2024041306A1 (en) * | 2022-08-25 | 2024-02-29 | Mediatek Inc. | Method and apparatus of context initialization for entropy coding in video coding systems |
US20240129507A1 (en) * | 2022-10-14 | 2024-04-18 | Tencent America LLC | Cabac context model grouping |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103733622A (zh) * | 2011-06-16 | 2014-04-16 | 弗劳恩霍夫应用研究促进协会 | 熵编码中的上下文初始化 |
CN103975532A (zh) * | 2011-11-03 | 2014-08-06 | 高通股份有限公司 | 用于上下文自适应性熵译码的上下文状态和概率初始化 |
CN104067524A (zh) * | 2012-01-19 | 2014-09-24 | 高通股份有限公司 | 具有精简的初始化值集合的上下文自适应熵译码 |
EP2945383A1 (en) * | 2014-05-14 | 2015-11-18 | BlackBerry Limited | Adaptive context initialization |
CN107087177A (zh) * | 2011-06-30 | 2017-08-22 | 夏普株式会社 | 基于解码器图片缓冲器的上下文初始化 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007300517A (ja) * | 2006-05-02 | 2007-11-15 | Sony Corp | 動画像処理方法、動画像処理方法のプログラム、動画像処理方法のプログラムを記録した記録媒体及び動画像処理装置 |
US20160234498A1 (en) * | 2015-02-05 | 2016-08-11 | Sharp Laboratories Of America, Inc. | Methods and systems for palette table coding |
US10574993B2 (en) | 2015-05-29 | 2020-02-25 | Qualcomm Incorporated | Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design |
US10616577B2 (en) * | 2017-10-16 | 2020-04-07 | Intel Corporation | Adaptive video deblocking |
US10869062B2 (en) | 2017-12-21 | 2020-12-15 | Qualcomm Incorporated | Probability initialization and signaling for adaptive arithmetic coding in video coding |
-
2018
- 2018-11-19 US US16/195,590 patent/US11039143B2/en active Active
- 2018-11-20 WO PCT/US2018/062012 patent/WO2019100060A1/en active Application Filing
- 2018-11-20 CN CN201880074589.6A patent/CN111357287B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103733622A (zh) * | 2011-06-16 | 2014-04-16 | 弗劳恩霍夫应用研究促进协会 | 熵编码中的上下文初始化 |
CN107087177A (zh) * | 2011-06-30 | 2017-08-22 | 夏普株式会社 | 基于解码器图片缓冲器的上下文初始化 |
CN103975532A (zh) * | 2011-11-03 | 2014-08-06 | 高通股份有限公司 | 用于上下文自适应性熵译码的上下文状态和概率初始化 |
CN104067524A (zh) * | 2012-01-19 | 2014-09-24 | 高通股份有限公司 | 具有精简的初始化值集合的上下文自适应熵译码 |
EP2945383A1 (en) * | 2014-05-14 | 2015-11-18 | BlackBerry Limited | Adaptive context initialization |
Also Published As
Publication number | Publication date |
---|---|
CN111357287A (zh) | 2020-06-30 |
US20190158837A1 (en) | 2019-05-23 |
US11039143B2 (en) | 2021-06-15 |
WO2019100060A1 (en) | 2019-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111357287B (zh) | 针对通过时间预测进行的上下文初始化的存储器减小 | |
JP6619028B2 (ja) | 改善されたコンテキスト適応バイナリ算術コーティング(cabac)設計を使用したデータのコーディング | |
EP3304909B1 (en) | Advanced arithmetic coder | |
CN107925764B (zh) | 用于对视频数据进行译码的方法和装置 | |
KR20190007427A (ko) | 인트라 예측 모드들의 이웃 기반의 시그널링 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |