JP4303312B1 - 圧縮処理装置および圧縮処理方法 - Google Patents

圧縮処理装置および圧縮処理方法 Download PDF

Info

Publication number
JP4303312B1
JP4303312B1 JP2008552632A JP2008552632A JP4303312B1 JP 4303312 B1 JP4303312 B1 JP 4303312B1 JP 2008552632 A JP2008552632 A JP 2008552632A JP 2008552632 A JP2008552632 A JP 2008552632A JP 4303312 B1 JP4303312 B1 JP 4303312B1
Authority
JP
Japan
Prior art keywords
encoding
huffman
data
unit
subsets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008552632A
Other languages
English (en)
Other versions
JPWO2010013290A1 (ja
Inventor
ハンス ユルゲン マタウシュ
哲士 小出
武志 熊木
雅勝 石崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hiroshima University NUC
Original Assignee
Hiroshima University NUC
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 Hiroshima University NUC filed Critical Hiroshima University NUC
Application granted granted Critical
Publication of JP4303312B1 publication Critical patent/JP4303312B1/ja
Publication of JPWO2010013290A1 publication Critical patent/JPWO2010013290A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Abstract

分割ユニット(2)は、ジグザグスキャン/ランレングス処理まで終了した入力データの各記号列を出現頻度の違いによって出現頻度が類似した複数の部分集合に分割する。そして、テーブル作成ユニット(3)は、各部分集合を走査して各部分集合に対してハフマン符号化テーブルを作成する。符号化ユニット(4)は、各部分集合をその部分集合に対して作成されたハフマン符号化テーブルを用いてハフマン符号化する処理を複数の部分集合の全ての部分集合について実行する。
【選択図】図1

Description

この発明は、データを圧縮する圧縮処理装置および圧縮処理方法に関するものである。
従来、ハフマン符号化は、データ圧縮技術の中で最も効率のよい可逆圧縮技術の一つとして知られている(D. A. Huffman, “A method for the construction of minimum redundancy codes,” Proc. IRE, no. 40, pp. 1098-1101, Sept. 1952.)。
一般的なハフマン符号化は、圧縮処理を行なう前に、全ての符号化対象の記号列を精査することにより、はじめに、対象データに合わせた符号化テーブルを作成し、その作成した符号化テーブルを、再び、同様の記号列に対して用いて圧縮処理を行なう。
しかし、この方法では、圧縮を行なうためにデータを2回スキャンする必要があるため、オンラインでのリアルタイム圧縮が困難になる。また、符号化対象の記号列の種類が多く、出現頻度に偏りがある場合、圧縮率の向上が望めない場合がある。
そこで、最近では、静的ハフマン符号化と動的(「適応型」とも言う)ハフマン符号化(D. E. Kunth, “Dynamic Huffmann coding,” J. Algorithms, vol. 6, pp. 163-180, 1985.)の2通りに分かれている。
静的ハフマン符号化は、ソフトウェアおよびハードウェア共に、最も広く実装されている形態である。そして、静的ハフマン符号化は、符号化処理をリアルタイムに実行するために、予め数多くのサンプルデータからデータの出現頻度を調査しておき、この結果を元に作成した既存のテーブルを用意して符号化を行なうものである。
また、動的ハフマン符号化は、従来のハフマン符号化の問題点であるオンラインでの圧縮、および静的ハフマン符号化の問題点である既存のテーブルが存在しない任意の記号列に合わせた圧縮を改善するために開発されたものである。そして、動的ハフマン符号化は、記号を処理するごとにハフマン木を更新し、その時点で構成されたツリーによって符号化を行なうものである。
しかし、従来の動的ハフマン符号化においては、圧縮効率およびリアルタイム性についていくつかの問題がある。すなわち、動的ハフマン符号化は、アルゴリズムの特性上、符号化データに加え、初出現の記号を符号化せずに送らなければならないため、その分、データ量が増加する。
また、動的ハフマン符号化においては、圧縮開始からある時間は、ハフマン木が十分なものでないため、圧縮率が低いことが多い。これは、圧縮中にデータの出現分布が変化した場合にも同様のことが言える。
更に、データの局所性により、集中的に出現した記号に短い符号が割り当てられたとしても、それ以降出現しない場合には、データ量が大きくなるにつれて静的ハフマン符号化よりも圧縮効率が下がる場合がある。
これに対しては、符号化テーブルの定期的なリフレッシュという方法が採用されることもあるが、過去のデータの生起確率を破棄することは、逆に圧縮効率を悪化させることにもなる。また、符号化の際に、その都度、ハフマン木を更新するため、処理により多くの時間を必要とする。これにより、オンラインでの処理が可能であるとしても、動的ハフマン符号化は、リアルタイム性を要するアプリケーションには向かない場合がある。
そこで、圧縮効率の向上が可能な圧縮処理装置を提供することが望まれる。
また、圧縮効率の向上が可能な圧縮処理方法を提供することが望まれる。
圧縮処理装置は、入力データを圧縮して圧縮データを出力する圧縮処理装置であって、分割ユニットと、符号化ユニットとを備える。分割ユニットは、入力データからなる母集合に含まれる複数の要素を各要素の特徴を用いて複数の部分集合に分割する。符号化ユニットは、複数の部分集合に対応して設けられた複数のハフマン符号化テーブルを用いて各部分集合毎に符号化対象データをハフマン符号化し、圧縮データを出力する。
圧縮処理装置は、テーブル作成ユニットをさらに備えてもよい。テーブル作成ユニットは、1つの部分集合に含まれる符号化対象データの出現頻度を調べて1つの部分集合に対応するハフマン符号化テーブルを作成する処理を複数の部分集合の全てについて実行し、複数のハフマン符号化テーブルを作成する。
符号化ユニットは、複数のハフマン符号化テーブルを作成しながら各部分集合毎に符号化対象データをハフマン符号化してもよい。
圧縮処理装置は、テーブル保持ユニットと、更新ユニットとをさらに備えてもよい。テーブル保持ユニットは、各々が複数のハフマン符号からなる第1および第2の符号化テーブルを保持する。更新ユニットは、第1および第2の符号化テーブルのうち、入力データのハフマン符号化に用いられていない一方の符号化テーブルを符号化対象データの出現頻度に応じて出現頻度が最も多い符号化対象データが最も短いハフマン符号に変換されるように更新する。そして、符号化ユニットは、圧縮データの圧縮率がしきい値以下であるとき、第1および第2の符号化テーブルのうちの他方の符号化テーブルに基づいて複数のハフマン符号化テーブルを作成しながら各部分集合毎に符号化対象データをハフマン符号化し、圧縮率がしきい値よりも大きくなると、更新ユニットによって更新された一方の符号化テーブルに基づいて複数のハフマン符号化テーブルを作成しながら各部分集合毎に符号化対象データをハフマン符号化してもよい。
更新ユニットは、全ての符号化対象データに対して出現頻度をカウントするとともに、1つの符号化対象データに対する出現頻度が最大値に達する毎に、出現頻度が最大値に達した順番が早いほど短い長さを有する新しいハフマン符号を1つの符号化対象データに対して割り当てる処理を全ての符号化対象データに対して実行し、一方の符号化テーブルを更新してもよい。
更新ユニットは、符号化ユニットから出力された圧縮データに基づいて圧縮率を演算するとともに、その演算した圧縮率がしきい値よりも大きくなったとき、または全ての符号化対象データに対して新しいハフマン符号を割り当てたとき、符号化テーブルを切換えるための切換信号を生成して符号化ユニットへ出力してもよい。符号化ユニットは、切換信号に応じて符号化テーブルを切換え、その切換え後の符号化テーブルに基づいて複数のハフマン符号化テーブルを作成しながら各部分集合毎に符号化対象データをハフマン符号化してもよい。
圧縮処理装置は、画像分割ユニットをさらに備えてもよい。画像分割ユニットは、画像に含まれる対象物に基づいて画像を複数の画像に分割して複数の入力データを生成する。そして、分割ユニットは、複数の入力データのうちの1つの入力データからなる母集合に含まれる複数の要素を各要素の特徴を用いて複数の部分集合に分割する処理を複数の入力データの全てに対して実行する。符号化ユニットは、1つの入力データから分割された複数の部分集合に対応して設けられた複数のハフマン符号化テーブルを用いて各部分集合毎に符号化対象データをハフマン符号化し、圧縮データを出力する処理を複数の入力データの全てに対して実行してもよい。
また、圧縮処理方法は、入力データを圧縮して圧縮データを出力する圧縮処理方法であって、分割ユニットが、入力データからなる母集合に含まれる複数の要素を各要素の特徴を用いて複数の部分集合に分割する第1のステップと、符号化ユニットが、複数の部分集合に対応して設けられた複数のハフマン符号化テーブルを用いて各部分集合毎に符号化対象データをハフマン符号化し、圧縮データを出力する第2のステップとを備える。
圧縮処理方法は、テーブル作成ユニットが、1つの部分集合に含まれる符号化対象データの出現頻度を調べて1つの部分集合に対応するハフマン符号化テーブルを作成する処理を複数の部分集合の全てについて実行し、複数のハフマン符号化テーブルを作成する第3のステップをさらに備えてもよい。
第2のステップにおいて、符号化ユニットは、複数のハフマン符号化テーブルを作成しながら各部分集合毎に符号化対象データをハフマン符号化してもよい。
圧縮処理方法は、更新ユニットが、各々が複数のハフマン符号からなる第1および第2の符号化テーブルのうち、入力データのハフマン符号化に用いられていない一方の符号化テーブルを符号化対象データの出現頻度に応じて出現頻度が最も多い符号化対象データが最も短いハフマン符号に変換されるように更新する第3のステップをさらに備え、第2のステップにおいて、符号化ユニットは、圧縮データの圧縮率がしきい値以下であるとき、第1および第2の符号化テーブルのうちの他方の符号化テーブルに基づいて複数のハフマン符号化テーブルを作成しながら各部分集合毎に符号化対象データをハフマン符号化し、圧縮率がしきい値よりも大きくなると、一方の符号化テーブルに基づいて複数のハフマン符号化テーブルを作成しながら各部分集合毎に符号化対象データをハフマン符号化してもよい。
第3のステップは、更新ユニットが、全ての符号化対象データに対して出現頻度をカウントする第1のサブステップと、更新ユニットが、1つの符号化対象データに対する出現頻度が最大値に達する毎に、出現頻度が最大値に達した順番が早いほど短い長さを有する新しいハフマン符号を1つの符号化対象データに対して割り当てる処理を全ての符号化対象データに対して実行し、一方の符号化テーブルを更新する第2のサブステップとを含んでもよい。
第3のステップは、更新ユニットが、符号化ユニットから出力された圧縮データに基づいて圧縮率を演算する第3のサブステップと、更新ユニットが、第3のサブステップにおいて演算された圧縮率がしきい値よりも大きくなったとき、または全ての符号化対象データに対して新しいハフマン符号を割り当てたとき、符号化テーブルを切換えるための切換信号を生成して符号化ユニットへ出力する第4のサブステップとをさらに含み、第2のステップにおいて、符号化ユニットは、切換信号に応じて符号化テーブルを切換え、その切換え後の符号化テーブルに基づいて複数のハフマン符号化テーブルを作成しながら各部分集合毎に符号化対象データをハフマン符号化してもよい。
圧縮処理方法は、画像分割ユニットが、画像に含まれる対象物に基づいて画像を複数の画像に分割して複数の入力データを生成する第3のステップをさらに備え、第1のステップにおいて、分割ユニットは、複数の入力データのうちの1つの入力データからなる母集合に含まれる複数の要素を各要素の特徴を用いて複数の部分集合に分割する処理を複数の入力データの全てに対して実行し、第2のステップにおいて、符号化ユニットは、1つの入力データから分割された複数の部分集合に対応して設けられた複数のハフマン符号化テーブルを用いて各部分集合毎に符号化対象データをハフマン符号化し、圧縮データを出力する処理を複数の入力データの全てに対して実行してもよい。
圧縮処理装置または圧縮処理方法は、入力データを各記号列の出現頻度の違いによって複数の部分集合に分割し、その分割した複数の部分集合の各部分集合毎にハフマン符号化テーブルを作成し、その作成したハフマン符号化テーブルを用いて各部分集合毎にハフマン符号化を行なう。
その結果、従来のハフマン符号化を用いた場合よりも、各部分集合に含まれる符号化対象データに対して短いハフマン符号が割り当てられる。
したがって、圧縮率を向上できる。
この発明の実施の形態1による圧縮処理装置の構成を示す概略ブロック図である。 従来のハフマン符号化を示す概念図である。 図1に示す圧縮処理装置におけるハフマン符号化を示す概念図である。 図1に示す圧縮処理装置における画像圧縮の概念図である。 部分集合への分割の具体例を説明するための図である。 部分集合への分割の他の具体例を説明するための図である。 実施の形態1における圧縮処理方法を説明するためのフローチャートである。 実施の形態2による圧縮処理装置の概略ブロック図である。 図8に示すエンコーダおよび最適器の構成図である。 図9に示す割当モジュールの構成図である。 図9に示す交換モジュールの構成図である。 図9に示す交換モジュールの他の構成図である。 一方の符号化テーブルを用いたハフマン符号化の動作を説明するための図である。 他方の符号化テーブルを用いたハフマン符号化の動作を説明するための図である。 シャドウテーブルの役割を果たす符号化テーブルの更新を説明するための図である。 図9に示すエンコーダおよび最適器における動作を説明するためのフローチャートである。 図8に示す圧縮処理装置におけるハフマン符号化を具体的に説明するための図である。 実施の形態2における圧縮処理方法を説明するためのフローチャートである。 実施の形態3による圧縮処理装置の概略ブロック図である。 画像の分割方法を説明するための図である。 領域成長型分割分割アルゴリズムを用いた画像の分割方法を説明するためのフローチャートである。 実施の形態3における圧縮処理方法を説明するためのフローチャートである。 実施の形態3による圧縮処理装置の他の構成を示す概略ブロック図である。 実施の形態3における他の圧縮処理方法を説明するためのフローチャートである。
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
[実施の形態1]
図1は、この発明の実施の形態1による圧縮処理装置の構成を示す概略ブロック図である。図1を参照して、この発明の実施の形態1による圧縮処理装置10は、処理部1と、分割ユニット2と、テーブル作成ユニット3と、符号化ユニット4とを備える。
処理部1は、従来のハフマン符号を用いた圧縮方法における原画像の複数の画素への分割、RGBからYCbCrへの変換/サンプリング、レベルシフト、離散コサイン変換、量子化、およびジグザグスキャン/ランレングス処理を行なう。そして、処理部1は、ジグザグスキャンおよびランレングス処理後のデータを入力データとして分割ユニット2へ出力する。
分割ユニット2は、処理部1から受けた入力データを入力データに含まれる各要素の特徴(出現頻度)によって複数の部分集合に分割し、その分割した複数の部分集合をテーブル作成ユニット3および符号化ユニット4へ出力する。
テーブル作成ユニット3は、分割ユニット2から複数の部分集合を受ける。そして、テーブル作成ユニット3は、1つの部分集合に含まれる符号化対象データの出現頻度を調査し、その調査した出現頻度に基づいて、従来のハフマン木の構築方法を用いて1つの部分集合に対するハフマン符号化テーブルを作成する。テーブル作成ユニット3は、この処理を複数の部分集合の全ての部分集合に対して実行し、複数の部分集合に対して複数のハフマン符号化テーブルを作成する。そうすると、テーブル作成ユニット3は、その作成した複数のハフマン符号化テーブルを符号化ユニット4へ出力する。
符号化ユニット4は、分割ユニット2から複数の部分集合を受け、テーブル作成ユニット3から複数のハフマン符号化テーブルを受ける。そして、符号化ユニット4は、複数の部分集合に含まれる符号化対象データを複数のハフマン符号化テーブルを用いてハフマン符号化し、圧縮データを出力する。この場合、符号化ユニット4は、1つの部分集合に含まれる符号化対象データを1つの部分集合に対応して作成されたハフマン符号化テーブルを用いてハフマン符号化する。そして、符号化ユニット4は、この処理を複数の部分集合の全ての部分集合に対して実行し、複数の部分集合に含まれる全ての符号化対象データをハフマン符号化する。
図2は、従来のハフマン符号化を示す概念図である。また、図3は、図1に示す圧縮処理装置10におけるハフマン符号化を示す概念図である。図2を参照して、入力データからなる母集合Uは、白丸、白四角および白三角によって表される複数の要素からなり、複数の要素の全ては、部分集合Aに属する。
したがって、従来のハフマン符号化においては、部分集合Aに対して1つのハフマン符号化テーブルを作成するため、要素数と、その種類が多い場合、ハフマン符号化テーブルの作成に時間を要し、圧縮効率の向上も難しくなる。
一方、図3に示すように、この発明によるハフマン符号化では、母集合Uに属する複数の要素をそれぞれの特徴に分けていくつかの部分集合B,C,Dに分割する。そして、各部分集合B,C,Dごとにハフマン符号化テーブルを作成し、その作成したハフマン符号化テーブルを用いて各部分集合B,C,Dごとにハフマン符号化を行なう。
このように、この発明によるハフマン符号化では、各部分集合ごとにハフマン符号化を行なうため、圧縮率を向上できる。また、部分集合ごとにハフマン符号化テーブルを作成して圧縮処理を行なうため、要素数が多い場合でも、符号後のデータを直ぐに得ることができる。
図4は、図1に示す圧縮処理装置10における画像圧縮の概念図である。図4を参照して、画像を圧縮する場合、圧縮処理装置10の処理部1は、原画像を複数の要素に分割し、その分割した複数の要素ごとにRGBからYCbCrへの変換を行ない、サンプリングする。
その後、圧縮処理装置10の処理部1は、サンプリング結果をレベルシフトし、その後、離散コサイン変換(DCT:Discrete Cosine Transform)を行なう。
引き続いて、圧縮処理装置10の処理部1は、量子化を行ない、その量子化後のデータを原画像の左上から右下に向かってジグザクスキャンするとともに、ランレングス処理を行なう。
その後、圧縮処理装置10の分割ユニット2は、入力データ(「ジグザクスキャンおよびランレングス処理後のデータ」を言う。以下、同じ。)を複数の部分集合に分割し、テーブル作成ユニット3は、分割ユニット2によって分割された複数の部分集合の各々についてハフマン符号化テーブルを作成し、符号化ユニット4は、テーブル作成ユニット3によって作成された複数のハフマン符号化テーブルを用いて部分集合ごとにハフマン符号化を行ない、圧縮画像を出力する。
したがって、「入力データを部分集合に分割」のブロックおよび「部分集合毎にハフマン符号化」のブロックが従来の画像圧縮方法と異なる点である。
ここで、圧縮処理装置10の分割ユニット2における入力データの複数の部分集合への分割方法について説明する。たとえば、入力データが「ATAACCCCGG」の記号列からなる場合、分割ユニット2は、各記号の出現頻度の違いによって、「ATAACCCCGG」の記号列を「ATAA」の記号列と、「CCCCGG」の記号列とに分割する。
ジグザクスキャンおよびランレングス処理が行なわれた後のデータは、「ATAA」の記号列および「CCCCGG」の記号列のように類似した記号列が配列された部分が分散的に配置されている。したがって、分割ユニット2は、ジグザクスキャンおよびランレングス処理が行なわれた後の記号列を参照して、類似した記号列を一まとめにして入力データを複数の部分集合に分割する。
このように、分割ユニット2は、ジグザクスキャンおよびランレングス処理後のデータを各記号列の出現頻度の違いによって複数の部分集合に分割する。
図5は、部分集合への分割の具体例を説明するための図である。図5を参照して、原画像は、空の部分、山の部分および地面の部分からなる風景画である。このような原画像は、空の部分、山の部分および地面の部分において、各記号列の出現頻度が異なる。したがって、分割ユニット2は、各記号列の出現頻度の違いによって、原画像のデータを空の部分からなる部分集合A、山の部分からなる部分集合Bおよび地面の部分からなる部分集合Cに分割する。
そして、テーブル作成ユニット3は、空の部分からなる部分集合Aをスキャンして部分集合Aに対してハフマン符号化テーブルAを作成し、山の部分からなる部分集合Bをスキャンして部分集合Bに対してハフマン符号化テーブルBを作成し、地面の部分からなる部分集合Cをスキャンして部分集合Cに対してハフマン符号化テーブルCを作成する。
そうすると、符号化ユニット4は、ハフマン符号化テーブルAを用いて空の部分からなる部分集合Aに含まれる符号化対象データをハフマン符号化し、ハフマン符号化テーブルBを用いて山の部分からなる部分集合Bに含まれる符号化対象データをハフマン符号化し、ハフマン符号化テーブルCを用いて地面の部分からなる部分集合Cに含まれる符号化対象データをハフマン符号化する。
従来のハフマン符号化は、空の部分、山の部分および地面の部分のようなデータの違いに関係なく、予め定められているハフマン符号化テーブルを用いてハフマン符号化を行なっていた。または、従来のハフマン符号化は、画像全体をスキャンした後に作成したハフマン符号化テーブルを用いてハフマン符号化を行なっていた。
しかし、これらの方法では、図に含まれるデータの種類が多くなるにつれて、割り当てるハフマン符号のビット長が次第に長くなり、圧縮後のデータサイズが大きくなる傾向にある。
これに対して、この発明による方法では、空、山および地面毎に最適化したハフマン符号化テーブルA,B,Cを用いてハフマン符号化するため、画像の部分集合毎にビット長の短い最適なハフマン符号を割り当てることができる。したがって、圧縮率を向上できる。
図6は、部分集合への分割の他の具体例を説明するための図である。図6を参照して、原画像は、背景の部分および人物の部分からなる人物のスナップ写真である。このような原画像は、背景の部分および人物の部分において、各記号列の出現頻度が異なる。したがって、分割ユニット2は、各記号列の出現頻度の違いによって、原画像のデータを背景の部分からなる部分集合Dおよび人物の部分からなる部分集合Eに分割する。
そして、テーブル作成ユニット3は、背景の部分からなる部分集合Dをスキャンして部分集合Dに対してハフマン符号化テーブルDを作成し、人物の部分からなる部分集合Eをスキャンして部分集合Eに対してハフマン符号化テーブルEを作成する。
そうすると、符号化ユニット4は、ハフマン符号化テーブルDを用いて背景の部分からなる部分集合Dに含まれる符号化対象データをハフマン符号化し、ハフマン符号化テーブルEを用いて人物の部分からなる部分集合Eに含まれる符号化対象データをハフマン符号化する。
この場合にも、この発明による方法では、上述した理由と同じ理由によって、従来のハフマン符号化よりも圧縮率を向上できる。
図7は、実施の形態1における圧縮処理方法を説明するためのフローチャートである。図7を参照して、一連の動作が開始されると、圧縮処理装置10の処理部1は、原画像について、RGBからYCbCrへの変換、サンプリング、レベルシフト、離散コサイン変換、量子化およびジグザグスキャン/ランレングス処理を実行して符号化対象データ群(=入力データ)を生成する(ステップS1)。
そして、分割ユニット2は、処理部1から受けた符号化対象データ群から類似した記号列を抽出し、部分集合を生成する(ステップS2)。
その後、テーブル作成ユニット3は、分割ユニット2によって生成された部分集合内をスキャンし、ハフマン符号化テーブルを作成する(ステップS3)。
引き続いて、符号化ユニット4は、分割ユニット2から部分集合を受け、テーブル作成ユニット3からハフマン符号化テーブルを受ける。そして、符号化ユニット4は、ハフマン符号化テーブルを用いて部分集合内の符号化対象データをハフマン符号化する(ステップS4)。
その後、全ての部分集合に対してハフマン符号化が終了したか否かが判定され(ステップS5)、全ての部分集合に対してハフマン符号化が終了していない場合、一連の動作は、ステップS2へ戻り、上述したステップS2〜ステップS5が繰り返し実行される。
そして、ステップS5において、全ての部分集合に対してハフマン符号化が終了していると判定されると、一連の動作は終了する。
上述したように、実施の形態1によれば、圧縮処理装置10は、入力データを各記号列の出現頻度の違いによって複数の部分集合に分割し、その分割した複数の部分集合の各部分集合毎にハフマン符号化テーブルを作成し、その作成したハフマン符号化テーブルを用いて各部分集合毎にハフマン符号化を行なう。
その結果、従来のハフマン符号化を用いた場合よりも、各部分集合に含まれる符号化対象データに対して短いハフマン符号が割り当てられる。したがって、圧縮率を向上できる。
[実施の形態2]
図8は、実施の形態2による圧縮処理装置の概略ブロック図である。図8を参照して、実施の形態2による圧縮処理装置10Aは、図1に示す圧縮処理装置10の分割ユニット2、テーブル作成ユニット3および符号化ユニット4をエンコーダ11および最適器12に代えたものであり、その他は、圧縮処理装置10と同じである。
エンコーダ11は、各々がハフマン符号からなる2つの符号化テーブルを保持する。そして、エンコーダ11は、符号化テーブルを切換えるための切換信号EXCを最適器12から受けないとき、2つの符号化テーブルのうち、一方の符号化テーブルを用いて、処理部1から受けた入力データをハフマン符号化し、圧縮データを出力する。また、エンコーダ11は、切換信号EXCを最適器12から受けると、2つの符号化テーブルのうちの一方の符号化テーブルから他方の符号化テーブルへ切換えて入力データをハフマン符号化し、圧縮データを出力する。
最適器12は、エンコーダ11におけるハフマン符号化と並行して、エンコーダ11が入力データのハフマン符号化に用いていない符号化テーブルを更新するとともに、切換信号EXCを生成してエンコーダ11へ出力する。
図9は、図8に示すエンコーダ11および最適器12の構成図である。図9を参照して、エンコーダ11は、CAM(Content Addressable Memory)111と、選択器112と、符号化テーブル113,114とを含む。最適器12は、割当モジュール121と、交換モジュール122とを含む。
CAM111は、複数の記憶記号と、複数の記憶記号にそれぞれ対応付けられた複数のアドレスとを記憶する。複数の記憶記号は、CAM111へ入力可能な記号からなる。CAM111は、入力データを構成する各入力記号を処理部1から受けると、記憶している複数の記憶記号を探索し、入力記号に一致する記憶記号を検出するとともに、その検出した記憶記号に対応付けられたアドレスを検出する。そして、CAM111は、その検出したアドレスを一致アドレスMAddとして選択器112および最適器12の割当モジュール121へ出力する。
選択器112は、最適器12の割当モジュール121および交換モジュール122からそれぞれ切換信号EXC1,EXC2(切換信号EXCの一種)を受けないとき、CAM111から受けた一致アドレスMAddをアクティブテーブル113へ出力し、割当モジュール121および交換モジュール122からそれぞれ切換信号EXC1,EXC2を受けると、CAM111から受けた一致アドレスMAddをシャドウテーブル114へ出力する。
アクティブテーブル113,114の各々は、複数のアドレスと、複数のコードワードとからなる。複数のコードワードは、複数のアドレスにそれぞれ対応付けられている。そして、複数のコードワードの各々は、ハフマン符号からなる。
符号化テーブル113は、選択器112から一致アドレスMAddを受けると、アクティブテーブルの役割を果たす。そして、符号化テーブル113は、その受けた一致アドレスMAddに対応付けられたコードワードを読み出し、その読み出したコードワードを圧縮データとして出力する。
また、符号化テーブル113は、選択器112から一致アドレスMAddを受けないとき、シャドウテーブルの役割を果たす。
符号化テーブル114は、符号化テーブル113と同じ構成からなり、符号化テーブル113と同じ機能を果たす。
なお、符号化テーブル113,114の各々は、SRAM(Static Random Access Memory)からなる。
割当モジュール121は、CAM111から一致アドレスMAddを受けると、その一致アドレスMAddをCAM111から受けた回数をカウントし、そのカウントしたカウント値が最大値Count_MAXに達すると、一致アドレスMAddに代わる新しいアドレスと、新しいコードワードとを後述する方法によって発生し、その発生した新しいアドレスと新しいコードワードとによって符号化テーブル114(=シャドウテーブル)を更新する。また、割当モジュール121は、新しいコードワードを交換モジュール122へ出力する。更に、割当モジュール121は、CAM111から受ける一致アドレスMAddの全てに対するカウント値が最大値Count_MAXに達したとき、切換信号EXC1を生成して選択器112へ出力する。
交換モジュール122は、新しいコードワードを割当モジュール121から受け、アクティブテーブルの役割を果たす符号化テーブル113(または符号化テーブル114)から圧縮データとして出力されるコードワード(「古いコードワード」と言う。以下、同じ。)を受ける。
そして、交換モジュール122は、新しいコードワードと古いコードワードとに基づいて圧縮率を演算し、その演算した圧縮率がしきい値よりも大きくなると、切換信号EXC2を生成して選択器112および割当モジュール121へ出力する。
図10は、図9に示す割当モジュール121の構成図である。図10を参照して、割当モジュール121は、デコーダ1200と、カウンタ1201〜120n(nは2以上の整数)と、アドレスエンコーダ1211と、アドレスカウンタ1212と、アドレスレジスタ1213と、マルチプレクサ(MUX)1214と、アドレスポインタ1215と、基本テーブル1216と、コントローラ1217とを含む。
デコーダ1200は、エンコーダ11のCAM111から受けた一致アドレスMAddをデコードし、そのデコードした一致アドレスMAddを一致アドレスMAddに対応して設けられたカウンタ(カウンタ1201〜120nのいずれか)へ出力する。
カウンタ1201〜120nは、CAM111が記憶するn個のアドレスに対応して設けられる。カウンタ1201〜120nの各々は、最大値Count_MAXが予め設定されている。この最大値Count_MAXは、ハフマン符号化する対象となるデータの種類に応じて決定されるものである。
カウンタ1201〜120nの各々は、デコーダ1200から一致アドレスMAddを受けると、その一致アドレスMAddを受けた回数をカウントし、そのカウント値が最大値Count_MAXに達すると、オーバーフロー信号OFLを生成し、その生成したオーバーフロー信号OFLをアドレスエンコーダ1211、アドレスカウンタ1212およびコントローラ1217へ出力する。
また、カウンタ1201〜120nの各々は、コントローラ1217からリセット信号RSETを受けると、カウント値をリセットする。
アドレスエンコーダ1211は、カウンタ1201〜120nがそれぞれ対応付けられているアドレスを保持している。そして、アドレスエンコーダ1211は、カウンタ1201〜120nのいずれかからオーバーフロー信号OFLを受けると、そのオーバーフロー信号OFLを出力したカウンタ(カウンタ1201〜120nのいずれか)が対応付けられたアドレスをエンコードし、そのエンコードしたアドレスをシャドウテーブル114において更新されるべきアドレスAdd_oldとしてアドレスレジスタ1213およびマルチプレクサ1214へ出力する。
アドレスカウンタ1212は、カウンタ1201〜120nのいずれかからオーバーフロー信号OFLを受け、更新されるべきアドレスAdd_oldのうち、最大のアドレスAdd_old_MAXをアドレスレジスタ1213から受ける。そして、アドレスカウンタ1212は、オーバーフロー信号OFLを受けると、最大のアドレスAdd_old_MAX以下の範囲で更新アドレスAdd_newを順次生成し、その生成した更新アドレスAdd_newをアドレスポインタ1215へ出力する。
この更新アドレスAdd_newは、基本テーブル1216において指定すべきアドレスを示し、基本テーブル1216は、後述するように、コードワードのビット長の短い順にアドレスを割り当てて複数のコードワードを記憶する。
したがって、アドレスカウンタ1212は、最大のアドレスAdd_old_MAX以下の範囲で小さいアドレスから順に更新アドレスAdd_newを生成する。
また、アドレスカウンタ1212は、交換モジュール122から切換信号EXC2を受けると、“0”から順にアドレスAdd0〜Addnを発生し、その発生したアドレスAdd0〜Addnをマルチプレクサ1214およびアドレスポインタ1215へ出力する。
アドレスレジスタ1213は、アドレスエンコーダ1211から受けたアドレスAdd_oldのうち、最大のアドレスAdd_old_MAXだけを保持するとともに、その保持した最大のアドレスAdd_old_MAXをアドレスカウンタ1212へ出力する。
マルチプレクサ1214は、アドレスエンコーダ1211からアドレスAdd_oldを受けると、その受けたアドレスAdd_oldをシャドウテーブル113へ出力する。
また、マルチプレクサ1214は、アドレスカウンタ1212からアドレスAdd0〜Addnを受けると、その受けたアドレスAdd0〜Addnを符号化テーブル114(=シャドウテーブル)へ出力する。
アドレスポインタ1215は、アドレスカウンタ1212から更新アドレスAdd_newを受けると、その受けた更新アドレスAdd_newに一致する基本テーブル1216中のアドレスを指定する。
また、アドレスポインタ1215は、アドレスカウンタ1212からアドレスAdd0〜Addnを受け、オーバーフロー信号OFLを出力したカウンタ1201〜120nが対応付けられたn個のアドレスをコントローラ1217から受ける。そして、アドレスポインタ1215は、アドレスカウンタ1212から受けたアドレスAdd0〜Addnのうち、コントローラ1217からのアドレスに一致しないアドレスを基本テーブル1216において指定する。
基本テーブル1216は、複数のアドレスと、複数のコードワードとを記憶する。そして、複数のコードワードは、複数のアドレスにそれぞれ対応付けられている。この場合、基本テーブル1216は、コードワードのビット長の短い順に複数のコードワードを記憶する。したがって、ビット長が最も短いコードワードは、最小のアドレスに対応付けられ、ビット長が最も長いコードワードは、最大のアドレスに対応付けられている。
基本テーブル1216は、アドレスポインタ1215からアドレスを指定されると、その指定されたアドレスに対応付けられたコードワードを新しいコードワードC_newとして符号化テーブル114(=シャドウテーブル)および交換モジュール122へ出力する。
コントローラ1217は、カウンタ1201〜120nの全てからオーバーフロー信号OFLを受けると、切換信号EXC1を生成し、その生成した切換信号EXC1をエンコーダ11の選択器112へ出力するとともに、オーバーフロー信号OFLを出力したカウンタ1201〜120nが対応付けられたn個のアドレスをアドレスポインタ1215へ順次出力する。
また、コントローラ1217は、切換信号EXC1を出力したとき、または交換モジュール122から切換信号EXC2を受けたとき、リセット信号RSETを生成してカウンタ1201〜120nへ出力する。
図11は、図9に示す交換モジュール122の構成図である。図11を参照して、交換モジュール122は、減算器1221と、加算器1222と、比較器1223と、累積レジスタ1224と、信号生成器1225とを含む。
減算器1221は、割当モジュール121からコードワードC_newを受け、アクティブテーブルの役割を果たす符号化テーブル113(または符号化テーブル114)からコードワードC_oldを受ける。そして、減算器1221は、コードワードC_oldからコードワードC_newを減算し、その減算結果を加算器1222へ出力する。
加算器1222は、減算器1221から減算結果を受け、累積レジスタ1224から累積値を受ける。そして、加算器1222は、累積値に減算結果を加算し、その加算結果を累積レジスタ1224へ出力する。
比較器1223は、割当モジュール121からコードワードC_newを受け、アクティブテーブルの役割を果たす符号化テーブル113(または符号化テーブル114)からコードワードC_oldを受ける。そして、比較器1223は、コードワードC_newのビット長をコードワードC_oldのビット長と比較し、コードワードC_newのビット長がコードワードC_oldのビット長よりも短いとき、累積レジスタ1224を活性化するためのイネーブル信号ENを生成し、その生成したイネーブル信号ENを累積レジスタ1224へ出力する。なお、比較器1223は、コードワードC_newのビット長がコードワードC_oldのビット長以上であるとき、イネーブル信号ENを累積レジスタ1224へ出力しない。
累積レジスタ1224は、比較器1223からイネーブル信号ENを受けると、加算器1222から受けた加算結果を累積値として保持するとともに、その保持した累積値を加算器1222および信号生成器1225へ出力する。
信号生成器1225は、圧縮率のしきい値が予め設定されている。そして、信号生成器1225は、累積レジスタ1224から受けた累積値をしきい値と比較し、累積値がしきい値よりも大きくなると、切換信号EXC2を生成し、その生成した切換信号EXC2をエンコーダ11の選択器112および割当モジュール121のコントローラ1217へ出力する。
累積レジスタ1224は、コードワードC_newのビット長がコードワードC_oldのビット長よりも短いときのみ、イネーブル信号ENによって活性化され、累積値を信号生成器1225へ出力する。そして、信号生成器1225は、累積値が圧縮率のしきい値よりも大きいとき、切換信号EXC2を生成する。また、累積値は、コードワードC_oldからコードワードC_newを減算した減算結果を累積した値であるので、圧縮データのビット長が短くなった累積値を示す。この発明においては、この累積値を「圧縮率」と言う。
従って、信号生成器1225は、圧縮率をしきい値と比較し、圧縮率がしきい値よりも大きいとき、切換信号EXC2を生成する。
図12は、図9に示す交換モジュール122の他の構成図である。また、図12に示すように,比較器1223を利用せずに、減算器1221に代えて、ALU(Arithmetic Logic Unit)のような演算ユニット1226を利用した場合、C_oldとC_newとの演算を工夫することで、累積レジスタの値を細かく調整することができる。たとえば、C_oldよりC_newのビット長が長い場合、減算結果は、負となるが、その値も累積することで、効率よいコードワードを残すことも可能となる。また、減算のみでなく加算や乗算を利用することでも、よりよい効果が得られる場合がある。
図13は、一方の符号化テーブル113を用いたハフマン符号化の動作を説明するための図である。また、図14は、他方の符号化テーブル114を用いたハフマン符号化の動作を説明するための図である。なお、図13および図14においては、選択器112が省略されている。
図13を参照して、選択器112は、切換信号EXC1またはEXC2を受けないとき、符号化テーブル113を選択する。したがって、符号化テーブル113は、アクティブテーブルの役割を果たし、符号化テーブル114は、シャドウテーブルの役割を果たす。
符号化テーブル113は、アドレス[0000]〜[1111]と、コードワード[00002]〜[fffef]とからなる。そして、コードワード[00002]〜[fffef]の各々は、ハフマン符号であり、複数のコードワード[00002]〜[fffef]は、それぞれ、複数のアドレス[0000]〜[1111]に対応付けられている。
CAM111は、[01100101]を入力記号として処理部1から受けると、記憶している複数の記憶記号[10000001],[10000010],・・・,[11111010]を探索し、入力記号=[01100101]に一致する記憶記号=[01100101]を検出し、その検出した記憶記号=[01100101]に対応付けられたアドレス=[0011]を一致アドレスMAddとして選択器112を介してアクティブテーブルの役割を果たす符号化テーブル113へ出力する。
符号化テーブル113は、一致アドレスMAdd=[0011]を受けると、その受けた一致アドレスMAdd=[0011]に一致するアドレス=[0011]に対応付けられたコードワード=[00043]を検出し、その検出したコードワード=[00043]を圧縮データとして出力する。
図14を参照して、選択器112は、切換信号EXC1またはEXC2を受けると、使用する符号化テーブルを符号化テーブル113から符号化テーブル114へ切換える。したがって、符号化テーブル114は、アクティブテーブルの役割を果たし、符号化テーブル113は、シャドウテーブルの役割を果たす。
符号化テーブル114は、アドレス[0000]〜[1111]と、コードワード[00023]〜[fffef]とからなる。そして、コードワード[00023]〜[fffef]の各々は、ハフマン符号であり、複数のコードワード[00023]〜[fffef]は、それぞれ、複数のアドレス[0000]〜[1111]に対応付けられている。
CAM111は、[01100101]を入力記号として処理部1から受けると、上述した動作と同じ動作によって、一致アドレスMAdd=[0011]を選択器112を介して符号化テーブル114へ出力する。
符号化テーブル114は、一致アドレスMAdd=[0011]を受けると、その受けた一致アドレスMAdd=[0011]に一致するアドレス=[0011]に対応付けられたコードワード=[00002]を検出し、その検出したコードワード=[00002]を圧縮データとして出力する。
このように、エンコーダ11は、符号化テーブル113または符号化テーブル114を用いて入力記号=[01100101]をコードワード=[00043]または[00002]へ変換する。
エンコーダ11は、入力記号=[01100101]以外の入力記号が入力された場合も、上述した動作によって入力記号をコードワードに変換する。
したがって、エンコーダ11をCAM111と2つの符号化テーブル113,114とによって構成することにより、入力記号を容易にハフマン符号化できる。
図15は、シャドウテーブルの役割を果たす符号化テーブル114の更新を説明するための図である。なお、図15において、コードワードの括弧内の数字は、コードワードのビット長を表す。
2つの符号化テーブル113,114は、カウンタ1201〜120nの全てがオーバーフロー信号OFLを出力したとき、または圧縮率がしきい値よりも大きくなったとき、アクティブテーブルおよびシャドウテーブルの役割が切換えられる。
そして、符号化テーブル113,114および基本テーブル1216は、最初、同じアドレスおよび同じコードワードがデフォルト設定として設定されている。
たとえば、アドレス=[0010]に対応付けられたカウンタ1203が上述した方法によってオーバーフロー信号OFLを出力すると、アドレスエンコーダ1211は、カウンタ1203が対応付けられたアドレスをエンコードし、アドレス=[0010]をアドレスレジスタ1213およびマルチプレクサ1214へ出力する。
そして、アドレスレジスタ1213は、アドレスエンコーダ1211からアドレス=[0010]を受けると、既に保持しているアドレスをアドレス=[0010]と比較し、既に保持しているアドレスがアドレス=[0010]よりも大きい場合、既に保持しているアドレスの保持を維持し、既に保持しているアドレスがアドレス=[0010]よりも小さい場合、既に保持しているアドレスに代えてアドレス=[0010]を保持する。その後、アドレスレジスタ1213は、アドレス=[0010]を最大のアドレスAdd_old_MAXとしてアドレスカウンタ1212へ出力する。
アドレスカウンタ1212は、カウンタ1203からオーバーフロー信号OFLを受け、アドレスレジスタ1213から最大のアドレスAdd_old_MAXを受ける。そして、アドレスカウンタ1212は、最大のアドレスAdd_old_MAX以下の範囲でアドレス値の小さい順に更新アドレスAdd_newを発生し、その発生した更新アドレスAdd_newをアドレスポインタ1215へ出力する。
マルチプレクサ1214は、アドレスエンコーダ1211から受けたアドレスAdd_oldをシャドウテーブルの役割を果たす符号化テーブル114へ出力する。
一方、アドレスポインタ1215は、更新アドレスAdd_newに一致する基本テーブル1216中のアドレスを指定し、基本テーブル1216は、アドレスポインタ1215によって指定されたアドレスに対応付けられたコードワード=[00002]をコードワードC_newとして符号化テーブル114(=シャドウテーブル)および交換モジュール122へ出力する。
そうすると、符号化テーブル114(=シャドウテーブル)は、割当モジュール121のマルチプレクサ1214からアドレスAdd_old=[00002]を受け、基本テーブル1216からコードワードC_new=[00002]を受ける。そして、符号化テーブル114(=シャドウテーブル)は、コードワードC_new=[00002(2)]をアドレス=[0010]に対応付けられたコードワード=[001e5(5)]に上書きする。これによって、符号化テーブル114−1(=シャドウテーブル)は、符号化テーブル114−2(=シャドウテーブル)へ更新され、アドレス=[0010]に対応付けられたコードワードは、3ビットだけ短くなる(図15参照)。
その後、同様にして、コードワード=[00023(3)]がアドレス=[1110]に対応付けれられたコードワード=[fff4f(16)]に上書きされ、符号化テーブル114−2(=シャドウテーブル)は、符号化テーブル114−3(=シャドウテーブル)へ更新される。これによって、アドレス=[1110]に対応付けられたコードワードは、13ビットだけ短くなる。
それ以降、同様にして、符号化テーブル114−3(=シャドウテーブル)は、符号化テーブル114−4(=シャドウテーブル)へ更新される。この符号化テーブル114(=シャドウテーブル)におけるコードワードの上書きは、最後のカウンタ(カウンタ1201〜120nのいずれか)がオーバーフロー信号OFLを出力するまで、または圧縮率がしきい値よりも大きくなるまで繰り返される。
アドレスカウンタ1212は、最後のカウンタ(カウンタ1201〜120nのいずれか)からオーバーフロー信号OFLを受けて更新アドレスAdd_newをアドレスポインタ1215へ出力した後、または交換モジュール122から切換信号EXC2を受けたとき、“0”から開始してアドレスを順次発生し、その発生したアドレスをマルチプレクサ1214およびアドレスポインタ1215へ出力する。
また、コントローラ1217は、オーバーフロー信号OFLを出力したカウンタ1201〜120nが対応付けられたn個のアドレスをアドレスポインタ1215へ順次出力する。
そうすると、アドレスポインタ1215は、アドレスカウンタ1212から受けたアドレスのうち、コントローラ1217からのアドレスに一致しないアドレスを基本テーブル1216において指定する。そして、基本テーブル1216は、指定されたアドレスに対応付けられたコードワードを読み出して符号化テーブル114(=シャドウテーブル)へ出力する。
一方、マルチプレクサ1214は、アドレスカウンタ1212から出力されたアドレスを符号化テーブル114(=シャドウテーブル)へ出力する。
そうすると、符号化テーブル114(=シャドウテーブル)は、マルチプレクサ1214からのアドレスと、基本テーブル1216からのコードワードとを受け、その受けたアドレスおよびコードワードに基づいて、オーバーライトの過程においてコードワードが上書きされなかったコードワード上に基本テーブル1216から受けたコードワードを上書きする。
その結果、図15に示すように、オーダーライトにおいて、アドレス=[0000],[0001],・・・,[0010]に対応付けられたコードワードがそれぞれコードワード=[00fe8],[00fa9],・・・,[03f9a]によって上書きされる。これによって、符号化テーブル114−4(=シャドウテーブル)は、符号化テーブル114−5,114−6,114−7(=シャドウテーブル)へ順次更新され、重複したコードワードが無くなる。この処理を最大のアドレスAdd_old_MAXの値まで行なう。
上述した符号化テーブル114(=シャドウテーブル)の更新においては、割当モジュール121は、オーバーフロー信号OFLを受けた順番により短いコードワードを符号化テーブル114(=シャドウテーブル)へ出力し、符号化テーブル114(=シャドウテーブル)を更新する。したがって、割当モジュール121は、出現頻度のカウント値が最大値に達した順番が早いほど短い長さのコードワードを1つの符号化対象データに割り当てることになる。
また、上述した符号化テーブル114(=シャドウテーブル)の更新は、エンコーダ11が符号化テーブル113(=アクティブテーブル)を用いて上述した方法によって入力記号をハフマン符号に変換している動作に並行して行なわれる。
なお、符号化テーブル113がシャドウテーブルの役割を果たす場合も、上述した方法によって、符号化テーブル113が更新される。
図16は、図9に示すエンコーダ11および最適器12における動作を説明するためのフローチャートである。
図16を参照して、一連の動作が開始されると、エンコーダ11のCAM111は、入力記号を受け(ステップS11)、その受けた入力記号を記憶記号と比較する(ステップS12)。
そして、エンコーダ11のCAM111は、入力記号に一致する記憶記号に対応付けられたアドレスを検出すると、その検出したアドレスを一致アドレスMAddとして選択器112および割当モジュール121へ出力する。そして、エンコーダ11の選択器112は、一致アドレスMAddを符号化テーブル113(=アクティブテーブル)および割当モジュール121へ出力する(ステップS13)。
引き続いて、エンコーダ11の符号化テーブル113(=アクティブテーブル)は、一致アドレスMAddに一致するアドレスに対応付けられたコードワードを出力する(ステップS14)。
その後、全ての入力記号がハフマン符号に変換されたか否かが判定され(ステップS15)、全ての入力記号がハフマン符号に変換されていない場合、一連の動作は、ステップS11へ戻り、エンコーダ11において、上述したステップS11〜ステップS15が繰り返し実行される。
一方、ステップS15において、全ての入力記号がハフマン符号に変換されたと判定されたとき、一連の動作は、終了する。
ステップS13の後、最適器12において、一致アドレスMAddに対応付けられたカウンタ(カウンタ1201〜120nのいずれか)は、カウンタ値を“1”だけインクリメントし(ステップS16)、カウンタ値が最大値であるか否かを判定する(ステップS17)。
ステップS17において、カウンタ値が最大値でないと判定されたとき、交換モジュール122は、上述した方法によって、圧縮率がしきい値以下であるか否かを判定する(ステップS18)。
ステップS18において、圧縮率がしきい値以下であると判定されたとき、一連の動作は、ステップS16へ戻り、上述したステップS16〜ステップS18が繰り返し実行される。
一方、ステップS18において、圧縮率がしきい値よりも大きいと判定されたとき、一連の動作は、ステップS22へ移行する。
一方、ステップS17において、カウンタ値が最大値であると判定されたとき、上述した方法によって、新しいハフマン符号が符号化テーブル114(=シャドウテーブル)に割当てられ(ステップS19)、符号化テーブル114(=シャドウテーブル)は、新しいハフマン符号によって更新される(ステップS20)。
その後、全てのカウンタ値が最大値であるか否かが判定され(ステップS21)、全てのカウンタ値が最大値であるとき、一連の動作は、ステップS22へ移行する。
一方、ステップS21において、全てのカウンタ値の少なくとも1つが最大値でないと判定されたとき、一連の動作は、ステップS16へ移行する。
ステップS18において、圧縮率がしきい値よりも大きいと判定されたとき、またはステップS21において、全てのカウンタ値が最大値であると判定されたとき、符号化テーブルが切換えられる(ステップS22)。そして、一連の動作は、ステップS13へ移行する。
なお、上述したステップS11〜ステップS15は、エンコーダ11によって実行され、上述したステップS16〜ステップS22は、最適器12によって実行される。したがって、最適器12における動作は、エンコーダ11における動作と並行して行なわれる。
図17は、図8に示す圧縮処理装置10Aにおけるハフマン符号化を具体的に説明するための図である。
図17を参照して、エンコーダ11は、処理部1においてジグザクスキャンおよびランレングス処理が行なわれた後の入力データを受ける。
そして、エンコーダ11は、入力データを構成する各記号を符号化テーブル113(=アクティブテーブル)を用いて上述した方法によってハフマン符号化する。ここで、エンコーダ11は、図17に示す人物画像の背景部分をハフマン符号化する場合、圧縮率がしきい値以下である限り、符号化テーブル113(=アクティブテーブル)を用いて背景部分の符号化対象データをハフマン符号化する。したがって、エンコーダ11は、符号化テーブル113(=アクティブテーブル)に格納された一部のコードワードを用いて背景部分のハフマン符号化に適したハフマン符号化テーブルを作成しながら背景部分の符号化対象データをハフマン符号化することになる。
その後、エンコーダ11は、人物画像の顔部分の符号化対象データを受けると、圧縮率がしきい値以下である限り、符号化テーブル113(=アクティブテーブル)を用いて顔部分の符号化対象データをハフマン符号化し、圧縮率がしきい値よりも大きくなると、符号化テーブル114(=シャドウテーブル)に切換えて顔部分の符号化対象データをハフマン符号化する。したがって、エンコーダ11は、顔部分の符号化対象データをハフマン符号化する場合、符号化テーブル113(=アクティブテーブル)に格納された一部のコードワードまたは符号化テーブル114(=シャドウテーブル)に格納された一部のコードワードを用いて顔部分のハフマン符号化に適したハフマン符号化テーブルを作成しながら顔部分の符号化対象データをハフマン符号化することになる。
エンコーダ11が人物画像の胴部分の符号化対象データをハフマン符号化する場合も同様である。
その結果、エンコーダ11および最適器12は、処理部1から入力された入力データをハフマン符号化することによって、人物画像を背景部分、顔部分および胴部分の部分集合に分割し、かつ、背景部分、顔部分および胴部分の部分集合にそれぞれ適したハフマン符号化テーブルを作成しながら背景部分、顔部分および胴部分の部分集合をそれぞれハフマン符号化する。
この場合、エンコーダ11は、図1に示す分割ユニット2および符号化ユニット4を構成し、エンコーダ11および最適器12は、図1に示すテーブル作成ユニット3を構成する。
したがって、実施の形態2による圧縮処理装置10A(図8参照)は、実施の形態1による圧縮処理装置10(図1参照)と同じ構成からなる。
図18は、実施の形態2における圧縮処理方法を説明するためのフローチャートである。
図18を参照して、一連の動作が開始されると、圧縮処理装置10Aの処理部1は、原画像について、RGBからYCbCrへの変換、サンプリング、レベルシフト、離散コサイン変換、量子化およびジグザグスキャン/ランレングス処理を実行して符号化対象データ群(=入力データ)を生成する(ステップS31)。
そして、処理部1は、符号化対象データをエンコーダ11へ出力し(ステップS32)、エンコーダ11は、処理部1から受けた符号化対象データ(=入力記号)に一致する記憶記号に対応付けられたアドレスを検出し、その検出したアドレスを一致アドレスMAddとして最適器12へ出力する。
そして、最適器12は、一致アドレスMAddを受けた回数をカウントすることにより、符号化対象データ毎に出現頻度をカウントする(ステップS33)。
その後、最適器12は、カウンタ1201〜120nのいずれかがオーバーフロー信号OFLを出力したか否かによって出現頻度が最大値(=最大値Count_MAX)に達する符号化対象データがあるか否かを判定する(ステップS34)。この場合、最適器12は、カウンタ1201〜120nのいずれかがオーバーフロー信号OFLを出力した場合、出現頻度が最大値(=最大値Count_MAX)に達する符号化対象データがあると判定し、カウンタ1201〜120nのいずれもオーバーフロー信号OFLを出力しない場合、出現頻度が最大値(=最大値Count_MAX)に達する符号化対象データがないと判定する。
ステップS34において、出現頻度が最大値(=最大値Count_MAX)に達する符号化対象データがあると判定されたとき、最適器12は、上述した方法によって、符号化テーブル114(=シャドウテーブル)を更新して該当符号に短いハフマン符号を割り当てる(ステップS35)。
ステップS35の後、またはステップS34において、出現頻度が最大値(=最大値Count_MAX)に達する符号化対象データがないと判定されたとき、最適器12は、カウンタ1201〜120nの全てがオーバーフロー信号OFLを出力したか否かによってハフマン符号の新規割当回数が閾値を越えたか否かを判定する(ステップS36)。
この場合、最適器12は、カウンタ1201〜120nの全てがオーバーフロー信号OFLを出力したとき、ハフマン符号の新規割当回数が閾値を越えたと判定し、カウンタ1201〜120nの少なくとも1つがオーバーフロー信号OFLを出力しないとき、ハフマン符号の新規割当回数が閾値を越えていないと判定する。
ステップS36において、ハフマン符号の新規割当回数が閾値を越えたと判定されたとき、エンコーダ11は、アクティブテーブルを符号化テーブル113から符号化テーブル114へ切換え、その切換えた符号化テーブル114において新規にハフマン符号化テーブルを作成しながら符号化対象データをハフマン符号化する(ステップS37)。
一方、ステップS36において、ハフマン符号の新規割当回数が閾値を越えていないと判定されたとき、エンコーダ11は、符号化テーブル113を用いて既に作成されたハフマン符号化テーブルを用いて符号化対象データをハフマン符号化する(ステップS38)。
そして、ステップS37またはステップS38の後、全ての符号化対象データの符号化が終了したか否かが判定される(ステップS39)。ステップS39において、少なくとも1つの符号化対象データの符号化が終了していないと判定されたとき、一連の動作は、ステップS32へ戻り、ステップS39において、全ての符号化対象データの符号化が終了したと判定されるまで、上述したステップS32〜ステップS39が繰り返し実行される。
そして、ステップS39において、全ての符号化対象データの符号化が終了したと判定されると、一連の動作は終了する。
上述したように、実施の形態2においては、圧縮処理装置10Aは、入力データの部分集合への分割、および分割された部分集合に適したハフマン符号化テーブルの作成を行ないながら符号化対象データをハフマン符号化する。
したがって、符号化対象データを高速にハフマン符号化できるとともに、圧縮率を向上できる。
その他は、実施の形態1と同じである。
なお、実施の形態2においては、符号化テーブル113,114は、「テーブル保持ユニット」を構成し、最適器12は、「更新ユニット」を構成する。
[実施の形態3]
図19は、実施の形態3による圧縮処理装置の概略ブロック図である。図19を参照して、実施の形態3による圧縮処理装置10Bは、図1に示す圧縮処理装置10に画像分割ユニット5を追加したものであり、その他は、圧縮処理装置10と同じである。
画像分割ユニット5は、原画像の対象物に基づいて原画像データを複数の画像データに分割し、その分割した複数の画像データを処理部1へ出力する。
圧縮処理装置10Bにおいては、処理部1は、画像分割ユニット5から入力された複数の画像データを各画像データ毎に上述した方法によって処理し、複数の画像データに対応する複数の入力データを分割ユニット2へ出力する。
また、圧縮処理装置10Bにおいては、分割ユニット2は、各入力データ毎に複数の部分集合に分割する処理を複数の入力データの全ての入力データに対して実行し、テーブル作成ユニット3は、各入力データ毎に分割された複数の部分集合に適した複数のハフマン符号化テーブルを作成する処理を複数の入力データの全ての入力データに対して実行し、符号化ユニット4は、各入力データ毎に複数の部分集合に含まれる符号化対象データを複数の部分集合に適した複数のハフマン符号化テーブルを用いて各部分集合毎にハフマン符号化する処理を複数の入力データの全ての入力データに対して実行する。
図19に示す画像分割ユニット5における画像の分割方法について説明する。画像分割ユニット5は、たとえば、領域成長型分割分割アルゴリズムを用いて画像を複数の画像に分割する。
この領域成長型分割分割アルゴリズムは、たとえば、3×3の画素からリーダセルを決定し、その決定したリーダセルの領域から相対的に大きい結合重みを有する周囲の画素の領域へ領域を成長させて行く処理をリーダセルが存在しなくまで繰り返して画像を分割する方法である。
図20は、画像の分割方法を説明するための図である。画像分割ユニット5は、領域成長型画像分割方法によって1つのフレームを各対象物の画像に分割する。
この領域成長型画像分割方法は、LEGIONモデル(D. L. Wang, and D. Terman, “Image segmentation based on oscillator correlation,” Neural Computation, Volume 9(4), pp. 805-836(1997).)の振動子ネットワークの各画素に対する振動子の振る舞いを自己発火(Self−Excitation)、自己発火可能(Self−Excitable)、発火(Excitation)および鎮火(Inhibition)という4つの状態で取り扱うものである。そして、この領域成長型画像分割方法は、初期化、自己発火、発火、および鎮火の4つのステップからなる。
画像分割ユニット5は、図20の(a)に示す3×3の構成からなる入力画像を受ける。そして、画像分割ユニット5は、入力画像を構成する9個の画素における画素間の8個の結合重みCW1〜CW8を演算し、その演算した8個の結合重みCW1〜CW8を各画素間に対応付けてメモリ(画像分割ユニット5に内蔵されている)に保持する。なお、図20の(b)においては、(2,2)の画素と周囲の画素との8個の結合重みが図示されている。
そうすると、画像分割ユニット5は、メモリに保持された8個の結合重みCW1〜CW8を読み出し、その読み出した8個の結合重みCW1〜CW8の和SUM(CW)を演算する。そして、画像分割ユニット5は、その演算した和SUM(CW)がリーダセルを決定するためのしきい値φよりも大きいか否かを判定する。なお、この出願においては、SUMは、数学におけるシグマ記号によって表される和を演算することを意味する。
画像分割ユニット5は、和SUM(CW)がしきい値φよりも大きいと判定したとき、結合重みの計算の中心となった画素をリーダセルに設定し、リーダセルフラグpij=1を設定する。一方、画像分割ユニット5は、和SUM(CW)がしきい値φ以下であると判定したとき、結合重みの計算の中心となった画素をリーダセルに設定せず、リーダセルフラグpij=0を設定する。
画像分割ユニット5は、この処理を入力画像の9個の画素の各々を結合重みの計算の中心となる画素に設定して実行し、リーダセルを決定する(図20の(c)参照)。
その後、画像分割ユニット5は、リーダセルの1つを自己発火させる(発火フラグxij=1)(図20の(d)参照)。そして、画像分割ユニット5は、各セル(i,j)に隣接する8個の画素に対応するセル(k,l)∈Nijが発火していれば、セル(i,j)とセル(k,l)との間の結合重みの和SUM(k,l)∈Nij∧xkl=1ij;klを演算し、その演算した和SUM(k,l)∈Nij∧xkl=1ij;klがしきい値φよりも大きく、かつ、まだ、セル(i,j)がどの分割領域にも属していない(ラベルフラグlij=0)場合に、自動的に発火(xij=1)させる(引火・領域成長)(図20の(e)参照)。この引火処理によって、領域が広がって行き、図20の(f)に示すように、新たに発火するセルが存在しなくなると、1領域の分割が終了する。
その後、画像分割ユニット5は、この分割された領域を保存するために、図20の(g)に示すように、発火しているセルへ分割領域識別のためのラベル番号を書き込み、発火したセルが既に分割されたセルであることを示すラベルフラグをセットし(lij=1)、鎮火処理(xij=0,pij=0)を行なう。
画像分割ユニット5は、鎮火処理が終了すると、再び、次の領域の分割のための自己発火の処理に戻る。そして、画像分割ユニット5は、リーダセルが存在しなくなるまで、上述した処理を繰り返し実行し、各領域を分割する。そして、画像分割ユニット5は、全てのリーダセルが発火した後、全ての領域にラベル付けを行ない、1フレームの画像の分割を終了する(図20の(h)参照)。
図21は、領域成長型分割分割アルゴリズムを用いた画像の分割方法を説明するためのフローチャートである。
図21を参照して、一連の動作が開始されると、画像分割ユニット5は、1フレームを構成する複数の画素における各画素間の結合重みを演算するとともに、上述した方法によって、リーダセルを決定する(ステップS41)。
そして、画像分割ユニット5は、自己発火可能なセルを検出したか否かを判定し(ステップS42)、自己発火可能なセルを検出したと判定したとき、上述した方法によって自己発火を行なう(ステップS43)。
その後、画像分割ユニット5は、発火セルが存在するか否かを判定し(ステップS44)、発火セルが存在するとき、上述した方法によって周囲へ引火(領域成長)を行なう(ステップS45)。そして、一連の動作は、ステップS44へ戻り、ステップS44において、発火セルが存在しなくなるまで、ステップS44,S45が繰り返し実行される。
ステップS44において、発火セルが存在しないと判定されると、画像分割ユニット5は、上述した方法によって、引火終了・領域決定を行なうとともに、ラベル付け(鎮火)を行なう(ステップS46)。その後、一連の動作は、ステップS42へ戻り、ステップS42において、自己発火可能なセルが検出されないと判定されるまで、ステップS42〜ステップS46が繰り返し実行される。
そして、ステップS42において、自己発火可能なセルが検出されないと判定されると、一連の動作は、終了する。
なお、画像分割ユニット5は、図21に示すフローチャートを繰り返し実行し、各フレームを各対象物の画像に分割する。
図22は、実施の形態3における圧縮処理方法を説明するためのフローチャートである。図22に示すフローチャートは、図7に示すフローチャートのステップS2〜ステップS5にステップS51〜ステップS53を追加したものであり、その他は、図7に示すフローチャートと同じである。
図22を参照して、一連の動作が開始されると、圧縮処理装置10Bの画像分割ユニット5は、図21に示すフローチャートに従って原画像を複数の画像に分割する(ステップS51)。
そして、処理部1は、複数の画像の1つの画像について、RGBからYCbCrへの変換、サンプリング、レベルシフト、離散コサイン変換、量子化およびジグザグスキャン/ランレングス処理を実行して符号化対象データ群(=入力データ)を生成する(ステップS52)。
その後、上述したステップS2〜ステップS5が順次実行される。そして、ステップS5において、全ての部分集合に対して符号化が終了したと判定されると、全ての画像に対して符号化が終了したか否かが判定される(ステップS53)。
ステップS53において、全ての画像に対して符号化が終了していないと判定されたとき、一連の動作は、ステップS52へ戻り、ステップS53において、全ての画像に対して符号化が終了したと判定されるまで、上述したステップS52,S2〜S5,S53が繰り返し実行される。
そして、ステップS53において、全ての画像に対して符号化が終了したと判定されると、一連の動作が終了する。
図23は、実施の形態3による圧縮処理装置の他の構成を示す概略ブロック図である。実施の形態3による圧縮処理装置は、図23に示す圧縮処理装置10Cであってもよい。
図23を参照して、圧縮処理装置10Cは、図8に示す圧縮処理装置10Aに画像ユニット5を追加したものであり、その他は、圧縮処理装置10Aと同じである。
画像分割ユニット5については、上述したとおりである。したがって、圧縮処理装置10Cは、原画像を対象物に注目して複数の画像に分割し、その分割した複数の画像の各々について、複数の部分集合への分割、および複数の部分集合に適した複数のハフマン符号化テーブルの作成を行ないながら複数の部分集合に含まれる全ての符号化対象データをハフマン符号化する処理を実行し、原画像データを圧縮する。
図24は、実施の形態3における他の圧縮処理方法を説明するためのフローチャートである。図24に示すフローチャートは、図18に示すフローチャートのステップS32〜ステップS39にステップS51〜ステップS53を追加したものであり、その他は、図18に示すフローチャートと同じである。
図24を参照して、一連の動作が開始されると、上述したステップS51,S52が順次実行され、その後、上述したステップS32〜ステップS39が順次実行される。そして、ステップS39において、全ての符号化対象データの符号化が終了したと判定されると、上述したステップS53が実行され、ステップS53において、全ての画像に対して符号化が終了したと判定されると、一連の動作は、終了する。
上述したように、実施の形態3においては、対象物に注目して原画像を複数の画像に分割し、その分割した複数の画像の各々について、実施の形態1による圧縮処理方法または実施の形態2による圧縮処理方法を用いて原画像データを圧縮することを特徴とする。
原画像の分割は、各対象物を抽出するように行なわれるので、分割された各画像は、類似した画像データからなる。したがって、これらの各画像に対して実施の形態1,2によるハフマン符号化を適用することによって、データの圧縮を柔軟に行なうことができる。
たとえば、図5に示す風景画は、空からなる画像、山からなる画像、および地面からなる画像の3個の画像に分割される。その結果、3個の画像の各画像は、出現頻度が類似した記号列からなるので、各画像に対して柔軟に対応したハフマン符号化テーブルを作成できる。したがって、データの圧縮を柔軟に行なうことができる。
なお、上記においては、画像分割は、領域成長型画像分割方法を用いて行なわれると説明したが、この発明においては、これに限らず、画像分割は、下記の(1)〜(4)に記載された方法を用いて行なわれてもよい。
(1)B. Jaehne, “Digital Image Processing 5th revised and extended edition,” Springer-Verlag, pp. 427-440, 2001.
(2)J. C. Russ, “The Image Processing Handbook,” CRC PRESS, pp. 371-429, 1999.36
(3)T. Braeunl, S. Feyrer, W. Rapf, and M. Reinhardt, “Parallel Image Processing,”Springer-Verlag, 2000.
(4)W. Y. Ma, and B. S. Manjunath, “Edgeflow: a technique for boundary detection and segmentation,” IEEE Transactions on Image Processing, vol. 9 (8), pp. 1375-1388, 2004.
その他は、実施の形態1,2と同じである。
上述した実施の形態1〜3においては、画像データを圧縮する場合について説明したが、この発明においては、これに限らず、この発明による圧縮処理装置および圧縮処理方法は、文章データおよびオーディオデータを上述した方法によって圧縮してもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
この発明は、圧縮効率の向上が可能な圧縮処理装置に適用される。また、この発明は、圧縮効率の向上が可能な圧縮処理方法に適用される。

Claims (10)

  1. 入力データを圧縮して圧縮データを出力する圧縮処理装置であって、
    前記入力データからなる母集合に含まれる複数の要素を各要素の特徴を用いて複数の部分集合に分割する分割ユニットと、
    前記複数の部分集合に対応して設けられた複数のハフマン符号化テーブルを用いて各部分集合毎に符号化対象データをハフマン符号化し、前記圧縮データを出力する符号化ユニットと
    各々が複数のハフマン符号からなる第1および第2の符号化テーブルを保持するテーブル保持ユニットと、
    前記第1および第2の符号化テーブルのうち、前記入力データのハフマン符号化に用いられていない一方の符号化テーブルを前記符号化対象データの出現頻度に応じて出現頻度が最も多い符号化対象データが最も短いハフマン符号に変換されるように更新する更新ユニットとを備え
    前記符号化ユニットは、前記圧縮データの圧縮率がしきい値以下であるとき、前記第1および第2の符号化テーブルのうちの他方の符号化テーブルに基づいて前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化し、前記圧縮率が前記しきい値よりも大きくなると、前記更新ユニットによって更新された一方の符号化テーブルに基づいて前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化する、圧縮処理装置。
  2. 1つの部分集合に含まれる符号化対象データの出現頻度を調べて前記1つの部分集合に対応するハフマン符号化テーブルを作成する処理を前記複数の部分集合の全てについて実行し、前記複数のハフマン符号化テーブルを作成するテーブル作成ユニットをさらに備える、請求項1に記載の圧縮処理装置。
  3. 前記更新ユニットは、全ての符号化対象データに対して出現頻度をカウントするとともに、1つの符号化対象データに対する出現頻度が最大値に達する毎に、前記出現頻度が前記最大値に達した順番が早いほど短い長さを有する新しいハフマン符号を前記1つの符号化対象データに対して割り当てる処理を前記全ての符号化対象データに対して実行し、前記一方の符号化テーブルを更新する、請求項1に記載の圧縮処理装置。
  4. 前記更新ユニットは、前記符号化ユニットから出力された圧縮データに基づいて前記圧縮率を演算するとともに、その演算した圧縮率が前記しきい値よりも大きくなったとき、または前記全ての符号化対象データに対して前記新しいハフマン符号を割り当てたとき、前記符号化テーブルを切換えるための切換信号を生成して前記符号化ユニットへ出力し、
    前記符号化ユニットは、前記切換信号に応じて前記符号化テーブルを切換え、その切換え後の符号化テーブルに基づいて前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化する、請求項3に記載の圧縮処理装置。
  5. 画像に含まれる対象物に基づいて前記画像を複数の画像に分割して複数の入力データを生成する画像分割ユニットをさらに備え、
    前記分割ユニットは、前記複数の入力データのうちの1つの入力データからなる母集合に含まれる複数の要素を各要素の特徴を用いて複数の部分集合に分割する処理を前記複数の入力データの全てに対して実行し、
    前記符号化ユニットは、前記1つの入力データから分割された複数の部分集合に対応して設けられた複数のハフマン符号化テーブルを用いて各部分集合毎に符号化対象データをハフマン符号化し、前記圧縮データを出力する処理を前記複数の入力データの全てに対して実行する、請求項に記載の圧縮処理装置。
  6. 入力データを圧縮して圧縮データを出力する圧縮処理方法であって、
    分割ユニットが、前記入力データからなる母集合に含まれる複数の要素を各要素の特徴を用いて複数の部分集合に分割する第1のステップと、
    符号化ユニットが、前記複数の部分集合に対応して設けられた複数のハフマン符号化テーブルを用いて各部分集合毎に符号化対象データをハフマン符号化し、前記圧縮データを出力する第2のステップと、
    更新ユニットが、各々が複数のハフマン符号からなる第1および第2の符号化テーブルのうち、前記入力データのハフマン符号化に用いられていない一方の符号化テーブルを符号化対象データの出現頻度に応じて出現頻度が最も多い符号化対象データが最も短いハフマン符号に変換されるように更新する第3のステップとを備え、
    前記第2のステップにおいて、前記符号化ユニットは、前記圧縮データの圧縮率がしきい値以下であるとき、前記第1および第2の符号化テーブルのうちの他方の符号化テーブルに基づいて前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化し、前記圧縮率が前記しきい値よりも大きくなると、前記一方の符号化テーブルに基づいて前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化する、圧縮処理方法
  7. テーブル作成ユニットが、1つの部分集合に含まれる符号化対象データの出現頻度を調べて前記1つの部分集合に対応するハフマン符号化テーブルを作成する処理を前記複数の部分集合の全てについて実行し、前記複数のハフマン符号化テーブルを作成する第4のステップをさらに備える、請求項に記載の圧縮処理方法
  8. 前記第3のステップは、
    前記更新ユニットが、全ての符号化対象データに対して出現頻度をカウントする第1のサブステップと、
    前記更新ユニットが、1つの符号化対象データに対する出現頻度が最大値に達する毎に、前記出現頻度が前記最大値に達した順番が早いほど短い長さを有する新しいハフマン符号を前記1つの符号化対象データに対して割り当てる処理を前記全ての符号化対象データに対して実行し、前記一方の符号化テーブルを更新する第2のサブステップとを含む、請求項6に記載の圧縮処理方法。
  9. 前記第3のステップは、
    前記更新ユニットが、前記符号化ユニットから出力された圧縮データに基づいて前記圧縮率を演算する第3のサブステップと、
    前記更新ユニットが、前記第3のサブステップにおいて演算された圧縮率が前記しきい値よりも大きくなったとき、または前記全ての符号化対象データに対して前記新しいハフマン符号を割り当てたとき、前記符号化テーブルを切換えるための切換信号を生成して前記符号化ユニットへ出力する第4のサブステップとをさらに含み、
    前記第2のステップにおいて、前記符号化ユニットは、前記切換信号に応じて前記符号化テーブルを切換え、その切換え後の符号化テーブルに基づいて前記複数のハフマン符号化テーブルを作成しながら前記各部分集合毎に前記符号化対象データをハフマン符号化する、請求項8に記載の圧縮処理方法。
  10. 画像分割ユニットが、画像に含まれる対象物に基づいて前記画像を複数の画像に分割して複数の入力データを生成する第4のステップをさらに備え、
    前記第1のステップにおいて、前記分割ユニットは、前記複数の入力データのうちの1つの入力データからなる母集合に含まれる複数の要素を各要素の特徴を用いて複数の部分集合に分割する処理を前記複数の入力データの全てに対して実行し、
    前記第2のステップにおいて、前記符号化ユニットは、前記1つの入力データから分割された複数の部分集合に対応して設けられた複数のハフマン符号化テーブルを用いて各部分集合毎に符号化対象データをハフマン符号化し、前記圧縮データを出力する処理を前記複数の入力データの全てに対して実行する、請求項に記載の圧縮処理方法。
JP2008552632A 2008-07-31 2008-07-31 圧縮処理装置および圧縮処理方法 Expired - Fee Related JP4303312B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/002065 WO2010013290A1 (ja) 2008-07-31 2008-07-31 圧縮処理装置および圧縮処理方法

Publications (2)

Publication Number Publication Date
JP4303312B1 true JP4303312B1 (ja) 2009-07-29
JPWO2010013290A1 JPWO2010013290A1 (ja) 2012-01-05

Family

ID=40972393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008552632A Expired - Fee Related JP4303312B1 (ja) 2008-07-31 2008-07-31 圧縮処理装置および圧縮処理方法

Country Status (3)

Country Link
US (1) US7860328B2 (ja)
JP (1) JP4303312B1 (ja)
WO (1) WO2010013290A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2947069A1 (fr) * 2009-06-19 2010-12-24 Thomson Licensing Procede de selection de versions d'un document parmi une pluralite de versions recues a la suite d'une recherche, et recepteur associe
GB2489272B (en) * 2011-03-23 2013-03-13 Toshiba Res Europ Ltd An image processing system and method
CN102739511B (zh) * 2011-04-14 2015-06-24 富士通株式会社 数据处理系统及数据处理方法
US9564918B2 (en) * 2013-01-10 2017-02-07 International Business Machines Corporation Real-time reduction of CPU overhead for data compression
US9053121B2 (en) 2013-01-10 2015-06-09 International Business Machines Corporation Real-time identification of data candidates for classification based compression
US9792350B2 (en) 2013-01-10 2017-10-17 International Business Machines Corporation Real-time classification of data into data compression domains
US10423596B2 (en) 2014-02-11 2019-09-24 International Business Machines Corporation Efficient caching of Huffman dictionaries
US9337862B2 (en) 2014-06-09 2016-05-10 Tidal Systems, Inc. VLSI efficient Huffman encoding apparatus and method
US10613797B2 (en) * 2017-06-13 2020-04-07 ScaleFlux, Inc. Storage infrastructure that employs a low complexity encoder
US10687062B1 (en) * 2019-02-22 2020-06-16 Google Llc Compression across multiple images
CN116193113A (zh) * 2022-12-07 2023-05-30 辉羲智能科技(上海)有限公司 数据解压和压缩方法及装置
CN116074514B (zh) * 2023-04-06 2023-06-02 深圳市银河通信科技有限公司 一种多媒体数据的安全通信云广播系统
CN116346940B (zh) * 2023-05-29 2023-08-22 德州禹工环保设备有限公司 一种智慧海绵城市的监测管理系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253078A (en) * 1990-03-14 1993-10-12 C-Cube Microsystems, Inc. System for compression and decompression of video data using discrete cosine transform and coding techniques
JPH06237448A (ja) 1993-02-12 1994-08-23 Toshiba Corp 可変長符号化及び復号化装置
JPH10336647A (ja) * 1997-06-04 1998-12-18 Nikon Corp 画像圧縮装置および画像圧縮処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005012495A (ja) 2003-06-19 2005-01-13 Olympus Corp 画像処理装置、画像処理方法及び画像処理プログラム
JP2006217145A (ja) 2005-02-02 2006-08-17 Murata Mach Ltd 画像処理装置

Also Published As

Publication number Publication date
JPWO2010013290A1 (ja) 2012-01-05
US7860328B2 (en) 2010-12-28
US20100189351A1 (en) 2010-07-29
WO2010013290A1 (ja) 2010-02-04

Similar Documents

Publication Publication Date Title
JP4303312B1 (ja) 圧縮処理装置および圧縮処理方法
JP3017380B2 (ja) データ圧縮方法及び装置並びにデータ伸長方法及び装置
KR0154739B1 (ko) 프랙탈 영상 압축 장치 및 방법
JPH0937271A (ja) 画像圧縮方法
US8600183B2 (en) Optimized method and system for entropy coding
WO2019012363A1 (en) PREDICTION OF QUANTIFICATION PARAMETER PRESERVING VISUAL QUALITY THROUGH DEEP NEURAL NETWORK
US10225569B2 (en) Data storage control apparatus and data storage control method
US11595057B2 (en) Reducing error in data compression
US20070019876A1 (en) Lossless image compression with tree coding of magnitude levels
EP3343446A1 (en) Method and apparatus for encoding and decoding lists of pixels
Constantinescu et al. Improved techniques for single-pass adaptive vector quantization
JP6748022B2 (ja) 分割形状決定装置、学習装置、分割形状決定方法及び分割形状決定プログラム
CN105099460B (zh) 字典压缩方法、字典解压缩方法与字典建构方法
JPH02153477A (ja) 画像処理方法及びその装置
CN117097905B (zh) 一种无损图像分块压缩方法、设备、存储介质
JP2005521324A (ja) 損失のないデータの圧縮および圧縮解除方法および装置
CN112101548A (zh) 数据压缩方法及装置、数据解压方法及装置、电子设备
JPH104557A (ja) 画像処理装置、及び方法、及びその方法を記憶した記憶媒体
CN112200301B (zh) 卷积计算装置及方法
Tilki et al. Image data compression using multiple bases representation
CN117333559A (zh) 图像压缩方法、装置、电子设备及存储介质
WO2023179464A1 (zh) 一种图像压缩方法,图像解压方法和图像处理装置
Douda et al. A new approach for improvement of fractal image encoding
Siddeq Novel methods of image compression for 3D reconstruction
KR100387559B1 (ko) 프랙탈 영상압축방법

Legal Events

Date Code Title Description
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: 20090421

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

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

Free format text: PAYMENT UNTIL: 20120501

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4303312

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

Year of fee payment: 3

S201 Request for registration of exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R314201

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

Free format text: PAYMENT UNTIL: 20120501

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130501

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees