CN101562455B - 内容可适性二元算数编码的译码装置及其译码方法 - Google Patents
内容可适性二元算数编码的译码装置及其译码方法 Download PDFInfo
- Publication number
- CN101562455B CN101562455B CN2009100067034A CN200910006703A CN101562455B CN 101562455 B CN101562455 B CN 101562455B CN 2009100067034 A CN2009100067034 A CN 2009100067034A CN 200910006703 A CN200910006703 A CN 200910006703A CN 101562455 B CN101562455 B CN 101562455B
- Authority
- CN
- China
- Prior art keywords
- content
- decoding
- module
- slice
- variables
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4006—Conversion to or from arithmetic code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种译码方法,应用于一CABAC的译码装置中,该译码方法包含下列步骤:初始化多个内容变量;储存内容变量;根据内容变量,以对一语法元素进行算数译码,并输出一译码后的语法元素与一更新信号;以及根据该更新信号更新内容变量中至少一个。其中,初始化步骤在宏区块层级的位字符串就绪之前,预先地初始化内容变量中至少一个。
Description
技术领域
本发明有关于一种译码装置,特别是指一种内容可适性二元算数编码(Context-based Adaptive Binary Arithmetic Coding,以下简称CABAC)的译码装置及其译码方法。
背景技术
H.264/AVC是近年来所发展的一种视频压缩标准,其使用了一些进阶的编码技术,以提供比现有的视频压缩标准(例如,MPEG-1、MPEG-2、H.263等)更优异的压缩效能。
在H.264/AVC中,采用内容可适性可变长度编码(Context-based AdaptiveVariable Length Coding,以下简称CAVLC)技术或CABAC技术来进行熵(Entropy)编码,以提升其编码效率。其中,CABAC技术比CAVLC技术高出约10%的编码效率,但其编码/译码的计算复杂度也相对较高。在CABAC的译码过程中,输入的位字符串至少须需要经过初始化步骤与算数译码步骤,以完成译码的程序;而初始化步骤与算数解码步骤所需的总体时间实际上相当的长,对于译码系统的效能上来说,仍有不少的影响。故,有必要寻求一解决之道,来降低CABAC解码处理中的延迟(Latency),以提高译码系统的整体效能。
发明内容
因此,本发明的目的之一,在于提供一种CABAC译码装置与其译码方法,以增加译码系统整体的效能。
本发明的CABAC译码装置包含一初始化模块、一储存模块、一算数译码模块,及一更新模块。初始化模块用于初始化多个内容变量(contextvariable),且在宏区块层级(Macroblock level)的位字符串就绪(bit stream ready)之前,预先地初始化这些内容变量中至少一个。储存模块用于储存这些内容变量。算数译码模块用于根据这些内容变量,以对一语法元素进行算数译码,并输出一译码后的语法元素与一更新信号。更新模块用于根据该更新信号更新该储存模块内的这些内容变量中至少一个
由于,初始化模块预先地将这些内容变量计算出来并储存至该储存模块中;因此,当位字符串就绪且欲进行算数译码时,算数译码模块可直接地自储存模块中取出对应的内容变量,不需再等待所需内容变量的初始化,如此一来,可降低CABAC解码处理中的延迟,并增加译码系统整体的效能。
附图说明
图1为本发明的CABAC译码装置之一较佳实施例;
图2为本发明的CABAC译码方法之一流程图;及
图3a和3b为本发明的CABAC译码装置,其信号时序图。
图中标号说明如下:
100 CABAC译码装置
41 初始化模块
42 储存模块
43 算数译码模块
44 更新模块
具体实施方式
有关本发明之前述及其它技术内容、特点与功效,在以下配合参考附图的一个较佳实施例的详细说明中,将可清楚的呈现。
首先,请参阅图1,图1为本发明的CABAC译码装置100的较佳实施例,CABAC译码装置100包含一初始化模块41、一储存模块42、一算数译码模块43及一更新模块44,其耦接关系如图1所示。初始化模块41用于初始化多个内容变量。储存模块42用于储存这些内容变量。算数译码模块43用于根据储存模块42中的内容变量,以对一语法元素进行算数译码(在本较佳实施例中,进行二元算数译码),并输出一译码后的语法元素;例如,当CABAC译码装置100需要译码第一语法元素时,算数译码模块43则至储存模块42读取译码第一语法元素所需的内容变量,以对第一语法元素进行译码,并输出一更新信号至更新模块44。然后,更新模块44则依据更新信号动态地更新储存模块42中的内容变量。另外,算数译码模块43可在宏区块层级(Macroblock level)的位字符串就绪(bit stream ready)之前,预先地初始化内容变量,如此一来,当位字符串就绪且欲进行算数译码时,算数译码模块43可直接地自储存模块42中取出对应的内容变量,以减少CABAC译码处理中的延迟。
初始化模块41依据本发明的一实施例,包含一查询单元45与一运算单元46,其中,查询单元45可依据一索引值(cabac_init_idc)查询一预定的查询表以得出一初始参数组(m,n);接着,运算单元46则对一片量化参数(SliceQuantization Parameter,SliceQPY),及初始参数组(m,n)进行运算,以输出内容变量;依据本发明的一实施例,内容变量包括一机率状态索引(Probability State Index,pstateIdx),及一最高机率符号值(Value of the MostProbable Symbol,valMPS)。再者,初始化模块41可依照一预定顺序初始化这些内容变量,例如,根据片类型(Slice Type,即,I-片、P-片,及B-片)的顺序而初始化这些内容变量,但请注意,本发明并不依此顺序为限。上述的索引值(cabac_init_idc)、初始参数组(m,n)、片量化参数(SliceQPY)、机率状态索引(pstateIdx)、最高机率符号值(valMPS)与片类型(Slice Type)...等参数,可参考ISO/IEC 14496-10的内容所述,故在此不另赘述。
请再参考图1与图2,图2为本发明CABAC译码方法的一流程图,其包含下列步骤:
步骤51:预先地初始化内容变量;
步骤52:储存内容变量;
步骤53:根据内容变量对语法元素进行算数译码;
步骤54:输出译码后的语法元素;
步骤55:更新内容变量;
在上述解码方法中,首先通过初始化模块41在输入的位字符串就绪(bitstream ready)之前,预先地依特定顺序初始化内容变量(步骤51),并透过储存模块42储存内容变量(步骤52);接着,当位字符串就绪且欲进行算数译码时,算数译码模块43可直接地自储存模块42中取出欲译码的语法元素所需的内容变量,以进行算数译码(步骤53),并输出译码后的语法元素(步骤54)与更新信号。最后,更新模块44则依据更新信号更新内容变量(步骤55)。
接着,请参阅图1与图3,图3绘示CABAC译码装置100的信号时序图,假设CABAC译码装置100分别有第一、第二与第三语法元素需进行算数译码,当位字符串就绪之前,初始化模块41则预先地进行初始化等动作,如图3a中初始化第一、第二与第三内容变量所示;接着,当位字符串就绪后,算数译码模块43则可直接地进行算数译码等动作,如图3a中对第一、第二与第三语法元素进行算数译码所示。如此一来,原本CABAC解码过程所需花费的总时间为(T1+T2),透过本发明的机制,使得在H.264/AVC系统整体的译码过程中,只要先经过初使化步骤后,译码每一语法元素实质上只占用了T2的时间,可大幅的提升效能。另外,请注意,初始化模块41并不限定于在位字符串就绪之前,将所有的内容变量都初始化完成;亦可在位字符串就绪之后,将未初始化的部分再进行初始化的动作,如图3b所示。由于本发明的CABAC译码装置100设置了储存模块42在初始化模块41与算数译码模块43之间,CABAC译码装置100类似于一管线化(Pipeline)的架构,因此,只要初始化模块41是依特定顺序进行内容变量的初始化,当初始化模块41仍在进行初始化时,算数译码模块43所需的内容变量早已储存在储存模块42中,故可同步地进行算数译码,以更进一步地降低初使化步骤所需时间(T3,且T3<T1)并增加效能。
此外,虽然在本较佳实施例中,CABAC译码装置及方法应用于H.264/AVC译码器中。但其观念亦可广泛用于其它利用CABAC技术的装置或其它的译码器中,并不限于本较佳实施例所揭露。
惟以上所述者,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即只要依本发明权利要求及发明说明内容所作的简单的等效变化与修饰,都仍属本发明专利涵盖的范围内。
Claims (14)
1.一种内容可适性二元算数编码的译码装置包含:
一初始化模块,用以初始化多个内容变量;
一储存模块,耦接至该初始化模块,用以储存这些内容变量;
一算数译码模块,耦接至该储存模块,用以根据这些内容变量,以对一语法元素进行算数译码,并输出一译码后的语法元素与一更新信号;以及
一更新模块,耦接于该算数译码模块,用以根据该更新信号更新该储存模块内的这些内容变量中至少一个;
其中,该初始化模块在一位字符串就绪之前,预先地初始化这些内容变量中至少一个。
2.如权利要求1所述的译码装置,其中该初始化模块,包含:
一查询单元,用以依据一索引值查询一预定的查询表,以输出一初始参数组;以及
一运算单元,耦接至该查询单元,用以对该初始参数组与一片量化参数进行运算,以输出该内容变量。
3.如权利要求1所述的译码装置,其中每一内容变量包含一机率状态索引,及一最高机率符号值。
4.如权利要求1所述的译码装置,其中该初始化模块依一预定顺序,以初始化每一内容变量。
5.如权利要求4所述的译码装置,其中该预定顺序根据一片类型而决定。
6.如权利要求5所述的译码装置,其中该片类型分为:一I-片、一P-片,及一B-片。
7.如权利要求1所述的译码装置,用于一H.264/AVC系统中。
8.一种译码方法,应用于一内容可适性二元算数编码的译码装置中,该译码方法包含下列步骤:
初始化多个内容变量;
储存这些内容变量;
根据这些内容变量,以对一语法元素进行算数译码,并输出一译码后的语法元素与一更新信号;以及
根据该更新信号更新这些内容变量中至少一个;
其中,初始化步骤在一位字符串就绪之前,预先地初始化这些内容变量中至少一个。
9.如权利要求8所述的译码方法,其中初始化步骤,更包含:
依据一索引值查询一预定的查询表,以输出一初始参数组;以及
对该初始参数组与一片量化参数进行运算,以输出该内容变量。
10.如权利要求8所述的译码方法,其中每一内容变量包含一机率状态索引,及一最高机率符号值。
11.如权利要求8所述的译码方法,其中该初始化步骤依一预定顺序,以初始化每一内容变量。
12.如权利要求11所述的译码方法,其中该预定顺序根据一片类型而决定。
13.如权利要求12所述的译码方法,其中该片类型分为:一I-片、一P-片,及一B-片。
14.如权利要求13所述的译码方法,用于H.264/AVC系统中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/106,075 US7557740B1 (en) | 2008-04-18 | 2008-04-18 | Context-based adaptive binary arithmetic coding (CABAC) decoding apparatus and decoding method thereof |
US12/106,075 | 2008-04-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101562455A CN101562455A (zh) | 2009-10-21 |
CN101562455B true CN101562455B (zh) | 2013-08-14 |
Family
ID=40811030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100067034A Active CN101562455B (zh) | 2008-04-18 | 2009-02-13 | 内容可适性二元算数编码的译码装置及其译码方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7557740B1 (zh) |
CN (1) | CN101562455B (zh) |
TW (1) | TWI360956B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100040136A1 (en) * | 2008-08-13 | 2010-02-18 | Horizon Semiconductors Ltd. | Method for performing binarization using a lookup table |
TWI396450B (zh) * | 2010-03-11 | 2013-05-11 | Himax Media Solutions Inc | 高運算頻率的二進制運算解碼裝置 |
US9313514B2 (en) * | 2010-10-01 | 2016-04-12 | Sharp Kabushiki Kaisha | Methods and systems for entropy coder initialization |
TWI487295B (zh) * | 2011-05-17 | 2015-06-01 | Univ Nat Cheng Kung | 高產出平行化avc/h.264前後文適應性二位元算數解碼器之方法 |
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 |
US20130003829A1 (en) * | 2011-07-01 | 2013-01-03 | Kiran Misra | System for initializing an arithmetic coder |
US20130003823A1 (en) * | 2011-07-01 | 2013-01-03 | Kiran Misra | System for initializing an arithmetic coder |
US9484952B2 (en) | 2011-11-03 | 2016-11-01 | Qualcomm Incorporated | Context state and probability initialization for context adaptive entropy coding |
GB2496193A (en) * | 2011-11-07 | 2013-05-08 | Sony Corp | Context adaptive data encoding and decoding |
US9288508B2 (en) * | 2011-11-08 | 2016-03-15 | Qualcomm Incorporated | Context reduction for context adaptive binary arithmetic coding |
WO2013106987A1 (en) * | 2012-01-16 | 2013-07-25 | Mediatek Singapore Pte. Ltd. | Methods and apparatuses of bypass coding and reducing contexts for some syntax elements |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1097088A (zh) * | 1993-01-13 | 1995-01-04 | 汤姆森消费电子有限公司 | 一种自适应可变长度编码器/解码器 |
CN1515078A (zh) * | 2002-03-27 | 2004-07-21 | 松下电器产业株式会社 | 可变长度编码方法,可变长度译码方法,存储介质,可变长度编码设备,可变长度译码设备,和位流 |
CN1605209A (zh) * | 2001-08-15 | 2005-04-06 | 通用仪表公司 | 视频编码方法 |
CN1735209A (zh) * | 2004-08-02 | 2006-02-15 | 三星电子株式会社 | 使用流水线结构的二进制算术解码装置和方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100466739C (zh) * | 2005-10-12 | 2009-03-04 | 华为技术有限公司 | Cabac解码系统及方法 |
KR100717052B1 (ko) * | 2005-11-08 | 2007-05-10 | 삼성전자주식회사 | Cabac 복호기에서 이진 산술 복호화와 이진 매칭을병렬 처리하는 원소 구문의 복호화 방법 및 이를 위한복호화 장치 |
US7245242B2 (en) * | 2005-11-28 | 2007-07-17 | Conexant Systems, Inc. | Decoding systems and methods |
US7262722B1 (en) * | 2006-06-26 | 2007-08-28 | Intel Corporation | Hardware-based CABAC decoder with parallel binary arithmetic decoding |
-
2008
- 2008-04-18 US US12/106,075 patent/US7557740B1/en active Active
- 2008-07-03 TW TW097125035A patent/TWI360956B/zh active
-
2009
- 2009-02-13 CN CN2009100067034A patent/CN101562455B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1097088A (zh) * | 1993-01-13 | 1995-01-04 | 汤姆森消费电子有限公司 | 一种自适应可变长度编码器/解码器 |
CN1605209A (zh) * | 2001-08-15 | 2005-04-06 | 通用仪表公司 | 视频编码方法 |
CN1515078A (zh) * | 2002-03-27 | 2004-07-21 | 松下电器产业株式会社 | 可变长度编码方法,可变长度译码方法,存储介质,可变长度编码设备,可变长度译码设备,和位流 |
CN1735209A (zh) * | 2004-08-02 | 2006-02-15 | 三星电子株式会社 | 使用流水线结构的二进制算术解码装置和方法 |
Non-Patent Citations (1)
Title |
---|
黄中华.《H_264_AVC标准中CABAC实时解码电路的架构设计与实现》.《中国优秀硕士论文电子期刊》.2006, * |
Also Published As
Publication number | Publication date |
---|---|
US7557740B1 (en) | 2009-07-07 |
TW200945798A (en) | 2009-11-01 |
TWI360956B (en) | 2012-03-21 |
CN101562455A (zh) | 2009-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101562455B (zh) | 内容可适性二元算数编码的译码装置及其译码方法 | |
JP5313362B2 (ja) | 可変長固定長コードの高速パーシング | |
US6842124B2 (en) | Variable length decoder | |
US9001882B2 (en) | System for entropy decoding of H.264 video for real time HDTV applications | |
US7365660B2 (en) | Method and device for decoding syntax element in CABAC decoder | |
US20030085822A1 (en) | High performance memory efficient variable-length coding decoder | |
US20070097850A1 (en) | Method of decoding syntax element in context-based adaptive binary arithmetic coding decoder and decoding device therefor | |
CN103262534A (zh) | 改进熵编码和解码的方法及装置 | |
CN103227924B (zh) | 一种算术编码器及编码方法 | |
KR20110046566A (ko) | 디코딩 시스템 및 방법 | |
US20110310966A1 (en) | Syntax element decoding | |
US7286066B1 (en) | Acceleration of bitstream decoding | |
CN100440979C (zh) | 基于上下文的自适应二维变长解码方法和装置 | |
US7928868B1 (en) | Entropy decoding device | |
CN102740066B (zh) | Cavlc解码方法和系统 | |
US11431978B2 (en) | Video decoding method and video decoding device for improving decoding efficiency | |
KR102296153B1 (ko) | 전용 산술 인코딩 명령 | |
CN101267559A (zh) | 视频解码器的通用熵解码方法及装置 | |
JP2007295157A (ja) | データ符号化装置、データ符号化方法、データ符号化プログラム及びデータ符号化プログラムを記録した情報記録媒体 | |
CN101483778B (zh) | 用以译码数据位流的译码方法与装置 | |
US9973209B2 (en) | Processor and data processing method thereof | |
Han et al. | Area efficient and high throughput CAVLC encoder for 1920× 1080@ 30p H. 264/AVC | |
Ahangar et al. | Real time low complexity VLSI decoder for prefix coded images | |
CN102572437B (zh) | 一种快速解码CAVLC run_before码字的硬件实现方法 | |
CN102263960B (zh) | 一种快速解码cavlc非零系数幅值的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |