JP2008067351A - 符号化装置、復号化装置、符号化方法及びプログラム - Google Patents

符号化装置、復号化装置、符号化方法及びプログラム Download PDF

Info

Publication number
JP2008067351A
JP2008067351A JP2007157176A JP2007157176A JP2008067351A JP 2008067351 A JP2008067351 A JP 2008067351A JP 2007157176 A JP2007157176 A JP 2007157176A JP 2007157176 A JP2007157176 A JP 2007157176A JP 2008067351 A JP2008067351 A JP 2008067351A
Authority
JP
Japan
Prior art keywords
group
compressed information
code
encoding
symbol
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
JP2007157176A
Other languages
English (en)
Other versions
JP4893956B2 (ja
Inventor
Taro Yokose
太郎 横瀬
Masanori Sekino
雅則 関野
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 JP2007157176A priority Critical patent/JP4893956B2/ja
Publication of JP2008067351A publication Critical patent/JP2008067351A/ja
Application granted granted Critical
Publication of JP4893956B2 publication Critical patent/JP4893956B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】 より効率的な符号化処理を実現する符号化装置を提供する。
【解決手段】 画像処理装置2は、ソースコーダで生成されたシンボルを、既定数のシンボルからなるブロックにまとめ、ブロック毎に符号語を割り振る。すなわち、図1(B)に例示するように、ブロックに対しては1対1の符号であるが、シンボルから見ると多対1の符号を構成する。これにより、可変長符号の処理に起因する分岐処理又はフィードバックループは、シンボル単位で発生することがなくなり、処理速度の向上が期待できる。
【選択図】図1

Description

本発明は、エントロピー符号化を行う符号化方法に関する。
例えば、特許文献1には、入力データを直交変換し、直交変換された入力データのゼロ長を抽出し、直交変換された入力データをグルーピングし、抽出されたゼロ長とグループ係数とに基づいて求められた符号長における当該符号の発生頻度と、符号長に基づいて求められた符号長の符号の中で最も発生頻度の高い符号とからハフマン符号化を行なう方法が開示されている。
特開平10−322221号公報
本発明は、上述した背景からなされたものであり、より効率的な符号化処理を実現する符号化装置を提供することを目的とする。
[符号化装置]
上記目的を達成するために、本発明にかかる符号化装置は、複数の被圧縮情報をまとめて、被圧縮情報のグループを生成するグループ生成手段と、前記グループ生成手段により生成されたグループに対して、符号を割り当てる符号割当手段と、それぞれのグループに属する被圧縮情報を、各グループに割り当てられた符号を用いて符号化する被圧縮情報符号化手段とを有する。
好適には、前記グループ生成手段は、複数の被圧縮情報をまとめて、被圧縮情報の下位グループを生成し、前記グループ生成手段により生成された下位グループを、上位グループに分類するグループ分類手段をさらに有し、前記符号割当手段は、前記上位グループに対して、符号を割り当て、前記被圧縮情報符号化手段は、同一の前記上位グループに属する下位グループの被圧縮情報を、この上位グループに割り当てられた可変長符号を用いて符号化する。
好適には、前記グループ生成手段は、入力された複数の被圧縮情報を入力順に既定数ずつまとめて、既定数の被圧縮情報が含まれた下位グループを生成し、前記グループ分類手段は、前記下位グループに属する被圧縮情報を表現するためのビット数に基づいて、下位グループを上位グループに分類する。
好適には、前記符号割当手段は、各グループの出現確率に応じて、それぞれのグループにエントロピー符号を割り当てる。
好適には、入力された被圧縮情報に基づいて、この被圧縮情報よりも少ないビット数で表現されたビット列に変換する被圧縮情報変換手段をさらに有し、前記被圧縮情報符号化手段は、それぞれのグループに属する被圧縮情報について前記被圧縮情報変換手段により変換されたビット列と、このグループに割り当てられた符号とを用いて、符号化する。
好適には、前記グループ生成手段により生成された下位グループから、既定のパターンに合致する被圧縮情報を削除するパターンマッチ手段をさらに有し、前記グループ分類手段は、前記パターンマッチ手段により下位グループから被圧縮情報が削除された場合に、被圧縮情報が削除された下位グループを上位グループに分類する。
[復号化装置]
また、本発明にかかる復号化装置は、複数の被圧縮情報からなるグループに割り当てられた符号に基づいて、このグループに属する被圧縮情報の符号長を特定する符号長特定手段と、前記符号長特定手段により特定された各被圧縮情報の符号長に基づいて、前記グループに属する被圧縮情報を復号化する被圧縮情報復号化手段とを有する。
[符号化方法]
また、本発明にかかる符号化方法は、複数の被圧縮情報をまとめて、被圧縮情報のグループを生成し、生成されたグループに対して、符号を割り当て、それぞれのグループに属する被圧縮情報を、各グループに割り当てられた符号を用いて符号化する。
[プログラム]
また、本発明にかかるプログラムは、複数の被圧縮情報をまとめて、被圧縮情報のグループを生成するステップと、生成されたグループに対して、符号を割り当てるステップと、それぞれのグループに属する被圧縮情報を、各グループに割り当てられた符号を用いて符号化するステップとをコンピュータに実行させる。
本発明の符号化装置によれば、より効率的な符号化処理を実現することができる。
まず、本発明の理解を助けるために、その背景及び概略を説明する。
例えば、ハフマン符号は、各シンボル値に対して1対1で付与される。すなわち、ハフマン符号化処理は、1入力(シンボル)に対して1出力(符号語)を与える。ここで、シンボルとは、エントロピー符号化処理の対象となる被圧縮情報である。換言すると、被圧縮情報には、エントロピー符号化処理の対象となるシンボルの他、モデリングがなされる前の被圧縮データ(例えば、JPEG符号化処理における画像データ又はDCT係数など)も含まれうる。
このような1対1の符号化処理は、構成及び設計が簡単であるが、図1(A)に例示するように、1シンボルごとに符号長が変わる。このため、ソフトウェア処理で出力のためにシリアライズする処理では、分岐が多発するため処理速度を低下させる要因となる。また、ハードウェア処理であっても、符号語長がフィードバックループを形成するため、処理速度に対する制約となる。
なお、説明の便宜上、ハフマン符号という用語を使ったが、上記の問題点は、国際標準JPEGの固定的なハフマン符号を含めて一般的な可変長符号化に存在する。
そこで、以下の実施形態における画像処理装置2は、複数のシンボル(以下、ブロックと呼ぶ)毎に符号語を割り振る。すなわち、図1(B)に例示するように、ブロックに対しては1対1の符号であるが、シンボルから見ると多対1の符号を構成することになる。
これにより、分岐又はフィードバックループは、シンボル単位からブロック単位に削減できるため、処理速度の向上が期待できる。
なお、本実施形態では、ブロックごとに符号語を割り振るエントロピーコーダと、ソースコーダとを組み合わせた形態を具体例として説明するが、この場合に、エントロピーコーダのブロックがソースコーダのブロックと一致する必要はなく、実装コストなどの理由でブロックサイズを変えてもよい。ただし、エントロピーコーダとソースコーダのブロックサイズについて、何らかの関係(例えば、いずれか一方が他方の約数となる関係)がある方が好ましいケースもある。
[ハードウェア構成]
次に、以下の実施形態における画像処理装置2のハードウェア構成を説明する。
図2は、本発明にかかる符号化方法が適応される画像処理装置2のハードウェア構成を、制御装置20を中心に例示する図である。
図2に例示するように、画像処理装置2は、CPU202及びメモリ204などを含む制御装置20、通信装置22、HDD・CD装置などの記録装置24、並びに、LCD表示装置あるいはCRT表示装置及びキーボード・タッチパネルなどを含むユーザインターフェース装置(UI装置)26から構成される。
画像処理装置2は、例えば、プリンタ装置10に設けられた処理装置であり、通信装置22又は記録装置24などを介して画像データを取得し、取得された画像データを符号化して蓄積し、蓄積された符号データを復号化して印刷する。
[第1実施形態]
以下、第1の実施形態を説明する。
図3は、制御装置20(図2)により実行され、本発明にかかる符号化方法を実現する符号化プログラム5の機能構成を例示する図である。
図3に例示するように、符号化プログラム5は、ソースコーダ500、グループ生成部510、ビット数算出部520、シンボル変換部530、グループ分類部540、符号割当部550、及び符号統合部560を有する。
符号化プログラム5は、例えば、図2に例示した記録媒体240に記録され、この記録媒体240を介して、制御装置20(図2)に供給される。
なお、本例では、画像データを符号化する場合を具体例として説明する。
符号化プログラム5において、ソースコーダ500は、入力されたデータファイルに基づいて、可変長符号化処理の対象となるシンボルを生成し、生成されたシンボルをグループ生成部510に出力する。
本例のソースコーダ500は、既定の予測方法を用いて注目画素の画素値を予測し、この予測値と注目画素値との差分値(以下、予測誤差値)を算出し、算出された予測誤差値をシンボルとする。画像データでは近傍画素間で相関が高いため、シンボル値(予測誤差値)の出現頻度は0近傍で高くなることが期待できる。
グループ生成部510は、ソースコーダ500から入力された複数のシンボルをまとめて、シンボルのグループ(以下、ブロック)を生成し、生成されたシンボルのブロックをビット数算出部520及びシンボル変換部530に出力する。
本例のグループ生成部510は、ソースコーダ500から入力されたシンボルを、入力順に既定数ずつまとめて、既定数のシンボルが含まれたブロックを生成する。
ビット数算出部520は、シンボルを表現するために必要となるビット数を算出する。
本例のビット数算出部520は、グループ生成部510からシンボルのブロックが入力されると、ブロックに含まれる各シンボルについて、必要最小限のビット数(必要ビット数)を算出し、算出された必要ビット数をグループ分類部540及びシンボル変換部530に出力する。
シンボル変換部530は、グループ生成部510から入力されたシンボルを、入力されたシンボルよりも少ないビット数で表現されたビット列に変換し、変換されたシンボルのビット列を符号統合部560に出力する。
本例のシンボル変換部530は、グループ生成部510から入力されたシンボルを、ビット数算出部520から入力された必要ビット数のビット列(すなわち、必要ビット数で表現されたシンボル)に変換する。
グループ分類部540は、ビット数算出部520により算出されたシンボルの必要ビット数に基づいて、グループ生成部510により生成されたブロック(下位グループ)を上位グループに分類する。
本例のグループ分類部540は、ブロックに含まれるシンボルの必要ビット数の組合せに基づいて、このブロックを分類すべき上位グループを決定する。
符号割当部550は、複数のシンボルが含まれたグループ(ブロック又は上位グループ)に対して、符号を割り当てる。
本例の符号割当部550は、上位グループ毎に、ブロックの出現頻度を計数し、上位グループ毎の出現頻度に応じて、各上位グループにハフマン符号(以下、グループ符号)を割り当てる。
なお、本例の符号割当部550は、グロックの出現頻度を上位グループ毎に計数し、計数値に基づいて符号表を設計するが、出現頻度を推定し、推定値に基づいて符号表を設計してもよいし、推定される出現頻度に応じて予め設計された符号表を用いてもよい。
符号統合部560は、符号割当部550により割り当てられた符号と、シンボル変換部530により生成されたビット列とに基づいて、ブロックに含まれるシンボル群の符号(以下、ブロック符号)を生成する。
本例の符号統合部560は、符号割当部550により割り当てられた符号(グループ符号)と、シンボル変換部530により変換されたシンボル値のビット列(必要ビット数で表現されたシンボル値)とを統合して、ブロック符号を生成する。
図4は、符号化プログラム5(図3)による符号化処理を説明する図である。
図4(A)に例示するように、グループ生成部510は、ソースコーダ500から入力されるシンボル(8ビット)を入力順に4つずつまとめて、4つのシンボルS0〜S3が含まれたブロックを生成する。本例では、各シンボルS0〜S3は、8ビットで表現された予測誤差値であり、1ブロックのビット数は32ビットである。
シンボル変換部530は、図4(B)に例示するように、ブロックに含まれる各シンボルを、必要ビット数で表現されたシンボルに変換する。シンボル表現に必要なビット数(必要ビット数)は、シンボル値に対して底2のlogをとり1を加算することで得られる。ただし、シンボル値0は0ビットと定義する。例えば、シンボル値1は1ビット、シンボル値2〜3は2ビット、シンボル値4〜7は3ビットである。本例では、シンボルが8ビットであるため、必要ビット数は、0〜8ビットの9種類となる。そして、例えば、あるブロックの必要ビット数が3、1、4、1だったとすると、本例のグループ分類部540は、これらの必要ビット数の組合せ「3、1、4、1」に基づいて、ブロックを上位グループに分類するため、このブロックは、上位グループ「3141」に縮退する。このような上位グループは6561(=9の4乗)種類存在するが、符号割当部550は、各上位グループ毎にブロックの出現確率を計測してハフマン符号を設計し、符号語とする。
なお、上位グループ「3141」には、512(=8×2×16×2)のブロックが縮退される。これらを個別に見分けるために、各シンボルを必要ビット数で表現したものを上述の符号語の後に付加する。すなわち、符号統合部560は、図4(C)に例示するように、上位グループに割り当てられた符号(上位グループ「3141」の符号語)と、ブロックに含まれるシンボル値(必要ビット数で表現されたシンボル値)とを統合する。
[符号化動作]
次に、画像処理装置2(符号化プログラム5)の全体動作を説明する。
図5は、符号化プログラム5(図3)による符号化処理(S10)のフローチャートである。
図5に示すように、ステップ100(S100)において、ソースコーダ500は、画像データが入力されると、走査順に予測誤差値を算出し、算出された予測誤差値をシンボルとしてグループ生成部510に出力する。
グループ生成部510は、ソースコーダ500から入力されるシンボル(予測誤差)を入力順に4つずつまとめて、4つのシンボルが含まれたブロックを生成し、生成されたブロック(下位グループ)をビット数算出部520及びシンボル変換部530に出力する。
ステップ110(S110)において、符号化プログラム5は、ブロック生成部510により生成されたブロックの中から、順に注目ブロック(すなわち、符号化対象となるブロック)を設定する。
ステップ120(S120)において、ビット数算出部520は、グループ生成部510から入力された注目ブロックの各シンボルについて、必要ビット数を算出し、算出された必要ビット数をグループ分類部540及びシンボル変換部530に出力する。本例では、各ブロックについて4つの必要ビット数が算出される。
ステップ130(S130)において、グループ分類部540は、ビット数算出部520により算出された注目ブロックの必要ビット数の組に基づいて、注目ブロックを上位グループに分類する。
ステップ140(S140)において、符号割当部550は、グループ分類部540により注目ブロックが分類された上位グループが通知されると、この上位グループの出現頻度値を1増加させる。
ステップ150(S150)において、シンボル変換部530は、注目ブロックに含まれる各シンボルを、ビット数算出部520により算出された必要ビット数で表現されたシンボルに変換し、必要ビット数で表現された4つのシンボルを符号統合部560に出力する。
ステップ160(S160)において、符号化プログラム5は、全シンボルが処理されたか否かを判断し、全シンボルが処理された場合に、S170の処理に移行し、未処理のシンボルが存在する場合に、S110の処理に戻る。
ステップ170(S170)において、符号割当部550は、上位グループの出現頻度値に基づいて、各上位グループに対してハフマン符号(グループ符号)を割り当てる。
ステップ180(S180)において、符号統合部560は、各ブロックが分類された上位グループのハフマン符号と、このブロックのシンボル(必要ビット数で表現されたもの)とを統合して、ブロック符号を生成し、生成されたブロック符号を出力符号として外部に出力する。
このように、本実施形態における画像処理装置2は、複数のシンボルが含まれたブロック単位で、可変長符号を生成することにより、符号化処理を高速化することができる。
また、本画像処理装置2は、複数のブロックを上位グループに分類し、上位グループに対して符号を割り当てることにより、符号表のサイズを抑えることができる。
また、本画像処理装置2は、ブロック内のシンボルに対する処理を独立に並列化することができるので、そのような処理が可能なアーキテクチャで高速化を図ることができる。
[復号化プログラム]
図6は、制御装置20(図2)により実行される復号化プログラム6の機能構成を例示する図である。
図6に例示するように、復号化プログラム6は、符号長特定部600、シンボル抽出部610、シンボル復号部620、及びデータ再生部630を有する。
復号化プログラム6は、例えば、図2に例示した記録媒体240に記録され、この記録媒体240を介して、制御装置20(図2)に供給される。
符号化プログラム6において、符号長特定部600は、入力された符号データに基づいて、ブロック単位で各シンボルの符号長を特定する。
本例の符号長特定部600は、上位ブロックに割り当てられた符号(グループ符号)に基づいて、ブロックに含まれる各シンボルのビット数(すなわち必要ビット数)を特定し、特定されたビット数をシンボル抽出部610に出力する。
シンボル抽出部610は、入力された符号データから、符号長特定部600により特定された符号長に基づいて、各シンボルの符号を抽出する。
本例のシンボル抽出部610は、符号長特定部600により特定されたシンボルのビット数に基づいて、ブロックに含まれる各シンボルのビット列(必要ビット数で表現されたシンボル値)を切り出す。
シンボル復号部620は、シンボル抽出部610により抽出された各シンボルの符号を復号化して、各シンボル値を生成する。
本例のシンボル復号部620は、シンボル抽出部610により切り出されたシンボルのビット列(必要ビット数で表現されたシンボル値)の上位に0のビット列を付加して8ビット表現のシンボルを生成し、生成されたシンボルをデータ再生部630に出力する。
データ再生部630は、シンボル復号部620により復号化されたシンボルに基づいて、データファイルを再生する。
本例のデータ再生部630は、シンボル復号部620から入力されるシンボル(予測誤差値)に基づいて、元の画像データを生成する。
[復号化動作]
図7は、復号化プログラム6(図6)による復号化処理(S20)のフローチャートである。
図7に示すように、ステップ200(S200)において、符号長特定部600は、入力された符号データのグループ符号を復号化して、各ブロックの必要ビット数の組を特定する。
ステップ210(S210)において、復号化プログラム6は、入力された符号データの中から、順に注目ブロックの符号を設定する。
ステップ220(S220)において、シンボル抽出部610は、符号長特定部600により特定された必要ビット数に基づいて、注目ブロックのビット列の中から、各シンボルのヒット列(すなわち、必要ビット数で表現されたシンボル)を切り出す。例えば、図4(C)に例示するように、グループ符号が上位グループ「3141」に相当する場合、先頭から、3ビット、1ビット、4ビット、1ビットがそれぞれシンボルのビット列(符号)として切り出される。
ステップ230(S230)において、シンボル復号部620は、シンボル抽出部610により切り出されたシンボルのビット列(必要ビット数で表現されたもの)に対して、0の上位ビットを付加して、8ビット表現のシンボルを生成する。例えば、図4(B)に例示するシンボル(3ビット、1ビット、4ビット、1ビット)は、上位に0ビットが付加されて、図4(A)に例示するシンボルS0〜S3が生成される。
ステップ240(S240)において、復号化プログラム6は、全ブロックについて復号化処理が終了したか否かを判断し、全ブロックが処理された場合に、S250の処理に移行し、未処理のシンボルが存在する場合に、S210の処理に戻る。
ステップ250(S250)において、データ再生部630は、シンボル復号部620により生成されたシンボル(予測誤差値)に基づいて、元の画像データを生成する。
このように、本実施形態における画像処理装置2は、ブロック単位で符号長を特定するため、復号化処理を高速化することができる。
[変形例1]
次に、上記実施形態の変形例1を説明する。
上記実施形態では、図4に例示するように、ブロックに含まれるシンボルの必要ビット数の組合せに基づいて、各ブロックを上位グループに分類していたが、第1の変形例では、ブロックに含まれるシンボルの必要ビット数のうちの最大値に基づいて、各ブロックを上位グループに分類する。
例えば、図8(A)に例示するように、4つのシンボルS0〜S3が含まれたブロックが存在する場合に、これらのシンボルの必要ビット数のうち、最大値を検出する。本例では、シンボルS0(予測誤差4)の必要ビット数が3ビットであり、シンボルS1(予測誤差1)の必要ビット数が1ビットであり、シンボルS2(予測誤差11)の必要ビット数が4ビットであり、シンボルS3(予測誤差1)の必要ビット数が1ビットである。そのため、本例の最大値は4である。
そして、本変形例では、最大値となったビット数でブロック内の各シンボルが表現される。すなわち、本例では、図8(B)に例示するように、シンボルS0〜S3が全て4ビットで表現される。
そして、図8(C)に例示するように、上位ブロックに割り当てられた符号(グループ符号)と、最大値のビット数で表現されたシンボル値(本例では、4ビット表現されたシンボルS0〜S3)とを統合して、ブロック符号が作成される。
図9は、第2の符号化プログラム52の機能構成を例示する図である。なお、本図に示された各構成のうち、図3に示された構成と実質的に同一のものには同一の符号が付されている。
図9に例示するように、第2の符号化プログラム52は、図3の符号化プログラム5に最大値検出部570を追加した構成をとる。
符号化プログラム52において、最大値検出部570は、各ブロックについて、ブロック内に含まれるシンボルの中から、必要ビット数が最大となるシンボルを検出する。
本例の最大値検出部570は、ブロックに含まれる複数のシンボルのうち、シンボル値が最大となるシンボルを検出する。
本変形例のビット数算出部520は、最大値検出部570により検出されたシンボルについて、必要ビット数を算出する。
本変形例のシンボル変換部530は、ビット数算出部520により算出された必要ビット数で、ブロックに含まれる全シンボルを表現する。
本変形例のグループ分類部540は、ビット数算出部520により算出された必要ビット数(すなわち、最大値検出部570により検出されたシンボルの必要ビット数)に基づいて、各ブロックを上位グループに分類する。
このように、変形例1では、ブロック内の符号長を同一にすることにより、上記実施形態よりも処理を高速化できる。
なお、ブロックに含まれるシンボル数を8の倍数にすれば、最大値の必要ビット数で表現されるパートが、バイトバウンダリになる。さらにハフマン符号語をバイトバウンダリで設計すれば、符号全体がバイトバウンダリになり、さらなる高速化が期待できる。
また、ハフマン符号語は、いくつかのブロックをまとめて表現してもよい。例えば1バイトを4ビットずつに分けて、上位4ビットで第1のブロックを、また下位4ビットで第2のブロックの符号語を格納するようにしてもよい。
[変形例2]
上記実施形態では、図10(A)に例示するように、各シンボルを必要ビット数で表現したが、第2の変形例では、図10(B)に例示するように、必要ビット数で表現されたシンボルのビット列から、さらに最上位ビット(すなわち、シンボルのMSB)を省略する。すなわち、Nビット表現すべきシンボルが、同一ビットを含む場合、そのビットは省略してもよい。例えば、シンボル2とシンボル3を2ビット表現する場合、いずれもMSB(Most Significant Bit)は、1となる。したがって、このビットを2ビット表現に含める必要はない。
また、第2の変形例では、Nビット表現されるシンボルが1種類である場合、Nビット表現を省略してもよい。例えば、図10(A)に例示するシンボル値「1」は、1ビット表現されるが、1ビット表現されるシンボルはシンボル値「1」の1種類だけであるから、図10(B)に例示するように、シンボル値「1」のビット列を省略できる。このシンボル値「1」は、グループ符号「3141」の「1」によって復号化できる。
[変形例3]
上記実施形態及び変形例1では、暗黙にシンボル値が小さいシンボルほど高い頻度で出現するという仮定をおいていた。特に前段にソースコーダを設ける場合、そのような仮定はごく一般的であり、またそうなるようにソースコーダを設計することも比較的容易である。
しかしそうでないケースもありえる。そこで、第3の変形例では、シンボル値そのままではなく、変換する例について述べる。
本変形例は、必要ビット数を算出する前にシンボル値の変換を行う。この変換は、より多く出現するシンボル値に、より小さいインデクスが振られるように行う。これは予め計測したり他のデータから予測したりして出現頻度を求め、これをソートして得られる出現頻度順のシンボル値を表すルックアップテーブルなどで簡単に実現できる。
[変形例4]
上記変形例3のさらなる変形例として、1パス目では上記変形例2(実施形態でもよい)で説明した符号化処理を行いつつ、同時に出現頻度を計測しておき、さらに圧縮率を高めたい場合に、上記変形例3で再処理する。このとき出現頻度から正確に再処理後の符号量が求められるので、これを元に再処理の是非を判定するような構成でもよい。
[その他の変形例]
また、上記実施形態では、シンボル変換部530がシンボル単位でシンボルの変換を行っているが、複数シンボル単位で変換を行ってもよい。例えば、隣あう2シンボルのパターンについて、ルックアップテーブルを生成すればよい。こうすることで記憶を有する情報源の圧縮率を向上することができる。
また、上記実施形態では、ソースコーダ500がシンボルとして予測誤差値を算出しているが、他の方法でシンボルを生成してもよい。
[第2実施形態]
次に、第2の実施形態を説明する。
上記第1の実施形態では、予測誤差値毎に符号を割り振るため、周期性を持った被圧縮情報に対しては冗長となる。例えば、JPEG-LSのgolomb-rice符号(パラメータk=1)の場合、図11(A)に例示するように、予測誤差値が5,0,2,0,8,0と連続すると、それぞれの予測誤差値が、4,2,3,2,6,2bitに符号化される。これは周期性を考慮できていないため、冗長である(図 2)。なお、上記の議論は、Huffman符号又はgolomb-rice符号に限定されるものではなく、一般的な可変長符号化について成立する。
そこで、第2の実施形態は、冗長な予測誤差値データを適切に消去する。具体的には、符号化処理において、本実施形態の符号化プログラム54(後述)は、パターンマッチング処理を行って、図11(B)に例示するように、既定のパターンにマッチした予測誤差を消去し、エントロピ符号化の対象数を減少させる。次に、符号化プログラム54は、図11(C)に例示するように、パターンマッチング結果に応じて、復号時に必要となる挿入情報を付与する。
ただし、パターンにマッチングしたからといって必ずしも予測誤差を消去する必要はない。例えば、挿入情報表現の符号長とエントロピ符号長を比較し、効率的なほうを利用することが考えられる。
また、復号化処理においては、復号化プログラムは、挿入情報を読み取り、必要なら予測誤差値の消去位置を特定し、特定された消去位置に、適切な値を埋め戻す。
被圧縮情報が画像データの場合には、出現パターンに偏りが見られるので、挿入情報は数十種類程度で十分な圧縮効果が得られる。
また、パターンマッチングする被圧縮情報の数(以下、ブロックと呼ぶ)を十分大きくすれば、挿入情報を追加したことによるオーバーヘッドは無視できる。
また、冗長なデータを消去しているので、エントロピ符号化の処理対象を減らすことができ、高速化できる。
挿入情報は、復号時に消去したパターン(または挿入位置)を特定するものであり、復号時にはその挿入情報に従って、適切な値を再び挿入すればよい。
一般的に、予測誤差値は0にピークをもった分布になることから、本実施形態では、消去する値を予測誤差0とし、1ブロックに含まれるシンボル数(予測誤差値の数)を8として具体的に説明する。
図12は、第3の符号化プログラム54の機能構成を例示する図である。なお、本図に示された各構成のうち、図3又は図9に示された構成と実質的に同一のものには同一の符号が付されている。
図12に例示するように、第3の符号化プログラム54は、図9の符号化プログラム52のグループ生成部510及び符号統合部560をそれぞれ第2のグループ生成部512及び第2の符号統合部562で置換し、さらに、パターンマッチ部580及び挿入情報符号化部590を追加した構成をとる。
符号化プログラム54において、パターンマッチ部580は、グループ生成部512により生成されたブロック(すなわち、複数のシンボル)に対して、既定のパターンによるパターンマッチングを行い、パターンがマッチした場合に、マッチしたパターンに対応する位置のシンボルをブロックから削除し、マッチしたパターンを挿入情報符号化部590に通知する。
本例のパターンマッチ部580は、ブロックに含まれる8つの予測誤差値と、図13(A)に例示する被圧縮情報パターンとを比較し、いずれかのパターンがマッチした場合に、そのパターンに対応する0をブロックから削除してグループ生成部512に出力し、マッチしたパターンのパターン名を挿入情報符号化部590に出力する。
挿入情報符号化部590は、パターンマッチ部580により削除されたシンボルの値及び位置を特定するための情報を符号化する。
本例の挿入情報符号化部590は、パターンマッチ部580から入力されたパターン名に対応する符号(挿入情報表現)を符号統合部562に出力する。
本例のグループ生成部512は、ソースコーダ500から入力されたシンボル群を走査順に8つずつのブロックに分け、各ブロックをパターンマッチ部580に出力する。さらに、グループ生成部512は、パターンマッチ部580によりシンボルが削除されたシンボルを最大値検出部570及びシンボル変換部530に出力する。
本例の符号統合部562は、符号割当部550により割り当てられたグループ符号と、シンボル変換部530により変換されたシンボル値(予測誤差値)のビット列との間に、挿入情報符号化部590から入力された挿入情報表現を挿入する。
上記構成の動作としては、まず、グループ生成部512が、複数の被圧縮情報(予測誤差値)でブロッキングする。
次に、パターンマッチ部580が、パターンマッチング処理に合う場合には、パターンにマッチした予測誤差値(冗長な予測誤差0)をブロックから削除し、エントロピ符号かの対象数を減少させる。
次に、最大値検出部570、ビット数算出部520及びグループ分類部540が、ブロック(予測誤差値0が削除されたものも含まれうる)に含まれる予測誤差値(被圧縮情報)の表現に必要なビット数を特定し、特定されたビット数の最大値でブロックをグルーピングする。また、符号割当部550が、グルーピングされたブロックに対して符号を割り当てる。
最後に、符号統合部562が、挿入情報符号化部590により符号化された挿入情報を、符号割当部550により割り当てられた符号(グループ符号)に次いで挿入する。
次に、図13(A)に例示されたパターンを説明する。なお、本図のパターンは、被圧縮情報(シンボル)が8個である場合の一例である。本図において、"x"は、どのような画素値でもよいことを意味する。パターンマッチング後の被圧縮情報が8の倍数に揃うように被圧縮情報を32の倍数個に設定することで更なる高圧縮が期待できる。
また、変形例2で後述するブロック単位のランレングスコーダと結合することで、更なる高速化が期待できる。ただし、s3はマッチング後の被圧縮情報が8個の倍数でなくなるため、処理をバイトバウンダリにするためには、冗長なダミー情報を含むことになる。
また、s2xを2種類,s3xを3種類,s4xを4種類用意してあるのは、位相差に対応するためである。
図13(A)に例示した9種類のパターンは、挿入情報表現(パターン名の符号)に対応付けられており、復号時にはそれぞれのパターンに従って、予測誤差0が埋め戻される。
[変形例1]
次に、上記第2の実施形態の変形例を説明する。
第1の変形例では、上記第2の実施形態よりも更に高圧縮にするために、図13(B)に例示するように、マッチングパターンの追加を行う。追加されるマッチングパターンは、エッジに対応するためのものである。なぜなら、CG画像(コンピュータにより生成された画像)などでは、予測誤差値がe1,e2xなどの単独ピークを持ったものになることが多いからである。
特に、第1の実施形態の変形例1のように、ブロック内の被圧縮情報の表現に必要なビット数の最大値でグルーピングした場合に効果が大きく、圧縮率/処理速度を改善できる。
また、エッジ対応のマッチングパターン(図13(B)の下方から3つ)に一致した場合には、特に、予測誤差値ではなく、予測誤差値0を消去した後の画素値をそのまま符号とすることが考えられる。こうすれば容易にバイトバウンダリを実現でき、高速性も維持できる。
なお、本変形例での挿入情報は、図13(B)のマッチングパターン名と、ブロック先頭又は末尾からの非ゼロ値までのオフセット(距離)とその値(x)を含むものである。ただし、ここでは、予測誤差(x)を挿入情報として用いているが、予測誤差を計算する前の(x)に対応する箇所の画素値をそのまま符号にすることもできる。この場合、誤差値から画素値を復元する処理がなくなり、高速な復号が実現できるようになる。
また、オフセットを2つ準備し、2箇所のピークを持ったパターンも同様の考え方で作成できる。
[変形例2]
また、図14に例示するように、さらに直前ブロックの最後尾の画素値で、注目ブロックが埋められている場合には、ランレングス符号化を実施することも可能であり、こうすることで、最大値検出処理などの比較的重い処理を省き高速な符号化ができる。
[マッチングパターンの検討]
次に、上記変形例1のマッチングパターンが好ましい理由について述べる。
図15(A)は、代表的な予測式(図15(C)に例示するX=A+B-C)で予測誤差を算出したときの、非ゼロの箇所x(x≧1)の出現頻度を示している。ただし、非圧縮情報としてCG画像を利用し、一つのブロックに含まれる被圧縮情報は32個として計算している。
図15(A)からわかるように、非ゼロ値の箇所としては、1、2、3、4である場合がほとんどであることがわかる。
次いで、非ゼロ値の箇所が2箇所である場合において、頻出のパターンを調査した。調査パターンは下記3つであり、出現頻度結果を図15(B)に示す。
(調査パターン1)非ゼロ値が2個連続 (例えば、0xx000…00)
(調査パターン2)非ゼロ値-ゼロ値-非ゼロ値 (例えば、0x0x00…00)
(調査パターン3)その他(上記調査パターン1又は2以外)
図15(B)からわかるように、非ゼロ値が連続するパターンがほとんどを占めている。また、非ゼロ値-ゼロ値-非ゼロ値の調査パターン2と、非ゼロ値が2個連続する調査パターン1とを合わせると、全体の約80%以上を占めていることがわかる。
結果的に、ブロックサイズが32程度であれば、ピークはせいぜい1個〜2個程度であることがわかる。
以上より、図13(B)のエッジ対応パターン(e2, e2a、e2bパターン)を導入するだけで、圧縮率が向上する。
なお、これは予測式(X=A+B-C)で、斜め方向の予測ができないことに起因するものである。しかし、注目画素近傍の値A,B,Cなどを用いて予測する場合には、同様の傾向が見られる。例えば、X=Aで予測した場合には、縦方向又は斜め方向のエッジでe2xが多数発生する。
次いで、非ゼロ値が3個の場合において、頻出のパターンを調査した。調査パターンは下記3つであり、出現頻度結果を図16(A)に示す。
(調査パターン4)非ゼロ値2個が連続し、非ゼロ値が1個孤立 (例えば、0xx000x0…)
(調査パターン5)非ゼロ値が3個連続 (例えば、0x00xxx00000…)
(調査パターン6)その他(上記調査パターン4又は調査パターン5以外)
この場合、調査パターン4に該当する場合が多いことがわかる。これは、図13(B)のエッジ対応パターンe2x及びe1の組み合わせパターンを準備しておけば、非ゼロ値が3個のブロックを効率的に圧縮できることを意味している。
同様にして、非ゼロ値が4個の場合においても、エッジ対応パターンe2x及びe1の組み合わせが好ましいことが推定できる。
図16(B)は、第1の実施形態の変形例1と第2の実施形態の変形例1とで同一の画像を符号化した場合の符号量を示すグラフである。図16(B)からわかるように、第2の実施形態の変形例1は、第1の実施形態の変形例1よりも符号量を小さくすることができる。すなわち、パターンマッチングによるシンボルの削除が有用であることが示されている。
シンボル単位で符号長が変化する形態と、ブロック単位で符号長が変化する形態とを比較する図である。 本発明にかかる符号化方法が適応される画像処理装置2のハードウェア構成を、制御装置20を中心に例示する図である。 制御装置20(図2)により実行され、本発明にかかる符号化方法を実現する符号化プログラム5の機能構成を例示する図である。 符号化プログラム5(図3)による符号化処理を説明する図である。 符号化プログラム5(図3)による符号化処理(S10)のフローチャートである。 制御装置20(図2)により実行される復号化プログラム6の機能構成を例示する図である。 復号化プログラム6(図6)による復号化処理(S20)のフローチャートである。 ブロック内の最大値の必要ビット数でシンボルを表現する形態を説明する図である。 第2の符号化プログラム52の機能構成を例示する図である。 必要ビット数で表現されたシンボルのMSBを省略する形態を説明する図である。 第2の実施形態の概要を説明する図である。 第3の符号化プログラム54の機能構成を例示する図である。 パターンマッチ部580で用いられるパターンを例示する図である。 ブロック単位のランレングス符号化を説明する図である。 (A)は、ブロックにおける非ゼロの個数及び出現頻度を示すグラフであり、(B)は、非ゼロが2個のパターンの出現頻度を示すグラフであり、(C)は、予測式を例示する図である。 (A)は、非ゼロが3個のパターンの出現頻度を示すグラフであり、(B)は、第1の実施形態の変形例1による符号量、及び、第2の実施形態の変形例1による符号量のグラフである。
符号の説明
2・・・画像処理装置
5,52・・・符号化プログラム
500・・・ソースコーダ
510・・・グループ生成部
520・・・ビット数算出部
530・・・シンボル変換部
540・・・グループ分類部
550・・・符号割当部
560・・・符号統合部
570・・・最大値検出部
580・・・パターンマッチ部
590・・・挿入情報符号化部
6・・・復号化プログラム
600・・・符号長特定部
610・・・シンボル抽出部
620・・・シンボル復号部
630・・・データ再生部

Claims (9)

  1. 複数の被圧縮情報をまとめて、被圧縮情報のグループを生成するグループ生成手段と、
    前記グループ生成手段により生成されたグループに対して、符号を割り当てる符号割当手段と、
    それぞれのグループに属する被圧縮情報を、各グループに割り当てられた符号を用いて符号化する被圧縮情報符号化手段と
    を有する符号化装置。
  2. 前記グループ生成手段は、複数の被圧縮情報をまとめて、被圧縮情報の下位グループを生成し、
    前記グループ生成手段により生成された下位グループを、上位グループに分類するグループ分類手段
    をさらに有し、
    前記符号割当手段は、前記上位グループに対して、符号を割り当て、
    前記被圧縮情報符号化手段は、同一の前記上位グループに属する下位グループの被圧縮情報を、この上位グループに割り当てられた可変長符号を用いて符号化する
    請求項1に記載の符号化装置。
  3. 前記グループ生成手段は、入力された複数の被圧縮情報を入力順に既定数ずつまとめて、既定数の被圧縮情報が含まれた下位グループを生成し、
    前記グループ分類手段は、前記下位グループに属する被圧縮情報を表現するためのビット数に基づいて、下位グループを上位グループに分類する
    請求項2に記載の符号化装置。
  4. 前記符号割当手段は、各グループの出現確率に応じて、それぞれのグループにエントロピー符号を割り当てる
    請求項1に記載の符号化装置。
  5. 入力された被圧縮情報に基づいて、この被圧縮情報よりも少ないビット数で表現されたビット列に変換する被圧縮情報変換手段
    をさらに有し、
    前記被圧縮情報符号化手段は、それぞれのグループに属する被圧縮情報について前記被圧縮情報変換手段により変換されたビット列と、このグループに割り当てられた符号とを用いて、符号化する
    請求項1に記載の符号化装置。
  6. 前記グループ生成手段により生成された下位グループから、既定のパターンに合致する被圧縮情報を削除するパターンマッチ手段
    をさらに有し、
    前記グループ分類手段は、前記パターンマッチ手段により下位グループから被圧縮情報が削除された場合に、被圧縮情報が削除された下位グループを上位グループに分類する
    請求項2に記載の符号化装置。
  7. 複数の被圧縮情報からなるグループに割り当てられた符号に基づいて、このグループに属する被圧縮情報の符号長を特定する符号長特定手段と、
    前記符号長特定手段により特定された各被圧縮情報の符号長に基づいて、前記グループに属する被圧縮情報を復号化する被圧縮情報復号化手段と
    を有する復号化装置。
  8. 複数の被圧縮情報をまとめて、被圧縮情報のグループを生成し、
    生成されたグループに対して、符号を割り当て、
    それぞれのグループに属する被圧縮情報を、各グループに割り当てられた符号を用いて符号化する
    符号化方法。
  9. 複数の被圧縮情報をまとめて、被圧縮情報のグループを生成するステップと、
    生成されたグループに対して、符号を割り当てるステップと、
    それぞれのグループに属する被圧縮情報を、各グループに割り当てられた符号を用いて符号化するステップと
    をコンピュータに実行させるプログラム。
JP2007157176A 2006-08-07 2007-06-14 符号化装置、復号化装置、符号化方法及びプログラム Expired - Fee Related JP4893956B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007157176A JP4893956B2 (ja) 2006-08-07 2007-06-14 符号化装置、復号化装置、符号化方法及びプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006214348 2006-08-07
JP2006214348 2006-08-07
JP2007157176A JP4893956B2 (ja) 2006-08-07 2007-06-14 符号化装置、復号化装置、符号化方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2008067351A true JP2008067351A (ja) 2008-03-21
JP4893956B2 JP4893956B2 (ja) 2012-03-07

Family

ID=39289592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007157176A Expired - Fee Related JP4893956B2 (ja) 2006-08-07 2007-06-14 符号化装置、復号化装置、符号化方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4893956B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013201602A (ja) * 2012-03-26 2013-10-03 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
JP2014027658A (ja) * 2012-07-30 2014-02-06 Intel Corp 圧縮エンコーディング及びデコーディング方法並びに装置
JP2014146972A (ja) * 2013-01-29 2014-08-14 Fuji Xerox Co Ltd 符号化装置、復号装置、符号化・復号システム、及びプログラム
US9161047B2 (en) 2013-01-25 2015-10-13 Fuji Xerox Co., Ltd. Image encoding apparatus and method, image decoding apparatus, and non-transitory computer readable medium
JP2019525583A (ja) * 2016-07-13 2019-09-05 エーティーアイ・テクノロジーズ・ユーエルシーAti Technologies Ulc デルタカラー圧縮用のビットパッキング

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0322690A (ja) * 1989-06-20 1991-01-31 Fujitsu Ltd 可変長符号化方式及び可変長復号化方式
JPH0484565A (ja) * 1990-07-26 1992-03-17 Matsushita Electric Ind Co Ltd 画像信号圧縮伸張装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0322690A (ja) * 1989-06-20 1991-01-31 Fujitsu Ltd 可変長符号化方式及び可変長復号化方式
JPH0484565A (ja) * 1990-07-26 1992-03-17 Matsushita Electric Ind Co Ltd 画像信号圧縮伸張装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013201602A (ja) * 2012-03-26 2013-10-03 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
JP2014027658A (ja) * 2012-07-30 2014-02-06 Intel Corp 圧縮エンコーディング及びデコーディング方法並びに装置
US9161047B2 (en) 2013-01-25 2015-10-13 Fuji Xerox Co., Ltd. Image encoding apparatus and method, image decoding apparatus, and non-transitory computer readable medium
JP2014146972A (ja) * 2013-01-29 2014-08-14 Fuji Xerox Co Ltd 符号化装置、復号装置、符号化・復号システム、及びプログラム
JP2019525583A (ja) * 2016-07-13 2019-09-05 エーティーアイ・テクノロジーズ・ユーエルシーAti Technologies Ulc デルタカラー圧縮用のビットパッキング
JP6990227B2 (ja) 2016-07-13 2022-01-12 エーティーアイ・テクノロジーズ・ユーエルシー デルタカラー圧縮用のビットパッキング

Also Published As

Publication number Publication date
JP4893956B2 (ja) 2012-03-07

Similar Documents

Publication Publication Date Title
CN102687404B (zh) 用于数据压缩的数据值出现信息
KR100894002B1 (ko) 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법
JP3337633B2 (ja) データ圧縮方法及びデータ復元方法並びにデータ圧縮プログラム又はデータ復元プログラムを記録したコンピュータ読み取り可能な記録媒体
JP4893957B2 (ja) 符号化装置、復号化装置、符号化方法及びプログラム
AU2012332327B2 (en) Method and apparatus for image compression storing encoding parameters in 2D matrices
US7826670B2 (en) Data compression apparatus and data compression program storage medium
JP2007228582A (ja) 圧縮率の向上のために改善されたコンテキストモデル選択を使用するcabac符号化方法及び装置、並びにcabac復号化方法及び装置
JP2010136417A (ja) データ圧縮装置、及びデータ復元装置
JP4893956B2 (ja) 符号化装置、復号化装置、符号化方法及びプログラム
KR20180067956A (ko) 데이터 압축 장치 및 방법
WO2021145105A1 (ja) データ圧縮装置、およびデータ圧縮方法
JP4758494B2 (ja) ビット長を符号に変換する回路及び方法
JP6005273B2 (ja) データストリームの符号化方法、送信方法、伝送方法、データストリームを符号化するための符号化装置、送信装置、および、伝送装置
JP5842357B2 (ja) 画像処理装置及び画像処理プログラム
JP4377351B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP2007336056A (ja) 符号化装置、符号化方法及びプログラム
JP2005260408A (ja) データ圧縮装置およびデータ圧縮プログラム
JP4131970B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4377352B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4743884B2 (ja) 画像符号化装置及びその制御方法
JP4181147B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4095454B2 (ja) データ復号装置及びデータ復号方法
JP2006217503A (ja) データ圧縮装置およびデータ圧縮プログラム
JP4743883B2 (ja) 画像符号化装置およびその制御方法
KR20000050342A (ko) 비손실 데이터 압축 및 신장방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111005

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4893956

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3

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

LAPS Cancellation because of no payment of annual fees