CN106415484B - 用于执行专用算术编码指令的设备、方法和计算机可读介质 - Google Patents

用于执行专用算术编码指令的设备、方法和计算机可读介质 Download PDF

Info

Publication number
CN106415484B
CN106415484B CN201580026297.1A CN201580026297A CN106415484B CN 106415484 B CN106415484 B CN 106415484B CN 201580026297 A CN201580026297 A CN 201580026297A CN 106415484 B CN106415484 B CN 106415484B
Authority
CN
China
Prior art keywords
value
cabac
input
offset
comparator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580026297.1A
Other languages
English (en)
Other versions
CN106415484A (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 CN106415484A publication Critical patent/CN106415484A/zh
Application granted granted Critical
Publication of CN106415484B publication Critical patent/CN106415484B/zh
Active 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明提供一种方法,其包含在处理器处执行专用算术编码指令。所述专用算术编码指令接受包含第一区间、第一偏移及第一状态的多个输入且基于所述多个输入产生一或多个输出。所述方法还包含基于所述专用算术编码指令的所述一或多个输出存储第二状态、重新对准所述第一区间以产生第二区间,及重新对准所述第一偏移以产生第二偏移。

Description

用于执行专用算术编码指令的设备、方法和计算机可读介质
相关申请案的交叉引用
本发明主张2014年5月27日申请的共同拥有的美国非临时专利申请案14/288,018号的优先权,其内容以全文引用的方式明确地并入本文中。
技术领域
本发明大体上涉及微处理器指令。
背景技术
技术的进步已产生较小且更强大的计算装置。举例来说,当前存在多种便携式个人计算装置,包含无线计算装置,例如便携式无线电话、个人数字助理(PDA)及传呼装置,其体积小,重量轻且易于由用户携带。更具体地说,便携式无线电话(例如蜂窝式电话及互联网协议(IP)电话)可经由无线网路传达语音及数据包。另外,许多所述无线电话包含并入于其中的其它类型的装置。举例来说,无线电话还可包含数字静态相机、数字摄像机、数字记录器及音频档案播放器。此外,所述无线电话可处理可执行指令,包含可用以对因特网进行接入的软件应用程序(例如,网页浏览器应用程序)。因此,这些无线电话可包括显著计算能力。
为达成高效率数据传送,表示视频档案的视频位流可在发射到例如无线电话的计算装置之前经编码。基于上下文的适应性二进制算术译码(CABAC)可用于连续地编码视频档案。通用指令可在CABAC编码期间使用以编码二进位(例如,位)。然而,归因于相对较大的处理时间,通用指令可为效率低的。
发明内容
本发明公开用于编码视频流的设备及方法。使用上下文适应性二进制算术译码(CABAC)编码方案编码位(例如,“二进位”)包含递归更新“区间”及“当前”码间隔的“偏移”。区间可包含第一子间隔(例如,最小可能符号(LPS))及第二子间隔(例如,最大可能符号(MPS))。如果二进位经编码为MPS(例如,逻辑“1”),那么区间可等于MPS的区间(例如,rMPS)及偏移,所述偏移可表示为“低区”且可保持不变(例如,lownew=low)。替代地,如果二进位经编码为LPS(例如,逻辑“0”),那么区间可等于LPS的区间(例如,rLPS)且偏移可等于偏移与MPS的区间的和(例如,lownew=low+rMPS)。所述偏移为经编码位流。
根据所描述的技术,使用CABAC编码视频流的专用算术编码指令(例如专用CABAC指令)可由处理器执行。处理器可经配置以执行通用指令及执行专用算术编码指令。举例来说,专用算术编码指令接受第一区间、第一偏移及第一状态作为输入。基于专用算术编码指令的一或多个输出,处理器可存储第二状态、重新对准第一区间以产生第二区间,及重新对准第一偏移以产生第二偏移。
举例来说,在专用算术编码指令的执行期间,第一区间(例如,9个位)可存储在第一寄存器(例如,32位寄存器)中且第一偏移(例如,10个位)可存储在第二寄存器(例如,32位寄存器)中。第一寄存器可包含前导零、第一区间(例如,9个位)及尾随零。位位置(例如,“bitpos”)可指示第一寄存器中之前导零的数目且可使用计数前导零(CLZ)指令获得。因此,在特定实例中,尾随零的数目为(32-9-bitpos)=(23-bitpos)。一或多个位可从第一寄存器检索且用作索引以在查找表中寻找LPS的区间的值。LPS的区间的值可经左偏移尾随零的数目以将LPS的区间的值与第一寄存器中的第一区间(例如,9个位)对准。在每一编码反复后,第一寄存器中的二进位可经重新归一化(renormalized)以使得下一反复中所使用的第一区间(例如,9个位)的最有效位(MSB)等于1。
在重新归一化期间,可将第二寄存器的特定字节提供(例如,输出)到位流。举例来说,当区间的MSB小于1(对应于偏移的增加)时,可将第二寄存器的第一及第二字节提供到位流,可将第二寄存器的第三字节左偏移到第一字节位置,且可清除第二寄存器的第四字节以重新归一化第二寄存器(例如,偏移)及第一寄存器(例如,区间)。
使用专用算术编码指令(例如,单一指令)编码二进位与使用多个通用指令相比可增加编码速度。举例来说,专用算术编码指令的使用将产生经编码视频流位的时间从多个处理器执行循环(即,大于2个循环)(使用通用指令)减少到2个处理器执行循环。
在特定方面中,设备包含存储器及耦合到所述存储器的处理器。处理器经配置以执行专用算术编码指令。专用算术编码指令接受包含第一区间、第一偏移及第一状态的多个输入且基于所述多个输入产生一或多个输出。基于专用算术编码指令的一或多个输出,处理器经配置以存储第二状态、重新对准第一区间以产生第二区间,及重新对准第一偏移以产生第二偏移。
在另一特定方面中,方法包含在处理器处执行专用算术编码指令。专用算术编码指令接受包含第一区间、第一偏移及第一状态的多个输入且基于所述多个输入产生一或多个输出。方法还包含基于专用算术编码指令的一或多个输出,存储第二状态、重新对准第一区间以产生第二区间及重新对准第一偏移以产生第二偏移。
在另一特定方面中,非暂时性计算机可读媒体包含专用上下文适应性二进制算术(CABAC)编码指令,所述专用CABAC编码指令接受包含第一区间、第一偏移及第一状态的多个输入且基于所述多个输入产生一或多个输出。专用CABAC编码指令由处理器执行。专用CABAC编码指令导致处理器存储第二状态、重新对准第一区间以产生第二区间及重新对准第一偏移以产生第二偏移。
在另一特定方面中,设备包含用于存储通用指令及专用算术编码指令的装置。设备还包含用于执行从用于存储的装置检索的通用指令的装置。设备进一步包含用于执行从用于存储的装置检索的专用算术编码指令的装置。专用算术编码指令接受包含第一区间、第一偏移及第一状态的多个输入。基于所述多个输入,专用算术编码指令经执行以产生一或多个输出。基于一或多个输出,第二状态经存储、第一区间经重新对准以产生第二区间且第一偏移经重新对准以产生第二偏移。
由所公开的方面中的至少一者提供的一个特定优势是在微处理器处编程及执行专用算术编码指令的能力。专用算术编码指令的使用可减少编码经熵编码的视频位流(例如H.264 CABAC视频位流或H.265 CABAC视频位流)的处理器执行循环的数目。本发明的其它方面、优势及特征将在审阅包含以下章节的完整申请案之后变得显而易见:【附图说明】、【具体实施方式】及【权利要求书】。
附图说明
图1为可操作以执行专用算术编码指令的系统的特定说明性方面的图;
图2为使用专用算术编码指令修改CABAC区间及偏移的说明性方面;
图3为将信息存储在经配置以执行专用算术编码指令的处理器的寄存器中的方法的特定说明性方面的图;
图4为执行专用算术编码指令的逻辑的特定说明性方面的架构图;
图5为说明重新归一化区间及偏移的方法的流程图;
图6为执行专用算术编码指令的方法的特定说明性方面的流程图;及
图7为包含具有通用指令及专用算术编码指令的指令集的无线装置的框图。
具体实施方式
参看图1,展示了可操作以执行专用算术编码指令的系统100的特定说明性方面。系统100包含经耦合到存储器120的处理器110。
处理器110包含经配置以执行通用指令的通用指令执行逻辑112。通用指令可包含共同执行的处理器指令,例如LOAD、STORE、JUMP、ADD、INCREMENT等。通用指令执行逻辑112可包含执行通用指令的通用载入-存储逻辑。处理器110还包含经配置以执行专用算术编码指令的专用算术编码指令执行逻辑114。专用算术编码指令可由处理器110执行以基于熵译码方案(例如上下文适应性二进制算术译码(CABAC)方案)编码视频流。在特定方面中,可根据由国际电信联盟颁布的264视听及多媒体系统标准(H.264,名称为“用于通用视听服务的进阶视译码(Advanced video coding for generic audiovisual services)”)将专用算术编码指令用于编码视频流。在另一方面中,可根据由国际电信联盟颁布的265视听及多媒体系统标准(H.265,名称为“H系列:视听及多媒体系统,运动视频的视听服务-译码的基础结构(Series H:Audiovisual and Multimedia Systems,Infrastructure ofaudiovisual services-coding of moving video)”将专用算术编码指令用于编码视频流。
在特定方面中,通用指令及专用算术编码指令由处理器110的共同执行单元执行。举例来说,共同执行单元可包含通用指令执行逻辑112及专用算术编码指令执行逻辑114两者。在说明性方面中,专用算术编码指令为不可部分完成的指令,其可由处理器110执行而不将所述专用算术编码指令分隔成将由通用指令执行逻辑112执行的一或多个通用指令。专用算术编码指令可为处理器110的指令集的单一指令且可在处理器110的较小数目的循环(例如,少于三个执行循环)中执行。在特定方面中,处理器110为管线式多线程超长指令字(VLIW)处理器。
存储器120可包含随机接入存储器(RAM)、只读存储器(ROM)、寄存器存储器,或其任何组合。虽然存储器120在图1中经说明为与处理器110分离,但存储器120实际上可为处理器110的嵌入式存储器(例如,高速缓冲存储器)。
在操作中,处理器110可用于编码视频流。当编码视频流的特定位时,处理器110可从存储器120检索专用算术编码指令且逻辑114可执行所检索指令。
应了解,图1的系统100可使得能够执行专用算术编码指令(例如,当编码视频流时)。与使用多个通用指令执行视频编码演算法的处理器相比,经配置以执行专用算术编码指令的处理器(例如,处理器110)可更快地编码视频流。举例来说,如本文进一步所描述,与通过使用通用指令相比,执行专用算术编码指令的能力可使处理器能够在更少的执行循环中执行复杂及耗时的编码操作。
参看图2,公开使用专用算术编码指令修改CABAC区间及偏移的说明性方面200、220。CABAC为一种二进制算术译码形式。大体来说,二进制算术译码的特征可为两个量:当前间隔“区间”及当前间隔区间中的当前“偏移”。
为编码特定位,基于最小可能符号(LPS)及最大可能符号(MPS),首先将当前区间细分成两个部分。举例来说,LPS可为“0”符号、MPS可为“1”符号且当前区间可为在0与1之间的区间。大体来说,如果R为当前区间的宽度、rLPS为第一部分的宽度、rMPS为第二部分的宽度、pLPS为遇到最小可能符号的机率及pMPS为遇到最大可能符号的机率,那么rLPS=R×pLPS且rMPS=R×pMPS=R-rLPS。因此,在最小可能符号的机率高于最大可能符号的机率时,对应于最小可能符号的部分将具有大于对应于最大可能符号的部分的宽度rMPS的宽度rLPS。也就是说,当pLPS>pMPS时,rLPS>rMPS。类似地,当pMPS>pLPS时,rMPS>rLPS。每一二进位可经编码为MPS或LPS,且可基于经编码的二进位而反复地更新rLPS及rMPS,如下文所解释。
举例来说,如图2的第一方面200中所说明,专用算术编码指令202可经执行以将二进位204编码为MPS(例如,将二进位编码为逻辑“1”)。在特定方面中,专用算术编码指令202可由图1的处理器110的专用算术编码指令执行逻辑114执行。区间206及低区208(例如,偏移)可表征二进位204。如图所示,区间206可等于二进位204的rLPS 210与二进位204的rMPS212的和。执行专用算术编码指令202以将二进位204编码为MPS产生经编码的二进位214。经编码的二进位214的区间216等于二进位204的rMPS 212,且经编码的二进位214的低区218(例如,偏移)等于二进位204的低区208。
作为另一实例,如图2的第二方面220中所说明,专用算术编码指令222可经执行以将二进位204编码为LPS(例如,将二进位编码为逻辑“0”)。在特定方面中,专用算术编码指令222可由图1的处理器110的专用算术编码指令执行逻辑114执行。执行专用算术编码指令222以将二进位204编码为LPS可产生经编码的二进位234。经编码的二进位234的区间236等于二进位204的rLPS 210,且经编码的二进位234的低区(例如,偏移)等于二进位204的低区208与二进位204的rMPS 212的和。在特定方面中,专用算术编码指令202及专用算术编码指令222可为相同指令。
参照图2中所描绘的方面200、220,偏移(例如分别为低区218、低区238)可写入到位流(经编码的二进位)。如图2中所说明,经编码的二进位214的区间216及经编码的二进位234的区间236可小于二进位204的区间206(例如,所述区间可随每一编码步骤而减小)。因此,可在编码每一二进位后或在区间值降到阈值以下时重新归一化区间及低区。举例来说,可在区间的最有效位(MSB)低于1(例如,MSB=0)时重新归一化由一9位二进制数表示的区间。关于图5更详细描述重新归一化。
根据H.264或H.265的CABAC编码为状态相关操作。也就是说,编码视频流可包含保持除区间及偏移之外的信息(例如,状态、位位置及MPS位)。对于H.264或H.265,区间为一9位的数量且偏移为至少9位的数量。rLPS的计算可由存储CABAC常数且经区间及状态编索引的256个字节的64×4查找表来求取近似值。因为查找表中的值为由H.264标准或H.265标准定义的常数,所以查找表可为硬译码的。替代地,查找表可为可编程的(例如,可重写的)。
专用CABAC编码指令(例如,专用算术编码指令202、222)可重新对准区间、重新对准偏移及查找CABAC常数,如本文所描述。专用CABAC编码指令可接受CABAC状态位、CABACMPS位、位位置(bitpos)、九个CABAC区间位、至少九个CABAC偏移位及输入值位(例如,输入值二进位)作为输入。专用CABAC编码指令可产生包含新CABAC状态位、新CABAC MPS位、九个CABAC区间位及至少九个CABAC偏移位的输出。如上文所解释,编码过程可在某些反复后经重新归一化以使得MPS的MSB的值为1。举例来说,专用CABAC编码指令可根据以下伪码操作:
应注意,虽然如本文中所阐述的等式及表达式使用类似于C或C++程序设计语言的语法,但所述表达式是用于说明的目的且实际上可以具有不同语法的其它程序设计语言表示。
以上伪码可经封装到函数ENCBIN()(下文所说明)中且经编码的H.264或H.265视频位可在两个处理器循环中产生。
在特定方面中,专用CABAC编码指令的使用将产生经编码视频流位的时间从多个处理器执行循环(即,大于2个循环)(使用通用指令)减少到2个处理器执行循环。
参看图3,公开将信息存储在经配置以执行专用算术编码指令360的处理器的寄存器中的方法的特定说明性方面。在说明性方面中,专用算术编码指令360为H.264 CABAC编码指令。在另一说明性方面中,专用算术编码指令360为H.265 CABAC编码指令。在特定方面中,专用算术编码指令360可对应于图2的专用算术编码指令202、222中的一者。
在专用算术编码指令360的执行期间,二进位350(例如,专用CABAC编码指令360的输入值位350)可存储在预测寄存器340中。存储在预测寄存器340中的二进位350可在决策或视频编码算法中使用。处理器110可载入及存储用于在两个输入寄存器对310及320中执行专用算术编码指令360的数据。在特定方面中,寄存器对310及320为成对的32位寄存器。
处理器可存储在专用算术编码指令于输出寄存器对330中执行的期间所产生的数据。在特定方面中,输出寄存器对330为一对32位寄存器。
第一输入寄存器对310的第一寄存器Rtt.w0 311可存储输入状态301及输入MPS位302。在特定方面中,Rtt.w0 311的位0至5(表示为Rtt.w0[0:5])存储输入状态301且Rtt.w0[8]存储输入MPS位302。第一输入寄存器对310的第二寄存器Rtt.w1 312可存储输入位位置(bitpos)303。举例来说,Rtt.w1[0:4]可存储输入bitpos 303。
第二输入寄存器对320的第一寄存器Rss.w0 321可存储输入区间304。举例来说,Rss.w0[0:8]可存储输入区间304的9个位。第二输入寄存器对320的第二寄存器Rss.w1 322可存储输入偏移305。在特定方面中,Rss.w1[0:8]存储输入偏移305的9个位。
输出寄存器对330的第一寄存器Rdd.w0 331可存储输出状态308、输出MPS位307及输出区间306。举例来说,Rdd.w0[0:5]可存储6位输出状态308,Rdd.w0[8]可存储输出MPS位307且Rdd.w0[23:31]可存储输出区间306。输出寄存器对331的第二寄存器Rdd.w1 332可以归一化方式存储输出偏移309。
应了解,处理器可将用于专用CABAC编码指令的输出数据“封装”到两个输入寄存器对中。应注意,虽然专用CABAC编码指令360在本文中已参考H.264视频压缩标准及/或H.265视频压缩标准进行解释,但专用CABAC编码指令360可用于编码其它算术译码的位流。举例来说,专用CABAC编码指令360可用于编码根据联合图像专家群3000(JPEG3000)图像压缩标准编码的位流。应注意,虽然图3说明预测寄存器、两个输入寄存器对及一个输出寄存器对,但专用CABAC编码指令360可使用任何数目及组合的输入及输出寄存器来交替地执行。应进一步注意,虽然如本文所描述的专用CABAC编码指令360利用9位区间及9位偏移,但是所述位长度仅用于说明性目的。其它算术编码算法可使用其它长度,且如本文所描述的专用算术编码指令可接受任何位长度的数据作为输入且产生任何位长度的数据作为输出。
参看图4,展示执行专用算术编码指令的逻辑400的特定说明性方面的架构图。在说明性方面中,专用算术编码指令为H.264 CABAC编码指令。在另一说明性方面中,专用算术编码指令为H.265 CABAC编码指令。
可检索6个输入变数且将其提供到逻辑400。举例来说,输入状态301可从第一输入寄存器对310的第一寄存器Rtt.w0 311检索,输入MPS位302可从第一输入寄存器对310的第一寄存器Rtt.w0 311检索,输入bitpos 303可从第一输入寄存器对310的第二寄存器Rtt.w1 312检索,输入区间304可从第二输入寄存器对320的第一寄存器Rss.w0 321检索,输入偏移305(例如,低区)可从第二输入寄存器对320的第二寄存器Rss.w1 322检索,且输入二进位350可从预测寄存器340检索。
输入bitpos 303及输入区间304可经提供到左移位器443。左移位器443可经配置以使输入区间304移位输入bitpos 303。使输入区间304移位输入bitpos 303可产生经移位区间445。输入状态301可用作CABAC H.264/H.265常数查找表422中的索引。4个CABAC常数423由于索引操作而产生且经输入到四合一多路复用器424中,所述多路复用器基于经移位区间445输入所选择的CABAC常数。所选择的CABAC常数可对应于LPS(例如,rLPS 427)的宽度。经移位区间445及rLPS 427可经提供到减法器412。减法器412可从经移位区间445减去rLPS 427(例如,Range-rLPS)以产生MPS的宽度(例如,rMPS 448)。
CABAC H.264/H.265常数查找表422还可产生新LPS状态常数425及新MPS状态常数426。新LPS状态常数425及新MPS状态常数426可经提供到二合一多路复用器474。输入二进位350及输入MPS位302可经提供到比较器414。比较器414可确定输入二进位350及输入MPS位302是否相等。响应于输入二进位350与输入MPS位302相等的确定,比较器414产生逻辑高电压信号(例如,逻辑“1”)。响应于输入二进位350与输入MPS位302不相等的确定,比较器414产生逻辑低电压信号(例如,逻辑“0”)。比较器414的输出经提供到逻辑-与门418、到二合一多路复用器470的控制输入、到二合一多路复用器474的控制输入及到二合一多路复用器476的控制输入。
输入偏移305(“低区”)可经提供到二合一多路复用器470及到加法器449。rMPS448还可经提供到加法器449。加法器449经配置以将rMPS 448与输入偏移305相加,且将结果(例如,和)提供到二合一多路复用器470。基于比较器414的输出,二合一多路复用器470可输出输入偏移305作为输出偏移309或输出输入偏移305与rMPS 448的和作为输出偏移309。举例来说,当输入二进位350经编码为LPS(例如,输入二进位350不等于输入MPS位302)时,比较器414可将逻辑高电压信号提供到二合一多路复用器470的控制输入。响应于接收到逻辑高电压信号,二合一多路复用器470可输出输入偏移305与rMPS 448的和作为输出偏移309。当输入二进位350经编码为MPS(例如,输入二进位350等于输入MPS位302)时,比较器414可将逻辑低电压信号提供到二合一多路复用器470的控制输入。响应于接收到逻辑低电压信号,二合一多路复用器470可输出输入偏移305作为输出偏移309。
输出状态308可与比较器414的输出相关。举例来说,当输入二进位350经编码为LPS(例如,输入二进位350不等于输入MPS位302)时,比较器414可将逻辑高电压信号提供到二合一多路复用器474的控制输入。响应于接收到逻辑高电压信号,二合一多路复用器474可输出新LPS状态常数425作为输出状态308。当输入二进位350经编码为MPS(例如,输入二进位350等于输入MPS位302)时,比较器414可将逻辑低电压信号提供到二合一多路复用器474的控制输入。响应于接收到逻辑低电压信号,二合一多路复用器474可输出新MPS状态常数426作为输出状态308。
输出区间306可与比较器414的输出相关。举例来说,当输入二进位350经编码为LPS(例如,输入二进位350不等于输入MPS位302)时,比较器414可将逻辑高电压信号提供到二合一多路复用器476的控制输入。响应于接收到逻辑高电压信号,二合一多路复用器476可输出rLPS 427作为输出区间306。当输入二进位350经编码为MPS(例如,输入二进位350等于输入MPS位302)时,比较器414可将逻辑低电压信号提供到二合一多路复用器476的控制输入。响应于接收到逻辑低电压信号,二合一多路复用器476可输出rMPS 448作为输出区间306。
输入状态301还可经提供到反向器420。反向器420可经配置以将输入状态301反向且将结果提供到逻辑-门与418。当比较器414的输出及反向器420的输出对应于逻辑高电压信号时(例如,当输入二进位350等于输入MPS位302且输入状态301为逻辑“0”时),逻辑-与门418可将逻辑高电压信号提供到二合一多路复用器472的控制输入。图4中所说明的输入状态301为逻辑“0”(例如,“==0”)。然而,输入状态301还可为逻辑“1”(例如,“==1”)。如果输入二进位350不等于输入MPS位及/或如果输入状态301为逻辑“1”,那么逻辑-与门418可将逻辑低电压信号提供到二合一多路复用器472的控制输入。
输入MPS位302可经提供到二合一多路复用器472。输入MPS位302也可由反向器416反向。反向器的输出(例如,经反向的输入MPS位)可经提供到二合一多路复用器472。输出MPS位307可取决于逻辑-与门418的输出。举例来说,当逻辑-与门418将逻辑高电压信号提供到二合一多路复用器472的控制输入时(例如,当输入二进位350等于输入MPS位302且输入状态301为逻辑“0”时),二合一多路复用器472输出经反向的输入MPS位作为输出MPS位302。否则,二合一多路复用器472输出输入MPS位302作为输出MPS位307。
应了解,因为许多处理器包含移位器,所以图4的逻辑400可通过存储常数查找表422且添加几个电路元件(例如比较器、加法器、反向器及多路复用器)而实施于所述处理器中。因此,处理器可经配置以通过在不要求对处理器进行大量变更的情况下实施图4的逻辑400来执行专用算术编码指令。
参看图5,流程图500说明重新归一化区间及偏移的方法。偏移可对应于输出寄存器对331的第二寄存器Rdd.w1 332中的位。举例来说,第二寄存器Rdd.w1 332可将8个位(例如,第一字节low.ub[0])存储在第一部分ub[0]中、将第二字节low.ub[1]存储在第二部分ub[1]中、将第三字节low.ub[2]存储在第三部分ub[2]中且将第四字节low.ub[3]存储在第四部分ub[3]中。存储在第二寄存器Rdd.w1 332中的字节可对应于输出偏移309。
如关于图2所解释,当区间的值降到阈值以下时,区间及偏移可经重新归一化。举例来说,由一9位二进制数表示的区间可在区间的最有效位(MSB)为0(例如,区间小于二进制“100000000”)时经重新归一化。参看图5,在502处,处理器(例如,图1的处理器110)可确定输出区间306是否小于十六进制值0x100(例如,小于256)。在504处,如果输出区间306不小于十六进制值0x100,那么输出偏移309及输出区间309不需要重新归一化且所述程序结束。
在506处,如果输出区间306小于十六进制值0x100,那么处理器可确定存储在第三寄存器Rdd.w1 332的第二部分ub[1]中的第二字节low.ub[1]是否等于十六进制值0xFF(例如,255)。举例来说,处理器可确定第二字节low.ub[1]的每一位是否为逻辑“1”位。响应于第二字节low.ub[1]等于十六进制值0xFF的确定,在508处,经缓冲字节(例如,待写入到输出位流的字节)的数目可增加。在510处处理器可接着将第一字节low.ub[0]移位到第二部分ub[1]中、将十六进制值0x00载入到第一部分ub[0]中且将输出区间306向左移位8个位。在504处,方法可结束。
响应在506处第二字节low.ub[1]不等于十六进制值0xFF的确定,在512处,处理器可确定经缓冲字节的数目是否大于0。响应于经缓冲字节的数目大于0的确定,在518处,处理器可将第四字节low.ub[3]输入到位流。举例来说,处理器可将第四字节low.ub[3]作为经编码位流发射到解码器。在520处,处理器可确定经缓冲字节的数目是否大于1。响应经缓冲字节的数目大于1的确定,在522处,处理器可将第三字节low.ub[2]输入到位流,且在524处,可减少经缓冲字节的数目。当经缓冲字节的数目大于1时,在520到524处的操作可继续。响应于在520处的经缓冲字节的数目不大于1的确定,在516处,处理器可将第二字节low.ub[1]移位到第四部分ub[3]中且将十六进制值0xFF移位到第三部分ub[2]中。随后,在510处,处理器可将第一字节low.ub[0]移位到第二部分ub[1]中、将十六进制值0x00载入到第一部分ub[0]中且将输出区间306向左移位8个位。在此之后,在504处,方法可结束。
响应于在512处的经缓冲字节的数目不大于0的确定,在514处,处理器可将经缓冲字节的数目设定为1。接下来,在516处,处理器可将第二字节low.ub[1]移位到第四部分ub[3]中且将十六进制值0xFF移位到第三部分ub[2]中。随后,在510处,处理器可将第一字节low.ub[0]移位到第二部分ub[1]中、将十六进制值0x00载入到第一部分ub[0]中且将输出区间306向左移位8个位(例如,一个字节)。在504处,方法可结束。
图5的流程图500可避免检查输出偏移309的载体位的需要及导出逻辑“0”或逻辑“1”是否应写入到位流的需要。举例来说,如果存在当在专用算术编码指令360的执行期间更新输出偏移309时产生的载体,那么所述载体可经由第三字节low.ub[2]自动传播到第四字节low.ub[3](例如,最有效字节)。流程图500还可通过选择性地将多个字节输入(例如,写入)到基于大量经缓冲字节的位流来减小重新归一化的重复率。
参看图6,展示了执行专用算术编码指令的方法600的特定说明性方面。在说明性方面中,方法600可由图1的处理器110或图4的逻辑400执行。
方法600包含:在602处,在处理器处执行专用上下文适应性二进制算术(CABAC)编码指令。举例来说,处理器110可执行一或多个专用算术编码指令,例如专用算术编码指令202、222或专用算术编码指令360。专用算术编码指令202、222、360可接受输入状态301(例如,第一状态)、输入MPS位302、输入位位置(bitpos)303、输入区间304(例如,第一区间)、输入偏移305(例如,第一偏移)及输入二进位350作为输入。
方法600还可包含在604处,基于专用CABAC编码指令的一或多个输出,存储第二状态、重新对准第一区间以产生第二区间,及重新对准第一偏移以产生第二偏移。举例来说,执行专用算术编码指令可产生输出偏移309(例如,第二偏移)、输出MPS位307、输出状态308(例如,第二状态)及输出区间306(例如,第二区间)。参看图3,输出MPS位307可经存储在输出寄存器对330的第一寄存器Rdd.w0 331中,第二输入寄存器对320的第一寄存器Rss.w0321中的输入区间304可在输出寄存器对330的第一寄存器Rdd.w0 331中经重新对准,且第二输出寄存器对320的第二寄存器Rss.w1 322中的输入偏移305输入偏移可在输出寄存器对330的第二寄存器Rdd.w1 332中经重新对准。
图6的方法600可使得能够执行专用算术编码指令(例如,当编码视频流时)。与使用多个通用指令执行视频编码算法(例如,CABAC)的处理器相比,经配置以执行专用算术编码指令的处理器(例如,处理器110)可更快地编码视频流。举例来说,与通过使用通用指令相比,执行专用算术编码指令的能力可使处理器能够在更少的执行循环中执行复杂及耗时的编码操作。
图7为无线装置700的框图。无线装置700内的存储器732包含通用指令752及专用算术编码指令754。无线装置700包含经耦合到存储器732的处理器710,例如数字信号处理器。在说明性方面中,处理器710可包含图1的处理器110,且存储器732可包含图1的存储器120。存储器732可为计算机可读存储媒体。
在特定方面中,在编码应用程序中或存储在存储器732处的一些其它编码软件中使用通用指令752及专用算术编码指令754。举例来说,可在用于编码视频的CABAC编码应用程序中使用通用指令752及专用算术编码指令754。无线装置700还包含执行专用算术编码指令754的逻辑712。在说明性方面中,逻辑712包含图4的逻辑400。在特定方面中,逻辑712为经配置以执行通用指令752及专用算术编码指令754的处理器710的执行单元。
在特定方面中,专用算术编码指令754为单一指令。在特定方面中,通用指令752及专用算术编码指令754使无线装置700能够编码符合H.264的经CABAC编码的视频流或符合H.265的经CABAC编码的视频流。逻辑712由处理器710使用以执行专用算术编码指令754。在特定方面中,执行专用算术编码指令754包含检索、处理及存储数据,如本文中关于图4所描述。
图7还展示耦合到处理器710及显示器728的可选显示控制器726。编码器/解码器(编解码器)734也可经耦合到数字信号处理器710。扬声器736及麦克风738可耦合到编解码器734。图7还指示无线控制器740可经耦合到处理器710及天线742。在特定方面中,处理器710、显示控制器726、存储器732、编解码器734及无线控制器740包含于系统级封装或系统单芯片装置722中。在特定方面中,输入装置730及电源744经耦合到系统单芯片装置722。此外,在特定方面中,如图7所说明,显示器728、输入装置730、扬声器736、麦克风738、天线742及电源744位于系统单芯片装置722的外部。然而,每一者可(例如)经由接口或控制器耦合到系统单芯片装置722的组件。在说明性方面中,无线装置700为蜂窝式电话、智能电话或个人数字助理(PDA)。因此,无线装置700可编码视频流且经由天线742发射经编码的视频流。可使用通用指令752及由处理器710的逻辑712执行的一或多个专用算术编码指令754来编码视频流。
应注意,虽然图7描绘了无线装置700,但是逻辑712、通用指令752及专用算术编码指令754可替代地包含于其它装置中,例如机顶盒、音乐播放机、视频播放机、娱乐单元、导航装置、通信装置、固定位置数据单元或计算机。
结合所描述的方面,公开一种包含用于存储通用指令及专用算术编码指令的装置的设备。举例来说,用于存储的装置可包含用以存储通用指令及专用算术编码指令的图1的存储器120、图7的存储器732、一或多个其它装置、电路或模块,或其任何组合。
设备还可包含可用于执行通用指令及专用算术编码指令的装置。举例来说,用于执行的装置可包含图1的处理器110、图1的通用指令执行逻辑112、图1的专用算术编码指令执行逻辑114、图3的预测寄存器340、图3的第一输入寄存器对310、图3的输入寄存器对320、图3的输出寄存器对330、图4的逻辑400、图7的处理器710、图7的执行专用算术编码指令754的逻辑712,用以执行通用指令及专用算术编码指令的一或多个其它装置、电路或模块,或其任何组合。
本领域技术人员将进一步了解,可将结合本文中所公开的方面所描述的各种说明性逻辑区块、配置、模块、电路及算法步骤实施为电子硬件、由处理器执行的计算机软件,或两者的组合。上文已大体上在功能性方面描述各种说明性组件、区块、配置、模块、电路及步骤。此功能性是实施为硬件还是处理器可执行指令取决于特定应用及强加于整个系统上的设计约束。对于每一特定应用来说,本领域技术人员可以变化的方式实施所描述的功能性,但不应将所述实施决策解释为导致脱离本发明的范围。
结合本文中所公开的方面所描述的方法或算法的步骤可直接体现于硬件、由处理器执行的软件模块或所述两者的组合中。软件模块可驻存于随机接入存储器(RAM)、闪速存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦程序只读存储器(EPROM)、电可擦出可编程只读存储器(EEPROM)、寄存器、硬盘、可移动磁盘、只读光盘(CD-ROM),或此项技术中已知的任何其它形式的非暂时性存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息及将信息写入到所述存储媒体。在替代例中,存储媒体可集成到处理器。处理器及存储媒体可驻存于特定用途集成电路(ASIC)中。ASIC可驻存于计算装置或用户终端机中。在替代例中,处理器及存储媒体可作为离散组件驻存于计算装置或用户终端机中。
提供所公开方面的先前描述以使得本领域技术人员能够制作或使用所公开的方面。对于本领域技术人员来说,对这些方面的各种修改将易于显而易见,且可在不背离本发明的范围的情况下将本文中所定义的原理应用于其它方面。因此,本发明并不旨在限于本文中所展示的方面,而应符合可能与如以下权利要求书所定义的原理及新颖特征相一致的最广泛范围。

Claims (23)

1.一种设备,其包括:
存储器;
预测寄存器,其经配置以存储预测位值;及
处理器,其耦合到所述存储器,所述处理器经配置以:
执行专用算术编码指令,其中所述专用算术编码指令经配置以接受第一区间的位长度、第一偏移的位长度及第一状态位作为多个输入且基于所述多个输入产生一或多个输出,且其中所述一或多个输出中的至少一个输出的值可基于所述预测位值计算;及
基于所述专用算术编码指令的所述一或多个输出:
存储第二状态;
重新对准所述第一区间以产生第二区间;及
重新对准所述第一偏移以产生第二偏移;及
比较器,其经配置以基于比较器第一输入值与比较器第二输入值之间的比较确定第一比较器输出值,其中所述比较器第一输入值是基于存储在第一输入寄存器对处的上下文适应性二进制算术译码CABAC最大可能符号MPS位,且其中所述比较器第二输入值是基于所述预测位值。
2.根据权利要求1所述的设备,其中所述专用算术编码指令可由所述处理器执行以使用熵译码方案编码视频流,且其中所述熵译码方案为CABAC。
3.根据权利要求2所述的设备,其中所述第一状态包含CABAC状态位,其中所述第一区间包含CABAC区间位,其中所述第一偏移包含CABAC偏移位,其中所述多个输入进一步包含CABAC MPS位、CABAC位位置bitpos位,及预测输入值位,且进一步包括第一输入寄存器对及第二输入寄存器对,其中所述处理器经进一步配置以:
从所述第一输入寄存器对中的第一寄存器检索CABAC状态位及CABAC MPS位;
从所述第一输入寄存器对中的第二寄存器检索所述CABAC bitpos位;
从所述第二输入寄存器对中的第三寄存器检索所述CABAC区间位;
从所述第二输入寄存器对中的第四寄存器检索所述CABAC偏移位;及
从所述预测寄存器检索所述预测位值。
4.根据权利要求2所述的设备,其中所述第二状态包含CABAC状态位,其中所述第二区间包含CABAC区间位,其中所述第二偏移包含CABAC偏移位,其中所述专用算术编码指令产生CABAC MPS位,且进一步包括输出寄存器对,其中所述处理器经进一步配置以:
将所述CABAC状态位、所述CABAC MPS位及所述CABAC区间位存储在所述输出寄存器对中的第一寄存器中;及
以归一化方式将所述CABAC偏移位存储在所述输出寄存器对中的第二寄存器中。
5.根据权利要求1所述的设备,其中所述专用算术编码指令符合H.264视频压缩标准或H.265视频压缩标准。
6.根据权利要求1所述的设备,其中所述专用算术编码指令可由所述处理器执行而不将所述专用算术编码指令分隔成一或多个通用指令,且其中经配置以执行所述一或多个通用指令的逻辑及经配置以执行所述专用算术编码指令的逻辑对应于所述处理器的同一个执行单元。
7.根据权利要求1所述的设备,其中所述专用算术编码指令包括所述处理器的指令集中的单一指令,且其中所述处理器包括管线式多线程超长指令字VLIW处理器。
8.根据权利要求1所述的设备,其进一步包括:
第一输入寄存器对,其经配置以存储所述第一状态、CABAC MPS位、CABAC位位置bitpos位中的任一个或其组合;及
第二输入寄存器对,其经配置以存储所述第一区间、所述第一偏移中的任一个或其组合,其中所述第一状态包含CABAC状态位,所述第一区间包含CABAC区间位,且所述第一偏移包含CABAC偏移位。
9.根据权利要求1所述的设备,其中所述比较器经进一步配置以:
接收所述比较器第一输入值,所述比较器第一输入值基于存储在所述第一输入寄存器对处的所述CABAC MPS位;及
接收所述比较器第二输入值。
10.根据权利要求1所述的设备,其中所述第一比较器输出值在所述预测位值等于所述比较器第一输入值时包括第一逻辑值或在所述比较器第二输入值与所述比较器第一输入值不同时包括第二逻辑值。
11.根据权利要求8所述的设备,其进一步包括反相器,其经配置以:
接收反相器输入值,所述反相器输入值基于所述第一输入寄存器对的CABAC状态位;及
基于所述反相器输入值产生第一反相器输出值。
12.根据权利要求8所述的设备,其进一步包括:
逻辑门,其经配置以:
从比较器接收第一比较器输出值,所述第一比较器输出值基于所述预测位值;
从反相器接收第一反相器输出值,所述第一反相器输出值基于所述第一状态;
基于所述第一比较器输出值及所述第一反相器输出值确定逻辑门输出值;及多路复用器,其耦合到所述逻辑门,所述多路复用器经配置以接收所述逻辑门输出值。
13.根据权利要求8所述的设备,其进一步包括多路复用器,所述多路复用器经配置以:
接收第一输入值、第二输入值及选择信号值,所述选择信号值基于所述预测位值;
基于所述选择信号值输出多路复用器输出,其中所述多路复用器输出包括所述第一输入值、所述第二输入值、或所述第一输入值及所述第二输入值的和。
14.根据权利要求1所述的设备,其进一步包括逻辑门,所述逻辑门经配置以:
从比较器接收所述第一比较器输出值;
从反相器接收第一反相器输出值,所述第一反相器输出值基于所述第一状态;及基于所述第一比较器输出值及所述第一反相器输出值确定逻辑门输出值。
15.根据权利要求1所述的设备,其中所述存储器、所述处理器及所述比较器集成于移动通信装置中。
16.根据权利要求1所述的设备,其进一步包括逻辑门,所述逻辑门经配置以基于所述第一比较器输出值及第一反相器输出值确定逻辑门输出值,其中所述第一比较器输出值是基于所述比较器第一输入值与所述比较器第二输入值之间的所述比较,且其中所述第一反相器输出值是基于所述第一状态。
17.一种方法,其包括:
将预测位值存储在预测寄存器处;
在处理器处执行专用算术编码指令,其中所述专用算术编码指令接受第一区间的位长度、第一偏移的位长度及第一状态位作为多个输入且基于所述多个输入产生一或多个输出,且其中所述一或多个输出中的至少一个输出的值可基于所述预测位值计算;
对所述第一区间及所述第一偏移执行重新归一化以产生所述第一区间的大于或等于阈值的一或多个值;及
基于所述专用算术编码指令的所述一或多个输出,存储第二状态,重新对准所述重新归一化的第一区间以产生第二区间,且重新对准所述重新归一化的第一偏移以产生第二偏移。
18.根据权利要求17所述的方法,其中执行所述专用算术编码指令包括:
将所述第一区间提供到移位器;及
针对上下文适应性二进制算术CABAC查找表将所述第一状态用作索引查找值,其中所述CABAC查找表为硬译码或可重写的。
19.根据权利要求17所述的方法,其进一步包括:
独立于所述第二偏移的载体位对所述第二偏移执行重新归一化;
将所述第二偏移的多个字节输入到位流中;及
将所述位流发射到解码器。
20.根据权利要求17所述的方法,其中所述第一偏移对应于输出寄存器对中的第一寄存器中的位集合,其中执行重新归一化包括确定所述第一区间是小于还是等于第一值,且其中执行重新归一化进一步包括响应于确定所述第一区间是小于还是等于所述第一值,确定存储在所述第一寄存器的一部分中的字节是大于还是等于第二值。
21.一种非暂时性计算机可读介质,其包括专用上下文适应性二进制算术CABAC编码指令,所述编码指令接受第一区间的位长度、第一偏移的位长度、第一状态位及存储于预测寄存器处的预测位值作为多个输入且基于所述多个输入产生一或多个输出,其中所述一或多个输出中的至少一个输出的值可基于所述预测位值计算,且其中当所述专用上下文适应性二进制算术CABAC编码指令由处理器执行时,所述专用上下文适应性二进制算术CABAC编码指令使得所述处理器进行以下操作:
对所述第一区间及所述第一偏移执行重新归一化以产生所述第一区间的大于或等于阈值的一或多个值;
存储第二状态;
重新对准所述重新归一化的第一区间以产生第二区间;及
重新对准所述重新归一化的第一偏移以产生第二偏移。
22.根据权利要求21所述的非暂时性计算机可读介质,其中所述专用CABAC编码指令可由所述处理器执行以进行以下操作:
编码视频流;及
独立于所述第二偏移的载体位对所述第二偏移执行重新归一化。
23.一种设备,其包括:
用于存储通用指令及专用算术编码指令的装置;
用于将预测位值存储在预测寄存器处的装置;
用于执行从所述用于存储通用指令及专用算术编码指令的装置检索的所述通用指令的装置;
用于执行从所述用于存储通用指令及专用算术编码指令的装置检索的所述专用算术编码指令的装置;及
用于基于用于比较比较器第一输入值与比较器第二输入值的装置确定第一比较器输出值的装置,其中所述比较器第一输入值是基于存储在第一输入寄存器对处的上下文适应性二进制算术译码CABAC最大可能符号MPS位,且其中所述比较器第二输入值是基于所述预测位值,
其中所述专用算术编码指令接受第一区间的位长度、第一偏移的位长度及第一状态位作为多个输入,且其中所述专用算术编码指令可执行以基于所述多个输入产生一或多个输出,其中所述一或多个输出中的至少一个输出的值基于所述预测位值由所述用于执行所述专用算术编码指令的装置确定,且
其中第二状态基于所述一或多个输出经存储,其中所述第一区间经重新对准以基于所述一或多个输出产生第二区间,且其中所述第一偏移经重新对准以基于所述一或多个输出产生第二偏移。
CN201580026297.1A 2014-05-27 2015-04-30 用于执行专用算术编码指令的设备、方法和计算机可读介质 Active CN106415484B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/288,018 US9455743B2 (en) 2014-05-27 2014-05-27 Dedicated arithmetic encoding instruction
US14/288,018 2014-05-27
PCT/US2015/028443 WO2015183462A1 (en) 2014-05-27 2015-04-30 Dedicated arithmetic encoding instruction

Publications (2)

Publication Number Publication Date
CN106415484A CN106415484A (zh) 2017-02-15
CN106415484B true CN106415484B (zh) 2019-02-01

Family

ID=53267582

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580026297.1A Active CN106415484B (zh) 2014-05-27 2015-04-30 用于执行专用算术编码指令的设备、方法和计算机可读介质

Country Status (10)

Country Link
US (1) US9455743B2 (zh)
EP (1) EP3149947B1 (zh)
JP (1) JP6695813B2 (zh)
KR (1) KR102296153B1 (zh)
CN (1) CN106415484B (zh)
BR (1) BR112016027558B1 (zh)
CA (1) CA2947856A1 (zh)
ES (1) ES2826425T3 (zh)
TW (1) TWI669945B (zh)
WO (1) WO2015183462A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107743239B (zh) * 2014-09-23 2020-06-16 清华大学 一种视频数据编码、解码的方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7061410B1 (en) * 2005-07-18 2006-06-13 Lsi Logic Corporation Method and/or apparatus for transcoding between H.264 CABAC and CAVLC entropy coding modes
CN1949873A (zh) * 2005-10-12 2007-04-18 华为技术有限公司 Cabac解码系统及方法
CN101072349A (zh) * 2006-06-08 2007-11-14 威盛电子股份有限公司 内容适应性可变长度编码的解码系统与方法
CN101076114A (zh) * 2007-06-15 2007-11-21 上海富瀚微电子有限公司 一种上下文自适应二进制算术编码器及其方法
CN101790889A (zh) * 2007-08-31 2010-07-28 高通股份有限公司 用于基于上下文的自适应二进制算术译码位流的多级解码的架构
CN101809871A (zh) * 2007-09-27 2010-08-18 高通股份有限公司 经优化的cabac解码器
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0586057B1 (en) * 1992-08-31 2000-03-01 Sun Microsystems, Inc. Rapid instruction (pre)fetching and dispatching using prior (pre)fetch predictive annotations
US7769088B2 (en) * 2003-05-28 2010-08-03 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US7656326B2 (en) 2006-06-08 2010-02-02 Via Technologies, Inc. Decoding of context adaptive binary arithmetic codes in computational core of programmable graphics processing unit
US8749409B2 (en) 2006-08-25 2014-06-10 Sony Computer Entertainment Inc. Entropy decoding methods and apparatus using most probable and least probable signal cases
US7561082B2 (en) 2006-12-29 2009-07-14 Intel Corporation High performance renormalization for binary arithmetic video coding
US7777654B2 (en) * 2007-10-16 2010-08-17 Industrial Technology Research Institute System and method for context-based adaptive binary arithematic encoding and decoding
US7982641B1 (en) 2008-11-06 2011-07-19 Marvell International Ltd. Context-based adaptive binary arithmetic coding engine
US8638850B2 (en) * 2009-05-06 2014-01-28 Advanced Micro Devices, Inc. Execution units for context adaptive binary arithmetic coding (CABAC)
US20110125987A1 (en) * 2009-11-20 2011-05-26 Qualcomm Incorporated Dedicated Arithmetic Decoding Instruction
US8913662B2 (en) * 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
JP6130839B2 (ja) 2011-10-06 2017-05-17 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン エントロピー符号化
US10289412B2 (en) * 2012-02-09 2019-05-14 Qualcomm Incorporated Floating point constant generation instruction

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7061410B1 (en) * 2005-07-18 2006-06-13 Lsi Logic Corporation Method and/or apparatus for transcoding between H.264 CABAC and CAVLC entropy coding modes
CN1949873A (zh) * 2005-10-12 2007-04-18 华为技术有限公司 Cabac解码系统及方法
CN101072349A (zh) * 2006-06-08 2007-11-14 威盛电子股份有限公司 内容适应性可变长度编码的解码系统与方法
CN101076114A (zh) * 2007-06-15 2007-11-21 上海富瀚微电子有限公司 一种上下文自适应二进制算术编码器及其方法
CN101790889A (zh) * 2007-08-31 2010-07-28 高通股份有限公司 用于基于上下文的自适应二进制算术译码位流的多级解码的架构
CN101809871A (zh) * 2007-09-27 2010-08-18 高通股份有限公司 经优化的cabac解码器
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression

Also Published As

Publication number Publication date
TW201607294A (zh) 2016-02-16
KR20170013222A (ko) 2017-02-06
JP6695813B2 (ja) 2020-05-20
US9455743B2 (en) 2016-09-27
EP3149947A1 (en) 2017-04-05
US20150349796A1 (en) 2015-12-03
JP2017525005A (ja) 2017-08-31
ES2826425T3 (es) 2021-05-18
KR102296153B1 (ko) 2021-08-30
EP3149947B1 (en) 2020-07-22
WO2015183462A1 (en) 2015-12-03
CN106415484A (zh) 2017-02-15
CA2947856A1 (en) 2015-12-03
BR112016027558A2 (zh) 2017-08-15
TWI669945B (zh) 2019-08-21
BR112016027558B1 (pt) 2023-03-14

Similar Documents

Publication Publication Date Title
JP6598947B2 (ja) オーディオ/ビデオサンプルベクトルのピラミッドベクトル量子化インデクシング及びデインデクシングの方法及び装置
US7079057B2 (en) Context-based adaptive binary arithmetic coding method and apparatus
US20110181448A1 (en) Lossless compression
US8059016B2 (en) Data compression apparatus and method
US20210050027A1 (en) Coding and decoding of spectral peak positions
US20110310966A1 (en) Syntax element decoding
US20220237454A1 (en) Linear neural reconstruction for deep neural network compression
US7319417B2 (en) Compression using multiple Markov chain modeling
US20100017196A1 (en) Method, system, and apparatus for compression or decompression of digital signals
US20090146853A1 (en) Scalable context adaptive binary arithmetic coding
CN106415484B (zh) 用于执行专用算术编码指令的设备、方法和计算机可读介质
US20160092492A1 (en) Sharing initial dictionaries and huffman trees between multiple compressed blocks in lz-based compression algorithms
Yazdanpanah et al. A new compression ratio prediction algorithm for hardware implementations of LZW data compression
JP2016052046A (ja) 圧縮装置、伸長装置およびストレージ装置
US7719448B2 (en) Mechanism for coding a non-increasing sequence of values
EP2267700A1 (en) Apparatus and method for selecting quantisation bands in audio encoders
KR20080045842A (ko) 이미지 압축 및 복원을 위한 장치 및 방법
Liu et al. A leading sign grouping with direct table lookup approach for AAC Huffman decoding
TW201711475A (zh) 哥倫布-萊斯編碼電路與解碼電路
KR20020020886A (ko) 산술적으로 인코딩된 정보신호의 산술 디코딩

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