(57)【要約】【課題】ランレングス圧縮変換を適用して、データが劣化することなく、且つ原データよりも圧縮変換後のデータ長が長くなることを抑制する。【解決手段】メモリアクセスに応答して外部メモリ（３）に対する書き込みおよび読み出しを制御するメモリインタフェースコントローラ（２０）を備えた半導体装置（１）であって、外部メモリにデータを書き込むときには、入力された書き込みデータのランレングス圧縮変換を行って、変換後のデータのデータ長と変換前のデータのデータ長を比較し、データ長が短い方のデータを、メモリに出力する書き込みデータとして生成し、外部メモリからデータを読み出したときには、当該データが、ランレングス圧縮変換済みのデータであれば、伸張処理を行う。【選択図】図１
2011015322.tif 000002
【特許請求の範囲】
【請求項１】
メモリアクセスに応答して外部メモリに対する書き込みおよび読み出しを制御するメモリインタフェースコントローラを備えた半導体装置であって、
前記メモリインタフェースコントローラは、入力された書き込みデータに対するランレングス圧縮変換処理を行う圧縮変換部と、メモリから読み出されたランレングス圧縮変換済みのデータに対する伸張処理を行なう復元部とを備え、
前記圧縮変換部は、前記入力された書き込みデータに対するランレングス圧縮変換を行い、変換後のデータのデータ長と変換前のデータのデータ長とを比較し、変換後のデータのデータ長が短いときは当該データを、そうでないときは変換前のデータを、メモリに出力する書き込みデータとする、半導体装置。
【請求項２】
前記圧縮変換部は、前記入力された書き込みデータのｎ×ｍ（ｎ、ｍは正の整数）ビットに対して順次ｎビット単位でランレングス圧縮変換を行う第１の処理を実行し、第１の処理による圧縮変換後のデータ長が圧縮変換前のデータ長よりも短いときは第１の処理による圧縮変換後のデータを、メモリに出力する書き込みデータとし、第１の処理による圧縮変換後のデータ長が圧縮変換前のデータ長よりも長いときは、前記ｎビット単位の各データにおけるＭＳＢからＬＳＢまでの対応するビット位置の夫々ｍビットのｎ個のビット列に対して、当該ビット列毎に１ビット単位でランレングス圧縮変換を行う第２処理を実行し、第２の処理による圧縮変換後のデータ長が圧縮変換前のデータ長よりも短いときは前記第２処理による圧縮変換後のデータを、逆の場合には圧縮変換前のデータを、メモリに出力する書き込みデータとする、請求項１記載の半導体装置。
【請求項３】
前記入力された書き込みデータを２ｎ×ｍ（ｎ、ｍは正の整数）ビットとすると、前記圧縮変換部は、２ｎビット単位のデータの上位側ｎ×ｍビットと下位側ｎ×ｍビットに対して第１の処理と第２処理を別々に実行する、請求項２記載の半導体装置。
【請求項４】
前記圧縮変換部は、前記上位側ｎ×ｍビットに対する第１の処理による圧縮変換後のデータ長が圧縮変換前のデータ長よりも短いとき前記下位側ｎ×ｍビットに対して前記第１処理の開始を指示し、
前記圧縮変換部は、前記上位側ｎ×ｍビットに対する第１の処理による圧縮変換後のデータ長が圧縮変換前のデータ長よりも長いとき前記下位側ｎ×ｍビットに対して前記第２処理の開始を指示する、請求項３記載の半導体装置。
【請求項５】
前記圧縮変換部は、前記メモリに出力される書き込みデータとされる、前記第１処理による圧縮前のデータには、第１処理により圧縮されていないことを示す第１コードを付加し、
前記メモリに出力される書き込みデータとされる、前記第１処理による圧縮変換後のデータには、第１処理により圧縮されたことを示す第２コードを付加し、
前記メモリに出力される書き込みデータとされる、前記第２処理による圧縮変換後のデータには、夫々ｍビットのｎ個のビット列のどのビット列のデータであって且つ圧縮されたか否かを示す第３コードを付加する、請求項３又は４記載の半導体装置。
【請求項６】
前記第１処理でランレングス圧縮変換されたデータにおいて、変換前のｎビット単位のデータの種別を示す識別子に対する個数のデータはｍ＝２ｉで示されるｉビットのデータである、請求項５記載の半導体装置。
【請求項７】
前記第２処理でランレングス圧縮変換されたデータにおいて、変換されたデータの先頭の論理値を値１又は値０の何れか一方に固定してデータの種別を示す識別子を省略し、個数のデータはｉビットのデータであり、ｉビットの全ビット０は、先頭に既定の論理値がないことを示し、ｉビットの全ビット１が示す個数ｍ−１の次の個数ｍは、その論理値が１のときは、２ｉビットの全ビットを１とすることにより表し、その論理値が０のときは、ｉビットの全ビットを０とし、且つ２ｉビットの全ビットを１とすることにより表す、請求項６記載の半導体装置。
【請求項８】
前記外部メモリにアドレス信号を出力すると共に、前記外部メモリに書き込みデータを出力し、また、前記外部メモリから読み出したデータを入力するメモリインタフェース部と、アドレス管理部と、を更に有し、
前記アドレス管理部は、画素の配列に従ったタイミング信号によりデータのデータ位置を計数するカウンタと、前記外部メモリに対するデータの書き込みに際して前記ランレングス圧縮変換処理の処理単位毎に前記カウンタによる計数値と前記外部メモリに出力する書き込みデータのデータ長とを管理データとして保持し、また、前記外部メモリからの読み出しに際して前記カウンタの計数値に一致する計数値を持つ管理データを出力する記憶回路とを有し、
前記メモリインタフェース部は、前記記憶回路から読み出された管理データの前記データ長に基づいて前記外部メモリからデータを読み出して前記復元部に与える、請求項１乃至７の何れか１項記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特にデータをランレングス圧縮変換する技術に係り、例えば外部メモリを利用して画像データ扱う表示システムに適用して有効な技術に関する。
【背景技術】
【０００２】
近年、ＡＶ機器、ＰＣ及び携帯端末等では、ＴＶ放送等の画像データやディジタルスチルカメラ等で撮影された画像データ等を扱う機会が増え、扱うデータ量が増加している。そのため、外部メモリにアクセスする際のＩ／Ｏ電流の増加や搭載する外部メモリの容量増加に伴うコストアップという問題が顕著になっている。従来の外部メモリの容量を削減する方法として、例えば下記の特許文献１にて開示されている。
【０００３】
特許文献１は、静止画像データを圧縮して記録メディア等の外部メモリに記録する機能を持ったメモリ制御回路において、輝度データ（Ｙ）と色差データ（Ｕ、Ｖ）がＹ：Ｕ：Ｖ＝４：２：２である画像データを４：１：１の色差成分を間引いた画像データに変換する。この色差成分を間引いた画像データをメモリに記憶することにより、使用するメモリ容量の削減を図るものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２１０５０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の方法では、輝度データ（Ｙ）と色差データ（Ｕ、Ｖ）が４：２：２である画像データを４：１：１の色差成分を間引いた画像データに変換してメモリに記憶する。このため、記憶したデータを完全復元できず、データが劣化する問題があった。本発明者は、完全復元可能な圧縮方法としてランレングス圧縮方式を適用することを考えたが、この方式を単に適用したのでは、原データの種類によっては、圧縮後のデータのデータ長が原データのデータ長よりも長くなることがわかった。
【０００６】
本発明の目的は、ランレングス圧縮変換を適用して、データが劣化することなく、且つ原データよりも圧縮変換後のデータ長が長くなることを抑制し、圧縮率を高めることができるメモリコントローラを備えた、半導体装置を提供することにある。
【０００７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００９】
すなわち、半導体装置は、メモリアクセスに応答して外部メモリにデータを書き込むときには、入力された書き込みデータのランレングス圧縮変換を行って、変換後のデータのデータ長と変換前のデータのデータ長を比較し、データ長が短い方のデータを、メモリに出力する書き込みデータとして生成し、外部メモリからデータを読み出したときには、当該データが、ランレングス圧縮変換済みのデータであれば、伸張処理を行う。
【発明の効果】
【００１０】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１１】
すなわち、本半導体装置によれば、ランレングス圧縮変換を適用して、データが劣化することなく、且つ原データよりも変換後のデータ長が長くなることを抑制し、圧縮率を高めることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の実施の形態１に係る半導体装置１のブロック図である。
【図２】図２は、本発明の実施の形態１に係る４ビット圧縮変換と１ビット圧縮変換についての概略図である。
【図３】図３は、本発明の実施の形態１に係るランレングス圧縮変換データフォーマットとデータ識別子である。
【図４】図４は、本発明の実施の形態１に係る半導体装置１による外部メモリ３へのデータ書き込み時の処理の流れ図である。
【図５】図５は、本発明の実施の形態１に係る半導体装置１の外部メモリ３へのデータ読み出し時の処理の流れ図である。
【図６】図６は、本発明の実施の形態１に係る半導体装置１における圧縮変換部２０２のブロック図である。
【図７】図７は、本発明の実施の形態１に係る半導体装置１の上位４ビット圧縮変換の処理の流れ図である。
【図８】図８は、本発明の実施の形態１に係る半導体装置１の下位４ビット圧縮変換の処理の流れ図である。
【図９】図９は、本発明の実施の形態２に係る半導体装置２のブロック図である。
【図１０】図１０は、本発明の実施の形態２に係る半導体装置２による外部メモリ３へのデータ書き込み時の処理の流れ図である。
【図１１】図１１は、本発明の実施の形態２に係る半導体装置２による外部メモリ３へのデータ読み出し時の処理の流れ図である。
【発明を実施するための形態】
【００１３】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１４】
〔１〕本発明の代表的な実施の形態に係る半導体装置（１、２）は、メモリアクセスに応答して外部メモリ（３）に対する書き込みおよび読み出しを制御するメモリインタフェースコントローラ（２０、２１）を備えた半導体装置であって、前記メモリインタフェースコントローラは、入力された書き込みデータ（１００）に対するランレングス圧縮変換処理を行う圧縮変換部（２０２、２１１）と、メモリから読み出されたランレングス圧縮変換済みのデータに対する伸張処理を行なう復元部（２０５）とを備え、前記圧縮変換部は、前記入力された書き込みデータに対するランレングス圧縮変換を行い、変換後のデータのデータ長と変換前のデータのデータ長とを比較し、変換後のデータのデータ長が短いときは当該データを、そうでないときは変換前のデータを、メモリに出力する書き込みデータ（２１０２）とする。これによれば、当該データのランレングス圧縮変換前のデータ長と変換後のデータ長を比較して、データ長の短い方のデータをメモリに書き込むデータとして生成するから、単にランレングス圧縮変換を行う場合に比べ、圧縮率を高めることができる。
【００１５】
〔２〕項１の半導体装置において、前記圧縮変換部は、前記入力された書き込みデータのｎ×ｍ（ｎ、ｍは正の整数）ビットに対して順次ｎビット単位でランレングス圧縮変換を行う第１の処理を実行し、第１の処理による圧縮変換後のデータ長が圧縮変換前のデータ長よりも短いときは第１の処理による圧縮変換後のデータを、メモリに出力する書き込みデータとし、第１の処理による圧縮変換後のデータ長が圧縮変換前のデータ長よりも長いときは、前記ｎビット単位の各データにおけるＭＳＢからＬＳＢまでの対応するビット位置の夫々ｍビットのｎ個のビット列に対して、当該ビット列毎に１ビット単位でランレングス圧縮変換を行う第２処理を実行し、第２の処理による圧縮変換後のデータ長が圧縮変換前のデータ長よりも短いときは前記第２処理による圧縮変換後のデータを、逆の場合には圧縮変換前のデータを、メモリに出力する書き込みデータとする。これによれば、ｎビット単位のランレングス圧縮変換を行った変換データのデータ長が変換前のデータよりも長くなった場合でも、再度１ビット単位のランレングス変換を試みるので、ｎビット単位のランレングス変換しか行わない場合に比べ、圧縮率を高めることができる。
【００１６】
〔３〕項２の半導体装置において、前記入力された書き込みデータを２ｎ×ｍ（ｎ、ｍは正の整数）ビットとすると、前記圧縮変換部は、２ｎビット単位のデータの上位側ｎ×ｍビットと下位側ｎ×ｍビットに対して第１の処理と第２処理を別々に実行する。これにより、連続するデータの相関が低い場合でも、上位側の相関が高ければ、上位側だけ圧縮変換することでデータ量を減らすことができ、圧縮率を高めることができる。
【００１７】
〔４〕項３の半導体装置において、前記圧縮変換部は、前記上位側ｎ×ｍビットに対する第１の処理による圧縮変換後のデータ長が圧縮変換前のデータ長よりも短いとき前記下位側ｎ×ｍビットに対して前記第１処理の開始を指示し、前記圧縮変換部は、前記上位側ｎ×ｍビットに対する第１の処理による圧縮変換後のデータ長が圧縮変換前のデータ長よりも長いとき前記下位側ｎ×ｍビットに対して前記第２処理の開始を指示する。これにより、連続するデータの上位側の相関性に基づいて下位側の変換を行うので、下位側を効率よく処理することができる。
【００１８】
〔５〕項３又は４の半導体装置において、前記圧縮変換部は、前記メモリに出力される書き込みデータとされる、前記第１処理による圧縮前のデータには、第１処理により圧縮されていないことを示す第１コードを付加し、前記メモリに出力される書き込みデータとされる、前記第１処理による圧縮変換後のデータには、第１処理により圧縮されたことを示す第２コードを付加し、前記メモリに出力される書き込みデータとされる、前記第２処理による圧縮変換後のデータには、夫々ｍビットのｎ個のビット列のどのビット列のデータであって且つ圧縮されたか否かを示す第３コードを付加する。
【００１９】
〔６〕項５の半導体装置の前記第１処理でランレングス圧縮変換されたデータにおいて、変換前のｎビット単位のデータの種別を示す識別子に対する個数のデータはｍ＝２ｉで示されるｉビットのデータである。
【００２０】
〔７〕項６の半導体装置の前記第２処理でランレングス圧縮変換されたデータにおいて、変換されたデータの先頭の論理値を値１又は値０の何れか一方に固定してデータの種別を示す識別子を省略し、個数のデータはｉビットのデータであり、ｉビットの全ビット０は、先頭に既定の論理値がないことを示し、ｉビットの全ビット１が示す個数ｍ−１の次の個数ｍは、その論理値が１のときは、２ｉビットの全ビットを１とすることにより表し、その論理値が０のときは、ｉビットの全ビットを０とし、且つ２ｉビットの全ビットを１とすることにより表す。これにより、データ種別を示す識別子のデータが不要となり、且つデータの個数を表すデータ長をｉ＋１に増やすことなく、ｉビットのデータ長でｍ個のデータを表現することができ、データ長を短くすることが保証される。
【００２１】
〔８〕項１乃至７の何れかの半導体装置において、前記外部メモリにアドレス信号を出力すると共に、前記外部メモリに書き込みデータを出力し、また、前記外部メモリから読み出したデータを入力するメモリインタフェース部（２０３、２１０）と、アドレス管理部（２２）と、を更に有し、前記アドレス管理部は、画素の配列に従ったタイミング信号によりデータのデータ位置を計数するカウンタ（２０８）と、前記外部メモリに対するデータの書き込みに際して前記ランレングス圧縮変換処理の処理単位毎に前記カウンタによる計数値と前記外部メモリに出力する書き込みデータのデータ長とを管理データとして保持し、また、前記外部メモリからの読み出しに際して前記カウンタの計数値に一致する計数値を持つ管理データを出力する記憶回路（２０９）とを有し、前記メモリインタフェース部は、前記記憶回路から読み出された管理データの前記データ長に基づいて前記外部メモリからデータを読み出して前記復元部に与える。これにより、外部メモリの容量を無駄なく利用することができる。
【００２２】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００２３】
《実施の形態１》
図１は、本発明に係る半導体装置の実施の形態に係るメモリインタフェースコントローラ、を備えた半導体装置を示す。同図に示される半導体装置１は、特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成されている。
【００２４】
図１に示される半導体装置１は、メモリＩ／Ｆコントローラ部２０を備え、ＣＰＵから外部メモリ３への書き込み及び読み出し命令をメモリＩ／Ｆコントローラ部２０に与えることで、メモリＩ／Ｆコントローラ部２０が、データを圧縮し、外部メモリ３へのデータの書き込みを行い、また、読み出した圧縮データを伸長するものである。
【００２５】
メモリＩ／Ｆコントローラ部２０は、ＣＰＵからのメモリへの書き込み命令に従い、メモリへの書き込みデータとして与えられた入力データ１００について、ランレングス圧縮変換を行い、変換後のデータと変換前のデータのデータ長を比較して、データ長の短い方のデータをメモリに書き込むデータとする。そして、自らアドレスを生成し、外部メモリ３へデータを書き込む。また、ＣＰＵから読み出し命令を受けたら、自ら管理しているアドレスに従い、メモリからデータを読み出し、ランレングス圧縮の逆変換により、データを伸長して、データを出力する。
【００２６】
メモリＩ／Ｆコントローラ部２０は、データ圧縮の方式として、ランレングス圧縮を採用する。ランレングス圧縮は、あるデータ列をデータ種別とそのデータの連続する個数により、データ量を減らしてデータ列を表現する圧縮方法である。例えば、自然画であるＴＶ放送の画像データやムービー等で撮影した画像データを扱う場合を考える。自然画は空間周波数が低く、隣接画素間の値が近い（相関が高い）。そのため、画素間の相関関係を利用した情報圧縮を行うことが可能である。例えば、ある画素データが１画素あたり８ビットのデータであり、１６進表記で“ＦＦ”であったとすると、隣接する画素のデータは“ＦＦ”や“ＦＥ”のようになり、データの種別と連続した長さを用いたランレングス圧縮により、情報量を削減することが可能である。一方、ランレングス圧縮は連続するデータ間の相関関係を利用した圧縮方法なので、データ間の相関が弱いと元データよりも圧縮後のデータの方が、データ長が長くなってしまうことがありうる。こうなると、圧縮することでデータ量を減らすという本来の目的を達成することができない。そこで、本実施の形態１に係るメモリＩ／Ｆコントローラ部２０は、圧縮方式としてランレングス変換を採用するが、ランレングス変換後のデータと変換前のデータのデータ長を比較して、データ長の短い方のデータをメモリに書き込むようにする。
【００２７】
前述のように、連続するデータ間の相関が強いとランレングス圧縮を行うメリットがある。例えば、入力データ１００が、“ＦＦＦＥＦＥＦＤ”のような１画素あたり８ビットの画像データが４画素並んでいるデータ列である場合を考える。このとき、当該データ列の１画素の上位側４ビットと下位側４ビットを分けて隣接する画素間の相関を調べると、上位側４ビットは“ＦＦＦＦ”であり、下位側４ビットは“ＦＥＥＤ”となる。このようにデータ列の１画素毎の相関が弱くても、上位側４ビットについては相関が強いことがある。このような場合には、データ列を上位側４ビットと下位側４ビットのデータ列に分けて、相関の強い方についてのみランレングス圧縮変換をすることで、元のデータをそのままランレングス圧縮変換するよりも、圧縮効率を高めることができる。そこで、本実施の形態１に係るメモリＩ／Ｆコントローラ部２０は、入力データ１００を上位側と下位側のデータ列に分けて、それぞれについてランレングス圧縮変換を行う。
【００２８】
本実施の形態１に係るメモリＩ／Ｆコントローラ部２０によるランレングス圧縮変換の方法について説明する。
【００２９】
本実施の形態１では、メモリＩ／Ｆコントローラ部２０は、ランレングス圧縮変換を４ビット単位のランレングス圧縮変換（「４ビット圧縮変換」という。以下同じ。）と１ビット単位のランレングス圧縮変換（「１ビット圧縮変換」という。以下同じ。）の２種類の変換方法を備える。
【００３０】
図２は本実施の形態１に係る４ビット圧縮変換と１ビット圧縮変換についての概略図である。
【００３１】
図２では、例として１画素のデータ長が８ビットである横方向１６画素分の画像データ列（ＦＦＦＥＦＥＦＤＦＥＦＦＦＦＦＥＦＦＦＤＦＤＦＢＦＤＦＥＦＦＦＦ）について、各画素データの上位側４ビットと下位側４ビットのそれぞれをデータ列としてランレングス圧縮変換する場合を示している。図２を用いて４ビット圧縮変換と１ビット圧縮変換について説明する。
【００３２】
４ビット圧縮変換は、元のデータ列を４ビット単位のデータで扱い、４ビット単位のデータ種別と、その連続する個数（「連続長」という。以下同じ。）でデータを表現する圧縮方法である。図２に示すように、４ビット圧縮変換は、各画素データＰ０〜Ｐ１５（各４ビット）を１６個の連続するデータ列として扱い、各画素データのデータ種別（４ビットで表せる１６種類）と連続長で表現する。当該上位４ビットデータ列“ＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦ”は、４ビット圧縮変換すると、“ＦＦ”と表現される。“ＦＦ”とは、“Ｆ”という種類のデータが１６個続くことを表している。また、当該下位４ビットデータ列“ＦＥＥＤＥＦＦＥＦＤＤＢＤＥＦＦ”は、４ビット圧縮変換すると、“Ｆ０Ｅ１Ｄ０Ｅ０Ｆ１Ｅ０Ｆ０Ｄ１Ｂ０Ｄ０Ｅ０Ｆ１”と表現される。
【００３３】
１ビット圧縮変換は、４ビット単位の各データにおけるＭＳＢからＬＳＢまでの対応するビット位置の夫々のビット列に対して、当該ビット列毎に１ビット単位でランレングス変換を行う圧縮方法である。図２の下位側データ列の表に示されるように、１ビット圧縮変換は、各画素データＰ０〜Ｐ１５（各４ビット）におけるＭＳＢからＬＳＢに対応するビット位置のデータを横方向に１６個連続するデータ列として扱い、ＭＳＢからＬＳＢに対応する４個のデータ列についてそれぞれ、データ種別と連続長で表現する。例えば、当該下位４ビットデータ列の場合、図２に示すようにＤ３のデータ列は“１１１１１１１１１１１１１１１１”となり、Ｄ０のデータ列は、“１００１０１１０１１１１１０１１”となる。これらのデータ列それぞれについて、ランレングス圧縮を行っていくことになるが、データの表現方法が４ビット圧縮変換とは異なる。まず、データ種別の表現方法ついては、１ビット単位のランレングス変換の場合、データ種別を表現するための識別子は不要とした。これは、１ビットのデータの種別が、“１”と“０”の二種類であるから、変換されたデータの先頭の論理値を“１”又は“０”の何れか一方に固定すれば、データの種別を示す識別子がなくとも、データの種別が判別できるからである。次にデータの連続長の表現方法は以下のようにする。前述の４ビット圧縮変換ではデータの種別を表す識別子があり、データが０個であることを表現する必要がないので、１個から１６個までの連続長（１６通り）を表現するためには、４ビットあれば足りる。これに対して、１ビット圧縮変換では、データの先頭の論理値を固定することで、データ種別を表す識別子を不要としているから、データ列の先頭に来るデータが０個であることを連続長で表現する必要がある。つまり、１ビット圧縮変換では、０個から１６個までの連続長（１７通り）を表現する必要があるので、４ビットでは表現することができない。だからといって、０個から１６個までの連続長を表現するために５ビットの信号を用いると、圧縮効率が低下してしまう。そこで、本実施の形態１では、データの先頭の論理値を“１”に固定した上で、０個から１５個までの連続長（１６通り）を４ビットで表現すると共に、連続長の並び順として存在しえない“ＦＦ”という表記を用いて、“１”が１６個連続した場合には“ＦＦ”と表記し、“０”が１６個連続した場合には“０ＦＦ”と表記することでデータの連続長を表現する。
【００３４】
以上の方法により、図２の下位４ビットデータ列ついて、１ビット圧縮変換を行うと、Ｄ３（ＭＳＢ）に対応するデータ列は、“ＦＦ”と変換され、Ｄ０（ＬＳＢ）に対応するデータ列は、“１２１１２１５１２”と変換される。
【００３５】
図３は、本実施の形態１に係るランレングス圧縮変換データフォーマットとデータ識別子の一例である。本実施の形態１の場合、外部メモリ３に書き込まれるデータの種類は、非圧縮データ、４ビット圧縮変換データ及び１ビット圧縮変換データの３種類となる。これらのデータを外部メモリ３から読み出す際には、どの種類のデータであるかを識別できないと、メモリＩ／Ｆコントローラ部２０は、データの伸長等を適切に行うことができないので、メモリＩ／Ｆコントローラ部２０は、それぞれのデータにデータ識別子を付加して外部メモリ３に書き込む。外部メモリ３に書き込まれるデータのフォーマットは、図３に示されるように、前述の各圧縮変換方式で処理されたデータの先頭にデータの種類を示す識別子を付加した形式とする。図３に示すように、４ビットランレングス圧縮のデータである場合には、そのデータの先頭に、“１０００”の識別子が付加される。また、１ビットランレングス圧縮の場合には、ＭＳＢからＬＳＢまでのビット位置に対応するデータ列が４個あるので、それぞれについて、１ビットランレングス圧縮又は１ビット非圧縮を示す識別子が付加される。例えば、Ｄ３（ＭＳＢ）が１ビットランレングス圧縮されたデータであれば、識別子“１１１１”が付加され、Ｄ０（ＬＳＢ）が１ビット非圧縮データであれば、識別子“０１００”が付加される。また、メモリＩ／Ｆ部２０３が圧縮・データ長比較の処理を行った結果、上位４ビットと下位４ビットともに、１ビット非圧縮データとなった場合には、上位４ビットと下位４ビットの全てのデータが結合され、完全非圧縮データを示す識別子“００００”が付加される。また、連続長を表すフォーマットは、次のようになる。４ビット圧縮変換の場合は、１個から１６個までの連続長は、“００００”から“１１１１”によって表現される。１ビット圧縮変換の場合は、前述のように、０個から１５個までの連続長は、“００００”から“１１１１”によって表現され、“１”が１６個連続するときは、“ＦＦ”（＝１１１１１１１１）と、“０”が１６個連続するときは“０ＦＦ”（＝００００１１１１１１１１）と表現される。
【００３６】
図１におけるメモリＩ／Ｆコントローラ部２０の内部構成を処理の流れに従って説明する。
【００３７】
図４は、実施の形態１に係る半導体装置１の外部メモリ３へのデータ書き込み時の処理の流れである。
【００３８】
図１におけるメモリＩ／Ｆコントローラ部２０は、入力データ保持部２０１、圧縮変換部２０２、メモリＩ／Ｆ部２０３、復元部２０５及び出力データ保持部２０６を備える。
【００３９】
メモリＩ／Ｆコントローラ部２０における各機能部について、初めに図４に示すデータ書き込み時の処理の流れに従って説明する。
【００４０】
入力データ１００は、１画素のデータ長が８ビットである横方向１６画素分の画像データ列であり、メモリＩ／Ｆコントローラ部２０は、１６画素単位で圧縮及び伸長処理を行うものとする。
【００４１】
入力データ保持部２０１は、ＣＰＵからの指示によりメモリの書き込みデータとして送られてきたデータを入力データ１００として内部に保持をし、且つ圧縮変換部２０２に出力する（Ｓ１０１）。
【００４２】
次に、圧縮変換部２０２は、与えられた入力データ１００の画素データ列を解析すると共に、データ列のランレングス圧縮変換を実施し（Ｓ１０２）、圧縮変換後のデータと変換前のデータのデータ長を比較する（Ｓ１０３）。ステップ１０３で比較した結果、変換後のデータが変換前のデータよりもデータ長が長ければ、圧縮変換部２０２は、変換前のデータである入力データ１００の先頭に完全非圧縮であることを示す識別子を付して、メモリＩ／Ｆ部２０３に送る。逆に、変換後のデータが変換前のデータよりもデータ長が短ければ、圧縮変換部２０２は、変換後のデータの先頭に圧縮変換していることを示す識別子を付して、メモリＩ／Ｆ部２０３に送る。このとき、与えられた入力データ１００を上位４ビットデータ列と下位４ビットデータ列に分割され、それぞれのデータ列について、上記の圧縮変換・データ長比較・データ生成が行われることになる。
【００４３】
メモリＩ／Ｆ部２０３は、ステップ１０３において、変換後のデータの方が長いと判断された場合には、圧縮変換部２０２から与えられた、完全非圧縮を示す識別子が付された入力データ１００を、書き込みデータ２１０２として外部メモリ３に出力し（Ｓ１０４）、ステップ１０３において、変換後のデータの方が短いと判断された場合には、圧縮変換部２０２から与えられた、圧縮変換されたことを示す識別子が付された変換後のデータを、書き込みデータ２１０２として外部メモリ３に出力する（Ｓ１０５）。外部メモリ３への書き込みは、例えば、外部メモリ３の１行毎に書き込みデータ２１０２を書き込むか、又は書き込みデータ２１０２にエンドフラグを付加して外部メモリ３に書き込んでおく。
【００４４】
図５は、実施の形態１における半導体装置１の外部メモリ３へのデータ読み出し時の処理の流れである。
【００４５】
図５に示すデータ読み出し時の処理の流れに従って各機能部の説明をする。
【００４６】
メモリＩ／Ｆ部２０３は、ＣＰＵからの読み出し命令に従い、まず、外部メモリ３からデータを読み出す（Ｓ４０１）。次に、メモリＩ／Ｆ部２０３は、読み出したデータの先頭にあるデータ形式を示す識別子を判別し、読み出したデータが完全非圧縮データであれば、当該データの識別子を取り除いてデータを出力データ保持部２０６に与え、読み出したデータが圧縮変換されたデータであれば、当該データを復元部２０５に与える（Ｓ４０２）。この際、書き込まれたデータの最大のデータ長が、１３２ビット（４ビットの識別子＋最大データ長（＝非圧縮データ長＝１２８ビット））であるから、読み出しの際に、メモリ１行毎に１３２ビット分のデータを読み出して、データの先頭に付された識別子を判別することにより、異なる連続長で書き込まれたデータを容易に元のデータに復元することが可能となる。また、別の手段として、外部メモリ３へのデータ書き込み時に、書き込みデータ２１０２にエンドフラグを付加してメモリに書き込んでおけば、メモリから当該データを読み出す際に指定アドレスのデータのエンドフラグまでを１つのデータとして識別でき、アドレスカウンタをインクリメントすることで、順次、指定アドレスのデータを読み出して、データ先頭の識別子を判断して処理することが可能となる。
【００４７】
復元部２０５は、メモリＩ／Ｆ部２０３から与えられた圧縮変換されたデータの識別子から圧縮形式を判別して、ランレングス圧縮の逆変換によりデータを伸長し、出力データ保持部２０６に出力する（Ｓ４０４）。
【００４８】
出力データ保持部２０６は、メモリＩ／Ｆ部２０３から与えられた完全非圧縮のデータ、又はステップ４０４で復元部２０５により伸長されたデータ、を保持し、所望のタイミングで出力する（Ｓ４０３）。
【００４９】
圧縮変換の処理の詳細と、その処理を行う圧縮変換部２０２の内部構成について説明する。
【００５０】
図６は、実施の形態１に係る半導体装置１における圧縮変換部２０２のブロック図である。
【００５１】
図７は、実施の形態１に係る半導体装置１の上位４ビット圧縮変換の処理の流れである。
【００５２】
図８は、実施の形態１に係る半導体装置１の下位４ビット圧縮変換の処理の流れである。
【００５３】
入力データ１００は、前述の１６画素の画像データ列（ＦＦＦＥＦＥＦＤＦＥＦＦＦＦＦＥＦＦＦＤＦＤＦＢＦＤＦＥＦＦＦＦ）とする。
【００５４】
圧縮変換部２０２は、データ分割処理部２０２１、上位圧縮変換部２０２２、下位圧縮変換部２０２３、上位データ長比較部２０２４、下位データ長比較部２０２５及びデータ連結処理部２０２６、を備える。
【００５５】
本実施の形態１では圧縮変換の処理は、初めに上位４ビットが行われ、次に下位４ビットが行われる。
【００５６】
まず、上位４ビットの処理について図７を用いて説明する。
【００５７】
データ分割処理部２０２１は、入力データ１００の画素データ列から、１画素のデータの上位４ビットを取り出す。当該入力データ１００の場合、取り出された上位４ビットデータ列は“ＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦ”となる。この上位４ビットデータ列は、上位圧縮変換部２０２２に与えられる（Ｓ２０１）。また、下位４ビットに関しても同様に取り出され、取り出された下位４ビットデータ列“ＦＥＥＤＥＦＦＥＦＤＤＢＤＥＦＦ”は、下位圧縮変換部２０２３に与えられる（Ｓ３０１）。
【００５８】
上位圧縮変換部２０２２は、まず、４ビット圧縮変換を実施し、４ビット圧縮変換データを生成する（Ｓ２０２）。当該上位４ビットデータ列の場合、“ＦＦ”という圧縮変換データが生成される。生成された４ビット圧縮変換データは、上位データ長比較部２０２４に与えられる。
【００５９】
上位データ長比較部２０２４は、前記上位４ビットデータ列について、４ビット圧縮変換後のデータのデータ長と変換前のデータ長とを比較する（Ｓ２０３）。
【００６０】
変換後のデータが変換前のデータよりもデータ長が短い場合には、上位データ長比較部２０２４は、変換後のデータに４ビット圧縮変換を示す識別子を付加した上位側処理済みデータ２１００として、データ連結処理部２０２６に出力する（Ｓ２０４）。また、上位データ長比較部２０２４は、上位４ビットデータ列の処理に４ビット圧縮変換が採用されたことを下位圧縮変換部２０２３に通知する。
【００６１】
変換後のデータが変換前のデータよりもデータ長が長い場合には、上位データ長比較部２０２４は、上位圧縮変換部２０２２に対して、前記上位４ビットデータ列について１ビット圧縮変換を行うように制御信号を送り、上位４ビットデータ列の処理に１ビット圧縮変換が採用されたことを、下位圧縮変換部２０２３に通知をする。上位データ長比較部２０２４からの制御信号を受けた上位圧縮変換部２０２２は、前記上位４ビットデータ列について１ビット圧縮変換を行い、上位データ長比較部２０２４に１ビット圧縮変換データを与える（Ｓ２０５）。１ビット圧縮変換データを与えられた上位データ長比較部２０２４は、１ビット圧縮変換後のデータと１ビット圧縮変換前のデータのデータ長を比較する（Ｓ２０６）。変換後のデータが変換前のデータよりもデータ長が短ければ、上位データ長比較部２０２４は、変換後のデータに１ビット圧縮変換を示す識別子を付加して、上位側処理済みデータ２１００としてデータ連結処理部２０２６に出力し（Ｓ２０７）、変換後のデータが変換前のデータよりもデータ長が長ければ、上位データ長比較部２０２４は、変換前のデータに１ビット非圧縮変換を示す識別子を付加して、上位側処理済みデータ２１００としてデータ連結処理部２０２６に出力する（Ｓ２０８）。１ビット圧縮変換の処理においては、この一連の処理（１ビット圧縮変換・データ長比較・データ出力）が、ＭＳＢに対応する位置のデータ列からＬＳＢのデータ列まで、すべてのデータ列に対して行われる（Ｓ２０９）。
【００６２】
当該入力データ１００の場合、上位４ビットデータ列について、４ビット圧縮変換前のデータ“ＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦ”のデータ長が６４ビット、４ビット圧縮変換後のデータ“ＦＦ”のデータ長が８ビット、であることから、変換後のデータの方がデータ長は短くなる。したがって、この場合は、ステップ２０５の１ビット圧縮変換は行われず、ステップ２０４の４ビットデータ作成が行われ、４ビット圧縮変換データ“ＦＦ”に４ビット圧縮変換を示す識別子“１０００”が付加された上位側処理済みデータ２１００が、データ連結処理部２０２６に出力される。
【００６３】
次に、下位４ビットの処理について、図８を用いて説明する。
【００６４】
下位４ビットの圧縮変換処理は、ステップ３０１で分割された下位４ビットデータ列について行われる。
【００６５】
本実施の形態１では、下位４ビットの圧縮変換処理は、図７に示される上位４ビット圧縮変換の処理（Ｓ３０２）において４ビット圧縮変換又は１ビット圧縮変換のどちらの変換方式が採用されたかを示す通知に従って進められる。
【００６６】
前記通知が、上位側４ビットデータ列に対して４ビット圧縮変換が採用された通知であった場合には、下位圧縮変換部２０２３は、下位側４ビットデータ列に対して４ビット圧縮変換を行い、生成した４ビット圧縮変換データを下位データ長比較部２０２５に与える（Ｓ３０３）。
【００６７】
下位データ長比較部２０２５は、下位圧縮変換部２０２３より与えられた４ビット圧縮変換後のデータのデータ長と変換前のデータ長とを比較する（Ｓ３０４）。変換後のデータが変換前のデータよりもデータ長が短い場合には、下位データ長比較部２０２５は、変換後のデータに４ビット圧縮変換を示す識別子を付加した下位側処理済みデータ２１０１として、データ連結処理部２０２６に出力する（Ｓ３０５）。変換後のデータが変換前のデータよりもデータ長が長い場合には、下位データ長比較部２０２５は、下位圧縮変換部２０２３に対して、前記下位４ビットデータ列について１ビット圧縮変換を行うように制御信号を送る。下位データ長比較部２０２５からの制御信号を受けた下位圧縮変換部２０２３は、前記下位４ビットデータ列について１ビット圧縮変換を行い、下位データ長比較部２０２５に１ビット圧縮変換データを与える（Ｓ３０６）。１ビット圧縮変換データを与えられた下位データ長比較部２０２５は、１ビット圧縮変換後のデータと１ビット圧縮変換前のデータのデータ長を比較する（Ｓ３０７）。変換後のデータが変換前のデータよりもデータ長が短ければ、下位データ長比較部２０２５は、変換後のデータに１ビット圧縮変換を示す識別子を付加して、下位側処理済みデータ２１０１としてデータ連結処理部２０２６に出力する（Ｓ３０８）。変換後のデータが変換前のデータよりもデータ長が長ければ、下位データ長比較部２０２５は、変換前のデータに１ビット非圧縮変換を示す識別子を付加して、下位側処理済みデータ２１０１としてデータ連結処理部２０２６に出力する（Ｓ３０９）。上位４ビットの処理と同様に、この一連の処理（１ビット圧縮変換・データ長比較・データ出力）が、すべてのデータ列に対して行われる（Ｓ３１０）。
【００６８】
上記の説明は、前記通知が上位側４ビットデータ列に対して４ビット圧縮変換が採用された通知であったときの処理手順であるが、反対に、上記通知が、１ビットランレングス圧縮変換が採用された通知であった場合には、下位圧縮変換部２０２３は、下位４ビットデータ列について４ビット圧縮変換を行わずに１ビット圧縮変換から実行する。４ビット圧縮変換を行わずに１ビット圧縮変換から実行する理由は、上位４ビットデータ列に１ビット圧縮変換が採用されるのは入力データ１００の隣接画素間の相関が弱いときであり、この場合には下位４ビットデータ列についても隣接画素間の相関が弱く、４ビット圧縮変換を行っても、１ビット圧縮変換に移行することが予想されるからである。もちろん、上位４ビットデータ列に採用されたランレングス圧縮方式に依らずに下位４ビットデータ列のランレングス圧縮変換が実施されるようにしてもよい。
【００６９】
当該入力データ１００の場合、上位側４ビットデータ列に対して４ビット圧縮変換が採用されているので、下位４ビットの処理はステップ３０２から開始し、４ビット圧縮変換から実行される。下位４ビットデータ列は“ＦＥＥＤＥＦＦＥＦＤＤＢＤＥＦＦ”であるので、４ビット圧縮変換を行うと、“Ｆ０Ｅ１Ｄ０Ｅ０Ｆ１Ｅ０Ｆ０Ｄ１Ｂ０Ｄ０Ｅ０Ｆ１”となる。この結果、変換前のデータ長が６４ビット、変換後のデータ長が９６ビットであり、変換後のデータの方がデータ長が長くなってしまうので、下位圧縮変換部２０２３は、ステップ３０６に進み、当該下位４ビットデータ列について１ビット圧縮変換を行うことになる。当該下位４ビットデータ列のＭＳＢに対応するデータ列は、１ビット圧縮変換により、“ＦＦ”と変換され、ＬＳＢに対応するデータ列は、“１２１１２１５１２”と変換される。ＭＳＢに対応するデータ列は、１ビット圧縮変換前は、“１１１１１１１１１１１１１１１１（ｂ）”（１６ビット）であり、変換後は“ＦＦ（ｈ）”（８ビット）であるので、変換後の方がデータ長は短くなる。したがって、ＭＳＢに対応するデータ列については、変換後のデータ“ＦＦ”の先頭に、１ビット圧縮変換を示す識別子“１１１１”が付されてデータ連結処理部２０２６に出力される。同様にＬＳＢに対応するデータ列については、１ビット圧縮変換前は“１００１０１１０１１１１１０１１（ｂ）”（１６ビット）であり、変換後は“１２１１２１５１２（ｈ）”（３６ビット）となるので変換後の方がデータ長は長くなる。したがって、ＬＳＢのデータ列は、変換前のデータ“１００１０１１０１１１１１０１１（ｂ）”に１ビット非圧縮変換を示す識別子“０１００”が付されてデータ連結処理部２０２６に出力される。他のビット位置に対応するデータ列についても同様に一連の処理（１ビット圧縮変換・データ長比較・データ出力）が行われる。
【００７０】
前述のように上位４ビットと下位データ４ビットのデータ列についてそれぞれ処理が行われた後、連結処理部２０２６は、上位側データ比較部２０２４と下位側データ比較部２０２５において生成された上位側処理済みデータ２１００と下位側処理済みデータ２１０１をそれぞれ連結して、書き込みデータ２１０２を生成し、メモリＩ／Ｆ部２０３へ出力する。その際、上位側と下位側共に非圧縮データであった場合には、先頭に付された、１ビット非圧縮を示す識別子が取り除かれ、上位側処理済みデータ２１００と下位側処理済みデータ２１０１が連結されて、完全非圧縮を示す識別子“００００”が付された書き込みデータ２１０２としてメモリＩ／Ｆ部２０３に与えられる。その後、メモリＩ／Ｆ部２０３は、連結処理部２０２６から与えられた書き込みデータ２１０２を、前述のように外部メモリ３の１行毎に書き込むか、又はエンドフラグを付して外部メモリ３に書き込む。
【００７１】
以上のように、実施の形態１では、当該データのランレングス圧縮変換前のデータ長と変換後のデータ長を比較して、データ長の短い方のデータをメモリに書き込むデータとして生成するから、単にランレングス圧縮変換を行う場合に比べ、圧縮率を高めることができる。また、１ビット単位でのランレングス変換を行うことで、データ種別を示す識別子が不要となり、且つ上記の方法に依れば、連続するデータの個数を表すデータ長を増やすことなく、データの個数を表現することができるので、メモリに書き込むデータ量を減らすことができる。また、書き込むデータ量を減らすことにより、メモリアクセス時のＩ／Ｏ電流をも削減することが可能となる。
【００７２】
本実施の形態１では、上位４ビットデータ列と下位４ビットデータ列をそれぞれ別の処理部によってランレングス圧縮変換を行ったが、時分割に共通の処理部で実施しても得られる効果に変わりはない。
【００７３】
本実施の形態１では、画像データの処理単位を１６画素としたが、メモリのアラインメントやデータの圧縮効率等を考慮して、処理単位を変更してもよい。
【００７４】
《実施の形態２》
図９は、本発明に係る半導体装置の別の実施の形態として、メモリインタフェースコントローラ、を備えた半導体装置を示す。同図に示される半導体装置２は、特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成されている。
【００７５】
図９に示される半導体装置２は、メモリＩ／Ｆコントローラ部２１を備え、ＣＰＵから外部メモリ３への書き込み及び読み出し命令により、半導体装置１と同様に、画像データ１６画素単位で圧縮及び伸長の処理を行うものである。半導体装置２は、連続する画像データを外部メモリに１行毎に書き込まずに連続して書き込みを行うためのアドレス管理部２２を更に備える。
【００７６】
メモリＩ／Ｆコントローラ部２１は、入力データ保持部２０１、圧縮変換部２１１、メモリＩ／Ｆ部２１０と、復元部２０５及び出力データ保持部２０６を備える。
【００７７】
入力データ保持部２０１、復元部２０５及び出力データ保持部２０６は実施の形態１と同様であるため、同一の符号を付して、その詳細な説明を省略する。
【００７８】
圧縮変換部２１１は、実施の形態１における圧縮変換部２０２と同様に圧縮変換処理を行って、生成した書き込みデータ２１０２をメモリＩ／Ｆ部２１０に与えるとともに、書き込みデータ２１０２のデータ長をデータ長記録部２０９に与える。
【００７９】
アドレス管理部２２は、カウンタ２０８とデータ長記録部２０９を備える。
【００８０】
カウンタ２０８は、画素の配列に従ったタイミング信号により画像データのデータ位置を計数し、その計数値を座標点として、データ長記録部２０９に与える。前記タイミング信号は、例えば、垂直同期信号（Ｖシンク）や水平同期信号（Ｈシンク）、又はそれらに準ずるタイミング信号であり、画素の配列や画像データの位置情報が推測可能な信号である。カウント２０８は、例えば、前記画素データに対応する画素フレーム内のＹ方向の走査タイミングを示す垂直同期信号を計数して、画素フレーム内のＹ座標を示す計数値を出力する第１のカウンタと、Ｘ軸方向の走査タイミングを示す水平同期信号を計数して、画素フレーム内のＸ座標を示す計数値を出力する第２のカウンタを有し、第２のカウンタは、第１のカウンタによるＹ座標の計数値が変わるごとに、自らの計数値をリセットして、再度、計数を始めるものである。第１のカウンタと第２のカウンタのそれぞれの計数値は、データ長記録部２０９に順次与えられる。同様に、データ読み出し時にはメモリＩ／Ｆコントローラ部２１がＣＰＵからの読み出し命令を受け取った後、カウンタ２０８は、前記タイミング信号の計数を開始し、その計数値をデータ長記録部２０９に与える。なお、特に制限されないが、前記タイミング信号は、最初の１６画素毎の圧縮変換処理の開始に応答して活性化され、また、ＣＰＵの読み出し命令に応答して活性化する。
【００８１】
データ長記録部２０９は、カウンタ２０８から、画像データのＹ座標とＸ座標を示す計数値を順次受け取る。データ長記録部２０９は、受け取った計数値の中から、圧縮変換された１６画素のデータの先頭画素の座標を示す計数値を、座標データとして保持していく。また、圧縮変換された当該１６画素の書き込みデータ２１０２のデータ長も前記座標データと合せて、管理データとして保持していく。データ読み出し時には、書き込み時と同様に前記タイミング信号を計数するカウンタ２０８から、画像データのＹ座標とＸ座標を示す計数値が順次送られる。データ長記録部２０９は、送られた計数値が、管理データとして保持されている座標データと一致したら、その座標データに対応するデータ長を読み出して、メモリＩ／Ｆ部２１０に与える。
【００８２】
メモリＩ／Ｆ部２１０は、書き込み時には、データを順番に詰めて外部メモリ３に書き込む。データ読み出し時には、カウンタ２０８から送られる計数値に一致した座標データに対応するデータ長がデータ長記録部２０９から与えられるので、メモリＩ／Ｆ部２１０は、そのデータ長の分だけデータを外部メモリ３から順次読み出していく。
【００８３】
図１０は、実施の形態２に係る半導体装置２の外部メモリ３へのデータ書き込み時の処理の流れである。
【００８４】
図１０に示される書き込みデータ２１０２の生成方法とその処理の流れ（ステップ１０１からステップ１０５）は、前述の半導体装置１と同様であるため、その詳細な説明を省略する。
【００８５】
ステップ１０５で圧縮変換処理されたデータに基づく書き込みデータ２１０２が生成され、メモリＩ／Ｆ部２１０により外部メモリ３に書き込まれる。その際、圧縮変換部２１１は、書き込みデータ２１０２をメモリＩ／Ｆ２１０に与えるとともに、そのデータ長をデータ長記録部２０９に与える。また、カウンタ２０８は、前記タイミング信号を計数して、画像データのフレーム内の座標を示す計数値を順次データ長記録部２０９に与える。
【００８６】
データ長記録部２０９は、受け取った計数値の中から、圧縮変換された１６画素のデータの先頭画素の座標を示す計数値を、座標データとして保持し、圧縮変換された当該１６画素の書き込みデータ２１０２のデータ長も前記座標データと合せて、管理データとして保持する（Ｓ１０７）。また、ステップ１０４で入力データ１００に基づき非圧縮の書き込みデータ２１０２が生成され、外部メモリ３に書き込まれた場合も同様に、データ長記録部２０９は、前記座標データと前記非圧縮の書き込みデータのデータ長を保持する（Ｓ１０６）。
【００８７】
図１１は、実施の形態２に係る半導体装置２の外部メモリ３へのデータ読み出し時の処理の流れである。
【００８８】
メモリＩ／Ｆコントローラ部２１がＣＰＵからの読み出し命令を受けた後、カウンタ２０８が前記タイミング信号に基づいて計数を開始して、画像データの画素フレーム内の座標を示すその計数値をデータ長記録部２０９に与える。データ長記録部２０９は、書き込み時と同様に前記タイミング信号を計数するカウンタ２０８から、画像データの座標を示す計数値が順次送られ、その計数値が、管理データとして保持された座標データと一致したら、その座標データに対応するデータ長を読み出して、メモリＩ／Ｆ部２１０に与える（Ｓ４０５）。メモリＩ／Ｆ部２１０は、与えられたデータ長に基づき、そのデータ長に相当するデータ量だけ順次読み出していく（Ｓ４０１）。
【００８９】
ステップ４０１以降の処理（Ｓ４０２からＳ４０４）は、実施の形態１と同様であり、読み出されたデータは、当該データの識別子に基づき適切に処理されることとなる。
【００９０】
以上のように半導体装置２によれば、外部メモリ３に、圧縮変換処理された画像データを処理単位毎に連続して詰めて書き込んでも、処理単位毎の画像データの先頭座標とデータ長を管理しておけば、読み出す画像データの画素フレーム内の位置に相当する座標に基づき、その座標に対応するデータ長の分だけ外部メモリ３からデータを読み出せばよい。したがって、それぞれ異なるデータ長で外部メモリ３に格納された画像データでも、容易に読み出すことが可能となり、外部メモリ３の容量を無駄なく利用することができる。また、それにより、メモリに効率良くアクセスすることが可能となるから、メモリアクセス時のＩ／Ｏ電流をも減少させることが可能となる。
【００９１】
なお、データの種別によっては１フレーム内全ての画像データの処理方法として、非圧縮形式が選ばれる可能性がある。その場合には、画面のデータの先頭にて、画面内全てのデータが非圧縮であることを示すフラグを付加することにより、１６画素毎の識別子を削除することが可能となる。また、１フレーム内全てのデータの処理方法について非圧縮又は圧縮のどちらを選択するのかの切り替えは、１フレーム毎に見直しを実施する等の定期的な見直しにより効果的なメモリアクセスが実現可能である。当然ながら画像データ以外の場合についても、例えば、データ量１００ｋバイト毎に非圧縮／圧縮を選択する切り替えを実施することにより、効果的なメモリアクセスが実現可能である。
【００９２】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００９３】
例えば、本発明は、１画素あたり８ビットの画像データを上位４ビットと下位４ビットに分けて処理するシステムを例としたが、それに限定されず、例えば、１画素あたり１６ビットの画像データを上位８ビットと下位８ビットに分けて処理する、というように、１画素あたりデータ量に応じて上位ビットと下位ビットの処理単位を変更して処理してもよいし、上位と下位に分けずに処理してもよい。上位と下位を分けずに処理する場合には、図７においてステップ２０１で入力データの分割をせず、入力データそのものについてステップ２０２以降の処理を行えばよく、下位ビットの処理のための圧縮変換部やデータ長比較部等は不要となる。また、本発明は画像データを扱うシステムだけに適用可能なものではなく、音声データ等の他のデータを扱うシステムにも広く適用することができる。
【符号の説明】
【００９４】
１  半導体装置
２  半導体装置
３  外部メモリ
２０  メモリＩ／Ｆコントローラ部
２１  メモリＩ／Ｆコントローラ部
２２  アドレス管理部
２０１  入力データ保持部
２０２  圧縮変換部
２０３  メモリＩ／Ｆ部
２０５  復元部
２０６  出力データ保持部
２０８  カウンタ
２０９  データ長記録部
２１０  メモリＩ／Ｆ部
２０２１  データ分割処理部
２０２２  上位圧縮変換部
２０２３  下位圧縮変換部
２０２４  上位データ長比較部
２０２５  下位データ長比較部
２０２６  データ連結処理部
２１００  上位側処理済みデータ
２１０１  下位側処理済みデータ
２１０２  書き込みデータ
【図１】
2011015322.tif 000003
【図２】
2011015322.tif 000004
【図３】
2011015322.tif 000005
【図４】
2011015322.tif 000006
【図５】
2011015322.tif 000007
【図６】
2011015322.tif 000008
【図７】
2011015322.tif 000009
【図８】
2011015322.tif 000010
【図９】
2011015322.tif 000011
【図１０】
2011015322.tif 000012
【図１１】
2011015322.tif 000013