(57)【要約】【課題】  比較的小容量のメモリにより、データの正確な記憶及び検索を性能良く達成する。【解決手段】  データストリーム変換のための方法及びバッファ装置１００において、バッファメモリ１には入力データストリームを書き込むためのアドレス指定可能位置が構成され、ラベルメモリ２は書き込みラベル位置及び読み取りラベル位置を記憶するために使用され、バッファコントローラ３はバッファメモリ１とラベルメモリ２とに接続される。バッファコントローラ３が、書き込みラベル位置及び書き込みデータシーケンスに応じて、バッファメモリ１のアドレス指定可能位置への入力データストリームの書き込みを制御し、書き込みデータシーケンス及び読み取りデータシーケンスに従って、書き込みラベル位置に対応する読み取りラベル位置を算出し、ラベルメモリ２に記憶されている読み取りラベル位置を更新し、ラベルメモリ２に記憶された読み取りラベル位置を参照して、バッファメモリ１のアドレス指定可能位置からデータを読み取ることで、出力データストリームを作成する。【選択図】    図４
2005303338.tif 000002
【特許請求の範囲】
【請求項１】
入力データストリームを出力データストリームへ変換するための方法であって、前記入力データストリーム及び前記出力データストリームのうち一方はライン単位データストリームであり、前記入力データストリーム及び前記出力データストリームのうち他方はブロック単位データストリームであり、該方法は、
ａ）書き込みデータシーケンスに従って、バッファメモリ（１）のアドレス指定可能位置に、書き込みラベル位置を割り当てる工程と；
ｂ）前記書き込みラベル位置及び前記書き込みデータシーケンスに従って、前記入力データストリームを前記バッファメモリ（１）のアドレス指定可能位置に書き込む工程と；
ｃ）前記書き込みデータシーケンス及び読み取りデータシーケンスに従って、前記書き込みラベル位置に対応する読み取りラベル位置を算出する工程と；
ｄ）前記読み取りデータシーケンスに従って、前記読み取りラベル位置を参照して、前記バッファメモリ（１）のアドレス指定可能位置からデータを読み取り、前記出力データストリームを作成する工程とからなることを特徴とするデータストリーム変換のための方法。
【請求項２】
前記入力データストリームはライン単位データストリームであり、前記出力データストリームはブロック単位データストリームであり、工程ｃ）において、Ｏn（ｔ）をｎ番目の読み取り操作の読み取りデータシーケンス（ｔ）用の読み取りラベル位置とし、Ｉn（ｔ）をｎ番目の書き込み操作の書き込みデータシーケンス（ｔ）用の書き込みラベル位置とし、（ｈ）をデータブロックの高さとし、（ｗ）をバッファメモリ（１）のデータブロック行の一行に収容できるデータブロックの総数とし、（ｔ％ｈ）を（ｔ）を（ｈ）で割った商の余りとし、（ｔ／ｈ）を（ｔ）を（ｈ）で割った商の整数部分とする以下の式：
Ｏn（ｔ）＝Ｉn（（ｔ％ｈ）×ｗ＋（ｔ／ｈ））
により、読み取りラベル位置を算出することを特徴とする、請求項１に記載の方法。
【請求項３】
工程ｂ）から工程ｄ）を繰り返す工程を更に含み、工程ｄ）に続く工程ｂ）において、（ｎ＋ｌ）番目の書き込み操作の書き込みデータシーケンス（ｔ）用の書き込みラベル位置Ｉn+1（ｔ）はＯｎ（ｔ）に等しくなることを特徴とする、請求項２に記載の方法。
【請求項４】
前記入力データストリームはブロック単位データストリームであり、前記出力データストリームはライン単位データストリームであり、工程ｃ）において、Ｏｎ（ｔ）をｎ番目の読み取り操作の読み取りデータシーケンス（ｔ）用の読み取りラベル位置とし、Ｉn（ｔ）をｎ番目の書き込み操作の書き込みデータシーケンス（ｔ）用の書き込みラベル位置とし、（ｈ）をデータブロックの高さとし、（ｗ）をバッファメモリ（１）のデータブロック行の一行に収容できるデータブロックの総数とし、（ｔ％ｗ）を（ｔ）を（ｗ）で割った商の余りとし、（ｔ／ｗ）を（ｔ）を（ｗ）で割った商の整数部分とする以下の式：
Ｏn（ｔ）＝Ｉn（（ｔ％ｗ）×ｈ＋（ｔ／ｗ））
により、読み取りラベル位置を算出することを特徴とする、請求項１に記載の方法。
【請求項５】
工程ｂ）から工程ｄ）を繰り返す工程を更に含み、工程ｄ）に続く工程ｂ）において、（ｎ＋ｌ）番目の書き込み操作の書き込みデータシーケンス（ｔ）用の書き込みラベル位置Ｉn+1（ｔ）はＯn（ｔ）に等しくなることを特徴とする、請求項４に記載の方法。
【請求項６】
前記書き込みラベル位置及び読み取りラベル位置はラベルメモリ（２）に記憶されることを特徴とする、請求項１に記載の方法。
【請求項７】
入力データストリームを出力データストリームへ変換するためのバッファ装置であって、前記入力データストリーム及び前記出力データストリームのうち一方はライン単位データストリームであり、前記入力データストリーム及び前記出力データストリームのうち他方はブロック単位データストリームであり、該バッファ装置（１００）は：
前記入力データストリームを書き込むためのアドレス指定可能位置が構成されるようになっているバッファメモリ（１）と；
書き込みラベル位置及び読み取りラベル位置を記憶するためのラベルメモリ（２）と；
該バッファメモリ（１）と該ラベルメモリ（２）とに接続されたバッファコントローラ（３）とを備え、
該バッファコントローラ（３）は、前記書き込みラベル位置及び書き込みデータシーケンスに応じて、前記バッファメモリ（１）のアドレス指定可能位置への前記入力データストリームの書き込みを制御し、
前記書き込みデータシーケンス及び読み取りデータシーケンスに従って、前記書き込みラベル位置に対応する読み取りラベル位置を算出し、前記ラベルメモリ（２）に記憶されている読み取りラベル位置を更新し、
前記読み取りデータシーケンスに従って、前記ラベルメモリ（２）に記憶された前記読み取りラベル位置を参照して、前記バッファメモリ（１）のアドレス指定可能位置からデータを読み取り、前記出力データストリームを作成することを特徴とする、バッファ装置。
【請求項８】
前記入力データストリームはライン単位データストリームであり、前記出力データストリームはブロック単位データストリームであり、前記バッファコントローラ（３）は、Ｏn（ｔ）をn番目の読み取り操作の読み取りデータシーケンス（ｔ）用の読み取りラベル位置とし、Ｉn（ｔ）をｎ番目の書き込み操作の書き込みデータシーケンス（ｔ）用の書き込みラベル位置とし、（ｈ）をデータブロックの高さとし、（ｗ）をバッファメモリ（１）のデータブロック行の一行に収容できるデータブロックの総数とし、（ｔ％ｈ）を（ｔ）を（ｈ）で割った商の余りとし、（ｔ／ｈ）を（ｔ）を（ｈ）で割った商の整数部分とする以下の式：
Ｏn（ｔ）＝Ｉn（（ｔ％ｈ）×ｗ＋（ｔ／ｈ））
により、読み取りラベル位置を算出することを特徴とする、請求項７に記載のバッファ装置。
【請求項９】
前記バッファコントローラ（３）は、（ｎ＋１）番目の書き込み操作の書き込みデータシーケンス（ｔ）用の書き込みラベル位置Ｉn+1（ｔ）を、ｎ番目の読み取り操作の読み取りデータシーケンス（ｔ）用の読み取りラベル位置Ｏn（ｔ）と等しくなるように割り当てることを特徴とする、請求項８に記載のバッファ装置。
【請求項１０】
前記入力データストリームはブロック単位データストリームであり、前記出力データストリームはライン単位データストリームであり、前記バッファコントローラ（３）は、Ｏｎ（ｔ）をｎ番目の読み取り操作の読み取りデータシーケンス（ｔ）用の読み取りラベル位置とし、Ｉn（ｔ）をｎ番目の書き込み操作の書き込みデータシーケンス（ｔ）用の書き込みラベル位置とし、（ｈ）をデータブロックの高さとし、（ｗ）をバッファメモリ（１）のデータブロック行の一行に収容できるデータブロックの総数とし、（ｔ％ｗ）を（ｔ）を（ｗ）で割った商の余りとし、（ｔ／ｗ）を（ｔ）を（ｗ）で割った商の整数部分とする以下の式：
Ｏｎ（ｔ）＝Ｉｎ（（ｔ％ｗ）×ｈ＋（ｔ／ｗ））
により、前記読み取りラベル位置を算出することを特徴とする、請求項７に記載のバッファ装置。
【請求項１１】
前記バッファコントローラ（３）は、（ｎ＋１）番目の書き込み操作の書き込みデータシーケンス（ｔ）用の書き込みラベル位置Ｉn+1（ｔ）を、ｎ番目の読み取り操作の読み取りデータシーケンス（ｔ）用の読み取りラベル位置Ｏn（ｔ）と等しくなるように割り当てることを特徴とする、請求項１０に記載のバッファ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータストリーム変換のための方法及びバッファ装置に関し、特にライン単位データストリームとブロック単位データストリームとの間でデータストリームを変換するための方法及びバッファ装置に関する。
【背景技術】
【０００２】
ＪＰＥＧ及びＭＰＥＧはそれぞれ静止画像圧縮及び動画像圧縮の分野における国際標準である。ＭＰＥＧでは、図１に示すように、そのデータ構造は、複数のピクチャー群（以下、ＧＯＰと略す）を含むシーケンスを少なくとも一つ有する。各ピクチャーは更に複数のスライスに分割される。各スライスは更に複数のマクロブロック（以下、ＭＢと略す）に分割される。各マクロブロックは、４つの輝度ブロックと複数の色差ブロックとから構成される。そして、各ブロックは、ＭＰＥＧのデータ構造の最小符号化単位として定義される８×８バイトを含む。
【０００３】
図２に示すように、原画像データをＭＰＥＧ−１又はＭＰＥＧ−２フォーマットで圧縮するためには、工程２０１で示されるように、まずデータストリーム変換を行って入力データストリームをブロック単位の出力データストリームに変換する。次に、工程２０２で各ブロックの画素データに離散的コサイン変換（ＤＣＴ）を施して、時間領域から周波数領域へ変換し、人間の目には感応しない高周波数成分を除去する。次に、工程２０３で定量化を行って多数のＤＣＴ変換係数をゼロにする。次に、工程２０４で定量化されたＤＣＴ係数にジグザグスキャンを施して周波数の小さい順に並べ替える。その後、工程２０５でＤＣ係数に微分パルス符号変調（ＤＰＣＭ）を施し、ＡＣ係数にランレングス符号化（ＲＬＥ）を施し、最後に両係数に可変長符号化（ＶＬＣ）を施して、ＭＰＥＧ−ｌ／ＭＰＥＧ−２フォーマットでの圧縮を完了する。ＪＰＥＧ圧縮操作も前記プロセスフローと同様に行われる。又、前記プロセスフローの手順を逆に行うことにより、データの復元を行う。
【０００４】
図３に示すように、ＪＰＥＧ及びＭＰＥＧではともに基本処理単位としてブロックを用いるので、図２の工程２０１で要する、ライン単位入力データストリームからブロック単位出力データストリームへの変換には、通常、バッファメモリ７とバッファコントローラ８とを使用する。
【０００５】
バッファコントローラ８の制御下でデータストリームをバッファメモリ７に書き込む際は、データストリームは、左から右、上から下の順番で書き込まれる。しかし、データは基本ブロック単位で読み取られるので、バッファコントローラ８はデータを垂直方向に読み取る（例えば、出力データストリームの内容が最初のブロックを保持するように、左最上の隅から上下方向に出力用８×８バイトを読み取る）。この特徴のために、データは、バッファメモリ７がいっぱいになるまで読み取りに使用できず、又、データを読み取った後で初めてバッファメモリ７への書き込みが可能となる。
【０００６】
従って、バッファメモリ７は、一般にデータ入力に使用される部分とデータ出力に使用される部分の２つの部分に別けられることになる。図３に示すように、上部７１がデータでいっぱいになってデータをブロック単位で出力できるようになると、下部７２がデータ書き込み操作に使用可能となる。上部７１からデータが出力された後に、後者は次のデータ書き込み操作に使用できるようになる。同様に、下部７２がデータでいっぱいになると、そのデータはそこから出力できるようになる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、図３に示す構成によればデータ入出力速度は増加するが、最適な性能を確保するには大容量バッファメモリ７が必要となる。
【０００８】
従って、本発明の目的は比較的小容量のメモリを用いたデータストリーム変換のための方法及びバッファ装置を提供して、上記従来技術の欠点を解決することにある。
【課題を解決するための手段】
【０００９】
本発明の一つの側面によれば、入力データストリームを出力データストリームへ変換するための方法であって、入力データストリーム及び出力データストリームのうち一方がライン単位データストリームであり、入力データストリーム及び出力データストリームのうち他方がブロック単位データストリームである方法が提供される。この方法は、ａ）書き込みデータシーケンスに従って、バッファメモリのアドレス指定可能位置に、書き込みラベル位置を割り当てる工程；ｂ）書き込みラベル位置及び書き込みデータシーケンスに従って、入力データストリームをバッファメモリのアドレス指定可能位置に書き込む工程；ｃ）書き込みデータシーケンス及び読み取りデータシーケンスに従って、書き込みラベル位置に対応する読み取りラベル位置を算出する工程；及びｄ）読み取りデータシーケンスに従って、読み取りラベル位置を参照して、バッファメモリのアドレス指定可能位置からデータを読み取り、出力データストリームを作成する工程とからなる。
【００１０】
本発明の他の側面によれば、入力データストリームを出力データストリームへ変換するためのバッファ装置であって、入力データストリーム及び出力データストリームのうち一方がライン単位データストリームであり、入力データストリーム及び出力データストリームのうち他方がブロック単位データストリームであるバッファ装置が提供される。このバッファ装置は、バッファメモリと、ラベルメモリと、バッファコントローラとを備える。バッファメモリは、入力データストリームを書き込むためのアドレス指定可能位置が構成されるようになっている。ラベルメモリは書き込みラベル位置及び読み取りラベル位置を記憶するために使用される。バッファコントローラは、バッファメモリとラベルメモリとに接続され、書き込みラベル位置及び書き込みデータシーケンスに応じて、バッファメモリのアドレス指定可能位置への入力データストリームの書き込みを制御し、書き込みデータシーケンス及び読み取りデータシーケンスに従って書き込みラベル位置に対応する読み取りラベル位置を算出し、ラベルメモリに記憶された読み取りラベル位置を更新し、読み取りデータシーケンスに従って、ラベルメモリに記憶された読み取りラベル位置を参照して、バッファメモリのアドレス指定可能位置からデータを読み取り、出力データストリームを作成する。
【００１１】
本発明の他の特徴及び利点は、添付図面を参照して以下に示す好ましい実施例の詳細な説明から明らかとなろう。
【発明の効果】
【００１２】
本発明による入力データストリーム変換のための方法及びバッファ装置によれば、比較的小容量のメモリにより、データの記憶及び検索を正確かつ高性能に行うことが可能となる。
【発明を実施するための最良の形態】
【００１３】
図４は、本発明に係るデータストリーム変換のためのバッファ装置１００の第１の好ましい実施例を示す。この実施例のバッファ装置１００はライン単位入力データストリームをブロック単位出力データストリームに変換するために使用され、バッファメモリ１と、ラベルメモリ２と、バッファコントローラ３とを備える。
【００１４】
バッファメモリ１には、バッファコントローラ３の制御により、入力データストリームが書き込まれるようになっている。本実施例では、バッファメモリ１は６４０×８バイトのメモリを含む。すなわち、バッファメモリ１は６４０×８画素サイズの画像を記憶することが可能である。実際には、バッファメモリ１のサイズは、上記に限定されるものではなく、実際の要望に応じて変更可能である。図５に示すように、バッファメモリ１は、入力データストリームを書き込むためのサイズの等しいアドレス指定可能位置により構成される。本実施例では、各アドレス指定可能位置のサイズは８×１バイトである。従って、本実施例のバッファメモリ１におけるアドレス指定可能位置の総数は６４０である。
【００１５】
アドレス指定可能位置の最初のアドレスは、その後の読み取り操作及び書き込み操作のためにラベル付けされている。各アドレス指定可能位置は物理的なラベル位置のみを含むが、下記の説明では便宜上、各アドレス指定可能位置のラベル位置は、書き込み操作用の書き込みラベル位置Ｉ（ｔ）と読み取り操作用の読み取りラベル位置Ｏ（ｔ）により表され、ここで（ｔ）は書き込みシーケンス又は読み取りシーケンスを意味し、０から６３９の値をとる。
【００１６】
本実施例で処理されるブロックサイズは、ＭＰＥＧ又はＪＰＥＧ標準に適合する最小処理単位の８×８バイトである。従って、本実施例では、一つのデータブロックは８列のアドレス指定可能位置からなる。又、バッファメモリ１の各データブロック行は８０のデータブロックからなる。
【００１７】
ライン単位データストリームからブロック単位データストリームへデータ変換するために、読み取りラベル位置は下記の式により算出される：
Ｏn（ｔ）＝Ｉn（（ｔ％ｈ）×ｗ＋（ｔ／ｈ））    （１）
式中、Ｏn（ｔ）はｎ番目の読み取り操作の読み取りデータシーケンス（ｔ）用の読み取りラベル位置であり、Ｉn（ｔ）はｎ番目の書き込み操作の書き込みデータシーケンス（ｔ）用の書き込みラベル位置であり、（ｈ）はデータブロックの高さであり、（ｗ）はバッファメモリ１のデータブロック行の一行に収容できるデータブロックの総数であり、（ｔ％ｈ）は（ｔ）を（ｈ）で割った商の余りであり、（ｔ／ｈ）は（ｔ）を（ｈ）で割った商の整数部分である。
【００１８】
本実施例では、ｈ＝８及びｗ＝８０であるので、従って、式（１）は下記のように簡略化できる：
Ｏn（ｔ）＝Ｉn（（ｔ％８）×８０＋（ｔ％８））    （２）
すなわち、第１読み取りラベル位置Ｏ（０）＝第１書き込みラベル位置Ｉ（０）；第２読み取りラベル位置Ｏ（１）＝Ｉ（（１％８）×８０＋（１／８））＝Ｉ（８０）；第３書き込みラベル位置Ｏ（２）＝Ｉ（（２％８）×８０＋（２／８））＝Ｉ（１６０）；等となる。従って、式（２）に基づいて、Ｏ（３）＝Ｉ（２４０）、Ｏ（４）＝Ｉ（３２０）、Ｏ（５）＝Ｉ（４００）、Ｏ（６）＝Ｉ（４８０）、Ｏ（７）＝Ｉ（５６０）となる。ここで、Ｏ（０）、Ｏ（１）、Ｏ（２）、Ｏ（３）、Ｏ（４）、Ｏ（５）、Ｏ（６）、Ｏ（７）は、バッファメモリ１から順番に読み取られ、それぞれＩ（０）、Ｉ（８０）、Ｉ（１６０）、Ｉ（２４０）、Ｉ（３２０）、Ｉ（４００）、Ｉ（４８０）、Ｉ（５６０）に対応するので、出力データストリームは最初のデータブロックを保持することが可能である。その後、他のデータブロックを出力するために、Ｏ（８）、Ｏ（９）等が読み取られる。
【００１９】
ラベルメモリ２は書き込みラベル位置及び読み取りラベル位置の記憶のために使用される。本発明では、読み取り操作及び書き込み操作を重複して行うことが可能であるので、ラベルメモリ２には書き込みラベル位置Ｉ（０）〜Ｉ（６３９）と読み取りラベル位置Ｏ（０）〜Ｏ（６３９）とを記憶する必要がある。従って、本実施例のラベルメモリ２では、第１メモリ領域及び第２メモリ領域を提供するに十分な２×２10バイトのメモリ容量を要する。第１メモリ領域は、１番目の書き込み操作及び読み取り操作中にバッファコントローラ３がバッファメモリ１のアドレス指定可能位置にアクセスする際に、バッファコントローラ３により参照される。第２メモリ領域は、バッファコントローラ３が第１メモリ領域のラベル位置から算出した最新ラベル位置を記憶するために使用され、２番目の書き込み操作及び読み取り操作中にバッファコントローラ３がバッファメモリ１のアドレス指定可能位置にアクセスする際に、バッファコントローラ３により参照される。バッファコントローラ３が２番目の書き込み操作及び読み取り操作を行う際、第１メモリ領域のラベル位置は、３番目の書き込み操作及び読み取り操作中にバッファコントローラ３により参照されるべき値に更新される。従って、バッファコントローラ３は、現行の書き込み操作及び読み取り操作のためにラベルメモリ２に記憶されたラベル位置を参照する一方で、次の書き込み操作及び読み取り操作のためにラベルメモリ２に記憶されたラベル位置を更新することが可能である。
【００２０】
下記の説明では便宜上、ラベル位置はバッファメモリ１上に直接ラベルされているが、実際には、ラベル位置はラベルメモリ２に記憶されており、バッファコントローラ３によりアクセスされることに注意されたい。
【００２１】
バッファコントローラ３は、バッファメモリ１とラベルメモリ２とに接続され、書き込みラベル位置及び書き込みデータシーケンスＩ（０）、Ｉ（１）、・・・、Ｉ（６３９）に応じてバッファメモリ１のアドレス指定可能位置への入力データストリームの書き込みを制御し、前記式（２）に基づき書き込みデータシーケンス及び読み取りデータシーケンスに従って書き込みラベル位置に対応する読み取りラベル位置を算出し、ラベルメモリ２に記憶されている読み取りラベル位置を更新し、読み取りデータシーケンスに従って、ラベルメモリ２に記憶されている読み取りラベル位置を参照して、バッファメモリ１のアドレス指定可能位置からデータを読み取り、出力データストリームを作成する。
【００２２】
次に、第１の好ましい実施例に係るバッファ装置１００の作動を、図５〜図１０を参照して詳細に説明する。
【００２３】
１）１番目の書き込み操作：
図５に示すように、バッファコントローラ３は、ラベルメモリ２上の書き込みラベル位置を参照して、シーケンスＩ1（０）、Ｉ1（１）、Ｉ1（２）・・・に従って、入力データストリームをバッファメモリ１に書き込む。
【００２４】
２）１番目の読み取り操作：
図６に示すように、本発明では、現行の書き込み操作が完了する前に、読み取り操作を開始してもよい。例えば、本実施例では、書き込みラベル位置Ｉ1（５６０）〜Ｉ1（６３９）に対応するアドレス指定可能位置の最終行がデータでいっぱいになる前に、バッファメモリ１からデータを読み取り始めることが可能である。すなわち、入力データストリームの書き込み操作が完了する前でも、出力データストリームを作成するための読み取り操作を開始することができる。
【００２５】
上述のように、バッファコントローラ３は、前記式（２）に従って、読み取りラベル位置Ｏ1（０）、Ｏ1（１）、Ｏ1（２）・・・を算出する。そして、バッファコントローラ３は、シーケンスＯ1（０）、Ｏ1（１）、Ｏ1（２）・・・（書き込みラベル位置Ｉ1（０）、Ｉ1（８０）、Ｉ1（１６０）・・・を有するアドレス指定可能位置に対応する）に従ってバッファメモリ１のアドレス指定可能位置からデータを読み取る際に、ラベルメモリ２の読み取りラベル位置を参照する。
【００２６】
更に、Ｏ1（０）〜Ｏ1（７）に対応するアドレス指定可能位置の読み取りに影響を及ぼすことなく、読み取り操作中に、書き込みラベル位置Ｉ1（５６０）〜Ｉ1（６３９）に対応するアドレス指定可能位置への書き込みを同時に実行することができる。
【００２７】
３）２番目の書き込み操作：
図７に示すように、１番目の書き込み操作が終わったとき、すなわち、Ｉ1（６３９）に対応するアドレス指定可能位置への書き込みが完了したときには、バッファメモリ１のアドレス指定可能位置の一部のデータの読み取りも完了している。よって、２番目の書き込み操作を直ちに行うことが可能である。以下の式（３）：
Ｉn+1（ｔ）＝Ｏn（ｔ）    （３）
に基づき（ｎ＋１）番目の書き込み操作の書き込みデータシーケンス（ｔ）用の書き込みラベル位置Ｉn+1（ｔ）はＯn（ｔ）と等しくなる。すなわち、１番目の読み取り操作時のＯ1（０）に対応するアドレス指定可能位置は、２番目の書き込み操作時のＩ2（０）に対応することになる。従って、２番目の書き込み操作時の入力データストリームの書き込みは、図８に示すように、シーケンスＩ2（０）、Ｉ2（１）と進行し、これはシーケンスＯ1（０）、Ｏ1（１）・・・にも対応する。
【００２８】
４）２番目の読み取り操作：
図９に示すように、１番目の読み取り操作が終わったとき、すなわち、Ｏ1（６３９）に対応するアドレス指定可能位置の読み取りが完了したときには、バッファメモリ１のアドレス指定可能位置の一部へのデータの書き込みも完了している。よって、２番目の読み取り操作を直ちに行うことが可能である。図１０に示すように、２番目の読み取り操作用の読み取りラベル位置Ｏ2（０）、Ｏ2（１）・・・は、前記式（２）に従ってバッファコントローラ３により算出され、書き込みラベル位置Ｉ2（０）、Ｉ2（８０）・・・に対応している。すなわち、２番目の書き込み操作は上から下、左から右の順番で行われるが、バッファコントローラ３は今まで通り書き込みラベル位置Ｉ2（０）、Ｉ2（８０）・・・に対応する所望の読み取りラベル位置Ｏ2（０）、Ｏ2（１）・・・を算出することができる。このように、出力データストリームは２番目の読み取り操作時にも依然としてブロック単位でデータを保持する。
【００２９】
従って、前記書き込み操作及び読み取り操作を繰り返す間も、本実施例の出力データストリームは常にブロック単位でデータを保持する。書き込み操作及び読み取り操作の回数が増加するにつれて、アドレス指定可能位置の読み取り及び書き込みの順番が複雑化する。しかしながら、バッファメモリ１が、初期位置でラベル付けされた、サイズの等しいアドレス指定可能位置に分割されている限り、たとえ入力データストリームのデータが隣接しないアドレス指定可能位置に記憶されていても、バッファコントローラ３は式（２）と式（３）とを用いて常に所望の読み取り及び書き込みラベル位置を作成し、データの正確な記憶及び検索を達成できる。
【００３０】
更に、ＪＰＥＧフォーマットを使用した静止画像の圧縮には、通常、三原色、すなわち、赤、緑、青のそれぞれに対して別々のプロセスを行う。従って、データストリーム変換中に、３つの同一バッファメモリ１が設けられる。本実施例では、説明の簡略化のために、一つのバッファメモリ１だけを例示している。しかしながら、当業者は上述の説明から複数のバッファメモリ１の並列操作を容易に理解できるであろう。
【００３１】
図３及び図１１に示すように、本発明の第２の好ましい実施例は前記実施例と同様のハードウェアを有する。しかしながら、本実施例のバッファ装置１００は、第１の好ましい実施例のプロセスと逆方向のプロセスである、ブロック単位入力データストリームをライン単位出力データストリームへ変換するためのものであるので、ＭＰＥＧ又はＪＰＥＧ復元操作の最終段階で好適に使用される。
【００３２】
また、本実施例でも、バッファメモリ１は６４０×８バイトのメモリを含む。バッファメモリ１の各アドレス指定可能位置のサイズも８×１バイトである。読み取りラベル位置及び書き込みラベル位置は下記式に示す関係にある：
Ｏn（ｔ）＝Ｉn（（ｔ％ｗ）×ｈ＋（ｔ／ｗ））    （４）
式中、Ｏn（ｔ）はｎ番目の読み取り操作の読み取りデータシーケンス（ｔ）用の読み取りラベル位置であり、Ｉn（ｔ）はｎ番目の書き込み操作の書き込みデータシーケンス（ｔ）用の書き込みラベル位置であり、（ｈ）はデータブロックの高さであり、（ｗ）はバッファメモリ１のデータブロック行の一行に収容できるデータブロックの総数であり、（ｔ％ｗ）は（ｔ）を（ｗ）で割った商の余りであり、（ｔ／ｗ）は（ｔ）を（ｗ）で割った商の整数部分である。
【００３３】
本実施例では、ｈ＝８及びｗ＝８０であるので、従って、式（４）は以下のように簡略化される：
Ｏn（ｔ）＝Ｉn（（ｔ％８０）×８＋（ｔ／８０））（５）
次に、第２の好ましい実施例に係るバッファ装置１００の作用を、図１１〜図１５を参照して更に詳細に説明する。
【００３４】
１）１番目の書き込み操作：
図１１に示すように、バッファコントローラ３は、ラベルメモリ２上の書き込みラベル位置を参照し、シーケンスＩ1（０）、Ｉ1（１）、Ｉ1（２）・・・に従って、ブロック単位入力データストリームをバッファメモリ１に書き込む。
【００３５】
２）１番目の読み取り操作：
図１２に示すように、前記実施例と同様に、現行の書き込み操作が完了する前に読み取り操作を開始してもよい。例えば本実施例では、書き込みラベル位置Ｉ1（６３２）〜Ｉ1（６３９）に対応する、アドレス指定可能位置の最終列がデータでいっぱいになる前に、バッファメモリ１からデータを読み取り始めることが可能である。すなわち、入力データストリームの書き込み操作が完了する前でも、出力データストリームを作成するための読み取り操作を開始することができる。
【００３６】
上述のように、バッファコントローラ３は、前記式（５）に従って、読み取りラベル位置Ｏ1（０）、Ｏ1（１）、Ｏ1（２）・・・を算出する。そして、バッファコントローラ３は、シーケンスＯ1（０）、Ｏ1（１）、Ｏ1（２）・・・（書き込みラベル位置Ｉ1（０）、Ｉ1（８）、Ｉ1（１６）・・・を有するアドレス指定可能位置に対応する）に従ってバッファメモリ１のアドレス指定可能位置からデータを読み取る際に、ラベルメモリ２の読み取りラベル位置を参照して、ライン単位出力データストリームを与える。
【００３７】
更に、読み取り操作中に、書き込みラベル位置Ｉ1（６３２）〜Ｉ1（６３９）に対応するアドレス指定可能位置への書き込みを同時に実行することができる。
【００３８】
３）２番目の書き込み操作：
１番目の書き込み操作が終わったとき、すなわち、Ｉ1（６３９）に対応するアドレス指定可能位置への書き込みが完了したときには、バッファメモリ１のアドレス指定可能位置の一部のデータの読み取りも完了している。よって、２番目の書き込み操作を直ちに行うことが可能である。前記式（３）：Ｉn+1（ｔ）＝Ｏn（ｔ）に基づいて、２番目の書き込み操作中の入力データストリームの書き込みは、図１３に示すように、シーケンスＩ2（０）、Ｉ2（１）・・・と進行し、これはシーケンスＯ1（０）、Ｏ1（１）・・・にも対応する。
【００３９】
４）２番目の読み取り操作：
図１４に示すように、１番目の読み取り操作が終わったとき、すなわち、Ｏ1（６３９）に対応するアドレス指定可能位置の読み取りが完了したときには、２番目の読み取り操作を直ちに行うことが可能である。図１５に示すように、２番目の読み取り操作用の読み取りラベル位置Ｏ2（０）、Ｏ2（１）・・・は、前記式（５）に従ってバッファコントローラ３により算出され、書き込みラベル位置Ｉ2（０）、Ｉ2（８）、Ｉ2（１６）・・・に対応している。すなわち、２番目の書き込み操作は左から右、上から下への順番で行われるが、バッファコントローラ３は今までどおり書き込みラベル位置Ｉ2（０）、Ｉ2（８）・・・に対応する所望の読み取りラベル位置Ｏ2（０）、Ｏ2（１）・・・を算出することができる。このように、出力データストリームは２番目の読み取り操作時にも依然としてライン単位でデータを保持する。
【００４０】
従って、ブロック単位入力データストリームのデータが隣接しないアドレス指定可能位置に記憶されているとしても、バッファコントローラ３は式（５）と式（３）とを用いて常に所望の読み取り及び書き込みラベル位置を作成し、データの記憶及び検索を正確に達成できる。
【００４１】
つまり、本発明によれば、バッファメモリのラベル付けと、式（１）、式（３）、式（４）とを用いた、ライン単位データストリームとブロック単位データストリーム間のデータストリーム変換を可能とするデータストリーム変換のための方法及びバッファ装置が提供される。従来技術と比べて、読み取り及び書き込みラベル位置を記憶するための小容量メモリ領域を有するラベルメモリ２が必要であるが、バッファメモリ１のサイズは半減される。
【００４２】
本発明を最も実用的で好ましいと考えられる実施例を挙げて説明したが、本発明はここに開示した実施例に限定されるものではなく、変更や均等の構成を含むように最も広義に解釈した要旨の範囲で種々の構成をとることが可能である。
【図面の簡単な説明】
【００４３】
【図１】ＭＰＥＧデータ構造を示す模式図
【図２】ＭＰＥＧ圧縮操作を示すフローチャート
【図３】データストリーム変換のための従来のバッファ装置を示すブロック図
【図４】本発明に係るデータストリーム変換のためのバッファ装置の第１の好ましい実施例を示す回路ブロック模式図
【図５】第１の好ましい実施例に係る、ライン単位データストリームをブロック単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図６】第１の好ましい実施例に係る、ライン単位データストリームをブロック単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図７】第１の好ましい実施例に係る、ライン単位データストリームをブロック単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図８】第１の好ましい実施例に係る、ライン単位データストリームをブロック単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図９】第１の好ましい実施例に係る、ライン単位データストリームをブロック単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図１０】第１の好ましい実施例に係る、ライン単位データストリームをブロック単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図１１】第２の好ましい実施例に係る、ブロック単位データストリームをライン単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図１２】第２の好ましい実施例に係る、ブロック単位データストリームをライン単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図１３】第２の好ましい実施例に係る、ブロック単位データストリームをライン単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図１４】第２の好ましい実施例に係る、ブロック単位データストリームをライン単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図１５】第２の好ましい実施例に係る、ブロック単位データストリームをライン単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【符号の説明】
【００４４】
１  バッファメモリ
２  ラベルメモリ
３  バッファコントローラ
１００  バッファ装置
【図１】
2005303338.tif 000003
【図２】
2005303338.tif 000004
【図３】
2005303338.tif 000005
【図４】
2005303338.tif 000006
【図５】
2005303338.tif 000007
【図６】
2005303338.tif 000008
【図７】
2005303338.tif 000009
【図８】
2005303338.tif 000010
【図９】
2005303338.tif 000011
【図１０】
2005303338.tif 000012
【図１１】
2005303338.tif 000013
【図１２】
2005303338.tif 000014
【図１３】
2005303338.tif 000015
【図１４】
2005303338.tif 000016
【図１５】
2005303338.tif 000017
【手続補正書】
【提出日】平成16年5月25日(2004.5.25)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
本実施例では、ｈ＝８及びｗ＝８０であるので、従って、式（１）は下記のように簡略化できる：
Ｏn（ｔ）＝Ｉn（（ｔ％８）×８０＋（ｔ％８））    （２）
すなわち、第１読み取りラベル位置Ｏ（０）＝第１書き込みラベル位置Ｉ（０）；第２読み取りラベル位置Ｏ（１）＝Ｉ（（１％８）×８０＋（１／８））＝Ｉ（８０）；第３読み取りラベル位置Ｏ（２）＝Ｉ（（２％８）×８０＋（２／８））＝Ｉ（１６０）；等となる。従って、式（２）に基づいて、Ｏ（３）＝Ｉ（２４０）、Ｏ（４）＝Ｉ（３２０）、Ｏ（５）＝Ｉ（４００）、Ｏ（６）＝Ｉ（４８０）、Ｏ（７）＝Ｉ（５６０）となる。ここで、Ｏ（０）、Ｏ（１）、Ｏ（２）、Ｏ（３）、Ｏ（４）、Ｏ（５）、Ｏ（６）、Ｏ（７）は、バッファメモリ１から順番に読み取られ、それぞれＩ（０）、Ｉ（８０）、Ｉ（１６０）、Ｉ（２４０）、Ｉ（３２０）、Ｉ（４００）、Ｉ（４８０）、Ｉ（５６０）に対応するので、出力データストリームは最初のデータブロックを保持することが可能である。その後、他のデータブロックを出力するために、Ｏ（８）、Ｏ（９）等が読み取られる。
【外国語明細書】
2005303338.tif 000018
2005303338.tif 000019
2005303338.tif 000020
2005303338.tif 000021
2005303338.tif 000022
2005303338.tif 000023
2005303338.tif 000024
2005303338.tif 000025
2005303338.tif 000026
2005303338.tif 000027
2005303338.tif 000028
2005303338.tif 000029
2005303338.tif 000030
2005303338.tif 000031
2005303338.tif 000032
2005303338.tif 000033
2005303338.tif 000034
2005303338.tif 000035
2005303338.tif 000036
2005303338.tif 000037
2005303338.tif 000038
2005303338.tif 000039
2005303338.tif 000040
2005303338.tif 000041
2005303338.tif 000042
2005303338.tif 000043
【図１】
2005303338.tif 000044
【図２】
2005303338.tif 000045
【図３】
2005303338.tif 000046
【図４】
2005303338.tif 000047
【図５】
2005303338.tif 000048
【図６】
2005303338.tif 000049
【図７】
2005303338.tif 000050
【図８】
2005303338.tif 000051
【図９】
2005303338.tif 000052
【図１０】
2005303338.tif 000053
【図１１】
2005303338.tif 000054
【図１２】
2005303338.tif 000055
【図１３】
2005303338.tif 000056
【図１４】
2005303338.tif 000057
【図１５】
2005303338.tif 000058