JP2011166320A - 情報処理装置、情報処理方法、プログラム及び記憶媒体 - Google Patents
情報処理装置、情報処理方法、プログラム及び記憶媒体 Download PDFInfo
- Publication number
- JP2011166320A JP2011166320A JP2010024824A JP2010024824A JP2011166320A JP 2011166320 A JP2011166320 A JP 2011166320A JP 2010024824 A JP2010024824 A JP 2010024824A JP 2010024824 A JP2010024824 A JP 2010024824A JP 2011166320 A JP2011166320 A JP 2011166320A
- Authority
- JP
- Japan
- Prior art keywords
- fixed
- code
- length
- input
- variable
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
【課題】2種類以上の固定長符号で構成される符号化画像データを、効率的に可変長符号化する。
【解決手段】固定長符号のそれぞれを、入力符号として取得する。入力符号の固定長符号化方法を判定する。入力符号を可変長符号に変換する。何れかが生成した可変長符号を、入力符号を可変長符号化した結果として出力する。対応する固定長符号化方法が予め設定されており、入力符号が対応する固定長符号化方法によって符号化されている場合に、対応する固定長符号化方法によって生成された固定長符号を可変長化する方法として予め設定された可変長符号化方法を用いて、入力符号を可変長符号に変換する。
【選択図】図1
【解決手段】固定長符号のそれぞれを、入力符号として取得する。入力符号の固定長符号化方法を判定する。入力符号を可変長符号に変換する。何れかが生成した可変長符号を、入力符号を可変長符号化した結果として出力する。対応する固定長符号化方法が予め設定されており、入力符号が対応する固定長符号化方法によって符号化されている場合に、対応する固定長符号化方法によって生成された固定長符号を可変長化する方法として予め設定された可変長符号化方法を用いて、入力符号を可変長符号に変換する。
【選択図】図1
Description
本発明は、画像データの符号化技術に関する。
固定長符号化された画像は、回転などの画像編集を行うの際には非常に利便性が高い。しかしながら固定長符号化された画像は一般に可変長符号化された画像よりもデータサイズが大きい。従って、ハードディスクなどへ格納するためには、画像を固定長符号化することは容量の点で不利である。そこで、固定長符号化した画像を更に可変長符号化する方法が開発されている。
例えば特許文献1には、同一の固定長符号化データが連続する場合に、固定長符号化データの繰り返し回数を符号化することにより、可変長符号化を行う方法が開示されている。また特許文献2には、画像の周波数成分ごとに所定のビット数を割り当て、さらにエントロピー符号化を行う方法が開示されている。
しかしながら、1つの画像が、2つ以上の固定長符号化方法を用いて符号化されることがある。例えば特開2008−278042号公報には、1つの画像を複数の領域に分割し、選択された固定長符号化方法を用いてそれぞれの領域を固定長符号化する方法が開示されている。このような、2種類以上の固定長符号で構成される符号化画像データは、同一の固定長符号化データが連続する可能性が低い。従って、特許文献1の方法を用いても圧縮効果が低いことが考えられる。また、異なる種類の固定長符号は異なるビットアサインを有する。従って、特許文献2の方法を用いる場合、符号語の出現確率が分散するため、圧縮率が上がらない可能性がある。
本発明は、2種類以上の固定長符号で構成される符号化画像データを、効率的に可変長符号化することを可能とする。
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。すなわち、
オリジナル画像を分割して得られる各分割画像を複数の固定長符号化方法のうちの何れかを用いて固定長符号化することによって生成された固定長符号のそれぞれを、可変長符号に変換する情報処理装置であって、
前記固定長符号のそれぞれを、入力符号として取得する入力手段と、
前記入力符号の固定長符号化方法を判定する判定手段と、
前記入力符号を可変長符号に変換する複数の変換手段と、
前記複数の変換手段のうちの何れかが生成した可変長符号を、前記入力符号を可変長符号化した結果として出力する出力手段と、を備え、
前記複数の変換手段のそれぞれは、対応する固定長符号化方法が予め設定されており、前記入力符号が当該対応する固定長符号化方法によって符号化されている場合に、当該対応する固定長符号化方法によって生成された固定長符号を可変長化する方法として当該変換手段に予め設定された可変長符号化方法を用いて、前記入力符号を可変長符号に変換することを特徴とする。
オリジナル画像を分割して得られる各分割画像を複数の固定長符号化方法のうちの何れかを用いて固定長符号化することによって生成された固定長符号のそれぞれを、可変長符号に変換する情報処理装置であって、
前記固定長符号のそれぞれを、入力符号として取得する入力手段と、
前記入力符号の固定長符号化方法を判定する判定手段と、
前記入力符号を可変長符号に変換する複数の変換手段と、
前記複数の変換手段のうちの何れかが生成した可変長符号を、前記入力符号を可変長符号化した結果として出力する出力手段と、を備え、
前記複数の変換手段のそれぞれは、対応する固定長符号化方法が予め設定されており、前記入力符号が当該対応する固定長符号化方法によって符号化されている場合に、当該対応する固定長符号化方法によって生成された固定長符号を可変長化する方法として当該変換手段に予め設定された可変長符号化方法を用いて、前記入力符号を可変長符号に変換することを特徴とする。
2種類以上の固定長符号で構成される符号化画像データを、効率的に可変長符号化できる。
以下、本発明の実施例を図面に基づいて説明する。ただし、本発明の範囲は以下の実施例に限定されるものではない。
[実施例1]
本実施例では、固定長符号を可変長化する。入力である固定長符号は、処理対象画像(オリジナル画像)の一部(ブロック画像(分割画像))を、所定のビット数となるように符号化することで生成されている。固定長符号は複数の固定長符号化方法(固定長符号化モード)のうち何れかの方法によって生成されている。本実施例における固定長符号化モードとしては、階調モード及び二色化モード(各モードの詳細は後述)の2つがあるものとする。それぞれのブロック画像は、どちらか一方の符号化モードで固定長符号化されている。それぞれのブロック画像に対して選択された適切な符号化モードで、固定長符号化が行われていてもよい。用いられた固定長符号化モードによって固定長符号の特性は異なるため、最適な可変長符号化方法も固定長符号化モードによって異なる。そこで本発明では、固定長符号の符号化モードを判別する。判別された符号化モードに応じて、複数の固定長符号化方法から選択された可変長符号化方法を用いることにより、高い圧縮率を実現する。
[実施例1]
本実施例では、固定長符号を可変長化する。入力である固定長符号は、処理対象画像(オリジナル画像)の一部(ブロック画像(分割画像))を、所定のビット数となるように符号化することで生成されている。固定長符号は複数の固定長符号化方法(固定長符号化モード)のうち何れかの方法によって生成されている。本実施例における固定長符号化モードとしては、階調モード及び二色化モード(各モードの詳細は後述)の2つがあるものとする。それぞれのブロック画像は、どちらか一方の符号化モードで固定長符号化されている。それぞれのブロック画像に対して選択された適切な符号化モードで、固定長符号化が行われていてもよい。用いられた固定長符号化モードによって固定長符号の特性は異なるため、最適な可変長符号化方法も固定長符号化モードによって異なる。そこで本発明では、固定長符号の符号化モードを判別する。判別された符号化モードに応じて、複数の固定長符号化方法から選択された可変長符号化方法を用いることにより、高い圧縮率を実現する。
図1(A)は、本実施例に係る情報処理装置100の一例を示す。本実施例においては、固定長符号110が情報処理装置100に入力される。そして、情報処理装置100は固定長符号110を可変長化し、可変長符号120として出力する。ここで、固定長符号110について説明する。固定長符号110は、処理対象画像を8×8画素のブロック画像に分割し、それぞれのブロック画像を81ビットの固定長符号としたものである。本実施例においては、処理対象画像におけるラスタ順に、この固定長符号が情報処理装置100に入力される。
図2に固定長符号の構造の一例、すなわちビットアサインを示す。MSB(最上位ビット)は固定長符号化モードを示す。以降ではこのMSBはモード情報と呼ばれる。モード情報が「1」の時は、固定長符号が二色化モードで符号化されていることを示す。「0」の時は固定長符号が階調モードで符号化されていることを示す。もっとも、他の方法によって固定長符号の符号化モードが示されていてもよい。
次に、それぞれの固定長符号化モードについて説明する。図2(A)は二色化モードにおけるビットアサインの一例を示す。図2(A)中、C0(第1の画素値)及びC1(第2の画素値)は画素値を示す8ビットの情報である。固定長符号化によって、ブロック画像内の画素値はC0とC1との何れかに近似される。位置情報(識別情報)は64ビットの情報である。位置情報は、ブロック画像内の各画素がC0とC1とのどちらの画素値に対応するかを、各画素について1ビットを用いて示す。ブロック画像の画素値のヒストグラムをとった場合に、出現頻度の最も高い画素値をC0、次に出現頻度が2番目の画素値をC1としてもよい。
図2(B)は階調モードにおけるビットアサインの一例を示す。階調モードにおいては、8×8画素のブロック画像は4×4画素に縮小される。そして、4×4の画像に対して離散コサイン変換を行うことにより、4×4のDCT係数が得られる。8ビットのDC成分(DC係数)は、固定長符号に格納される。AC成分は、例えばジグザグスキャンの順にハフマンテーブルに従って変換され、変換された値(AC係数)が固定長符号に順次格納される。より高周波数のAC成分がより固定長符号の末尾側に位置することが好ましい。AC成分の格納中に固定長(81ビット)を超える場合には、AC成分の格納は打ち切られる。また、格納されていないDCT係数が全て0である場合には、EOB符号が格納される。EOB符号は例えば「0000」であればよい。EOB符号の後ろに例えば「0」を格納することにより、符号化後のビット数を固定長(81ビット)とすることができる。
本実施例の情報処理装置100が有する各部について簡単に説明する。入力部125は、固定長符号110を順次取得する。モード判別部130は、固定長符号110の符号化モードを判別する。デマルチプレクサ140は、固定長符号110を第1の符号化部150又は第2の符号化部160に送る。第1の符号化部150は、階調モードで符号化された固定長符号を可変長符号に変換する。第2の符号化部160は、二色化モードで符号化された固定長符号を可変長符号に変換する。マルチプレクサ170は、第1の符号化部150又は第2の符号化部160から可変長符号を取得し、可変長符号120として出力する。
本実施例の情報処理装置100が行う処理を、図4のフローチャートを参照して説明する。ステップS1501において入力部125は、固定長符号110(入力符号)を取得する(入力手段)。ステップS1502においてモード判別部130は、固定長符号110の符号化モードを判別する(判定手段)。本実施例においては、固定長符号110のMSBが0であれば、モード判別部130は固定長符号110は階調モードで符号化されていると判断する。この場合、処理はステップS1503に進む。固定長符号110のMSBが1であれば、モード判別部130は固定長符号110は二色化モードで符号化されていると判断する。この場合、処理はステップS1506に進む。
ステップS1503でデマルチプレクサ140は、固定長符号110を第1の符号化部150に送る。ステップS1504で第1の符号化部150は、階調モードで符号化された固定長符号110を可変長符号120へと変換する(第1の変換手段)。ステップS1504の処理については後に説明される。ステップS1505でマルチプレクサ170は、第1の符号化部150が生成した可変長符号120を出力する(出力手段)。
一方、ステップS1506でデマルチプレクサ140は、固定長符号110を第2の符号化部160に送る。ステップS1507で第2の符号化部160は、二色化モードで符号化された固定長符号110を可変長符号120へと変換する(第2の変換手段。ステップS1507の処理については後に説明される。ステップS1508でマルチプレクサ170は、第2の符号化部160が生成した可変長符号120を出力する。
ステップS1509で入力部125は、まだ処理されていない固定長符号が存在するか否かを判断する。まだ処理されていない固定長符号が存在する場合、処理はステップS1501に戻る。まだ処理されていない固定長符号が存在しない場合には、本実施例の処理は終了する。
<階調モードで符号化された固定長符号の可変長符号化>
ステップS1504における階調モード(第1の固定長符号化方法)で符号化された固定長符号を可変長化する方法には、様々な方法がある。ここではその一例を説明する。階調モードで符号化された固定長符号は、下位ビットに連続する「0」を有することが多い。そこで図8に示されるように第1の符号化部150は、下位ビットにおいて連続する「0」の数を、変換後の可変長符号に格納する(第1の可変長符号化方法)。
ステップS1504における階調モード(第1の固定長符号化方法)で符号化された固定長符号を可変長化する方法には、様々な方法がある。ここではその一例を説明する。階調モードで符号化された固定長符号は、下位ビットに連続する「0」を有することが多い。そこで図8に示されるように第1の符号化部150は、下位ビットにおいて連続する「0」の数を、変換後の可変長符号に格納する(第1の可変長符号化方法)。
例えば、第1の符号化部150は、固定長符号110のLSB(末尾)から順に、連続する「0」の数をカウントする。そして第1の符号化部150は、カウントした数(ランレングス)を、モード情報の直後に7ビットのデータとして挿入する。そして第1の符号化部150は、カウントされた連続する「0」を削除する。
例えば8×8のブロック画像が単色で構成される場合、AC成分は存在しない。このため、この方法によれば、1つのブロック画像は8〜16ビットに圧縮される。符号化される画像が文書などのように単色のブロックを多く含む場合、可変長符号化によって高い圧縮率を実現することができる。本実施例では末尾に連続する「0」を、「0」の数を示す値で置換するものとした。しかしながら、第1の可変長符号化方法はこれに限られない。たとえば、固定長符号110中(入力符号中)にある所定の値の連続を検出し、この所定の値が連続する長さを示す値で、所定の値の連続を置換することもできる。
<二色化モードで符号化された固定長符号の可変長符号化>
ステップS1507における二色化モード(第2の固定長符号化方法)で符号化された固定長符号を可変長化する方法には、様々な方法がある。例えば、固定長符号化前の画像において隣に存在するブロック画像との差分を求め、この差分から可変長符号を生成することができる(第2の可変長符号化方法)。固定長符号化方法として二色化モードが用いられる場合、隣接するブロック画像の間で上記のC0とC1とが逆になることが多い。このことは特に、例えば背景と文字とがそれぞれ異なる色で表されている場合に当てはまる。
ステップS1507における二色化モード(第2の固定長符号化方法)で符号化された固定長符号を可変長化する方法には、様々な方法がある。例えば、固定長符号化前の画像において隣に存在するブロック画像との差分を求め、この差分から可変長符号を生成することができる(第2の可変長符号化方法)。固定長符号化方法として二色化モードが用いられる場合、隣接するブロック画像の間で上記のC0とC1とが逆になることが多い。このことは特に、例えば背景と文字とがそれぞれ異なる色で表されている場合に当てはまる。
例えば図3において、400は黒画素と白画素とを有する原画像であり、410及び410は原画像400内のブロック画像である。410及び420は、8×8画素のブロック画像である。本実施例において、ブロック画像410は白画素を多く有するため、白画素がC0を、黒画素がC1を割り当てられる。一方でブロック画像420は黒画素を多く有するため、黒画素がC0を、白画素がC1を割り当てられる。すなわち、ブロック画像410と420との間では、C0とC1とが逆になっている。
このような場合、ブロック画像410と420との差分を符号化しても、圧縮率が大きくならない可能性がある。そこで本実施例の第2の符号化部は、一方のブロック画像のC0とC1とを反転させてから差分を求める。そして、反転なしに得られた符号量と、反転を用いて得られた符号量とを比較し、符号量が小さい方を採用する。
図4に本実施例における第2の符号化部160の構成例を示す。第2の符号化部160には、二色化モードの固定長符号210が順次入力されてくる。前述のように、この固定長符号210は、処理対象画像におけるラスタ順に入力される。符号化器250−1は、入力された固定長符号210を取得する。さらに符号化器250−1は、取得された固定長符号210が示すブロック画像の近傍にあるブロック画像の固定長符号を、レジスタ230から取得する。以下では、符号化器250−1は、取得された固定長符号210が示すブロック画像に隣接するブロック画像の固定長符号を、レジスタ230から取得するものとする。図6には、処理対象画像における、ブロック画像300、310、320、及び330の配置が示されている。固定長符号210がブロック画像330に対応する場合、符号化器250−1は例えば、ブロック画像310及び320に対応する固定長符号を取得すればよい。レジスタ230は、第2の符号化部160に入力された固定長符号を記憶しておく記憶部である。
符号化器250−2も同様に、入力された固定長符号210を取得する。さらに符号化器250−2は、取得された固定長符号210が示すブロック画像に隣接するブロック画像の固定長符号を取得する。しかしながら、符号化器250−2によって取得される、固定長符号210が示すブロック画像に隣接するブロック画像の固定長符号は、反転部240によって反転されたものである。反転部240が行う反転処理を図5に示す。反転部240は、取得された固定長符号210が示すブロック画像に隣接するブロック画像の固定長符号を取得し、C0とC1とを入れ替え、位置情報を示す各ビットを反転させる(0値を1値に、1値を0値に変換する)。反転部240は例えば、図5(A)の固定長符号を、図5(B)の固定長符号へと変換する。反転部240はそして、変換された固定長符号を、符号化器250−2に供給する。
符号化器250−1はそして、レジスタ230から取得された固定長符号との相関を利用して、固定長符号210を可変長符号化する。また、符号化器250−2は、反転部240から取得された固定長符号との相関を利用して、固定長符号210を可変長符号化する。例えば、DPCM(Differential Pulse Code Modulation)などの予測符号化により可変長符号化することができる。
可変長符号化の一例を以下に示す。C0及びC1については、固定長符号210が示すブロック画像の左に隣接するブロック画像の固定長符号を参照する。そして、参照された固定長符号を用いて、固定長符号210を予測符号化する。例えば固定長符号210のC0と、隣接するブロック画像の固定長符号のC0との差分を、固定長符号210に対応する可変長符号内に格納する。C1についても同様である。固定長符号210が示すブロック画像の左に隣接するブロック画像が存在しない場合には、固定長符号210のC0及びC1を、固定長符号210に対応する可変長符号内にそのまま格納すればよい。
固定長符号210が示すブロック画像の左に隣接するブロック画像が二色化モードで固定長符号化されていない場合も同様である。この場合、可変長符号にはC0及びC1がそのまま格納されているのか、それとも可変長符号にはC0及びC1の差分が格納されているのか、を示すフラグ情報を可変長符号に加えることができる。一般的に隣接するブロック画像は類似していることが多く、C0及びC1の差分は0もしくは小さい値である場合が多い。したがって、可変長符号化後のエントロピーは小さくなりうる。
次に位置情報の可変長化の一例を、図6を用いて詳しく説明する。図6において、ブロック画像300、310、320及び330は、処理対象画像の一部である。ブロック画像300と320は互いに隣接している。ブロック画像300と310も互いに隣接している。ブロック画像310と330も互いに隣接している。また、ブロック画像320と330も互いに隣接している。固定長符号210は、ブロック画像330に対応するものとする。
ブロック画像330は、隣接するブロック画像310および320との相関が高いため、例えば以下のように予測符号化する事で圧縮できる。まず、ブロック画像330の上に隣接するブロック画像320の位置情報と、ブロック画像330の位置情報とを比較する。位置情報が一致する場合には、固定長符号210に対応する可変長符号に、位置情報として”00”を格納する。次に、ブロック画像330の左に隣接するブロック画像310の位置情報と、ブロック画像330の位置情報とを比較する。位置情報が一致する場合には、固定長符号210に対応する可変長符号に、位置情報として”01”を格納する。
隣接するブロック画像310若しくは320が存在しないか、又は二色化モードで符号化されていない場合には、位置情報は同一ではないものとする。ブロック画像330の位置情報がブロック画像310及び320のどちらとも一致しない場合には、固定長符号210の位置情報の先頭に”1”を付加したデータを、固定長符号210に対応する可変長符号に位置情報として格納する。処理対象画像が、例えば文字や表のような、垂直および水平方向の直線を多く含む場合、本実施例の方法によって高い圧縮率を実現できる。
本実施例において、符号化器250−1及び符号化器250−2が生成する可変長符号は、C0を示す符号と、C1を示す符号と、位置情報を示す符号とを少なくとも含む。符号がどの情報を示しているのかを識別するために、各符号は、符号の種類を示すビット列を、例えば符号の先頭に有することが好ましい。
選択部270は、符号化器250−1によって生成された可変長符号と、符号化器250−2によって生成された可変長符号とを比較する。そして選択部270は、符号量(ビット数)が少ない可変長符号を選択し、固定長符号210に対応する可変長符号220として出力する。この際選択部270は、可変長符号220が、符号化器250−1によって生成されたか、符号化器250−2によって生成されたのかを示す情報を可変長符号に付加することができる。
図7を参照して、選択部270の処理の一例を説明する。図7(A)〜(C)において、先頭のビット(mode)は、これらの可変長符号が二色化モードの可変長符号であることを示すモード情報である。図7(A)は、符号化器250−1によって生成された可変長符号である。また、図7(B)は、符号化器250−2によって生成された可変長符号である。
選択部270は、符号化器250−2によって生成された、ビット数の少ない図7(B)の可変長符号を選択する。この場合、選択部270は図7(B)の可変長符号のモード情報の直後に”1”を付加することによって、図7(C)の可変長符号を生成し、可変長符号220として出力する。符号化器250−1によって生成された可変長符号を選択部270が選択した場合には、可変長符号のモード情報の直後に”0”を付加すればよい。以上の構成により、C0とC1とを反転させた場合と反転させない場合の双方において符号化を行い、圧縮効率の良い可変長符号を採用することができる。
以上説明したように本実施例では、異なる固定長符号化モードで符号化されたブロック画像に対し、それぞれに適した可変長符号化が行われる。これにより、異なる固定長符号化モードで符号化されたブロック画像を含む画像データに対する、効率的な圧縮が実現される。本実施例によれば、オリジナル画像を分割し固定長符号化して得られるそれぞれの固定長符号の全てを復号してから、再度可変長符号化する必要はない。可変長符号化方法の1つとして、固定長符号をブロック画像(復号分割画像)に復号した後に、他のブロック画像(参照分割画像)を参照し、例えば予測符号化を用いて可変長符号化を行う方法が用いられるかもしれない。しかしながら、同じ固定長符号化方法が適用されるブロック画像は相互に性質が類似していることが予想される。したがって本実施例の方法を用いることにより、適切な他のブロック画像を探索するという余分の処理を伴わずに、同じ固定長符号化方法が適用される他のブロック画像を参照して、ブロック画像を予測符号化することもできる。
本実施例では、1つのブロック画像に対応する固定長符号を処理するのは、複数の符号化器のうちのいずれか1つであった。しかしながら、2以上の符号化器のそれぞれが1つの固定長符号を処理することにより、2以上の可変長符号が生成されてもよい。この場合、最も符号量の小さい可変長符号を、処理された固定長符号に対応する可変長符号として採用してもよい。どの固定長符号化モードの固定長符号を、どの符号化器が符号化するかは、外部から設定されてもよい。
処理される固定長符号は、上記実施例で説明された固定長符号化方法で符号化された固定長符号には限られない。例えば二色化モードで固定長符号化する際に、C0及びC1が画素群の平均画素値として求められていてもよい。また、階調モードで固定長符号化する際の縮小率は異なっていてもよいし、縮小率がブロック画像に応じて適応的に変えられてもよい。
また、固定長符号化方法は二色化モード又は階調モードには限られず、他の方法でもよい。この場合、それぞれの固定長符号化方法に対応する符号化器を用いればよい。さらには、本実施例において二色化モードの固定長符号は、C0、C1及び位置情報を含むが、これらの情報のうち少なくとも1つがさらに符号化されていてもよい。例えば、エントロピー符号化された位置情報を、固定長符号が含んでいてもよい。この場合、符号化器250−1及び250−2は、符号化された位置情報を復号してから、隣接するブロック画像の位置情報との比較を行ってもよい。
可変長符号化方法は上記で説明された方法には限られない。例えば、同一のブロック画像(又は固定長符号)が連続する数を求め、この数を用いて可変長符号化してもよい。二色化モードの場合、C0及びC1については近傍のブロックのC0及びC1と合わせて直交変換し、更にエントロピー符号化しても良い。例えば、ブロック画像の位置に従って、そのブロック画像に対応するC0を画素値として持つ画素を配列することにより、処理対象画像内のブロック画像の数と同じ数の画素を有する画像を生成する。そして、この画像を直交変換して、エントロピー符号化すればよい。階調モードの場合、連続する0の数(0ラン長)を更にエントロピー符号化してもよい。
[実施例1の変形例]
実施例1では、符号化器250−1及び符号化器250−2が位置情報を可変長化する際に、隣のブロック画像の位置情報との相関を利用した。本変形例では、1つのブロック画像を複数のサブブロック(領域)に分割し、それぞれのサブブロックについて隣接するサブブロックの位置情報との相関に基づいて位置情報を可変長化する。以下では、隣接するサブブロックの位置情報が一致する場合に、一方のサブブロックの位置情報を、他方のサブブロックの位置情報に一致することを示す情報で置き換える。
実施例1では、符号化器250−1及び符号化器250−2が位置情報を可変長化する際に、隣のブロック画像の位置情報との相関を利用した。本変形例では、1つのブロック画像を複数のサブブロック(領域)に分割し、それぞれのサブブロックについて隣接するサブブロックの位置情報との相関に基づいて位置情報を可変長化する。以下では、隣接するサブブロックの位置情報が一致する場合に、一方のサブブロックの位置情報を、他方のサブブロックの位置情報に一致することを示す情報で置き換える。
本変形例の処理を図6を用いて説明する。ここでは、ブロック画像330を示す固定長符号を可変長化するものとする。まず、ブロック画像330を、331、332、333、及び334の4つのサブブロックに分割する。説明のためにここではサブブロックを4つに分割するものとするが、いくつのサブブロックに分割してもよい。そして、それぞれのサブブロックについて、位置情報の比較を行う。
例えば、サブブロック331を符号化する場合には、上に隣接するサブブロック322、及び左に隣接するサブブロック313との比較が行われればよい。サブブロック332を符号化する場合にも同様に、上に隣接するサブブロック331、及び左に隣接するサブブロック314との比較が行われればよい。サブブロック333及び334についても同様である。実施例1と同様に、上に隣接するサブブロックと位置情報が一致する場合には位置情報を”00”とし、左に隣接するサブブロックと位置情報が一致する場合には位置情報を”01”とすればよい。
隣接するサブブロックが存在しないか、又は二色化モードで符号化されていない場合には、位置情報は同一ではないものとすればよい。符号化するサブブロックが上に隣接するサブブロックと左に隣接するサブブロックとのどちらとも一致しない場合には、符号化するサブブロックの位置情報の先頭に”1”を付加したデータを、可変長化された位置情報とすればよい。
例えば図3の例では、ブロック画像420の左下サブブロックの位置情報と、ブロック画像410の右下サブブロックの位置情報とは、一方を反転させると一致する。したがって、例えばブロック画像410及び420を含む処理対象画像を、効率よく圧縮することができる。
[実施例2]
実施例1に係る情報処理装置100は、複数の符号化部(例えば第1の符号化部150及び第2の符号化部160)を備える。そのため、各符号化部に専用のハードウェアを用いると、回路規模が大きくなる。そこで本実施例では、1つの符号化部を用いてそれぞれのモードで生成された固定長符号を可変長化する。本実施例に係る情報処理装置に入力される固定長符号は、実施例1と同様である。
実施例1に係る情報処理装置100は、複数の符号化部(例えば第1の符号化部150及び第2の符号化部160)を備える。そのため、各符号化部に専用のハードウェアを用いると、回路規模が大きくなる。そこで本実施例では、1つの符号化部を用いてそれぞれのモードで生成された固定長符号を可変長化する。本実施例に係る情報処理装置に入力される固定長符号は、実施例1と同様である。
本実施例に係る情報処理装置の一例を図9に示す。また、本実施例に係る処理のフローチャートの一例を図11に示す。ステップS1601において入力部525は、固定長符号510を取得する(入力手段)。ステップS1602においてモード判別部530は、実施例1のモード判別部130と同様に、固定長符号510の符号化モードを判別する(判定手段)。ステップS1603において符号化部570は、固定長符号510を取得し、さらに固定長符号510の符号化モードを示す情報をモード判別部530から取得する。
ステップS1604において符号化部570は、レジスタ540が格納している、固定長符号510と同じ符号化モードで生成された固定長符号を取得する(取得手段)。以降で、ステップS1604で取得された固定長符号を対照符号と呼ぶ。レジスタ540は、後述のように入力された固定長符号を格納している。本実施例では、固定長符号510と同じ符号化モードで生成された、レジスタ540に格納されている固定長符号のうち、もっとも遅く(直近に)格納された固定長符号を符号化部570は取得する。しかしながら、より多くの固定長符号をレジスタ540が格納してもよい。この場合、オリジナル画像において固定長符号510が示すブロック画像の近傍に位置するブロック画像の固定長符号を、以下で示す対照符号として取得することも可能となる。
ステップS1605においてレジスタ540は、固定長符号510を格納する。この際、以前にレジスタ540に格納された、固定長符号510と同じ符号化モードで生成された固定長符号を上書きしてもよい。この場合レジスタ540は、最も遅く入力された二色化モードの固定長符号と、最も遅く入力された階調モードの固定長符号とを、格納することができる。しかしながらレジスタ540が、より多くの固定長符号を格納できてもよい。
ステップS1606において符号化部570は、対照符号を参照して、固定長符号510を可変長符号化する(生成手段)。ステップS1606において符号化部570は、固定長符号510のうちモード情報を除く部分を可変長符号化することが好ましい。モード情報は、符号化部570が生成した可変長符号の例えば先頭にそのまま付加される。符号化部570は、例えばDPCM(Differential Pulse Code Modulation)などの予測符号化を用いてもよい。符号化部570は、例えば固定長符号510と対照符号との差分を計算すればよく、この場合算出された差分に対してさらにエントロピー符号化などの符号化を行うことが好ましい。固定長符号510が示すブロック画像も対照符号が示すブロック画像も、1つの処理対象画像内に存在するため、各フィールド内の係数は類似する値を有することが期待される。
ここでフィールドとは、固定長符号に含まれるデータのそれぞれを示す。例えば図2(A)の二色化モードの固定長符号はフィールドとして、モード情報、C0、C1、及び位置情報を含む。また、固定長符号510と対照符号とは同じ符号化モードで生成されているため、同じ位置のビットは、同じフィールドの情報を示す。したがって、固定長符号510と対照符号との差分を2値データとすると、多くの”0”値又は”1”値が連続する部分が存在することが期待される。したがって固定長符号510と対照符号との差分はエントロピーが小さく、エントロピー符号化などの符号化を行うと大きく圧縮されることが期待される。
ステップS1607において符号化部570は、ステップS1606で生成された可変長符号を、可変長符号520として出力する(出力手段)。ステップS1608で入力部525は、まだ処理されていない固定長符号が存在するか否かを判断する。まだ処理されていない固定長符号が存在する場合、処理はステップS1601に戻る。まだ処理されていない固定長符号が存在しない場合には、本実施例の処理は終了する。
以上のように本実施例では、同じ固定長符号化方法で生成された固定長符号の相関を用いて、固定長符号を可変長化した。本実施例では、符号化モードを考慮せずに可変長符号化を行う場合と比べて、高い圧縮率が得られることが期待される。本実施例では可変長符号化にDPCMを用いたが、異なる方法を用いることもできる。また本実施例では、処理される固定長符号と同じ符号化モードで生成され、処理される固定長符号の直前に入力された固定長符号を、対照符号として用いた。しかしながら、処理される固定長符号が示すブロック画像に隣接するブロック画像の固定長符号を、対照符号として用いることもできる。
また実施例1と同様に、符号化モードは二色化モードと階調モードに限られず、他のモードが用いられてもよいし、3つ以上の符号化モードが1つの処理対象画像に対して用いられてもよい。この場合レジスタ540は、それぞれの符号化モードの固定長符号を少なくとも1つ格納できることが好ましい。
[実施例2の変形例1]
本変形例では、固定長符号の各フィールド内の係数を、対照符号の同じフィールド内の係数を参照することによって、可変長符号化する。本変形例の処理は、実施例2と類似しており、異なる部分について以下で説明する。ステップS1603では、分割部560が、固定長符号510及び固定長符号510の符号化モードを示す情報を取得する。ステップS1604では、分割部560が対照符号を取得する。
本変形例では、固定長符号の各フィールド内の係数を、対照符号の同じフィールド内の係数を参照することによって、可変長符号化する。本変形例の処理は、実施例2と類似しており、異なる部分について以下で説明する。ステップS1603では、分割部560が、固定長符号510及び固定長符号510の符号化モードを示す情報を取得する。ステップS1604では、分割部560が対照符号を取得する。
そしてステップS1606の代わりに、本変形例ではステップS1611〜S1613が実行される。ステップS1611で分割部560は、固定長符号510の各フィールドが何ビットで構成されるかを示す、ビットアサイン情報をアサインテーブル550から取得する。たとえば、ステップS1603で取得した、固定長符号510の符号化モードを示す情報に対応するビットアサイン情報を、アサインテーブル550から取得すればよい。例えば本変形例において二色化モードの固定長符号は図2(A)のような構造を持つ。二色化モードについてのビットアサイン情報は本変形例において、最初の情報(モード情報)が1ビットであり、次の情報(C0)が8ビットであり、次の情報(C1)が8ビットであり、次の情報(位置情報)が63ビットであることを示す。
ステップS1612で分割部560は、固定長符号510及び対照符号を、フィールド毎に分割し、符号化部570に送る。例えば分割部560は、二色化モードの固定長符号510を、モード情報、C0、C1、位置情報の順に符号化部570へと送る。位置情報は大きいので、分割部560は位置情報を例えば1ライン(8ビット)ごとに分割して送ってもよい。
分割部560の構成の一例を図10に示す。固定長符号510はレジスタ600−1に格納される。また、対照符号はレジスタ600−2に格納される。アサインテーブル550からは、各フィールドのビット長が累積部630、マスク620−1、及びマスク620−2へと順に送信される。累積部630は、アサインテーブル550から次に切り出すフィールドのビット長を取得すると、取得されたビット長を累積する。なお、累積値が固定長符号化データのビット数(本変形例では81)を超えた場合には、累積部630は累積値を0にリセットすればよい。そして、累積部630は累積値をシフタ610−1及び610−2に送る。
シフタ610−1は累積部630から累積値を受け取ると、レジスタ600−1から固定長符号510を取得し、切り出されるフィールドがLSB側に来るように固定長符号510の各ビットを右シフトする。そしてシフタ610−1は、シフトされた固定長符号510をマスク620−1へと送る。シフタ610−2も同様に対照符号をシフトし、シフトされた対照符号をマスク620−2へと送る。
マスク620−1は、アサインテーブル550から取得したフィールドのビット長を参照し、右シフトされた固定長符号510からフィールドを切り出す。例えば、フィールドのビット長を超える上位ビットを”0”に置換すればよい。マスク620−2も同様に、右シフトされた対照符号からフィールドを切り出す。以上により、切り出されたフィールドは、符号化部570へと送られる。
ステップS1613で符号化部570は、分割部560から送られた各フィールド内の係数を、対照符号の対応するフィールド内の係数との相関を用いて可変長符号化する。例えば、固定長符号510のC0を、対照符号のC0を参照して可変長符号化する。この処理は実施例2と同様に行うことができる。例えばDPCMが用いられてもよい。その後、ステップS1608及びS1609が実施例2と同様に行われる。
符号化部570は、可変長符号化された各フィールドを、1つのブロック画像を示す符号へと統合してもよい。本変形例においては、どのフィールドに対応するかを示す情報を、それぞれの可変長符号化されたフィールドが有していてもよい。また、実施例1で述べたように、フィールド毎に、ブロック画像の位置に従って、そのブロック画像に対応するフィールド係数を持つ画素を配列することにより、処理対象画像内のブロック画像の数と同じ数の画素を有する画像を生成する。そして、この画像を直交変換して、エントロピー符号化してもよい。この際、2次元離散コサイン変換を用いることもできる。
[実施例2の変形例2]
実施例2の変形例2では、符号化部570が(モード情報を除く)全てのフィールドを可変長化した。しかしながら、例えば階調モードのAC成分はハフマン符号化されているため、これをDPCMを用いて可変長化した場合、あまり圧縮できない又は符号量が増える可能性がある。そこで本変形例では、指定されたフィールドのみを可変長化する。
実施例2の変形例2では、符号化部570が(モード情報を除く)全てのフィールドを可変長化した。しかしながら、例えば階調モードのAC成分はハフマン符号化されているため、これをDPCMを用いて可変長化した場合、あまり圧縮できない又は符号量が増える可能性がある。そこで本変形例では、指定されたフィールドのみを可変長化する。
本変形例に係る情報処理装置の一例を、図9及び図11を参照して説明する。本変形例に係る情報処理装置及びその処理は実施例2の変形例1と同様であり、異なる点について説明する。アサインテーブル550は、各フィールドのビット長に加えて、各フィールドをDPCMの対象とするか否かを示すフラグを保持する。ステップS1612において符号化部570は、アサインテーブル550を有するフラグを参照することにより、分割部560から送られたデータに対してDPCMを行うか否かを判断する。DPCMが行われる場合は、符号化部570は実施例2の変形例1と同様の処理を行う。DPCMが行われない場合は、符号化部570は固定長符号510から分割されたフィールドをそのまま出力する。
以上説明したように本変形例では、フィールド毎に符号化するか否かを選択する事により、効率的な符号化を実現できる。なお、本変形例では符号化するか否かが選択されたが、可変長化方法が選択されてもよい。例えば、DPCMを用いた可変長化と離散コサイン変換を用いた可変長化とのいずれかが、各フィールドについて選択されてもよい。
[実施例3]
実施例1では、2つの符号化部150及び160を備え、それぞれが異なる固定長符号化モードで生成された固定長符号を可変長化する、情報処理装置100について説明した。本実施例では、複数の符号化器を有し、複数の固定長符号化モードに対応して可変長化を行う、情報処理装置について説明する。本実施例にかかる情報処理装置900が、図12に示される。説明のために、本実施例の情報処理装置900は、N個(Nは2以上の整数)の符号化器950を有するものとする。また、本実施例の情報処理装置900は、M種類(Mは2以上の整数)の固定長符号化モードに対応するものとする。
実施例1では、2つの符号化部150及び160を備え、それぞれが異なる固定長符号化モードで生成された固定長符号を可変長化する、情報処理装置100について説明した。本実施例では、複数の符号化器を有し、複数の固定長符号化モードに対応して可変長化を行う、情報処理装置について説明する。本実施例にかかる情報処理装置900が、図12に示される。説明のために、本実施例の情報処理装置900は、N個(Nは2以上の整数)の符号化器950を有するものとする。また、本実施例の情報処理装置900は、M種類(Mは2以上の整数)の固定長符号化モードに対応するものとする。
本実施例においては、1つの固定長符号化モードに対応する1つ以上の符号化器が予め指定されている。1つの固定長符号は、対応する符号化器のうち少なくとも1つによって可変長化される。処理する固定長符号に対応しない符号化器は、固定長符号を可変長化せずに出力する。1つの固定長符号について、複数の符号化器が処理を行うと、例えば目標とする圧縮率を考慮して、最適な処理結果が選択される。
図12に示されるように、本実施例に係る情報処理装置900は、N個の符号化器950を備える(変換手段)。符号化器950の前段にはデマルチプレクサ960がある。デマルチプレクサ960は、固定長符号を符号化器950に送るか、符号化器950には送らずそのまま出力するかのどちらかを、固定長符号化モードに応じて行うことができる。スケジューラ980は、どの符号化器で符号化されたデータが出力されるかを、固定長符号化モードに応じて制御する。以降では説明のためにM=4及びN=3とする。すなわち、符号化器1(950−1)、符号化器2(950−2)、及び符号化器3(950−3)を、本実施例の情報処理装置は有する。固定長符号は1ブロックあたり81ビットで構成されるものとする。また、固定長符号の上位3ビットを参照する事により、固定長符号化モードを判別可能であるものとする。
情報処理装置900の各部の動作について詳しく説明する。符号化器950のそれぞれは、固定長符号化データを可変長符号化するマルチサイクル型の演算器である。それぞれの符号化器は、異なる可変長符号化方法を実行し、異なるレイテンシを持つ。外部からの指示に従い、それぞれの符号化器はあるデータに対する処理を中止し、次のデータの処理を開始することが可能である。なお、それぞれの符号化器950が行う処理は特に限定されない。符号化器950には、例えば実施例1で示した階調モード用第1の符号化部150が含まれてもよいし、第2の符号化部160が含まれてもよい。また、符号化器950には、例えば実施例2で示した情報処理装置500が含まれてもよいし、非可逆な圧縮を行う符号化器が含まれてもよい。
入力された固定長符号化はキュー940に格納される(入力手段)。キュー940は内部にレジスタを持ち、例えば4つのブロック画像に相当する固定長符号を保持できる。スケジューラ980からの指示により、キュー940は固定長符号をそれぞれのデマルチプレクサ960へと入力し、さらにその固定長符号のモード情報をモードテーブル930へと送る。送られた固定長符号は、スケジューラ980の制御のもと消去されることができる。
モードテーブル930は、それぞれの固定長符号化モードに対応する符号化器950の情報を個別に保持している。モードテーブル930は例えば、1つの固定長符号化モードに対応する、1以上の符号化器950を示す。モードテーブル930の対応情報は、外部から予め設定されることができる。
モードテーブル930が保持する対応情報の一例を図13に示す。モードテーブル930は、固定長符号の上位3ビットと、対応する符号化器とを、関連づけて保持している。本実施例においては、固定長符号の上位1〜3ビットが、固定長符号の符号化モードを示すものとする。図示されるように、固定長符号の上位1ビットが”0”の時、固定長符号は二色化モードで生成されている。固定長符号の上位2ビットが”10”の時、固定長符号は階調モードで生成されている。固定長符号の上位3ビットが”110”の時、固定長符号はモードAで生成されている。固定長符号の上位3ビットが”111”の時、固定長符号モードBで生成されている。
図13における「選択符号化器」は、各符号化モードに対応する符号化器を示す3ビットの情報である。最上位ビットは符号化器1が、次のビットは符号化器2が、その次のビットは符号化器3が、固定長符号の符号化モードに対応するか否かを示す。ビットが”1”である場合には、符号化器は固定長符号の符号化モードに対応している。すなわち、二色化モード(固定長符号の上位3ビットが”000”,”001”,”010”,又は”011”である場合)には、符号化器2と符号化器3とが対応する。階調モード(固定長符号の上位3ビットが”100”又は”101”である場合)には符号化器1が対応する。モードA(固定長符号の上位3ビットが”110”である場合)には符号化器1と符号化器2とが対応する。モードB(固定長符号の上位3ビットが”111”である場合には、符号化器1〜3が対応する。
モードテーブル930は、図13の「選択符号化器」で示される上述の情報に従い、それぞれの符号化器950についての対応情報を、それぞれのデマルチプレクサ960へと送る(判定手段)。固定長符号が二色化モードである場合を例として説明する。この場合、モードテーブル930は、符号化器1(950−1)の前段のデマルチプレクサ960−1に”0”を送る。またモードテーブル930は、符号化器2(950−2)の前段のデマルチプレクサ960−2に”1”を送る。さらにモードテーブル930は、符号化器3(950−3)の前段のデマルチプレクサ960−3に”1”を送る。
キュー940からの固定長符号の入力後、デマルチプレクサ960は、モードテーブル930から送られた対応情報に従い、キュー940から送られてきた固定長符号を、符号化器950とマルチプレクサ970とのいずれかに送る。符号化器950は、デマルチプレクサ960から送られた固定長符号を可変長化し、マルチプレクサ970に送る。マルチプレクサ970に対しては、符号化器950とデマルチプレクサ960との何れか一方からデータが送られる(変換器)。
マルチプレクサ970は、符号化器950又はデマルチプレクサ960から送られたデータ(出力符号)を、スケジューラ980へと出力する。本実施例の構成によれば、前段に存在するデマルチプレクサ960に入力された固定長符号に対応することがモードテーブル930によって示されている符号化器は、入力された固定長符号を可変長化する。一方で前段に存在するデマルチプレクサ960に入力された固定長符号に対応しないことがモードテーブル930によって示されている符号化器は、入力された固定長符号を可変長化しない。
次に、スケジューラ980について説明する。スケジューラ980は各固定長符号の符号化モードに対応する符号化器950が、入力された固定長符号を符号化するように制御する。スケジューラ980は、複数の固定長符号を同時に管理することが可能である。そしてスケジューラ980は、固定長符号910がキュー940に入力された順に、その固定長符号に対応する可変長符号920を出力する。
スケジューラ980は、例えば図14に示されるような、可変長化処理の状態を示す情報を保持している。1つの固定長符号についての処理状態を示すデータセットをスロットと呼ぶことにする。本実施例の情報処理装置は4つの固定長符号の処理を同時に管理することが可能であり、4つのスロットを有する。図14のテーブルを、スロットボードと呼ぶことにする。そしてスケジューラ980は、可変長化処理が進行するのに伴ってこのスロットボードを更新する。
図14において「スロット番号」は、それぞれの固定長符号に対して割り振られた、順序管理用のインデックスである。後から入力された固定長符号はより大きいスロット番号を割り当てられる。そして、より小さいスロット番号を割り当てられた固定長符号に対応する可変長符号が、より早く出力される。本実施例においては、出力される可変長符号は、スロット番号1の固定長符号に対応する可変長符号である。スロット番号1に対応する可変長符号が出力されると、そのスロット番号は4に戻り、他のスロットのスロット番号は1つ減る。
図14において「ID」は、各スロットを識別するために割り当てられた識別子である。「状態」は、各スロットに固定長符号が割り当てられているか否かを示す。固定長符号が入力されると、その固定長符号には「状態」が「空き」であるスロットの中で一番小さいスロット番号を持つスロットが割り当てられる。固定長符号が割り当てられたスロットの「状態」は、「有効」に変わる。可変長符号が出力されると、対応するスロットの「状態」は「空き」に戻る。
図14において「符号化器1」、「符号化器2」、及び「符号化器3」は、それぞれのスロットに対応する固定長符号の処理状態を示す。「符号化器1」、「符号化器2」、及び「符号化器3」は、初期状態では「未処理」であり、「未処理」→「処理中」→「処理済」→「未処理」の順に遷移する。符号化器950−1の前段に位置するデマルチプレクサ960−1へと、固定長符号がキュー940から送られると、「符号化器1」は「処理中」へと変化する。また、マルチプレクサ970−1からスケジューラ980へとデータが出力されると、「符号化器1」は「処理済」へと変化する。「符号化器2」及び「符号化器3」についても同様である。固定長符号910に対応する可変長符号920が情報処理装置900から出力されると、「符号化器1」、「符号化器2」及び「符号化器3」は「未処理」に戻る。
ID1〜ID4のスロットのいずれについても、「符号化器1」が「処理中」ではない場合、スケジューラ980は「符号化器1」が「未処理」であるスロットの中で最も小さいスロット番号を持つスロットを特定する。そして、スケジューラ980がキュー940へと指示を送ることにより、特定されたスロットに対応する固定長符号が、キュー940から符号化器1(950−1)の前段に位置するデマルチプレクサ960−1へと送られる。このときスケジューラ980は、特定されたスロットの「符号化器1」を「処理中」に変更する。「符号化器2」及び「符号化器3」についても同様である。固定長符号が、モードテーブル930によってその固定長符号に対応していないことが示されている符号化器へと送られた場合には、その固定長符号は可変長化されない。したがってその固定長符号はそのままスケジューラ980へと送られるため、「処理中」はすぐに「処理済」へと変化する。
「最小ビット数」は、マルチプレクサ970−1〜970−3がスケジューラ980へと送ったデータのうち、最も符号量が少ないデータのビット数を示す。スケジューラ980が受け取った符号化結果が、「最小ビット数」として格納されているビット数よりも少ない場合又は「最小ビット数」が格納されていない場合は、その符号化結果を別途保持しておく。また、スケジューラ980が受け取った符号化結果のビット数を「最小ビット数」に格納する。「最小ビット符号器」は、スケジューラ980が受け取った最も符号量が少ないデータが、どの符号化器によって生成されたのかを示す。
スロット番号1の「最小ビット数」が目標とするビット数を下回った場合に、スケジューラ980は、スロット番号1の固定長符号についての、最も少ない符号量を有する符号化結果を出力する(選択手段)。「符号化器1」〜「符号化器3」が「処理済」となった場合にも同様に、スケジューラ980は、スロット番号1の固定長符号についての、最も少ない符号量を有する符号化結果を出力する。最も少ない符号量を有する符号化結果は、上述のように保持されている。上記の目標とするビット数は、外部から設定可能であってもよい。目標とするビット数を下回った場合にも符号化結果を出力することにより、全ての符号化器の処理が終了するのを待つ必要がなくなる。したがって、1つの固定長符号について全ての符号化器が処理を完了していない場合にも、他の固定長符号の処理を開始する事ができる。スケジューラ980が出力する符号化結果には、「最小ビット符号器」を示す情報を付加することができる。
スロットボードの更新の一例について、図14を用いて説明する。なお、ハッチングが施されている項目は、更新された項目を示す。ある時刻において、スロットボードが図14(A)に示される状態であるとする。スロット1及びスロット2の固定長符号は二色化モードで符号化されている。また、スロット3の固定長符号はモードAで符号化されている。このときモードAの固定長符号が入力されたとすると、スロットID4のスロットの状態が「空き」であるから、入力された固定長符号にはこのスロットが割り当てられる。そして、スロットボードは図14(B)のように更新される。全てのスロットの状態が「有効」である場合に備えて、不図示のキューに入力された固定長符号を格納することもできる。
次に、符号化器2がスロットID1の固定長符号に対する処理を完了させ、符号化器3がスロットID2の固定長符号に対する処理を完了させると、スロットボードは図14(C)のように更新される。すなわち、スロットID1の「符号化器2」およびスロットID2の「符号化器3」は「処理済」に変更される。また、スロットID1及びスロットID2の「最小ビット数」は必要に応じて更新される。このときスケジューラ980は、キュー940に指示することにより、固定長符号の処理を終えた符号化器2に対して、スロットID2の固定長符号の処理を開始させる。また、キュー940に指示することにより、固定長符号の処理を終えた符号化器3に対して、スロットID3の固定長符号の処理を開始させる。
このときID1のスロットについては、スロット番号が1であり、「符号化器1」〜「符号化器3」が「処理済」となっている。したがってスケジューラ980は、ID1のスロットに対応する符号化結果を可変長符号として出力する。またスケジューラ980は、ID1のスロットに対応する固定長符号を消去するように、キュー940に対して指示する。スロットID1のデータが出力されたため、スロットID1の「状態」は「空き」となる。スロットID1のスロット番号は「4」に変更される。そして、スロットID2〜4のスロット番号は1つずつ減らされる。この結果、スロットボードは図14(D)のように更新される。図14(C)においてスロット3は「符号化器3」が「処理中」であるが、スロット3の固定長符号に符号化器3は対応していないため、この処理はすぐに終了する。したがって、図14(D)においてスロット3の「符号化器」は「処理済」になっている。
以上の動作によりスケジューラ980は、固定長符号が入力される順序と、固定長符号に対応する可変長符号が出力される順序とを一致させながら、固定長符号に対して動的に符号化器を割り当てることができる。さらにスケジューラ980は、各固定長符号の符号化モードに対応する符号化器に処理を行わせることができる。
本実施例では、目標とする可変長符号のビット数は外部から設定されるものとしたが、目標ビット数は動的に変更されてもよい。例えば、出力される可変長符号が目標ビット数をnビット下回る場合、次に出力される可変長符号の目標ビット数をnビット増やしてもよい。逆に、出力される可変長符号が目標ビット数をnビット上回る場合、次に出力される可変長符号の目標ビット数からnビット減らしてもよい。
また、スロットの管理方法は上記の方法に限定されない。例えば本実施例のように、後から入力された固定長符号がより大きいスロット番号を割り当てられなくてもよい。この場合、後で出力された可変長符号が並び換えられることが好ましい。また、先に入力された固定長符号に対応する可変長符号よりも、後に入力された固定長符号に対応する可変長符号の方が先に出力された場合には、少なくとも一方の可変長符号に対して順番が変わっていることを示すフラグを追加してもよい。この場合、例えば可変長符号を復号する際に
、符号を並び替えることができる。本実施例では4つのスロットを用いたが、任意の数のスロットを用いることができる。
、符号を並び替えることができる。本実施例では4つのスロットを用いたが、任意の数のスロットを用いることができる。
[実施例4]
本実施形態では、上述の各実施形態に係る処理をコンピュータにより行わせる。図15はコンピュータの基本構成を示す。このコンピュータにおいて上述の各実施例の機能を実行するためには、各機能をプログラムにより表現し、このコンピュータに読み込ませればよい。こうして、このコンピュータで上述の実施例の全ての機能を実現することができる。この場合、図15をはじめとする構成要素の各々は関数、若しくはCPUが実行するサブルーチンで機能させればよい。また、コンピュータプログラムは通常、CD−ROM等のコンピュータが読み取り可能な記憶媒体に格納されている。この記憶媒体を、コンピュータが有する読み取り装置(CD−ROMドライブ等)にセットし、システムにコピー若しくはインストールすることで実行可能になる。従って、係るコンピュータが読み取り可能な記憶媒体も本発明の範疇にあることは明らかである。
本実施形態では、上述の各実施形態に係る処理をコンピュータにより行わせる。図15はコンピュータの基本構成を示す。このコンピュータにおいて上述の各実施例の機能を実行するためには、各機能をプログラムにより表現し、このコンピュータに読み込ませればよい。こうして、このコンピュータで上述の実施例の全ての機能を実現することができる。この場合、図15をはじめとする構成要素の各々は関数、若しくはCPUが実行するサブルーチンで機能させればよい。また、コンピュータプログラムは通常、CD−ROM等のコンピュータが読み取り可能な記憶媒体に格納されている。この記憶媒体を、コンピュータが有する読み取り装置(CD−ROMドライブ等)にセットし、システムにコピー若しくはインストールすることで実行可能になる。従って、係るコンピュータが読み取り可能な記憶媒体も本発明の範疇にあることは明らかである。
図15においてCPU2001は、コンピュータ全体の動作をコントロールする。本実施例でプログラムは、ハードディスク又はCD−ROMのような二次記憶2003に格納されている。CPU2001は、RAM等のメモリである一次記憶2002にプログラムを読み込み、読み込まれたプログラムを実行する。
入力デバイス2004とはコンピュータに情報を入力するデバイスであって、例えばマウスやキーボード等がこれに該当する。出力デバイス2005とはコンピュータが情報を出力するデバイスであって、モニタ及びプリンタを含む。読込デバイス2006は、外部のデータを取得するためのデバイスであって、メモリカードリーダ及びネットワークカードを含む。バス2008は、上述の各部を接続し、データのやりとりを可能とする。
入力デバイス2004とはコンピュータに情報を入力するデバイスであって、例えばマウスやキーボード等がこれに該当する。出力デバイス2005とはコンピュータが情報を出力するデバイスであって、モニタ及びプリンタを含む。読込デバイス2006は、外部のデータを取得するためのデバイスであって、メモリカードリーダ及びネットワークカードを含む。バス2008は、上述の各部を接続し、データのやりとりを可能とする。
[その他の実施形態]
本発明は、以下の処理を実行することによっても実現される。即ち、上述した各実施例の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した各実施例の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
Claims (11)
- オリジナル画像を分割して得られる各分割画像を複数の固定長符号化方法のうちの何れかを用いて固定長符号化することによって生成された固定長符号のそれぞれを、可変長符号に変換する情報処理装置であって、
前記固定長符号のそれぞれを、入力符号として取得する入力手段と、
前記入力符号の固定長符号化方法を判定する判定手段と、
前記入力符号を可変長符号に変換する複数の変換手段と、
前記複数の変換手段のうちの何れかが生成した可変長符号を、前記入力符号を可変長符号化した結果として出力する出力手段と、
を備え、
前記複数の変換手段のそれぞれは、対応する固定長符号化方法が予め設定されており、前記入力符号が当該対応する固定長符号化方法によって符号化されている場合に、当該対応する固定長符号化方法によって生成された固定長符号を可変長化する方法として当該変換手段に予め設定された可変長符号化方法を用いて、前記入力符号を可変長符号に変換する
ことを特徴とする情報処理装置。 - 前記複数の変換手段のうちの少なくとも1つは、
前記入力符号を復号して復号分割画像を取得する手段と、
前記オリジナル画像において、前記入力符号が示す分割画像の近傍に位置する分割画像の固定長符号であって、前記入力符号と同じ固定長符号化方法で生成された固定長符号を復号して、参照分割画像を取得する手段と、
前記参照分割画像を用いて前記復号分割画像を予測符号化することによって可変長符号化する手段と、
を含む事を特徴とする請求項1に記載の情報処理装置。 - 前記複数の変換手段のうちの少なくとも1つは、前記入力符号中の所定の値の連続を、当該連続する値の長さを示す値で置き換えることによって可変長符号化を行うことを特徴とする、請求項2に記載の情報処理装置。
- オリジナル画像を分割して得られる各分割画像を複数の固定長符号化方法のうちの何れかの方法によって固定長符号化することによって生成された固定長符号のそれぞれを、可変長符号に変換する情報処理装置であって、
前記固定長符号のそれぞれを入力符号として順次取得する入力手段と、
前記入力符号の固定長符号化方法を判定する判定手段と、
前記オリジナル画像において、前記入力符号が示す分割画像の近傍に位置する分割画像の固定長符号であって、前記入力符号と同じ固定長符号化方法で生成された固定長符号を、当該入力符号に対する対照符号として取得する取得手段と、
前記入力符号と、当該入力符号に対する前記対照符号とを用いて、前記入力符号に対する前記可変長符号を生成する生成手段と、
前記生成手段が生成した可変長符号を、前記入力符号を可変長符号化した結果として出力する出力手段と、
を備えることを特徴とする情報処理装置。 - 前記固定長符号は複数のフィールドを含み、
前記生成手段は、前記入力符号が含む前記フィールド内の係数と、前記対照符号の対応するフィールド内の係数とを用いて、前記可変長符号を生成する
ことを特徴とする、請求項4に記載の情報処理装置。 - オリジナル画像を分割して得られる各分割画像を複数の固定長符号化方法のうちの何れかの方法によって固定長符号化することによって生成された固定長符号のそれぞれを、可変長符号に変換する情報処理装置であって、
前記固定長符号を入力符号として取得する入力手段と、
前記入力符号の固定長符号化方法を判定する判定手段と、
前記判定手段が判定した前記固定長符号化方法に基づいて、入力された前記固定長符号を可変長符号に変換して出力符号として出力するか、又は入力された前記固定長符号をそのまま出力符号として出力する複数の変換器を有する変換手段と、
前記入力手段が取得した前記入力符号を前記変換手段が有するそれぞれの変換器に入力し、該入力後、それぞれの変換器から出力される前記出力符号のうち最も符号量の小さい出力符号を選択して出力する選択手段とを備え、
前記各変換器は、それぞれ異なる固定長符号化方法で符号化された固定長符号を可変長符号に変換するように個別に設定されており、前記入力された前記固定長符号の固定長符号化方法が前記設定された固定長符号化方法である場合には当該入力された前記固定長符号を可変長符号に変換して前記出力符号として出力し、前記入力された前記固定長符号の固定長符号化方法が前記設定された固定長符号ではない場合には当該入力された前記固定長符号を前記出力符号としてそのまま出力する
ことを特徴とする、情報処理装置。 - オリジナル画像を分割して得られる各分割画像を複数の固定長符号化方法のうちの何れかを用いて固定長符号化することによって生成された固定長符号のそれぞれを、可変長符号に変換する情報処理装置が行う情報処理方法であって、
前記固定長符号のそれぞれを、入力符号として取得する入力工程と、
前記入力符号の固定長符号化方法を判定する判定工程と、
前記入力符号を可変長符号に変換する複数の変換工程と、
前記複数の変換工程のうちの何れかで生成した可変長符号を、前記入力符号を可変長符号化した結果として出力する出力工程と、
を備え、
前記複数の変換工程のそれぞれは、対応する固定長符号化方法が予め設定されており、前記入力符号が当該対応する固定長符号化方法によって符号化されている場合に、当該対応する固定長符号化方法によって生成された固定長符号を可変長化する方法として当該変換工程に予め設定された可変長符号化方法を用いて、前記入力符号を可変長符号に変換する
ことを特徴とする情報処理方法。 - オリジナル画像を分割して得られる各分割画像を複数の固定長符号化方法のうちの何れかの方法によって固定長符号化することによって生成された固定長符号のそれぞれを、可変長符号に変換する情報処理装置が行う情報処理方法であって、
前記固定長符号のそれぞれを入力符号として順次取得する入力工程と、
前記入力符号の固定長符号化方法を判定する判定工程と、
前記オリジナル画像において、前記入力符号が示す分割画像の近傍に位置する分割画像の固定長符号であって、前記入力符号と同じ固定長符号化方法で生成された固定長符号を、当該入力符号に対する対照符号として取得する取得工程と、
前記入力符号と、当該入力符号に対する前記対照符号とを用いて、前記入力符号に対する前記可変長符号を生成する生成工程と、
前記生成工程で生成した可変長符号を、前記入力符号を可変長符号化した結果として出力する出力工程と、
を備えることを特徴とする情報処理方法。 - オリジナル画像を分割して得られる各分割画像を複数の固定長符号化方法のうちの何れかの方法によって固定長符号化することによって生成された固定長符号のそれぞれを、可変長符号に変換する情報処理装置が行う情報処理方法であって、
前記固定長符号を入力符号として取得する入力工程と、
前記入力符号の固定長符号化方法を判定する判定工程と、
前記判定工程で判定した前記固定長符号化方法に基づいて、入力された前記固定長符号を可変長符号に変換して出力符号として出力するか、又は入力された前記固定長符号を出力符号としてそのまま出力する複数の変換工程と、
前記入力工程で取得した前記入力符号を前記複数の変換工程で処理することにより得られるそれぞれの前記出力符号のうち最も符号量の小さい出力符号を選択して出力する選択工程とを備え、
前記各変換工程は、それぞれ異なる固定長符号化方法で符号化された固定長符号を可変長符号に変換するように個別に設定されており、前記入力された前記固定長符号の固定長符号化方法が前記設定された固定長符号化方法である場合には当該入力された前記固定長符号を可変長符号に変換して前記出力符号として出力し、前記入力された前記固定長符号の固定長符号化方法が前記設定された固定長符号ではない場合には当該入力された前記固定長符号を前記出力符号としてそのまま出力する
ことを特徴とする、情報処理方法。 - コンピュータを、請求項1乃至6の何れか1項に記載の情報処理装置として機能させるための、コンピュータプログラム。
- 請求項10に記載のコンピュータプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010024824A JP5501014B2 (ja) | 2010-02-05 | 2010-02-05 | 情報処理装置、情報処理方法、プログラム及び記憶媒体 |
US13/007,230 US8421653B2 (en) | 2010-02-05 | 2011-01-14 | Information processing apparatus, information processing method, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010024824A JP5501014B2 (ja) | 2010-02-05 | 2010-02-05 | 情報処理装置、情報処理方法、プログラム及び記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011166320A true JP2011166320A (ja) | 2011-08-25 |
JP5501014B2 JP5501014B2 (ja) | 2014-05-21 |
Family
ID=44353270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010024824A Active JP5501014B2 (ja) | 2010-02-05 | 2010-02-05 | 情報処理装置、情報処理方法、プログラム及び記憶媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8421653B2 (ja) |
JP (1) | JP5501014B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016181754A (ja) * | 2015-03-23 | 2016-10-13 | 株式会社東芝 | 画像処理装置、画像処理方法及びプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1051642A (ja) * | 1996-07-31 | 1998-02-20 | Fuji Xerox Co Ltd | 画像処理装置 |
JP2005245037A (ja) * | 2001-08-31 | 2005-09-08 | Matsushita Electric Ind Co Ltd | 画像符号化方法、画像復号化方法及びその装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69524269T2 (de) * | 1994-01-28 | 2002-07-18 | Matsushita Electric Ind Co Ltd | Vorrichtung und Verfahren zur Dekodierung von Kodes variabler Länge |
US5991451A (en) * | 1995-03-23 | 1999-11-23 | Intel Corporation | Variable-length encoding using code swapping |
KR100214593B1 (ko) * | 1996-03-15 | 1999-08-02 | 구자홍 | 캐스케이드 구조를 이용한 런랭스 코드의 코드워드 검출 방법 및 장치 |
JP3520670B2 (ja) * | 1996-06-28 | 2004-04-19 | ソニー株式会社 | 可変長符号処理装置および画像処理装置 |
JP3484310B2 (ja) * | 1997-01-17 | 2004-01-06 | 松下電器産業株式会社 | 可変長符号器 |
GB2321375B (en) * | 1997-01-21 | 2002-02-27 | Fujitsu Ltd | Data encoding method and apparatus and data decoding method and apparatus |
JP2001094985A (ja) | 1999-09-20 | 2001-04-06 | Ricoh Co Ltd | 画像符号化装置 |
JP2002094801A (ja) | 2000-09-20 | 2002-03-29 | Ricoh Co Ltd | 画像データ圧縮方法、画像データ圧縮装置、記録媒体 |
JP4506039B2 (ja) * | 2001-06-15 | 2010-07-21 | ソニー株式会社 | 符号化装置及び方法、復号装置及び方法、並びに符号化プログラム及び復号プログラム |
JP3415126B2 (ja) * | 2001-09-04 | 2003-06-09 | 三菱電機株式会社 | 可変長符号多重化装置、可変長符号分離装置、可変長符号多重化方法及び可変長符号分離方法 |
US6696992B1 (en) * | 2001-10-02 | 2004-02-24 | Allan Chu | Efficient data encoding and decoding processes |
US7095343B2 (en) * | 2001-10-09 | 2006-08-22 | Trustees Of Princeton University | code compression algorithms and architectures for embedded systems |
US6856264B2 (en) * | 2003-04-16 | 2005-02-15 | Texas Instruments Incorporated | Method for decoding reversible variable length code using leading-zeros variable length decoding techniques |
US7626522B2 (en) * | 2007-03-12 | 2009-12-01 | Qualcomm Incorporated | Data compression using variable-to-fixed length codes |
JP4829836B2 (ja) | 2007-04-26 | 2011-12-07 | キヤノン株式会社 | 画像符号化装置、画像符号化装置の制御方法、コンピュータプログラム、復号装置、及びコンピュータ可読記憶媒体 |
-
2010
- 2010-02-05 JP JP2010024824A patent/JP5501014B2/ja active Active
-
2011
- 2011-01-14 US US13/007,230 patent/US8421653B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1051642A (ja) * | 1996-07-31 | 1998-02-20 | Fuji Xerox Co Ltd | 画像処理装置 |
JP2005245037A (ja) * | 2001-08-31 | 2005-09-08 | Matsushita Electric Ind Co Ltd | 画像符号化方法、画像復号化方法及びその装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016181754A (ja) * | 2015-03-23 | 2016-10-13 | 株式会社東芝 | 画像処理装置、画像処理方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20110193729A1 (en) | 2011-08-11 |
JP5501014B2 (ja) | 2014-05-21 |
US8421653B2 (en) | 2013-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4979655B2 (ja) | 画像符号化装置及びその制御方法 | |
US20110262052A1 (en) | Image coding apparatus, control method thereof, and storage medium | |
US7218788B2 (en) | Image coder/decoder, image coding/decoding method, and storage medium | |
CN103841424A (zh) | 随机存取存储器中压缩数据的系统及方法 | |
JP2006157678A (ja) | 可変長符号化装置及び可変長符号化方法 | |
JP2011147193A (ja) | 動画像符号化装置、動画像復号装置 | |
US8175401B2 (en) | Image processing apparatus and computer readable medium storing program therefor | |
JP2007214998A (ja) | 符号化装置、復号化装置、符号化方法、復号化方法、及びプログラム | |
JP5501014B2 (ja) | 情報処理装置、情報処理方法、プログラム及び記憶媒体 | |
KR100717002B1 (ko) | 영상 부호화 및 복호화 장치와, 그 방법, 및 이를 수행하기위한 프로그램이 기록된 기록 매체 | |
JP3788414B2 (ja) | Jpeg再圧縮データの通信装置および通信方法 | |
JP2007060203A (ja) | データ圧縮装置およびデータ圧縮プログラム | |
JPH06189140A (ja) | 画像圧縮装置 | |
JPH10304362A (ja) | 画像信号処理装置及び方法 | |
JP2012205058A (ja) | 画像処理装置及び画像処理プログラム | |
JP2006352547A (ja) | データ圧縮装置およびデータ圧縮プログラム | |
JP2003333339A (ja) | 画像符号化装置及び画像符号化方法 | |
JP4447903B2 (ja) | 信号処理装置、信号処理方法、記録媒体及びプログラム | |
JPH10304363A (ja) | 画像信号処理装置及び方法 | |
JP2003309848A (ja) | 画像符号化装置及びその制御方法 | |
JP4095454B2 (ja) | データ復号装置及びデータ復号方法 | |
JP4181147B2 (ja) | データ圧縮装置およびデータ圧縮プログラム | |
JP5039425B2 (ja) | 画像符号化装置及びその制御方法 | |
JP3866539B2 (ja) | 符号化方法,復号方法,符号化装置,復号装置,符号化プログラム,復号プログラムおよびそれらのプログラム記録媒体 | |
JP4141692B2 (ja) | 画像圧縮処理装置及び画像圧縮処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130204 |
|
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: 20140210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140311 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5501014 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |