用于上下文自适应性熵译码的上下文状态和概率初始化的制作方法
【专利摘要】在一个实例中,一种用于上下文自适应性熵译码的设备可包含译码器,所述译码器经配置以基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数。所述译码器可经进一步配置以基于所述初始化参数而确定用于初始化所述上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态。所述译码器可经更进一步配置以基于所述初始上下文状态而初始化所述上下文。在一些实例中,所述初始化参数可包含于一或多个表中,其中,为了确定所述初始化参数,所述译码器可经配置以将所述初始化参数索引值映射到所述表中的所述初始化参数。替代地,所述译码器可经配置以使用所述初始化参数索引值和一或多个公式来计算所述初始化参数。
【专利说明】用于上下文自适应性熵译码的上下文状态和概率初始化
[0001]本申请案主张以下各申请案的权利:2011年11月3日申请的美国临时申请案第61/555,469号、2011年11月7日申请的美国临时申请案第61/556,808号、2011年11月9日申请的美国临时申请案第61/557,785号及2011年11月15日申请的美国临时申请案第61/560,107号,所述申请案中的每一者的整个内容以引用的方式并入本文中。
【技术领域】
[0002]本发明涉及视频数据或类似者的熵译码,且更明确地说,涉及上下文自适应性熵译码。
【背景技术】
[0003]数字视频能力可并入到广泛范围的装置中,装置包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、电子书阅读器、数字摄影机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电传会议装置、视频流式传输装置及类似者。数字视频装置实施视频压缩技术,例如以下各者中所描述的技术:由MPEG-2、MPEG-4、ITU-TH.263、ITU-T H.264/MPEG-4第10部分(进阶视频译码(AVC))定义的标准、目前在开发中的有效率率视频译码(HEVC)标准,及这些标准的扩展。视频装置可通过实施这些视频压缩技术而更有效率地发射、接收、编码、解码和/或存储数字视频信息。
[0004]视频压缩技术执行空间(图片内)预测和/或时间(图片间)预测,以减少或去除视频序列中固有的冗余。对于基于块的视频译码,可将视频切片(即,视频帧或视频帧的一部分)分割成视频块(其也可被称作树块、译码单元(CU)和/或译码节点)。图片的经帧内译码(I)切片中的视频块使用相对于相同图片中的相邻块中的参考样本的空间预测来编码。图片的经帧间译码(P或B)切片中的视频块可使用相对于相同图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。
[0005]空间预测或时间预测导致译码用于块的预测性块。残余数据表示待译码的原始块与预测性块之间的像素差。根据指向形成预测性块的参考样本的块的运动向量及指示经译码块与预测性块之间的差异的残余数据来编码经帧间译码块。根据帧内译码模式及残余数据来编码经帧内译码块。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生残余变换系数,可接着使残余变换系数量化。可扫描最初布置成二维阵列的经量化的变换系数以便产生变换系数的一维向量,且可应用熵译码以达成甚至更多压缩。
【发明内容】
[0006]本发明描述用于译码例如视频数据的数据的技术。例如,所述技术可用以译码通过视频译码过程产生的例如残余变换系数和/或其它语法元素的视频数据。明确地说,本发明描述可使用上下文自适应性熵译码过程来促成视频数据的有效率译码的技术。本发明仅出于说明的目的而描述视频译码。因而,本发明中所描述的技术可适用于译码其它类型的数据。
[0007]作为一个实例,本发明的技术可使得译码系统或装置能够比使用其它技术时的情况更有效率地译码例如视频数据的各种类型的数据。明确地说,本文中所描述的技术可使得译码系统或装置能够在使用例如上下文自适应性二进制算术译码(CABAC)过程的上下文自适应性熵译码过程译码数据时,相对于其它系统或装置来说具有较低复杂性。例如,出于初始化上下文自适应性熵译码过程的一或多个上下文的目的,技术可减小存储于译码系统或装置内和/或传输到译码系统或装置或从译码系统或装置传输的信息的量。作为一个实例,可通过存储和/或传输指示用以初始化上下文的初始化参数的初始化参数索引值而非直接存储和/或传输初始化参数来减小信息的量。
[0008]另外,作为另一实例,当译码系统或装置经配置以使用上下文自适应性熵译码过程来译码数据时,技术可改进数据的压缩。例如,技术可通过以下操作来改进数据的压缩:使得译码系统或装置能够初始化上下文自适应性熵译码过程的一或多个上下文,使得上下文包含与使用其它上下文初始化技术所确定的初始概率相比较来说相对更准确的初始概率。明确地说,可使用参考上下文状态及量化参数信息及各种关系或使用一或多个概率偏移,基于与数据相关联的时间层信息而初始化上下文。另外,技术可通过以下操作来进一步改进数据的压缩:使得译码系统或译码装置能够随后更新上下文的概率,使得更新的概率与使用其它上下文概率更新技术、使用与上文所描述的技术相同或类似的技术更新的概率相比较来说相对更准确。
[0009]在一个实例中,一种上下文自适应性熵译码的方法可包含基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数。所述方法也可包含基于所述一或多个初始化参数,确定用于初始化所述上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态。另外,所述方法可包含基于所述一或多个初始上下文状态而初始化所述上下文自适应性熵译码过程的所述一或多个上下文。
[0010]在另一实例中,一种用于上下文自适应性熵译码的设备可包含一译码器。在此实例中,所述译码器可经配置以基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数。所述译码器可经进一步配置以基于所述一或多个初始化参数,确定用于初始化所述上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态。所述译码器可经更进一步配置以基于所述一或多个初始上下文状态而初始化所述上下文自适应性熵译码过程的所述一或多个上下文。
[0011 ] 在再一实例中,一种用于上下文自适应性熵译码的装置可包含用于基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数的装置。所述装置可进一步包含用于基于所述一或多个初始化参数而确定用于初始化所述上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态的装置。所述装置可更进一步包含用于基于所述一或多个初始上下文状态而初始化所述上下文自适应性熵译码过程的所述一或多个上下文的装置。
[0012]本发明中所描述的所述技术可以硬件、软件、固件或其任何组合来实施。如果以硬件来实施,那么设备可作为一或多个集成电路、一或多个处理器、离散逻辑或其任何组合来实现。如果以软件来实施,那么软件可在一或多个处理器中予以执行,一或多个处理器例如一或多个微处理器、专用集成电路(ASIC)、场可程序化闸阵列(FPGA)或数字信号处理器(DSP)。执行所述技术的软件可最初存储于有形或非暂时性计算机可读存储媒体中且载入于一或多个处理器中并在一或多个处理器中予以执行。
[0013]因此,本发明也预期一种存储有指令的非暂时性计算机可读存储媒体,所述指令在执行时可使一或多个处理器执行上下文自适应性熵译码。在此实例中,所述指令可使所述一或多个处理器基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数。所述指令可进一步使所述一或多个处理器基于所述一或多个初始化参数而确定用于初始化所述上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态。所述指令可更进一步使所述一或多个处理器基于所述一或多个初始上下文状态而初始化所述上下文自适应性熵译码过程的所述一或多个上下文。
[0014]一或多个实例的细节阐述于随附图式及以下描述中。其它特征、目标及优点将从所述描述及所述图式以及从权利要求书显而易见。
【专利附图】
【附图说明】
[0015]图1为说明与本发明的技术一致的视频编码及解码系统的实例的框图,视频编码及解码系统可实施用于上下文自适应性熵译码的上下文状态及概率初始化的技术。
[0016]图2为说明与本发明的技术一致的视频编码器的实例的框图,视频编码器可实施用于上下文自适应性熵译码的上下文状态及概率初始化的技术。
[0017]图3为说明与本发明的技术一致的视频解码器的实例的框图,视频解码器可实施用于上下文自适应性熵译码的上下文状态及概率初始化的技术。
[0018]图4为说明与本发明的技术一致的使用可调式视频译码而译码的经译码视频序列的时间阶层的实例的概念图。
[0019]图5到8为说明与本发明的技术一致的初始化上下文自适应性熵译码过程的一或多个上下文及概率的实例方法的流程图。
【具体实施方式】
[0020]本发明描述用于译码例如视频数据的数据的技术。例如,技术可用以译码通过视频译码过程产生的例如残余变换系数和/或其它语法元素的视频数据。明确地说,本发明描述可使用上下文自适应性熵译码过程来促成视频数据的有效率译码的技术。本发明仅出于说明的目的而描述视频译码。因而,本发明中所描述的技术可适用于译码其它类型的数据。
[0021]在本发明中,术语“译码”指在编码器处发生的编码或在解码器处发生的解码。类似地,术语“译码器”指编码器、解码器,或组合式编码器/解码器(例如,“CODEC”)。术语“译码器”、“编码器”、“解码器”及“CODEC”皆指与本发明一致的经设计用于例如视频数据的数据的译码(即,编码和/或解码)的特定机器。
[0022]作为一个实例,本发明的技术可使译码系统或装置能够比使用其它技术时的情况更有效率地译码例如视频数据的各种类型的数据。明确地说,本文中所描述的技术可使译码系统或装置能够在使用例如上下文自适应性二进制算术译码(CABAC)过程的上下文自适应性熵译码过程译码数据时,相对于其它系统或装置来说具有较低复杂性。例如,出于初始化上下文自适应性熵译码过程的一或多个上下文的目的,技术可减少存储于译码系统或装置内和/或传输到译码系统或装置或从译码系统或装置传输的信息的量。作为一个实例,可通过存储和/或传输指示用以初始化上下文的初始化参数的初始化参数索引值而非直接存储和/或传输初始化参数来减小信息的量。
[0023]另外,作为另一实例,当译码系统或装置经配置以使用上下文自适应性熵译码过程译码数据时,技术可改进数据的压缩。例如,技术可通过以下操作来改进数据的压缩:使得译码系统或装置能够初始化上下文自适应性熵译码过程的一或多个上下文,使得上下文包含与使用其它上下文初始化技术所确定的初始概率相比较来说相对更准确的初始概率。明确地说,可使用参考上下文状态及量化参数信息及各种关系或使用一或多个概率偏移,基于与数据相关联的时间层信息而初始化上下文。另外,技术可通过以下操作来进一步改进数据的压缩:使得译码系统或装置能够随后更新上下文的概率,使得更新的概率与使用其它上下文概率更新技术、使用与上文所描述的技术相同或类似的技术更新的概率相比较来说相对更准确。
[0024]因此,当使用本发明的技术时,可存在以下两者:经译码位流的相对位节省,经译码位流包含经译码数据以及传输到译码系统或装置或从译码系统或装置传输的其它语法信息(例如,初始化参数索引值);及用以译码数据的译码系统或装置的复杂性的相对减小。
[0025]本发明的技术在一些实例中可供任何上下文自适应性熵译码方法使用,上下文自适应性熵译码方法包含上下文自适应性可变长度译码(CAVLC)、CABAC、基于语法的上下文自适应性二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码,或另一上下文自适应性熵译码方法。仅出于说明的目的,在本文中描述CABAC,且无关于本发明中所广泛描述的技术的限制。同样,(例如)除视频数据的译码之外,本文中所描述的技术也可大体上应用于其它类型的数据的译码。
[0026]图1为说明与本发明的技术一致的视频编码及解码系统的实例的框图,视频编码及解码系统可实施用于上下文自适应性熵译码的上下文状态及概率初始化的技术。如图1中所展示,系统10包含源装置12,源装置12产生待在稍后时间由目的地装置14解码的经编码视频数据。源装置12及目的地装置14可包括广泛范围的装置中的任一者,装置包含桌上型计算机、笔记型(B卩,膝上型)计算机、平板计算机、机顶盒、电话手机(例如,所谓的“智能”电话)、所谓的“智能”触控板、电视、摄影机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置或类似者。在一些状况下,源装置12及目的地装置14可经装备以用于无线通信。
[0027]目的地装置14可经由链路16接收待解码的经编码视频数据。链路16可包括能够将经编码视频数据从源装置12移到目的地装置14的任何类型的媒体或装置。在一个实例中,链路16可包括使得源装置12能够将经编码视频数据直接实时传输到目的地装置14的通信媒体。可根据通信标准(例如,无线通信协议)来调制经编码视频数据,且将经编码视频数据传输到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如,射频(RF)频谱或一或多个实体传输线。通信媒体可形成基于封包的网络(例如,局域网、广域网或例如因特网的全球网络)的部分。通信媒体可包含路由器、交换器、基站,或可用以促进从源装置12到目的地装置14的通信的任何其它装备。[0028]替代地,可将经编码视频数据从输出接口 22输出到存储装置24。类似地,可通过输入接口 26从存储装置24接入经编码视频数据。存储装置24可包含多种分散式或本地接入的数据存储媒体中的任一者,例如,硬碟机、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适数字存储媒体。在另一实例中,存储装置24可对应于可保持由源装置12产生的经编码视频的文件服务器或另一中间存储装置。目的地装置14可经由流式传输或下载从存储装置24接入所存储的视频数据。文件服务器可为能够存储经编码视频数据且将彼经编码视频数据传输到目的地装置14的任何类型的服务器。实例文件服务器包含网站服务器(例如,用于网站)、FTP服务器、网络附接存储(NAS)装置或本地磁盘机。目的地装置14可经由任何标准数据连接(包含因特网连接)接入经编码视频数据。此数据连接可包含适合于接入存储于文件服务器上的经编码视频数据的无线信道(例如,W1-Fi连接)、有线连接(例如,DSL、缆线调制解调器,等等),或两者的组合。来自存储装置24的经编码视频数据的传输可为流式传输、下载传输或两者的组合。
[0029]本发明的技术未必限于无线应用或设定。技术可应用于支持多种多媒体应用(例如,(例如)经由因特网的空中电视广播、有线电视传输、卫星电视传输、流式传输视频传输)中的任一者的视频译码、用于存储于数据存储媒体上的数字视频的编码、存储于数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频传输以支持例如视频流式传输、视频播放、视频广播和/或视频电话的应用。
[0030]在图1的实例中,源装置12包含视频源18、视频编码器20及输出接口 22。在一些状况下,输出接口 22可包含调制器/解调制器(调制解调器)和/或传输器。在源装置12中,视频源18可包含例如以下各者的源:视频捕获装置(例如,摄像机)、含有先前捕获的视频的视频存档、从视频内容提供者接收视频的视频馈入接口,和/或用于产生计算机图形数据作为源视频的计算机图形系统,或这些源的组合。作为一个实例,如果视频源18为摄像机,那么源装置12与目的地装置14可形成所谓的摄影机电话或视频电话。然而,大体来说,本发明中所描述的技术可适用于视频译码,且可应用于无线和/或有线应用。
[0031]经捕获、经预先捕获或经计算机产生的视频可由视频编码器20来编码。可经由源装置12的输出接口 22将经编码视频数据直接传输到目的地装置14。也可(或替代地)将经编码视频数据存储到存储装置24上以供目的地装置14或其它装置稍后接入以用于解码和/或播放。
[0032]目的地装置14包含输入接口 26、视频解码器30及显示装置28。在一些状况下,输入接口 26可包含接收器和/或调制解调器。目的地装置14的输入接口 26经由链路16或从存储装置24接收经编码视频数据。经由链路16而传达或提供于存储装置24上的经编码视频数据可包含由视频编码器20产生的供视频解码器(例如,视频解码器30)用于解码视频数据中的多种语法元素。这些语法元素可包含于在通信媒体上传输、存储于存储媒体上或存储于文件服务器上的经编码视频数据中。
[0033]显示装置28可与目的地装置14集成或在目的地装置14外部。在一些实例中,目的地装置14可包含集成显示装置(例如,显示装置28)和/或经配置以与外部显示装置接口连接。在其它实例中,目的地装置14自身可为显示装置。大体来说,显示装置28向用户显示经解码的视频数据,且可包括多种显示装置中的任一者,例如,液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
[0034]视频编码器20及视频解码器30可根据例如目前由ITU-T视频译码专家组群组(VCEG)及IS0/IEC动画专家组群组(MPEG)的视频译码联合协作小组(JCT-VC)开发的高效率视频译码(HEVC)标准的视频压缩标准操作,且可遵照HEVC测试模型(HM)。替代地,视频编码器20及视频解码器30可根据例如或者被称作MPEG4的ITU-T H.264标准第10部分(进阶视频译码(AVC))(下文中为H.264/AVC)的其它专属或工业标准或这些标准的扩展而操作。然而,本发明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含MPEG-2及ITU-T H.263。被称作“HEVC工作草案8”或“WD8”的HEVC标准的新近草案描述于布罗斯(Bross)等人的文件JCTVC-J1003_d7 “高效率视频译码(HEVC)文本规范草案8(High efficiency video coding (HEVC) text specification draft8),,(ITU-T SG16WP3及IS0/IEC JTC1/SC29/WG11的视频译码联合协作小组(JCT-VC)第10次会议:瑞典斯德哥尔摩,2012年7月11日至20日)中。
[0035]虽然图1中未展示,但在一些方面中,视频编码器20及视频解码器30可各自与一音频编码器及解码器集成,且可包含适当多路复用器-多路分用器(MUX-DEMUX)单元或其它硬件及软件,以处置共同数据流或单独数据流中的音频与视频两者的编码。如果可适用,那么在一些实例中,MUX-DEMUX单元可遵照ITU H.223多路复用器协议,或例如用户数据报协议(m)P)的其它协议。
[0036]视频编码器20及视频解码器30各自可实施为例如以下各者的多种合适编码器或解码器电路中的任一者:一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、场可程序化闸阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当部分地以软件来实施技术时,装置可将用于软件的指令存储于合适的非暂时性计算机可读存储媒体中,且使用一或多个处理器执行硬件中的指令以执行本发明的技术。视频编码器20及视频解码器30中的每一者可包含于一或多个编码器或解码器中,编码器或解码器中的任一者可集成为相应装置中的组合式编码器/解码器(例如,CODEC)的部分。
[0037]HEVC标准化努力系基于被称作HEVC测试模型(HM)的视频译码装置的演进模型。HM假定视频译码装置相对于根据(例如)ITU-T H.264/AVC的现有装置的若干额外能力。例如,H.264提供九个帧内预测编码模式,而HM可提供多达三十五个帧内预测编码模式。
[0038]大体来说,HM的工作模型描述视频帧或图片可划分成包含亮度样本与色度样本两者的树块或最大译码单元(LCU)序列。树块具有与H.264标准的宏块的用途类似的用途。切片包含按译码次序的若干个连续树块。可将视频帧或图片分割成一或多个切片。每一树块可根据四叉树而分裂成多个译码单元(CU)。例如,树块(作为四叉树的根节点)可分裂成四个子节点,且每一子节点又可为母节点,且分裂成另外四个子节点。最终未分裂的子节点(作为四叉树的叶节点)包括一译码节点,即,经译码视频块。与经译码位流相关联的语法数据可定义树块可分裂的最大次数,且也可定义译码节点的最小大小。
[0039]CU包含一译码节点及与译码节点相关联的多个预测单元(PU)及变换单元(TU)。⑶的大小对应于译码节点的大小,且形状可为正方形。⑶的大小可在从8X8像素直到具有最大值64X64像素或大于64X64像素的树块的大小的范围内。每一⑶可含有一或多个I3U及一或多个TU。与CU相关联的语法数据可描述(例如)CU到一或多个PU的分割。分割模式可在CU经跳过或直接模式编码、经帧内预测模式编码或经帧间预测模式编码之间而不同。PU的形状可分割成非正方形。与CU相关联的语法数据也可描述(例如)根据四叉树的⑶到一或多个TU的分割。TU的形状可为正方形或非正方形。
[0040]HEVC标准根据TU执行变换,TU对于不同⑶可为不同的。通常基于针对经分割IXU定义的给定⑶内的I3U的大小而设定TU的大小,但可能并非始终为此状况。TU通常具有与PU相同的大小,或小于W。在一些实例中,可使用被称为“残余四叉树”(RQT)的四叉树结构将对应于CU的残余样本再分为更小的单元。RQT的叶节点可被称作变换单元(TU)。可变换与TU相关联的像素差值以产生可予以量化的变换系数。
[0041]大体来说,PU包含与预测过程有关的数据。例如,当经帧内模式编码时,PU可包含描述PU的帧内预测模式的数据。作为另一实例,当PU经帧间模式编码时,PU可包含定义PU的运动向量的数据。定义的运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精确度或八分之一像素精确度)、运动向量所指向的参考图片,和/或运动向量的参考图片列表(例如,列表O、列表I或列表C)。
[0042]大体来说,TU用于变换过程和量化过程。具有一或多个I3U的给定⑶也可包含一或多个TU。在预测之后,视频编码器20可计算对应于PU的残余值。残余值包括可变换成使用TU而量化且扫描以产生串行化变换系数以用于熵译码的变换系数的像素差值。本发明通常使用术语“视频块”来指⑶的译码节点。在一些特定状况下,本发明也可使用术语“视频块”来指包含一译码节点及多个I3U及TU的树块(S卩,IXU或⑶)。
[0043]视频序列通常包含一系列视频帧或图片。图片组群组(GOP)大体包括一系列的视频图片中的一或多者。GOP可在GOP的标头、图片中的一或多者的标头中或在别处包含语法数据,语法数据描述包含于GOP中的图片的数目。图片的每一切片可包含描述相应切片的编码模式的切片语法数据。视频编码器20通常对个别视频切片内的视频块操作,以便编码视频数据。视频块可对应于CU内的译码节点。视频块可具有固定或变化的大小,且可根据指定译码标准而在大小方面不同。
[0044]作为一个实例,HM支持以各种I3U大小进行的预测。假定特定⑶的大小为2NX2N,那么HM支持以2NX2N或NXN的I3U大小进行的帧内预测,及以2NX2N、2NXN、NX2N或NXN的对称I3U大小进行的帧间预测。HM也支持用于以2NXnU、2NXnD、nLX2N及nRX2N的PU大小进行的帧间预测的不对称分割。在不对称分割中,CU的一方向未经分割,而另一方向经分割成25%及75%。对应于25%分割的⑶的部分通过“η”跟着“上(Up)”、“下(Down)”、“左(Left)”或“右(Right) ”的指示来指示。因此,例如,“2NXnU”指在水平方向上以顶部2NX0.5N PU及底部2NX1.5N PU分割的2NX2N CU。
[0045]在本发明中,“NXN”与“N乘N”可互换地使用以指依据垂直维度与水平维度的视频块的像素尺寸,例如,16X16像素或16乘16像素。大体来说,16X16块在垂直方向上将具有16个像素(y = 16)且在水平方向上将具有16个像素(x = 16)。同样地,NXN块大体上在垂直方向上具有N个像素,且在水平方向上具有N个像素,其中N表示非负整数值。可按行及列来布置块中的像素。此外,块未必需要在水平方向上具有与在垂直方向上的像素数目相同的数目个像素。例如,块可包括NXM像素,其中M未必等于N。
[0046]在使用CU的PU进行帧内预测性或帧间预测性译码之后,视频编码器20可计算CU的TU的残余数据。I3U可包括空间域(也被称作“像素域”)中的像素数据,且在将例如离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换的变换应用于残余视频数据之后,TU可包括变换域中的系数。残余数据可对应于未经编码的图片的像素与对应于的预测值之间的像素差。视频编码器20可形成包含⑶的残余数据的TU,且接着变换TU以产生⑶的变换系数。
[0047]在用以产生变换系数的任何变换之后,视频编码器20可执行变换系数的量化。量化大体上指如下过程:使变换系数量化以可能地减小用以表示系数的数据的量,从而提供进一步压缩。量化过程可减小与系数中的一些或全部相关联的位深度。例如,可在量化期间将η位值降值舍位到m位值,其中η大于m。
[0048]在一些实例中,视频编码器20可使用一或多个预定义扫描次序来扫描经量化的变换系数以产生可经熵编码的串行化向量。预定义扫描次序可基于例如用于译码过程中的译码模式或变换大小或形状的因素而变化。此外,在其它实例中,视频编码器20可(例如)使用经周期性调适的扫描次序来执行自适应性扫描。扫描次序可针对不同块(例如)基于译码模式或其它因素而不同地调适。在任何状况下,在扫描经量化的变换系数以形成串行化“一维”向量之后,视频编码器20可(例如)根据CAVLC、CABAC, SBAC, PIPE或另一上下文自适应性熵编码方法来进一步熵编码一维向量。视频编码器20也可熵编码供视频解码器30用于解码视频数据中的与经编码视频数据相关联的其它语法元素。此外,视频解码器30可执行与视频编码器20相同或类似的上下文自适应性熵译码技术,以解码经编码视频数据及与视频数据相关联的任何额外语法元素。
[0049]作为一个实例,为了执行CABAC,视频编码器20可将上下文模型内的上下文指派给待传输的符号。上下文可能与(例如)符号的相邻值是否为非零有关。作为另一实例,为了执行CAVLC,视频编码器20可针对待传输的符号选择一可变长度码。大体上可构建CAVLC及可变长度译码中的码字,使得相对较短码对应于更可能的符号,而相对较长码对应于较不可能的符号。以这个方式,相较于(例如)针对待传输的每一符号使用相等长度的码字来说,使用CAVLC可达成位节省。概率确定可基于指派给符号的上下文。另外,上文所描述的技术同样适用于用以按上文描述的方式解码由视频编码器20编码的一或多个符号的视频解码器30。
[0050]大体来说,根据H.264/AVC及上文所描述的HEVC的某些草案版本的技术,使用CABAC译码数据符号(例如,视频数据的经译码块的语法元素或语法元素的一部分)可涉及以下步骤:
[0051](I) 二进制化:如果待译码的符号为非二进制值,那么可将符号映射到所谓的“二进制”的序列。每一二进制可具有值“O”或“I”。
[0052](2)上下文指派:将每一二进制(例如,在所谓的“规则”译码模式中)指派给上下文。上下文模型基于可用于给定二进制的信息(例如,先前经编码符号的值)或二进制编号(例如,在包含二进制的二进制序列内的二进制的位置)而确定如何针对二进制计算上下文(例如,如何将上下文指派给二进制)。
[0053](3) 二进制编码:通过算术编码器编码二进制。为了编码给定二进制,算术编码器需要二进制的值的概率(例如,所估计概率)(即,二进制值等于“O”的概率及二进制值等于“I”的概率)作为输入。例如,如上文在步骤(2)中所描述的指派给二进制的上下文可指示二进制值的此概率。作为一个实例,每一上下文的概率(例如,通过每一上下文指示的所估计概率)可通过被称为上下文“状态”的与上下文相关联的整数值来表示。每一上下文具有一上下文状态(例如,任何给定时间的特定上下文状态)。因而,对于指派给一个上下文的二进制,上下文状态(即,所估计概率)为相同的,且在上下文之间不同(例如,在不同上下文当中变化,且在一些状况下,针对给定上下文随时间而变化)。另外,为了编码二进制,算术编码器进一步需要二进制值作为输入,如上文所描述。
[0054](4)状态更新:基于二进制的实际经译码值而更新所选定上下文的概率(例如,上下文状态)。例如,对于所选定上下文,如果二进制值为“1”,那么“I”的概率增加;且如果二进制值为“0”,那么“O”的概率增加。
[0055]在CABAC的情况下具体描述本发明的许多方面。另外,PIPE、CAVLC、SBAC或其它上下文自适应性熵译码技术可使用与本文中参看CABAC所描述的原理类似的原理。明确地说,这些或其它上下文自适应性熵译码技术可利用上下文状态初始化,且可因此也受益于本发明的技术。
[0056]此外,如上文所描述,H.264/AVC的CABAC技术包含使用上下文状态,其中每一上下文状态隐含地与概率有关。如下文将更详细描述,存在CABAC的如下变化:其中直接使用正经译码的给定符号的概率(例如,“O”或“1”),S卩,概率(或概率的整数型式)为上下文状态自身。
[0057]在初始化CABAC编码或解码过程之前,可能需要将初始上下文状态指派给CABAC过程的每一上下文。在H.264/AVC及HEVC的某些草案版本中,线性关系或“模型”用以指派每一上下文的初始上下文状态。具体来说,对于每一上下文来说,存在用以确定上下文的初始上下文状态的预定义初始化参数、斜率(“m”)及交叉(“η”)。例如,根据H.264/AVC及HEVC的某些草案版本,可使用以下关系来导出给定上下文的初始上下文状态:
[0058]Int ilnitState = ((m*iQp)/16)+η ; 等式(I)
[0059]ilnitState = min(max(I, ilnitState),126)。 等式(2)
[0060]在等式(I)中,“m”及“η”对应于正经初始化的上下文的初始化参数(即,针对上下文确定初始上下文状态“ilnitState”)。此外,可被称作初始化量化参数(QP)的“iQP”可对应于正经译码的数据(例如,视频数据块)的QP。数据的QP的值及因此的iQP的值可(例如)基于逐帧、逐切片或逐块而设定。另外,“m”及“η”初始化参数的值对于不同上下文可变化。此外,等式(2)可被称作“截割”函数,函数可用以确保“ilnitState”的值在“I”与“ 126”之间的范围内,由此允许使用7个数据位来表示值。
[0061]在一些实例中,可使用以下表达式将“ilnitState”进一步转换成CABAC中的上下文的实际上下文状态,加上“最可能符号(MPS)/最不可能符号(LPS) ”符号:
[0062]if (ilnitState〉= 64)
[0063]{
[0064]m_ucState = min(62, iInitState—64);
[0065]m_ucState+ = m_ucState+l ;
[0066]}
[0067]Else
[0068]{
[0069] m_ucState = min(62,63—iInitState);[0070]m_ucState+ = m_ucState ;
[0071]}
[0072]其中“m_ucState”对应于CABAC中的上下文的实际上下文状态加上MPS/LPS符号。
[0073]在CABAC的一些实例中,在上下文的上下文状态直接对应于上下文的概率的状况下,如上文所描述,以下关系可用以初始化特定上下文:
[0074]Int c = asCtxInit[O]+asCtxInit[I]*(iQp-1QPreper); 等式(3)
[0075]iPO = min (max (1,c),32767)。 等式(4)
[0076]如由给定上下文的上下文状态“c”直接指示,值“iPO”可指示正经译码的符号的概率。因此,在此实例中,不需要将符号“iPO”的概率转换成MPS及LPS符号及实际上下文状态,如上文所描述。此外,如所展示,等式(3)的关系或“模型”也为线性的,且依赖于两个初始化参数,即“asCtxInit [O] ”与“asCtxInit [I] ”。例如,“iQP”可再次对应于正经译码的数据的QP。另外,在一些实例中,“iQPr印er”可对应于用以修改iQp的常数(例如,偏移)。
[0077]在上文所描述的实例中,使用15个数据位将符号iPO的概率表达为整数,其中最小非零概率为“ I ”,且最大概率为“32767”。在此实例中,使用表达式“ iPO/32768”来导出“实际”概率。另外,等式⑷也可被称作“截割”函数,且可用以确保“iPO”的值在“I”与“32767”之间的范围内,由此允许使用15个数据位来表示值。
[0078]上文所描述的途径具有若干缺陷。作为一个实例,因为上文参看H.264/AVC及HEVC的某些草案版本所描述的CABAC过程包含大量上下文(例如,多达369个上下文),所以可使用“m”及“η”初始化参数的特定集合或“对”来初始化每一上下文。因此,大量“m”及“η”初始化参数(例如,多达369个不同的成对“m”及“η”初始化参数)可用以确定上下文的初始上下文状态。此外,因为“m”及“η”初始化参数中的每一者可使用多达8个数据位来表示,所以出于确定上下文的初始上下文状态的目的,可能需要大量信息(例如,许多数据位)来存储和/或传输“m”及“η”初始化参数。例如,可能需要多达5,904个数据位来存储和/或传输369个不同的成对“m”及“η”初始化参数,每一对“m”及“η”初始化参数包括16个数据位(即,特定对的“m”及“η”初始化参数中的每一者包括8个数据位)。
[0079]另外,作为另一实例,如上文也参看H.264/AVC及HEVC的某些草案版本所描述的用以确定上下文的初始上下文状态的线性关系可导致确定上下文的初始概率,如通过初始上下文状态指示,确定的初始概率相较于使用其它技术所确定的初始概率来说相对较不准确。作为一个实例,使用上文所描述的线性关系可导致初始概率相较于使用进一步考虑与正经译码的数据(例如,视频数据)相关联的时间层的线性关系确定的初始概率来说相对较不准确。作为另一实例,使用上文所描述的线性关系可导致初始概率相较于使用非线性、部分非线性或双线性关系所确定的初始概率来说相对较不准确。作为又一实例,在直接确定上下文的初始概率(即,而非确定指示上下文的初始概率的初始上下文状态)的状况下,初始概率相较于基于到包含初始概率的概率范围的上限及下限中的一或多者的接近性而进一步调整的初始概率来说可为相对较不准确的(例如,歪斜的)。
[0080]本发明描述若干技术,所述技术在一些状况下可减小或消除上文参看上下文自适应性熵译码过程的上下文状态初始化(即,确定上下文的初始上下文状态,其中初始上下文状态指示上下文的初始概率)及概率初始化(即,直接确定上下文的初始概率)而描述的缺陷中的一些缺陷。明确地说,本文中所描述的技术可使得用以译码数据(例如,视频数据)的上下文自适应性熵译码(例如,CABAC、CAVLC、SBAC、PIPE,等等)系统或装置能够相对于其它系统或装置来说具有较低复杂性。作为一个实例,本发明的技术可使系统或装置能够存储和/或传输指示上文所描述的初始化参数“m”及“m”的初始化参数索引值,而非直接存储和/或传输初始化参数,初始化参数索引值用以确定上下文自适应性熵译码过程的上下文的初始上下文状态。在此实例中,初始化参数索引值可使用比初始化参数少的信息(例如,较少数据位)来表示,从而可能导致存储于系统或装置内且在一些状况下从系统传输到其它系统或装置的信息的减少量。
[0081]另外,本文中所描述的技术可通过初始化上下文自适应性熵译码过程的一或多个上下文来实现数据(例如,视频数据)的更有效率的上下文自适应性熵译码,使得上下文的初始概率相对于使用其它技术导出的初始概率来说更准确。在一个实例中,本发明的技术可通过基于与数据相关联的时间层而确定上下文的指示初始概率的初始上下文状态,来实现上下文的初始化以便具有相对更准确的初始概率。在另一实例中,所述技术可通过使用参考上下文状态及对应参考量化参数值确定上下文的初始上下文状态来实现一或多个上下文的初始化。在又一实例中,在直接确定上下文的初始概率的状况下,所述技术可实现基于一或多个概率偏移而确定初始概率。
[0082]作为一个实例,本发明描述用于进行以下操作的技术:基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数,基于一或多个初始化参数而确定用于初始化上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态,及基于一或多个初始上下文状态而初始化上下文自适应性熵译码过程的一或多个上下文。
[0083]例如,本发明的技术的开发已论证:在一些状况下,如上文参看H.264/AVC及HEVC所描述,使用初始上下文状态与正被译码的数据(例如,视频数据)的QP之间的线性关系可导致相较于使用其它技术来说上下文相对较不准确的初始概率。因此,初始上下文状态所指示的初始概率可能实质上不同于正被译码的数据的实际概率。因此,如下文将更详细描述,本发明提出了产生或确定上下文的初始化值(即,直接产生或确定初始上下文状态或初始概率)以改进上下文的所谓的初始“状态/概率估计”(即,概率)的准确度的若干方法。另外,本发明也提出了用于进行以下操作的技术:减小上文所描述的线性模型初始化参数(即,“m”及“η”)的位宽度,使得可减小包含上下文的初始化信息(例如,“m”及“η”初始化参数)的初始化表的存储(例如,表的大小)。
[0084]例如,在HM中,上文所描述的“m”及“η”初始化参数是使用16位带正负号的整数来存储。因而,16个数据位用于存储每一“m”及“η”初始化参数。因为H.264/AVC及HEVC的某些草案版本的技术可包含多达369个上下文,所以多达369个“m”及“η”初始化参数集合或“对”(例如,369个“ (m,n)”对)可存储于特定译码器内,由此消耗实质上大量存储
器或存储装置。
[0085]在一些实例中,本发明描述将4个数据位用于“m”及“η”初始化参数中的每一者。为了涵盖足够大范围的斜率(“m”)及交叉(“η”)值,代替直接使用“m”来表示斜率且使用“η”来表示交叉,所揭示技术提议使用“m”来表示斜率指数且使用“η”来表示交叉指数。在此实例中,实际斜率值可使用以下关系(即,使用斜率表)使用“m”初始化参数索引值来导出:
[0086]斜率=SlopeTable[m]
[0087]类似地,实际交叉值可使用以下关系(即,使用交叉表)使用“η”初始化参数索引值来导出:
[0088]交叉=IntersectionTable [η]
[0089]换句话说,根据所揭示技术,上文参看H.264/AVC及HEVC所描述的“m”及“η”初始化参数可重新定义为又指示初始化参数(其可被简称作“斜率”及“交叉”初始化参数)的“m”及“η”初始化参数索引值。然而,在其它实例中,H.264/AVC及HEVC的“m”及“η”初始化参数可保持其原始含义,而本文中所揭示的技术的初始化参数索引值可被称作“idx_m”及“idx_n”初始化参数索引值。在以下实例中,初始化参数索引值被称作“m”及“η”初始化参数索引值。
[0090]下文展示分别包含使用“m”及“η”初始化参数索引值确定的斜率值及交叉值的斜率表及交叉表的实例:
[0091]SlopeTable [16] = {-46,-39,-33,-28,-21,-14,-11,_6,0,7,12,17,21,26,34,
40}
[0092]IntersectionTable[16] = {-42,-25,-11,0,9,20,32,43,54,63,71,79,92,104,114,132}
[0093]在一些实例中,可使用8位参数“X”来组合4位“m”和4位“η”初始化参数索引值,其中“m = x>>4且n = χ&15”或反之亦然,“η = χ>>4且m = x&15”可用以使用“x”来导出“m”及“η”。在此实例中,“》”指示向右移位运算,且“&”指示逻辑与运算。
[0094]在其它实例中,也有可能使用不等数目个位来表示“m”及“η”初始化参数索引值。例如,5个数据位可用以表示“m”,且3个数据位可用以表示“n”,或反之亦然。
[0095]在再其它实例中,代替存储斜率及交叉值的表,如上文所描述,可使用一或多个公式或函数(例如,以下斜率和/或交叉函数)从对应斜率或交叉索引值来计算斜率及交叉值:
[0096]斜率=functionA(m),和 / 或交叉=functionB (η)
[0097]使用斜率作为实例,斜率函数可为线性函数,例如以下表达式:
[0098]斜率=cO*m+cl
[0099]其中“CO”及“Cl”为线性函数的参数。
[0100]在另一实例中,斜率函数可仅包含移位及加法运算,例如以下表达式:
[0101]斜率=m〈〈k+cl
[0102]其中“k”为移位参数,且“Cl”为常数。
[0103]作为额外实例,对于以下表:
[0104]SlopeTable[16] = {-45-40-35-30-25-20-15-10-5051015202530}
[0105]IntersectionTable[16] = {-16-8081624324048566472808896104},
[0106]包含“X”的以下关系可用以确定“m”及“η”初始化参数索引值,“m”及“η”初始化参数索引值又可用以使用表来确定相应斜率及交叉值:
[0107]m = χ?4, η = x&15 (或反之亦然,η = x?4 且 m = x&15)。
[0108]再次,在此实例中,“》”指示向右移位运算,且“指示逻辑与运算。[0109]在一些实例中,代替存储SlopeTable及IntersectionTable,如上文所描述,可使用以下表达式来计算斜率及交叉的值:
[0110]斜率=m*5_45
[0111]交叉=n*8-16
[0112](或等效地交叉=(n?3)-16)
[0113]在其它实例中,可将4位的“m”参数及4位的“η”参数组合成8位参数“idx”,其中,代替使用两个单独索引值来确定斜率及交叉值,可使用单一索引值(即,“idx”),如以下表达式中所展示:
[0114]斜率=SlopeTable[idx]
[0115]交叉=IntersectionTable[idx]
[0116]作为另一实例,本发明也描述用于进行以下操作的技术:基于一或多个初始化参数及与视频数据相关联的时间层参数而确定用于初始化用以译码视频数据的上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态,以及基于一或多个初始上下文状态而初始化上下文自适应性熵译码过程的一或多个上下文。
[0117]作为一个实例, 如图4中所说明,且如下文更详细描述,视频数据帧可以阶层式结构来编码。例如,如图4中所描绘,帧“O”、“4”及“8”译码于时间层“O”中,帧“2”及“6”译码于时间层“I”中,且剩余帧(即,帧“1”、“3”、“5”及“7”)译码于时间层“2”中。本发明的技术的开发已论证:不同视频数据帧当中的相依性可为不对称的。例如,位于较低时间层中的视频数据帧可为位于较高时间层中的视频数据帧的参考帧(例如,如通过图4中所描绘的箭头展示)。也如图4中所展示,相对于图4中所说明的方向相依性反转的这些方向相依性可能不被允许。因此,用以译码一或多个视频数据帧的上下文自适应性熵译码过程的上下文的初始概率可取决于与视频数据帧相关联的时间层而变化。
[0118]因此,本发明描述用于(例如)使用以下关系将一偏移添加到使用上文参看
H.264/AVC及HEVC所描述的线性关系导出的初始上下文状态的技术:
[0119]Int ilnitState = ((m*iQp)/16)+η+偏移;
[0120]ilnitState = min (max (I, ilnitState),126)。
[0121]在一个实例中,“偏移”值可为固定的,且取决于与正经译码的数据(例如,视频数据帧)相关联的当前切片的时间层。例如,“偏移”值可对于时间层“O”而设定为“_2”,对于时间层“ I ”而设定为“2”,对于时间层“2”而设定为“3”,且对于时间层“3”而设定为“4”。在另一实例中,“偏移”可为时间层的函数,例如,如以下表达式中所展示:
[0122]偏移=offset_base*(temporal_layer-cO)+cl
[0123]其中“offset_base”对应于基础偏移值,“temporal_layer”对应于与经译码数据相关联的时间层,“CO”及“Cl”对应于常数,且“偏移”对应于用于上文所描述的线性上下文初始化关系中的所得偏移。
[0124]在另一实例中,偏移可以以下关系中所展示的方式来使用:
[0125]Int ilnitState = (((m*iQp)/16)+η) * (I 偏移);
[0126]ilnitState = min (max (I, ilnitState),126)。
[0127]在一些状况下,“偏移”值也可从与经译码数据相关联的其它“旁侧”信息(例如,切片类型、帧分辨率、参考帧列表大小等)来导出。[0128]在又一实例中,“偏移”值可在例如以下各者的高阶语法中用信号发送:图片参数集(PPS)、序列参数集(SPS)、调适参数集(APS),或与数据相关联的其它语法信息(例如,另一参数集或高阶语法位置)。
[0129]在上述实例中,可存在用于所有上下文的单一“偏移”值,或可存在多个“偏移”值,其中每一值应用于一特定上下文子集。在一个实例中,上下文可划分成三个组群组(即,Gl、G2及G3),且使用单一 “偏移”值,例如以下表达式中所展示:
[0130]对于G1,
[0131]Int ilnitState = ((m*iQp)/16)+η+偏移;
[0132]ilnitState = min (max (I, ilnitState),126)。
[0133]对于G2,
[0134]Int ilnitState = ((m*iQp)/16)+η-偏移;
[0135]ilnitState = min (max (I, ilnitState),126)。
[0136]对于G3,
[0137]Int ilnitState = ((m*iQp)/16)+η ;
[0138]ilnitState = min (max (I, ilnitState),126)。
[0139]作为另一实例,也可通过调整上文参看H.264/AVC及HEVC所描述的线性关系中的QP(例如,iQP)来达成初始上下文状态的调整。例如,新参数“iQp_new”可用以计算初始上下文状态,其中“iQp_new”可不同于用以编码特定帧(例如,确定初始上下文状态所针对的帧)的视频数据的QP,如以下关系中所展示:
[0140]Int ilnitState = ((m*iQp_new)/16)+η ;
[0141]ilnitState = min(max(I, ilnitState),126)。
[0142]在另一实例中,新参数“QP_offset”可用以修改上文参看H.264/AVC及HEVC所描述的线性关系中的QP (例如,iQP),如以下关系中所展示:
[0143]Int ilnitState = ((m*(QP+Qp_offset)/16)+η ;
[0144]ilnitState = min(max(I, ilnitState),126),
[0145]或替代地:
[0146]Int ilnitState = ((m*QP*(l+Qp_offset)/16)+η ;
[0147]ilnitState = min (max (I, ilnitState),126)。
[0148]在又一实例中,“iQp_new”或“Qp_offSet”的值可在例如以下各者的高阶语法中用信号发送:PPS、SPS、APS,或另一参数集或高阶语法位置。
[0149]在上文所描述的实例中,可存在用于所有上下文的单一“iQp_new”或“Qp_offset”值,或可存在多个“iQp_new”或“Qp_offset”值,其中每一值应用于一特定上下文子集。
[0150]在一个实例中,“Qp_offset”和/或“iQp_new”值可为固定的,且取决于与经译码数据相关联的当前切片的时间层。例如,“Qp_0fTSet”可对于时间层“O”而设定为“-3”,对于时间层“I”而设定为“0”,对于时间层“2”而设定为“3”,且对于时间层“3”而设定为“6”。在另一实例中,“Qp_offSet”可为时间层的函数,例如,如以下关系中所展示:
[0151]Qp_offset = Qp_offset_base氺(temporal_layer_cO)+cl
[0152]其中“Qp_OffSet_baSe”、“C0”及“Cl”为充当关系的参数的常数。类似地,“Qp_offset”和/或“iQp_new”值也可从例如切片类型、帧分辨率、参考帧列表大小等的其它“旁侧”信息来导出。
[0153]作为又一实例,上文所描述的技术(包含关于基于一或多个初始化参数索引值而初始化用以译码数据的上下文自适应性熵译码过程的一或多个上下文的技术)可用于上下文自适应性熵译码过程的所有上下文或仅用于上下文中的一些上下文(例如,上下文子集)。例如,技术可用于与某些语法元素类型有关的上下文,例如,用于所选定色彩分量(例如,“亮度”或“色度”分量)、所选定块大小、所选定变换大小、运动信息或变换系数信息的语法元素。
[0154]作为又一实例,本发明描述用于进行以下操作的技术:确定第一值;在第一值处于由下限、上限及相对于下限及上限中的一或多者的一或多个偏移定义的值范围内的情况下,选择第一值;在第一值处于值范围外的情况下,选择第二值,其中第二值不同于第一值;以及基于所选定的第一值或第二值而初始化上下文自适应性熵译码过程的上下文的概率。
[0155]作为一个实例,在确定上下文的初始概率中(上文参看CABAC的版本描述的技术,其中上下文的上下文状态直接对应于上下文的概率),可出现上下文的初始概率的高度歪斜分布。例如,高度歪斜概率可自最接近于包含初始概率的概率范围的上限及下限中的一或多者的所确定的初始概率而产生。因此,本发明的技术提议引入减小或防止这些歪斜概率的一或多个偏移。例如,所提议技术可使用以下关系来执行:
[0156]iPO = min (max (1+偏移,c),32767-偏移)
[0157]其中“偏移”为整数值。作为一个实例,等于“256”的“偏移”值可允许初始概率
无高度歪斜值。
[0158]作为另一实例,“偏移”值可与概率更新过程“匹配”。换句话说,在一些实例中,相同或类似偏移可用于随后更新上下文的经初始化的概率的目的。因此,此更新过程也可导致避免上下文的“极限值”(例如,接近于0%或100% )概率(即,高度歪斜概率)。因此,初始化与随后更新概率(即,上文所描述的概率初始化过程及概率更新过程)两者可对上下文的极限概率强加相同限制,由此可能避免上下文的高度歪斜概率。作为一个实例,概率更新过程可使用以下关系来执行:
[0159]iPO- = ((iPO-偏移)>>ALPHA0);
[0160]iPO+ = (((32767-偏移)-1P0)?ALPHA0),
[0161]其中ALPHAO为常数。
[0162]在这些实例中,上文所展示的函数或关系可被称作“存储器衰减指数”函数。例如,特定指数函数的渐近值(即,最低或最高可能值)系通过“偏移”值来控管。例如,“偏移”值对于上文所描述的初始化过程与更新过程两者可为相同的。
[0163]作为另一实例,先前所描述的关系
[0164]Int c = asCtxInit[0]+asCtxInit[I]*(iQp-1QPreper)
[0165]可提供符号(例如,二进制)的值为“O”的概率,而不提供符号的值为“I”的概率。
[0166]作为一个实例,以下初始化函数或关系可用以获得符号的值为“I”的概率:
[0167]iPO = 32768_min(max(l+偏移,c),32767-偏移)
[0168]其中概率的含义反转。换句话说,上述关系提供值“ I”(即,“ I”或100%的概率)减去使用先前所描述的关系导出的概率:[0169]iPO = min (max (1+偏移,c),32767-偏移)
[0170]此外,在此实例中,“32768”可为最大概率,其可等效于概率“I”(即,100%概率)。
[0171]另外,本发明也描述用于进行以下操作的技术:基于初始化参数及与视频数据相关联的QP值,确定用于初始化用以译码视频数据的上下文自适应性熵译码过程的上下文的初始上下文状态,初始化参数定义各自对应于三个或三个以上参考QP值中的一相应参考QP值的三个或三个以上参考上下文状态;以及基于初始上下文状态而初始化上下文自适应性熵译码过程的上下文。
[0172]例如,如上文所解释,在H.264/AVC及HEVC的某些草案版本中,基于线性导出方法或关系而确定上下文的初始上下文状态。方法使用两个初始化参数(即,“m”及“n”),初始化参数中的每一者使用至少8个数据位来表示。线性关系或等式使用这些两个初始化参数来导出(例如)H.264/AVC中允许的126个上下文状态中的一者作为上下文的初始上下文状态。
[0173]本发明的技术的开发已论证:非线性模型或关系相较于用于初始化上下文的线性关系(例如,上文参看H.264/AVC及HEVC描述的线性关系)来说可能更有效。明确地说,与使用线性关系确定的初始概率相比较,非线性关系可导致上下文的相对更准确的初始概率。因此,本发明提议使用非线性或部分非线性方法或关系来确定上下文的初始上下文状态(例如,使用有限数目个数据位)。在一些实例中,与上文所描述的H.264/AVC及HEVC技术中所使用的数据位的数目相比较,技术提议使用相同数目个数据位或较少数目个数据位(即,16个数据位或较少数据位)。
[0174]作为一个实例,16个数据位可用以确定上下文的初始上下文状态。16个位的使用可被划分成三个部分。第一部分可包含6个位,从而提供给定QP值下的上下文状态(例如,QP =“26”)。应注意,此上下文状态值经量化,使得2个毗连上下文状态共享相同的经量化的上下文状态(例如,这是由于6位的位深度提供必须用信号发送126个上下文状态中的一者的64个索引)。第二部分可包含5个位,从而提供第二 QP值下的上下文状态(例如,先前QP减去“8”)。再次,此上下文状态可为经量化的上下文状态,这是由于5位的位深度提供必须用信号发送126个上下文状态中的一者的32个索引。在此实例中,4个上下文状态共享相同的经量化的上下文状态。最终,16个位的第三部分可包含5个剩余位,5个剩余位指示第三QP值下的上下文状态(例如,第一 QP加上“8”)。
[0175]因此,此实例的初始化参数可包含16个数据位,例如,InitParam= [X1X2X3IL在此实例中,“x3 ”可使用运算“x3 = (InitParam&31)”来获得。类似地,“ X2 ”可使用运算“x2=((InitParam?5)&3l) ” 来获得,且“x/’可使用运算aX1 = (InitParam>>10) ” 来获得。以这个方式,参数“InitParam”含有初始上下文状态导出所需的参数。再次,在此实例中,“》”指示向右移位运算,且“指示逻辑与运算。
[0176]经量化的上下文状态的使用总共16个数据位的这些三个值(即,“x/’、“x2”及“X3”)提供可用于将上下文的上下文状态内插到QP值的其余部分的三个点(例如,值“对”,每一对包含“χι”、“χ2”及“χ3”中的一者及对应的QP值)。换句话说,参考上下文状态值“χ/’、“χ2”及“χ3”以及对应的参考QP值可用以通过以下操作来确定上下文的初始上下文状态:在参考值当中内插,且使用与正经译码的数据相关联的实际QP确定上下文的初始上下文状态。[0177]作为一个实例,上文所描述的确定可使用双线性近似(例如,仿样函数)来执行。
例如,可使用以下关系:
[0178]
if QP < 26
ilnitState = (QP - 26W1- xo)/8 + χι;
else
iInilStalc = (QP - 26);::(x^ - x i)/8 + X|:
end
[0179]在此实例中,“x/’、“x2”及“x3”含有三个不同QP下的上下文状态的值(即,分别为“26”、“18”及“34”)。此外,如果变数“X” (即,“x/’、“x2”及“x3”)并不含有正确位深度的值,那么如上文所解释,执行一些位向左移位运算可为必要的。
[0180]另外,除以“8”的运算可作为位向右移位运算来执行。在这些例子中,此实例的技
术可使用以下表达式来实施:
[0181]
if QP < 26
ilnilSlalc = (QP - 26)::;((xl?1) - (X2?2))?3 + (X1CCl);
L,ISL
ilnilSlalc = (QP - 26)::;((x:K<2) - (X|<<l))?3 + (X|?l);
[0182]
end
[0183]上述表达式可以具有6个位的精确度的“Xl”以及各自具有5个位的精确度的“x2”及“X3”为前提。在一些实例中,为了在除以“8”时舍位到最接近的整数(例如,代替简单地舍位到较低整数),也可在表达式中在向右移位运算之前包含“4”的加法。因此,如果值经定义以支持其它位长度,那么可使用对这些表达式的轻微修改。
[0184]使用上文所描述的技术,可在无乘法或除法的情况下执行用于确定初始上下文状态的双线性内插。此简明实施方案为可能的,这是因为所使用的QP值之间的差为“2”的幂。
[0185]在其它实例中,也可使用其它QP值。另外,也可使用用于经量化的上下文状态的三个值中的每一者的其它位深度分布。另外,可使用3个以上点(例如,4或4个以上点),从而函数为多重线性的(即,将若干线性部分合在一起)。
[0186]在再其它实例中,三个点可用以拟合抛物线(例如,二阶多项式)以确定其它QP下的上下文状态。类似地,在其它实例中,四个点可用以拟合三阶多项式。
[0187]另外,也可在上文所描述的非线性上下文状态导出过程之后包含(例如)使用下文所展示的表达式执行的截割运算,以便避免不允许的上下文状态值(例如,需要7个以上数据位来表示每一值的上下文状态值)。
[0188]ilnitState = min (max (I, ilnitState),126)
[0189]因此,在与本发明的技术一致的一些实例中,源装置12的视频编码器20可经配置以编码数据,例如一或多个视频数据块(例如,CU的一或多个TU),且目的地装置14的视频解码器30可经配置以从视频编码器20接收经编码数据,例如,经编码的一或多个视频数据块。在其它实例中,如上文所描述,本发明的技术可适用于使用上下文自适应性熵译码来译码(例如)不同于视频数据的广泛多种数据中的任一者。因而,在与所揭示技术一致的一些实例中,视频编码器20和/或视频解码器30可为不同于如此实例中所说明的视频编码及解码装置的其它编码及解码装置。
[0190]作为一个实例,视频编码器20和/或视频解码器30可经配置以用于上下文自适应性熵译码。在此实例中,视频编码器20及视频解码器30中的一或多者可包含译码器(例如,熵编码单元56或熵解码单元80),译码器经配置以基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程(例如,CABAC、SBAC、PIPE或另一过程)的一或多个初始化参数。例如,如下文将更详细描述,视频编码器20和/或视频解码器30可经配置以通过以下操作来确定一或多个初始上下文状态:将一或多个初始化参数索引值映射到一或多个表中的一或多个初始化参数(即,基于一或多个初始化参数索引值而识别一或多个表中的一或多个初始化参数);或使用一或多个初始化参数索引值及一或多个公式来计算一或多个初始化参数。
[0191]视频编码器20和/或视频解码器30可经进一步配置以基于一或多个初始化参数而确定用于初始化上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态。例如,视频编码器20和/或视频解码器30可经配置以使用一或多个初始化参数及关系(例如,上文参看H.264/AVC及HEVC的某些草案版本所描述的线性关系)来确定一或多个初始上下文状态。另外,视频编码器20和/或视频解码器30可经更进一步配置以基于一或多个初始上下文状态而初始化上下文自适应性熵译码过程的一或多个上下文。例如,视频编码器20和/或视频解码器30可经配置以通过指派一或多个初始上下文状态中的一对应的初始上下文状态作为相应上下文的目前上下文状态来初始化一或多个上下文中的每一者。
[0192]因此,本发明的技术可使视频编码器20和/或视频解码器30能够在用以译码数据(例如,上文所描述的视频数据)时,与用以译码类似数据的其它系统相比较来说具有相对较低的复杂性。明确地说,技术可减小存储于视频编码器20和/或视频解码器30内和/或传输到视频编码器20和/或视频解码器30或从视频编码器20和/或视频解码器30传输的信息的量。另外,如下文参看图6到8更详细描述,本发明的技术也可使视频编码器20和/或视频解码器30能够相对于其它技术更有效率地译码数据。以这个方式,在使用本发明的技术时,可存在用以译码数据的视频编码器20和/或视频解码器30的复杂性的相对降低,和包含经译码数据的经译码位流的相对位节省。
[0193]视频编码器20及视频解码器30各自可实施为广泛多种合适编码器或解码器电路中的任一者(在适用时),例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑电路、软件、硬件、固件或其任何组合。视频编码器20及视频解码器30中的每一者可包含于一或多个编码器或解码器中,其中编码器或解码器中的任一者可集成为组合式视频编码器/解码器(例如,视频“CODEC”)的部分。包含视频编码器20和/或视频解码器30的设备可包括集成电路(IC)、微处理器和/或无线通信装置(例如,蜂窝式电话)。
[0194]图2为说明与本发明的技术一致的视频编码器的实例的框图,视频编码器可实施用于上下文自适应性熵译码的上下文状态及概率初始化的技术。视频编码器20可执行视频切片内的视频块的帧内译码及帧间译码。帧内译码依赖于空间预测以减小或去除给定视频帧或图片内的视频的空间冗余。帧间译码依赖于时间预测以减小或去除视频序列的邻近帧或图片内的视频的时间冗余。帧内模式(I模式)可指若干基于空间的压缩模式中的任一者。例如单向预测(P模式)或双向预测(B模式)的帧间模式可指若干基于时间的压缩模式中的任一者。
[0195]在图2的实例中,视频编码器20包含分割单元35、预测模块41、参考图片存储器64、求和器50、变换模块52、量化单元54和熵编码单元56。预测模块41包含运动估计单元
42、运动补偿单元44和帧内预测模块46。对于视频块重构建,视频编码器20也包含反量化单元58、反变换模块60和求和器62。也可包含解块滤波器(图2中未展示)以对块边界进行滤波以从经重构建的视频去除块效应伪影。在需要时,解块滤波器通常将对求和器62的输出进行滤波。除解块滤波器之外,也可使用额外环路滤波器(环路内或环路后)。
[0196]如图2中所展示,视频编码器20接收视频数据,且分割单元35将数据分割成视频块。此分割也可包含到切片、数据块或其它较大单元的分割,以及视频块分割(例如,根据LCU及CU的四叉树结构)。视频编码器20大体上说明编码待编码的视频切片内的视频块的组件。可将切片划分成多个视频块(且可能划分成被称作数据块的视频块集合)。预测模块41可基于误差结果(例如,译码速率及失真级别)而选择多个可能译码模式中的一者(例如,多个帧内译码模式中的一者或多个帧间译码模式中的一者)用于当前视频块。预测模块41可将所得经帧内译码或经帧间译码块提供到求和器50以产生残余块数据,且提供到求和器62以重构建用作参考图片的经编码块。
[0197]预测模块41内的帧内预测模块46可执行相对于与待译码的当前块相同的帧或切片中的一或多个相邻块的当前视频块的帧内预测性译码以提供空间压缩。预测模块41内的运动估计单元42及运动补偿单元44执行相对于一或多个参考图片中的一或多个预测性块的当前视频块的帧间预测性译码以提供时间压缩。
[0198]运动估计单元42可经配置以根据视频序列的预定型样确定视频切片的帧间预测丰旲式。预定型样可将序列中的视频切片指定为P切片、B切片或GPB切片。运动估计单兀42与运动补偿单元44可高度集成,但出于概念的目的而分别地予以说明。由运动估计单元42执行的运动估计为产生估计视频块的运动的运动向量的过程。运动向量(例如)可指示当前视频帧或图片内的视频块的PU相对于参考图片内的预测性块的位移。
[0199]预测性块为发现与待译码的视频块的在像素差方面紧密匹配的块,可通过绝对差总和(SAD)、平方差总和(SSD)或其它不同度量来确定像素差。在一些实例中,视频编码器20可计算存储于参考图片存储器64中的参考图片的子整数像素位置的值。例如,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分率像素位置的值。因此,运动估计单元42可执行相对于全像素位置及分率像素位置的运动搜寻,且输出具有分率像素精确度的运动向量。
[0200]运动估计单元42通过比较经帧间译码切片中的视频块的PU的位置与参考图片的预测性块的位置而计算PU的运动向量。参考图片可选自第一参考图片列表(列表O)或第二参考图片列表(列表I),列表中的每一者识别存储于参考图片存储器64中的一或多个参考图片。运动估计单元42将所计算运动向量发送到熵编码单元56及运动补偿单元44。
[0201]由运动补偿单元44执行的运动补偿可涉及基于通过运动估计(可能执行到子像素精确度的内插)确定的运动向量而取得或产生预测性块。在接收到当前视频块的PU的运动向量后,运动补偿单元44便可将运动向量所指向的预测性块定位于参考图片列表中的一者中。视频编码器20通过从正经译码的当前视频块的像素值减去预测性块的像素值来形成残余视频块,从而形成像素差值。像素差值形成块的残余数据,且可包含亮度差分量与色度差分量两者。求和器50表示执行此减法运算的一或多个组件。运动补偿单元44也可产生与视频块及视频切片相关联的供视频解码器30用于解码视频切片的视频块中的语法元素。
[0202]作为由运动估计单元42及运动补偿单元44执行的帧间预测(如上文所描述)的替代,帧内预测模块46可对当前块进行帧内预测。明确地说,帧内预测模块46可确定使用帧内预测模式以编码当前块。在一些实例中,帧内预测模块46可(例如)在单独编码遍次期间使用各种帧内预测模式编码当前块,且帧内预测模块46(或在一些实例中,模式选择单元40)可从所测试模式中选择使用适当帧内预测模式。例如,帧内预测模块46可使用关于各种所测试帧内预测模式的速率-失真分析计算速率-失真值,且在所测试模式当中选择具有最佳速率-失真特性的帧内预测模式。速率-失真分析大体上确定经编码块与经编码以产生经编码块的原始的未经编码块之间的失真(或误差)的量,以及用以产生经编码块的速率(即,位数目)。帧内预测模块46可从失真及速率计算各种经编码块的比率以确定哪一帧内预测模式展现块的最佳速率-失真值。
[0203]在任何状况下,在选择块的帧内预测模式之后,帧内预测模块46可将指示块的所选定帧内预测模式的信息提供到熵编码单元56。熵编码单元56可在所传输位流中编码指示所选定帧内预测模式的信息。
[0204]在预测模块41经由帧间预测或帧内预测产生当前视频块的预测性块之后,视频编码器20通过从当前视频块减去预测性块而形成残余视频块。残余块中的残余视频数据可包含于一或多个TU中且应用于变换模块52。变换模块52使用例如离散余弦变换(DCT)或概念上类似的变换的变换将残余视频数据变换成残余变换系数。变换模块52可将残余视频数据从像素域转换到变换域,例如,频域。
[0205]变换模块52可将所得变换系数发送到量化单元54。量化单元54使变换系数量化以进一步减小速率。量化过程可减小与系数中的一些或全部相关联的位深度。可通过调整量化参数而修改量化程度。在一些实例中,量化单元54可接着执行包含经量化的变换系数的矩阵的扫描。替代地,熵编码单元56可执行扫描。
[0206]在量化之后,熵编码单元56熵编码经量化的变换系数。例如,熵编码单元56可执行CAVLC、CABAC、SBAC、PIPE或另一熵编码方法或技术。在由熵编码单元56进行熵编码之后,可将经编码位流传输到视频解码器30或加以存档以供稍后传输或由视频解码器30检索。熵编码单元56也可熵编码正经译码的当前视频切片的运动向量及其它语法元素。
[0207]反量化单元58及反变换模块60分别应用反量化及反变换,以在像素域中重构建残余块以供稍后用作参考图片的参考块。运动补偿单元44可通过将残余块加到参考图片列表中的一者内的参考图片中的一者的预测性块来计算参考块。运动补偿单元44也可将一或多个内插滤波器应用于经重构建的残余块以计算子整数像素值以供用于运动估计中。求和器62将经重构建的残余块加到由运动补偿单元44产生的经运动补偿的预测块,以产生参考块以用于存储于参考图片存储器64中。参考块可由运动估计单元42及运动补偿单元44用作参考块以对后续视频帧或图片中的块进行帧间预测。[0208]作为一个实例,包含熵编码单元56的设备(例如,图1的源装置12的视频编码器20)可经配置以用于上下文自适应性熵译码。例如,设备可经配置以执行上文所描述的CABAC、SBAC或PIPE过程以及任何其它上下文自适应性熵译码过程中的任一者。在此实例中,熵编码单元56可经配置以基于一或多个初始化参数索引值(例如,上文也参看图1所描述的一或多个“idx_m”及“idx_n”值)而确定用于上下文自适应性熵译码过程(例如,CABAC过程)的一或多个初始化参数(例如,上文参看图1及图2所描述的一或多个“m”及“η”参数)。另外,熵编码单元56可经进一步配置以基于一或多个初始化参数而确定用于初始化上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态。熵编码单元56可经更进一步配置以基于一或多个初始上下文状态而初始化上下文自适应性熵译码过程的一或多个上下文。
[0209]在一些实例中,一或多个初始化参数可包含于一或多个表中。在这些实例中,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵编码单元56可经配置以将一或多个初始化参数索引值映射到一或多个表中的一或多个初始化参数。换句话说,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵编码单元56可经配置以基于一或多个初始化参数索引值而识别一或多个表中的一或多个初始化参数。
[0210]替代地,在其它实例中,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵编码单元56可经配置以使用一或多个初始化参数索引值及一或多个公式来计算一或多个初始化参数。在这些实例中,一或多个公式中的每一者可仅使用各自选自由以下各者组成的组群的一或多个运算来实施:位移位运算、加法运算、减法运算、乘法运算和除法运算。
[0211]在再其它实例中,一或多个初始化参数可包含一或多个斜率值及一或多个交叉值,且一或多个初始化参数索引值可包含一或多个斜率索引值及一或多个交叉索引值。在这些实例中,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵编码单元56可经配置以基于一或多个斜率索引值而确定一或多个斜率值,且基于一或多个交叉索引值而确定一或多个交叉值。
[0212]替代地,在一些实例中,一或多个初始化参数可包含一或多个斜率值及一或多个交叉值。在这些实例中,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵编码单元56可经配置以基于一或多个初始化参数索引值中的单一初始化参数索引值而确定一或多个斜率值中的至少一者及一或多个交叉值中的至少一者。
[0213]在上文所描述的实例中,一或多个初始化参数索引值中的单一初始化参数索引值可包含一或多个斜率索引值分量及一或多个交叉索引值分量。在这些实例中,为了基于一或多个初始化参数索引值中的单一初始化参数索引值而确定一或多个斜率值中的至少一者及一或多个交叉值中的至少一者,熵编码单元56可经配置以基于一或多个斜率索引值分量而确定一或多个斜率值中的至少一者,且基于一或多个交叉索引值分量而确定一或多个交叉值中的至少一者。
[0214]此外,在这些实例中,为了基于一或多个斜率索引值分量而确定一或多个斜率值中的至少一者,且为了基于一或多个交叉索引值分量而确定一或多个交叉值中的至少一者,熵编码单元56可经配置以使用一或多个位移位运算来确定一或多个初始化参数索引值中的单一初始化参数索引值的一或多个斜率索引值分量和一或多个交叉索引值分量中的一者,且使用一或多个逻辑与运算来确定一或多个初始化参数索引值中的单一初始化参数索引值的一或多个斜率索引值分量和一或多个交叉索引值分量中的另一者。
[0215]在再其它实例中,一或多个初始化参数索引值中的单一初始化参数索引值可包含预定数目个位。在这些实例中,一或多个斜率索引值分量和一或多个交叉索引值分量中的每一者可包含预定数目个位的相应子集。同样,在这些实例中,对应于一或多个斜率索引值分量的子集中的每一者所包含的预定数目个位的数目可不同于对应于一或多个交叉索引值分量的子集中的每一者所包含的预定数目个位的数目。
[0216]另外,在一些实例中,上下文自适应性熵译码过程的一或多个上下文可包含上下文自适应性熵译码过程的上下文的子集。例如,子集可对应于与使用上下文自适应性熵译码过程译码的视频数据相关联的语法类型。在一些实例中,语法类型可包含与视频数据相关联的以下各者中的一或多者:分量类型、块大小、变换大小、预测模式、运动信息和变换系数信息。
[0217]在其它实例中,包含熵编码单元56的设备(例如,图1的源装置12的视频编码器20)可配置为视频编码器。在这些实例中,视频编码器可经配置以基于上下文自适应性熵译码过程的经初始化的一或多个上下文而编码与视频数据块相关联的一或多个语法元素,且在位流中输出经编码的一或多个语法元素。在一些实例中,如先前所描述,包含熵编码单元56的设备(例如,图1的源装置12的视频编码器20)可包含以下各者中的至少一者:集成电路、微处理器和及包含熵编码单元56的无线通信装置。
[0218]如下文参看图5到8更详细描述,在其它实例中,视频编码器20或其各种组件(例如,熵编码单元56)可经配置以执行关于用于上下文自适应性熵译码的上下文状态及概率初始化的其它技术。例如,下文参看图5所描述的技术(其类似于此实例的技术)及下文参看图6到8所描述的额外技术可由视频编码器20或其任何组件个别地或以任何组合来执行。作为一个实例,可结合关于基于一或多个初始化参数索引值而初始化用以译码数据的上下文自适应性熵译码过程的上下文的此实例(及图5的实例)的技术来执行额外技术中的一或多者。明确地说,下文参看图6到8所描述的技术涉及初始化上下文自适应性熵译码过程的一或多个上下文,包含确定指示上下文的初始概率的上下文的初始上下文状态,或直接确定上下文的初始概率,使得初始概率相对于使用其它技术所确定的初始概率来说更准确。
[0219]因此,如由上述实例说明,且如将由图5到8的实例展示,本发明的技术可使得视频编码器20或其任何组件能够相较于使用其它方法时的情况来说更有效率地编码各种类型的数据(例如,上文所描述的视频数据)。作为一个实例,如由上述实例说明(且如将由图5的实例展示),所述技术可使视频编码器20能够在使用上下文自适应性熵译码过程编码数据时,相对于其它系统来说具有较低复杂性。例如,出于初始化上下文自适应性熵译码过程的一或多个上下文的目的,所述技术可减小存储于视频编码器20内和/或从视频编码器20传输到视频解码器(例如,视频解码器30)的信息的量(例如,数据位的数目)。明确地说,可通过存储和/或传输指示用以初始化上下文的初始化参数的初始化参数索引值而非直接存储和/或传输初始化参数来减小所存储信息的量。
[0220]在一些实例中,可通过定义初始化参数索引值使得使用比初始化参数少的信息(例如,较少数据位)表示初始化参数索引值而减小所存储信息的量。因此,初始化参数索引值可对应于初始化参数的仅一子集。以这个方式,如通过初始化参数索引值指示,可使用少于全部的初始化参数初始化上下文。例如,可使用共同初始化参数来初始化上下文中的一些上下文。尽管如此,如上文所描述的存储于视频编码器20内且在一些状况下从视频编码器20传输到视频解码器的减小量的信息可在价值上超过与使用初始化参数的子集而非所有初始化参数相关联的任何不利效应(例如,上下文的初始概率相较于使用所有初始化参数所确定的初始概率来说相对较不准确,其中每一上下文是使用独特的一或多个初始化参数来初始化)。
[0221]以这个方式,在一些实例中,指示初始化参数子集的初始化参数索引值及初始化参数子集自身可存储于视频编码器20内,由此有可能减小存储于视频编码器20内的信息的量。例如,在一些状况下,因为初始化参数索引值可使用比初始化参数少的信息来表示,且因为初始化参数索引值可对应于初始化参数的仅一子集,所以相对于在视频编码器20内存储所有初始化参数将需要的信息的量来说,可减小在视频编码器20内用以存储初始化参数索引值及初始化参数子集的总信息量(例如,总数据位数目)。此外,在其它状况下,可将初始化参数索引值而非初始化参数从视频编码器20传输到视频解码器,由此减小从视频编码器20传输到视频解码器的总信息量。
[0222]作为另一实例,如将通过图6到8的实例展示,当视频编码器20经配置以使用上下文自适应性熵译码过程编码数据时,本发明的技术可改进数据的压缩。例如,所述技术可通过以下操作来改进数据的压缩:使视频编码器20或其任何组件能够初始化上下文自适应性熵译码过程的一或多个上下文,使得一或多个上下文包含与使用其它上下文初始化技术所确定的初始概率相比较来说相对更准确的初始概率。另外,在一些实例中,技术可通过以下操作来进一步改进数据的压缩:使得视频编码器20或其任何组件能够随后更新上下文的概率,使得更新的概率与使用其它上下文概率更新技术所更新的概率相比较来说更准确。
[0223]因此,当使用本发明的技术时,可存在用于包含经编码数据的经译码位流的相对位节省,及在一些状况下,从视频编码器20传输到视频解码器(例如,视频解码器30)的初始化参数索引值的相对位节省,及用以编码数据的视频编码器20的复杂性的相对减小。
[0224]以这个方式,视频编码器20表示用于上下文自适应性熵译码的设备的实例,设备包括译码器,译码器经配置以:基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数,基于一或多个初始化参数而确定用于初始化上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态,以及基于一或多个初始上下文状态而初始化上下文自适应性熵译码过程的一或多个上下文。
[0225]图3为说明与本发明的技术一致的视频解码器的实例的框图,视频解码器可实施用于上下文自适应性熵译码的上下文状态及概率初始化的技术。在图3的实例中,视频解码器30包含熵解码单元80、预测模块81、反量化单元86、反变换模块88、求和器90和参考图片存储器92。预测模块81包含运动补偿单元82和帧内预测模块84。在一些实例中,视频解码器30可执行大体上与关于来自图2的视频编码器20所描述的编码遍次互逆的解码遍次。
[0226]在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频切片的视频块和相关联的语法元素的经编码视频位流。视频解码器30的熵解码单元80熵解码位流以产生经量化的系数、运动向量及其它语法元素。熵解码单元80将运动向量及其它语法元素转递到预测模块81。视频解码器30可在视频切片层级和/或视频块层级接收语法元素。
[0227]在视频切片经译码为经帧内译码(I)切片时,预测模块81的帧内预测模块84可基于用信号发送的帧内预测模式及来自当前帧或图片的先前经解码块的数据而产生用于当前视频切片的视频块的预测数据。在视频帧经译码为经帧间译码(即,B、P或GPB)切片时,预测模块81的运动补偿单元82基于运动向量及从熵解码单元80所接收的其它语法元素而产生用于当前视频切片的视频块的预测性块。预测性块可从参考图片列表中的一者内的参考图片中的一者产生。视频解码器30可基于存储于参考图片存储器92中的参考图片使用默认构建技术构建参考帧列表(列表O及列表I)。
[0228]运动补偿单元82通过剖析运动向量和其它语法元素而确定当前视频切片的视频块的预测信息,且使用预测信息产生用于正经解码的当前视频块的预测性块。例如,运动补偿单元82使用一些所接收语法元素确定用以译码视频切片的视频块的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、用于切片的参考图片列表中的一或多者的构建信息、用于切片的每一经帧间编码视频块的运动向量、切片的每一经帧间译码视频块的帧间预测状态和用以解码当前视频切片中的视频块的其它信息。
[0229]运动补偿单元82也可基于内插滤波器而执行内插。运动补偿单元82可使用如由视频编码器20在视频块的编码期间使用的内插滤波器,来计算用于参考块的子整数像素的内插值。在此状况下,运动补偿单元82可从所接收语法元素确定由视频编码器20使用的内插滤波器且使用内插滤波器来产生预测性块。
[0230]反量化单元86使提供于位流中且由熵解码单元80解码的经量化的变换系数反量化(即,解量化)。反量化过程可包含使用由视频编码器20针对视频切片中的每一视频块计算的量化参数,以确定量化程度及(同样地)应应用的反量化的程度。反变换模块88将反变换(例如,反DCT、反整数变换或概念上类似的反变换过程)应用于变换系数,以便在像素域中产生残余块。
[0231]在运动补偿单元82基于运动向量及其它语法元素而产生用于当前视频块的预测性块之后,视频解码器30通过将来自反变换模块88的残余块与由运动补偿单元82产生的对应预测性块求和来形成经解码视频块。求和器90表示执行此求和运算的一或多个组件。在需要时,也可应用解块滤波器以对经解码块滤波以便去除块效应伪影。也可使用其它环路滤波器(译码环路中或译码环路后)来使像素转变平滑,或以其它方式改进视频质量。接着将给定帧或图片中的经解码视频块存储于参考图片存储器92中,参考图片存储器92存储用于后续运动补偿的参考图片。参考图片存储器92也存储经解码视频以供稍后呈现于显示装置(例如,图1的显示装置28)上。
[0232]作为一个实例,包含熵解码单元80的设备(例如,图1的目的地装置14的视频解码器30)可被配置用于上下文自适应性熵译码。例如,设备可经配置以执行上文所描述的CABAC、SBAC或PIPE过程中的任一者。在此实例中,熵解码单元80可经配置以基于一或多个初始化参数索引值(例如,上文也参看图1所描述的一或多个“idx_m”及“idx η”值)而确定用于上下文自适应性熵译码过程(例如,CABAC过程)的一或多个初始化参数(例如,上文参看图1及图2所描述的一或多个“m”及“η”参数)。另外,熵解码单元80可经进一步配置以基于一或多个初始化参数而确定用于初始化上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态。熵解码单元80可经更进一步配置以基于一或多个初始上下文状态而初始化上下文自适应性熵译码过程的一或多个上下文。
[0233]在一些实例中,一或多个初始化参数可包含于一或多个表中。在这些实例中,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵解码单元80可经配置以将一或多个初始化参数索引值映射到一或多个表中的一或多个初始化参数。换句话说,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵解码单元80可经配置以基于一或多个初始化参数索引值而识别一或多个表中的一或多个初始化参数。
[0234]替代地,在其它实例中,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵解码单元80可经配置以使用一或多个初始化参数索引值及一或多个公式来计算一或多个初始化参数。在这些实例中,一或多个公式中的每一者可仅使用各自选自由以下各者组成的组群的一或多个运算来实施:位移位运算、加法运算、减法运算、乘法运算和除法运算。
[0235]在再其它实例中,一或多个初始化参数可包含一或多个斜率值和一或多个交叉值,且一或多个初始化参数索引值可包含一或多个斜率索引值和一或多个交叉索引值。在这些实例中,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵解码单元80可经配置以基于一或多个斜率索引值而确定一或多个斜率值,且基于一或多个交叉索引值而确定一或多个交叉值。
[0236]替代地,在一些实例中,一或多个初始化参数可包含一或多个斜率值和一或多个交叉值。在这些实例中,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵解码单元80可经配置以基于一或多个初始化参数索引值中的单一初始化参数索引值而确定一或多个斜率值中的至少一者和一或多个交叉值中的至少一者。
[0237]在上文所描述的实例中,一或多个初始化参数索引值中的单一初始化参数索引值可包含一或多个斜率索引值分量和一或多个交叉索引值分量。在这些实例中,为了基于一或多个初始化参数索引值中的单一初始化参数索引值而确定一或多个斜率值中的至少一者和一或多个交叉值中的至少一者,熵解码单元80可经配置以基于一或多个斜率索引值分量而确定一或多个斜率值中的至少一者,且基于一或多个交叉索引值分量而确定一或多个交叉值中的至少一者。
[0238]此外,在这些实例中,为了基于一或多个斜率索引值分量而确定一或多个斜率值中的至少一者,且为了基于一或多个交叉索引值分量而确定一或多个交叉值中的至少一者,熵解码单元80可经配置以使用一或多个位移位运算来确定一或多个初始化参数索引值中的单一初始化参数索引值的一或多个斜率索引值分量和一或多个交叉索引值分量中的一者,且使用一或多个逻辑与运算来确定一或多个初始化参数索引值中的单一初始化参数索引值的一或多个斜率索引值分量和一或多个交叉索引值分量中的另一者。
[0239]在再其它实例中,一或多个初始化参数索引值中的单一初始化参数索引值可包含预定数目个位。在这些实例中,一或多个斜率索引值分量和一或多个交叉索引值分量中的每一者可包含预定数目个位的相应子集。同样,在这些实例中,对应于一或多个斜率索引值分量的子集中的每一者所包含的预定数目个位的数目可不同于对应于一或多个交叉索引值分量的子集中的每一者所包含的预定数目个位的数目。[0240]另外,在一些实例中,上下文自适应性熵译码过程的一或多个上下文可包含上下文自适应性熵译码过程的上下文的子集。例如,子集可对应于与使用上下文自适应性熵译码过程译码的视频数据相关联的语法类型。在一些实例中,语法类型可包含与视频数据相关联的以下各者中的一或多者:分量类型、块大小、变换大小、预测模式、运动信息和变换系数信息。
[0241 ] 在其它实例中,包含熵解码单元80的设备(例如,图1的目的地装置14的视频解码器30)可配置为视频解码器。在这些实例中,视频解码器可经配置以接收位流中与视频数据块相关联的一或多个经编码语法元素,且基于上下文自适应性熵译码过程的经初始化的一或多个上下文而解码一或多个经编码语法元素。
[0242]在一些实例中,如先前所描述,包含熵解码单元80的设备(例如,图1的目的地装置14的视频解码器30)可包含以下各者中的至少一者:集成电路、微处理器和包含熵解码单元80的无线通信装置。
[0243]以与上文参看图2所描述的方式及与下文参看图5到8所描述的方式类似的方式,在其它实例中,视频解码器30或其各种组件(例如,熵解码单元80)可经配置以执行关于用于上下文自适应性熵译码的上下文状态及概率初始化的其它技术。例如,下文参看图5所描述的技术(其类似于此实例的技术)及下文参看图6到8所描述的额外技术可由视频解码器30或其任何组件个别地或以任何组合来执行。作为一个实例,可结合关于基于一或多个初始化参数索引值而初始化用以译码数据的上下文自适应性熵译码过程的上下文的此实例(及图5的实例)的技术来执行额外技术中的一或多者。明确地说,下文参看图6到8所描述的技术涉及初始化上下文自适应性熵译码过程的一或多个上下文,包含确定指示上下文的初始概率的上下文的初始上下文状态,或直接确定上下文的初始概率,使得初始概率相对于使用其它技术所确定的初始概率来说更准确。
[0244]因此,如通过上述实例说明,且如将通过图5到8的实例展示,本发明的技术可使得视频解码器30或其任何组件能够相较于使用其它方法时的情况来说更有效率地解码各种类型的经编码数据(例如,上文所描述的经编码视频数据)。作为一个实例,如通过上述实例说明(且如将通过图5的实例展示),技术可使视频解码器30能够在使用上下文自适应性熵译码过程解码经编码数据时,相对于其它系统来说具有较低复杂性。例如,出于初始化上下文自适应性熵译码过程的一或多个上下文的目的,技术可减小存储于视频解码器30内和/或从视频编码器(例如,视频编码器20)传输到视频解码器30的信息的量。明确地说,可通过存储和/或传输指示用以初始化上下文的初始化参数的初始化参数索引值而非直接存储和/或传输初始化参数来减小信息的量。
[0245]以与上文参看图2所描述的方式类似的方式,在一些实例中,可通过定义初始化参数索引值使得使用比初始化参数少的信息表示初始化参数索引值而减小信息的量。因此,初始化参数索弓I值可对应于初始化参数的仅一子集。以这个方式,如通过初始化参数索引值指示,可使用少于全部的初始化参数来初始化上下文。例如,上下文中的一些上下文可使用共同初始化参数来初始化。尽管如此,如上文所描述的存储于视频解码器30内且在一些状况下从视频编码器传输到视频解码器30的减小量的信息可在价值上超过与使用初始化参数的子集而非所有初始化参数相关联的任何不利效应(例如,上下文的初始概率相较于使用所有初始化参数所确定的初始概率来说相对较不准确,其中每一上下文是使用独特的一或多个初始化参数来初始化)。
[0246]以这个方式,在一些实例中,指示初始化参数子集的初始化参数索引值及初始化参数子集自身可存储于视频解码器30内,由此有可能减小存储于视频解码器30内的信息的量。例如,在一些状况下,因为初始化参数索引值可使用比初始化参数少的信息来表示,且因为初始化参数索引值可对应于初始化参数的仅一子集,所以相对于在视频解码器30内存储所有初始化参数将需要的信息的量来说,可减小在视频解码器30内用以存储初始化参数索引值及初始化参数子集的总信息量。此外,在其它状况下,可将初始化参数索引值而非初始化参数从视频编码器传输到视频解码器30,由此减小从视频编码器传输到视频解码器30的总信息量。
[0247]作为另一实例,如将通过图6到8的实例展示,当视频编码器(例如,视频编码器20)经配置以使用上下文自适应性熵译码过程编码数据,且视频解码器30经配置以使用上下文自适应性熵译码过程解码经编码数据时,本发明的技术可改进数据的压缩。例如,所述技术可通过以下操作来改进数据的压缩:使得视频解码器30或其任何组件能够初始化上下文自适应性熵译码过程的一或多个上下文,使得一或多个上下文包含与使用其它上下文初始化技术所确定的初始概率相比较来说相对更准确的初始概率。另外,在一些实例中,技术可通过以下操作来进一步改进数据的压缩:使得视频解码器30或其任何组件能够随后更新一或多个上下文的概率,使得更新的概率与使用其它上下文概率更新技术所更新的概率相比较来说更准确。
[0248]因此,当使用本发明的技术时,可存在用于包含由视频解码器30或其任何组件解码的经编码数据的经译码位流的相对位节省,及在一些状况下,从视频编码器(例如,视频编码器20)传输到视频解码器30的初始化参数索引值的相对位节省,及用以解码经编码数据的视频解码器30的复杂性的相对减小。
[0249]以这个方式,视频解码器30表示用于上下文自适应性熵译码的设备的实例,设备包括译码器,译码器经配置以基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数,基于一或多个初始化参数而确定用于初始化上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态,以及基于一或多个初始上下文状态而初始化上下文自适应性熵译码过程的一或多个上下文。
[0250]图4为说明与本发明的技术一致的使用可调式视频译码(SVC)译码的经译码视频序列(CVS)的时间阶层的实例的概念图。如图4中所展示,CVS可包含以时间次序布置的多个视频帧(即,帧I到8),时间次序可被称作输出或“显示”次序。当使用SVC来译码CVS时,如图4中所描绘,CVS的帧中的一些帧(S卩,帧0、4及8)可译码于可被称作CVS的“基础层”的帧的子集中,而其它帧(即,帧I到3及5到7)可译码于CVS的帧的一或多个额外子集中,额外子集中的每一者可被称作CVS的“增强层”。例如,可传输CVS的基础层并在显示装置上显示CVS的基础层。另外,可结合基础层选择性地传输CVS的增强层中的一或多者并在相同显示装置上显示CVS的增强层中的一或多者。以这个方式,上文所描述的包括基础层及一或多个增强层的图4的CVS可被称作使用SVC译码的CVS。
[0251]如由图4的实例说明,使用SVC译码的CVS的特定视频帧可以阶层式结构译码。如图4中所展示,帧0、4及8可在特定时间层(例如,“层O”)中经译码,帧2及6可在另一时间层(例如,“层I”)中经译码,且剩余帧(即,帧1、3、5及7)可在又一时间层(例如,“层2”)中经译码。在图4的实例中,层O可被称作基础层,且层I及层2中的每一者可被称作增强层。此外,图4的帧之间的相依性可能并非对称的。换句话说,如通过图4中所展示的箭头指示,在较低时间层(例如,层O)中译码的帧可充当用于在较高时间层(例如,层I及层2)中译码的帧的参考帧。相反地,在较高时间层中译码的帧可能并不充当用于在较低时间层中译码的帧的参考帧。
[0252]根据本发明的技术,与例如使用SVC译码的CVS的视频帧的视频数据相关联的时间层可用以初始化用以译码视频数据的上下文自适应性熵译码过程(例如,CABAC过程)的一或多个上下文。例如,如上文参看图1到3所描述且如下文将参看图5到8的实例方法更详细描述,可使用时间层参数表示的与视频数据相关联的时间层可用作确定上下文自适应性熵译码过程的一或多个上下文的初始上下文状态的部分。以这个方式,本发明的技术在一些状况下可使得能够初始化一或多个上下文,使得通过一或多个上下文的初始上下文状态指示的初始概率相较于使用其它技术(例如,在使用上下文自适应性熵译码过程译码视频数据时并未考虑与视频数据相关联的时间层的技术)所确定的初始概率来说相对更准确。
[0253]图5到8为说明与本发明的技术一致的初始化上下文自适应性熵译码过程的一或多个上下文及概率的实例方法的流程图。明确地说,图5、图6及图8的实例方法的技术包含确定用以译码数据(例如,视频数据)的上下文自适应性熵译码过程(例如,CABAC过程)的一或多个上下文的初始上下文状态。另外,图7的实例方法的技术包含确定用以译码数据的上下文自适应性熵译码过程的一或多个上下文的初始概率值,以及基于数据而更新初始概率值。
[0254]图5到8的技术可大体上由任何处理单元或处理器来执行,而不管处理单元或处理器是以硬件、软件、固件或其组合而实施,且当处理单元或处理器以软件或固件来实施时,可提供对应硬件以执行用于软件或固件的指令。出于实例的目的,关于视频编码器20的熵编码单元56 (图2)和/或视频解码器30的熵解码单元80 (图3)来描述图5到8的技术,但应理解,其它装置可经配置以执行类似技术。此外,图5到8中所说明的步骤可按不同次序执行或并行地执行,且可在不脱离本发明的技术的情况下添加额外步骤且省略某些步骤。另外,与本发明的技术一致,图5到8的实例方法的技术可个别地或彼此组合地执行,包含依序地执行图5到8的实例方法的技术中的一或多者或与图5到8的实例方法的技术中的一或多个其它技术并行地执行图5到8的实例方法的技术中的一或多者。
[0255]在图5到8中的每一者的实例中,最初,熵编码单元56和/或熵解码单元80可接收视频数据块。例如,如先前所描述,块可包括宏块,或CU的TU。在一些实例中,熵编码单元56可使用上下文自适应性熵译码过程(例如,CABAC过程)来编码视频数据块。类似地,在其它实例中,在块为经编码视频数据块的例子中,熵解码单元80可使用与上文参看熵编码单元56所描述的上下文自适应性熵译码过程相同或类似的上下文自适应性熵译码过程来解码块。在再其它实例中,熵编码单元56和/或熵解码单元80可使用上下文自适应性熵译码过程来编码或解码其它类型的数据(例如,不同于视频数据的数据)。以这个方式,图5到8的实例方法可适用于经配置以使用上下文自适应性熵译码过程译码视频数据的包含视频编码器、视频解码器或其任何组合的任何译码系统。另外,图5到8的实例方法可适用于用于使用上下文自适应性熵译码过程译码包含不同于视频数据的数据的广泛多种数据中的任一者的技术。
[0256]图5为说明与本发明的技术一致的基于一或多个初始化参数索引值而初始化用以译码数据的上下文自适应性熵译码过程的一或多个上下文的实例方法的流程图。换句话说,图5的实例方法的技术包含使用一或多个初始化参数确定用以译码数据的上下文自适应性熵译码过程的一或多个上下文中的每一者的初始上下文状态,其中一或多个初始化参数是使用一或多个初始化参数索引值来确定。
[0257]作为一个实例,为了使用如上文所描述的上下文自适应性熵译码过程(例如,CABAC过程)译码视频数据块或其它类型的数据,熵编码单元56和/或熵解码单元80可基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数(500)。例如,一或多个初始化参数可对应于上文所描述的一或多个“m”及“η”参数。也如上文所描述,熵编码单元56和/或熵解码单元80可使用一或多个“m”及“η”参数的值,以(例如)使用上文参看H.264/AVC及HEVC的某些草案版本所描述的线性关系来确定上下文自适应性熵译码过程的上下文的初始上下文状态。此外,根据本发明的技术,一或多个初始化参数索引值可使用比用以表示一或多个初始化参数的值的信息量少的信息(例如,较少数据位)来表示。
[0258]在一个实例中,在一或多个初始化参数对应于一或多个“m”及“η”参数的状况下,一或多个“m”及“η”参数中的每一者的值可使用8个数据位来表示。因此,在此实例中,使用16个数据位来表示用以初始化特定上下文的每一 “m”及“η”参数值“对”。作为一个实例,在每一初始化参数索引值用以确定一或多个“m”及“η”参数中的一特定“m”及“η”参数的值的状况下,每一初始化参数索引值可使用4个数据位来表示,从而导致使用8个数据位来确定每一 “m”及“η”参数值对。作为另一实例,在每一初始化参数索引值用以确定一特定“m”及“η”参数值对的状况下,每一初始化参数索引值可使用8个数据位来表示,从而再次导致使用8个数据位来确定每一 “m”及“η”参数值对。
[0259]以这个方式,并非存储和/或传输16个数据位以便初始化特定上下文,而是仅存储和/或传输8个数据位。此外,因为一或多个初始化参数索引值可对应于所有可能初始化参数的仅一子集,所以可使用少于全部的可能初始化参数来初始化上下文。例如,上下文中的一些上下文可使用共同初始化参数来初始化。尽管如此,如上文所描述的所存储和/或所传输的信息的减小量可在价值上超过与使用初始化参数的子集而非所有可能初始化参数相关联的任何不利效应。
[0260]熵编码单元56和/或熵解码单元80可进一步基于一或多个初始化参数而确定用于初始化上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态(502)。例如,如先前所描述,编码单元56和/或熵解码单元80可使用一或多个关系(例如,上文参看H.264/AVC及HEVC的某些草案版本所描述的线性关系)基于一或多个初始化参数而确定一或多个初始上下文状态。
[0261 ] 熵编码单元56和/或熵解码单元80可更进一步基于一或多个初始上下文状态而初始化上下文自适应性熵译码过程的一或多个上下文(504)。例如,也如先前所描述,编码单元56和/或熵解码单元80可将一或多个上下文中的特定上下文的上下文状态定义为一或多个初始上下文状态中的对应初始上下文状态。也如先前所描述,一或多个上下文中的特定上下文的经初始化的上下文状态又可指示上下文的初始概率。[0262]在一些实例中,熵编码单元56和/或熵解码单元80可进一步基于上下文自适应性熵译码过程的经初始化的一或多个上下文而熵译码数据(例如,视频数据块或其它类型的数据)(506)。例如,熵编码单元56和/或熵解码单元80可通过基于上文所描述的经初始化的一或多个上下文而执行上下文自适应性熵译码过程来译码数据。如先前所描述,数据可包含例如视频数据块的视频数据,和/或任何其它类型的数据。另外,在其它实例中,熵编码单元56和/或熵解码单元80可更进一步基于数据而更新上下文自适应性熵译码过程的经初始化的一或多个上下文的上下文状态(508)。例如,熵编码单元56和/或熵解码单元80可基于数据(例如,基于数据的一或多个值)而更新如通过上文所描述的一或多个初始上下文状态指示的经初始化的一或多个上下文的初始概率。
[0263]在一些实例中,一或多个初始化参数可包含于一或多个表中。在这些实例中,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵编码单元56和/或熵解码单元80可将一或多个初始化参数索引值映射到一或多个表中的一或多个初始化参数。
[0264]在其它实例中,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵编码单元56和/或熵解码单元80可使用一或多个初始化参数索引值和一或多个公式来计算一或多个初始化参数。例如,一或多个公式中的每一者可仅使用各自选自由以下各者组成的组群的一或多个运算来实施:位移位运算、加法运算、减法运算、乘法运算和除法运算。
[0265]在再其它实例中,一或多个初始化参数可包含一或多个斜率值及一或多个交叉值,且一或多个初始化参数索引值可包含一或多个斜率索引值及一或多个交叉索引值。在这些实例中,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵编码单元56和/或熵解码单元80可基于一或多个斜率索引值而确定一或多个斜率值,且基于一或多个交叉索引值而确定一或多个交叉值。
[0266]在一些实例中,一或多个初始化参数可再次包含一或多个斜率值和一或多个交叉值。在这些实例中,为了基于一或多个初始化参数索引值而确定一或多个初始化参数,熵编码单元56和/或熵解码单元80可基于一或多个初始化参数索引值中的单一初始化参数索引值而确定一或多个斜率值中的至少一者和一或多个交叉值中的至少一者。换句话说,在一些实例中,每一初始化参数索引值可用以确定一或多个斜率值和一或多个交叉值。作为一个实例,可将每一初始化参数索引值映射到一或多个表中的一或多个斜率值和一或多个交叉值。作为另一实例,每一初始化参数索引值可用以基于一或多个公式而计算一或多个斜率值和一或多个交叉值。然而,在其它实例中,每一初始化参数索引值可包含可用以确定一或多个斜率值和一或多个交叉值的一或多个分量或“子集”,如下文更详细描述。
[0267]例如,在一些实例中,一或多个初始化参数索引值中的单一初始化参数索引值可包含一或多个斜率索引值分量及一或多个交叉索引值分量。在这些实例中,为了基于一或多个初始化参数索引值中的单一初始化参数索引值而确定一或多个斜率值中的至少一者及一或多个交叉值中的至少一者,熵编码单元56和/或熵解码单元80可基于一或多个斜率索引值分量而确定一或多个斜率值中的至少一者,且基于一或多个交叉索引值分量而确定一或多个交叉值中的至少一者。
[0268]此外,在其它实例中,为了基于一或多个斜率索引值分量而确定一或多个斜率值中的至少一者,且基于一或多个交叉索引值分量而确定一或多个交叉值中的至少一者,熵编码单元56和/或熵解码单元80可使用一或多个位移位运算来确定一或多个初始化参数索引值中的单一初始化参数索引值的一或多个斜率索引值分量和一或多个交叉索引值分量中的一者,且使用一或多个逻辑与运算来确定一或多个初始化参数索引值中的单一初始化参数索引值的一或多个斜率索引值分量和一或多个交叉索引值分量中的另一者。
[0269]在再其它实例中,一或多个初始化参数索引值中的单一初始化参数索引值可包含预定数目个位,其中一或多个斜率索引值分量和一或多个交叉索引值分量中的每一者包含预定数目个位的一相应子集。在一些实例中,对应于一或多个斜率索引值分量的子集中的每一者所包含的预定数目个位的数目可不同于对应于一或多个交叉索引值分量的子集中的每一者所包含的预定数目个位的数目。在其它实例中,对应于一或多个斜率索引值分量的子集中的每一者所包含的预定数目个位的数目可与对应于一或多个交叉索引值分量的子集中的每一者所包含的预定数目个位的数目相同。
[0270]另外,在一些实例中,上下文自适应性熵译码过程的一或多个上下文可包含上下文自适应性熵译码过程的上下文的子集。例如,子集可对应于与使用上下文自适应性熵译码过程译码的视频数据相关联的语法类型。在一些实例中,语法类型可包含与视频数据相关联的以下各者中的一或多者:分量类型、块大小、变换大小、预测模式、运动信息和变换系数信息。
[0271]以这个方式,图5的方法表示上下文自适应性熵译码的方法的实例,所述方法包括:基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数,基于一或多个初始化参数而确定用于初始化上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态,以及基于一或多个初始上下文状态而初始化上下文自适应性熵译码过程的一或多个上下文。
[0272]图6为说明与本发明的技术一致的基于与视频数据相关联的时间层而初始化用以译码视频数据的上下文自适应性熵译码过程的一或多个上下文的实例方法的流程图。换句话说,图6的实例方法的技术包含使用一或多个初始化参数及时间层参数来确定用以译码视频数据的上下文自适应性熵译码过程的一或多个上下文中的每一者的初始上下文状态,时间层参数指示与视频数据相关联的时间层。
[0273]作为一个实例,为了使用如上文所描述的上下文自适应性熵译码过程(例如,CABAC过程)译码视频数据块或其它类型的数据,熵编码单元56和/或熵解码单元80可基于一或多个初始化参数及与视频数据相关联的时间层参数而确定用于初始化用以译码视频数据的上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态(600)。例如,时间层参数可对应于用于视频数据的语法元素,其中语法元素的值指示与视频数据相关联的时间层。如上文参看图4所描述,与视频数据相关联的时间层可对应于在与视频数据相关联的时间阶层内的视频数据(例如,视频数据的特定视频帧)的位置。
[0274]以这个方式,如通过一或多个初始上下文状态指示的一或多个上下文的初始概率相较于使用其它技术(例如,在不考虑与视频数据相关联的时间层的情况下,确定用以译码视频数据的上下文自适应性熵译码过程的上下文的初始上下文状态的技术)所确定的上下文的初始概率来说可能相对更准确。
[0275]随后,如上文参看图5所描述,熵编码单元56和/或熵解码单元80可进一步基于一或多个初始上下文状态而初始化上下文自适应性熵译码过程的一或多个上下文(602)。另外,在一些实例中,以与上文参看图5所描述的方式类似的方式,熵编码单元56和/或熵解码单元80可进一步基于上下文自适应性熵译码过程的经初始化的一或多个上下文而熵译码视频数据(604),且在一些状况下,基于视频数据而更新上下文自适应性熵译码过程的经初始化的一或多个上下文的上下文状态(606)。
[0276]在一些实例中,视频数据可包含视频数据帧及视频数据帧的切片中的一者。在这些实例中,时间层参数可包含相应视频数据帧的时间层。
[0277]在其它实例中,为了基于一或多个初始化参数及时间层参数而确定一或多个初始上下文状态,熵编码单元56和/或熵解码单元80可基于以下各者而确定一或多个初始上下文状态:一或多个初始化参数,和基于时间层参数而变化的偏移参数及基于时间层参数而变化的初始化量化参数值中的一者。
[0278]在一些实例中,为了基于一或多个初始化参数及偏移参数而确定一或多个初始上下文状态,熵编码单元56和/或熵解码单元80可使用偏移参数来修改与视频数据相关联的量化参数值。在其它实例中,偏移参数及初始化量化参数值中的一或多者中的每一者可进一步基于以下各者中的一或多者而变化:切片类型、帧分辨率和与视频数据相关联的参考帧列表大小。此外,在一些实例中,熵编码单元56和/或熵解码单元80可进一步译码待包含于以下各者中的至少一者中的偏移参数及初始化量化参数值中的一或多者:图片参数集(PPS)、序列参数集(SPS)和与视频数据相关联的调适参数集(APS),例如,或另一参数集或高阶语法位置。
[0279]另外,在一些实例中,上下文自适应性熵译码过程的一或多个上下文可包含上下文自适应性熵译码过程的上下文的一子集。作为一个实例,子集可对应于与视频数据相关联的语法类型。作为另一实例,语法类型可包含与视频数据相关联的以下各者中的一或多者:分量类型、块大小、变换 大小、预测模式、运动信息和变换系数信息。
[0280]以这个方式,图6的方法表示上下文自适应性熵译码的方法的实例,所述方法包括:基于一或多个初始化参数及与视频数据相关联的时间层参数而确定用于初始化用以译码视频数据的上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态,以及基于一或多个初始上下文状态而初始化上下文自适应性熵译码过程的一或多个上下文。
[0281]图7为说明与本发明的技术一致的基于一或多个概率偏移而初始化上下文自适应性熵译码过程的一或多个上下文的实例方法的流程图。换句话说,图7的实例方法的技术包含确定用以译码数据的上下文自适应性熵译码过程的一或多个上下文中的每一者的初始概率,使得每一上下文的初始概率位于由下限及上限定义的总概率值范围的子集内。在图7的实例方法中,由相对于概率值范围的下限及上限中的一或多者的一或多个概率偏移来定义子集。
[0282]作为一个实例,为了使用如上文所描述的上下文自适应性熵译码过程(例如,CABAC过程)译码视频数据块或其它类型的数据,熵编码单元56和/或熵解码单元80可确定第一值(700)。例如,第一值可对应于使用给定上下文概率初始化技术导出的上下文自适应性熵译码过程的特定上下文的初始概率。在此实例中,上下文的初始概率可对应于(例如)使用上文参看H.264/AVC及HEVC所描述的上下文概率初始化技术导出的“默认”初始概率。然而,不同于其它技术,图7的实例方法的技术包含:确定不同于第一值的第二值是否可导致上下文的相对更准确(例如,较不歪斜)的初始概率,且基于确定而选择第一值或第二值作为上下文的初始概率。
[0283]例如,在第一值处于由下限、上限及相对于下限及上限中的一或多者的一或多个偏移定义的值范围内的情况下(702,“是”),熵编码单元56和/或熵解码单元80可进一步选择第一值(704)。然而,在第一值处于值范围外的情况下(702,“否”),熵编码单元56和/或熵解码单元80可改为选择第二值,其中第二值不同于第一值(706)。如上文所解释,第二值可对应于相对于对应于第一值的概率来说更准确的上下文的不同概率,且反之亦然。
[0284]以这个方式,上下文的初始概率与使用其它技术(例如,在不考虑在概率值范围内的初始概率的相对位置的情况下,确定用以译码数据的上下文自适应性熵译码过程的上下文的初始概率的技术)所确定的上下文的初始概率相比较来说可能相对更准确。例如,根据一些技术,上下文的初始概率可位于相对接近于概率值范围的下限及上限中的任一者处,从而可能导致初始概率较不准确。
[0285]随后,熵编码单元56和/或熵解码单元80可基于所选定的第一值或第二值而初始化上下文自适应性熵译码过程的上下文的概率(708)。例如,熵编码单元56和/或熵解码单元80可通过将上下文的概率定义为所选定的第一值或第二值而初始化上下文的概率。
[0286]在一些实例中,熵编码单元56和/或熵解码单元80可进一步基于上下文自适应性熵译码过程的上下文的经初始化的概率而熵译码数据(例如,视频数据块或其它类型的数据)(710)。例如,熵编码单元56和/或熵解码单元80可通过以下操作来译码数据:基于上文所描述的经初始化的概率,以及基于以与上文所描述的方式相同或类似的方式初始化的上下文的一或多个其它概率,执行上下文自适应性熵译码过程。
[0287]另外,在其它实例中,熵编码单元56和/或熵解码单元80可更进一步基于数据及一或多个偏移而更新上下文自适应性熵译码过程的上下文的经初始化的概率(712)。例如,以与上文参看图5及图6所描述的方式类似的方式,熵编码单元56和/或熵解码单元80可基于数据(例如,基于数据的一或多个值)而更新上下文的经初始化的概率。另外,熵编码单元56和/或熵解码单元80也可基于一或多个偏移而更新上下文的经初始化的概率,使得更新的概率也位于由下限及上限定义的总概率值范围的先前所描述的子集内。换句话说,在一些实例中,图7的实例方法的技术可适用于确定特定上下文的初始概率,以及连续更新上下文的概率。然而,在其它实例中,以与上文参看图5及图6所描述的方式类似的方式,熵编码单元56和/或熵解码单元80可单独基于数据而更新上下文的经初始化的概率。
[0288]在一些实例中,一或多个偏移可包含第一偏移及第二偏移。在这些实例中,为了在第一值处于值范围内的情况下选择第一值,熵编码单元56和/或熵解码单元80可在第一值大于下限的值加上第一偏移所得值且小于上限的值减去第二偏移所得值的情况下,选择第一值。在一些实例中,第一偏移可等于第二偏移。在其它实例中,第一偏移可不同于第二偏移。
[0289]在再其它实例中,如上文已描述,熵编码单元56和/或熵解码单元80可进一步基于一或多个偏移而更新上下文自适应性熵译码过程的上下文的概率。
[0290]以这个方式,图7的方法表示上下文自适应性熵译码的方法的实例,所述方法包括:确定第一值;在第一值处于由下限、上限及相对于下限及上限中的一或多者的一或多个偏移定义的值范围内的情况下,选择第一值;在第一值处于值范围外的情况下,选择第二值,其中第二值不同于第一值;以及基于所选定的第一值或第二值而初始化上下文自适应性熵译码过程的上下文的概率。
[0291]图8为说明与本发明的技术一致的基于参考上下文状态及量化参数值以及一或多个关系而初始化上下文自适应性熵译码过程的一或多个上下文的实例方法的流程图。换句话说,图8的实例方法的技术包含使用三个或三个以上值集合和一或多个关系来确定用以译码视频数据的上下文自适应性熵译码过程的一或多个上下文中的每一者的初始上下文状态,三个或三个以上值集合各自包含参考上下文状态值及对应的参考量化参数值。
[0292]作为一个实例,为了使用如上文所描述的上下文自适应性熵译码过程(例如,CABAC过程)译码视频数据块或其它类型的数据,熵编码单元56和/或熵解码单元80可基于一初始化参数及与视频数据相关联的一量化参数值而确定用于初始化用以译码视频数据的上下文自适应性熵译码过程的上下文的初始上下文状态,初始化参数定义各自对应于三个或三个以上参考量化参数值中的相应者的三个或三个以上参考上下文状态(800)。例如,可将三个或三个以上参考上下文状态及对应的三个或三个以上参考量化参数值预定为三个或三个以上值集合或“对”,每一值集合或对包含一参考上下文状态值及一对应参考量化参数值。作为一个实例,每一对中的参考上下文状态值可在执行步骤(800)之前使用相应对中的对应参考量化参数值及一或多个关系来导出。在一些实例中,一或多个关系可包含(例如)上文参看H.264/AVC及HEVC的某些草案版本所描述的线性关系、用于图6的实例方法中的考虑与视频数据相关联的时间层的关系或用以基于量化参数值而确定上下文的上下文状态的任何其它关系。另外,与视频数据相关联的量化参数值可为与视频数据的一或多个帧、切片、块或其它部分相关联的量化参数值。
[0293]以这个方式,如由初始上下文状态指示的上下文的初始概率相较于使用其它技术(例如,使用由斜率及交叉值且由与视频数据相关联的量化参数定义的线性关系,确定用以译码视频数据的上下文自适应性熵译码过程的上下文的初始上下文状态的技术)所确定的上下文的初始概率来说可能相对更准确。此线性关系的一实例系上文参看H.264/AVC及HEVC的某些草案版本所描述。根据图8的实例方法的技术,上下文的初始概率可使用初始化参数及与视频数据相关联的量化参数值以及各种(例如,线性及非线性)内插技术来导出,此可导致上下文的初始概率相对更准确。
[0294]随后,以与上文参看图5及图6所描述的方式类似的方式,熵编码单元56和/或熵解码单元80可基于初始上下文状态而初始化上下文自适应性熵译码过程的上下文(802)。另外,在一些实例中,也以与上文参看图5及图6所描述的方式类似的方式,熵编码单元56和/或熵解码单元80可进一步基于上下文自适应性熵译码过程的经初始化的上下文而熵译码视频数据(804),且在一些状况下,基于视频数据而更新上下文自适应性熵译码过程的经初始化的上下文的上下文状态(806)。
[0295]在一些实例中,为了基于初始化参数及与视频数据相关联的量化参数值而确定初始上下文状态,熵编码单元56和/或熵解码单元80可使用与视频数据相关联的量化参数值来在三个或三个以上参考上下文状态及对应的三个或三个以上参考量化参数值当中进行线性内插。例如,熵编码单元56和/或熵解码单元80可使用线性或任何部分线性内插技术来基于初始化参数及与视频数据相关联的量化参数值而确定初始上下文状态。
[0296]在其它实例中,为了基于初始化参数及与视频数据相关联的量化参数值而确定初始上下文状态,熵编码单元56和/或熵解码单元80可在三个或三个以上参考上下文状态及对应的三个或三个以上参考量化参数值当中拟合一曲线,且使用经拟合的曲线及与视频数据相关联的量化参数值来在三个或三个以上参考上下文状态及对应的三个或三个以上参考量化参数值当中进行内插。例如,熵编码单元56和/或熵解码单元80可使用基于仿样函数、双线性或任何非线性或部分线性内插技术来基于初始化参数及与视频数据相关联的量化参数值而确定初始上下文状态。
[0297]另外,在再其它实例中,三个或三个以上参考量化参数值中的每一者可相对于三个或三个以上参考量化参数值中的另一者而偏移为“2”的整数倍的值。例如,如上文所描述,第一参考量化参数值(例如,“Q P1”)可等于“26”,第二参考量化参数值(例如,“QP2”)可等于“QP1-8”或“18”,且第三参考量化参数值(“QP3”)可等于“QP1+8”或“34”。在此实例中,参考量化参数值QPl、QP2及QP3中的每一者相对于彼此而偏移为“2”的整数倍的值(在此状况下,为“8”)。在其它实例中,三个或三个以上参考量化参数值中的每一者可相对于彼此而偏移任何其它值,包含为“2”的整数倍的任何其它值。
[0298]以这个方式,图8的方法表示上下文自适应性熵译码的方法的实例,所述方法包括:基于初始化参数及与视频数据相关联的量化参数值而确定用于初始化用以译码视频数据的上下文自适应性熵译码过程的上下文的初始上下文状态,初始化参数定义各自对应于三个或三个以上参考量化参数值中的一相应者的三个或三个以上参考上下文状态;以及基于初始上下文状态而初始化上下文自适应性熵译码过程的上下文。
[0299]在一或多个实例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么功能可作为一或多个指令或代码而存储于计算机可读媒体上或经由计算机可读媒体予以传输,且由基于硬件的处理单元来执行。计算机可读媒体可包含计算机可读存储媒体(其对应于例如数据存储媒体的有形媒体)或通信媒体,通信媒体包含(例如)根据通信协议促进计算机程序从一处传送到另一处的任何媒体。以这个方式,计算机可读媒体大体上可对应于:(I)非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波的通信媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器接入以检索指令、代码和/或数据结构以用于实施本发明中所描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。
[0300]作为实例而非限制,这些计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用以存储呈指令或数据结构的形式的所要代码且可由计算机接入的任何其它媒体。同样,任何连接可适当地称为计算机可读媒体。例如,如果使用同轴电缆、光缆、双绞线、数字订户线(DSL)或无线技术(例如,红外线、无线电及微波)而从网站、服务器或其它远端源传输指令,那么同轴电缆、光缆、双绞线、DSL或无线技术(例如,红外线、无线电及微波)包含于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而是关于非暂时性有形存储媒体。如本文中所使用,磁盘及光盘包含紧密光盘(⑶)、雷射光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘通过雷射以光学方式再生数据。以上各者的组合也应包含于计算机可读媒体的范围内。
[0301]可由例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效集成或离散逻辑电路的一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指上述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,可将本文中所描述的功能性提供于经配置以用于编码及解码的专用硬件和/或软件模块内,或并入于组合式编码解码器中。同样,技术可完全实施于一或多个电路或逻辑元件中。
[0302]本发明的技术可以广泛多种装置或设备予以实施,装置或设备包含无线手机、集成电路(IC)或IC集合(例如,芯片组)。在本发明中描述各种组件、模块或单元以强调经配置以执行所揭示技术的装置的功能方面,但未必需要通过不同硬件单元来实现。确切来说,如上文所描述,可将各种单元组合于编码解码器硬件单元中,或由互操作的硬件单元(包含如上文所描述的一或多个处理器)结合合适软件和/或固件的集合来提供所述单元。
[0303]已描述各种实例。这些及其它实例在以下权利要求书的范围内。
【权利要求】
1.一种上下文自适应性熵译码的方法,所述方法包括: 基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数; 基于所述一或多个初始化参数而确定用于初始化所述上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态;以及 基于所述一或多个初始上下文状态而初始化所述上下文自适应性熵译码过程的所述一或多个上下文。
2.如权利要求1所述的方法,其中所述一或多个初始化参数包含于一或多个表中,且其中基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数包括基于所述一或多个初始化参数索引值而识别所述一或多个表中的所述一或多个初始化参数。
3.如权利要求1所述的方法,其中基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数包括使用所述一或多个初始化参数索引值和一或多个公式来计算所述一或多个初始化参数。
4.如权利要求3所述的方法,其中仅使用一或多个运算来实施所述一或多个公式中的每一者,每一运算选自由以下各者组成的组群: 位移位运算; 加法运算; 减法运算; 乘法运算;以及 除法运算。
5.如权利要求1所述的方法,其中所述一或多个初始化参数包含一或多个斜率值和一或多个交叉值,所述一或多个初始化参数索引值包含一或多个斜率索引值和一或多个交叉索引值,且其中基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数包括: 基于所述一或多个斜率索引值而确定所述一或多个斜率值;以及 基于所述一或多个交叉索引值而确定所述一或多个交叉值。
6.如权利要求1所述的方法,其中所述一或多个初始化参数包含一或多个斜率值和一或多个交叉值,且其中基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数包括基于所述一或多个初始化参数索引值中的单一初始化参数索引值而确定所述一或多个斜率值中的至少一者和所述一或多个交叉值中的至少一者。
7.如权利要求6所述的方法,其中所述一或多个初始化参数索引值中的所述单一初始化参数索引值包括一或多个斜率索引值分量及一或多个交叉索引值分量,且其中基于所述一或多个初始化参数索引值中的所述单一初始化参数索引值而确定所述一或多个斜率值中的所述至少一者及所述一或多个交叉值中的所述至少一者包括: 基于所述一或多个斜率索引值分量而确定所述一或多个斜率值中的所述至少一者;以及 基于所述一或多个交叉索引值分量而确定所述一或多个交叉值中的所述至少一者。
8.如权利要求7所述的方法,其中基于所述一或多个斜率索引值分量而确定所述一或多个斜率值中的所述至少一者以及基于所述一或多个交叉索引值分量而确定所述一或多个交叉值中的所述至少一者包括: 使用一或多个位移位运算来确定所述一或多个初始化参数索引值中的所述单一初始化参数索引值的所述一或多个斜率索引值分量和所述一或多个交叉索引值分量中的一者;以及 使用一或多个逻辑与运算来确定所述一或多个初始化参数索引值中的所述单一初始化参数索引值的所述一或多个斜率索引值分量和所述一或多个交叉索引值分量中的另一者。
9.如权利要求7所述的方法,其中所述一或多个初始化参数索引值中的所述单一初始化参数索引值包括预定数目个位,其中所述一或多个斜率索引值分量和所述一或多个交叉索引值分量中的每一者包括所述预定数目个位的相应子集,且其中对应于所述一或多个斜率索引值分量的所述子集中的每一者所包含的所述预定数目个位的数目不同于对应于所述一或多个交叉索引值分量的所述子集中的每一者所包含的所述预定数目个位的数目。
10.如权利要求1所述的方法,其中所述上下文自适应性熵译码过程的所述一或多个上下文包括所述上下文自适应性熵译码过程的上下文的子集。
11.如权利要求1所述的方法,其进一步包括: 基于所述上下文自适应性熵译码过程的所述经初始化的一或多个上下文而编码与视频数据块相关联的一或多个语法元素;以及 在位流中输出所述经编码的一或多个语法元素。
12.如权利要求1所述的方法,其进一步包括: 在位流中接收与视频数据块相关联的一或多个经编码语法元素;以及 基于所述上下文自适应性熵译码过程的所述经初始化的一或多个上下文而解码所述一或多个经编码语法元素。
13.一种用于上下文自适应性熵译码的设备,所述设备包括经配置以进行以下操作的译码器: 基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数; 基于所述一或多个初始化参数而确定用于初始化所述上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态;以及 基于所述一或多个初始上下文状态而初始化所述上下文自适应性熵译码过程的所述一或多个上下文。
14.如权利要求13所述的设备,其中所述一或多个初始化参数包含于一或多个表中,且其中为了基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数,所述译码器经配置以基于所述一或多个初始化参数索引值而识别所述一或多个表中的所述一或多个初始化参数。
15.如权利要求13所述的设备,其中为了基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数,所述译码器经配置以使用所述一或多个初始化参数索引值及一或多个公式来计算所述一或多个初始化参数。
16.如权利要求 15所述的设备,其中所述一或多个公式中的每一者仅使用一或多个运算来实施,每一运算选自由以下各者组成的组群:位移位运算; 加法运算; 减法运算; 乘法运算;以及 除法运算。
17.如权利要求13所述的设备,其中所述一或多个初始化参数包含一或多个斜率值及一或多个交叉值,所述一或多个初始化参数索引值包含一或多个斜率索引值及一或多个交叉索引值,且其中为了基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数,所述译码器经配置以: 基于所述一或多个斜率索引值而确定所述一或多个斜率值;以及 基于所述一或多个交叉索引值而确定所述一或多个交叉值。
18.如权利要求13所述的设备,其中所述一或多个初始化参数包含一或多个斜率值和一或多个交叉值,且其中为了基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数,所述译码器经配置以基于所述一或多个初始化参数索引值中的一单一初始化参数索引值而确定所述一或多个斜率值中的至少一者和所述一或多个交叉值中的至少一者。
19.如权利要求18所述的设备,其中所述一或多个初始化参数索引值中的所述单一初始化参数索引值包括一或多个斜率索引值分量和一或多个交叉索引值分量,且其中为了基于所述一或多个初始化参数索引值中的所述单一初始化参数索引值而确定所述一或多个斜率值中的所述至少一者和所述一或多个交叉值中的所述至少一者,所述译码器经配置以: 基于所述一或多个斜率索引值分量而确定所述一或多个斜率值中的所述至少一者;以及 基于所述一或多个交叉索引值分量而确定所述一或多个交叉值中的所述至少一者。
20.如权利要求19所述的设备,其中为了基于所述一或多个斜率索引值分量而确定所述一或多个斜率值中的所述至少一者,且为了基于所述一或多个交叉索引值分量而确定所述一或多个交叉值中的所述至少一者,所述译码器经配置以: 使用一或多个位移位运算来确定所述一或多个初始化参数索引值中的所述单一初始化参数索引值的所述一或多个斜率索引值分量和所述一或多个交叉索引值分量中的一者;以及 使用一或多个逻辑与运算来确定所述一或多个初始化参数索引值中的所述单一初始化参数索引值的所述一或多个斜率索引值分量和所述一或多个交叉索引值分量中的另一者。
21.如权利要求19所述的设备,其中所述一或多个初始化参数索引值中的所述单一初始化参数索引值包括预定数目个位,其中所述一或多个斜率索引值分量及所述一或多个交叉索引值分量中的每一者包括所述预定数目个位的相应子集,且其中对应于所述一或多个斜率索引值分量的所述子集中的每一者所包含的所述预定数目个位的数目不同于对应于所述一或多个交叉索引值分量的所述子集中的每一者所包含的所述预定数目个位的数目。
22.如权利要求13所述的设备,其中所述上下文自适应性熵译码过程的所述一或多个上下文包括所述上下文自适应性熵译码过程的上下文的子集。
23.如权利要求13所述的设备,其中所述译码器包括视频编码器,且其中所述视频编码器经进一步配置以: 基于所述上下文自适应性熵译码过程的所述经初始化的一或多个上下文而编码与视频数据块相关联的一或多个语法元素;以及 在位流中输出所述经编码的一或多个语法元素。
24.如权利要求13所述的设备,其中所述译码器包括视频解码器,且其中所述视频解码器经进一步配置以: 在位流中接收与视频数据块相关联的一或多个经编码语法元素;以及基于所述上下文自适应性熵译码过程的所述经初始化的一或多个上下文而解码所述一或多个经编码语法元素。
25.如权利要求13所述的设备,其中所述设备包括以下各者中的至少一者: 集成电路; 微处理器;以及 包含所述译码器的无线通信装置。
26.一种用于上下文自适应性熵译码的装置,所述装置包括: 用于基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数的装置; 用于基于所述一或多个初始化参数而确定用于初始化所述上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态的装置;以及 用于基于所述一或多个初始上下文状态而初始化所述上下文自适应性熵译码过程的所述一或多个上下文的装置。
27.如权利要求26所述的装置,其中所述一或多个初始化参数包含于一或多个表中,且其中所述用于基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数的装置包括用于基于所述一或多个初始化参数索引值而识别所述一或多个表中的所述一或多个初始化参数的装置。
28.如权利要求26所述的装置,其中所述用于基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数的装置包括用于使用所述一或多个初始化参数索引值及一或多个公式来计算所述一或多个初始化参数的装置。
29.如权利要求28所述的装置,其中所述一或多个公式中的每一者仅使用一或多个运算来实施,每一运算选自由以下各者组成的组群: 位移位运算; 加法运算; 减法运算; 乘法运算;以及 除法运算。
30.如权利要求26所述的装置,其中所述一或多个初始化参数包含一或多个斜率值和一或多个交叉值,所述一或多个初始化参数索引值包含一或多个斜率索引值和一或多个交叉索引值,且其中所述用于基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数的装置包括:用于基于所述一或多个斜率索引值而确定所述一或多个斜率值的装置;以及 用于基于所述一或多个交叉索引值而确定所述一或多个交叉值的装置。
31.如权利要求26所述的装置,其中所述一或多个初始化参数包含一或多个斜率值和一或多个交叉值,且其中所述用于基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数的装置包括用于基于所述一或多个初始化参数索引值中的一单一初始化参数索引值而确定所述一或多个斜率值中的至少一者和所述一或多个交叉值中的至少一者的装置。
32.如权利要求31所述的装置,其中所述一或多个初始化参数索引值中的所述单一初始化参数索引值包括一或多个斜率索引值分量和一或多个交叉索引值分量,且其中所述用于基于所述一或多个初始化参数索引值中的所述单一初始化参数索引值而确定所述一或多个斜率值中的所述至少一者和所述一或多个交叉值中的所述至少一者的装置包括: 用于基于所述一或多个斜率索引值分量而确定所述一或多个斜率值中的所述至少一者的装置;以及 用于基于所述一或多个交叉索引值分量而确定所述一或多个交叉值中的所述至少一者的装置。
33.如 权利要求32所述的装置,其中所述用于基于所述一或多个斜率索引值分量而确定所述一或多个斜率值中的所述至少一者的装置和所述用于基于所述一或多个交叉索引值分量而确定所述一或多个交叉值中的所述至少一者的装置包括: 用于使用一或多个位移位运算来确定所述一或多个初始化参数索引值中的所述单一初始化参数索引值的所述一或多个斜率索引值分量和所述一或多个交叉索引值分量中的一者的装置;以及 用于使用一或多个逻辑与运算来确定所述一或多个初始化参数索引值中的所述单一初始化参数索引值的所述一或多个斜率索引值分量和所述一或多个交叉索引值分量中的另一者的装置。
34.如权利要求32所述的装置,其中所述一或多个初始化参数索引值中的所述单一初始化参数索引值包括预定数目个位,其中所述一或多个斜率索引值分量及所述一或多个交叉索引值分量中的每一者包括所述预定数目个位的相应子集,且其中对应于所述一或多个斜率索引值分量的所述子集中的每一者所包含的所述预定数目个位的数目不同于对应于所述一或多个交叉索引值分量的所述子集中的每一者所包含的所述预定数目个位的数目。
35.如权利要求26所述的装置,其中所述上下文自适应性熵译码过程的所述一或多个上下文包括所述上下文自适应性熵译码过程的上下文的子集。
36.如权利要求26所述的装置,其进一步包括: 用于基于所述上下文自适应性熵译码过程的所述经初始化的一或多个上下文而编码与视频数据块相关联的一或多个语法元素的装置;以及 用于在位流中输出所述经编码的一或多个语法元素的装置。
37.如权利要求26所述的装置,其进一步包括: 用于在位流中接收与视频数据块相关联的一或多个经编码语法元素的装置;以及 用于基于所述上下文自适应性熵译码过程的所述经初始化的一或多个上下文而解码所述一或多个经编码语法元素的装置。
38.一种存储有指令的非暂时性计算机可读存储媒体,所述指令在执行时使一或多个处理器执行上下文自适应性熵译码,其中所述指令使所述一或多个处理器进行以下操作: 基于一或多个初始化参数索引值而确定用于上下文自适应性熵译码过程的一或多个初始化参数; 基于所述一或多个初始化参数而确定用于初始化所述上下文自适应性熵译码过程的一或多个上下文的一或多个初始上下文状态;以及 基于所述一或多个初始上下文状态而初始化所述上下文自适应性熵译码过程的所述一或多个上下文。
39.如权利要求38所述的非暂时性计算机可读存储媒体,其中所述一或多个初始化参数包含于一或多个表中,且其中所述使所述一或多个处理器基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数的指令包括使所述一或多个处理器基于所述一或多个初始化参数索引值而识别所述一或多个表中的所述一或多个初始化参数的指令。
40.如权利要求38所述的非暂时性计算机可读存储媒体,其中所述使所述一或多个处理器基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数的指令包括使所述一或多个处理器使用所述一或多个初始化参数索引值及一或多个公式来计算所述一或多个初始化参数的指令。
41.如权利要求40所述的非暂时性计算机可读存储媒体,其中所述一或多个公式中的每一者仅使用一或多个运算来实施,每一运算选自由以下各者组成的组群: 位移位运算; 加法运算; 减法运算; 乘法运算;以及 除法运算。
42.如权利要求38所述的非暂时性计算机可读存储媒体,其中所述一或多个初始化参数包含一或多个斜率值和一或多个交叉值,所述一或多个初始化参数索引值包含一或多个斜率索引值和一或多个交叉索引值,且其中所述使所述一或多个处理器基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数的指令包括使所述一或多个处理器进行以下操作的指令: 基于所述一或多个斜率索引值而确定所述一或多个斜率值;及 基于所述一或多个交叉索引值而确定所述一或多个交叉值。
43.如权利要求38所述的非暂时性计算机可读存储媒体,其中所述一或多个初始化参数包含一或多个斜率值和一或多个交叉值,且其中所述使所述一或多个处理器基于所述一或多个初始化参数索引值而确定所述一或多个初始化参数的指令包括使所述一或多个处理器基于所述一或多个初始化参数索引值中的一单一初始化参数索引值而确定所述一或多个斜率值中的至少一者和所述一或多个交叉值中的至少一者的指令。
44.如权利要求43所述的非暂时性计算机可读存储媒体,其中所述一或多个初始化参数索引值中的所述单一初始化参数索引值包括一或多个斜率索引值分量和一或多个交叉索引值分量,且其中所述使所述一或多个处理器基于所述一或多个初始化参数索引值中的所述单一初始化参数索引值而确定所述一或多个斜率值中的所述至少一者和所述一或多个交叉值中的所述至少一者的指令包括使所述一或多个处理器进行以下操作的指令: 基于所述一或多个斜率索引值分量而确定所述一或多个斜率值中的所述至少一者;及基于所述一或多个交叉索引值分量而确定所述一或多个交叉值中的所述至少一者。
45.如权利要求44所述的非暂时性计算机可读存储媒体,其中所述使所述一或多个处理器基于所述一或多个斜率索引值分量而确定所述一或多个斜率值中的所述至少一者和基于所述一或多个交叉索引值分量而确定所述一或多个交叉值中的所述至少一者的指令包括使所述一或多个处理器进行以下操作的指令: 使用一或多个位移位运算来确定所述一或多个初始化参数索引值中的所述单一初始化参数索引值的所述一或多个斜率索引值分量和所述一或多个交叉索引值分量中的一者;及 使用一或多个逻辑与运算来确定所述一或多个初始化参数索引值中的所述单一初始化参数索引值的所述一或多个斜率索引值分量和所述一或多个交叉索引值分量中的另一者。
46.如权利要求44所述的非暂时性计算机可读存储媒体,其中所述一或多个初始化参数索引值中的所述单一初始化参数索引值包括预定数目个位,其中所述一或多个斜率索引值分量和所述一或多个交叉索引值分量中的每一者包括所述预定数目个位的相应子集,且其中对应于所述一或多个斜率索引值分量的所述子集中的每一者所包含的所述预定数目个位的数目不同于对应于所述一或多个交叉索引值分量的所述子集中的每一者所包含的所述预定数目个位的数目。
47.如权利要求38所述的非暂时性计算机可读存储媒体,其中所述上下文自适应性熵译码过程的所述一或多个上下文包括所述上下文自适应性熵译码过程的上下文的子集。
48.如权利要求38所述的非暂时性计算机可读存储媒体,其进一步包括使所述一或多个处理器进行以下操作的指令: 基于所述上下文自适应性熵译码过程的所述经初始化的一或多个上下文而编码与视频数据块相关联的一或多个语法元素;以及 在位流中输出所述经编码的一或多个语法元素。
49.如权利要求38所述的非暂时性计算机可读存储媒体,其进一步包括使所述一或多个处理器进行以下操作的指令: 在位流中接收与视频数据块相关联的一或多个经编码语法元素;以及 基于所述上下文自适应性熵译码过程的所述经初始化的一或多个上下文而解码所述一或多个经编码语法元素。
【文档编号】H04N19/13GK103975532SQ201280053886
【公开日】2014年8月6日 申请日期:2012年11月1日 优先权日:2011年11月3日
【发明者】郭立威, 翔林·王, 马尔塔·卡切维奇, 霍埃尔·索赖·罗哈斯 申请人:高通股份有限公司