JP2011193192A - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP2011193192A
JP2011193192A JP2010057034A JP2010057034A JP2011193192A JP 2011193192 A JP2011193192 A JP 2011193192A JP 2010057034 A JP2010057034 A JP 2010057034A JP 2010057034 A JP2010057034 A JP 2010057034A JP 2011193192 A JP2011193192 A JP 2011193192A
Authority
JP
Japan
Prior art keywords
data
replacement
compression
bits
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2010057034A
Other languages
English (en)
Inventor
Kazuhiro Maeta
和洋 前多
Koichi Terui
孝一 照井
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010057034A priority Critical patent/JP2011193192A/ja
Publication of JP2011193192A publication Critical patent/JP2011193192A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

【課題】ランレングス圧縮変換を適用して圧縮データのデータ精度の劣化を発生させることなく且つ、圧縮率を高めることを可能とするデータ処理装置を提供する。
【解決手段】データ処理装置(1、4)は、メモリアクセスに応答してメモリ(2)にデータを書き込むとき、入力された画像データ内の各画素データ間における上位側ビットの変化が少なくなるように画素データの上位側ビットの置き換えを実行する。そして、前記データ処理装置は当該置き換えたデータに対してランレングス圧縮変換処理を行うことで圧縮データを生成し、当該画素データの下位側ビットの非圧縮データと前記上位側ビットの前記圧縮データとを結合した画像圧縮データを生成する。
【選択図】図1

Description

本発明は、データ処理装置に関し、特にデータをランレングス圧縮変換するデータ処理装置に係り、例えば外部メモリを利用して画像データ扱う表示システムに適用して有効な技術に関する。
最近のオーディオビデオ(AV)機器、携帯電話やパーソナルコンピュータ(PC)等では、年々処理データ量が増大している。その結果、システムLSI内部のデータ処理のためのデータプロセッサや画像プロセッサの消費電力が増大する一方、システムLSI外部の外部メモリのメモリ容量およびアクセス時の消費電力も増大すると言う問題が顕著となっている。
一方、下記特許文献1には、デジタルスチルカメラのフレームメモリの容量を削減可能なメモリ制御回路が記載されている。サンプリング比率が4:2:2の輝度信号(Y)と色差信号(B−Y)と色差信号(R−Y)の一般的なデータ形式は、4:1:1と輝度信号(Y)はそのままで色差信号(B−Y、R−Y)のみダウンサンプリング(データ間引き)されて、フレームメモリに書き込まれる。フレームメモリの読み出し時には、色差信号(B−Y、R−Y)のみアップサンプリング(データ補間)されて、4:2:2のデータ形式が表示装置に供給され、フレームメモリの容量を削減できる。
特開平10−210501号公報
本発明者等は本発明に先立って、携帯電話等のバッテリー駆動のモバイル機器に搭載可能でモバイル機器のLCD表示デバイスの画面に動画像を表示可能なシステムLSIの研究・開発に従事した。
この研究・開発の経過で、本発明者等は本発明に先立って、上記特許文献1に記載されたデータ削減技術に関して検討を行った。本発明者等による検討の結果、上記特許文献1に記載のデータ削減技術によれば、フレームメモリの容量の削減は可能であるが、ダウンサンプリングとアップサンプリングとによるフレームメモリからの読み出しデータは最初のデータ精度に復元できず、データ精度の劣化が生じると言う問題が明とされた。
本発明は、以上のような本発明に先立った本発明者等による検討の結果、なされたものである。
本発明の目的は、ランレングス圧縮変換を適用して、圧縮データのデータ精度の劣化を発生させることなく且つ、圧縮率を高めることを可能とするデータ処理装置を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、データ処理装置は、メモリアクセスに応答してメモリにデータを書き込むとき、入力された画像データ内の各画素データ間における上位側ビットの変化が少なくなるように画素データの上位側ビットの置き換えを実行する。そして、前記データ処理装置は当該置き換えたデータに対してランレングス圧縮変換処理を行うことで圧縮データを生成し、当該画素データの下位側ビットの非圧縮データと前記上位側ビットの前記圧縮データとを結合した画像圧縮データを生成する。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、本データ処理装置によれば、ランレングス圧縮変換を適用して、圧縮データのデータ精度の劣化を発生させることなく且つ、圧縮率を高めることが可能となる。
図1は実施の形態1に係るマイクロプロセッサ1の構成を示す図である。 図2は記憶装置2に保存されるデータのアドレスマップを示す図である。 図3は圧縮変換部150の内部構成を示す図である。 図4は圧縮処理単位の画像データに対する圧縮変換処理の説明図である。 図5は、実施の形態1における圧縮処理の流れを示す図である。 図6は、図4の圧縮処理を行った圧縮データに付加されるヘッダの一例を示す図である。 図7は、非圧縮データの所定の最下位ビットを削除する場合の説明図である。 図8は、圧縮処理単位の別の画像データに対する上位4ビットの圧縮変換処理の説明図である。 図9は、図8に示した画像データの上位2ビットの圧縮変換処理の説明図である。 図10は、1枚の画像における画像データの値の変化を示す説明図である。 図11は、圧縮変換部150における圧縮部41、43の構成図である。 図12は、前記圧縮部41、43の圧縮処理によって圧縮された画像データの1圧縮単位で選択された最高圧縮率の圧縮対象ビット幅の変化を示す図である。 図13は、図4に示した圧縮データを伸長するための伸長処理の流れを示す図である。 図14は、ストリームデータ等の連続した2つの画像データの一例を示す図である。 図15は、図14に示される上位6ビットのデータ値が同一である画素データの数を表わした図である。 図16は、図15の情報を元に作成された画素データの上位ビットに対する置換テーブルを示した図である。 図17は、可逆変換に対応しない置換テーブルの一例である。 図18は、図17に示された課題を解決した置換テーブルを示す図である。 図19は、置換テーブル作成時の処理の流れを示す図である。 図20は、置換テーブルによって上位側ビットの値が置き換えられた画像データの一例である。 図21は、置換処理と圧縮変換処理を踏まえた圧縮データの生成処理の流れを示した図である。 図22は、置換処理後に圧縮処理が行われたデータのデータ形式を示した図である。 図23は、解凍部151の内部構成を示す図である。 図24は、置換後の圧縮データの伸張処理の流れを示した図である。 図25は、実施の形態2に係るマイクロプロセッサ4の圧縮変換部170の内部構成を示す図である。 図26は、上位8ビットを置換対象ビットとした置換テーブルを示す図である。 図27は、上位7ビットを置換対象ビットとした置換テーブルを示す図である。 図28は、上位6ビットを置換対象ビットとした置換テーブルを示す図である。 図29は、上位5ビットを置換対象ビットとした置換テーブルを示す図である。 図30は、テーブル作成部72による置換テーブルの作成処理の流れを示す図である。 図31は、置換テーブル64とそれによって置換された画像データ61Aを表わした図である。 図32は、実施の形態2係る圧縮データの生成処理の流れを示した図である。 図33は、実施の形態2に係る置換処理後の圧縮データのデータ形式を示した図である。 図34は、置換処理の情報の一例を示した図である。 図35は、実施の形態2に係るマイクロプロセッサ4の解凍部171の内部構成を示す図である。 図36は、一般的に圧縮効率が悪いと考えられる画像の一例を示す図である。
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕(画像データの置換・圧縮を行うデータ処理装置 図1、図3、図23)
本発明の代表的な実施の形態に係るデータ処理装置(1、4)は、メモリアクセスに応答して外部メモリ(2)に対する画像データの書き込みおよび読み出しを制御するメモリインタフェースコントローラ(19)を備える。前記メモリインタフェースコントローラは、入力された所定の画素数を含む画像データを構成する画素データの上位ビットに対してランレングス圧縮変換処理を行って圧縮データを生成し、当該画素データの下位ビットの非圧縮データと前記上位ビットの前記圧縮データとを結合した画像圧縮データを生成するための処理を実行する圧縮変換部(150、170)を有する。また前記メモリインタフェースコントローラは、メモリから読み出されたランレングス圧縮変換済みのデータに対する伸張処理を行なう復元部(151、171)を有する。前記圧縮変換部は、前記入力された画像データ内の各画素データ間における上位側ビットの変化が少なくなるように画素データの上位側ビットを置き換える置換処理部(40)と、置き換えたデータに対してランレングス圧縮変換処理を行う圧縮部(41、43)とを含む。これによれば、ランレングス圧縮変換によりデータの圧縮を行うからデータ精度の劣化させることはない。また、圧縮対象の上位側ビットのデータを変化が少なくなるように置き換えたデータに対しランレングス圧縮変換を行うから圧縮率を高めることが可能となる。すなわち、画像データの上位側ビットのデータの変化が小さくなるように上位側ビットのデータ値を置き換えることでランレングス圧縮変換によってデータ量が圧縮できる上位側ビットのビット数が増える。これにより、非圧縮データである下位側ビットのビット数が減るから前記画像圧縮データ全体のデータ量を削減することができる。
〔2〕(置換処理の内容、図16)
項1のデータ処理装置において、前記置換処理部は入力された前記画像データ内の上位側ビットが共通する画素データのデータ群を複数抽出し、抽出した複数のデータ群の画素データを上位側ビットの変化が少ない別のデータに置き換える処理を実行する。これによれば、好適な置き換え処理が可能となる。
〔3〕(テーブルを用いた置換処理、図16)
項1又は項2のデータ処理装置において、前記圧縮変換部は更に、置き換え前のデータと置き換え後のデータの対応を示した置換テーブルを生成するテーブル生成部(42、53、72、74)を有し、前記置換処理部は、前記置換テーブルに基づいて前記置き換える処理を実行する。これによれば、前記置き換え処理が容易となる。
〔4〕(テーブル作成方法、図16)
項3のデータ処理装置において、前記置換テーブルは第1テーブル(図16の(a)、(b)、62D)と第2テーブル(図16の(c)、64)を含み、前記テーブル生成部は入力された前記画像データ内の上位側n(nは1以上の整数)ビットが共通する画素データのデータ群を抽出する。そして、前記テーブル生成部は当該抽出したデータ群の上位nビットを置換前データとし、前記共通する画素データ数が多い順に前記置換前データにnビットの置換後データを割り当てて、前記置換前データと前記置換後データとの対応を示すテーブルをnビットの前記第1テーブルとして作成する。また、前記テーブル生成部は当該第1テーブルの前記置換前データと前記置換後データを入れ替えたテーブルをnビットの前記第2テーブルとして作成する。これによれば、上位側ビットのデータ種類の数に応じて置換後データを決定するから、置換後データの夫々の上位側ビットが共通の値となり易くなる。
〔5〕(置き換え値の被り防止 図18)
項4のデータ処理装置において、前記テーブル生成部は前記第1テーブルを作成する際、前記置換後データが前記置換前データと一致する場合には当該置換後データを別の値にする。これによれば、前記置換後データが前記置換前データと一致する場合でも、一対一対応の変換が可能なテーブルを作成することができる。
〔6〕(置き換え時のビット数を圧縮結果から決定 図3)
項4又は5のデータ処理装置において、前記上位側nビットのビット数nは切り換え可能とされ、前記テーブル生成部は前記置換テーブルを作成する際、既にランレングス圧縮変換処理が行われた前記画像データの前記画像圧縮データに基づいて前記ビット数nの値を決定する。これによれば、圧縮変換処理の圧縮率がより上がる確率が高くなる。
〔7〕(処理対象データと次の処理対象データに基づいたテーブル作成 図26〜図29)
項4又は5のデータ処理装置において、前記テーブル生成部(72、74)は入力された第1の画像データに基づいてi(iは2以上の整数)ビットの前記第1テーブルの候補のデータを生成する。また、入力された第2の画像データ内の上位側iビットが共通する画素データのデータ群を複数抽出し、当該抽出した複数のデータ群の全てが前記候補のデータに一致するまでビット数iを順次小さくして前記候補のデータを更新し、一致した前記候補のデータを前記第1テーブルの前記置換前データとする。これによれば、前記第2の画像データ内の全ての画素データの上位側ビットの置き換えが可能となるように前記第1テーブルを生成するから、前記第2の画像データの圧縮率をより高めることができる。
〔8〕(置換前データ値の種類を2のべき乗とするテーブル 図26)
項4乃至7の何れか1項記載のデータ処理装置において、前記テーブル生成部は、前記第1テーブルを作成する際、前記置換前データの種類の数が2のべき乗でない場合には、前記置換前データの種類の数が2のべき乗になるまで前記置換前データの種類を追加する、請求項7記載のデータ処理装置。これによれば、上位側ビットの置き換えの候補となる画素データの種類が増えるから、置き換え処理が実行される確率が高くなる。
〔9〕(コードデータの置換・圧縮を行うデータ処理装置 図1、図3、図23)
本発明の別の実施の形態に係るデータ処理装置(1、4)は、メモリアクセスに応答して外部メモリ(2)に対するデータの書き込みおよび読み出しを制御するメモリインタフェースコントローラ(19)を備える。前記メモリインタフェースコントローラは、入力されたストリームデータを構成する複数のコードデータの上位ビットに対してランレングス圧縮変換処理を行って圧縮データを生成し、当該コードデータの下位ビットの非圧縮データと前記上位ビットの前記圧縮データとを結合した圧縮コードデータを生成するための処理を、前記コードデータを所定数含むシンボルデータ毎に実行する圧縮変換部(150、170)を有する。更に前記メモリインタフェースコントローラは、メモリから読み出されたランレングス圧縮変換済みのデータに対する伸張処理を行なう復元部(151、171)を有する。前記圧縮変換部は、入力された前記ストリームデータ内の各コードデータ間における上位ビットの変化が少なくなるように前記コードデータを置き換える置換処理部(40)と、置き換えたデータに対してランレングス圧縮変換処理を行う圧縮部(41、43)を含む。これによれば、前記ストリームデータに対しても項1と同様の作用効果を奏する。
2.実施の形態の詳細
≪実施の形態1≫
(マイクロプロセッサの構成)
図1は、本発明の実施の形態1に係るマイクロプロセッサ1の構成を示す図である。
図1に示すマイクロプロセッサ1は、画像処理部11、中央処理装置(CPU)12、圧縮/解凍判定部13、圧縮/解凍部14、記憶装置制御部15、表示装置制御部16、バス17、外部入出力インターフェース(I/O)部18によって構成されている。前記マイクロプロセッサ1は、前記記憶装置制御部15を介して記憶装置2と接続される一方、前記表示装置制御部16を介して表示部3と接続される。
前記画像処理部11は、前記CPU12からの指示を受けて、例えば動画像データのデコードもしくはエンコード等の画像データの処理を実行する。更に前記画像処理部11は、前記表示装置3の表示画面サイズに適合するために画像の拡大、縮小、及び回転を実行する一方、複数面画像の重ね合わせ処理やフィルタ処理も実行する。
前記圧縮/解凍判定部13、前記圧縮/解凍部14、及び前記記憶装置制御部15は、前記画像処理装置11や前記CPU12、前記表示装置制御部16等のバスマスタからのアクセス要求に基づいて前記記憶装置2に対するアクセスを制御するメモリインターフェース部を構成する。
前記圧縮/解凍部14は、データの圧縮変換処理を実行する圧縮変換部150と、圧縮されたデータの伸長処理を実行する解凍部151を有し、前記圧縮/解凍判定部13は、前記バスマスタが前記記憶装置2をアクセスする際のアクセス先を判定する。前記記憶装置制御部15は、前記圧縮/解凍判定部13及び前記圧縮/解凍部14からの前記記憶装置2に対するアクセス要求に基づいて、前記記憶装置2に対する書き込み及び読み出しを制御する。
(記憶装置のアドレスマップ)
図2は、前記記憶装置2に保存されるデータのアドレスマップを示す図である。
図2のアドレスマップに示すように前記記憶装置2のアドレス空間は、画像圧縮領域21と非圧縮領域22とに分割される。この分割の境界は、固定値として圧縮/解凍判定部13内部に設定可能であり、また可変値としてCPU12から圧縮/解凍判定部13に設定することが可能である。また図2では2つの領域に分割されているが、2つの領域以上の複数の領域に分割されることも可能である。前記画像処理部11、前記表示装置3、及び前記CPU12による前記記憶装置2の各領域に対するアクセスについて以下に記す。
前記画像処理部11のアクセス先が前記記憶装置2の前記画像圧縮領域21である場合には、前記記憶装置制御部15と前記圧縮/解凍部14と前記圧縮/解凍判定部13と前記バス17とを経由して、前記記憶装置2と前記画像処理部11との間で処理に必要なデータの読み出し動作または書き込み動作が実行される。その際、前記圧縮/解凍部14が前記記憶装置2にデータを書き込む場合には画像圧縮を実行する一方、前記圧縮/解凍部14が前記記憶装置2からデータを読み出す場合には画像伸長を実行する。前記画像処理部11のアクセス先が前記記憶装置2の前記非圧縮領域22である場合には、前記記憶装置2と前記記憶装置制御部15と前記圧縮/解凍判定部13と前記バス17とを経由して前記記憶装置2と前記画像処理部11との間で処理に必要なデータの読み出し動作または書き込み動作が実行される。その際には、読み出しまたは書き込みの転送データが前記圧縮/解東部14を通過しないので、データの画像圧縮と画像伸長とは実行されない。
画像を表示するために、表示装置制御部16が前記記憶装置2の前記画像圧縮領域21からデータを読み出す場合には、前記記憶装置制御部15と前記圧縮/解凍部14と前記圧縮/解凍判定部13と前記バス17を経由して、前記表示装置制御部16が前記記憶装置2の前記画像圧縮領域21から必要なデータの読み出しを実行し、前記表示装置3へ出力する。前記表示装置制御部16が前記記憶装置2の前記非圧縮領域22からデータを読み出す場合には、前記記憶装置制御部15と前記圧縮/解凍判定部13と前記バス17を経由して、前記表示装置制御部16が前記記憶装置2の前記非圧縮領域22から必要なデータの読み出しを実行し、前記表示装置3へ出力する。
前記CPU12が前記記憶装置2に対しプログラムやデータ等の読み出しアクセスを実行する場合には、前記記憶装置2の前記非圧縮領域22にプログラムやデータを格納しておき、前記圧縮/解凍部14を介することなく、前記非圧縮領域22へのデータの直接の読み出し動作が実行される。また、前記CPU12が前記記憶装置2に対しプログラムやデータ等の書き込みアクセスを実行する場合も同様に、前記CPU12が前記圧縮/解凍部14を介することなく、前記非圧縮領域22へのデータの直接の書き込み動作が実行される。
ここで、前記マイクロプロセッサ1が動画コンテンツをデコードして前記表示装置3に表示する場合を例に、前記マイクロプロセッサ1による前記記憶装置2に対するアクセス動作の概要について説明する。
前記外部入出力インターフェース(I/O)部18から動画コンテンツデータが供給されると、前記CPU12が前記記憶装置2の非圧縮領域22への書き込みを実行する一方、前記CPU12は前記画像処理部11にデコード指示の命令を与える。当該命令を受けた前記画像処理部11は動画コンテンツデータを前記記憶装置2の非圧縮領域22から読み出して、動画デコード処理を実行する。その後、前記画像処理部11は、前記記憶装置2の画像圧縮領域21に対するデコードした画像データの書き込み動作を実行する。画像の拡大、縮小、回転、及び複数面の画像の重ね合せやフィルタ処理等の画像処理が必要な場合には、前記画像処理部11が前記記憶装置2の前記画像圧縮領域21からの画像データの読み出し動作と画像処理を実行した後に、前記表示装置3へ出力する画像データの前記記憶装置2の前記画像圧縮領域21への書き込み動作が実行される。
前記画像圧縮領域21への書き込み処理が実行されるとき、前記圧縮/解凍部14において画像データの圧縮処理が実行される。詳細は後述するが、当該圧縮処理は以下である。前記圧縮/解凍部14の前記圧縮変換部150が、前記記憶装置2へ書き込まれる画像データの画素データの上位側ビットをランレングス圧縮変換(Run Length Encoding)して上位ビットの圧縮データを生成する。このとき、前記圧縮変換部150は、後述する置換テーブルを用いて当該上位側ビットの変化が少なくなるように圧縮対象の上位ビットのデータ値の置き換えを行い、当該置き換えを行ったデータのランレングス圧縮変換を実行する。そして、前記圧縮変換部150が当該画素データの下位側ビットの非圧縮データとランレングス圧縮による上位ビットの圧縮データとを結合して画像圧縮データを生成する。
また、前記記憶装置2の前記画像圧縮領域21からの読み出し動作が実行される際には、前記圧縮/解凍部14において圧縮された画像データを伸長する伸長処理が実行される。詳細は後述するが、前記圧縮/解凍部14の前記解凍部151において伸長処理が実行され、前記記憶装置2から読み出される前記画像圧縮データが可逆伸長可能とされる。
次に、前記表示装置制御部16は、前記表示装置3に動画コンテンツを表示させるため、前記記憶装置2の前記画像圧縮領域21から画像データを読み出して前記圧縮/解凍部14において画像データを解凍した後、解凍した画像データを前記表示装置3へ転送する。そして、前記表示装置が転送された画像データに基づいて動画コンテンツを表示する。なお、前記表示装置3が、圧縮されたデータを伸長する解凍部31を備えている場合には、前記画像装置制御部16は前記圧縮/解凍判定部13に対して圧縮データを直接前記バス17へ出力するように要求し、圧縮データを前記表示装置3へ直接転送することも可能である。これにより、前記表示装置3と前記マイクロプロセッサ1との間の入出力信号線のデータ量が削減され、消費電力を削減することが可能になる。
(画像データの圧縮処理)
図3は前記圧縮変換部150の内部構成を示す図である。
前記圧縮変換部150は、置換処理部40と、圧縮部41、43と、テーブル作成部42と、置換処理部40と、セレクタ44を有する。前記テーブル作成部42は後述する置換テーブルを作成し、前記置換処理部40は前記置換テーブルに基づいて画素データの上位側ビットのデータ値を置き換える処理を実行する。前記圧縮部41、43は、前記置換処理部40により前記上位ビットが置き換えられた画像データのランレングス圧縮変換を実行する第1圧縮部41と、置き換えが行われていない画像データのランレングス圧縮変換を実行する第2圧縮部43である。前記セレクタ44は、前記第1圧縮部41により生成された圧縮データと前記第2圧縮部43により生成された圧縮データとを比較して、データ量の少ない方を画像圧縮データとして出力する。
前述したように前記圧縮変換部150は、大きく分けて2つの処理を実行する。すなわち、画像データの上位側ビットのデータ値の置き換えを行う置換処理と、置き換え前後の画像データのランレングス圧縮変換を行う圧縮変換処理の2つの処理である。
初めに画像データの圧縮変換処理について詳細に説明する。
以下に示す圧縮変換処理の説明では、理解を容易にするため、前記置換処理が行われていない画像データの圧縮変換を行う場合を例に説明する。また以下の説明では、画像データはRGB形式のデジタルカラー画像データであり、1画素が24ビット(すなわち、R/G/B:各8ビット)で構成され、16画素を圧縮単位として圧縮する場合を例として説明する。ただし、これに限定するものではなく、RGB565の形式、YUV444の形式、YUV422の形式、YUVの420形式、またはそれ以外の画像形式を利用することも可能である。
図4は圧縮処理単位の画像データに対する圧縮変換処理の説明図である。
図4の参照符号(A)は、前記マイクロプロセッサ1の前記画像処理部11によって処理される画像データの1要素の変化を示す図である。
当該画像データの1要素は、例えば、RGB形式の画像データのR(赤)の値である。
特に自然画データの画像データは、隣接する複数の画素のデジタル値が同じ値になることは少ないが、近いデジタル値である場合が多い。そこで、図4の参照符号(A)において上位2ビットに着目すると、はじめの連続した7画素の上位2ビットが同じ2進数の値“10”(以下、「b’10」と表記する)であり、次に連続する4画素の上位2ビットが同じ値b’01であり、その次に連続する5画素の上位2ビットが同じ値b’00となっている。
図4の参照符号(B)は、参照符号(A)に示した画像データの上位2ビットbit7、bit6と下位6ビットbit5〜bit0の計8ビットで構成されるデジタルカラー画像データの16画素の圧縮処理の1単位を示す図である。
図4の参照符号(B)において、1画素目から7画素目までの画素データの上位2ビットbit7、bit6の値はb’10で同一であること、8画素目から11画素目までの画素データの上位2ビットの値はb’01で同一であること、及び12画素目から16画素目までの画素データの上位2ビットの値はb’00で同一であること、が示されている。本実施の形態における圧縮処理では、連続した上位ビットに対してランレングス圧縮変換を行い、上位ビットの圧縮データと下位ビットの非圧縮データと結合する。尚、ランレングス圧縮は、可逆圧縮に分類されるデータ圧縮アルゴリズムの1つであって、連続したデータをそのデータ1個と連続長とで表現することによって圧縮が可能となるものである。
図5を用いて、本発明の実施の形態における圧縮処理の流れを詳細に説明する。
図5は、本発明の実施の形態における圧縮処理の流れを示す図である。
図5に示すように、まず、前記マイクロプロセッサ1の前記圧縮/解凍部14に画像データが入力されて圧縮処理が開始される(S101)。そして画像データが分離される(S102)。例えば、RGB形式であれば、R、G、Bの各要素に分離され、圧縮対象ビット(上位ビット)と非圧縮ビット(下位ビット)とに分離される。図4の参照符号(B)の場合であれば、圧縮対象ビットは最上位ビットから2ビット(bit7、bit6)に設定され、非圧縮ビットは残りの6ビット(bit5〜bit0)に設定される。
次に、前記圧縮/解凍部14は、分離された圧縮対象ビットに対してランレングス圧縮を実行することにより、当該圧縮対象ビットをデータ種別とその連続長とに変換する(S103)。
図4の参照符号(C)は、図4の参照符号(B)に示される16画素の圧縮単位に対して上位2ビットを圧縮対象ビットとしてランレングス圧縮を行い、更に非圧縮ビットとヘッダとを結合した場合の画像圧縮データを示す図である。
前記画像圧縮データは、図4の参照符号(C)に示されるように、圧縮された上位ビットのデータと、非圧縮の下位ビットのデータと、データの種別を表わすヘッダとから構成される。
ランレングス圧縮によって、同じ値がどれだけの長さで連続しているかが表現され、連続する同じ値を以降「データ種別」と呼び、連続する長さを以降「連続長」と呼ぶ。図4の参照符号(C)の例では、上位ビットbit7、bit6のデータ種別毎に圧縮対象ビットがデータ種別とその連続長とに変換されたことを示している。すなわち、1圧縮単位における画素データの上位ビットbit7、bit6が、データ種別(b’10)と連続長(7)、データ種別(b’01)と連続長(4)、及びデータ種別(b’00)と連続長(5)、によって表わされるデータに圧縮されたことを示している。
次に、前記圧縮/解凍部14は、連続長の最大値に基づいて連続長を表すビット幅(以下、「連続長ビット幅」と称する。)を決定する。図4の参照符号(C)の場合には、連続長の最大値が“7”であるため、連続長ビット幅を“3ビット”とする。この際、連続長はデータ種別の連続個数を示すので、連続長の値は1以上である。そこで、連続長を「連続長−1」の値で表現することで3ビットでの表現範囲を10進数の“1”〜“8”(以下、「d’1〜d’8」と表記する。)に割り当てるものとする。ここで、仮に連続長の最大値が9個であれば、連続長ビット幅を4ビットとして、d’1〜d’16の広い表現範囲が可能となる。
次に、図5のフローのステップ105にて、前記圧縮/解凍部14は、ランレングス圧縮で圧縮された上位ビットの圧縮データと、圧縮されていない下位ビットの非圧縮ビットとを結合し、圧縮されたことを示すヘッダを付加する。
図6は、図4の参照符号(B)の圧縮単位を圧縮した際に付加されるヘッダの一例を示す図である。
ヘッダIDにより、画像圧縮データが圧縮データを含むデータであるか、又は非圧縮データであるかを判別可能とする。また圧縮データを含むデータである場合には、当該画像圧縮データの前記連続長ビット幅と圧縮対象の上位ビットのビット幅(以下、「圧縮対象ビット幅」と称する。)を判別可能とする。図6において、連続長ビット幅の値は、圧縮単位における取り得る最大の連続長の値を示す。例えば、図4の参照符号(B)では、16画素単位の圧縮処理であるため、連続長の取りうる最大値はd’1〜d’16となる。連続長ビット幅が1の場合には、連続長の最大値が2しか表現できないために圧縮効率が悪くなる。従って、図6の例では、連続長ビット幅は“1”を除外した“2〜4”によって表現する。圧縮対象ビット幅は、圧縮対象の上位ビットのビット幅を表わす。図4の参照符号(B)の場合、1画素は8ビットのデータであるから圧縮対象となり得る最大のビット幅は8ビットである。したがって、図6の例では、圧縮対象ビット幅は“1〜8”によって表現する。図6ではヘッダIDの種類は31個であるため、ヘッダのビット幅は5ビットになる。図4の参照符号(C)の場合、圧縮対象ビット幅が2ビットであり、連続長ビット幅が3ビットであるから、ヘッダIDは“4”となる。なお、連続長ビット幅“1”が除外された例を図6に示したが、連続長ビット幅1を追加することも可能である。その場合、ヘッダのビット幅を6ビットとして、圧縮対象ビット幅1〜8の夫々に対する連続長ビット幅を“1〜4”とすることも可能である。また、図6に示したようにヘッダIDのビット幅5ビットの場合に空きとなっているヘッダIDの値“24〜29”の6箇所に、割り当て可能な個数だけ割り当ることも可能である。
次に、前記圧縮/解凍部14は、1圧縮処理単位の圧縮データのデータ量と1圧縮処理単位の非圧縮のデータ量とを比較する(S107)。ステップS107にて非圧縮データに比較して圧縮データのデータ量が少ないと判定された場合には、圧縮データを出力して(S108)、処理を終了する(S111)。ステップS107にて非圧縮データに比較して圧縮データのデータ量が大きいと判定された場合には、圧縮を行わずに、ステップS106で圧縮前の圧縮/解凍部14に入力されたデータにヘッダを付加して、非圧縮データを出力し(S110)、処理を終了する(S109)。このとき、図6に示したように非圧縮データを表わすヘッダID“31”が付加される。
図4の参照符号(C)から理解されるように圧縮データのデータ量=ヘッダサイズ+(8−圧縮対象ビット幅)×圧縮単位ブロック数+(圧縮対象ビット幅+連続長ビット幅)×データ種別数となるのに対して、図4の参照符号(B)から理解されるように非圧縮データのデータ量=ヘッダサイズ+8×圧縮単位ブロック数となる。
従って、図4の画像データの例では、圧縮データのデータ量=5+(8−2)×16+(2+3)×3=116ビットとなって、非圧縮データのデータ量=5+8×16=133ビットとなり、圧縮データの方が非圧縮データよりもデータ量が小さくなり、データ圧縮が有効となったことになる。
なお上記の圧縮処理において、非圧縮を選択した場合に、ヘッダ分のデータの増加を回避することも可能である。例えば、図4の場合、ヘッダIDのビット数が5ビットと比較的大きいので、非圧縮データのビット数を削減することが望ましい。そこで、図5のフローのステップ107にて非圧縮選択を行い、ステップ110で非圧縮データを出力する際に、非圧縮データからヘッダ付加した分のデータ量を削除して出力する圧縮処理することも可能とする。
図7は、非圧縮データの所定の最下位ビットを削除する場合の説明図である。
例えば図4の場合、ヘッダIDが5ビットであることから、図7に示すように予め決めた最下位ビットを5ビットだけ削除する。このとき画像圧縮データには、図6に示すように“30”(非圧縮(削除あり))のヘッダIDが付加される。このように最下位ビットを削除した場合に画像劣化は生ずるが、非圧縮が選択されるのは画像データの変化量が大きい場合であるため、当該画像劣化は目視で判断し難く、非圧縮時のビット数の増加を回避する方法として有効である。なお、前記ヘッダIDの値“31”を非圧縮とするか、前記ヘッダIDの値“30”を非圧縮(削除あり)とするかは、予め前記CPU12から前記圧縮/解凍部14に選択情報を設定することで選択することも可能である。
以上画像データが図4の場合を一例として圧縮処理の説明を行ったが、次にデータ変化が図4よりも小さい場合について説明する。
隣接する画素間のデータの変化が小さい場合には、圧縮対象ビットを多くしたほうが、ランレングス圧縮変換によるデータの圧縮率を高くすることができ、画像圧縮データのデータ量をより小さくすることができる。この場合において、上位4ビットを圧縮対象ビットとしたときと、上位2ビットを圧縮対象ビットとしたときについて分けて説明する。
はじめに上位4ビットを圧縮対象ビットとした場合について説明する。
図8は、圧縮処理単位の別の画像データに対する上位4ビットの圧縮変換処理の説明図である。
図8の参照符号(A)は、前記マイクロプロセッサ1の前記画像処理部11によって処理される別の画像データの1要素の変化の一例を示す図である。
図8の参照符号(B)は、図8の参照符号(A)に示した画像データの上位4ビットbit7〜bit4と下位4ビットbit3〜bit0の計8ビットで構成されるデジタルカラー画像データの16画素の圧縮処理の1単位を示す図である。
図8の参照符号(C)は、図8の参照符号(B)に示される上位4ビットを圧縮対象ビットとしてランレングス圧縮を行い、更に非圧縮ビットとヘッダとを結合した場合の画像圧縮データを示す図である。
図8の参照符号(B)及び(C)に示すように上位4ビットを圧縮対象ビットとした場合、上位4ビットのデータは、データ種別(b’1011)及び連続長(7)と、データ種別(b’1010)及び連続長(4)と、データ種別(b’1001)及び連続長(5)のデータに圧縮される。当該圧縮データのデータ量は、90ビット(=5+(8−4)×16+(4+3)×3)である。
次に、上位2ビットを圧縮対象ビットとした場合について説明する。
図9は、図8と同一の画像データに対する上位2ビットの圧縮変換処理の説明図である。
図9の参照符号(A)は、前記マイクロプロセッサ1の前記画像処理部11によって処理される別の画像データの1要素の変化の一例を示す図である。
図9の参照符号(B)は、図9の参照符号(A)に示した画像データの上位2ビットと下位6ビットの計8ビットで構成されるデジタルカラー画像データの16画素の圧縮単位を示す図である。
図9の参照符号(C)は、図9の参照符号(B)に示される上位2ビットを圧縮対象ビットとしてランレングス圧縮を行い、更に非圧縮ビットとヘッダとを結合した場合の画像圧縮データを示す図である。
図9の参照符号(B)及び(C)に示すように上位2ビットを圧縮対象ビットとした場合、上位2ビットのデータは、データ種別(b’10)及び連続長(16)のデータに圧縮される。当該圧縮データのデータ量は、107ビット(=5+(8−2)×16+(2+4)×1)となる。
以上の結果から、圧縮対象ビット数を大きくすることでデータの圧縮率が向上することが理解される。しかし、圧縮結果は圧縮する画像データに依存するものである。例えば圧縮対象ビット数を4ビットとした場合でも、データ種別数が15個、連続長ビット幅が2となる場合では、圧縮データのデータ量は159ビット(=5+(8−4)×16+(4+2)×15)となり、非圧縮データのデータ量133ビットよりも大きな値となってしまうので、無条件に圧縮対象ビット数を増大することはできない。この問題は、以下に説明する実施の形態によって解消されることが可能である。
すなわち、画像データは、1枚の画像の中でも図4のように値の変化が激しい場合もあれば、図8及び図9のように変化が緩やかな場合もある。
図10は、1枚の画像の中で画像データの値の変化が激しい部分と画像データの値の変化が緩やかな部分とを含む様子を示す図である。例えば、図10における人の顔部分の画像では、目や口などの情報が多くデータの変化量も大きくなる傾向がある。一方、図10における空の部分の画像では同じ色が続くことが多く、データ変化量も少ない傾向がある。これら1枚の画像中であっても変化量の多い部分と少ない部分が混在して変化していく特徴から、図10に示すように圧縮処理を一定画素数(例えば、16画素)の圧縮単位で圧縮処理を実行する際に、圧縮対象ビット幅を圧縮単位毎に変化させる処理を実行することで、圧縮率の低下を防ぐことを可能とする。
図11は、前記圧縮変換部150における前記圧縮部41、43の構成図である。
1圧縮単位の画像データを圧縮するために前記圧縮部41、43は、上位nビットの圧縮を実行する上位nビット圧縮部141〜148(nは1以上の整数)を8個含むことによって、入力された画像データの圧縮を8個の上位nビット圧縮部141〜148で同時に実行する。圧縮データセレクタ149には前記上位nビット圧縮部141〜148の出力信号が並列に供給され、圧縮データ量の最も少ない上位nビット圧縮部の出力信号を選択して出力するものである。
図12は、図11に示した前記圧縮部41、43の圧縮処理によって圧縮された画像データの各圧縮単位で選択された最高圧縮率の圧縮対象ビット幅の変化を示す図である。
図11に示した圧縮部41、43による圧縮処理では、8個の圧縮対象ビット幅の中から最高圧縮率の圧縮対象ビット幅を選択するものである。なお、図11では8個の上位nビット圧縮部141〜148によって同時に圧縮処理を実行する構成を示したが、それに限定されるものでなく、上位nビットが可変の上位nビット圧縮部を準備して、同一入力圧縮対象データに対して上位nビットを1〜8の範囲で変化させて圧縮処理を実行して、最高圧縮率の上位nビットを選択することも可能である。
(圧縮データの伸長処理)
圧縮された画像データを伸長する伸長処理の流れについて図13を用いて詳細に説明する。
以下に示す画像データの伸長処理の説明では、前述した圧縮処理と同様に、理解を容易にするため、伸長対象の前記画像圧縮データについての置き換え処理が行われていない場合を例に説明する。また、画像データの伸長処理は図4で示された圧縮データを伸長する場合を一例として説明する。なお、圧縮単位画素数とヘッダ情報は、圧縮処理時のフローと伸長処理時のフローにおいて共通の情報を用いるとする。
図13は、図4に示した圧縮データを伸長するための伸長処理の流れを示す図である。
まず、前記解凍部151により伸長処理が開始されると(S201)、画像圧縮データの先頭からデータが読み出される。次に前記解凍部151は、読み出された画像圧縮データの先頭から例えば5ビットのヘッダの情報(ヘッダID)を取得して、当該ヘッダIDを解析する(S202)。ステップS202でのヘッダIDの解析の結果、データ圧縮ありと判定された場合には、前記解凍部151は、ヘッダIDに後続するデータ種別のデータと連続長のデータを読み出す(S203)。具体的には、図4の参照符号(C)の場合、ヘッダIDが“4”であることから、連続長ビット幅は3ビットであり、圧縮対象ビット幅は2ビットであると判別される。そこで、前記解凍部151は、図4の参照符号(C)に示したヘッダに後続する圧縮データから2ビットのデータ種別のデータと3ビットの連続長のデータを読み出す。
次にステップ204では、図4の参照符号(C)に示した圧縮データに後続する非圧縮データから6ビット(=8ビット−2ビット(データ種別))の非圧縮ビットを順次に読み出し、上位ビット側にデータ種別を付加することによって1画素分の8ビット伸長データが順次に生成される。そして、前記解凍部151は伸長した画素数の判定を行う(S205)。このとき、伸長画素数<連続長と判定された場合には、ステップS204に移行し、1画素分の非圧縮ビットの読み出し処理が反復され、伸長画素数=連続長と判定された場合には、ステップ206に移行する。前記解凍部151は、伸長された画素データの総数である総伸長画素数の判定を実行する(S206)。このとき、総伸長画素数<圧縮単位画素数(図4の参照符号(C)の場合、圧縮単位画素数は16画素)であれば、ステップS203に戻り、前記解凍部151は、当該読み出した画像圧縮データにおける後続するデータ種別のデータと連続長のデータの取得を実行する。またステップS206において、総伸長画素数=圧縮単位画素数と判定された場合には、伸長処理が終了される(S207)。
一方、ステップ202のヘッダ情報の解析の結果、「データ圧縮無し」と判定された場合には、前記解凍部151は、圧縮単位画素数分の画像圧縮データを読み出し、ヘッダIDを除去して出力し(S208)、伸長処理を終了する(S207)。ここで、ステップ202のヘッダIDの解析の結果、非圧縮(削除あり)を示す値“30”の値のヘッダIDが判定された場合には、前記解析部141は、削除された所定の最下位ビットに、“0”もしく“1”のデータを補充して伸長処理を実行することも可能である。この場合には、可逆圧縮ではない不可逆圧縮/不可逆伸長となり得る。
以上の方法によるランレングス圧縮変換と伸長処理によれば前記マイクロプロセッサ1と前記記憶装置2との間のデータ量の削減が可能となり、前記記憶装置2のアクセス時における消費電力の削減も可能となる。
(置換テーブルを用いたデータの置換処理)
次に画像データの置換処理について説明する。
前述のように本実施の形態では画像データに連続性があることに着目し、1圧縮単位の画像データにおける各画素データの上位ビットに対しランレングス圧縮変換を行ってデータの圧縮を行う。しかしながら、ノイズが載っている画像等のように高周波成分が含まれる画像データの場合、連続性はあるものの連続長が短くなりランレングス圧縮変換による圧縮率が低下する場合がある。また、連続する画素データであっても、上位側ビットの値が“1”又は“0”に変化する境界値では、画素データ間の連続性はあるものの上位側のビットの連続長が短くなり圧縮効率が低下する。例えば、“000111”から“001000”に変化する場合である。そこで、本実施の形態に係るマイクロプロセッサ1では、圧縮対象となる画素データ間の上位ビットの変化が小さくなるように上位側ビットのデータ値を置き換える処理を行う。当該置換処理は、上位側ビットのデータ値を置き換えるためのテーブル(以下、「置換テーブル」と称する。)に基づいて実行される。初めに置換テーブルの詳細について説明する。
図14は、ストリームデータ等の連続した2つの画像データの一例を示す図である。
図14において、1圧縮単位(16画素)における1個目の圧縮前の元データ200と2個目の圧縮前の元データ201の画素データが2進数で表記されている。また図14には、夫々の画素データの上位6ビットの値も併せて表示している。
図15は、図14に示される上位6ビットのデータ値が同一である画素データの数(以下、カウント値、とも称する。)を表わした図である。
図14に示されるように前記画像データ200内の画素データの上位6ビットの種類は3つである。図15の参照符号(a)に示される部分には、前記画像データ200に係る3種類の上位6ビットの値がカウント値と共に表示されている。図15の参照符号(a)において、上位6ビットの値が“001110”である画素データは11個あり、上位6ビットの値が“001101”である画素データは4個あり、上位6ビットの値が“010000”である画素データは1個あることが示されている。一方、図15の参照符号(b)に示される部分には、前記画像データ201に係る3種類の上位6ビットの値がカウント値と共に表示されている。図15の参照符号(b)において、上位6ビットの値が“001110”である画素データは8個あり、上位6ビットの値が“001101”である画素データは6個あり、上位6ビットの値が“010000”である画素データは2個あることが示されている。
図16は、図15の情報を元に作成された画素データの上位ビットに対する前記置換テーブルを示した図である。
前記置換テーブルは、置換前のデータ値と置換後のデータ値が対応する形式で生成される。図16において参照符号(a)に示される部分は図15の参照符号(a)に示された前記画像データ200の上位ビットの種類とそのカウント値の情報であり、カウント値の大きいものから順に並べられている。また図16の参照符号(b)に示される部分は、図16の参照符号(a)に示される値の上位ビットの変化が少なくなるように当該値を置換するために割り当てた値である。図16では、上位ビットの変化が少なくなるようにするための置き換えの方法の一例として、カウント値の大きい上位ビットの値から順に値を割り当てる方法を示している。ここでは、置換前のデータ“001110”に対し、2進数表記で“000000”を置換後のデータとして割り当て、また置換前のデータ“001101”に対し“000001”を置換後のデータとして割り当て、更に置換前のデータ“010000”に対し“000010”を置換後のデータとして割り当てている。図16の参照符号(c)に示される部分は、図16の参照符号(a)及び(b)からなるテーブルによる置換を可逆にする為のテーブルである。例えば、置換テーブルによって画素データ“001110”が“000000”に変換された場合に、置換テーブルにより変換されなかった画素データ“000000”が混在すると、“000000”のデータが置換テーブルにより変換されたデータであるか、変換されていないデータであるかを区別することができず、画像データの変換を元に戻すことができない。そこで、データの置換処理による変換が可逆となるように、図16の参照符号(a)に示される置換前のデータと図16の参照符号(b)に示される置換後のデータを入れ替えたテーブル(以下、「退避テーブル」という。)が、図16の参照符号(c)に示される部分に作成される。具体的には、図16の参照符号(a)における“001110”を図16の参照符号(b)における“000000”に変換したことを受け、図16の参照符号(c)の部分に置換前のデータ“000000”を置換後のデータ“001110”に変換するテーブルが作成される。他のデータも同様であり置換前のデータ“000001”を置換後のデータ“001101”に変換し、置換前のデータ“000010”を置換後のデータ“010000”に変換するテーブルが作成される。
しかしながら、上記のように前記退避テーブルを作成しても問題が生じる場合がある。例えば、置換後のデータが置換前のデータと一致する場合である。
図17は可逆変換に対応しない置換テーブルの一例である。
図17の示す前記置換テーブルにおいて、図16における置換前のデータ“001101”は置換後データ“000001”に割り当てられ、置換前のデータ“000001”は置換後データ“000010”に割り当てられている。このとき、前記退避テーブルを上述した方法でそのまま作成すると、置換前のデータ“001101”を置換後のデータ“000001”に割り当てるテーブルと、前記退避テーブルにおける置換前のデータ“000010”を“000001”に割り当てるテーブルが重なってしまい、置換後のデータから置換前のデータに戻すときにどちらの値に戻せばよいのかを判断することが出来ない。そこで、当該問題を解決するため以下の方法により前記置換テーブルを作成する。
図18は、図17に示された課題を解決した置換テーブルを示す図である。
図16の参照符号(b)に示される置換後のデータ値の割り当てを行う際に、図16の参照符号(a)に示される置換前のデータ値と割り当てた置換後のデータ値とが一致する場合には、当該置換前のデータに対応する置換後のデータに、当該置換前のデータと同一の値を先に割り当てる。その後、まだ割り当てていない残りの置換前のデータに対して、上記の図16の参照符号(b)及び(c)に示される処理を実行する。例えば、図17に示されるように、置換前のデータ“000001”と、置換前のデータ“001101”に対応する置換後のデータ“000001”が一致するとき、図18に示すように置換前のデータ“000001”に割り当てる置換後のデータを“000001”として先に割り当てることを行う。その後、置換前のデータ“001110”に置換後のデータとして“000000”を割り当て、次に置換前のデータ“001101”に置換後のデータとして“000010”を割り当てる。そして、前記退避テーブルの作成を実行し、置換前のデータ“000000”を“001110”に、置換前のデータ“000010”を“001101”に割り当てることにより、図18に示す置換テーブルが作成される。以上の方法によれば可逆変換に対応した置換テーブルの作成が可能とされる。
次に置換テーブル作成の処理の流れについて図19を用いて詳細に説明する。
図19は、置換テーブル作成時の処理の流れを示す図である。
図19において、まず、前記圧縮変換部150の前記テーブル作成部42において前記置換テーブル作成の処理が実行されると(S301)、前記置換テーブルを作成する上位側ビットの対象ビット幅(以下、「置換対象ビット幅」と称する。)が決定される(S302)。例えば、図15の場合、置換対象ビット幅は上位6ビットである。当該置換対象ビット幅の値は予め設定された固定値でもよいし、後述する方法により可変とされてもよい。次に、前記テーブル作成部42は、入力された画像データのうち1画素の画素データについて、前記置換対象ビット幅に該当するビットの値が既存のテーブルに存在するか否かを判別する(S303)。例えば、前記画像データ200が入力された場合、1番目の画素データ“00111001”の上位側6ビットのデータ値“001110”が既存のテーブルの置換前のデータとして登録されているか否かを判別する。ステップ303において、当該画素データの対象ビットの値が既存テーブルに存在していれば、既存の置換テーブルにおける当該存在する置換前データに対応するカウント値に“1”を加算する(S304)。一方、既存テーブルに当該画素データの対象ビットの値が存在していなければ、前記置換テーブルの置換前データに当該対象ビット幅の値を登録するとともに、カウント値に“1”をセットする(S305)。そして、前記テーブル作成部42は、圧縮処理単位分の全ての画素データについてステップ303〜305の処理が完了したか否かを判別する(S306)。例えば図13の画像データ200の場合、1〜16番目の全ての画素データについて上記の処理(ステップ303〜306)が完了したか否かを判別する。ステップ306において圧縮処理単位分の全ての画素数の処理が完了していなければ、ステップ303に戻り次の画素の画素データについて上記の処理を実行する(S303〜S306)。一方ステップ306において圧縮処理単位分の全ての画素データについてステップ303〜305の処理が完了している場合には、前記テーブル作成部42は、当該作成した置換テーブルのカウント値でソートし、カウント値の大きい順に置換前データが上位にくるように前記置換テーブルの並び替えを行う(S307)。以上の処理により、図16の参照符号(a)に示される部分が作成される。
次に前記テーブル生成部42は、前記置換テーブルの置換後データの割り当て処理を実行する(S308)。このとき、図18に示すように置換後データの値が可逆になるように設定される。これにより、図16の参照符号(b)に示される部分が作成される。そして、前記テーブル生成部42は、前述の方法により前記退避テーブルを作成し(S309)、置換テーブルの作成を終了する(S310)。
図20は、置換テーブルによって上位側ビットの値が置き換えられた画像データの一例である。
図20には、図13の前記画像データ200に基づいて作成された置換テーブル(図16に示す置換テーブル)によって上位6ビットが変換された前記画像データ201が示されている。図16に示される置換テーブルは上位6ビットを置き換えるテーブルであるため、下位2ビットは置換対象外である。図20に示されるように、置換前の前記画像データ201は上位1ビットのみが16個連続する同一値“0”であるのに対し、置換後のデータは上位4ビットが16個連続する同一値“0000”になることがわかる。
(置換処理後の圧縮変換処理)
次に前記置換処理と前記圧縮変換処理を踏まえた圧縮データの生成処理の流れについて説明する。
図21は、置換処理と圧縮変換処理を踏まえた圧縮データの生成処理の流れを示した図である。
図21に付された記号の意味は以下である。
元データ#1〜#4は、圧縮処理単位(16画素)毎の画像データであり、テーブル#0〜#4は置換テーブルである。ここでテーブル#0は初期テーブルであり、予め前記テーブル作成部42及び前記置換処理部40に格納されたテーブルである。例えば、連続する画像データの圧縮処理を行う際に、最初の画像データに対する置換処理を行うために用いるテーブルである。なお、当該初期テーブルは、元データをテーブル変換しない、例えば“0”を“0”に変換するテーブルであってもよい。
置換後データ#1’〜#4’は、元データ#1〜#4の夫々が置換されたデータである。
圧縮データ#1’’〜#4’’は、置換後データ#1’〜#4’を夫々圧縮した画像圧縮データである。
図21を用いて処理の流れを説明する。
まず前記画像処理装置11等のバスマスタからのアクセス要求に際し前記圧縮変換部150に元データ#1が入力されると、前記置換処理部40は、内部に保持しているテーブル#0に基づいて元データ#1の置換処理を実行し、生成した置換後データ#1’を前記第1圧縮部41に与える(S401)。このとき、元データ#1は前記テーブル作成部42にも入力される。前記テーブル作成部42は、入力された元データ#1に基づいて前述した方法により、置換テーブル#1を作成する。そして、前記テーブル作成部42は、ステップ401の後、前記置換処理部40に前記テーブル#1を与え、前記置換処理部40に保持されているテーブル#0をテーブル#1に更新する(S402)。また、前記第2圧縮部43にも元データ#1がそのまま入力され、前記第2圧縮部43は入力されたデータの圧縮変換処理を実行し、当該圧縮したデータを前記セレクタ44に与える。
ステップ401において、置換後データ#1’がすべて前記第1圧縮部41に入力されると、前記第一圧縮部41は圧縮変換処理を実行し、圧縮したデータを前記セレクタ44に与え、前記セレクタ44は、前記第1圧縮部41と前記第2圧縮部43において圧縮されたデータのデータ量を比較し、データ量が小さい方の圧縮データを選択して画像圧縮データ#1’’として出力する(S403)。このとき前記第1圧縮部41は置換後データ#1’の圧縮データに係る圧縮対象ビット幅の値を前記テーブル作成部42に与える(S404)。
次に前記圧縮変換部150に元データ#2が入力されると、前記置換処理部40は、ステップ402において更新されたテーブル#1に基づいて元データ#2の置換処理を実行し、生成した置換後データ#2’を前記第1圧縮部41に与える(S405)。このとき、元データ#2は前記テーブル作成部42にも入力される。前記テーブル作成部42は、入力された元データ#2に基づいて前述した方法により、置換テーブル#2を作成する。このとき、前記テーブル作成部42は、ステップ404において前記第1圧縮部41から与えられた前記圧縮対象ビット幅の値に基づいて、前記置換テーブルの置換対象ビット幅の値を決定し、前記置換テーブルを作成する。具体的には、前記第1圧縮部41が置換後データ#1’を圧縮したときの圧縮対象ビット幅の値に対して所定の値を加算したビット幅を前記置換対象ビット幅と決定して、それに基づいて前記テーブル作成が行われる。例えば、置換後データ#1’の圧縮のデータに係る圧縮対象ビット幅の値が2ビットであった場合には、その値に2ビットを加算した値である4ビットを前記置換対象ビット幅として、前記置換テーブル#2が作成される。ここで決定される置換対象ビット幅の値は、圧縮データの伸長を行うときに生成できる値であれば特に制限はなく、圧縮対象ビット幅に3ビット加算した値でもよいし、圧縮対象ビット幅と同一の値でもよい。なお、前記置換対象ビット幅の値は、前記圧縮対象ビットによらず固定の値でもよい。
そして、前記テーブル作成部42は、ステップ405の後、前記置換処理部40に作成したテーブル#2を与え、前記置換処理部40に保持されているテーブル#1をテーブル#2に更新する(S406)。また、前記第2圧縮部43にも元データ#1がそのまま入力され、前記第2圧縮部43は入力されたデータの圧縮変換処理を実行し、当該圧縮したデータを前記セレクタ44に与える。
ステップ405において、置換後データ#2’がすべて前記第1圧縮部41に入力されると、前記第1圧縮部41は圧縮変換処理を実行し、圧縮したデータを前記セレクタ44に与え、前記セレクタ44は、前記第1圧縮部41と前記第2圧縮部43において圧縮されたデータのデータ量を比較し、データ量が小さい方の圧縮データを選択して画像圧縮データ#2’’として出力する(S407)。このとき前記第1圧縮部41は置換後データ#2’の圧縮データに係る圧縮対象ビット幅の値を前記テーブル作成部42に与える(S408)。
以降元データ#3〜#4についても上記と同様に、一つ前の画像データに基づいて作成された置換テーブルにより置換処理が実行され、その後圧縮変換処理が実行されることで、ストリームデータ等の連続する画像データについて順次圧縮データを生成することが可能となる。
図22は、置換処理後に圧縮処理が行われたデータのデータ形式を示した図である。
データ形式は前述した図4の参照符号(C)、図8の参照符号(C)、及び図9の参照符号(C)に示した形式のデータの先頭に1ビット分の置換処理の有無を表すビットを付加した形式である。図22に示されるデータは、図20の場合において、前記画像データ201の置換処理後の圧縮データ(以下、置換後圧縮データ、とも称する。)を表している。
図22に示すように、前記画像データ201の置換後圧縮データは、置換処理の有無表わす1ビットの値と、前記ヘッダIDを表わす5ビットの値と、データ種別を表わす4ビットの値と、その連続長を表わす4ビットの値と、非圧縮データのビットの値によって表わされる。ここで、置換の有無を表すビットは“1(置換処理あり)”である。また、上位4ビット“0000”が16個連続している為、データ種別は“b’0000”であり、連続長は“16”である。更に下位4ビット分の非圧縮ビットは64ビット(=(8−4)×16)である。したがって、前記画像データ201の置換後圧縮データのデータ量は78ビットとなる。一方、前記画像データ201の置換処理前の圧縮データのデータ量は、上位1ビットをランレングス圧縮の対象とした場合、前述の計算式により算出した122ビット(=5+(8−1)×16+(1+4)×1)に置換の有無を表すビット(1ビット)を加えた123ビットとなる。以上のことから、置換後圧縮データの方が置換処理前の圧縮データよりもデータ量が小さくなり、置換処理が有効となったことがわかる。特に当該置換処理によって、画像データにおける画像データ間の上位ビットの値の変化が小さくなったことでランレングス圧縮変換が適用される上位ビット数が増加し、非圧縮データとなる下位ビット数が減少したことがデータ量の減少に有効に作用している。ただし、図11に示す圧縮を行う場合、データ量が多少異なる場合があるが、傾向は変わらない。
(置換後の圧縮データの伸長処理)
置換後の圧縮データの伸張処理について説明する。
図23は、解凍部151の内部構成を示す図である。
前記解凍部151は、伸長部50、テーブル作成部53、置換処理部51、及びセレクタ52を有する。前記伸長部50は、前記記憶装置制御部15を介して前記記憶部2に格納された圧縮データを受け取り、前述した方法により、当該圧縮データの伸長処理を行う。前記テーブル作成部53は、前記伸長処理が行われた伸長データと元の画像データに基づいて置換テーブルを作成し、前記置換処理部51は、前記置換テーブルに基づいて伸長データに対し圧縮時と逆の置換処理を実行し、置換後の伸長データを生成する。前記セレクタ52は前記置換後の伸長データと、置換前の伸長データとを入力し、前記伸長部50から与えられる前記ヘッダIDに基づいて、当該入力した伸長データの何れかを元の画素データとして出力する。
前記解凍部151における置換後圧縮データの伸張処理について図24を用いて詳細に説明する。
図24は置換後圧縮データの伸張処理の流れを示した図である。
図24において、図21によって圧縮された前記圧縮データ#1’’〜#4’’を伸長する場合が一例として示されている。まず、連続する画像圧縮データの先頭のデータである前記圧縮データ#1’’が前記記憶装置部2から読み出され、前記記憶装置制御部15を介して前記伸張部50に入力されると、前記伸張部50が前述した方法により、伸張データ#1’を生成する(S501)。このとき、前記伸長部50は、前記圧縮データ#1’’の先頭に付された置換処理の有無の情報を前記セレクタ52に与え、前記圧縮データ#1’’の前記圧縮対象ビット幅の情報を前記テーブル作成部42に与える(S502)。生成された伸長データ#1’は、前記置換処理部51と前記セレクタ52に入力される。
次に、前記置換処理部51は、前記置換処理部51に設定された置換テーブル#0に基づいて前記伸長データ#1’の置換処理を行い、元データ#1を生成して前記セレクタ52に与える。すなわち、前記置換処理部51は、圧縮時に置換テーブル#0によって置換された置換後データ#1’を置換前のデータ#1に置き換える処理(以下、逆置換処理とも称する。)を実行する。このとき用いるテーブルは圧縮時と同じ前記テーブル#0である。これにより可逆な置換処理が可能となる。そして、前記セレクタ52は、前記伸長部50より与えられた置換処理の有無の情報に基づいて、入力されるデータの選択を行い、選択したデータを元の画素データとして出力する(S503)。すなわち、“置換処理有り”の場合、前記セレクタ52は、前記置換処理部51から与えられたデータを選択して元の画像データ#1として出力し、“置換処理無し”の場合は前記伸張部50から与えられたデータを選択して、元の画像データ#1として出力する。
前記テーブル作成部53は前記セレクタ52から出力された元データ#1と、ステップ502において前記伸長部50から与えられた前記圧縮対象ビット幅の情報とに基づいて、圧縮時の前記テーブル作成部42と同様の方法により置換テーブル#1を作成し、前記置換処理部51に設定された置換テーブルの更新を行う(S504)。すなわち、前記圧縮データ#1’’に係る前記圧縮対象ビット幅の値に対して所定の値を加算したビット幅を前記置換対象ビット幅と決定して、それに基づいて前記テーブル作成を実行する。なお、前記置換対象ビット幅の値は、圧縮時と同様の方式であれば、前記圧縮対象ビット幅によらず固定の値でもよい。以降前記圧縮データ#2’’〜#4’’についても上記と同様に、一つ前の圧縮データに基づいて作成された前記置換テーブルを用いて前記逆置換処理が実行されることで、順次元データ#2〜#4が伸張される。
これによれば、先頭の圧縮処理単位のデータを伸長するための初期テーブルがあれば、データ圧縮時に作成した圧縮処理単位毎の置換テーブルと同様のテーブルを作成することができるので、伸長処理のために圧縮時の置換テーブルを保存しておく必要はない。
以上実施の形態1によれば、画像データについて置換処理と圧縮変換処理を行うことで前記記憶装置2に格納するデータのデータ量を削減することができるから、前記記憶装置2に対するデータの読み出し及び書き込み時に前記マイクロプロセッサ1のI/O回路において消費される電流を削減することが可能となる。また、データ量が削減されることにより、前記記憶装置2への書き込みや読み出しにかかる時間(記憶装置稼働時間)も削減でき、前記記憶装置2で消費される電流も削減することができる。また、実施の形態1ではランレングス圧縮変換を利用した可逆圧縮を行うから、画像劣化がなく高画質を保ったまま低消費電力化が可能となる。なお、図7に示すように非圧縮の場合に所定の最下位ビットを削除する場合には不可逆となるが、不可逆な箇所はデータ変化の激しい箇所に限定される為、画像劣化も限定的に抑えることが可能である。
≪実施の形態2≫
(置換対象の画像データを考慮した置換テーブル)
実施の形態1に係るマイクロプロセッサでは、置換対象の画像データを置換するための置換テーブルは、置換対象の一つ前の画像データによって作成されたが、実施の形態2に係るマイクロプロセッサでは、置換対象の一つ前の画像データのみならず当該置換対象の画像データも考慮して置換テーブルを作成する。
図25は、実施の形態2に係るマイクロプロセッサ4の圧縮変換部170の内部構成を示す図である。
実施の形態2に係るマイクロプロセッサは、実施の形態1に係る前記圧縮/解凍部14の代わりに圧縮/解凍部30を有し、他の構成要素は前記マイクロプロセッサ1と同様である。図25には、説明に必要な構成要素のみ図示している。
前記圧縮/解凍部30は前記圧縮変換部150の代わりに前記圧縮変換部170を有し、前記解凍部151の代わりに前記解凍部171を有する。
前記圧縮変換部170は、前記圧縮変換部150の構成要素に加えてデータ遅延部71を有し、前記テーブル作成部42に代えてテーブル作成部72を有する。ここでは、前記圧縮変換部150の構成要素と同様のものには同一の参照符号を付し、その詳細な説明を省略する。
前記データ遅延部71は、入力された画像データを1圧縮単位のサイクルだけ遅延させて出力する。例えば、1圧縮単位の画像データが連続して2つ入力される場合おいて、1つ目の画像データが前記データ遅延部71に入力された後、2つ目の画像データが入力されたら1つ目の画像データを出力する。前記データ遅延部71は、例えば、直列に接続したFF(Flip Flop)回路等により構成される。
前記テーブル作成部72は、圧縮対象の画像データと、前記データ遅延部71によって1圧縮単位のサイクルだけ遅延されて出力された当該圧縮対象の一つ前の画像データとを入力し、当該2つの画像データに基づいて置換テーブルを作成する。
以下前記テーブル作成部72による置換テーブルの作成方法について図26〜図29、及び図30を用いて説明する。
図26は、上位8ビットを置換対象ビットとした置換テーブルを示す図である。
図27は、上位7ビットを置換対象ビットとした置換テーブルを示す図である。
図28は、上位6ビットを置換対象ビットとした置換テーブルを示す図である。
図29は、上位5ビットを置換対象ビットとした置換テーブルを示す図である。
図30は、前記テーブル作成部72による置換テーブルの作成処理の流れを示す図である。
以下の説明では、2つの連続する画像データが前記テーブル作成部72に入力される場合を例とし、2つの連続する画像データのうち、先に入力される画像データを圧縮対象の画像データ60Aとし、後に入力される画像データを次の圧縮対象の画像データ61Aとする。
図30において、前記テーブル作成部72は、前記画像データ60Aと前記画像データ61Aが揃った段階でテーブル作成を開始する(S601)。ステップ601によりテーブル作成が開始されると、前記テーブル作成部72は、実施の形態1に係る置換テーブルの作成方法と同様の方法により、前記画像データ60Aに基づいて、図26の参照符号62_1に示される部分のテーブルを作成する(S303〜S307)。次に、前記テーブル作成部72は、図26の参照符号62_2に示される部分のテーブルを作成し、置換テーブル62Aを作成する(S602)。具体的な方法は以下である。図26の参照符号62_1に示される部分のテーブルにおいて、置換前のデータの種類は6種類(3ビット)である。そのため、実施の形態1に示した方法により置換前のデータに対応する置換後のデータの値を割り当てると、“00000000”〜“00000101”の6種類の値が順次割り当てられる。これにより、置換後のデータは上位5ビットまでは変化しない値“00000”となり、下位3ビットが変化するデータとなる。すなわち、置換後のデータとして更に“00000110”と“00000111”を加えても下位ビットの変化は3ビットであるため、置換前のデータを2つ追加することが可能である。そこで、上記ステップ603では置換前のデータと置換後のデータを補充する処理が実行される。図26の例では、前記画像データ60Aの最後の画素データ“01000001”の最下位ビットの値に、1、−1、2、−2、3、−3・・・の順に加算した値を補充する。すなわち、置換前のデータとして“01000010”と“01000000”が登録され、それらに“00000110”と“00000111”が置換後のデータとして割り当てられる。これにより、前記参照符号62_1の部分のテーブルと新たに追加した参照符号62_2からなる置換テーブル62Aが作成される。
なお、当該補充する置換前のデータの決定方法は、上記の方法に限られず、伸張時に再度テーブル作成ができるように一定の法則に従っていれば、特に限定されるものではない。例えば、置換前のデータの平均値を求めて、当該平均値に1、−1、2、−2と順に加算していく法則としてもよい。また、置換前のデータの最大値、最小値を求めてその間の値を最大値側又は最小値側から割り当てていく法則としてもよい。
次に、前記テーブル作成部72は、次の圧縮対象の画像データ61Aを前記置換テーブル62Aに基づいて全て置換することができるか否かを確認する(S603)。ステップ603において、前記画像データ61Aの全ての画素データの置換が可能な場合には、置換テーブルの置換対象ビット幅を上位8ビットに決定し、ステップ605に移行する。一方、置換できない画素データが存在する場合には、前記置換対象ビット幅の値を1ビット減じて(S604)、再度置換テーブルの作成を行い(S303〜S307、S602)、全ての画素データの置換が可能となるまでテーブル作成を繰り返す。図26の場合、参照符号61A_1に示されるように、前記置換テーブル62Aによって置換することができない画素データが存在するため、ステップ604に移行し、上位7ビットを置換対象ビット幅とした置換テーブルの作成を実行する(S303〜S307、S602)。これにより作成された置換テーブルが図27に示される置換テーブル62Bである。このテーブルに関してもステップ603による処理において、前記画像データ61Bの全ての画素データの置換ができないことから、更に置換対象ビット幅を減ずることにより作成したテーブルが、図28に示される上位6ビットの置換テーブル62Cである。更に置換対象ビット幅を減ずることにより作成したテーブルが図29に示される上位5ビットの置換テーブル62Dである。前記置換テーブル62Dは、画像データ61Dの全ての画素データについて置換することが可能となるので、前記テーブル作成部72は、上位5ビットを前記置換対象ビット幅と決定する。そして、前記テーブル作成部72は、置換テーブル62Dの置換前のデータと置換後のデータを入れ替えた退避テーブルを作成し(S605)、前記置換テーブル62Dと前記退避テーブルの2つのテーブルを併せた置換テーブル64を作成してテーブル作成を終了する(S606)。なお、ステップ605の前記退避テーブルの作成は、図19におけるステップS309の作成方法と同様である。
図31は、前記置換テーブル64とそれに基づいて置換された前記画像データ61Aを表わした図である。
図31に示されるように、前記画像データ61Aの上位5ビットが前記置換テーブル64に基づいて変換されて、置換後の画像データ65が生成される。これにより、上位1ビットが16個の連続した同一データ“0”である前記画像データ61Aが、上位3ビットが16個の同一データ“000”である前記画像データ65に変換され、圧縮効率を上げられるデータに変化していることが分かる。
(置換後の圧縮データの生成)
次に置換処理後の圧縮データの生成処理の流れについて説明する。
図32は、実施の形態2に係る圧縮データの生成処理の流れを示す図である。
図32において、連続した画像データ#1〜#4が前記圧縮変換部170に入力され、図32に付された記号の意味は以下である。
元データ#1〜#4は、圧縮処理単位(16画素)毎の画像データであり、テーブル#0〜#4は置換テーブルである。ここでテーブル#0は初期テーブルであり、実施の形態1と同様である。
置換後データ#1’〜#4’は、元データ#1〜#4の夫々が置換されたデータである。
圧縮データ#1’’〜#4’’は、置換後データ#1’〜#4’を夫々圧縮した画像圧縮データである。
まず前記画像処理装置11等のバスマスタからのアクセス要求に際し、前記圧縮変換部170に元データ#1が入力されると、当該データは前記テーブル作成部72と前記データ遅延部71に入力される。このとき前記データ遅延部71は初期状態である為、何もデータを出力しない。次に元データ#2が前記圧縮変換部170に入力されると、当該元データ#2は前記テーブル作成部72と前記データ遅延部71に入力され、前記データ遅延部71は前記元データ#1を前記テーブル作成部72、前記置換処理部40、及び第2圧縮部43に与える。前記元データ#1が入力された前記置換処理部40は、予め設定されたテーブル#0を用いて置換処理を実行し、テーブル置換後データ#1’を生成し、前記第1圧縮部41に与える(S701)。なお、前記テーブル#0は実施の形態1と同様に、初期テーブルである。また、前記テーブル作成部72は、元データ#1と元データ#2が入力された後、前述の方法により置換テーブル#1を作成し、作成したテーブル#1を前記置換処理部40に与えて、前記置換処理部40に設定されている前記置換テーブル#0を前記置換テーブル#1に更新する(S702)。前記第2圧縮部43は前記入力された元データ#1の圧縮変換処理を実行し、当該圧縮したデータを前記セレクタ44に与える。次に、前記第1圧縮部41は、前記置換後データ#1’を実施の形態1と同様の方法により圧縮して、圧縮したデータを前記セレクタ44に与える。前記セレクタ44は、前記第1圧縮部41から与えられた圧縮データと前記第2圧縮部43から与えられた圧縮データのデータ量を比較し、データ量が小さい方の圧縮データを選択して圧縮データ#1’’として出力する(S703)。
次に前記圧縮変換部170に元データ#3が入力されると、前記元データ#2が前記置換テーブル作成部72、前記置換処理部40、及び前記第2圧縮部43に入力される。前記置換処理部40は、設定されたテーブル#1に基づいて前記元データ#2の置換処理を実行し、置換後データ#2’を生成して前記第1圧縮部41に入力する(S704)。また、前記テーブル作成部72は、元データ#2と元データ#3が入力された後、前述の方法により置換テーブル#2を作成し、作成したテーブル#2を前記置換処理部40に与えて、前記置換処理部40に設定されている前記置換テーブル#1を前記置換テーブル#2に更新する(S705)。前記第2圧縮部43は前記元データ#2の圧縮変換処理を実行し、当該圧縮したデータを前記セレクタ44に与える。次に、前記第1圧縮部71は、前記置換後データ#2’を実施の形態1と同様の方法により圧縮して、圧縮データを前記セレクタ44に与える。前記セレクタ44は、前記第1圧縮部41と前記第2圧縮部43によって夫々圧縮されたデータのデータ量を比較し、データ量が小さい方の圧縮データを選択し、圧縮データ#2’’として出力する(S706)。
以降元データ#3〜#4についても上記と同様の処理を実行することで、ストリームデータ等の連続する画像データについて順次圧縮データを生成することが可能となる。
図33は、実施の形態2に係る置換処理後の圧縮データのデータ形式を示した図である。
当該データ形式は実施の形態1に係る図4の参照符号(C)、図8の参照符号(C)、及び図9の参照符号(C)に示される形式のデータの先頭に3ビット分の置換処理の情報を表すビットを付加した形式である。前記置換処理の情報は、置換処理の有無の情報と置換対象ビット幅の情報を表わすものである。
図34は、前記置換処理の情報の一例を示した図である。
例えば、置換処理を行っていない圧縮データの場合には“000”をデータの先頭に付加し、上位8ビットの置換を行っている圧縮データの場合には“111”を先頭に付加する。
前記置換処理の情報の付加は、前記第1圧縮部41及び第2圧縮部43が圧縮データを出力する際に付加する。
図33に示されるデータは、図31に示す前記画像データ61Aの置換後圧縮データを表している。前記置換後圧縮データは、前記置換処理の情報を表わす3ビットの値と、前記ヘッダIDを表わす5ビットの値と、データ種別を表わす3ビットの値と、その連続長を表わす3ビットの値と、非圧縮データのビットの値によって表わされる一例である。ここで、前記置換処理の情報を表わすビットは“100(上位5ビットを置換)”である。また、上位3ビット“000”が16個連続している為、データ種別は“b’000”であり、連続長は“16”である。また、下位5ビット分の非圧縮ビットは80ビット(=(8−3)×16)である。したがって、前記画像データ201に対する置換後の圧縮データのデータ量は94ビットとなる。一方、前記画像データ201の置換処理前の圧縮データのデータ量は、上位1ビットをランレングス圧縮の対象とした場合、123ビット(=5+(8−1)×16+(1+4)×1)に前記置換処理の情報3ビットを加えた126ビットである。以上のことから、置換後圧縮データの方が置換処理前の圧縮データよりもデータ量が小さくなり、置換処理が有効となったことがわかる。ただし、図11に示す圧縮を行う場合、データ量が多少異なる場合があるが、傾向は変わらず置換処理が有効となる。
(置換処理後の圧縮データの伸長処理)
置換処理後の圧縮データの伸長処理について説明する。
実施の形態2に係る圧縮時の置換テーブルは、例えば図26〜図29に示したように圧縮対象の画像データ60Aと次の圧縮対象の画像データ61Aを参照して作成される。ここで、置換テーブル64そのものは圧縮対象の画像データ60Aの画素データから作成されるが、次の圧縮対象の画像データ61Aは前記置換テーブル64を作成する際の置換対象ビット幅を決定する為に利用されるに過ぎない。したがって、次の圧縮対象の画像データ61Aの伸張処理時の置換テーブルは、次の圧縮対象の画像データ61Aの圧縮データの先頭に付された前記置換処理の情報から特定される圧縮対象ビット幅の値と、先に伸張された前記画像データ60Aがあれば作成可能とされる。
図35は、実施の形態2に係るマイクロプロセッサ4の前記解凍部171の内部構成を示す図である。
前記解凍部171は、前記解凍部151の構成要素である前記テーブル作成部53に代えてテーブル作成部74を有する。ここでは、前記マイクロプロセッサ1の構成要素と同様のものには同一の参照符号を付し、その詳細な説明を省略する。
前記テーブル作成部74は、前記セレクタ52から出力される伸長された1圧縮単位の画像データと、前記伸長部50によって次に伸長される1圧縮単位の画像データの圧縮対象ビット幅の値とに基づいて、前記テーブル作成部72と同様の方法により置換テーブルを作成する。
これによれば、前記解凍部171は、図24に示す実施の形態1に係る伸長処理と同様のタイミングチャートにより伸長処理を行うことが可能となり、実施の形態1に係る前記解凍部151と同様の効果を奏する。
以上実施の形態2によれば、前記圧縮/解凍部30は置換対象の画像データを置換するための置換テーブルを作成する際に、置換対象の一つ前の画像データのみならず当該置換対象の画像データも考慮して、置換対象の画像データの全ての画素データが置換されるように置換テーブルを作成するから、より圧縮効率を上げることが可能になる。
図36は、一般的に圧縮効率が悪いと考えられる画像の一例を示す図である。
白(16進数表記で“FF”)及び黒(16進数表記で“00”)のように、値が大きく異なるデータが短い間隔で連続するデータを圧縮する場合、一般的に圧縮効率は悪くなる。しかしながら、前述した本実施の形態1及び2に係る圧縮変換処理を行えば、高い圧縮率を得ることが可能となる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、実施の形態1及び2では、前記記憶装置2にデータを格納する手前で圧縮を行うこと場合を説明したが、これに限られず、前記圧縮/解凍部14、30と前記圧縮/解凍判定部13の機能を有する装置を前記画像処理部11と前記バス17との間等に設置することも可能である。これによれば、当該装置が前記画像処理部11のデータ送信時に圧縮処理を行い、データ受信時に伸長処理を行うことで、バスの使用割合を減らすことが可能となる。
また、実施の形態1において、図16の参照符号(b)に示される部分の置換後データの割り当て方法は、前述した方法に限定されるものでなく、例えば、最大値“111111”から1ずつ減算した値を補充する方法でもよいし、置換前のデータの平均値に基づいて補充する方法でもよい。例えば、平均値に基づいて補充する方法の場合について以下説明する。図14の圧縮前の元データ200に基づいて置換テーブルを作成する場合、まず、当該元データ200の画素データの平均値を算出すると、10進数表記で“13.875”(=(14×11+13×4+16×1)/16)となることから、当該値を四捨五入した整数値“14”(2進表記:001110)を基準値とする。そして当該基準値の下位ビットを所定ビット数分だけ“0”とした値を初期値とし、当該初期値に順次1ずつ加算した値を置換後データとして割り当てる。例えば、前記所定ビット数は、図16の場合、置換対象となる置換前データ(3種類)を表現する為に必要なビット数(2ビット)であり、前記初期値は“001100”である。このとき、必要に応じて図18に示したように置換処理が可逆になるようにする。この方法によれば、置換処理によって置換された画素データの値が置換処理の行われない画素データの値と近い値になるため、置換処理の対象とならない画素データがあった場合においても、極端に圧縮効率が低下することはない。
更に、実施の形態1及び2では、16画素の画素データを含む画像データを扱う場合を例としたが、これに限られず、一つのシンボルを複数ビットで表わすコードデータにも適用することができる。例えば、音声データを扱う場合にも、本実施の形態に係る方法を適用することが可能である。
1、4 マイクロプロセッサ
2 記憶装置
3 表示装置
11 画像処理部
12 中央処理ユニット(CPU)
13 圧縮/解凍判定部
14、30 圧縮/解凍部
15 記憶装置制御部
16 表示装置制御部
17 バス
18 外部入出力インターフェース(I/O)部
19 メモリインターフェース部
31 解凍部
21 画像圧縮領域
22 画像非圧縮領域
141 上位1ビット圧縮部
142 上位2ビット圧縮部
143 上位3ビット圧縮部
144 上位4ビット圧縮部
145 上位5ビット圧縮部
146 上位6ビット圧縮部
147 上位7ビット圧縮部
148 上位8ビット圧縮部
149 圧縮データセレクタ
150、170 圧縮変換部
151、171 解凍部
40、51 置換処理部
41 第1圧縮部
42、53、72、74 テーブル作成部
43 第2圧縮部
44、52 セレクタ
50 伸長部
71 データ遅延部
200、201 圧縮前の元データ
60A〜60D 圧縮対象の画像データ(8ビット〜5ビット)
61A〜61D 次の圧縮対象の画像データ(8ビット〜5ビット)
62A〜62D、64 置換テーブル
62_1 テーブル
62_2、63 退避テーブル
65 置換後の画像データ

Claims (9)

  1. メモリアクセスに応答して外部メモリに対する画像データの書き込みおよび読み出しを制御するメモリインタフェースコントローラを備えたデータ処理装置であって、
    前記メモリインタフェースコントローラは、入力された所定の画素数を含む画像データを構成する画素データの上位ビットに対してランレングス圧縮変換処理を行って圧縮データを生成し、当該画素データの下位ビットの非圧縮データと前記上位ビットの前記圧縮データとを結合した画像圧縮データを生成するための処理を実行する圧縮変換部と、
    メモリから読み出されたランレングス圧縮変換済みのデータに対する伸張処理を行なう復元部と、を有し、
    前記圧縮変換部は、前記入力された画像データ内の各画素データ間における上位側ビットの変化が少なくなるように画素データの上位側ビットを置き換える置換処理部と、置き換えたデータに対してランレングス圧縮変換処理を行う圧縮部とを含む、データ処理装置。
  2. 前記置換処理部は、入力された前記画像データ内の上位側ビットが共通する画素データのデータ群を複数抽出し、抽出した複数のデータ群の画素データを上位側ビットの変化が少ない別のデータに置き換える処理を実行する、請求項1記載のデータ処理装置。
  3. 前記圧縮変換部は更に、置き換え前のデータと置き換え後のデータの対応を示した置換テーブルを生成するテーブル生成部を有し、
    前記置換処理部は、前記置換テーブルに基づいて前記置き換える処理を実行する、請求項2記載のデータ処理装置。
  4. 前記置換テーブルは第1テーブルと第2テーブルを含み、
    前記テーブル生成部は、入力された前記画像データ内の上位側n(nは1以上の整数)ビットが共通する画素データのデータ群を抽出し、当該抽出したデータ群の上位nビットを置換前データとし、前記共通する画素データ数が多い順に前記置換前データにnビットの置換後データを割り当てて、前記置換前データと前記置換後データとの対応を示すテーブルをnビットの前記第1テーブルとして作成し、当該第1テーブルの前記置換前データと前記置換後データを入れ替えたテーブルをnビットの前記第2テーブルとして作成する、請求項3記載のデータ処理装置。
  5. 前記テーブル生成部は、前記第1テーブルを作成する際、前記置換後データが前記置換前データと一致する場合には当該置換後データを別の値にする、請求項4記載のデータ処理装置。
  6. 前記上位側nビットのビット数nは切り換え可能とされ、
    前記テーブル生成部は、前記置換テーブルを作成する際、既にランレングス圧縮変換処理が行われた前記画像データの前記画像圧縮データに基づいて前記ビット数nの値を決定する、請求項4記載のデータ処理装置。
  7. 前記テーブル生成部は、入力された第1の画像データに基づいてi(iは2以上の整数)ビットの前記第1テーブルの候補のデータを生成すると共に、入力された第2の画像データ内の上位側iビットが共通する画素データのデータ群を複数抽出し、当該抽出した複数のデータ群の全てが前記候補のデータに一致するまでビット数iを順次小さくして前記候補のデータを更新し、一致した前記候補のデータを前記第1テーブルの前記置換前データとする、請求項4記載のデータ処理装置。
  8. 前記テーブル生成部は、前記第1テーブルを作成する際、前記置換前データの種類の数が2のべき乗でない場合には、前記置換前データの種類の数が2のべき乗になるまで前記置換前データの種類を追加する、請求項7記載のデータ処理装置。
  9. メモリアクセスに応答して外部メモリに対するデータの書き込みおよび読み出しを制御するメモリインタフェースコントローラを備えたデータ処理装置であって、
    前記メモリインタフェースコントローラは、入力されたストリームデータを構成する複数のコードデータの上位ビットに対してランレングス圧縮変換処理を行って圧縮データを生成し、当該コードデータの下位ビットの非圧縮データと前記上位ビットの前記圧縮データとを結合した圧縮コードデータを生成するための処理を、前記コードデータを所定数含むシンボルデータ毎に実行する圧縮変換部と、
    メモリから読み出されたランレングス圧縮変換済みのデータに対する伸張処理を行なう復元部と、を有し、
    前記圧縮変換部は、入力された前記ストリームデータ内の各コードデータ間における上位ビットの変化が少なくなるように前記コードデータを置き換える置換処理部と、置き換えたデータに対してランレングス圧縮変換処理を行う圧縮部を含む、データ処理装置。
JP2010057034A 2010-03-15 2010-03-15 データ処理装置 Withdrawn JP2011193192A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010057034A JP2011193192A (ja) 2010-03-15 2010-03-15 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010057034A JP2011193192A (ja) 2010-03-15 2010-03-15 データ処理装置

Publications (1)

Publication Number Publication Date
JP2011193192A true JP2011193192A (ja) 2011-09-29

Family

ID=44797672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010057034A Withdrawn JP2011193192A (ja) 2010-03-15 2010-03-15 データ処理装置

Country Status (1)

Country Link
JP (1) JP2011193192A (ja)

Similar Documents

Publication Publication Date Title
JP5069349B2 (ja) 格納およびバスバンド幅の要求を最小限に抑える効率的な画像圧縮方式
JP5214742B2 (ja) 予測に基づく画像処理
JP6703032B2 (ja) 後方互換性拡張画像フォーマット
KR20140028142A (ko) 비트 예산에 기초한 이미지 데이터의 선택적 무손실-손실 압축
GB2575436A (en) Guaranteed data compression
US20070237391A1 (en) Device and method for image compression and decompression
EP3588961B1 (en) Guaranteed data compression
GB2575122A (en) Guaranteed data compression
EP3886047A1 (en) Image data decompression
US20200007866A1 (en) Guaranteed Data Compression
US10897635B2 (en) Memory compression systems and methods
EP2843954B1 (en) Lossy color compression using adaptive quantization
JPWO2013008370A1 (ja) 画像圧縮装置、画像伸長装置および画像処理装置
EP3896656A1 (en) Image data compression
US20090067733A1 (en) Byte Representation for Enhanced Image Compression
US20140184627A1 (en) Progressive lossy memory compression
JP2011151572A (ja) 画像データ処理装置およびその動作方法
JP2016208356A (ja) 画像圧縮装置、画像圧縮方法、画像伸長装置および画像伸長方法
JP2011193192A (ja) データ処理装置
JP4100836B2 (ja) 画像処理装置
TW202135527A (zh) 編碼及解碼影像內容的方法及傳輸影像內容的系統
JP4521835B2 (ja) 画像処理装置
CN114584777A (zh) 数据压缩和打包
US8160377B2 (en) Image compression apparatus
US9154800B2 (en) Method and apparatus for a memory efficient approach for decoding progressive joint photographic experts group (JPEG) images

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130604