(57)【特許請求の範囲】
【請求項１】
データストリーム方式でデータを入力し、ｎ×ｎのデータブロック方式でデータを出力するメモリのアクセス方法であって、
前記メモリのサイズは、ｎ行Ａ列（第0〜第n-1行第0〜第A-1列）であり、ここで、ｎは画像処理アルゴリズムが処理できるデータブロックの各行各列のデータの数であり、Ａは画像の水平解像度Ｂより大きい値であり、且つＡはn×nの整数倍であり、
前記メモリは、ｎ行×ｎセクションに分割され、各セクションには、Ａ/ｎ列が含まれ、
前記メモリのアクセス方法は、
行ごとに第0行〜第n-2行において全てのセクションにおける前のB/n列にデータを順次書き込むステップ１と、
第n-1行において全てのセクションにおける前のB/n列にデータを列ごとに書き込み、毎回行ごとにｎ列のデータを順次読み出す方式で、第０セクションの前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成するステップ２と、
セクションごとに第０セクション〜第n-2セクションにおける前のB/n列にデータを行ごとに順次書き込み、毎回行ごとにｎ列のデータを順次読み出す方式で、セクションごとに第１セクション〜第ｎ-1セクッションにおける前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成し、第ｋセクションにおいてデータを書き込み、第ｋ＋１セクッションにおいてデータを読み出し、ここで、k＝0〜n-2であるステップ３と、
第n-1セクションの前のB/n列にデータを行ごとに書き込み、毎回セクションごとにｎ列のデータを順次読み出す方式で、第0行の各セクションにおける前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成するステップ４と、
行ごとに第0行〜第n-2行において全てのセクションにおける前のB/n列にデータを順次書き込み、毎回セクションごとにｎ列のデータを順次読み出す方式で、行ごとに第1行〜第n-1行の各セクションにおける前のB/n列のデータを順次読み出してｎ×ｎのデータブロックを構成し、第k行においてデータを書き込み、第k+1行においてデータを読み出し、ここで、k=0〜n-2であり、それから、ステップ2へ戻るステップ５と、
を含む、ことを特徴とするメモリのアクセス方法。
【請求項２】
データストリーム方式でデータを入力し、ｎ×ｎのデータブロック方式でデータを出力するメモリのアクセス方法であって、
前記メモリのサイズは、ｎ行Ａ列（第0〜第n-1行第0〜第A-1列）であり、ここで、ｎは画像処理アルゴリズムが処理できるデータブロックの各行各列のデータの数であり、Ａは画像の水平解像度Ｂより大きい値であり、且つＡはn×nの整数倍であり、
前記メモリは、ｎ行×ｎセクションに分割され、各セクションには、Ａ/ｎ列が含まれ、
前記メモリのアクセス方法は、
セクションごとに第0セクッション〜第n-2セクションにおける前のB/n列にデータを行ごとに順次書き込むステップ1と、
第n-1セクションにおける前のB/n列にデータを行ごとに書き込み、毎回セクションごとにｎ列のデータを順次読み出す方式で、第0行の各セクションにおける前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成するステップ2と、
行ごとに第0行〜第n-2行において全てのセクションにおける前のB/n列にデータを順次書き込み、毎回セクションごとにｎ列のデータを順次読み出す方式で、行ごとに第1行〜第n-1行の各セクションにおける前のB/n列のデータを順次読み出してｎ×ｎのデータブロックを構成し、第k行においてデータを書き込み、第k+1行においてデータを読み出し、ここで、k=0〜n-2であるステップ３と、
第n-1行において全てのセクションにおける前のB/n列にデータを列ごとに順次書き込み、毎回行ごとにｎ列のデータを順次読み出す方式で、第0セクションの前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成するステップ4と、
セクションごとに第0セクション〜第n-2セクションにおける前のB/n列にデータを行ごとに順次書き込み、毎回行ごとにｎ列のデータを順次読み出す方式で、セクションごとに第1セクション〜第n-1セクションにおける前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成し、第kセクションにおいてデータを書き込み、第k+1セクションにおいてデータを読み出し、ここで、k=0〜n-2であり、それから、ステップ2へ戻るステップ5と、
を含む、ことを特徴とするメモリのアクセス方法。
【請求項３】
nは、８である、
ことを特徴とする請求項１又は２に記載のメモリのアクセス方法。
【請求項４】
前記データの入力には遅延が生じると、前記データの出力にも遅延が生じる、
ことを特徴とする請求項１又は２に記載のメモリのアクセス方法。
【請求項５】
前記ステップ2、3、4及び5におけるデータの読み出し動作は、それぞれ、各自のステップにおけるデータの書き込み動作と同期し、あるいは、各自のステップにおけるデータの書き込み動作よりも遅延する、
ことを特徴とする請求項１又は２に記載のメモリのアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリのアクセス方法に関し、特に、データストリーム方式でデータを入力し、データブロック方式でデータを出力するメモリのアクセス方法に関する。
【背景技術】
【０００２】
画像データが逐次スキャンにより生成されたデータストリームの形式で表されるが、多くの画像処理における標準アルゴリズム（例えば、JPEG、M-JPEG、DV、MPEG2、MPEG4、H.261又はH.263）はデータブロックを単位とする符号化技術を採用している。画像処理過程において、まず、データストリーム形式の画像データを保存し、それから、データブロックを単位として画像データを符号器に出力する必要があるので、まず、データストリーム方式でデータをメモリに入力し、それから、データブロック方式でメモリからデータを出力することが必要となる。
【０００３】
従来のアクセス方法では、一般的には、同じ容量の二つのキャッシュメモリを含むメモリを用い、この二つのキャッシュメモリを交替して、データの読み書きを行う。JPEGの標準フォーマットのデータを例にすると、JPEG規格により、符号化するときに、データに対して8×8のデータブロックを単位として順方向離散コサイン変換（Forward  Discrete  Cosine  Transform）を行う必要があるので、一般的には、各キャッシュメモリが8行を有する、計16行（第0行〜第15行）のメモリが必要となる。具体的なアクセス手順は下記の通りである。
【０００４】
ステップ1：逐次方式で第0行〜第7行にデータを順次に書き込む。
【０００５】
ステップ2：逐次方式で第8行〜第15行にデータを順次に書き込むと同時に、第0行〜第7行から8×8のデータブロックを単位としてデータを逐次方式で読み出し、即ち、第０行〜第７行第０列〜第７列からなるデータブロック、第０行〜第７行第８列〜第１５列からなるデータブロック、第０行〜第７行第１６列〜第２３列からなるデータブロック・・・の順で第０行〜第７行のデータを全て読み出す。なお、データの書き込みと読み出しの速度が同じであるため、第0行〜第7行のデータ読み出しが終了すると同時に、第8行〜第15行のデータ書き込みも終了する。
【０００６】
ステップ3：逐次方式で第0行〜第7行にデータを順次に書き込むと同時に、第8行〜第15行から8×8のデータブロックを単位としてデータを逐次方式で読み出し、即ち、第８行〜第１５行第０列〜第７列からなるデータブロック、第８行〜第１５行第８列〜第１５列からなるデータブロック、第８行〜第１５行第１６列〜第２３列からなるデータブロック・・・の順で第８行〜第１５行のデータを全て読み出す。それから、ステップ2へ戻る。
【０００７】
ここで、一つのピクセルのデータが2バイトで表される必要があるが、説明の便宜のため、メモリにおける行列の各セルのデータが1バイトのデータでなく、2バイトのデータであると定義する。
【０００８】
VGA画像を例にすると、解像度が640×480である場合、各行が640ピクセルを有する、１６行のメモリが必要となり、また、1ピクセルが2バイトを要するので、640×16×2=20480バイトが必要となる。
【０００９】
図１〜図６は、従来のアクセス方法の具体的なステップを示す図である。
【００１０】
説明の便宜のため、図１〜図６にある各セルは、2バイトのデータを表し、即ち、一つのピクセルのデータを表す。図１は、初期書き込み状態であり、第0行第0列から、第0行に沿ってデータを書き込むことを示す。図２は、第0行〜第7行のデータ書き込みが終わるところの状態である。図３は、第8行のデータ書き込みを始めると同時に、データの読み出しも始めることを示し、データの読み出しは、8×8ピクセルからなるデータブロックを単位として逐次方式で行われ、即ち、まず、第0行〜第7行第0列〜第7列からなるデータブロックからデータを読み出し、それから、第0行〜第7行第8列〜第15列からなるデータブロックからデータを読み出すことである。図４は、第8行〜第15行のデータ書き込みが終わるところの状態であり、このときは、第0行〜第7行のデータ読み出しも終わるところであり、即ち、最後の第0行〜第7行第632列〜第639列からなるデータブロックからデータを読み出しているところである。図５は、再度第0行第0列からデータを書き込み始めると同時に、第8行〜第15行から8×8のデータブロックを単位としてデータを逐次方式で読み出し、即ち、まず、第8行〜第15行第0列〜第7列からなるデータブロックからデータを読み出し、それから、第8行〜第15行第8列〜第15列からなるデータブロックからデータを読み出すことを示す。図６は、第0行〜第7行のデータ書き込みが終わるところの状態であり、このときは、第8行〜第15行のデータ読み出しも終わるところであり、即ち、最後の第8行〜第15行第632列〜第639列からなるデータブロックからデータを読み出しているところである。
【００１１】
上記のステップから分かるように、従来のアクセス方法では、二つのキャッシュメモリに対して、データの読み出しと書き込みを交替して行うので、画像の解像度の増大につれて、大容量キャッシュメモリが必要となる。画像技術の進展に伴い、画像の解像度が益々高くなっていて、必要なキャッシュメモリのバイト数も益々大きくなるので、メモリの容量が足りない場合は、画像データの読み書きができなくなる。また、高解像度の画像データの読み書きを実現するためには、ハードウェアのコストも高くなる。
【００１２】
表1は、従来の画像サイズと必要なメモリのバイト数を示す。
【表１】
0005359569.tif 000002
【００１３】
表１によれば、解像度が高い画像に対して、画像データの読み書きに必要なメモリのバイト数が大きくなることが分かる。従って、解像度が高い画像に対して、キャッシュメモリを有効に利用することができるメモリのアクセス方法が必要となる。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明の目的は、同じ解像度の画像に対して、必要なメモリのバイト数を半分まで減少させ、キャッシュメモリを有効に利用することができるメモリのアクセス方法を提供することにある。
【課題を解決するための手段】
【００１５】
上記の目的を達成するために、本発明は、データストリーム方式でデータを入力し、ｎ×ｎのデータブロック方式でデータを出力するメモリのアクセス方法を提供する。前記メモリのサイズは、ｎ行Ａ列（第0〜n-1行第0〜A-1列）であり、ここで、ｎは画像処理アルゴリズムが処理できるデータブロックの各行各列のデータの数であり、Ａは画像の水平解像度Ｂ以上の値であり、且つＡはn×nの整数倍であり、また、前記メモリは、ｎ行×ｎセクションに分割され、各セクションにはＡ/ｎ列が含まれる。前記アクセス方法は、次のステップを含む。
【００１６】
ステップ１：行ごとに第0行〜第n-2行において全てのセクションにおける前のB/n列にデータを順次書き込む。
【００１７】
ステップ２：第n-1行において全てのセクションにおける前のB/n列にデータを列ごとに書き込み、毎回行ごとにｎ列のデータを順次読み出す方式で、第０セクションの前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成する。
【００１８】
ステップ３：セクションごとに第０セクション〜第n-2セクションにおける前のB/n列にデータを行ごとに順次書き込み、毎回行ごとにｎ列のデータを順次読み出す方式で、セクションごとに第１セクション〜第ｎ-1セクションにおける前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成し、第ｋセクションにおいてデータを書き込み、第ｋ＋１セクションにおいてデータを読み出し、ここで、k＝0〜n-2である。
【００１９】
ステップ４：第n-1セクションの前のB/n列にデータを行ごとに書き込み、毎回セクションごとにｎ列のデータを順次読み出す方式で、第0行の各セクションにおける前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成する。
【００２０】
ステップ５：行ごとに第0行〜第n-2行において全てのセクションにおける前のB/n列にデータを順次書き込み、毎回セクションごとにｎ列のデータを順次読み出す方式で、行ごとに第1行〜第n-1行の各セクションにおける前のB/n列のデータを順次読み出してｎ×ｎのデータブロックを構成し、第k行においてデータを書き込み、第k+1行においてデータを読み出し、ここで、k=0〜n-2であり、それから、ステップ2へ戻る。
【００２１】
また、本発明は、データストリーム方式でデータを入力し、ｎ×ｎのデータブロック方式でデータを出力する他のメモリのアクセス方法を提供する。前記メモリのサイズは、ｎ行Ａ列（第0〜n-1行第0〜A-1列）であり、ここで、ｎは画像処理アルゴリズムが処理できるデータブロックの各行各列のデータの数であり、Ａは画像の水平解像度Ｂ以上の値であり、且つＡはn×nの整数倍であり、また、前記メモリは、ｎ行×ｎセクションに分割され、各セクションにはＡ/ｎ列が含まれる。前記アクセス方法は、次のステップを含む。
【００２２】
ステップ1：セクションごとに第0セクション〜第n-2セクションにおける前のB/n列にデータを行ごとに順次書き込む。
【００２３】
ステップ2：第n-1セクションにおける前のB/n列にデータを行ごとに書き込み、毎回セクションごとにｎ列のデータを順次読み出す方式で、第0行の各セクションにおける前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成する。
【００２４】
ステップ３：行ごとに第0行〜第n-2行において全てのセクションにおける前のB/n列にデータを順次書き込み、毎回セクションごとにｎ列のデータを順次読み出す方式で、行ごとに第1行〜第n-1行の各セクションにおける前のB/n列のデータを順次読み出してｎ×ｎのデータブロックを構成し、第k行においてデータを書き込み、第k+1行においてデータを読み出し、ここで、k=0〜n-2である。
【００２５】
ステップ4：第n-1行において列ごとに全てのセクションにおける前のB/n列にデータを順次書き込み、毎回行ごとにｎ列のデータを順次読み出す方式で、第0セクションの前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成する。
【００２６】
ステップ5：セクションごとに第0セクション〜第n-2セクションにおける前のB/n列にデータを行ごとに順次書き込み、毎回行ごとにｎ列のデータを順次読み出す方式で、セクションごとに第1セクション〜第n-1セクションにおける前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成し、第kセクションにおいてデータを書き込み、第k+1セクションにおいてデータを読み出し、ここで、k=0〜n-2であり、それから、ステップ2へ戻る。
【発明の効果】
【００２７】
本発明は、メモリの読み書き手順を合理的に設計することにより、同じ容量の二つのキャッシュメモリに対してデータの読み書きを交替に行う必要がなく、1つのキャッシュメモリのみに対してデータの読み書きを行うことができるので、キャッシュメモリを効率よく利用し、バイト数を節約することができる。
【図面の簡単な説明】
【００２８】
【図１】従来のアクセス方法のプロセスを示す図である。
【図２】従来のアクセス方法のプロセスを示す図である。
【図３】従来のアクセス方法のプロセスを示す図である。
【図４】従来のアクセス方法のプロセスを示す図である。
【図５】従来のアクセス方法のプロセスを示す図である。
【図６】従来のアクセス方法のプロセスを示す図である。
【図７】本発明に係る一実施例におけるアクセス方法のフローチャートである。
【図８】本発明のアクセス方法のプロセスを示す図である
【図９】本発明のアクセス方法のプロセスを示す図である。
【図１０】本発明のアクセス方法のプロセスを示す図である。
【図１１】本発明のアクセス方法のプロセスを示す図である。
【図１２】本発明のアクセス方法のプロセスを示す図である。
【図１３】本発明のアクセス方法のプロセスを示す図である。
【図１４】本発明のアクセス方法のプロセスを示す図である。
【図１５】本発明のアクセス方法のプロセスを示す図である。
【図１６】本発明のアクセス方法のプロセスを示す図である。
【図１７】本発明に係る他の実施例におけるアクセス方法のフローチャートである。
【発明を実施するための形態】
【００２９】
次に、添付した図面を参照しながら、本発明の好適な実施形態を詳細に説明する。
【００３０】
VGA画像データを入力し、JPEGアルゴリズムにより処理を行うためのデータを出力することを例とし、本発明のアクセス方法の具体的なプロセスを説明する。JPEGデータを符号化する際は、8×8のデータブロックを単位として順方向離散コサイン変換（Forward  Discrete  Cosine  Transform）を行う必要があるので、毎回、8×8のデータブロックを出力する必要がある。VGA画像（640×480）の場合は、従来のアクセス方法では、2つの8×640×2バイトのキャッシュメモリが必要となるのに対して、本発明のアクセス方法では、1つの8×640×2バイトのキャッシュのみ必要となる。
【００３１】
メモリのサイズはｎ行A列であり、ｎは画像処理アルゴリズムが処理できるデータブロックの各行各列のピクセル数である。ここで、JPEGアルゴリズムが処理できるのは、8×8のデータブロックであるので、ｎ＝8である。Aは画像の水平解像度B（水平ピクセル数）以上の値である。ここで、VGA画像データの場合は640×480であるので、B=640である。この実施例では、メモリのサイズが8行640列であるので、A=640である。また、1ピクセルが2バイトで表されなければならないが、説明の便宜のため、メモリの1セルが１バイトでなく、2バイトであるとする。
【００３２】
図７は、本発明の一実施例におけるアクセス方法のフローチャートである。
【００３３】
図８〜図１６は、本実施例におけるアクセス方法のプロセスを示す図である。
【００３４】
以下、図７と図８〜図１６を用いて、本発明の一実施例におけるアクセス方法を具体的に説明する。
【００３５】
本発明の一実施例のアクセス方法では、メモリがn行×nセクションに分割され、ここで、具体的には、8行×8セクションに分割され、各セクションは80列を含み、このアクセス方法は、次のステップを含む。
【００３６】
１）行ごとに第0行〜第n-2行において、全てのセクションにおける前のB/n列にデータを順次書き込む（ステップ201）。即ち、図８と図９に示すように、行ごとに第0行〜第6行において、第0セクション〜第7セクションにおける前の640/8=80列にデータを順次書き込む。A>Bの場合、即ちメモリの列数が640を超える場合、第0行〜第6行の各セクションにおける第79列以降のセルにデータを書き込まない。
【００３７】
2）第n-1行において全てのセクションにおける前のB/n列にデータを列ごとに順次書き込み、毎回行ごとにｎ列のデータを読み出す方式で、第0セクションにおける前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成する（ステップ202）。即ち図１０に示すように、第7行の全セクションにおける前の80列にデータを書き込む。なお、メモリの列数が640を超えると、第7行の各セクションにおける第７９列以降のセルにデータを書き込まない。かつ、第0セクションにおいてデータの読み出しが始まる。図１１から分かるように、第0セクションにおいてデータを読み出すとき、まず、行ごとに第0列〜第7列のデータを読み出して第0行〜第7行第0列〜第7列のデータブロックを構成し、それから、行ごとに第8列〜第15列のデータを読み出して第0行〜第７行第8列〜第15列のデータブロックを構成し、このようにして、第72列〜79列までデータを読み出して第0行〜第７行第72列〜第79列のデータブロックを構成する。なお、メモリの列数が640を超えると、第0セクションの各行における第79列以降のセルにはデータが書き込まれないため、読み出す際はこれらのセルからデータを読み出すこともない。
【００３８】
3）セクションごとに第0セクション〜第n-2セクションにおける前のB/n列にデータを行ごとに順次書き込み、毎回行ごとにｎ列のデータを順次読み出す方式で、セクションごとに第1クッション〜第n-1セクションにおける前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成し、第kセクションにおいてデータを書き込み、第k+1セクションにおいてデータを読み出し、ここで、k=0〜n-2である（ステップ203）。即ち図１２に示すように、第0セクションから、セクションごとに、第0セクション〜第6セクションにおける前の80列にデータを行ごとに書き込み、即ち、第0セクションの第0行、第0セクションの第1行、・・・、第0セクションの第７行、第１セクションの第0行、第１セクションの第１行、・・・、第１セクションの第７行、・・・、第６セクションの第０行、第６セクションの第１行、・・・、第6セクションの第7行の順に書き込む。メモリの列数が640を超えると、各セクションにおける各行の79列目以降のセルにデータを書き込まない。図１３に示すように、第0セクションにおいてデータを書き込み、第１セクションにおいて、毎回行ごとに８列のデータを順次読み出す方式で、第1セクション〜第7セクションにおける前の80列のデータを順次読み出して8×8のデータブロックを構成し、なお、データの読み出しプロセスはステップ2とほぼ同様である。第１セクションにおいてデータを書き込み、第2セクションにおいてデータを読み出し、・・・、第6セクションにおいてデータを書き込み、第7セクションにおいてデータを読み出す。メモリの列数が640を超えると、第1セクション〜第7セクションにける各行の第79列以降のセルにデータが書き込まれないため、読み出す際はこれらのセルからデータを読み出すこともない。
【００３９】
4）第n-1セクションにおける前のB/n列にデータを行ごとに書き込み、毎回セクションごとにｎ列のデータを順次読み出す方式で、第0行の各セクションにおける前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成する（ステップ204）。図１４に示すように、行ごとに第7セクションの前の80列にデータを順次書き込み、なお、データの書き込み方法がステップ3とほぼ同様である。メモリの列数が640を超えると、第7セクションにおける各行の第79列以降のセルにデータを書き込まない。かつ、第0行においてデータを読み出し、図１５に示すように、第0行のデータの読み出し方法は、毎回第0セクション〜第7セクションにおいて8列のデータを順次読み出して8×8のデータブロックを構成し、即ち、一回目は、第0セクション〜第7セクションにおいて第0列〜第7列のデータをそれぞれ読み出して8×8のデータブロックを構成し、二回目は、第0セクション〜第7セクションにおいて第8列〜第15列のデータを順次読み出して8×8のデータブロックを構成し、・・・、十回目は、第0セクション〜第7セクションにおいて第72列〜第79列のデータをそれぞれ読み出して8×8のデータブロックを構成することである。メモリの列数が640を超えると、第0行の各セクションにおける第79列以降のセルにデータが書き込まれないため、読み出す際はこれらのセルからデータを読み出すこともない。
【００４０】
5）行ごとに第0行〜第n-2行において、全てのセクションにおける前のB/n列にデータを順次書き込み、毎回セクションごとにｎ列のデータを順次読み出す方式で、第1行〜第n-1行の各セクションにおける前のB/n列のデータを順次読み出してｎ×ｎのデータブロックを構成し、第k行においてデータを書き込み、第k+1行においてデータを読み出し、ここで、k=0〜n-2であり、それから、ステップ2へ戻る（ステップ205）。図１６に示すように、第0行〜第6行において、第0セクション〜第7セクションの前のB/n列にデータを順次書き込む。メモリの列数が640を超えると、各行の各セクションにおける第79列以降のセルにデータを書き込まない。第1行〜第７行において、毎回セクションごとに８列のデータを順次読み出す方式で、行ごとに第1行〜第７行の各セクションにおける前の80列のデータを順次読み出して8×8のデータブロックを構成し、なお、各行のデータの読み出し方法は、ステップ4とほぼ同様である。メモリの列数が640を超えると、第1行〜第7行の各セクションにおける第79列以降のセルにはデータが書き込まれないため、読み出す際はこれらのセルからデータを読み出すこともない。第6行のデータの書き込みが終わると、図１０の状態へ戻り、繰り返し処理を行う。
【００４１】
データの書き込みと読み出しの速度が同じであるため、上記の各ステップにおけるデータの読み出しと書き込みが一般的に同時に完成する。データの書き込みに遅れが生じれば、データの読み出しもそれに応じて遅延する。なお、データが入力されるとき、行ごとに書き込みが終わると間隔が生じるため、データの出力に一定の遅延があっても、データの入力には影響を及ばない。即ち、ステップ2）、3）、4）、5）におけるデータの読み出し動作は、各自のステップにおけるデータの書き込み動作と同期してもよいし、遅延してもよい。つまり、同じセルに対してデータの書き込みと読み出しを同時に行わなければ良い。
【００４２】
上記の実施例から分かるように、メモリの読み書き手順を合理的に設計することにより、1枚の8×640×2バイトのキャッシュメモリを用いて、VGA画像データの読み書きを実現させることができるため、キャッシュメモリを有効に利用し、必要なバイト数を節約することができる。
【００４３】
そして、上記の説明から分かるように、本発明のアクセス方法は、水平解像度がｎ×ｎの整数倍の画像のみに適応できるが、水平解像度がｎ×ｎの整数倍でない画像に対しては、その解像度が一般的に比較的低いので、従来のアクセス方法を用いても、それほど多くのメモリバイト数を要しない。よって、解像度の高い画像に対しては、その解像度が一般的にはｎ×ｎの整数倍であるため、本発明のアクセス方法を使えば、必要なバイト数を半分まで減少させることができる。
【００４４】
上記の説明によれば、本発明の技術的要点は以下である。即ち、データの読み出しと書き込みにはそれぞれ2つの状態を有するため、この2つの読み書き状態を繰り返して利用することで、キャッシュメモリを有効に利用し、メモリのコストの削減を実現することができる。また、上記のステップから分かるように、上記のステップ2）と3）は一つの読み書き状態を表し、ステップ4）と5）はもう一つの読み書き状態を表し、ステップ2）、3）、4）、5）により一つのループが構成される。なお、上記の実施例では、行ごとにデータを書き込むことからループを始めるが、他の実施例では、セクションごとにデータを書き込むことからループを始めてもよい。
【００４５】
図１７は、本発明の他の実施例におけるアクセス方法のフローチャート図である。
【００４６】
以下、図１７に基づいて、本発明の他の実施例におけるアクセス方法のプロセスを説明する。
【００４７】
1）セクションごとに第0セクション〜第n-2セクションにおける前のB/n列にデータを順次書き込む（ステップ401）。図１２に示すように、第0セクションから、セクションごとに、第0セクション〜第6セクションの前の80列にデータを行ごとに書き込み、即ち、第0セクションの第0行、第0セクションの第1行、・・・、第0セクションの第７行、第１セクションの第0行、第１セクションの第１行、・・・、第１セクションの第７行、・・・、第6セクションの第０行、第６セクションの第一行、・・・、第６セクションの第7行の順にデータを書き込む。メモリの列数が640を超えると、各セクションの各行における第79列以降のセルにデータを書き込まない。
【００４８】
2）第n-1セクションの前のB/n列に行ごとにデータを書き込み、毎回セクションごとにｎ列のデータを順次読み出す方式で、第0行の各セクションにおける前のB/ｎ列のデータを読み出してｎ×ｎのデータブロックを構成する（ステップ402）。図１４に示すように、第7セクションの前の80列に行ごとにデータを書き込み、なお、データの書き込み方法はステップ1とほぼ同様である。第0行においてデータを読み出し、図１５に示すように、第0行におけるデータの読み出し方法は、毎回第0セクション〜第7セクションにおいて８列のデータを順次読み出して8×8のデータブロックを構成し、即ち、一回目は、第0セクション〜第7セクションおいて第0列〜第7列のデータをそれぞれ読み出して8×8のデータブロックを構成し、二回目は、第0セクション〜第7セクションにおいて第8列〜第15列のデータをそれぞれ読み出して8×8のデータブロックを構成し、・・・、十回目は第0セクション〜第7セクションにおいて第72列〜第79列のデータをそれぞれ読み出して8×8のデータブロックを構成することである。なお、メモリの列数が640を超えると、第0行の各セクションにおける第79列以降のセルにデータが書き込まれないため、読み出す際はこれらのセルからデータを読み出すこともない。
【００４９】
3）行ごとに第0行〜第n-2行において、全てのセクションの前のB/n列にデータを順次書き込み、毎回セクションごとにｎ列のデータを読み出す方式で、第1行〜第n-1行の各セクションにおける前のB/n列のデータを行ごとに順次読み出してｎ×ｎデータブロックを構成し、第k行においてデータを書き込み、第k+1行においてデータを読み出し、ここで、k=0〜n-2である（ステップ403）。図１６に示すように、第0行〜第6行において、第0セクション〜第7セクションの前の80列にデータを順次書き込む。メモリの列数が640を超えると、各行の各セクションにおける第79列以降のセルにデータを書き込まない。第1行〜第７行において、毎回セクションごとに8列のデータを順次読み出す方式で、第1行〜第７行の各セクションにおける前の80列のデータを行ごとに読み出して8×8のデータブロックを構成し、なお、各行におけるデータの読み出し方法はステップ2とほぼ同様である。メモリの列数が640を超えると、第1行〜第7行の各セクションにおける第79列以降のセルにデータが書き込まれないため、読み出す際はこれらのセルからデータを読み出すこともない。
【００５０】
4）第n-1行において、全てのセクションの前のB/n列にデータを列ごとに書き込み、毎回行ごとにｎ列のデータを順次読み出す方式で、第0セクションの前のB/n列のデータを読み出してｎ×ｎのデータブロックを構成する（ステップ404）。即ち図１０に示すように、第7行の全セクションにおける前の80列にデータを書き込む。なお、メモリの列が640を超えると、第7行の各セクションにおける第79列以降のセルにデータを書き込まない。かつ、第0セクションにおいてデータの読み出しが始まる。図１１から分かるように、第0セクションにおいてデータを読み出すとき、まず、行ごとに第0列〜第7列のデータを読み出して第0行〜第7行第0列〜第7列のデータブロックを構成し、それから、行ごとに第8列〜第15列のデータを読み出して第0行〜第7行第8列〜第15列のデータブロックを構成し、・・・、最後に、第０行〜第７行第72列〜第79列のデータブロックを構成する。なお、メモリの列数が640を超えると、第0セクションの各行における第79列以降のセルにデータが書き込まれないため、読み出す際はこれらのセルからデータを読み出すことがない。
【００５１】
5）セクションごとに第0セクション〜第n-2セクションの前のB/n列にデータを行ごとに順次書き込み、毎回行ごとにｎ列のデータを読み出す方式で、第1セクション〜第n-1セクションの前のB/n列のデータをセクションごとに読み出してｎ×ｎのデータブロックを構成し、第kセクションにおいてデータを書き込み、第k+1セクションにおいてデータを読み出し、ここで、k=0〜n-2であり、それから、ステップ2へ戻る（ステップ405）。図１２に示すように、第0セクションから、セクションごとに、第0セクション〜第6セクションの前の80列にデータを行ごとに書き込み、即ち、第0セクションの第0行、第0セクションの第1行、・・・、第0セクションの第７行、そして、第１セクションの第0行、第１セクションの第１行・・・のように順次書き込んで、第6セクションの第7行までとする。メモリの列数が640を超えると、第0セクション〜第6セクションの各行における第79列以降のセルにデータを書き込まない。図１３に示すように、第0セクションにいてデータを書き込み、第１セクションにおいて、毎回行ごとに8列のデータを読み出す方式で、第1セクション〜第7セクションの前の80列のデータをセクションごとに読み出して8×8データブロックを構成し、なお、データの読み出し方法はステップ4とほぼ同様である。第１セクションにおいてデータを書き込み、第2セクションにおいてデータを読み出し、・・・、第6セクションにおいてデータを書き込み、第7セクションにおいてデータ読み出す。メモリの列数が640を超えると、第1セクション〜第7セクションの各行における第79列以降のセルにデータが書き込まれないため、読み出す際はこれらのセルからデータを読み出すこともない。第6セクションのデータの書き込みが終わると、図１４の状態へ戻り、繰り返し処理を行う。
【００５２】
データの書き込みと読み出しの速度が同じであるため、上記の各ステップにおけるデータの読み出しと書き込みは一般的に同時に完成する。データの書き込みに遅れが生じれば、データの読み出しもそれに応じて遅延する。なお、データが入力されるとき、行ごとに書き込みが終わると間隔が生じるため、データの出力に一定の遅延があっても、データの入力には影響を及ばない。即ち、ステップ2）、3）、4）、5）におけるデータの読み出し動作は、各自のステップにおけるデータの書き込み動作と同期してもよいし、遅延してもよい。つまり、同じセルに対してデータの書き込みと読み出しを同時に同時に行わなければ良い。
【００５３】
以上、本発明の好ましい実施形態を説明したが、本発明はこの実施形態に限定されず、本発明の趣旨を離脱しない限り、本発明に対するあらゆる変更は本発明の範囲に属する。
【図１】
0005359569.tif 000003
【図２】
0005359569.tif 000004
【図３】
0005359569.tif 000005
【図４】
0005359569.tif 000006
【図５】
0005359569.tif 000007
【図６】
0005359569.tif 000008
【図７】
0005359569.tif 000009
【図８】
0005359569.tif 000010
【図９】
0005359569.tif 000011
【図１０】
0005359569.tif 000012
【図１１】
0005359569.tif 000013
【図１２】
0005359569.tif 000014
【図１３】
0005359569.tif 000015
【図１４】
0005359569.tif 000016
【図１５】
0005359569.tif 000017
【図１６】
0005359569.tif 000018
【図１７】
0005359569.tif 000019