JP5872513B2 - 符号化装置、復号化装置およびデータ処理システム - Google Patents

符号化装置、復号化装置およびデータ処理システム Download PDF

Info

Publication number
JP5872513B2
JP5872513B2 JP2013192070A JP2013192070A JP5872513B2 JP 5872513 B2 JP5872513 B2 JP 5872513B2 JP 2013192070 A JP2013192070 A JP 2013192070A JP 2013192070 A JP2013192070 A JP 2013192070A JP 5872513 B2 JP5872513 B2 JP 5872513B2
Authority
JP
Japan
Prior art keywords
code
variable length
length
variable
codes
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
JP2013192070A
Other languages
English (en)
Other versions
JP2015061123A (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 JP2013192070A priority Critical patent/JP5872513B2/ja
Priority to US14/172,730 priority patent/US8941515B1/en
Publication of JP2015061123A publication Critical patent/JP2015061123A/ja
Application granted granted Critical
Publication of JP5872513B2 publication Critical patent/JP5872513B2/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
    • 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/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • H03M7/6023Parallelization
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明の実施形態は、符号化装置、復号化装置およびデータ処理システムに関する。
入力データを可変長符号化して得られた符号化ストリームを復号化する際、1サイクルあたり2つ以上の可変長符号を切り出すことで処理時間を短縮できる。そのために、符号化ストリームに含まれる複数の可変長符号をパッキングして並列処理することが行われている。しかしながら、複数の可変長符号をパッキングすると、その符号長のパターン数が多くなる。
符号長のパターン数が多くなると、可変長符号の符号長導出に使用されるテーブルのエントリ数が多くなり、処理の遅延が増大するおそれがある。
特開2010−50697号公報
簡易に符号長を切り出すことができる符号化装置、復号化装置およびデータ処理システムを提供する。
実施形態によれば、入力データを可変長符号化して符号化ストリームを生成する符号化装置と、前記符号化ストリームを復号化して出力データを生成する復号化装置と、を備えるデータ処理システムが提供される。前記符号化装置は、入力データを可変長符号化して、第1の可変長符号を生成する可変長符号化器と、n個の前記第1の可変長符号を第2の可変長符号に変換する符号変換器と、記第2の可変長符号をバッファして、前記符号化ストリームを生成するバッファと、を有する。前記第1の可変長符号の符号長はmパターンあり、前記第2の可変長符号の少なくとも一部をインデックスとして、前記第2の可変長符号の符号長を導出可能であり、前記インデックスの数は、mより少ない。前記復号化装置は、前記第2の可変長符号の一部をインデックスとして、前記第2の可変長符号の符号長を導出する符号長導出部と、前記導出された符号長に基づいて、前記符号化ストリームから前記第2の可変長符号を切り出す切り出し器と、前記第2の可変長符号を、前記n個の第1の可変長符号に変換する符号逆変換部と、前記第1の可変長符号を復号化して前記出力データを生成する可変長復号化部と、を有する。
第1の実施形態に係るデータ処理システムの概略構成を示すブロック図。 符号化装置1の処理動作の一例を示すフローチャート。 可変長符号化器11の処理の一例を説明する図。 符号変換器12の内部構成の一例を示すブロック図。 変換テーブル12aの一例を示す図。 図5の変換テーブル12aを生成する手順の一例を示す図。 復号化装置2の処理動作の一例を示す図。 プレフィックスPre−Tと符号長との関係を示す図。 変換テーブル12aを生成する手順の一例を示す図。 図9の手順により生成される変換テーブル12aを示す図。 図9の手順により生成される変換テーブル12aを示す図。 図9の手順により生成される変換テーブル12aを示す図。 図9の手順により生成される変換テーブル12aを示す図。 プレフィックスPre−Tと符号長との関係を示す図。 可変長符号化器11の処理の一例を説明する図。 プレフィックスPre0〜Pre2の組み合わせを示す図。 2分木を用いて変換テーブル12aを生成する手順の一例を示すフローチャート。 図17の手順に基づく2分木を示す図。 図17の手順で生成される変換テーブル12aを示す図。 符号VLC−Tと符号長との関係を示す図。
以下、実施形態について、図面を参照しながら具体的に説明する。
(第1の実施形態)
図1は、第1の実施形態に係るデータ処理システムの概略構成を示すブロック図である。データ処理システム100は、符号化装置1と、復号化装置2とを備えている。このデータ処理システム100は、符号化装置1により入力データを符号化して符号化ストリームを生成し、復号化装置2により符号化ストリームを復号化して出力データを得るものである。
符号化装置1について説明する。符号化装置1は、可変長符号化器11と、符号変換器12と、パッキングバッファ(出力部)13とを有する。可変長符号化器11は入力データをゴロムライス符号化してゴロムライス符号(第1の可変長符号)VLCを生成する。符号変換器12はn個(nは2以上の整数)のゴロムライス符号VLCを1つの符号(第2の可変長符号)VLC−Tに変換する。パッキングバッファ13は符号VLC−Tをバッファし、所定ビット長に達すると符号化ストリームとして出力する。
図2は、符号化装置1の処理動作の一例を示すフローチャートである。まず、可変長符号化器11は入力データをゴロムライス符号化し、ゴロムライス符号VLCを生成する(S1)。
図3は、可変長符号化器11の処理の一例を説明する図であり、可変長符号化器11に入力される入力データの値と、可変長符号化器11から出力される符号VLCの値との関係を示している。符号VLCは、可変長のプレフィックスPreと、固定長のサフィックスSufとから構成され、最下位ビットがサフィックスSufである。なお、図3は、入力データが0〜9の10値を採り得るものとする。この場合、符号VLCが採り得る符号長は2〜6の5パターンである。
入力データが0および1の場合、プレフィックスPreは1ビットの“1”である。また、入力データが2以上の場合、プレフィックスPreは、ceil{(入力データ−1)/2}ビットの“0”と、1つの“1”とを連結した値である(ceil{x}は天井関数であり、{x}はx以上の最小の整数を表す)。サフィクスSufは1ビットの値であり、入力データが偶数であれば“0”、奇数であれば“1”である。入力データが2である場合、例えばプレフィックスPre=“01”およびサフィックスSuf=“0”となり、VLC=“010”となる。
次に、符号変換器12は3つの符号VLCをパッキングして1つの符号VLC−Tに変換する(S2)。複数の符号をパッキングすることで、復号時の処理を高速化できる。以下では、3つの符号VLCをVLC0,VLC1,VLC2とし、そのそれぞれのプレフィックスをPre0〜Pre2、サフィックスをSuf0〜Suf2とする。そして、パッキングバッファ13は生成された符号VLC−Tをバッファし(S3)、符号化ストリームとして出力する。
図4は、符号変換器12の内部構成の一例を示すブロック図である。符号化変換器12は、変換テーブル12aと、連結器12bと、テーブル生成器12cとを有する。
変換テーブル12aは、符号VLC0〜VLC2のプレフィックスPre0〜Pre2から、符号VLC−TのプレフィックスPre−TおよびサフィックスSuf−Tを生成する。プレフィックスPre−TおよびサフィックスSuf−Tは可変長である。
連結器12bは、生成されたプレフィックスPre−TおよびサフィックスSuf−Tと、サフィックスSuf0〜Suf2とを連結して、符号VLC−Tを生成する。すなわち、符号VLC−Tは、可変長のプレフィックスPre−TおよびサフィックスSuf−Tと、固定長のサフィックスSuf0〜Suf2とから構成される。よって、符号VLC−Tの符号長は、プレフィックスPre−Tのビット長およびサフィックスSuf−Tのビット長に、サフィックスSuf0〜Suf2の3ビットを加えたものである。
図5は、変換テーブル12aの一例を示す図である。変換テーブル12aは、プレフィックスPre0〜Pre2から、プレフィックスPre−TおよびサフィックスSuf−Tを特定する。このような、プレフィックスPre0〜Pre2と、プレフィックスPre−TおよびサフィックスSuf−Tとの関係は、前もってテーブル生成器12cが生成する。なお、図5には「グループ」および「VLC−Tの符号長」も合わせて描いている。
一例として、(VLC0,VLC1,VLC2)=(“010”,“011”,“11”)の場合、プレフィックスPre0〜Pre2を連結すると“01011”であるから、Pre−T=“001”,Suf−T=“100”となる。結果として、VLC−T=“001100011”となる。
図6は、図5の変換テーブル12aを生成する手順の一例を示すフローチャートである。まず、3つの符号VLC0〜VLC2で発生するプレフィクスのすべての組み合わせ(Pre0&Pre1&Pre2)を列挙する(S11)。図3の例では、プレフィックスは5パターンであるから、符号VLC0〜VLC2で5=125種類のプレフィクスが発生する。
続いて、発生する3つのプレフィックスの組み合わせ(Pre0&Pre1&Pre2)の総ビット長が等しいもののをグループ化し、グループD0〜Dmを生成する(S12)。なお、グループD0〜Dmの順に上記総ビット数が長くなるものとする。図3の例では、プレフィクスの組み合わせ(Pre0&Pre1&Pre2)の総ビット長は、最短で3ビット、最長で15ビットであり、13個のグループD0〜D12が生成される。そして、kの初期値を0とし(S13)、テーブル生成器12cはグループDkを順に選択し(S14)する。
グループDkに対して以下のようにプレフィックスPre−TおよびサフィックスSuf−Tを割り当てる。グループDk−1のプレフィックスの最上位ビットに“0”を連結し、グループDkのプレフィックスPre−Tとする(S15)。そして、グループDkに含まれるプレフィックスの組み合わせに対して、ビット長ceil{log2(|Dk|)}のサフィックスSuf−Tを割り当てる(S16)。ここで|Dk|はグループDkに含まれる組み合わせの数である。ただし、グループD0のPre−Tは“1”とする(S15)。また、グループD0にはサフィックスは割り当てられない(S16)。
例えば、グループD1のプレフィックスPre−Tは、グループD0のプレフィックス“1”の最上位ビットに“0”を連結してPre−T=“01”とする(S15)。また、グループD1に含まれる組み合わせの数|D1|=4に対して、サフィックスSuf−Tのビット長はceil{log2(|D1|)}=2ビットである。そして、テーブル生成器12cは、グループD1におけるプリフィックスの組み合わせ(Pre0&Pre1&Pre2)=“1101”,“1011”,“0111”に対して、サフィックスSuf−Tをそれぞれ“00”,“01”,“10”を割り当てる(S16)。
以下、kを1ずつインクリメントしながら全てのグループD0〜Dmに対して、プレフィックスPre−TおよびサフィックスSuf−Tを割り当てる(S17,S18)。これにより、各グループD0〜Dmについて、互いにビット長が異なる固有のプレフィックスPre−Tが割り当てられる。
以上のようにして、図5に示す変換テーブル12aが生成される。図5において着目すべき点は、プレフィックスPre−Tの値と、符号VLC−Tの符号長とが1対1に対応している点である。例えば、プレフィックスPre−Tが“1”であれば、符号VLC−Tの符号長は4ビットである。また、プレフィックスPre−Tが“01”であれば、符号VLC−Tの符号長は7ビットである。これにより、符号VLC−TのプレフィックスPre−Tをインデックスとして、当該符号VLC−Tの符号長を導出できる。
続いて、復号化装置2について説明する。復号化装置2は、符号化ストリームバッファ21と、符号長導出器22と、可変長符号切り出し器23と、符号逆変換器24と可変長復号化器25とを有する。
符号化ストリームバッファ21は、符号化ストリームをバッファするとともに、符号化ストリームを可変長符号の符号長分シフトする。符号長導出器22は符号化ストリームに含まれる各符号VLC−Tの符号長を導出する。この符号長は符号化ストリームバッファ21および可変長符号切り出し器23に供給される。
可変長符号切り出し器23は、供給された符号長に基づいて、符号化ストリームから各符号VLC−Tを切り出す。符号逆変換器24は、符号VLC−Tに対して、符号変換器12とは逆の処理を行ってゴロムライス符号VLC0〜VLC2を生成する。可変長復号化器25はゴロムライス符号VLCをゴロムライス復号化して出力データを生成する。
図7は、復号化装置2の処理の一例を示すフローチャートである。まず、符号化ストリームバッファ21は符号化ストリームをバッファする(S21)。続いて、符号長導出器22は、符号化ストリームにおけるプレフィックスPre−Tを参照して、各符号VLC−Tの符号長を導出する(S22)。なお、図5から分かるように、符号VLC−Tにおいて、初めて“1”が現れるまでがプレフィックスPre−Tである。図8は、プレフィックスPre−Tと符号長との関係を示す図である。プレフィックスPre−Tの値と、符号VLC−Tの符号長とが1対1に対応している。よって、符号長導出器22は、符号化ストリームにおいてプレフィックスPre−Tを検出でき、プレフィックスPre−Tをインデックスとして、符号VLC−Tの符号長を一意に導出できる。符号長が導出されると、可変長符号切り出し器23は符号化ストリームから符号VLC−Tを切り出す(S23)。
本実施形態における符号長を導出するためのテーブルのエントリ数は13個である。このエントリ数はグループ数と対応している。仮に、符号化時に符号変換器12による変換処理を行わない場合、符号長が5パターンある3つの符号VLCのプレフィックスの種類は5=125個である。すなわち、符号長の導出に、エントリ数が125個であるテーブルが必要となってしまう。より一般的には、符号VLCの符号長がmパターンあり、n個の符号VLCから1つの符号VLC−Tを生成する場合、mこのエントリが必要となってしまう。
これに対し本実施形態では、符号VLC0〜VLC2を、これらのプレフィックスPre0〜Pre2の組み合わせの総ビット長に応じたプレフィックスPre−Tを有する符号VLC−Tに変換する。プレフィックスPre0〜Pre2の組み合わせの総ビット長は3〜15の13通りであるため、テーブルのエントリ数を13個に減らすことができる。すなわち、本実施形態では、一般的なエントリ数mより少なくできる。
続いて、符号逆変換器24は、符号VLC−Tに対して、符号変換器12とは逆の処理を行ってゴロムライス符号VLC0〜VLC2を生成する(S24)。具体的には、まず符号逆変換器24は、変換テーブルを参照して、プレフィックスPre−TからサフィックスSuf−Tを特定する。例えば、プレフィックスPre−T=“001”であれば、サフィックスSuf−Tのビット長は3ビットであり、サフィックスSuf−Tの値を特定できる。なお、参照する変換テーブルは、予め変換テーブル12aと同様のものを符号逆変換器24で持っているか、符号変換器12と同様に、テーブル生成器を用いて生成する。
さらに、符号化変換器24は、プレフィックスPre−TおよびサフィックスSuf−Tから、VLC0〜VLC2をそれぞれ構成するプレフィックスPre0〜Pre2を特定する。例えば、プレフィックスPre−T=“001”かつサフィックスSuf−T=“001”であれば、(Pre0,Pre1,Pre2)=(“1”,“001”,“1”)である。
そして、符号逆変換器24は、符号VLC−TのサフィックスSuf−Tより後に付されているビットから、符号VLC0〜VLC2をそれぞれ構成するサフィックスSuf0〜Suf2を特定する。
以上により、符号逆変換器24は符号VLC−Tから3つの符号VLC0〜VLC2を得ることができる。そして、可変長復号化器25はゴロムライス符号VLC0〜VLC2のそれぞれをゴロムライス復号化して出力データを生成する(S25)。
第1の実施形態では、符号VLC0〜VLC2を、これらのプレフィックス長の総和に応じたプレフィックスPre−Tを有する符号VLC−Tに変換する。そのため、復号化の際にエントリ数の小さなテーブルで簡易に符号長を導出できる。
(第2の実施形態)
第2の実施形態では、変換テーブル12aが第1の実施形態とは異なる。以下、第1の実施形態との相違点を中心に説明する。
本実施形態におけるデータ処理システムの概略構成は、図1および図4に示すものとほぼ同様である。そして、テーブル生成器12cによる変換テーブル12aの生成手法が第1の実施形態とは異なっている。
図9は、変換テーブル12aを生成する手順の一例を示す図である。また、図10〜図13は、図9の手順により生成される変換テーブル12aを示す図である。図9のS31〜S33は、図6のS11〜S13と同様である。続いて、テーブル生成器12cはプレフィックスの組み合わせの総ビット長が連続する2つのグループDk,Dk+1を選択する(S34)。これら2つのグループDk,Dk+1ごとに、以下のようにプレフィックスPre−TおよびサフィックスSuf−Tを割り当てる。
プレフィックスPre−Tは第1の実施形態と同様である(S35)。そして、テーブル生成器12cは下記(1)式を満たすか否かを判定する(S36)。
Lp(a)≧ceil{log2(|Dk| + |Dk+1|)}, a∈Dk ・・・(1)
(1)式の左辺Lp(a)はグループDkにおけるプレフィックスの組み合わせの総ビット長である。例えば、k=0すなわちグループD0,D1が選択された場合、Lp(a)=3である。
(1)式を満たす場合、テーブル生成器12cはサフィックスSuf−Tのビット長をceil{log2(|Dk|+|Dk+1|)}ビットとする(S37)。一方、(1)式を満たさない場合、テーブル生成器12cはDk,Dk+1に対するサフィックスSuf−Tのビット長をceil{log2(|Dk|)}、ceil{log2(|Dk+1|)}ビットとする(S38)。そして、テーブル生成器12cはグループDk,Dk+1に含まれる各組み合わせに固有の値を割り当てる。
式(1)を満たさない場合、以下の式(1’)が成り立つ。
Lp(a)<ceil{log2(|Dk| + |Dk+1|)}, a∈Dk ・・・(1’)
式(1’)の右辺が集合Dk,Dk+1に対応するSuf−Tのビット長となるが、これがLp(a)より大きいので、少なくとも集合Dkに関しては符号変換の結果圧縮率の悪化が発生している。悪化は、Pre−T+Suf−T−Lp(a)である。よって、このような場合にDkのサフィックス長を式(1)ではなくceil{log2(|Dk|)}とすることによってDkに対するSuf−Tのビット削減を試みる。Dk+1に関してはより悪化する可能性があるが、集合の選択順を考慮すると元の符号長はDkの方がDk+1より短く、可変長符号の前提として短い符号の方が発生確率が高いのでDkに対するSuf−Tを優先的に削減する。
以上の処理を全てのグループについて行う(S39,S40)。
本実施形態では、2つずつのグループにつき1つの固有のプレフィックスPre−Tが割り当てられる。また、プレフィックスPre−Tが符号VLC−Tの符号長と1対1に対応している。
グループD0については、符号VLC0〜VLC2の総符号長が6であるのに対し、符号VLC−Tの符号長は6である。符号VLC−Tに変換することによる圧縮率の低下はない。グループD1についても符号VLC−Tに変換することによる圧縮率の低下はない。
グループD2については、符号VLC0〜VLC2の総符号長が8であるのに対し、符号VLC−Tの符号長は9である。符号VLC−Tに変換することによる圧縮率の低下はわずか1ビットである。他のグループについても、符号VLC−Tに変換することによる圧縮率の低下は最大でも2ビットである。
このように、本実施形態の手法によれば、第1の実施形態に比べて圧縮率の低下を抑えることができる。図14は、プレフィックスPre−Tと符号長との関係を示す図である。本実施形態では、エントリ数を7つまで減らすことができ、プレフィックスPre−Tをインデックスとして、符号VLC−Tの符号長も導出できる。
第2の実施形態では、2つの連続するグループにつき1つのプリフィックスPre−Tを割り当て、(1)式に基づいてサフィックスSuf−Tのビット長を設定する。そのため、符号VLC0〜VLC2を1つの符号VLC−Tに変換する際の圧縮率低下を抑えることができ、かつ、エントリ数を減らすことができる。
(第3の実施形態)
第3の実施形態では、2分木を用いて変換テーブル12aを生成するものである。以下、第1および第2の実施形態との相違点を中心に説明する。
説明を簡略化するために、本実施形態では、入力データが0〜3の4値を採り得るものとする。この場合、図15は、入力データが0〜3の場合の可変長符号化器11の入出力関係を示す図である。図16は、符号VLC0〜VLC2のプレフィックスPre0〜Pre2の組み合わせを示す図である。組み合わせの総ビット長は3〜6ビットの4種類であり、これらをそれぞれグループD0〜D3とする。
図17は、2分木を用いて変換テーブル12aを生成する手順の一例を示すフローチャートである。また、図18は、図17の手順に基づく2分木を示す図である。さらに、図19は、図17の手順で生成される変換テーブル12aを示す図である。なお、本実施形態では、符号変換器12が生成する符号VLC−Tは、サフィックスSuf−Tを含まなくてもよい。
図17のS41〜S43は、図6のS11〜S13と同様である。そして、テーブル生成器12cはグループDkについて以下のS44〜S48の処理を行う。
まず、テーブル生成器12cは組み合わせのそれぞれに対応する葉ノードを追加する(S44)。各葉ノードは第1ラベルおよび第2ラベルを含む。第1ラベルはグループDkにおけるプレフィックスの総ビット長である。第2ラベルはグループDkのサフィックスの総ビット長すなわち3である。例えばグループD1には3つの組み合わせ“1101”,”1011”および“0111”が含まれるため、図18に示す3つの葉ノードL1〜L3が追加される。そして、第1ラベルは4であり、第2ラベルは3である。
続いて、テーブル生成器12cは、親ノードを持たない葉ノードが2つ未満になるまで(S45)、任意の2つの葉ノードを子ノードとする親ノードを、内部ノードとして追加する(S46)。このとき、内部ノードの第1ラベルおよび第2ラベルは、子ノードの第1ラベルおよび第2ラベルをそれぞれ引き継ぐ。例えばグループD1では、初め、親ノードを持たない葉ノードはL1〜L3の3つである。そこで、例えば葉ノードL1,L2を子ノードとする親ノードが、図18に示す内部ノードI1として追加される。これにより、親ノードを持たない葉ノードはL3のみとなる。
続いて、テーブル生成器12cは、親ノードを持たないノード(単に「ノード」といった場合、内部ノードでも葉ノードでもよい。以下同じ)が2つ未満になるまで(S47)、親ノードを持たない2つのノードを選択し、これら2つのノードを子ノードとする親ノードを、内部ノードとしてさらに追加する(S48)。親ノードを持たない内部ノードおよび葉ノードが複数ある場合には、葉ノードが優先して選択される。このとき、内部ノードの第1ラベルおよび第2ラベルは、子ノードの第1ラベルおよび第2ラベルをそれぞれ引き継ぐ。グループD1の例では、初め、親ノードを持たないノードは、内部ノードI1および葉ノードL3の2つである。そこで、内部ノードI1および葉ノードL3を子ノードとする親ノードが、図18の内部ノードI2として追加される。これにより、親ノードを持たないノードは内部ノードI2のみとなる。
以上を全てのグループD0〜Dmについて行う(S49,S50)。続いて、テーブル生成器12cはグループを跨いで以下のS51〜54の処理を行う。
テーブル生成器12cは、親ノードを持たないノードが1つになるまで(S51)、親ノードを持たない2つのノードを選択し、これら2つのノードを子ノードとする親ノードを、内部ノードとして追加する(S52)。選択の基準として、第一ラベルの値が大きな順に2つのノードを選択する。第1ラベルの値が最大のノードが複数存在する場合には、それらの中から第2ラベルの値が大きい順に2つのノードを選択する。内部ノードの第1ラベルおよび第2ラベルはそれぞれ、子ノードの第1ラベルおよび第2ラベルの平均値とする。最後に生成された内部ノードが根ノードとなり、2分木が完成する。例えば、図18において、グループD2についての内部ノードI3およびグループD3についての葉ノードL4を子ノードとする親ノードが、内部ノードI4として追加される。続いて、内部ノードI2,I4を子ノードとする親ノードが、内部ノードI5として追加される。さらに、グループD0についての葉ノードL5および内部ノードI5を子ノードとする親ノードが、内部ノードI6として追加される。この時点で、親ノードを持たないノードが内部ノードI6のみとなる。よって、内部ノードI6が根ノードRとなる。
根ノードRが生成されると、テーブル生成器12cは各枝に“0”または“1”を割り振る(S53)。例えば、根ノードRから葉ノードL5への枝には“1”が割り振られ、同内部ノードI5への枝には“0”が割り振られる。その他の枝にも “0”または“1”が割り振られる。なお、どちらの枝に“0”および“1”を割り振るのかは任意であり、図18に限定されるものではない。
そして、テーブル生成器12cは、2分木を根ノードから辿り、葉ノードに対応する各プレフィックスの組み合わせのそれぞれに符号VLC−Tを設定する(S54)。例えば、葉ノードL5(プレフィックスの組み合わせ“111”)には“1”が割り振られる。また、葉ノードL1(プレフィックスの組み合わせ“1101”)には“0111”が割り振られる。
以上のようにして、図19に示す変換テーブル12aが生成される。なお、符号VLC−Tは、プレフィックスPre−Tに、サフィックスSuf0〜Suf2を連結したものである。よって、符号VLC−Tの符号長はプレフィックスPre−Tのビット長に、サフィックスSuf0〜Suf2の3ビットを加えたものである。図19から分かるように、プリフィックスPre0〜Pre2の組み合わせの総ビット数より、変換後のプリフィックスPre−Tのビット数が多くなることはなく、変換による圧縮率の悪化は発生していない。
図20は、符号VLC−Tと符号長との関係を示す図である。本実施形態では、符号長導出器22は、プレフィックスPre−Tまたはその先頭の一部のビットに基づいて、符号長を導出する。例えば、プレフィックスPre−Tが“0111”であっても“0110”であっても、符号VLC−Tの符号長は7ビットである。よって、符号VLC−Tの先頭3ビットが“011”であれば(すなわち、4ビット目が“0”であっても“1”であっても)、符号VLC−Tの符号長は7ビットと、一意に定まる。
仮に符号変換器12による変換を行わないと、符号長導出器22では、エントリ数が8個のテーブルが必要になる。これに対し本実施形態では、図20に示すようにエントリ数を6個に減らすことができる。
このように、第3の実施形態では、2分木を用いて変換テーブル12aを生成する。そのため、変換による圧縮率の悪化を抑えつつ、符号長導出に必要なテーブルのエントリ数を削減できる。
上述した実施形態で説明したデータ処理システムの少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、データ処理システムの少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
また、データ処理システムの少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1 符号化装置
11 可変長符号化器
12 符号変換器
12a 変換テーブル
12b 連結器
12c テーブル生成器
13 パッキングバッファ
2 復号化装置
21 符号化ストリームバッファ
22 符号長導出器
23 可変長符号切り出し器
24 符号逆変換器
25 可変長復号化器

Claims (6)

  1. 入力データを可変長符号化して符号化ストリームを生成する符号化装置と、
    前記符号化ストリームを復号化して出力データを生成する復号化装置と、を備え、
    前記符号化装置は、
    入力データを可変長符号化して、第1の可変長符号を生成する可変長符号化器と、
    n個の前記第1の可変長符号を第2の可変長符号に変換する符号変換器と、
    前記第2の可変長符号をバッファして、前記符号化ストリームを生成するバッファと、を有し、
    前記第1の可変長符号の符号長はmパターンあり、
    前記第2の可変長符号の少なくとも一部をインデックスとして、前記第2の可変長符号の符号長を導出可能であり、
    前記インデックスの数は、mより少なく、
    前記復号化装置は、
    前記第2の可変長符号の一部をインデックスとして、前記第2の可変長符号の符号長を導出する符号長導出部と、
    前記導出された符号長に基づいて、前記符号化ストリームから前記第2の可変長符号を切り出す切り出し器と、
    前記第2の可変長符号を、前記n個の第1の可変長符号に変換する符号逆変換部と、
    前記第1の可変長符号を復号化して前記出力データを生成する可変長復号化部と、を有する、データ処理システム。
  2. 前記第1の可変長符号は、可変長である第1のプレフィックスを含み、
    前記第2の可変長符号は、前記n個の第1の可変長符号におけるn個の第1のプレフィックスに基づく第2のプレフィックスを含む、請求項1に記載のデータ処理システム。
  3. 前記第2の可変長符号は、前記第2のプレフィックスと、可変長の第2のサフィックスとを含み、
    前記符号変換器は、前記n個の第1の可変長符号におけるn個の第1のプレフィックスを、前記第2のプレフィックスおよび前記第2のサフィックスに変換する変換テーブルを有する、請求項2に記載のデータ処理システム。
  4. 前記符号変換器は、前記変換テーブルを生成するテーブル生成器を有し、
    このテーブル生成器は、
    前記n個の第1の可変長符号で発生する前記第1のプレフィックスのすべての組み合わせを列挙し、
    その組み合わせの総ビット長が等しいものをグループ化してグループを生成し、
    前記グループごとに、互いに異なる前記第2のプレフィックスを割り当て、
    前記グループごとに、前記第2のサフィックスのビット長をceil{log2(|Dk|)}(ここで、ceilは天井関数、Dkは当該グループに属する前記組み合わせの数)ビットとし、
    前記グループに属する組み合わせのそれぞれに、互いに異なる前記第2のサフィックスを割り当てて、前記変換テーブルを生成する、請求項3に記載のデータ処理システム。
  5. 入力データを可変長符号化して、第1の可変長符号を生成する可変長符号化器と、
    n個の前記第1の可変長符号を第2の可変長符号に変換する符号変換器と、
    前記第2の可変長符号から符号化ストリームを生成する出力部と、を備え、
    前記第1の可変長符号の符号長はmパターンあり、
    前記第2の可変長符号の少なくとも一部をインデックスとして、前記第2の可変長符号の符号長を導出可能であり、
    前記インデックスの数は、mより少ない、符号化装置。
  6. 請求項5に記載の符号化装置により生成された符号化ストリームを復号化する復号化装置であって、
    前記第2の可変長符号の一部をインデックスとして、前記第2の可変長符号の符号長を導出する符号長導出器と、
    前記導出された符号長に基づいて、前記符号化ストリームから前記第2の可変長符号を切り出す可変長符号切り出し器と、
    前記第2の可変長符号を、前記n個の第1の可変長符号に変換する符号逆変換器と、
    前記第1の可変長符号を復号化して出力データを生成する可変長復号化器と、を備える、復号化装置。
JP2013192070A 2013-09-17 2013-09-17 符号化装置、復号化装置およびデータ処理システム Expired - Fee Related JP5872513B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013192070A JP5872513B2 (ja) 2013-09-17 2013-09-17 符号化装置、復号化装置およびデータ処理システム
US14/172,730 US8941515B1 (en) 2013-09-17 2014-02-04 Encoder, decoder and data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013192070A JP5872513B2 (ja) 2013-09-17 2013-09-17 符号化装置、復号化装置およびデータ処理システム

Publications (2)

Publication Number Publication Date
JP2015061123A JP2015061123A (ja) 2015-03-30
JP5872513B2 true JP5872513B2 (ja) 2016-03-01

Family

ID=52350704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013192070A Expired - Fee Related JP5872513B2 (ja) 2013-09-17 2013-09-17 符号化装置、復号化装置およびデータ処理システム

Country Status (2)

Country Link
US (1) US8941515B1 (ja)
JP (1) JP5872513B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11196594B2 (en) 2019-02-28 2021-12-07 Nokia Solutions And Networks Oy Probabilistic signal shaping using multiple codebooks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6180929A (ja) * 1984-09-27 1986-04-24 Mitsubishi Electric Corp 情報源符号化伝送装置
JPH0661870A (ja) * 1992-08-12 1994-03-04 Mitsubishi Electric Corp 可変長符号復号器
JPH08316847A (ja) * 1995-05-23 1996-11-29 Fuji Xerox Co Ltd 可変長符号の復号装置
JP2001016112A (ja) * 1999-06-30 2001-01-19 Sharp Corp 符号長検出装置および可変長符号復号装置
JP4181887B2 (ja) * 2002-05-29 2008-11-19 キヤノン株式会社 可変長符号化装置、及びその方法
JP4502384B2 (ja) 2004-11-25 2010-07-14 キヤノン株式会社 可変長符号復号化装置及び可変長符号復号化方法
US7924179B2 (en) 2006-03-23 2011-04-12 Nec Corporation Variable-length code determining device and variable-length code decoding method
US7573407B2 (en) * 2006-11-14 2009-08-11 Qualcomm Incorporated Memory efficient adaptive block coding
JP2010050697A (ja) 2008-08-21 2010-03-04 Toshiba Corp 画像圧縮伸張装置および画像圧縮伸張方法
EP2164176A1 (en) * 2008-09-12 2010-03-17 Thomson Licensing Method for lossless compressing prefix-suffix-codes, method for decompressing a bit sequence representing integers or symbols encoded in compressed prefix-suffix-codes and storage medium or signal carrying compressed prefix-suffix-codes

Also Published As

Publication number Publication date
US8941515B1 (en) 2015-01-27
JP2015061123A (ja) 2015-03-30

Similar Documents

Publication Publication Date Title
KR101171697B1 (ko) 정수-값 데이터의 스트림을 압축하는 시스템 및 방법
US8311124B2 (en) Decoding method and apparatus
CA2668222A1 (en) Memory efficient coding of variable length codes
JPH06224777A (ja) 符号化方法、符号化装置、復号方法、復号器、データ圧縮装置、ビットストリーム生成方法及び遷移マシン生成方法
JP2006339990A (ja) データ符号化装置、データ符号化方法、プログラム
Bertoni et al. Sakura: a flexible coding for tree hashing
KR20030040567A (ko) 허프만 디코딩을 수행하는 방법
JPWO2019130475A1 (ja) 通信路分極を用いた誤り訂正符号化方法および装置、復号方法および装置
JP2007043595A (ja) 可変長符号復号化方法および装置ならびにデータ伸長装置
US7898444B2 (en) Decoding method
JP5872513B2 (ja) 符号化装置、復号化装置およびデータ処理システム
CN106537914B (zh) 通过限制的进位运算来执行算术编译的方法和设备
US5648775A (en) High speed variable length code decoding apparatus
US8018359B2 (en) Conversion of bit lengths into codes
JPH09130266A (ja) 高速可変長コード復号化装置及び高速可変長コード復号化方法
JP5413161B2 (ja) テーブル装置、符号化装置、復号装置および符号化/復号装置
US9160361B2 (en) Compressed data transceiver apparatus, data compressor device, compressed data receiver device and data compression method
WO2010133033A1 (zh) 线路编码的方法及装置
JPH08265165A (ja) 高速可変長符号復号化装置
KR102296153B1 (ko) 전용 산술 인코딩 명령
JP3389389B2 (ja) 可変長コード復号化装置
KR101270633B1 (ko) 복수 호프만 테이블을 적용하여 고속 처리가 가능한 멀티미디어용 호프만 디코딩 방법 및 장치
US11134249B2 (en) Binary arithmetic decoder and binary arithmetic decoding device
JP5857978B2 (ja) 符号化装置、復号装置、符号化・復号システム、及びプログラム
JP2010258927A (ja) 符号データ処理装置、方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150814

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151209

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160113

R151 Written notification of patent or utility model registration

Ref document number: 5872513

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees