CN107667530B - 一种用于对视频数据进行熵译码的方法、设备和计算机可读存储媒体 - Google Patents

一种用于对视频数据进行熵译码的方法、设备和计算机可读存储媒体 Download PDF

Info

Publication number
CN107667530B
CN107667530B CN201680030561.3A CN201680030561A CN107667530B CN 107667530 B CN107667530 B CN 107667530B CN 201680030561 A CN201680030561 A CN 201680030561A CN 107667530 B CN107667530 B CN 107667530B
Authority
CN
China
Prior art keywords
context
value
video
coding
video data
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
CN201680030561.3A
Other languages
English (en)
Other versions
CN107667530A (zh
Inventor
张莉
陈建乐
赵欣
李翔
刘鸿彬
陈颖
马尔塔·卡切维奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN107667530A publication Critical patent/CN107667530A/zh
Application granted granted Critical
Publication of CN107667530B publication Critical patent/CN107667530B/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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects
    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/174Methods 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
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供一种对视频数据进行熵译码的实例方法,其包含:获得在上下文自适应性熵译码过程中使用以对所述视频数据的切片中的语法元素的值进行熵译码的多个上下文中的一上下文的预定义初始化值,其中通过N位精度存储所述预定义初始化值;使用查找表且基于所述预定义初始化值确定用于所述视频数据的所述切片的所述上下文的初始概率状态,其中所述上下文的可能概率状态的数目大于2的N次幂;及基于所述上下文的所述初始概率状态对所述语法元素的所述值的二进制数进行熵译码。

Description

一种用于对视频数据进行熵译码的方法、设备和计算机可读 存储媒体
本申请案请求2015年5月29日申请的美国临时申请案第62/168,503号的权益,所述申请案的全部内容以引用的方式并入本文中。
技术领域
本发明涉及视频译码,且更特定而言涉及用于视频数据的二进制算术译码的技术。
背景技术
数字视频能力可并入到广泛范围的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或台式计算机、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话会议装置等等。数字视频装置实施视频压缩技术(例如由MPEG-2、MPEG-4、ITU-T H.263、 ITU-T H.264/MPEG-4第10部分、高级视频译码(AVC)、高效率视频译码(HEVC)标准所定义的标准及这些标准的扩展中所描述的那些视频压缩技术)以更有效地传输、接收及存储数字视频信息。
视频压缩技术包含空间预测及/或时间预测以减少或去除视频序列中所固有的冗余。对于基于块的视频译码,可将视频帧或切片分割成块。可进一步分割每一块。帧内译码(I)帧或切片中的块使用关于同一帧或切片中的相邻块中的参考样本的空间预测来编码。帧间译码(P或B)帧或切片中的块可使用关于同一帧或切片中的相邻块中的参考样本的空间预测或关于其它参考帧中的参考样本的时间预测。空间或时间预测产生待译码块的预测性块。残余数据表示待译码的原始块与预测性块之间的像素差。
根据指向形成预测性块的参考样本的块的运动向量及指示经译码块与预测性块之间的差异的残余数据来编码经帧间译码块。根据帧内译码模式及残余数据来编码经帧内译码块。为进行进一步压缩,可将残余数据从像素域变换到变换域,从而产生可接着进行量化的残余变换系数。可按特定次序扫描最初布置成二维阵列的经量化的变换系数,以产生变换系数的一维向量以用于熵译码。
可利用不同熵译码过程来对残余变换系数、运动向量信息、语法元素及其它相关联信息进行译码。不同熵译码及其它数据压缩过程的实例包含:上下文自适应性可变长度译码(CAVLC)、上下文自适应性二进制算术译码(CABAC)、概率区间分割熵译码(PIPE)、哥伦布(Golomb)译码、哥伦布莱斯(Golomb-Rice)译码及指数哥伦布译码。
发明内容
大体而言,本发明描述用于执行视频译码的技术。更特定而言,本发明描述用于通过不同视窗大小执行CABAC的实例技术。
在一个实例中,一种用于对视频数据进行熵译码的方法包含:获得在上下文自适应性译码过程中使用以对视频数据的切片中的语法元素的值进行熵译码的多个上下文中的一上下文的预定义初始化值,其中以N位精度存储所述预定义初始化值;且基于预定义初始化值确定用于视频数据的切片的上下文的初始概率状态,其中上下文的可能概率状态的数目大于2的N次幂;及基于上下文的初始概率状态对语法元素的值的二进制数 (bin)进行熵译码。在这个实例中,所述方法还包含基于经译码二进制数更新上下文的概率状态及基于上下文的经更新概率状态通过同一上下文对下一二进制数进行熵译码。
在另一实例中,一种用于对视频数据进行熵译码的设备包含:存储器,其经配置以存储在上下文自适应性熵译码过程中使用以对视频数据的切片中的语法元素的值进行熵译码的多个上下文;及一或多个处理器。在这个实例中,所述一或多个处理器经配置以获得多个上下文中的一上下文的预定义初始化值,其中以N位精度存储所述预定义初始化值;基于预定义初始化值确定用于视频数据的切片的上下文的初始概率状态,其中上下文的可能概率状态的数目大于2的N次幂;及基于上下文的初始概率状态对语法元素的值的二进制数进行熵译码。在这个实例中,所述一或多个处理器经进一步配置以基于经译码二进制数更新上下文的概率状态,且基于上下文的经更新概率状态通过同一上下文对下一二进制数进行熵译码。
在另一实例中,一种用于对视频数据进行熵译码的设备包含:用于获得在上下文自适应性熵译码过程中使用以对视频数据的切片中的语法元素的值进行熵译码的多个上下文中的一上下文的预定义初始化值的装置,其中以N位精度存储所述预定义初始化值;用于基于预定义初始化值确定用于视频数据的切片的上下文的初始概率状态的装置,其中上下文的可能概率状态的数目大于2的N次幂;及用于基于上下文的初始概率状态对语法元素的值的二进制数进行熵译码的装置。在这个实例中,所述设备还包含:用于基于经译码二进制数更新上下文的概率状态的装置,及用于基于上下文的经更新概率状态通过同一上下文对下一二进制数进行熵译码的装置。
在另一实例中,一种计算机可读存储媒体存储指令,所述指令在执行时使得视频译码装置的一或多个处理器进行以下操作:获得在上下文自适应性熵译码过程中使用以对视频数据的切片中的语法元素的值进行熵译码的多个上下文中的一上下文的预定义初始化值,其中以N位精度存储预定义初始化值;基于预定义初始化值确定用于视频数据的切片的上下文的初始概率状态,其中上下文的可能概率状态的数目大于2的N次幂;及基于上下文的初始概率状态对语法元素的值的二进制数进行熵译码。在这个实例中,计算机可读存储媒体还存储指令,所述指令使得所述一或多个处理器基于经译码二进制数更新上下文的概率状态且基于上下文的经更新概率状态通过同一上下文对下一二进制数进行熵译码。
在另一实例中,一种计算机可读存储媒体存储经编码视频数据,当通过视频解码装置处理时,所述经编码视频数据使得视频解码装置的一或多个处理器进行以下操作:获得在上下文自适应性熵译码过程中使用以对视频数据的切片中的语法元素的值进行熵译码的多个上下文中的一上下文的预定义初始化值,其中以N位精度存储预定义初始化值;基于预定义初始化值确定用于视频数据的切片的上下文的初始概率状态,其中上下文的可能概率状态的数目大于2的N次幂;及基于上下文的初始概率状态对语法元素的值的二进制数进行熵译码。在这个实例中,计算机可读存储媒体还存储指令,所述指令使得所述一或多个处理器基于经译码二进制数更新上下文的概率状态且基于上下文的经更新概率状态通过同一上下文对下一二进制数进行熵译码。
在附图及以下描述中阐述本发明的一或多个方面的细节。本发明中描述的技术的其它特征、目标及优势将从描述及图式且从权利要求书显而易见。
附图说明
图1为绘示实例视频编码及解码系统的框图。
图2A及2B为绘示二进制算术译码中的范围更新过程的概念图。
图3为绘示二进制算术译码中的输出过程的概念图。
图4为绘示实例视频编码器的框图。
图5为绘示视频编码器中的上下文自适应性二进制算术译码器的框图。
图6为绘示实例视频解码器的框图。
图7为绘示视频解码器中的上下文自适应性二进制算术译码器的框图。
图8绘示针对给定二进制数值使用常规译码模式的二进制算术编码过程。
图9为绘示基于残余四分树的实例变换方案的概念图。
图10为绘示基于系数群组的实例系数扫描的概念图。
图11为绘示根据本发明的一或多种技术的用于通过不同视窗大小执行基于上下文的熵编码的实例过程的流程图。
图12为绘示根据本发明的一或多种技术的用于通过不同视窗大小执行基于上下文的熵解码的实例过程的流程图。
具体实施方式
本发明的技术大体上涉及基于块的混合视频译码中的熵译码模块。这些技术可应用于任何现有视频编解码器,例如HEVC(高效率视频译码)或这些技术可为任何未来视频译码标准或其它专有或非专有译码技术中的高效译码工具。出于实例及解释的目的,大体上关于HEVC(或ITU-T H.265)及/或ITU-T H.264描述本发明的技术。
图1为绘示根据具有可变视窗大小的CABAC设计可利用译码数据的技术的实例视频编码及解码系统10的框图。如图1中所展示,系统10包含源装置12,其提供稍后将由目的地装置14解码的经编码视频数据。详言之,源装置12通过计算机可读媒体16 将视频数据提供到目的地装置14。源装置12及目的地装置14可包括广泛范围的装置中的任一者,包含台式计算机、笔记型(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如,所谓的“智能型”手机)、所谓的“智能型”衬垫、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置等等。在一些情况下,源装置12及目的地装置14可经装备以用于无线通信。
目的地装置14可通过计算机可读媒体16接收待解码的经编码视频数据。计算机可读媒体16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一个实例中,计算机可读媒体16可包括使得源装置12能够实时将经编码视频数据直接传输到目的地装置14的通信媒体。可根据通信标准(例如,无线通信协议)调制经编码视频数据,且将其传输到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如,射频(RF)频谱或一或多个物理传输线。通信媒体可形成基于包的网络(例如,局域网、广域网或例如因特网的全球网络)的一部分。通信媒体可包含路由器、交换器、基站或可用于促进从源装置12到目的地装置14的通信的任何其它设备。
在一些实例中,经编码数据可从输出接口22输出到存储装置。类似地,可通过输入接口从存储装置存取经编码数据。存储装置可包含多种分布式或本地存取的数据存储媒体中的任一者,例如,硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存存储器、易失性或非易失性存储器或用于存储经编码视频数据的任何其它合适的数字存储媒体。在另一实例中,存储装置可对应于文件服务器或可存储由源装置12产生的经编码视频的另一中间存储装置。目的地装置14可通过流式传输或下载从存储装置存取所存储的视频数据。文件服务器可为能够存储经编码视频数据且将所述经编码视频数据传输到目的地装置14的任何类型的服务器。实例文件服务器包含网页服务器(例如,用于网站)、FTP 服务器、网络附加存储(NAS)装置或本地磁碟驱动器。目的地装置14可通过任何标准数据连接(包含因特网连接)存取经编码视频数据。所述数据连接可包含适于存取存储于文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、缆线调制解调器等),或两者的组合。来自存储装置的经编码视频数据的传输可为流式传输、下载传输,或其组合。
本发明的技术不必限于无线应用或设定。所述技术可应用于支持多种多媒体应用中的任一者的视频译码,例如,空中电视广播、有线电视传输、卫星电视传输、因特网流式视频传输(例如,通过HTTP的动态自适应流式传输(DASH))、经编码到数据存储媒体上的数字视频、存储于数据存储媒体上的数字视频的解码或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频传输从而支持例如视频流式传输、视频播放、视频广播及/或视频电话的应用。
在图1的实例中,源装置12包含视频源18、视频编码器20及输出接口22。目的地装置14包含输入接口28、视频解码器30及显示装置31。根据本发明,源装置12的视频编码器20可经配置以根据增强型CABAC设计将所述技术应用于译码数据。在其它实例中,源装置及目的地装置可包含其它组件或布置。举例来说,源装置12可从外部视频源18(例如,外部相机)接收视频数据。同样地,目的地装置14可与外部显示装置介接,而非包含集成式显示装置。
图1的所绘示系统10仅为一个实例。可由任何数字视频编码及/或解码装置执行根据增强型CABAC设计用于译码数据的技术。尽管本发明的技术一般由视频编码装置执行,但所述技术也可由视频编码器/解码器(通常被称为“编解码器”)执行。此外,本发明的技术也可由视频预处理器执行。源装置12及目的地装置14仅为源装置12在其中产生经译码视频数据以供传输到目的地装置14的这类译码装置的实例。在一些实例中,装置12、14可以大体上对称的方式操作,使得装置12、14中的每一者包含视频编码及解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视频传播以用于(例如)视频流式传输、视频播放、视频广播或视频电话。
源装置12的视频源18可包含视频捕捉装置,例如摄像机、含有先前捕捉的视频的视频存档及/或用以从视频内容提供者接收视频的视频馈入接口。作为另一替代,视频源18可产生基于计算机图形的数据作为源视频,或实况视频、存档视频及计算机产生的视频的组合。在一些情况下,如果视频源18为摄像机,那么源装置12及目的地装置14 可形成所谓的相机电话或视频电话。然而,如上文所提及,本发明中描述的技术一般可适用于视频译码,且可适用于无线及/或有线应用。在每一情况下,可由视频编码器20 编码所捕捉、经预先捕捉或计算机产生的视频。可接着通过输出接口22将经编码视频信息输出到计算机可读媒体16上。
计算机可读媒体16可包含暂时性媒体,例如无线广播或有线网络传输,或存储媒体(即,非暂时性存储媒体),例如硬盘、闪存驱动器、压缩光盘、数字视频光盘、蓝光光盘或其它计算机可读媒体。在一些实例中,网络服务器(未展示)可从源装置12接收经编码视频数据,且(例如)通过网络传输将经编码视频数据提供到目的地装置14。类似地,媒体生产设施(例如光盘冲压设施)的计算装置可从源装置12接收经编码视频数据且生产含有经编码视频数据的光盘。当通过视频解码装置进行处理时,光盘上的经编码视频数据可使得视频解码装置根据本文所公开的不同实例解码视频数据。因此,在不同实例中,可理解计算机可读媒体16包含不同形式的一或多个计算机可读媒体。
目的地装置14的输入接口28从计算机可读媒体16接收信息。计算机可读媒体16的信息可包含由视频编码器20定义的语法信息,所述语法信息也供视频解码器30使用,其包含描述块及其它经译码单元(例如,GOP)的特性及/或处理的语法元素。显示装置31 将经解码视频数据显示给用户,且可包括多种显示装置中的任一者,例如阴极射线管 (CRT)、液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
视频编码器20及视频解码器30可根据视频译码标准操作,例如,高效率视频译码(HEVC)标准,也被称作ITU-T H.265。替代地,视频编码器20及视频解码器30可根据其它专有或行业标准(例如,ITU-T H.264标准,替代地被称作MPEG-4第10部分,高级视频译码(AVC))或这些标准的扩展而操作。然而,本发明的技术并不限于任何特定译码标准。视频译码标准的其它实例包含MPEG-2及ITU-T H.263。尽管图1中未展示,但在一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包含适当MUX-DEMUX单元或其它硬件及软件,以处置共用数据流或单独数据流中的音频及视频两者的编码。如果适用,那么MUX-DEMUX单元可遵照ITU H.223多路复用器协议或例如用户数据报协议(UDP)的其它协议。
视频编码器20及视频解码器30各自可实施为多种合适的编码器电路中的任一者,例如,一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件,或其任何组合。当所述技术部分地在软件中实施时,装置可将用于软件的指令存储于合适的非暂时性计算机可读媒体中,且在硬件中使用一或多个处理器来执行所述指令以执行本发明的技术。视频编码器20及视频解码器30中的每一者可包含于一或多个编码器或解码器中,编码器或解码器中的任一者可集成为相应装置中的组合式编码器/解码器(编解码器)的部分。
大体而言,根据HEVC,视频帧或图片可划分成一系列包含明度及色度样本两者的树型块或最大译码单元(LCU)。位流内的语法数据可定义LCU的大小,LCU就像素的数目而言为最大译码单元。切片包含按译码次序的许多连续树型块。视频帧或图片可分割成一或多个切片。每一树型块可根据四分树而分裂成若干译码单元(CU)。大体而言,四分树数据结构每CU包含一个节点,其中根节点对应于树型块。如果将CU分裂成四个子CU,那么对应于所述CU的节点包含四个叶节点,所述四个叶节点中的每一者对应于所述子CU中的一者。
四分树数据结构中的每一节点可提供对应CU的语法数据。举例来说,所述四分树中的节点可包含分裂旗标,从而指示是否将对应于所述节点的CU分裂成子CU。针对 CU的语法元素可经递归地定义,且可取决于所述CU是否分裂成子CU。如果CU未经进一步分裂,那么其被称作叶CU。在本发明中,即使不存在原始叶CU的明显分裂,叶CU的四个子CU也将被称作叶CU。举例来说,如果16×16大小的CU未进一步分裂,那么四个8×8子CU也将被称作叶CU,尽管16×16CU从未分裂。
除CU不具有大小区别外,CU具有与H.264标准的宏块类似的用途。举例来说,可将树型块分裂成四个子节点(也被称作子CU),且每一子节点又可为上代节点且可被分裂成另外四个子节点。被称作四分树的叶节点的最终的未分裂子节点包括译码节点,所述译码节点也被称作叶CU。与经译码位流相关联的语法数据可定义可分裂树型块的最大次数(其被称作最大CU深度),且也可定义所述译码节点的最小大小。因此,位流也可定义最小译码单元(SCU)。本发明使用术语“块”以在HEVC的上下文中指代CU、预测单元(PU)或变换单元(TU)中的任一者,或在其它标准(例如,H.264/AVC中的其宏块及子块)的上下文中指代类似数据结构。
CU包含译码节点以及与所述译码节点相关联的预测单元(PU)及变换单元(TU)。CU的大小大体上对应于译码节点的大小,且大体上为正方形形状。CU的大小可在8×8像素达到具有最大64×64像素或更大像素的树型块的大小的范围内。每一CU可含有一或多个PU及一或多个TU。与CU相关联的语法数据可描述(例如)将CU分割成一或多个 PU。分割模式可在CU是经跳过或直接模式编码、帧内预测模式编码还是帧间预测模式编码之间有区别。PU可分割成非正方形形状。与CU相关联的语法数据也可描述(例如) 根据四分树将CU分割成一或多个TU。TU可为正方形或非正方形(例如,矩形)形状。
HEVC标准允许根据TU进行变换,所述变换对于不同CU可不同。TU的大小通常是基于针对经分割LCU定义的给定CU内的PU的大小,但情况可能并非总是如此。TU 的大小通常与PU相同或比PU小。在一些实例中,可使用被称为“残余四分树”(RQT) 的四分树结构而将对应于CU的残余样本再分为更小单元。可将RQT的叶节点称作变换单元(TU)。与TU相关联的像素差值可经变换以产生可加以量化的变换系数。
叶CU可包含一或多个预测单元(PU)。大体而言,PU表示对应于所述对应CU的全部或一部分的空间区域,且可包含用于针对PU检索及/或产生参考样本的数据。此外, PU包含与预测有关的数据。举例来说,当PU经帧内模式编码时,PU的数据可包含于残余四分树(RQT)中,所述RQT可包含描述用于对应于所述PU的TU的帧内预测模式的数据。RQT也可被称作变换树。在一些实例中,可在叶CU语法而非RQT中传信帧内预测模式。作为另一实例,当PU经帧间模式编码时,PU可包含用于定义PU的运动信息(例如一或多个运动向量)的数据。定义PU的运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分的一像素精度或八分的一像素精度)、运动向量所指向的参考图片,及/或运动向量的参考图片列表(例如,列表0、列表1或列表C)。
具有一或多个PU的叶CU还可包含一或多个变换单元(TU)。如上文所讨论,可使用RQT(也称作TU四分树结构)来指定所述变换单元。举例来说,分裂旗标可指示叶CU 是否分裂成四个变换单元。接着,可将每一变换单元进一步分裂为其它若干子TU。当 TU未进一步分裂时,其可被称为叶TU。大体而言,对于帧内译码而言,属于叶CU的所有叶TU共享同一帧内预测模式。即,一般应用同一帧内预测模式来计算叶CU的所有TU的预测值。对于帧内译码,视频编码器可使用帧内预测模式将每一叶TU的残余值计算为在CU的对应于所述TU的部分与原始块之间的差。TU不必限于PU的大小。因此,TU可大于或小于PU。对于帧内译码,PU可与用于同一CU的对应叶TU共置。在一些实例中,叶TU的最大大小可对应于对应叶CU的大小。
此外,叶CU的TU也可与相应四分树数据结构(被称作残余四分树(RQT))相关联。即,叶CU可包含指示所述叶CU如何被分割成TU的四分树。TU四分树的根节点大体对应于叶CU,而CU四分树的根节点大体对应于树型块(或LCU)。将RQT的未被分裂的TU称作叶TU。大体而言,除非另有指示,否则本发明分别使用术语CU及TU来指叶CU及叶TU。
视频序列通常包含一系列视频帧或图片。图片群组(GOP)大体上包括一系列视频图片中的一或多者。GOP可包含GOP的标头中、图片中的一或多者的标头中或别处的语法数据,所述语法数据描述包含于GOP中的图片的数目。图片的每一切片可包含描述所述相应切片的编码模式的切片语法数据。视频编码器20通常对个别视频切片内的视频块进行操作,以便编码视频数据。视频块可对应于CU内的译码节点。视频块可具有固定或变化的大小,且可根据指定译码标准而在大小方面不同。
作为实例,可针对不同大小的PU执行预测。假定特定CU的大小为2N×2N,那么可对2N×2N或N×N的PU大小执行帧内预测,且对2N×2N、2N×N、N×2N或N×N的对称PU大小执行帧间预测。也可针对2N×nU、2N×nD、nL×2N及nR×2N的PU大小执行帧间预测的不对称分割。在不对称分割中,CU的一方向未分割,而另一方向分割成 25%及75%。CU的对应于25%分割的部分由“n”跟随“上(Up)”、“下(Down)”、“左 (Left)”或“右(Right)”的指示来指示。因此,例如,“2N×nU”指水平地以顶部的 2N×0.5N PU及底部的2N×1.5N PU分割的2N×2NCU。
在本发明中,“N×N”与“N乘N”可互换地使用以指视频块在垂直尺寸与水平尺寸方面的像素尺寸,例如,16×16像素或16乘16像素。大体而言,16×16块在垂直方向上将具有16个像素(y=16)且在水平方向上将具有16个像素(x=16)。同样地,N×N 块通常在垂直方向上具有N个像素且在水平方向上具有N个像素,其中N表示非负整数值。可按行及列来布置块中的像素。此外,块未必需要在水平方向上与在垂直方向上具有相同数目个像素。举例来说,块可包括N×M个像素,其中M未必等于N。
在使用CU的PU的帧内预测性或帧间预测性译码之后,视频编码器20可计算CU 的TU的残余数据。PU可包括描述在空间域(也被称作像素域)中产生预测性像素数据的方法或模式的语法数据,且TU可包括在对残余视频数据应用变换(例如离散余弦变换 (DCT)、整数变换、小波变换或概念上类似的变换)之后变换域中的系数。残余数据可对应于未经编码的图片的像素与对应于PU的预测值之间的像素差。视频编码器20可形成包含表示CU的残余数据的经量化变换系数的TU。即,视频编码器20可计算残余数据 (以残余块的形式)、变换残余块以产生变换系数的块,且接着量化变换系数以形成经量化变换系数。视频编码器20可形成包含经量化变换系数的TU,以及其它语法信息(例如,TU的分裂信息)。
如上文所述,在任何变换以产生变换系数后,视频编码器20可执行变换系数的量化。量化通常指代对变换系数进行量化以可能减少用以表示系数的数据的量,从而提供进一步压缩的过程。所述量化过程可减小与所述系数中的一些或所有相关联的位深度。举例来说,可在量化期间将n位值降值舍位到m位值,其中n大于m。
在量化之后,视频编码器可扫描变换系数,从而从包含经量化变换系数的二维矩阵产生一维向量。所述扫描可经设计以将较高能量(且因此较低频率)系数置于阵列前部,及将较低能量(且因此较高频率)系数置于阵列后部。在一些实例中,视频编码器20可利用预定义扫描次序来扫描经量化变换系数以产生可经熵编码的串行化向量。在其它实例中,视频编码器20可执行自适应性扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器20可(例如)根据本发明中描述的上下文自适应性二进制算术译码(CABAC) 设计来对一维向量进行熵编码。视频编码器20还可对与经编码视频数据相关联的供视频解码器30用于解码视频数据的语法元素进行熵编码。
大体而言,视频解码器30执行尽管与由视频编码器20执行的过程互逆但与其大体上类似的过程,以解码经编码数据。举例来说,视频解码器30逆量化且逆变换所接收 TU的系数以再生残余块。视频解码器30使用传信预测模式(帧内预测或帧间预测)以形成经预测块。接着视频解码器30(在逐像素基础上)使经预测块与残余块组合以再生原始块。可执行额外处理,例如执行解块过程以减少沿块边界的视觉伪影。另外,视频解码器30可以尽管与视频编码器20的CABAC编码过程互逆但与其大体上类似的方式使用 CABAC解码语法元素。
本发明可大体上指代将某些信息“传信”到另一装置(例如,视频解码器30)的视频编码器20。然而,应理解,视频编码器20可通过使某些语法元素与视频数据的不同经编码部分相关联来传信信息。即,视频编码器20可通过将某些语法元素存储到视频数据的不同经编码部分的标头来“传信”数据。在一些情况下,这类语法元素可在由视频解码器30接收及解码之前经编码及存储(例如,存储到存储装置32)。因此,术语“传信”可大体上指用于解码经压缩视频数据的语法或其它数据的通信,而不管这种通信是实时还是几乎实时发生还是历时时间跨度而发生,例如,可能在编码时在将语法元素存储到媒体时发生,接着可由解码装置在将语法元素存储到所述媒体之后的任何时间处检索语法元素。
以下部分将更详细描述BAC及CABAC技术。大体而言,BAC为递归区间再分程序。BAC在H.264/AVC及H.265/HEVC视频译码标准中的CABAC过程中用于编码二进制数。BAC译码器的输出为表示最终经译码概率区间内的概率的值或指标的二进制流。概率区间由范围及下端值指定。范围为概率区间的扩展。低点为译码区间的下限。
将算术译码应用于视频译码描述于D.Marpe、H.Schwarz及T.Wiegand的“H.264/AVC视频压缩标准中的基于上下文的自适应性算术译码(Context-Based Adaptive BinaryArithmetic Coding in the H.264/AVC Video Compression Standard)”(用于视频技术的电路及系统,IEEE汇刊,2003年7月,第7期,第13卷)中。CABAC涉及三个主要功能,即,二进制化、上下文模型化及算术译码。二进制化指代将语法元素映射到二进制符号(或“二进制数”)的功能。二进制符号也可被称作“二进制数串”。上下文模型化指代估计不同二进制数的概率的功能。算术译码指代基于所估计概率将二进制数压缩到位的后续功能。不同装置及/或其模块(例如,二进制算术译码器)可执行算术译码功能。
在HEVC中使用若干不同二进制化过程,包含一元(U)、截断一元(TU)、k级 (kth-order)指数哥伦布(EGk)及固定长度(FL)。不同二进制化过程的细节描述于V.Sze及M.Budagavi的“HEVC中的高输送量CABAC熵译码(High throughput CABAC entropy codingin HEVC)”(关于用于视频技术的电路及系统的IEEE汇刊(TCSVT),2012年12 月,第12期,第22卷,第1778到1791页)中。
CABAC中的每一上下文(即,概率模型)由状态表示。每一状态(σ)隐含地表示特定符号(例如,二进制数)为最不可能符号(LPS)的概率(pσ)。符号可为LPS或最可能符号(MPS)。符号为二进制,且因此,MPS及LPS可为0或1。概率针对对应上下文经估计且(隐含地)用以使用算术译码器来熵译码符号。
BAC的过程由取决于待译码的上下文及正经译码的二进制数的值改变其内部值‘范围’及‘低点’的状态机处理。取决于上下文的状态(即,其概率),将范围划分为rangeMPSσ(状态σ中最可能符号的范围)及rangeLPSσ(状态σ中最不可能符号的范围)。理论上,概率状态σ的rangeLPSσ值由乘法运算导出:
rangeLPSσ=范围×pσ
其中pσ为选择LPS的概率。当然,MPS的概率为1-pσ。等效地,rangeMPSσ等于范围减去rangeLPSσ。BAC反复地更新取决于待译码的上下文的状态的范围、当前范围以及正经译码的二进制数(即,为等于LPS或MPS的二进制数)的值。
图2A及2B展示在二进制数n处的这个过程的实例。在图2A的实例100中,在二进制数n处,二进制数2处的范围包含通过LPS(pσ)给定特定上下文状态(σ)的概率而给定的RangeMPS及RangeLPS。实例100展示当二进制数n的值等于MPS时在二进制数 n+1处的范围的更新。在这个实例中,低点保持相同,但在二进制数n+1处的范围的值缩小到在二进制数n处的RangeMPS的值。图2B的实例102展示当二进制数n的值不等于MPS(即,等于LPS)时在二进制数n+1处的范围的更新。在这个实例中,低点移动到在二进制数n处的RangeLPS的较低范围值。另外,在二进制数n+1处的范围的值缩小到在二进制数n处的RangeLPS的值。
在HEVC中,通过9个位表达范围且通过10个位表达低点。存在以足够精度维持范围及低点值的再归一化过程。再归一化出现在每当范围小于256时。因此,在再归一化之后范围始终等于或大于256。取决于范围及低点的值,BAC将‘0’或‘1’输出到位流,或更新内部变量(被称作BO:突出位)以保留用于未来输出。图3展示取决于范围的BAC输出的实例。举例来说,当范围及低点高于特定阈值(例如,512)时,将‘1’输出到位流。当范围及低点低于特定阈值(例如,512)时,将‘0’输出到位流。当范围及低点在某些阈值之间时,不输出任何事物到位流。替代地,递增BO值且编码下一二进制数。
在HEVC的CABAC上下文模型中,存在128种状态。存在可从0到63的64种可能的LPS概率(由状态σ表示)。每一MPS可为零或一。因此,128种状态为64种状态概率乘以MPS的2个可能值(0或1)。因此,可将概率模型存储为7位条目。在每一7 位条目中,可分配6个位以用于表示概率状态,且可分配1个位以用于可适用上下文存储器中的最可能符号(MPS)。
为减少导出LPS范围(rangeLPSσ)的计算,针对所有情况的结果经预先计算且存储为 HEVC中的查找表中的近似值。因此,可在无任何乘法运算的情况下通过使用简单表查找来获得LPS范围。对于一些装置或应用而言避免乘法运算可至关重要,这是由于这个操作可引起多种硬件架构中的显著潜时。
可使用4列预先计算的LPS范围表而非乘法运算。将范围划分为四个片段。可由问题(范围>>6)&3导出片段索引。实际上,片段索引通过从实际范围移位及丢弃位来导出。以下表1展示可能范围及其对应索引。
表1-范围索引
范围 256-319 320-383 384-447 448-511
(范围>>6)&3 0 1 2 3
LPS范围表接着具有64个条目(每一概率状态有一个)乘以4(每一范围索引有一个)。每一条目为LPS范围,即,将范围乘以LPS概率的值。以下表2中展示这个表的部分的实例。表2描绘概率状态9到12。在HEVC的一个提议中,概率状态可在0到63的范围内。
表2-RangeLPS
Figure BDA0001483042900000131
在每一片段(即,范围值)中,每一概率状态σ的LPS范围为预定义的。换言之,概率状态σ的LPS范围经量化为四个值(即,每一范围索引有一个值)。在给定点处使用的特定的LPS范围取决于范围属于哪一片段。表中所使用的可能的LPS范围的数目为表列数(即,可能的LPS范围值的数目)与LPS范围精度之间的折衷。大体而言,更多列产生LPS范围值的更小量化错误,但也增加对用以存储表的更多存储器的需求。更少列增加量化错误,但也减少需要用以存储表的存储器。
如上文所述,每一LPS概率状态具有对应概率。在HEVC中,根据为递归方程式的以下方程式(1)针对LPS(最不可能符号)导出64个代表性概率值pσ∈[0.01875,0.5]。
Figure BDA0001483042900000132
在上述实例中,所述概率集合中的所选比例因子α≈0.9492及基数N=64两者表示概率表示的准确度与对快速适应的需要之间的良好折衷。在一些实例中,更接近1的值α可产生具有较高准确度(“稳态行为”)的缓慢适应,而可针对非静止情况通过以经降低准确度为代价减少值α来实现更快适应。比例因子α可对应于指示先前经编码二进制数的数目的视窗大小,所述先前经编码二进制数对当前更新具有显著影响。MPS(最可能符号)的概率等于1减去LPS(最不可能符号)的概率。换言之,可由公式(1-LPS)表示MPS 的概率,其中‘LPS’表示LPS的概率。因此,可由HEVC中的CABAC表示的概率范围为[0.01875,0.98125(=1-0.01875)]。
由于用于译码语法元素的值的位(或“二进制数”)的上下文的概率状态经更新,CABAC为自适应性的,以便遵循信号统计(即,先前经译码二进制数的值,例如,对于语法元素而言)。更新过程如下。对于给定概率状态,更新取决于状态索引及经识别为 LPS或MPS的经编码符号的值。作为更新过程的结果,新的概率状态经导出,其包含潜在经修改LPS概率估计及(必要时)经修改MPS值。
上下文交换可出现在对每一二进制数进行译码之后。倘若二进制数值等于MPS,那么给定状态索引仅增加1。这用于除当MPS出现在状态索引62处时之外的所有状态,其中LPS概率已处于其最小值(或等效地,达到最大MPS概率)。在这种情况下,状态索引保持固定,直到LPS可见或最末二进制数值经编码(将特殊终止状态用于最末二进制数值的特殊情况)。当LPS出现时,通过以特定量递减状态索引来改变状态索引,如以下方程式中所展示。大体而言,这个规则应用于具有以下异常的LPS每次出现时。假定已在具有索引σ=0的状态处编码LPS,所述索引对应于等概率情况,那么状态索引保持固定,但将切换MPS值使得LPS及MPS的值将被互换。在所有其它情况下,不管哪一符号已经编码,MPS值将不更改。大体而言,视频译码器可根据以下方程式(2)导出新的概率状态,所述方程式展示给定LPS可能性pold与其经更新对应物pnew之间的关系。
Figure BDA0001483042900000141
为降低复杂度,视频译码器可实施CABAC,使得可通过各自具有多个条目的最多两个表实现所有转换规则。作为一个实例,可通过各自具有7位无正负号整数值的128 个条目的最多两个表(例如,以下表3及表4)实现所有转换规则。作为另一实例,可通过各自具有6位无正负号整数值的63条目的最多两个表(例如,HEVC中的表9-41)实现所有转换规则。在更新之后,视频译码器可在MPS值经译码时将给定状态索引i定义为新的状态索引TransIdxMPS[i],或在LPS值经译码时定义为TransIdxLPS[i]。
表3
Figure BDA0001483042900000142
表4
Figure BDA0001483042900000151
在一些实例中,视频译码器可通过单一表TransIdxLPS确定状态转换,所述表在已观测到LPS的情况下针对给定状态索引确定新的经更新状态索引TransIdxLPS[σ]。可通过使状态索引仅(饱和)增加固定值1获得MPS驱动转换,从而得到经更新状态索引 min(σ+1,62)。
如上文所讨论,上下文模型化提供准确概率估计,所述估计为实现较高译码效率的促进因子。因此,上下文模型化为自适应性过程。不同上下文可用于不同二进制数,且可基于先前译码二进制数的值更新上下文的概率。具有类似分布的二进制数常常共享同一上下文。可基于语法元素类型、语法元素中的二进制数位置(binIdx)、明度/色度信息、相邻信息等选择每一二进制数的上下文。
在译码给定切片之前,基于一或多个预定义值初始化概率模型。举例来说,给定由qp表示的输入量化参数及由initVal表示的预定义值,可根据以下方程式(3)导出概率模型(由状态及MPS表示)的7位条目。
经导出状态索引隐含地包含MPS信息。更特定而言,当状态索引为偶数(even)值时, MPS值等于0。相反地,当状态索引为奇数(odd)值时,MPS值等于1。“initVal”的值在具有8位精度的范围[0,255]内。预定义值“initVal”取决于切片。换言之,使用概率模型的三组上下文初始化参数,每一组分别在I切片、P切片及B切片中。以这种方式,启用经配置以执行CABAC的视频编码装置以在三个初始化表之间选择这些切片类型,使得可实现对不同译码情境及/或不同类型的视频内容的较佳拟合。
根据HEVC,另一方法可应用于允许通过B(或P)切片初始化一个P(或B)切片。相反地,所述方法可应用于允许通过P切片初始化一个B切片。相关语法元素描述于下表 5(其对应于HEVC的章节7.3.6.1)中,且相关语义及解码过程在表5之后的下文中描述。
表5
Figure BDA0001483042900000161
表5的语法元素的语义可定义如下:
cabac_init_present_flag等于1指定cabac_init_flag存在于指代PPS的切片标头中。 cabac_init_present_flag等于0指定cabac_init_flag不存在于指代PPS的切片标头中。
如下文描述的解码过程中所定义,cabac_init_flag指定用于确定上下文变量的初始化过程中所使用的初始化表的方法。当cabac_init_flag不存在时,推断其等于0。
描述符:
ae(v):经上下文自适应性算术熵译码的语法元素。
b(8):具有位串(8个位)的任何模式的位组。
f(n):使用n个位写入(从左到右)的固定模式位串,其中首先为左方位。
se(v):经带正负号整数0阶指数哥伦布译码的语法元素,其中首先为左方位。
u(n):使用n个位的无正负号整数。当n为语法表中的“v”时,位数目以取决于其它语法元素的值的方式变化。
ue(v):经无正负号整数0阶指数哥伦布译码的语法元素,其中首先为左方位。
HEVC的表9-4为需要初始化的三种初始化类型中的每一者提供上下文索引(ctxIdx)。表9-4进一步包含表号(ctxTable),所述表号包含初始化所需的initValue的值。对于P及B切片类型,initType的导出取决于cabac_init_flag语法元素的值。视频译码器可导出变量,如使用由以下伪码描述的操作导出initType:
新的算术译码器描述于以下文件中:Alshin等人的“用于CABAC的多参数概率更新(Multi-parameter probability up-date for CABAC)”(文件:JCTVC-F254,ITU-T SG 16WP 3及ISO/IEC JTC 1/SC 29/WG 11的JCT-VC,第6次会议:意大利,托里诺,2011 年7月14日到22日(在下文中为“JCTVC-F254”))及Alshin等人的“CE1(子集B):用于CABAC的多参数概率更新(CE1(subset B):Multi-parameter probability up-date for CABAC)”(文件:JCTVC-G764,ITU-T SG 16WP 3及ISO/IEC JTC 1/SC 29/WG 11的 JCT-VC,第7次会议:瑞士,日内瓦,2011年11月21日到30日(在下文中为“JCTVC-G764”))。在JCTVC-F254及JCTV-G764中,将每一概率表示为从1到32767 的整数。如此,通过16位的精度进行所有计算。JCTVC-F254及JCTV-G764中提出的译码器将具有无乘法公式的均匀网目及显式计算用于概率更新,而非将AVC CABAC中利用的查找表(例如,如上文所讨论的TransIdxMPS及TransIdxLPS)及指数网目 (exponential mesh)用于概率。
假设概率pi由概率索引表示,所述概率索引为从0到2k的整数Pi(例如,其中k等于15)(例如,如以下方程式(4)所展示)。
pi=Pi/2k (4)
随后用于概率的最常使用之以下公式在现代算术编解码器中更新(例如,如由以下方程式(5)所展示)。
pnew=αy+(1-α)pold (5)
在方程式(5)中,如果当前符号与最可能符号(MPS)匹配,那么y等于“零”,否则 y等于“一”。这个公式(即,方程式(5))为最不可能符号(LPS)的概率提供估计值。类似于以上讨论,参数α可对应于指示先前经编码二进制数的数目的视窗大小,所述先前经编码二进制数对当前更新具有显著影响。
如果假定视窗大小(W)为二的幂(W=1/2M,M为正整数),且将方程式(4)中的pi给定为输入pold,,那么可以以下展示的方程式(6)重写经更新概率索引。
Pi=((2k)>>M)+Pi-(Pi>>M) (6)
在由JCTVC-F254及JCTV-G764提出的单概率更新模型中,M对于所有上下文而言为固定的且仅一个寄存器用于记录经更新概率。在一个实例中,M经设定等于6。即,视窗大小等于64。概率更新过程可由以下方程式(7)表示。
Pnew=((2k)>>6)+Pi-(Pi>>6) (7)
由JCTVC-F254及JCTV-G764提出的技术的主要想法为通过不同视窗大小使用若干概率估计(而非仅一个)且将其组合为加权平均值以用于下一二进制数概率预测。以下方程式(8)及(9)说明由JCTVC-F254及JCTV-G764提出的技术的实例。方程式(8)中的计算对于每一概率pi而言为独立的。
pi new=Wiy+(1-Wi)pi old (8)
pnew=Σβipi new (9)
方程式(8)中的计算对于每一概率pi而言为独立的。
在由JCTVC-F254及JCTV-G764提出的方法中,用于概率估计的线性组合由对应 W0=16及W1=256(Wi=1/αi)的两个被加数构成,如方程式(10)及(11)中所展示。在方程式(10)及(11)中,如果最末译码二进制数为“1”,那么Y=215,且如果最末译码二进制数为“0”,“>>M”为针对M个位的算术右移位,那么Y=0。
P0=(Y>>4)+P0-(P0>>4) (10)
P1=(Y>>8)+P1-(P0>>8) (11)
P=(P0+P1+1)>>1 (12)
对于短的过渡期,仅具有较快更新速度的短距离预测(即,更小视窗大小)为优选的。但在稳定之后,靠近最优选值概率二的更新模型对于大多数上下文而言更准确。JCTVC-F254及JCTV-G764提出在最末初始化以后引入更新计数器。在每一更新之后,计数增加一。直到计数超过某一阈值,将仅使用如由方程式(10)所定义的短“视窗大小”模型。当计数达到阈值时,应切换到如上文由方程式(12)所定义的更准确的双概率更新模型。通过512×64查找表执行由JCTVC-F254及JCTV-G764提出的范围计算过程。
根据由JCTVC-F254及JCTV-G764提出的方法,应用不同上下文初始化方法。具体而言,针对每一上下文预定义两个参数(分别由asCtxInit[0]及asCtxInit[1]表示),且如方程式(13)中所展示导出初始概率状态iP0。
Figure BDA0001483042900000201
对于单概率更新模型,由具有15位精度的iP0表示上下文。对于双概率更新模型,首先将另一变量iP1设定等于iP0且进一步要求已经译码的二进制数的数目的计数。在由JCTVC-F254及JCTV-G764提出的方法中,以16位存储asCtxInit[0]及asCtxInit[1] 两者。
然而,在一些实例中,上述技术(即,HEVC的CABAC技术及由JCTVC-F254及 JCTV-G764提出的修改)可具有可降低译码效率及/或次优选地利用译码器系统资源的一或多个问题。
作为一个实例,在基于算术译码器技术(例如,如HEVC或H.264/AVC中所使用) 的上述查找表中,概率更新是基于具有固定视窗大小的固定表(即,TransIdxLPS及TransIdxMPS)。固定视窗大小的这种使用使得更新速度为固定的。然而,针对给定CTU 或切片,语法元素出现且需译码的频率可完全不同。对与针对给定CTU或切片以不同频率出现的语法元素组合的固定更新速度的限制可导致较不频繁出现的语法元素的所估计概率为次优选的。举例来说,对于一个CU,可传信inter_pred_idc的最多2个值,而一个CU内的变换系数可经若干次译码。在这种情况下,当对这些语法元素使用相同更新速度时,inter_pred_idc等于1的所估计概率在译码一个完整切片之后可仍为次优选的,即使变换系数的概率可变为相对最优选。
作为另一实例,在基于计数器技术(例如,如由JCTVC-F254及JCTV-G764所提出)的上述算术译码器中,概率更新速度为固定的,而可能不需要导致较不频繁选择的语法元素的低效率的高精度(例如,可能概率索引可为[1,215-1])。
作为另一实例,在基于计数器技术的算术译码器的双概率更新模型组件中,两个状态参数(概率索引)必须经存储及更新,所述两个状态参数可不合需要地限制CABAC过程的输送量。
作为又一实例,在图像/视频译码系统中,可使用数百个上下文。在由JCTVC-F254及JCTV-G764提出的技术中,每上下文要求32个位,而对HEVC中的算术译码器而言仅8个位就足够。因此,用于在由JCTVC-F254及JCTV-G764提出的技术中的上下文初始化的预定义值的存储增加300%,对于关于存储的硬件实施方案而言,所述增加可为非所需的。
根据本发明的一或多种技术,视频译码器(例如,视频编码器20及/或视频解码器30) 可使用查找表从根据通过第一位精度存储的预定义初始化值确定的初始概率状态转换到具有第二、更大位精度的初始概率状态。举例来说,与基于都通过16位精度存储的两个预定义初始化值(例如,如JCTVC-F254及JCTV-G764中所描述的asCtxInit[0]及 asCtxInit[1])确定上下文的初始概率状态相反,视频译码器可基于通过8位精度存储的单一预定义初始化值(例如,HEVC中所使用的initVal)确定上下文的中间初始概率状态,且使用查找表以将中间初始概率状态映射到具有15位精度的初始概率状态(例如,如 JCTVC-F254及JCTV-G764中所描述的iP0或iP1)。在一些实例中,查找表可含有比上下文的可能的初始概率状态的数目更少的条目。举例来说,在存在32767个可能的初始概率状态的情况下,查找表可包含128个条目。以这种方式,在不增加预定义初始化值的存储需求(例如,相较于HEVC)的情况下,视频译码器可初始化具有相对较大数目的概率状态的上下文(例如,相较于HEVC)。
本发明中所描述的技术可(例如)在视频编码器、视频解码器或组合式视频编码器解码器(编解码器)内执行。特定而言,这类技术可在视频编码器的熵编码单元及/或视频解码器的熵解码单元中执行。所述技术可(例如)在CABAC过程内执行,所述CABAC过程可经配置以支持视频译码,例如根据HEVC标准的方面的视频译码。熵编码及解码单元可以互逆或相反方式应用译码过程,(例如)以编码或解码各种视频数据中的任一者,例如与残余视频数据相关联的经量化变换系数、运动向量信息、语法元素及可在视频编码及/或视频解码过程中使用的其它类型的信息。
图4为绘示如本发明中所描述的可经配置以利用BAC译码技术的视频编码器20的实例的框图。将出于说明的目的在HEVC译码的上下文中描述视频编码器20,但关于其它译码标准或方法并不限制本发明。此外,视频编码器20可经配置以根据HEVC的范围扩展实施技术。
视频编码器20可对视频切片内的视频块执行帧内译码及帧间译码。帧内译码依赖于空间预测以减少或去除给定视频图片内的视频的空间冗余。帧间译码依赖于时间预测或视图间预测以减少或去除视频序列的邻近图片内的视频的时间冗余或减少或去除其它视图中的视频冗余。
在图4的实例中,视频编码器20包含视频数据存储器40、预测处理单元42、参考图片存储器64、求和器50、变换处理单元52、量化处理单元54及熵编码单元56。预测处理单元42又包含运动估计单元44、运动补偿单元46及帧内预测单元48。针对视频块重建,视频编码器20还包含逆量化处理单元58、逆变换处理单元60及求和器62。还可包含解块滤波器(图4中未展示)以便对块边界进行滤波,从而从经重建视频中去除块效应伪影。如果需要,解块滤波器通常将对求和器62的输出进行滤波。除解块滤波器之外,还可使用额外回路滤波器(回路中或回路后)。
视频数据存储器40可存储待由视频编码器20的组件编码的视频数据。存储于视频数据存储器40中的视频数据可(例如)从视频源18获得。参考图片存储器64为存储供视频编码器20用于编码视频数据(例如,以帧内译码模式或帧间译码模式,也被称作帧内预测译码模式或帧间预测译码模式)的参考视频数据的解码图片缓冲器(DPB)的一个实例。视频数据存储器40及参考图片存储器64可由多种存储器装置中的任一者形成,例如动态随机存取存储器(DRAM)(包含同步DRAM(SDRAM))、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。视频数据存储器40及参考图片存储器 64可由同一存储器装置或单独的存储器装置提供。在各种实例中,视频数据存储器40 可与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。
在编码过程期间,视频编码器20接收待译码的视频图片或切片。图片或切片可划分为多个视频块。运动估计单元44及运动补偿单元46执行所接收视频块相对于一或多个参考图片中的一或多个块的帧间预测性译码以提供时间压缩或提供视图间压缩。帧内预测单元48可替代地执行所接收视频块相对于与待译码块相同的图片或切片中的一或多个相邻块的帧内预测性译码以提供空间压缩。视频编码器20可执行多个译码遍次(例如,以选择用于视频数据的每一块的适当译码模式)。
此外,分割单元(未展示)可基于对先前译码遍次中的先前分割方案的评估而将视频数据的块分割为子块。举例来说,分割单元可首先将图片或切片分割成LCU,且基于率失真分析(例如,率失真优化)将所述LCU中的每一者分割成子CU。预测处理单元42 可进一步产生指示将LCU分割为子CU的四分树数据结构。四分树的叶节点CU可包含一或多个PU及一或多个TU。
预测处理单元42可(例如)基于错误结果选择帧内或帧间译码模式中的一者,且将所得经帧内或帧间译码块提供到求和器50以产生残余块数据及提供到求和器62以重建用作参考图片的经编码块。预测处理单元42还将语法元素(例如,运动向量、帧内模式指示符、分割信息及其它这类语法信息)提供到熵编码单元56。
运动估计单元44及运动补偿单元46可高度集成,但出于概念性目的而单独说明。由运动估计单元44所执行的运动估计为产生估计视频块的运动的运动向量的过程。举例来说,运动向量可指示在当前视频图片内的视频块的PU相对于在参考图片(或其它经译码单元)内的预测性块(其相对于在所述当前图片(或其它经译码单元)内正经译码的当前块)的位移。预测性块为就像素差而言被发现紧密地匹配待译码块的块,所述像素差可通过绝对差总和(SAD)、平方差总和(SSD)或其它差度量确定。在一些实例中,视频编码器20可计算存储于参考图片存储器64中的参考图片的子整数像素位置的值。举例来说,视频编码器20可内插所述参考图片的四分的一像素位置、八分的一像素位置或其它分数像素位置的值。因此,运动估计单元44可相对于全像素位置及分数像素位置执行运动搜索并输出具有分数像素精度的运动向量。
运动估计单元44通过比较PU的位置与参考图片的预测性块的位置来计算经帧间译码切片中的视频块的PU的运动向量。参考图片可选自识别存储于参考图片存储器64 中的一或多个参考图片的一或多个参考图片列表(RPL)。运动估计单元44将所计算的运动向量发送到熵编码单元56及运动补偿单元46。在一些实例中,运动估计单元44可将所选参考图片的指示发送到熵编码单元56。
由运动补偿单元46执行的运动补偿可涉及基于由运动估计单元44确定的运动向量来提取或产生预测性块。而且,在一些实例中,运动估计单元44及运动补偿单元46可在功能上集成。在接收到当前块的PU的运动向量后,运动补偿单元46即可在参考图片列表(RPL)中的一者中定位运动向量指向的预测性块。如下文所讨论,求和器50通过从正经译码的当前块的像素值减去预测性块的像素值来形成残余视频块,从而形成像素差值。大体而言,运动估计单元44相对于明度分量执行运动估计,且运动补偿单元46将基于明度分量计算的运动向量用于色度分量与明度分量两者。预测处理单元42还可产生与供视频解码器30在解码视频切片的视频块时使用的视频块及视频切片相关联的语法元素。
作为由运动估计单元44及运动补偿单元46执行的帧间预测的替代方案,帧内预测单元48可对当前块进行帧内预测,如上文所描述。详言之,帧内预测单元48可确定待用以编码当前块的帧内预测模式。在一些实例中,帧内预测单元48可(例如)在单独编码遍次期间使用不同帧内预测模式编码块,且帧内预测单元48可从多个帧内预测模式选择适当的帧内预测模式以供使用。
举例来说,帧内预测单元48可针对不同经测试帧内预测模式使用率失真分析计算率失真值,且从所述经测试模式当中选择具有最优选率失真特性的帧内预测模式。率失真分析大体上确定经编码块与原始、未编码块(其经编码以产生经编码块)之间的失真(或误差)量,以及用以产生经编码块的位率(即,位的数目)。帧内预测单元48可根据不同经编码块的失真及速率来计算比率以确定哪一帧内预测模式展现所述块的最优选率失真值。在一些实例中,多个帧内预测模式中的每一者可具有可由帧内预测单元48传信 (即,到视频解码器)的对应模式索引。
视频编码器20通过从正经译码的原始视频块减去来自预测处理单元42的预测数据而形成残余视频块。求和器50表示执行这个减法运算的一或多个组件。
变换处理单元52将变换(例如离散余弦变换(DCT)或概念上类似的变换)应用于残余块,从而产生包括残余变换系数值的视频块。变换处理单元52可执行概念上类似于DCT的其它变换。也可使用小波变换、整数变换、子频带变换或其它类型的变换。在任何情况下,变换处理单元52将变换应用于残余块,从而产生残余变换系数块。所述变换可将残余信息从像素值域转换到变换域,例如频域。
变换处理单元52可将所得变换系数发送到量化处理单元54。量化处理单元54量化变换系数以进一步减小位率。所述量化过程可减小与所述系数中的一些或所有相关联的位深度。可通过调整量化参数来修改量化程度。在一些实例中,量化处理单元54可接着对包含经量化变换系数的矩阵执行扫描。替代地,熵编码单元56可执行所述扫描。
在将变换系数扫描到一维阵列后,熵编码单元56即可将例如上下文自适应性可变长度译码(CAVLC)、上下文自适应性二进制算术译码(CABAC)、概率区间分割熵译码(PIPE)、哥伦布译码、哥伦布莱斯译码、指数哥伦布译码、基于语法的上下文自适应性二进制算术译码(SBAC)的熵译码或另一熵译码方法应用于系数。根据本发明的实例,尽管对各种不同熵译码过程进行参考,但熵编码单元56可经配置以如上文所述执行BAC 译码。
为了执行CAVLC,熵编码单元56可选择用于待传输的符号的可变长度码。可构建VLC中的码字,使得相对较短码对应于更可能的符号,而较长码对应于较不可能的符号。以这种方式,相对于(例如)针对待传输的每一符号使用相等长度码字,使用VLC可实现位节省。
为了执行CABAC,熵编码单元56可选择适用于特定上下文的上下文,以编码待传输的符号。上下文可涉及(例如)相邻值是否为非零。熵编码单元56也可熵编码语法元素,例如代表所选变换的信号。在通过熵编码单元56熵译码之后,可将所得经编码视频传输到另一装置(例如,视频解码器30)或加以存档以供稍后传输或检索。
根据本发明的一或多种技术,熵编码单元56可在熵编码供视频解码器(例如,视频解码器30)解码视频数据时使用的数据(例如,表示为一维二进制向量的语法元素值)时选择不同视窗大小。下文参考图5讨论熵编码单元56的一个实例的其它细节。
逆量化处理单元58及逆变换处理单元60分别应用逆量化及逆变换以重建像素域中的残余块(例如,供稍后用作参考块)。
运动补偿单元46也可将一或多个内插滤波器应用于参考块以计算用于运动估计的子整数像素值。求和器62将经重建残余块添加到由运动补偿单元46产生的运动补偿预测块,以产生用于存储于参考图片存储器64中的经重建视频块。经重建视频块可由运动估计单元44及运动补偿单元46用作参考块,以对后续视频图片中的块进行帧间译码。在一些实例中,例如在将当前图片用作预测当前图片的参考图片的情况下,运动补偿单元46及/或求和器62可在译码当前图片时以规律时间间隔更新由参考图片存储器64存储的当前图片的版本。作为一个实例,运动补偿单元46及/或求和器62可在译码当前图片的每一块之后更新由参考图片存储器64存储的当前图片的版本。举例来说,在当前块的样本作为初始化值存储于参考图片存储器64中的情况下,运动补偿单元46及/或求和器62可通过当前块的经重建样本更新参考图片存储器64存储的当前图片的当前的样本。
滤波单元(未展示)可执行各种滤波处理。举例来说,滤波单元可执行解块。即,滤波单元可接收形成经重建视频的切片或帧的多个经重建视频块,且对块边界进行滤波,以从切片或帧去除块效应伪影。在一个实例中,滤波单元评估视频块的所谓的“边界强度”。基于视频块的边界强度,可相对于邻近视频块的边缘像素对视频块的边缘像素进行滤波,使得观众更难以感知从一个视频块的变换。
在一些实例中,运动补偿单元46及/或求和器62可在滤波对样本执行滤波(例如,解块及/或SAO)之前更新参考图片存储器64存储的当前图片的版本。举例来说,滤波单元可在应用滤波之前等待直到整个图片经译码。以这种方式,运动估计单元44可在应用滤波之前将当前图片用作参考。在一些实例中,滤波单元可在由参考图片存储器64 存储的当前图片的版本经更新时执行滤波。举例来说,滤波单元可在每一块经更新时应用滤波。以这种方式,运动估计单元44可在应用滤波之后将当前图片用作参考。
虽然在本发明中描述所述技术的多个不同方面及实例,但是所述技术的各种方面及实例可以一起执行或彼此单独地执行。换言之,所述技术不应严格地限制于上文所描述的各种方面及实例,而是可组合使用或一起执行及/或单独地执行。另外,虽然某些技术可归于视频编码器20的特定单元(例如,帧内预测单元48、运动补偿单元46或熵编码单元56),但是应理解,视频编码器20的一或多个其它单元也可负责执行这类技术。
图5为根据本发明的技术的可经配置以执行CABAC的实例熵编码单元56的框图。将语法元素118输入到熵编码单元56中。如果语法元素已为二进制值语法元素(例如,仅具有值0及1的旗标或其它语法元素),那么可跳过二进制化步骤。如果语法元素为非二进制值语法元素(例如,可具有除1或0以外的值的语法元素),那么通过二进制化器 120对非二进制值语法元素进行二进制化。二进制化器120执行非二进制值语法元素到二进制决策序列的映射。这些二进制决策通常被称作“二进制数”。举例来说,对于变换系数层级,可将层级的值分解为连续二进制数,每一二进制数指示系数层级的绝对值是否大于某一值。举例来说,二进制数0(有时被称作有效旗标)指示变换系数层级的绝对值是否大于0。二进制数1指示变换系数层级的绝对值是否大于1,等等。可针对每一非二进制值语法元素产生唯一映射。
将由二进制化器120产生的每一二进制数馈入到熵编码单元56的二进制算术译码侧。即,针对一组预定非二进制值语法元素,每一二进制数类型(例如,二进制数0)在下一二进制数类型(例如,二进制数1)之前经译码。可以常规模式或旁路模式执行译码。在旁路模式中,旁路译码引擎126使用固定概率模型(例如,使用哥伦布莱斯或指数哥伦布译码)执行算术译码。旁路模式大体上用于更可预测语法元素。
以常规模式译码涉及执行CABAC。在给定先前经译码二进制数的值则二进制数的值的概率为可预测的情况下,常规模式CABAC用于译码二进制数值。由上下文建模器 122确定为LPS的二进制数的概率。上下文建模器122针对上下文输出二进制数值及概率状态(例如,概率状态σ,包含LPS的值及LPS出现的概率)。上下文可为用于一系列二进制数的初始上下文,或可基于先前经译码二进制数的经译码值确定所述上下文。如上文所述,上下文建模器122可基于所接收二进制数为MPS还是LPS而更新状态。在通过上下文建模器122确定上下文及概率状态σ之后,常规译码引擎124对二进制数值执行BAC。
根据本发明的一或多种技术,与在二进制算术译码过程中使用用于更新概率状态的变量(例如,视窗大小、比例因子(α)及概率更新速度中的一或多者)的相同值相反,熵编码单元56可针对不同上下文及/或不同语法元素使用不同变量值。举例来说,上下文建模器122可针对多个上下文中的一上下文确定在二进制算术译码过程中用于更新概率状态的变量的值,且基于所确定的值更新概率状态。视窗大小可表示影响经更新概率状态的先前经译码二进制数的数目。
在一些实例中,由上下文建模器122使用以确定下一概率状态的视窗大小可取决于上下文制得。举例来说,上下文建模器122可将不同视窗大小用于不同上下文。作为一个实例,上下文建模器122可确定用于多个上下文中的第一上下文的第一第一视窗大小,且确定用于多个上下文中的第二上下文的不同于第一视窗大小的第二视窗大小。
在一些实例中,当取决于更新方法将上述上下文模型并入到基于计数器的算术译码器(例如,JCTVC-F254及JCTV-G764中)时,视窗大小的值可取决于上下文。另外,除了来自方程式(4)的概率Pi之外,每一上下文可进一步与视窗大小相关联。
在一些实例中,上下文建模器122可使用可等于2M的视窗大小W,其中M可为正整数。因此,每一上下文可具有可不同于其它上下文的其自身M值,但某些上下文可具有相同M值。
在一些实例中,上下文建模器122可从视窗大小的预定义组确定视窗大小。某些实例预定义视窗大小为16、32、64及128,但预期其它视窗大小。举例来说,可预定义一组可能的M值,例如,M可包括性地在4到7的范围内。在一些实例中,上下文建模器122可产生待在切片标头或参数集中传信的所述组可能的视窗大小的指示(例如,一组可能的M值的指示),所述参数集包含图片参数集、主动参数集、序列参数集或视频参数集。
在一些实例中,可预定义与每一上下文相关联的视窗大小(例如,M的值)。在一些实例中,视窗大小可进一步取决于切片类型及/或时间识别符(例如,在HEVC中被称作temporalId)。在一些实例中,视窗大小可进一步取决于图片类型(或NAL单元类型),例如,图片是否为随机存取图片。
在一些实例中,上下文建模器122可使得与每一上下文相关联的视窗大小(例如,M的值)在位流中(例如,在切片标头/图片参数集/主动参数集/序列参数集中)传信。举例来说,可首先预定义用于每一上下文的默认视窗大小。对于每一相应上下文,上下文建模器122可编码指示默认视窗大小是否用于相应上下文的相应语法元素(例如,旗标)。如果默认视窗大小不用于相应上下文,那么上下文建模器122可基于默认视窗大小有区别地编码实际使用的视窗大小。在一些实例中,上下文建模器122可将所有上下文的语法元素(即,指示是否使用默认视窗大小)组织在一起,且利用延行长度译码对这些语法元素进行译码。在一些实例中,上下文建模器122可在译码实际使用的视窗大小与默认视窗大小之间的差时利用映射表。举例来说,在默认M值等于6的情况下,可能的M值为4、5、6及7。可将映射表定义为:
实际M值 4 5 6 7
待译码值 0 1 - 2
在一些实例中,上下文建模器122可直接译码用于每一上下文的实际视窗大小与默认视窗大小之间的差。举例来说,在默认M值为4的情况下,上下文建模器122可针对每一上下文译码M-4。
在一些实例中,上下文建模器122可对指示用于当前切片中的上下文的所有视窗大小相对于先前经译码切片中的对应上下文是否为继承(即,设定等于)视窗大小的第一语法元素进行译码。在一个实例中,可将“先前经解码切片”定义为具有与当前切片及/ 或相同初始化量化参数相同的切片类型、或相同切片类型及量化参数两者或相同切片类型及时间层两者的先前经译码切片。在一些实例中,可要求先前切片属于存在于DPB 中的图片且可作为参考图片用于当前图片,详言之,如在基于HEVC的平台中,可要求先前切片属于参考图片集(RPS)中的图片,或甚至为RPS的以下子集中的一者中的图片:RefPicSetStCurrBefore、RefPicSetStCurrAfter及RefPicSetLtCurr。
在一些实例中,上下文建模器122可对指示默认视窗大小是否用于多个上下文(例如,在当前切片中)的第一语法元素进行译码。在默认视窗大小不用于多个上下文的情况下,上下文建模器122可对指示上下文的视窗大小的第二语法元素进行译码。举例来说,上下文建模器122可对指示上下文的视窗大小与默认视窗大小之间的差的第二语法元素进行译码。
在另一实例中,上下文建模器122可(例如)基于来自先前切片或图片的经译码信息导出视窗大小。
在一些实例中,用于确定算术译码器中的下一概率状态或概率更新速度的‘视窗大小’可为语法元素特定的,例如,在上下文在不同语法元素当中共享的情况下。举例来说,当使用上下文编码语法元素的二进制数时,上下文建模器122可基于语法元素确定上下文的视窗大小。作为一个实例,在对inter_pred_idc语法元素的二进制数进行译码时用以更新上下文的状态的视窗大小可为16(例如,M=4),且在对 coeff_abs_level_greater1_flags语法元素的二进制数进行译码时用以更新上下文的状态的视窗大小可为128(例如,M=7)。
根据本发明的一或多种技术,上下文建模器122可在对供视频解码器30解码视频数据时使用的数据(例如,表示一维向量及/或其它语法元素的语法元素)进行熵编码时自适应地确定不同视窗大小。举例来说,对于每一上下文,上下文建模器122可通过不同视窗大小计算译码所记录二进制数串的位,且选择具有最小位的一者。在视窗大小选自视窗大小的预定义集合的情况下,上下文建模器122可针对视窗大小的预定义集合中的相应视窗大小确定用于通过上下文编码二进制数串的相应位量,且选择视窗大小的预定义集合中对应于为上下文的视窗大小的最小位量的视窗大小。
在一些实例中,上述技术可适用于特定上下文。即,上下文的子集可使用经更新‘视窗大小’而非默认视窗大小。在一些实例中,上述技术可适用于特定切片类型。
如上文所讨论,上下文建模器122可周期性地初始化上下文的概率状态。举例来说,上下文建模器122可在视频数据的每一切片的开始处初始化上下文的概率状态。上下文建模器122可通过确定可从其导出后续概率状态的初始概率状态来初始化上下文的概率状态。在HEVC初始化过程中(即,如HEVC的9.3.2.2中所描述),上下文建模器122 可基于哪一语法元素的哪一二进制数经编码获得预定义初始化值(例如,initValue)(例如,使用HEVC的表9-5到表9-31)。可通过视频编码器20存储预定义初始化值。在 HEVC中,预定义初始化值各自通过8位精度经存储。
上下文建模器122可基于所获得的预定义初始化值确定初始概率状态。举例来说,上下文建模器122可接着基于所获得预定义初始化值确定斜度值及偏移值。在一些实例中,上下文建模器122可根据HEVC的上述方程式(3)或方程式(9-4)确定斜度值及偏移值。
上下文建模器122可使用所确定的斜度及偏移值确定中间值。在一些实例中,在initState为中间值的情况下,上下文建模器122可根据上述方程式(3)确定中间值,或在preCtxState为中间值的情况下,根据HEVC的方程式(9-6)确定中间值。
在HEVC中,上下文建模器122可基于中间值确定初始概率状态。举例来说,在状态索引为初始概率状态的情况下,上下文建模器122可基于中间值根据上述方程式(3) 确定初始概率状态,或在pStateIdx为初始概率状态的情况下,根据HEVC的方程式(9-6) 确定初始概率状态。
HEVC支持128个上下文状态,所述上下文中的每一者可完全由MPS的值及概率状态的值定义。对于定义上下文的当前状态的总计8个位,可将MPS的值存储为1位值,且可将概率状态存储为7位值因此,使用8位预定义初始化值提供充足信息,以使得上下文建模器122能够初始化为128个可能状态中的任一者。
如上文所讨论,由JCTVC-F254及JCTV-G764提出的方法使用不同初始化技术。具体言之,在由JCTVC-F254及JCTV-G764提出的方法中,针对每一上下文预定义两个参数(分别由asCtxInit[0]及asCtxInit[1]表示),且如上文在方程式(13)中所展示导出初始概率状态iP0。在由JCTVC-F254及JCTV-G764提出的方法中,上下文可具有32767个可能状态。因此,JCTVC-F254及JCTV-G764提出两个预定义初始化值(即,asCtxInit[0] 及asCtxInit[1])通过16位精度存储,以使能够初始化为32767个可能状态中的任一者。因此,由JCTVC-F254及JCTV-G764提出的方法导致存储预定义初始化值所需的存储器的量增加300%,对于硬件实施而言所述增加可为非所需的。
根据本发明的一或多种技术,上下文建模器122可利用以N位精度存储的预定义初始化值,以初始化具有大于2的N次幂的可能概率状态数目的上下文。举例来说,上下文建模器122可基于预定义初始化值确定中间值,且使用查找表以将中间值转换到上下文的初始概率状态。在一些实例中,包含于查找表中的条目的数目可等于2的N次幂。在这类实例中,上下文建模器122可仅能够初始化到上下文的可能概率状态的子集合。然而,通过减少预定义初始化值的存储需求而获得的效益可大于从初始化到可能概率状态的完整范围的不可能性而产生的任何准确度减少。
作为一个说明性实例,给定由qp表示的输入量化参数及由initVal表示的预定义值,上下文建模器122可将概率模型的15位条目(由状态索引表示)导出如下:
qp=Clip3(0,51,qp);
斜度=(initVal>>4)*5-45;
偏移=((initVal&15)<<3)-16;
initState=min(max(1,(((slope*qp)>>4)+offset)),126);
状态索引=m_MappedProb[initState];
其中
Figure BDA0001483042900000301
Figure BDA0001483042900000302
在另一实例中,当上下文建模器122的位精度等于K时,可将上述表的条目(即, m_MappedProb[128])定义为:m_MappedProb[i]=Ceil(2K×prob[i])。在另一实例中, m_MappedProb[i]=Ceil(2K×prob[i]+0.5)。在这个实例中,函数Ceil(x)表示大于或等于x的最小整数,且i指示概率索引(即,HEVC中所使用的initState)。阵列prob[128] 表示HEVC使用符号‘1’的128个可能概率。
Figure BDA0001483042900000311
返回到图4,在一些情况下,熵编码单元56或视频编码器20的另一单元可经配置以执行除熵译码之外的其它译码功能。举例来说,熵编码单元56可经配置以确定用于 CU及PU的译码块模式(CBP)值。而且,在一些情况下,熵编码单元56可执行系数的延行长度译码。另外,熵编码单元56或其它处理单元也可译码其它数据(例如,量化矩阵的值)。
如上文所讨论,逆量化单元58及逆变换处理单元60分别应用逆量化及逆变换以重建像素域中的残余块(例如,供稍后用作参考块)。运动补偿单元46可通过将所述残余块添加到参考帧存储器64的帧中的一者的预测性块来计算参考块。运动补偿单元46也可将一或多个内插滤波器应用于经重建残余块以计算用于次整数像素值以用于运动估计。求和器62将经重建残余块添加到由运动补偿单元46产生的运动补偿预测块,以产生用于存储于参考帧存储器64中的经重建视频块。经重建视频块可由运动估计单元44及运动补偿单元46用作参考块,以对后续视频帧中的块进行帧间译码。
图6为绘示可实施本发明中所描述的技术的视频解码器30的实例的框图。而且,将出于说明的目的在HEVC译码的上下文中描述视频解码器30,但关于其它译码标准并不限制本发明。此外,视频解码器30可经配置以根据范围扩展实施技术。
在图6的实例中,视频解码器30可包含视频数据存储器69、熵解码单元70、预测处理单元71、逆量化处理单元76、逆变换处理单元78、求和器80及参考图片存储器 82。预测处理单元71包含运动补偿单元72及帧内预测单元74。在一些实例中,视频解码器30可执行与关于来自图4的视频编码器20所描述的编码遍次大体上互逆的解码遍次。
视频数据存储器69可存储待由视频解码器30的组件解码的视频数据(例如,经编码视频位流)。可(例如)从存储装置34、从本地视频源(例如,相机)通过视频数据的有线或无线网络通信或通过存取物理数据存储媒体而获得存储于视频数据存储器69中的视频数据。视频数据存储器69可形成存储来自经编码视频位流的经编码视频数据的经译码图片缓冲器(CPB)。
参考图片存储器82为存储供视频解码器30(例如)以帧内或帧间译码模式解码视频数据时使用的参考视频数据的经解码图片缓冲器(DPB)的一个实例。视频数据存储器69及参考图片存储器82可由多种存储器装置中的任一者形成,例如动态随机存取存储器(DRAM)(包含同步DRAM(SDRAM))、磁阻式RAM(MRAM)、电阻式RAM(RRAM) 或其它类型的存储器装置。视频数据存储器69及参考图片存储器82可由同一存储器装置或单独存储器装置提供。在各种实例中,视频数据存储器69可与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。
在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频切片的视频块及相关联语法元素的经编码视频位流。视频解码器30的熵解码单元70熵解码位流以产生经量化系数、运动向量或帧内预测模式指示符及其它语法元素。在一些实例中,熵解码单元70可应用与编码器所使用的过程大体上互逆的过程。熵解码单元70对经编码位流执行熵解码过程,以检索变换系数的一维阵列。所使用的熵解码过程取决于视频编码器20使用的熵译码(例如,CABAC、CAVLC、PIPE或上文所描述的其它过程)。根据本发明中所描述的所述技术,熵解码单元70可如本发明中所描述应用BAC过程(例如,在CABAC过程内)。编码器使用的熵译码过程可在经编码位流中传信或可为预定过程。
熵解码单元70将运动向量及其它语法元素转递到运动补偿单元72。视频解码器30可接收视频切片层级及/或视频块层级的语法元素。
图7为根据本发明的技术的可经配置以执行CABAC的实例熵解码单元70的框图。图7的熵解码单元70以与图5中所描述的熵编码单元56的所述方式互逆的方式执行 CABAC。将来自位流218的经译码位输入到熵解码单元70中。基于经译码位是使用旁路模式还是常规模式经熵译码而将其馈入到上下文建模器220或旁路译码引擎222。如果经译码位以旁路模式译码,那么旁路解码引擎将使用哥伦布莱斯或指数哥伦布解码(例如)以检索非二进制语法元素的二进制值语法元素或二进制数。
如果经译码位以常规模式译码,那么上下文建模器220可确定经译码位的概率模型,且常规解码引擎224可解码所述经译码位以产生非二进制值语法元素的二进制数(或语法元素自身(在语法元素为二进制值时))。在通过上下文建模器220确定上下文及概率状态σ之后,常规译码引擎224对二进制数值执行BAC。
根据本发明的一或多种技术,与在二进制算术译码过程中使用用于更新概率状态的变量(例如,视窗大小、比例因子(α)及概率更新速度中的一或多者)的相同值相反,熵编码单元56可针对不同上下文及/或不同语法元素使用不同变量值。举例来说,上下文建模器220可针对多个上下文中的一上下文确定用于在二进制算术译码过程中更新概率状态的变量的值,且基于所确定的值更新概率状态。
在一些实例中,由上下文建模器220使用以确定下一概率状态的视窗大小可取决于上下文制得。举例来说,上下文建模器220可将不同视窗大小用于不同上下文。作为一个实例,上下文建模器220可确定用于多个上下文中的第一上下文的第一第一视窗大小,且确定用于多个上下文中的第二上下文的不同于第一视窗大小的第二视窗大小。
在一些实例中,当取决于更新方法将上述上下文模型并入到基于计数器的算术译码器中(例如,JCTVC-F254及JCTV-G764中)时,视窗大小的值可取决于上下文。另外,除了来自方程式(4)的概率Pi之外,每一上下文可进一步与视窗大小相关联。
在一些实例中,上下文建模器220可使用可等于2M的视窗大小W,其中M可为正整数。因此,每一上下文可具有可不同于其它上下文的其自身M值,但某些上下文可具有相同M值。
在一些实例中,上下文建模器220可从视窗大小的预定义集合确定视窗大小。举例来说,可预定义一组可能的M值,例如,M可包括性地在4到7的范围内。在一些实例中,熵解码单元70可从切片标头或参数集解码所述组可能的视窗大小的指示(例如,一组可能的M值的指示),所述参数集包含图片参数集、主动参数集、序列参数集或视频参数集。
在一些实例中,可预定义与每一上下文相关联的视窗大小(例如,M的值)。在一些实例中,视窗大小可进一步取决于切片类型及/或时间识别符(例如,在HEVC中被称作temporalId)。在一些实例中,视窗大小可进一步取决于图片类型(或NAL单元类型),例如,图片是否为随机存取图片。
在一些实例中,熵解码单元70可从位流(例如,在切片标头/图片参数集/主动参数集/序列参数集中)解码与每一上下文相关联的视窗大小(例如,M的值)。举例来说,可首先预定义用于每一上下文的默认视窗大小。对于每一相应上下文,熵解码单元70可对指示默认视窗大小是否用于相应上下文的相应语法元素(例如,旗标)进行解码。如果默认视窗大小不用于相应上下文,那么熵解码单元70可基于默认视窗大小有区别地对实际使用的视窗大小进行解码。在一些实例中,可将所有上下文的语法元素(即,指示是否使用默认视窗大小)组织在一起,且熵解码单元70可利用延行长度译码对这些语法元素进行解码。在一些实例中,上下文建模器220可在译码实际使用的视窗大小与默认视窗大小之间的差时利用映射表。举例来说,在默认M值等于6的情况下,可能的M值为4、5、6及7。可将映射表定义为:
实际M值 4 5 6 7
待译码值 0 1 - 2
在一些实例中,熵解码单元70可直接解码用于上下文的实际视窗大小与默认视窗大小之间的差。举例来说,在默认M值为4的情况下,熵解码单元70可针对每一上下文解码M-4的值。
在一些实例中,熵解码单元70可对指示用于当前切片中的上下文的所有视窗大小相对于先前经译码切片中的对应上下文是否为继承(即,设定等于)视窗大小的第一语法元素进行解码。在一个实例中,可将“先前经解码切片”定义为具有与当前切片及/或相同初始化量化参数相同的切片类型、或相同切片类型及量化参数两者或相同切片类型及时间层两者的先前经译码切片。在一些实例中,可要求先前切片属于存在于DPB中的图片且可作为参考图片用于当前图片,详言之,如在基于HEVC的平台中,可要求先前切片属于参考图片集(RPS)中的图片,或甚至为RPS的以下子集中的一者中的图片: RefPicSetStCurrBefore、RefPicSetStCurrAfter及RefPicSetLtCurr。
在一些实例中,熵解码单元70可对指示默认视窗大小是否用于多个上下文(例如,在当前切片中)的第一语法元素进行解码。在默认视窗大小不用于多个上下文的情况下,熵解码单元70可对指示上下文的视窗大小的第二语法元素进行解码。举例来说,熵解码单元70可对指示上下文的视窗大小与默认视窗大小之间的差的第二语法元素进行解码。
在另一实例中,熵解码单元70可(例如)基于来自先前切片或图片的经译码信息导出视窗大小。
在一些实例中,用于确定算术译码器中的下一概率状态或概率更新速度的‘视窗大小’可为语法元素特定的。举例来说,当使用上下文编码语法元素的二进制数时,上下文建模器220可基于语法元素类型确定上下文的视窗大小。作为一个实例,在译码 inter_pred_idc语法元素的二进制数时用于更新上下文的视窗大小可为16(例如,M=4),且在译码coeff_abs_level_greater1_flags语法元素的二进制数时用于更新上下文的视窗大小可为128(例如,M=7)。
在一些实例中,上述技术可适用于特定上下文。即,上下文的子集可使用经更新‘视窗大小’而非默认视窗大小。在一些实例中,上述技术可适用于特定切片类型。
在常规解码引擎224解码二进制数之后,反向二进制化器230可执行将二进制数反向转换为非二进制值语法元素的值的反向映射。
返回到图6,在一些实例中,熵解码单元70(或逆量化单元76)可使用视频编码器20的熵编码单元56(或量化单元54)所使用的扫描模式呈镜射的扫描来扫描所接收值。尽管可在逆量化单元76中执行系数的扫描,但出于说明的目的,将描述为由熵解码单元70执行扫描。另外,尽管为易于说明展示为独立功能单元,但熵解码单元70、逆量化单元76及视频解码器30的其它单元的结构及功能性可彼此高度集成。
逆量化单元76逆量化(即,解量化)位流中所提供且由熵解码单元70解码的经量化变换系数。逆量化过程可包含常规过程,例如类似于HEVC或由H.264解码标准所定义的一些实例。逆量化过程可包含将由视频编码器20计算的量化参数QP用于CU以确定量化程度,且同样地,应应用的逆量化的程度。逆量化单元76可在将系数从一维阵列转换为二维阵列之前或之后逆量化变换系数。
逆变换处理单元78将逆变换应用于经逆量化变换系数。在一些实例中,逆变换处理单元78可基于来自视频编码器20的传信,或通过从一或多个译码特性(例如块大小、译码模式或类似者)推断变换来确定逆变换。在一些实例中,逆变换处理单元78可基于包含当前块的LCU的四分树的根节点处的所传信变换确定适用于当前块的变换。替代地,可针对LCU四分树中的叶节点CU在TU四分树的根处传信变换。在一些实例中,逆变换处理单元78可应用级联逆变换,其中逆变换处理单元78将两个或多于两个逆变换应用于正经解码的当前块的变换系数。
另外,逆变换处理单元可根据本发明的上述技术应用逆变换以产生变换单元分区。
帧内预测处理单元74可基于所传信的帧内预测模式及来自当前帧的先前经解码块的数据产生用于当前帧的当前块的预测数据。基于所检索的运动预测方向、参考帧索引及所计算的当前运动向量(例如,根据合并模式从相邻块复制的运动向量),运动补偿单元产生当前部分的运动补偿块。这些运动补偿块实质上重建用于产生残余数据的预测性块。
运动补偿单元72可产生运动补偿块,从而可能基于内插滤波器执行内插。具有子像素精度的待用于运动估计的内插滤波器的识别符可包含于语法元素中。运动补偿单元72可使用如由视频编码器20在视频块的编码期间所使用的内插滤波器,以计算参考块的子整数像素的内插值。运动补偿单元72可根据所接收语法信息确定视频编码器20使用的内插滤波器,且使用所述内插滤波器以产生预测性块。
另外,在HEVC实例中,运动补偿单元72及帧内预测处理单元74可使用语法信息(例如,由四分树提供)中的一些,以确定用以对经编码视频序列的一或多个帧进行编码的LCU的大小。运动补偿单元72及帧内预测处理单元74也可使用语法信息,以确定描述经编码视频序列的帧的每一CU如何分裂(且同样地,子CU如何分裂)的分裂信息。语法信息还可包含指示每一分裂如何经编码的模式(例如,帧内或帧间预测,及针对帧内预测的帧内预测编码模式)、用于每一经帧间编码PU的一或多个参考帧(及/或含有参考帧的识别符的参考列表)及对经编码视频序列进行解码的其它信息。
求和器80使残余块与由运动补偿单元72或帧内预测处理单元74产生的对应预测块组合以形成经解码块。必要时,还可应用解块滤波器来对经解码块进行滤波以便去除块效应伪影。接着,将经解码视频块存储于参考图片存储器82中,参考图片存储器提供用于后续运动补偿的参考块,且还产生用于呈现于显示装置(例如图1的显示装置31) 上的经解码视频。
图8绘示针对给定二进制数值binVal使用常规译码模式的二进制算术编码过程。算术编码引擎的内部状态照常表征为两个量:当前译码区间的当前区间范围R及基础(较低端点)L。然而,应注意,将这些寄存器存储于CABAC引擎中(以常规及旁路模式)所需的精度可分别降低达到9个位及10个位。在如下的四个基础步骤序列中执行在具有概率状态索引δ及MPS的值(δ%2)的上下文中观测到的给定二进制值binVal的编码。
在第一且主要步骤中,根据给定概率估计再分当前区间。这个区间再分过程涉及如图8中的流程图的最顶端框中所展示的三个基础操作。首先,通过经量化值Q(R)使用整个范围28≤R≤29到四个小区的等分割来估计当前区间范围R。而不是明确地使用 CABAC引擎中的对应代表性经量化范围值Q0、Q1、Q2及Q3,仅由其量化器索引ρ定址,所述量化器索引可通过移位及位屏蔽操作的组合而有效计算(即,根据以下方程式(14))。
ρ=(R>>6 )&3 (14)
接着,将这个索引ρ及概率状态索引δ用作2-D表TabRangeLPS中的条目,以确定(大致)LPS相关的子区间范围RLPS,如图8中所展示。在此,针对8位精度中的 0≤(δ>>1) ≤63及0≤ρ≤3,表TabRangeLPS含有pσ·Qρ的所有64×4预先计算的乘积值。
给定MPS的双子区间范围,在编码过程的第二步骤中选择对应于给定二进制数值binVal的子区间。如果binVal等于MPS值,那么选择较低子区间,以使得L不变(图8 中分枝的右方路径);否则,选择具有等于RLPS的范围的上部子区间(图8中的左方分枝)。在常规算术编码过程的第三步骤中,如上文所述(例如,使用方程式(2))执行概率状态的更新(图8中的灰色阴影框),且最后,第四步骤如Marpe所描述由寄存器L及R的再归一化构成(图8中的“RenormE”框)。
可将2-D表TabRangeLPS定义如下:
Figure BDA0001483042900000381
Figure BDA0001483042900000391
可在HEVC标准的章节9.3.4.3.2.2中发现实例CABAC解码过程。
图9为绘示基于残余四分树的变换方案的概念图。为调适残余块的不同特性,将使用残余四分树(RQT)的变换译码结构应用于HEVC中,所述HEVC经简要地描述于 http://www.hhi.fraunhofer.de/departments/video-coding-analytics/research-groups/image-video- coding/hevc-high-efficiency-video-coding/transform-coding-using-the-residual-quadtree-rqt.html。
将每一图片划分为译码树型单元(CTU),所述译码树型单元以光栅扫描次序来译码以用于特定图片块或切片。CTU为方形块且表示四分树(即,译码树)的根。CTU大小可在8×8到64×64明度样本范围内,但通常使用64×64。每一CTU可进一步分裂成被称作译码单元(CU)的更小方形块。在CTU递归地分裂成CU之后,将每一CU进一步划分为PU及TU。基于四分树方法以递归方式进行CU到TU的分割,因此每一CU的剩余信号通过树型结构(即,剩余四分树(RQT))来译码。RQT允许从4×4达32×32明度样本的TU大小。图9展示其中CU包含10个TU(标记有字母a到j)及对应块分割的实例。 RQT的每一节点实际上为变换单元(TU)。以深度优先树遍历次序处理个别TU,所述次序在图式中绘示为字母表次序,所述次序之后为具有深度优先遍历的递归Z扫描。四分树方法使得能够将调适变换到残余信号的变化空间频率特性。通常,具有更大空间支持的更大变换块大小提供更优选频率分辨率。然而,具有更小空间支持的更小变换块大小提供更优选空间分辨率。(例如)基于率失真优化技术通过编码器模式决策选择两个(空间及频率)分辨率之间的折衷。率失真优化技术针对每一译码模式(例如,特定RQT分裂结构)计算译码位及重建失真的加权总和(即,率失真成本),且选择具有最小率失真成本的译码模式作为最优选模式。
三个参数定义于RQT中:树的最大深度、最小允许的变换大小及最大允许的变换大小。在HEVC的一些实例中,最小及最大变换大小可在从4×4到32×32样本范围内改变,所述范围对应于先前段落中提及的所支持块变换。RQT的最大允许深度限制TU的数目。最大深度等于零意味着:如果每一所包含TU达到最大允许变换大小(例如,32×32),那么不能更进一步分裂CTU。
所有这些参数与RQT结构互相作用且影响RQT结构。考虑根CTU大小为64×64,最大深度等于零且最大变换大小等于32×32的情况。在这种情况下,必须将CTU分割至少一次,因为否则的话将产生不被允许的64×64TU。RQT参数(即,最大RQT深度、最小及最大变换大小)于序列参数集层级处在位流中传输。考虑RQT深度,可针对经帧内及帧间译码CU指定且传信不同值。
将四分树变换应用于帧内残余块及帧间残余块两者。通常,将相同大小的当前残余四分树分区的DCT-II变换应用于残余块。然而,如果当前残余四分树块为4×4且由帧内预测产生,那么应用上述4×4DST-VII变换。
在HEVC中,不采用更大的大小变换(例如,64×64变换),主要因为考虑到其有限益处及对于相对较小分辨率视频的相对较高的复杂度。
图10为绘示基于系数群组的实例系数扫描的概念图。无论TU大小,通过非重叠系数群组(CG)来译码变换单元的残余,且每一者含有TU的4×4块的系数。举例来说,32×32TU总共具有64个CG,且16×16TU总共具有16个CG。可根据特定预定义扫描次序译码TU内部的CG。当译码每一CG时,根据用于4×4块的特定预定义扫描次序扫描及译码当前CG内部的系数。图10绘示用于含有4个CG的8×8TU的系数扫描。
将语法元素表定义如下:
7.3.8.11残余译码语法
Figure BDA0001483042900000401
Figure BDA0001483042900000411
Figure BDA0001483042900000421
对于每一色彩分量,可首先传信一个旗标以指示当前TU是否具有至少一个非零系数。如果存在至少一个非零系数,那么接着通过相对于变换单元的左上角的坐标明确地译码在TU中的系数扫描次序中的最末有效系数的位置。坐标的垂直或水平分量由其前缀及后缀表示,其中前缀通过截断莱斯(TR)二进制化且后缀通过固定长度二进制化。
语义:
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旗标(HEVC规格中的coded_sub_block_flag)进行译码时,利用相邻CGs的信息以建置上下文。为更具体,将用于译码CG旗标的上下文选择定义为:
(右方CG可用&&右方CG的旗标等于1)||(下方CG可用&&下方CG的旗标等于1)
在此,右方及下方CG为接近当前CG的两个相邻CG。举例来说,在图10中,当译码左上方4×4块时,将右方CG定义为右上方4×4块且将下方CG定义为左下方4×4 块。
应注意,色度及明度使用不同组的上下文,但通过同一规则选择其中的一者。
上下文索引增加的导出的细节可于HEVC的9.3.4.2.4中发现。
在一个CG内的变换系数译码。对于可含有非零系数的那些CG,可针对每一系数根据预定义4×4系数扫描次序进一步译码有效标记(significant_flag)、系数的绝对值(包含 coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag及coeff_abs_level_remaining) 及正负号信息(coeff_sign_flag)。将译码变换系数层级分成多个扫描遍次。
1)第一二进制数译码的第一遍次。在这个遍次中,除可导出特定变换系数等于0以外,对一个CG内的每一位置处的变换系数的所有第一二进制数(或二进制数索引0,bin0)进行译码。
变量sigCtx取决于相对于当前TU的左上方位置的当前地点、色彩分量索引cIdx、变换块大小及语法元素coded_sub_block_flag的先前经解码二进制数。取决于TU大小应用不同规则。上下文索引增加的选择的实例细节定义于HEVC的9.3.4.2.5中。
2)第二二进制数译码的第二遍次。在这个遍次中应用coeff_abs_level_greater1_flags 的译码。上下文模型化取决于当前子块内的色彩分量索引、当前子块扫描索引及当前系数扫描索引。上下文索引增加的选择的实例细节定义于HEVC的9.3.4.2.6中。
3)第三二进制数译码的第三遍次。在这个遍次中应用coeff_abs_level_greater2_flags 的译码。上下文模型化类似于coeff_abs_level_greater1_flags所使用的所述上下文模型化。上下文索引增加的选择的实例细节定义于HEVC的9.3.4.2.7中。
应注意,为改进输送量,第二及第三遍次可能不会处理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。
4)正负号信息的第四遍次。在HEVC的一些实例中,在第四扫描遍次中以旁路模式译码每一非零系数的正负号。对于每一CG,且取决于准则,当使用正负号数据隐藏(SDH)时,仅省略最末非零系数(在反向扫描次序中)的正负号的编码。替代地,使用预定义定则将正负号值嵌入于CG的层级的总和的同位检查中:偶数对应于“+”且奇数对应于“-”。使用SDH的准则为CG的第一非零系数与最末非零系数之间的扫描次序中的距离。如果这个距离等于或大于4,那么使用SDH。由于这个值4对HEVC测试序列提供最大增益,因此选择所述值。
5)剩余二进制数的最末遍次。在另一扫描遍次中译码剩余二进制数。将系数的baseLevel定义为:
baseLevel=significant_flag+coeff_abs_level_greater1_flag+coeff_abs_level_greater2_flag
其中旗标具有值0或1,且如果不存在,那么推断为0。接着,系数的绝对值简单地为:
absCoeffLevel=baseLevel+coeff_abs_level_remaining。
在每一CG的开始处将莱斯参数设定成0,且其取决于参数的先前值及当前绝对层级条件性地更新如下:
如果absCoeffLevel>3×2m,那么m=min(4,m+1)。
可以旁路模式译码语法元素coeff_abs_level_remaining。另外,HEVC的一些实例针对较小值采用哥伦布莱斯码且针对较大值切换到指数哥伦布码。代码之间的转换点通常在一元码长度等于4时。参数更新过程在观测到较大值分布时允许二进制化适应于系数统计。
inter_pred_idc的上下文模型化。inter_pred_idc指定list0、list1或双向预测是否用于当前预测单元。语法元素已达到两个二进制数,所述两个二进制数都经CABAC上下文译码。将二进制化二进制数串定义如下:
Figure BDA0001483042900000451
其中nPbW及nPbH分别表示当前明度预测块的宽度及高度。
对于每一经帧间译码切片(例如,P切片或B切片),上下文选择基于以下规则:
-如果(nPbW+nPbH)不等于12,那么使用四个上下文译码第一二进制数且通过一个上下文译码第二二进制数。第一二进制数的上下文选择是根据当前CU深度的。在 HEVC中,CU深度包括性地处于0到3的范围内。
图11为绘示根据本发明的一或多种技术的用于通过不同视窗大小执行基于上下文的熵编码的实例过程的流程图。图11的技术可由视频编码器(例如图1及4中所绘示的视频编码器20)执行。出于说明的目的,在图1及4的视频编码器20的上下文内描述图 11的技术,但配置不同于视频编码器20的所述配置的视频编码器也可执行图11的技术。
视频编码器20可获得待使用基于上下文的熵译码(例如,CABAC)来编码的二进制数串(例如,一维二进制向量)(1102)。举例来说,视频编码器20的熵编码单元56可通过二进制化从视频编码器20的预测处理单元42接收的语法元素而获得二进制数串。
根据本发明的一或多种技术,视频编码器20可获得多个上下文中的一上下文的预定义初始化值(1104)。举例来说,视频编码器20的熵编码单元56可从以N位精度的存储获得预定义初始化值。
视频编码器20可基于预定义初始化值确定用于视频数据的切片的上下文的初始概率状态(1106)。在一些实例中,视频编码器20可使用查找表确定初始概率状态。举例来说,熵编码单元56可基于预定义初始化值确定斜度值及偏移值。熵编码单元56可基于斜度值、偏移值及视频数据的切片的量化参数确定中间值。熵编码单元56可使用查找表将中间值映射到初始概率状态。在一些实例中,上下文的可能概率状态的数目大于2 的N次幂(即,大于2N)。
视频编码器20可在视频位流中且基于上下文的初始概率状态编码二进制数串中的二进制数(1108)。举例来说,熵编码单元56可将表示值或指标的二进制流输出到上下文的最终经译码概率区间内的概率。
图12为绘示根据本发明的一或多种技术的用于通过不同视窗大小执行基于上下文的熵解码的实例过程的流程图。图12的技术可由视频解码器(例如图1及6中所绘示的视频解码器30)执行。出于说明的目的,在图1及6的视频解码器30的上下文内描述图 12的技术,但配置不同于视频解码器30的所述配置的视频解码器也可执行图12的技术。
视频解码器30可从视频位流获得待使用基于上下文的熵译码来解码的二进制数串 (例如,一维二进制向量)(1202)。举例来说,视频解码器30的熵解码单元70可从视频数据存储器69获得二进制数串。在一些实例中,二进制数串可表示上下文的最终经译码概率区间内的概率的值或指标。在一些实例中,基于上下文的熵译码可包括上下文自适应性二进制算术译码(CABAC)。
根据本发明的一或多种技术,视频解码器30可获得多个上下文中的一上下文的预定义初始化值(1204)。举例来说,视频解码器30的熵解码单元70可从以N位精度的存储获得预定义初始化值。
视频解码器30可基于预定义初始化值确定用于视频数据的切片的上下文的初始概率状态(1206)。在一些实例中,视频解码器30可使用查找表确定初始概率状态。举例来说,熵解码单元70可基于预定义初始化值确定斜度值及偏移值。熵解码单元70可基于斜度值、偏移值及视频数据的切片的量化参数确定中间值。熵解码单元70可使用查找表将中间值映射到初始概率状态。在一些实例中,上下文的可能概率状态的数目大于2 的N次幂(即,大于2N)。
视频解码器30可基于上下文的初始概率状态解码二进制数串中的二进制数(1208)。视频解码器30可基于经解码二进制数及上下文的初始概率状态确定上下文的经更新概率状态。视频解码器30可基于上下文的经更新概率状态解码另一二进制数(1206)。
以下编号实例可说明本发明的一或多个方面:
实例1、一种对视频数据进行熵译码的方法,所述方法包括:获得在上下文自适应性熵译码过程中使用以对视频数据的切片中的语法元素的值进行熵译码的多个上下文中的一上下文的预定义初始化值,其中以N位精度存储预定义初始化值;基于预定义初始化值确定用于视频数据的切片的上下文的初始概率状态,其中上下文的可能概率状态的数目大于2的N次幂;及基于上下文的初始概率状态对语法元素的值的二进制数进行熵译码。
实例2、如实例1的方法,其进一步包括:基于预定义初始化值确定斜度值及偏移值,其中确定初始概率状态包括:基于斜度值、偏移值及视频数据的切片的量化参数确定中间值;及使用查找表将中间值映射到初始概率状态。
实例3、如实例2的方法,其中查找表包含小于或等于2的N次幂的条目的数目。
实例4、如实例3的方法,其中条目数目等于中间值的可能值的数目。
实例5、如实例1到4的任何组合的方法,其中确定上下文的初始概率状态包括使用查找表确定上下文的初始概率状态,且其中根据以下方程式定义查找表中的值:MappedProb[i]=Ceil(2^M×prob[i]+offset),其中MappedProb[i]为查找表中的第i个值, prob[i]表示在表示1符号的可能概率集合的表中的第i个值,2的M次幂表示上下文的可能概率状态的数目,且Ceil(x)为表示大于或等于x的最小整数的函数。
实例6、如实例1到5的任何组合的方法,其中prob[i]表示1符号的第i个可能概率。
实例7、如实例1到6的任何组合的方法,其中上下文的可能概率状态的数目大于或等于2的N次幂。
实例8、如实例1到6的任何组合的方法,其中N为八且上下文的可能概率状态的数目为2的15次幂。
实例9、如实例1到8的任何组合的方法,其中偏移等于0.5或0。
实例10、如实例1到9的任何组合的方法,其进一步包括:基于预定义初始化值确定斜度值及偏移值,其中确定初始概率状态包括:基于斜度值、偏移值及视频数据的切片的量化参数确定中间值;及使用中间值与初始概率状态之间的映射函数基于中间值确定初始概率状态。
实例11、如实例1到10的任何组合的方法,其中熵译码包括对二进制数进行熵编码。
实例12、如实例1到10的任何组合的方法,其中熵译码包括对二进制数进行熵解码。
实例13、如实例1到12的任何组合的方法,其中上下文自适应性熵译码过程包括上下文自适应性二进制算术译码(CABAC)过程或上下文自适应性可变长度译码 (CAVLC)过程。
实例14、一种用于对视频数据进行熵译码的设备,所述设备包括:存储器,其经配置以存储在上下文自适应性熵译码过程中使用以对语法元素的值进行熵译码的多个上下文;及一或多个处理器,其经配置以:执行如实例1到13的任何组合的方法。
实例15、如实例14的设备,其中所述设备包括以下中的至少一者:集成电路、微处理器或无线通信装置。
实例16、如实例14到15的任何组合的设备,其进一步包括经配置以显示经解码视频数据的显示器。
实例17、如实例14到16的任何组合的设备,其进一步包括经配置以捕捉视频数据的相机。
实例18、一种用于对视频数据进行熵译码的设备,所述设备包括:用于执行如实例1到13的任何组合的方法的装置。
实例19、一种存储指令的计算机可读存储媒体,所述指令在执行时使得视频译码装置的一或多个处理器执行如实例1到13的任何组合的方法。
在一或多个实例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述功能可作为一或多个指令或代码而在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包含有助于将计算机程序从一处传送到另一处 (例如,根据通信协议)的任何媒体的通信媒体。以这种方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中所描述的技术的指令、代码及/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
通过实例而非限制,这类计算机可读存储媒体可包括RAM、ROM、EEPROM、 CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储装置、闪存存储器或可用以存储呈指令或数据结构形式的所要程序码且可由计算机存取的任何其它媒体。而且,将任何连接适当地称为计算机可读媒体。举例来说,如果使用同轴缆线、光缆、双绞线、数字用户线(DSL)或无线技术(例如红外线、无线电及微波)从网站、服务器或其它远程源传输指令,那么同轴缆线、光缆、双绞线、DSL或无线技术(例如红外线、无线电及微波) 包含于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而是实际上有关非暂时性有形存储媒体。如本文所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘用激光以光学方式再生数据。以上各者的组合也应包含于计算机可读媒体的范围内。
可由一或多个处理器执行指令,所述一或多个处理器例如一或多个数字信号处理器 (DSP)、通用微处理器、专用集成电路(ASIC)、场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指上述结构或适用于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可提供于经配置用于编码及解码的专用硬件及/或软件模块内,或并入于组合式编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明的技术可在广泛多种装置或设备中实施,所述装置或设备包含无线手持机、集成电路(IC)或IC的集合(例如,芯片集)。在本发明中描述各种组件、模块或单元以强调经配置以执行所公开技术的装置的功能性方面,但未必需要通过不同硬件单元来实现。确切地说,如上文所描述,可将各种单元组合于编解码器硬件单元中,或通过互操作性硬件单元(包含如上文所描述的一或多个处理器)的集合而结合合适软件及/或固件来提供所述单元。
已描述各种实例。这些及其它实例在以下权利要求书的范围内。

Claims (26)

1.一种用于对视频数据进行熵译码的方法,所述方法包括:
获得在上下文自适应性熵译码过程中使用以对所述视频数据的切片中的语法元素的值进行熵译码的多个上下文中的一上下文的预定义初始化值,其中以N位精度存储所述预定义初始化值;
基于所述预定义初始化值且使用查找表确定用于所述视频数据的所述切片的所述上下文的初始概率状态,其中所述初始概率状态是所述上下文的可能概率状态中的一者,其中所述上下文的可能概率状态的数目大于或等于2的N次幂,且其中所述查找表中的第i个值表示所述数目个可能概率状态中的相应可能概率状态且为大于或等于以下的总和的最小整数:
所述上下文的可能概率状态的所述数目与表示1符号的可能概率集合的表中的第i个值的乘积;及
偏移值,其中所述偏移值等于0.5或0;以及
基于所述上下文的所述初始概率状态对所述语法元素的所述值的二进制数进行熵译码。
2.根据权利要求1所述的方法,其中所述偏移值为第一偏移值,所述方法进一步包括:
基于所述预定义初始化值确定斜度值及第二偏移值,其中确定所述初始概率状态包括:
基于所述斜度值、所述第二偏移值及所述视频数据的所述切片的量化参数确定中间值;及
使用所述查找表将所述中间值映射到所述初始概率状态。
3.根据权利要求2所述的方法,其中所述查找表包含小于或等于2的所述N次幂的条目的数目。
4.根据权利要求3所述的方法,其中所述条目数目等于所述中间值的可能值的数目。
5.根据权利要求1所述的方法,其中根据以下方程式定义所述查找表中的值:
MappedProb[i]=Ceil(2M*prob[i]+offset)
其中MappedProb[i]为所述查找表中的第i个值,prob[i]表示在表示1符号的可能概率集合的所述表中的所述第i个值,2的M次幂表示所述上下文的可能概率状态的所述数目,offset为所述偏移值,且Ceil(x)为表示大于或等于x的最小整数的函数。
6.根据权利要求5所述的方法,其中prob[i]表示1符号的第i个可能概率。
7.根据权利要求5所述的方法,其中N为八,且所述上下文的可能概率状态的所述数目为2的15次幂。
8.根据权利要求1所述的方法,其中熵译码包括对所述二进制数进行熵编码。
9.根据权利要求1所述的方法,其中熵译码包括对所述二进制数进行熵解码。
10.根据权利要求1所述的方法,其中所述上下文自适应性熵译码过程包括上下文自适应性二进制算术译码CABAC过程。
11.一种用于对视频数据进行熵译码的设备,所述设备包括:
存储器,其经配置以存储在上下文自适应性熵译码过程中使用以对所述视频数据的切片中的语法元素的值进行熵译码的多个上下文;及
一或多个处理器,其经配置以:
获得所述多个上下文中的一上下文的预定义初始化值,其中以N位精度存储所述预定义初始化值;
基于所述预定义初始化值且使用查找表确定用于所述视频数据的所述切片的所述上下文的初始概率状态,其中所述初始概率状态是所述上下文的可能概率状态中的一者,其中所述上下文的可能概率状态的数目大于或等于2的所述N次幂,且其中所述查找表中的第i个值表示所述数目个可能概率状态中的相应可能概率状态且为大于或等于以下的总和的最小整数:
所述上下文的可能概率状态的所述数目与表示1符号的可能概率集合的表中的第i个值的乘积;及
偏移值,其中所述偏移值等于0.5或0;以及
基于所述上下文的所述初始概率状态对所述语法元素的所述值的二进制数进行熵译码。
12.根据权利要求11所述的设备,其中所述偏移值为第一偏移值,且其中所述一或多个处理器经进一步配置以:
基于所述预定义初始化值确定斜度值及第二偏移值,其中,为确定所述初始概率状态,所述一或多个处理器经配置以:
基于所述斜度值、所述第二偏移值及所述视频数据的所述切片的量化参数确定中间值;及
使用所述查找表将所述中间值映射到所述初始概率状态。
13.根据权利要求12所述的设备,其中所述查找表包含小于或等于2的所述N次幂的条目的数目。
14.根据权利要求13所述的设备,其中所述条目数目等于所述中间值的可能值的数目。
15.根据权利要求11所述的设备,其中根据以下方程式定义所述查找表中的值:
MappedProb[i]=Ceil(2M*prob[i]+offset)
其中MappedProb[i]为所述查找表中的第i个值,prob[i]表示在表示1符号的可能概率集合的所述表中的所述第i个值,2的所述M次幂表示所述上下文的可能概率状态的所述数目,offset为所述偏移值,且Ceil(x)为表示大于或等于x的所述最小整数的函数。
16.根据权利要求15所述的设备,其中prob[i]表示1符号的第i个可能概率。
17.根据权利要求15所述的设备,其中N为八,且所述上下文的可能概率状态的所述数目为2的15次幂。
18.根据权利要求11,其中,为进行熵译码,所述一或多个处理器经配置以对所述二进制数进行熵编码。
19.根据权利要求11所述的设备,其中,为进行熵译码,所述一或多个处理器经配置以对所述二进制数进行熵解码。
20.根据权利要求11所述的设备,其中所述上下文自适应性熵译码过程包括上下文自适应性二进制算术译码CABAC过程。
21.根据权利要求11所述的设备,其中所述设备包括以下中的至少一者:
集成电路;
微处理器;或
无线通信装置。
22.根据权利要求21所述的设备,其进一步包括显示器,所述显示器经配置以显示经解码视频数据。
23.根据权利要求21所述的设备,其进一步包括相机,所述相机经配置以捕捉所述视频数据。
24.一种用于对视频数据进行熵译码的设备,所述设备包括:
用于获得在上下文自适应性熵译码过程中使用以对所述视频数据的切片中的语法元素的值进行熵译码的多个上下文中的一上下文的预定义初始化值的装置,其中以N位精度存储所述预定义初始化值;
用于基于所述预定义初始化值且使用查找表确定用于所述视频数据的所述切片的所述上下文的初始概率状态的装置,其中所述初始概率状态是所述上下文的可能概率状态中的一者,其中所述上下文的可能概率状态的数目大于或等于2的所述N次幂,且其中所述查找表中的第i个值表示所述数目个可能概率状态中的相应可能概率状态且为大于或等于以下的总和的最小整数:
所述上下文的可能概率状态的所述数目与表示1符号的可能概率集合的表中的第i个值的乘积;及
偏移值,其中所述偏移值等于0.5或0;以及
用于基于所述上下文的所述初始概率状态对所述语法元素的所述值的二进制数进行熵译码的装置。
25.一种存储指令的计算机可读存储媒体,所述指令在执行时使得视频译码装置的一或多个处理器进行以下操作:
获得在上下文自适应性二进制算术译码CABAC过程中使用以对所述视频数据的切片中的语法元素的值进行熵译码的多个上下文中的一上下文的预定义初始化值,其中以N位精度存储所述预定义初始化值;
基于所述预定义初始化值且使用查找表确定用于所述视频数据的所述切片的所述上下文的初始概率状态,其中所述初始概率状态是所述上下文的可能概率状态中的一者,其中所述上下文的可能概率状态的数目大于或等于2的所述N次幂,且其中所述查找表中的第i个值表示所述数目个可能概率状态中的相应可能概率状态且为大于或等于以下的总和的最小整数:
所述上下文的可能概率状态的所述数目与表示1符号的可能概率集合的表中的第i个值的乘积;及
偏移值,其中所述偏移值等于0.5或0;以及
基于所述上下文的所述初始概率状态对所述语法元素的所述值的二进制数进行熵译码。
26.根据权利要求1所述的方法,其中所述查找表包括:
m_MappedProb[128]=
{
614,647,681,718,756,797,839,884,932,982,1034,1089,1148,1209,1274,1342,1414,1490,1569,1653,1742,1835,1933,2037,2146,2261,2382,2509,2643,2785,2934,3091,3256,3430,3614,3807,4011,4225,4452,4690,4941,5205,5483,5777,6086,6412,6755,7116,7497,7898,8320,8766,9235,9729,10249,10798,11375,11984,12625,13300,14012,14762,15551,16384,16384,17216,18005,18755,19467,20142,20783,21392,21969,22518,23038,23532,24001,24447,24869,25270,25651,26012,26355,26681,26990,27284,27562,27826,28077,28315,28542,28756,28960,29153,29337,29511,29676,29833,29982,30124,30258,30385,30506,30621,30730,30834,30932,31025,31114,31198,31277,31353,31425,31493,31558,31619,31678,31733,31785,31835,31883,31928,31970,32011,32049,32086,32120,32153,
}。
CN201680030561.3A 2015-05-29 2016-05-27 一种用于对视频数据进行熵译码的方法、设备和计算机可读存储媒体 Active CN107667530B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562168503P 2015-05-29 2015-05-29
US62/168,503 2015-05-29
US15/166,068 2016-05-26
US15/166,068 US10368072B2 (en) 2015-05-29 2016-05-26 Advanced arithmetic coder
PCT/US2016/034695 WO2016196307A1 (en) 2015-05-29 2016-05-27 Advanced arithmetic coder

Publications (2)

Publication Number Publication Date
CN107667530A CN107667530A (zh) 2018-02-06
CN107667530B true CN107667530B (zh) 2020-02-21

Family

ID=57399365

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680030561.3A Active CN107667530B (zh) 2015-05-29 2016-05-27 一种用于对视频数据进行熵译码的方法、设备和计算机可读存储媒体
CN201680030202.8A Active CN107667533B (zh) 2015-05-29 2016-05-27 高级算术译码器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201680030202.8A Active CN107667533B (zh) 2015-05-29 2016-05-27 高级算术译码器

Country Status (9)

Country Link
US (2) US10148961B2 (zh)
EP (2) EP3304909B1 (zh)
JP (2) JP6779918B2 (zh)
KR (2) KR102639864B1 (zh)
CN (2) CN107667530B (zh)
AU (2) AU2016270616B2 (zh)
BR (2) BR112017025612A2 (zh)
TW (2) TW201701664A (zh)
WO (2) WO2016196307A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11570447B2 (en) 2018-12-28 2023-01-31 Hangzhou Hikvision Digital Technology Co., Ltd. Video coding and video decoding

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HUE046377T2 (hu) 2011-01-14 2020-03-30 Ge Video Compression Llc Entrópia kódoló és dekódoló séma
FR2982446A1 (fr) * 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR2982447A1 (fr) 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US10148961B2 (en) 2015-05-29 2018-12-04 Qualcomm Incorporated Arithmetic coder with multiple window sizes
EP3316580A4 (en) * 2015-10-13 2018-09-26 Samsung Electronics Co., Ltd. Method and device for encoding or decoding image
EP3264763A1 (en) * 2016-06-29 2018-01-03 Thomson Licensing Method and apparatus for improved significance flag coding using simple local predictor
US10757412B2 (en) 2017-01-03 2020-08-25 Avago Technologies International Sales Pte. Limited Architecture flexible binary arithmetic coding system
US11265561B2 (en) * 2017-01-06 2022-03-01 Mediatek Inc. Method and apparatus for range derivation in context adaptive binary arithmetic coding
US10554988B2 (en) * 2017-03-22 2020-02-04 Qualcomm Incorporated Binary arithmetic coding with parameterized probability estimation finite state machines
WO2019011292A1 (en) 2017-07-14 2019-01-17 Mediatek Inc. METHOD AND APPARATUS FOR RANGE CALCULATION IN CONTEXT-ADAPTIVE BITARY ARITHMETIC ENCODING SYSTEM
WO2019069902A1 (ja) * 2017-10-06 2019-04-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
US10791341B2 (en) 2017-10-10 2020-09-29 Qualcomm Incorporated Binary arithmetic coding with progressive modification of adaptation parameters
WO2019140083A1 (en) * 2018-01-12 2019-07-18 Futurewei Technologies, Inc. Adaptive multi-hypothesis context-adaptive binary arithmetic coding (mcabac)
WO2019151280A1 (ja) 2018-01-30 2019-08-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US11003811B2 (en) 2018-02-09 2021-05-11 International Business Machines Corporation Generating samples of outcomes from a quantum simulator
CN112313960B (zh) * 2018-03-29 2023-05-09 弗劳恩霍夫应用研究促进协会 视频解码器和编码器、视频解码和编码方法、及数字存储介质
CN110495170A (zh) * 2018-04-02 2019-11-22 北京大学 上下文的概率更新方法与装置
CN108683921B (zh) * 2018-06-07 2020-04-07 四川大学 一种基于零量化dct系数组的视频可逆信息隐藏方法
TWI723430B (zh) 2018-06-19 2021-04-01 大陸商北京字節跳動網絡技術有限公司 不同精度的多個候選
JP7313385B2 (ja) * 2018-06-21 2023-07-24 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ビデオコーディングにおけるサブタイルを含むタイルパーティション
GB2588531B (en) 2018-06-29 2023-02-01 Beijing Bytedance Network Tech Co Ltd Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
CN114466197A (zh) 2018-06-29 2022-05-10 北京字节跳动网络技术有限公司 用于查找表更新的编码的运动信息的选择
TWI752331B (zh) 2018-06-29 2022-01-11 大陸商北京字節跳動網絡技術有限公司 當向Merge/AMVP添加HMVP候選時的部分/完全修剪
KR20240007298A (ko) 2018-06-29 2024-01-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
EP3794824A1 (en) 2018-06-29 2021-03-24 Beijing Bytedance Network Technology Co. Ltd. Conditions for updating luts
TWI728390B (zh) 2018-06-29 2021-05-21 大陸商北京字節跳動網絡技術有限公司 查找表尺寸
CN114125450B (zh) 2018-06-29 2023-11-17 北京字节跳动网络技术有限公司 一种用于处理视频数据的方法、装置和计算机可读介质
KR102627814B1 (ko) 2018-06-29 2024-01-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 룩업 테이블의 업데이트: fifo, 제약된 fifo
TWI719526B (zh) 2018-07-02 2021-02-21 大陸商北京字節跳動網絡技術有限公司 查找表的更新
AU2018217333A1 (en) * 2018-08-17 2020-03-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
AU2018217336A1 (en) * 2018-08-17 2020-03-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
TWI820211B (zh) 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 取決於總數減去k的開始檢查hmvp候選的條件
CN116546213A (zh) 2018-09-19 2023-08-04 北京字节跳动网络技术有限公司 具有自适应运动矢量分辨率的仿射模式的语法重用
US10951898B2 (en) 2018-10-11 2021-03-16 Lg Electronics Inc. Image decoding method and device using residual information in image coding system
CN114374839B (zh) * 2018-11-12 2023-06-20 Lg电子株式会社 图像解码方法、图像编码方法和数据发送方法
JP7275286B2 (ja) 2019-01-10 2023-05-17 北京字節跳動網絡技術有限公司 Lut更新の起動
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147772A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Motion candidates derivation
KR20210121021A (ko) * 2019-01-31 2021-10-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 어파인 모드 적응적 움직임 벡터 해상도 코딩 문맥
CN113439441A (zh) 2019-02-15 2021-09-24 北京字节跳动网络技术有限公司 基于块分割的变换参数推导
US11178399B2 (en) * 2019-03-12 2021-11-16 Qualcomm Incorporated Probability initialization for video coding
WO2020189978A1 (ko) 2019-03-15 2020-09-24 삼성전자 주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
CN113615193B (zh) 2019-03-22 2024-06-25 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
CA3134398A1 (en) * 2019-03-23 2020-10-01 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for intra prediction
US11218735B2 (en) 2019-04-02 2022-01-04 Qualcomm Incorporated Context derivation for last position coding for video coding
CN117560489A (zh) 2019-05-14 2024-02-13 北京字节跳动网络技术有限公司 用于残差编解码的上下文建模
US11405617B1 (en) * 2019-05-21 2022-08-02 Xilinx, Inc. Method and system to enhance compression efficiency in encoded video by using dual pass entropy coding
CN112073729B (zh) * 2019-06-11 2024-04-05 北京三星通信技术研究有限公司 模型更新方法、装置、电子设备及计算机可读存储介质
US12010315B2 (en) * 2019-08-31 2024-06-11 Lg Electronics Inc. Method for decoding video for residual coding and device therefor
CN114365490B (zh) 2019-09-09 2024-06-18 北京字节跳动网络技术有限公司 高精度图像和视频编解码的系数缩放
CN114731392A (zh) 2019-09-21 2022-07-08 北京字节跳动网络技术有限公司 用于图像和视频编解码的高精度变换和量化
US11356851B2 (en) 2019-12-03 2022-06-07 Harris Global Communications, Inc. Communications system having multiple carriers with selectively transmitted real information and fake information and associated methods
JP7400115B2 (ja) * 2020-02-24 2023-12-18 バイトダンス インコーポレイテッド サブピクチャとタイル行シグナリングとの間のインタラクション
JP7479492B2 (ja) 2020-03-03 2024-05-08 バイトダンス インコーポレイテッド ビデオ・コーディングにおける低周波ノン・セパラブル変換シグナリング
US11516514B2 (en) * 2020-03-27 2022-11-29 Tencent America LLC High level control for deblocking operations
WO2021207055A1 (en) 2020-04-05 2021-10-14 Bytedance Inc. High level control of filtering in video coding
WO2022098152A1 (ko) * 2020-11-05 2022-05-12 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11375242B1 (en) * 2021-01-27 2022-06-28 Qualcomm Incorporated Compression of bitstream indexes for parallel entropy coding
CN113489979A (zh) * 2021-05-28 2021-10-08 杭州博雅鸿图视频技术有限公司 熵编码方法、装置、电子设备及存储介质
CN118266210A (zh) * 2021-12-29 2024-06-28 北京达佳互联信息技术有限公司 用于基于上下文的自适应二进制算术编码的概率计算的方法和设备
US20230254511A1 (en) * 2022-02-04 2023-08-10 Tencent America LLC Block-level window size update for arithmetic coding
US20230254489A1 (en) * 2022-02-07 2023-08-10 Tencent America LLC Adaptive context-based adaptive binary arithmetic coding (cabac) initial state selection from coded pictures
WO2023168257A2 (en) * 2022-03-01 2023-09-07 Innopeak Technology, Inc. State transition of dependent quantization for aom enhanced compression model
US20230336728A1 (en) * 2022-04-18 2023-10-19 Tencent America LLC CABAC Inherited Context Initialization
CN115334313A (zh) * 2022-06-22 2022-11-11 百果园技术(新加坡)有限公司 一种视频解码方法、装置、设备及存储介质
CN116567097B (zh) * 2023-07-04 2023-09-01 广东慧航天唯科技有限公司 基于数据监控的废机油调度数据安全管理系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103975532A (zh) * 2011-11-03 2014-08-06 高通股份有限公司 用于上下文自适应性熵译码的上下文状态和概率初始化
CN104221374A (zh) * 2012-04-11 2014-12-17 高通股份有限公司 在视频译码中分群经旁路译码语法元素

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2479896A1 (en) * 2002-04-26 2012-07-25 NTT DoCoMo, Inc. Signal encoding method, signal decoding method, signal encoding device, signal decoding device, signal encoding program, and signal decoding program
JP3491001B1 (ja) * 2002-04-26 2004-01-26 株式会社エヌ・ティ・ティ・ドコモ 信号符号化方法、信号復号方法、信号符号化装置、信号復号装置、信号符号化プログラム、及び、信号復号プログラム
US8107535B2 (en) * 2003-06-10 2012-01-31 Rensselaer Polytechnic Institute (Rpi) Method and apparatus for scalable motion vector coding
CN1934871B (zh) * 2003-08-25 2011-08-10 新加坡科技研究局 在视频编码中对帧间预测进行模式判定的方法和系统
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US20070025441A1 (en) * 2005-07-28 2007-02-01 Nokia Corporation Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding
CN101933331B (zh) * 2007-09-06 2014-04-09 日本电气株式会社 视频编码装置、视频编码方法、视频解码方法
EP2164176A1 (en) * 2008-09-12 2010-03-17 Thomson Licensing Method for lossless compressing prefix-suffix-codes, method for decompressing a bit sequence representing integers or symbols encoded in compressed prefix-suffix-codes and storage medium or signal carrying compressed prefix-suffix-codes
WO2012031628A1 (en) * 2010-09-09 2012-03-15 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Entropy encoding and decoding scheme
US8344917B2 (en) * 2010-09-30 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for context initialization in video coding and decoding
WO2012134246A2 (ko) * 2011-04-01 2012-10-04 엘지전자 주식회사 엔트로피 디코딩 방법 및 이를 이용하는 디코딩 장치
TWI487295B (zh) * 2011-05-17 2015-06-01 Univ Nat Cheng Kung 高產出平行化avc/h.264前後文適應性二位元算數解碼器之方法
US10123053B2 (en) * 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
US9661326B2 (en) * 2011-06-28 2017-05-23 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding/decoding
KR101738289B1 (ko) 2011-10-17 2017-05-19 가부시끼가이샤 도시바 복호 장치 및 복호 방법
US9871537B2 (en) * 2011-10-27 2018-01-16 Qualcomm Incorporated Mapping states in binary arithmetic coder for video coding
US9948934B2 (en) 2014-07-02 2018-04-17 Apple Inc. Estimating rate costs in video encoding operations using entropy encoding statistics
JP2017538338A (ja) * 2014-11-04 2017-12-21 サムスン エレクトロニクス カンパニー リミテッド 二進算術符号化/復号のための確率更新方法、及びそれを利用したエントロピー符号化/復号装置
US10148961B2 (en) 2015-05-29 2018-12-04 Qualcomm Incorporated Arithmetic coder with multiple window sizes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103975532A (zh) * 2011-11-03 2014-08-06 高通股份有限公司 用于上下文自适应性熵译码的上下文状态和概率初始化
CN104221374A (zh) * 2012-04-11 2014-12-17 高通股份有限公司 在视频译码中分群经旁路译码语法元素

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
high efficiency video coding-h.265;ITU-T;《series H:audiovisual and multimedia systems-infrastructure of audiovisual services- coding of moving video》;20150401;第9章第3部分 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11570447B2 (en) 2018-12-28 2023-01-31 Hangzhou Hikvision Digital Technology Co., Ltd. Video coding and video decoding

Also Published As

Publication number Publication date
JP6728240B2 (ja) 2020-07-22
AU2016270616A1 (en) 2017-11-09
AU2016270634B2 (en) 2020-03-12
EP3304909A1 (en) 2018-04-11
TW201701664A (zh) 2017-01-01
AU2016270634A1 (en) 2017-11-09
US10148961B2 (en) 2018-12-04
US20160353110A1 (en) 2016-12-01
US10368072B2 (en) 2019-07-30
WO2016196287A1 (en) 2016-12-08
EP3304909B1 (en) 2020-03-04
CN107667533A (zh) 2018-02-06
AU2016270616B2 (en) 2020-06-25
JP2018521556A (ja) 2018-08-02
BR112017025605A2 (pt) 2018-08-07
KR20180013927A (ko) 2018-02-07
WO2016196307A1 (en) 2016-12-08
EP3304910A1 (en) 2018-04-11
CN107667533B (zh) 2020-06-05
TW201705760A (zh) 2017-02-01
JP6779918B2 (ja) 2020-11-04
CN107667530A (zh) 2018-02-06
US20160353108A1 (en) 2016-12-01
BR112017025612A2 (pt) 2018-08-07
KR102639864B1 (ko) 2024-02-22
JP2018521555A (ja) 2018-08-02
KR20180013928A (ko) 2018-02-07

Similar Documents

Publication Publication Date Title
CN107667530B (zh) 一种用于对视频数据进行熵译码的方法、设备和计算机可读存储媒体
CN107660339B (zh) 译码视频数据的方法和装置及非暂时性计算机可读存储媒体
CN111357287B (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