JP2003273748A - 改善されたハフマンデコーディング方法及び装置 - Google Patents

改善されたハフマンデコーディング方法及び装置

Info

Publication number
JP2003273748A
JP2003273748A JP2003038864A JP2003038864A JP2003273748A JP 2003273748 A JP2003273748 A JP 2003273748A JP 2003038864 A JP2003038864 A JP 2003038864A JP 2003038864 A JP2003038864 A JP 2003038864A JP 2003273748 A JP2003273748 A JP 2003273748A
Authority
JP
Japan
Prior art keywords
entry
node
value
index
accessed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003038864A
Other languages
English (en)
Other versions
JP3714935B2 (ja
Inventor
Heung-Yeop Jang
興▲ヨプ▼ 張
Tae-Kyu Jang
泰奎 長
Jong-Hoon Jeong
鐘勲 鄭
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2003273748A publication Critical patent/JP2003273748A/ja
Application granted granted Critical
Publication of JP3714935B2 publication Critical patent/JP3714935B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • 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

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

(57)【要約】 【課題】 改善されたハフマンデコーディング方法及び
装置を提供する。 【解決手段】 符号化されたビットストリームを受信
し、受信されたビットストリームの一部ビットよりなる
コードワードの各ビットに基づきインデックス情報を求
め、前記インデックス情報に対応するルックアップテー
ブルのエントリにアクセスし、アクセスされたエントリ
の内部値に基づき前記エントリが中間ノードに該当する
か、それとも端末ノードに該当するかを判断する。よっ
て、数値的な演算を通じてデコーディングに必要なメモ
リ容量を減らせると共に、検索速度を向上させられる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は改善されたハフマン
デコーディング方法及び装置に係り、特に、ハフマンコ
ーディングの基本原理である2進木から生成された一次
元ルックアップテーブルの効率良い構成と、プロセシン
グ効率を高めるための数値演算技法とを用いてハフマン
デコーディングを行うハフマンデコーディング方法及び
装置に関する。
【0002】
【従来の技術】ハフマンコードが有する固有な特徴によ
り、従来の2進木を用いたハフマンデコーディング技法
は、最大検索時間及び平均検索時間の偏差の側面で極め
て効率良い方法として見なされてきている。しかし、既
存の2進木に基づく検索方法によれば、検索に必要な資
料構造を生成するために、連結リストに基づく2進木を
構成する複雑な過程を行わなければならず、且つ、2進
木検索においてノード間の移動のために行う比較及び分
岐構文はプロセッサーの動作中にパイプラインの流れを
妨げてハフマンデコーダの処理速度を落とす主な原因と
なっている。
【0003】以下、添付した図面に基づき、従来のハフ
マンデコーディング装置の構成及び動作と、その装置に
おいて行われる従来のハフマンデコーディング方法につ
いて説明する。
【0004】図1は、従来のハフマンデコーディング装
置の概略的なブロック図であって、入力バッファ11
0、サーチエンジン120、ハフマンルックアップテー
ブル130及び出力バッファ140を備えてなる。
【0005】図2は、図1に示された装置において行わ
れる既存の条件分岐構文に基づくハフマンデコーダのデ
コーディング方法を説明するためのフローチャートであ
る。
【0006】図3は、従来の方式による2進ハフマン木
の構造を示し、ノード310、322、330、33
2、342、342、344、346、356は、次の
ノードに分岐される中間ノードであり、ノード320、
340、346、350、352、354、360、3
62は、実際の戻し値を有する端末ノードである。
【0007】表1は、図3に示された2進ハフマン木の
コードブックを示している。
【表1】
【0008】図4A及び図4Bは、従来の2進木ハフマ
ンデコーディング方法によるハフマンテーブルのメモリ
構造を示している。図4A及び図4Bに示されたよう
に、従来のハフマンテーブルでは、3つのメモリ空間を
用いる。図4Aに示されたように、中間ノードの場合に
は割り当てられた3つのメモリ空間のうち中間のメモリ
空間にはヌル値が貯蔵され、左側のメモリ空間には子ノ
ードのうち左側ノードのアドレスが貯蔵され、右側のメ
モリ空間には子ノードのうち左側ノードのアドレスが貯
蔵される。また、図4Bに示されたように、端末ノード
の場合には、割り当てられた3つのメモリ空間のうち中
間のメモリ空間には該当ノードの内部値、すなわち実際
の戻し値が貯蔵され、左側及び右側のメモリ空間にはヌ
ル値が貯蔵される。
【0009】以下では、図3、図4及び図5と図2のフ
ローチャートとを結び付けて従来の技術による2進木構
造のハフマンテーブルを用いたハフマンデコーダのデコ
ーディング方法について説明する。
【0010】ステップ210はデコーディングの開始段
階であって、ハフマンデコーダに入力される符号化され
たビットストリームの符号に基づき図3に示されたハフ
マン木の根ノード、すなわち、中間ノード310に該当
するエントリにアクセスする。
【0011】ステップ220は比較及び分岐構文であっ
て、ステップ210においてアクセスされたエントリに
該当するノードが中間ノードであるか、それとも端末ノ
ードであるかを判断する。
【0012】ステップ230においては、ステップ22
0においてアクセスされたエントリに該当するノードが
端末ノードであると判断された場合、端末ノードに割り
当てられた3つのメモリ空間のうち中間のメモリ空間に
貯蔵された値を実際に戻すデコーディングされたコード
ワード値として出力する。
【0013】ステップ240においては、ステップ22
0においてアクセスされたハフマン木のアドレスに該当
するノードが中間ノードであると判断された場合、ビッ
トストリームから入力された1ビットの値が’0’であ
る場合にはステップ250へ進み、’1’である場合に
はステップ260へ進む。
【0014】ステップ250においては、現在ノードに
割り当てられた3つのメモリ空間のうち左側のメモリ空
間に貯蔵されたアドレスに該当するエントリにアクセス
し、ステップ220へ進む。
【0015】ステップ260においては、現在ノードに
割り当てられた3つのメモリ空間のうち右側のメモリ空
間に貯蔵されたアドレスにアクセスし、ステップ220
へ進む。
【0016】以下、図2及び図5に基づき、前記従来の
ハフマンデコーディング方法により符号化された入力ビ
ットストリーム’1110100....’をデコーデ
ィングする過程について説明する。ステップ210はデ
コーディングの開始段階であって、ハフマン2進木のル
ートアドレスに該当する図5に示されたハフマンテーブ
ルのアドレス’1’に該当するエントリにアクセスす
る。
【0017】ステップ220において、アクセスされた
エントリのノードが中間ノードであるか、それとも端末
ノードであるかを判断する。図5を参照すれば、アドレ
ス’1’に該当するノードに該当する3つのメモリ空間
のうち中間のメモリ空間に貯蔵された値は’ヌル’であ
り、左側のメモリ空間には’4’が貯蔵されており、右
側のメモリ空間には’7’が貯蔵されている。従って、
ステップ220においては、アドレス’1’に該当する
ノードが図4Aに示された中間ノードであると判断し、
ステップ240へ進む。
【0018】ステップ240においては、入力されたビ
ットストリーム’1110100’の符号化された最初
のコードワードの最初のビット’1’を入力され、入力
されるビットnew_digit()が’1’であるため、ステッ
プ260へ進む。
【0019】ステップ260においては、現在アドレ
ス’1’の右側アドレス’2’、すなわち、現在ノード
の右側のメモリ空間に貯蔵されたアドレス’7’に該当
するエントリにアクセスし、ステップ220へ進む。
【0020】ステップ220においては、ハフマンテー
ブルのアドレス’7’に該当するノードが中間ノードで
あるか、それとも端末ノードであるかを判断する。図5
を参照すれば、アドレス’7’に該当するノードに該当
する3つのメモリ空間のうち中間のメモリ空間に貯蔵さ
れた値は’ヌル’であり、左側のメモリ空間には’1
0’が貯蔵されており、右側のメモリ空間には’13’
が貯蔵されている。従って、ステップ220においては
アドレス’7’に該当するノードが図4Aに示された中
間ノードであると判断し、ステップ240へ進む。
【0021】ステップ240においては、入力されたビ
ットストリーム’1110100’の最初のコードワー
ドの2番目のビット’1’を入力され、入力されるビッ
トnew_digit()が’1’であるため、ステップ260へ
進む。
【0022】ステップ260においては、現在アドレ
ス’7’の右側アドレス’8’、すなわち、現在ノード
の右側のメモリ空間に貯蔵されたアドレス’13’に該
当するエントリにアクセスし、ステップ220へ進む。
【0023】ステップ220においては、ハフマンテー
ブルのアドレス’13’に該当するノードが中間ノード
であるか、それとも端末ノードであるかを判断する。図
5を参照すれば、アドレス’1’に該当するノードに該
当する3つのメモリ空間のうち中間のメモリ空間に貯蔵
された値は’ヌル’であり、左側のメモリ空間には’2
2’が貯蔵されており、右側のメモリ空間には’25’
が貯蔵されている。従って、ステップ220において
は、アドレス’13’に該当するノードが図4Aに示さ
れた中間ノードであると判断し、ステップ240へ進
む。
【0024】ステップ240においては、入力されたビ
ットストリーム’1110100’の最初のコードワー
ドの3番目のビット’1’を入力され、入力されるビッ
トnew_digit()が’1’であるため、ステップ260へ
進む。
【0025】ステップ260においては、現在アドレ
ス’13’の右側アドレス’14’、すなわち現在ノー
ドの右側のメモリ空間に貯蔵されたアドレス’25’に
該当するエントリにアクセスし、ステップ220へ進
む。
【0026】ステップ220においては、ハフマンテー
ブルのアドレス’25’に該当するノードが中間ノード
であるか、それとも端末ノードであるかを判断する。図
5を参照すれば、アドレス’25’に該当するノードに
割当する3つのメモリ空間のうち中間のメモリ空間に貯
蔵された値は’4’であり、左側のメモリ空間には’ヌ
ル’が貯蔵されており、右側のメモリ空間には’ヌル’
が貯蔵されている。従って、ステップ220においては
アドレス25に該当するノードが図4Bに示された端末
ノードであると判断し、ステップ230へ進む。
【0027】ステップ230においては、アドレス’2
5’に該当するノードに割り当てられた3つのメモリ空
間のうち中間のメモリ空間に貯蔵された値’4’をデコ
ーディングされたコードワード値として出力する。
【0028】従って、入力されたビットストリーム’1
110100’の最初のコードワード’111’に対す
るデコーディングされたコードワード’4’を求め、ビ
ットストリーム’1110100’の2番目のコードワ
ードに対するデコーディングを再開する。
【0029】デコーディングされたコードワード値’
4’を求める過程と同様に、ステップ210において
は、デコーディングの開始段階としてハフマン2進木の
ルートアドレスに該当するハフマンテーブルのアドレ
ス’1’に該当するエントリにアクセスし、ステップ2
20へ進む。
【0030】ステップ220において、アクセスされた
ハフマンテーブルのアドレス’1’に該当するノードが
中間ノードであるか、それとも端末ノードであるかを判
断し、アドレス’1’に該当するノードに該当する3つ
のメモリ空間のうち中間のメモリ空間に貯蔵された値
は’ヌル’であり、左側のメモリ空間には’4’が貯蔵
されており、右側のメモリ空間には’7’が貯蔵されて
いる。従って、ステップ220においてはアドレス’
1’に該当するノードが図4Aに示された中間ノードで
あると判断し、ステップ240へ進む。
【0031】従って、ステップ240へ進んで入力され
たビットストリーム’1110100’の2番目のコー
ドワードの最初のビット’0’を入力され、入力された
ビットnew_digit()が’0’であるため、ステップ25
0へ進む。
【0032】ステップ250においては、現在アドレ
ス’1’の左側アドレス’0’、すなわち、現在ノード
の左側のメモリ空間に貯蔵されたアドレス’4’に該当
するエントリにアクセスし、ステップ220へ進む。
【0033】ステップ220においては、ハフマンテー
ブルのアドレス’4’に該当するノードが中間ノードで
あるか、それとも端末ノードであるかを判断する。図5
を参照すれば、アドレス’4’に該当するノードの3つ
のメモリ空間のうち中間のメモリ空間に貯蔵された値
は’60’であり、左側のメモリ空間には’ヌル’値が
貯蔵されており、右側のメモリ空間には’ヌル’値が貯
蔵されている。従って、ステップ220においてはアド
レス’4’に該当するノードが図4Bに示された端末ノ
ードであると判断し、ステップ230へ進む。
【0034】ステップ230においては、アドレス’
4’に該当するノードに割り当てられた3つのメモリ空
間のうち中間のメモリ空間に貯蔵された値’60’をビ
ットストリーム’1110100’の2番目のコードワ
ード’0’に対するデコーディングされたコードワード
値として出力する。
【0035】このような方式により、ハフマンデコーダ
に入力される符号化されたビットストリーム’1110
100’の3番目のコードワード’100’に対するデ
コーディングされたコードワード値’59’を出力し、
ビットストリーム’1110100....’に対する
デコーディングされたコードワード値’4,60,5
9....’値を求める。
【0036】このように、従来の2進木に基づくハフマ
ンデコーディング方法は、検索に必要な資料構造を生成
するために連結リストに基づく2進木を構成する複雑な
過程を行わなければならず、特に、2進木検索に当たっ
て、ノード間の移動のために行う比較及び分岐構文はプ
ロセッサーの動作中にパイプラインの流れを妨げて処理
速度の効率を落とし、従来のハフマンデコーディング方
法によるルックアップテーブルは各ノードごとに3つの
メモリ空間を用いるために、メモリ空間を過度に消費す
るといった問題点がある。
【0037】
【発明が解決しようとする課題】本発明が解決しようと
する技術的な課題は、従来のハフマンデコーディング過
程においてプロセシング効率を落とす’比較及び分岐’
命令を省いてハフマンデコーダの処理速度を高め、且
つ、要求されるメモリ空間を狭める改善されたハフマン
デコーディング方法を提供するところにある。
【0038】本発明が解決しようとする他の技術的な課
題は、従来のハフマンデコーディング過程においてプロ
セシング効率を落とす’比較及び分岐’命令を省いてハ
フマンデコーダの処理速度を高め、且つ、要求されるメ
モリ空間を狭める前記改善されたハフマンデコーディン
グ方法を行う改善されたハフマンデコーディングシステ
ムを提供するところにある。
【0039】
【課題を解決するための手段】前記課題を解決するため
に、本発明による改善されたハフマンデコーディング方
法は、(a)前記符号化されたビットストリームを受信
するステップと、(b)前記受信されたビットストリー
ムの一部ビットよりなるコードワードのうち最初のビッ
トからインデックス情報を求め、前記インデックス情報
に対応する前記ルックアップテーブルのエントリにアク
セスするステップと、(c)前記アクセスされたエント
リの内部値に基づき前記エントリの種類を判断するステ
ップと、を含むことを特徴とする。
【0040】好ましくは、本発明による改善されたハフ
マンデコーディング方法は、アクセスされたエントリの
内部値の符号に基づき前記エントリが中間ノードに該当
するか、それとも端末ノードに該当するかを判断するこ
とを特徴とする。
【0041】好ましくは、本発明による改善されたハフ
マンデコーディング方法は、前記アクセスされたエント
リが中間ノードであると判断される場合、前記現在エン
トリのインデックス値、前記アクセスされたエントリの
内部値、及び前記コードワードのうち2番目のビット値
に基づき、次にアクセスするエントリのインデックス値
を計算することを特徴とする。
【0042】前記他の課題を解決するために、本発明に
よる改善されたハフマンデコーディング装置は、符号化
されたビットストリームをデコーディングするためのプ
ロセッサーと、前記プロセッサーに結合され、前記デコ
ーディングと関わるルックアップテーブルが貯蔵された
メモリと、を備え、前記ルックアップテーブルは前記2
進木のノードに対応し、内部値を有するエントリを備
え、前記エントリに該当する前記2進木のノードの種類
は前記エントリと関わって貯蔵された内部値に基づき決
定されることを特徴とする。
【0043】好ましくは、本発明による改善されたハフ
マンデコーディング装置は、エントリと関わって貯蔵さ
れた内部値は、前記エントリに該当するノードの種類に
よって符号を異にすることを特徴とする。
【0044】好ましくは、本発明による改善されたハフ
マンデコーディング装置は、前記エントリに該当するノ
ードが中間ノードである場合、前記エントリの内部値は
現在エントリに該当する中間ノードと次にアクセスする
ノードとの相対的な距離値であることを特徴とする。
【0045】
【発明の実施の形態】以下、添付した図面に基づき、本
発明による改善されたハフマンデコーディング方法につ
いて詳細に説明する。
【0046】図6は、本発明による改善されたハフマン
デコーディング方法を実現するためのルックアップテー
ブルの再構成による効率良い一次元ルックアップテーブ
ルの構成過程を示している。
【0047】テーブルの変換過程は、同一検索段階別に
2進木のノードをグループ化し、表1に示されたコード
ワードの大きさ順に左側から右側へと一次元配列させる
ことによりなされる。図6に示されたルックアップテー
ブルの生成に際し、各ノードは中間ノードの場合には現
在ノードの位置を基準として次に移動するノードの相対
的な距離を内部値として貯蔵し、端末ノードの場合には
実際の戻し値を内部値として貯蔵する。
【0048】前記一次元配列は、図6に示されたよう
に、連結リストによる動的な資料構造の生成無しに、直
列配列された静的なルックアップテーブルの構成を有す
る。
【0049】以下、図6に基づき、一次元ルックアップ
テーブルの作成過程について詳細に説明する。
【0050】図6の2進木の各ノードには上位レイヤか
ら下位レイヤに、すなわち、レイヤ−0、レイヤ−1、
レイヤ−2、レイヤ−3、レイヤ−4、レイヤ−5の順
番にインデックス番号が付され、そして各レイヤ内にお
いては各ノードに対して順次的なインデックス番号が付
される。本発明による実施の形態においては、図6に示
されたように、兄弟ノードには隣接したインデックス番
号が付される。この実施の形態においては、同じレイヤ
内においては左側から右側へとインデックス番号が付さ
れるが、選択的に、同じレイヤ内においては右側から左
側へとインデックス番号が付されても良い。
【0051】図6において、インデックス番号0,4,
7,8,9,10,12,13...が付された端末ノ
ードには、表1に示されたコードワードの大きさによっ
て左側から右側へと実際の戻し値’60’,’5
9’,’4’,’61’,’58’,’62’,’5
7’及び’63’が割り当てられる。
【0052】一方、インデックス番号1,2,3,5,
6,11,...が付された中間ノードには現在ノード
と次の移動するノードとの相対的な距離値が貯蔵され
る。この実施の形態においては、インデックス番号1,
2,3,5,6,11が付された中間ノードには現在ノ
ードのインデックス番号と子ノードのうち左側ノードの
インデックス番号との差分値、すなわち、’−1’,’
−2’,’−3’,’−3’,’−4’,’−1’が各
々貯蔵される。
【0053】図7は、図6に示されたテーブルの再構成
法により構成された一次元ルックアップテーブルを示し
ている。再構成された一次元ルックアップテーブルは、
前記2進木の各ノードに付されたインデックス番号及び
インデックス番号を結び付けて貯蔵した各ノードの内部
値を含む。
【0054】ルックアップテーブルに貯蔵された各ノー
ドの内部値は、中間ノードの場合には現在ノードと次の
移動するノードとの相対的な距離値、この実施の形態の
場合に現在ノードのインデックス番号と子ノードのうち
左側ノードのインデックス番号との差分値であるため
に、常に負の値を有する。これに対し、端末ノードの場
合には戻し値を貯蔵するために、正の値を有する。
【0055】この実施の形態においては、中間ノードの
場合、現在ノードと子ノードのうち左側ノードとのイン
デックス番号の差分値を有するが、選択的に、右側ノー
ドのインデックス番号との差分値を貯蔵するなど、他の
形の相対的な距離値を貯蔵するようにしても良い。
【0056】図7に示された一次元ルックアップテーブ
ルにおいて、’左側ノード:0’、’右側ノード:1’
で表わされた列は図8に示された最終的なルックアップ
テーブルには含まれず、テーブルを生成する中間過程を
表わす。これらは、検索過程で移動する検索アドレス値
を表わし、符号化されたビットストリームから読み込ま
れたビットデータと連動して各々の場合、次に移動する
検索段階のノードのインデックス番号を表示する。
【0057】従来の2進木ハフマンルックアップテーブ
ルの場合には、検索を行うためのルックアップテーブル
は各ノードに対して、各ノードに該当するデータ値、左
側または右側ノードに分岐時に移動するためのアドレス
値の3つの構成要素を有していなければならないため、
2進木の各々のノードに対して3つのメモリ空間を必要
とする。
【0058】これに対し、図8は、本発明による最終的
なルックアップテーブルを示しており、中間ノードの場
合に現在ノードを基準として他の移動するノードの相対
的な距離値のみを有しており、端末ノードの場合に戻す
結果値、すなわち、戻し値のみを有する。また、これら
2値は図7の太線にて示されたように、常に排他的に発
せられるため、図8に示されたように、一次元空間上に
配列できる。従って、既存のルックアップテーブルに比
べてメモリの使用空間が1/3に狭まる。
【0059】図9は、図8に示された本発明による一次
元ルックアップテーブルを用いてハフマンデコーディン
グを行う方法を説明するためのフローチャートである。
【0060】ステップ910は、本発明による一次元ル
ックアップテーブルを用いてデコーディングを開始する
段階であって、ハフマンデコーダに入力される符号化さ
れたビットストリームの所定のコードワードの最初のビ
ット値をインデックス情報として用いて 図8のルック
アップテーブルのエントリにアクセスする。
【0061】ステップ920においては、ステップ91
0においてアクセスされたエントリに該当する現在ノー
ドが中間ノードであるか、それとも端末ノードであるか
を判断する。この実施の形態においては、該当エントリ
の内部値が正の値であるか、それとも負の値であるかに
よってノードの種類を判別する。ステップ920におい
ては、該当エントリに貯蔵された内部値が正の値である
場合、現在ノードを端末ノードであると判断してステッ
プ930へ進み、前記内部値が負の値である場合、現在
ノードを中間ノードであると判断してステップ940へ
進む。
【0062】ステップ930においては、ステップ92
0において現在ノードを端末ノードであると判断した場
合、現在エントリの内部値を実際の戻し値として出力す
る。
【0063】ステップ940においては、ステップ92
0において現在ノードが中間ノードであると判断された
場合、下記式[数2]によって新しいインデックス値を
計算し、ルックアップテーブルにおいて計算されたイン
デックス値に該当するエントリにアクセスする。
【数2】 (式中、右側のindexは現在エントリに該当するインデ
ックス番号であり、data(index)は現在エントリに内部
値として貯蔵された現在ノードと次に移動するノードと
の相対的な距離であり、new_digit()は次のビット値を
意味する。)
【0064】この実施の形態においては、前記相対的な
距離値は現在ノードのインデックス番号と現在ノードの
子ノードのうち左側ノードのインデックス番号との差分
値である。
【0065】以下、図8の一次元ルックアップテーブル
及び図9のフローチャートを結び付けて、ハフマンデコ
ーダに入力される符号化されたビットストリームのう
ち’1110100’をデコーディングする過程につい
て説明する。
【0066】ステップ910はデコーディングの開始段
階であって、ハフマンデコーダに入力される符号化され
たビットストリーム’110100’の最初のコード
ワードの最初のビット’1’をインデックス情報として
用いて図8のルックアップテーブルのエントリにアクセ
スする。ここでは、所定の戻し値に対応するコードワー
ドがビットストリーム’1110100’の最初のビッ
トから始まると仮定する。
【0067】ステップ920においては、ステップ91
0においてアクセスされた現在エントリ、すなわち、図
8のルックアップテーブルのインデックス値’1’を有
するエントリに該当するノードの内部値の符号によって
現在ノードが中間ノードであるか、それとも端末ノード
であるかを判断する。この実施の形態においては、ステ
ップ920においてはインデックス値’1’を有するエ
ントリの内部値が負の値’−1’であるため、現在ノー
ドを中間ノードであると判断し、ステップ940へ進
む。
【0068】ステップ940においては、前記式[数
2]によって新しいインデックス値を計算し、計算され
たインデックス値に基づき新しいエントリにアクセス
し、ステップ920へ進む。この実施の形態において
は、data(index)はインデックス番号1−2の結果値で
あり、new_digit()はデコーディングしようとするビッ
トストリーム’110100’の次のビット値’1’
であるため、新しいインデックス値は
【数3】 となる。
【0069】従って、ステップ940においては、イン
デックス値’3’に該当するエントリにアクセスし、ス
テップ920へ進む。
【0070】ステップ920においては、ステップ94
0においてアクセスされた現在エントリ、すなわち、図
8のルックアップテーブルのインデックス値’3’に該
当するエントリのノードが中間ノードであるか、それと
も端末ノードであるかを判断する。ステップ920にお
いては、エントリの内部値’−3’が負の値であるた
め、現在ノードを中間ノードであると判断し、ステップ
940へ再び進む。
【0071】ステップ940においては、前記式[数
2]によって新しいインデックス値を計算する。new_di
git()はデコーディングしようとするビットストリー
ム’110100’の最初のコードワードの2番目の
ビット値’1’であるため、新しいインデックス値は、
【数4】 となる。
【0072】従って、インデックス値’7’に該当する
エントリにアクセスし、ステップ920へ進む。
【0073】ステップ920においては、ステップ94
0においてアクセスされた現在エントリ、すなわち、図
8のルックアップテーブルのインデックス7に該当する
エントリのノードが中間ノードであるか、それとも端末
ノードであるかを判断する。ステップ920において
は、現在エントリの内部値が正の値であるため、現在ノ
ードを端末ノードであると判断し、ステップ930へ進
む。
【0074】ステップ930においては、インデックス
7に該当するエントリの内部値’4’を実際の戻し値、
すなわち、デコーディングされたコードワードとして出
力し、符号化されたビットストリーム’111010
0’のうち最初のビットセット、すなわち、コードワー
ド’111’に対するデコーディング段階を終え、2番
目のコードワードに対するデコーディングを再開する。
【0075】ステップ910においては、ビットストリ
ーム’111100’の2番目のコードワードの最初
のビット’0’をインデックス情報として用いて図8の
ルックアップテーブルのエントリにアクセスする。
【0076】ステップ920においては、ステップ91
0においてアクセスされたインデックス0に該当するエ
ントリの内部値が正の値であるため、現在ノードを端末
ノードであると判断し、ステップ930へ進む。
【0077】ステップ930においては、インデックス
0に該当するエントリの内部値’60’をデコーディン
グされたコードワードとして出力し、符号化されたビッ
トストリーム’111100’のうち2番目のコード
ワード’0’に対するデコーディング段階を終え、3番
目のコードワードに対するデコーディングを再開する。
【0078】ステップ910においては、ビットストリ
ーム’111000’の3番目のコードワードの最初
のビット’1’をインデックス情報として用いて図8の
ルックアップテーブルのエントリにアクセスする。
【0079】ステップ920においては、ステップ91
0においてアクセスされた現在エントリ、すなわち、イ
ンデックス1に該当するエントリの内部値’−1’が負
の値であるため、現在ノードを中間ノードであると判断
してステップ940へ進む。
【0080】ステップ940においては、前記式[数
2]によって新しいインデックス値を計算する。new_di
git()はデコーディングしようとするビットストリー
ム’111010’の次のビット値’0’であるた
め、新しいインデックス値は、
【数5】 となる。
【0081】従って、インデックス値’2’に該当する
エントリにアクセスし、ステップ920へ進む。
【0082】ステップ920においては、ステップ94
0においてアクセスされた現在エントリ、すなわち、図
8のルックアップテーブルのインデックス2に該当する
エントリのノードが中間ノードであるか、それとも端末
ノードであるかを判断する。この実施の形態において
は、現在エントリの内部値’−2’が負の値であるた
め、現在ノードを中間ノードであると判断してステップ
940へ進む。
【0083】ステップ940においては、前記式[数
2]によって新しいインデックス値を計算する。new_di
git()はデコーディングしようとするビットストリー
ム’111010’の3番目のコードワードの2番目
のビット値が’0’であるため、前記式[数2]によれ
ば、新しいインデックス値は
【数6】 となる。
【0084】従って、インデックス値’4’に該当する
エントリにアクセスし、ステップ920へ進む。
【0085】ステップ920においては、ステップ94
0においてアクセスされた現在エントリ、すなわち、図
8のルックアップテーブルのインデックス4に該当する
エントリのノードが中間ノードであるか、それとも端末
ノードであるかを判断する。ステップ920において
は、現在エントリの内部値’59’が正の値であるた
め、現在ノードを端末ノードであると判断し、ステップ
930へ進む。
【0086】ステップ930においては、現在エントリ
の内部値’59’を符号化されたビットストリーム’1
110100’の3番目のコードワード’100’のデ
コーディングされたコードワードとして出力する。
【0087】このような方式により、符号化されたビッ
トストリーム’111100’の3つのコードワード
に対するデコーディングを行い、デコーディングされた
コードワード’4,60,59’を結果値として出力す
る。
【0088】このように、既存の2進木に基づくハフマ
ンデコーディング方法と、本発明による改善されたハフ
マンデコーディング方法とを比較すれば、本発明による
ハフマンデコーディング方法においては、符号化された
ビットストリームから入力された1ビットのデータを直
接的にルックアップテーブルのエントリへのアクセス、
すなわち、アドレス値の演算に適用することにより、既
存のハフマンデコーディング方法でノード間の移動のた
めに存在していた条件文が除去可能になり、一層向上さ
れたプロセシング効率が得られる。
【0089】表2は、本発明の改善されたハフマンデコ
ーディング方法による結果と、既存の順次的な検索方式
に基づくハフマンデコーディング方法の結果とを示して
いる。
【表2】 表2から明らかなように、任意のMPEG−2 AAC
(advanced audio coding)テスト
ファイルを試験すれば、ハフマンコードの種類によって
最小30%から最大777%の性能の向上がもたらされ
る。また、平均検索回数の側面でも、本発明によるハフ
マンデコーディング方法は、通常の順次的な検索方式の
ハフマンデコーダに比べて約75%の性能の向上を示し
ている。
【0090】表3は、同じ測定条件下で6種の相異なる
MPEG−2 AACテストファイルを用いて測定を行
った結果を示している。
【表3】
【0091】表3から明らかなように、本発明による改
善されたハフマンデコーディング方法は、既存の順次的
な検索方式のハフマンデコーディング方法に比べて、フ
ァイルの種類によって最小24%から最高776%の検
索速度の向上をもたらす。
【0092】本発明は上述した実施の形態に限定される
ことなく、本発明の思想内であれば、当業者による変形
が可能であるということは言うまでもない。
【0093】本発明はまた、コンピュータにて読取り可
能な記録媒体にコンピュータにて読取り可能なコードと
して具現可能である。コンピュータにて読取り可能な記
録媒体はコンピュータシステムによって読取り可能なデ
ータが貯蔵されるあらゆる種類の記録装置を含む。コン
ピュータにて読取り可能な記録媒体の例としては、RO
M、RAM、CD−ROM、磁気テープ、ハードディス
ク、フロッピー(登録商標)ディスク、フラッシュメモ
リ、光データ貯蔵装置などがあり、またキャリアウェー
ブ(例えば、インターネットを介した伝送)の形で具現
されるものも含む。尚、コンピュータにて読取り可能な
記録媒体は、ネットワークに連結されたコンピュータシ
ステムに分散され、分散方式によりコンピュータにて読
取り可能なコードとして貯蔵されて実行できる。
【0094】
【発明の効果】上述したように、本発明による改善され
たハフマンデコーディング方法及び装置によれば、従来
2進木検索に必要であった’比較及び分岐’演算を除く
ことにより検索速度を向上でき、且つ、ルックアップテ
ーブルの構成のためのメモリ空間も、既存の’比較及び
分岐’構文において用いられるテーブルの1/3だけで
も実現できる。
【図面の簡単な説明】
【図1】 従来のハフマンデコーディング装置の概略的
なブロック図である。
【図2】 図1に示された装置において行われる従来の
ハフマンデコーディング方法を説明するためのフローチ
ャートである。
【図3】 ハフマンデコーディング方法に用いられる2
進木構造を示す図面である。
【図4A】 従来のハフマンデコーディング方法に用い
られる各々のノードに対応するハフマンテーブルのメモ
リ空間を示す図面である。
【図4B】 従来のハフマンデコーディング方法に用い
られる各々のノードに対応するハフマンテーブルのメモ
リ空間を示す図面である。
【図5】 従来のハフマンデコーディング方法に用いら
れるハフマンテーブルである。
【図6】 本発明による一次元ルックアップテーブルの
作成過程を示す図面である。
【図7】 本発明による一次元ルックアップテーブルの
作成過程を示す表である。
【図8】 本発明によるデコーディング方法に用いられ
る一次元ルックアップテーブルである。
【図9】 本発明による、数値演算に基づく改善された
ハフマンデコーディング方法を説明するためのフローチ
ャートである。
【符号の説明】
910、920、930、940 ステップ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鄭 鐘勲 大韓民国ソウル特別市蘆原区中渓3洞505 番地 ロッテアパート8棟1306号 Fターム(参考) 5C059 KK08 KK15 MA00 ME02 UA05 5J064 AA02 AA03 AA04 BA09 BC01 BC14 BD01

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 ルックアップテーブルを用いて符号化さ
    れたビットストリームをデコーディングする方法であっ
    て、 (a)前記符号化されたビットストリームを受信するス
    テップと、 (b)前記受信されたビットストリームの一部ビットよ
    りなるコードワードのうちの最初のビットからインデッ
    クス情報を求め、前記インデックス情報に対応する前記
    ルックアップテーブルのエントリにアクセスするステッ
    プと、 (c)前記アクセスされたエントリの内部値に基づき前
    記エントリの種類を判断するステップと、を含むことを
    特徴とするデコーディング方法。
  2. 【請求項2】 前記ステップ(c)は、前記アクセスさ
    れたエントリの内部値の符号に基づき前記エントリが中
    間ノードに該当するか、それとも端末ノードに該当する
    かを判断することを特徴とする請求項1に記載のデコー
    ディング方法。
  3. 【請求項3】 (d)前記ステップ(c)において、前
    記アクセスされたエントリが中間ノードであると判断さ
    れる場合、前記現在エントリのインデックス値、前記ア
    クセスされたエントリの内部値、及び前記コードワード
    のうちの2番目のビット値に基づき、次にアクセスする
    エントリのインデックス値を計算することを特徴とする
    請求項1または2に記載のデコーディング方法。
  4. 【請求項4】 前記次にアクセスするエントリのインデ
    ックス値は下記式[数1]により計算され、計算された
    インデックス値を用いて対応する前記ルックアップテー
    ブルのエントリにアクセスするステップをさらに含むこ
    とを特徴とする請求項3に記載のデコーディング方法。 【数1】 ただし、式中、indexは現在エントリのインデックス番
    号であり、data(index)は現在エントリの戻し値であ
    り、new_digit()は前記コードワードのうちの次のビッ
    ト値である。
  5. 【請求項5】 前記現在エントリの内部値は、現在ノー
    ドと次に移動するノードとの相対的な距離値であること
    を特徴とする請求項3または4に記載のデコーディング
    方法。
  6. 【請求項6】 前記次にアクセスするエントリは、現在
    エントリに該当するノードの子ノードのうち左側ノード
    に該当するエントリであり、前記相対的な距離値は、現
    在エントリのインデックス値と前記左側ノードに該当す
    るエントリのインデックス値との差分値であることを特
    徴とする請求項3または4に記載のデコーディング方
    法。
  7. 【請求項7】 前記ステップ(c)において、前記アク
    セスされたエントリのノードが中間ノードであると判断
    される場合、前記アクセスされたエントリのインデック
    ス値、前記内部値の絶対値、及び前記コードワードの次
    のビット値の和値に基づき前記ルックアップテーブルの
    エントリにアクセスするステップをさらに含むことを特
    徴とする請求項3に記載のデコーディング方法。
  8. 【請求項8】 (e)前記ステップ(b)において、ア
    クセスされた前記エントリが端末ノードであると判断さ
    れる場合、前記ルックアップテーブルの内部値を前記符
    号化されたビットストリームの一部ビットよりなるコー
    ドワードのデコーディングされたコードワードとして出
    力することを特徴とする請求項1または2に記載のデコ
    ーディング方法。
  9. 【請求項9】 前記ステップ(c)は、(c1)前記計
    算されたインデックスを用い、前記インデックスに対応
    する前記ルックアップテーブルのエントリの内部値に基
    づき前記アクセスされたエントリが中間ノードに該当す
    るか、それとも端末ノードに該当するかを判断するステ
    ップをさらに含むことを特徴とする請求項3に記載のデ
    コーディング方法。
  10. 【請求項10】 前記ステップ(c)は、(c2)前記
    エントリのノードが端末ノードであると判断される場
    合、前記ルックアップテーブルの内部値を前記符号化さ
    れたビットストリームの所定の符号化されたコードワー
    ドのデコーディングされたコードワードとして出力する
    ことを特徴とする請求項9に記載のデコーディング方
    法。
  11. 【請求項11】 前記符号化されたビットストリーム
    は、MPEG規格、JPEG規格及びH.26x規格の
    うちのいずれか一つにより符号化されたことを特徴とす
    る請求項1に記載のデコーディング方法。
  12. 【請求項12】 前記ルックアップテーブルは、2進木
    から生成されたことを特徴とする請求項1に記載のデコ
    ーディング方法。
  13. 【請求項13】 符号化されたビットストリームを2進
    木検索によりデコーディングするためのデコーディング
    装置であって、 前記符号化されたビットストリームをデコーディングす
    るためのプロセッサーと、 前記プロセッサーに結合され、前記デコーディングと関
    わるルックアップテーブルが貯蔵されたメモリと、を備
    え、 前記ルックアップテーブルは前記2進木のノードに対応
    し、内部値を有するエントリを備え、前記エントリに該
    当する前記2進木のノードの種類は前記エントリと関わ
    って貯蔵された内部値に基づき決定されることを特徴と
    するデコーディング装置。
  14. 【請求項14】 前記エントリと関わって貯蔵された内
    部値は、前記エントリに該当するノードの種類によって
    符号を異にすることを特徴とする請求項13に記載のデ
    コーディング装置。
  15. 【請求項15】 前記エントリに該当するノードが中間
    ノードである場合、前記エントリの内部値は、現在エン
    トリに該当する中間ノードと次にアクセスするノードと
    の相対的な距離値であることを特徴とする請求項13ま
    たは14に記載のデコーディング装置。
  16. 【請求項16】 前記現在エントリの内部値は、次にア
    クセスするエントリは現在エントリに該当するノードの
    子ノードのうち左側ノードに該当するエントリであり、
    前記相対的な距離値は、現在エントリのインデックス値
    と前記左側ノードに該当するエントリのインデックス値
    との差分値であることを特徴とする請求項15に記載の
    デコーディング装置。
  17. 【請求項17】 前記エントリが端末ノードである場
    合、前記エントリの内部値は、前記ビットストリームの
    所定のコードワードに対するデコーディングされたコー
    ドワードであることを特徴とする請求項13または14
    に記載のデコーディング装置。
  18. 【請求項18】 前記符号化されたビットストリーム
    は、MPEG規格、JPEG及びH.26x規格のうち
    のいずれか一つにより符号化されたことを特徴とする請
    求項13に記載のデコーディング装置。
JP2003038864A 2002-02-28 2003-02-17 改善されたハフマンデコーディング方法及び装置 Expired - Fee Related JP3714935B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2002-0010981A KR100484137B1 (ko) 2002-02-28 2002-02-28 개선된 허프만 디코딩 방법 및 장치
KR2002-010981 2002-02-28

Publications (2)

Publication Number Publication Date
JP2003273748A true JP2003273748A (ja) 2003-09-26
JP3714935B2 JP3714935B2 (ja) 2005-11-09

Family

ID=36753915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003038864A Expired - Fee Related JP3714935B2 (ja) 2002-02-28 2003-02-17 改善されたハフマンデコーディング方法及び装置

Country Status (5)

Country Link
US (1) US6741191B2 (ja)
EP (1) EP1341314A3 (ja)
JP (1) JP3714935B2 (ja)
KR (1) KR100484137B1 (ja)
CN (1) CN1254921C (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7505904B2 (en) 2004-12-20 2009-03-17 Canon Kabushiki Kaisha Database construction apparatus and method
JPWO2017009996A1 (ja) * 2015-07-16 2017-10-19 三菱電機株式会社 情報処理装置、情報処理方法及びプログラム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100468742B1 (ko) * 2002-06-26 2005-01-29 삼성전자주식회사 이진 검색 기법을 이용한 jpeg 허프만 테이블 디코더및 그 방법
US7358870B2 (en) 2003-09-02 2008-04-15 Nokia Corporation Huffman coding and decoding based upon sectioning of a Huffman coding tree
US6839005B1 (en) * 2003-11-07 2005-01-04 Broadcom Corporation Low memory and MIPS efficient technique for decoding Huffman codes using multi-stage, multi-bits lookup at different levels
KR100959532B1 (ko) * 2003-12-18 2010-05-27 엘지전자 주식회사 Cavlc 복호 방법
US6975253B1 (en) * 2004-08-06 2005-12-13 Analog Devices, Inc. System and method for static Huffman decoding
US20060190251A1 (en) * 2005-02-24 2006-08-24 Johannes Sandvall Memory usage in a multiprocessor system
WO2007011116A1 (en) * 2005-07-20 2007-01-25 Humax Co., Ltd. Encoder and decoder
KR100840757B1 (ko) 2006-02-28 2008-06-23 노키아 코포레이션 허프만 부호화 및 복호화
CN101072034B (zh) * 2007-06-12 2010-06-02 华为技术有限公司 一种变长解码方法及其装置
TW201143306A (en) * 2010-05-19 2011-12-01 Hon Hai Prec Ind Co Ltd Method for storing information of nodes in a huffman tree and method for decoding data using an array of the huffman tree
CN102938685A (zh) * 2012-11-15 2013-02-20 大连理工大学 一种基于变长编码的无线传感器网络数据压缩方法
CN104283567B (zh) * 2013-07-02 2018-07-03 北京四维图新科技股份有限公司 一种名称数据的压缩、解压缩方法及设备
US9086871B2 (en) 2013-09-26 2015-07-21 International Business Machines Corporation Reordering the output of recirculated transactions within a pipeline
CN104717499B (zh) * 2015-03-31 2018-06-05 豪威科技(上海)有限公司 一种霍夫曼表的存储方法及用于jpeg的霍夫曼解码方法
CN107797541B (zh) * 2016-08-29 2020-11-10 河北百亚信息科技有限公司 基于智能家居环境中ZigBee固件升级的镜像文件轻便解压算法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292114B1 (en) * 1999-06-10 2001-09-18 Intel Corporation Efficient memory mapping of a huffman coded list suitable for bit-serial decoding
EP1069691A1 (en) * 1999-06-15 2001-01-17 STMicroelectronics S.r.l. Decoding method for a Huffman code
US6307489B1 (en) * 2000-03-15 2001-10-23 Robert Allen Freking Fast and small serial huffman decoder for decoding at an optimally high rate
US6636167B1 (en) * 2000-10-31 2003-10-21 Intel Corporation Method of generating Huffman code length information

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7505904B2 (en) 2004-12-20 2009-03-17 Canon Kabushiki Kaisha Database construction apparatus and method
JPWO2017009996A1 (ja) * 2015-07-16 2017-10-19 三菱電機株式会社 情報処理装置、情報処理方法及びプログラム

Also Published As

Publication number Publication date
EP1341314A3 (en) 2006-01-04
KR20030071327A (ko) 2003-09-03
US20030174076A1 (en) 2003-09-18
CN1441555A (zh) 2003-09-10
CN1254921C (zh) 2006-05-03
JP3714935B2 (ja) 2005-11-09
US6741191B2 (en) 2004-05-25
KR100484137B1 (ko) 2005-04-18
EP1341314A2 (en) 2003-09-03

Similar Documents

Publication Publication Date Title
JP2003273748A (ja) 改善されたハフマンデコーディング方法及び装置
US10666287B2 (en) Coding method, decoding method, coder, and decoder
WO2019153700A1 (zh) 编解码方法、装置及编解码设备
KR100527891B1 (ko) 허프만 디코딩을 수행하는 방법
JP3778087B2 (ja) データ符号化装置及びデータ復号装置
JPH07283739A (ja) 短ブロックのデータを圧縮、伸長するための方法、及び装置
CN110019865B (zh) 海量图片处理方法、装置、电子设备及存储介质
US20130019029A1 (en) Lossless compression of a predictive data stream having mixed data types
US9665590B2 (en) Bitmap compression for fast searches and updates
KR20220054651A (ko) 다중 심볼 디코더
US7348901B2 (en) Method and system for decoding variable length encoded signals, computer program product therefor
US7205915B2 (en) Method of decoding variable length prefix codes
Cannane et al. General‐purpose compression for efficient retrieval
US20120319875A1 (en) Method for storing node information of huffman tree and corresponding decoding method
Mansour Efficient Huffman decoding with table lookup
CN104679775A (zh) 一种基于Huffman表的数据处理方法
CN116529705A (zh) 利用计算机存储器中的值相似性的系统、方法和装置
KR20230040702A (ko) 극 부호를 이용하는 복호화를 위한 복호 위치 제어 정보 생성 방법 및 장치
KR20030016859A (ko) 허프만 부호의 복호화 방법
CN107094022B (zh) 一种用于VLSI设计的Huffman编码系统的实现方法
JP3565147B2 (ja) 復号装置
JPH07303045A (ja) ハフマン復号化装置
Shieh et al. A high-throughput memory-based VLC decoder with codeword boundary prediction
RU2321169C2 (ru) Способ декодирования префиксных кодов переменной длины
KR20050037307A (ko) N-트리 검색에 기초한 허프만 디코딩 방법 및 장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050701

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: 20050726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050823

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080902

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090902

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100902

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110902

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120902

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130902

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees