以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
1. 液晶表示装置
図1に、本実施形態を携帯電話機に適用した場合の構成例を示す。
図1において、ベースバンドエンジン(BBE:広義には画像供給装置)10は携帯電話機の基本機能を司る中央演算処理装置(Central Processing Unit:CPU)を搭載するLSI(Large Scale Integrated Circuit)であり、インターネット経由で受信した動画や静止画、カメラで撮影した自然画、携帯電話機の操作上で必要なメニュー画面、アイコンなどの文字・図形情報等の各種画像データの出力源である。
図1において、携帯電話機のディスプレイとして液晶表示パネル(広義には表示パネル)20が設けられている。この液晶表示パネル20は、2枚のガラス基板30、32間に液晶を封入したものである。大きなガラス基板30は例えばアクティブマトリクス基板であり、各画素にアクティブ素子であるTFT(Thin Film Transistor)が設けられている。各画素のTFTのドレイン端子に透明画素電極が、ソース端子にデータ線であるソース線が、ゲート端子に走査線であるゲート線がそれぞれ接続されている。このガラス基板30と対向するガラス基板32には透明電極が設けられている。ガラス基板32上には、ガラス基板30の短辺に沿って、液晶表示パネル20を駆動する表示ドライバ(広義には駆動部)40がCOG実装されている。表示ドライバ40は、液晶表示パネル20のゲート線に走査信号を、ソース線にデータ信号を供給して液晶表示パネル20を表示駆動する。
ベースバンドエンジン10と表示ドライバ40との間には、画像処理コントローラ(広義には画像処理装置)50が設けられている。ベースバンドエンジン10と画像処理コントローラ50との間、画像処理コントローラ50と表示ドライバ40との間は、複数本のバスラインで接続され、画像データ、水平・垂直同期信号、クロック信号、各種コマンドが転送される。
本実施形態では、画像処理コントローラ50が、ベースバンドエンジン10からの画像データを一旦蓄積して、回転処理やオーバレイ処理等の画像処理を行った後に、表示ドライバ40に対して画像処理後の画像のデータを供給する。その際、画像処理コントローラ50は、圧縮画像データメモリとしてのメモリを有し、ベースバンドエンジン10からの画像データに対して圧縮処理(符号化)を行って該メモリに格納し、該メモリから伸張処理(復号化)を行って画像データを表示ドライバ40に出力する。こうすることで、メモリの容量を削減する。
2. 画像処理コントローラ
図2に、図1の画像処理コントローラ50の構成例のブロック図を示す。
なお、本実施形態では、図2に示す構成に限定されるものではなく、図2に示す回路ブロックのうち少なくとも1つの回路ブロックが省略された構成であってもよい。
画像処理コントローラ50は、キーカラーと一致する色の画素が抽出されるキーカラー処理が行われ、該キーカラーの部分に別の色を表示できるオーバレイ処理を実現する画像処理装置として機能する。この画像処理コントローラ50は、画像データ符号化装置として機能する圧縮処理部100と、圧縮画像データメモリとしてのメモリ120、それぞれが画像データ復号化装置として機能する第1及び第2の伸張処理部(第1及び第2の復号化部)130、132を含む。なお、図2では、第1及び第2の伸張処理部130、132を含むものとして説明するが、第1及び第2の伸張処理部130、132の一方のみであってもよい。また、画像データ符号化装置としての圧縮処理部100は、図2の回転処理部150を含んでもよい。
圧縮処理部100は、画像データを不可逆圧縮方式で圧縮して符号化すると共に、予め決められたキーカラーと一致する色の画素が抽出されるキーカラー処理を行う。このとき、圧縮処理部100は、圧縮処理対象の画像データにより表される画素の色とキーカラーとを比較し、画像データにより表される色とキーカラーとが不一致のとき、該画像データに対して不可逆圧縮処理を行って得られた符号化データを出力し、画像データにより表される色とキーカラーとが一致したとき、該符号化データに代えて、予め決められたキーカラーコードを出力する。ここで、キーカラーコードは、当該画素の色がキーカラーであることを示すキーカラー識別コードとしてのキーカラーID(Identifier)と、キーカラーの色を示すキーカラーパラメータとを含むことができる。これにより、第1及び第2の伸張処理部130、132は、メモリ120から符号化データを読み出したときに、キーカラーIDに基づいて該符号化データがキーカラーであるか否かを確実に判定でき、キーカラーパラメータに基づいてどのキーカラーを表示させるべきかを確実に判定できるようになる。
このような圧縮処理部100は、更に、ベースバンドエンジン10からの画像データ(入力画像の画像データ)のうち1走査ライン分(1水平走査分)の画像データを分割した複数ブロックの1ブロック毎に、該画像データを符号化する。より具体的には、圧縮処理部100は、1画面分(1フレーム分)の画像データを規定圧縮率(例えば50%)以上の圧縮率で圧縮して符号化することを保障する。圧縮処理部100は、1走査ライン分の画像データを規定圧縮率以上の圧縮率で圧縮して符号化することで、1画面分の画像データの圧縮処理後のデータサイズを保障することが望ましい。ここで、例えば50%の規定圧縮率以上の圧縮率で圧縮することは、圧縮処理後のデータサイズが圧縮処理前の画像データサイズの50%以下になることを意味する。また、データサイズを保障するとは、圧縮処理後のデータサイズの最大値が規定圧縮率で符号化されたデータサイズ以下となるように処理が行われることを意味する。
図3に、図2の圧縮処理部100の動作説明図を示す。
圧縮処理部100は、元画像の1走査ライン分の画像データをn(nは2以上の整数)ブロックに分割する。各ブロックの長さ(ビット長、データ長、データサイズ)は、固定のビット長であってもよいし、任意のビット長であってもよい。また各ブロックの長さは、ベースバンドエンジン10からの入力画像の画像データのフォーマットに応じて異なってもよい。
そして、圧縮処理部100は、各ブロック毎に、画像データを圧縮する処理を行って符号化データを生成する。このため、1走査ライン分の画像データに対して圧縮処理する場合に比べて圧縮率を低下させてしまうが、ブロック毎に圧縮処理及び伸張処理が完結している。即ち、ある1ブロックのデータを他のデータで置き換えたとしても、他のブロックの伸張処理結果に影響を与えない。従って、例えば1画面分の画像データを圧縮してメモリ120に格納したとしても、ブロック単位で書き込んで更新したり、読み出したりすることが可能となる。この場合、ベースバンドエンジン10や画像処理コントローラ50での処理の簡素化を考慮すると、1ブロックのデータ長を8×m(mは自然数)画素分のデータサイズであることが望ましい。
なお、本発明では、圧縮処理部100の不可逆圧縮アルゴリズムに限定されるものではないが、以下のように、LSI化に適した簡素なアルゴリズムであることが望ましい。
図4(A)、図4(B)、図4(C)に、圧縮処理部100の動作例を示す。
以下では、圧縮処理部100が採用する不可逆圧縮アルゴリズムとして、隣接する画素間の差分をPCM(Pulse Code Modulation)符号化するDPCM(Differential Pulse Code Modulation)符号化アルゴリズムを採用するものとする。
図4(A)は、RGB888フォーマットの画像データに対して、圧縮処理部100が、4画素単位にDPCM符号化処理によって符号化した例を示す。従って、各色成分の画像データが8ビットであり、1画素当たりの画像データが24ビットである。
この場合、圧縮処理部100は、先頭の第1の画素を圧縮処理せず、そのまま符号化データとして出力する。そして、圧縮処理部100は、第1の画素の画像データと第2の画素の画像データとの差分を求め、該差分を4ビットのデータに変換する。第3及び第4の画素については、直前の符号化データを伸張したデータとの差分を求め、該差分を4ビットのデータに変換する。このため、第2〜第4の画素の画像データは、それぞれ50%に圧縮される。即ち、図4(A)の場合、規定圧縮率(最悪圧縮率)が62.5%(=((8+4×3)×3)/(24×3))となる。
図4(B)は、YUV444フォーマットの画像データに対して、圧縮処理部100が、4画素単位にDPCM符号化処理によって符号化した例を示す。従って、各画素の輝度成分及び色差成分の画像データがそれぞれ8ビットであり、1画素当たりの画像データが24ビットである。
この場合、圧縮処理部100は、先頭の第1の画素を圧縮処理せず、そのまま符号化データとして出力する。そして、圧縮処理部100は、第1の画素の画像データと第2の画素の画像データとの差分を求め、該差分を4ビットのデータに変換する。第3及び第4の画素については、直前の符号化データを伸張したデータとの差分を求め、該差分を4ビットのデータに変換する。このため、第2〜第4の画素の画像データは、それぞれ50%に圧縮される。即ち、図4(B)の場合、規定圧縮率(最悪圧縮率)が62.5%(=((8+4×3)×3)/(24×3))となる。
図4(C)は、YUV422フォーマットの画像データに対して、圧縮処理部100が、8画素単位にDPCM符号化処理によって符号化した例を示す。従って、1画素当たりの画像データが16ビットである。
この場合、圧縮処理部100は、先頭からの2画素である第1及び第2の画素を圧縮処理せず、そのまま符号化データとして出力する。そして、圧縮処理部100は、第3〜第8の画素の画像データについては、上述の通り直前の伸張処理後の画像データとの差分を求め、該差分を4ビットのデータに変換する。このため、第3〜第8の画素の画像データは、それぞれ50%に圧縮される。即ち、図4(C)の場合、規定圧縮率(最悪圧縮率)が62.5%(=(16×2+4×2×6)/(16×8))となる。
このように、画像フォーマットに応じてDPCM符号化処理の1ブロックのデータ長を異ならせている。そして、上述のようにDPCM符号化アルゴリズムを採用することで、ベースバンドエンジン10からの画像の画像フォーマットが定まれば、圧縮処理後の画像データのサイズの最大値(最悪値)が求められるようになる。このため、予めメモリ120に確保すべき領域のサイズが定まり、ユーザにとって使いやすい画像処理コントローラを提供できる。この点、1画面分の圧縮処理が完了しなければ、圧縮処理後のデータサイズが判明しないJPEG(Joint Photographic Experts Group)等の高符号化アルゴリズムと異なる。
図2に戻って説明を続ける。メモリ120には、圧縮処理部100によってデータサイズが圧縮された符号化データが格納される。
第1及び第2の伸張処理部130、132は、互いに同期して、又は互いに非同期で、メモリ120から符号化データを読み出す。そして、各伸張処理部は、圧縮処理部100の不可逆圧縮処理アルゴリズムに対応した伸張処理アルゴリズムで、上記の圧縮処理単位であるブロック毎に、該符号化データに対して伸張処理を行う。このとき、メモリ120から読み出されたキーカラーコードと符号化データとが混在するデータ(圧縮画像データ)の中からキーカラーコードを検出すると共に、符号化データを伸張して復号化する。そして、各伸張処理部は、キーカラーコードが検出されたとき、キーカラーコードにより指定されたキーカラーに対応した画像データを復号化データとして出力し、キーカラーコードが検出されないとき、復号化されたデータをそのまま復号化データとして出力する。このような伸張処理後の画像データが、表示ドライバ40に供給される。
本実施形態では、このように表示ドライバ40に供給される画像データに対して、回転処理やオーバレイ処理を行うことができるようになっている。そのため、画像処理コントローラ50は、図2に示すように、ホストインタフェース(Interface:以下、I/Fと略す)140、回転処理部150、第1及び第2のフォーマット変換部160、162、オーバレイ処理部170、ドライバI/F180、制御レジスタ部190を含むことができる。
ホストI/F140は、ベースバンドエンジン10に接続されたバスラインを介して入出力される信号のインタフェース処理を行う。
回転処理部150は、ベースバンドエンジン10から供給された画像の天地方向の向きを、例えば該天地方向の向きを基準に所定の回転角度だけ回転させた画像を生成する回転処理を行う。回転処理部150は、複数のラインバッファを有する。各ラインバッファには、ベースバンドエンジン10からの入力画像の1走査ライン分の画像データが格納される。本実施形態では、上述のように圧縮処理部100が1走査ラインを分割した1ブロック単位で圧縮処理を行うため、回転処理部150は、少ないラインバッファ数で回転処理を実現できる。回転処理部150により行われた回転処理後の画像の画像データが、圧縮処理部100に供給される。
第1のフォーマット変換部160は、第1の伸張処理部130によって伸張処理された画像データのフォーマットを変換する処理を行う。なお、ベースバンドエンジン10からの画像データのフォーマットをそのまま表示ドライバ40に供給する場合は、第1のフォーマット変換部160の処理を無効化してもよい。
第2のフォーマット変換部162は、第2の伸張処理部132によって伸張処理された画像データのフォーマットを変換する処理を行う。なお、ベースバンドエンジン10からの画像データのフォーマットをそのまま表示ドライバ40に供給する場合は、第2のフォーマット変換部162の処理を無効化してもよい。
オーバレイ処理部170は、第1及び第2のフォーマット変換部160、162からの画像データに対して重ね合わせ処理を行う。なお、図2において、画像処理コントローラ50は、第2の伸張処理部132、第2のフォーマット変換部162及びオーバレイ処理部170が省略された構成を有していてもよい。
ドライバI/F180は、表示ドライバ40に接続されたバスラインを介して入出力される信号のインタフェース処理を行う。例えば、ドライバI/F180は、オーバレイ処理部170により行われた重ね合わせ処理後の画像の画像データを、上記のバスラインを介して表示ドライバ40に出力する処理を行う。
制御レジスタ部190は、複数の制御レジスタを含む。各制御レジスタは、ベースバンドエンジン10によりアクセス可能に構成されており、各制御レジスタの設定データに応じた制御信号が出力される。各制御信号は、画像処理コントローラ50の各部に供給され、画像処理コントローラ50の各部は制御レジスタ部190からの制御信号に基づいて制御される。このため、ベースバンドエンジン10は制御レジスタ部190の制御レジスタに設定データを設定することで、画像処理コントローラ50の各部を制御できる。
なお、回転処理部150が有する複数のラインバッファの各ラインバッファの容量をLBビット、入力画像の1走査ラインの画素数をH画素、1画素当たりのビット数をPとした場合に、圧縮処理の処理単位である1ブロックのデータ長が、f(LB/H/P)(関数fは、小数点以下を切り捨てる関数であることを示す)以下としてもよい。
こうすることで、ラインバッファの容量を最大限活用して、圧縮処理が行われるため、回転処理部150が有するラインバッファの容量を最小限に抑えることができる。
更に、圧縮処理部100が、規定圧縮率W以上の圧縮率で入力画像の画像データを符号化し、メモリ120のアクセス単位であるビット幅をB、入力画像の1画素当たりのビット数をPとした場合に、圧縮処理の処理単位である1ブロックのデータ長が、f(B/W/P)(関数fは、小数点以下を切り捨てる関数であることを示す)以下としてもよい。
こうすることで、メモリ120へのアクセス回数を低減できるので、画面サイズが大きくなったとしても圧縮処理を高速化でき、メモリ120の容量の増大を抑えることができる。
以下、図2の画像処理コントローラ50の各部について説明する。
2.1 制御レジスタ部
図5に、図2の制御レジスタ部の構成の概要を示す。
制御レジスタ部190は、動作モード設定レジスタ200、画像サイズ設定レジスタ202、画像フォーマット設定レジスタ210、オーバレイ処理設定レジスタ220、回転角度設定レジスタ230、キーカラー設定レジスタ240を含む。
動作モード設定レジスタ200には、画像処理コントローラ50の動作モードを設定するための設定データ(制御データ)が設定され、該設定データに対応した制御信号MODEが出力される。画像処理コントローラ50は、例えばラインモード(第1の動作モード)又はパーシャルモード(第2の動作モード)で動作できるようになっている。
ラインモードに設定された画像処理コントローラ50は、圧縮処理部100において1走査ライン単位で圧縮処理を行うと共に、第1及び第2の伸張処理部130、132において1走査ライン単位で伸張処理を行う。ラインモードでは、ベースバンドエンジン10からの画像を回転させる場合には1画面分のバッファが必要となり回転処理には適さないが、1走査ライン分の画像データの圧縮処理後のデータサイズをパーシャルモードよりも小さくできる。
また、パーシャルモードに設定された画像処理コントローラ50は、圧縮処理部100において1走査ラインを分割した1ブロック単位で圧縮処理を行うと共に、第1及び第2の伸張処理部130、132において1ブロック単位で伸張処理を行う。パーシャルモードでは、圧縮処理後のデータサイズがラインモードよりも大きくなるが、ベースバンドエンジン10からの画像を回転させたり、メモリ120のデータを必要な部分のみ読み出したり更新したりできるようになる。
画像サイズ設定レジスタ202には、ベースバンドエンジン10からの画像の水平走査方向及び垂直走査方向のサイズに対応した設定データが設定され、該設定データに対応した制御信号SIZEが出力される。画像処理コントローラ50は、画像サイズ設定レジスタ202の設定データに基づいて1走査ライン分のデータサイズや走査ライン数を判断できる。
画像フォーマット設定レジスタ210には、ベースバンドエンジン10からの画像の画像データのフォーマットに対応した設定データが設定され、該設定データに対応した制御信号FMTが出力される。画像処理コントローラ50は、画像フォーマット設定レジスタ210により指定された画像フォーマットに応じて、例えば図4(A)〜図4(C)のように1ブロックのデータサイズを異ならせて圧縮処理を行う。第1及び第2のフォーマット変換部160、162は、画像フォーマット設定レジスタ210により指定された画像フォーマットに応じて、表示ドライバ40において予め決められたRGB888フォーマットの画像データに変換する。
オーバレイ処理設定レジスタ220には、キーカラー設定レジスタ240に設定される複数のキーカラーの各キーカラーに対応付けられた透過比率が設定される。オーバレイ処理部170は、オーバレイ処理設定レジスタ220に設定された透過比率を用いて、第1及び第2のフォーマット変換部160、162からの画像データに対して重ね合わせ処理を行う。より具体的には、オーバレイ処理部170は、複数のキーカラーのうちのいずれか1つのキーカラーに一致したとき、当該キーカラーに対応した透過比率で2つの画像の重ね合わせ処理を行うことができる。
回転角度設定レジスタ230には、ベースバンドエンジン10からの画像の天地方向を基準に、例えば該画像の中心位置を基準に回転させる角度に対応した設定データが設定され、該設定データに対応した制御信号ROTが出力される。本実施形態では、回転角度設定レジスタ230に、ベースバンドエンジン10からの画像の天地方向を基準に、該画像の中心位置の回りに左方向に回転角度が0度、90度、180度又は270度に対応した設定データが設定されるものとする。回転処理部150は、回転角度設定レジスタ230に設定された設定データに基づいて回転処理を行う。
キーカラー設定レジスタ240には、ベースバンドエンジン10からの画像の画像データに対して複数のキーカラーを指定するための設定データが設定される。以下で説明する実施形態では、16種類のキーカラーを設定できるものとする。そのため、どのキーカラーに一致したかを示すキーカラーパラメータは、少なくとも4ビットのデータを有する。
2.2 回転処理部
図6に、図2の回転処理部150の構成例のブロック図を示す。
回転処理部150は、ライトFIFO(First-In First-Out)300、ライトアドレス生成回路310、リードアドレス生成回路320、リードFIFO330、ラインバッファ制御回路340、ラインバッファ部350、回転処理制御回路360を含む。
ラインバッファ部350は、各ラインバッファが、圧縮処理部100の圧縮処理単位である1ブロックの画素数と同じ数の走査ライン数分の画像データを少なくとも格納できる複数のラインバッファを有する。例えば、ラインバッファ部350は、1ブロックが4又は8画素単位の場合には、その最大値である8走査ライン数分のラインバッファを有し、1ブロックが4画素単位で固定の場合には4走査ライン数分のラインバッファを有する。従って、ラインバッファ部350は、1画面分の画像データを蓄積する程のラインバッファを備える必要がない。
ライトFIFO300には、入力画像のラスタスキャン方向で、ホストI/F140からの画像データが順番に蓄積される。
ラインバッファ部350が有する各ラインバッファのアクセス領域にはそれぞれアドレスが割り当てられており、ライトアドレス生成回路310は、ラインバッファ部350のうち記憶領域のうちデータを書き込むべき領域のアドレスWAを生成する。ライトアドレス生成回路310は、ラインバッファ制御回路340に対してライト要求WRReqとライトアドレスWAとを出力し、ラインバッファ制御回路340からのライト承認WRAckを受けて、ラインバッファ制御回路340によりライト要求WRReqが受け入れられたことを認識する。
リードアドレス生成回路320は、ラインバッファ部350のうち記憶領域のうちデータを読み出すべき領域のアドレスRAを生成する。リードアドレス生成回路320は、ラインバッファ制御回路340に対してリード要求RDReqとリードアドレスRAとを出力し、ラインバッファ制御回路340からのリード承認RDAckを受けて、ラインバッファ制御回路340によりリード要求RDReqが受け入れられたことを認識する。
ラインバッファ制御回路340は、ライトアドレス生成回路310からのライト要求WRReqとリードアドレス生成回路320からのリード要求RDReqとを調停する。調停の結果、ライト要求WRReqを受け付けたラインバッファ制御回路340は、ライトアドレス生成回路310に対してライト承認WRAckを出力する。そして、ラインバッファ制御回路340は、ラインバッファ部350に対してライト要求WRQを出力すると共に、ライトアドレス生成回路310からのライトアドレスWAを用いてラインバッファ部350に対してアドレスAD、ライトFIFO300から読み出したデータWDをライトデータWRDとしてそれぞれ出力する。また、調停の結果、リード要求RDReqを受け付けたラインバッファ制御回路340は、リードアドレス生成回路320に対してリード承認RDAckを出力する。そして、ラインバッファ制御回路340は、ラインバッファ部350に対してリード要求RRQを出力すると共に、リードアドレス生成回路320からのリードアドレスRAを用いてラインバッファ部350に対してアドレスADを出力して、ラインバッファ部350からのリードデータRRDを取得する。このリードデータRRDは、データRDとしてリードFIFO330に蓄積された後、順次圧縮処理部100により読み出される。
回転処理制御回路360は、制御信号FMT、SIZE、ROTを受けて制御信号を生成する。この制御信号は、図6の回転処理部150の各部の制御に用いられる。回転処理制御回路360は、制御信号FMT、SIZEにより、1走査ライン分のデータサイズ、走査ライン数を判別する。そして、制御信号ROTにより回転すべき角度を判別して、リードアドレス生成回路320が、該角度に対応したリードアドレスRAを生成する。
図7に、図6の回転処理部150の動作説明図を示す。
回転処理部150は、ベースバンドエンジン10からの入力画像IMG0を元画像として、該元画像の中心位置CTRを通る回転軸の周りの回転角度に対応した回転処理を行う。
制御レジスタ部190の回転角度設定レジスタ230に設定された設定データが、回転角度90度に対応した設定データのときに、表示ドライバ40に供給される画像データにより形成される画像が画像IMG1となるようにメモリ120に画像データを格納する。回転角度設定レジスタ230に設定された設定データが、回転角度180度に対応した設定データのときに、表示ドライバ40に供給される画像データにより形成される画像が画像IMG2となるようにメモリ120に画像データを格納する。回転角度設定レジスタ230に設定された設定データが、回転角度270度に対応した設定データのときに、表示ドライバ40に供給される画像データにより形成される画像が画像IMG3となるようにメモリ120に画像データを格納する。
図8(A)、図8(B)に、回転角度が0度のときの回転処理部150の動作説明図を示す。
図8(A)は、図7の入力画像IMG0を、画素単位で画像データを並べて表したものである。図8(A)では、入力画像IMG0の水平走査方向にN(Nは2以上の整数)画素が並び、入力画像IMG0の垂直走査方向にM(Mは2以上の整数)画素が並ぶものとする。そして、入力画像IMG0の水平走査方向に画素P1−1、P1−2、・・・、P1−Nが並び、入力画像IMG0の垂直走査方向に、例えば左端については画素P1−1、P2−1、・・・、PM−1が並ぶものとする。
また図8(B)は、回転角度が0度のときの回転処理後の画像データがメモリ120に格納される様子を模式的に表したものである。
ここで、圧縮処理部100が8画素単位で圧縮処理を行うものとする。図8(A)では画素P1−1〜P1−8を処理方向DIR1で、例えば図4(C)に示したように圧縮処理を行い、符号化データCD1−1が生成される。同様に、画素P1−9〜P1−16、画素P1−17〜P1−24、・・・、画素P1−(N−7)〜P1−N、画素P2−1〜P2−8、・・・、画素P2−(N−7)〜P2−N、・・・、画素PM−1〜PM−8、・・・、画素PM−(N−7)〜PM−Nを、それぞれ処理方向DIR1で圧縮処理を行って、符号化データCD1−2、CD1−3、・・・、CD1−K(Kは自然数)、CD2−1、・・・、CD2−K、・・・、CDL−1(Lは自然数)、・・・、CDL−Kが生成される。
こうして生成された符号化データは、図8(B)に示す順序MDR1で、メモリ120に格納されていく。即ち、まず符号化データCD1−1〜CD1−Kが順序MDR1でメモリ120に格納された後に、符号化データCD2−1〜CD2−Kが順序MDR1でメモリ120に格納される。ライトアドレス生成回路310は、図8(B)に示す順序で圧縮処理が行われるようにラインバッファ部350のライトアドレスを生成する。
この結果、第1及び第2の伸張処理部130、132は、メモリ120からの符号化データを、いわゆるラスタスキャンの方向で単純に読み出すだけでよい。即ち、符号化データCD1−1、CD1−2、・・・、CD1−K、CD2−1、CD2−2、・・・、CD2−K、・・・、CDL−1、・・・、CDL−Kの順番に読み出すようにリードアドレス生成回路320がラインバッファ部350のリードアドレスを生成し、各符号化データに対して順番に伸張処理を行うことで、回転角度が0度のときの画像IMG0の画像データを出力できる。
図9(A)、図9(B)に、回転角度が90度のときの回転処理部150の動作説明図を示す。
図9(A)は、図7の入力画像IMG0を、画素単位で画像データを並べて表したものである。図9(A)では、入力画像IMG0の水平走査方向にN画素が並び、入力画像IMG0の垂直走査方向にM画素が並ぶものとする。そして、入力画像IMG0の水平走査方向に画素P1−1、P1−2、・・・、P1−Nが並び、入力画像IMG0の垂直走査方向に、例えば左端については画素P1−1、P2−1、・・・、PM−1が並ぶものとする。
また図9(B)は、回転角度が90度のときの回転処理後の画像データがメモリ120に格納される様子を模式的に表したものである。
ここで、圧縮処理部100が8画素単位で圧縮処理を行うものとする。図9(A)では画素P1−1〜P8−1を処理方向DIR2で、例えば図4(C)に示したように圧縮処理を行い、符号化データCD1−1が生成される。同様に、画素P1−2〜P8−2、画素P1−3〜P8−3、・・・、画素P1−N〜P8−N、画素P9−1〜P16−1、画素P9−2〜P16−2、・・・、画素P9−N〜P16−N、・・・、画素PM−(N−7)−1〜PM−1、・・・、画素P(M−7)−N〜PM−Nを、それぞれ処理方向DIR2で圧縮処理を行って、符号化データCD1−2、CD1−3、・・・、CD1−K、CD2−1、CD2−2、・・・、CD2−K、・・・、CDL−1、・・・、CDL−Kが生成される。
こうして生成された符号化データは、図9(B)に示す順序MDR2で、メモリ120に格納されていく。即ち、まず符号化データCD1−1〜CD1−Kが順序MDR2でメモリ120に格納された後に、符号化データCD2−1〜CD2−Kが順序MDR2でメモリ120に格納される。ライトアドレス生成回路310は、図9(B)に示す順序で圧縮処理が行われるようにラインバッファ部350のライトアドレスを生成する。
この結果、第1及び第2の伸張処理部130、132は、メモリ120からの符号化データを、いわゆるラスタスキャンの方向で単純に読み出すだけでよい。即ち、符号化データCD1−K、CD2−K、・・・、CDL−K、CD1−(K−1)、CD2−(K−1)、・・・、CDL−(K−1)、・・・、CD1−1、・・・、CDL−1の順番に読み出すようにリードアドレス生成回路320がラインバッファ部350のリードアドレスを生成し、各符号化データに対して順番に伸張処理を行うことで、回転角度が90度のときの画像IMG1の画像データを出力できる。
図10(A)、図10(B)に、回転角度が180度のときの回転処理部150の動作説明図を示す。
図10(A)は、図7の入力画像IMG0を、画素単位で画像データを並べて表したものである。図10(A)では、入力画像IMG0の水平走査方向にN画素が並び、入力画像IMG0の垂直走査方向にM画素が並ぶものとする。そして、入力画像IMG0の水平走査方向に画素P1−1、P1−2、・・・、P1−Nが並び、入力画像IMG0の垂直走査方向に、例えば左端については画素P1−1、P2−1、・・・、PM−1が並ぶものとする。
また図10(B)は、回転角度が180度のときの回転処理後の画像データがメモリ120に格納される様子を模式的に表したものである。
ここで、圧縮処理部100が8画素単位で圧縮処理を行うものとする。図10(A)では画素P1−8〜P1−1を処理方向DIR3で、例えば図4(C)に示したように圧縮処理を行い、符号化データCD1−1が生成される。同様に、画素P1−16〜P1−9、・・・、画素P1−(N−7)〜P1−N、画素P2−8〜P2−1、画素P2−16〜P2−9、・・・、画素P2−(N−7)〜P2−N、・・・、画素PM−8〜PM−1、・・・、画素PM−(N−7)〜PM−Nを、それぞれ処理方向DIR3で圧縮処理を行って、符号化データCD1−2、・・・、CD1−K、CD2−1、CD2−2、・・・、CD2−K、・・・、CDL−1、・・・、CDL−Kが生成される。
こうして生成された符号化データは、図10(B)に示す順序MDR3で、メモリ120に格納されていく。即ち、まず符号化データCD1−1〜CD1−Kが順序MDR3でメモリ120に格納された後に、符号化データCD2−1〜CD2−Kが順序MDR3でメモリ120に格納される。ライトアドレス生成回路310は、図10(B)に示す順序で圧縮処理が行われるようにラインバッファ部350のライトアドレスを生成する。
この結果、第1及び第2の伸張処理部130、132は、メモリ120からの符号化データを、いわゆるラスタスキャンの方向で単純に読み出すだけでよい。即ち、符号化データCDL−K、CDL−(K−1)、・・・、CDL−1、CD(L−1)−K、CD(L−1)−(K−1)、・・・、CD(L−1)−1、・・・、CD1−K、・・・、CD1−1の順番に読み出すようにリードアドレス生成回路320がラインバッファ部350のリードアドレスを生成し、各符号化データに対して順番に伸張処理を行うことで、回転角度が180度のときの画像IMG2の画像データを出力できる。
図11(A)、図11(B)に、回転角度が270度のときの回転処理部150の動作説明図を示す。
図11(A)は、図7の入力画像IMG0を、画素単位で画像データを並べて表したものである。図11(A)では、入力画像IMG0の水平走査方向にN画素が並び、入力画像IMG0の垂直走査方向にM画素が並ぶものとする。そして、入力画像IMG0の水平走査方向に画素P1−1、P1−2、・・・、P1−Nが並び、入力画像IMG0の垂直走査方向に、例えば左端については画素P1−1、P2−1、・・・、PM−1が並ぶものとする。
また図11(B)は、回転角度が270度のときの回転処理後の画像データがメモリ120に格納される様子を模式的に表したものである。
ここで、圧縮処理部100が8画素単位で圧縮処理を行うものとする。図11(A)では画素P1−1〜P8−1を処理方向DIR4で、例えば図4(C)に示したように圧縮処理を行い、符号化データCD1−1が生成される。同様に、画素P1−2〜P8−2、・・・、画素P1−N〜P8−N、画素P9−1〜P16−1、画素P9−2〜P16−2、・・・、画素P9−N〜P16−N、・・・、画素P(M−7)−1〜PM−1、・・・、画素P(M−7)−N〜PM−Nを、それぞれ処理方向DIR4で圧縮処理を行って、符号化データCD1−2、・・・、CD1−K、CD2−1、・・・、CD2−K、・・・、CDL−1、・・・、CDL−Kが生成される。
こうして生成された符号化データは、図11(B)に示す順序MDR4で、メモリ120に格納されていく。即ち、まず符号化データCD1−1〜CD1−Kが順序MDR4でメモリ120に格納された後に、符号化データCD2−1〜CD2−Kが順序MDR4でメモリ120に格納され、符号化データCDL−1〜CDL−Kが順序MDR4でメモリ120に格納される。即ち、ライトアドレス生成回路310は、図11(B)に示す順序で圧縮処理が行われるようにラインバッファ部350のライトアドレスを生成する。
この結果、第1及び第2の伸張処理部130、132は、メモリ120からの符号化データを、いわゆるラスタスキャンの方向で単純に読み出すだけでよい。即ち、符号化データCDL−1、CD(L−1)−1、・・・、CD1−1、CDL−2、CD(L−1)−2、・・・、CD1−2、・・・、CDL−K、・・・、CD1−Kの順番に読み出すようにリードアドレス生成回路320がラインバッファ部350のリードアドレスを生成し、各符号化データに対して順番に伸張処理を行うことで、回転角度が270度のときの画像IMG3の画像データを出力できる。
以上のように、本実施形態によれば、回転処理に必要な作業領域に1画面分の画像データを保持する必要がなく、8画素を1ブロックとするブロック単位で圧縮処理を行う場合には最低8走査ライン数分の画像データを保持するラインバッファを用意しておくだけで済む。4画素を1ブロックとするブロック単位で圧縮処理を行う場合には、最低4走査ライン数分の画像データを保持するラインバッファを用意しておくだけで済む。
なお、本実施形態における回転処理部150は、図8(A)〜図8(B)、図9(A)〜図9(B)、図10(A)〜図10(B)及び図11(A)〜図11(B)で説明した処理を行うものに限定されるものではない。
2.3 圧縮処理部
図12に、図2の圧縮処理部100の構成例のブロック図を示す。
図12では、ベースバンドエンジン10から入力される画像の画像データのフォーマットがRGB888フォーマットであるものとする。
圧縮処理部100は、キーカラー比較回路(キーカラー比較部)700と、キーカラーテーブル702と、キーカラーコード生成回路704と、DPCM圧縮処理回路(符号化部)710と、選択器712とを含む。なお、図12では、圧縮処理部100がキーカラーテーブル702を含むものとして説明するが、図5の制御レジスタ部190がキーカラーテーブル702を含んでもよい。
キーカラー比較回路700には、回転処理部150の回転処理後の画像データと、キーカラーテーブル702に保持された16種類のキーカラーデータとが入力される。キーカラー比較回路700は、例えば1画素単位で、回転処理後の画像データが、キーカラーテーブル702に保持された16種類のキーカラーデータのいずれと一致するかを比較する。そして、キーカラー比較回路700は、該画像データが16種類のキーカラーデータのいずれかと一致したとき、選択制御信号SELcをアクティブにする。このとき、キーカラー比較回路700は、該画像データと一致したキーカラーを示す4ビットのキーカラーパラメータをキーカラーコード生成回路704に出力する。
キーカラーコード生成回路704は、キーカラー比較回路700からのキーカラーパラメータを用いてキーカラーコードを生成する。
図13に、図12のキーカラーテーブル702の説明図を示す。
キーカラーテーブル702には、16種類のキーカラーが設定される。各キーカラーは、24ビットのキーカラーデータにより指定される。そして、各キーカラーに対応して、4ビットで表現可能なキーカラーパラメータが割り当てられている。キーカラー比較回路700は、画像データと一致したキーカラーデータに割り当てられるキーカラーパラメータを出力する。
図14(A)、図14(B)に、図12のキーカラーコード生成回路704の動作説明図を示す。
本実施形態では、キーカラーであることを示すキーカラーIDが予め決められている。このキーカラーIDを先頭に設定することで、メモリ120から読み出したデータが、復号化側でキーカラーであることを容易に判別できるようになっている。そのため、本実施形態では、先頭に固定値の4ビットのキーカラーIDが設定され、その後に8ビットのキーカラーパラメータが設定されたキーカラーコードが生成される。
ここで、図4(A)〜図4(C)に示すように、圧縮処理部100が規定圧縮率以上の圧縮率で画像データを符号化することを保障するため、キーカラーコード生成回路704は、ビット長が、規定圧縮率を維持するビット数以下となるようにキーカラーコードを生成する。そのため、図14(B)に示すように、例えば4ビットのダミーデータ(図14(B)では、「0000」)を挿入することで、キーカラーコード生成回路704は、キーカラーコードのビット長が、規定圧縮率を維持するビット(12ビット)となるように調整することができる。こうすることで、符号化データに代えてキーカラーコードを出力しても、圧縮処理部100が保障する規定圧縮率以上の圧縮率を維持できる。しかも、キーカラーコードのビット長が予め固定であることが認識できれば、伸張側では、キーカラーコードの判別を簡素化できる。
図12に戻って説明を続ける。DPCM圧縮処理回路710は、回転処理後の画像データを、不可逆圧縮アルゴリズムであるDPCM符号化アルゴリズムで圧縮して符号化データを生成する。
選択器720は、キーカラー比較回路700からの選択制御信号SELcに基づいて、キーカラーコード生成回路704で生成されたキーカラーコード、又はDPCM圧縮処理回路710からの符号化データを出力する。より具体的には、選択器720は、選択制御信号SELcがアクティブのときキーカラーコードを符号化データとして出力し、選択制御信号SELcが非アクティブのときDPCM圧縮処理回路710からの符号化データをそのまま出力する。
図15に、図12のDPCM圧縮処理回路710の構成例のブロック図を示す。
DPCM圧縮処理回路710は、DPCM符号化回路400R、400G、400Bを含む。DPCM符号化回路400R、400G、400Bは、それぞれ同様の構成を有している。
画像データのフォーマットがRGB888フォーマットの場合、ホストI/F140や回転処理部150を介して入力される画像データは、1画素当たり24ビットである。そのうち、R成分の8ビットの画像データがDPCM符号化回路400Rに入力され、G成分の8ビットの画像データがDPCM符号化回路400Gに入力され、B成分の8ビットの画像データがDPCM符号化回路400Bに入力される。
各DPCM符号化回路は、圧縮処理対象の画素については8ビットの画像データを4ビットの符号化データとして出力する。このように圧縮処理部100は、色成分毎に、画像データを符号化する。また各DPCM符号化回路は、非圧縮処理対象の画素についてはそのまま8ビットの画像データを出力する。
図16に、図15のDPCM符号化回路400Rの構成例のブロック図を示す。
図16ではDPCM符号化回路400Rについて説明するが、DPCM符号化回路400G、400Bの構成も同様である。
DPCM符号化回路400Rは、減算器410R、量子化テーブル420R、逆量子化テーブル430R、加算器440R、選択器450R、452R、フリップフロップ460R、画素カウンタ470Rを含む。
減算器410Rは、入力された8ビットの画像データと、フリップフロップ460Rに保持された8ビットの画像データとの差分を求め、キャリービット(ボロービット)を含む9ビットの差分データを出力する。この差分データは、量子化テーブル420Rに供給される。
図17(A)に、図16の量子化テーブル420Rの構成の概要を示す。
量子化テーブル420Rには、予め9ビットの入力値に対応した4ビットの出力値が登録されている。この出力値は、入力値を量子化した値であり、この量子化した値を4ビットで表したものである。量子化テーブル420Rは、減算器410Rからの9ビットの差分データを入力値として、4ビットの出力値である量子化データを出力する。量子化データは、逆量子化テーブル430Rに供給される。
図17(B)に、図16の逆量子化テーブル430Rの構成の概要を示す。
逆量子化テーブル430Rは、量子化テーブル420Rに対応するテーブルである。逆量子化テーブル430Rには、予め4ビットの入力値に対応した9ビットの出力値が登録されている。この出力値は、入力値を逆量子化した値であり、この量子化した値を9ビットで表したものである。より具体的には、逆量子化テーブル430Rの出力値が量子化テーブル420Rの入力値となるように両テーブルの値が登録されている。
逆量子化テーブル430Rは、量子化テーブル420Rからの量子化データを入力値として、9ビットの出力値である逆量子化データを出力する。
図16に戻って説明を続ける。量子化テーブル420Rからの量子化データは、選択器450Rにも入力される。選択器450Rには、回転処理部150からの8ビットの画像データと4ビットの量子化データとが入力され、画素カウンタ470Rによって生成される選択制御信号SELに基づいて、いずれか1つのデータを出力する。選択器450Rの4ビット又は8ビットの出力データが、図4(A)に示す符号化データとなり、メモリ120に格納される。
逆量子化データは、加算器440Rに入力される。加算器440Rには、9ビットの逆量子化データとフリップフロップ460Rに保持された8ビットの画像データとが入力される。加算器440Rは、逆量子化データとフリップフロップ460Rの画像データとを加算し、8ビットの加算データを選択器452Rに供給する。
選択器452Rには、加算器440Rからの8ビットの加算データと、ホストI/F140を介して入力される8ビットの画像データとが入力され、画素カウンタ470Rによって生成される選択制御信号SELに基づいて、いずれか1つのデータを出力する。選択器452Rの選択データは、フリップフロップ460Rにおいて保持される。フリップフロップ460Rは、例えばホストI/F140を介して入力される画像データの色成分毎にカウントアップされるカウントパルスを用いて、選択データをラッチできる。
画素カウンタ470Rには、該カウントパルス、制御信号FMT、MODEが入力される。そして、制御信号MODEによりラインモードが指定されているとき、画素カウンタ470Rは、1走査ライン単位でDPCM符号化が行われるように選択制御信号SELを生成する。ラインモードでは、1走査ラインの先頭の第1の画素のみがそのまま出力され、その後の画素については直前の画素との差分が量子化される。一方、制御信号MODEによりパーシャルモードが指定されているとき、画素カウンタ470Rは、制御信号FMTにより指定される画像フォーマットに対応して、カウントパルスで規定されるタイミングに従って選択制御信号SELを生成する。
図18に、図16の画素カウンタ470Rの動作例のタイミング図を示す。
図18では、制御信号MODEによりパーシャルモードが指定されているときの画素カウンタ470Rの動作例を示している。
制御信号FMTによりRGB888フォーマットが指定されたとき、画素カウンタ470Rは、まず先頭の第1の画素については圧縮処理を行うことなくそのまま出力するように選択制御信号SELを生成する。この選択制御信号SELにより、各成分未符号化期間を規定できる。このため、選択器450R、452Rは、外部から入力された8ビットの画像データをそのまま選択出力する。その結果、圧縮処理部100が出力する符号化データは、入力される8ビットの画像データのまま出力できる。
そして、画素カウンタ470Rは、第1の画素に続く第2〜第4の画素について符号化処理を行うように選択制御信号SELを生成する。この選択制御信号SELにより、各成分符号化期間を規定できる。このため、選択器450Rは量子化データを出力し、選択器452Rは加算データを出力する。従って、隣の画素との差分を量子化したデータが符号化データとして出力される(各成分符号化期間)。
これに対して、制御信号MODEによりラインモードが指定されているときは、当該走査ラインの残りの画素について、パーシャルモードの第2〜第4の画素と同様の符号化が行われる。
なお、図15〜図18では、RGB888フォーマットを例に説明したが、画像フォーマットに応じて画素カウンタ470Rが選択制御信号SELのタイミングを変更することで、他の画像フォーマットについても同様に符号化できる。
また、圧縮処理部100の構成は図12〜図18に説明したものに限定されるものではない。
2.4 伸張処理部(第1の伸張処理部、第2の伸張処理部)
図19に、図2の第1の伸張処理部130の構成例のブロック図を示す。
図19では、第1の伸張処理部130について説明するが、第2の伸張処理部132についても同様である。図19についても、画像データのフォーマットがRGB888フォーマットであるものとする。
第1の伸張処理部130は、キーカラーコード検出回路(キーカラーコード検出部)750、キーカラーテーブル752、DPCM伸張処理回路(復号化部)760、選択器762を含む。なお、図19では、第1の伸張処理部130がキーカラーテーブル752を含むものとして説明するが、図5の制御レジスタ部190がキーカラーテーブル752を含んでもよい。
キーカラーコード検出回路750には、メモリ120からの符号化データが入力される。キーカラーコード検出回路750には、予めキーカラーであることを示すキーカラーIDが設定されており、該キーカラーIDに基づいてメモリ120からの符号化データがキーカラーコードであるか否かを検出する。キーカラーコード検出回路750は、メモリ120からの符号化データがキーカラーコードであると判別されたとき、選択制御信号SELdをアクティブにし、キーカラーコードに設定された4ビットのキーカラーパラメータを出力する。
キーカラーテーブル752には、図13に示すように、キーカラーパラメータに対応付けられたキーカラーを示す画像データが登録されている。従って、キーカラーテーブル752は、キーカラーコード検出回路750からの4ビットのキーカラーパラメータを受けて、キーカラーとして指定された24ビットの画像データを出力する。
DPCM伸張処理回路760は、メモリ120からの符号化データを、不可逆圧縮アルゴリズムであるDPCM符号化アルゴリズムに対応したDPCM復号化アルゴリズムで伸張して復号化データを生成する。
選択器762は、キーカラーコード検出回路750からの選択制御信号SELdに基づいて、キーカラーテーブル752からの画像データ、又はDPCM伸張処理回路760からの復号化データを出力する。より具体的には、選択器762は、選択制御信号SELdがアクティブのときキーカラーテーブル752からの画像データを復号化データとして出力し、選択制御信号SELdが非アクティブのときDPCM伸張処理回路760からの復号化データをそのまま出力する。
図20に、図19のDPCM伸張処理回路760の構成例のブロック図を示す。
DPCM伸張処理回路760は、DPCM復号化回路500R、500G、500Bを含む。DPCM復号化回路500R、500G、500Bは、それぞれ同様の構成を有している。
DPCM復号化回路500Rには、先頭の第1の画素のR成分の8ビットの画像データが入力された後、第2〜第4の画素のR成分の4ビットの符号化データが順次入力される。DPCM復号化回路500Gには、先頭の第1の画素のG成分の8ビットの画像データが入力された後、第2〜第4の画素のG成分の4ビットの符号化データが順次入力される。DPCM復号化回路500Bには、先頭の第1の画素のB成分の8ビットの画像データが入力された後、第2〜第4の画素のB成分の4ビットの符号化データが順次入力される。
各DPCM復号化回路は、圧縮処理対象の画素については4ビットの符号化データを8ビットの画像データとして出力する。このように第1の伸張処理部130は、色成分毎に、画像データを復号化する。また各DPCM復号化回路は、非圧縮処理対象の画素についてはそのまま8ビットの符号化を画像データとして出力する。
図21に、図20のDPCM復号化回路500Rの構成例のブロック図を示す。
図21ではDPCM復号化回路500Rについて説明するが、DPCM復号化回路500G、500Bの構成も同様である。
DPCM復号化回路500Rは、逆量子化テーブル510R、加算器520R、選択器530R、フリップフロップ540R、画素カウンタ550Rを含む。
逆量子化テーブル510Rは、図16の逆量子化テーブル430Rと同様であり、図17(B)に示す機能を有することができる。即ち、逆量子化テーブル510Rは、4ビットの符号化データを9ビットの逆量子化データに変換する。
加算器540Rには、逆量子化テーブル510Rからの逆量子化データとフリップフロップ540Rに保持された8ビットの画像データとが入力される。加算器540Rは、逆量子化データとフリップフロップ540Rの画像データとを加算し、8ビットの加算データとして出力する。加算データは、選択器530Rに入力される。
選択器530Rには、非圧縮処理対象の8ビットの画像データと加算データとが入力され、画素カウンタ550Rにより生成された選択制御信号SEL1に基づいていずれか1つのデータが出力される。選択器530Rの選択データは、フリップフロップ540Rにおいて保持される。
フリップフロップ540Rは、メモリ120から読み出される画像データの色成分毎にカウントアップされるカウントパルスを用いて、選択データをラッチできる。
画素カウンタ550Rには、該カウントパルス、制御信号FMT、MODEが入力される。そして、制御信号MODEによりラインモードが指定されているとき、画素カウンタ470Rは、1走査ライン単位でDPCM復号化が行われるように選択制御信号SEL1を生成する。ラインモードでは、1走査ラインの先頭の第1の画素のみがそのまま出力され、その後の画素についてはDPCM復号化が行われる。一方、制御信号MODEによりパーシャルモードが指定されているとき、画素カウンタ550Rは、制御信号FMTにより指定される画像フォーマットに対応して、カウントパルスで規定されるタイミングに従って選択制御信号SEL1を生成する。
ラインモードが指定され、且つ制御信号FMTによりRGB888フォーマットが指定されたとき、画素カウンタ550Rは、まず先頭の第1の画素については伸張処理を行うことなくそのまま出力するように選択制御信号SEL1を生成する。このため、選択器530Rは、メモリ120から読み出された画像データをそのまま選択出力する。そして、画素カウンタ550Rは、第1の画素に続く当該走査ラインの残りの画素について復号化処理を行うように選択制御信号SEL1を生成する。このため、選択器530Rは加算データを出力する。この結果、第1の伸張処理部130は、DPCM復号化処理された8ビットの画像データを出力できる。
パーシャルモードが指定され、且つ制御信号FMTによりRGB888フォーマットが指定されたとき、画素カウンタ550Rは、まず先頭の第1の画素については伸張処理を行うことなくそのまま出力するように選択制御信号SEL1を生成する。このため、選択器530Rは、メモリ120から読み出された画像データをそのまま選択出力する。そして、画素カウンタ550Rは、第1の画素に続く第2〜第4の画素について復号化処理を行うように選択制御信号SEL1を生成する。このため、選択器530Rは加算データを出力する。この結果、第1の伸張処理部130は、DPCM復号化処理された8ビットの画像データを出力できる。
図19〜図21では、RGB888フォーマットを例に説明したが、画像フォーマットに応じて画素カウンタ550Rが選択制御信号SEL1のタイミングを変更することで、他の画像フォーマットについても同様に復号化できる。
なお、第1の伸張処理部130の構成は図19〜図21に説明したものに限定されるものではない。
2.5 オーバレイ処理部
図22に、図2のオーバレイ処理部170の構成例のブロック図を示す。
オーバレイ処理部170は、キーカラー比較回路800、透過比率テーブル802、αブレンド回路810を含む。
キーカラー比較回路800には、第1のフォーマット変換部160を介して24ビットの復号化データがレイヤ1データとして入力され、第2のフォーマット変換部162を介して24ビットの復号化データがレイヤ2データとして入力される。
透過比率テーブル802には、オーバレイ処理設定レジスタ220を介してキーカラーに対応した透過比率が登録されている。図22では、オーバレイ処理部170が透過比率テーブル802を含むものとして説明したが、制御レジスタ部190が透過比率テーブル802を含んでもよい。この透過比率テーブル802は、16種類の24ビットのキーカラーに対応した画像データをキーカラー比較回路800に出力すると共に、キーカラーに対応した16種類の透過比率GM0〜GM15をαブレンド回路810に出力する。
上述のキーカラー比較回路800は、例えば1画素単位で、レイヤ1データが、透過比率テーブル802からの16種類のキーカラーデータのいずれと一致するかを比較する。そして、キーカラー比較回路800は、該画像データが16種類のキーカラーデータのいずれかと一致したとき、1ビットの一致検出ビットと、どのキーカラーと一致したかを示す4ビットのキーカラーパラメータとを出力する。
αブレンド回路810には、レイヤ1データ、レイヤ2データ、透過比率テーブル802からの透過比率、一致検出ビット、キーカラーパラメータが入力される。αブレンド回路810は、これらを用いてレイヤ1データ、レイヤ2データの重ね合わせ処理を行い、出力データを出力する。
αブレンド回路810は、RGBの色成分毎に、第1及び第2のフォーマット変換部160、162からの画像データに対して重ね合わせ処理を行う重ね合わせ処理回路を有する。
図23に、図22のαブレンド回路810のR成分用の重ね合わせ処理回路の構成例のブロック図を示す。図23ではR成分用の重ね合わせ処理回路を示すが、G成分及びB成分についても同様である。
αブレンド回路810のR成分用の重ね合わせ処理回路810Rは、第1及び第2の乗算器600R、610Rと、加算器620Rと、透過比率選択回路630Rとを含む。
透過比率選択回路630Rは、キーカラー比較回路800からの1ビットの一致検出ビット、及び4ビットのキーカラーパラメータに基づいて、透過比率テーブル802からの透過比率GM0〜GM15のうちの2つを選択して、透過比率g1、g2として出力する。
図24に、図23の透過比率選択回路630Rの動作説明図を示す。
一致検出ビットにより不一致が指定されたとき、透過比率選択回路630Rは、透過比率g1として「1」、透過比率g2として「0」を出力する。
一致検出ビットにより一致が指定され、且つキーカラーパラメータによりキーカラー0と一致することが指定されたとき、透過比率選択回路630は、透過比率g1として「0.95」、透過比率g2として「0.05」を出力する。以下、同様に、一致検出ビットにより一致が指定され、且つキーカラーパラメータによりキーカラー14と一致することが指定されたとき、透過比率選択回路630Rは、透過比率g1として「0.05」、透過比率g2として「0.95」を出力する。
図23に戻って説明を続ける。第1の乗算器600Rには、制御信号GM1と第1のフォーマット変換部160によってフォーマット変換された画像データとが入力される。例えば第1の乗算器600Rは、該画像データに対して、色成分毎に制御信号GM1により指定される透過比率を乗算して加算器620Rに出力する。
第2の乗算器610Rには、制御信号GM2と第2のフォーマット変換部160によってフォーマット変換された画像データとが入力される。例えば第2の乗算器610Rは、該画像データに対して、色成分毎に制御信号GM2により指定される透過比率を乗算して加算器620Rに出力する。
加算器620Rは、第1の乗算器600Rからの乗算データと第2の乗算器610Rからの乗算データとを色成分毎に加算し、重ね合わせ処理後のデータとして出力する。
ここで、第1の乗算器600Rからの乗算データをMD1、第2の乗算器610Rからの乗算データをMD2とすると、加算器620の出力データODは、次式で表される。
OD(R)=MD1(R)×g1+MD2(R)×g2 ・・・(1)
ここで、(R)はR成分のデータであることを示す。この結果、図24に示すように、一致検出ビットにより不一致が指定されたとき、レイヤ1を100%表示するように出力データが生成される。また、一致検出ビットにより一致が検出され、且つキーカラー14と一致したことが指定されたとき、レイヤ1を5%表示し、且つレイヤ2を95%表示するように出力データが生成される。
この重ね合わせ処理後のデータが、ドライバI/F180を介して表示ドライバ40に供給される。従って、G成分の出力データOD(G)、B成分の出力データOD(B)についても、(1)式と同様である。
3. 電子機器
図25に、本実施形態における電子機器としての携帯電話機の構成例のブロック図を示す。図25において、図1と同一部分には同一符号を付し、適宜説明を省略する。
携帯電話機900は、カメラモジュール910を含む。カメラモジュール910は、CCDカメラを含み、CCDカメラで撮像した画像のデータを、例えばYUVフォーマットで画像処理コントローラ50(画像処理装置)に供給する。
携帯電話機900は、液晶表示パネル20を含む。液晶表示パネル20は、表示ドライバ40(駆動部)によって駆動される。液晶表示パネル20は、複数のゲート線、複数のソース線、複数の画素を含む。
表示ドライバ40は、ゲートドライバ42、ソースドライバ44及び電源回路46を含む。ゲートドライバ42は、液晶表示パネル20の複数のゲート線を走査する。ソースドライバ44は、液晶表示パネル20の複数のソース線を、画像データに基づいて駆動する。電源回路46は、ゲートドライバ42、ソースドライバ44及び液晶表示パネル20の電圧を生成する。電源回路46は、ソースドライバ44及びゲートドライバ42に接続され、各ドライバに対して、駆動用の電源電圧を供給する。また電源回路46は、液晶表示パネル20の対向電極に、対向電極電圧Vcomを供給する。
画像処理コントローラ50は、表示ドライバ40に接続され、ソースドライバ44に対してRGBフォーマットの画像データを供給する。
ベースバンドエンジン10は、画像処理コントローラ50に接続される。ベースバンドエンジン10は、画像処理コントローラ50を制御する。またベースバンドエンジン10は、アンテナ960を介して受信された画像データを、変復調部950で復調した後、画像処理コントローラ50に供給できる。画像処理コントローラ50は、この画像データに基づき、ソースドライバ44及びゲートドライバ42により液晶表示パネル20に表示させる。
ベースバンドエンジン10は、カメラモジュール910で生成された画像データを変復調部950で変調した後、アンテナ960を介して他の通信装置への送信を指示できる。
ベースバンドエンジン10は、操作入力部970からの操作情報に基づいて画像データの送受信処理、カメラモジュール910の撮像、液晶表示パネル20の表示処理を行う。
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、本発明は上述の液晶表示パネルの駆動に適用されるものに限らず、エレクトロルミネッセンス、プラズマディスプレイ装置の駆動に適用可能である。
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。