CN104067524A - 具有精简的初始化值集合的上下文自适应熵译码 - Google Patents

具有精简的初始化值集合的上下文自适应熵译码 Download PDF

Info

Publication number
CN104067524A
CN104067524A CN201380005756.9A CN201380005756A CN104067524A CN 104067524 A CN104067524 A CN 104067524A CN 201380005756 A CN201380005756 A CN 201380005756A CN 104067524 A CN104067524 A CN 104067524A
Authority
CN
China
Prior art keywords
initialization
context
video data
decoding
value set
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380005756.9A
Other languages
English (en)
Other versions
CN104067524B (zh
Inventor
郭立威
穆哈默德·蔡德·科班
翔林·王
马尔塔·卡切维奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN104067524A publication Critical patent/CN104067524A/zh
Application granted granted Critical
Publication of CN104067524B publication Critical patent/CN104067524B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/21Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with binary alpha-plane coding for video objects, e.g. context-based arithmetic encoding [CAE]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

用于对例如视频数据等数据进行译码的技术包含使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码。所述技术进一步包含使用所述相同的初始化值集合对视频数据的符合第二切片类型的第二切片的符合所述相同类型的语法元素的第二语法元素进行译码。在此实例中,所述第一切片类型可不同于所述第二切片类型。而且在此实例中,所述第一切片类型和所述第二切片类型中的至少一者可为时间预测的切片类型。举例来说,所述第一和第二切片类型中的所述至少一者可为单向帧间预测(P)切片类型或双向帧间预测(B)切片类型。

Description

具有精简的初始化值集合的上下文自适应熵译码
本申请案主张2012年1月19申请的第61/588,604号美国临时申请案以及2012年1月19日申请的第61/588,626号美国临时申请案的权益,所述申请案中的每一者的全部内容以引用的方式并入本文中。
技术领域
本发明涉及视频译码,且更特定来说,涉及对由视频译码过程产生的视频数据的切片进行熵译码。
背景技术
数字视频能力可并入到大范围的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频会议装置、视频串流装置等等。数字视频装置实施视频压缩技术,例如由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)、目前在开发中的高效率视频译码(HEVC)标准界定的标准和所述标准的扩展部分中所描述的那些视频压缩技术。视频装置可通过实施此些视频压缩技术来更高效地发射、接收、编码、解码和/或存储数字视频信息。
视频压缩技术执行空间(图片内)预测和/或时间(图片间)预测以减少或移除视频序列中所固有的冗余。对于基于块的视频译码,可将视频切片(即,视频帧或视频帧的一部分)分割为若干视频块,所述视频块还可被称作树块、译码单元(CU)和/或译码节点。使用空间预测相对于同一图片中的相邻块中的参考样本来编码图片的经帧内译码(I)切片中的视频块。图片的经帧间译码(P或B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。
空间或时间预测产生对待译码的块的预测性块。残余数据表示待译码的原始块与预测性块之间的像素差。根据指向形成预测性块的参考样本块的运动向量以及指示经译码块与所述预测性块之间的差的残余数据来编码经帧间译码块。根据帧内译码模式和残余数据来编码经帧内译码块。为了进一步压缩,可将残余数据从像素域变换为变换域,从而产生残余变换系数,所述残余变换系数随后可被量化。起初布置在二维阵列中的经量化变换系数可被扫描以产生变换系数的一维向量。随后可应用熵译码以实现更多的压缩。
发明内容
作为一个实例,本发明的技术包含针对用于对视频数据进行译码的一或多个上下文来确定对应于初始概率的初始上下文状态以作为执行上下文自适应熵译码过程的部分。在一些实例中,所述上下文自适应熵译码过程可为上下文自适应二进制算术译码(CABAC)过程。举例来说,所揭示的技术可包含基于一或多个上下文的初始化值来确定所述上下文的初始上下文状态。具体来说,在此实例中,可基于与视频数据相关联的切片类型来选择所述一或多个上下文的所述初始化值或其初始化值“集合”。举例来说,与所述视频数据相关联的所述切片类型可包含多种切片类型中的任一者(例如,帧内预测(I)切片类型、单向帧间预测(P)切片类型及双向帧间预测(B)切片类型中的任一者(作为一些实例))。此外,还是在此实例中,当与所述视频数据相关联的所述切片类型是上述切片类型中的两者或更多者中的任一者时,可选择相同的初始化值集合。因此,与其它技术相比,可减小用于对具有不同切片类型的切片的语法元素进行译码的初始化值集合的数目。
在本发明的一个实例中,一种对视频数据进行译码的方法包含使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码。所述方法进一步包含使用所述初始化值集合对视频数据的符合第二切片类型的第二切片的符合特定类型的语法元素的第二语法元素进行译码。在此实例中,所述第一切片类型不同于所述第二切片类型。而且在此实例中,所述第一切片类型和所述第二切片类型中的至少一者是时间预测的切片类型。
在本发明的另一实例中,一种经配置以对视频数据进行译码的设备包含视频译码器。在此实例中,一种对视频数据进行译码的视频译码器使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码。所述视频译码器进一步经配置以使用所述初始化值集合对视频数据的符合第二切片类型的第二切片的符合特定类型的语法元素的第二语法元素进行译码。在此实例中,所述第一切片类型不同于所述第二切片类型。而且在此实例中,所述第一切片类型和所述第二切片类型中的至少一者是时间预测的切片类型。
在本发明的另一实例中,一种经配置以对视频数据进行译码的装置包含用于使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码的装置。所述装置进一步包含用于使用所述初始化值集合对视频数据的符合第二切片类型的第二切片的符合特定类型的语法元素的第二语法元素进行译码的装置。在此实例中,所述第一切片类型不同于所述第二切片类型。而且在此实例中,所述第一切片类型和所述第二切片类型中的至少一者是时间预测的切片类型。
本发明中所描述的技术可以硬件、软件、固件,或其组合来实施。如果以硬件实施,那么可将一种设备实现为集成电路、处理器、离散逻辑,或其任何组合。如果以软件来实施,则可在例如微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或数字信号处理器(DSP)等一或多个处理器中执行软件。可最初将执行所述技术的软件存储于有形计算机可读媒体中且在处理器中加载并执行。
在另一实例中,一种计算机可读存储媒体存储指令,所述指令在被执行时致使一或多个处理器对视频数据进行译码。在此实例中,所述指令致使所述一或多个处理器使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码。所述计算机可读存储媒体进一步包括致使所述一或多个处理器使用所述初始化值集合对视频数据的符合第二切片类型的第二切片的符合特定类型的语法元素的第二语法元素进行译码的指令。在此实例中,所述第一切片类型不同于所述第二切片类型。而且在此实例中,所述第一切片类型和所述第二切片类型中的至少一者是时间预测的切片类型。
一或多个实例的细节陈述于附图及以下描述中。其它特征、目标及优势将从描述及附图和从权利要求书中显而易见。
附图说明
图1是说明与本发明的技术一致的可执行用于以精简的初始化值集合进行上下文自适应熵译码的技术的视频编码和解码系统的实例的框图。
图2是说明与本发明的技术一致的可执行用于以精简的初始化值集合进行上下文自适应熵译码的技术的视频编码器的实例的框图。
图3是说明与本发明的技术一致的可执行用于以精简的初始化值集合进行上下文自适应熵译码的技术的视频解码器的实例的框图。
图4到6是说明与本发明的技术一致的以精简的初始化值集合进行上下文自适应熵译码的实例性方法的流程图。
图7是说明与本发明的技术一致的对与视频数据的一或多个切片相关联的一或多个语法元素进行译码的实例性方法的流程图。
具体实施方式
一般来说,本发明的技术涉及上下文自适应二进制算术译码(CABAC)。出差一般包含对视频数据的例如切片等视频单元的语法元素进行译码。出差技术可在以下意义上被视为“上下文自适应”:用于对特定类型的语法元素进行译码的上下文可基于历史译码动作(例如,对相同类型的先前语法元素的译码)而改变(即,适应)。本发明的技术一般针对于各种类型的语法元素的上下文的初始化。
作为一个实例,本文中所揭示的技术包含针对用于对视频数据的各种类型的语法元素进行译码的一或多个上下文来确定对应于初始概率的初始上下文状态以作为执行上下文自适应熵译码过程(例如,CABAC)的部分。举例来说,所揭示的技术可包含基于一或多个上下文的初始化值来确定所述上下文的初始上下文状态。具体来说,在此实例中,可基于与视频数据相关联的切片类型来选择所述一或多个上下文的所述初始化值或其初始化值“集合”。举例来说,与所述视频数据相关联的所述切片类型可包含多种切片类型中的任一者(例如,帧内预测(I)切片类型、单向帧间预测(P)切片类型及双向帧间预测(B)切片类型中的任一者(作为一些实例))。此外,可针对上述切片类型中的两者或更多者来选择相同的初始化值集合。因此,与其它技术相比,可减小用于对具有不同切片类型的切片的语法元素进行译码的初始化值集合的数目。
换句话说,并非将个别初始化值集合指派给每一类型的切片,本发明的技术包含将相同的初始化值集合指派给两种或更多种类型的切片。举例来说,可将相同的初始化值集合指派给I切片类型和P切片类型。作为另一实例,可将相同的初始化值集合指派给I切片类型和B切片类型。作为又另一实例,可将相同的初始化值集合指派给P切片类型和B切片类型。以此方式,可将相同的初始化值集合指派给两种不同的切片类型,其中的至少一者是帧间预测切片类型,还被称作时间预测切片类型。帧间预测或时间预测切片类型包含P切片类型和B切片类型。
作为另一实例,所述技术进一步包含,针对以上文所描述的方式使用相同的初始化值集合进行译码的视频数据的每一切片,至少部分基于与相应切片相关联的切片类型来确定一或多个上下文的初始上下文状态。因此,与其它技术相比,可提高初始上下文状态所指示的初始概率的准确度。
作为又另一实例,所揭示的技术包含自适应地选择初始化值集合以用于确定用于对视频数据进行译码的上下文自适应熵译码过程的一或多个上下文的初始上下文状态。具体来说,在此实例中,可使用与切片相关联的初始化指示符值而不是(例如)与切片相关联的切片类型来指示用于对视频数据的切片进行译码的一或多个上下文的初始化值集合。在一些情况下,视频译码器可针对视频数据的具有不同切片类型的多个切片中的每一者对相同的初始化指示符值进行译码,从而导致使用相同的初始化值集合对每一切片(因此,不同切片类型的多个切片,其可包含至少一个帧间预测切片)的一或多个语法元素进行译码。
或者,作为又另一实例,视频数据的具有不同切片类型的多个切片的初始化指示符值可为不同的初始化指示符值,从而导致使用不同的初始化值集合对每一切片的一或多个语法元素进行译码。在此实例中,所揭示的技术包含基于每一切片的不同初始化指示符值而不是与相应切片相关联的切片类型来确定一或多个上下文的初始上下文状态。因此,与其它技术相比,可提高初始上下文状态所指示的初始概率的准确度。
因此,所揭示的技术在一些情况下可使得能够更有效地对视频数据(例如,视频数据的一或多个块的经量化经变换残余系数值,或其它语法信息)进行译码。举例来说,所述技术可使得能够使用具有与其它系统(例如,存储每一切片类型的上下文的不同的上下文初始化值或“初始化值集合”的系统)相比具有较低的复杂度的译码系统对视频数据进行译码。另外,所述技术可使得能够比在使用其它技术(例如,包含确定用于对视频数据进行译码的初始上下文状态而不考虑与视频数据相关联的切片类型信息,或不允许自适应地确定初始上下文状态而不管切片类型信息如何的技术)对类似数据进行译码时使用更少的位对视频数据进行译码。具体来说,使用所揭示的技术可导致初始化上下文自适应熵译码过程的一或多个上下文,使得所述上下文与使用其它技术初始化的上下文相比包含相对更准确的概率估计。以此方式,当使用本发明的技术时,可存在用于对视频数据进行译码的译码系统的复杂度上的相对降低,和/或针对包含经译码视频数据的经译码位流的相对的位节省。
图1是说明与本发明的技术一致的可执行用于以精简的初始化值集合进行上下文自适应熵译码的技术的视频编码和解码系统的实例的框图。如图1中所示,系统10包含源装置12,所述源装置产生经编码视频数据以在稍后时间由目的地装置14解码。源装置12和目的地装置14可包括广泛多种装置中的任一者,包含桌上型计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如,所谓的“智能”电话)、所谓的“智能”平板、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、视频串流装置等。在一些情况下,源装置12和目的地装置14可经装备以用于无线通信。
目的地装置14可经由链路16接收待解码的经编码视频数据。链路16可包括能够将经编码的视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一个实例中,链路16可包括用以使得源装置12能够实时地将经编码视频数据直接发射到目的地装置14的通信媒体。可根据例如无线通信协议等通信标准来调制经编码的视频数据,且将其发射到目的地装置14。所述通信媒体可包括任何无线或有线通信媒体,例如射频(RF)频谱或一或多条物理传输线。通信媒体可形成例如局域网、广域网或例如因特网的全球网络的基于包的网络的部分。通信媒体可包含可用于促进从源装置12到目的地装置14的通信的路由器、交换器、基站或任何其它设备。
或者,可从输出接口22将经编码数据输出到存储装置24。类似地,可通过输入接口26从存储装置24存取经编码数据。存储装置24可包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。在进一步的实例中,存储装置24可对应于文件服务器或可保留由源装置12产生的经编码视频的另一中间存储装置。目的地装置14可经由流式传输或下载而存取来自存储装置24的所存储的视频数据。文件服务器可为能够存储经编码视频数据和将所述经编码视频数据发射到目的地装置14的任何类型的服务器。实例性文件服务器包含网络服务器(例如,用于网站)、FTP服务器、网络附接式存储(NAS)装置,或本地磁盘驱动器。目的地装置14可通过任何标准的数据连接(包含因特网连接)来存取经编码视频数据。此可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、缆线调制解调器,等等),或适合于存取存储于文件服务器上的经编码视频数据的以上两者的组合。经编码视频数据从存储装置24的传输可为流式传输、下载传输,或两者的组合。
本发明的技术不一定受限于无线应用或环境。所述技术可应用于支持多种多媒体应用(例如,空中电视广播、有线电视传输、卫星电视发射、流式视频传输(例如,经由因特网))中的任一者的视频译码、供存储于数据存储媒体上的数字视频的编码、存储于数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频传输以支持例如视频流式传输、视频回放、视频广播和/或视频电话等应用。
在图1的实例中,源装置12包含视频源18、视频编码器20和输出接口22。在一些情况下,输出接口22可包含调制器/解调器(调制解调器)和/或发射器。在源装置12中,视频源18可包含例如视频俘获装置(例如,摄像机、含有先前俘获的视频的视频存档、用以从视频内容提供者接收视频的视频馈送接口)的源,和/或用于产生计算机图形数据以作为源视频的计算机图形系统的源,或此些源的组合。作为一个实例,如果视频源18为摄像机,则源装置12与目的地装置14可形成所谓的相机电话或视频电话。然而,一般来说,本发明中所描述的技术可适用于视频译码,且可适用于无线及/或有线应用。
可由视频编码器20来编码经俘获的、经预先俘获的或计算机产生的视频。可经由源装置12的输出接口22将经编码视频数据直接发射到目的地装置14。还(或替代地)可将经编码视频数据存储到存储装置24上以供稍后由目的地装置14或其它装置存取以进行解码和/或回放。
目的地装置14包含输入接口26、视频解码器30和显示装置28。在一些情况下,输入接口26可包含接收器和/或调制解调器。目的地装置14的输入接口26经由链路16或从存储装置24接收经编码视频数据。经由链路16传送或在存储装置24上提供的经编码视频数据可包含由视频编码器20产生以供例如视频解码器30等视频解码器在解码视频数据中使用的多种语法元素。此些语法元素可与在通信媒体上传输、存储于存储媒体上或存储于文件服务器上的经编码视频数据包含在一起。
显示装置28可与目的地装置14一起集成,或在目的地装置14外部。在一些实例中,目的地装置14可包含集成式显示装置,且还经配置以与外部显示装置介接。在其它实例中,目的地装置14可为显示装置。一般来说,显示装置28向用户显示经解码视频数据,且可包括多种显示装置中的任一者,例如,液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
视频编码器20和视频解码器30可根据视频压缩标准(目前由ITU-T视频译码专家组(VCEG)以及ISO/IEC运动图片专家组(MPEG)的视频译码联合合作小组(JCT-VC)开发的高效率视频译码(HEVC))来操作,且可符合HEVC测试模型(HM)。或者,视频编码器20和视频解码器30可根据例如ITU-T H.264标准(或者被称作MPEG4第10部分,高级视频译码(AVC))或此类标准的扩展等其它专有或产业标准而操作。然而,本发明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含MPEG-2和ITU-T H.263。被称作“HEVC工作草案8(HEVC Working Draft8)”或“WD8”的HEVC的最近的草案描述于布洛斯(Bross)等人的文献JCTVC-J1003_d7“高效率视频译码(HEVC)文本规范草案8(High efficiency video coding(HEVC)text specification draft8)”,ITU-T SG16WP3和ISO/IEC JTC1/SC29/WG11的视频译码联合合作小组(JCT-VC)第10届会议:瑞典斯德哥尔摩,2012年7月11日至20日,其至2012年10月2日为止可从http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip下载。
尽管图1中未展示,但在一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包含适当的MUX-DEMUX单元或其它硬件及软件,以处置对共同数据流或单独数据流中的音频与视频两者的编码。在一些实例中,如果适用,MUX-DEMUX单元可符合ITU H.223多路复用器协议或例如用户数据报协议(UDP)等其它协议。
视频编码器20和视频解码器30各自可经实施为例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合等多种合适编码器或解码器电路中的任一者。当所述技术部分地在软件中实施时,一装置可将用于软件的指令存储于合适的非暂时性计算机可读媒体中,且在硬件中使用一或多个处理器来执行所述指令以执行本发明的技术。视频编码器20和视频解码器30中的每一者可包含于一或多个编码器或解码器中,所述视频编码器和视频解码器中的任一者可在相应装置中被集成为组合式编码器/解码器(“CODEC”)的一部分。
HEVC标准化工作是基于被称作HEVC测试模型(HM)的视频译码装置的演进模型。HM假设相对于根据(例如)ITU-T H.264/AVC的现有装置的视频译码装置的额外能力。举例来说,尽管H.264提供九种帧内预测编码模式,但HM可提供多达三十五种帧内预测编码模式。
一般来说,HM的工作模型描述可被划分为包含亮度样本和色度样本两者的树块或最大译码单元(LCU)的序列的视频帧或图片。树块具有与H.264标准的宏块类似的目的。切片包含呈译码次序的若干连续树块。视频帧或图片可被分割为一或多个切片。每一树块可根据四叉树被分裂为译码单元(CU)。举例来说,作为四叉树的根节点的树块可被分裂为四个子节点,且每一子节点又可为母节点,且被分裂为另外四个子节点。作为四叉树的叶节点的最终的未分裂的子节点包括译码节点,即,经译码视频块。与经译码位流相关联的语法数据可界定树块可被分裂的最大次数,且还可界定译码节点的最小大小。
CU包含译码节点和与译码节点相关联的预测单元(PU)及变换单元(TU)。所述CU的大小对应于译码节点的大小且在形状上必须是正方形。CU的大小的范围可从8×8像素直到具有最大64×64像素或更大的树块的大小。每一CU可含有一或多个PU及一或多个TU。与CU相关联的语法数据可描述(例如)将CU分割为一或多个PU。分割模式在CU被跳过、被直接模式编码、被帧内预测模式编码还是被帧间预测模式编码之间可不同。可将PU的形状分割为非正方形。与CU相关联的语法数据还可描述(例如)根据四叉树将CU分割为一或多个TU。TU的形状可为正方形或非正方形。
HEVC标准允许根据TU的变换,其对于不同的CU可不同。所述TU的大小通常基于针对经分割LCU而界定的给定CU内的PU的大小而设定,但可能不总是这样。TU通常与PU是相同大小或小于PU。在一些实例中,可使用被称为“残余四叉树”(RQT)的四叉树结构将对应于CU的残余样本细分为更小的单元。RQT的叶节点可被称作TU。可将与TU相关联的像素差值变换以产生变换系数,所述变换系数可经量化。
一般来说,PU包含与预测过程相关的数据。举例来说,在对PU进行帧内模式编码时,PU可包含描述PU的帧内预测模式的数据。作为另一实例,在对PU进行帧间模式编码时,PU可包含界定PU的运动向量的数据。界定PU的运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量指向的参考帧,和/或运动向量的参考图片列表(例如,列表0、列表1或列表C)。
一般来说,TU用于变换和量化过程。具有一或多个PU的给定CU还可包含一或多个TU。在预测之后,视频编码器20可计算对应于PU的残余值。所述残余值包括像素差值,所述像素差值可被变换为变换系数、使用TU经量化且经扫描以产生串行化变换系数以用于熵译码。本发明通常术语“视频块”(或简称为“块”)来指代CU的译码节点。在一些特定情况下,本发明还可使用术语“视频块”来指代树块,即,LCU或CU,其包含译码节点及PU和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”继之以“向上”、“向下”、“左”或“右”的指示来指示。因此,例如,“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来论述以作为其各种组件,如图2和3中所描绘且如下文更详细地描述。如先前所阐释,根据一些视频译码技术,在视频编码器20中,可将原始视频序列的帧分割为矩形区,或“块”,其可使用帧内模式(I模式)或帧间模式(P模式或B模式)译码进行译码。可使用某一类型的变换译码(例如,离散余弦变换(DCT)译码)对所述块进行译码。然而,纯基于变换的译码可仅减少特定块内的像素间相关性,而不考虑像素的块间相关性,且可能仍产生传输的相对高的位速率。另外,一些数字图像译码标准还可利用可减少块之间的像素值的相关性的某些方法。
一般来说,从先前经译码且传输的帧中的一者来预测以P模式编码的块。块的预测信息是由二维(2D)运动向量来表示。对于以I模式编码的块,使用空间预测从与相同的帧内的先前经编码相邻块来形成所预测块。将预测误差(即,正被编码的块与所预测块之间的差)表示为某一离散变换的一组经加权基础函数。通常基于N×N块来执行所述变换。可随后对权重(即,变换系数)进行量化。量化引入信息的损失,且因此经量化系数具有比原始系数低的精确度。
经量化变换系数连同运动向量和某一控制信息一起形成完整的经译码序列表示,且被称作语法元素。在从视频编码器20传输到视频解码器30之前,所有语法元素被熵译码以便进一步减少其表示所需的位数目。
视频解码器30通过首先以与上文参考视频编码器20所描述的相同方式建构预测块,且通过将经压缩预测误差(由残余块表示)添加到所述预测块而获得当前帧中的块。所述经压缩预测误差是通过使用经量化系数对变换基础函数进行加权而找到。经重构的帧与原始帧之间的差异被称为重构误差。
本发明涉及用于确定用于对视频数据进行译码的上下文的初始上下文状态(即,初始概率)以作为执行上下文自适应熵译码过程(例如,CABAC过程)的部分的技术。算术译码是具有高译码效率的许多压缩算法中所使用的熵译码的形式,因为其能够将符号映射到非整数长度码字。算术译码算法的实例是H.264/AVC中所使用的基于上下文(或“上下文自适应”)的二进制算术译码(CABAC)。
一般来说,使用CABAC对数据符号进行译码涉及以下步骤中的一或多者:
(1)二进制化:如果待译码的符号是非二进制值,那么例如视频编码器20或视频解码器30等视频译码器将所述符号映射到所谓的“二进位”的序列。每一二进位可具有“0”或“1”的值。
(2)上下文指派:视频译码器将每一二进位(在常规模式中)指派给上下文。举例来说,视频译码器使用上下文模型来确定如何基于给定二进位可用的信息(例如,先前经编码符号的值,或二进位编号)来计算所述二进位的上下文。
(3)二进位编码:例如视频编码器20等算术编码器对二进位进行编码。为了对二进位进行编码,算术编码器(例如,视频编码器20)将二进位的值的概率(即,二进位的值等于“0”的概率和二进位的值等于“1”的概率)用作输入。每一上下文的(所估计)概率是由被称为“上下文状态”的整数值表示。每一上下文具有一状态,且因此所述状态(即,所估计概率)对于指派给一个上下文的二进位是相同的,且在上下文之间不同。
(4)状态更新:视频译码器基于二进位的实际经译码值来更新选定上下文的概率(状态)(例如,如果二进位值是“1”,那么可增加“1”的概率)。
在起始CABAC过程之前,视频译码器可将初始上下文状态指派给每一上下文。在H.264和目前开发中的HEVC标准的版本“HM4.0”中已使用线性模型来指派每一上下文的初始上下文状态。具体来说,对于每一上下文,可存在预先界定的参数斜率(“m”)和交叉点(“n”),其可被称作初始化值。视频译码器可使用以下表达来导出特定上下文的初始上下文状态:
Int iInitState=((m*iQP)/16)+n; 等式1
iInitState=min(max(1,iInitState),126); 等式2
其中iQP是与正被译码的视频数据相关联的量化参数(有时被称作初始化QP)。在HEVC的版本“HM5.0”中,每一上下文的初始化值表示为8位整数值“m8”(而不是m和n,如H.264和HM4.0中的情况),且使用逐段线性函数导出CABAC初始上下文状态(即,使用m8和iQP值)。
对于不同的切片类型(例如,I模式、P模式和B模式),上文针对相同的语法元素所描述的所估计概率可不同。因此,若干现有的视频压缩标准和/或系统针对不同的切片类型使用不同组的初始化值。因此,由这些标准和/或系统使用的初始化值的总存储可如下表示:
初始化值的数目=上下文的数目*切片类型的数目 等式3
与确定上下文自适应熵译码过程的一或多个上下文(一般来说,或“初始化”一或多个上下文)的初始上下文状态相关的上文所描述的各种方法具有若干缺陷。举例来说,如上文提供的等式3中的关系所说明,特定上下文自适应熵译码过程的初始化值(例如,上文所示的等式3的“初始化值的数目”)的数目可相对大,且可需要大量的数据存储。
本发明描述若干技术,其在一些情况下可减少或消除一些上文所描述的缺陷。举例来说,本发明提供一些技术,其可用于通过允许使用相同的,或“共同的”初始化值(或初始化值“集合”)来初始化视频数据的具有不同切片类型的切片的语法元素的上下文来减少针对上下文自适应熵译码过程的初始化值所存储的数据的量。换句话说,所揭示的技术可使得能够通过在不同的切片类型之间“共享”一或多个初始化值集合来对视频数据的具有不同切片类型的切片进行译码。
作为一个实例,可使用“M”种不同的切片类型,例如SliceType_0、...、SliceType_M-1,以及“N”组初始化值,例如InitializationSet_0、...、InitializationSet_N-l。可界定映射或“映射函数”(例如,“InitializationSet_k=f(SliceType_i)”)来将不同的切片类型映射到不同的初始化值集合。举例来说,当将多种切片类型映射到相同的初始化值集合时,可实现上文所描述的数据存储节约。
在一些实例中,可使用三种不同的切片类型(例如,I模式、P模式和B模式),及仅两个初始化值集合,例如集合1(Set1)和集合2(Set2)。在这些实例中,I模式切片和B模式切片可使用初始化值集合1,且P模式切片可使用初始化值集合2。在其它实例中,P模式切片和B模式切片可使用初始化值集合1,且B模式切片可使用初始化值集合2,以此类推。在又其它实例中,可使用三种切片类型及仅一个初始化值集合。在这些实例中,全部三种切片类型(即,I模式、P模式和B模式)可使用相同的初始化值集合。
作为另一实例,上文所描述的映射函数(即,用于将视频数据的切片的切片类型映射到用于对所述切片的一或多个语法元素进行译码的初始化值集合的映射函数)可被预先界定或“固定”,例如为视频编码器20和视频解码器30两者所知。或者,映射函数可为用户指定的,且/或可使用某一高级语法信息显式地用信号通知给视频解码器30,所述语法信息例如为自适应参数集(APS)、图片参数集(PPS)、序列参数集(SPS)、视频参数集(VPS)、切片标头、帧标头、序列标头等。在其它实例中,所述映射函数也可为自适应的,使得(例如)所述映射函数可取决于与视频数据相关联的“边”信息,例如与视频数据相关联的QP、帧分辨率、GOP结构,或其它信息。
作为又另一实施例,上文参考先前实例所描述的技术可仅适用于总上下文的子集。举例来说,例如在HM5.0中,总上下文可包含253个上下文,即ctx0到ctx252。作为一个实例,可界定总上下文的子集,例如“CtxSubset”。因此,仅属于此子集的上下文可以上文所描述的方式(即,针对不同的切片类型使用相同的初始化值集合)被初始化。对于其它上下文(即,不属于此子集的上下文),初始化值对于不同的切片类型可不同。上下文的此子集的实例是包含与系数译码相关的上下文子集,所述上下文例如为用于对最低有效系数位置数据(例如,“last_significant_coeff_flag”)、有效性映射数据(例如,“significant_coeff_flag”)、层级数据(例如,“coeff_abs_level_minus1”和“coeff_sign_flag”)、“大于一”的旗标数据(例如,“larger_than_one_flag”)、“大于二”的旗标数据(例如,“larger_than_two_flag”)等等进行译码的上下文。换句话说,上下文子集可对应于与视频数据相关联的一或多种类型的语法元素。
在一些实例中,上下文的不同子集可对应于不同的初始化值集合。具体来说,作为一个实例,第一上下文子集(例如,“子集1”)可使用第一初始化值集合群组来初始化,而第二上下文子集(例如,“子集2”)可使用第二、不同的初始化值集合群组来初始化在此实例中,第一和第二初始化值集合群组中每一者可包含一或多个初始化值集合。
在一个实例中,对上下文子集的界定可预先界定或固定,例如,为视频编码器20和视频解码器30两者所知。在另一实例中,对上下文子集的界定可为用户选择的,且/或在上文所描述的高级语法信息内显式地用信号通知给视频编码器30。另外,对上下文子集的界定还可为自适应的,使得(例如)所述界定可取决于先前所描述的边信息。
作为又另一实例,可界定多个上下文子集,例如“CtxSubseti”,且不同上下文子集的初始化值共享的映射函数可在多个上下文子集间不同。以与先前实例中所描述的类似方式,对所述多个上下文子集的界定可预先界定、用户指定且/或取决于与视频数据相关联的边信息,如上文所描述。另外,映射函数可预先界定、用户指定且/或取决于与视频数据相关联的边信息,也如上文所描述。
如以上等式1和等式2中所说明,初始的CABAC状态(“iInitState”)值是初始化值(“InitValue”)(例如,“m”和“n”或“m8”值)和“iQP”值的函数(即,如由标志符“f”指示),即iInitState=f(InitValue,iQP)。作为与所揭示的技术相一致的另一实例,对于与不同的切片类型相关联但共享相同的初始化值(或相同的初始化值“集合”)的上下文,上下文初始化过程也可取决于切片类型。换句话说,上下文初始化过程可使用以下关系执行:
iInitState=G(InitValue,iQP,SliceType)
其中iInitState是InitValue、iQP以及“SliceType”的函数(即,如由标志符“G”指示)。在此实例中,SliceType对应于与正被译码的视频数据相关联的切片类型。
在一个实例中,可针对每一切片类型界定“QPOffset”或“dQP”,且可将初始上下文状态计算如下:
Int iInitState=((m*(iQP+dQP))/16)+n; 等式4
iInitState=min(max(1,iInitState),126); 等式5
一般来说,在一些实例中,I模式切片的dQP的值可小于B模式和P模式切片的dQP的值。在下表I中提供此关系的实例。
表I
切片类型 I模式 P模式 B模式
dQP -3 0 0
作为另一实例,其中具有不同切片类型的多个切片共享相同的初始化值集合但其中每一切片的上下文初始化过程也取决于对应的切片类型的上文所描述的技术可以如先前所描述的类似方式仅应用于总上下文的子集。
在一个实例中,对上下文子集的界定可预先界定,例如,为视频编码器20和视频解码器30两者所知。在另一实例中,对上下文子集的界定可为用户选择的,且/或用上文所描述的高级语法信息显式地用信号通知给视频编码器30。此外,对上下文子集的界定还可为自适应的,使得所述界定可取决于先前所描述的边信息。
上文所描述的技术一般涉及通过基于与一或多个切片相关联的切片类型信息来选择初始化值集合而初始化用于对视频数据的一或多个切片的一或多个语法元素进行译码的上下文自适应熵译码过程的一或多个上下文。除了上文所描述的技术之外,本发明还包含用于通过基于与一或多个切片相关联的一或多个初始化指示符值来选择初始化值集合而初始化用于对视频数据的一或多个切片的一或多个语法元素进行译码的上下文自适应熵译码过程的一或多个上下文。
具体来说,根据所揭示的技术,并非如以上实例所说明严格基于切片类型来选择初始化值集合,视频编码器20和/或视频解码器30可经配置以自适应地选择一或多个初始化值集合来初始化用于对视频数据的切片的一或多个语法元素进行译码的一或多个上下文。
作为一个实例,视频编码器20和/或视频解码器30可经配置以基于与视频数据相关联的边信息来推断视频数据的切片的初始化值集合,如上文所描述。以此方式,视频编码器20和/或视频解码器30可经配置以确定多个初始化值集合中的初始化值集合,初始化值集合中每一者基于视频数据的切片的一或多个特性来界定所述切片的一或多个语法元素的相应初始上下文状态。在此实例中,与先前所描述的技术相比,所述一或多个特性不包含视频数据的切片的切片类型。而且在此实例中,视频编码器20和/或视频解码器30可进一步经配置以基于所确定的初始化值集合对视频数据的切片的一或多个语法元素进行译码。
作为另一实例,对于视频数据的每一切片,视频编码器20可传输且视频解码器30可接收一语法元素类型(“cabac_init_idc”)的语法元素(例如,所谓的“初始化指示符值”),其指定将哪一特定初始化值集合用于视频数据的相应切片(即,用于对与相应“当前”切片相关联的一或多个语法元素进行译码)。举例来说,假设存在“N”个初始化值集合set0、set1、...setN-1。在此实例中,cabac_init_idc的值(即,“初始化指示符”值)的范围可从“0”到“N-1”。“Cabac_init_idc=i”(如针对当前切片所译码/用信号通知)可指定针对当前切片选择“seti”。在一些实例中,对视频数据的特定切片的初始化值集合的选择可不与切片的切片类型相关,而是可单纯取决于切片的cabac_init_idc的值。在一些实例中,所选择的初始化值集合可为set0、set1、...setN-1中的任一者。
在一些实例中,cabac_init_idc的值可使用上文所描述的高级语法进行显式传输,且可作为原始字节序列有效负载(RBSP)而发送或使用固定长度码、可变长度码或算术码进行编码。
作为又另一实施例,以如先前所描述的类似方式,上文参考语法元素类型cabac_init_idc的初始化指示符值所描述的技术可仅适用于总上下文的子集。举例来说,在HM5.0中,存在253个上下文,被指定为ctx0到ctx252,如先前所阐释。可再次界定包含仅所述253个上下文中的一些上下文的上下文子集CtxSubset。在此实例中,仅当用于对特定语法元素类型进行译码的上下文属于此上下文子集时,对上下文的初始化值集合的选择可基于cabac_init_idc的值(或基于边信息进行推断,如上文所描述)。对于其它上下文(即,不属于此子集的上下文),初始化值或初始化值集合可使用其它技术(例如,上文参考H.264/AVC所描述的技术)来确定或选择。
在一个实例中,对上下文子集的界定可预先界定,且为视频编码器20和视频解码器30两者可得的。在另一实例中,对上下文子集的界定可为用户选择的,且/或在上文所描述的高级语法内显式地用信号通知给视频编码器30。对上下文子集的界定还可为自适应的,这可意味着所述映射可取决于上文所描述的边信息。
在一些实例中,可传输多个语法元素(例如,cabac_init_idc0、cabac_init_idc1、...cabac_init_idcN),且每一者可对应于总上下文的子集。举例来说,“cabac_init_idc0”可对应于可包含系数译码相关上下文的上下文子集“CtxSubset0”。“Cabac_init_idc0=i”可指示系数译码相关上下文使用“第i个”初始化值集合。同样,其它cabac_init_idc值可与其它语法元素子集相关。在一些实例中,对子集的界定可预先界定,且为视频编码器20和视频解码器30两者所知。在其它实例中,对子集的界定可为用户选择的,且在上文所描述的高级语法内显式地用信号通知给视频编码器30。对上下文子集的界定还可为自适应的,例如,所述映射可取决于先前所描述的边信息。
在一些实例中,可例如在每一切片标头中传输每一切片的cabac_init_idc的值。在其它实例中,可传输当前切片(例如,Slice_0)的cabac_init_idc的值。随后,对于相同类型的后面的切片,对初始化值集合的选择可与Slice_0相同,直到在某一点接收到cabac_init_idc的新值来超驰前一选择为止。以此方式,视频编码器20和/或视频解码器30可基于在针对当前切片用信号通知的多个初始化值集合中的第一初始化值集合对当前切片之后的第一组一或多个后续切片的数据进行译码,且对表示多个初始化值集合中的第二初始化值集合的第二值进行译码,且基于第二初始化值集合对第二组一或多个后续切片进行译码。
在一些实例中,cabac_init_idc的值可对多个切片类型具有影响。举例来说,如果对于后面的切片,“cabac_init_idc=1”,那么可互换由B切片和I切片当前使用的初始化值集合。在另一实例中,cabac_init_idc可导致初始化值集合的移位。举例来说,I、P和B切片可当前分别使用初始化值集合0、1和2。在接收到cabc_init_idc=1之后,I、P和B切片可分别使用初始化集合1、2和0。
另外,如上所述,在一些实例中,可不需要显式地传输cabac_init_idc的值(即,对应于语法元素类型cabac_init_idc的初始化指示符值)。而是,在这些实例中,可使用上文所描述的边信息来推断cabac_init_idc的值。
在一些实例中,上文所描述的上下文初始化技术可与任何上下文自适应熵译码方法结合使用,包含CABAC、SBAC、PIPE或另一上下文自适应熵译码方法。在本发明中仅出于说明的目的描述CABAC,且不是对本发明中作为整体而广泛描述的技术的限制。而且,如先前所阐释,所揭示的技术(例如)除了视频数据之外或作为视频数据的取代还一般可应用于其它类型的数据的译码。
作为一个实例,视频编码器20和/或视频解码器30可经配置以对一或多个视频数据块进行译码,如上文所描述。举例来说,所述一或多个块中的每一者可对应于视频数据帧的特定切片。在此实例中,视频编码器20和/或视频解码器30可经配置以使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码。而且在此实例中,视频编码器20和/或视频解码器30可进一步经配置以随后使用初始化值集合对视频数据的符合第二切片类型的第二切片的符合特定类型的语法元素(即,符合与第一语法元素相同类型的语法元素)的第二语法元素进行译码。
在一些实例中,所述第一切片类型可不同于所述第二切片类型。举例来说,在第一切片类型可对应于上文所描述的空间预测的“I”切片类型和时间预测的“P”和“B”切片类型中的任一者时,第二切片类型可对应于上文所描述的切片类型中的任何另一者。此外,在其它实例中,所述第一切片类型和所述第二切片类型中的至少一者可为时间预测的切片类型。举例来说,第一和第二切片类型中的至少一者可对应于时间预测的“P”和“B”切片类型中的任一者。
除了归于视频编码器20和视频解码器30的译码性质(如由以上实例所说明)之外,本发明的技术还包含产生将视频数据的两种或更多种不同类型的切片与共同的初始化值集合相关联的配置数据(例如,一或多个语法元素)。以此方式,所揭示的技术可使得编码器20和/或视频解码器30能够解译配置数据,且基于所述配置数据,使用相同的初始化值集合对具有不同切片类型的两个或更多不同切片的语法元素进行译码。
以此方式,通过使得编码器20和/或视频解码器30能够使用相同或共同的初始化值集合对第一和第二切片的第一和第二语法元素进行译码(即,编码和/或解码),本发明的技术在使用编码器20和/或视频解码器30对例如视频数据等数据进行译码时可减少编码器20和/或视频解码器30的复杂度(例如,简化处理和/或存储资源,或减少其使用)。
另外,所揭示的技术可使得编码器20和/或视频解码器能够更有效地对数据进行译码。举例来说,所述技术可使得编码器20和/或视频解码器30能够基于与数据相关联的切片类型信息或替代地基于与数据相关联的一或多个初始化指示符值来初始化用于对数据进行译码的上下文自适应熵译码过程(例如,CABAC过程)的一或多个上下文。因此,在初始化之后,所述一或多个上下文即刻可包含相对于使用其它上下文初始化技术而确定的概率估计更准确的概率估计。因此,与其它技术相比,视频编码器20和/或视频解码器30可更有效地对数据进行译码(例如,使用更少的位)。
视频编码器20和视频解码器30各自可在可适用时经实施为例如一或多个微处理器、DSP、ASIC、FPGA、离散逻辑电路、软件、硬件、固件或其任何组合等多种合适编码器或解码器电路中的任一者。视频编码器20和视频解码器30中的每一者可包含于一或多个编码器或解码器中,所述视频编码器和视频解码器中的任一者可被集成为组合式视频编码器/解码器(CODEC)的一部分。包含视频编码器20和/或视频解码器30的设备可包括集成电路(IC)、微处理器和/或无线通信装置,例如蜂窝式电话。
图2是说明与本发明的技术一致的可执行用于以精简的初始化值集合进行上下文自适应熵译码的技术的视频编码器的实例的框图。视频编码器20可执行对视频切片内的视频块的帧内译码和帧间译码。帧内译码依赖于空间预测以减少或移除给定视频帧或图片内的视频中的空间冗余。帧间译码依赖于时间预测以减少或移除视频序列的邻近帧或图片内的视频中的时间冗余。帧内模式(I模式)可指代若干基于空间的压缩模式中的任一者。帧间模式(例如单向预测(P模式)或双向预测(B模式))可指代若干基于时间的压缩模式中的任一者。
在图2的实例中,视频编码器20包含模式选择单元40、运动估计单元42、运动补偿单元44、帧内预测模块46、参考帧存储器64、求和器50、变换模块52、量化单元54以及熵编码单元56。对于视频块重构,视频编码器20还包含反量化单元58、反变换模块60以及求和器62。还可包含解块滤波器以将块边界滤波,以从经重构的视频移除成块性假影。
如图2所示,视频编码器20接收视频切片内的待编码的当前视频块。可将切片划分为多个视频块。模式选择单元40可基于错误结果而针对当前视频块选择译码模式(帧内或帧间)中的一者。如果选择帧内或帧间模式,那么模式选择单元40将所得的经帧内译码或经帧间译码的块提供到求和器50以产生残余块数据,且提供到求和器62以重构经编码块以用作参考图片。帧内预测模块46相对于在与待译码的当前块相同的帧或切片中的一或多个相邻块执行对当前视频块的帧内预测译码,以提供空间压缩。运动估计单元42和运动补偿单元44相对于一或多个参考图片中的一或多个预测块执行对当前视频块的帧间预测译码以提供时间压缩。
在帧间译码的情况下,运动估计单元42可经配置以根据视频序列的预定模式来确定视频切片的帧间预测模式。所述预定模式可将序列中的视频切片指定为P切片、B切片或GPB切片。运动估计单元42与运动补偿单元44可高度集成,但出于概念上的目的而分开予以说明。由运动估计单元42执行的运动估计是产生运动向量的过程,运动向量估计视频块的运动。运动向量(例如)可指示当前视频帧内的视频块的PU相对于参考图片内的预测块或图片的移位。
预测块是经发现在像素差异方面紧密地匹配待译码的视频块的PU的块,其可通过绝对差总和(SAD)、平方差总和(SSD)或其它差度量来确定。在一些实例中,视频编码器20可计算存储于参考帧存储器64中的参考图片的子整数像素位置的值。举例来说,视频编码器20可计算参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可执行相对于完整像素位置和分数像素位置的运动搜索,且以分数像素位置输出运动向量。
运动估计单元42通过比较PU的位置与参考图片的预测块的位置来计算经帧间译码切片中的视频块的PU的运动向量。可从第一参考图片列表(列表0)或第二参考图片列表(列表1)来选择所述参考图片,所述列表中的每一者识别存储于参考帧存储器64中的一或多个参考图片。运动估计单元42将计算出的运动向量发送到熵编码单元56和运动补偿单元44。
由运动补偿单元44执行的运动补偿可涉及基于通过运动估计所确定的运动向量获取或产生预测块。在接收到当前视频块的PU的运动向量后,运动补偿单元44可即刻定位运动向量在所述参考图片列表中的一者中所指向的预测块。视频编码器20通过从正经译码的当前视频块的像素值减去预测块的像素值从而形成像素差值,而形成残余视频块。像素差值形成块的残余数据,且可包含亮度差分量与色度差分量两者。求和器50表示执行此减法运算的组件。运动补偿单元44还可产生与视频块和视频切片相关联的语法元素以供视频解码器30在解码视频切片的视频块中使用。
在运动补偿单元44产生当前视频块的预测块之后,视频编码器20通过从当前视频块减去预测块而形成残余视频块。残余块中的残余视频数据可包含于一或多个TU中且应用于变换模块52。变换模块52可使用变换(例如,离散余弦变换(DCT)或概念上类似的变换)来将残余视频数据变换为残余变换系数。变换模块52可将残余视频数据从像素域转换到变换域(例如,频域)。
变换模块52可将所得的变换系数发送到量化单元54。量化单元54量化变换系数以进一步减小位速率。量化过程可减少与系数中的一些或全部相关联的位深度。可通过调整量化参数QP来修改量化程度。在一些实例中,量化单元54可接着执行对包含经量化变换系数的矩阵的扫描。替代地,熵编码单元56可执行扫描。
在量化之后,熵编码单元56对经量化变换系数进行熵编码。举例来说,熵编码单元56可执行CAVLC、CABAC或另一熵编码技术。在熵编码单元56进行的熵编码之后,可将经编码位流发射到视频解码器30或进行存档以供稍后发射或由视频解码器30检索。熵编码单元56还可对正经译码的当前视频切片的运动向量和其它语法元素进行熵编码。
反量化单元58和反变换模块60分别应用反量化和反变换以在像素域中重构残余块,以用于稍后用作参考图片的参考块。运动补偿单元44可通过将残余块添加到参考图片列表中的一者内的参考图片中的一者的预测块而计算参考块。运动补偿单元44还可将一或多个内插滤波器应用于经重构残余块以计算子整数像素值以在运动估计中使用。求和器62将经重构的残余块添加到由运动补偿单元44产生的经运动补偿的预测块以产生参考块以供存储在参考图片存储器66中。参考块可由运动估计单元42和运动补偿单元44用作用以对后续视频帧或图片中的块进行帧间预测的参考块。
在一些实例中,视频解码器20可经配置以在视频译码过程期间对一或多个视频数据块进行编码以供在位流中传输到视频解码器30和/或存储装置24。举例来说,一或多个块可包含于视频数据的一或多个切片内,如先前所描述。作为一个实例,视频编码器20的熵编码单元56可经配置以使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行编码。在此实例中,熵编码单元56可进一步经配置以使用所述初始化值集合对视频数据的符合第二切片类型的第二切片的符合特定类型的语法元素的第二语法元素进行编码。举例来说,如先前所描述,所述第一切片类型可不同于所述第二切片类型。还如先前所描述,所述第一切片类型和所述第二切片类型中的至少一者可为时间预测的切片类型。
在其它实例中,熵编码单元56可进一步经配置以基于以下各者中的至少一者来确定用于对第一和第二语法元素进行编码的初始化值集合:(1)视频数据的第一切片的第一切片类型,和视频数据的第二切片的第二切片类型;及(2)视频数据的第一切片的第一初始化指示符值,和视频数据的第二切片的第二初始化指示符值。在这些实例中,视频数据的第一和第二切片的第一和第二初始化指示符值中的每一者可指示用于对视频数据的对应切片进行译码的特定初始化值集合。
在一些实例中,熵编码单元56可进一步经配置以使用一或多个映射函数中的第一映射函数来确定视频数据的第一切片的第一切片类型和第一初始化指示符值中的一或多者与初始化值集合之间的第一映射。也就是说,熵编码单元56可被配置有从切片类型到初始化值集合的映射、从初始化指示符值到初始化值集合的映射,或从切片类型和初始化指示符值两者到初始化值集合的映射。在一些实例中,熵编码单元56可进一步经配置以使用一或多个映射函数中的第二映射函数来确定视频数据的第二切片的第二切片类型和第二初始化指示符值中的一或多者与初始化值集合之间的第二映射。而且在这些实例中,视频数据的第一和第二切片的第一和第二初始化指示符值中的每一者可再次指示用于对视频数据的对应切片进行译码的特定初始化值集合。
在上文所描述的实例中,熵编码单元56(或视频编码器20的另一组件或单元)可进一步经配置以对表示与视频数据相关联的PPS、SPS、APS、VPS、切片标头、帧标头和序列标头中的至少一者中的一或多个映射函数及第一和第二初始化指示符值中的至少一者的一或多个值进行编码。
替代地,在上文所描述的实例中,熵编码单元56可进一步经配置以基于与视频数据相关联的QP、帧分辨率参数和GOP结构参数和用户输入中的一或多者来确定一或多个映射函数及第一和第二初始化指示符值中的至少一者。
在其它实例中,熵编码单元56可进一步经配置以确定用于对第一和第二切片中的每一者进行编码的上下文全集的上下文子集。在这些实例中,上下文子集可包含用于对第一和第二语法元素的特定类型的语法元素进行译码的至少一或多个上下文。而且在这些实例中,为了使用初始化值集合对第一和第二语法元素进行编码,熵编码单元56可经配置以基于初始化值集合来初始化上下文子集中的一或多个上下文。
在上文所描述的实例中,以与上文参考一或多个映射函数及第一和第二初始化指示符值所描述的类似方式,熵编码单元56(或视频编码器20的另一组件或单元)可进一步经配置以对指示上下文全集中的与视频数据相关联的PPS、SPS、APS、VPS、切片标头、帧标头和序列标头中的至少一者中的上下文子集中所包含的上下文的一或多个值进行编码。
在一些实例中,还以与上文参考一或多个映射函数及第一和第二初始化指示符值所描述的类似方式,为了确定上下文全集中的上下文子集,熵编码单元56可经配置以基于与视频数据相关联的QP、帧分辨率参数和GOP结构参数和用户输入中的一或多者来确定上下文全集中的包含于上下文子集中的上下文。
此外,在一些实例中,为了使用初始化值集合对第一语法元素和第二语法元素进行编码,熵编码单元56可经配置以基于所述初始化值集合和相应语法元素所属的视频数据的第一和第二切片的第一和第二切片类型中的对应一者来确定用于对第一和第二语法元素中的至少特定类型的语法元素进行译码的一或多个上下文中的每一者的初始上下文状态。在这些实例中,视频编码器20可基于视频数据的第一切片的第一切片类型和视频数据的第二切片的第二切片类型来确定所述初始化值集合。
在上文所描述的实例中,为了基于所述初始化值集合和第一和第二切片类型中的对应一者来确定一或多个上下文中的每一者的初始上下文状态,熵编码单元56可经配置以基于初始化值集合的一或多个值、基于第一和第二切片类型中的对应一者而确定的QP值和QP偏移值来确定相应初始上下文状态。
如先前所描述,在一些实例中,初始化值集合可包含以下各者中的一者:(1)斜率值和单独的交叉值;及(2)表示斜率值和交叉值两者的单一值。举例来说,在一些实例中,初始化值集合可包含至少一“对”斜率值和交叉值,或表示斜率值和交叉值两者的至少一个单一值。
如通过以上实例所说明,本发明的技术可使得视频编码器20能够基于相同的或共同的初始化值集合使用上下文自适应熵译码过程(例如,CABAC过程)对视频数据的具有不同切片类型的多个切片的各自符合相同类型的语法元素的多个语法元素进行编码(例如,以供视频解码器30进行解码,且/或以供存储在存储装置24内)。在一些实例中,可使用特定类型的语法元素来指示一或多个视频数据块的一或多个系数的值,或其它语法信息。具体来说,根据所揭示的技术,视频编码器20可在使用上下文对多个语法元素中的每一者进行编码之前使用初始化值集合来确定上下文自适应熵译码过程的一或多个上下文的初始上下文状态(即,“初始化”)。因此,本文中所揭示的技术在一些情况下可减少用于对视频数据的多个切片的多个语法元素进行编码的编码器20的复杂度(例如,简化处理和/或存储资源,或减少其使用)。
另外,所揭示的技术可使得编码器20能够更有效地对例如视频数据等数据进行编码。举例来说,所述技术可使得编码器20能够基于与数据相关联的切片类型信息或替代地基于与数据相关联的一或多个初始化指示符值来初始化用于对数据进行编码的上下文自适应熵译码过程(例如,CABAC过程)的一或多个上下文。因此,在初始化之后,所述一或多个上下文即刻可包含相对于使用其它上下文初始化技术而确定的概率估计更准确的概率估计。因此,与其它技术相比,视频编码器20可更有效地对数据进行编码(例如,使用更少的位)。
以此方式,视频编码器20表示视频译码器的一实例,所述视频译码器经配置以使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码,且使用初始化值集合对视频数据的符合第二切片类型的第二切片的符合特定类型的语法元素的第二语法元素进行译码,其中所述第一切片类型不同于所述第二切片类型,且其中所述第一切片类型和所述第二切片类型中的至少一者是时间预测的切片类型。
图3是说明与本发明的技术一致的可执行用于以精简的初始化值集合进行上下文自适应熵译码的技术的视频解码器的实例的框图。在图3的实例中,视频解码器30包含熵解码单元80、预测模块82、反量化单元88、反变换模块90、求和器92、解块滤波器94以及参考图片存储器96。预测模块82包含运动补偿单元84和帧内预测模块86。视频解码器30在一些实例中可执行一般与关于来自图2的视频编码器20所描述的编码回合互逆的解码回合。
在解码过程期间,视频解码器30从视频编码器20接收表示经解码视频切片和相关联的语法元素的视频块的经编码视频位流。当位流中的所表示的视频块包含经压缩视频数据时,视频解码器30的熵解码单元80对所述位流进行熵解码以产生经量化系数、运动向量和其它语法元素。熵解码单元80将运动向量和其它语法元素转发到预测模块82。视频解码器30可在视频切片层级和/或视频块层级处接收语法元素。
当将视频切片译码为经帧内译码(I)切片时,预测模块82的帧内预测模块86可基于用信号通知的帧内预测模式和来自当前帧或图片的先前经解码块的数据而产生当前视频切片的视频块的预测数据。当将视帧帧译码为经帧间译码(即,B、P或GPB)切片时,预测模块82的运动补偿单元84基于从熵解码单元80接收的运动向量和其它语法元素而产生当前视频切片的视频块的预测块。可从参考图片列表中的一者内的参考图片中的一者产生预测块。视频解码器30可基于存储于参考图片存储器96中的参考图片使用默认建构技术来建构参考帧列表,列表0和列表1。
运动补偿单元84通过解析运动向量和其它语法元素而确定当前视频切片的视频块的预测信息,且使用所述预测信息以产生正经解码的当前视频块的预测块。举例来说,运动补偿单元84使用所接收的语法元素中的一些语法元素来确定用于对视频切片的视频块进行译码的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、用于切片的参考图片列表中的一或多者的建构信息、用于切片的每一经帧间编码视频块的运动向量、用于切片的每一经帧间译码视频块的帧间预测状态,及用以对当前视频切片中的视频块进行解码的其它信息。
运动补偿单元84还可基于内插滤波器执行内插。运动补偿单元84可使用如由视频编码器20在视频块的编码期间所使用的内插滤波器来计算参考块的子整数像素的内插值。运动补偿单元84可从所接收的语法元素来确定由视频编码器20使用的内插滤波器且使用所述内插滤波器来产生预测块。
反量化单元88将提供于位流中且由熵解码单元80解码的经量化的变换系数反量化(即,解量化)。反量化过程可包含使用由视频编码器20针对视频切片中的每一视频块计算的量化参数(QP),以确定应应用的量化程度以及同样的反量化程度。反变换模块90对变换系数应用反变换,例如,反DCT、反整数变换,或概念上类似的反变换过程,以便在像素域中产生残余块。
在运动补偿单元84基于运动向量和其它语法元素产生当前视频块的预测块之后,视频解码器30通过对来自反变换模块90的残余块与由运动补偿单元84产生的对应预测块求和而形成经解码视频块。求和器92代表执行此求和操作的组件。应用解块滤波器94以对经解码块进行滤波,以便移除成块性假影。接着将给定帧或图片中的经解码视频块存储于参考图片存储器96中,所述参考图片存储器存储用于后续运动补偿的参考图片。参考图片存储器96还存储经解码视频以供稍后在显示装置(例如,图1的显示装置28)上呈现。
在一些实例中,视频解码器30可经配置以在视频译码过程期间对一或多个视频数据块(例如在位流中从视频编码器20和/或存储装置24接收的一或多个经编码视频数据块)进行解码。举例来说,如上文参考视频编码器20所描述,一或多个块可包含于视频数据的一或多个切片内。作为一个实例,视频解码器30的熵解码单元80可经配置以使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行解码。在此实例中,熵解码单元80可进一步经配置以使用所述初始化值集合对视频数据的符合第二切片类型的第二切片的符合特定类型的语法元素的第二语法元素进行解码。举例来说,如先前所描述,所述第一切片类型可不同于所述第二切片类型。还如先前所描述,所述第一切片类型和所述第二切片类型中的至少一者可为时间预测的切片类型。
在一些实例中,熵解码单元80可进一步经配置以基于以下各者中的至少一者来确定用于对第一和第二语法元素进行解码的初始化值集合:(1)视频数据的第一切片的第一切片类型,和视频数据的第二切片的第二切片类型;及(2)视频数据的第一切片的第一初始化指示符值,和视频数据的第二切片的第二初始化指示符值。在这些实例中,视频数据的第一和第二切片的第一和第二初始化指示符值中的每一者可指示用于对视频数据的对应切片进行译码的特定初始化值集合。
作为一个实例,视频数据的第一和第二切片的第一和第二初始化指示符值中的每一者可指示曾由视频编码器(例如,视频编码器20)对对应的切片进行编码所使用的初始化值集合。在此实例中,视频解码器30且具体来说是熵解码单元80可经配置以在所接收的位流中接收第一和第二切片的第一和第二切片类型及第一和第二切片的第一和第二初始化指示符值的指示(或界定第一和第二切片类型的数据)中的一或多者。举例来说,对于第一和第二切片中的每一者,视频解码器30可经配置以在所接收的位流中接收上文所描述的指示和值中的一或多者以作为与对应的切片相关联的一或多个语法元素。
在其它实例中,熵解码单元80可进一步经配置以使用一或多个映射函数中的第一映射函数来确定视频数据的第一切片的第一切片类型和第一初始化指示符值中的一或多者与初始化值集合之间的第一映射。在这些实例中,熵解码单元80可仍进一步经配置以使用一或多个映射函数中的第二映射函数来确定视频数据的第二切片的第二切片类型和第二初始化指示符值中的一或多者与初始化值集合之间的第二映射。在这些实例中,视频数据的第一和第二切片的第一和第二初始化指示符值中的每一者可再次指示用于对视频数据的对应切片进行译码的特定初始化值集合。
举例来说,视频解码器30且具体来说是熵解码单元80可经配置以在所接收的位流中接收第一和第二映射函数的一或多个指示(或界定第一和第二映射函数的数据)。在此实例中,对于第一和第二切片中的每一者,视频解码器30可经配置以在所接收的位流中接收第一和第二映射函数中的对应一者的一或多个指示以作为与相应切片相关联的一或多个语法元素。替代地,视频解码器30可经配置以在所接收的位流中以其整体接收包含第一和第二映射函数的一或多个映射函数的一或多个指示(或界定一或多个映射函数的数据)以(例如)作为与第一和第二切片中的一者或两者相关联的一或多个语法元素。
作为一个实例,熵解码单元80(或视频解码器30的另一组件或单元)可经配置以对表示与视频数据(例如,如在所接收的位流中由视频编码器20编码)相关联的PPS、SPS、APS、VPS、切片标头、帧标头和序列标头中的至少一者中的第一和第二映射函数(或以其整体的一或多个映射函数)及第一和第二初始化指示符值中的至少一者的一或多个值进行解码。另外,如先前所阐释,在一些实例中,熵解码单元80可进一步经配置以对表示所接收的位流中(例如,在与视频数据相关联的切片标头中)的第一和第二切片的第一和第二切片类型的一或多个值进行解码。
替代地,作为另一实例,熵解码单元80可经配置以基于与视频数据相关联的QP、帧分辨率参数和GOP结构参数(即,与第一和第二切片相关联的边信息)和用户输入中的一或多者来确定或推断第一和第二映射函数(或以其整体的一或多个映射函数)及第一和第二初始化指示符值中的至少一者。另外,在一些实例中,熵解码单元80可进一步经配置以使用与第一和第二切片相关联的边信息来确定或推断第一和第二切片的第一和第二切片类型。
在一些实例中,熵解码单元80可进一步经配置以确定用于对第一和第二切片中的每一者进行解码的上下文全集的上下文子集。在这些实例中,上下文子集可包含用于对第一和第二语法元素的特定类型的语法元素进行译码的至少一或多个上下文。而且在这些实例中,为了使用初始化值集合对第一和第二语法元素进行解码,熵解码单元80可经配置以基于初始化值集合来初始化上下文子集中的一或多个上下文。
在上文所描述的实例中,视频解码器30且具体来说是熵解码单元80可经配置以在所接收的位流(例如,如在所接收的位流中由视频编码器20编码)中接收上下文子集的一或多个指示(或界定上下文子集的数据),或使用与视频数据(即,第一和第二切片)相关联的边信息来确定(或推断)上下文子集。作为一个实例,以与上文参考一或多个映射函数及第一和第二初始化指示符值所描述的类似方式,为了确定上下文全集的上下文子集,熵解码单元80(或视频解码器30的另一组件或单元)可经配置以对指示上下文全集中的与视频数据(例如,如在所接收的位流中由视频编码器20编码)相关联的PPS、SPS、APS、VPS、切片标头、帧标头和序列标头中的至少一者中的上下文子集中所包含的上下文的一或多个值进行解码。
替代地,作为另一实例,还以与上文参考一或多个映射函数及第一和第二初始化指示符值所描述的类似方式,为了确定上下文全集中的上下文子集,熵解码单元80可经配置以基于与视频数据相关联的QP、帧分辨率参数和GOP结构参数(即,与第一和第二切片相关联的边信息)和用户输入中的一或多者来确定或推断上下文全集中的包含于上下文子集中的上下文。
此外,在一些实例中,为了使用初始化值集合对第一语法元素和第二语法元素进行解码,熵解码单元80可经配置以基于所述初始化值集合和相应语法元素所属的视频数据的第一和第二切片的第一和第二切片类型中的对应一者来确定用于对第一和第二语法元素中的至少特定类型的语法元素进行译码的一或多个上下文中的每一者的初始上下文状态。在这些实例中,熵解码单元80可基于视频数据的第一切片的第一切片类型和视频数据的第二切片的第二切片类型来确定所述初始化值集合。
在上文所描述的实例中,为了基于所述初始化值集合和第一和第二切片类型中的对应一者来确定一或多个上下文中的每一者的初始上下文状态,熵解码单元80可经配置以基于初始化值集合的一或多个值(例如,上文所描述的“m”、“n”和“m8”值中的一或多者)、基于第一和第二切片类型中的对应一者而确定的QP值(例如,与第一和第二切片中的对应一者相关联的特定QP值,有时被称作初始化QP或iQP值)和QP偏移值(例如,dQP值)来确定相应初始上下文状态。
如先前所描述,在一些实例中,初始化值集合可包含以下各者中的一者:(1)斜率值和单独的交叉值;及(2)表示斜率值和交叉值两者的单一值。举例来说,在一些实例中,初始化值集合可包含至少一对斜率值和交叉值,或表示斜率值和交叉值两者的至少一个单一值。作为一个实例,初始化值集合可包含一或多对值,其各自包含可分别被称作“m”和“n”的斜率值和单独交叉值。作为另一实例,初始化值集合可包含一或多个单一值,所述单一值中的每一者表示斜率值和交叉值,且可被称作“m8”。
如通过以上实例所说明,本发明的技术可使得视频解码器30能够基于相同的或共同的初始化值集合使用上下文自适应熵译码过程(例如,CABAC过程)对视频数据的具有不同切片类型的多个切片的各自符合相同类型的语法元素的多个语法元素(例如,由视频编码器20编码,且/或由存储装置24提供)进行解码。在一些实例中,可使用特定类型的语法元素来指示一或多个视频数据块的一或多个系数的值,或其它语法信息。具体来说,根据所揭示的技术,视频解码器30可在使用上下文对多个语法元素中的每一者进行解码之前使用初始化值集合来确定上下文自适应熵译码过程的一或多个上下文的初始上下文状态(即,初始化)。因此,本文中所揭示的技术在一些情况下可减少用于对视频数据的多个切片的多个语法元素进行解码的解码器30的复杂度(例如,简化处理和/或存储资源,或减少其使用)。
另外,所揭示的技术可使得解码器30能够更有效地对例如视频数据等数据进行解码。举例来说,所述技术可使得解码器30能够基于与数据相关联的切片类型信息或替代地基于与数据相关联的一或多个初始化指示符值来初始化用于对数据进行解码的上下文自适应熵译码过程(例如,CABAC过程)的一或多个上下文。因此,在初始化之后,所述一或多个上下文即刻可包含相对于使用其它上下文初始化技术而确定的概率估计更准确的概率估计。因此,与其它技术相比,视频解码器30可更有效地对数据进行解码(例如,使用更少的位)。
以此方式,视频解码器30表示视频译码器的一实例,所述视频译码器经配置以使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码,且使用初始化值集合对视频数据的符合第二切片类型的第二切片的符合特定类型的语法元素的第二语法元素进行译码,其中所述第一切片类型不同于所述第二切片类型,且其中所述第一切片类型和所述第二切片类型中的至少一者是时间预测的切片类型。
图4到6是说明与本发明的技术一致的以精简的初始化集合进行上下文自适应熵译码的实例性方法的流程图。图4到6的技术可一般由任何处理单元或处理器来执行,无论实施于硬件、软件、固件还是其组合中,且当实施于软件或固件中时,可提供对应的硬件来执行软件或固件的指令。出于实例的目的,关于视频编码器20(图1和2)和视频解码器30(图1和3)两者以及其各种组件(例如,熵编码单元56和熵解码单元80)来描述图4到6的技术,但应理解,其它装置可经配置以执行类似技术。也就是说,视频解码器30一般经配置以关于视频译码执行与由视频编码器20执行的方法互逆的方法。因此,在此实例中,视频编码器20和视频解码器30经配置以执行类似的(虽然是互逆的)熵译码方法。然而,应理解,视频编码器和/或视频解码器可个别地经配置以执行特定方法。另外,可以不同次序或并行地执行图4到6中所说明的步骤,且可添加额外步骤且省略某些步骤,而不脱离本发明的技术。
具体来说,图4一般从视频编码器20和视频解码器30的角度来说明在译码(即,编码和/或解码)的上下文中以精简的初始化集合进行上下文自适应熵译码的实例性方法。也就是说,图4的描述指示视频编码器20可如何执行所述方法以及视频解码器30可如何执行所述方法两者。另外,图5和6分别从视频解码器30的角度在解码的上下文中以及从视频编码器20的角度在编码的上下文中说明以精简的初始化集合进行上下文自适应二进制算术译码的实例性方法。
作为一个实例,视频编码器20和/或视频解码器30可在视频译码过程期间对一或多个视频数据块进行译码(即,编码和/或解码),如先前所描述。举例来说,所述一或多个块可为一或多个PU、TU或CU且可包含于视频数据的一或多个切片内,也如先前所描述。在此实例中,起初,视频编码器20和/或视频解码器30可使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码(400)。
举例来说,第一语法元素的特定类型的语法元素可对应于与第一切片相关联的任何类型的语法元素。在一些实例中,可使用特定类型的语法元素来指示第一切片的一或多个视频数据块的一或多个系数的值(例如,量值和/或正负号),以及其它语法信息(例如,预测信息,包含预测模式和/或运动向量信息)。在其它实例中,可使用特定类型的语法元素来指示第一切片自身的各种类型的语法信息(例如,第一切片的多个视频数据块共同的信息)。另外,在仍其它实例中,以上文参考图1到3所描述的类似方式,第一切片的第一切片类型可对应于空间预测的“I”切片类型和时间预测的“P”和“B”切片类型中的任一者时。
在此实例中,视频编码器20和/或视频解码器30可进一步使用初始化值集合对视频数据的符合第二切片类型的第二切片的符合特定类型的语法元素(即,符合与上文所描述的第一语法元素相同类型的语法元素)的第二语法元素进行译码。在此实例中,所述第一切片类型可不同于所述第二切片类型。而且在此实例中,所述第一切片类型和所述第二切片类型中的至少一者可为时间预测的切片类型(402)。
换句话说,在此实例中,在第一切片类型可对应于上文所阐释的空间预测的“I”切片类型和时间预测的“P”和“B”切片类型中的任一者时,第二切片的第二切片类型可对应于上文所描述的切片类型中的任何另一者。以此方式,所述第一和第二切片类型可彼此不同。另外,还是在此实例中,可使用时间预测对第一和第二切片中的至少一者进行译码。换句话说,上文所描述的第一和第二切片类型中的至少一者可对应于时间预测的“P”和“B”切片类型中的任一者。在此实例中,可使用时间或空间预测对第一和第二切片中的另一者进行译码(即,第一和第二切片类型中的另一者可对应于空间预测的“I”切片类型和时间预测的“P”和“B”切片类型中的任一者)。
以此方式,根据本发明的技术,视频编码器20和/或视频解码器30可基于相同的或共同的初始化值集合使用上下文自适应熵译码过程(例如,CABAC过程)对视频数据的具有不同切片类型的多个切片的各自符合相同类型的语法元素的多个语法元素进行译码。在一些实例中,可使用特定类型的语法元素来指示一或多个视频数据块的一或多个系数的值,或其它语法信息。具体来说,根据所揭示的技术,视频编码器20和/或视频解码器30可在使用上下文对多个语法元素中的每一者进行译码之前使用初始化值集合来确定上下文自适应熵译码过程的一或多个上下文的初始上下文状态(即,“初始化”)。因此,本文中所揭示的技术在一些情况下可减少用于对视频数据的多个切片的多个语法元素进行译码的视频编码器20和/或视频解码器30的复杂度(例如,简化处理和/或存储资源,或减少其使用)。
在一些实例中,视频编码器20和/或视频解码器30可进一步基于以下各者中的至少一者来确定用于对第一和第二语法元素进行译码的初始化值集合:(1)视频数据的第一切片的第一切片类型,和视频数据的第二切片的第二切片类型;及(2)视频数据的第一切片的第一初始化指示符值,和视频数据的第二切片的第二初始化指示符值。以与上文参考图1到3所描述的类似方式,在此实例中,视频数据的第一和第二切片的第一和第二初始化指示符值中的每一者可指示用于对视频数据的对应切片进行译码的特定初始化值集合。
作为一个实例,如上文所描述,第一和第二切片的第一和第二初始化指示符值中的每一者可为选自一或多个整数值集合的整数值,例如包含范围从“0”到“N-1”的整数值的集合,其中“N”是某一非零整数值。在此实例中,包含于所述集合内的每一整数值(例如,0、1、2...N-1)可对应于或指示一或多个初始化值集合的特定初始化值集合(例如,Set(0)、Set(1)、Set(2)...Set(N-1))。另外,还如上文所描述,可使用特定类型的语法元素(例如,语法元素类型cabac_init_idc或另一语法元素类型)在位流(例如,从视频编码器20到视频解码器30)中用信号通知第一和第二切片的第一和第二初始化指示符值中的每一者。在一些实例中,视频编码器20和/或视频解码器30可使用固定长度码、可变长度码(例如,使用VLC,或类似技术)或算术码(例如CABAC、PIPE或类似技术)中的任一者对第一和第二初始化指示符值中的一或多者进行译码。
以此方式,在一些实例中,为了对第一和第二语法元素中的每一者进行译码,视频编码器20和/或视频解码器30可基于相应语法元素所属的第一和第二切片的第一和第二初始化指示符值中的对应一者来确定初始化值集合。举例来说,视频编码器20和/或视频解码器30可例如以自适应的方式且不管第一和第二切片的第一和第二切片类型如何而基于第一和第二初始化指示符值从多个初始化值集合的群组选择所述初始化值集合。
因此,视频编码器20和/或视频解码器30可更有效地对第一和第二语法元素进行译码。举例来说,编码器20和/或视频解码器30可以上文所描述的方式使用所述初始化值集合来初始化用于对第一和第二语法元素进行译码的上下文自适应熵译码过程(例如,CABAC过程)的一或多个上下文。具体来说,在此实例中,为了对第一和第二语法元素中的每一者进行译码,视频编码器20和/或视频解码器30可选择初始化值集合而不管相应语法元素所属的第一和第二切片的第一和第二切片类型中的对应一者如何。因此,在使用所述初始化值集合进行初始化之后,所述一或多个上下文可即刻包含相对于使用其它上下文初始化技术(例如,基于与视频数据的切片相关联的切片类型来选择初始化值集合以对所述切片的语法元素进行译码的技术)而确定的概率估计更准确的概率估计。以此方式,与其它技术相比,视频编码器20和/或视频解码器30可更有效地对第一和第二语法元素进行译码(例如,使用更少的位)。
然而,在其它实例中,如已在上文所描述,视频编码器20和/或视频解码器30可基于第一和第二切片类型从多个初始化值集合的群组选择所述初始化值集合。
在其它实例中,视频编码器20和/或视频解码器30可进一步使用一或多个映射函数中的第一映射函数来确定视频数据的第一切片的第一切片类型和第一初始化指示符值中的一或多者与初始化值集合之间的第一映射。在这些实例中,视频编码器20和/或视频解码器30可仍进一步使用一或多个映射函数中的第二映射函数来确定视频数据的第二切片的第二切片类型和第二初始化指示符值中的一或多者与初始化值集合之间的第二映射。在这些实例中,再次地,视频数据的第一和第二切片的第一和第二初始化指示符值中的每一者可指示用于对视频数据的对应切片进行译码的特定初始化值集合。
在一些实例中,一或多个映射函数且在适用时的第一和第二初始化指示符值可被界定或固定,且可为视频编码器20和视频解码器30可得的,以用于以上文所描述的方式确定初始化值集合。然而,在其它实例中,视频编码器20可以某一方式确定或操纵一或多个映射函数及第一和第二初始化指示符值中的至少一者以作为编码第一和第二语法元素的部分。在这些实例中,视频编码器20可进一步对表示与视频数据相关联的PPS、SPS、APS、VPS、切片标头、帧标头和序列标头中的至少一者中的一或多个映射函数及第一和第二初始化指示符值中的至少一者的一或多个值进行编码。
举例来说,视频编码器20可在位流中用信号通知经编码的一或多个值,使得视频解码器30可接收所述位流且对一或多个值进行解码。视频编码器20还可在位流中用信号通知经编码的第一和第二语法元素。在这些实例中,基于经解码的一或多个值,视频解码器30可确定一或多个映射函数及第一和第二初始化指示符值中的至少一者。随后,视频解码器30可基于一或多个映射函数且在适用时的第一和第二初始化指示符值来确定初始化值集合。视频解码器30可在位流中接收经编码的第一和第二语法元素,且基于所确定的初始化值集合对第一和第二语法元素进行解码。
在其它实例中,视频编码器20和/或视频解码器30可进一步基于与视频数据相关联的QP、帧分辨率参数和GOP结构参数中的一或多者来确定一或多个映射函数且在适用时的第一和第二初始化指示符值中的至少一者。在又其它实例中,视频编码器20和/或视频解码器30可基于与第一和第二切片中的一或多者相关的其它信息(有时被称作边信息)来确定一或多个映射函数及第一和第二初始化指示符值。另外,在一些实例中,视频编码器20和/或视频解码器30可进一步基于用户输入来确定一或多个映射函数及第一和第二初始化指示符值中的至少一者。换句话说,在一些实例中,一或多个映射函数且在适用时的第一和第二初始化指示符值(例如,将第一和第二初始化指示符值分配或指派给第一和第二切片)可由用户指定。
在一些实例中,视频编码器20和/或视频解码器30可进一步基于视频数据的第一切片的第一切片类型及第一初始化指示符值和视频数据的第二切片的第二切片类型及第二初始化指示符值中的一或多者结合一或多个公式来确定初始化值集合。在这些实例中,再次地,视频数据的第一和第二切片的第一和第二初始化指示符值中的每一者可指示用于对视频数据的对应切片进行译码的特定初始化值集合。举例来说,一或多个公式可被界定或固定,且可为视频编码器20和视频解码器30可得的,以用于以上文所描述的方式确定初始化值集合。然而,在其它实例中,视频编码器20可对指示位流中的一或多个公式的一或多个值进行编码,且视频解码器30可接收位流中的经编码的一或多个值且对一或多个值进行解码,以用于确定初始化值集合。
在一些实例中,视频编码器20和/或视频解码器30可进一步确定用于对第一和第二切片中的每一者进行译码的上下文全集的上下文子集。在这些实例中,上下文子集可包含用于对第一和第二语法元素的特定类型的语法元素进行译码的至少一或多个上下文。换句话说,在一些实例中,上下文子集可包含额外的上下文。在任何情况下,在这些实例中,为了使用初始化值集合对第一和第二语法元素进行译码,视频编码器20和/或视频解码器30可基于初始化值集合来初始化上下文子集中的一或多个上下文。以此方式,上文所描述的初始化值集合可应用于(即,用于确定初始上下文状态,或“初始化”)包含于上下文子集内的有限数目的上下文,而不是用于对第一和第二切片中的每一者进行译码的上下文全集的所有上下文。
作为一个实例,上下文子集可包含用于对与一或多个视频数据块的系数和/或系数的译码相关的一或多种类型的语法元素进行译码的至少一或多个上下文。举例来说,可使用一或多种类型的语法元素来指示有效系数位置和最低有效系数位置(例如,“有效性图”)信息、系数水平(例如,量值和正负号)信息,以及用于对视频数据块的系数进行译码的其它信息。在一些实例中,所述语法元素类型可包含“significant_coeff_flag”、“last_significant_coeff_flag”、“coeff_abs_level_minus1”、“coeff_sign_flag”、“larger_than_one_flag”和“larger_than_two_flag”以及任何数目的其它等效或类似的语法元素类型。
在一些实例中,以与上文参考一或多个映射函数及第一和第二初始化指示符值所描述的类似方式,视频编码器20和/或视频解码器30可进一步对指示上下文全集中的与视频数据相关联的PPS、SPS、APS、VPS、切片标头、帧标头和序列标头中的至少一者中的上下文子集中所包含的上下文的一或多个值进行译码。
在其它实例中,为了确定上下文全集的上下文子集,视频编码器20和/或视频解码器30可基于与视频数据相关联的QP、帧分辨率参数和GOP结构参数中的一或多者来确定上下文全集中的包含于上下文子集中的上下文。作为另一实例,为了确定上下文全集的上下文子集,视频编码器20和/或视频解码器30可基于与第一和第二切片中的一或多者相关的其它信息(有时被称作边信息)来确定上下文全集中的包含于上下文子集中的上下文。另外,在一些实例中,为了确定上下文全集的上下文子集,视频编码器20和/或视频解码器30可基于用户输入来确定上下文全集中的包含于上下文子集中的上下文。换句话说,在一些实例中,上下文子集(例如,上下文全集中的包含于上下文子集中的上下文)可由用户指定。
在一些实例中,为了使用初始化值集合对第一语法元素和第二语法元素进行译码,视频编码器20和/或视频解码器30可确定用于对第一和第二语法元素中的至少特定类型的语法元素进行译码的一或多个上下文中的每一者的初始上下文状态。举例来说,视频编码器20和/或视频解码器30可基于所述初始化值集合和相应语法元素所属的视频数据的第一和第二切片的第一和第二切片类型中的对应一者来确定相应初始上下文状态。在这些实例中,视频编码器20和/或视频解码器30可基于视频数据的第一切片的第一切片类型和视频数据的第二切片的第二切片类型来确定所述初始化值集合。在这些实例中,为了基于所述初始化值集合和第一和第二切片类型中的对应一者来确定一或多个上下文中的每一者的初始上下文状态,视频编码器20和/或视频解码器30可基于以下各者来确定相应初始上下文状态。(1)初始化值集合的一或多个值(例如,上文所描述的“m”、“n”和“m8”值中的一或多者);(2)基于第一和第二切片类型中的对应一者而确定的QP值(例如,与第一和第二切片中的对应一者相关联的特定QP值,有时被称作初始化QP或iQP值)和QP偏移值(例如,dQP值)。举例来说,如上文所描述,可使用QP偏移值(例如,dQP)来修改或“偏移”用于确定相应初始上下文状态(例如,InitState)的QP值(例如,QP或iQP),如以下重现的表达等式4和5中所说明:
Int iInitState=((m*(iQp+dQP))/16)+n; 等式4
iInitState=min(max(1,iInitState),126) 等式5
因此,视频编码器20和/或视频解码器30可更有效地对第一和第二语法元素进行译码。举例来说,编码器20和/或视频解码器30可以上文所描述的方式使用所述初始化值集合(即,基于第一和第二切片的第一和第二切片类型而确定的初始化值集合)以及第一和第二切片类型中的对应一者来初始化用于对第一和第二语法元素进行译码的上下文自适应熵译码过程(例如,CABAC过程)的一或多个上下文。因此,在使用所述初始化值集合和所述第一和第二切片类型初始化之后,所述一或多个上下文即刻可包含相对于使用其它上下文初始化技术而确定的概率估计更准确的概率估计。具体来说,上文所描述的技术可使得编码器20和/或视频解码器30能够使用相同的初始化值集合(从而潜在地降低编码器20和/或视频解码器30的复杂度)以及与相应语法元素相关联的切片类型信息(从而提高使用初始化值集合而确定的初始上下文状态的准确度)对第一和第二语法元素进行译码。
以此方式,与其它技术相比,视频编码器20和/或视频解码器30可更有效地对第一和第二语法元素进行译码(例如,使用更少的位),同时降低用以对第一和第二语法元素进行译码的视频编码器20和/或视频解码器30的复杂度,如已在上文所描述。
如先前所描述,在一些实例中,第一和第二切片类型中的每一者可为帧内预测(I)切片类型、单向帧间预测(P)切片类型及双向帧间预测(B)切片类型中的一者。举例来说,如上文所阐释,第一和第二切片类型中的一者可为(I)、(B)和(P)切片类型中的一者,而第一和第二切片类型中的另一者可为上文所描述的切片类型中的任何另一者(即,第一和第二切片类型可彼此不同)。另外,还如上网所阐释,第一和第二切片类型中的至少一者可为时间预测的切片类型(即,(P)和(B)切片类型中的一者)。
此外,还如先前所描述,在一些实例中,初始化值集合可包含以下各者中的一者:(1)斜率值和单独的交叉值,及(2)表示斜率值和交叉值两者的单一值。作为一个实例,以与上文参考HM4.0所描述的类似方式,初始化值集合可包含一或多对值,其中每一对值包含可分别被称作“m”和“n”的斜率值和单独交叉值。作为另一实例,以与上文参考HM5.0所描述的类似方式,初始化值集合可包含一或多个单一值,其可被称作“m8”,其中每一单一值表示斜率值和交叉值两者。
作为另一实例,视频解码器30可在所接收的位流中接收视频数据的第一切片的第一切片类型的第一指示(或界定第一切片类型的数据)、指示用于对第一切片进行译码的特定初始化值集合的第一切片的第一初始化指示符值,和第一一或多个映射函数中的至少一者(500)。在此实例中,第一切片的上文所描述的语法信息(即,第一切片类型的第一指示、第一初始化指示符值和第一一或多个映射函数)可由视频编码器20编码在所接收的位流内,如下文参考图6的实例所描述。举例来说,视频编码器20可产生位流以用于传输到视频解码器30和/或用于存储在存储装置24内。而且在此实例中,视频解码器30可进一步基于第一切片类型的所接收的第一指示、第一初始化指示符值和第一一或多个映射函数中的一或多者来确定初始化值集合(502)。举例来说,视频解码器30可使用第一一或多个映射函数将第一切片类型或在适用时的第一初始化指示符值映射到所述初始化值集合。换句话说,通过使用第一一或多个映射函数,视频解码器30可使用第一切片类型或在适用时的第一初始化指示符值例如从若干初始化值集合中选择所述初始化值集合。
在确定或选择所述初始化值集合之后,视频解码器30可基于所述初始化值集合的一或多个值来初始化上下文自适应熵译码过程(例如,CABAC过程)的一或多个上下文(504)。举例来说,视频解码器30可使用所述初始化值集合的一或多个值针对一或多个上下文中的每一者来确定对应于初始概率的初始上下文状态。视频解码器30可随后通过基于所述初始化的一或多个上下文来执行上下文自适应熵译码过程而对第一切片的符合特定类型的语法元素的第一语法元素进行解码(506)。
随后,视频解码器30可在所接收的位流中接收视频数据的第二切片的第二切片类型的第二指示(或界定第二切片类型的数据)、指示用于对第二切片进行译码的特定初始化值集合的第二切片的第二初始化指示符值,和第二一或多个映射函数中的至少一者(508)。在此实例中,第一和第二切片类型可不同,且第一和第二切片类型中的至少一者可为时间预测的切片类型(例如,“P”切片类型或“B”切片类型),如先前参考图4的实例所描述。
在此实例中,第二切片的上文所描述的语法信息(即,第二切片类型的第二指示、第二初始化指示符值和第二一或多个映射函数)可再次由视频编码器20编码在所接收的位流内,如下文参考图6的实例所描述。如先前所阐释,在一些实例中,视频编码器20可产生位流以用于传输到视频解码器30和/或用于存储在存储装置24内。
而且在此实例中,视频解码器30可进一步基于第二切片类型的所接收的第二指示、第二初始化指示符值和第二一或多个映射函数中的一或多者来确定初始化值集合(510)。举例来说,视频解码器30可再次使用第二一或多个映射函数将第二切片类型或在适用时的第二初始化指示符值映射到所述初始化值集合。换句话说,通过使用第二一或多个映射函数,视频解码器30可使用第二切片类型或在适用时的第二初始化指示符值例如从若干初始化值集合中选择所述初始化值集合。
在确定或选择所述初始化值集合之后,视频解码器30可再次基于所述初始化值集合的一或多个值来初始化或“重新初始化”上下文自适应熵译码过程的一或多个上下文(512)。举例来说,视频解码器30可再次使用所述初始化值集合的一或多个值针对一或多个上下文中的每一者来确定对应于初始概率的初始上下文状态。视频解码器30可随后通过基于所述重新初始化的一或多个上下文来执行上下文自适应熵译码过程而对第二切片的符合特定类型(即,与第一语法元素相同类型的语法元素)的语法元素的第二语法元素进行解码(514)。在上文所描述的实例中,第一和第二切片类型的第一和第二指示可对应于用于指示与视频数据的切片相关联的切片类型的特定语法元素类型的相同值。举例来说,特定语法元素类型的相同值可与第一和第二切片中的每一者相关联。类似地,在适用时,第一和第二切片的第一和第二初始化指示符值也可对应于与第一和第二切片中的每一者相关联的特定语法元素类型(例如,cabac_init_idc)的相同值。此外,第一和第二一或多个映射函数可为相同的一或多个映射函数。以此方式,视频解码器30可使用第一和第二一或多个映射函数将第一和第二切片类型中的每一者或在适用时的第一和第二初始化指示符值中的每一者映射到所述初始化值集合。
作为仍另一实例,视频解码器20可基于视频数据的第一切片的第一切片类型、指示用于对第一切片进行译码的特定初始化值集合的第一切片的第一初始化指示符值,和第一一或多个映射函数中的至少一者来确定初始化值集合(600)。在此实例中,第一切片的上文所描述的语法信息(即,第一切片类型的第一指示、第一初始化指示符值和第一一或多个映射函数)可由视频编码器20产生(例如,作为对第一切片进行编码的部分)或由另一系统或装置提供给视频编码器20。举例来说,视频编码器20可将此语法信息编码在位流内以由视频解码器30接收,如上文参考图5的实例所描述。在一些实例中,视频编码器20可产生位流以用于传输到视频解码器30和/或用于存储在存储装置24内。
在此实例中,视频编码器20可使用第一一或多个映射函数将第一切片类型或在适用时的第一初始化指示符值映射到所述初始化值集合。换句话说,通过使用第一一或多个映射函数,视频编码器20可使用第一切片类型或在适用时的第一初始化指示符值例如从若干初始化值集合中选择所述初始化值集合。
在确定或选择所述初始化值集合之后,视频编码器20可基于所述初始化值集合的一或多个值来初始化上下文自适应熵译码过程(例如,CABAC过程)的一或多个上下文(602)。举例来说,视频编码器20可使用所述初始化值集合的一或多个值针对一或多个上下文中的每一者来确定对应于初始概率的初始上下文状态。视频编码器20可随后通过基于所述初始化的一或多个上下文来执行上下文自适应熵译码过程而对第一切片的符合特定类型的语法元素的第一语法元素进行编码(604)。另外,视频编码器20可将第一切片类型的第一指示(或界定第一切片类型的数据)、第一初始化指示符值,和第一一或多个映射函数中的至少一者编码在位流中(606)。举例来说,视频编码器20可将上文所描述的语法信息编码在位流中以供视频解码器30使用,如上文参考图5的实例所描述,且/或供存储在存储装置24内。
随后,视频解码器20可基于视频数据的第二切片的第二切片类型、指示用于对第二切片进行译码的特定初始化值集合的第二切片的第二初始化指示符值,和第二一或多个映射函数中的至少一者来确定初始化值集合(608)。在此实例中,第一和第二切片类型可不同,且第一和第二切片类型中的至少一者可为时间预测的切片类型(例如,“P”切片类型或“B”切片类型),如先前参考图4的实例所描述。
在此实例中,第二切片的上文所描述的语法信息(即,第二切片类型的第二指示、第二初始化指示符值和第二一或多个映射函数)可再次由视频编码器20产生(例如,作为对第二切片进行编码的部分)或由另一系统或装置提供给视频编码器20。举例来说,视频编码器20可再次将此语法信息编码在位流内以由视频解码器30接收,如上文参考图5的实例所描述。如先前所阐释,在一些实例中,视频编码器20可产生位流以用于传输到视频解码器30和/或用于存储在存储装置24内。
而且在此实例中,视频编码器20可再次使用第二一或多个映射函数将第二切片类型或在适用时的第二初始化指示符值映射到所述初始化值集合。换句话说,通过使用第二一或多个映射函数,视频编码器20可使用第二切片类型或在适用时的第二初始化指示符值例如从若干初始化值集合中选择所述初始化值集合。
在确定或选择所述初始化值集合之后,视频编码器20可基于所述初始化值集合的一或多个值来初始化或重新初始化上下文自适应熵译码过程的一或多个上下文(610)。举例来说,视频编码器20可再次使用所述初始化值集合的一或多个值针对一或多个上下文中的每一者来确定对应于初始概率的初始上下文状态。视频编码器20可随后通过基于所述重新初始化的一或多个上下文来执行上下文自适应熵译码过程而对第二切片的符合特定类型(即,与第一语法元素相同类型的语法元素)的语法元素的第二语法元素进行编码(612)。另外,视频编码器20可将第二切片类型的第二指示(或界定第二切片类型的数据)、第二初始化指示符值,和第二一或多个映射函数中的至少一者编码在位流中(614)。举例来说,视频编码器20可将上文所描述的语法信息编码在位流中以供视频解码器30使用,如上文参考图5的实例所描述,且/或供存储在存储装置24内。
在上文所描述的实例中,第一和第二切片类型的第一和第二指示可再次对应于用于指示与视频数据的切片相关联的切片类型的特定语法元素类型的相同值。举例来说,特定语法元素类型的相同值可与第一和第二切片中的每一者相关联。类似地,在适用时,第一和第二切片的第一和第二初始化指示符值也可对应于与第一和第二切片中的每一者相关联的特定语法元素类型(例如,cabac_init_idc)的相同值。此外,第一和第二一或多个映射函数可为相同的一或多个映射函数。以此方式,与视频解码器30一样,视频编码器20可使用第一和第二一或多个映射函数将第一和第二切片类型中的每一者或在适用时的第一和第二初始化指示符值中的每一者映射到所述初始化值集合。作为仍另一实例,视频编码器20和/或视频解码器30可接收视频数据的切片的数据(700)。举例来说,视频数据的切片可为当前经译码切片。在此实例中,当前经译码切片的数据可包含与所述切片相关联的一或多个语法元素。作为一个实例,所述一或多个语法元素可指示关于当前经译码切片的各种类型的信息,包含视频编码器(例如,视频编码器20)对切片进行编码所使用且视频解码器(例如,视频解码器30)对切片进行解码所需的各种类型的控制信息。
在此实例中,视频编码器20和/或视频解码器30可进一步基于所接收的数据来确定与视频数据的切片相关联的切片类型和初始化指示符值中的一者(702)。举例来说,与当前经译码切片相关联的所确定的切片类型可为上文所描述的“I”、“P”和“B”切片类型中的任一者。在此实例中,所确定的切片类型可使用与当前经译码切片相关联的语法元素来表示。作为另一实例,与当前经译码切片相关联的所确定的初始化指示符值还可使用例如符合特定语法元素类型的语法元素来表示。举例来说,所确定的初始化指示符值可为与当前经译码切片相关联的语法元素类型cabac_init_idc或另一类似语法元素类型的值。在此实例中,与当前经译码切片相关联的初始化指示符值可指示用于对切片进行译码的特定初始化值集合。
而且,在此实例中,视频编码器20和/或视频解码器30可仍进一步接收与视频数据的切片相关联的语法元素(704)。举例来说,与当前经译码切片相关联的语法元素可为所述切片的当前经译码语法元素。作为一个实例,所述语法元素可对应于用于表示当前经译码切片的系数信息(例如,切片的一或多个视频数据块的系数值信息,或相关语法信息)的语法元素类型。
在此实例中,视频编码器20和/或视频解码器30可仍进一步基于切片类型和初始化指示符值中的所确定的一者来确定所接收的语法元素的初始化值集合(706)。举例来说,如先前所阐释,所述初始化值集合可包含用于确定(或“初始化”)上下文自适应熵译码过程(例如,CABAC过程)的一或多个上下文中的每一者的初始上下文状态的一或多个初始化值(例如,上文所描述的“m”、“n”和“m8”值中的一或多者)。
作为一个实例,视频编码器20和/或视频解码器30可通过使用一或多个映射函数将与当前经译码切片相关联的所确定的切片类型映射到初始化值集合来确定所接收的语法元素的初始化值集合。作为另一实例,视频编码器20和/或视频解码器30可独立于与当前经译码切片相关联的切片类型来确定所接收的语法元素的初始化值集合。举例来说,如先前所描述,视频编码器20和/或视频解码器30可使用与当前经译码切片相关联的语法元素类型cabac_init_idc的值(即,初始化指示符值)来确定初始化值集合。在任何情况下,作为视频编码器20和/或视频解码器30以上文所描述的方式确定所接收的语法元素的初始化值集合的结果,视频编码器20和/或视频解码器30可确定视频数据的包含具有不同切片类型的切片的多个切片的相同初始化值集合。
随后,视频编码器20和/或视频解码器30可使用所确定的初始化值集合对所接收的语法元素进行译码(708)。具体来说,编码器20和/或视频解码器30可使用所确定的初始化值集合来初始化用于对所接收的语法元素(例如,用于对对应于所接收的语法元素的特定语法元素类型进行译码的一或多个上下文)进行译码的上下文自适应熵译码过程(例如,CABAC过程)的一或多个上下文,且使用所述初始化的一或多个上下文对所接收的语法元素进行译码。
在所接收的语法元素不是与当前经译码切片相关联的最后语法元素的情况下(例如,当前经译码切片的额外语法元素存在)(710的“否”分支),编码器20和/或视频解码器30可以上文关于当前经译码语法元素所描述的相同或大体上类似的方式针对与当前经译码切片相关联的另一语法元素来执行步骤(704)到(708)。
然而,在所接收的语法元素是与当前经译码切片相关联的最后语法元素的情况下(例如,当前经译码切片的额外语法元素不存在)(710的“是”分支),编码器20和/或视频解码器30可进一步确定视频数据的另一切片的语法元素是否可用于被译码,如下文更详细地描述。
举例来说,在当前经译码或“当前”切片不是视频数据的最后切片的情况下(例如,存在正由编码器20和/或视频解码器30译码的视频数据的帧或帧序列或“图片”的额外切片)(712的“否”分支),编码器20和/或视频解码器30可进行到以上文关于当前经译码切片所描述的相同或大体上类似的方式针对视频数据的另一随后被译码的或“下一”切片来执行步骤(700)到(710)。
或者,然而,在当前经译码切片是视频数据的最后切片的情况下(例如,编码器20和/或视频解码器30正译码视频数据的帧或帧序列或图片的最后切片)(712的“是”分支),编码器20和/或视频解码器30可结束视频数据的译码(714)。在一些实例中,编码器20和/或视频解码器30可进行到执行其它任务,例如使用一或多个显示装置向用户传输(或“用信号通知”)、存储和/或显示经译码视频数据。
以此方式,图4到7的方法表示方法的实例,所述方法包含使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码,且使用初始化值集合对视频数据的符合第二切片类型的第二切片的符合特定类型的语法元素的第二语法元素进行译码,其中所述第一切片类型不同于所述第二切片类型,且其中所述第一切片类型和所述第二切片类型中的至少一者是时间预测的切片类型。
在一或多个实例中,本文中所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述功能可作为一或多个指令或代码存储在计算机可读媒体上或经由计算机可读媒体进行传输且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体(其可对应于例如数据存储媒体等有形或非暂时性媒体)或通信媒体,通信媒体包含促进(例如)根据通信协议将计算机程序从一处传递到另一处的任何媒体。以此方式,计算机可读媒体一般可对应于(1)非暂时性的有形计算机可读存储媒体或(2)例如信号或载波等通信媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索指令、代码和/或数据结构来用于实施本发明中所描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。
举例来说且并非限制,所述计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,快闪存储器,或可用于存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波的无线技术从网站、服务器或其它远程源传输软件,则同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波的无线技术包括于媒体的定义中。然而,应理解,计算机可读存储媒体和数据存储媒体不包含连接、载波、信号或其它瞬时媒体,而是针对于非瞬时的或非暂时的有形存储媒体。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常磁性地重现数据,而光盘使用激光光学地重现数据。以上各者的组合也应包含在计算机可读媒体的范围内。
指令可由一或多个处理器执行,例如,一或多个DSP、通用微处理器、ASIC、FPGA或其它等效集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实施本发明中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可提供于经配置以用于编码及解码的专用硬件模块和/或软件模块内,或并入组合式编解码器中。并且,可将所述技术完全实施于一或多个电路或逻辑元件中。
本发明的技术可实施于广泛多种装置或设备中,包含无线手持机、IC或IC组(例如,芯片组)。本发明中描述各种组件、模块或单元来强调经配置以执行所揭示的技术的装置的若干功能性方面,但不一定需要通过不同的硬件组件、模块或单元来实现。而是,如上文所描述,各种单元可联合合适的软件和/或固件而组合于编解码器硬件单元中或通过互操作的硬件单元的集合(包含如上文所描述的一或多个处理器)来提供。
已描述了各种实例。这些及其它实例属于所附权利要求书的范围内。

Claims (50)

1.一种对视频数据进行译码的方法,所述方法包括:
使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码;及
使用所述初始化值集合对视频数据的符合第二切片类型的第二切片的符合所述特定类型的语法元素的第二语法元素进行译码,其中所述第一切片类型不同于所述第二切片类型,且其中所述第一切片类型和所述第二切片类型中的至少一者是时间预测的切片类型。
2.根据权利要求1所述的方法,其进一步包括基于以下各者中的至少一者来确定用于对所述第一和第二语法元素进行译码的所述初始化值集合:
视频数据的所述第一切片的所述第一切片类型,和视频数据的所述第二切片的所述第二切片类型;及
视频数据的所述第一切片的第一初始化指示符值,和视频数据的所述第二切片的第二初始化指示符值,其中视频数据的所述第一和第二切片的所述第一和第二初始化指示符值中的每一者指示用于对视频数据的对应切片进行译码的特定初始化值集合。
3.根据权利要求1所述的方法,其进一步包括:
使用一或多个映射函数中的第一映射函数来确定视频数据的所述第一切片的所述第一切片类型和第一初始化指示符值中的一或多者与所述初始化值集合之间的第一映射;及
使用所述一或多个映射函数中的第二映射函数来确定视频数据的所述第二切片的所述第二切片类型和第二初始化指示符值中的一或多者与所述初始化值集合之间的第二映射,
其中视频数据的所述第一和第二切片的所述第一和第二初始化指示符值中的每一者指示用于对视频数据的所述对应切片进行译码的特定初始化值集合。
4.根据权利要求3所述的方法,其进一步包括对表示与所述视频数据相关联的图片参数集PPS、序列参数集SPS、调适参数集APS、视频参数集VPS、切片标头、帧标头和序列标头中的至少一者中的所述一或多个映射函数及所述第一和第二初始化指示符值中的至少一者的一或多个值进行译码。
5.根据权利要求3所述的方法,其进一步包括基于与所述视频数据相关联的量化参数QP、帧分辨率参数和图片群组GOP结构参数及用户输入中的一或多者来确定所述一或多个映射函数及所述第一和第二初始化指示符值中的至少一者。
6.根据权利要求1所述的方法,其进一步包括基于所述第一和第二切片类型及视频数据的所述第一切片的第一初始化指示符值及视频数据的所述第二切片的第二初始化指示符值中的一或多者及一或多个公式来确定所述初始化值集合,其中视频数据的所述第一和第二切片的所述第一和第二初始化指示符值中的每一者指示用于对视频数据的所述对应切片进行译码的特定初始化值集合。
7.根据权利要求1所述的方法,其进一步包括确定用于对第一和第二切片中的每一者进行译码的上下文全集的上下文子集,其中所述上下文子集包含用于对所述第一和第二语法元素的所述特定类型的语法元素进行译码的至少一或多个上下文,其中使用所述初始化值集合对所述第一和第二语法元素进行译码包括基于所述初始化值集合来初始化所述上下文子集的一或多个上下文。
8.根据权利要求7所述的方法,其中所述上下文子集包含用于对与视频数据块的系数相关的一或多种类型的语法元素进行译码的至少一或多个上下文。
9.根据权利要求7所述的方法,其进一步包括对指示所述上下文全集中的包含于与所述视频数据相关联的图片参数集PPS、序列参数集SPS、调适参数集APS、视频参数集VPS、切片标头、帧标头和序列标头中的至少一者中的所述上下文子集中的所述上下文的一或多个值进行译码。
10.根据权利要求7所述的方法,其中确定所述上下文全集的所述上下文子集包括基于与所述视频数据相关联的量化参数QP、帧分辨率参数和图片群组GOP结构参数及用户输入中的一或多者来确定所述上下文全集中的包含于所述上下文子集中的所述上下文。
11.根据权利要求1所述的方法,其中使用所述初始化值集合对所述第一语法元素和所述第二语法元素进行译码包括基于所述初始化值集合和相应语法元素所属的视频数据的所述第一和第二切片的所述第一和第二切片类型中的对应一者来确定用于对所述第一和第二语法元素中的至少所述特定类型的语法元素进行译码的一或多个上下文中的每一者的初始上下文状态。
12.根据权利要求11所述的方法,其中基于所述初始化值集合和所述第一和第二切片类型中的所述对应一者来确定所述一或多个上下文中的每一者的所述初始上下文状态包括基于所述初始化值集合的一或多个值、基于所述第一和第二切片类型中的所述对应一者而确定的量化参数QP值和QP偏移值来确定相应初始上下文状态。
13.根据权利要求1所述的方法,其中所述第一和第二切片类型中的每一者包括帧内预测(I)切片类型、单向帧间预测(P)切片类型及双向帧间预测(B)切片类型中的一者。
14.根据权利要求1所述的方法,其中所述初始化值集合包括以下各者中的一者:
斜率值和单独交叉值;及
表示所述斜率值和所述交叉值两者的单一值。
15.根据权利要求1所述的方法,其中译码包括解码,且其中使用所述初始化值集合对所述第一和第二语法元素进行解码包含:
在所接收的位流中接收视频数据的所述第一和第二切片的所述第一和第二切片类型、第一和第二初始化指示符值及一或多个映射函数中的至少一者;
基于所述所接收的第一和第二切片类型、第一和第二初始化指示符值及一或多个映射函数来确定所述初始化值集合;
基于所述初始化值集合的一或多个值来初始化上下文自适应熵译码过程的一或多个上下文;及
通过基于所述初始化的一或多个上下文来执行所述上下文自适应熵译码过程而对所述第一和第二语法元素进行解码。
16.根据权利要求1所述的方法,其中译码包括编码,且其中使用所述初始化值集合对所述第一和第二语法元素进行编码包含:
基于视频数据的所述第一和第二切片的所述第一和第二切片类型、第一和第二初始化指示符值及一或多个映射函数中的至少一者来确定所述初始化值集合;
基于所述初始化值集合的一或多个值来初始化上下文自适应熵译码过程的一或多个上下文;
通过基于所述初始化的一或多个上下文来执行所述上下文自适应熵译码过程而对所述第一和第二语法元素进行编码;及
将视频数据的所述第一和第二切片的所述第一和第二切片类型、第一和第二初始化指示符值及一或多个映射函数中的至少一者编码在位流中。
17.一种经配置以对视频数据进行译码的设备,所述设备包括视频译码器,所述视频译码器经配置以:
使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码;及
使用所述初始化值集合对视频数据的符合第二切片类型的第二切片的符合所述特定类型的语法元素的第二语法元素进行译码,其中所述第一切片类型不同于所述第二切片类型,且其中所述第一切片类型和所述第二切片类型中的至少一者是时间预测的切片类型。
18.根据权利要求17所述的设备,其中所述视频译码器进一步经配置以基于以下各者中的至少一者来确定用于对所述第一和第二语法元素进行译码的所述初始化值集合:
视频数据的所述第一切片的所述第一切片类型,和视频数据的所述第二切片的所述第二切片类型;及
视频数据的所述第一切片的第一初始化指示符值,和视频数据的所述第二切片的第二初始化指示符值,其中视频数据的所述第一和第二切片的所述第一和第二初始化指示符值中的每一者指示用于对视频数据的对应切片进行译码的特定初始化值集合。
19.根据权利要求17所述的设备,其中所述视频译码器进一步经配置以:
使用一或多个映射函数中的第一映射函数来确定视频数据的所述第一切片的所述第一切片类型和第一初始化指示符值中的一或多者与所述初始化值集合之间的第一映射;及
使用所述一或多个映射函数中的第二映射函数来确定视频数据的所述第二切片的所述第二切片类型和第二初始化指示符值中的一或多者与所述初始化值集合之间的第二映射,
其中视频数据的所述第一和第二切片的所述第一和第二初始化指示符值中的每一者指示用于对视频数据的所述对应切片进行译码的特定初始化值集合。
20.根据权利要求19所述的设备,其中所述视频译码器进一步经配置以对表示与所述视频数据相关联的图片参数集PPS、序列参数集SPS、调适参数集APS、视频参数集VPS、切片标头、帧标头和序列标头中的至少一者中的所述一或多个映射函数及所述第一和第二初始化指示符值中的至少一者的一或多个值进行译码。
21.根据权利要求19所述的设备,其中所述视频译码器进一步经配置以基于与所述视频数据相关联的量化参数QP、帧分辨率参数和图片群组GOP结构参数及用户输入中的一或多者来确定所述一或多个映射函数及所述第一和第二初始化指示符值中的至少一者。
22.根据权利要求17所述的设备,其中所述视频译码器进一步经配置以确定用于对第一和第二切片中的每一者进行译码的上下文全集的上下文子集,其中所述上下文子集包含用于对所述第一和第二语法元素的所述特定类型的语法元素进行译码的至少一或多个上下文,其中为了使用所述初始化值集合对所述第一和第二语法元素进行译码,所述视频译码器经配置以基于所述初始化值集合来初始化所述上下文子集的一或多个上下文。
23.根据权利要求22所述的设备,其中所述视频译码器进一步经配置以对指示所述上下文全集中的包含于与所述视频数据相关联的图片参数集PPS、序列参数集SPS、调适参数集APS、视频参数集VPS、切片标头、帧标头和序列标头中的至少一者中的所述上下文子集中的所述上下文的一或多个值进行译码。
24.根据权利要求22所述的设备,其中为了确定所述上下文全集的所述上下文子集,所述视频译码器经配置以基于与所述视频数据相关联的量化参数QP、帧分辨率参数和图片群组GOP结构参数及用户输入中的一或多者来确定所述上下文全集中的包含于所述上下文子集中的所述上下文。
25.根据权利要求17所述的设备,其中为了使用所述初始化值集合对所述第一语法元素和所述第二语法元素进行译码,所述视频译码器经配置以基于所述初始化值集合和相应语法元素所属的视频数据的所述第一和第二切片的所述第一和第二切片类型中的对应一者来确定用于对所述第一和第二语法元素中的至少所述特定类型的语法元素进行译码的一或多个上下文中的每一者的初始上下文状态。
26.根据权利要求25所述的设备,其中为了基于所述初始化值集合和所述第一和第二切片类型中的所述对应一者来确定所述一或多个上下文中的每一者的所述初始上下文状态,所述视频译码器经配置以基于所述初始化值集合的一或多个值、基于所述第一和第二切片类型中的所述对应一者而确定的量化参数QP值和QP偏移值来确定相应初始上下文状态。
27.根据权利要求17所述的设备,其中所述初始化值集合包括以下各者中的一者:斜率值和单独交叉值;及
表示所述斜率值和所述交叉值两者的单一值。
28.根据权利要求17所述的设备,其中所述设备包括以下各者中的至少一者:
集成电路;
微处理器;以及
包含所述视频译码器的无线通信装置。
29.一种经配置以对视频数据进行译码的装置,所述装置包括:
用于使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码的装置;及
用于使用所述初始化值集合对视频数据的符合第二切片类型的第二切片的符合所述特定类型的语法元素的第二语法元素进行译码的装置,其中所述第一切片类型不同于所述第二切片类型,且其中所述第一切片类型和所述第二切片类型中的至少一者是时间预测的切片类型。
30.根据权利要求29所述的装置,其进一步包括用于基于以下各者中的至少一者来确定用于对所述第一和第二语法元素进行译码的所述初始化值集合的装置:
视频数据的所述第一切片的所述第一切片类型,和视频数据的所述第二切片的所述第二切片类型;及
视频数据的所述第一切片的第一初始化指示符值,和视频数据的所述第二切片的第二初始化指示符值,其中视频数据的所述第一和第二切片的所述第一和第二初始化指示符值中的每一者指示用于对视频数据的对应切片进行译码的特定初始化值集合。
31.根据权利要求29所述的装置,其进一步包括:
用于使用一或多个映射函数中的第一映射函数来确定视频数据的所述第一切片的所述第一切片类型和第一初始化指示符值中的一或多者与所述初始化值集合之间的第一映射的装置;及
用于使用所述一或多个映射函数中的第二映射函数来确定视频数据的所述第二切片的所述第二切片类型和第二初始化指示符值中的一或多者与所述初始化值集合之间的第二映射的装置,
其中视频数据的所述第一和第二切片的所述第一和第二初始化指示符值中的每一者指示用于对视频数据的所述对应切片进行译码的特定初始化值集合。
32.根据权利要求31所述的装置,其进一步包括用于对表示与所述视频数据相关联的图片参数集PPS、序列参数集SPS、调适参数集APS、视频参数集VPS、切片标头、帧标头和序列标头中的至少一者中的所述一或多个映射函数及所述第一和第二初始化指示符值中的至少一者的一或多个值进行译码的装置。
33.根据权利要求31所述的装置,其进一步包括用于基于与所述视频数据相关联的量化参数QP、帧分辨率参数和图片群组GOP结构参数及用户输入中的一或多者来确定所述一或多个映射函数及所述第一和第二初始化指示符值中的至少一者的装置。
34.根据权利要求29所述的装置,其进一步包括用于确定用于对第一和第二切片中的每一者进行译码的上下文全集的上下文子集的装置,其中所述上下文子集包含用于对所述第一和第二语法元素的所述特定类型的语法元素进行译码的至少一或多个上下文,其中所述用于使用所述初始化值集合对所述第一和第二语法元素进行译码的装置包括用于基于所述初始化值集合来初始化所述上下文子集的一或多个上下文的装置。
35.根据权利要求34所述的装置,其进一步包括用于对指示所述上下文全集中的包含于与所述视频数据相关联的图片参数集PPS、序列参数集SPS、调适参数集APS、视频参数集VPS、切片标头、帧标头和序列标头中的至少一者中的所述上下文子集中的所述上下文的一或多个值进行译码的装置。
36.根据权利要求34所述的装置,其中所述用于确定所述上下文全集的所述上下文子集的装置包括用于基于与所述视频数据相关联的量化参数QP、帧分辨率参数和图片群组GOP结构参数及用户输入中的一或多者来确定所述上下文全集中的包含于所述上下文子集中的所述上下文的装置。
37.根据权利要求29所述的装置,其中所述用于使用所述初始化值集合对所述第一语法元素和所述第二语法元素进行译码的装置包括用于基于所述初始化值集合和相应语法元素所属的视频数据的所述第一和第二切片的所述第一和第二切片类型中的对应一者来确定用于对所述第一和第二语法元素中的至少所述特定类型的语法元素进行译码的一或多个上下文中的每一者的初始上下文状态的装置。
38.根据权利要求37所述的装置,其中所述用于基于所述初始化值集合和所述第一和第二切片类型中的所述对应一者来确定所述一或多个上下文中的每一者的所述初始上下文状态的装置包括用于基于所述初始化值集合的一或多个值、基于所述第一和第二切片类型中的所述对应一者而确定的量化参数QP值和QP偏移值来确定相应初始上下文状态的装置。
39.根据权利要求29所述的装置,其中所述初始化值集合包括以下各者中的一者:
斜率值和单独交叉值;及
表示所述斜率值和所述交叉值两者的单一值。
40.一种计算机可读存储媒体,其存储在被执行时致使一或多个处理器对视频数据进行译码的指令,其中所述指令致使所述一或多个处理器:
使用初始化值集合对视频数据的符合第一切片类型的第一切片的符合特定类型的语法元素的第一语法元素进行译码;及
使用所述初始化值集合对视频数据的符合第二切片类型的第二切片的符合所述特定类型的语法元素的第二语法元素进行译码,其中所述第一切片类型不同于所述第二切片类型,且其中所述第一切片类型和所述第二切片类型中的至少一者是时间预测的切片类型。
41.根据权利要求40所述的计算机可读存储媒体,其进一步包括致使所述一或多个处理器基于以下各者中的至少一者来确定用于对所述第一和第二语法元素进行译码的所述初始化值集合的指令:
视频数据的所述第一切片的所述第一切片类型,和视频数据的所述第二切片的所述第二切片类型;及
视频数据的所述第一切片的第一初始化指示符值,和视频数据的所述第二切片的第二初始化指示符值,其中视频数据的所述第一和第二切片的所述第一和第二初始化指示符值中的每一者指示用于对视频数据的对应切片进行译码的特定初始化值集合。
42.根据权利要求40所述的计算机可读存储媒体,其进一步包括致使所述一或多个处理器进行以下操作的指令:
使用一或多个映射函数中的第一映射函数来确定视频数据的所述第一切片的所述第一切片类型和第一初始化指示符值中的一或多者与所述初始化值集合之间的第一映射;及
使用所述一或多个映射函数中的第二映射函数来确定视频数据的所述第二切片的所述第二切片类型和第二初始化指示符值中的一或多者与所述初始化值集合之间的第二映射,
其中视频数据的所述第一和第二切片的所述第一和第二初始化指示符值中的每一者指示用于对视频数据的所述对应切片进行译码的特定初始化值集合。
43.根据权利要求42所述的计算机可读存储媒体,其进一步包括致使所述一或多个处理器进行以下操作的指令:对表示与所述视频数据相关联的图片参数集PPS、序列参数集SPS、调适参数集APS、视频参数集VPS、切片标头、帧标头和序列标头中的至少一者中的所述一或多个映射函数及所述第一和第二初始化指示符值中的至少一者的一或多个值进行译码。
44.根据权利要求42所述的计算机可读存储媒体,其进一步包括致使所述一或多个处理器进行以下操作的指令:基于与所述视频数据相关联的量化参数QP、帧分辨率参数和图片群组GOP结构参数及用户输入中的一或多者来确定所述一或多个映射函数及所述第一和第二初始化指示符值中的至少一者。
45.根据权利要求40所述的计算机可读存储媒体,其进一步包括致使所述一或多个处理器进行以下操作的指令:确定用于对第一和第二切片中的每一者进行译码的上下文全集的上下文子集,其中所述上下文子集包含用于对所述第一和第二语法元素的所述特定类型的语法元素进行译码的至少一或多个上下文,其中所述致使所述一或多个处理器使用所述初始化值集合对所述第一和第二语法元素进行译码的指令包括致使所述一或多个处理器基于所述初始化值集合来初始化所述上下文子集的一或多个上下文的指令。
46.根据权利要求45所述的计算机可读存储媒体,其进一步包括致使所述一或多个处理器进行以下操作的指令:对指示所述上下文全集中的包含于与所述视频数据相关联的图片参数集PPS、序列参数集SPS、调适参数集APS、视频参数集VPS、切片标头、帧标头和序列标头中的至少一者中的所述上下文子集中的所述上下文的一或多个值进行译码。
47.根据权利要求45所述的计算机可读存储媒体,其中所述致使所述一或多个处理器确定所述上下文全集的所述上下文子集的指令包括致使所述一或多个处理器进行以下操作的指令:基于与所述视频数据相关联的量化参数QP、帧分辨率参数和图片群组GOP结构参数及用户输入中的一或多者来确定所述上下文全集中的包含于所述上下文子集中的所述上下文。
48.根据权利要求40所述的计算机可读存储媒体,其中所述致使所述一或多个处理器使用所述初始化值集合对所述第一语法元素和所述第二语法元素进行译码的指令包括致使所述一或多个处理器进行以下操作的指令:基于所述初始化值集合和相应语法元素所属的视频数据的所述第一和第二切片的所述第一和第二切片类型中的对应一者来确定用于对所述第一和第二语法元素中的至少所述特定类型的语法元素进行译码的一或多个上下文中的每一者的初始上下文状态。
49.根据权利要求48所述的计算机可读存储媒体,其中所述致使所述一或多个处理器基于所述初始化值集合和所述第一和第二切片类型中的所述对应一者来确定所述一或多个上下文中的每一者的所述初始上下文状态的指令包括致使所述一或多个处理器进行以下操作的指令:基于所述初始化值集合的一或多个值、基于所述第一和第二切片类型中的所述对应一者而确定的量化参数QP值和QP偏移值来确定相应初始上下文状态。
50.根据权利要求40所述的计算机可读存储媒体,其中所述初始化值集合包括以下各者中的一者:
斜率值和单独交叉值;及
表示所述斜率值和所述交叉值两者的单一值。
CN201380005756.9A 2012-01-19 2013-01-18 具有精简的初始化值集合的上下文自适应熵译码 Expired - Fee Related CN104067524B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261588604P 2012-01-19 2012-01-19
US201261588626P 2012-01-19 2012-01-19
US61/588,604 2012-01-19
US61/588,626 2012-01-19
US13/744,087 US9654772B2 (en) 2012-01-19 2013-01-17 Context adaptive entropy coding with a reduced initialization value set
US13/744,087 2013-01-17
PCT/US2013/022138 WO2013109885A1 (en) 2012-01-19 2013-01-18 Context adaptive entropy coding with a reduced initialization value set

Publications (2)

Publication Number Publication Date
CN104067524A true CN104067524A (zh) 2014-09-24
CN104067524B CN104067524B (zh) 2017-06-13

Family

ID=48797183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380005756.9A Expired - Fee Related CN104067524B (zh) 2012-01-19 2013-01-18 具有精简的初始化值集合的上下文自适应熵译码

Country Status (6)

Country Link
US (1) US9654772B2 (zh)
EP (1) EP2805420A1 (zh)
JP (2) JP2015504292A (zh)
KR (1) KR20140120337A (zh)
CN (1) CN104067524B (zh)
WO (1) WO2013109885A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106797477A (zh) * 2014-10-14 2017-05-31 高通股份有限公司 用于帧内bc和帧间预测统一的amvp和合并候选者列表导出
CN107660339A (zh) * 2015-05-29 2018-02-02 高通股份有限公司 使用增强型上下文自适应二进制算术译码设计来译码数据
CN109792542A (zh) * 2016-09-30 2019-05-21 高通股份有限公司 图像/视频译码中的所存储数据的存储量和带宽减小
CN109874011A (zh) * 2018-12-28 2019-06-11 杭州海康威视数字技术股份有限公司 编码方法、解码方法及装置
CN111357287A (zh) * 2017-11-20 2020-06-30 高通股份有限公司 针对通过时间预测进行的上下文初始化的存储器减小

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RS64604B1 (sr) 2011-06-16 2023-10-31 Ge Video Compression Llc Entropijsko kodiranje razlika vektora kretanja
US9338465B2 (en) 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US11647197B2 (en) 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
CN106201768B (zh) * 2015-04-29 2021-06-01 腾讯科技(深圳)有限公司 数据存储方法及装置
US10032481B2 (en) * 2016-03-22 2018-07-24 Verizon Digital Media Services Inc. Speedy clipping
GB2553557B (en) * 2016-09-08 2022-04-20 V Nova Int Ltd Data processing apparatuses, methods, computer programs and computer-readable media
EP3609183B1 (en) * 2017-04-13 2023-05-03 LG Electronics Inc. Image encoding/decoding method and device therefor
US11546402B2 (en) 2019-01-04 2023-01-03 Tencent America LLC Flexible interoperability and capability signaling using initialization hierarchy
US11178399B2 (en) * 2019-03-12 2021-11-16 Qualcomm Incorporated Probability initialization for video coding
US11330298B2 (en) * 2019-06-25 2022-05-10 Qualcomm Incorporated Simplified intra chroma mode coding in video coding
GB2596100A (en) * 2020-06-17 2021-12-22 Sony Group Corp Data encoding and decoding
GB2599447A (en) * 2020-10-05 2022-04-06 Sony Group Corp Data encoding and decoding
WO2024041369A1 (en) * 2022-08-25 2024-02-29 Mediatek Inc. Method and apparatus of entropy coding for subpictures

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1656817A (zh) * 2002-03-22 2005-08-17 真实网络公司 上下文自适应的vlc视频变换系数编码/解码方法与设备
CN101185336A (zh) * 2005-03-10 2008-05-21 高通股份有限公司 用于使用切片内再同步点的错误恢复的方法及设备
US20100098155A1 (en) * 2008-10-17 2010-04-22 Mehmet Umut Demircin Parallel CABAC Decoding Using Entropy Slices

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2479896A1 (en) 2002-04-26 2012-07-25 NTT DoCoMo, Inc. Signal encoding method, signal decoding method, signal encoding device, signal decoding device, signal encoding program, and signal decoding program
US6894628B2 (en) * 2003-07-17 2005-05-17 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables
JP4438663B2 (ja) 2005-03-28 2010-03-24 日本ビクター株式会社 算術符号化装置及び算術符号化方法
KR20070006445A (ko) * 2005-07-08 2007-01-11 삼성전자주식회사 하이브리드 엔트로피 부호화, 복호화 방법 및 장치
JP2007074337A (ja) 2005-09-07 2007-03-22 Matsushita Electric Ind Co Ltd 符号化装置及び符号化方法
US7777654B2 (en) 2007-10-16 2010-08-17 Industrial Technology Research Institute System and method for context-based adaptive binary arithematic encoding and decoding
JP2010171655A (ja) 2009-01-21 2010-08-05 Canon Inc 算術符号化装置及び算術符号化方法
JP5676744B2 (ja) 2010-04-13 2015-02-25 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン エントロピー符号化
US9313514B2 (en) 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
US8913666B2 (en) 2010-10-01 2014-12-16 Qualcomm Incorporated Entropy coding coefficients using a joint context model
US9131245B2 (en) * 2011-09-23 2015-09-08 Qualcomm Incorporated Reference picture list construction for video coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1656817A (zh) * 2002-03-22 2005-08-17 真实网络公司 上下文自适应的vlc视频变换系数编码/解码方法与设备
CN101185336A (zh) * 2005-03-10 2008-05-21 高通股份有限公司 用于使用切片内再同步点的错误恢复的方法及设备
US20100098155A1 (en) * 2008-10-17 2010-04-22 Mehmet Umut Demircin Parallel CABAC Decoding Using Entropy Slices

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106797477A (zh) * 2014-10-14 2017-05-31 高通股份有限公司 用于帧内bc和帧间预测统一的amvp和合并候选者列表导出
CN106797477B (zh) * 2014-10-14 2019-07-19 高通股份有限公司 用于解码及编码视频数据的方法和设备
CN107660339A (zh) * 2015-05-29 2018-02-02 高通股份有限公司 使用增强型上下文自适应二进制算术译码设计来译码数据
CN107660339B (zh) * 2015-05-29 2020-03-24 高通股份有限公司 译码视频数据的方法和装置及非暂时性计算机可读存储媒体
CN109792542A (zh) * 2016-09-30 2019-05-21 高通股份有限公司 图像/视频译码中的所存储数据的存储量和带宽减小
CN109792542B (zh) * 2016-09-30 2021-05-25 高通股份有限公司 图像/视频译码中的所存储数据的存储量和带宽减小
CN111357287A (zh) * 2017-11-20 2020-06-30 高通股份有限公司 针对通过时间预测进行的上下文初始化的存储器减小
CN111357287B (zh) * 2017-11-20 2022-05-06 高通股份有限公司 针对通过时间预测进行的上下文初始化的存储器减小
CN109874011A (zh) * 2018-12-28 2019-06-11 杭州海康威视数字技术股份有限公司 编码方法、解码方法及装置
CN109874011B (zh) * 2018-12-28 2020-06-09 杭州海康威视数字技术股份有限公司 编码方法、解码方法及装置

Also Published As

Publication number Publication date
US20130188700A1 (en) 2013-07-25
WO2013109885A1 (en) 2013-07-25
JP2015504292A (ja) 2015-02-05
JP2017225132A (ja) 2017-12-21
EP2805420A1 (en) 2014-11-26
KR20140120337A (ko) 2014-10-13
US9654772B2 (en) 2017-05-16
CN104067524B (zh) 2017-06-13

Similar Documents

Publication Publication Date Title
CN104067524A (zh) 具有精简的初始化值集合的上下文自适应熵译码
CN103299621B (zh) 用于视频译码中的一般化p/b帧的参考图片列表构造
CN103636224B (zh) 用于视频压缩中的系数等级译码的上下文
CN104025603A (zh) 最后有效系数的位置的渐进式译码
CN103999367A (zh) 用于上下文自适应二进制算术译码的上下文数目缩减
CN104025457A (zh) 用于最后有效系数位置译码的上下文最优化
CN103891293A (zh) 用于色度分量的自适应环路滤波
CN104221380A (zh) 用于并行运动估计的共同空间候选块
CN104126301A (zh) 在视频译码中使用码簿对环路滤波器参数进行译码
CN104054339A (zh) 用信号通知视频译码中的解块滤波器参数
CN103329525A (zh) 用于视频译码的组合参考图片列表建构
CN103181169A (zh) 使用联合上下文模型对系数进行熵译码
CN103797801A (zh) 视频译码中的非正方形变换单元和预测单元
CN104247420A (zh) 转换系数译码
CN103404144A (zh) 视频译码中的经量化脉码调制
CN103718551A (zh) 在视频译码中用信号发出图片大小
CN103959775A (zh) 帧内模式视频译码
CN104205829A (zh) 合并信令及环路滤波器开/关信令
CN103703776A (zh) 在视频译码中的系数扫描
CN103155555A (zh) 视频译码中的译码预测模式
CN104081777A (zh) 用于视频译码的残余四叉树(rqt)译码
CN103891279A (zh) 用于帧内预测译码的最大概率变换
CN103975596A (zh) 用于视频译码的瓦片的分组
CN103703781A (zh) 使用自适应运动向量分辨率的视频译码
CN104255035A (zh) 视讯译码中的量化参数(qp)译码

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170613

Termination date: 20190118