JP4271134B2 - 可変長符号化デコーダおよびデコード方法 - Google Patents

可変長符号化デコーダおよびデコード方法 Download PDF

Info

Publication number
JP4271134B2
JP4271134B2 JP2004358398A JP2004358398A JP4271134B2 JP 4271134 B2 JP4271134 B2 JP 4271134B2 JP 2004358398 A JP2004358398 A JP 2004358398A JP 2004358398 A JP2004358398 A JP 2004358398A JP 4271134 B2 JP4271134 B2 JP 4271134B2
Authority
JP
Japan
Prior art keywords
coefficient
data
flag
final
flags
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.)
Expired - Fee Related
Application number
JP2004358398A
Other languages
English (en)
Other versions
JP2006166344A (ja
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004358398A priority Critical patent/JP4271134B2/ja
Priority to US11/127,225 priority patent/US20060126743A1/en
Publication of JP2006166344A publication Critical patent/JP2006166344A/ja
Application granted granted Critical
Publication of JP4271134B2 publication Critical patent/JP4271134B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • H03M7/425Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory for the decoding process only
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、動画フォーマットH.264上での画素データ係数列(bin string)の可変長符号化(VLC:Variable Length Code)デコーダおよびデコード方法に関する。
オーディオ・ビジュアル(AV)・マルチメディア・システムの分野において、高度動画像圧縮符号化標準(AVC:Advanced Video Coding)は、H.264/AVCと呼ばれている(非特許文献1参照)。
H.264/AVCでは、離散コサイン変換(DCT:Discrete Cosine Transform)係数や動きベクトルなど、シンタックスで伝送することが規定されている情報である,シンタックス要素のエントリピー符号化(可変長符号化)方式として、単純な表による変換の他に高効率な符号化方式が用意されており、高い符号化効率が必要とされるDCT係数の符号化時などに適用される。
規格では、指数ゴロム(Exponential Golomb)符号と呼ばれる基本的な符号の他に、コンテキスト適応型可変長符号化方式(CAVLC:Context−Adaptive Variable Length Coding)と呼ばれる可変長符号化方式、コンテキスト適応型2値算術符号化方式(CABAC:Context−Adaptive Binary Arithmetic Coding)と呼ばれる算術符号化方式の2種類の高能率符号化方式が用意されている。ここで、コンテキスト適応型とは、周囲の状況に応じて効率の良い符号化方式を適応的に選択する方式をいう。CABACはH.264/AVCのメイン・プロファイルにおいてのみ使用可能で、その場合、ピクチャ・パラメータ・セット中のフラグの値によって、CAVLCかCABACの内の一方が選択され、高能率エントロピー符号化方式として適用される。
CAVLCは、DCT係数値の符号化にのみ用いられる。CAVLCでは、DCT係数をジグザグ・スキャン(ジグザグ走査)によって一次元のベクトルとした後、係数値や連続する‘0’の長さ(ラン)など、復号に必要な情報を符号化している。H.264/AVCでは、MPEG(Moving Picture Experts Group)−2などのようにランとレベルを組み合わせたものに対する符号化を行うのではなく、ランとレベルそれぞれのVLC(可変長符号化)テーブルを用いてスキャンの逆順方向から別々に符号化し、復号側ではそれらを組み合わせることで係数値の復号を行う。ランとレベルの復号に用いるVLCテーブルと復号の概要は非特許許文献1に開示されている通りである。ランとレベル以外の情報である、非ゼロ係数の個数(TotalCoeff)と最後に連続する絶対値1の係数の個数(TrailingOnes)の符号化の際には、周囲のマクロブロック(MB)の状態に応じて、複数のVLCテーブルの内の1つを適応的に選択して符号化を行う。これが、CAVLCの符号化効率が高い理由の1つである。
CABACは、通常の2値算術符号化器に加えて、多値信号(例えば、−3或いは+6などの信号)を2値信号(0と1の信号)に変換するための2値化部と、符号化すべき2値信号の発生確率を周囲の状況に応じて計算・更新するコンテキスト計算部を備えている(非特許文献1参照)。
大久保 栄、角野 眞也、菊池 義浩、鈴木 輝彦他、「インプレス標準教科書シリーズ H.264/AVC教科書」株式会社インプレスネットビジネスカンパニー発行、2004年8月11日、p.3−4,144−157,272−279
本発明は、動画フォーマットH.264上での画素データ係数列から非ゼロ係数の有無、および最終非ゼロ係数のフラグ(flag)をデコードずる際に適用されるVLCデコーダのVLCデコード部分の処理において、一定のパラメータを持つ参照テーブル(表)を用いることで処理を高速化させるVLCデコーダおよびデコード方法を提供する。
本発明の実施の形態の第1の特徴は、(イ)動画フォーマット上での画素データ係数列を格納する入力データ用メモリと、(ロ)テーブル参照データを記憶し、入力データ用メモリからメモリデータを受信するテーブル参照装置と、(ハ)パラメータデータを記憶し、テーブル参照装置からテーブル参照データを受信し,テーブル参照装置にパラメータデータを送信する参照テーブルを備えたテーブル格納メモリと、(ニ)テーブル参照装置から出力される係数フラグ,出力される係数フラグと対応した最終係数フラグからなる参照テーブルデータを受信する出力データ用メモリとを備え、前記参照テーブルは、複数ビットの画素データ係数列をインデックスとして、前記画素データ係数列の先頭から取得できる係数フラグの数,前記画素データ係数列の先頭から取得できる係数フラグと対応した最終係数フラグの数の和,および前記最終係数フラグが“1”であるかを表すフラグを備える可変長符号化デコーダであることを要旨とする。
本発明の実施の形態の第2の特徴は、(イ)動画フォーマット上での画素データ係数列を格納する入力データ用メモリと、(ロ)テーブル参照データを記憶し、入力データ用メモリからメモリデータを受信するテーブル参照装置と、(ハ)パラメータデータを記憶し、テーブル参照装置からテーブル参照データを受信し,テーブル参照装置にパラメータデータを送信する参照テーブルを備えたテーブル格納メモリと、(ニ)テーブル参照装置から出力される係数フラグ,出力される係数フラグと対応した最終係数フラグからなる参照テーブルデータを受信する出力データ用メモリとを備え、前記参照テーブルは、複数ビットの画素データ係数列をインデックスとして、出力される係数フラグの数,前記出力される係数フラグの値自身,前記出力される係数フラグと対応した最終係数フラグの数の和,および前記最終係数フラグが“1”であるかを表すフラグを備える可変長符号化デコーダであることを要旨とする。
本発明の実施の形態の第3の特徴は、(イ)内部で使用する変数,データおよび、係数フラグ、最終係数フラグを各々“0”で初期化し、画素データ係数列の先頭から判定に用いるビット数mを、“n”で初期化するステップと、(ロ)画素データ係数列からデータをmビット取得し、一時変数データへ格納するステップと、(ハ)データをインデックスとして、参照テーブルから各変数として、画素データ係数列の先頭から取得できる係数フラグの数、画素データ係数列の先頭から取得できる係数フラグと対応した最終係数フラグの数の和、最終係数フラグが“1”であるかを表すフラグを得るステップと、(ニ)参照テーブルから得られた変数から係数フラグ、ループの次の処理に必要な変数データ、ビット数mを求めるステップと、(ホ)出力できる係数フラグの個数の係数フラグをデータの上位ビットから切り出し格納し、出力できる係数フラグと対応した最終係数フラグの数の和であるシフト分データは処理されたことから、データをシフトビット分、左にシフトし、下位nビットを保持するステップと、(へ)最終係数フラグが“1”であるか否かを判断するステップと、(ト)最終係数フラグが“0”の場合には、ループを介して、画素データ係数列からデータをmビット取得し、一時変数データへ格納するステップに戻るステップと、(チ)最終係数フラグが“1”の場合には、ループ内で得られた係数フラグが最後の非ゼロ係数であるので、前記最終係数フラグを“1”とするステップとを備える可変長符号化デコード方法であることを要旨とする。
本発明の実施の形態の第4の特徴は、(イ)内部で使用する変数,データおよび、係数フラグ、最終係数フラグを各々“0”で初期化をし、画素データ係数列の先頭から判定に用いるビット数mを“n”で初期化するステップと、(ロ)画素データ係数列からデータをmビット取得し、一時変数データへ格納するステップと、(ハ)データをインデックスとして、参照テーブルから出力できる係数フラグの数、出力できる係数フラグと対応した最終係数フラグの数の和、最終係数フラグが“1”であるかを表すフラグ、出力できる係数フラグの値を得るステップと、(ニ)参照テーブルから得られた変数から係数フラグ、ループの次の処理に必要な変数データ、ビット数mを求めるステップと、(ホ)出力できる係数フラグの個数の係数フラグへ対応する値を格納し、出力できる係数フラグの数と対応した最終係数フラグの数の和であるシフト分データは処理されたことから、データをシフトビット分、左にシフトし、下位nビットを保持するステップと、(へ)最終係数フラグが“1”であるか否かを判断するステップと、(ト)最終係数フラグが“0”場合には、ループを介して、画素データ係数列からデータをmビット取得し、一時変数データへ格納するステップへ戻るステップと、(チ)最終係数フラグが“1”の場合には、ループ内で得られた係数フラグが最後の非ゼロ係数であるので、最終係数フラグを“1”とし、処理を終了するステップとを備える可変長符号化デコード方法であることを要旨とする。
本発明のVLCデコーダおよびデコード方法によれば、動画フォーマットH.264上での画素データ係数列から非ゼロ係数の有無、および最終非ゼロ係数のフラグをデコードずる際に適用されるVLCデコーダのデコード部分の処理において、一定のパラメータを持つ参照テーブルを用いることで処理を高速化させることができる。
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は模式的なものであり、各ブロックの平面寸法、各参照テーブルのサイズ、画素データ係数列の長さ等は現実のものとは異なることに留意すべきである。又、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることはもちろんである。
また、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、各ブロックの構成部品の配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
H.264動画フォーマットの画素データ係数列から非ゼロ係数の有無、および最終非ゼロ係数のフラグをデコードずる際に適用されるVLCデコーダのデコード部分の処理において、1ビット毎に判定を行った場合と比較して、高速に動作させることができるVLCデコーダおよびデコード方法を提供することができる。一度に複数ビット(Nビット)の画素データ係数列を判定する場合、処理速度は最大でN倍となる。
H.264動画フォーマットの画素データ係数列から非ゼロ係数の有無、および最終非ゼロ係数のフラグをデコードずる際に適用されるVLCデコーダのデコード部分の処理において、更に、特定の画素データ係数列のパターンで、より高速化されるVLCデコーダおよびデコード方法を提供することができる。例えば、一度に4ビットの画素データ係数列を判定させる場合、判定対象の画素データ係数列が2進数で“1010”であれば、次処理に読み込まれる画素データ係数列のビット数が、2ビットの場合に比較し4ビットとなり、一度の判定において多くの画素データ係数列を処理することができる。
以下の説明において、「significant_coeff_flag」は、適宜「係数フラグ」、「last_significant_coeff_flag」は、「最終係数フラグ」と呼称する。
本発明の実施の形態に係るVLCデコーダおよびデコード方法は、CABACデコード後のデータから、パラメータとして、係数フラグ、および最終係数フラグをVLCデコードする際に適用されるものである。
[第1の実施の形態]
(VLCデコード方法)
本発明の第1の実施の形態に係るVLCデコード方法は、図1に示すように、CABACデコード後の画素データ係数列が非ゼロ係数であるかを示すパラメータデータ(係数フラグA)と、最終非ゼロ係数であるかを示すパラメータデータ(最終係数フラグB)を、可変長符号化デコード(VLCデコード)する際に参照テーブル15を用いて高速化処理する方法に特徴を有する。
図1(a)は、係数列パラメータABCDの定義を表しており、Aは非ゼロ係数であれば“1”と表示される値であることを意味する。Bは最後の非ゼロ係数であれば“1”と表示される値であることを意味する。Cは係数の絶対値マイナス1の値が表示されることを意味する。Dは係数の符号として“0”でプラスを表示し、“1”でマイナスを表示することを意味する。図1(b)は、VLCデコード方法におけるデコード処理の流れを模式的に説明する図であり、図1(c)は、画素データ係数列を模式的に示している。
図1(b)に示すように、ビットストリーム(H.264データ列)格納部10に格納されたH.264データ列は、CABACデコーダ12においてCABACデコードされ,その結果、画素データ係数列が画素データ係数列格納部14に格納される。
ビットストリーム格納部10に格納されたH.264データ列中からH.264の係数データを取り出し、画素データへと復号する際、ビットストリーム(H.264データ列)はCABACデコーダ12においてCABACデコード(復号)され、一旦、図1(c)に示すような画素データ係数列となり、画素データ係数列格納部14に蓄積される。画素データ係数列格納部14に接続された参照テーブル15を介して、CABACデコード後の画素データ係数列が非ゼロ係数であるかを示すパラメータデータ(係数フラグA)と、最終非ゼロ係数であるかを示すパラメータデータ(最終係数フラグB)を作成する。
図1(c)に示すCABACデコード後の画素データ係数列の中から、AB列18の内容のデータ部分が参照テーブル15の経路を介して発生される。画素データをデコードするには、図1(b)に示すように、別に生成されたCD列16と、参照テーブル15の経路を介して発生されたAB列18との合成によって、係数列20を作成し、結果として係数列マトリックス22を得る。尚、VLCデコーダについては、後述する本発明の第4乃至第6の実施の形態に係るVLCデコーダの説明において、図6乃至図9を用いて、詳述する。
(画素データ係数列のデコード方法)
次に、一般的に考えられる画素データ係数列のVLCデコードを行う際に用いられるVLCデコード方法を図2に表すフローチャートを用いて説明する。
(a)ステップS1で処理を開始する。
(b)ステップS2でまず、内部状態の初期化を行う。即ち、significant_coeff_flag[0・・・15]=0,last_significant_coeff_flag[0・・・15]=0,n=0と設定する。
(c)ステップS3で、画素データ係数列から1ビットのデータを読み込む。
(d)次に、ステップS4において、読み込んだ1ビットのデータが“1”か否かを判断する。
(e)読み込んだ1ビットのデータが“0”の場合、ステップS6で、significant_coeff_flag[n]=0となる。
(f)次に、ステップS10において、nをインクリメントし、処理をステップS3へ戻す。この場合、last_significant_coeff_flag[n]=0である。
(g)一方、ステップS4でデータが“1”の場合は、ステップS5において、significant_coeff_flag[n]=1となり、最終係数フラグの判定へと移行する。
(h)次に、ステップS7において、更に画素データ係数列から1ビットのデータを取得する。
(i)次に、ステップS8において、画素データ係数列から取得した1ビットのデータが“1”か否かを判断する。
(j)次に、ステップS8において、データが“1”の場合は、ステップS9において、last_significant_coeff_flag[n]=1となる。
(k)ステップS11において、処理を終了する。
(l)ステップS8において、データが“0”の場合は、ステップS10において、nを
インクリメントし、処理をステップS3へ戻す。
このように、一般的に考えられる画素データ係数列のVLCデコードを行う際に用いられるVLCデコード方法を用いた場合、画素データ係数列内の係数フラグ、最終係数フラグを構成するビットの分だけ処理ステップが必要である。
本発明の第1の実施の形態に係るVLCデコーダおよびデコード方法は、H.264動画フォーマットにおけるCABACデコーダ12においてデコードされた後のデータから、パラメータsignificant_coeff_flag[],last_significant_coeff_flag[]をVLCデコード(可変長符号デコード)する際に適用される。以下、具体的にVLCデコード方法を説明する。
(3ビットの画素データ係数列を判定するVLCデコード方法)
本発明の第1の実施の形態に係るVLCデコード方法を説明する。参照テーブルを用いて一度に3ビットの画素データ係数列を判定するVLCデコード方法は、図3(a)に示すフローチャートおよび図3(b)に示す参照テーブルIを用いる。
一度に3ビットの画素データ係数列を判定する,画素データ係数列のVLCデコード方法おいて、複数(N)ビットの画素データ係数列をインデックスとして、画素データ係数列の先頭から取得できる係数フラグの数,画素データ係数列の先頭から取得できる係数フラグと対応した最終係数フラグの数の和,および最終係数フラグが”1”であるかを表すフラグとを引くことのできる参照テーブルIを用いた場合を説明する。
図3(a)は、入力として画素データ係数列が用いられ、これより画素データが非ゼロ係数か否かを示すフラグを格納する配列significant_coeff_flag[16]、最終非ゼロ係数かどうかを表すフラグを格納する配列last_significant_coeff_flag[16]を求めるフローチャートである。データの判定は3ビット単位で行い、必要な参照テーブルとして図3(b)に示すような参照テーブルIを用意する。
(a)ステップS20で処理を開始する。
(b)ステップS21において、内部で使用する変数n,dataおよび、結果が格納されるsignificant_coeff_flag[]、last_significant_coeff_flag[]を各々“0”で初期化をする。mは画素データ係数列の先頭から判定に用いるビット数を表しており、ここでは、“3”で初期化する。
(c)次に、ステップS22において、画素データ係数列からデータをmビット取得し、一時変数dataへORで格納する。
(d)次に、ステップS23において、dataをインデックスとして、参照テーブルIから各変数として、outnum(画素データ係数列の先頭から取得できる係数フラグの数)、shift(画素データ係数列の先頭から取得できる係数フラグと対応した最終係数フラグの数の和)、end(最終係数フラグが“1”であるかを表すフラグ)を得る。
(e)次に、ステップS24において、参照テーブルIから得られた変数からsignificant_coeff_flag[]、ループLの次の処理に必要な変数data、mを求める。
outnumは画素データ係数列の先頭から取得できる係数フラグの数を表しており、図3(b)では、dataの上位からoutnumビットが相当している。よって、ステップS24内のfor(i=0・・・)文でoutnum個の係数フラグをdataの上位ビットから切り出し格納する。画素データ係数列の先頭から取得できる係数フラグと対応した最終係数フラグの数の和であるshift分、dataは処理されたことから、dataをshiftビット分、左にシフトし、下位3ビットを保持しておく。mは次ループLで読み込まれるべき画素データ係数列のビット数を表している。
(f)次に、ステップS25において、最終係数フラグendが“1”であるか否かを判断する。
(g)次に、ステップS25において、最終係数フラグend=0の場合には、ループLを介して、ステップS22に戻る。
(h)次に、ステップS25において、最終係数フラグend=1の場合には、ステップS26に移行する。
(i)次に、ステップS26において、ループL内で得られた係数フラグが最後の非ゼロ係数であるので、last_significant_coeff_flag[n−1]を“1”とする。
(j)次に、ステップS27において、処理を終了する。
本発明の第1の実施の形態に係るVLCデコード方法によれば、参照テーブルIを用いることにより、最大3ビットの画素データ係数列を1回の判定で、VLCデコードすることができる。
[第2の実施の形態]
(4ビットの画素データ係数列を判定するVLCデコード方法)
本発明の第2の実施の形態に係るVLCデコード方法を説明する。参照テーブルを用いて一度に4ビットの画素データ係数列を判定するVLCデコード方法は、図4(a)に示す擬似コード例および図4(b)に示す参照テーブルIを用いる。
一度に4ビットの画素データ係数列を判定する,画素データ係数列のVLCデコードおいて、複数(N)ビットの画素データ係数列をインデックスとして、画素データ係数列の先頭から取得できる係数列フラグの数,画素データ係数列の先頭から取得できる係数列フラグと対応した最終係数列フラグの数の和,および最終係数列フラグが“1”であるかを表すフラグとを引くことのできる参照テーブルIを用いた場合を説明する。参照テーブルIにおいて、*は“0又は1”を意味する。
(a)まず、擬似コードAにおいて、使用する変数を初期化する。出力はsignificalt_coeff_flag[0…15]、last_significalt_coeff_flag[0…15]であり、significalt_coeff_flag[0…15]へはデコード後の画素データが非ゼロであるか否か(非ゼロの場合は“1”、それ以外は“0”)、last_significant_coeff_flag[0…15]へは、最終非ゼロ係数の場合“1”が入り、それ以外は“0”となる。
(b)次に、擬似コードBにおいて、エンドフラグendfが“0”である間、ループLでVLCデコードを行う。get_bit(m)でmビット分のデータを入力からロードし、変数dataとORを取り、参照テーブルIのインデックスとする。
(c)次に、擬似コードCにおいて、get_bit(m)関数は、入力ビットストリームである画素データ係数列の先頭からmビットを取り出してくる関数である。
(d)次に、擬似コードDにおいて、dataをインデックスとして、参照テーブルIを引き、outnum、shift,endの各パラメータを得る。
outnumは画素データ係数列の先頭から出力できる係数列フラグの数を表しており、図4(b)では、dataの上位からoutnumビットの値が対応している。
(e)次に、擬似コードEにおいて、for(i=0・・・)文でoutnum個の係数列フラグをdataから切り出し格納する。処理に使用されず、次の処理に残しておくdataのサイズは、図4(b)において、shiftで表されている。shiftは、画素データ係数列の先頭から出力できる係数列フラグの数と対応する最終係数列フラグの数に対応する。
(f)次に、擬似コードFにおいて、dataをshiftビット分、左にシフトし、下位4ビットを保持しておく。mは次ループLで読み込まれるべき画素データ係数列のビット数を表している。
(g)次に、擬似コードGおよびHにおいて、参照テーブルIから引いたendが“1”の場合、最後に得た係数列フラグが最終非ゼロ係数となるので、significant_coeff_flag[n−1]を“1”とする。この結果、ループLを抜け、処理を終了する。
本発明の第2の実施の形態に係るVLCデコード方法によれば、参照テーブルIを用いることにより、最大4ビットの画素データ係数列を1回の判定で、VLCデコードすることができる。
[第3の実施の形態]
(4ビットの画素データ係数列を判定するVLCデコード方法)
本発明の第3の実施の形態に係るVLCデコード方法として、参照テーブルを用いて一度に4ビットの画素データ係数列を判定する別のVLCデコード方法は、図5(a)に示すフローチャートおよび図5(b)に示す参照テーブルIを用いる。
一度に4ビットの画素データ係数列を判定する画素データ係数列のVLCデコードおいて、複数(N)ビットの画素データ係数列をインデックスとして、出力される係数フラグの数,出力される係数フラグの値自身,および出力される係数フラグと対応した最終係数フラグの数の和,最終係数フラグが“1”であるかを表すフラグとを引くことのできる参照テーブルIを用いた場合を図5に示す。図5(a)はフローチャート例を示し、図5(b)は参照テーブルIを示す。参照テーブルIにおいて、*は“0又は1”を意味する。
図5(a)および(b)は、入力として画素データ係数列が用いられ、これより画素データが非ゼロ係数か否かを示すフラグを格納する配列significant_coeff_flag[16]、最終非ゼロ係数かどうかを表すフラグを格納する配列last_significant_coeff_flag[16]を求めるものである。データの判定は4ビット単位で行い、必要参照テーブルとして参照テーブルIを用意する。
(a)ステップS30で処理を開始する。
(b)ステップS31において、内部で使用する変数n,データ(data)および、結果が格納されるsignificant_coeff_flag[0・・・15]、last_significant_coeff_flag[0・・・15]を各々“0”で初期化をする。mは画素データ係数列の先頭から判定に用いるビット数を表しており、本実施の形態の場合“4”で初期化する。
(c)次に、ステップS32において、画素データ係数列からデータをmビット取得し、一時変数dataへORで格納する。
(d)次に、ステップS33において、dataをインデックスとして、図5(b)に示す参照テーブルIから各変数outnum(出力できる係数フラグの数)、shift(出力できる係数フラグと対応した最終係数フラグの数の和)、end(最終係数フラグが“1”であるかを表すフラグ)、outpattern(出力できる係数フラグの値)を得る。
(e)次に、ステップS34において、参照テーブルIから得られた変数からsignificant_coeff_flag[]、ループLの次の処理に必要な変数data、mを求める。outnum、outpatternはそれぞれ出力できる係数フラグの数、値を表しており、ステップS34内のfor(i=0・・・)文でoutnum個の係数フラグへ対応する値を格納する。出力できる係数フラグの数と対応した最終係数フラグの数の和であるshift分dataは処理されたことから、dataをshiftビット分、左にシフトし、下位3ビットを保持しておく。mは次ループLで読み込まれるべき画素データ係数列のビット数を表している。
(f)次に、ステップS35において、最終係数フラグendが“1”であるか否かを判断する。
(f)次に、ステップS35において、最終係数フラグend=0の場合には、ループLを介して、ステップS32に戻る。
(g)次に、ステップS35において、最終係数フラグend=1の場合には、ステップS36に移行する。
(h)次に、ステップS36において、ループL内で得られた係数フラグが最後の非ゼロ係数であるので、last_significant_coeff_flag[n−1]を“1”とする。
(i)次に、ステップS37において、処理を終了する。
本発明の第3の実施の形態に係るVLCデコード方法によれば、参照テーブルを用いることにより、最大4ビットの画素データ係数列を1回の判定で、VLCデコードすることができる。
[第4の実施の形態]
(VLCデコーダ)
動画フォーマットH.264上での画素データ係数列におけるVLCデコードの方法を適用するVLCデコーダの模式的な全体ブロック構成は、図6に示すように、入力データ用メモリ40と、入力データ用メモリ40に接続され,入力データ用メモリ40からメモリデータIMDを受信するテーブル参照装置42と、テーブル参照装置42に接続され,テーブル参照装置42から引数ARGを受信し,テーブル参照装置42に対してパラメータデータPDを送信するテーブル格納メモリ46と、テーブル参照装置42に接続され,参照テーブルデータRTDを受信する出力データ用メモリ44とを備える。
動画フォーマットH.264上での画素データ係数列におけるVLCデコードの方法を適用するVLCデコーダの詳細な全体ブロック構成は、図7に示すように、入力データ用メモリ40と、入力データ用メモリ40に接続され,入力データ用メモリ40からメモリデータ信号IMDを受信する入力データ結合装置41と、入力データ結合装置41に接続され,入力データ結合装置41から参照データRDを受信するテーブル参照装置42と、テーブル参照装置42に接続され,テーブル参照装置42からテーブル参照データTRDを受信し,テーブル参照装置42に対してパラメータデータPDを送信するテーブル格納メモリ46と、テーブル参照装置42に接続され,テーブル参照装置42から参照テーブルデータRTDを表すsignificant_coeff_flag[]とlast_significant_coeff_flag[]を受信する出力データ用メモリ44と、テーブル参照装置42に接続され,テーブル参照装置42から参照データSRDを受信する第1のシフト回路48とを備える。入力データ結合装置41は、第1のシフト回路48から受信するシフトデータSDと、入力データ用メモリ40から受信するメモリデータ信号IMDとを結合する機能を有する。図7において、テーブル参照装置42からテーブル格納メモリ46に転送されるテーブル参照データTRDは、図6の引数ARGに相当する。実際に設計するときは、テーブル参照データTRD自身を引数ARGとして参照テーブルIを参照する方法を採用することもある。
本発明の第4の実施の形態に係るVLCデコーダによれば、上述した第1乃至第3の実施の形態に係るVLCデコード方法を適用することによって、参照テーブルを用いることにより、複数ビットの画素データ係数列を1回の判定で、VLCデコードすることができる。
[第5の実施の形態]
(VLCデコーダ)
本発明の第5の実施の形態に係るVLCデコーダは、図8に示すように、画素データ係数列(binstring)を格納する入力データ用メモリ40と、入力データ用メモリ40に結合される入力データ結合装置41と、入力データ結合装置41に接続されるテーブル参照装置42と、テーブル参照装置42に接続され,テーブル参照装置42からテーブル参照データTRDを表すビットパターン(bitpattern)を受信し,テーブル参照装置42に対してshift(出力できる係数フラグと対応した最終係数フラグの数の和),outnum(出力できる係数フラグの数),end(最終係数フラグが“1”であるかを表すフラグ)を送信する参照テーブル52と、テーブル参照装置42に接続され,テーブル参照装置42から画素データ係数列(binstring),outnumを受信する第2のシフト回路56と、第2のシフト回路56に接続され,significant_coeff_flag[]を格納するsignificant_coeff_flag[]格納メモリ57と、テーブル参照装置42に接続され,テーブル参照装置42からendを受信し、last_significant_coeff_flag[]を格納するlast_significant_coeff_flag[]格納メモリ57と、テーブル参照装置42に接続され,テーブル参照装置42からbinstring,shiftを受信し、入力データ結合装置41にシフトデータSDを送信する第1のシフト回路48とを備える。
本発明の第5の実施の形態に係るVLCデコーダによれば、上述した第1乃至第2の実施の形態に係るVLCデコード方法を適用することによって、参照テーブルを用いることにより、複数ビットの画素データ係数列を1回の判定で、VLCデコードすることができる。
[第6の実施の形態]
(VLCデコーダ)
本発明の第6の実施の形態に係るVLCデコーダは、図9に示すように、画素データ係数列(binstring)を格納する入力データ用メモリ40と、入力データ用メモリ40に結合される入力データ結合装置41と、入力データ結合装置41に接続されるテーブル参照装置42と、テーブル参照装置42に接続され,テーブル参照装置42からbitpatternを受信し,テーブル参照装置42に対してshift,outnum,end,outpattern(出力できる係数フラグの値)を送信する参照テーブル52と、テーブル参照装置42に接続され,テーブル参照装置42からoutpatternを受信し、significant_coeff_flag[]を格納するsignificant_coeff_flag[]格納メモリ57と、テーブル参照装置42に接続され,テーブル参照装置42からendを受信し、last_significant_coeff_flag[]を格納するlast_significant_coeff_flag[]格納メモリ57と、テーブル参照装置42に接続され,テーブル参照装置42からbinstring,shiftを受信し、入力データ結合装置41にシフトデータSDを送信する第1のシフト回路48とを備える。
本発明の第6の実施の形態に係るVLCデコーダによれば、上述した第3の実施の形態に係るVLCデコード方法を適用することによって、参照テーブルを用いることにより、複数ビットの画素データ係数列を1回の判定で、VLCデコードすることができる。
[その他の実施の形態]
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施の形態及び運用技術が明らかとなろう。
本発明の第1乃至第3の実施の形態の説明において、参照テーブルを用いることにより、3ビット,或いは4ビットの画素データ係数列を1回の判定で、VLCデコードすることができることを説明したが、同様にして、Nビット(N>4)の画素データ係数列を1回の判定で、VLCデコードすることもできることは明らかである。
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
本発明の第1の実施の形態に係るVLCデコード方法を説明する模式的ブロック構成図であって、(a)係数列パラメータABCDの説明図、(b)VLCデコード方法の処理フロー図、(c)画素データ係数列の模式図。 一般的に考えられる画素データ係数列のVLCデコード方法のフローチャート図。 本発明の第1の実施の形態に係るVLCデコード方法の説明図であって、(a)参照テーブルを用いて一度に3ビットの画素データ係数列を判定するVLCデコード方法のフローチャート図、(b)その参照テーブルI。 本発明の第2の実施の形態に係るVLCデコード方法の説明図であって、(a)参照テーブルを用いて一度に4ビットの画素データ係数列を判定するVLCデコード方法の擬似コードリスト例、(b)その参照テーブルI。 本発明の第3の実施の形態に係るVLCデコード方法の説明図であって、(a)参照テーブルを用いて一度に4ビットの画素データ係数列を判定する別のVLCデコード方法のフローチャート図、(b)その参照テーブルI。 動画フォーマットH.264上での画素データ係数列におけるVLCデコード方法を適用する,本発明の第4の実施の形態に係るVLCデコーダの模式的な全体ブロック構成図。 動画フォーマットH.264上での画素データ係数列におけるVLCデコード方法を適用する,本発明の第4の実施の形態に係るVLCデコーダの詳細なブロック構成図。 動画フォーマットH.264上での画素データ係数列におけるVLCデコード方法を適用する,本発明の第5の実施の形態に係るVLCデコーダの詳細なブロック構成図。 動画フォーマットH.264上での画素データ係数列におけるVLCデコード方法を適用する,本発明の第6の実施の形態に係るVLCデコーダの詳細なブロック構成図。
符号の説明
14…画素データ係数列格納部
15,52…参照テーブル
40…入力データ用メモリ
41…入力データ結合装置
42…テーブル参照装置
44…出力データ用メモリ
46…テーブル格納メモリ
48…第1のシフト回路
56…第2のシフト回路
57…significant_coeff_flag[]格納メモリ
58…last_significant_coeff_flag[]格納メモリ
S20〜S27,S30〜S37…ステップ

Claims (4)

  1. 動画フォーマット上での画素データ係数列を格納する入力データ用メモリと、
    テーブル参照データを記憶し、前記入力データ用メモリからメモリデータを受信するテーブル参照装置と、
    パラメータデータを記憶し、前記テーブル参照装置から前記テーブル参照データを受信し,前記テーブル参照装置に前記パラメータデータを送信する参照テーブルを備えたテーブル格納メモリと、
    前記テーブル参照装置から出力される係数フラグ,前記出力される係数フラグと対応した最終係数フラグからなる参照テーブルデータを受信する出力データ用メモリ
    とを備え、前記参照テーブルは、複数ビットの画素データ係数列をインデックスとして、前記画素データ係数列の先頭から取得できる係数フラグの数,前記画素データ係数列の先頭から取得できる係数フラグと対応した最終係数フラグの数の和,および前記最終係数フラグが“1”であるかを表すフラグを備えることを特徴とする可変長符号化デコーダ。
  2. 動画フォーマット上での画素データ係数列を格納する入力データ用メモリと、
    テーブル参照データを記憶し、前記入力データ用メモリからメモリデータを受信するテーブル参照装置と、
    パラメータデータを記憶し、前記テーブル参照装置から前記テーブル参照データを受信し,前記テーブル参照装置に前記パラメータデータを送信する参照テーブルを備えたテーブル格納メモリと、
    前記テーブル参照装置から出力される係数フラグ,前記出力される係数フラグと対応した最終係数フラグからなる参照テーブルデータを受信する出力データ用メモリ
    とを備え、前記参照テーブルは、複数ビットの画素データ係数列をインデックスとして、出力される係数フラグの数,前記出力される係数フラグの値自身,前記出力される係数フラグと対応した最終係数フラグの数の和,および前記最終係数フラグが“1”であるかを表すフラグを備えることを特徴とする可変長符号化デコーダ。
  3. 内部で使用する変数,データおよび、係数フラグ、最終係数フラグを各々“0”で初期化し、画素データ係数列の先頭から判定に用いるビット数mを、“n”で初期化するステップと、
    前記画素データ係数列からデータをmビット取得し、一時変数データへ格納するステップと、
    前記データをインデックスとして、参照テーブルから各変数として、画素データ係数列の先頭から取得できる係数フラグの数、画素データ係数列の先頭から取得できる係数フラグと対応した最終係数フラグの数の和、最終係数フラグが“1”であるかを表すフラグを得るステップと、
    参照テーブルから得られた変数から係数フラグ、ループの次の処理に必要な変数データ、ビット数mを求めるステップと、
    前記出力できる係数フラグの個数の係数フラグをデータの上位ビットから切り出し格納し、前記出力できる係数フラグと対応した最終係数フラグの数の和であるシフト分データは処理されたことから、データをシフトビット分、左にシフトし、下位nビットを保持するステップと、
    前記最終係数フラグが“1”であるか否かを判断するステップと、
    前記最終係数フラグが“0”の場合には、ループを介して、前記画素データ係数列からデータをmビット取得し、一時変数データへ格納するステップに戻るステップと、
    前記最終係数フラグが“1”の場合には、ループ内で得られた係数フラグが最後の非ゼロ係数であるので、前記最終係数フラグを“1”とするステップ
    とを備えることを特徴とする可変長符号化デコード方法。
  4. 内部で使用する変数,データおよび、係数フラグ、最終係数フラグを各々“0”で初期化をし、画素データ係数列の先頭から判定に用いるビット数mを“n”で初期化するステップと、
    前記画素データ係数列からデータをmビット取得し、一時変数データへ格納するステップと、
    前記データをインデックスとして、参照テーブルから出力できる係数フラグの数、前記出力できる係数フラグと対応した最終係数フラグの数の和、前記最終係数フラグが“1”であるかを表すフラグ、前記出力できる係数フラグの値を得るステップと、
    前記参照テーブルから得られた変数から係数フラグ、ループの次の処理に必要な変数データ、ビット数mを求めるステップと、
    前記出力できる係数フラグの個数の係数フラグへ対応する値を格納し、前記出力できる係数フラグの数と対応した最終係数フラグの数の和であるシフト分データは処理されたことから、データをシフトビット分、左にシフトし、下位nビットを保持するステップと、
    最終係数フラグが“1”であるか否かを判断するステップと、
    最終係数フラグが“0”場合には、ループを介して、画素データ係数列からデータをmビット取得し、一時変数データへ格納するステップへ戻るステップと、
    最終係数フラグが“1”の場合には、ループ内で得られた係数フラグが最後の非ゼロ係数であるので、最終係数フラグを“1”とし、処理を終了するステップ
    とを備えることを特徴とする可変長符号化デコード方法。
JP2004358398A 2004-12-10 2004-12-10 可変長符号化デコーダおよびデコード方法 Expired - Fee Related JP4271134B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004358398A JP4271134B2 (ja) 2004-12-10 2004-12-10 可変長符号化デコーダおよびデコード方法
US11/127,225 US20060126743A1 (en) 2004-12-10 2005-05-12 Variable length code decoder and decoding method for variable length codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004358398A JP4271134B2 (ja) 2004-12-10 2004-12-10 可変長符号化デコーダおよびデコード方法

Publications (2)

Publication Number Publication Date
JP2006166344A JP2006166344A (ja) 2006-06-22
JP4271134B2 true JP4271134B2 (ja) 2009-06-03

Family

ID=36583812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004358398A Expired - Fee Related JP4271134B2 (ja) 2004-12-10 2004-12-10 可変長符号化デコーダおよびデコード方法

Country Status (2)

Country Link
US (1) US20060126743A1 (ja)
JP (1) JP4271134B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO322043B1 (no) * 2004-12-30 2006-08-07 Tandberg Telecom As Fremgangsmate for forenklet entropikoding
KR100813877B1 (ko) * 2006-05-11 2008-03-18 전자부품연구원 효율적인 h.264/avc cavlc 디코딩 방법
JP4379444B2 (ja) * 2006-07-26 2009-12-09 ソニー株式会社 復号化方法、復号化方法のプログラム、復号化方法のプログラムを記録した記録媒体、復号化装置
JP2008199100A (ja) 2007-02-08 2008-08-28 Toshiba Corp 可変長符号復号装置
US20100150242A1 (en) * 2007-04-11 2010-06-17 Panasonic Corporation Image data decoding device and image data decoding method
US8813143B2 (en) * 2008-02-26 2014-08-19 Time Warner Enterprises LLC Methods and apparatus for business-based network resource allocation
KR101501568B1 (ko) * 2008-07-04 2015-03-12 에스케이 텔레콤주식회사 영상 부호화 및 복호화 장치 및, 방법
JP5221430B2 (ja) * 2009-03-24 2013-06-26 株式会社東芝 画像圧縮装置および画像伸張装置
US9167253B2 (en) 2011-06-28 2015-10-20 Qualcomm Incorporated Derivation of the position in scan order of the last significant transform coefficient in video coding
US10616582B2 (en) * 2016-09-30 2020-04-07 Qualcomm Incorporated Memory and bandwidth reduction of stored data in image/video coding

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU760707B2 (en) * 1999-01-07 2003-05-22 Koninklijke Philips Electronics N.V. Efficient coding of side information in a lossless encoder
GB0124882D0 (en) * 2001-10-17 2001-12-05 Koninkl Philips Electronics Nv Improved variable length decoder
US7573406B2 (en) * 2004-05-21 2009-08-11 Broadcom Corporation System and method for decoding context adaptive variable length coding

Also Published As

Publication number Publication date
US20060126743A1 (en) 2006-06-15
JP2006166344A (ja) 2006-06-22

Similar Documents

Publication Publication Date Title
US7884742B2 (en) System and method for efficient compression of digital data
US7817864B2 (en) Coding apparatus and decoding apparatus
TWI685245B (zh) 資料編碼及解碼
KR101356733B1 (ko) 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
US9154792B2 (en) Progressive coding of position of last significant coefficient
CN111083476B (zh) 编码和解码视频数据的方法及视频数据编码器和解码器
US8761240B2 (en) Methods and devices for data compression using context-based coding order
US8526750B2 (en) Method and apparatus for encoding/decoding image by using adaptive binarization
KR0180169B1 (ko) 가변길이 부호기
US20060126743A1 (en) Variable length code decoder and decoding method for variable length codes
US20140286417A1 (en) Data encoding and decoding
JP2008289125A (ja) 算術復号化装置及びその方法
JP5231243B2 (ja) 符号化装置及び符号化方法
JP5116704B2 (ja) 画像符号化装置及び画像符号化方法
IL235057A (en) Video parameter coding method, video parameter quantization decoding method, device and program
JP2009021775A (ja) 符号化装置及び符号化方法
US7020342B1 (en) Scalable coding
US20100074544A1 (en) Transcoding method
JP2005252374A (ja) 符号化装置、プログラム、および符号化処理方法
US20050259742A1 (en) System and method for choosing tables in CAVLC
JP5632328B2 (ja) 符号量予測装置及びプログラム
KR20070075267A (ko) 영상 신호를 인코딩 및 디코딩 하는 방법
JP2007074648A (ja) Cabac復号化装置
US20120147972A1 (en) Image decoding apparatus, image decoding method, image encoding apparatus, image encoding method, and program
KR100195717B1 (ko) 가변 길이 복호기

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090210

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090224

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4271134

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140306

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees