(57)【特許請求の範囲】
【請求項１】
入力データストリームを出力データストリームへ変換するための方法であって、
バッファコントローラと、バッファメモリと、ラベルメモリとを有するバッファ装置によって行われるようになっていて、前記入力データストリーム及び前記出力データストリームのうち一方がライン単位データストリームであると共に、前記入力データストリーム及び前記出力データストリームのうち他方がブロック単位データストリームである方法において、
［ａ］書き込み操作のための書き込みデータシーケンスに従って、前記バッファメモリの、前記入力データストリームを書き込むためのアドレス指定可能位置に書き込みラベル位置を割り当てる工程であって、前記書き込みラベル位置に対応する物理的なラベル位置が前記ラベルメモリに記憶される工程と；
［ｂ］前記バッファコントローラの制御下において、前記ラベルメモリに記憶されている前記書き込みラベル位置、及び前記書き込みデータシーケンスに従って、前記入力データストリームを前記バッファメモリのアドレス指定可能位置に書き込む工程と；
［ｃ］前記バッファコントローラにより、前記書き込みデータシーケンス、及び読み取り操作のための読み取りデータシーケンスに従って、前記書き込みラベル位置に対応した読み取りラベル位置を算出する工程と；
［ｄ］前記バッファコントローラの制御下において、前記読み取りデータシーケンスに従って、前記読み取りラベル位置を参照して、前記バッファメモリのアドレス指定可能位置からデータを読み取り、前記出力データストリームを作成する工程とを含み、
前記工程［ｃ］において、Ｏn （ｔ）を、ｎ番目の読み取り操作において読み取りラベル位置からデータを読み取るシーケンスに対応する読み取りデータシーケンスがｔであるときの読み取りデータシーケンス用の読み取りラベル位置とし、Ｉn （ｔ）を、ｎ番目の書き込み操作において書き込みラベル位置へデータを書き込むシーケンスに対応する書き込みデータシーケンスがｔであるときの書き込みデータシーケンス用の書き込みラベル位置とし、ｈをデータブロックの高さとし、ｗを前記バッファメモリのデータブロック行の一行に収容できるデータブロックの総数とし、（ｔ％ｈ）をｔをｈで割った商の余りとし、（ｔ／ｈ）をｔをｈで割った商の整数部分とする以下の式：
Ｏn （ｔ）＝Ｉn （（ｔ％ｈ）×ｗ＋（ｔ／ｈ））
により、前記読み取りラベル位置を算出することを特徴とする、データストリーム変換のための方法。
【請求項２】
工程［ｂ］から工程［ｄ］を繰り返す工程を更に含み、工程［ｄ］に続く工程［ｂ］において、（ｎ＋ｌ）番目の書き込み操作における書き込みデータシーケンスに対応する書き込みラベル位置Ｉn+1 （ｔ）はＯn （ｔ）に等しくなることを特徴とする、請求項１に記載の方法。
【請求項３】
入力データストリームを出力データストリームへ変換するための方法であって、
バッファコントローラと、バッファメモリと、ラベルメモリとを有するバッファ装置によって行われるようになっていて、前記入力データストリームがブロック単位データストリームであると共に、前記出力データストリームがライン単位データストリームである方法において、
［ａ］書き込み操作のための書き込みデータシーケンスに従って、前記バッファメモリの、前記入力データストリームを書き込むためのアドレス指定可能位置に書き込みラベル位置を割り当てる工程であって、前記書き込みラベル位置に対応する物理的なラベル位置が前記ラベルメモリに記憶される工程と；
［ｂ］前記バッファコントローラの制御下において、前記ラベルメモリに記憶されている前記書き込みラベル位置、及び前記書き込みデータシーケンスに従って、前記入力データストリームを前記バッファメモリのアドレス指定可能位置に書き込む工程と；
［ｃ］前記バッファコントローラにより、前記書き込みデータシーケンス、及び読み取り操作のための読み取りデータシーケンスに従って、前記書き込みラベル位置に対応した読み取りラベル位置を算出する工程と；
［ｄ］前記バッファコントローラの制御下において、前記読み取りデータシーケンスに従って、前記読み取りラベル位置を参照して、前記バッファメモリのアドレス指定可能位置からデータを読み取り、前記出力データストリームを作成する工程とを含み、
前記工程［ｃ］において、Ｏn （ｔ）を、ｎ番目の読み取り操作において読み取りラベル位置からデータを読み取るシーケンスに対応する読み取りデータシーケンスがｔであるときの読み取りデータシーケンス用の読み取りラベル位置とし、Ｉn （ｔ）を、ｎ番目の書き込み操作において書き込みラベル位置へデータを書き込むシーケンスに対応する書き込みデータシーケンスがｔであるときの書き込みデータシーケンス用の書き込みラベル位置とし、ｈをデータブロックの高さとし、ｗを前記バッファメモリのデータブロック行の一行に収容できるデータブロックの総数とし、（ｔ％ｗ）をｔをｗで割った商の余りとし、（ｔ／ｗ）をｔをｗで割った商の整数部分とする以下の式：
Ｏn （ｔ）＝Ｉn （（ｔ％ｗ）×ｈ＋（ｔ／ｗ））
により、前記読み取りラベル位置を算出することを特徴とする、データストリーム変換のための方法。
【請求項４】
工程［ｂ］から工程［ｄ］を繰り返す工程を更に含み、工程［ｄ］に続く工程［ｂ］において、（ｎ＋ｌ）番目の書き込み操作における書き込みデータシーケンスに対応する書き込みラベル位置Ｉn+1 （ｔ）はＯn （ｔ）に等しくなることを特徴とする、請求項３に記載の方法。
【請求項５】
前記書き込みラベル位置及び前記読み取りラベル位置は前記ラベルメモリに記憶されることを特徴とする、請求項１又は３に記載の方法。
【請求項６】
入力データストリームを出力データストリームへ変換するためのバッファ装置であって、前記入力データストリーム及び前記出力データストリームのうち一方がライン単位データストリームであると共に、前記入力データストリーム及び前記出力データストリームのうち他方がブロック単位データストリームであるものにおいて、
前記入力データストリームを書き込むためのアドレス指定可能位置が構成されるようになっているバッファメモリと；
書き込みに用いる書き込みラベル位置及び読み取りに用いる読み取りラベル位置を記憶するためのラベルメモリと；
前記バッファメモリと前記ラベルメモリとに接続されたバッファコントローラとを備え、
前記バッファコントローラは、前記書き込みラベル位置、及び書き込み操作のための書き込みデータシーケンスに応じて、前記バッファメモリのアドレス指定可能位置への前記入力データストリームの書き込みを制御し、
前記書き込みデータシーケンス、及び読み取り操作のための読み取りデータシーケンスに従って、前記書き込みラベル位置に対応した前記読み取りラベル位置を算出すると共に、前記ラベルメモリに記憶されている前記読み取りラベル位置を更新し、
前記読み取りデータシーケンスに従って、前記ラベルメモリに記憶された前記読み取りラベル位置を参照して、前記バッファメモリのアドレス指定可能位置からデータを読み取り、前記出力データストリームを作成し、
更に前記バッファコントローラは、Ｏn （ｔ）を、ｎ番目の読み取り操作において読み取りラベル位置からデータを読み取るシーケンスに対応する読み取りデータシーケンスがｔであるときの読み取りデータシーケンス用の読み取りラベル位置とし、Ｉn （ｔ）を、ｎ番目の書き込み操作において書き込みラベル位置へデータを書き込むシーケンスに対応する書き込みデータシーケンスがｔであるときの書き込みデータシーケンス用の書き込みラベル位置とし、ｈをデータブロックの高さとし、ｗを前記バッファメモリのデータブロック行の一行に収容できるデータブロックの総数とし、（ｔ％ｈ）をｔをｈで割った商の余りとし、（ｔ／ｈ）をｔをｈで割った商の整数部分とする以下の式：
Ｏn （ｔ）＝Ｉn （（ｔ％ｈ）×ｗ＋（ｔ／ｈ））により、前記読み取りラベル位置を算出することを特徴とする、バッファ装置。
【請求項７】
前記バッファコントローラは、（ｎ＋１）番目の書き込み操作における書き込みデータシーケンスに対応する書き込みラベル位置Ｉn+1 （ｔ）を、ｎ番目の読み取り操作における読み取りデータシーケンスに対応する読み取りラベル位置Ｏn （ｔ）と等しくなるように割り当てることを特徴とする、請求項６に記載のバッファ装置。
【請求項８】
入力データストリームを出力データストリームへ変換するためのバッファ装置であって、前記入力データストリームがブロック単位データストリームであると共に、前記出力データストリームがライン単位データストリームであるものにおいて、
前記入力データストリームを書き込むためのアドレス指定可能位置が構成されるようになっているバッファメモリと；
書き込みに用いる書き込みラベル位置及び読み取りに用いる読み取りラベル位置を記憶するためのラベルメモリと；
前記バッファメモリと前記ラベルメモリとに接続されたバッファコントローラとを備え、
前記バッファコントローラは、前記書き込みラベル位置、及び書き込み操作のための書き込みデータシーケンスに応じて、前記バッファメモリのアドレス指定可能位置への前記入力データストリームの書き込みを制御し、
前記書き込みデータシーケンス、及び読み取り操作のための読み取りデータシーケンスに従って、前記書き込みラベル位置に対応する前記読み取りラベル位置を算出するとともに、前記ラベルメモリに記憶されている前記読み取りラベル位置を更新し、
前記読み取りデータシーケンスに従って、前記ラベルメモリに記憶された前記読み取りラベル位置を参照して、前記バッファメモリのアドレス指定可能位置からデータを読み取り、前記出力データストリームを作成し、
更に前記バッファコントローラは、Ｏn （ｔ）を、ｎ番目の読み取り操作において読み取りラベル位置からデータを読み取るシーケンスに対応する読み取りデータシーケンスがｔであるときの読み取りデータシーケンス用の読み取りラベル位置とし、Ｉn （ｔ）を、ｎ番目の書き込み操作において書き込みラベル位置へデータを書き込むシーケンスに対応する書き込みデータシーケンスがｔであるときの書き込みデータシーケンス用の書き込みラベル位置とし、ｈをデータブロックの高さとし、ｗを前記バッファメモリのデータブロック行の一行に収容できるデータブロックの総数とし、（ｔ％ｗ）をｔをｗで割った商の余りとし、（ｔ／ｗ）をｔをｗで割った商の整数部分とする以下の式：
Ｏn （ｔ）＝Ｉn （（ｔ％ｗ）×ｈ＋（ｔ／ｗ））
により、前記読み取りラベル位置を算出することを特徴とする、バッファ装置。
【請求項９】
前記バッファコントローラは、（ｎ＋１）番目の書き込み操作における書き込みデータシーケンスに対応する書き込みラベル位置Ｉn+1 （ｔ）を、ｎ番目の読み取り操作の読み取りデータシーケンスにおける読み取りラベル位置Ｏn （ｔ）と等しくなるように割り当てることを特徴とする、請求項８に記載のバッファ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータストリーム変換のための方法及びバッファ装置に関し、特にライン単位データストリームとブロック単位データストリームとの間でデータストリームを変換するための方法及びバッファ装置に関する。
【背景技術】
【０００２】
ＪＰＥＧ及びＭＰＥＧはそれぞれ静止画像圧縮及び動画像圧縮の分野における国際標準である。ＭＰＥＧでは、図１に示すように、そのデータ構造は、複数のピクチャー群（以下、ＧＯＰと略す）を含むシーケンスを少なくとも一つ有する。各ピクチャーは更に複数のスライスに分割される。各スライスは更に複数のマクロブロック（以下、ＭＢと略す）に分割される。各マクロブロックは、４つの輝度ブロックと複数の色差ブロックとから構成される。そして、各ブロックは、ＭＰＥＧのデータ構造の最小符号化単位として定義される８×８バイトを含む。
【０００３】
図２に示すように、原画像データをＭＰＥＧ−１又はＭＰＥＧ−２フォーマットで圧縮するためには、工程２０１で示されるように、まずデータストリーム変換を行って入力データストリームをブロック単位の出力データストリームに変換する。次に、工程２０２で各ブロックの画素データに離散的コサイン変換（ＤＣＴ）を施して、時間領域から周波数領域へ変換し、人間の目には感応しない高周波数成分を除去する。次に、工程２０３で定量化を行って多数のＤＣＴ変換係数をゼロにする。次に、工程２０４で定量化されたＤＣＴ係数にジグザグスキャンを施して周波数の小さい順に並べ替える。その後、工程２０５でＤＣ係数に微分パルス符号変調（ＤＰＣＭ）を施し、ＡＣ係数にランレングス符号化（ＲＬＥ）を施し、最後に両係数に可変長符号化（ＶＬＣ）を施して、ＭＰＥＧ−ｌ／ＭＰＥＧ−２フォーマットでの圧縮を完了する。ＪＰＥＧ圧縮操作も前記プロセスフローと同様に行われる。又、前記プロセスフローの手順を逆に行うことにより、データの復元を行う。
【０００４】
図３に示すように、ＪＰＥＧ及びＭＰＥＧではともに基本処理単位としてブロックを用いるので、図２の工程２０１で要する、ライン単位入力データストリームからブロック単位出力データストリームへの変換には、通常、バッファメモリ７とバッファコントローラ８とを使用する。
【０００５】
バッファコントローラ８の制御下でデータストリームをバッファメモリ７に書き込む際は、データストリームは、左から右、上から下の順番で書き込まれる。しかし、データは基本ブロック単位で読み取られるので、バッファコントローラ８はデータを垂直方向に読み取る（例えば、出力データストリームの内容が最初のブロックを保持するように、左最上の隅から上下方向に出力用８×８バイトを読み取る）。この特徴のために、データは、バッファメモリ７がいっぱいになるまで読み取りに使用できず、又、データを読み取った後で初めてバッファメモリ７への書き込みが可能となる。
【０００６】
従って、バッファメモリ７は、一般にデータ入力に使用される部分とデータ出力に使用される部分の２つの部分に別けられることになる。図３に示すように、上部７１がデータでいっぱいになってデータをブロック単位で出力できるようになると、下部７２がデータ書き込み操作に使用可能となる。上部７１からデータが出力された後に、後者は次のデータ書き込み操作に使用できるようになる。同様に、下部７２がデータでいっぱいになると、そのデータはそこから出力できるようになる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、図３に示す構成によればデータ入出力速度は増加するが、最適な性能を確保するには大容量バッファメモリ７が必要となる。
【０００８】
従って、本発明の目的は比較的小容量のメモリを用いたデータストリーム変換のための方法及びバッファ装置を提供して、上記従来技術の欠点を解決することにある。
【課題を解決するための手段】
【０００９】
請求項１の発明は、入力データストリームを出力データストリームへ変換するための方法であって、バッファコントローラと、バッファメモリと、ラベルメモリとを有するバッファ装置によって行われるようになっていて、前記入力データストリーム及び前記出力データストリームのうち一方がライン単位データストリームであると共に、前記入力データストリーム及び前記出力データストリームのうち他方がブロック単位データストリームである方法において、
［ａ］書き込み操作のための書き込みデータシーケンスに従って、前記バッファメモリの、前記入力データストリームを書き込むためのアドレス指定可能位置に書き込みラベル位置を割り当てる工程であって、前記書き込みラベル位置に対応する物理的なラベル位置が前記ラベルメモリに記憶される工程と；
［ｂ］前記バッファコントローラの制御下において、前記ラベルメモリに記憶されている前記書き込みラベル位置、及び前記書き込みデータシーケンスに従って、前記入力データストリームを前記バッファメモリのアドレス指定可能位置に書き込む工程と；
［ｃ］前記バッファコントローラにより、前記書き込みデータシーケンス、及び読み取り操作のための読み取りデータシーケンスに従って、前記書き込みラベル位置に対応した読み取りラベル位置を算出する工程と；
［ｄ］前記バッファコントローラの制御下において、前記読み取りデータシーケンスに従って、前記読み取りラベル位置を参照して、前記バッファメモリのアドレス指定可能位置からデータを読み取り、前記出力データストリームを作成する工程とを含み、
前記工程［ｃ］において、Ｏn （ｔ）を、ｎ番目の読み取り操作において読み取りラベル位置からデータを読み取るシーケンスに対応する読み取りデータシーケンスがｔであるときの読み取りデータシーケンス用の読み取りラベル位置とし、Ｉn （ｔ）を、ｎ番目の書き込み操作において書き込みラベル位置へデータを書き込むシーケンスに対応する書き込みデータシーケンスがｔであるときの書き込みデータシーケンス用の書き込みラベル位置とし、ｈをデータブロックの高さとし、ｗを前記バッファメモリのデータブロック行の一行に収容できるデータブロックの総数とし、（ｔ％ｈ）をｔをｈで割った商の余りとし、（ｔ／ｈ）をｔをｈで割った商の整数部分とする以下の式：
Ｏn （ｔ）＝Ｉn （（ｔ％ｈ）×ｗ＋（ｔ／ｈ））
により、前記読み取りラベル位置を算出することを特徴とする、データストリーム変換のための方法。
【００１０】
また請求項２は、請求項１の特徴に加えて、工程［ｂ］から工程［ｄ］を繰り返す工程を更に含み、工程［ｄ］に続く工程［ｂ］において、（ｎ＋ｌ）番目の書き込み操作における書き込みデータシーケンスに対応する書き込みラベル位置Ｉn+1 （ｔ）はＯn （ｔ）に等しくなることを特徴とする。
【００１１】
また請求項３の発明は、入力データストリームを出力データストリームへ変換するための方法であって、バッファコントローラと、バッファメモリと、ラベルメモリとを有するバッファ装置によって行われるようになっていて、前記入力データストリームがブロック単位データストリームであると共に、前記出力データストリームがライン単位データストリームである方法において、
［ａ］書き込み操作のための書き込みデータシーケンスに従って、前記バッファメモリの、前記入力データストリームを書き込むためのアドレス指定可能位置に書き込みラベル位置を割り当てる工程であって、前記書き込みラベル位置に対応する物理的なラベル位置が前記ラベルメモリに記憶される工程と；
［ｂ］前記バッファコントローラの制御下において、前記ラベルメモリに記憶されている前記書き込みラベル位置、及び前記書き込みデータシーケンスに従って、前記入力データストリームを前記バッファメモリのアドレス指定可能位置に書き込む工程と；
［ｃ］前記バッファコントローラにより、前記書き込みデータシーケンス、及び読み取り操作のための読み取りデータシーケンスに従って、前記書き込みラベル位置に対応した読み取りラベル位置を算出する工程と；
［ｄ］前記バッファコントローラの制御下において、前記読み取りデータシーケンスに従って、前記読み取りラベル位置を参照して、前記バッファメモリのアドレス指定可能位置からデータを読み取り、前記出力データストリームを作成する工程とを含み、
前記工程［ｃ］において、Ｏn （ｔ）を、ｎ番目の読み取り操作において読み取りラベル位置からデータを読み取るシーケンスに対応する読み取りデータシーケンスがｔであるときの読み取りデータシーケンス用の読み取りラベル位置とし、Ｉn （ｔ）を、ｎ番目の書き込み操作において書き込みラベル位置へデータを書き込むシーケンスに対応する書き込みデータシーケンスがｔであるときの書き込みデータシーケンス用の書き込みラベル位置とし、ｈをデータブロックの高さとし、ｗを前記バッファメモリのデータブロック行の一行に収容できるデータブロックの総数とし、（ｔ％ｗ）をｔをｗで割った商の余りとし、（ｔ／ｗ）をｔをｗで割った商の整数部分とする以下の式：
Ｏn （ｔ）＝Ｉn （（ｔ％ｗ）×ｈ＋（ｔ／ｗ））
により、前記読み取りラベル位置を算出することを特徴とする。
【００１２】
また請求項４の発明は、請求項３の特徴に加えて、工程［ｂ］から工程［ｄ］を繰り返す工程を更に含み、工程［ｄ］に続く工程［ｂ］において、（ｎ＋ｌ）番目の書き込み操作における書き込みデータシーケンスに対応する書き込みラベル位置Ｉn+1 （ｔ）はＯn （ｔ）に等しくなることを特徴とし、また請求項５の発明は、請求項１又は３の特徴に加えて、前記書き込みラベル位置及び前記読み取りラベル位置は前記ラベルメモリに記憶されることを特徴とする。
【００１３】
また請求項６の発明は、入力データストリームを出力データストリームへ変換するためのバッファ装置であって、前記入力データストリーム及び前記出力データストリームのうち一方がライン単位データストリームであると共に、前記入力データストリーム及び前記出力データストリームのうち他方がブロック単位データストリームであるものにおいて、    前記入力データストリームを書き込むためのアドレス指定可能位置が構成されるようになっているバッファメモリと；書き込みに用いる書き込みラベル位置及び読み取りに用いる読み取りラベル位置を記憶するためのラベルメモリと；前記バッファメモリと前記ラベルメモリとに接続されたバッファコントローラとを備え、
前記バッファコントローラは、前記書き込みラベル位置、及び書き込み操作のための書き込みデータシーケンスに応じて、前記バッファメモリのアドレス指定可能位置への前記入力データストリームの書き込みを制御し、前記書き込みデータシーケンス、及び読み取り操作のための読み取りデータシーケンスに従って、前記書き込みラベル位置に対応した前記読み取りラベル位置を算出すると共に、前記ラベルメモリに記憶されている前記読み取りラベル位置を更新し、前記読み取りデータシーケンスに従って、前記ラベルメモリに記憶された前記読み取りラベル位置を参照して、前記バッファメモリのアドレス指定可能位置からデータを読み取り、前記出力データストリームを作成し、
更に前記バッファコントローラは、Ｏn （ｔ）を、ｎ番目の読み取り操作において読み取りラベル位置からデータを読み取るシーケンスに対応する読み取りデータシーケンスがｔであるときの読み取りデータシーケンス用の読み取りラベル位置とし、Ｉn （ｔ）を、ｎ番目の書き込み操作において書き込みラベル位置へデータを書き込むシーケンスに対応する書き込みデータシーケンスがｔであるときの書き込みデータシーケンス用の書き込みラベル位置とし、ｈをデータブロックの高さとし、ｗを前記バッファメモリのデータブロック行の一行に収容できるデータブロックの総数とし、（ｔ％ｈ）をｔをｈで割った商の余りとし、（ｔ／ｈ）をｔをｈで割った商の整数部分とする以下の式：
Ｏn （ｔ）＝Ｉn （（ｔ％ｈ）×ｗ＋（ｔ／ｈ））により、前記読み取りラベル位置を算出することを特徴とする。
【００１４】
また請求項７の発明は、請求項６の特徴に加えて、前記バッファコントローラは、（ｎ＋１）番目の書き込み操作における書き込みデータシーケンスに対応する書き込みラベル位置Ｉn+1 （ｔ）を、ｎ番目の読み取り操作における読み取りデータシーケンスに対応する読み取りラベル位置Ｏn （ｔ）と等しくなるように割り当てることを特徴とする。
【００１５】
また請求項８の発明は、入力データストリームを出力データストリームへ変換するためのバッファ装置であって、前記入力データストリームがブロック単位データストリームであると共に、前記出力データストリームがライン単位データストリームであるものにおいて、
前記入力データストリームを書き込むためのアドレス指定可能位置が構成されるようになっているバッファメモリと；書き込みに用いる書き込みラベル位置及び読み取りに用いる読み取りラベル位置を記憶するためのラベルメモリと；前記バッファメモリと前記ラベルメモリとに接続されたバッファコントローラとを備え、
前記バッファコントローラは、前記書き込みラベル位置、及び書き込み操作のための書き込みデータシーケンスに応じて、前記バッファメモリのアドレス指定可能位置への前記入力データストリームの書き込みを制御し、前記書き込みデータシーケンス、及び読み取り操作のための読み取りデータシーケンスに従って、前記書き込みラベル位置に対応する前記読み取りラベル位置を算出するとともに、前記ラベルメモリに記憶されている前記読み取りラベル位置を更新し、前記読み取りデータシーケンスに従って、前記ラベルメモリに記憶された前記読み取りラベル位置を参照して、前記バッファメモリのアドレス指定可能位置からデータを読み取り、前記出力データストリームを作成し、
更に前記バッファコントローラは、Ｏn （ｔ）を、ｎ番目の読み取り操作において読み取りラベル位置からデータを読み取るシーケンスに対応する読み取りデータシーケンスがｔであるときの読み取りデータシーケンス用の読み取りラベル位置とし、Ｉn （ｔ）を、ｎ番目の書き込み操作において書き込みラベル位置へデータを書き込むシーケンスに対応する書き込みデータシーケンスがｔであるときの書き込みデータシーケンス用の書き込みラベル位置とし、ｈをデータブロックの高さとし、ｗを前記バッファメモリのデータブロック行の一行に収容できるデータブロックの総数とし、（ｔ％ｗ）をｔをｗで割った商の余りとし、（ｔ／ｗ）をｔをｗで割った商の整数部分とする以下の式：
Ｏ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 （１）・・・を算出することができる。このように、出力データストリームは２番目の読み取り操作時にも依然としてライン単位でデータを保持する。
【００４６】
従って、ブロック単位入力データストリームのデータが隣接しないアドレス指定可能位置に記憶されているとしても、バッファコントローラ３は式（５）と式（３）とを用いて常に所望の読み取り及び書き込みラベル位置を作成し、データの記憶及び検索を正確に達成できる。
【００４７】
つまり、本発明によれば、バッファメモリのラベル付けと、式（１）、式（３）、式（４）とを用いた、ライン単位データストリームとブロック単位データストリーム間のデータストリーム変換を可能とするデータストリーム変換のための方法及びバッファ装置が提供される。従来技術と比べて、読み取り及び書き込みラベル位置を記憶するための小容量メモリ領域を有するラベルメモリ２が必要であるが、バッファメモリ１のサイズは半減される。
【００４８】
本発明を最も実用的で好ましいと考えられる実施例を挙げて説明したが、本発明はここに開示した実施例に限定されるものではなく、変更や均等の構成を含むように最も広義に解釈した要旨の範囲で種々の構成をとることが可能である。
【図面の簡単な説明】
【００４９】
【図１】ＭＰＥＧデータ構造を示す模式図
【図２】ＭＰＥＧ圧縮操作を示すフローチャート
【図３】データストリーム変換のための従来のバッファ装置を示すブロック図
【図４】本発明に係るデータストリーム変換のためのバッファ装置の第１の好ましい実施例を示す回路ブロック模式図
【図５】第１の好ましい実施例に係る、ライン単位データストリームをブロック単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図６】第１の好ましい実施例に係る、ライン単位データストリームをブロック単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図７】第１の好ましい実施例に係る、ライン単位データストリームをブロック単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図８】第１の好ましい実施例に係る、ライン単位データストリームをブロック単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図９】第１の好ましい実施例に係る、ライン単位データストリームをブロック単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図１０】第１の好ましい実施例に係る、ライン単位データストリームをブロック単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図１１】第２の好ましい実施例に係る、ブロック単位データストリームをライン単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図１２】第２の好ましい実施例に係る、ブロック単位データストリームをライン単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図１３】第２の好ましい実施例に係る、ブロック単位データストリームをライン単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図１４】第２の好ましい実施例に係る、ブロック単位データストリームをライン単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【図１５】第２の好ましい実施例に係る、ブロック単位データストリームをライン単位データストリームへ変換するための連続した書き込み操作及び読み取り操作中のバッファ内容を示す図
【符号の説明】
【００５０】
１  バッファメモリ
２  ラベルメモリ
３  バッファコントローラ
１００  バッファ装置                                                                                
【図１】
0004171715.tif 000002
【図２】
0004171715.tif 000003
【図３】
0004171715.tif 000004
【図４】
0004171715.tif 000005
【図５】
0004171715.tif 000006
【図６】
0004171715.tif 000007
【図７】
0004171715.tif 000008
【図８】
0004171715.tif 000009
【図９】
0004171715.tif 000010
【図１０】
0004171715.tif 000011
【図１１】
0004171715.tif 000012
【図１２】
0004171715.tif 000013
【図１３】
0004171715.tif 000014
【図１４】
0004171715.tif 000015
【図１５】
0004171715.tif 000016