JP2014146972A - 符号化装置、復号装置、符号化・復号システム、及びプログラム - Google Patents

符号化装置、復号装置、符号化・復号システム、及びプログラム Download PDF

Info

Publication number
JP2014146972A
JP2014146972A JP2013014408A JP2013014408A JP2014146972A JP 2014146972 A JP2014146972 A JP 2014146972A JP 2013014408 A JP2013014408 A JP 2013014408A JP 2013014408 A JP2013014408 A JP 2013014408A JP 2014146972 A JP2014146972 A JP 2014146972A
Authority
JP
Japan
Prior art keywords
group
encoding
buffer
bits
unit
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
JP2013014408A
Other languages
English (en)
Other versions
JP5857978B2 (ja
Inventor
Tomonori Taniguchi
友紀 谷口
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2013014408A priority Critical patent/JP5857978B2/ja
Publication of JP2014146972A publication Critical patent/JP2014146972A/ja
Application granted granted Critical
Publication of JP5857978B2 publication Critical patent/JP5857978B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】シンボルを符号化してバイトバウンダリとする際に、本構成を有していない場合に比較して符号化されたデータに含まれるダミーデータの量を低減させる。
【解決手段】複数のシンボルから構成されるグループを生成し、グループを格納する複数の符号化バッファ58を備え、グループを構成するシンボルにおける最大ビット数のシンボルを検出し、最大ビット数に応じて、グループの格納先を複数の符号化バッファ58から選択し、符号化バッファ58に格納されたグループを構成するシンボルを、符号化バッファ58毎に定められるビット数であって最大ビット数以上のビット数に置換し、置換されたシンボルから構成されるグループを、符号化バッファ58毎に1又は複数個まとめて、符号量が8ビットの倍数であるスーパーグループを生成する。
【選択図】図2

Description

本発明は、符号化装置、復号装置、符号化・復号システム、及びプログラムに関する。
特許文献1には、可変長データの符号化装置及び復号化装置が開示されている。特許文献1に記載の発明では、可変長データをレジスタに保持してパラレルデータに変換しており、レジスタにおいて1つの可変調データ毎にシフト処理、末尾アドレスの管理、及び連結処理を行っている。
特許文献2には、可変長データのシンボルをグループ化し、当該グループに属するシンボルの最大ビット数に応じて、複数の連結器のうちから1の連結器を選択し、選択された連結器において当該グループに属するシンボルを前記最大ビット数で符号化して連結する技術が開示されている。特許文献2に記載の発明では、グループ毎に符号化されたシンボルの総ビット長がバイトバウンダリとなるように、グループ毎にダミーデータ(パディング)を挿入する技術が開示されている。
特開平3−280624号公報 特開2008−67351号公報
本発明は、シンボルを符号化してバイトバウンダリとする際に、本構成を有していない場合に比較して符号化されたデータに含まれるダミーデータの量を低減させることを目的とする。
請求項1に係る発明は、複数のシンボルから構成されるグループを生成するグループ生成部と、前記グループを格納する複数の符号化バッファと、前記グループを構成するシンボルにおける最大ビット数のシンボルを検出し、前記最大ビット数に応じて、前記グループの格納先を前記複数の符号化バッファから選択する符号化バッファ選択部と、前記符号化バッファに格納された前記グループを構成するシンボルを、前記符号化バッファ毎に定められるビット数であって前記最大ビット数以上のビット数に置換する等長符号語置換部と、前記等長符号語置換部により符号語に置換されたシンボルから構成される前記グループを、前記符号化バッファ毎に1又は複数個まとめて、符号量が8ビットの倍数であるスーパーグループを生成するスーパーグループ生成部と、前記グループの格納先である前記符号化バッファを識別する識別情報を生成する識別情報生成部と、を有する符号化装置である。
請求項2に係る発明は、前記スーパーグループ生成部は、前記スーパーグループを生成するためにまとめる前記グループの数を、当該グループを構成するシンボルの数及び前記符号化バッファ毎に定められるビット数に基づいて、前記符号化バッファ毎に定める、ことを特徴とする、請求項1に記載の符号化装置である。
請求項3に係る発明は、前記符号化バッファは、特定のビットパターンが設定されたパターン用符号化バッファを含み、前記符号化バッファ選択部は、前記グループを構成するシンボルが前記特定のビットパターンである場合に、当該グループの格納先として前記パターン用符号化バッファを選択し、前記等長符号語置換部は、前記パターン用符号化バッファに格納された前記グループを構成するシンボルのうち、0値を示すシンボルを削除しその他のシンボルを置換する、ことを特徴とする、請求項1に記載の符号化装置である。
請求項4に係る発明は、エントロピー符号化バッファと、前記エントロピー符号化バッファに格納された前記グループを構成するシンボルを、エントロピー符号化するエントロピー符号化部、をさらに有し、前記符号化バッファ選択部は、前記グループに属するシンボルのビット数が所定の条件を満たす場合に、当該グループの格納先として前記エントロピー符号化バッファを選択し、前記エントロピー符号化部は、前記エントロピー符号化バッファに格納された前記グループに属するシンボルをエントロピー符号化し、前記識別情報は、前記グループの格納先である、前記符号化バッファ及び前記エントロピー符号化バッファを識別する、ことを特徴とする、請求項1に記載の符号化装置である。
請求項5に係る発明は、前記符号化バッファ選択部は、前記グループを構成するシンボルのうち、最大ビット数のシンボルと最小ビット数のシンボルとのビット数の差が所定値以上である場合に、当該グループの格納先として前記エントロピー符号化バッファを選択する、ことを特徴とする、請求項4に記載の符号化装置である。
請求項6に係る発明は、前記符号化バッファ選択部は、前記グループを構成するシンボルにおいて0値を示すシンボル数が所定値以上である場合に、当該グループの格納先として前記エントロピー符号化バッファを選択する、ことを特徴とする、請求項4に記載の符号化装置である。
請求項7に係る発明は、複数の符号化バッファに選択的に格納されたグループであって前記符号化バッファ毎に所定のビット数で等長符号語に置換された複数のシンボルから構成されるグループを1又は複数有し符号量が8ビットの倍数であるスーパーグループ、及び前記グループの格納先である前記符号化バッファを識別する識別情報を取得する取得部と、前記符号化バッファにそれぞれ対応して設けられ、前記スーパーグループを前記グループに分割する複数の逆スーパーグループ化部と、前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを構成するシンボルを、対応する前記符号化バッファ毎に定められた所定のビット数で復号する複数の復号手段と、前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを格納する複数の復号バッファと、前記識別情報に基づいて、前記復号バッファから前記グループを取得するグループ取得部と、を有する復号装置である。
請求項8に係る発明は、複数のシンボルから構成されるグループを生成するグループ生成部と、前記グループを格納する複数の符号化バッファと、前記グループを構成するシンボルにおける最大ビット数のシンボルを検出し、前記最大ビット数に応じて、前記グループの格納先を前記複数の符号化バッファから選択する符号化バッファ選択部と、前記符号化バッファに格納された前記グループを構成するシンボルを、前記符号化バッファ毎に定められ前記最大ビット数以上の、等長符号語に置換する等長符号語置換部と、前記等長符号語置換部により符号語に置換されたシンボルから構成される前記グループを、前記符号化バッファ毎に1又は複数個まとめて、符号量が8ビットの倍数であるスーパーグループを生成するスーパーグループ生成部と、前記グループの格納先である前記符号化バッファを識別する識別情報を生成する識別情報生成部と、を有する符号化装置と、前記スーパーグループ及び前記識別情報を取得する取得部と、前記符号化バッファにそれぞれ対応して設けられ、前記スーパーグループを前記グループに分割する複数の逆スーパーグループ化部と、前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを構成するシンボルを、対応する前記符号化バッファ毎に定められた所定のビット数で復号する複数の復号手段と、前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを格納する複数の復号バッファと、前記識別情報に基づいて、前記復号バッファから前記グループを取得するグループ取得部と、を有する復号装置と、を備える符号化・復号システムである。
請求項9に係る発明は、コンピュータを、請求項1に記載の符号化装置として機能させるためのプログラムである。
請求項10に係る発明は、コンピュータを、請求項7に記載の復号装置として機能させるためのプログラムである。
請求項1、及び7−10に係る発明によれば、シンボルを符号化してバイトバウンダリとする際に、本構成を有していない場合に比較して符号化されたデータに含まれるダミーデータの量を低減させることができる。
請求項2に係る発明によれば、第1グループを構成するシンボルの数が変更された場合であっても、総ビット数が8の倍数である第2グループを生成することができる。
請求項3に係る発明によれば、符号化されるシンボルに特定のパターンが多数発生し当該パターンに0値を示すビットが多数含まれている場合に、本構成を有していない場合に比較して符号化後の符号量を低減させることができる。
請求項4に係る発明によれば、第1グループに属するシンボルのうち、最大ビット数のシンボルと最小ビット数のシンボルとのビット数の差が所定値以上である場合に、本構成を有していない場合に比較して符号後の符号量を低減させることができる。
請求項5に係る発明によれば、第1グループに属するシンボルのビット数が所定の条件を満たす場合に、本構成を有していない場合に比較して符号後の符号量を低減させることができる。
請求項6に係る発明によれば、第1グループに属するシンボルのうち、0値を示すシンボル数が所定値以上である場合に、本構成を有していない場合に比較して符号後の符号量を低減させることができる。
本発明の実施形態の一例である符号化装置10及び復号装置24のハードウェア構成を示した図である。 第1実施形態における符号化装置10aの機能構成を示すブロック図である。 符号化装置10aにおける符号化処理の流れを示すフローチャートである。 等長符号語置換部60による符号化の様子を示す図である。 グループがスーパーグループ符号に連結される様子を示す図である。 グループがスーパーグループ符号に連結される他の例の様子を示す図である。 第2実施形態における符号化装置10bの機能構成を示すブロック図である。 符号化装置10bにおける符号化処理の流れを示すフローチャートである。 非ゼロシンボル抽出部114及びパターン用符号置換部116による符号化の様子を示す図である。 第3実施形態における符号化装置10cの機能構成を示すブロック図である。 符号化装置10cにおける符号化処理の流れを示すフローチャートである。 符号化装置10cにおける符号化処理の流れの他の例を示すフローチャートである。 符号化装置10aに対応する復号装置24aの機能構成を示すブロック図である。 復号装置24aにおける復号処理の流れを示すフローチャートである。 符号化装置10bに対応する復号装置24bの機能構成を示すブロック図である。 符号化装置10cに対応する復号装置24cの機能構成を示すブロック図である。
以下、本発明に係る符号化装置の例について説明する。以下に説明する実施形態では、画像データを符号化・復号する場合を例に説明するが、本発明は以下の実施形態に限定されるものではない。
図1は、本発明の実施形態の一例である符号化装置10及び復号装置24のハードウェア構成を示した図である。符号化装置10は、画像処理装置等のコンピュータであり、演算等を行うプロセッサ12、演算結果等を記憶する記憶装置14、プロセッサ12に指示等をするための入力装置16、処理内容を表示する表示装置18、ネットワーク40を介して他の機器等と通信するための通信装置20を含んで構成されている。復号装置24も、印刷装置や画像処理装置などのコンピュータであり、符号化装置10と同様、演算等を行うプロセッサ26、演算結果等を記憶する記憶装置28、プロセッサ26に指示等をするための入力装置30、処理内容を表示する表示装置32、ネットワーク40を介して他の機器等と通信するための通信装置34を含んで構成されている。復号装置24は、さらに、画像データを紙媒体等に印刷する出力装置36を含んでいても良い。
符号化装置10は、記憶装置14に記憶されたプログラムをプロセッサ12が読み出して実行することにより、データの符号化を行う。符号化のためのプログラムを符号化装置10が読み取り可能な記憶媒体22に記憶させ、符号化装置10が記憶媒体22から符号化のためのプログラムを読み出して実行するようにしても良い。
復号装置24も符号化装置10と同様に、記憶装置28に記憶されたプログラムをプロセッサ26が読み出して実行することにより、データの復号を行う。復号のためのプログラムを復号装置24が読み取り可能な記憶媒体38に記憶させ、復号装置24が記憶媒体38から復号のためのプログラムを読み出して実行するようにしても良い。
図2は、第1実施形態における符号化装置10aの機能構成を示すブロック図である。符号化装置10aは、シンボル取得部50、グループ生成部52、ビット数検出部54、識別情報生成部57を含む符号化バッファ選択部56、複数の符号化バッファ58、複数の等長符号語置換部60、複数のスーパーグループ生成部62、及びバッファID符号化部64を含む機能構成となっている。
シンボル取得部50は、画像データであるシンボルを取得する。シンボル取得部50により取得されるシンボルは、等長であり非圧縮のデータである。例えば、0から255の値を取る8ビットの画素値が挙げられる。シンボル取得部50は、取得した各シンボルを、シンボルが示す数値に基づいて、異なるビット数表現に変換する。簡単のために入力データが3ビットのシンボルである場合を例に説明すると、この場合取り得るシンボル値は0b000(=0)、0b001(=1)、0b010(=2)、0b011(=3)、0b100(=−4)、0b101(=−3)、0b110(=−2)、0b111(−1)の8種類である。このとき、例えば−1及び0を1ビット表現、−2及び1を2ビット表現、−4、−3,2、及び3を3ビット表現で変換する。出現頻度が多いと考えられるシンボル値には少ないビット数の表現を割り当てるのが好適である。
グループ生成部52は、シンボル取得部50から変換されたシンボルを順次受け取る。そして、シンボルを受け取った順に所定数まとめて、複数のシンボルから構成されるグループを生成する。ここで、まとめられるシンボルの数は任意であり、例えば、符号化装置10aが符号化するデータの種類に応じて定めることが可能である。
ビット数検出部54は、グループ生成部52で生成されたグループを構成するシンボルのビット数を検出する。例えば、ビット数検出部は、グループを構成するシンボルのうち、最大ビット数及び最小ビット数のシンボルを検出する。また、(1,3,2,5)や(2,1,4,0)といったような、グループを構成するシンボルのビットパターンを検出する。
符号化バッファ選択部56は、ビット数検出部54で検出されたビット数に基づいて、グループを複数の符号化バッファ58に振り分けて格納する。符号化装置10aでは、符号化バッファ選択部56は、グループを構成するシンボルの最大ビット数に応じて、グループを格納する符号化バッファ58を選択する。また、符号化バッファ選択部56に含まれる識別情報生成部57は、各グループの格納先である符号化バッファ58を識別する識別情報を含むバッファIDを生成する。識別情報生成部57は、生成したバッファIDをバッファID符号化部64へ出力する。
符号化バッファ58は、複数設けられる。符号化装置10aでは、グループを構成するシンボルの最大ビット数に応じて、グループを符号化バッファに振り分けるため、シンボル取得部50により取得されるシンボルが持ち得る最大ビット数と同じ数だけ符号化バッファ58が用意される。
等長符号語置換部60は、複数設けられ、符号化バッファ58それぞれに対応して1つずつ設けられる。等長符号語置換部60は、符号化バッファ58に格納されたグループを構成する全てのシンボルを、符号化バッファ58毎に定められたビット数であって、当該グループを構成するシンボルの最大ビット数以上のビット数に置換する。
スーパーグループ生成部62は、複数設けられ、等長符号語置換部60それぞれに対応して1つずつ設けられる。スーパーグループ生成部62は、等長符号語置換部60によってシンボルが置換されたグループを、符号化バッファ58毎に定められた所定数まとめてスーパーグループを生成する。スーパーグループ生成部62は、スーパーグループを構成するグループの数を、スーパーグループに属するシンボルの総ビット数が8の倍数となるように、当該グループが格納された符号化バッファ58に定められたビット数及びグループを構成するシンボルの数に基づいて定める。さらに、スーパーグループ生成部62は、スーパーグループに属するシンボルを連結してスーパーグループ符号を生成して出力する。
図2では、符号化バッファ58、等長符号語置換部60、及びスーパーグループ生成部62が別々の機能ブロックとして示されているが、等長符号語置換部60及びスーパーグループ生成部62の機能を符号化バッファ58の機能として含めても良い。すなわち、シンボルの置換及びスーパーグループの生成を符号化バッファ58において行うようにしても良い。
バッファID符号化部64は、符号化バッファ選択部56からバッファIDを受け取り、バッファIDを符号化する。符号化されたバッファIDは、スーパーグループ符号と共に復号装置24へ出力される。
バッファIDは、復号装置24が復号時に参照するものである。符号化バッファ58は複数設けられ、各グループは、複数の符号化バッファ58に振り分けて格納される。したがって、グループ生成部52で生成されたグループは、符号化バッファ選択部56まではグル―プの生成順に並んでいると特定し得るが、複数の符号化バッファ58に振り分けて格納された後は、各グループの並び順を特定することができなくなってしまう。そこで、識別情報生成部57が、各グループの格納先である符号化バッファ58を識別する識別情報を含むバッファIDを取得してバッファID符号化部64へ出力し、バッファID符号化部64がバッファIDを符号化した上で復号装置24へ出力する。上述の通り、グループを構成するシンボルであって等長符号語置換部60により置換されたシンボルのビット数及びスーパーグループを構成するグループの数は符号化バッファ58毎に定められている。したがって、グループが格納された符号化バッファ58を特定することで、各グループがいずれの符号化バッファ58に格納されたかを特定すると共に、グループを構成するシンボルが置換された後のビット数及びスーパーグループを構成するグループの数を特定することができる。このように、バッファIDには、グループを構成するシンボルであって等長符号語置換部60により置換されたシンボルのビット数、及びスーパーグループを構成するグループの数を示す情報が含まれる。
以下、符号化装置10aによる符号化処理の流れを説明する。図3は、符号化装置10aにおける符号化処理の流れを示すフローチャートである。図3に示された各ステップは、図2に示した各機能構成が実行するものであるが、実質的には符号化装置10aのプロセッサ12が実行する。
ステップS10において、シンボル取得部50は、複数のシンボルを取得し、上述の通り、取得したシンボルをシンボルが示す数値に基づいて異なるビット数表現に変換する。
ステップS12において、シンボル取得部50は、所定数のシンボルを取得したか否かを判断する。所定数のシンボルを取得したと判断された場合(ステップS12において「はい」)は、ステップS14に進む。所定数のシンボルを取得していないと判断された場合(ステップS12において「いいえ」)は、再度ステップS10に戻り、シンボル取得部50は新たにシンボルを取得する。ここで、所定数のシンボルとはグループを構成するシンボルを意味する。上述の通り、グループを構成するシンボルの数は任意の数とすることが可能であり、ステップS12における所定数も符号化装置10aが符号化するデータの種類に応じて任意に定めることが可能である。本実施形態では、ステップS12における所定数を4とする。すなわち、本実施形態では1つのグループを構成するシンボルの数は4となる。
ステップS14において、グループ生成部52は、シンボル取得部50が取得したシンボルを受け取り、受け取ったシンボルを4つまとめてグループを生成する。
ステップS16において、ビット数検出部54は、グループを構成するシンボルのビット数を検出する。本実施形態では、グループを構成するシンボルにおける最大ビット数に基づいて、各グループを複数の符号化バッファ58に振り分ける。したがって、本実施形態では、ビット数検出部54は、少なくともグループを構成するシンボルにおける最大ビット数を検出する。
ステップS18において、符号化バッファ選択部56は、ビット数検出部54で検出された、グループを構成するシンボルにおける最大ビット数に応じて、グループを格納する符号化バッファ58を選択する。例えば、1つ目のグループを構成するシンボルの最大ビット数が1ビットであれば、1つ目のグループの格納先として符号化バッファ1を選択する。また、2つ目のグループを構成するシンボルの最大ビット数が2ビットであれば、2つ目のグループの格納先として符号化バッファ2を選択する。このように、本実施形態では、符号化バッファ選択部56は、グループを構成するシンボルの最大ビット数がNであれば、当該グループの格納先として符号化バッファNを選択する。
ステップS20において、識別情報生成部57は、各グループの格納先である符号化バッファ58を識別する識別情報を含むバッファIDを生成し、バッファID符号化部64へ出力する。
ステップS22において、符号化バッファ58は、符号化バッファ58に符号化バッファ58毎に定められた所定数のグループが格納されたか否かを判断する。符号化バッファ58毎に定められた所定数のグループが格納されたと判断された場合(ステップS22において「はい」)は、ステップS24に進む。符号化バッファ58毎に定められた所定数のグループが格納されていないと判断された場合(ステップS22において「いいえ」)は、ステップS10に戻り、シンボル取得部50は新たにシンボルを取得する。
ステップS24において、等長符号語置換部60は、符号化バッファ58毎に定められた所定のビット数で、グループを構成するシンボルを置換する。
図4は、等長符号語置換部60による置換の様子を示す図である。図4には、複数の符号化バッファ58及び複数の等長符号語置換部60の一部が示されている。符号化バッファ1には、グループを構成するシンボルの最大ビット数が1であるグループ66及び68が格納されている。同様に、符号化バッファ2にはグループを構成するシンボルの最大ビット数が2であるグループ74及び76が格納され、符号化バッファ3にはグループを構成するシンボルの最大ビット数が3であるグループ82及び84が格納されている。
本実施形態では、符号化バッファ58毎に定められた所定のビット数として、対応する符号化バッファ58に格納されたグループを構成するシンボルの最大ビット数とする。
等長符号語置換部1は、グループ66及び68を構成するシンボルを1ビットで置換し、グループ70及び72を生成する。
等長符号語置換部2は、グループ74及び76を構成するシンボルを2ビットで置換し、グループ78及び80を生成する。置換前であるグループ74及び76を構成するシンボルはそれぞれ(1,10,11,0)、(10,1,1,0)であり、1ビット表現のシンボルと2ビット表現のシンボルが混在しているが、置換後であるグループ78及び80を構成するシンボルはそれぞれ(01,10,11,00)、(10,01,01,00)であり、グループ78及び80を構成する全てのシンボルが2ビット表現となる。
等長符号語置換部3も同様に、グループ82及びグループ84を構成するシンボルを3ビットで置換し、グループ86及び88を生成する。ここでも、置換前であるグループ82及び84を構成するシンボルはそれぞれ(1,10,11,111)、(101,0,1,10)と1−3ビット表現のシンボルが混在しているが、置換後であるグループ86及び88を構成するシンボルは(001,010,011,111)、(101,000,001,010)であり、グループ86及び88を構成する全てのシンボルが3ビット表現となる。
図3に戻って、ステップS26において、スーパーグループ生成部62は、グループを所定数まとめてスーパーグループを生成する。スーパーグループを構成するグループの数は、ステップS22における所定数と同じ数であって良く、スーパーグループに含まれるシンボルの総ビット数が8の倍数となるように、グループを構成するシンボルの数及び符号化バッファ58毎に定められるビット数、すなわち等長符号語置換部60により置換されたシンボルのビット数に基づいて、符号化バッファ58毎に定められる。例えば、グループを構成するシンボルの数が3であり、等長符号語置換部60により置換されたシンボルのビットが1ビットの場合、ステップS22では、符号化バッファ1にグループが8つ格納されたと判断した場合にステップS24に進み、ステップS26において1ビットのシンボルを3つから構成されるグループを8つまとめて、総ビット数が24のスーパーグループを生成する。
スーパーグループ生成部62は、所定数のグループをまとめてスーパーグループを生成した後、スーパーグループに含まれるシンボルを連結してスーパーグループ符号を生成する。
図5は、グループがスーパーグループ符号に連結される様子を示す図である。図5に示す等長符号語置換部1、2、及び3によってシンボルが置換されたグループ70、78、80、86、及び88は、図4に示した例で置換されたグループである。スーパーグループ生成部1は、1ビットのシンボル4つから構成されるグループ70とグループ72とをまとめて、総ビット数が8ビットであるスーパーグループ90を生成する。スーパーグループ生成部2は、2ビットのシンボル4つから構成されるグループ78とグループ80とをまとめて、総ビット数が16ビットであるスーパーグループ92を生成する。スーパーグループ生成部3は、3ビットのシンボル4つから構成されるグループ86とグループ88とをまとめて、総ビット数が24ビットであるスーパーグループ94を生成する。
図5に示した例では、スーパーグループ生成部1、2、及び3は、いずれもグループを2つまとめてスーパーグループを生成している。本実施形態では、1つのグループを構成するシンボルの数は4としたので、グループに含まれるシンボルの置換された後のビット数に関わらず、グループを2つまとめてスーパーグループとすれば、スーパーグループの総ビット数は8の倍数となる。したがって、1つのグループを構成するシンボルの数を4とした場合は、スーパーグループを構成するグループの数を2とすれば良い。
図6は、グループがスーパーグループ符号に連結される他の例の様子を示す図である。図5に示す例では、全てのスーパーグループ生成部62が2つのグループをまとめてスーパーグループを生成するが、スーパーグループ生成部62毎に異なる数のグループをまとめてスーパーグループを生成するようにしても良い。図6に示す例では、スーパーグループ生成部1及び3は、図5に示した例と同様に、それぞれ2つのグループをまとめてスーパーグループを生成している。一方、等長符号語置換部2により生成されたグループ78は、2ビットに置換された4つのシンボルから構成されており、グループ78を構成するシンボルの総ビット数は8となっている。したがって、スーパーグループ生成部2においては、グループ78をそのままスーパーグループ102とすることが可能である。すなわち、スーパーグループ生成部2では、スーパーグループを構成するグループの数を1とすることが可能である。
符号化装置10aは、シンボルを符号化しバイトバウンダリとする際に必要なダミーデータを、符号化装置10aを用いない場合に比較して低減する。符号化装置10aでは、ダミーデータが必要になるのは、データ末尾のシンボルを符号化してバイトバウンダリとする場合のみである。符号化装置10aを用いない場合に比較してダミーデータの量が低減されることで、符号化後の符号量を低減し、符号化効率を高める。また、符号化装置10aでは、グループ生成部52で生成されるグループを構成するシンボル数は任意の数であり、グループが如何なる数のシンボルから構成されても、ダミーデータを付加することなく符号化後のデータをバイトバウンダリとする。
本実施形態においては、スーパーグループの総ビット数が8の倍数になるようにグループをまとめたが、スーパーグループを処理する機器のプロセッサのデータ幅に応じて、スーパーグループの総ビットが16の倍数・32の倍数・64の倍数等になるようにグループをまとめるようにしても良い。例えば、スーパーグループを処理する機器のプロセッサのデータ幅が64ビットである場合は、スーパーグループ生成部62は、スーパーグループの総ビット数が64の倍数になるようにグループを1又は複数個まとめるようにする。
また、本実施形態においては、シンボル取得部50により取得されたシンボルはシンボル取得部50において、シンボルが示す数値に基づいて異なるビット数表現に変換されているが、ビット数表現の変換(圧縮)を等長符号語置換部60において行うようにしても良い。この場合、ビット数検出部54は、シンボルが示す数値に基づいて各シンボルを異なるビット数表現に読み替え、各シンボルの読み替えたビット数表現のビット数を検出する。例えば、グループを構成するシンボルが(0b001,0b111,0b000,0b110)である場合、上記例と同様にビット表現を読み替えると、当該グループの各シンボルのビット数はそれぞれ2ビット、1ビット、1ビット、2ビットとなり、このグループの最大ビット数は2ということになり、当該グループは符号化バッファ2に格納される。その後、当該グループは等長符号語置換部2において、例えば(10,01,00,11)に置換される。
図7は、第2実施形態における符号化装置10bの機能構成を示すブロック図である。符号化装置10aと同じ構成要件には同じ番号が付されており、符号化装置10aと同じ機能構成については説明を省略する。符号化装置10bは、識別情報生成部111を含む符号化バッファ選択部110を有し、複数のパターン用符号化バッファ112、複数の非ゼロシンボル抽出部114、複数のパターン用符号置換部116、及び複数のパターン用スーパーグループ生成部118を含む機能構成となっている。
符号化バッファ選択部110は、グループを構成するシンボルの最大ビット数のみならず、ビット数検出部54が検出するグループを構成するシンボルのビットパターンに基づいて、グループを複数の符号化バッファ58及び複数のパターン用符号化バッファ112に振り分けて格納する。また、符号化バッファ選択部110に含まれる識別情報生成部111は、各グループの格納先である符号化バッファ58及びパターン用符号化バッファ112を識別する識別情報を含むバッファIDを生成する。また、生成したバッファIDを、バッファID符号化部64へ出力する。
パターン用符号化バッファ112は、任意の数設けられ、各パターン用符号化バッファ112には、それぞれビットパターンが設定されている。例えば、パターン用符号化バッファ1にはビットパターン(X,0,X,0)が設定されており、パターン用符号化バッファ2にはビットパターン(X,0,0,X)が設定されている。この場合、シンボル(1,0,1,0)から構成されるグループはパターン用符号化バッファ1に格納され、シンボル(1,0,0,1)から構成されるグループはパターン用符号化バッファ2に格納される。また、グループのビットパターンが同じであっても、グループを構成するシンボルの最大ビット数が異なる場合には、異なるパターン用符号化バッファ112に格納される。例えば、シンボル(1,0,1,0)から構成されるグループとシンボル(11,0,1,0)から構成されるグループとではビットパターンは同じ(X,0,X,0)であるが、シンボル(1,0,1,0)から構成されるグループはパターン用符号化バッファ1に格納され、シンボル(11,0,1,0)から構成されるグループは、パターン用符号化バッファ1とは異なる他のパターン用符号化バッファに格納される。
非ゼロシンボル抽出部114は、パターン用符号化バッファ112それぞれに対応して1つずつ設けられる。非ゼロシンボル抽出部114は、パターン用符号化バッファ112に格納されたグループを構成するシンボルのうち、0値を示すシンボルを削除する。たとえば、シンボル(1,0,1,0)から構成されるグループがパターン用符号化バッファ1に格納されている場合には、非ゼロシンボル抽出部1はシンボル(1,0,1,0)から0を削除し、(1,1)から構成されるグループを生成する。
パターン用符号置換部116は、非ゼロシンボル抽出部114それぞれに対応して1つずつ設けられる。パターン用符号置換部116は、非ゼロシンボル抽出部114によって生成されたグループを構成するシンボルを、パターン用符号置換部116毎に定められた符号化ビット数に置換する。
パターン用スーパーグループ生成部118は、パターン用符号置換部116それぞれに対応して1つずつ設けられる。パターン用スーパーグループ生成部118は、パターン用符号置換部116によってシンボルが置換されたグループを、パターン用符号化バッファ112毎に定められた所定数まとめてスーパーグループを生成する。パターン用スーパーグループ生成部118は、スーパーグループを構成するグループの数を、スーパーグループに属するシンボルの総ビット数が8の倍数となるように、当該グループを構成するシンボルがパターン用符号置換部116において置換されたビット数及び当該グループが格納されたパターン用符号化バッファ112に設定されたビットパターンの非ゼロシンボルの数とに基づいて定められる。
図7では、パターン用符号化バッファ112、非ゼロシンボル抽出部114、パターン用符号置換部116、及びパターン用スーパーグループ生成部118は別々の機能ブロックとして示されているが、非ゼロシンボル抽出部114、パターン用符号置換部116、及びパターン用スーパーグループ生成部118をパターン用符号化バッファ112の機能として、パターン用符号化バッファ112に含めても良い。
符号化装置10aと同様に、符号化装置10bにおいて生成されるバッファIDにも、各グループの格納先である符号化バッファ58及びパターン用符号化バッファ112を識別する識別情報含まれる。上述の通り、パターン用符号化バッファ112毎にビットパターンが設定されており、グループはビットパターンに基づいてパターン用符号化バッファ112に振り分けて格納される。したがって、グループが格納されたパターン用符号化バッファ112を特定することで、グループのビットパターンを特定することができる。したがって、符号化装置10bにおいて生成されるバッファIDには、非ゼロシンボル抽出部114によりシンボルが削除される前のグループのビットパターンを示すパターン情報も含まれることになる。
図8は、符号化装置10bにおける符号化処理の流れを示すフローチャートである。符号化装置10bの符号化処理の流れは、図3に示した符号化装置10aの符号化処理の流れのステップS10からステップS16までは同じであるため、当該部分は説明を省略する。
ステップS30において、符号化バッファ選択部110は、ビット数抽出部54からグループを構成するシンボルのビット数情報を取得する。
ステップS32において、符号化バッファ選択部110は、グループを構成するビットパターンを検出する。
ステップS34において、符号化バッファ選択部110は、検出されたビットパターンがパターン用符号化バッファ112に設定されたビットパターンと一致するか否かを判断する。検出されたビットパターンが、いずれかのパターン用符号化バッファ112に設定されたビットパターンと一致すると判断された場合(ステップS34において「はい」)は、ステップS38に進む。検出されたビットパターンが、いずれのパターン用符号化バッファ112に設定されたビットパターンと一致しないと判断された場合(ステップS34において「いいえ」)は、ステップS36に進む。
ステップS36において、図3に示すステップS18と同様に、符号化バッファ選択部110は、ビット数検出部54で検出された、グループを構成するシンボルにおける最大ビット数に応じて、グループを格納する符号化バッファ58を選択し、図3のステップS20へ進む。すなわち、グループのビットパターンがパターン用符号化バッファ112に設定したビットパターンに一致しない場合には、当該グループは第1実施形態と同じように、グループを構成するシンボルにおける最大ビット数に基づいて符号化バッファ58へ格納され、以後符号化装置10aと同じように符号化される。
ステップS38において、符号化バッファ選択部110は、検出されたビットパターンに基づいて、グループをパターン用符号化バッファ112へ格納する。具体的には、グループのビットパターンと同一のビットパターンが設定されているパターン用符号化バッファ112へグループを格納する。
ステップS40において、符号化バッファ選択部110に含まれる識別情報生成部111は、各グループの格納先である符号化バッファ58及びパターン用符号化バッファ112を識別する識別情報を含むバッファIDを生成し、バッファID符号化部64へ出力する。
ステップS42において、パターン用符号化バッファ112は、パターン用符号化バッファ112にパターン用符号化バッファ112毎に定められた所定数のグループが格納されたか否かを判断する。パターン用符号化バッファ112に、所定数のグループが格納されたと判断された場合(ステップS22において「はい」)は、ステップS24に進む。符号化バッファ58に、所定数のグループが格納されていないと判断された場合(ステップS22において「いいえ」)は、再度ステップS10に戻り、シンボル取得部50は新たにシンボルを取得する。
ステップS44において、非ゼロシンボル抽出部114は、パターン用符号化バッファ112に格納されたグループを構成するシンボルのうち、0値を示すシンボルを削除し、グループをパターン用符号置換部116へ出力する。
ステップS46において、パターン用符号置換部116は、パターン用符号化バッファ112毎に定められたビット数で、非ゼロシンボル抽出部114から取得したグループに含まれるシンボルを置換する。
図9は、非ゼロシンボル抽出部112及びパターン用符号置換部116による置換の様子を示す図である。図9には、一部のパターン用符号化バッファ112、非ゼロシンボル抽出部114、及びパターン用符号置換部116が示されている。パターン用符号化バッファ1には、ビットパターンが(X,0,X,0)であり、最大ビット数が1であるグループ120が格納されている。同様に、パターン用符号化バッファ2には、ビットパターンが(X,0,0,X)であり、最大ビット数が2であるグループ126及び128が格納されている。
非ゼロシンボル抽出部1は、グループ120を構成するシンボル(1,0,1,0)のうち0値を示すシンボルを削除し、シンボル(1,1)から構成されるグループ122を生成する。同様に、非ゼロシンボル抽出部2は、グループ126を構成するシンボル(1,0,0,11)のうち0値を示すシンボルを削除してシンボル(1,11)から構成されるグループ130を生成し、グループ128を構成するシンボル(10,0,0,1)のうち0値を示すシンボルを削除してシンボル(10,1)から構成されるグループ132を生成する。
パターン用符号置換部1は、グループ122を構成するシンボルを、グループ120を構成するシンボルの最大ビット数、すなわち1ビット数で置換し、グループ124を生成する。パターン用符号置換部2は、グループ130を構成するシンボル(1,11)を、グループ126を構成するシンボルの最大ビット数、すなわち2ビットで置換し、シンボル(01,11)から構成されるグループ134を生成する。同様に、グループ132を構成するシンボル(10,1)を2ビットで置換し、シンボル(10,01)から構成されるグループ136を生成する。
図8に戻って、ステップS48において、パターン用スーパーグループ生成部118は、パターン用符号置換部116で生成されたグループを所定数まとめてスーパーグループを生成する。
ステップS50において、パターン用スーパーグループ生成部118は、スーパーグループを生成した後、スーパーグループに含まれるシンボルを連結してスーパーグループ符号を生成する。
符号化装置10bは、シンボルが特定のパターンを多く含む場合、特にそのパターンが0値を示すシンボルを多く含む場合に、符号化装置10aを用いた場合に比較して符号化量を低減させる。例えば、等長符号語置換部60で(11,0,0,0)というシンボルを置換する場合、符号化後のシンボルは(11,00,00,00)となり8ビットであるが、パターン用符号置換部116で置換する場合、パターン用符号化バッファ112に(X,0,0,0)(Xは2ビット)というパターンを設定すれば、置換後のシンボルは(11)の2ビットとなる。
図10は、第3実施形態における符号化装置10cの機能構成を示すブロック図である。符号化装置10aと同じ構成要件には同じ番号が付されており、符号化装置10aと同じ機能構成については説明を省略する。符号化装置10cは、識別情報生成部141を含む符号化バッファ選択部140を有し、エントロピー符号化バッファ142及びエントロピー符号化部144を含む機能構成となっている。
符号化バッファ選択部140は、ビット数検出部54が検出したグループを構成するシンボルのビット数の特徴に基づいて、グループを複数の符号化バッファ58及びエントロピー符号化バッファ142に振り分けて格納する。また、識別情報生成部141は、各部ループの格納先である符号化バッファ58及びエントロピー符号化バッファ142を識別する識別情報を含むバッファIDを生成する。また、生成したバッファIDを、バッファID符号化部64へ出力する。
エントロピー符号化バッファ142は、シンボルのビット数が所定の条件を満たすグループを格納し、エントロピー符号化部144は、エントロピー符号化バッファ142に格納されたグループを構成するシンボルをエントロピー符号化する。エントロピー符号化とは、例えばハフマン符号化である。図10では、エントロピー符号化バッファ142及びエントロピー符号化部144は別々の機能ブロックとして示されているが、エントロピー符号化部144をエントロピー符号化バッファ142の機能として、エントロピー符号化バッファ142に含めても良い。
図11は、符号化装置10cにおける符号化処理の流れを示すフローチャートである。符号化装置10cの符号化処理におけるステップS10−S16は、図3に示した符号化装置10aの符号化処理におけるステップS10−S16と同じであるため、説明を省略する。
ステップS60において、符号化バッファ選択部140は、ビット数抽出部54からグループを構成するシンボルのビット数情報を取得する。
ステップS62において、符号化バッファ選択部140は、グループを構成するシンボルのうち、最大ビット数のシンボルと最小ビット数のシンボルを検出する。
ステップS64において、符号化バッファ選択部140は、最大ビット数のシンボルと最小ビット数のシンボルのビット数の差が所定値以上であるか否かを判断する。ビット数の差が所定値以上であると判断された場合(ステップS64において「はい」)は、ステップS68に進む。ビット数の差が所定値より小さいと判断された場合(ステップS34において「いいえ」)は、ステップS66に進む。
ステップS66において、図3に示すステップS18と同様に、符号化バッファ選択部140は、ビット数検出部54で検出された、グループを構成するシンボルにおける最大ビット数に応じて、グループを格納する符号化バッファ58を選択し、図3のステップS20へ進む。すなわち、最大ビット数のシンボルと最小ビット数のシンボルのビット数の差が所定値より小さいと判断された場合には、当該グループは符号化装置10aと同じように、グループを構成するシンボルにおける最大ビット数に基づいて符号化バッファ58へ格納され、以後符号化装置10aと同じように符号化される。
ステップS68において、符号化バッファ選択部140は、グループをエントロピー符号化バッファ142に格納する。
ステップS70において、識別情報生成部141は、各グループの格納先である符号化バッファ58及びエントロピー符号化バッファ142を識別する識別情報を含むバッファIDを生成する。
ステップS72において、エントロピー符号化部144は、エントロピー符号化バッファ142に格納されたグループを構成するシンボルをエントロピー符号化して出力する。
図12は、符号化装置10cにおける符号化処理の流れの他の例を示すフローチャートである。図12に示す符号化処理の例は、図11に示す符号化処理と比して、グループがエントロピー符号化バッファへ格納される条件が異なるものである。図11に示す例と重複する部分については説明を省略する。
ステップS80において、符号化バッファ選択部140は、グループを構成するシンボルのうち、0値を示すシンボル数を検出する。
ステップS82において、符号化バッファ選択部140は、0値を示すシンボル数が所定値以上であるか否かを判断する。ビット数の差が所定値以上であると判断された場合(ステップS82において「はい」)は、ステップS68に進む。0値を示すシンボル数が所定値より小さいと判断された場合(ステップS34において「いいえ」)は、ステップS66に進む。ステップS66及びステップS68以降は、図11において説明した処理と同様の処理を行う。
符号化装置10cは、ある特定の特徴的なシンボル列を符号化する場合に、符号化装置10aを用いた場合に比較して符号化量を低減する。特徴的なシンボル列とは例えば、ほとんどのシンボルが示す値が0であるが、周期的に大きな値を示すシンボルが含まれるようなシンボル列を符号化する場合である。例えば、符号化装置10cにおいてグループを構成するシンボル数が8であるときに、周期的に大きな値を示すシンボルが含まれるようなシンボル列をグループ化すると、(0,0,0,0,0,11111,0,0)というようなシンボルからなるグループが生成されることになる。この場合、符号化装置10aでは、符号化後のシンボルは8×5=40ビットとなるが、符号化装置10cでは最小で9ビット(11111を10に符号化し、0を0に符号化する)となる。
以上、本発明に係る符号化装置の例について説明した。以下、本発明に係る符号化装置に対応する復号装置の例について説明する。符号化装置の実施形態同様、本発明に係る復号装置は以下の実施形態に限定されるものではない。
図13は、符号化装置10aに対応する復号装置24aの機能構成を示すブロック図である。復号装置24aは、複数のスーパーグループ取得部150、バッファID取得部152、バッファID復号部154、複数の逆スーパーグループ化部156、複数の復号部160、複数の復号バッファ162、及びグループ取得部164を含む機能構成となっている。
スーパーグループ取得部150は、複数設けられ、符号化装置24aの符号化バッファ58それぞれに対応して1つずつ設けられる。すなわち、スーパーグループ取得部150は符号化バッファ58と同じ数設けられる。各スーパーグループ取得部150は、対応する符号化バッファ58で生成されたスーパーグループ符号を取得し、取得したスーパーグループ符号をスーパーグループに切り出す。上述の通り、スーパーグループ取得部150が取得するスーパーグループに属するシンボルの総ビット数は8の倍数となっており、所定数のグループから構成されている。当該グループは、複数の符号化バッファ58に選択的に格納され、所定の符号化ビット数で符号化された複数のシンボルから構成されている。
バッファID取得部152は、バッファIDを取得する。上述の通り、バッファIDは符号化バッファ選択部56により生成されるものであり、各グループの格納先である符号化バッファ58を識別する識別情報が含まれる。
バッファID復号部154は、バッファID取得部152が取得したバッファIDを復号する。
逆スーパーグループ化部156は、複数設けられ、符号化バッファ58及びスーパーグループ取得部150それぞれ対応して1つずつ設けられる。各逆スーパーグループ化部156は、対応するスーパーグループ取得部150からスーパーグループを受け取り、スーパーグループをグループに分割する。
復号部160は、複数設けられ、符号化バッファ58及び逆スーパーグループ化部156それぞれに対応して1つずつ設けられる。復号部160は、復号バッファ162に格納されるグループを構成するシンボルを、復号バッファ162毎に定められたビット数で復号する。
復号バッファ162は、複数設けられ、符号化バッファ58及び復号部160それぞれに対応して1つずつ設けられる。復号バッファ162は、復号部160から復号されたシンボルから構成されるグループを格納する。
図13では、復号部160及び復号バッファ162は、別々の機能ブロックとして示されているが、復号部160の機能を復号バッファ162の機能として含めても良い。すなわち、復号を復号バッファ162において行うようにしても良い。
グループ取得部164は、バッファID復号部154からバッファIDを受け取り、バッファIDに含まれる識別情報に基づいて、複数の復号バッファ162から順番にグループを取得し、取得したグループを構成するシンボルを出力する。
以下、復号装置24aによる復号処理の流れを説明する。図14は、復号装置24aにおける復号処理の流れを示すフローチャートである。図14に示された各ステップは、図13に示した各機能構成が実行するものであるが、実質的には復号装置24aのプロセッサ26が実行する。
ステップS100において、スーパーグループ取得部150は、スーパーグループ符号を取得し、スーパーグループに切り出す。
ステップS102において、バッファID取得部152は、バッファIDを取得してバッファID復号部154へ出力する。バッファID復号部154は、受け取ったバッファIDを復号しグループ取得部164に出力する。
ステップS104において、逆スーパーグループ化部156は、スーパーグループをグループに分割する。また、逆スーパーグループ化部156は、スーパーグループを分割して得られたグループを復号部160へ出力する。上述の通り、スーパーグループに含まれるグループの数は、符号化バッファ58毎に定められおり、逆スーパーグループ化部156は符号化バッファに対応して設けられている。したがって、取得したスーパーグループを何個のグループに分割するかは、対応する符号化バッファ58に定められたグループの数に応じて、逆スーパーグループ化部156毎に定められる。
ステップS106において、復号部160は、復号バッファ162に格納されるグループを構成するシンボルを、復号部160毎に定められた所定のビット数で復号する。ここで、所定のビット数とは、復号バッファ162に格納されるグループを構成するシンボルのビット数、すなわち等長符号語置換部60において置換された後のシンボルのビット数であり、復号部160毎に異なるビット数となる。
ステップS108において、グループ取得部164は、バッファIDに含まれる識別上納に基づいて、複数の復号バッファ162から順番にグループを取得する。グループ取得部164は、識別情報を参照することで、グループが符号化バッファ58に格納された順番、すなわち元のグループの並び順通りにグループを取得する。そして、グループを取得した順にグループを構成するシンボルを出力する。
図15は、符号化装置10bに対応する復号装置24bの機能構成を示すブロック図である。復号装置24bは、パターン用スーパーグループ取得部170、パターン用逆スーパーグループ化部171、パターン用復号部172、パターン復元部174、及びパターン用復号バッファ176を含む機能構成となっている。復号装置24bと復号装置24aで同一構成要件には同一符号が付されており、復号装置24aと同じ機能構成については説明を省略する。
復号装置24bのバッファID取得部152が取得するバッファIDには、各グループの格納先である符号化バッファ58及びパターン用符号化バッファ112を識別する識別情報が含まれる。
パターン用スーパーグループ取得部170は、複数設けられ、符号化装置24bのパターン用符号化バッファ112それぞれに対応して1つずつ設けられる。すなわち、パターン用スーパーグループ取得部170はパターン用符号化バッファ112と同じ数設けられる。各パターン用スーパーグループ取得部170は、対応するパターン用符号化バッファ112で生成されたスーパーグループ符号を取得し、取得したスーパーグループ符号をスーパーグループに切り出す。
パターン用逆スーパーグループ化部171は、複数設けられ、パターン用スーパーグループ取得部170それぞれに対応して1つずつ設けられる。各パターン用スーパーグループ化部171は、対応するパターン用スーパーグループ取得部170からスーパーグループを受け取り、スーパーグループをグループに分割する。
パターン用復号部172は、複数設けられ、パターン用逆スーパーグループ化部171それぞれに対応して1つずつ設けられる。パターン用復号部172は、パターン用復号バッファ176に格納されるグループを構成するシンボルを、パターン用復号バッファ176毎に定められたビット数で復号する。
パターン復元部174は、複数設けられ、パターン用復号部172それぞれに対応して1つずつ設けられる。パターン復元部174は、パターン用復号部172からグループを受け取り、当該グループのビットパターンを、符号化装置10bの非ゼロシンボル抽出部114により0値を示すシンボルが削除される前のグループのビットパターンに復元する。例えば、シンボル(1,0,1,0)が符号化装置10bにより符号化された場合、非ゼロシンボル抽出部114により0値を示すシンボルが削除され、符号化後の当該グループは(1,1)となっている。受け取ったグループ(1,1)に0値を付加し、元のビットパターン(1,0,1,0)に復元する。各パターン用符号化バッファ176には常に復元すべきビットパターンが同一であるグループが格納されるため、ビットパターンを復元するために0値を付加する位置は、パターン復元部174と非ゼロシンボル抽出部114との対応関係に基づいて、パターン復元バッファ176毎に定められる。
パターン用復号バッファ176は、複数設けられ、パターン復元部174それぞれに対応して1つずつ設けられる。復号バッファ160が符号化バッファ58に対応しているのと同じように、パターン用復号バッファ172とパターン用符号化バッファ112も対応しており、パターン用復号バッファ172は符号化バッファ58と同じ数だけ設けられる。すなわち、パターン用符号化バッファ1に格納されていたグループはパターン用復号バッファ1に格納され、パターン用符号化バッファ2に格納されていたグループはパターン用復号バッファ2に格納される。
図15では、パターン用復号部172、パターン復元部174、及びパターン用復号バッファ176は別々の機能ブロックとして示されているが、パターン用復号部172及びパターン復元部174の機能をパターン用復号バッファ176の機能として含めても良い。すなわち、復号及びパターン復元をパターン用復号バッファ176において行うようにしても良い。
図16は、符号化装置10cに対応する復号装置24cの機能構成を示すブロック図である。復号装置24cは、エントロピー符号取得部180、エントロピー符号復号部182、及びエントロピー符号用復号バッファ184を含む機能構成となっている。復号装置24cと復号装置24aで同一構成要件には同一符号が付されており、復号装置24aと同じ機能構成については説明を省略する。
復号装置24cのバッファID取得部152が取得するバッファIDには、各グループの格納先である符号化バッファ58及びエントロピー符号化バッファ142を識別する識別情報が含まれる。
エントロピー符号取得部180は、エントロピー符号化されたシンボルから構成されるグループを取得する。スーパーグループ取得部150とエントロピー符号取得部180とを同一の機能ブロックとすることも可能である。この場合、取得したグループがスーパーグループであるか、エントロピー符号化されたシンボルから構成されるグループであるかの識別は、グループに含まれているシンボルのビット数が同一であるか否か等に基づいて行う。
エントロピー符号復号部182は、エントロピー符号取得部180からグループを受け取り、グループを構成するエントロピー符号化されたシンボルを復号する。
エントロピー符号用復号バッファ184は、復号されたシンボルから構成されるグループをエントロピー符号復号部182から受け取り、格納する。
グループ取得部164は、バッファIDに含まれる識別情報に基づいて、複数の復号バッファ162及びエントロピー符号用バッファ184から順番にグループを取得し、取得したグループを構成するシンボルを出力する。
10,10a,10b,10c 符号化装置、12,26 プロセッサ、14,28 記憶装置、16,30 入力装置、18,32 表示装置、20,34 通信装置、22,38 記憶媒体、24,24a,24b,24c 復号装置、36 出力装置、40 ネットワーク、50 シンボル取得部、52 グループ生成部、54 ビット数検出部、56,110,140 符号化バッファ選択部、57,111,141 識別情報生成部、 58 符号化バッファ、60 等長符号語置換部、62 スーパーグループ生成部、64 バッファID符号化部、66,68,70,72,74,76,78,80,82,84,86,88,120,122,124,126,128,130,132,134,136 グループ、90,92,94,102 スーパーグループ、112 パターン用符号化バッファ、114 非ゼロシンボル抽出部、116 パターン用符号置換部、118 パターン用スーパーグループ生成部、142 エントロピー符号化バッファ、144 エントロピー符号化部、150 スーパーグループ取得部、152 バッファID取得部、154 バッファID復号部、156 逆スーパーグループ化部、160 復号部、162 復号バッファ、164 グループ取得部、170 パターン用スーパーグループ取得部、171 パターン用逆スーパーグループ化部、172 パターン用復号部、174 パターン復元部、176 パターン用復号バッファ、180 エントロピー符号取得部、182 エントロピー符号復号部、184 エントロピー符号用復号バッファ。

Claims (10)

  1. 複数のシンボルから構成されるグループを生成するグループ生成部と、
    前記グループを格納する複数の符号化バッファと、
    前記グループを構成するシンボルにおける最大ビット数のシンボルを検出し、前記最大ビット数に応じて、前記グループの格納先を前記複数の符号化バッファから選択する符号化バッファ選択部と、
    前記符号化バッファに格納された前記グループを構成するシンボルを、前記符号化バッファ毎に定められるビット数であって前記最大ビット数以上のビット数に置換する等長符号語置換部と、
    前記等長符号語置換部により置換されたシンボルから構成される前記グループを、前記符号化バッファ毎に1又は複数個まとめて、符号量が8ビットの倍数であるスーパーグループを生成するスーパーグループ生成部と、
    前記グループの格納先である前記符号化バッファを識別する識別情報を生成する識別情報生成部と、
    を有する符号化装置。
  2. 前記スーパーグループ生成部は、前記スーパーグループを生成するためにまとめる前記グループの数を、当該グループを構成するシンボルの数及び前記符号化バッファ毎に定められるビット数に基づいて、前記符号化バッファ毎に定める、
    ことを特徴とする、請求項1に記載の符号化装置。
  3. 前記符号化バッファは、特定のビットパターンが設定されたパターン用符号化バッファを含み、
    前記符号化バッファ選択部は、前記グループを構成するシンボルが前記特定のビットパターンである場合に、当該グループの格納先として前記パターン用符号化バッファを選択し、
    前記等長符号語置換部は、前記パターン用符号化バッファに格納された前記グループを構成するシンボルのうち、0値を示すシンボルを削除しその他のシンボルを置換する、
    ことを特徴とする、請求項1に記載の符号化装置。
  4. エントロピー符号化バッファと、
    前記エントロピー符号化バッファに格納された前記グループを構成するシンボルを、エントロピー符号化するエントロピー符号化部、
    をさらに有し、
    前記符号化バッファ選択部は、前記グループに属するシンボルのビット数が所定の条件を満たす場合に、当該グループの格納先として前記エントロピー符号化バッファを選択し、
    前記エントロピー符号化部は、前記エントロピー符号化バッファに格納された前記グループに属するシンボルをエントロピー符号化し、
    前記識別情報は、前記グループの格納先である、前記符号化バッファ及び前記エントロピー符号化バッファを識別する、
    ことを特徴とする、請求項1に記載の符号化装置。
  5. 前記符号化バッファ選択部は、前記グループを構成するシンボルのうち、最大ビット数のシンボルと最小ビット数のシンボルとのビット数の差が所定値以上である場合に、当該グループの格納先として前記エントロピー符号化バッファを選択する、
    ことを特徴とする、請求項4に記載の符号化装置。
  6. 前記符号化バッファ選択部は、前記グループを構成するシンボルにおいて0値を示すシンボル数が所定値以上である場合に、当該グループの格納先として前記エントロピー符号化バッファを選択する、
    ことを特徴とする、請求項4に記載の符号化装置。
  7. 複数の符号化バッファに選択的に格納されたグループであって前記符号化バッファ毎に所定のビット数で等長符号語に置換された複数のシンボルから構成されるグループを1又は複数有し符号量が8ビットの倍数であるスーパーグループ、及び前記グループの格納先である前記符号化バッファを識別する識別情報を取得する取得部と、
    前記符号化バッファにそれぞれ対応して設けられ、前記スーパーグループを前記グループに分割する複数の逆スーパーグループ化部と、
    前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを構成するシンボルを、対応する前記符号化バッファ毎に定められた所定のビット数で復号する複数の復号手段と、
    前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを格納する複数の復号バッファと、
    前記識別情報に基づいて、前記復号バッファから前記グループを取得するグループ取得部と、
    を有する復号装置。
  8. 複数のシンボルから構成されるグループを生成するグループ生成部と、前記グループを格納する複数の符号化バッファと、前記グループを構成するシンボルにおける最大ビット数のシンボルを検出し、前記最大ビット数に応じて、前記グループの格納先を前記複数の符号化バッファから選択する符号化バッファ選択部と、前記符号化バッファに格納された前記グループを構成するシンボルを、前記符号化バッファ毎に定められるビット数であって前記最大ビット数以上のビット数に置換する等長符号語置換部と、前記等長符号語置換部により符号語に置換されたシンボルから構成される前記グループを、前記符号化バッファ毎に1又は複数個まとめて、符号量が8ビットの倍数であるスーパーグループを生成するスーパーグループ生成部と、前記グループの格納先である前記符号化バッファを識別する識別情報を生成する識別情報生成部と、を有する符号化装置と、
    前記スーパーグループ及び前記識別情報を取得する取得部と、前記符号化バッファにそれぞれ対応して設けられ、前記スーパーグループを前記グループに分割する複数の逆スーパーグループ化部と、前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを構成するシンボルを、対応する前記符号化バッファ毎に定められた所定のビット数で復号する複数の復号手段と、前記符号化バッファにそれぞれ対応して設けられ、前記逆スーパーグループ化部において分割された前記グループを格納する複数の復号バッファと、前記識別情報に基づいて、前記復号バッファから前記グループを取得するグループ取得部と、を有する復号装置と、
    を備える符号化・復号システム。
  9. コンピュータを、請求項1に記載の符号化装置として機能させるためのプログラム。
  10. コンピュータを、請求項7に記載の復号装置として機能させるためのプログラム。
JP2013014408A 2013-01-29 2013-01-29 符号化装置、復号装置、符号化・復号システム、及びプログラム Active JP5857978B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013014408A JP5857978B2 (ja) 2013-01-29 2013-01-29 符号化装置、復号装置、符号化・復号システム、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013014408A JP5857978B2 (ja) 2013-01-29 2013-01-29 符号化装置、復号装置、符号化・復号システム、及びプログラム

Publications (2)

Publication Number Publication Date
JP2014146972A true JP2014146972A (ja) 2014-08-14
JP5857978B2 JP5857978B2 (ja) 2016-02-10

Family

ID=51426895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013014408A Active JP5857978B2 (ja) 2013-01-29 2013-01-29 符号化装置、復号装置、符号化・復号システム、及びプログラム

Country Status (1)

Country Link
JP (1) JP5857978B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53124958A (en) * 1977-04-07 1978-10-31 Mitsubishi Electric Corp Coding unit
JPH01195769A (ja) * 1988-01-30 1989-08-07 Nec Home Electron Ltd 可変長データの固定長データへの変換方法
JPH10285210A (ja) * 1997-04-01 1998-10-23 Matsushita Electric Ind Co Ltd パケット化方法および逆パケット化装置
JPH1155125A (ja) * 1997-08-01 1999-02-26 Fujitsu Ltd 文字データの圧縮・復元方法
JP2007004056A (ja) * 2005-06-27 2007-01-11 Nippon Hoso Kyokai <Nhk> オーディオ符号化装置及びプログラム
JP2008067351A (ja) * 2006-08-07 2008-03-21 Fuji Xerox Co Ltd 符号化装置、復号化装置、符号化方法及びプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53124958A (en) * 1977-04-07 1978-10-31 Mitsubishi Electric Corp Coding unit
JPH01195769A (ja) * 1988-01-30 1989-08-07 Nec Home Electron Ltd 可変長データの固定長データへの変換方法
JPH10285210A (ja) * 1997-04-01 1998-10-23 Matsushita Electric Ind Co Ltd パケット化方法および逆パケット化装置
JPH1155125A (ja) * 1997-08-01 1999-02-26 Fujitsu Ltd 文字データの圧縮・復元方法
JP2007004056A (ja) * 2005-06-27 2007-01-11 Nippon Hoso Kyokai <Nhk> オーディオ符号化装置及びプログラム
JP2008067351A (ja) * 2006-08-07 2008-03-21 Fuji Xerox Co Ltd 符号化装置、復号化装置、符号化方法及びプログラム

Also Published As

Publication number Publication date
JP5857978B2 (ja) 2016-02-10

Similar Documents

Publication Publication Date Title
KR100808664B1 (ko) 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
CN100455019C (zh) 内容自适应二进制算术编码的方法和使用该方法的设备
JP4468858B2 (ja) データ符号化装置、データ符号化方法、プログラム
US8094048B2 (en) Method of decoding syntax element in context-based adaptive binary arithmetic coding decoder and decoding device therefor
KR100717055B1 (ko) Cabac 복호기에서 복수의 이진 값들을 파이프라인방식에 의하여 복호화하는 방법 및 이를 위한 복호화 장치
CN106170921A (zh) 涉及符号压缩的数据的源编码和解码方法及装置
JP2008289125A (ja) 算術復号化装置及びその方法
JP2016006961A (ja) 整数値データのストリームを圧縮するシステム及び方法
JP5656593B2 (ja) 符号化データを復号する装置及び方法
JP2007043595A (ja) 可変長符号復号化方法および装置ならびにデータ伸長装置
KR20060082609A (ko) 내용 적응 가변 길이 부호화 장치 및 방법
JP2006157678A (ja) 可変長符号化装置及び可変長符号化方法
JP6159240B2 (ja) 二値算術符号化装置、二値算術符号化方法及び二値算術符号化プログラム
US7898444B2 (en) Decoding method
KR100674937B1 (ko) 컨텍스트 적응형 이진 산술 복호화 장치
JP5857978B2 (ja) 符号化装置、復号装置、符号化・復号システム、及びプログラム
JP4758494B2 (ja) ビット長を符号に変換する回路及び方法
JP2008199100A (ja) 可変長符号復号装置
JP5413161B2 (ja) テーブル装置、符号化装置、復号装置および符号化/復号装置
JP2011109364A (ja) 画像処理装置
JP5848620B2 (ja) 画像符号化装置、方法、及びプログラム
KR20220031636A (ko) 범위 비대칭 숫자 시스템 인코딩 및 디코딩의 피쳐
JP5872513B2 (ja) 符号化装置、復号化装置およびデータ処理システム
JP2005217871A (ja) 算術復号化装置および算術復号化プログラム
KR101270633B1 (ko) 복수 호프만 테이블을 적용하여 고속 처리가 가능한 멀티미디어용 호프만 디코딩 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151026

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151130

R150 Certificate of patent or registration of utility model

Ref document number: 5857978

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350