(57)【要約】【課題】ランレングス圧縮変換を適用して圧縮データのデータ精度の劣化を発生させることなく且つ、圧縮率を高めることを可能とするデータ処理装置を提供する。【解決手段】データ処理装置（１、４）は、メモリアクセスに応答してメモリ（２）にデータを書き込むとき、入力された画像データ内の各画素データ間における上位側ビットの変化が少なくなるように画素データの上位側ビットの置き換えを実行する。そして、前記データ処理装置は当該置き換えたデータに対してランレングス圧縮変換処理を行うことで圧縮データを生成し、当該画素データの下位側ビットの非圧縮データと前記上位側ビットの前記圧縮データとを結合した画像圧縮データを生成する。【選択図】図１
2011193192.tif 000002
【特許請求の範囲】
【請求項１】
メモリアクセスに応答して外部メモリに対する画像データの書き込みおよび読み出しを制御するメモリインタフェースコントローラを備えたデータ処理装置であって、
前記メモリインタフェースコントローラは、入力された所定の画素数を含む画像データを構成する画素データの上位ビットに対してランレングス圧縮変換処理を行って圧縮データを生成し、当該画素データの下位ビットの非圧縮データと前記上位ビットの前記圧縮データとを結合した画像圧縮データを生成するための処理を実行する圧縮変換部と、
メモリから読み出されたランレングス圧縮変換済みのデータに対する伸張処理を行なう復元部と、を有し、
前記圧縮変換部は、前記入力された画像データ内の各画素データ間における上位側ビットの変化が少なくなるように画素データの上位側ビットを置き換える置換処理部と、置き換えたデータに対してランレングス圧縮変換処理を行う圧縮部とを含む、データ処理装置。
【請求項２】
前記置換処理部は、入力された前記画像データ内の上位側ビットが共通する画素データのデータ群を複数抽出し、抽出した複数のデータ群の画素データを上位側ビットの変化が少ない別のデータに置き換える処理を実行する、請求項１記載のデータ処理装置。
【請求項３】
前記圧縮変換部は更に、置き換え前のデータと置き換え後のデータの対応を示した置換テーブルを生成するテーブル生成部を有し、
前記置換処理部は、前記置換テーブルに基づいて前記置き換える処理を実行する、請求項２記載のデータ処理装置。
【請求項４】
前記置換テーブルは第１テーブルと第２テーブルを含み、
前記テーブル生成部は、入力された前記画像データ内の上位側ｎ（ｎは１以上の整数）ビットが共通する画素データのデータ群を抽出し、当該抽出したデータ群の上位ｎビットを置換前データとし、前記共通する画素データ数が多い順に前記置換前データにｎビットの置換後データを割り当てて、前記置換前データと前記置換後データとの対応を示すテーブルをｎビットの前記第１テーブルとして作成し、当該第１テーブルの前記置換前データと前記置換後データを入れ替えたテーブルをｎビットの前記第２テーブルとして作成する、請求項３記載のデータ処理装置。
【請求項５】
前記テーブル生成部は、前記第１テーブルを作成する際、前記置換後データが前記置換前データと一致する場合には当該置換後データを別の値にする、請求項４記載のデータ処理装置。
【請求項６】
前記上位側ｎビットのビット数ｎは切り換え可能とされ、
前記テーブル生成部は、前記置換テーブルを作成する際、既にランレングス圧縮変換処理が行われた前記画像データの前記画像圧縮データに基づいて前記ビット数ｎの値を決定する、請求項４記載のデータ処理装置。
【請求項７】
前記テーブル生成部は、入力された第１の画像データに基づいてｉ（ｉは２以上の整数）ビットの前記第１テーブルの候補のデータを生成すると共に、入力された第２の画像データ内の上位側ｉビットが共通する画素データのデータ群を複数抽出し、当該抽出した複数のデータ群の全てが前記候補のデータに一致するまでビット数ｉを順次小さくして前記候補のデータを更新し、一致した前記候補のデータを前記第１テーブルの前記置換前データとする、請求項４記載のデータ処理装置。
【請求項８】
前記テーブル生成部は、前記第１テーブルを作成する際、前記置換前データの種類の数が２のべき乗でない場合には、前記置換前データの種類の数が２のべき乗になるまで前記置換前データの種類を追加する、請求項７記載のデータ処理装置。
【請求項９】
メモリアクセスに応答して外部メモリに対するデータの書き込みおよび読み出しを制御するメモリインタフェースコントローラを備えたデータ処理装置であって、
前記メモリインタフェースコントローラは、入力されたストリームデータを構成する複数のコードデータの上位ビットに対してランレングス圧縮変換処理を行って圧縮データを生成し、当該コードデータの下位ビットの非圧縮データと前記上位ビットの前記圧縮データとを結合した圧縮コードデータを生成するための処理を、前記コードデータを所定数含むシンボルデータ毎に実行する圧縮変換部と、
メモリから読み出されたランレングス圧縮変換済みのデータに対する伸張処理を行なう復元部と、を有し、
前記圧縮変換部は、入力された前記ストリームデータ内の各コードデータ間における上位ビットの変化が少なくなるように前記コードデータを置き換える置換処理部と、置き換えたデータに対してランレングス圧縮変換処理を行う圧縮部を含む、データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関し、特にデータをランレングス圧縮変換するデータ処理装置に係り、例えば外部メモリを利用して画像データ扱う表示システムに適用して有効な技術に関する。
【背景技術】
【０００２】
最近のオーディオビデオ（ＡＶ）機器、携帯電話やパーソナルコンピュータ（ＰＣ）等では、年々処理データ量が増大している。その結果、システムＬＳＩ内部のデータ処理のためのデータプロセッサや画像プロセッサの消費電力が増大する一方、システムＬＳＩ外部の外部メモリのメモリ容量およびアクセス時の消費電力も増大すると言う問題が顕著となっている。
【０００３】
一方、下記特許文献１には、デジタルスチルカメラのフレームメモリの容量を削減可能なメモリ制御回路が記載されている。サンプリング比率が４：２：２の輝度信号（Ｙ）と色差信号（Ｂ−Ｙ）と色差信号（Ｒ−Ｙ）の一般的なデータ形式は、４：１：１と輝度信号（Ｙ）はそのままで色差信号（Ｂ−Ｙ、Ｒ−Ｙ）のみダウンサンプリング（データ間引き）されて、フレームメモリに書き込まれる。フレームメモリの読み出し時には、色差信号（Ｂ−Ｙ、Ｒ−Ｙ）のみアップサンプリング（データ補間）されて、４：２：２のデータ形式が表示装置に供給され、フレームメモリの容量を削減できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２１０５０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明者等は本発明に先立って、携帯電話等のバッテリー駆動のモバイル機器に搭載可能でモバイル機器のＬＣＤ表示デバイスの画面に動画像を表示可能なシステムＬＳＩの研究・開発に従事した。
【０００６】
この研究・開発の経過で、本発明者等は本発明に先立って、上記特許文献１に記載されたデータ削減技術に関して検討を行った。本発明者等による検討の結果、上記特許文献１に記載のデータ削減技術によれば、フレームメモリの容量の削減は可能であるが、ダウンサンプリングとアップサンプリングとによるフレームメモリからの読み出しデータは最初のデータ精度に復元できず、データ精度の劣化が生じると言う問題が明とされた。
【０００７】
本発明は、以上のような本発明に先立った本発明者等による検討の結果、なされたものである。
【０００８】
本発明の目的は、ランレングス圧縮変換を適用して、圧縮データのデータ精度の劣化を発生させることなく且つ、圧縮率を高めることを可能とするデータ処理装置を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、データ処理装置は、メモリアクセスに応答してメモリにデータを書き込むとき、入力された画像データ内の各画素データ間における上位側ビットの変化が少なくなるように画素データの上位側ビットの置き換えを実行する。そして、前記データ処理装置は当該置き換えたデータに対してランレングス圧縮変換処理を行うことで圧縮データを生成し、当該画素データの下位側ビットの非圧縮データと前記上位側ビットの前記圧縮データとを結合した画像圧縮データを生成する。
【発明の効果】
【００１２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１３】
すなわち、本データ処理装置によれば、ランレングス圧縮変換を適用して、圧縮データのデータ精度の劣化を発生させることなく且つ、圧縮率を高めることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】図１は実施の形態１に係るマイクロプロセッサ１の構成を示す図である。
【図２】図２は記憶装置２に保存されるデータのアドレスマップを示す図である。
【図３】図３は圧縮変換部１５０の内部構成を示す図である。
【図４】図４は圧縮処理単位の画像データに対する圧縮変換処理の説明図である。
【図５】図５は、実施の形態１における圧縮処理の流れを示す図である。
【図６】図６は、図４の圧縮処理を行った圧縮データに付加されるヘッダの一例を示す図である。
【図７】図７は、非圧縮データの所定の最下位ビットを削除する場合の説明図である。
【図８】図８は、圧縮処理単位の別の画像データに対する上位４ビットの圧縮変換処理の説明図である。
【図９】図９は、図８に示した画像データの上位２ビットの圧縮変換処理の説明図である。
【図１０】図１０は、１枚の画像における画像データの値の変化を示す説明図である。
【図１１】図１１は、圧縮変換部１５０における圧縮部４１、４３の構成図である。
【図１２】図１２は、前記圧縮部４１、４３の圧縮処理によって圧縮された画像データの１圧縮単位で選択された最高圧縮率の圧縮対象ビット幅の変化を示す図である。
【図１３】図１３は、図４に示した圧縮データを伸長するための伸長処理の流れを示す図である。
【図１４】図１４は、ストリームデータ等の連続した２つの画像データの一例を示す図である。
【図１５】図１５は、図１４に示される上位６ビットのデータ値が同一である画素データの数を表わした図である。
【図１６】図１６は、図１５の情報を元に作成された画素データの上位ビットに対する置換テーブルを示した図である。
【図１７】図１７は、可逆変換に対応しない置換テーブルの一例である。
【図１８】図１８は、図１７に示された課題を解決した置換テーブルを示す図である。
【図１９】図１９は、置換テーブル作成時の処理の流れを示す図である。
【図２０】図２０は、置換テーブルによって上位側ビットの値が置き換えられた画像データの一例である。
【図２１】図２１は、置換処理と圧縮変換処理を踏まえた圧縮データの生成処理の流れを示した図である。
【図２２】図２２は、置換処理後に圧縮処理が行われたデータのデータ形式を示した図である。
【図２３】図２３は、解凍部１５１の内部構成を示す図である。
【図２４】図２４は、置換後の圧縮データの伸張処理の流れを示した図である。
【図２５】図２５は、実施の形態２に係るマイクロプロセッサ４の圧縮変換部１７０の内部構成を示す図である。
【図２６】図２６は、上位８ビットを置換対象ビットとした置換テーブルを示す図である。
【図２７】図２７は、上位７ビットを置換対象ビットとした置換テーブルを示す図である。
【図２８】図２８は、上位６ビットを置換対象ビットとした置換テーブルを示す図である。
【図２９】図２９は、上位５ビットを置換対象ビットとした置換テーブルを示す図である。
【図３０】図３０は、テーブル作成部７２による置換テーブルの作成処理の流れを示す図である。
【図３１】図３１は、置換テーブル６４とそれによって置換された画像データ６１Ａを表わした図である。
【図３２】図３２は、実施の形態２係る圧縮データの生成処理の流れを示した図である。
【図３３】図３３は、実施の形態２に係る置換処理後の圧縮データのデータ形式を示した図である。
【図３４】図３４は、置換処理の情報の一例を示した図である。
【図３５】図３５は、実施の形態２に係るマイクロプロセッサ４の解凍部１７１の内部構成を示す図である。
【図３６】図３６は、一般的に圧縮効率が悪いと考えられる画像の一例を示す図である。
【発明を実施するための形態】
【００１５】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１６】
〔１〕（画像データの置換・圧縮を行うデータ処理装置  図１、図３、図２３）
本発明の代表的な実施の形態に係るデータ処理装置（１、４）は、メモリアクセスに応答して外部メモリ（２）に対する画像データの書き込みおよび読み出しを制御するメモリインタフェースコントローラ（１９）を備える。前記メモリインタフェースコントローラは、入力された所定の画素数を含む画像データを構成する画素データの上位ビットに対してランレングス圧縮変換処理を行って圧縮データを生成し、当該画素データの下位ビットの非圧縮データと前記上位ビットの前記圧縮データとを結合した画像圧縮データを生成するための処理を実行する圧縮変換部（１５０、１７０）を有する。また前記メモリインタフェースコントローラは、メモリから読み出されたランレングス圧縮変換済みのデータに対する伸張処理を行なう復元部（１５１、１７１）を有する。前記圧縮変換部は、前記入力された画像データ内の各画素データ間における上位側ビットの変化が少なくなるように画素データの上位側ビットを置き換える置換処理部（４０）と、置き換えたデータに対してランレングス圧縮変換処理を行う圧縮部（４１、４３）とを含む。これによれば、ランレングス圧縮変換によりデータの圧縮を行うからデータ精度の劣化させることはない。また、圧縮対象の上位側ビットのデータを変化が少なくなるように置き換えたデータに対しランレングス圧縮変換を行うから圧縮率を高めることが可能となる。すなわち、画像データの上位側ビットのデータの変化が小さくなるように上位側ビットのデータ値を置き換えることでランレングス圧縮変換によってデータ量が圧縮できる上位側ビットのビット数が増える。これにより、非圧縮データである下位側ビットのビット数が減るから前記画像圧縮データ全体のデータ量を削減することができる。
【００１７】
〔２〕（置換処理の内容、図１６）
項１のデータ処理装置において、前記置換処理部は入力された前記画像データ内の上位側ビットが共通する画素データのデータ群を複数抽出し、抽出した複数のデータ群の画素データを上位側ビットの変化が少ない別のデータに置き換える処理を実行する。これによれば、好適な置き換え処理が可能となる。
【００１８】
〔３〕（テーブルを用いた置換処理、図１６）
項１又は項２のデータ処理装置において、前記圧縮変換部は更に、置き換え前のデータと置き換え後のデータの対応を示した置換テーブルを生成するテーブル生成部（４２、５３、７２、７４）を有し、前記置換処理部は、前記置換テーブルに基づいて前記置き換える処理を実行する。これによれば、前記置き換え処理が容易となる。
【００１９】
〔４〕（テーブル作成方法、図１６）
項３のデータ処理装置において、前記置換テーブルは第１テーブル（図１６の（ａ）、（ｂ）、６２Ｄ）と第２テーブル（図１６の（ｃ）、６４）を含み、前記テーブル生成部は入力された前記画像データ内の上位側ｎ（ｎは１以上の整数）ビットが共通する画素データのデータ群を抽出する。そして、前記テーブル生成部は当該抽出したデータ群の上位ｎビットを置換前データとし、前記共通する画素データ数が多い順に前記置換前データにｎビットの置換後データを割り当てて、前記置換前データと前記置換後データとの対応を示すテーブルをｎビットの前記第１テーブルとして作成する。また、前記テーブル生成部は当該第１テーブルの前記置換前データと前記置換後データを入れ替えたテーブルをｎビットの前記第２テーブルとして作成する。これによれば、上位側ビットのデータ種類の数に応じて置換後データを決定するから、置換後データの夫々の上位側ビットが共通の値となり易くなる。
【００２０】
〔５〕（置き換え値の被り防止  図１８）
項４のデータ処理装置において、前記テーブル生成部は前記第１テーブルを作成する際、前記置換後データが前記置換前データと一致する場合には当該置換後データを別の値にする。これによれば、前記置換後データが前記置換前データと一致する場合でも、一対一対応の変換が可能なテーブルを作成することができる。
【００２１】
〔６〕（置き換え時のビット数を圧縮結果から決定  図３）
項４又は５のデータ処理装置において、前記上位側ｎビットのビット数ｎは切り換え可能とされ、前記テーブル生成部は前記置換テーブルを作成する際、既にランレングス圧縮変換処理が行われた前記画像データの前記画像圧縮データに基づいて前記ビット数ｎの値を決定する。これによれば、圧縮変換処理の圧縮率がより上がる確率が高くなる。
【００２２】
〔７〕（処理対象データと次の処理対象データに基づいたテーブル作成  図２６〜図２９）
項４又は５のデータ処理装置において、前記テーブル生成部（７２、７４）は入力された第１の画像データに基づいてｉ（ｉは２以上の整数）ビットの前記第１テーブルの候補のデータを生成する。また、入力された第２の画像データ内の上位側ｉビットが共通する画素データのデータ群を複数抽出し、当該抽出した複数のデータ群の全てが前記候補のデータに一致するまでビット数ｉを順次小さくして前記候補のデータを更新し、一致した前記候補のデータを前記第１テーブルの前記置換前データとする。これによれば、前記第２の画像データ内の全ての画素データの上位側ビットの置き換えが可能となるように前記第１テーブルを生成するから、前記第２の画像データの圧縮率をより高めることができる。
【００２３】
〔８〕（置換前データ値の種類を２のべき乗とするテーブル  図２６）
項４乃至７の何れか１項記載のデータ処理装置において、前記テーブル生成部は、前記第１テーブルを作成する際、前記置換前データの種類の数が２のべき乗でない場合には、前記置換前データの種類の数が２のべき乗になるまで前記置換前データの種類を追加する、請求項７記載のデータ処理装置。これによれば、上位側ビットの置き換えの候補となる画素データの種類が増えるから、置き換え処理が実行される確率が高くなる。
【００２４】
〔９〕（コードデータの置換・圧縮を行うデータ処理装置  図１、図３、図２３）
本発明の別の実施の形態に係るデータ処理装置（１、４）は、メモリアクセスに応答して外部メモリ（２）に対するデータの書き込みおよび読み出しを制御するメモリインタフェースコントローラ（１９）を備える。前記メモリインタフェースコントローラは、入力されたストリームデータを構成する複数のコードデータの上位ビットに対してランレングス圧縮変換処理を行って圧縮データを生成し、当該コードデータの下位ビットの非圧縮データと前記上位ビットの前記圧縮データとを結合した圧縮コードデータを生成するための処理を、前記コードデータを所定数含むシンボルデータ毎に実行する圧縮変換部（１５０、１７０）を有する。更に前記メモリインタフェースコントローラは、メモリから読み出されたランレングス圧縮変換済みのデータに対する伸張処理を行なう復元部（１５１、１７１）を有する。前記圧縮変換部は、入力された前記ストリームデータ内の各コードデータ間における上位ビットの変化が少なくなるように前記コードデータを置き換える置換処理部（４０）と、置き換えたデータに対してランレングス圧縮変換処理を行う圧縮部（４１、４３）を含む。これによれば、前記ストリームデータに対しても項１と同様の作用効果を奏する。
【００２５】
２．実施の形態の詳細
≪実施の形態１≫
（マイクロプロセッサの構成）
図１は、本発明の実施の形態１に係るマイクロプロセッサ１の構成を示す図である。
【００２６】
図１に示すマイクロプロセッサ１は、画像処理部１１、中央処理装置（ＣＰＵ）１２、圧縮／解凍判定部１３、圧縮／解凍部１４、記憶装置制御部１５、表示装置制御部１６、バス１７、外部入出力インターフェース（Ｉ／Ｏ）部１８によって構成されている。前記マイクロプロセッサ１は、前記記憶装置制御部１５を介して記憶装置２と接続される一方、前記表示装置制御部１６を介して表示部３と接続される。
【００２７】
前記画像処理部１１は、前記ＣＰＵ１２からの指示を受けて、例えば動画像データのデコードもしくはエンコード等の画像データの処理を実行する。更に前記画像処理部１１は、前記表示装置３の表示画面サイズに適合するために画像の拡大、縮小、及び回転を実行する一方、複数面画像の重ね合わせ処理やフィルタ処理も実行する。
【００２８】
前記圧縮／解凍判定部１３、前記圧縮／解凍部１４、及び前記記憶装置制御部１５は、前記画像処理装置１１や前記ＣＰＵ１２、前記表示装置制御部１６等のバスマスタからのアクセス要求に基づいて前記記憶装置２に対するアクセスを制御するメモリインターフェース部を構成する。
【００２９】
前記圧縮／解凍部１４は、データの圧縮変換処理を実行する圧縮変換部１５０と、圧縮されたデータの伸長処理を実行する解凍部１５１を有し、前記圧縮／解凍判定部１３は、前記バスマスタが前記記憶装置２をアクセスする際のアクセス先を判定する。前記記憶装置制御部１５は、前記圧縮／解凍判定部１３及び前記圧縮／解凍部１４からの前記記憶装置２に対するアクセス要求に基づいて、前記記憶装置２に対する書き込み及び読み出しを制御する。
【００３０】
（記憶装置のアドレスマップ）
図２は、前記記憶装置２に保存されるデータのアドレスマップを示す図である。
【００３１】
図２のアドレスマップに示すように前記記憶装置２のアドレス空間は、画像圧縮領域２１と非圧縮領域２２とに分割される。この分割の境界は、固定値として圧縮／解凍判定部１３内部に設定可能であり、また可変値としてＣＰＵ１２から圧縮／解凍判定部１３に設定することが可能である。また図２では２つの領域に分割されているが、２つの領域以上の複数の領域に分割されることも可能である。前記画像処理部１１、前記表示装置３、及び前記ＣＰＵ１２による前記記憶装置２の各領域に対するアクセスについて以下に記す。
【００３２】
前記画像処理部１１のアクセス先が前記記憶装置２の前記画像圧縮領域２１である場合には、前記記憶装置制御部１５と前記圧縮／解凍部１４と前記圧縮／解凍判定部１３と前記バス１７とを経由して、前記記憶装置２と前記画像処理部１１との間で処理に必要なデータの読み出し動作または書き込み動作が実行される。その際、前記圧縮／解凍部１４が前記記憶装置２にデータを書き込む場合には画像圧縮を実行する一方、前記圧縮／解凍部１４が前記記憶装置２からデータを読み出す場合には画像伸長を実行する。前記画像処理部１１のアクセス先が前記記憶装置２の前記非圧縮領域２２である場合には、前記記憶装置２と前記記憶装置制御部１５と前記圧縮／解凍判定部１３と前記バス１７とを経由して前記記憶装置２と前記画像処理部１１との間で処理に必要なデータの読み出し動作または書き込み動作が実行される。その際には、読み出しまたは書き込みの転送データが前記圧縮／解東部１４を通過しないので、データの画像圧縮と画像伸長とは実行されない。
【００３３】
画像を表示するために、表示装置制御部１６が前記記憶装置２の前記画像圧縮領域２１からデータを読み出す場合には、前記記憶装置制御部１５と前記圧縮／解凍部１４と前記圧縮／解凍判定部１３と前記バス１７を経由して、前記表示装置制御部１６が前記記憶装置２の前記画像圧縮領域２１から必要なデータの読み出しを実行し、前記表示装置３へ出力する。前記表示装置制御部１６が前記記憶装置２の前記非圧縮領域２２からデータを読み出す場合には、前記記憶装置制御部１５と前記圧縮／解凍判定部１３と前記バス１７を経由して、前記表示装置制御部１６が前記記憶装置２の前記非圧縮領域２２から必要なデータの読み出しを実行し、前記表示装置３へ出力する。
【００３４】
前記ＣＰＵ１２が前記記憶装置２に対しプログラムやデータ等の読み出しアクセスを実行する場合には、前記記憶装置２の前記非圧縮領域２２にプログラムやデータを格納しておき、前記圧縮／解凍部１４を介することなく、前記非圧縮領域２２へのデータの直接の読み出し動作が実行される。また、前記ＣＰＵ１２が前記記憶装置２に対しプログラムやデータ等の書き込みアクセスを実行する場合も同様に、前記ＣＰＵ１２が前記圧縮／解凍部１４を介することなく、前記非圧縮領域２２へのデータの直接の書き込み動作が実行される。
【００３５】
ここで、前記マイクロプロセッサ１が動画コンテンツをデコードして前記表示装置３に表示する場合を例に、前記マイクロプロセッサ１による前記記憶装置２に対するアクセス動作の概要について説明する。
【００３６】
前記外部入出力インターフェース（Ｉ／Ｏ）部１８から動画コンテンツデータが供給されると、前記ＣＰＵ１２が前記記憶装置２の非圧縮領域２２への書き込みを実行する一方、前記ＣＰＵ１２は前記画像処理部１１にデコード指示の命令を与える。当該命令を受けた前記画像処理部１１は動画コンテンツデータを前記記憶装置２の非圧縮領域２２から読み出して、動画デコード処理を実行する。その後、前記画像処理部１１は、前記記憶装置２の画像圧縮領域２１に対するデコードした画像データの書き込み動作を実行する。画像の拡大、縮小、回転、及び複数面の画像の重ね合せやフィルタ処理等の画像処理が必要な場合には、前記画像処理部１１が前記記憶装置２の前記画像圧縮領域２１からの画像データの読み出し動作と画像処理を実行した後に、前記表示装置３へ出力する画像データの前記記憶装置２の前記画像圧縮領域２１への書き込み動作が実行される。
【００３７】
前記画像圧縮領域２１への書き込み処理が実行されるとき、前記圧縮／解凍部１４において画像データの圧縮処理が実行される。詳細は後述するが、当該圧縮処理は以下である。前記圧縮／解凍部１４の前記圧縮変換部１５０が、前記記憶装置２へ書き込まれる画像データの画素データの上位側ビットをランレングス圧縮変換（Ｒｕｎ  Ｌｅｎｇｔｈ  Ｅｎｃｏｄｉｎｇ）して上位ビットの圧縮データを生成する。このとき、前記圧縮変換部１５０は、後述する置換テーブルを用いて当該上位側ビットの変化が少なくなるように圧縮対象の上位ビットのデータ値の置き換えを行い、当該置き換えを行ったデータのランレングス圧縮変換を実行する。そして、前記圧縮変換部１５０が当該画素データの下位側ビットの非圧縮データとランレングス圧縮による上位ビットの圧縮データとを結合して画像圧縮データを生成する。
【００３８】
また、前記記憶装置２の前記画像圧縮領域２１からの読み出し動作が実行される際には、前記圧縮／解凍部１４において圧縮された画像データを伸長する伸長処理が実行される。詳細は後述するが、前記圧縮／解凍部１４の前記解凍部１５１において伸長処理が実行され、前記記憶装置２から読み出される前記画像圧縮データが可逆伸長可能とされる。
【００３９】
次に、前記表示装置制御部１６は、前記表示装置３に動画コンテンツを表示させるため、前記記憶装置２の前記画像圧縮領域２１から画像データを読み出して前記圧縮／解凍部１４において画像データを解凍した後、解凍した画像データを前記表示装置３へ転送する。そして、前記表示装置が転送された画像データに基づいて動画コンテンツを表示する。なお、前記表示装置３が、圧縮されたデータを伸長する解凍部３１を備えている場合には、前記画像装置制御部１６は前記圧縮／解凍判定部１３に対して圧縮データを直接前記バス１７へ出力するように要求し、圧縮データを前記表示装置３へ直接転送することも可能である。これにより、前記表示装置３と前記マイクロプロセッサ１との間の入出力信号線のデータ量が削減され、消費電力を削減することが可能になる。
【００４０】
（画像データの圧縮処理）
図３は前記圧縮変換部１５０の内部構成を示す図である。
【００４１】
前記圧縮変換部１５０は、置換処理部４０と、圧縮部４１、４３と、テーブル作成部４２と、置換処理部４０と、セレクタ４４を有する。前記テーブル作成部４２は後述する置換テーブルを作成し、前記置換処理部４０は前記置換テーブルに基づいて画素データの上位側ビットのデータ値を置き換える処理を実行する。前記圧縮部４１、４３は、前記置換処理部４０により前記上位ビットが置き換えられた画像データのランレングス圧縮変換を実行する第１圧縮部４１と、置き換えが行われていない画像データのランレングス圧縮変換を実行する第２圧縮部４３である。前記セレクタ４４は、前記第１圧縮部４１により生成された圧縮データと前記第２圧縮部４３により生成された圧縮データとを比較して、データ量の少ない方を画像圧縮データとして出力する。
【００４２】
前述したように前記圧縮変換部１５０は、大きく分けて２つの処理を実行する。すなわち、画像データの上位側ビットのデータ値の置き換えを行う置換処理と、置き換え前後の画像データのランレングス圧縮変換を行う圧縮変換処理の２つの処理である。
【００４３】
初めに画像データの圧縮変換処理について詳細に説明する。
【００４４】
以下に示す圧縮変換処理の説明では、理解を容易にするため、前記置換処理が行われていない画像データの圧縮変換を行う場合を例に説明する。また以下の説明では、画像データはＲＧＢ形式のデジタルカラー画像データであり、１画素が２４ビット（すなわち、Ｒ／Ｇ／Ｂ：各８ビット）で構成され、１６画素を圧縮単位として圧縮する場合を例として説明する。ただし、これに限定するものではなく、ＲＧＢ５６５の形式、ＹＵＶ４４４の形式、ＹＵＶ４２２の形式、ＹＵＶの４２０形式、またはそれ以外の画像形式を利用することも可能である。
【００４５】
図４は圧縮処理単位の画像データに対する圧縮変換処理の説明図である。
【００４６】
図４の参照符号（Ａ）は、前記マイクロプロセッサ１の前記画像処理部１１によって処理される画像データの１要素の変化を示す図である。
【００４７】
当該画像データの１要素は、例えば、ＲＧＢ形式の画像データのＲ（赤）の値である。
【００４８】
特に自然画データの画像データは、隣接する複数の画素のデジタル値が同じ値になることは少ないが、近いデジタル値である場合が多い。そこで、図４の参照符号（Ａ）において上位２ビットに着目すると、はじめの連続した７画素の上位２ビットが同じ２進数の値“１０”（以下、「ｂ’１０」と表記する）であり、次に連続する４画素の上位２ビットが同じ値ｂ’０１であり、その次に連続する５画素の上位２ビットが同じ値ｂ’００となっている。
【００４９】
図４の参照符号（Ｂ）は、参照符号（Ａ）に示した画像データの上位２ビットｂｉｔ７、ｂｉｔ６と下位６ビットｂｉｔ５〜ｂｉｔ０の計８ビットで構成されるデジタルカラー画像データの１６画素の圧縮処理の１単位を示す図である。
【００５０】
図４の参照符号（Ｂ）において、１画素目から７画素目までの画素データの上位２ビットｂｉｔ７、ｂｉｔ６の値はｂ’１０で同一であること、８画素目から１１画素目までの画素データの上位２ビットの値はｂ’０１で同一であること、及び１２画素目から１６画素目までの画素データの上位２ビットの値はｂ’００で同一であること、が示されている。本実施の形態における圧縮処理では、連続した上位ビットに対してランレングス圧縮変換を行い、上位ビットの圧縮データと下位ビットの非圧縮データと結合する。尚、ランレングス圧縮は、可逆圧縮に分類されるデータ圧縮アルゴリズムの１つであって、連続したデータをそのデータ１個と連続長とで表現することによって圧縮が可能となるものである。
【００５１】
図５を用いて、本発明の実施の形態における圧縮処理の流れを詳細に説明する。
【００５２】
図５は、本発明の実施の形態における圧縮処理の流れを示す図である。
【００５３】
図５に示すように、まず、前記マイクロプロセッサ１の前記圧縮／解凍部１４に画像データが入力されて圧縮処理が開始される（Ｓ１０１）。そして画像データが分離される（Ｓ１０２）。例えば、ＲＧＢ形式であれば、Ｒ、Ｇ、Ｂの各要素に分離され、圧縮対象ビット（上位ビット）と非圧縮ビット（下位ビット）とに分離される。図４の参照符号（Ｂ）の場合であれば、圧縮対象ビットは最上位ビットから２ビット（ｂｉｔ７、ｂｉｔ６）に設定され、非圧縮ビットは残りの６ビット（ｂｉｔ５〜ｂｉｔ０）に設定される。
【００５４】
次に、前記圧縮／解凍部１４は、分離された圧縮対象ビットに対してランレングス圧縮を実行することにより、当該圧縮対象ビットをデータ種別とその連続長とに変換する（Ｓ１０３）。
【００５５】
図４の参照符号（Ｃ）は、図４の参照符号（Ｂ）に示される１６画素の圧縮単位に対して上位２ビットを圧縮対象ビットとしてランレングス圧縮を行い、更に非圧縮ビットとヘッダとを結合した場合の画像圧縮データを示す図である。
【００５６】
前記画像圧縮データは、図４の参照符号（Ｃ）に示されるように、圧縮された上位ビットのデータと、非圧縮の下位ビットのデータと、データの種別を表わすヘッダとから構成される。
【００５７】
ランレングス圧縮によって、同じ値がどれだけの長さで連続しているかが表現され、連続する同じ値を以降「データ種別」と呼び、連続する長さを以降「連続長」と呼ぶ。図４の参照符号（Ｃ）の例では、上位ビットｂｉｔ７、ｂｉｔ６のデータ種別毎に圧縮対象ビットがデータ種別とその連続長とに変換されたことを示している。すなわち、１圧縮単位における画素データの上位ビットｂｉｔ７、ｂｉｔ６が、データ種別（ｂ’１０）と連続長（７）、データ種別（ｂ’０１）と連続長（４）、及びデータ種別（ｂ’００）と連続長（５）、によって表わされるデータに圧縮されたことを示している。
【００５８】
次に、前記圧縮／解凍部１４は、連続長の最大値に基づいて連続長を表すビット幅（以下、「連続長ビット幅」と称する。）を決定する。図４の参照符号（Ｃ）の場合には、連続長の最大値が“７”であるため、連続長ビット幅を“３ビット”とする。この際、連続長はデータ種別の連続個数を示すので、連続長の値は１以上である。そこで、連続長を「連続長−１」の値で表現することで３ビットでの表現範囲を１０進数の“１”〜“８”（以下、「ｄ’１〜ｄ’８」と表記する。）に割り当てるものとする。ここで、仮に連続長の最大値が９個であれば、連続長ビット幅を４ビットとして、ｄ’１〜ｄ’１６の広い表現範囲が可能となる。
【００５９】
次に、図５のフローのステップ１０５にて、前記圧縮／解凍部１４は、ランレングス圧縮で圧縮された上位ビットの圧縮データと、圧縮されていない下位ビットの非圧縮ビットとを結合し、圧縮されたことを示すヘッダを付加する。
【００６０】
図６は、図４の参照符号（Ｂ）の圧縮単位を圧縮した際に付加されるヘッダの一例を示す図である。
【００６１】
ヘッダＩＤにより、画像圧縮データが圧縮データを含むデータであるか、又は非圧縮データであるかを判別可能とする。また圧縮データを含むデータである場合には、当該画像圧縮データの前記連続長ビット幅と圧縮対象の上位ビットのビット幅（以下、「圧縮対象ビット幅」と称する。）を判別可能とする。図６において、連続長ビット幅の値は、圧縮単位における取り得る最大の連続長の値を示す。例えば、図４の参照符号（Ｂ）では、１６画素単位の圧縮処理であるため、連続長の取りうる最大値はｄ’１〜ｄ’１６となる。連続長ビット幅が１の場合には、連続長の最大値が２しか表現できないために圧縮効率が悪くなる。従って、図６の例では、連続長ビット幅は“１”を除外した“２〜４”によって表現する。圧縮対象ビット幅は、圧縮対象の上位ビットのビット幅を表わす。図４の参照符号（Ｂ）の場合、１画素は８ビットのデータであるから圧縮対象となり得る最大のビット幅は８ビットである。したがって、図６の例では、圧縮対象ビット幅は“１〜８”によって表現する。図６ではヘッダＩＤの種類は３１個であるため、ヘッダのビット幅は５ビットになる。図４の参照符号（Ｃ）の場合、圧縮対象ビット幅が２ビットであり、連続長ビット幅が３ビットであるから、ヘッダＩＤは“４”となる。なお、連続長ビット幅“１”が除外された例を図６に示したが、連続長ビット幅１を追加することも可能である。その場合、ヘッダのビット幅を６ビットとして、圧縮対象ビット幅１〜８の夫々に対する連続長ビット幅を“１〜４”とすることも可能である。また、図６に示したようにヘッダＩＤのビット幅５ビットの場合に空きとなっているヘッダＩＤの値“２４〜２９”の６箇所に、割り当て可能な個数だけ割り当ることも可能である。
【００６２】
次に、前記圧縮／解凍部１４は、１圧縮処理単位の圧縮データのデータ量と１圧縮処理単位の非圧縮のデータ量とを比較する（Ｓ１０７）。ステップＳ１０７にて非圧縮データに比較して圧縮データのデータ量が少ないと判定された場合には、圧縮データを出力して（Ｓ１０８）、処理を終了する（Ｓ１１１）。ステップＳ１０７にて非圧縮データに比較して圧縮データのデータ量が大きいと判定された場合には、圧縮を行わずに、ステップＳ１０６で圧縮前の圧縮／解凍部１４に入力されたデータにヘッダを付加して、非圧縮データを出力し（Ｓ１１０）、処理を終了する（Ｓ１０９）。このとき、図６に示したように非圧縮データを表わすヘッダＩＤ“３１”が付加される。
【００６３】
図４の参照符号（Ｃ）から理解されるように圧縮データのデータ量＝ヘッダサイズ＋（８−圧縮対象ビット幅）×圧縮単位ブロック数＋（圧縮対象ビット幅＋連続長ビット幅）×データ種別数となるのに対して、図４の参照符号（Ｂ）から理解されるように非圧縮データのデータ量＝ヘッダサイズ＋８×圧縮単位ブロック数となる。
【００６４】
従って、図４の画像データの例では、圧縮データのデータ量＝５＋（８−２）×１６＋（２＋３）×３＝１１６ビットとなって、非圧縮データのデータ量＝５＋８×１６＝１３３ビットとなり、圧縮データの方が非圧縮データよりもデータ量が小さくなり、データ圧縮が有効となったことになる。
【００６５】
なお上記の圧縮処理において、非圧縮を選択した場合に、ヘッダ分のデータの増加を回避することも可能である。例えば、図４の場合、ヘッダＩＤのビット数が５ビットと比較的大きいので、非圧縮データのビット数を削減することが望ましい。そこで、図５のフローのステップ１０７にて非圧縮選択を行い、ステップ１１０で非圧縮データを出力する際に、非圧縮データからヘッダ付加した分のデータ量を削除して出力する圧縮処理することも可能とする。
【００６６】
図７は、非圧縮データの所定の最下位ビットを削除する場合の説明図である。
【００６７】
例えば図４の場合、ヘッダＩＤが５ビットであることから、図７に示すように予め決めた最下位ビットを５ビットだけ削除する。このとき画像圧縮データには、図６に示すように“３０”（非圧縮（削除あり））のヘッダＩＤが付加される。このように最下位ビットを削除した場合に画像劣化は生ずるが、非圧縮が選択されるのは画像データの変化量が大きい場合であるため、当該画像劣化は目視で判断し難く、非圧縮時のビット数の増加を回避する方法として有効である。なお、前記ヘッダＩＤの値“３１”を非圧縮とするか、前記ヘッダＩＤの値“３０”を非圧縮（削除あり）とするかは、予め前記ＣＰＵ１２から前記圧縮／解凍部１４に選択情報を設定することで選択することも可能である。
【００６８】
以上画像データが図４の場合を一例として圧縮処理の説明を行ったが、次にデータ変化が図４よりも小さい場合について説明する。
【００６９】
隣接する画素間のデータの変化が小さい場合には、圧縮対象ビットを多くしたほうが、ランレングス圧縮変換によるデータの圧縮率を高くすることができ、画像圧縮データのデータ量をより小さくすることができる。この場合において、上位４ビットを圧縮対象ビットとしたときと、上位２ビットを圧縮対象ビットとしたときについて分けて説明する。
【００７０】
はじめに上位４ビットを圧縮対象ビットとした場合について説明する。
【００７１】
図８は、圧縮処理単位の別の画像データに対する上位４ビットの圧縮変換処理の説明図である。
【００７２】
図８の参照符号（Ａ）は、前記マイクロプロセッサ１の前記画像処理部１１によって処理される別の画像データの１要素の変化の一例を示す図である。
【００７３】
図８の参照符号（Ｂ）は、図８の参照符号（Ａ）に示した画像データの上位４ビットｂｉｔ７〜ｂｉｔ４と下位４ビットｂｉｔ３〜ｂｉｔ０の計８ビットで構成されるデジタルカラー画像データの１６画素の圧縮処理の１単位を示す図である。
【００７４】
図８の参照符号（Ｃ）は、図８の参照符号（Ｂ）に示される上位４ビットを圧縮対象ビットとしてランレングス圧縮を行い、更に非圧縮ビットとヘッダとを結合した場合の画像圧縮データを示す図である。
【００７５】
図８の参照符号（Ｂ）及び（Ｃ）に示すように上位４ビットを圧縮対象ビットとした場合、上位４ビットのデータは、データ種別（ｂ’１０１１）及び連続長（７）と、データ種別（ｂ’１０１０）及び連続長（４）と、データ種別（ｂ’１００１）及び連続長（５）のデータに圧縮される。当該圧縮データのデータ量は、９０ビット（＝５＋（８−４）×１６＋（４＋３）×３）である。
【００７６】
次に、上位２ビットを圧縮対象ビットとした場合について説明する。
【００７７】
図９は、図８と同一の画像データに対する上位２ビットの圧縮変換処理の説明図である。
【００７８】
図９の参照符号（Ａ）は、前記マイクロプロセッサ１の前記画像処理部１１によって処理される別の画像データの１要素の変化の一例を示す図である。
【００７９】
図９の参照符号（Ｂ）は、図９の参照符号（Ａ）に示した画像データの上位２ビットと下位６ビットの計８ビットで構成されるデジタルカラー画像データの１６画素の圧縮単位を示す図である。
【００８０】
図９の参照符号（Ｃ）は、図９の参照符号（Ｂ）に示される上位２ビットを圧縮対象ビットとしてランレングス圧縮を行い、更に非圧縮ビットとヘッダとを結合した場合の画像圧縮データを示す図である。
【００８１】
図９の参照符号（Ｂ）及び（Ｃ）に示すように上位２ビットを圧縮対象ビットとした場合、上位２ビットのデータは、データ種別（ｂ’１０）及び連続長（１６）のデータに圧縮される。当該圧縮データのデータ量は、１０７ビット（＝５＋（８−２）×１６＋（２＋４）×１）となる。
【００８２】
以上の結果から、圧縮対象ビット数を大きくすることでデータの圧縮率が向上することが理解される。しかし、圧縮結果は圧縮する画像データに依存するものである。例えば圧縮対象ビット数を４ビットとした場合でも、データ種別数が１５個、連続長ビット幅が２となる場合では、圧縮データのデータ量は１５９ビット（＝５＋（８−４）×１６＋（４＋２）×１５）となり、非圧縮データのデータ量１３３ビットよりも大きな値となってしまうので、無条件に圧縮対象ビット数を増大することはできない。この問題は、以下に説明する実施の形態によって解消されることが可能である。
【００８３】
すなわち、画像データは、１枚の画像の中でも図４のように値の変化が激しい場合もあれば、図８及び図９のように変化が緩やかな場合もある。
【００８４】
図１０は、１枚の画像の中で画像データの値の変化が激しい部分と画像データの値の変化が緩やかな部分とを含む様子を示す図である。例えば、図１０における人の顔部分の画像では、目や口などの情報が多くデータの変化量も大きくなる傾向がある。一方、図１０における空の部分の画像では同じ色が続くことが多く、データ変化量も少ない傾向がある。これら１枚の画像中であっても変化量の多い部分と少ない部分が混在して変化していく特徴から、図１０に示すように圧縮処理を一定画素数（例えば、１６画素）の圧縮単位で圧縮処理を実行する際に、圧縮対象ビット幅を圧縮単位毎に変化させる処理を実行することで、圧縮率の低下を防ぐことを可能とする。
【００８５】
図１１は、前記圧縮変換部１５０における前記圧縮部４１、４３の構成図である。
【００８６】
１圧縮単位の画像データを圧縮するために前記圧縮部４１、４３は、上位ｎビットの圧縮を実行する上位ｎビット圧縮部１４１〜１４８（ｎは１以上の整数）を８個含むことによって、入力された画像データの圧縮を８個の上位ｎビット圧縮部１４１〜１４８で同時に実行する。圧縮データセレクタ１４９には前記上位ｎビット圧縮部１４１〜１４８の出力信号が並列に供給され、圧縮データ量の最も少ない上位ｎビット圧縮部の出力信号を選択して出力するものである。
【００８７】
図１２は、図１１に示した前記圧縮部４１、４３の圧縮処理によって圧縮された画像データの各圧縮単位で選択された最高圧縮率の圧縮対象ビット幅の変化を示す図である。
【００８８】
図１１に示した圧縮部４１、４３による圧縮処理では、８個の圧縮対象ビット幅の中から最高圧縮率の圧縮対象ビット幅を選択するものである。なお、図１１では８個の上位ｎビット圧縮部１４１〜１４８によって同時に圧縮処理を実行する構成を示したが、それに限定されるものでなく、上位ｎビットが可変の上位ｎビット圧縮部を準備して、同一入力圧縮対象データに対して上位ｎビットを１〜８の範囲で変化させて圧縮処理を実行して、最高圧縮率の上位ｎビットを選択することも可能である。
【００８９】
（圧縮データの伸長処理）
圧縮された画像データを伸長する伸長処理の流れについて図１３を用いて詳細に説明する。
【００９０】
以下に示す画像データの伸長処理の説明では、前述した圧縮処理と同様に、理解を容易にするため、伸長対象の前記画像圧縮データについての置き換え処理が行われていない場合を例に説明する。また、画像データの伸長処理は図４で示された圧縮データを伸長する場合を一例として説明する。なお、圧縮単位画素数とヘッダ情報は、圧縮処理時のフローと伸長処理時のフローにおいて共通の情報を用いるとする。
【００９１】
図１３は、図４に示した圧縮データを伸長するための伸長処理の流れを示す図である。
【００９２】
まず、前記解凍部１５１により伸長処理が開始されると（Ｓ２０１）、画像圧縮データの先頭からデータが読み出される。次に前記解凍部１５１は、読み出された画像圧縮データの先頭から例えば５ビットのヘッダの情報（ヘッダＩＤ）を取得して、当該ヘッダＩＤを解析する（Ｓ２０２）。ステップＳ２０２でのヘッダＩＤの解析の結果、データ圧縮ありと判定された場合には、前記解凍部１５１は、ヘッダＩＤに後続するデータ種別のデータと連続長のデータを読み出す（Ｓ２０３）。具体的には、図４の参照符号（Ｃ）の場合、ヘッダＩＤが“４”であることから、連続長ビット幅は３ビットであり、圧縮対象ビット幅は２ビットであると判別される。そこで、前記解凍部１５１は、図４の参照符号（Ｃ）に示したヘッダに後続する圧縮データから２ビットのデータ種別のデータと３ビットの連続長のデータを読み出す。
【００９３】
次にステップ２０４では、図４の参照符号（Ｃ）に示した圧縮データに後続する非圧縮データから６ビット（＝８ビット−２ビット（データ種別））の非圧縮ビットを順次に読み出し、上位ビット側にデータ種別を付加することによって１画素分の８ビット伸長データが順次に生成される。そして、前記解凍部１５１は伸長した画素数の判定を行う（Ｓ２０５）。このとき、伸長画素数＜連続長と判定された場合には、ステップＳ２０４に移行し、１画素分の非圧縮ビットの読み出し処理が反復され、伸長画素数＝連続長と判定された場合には、ステップ２０６に移行する。前記解凍部１５１は、伸長された画素データの総数である総伸長画素数の判定を実行する（Ｓ２０６）。このとき、総伸長画素数＜圧縮単位画素数（図４の参照符号（Ｃ）の場合、圧縮単位画素数は１６画素）であれば、ステップＳ２０３に戻り、前記解凍部１５１は、当該読み出した画像圧縮データにおける後続するデータ種別のデータと連続長のデータの取得を実行する。またステップＳ２０６において、総伸長画素数＝圧縮単位画素数と判定された場合には、伸長処理が終了される（Ｓ２０７）。
【００９４】
一方、ステップ２０２のヘッダ情報の解析の結果、「データ圧縮無し」と判定された場合には、前記解凍部１５１は、圧縮単位画素数分の画像圧縮データを読み出し、ヘッダＩＤを除去して出力し（Ｓ２０８）、伸長処理を終了する（Ｓ２０７）。ここで、ステップ２０２のヘッダＩＤの解析の結果、非圧縮（削除あり）を示す値“３０”の値のヘッダＩＤが判定された場合には、前記解析部１４１は、削除された所定の最下位ビットに、“０”もしく“１”のデータを補充して伸長処理を実行することも可能である。この場合には、可逆圧縮ではない不可逆圧縮／不可逆伸長となり得る。
【００９５】
以上の方法によるランレングス圧縮変換と伸長処理によれば前記マイクロプロセッサ１と前記記憶装置２との間のデータ量の削減が可能となり、前記記憶装置２のアクセス時における消費電力の削減も可能となる。
【００９６】
（置換テーブルを用いたデータの置換処理）
次に画像データの置換処理について説明する。
【００９７】
前述のように本実施の形態では画像データに連続性があることに着目し、１圧縮単位の画像データにおける各画素データの上位ビットに対しランレングス圧縮変換を行ってデータの圧縮を行う。しかしながら、ノイズが載っている画像等のように高周波成分が含まれる画像データの場合、連続性はあるものの連続長が短くなりランレングス圧縮変換による圧縮率が低下する場合がある。また、連続する画素データであっても、上位側ビットの値が“１”又は“０”に変化する境界値では、画素データ間の連続性はあるものの上位側のビットの連続長が短くなり圧縮効率が低下する。例えば、“０００１１１”から“００１０００”に変化する場合である。そこで、本実施の形態に係るマイクロプロセッサ１では、圧縮対象となる画素データ間の上位ビットの変化が小さくなるように上位側ビットのデータ値を置き換える処理を行う。当該置換処理は、上位側ビットのデータ値を置き換えるためのテーブル（以下、「置換テーブル」と称する。）に基づいて実行される。初めに置換テーブルの詳細について説明する。
【００９８】
図１４は、ストリームデータ等の連続した２つの画像データの一例を示す図である。
【００９９】
図１４において、１圧縮単位（１６画素）における１個目の圧縮前の元データ２００と２個目の圧縮前の元データ２０１の画素データが２進数で表記されている。また図１４には、夫々の画素データの上位６ビットの値も併せて表示している。
【０１００】
図１５は、図１４に示される上位６ビットのデータ値が同一である画素データの数（以下、カウント値、とも称する。）を表わした図である。
【０１０１】
図１４に示されるように前記画像データ２００内の画素データの上位６ビットの種類は３つである。図１５の参照符号（ａ）に示される部分には、前記画像データ２００に係る３種類の上位６ビットの値がカウント値と共に表示されている。図１５の参照符号（ａ）において、上位６ビットの値が“００１１１０”である画素データは１１個あり、上位６ビットの値が“００１１０１”である画素データは４個あり、上位６ビットの値が“０１００００”である画素データは１個あることが示されている。一方、図１５の参照符号（ｂ）に示される部分には、前記画像データ２０１に係る３種類の上位６ビットの値がカウント値と共に表示されている。図１５の参照符号（ｂ）において、上位６ビットの値が“００１１１０”である画素データは８個あり、上位６ビットの値が“００１１０１”である画素データは６個あり、上位６ビットの値が“０１００００”である画素データは２個あることが示されている。
【０１０２】
図１６は、図１５の情報を元に作成された画素データの上位ビットに対する前記置換テーブルを示した図である。
【０１０３】
前記置換テーブルは、置換前のデータ値と置換後のデータ値が対応する形式で生成される。図１６において参照符号（ａ）に示される部分は図１５の参照符号（ａ）に示された前記画像データ２００の上位ビットの種類とそのカウント値の情報であり、カウント値の大きいものから順に並べられている。また図１６の参照符号（ｂ）に示される部分は、図１６の参照符号（ａ）に示される値の上位ビットの変化が少なくなるように当該値を置換するために割り当てた値である。図１６では、上位ビットの変化が少なくなるようにするための置き換えの方法の一例として、カウント値の大きい上位ビットの値から順に値を割り当てる方法を示している。ここでは、置換前のデータ“００１１１０”に対し、２進数表記で“００００００”を置換後のデータとして割り当て、また置換前のデータ“００１１０１”に対し“０００００１”を置換後のデータとして割り当て、更に置換前のデータ“０１００００”に対し“００００１０”を置換後のデータとして割り当てている。図１６の参照符号（ｃ）に示される部分は、図１６の参照符号（ａ）及び（ｂ）からなるテーブルによる置換を可逆にする為のテーブルである。例えば、置換テーブルによって画素データ“００１１１０”が“００００００”に変換された場合に、置換テーブルにより変換されなかった画素データ“００００００”が混在すると、“００００００”のデータが置換テーブルにより変換されたデータであるか、変換されていないデータであるかを区別することができず、画像データの変換を元に戻すことができない。そこで、データの置換処理による変換が可逆となるように、図１６の参照符号（ａ）に示される置換前のデータと図１６の参照符号（ｂ）に示される置換後のデータを入れ替えたテーブル（以下、「退避テーブル」という。）が、図１６の参照符号（ｃ）に示される部分に作成される。具体的には、図１６の参照符号（ａ）における“００１１１０”を図１６の参照符号（ｂ）における“００００００”に変換したことを受け、図１６の参照符号（ｃ）の部分に置換前のデータ“００００００”を置換後のデータ“００１１１０”に変換するテーブルが作成される。他のデータも同様であり置換前のデータ“０００００１”を置換後のデータ“００１１０１”に変換し、置換前のデータ“００００１０”を置換後のデータ“０１００００”に変換するテーブルが作成される。
【０１０４】
しかしながら、上記のように前記退避テーブルを作成しても問題が生じる場合がある。例えば、置換後のデータが置換前のデータと一致する場合である。
【０１０５】
図１７は可逆変換に対応しない置換テーブルの一例である。
【０１０６】
図１７の示す前記置換テーブルにおいて、図１６における置換前のデータ“００１１０１”は置換後データ“０００００１”に割り当てられ、置換前のデータ“０００００１”は置換後データ“００００１０”に割り当てられている。このとき、前記退避テーブルを上述した方法でそのまま作成すると、置換前のデータ“００１１０１”を置換後のデータ“０００００１”に割り当てるテーブルと、前記退避テーブルにおける置換前のデータ“００００１０”を“０００００１”に割り当てるテーブルが重なってしまい、置換後のデータから置換前のデータに戻すときにどちらの値に戻せばよいのかを判断することが出来ない。そこで、当該問題を解決するため以下の方法により前記置換テーブルを作成する。
【０１０７】
図１８は、図１７に示された課題を解決した置換テーブルを示す図である。
【０１０８】
図１６の参照符号（ｂ）に示される置換後のデータ値の割り当てを行う際に、図１６の参照符号（ａ）に示される置換前のデータ値と割り当てた置換後のデータ値とが一致する場合には、当該置換前のデータに対応する置換後のデータに、当該置換前のデータと同一の値を先に割り当てる。その後、まだ割り当てていない残りの置換前のデータに対して、上記の図１６の参照符号（ｂ）及び（ｃ）に示される処理を実行する。例えば、図１７に示されるように、置換前のデータ“０００００１”と、置換前のデータ“００１１０１”に対応する置換後のデータ“０００００１”が一致するとき、図１８に示すように置換前のデータ“０００００１”に割り当てる置換後のデータを“０００００１”として先に割り当てることを行う。その後、置換前のデータ“００１１１０”に置換後のデータとして“００００００”を割り当て、次に置換前のデータ“００１１０１”に置換後のデータとして“００００１０”を割り当てる。そして、前記退避テーブルの作成を実行し、置換前のデータ“００００００”を“００１１１０”に、置換前のデータ“００００１０”を“００１１０１”に割り当てることにより、図１８に示す置換テーブルが作成される。以上の方法によれば可逆変換に対応した置換テーブルの作成が可能とされる。
【０１０９】
次に置換テーブル作成の処理の流れについて図１９を用いて詳細に説明する。
【０１１０】
図１９は、置換テーブル作成時の処理の流れを示す図である。
【０１１１】
図１９において、まず、前記圧縮変換部１５０の前記テーブル作成部４２において前記置換テーブル作成の処理が実行されると（Ｓ３０１）、前記置換テーブルを作成する上位側ビットの対象ビット幅（以下、「置換対象ビット幅」と称する。）が決定される（Ｓ３０２）。例えば、図１５の場合、置換対象ビット幅は上位６ビットである。当該置換対象ビット幅の値は予め設定された固定値でもよいし、後述する方法により可変とされてもよい。次に、前記テーブル作成部４２は、入力された画像データのうち１画素の画素データについて、前記置換対象ビット幅に該当するビットの値が既存のテーブルに存在するか否かを判別する（Ｓ３０３）。例えば、前記画像データ２００が入力された場合、１番目の画素データ“００１１１００１”の上位側６ビットのデータ値“００１１１０”が既存のテーブルの置換前のデータとして登録されているか否かを判別する。ステップ３０３において、当該画素データの対象ビットの値が既存テーブルに存在していれば、既存の置換テーブルにおける当該存在する置換前データに対応するカウント値に“１”を加算する（Ｓ３０４）。一方、既存テーブルに当該画素データの対象ビットの値が存在していなければ、前記置換テーブルの置換前データに当該対象ビット幅の値を登録するとともに、カウント値に“１”をセットする（Ｓ３０５）。そして、前記テーブル作成部４２は、圧縮処理単位分の全ての画素データについてステップ３０３〜３０５の処理が完了したか否かを判別する（Ｓ３０６）。例えば図１３の画像データ２００の場合、１〜１６番目の全ての画素データについて上記の処理（ステップ３０３〜３０６）が完了したか否かを判別する。ステップ３０６において圧縮処理単位分の全ての画素数の処理が完了していなければ、ステップ３０３に戻り次の画素の画素データについて上記の処理を実行する（Ｓ３０３〜Ｓ３０６）。一方ステップ３０６において圧縮処理単位分の全ての画素データについてステップ３０３〜３０５の処理が完了している場合には、前記テーブル作成部４２は、当該作成した置換テーブルのカウント値でソートし、カウント値の大きい順に置換前データが上位にくるように前記置換テーブルの並び替えを行う（Ｓ３０７）。以上の処理により、図１６の参照符号（ａ）に示される部分が作成される。
【０１１２】
次に前記テーブル生成部４２は、前記置換テーブルの置換後データの割り当て処理を実行する（Ｓ３０８）。このとき、図１８に示すように置換後データの値が可逆になるように設定される。これにより、図１６の参照符号（ｂ）に示される部分が作成される。そして、前記テーブル生成部４２は、前述の方法により前記退避テーブルを作成し（Ｓ３０９）、置換テーブルの作成を終了する（Ｓ３１０）。
【０１１３】
図２０は、置換テーブルによって上位側ビットの値が置き換えられた画像データの一例である。
【０１１４】
図２０には、図１３の前記画像データ２００に基づいて作成された置換テーブル（図１６に示す置換テーブル）によって上位６ビットが変換された前記画像データ２０１が示されている。図１６に示される置換テーブルは上位６ビットを置き換えるテーブルであるため、下位２ビットは置換対象外である。図２０に示されるように、置換前の前記画像データ２０１は上位１ビットのみが１６個連続する同一値“０”であるのに対し、置換後のデータは上位４ビットが１６個連続する同一値“００００”になることがわかる。
【０１１５】
（置換処理後の圧縮変換処理）
次に前記置換処理と前記圧縮変換処理を踏まえた圧縮データの生成処理の流れについて説明する。
【０１１６】
図２１は、置換処理と圧縮変換処理を踏まえた圧縮データの生成処理の流れを示した図である。
【０１１７】
図２１に付された記号の意味は以下である。
【０１１８】
元データ＃１〜＃４は、圧縮処理単位（１６画素）毎の画像データであり、テーブル＃０〜＃４は置換テーブルである。ここでテーブル＃０は初期テーブルであり、予め前記テーブル作成部４２及び前記置換処理部４０に格納されたテーブルである。例えば、連続する画像データの圧縮処理を行う際に、最初の画像データに対する置換処理を行うために用いるテーブルである。なお、当該初期テーブルは、元データをテーブル変換しない、例えば“０”を“０”に変換するテーブルであってもよい。
【０１１９】
置換後データ＃１’〜＃４’は、元データ＃１〜＃４の夫々が置換されたデータである。
【０１２０】
圧縮データ＃１’’〜＃４’’は、置換後データ＃１’〜＃４’を夫々圧縮した画像圧縮データである。
【０１２１】
図２１を用いて処理の流れを説明する。
【０１２２】
まず前記画像処理装置１１等のバスマスタからのアクセス要求に際し前記圧縮変換部１５０に元データ＃１が入力されると、前記置換処理部４０は、内部に保持しているテーブル＃０に基づいて元データ＃１の置換処理を実行し、生成した置換後データ＃１’を前記第１圧縮部４１に与える（Ｓ４０１）。このとき、元データ＃１は前記テーブル作成部４２にも入力される。前記テーブル作成部４２は、入力された元データ＃１に基づいて前述した方法により、置換テーブル＃１を作成する。そして、前記テーブル作成部４２は、ステップ４０１の後、前記置換処理部４０に前記テーブル＃１を与え、前記置換処理部４０に保持されているテーブル＃０をテーブル＃１に更新する（Ｓ４０２）。また、前記第２圧縮部４３にも元データ＃１がそのまま入力され、前記第２圧縮部４３は入力されたデータの圧縮変換処理を実行し、当該圧縮したデータを前記セレクタ４４に与える。
【０１２３】
ステップ４０１において、置換後データ＃１’がすべて前記第１圧縮部４１に入力されると、前記第一圧縮部４１は圧縮変換処理を実行し、圧縮したデータを前記セレクタ４４に与え、前記セレクタ４４は、前記第１圧縮部４１と前記第２圧縮部４３において圧縮されたデータのデータ量を比較し、データ量が小さい方の圧縮データを選択して画像圧縮データ＃１’’として出力する（Ｓ４０３）。このとき前記第１圧縮部４１は置換後データ＃１’の圧縮データに係る圧縮対象ビット幅の値を前記テーブル作成部４２に与える（Ｓ４０４）。
【０１２４】
次に前記圧縮変換部１５０に元データ＃２が入力されると、前記置換処理部４０は、ステップ４０２において更新されたテーブル＃１に基づいて元データ＃２の置換処理を実行し、生成した置換後データ＃２’を前記第１圧縮部４１に与える（Ｓ４０５）。このとき、元データ＃２は前記テーブル作成部４２にも入力される。前記テーブル作成部４２は、入力された元データ＃２に基づいて前述した方法により、置換テーブル＃２を作成する。このとき、前記テーブル作成部４２は、ステップ４０４において前記第１圧縮部４１から与えられた前記圧縮対象ビット幅の値に基づいて、前記置換テーブルの置換対象ビット幅の値を決定し、前記置換テーブルを作成する。具体的には、前記第１圧縮部４１が置換後データ＃１’を圧縮したときの圧縮対象ビット幅の値に対して所定の値を加算したビット幅を前記置換対象ビット幅と決定して、それに基づいて前記テーブル作成が行われる。例えば、置換後データ＃１’の圧縮のデータに係る圧縮対象ビット幅の値が２ビットであった場合には、その値に２ビットを加算した値である４ビットを前記置換対象ビット幅として、前記置換テーブル＃２が作成される。ここで決定される置換対象ビット幅の値は、圧縮データの伸長を行うときに生成できる値であれば特に制限はなく、圧縮対象ビット幅に３ビット加算した値でもよいし、圧縮対象ビット幅と同一の値でもよい。なお、前記置換対象ビット幅の値は、前記圧縮対象ビットによらず固定の値でもよい。
【０１２５】
そして、前記テーブル作成部４２は、ステップ４０５の後、前記置換処理部４０に作成したテーブル＃２を与え、前記置換処理部４０に保持されているテーブル＃１をテーブル＃２に更新する（Ｓ４０６）。また、前記第２圧縮部４３にも元データ＃１がそのまま入力され、前記第２圧縮部４３は入力されたデータの圧縮変換処理を実行し、当該圧縮したデータを前記セレクタ４４に与える。
【０１２６】
ステップ４０５において、置換後データ＃２’がすべて前記第１圧縮部４１に入力されると、前記第１圧縮部４１は圧縮変換処理を実行し、圧縮したデータを前記セレクタ４４に与え、前記セレクタ４４は、前記第１圧縮部４１と前記第２圧縮部４３において圧縮されたデータのデータ量を比較し、データ量が小さい方の圧縮データを選択して画像圧縮データ＃２’’として出力する（Ｓ４０７）。このとき前記第１圧縮部４１は置換後データ＃２’の圧縮データに係る圧縮対象ビット幅の値を前記テーブル作成部４２に与える（Ｓ４０８）。
【０１２７】
以降元データ＃３〜＃４についても上記と同様に、一つ前の画像データに基づいて作成された置換テーブルにより置換処理が実行され、その後圧縮変換処理が実行されることで、ストリームデータ等の連続する画像データについて順次圧縮データを生成することが可能となる。
【０１２８】
図２２は、置換処理後に圧縮処理が行われたデータのデータ形式を示した図である。
【０１２９】
データ形式は前述した図４の参照符号（Ｃ）、図８の参照符号（Ｃ）、及び図９の参照符号（Ｃ）に示した形式のデータの先頭に１ビット分の置換処理の有無を表すビットを付加した形式である。図２２に示されるデータは、図２０の場合において、前記画像データ２０１の置換処理後の圧縮データ（以下、置換後圧縮データ、とも称する。）を表している。
【０１３０】
図２２に示すように、前記画像データ２０１の置換後圧縮データは、置換処理の有無表わす１ビットの値と、前記ヘッダＩＤを表わす５ビットの値と、データ種別を表わす４ビットの値と、その連続長を表わす４ビットの値と、非圧縮データのビットの値によって表わされる。ここで、置換の有無を表すビットは“１（置換処理あり）”である。また、上位４ビット“００００”が１６個連続している為、データ種別は“ｂ’００００”であり、連続長は“１６”である。更に下位４ビット分の非圧縮ビットは６４ビット（＝（８−４）×１６）である。したがって、前記画像データ２０１の置換後圧縮データのデータ量は７８ビットとなる。一方、前記画像データ２０１の置換処理前の圧縮データのデータ量は、上位１ビットをランレングス圧縮の対象とした場合、前述の計算式により算出した１２２ビット（＝５＋（８−１）×１６＋（１＋４）×１）に置換の有無を表すビット（１ビット）を加えた１２３ビットとなる。以上のことから、置換後圧縮データの方が置換処理前の圧縮データよりもデータ量が小さくなり、置換処理が有効となったことがわかる。特に当該置換処理によって、画像データにおける画像データ間の上位ビットの値の変化が小さくなったことでランレングス圧縮変換が適用される上位ビット数が増加し、非圧縮データとなる下位ビット数が減少したことがデータ量の減少に有効に作用している。ただし、図１１に示す圧縮を行う場合、データ量が多少異なる場合があるが、傾向は変わらない。
【０１３１】
（置換後の圧縮データの伸長処理）
置換後の圧縮データの伸張処理について説明する。
【０１３２】
図２３は、解凍部１５１の内部構成を示す図である。
【０１３３】
前記解凍部１５１は、伸長部５０、テーブル作成部５３、置換処理部５１、及びセレクタ５２を有する。前記伸長部５０は、前記記憶装置制御部１５を介して前記記憶部２に格納された圧縮データを受け取り、前述した方法により、当該圧縮データの伸長処理を行う。前記テーブル作成部５３は、前記伸長処理が行われた伸長データと元の画像データに基づいて置換テーブルを作成し、前記置換処理部５１は、前記置換テーブルに基づいて伸長データに対し圧縮時と逆の置換処理を実行し、置換後の伸長データを生成する。前記セレクタ５２は前記置換後の伸長データと、置換前の伸長データとを入力し、前記伸長部５０から与えられる前記ヘッダＩＤに基づいて、当該入力した伸長データの何れかを元の画素データとして出力する。
【０１３４】
前記解凍部１５１における置換後圧縮データの伸張処理について図２４を用いて詳細に説明する。
【０１３５】
図２４は置換後圧縮データの伸張処理の流れを示した図である。
【０１３６】
図２４において、図２１によって圧縮された前記圧縮データ＃１’’〜＃４’’を伸長する場合が一例として示されている。まず、連続する画像圧縮データの先頭のデータである前記圧縮データ＃１’’が前記記憶装置部２から読み出され、前記記憶装置制御部１５を介して前記伸張部５０に入力されると、前記伸張部５０が前述した方法により、伸張データ＃１’を生成する（Ｓ５０１）。このとき、前記伸長部５０は、前記圧縮データ＃１’’の先頭に付された置換処理の有無の情報を前記セレクタ５２に与え、前記圧縮データ＃１’’の前記圧縮対象ビット幅の情報を前記テーブル作成部４２に与える（Ｓ５０２）。生成された伸長データ＃１’は、前記置換処理部５１と前記セレクタ５２に入力される。
【０１３７】
次に、前記置換処理部５１は、前記置換処理部５１に設定された置換テーブル＃０に基づいて前記伸長データ＃１’の置換処理を行い、元データ＃１を生成して前記セレクタ５２に与える。すなわち、前記置換処理部５１は、圧縮時に置換テーブル＃０によって置換された置換後データ＃１’を置換前のデータ＃１に置き換える処理（以下、逆置換処理とも称する。）を実行する。このとき用いるテーブルは圧縮時と同じ前記テーブル＃０である。これにより可逆な置換処理が可能となる。そして、前記セレクタ５２は、前記伸長部５０より与えられた置換処理の有無の情報に基づいて、入力されるデータの選択を行い、選択したデータを元の画素データとして出力する（Ｓ５０３）。すなわち、“置換処理有り”の場合、前記セレクタ５２は、前記置換処理部５１から与えられたデータを選択して元の画像データ＃１として出力し、“置換処理無し”の場合は前記伸張部５０から与えられたデータを選択して、元の画像データ＃１として出力する。
【０１３８】
前記テーブル作成部５３は前記セレクタ５２から出力された元データ＃１と、ステップ５０２において前記伸長部５０から与えられた前記圧縮対象ビット幅の情報とに基づいて、圧縮時の前記テーブル作成部４２と同様の方法により置換テーブル＃１を作成し、前記置換処理部５１に設定された置換テーブルの更新を行う（Ｓ５０４）。すなわち、前記圧縮データ＃１’’に係る前記圧縮対象ビット幅の値に対して所定の値を加算したビット幅を前記置換対象ビット幅と決定して、それに基づいて前記テーブル作成を実行する。なお、前記置換対象ビット幅の値は、圧縮時と同様の方式であれば、前記圧縮対象ビット幅によらず固定の値でもよい。以降前記圧縮データ＃２’’〜＃４’’についても上記と同様に、一つ前の圧縮データに基づいて作成された前記置換テーブルを用いて前記逆置換処理が実行されることで、順次元データ＃２〜＃４が伸張される。
【０１３９】
これによれば、先頭の圧縮処理単位のデータを伸長するための初期テーブルがあれば、データ圧縮時に作成した圧縮処理単位毎の置換テーブルと同様のテーブルを作成することができるので、伸長処理のために圧縮時の置換テーブルを保存しておく必要はない。
【０１４０】
以上実施の形態１によれば、画像データについて置換処理と圧縮変換処理を行うことで前記記憶装置２に格納するデータのデータ量を削減することができるから、前記記憶装置２に対するデータの読み出し及び書き込み時に前記マイクロプロセッサ１のＩ／Ｏ回路において消費される電流を削減することが可能となる。また、データ量が削減されることにより、前記記憶装置２への書き込みや読み出しにかかる時間（記憶装置稼働時間）も削減でき、前記記憶装置２で消費される電流も削減することができる。また、実施の形態１ではランレングス圧縮変換を利用した可逆圧縮を行うから、画像劣化がなく高画質を保ったまま低消費電力化が可能となる。なお、図７に示すように非圧縮の場合に所定の最下位ビットを削除する場合には不可逆となるが、不可逆な箇所はデータ変化の激しい箇所に限定される為、画像劣化も限定的に抑えることが可能である。
【０１４１】
≪実施の形態２≫
（置換対象の画像データを考慮した置換テーブル）
実施の形態１に係るマイクロプロセッサでは、置換対象の画像データを置換するための置換テーブルは、置換対象の一つ前の画像データによって作成されたが、実施の形態２に係るマイクロプロセッサでは、置換対象の一つ前の画像データのみならず当該置換対象の画像データも考慮して置換テーブルを作成する。
【０１４２】
図２５は、実施の形態２に係るマイクロプロセッサ４の圧縮変換部１７０の内部構成を示す図である。
【０１４３】
実施の形態２に係るマイクロプロセッサは、実施の形態１に係る前記圧縮／解凍部１４の代わりに圧縮／解凍部３０を有し、他の構成要素は前記マイクロプロセッサ１と同様である。図２５には、説明に必要な構成要素のみ図示している。
【０１４４】
前記圧縮／解凍部３０は前記圧縮変換部１５０の代わりに前記圧縮変換部１７０を有し、前記解凍部１５１の代わりに前記解凍部１７１を有する。
【０１４５】
前記圧縮変換部１７０は、前記圧縮変換部１５０の構成要素に加えてデータ遅延部７１を有し、前記テーブル作成部４２に代えてテーブル作成部７２を有する。ここでは、前記圧縮変換部１５０の構成要素と同様のものには同一の参照符号を付し、その詳細な説明を省略する。
【０１４６】
前記データ遅延部７１は、入力された画像データを１圧縮単位のサイクルだけ遅延させて出力する。例えば、１圧縮単位の画像データが連続して２つ入力される場合おいて、１つ目の画像データが前記データ遅延部７１に入力された後、２つ目の画像データが入力されたら１つ目の画像データを出力する。前記データ遅延部７１は、例えば、直列に接続したＦＦ（Ｆｌｉｐ  Ｆｌｏｐ）回路等により構成される。
【０１４７】
前記テーブル作成部７２は、圧縮対象の画像データと、前記データ遅延部７１によって１圧縮単位のサイクルだけ遅延されて出力された当該圧縮対象の一つ前の画像データとを入力し、当該２つの画像データに基づいて置換テーブルを作成する。
【０１４８】
以下前記テーブル作成部７２による置換テーブルの作成方法について図２６〜図２９、及び図３０を用いて説明する。
【０１４９】
図２６は、上位８ビットを置換対象ビットとした置換テーブルを示す図である。
【０１５０】
図２７は、上位７ビットを置換対象ビットとした置換テーブルを示す図である。
【０１５１】
図２８は、上位６ビットを置換対象ビットとした置換テーブルを示す図である。
【０１５２】
図２９は、上位５ビットを置換対象ビットとした置換テーブルを示す図である。
【０１５３】
図３０は、前記テーブル作成部７２による置換テーブルの作成処理の流れを示す図である。
【０１５４】
以下の説明では、２つの連続する画像データが前記テーブル作成部７２に入力される場合を例とし、２つの連続する画像データのうち、先に入力される画像データを圧縮対象の画像データ６０Ａとし、後に入力される画像データを次の圧縮対象の画像データ６１Ａとする。
【０１５５】
図３０において、前記テーブル作成部７２は、前記画像データ６０Ａと前記画像データ６１Ａが揃った段階でテーブル作成を開始する（Ｓ６０１）。ステップ６０１によりテーブル作成が開始されると、前記テーブル作成部７２は、実施の形態１に係る置換テーブルの作成方法と同様の方法により、前記画像データ６０Ａに基づいて、図２６の参照符号６２＿１に示される部分のテーブルを作成する（Ｓ３０３〜Ｓ３０７）。次に、前記テーブル作成部７２は、図２６の参照符号６２＿２に示される部分のテーブルを作成し、置換テーブル６２Ａを作成する（Ｓ６０２）。具体的な方法は以下である。図２６の参照符号６２＿１に示される部分のテーブルにおいて、置換前のデータの種類は６種類（３ビット）である。そのため、実施の形態１に示した方法により置換前のデータに対応する置換後のデータの値を割り当てると、“００００００００”〜“０００００１０１”の６種類の値が順次割り当てられる。これにより、置換後のデータは上位５ビットまでは変化しない値“０００００”となり、下位３ビットが変化するデータとなる。すなわち、置換後のデータとして更に“０００００１１０”と“０００００１１１”を加えても下位ビットの変化は３ビットであるため、置換前のデータを２つ追加することが可能である。そこで、上記ステップ６０３では置換前のデータと置換後のデータを補充する処理が実行される。図２６の例では、前記画像データ６０Ａの最後の画素データ“０１０００００１”の最下位ビットの値に、１、−１、２、−２、３、−３・・・の順に加算した値を補充する。すなわち、置換前のデータとして“０１００００１０”と“０１００００００”が登録され、それらに“０００００１１０”と“０００００１１１”が置換後のデータとして割り当てられる。これにより、前記参照符号６２＿１の部分のテーブルと新たに追加した参照符号６２＿２からなる置換テーブル６２Ａが作成される。
【０１５６】
なお、当該補充する置換前のデータの決定方法は、上記の方法に限られず、伸張時に再度テーブル作成ができるように一定の法則に従っていれば、特に限定されるものではない。例えば、置換前のデータの平均値を求めて、当該平均値に１、−１、２、−２と順に加算していく法則としてもよい。また、置換前のデータの最大値、最小値を求めてその間の値を最大値側又は最小値側から割り当てていく法則としてもよい。
【０１５７】
次に、前記テーブル作成部７２は、次の圧縮対象の画像データ６１Ａを前記置換テーブル６２Ａに基づいて全て置換することができるか否かを確認する（Ｓ６０３）。ステップ６０３において、前記画像データ６１Ａの全ての画素データの置換が可能な場合には、置換テーブルの置換対象ビット幅を上位８ビットに決定し、ステップ６０５に移行する。一方、置換できない画素データが存在する場合には、前記置換対象ビット幅の値を１ビット減じて（Ｓ６０４）、再度置換テーブルの作成を行い（Ｓ３０３〜Ｓ３０７、Ｓ６０２）、全ての画素データの置換が可能となるまでテーブル作成を繰り返す。図２６の場合、参照符号６１Ａ＿１に示されるように、前記置換テーブル６２Ａによって置換することができない画素データが存在するため、ステップ６０４に移行し、上位７ビットを置換対象ビット幅とした置換テーブルの作成を実行する（Ｓ３０３〜Ｓ３０７、Ｓ６０２）。これにより作成された置換テーブルが図２７に示される置換テーブル６２Ｂである。このテーブルに関してもステップ６０３による処理において、前記画像データ６１Ｂの全ての画素データの置換ができないことから、更に置換対象ビット幅を減ずることにより作成したテーブルが、図２８に示される上位６ビットの置換テーブル６２Ｃである。更に置換対象ビット幅を減ずることにより作成したテーブルが図２９に示される上位５ビットの置換テーブル６２Ｄである。前記置換テーブル６２Ｄは、画像データ６１Ｄの全ての画素データについて置換することが可能となるので、前記テーブル作成部７２は、上位５ビットを前記置換対象ビット幅と決定する。そして、前記テーブル作成部７２は、置換テーブル６２Ｄの置換前のデータと置換後のデータを入れ替えた退避テーブルを作成し（Ｓ６０５）、前記置換テーブル６２Ｄと前記退避テーブルの２つのテーブルを併せた置換テーブル６４を作成してテーブル作成を終了する（Ｓ６０６）。なお、ステップ６０５の前記退避テーブルの作成は、図１９におけるステップＳ３０９の作成方法と同様である。
【０１５８】
図３１は、前記置換テーブル６４とそれに基づいて置換された前記画像データ６１Ａを表わした図である。
【０１５９】
図３１に示されるように、前記画像データ６１Ａの上位５ビットが前記置換テーブル６４に基づいて変換されて、置換後の画像データ６５が生成される。これにより、上位１ビットが１６個の連続した同一データ“０”である前記画像データ６１Ａが、上位３ビットが１６個の同一データ“０００”である前記画像データ６５に変換され、圧縮効率を上げられるデータに変化していることが分かる。
【０１６０】
（置換後の圧縮データの生成）
次に置換処理後の圧縮データの生成処理の流れについて説明する。
【０１６１】
図３２は、実施の形態２に係る圧縮データの生成処理の流れを示す図である。
【０１６２】
図３２において、連続した画像データ＃１〜＃４が前記圧縮変換部１７０に入力され、図３２に付された記号の意味は以下である。
【０１６３】
元データ＃１〜＃４は、圧縮処理単位（１６画素）毎の画像データであり、テーブル＃０〜＃４は置換テーブルである。ここでテーブル＃０は初期テーブルであり、実施の形態１と同様である。
【０１６４】
置換後データ＃１’〜＃４’は、元データ＃１〜＃４の夫々が置換されたデータである。
【０１６５】
圧縮データ＃１’’〜＃４’’は、置換後データ＃１’〜＃４’を夫々圧縮した画像圧縮データである。
【０１６６】
まず前記画像処理装置１１等のバスマスタからのアクセス要求に際し、前記圧縮変換部１７０に元データ＃１が入力されると、当該データは前記テーブル作成部７２と前記データ遅延部７１に入力される。このとき前記データ遅延部７１は初期状態である為、何もデータを出力しない。次に元データ＃２が前記圧縮変換部１７０に入力されると、当該元データ＃２は前記テーブル作成部７２と前記データ遅延部７１に入力され、前記データ遅延部７１は前記元データ＃１を前記テーブル作成部７２、前記置換処理部４０、及び第２圧縮部４３に与える。前記元データ＃１が入力された前記置換処理部４０は、予め設定されたテーブル＃０を用いて置換処理を実行し、テーブル置換後データ＃１’を生成し、前記第１圧縮部４１に与える（Ｓ７０１）。なお、前記テーブル＃０は実施の形態１と同様に、初期テーブルである。また、前記テーブル作成部７２は、元データ＃１と元データ＃２が入力された後、前述の方法により置換テーブル＃１を作成し、作成したテーブル＃１を前記置換処理部４０に与えて、前記置換処理部４０に設定されている前記置換テーブル＃０を前記置換テーブル＃１に更新する（Ｓ７０２）。前記第２圧縮部４３は前記入力された元データ＃１の圧縮変換処理を実行し、当該圧縮したデータを前記セレクタ４４に与える。次に、前記第１圧縮部４１は、前記置換後データ＃１’を実施の形態１と同様の方法により圧縮して、圧縮したデータを前記セレクタ４４に与える。前記セレクタ４４は、前記第１圧縮部４１から与えられた圧縮データと前記第２圧縮部４３から与えられた圧縮データのデータ量を比較し、データ量が小さい方の圧縮データを選択して圧縮データ＃１’’として出力する（Ｓ７０３）。
【０１６７】
次に前記圧縮変換部１７０に元データ＃３が入力されると、前記元データ＃２が前記置換テーブル作成部７２、前記置換処理部４０、及び前記第２圧縮部４３に入力される。前記置換処理部４０は、設定されたテーブル＃１に基づいて前記元データ＃２の置換処理を実行し、置換後データ＃２’を生成して前記第１圧縮部４１に入力する（Ｓ７０４）。また、前記テーブル作成部７２は、元データ＃２と元データ＃３が入力された後、前述の方法により置換テーブル＃２を作成し、作成したテーブル＃２を前記置換処理部４０に与えて、前記置換処理部４０に設定されている前記置換テーブル＃１を前記置換テーブル＃２に更新する（Ｓ７０５）。前記第２圧縮部４３は前記元データ＃２の圧縮変換処理を実行し、当該圧縮したデータを前記セレクタ４４に与える。次に、前記第１圧縮部７１は、前記置換後データ＃２’を実施の形態１と同様の方法により圧縮して、圧縮データを前記セレクタ４４に与える。前記セレクタ４４は、前記第１圧縮部４１と前記第２圧縮部４３によって夫々圧縮されたデータのデータ量を比較し、データ量が小さい方の圧縮データを選択し、圧縮データ＃２’’として出力する（Ｓ７０６）。
【０１６８】
以降元データ＃３〜＃４についても上記と同様の処理を実行することで、ストリームデータ等の連続する画像データについて順次圧縮データを生成することが可能となる。
【０１６９】
図３３は、実施の形態２に係る置換処理後の圧縮データのデータ形式を示した図である。
【０１７０】
当該データ形式は実施の形態１に係る図４の参照符号（Ｃ）、図８の参照符号（Ｃ）、及び図９の参照符号（Ｃ）に示される形式のデータの先頭に３ビット分の置換処理の情報を表すビットを付加した形式である。前記置換処理の情報は、置換処理の有無の情報と置換対象ビット幅の情報を表わすものである。
【０１７１】
図３４は、前記置換処理の情報の一例を示した図である。
【０１７２】
例えば、置換処理を行っていない圧縮データの場合には“０００”をデータの先頭に付加し、上位８ビットの置換を行っている圧縮データの場合には“１１１”を先頭に付加する。
【０１７３】
前記置換処理の情報の付加は、前記第１圧縮部４１及び第２圧縮部４３が圧縮データを出力する際に付加する。
【０１７４】
図３３に示されるデータは、図３１に示す前記画像データ６１Ａの置換後圧縮データを表している。前記置換後圧縮データは、前記置換処理の情報を表わす３ビットの値と、前記ヘッダＩＤを表わす５ビットの値と、データ種別を表わす３ビットの値と、その連続長を表わす３ビットの値と、非圧縮データのビットの値によって表わされる一例である。ここで、前記置換処理の情報を表わすビットは“１００（上位５ビットを置換）”である。また、上位３ビット“０００”が１６個連続している為、データ種別は“ｂ’０００”であり、連続長は“１６”である。また、下位５ビット分の非圧縮ビットは８０ビット（＝（８−３）×１６）である。したがって、前記画像データ２０１に対する置換後の圧縮データのデータ量は９４ビットとなる。一方、前記画像データ２０１の置換処理前の圧縮データのデータ量は、上位１ビットをランレングス圧縮の対象とした場合、１２３ビット（＝５＋（８−１）×１６＋（１＋４）×１）に前記置換処理の情報３ビットを加えた１２６ビットである。以上のことから、置換後圧縮データの方が置換処理前の圧縮データよりもデータ量が小さくなり、置換処理が有効となったことがわかる。ただし、図１１に示す圧縮を行う場合、データ量が多少異なる場合があるが、傾向は変わらず置換処理が有効となる。
【０１７５】
（置換処理後の圧縮データの伸長処理）
置換処理後の圧縮データの伸長処理について説明する。
【０１７６】
実施の形態２に係る圧縮時の置換テーブルは、例えば図２６〜図２９に示したように圧縮対象の画像データ６０Ａと次の圧縮対象の画像データ６１Ａを参照して作成される。ここで、置換テーブル６４そのものは圧縮対象の画像データ６０Ａの画素データから作成されるが、次の圧縮対象の画像データ６１Ａは前記置換テーブル６４を作成する際の置換対象ビット幅を決定する為に利用されるに過ぎない。したがって、次の圧縮対象の画像データ６１Ａの伸張処理時の置換テーブルは、次の圧縮対象の画像データ６１Ａの圧縮データの先頭に付された前記置換処理の情報から特定される圧縮対象ビット幅の値と、先に伸張された前記画像データ６０Ａがあれば作成可能とされる。
【０１７７】
図３５は、実施の形態２に係るマイクロプロセッサ４の前記解凍部１７１の内部構成を示す図である。
【０１７８】
前記解凍部１７１は、前記解凍部１５１の構成要素である前記テーブル作成部５３に代えてテーブル作成部７４を有する。ここでは、前記マイクロプロセッサ１の構成要素と同様のものには同一の参照符号を付し、その詳細な説明を省略する。
【０１７９】
前記テーブル作成部７４は、前記セレクタ５２から出力される伸長された１圧縮単位の画像データと、前記伸長部５０によって次に伸長される１圧縮単位の画像データの圧縮対象ビット幅の値とに基づいて、前記テーブル作成部７２と同様の方法により置換テーブルを作成する。
【０１８０】
これによれば、前記解凍部１７１は、図２４に示す実施の形態１に係る伸長処理と同様のタイミングチャートにより伸長処理を行うことが可能となり、実施の形態１に係る前記解凍部１５１と同様の効果を奏する。
【０１８１】
以上実施の形態２によれば、前記圧縮／解凍部３０は置換対象の画像データを置換するための置換テーブルを作成する際に、置換対象の一つ前の画像データのみならず当該置換対象の画像データも考慮して、置換対象の画像データの全ての画素データが置換されるように置換テーブルを作成するから、より圧縮効率を上げることが可能になる。
【０１８２】
図３６は、一般的に圧縮効率が悪いと考えられる画像の一例を示す図である。
【０１８３】
白（１６進数表記で“ＦＦ”）及び黒（１６進数表記で“００”）のように、値が大きく異なるデータが短い間隔で連続するデータを圧縮する場合、一般的に圧縮効率は悪くなる。しかしながら、前述した本実施の形態１及び２に係る圧縮変換処理を行えば、高い圧縮率を得ることが可能となる。
【０１８４】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１８５】
例えば、実施の形態１及び２では、前記記憶装置２にデータを格納する手前で圧縮を行うこと場合を説明したが、これに限られず、前記圧縮／解凍部１４、３０と前記圧縮／解凍判定部１３の機能を有する装置を前記画像処理部１１と前記バス１７との間等に設置することも可能である。これによれば、当該装置が前記画像処理部１１のデータ送信時に圧縮処理を行い、データ受信時に伸長処理を行うことで、バスの使用割合を減らすことが可能となる。
【０１８６】
また、実施の形態１において、図１６の参照符号（ｂ）に示される部分の置換後データの割り当て方法は、前述した方法に限定されるものでなく、例えば、最大値“１１１１１１”から１ずつ減算した値を補充する方法でもよいし、置換前のデータの平均値に基づいて補充する方法でもよい。例えば、平均値に基づいて補充する方法の場合について以下説明する。図１４の圧縮前の元データ２００に基づいて置換テーブルを作成する場合、まず、当該元データ２００の画素データの平均値を算出すると、１０進数表記で“１３．８７５”（＝（１４×１１＋１３×４＋１６×１）／１６）となることから、当該値を四捨五入した整数値“１４”（２進表記：００１１１０）を基準値とする。そして当該基準値の下位ビットを所定ビット数分だけ“０”とした値を初期値とし、当該初期値に順次１ずつ加算した値を置換後データとして割り当てる。例えば、前記所定ビット数は、図１６の場合、置換対象となる置換前データ（３種類）を表現する為に必要なビット数（２ビット）であり、前記初期値は“００１１００”である。このとき、必要に応じて図１８に示したように置換処理が可逆になるようにする。この方法によれば、置換処理によって置換された画素データの値が置換処理の行われない画素データの値と近い値になるため、置換処理の対象とならない画素データがあった場合においても、極端に圧縮効率が低下することはない。
【０１８７】
更に、実施の形態１及び２では、１６画素の画素データを含む画像データを扱う場合を例としたが、これに限られず、一つのシンボルを複数ビットで表わすコードデータにも適用することができる。例えば、音声データを扱う場合にも、本実施の形態に係る方法を適用することが可能である。
【符号の説明】
【０１８８】
１、４  マイクロプロセッサ
２  記憶装置
３  表示装置
１１  画像処理部
１２  中央処理ユニット（ＣＰＵ）
１３  圧縮／解凍判定部
１４、３０  圧縮／解凍部
１５  記憶装置制御部
１６  表示装置制御部
１７  バス
１８  外部入出力インターフェース（Ｉ／Ｏ）部
１９  メモリインターフェース部
３１  解凍部
２１  画像圧縮領域
２２  画像非圧縮領域
１４１  上位１ビット圧縮部
１４２  上位２ビット圧縮部
１４３  上位３ビット圧縮部
１４４  上位４ビット圧縮部
１４５  上位５ビット圧縮部
１４６  上位６ビット圧縮部
１４７  上位７ビット圧縮部
１４８  上位８ビット圧縮部
１４９  圧縮データセレクタ
１５０、１７０  圧縮変換部
１５１、１７１  解凍部
４０、５１  置換処理部
４１  第１圧縮部
４２、５３、７２、７４  テーブル作成部
４３  第２圧縮部
４４、５２  セレクタ
５０  伸長部
７１  データ遅延部
２００、２０１  圧縮前の元データ
６０Ａ〜６０Ｄ  圧縮対象の画像データ（８ビット〜５ビット）
６１Ａ〜６１Ｄ  次の圧縮対象の画像データ（８ビット〜５ビット）
６２Ａ〜６２Ｄ、６４  置換テーブル
６２＿１  テーブル
６２＿２、６３  退避テーブル
６５  置換後の画像データ
【図１】
2011193192.tif 000003
【図２】
2011193192.tif 000004
【図３】
2011193192.tif 000005
【図４】
2011193192.tif 000006
【図５】
2011193192.tif 000007
【図６】
2011193192.tif 000008
【図７】
2011193192.tif 000009
【図８】
2011193192.tif 000010
【図９】
2011193192.tif 000011
【図１０】
2011193192.tif 000012
【図１１】
2011193192.tif 000013
【図１２】
2011193192.tif 000014
【図１３】
2011193192.tif 000015
【図１４】
2011193192.tif 000016
【図１５】
2011193192.tif 000017
【図１６】
2011193192.tif 000018
【図１７】
2011193192.tif 000019
【図１８】
2011193192.tif 000020
【図１９】
2011193192.tif 000021
【図２０】
2011193192.tif 000022
【図２１】
2011193192.tif 000023
【図２２】
2011193192.tif 000024
【図２３】
2011193192.tif 000025
【図２４】
2011193192.tif 000026
【図２５】
2011193192.tif 000027
【図２６】
2011193192.tif 000028
【図２７】
2011193192.tif 000029
【図２８】
2011193192.tif 000030
【図２９】
2011193192.tif 000031
【図３０】
2011193192.tif 000032
【図３１】
2011193192.tif 000033
【図３２】
2011193192.tif 000034
【図３３】
2011193192.tif 000035
【図３４】
2011193192.tif 000036
【図３５】
2011193192.tif 000037
【図３６】
2011193192.tif 000038