CN103918260A - 每时钟cabac编码采用2个bin的视频编码器 - Google Patents

每时钟cabac编码采用2个bin的视频编码器 Download PDF

Info

Publication number
CN103918260A
CN103918260A CN201180074873.1A CN201180074873A CN103918260A CN 103918260 A CN103918260 A CN 103918260A CN 201180074873 A CN201180074873 A CN 201180074873A CN 103918260 A CN103918260 A CN 103918260A
Authority
CN
China
Prior art keywords
bin value
coding
exponential quantity
probability state
caba
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.)
Pending
Application number
CN201180074873.1A
Other languages
English (en)
Inventor
S.王
H-F.R.陈
M.I.夸拉斯
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN103918260A publication Critical patent/CN103918260A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

描述***、装置和方法,其包括在单个时钟周期期间使用一个基于上下文的自适应算术编码(CABAC)引擎来对一个bin值编码并且使用另一个CABAC引擎来对另一个bin值编码。每个CABAC引擎的概率状态指数可在对bin值编码时提供给其他CABAC引擎。

Description

每时钟CABAC 编码采用2 个BIN 的视频编码器
背景技术
在高级视频编码(AVC)编码器流水线中,宏块视频数据由语法元素表示。典型地,语法元素经历二进制化过程并且然后使用基于上下文的自适应算术编码(CABAC)引擎来编码。CABAC编码过程基于递归区间细分方案。常规的CABAC引擎在任何给定的时钟周期期间仅对二进制化语法元素的一个位或“bin”编码。
附图说明
本文描述的材料通过示例而非限制性的方式在附图中图示。为了图示的简单和清楚起见,在图中图示的元件不一定按比例绘制。例如,为了清楚起见,一些元件的尺寸可相对于其他元件扩大。此外,在认为适当的地方,标号在图之中重复来指示对应或类似元件。在图中:
图1是示例视频编码器***的说明性图;
图2图示图1的熵编码模块;
图3图示示例过程;
图4更详细图示图2的熵编码模块;
图5更详细图示图4的熵编码模块的一部分;以及
图6是全部根据本公开的至少一些实现而设置的示例计算***的说明性图。
具体实施方式
现在参考附图来描述一个或多个实施例或实现。尽管论述了特定配置和设置,应该理解这只是为了说明性目的而进行。相关领域内技术人员将认识到可以采用其他配置和设置而不偏离描述的精神和范围。也可以在除了本文描述的之外的多种其他***和应用中采用本文描述的技术和/或设置,这对相关领域内技术人员将是明显的。
尽管下列描述阐述可在例如片上***(SoC)架构等架构中显露的各种实现,本文描述的技术和/或设置的实现不限于特定架构和/或计算***并且可由任何架构和/或计算***为了相似目的而实现。例如,采用例如多个集成电路(IC)芯片和/或封装件的各种架构和/或各种计算装置和/或例如机顶盒、智能电话等消费者电子(CE)装置可实现本文描述的技术和/或设置。此外,尽管下列描述可阐述例如***部件的逻辑实现、类型和相互关系、逻辑分区/集成选择等许多特定细节,要求保护的主旨可在没有这样的特定细节的情况下实践。在其他实例中,例如控制结构和全软件指令序列等一些材料可未被详细示出以便不掩盖本文公开的材料。
本文公开的材料可采用硬件、固件、软件或其任何组合来实现。本文公开的材料还可实现为存储在机器可读介质上的指令,其可由一个或多个处理器读取并且执行。机器可读介质可包括用于采用可被机器(例如,计算装置)读取的形式存储或传送信息的任何介质和/或机构。例如,机器可读介质可包括:只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪速存储器装置;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号,等)及其他。
在说明书中对“一个实现”、“实现”、“示例实现”等的引用指示描述的实现可包括特定特征、结构或特性,但每个实现可不一定包括该特定特征、结构或特性。此外,这样的短语不一定指相同的实现或实施例。此外,当特定特征、结构或特性连同实现一起描述时,认为这样的特征、结构或特性连同其他无论是否在本文明确描述的实现一起来实施属于本领域内技术人员的知识内。
图1图示根据本公开的示例视频编码器100的高级框图。在各种实现中,编码器100可包括预测模块102、变换模块104、量化模块106、扫描模块108和熵编码模块110。在各种实现中,编码器100可配置成根据各种视频编码标准和/或规范来对视频数据(例如,采用视频帧或图片的形式)编码,其包括但不限于H.264/高级视频编码(AVC)标准(参见,例如ITU-T和ISO/IEC JTC 1的联合视频组,2003年5月文献JVT-G050r1“Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification(ITU-T Rec. H.264|ISO/IEC 14496-10 AVC)”)(及其修订)(下文称“H.264/AVC标准”)。为了清楚起见,各种装置、***和过程在本文在H.264/AVC标准的上下文中描述,但本公开不限于任何特定视频编码标准和/或规范。另外,根据本公开,熵编码模块110可实现基于上下文的自适应算术编码(CABAC)引擎,如将在下文更详细描述的。
预测模块102可使用输入视频数据来执行空间和/或时间预测。例如,输入视频图像帧可分解成片(slice),其为了编码目的进一步细分成宏块。在非限制性示例中,输入视频数据可采用4:2:0色度格式,其中每个宏块包括16x16亮度样本阵列和两个对应的8x8色度样本阵列。还可采用其他色度格式,例如4:2:2(其中两个色度样本阵列在大小上是8x16)和4:4:4(具有两个16x16色度样本阵列)及类似物。预测模块102可应用已知的空间(内)预测技术和/或已知的时间(相互之间)预测技术来预测宏块数据值。变换模块104然后可对宏块应用已知的变换技术以在空间上对宏块数据解除相关。本领域内技术人员可认识到变换模块104在应用大小合适的变换度量之前可首先将16x16宏块细分成4x4或8x8块。此外,变换数据的DC系数可经历二次阿达玛变换(Hadamard transform)。
量化模块106然后可响应于量化控制参数(其可例如在每宏块基础上改变)而量化变换系数。例如,对于8位样本深度,量化控制参数可具有52个可能的值。另外,量化步长(quantization step size)可不与量化控制参数线性相关。扫描模块108然后可使用各种已知的扫描顺序方案来扫描量化变换系数的矩阵以生成变换系数符号元素串。变换系数符号元素以及额外的语法元素(例如宏块类型、内部预测模式、运动矢量、参考图片指数、残余变换系数等)然后可提供给熵编码模块110。
图2更详细地图示根据本公开的熵编码模块110。模块110包括两个CABAC引擎202(CABAC引擎0)和204(CABAC引擎1)、二进制化模块206、具有两个读端口和两个写端口的上下文存储器208和位合并模块210。每个非二进制输入语法元素(SE)可由二进制化模块206使用已知的二进制化技术(参见,例如IEEE Transactions on Circuits and Systems for Video Technology,第13卷第7期(2003年7月)D. Marpe的“Context-Based Adaptive Binary Arithmetic Coding in the H.264/ A VC Video Compression Standard”,在下文为“Marpe”)而处理来生成对应的SE位或“bin”(例如,bin0、bin1、bin2、…binN)。例如,二进制树结构可用于使还未采用二进制形式的SE、例如变换系数SE、运动矢量SE及类似物等二进制化。如本领域内技术人员可认识到的,二进制过程将所有非二进制值SE映射到另外称为bin串的bin序列。在各种实现中,可使用例如一元(U)、截断一元(TU)、第k阶指数哥伦布(EGk)、第一和第三方案的级联UEGk和固定长度二进制化等不同的二进制化方案。二进制化模块206还可对SE的每个bin得到上下文指数(ctxidx)。Bin值和它们的关联上下文指数然后提供给上下文存储器208以及CABAC引擎202和204。
如将更详细解释的,根据本公开,熵编码模块110可采用CABAC引擎202和204结合上下文存储器208以在单个时钟周期期间提供两个bin值的CABAC处理。为了这样做,CABAC引擎202和204一起通信耦合到单个时钟PIPE线203内使得CABAC引擎202和204的内部概率状态(pstateidx)存储在上下文存储器208中并且提供给CABAC引擎202和204。如将在下文更详细描述的,引擎202和/或204的bin值、上下文指数和内部概率状态可在引擎202和204对bin值应用递归区间细分算术编码技术时使用。位合并模块210然后可应用已知的技术(参见例如Marpe)来使CABAC引擎202和204的输出合并并且对编码器100生成编码的位流输出。
图3图示根据本公开的各种实现用于在单个时钟周期中对两个bin值执行CABAC编码的示例过程300的流程图。过程300可包括一个或多个操作、功能或动作,如由图3的框302、304、308、312和316中的一个或多个图示的。通过非限制性示例的方式,根据本公开,过程300将在本文参考在图4中甚至更详细描述的示例熵编码器110来描述。
过程300可在框302开始,其中可接收语法元素301。例如,H.264/AVC SE可在二进制化模块206处被接收。如在图4中示出的,二进制化模块206可接收SE,其包括例如变换系数值、运动矢量差(MVD)值及类似物。例如,SE可包括每个显著变换系数的绝对值。
在框304,可使SE二进制化来生成多个bin值305和对应数量的上下文指数值306。例如,表1示出对于不同MVD值的示例二进制化值。
例如,使用表1的示例,可使输入MVD SE值四(4)二进制化来生成具有值11110的SE bin串,其中SE bin串中的第一个位是该串的第一bin,第二个位是第二bin,等。在该特定示例中,输入MVD SE值四(4)将在框304处由模块206处理来生成五个(5)bin:bin0、bin1、bin2、bin3和bin4,其中每个bin具有值一(1)或零(0)。一般,对于任何任意输入SE值,模块206可在框304处生成多至N个bin值。
此外,作为在框304所执行的二进制化的一部分,模块206可生成与bin(并且因此与对应的bin值305)关联的上下文指数。本领域内技术人员可认识到根据H.264/AVC标准,每个SE可使用一系列概率模型中的一个,其中的每个可由上下文指数来指示(例如,图4中的ctxidx0、ctxidx1、…ctxidxN)。每个概率模型(与上下文指数唯一关联)包括一对两个值:6位概率状态指数和最大可能符号(MPS)位值。从而,每个bin的概率模型可由7位上下文指数值306表示。
过程300的论述的剩余部分将聚焦在任意输入SE bin串的前两个bin(binval0和binval1)的值和相应的上下文指数值(ctxidx0和ctxidx1)上。如在图4中示出的,信号binval0、ctxidx0、binval1和ctxidx1存储在上下文存储器208中,而binval0和ctxidx0提供给CABAC引擎202,并且binval1和ctxidx1信号提供给CABAC引擎204。一般,CABAC引擎202和204可采用两个编码模式:使用上下文模型的正规bin编码和对于具有相等的0和1概率的bin的旁路bin编码。
过程300可在框308继续,其中在一个时钟周期期间,可进行第一bin值的基于上下文的自适应算术(CABA)编码来生成编码的第一bin值309和第一概率状态指数值310。例如,CABAC引擎202可基于上下文指数ctxidx0从预定义概率模型集选择概率模型而进行框308,其中选择的上下文模型指示bin的最大可能符号(MPS)和概率状态指数(pStateIdx)。使用选择的上下文模型,引擎202可采用递归区间细分算术编码技术,其中区间长度的递归细分可由区间的下限(CodiLow)和长度(CodiRange)限定。
在各种实现中,框308可牵涉使用表驱动估计器的概率估计,其中每个概率模型可取具有关联概率值的128个不同状态中的一个。可规定最小可能符号(LPS)和最大可能符号(MPS)的概率并且每个概率状态然后可由LPS概率值规定。在各种实现中,CABAC引擎202还可响应于根据概率状态指数(out_stateidx0)的初始值的初始概率状态而执行框308。对于CABAC引擎202,框308可导致引擎202向上下文存储器208和两个复用器(multiplexer)402和404提供概率状态指数值(wrbackdata_pstateidx0),以及向位合并模块210提供编码bin值406。
过程300可在框312继续,其中在执行框308的相同的时钟周期期间,第二bin值的CABA编码可响应于第一概率状态指数值310而被执行来生成编码的第二bin值313和第二概率状态指数值314。例如,CABAC引擎204可通过基于上下文指数值ctxidx1和由CABAC引擎202提供的wrbackdata_pstateidx0的值来为binval1选择概率模型而执行框312。这样做时,CABAC引擎204可采用如由CABAC引擎202关于框308采用的递归区间细分算术编码技术。框310可导致引擎204向上下文存储器208和两个复用器402和404提供概率状态指数值(wrbackdata_pstateidx1),以及向位合并模块210提供编码bin值406。
如本领域内技术人员可认识到的,由CABAC模块202和204执行的算术编码可基于递归区间细分的原理,其中给定二元决策(0,1)的概率估计p(0)和p(1)=1- p(0),初始给出的具有范围codIRange的代码子区间可细分成两个子区间,分别具有范围p(0)*codIRange和codIRange-p(0)*codIRange。根据决策,对应的子区间可选为新的代码区间(例如,如由图4中的CodiRange/Codilow更新信号所规定),并且指向该区间内的二进制代码串可代表观察的二元决策的序列。二元决策可识别为最大可能符号(MPS)或最小可能符号(LPS)。从而,每个上下文可由LPS的概率pLPS和MPS的值(valMPS,其是0或1)规定。
如在图4中示出的,使用复用器402,上下文指数比较逻辑408可确定在框308将什么概率状态指数提供给CABAC引擎202,并且使用复用器404,上下文指数比较逻辑410可在框312确定将什么概率状态指数提供给CABAC引擎204。图5更详细地图示根据本公开的熵编码器110的部分。特别地,图5图示根据相关上下文指数值、使用比较器502、上下文存储器208、逻辑门504和506以及复用器508-514的概率状态指数值的读和写操作。
过程可在框316继续,其中可做出关于是否继续处理在框302接收的SE的额外bin值的决定。例如,对于具有超过两个bin值的SE,过程300可通过循环回到框308和312而继续,其中接着的两个bin值(例如,binval2和binval3)和关联的上下文指数(例如,ctxidx2和ctxidx3)可在随后的时钟周期期间经历CABA编码(如上文描述的)。然而,如果没有额外的二进制值要处理,则过程300可结束。在各种实现中,过程300的后续迭代可对SE串中的剩余非二进制SE来执行。
尽管示例过程300(如在图3中图示的)的实现可包括执行按图示的顺序示出的所有框,本公开在该方面不受限制,并且在各种示例中,过程300的实现可包括执行仅示出的框的子集和/或采用与图示的不同的顺序来执行框的子集。
另外,图3的框中的任何一个或多个可响应于由一个或多个计算机程序产品提供的指令来执行。这样的程序产品可包括提供指令的信号承载介质,这些指令在由例如处理器执行时可提供本文描述的功能性。计算机程序产品可在任何形式的计算机可读介质中提供。从而,例如,包括一个或多个处理器核的处理器可响应于由计算机可读介质传达给处理器的指令而执行在图3中示出的框中的一个或多个。
如在本文描述的任何实现中使用的,术语“模块”指配置成提供本文描述的功能性的软件、固件和/或硬件的任何组合。软件可体现为软件包、代码和/或指令集或指令,并且如在本文描述的任何实现中使用的“硬件”可单独或采用任何组合地包括例如硬接线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。模块可共同或独自体现为形成例如集成电路(IC)、芯片上***(SoC)等较大***的一部分的电路。
图6图示根据本公开的示例计算***600。***600可用于执行本文描述的各种功能中的一些或全部并且可包括能够根据本公开的各种实现进行本文描述的过程的任何装置或装置集合。例如,***600可包括例如台式机、移动或平板计算机、智能电话、机顶盒等计算平台或装置的选择部件,但本公开在该方面不受限制。在一些实现中,***600可包括例如CE装置中的基于Intel®架构(IA)的计算平台或SoC。本领域内技术人员将容易意识到,本文描述的实现可与备选处理***一起使用而不偏离本公开的范围。
计算***600可包括主机***602、总线616、显示器618、网络接口620和成像装置622。主机***602可包括处理器604、芯片集606、主机存储器608、图形子***610和存储装置612。处理器604可包括一个或多个处理器核并且可以是能够执行软件指令和/或处理数据信号的任何类型的处理器核。在各种示例中,处理器604可包括复杂指令集计算机(CISC)处理器核、精简指令集计算机(RISC)微处理器核、超长指令字(VLIW)微处理器核和/或实现任何组合或类型的指令集的任何数量的处理器核。在一些实现中,处理器604可有数字信号处理和/或微控制器处理的能力。
处理器604可包括解码器逻辑,其可用于将由例如芯片集606和/或图形子***610接收的指令解码成控制信号和/或微代码入口点。此外,响应于控制信号和/或微代码入口点,芯片集606和/或图形子***610可执行对应的操作。在各种实现中,处理器604可配置成执行本文描述的过程中的任一个,其包括关于图3描述的示例过程。
芯片集606可在处理器604、主机存储器608、存储装置612、图形子***610和总线616之中提供互相通信。例如,芯片集606可包括能够提供与存储装置612的互相通信的存储适配器(未描绘)。例如,该存储适配器可能够遵循许多协议中的任一个而与存储装置612通信,这些协议包括但不限于,小型计算机***接口(SCSI)、光纤通道(FC)和/或串行高级技术附件(S-ATA)协议。在各种实现中,芯片集606可包括在主机存储器608内或在网络接口620与主机存储器608之间或一般在***600中的任何组的部件之间传递信息的逻辑。在各种实现中,芯片集606可包括超过一个IC。
主机存储器608可实现为易失性存储器装置,例如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)等。存储装置612可实现为非易失性存储装置,例如但不限于磁盘驱动器、光盘驱动器、带驱动器、内部存储装置、附连存储装置、闪速存储器、电池备份SDRAM(同步DRAM)和/或网络可访问存储装置或类似物。
存储器608可存储由数据信号表示的指令和/或数据,其在执行本文描述的过程(其包括关于图3描述的示例过程)中的任一个中可由处理器604执行。例如,主机存储器608可存储输入图像、概率状态值等。在一些实现中,存储装置612也可存储这样的项目。
图形子***610可执行例如用于显示的静物或视频图像等图像的处理。例如,在一些实现中,图形子***610可执行输入视频信号的编码。例如,在一些实现中,图形子***610可执行如关于图3描述的活动。模拟或数字接口可用于使图形子***610和显示器618通信耦合。例如,接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD兼容技术中的任一个。在各种实现中,图形子***610可集成到处理器604或芯片集606内。在一些其他实现中,图形子***610可以是通信地耦合于芯片集606的独立卡。
总线616可在至少主机***602、网络接口620、成像装置622以及例如键盘、鼠标及类似物等其他***装置(未描绘)之中提供互相通信。总线616可支持串行或并行通信。总线616可支持节点到节点或节点到多节点通信。总线616可至少与以下兼容:在***部件互连(PCI)本地总线规范2004年2月修订版3.0所描述的***部件互连(PCI)规范(从美国俄勒冈州波特兰市的PCI特别兴趣组可获得)(以及其修订);在PCI特殊兴趣组的PCI Express基本规范修订版1.0a中描述的PCI Express(以及其修订);在PCI-X规范2005年3月28日修订版1.1中描述的PCI-x(从上述的美国俄勒冈州波特兰市的PCI特别兴趣组可获得)(以及其修订);和/或通用串行总线(USB)(和相关标准)以及其他互连标准。
网络接口620可能够遵循例如有线或无线技术等任何能适用的协议而在主机***602与网络之间提供互相通信。例如,网络接口620可遵循任意多种IEEE通信标准,例如802.3、802.11或802.16。网络接口620可使用总线616而与主机***602互相通信。在一些实现中,网络接口620可集成到芯片集606内。
本文描述的图形和/或视频处理技术可在各种硬件架构中实现。例如,图形和/或视频功能性可集成在芯片集内。备选地,可使用分立图形和/或视频处理器。作为再另一个实现,图形和/或视频功能可由通用处理器(其包括多核处理器)实现。在另外的实施例中,功能可在消费者电子装置中实现。
显示器618可以是任何类型的显式装置和/或面板。例如,显示器618可以是液晶显示器(LCD)、等离子体显示面板(PDP)、有机发光二极管(OLED)显示器等。在一些实现中,显示器618可以是投影显示器(例如微微型投影机显示器或类似物)、微型显示器等。在各种实现中,显示器618可用于显示由成像装置622捕获的图像。
成像装置622可以是能够捕获视频图像的任何类型的成像装置,例如数字拍摄装置、手机拍摄装置、红外(IR)拍摄装置及类似物。成像装置622可包括一个或多个图像传感器(例如电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)图像传感器)。成像装置622可捕获彩色或单***图像。成像装置622可捕获视频图像并且经由总线616和芯片集606向处理器604提供那些图像用于如本文描述的视频编码处理。
在一些实现中,***600可经由I/O总线(未示出)与也未在图6中示出的各种I/O装置通信。这样的I/O装置可包括但不限于,例如通用异步接收器/传送器(UART)装置、USB装置、I/O扩展接口或其他I/O装置。在各种实现中,***600可代表用于执行移动、网络和/或无线通信的***的至少多个部分。例如,***600可使用网络接口620来传送使用本文描述的***和过程而生成的编码位流。
本文描述的装置和/或***(例如图1、2和4-6的示例***或装置)代表根据本公开的许多可能装置配置、架构或***中的若干个。与本公开一致的***的许多变化(例如本文描述的示例***的变化)是可能的。
上文描述的***和由它们如本文描述的那样执行的处理可在硬件、固件或软件或其任何组合中实现。另外,本文公开的任何一个或多个特征可在硬件、软件、固件及其组合中实现,其包括分立和集成逻辑、专用集成电路(ASIC)逻辑和微控制器,并且可实现为域特定集成电路封装件的一部分,或集成电路封装件的组合。如本文使用的术语软件指计算机程序产品,该计算机程序产品包括计算机可读介质,其具有存储在其中的计算机程序逻辑,用于促使计算机***执行本文公开的一个或多个特征和/或特征的组合。
尽管本文阐述的某些特征已参考各种实现描述,该描述不意在在限制的意义上解释。因此,本文描述的实现的各种修改以及其他实现(其对于本公开与之有关的领域内技术人员是明显的)被认为位于本公开的精神和范围内。

Claims (29)

1. 一种设备,其包括:
存储器;
第一模块,用于响应于第一上下文指数值在第一时钟周期期间对第一bin值进行熵编码,其中所述第一模块配置成在对所述第一bin值进行熵编码时将第一概率状态指数值存储在所述存储器中;以及
第二模块,用于响应于第二上下文指数值在所述第一时钟周期期间对第二bin值进行熵编码,其中所述第二模块配置成在对所述第二bin值进行熵编码时将第二概率状态指数值存储在所述存储器中。
2. 如权利要求1所述的设备,其进一步包括:
第三模块,用于通过使语法元素二进制化而生成所述第一和第二bin值、确定所述第一bin值的第一上下文指数值以及确定所述第二bin值的第二上下文指数值。
3. 如权利要求2所述的设备,其中所述语法元素包括H.264/AVC语法元素。
4. 如权利要求1所述的设备,其中所述存储器包括具有两个读端口和两个写端口的上下文存储器。
5. 如权利要求1所述的设备,其中所述第二模块配置成响应于所述第一概率状态指数值而对所述第二bin值进行熵编码。
6. 如权利要求1所述的设备,其中所述第一模块包括第一基于上下文的自适应算术编码(CABAC)引擎,并且所述第二模块包括第二CABAC引擎。
7. 如权利要求1所述的设备,所述存储器存储所述第一bin值、所述第二bin值、所述第一上下文指数值和所述第二上下文指数值。
8. 一种计算机实现的方法,其包括:
在第一时钟周期期间对第一bin值执行基于上下文的自适应算术(CABA)编码来生成编码的第一bin值和第一概率状态指数值;以及
在所述第一时钟周期期间响应于所述第一概率状态指数值来对第二bin值执行CABA编码来生成编码的第二bin值和第二概率状态指数值。
9. 如权利要求8所述的方法,其中对所述第一bin值执行CABA编码包括:
响应于第一上下文指数值和所述第一bin值而执行递归区间细分算术编码来生成所述编码的第一bin值和所述第一概率状态指数值;以及
将所述第一概率状态指数值存储在存储器中。
10. 如权利要求9所述的方法,其中所述存储器包括具有两个读端口和两个写端口的上下文存储器。
11. 如权利要求9所述的方法,其中对所述第二bin值执行CABA编码包括:
响应于第二上下文指数值和所述第二bin值而执行递归区间细分算术编码来生成所述编码的第二bin值和所述第二概率状态指数值;以及
将所述第二概率状态指数值存储在所述存储器中。
12. 如权利要求8所述的方法,其中对所述第一bin值执行CABA编码包括使用第一CABAC引擎来对所述第一bin值执行CABA编码,并且其中对所述第二bin值执行CABA编码包括使用第二CABAC引擎来对所述第二bin值执行CABA编码。
13. 如权利要求8所述的方法,其进一步包括:
接收语法元素;以及
使所述语法元素二进制化来生成所述第一bin值和所述第二bin值。
14. 如权利要求13所述的方法,其中所述语法元素包括H.264/AVC语法元素。
15. 一种***,其包括:
成像装置;以及
计算***,其中所述计算***通信地耦合于所述成像装置并且其中所述计算***:
在第一时钟周期期间对第一bin值执行基于上下文的自适应算术(CABA)编码来生成编码的第一bin值和第一概率状态指数值;以及
在所述第一时钟周期期间响应于所述第一概率状态指数值来对第二bin值执行CABA编码来生成编码的第二bin值和第二概率状态指数值。
16. 如权利要求15所述的***,其中为了对所述第一bin值执行CABA编码,所述计算***:
响应于第一上下文指数值和所述第一bin值而执行递归区间细分算术编码来生成所述编码的第一bin值和所述第一概率状态指数值;以及
将所述第一概率状态指数值存储在上下文存储器中。
17. 如权利要求16所述的***,其中所述上下文存储器包括两个读端口和两个写端口。
18. 如权利要求16所述的***,其中为了对所述第二bin值执行CABA编码,所述计算***:
响应于第二上下文指数值和所述第二bin值而执行递归区间细分算术编码来生成所述编码的第二bin值和所述第二概率状态指数值;以及
将所述第二概率状态指数值存储在上下文存储器中。
19. 如权利要求15所述的***,其中为了对所述第一bin值执行CABA编码,所述计算***使用第一CABAC引擎来对所述第一bin值执行CABA编码,并且其中为了对所述第二bin值执行CABA编码,所述计算***使用第二CABAC引擎来对所述第二bin值执行CABA编码。
20. 如权利要求15所述的***,其中所述计算***:
使语法元素二进制化来生成所述第一bin值和所述第二bin值。
21. 如权利要求20所述的***,其中所述计算***:
从所述成像装置接收视频内容;以及
处理所述视频内容来生成所述语法元素。
22. 如权利要求20所述的***,其中所述语法元素包括H.264/AVC语法元素。
23. 一种物品,其包括具有存储在其中的指令的计算机程序产品,所述指令如果被执行则促使:
在第一时钟周期期间对第一bin值执行基于上下文的自适应算术(CABA)编码来生成编码的第一bin值和第一概率状态指数值;以及
在所述第一时钟周期期间响应于所述第一概率状态指数值来对第二bin值执行CABA编码来生成编码的第二bin值和第二概率状态指数值。
24. 如权利要求23所述的物品,其中对所述第一bin值执行CABA编码包括:
响应于第一上下文指数值和所述第一bin值而执行递归区间细分算术编码来生成所述编码的第一bin值和所述第一概率状态指数值;以及
将所述第一概率状态指数值存储在存储器中。
25. 如权利要求24所述的物品,其中所述存储器包括上下文存储器,其具有两个读端口和两个写端口。
26. 如权利要求24所述的物品,其中对所述第二bin值执行CABA编码包括:
响应于第二上下文指数值和所述第二bin值而执行递归区间细分算术编码来生成所述编码的第二bin值和所述第二概率状态指数值;以及
将所述第二概率状态指数值存储在所述存储器中。
27. 如权利要求23所述的物品,其中对所述第一bin值执行CABA编码包括使用第一CABAC引擎来对所述第一bin值执行CABA编码,并且其中对所述第二bin值执行CABA编码包括使用第二CABAC引擎来对所述第二bin值执行CABA编码。
28. 如权利要求23所述的物品,其具有存储在其中的另外的指令,其如果被执行则促使:
接收语法元素;以及
使所述语法元素二进制化来生成所述第一bin值和所述第二bin值。
29. 如权利要求28所述的***,其中所述语法元素包括H.264/AVC语法元素。
CN201180074873.1A 2011-11-15 2011-11-15 每时钟cabac编码采用2个bin的视频编码器 Pending CN103918260A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/060779 WO2013074088A1 (en) 2011-11-15 2011-11-15 Video encoder with 2-bin per clock cabac encoding

Publications (1)

Publication Number Publication Date
CN103918260A true CN103918260A (zh) 2014-07-09

Family

ID=48429997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180074873.1A Pending CN103918260A (zh) 2011-11-15 2011-11-15 每时钟cabac编码采用2个bin的视频编码器

Country Status (6)

Country Link
US (1) US20130272373A1 (zh)
EP (1) EP2781087A4 (zh)
CN (1) CN103918260A (zh)
IN (1) IN2014CN02865A (zh)
TW (1) TWI578799B (zh)
WO (1) WO2013074088A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107667531A (zh) * 2015-05-29 2018-02-06 高通股份有限公司 使用增强型上下文自适应二进制算术译码设计来译码数据

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9258565B1 (en) * 2011-06-29 2016-02-09 Freescale Semiconductor, Inc. Context model cache-management in a dual-pipeline CABAC architecture
CN104394418B (zh) * 2014-09-23 2018-06-05 清华大学 一种视频数据编码、解码的方法及装置
US10158874B2 (en) * 2015-09-30 2018-12-18 Apple Inc. Parallel bypass and regular bin coding
KR102580669B1 (ko) * 2016-09-12 2023-09-21 삼성전자주식회사 프로세서 및 프로세서의 데이터 처리 방법
KR20180087771A (ko) 2017-01-25 2018-08-02 삼성전자주식회사 엔트로피 인코더 및 이를 포함하는 비디오 인코더
US10438588B2 (en) * 2017-09-12 2019-10-08 Intel Corporation Simultaneous multi-user audio signal recognition and processing for far field audio
CN113364471B (zh) * 2020-03-05 2024-04-12 华为技术有限公司 一种译码***、译码控制器及译码控制的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040059770A1 (en) * 2002-09-20 2004-03-25 Bossen Frank Jan Method and apparatus for arithmetic coding, including probability estimation state table creation
CN1630202A (zh) * 2003-12-17 2005-06-22 索尼株式会社 编码设备、程序和数据处理方法
CN101212676A (zh) * 2006-12-29 2008-07-02 北京展讯高科通信技术有限公司 高效并行cabac解码方法及其装置
US20100027680A1 (en) * 2008-03-28 2010-02-04 Segall Christopher A Methods and Systems for Parallel Video Encoding and Decoding
US20100259427A1 (en) * 2006-10-31 2010-10-14 Canon Kabushiki Kaisha Entropy coding apparatus

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3728011B2 (ja) * 1996-04-09 2005-12-21 キヤノン株式会社 誤り訂正方法および誤り訂正装置
US6094151A (en) * 1998-01-05 2000-07-25 Ricoh Company, Ltd. Apparatus and method for finite state machine coding of information selecting most probable state subintervals
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
JP4865662B2 (ja) * 2007-09-26 2012-02-01 キヤノン株式会社 エントロピー符号化装置、エントロピー符号化方法およびコンピュータプログラム
US7777654B2 (en) * 2007-10-16 2010-08-17 Industrial Technology Research Institute System and method for context-based adaptive binary arithematic encoding and decoding
US8542727B2 (en) * 2007-12-31 2013-09-24 Intel Corporation Systems and apparatuses for performing CABAC parallel encoding and decoding
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
US8626988B2 (en) * 2009-11-19 2014-01-07 Densbits Technologies Ltd. System and method for uncoded bit error rate equalization via interleaving
US9973768B2 (en) * 2010-03-16 2018-05-15 Texas Instruments Incorporated CABAC decoder with decoupled arithmetic decoding and inverse binarization
US10349070B2 (en) * 2010-09-30 2019-07-09 Texas Instruments Incorporated Simplified binary arithmetic coding engine
US8798139B1 (en) * 2011-06-29 2014-08-05 Zenverge, Inc. Dual-pipeline CABAC encoder architecture
KR102107643B1 (ko) * 2011-11-07 2020-05-08 타지반 투 엘엘씨 화상 부호화 방법, 화상 복호 방법, 화상 부호화 장치, 화상 복호 장치, 및 화상 부호화 복호 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040059770A1 (en) * 2002-09-20 2004-03-25 Bossen Frank Jan Method and apparatus for arithmetic coding, including probability estimation state table creation
CN1630202A (zh) * 2003-12-17 2005-06-22 索尼株式会社 编码设备、程序和数据处理方法
US20100259427A1 (en) * 2006-10-31 2010-10-14 Canon Kabushiki Kaisha Entropy coding apparatus
CN101212676A (zh) * 2006-12-29 2008-07-02 北京展讯高科通信技术有限公司 高效并行cabac解码方法及其装置
US20100027680A1 (en) * 2008-03-28 2010-02-04 Segall Christopher A Methods and Systems for Parallel Video Encoding and Decoding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LINGFENG LI等: "A Hardware Architecture of CABAC Encoding and Decoding with Dynamic Pipeline for H.264/AVC", 《JOURNAL OF SIGNAL PROCESSING SYSTEM》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107667531A (zh) * 2015-05-29 2018-02-06 高通股份有限公司 使用增强型上下文自适应二进制算术译码设计来译码数据
US10574993B2 (en) 2015-05-29 2020-02-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
CN107667531B (zh) * 2015-05-29 2020-07-28 高通股份有限公司 解码及编码视频数据的方法、视频译码装置及视频译码设备
US11233998B2 (en) 2015-05-29 2022-01-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design

Also Published As

Publication number Publication date
US20130272373A1 (en) 2013-10-17
EP2781087A4 (en) 2015-08-12
TW201338550A (zh) 2013-09-16
EP2781087A1 (en) 2014-09-24
IN2014CN02865A (zh) 2015-07-03
WO2013074088A1 (en) 2013-05-23
TWI578799B (zh) 2017-04-11

Similar Documents

Publication Publication Date Title
CN103918260A (zh) 每时钟cabac编码采用2个bin的视频编码器
US11856199B2 (en) Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
US12010351B2 (en) Acceleration of bypass binary symbol processing in video coding
TWI520619B (zh) 用於在視訊寫碼中之參考索引寫碼的旁路位元子
JP2021119709A (ja) 画像予測方法および装置
US9584802B2 (en) Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
CN104394418B (zh) 一种视频数据编码、解码的方法及装置
WO2015196087A1 (en) Intra block copy block vector signaling for video coding
KR20130018413A (ko) 랜덤 액세스 능력을 갖는 이미지 압축 방법
KR102675854B1 (ko) 비디오 픽처 예측 방법 및 장치
EP3258691A1 (en) Image compression/decompression device
KR102380579B1 (ko) 비디오 데이터에 관련된 신택스 엘리먼트를 나타내는 이진 심볼들의 시퀀스의 컨텍스트-적응적 이진 산술 코딩을 위한 방법 및 디바이스
KR20210153725A (ko) 글로벌 모션 벡터들의 효율적인 코딩
TW202010309A (zh) 用以編碼及解碼視訊取樣之轉換區塊的方法、設備和系統
KR20230175240A (ko) 하이브리드 피처 비디오 비트스트림 및 디코더를 위한 시스템들, 방법들 및 비트스트림 구조
Liu et al. An architecture of entropy decoder, inverse quantiser and predictor for multi-standard video decoding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140709