(57)【特許請求の範囲】
【請求項１】
複数のフレームのうち１フレーム分のデータを格納可能で、複数のセグメントに分割さ
れたメモリであって、前記複数のフレームの各々は複数の区分に分割され、前記複数の区
分の各々が個々に符号化され、符号化された複数の区分のうち１つの区分は前記複数のセ
グメントの１つのセグメントに格納されるメモリと、
前記符号化された複数の区分のうち、１以上の区分を格納可能なバッファと、
前記メモリ中の特定の位置に格納されたデータを前記バッファへとコピーし、前記特定
の位置へと第１フレームのデータを格納し、前記第１フレームの前記データについて、特
定のメモリセグメントを識別する書き込みセグメントポインタおよび前記特定のメモリセ
グメント内の位置を識別する書き込みデータポインタが生成する第１ユニットと、
選択された位置から第２フレームのデータをフェッチし、前記第２フレームの前記デー
タについて、特定のメモリセグメントを識別する読み出しセグメントポインタおよび前記
特定のメモリセグメント内の位置を識別する読み出しデータポインタを生成する第２ユニ
ットと、を含み、
前記第２ユニットは、
（ａ）前記書き込みセグメントポインタおよび前記読み出しセグメントポインタが同じ
メモリセグメントを識別しており、そして前記読み出しデータポインタが前記書き込みデ
ータポインタよりも大きい場合、前記メモリが選択し、
（ｂ）前記書き込みセグメントポインタおよび前記読み出しセグメントポインタが同じ
メモリセグメントを識別しており、そして前記書き込みデータポインタが前記読み出しデ
ータポインタよりも大きい場合、前記バッファが選択することを特徴とするデータ処理装
置。
【請求項２】
前記書き込みセグメントポインタおよび前記読み出しセグメントポインタが、異なるメ
モリセグメントを識別する場合、前記メモリが選択されることを特徴とする請求項１に記
載のデータ処理装置。
【請求項３】
（ａ）前記書き込みセグメントポインタおよび前記読み出しセグメントポインタが前記
第２フレームの前記データについて異なるメモリセグメントを識別している場合、および
（ｂ）（i）前記書き込みセグメントポインタおよび前記読み出しセグメントポインタが
同じメモリセグメントを識別し、（ii）前記書き込みデータポインタが前記読み出しデー
タポインタよりも大きい前記第２フレームの前記データ用に前記読み出しセグメントポイ
ンタが識別する前記セグメント中に以前のデータが存在する場合、前記バッファが選択さ
れることを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載のデータ処理装置を含むことを特徴とする
電子機器。
【請求項５】
区分へと分割されたデータの第１フレームおよび第２フレームを供給するステップと、
前記第１フレームをメモリへと格納するステップであって、前記メモリがセグメントへ
と分割されており、各セグメントが１区分を格納するものであり、前記格納するステップ
が、前記第１フレームのデータを特定の位置へと格納する前に、前記メモリ中の前記特定
の位置に格納されているデータをバッファへとコピーするステップを含み、前記バッファ
が少なくとも１区分を格納するものであることを特徴とする前記格納するステップと、
特定のメモリセグメントを識別するための書き込みセグメントポインタおよび前記特定
のメモリセグメントにおける位置を識別するための書き込みデータポインタを、前記第１
フレームの各データ用に生成するステップと、
特定のメモリセグメントを識別するための読み出しセグメントポインタおよび前記特定
のメモリセグメントにおける位置を識別するための読み出しデータポインタを、第２フレ
ームの各データ用に生成するステップと、
前記第２フレームのデータをフェッチする場所を選択するステップであって、（ａ）前
記書き込みセグメントポインタおよび前記読み出しセグメントポインタが同じメモリセグ
メントを識別しており、そして前記読み出しデータポインタが前記書き込みデータポイン
タよりも大きい場合、前記メモリが選択され、そして（ｂ）前記書き込みセグメントポイ
ンタおよび前記読み出しセグメントポインタが同じメモリセグメントを識別しており、そ
して前記書き込みデータポインタが前記読み出しデータポインタよりも大きい場合、前記
バッファが選択されることを特徴とする前記選択するステップと、
前記選択された場所から第２フレームをフェッチするステップとを含むことを特徴とす
るデータ処理方法。
【請求項６】
前記書き込みセグメントポインタおよび前記読み出しセグメントポインタが異なるメモ
リセグメントを識別する場合、前記メモリが選択されることを特徴とする請求項５に記載
のデータ処理方法。
【請求項７】
（ａ）前記書き込みセグメントポインタおよび前記読み出しセグメントポインタが現在
のデータについて異なるメモリセグメントを識別している場合、および（ｂ）（i）前記
書き込みセグメントポインタおよび前記読み出しセグメントポインタが同じメモリセグメ
ントを識別し、（ii）前記書き込みデータポインタが前記読み出しデータポインタよりも
大きい前記現在のデータ用に前記読み出しセグメントポインタが識別する前記セグメント
中に以前のデータが存在する場合、前記バッファが選択されることを特徴とする請求項５
に記載のデータ処理方法。
【請求項８】
データの、２つ以上のフレームの１つを格納するためのメモリであって、前記フレーム
は区分へと分割され、前記メモリはセグメントに分割されており、各セグメントは１区分
を格納するものであることを特徴とする前記メモリと、
１つ以上の区分を格納するバッファと、
（ａ）前記メモリ中の特定の位置に格納されたデータを前記バッファへとコピーする、
そして（ｂ）前記特定の位置へと第１フレームのデータを格納するための第１ユニットで
あって、（ａ）は（ｂ）よりも先に実施され、前記第１フレームの前記データについて、
特定のメモリセグメントを識別する書き込みセグメントポインタおよび前記特定のメモリ
セグメント内の位置を識別する書き込みデータポインタが生成されることを特徴とする前
記第１ユニットと、
選択された位置から第２フレームのデータをフェッチするための第２ユニットであって
、前記第２フレームの前記データについて、特定のメモリセグメントを識別する読み出し
セグメントポインタおよび前記特定のメモリセグメント内の位置を識別する読み出しデー
タポインタが生成されることを特徴とし、（ａ）前記書き込みセグメントポインタおよび
前記読み出しセグメントポインタが同じメモリセグメントを識別しており、そして前記読
み出しデータポインタが前記書き込みデータポインタよりも大きい場合、前記メモリが選
択され、そして（ｂ）前記書き込みセグメントポインタおよび前記読み出しセグメントポ
インタが同じメモリセグメントを識別しており、そして前記書き込みデータポインタが前
記読み出しデータポインタよりも大きい場合、前記バッファが選択されることを特徴とす
る前記第２ユニットとを具備することを特徴とするデータ処理システム。
【請求項９】
前記書き込みセグメントポインタおよび前記読み出しセグメントポインタが異なるメモ
リセグメントを識別している場合、前記メモリが選択され、そして（ａ）前記書き込みセ
グメントポインタおよび前記読み出しセグメントポインタが前記第２フレームの前記デー
タについて異なるメモリセグメントを識別している場合、および（ｂ）（i）前記書き込
みセグメントポインタおよび前記読み出しセグメントポインタが同じメモリセグメントを
識別し、（ii）前記書き込みデータポインタが前記読み出しデータポインタよりも大きい
前記第２フレームの前記データ用に前記読み出しセグメントポインタが識別する前記セグ
メント中に以前のデータが存在する場合、前記バッファが選択されることを特徴とする請
求項８に記載のデータ処理システム。
【請求項１０】
各区分を個々に符号化するためのエンコーダをさらに具備していることを特徴とする請
求項９に記載のデータ処理システム。
【請求項１１】
前記データがラスタ順画素データであることを特徴とする請求項１０に記載のデータ処
理システム。
【請求項１２】
前記バッファが２つの区分を格納するものであり、前記メモリとは別個のものであるこ
とを特徴とする請求項１１に記載のデータ処理システム。
【請求項１３】
画像データソースおよび表示装置をさらに具備し、前記画像データソースが、データ損
失なくしては一時停止することのできない第１の速度で画素データを供給するものである
ことを特徴とする請求項１２に記載のデータ処理システム。
【請求項１４】
一時停止をすれば不完全なフレームリフレッシュデータが供給されることになる第１の
速度で画素データを要求する表示装置をさらに具備することを特徴とする請求項１２に記
載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデータの圧縮および解凍に関するものであり、例えば、アーチファクト
を取り込むことなく画像データを圧縮および解凍することに関する。
【背景技術】
【０００２】
データ圧縮（または符号化）とは、特定量のソース情報を、符号化されていない状態の
情報よりも少ない数のビットを使って符号化する処理である。様々な種類のデータ圧縮技
術が知られている。あるデータ圧縮技術は所定量のソースデータを区分へと分割するもの
で、各区分は個々に圧縮される。画像ディスプレイ装置においては、データの格納または
送信前にデータ圧縮技術を用いてデジタル画像データを圧縮する場合がある。データ圧縮
が好まれるのは、記憶または伝送されるデータの量を大幅に削減することができるためで
ある。圧縮データをメモリからフェッチした、または送信機から受信した場合、そのデー
タを使えるようにするためには、データを解凍（または復号化）しなければならない。圧
縮データの復号化は一般に、符号化処理の逆を実施することである（例えば特許文献１参
照）。
【０００３】
一部の画像ディスプレイ装置においては、画像データを受信すると圧縮してメモリ中に
格納し、そしてディスプレイ装置がそれらを必要とした時にメモリから読み出して解凍す
ることが可能であり、格納機能と読み出し機能が同期しない場合がある。
【０００４】
【特許文献１】米国特許第５７６４３７３号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
格納機能と読み出し機能が同期しない場合、圧縮画像データを格納するためのメモリを
使った画像ディスプレイ装置のディスプレイ画面上に時折、特定のアーチファクト（ノイ
ズ）が現れることがある。このアーチファクト（ノイズ）は、レンダリングされた画像に
黒、白またはソリッドカラーの領域として現れる。ディスプレイ装置上に画像のシーケン
スがビデオとしてレンダリングされた場合、アーチファクトは表示の１つ以上の領域にお
ける非ソースピクセルの線として一瞬現れることがある。これらのアーチファクトは特に
知覚されやすい。従ってこの問題の解決策が必要なのは明らかである。しかしながら、特
定の装置は格納機能と読み出し機能が非同期であるために、これらの機能を同期させるこ
とによりこの問題を解決することは極めて困難である。
一方、データが圧縮音声データも同様に、格納機能と読み出し機能が同期しない場合、
音声にノイズが入ることがある。
【課題を解決するための手段】
【０００６】
本発明のデータ処理装置は、符号化されたデータの、２つ以上のフレームの１つを格納
するためのメモリであって、前記フレームは区分へと分割され、各区分が個々に符号化さ
れており、前記メモリはセグメントに分割されており、各セグメントは１区分を格納する
ものであることを特徴とする前記メモリと、１つ以上の区分を格納するバッファと、（ａ
）前記メモリ中の特定の位置に格納されたデータを前記バッファへとコピーする、そして
（ｂ）前記特定の位置へと第１フレームのデータを格納するための第１ユニットであって
、（ａ）は（ｂ）よりも先に実施され、前記第１フレームの前記データについて、特定の
メモリセグメントを識別する書き込みセグメントポインタおよび前記特定のメモリセグメ
ント内の位置を識別する書き込みデータポインタが生成されることを特徴とする前記第１
ユニットと、選択された位置から第２フレームのデータをフェッチするための第２ユニッ
トであって、前記第２フレームの前記データについて、特定のメモリセグメントを識別す
る読み出しセグメントポインタおよび前記特定のメモリセグメント内の位置を識別する読
み出しデータポインタが生成されることを特徴とし、（ａ）前記書き込みセグメントポイ
ンタおよび前記読み出しセグメントポインタが同じメモリセグメントを識別しており、そ
して前記読み出しデータポインタが前記書き込みデータポインタよりも大きい場合、前記
メモリが選択され、そして（ｂ）前記書き込みセグメントポインタおよび前記読み出しセ
グメントポインタが同じメモリセグメントを識別しており、そして前記書き込みデータポ
インタが前記読み出しデータポインタよりも大きい場合、前記バッファが選択されること
を特徴とする前記第２ユニットとを具備することを特徴とする。
【０００７】
また本発明のデータ処理装置において、前記書き込みセグメントポインタおよび前記読
み出しセグメントポインタが、異なるメモリセグメントを識別する場合、前記メモリが選
択されることを特徴とする。
【０００８】
また本発明のデータ処理装置において、（ａ）前記書き込みセグメントポインタおよび
前記読み出しセグメントポインタが前記第２フレームの前記データについて異なるメモリ
セグメントを識別している場合、および（ｂ）（i）前記書き込みセグメントポインタお
よび前記読み出しセグメントポインタが同じメモリセグメントを識別し、（ii）前記書き
込みデータポインタが前記読み出しデータポインタよりも大きい前記第２フレームの前記
データ用に前記読み出しセグメントポインタが識別する前記セグメント中に以前のデータ
が存在する場合、前記バッファが選択されることを特徴とする。
【０００９】
また本発明のデータ処理装置において、前記フレームが画像データを含むものであるこ
とを特徴とする。
【００１０】
また本発明のデータ処理装置において、前記バッファが２つの区分を格納するものであ
ることを特徴とする。
【００１１】
また本発明のデータ処理装置において、前記区分が１フレームのラインに対応すること
を特徴とする。
【００１２】
また本発明のデータ処理装置において、前記バッファが、前記メモリとは別個のもので
あることを特徴とする。
【００１３】
ここで本発明のデータ処理方法は、区分へと分割されたデータの第１フレームおよび第
２フレームを供給するステップと、前記第１フレームをメモリへと格納するステップであ
って、前記メモリがセグメントへと分割されており、各セグメントが１区分を格納するも
のであり、前記格納するステップが、前記第１フレームのデータを特定の位置へと格納す
る前に、前記メモリ中の前記特定の位置に格納されているデータをバッファへとコピーす
るステップを含み、前記バッファが少なくとも１区分を格納するものであることを特徴と
する前記格納するステップと、特定のメモリセグメントを識別するための書き込みセグメ
ントポインタおよび前記特定のメモリセグメントにおける位置を識別するための書き込み
データポインタを、前記第１フレームの各データ用に生成するステップと、特定のメモリ
セグメントを識別するための読み出しセグメントポインタおよび前記特定のメモリセグメ
ントにおける位置を識別するための読み出しデータポインタを、第２フレームの各データ
用に生成するステップと、前記第２フレームのデータをフェッチする場所を選択するステ
ップであって、（ａ）前記書き込みセグメントポインタおよび前記読み出しセグメントポ
インタが同じメモリセグメントを識別しており、そして前記読み出しデータポインタが前
記書き込みデータポインタよりも大きい場合、前記メモリが選択され、そして（ｂ）前記
書き込みセグメントポインタおよび前記読み出しセグメントポインタが同じメモリセグメ
ントを識別しており、そして前記書き込みデータポインタが前記読み出しデータポインタ
よりも大きい場合、前記バッファが選択されることを特徴とする前記選択するステップと
、前記選択された場所から第２フレームをフェッチするステップとを含むことを特徴とす
る。
【００１４】
また本発明のデータ処理方法において、前記書き込みセグメントポインタおよび前記読
み出しセグメントポインタが異なるメモリセグメントを識別する場合、前記メモリが選択
されることを特徴とする。
【００１５】
また本発明のデータ処理方法において、（ａ）前記書き込みセグメントポインタおよび
前記読み出しセグメントポインタが現在のデータについて異なるメモリセグメントを識別
している場合、および（ｂ）（i）前記書き込みセグメントポインタおよび前記読み出し
セグメントポインタが同じメモリセグメントを識別し、（ii）前記書き込みデータポイン
タが前記読み出しデータポインタよりも大きい前記現在のデータ用に前記読み出しセグメ
ントポインタが識別する前記セグメント中に以前のデータが存在する場合、前記バッファ
が選択されることを特徴とする。
【００１６】
また本発明のデータ処理方法において、各区分を個々に符号化するステップをさらに含
むことを特徴とする。
【００１７】
また本発明のデータ処理方法において、各区分を個々に符号化するステップをさらに含
むことを特徴とする。
【００１８】
また本発明のデータ処理方法において、前記データが画素データであることを特徴とす
る。
【００１９】
ここで本発明のデータ処理システムは、データの、２つ以上のフレームの１つを格納す
るためのメモリであって、前記フレームは区分へと分割され、前記メモリはセグメントに
分割されており、各セグメントは１区分を格納するものであることを特徴とする前記メモ
リと、１つ以上の区分を格納するバッファと、（ａ）前記メモリ中の特定の位置に格納さ
れたデータを前記バッファへとコピーする、そして（ｂ）前記特定の位置へと第１フレー
ムのデータを格納するための第１ユニットであって、（ａ）は（ｂ）よりも先に実施され
、前記第１フレームの前記データについて、特定のメモリセグメントを識別する書き込み
セグメントポインタおよび前記特定のメモリセグメント内の位置を識別する書き込みデー
タポインタが生成されることを特徴とする前記第１ユニットと、選択された位置から第２
フレームのデータをフェッチするための第２ユニットであって、前記第２フレームの前記
データについて、特定のメモリセグメントを識別する読み出しセグメントポインタおよび
前記特定のメモリセグメント内の位置を識別する読み出しデータポインタが生成されるこ
とを特徴とし、（ａ）前記書き込みセグメントポインタおよび前記読み出しセグメントポ
インタが同じメモリセグメントを識別しており、そして前記読み出しデータポインタが前
記書き込みデータポインタよりも大きい場合、前記メモリが選択され、そして（ｂ）前記
書き込みセグメントポインタおよび前記読み出しセグメントポインタが同じメモリセグメ
ントを識別しており、そして前記書き込みデータポインタが前記読み出しデータポインタ
よりも大きい場合、前記バッファが選択されることを特徴とする前記第２ユニットとを具
備することを特徴とする。
【００２０】
また本発明のデータ処理システムにおいて、前記書き込みセグメントポインタおよび前
記読み出しセグメントポインタが異なるメモリセグメントを識別している場合、前記メモ
リが選択され、そして（ａ）前記書き込みセグメントポインタおよび前記読み出しセグメ
ントポインタが前記第２フレームの前記データについて異なるメモリセグメントを識別し
ている場合、および（ｂ）（i）前記書き込みセグメントポインタおよび前記読み出しセ
グメントポインタが同じメモリセグメントを識別し、（ii）前記書き込みデータポインタ
が前記読み出しデータポインタよりも大きい前記第２フレームの前記データ用に前記読み
出しセグメントポインタが識別する前記セグメント中に以前のデータが存在する場合、前
記バッファが選択されることを特徴とする。
【００２１】
また本発明のデータ処理システムにおいて、各区分を個々に符号化するためのエンコー
ダをさらに具備することを特徴とする。
【００２２】
また本発明のデータ処理システムにおいて、前記データがラスタ順画素データであるこ
とを特徴とする。
【００２３】
また本発明のデータ処理システムにおいて、前記バッファが２つの区分を格納するもの
であり、前記メモリとは別個のものであることを特徴とする。
【００２４】
また本発明のデータ処理システムにおいて、画像データソースおよび表示装置をさらに
具備し、前記画像データソースが、データ損失なくしては一時停止することのできない第
１の速度で画素データを供給するものであることを特徴とする。
【００２５】
また本発明のデータ処理システムにおいて、一時停止をすれば不完全なフレームリフレ
ッシュデータが供給されることになる第１の速度で画素データを要求する表示装置をさら
に具備することを特徴とする。
【００２６】
本発明の原理を実現した装置は上述したアーチファクトを防止することができる。この
装置は、２つ以上のフレームのシーケンスを格納および読み出すことが可能である。これ
らのフレームは圧縮された画像データから構成される場合がある。さらに各フレームは区
分のシーケンスへと分割することができ、各区分は個々に圧縮することができる。装置は
、フレームを格納するためのメモリと、フレームの少なくとも１区分を格納するバッファ
と、そしてデータを格納してフェッチする第１ユニットおよび第２ユニットを含む。圧縮
されたフレームのそれぞれの区分群を格納するためにメモリの区分群（セグメント）を割
り当てることができる。
【００２７】
第１ユニットは、メモリ中の特定の位置に格納されたデータをバッファへとコピーする
。その後、第１ユニットは第１フレームのデータをその特定の位置へと格納する。書き込
みセグメントポインタおよび書き込みデータポインタが生成される。
【００２８】
第２ユニットは、選択位置から第２フレームのデータをフェッチする。読み出しセグメ
ントポインタおよび読み出しデータポインタが生成される。（ａ）書き込みセグメントポ
インタと読み出しセグメントポインタが同じメモリセグメントを識別し、かつ読み出しデ
ータポインタが書き込みデータポインタよりも大きい場合は、メモリが選択され、（ｂ）
書き込みセグメントポインタと読み出しセグメントポインタが同じメモリセグメントを識
別し、かつ書き込みデータポインタが読み出しデータポインタよりも大きい場合は、バッ
ファが選択される。
【００２９】
また、書き込みセグメントポインタおよび読み出しセグメントポインタが異なるメモリ
セグメントを識別した場合、メモリが選択される。さらには、（ａ）第２フレームのデー
タについて、書き込みセグメントポインタと読み出しセグメントポインタが異なるメモリ
セグメントを識別し、そして（ｂ）（i）書き込みセグメントポインタと読み出しセグメ
ントポインタが同じメモリセグメントを識別し、そして（ii）書き込みデータポインタが
読み出しデータポインタよりも大きい第２フレームのデータ用に読み出しセグメントポイ
ンタが識別するセグメント中に以前のデータが存在する場合、バッファが選択される。
【００３０】
一実施例においては、バッファは２つの区分を格納する。さらには、バッファはメモリ
とは別個のものとすることができる。加えて、一実施例におけるその区分は、画像データ
のフレームラインに対応するものである。
【００３１】
本概要は、図および詳細な説明において何が生じるのかを大まかに説明する手段として
提供されるものであり、本発明の範囲を限定することを意図したものではない。
【００３２】
図および以下の説明においては、同一または同様の部品、要素またはステップについて
は概ね同じ符号を用いた。
【発明を実施するための最良の形態】
【００３３】
図１は、本発明の表示システム２０の概略ブロック図である。表示システム２０は、例
えばモバイルデバイスである。表示システム２０がモバイルデバイスの場合、例えば、電
源としてバッテリ（図示せず）が使用される。表示システム２０は、グラフィックエンジ
ン２２、ホスト２４、表示装置２６、および画像データソースを含む。画像データソース
は、例えばイメージセンサ２８である。表示装置２６として複数の表示装置を含んでいて
もよい。すなわち、グラフィックエンジン２２が複数の表示装置と接続され、グラフィッ
クエンジン２２が複数の表示装置に対して画像データを送信して表示を制御してもよい。
また、画像データソースとして、複数のイメージセンサや、イメージセンサ以外の画像入
力装置をさらに含んでいてもよい。
【００３４】
グラフィックエンジン２２は、ホスト２４およびイメージセンサ２８と、表示装置２６
との間のインタフェイスをする。一実施例においては、グラフィックエンジン２２は、表
示システム２０の他の部品とは別個の集積回路である。すなわちグラフィックエンジン２
２がホスト２４、イメージセンサ２８および表示装置２６と別のＩＣチップで構成されて
いる。別の実施形態として、グラフィックエンジン２２がホスト２４やメモリ３４と同一
のＩＣで構成されていたり、グラフィックエンジン２２を構成するＩＣにイメージセンサ
２８や表示装置２６の一部の機能が含まれていたりしても良い。
【００３５】
ホスト２４は、マイクロプロセッサ、デジタル信号プロセッサ、ＣＰＵもしくはコンピ
ュータである。又は、ホスト２４は、表示システム２０の全てまたは一部の処理を制御ま
たは命令するように構成された、他のタイプのデバイスであっても良い。ホスト２４は、
機械可読媒体に格納されている命令を実行することにより処理を制御するものである。ホ
スト２４は、例えば、グラフィックエンジン２２中にあるホストインタフェイス３２へと
通じるバス３０を介してグラフィックエンジン２２と通信を行う。バス３０は、バスクロ
ック速度で動作する。ホスト２４は、コマンドおよびデータをバスクロック速度にてホス
トインタフェイス３２へと送信する。例えば、他のタスクを実行するためにホスト２４が
実行中のタスクが中断された場合などに、ホスト２４はグラフィックエンジン２２へのデ
ータ書き込みを一時停止することがある。一般に、グラフィックエンジン２２はコマンド
または画像データをいつホスト２４から受信するかについて制御、または決定することは
できない。
【００３６】
バス３０にはホスト２４以外の他のデバイスも接続することができる。たとえば、メモ
リ３４をバス３０へと接続することができる。メモリ３４には、たとえばホスト２４が使
用する命令またはデータ、あるいはグラフィックエンジン２２を用いて表示装置２６で表
示する画像データを格納することができる。このメモリ３４は、ＳＲＡＭ、ＤＲＡＭ、フ
ラッシュ、ハードディスク、光ディスク、フロッピー（登録商標）ディスク、または他の
タイプのメモリとすることができる。
【００３７】
グラフィックエンジン２２は、ホストインタフェイス３２、カメラインタフェイス４０
、表示装置インタフェイス３６を含む。
【００３８】
表示装置インタフェイス３６はグラフィックエンジン２２と表示装置２６との間にイン
タフェイスを提供する。表示装置バス３８がグラフィックエンジン２２と表示装置２６を
接続する。モバイルデバイスでは通常、液晶ディスプレイ（ＬＣＤ）が表示装置として使
用されるが、表示装置２６は（後に説明する）いずれのタイプの表示装置であってもよい
。
【００３９】
表示装置２６の表示画面２６ａ上に、グラフィックエンジン２２から供給される画像が
表示される。表示画面２６ａは１秒毎に所定回数リフレッシュされる。例えば、表示画面
２６ａは１秒間に６０回リフレッシュされる。また、表示画面２６ａは、特定の解像度を
有する。たとえば、表示画面２６ａは１６０×１２８ピクセルの解像度を持つ。
【００４０】
表示装置２６を必要なレートでリフレッシュするためには、ピクセルに特定の速度（ピ
クセルクロックレート）を設けなければならない。たとえば、表示装置インタフェイス３
６は、表示装置２６のピクセルに約２６８．８ｋＨｚのピクセルクロックレートで書き込
みを行うことができる。より大きな解像度、またはより高いリフレッシュレートを持つ表
示装置においては、それに対応するより高速のピクセルクロックが必要となる。例えば、
１０２４×４８０の解像度を持つ表示装置の場合、表示画面２６ａを７０Ｈｚでリフレッ
シュするためには約３４．４ＭＨｚのピクセルクロックレートが必要である。表示装置２
６は、いずれの解像度およびリフレッシュレートを持つものであってもよい。
【００４１】
表示装置バス３８は、ピクセルクロック速度で作動することができるもので、表示装置
バスピクセルクロックレートは一般に、その特定の表示装置の条件によって決まる。さら
に、グラフィックエンジン２２は、表示装置２６へのデータ書き込みの途中で表示画像に
アーチファクトを発生させることなく、表示装置２６へのデータ送信を一時停止させるこ
とは困難である。
【００４２】
イメージセンサ２８は、たとえば電荷結合素子（CCD:Charge Coupled Device）または
相補型金属酸化膜半導体センサ（ＣＭＯＳセンサー:Complementary Metal- Oxide Semico
nductor Sensor）とすることができる。カメラインタフェイス４０はグラフィックエンジ
ン２２に含まれる。カメラインタフェイス４０はイメージセンサ２８とバス４２を介して
接続しており、バス４２のデータ線上にイメージセンサ２８から出力される画像データを
受ける。
【００４３】
カメラインタフェイス４０は、さらに垂直同期信号および水平同期信号をイメージセン
サ２８から受信する。また、カメラインタフェイス４０は、イメージセンサ２８から出力
される画像データをクロッキングするためのクロック信号（カメラ−ピクセルクロック）
をイメージセンサ２８へと供給する。イメージセンサ２８はグラフィックエンジン２２か
ら受信したクロック信号に同期して画像信号をバス４２上に供給する。これらの信号はバ
ス４２または別個のバス（図示せず）を介して伝送することができる。
【００４４】
イメージセンサ２８のピクセルクロックレートは通常、そのイメージセンサの条件によ
り決定する。解像度が３５２×２８８ピクセルのイメージセンサ例の場合、カメラ−ピク
セルクロックレートは、たとえば最低レート、標準レート、最高レートの順に、それぞれ
４ＭＨｚ、１３ＭＨｚ、３２ＭＨｚである。同様に、イメージセンサ２８のフレームレー
トも通常はその特定のイメージセンサの条件により決まる。あるイメージセンサ例の場合
、最高フレームレートが１５フレーム／秒である。イメージセンサ２８は所望の解像度、
フレームレート、カメラ−ピクセルクロックレートとしてもよい。
【００４５】
バス４２はイメージセンサのピクセルクロック速度で動作する。グラフィックエンジン
２２はイメージセンサ２８からのデータを受信している途中に、イメージセンサが送信し
てくるデータの一部を失うことなく一時停止することは困難である。データ受信中にグラ
フィックエンジン２２を一時停止すると、通常データの一部が失われ、表示される画像に
アーチファクトが生じてしまう恐れがある。
【００４６】
グラフィックエンジン２２は、さらにメモリアクセスユニット４４、メモリ４６、バッ
ファ４８、レジスタセット５０、圧縮ブロック５４および解凍ブロック５６を含む。これ
らの各々については、以下に詳述する。
【００４７】
メモリアクセスユニット４４は、メモリ４６、バッファ４８、そして圧縮ブロック５４
および解凍ブロック５６に、図示したように接続することができる。メモリアクセスユニ
ット４４はさらに、レジスタセット５０の内容へのアクセスを持つものであってもよい。
メモリアクセスユニット４４は画像データのメモリ４６への書き込み及び読み出しを制御
することができる。加えて、本開示におけるメモリアクセスユニット４４は、画像データ
をどこからフェッチしてくるのか、たとえば以下に説明するように、メモリ４６またはバ
ッファ４８のいずれからフェッチしてくるのかを決定することができる。図１では、メモ
リアクセスユニット４４が圧縮ブロック５４や解凍ブロック５６と別に設けられているが
、代わりに、メモリアクセスユニット４４の機能の一部又は全部を圧縮ブロック５４、解
凍ブロック５６または他のユニットに含ませることも可能である。
【００４８】
メモリ４６は画像データのフレームを格納するために用いるものである。たとえば、メ
モリ４６は、表示装置２６に表示する画像のラスタデータを一時的に保持するフレームバ
ッファとすることができる。具体的には、メモリ４６は圧縮または符号化された画像デー
タのフレームを格納するために利用する。メモリ４６を必ずしもグラフィックエンジン２
２中に設ける必要はない。他の実施例においては、メモリ４６はグラフィックエンジン２
２の外に設けられている。メモリ４６は画像データの格納に用いることができる一方で、
他のタイプのデータの格納に利用することもできる。メモリ４６の容量は実施例に応じて
異なる。一実施例においては、メモリ４６は少なくとも１フレームの圧縮画像データを格
納するに十分な容量を持っており、このフレームサイズは表示装置２６の仕様および圧縮
法により画定される。他の実施例においては、さらに、メモリ４６は１フレームの圧縮画
像データと何らかの追加データを格納する容量を持つ。ただし、その容量は圧縮画像デー
タ２フレーム分を格納するには不十分である。他の実施例においては、メモリ４６は２フ
レーム以上の圧縮画像データを格納するに十分な容量を持つものとすることができる。メ
モリ４６はＳＲＡＭタイプとすることができる。さらにメモリ４６はＤＲＡＭ、フラッシ
ュメモリ、ハードディスク、光ディスク、または他のタイプのメモリとすることができる
。
【００４９】
バッファ４８はメモリ４６とは別個のものであっても、これに含まれるものであっても
よい。レジスタセット５０は、読み出しポインタアドレスおよび書き込みポインタアドレ
スを格納することができる。
【００５０】
圧縮ブロック５４は画像データを圧縮し、解凍ブロック５６は圧縮された画像データを
解凍する。圧縮ブロック５４は、特定量のソースデータを、そのデータの性質に応じて異
なる一定量の圧縮（符号化）データへと圧縮する。圧縮ブロック５４はいずれの好適な圧
縮技術を採用したものであってもよい。さらに圧縮ブロック５４は、２つ以上の圧縮技術
を別個に、または組み合わせて使用するものであってもよい。解凍ブロック５６は、圧縮
ブロック５４が使用した技法を逆転させた技法を用いて圧縮されたデータを解凍する。別
の実施形態として、圧縮ブロック５４は、イメージセンサ２８から受信した画像データの
色フォーマットを変換する機能ブロックであってもよい。解凍ブロック５６は、メモリ４
６に保存された画像データを変換する機能ブロックであっても良い。変換には、例えば画
像の縮小・拡大・回転が含まれる。
【００５１】
ホスト２４またはイメージセンサ２８は、それぞれホストインタフェイス３２またはカ
メラインタフェイス４０を介して表示用の画像データをメモリ４６へと格納することがで
きる。ホスト２４またはイメージセンサ２８からグラフィックエンジン２２へ供給された
画像データは、メモリ４６への格納前に、圧縮ブロック５４により符号化することができ
る。従って、図示されているように、ホストインタフェイス３２とメモリアクセスユニッ
ト４４は圧縮ブロック５４を介して接続され、カメラインタフェイス４０よメモリアクセ
スユニット４４も圧縮ブロック５４を介して接続される。
【００５２】
ホスト２４やイメージセンサ２８等の画像ソースから受けた画像データを圧縮すること
が望ましいのは、格納しなければならないデータ量を実質的に小さくすることができるた
めである。圧縮せずに画像データを格納する場合に比べると、グラフィックエンジン２２
のメモリ４６を小さくすることができる。また、バッファ４８に必要な容量サイズも小さ
くすることができる。
【００５３】
メモリ４６中に格納された画像データが圧縮されている場合、表示装置２６上でのレン
ダリング（表示）用に表示装置インタフェイス３６に供給される以前に画像データが解凍
されなければならない。解凍ブロック５６はこの解凍機能を実施するものである。従って
、表示装置インタフェイス３６は、解凍ブロック５６を介してメモリアクセスユニット４
４に接続される。
【００５４】
グラフィックエンジン２２の全般的な処理は、先にあげた制約の対象となる。これらの
制約には以下が含まれる。グラフィックエンジン２２は、ホスト２４からいつ画像データ
を受信するのか、またはホストがいつデータ伝送の途中で一時停止するのかについて制御
または決定することができないことが多い。グラフィックエンジンはバス３０のクロック
速度を調節することができないことが多い。また、グラフィックエンジン２２は、イメー
ジセンサ２８から画像データを受信する速度であるカメラピクセルクロックレートの一時
停止または変更ができないことが多い。さらには、グラフィックエンジン２２は画像デー
タを表示装置２６へと書きこむために使われるピクセルクロックレートの一時停止または
変更もできないことが多い。加えて、データソース側および表示装置側はそれぞれ異なる
フレームレートおよびピクセルクロックレートで動作する場合が多い。そのため、グラフ
ィックエンジン２２への画像データ入力をグラフィックエンジン２２からの画像データ出
力と同期させることは、一般に困難である。
【００５５】
ここで、画像データの一般的な性質と、データ圧縮においてそのようなデータをどのよ
うにグルーピングすることができるかについて簡単に説明する。表示装置上の画像は、「
ピクセル」として知られる小さな個別の素子群から形成されている。各ピクセルの輝度や
色といった属性は、一般に二進形式（binary form）で表される数値で表現される。従っ
て画像はデータの二進要素の２次元アレイと考えることができ、これを「フレーム」と呼
ぶ。ピクセルという語は、本願においては表示装置の表示素子、イメージセンサの撮像素
子、表示素子または撮像素子の属性を定義するデータの二進要素を指すものとして使用す
ることができ、その語に適切な意味合いはその文脈から明らかとなるものである。ピクセ
ルを表現するビット数はいくつでもよい。カラーピクセルの一般的なビット数は２４ビッ
トであるが、より小さいビット数も使用される場合がある。カラーピクセルは、赤、青お
よび緑成分に対応する３つの８ビット値を持つＲＧＢタイプとすることができる。カラー
ピクセルはまた、ルマ（luma）や２つの色差成分に対応する３つの８ビット値を持つＹＵ
Ｖタイプとしてもよい。他のタイプのカラーピクセルも、様々なタイプのグレイスケール
ピクセルと同様に本発明に用いることができる。
【００５６】
フレーム中のピクセルは通常、ホストまたはイメージセンサなどの画像データソースか
らラスタ順に表示装置へと伝送されたものである。ラスタ順にある場合、ピクセルは一度
に１ライン分を伝送し、１ラインずつ上から下まで順番に伝送される。各ラインの伝送は
最も左端のピクセルから始まる。１００ピクセルのラインにおいては、最も左端のピクセ
ルがピクセル「１」、そして最も右端のピクセルがピクセル「１００」である。走査線中
のいずれかの２つのピクセルについて言う場合、他のピクセルより左のピクセル、たとえ
ば順番値がより小さいピクセルが他方のピクセルよりも先に表示用に読み出される。
【００５７】
データ圧縮技術は、たとえばフレームなどの大きなデータグループを複数の区分へと分
割し、各区分を個々に圧縮することができる。本明細書および請求項において使用される
場合の「区分」という語は、データに関して使用する時には、個々に圧縮および解凍され
るソースデータのフレームの小集団（サブセット）を指す。一実施例においては、１区分
はフレームの１ラインとすることができる。別の実施形態として、１つの区分を１／２ラ
イン、１／３ラインなどのように１ラインよりも小さくしたり、１つの区分を２ライン、
３ラインなどのように１ラインよりも大きくしたりすることもできる。さらに区分は２本
以上のラインのピクセルを全数含む、または２本以上のラインの一部を含むもの（たとえ
ば、Ｎ×Ｍピクセルの画像において、一区分をｎ×ｍのピクセルブロック（ここで、２≦
ｎ≦Ｎ、２≦ｍ≦Ｍ））とすることもできる。
【００５８】
１つの区分は一般に複数のデータ要素（datum）を含む。上述した例においては、画像
データの１ラインは１００ピクセルから成る。例えば、１区分は、ソース画像の１ライン
に対応する１００ピクセルとすることができる。大きなデータグループを区分へと分割し
、各区分を個々に符号化するデータ圧縮技術は通常、区分の各々につき複数の符号化デー
タ要素を生成する。換言すると、圧縮された区分は通常、対応する未圧縮のソース区分よ
りも少ない数のデータ要素を含む。符号化された区分は、ソース画像の１００ピクセルの
データ要素の代わりに、たとえば７５個、５０個または２５個のデータ要素を含んでもよ
い。
【００５９】
ラスタ順ピクセルの１ライン同様に、圧縮された１区分のデータ要素もラスタ様シーケ
ンス（raster-likesequence）の順序で並んでいる。たとえば、最も左側のデータ要素は
データ要素数が１個であり、最も右側のデータ要素はデータ要素数が５０個などとなり得
る。１ライン中にある圧縮されたいずれか２つのデータ要素の場合、他方のデータ要素よ
りも左側にあるデータ要素（たとえばより小さいシーケンス値を持つデータ要素）が先に
メモリから送られる。すなわち、画像の左側に位置するピクセルに対応するデータ要素は
画像の右側にデータ要素よりも読み出されて、画像の左側に位置するピクセルに対応する
データ要素は画像の右側に位置するピクセルに対応するのデータ要素よりも先に解凍され
る。１つの区分が複数のラインで構成されている場合は、複数のラインの上のラインが先
に読み出されて、下のラインが後に読み出される。もしくは、複数のラインの要素を１つ
の要素とし、複数のラインの左側に位置するピクセルに対応するデータ要素が、複数のラ
インの右側に位置するピクセルに対応するデータ要素のデータ要素よりも先に読み出され
るようにしてもよい。
【００６０】
一実施例においては、圧縮ブロック５４は画像データフレームのライン群の１つのライ
ンである区分を圧縮する。従って圧縮ブロック５４は、ソースフレームの各ラインが受信
されるたびに符号化された１区分を生成する。フレームの各ラインはラスタ順のシーケン
ス位置を持っているため、符号化された各区分もフレームのラスタ順にあるシーケンス位
置を持つ。
【００６１】
各ライン（１区分）の画像データを圧縮した後のデータ量は、ラインごとでばらつく場
合がある。しかし、使用される圧縮アルゴリズムは、各ライン（各区分）の圧縮データが
最大圧縮サイズを超えてしまうことがないように保証するように構成されている。これに
よりメモリ４６中のセグメント（固定量スペース）を各符号化された区分用に割り当てる
ことができる。
【００６２】
たとえば、ソース画像が１００×１２０ピクセル画像であり、各ピクセルが２０ビット
で表現されているとする。圧縮ブロック５４が１２０ラインを別個に符号化することを想
定すると、未圧縮区分は各々２０００ビットである。本実施例で使用される圧縮アルゴリ
ズムは、符号化後の各区分が１０００ビットを超えることがないように保証する。従って
１２０区分を格納するために、各々が１０００ビットを格納するに十分な１２０セグメン
トをメモリ４６中に確保すれば良い。メモリ４６中に圧縮された区分が格納される時に使
われるメモリ量は、圧縮ブロック５４が区分群をどの程度圧縮することができたかによっ
て異なる。たとえば、特定の符号化された区分が９００ビットで１メモリセグメントの９
０％を占める一方、他の符号化された区分はわずかに５００ビットで１メモリセグメント
の５０％しか必要としないこともある。
【００６３】
一実施例においては、圧縮ブロック５４および解凍ブロック５６において採用される圧
縮／解凍アルゴリズムは、データストリーム中の前のデータからの情報を利用することが
ある。前のデータとは、例えばより早い時点で受信されたデータのことである。一実施例
においては、圧縮ブロック５４は、１区分中のＭ番目のデータ要素を、その区分の符号化
されたＭ−１番目のデータ要素を使って符号化する。同様に、解凍ブロック５６は、１区
分中のＭ番目のデータ要素を、その区分の解凍されたＭ−１番目の解凍データ要素を使っ
て解凍する。アルゴリズムの一例として、差分パルス符号変調法（ＤＰＣＭ）においては
、コーダおよびデコーダにサンプルコードの値を予測するために用いられるプレディクタ
が含まれている。コーダにおいては、プレディクタはサンプル値を予測するために用いら
れており、予測値からサンプルの実際の値が減算されて誤差が算出される。コーダは誤差
をデコーダへと送る。デコーダ中のプレディクタは、以前に受信したデータの情報を用い
て対応するサンプルの値を予測し、予測値を誤差に加算してそのサンプルの復号化値を算
出する。別のアルゴリズム例として、レンペル・ジブ法は、データストリーム中の先の要
素を使ってデータストリームの後の要素を符号化するものである。本発明は、ここに挙げ
た２つのアルゴリズムだけではなく、データストリーム中の先のデータの情報を利用する
全てのアルゴリズムにおいて画像の劣化防止を可能とすることを企図したものである。
【００６４】
図２は、図１のメモリ４６、バッファ４８、レジスタセット５０および圧縮ブロック５
４と解凍ブロック５６を示している。図１のメモリアクセスユニット４４は、さらに図２
で図示されている格納ユニット４４ａおよびフェッチングユニット４４ｂを含む。メモリ
４６は、複数のメモリセグメント５７（たとえばＮ個のメモリセグメント）を持ち、複数
のセグメントの各々はフレームの１区分を格納する。
【００６５】
バッファ４８は、フレームの２つの符号化区分を格納する容量を持つ。本実施形態では
、バッファ４８は２つのバッファセグメント６０を持っている。他の実施例において、バ
ッファ４８にフレームの全区分ではないが、３つ以上の区分を格納する容量を持たせるこ
ともできる。別の実施例において、バッファ４８に単一の区分を格納する容量をもたせる
こともできる。バッファ４８のセグメントの各々は、メモリ４６のセグメントの各々と同
じデータ保持容量を有するが、バッファ４８全体のデータ保持容量は、メモリ４６全体の
保持容量より小さい。
【００６６】
圧縮ブロック５４が画像データを受信すると、受信した画像データを圧縮して格納する
。本発明を用いなかった場合、解凍ブロック５６が表示装置の要求に応じて圧縮された画
像データを読み出し解凍すると、表示画面２６ａ上に特定のアーチファクトが生じる場合
があることを観測した。このアーチファクトは、レンダリングされた画像において少なく
とも１つの黒、白またはソリッドカラーの領域として現れる場合がある。画像のシーケン
スが動画として表示装置上に表示された場合、アーチファクトは表示中の１つ以上の領域
に一瞬、非ソースピクセルの線として現れることがある。これらのアーチファクトは特に
知覚されやすく。従って、このアーチファクトの問題の解決策が必要である。
【００６７】
これらのアーチファクトが一種の画像劣化であることが判明した。また、画像劣化の生
じる理由が、解凍ブロック５６が２つの別個に圧縮された区分からのデータ要素を取り扱
うことができないためであることを発見した。上述したように、解凍ブロック５６はある
区分中にある先のデータからの情報を用いてその区分中の後のデータを復号化することが
できる。解凍ブロック５６に２つの別個に圧縮された区分からのデータ要素が供給された
場合、一方のデータ要素を復号化するために誤ったデータ要素を用いることになる。画像
劣化は、解凍ブロック５６に２つの別個に圧縮された区分からのデータ要素が供給される
ために生じるものであると特定した。図３および図４は、解凍ブロック５６にどのように
２つの異なる区分からのデータ要素が供給され得るのかを説明している。
【００６８】
図３はメモリ４６を示す。図３および図４の例においては、採用されているデータ圧縮
技術が１画像データフレームを画像の１ラインに等しい区分へと分割するものであること
を想定している。換言すると、データ圧縮技術は各ラインを個々に符号化するものである
。図３に示したメモリ４６はＮ個のセグメントへと分割されている。各セグメントは１つ
の圧縮ラインを格納する。ここで、セグメントの１つを任意にラインＸと指定する。
【００６９】
図３および図４において、メモリ４６のラインＸの、３つの時点：時間Ｔ１，Ｔ２，Ｔ
３が示されている。ここで、時間Ｔ２は時間Ｔ１より後の時点であり、時間Ｔ３は時間Ｔ
２より後の時点である。この時間指定は図５〜図８においても使われている。
また、「ＲＤ」矢印は読み出しポインタの位置を示し、「ＷＲ」矢印は書き込みポイン
タの位置を示す。一実施例において、格納ユニット４４ａは、一符号化区分中の書き込み
を行っているデータについて、「書き込みポインタＷＲ」を使ってメモリセグメントＸの
特定の位置を識別する。同様に、一実施例におけるフェッチングユニット４４ｂは、一符
号化区分中のそれが読み出しを行っている各データについて、「読み出しポインタＲＤ」
を使ってメモリセグメントＸにおける特定の位置を識別する。
【００７０】
さらに本例においては、メモリ４６は空ではないと仮定する。例えば、第１フレームが
メモリ４６中に既に格納されている。また、図３及び図４では、メモリ４６は第２フレー
ムが格納される過程にある。データ要素が特定のメモリ位置中に格納されると、そのアド
レスに先に格納されていたデータ要素は書き換えられる。したがって、第１フレームのあ
るデータは、第２フレームの対応する区分のデータが格納されると書き換えられる。セグ
メントＸ中に先に格納されていた第１フレームに属するデータ要素をＸOLDの符号で示す
。新たに格納されるセグメントＸのデータ要素は第２フレームに属するもので、ＸNEWの
符号で示す（右傾斜の斜線）。
【００７１】
図３の時間Ｔ１を見ると、セグメントＸに対応する第２フレームの１ラインのシーケン
ス最初のデータ要素が解凍用に読み出されて表示される一方で、第２フレームの同じライ
ンのデータ要素がメモリ４６中に格納されている。書き込みポインタＷＲは読み出しポイ
ンタＲＤよりも先にある。
【００７２】
時間Ｔ２においては、読み出しポインタＲＤが書き込みポインタＷＲに追い付いている
。これは、上述したようにデータが受信される速度とデータがメモリ４６から読み出され
る速度が異なっていることによるものである。この例においては、読み出しポインタＲＤ
は、時間Ｔ２の後も引き続き、書き込みポインタＷＲよりも速く動く。
【００７３】
そして時間Ｔ３においては、読み出しポインタＲＤが書き込みポインタＷＲよりもかな
り先に来ている。図３は、最初、解凍ブロック５６に第２フレーム中の１ラインの符号化
されたデータ要素（セグメントＸに対応するもの）が供給されているが、しかし読み出し
ポインタＲＤが書き込みポインタＷＲを追い越した後は、解凍ブロック５６に第１フレー
ムのラインの符号化データ要素（セグメントＸに対応するもの）が供給されてしまうとこ
ろを示している。よって解凍ブロック５６には２つの異なる区分からのデータ要素が供給
されることになる。しかしながら解凍ブロック５６に２つの別個に圧縮された区分からの
データ要素が供給されると、画像劣化が生じるのである。
【００７４】
図４もメモリ４６のこのライン（セグメントＸに対応）を３つの時間Ｔ１，Ｔ２，Ｔ３
において示したものである。図４では、書き込みポインタＷＲが読み出しポインタＲＤよ
りも速く動く場合が描かれている。時間Ｔ１においては、第２フレームの１ラインのシー
ケンス最初のデータがメモリ４６中に格納される一方で、対応するラインの第１フレーム
のデータが解凍され、表示用に読み出される。
【００７５】
時間Ｔ１においては、読み出しポインタＲＤは書き込みポインタＷＲよりも先にある。
時間Ｔ２においては、書き込みポインタＷＲが読み出しポインタＲＤに追い付いている。
時間Ｔ３においては、書き込みポインタＷＲは読み出しポインタＲＤよりも先にある。
【００７６】
図４は、最初、解凍ブロック５６に第１フレームの１ライン（セグメントＸに対応）の
符号化されたデータ要素が供給されているが、書き込みポインタが読み出しポインタＲＤ
を追い越した後は、解凍ブロック５６に第２フレームの対応するラインの圧縮されたデー
タ要素が供給されるところを描いたものである。従って、ここでも２つの異なる区分から
のデータ要素が解凍ブロック５６に供給されることになる。そして解凍ブロック５６には
２つの別個に圧縮された区分からのデータ要素が供給されることから、ここでも画像の劣
化が生じる可能性があるのである。
【００７７】
本発明に基づく画像劣化の防止には、連携する２つの態様がある。第１の態様は、圧縮
された画像データをメモリ４６に格納することに関する。一般に、上述した例にあったよ
うに、第２フレームの格納が望まれたいずれかの時点では、既に第１フレームはメモリ４
６中に格納されている。第２フレームは、必ずしもそうでない場合もあるが、フレームシ
ーケンスにおいて、第１フレームの次の後続フレームである。従って、第１フレームの第
１区分に属する第１データ要素は、メモリ４６中の特定のセグメントにおける特定の位置
に格納されている。そして第２データ要素がメモリ４６に格納されることになる。第２デ
ータ要素は第２フレームの第２区分に属している。第１データ要素および第２データ要素
は、それらそれぞれの区分において連続して一致しており、第１区分および第２区分はそ
れらそれぞれのフレーム内において連続して一致している。従って第２データ要素は同じ
メモリセグメントの同じ位置に格納される。第２データ要素をメモリ４６中に格納すると
、第１データ要素を書き換えることになる。この問題を生じさせないために、メモリ４６
中に第２データ要素を格納する前に、第１データ要素がメモリ４６からバッファ４８へと
コピーされる。第１データ要素がバッファ４８にコピーされた後に、第２データ要素をメ
モリ４６中に格納することができる。
【００７８】
画像劣化を防止するために、圧縮された画像データを読み出す場所を選択する。本実施
形態において、圧縮されたデータ要素は、メモリ４６またはバッファ４８のいずれかから
読み出すことができる。ここでも第１フレームが既にメモリ４６中に格納されており、第
２フレームが格納されつつある状態を想定すると、第１フレームの特定データをメモリ４
６から読み出すのか、バッファ４８から読み出すのかは、現在読み出されている第１フレ
ームのデータと現在格納されている第２フレームのデータとの位置関係に応じて決定され
る。符号化された画像データの読み出し場所の選択について、以下に詳述する。
【００７９】
現在読み出し中である第１フレームのデータ位置と、現在格納中である第２フレームの
データ位置は、ポインタを使って識別することができる。現在格納中である第２フレーム
のデータ位置については、メモリセグメントに格納されている区分の各符号化データの、
そのセグメントにおける特定の位置を書き込みポインタＷＲが識別する。さらに書き込み
セグメントポインタＷＲＬＮを設けることができる。書き込みセグメントポインタＷＲＬ
Ｎは、メモリ４６へと格納されるべきフレームの各区分について、メモリ中の特定のセグ
メントを識別するものである。現在読み出し中である第１フレームのデータ位置について
は、メモリセグメントへと既に格納されており、その後フェッチされるべき各符号化デー
タのメモリセグメント中の特定の位置を読み出しポインタＲＤが識別する。さらに読み出
しセグメントポインタＲＤＬＮを設けることができる。読み出しセグメントポインタＲＤ
ＬＮはメモリ４６に既に格納されているフレームの各区分について、メモリ中の特定セグ
メントを識別するものである。
【００８０】
読み出しポインタＲＤがそのセグメント中に格納された区分の各データについてメモリ
４６中の特定セグメントの位置を識別する一方、データフェッチはメモリ４６またはバッ
ファ４８の対応する位置から行うことができる。従って、読み出しポインタＲＤはバッフ
ァ４８中の対応する位置も識別することができる。加えて、図５〜図８には読み出しセグ
メントポインタＲＤＬＮおよび書き込みセグメントポインタＷＲＬＮを明確に示していな
いが、これらのポインタの位置は読み出しポインタＲＤおよび書き込みポインタＷＲがそ
れぞれに指し示すラインから推定することができる。
【００８１】
一実施例においては、書き込みポインタＷＲおよび書き込みセグメントポインタＷＲＬ
Ｎは、格納ユニット４４ａにより生成することができる。格納ユニット４４ａは、書き込
みポインタＷＲおよび書き込みセグメントポインタＷＲＬＮに基づいて、メモリの書き込
むべきアドレスを特定し書き込み動作を行う。さらに一実施例においては、読み出しポイ
ンタＲＤおよび読み出しセグメントポインタＲＤＬＮはフェッチングユニット４４ｂによ
り生成することができる。フェッチングユニット４４ｂは、読み出しポインタＲＤおよび
読み出しセグメントポインタＲＤＬＮに基づいて、メモリの読み出すべきアドレスを特定
し、そのアドレスに記憶されたデータを読み出す。他の実施例においては、いずれのポイ
ンタも、グラフィックエンジン２２内部または外部の他の論理素子またはユニットにより
生成することができる。たとえば、ホスト２４またはイメージセンサ２８は特定部分を書
き込むようにメモリセグメントを指定することができる。他の事例としては、圧縮ブロッ
ク５４が、メモリセグメントと特定の符号化データを書き込むためのセグメント中の位置
を指定してもよい。同様に、解凍ブロック５６も、メモリセグメントと特定の符号化デー
タを読み出すためのセグメント中の位置を指定することができる。
【００８２】
レジスタセット５０には、書き込みポインタＷＲ、書き込みセグメントポインタＷＲＬ
Ｎ、読み出しポインタＲＤおよび読み出しセグメントポインタＲＤＬＮが記憶される。記
憶されるポインタは、現在アクセス中の位置であってもよいし、次の動作でアクセスする
メモリの位置であっても良い。また、レジスタセット５０には、読み出しを行うフレーム
の番号と書き込みを行うフレームの番号も記憶することができる。
【００８３】
図５は、本発明に基づく画像劣化防止の一例を描いたものである。図５は、メモリ４６
およびバッファ４８の時間Ｔ１〜Ｔ４の状態を示したものである。
【００８４】
図５において、第１フレームが複数の区分（ラインなど）に分割される。分割された各
区分は個々に圧縮される。そして、圧縮された複数の区分の各々は、メモリ４６の別個の
メモリセグメントへと格納される。図５は、第２フレームが、メモリ４６へと格納される
過程である。第２フレームは、第１フレームと同様に、複数の区分に分割され、各区分が
個々に圧縮される。本実施形態は、第２フレームのデータをどのように格納するかを示し
たものである。第２フレームのデータがメモリ４６のラインＸへと格納される前に、第１
フレームのメモリ中に既にメモリ４６のラインＸに格納されている対応するデータが、メ
モリ４６のセグメントＸからバッファ４８へとコピーされる。
【００８５】
図５〜図８においては、第２フレームのデータはＸNEWの符合で表す（右傾斜の斜線）
。さらに、第１フレームのデータはＸOLDの符号で示す。データＸOLDがバッファ４８に格
納された場合には、第１フレームのデータを含む位置を左傾斜の斜線で示した。書き込み
ポインタＷＲポインタが時間Ｔ１から時間Ｔ４へと進むと、バッファ４８中に格納された
第１フレームのデータ量は、メモリ４６中に格納された第２フレームのデータ量に並行し
て増加する。さらに、メモリのセグメントＸに格納された第１フレームのデータが、バッ
ファ４８の２つのセグメントのうち、最初のセグメントに格納されていることもわかる。
【００８６】
さらに、図５の例では、格納ユニット４４ａが圧縮された画像データを書き込むよりも
速い速度でフェッチングユニット４４ｂが圧縮された画像データを読み出す状況を示して
いる。
【００８７】
時間Ｔ１では、第１フレームの全ての区分のデータがメモリ４６に書き込まれた後の状
態で、第２フレームの区分Ｘ−１までのデータがメモリ４６のセグメントＸ−１に書き込
まれ、第２フレームの区分Ｘのデータの途中までセグメントＸに書き込まれている状態で
ある。時間Ｔ１を見ると、フェッチングユニット４４ｂが第１フレームの圧縮されたライ
ンＸを読み出し始める一方で、同時に格納ユニット４４ａが対応する第２フレームのライ
ンＸの書き込み処理を実施している。
【００８８】
時間Ｔ１において、読み出しているデータと書き込むデータが第１フレームと第２フレ
ームのどちらに対応するかを判定する。そして、フェッチングユニット４４ｂは、格納ユ
ニット４４ａが、フェッチングユニット４４ｂが次に読み出そうとしているものと同じラ
インＸを格納しているのかどうかを判定する。すなわち、読み出しセグメントポインタＲ
ＤＬＮが遷移するとき（フェッチングユニット４４ｂが異なるラインを読み出すとき）に
、読み出しセグメントポインタＲＤＬＮと書き込みセグメントポインタＷＲＬＮを比較す
る。読み出しセグメントポインタＲＤＬＮが書き込みセグメントポインタＷＲＬＮと等し
い場合、格納ユニット４４ａは、フェッチングユニット４４ｂが読み出そうとしているも
のと同じラインＸを書き込んでいることになる。本実施形態では、読み出しセグメントポ
インタＲＤＬＮは時間Ｔ１において書き込みセグメントポインタＷＲＬＮに等しい。
【００８９】
読み出しセグメントポインタＲＤＬＮと書き込みセグメントポインタＷＲＬＮが等しい
場合、次にフェッチングユニット４４ｂは、フェッチングユニット４４ｂが次に読み出そ
うとしているデータ要素が、格納ユニット４４ａが次に格納しようとしているデータ要素
よりも先にあるかどうか判定する。現在読み出し中又は書き込み中のデータ要素の位置を
比較すると、次のデータ要素の読み出し又は書き込みを行っている間に、書き込みが読み
出しを追い越してしまう可能性があるので、次の読み出し又は書き込みに関する情報を比
較するのが好ましい。別の実施形態として、フェッチングユニット４４ｂが次に読み出そ
うとしているデータ要素が、格納ユニット４４ａが次に格納しようとしているデータ要素
よりも、所定の閾値以上先にあるかどうか判定してもよい。さらに別の実施形態として、
判定処理の回数を減らすために、所定時間毎や所定のタイミング（例えば、読み出しセグ
メントポインタＲＤＬＮの値が遷移するとき）毎に、読み出しポインタＲＤと書き込みポ
インタＷＲを比較してもよい。この判定を実施するために、フェッチングユニット４４ｂ
は読み出しポインタＲＤおよび書き込みポインタＷＲの位置を比較する。さらに、別の実
施形態として読み出しポインタＲＤ又は書き込みポインタＷＲがセグメント中の最初のデ
ータ要素であると、すでに判定されている場合は、読み出しポインタＲＤと書き込みポイ
ンタＷＲとの比較を省略することもできる。
【００９０】
時間Ｔ１において、書き込みポインタＷＲは読み出しポインタＲＤよりも大きい。従っ
て、格納ユニット４４ａが次に格納しようとしているデータ要素が、フェッチングユニッ
ト４４ｂが次に読み出そうとしているデータ要素よりも先にあることがわかる。
【００９１】
読み出しセグメントポインタＲＤＬＮと書き込みセグメントポインタＷＲＬＮが等しく
、書き込みポインタＷＲが読み出しポインタＲＤよりも大きい場合、フェッチングユニッ
ト４４ｂは、データ要素を次に読み出す場所をバッファ４８に指定する。この結果は図５
中の時間Ｔ１時点に、読み出しポインタＲＤからバッファ４８へと伸びる矢印６２により
示されている。フェッチングユニット４４ｂが後のデータ要素を読み出す準備をする間に
、画像データをどこから（たとえばメモリ４６またはバッファ４８のいずれから）フェッ
チするべきかについての判定をさらに行う。
【００９２】
時間Ｔ２においては、フェッチングユニット４４ｂは引き続きデータ要素をバッファ４
８から読み出している。その理由は、時間Ｔ２時点においては、格納ユニット４４ａが格
納しようとする次のデータ要素が、いまだにフェッチングユニット４４ｂが読み出そうと
する次のデータ要素の先にあるためである。
【００９３】
時間Ｔ３においては、フェッチングユニット４４ｂは読み出すべき次のデータ要素が一
番最近書き込まれたデータ要素よりも先にあると判定する。この結果、フェッチングユニ
ット４４ｂは矢印６４に示したように、読み出し場所を切り替えて、メモリ４６からデー
タ要素を読み出すのである。
【００９４】
時間Ｔ４においては、フェッチングユニット４４ｂが読み出そうとしている次のデータ
要素は未だに格納ユニット４４ａが格納しようとしている次のデータ要素よりも先にある
。従って、フェッチングユニット４４ｂはメモリ４６からの読み出しを続ける。なお、本
実施形態では時間Ｔ４で再び書き込みポインタＷＲが読み出しポインタＲＤを比較してい
るが、読み出し場所の切り替えが発生した後、同じ区分Ｘを読み出し又は書き込みする間
は、書き込みポインタＷＲが読み出しポインタＲＤの比較を省略又は比較する間隔を切り
替え前より長くしてもよい。
【００９５】
図５に示したように、フェッチングユニット４４ｂは常に単一区分からの圧縮画像デー
タ（第１フレームのラインＸ）を読み出している。これにより上述したタイプの画像劣化
を確実に防止することができる。
【００９６】
図６は、本発明に基づく画像劣化防止の他の例を示している。図６はメモリ４６および
バッファ４８の４つの時点における状態を示している。図５同様、図６の例における各々
のセグメントに保存されるデータは、画像の符号化された１ライン分のデータである。す
なわち、各々のセグメントには、少なくとも１回の圧縮工程で圧縮されたデータが格納さ
れる。従って、１区分のデータが複数のセグメントに分割されて保存ない。ここで、符号
化されたデータにさらに符号化処理を加える場合も、１回の圧縮工程として構わない。
【００９７】
図６は、フェッチングユニット４４ｂが圧縮された画像データを読み出す速度より、格
納ユニット４４ａが圧縮画像データを書き込む速度が速い場合を説明したものである。
【００９８】
時間Ｔ１を見ると、格納ユニット４４ａが第２フレームのラインＸを書き込もうとして
いる。一方で、これと同時にフェッチングユニット４４ｂが第１フレームに対応するライ
ンＸを読み出す処理を行っていることがわかる。時間Ｔ１において、フェッチングユニッ
ト４４ｂは、フェッチングユニット４４ｂが次に読み出そうとしている同じラインＸに格
納ユニット４４ａが書き込みを行っているのかどうかを判定する。なお判定処理のタイミ
ングは、フェッチングユニット４４ｂがラインＸ−１を読み出している期間にすることが
できる。これによれば、判定処理によって、フェッチングユニット４４ｂの読み出し処理
の遅延を防ぐことができる。また、別の実施形態として、判定処理のタイミングは、フェ
ッチングユニット４４ｂがラインＸ−１の読み出しを完了し、ラインＸの読み止し処理に
移行する期間であってもよい。図６においては、時間Ｔ１時点で読み出しセグメントポイ
ンタＲＤＬＮは書き込みセグメントポインタＷＲＬＮと等しく、格納ユニット４４ａおよ
びフェッチングユニット４４ｂが同じラインＸにアクセスすることがわかる。
【００９９】
フェッチングユニット４４ｂが読み出すメモリの区分と格納ユニット４４ａが書き込む
メモリの区分が同じと判定された場合、次の工程として、フェッチングユニット４４ｂは
、フェッチングユニット４４ｂが次に読み出そうとしているデータ要素が、格納ユニット
４４ａが次に格納しようとしているデータ要素の先にあるかどうかを判定する。前のデー
タ要素の読み出し中に、次に読み出し予定のデータ要素について判定を行うことで、判定
処理をデータ要素を読み出しながら行うことができる。図に示すように、時間Ｔ１におい
て読み出しポインタＲＤは書き込みポインタＷＲの先にあり、フェッチングユニット４４
ｂが次に読み出そうとしているデータ要素が、格納ユニット４４ａが次に格納しようとし
ているデータ要素の先にあることが示されている。この場合、フェッチングユニット４４
ｂは、次にこれが読み出そうとしているデータ要素の場所はメモリ４６であると判定する
。この判定結果により、フェッチングユニット４４ｂは、メモリ４６からデータを読み出
す。フェッチングユニット４４ｂは後のデータ要素の読み出し準備をする間、特定の符号
化データをどこからフェッチするべきかについて、さらなる判定を実施する。
【０１００】
時間Ｔ２において、フェッチングユニット４４ｂが次に読み出すデータ要素が、格納ユ
ニット４４ａが次に格納するデータ要素の先にある。このためフェッチングユニット４４
ｂは、時間Ｔ２においてはメモリ４６からデータ要素を読み出す。
【０１０１】
時間Ｔ３においてフェッチングユニット４４ｂは、格納ユニット４４ａが次に格納する
データ要素が、フェッチングユニット４４ｂが次に読み出すデータ要素の先にあると判定
する。すなわち、次のアクセスで、読み出しポインタＲＤより書き込みポインタＷＲが先
になると判定する。この場合においては、フェッチングユニット４４ｂは、次にこれが読
み出そうとするデータ要素の場所がバッファ４８であると判定する。矢印６６に示すよう
に時間Ｔ３においては、フェッチングユニット４４ｂは読み出し場所を切り替え、データ
要素をバッファ４８から読み出す。
【０１０２】
時間Ｔ４において、格納ユニット４４ａが次に格納するデータ要素は未だにフェッチン
グユニット４４ｂが次に読み出すデータ要素の先にある。この結果、フェッチングユニッ
ト４４ｂはバッファ４８からの読み出しを続行する。
【０１０３】
図５に示したように、フェッチングユニット４４ｂは圧縮された画像データを常に単一
のセグメントから読み出すことになる。すなわち、すなわち、第１フレームのラインＸが
格納されているメモリ４６のセグメントＸ及び第１フレームのラインＸが格納されている
バッファ４８の第１セグメントのいずれか一方から読み出すことになる。そのため、画像
劣化を防ぐことができる。
【０１０４】
いずれの任意のフレームにおいても、読み出しポインタＲＤおよび書き込みポインタＷ
Ｒは複数回にわたり相互に追い越し、追い越される可能性がある。上述したように、これ
には複数の原因がある。たとえば、そのデータの性質に応じて符号化されたデータ量が区
分ごとに異なる場合がある。従って格納ユニット４４ａおよびフェッチングユニット４４
ｂがそれぞれにデータの区分を書き込む、および読み出すために要する時間が第１フレー
ムおよび第２フレームの対応する区分について変動する可能性があるのである。上記に図
５に関して提示した例は、圧縮された画像データが書き込まれる速度よりも読み出される
速度の方が速い場合に、すなわち読み出しポインタＲＤが書き込みポインタＷＲを追い越
す場合に、本発明に基づいて画像劣化をいかに防止するかを示したものである。同様に、
上記に図６に関して提示した例は、圧縮された画像データが読み出される速度よりも書き
込まれる速度の方が速い場合（すなわち書き込みポインタＷＲが読み出しポインタＲＤを
追い越す場合）に、本発明に基づいて画像劣化をいかに防止するかを示したものである。
よっていずれの状況にあっても、画像劣化を防止することができる。
【０１０５】
別の実施形態として、データの圧縮および解凍はデータ量等に依存するので、圧縮前の
第１フレームの区分Ｘのデータ量と、圧縮前の第２フレームの区分Ｘのデータ量から、符
号化工程および複合化工程に要する時間を計算し、その計算した時間に基づいて、フェッ
チングユニット４４ｂが、メモリ４６とバッファ４８のどちらからデータを読み出すべき
か判定してもよい。
【０１０６】
図７および図８は、本発明に基づいて画像劣化を防止する他の実施例である。図２、図
５、図６、図７および図８に例示したバッファ４８は、２つの符号化区分（たとえばデー
タの２つの符号化されたライン）を格納する容量を持っている。すなわち、バッファ４８
は、第１セグメントと第２セグメントの２つのセグメントを有する。図７および図８は２
つの区分を格納する容量を設ける有効性を説明するものである。図７および図８は、両方
を併せるとメモリ４６およびバッファ４８の８つの時点の状態を示している。図７および
図８に提示した例においては、図６の例同様、フェッチングユニット４４ｂが圧縮された
画像データを読み出すよりも速い速度で格納ユニット４４ａが圧縮された画像データを書
き込んでいる。この例が図６の例と異なる点は、格納ユニット４４ａがその速度の優勢を
単一の区分を超えて維持する点である。
【０１０７】
上述したように、画像劣化を防止する態様の１つは、第２フレームの対応するデータが
メモリ４６へと書きこまれる前に、書き込みを行うセグメントに保存されている第１フレ
ームの以前にメモリ４６へ格納されたデータを、バッファ４８へとコピーする。１区分は
、バッファ４８の第１セグメントと第２セグメントのいずれか一方へコピーされる。図７
のバッファ４８の上のセグメントを第１セグメント、下のセグメントを第２セグメントと
する。本実施形態では、セグメントＸのデータはバッファ４８の第１セグメントにコピー
されている。フェッチングユニット４４ｂがデータを読み出す速さより、格納ユニット４
４ａがメモリ４６の特定のセグメントにデータを書き込む速さのほうが速い場合、格納ユ
ニット４４ａはそのセグメントへの格納を完了して次の後続セグメント（Ｘ＋１など）中
に格納された区分の格納を開始する。この状況が生じた場合、バッファ４８の第２セグメ
ントが使用される。
【０１０８】
図７および図８に示したように、メモリ４６の後続セグメント（Ｘ＋１など）中に格納
された第１フレームの区分は、バッファ４８の第２セグメントにコピーされる。たとえば
、時間Ｔ４において、Ｘ＋１OLDで示される第１フレームのデータが、バッファ４８の第
２セグメント中にコピーされる。
【０１０９】
さらに、格納ユニット４４ａが現在のセグメントの書き込みを終了するのみならず、次
のセグメントの書き込みを終了し、そしてさらに後続のセグメント（Ｘ＋２など）の書き
込みを開始するといったデータを、フェッチングユニット４４ｂが読み出す速度に比して
、格納ユニット４４ａが相当な速度でデータを書き込んでいる可能性もある。格納ユニッ
ト４４ａがそのような後続セグメントを書き込んでおり、そしてバッファ４８が２セグメ
ント分の容量を持つものであるときに、フェッチングユニット４４ｂが現在、バッファ４
８中のセグメントの１つを読み出している場合は、格納ユニット４４ａは、フェッチング
ユニット４４ｂが読み出していないバッファ４８中のセグメントに、第１フレームの「古
い」データをコピーする。たとえば、時間Ｔ７において、Ｘ＋２OLDで示される第１フレ
ームのデータが、バッファ４８の第２セグメントへとコピーされる。留意すべきは、時間
Ｔ７においてＸ＋２OLDがバッファ４８の第２セグメントに格納されているＸ＋１OLDを上
書きする点である。
【０１１０】
次に図７の時間Ｔ１を参照しながら、第１フレームのデータのフェッチングについて説
明する。格納ユニット４４ａは第２フレームのラインＸの書き込みを開始しており、フェ
ッチングユニット４４ｂは第１フレームの対応するラインＸの読み出し処理中である。フ
ェッチングユニット４４ｂはまず、フェッチングユニット４４ｂが現在読み出している同
じラインＸに対し、格納ユニット４４ａが書き込みを実施しているのかどうかを判定する
。読み出しセグメントポインタＲＤＬＮが書き込みセグメントポインタＷＲＬＮと等しい
場合、フェッチングユニット４４ｂは次に、次の読み出しポインタＲＤが次の書き込みポ
インタＷＲよりも大きいかどうかを判定する。別の実施形態として、現在の読み出しポイ
ンタＲＤが現在の書き込みポインタＷＲよりも大きいかどうかを判定してもよい。時間Ｔ
１において、格納ユニット４４ａが書き込む画像のラインと、フェッチングユニット４４
ｂが読み出す画像のラインは等しい。すなわち、格納ユニット４４ａが書き込むメモリの
セグメントとフェッチングユニット４４ｂが読み出すメモリのセグメントが等しい。さら
に、読み出しポインタＲＤが書き込みポインタＷＲよりも大きい。換言すると、フェッチ
ングユニット４４ｂがアクセスする読み出し位置が、格納ユニット４４ａはアクセスする
書き込み位置よりも先に位置する。従って、フェッチングユニット４４ｂの読み出すセグ
メントのデータが格納ユニット４４ａによって次のフレームのデータに書き換えられない
ので、フェッチングユニット４４ｂは、時間Ｔ１においてはメモリ４６からデータ要素を
読み出す。
【０１１１】
時間Ｔ２において、格納ユニット４４ａとフェッチングユニット４４ｂが同じラインＸ
をアクセスしているが、しかしこの時点においては書き込みポインタＷＲが読み出しポイ
ンタＲＤを追い越している。すなわち、フェッチングユニット４４ｂが読み出すべきメモ
リのセグメントに保存されたデータは、格納ユニット４４ａによって次のフレームのデー
タに書き換えられており、引き続きメモリ４６からデータを読み出すと異なる区分のデー
タを読み出してしまうことになる。そのため、フェッチングユニット４４ｂは矢印６８に
示すようにバッファ４８から読み出しを行うために切り替える。
【０１１２】
時間Ｔ３においては、格納ユニット４４ａは、第２フレームのラインＸの最後のデータ
要素をメモリ４６に書き込んでいる。一方で、フェッチングユニット４４ｂは、バッファ
４８からの第１フレームのラインＸの読み出しを継続している。
【０１１３】
図７の時間Ｔ４を参照すると、格納ユニット４４ａは第２フレームのラインＸ＋１をメ
モリ４６へと書きこんでいる。格納ユニット４４ａが第２フレームのラインＸ＋１の特定
のデータ要素をメモリ４６へと書き込む前に、格納ユニット４４ａは第１フレームのライ
ンＸ＋１の対応するデータ要素Ｘ＋１OLDをバッファ４８へとコピーする。本実施形態で
は、Ｘ＋１OLDのメモリ４６のセグメントＸ＋１からバッファ４８の第２セグメントへの
コピーと、格納ユニット４４ａによるＸ＋１NEWのメモリ４６のセグメントＸ＋１への格
納とを並行して行っている。バッファ４８は、第１セグメントと第２セグメントを含む。
第１セグメントと第２セグメントの各々は、メモリの複数のセグメントの各々と同じ記憶
容量を有する。フェッチングユニット４４ｂが現在データをフェッチしているのはバッフ
ァ４８の第１セグメントからであるため、格納ユニット４４ａはラインＸ＋１OLDをバッ
ファ４８の第２セグメントにコピーする。これにより、読み出し前のデータＸOLDがＸ＋
１OLDに上書きされて破壊されるのを防ぐことができる。ここで、フェッチングユニット
４４ｂがメモリの１つのセグメントに格納されたデータをフェッチする速度や、格納ユニ
ット４４ａがメモリにデータを１つのセグメントに格納する速度より、メモリの１つのセ
グメントに格納されたデータをバッファ４８にコピーする速度は速い。
【０１１４】
加えて、フェッチングユニット４４ｂは時間Ｔ４において、読み出しセグメントポイン
タＲＤＬＮが書き込みセグメントポインタＷＲＬＮに等しいか否かを判定する。時間Ｔ４
時点では、読み出しセグメントポインタＲＤＬＮは書き込みセグメントポインタＷＲＬＮ
と等しくないことがわかる。すなわち、読み出しセグメントポインタＲＤＬＮより書き込
みセグメントポインタＷＲＬＮが大きく、格納ユニット４４ａがメモリに書き込む第２フ
レームは、フェッチングユニット４４ｂがフェッチする第１フレームより後にグラフィッ
クエンジン２２が受信した別のフレームである。従って、フェッチングユニット４４ｂは
、これが次に読み出そうとしているデータ要素はバッファ４８から読み出されるべきもの
であると判定する。
【０１１５】
引き続き図８を参照しつつ本実施例を説明する。時間Ｔ５において、格納ユニット４４
ａは、現在のメモリ４６へとラインＸ＋１の最後のデータ要素を書き込んでいる。格納ユ
ニット４４ａは、ラインＸ＋１の最後のデータ要素の書き込みを終えると、ラインＸ＋２
の書き込みを開始する。時間Ｔ５において、フェッチングユニット４４ｂは、読み出しセ
グメントポインタＲＤＬＮが書き込みセグメントポインタＷＲＬＮと等しいかどうかを判
定する。ここでも読み出しセグメントポインタＲＤＬＮは書き込みセグメントポインタＷ
ＲＬＮと等しくない。すなわち、読み出しセグメントポインタＲＤＬＮより書き込みセグ
メントポインタＷＲＬＮが大きく、かつ、格納ユニット４４ａがメモリに書き込む第２フ
レームは、フェッチングユニット４４ｂがフェッチする第１フレームと別のフレームであ
る。従って、フェッチングユニット４４ｂは現在のデータの読み出し場所がバッファ４８
であると判定する。引き続き、フェッチングユニット４４ｂは、バッファ４８のＸOLDが
保存されている第１セグメントからデータを読み出す。
【０１１６】
時間Ｔ６においては、格納ユニット４４ａはラインＸ＋２をメモリ４６のセグメントＸ
＋２へと書きこんでいる。格納ユニット４４ａは、第２フレームのラインＸ＋２をメモリ
４６に書き込みながら、第１フレームのラインＸ＋２のデータ要素（図中のＸ＋２OLD）
を、バッファ４８の第２セグメントにコピーする。
【０１１７】
ここで、バッファ４８の第２セグメントに保持されているラインＸ＋１OLDのデータが
Ｘ＋２OLDによって上書き保存されてしまう。さらに、メモリ４６のラインＸ＋１には、
既にＸ＋１NEWが保存されている。そのため、フェッチングユニット４４ｂは、Ｘ＋１OLD
のデータを読み出すことができないが、本発明によれば異なる区分のデータを読み出して
しまうことがないので、表示の１つのライン上でデータのノイズが発生することは防止す
ることができる。もちろん、バッファ４８のセグメントの数を増やすことで上記の課題も
解決することができる。
【０１１８】
時間Ｔ７においては、フェッチングユニット４４ｂはラインＸの最後のデータ要素をバ
ッファ４８から読み出している。そして時間Ｔ８において、フェッチングユニット４４ｂ
が次に読み出そうとするデータ要素は、ラインＸ＋１のシーケンス最初のデータ要素であ
る。フェッチングユニット４４ｂは、読み出そうとしている次のデータ要素をメモリ４６
から読み出すのか、バッファ４８から読み出すのかを判定する。現在、格納ユニット４４
ａはラインＸ＋２を書き込んでおり、フェッチングユニット４４ｂはラインＸ＋１を読み
出そうとしていることから、読み出しセグメントポインタＲＤＬＮは書き込みセグメント
ポインタＷＲＬＮに等しくない。さらに、フェッチングユニット４４ｂは、現在のデータ
がセグメント中の最初のデータであることを判定している。この場合（ＲＤＬＮ≠ＷＲＬ
Ｎ、ＲＤ＝セグメントの最初のデータ）、フェッチングユニット４４ｂは、次に読み出そ
うとしているデータ要素の場所が、メモリ４６であると判定する。すなわち、フェッチン
グユニット４４ｂは、バッファ４８の第１セグメントから読み出したＸOLDの次は、メモ
リ４６のセグメントＸ＋１からＸ＋１NEWを読み出すことになる。Ｘ＋１OLDからＸNEWの
データは読み出していないが、異なる区分のデータを読み出さないので、表示の１つのラ
イン上でデータのノイズが発生することは防止することができる。別の実施形態として、
Ｘ＋１OLDの次にＸ＋１OLDを読み出さず、Ｘ＋２OLDを読み出しても良い。
【０１１９】
図９は、本発明の一実施例に基づいて所定のフレームを読み出すための方法７０を説明
する図である。方法７０は、データグループ（例えば、フレームなど）が何らかの目的で
複数の区分（例えば、個々の区分ごとに圧縮する場合など）に分割され、それらの複数の
区分及び区分中の複数のデータ要素が順序付けされたもの（例えば、画像データをライン
順及びラスタ順に順序付けする場合など）について、適用することができる。ただし、こ
こでは説明の便宜上、そして本実施例に基づき、各ラインが個々に符号化されているラス
タ順ピクセルのフレームに関連させて方法７０を説明する。しかしながら、方法７０は他
のグループ化方式および他の区分を有するデータにも適用可能であり、ピクセルデータに
限られたものではない。例えば、後述するように圧縮音楽データにも利用可能である。前
述した方法と概ね同様に、書き込みセグメントポインタＷＲＬＮは現在書き込まれている
（または次に書き込まれる）ラインのシーケンス位置を表す計数値であり、読み出しセグ
メントポインタＲＤＬＮは現在読み出されている（または次に読み出される）ラインのシ
ーケンス位置を表す計数値である。図９においては、ＲＤＬＮ＝ＮＥＷという表記は、１
つのラインの読み出しが終了し、新たなラインのシーケンス最初のデータ要素が読み出さ
れることを表す。さらに、ＷＲＰＴＲ（例えば前述の書き込みポインタＷＲに対応する）
およびＲＤＰＴＲ（例えば前述の読み出しポインタＲＤに対応する）はライン中の特定の
データのシーケンス位置を表すものである。
【０１２０】
第１フレームがメモリ（例えば前述のメモリ４６に対応する）中に格納されており、バ
ッファ（例えば前述のバッファ４８に対応する）が第１フレームの少なくとも１ラインを
格納することができる状態を想定する。さらに、第２フレームが同様にメモリへと格納さ
れつつある状態を想定する。ステップＳ７２において、画像データの読み出しは、第１フ
レームの新たなラインの最初のデータ要素から開始される。言い換えると、ステップＳ７
２は、読み出すラインが切り換わり、メモリのあるセグメントの最初のデータ要素が読み
出されるタイミングを示している。ステップＳ７２において、ラインの切り替えに伴う処
理を行う。
【０１２１】
ステップＳ７４において、読み出しセグメントポインタＲＤＬＮが書き込みセグメント
ポインタＷＲＬＮに等しいかどうかが判定される。すなわち、読み出されるべき新たなラ
インが現在書き込まれているラインと同じか否かが判定される。読み出すデータは第１フ
レームのデータ要素であるが、現在書き込まれているラインは、第２フレームに属する場
合がある。読み出しセグメントポインタＲＤＬＮが書き込みセグメントポインタＷＲＬＮ
に等しくない場合、ステップＳ７６に進み、メモリから読み出しセグメントポインタＲＤ
ＬＮの最初のデータ要素が読み出される。
【０１２２】
ステップＳ７６においてメモリからデータが読み出された後、ステップＳ７８において
このデータが読み出しセグメントポインタＲＤＬＮの現在値に対応するラインの最後のデ
ータ要素であるかどうかが判定される。これがラインの最後のデータ要素ではない場合、
方法はステップＳ７４へと戻る。一方、これが最後のデータ要素であった場合、次の読み
出しは新たなラインの最初のデータ要素から開始されるため、フローは開始点であるステ
ップＳ７２へと戻り、ライン切り替えに伴う処理を行った後に、再びステップＳ７４で読
み出しセグメントポインタＲＤＬＮが書き込みセグメントポインタＷＲＬＮに等しいかど
うかが判定される。
【０１２３】
ステップＳ７４において読み出しセグメントポインタＲＤＬＮが書き込みセグメントポ
インタＷＲＬＮに等しかった場合、次に、ステップＳ８０において、読み出しポインタＲ
Ｄが書き込みポインタＷＲよりも大きいかどうかが判定される。読み出しポインタＲＤが
書き込みポインタＷＲよりも大きい場合、ステップＳ７６において、現在のデータはメモ
リから読み出される。読み出しポインタＲＤが書き込みポインタＷＲよりも小さい場合、
フローはステップＳ８２へと進む。
【０１２４】
ステップＳ８２において、読み出しセグメントポインタＲＤＬＮが書き込みセグメント
ポインタＷＲＬＮに等しいか否かが判定される。読み出しセグメントポインタＲＤＬＮが
書き込みセグメントポインタＷＲＬＮに等しい場合、ステップＳ８４へと進む。一方、読
み出しセグメントポインタＲＤＬＮが書き込みセグメントポインタＷＲＬＮと等しくない
場合、ステップＳ８６へと進む。
【０１２５】
ステップＳ８４において、ＲＤＰＴＲがＷＲＰＴＲよりも大きいか否かが判定される。
ＲＤＰＴＲがＷＲＰＴＲよりも大きい場合、次に読み出されるべきデータ要素は、ステッ
プＳ８８においてメモリから読み出される。一方、ＲＤＰＴＲがＷＲＰＴＲよりも大きく
ない場合、次に読み出されるべきデータ要素はステップＳ９０においてバッファから読み
出される。次に読み出されるべきデータ要素が、メモリから読み出されるのか（ステップ
Ｓ８８）、バッファから読み出されるのか（ステップＳ９０）に関わりなく、データ要素
が読み出された後は、ステップＳ９２において、そのデータがライン最後のデータ要素で
あったか否かが判定される。ライン最後のデータ要素ではなかった場合、方法はステップ
Ｓ８２に戻る。一方、これが最後のデータ要素であった場合、方法は開始点であるステッ
プＳ７２に戻る。
【０１２６】
ステップＳ８６においては、現在のデータはバッファから読み出される。現在のデータ
が読み出された後、ステップＳ９４においてこのデータがライン最後のデータであったか
否かが判定される。これがライン最後のデータではない場合、方法はステップＳ８６に戻
り、次の読み出されるべき後続データがバッファから読み出される。一方、これがライン
最後のデータである場合、方法は開始点であるステップＳ７２に戻る。
【０１２７】
図１０は、変形例のフローを表す図である。図９と対応するステップには同じ符号を付
与している。ステップＳ７２，Ｓ７４，Ｓ７６は、図９の実施例と同じ機能をする。ステ
ップＳ８０で、読み出しポインタＲＤが書き込みポインタＷＲよりも大きいかどうかが判
定される。読み出しポインタＲＤが書き込みポインタＷＲよりも大きい場合、図９の実施
例と同様に、ステップＳ７６において、現在のデータはメモリから読み出される。一方、
読み出しポインタＲＤが書き込みポインタＷＲよりも小さい場合、フローはステップＳ９
６へと進み、現在のデータはバッファから読み出される。さらに、ステップＳ７６または
ステップＳ９６での処理を終えた後、ステップＳ７８へ進む。グラフィックエンジンに新
たなフレームが受信されず、受信した全てのフレームをフェッチユニットが読み出し終え
たとき、フローは終了する。
【０１２８】
別の変形例として、バッファがｎ個のセグメントを有する場合、すなわち、ｎ個の区分
を格納可能な場合とし、現在読み出しているデータが現在書き込みをしているデータの前
のフレームである場合とする。その場合、ステップＳ７４において、読み出しセグメント
ポインタＲＤＬＮが書き込みセグメントポインタＷＲＬＮと等しいと判定されたときにス
テップＳ８０を実行する。一方、ステップＳ７４において、読み出しセグメントポインタ
ＲＤＬＮが書き込みセグメントポインタＷＲＬＮより大きいと判定された場合または読み
出しセグメントポインタＲＤＬＮが書き込みセグメントポインタＷＲＬＮ−ｎ以下と判定
された場合、ステップＳ７６のようにメモリから読み出し、一方、読み出しセグメントポ
インタＲＤＬＮが書き込みセグメントポインタＷＲＬＮより小さくか書き込みセグメント
ポインタＷＲＬＮ−ｎより大きいと判定されたとき、ＰＤＰＴＲとＷＲＰＴＲの大小を比
較することなく又は比較結果に依らずにレジスタから読み出すようにしてもよい。
【０１２９】
本発明の方法の実施例は、ハードウェアまたはソフトウェア、またはハードウェアおよ
びソフトウェアの組み合わせにより実現可能である。方法の全てまたは一部をソフトウェ
アで実現する場合、命令のプログラムは方法の１つ以上のステップを含み、そしてプログ
ラムは機械により実行するために機械可読媒体上に具現化することができる。機械可読媒
体は、磁気式、光学式または機械式のものである。機械可読媒体の一部の例には、フロッ
ピー（登録商標）ディスク、フラッシュメモリ、光ディスク、バーコードおよびパンチカ
ードが含まれる。機械の一部の例には、ディスクドライブ、プロセッサ、ＵＳＢドライブ
、光学式ドライブおよびカードリーダが含まれる。上記の例は、媒体および機械を網羅す
るリストではない。一実施例においては、本発明に基づく方法は、表示システム２０のよ
うなコンピュータシステム中において実施可能である。
【０１３０】
本願においては、主に圧縮された画像データに関して説明した。一実施例においては、
本発明の原理を、非圧縮画像データに実施することもできる。他の実施例においては、本
発明の原理を、ＭＰ３タイプ、ＷＭＡタイプ、ＷＡＶタイプのデータなどの圧縮音声デー
タに実施することもできる。
【０１３１】
請求の範囲に記載される本発明のデータ処理装置は、電子機器に用いることができる。
例えば、モバイルデバイス中に利用することができる。「モバイルデバイス」と言う語を
本明細書および請求項において使用した場合、携帯電話やＰＤＡ、デジタル音楽プレイヤ
ー、デジタルカメラ、または他の類似の装置を含むコンピュータ手段、または通信システ
ムを意味する。請求の範囲に記載される本発明の実施例は、コンピュータおよび通信シス
テム、一般の装置を含むがこれらに限られない、画像データを処理する能力を持ついずれ
の装置においても採用することができる。
【０１３２】
「表示装置」という語を本明細書および請求項において使用した場合、画像をレンダリ
ングすることができるあらゆるタイプの装置を指す。たとえば、表示装置という語は、プ
リンタやプロッタなどのハードコピー装置を含むことを意図している。表示装置という語
はさらに、ＣＲＴ、ＬＥＤ、ＯＬＥＤおよびプラズマ装置など、採用されている特定の表
示技術に縛られることなく、あらゆる種類の表示装置を指すものである。
【０１３３】
本願においては、説明を曖昧としないために、当業者には周知の特定の構造、プロセス
および作用を詳細に説明していない場合がある。請求の範囲に記載される本発明の実施例
は、このような詳細が説明されていなくても実施することができる。一方、特定の構造、
プロセスおよび作用の詳細を、これらの詳細が当業者には周知ではあっても、ある程度詳
細に説明したものもある。これはたとえば、当業者以外の読み手の便宜を図ってのことで
ある。よって請求の範囲に記載される本発明の実施例は、説明されている具体的詳細の一
部また全てを使わずとも実施することが可能である。
【０１３４】
本明細書においては、「一実施例」または「ある実施例」を参照しつつ説明した。これ
らの参照は、実施例に関連して描かれた特定の特徴、構造および特性が、請求の範囲に記
載される本発明の少なくとも１つの実施例に含まれることを意味している。よって様々な
場面で使用される「一実施例において」、や「実施例」という語は、必ずしも同じ実施例
に言及しているわけではない。さらに、特定の特徴、構造または特性は、１つ以上の実施
例において組み合わせることも可能である。
【０１３５】
明確な理解を得るために、詳細にわたり実施例を説明してきたが、本願請求項の範囲に
おいて、特定の変更および改変を加えることが可能であることは言うまでもない。従って
、説明した実施例は説明目的のものであり、限定的なものとして捉えられるべきではなく
、請求の範囲に記載される本発明は、本明細書で提示した詳細に縛られるものではなく、
請求項の範囲またはそれに相当する範囲において変更可能である。さらに、上記明細書に
おいて使用した語および表現は説明目的のもので限定的なものではなく、そのような語お
よび表現の用法において、図示および説明した特徴およびその一部分の相当物を除外する
意図はない。本発明の範囲は唯一請求項によってのみ限定されるものであることは明らか
である。
【図面の簡単な説明】
【０１３６】
【図１】本発明の原理を実現するグラフィックエンジンを含むグラフィック表示システムの一例を示す概略ブロック図。
【図２】図１のグラフィックエンジンのフェッチングユニット、格納ユニットおよび他の特定の部品を示す概略ブロック図。
【図３】３つの時点におけるメモリ４６とメモリ４６の１ラインを示す概略図であり、特定の種類の画像劣化が生じ得る１つの様式を示している。
【図４】３つの時点におけるメモリ４６とメモリ４６の１ラインを示す概略図であり、特定の種類の画像劣化が生じ得る他の様式を示している。
【図５】格納ユニットが圧縮された画像データを書き込むよりも速い速度で図２のフェッチングユニットが圧縮された画像データを読み出している状況において、本発明に基づいて画像劣化を防止するための第１の例を描いたものである。
【図６】フェッチングユニットが圧縮された画像データを読み出すよりも速い速度で図２の格納ユニットが圧縮された画像データを格納している状況において、本発明に基づいて画像劣化を防止するための第２の例を描いたものである。
【図７】フェッチングユニットが圧縮された画像データを読み出すよりも速い速度で図２の格納ユニットが複数ラインにわたって圧縮された画像データを格納している状況において、本発明に基づいて画像劣化を防止するための第３の例を描いたものである。
【図８】フェッチングユニットが圧縮された画像データを読み出すよりも速い速度で図２の格納ユニットが複数ラインにわたって圧縮された画像データを格納している状況において、本発明に基づいて画像劣化を防止するための第３の例を描いたものである。
【図９】本発明の原理を実現する方法の一例を説明するフローチャート。
【図１０】本発明の原理を実現する方法の変形例を説明するフローチャート。
【符号の説明】
【０１３７】
２０…表示システム、２６…表示装置、３０…バス、４６…メモリ、４８…バッファ、
５０…レジスタセット。
【図１】
0004609568.tif 000002
【図２】
0004609568.tif 000003
【図３】
0004609568.tif 000004
【図４】
0004609568.tif 000005
【図５】
0004609568.tif 000006
【図６】
0004609568.tif 000007
【図７】
0004609568.tif 000008
【図８】
0004609568.tif 000009
【図９】
0004609568.tif 000010
【図１０】
0004609568.tif 000011