HK1202741B - 导出最末位置译码的上下文以供视频译码 - Google Patents
导出最末位置译码的上下文以供视频译码 Download PDFInfo
- Publication number
- HK1202741B HK1202741B HK15103086.2A HK15103086A HK1202741B HK 1202741 B HK1202741 B HK 1202741B HK 15103086 A HK15103086 A HK 15103086A HK 1202741 B HK1202741 B HK 1202741B
- Authority
- HK
- Hong Kong
- Prior art keywords
- value
- video
- block
- context
- bin
- Prior art date
Links
Description
本申请案主张2012年3月22日提交的美国临时申请案第61/614,178号、2012年4月4日提交的美国临时申请案第61/620,273号和2012年6月29日提交的美国临时申请案第61/666,316号的权益,所述申请案中的每一者的全部内容特此以引用的方式并入本文中。
技术领域
本发明涉及视频译码。
背景技术
数字视频能力可并入到广泛范围的装置中,所述装置包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板型计算机、电子书阅读器、数字摄影机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏机、蜂窝式或卫星无线电电话、所谓的“智能型手机”、视频电传会议装置、视频流式传输装置,和其类似者。数字视频装置实施视频译码技术,例如在由MPEG-2、MPEG-4、ITU-TH.263、ITU-T H.264/MPEG-4部分10先进视频译码(AVC)所定义的标准、目前正在开发中的高效率视频译码(HEVC)标准和这些标准的扩展中所描述的视频译码技术。视频装置可通过实施这些视频译码技术来更有效地发射、接收、编码、解码和/或存储数字视频信息。
视频译码技术包含空间(图片内)预测和/或时间(图片间)预测以减少或去除视频序列中固有的冗余。对于基于块的视频译码,可将视频切片(例如,视频帧或视频帧的一部分)分割成视频块(其也可被称作树型块)、译码单元(CU)和/或译码节点。可使用相对于同一图片中的相邻块中的参考样本的空间预测来编码图片的帧内译码(I)切片中的视频块。图片的帧间译码(P或B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测,或相对于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。
空间预测或时间预测导致针对待译码块的预测性块。残余数据表示待译码的原始块与预测性块之间的像素差。根据指向形成预测性块的参考样本的块的运动向量,和指示经译码块与预测性块之间的差异的残余数据来编码帧间译码块。根据帧内译码模式和残余数据来编码帧内译码块。为了进一步压缩,可将残余数据从像素域变换到变换域,从而导致残余变换系数,可接着量化残余变换系数。可扫描最初布置成二维阵列的经量化的变换系数以便产生变换系数的一维向量,且可应用熵译码以达成甚至更多压缩。
发明内容
一般来说,本发明描述用于使用一或多个函数译码与视频数据相关联的语法元素的技术。例如,装置可实施所述技术中的一或多者以译码一值,所述值指示视频数据的块(例如,变换单元或“TU”)的最末有效系数的位置。为了译码所述值,所述装置可使用对应于最末有效系数的二进制化值中的每一位(或“二进制”)的索引的函数,其中所述索引指示所述二进制在表示所述二进制化值的二进制阵列中的位置。
在一个实例中,一种方法包含使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文,并使用所确定的上下文译码所述二进制。
在另一实例中,用于译码视频数据的装置包含视频译码器,所述视频译码器经配置以使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文,并使用所确定的上下文译码所述二进制。
在另一实例中,一种装置包含使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文的装置,以及使用所确定的上下文译码所述二进制的装置。
在另一实例中,一种计算机可读存储媒体编码有指令。当执行时,所述指令使计算装置的可编程处理器使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文,并使用所确定的上下文译码所述二进制。
一或多个实例的细节陈述于随附图式和以下描述中。其它特征、目标和优势将从所述描述和所述图式以及从权利要求书显而易见。
附图说明
图1为说明可利用用于确定上下文的技术的实例视频编码和解码系统的框图,所述上下文用以译码表示视频数据的块的最末有效系数的值。
图2为说明可实施用于确定上下文的技术的视频编码器的实例的框图,所述上下文用以译码表示视频数据的块的最末有效系数的值。
图3为说明可实施用于确定上下文的技术的视频解码器的实例的框图,所述上下文用以译码表示视频数据的块的最末有效系数的值。
图4为说明用于编码视频数据的当前块的实例方法的流程图。
图5为说明用于解码视频数据的当前块的实例方法的流程图。
具体实施方式
一般来说,本发明的技术涉及视频译码。在视频译码中,一连串图片是使用空间预测(帧内预测)或时间预测(帧间预测)个别地进行译码。明确地说,视频译码器使用帧内预测或帧间预测来译码图片的个别块。视频译码器也译码块的残余数据,其中所述残余数据大体上对应于残余块,所述残余块表示经预测的数据与原始未经译码数据之间的逐像素差异。视频译码器可变换且量化残余数据,以产生残余块的经量化的变换系数。视频译码器进一步译码语法数据,例如,系数是否有效(例如,具有大于零之绝对值)、有效系数的位置、在扫描次序中的最末有效系数的位置和有效系数的电平值。
本发明描述用于译码指示视频数据的块(例如,变换单元(TU))中的最末有效系数的值的技术。明确地说,为了译码例如指示块中的最末有效系数的值的语法元素,视频译码器可经配置以应用上下文自适应性二进制算术译码(CABAC)。CABAC译码涉及使用由上下文索引指示的各种上下文,所述上下文大体上指示二进制化字串的个别位(或“二进制”)将具有特定值(例如,0或1)的可能性。特定来说,用于译码指示块中的最末有效系数的值的二进制的上下文是个别地针对所述值的每一二进制,即,基于二进制在所述值中的位置(例如,二进制的索引,假定所述值表示为二进制的阵列)来进行确定。
并非使用映射表(其提供用于译码特定二进制的上下文的上下文索引的指示),本发明的技术包含使用函数来确定用以译码二进制的上下文的上下文索引。明确地说,所述函数可为二进制的索引的函数。例如,假定二进制为经译码的值的第i个二进制,函数可定义为f(i),其中f(i)传回对应于将用以译码二进制化值的二进制i的上下文的上下文索引值。如上文所描述的上下文可指示二进制i将具有特定值(例如,0或1)的可能性。
以此方式,本发明描述最末有效系数字置(最末位置)的CABAC译码技术。对于待编码的最末位置二进制,其CABAC上下文的索引可使用函数而导出,使得可节省最末位置二进制与CABAC上下文之间的映射表(例如,未经存储)。CABAC译码大体上包含两部分:二进制化和CABAC译码。执行二进制化过程以将块的最末有效系数的位置转换为二进制字串,例如,二进制的阵列。用于高效率视频译码测试模型(HM)中的二进制化方法为截断一元+固定长度编码。对于截断一元码部分,二进制是使用CABAC上下文进行编码。对于固定长度部分,二进制是使用旁路模式(在未使用上下文的情况下)进行编码。以下表1中展示32×32TU(变换单元/变换块)的实例。
表1
以下表2说明用于常规HM中的实例上下文映射表。表2展示位于不同位置的最末位置可共享相同的上下文。对于一些二进制,例如,8×8块的二进制6到7,未指派上下文,原因为,如上文表1中所展示,所述二进制在未使用上下文的情况下进行编码(旁路模式)。
表2
| 二进制索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| TU4×4 | 0 | 1 | 2 | |||||||
| TU8×8 | 3 | 4 | 5 | 5 | 2 | |||||
| TU16×16 | 6 | 7 | 8 | 8 | 9 | 9 | 2 | |||
| TU32×32 | 10 | 11 | 12 | 14 | 13 | 13 | 14 | 14 | 2 |
尽管常规HM使用例如表2的表来确定用于译码最末位置值(即,指示视频数据的块中的最末有效系数字置的值)的二进制的上下文,但是本发明的技术包含使用函数来确定用于译码最末位置值的二进制的上下文。因而,根据本发明的技术而配置的视频译码器中不需要类似表2的表。以此方式,可将函数用于导出针对最末位置译码中的二进制的CABAC上下文索引,使得可去除映射表(表2)。下文更详细地描述译码装置的各种实例,其经配置以执行函数,以确定用于译码语法元素的二进制的上下文。
图1为说明可利用用于确定上下文的技术的实例视频编码和解码系统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和显示装置32。根据本发明,源装置12的视频编码器20可经配置以应用用于确定上下文的技术,其中所述上下文用以译码表示视频数据的块的最末有效系数的值。在其它实例中,源装置和目的地装置可包含其它组件或布置。例如,源装置12可从外部视频源18(例如,外部摄影机)接收视频数据。同样地,目的地装置14可与外部显示装置介接,而非包含集成式显示装置。
图1的所说明的系统10仅为一实例。用于确定用以译码表示视频数据的块的最末有效系数的值的上下文的技术可由任一数字视频编码和/或解码装置执行。虽然大体上通过视频编码装置执行本发明的技术,但也可通过视频编码器/解码器(通常被称为“CODEC(编码解码器)”)执行所述技术。此外,也可通过视频预处理器来执行本发明的技术。源装置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)的特性和/或处理的语法元素。显示装置32向用户显示经解码的视频数据,且可包括各种显示装置中的任一者,例如,阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
视频编码器20和视频解码器30可根据例如目前在开发中的高效率视频译码(HEVC)标准的视频译码标准而操作,且可符合HEVC测试模型(HM)。替代地,视频编码器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)的其它协议。
ITU-T H.264/MPEG-4(AVC)标准由ITU-T视频译码专家群(VCEG)连同ISO/IEC动画专家群(MPEG)一起作为被称为联合视频小组(JVT)的集体合作的产物而制定。在一些方面中,本发明中所描述的技术可应用于大体上符合H.264标准的装置。H.264标准由ITU-T研究小组在2005年3月描述于ITU-T推荐H.264(用于一般视听服务的先进视频译码)中,其在本文中可被称作H.264标准或H.264规范,或H.264/AVC标准或规范。联合视频小组(JVT)继续致力于对H.264/MPEG-4AVC的扩展。
视频编码器20和视频解码器30可各自实施为多种适宜编码器电路中的任一者,例如,一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当所述技术部分地在软件中实施时,装置可将用于软件的指令存储于合适的非暂时性计算机可读媒体中,且在硬件中使用一或多个处理器来执行所述指令以执行本发明的技术。视频编码器20和视频解码器30中的每一者可包含于一或多个编码器或解码器中,其中任一者可集成为相应装置中的组合的编码器/解码器(编码解码器(CODEC))的部分。
JCT-VC正致力于HEVC标准的开发。HEVC标准化努力是基于视频译码装置的演进模型,其被称作HEVC测试模型(HM)。HM假设视频译码装置相对于根据(例如)ITU-TH.264/AVC的现有装置的若干额外能力。例如,H.264提供九个帧内预测编码模式,而HM可提供多达三十三个帧内预测编码模式。
一般来说,HM的工作模型描述视频帧或图片可被划分成包含亮度样本和色度样本两者的一连串树型块或最大译码单元(LCU)、。位流内的语法数据可定义LCU的大小,LCU就像素的数目来说为最大译码单元。切片包含按译码次序的若干连续树型块。可将视频帧或图片分割成一或多个切片。每一树型块可根据四分树而分裂成若干译码单元(CU)。一般来说,四分树数据结构中每一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像素或大于64×64像素的树型块的大小。每一CU可含有一或多个PU和一或多个TU。与CU相关联的语法数据可描述(例如)CU到一或多个PU的分割。分割模式可在CU被跳过或直接模式编码、帧内预测模式编码或帧间预测模式编码之间不同。PU可分割成非正方形形状。与CU相关联的语法数据也可描述(例如)根据四分树将CU分割成一或多个TU。TU的形状可为正方形或非正方形(例如,矩形)。
HEVC标准允许根据TU的变换,所述变换对于不同CU可不同。通常基于针对经分割LCU所定义的给定CU内的PU的大小而设定TU大小,但可能并非总是如此状况。TU通常为与PU相同的大小,或小于PU。在一些实例中,可使用已知为“残余四分树”(RQT)的四分树结构而将对应于CU的残余样本再分为更小的单元。RQT的叶节点可被称作变换单元(TU)。可变换与TU相关联的像素差值以产生变换系数,变换系数可被量化。
叶CU可包含一或多个预测单元(PU)。一般来说,PU表示对应于对应CU的全部或一部分的空间区域,且可包含用于检索PU的参考样本的数据。此外,PU包含与预测有关的数据。例如,当PU经帧内模式编码时,用于PU的数据可包含于残余四分树(RQT)中,残余四分树可包含描述对应于PU的TU的帧内预测模式的数据。作为另一实例,当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内的译码节点。视频块可具有固定或变化的大小,且可根据指定译码标准而在大小方面不同。
作为实例,HM支持以各种PU大小进行预测。假定特定CU的大小为2N×2N,那么HM支持以2N×2N或N×N的PU大小进行帧内预测,和以2N×2N、2N×N、N×2N或N×N的对称PU大小进行帧间预测。HM也支持以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×2N CU。
在本发明中,“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,且接着变换所述TU以产生CU的变换系数。
在应用任何变换以产生变换系数之后,视频编码器20可执行变换系数的量化。量化大体上指如下过程:将变换系数量化以可能地减少用以表示所述系数的数据量,从而提供进一步压缩。所述量化过程可减少与所述系数中的一些或所有系数相关联的位深度。例如,可在量化期间将n位值降值舍位到m位值,其中n大于m。
在量化之后,视频编码器可扫描变换系数,从而从包含经量化的变换系数的二维矩阵产生一维向量。扫描可经设计成将较高能量(且因此较低频率)系数置于阵列前部,且将较低能量(且因此较高频率)系数置于阵列后部。在一些实例中,视频编码器20可利用预定义扫描次序来扫描经量化的变换系数,以产生可经熵编码的串列化向量。在其它实例中,视频编码器20可执行自适应性扫描。在扫描经量化的变换系数以形成一维向量之后,视频编码器20可(例如)根据上下文自适应性可变长度译码(CAVLC)、上下文自适应性二进制算术译码(CABAC)、基于语法的上下文自适应性二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵编码方法而熵编码所述一维向量。视频编码器20也可熵编码与经编码的视频数据相关联的语法元素以供视频解码器30在解码视频数据过程中使用。
为了执行CABAC,视频编码器20可将上下文模型内的上下文指派给待传输的符号。所述上下文可能涉及(例如)符号的相邻值是否为非零。为了执行CAVLC,视频编码器20可针对待传输的符号选择可变长度码。可构建VLC中的码字使得相对较短码对应于更有可能的符号,而较长码对应于较不可能的符号。以此方式,使用VLC可达成位节省(与(例如)针对待传输的每一符号使用等长度码字相比较)。概率确定可基于指派给符号的上下文而进行。
根据本发明的技术,视频编码器20可使用上下文编码表示视频数据的块的最末有效系数的位置的值,所述上下文是使用所述值的二进制的一或多个函数而确定。同样地,视频解码器30可使用上下文解码表示视频数据的块的最末有效系数的值,所述上下文是使用所述值的二进制的一或多个函数而确定。视频编码器20和/或视频解码器30可经配置以执行下文中更详细描述的函数(1)-(12),或概念上类似的函数中的任一者,以执行本发明的技术。以此方式,视频编码器20和视频解码器30表示视频译码器的实例,所述视频译码器经配置以使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文,并使用所确定的上下文译码所述二进制。
作为实例,“Ctx_i”可表示由视频编码器20用以编码“最末位置”二进制字串中的第i个二进制的上下文的索引。视频编码器20可使用以下方过程导出Ctx_i:
Ctx_i=f(i)。
由f(i)表示的函数可为线性或非线性的。另外,f(i)可为视频编码器20与视频解码器30二者均可使用的预定义函数。替代地,f(i)可由用户或由视频编码器20选择,且可使用一或多种类型的高阶语法信令而传输到视频解码器30,例如序列参数集(SPS)、图片参数集(PPS)、调适参数集(APS)、帧标头、切片标头、序列标头,或其它此类语法信令。视频编码器20可执行的一此类函数的实例为:
f(i)=(i>>1), (1)
其中“>>”表示二进制右移位运算子。接下来,f(i)的结果可对应于Ctx_i。即,视频编码器20可执行f(i)来产生与Ctx_i的值相等的输出。更特定来说,视频编码器20可执行f(i)来产生用以熵译码第i个二进制的上下文的上下文索引。
以下表3说明上下文索引的实例,视频编码器20可使用上文所描述的实例函数(1),使用所述上下文索引译码在各种块(例如,TU)大小下在各种二进制索引处的二进制。尽管为了解释实例函数(1)的结果的目的提供表3,但将了解,例如表3的表不需要存储于例如源装置12和/或目的地装置14的视频译码装置中。实情为,视频编码器20与视频解码器30中的一者或两者可基于各种二进制索引而执行上文的函数(1),以产生表3中所指示的结果。
表3
| 二进制索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| TU4×4 | 0 | 0 | 1 | |||||||
| TU8×8 | 0 | 0 | 1 | 1 | 2 | |||||
| TU16×16 | 0 | 0 | 1 | 1 | 2 | 2 | 3 | |||
| TU32×32 | 0 | 0 | 1 | 1 | 2 | 2 | 3 | 3 | 4 |
作为另一实例,视频编码器20可执行取决于二进制索引(i)与对应块(例如TU)的大小两者的函数。所述对应块可为包含最末有效系数值所描述的系数的块。作为实例,上下文索引可由函数产生,例如:
Ctx_i=f(i,TUBlkSize),其中“TUBlkSize”为指示块大小的值。出于本发明的目的,术语“TUBlkSize”和“block_size”可互换地用以指示块大小。
作为一个实例,函数可为:
f(i,TUBlkSize)=i>>(log2(TUBlkSize)-2)。 (2)
以下表4说明上下文索引的实例,视频编码器20将使用实例函数(2),使用所述上下文索引译码在各种块(例如TU)大小下在各种二进制索引处的二进制。尽管为了解释实例函数(2)的结果的目的提供表4,但将了解,例如表4的表不需要存储于例如源装置12和/或目的地装置14的视频译码装置中。实情为,视频编码器20与视频解码器30中的一者或两者可执行上文所描述的实例函数(2),以产生表4中所指示的结果。
表4
| 二进制索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| TU4×4 | 0 | 1 | 2 | |||||||
| TU8×8 | 0 | 0 | 1 | 1 | 2 | |||||
| TU16×16 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
| TU32×32 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
作为另一实例,视频编码器20可执行以下函数以导出Ctx_i:
f(i,TUBlkSize)=i>>1+TUSIZEoffset,其中
TUSIZEoffset=(log2(TUBlkSize)-2)*(log2(TUBlkSize)+1)/2。 (3)
以下表5说明上下文索引的实例,视频编码器20可使用实例函数(3),使用所述上下文索引译码在各种块(例如TU)大小下在各种二进制索引处的二进制。尽管为了解释实例函数(3)的结果的目的而提供表5,但将了解,例如表5的表不需要存储于源装置12和/或目的地装置14中。实情为,视频编码器20与视频解码器30中的一者或两者可执行上文所描述的实例函数(3),以产生表5中所指示的结果。
表5
| 二进制索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| TU4×4 | 0 | 0 | 1 | |||||||
| TU8×8 | 2 | 2 | 3 | 3 | 4 | |||||
| TU16×16 | 5 | 5 | 6 | 6 | 7 | 7 | 8 | |||
| TU32×32 | 9 | 9 | 10 | 10 | 11 | 11 | 12 | 12 | 13 |
作为再一实例,视频编码器20可执行以下函数以导出Ctx_i:
Ctx_idx=(i+1)>>1+TUSIZEoffset,其中
TUSIZEoffset=(log2(TUBlkSize)-2)*(log2(TUBlkSize)+1)/2。 (4)
以下表6说明上下文索引的实例,视频编码器20可使用实例函数(4),使用所述上下文索引译码在各种块(例如TU)大小下在各种二进制索引处的二进制。尽管为了解释所述函数的结果的目的而提供表6,但将了解,例如表6的表不需要存储于例如源装置12和/或目的地装置14的视频译码装置中。实情为,视频编码器20与视频解码器30中的一者或两者可执行上文所描述的实例函数(4),以产生表6中所指示的结果。
表6
| 二进制索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| TU4×4 | 0 | 1 | 1 | |||||||
| TU8×8 | 2 | 3 | 3 | 4 | 4 | |||||
| TU16×16 | 5 | 6 | 6 | 7 | 7 | 8 | 8 | |||
| TU32×32 | 9 | 10 | 10 | 11 | 11 | 12 | 12 | 13 | 13 |
作为另一实例,函数可为:
Ctx_idx=偏移+(i>>k), (5)
其中:
偏移=3*n+((n+1)>>2), (6)
k=(n+3)>>2,且 (7)
n=(log2(TUBlkSize)-2)。 (8)
替代地,出于本发明的目的,实例函数(8)可表示为:n=(log2(block_size)-2)。
以下表7说明上下文索引的实例,视频编码器20可使用实例函数(5)-(8),使用所述上下文索引译码针对各种块(例如,TU)大小在各种二进制索引处的二进制。尽管为了解释所述函数的结果的目的而提供表7,但将了解,例如表7的表不需要存储于例如源装置12和/或目的地装置14的视频译码装置中。实情为,视频编码器20与视频解码器30中的一者或两者可执行上文的实例函数(5)-(8),以产生表7中所指示的结果。
表7
| 二进制索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| TU4×4 | 0 | 1 | 2 | |||||||
| TU8×8 | 3 | 3 | 4 | 4 | 5 | |||||
| TU16×16 | 6 | 6 | 7 | 7 | 8 | 8 | 9 | |||
| TU32×32 | 10 | 10 | 11 | 11 | 12 | 12 | 13 | 13 | 14 |
以下表8与表9说明另一实例,其中视频编码器20和/或视频解码器30可将本发明的针对“最末位置”译码中的二进制的一或多个基于公式的上下文导出技术以统一方式应用于亮度分量与色度分量。明确地说,表8说明各种大小的亮度TU的二进制索引,而表9提供各种大小的色度TU的二进制索引。
表8——亮度
| 二进制索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| TU4×4 | 0 | 1 | 2 | |||||||
| TU8×8 | 3 | 3 | 4 | 4 | 5 | |||||
| TU16×16 | 6 | 6 | 7 | 7 | 8 | 8 | 9 | |||
| TU32×32 | 10 | 10 | 11 | 11 | 12 | 12 | 13 | 13 | 14 |
表9——色度
| 二进制索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| TU4×4 | 0 | 1 | 2 | |||||||
| TU8×8 | 0 | 0 | 1 | 1 | 2 | |||||
| TU16×16 | 0 | 0 | 1 | 1 | 2 | 2 | 3 |
视频编码器20和/或视频解码器30可使用以在亮度TU(根据表8)和色度TU(根据表9)的最末位置译码中导出二进制的上下文的函数的一个实例为:
Ctx_idx=偏移+(i>>k), (9)
其中亮度与色度共享同一值k,k=(n+3)>>2,其中n=(log2(TUBlkSize)-2)
视频编码器20和/或视频解码器30可基于TU为亮度TU或色度TU,使用各种函数来确定函数(9)的变数“偏移”的值。此类函数的实例包含以下函数:
亮度:偏移=3*n+((n+1)>>2) (10)
色度:偏移=0 (11)
以此方式,函数(9)表示函数的实例,视频编码器20和/或视频解码器30可执行所述函数以产生上下文索引。上下文索引又可指示作为二进制(i)的索引与指示块大小的值(k,其基于n而计算,n为log2(TUBlkSize)-2)的函数的用于译码指示视频数据的块的最末有效系数的值的二进制的上下文。在此实例中,视频编码器20和/或视频解码器30也可基于偏移值来执行实例函数(9)以产生上下文索引,所述偏移值是基于块为色度块或亮度块而确定,例如,如函数(10)和(11)中所示。
作为另一实例,视频编码器20可实施步阶函数,以导出待用于熵译码第i个二进制的上下文的上下文索引。更具体地说,所述步阶函数可表示取决于(例如)二进制索引i的值而具有两个或两个以上部分的函数。因而,视频编码器20和/或视频解码器30可将最末位置值中的二进制划分为不同子集,例如,子集0、子集1等。另外,视频编码器20和/或视频解码器30可针对不同子集应用不同函数,例如,针对子集0应用F0()、针对子集1应用F1()等等。例如,此类函数可为以下函数:
其中
TUSIZEoffset=(log2(TUBlkSize)-2)*(log2(TUBlkSize)-1)/2。 (12)
在一些实施中,可预定义子集,且视频编码器20与视频解码器30可存取所述子集的定义。替代地,视频编码器20(或源装置12的用户)可选择子集,且输出接口22可使用一或多个高阶语法信令技术(例如SPS、PPS、APS、帧标头、切片标头、序列标头或其它此类语法信令)将所选择的子集传输到目的地装置14的视频解码器30。所述子集的定义也可取决于各种其它类型的信息,例如,块大小(例如,TU大小)、对应于所述块的残余四分树(RQT)深度、所述块对应于亮度分量或色度分量、包含所述块的帧的帧大小(例如,按像素分辨率计)、对应于所述块的运动补偿块(例如,预测单元(PU))的运动补偿块大小、包含所述块的帧的帧类型(I/P/B)、对应运动补偿块的帧间预测方向、对应运动补偿块的运动向量幅度和/或对应运动补偿块的运动向量的运动向量差幅度。
以下表10说明上下文索引的实例,视频编码器20可使用实例函数(12),使用所述上下文索引译码在各种块(例如TU)大小下在各种二进制索引处的二进制。尽管为了解释所述函数的结果的目的而提供表10,但将了解,例如表10的表不需要存储于例如源装置12和/或目的地装置14的视频译码装置中。实情为,视频编码器20与视频解码器30中的一者或两者可执行上文所描述的实例函数(12),以产生表10中所指示的结果。
表10
| 二进制索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| TU4×4 | 0 | 0 | 10 | |||||||
| TU8×8 | 1 | 1 | 2 | 2 | 10 | |||||
| TU16×16 | 3 | 3 | 4 | 4 | 5 | 5 | 10 | |||
| TU32×32 | 6 | 6 | 7 | 7 | 8 | 8 | 9 | 9 | 10 |
上文所描述的实例函数(1)-(12)可至少部分地取决于旁侧信息的一或多个元素。作为一个实例,所述函数可将所述旁侧信息接受作为引数。在其它实例中,视频编码器20和/或视频解码器30可基于对应的旁侧信息而选择不同的函数。所述旁侧信息可包含以下项中的任一者或全部:块大小(例如,TU大小)、对应于所述块的残余四分树(RQT)深度、所述块对应于亮度分量或色度分量、包含所述块的帧的帧大小(例如,按像素分辨率计)、对应于所述块的运动补偿块(例如,预测单元(PU))的运动补偿块大小、包含所述块的帧的帧类型(I/P/B)、对应运动补偿块的帧间预测方向、对应运动补偿块的运动向量幅度和/或对应运动补偿块的运动向量的运动向量差幅度。作为一个实例,视频编码器20和/或视频解码器30可(相对于色度块)选择不同函数来导出在译码指示亮度块的最末有效系数字置的值的二进制时所应用的上下文。
视频编码器20可进一步将语法数据(例如,基于块的语法数据、基于帧的语法数据和基于GOP的语法数据)发送到视频解码器30(例如,在帧标头、块标头、切片标头或GOP标头中)。GOP语法数据可描述相应GOP中的帧的数目,且帧语法数据可指示用以编码对应帧的编码/预测模式。
视频编码器20和视频解码器30可各自实施为多种合适编码器或解码器电路中的任一者(在适用时),例如,一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑电路、软件、硬件、固件或其任何组合。视频编码器20和视频解码器30中的每一者可包含于一或多个编码器或解码器中,其中的任一者可集成为组合式视频编码器/解码器(CODEC)的部分。包含视频编码器20和/或视频解码器30的装置可包括集成电路、微处理器和/或无线通信装置(例如,蜂窝式电话)。
以此方式,视频编码器20和视频解码器30表示视频译码器的实例,所述视频译码器经配置以使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文,并使用所确定的上下文译码所述二进制。
图2为说明可实施用于确定上下文的技术的视频编码器20的实例的框图,其中所述上下文用以译码表示视频数据的块的最末有效系数的值。视频编码器20可执行视频切片内的视频块的帧内译码和帧间译码。帧内译码取决于空间预测以减小或去除给定视频帧或图片内的视频的空间冗余。帧间译码取决于时间预测以减小或去除视频序列的邻接帧或图片内的视频的时间冗余。帧内模式(I模式)可指若干基于空间的译码模式中的任一者。帧间模式(例如,单向预测(P模式)或双向预测(B模式))可指若干基于时间的译码模式中的任一者。
如图2中所示,视频编码器20接收待编码的视频帧内的当前视频块。在图2的实例中,视频编码器20包含模式选择单元40、参考帧存储器64、求和器50、变换处理单元52、量化单元54和熵编码单元56。模式选择单元40又包含运动补偿单元44、运动估计单元42、帧内预测单元46和分割单元48。为了进行视频块重构建,视频编码器20也包含反量化单元58、反变换单元60和求和器62。也可包括解块滤波器(图2中未展示)以对块边界进行滤波,以从重构建的视频中去除方块效应伪影。如果需要,解块滤波器通常将对求和器62的输出进行滤波。除解块滤波器之外,也可使用额外滤波器(回路内或回路后)。为简洁起见未展示此类滤波器,但此类滤波器必要时可对求和器50的输出进行滤波(作为回路内滤波器)。
在编码过程期间,视频编码器20接收待译码的视频帧或切片。可将所述帧或切片划分成多个视频块。运动估计单元42和运动补偿单元44执行所接收的视频块相对于一或多个参考帧中的一或多个块的帧间预测性译码,以提供时间预测。帧内预测单元46可替代地执行所接收的视频块相对于在与待译码的块相同的帧或切片中的一或多个相邻块的帧内预测性译码,以提供空间预测。视频编码器20可执行多个译码遍次(例如)以选择用于视频数据的每一块的适当译码模式。
此外,分割单元48可基于对先前译码遍次中的先前分割方案的评估而将视频数据的块分割成子块。例如,分割单元48可初始地将帧或切片分割成LCU,且基于位速率-失真分析(例如,位速率-失真最佳化)来将所述LCU中的每一者分割成子CU。模式选择单元40可进一步产生指示LCU到子CU的分割的四分树数据结构。四分树的叶节点CU可包含一或多个PU和一或多个TU。
模式选择单元40可选择译码模式(帧内或帧间)中的一者(例如,基于误差结果),且将所得的经帧内或帧间译码的块提供到求和器50以产生残余块数据,且提供到求和器62以重构建经编码的块以便用作参考帧。模式选择单元40也将语法元素(例如运动向量、帧内模式指示符、分割信息和其它此类语法信息)提供到熵编码单元56。
运动估计单元42和运动补偿单元44可高度集成,但出于概念目的而分别说明。由运动估计单元42执行的运动估计为产生运动向量的过程,运动向量估计视频块的运动。例如,运动向量可指示在当前视频帧或图片内的视频块的PU相对于在参考帧(或其它经译码单元)内的预测性块(其关于在所述当前帧(或其它经译码单元)内正被译码的当前块)的位移。预测性块为被发现在像素差方面紧密地匹配于待译码块的块,所述像素差可通过绝对差和(SAD)、平方差和(SSD)或其它差度量予以确定。在一些实例中,视频编码器20可计算存储于参考帧存储器64中的参考图片的次整数像素位置的值。例如,视频编码器20可内插所述参考图片的四分之一像素位置、八分之一像素位置或其它分率像素位置的值。因此,运动估计单元42可执行相对于全像素位置和分率像素位置的运动搜索,且以分率像素精度输出运动向量。
运动估计单元42通过比较经帧间译码的切片中的视频块的PU的位置与参考图片的预测性块的位置,来计算所述PU的运动向量。所述参考图片可选自一第一参考图片列表(列表0)或一第二参考图片列表(列表1),列表0或列表1中的每一者识别存储于参考帧存储器64中的一或多个参考图片。运动估计单元42将所计算的运动向量发送到熵编码单元56和运动补偿单元44。
由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42确定的运动向量来提取或产生预测性块。再次,在一些实例中,运动估计单元42和运动补偿单元44可在功能上集成。在接收到当前视频块的PU的运动向量时,运动补偿单元44可在参考图片列表中的一者中定位运动向量所指向的预测性块。求和器50通过从正被译码的当前视频块的像素值减去预测性块的像素值来形成残余视频块,从而形成像素差值,如下文所论述。一般来说,运动估计单元42相对于亮度分量而执行运动估计,且运动补偿单元44将基于所述亮度分量所计算的运动向量用于色度分量与亮度分量两者。模式选择单元40也可产生与视频块和视频切片相关联的语法元素,以供视频解码器30用于解码视频切片的视频块。
作为由运动估计单元42和运动补偿单元44执行的帧间预测(如上文所描述)的替代,帧内预测单元46可帧内预测当前块。明确地说,帧内预测单元46可确定待用以编码当前块的帧内预测模式。在一些实例中,帧内预测单元46可(例如)在单独的编码遍次期间使用各种帧内预测模式来编码当前块,且帧内预测单元46(或在一些实例中,模式选择单元40)可从所测试的模式选择欲使用的适当帧内预测模式。
例如,帧内预测单元46可使用对各种经测试的帧内预测模式的位速率-失真分析而计算位速率-失真值,且在经测试模式当中选择具有最佳位速率-失真特性的帧内预测模式。位速率-失真分析大体上确定经编码块与经编码以产生所述经编码块的原始未经编码块之间的失真(或误差)的量以及用以产生经编码块的位速率(即,位数目)。帧内预测单元46可从失真和位速率计算各种经编码块的比率以确定哪一帧内预测模式展现块的最佳位速率-失真值。
在选择块的帧内预测模式之后,帧内预测单元46可向熵编码单元56提供指示所述块的所选择的帧内预测模式的信息。熵编码单元56可编码指示所选择的帧内预测模式的信息。视频编码器20可在经传输的位流配置数据中包含各种块的编码上下文的定义,和将用于所述上下文中的每一者的最有可能的帧内预测模式、帧内预测模式索引表和经修改的帧内预测模式索引表的指示,所述位流配置数据可包含多个帧内预测模式索引表和多个经修改的帧内预测模式索引表(也被称作码字映射表)。
视频编码器20通过从正被译码的原始视频块中减去来自模式选择单元40的预测数据而形成残余视频块。求和器50表示执行此减法运算的一或多个组件。变换处理单元52将例如离散余弦变换(DCT)或概念上类似的变换的变换应用于残余块,从而产生包括残余变换系数值的视频块。变换处理单元52可执行概念上类似于DCT的其它变换。也可使用小波变换、整数变换、子频带变换或其它类型的变换。在任何状况下,变换处理单元52将变换应用于残余块,从而产生残余变换系数的块。所述变换可将残余信息从像素值域转换到变换域(例如,频域)。变换处理单元52可将所得的变换系数发送到量化单元54。量化单元54量化所述变换系数以进一步减小位速率。所述量化过程可减小与所述系数中的一些或所有相关联的位深度。可通过调整量化参数而修改量化程度。在一些实例中,量化单元54可接着执行对包含经量化的变换系数的矩阵的扫描。替代地,熵编码单元56可执行所述扫描。
在量化之后,熵编码单元56熵译码所述经量化的变换系数。例如,熵编码单元56可执行上下文适应性可变长度译码(CAVLC)、上下文适应性二进制算术译码(CABAC)、基于语法的上下文适应性二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵译码技术。在基于上下文的熵译码的状况下,上下文可基于相邻块。在通过熵编码单元56进行的熵译码之后,可将经编码的位流传输到另一装置(例如,视频解码器30)或经存档以供稍后传输或检索。
明确地说,熵编码单元56可从量化单元54接收与TU相关联的经量化的变换系数的集合。接着,熵编码单元56可扫描所述经量化的变换系数集合,且确定每一经扫描的系数是否包含有效系数,即,所述系数的值为零或非零。非零值可指示一特定经量化的变换系数为“有效”系数。在熵编码单元56检测到有效系数的实例中,熵编码单元56可译码表示与所述系数相关联的特定值(例如,1、2等等)的数据。此类数据可包含,例如所述系数的正负号的指示、所述系数的绝对值是否大于一,以及当所述系数的绝对值大于一时所述系数的绝对值是否大于二。另外,在有效系数的绝对值大于二的实例中,熵编码单元56可从所述系数的绝对值减去二,由此获得一个值(所述系数比二多出所述值),且译码此值。
通过扫描从量化单元54接收的整个经量化的变换系数的集合,熵编码单元56也可检测且识别与一特定TU相关联的最末有效系数(即,以扫描次序)。另外,熵编码单元56可确定所述最末有效系数于对应TU内的位置。例如,熵编码单元56可识别所述最末有效系数于所述TU内的水平和垂直(x-或y-)坐标。
此外,熵编码单元56可经配置以将并非已具有二进制值的语法元素二进制化。即,在语法元素尚未由二进制字串表示时,熵编码单元56可确定表示语法元素的值的二进制字串。二进制字串或经二进制化的值大体上对应于位阵列,位中的每一者的值可为“0”或“1”。所述阵列可为由零进行索引的,使得所述阵列的序数第一位出现于位置0处,所述阵列的序数第二位出现于位置1处,等等。因而,熵编码单元56可形成长度为N位的经二进制化的值B[N],其中每一位出现于相应位置B[i],其中0≤i≤N-1。
接着,熵编码单元56可熵编码表示最末有效系数的x和y坐标的数据。例如,熵编码单元56可经配置以熵编码语法元素last_significant_coeff_x_prefix、last_significant_coeff_y_prefix、last_significant_coeff_x_suffix,和/或last_significant_coeff_y_suffix,在HEVC中,所述语法元素一起表示按照扫描次序的最末有效系数的x和y坐标。熵编码单元56可实施本发明的一或多个技术,以使用由f(i)表示的函数来熵编码表示最末有效系数的坐标的数据。例如,熵编码单元56可使用上下文来熵编码各种语法元素,例如,从量化单元54接收的经量化的变换系数和/或表示TU的最末有效系数的值的语法元素(例如,上文所描述的语法元素),其中所述上下文是使用表示对应语法元素的值的二进制的一或多个函数而确定。
例如,如上文参考表1到2和表8到9所描述,“Ctx_i”可表示由熵编码单元56用以编码表示最末有效系数的位置的经二进制化值中的第i个二进制的上下文的索引。由ctx_i索引的上下文大体上指示最有可能的符号(例如,“1”或“0”)以及所述最有可能的符号的可能性。熵编码单元56可使用方程式Ctx_i=f(i)导出Ctx_i的值,其中f(i)可为熵编码单元56可用的预定义函数,或为用户所选择的函数。另外,熵编码单元56可编码表示f(i)的数据,使得视频解码器30可解码用于函数f(i)的数据并使用f(i)获得Ctx_i的值。以此方式,熵编码单元56可使用二进制索引的函数,即,所述二进制在表示语法元素的经二进制化值(即,二进制字串)中的位置,来确定用于经二进制化的语法元素的特定二进制的上下文。
在一些实例中,熵编码单元56经配置以使用上文描述的公式(5)到(8),确定用于译码表示最末有效系数字置的数据的二进制的上下文。即,熵编码单元56可如下计算f(i):Ctx_idx=偏移+(i>>k)。此外,熵编码单元56可使用以下方程式来导出用于f(i)中的偏移值和k的值:
偏移=3*n+((n+1)>>2),
k=(n+3)>>2,且
n=(log2(block_size)-2)。
在其它实施方案中,当确定用于熵编码表示TU的最末有效系数的位置的数据的二进制的上下文时,除公式(5)到(8)之外或作为其替代,熵编码单元56可使用实例函数(1)到(4)和(9)到(12)中的一或多者。以此方式,视频编码器20和其组件(例如,熵编码单元56)可实施本发明的技术,以使用一或多个函数来编码表示最末有效系数的数据。与存储于表中相比,此类函数可更高效地存储于视频编码器20和视频解码器30的存储器中。因此,本发明的技术可提供(例如)通过向其它数据分配原本专用于表的存储器或通过减少视频编码器或视频解码器所需的存储器量而更有效地利用存储器的视频编码器和视频解码器。
反量化单元58和反变换单元60分别应用反量化和反变换以在像素域中重构建残余块,(例如)以供稍后用作参考块。运动补偿单元44可通过将所述残余块添加到参考帧存储器64的帧中的一者的预测性块来计算参考块。运动补偿单元44也可对所述经重构建的残余块应用一或多个内插滤波器以计算用于在运动估计中使用的次整数像素值。求和器62将所述经重构建的残余块添加到由运动补偿单元44产生的经运动补偿的预测块以产生经重构建的视频块以用于存储于参考帧存储器64中。所述经重构建的视频块可由运动估计单元42和运动补偿单元44用作参考块以帧间译码在后续视频帧中的块。
以此方式,图2的视频编码器20表示视频编码器的实例,所述视频编码器经配置以使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文,并使用所确定的上下文译码所述二进制。此外,视频编码器20也表示视频编码器的实例,其中函数通过将二进制的索引右移位值k且将经右移位的值添加到偏移值,来产生上下文的上下文索引,其中所述偏移值是根据公式偏移=3*n+((n+1)>>2)而确定,其中值k是根据公式k=(n+3)>>2而确定,且其中值n是根据公式n=(log2(block_size)-2)而确定。
图3为说明可实施用于确定上下文的技术的视频解码器30的实例的框图,其中所述上下文用以译码表示视频数据的块的最末有效系数的值。在图3的实例中,视频解码器30包含熵解码单元70、运动补偿单元72、帧内预测单元74、反量化单元76、反变换单元78、参考帧存储器82和求和器80。在一些实例中,视频解码器30可执行与关于视频编码器20(图2)所描述的编码遍次大体上互逆的解码遍次。运动补偿单元72可基于从熵解码单元70接收的运动向量而产生预测数据,而帧内预测单元74可基于从熵解码单元70接收的帧内预测模式指示符而产生预测数据。
在解码过程期间,视频解码器30从视频编码器20接收表示经编码的视频切片的视频块以及相关联的语法元素的经编码的视频位流。视频解码器30的熵解码单元70熵解码所述位流,以产生经量化的系数、运动向量或帧内预测模式指示符和其它语法元素。熵解码单元70向运动补偿单元72转发运动向量和其它语法元素。视频解码器30可接收视频切片层级和/或视频块层级的语法元素。
熵解码单元70可通过熵解码经编码的视频位流,且在块中以扫描次序填入经熵解码的经量化系数,来产生经量化的系数的块(例如,TU)。例如,熵解码单元70可熵解码经编码的视频位流的语法元素,以确定有效系数在待产生的块中的位置。如果所述块的位置对应于并非有效系数的系数,那么熵解码单元70可将所述块中的彼位置处的系数的值设定为零。另一方面,如果熵解码单元70确定特定经量化的系数为有效系数,那么熵解码单元70可基于由视频编码器20提供于经编码的视频位流中的数据而设定所述有效系数的值。
此外,如下文所解释的,熵解码单元70可基于指示最末有效系数的x和y坐标的语法元素,确定所述最末有效系数于块中的位置。根据本发明的技术,如下文更详细解释,熵解码单元70可使用函数来确定用于熵解码表示最末有效系数的x和y坐标的值的二进制的上下文。视频解码器30可使用最末有效系数的位置的指示,以确定位流的数据何时表示后续语法元素(即,不表示正被再生的块的数据的语法元素)。
熵解码单元70可基于经编码的视频位流中所提供的数据,确定每一有效系数的正负号,以及表示每一有效系数的电平值的数据。例如,熵解码单元70可通过对表示有效系数的正负号的语法元素(例如coeff_sign_flag)进行熵解码来确定所述正负号。另外,熵解码单元70可解码表示每一有效系数的电平值的一或多个语法元素,例如coeff_abs_level_greater1_flag、coeff_abs_level_greater2_flag,和coeff_abs_level_remaining。一般来说,coeff_abs_level_greater1_flag指示有效系数的绝对值是否大于1,coeff_abs_level_greater2_flag指示有效系数的绝对值是否大于2,且coeff_abs_level_remaining指示有效系数的绝对值减2。
熵解码单元70也可确定正被再生的块(例如,TU)的最末有效系数的位置。更具体地说,熵解码单元70可(例如,基于表示x和y坐标的经译码语法元素)识别与经编码的视频位流相关联的TU内的最末有效系数的位置。基于识别所述最末有效系数的位置,熵解码单元70可按照扫描次序将TU中的剩余系数的值设定为零。即,视频解码器30不需要接收最末有效系数以外的系数的任何语法元素,且另外,可推断这些系数的值为0。
另外,熵解码单元70可实施本发明的一或多个技术以使用大体上由f(i)表示的函数解码表示最末有效系数的位置的x和y坐标的经二进制化值的二进制,其中i对应于所述二进制于所述经二进制化值中的位置。在一些实例中,熵解码单元70可使用所确定的上下文来解码经编码的数据,以再生二进制的值(例如,“0”或“1”)。尽管被描述为对应于最末有效系数字置,但本发明的技术同样可应用于熵解码其它语法元素。例如,熵解码单元70可使用上下文来熵解码各种语法元素,例如,发送到运动补偿单元72和帧内预测单元74中的一者或两者的经量化的系数的语法元素、表示经量化的变换系数和/或表示与经编码的视频位流相关联的TU的最末有效系数的值的语法元素,其中所述上下文是使用表示对应语法元素的值的二进制索引的一或多个函数而确定。
例如,如上文参考表1到2和表8到9所描述,“Ctx_i”可表示由熵解码单元70用以解码表示最末有效系数的位置的经二进制化值中的第i个二进制的上下文的索引。在此实例中,熵解码单元70可使用方程式Ctx_i=f(i)导出Ctx_i的值,其中f(i)可为熵解码单元70可用的预定义函数(例如,由源装置12传达),或为由用户选择的函数。另外,熵解码单元70可解码表示f(i)的数据,以便使用所述表示f(i)的数据来获得Ctx_i的值。
在一些实例中,熵解码单元70经配置以使用上文描述的公式(5)到(8),确定用于解码表示最末有效系数字置的数据的二进制的上下文。即,熵解码单元70可如下计算f(i):Ctx_idx=offset+(i>>k)。此外,熵解码单元70可使用以下方程式来导出用于f(i)中的偏移值和k的值:
偏移=3*n+((n+1)>>2),
k=(n+3)>>2,且
n=(log2(block_size)-2)。
在其它实施方案中,熵解码单元70可在解码由经编码的视频位流表示的TU的最末有效系数时将f(i)设定为实例方程式(1)到(4)和(9)到(12)中的一或多者。以此方式,视频解码器30和其组件(例如熵解码单元70)可实施本发明的技术以使用一或多个函数来解码最末有效系数。与存储于表中相比,此类函数可更加高效地存储于视频编码器20和视频解码器30的存储器中。因此,本发明的技术可提供(例如)通过向其它数据分配原本专用于表的存储器或通过减少视频编码器或视频解码器所需的存储器量而更有效地利用存储器的视频编码器和视频解码器。
当视频切片经译码为帧内译码(I)切片时,帧内预测单元74可基于用信号发送的帧内预测模式和来自当前帧或图片的先前经解码块的数据而产生当前视频切片的视频块的预测数据。当视频帧经译码为帧间译码(即B、P或GPB)切片时,运动补偿单元72基于从熵解码单元70接收的运动向量和其它语法元素,产生当前视频切片的视频块的预测性块。可从参考图片列表中的一者内的参考图片中的一者产生所述预测性块。视频解码器30可基于存储于参考帧存储器82中的参考图片,使用默认构建技术来构建所述参考帧列表,列表0和列表1。
运动补偿单元72通过剖析运动向量和其它语法元素而确定当前视频切片的视频块的预测信息,且使用所述预测信息以产生正被解码的当前视频块的预测性块。例如,运动补偿单元72使用所接收的语法元素中的一些以确定用以译码视频切片的视频块的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、切片的参考图片列表中的一或多者的构建信息、切片的每一经帧间编码的视频块的运动向量、切片的每一经帧间译码的视频块的帧间预测状态和用以解码当前视频切片中的视频块的其它信息。
运动补偿单元72也可基于内插滤波器执行内插。运动补偿单元72可使用如由视频编码器20在视频块的编码期间使用的内插滤波器,以计算参考块的次整数像素的内插值。在此状况下,运动补偿单元72可根据接收的语法元素确定由视频编码器20使用的内插滤波器且使用所述内插滤波器来产生预测性块。
反量化单元76反量化(即,解量化)提供于位流中且由熵解码单元70解码的经量化的变换系数。反量化过程可包含针对视频切片中的每一视频块使用由视频解码器30计算的量化参数QPY,以确定量化程度且同样确定应应用的反量化的程度。
反变换单元78将反变换(例如,反DCT、反整数变换或概念上类似的反变换过程)应用于变换系数,以便在像素域中产生残余块。
在运动补偿单元72基于运动向量和其它语法元素产生当前视频块的预测性块之后,视频解码器30通过对来自反变换单元78的残余块与由运动补偿单元72产生的对应预测性块求和而形成经解码的视频块。求和器80表示执行此加法运算的一或多个组件。如果需要,也可应用解块滤波器来对经解码块滤波以便去除方块效应伪影。其它回路滤波器(译码回路中或译码回路后)也可用以使像素转变平滑,或另外改进视频质量。接着将给定帧或图片中的经解码的视频块存储于参考帧存储器82中,所述参考图片存储器存储用于后续运动补偿的参考图片。参考帧存储器82也存储经解码的视频,用于稍后呈现于显示装置上(例如图1的显示装置32)。
以此方式,图3的视频解码器30表示视频解码器的实例,所述视频解码器经配置以使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文,并使用所确定的上下文译码所述二进制。此外,视频解码器30也表示视频解码器的实例,其中函数通过将二进制的索引右移位值k且将经右移位的值添加到偏移值,来产生上下文的上下文索引,其中所述偏移值是根据公式偏移=3*n+((n+1)>>2)而确定,其中值k是根据公式k=(n+3)>>2而确定,且其中值n是根据公式n=(log2(block_size)-2)而确定。
图4为说明用于编码当前块的实例方法的流程图。当前块可包括当前CU或所述当前CU的一部分。尽管参考了视频编码器20(图1和图2)进行描述,但应理解,其它装置可经配置以执行类似于图4的方法的方法。此外,尽管图4的实例方法特定地描述使用这些技术来译码与视频块的最末有效系数的位置有关的语法元素,但应理解,这些技术同样可应用于译码其它语法元素。
在此实例中,视频编码器20最初预测当前块(150)。例如,视频编码器20可计算当前块的一或多个预测单元(PU)。视频编码器20可接着计算当前块的残余块,(例如)以产生变换单元(TU)(152)。为了计算所述残余块,视频编码器20可计算当前块的原始未经译码的块与所预测的块之间的差。视频编码器20可接着变换和量化残余块的系数(154)。接下来,视频编码器20可扫描残余块的经量化的变换系数(156)。在扫描期间,或在扫描之后,视频编码器20可熵编码所述系数(158)。例如,视频编码器20可使用CAVLC或CABAC来编码所述系数。
视频编码器20也可确定TU中的最末有效系数的位置的值(160)。所述值可包括(例如)表示所述最末有效系数的位置的经二进制化的值,例如,如上文参考表1所描述。所述值的最大数目个二进制可使用CABAC进行译码,而超过所述最大数目的其它二进制可进行旁路译码,再次如参考表1所描述。明确地说,根据本发明的技术,视频编码器20可使用函数来确定用于所述值的二进制的上下文(162)。如上文所解释的,所述上下文可描述所述二进制具有特定值(例如,“0”或“1”)的可能性。所述函数可对应于上文所描述的函数(1)到(12)中的一者,或概念上类似的函数。
关于函数(5)到(8)的实例,视频编码器20可使用公式偏移+(i>>k)(其中偏移=3*n+((n+1)>>2)、k=(n+3)>>2,且n=(log2(block_size)-2)),来确定用于经二进制化值中的位于位置i处的二进制的上下文ctx_idx,其中所述经二进制化值表示最末有效系数的位置。即,视频编码器20可对于待熵编码的每一二进制反复执行,且执行上文所展示的函数以确定用于译码当前反复的二进制的上下文。接着视频编码器20可使用所确定的上下文来编码所述值的二进制(例如,未超过最大数目的二进制的二进制)(164)。同样地,视频编码器20可旁路译码所述值的任何剩余二进制(166)。
以此方式,图4的方法表示方法的实例,所述方法包含使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文,并使用所确定的上下文译码所述二进制。此外,所述函数可通过将二进制的索引右移位值k且将经右移位的值添加到偏移值,来产生上下文的上下文索引,其中所述偏移值是根据公式偏移=3*n+((n+1)>>2)而确定,其中值k是根据公式k=(n+3)>>2而确定,且其中值n是根据公式n=(log2(block_size)-2)而确定。
图5为说明用于解码视频数据的当前块的实例方法的流程图。当前块可包括当前CU或所述当前CU的一部分。尽管参考了视频解码器30(图1和3)进行描述,但应理解,其它装置可经配置以执行类似于图5的方法的方法。此外,尽管图4的实例方法特定地描述使用这些技术来译码与视频块的最末有效系数的位置有关的语法元素,但应理解,这些技术同样可应用于译码其它语法元素。
视频解码器30可预测当前块(200),例如,使用帧内或帧间预测模式以计算当前块的所预测块。视频解码器30也可接收当前块的经熵译码数据,例如,对应于当前块的残余块的系数的经熵译码数据(202)。视频解码器30可熵解码所述经熵译码数据,以再生残余块的系数(204)。
根据本发明的技术,视频解码器30可接收指示TU中的最末有效系数的位置的经编码值(206)。所述值的最大数目的二进制可使用CABAC进行解码,而超过所述最大数目的其它二进制可进行旁路解码,如参考表1所描述。明确地说,根据本发明的技术,视频解码器30可使用函数来确定所述值的二进制的上下文(208)。如上文所解释的,所述上下文可描述所述二进制具有特定值(例如,“0”或“1”)的可能性。所述函数可对应于上文所描述的函数(1)-(12)中的一者,或概念上类似的函数。
关于函数(5)到(8)的实例,视频解码器30可使用公式偏移+(i>>k)(其中偏移=3*n+((n+1)>>2)、k=(n+3)>>2,且n=(log2(block_size)-2)),来确定正被解码的经二进制化值中的位于位置i处的二进制的上下文ctx_idx,其中所述经二进制化值表示最末有效系数的位置。即,视频解码器30可反复地解码有待熵解码的每一二进制,且执行上文所展示的函数以确定用于译码当前反复的二进制的上下文。接着视频解码器30可使用所确定的上下文来解码所述值的二进制(例如,未超过最大数目的二进制的二进制)(210)。例如,视频解码器30可使用所确定的上下文来解码从视频编码器20接收的经编码数据,以再生或以其它方式获得所述值的二进制。同样地,视频解码器30可旁路解码所述值的任何剩余二进制(212)。
接着视频解码器30可基于最末有效系数的位置而反扫描所再生的系数(214),以建立经量化的变换系数的块。即,视频解码器30可于最末有效系数的位置处开始,且按照大体上对应于编码器所使用的扫描次序的扫描次序将经解码的系数置于TU中。接着视频解码器30可反量化且反变换所述系数以产生残余块(216)。视频解码器30可最终通过组合所预测块与残余块来解码当前块(218)。
以此方式,图5的方法表示方法的实例,所述方法包含使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文,并使用所确定的上下文译码所述二进制。此外,所述函数可通过将二进制的索引右移位值k且将经右移位的值添加到偏移值,来产生上下文的上下文索引,其中所述偏移值是根据公式偏移=3*n+((n+1)>>2)而确定,其中值k是根据公式k=(n+3)>>2而确定,且其中值n是根据公式n=(log2(block_size)-2)而确定。
应认识到,取决于实例,本文中所描述的技术中的任一者的某些动作或事件可按照不同顺序执行、可被添加、合并或完全省略(例如,对于实践所述技术来说,并非所有所描述的动作或事件皆是必要的)。此外,在某些实例中,可(例如)通过多线程处理、中断处理或多个处理器同时而非依序执行动作或事件。
在一或多个实例中,所描述功能可以硬件、软件、固件或其任何组合予以实施。如果以软件实施,那么所述功能可作为一或多个指令或代码而存储于计算机可读媒体上或经由计算机可读媒体进行传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体(其对应于例如数据存储媒体的有形媒体)或通信媒体,通信媒体包含促进(例如)根据通信协议将计算机程序从一处传送到另一处的任何媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波的通信媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索指令、代码和/或数据结构以用于实施本发明中所描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。
通过实例而非限制,这些计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用以存储呈指令或数据结构的形式的所要代码且可由计算机存取的任何其它媒体。又,任何连接可适当地称为计算机可读媒体。例如,如果使用同轴电缆、光缆、双绞线、数字订户线(DSL)或无线技术(例如,红外线、无线电和微波)而从网站、服务器或其它远端源传输指令,那么同轴电缆、光缆、双绞线、DSL或无线技术(例如,红外线、无线电和微波)包含于媒体的定义中。然而,应理解,计算机可读存储媒体和数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而实情为,是有关非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含光盘(CD)、雷射光盘、光学光盘、数字影音光盘(DVD)、软碟和蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘通过雷射以光学方式再生数据。以上各物的组合也应包含于计算机可读媒体的范围内。
可由例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路的一或多个处理器来执行指令。因此,本文中所使用的术语“处理器”可指上述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,可将本文中所描述的功能性提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或并入于组合式编码解码器中。又,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明的技术可以多种装置或设备予以实施,所述装置或设备包含无线手机、集成电路(IC)或IC集合(例如,芯片集)。在本发明中描述各种组件、模块或单元以强调经配置以执行所揭示技术的装置的功能方面,但未必要求由不同硬件单元来实现。实情为,如上文所描述,可将各种单元组合于编码解码器硬件单元中,或由互操作性硬件单元(包含如上文所描述的一或多个处理器)的集合,结合合适的软件和/或固件来提供所述单元。
已描述各种实例。这些和其它实例在以下权利要求书的范围内。
Claims (21)
1.一种译码视频数据的方法,所述方法包括:
使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文;
其中所述函数通过将所述二进制的所述索引右移位值k且将所述经右移位的值添加到偏移值来产生所述上下文的上下文索引,
其中所述偏移值是根据以下公式而确定:
偏移=3*n+((n+1)>>2),
其中所述值k是根据以下公式而确定:
k=(n+3)>>2,
其中所述值n是根据以下公式而确定:
n=(log2(block_size)-2),且
其中所述值block_size包括指示所述块的大小的值;和
使用所述所确定的上下文译码所述二进制。
2.根据权利要求1所述的方法,其中确定所述上下文包括执行所述函数。
3.根据权利要求1所述的方法,其中所述函数包括线性函数。
4.根据权利要求1所述的方法,其中所述函数包括非线性函数。
5.根据权利要求1所述的方法,其中所述函数通过将所述二进制的所述索引右移位一而产生所述上下文的上下文索引。
6.根据权利要求1所述的方法,其进一步包括从用户接收所述函数。
7.根据权利要求1所述的方法,其进一步包括接收定义所述函数的语法数据。
8.根据权利要求1所述的方法,其中译码所述二进制包括使用所述所确定的上下文来熵解码经编码的数据,以再生所述二进制的值。
9.根据权利要求1所述的方法,其中译码所述二进制包括使用所述所确定的上下文来熵编码所述二进制。
10.一种用于译码视频数据的装置,所述装置包括视频译码器,所述视频译码器经配置以:
使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文,
其中所述函数通过将所述二进制的所述索引右移位值k且将所述经右移位的值添加到偏移值来产生所述上下文的上下文索引,
其中所述偏移值是根据以下公式而确定:
偏移=3*n+((n+1)>>2),
其中所述值k是根据以下公式而确定:
k=(n+3)>>2,
其中所述值n是根据以下公式而确定:
n=(log2(block_size)-2),
其中所述值block_size包括指示所述块的大小的值;和
使用所述所确定的上下文译码所述二进制。
11.根据权利要求10所述的装置,其中所述视频译码器经配置以至少部分通过执行所述函数来确定所述上下文。
12.根据权利要求10所述的装置,其中所述视频译码器进一步经配置以接收定义所述函数的语法数据。
13.根据权利要求10所述的装置,其中所述视频译码器经配置以至少部分通过使用所述所确定的上下文熵解码经编码的数据来译码所述二进制,以再生所述二进制的值。
14.根据权利要求10所述的装置,其中所述视频译码器经配置以至少部分通过使用所述所确定的上下文熵编码所述二进制来译码所述二进制。
15.根据权利要求10所述的装置,其中所述装置包括下列中的至少一者:
集成电路;
微处理器;和
包括所述视频译码器的无线通信装置。
16.一种用于译码视频数据的装置,所述装置包括:
用于使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文的装置;
其中所述函数通过将所述二进制的所述索引右移位值k且将所述经右移位的值添加到偏移值来产生所述上下文的上下文索引,
其中所述偏移值是根据以下公式而确定:
偏移=3*n+((n+1)>>2),
其中所述值k是根据以下公式而确定:
k=(n+3)>>2,
其中所述值n是根据以下公式而确定:
n=(log2(block_size)-2),且
其中所述值block_size包括指示所述块的大小的值;和
用于使用所述所确定的上下文译码所述二进制的装置。
17.根据权利要求16所述的装置,其中用于确定所述上下文的所述装置包括用于执行所述函数的装置。
18.根据权利要求16所述的装置,其进一步包括用于接收定义所述函数的语法数据的装置。
19.一种编码有指令的计算机可读存储媒体,所述指令当被执行时使计算装置的可编程处理器:
使用指示视频数据的块的最末有效系数的值的二进制的索引的函数来确定用于熵译码所述二进制的上下文;
其中所述函数通过将所述二进制的所述索引右移位值k且将所述经右移位的
值添加到偏移值来产生所述上下文的上下文索引,
其中所述偏移值是根据以下公式而确定:
偏移=3*n+((n+1)>>2),
其中所述值k是根据以下公式而确定:
k=(n+3)>>2,
其中所述值n是根据以下公式而确定:
n=(log2(block_size)-2),且
其中所述值block_size包括指示所述块的大小的值;和
使用所述所确定的上下文译码所述二进制。
20.根据权利要求19所述的计算机可读存储媒体,其中使所述可编程处理器确定所述上下文的所述指令进一步包括使所述可编程处理器执行所述函数的指令。
21.根据权利要求19所述的计算机可读存储媒体,其进一步编码有指令,所述指令当被执行时使所述可编程处理器接收定义所述函数的语法数据。
Applications Claiming Priority (9)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201261614178P | 2012-03-22 | 2012-03-22 | |
| US61/614,178 | 2012-03-22 | ||
| US201261620273P | 2012-04-04 | 2012-04-04 | |
| US61/620,273 | 2012-04-04 | ||
| US201261666316P | 2012-06-29 | 2012-06-29 | |
| US61/666,316 | 2012-06-29 | ||
| US13/796,572 US9237344B2 (en) | 2012-03-22 | 2013-03-12 | Deriving context for last position coding for video coding |
| US13/796,572 | 2013-03-12 | ||
| PCT/US2013/030886 WO2013142195A1 (en) | 2012-03-22 | 2013-03-13 | Deriving context for last position coding for video coding |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1202741A1 HK1202741A1 (zh) | 2015-10-02 |
| HK1202741B true HK1202741B (zh) | 2018-06-08 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11496385B2 (en) | Binarizing secondary transform index | |
| CN113612997B (zh) | 针对视频译码使用与位置相关的预测组合的改进视频帧内预测 | |
| US9848197B2 (en) | Transforms in video coding | |
| US9237344B2 (en) | Deriving context for last position coding for video coding | |
| CN105659603B (zh) | 编码及解码视频数据的方法、装置及计算机可读存储媒体 | |
| US20150071357A1 (en) | Partial intra block copying for video coding | |
| US20130070855A1 (en) | Hybrid motion vector coding modes for video coding | |
| US20130195199A1 (en) | Residual quad tree (rqt) coding for video coding | |
| US20130272423A1 (en) | Transform coefficient coding | |
| US20130188698A1 (en) | Coefficient level coding | |
| CN103959785A (zh) | 在视频译码中用于色度分量的变换单位分割 | |
| US20130128971A1 (en) | Transforms in video coding | |
| WO2014168812A1 (en) | Sample adaptive offset scaling based on bit-depth | |
| KR20140139571A (ko) | 비디오 코딩을 위한 계층간 텍스처 예측 | |
| US9762921B2 (en) | Deblocking filter with reduced line buffer | |
| HK1202741B (zh) | 导出最末位置译码的上下文以供视频译码 | |
| HK1196734B (zh) | 一种视频数据编解码的方法及设备 | |
| HK1196734A (zh) | 一种视频数据编解码的方法及设备 |