【手続補正書】
【提出日】平成18年9月14日(2006.9.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】  明細書
【発明の名称】  データ処理方法及び特定用途向け集積回路
【特許請求の範囲】
【請求項１】
中央処理ユニットを備える単一チップの特定用途向け集積回路を制御して、該特定用途向け集積回路によりデジタルビデオ及びオーディオデータを自律的に管理するデータ処理方法において、
上記特定用途向け集積回路の中央処理ユニットにおいてコマンドを受信し、該特定用途向け集積回路によるデジタルビデオ及びオーディオデータの管理のための現在の再生状態を確立する受信ステップと、
外部からの命令によらず、ビデオフィールド同期信号と上記特定用途向け集積回路の現在の状態とに応じて、デジタルビデオデータを表示するか否か、デジタルビデオデータをデコードして表示するか否か、以前にデコードしたデジタルビデオデータを繰り返し表示するか否か、及びデジタルビデオデータをデコードして出力する前にデジタルビデオデータをスキップするか否かを決定する応答ステップと、
上記受信ステップ及び応答ステップを繰り返して再生状態間を遷移し、上記デジタルビデオ及びオーディオデータに対する所望の再生を行う繰返しステップとを有するデータ処理方法。
【請求項２】
上記特定用途向け集積回路は、１つ以上の停止、再生、スロー再生、早送り再生、一時停止、逆方向早送り再生及び逆方向デコード状態に応答することを特徴とする請求項１記載のデータ処理方法。
【請求項３】
上記特定用途向け集積回路は、上記停止、再生、スロー再生、早送り再生、一時停止、逆方向早送り再生及び逆方向デコード状態のうちの少なくとも１つの状態において、以前にデコードしたデジタルビデオデータを所定回数繰り返し表示した後、新たなビデオフィールドをデコード及び表示することにより、上記ビデオフィールド同期信号に応答し、上記受信ステップでは、実行する繰返し回数を示す値を含むコマンドを受信することを特徴とする請求項２記載のデータ処理方法。
【請求項４】
上記特定用途向け集積回路は、上記停止、再生、スロー再生、早送り再生、一時停止、逆方向早送り再生及び逆方向デコード状態のうちの少なくとも１つの状態において、デジタルビデオ参照フレームを表示し、非参照フレームをスキップすることにより、上記ビデオフィールド同期信号に応答することを特徴とする請求項２記載のデータ処理方法。
【請求項５】
上記特定用途向け集積回路は、上記停止、再生、スロー再生、早送り再生、一時停止、逆方向早送り再生及び逆方向デコード状態のうちの少なくとも１つの状態において、上記デジタルビデオデータの現在デコードしているセグメントから以前にデコードしたフレームの数が制限を超えたか否かを判定し、超えているときには、該デジタルビデオデータの現在デコードしているセグメント内の後続の全てのフレームをスキップして、該ディジタルビデオデータの次のセグメントから新たなフレームをデコードして表示し、上記受信ステップでは、該デジタルビデオデータの各セグメントからデコードするフレームの数に対する制限の指示を受信することを含むコマンドを受信することを特徴とする請求項４記載のデータ処理方法。
【請求項６】
デジタルビデオ及びオーディオデータを自律的に管理する単一チップの特定用途向け集積回路において、
デジタルビデオデコーダ及び出力手段と、
上記デジタルビデオコーダ及び出力手段を制御する中央処理手段とを備え、
上記中央処理手段は、
コマンドを受信し、上記デコーダ及び出力手段によるデジタルビデオ及びオーディオデータの管理のための現在の再生状態を確立し、
外部からの命令によらず、ビデオフィールド同期信号と現在の状態とに応じて、デジタルビデオデータを表示するか否か、デジタルビデオデータをデコードして表示するか否か、以前にデコードしたデジタルビデオデータを繰り返し表示するか否か、及びデジタルビデオデータをデコードして出力する前にデジタルビデオデータをスキップするか否かを決定し、
上記受信及び応答を繰り返して再生状態間を遷移し、上記デジタルビデオ及びオーディオデータに対する所望の再生を行うことを特徴とする特定用途向け集積回路。
【請求項７】
上記中央処理手段は、１つ以上の停止、再生、スロー再生、早送り再生、一時停止、逆方向早送り再生及び逆方向デコード状態に応答することを特徴とする請求項６記載の特定用途向け集積回路。
【請求項８】
上記中央処理手段は、上記停止、再生、スロー再生、早送り再生、一時停止、逆方向早送り再生及び逆方向デコード状態のうちの少なくとも１つの状態において、以前にデコードしたデジタルビデオデータを所定回数繰り返し表示した後、新たなビデオフィールドをデコード及び表示することにより、上記ビデオフィールド同期信号に応答するとともに、実行する繰返し回数を示す値を含むコマンドを受信することを特徴とする請求項７記載の特定用途向け集積回路。
【請求項９】
上記中央処理手段は、上記停止、再生、スロー再生、早送り再生、一時停止、逆方向早送り再生及び逆方向デコード状態のうちの少なくとも１つの状態において、デジタルビデオ参照フレームを表示し、非参照フレームをスキップすることにより、上記ビデオフィールド同期信号に応答することを特徴とする請求項７記載の特定用途向け集積回路。
【請求項１０】
上記中央処理手段は、上記停止、再生、スロー再生、早送り再生、一時停止、逆方向早送り再生及び逆方向デコード状態のうちの少なくとも１つの状態において、上記デジタルビデオデータの現在デコードしているセグメントから以前にデコードしたフレームの数が制限を超えたか否かを判定し、超えているときには、該デジタルビデオデータの現在デコードしているセグメント内の後続の全てのフレームをスキップして、該ディジタルビデオデータの次のセグメントから新たなフレームをデコードして表示するとともに、該デジタルビデオデータの各セグメントからデコードするフレームの数に対する制限を指示するコマンドを受信することを特徴とする請求項９記載の特定用途向け集積回路。
【請求項１１】
請求項６記載の単一チップの特定用途向け集積回路を備えるオーディオ／ビデオ機器。
【請求項１２】
セットトップボックス、デジタルテレビジョン受信機、テレビジョン、パーソナルコンピュータ、衛星放送受信機、コンピュータ、デジタルビデオディスクプレイヤ、デジタルビデオディスクレコーダ、ビデオカセットレコーダ及びカムコーダのいずれかであることを特徴とする請求項１１記載のオーディオ／ビデオ機器。
【請求項１３】
請求項６記載の単一チップの特定用途向け集積回路を定義するハードウェア定義プログラムと、該ハードウェア定義プログラムが格納された媒体とを備えるプログラム製品。
【請求項１４】
上記媒体は、伝送媒体又は記録媒体のいずれかであることを特徴とする請求項１３記載のプログラム製品。
【発明の詳細な説明】
【０００１】
関連する出願の相互参照
本発明は、１９９８年１０月２２日に本出願と同一の出願人により出願された、セム・ドゥルオズ（Cem Duruoz）、タナー・オゼリク（Taner Ozcelik）及びゴングサン・ユー（Gong-san Yu）を発明者とする同時に係属中の米国特許出願番号第０９／１７７，２６１号「デジタルオーディオビデオプロセッサ用の仮想タイムクロックを実現する方法及び装置（METHOD AND APPARATUS FOR A VIRTUAL SYSTEM TIME CLOCK FOR DIGITAL/AUDIO/VIDEO PROCESSOR）」及びセム・アイ・ドゥルオズ（Cem I. Duruoz）、タナー・オゼリク（Taner Ozcelik）及びパタビラマン・スブラマニアン（Pattabiraman Subramanian）を発明者とする米国特許出願番号第０９／１７７，２１４号「コマンドマネージャ（COMMAND MANAGER）」に関連する。これら出願は、参照により、本願に組み込まれるものとする。
【０００２】
発明の分野
本発明は、デジタルビデオのトリック再生（trick playback）の管理に関する。
【０００３】
発明の背景
ビデオ信号のデジタル伝送技術により、柔軟性が向上し、より高い解像度が実現でき、より高い信頼性が得られるようになった。近年の業界の協働により、デジタルビデオは、現実化され、デジタルビデオの伝送及び記録に関する標準規格が制定され、民生用デジタルビデオ製品も市販されるようになった。デジタルビデオへの移行は、例えばパーソナルコンピュータやコンパクトディスク等のデジタル技術に後押しされている。パーソナルコンピュータやコンパクトディスクは、消費者にデジタル技術の可能性を認知させた。
【０００４】
近年、価格が下がり、広く普及しているパーソナルコンピュータは、数値計算を行うマイクロプロセッサ／コプロセッサ、入出力端子、及び画像データを格納及び処理するための大容量デジタルメモリ等、デジタルビデオデータを生成するために必要なハードウェアの多くを備えている。しかしながら、パーソナルコンピュータ内のマイクロプロセッサは、汎用プロセッサ（general purpose processor）であり、高解像度の完全動画像（full-motion）出力データを生成するのに十分なデジタルビデオデータ処理能力を有していないため、パーソナルコンピュータは、デジタルビデオデータの受信には適していない。このため、民生用のデジタルビデオ受信機として使用するために開発された、デジタルビデオ関連の演算に適した専用プロセッサ（special purpose processor）が開発されている。この種の専用プロセッサは、１９９７年５月３０日、モシェ・バブリル（Moshe Bublil）他により出願され、同一の出願人に譲渡された同時に係属中の米国特許出願第０８／８６５，７４９号「デジタルオーディオビデオデコード用専用プロセッサ（SPECIAL PURPOSE PROCESSOR FOR DIGITAL AUDIO VIDEO DECODING）」に開示されている。この出願は、参照により本願に組み込まれるものとする。また、ここに使用するメモリコントローラについては、１９９７年４月３０日、エドワード・ジェイ・パルチ（Edward J. Paluch）により出願され、同一の出願人に譲渡された同時に係属中の米国特許出願第０８／８４６，５９０号「デジタルビデオ用のメモリアドレスの生成方法（MEMORY ADDRESS GENERATION FOR DIGITAL VIDEO）」に開示されている。この出願は、参照により本願に組み込まれるものとする。
【０００５】
上述の米国特許出願は、縮小命令セットＣＰＵ（reduced instruction set CPU：以下、ＲＩＳＣ ＣＰＵという。）により制御されるデジタルビデオ処理用の特定用途向け集積回路（application specific integrated circuit：以下、ＡＳＩＣという。）を開示している。ＲＩＳＣ ＣＰＵは、ＡＳＩＣ以外の部分の演算及び動作を制御し、デジタルビデオデータの受信を行う。通常用いられている様々な種類のＣＰＵと同様、上述の米国特許出願に記述されているＣＰＵは、例えば分岐（BRANCH）、呼出（CALL）、戻る（RETURN）等のフロー制御命令をサポートするとともに、ハードウェア割込サービスを提供する。
【０００６】
ＲＩＳＣ ＣＰＵの限界のため、タスク及びスタックマネージャは、タスクフラグを監視し、タスクフラグを優先させ、サブルーチン呼出を管理し（ハードウェアは、サブルーチン呼出のネストをサポートしていない）、仮想命令メモリ管理を行う必要がある。この種の専用プロセッサは、１９９７年５月３０日、タナー・オゼリク（Taner Ozcelik）他により出願され、同一の出願人に譲渡された同時に係属中の米国特許出願第０８／８６６，４１９号「デジタルビデオデコード用タスク及びスタックマネージャ（TASK AND STACK MANAGER FOR DIGITAL VIDEO DECODING）」に開示されており、この出願は、参照により、本願に組み込まれるものとする。
【０００７】
しかしながら、タスク及びスタック管理を行っても、ホストプロセッサは、ＡＳＩＣにコマンドを供給するために、ＡＳＩＣと密接に統合する必要がある場合がある。例えば、ホストプロセッサは、ＡＳＩＣに複雑な処理を行わせるためのコマンドを供給するために、多数の特別なコマンドを生成し、これら特別なコマンドに優先順位を付けてスケジューリングを行い、各コマンドの実行状況を監視して、順次コマンドを供給する必要がある。また、ホストプロセッサは、例えば垂直ブランキング期間等のイベントや複数のビデオフレームに同期して動作する必要もある。
【０００８】
発明の開示
上述の課題を解決するために、本発明に係るデータ処理方法は、中央処理ユニット（central processing unit：以下、ＣＰＵという。）を備える単一チップの特定用途向け集積回路（application specific integrated circuit：以下、ＡＳＩＣという。）によりデジタルビデオ及びオーディオデータを自律的に管理する。ＣＰＵは、再生状態装置を実現するように命令によりプログラミングされる。ホストからＣＰＵに供給される命令は、ＡＳＩＣのによるデジタルビデオ及びオーディオデータの管理のための現在の再生状態を確立する。ＣＰＵは、外部からの命令によらず、ビデオフィールド同期信号とＡＳＩＣの現在の状態とに応じてデジタルビデオデータをデコードして表示するか否か、以前にデコードしたデジタルビデオデータを繰り返し表示するか否か、及びデジタルビデオデータをデコードして出力する前にデジタルビデオデータをスキップするか否かを決定する。このように、ホストはＣＰＵにコマンドを供給し、これによりＡＳＩＣは、低レベルの個別のフィールド又はフレームの再生に関する詳細な指示によらず、デジタルビデオ及びオーディオデータに対する所望の再生処理を実現する。
【０００９】
後述する本発明の詳細な具体例においては、停止状態において、ＡＳＩＣは、いかなるデジタルビデオデータもデコード及び表示しないことによりビデオフィールド同期信号に応答する。再生状態において、ＡＳＩＣは、新たなビデオフィールドをデコードすることによりビデオフィールド同期信号に応答する。スロー再生状態において、ＡＳＩＣは、以前にデコードしたデジタルビデオデータを所定回数繰り返し表示した後、新たなビデオフィールドをデコード及び表示することにより上記ビデオフィールド同期信号に応答する。スロー再生状態において実行する繰返し回数は、スロー再生状態を指示するコマンドに含まれ、これによりスロー再生の速度を調整することができる。早送り再生状態において、ＡＳＩＣは、以前にデコードしたデジタルビデオ参照フレームを所定回数繰り返し表示した後、非参照フレームをスキップし、新たな参照フレームをデコード及び表示することによりビデオフィールド同期信号に応答する。早送り再生状態において実行する参照フレームの繰返し回数は、早送り再生コマンド内において、ビデオオブジェクト単位内においてデコードする参照フレームの数として特定される。一時停止状態において、ＡＳＩＣは、以前にデコードしたビデオフレームを繰り返し表示することによりビデオフィールド同期信号に応答する。逆方向早送り再生状態において、ＡＳＩＣは、以前にデコードしたデジタルビデオ参照フレームを所定回数繰り返し表示した後、逆方向に非参照フレームをスキップし、新たな参照フレームをデコード及び表示することによりビデオフィールド同期信号に応答する。逆方向早送り再生状態において実行する参照フレームの繰返し回数は、逆方向早送り再生コマンド内において、ビデオオブジェクト単位内においてデコードする参照フレームの数として特定される。逆方向デコード状態において、ＡＳＩＣは、現在表示されているビデオフレーム以前にデコードされたビデオデータをバッファリングすることにより応答し、このデコードされたビデオデータは、ホストからのコマンド及び制御に基づいて、逆方向コマ送り再生又は逆方向スロー再生として出力される。
【００１０】
上述及びさらなる本発明の目的及び利点は、添付の図面及びその説明により明らかとなる。
【００１１】
特定の実施の形態の詳細な説明
ＡＳＩＣアーキテクチャ
Ｆｉｇ．１は、デジタルオーディオ／ビデオシステム１０の構成を示す図である。ここに示す特定用途向け集積回路（Application Specific Integrated Circuit：以下、ＡＳＩＣという。）１１は、縮小命令セット（Reduced Instruction Set：以下、ＲＩＳＣという。）中央処理ユニット（Central Processing Unit：以下、ＣＰＵという。）１２を備える。ＲＩＳＣ ＣＰＵ１２は、ＡＳＩＣ１１によるデジタルオーディオ／ビデオ信号のデコードを制御する。ＲＩＳＣ ＣＰＵ１２の構造及びＡＳＩＣ１１の要素は、上述の米国特許出願に記述されている。ここでは、ＲＩＳＣ ＣＰＵ１２及びＡＳＩＣ１１において本発明に関連する特定の要素についてのみ説明する。
【００１２】
ＲＩＳＣ ＣＰＵ１２は、ＡＳＩＣ１１により実行されるデジタルオーディオ／ビデオ信号処理を制御するためにＲＩＳＣ ＣＰＵ１２により実行される命令を格納する命令メモリ１４を備える。これら命令は、オフチップダイナミックランダムアクセスメモリ（off-chip dynamic random access memory：以下、ＤＲＡＭという。）１６とＲＩＳＣ ＣＰＵ１２間を接続する第１のデータバス１８を介して、ＤＲＡＭ１６から命令メモリ１４にロードされる。
【００１３】
ＲＩＳＣ ＣＰＵ１２により実行される命令メモリ１４内の命令のアドレスは、プログラムカウンタ（program counter：以下、ＰＣという。）レジスタ２０により識別される。命令メモリ１４から読み出された命令は、命令レジスタ２２に供給され、ＲＩＳＣ ＣＰＵ１２の動作の制御に使用される。上述の米国特許出願に記載されているように、命令は、１６ビットのデータ幅を有し、レジスタファイル２４、データパス２６、メモリインターフェイス（Ｉ／Ｆ）２８及び上述の米国特許出願に開示されている他の要素の様々な動作を制御する。
【００１４】
さらに、命令メモリ１４には、コマンドマネージャを起動（activate）するサービスルーチンを含む幾つかの割込サービスルーチンが格納されている。これら割込サービスルーチンは、割込命令の受信に応じて、ＲＩＳＣ ＣＰＵ１２により起動される。
【００１５】
さらに、命令メモリ１４には、コマンドマネージャのタスクを実行するルーチンを含む他の常駐コード（resident code）３２が格納されている。
【００１６】
上述の全てのルーチンは、命令メモリ１４に常駐するものであり、すなわち、これらルーチンは、ＡＳＩＣ１１が最初にブートされると、命令メモリ１４の常駐コード領域３０に読み込まれ、その後変更されずに残される。また、命令メモリ１４内の非常駐コード領域３４には、非常駐コード３６が格納される。非常駐コード３６は、ＲＩＳＣ ＣＰＵ１２によるプログラムの実行時に必要に応じて命令メモリ１４にスワップされる。コマンドマネージャの一部は、非常駐コード３６として格納されている非常駐ルーチンにより構成される。すなわち、任意の時刻において、複数の非常駐（ＮＲ）コードセグメント３６の１つが命令メモリ１４における割り当てられた非常駐コード領域３４に格納される。命令は、タスク又は割込サービスの実行のためにこれら命令が必要とされたときに、命令メモリ１４の「非常駐コード」領域３４に随時ロードされる。スワッピング処理は、上述の米国特許出願に記述されているように、タスクの実行及びスタックマネージャにより制御される。
【００１７】
また、ＲＩＳＣ ＣＰＵ１２は、命令により制御されるレジスタファイル２４を備える。レジスタファイル２４は、複数、例えば６４個の３２ビットレジスタを備え、ＲＩＳＣ ＣＰＵ１２は、これらレジスタを使用して、オーディオ／ビデオデジタル信号のデコード及び処理のための演算を実行する。Ｆｉｇ．１には、コマンドマネージャの一部としてＲＩＳＣ ＣＰＵ１２によって使用される特定のレジスタの一部が示されている。以下、これらの機能について説明する。
【００１８】
レジスタファイル２４内の第１のレジスタは、ホストコマンドファイルレジスタ３８であり、ホストコマンドファイルレジスタ３８には、ホストプロセッサ３９からのＡＳＩＣ１１用のコマンドが格納されている。
【００１９】
レジスタファイル２４内の第２のレジスタは、ホストパラメータ（以下、ホストＰＲＭという。）レジスタ４０であり、ホストＰＲＭレジスタ４０には、必要に応じて、ホストコマンド用のオペランドが格納される。コマンドマネージャは、ホストコマンドの供給により起動されると、まず、ホストＰＲＭレジスタ４０内のオペランドを読み出す。これは、ホストコマンドファイルレジスタ３８からコマンドを呼び出すことにより、ホストプロセッサ３９がハードウェア割込を行うためである。ホストプロセッサ３９が続いて他のコマンドを供給すると、ホストコマンドファイルレジスタ３８内のホストコマンドが上書きされ、上書きされたホストコマンドがコマンドマネージャにより読み出される。さらに、後述するように、非排他的バッファ（nonexclusive buffer）がフルの状態の場合、コマンドマネージャはこれらレジスタの読出処理を延期することができる。
【００２０】
ホストコマンドファイルレジスタ３８は、Ｆｉｇ．２に示すように、３２ビットのビット長を有し、１６ビットのオペランド４２と、ホストプロセッサ３９がコマンドの完了に関する応答信号（acknowledgement）を要求する場合にハイに設定されるフラグビット４４と、ホストコマンドがホストＰＲＭレジスタ４０に格納されている追加的コマンドを有する場合にハイに設定されるフラグビット４６と、８ビットのコマンド識別子（ＣＭＤ−ＩＤ）４８とから構成される。
【００２１】
Ｆｉｇ．１に示すＲＩＳＣ ＣＰＵ１２内のデータパス２６は、命令レジスタ２２内の命令から生成された命令に応答してレジスタファイル２４に登録され、レジスタファイル２４から供給されたコンテンツに対する演算又は論理的処理を実行し、この結果を第２のデータバス５０に送り出す。データパス２６により実行される特別な演算又は論理的処理は、命令レジスタ２２内の命令のオペコード部（opcode part）により決定される。この処理については、上述の米国特許出願にも説明されている。
【００２２】
Ｆｉｇ．１において第２のデータバス５０として示されるデータパス２６の出力は、レジスタファイル２４の入力に接続されており、これによりデータパス２６により実行された演算又は論理的処理の結果をレジスタファイル２４内のレジスタに格納することができる。さらに、第２のデータバス５０は、メモリインターフェイス２８にも接続されており、これによりデータパス２６が実行した論理的処理の結果をＤＲＡＭ１６に格納することができ、また、ＤＲＡＭ１６に格納されているデータを第２のデータバス５０を介して、例えばレジスタファイル２４内のレジスタに格納することができる。
【００２３】
オフチップＤＲＡＭ１６に格納されているデータ構造体（data structure）には、命令メモリ１４の非常駐コード領域３４にスワップされる非常駐ＲＩＳＣ命令５２が含まれる。
【００２４】
ＤＲＡＭ１６内のＤＲＡＭホストコマンドバッファ５４には、非常駐コマンドが格納されている。ＤＲＡＭホストコマンドバッファ５４のデータ構造をＦｉｇ．３に示す。ＤＲＡＭホストコマンドバッファ５４は、８組の非排他的コマンド及びオペランドの組５８〜６５を含む。これら非排他的コマンド及びオペランドの組５８〜６５は、ＤＲＡＭホストコマンド読出／書込ポインタ５６により参照される。ＤＲＡＭホストコマンド読出／書込ポインタ５６は、Ｆｉｇ．４に示すように、１６ビットの読出ポインタ６６と１６ビットの書込ポインタ６８とから構成される。
【００２５】
また、Ｆｉｇ．１に示すように、ＤＲＡＭ１６は、ＤＲＡＭトリック再生コマンドバッファ（DRAM trick play command buffer）７０を有する。ＤＲＡＭトリック再生コマンドバッファ７０は、Ｆｉｇ．５に示すように、３２ビットの排他的コマンド及び３２ビットのオペランドの組７２から構成されている。
【００２６】
また、Ｆｉｇ．１に示すように、ホストプロセッサ３９が応答信号を要求する場合、実行されたコマンドは、ＤＲＡＭコマンド実行完了バッファ７４に書き込まれる。ＤＲＡＭコマンド実行完了バッファ７４は、少なくとも１６個の実行完了コマンドを格納することができる。さらに、ＤＲＡＭ１６は、実行完了コマンドカウンタ７６を備え、実行完了コマンドカウンタ７６は、ホストプロセッサ３９への直前の割込以降に実行されたコマンドの数をカウントする。
【００２７】
データパス２６から出力されるデータは、ＰＣレジスタ２０にも供給され、これにより、呼出（CALL）又は分岐（BRANCH）命令により、命令メモリ１４内の命令のアドレスを直接ＰＣレジスタ２０にロードでき、プログラムの実行は新たなアドレスに移行することができる。この処理のために、命令メモリ１４は、第２のデータバス５０に接続されており、これにより、命令内の即値（immediate values）を呼出又は分岐命令の一部としてＰＣレジスタ２０に供給でき、及び命令内の即値をレジスタファイル２４内のレジスタに供給することができる。
【００２８】
以上のハードウェア構造は、後に図面を用いて解説するルーチンの動作の説明のために例示的に示したものにすぎない。このハードウェア構造、特にＲＩＳＣ ＣＰＵにより供給される命令及びデータフローの特定のパスについては、上述の米国特許出願において実質的により詳細に説明されている。
【００２９】
機能的コマンドのフロー（Functional command flow）
以下の説明では、ホストプロセッサ３９の命令を異なる手法で範疇化（categorize）する。例えば、ＡＳＩＣ１１は、ホストプロセッサ３９へのアプリケーションプログラムインターフェイス（application programming interface：以下、ＡＰＩという。）を提供する。ホストプロセッサ３９は、ここでマクロコマンド（macro commands）と呼ぶ汎用的なコマンドを、このマクロコマンド内の必要な特定のコマンドを管理する負荷を与えることなく、ＡＳＩＣ１１に供給することができる。これらマクロコマンドは、システムコマンド、トリック再生（trick play）コマンド、サブピクチャコマンド、オンスクリーン（on screen display）コマンド、ビデオ／オーディオコマンド等としてグループ化される。ビデオマクロコマンドとしては、例えば、「最終表示サイズ設定（set up the final display size）」等がある。
【００３０】
これに対し、ミクロコマンド（micro command）は、デジタルオーディオ／ビデオシステム１０の非常に限定された動作を制御するコマンドであり、通常、所望の結果を得るために、論理シーケンスの形式で複数のコマンドを必要とするものである。ミクロコマンドは、ビデオデコードコマンド、ビデオ表示コマンド、オーディオコマンド等としてグループ化される。ビデオ表示コマンドとしては、例えば、「バッファポインタにおけるデータにより再構築された映像のフィールドを表示（display a field of video from the video reconstruction of data at buffer pointer）」等がある。
【００３１】
また、コマンドマネージャは、コマンドが排他的に実行されるか否かによりコマンドをグループ化する。コマンドマネージャ７８によるホストプロセッサ３９からのホストコマンドの処理を機能的にＦｉｇ．６に示す。後述するように、コマンドマネージャ７８は、マクロコマンドの「トリック再生」サブグループ内のホストコマンド（「排他的コマンドとも呼ばれる」）と非排他的コマンドとを区別する。トリック再生コマンドは、ＤＲＡＭ１６内のトリック再生コマンドバッファ７０にコマンドをバッファリングし、トリック再生コマンドサブルーチンを呼び出す（ステップ５２）状態遷移ハンドラ（state transition handler）８０を発生させるフラグを設定することにより処理される。非排他的コマンドについては、コマンドマネージャ７８は、トリック再生コマンドサブルーチン８２により設定されたパラメータに依存する非排他的コマンドサブルーチン５４を呼び出す。
【００３２】
トリック再生（排他的）コマンドには、（１）次に再生コマンドが発せられたときに、システムが即座に再生を開始できるようにシステムを準備する「再生準備（Play Ready）」、（２）オーディオ、ビデオ及びサブピクチャの再生を開始する「再生（Play）」、（３）ビデオ及びサブピクチャを一時停止させ、オーディオをミュートする「一時停止（Pause）」、（４）初期値では各フレームを１０回ずつ繰り返し表示する１／１０に設定されている調整自在に再生速度を低下させる「スロー再生（Slow Forward）」、（５）参照フレームのみをデコード及び表示する「早送り再生（Fast Forward）」、（６）次のピクチャをデコードして停止する処理を繰り替えす「コマ送り再生（Step Forward）」、（７）参照フレームのみを表示して高速に逆方向再生を行う「逆方向早送り再生（Fast Reverse）」、（８）単一のフレーム毎に、又は調整自在に速度を低下させて逆方向再生を行う「逆方向デコード（Reverse Decode）」、（９）全ての処理を停止し、初期状態に戻す「停止（Stop）」等がある。
【００３３】
Ｆｉｇ．７Ａ及びＦｉｇ．７Ｂは、それぞれコマンドマネージャ７８及び状態遷移ハンドラ８０のスケジューリングを説明する図である。Ｆｉｇ．７Ａに示すように、ホストコマンドは、ハードウェア割込信号を発生して（ステップ８４）コマンドマネージャ７８をスケジューリングし（Ｆｉｇ．１２）、ホストコマンドを格納及び範疇化させて元の処理に戻す（ステップ８６）。コマンドマネージャ７８によるコマンドの処理については後述する。また、Ｆｉｇ．７Ｂに示すように、第２のハードウェア割込信号は、ＡＳＩＣ１１内部のクロック回路（図示せず）により発生される。クロック回路からのフィールドＩＤ（ｆＩＤ）信号は、０から１又は１から０へ切り換えられ（toggle）、これにより、トップビデオフィールド又はボトムビデオフィールドの表示時刻を指定する。このとき、ビデオディスプレイは新たなフィールドを出力する。この割込に続いて、垂直ブランキング期間（ステップ８８）において、ハードウェアとソフトウェアフィールドＩＤとの間の同期処理が行われ（ステップ９０）、これによりデコードと表示を正しく行うことができる。同期処理の後、状態遷移ハンドラ８０（Ｆｉｇ．９）は、タスクマネージャによりスケジューリングされ、これにより直前の垂直ブランキング期間以降にコマンドマネージャ７８によるあらゆる割込動作に基づいてトリック再生状態を確実に更新する。
【００３４】
このトリック再生状態の処理の後、ステップ９４を経て、通常のビデオデコード及び出力処理が再開される。
【００３５】
状態遷移ハンドラ（State transition handler）
トリック再生は、状態遷移ハンドラ８０及びそのサブルーチンにより実行される。すなわち、状態遷移ハンドラ８０及びそのサブルーチンは、Ｆｉｇ．８に示すような可能な遷移を実行し、トリック再生を実現する。同じ状態を指示する矢印は、同じ状態の受信により実行される動作を示している。なお、上述した再生準備のモードは、Ｆｉｇ．８には示していない。
【００３６】
停止状態９７は、状態遷移ハンドラ８０の初期状態であり、及び命令により遷移できる状態である。
【００３７】
一時停止状態９６は、現在のフレームを繰り返し表示する状態である。一時停止状態９６は、フィールドモード９８、フレームモード１００、自動モード１０２の３つのモードから構成される。これらモードは、ビデオ画像の表示の手法に関連する。各ピクチャ又はフレームは、インターリーブされた２つのフィールドから構成され、フィールド０は、奇数ラインを表示するラスタに対応し、フィールド１は、偶数ラインを表示するラスタに対応する。フィールドモード９８では、静止画像を形成するフィールド出力信号は、現在のフレームのフィールド１のみを繰り返す。フィールド０とフィールド１とが異なる時刻に対応するデータを含むビデオ信号もある。この場合、フィールド１のみを繰り返し出力することにより、解像度は低下するが、フィールド間の動きにより生じるちらつき（jitter）の発生を回避することができる。フレームモード１００では、静止画像を形成するフィールド出力信号は、現在のフレームのフィールド０とフィールド１の両方を繰り返し出力する。この場合、フィールド間がフィールド同期されているか否かによって、ちらつきが発生しないこともあり、発生することもある。自動モード１０２では、ビデオ入力信号がフィールド同期されているか否かを状態遷移ハンドラ８０が判定し、この判定に基づいて、フィールドを繰り返して静止画像を形成するか、フレームを繰り返して静止画像を形成するかが決定される。
【００３８】
同様に、スロー再生状態１０４及び逆方向デコード状態１０６は、所定の期間静止画像を出力するものであるため、スロー再生状態１０４及び逆方向デコード状態１０６には、上述の３つのモードが設けられている。スロー再生状態１０４は、順送りコマ間の表示フレームの繰返し回数を決定するカウンタをデクリメントすることにより、スロー順送りトリック再生を実現する。同様に、逆方向デコード状態１０６は、逆方向スロー表示及び逆方向コマ送り再生用の非排他的コマンドを用いて逆送りトリック再生を実現する。逆方向デコード状態１０６では、十分な数のフレームを逆方向にデコードしてバッファに格納し、これにより非排他的表示モードが必要なフレームにアクセスできるようにする。
【００３９】
さらに、早送り再生状態１１２、再生状態１１３、逆方向早送り再生状態１１４が設けられている。これら状態のための適切な処理を実行する状態遷移ハンドラサブルーチンの詳細については、後述する。
【００４０】
状態遷移ハンドラ８０の動作をＦｉｇ．９に示す。まず、デフォルトのビデオディスプレイを設定し（ステップ１１６）、続いてデフォルトのオンスクリーンディスプレイを設定する（ステップ１１７）。さらに、ホストへの割込をスケジューリングし、フレームが出力用に処理されていることをホストに通知する（ステップ１１８）。続いて、排他的コマンドフラグが有効に設定されているか否かを判定することにより、有効な排他的（トリック再生）モードがアクティブな状態になっているか否かを判定する（ステップ１２０）。この判定の結果がNOである場合、存在する内部コマンドを解読（interpret）する（ステップ１２２）。これら内部コマンドには、ビデオフレームのスキップ（video skip frame）、ビデオフレームの繰返し（video repeat frame）、初期デコード準備（initial decode ready）、内部一時停止（internal pause）等がある。これら内部コマンドは、ホストプロセッサ３９によっては生成されず、例えば同期ルーチン実行期間中にＡＳＩＣ１１により生成され、これによりオーディオ及びビデオデータの同期等の処理を実現する。
【００４１】
いずれかの内部コマンドが解読されると、デフォルトトリック再生処理（ステップ１３４）及び包括的処理（ステップ１２４）が確立及び実行される。包括的処理には、フィールド又はフレーム一時停止モードを選択する非排他的ホストコマンド又は自動一時停止モードがホストにより選択されたこと（Ｆｉｇ．４）を示す進歩的なフレームフラグ（progressive frame flag）の存在に基づく適切な一時停止モードの設定が含まれる。さらに、包括的処理には、オーディオ／ビデオ同期のためにソフトウェアタイムクロックを適切に調整する処理が含まれる。状態遷移ハンドラ８０は、このフィールドＩＤにより終了する（ステップ１２６）。
【００４２】
ステップ１２０において、排他的コマンドフラグが有効に設定されている場合、状態遷移ハンドラ８０は、全ての内部フラグをリセットし、フレームを繰り返し、又はフレームをスキップし（トリック再生モードは、先行する全ての同期を向こうにするため）（ステップ１２８）、続いて排他的コマンドを解読する。ここで、ＤＲＡＭトリック再生コマンドバッファ７０（Ｆｉｇ．５）内に有効な排他的コマンドが存在する場合、新たな排他的コマンドを解読するために適切なサブルーチンが呼び出される（ステップ１３２）。一方、ＤＲＡＭトリック再生コマンドバッファ７０が空である場合、又は無効なコマンドを格納している場合、現在のトリック再生状態に対して適切なデフォルト処理サブルーチンが呼び出される（ステップ１３４）。いずれの場合も包括的処理が確立され（ステップ１２４）、サブルーチンが終了される（ステップ１２６）。
【００４３】
ステップ１３２における排他的コマンドの解読処理をＦｉｇ．１０に示す。ここでは、コマンドが再生準備、再生、一時停止、スロー再生、早送り再生、コマ送り再生、逆方向早送り再生、逆方向スロー、停止のいずれかであるかを判定し（それぞれステップ１３６〜１４７）、この判定に応じたコマンドの解読を行う（それぞれステップ１５６〜１６７）。この解読の後、サブルーチンは、ステップ１７０において終了する。コマンドの解読は、Ｆｉｇ．８に示す遷移に対応している。
【００４４】
デフォルトトリック再生処理（ステップ１３４）をＦｉｇ．１１に示す。ここでは、コマンドが停止、再生、一時停止、早送り再生、スロー再生、逆方向早送り再生、逆方向デコードのいずれかであるかを判定し（それぞれステップ１７２〜１７８）、この判定に応じてコマンドの解読を行う（それぞれステップ１８０〜１８６）。何らかの理由により有効なデフォルト状態が検出されなかった場合、停止状態が選択される（ステップ１８７）。続いて、サブルーチン１３４が終了される（ステップ１８８）。これら解読処理は、Ｆｉｇ．８において、ある状態から同じ状態に戻る矢印に対応する。
【００４５】
コマンドマネージャ（Command Manager）
Ｆｉｇ．１２は、ホストコマンドを受信し、範疇化する方法を実現するコマンドマネージャ７８の処理の具体例を示すフローチャートである。この処理は、ステップ７８において開始され、ホストコマンドファイルレジスタ３８内のホストコマンドを受信した後、ＲＩＳＣ ＣＰＵ１２内にハードウェア割込信号を発生し、Ｆｉｇ．７Ａに示す割込サービスルーチンは、コマンドマネージャ７８をスケジューリングする。
【００４６】
ステップ１９０において、処理は、ホストコマンドを受信するコードを実行する。好適な具体例においては、この処理は、まず、ホストインターフェイスを読み出し、所定のオペランド及びコマンドを得ることにより実現される。
【００４７】
ステップ１９２においては、ホストコマンドが排他的コマンドであるか非排他的コマンドであるかが判定される。この具体例では、全てのコマンドは、整数のコマンド識別子（ＩＤ）を有している。排他的コマンドは、特定の数値的範囲内のＩＤを有し、非排他的コマンドは、この数値的範囲外のＩＤを有する。すなわち、ステップ１９２においては、現在のコマンドのＩＤをこの特定の範囲と比較することにより、この現在のコマンドが排他的コマンドであるか、非排他的コマンドであるかを判定する。
【００４８】
コマンドが排他的である場合、コマンドマネージャ７８は、コマンド及び必要に応じてその引数（argument）をバッファリングし（ステップ１９４）、すなわち、コマンド及び引数をＤＲＡＭトリック再生コマンドバッファ７０に格納し、このバッファに排他的コマンドが既に格納されている場合、そのコマンドを置換する。このステップにおいては、排他的コマンドを範疇化して格納することにより２段階検索（two-tier search）を実現してもよい。この具体例では、排他的コマンドの数は、さらなる範疇化を必要としない程度に十分少ないものである。これは、新たな排他的ホストコマンドが以前に受信された排他的コマンドを無条件にキャンセルするためである。続いて、ステップ１９６において、有効な排他的コマンドフラグが設定され、処理が終了する。
【００４９】
上述のように、ＤＲＡＭトリック再生コマンドバッファ７０に排他的コマンドを格納し、有効な排他的コマンドフラグを設定することにより、状態遷移ハンドラ８０は、次の水平ブランキング期間中に、実際にそのコマンドを実行する。
【００５０】
ステップ１９２において、ホストコマンドレジスタ内に格納されているホストコマンドが上述した排他的コマンドではなく、非排他的コマンドであると判定された場合、処理は、ステップ１９８に進む。
【００５１】
コマンドマネージャ７８は、非排他的コマンドに関するあらゆる処理に先行して、非排他的コマンドバッファ（Ｆｉｇ．３）が一杯の状態であるか否かを判定する。この具体例では、この判定は、バッファフルフラグ（buffer full flag）を読み出すことにより実現される。後述するように、コマンドマネージャ７８は、非排他的コマンドを非排他的コマンドバッファに格納する際、この格納場所がバッファの最後であるか否かを判定し、格納場所がバッファの最後である場合、このバッファフルプラグを設定する。非排他的コマンドがこのバッファから削除されると、このバッファフルプラグはクリアされる。
【００５２】
非排他的コマンドバッファが一杯の状態である場合、コマンドマネージャ７８は、ステップ２００において、ホストコマンドの処理又は受理を拒絶し、これにより以前に受信している非排他的コマンドが失われることを回避する。この具体例では、この処理は、サブルーチンの最後に移行してデフォルト処理に戻る（ステップ２０１）ことにより実行される。この処理により、コマンドはホストに受理されないので、ホストは、再びこのコマンドを送出する。次のコマンドマネージャ７８の初期化中に、非排他的コマンドがスケジュール通りに実行され、バッファから除去されれば、コマンドを格納する領域が確保される。
【００５３】
また、非排他的コマンドバッファが一杯ではない場合、処理は、ステップ２０２に進み、非排他的コマンドは、非排他的コマンドバッファに格納される。上述のように、この具体例では、この非排他的コマンドバッファは、８つのコマンドを格納できるバッファである。コマンドが格納されてこのバッファが一杯になると、上述のように、ホストコマンドバッファフルフラグが設定される。
【００５４】
処理は、任意的なステップであるステップ２０４に進み、ここでは非排他的コマンドバッファ内の非排他的コマンドを所定の優先基準に基づいてソートする。デフォルトの状態では、ソートを行わず、格納された順にコマンドを実行する（first in, first out）。続いて、コマンドマネージャ７８は、タスクをスケジューリングし、バッファリングされた非排他的コマンドのさらなる処理を実行する（ステップ２０５）。これにより、コマンドマネージャ７８の処理が完了する（ステップ２０１）。
【００５５】
Ｆｉｇ．１２Ａに示すステップ２０５では、タスクがスケジューリングされ、ＤＲＡＭホストコマンドバッファ５４の第１のエントリに格納されている非排他的コマンドは、システムコマンド１（system commands 1）、システムコマンド２（system commands 2）、システムコマンド３（system commands 3）、サブピクチャコマンド（sub-picture commands）、オンスクリーンディスプレイコマンド（on screen display commands）、ビデオコマンド１（video commands 1）、ビデオコマンド２（video commands 2）、オーディオコマンド１（audio commands 1）、オーディオコマンド２（audio commands 2）、ビデオデコードコマンド（video decode commands）、ビデオ表示コマンド（video display commands）、オーディオミクロコマンド（audio micro commands）、ジャケットピクチャ表示コマンド（jacket picture display commands）、デジタルビデオ放送コマンド（digital video broadcast (DSS) commands）の非排他的範疇のうちのいずれかに範疇化される（ステップ２０６）。これら範疇は、それぞれコマンド１０の特定の数値的範囲に関連付けられている。すなわち、コマンドを識別するために、コマンドＩＤが各範疇の数値的範囲と比較される。コマンドＩＤがある数値的範囲内にある場合、そのコマンドは、その範囲に関連付けられた範疇に属するものと判定される。
【００５６】
コマンドが範疇化されると、非排他的コマンド用のコマンドＩＤは、ステップ２０８において、その範疇内の各コマンドのコマンドＩＤと比較され、ステップ２１０において、このコマンドは、実行のためにスケジューリングされる。
【００５７】
ステップ２０８及びステップ２１０における検索ツリー処理（search tree approach）により、時間的観点からも記憶容量の観点からも処理を効率的に行うことができる。グループ化により、非常駐ＲＩＳＣ命令５２からＮＲコード領域３４により小さなファイルをスワップすることができる。ＲＩＳＣ ＣＰＵ１２は、特定の命令を検出するために、このより小さなファイルのみを検索すればよい。さらに、これら範疇内の特定のコマンド用のコードが共有されているため、効率的な設計及び効率的なコードサイズを実現できる。
【００５８】
ステップ２１０において、非排他的コマンドが実行のためにスケジューリングされると、必要に応じて、ホストプロセッサ３９に対し、割込メッセージにより、ホストコマンドを実行したことを示す肯定応答が供給される。
【００５９】
この具体例においては、この処理は、ホストコマンド内のフラグを読み取り、ホストプロセッサ３９が肯定応答を要求しているか否かを判定して行われる。肯定応答が要求されている場合、処理はステップ２１４に進み、実行されたホストコマンドをコマンド実行完了バッファ７４に格納し、ホストプロセッサ３９への割込信号が発生される。肯定応答が要求されている場合もされていない場合も、処理はステップ２１６に進み、ここで実行コマンドカウンタ２０がインクリメントされる。
【００６０】
非排他的コマンド解読タスクは、ＤＲＡＭホストコマンドバッファ５４内にさらなる非排他的タスクが存在する場合、自らを再びスケジューリングする（ステップ２１７）。
【００６１】
Ｆｉｇ．１３Ａ〜Ｆｉｇ．１３Ｈ及びＦｉｇ．１４を用いて、トリック再生処理状態装置（trick play processing state machine）の動作を説明する。まず、Ｆｉｇ．１３Ａを用いて、「再生準備」排他的コマンドの解読処理（ステップ１５６）から始まる処理を詳細に説明する。「再生準備」コマンドは、ＡＳＩＣに対し、内部状態を準備させ、ＤＲＡＭバッファに対し、ビデオデータのデコード及び表示を開始することを命令する。通常、「再生準備」コマンドは、例えば、ＡＳＩＣが組み込まれた装置に電源が挿入されたときに行われるＡＳＩＣの包括的なリセットの一部として実行される。
【００６２】
「再生準備」コマンドの処理を開始するために、トリック再生処理状態装置の現在の状態が評価される（ステップ２５０）。現在の状態が停止（STOP）又は一時停止（PAUSE）でない場合、装置は、既にビデオデータのデコード及び表示を準備している状態にある。この場合、有効な排他的コマンドフラグがクリアされ（ステップ２５２）、現在の状態用のデフォルト処理が次のフィールドに対して実行される。これにより、再生準備コマンドの実行が完了する（ステップ２５４）。
【００６３】
トリック再生処理状態装置の現在の状態が停止又は一時停止である場合、「再生準備」フラグの現在の状態が評価される（ステップ２５６）。このフラグは、「再生準備」排他的コマンドの実行が成功した場合に常に有効に設定される。このフラグが設定されると、再生準備コマンドを再び実行する必要はなく、処理はステップ２５２に進み、有効な排他的コマンドフラグがクリアされ、処理が終了する。
【００６４】
現在の状態が停止又は一時停止であり、「再生準備」フラグが設定されていない場合、再生準備コマンドの処理が開始される。ステップ２５８において、トリック再生カウンタがデクリメントされる。トリック再生カウンタは、包括的ソフトウェアリセットにより、ソフトウェアリセットが完了する以前に実行されたｆＩＤ遷移の数を示す例えば６等の所定の値に初期化される。トリック再生カウンタは、「再生準備」排他的コマンドの解読において、そのコマンドの実行を遅らせるために使用される。詳しくは、ステップ２６０において、カウンタの現在の値は、複数の処理へ分岐するために使用される。カウンタの値が４より大きい場合（ステップ２６２）、処理はさらなる動作を行うことなく完了する。この結果、次のｆＩＤへの移行の間、処理が状態遷移ハンドラ（Ｆｉｇ．９）に渡されたとき、有効な状態遷移フラグは設定されたままであり、処理は、Ｆｉｇ．１０に示すルーチンを介して、排他的コマンドの解読を開始する。これにより、Ｆｉｇ．１３Ａに示す「再生準備解読」ルーチンが再実行され、処理は、再びステップ２５０、ステップ２５６及びステップ２５８に進む。このとき、後続するｆＩＤ遷移の間の後続する各ステップを介して、トリック再生カウンタは、ステップ２５８においてデクリメントされる。
【００６５】
そして、ステップ２６０において、トリック再生カウンタの値が３になると、処理はステップ２６６に進み、ＡＳＩＣのＤＲＡＭバッファ内の第１のＭＰＥＧグループオブピクチャ（group of pictures：以下、ＧＯＰという。）のＭＰＥＧヘッダが解読される。これらヘッダが解読されると、処理は完了する。
【００６６】
「再生準備」処理ルーチンの次のパスでは、トリック再生カウンタの値は２となり、このとき、処理は、ステップ２６０からステップ２６８に進み、ここで、処理はＡＳＩＣのＤＲＡＭバッファ内のＭＰＥＧ ＧＯＰの第１表示ピクチャ（first presentable picture：以下、ＦＰＰという。）の位置を検出する。この処理では、バッファ内の第１のＧＯＰの最初にＩ参照フレームが存在しない場合、その第１のＧＯＰの最初に位置するＢフレームをスキップする。ＦＰＰの位置を検出した後、ＡＳＩＣのデコードエンジン（decoding engine）は、ＤＲＡＭバッファ内のＭＰＥＧ ＧＯＰのＦＰＰのスライスに対するスライスデコード処理（slice decoding）を開始する（ステップ２７０）。このデコードの後、処理は完了する。
【００６７】
「再生準備」処理ルーチンの次のパスでは、トリック再生カウンタの値は１となり、このとき、処理は、さらなる動作を行うことなく、処理の最初に戻る。
【００６８】
「再生準備」処理ルーチンの最後のパスでは、トリック再生カウンタの値は０となり、処理はステップ２７２に進み、ＡＳＩＣは、ホストがＡＳＩＣに対してオーディオ出力をディスエーブルするよう（非排他的コマンドにより）命令しているか否かを判定する。このような命令がない場合、処理は、ステップ２７４に進み、オーディオ出力をイネーブルする。ステップ２７２又はステップ２７４の後、処理は、ステップ２７６に進み、「再生準備」フラグが設定され、続いてステップ２７８において、有効な排他的コマンドフラグがクリアされ、現在の状態に対するデフォルト処理が実行できる状態となる。次に、ステップ２８０において、「再生準備」コマンドに対する肯定応答がホストに対して供給され、これによりホストは、コマンドが無事に実行され、ＡＳＩＣが再生の準備を完了したことを確認する。ステップ２８２において、トリック再生処理状態装置は、一時停止状態に遷移し、再生を準備する。この処理により、「再生準備」コマンド処理は完了する（ステップ２５４）。
【００６９】
Ｆｉｇ．１３Ｂは、「再生」排他的コマンドの処理及びトリック再生処理状態装置の再生状態におけるデフォルト処理を説明するフローチャートである。新たな「再生」排他的コマンドが処理されると（ステップ１５７）、適切な動作を行うために、トリック再生処理状態装置の現在の状態が評価される。トリック再生処理状態装置の現在の状態が早送り再生（ＦＦ）、逆方向早送り再生（ＦＲ）、逆方向デコード（ＲＤ）である場合、再生状態への遷移は許可されない。したがって、これらの場合、有効な排他的コマンドフラグはクリアされ（ステップ２９０）、トリック再生処理状態装置は、「再生」コマンドを無視し、このコマンドに関する肯定応答をホストに供給しない。ここで、処理は終了する（ステップ２９１）。
【００７０】
一方、トリック再生処理状態装置の現在の状態がスロー再生（ＳＬＦ）である場合、現在のフィールドＩＤ（ｆＩＤ）が確認され（ステップ２９２）、この時点でスロー再生（ＳＬＦ）から再生（ＰＬＡＹ）への遷移が適切であるか否かが判定される。後述するように、ある状態から他の状態への遷移は、フィールド１（ボトムフィールド）が現在表示されており、状態遷移がフィールド０（トップフィールド）から開始できる場合にのみ許可される。このような制限を設けることにより、常にトップフィールドが偶数走査線上に表示され、ボトムフィールドが奇数走査線上に表示される。このため、ステップ２９２において、ｆＩＤが１である場合、処理はステップ２９４に進み、トリック再生処理状態装置は、再生状態に遷移し、ステップ２９６において、有効な排他的コマンドフラグがクリアされる。続いて、ステップ２９８において、「再生」トリック再生コマンドの実行に対する肯定応答がホストに供給され、ホストは、コマンドが無事に実行されたことを確認する。そして、ステップ３００において、デコードサブルーチンが呼び出され、次のフィールドがデコードされる。
【００７１】
スロー再生状態から再生状態への遷移を行うとき、ステップ２９２においてｆＩＤが０であると判定された場合、再生状態への遷移は１フィールド期間分遅延される。この場合、処理はステップ２９４に進み、フラグがチェックされ、トリック再生処理状態装置がスロー再生状態の処理の一部としてフレームをデコードしている最中であるか否かが判定される。後述するように、スロー再生状態では、新たなフレームが周期的にデコード及び表示され、これらの処理の間、現在のフレームが繰り返し表示される。スロー再生状態において、新たなフレームをデコードしている間に状態遷移コマンドが受信されると、状態遷移ハンドラは、スロー再生状態から遷移する前に新たなフレームのデコードを完了させる必要がある。この処理を確実に行うために、スロー再生状態又は他の類似する状態において新たなフレームがデコードされているとき、トリック再生処理状態装置が新たなフレームのデコードを行っている最中であることを示すフラグを設定する。ステップ３０２においては、このフラグに基づいて、新たなフレームが現在デコード処理されているか否かに関する判定が行われる。ここで、新たなフレームがデコードされていない場合、現在のフィールドに対する処理が終了する（ステップ２９１）。なお、この具体例においては、有効な排他的コマンドフラグはクリアされず、したがって、図１３Ｂに示す「再生」トリック再生コマンドハンドラは、次のフィールドにおいて再実行され、このときｆＩＤは１となり、再生状態への状態遷移が実行される。
【００７２】
ステップ２９６において、トリック再生処理状態装置がスロー再生状態における新たなフレームをデコード中であることを示すフラグが設定されている場合、処理は、ステップ３０４及び３００に進む。ステップ３０４では、フラグはクリアされ、スロー再生状態における新たなフレームのデコード処理状態が終了したことが示される。続いて、ステップ３００において、スロー再生状態における新たなフレームのデコードを実行するために、デコードサブルーチンが呼び出される。ステップ３００が実行されると、処理は終了する（ステップ２９１）。また、ここでも有効な状態遷移フラグはクリアされず、したがって、Ｆｉｇ．１３Ｂに示す「再生」トリックコマンドハンドラは、次のフィールドにおいて再実行され、このときｆＩＤは１となり、再生状態への状態遷移が実行される。
【００７３】
「再生」トリック再生コマンドが供給されたとき、トリック再生処理状態装置が停止（ＳＴＯＰ）又は一時停止（ＰＡＵＳＥ）状態にある場合、処理はステップ３０６に進む。ステップ３０６では、再生準備フラグの状態が確認される。通常、再生準備フラグは設定されているが、ここで再生準備フラグが設定されていない場合、再生コマンドは無視され、処理は直ちに戻される（ステップ２９１）。一方、再生準備フラグが設定されている場合、処理はステップ３０８に進み、現在のｆＩＤが確認される。現在のｆＩＤが０である場合、上述した理由により、再生状態への状態遷移は、１フィールド期間分遅延される。この場合、処理は、直ちに終了する（ステップ２９１）。一方、現在のｆＩＤが１である場合、処理は、ステップ２９４、ステップ２９６及びステップ２９８に進み、上述のように、トリック再生処理状態装置は、再生状態に入り、有効な排他的コマンドフラグをクリアし、コマンドの実行に関する肯定応答をホストに供給し、デコードサブルーチンを呼び出して、再生状態におけるフレームのデコード及び表示を開始する。
【００７４】
「再生」トリック再生コマンドが供給されたときにトリック再生処理状態装置が再生状態にある場合、あるいはトリック再生コマンドが供給されず、デフォルトで再生状態が実行されている場合（ステップ１８１）、処理は直接ステップ３００に進み、デコードサブルーチンが呼び出され、新たなビデオフィールドがデコードされ、表示される。すなわち、再生状態への移行が成功した後、各ｆＩＤに対してデコードサブルーチンが呼び出され、トリック再生ハンドラの処理が終了し、これにより新たなフレームが順次継続的にデコードされ、表示される。
【００７５】
Ｆｉｇ．１３Ｃを用いて、一時停止（ＰＡＵＳＥ）トリック再生状態のためのトリック再生処理について説明する。新たな「一時停止」トリック再生コマンドが供給されると、処理はステップ１５８からステップ３２０に進み、現在のトリック再生状態が評価される。現在のトリック再生状態が再生（ＰＬＡＹ）である場合、ステップ３２２においてｆＩＤが確認され、一時停止状態への遷移が適切であるか否かが判定される。上述のように、ｆＩＤが０である場合、ボトムフレームが現在表示されており、一時停止状態への遷移は、次の１フィールドがデコード及び表示されるまで待機する必要がある。したがって、この場合、処理はステップ３２２からステップ３２４に進み、ここでデコードサブルーチンを呼び出し、ボトムフィールドをデコード及び表示する。デコードサブルーチンを呼び出した後、処理は、ステップ３２６に進み、トリック再生処理が完了する。この状況では、有効な排他的コマンドフラグはクリアされず、したがって、次のｆＩＤの遷移において、処理は一時停止トリック再生ハンドラに戻り、ステップ３２０及びステップ３２２の処理を繰り返す。
【００７６】
また、ステップ３２２において、ｆＩＤが１である場合、現在の再生状態から一時停止状態への遷移が適切であると判定される。この場合、処理は、ステップ３２２からステップ３２８に進み、一時停止状態への遷移が実行される。続いて、ステップ３３０において、「一時停止」トリック再生コマンドに関する肯定応答がホストに供給され、ステップ３３４において、有効な排他的コマンドフラグがクリアされる。この処理の後、一時停止状態への遷移が完了し、トリック再生ハンドラが終了される（ステップ３２６）。
【００７７】
停止状態（ＳＴＯＰ）状態では、フレームは表示されていないため、停止状態から一時停止状態への遷移は、ｆＩＤの値に関わらず許可される。したがって、「一時停止」排他的コマンドが供給されたときに、現在の状態が停止である場合、Ｆｉｇ．１３Ｃに示すトリック再生状態遷移ハンドラは、上述したステップ３２８、ステップ３３０、ステップ３３４を直接実行し、一時停止状態への遷移が実行され、「一時停止」トリック再生コマンドに関する肯定応答がホストに供給される。
【００７８】
逆方向デコード（ＲＤ）状態から一時停止状態への遷移は、ｆＩＤが０である場合にのみ許可される。すなわち、「一時停止」トリック再生コマンドが供給されたとき、現在の状態が逆方向デコード状態である場合、処理はステップ３３６に進む。ステップ３３６において、ｆＩＤが０である場合、状態遷移は、１フィールド先でなければ行うことができない。この場合、処理はステップ３２６に進み、Ｆｉｇ．１３Ｃに示すトリック再生ハンドラが終了する。なお、逆方向デコード状態から一時停止状態への遷移は、ｆＩＤが０であってもデコードサブルーチンを呼び出さないという点で、再生状態からの遷移と異なっている。逆方向デコード状態では、後述するように、フレームのデコードは、状態遷移ハンドラからの個別の独立したタスクにより処理されるので、各ｆＩＤ毎にデコードサブルーチンを呼び出す必要はない。このため、ステップ３３６においてｆＩＤが０であり、その結果遷移を１フィールド遅延させなくてはならない場合であっても、逆方向デコード状態からの遷移の一部としてデコードハンドラを呼び出す必要はない。
【００７９】
ステップ３３６において、ｆＩＤが１であると判定された場合、逆方向デコード状態から一時停止再生状態への遷移を直ちに実行することができる。この場合、処理は、ステップ３３６からステップ３２８、ステップ３３０、ステップ３３４に直接進み、一時停止状態への遷移が実行され、「一時停止」トリック再生コマンドに関する肯定応答がホストに供給される。
【００８０】
ステップ３２０において、現在の状態が逆方向早送り再生（ＦＲ）、早送り再生（ＦＦ）、又はスロー再生（ＳＬＦ）であると判定された場合、一時停止状態への遷移処理は、ステップ３３８に進む。ステップ３３８では、ｆＩＤが１であるか否かが判定される。ｆＩＤが１である場合、一時停止状態への遷移を直ちに行うことができ、したがって、処理は、上述のように、ステップ３２８、ステップ３３０、ステップ３３４に直接進む。一方、ステップ３３８において、ｆＩＤが０であると判定された場合、一時停止状態への遷移は１フィールド分遅延させなくてはならない。この場合、処理は、ステップ３４０に進み、内部フラグを確認して、トリック再生処理状態装置が逆方向早送り再生、早送り再生、スロー再生のいずれかの処理の一部として新たなフレームをデコードしている最中であるか否かが判定される。上述し、さらに後に詳細に説明するように、逆方向早送り再生、早送り再生、スロー再生のいずれかの状態においては、新たなフレームが周期的にデコードされて出力され、これらの処理の間、以前にデコードされたフレームが繰り返し表示される。フラグは、これら各状態において、新たなフレームがデコードされていることを示すために設定される。これらいずれかの状態において、新たなフレームがデコードされている場合、デコードサブルーチンを呼び出して、一時停止状態への遷移より前に、このデコードを完了させる必要がある。したがって、ステップ３４０において、先行するスロー再生、早送り再生、逆方向早送り再生のいずれかの状態において、新たなフレームに対するデコードが行われている最中であると判定された場合、処理はステップ３２４に進み、デコードサブルーチンを呼び出し、処理が終了する（ステップ３２６）。一方、スロー再生、早送り再生、逆方向早送り再生のいずれかの状態において、新たなフレームのデコードが行われていない場合、処理はステップ３４０から直接ステップ３２６に進む。
【００８１】
一時停止状態に入ると、新たな排他的コマンドが供給されるまで、デフォルト処理が実行される。トリック再生処理状態装置が一時停止状態にある場合、新たなフレームはデコードされないため、一時停止状態のデフォルト処理（ステップ１８２）は、直接ステップ３２６に進み処理を終了する。
【００８２】
Ｆｉｇ．１３Ｄを用いて、「スロー再生」排他的コマンドによるトリック再生状態遷移について説明する。新たな「スロー再生」排他的コマンドが供給されると、処理は、ステップ１５９からステップ３５０に進む。スロー再生（ＳＬＦ）状態におけるデフォルト処理では、処理はステップ１８４からステップ３５０に進む。ステップ３５０において、現在の状態が判定され、次の適切な動作が選択される。現在の状態が停止（ＳＴＯＰ）、早送り再生（ＦＦ）、逆方向早送り再生（ＦＲ）、逆方向デコード（ＲＤ）のいずれかである場合、スロー再生状態への遷移は許可されない。この場合、処理は直接ステップ３５２に進み、Ｆｉｇ．１３Ｄに示す状態遷移ハンドラは終了する。
【００８３】
「スロー再生」排他的コマンドが供給されたとき、現在の状態が一時停止（ＰＡＵＳＥ）である場合、処理はステップ３５４に進み、現在のｆＩＤが判定される。上述のように、状態遷移は、ｆＩＤが１である場合にのみ許可される。したがって、ステップ３５４においてｆＩＤが０であると判定された場合、処理はステップ３５２に進み、終了する。一方、ステップ３５４において、ｆＩＤが１であると判定された場合、処理は、ステップ３５６に進み、トリック再生処理状態装置は、スロー再生状態に移行する。続いて、ステップ３５８において、後続するビデオフィールドに対しデフォルトの処理が実行されるよう、有効な排他的コマンドフラグがクリアされる。続いて、ステップ３６２において、「スロー再生」排他的コマンド内で識別される繰返し値（repeat value）がＡＳＩＣのメモリに格納される。この値は、後にスロー再生処理を実行する際の速度の決定に使用される。詳しくは、スロー再生状態では、フレームがデコードされ、デコードされたフレームが繰返し値により特定された回数繰り返し表示された後、新たなフレームがデコードされる。すなわち、繰返し値は、次のフレームがデコードされる前に、フィールドを繰り返して出力する回数を決定するものであり、望まれる再生速度に基づいて、１乃至１０以上の範囲で、通常偶数の値をとる。
【００８４】
スロー再生状態への遷移が行われると、まず、単一のフレームがデコードされ、このフレームが繰返し値により特定されている回数繰り返し表示される。すなわち、ステップ３６２に続いて、トリック再生状態装置は、ステップ３６４において、新たなフレームをデコードするスロー再生（ＳＬＦ−ＰＬＡＹ）状態に入る。続いて、ステップ３６６において、スロー再生状態の処理がフレームのデコード中であることを示すフラグが設定される。このフラグは、この状態遷移ハンドラ及び他の状態遷移ハンドラが状態遷移以前にフレームのデコード処理を確実に行うために使用する。続いて、処理はステップ３６７に進み、繰返しカウンタは、ステップ３６２において格納されたスロー再生コマンドに基づく繰返し値により初期化される。繰返しカウンタは、後に、現在のフレームを表示する回数を決定するために使用される。次に、ステップ３６８において、デコードサブルーチンが呼び出され、新たなフレームのデコードが開始される。これにより処理は終了する（ステップ３５２）。
【００８５】
再生（ＰＬＡＹ）状態において、「スロー再生」排他的コマンドが供給されると、一時停止（ＰＡＵＳＥ）状態の場合に類似する処理が行われる。すなわち、再生状態において、「スロー再生」排他的コマンドが供給されると、現在のｆＩＤの値が判定される。ｆＩＤが１である場合、直ちにスロー再生状態に遷移することができ、処理は、一時停止状態からスロー再生状態への遷移に関連して上述したステップ３５６〜ステップ３６８を実行する。一方、ｆＩＤが０である場合、再生状態からスロー再生状態への遷移は、１又は複数フィールド分待機する必要がある。この場合、処理はステップ３６８に進み、デコードサブルーチンが呼び出される。これにより、再生状態における現在のフレームのデコードが確実に実行される。ステップ３６８の後、処理は終了する（ステップ３５２）。
【００８６】
スロー再生状態において「スロー再生」排他的コマンドが供給された場合、又は、スロー再生状態におけるデフォルト処理を実行する場合、処理はステップ３７２に進み、有効な排他的コマンドフラグの値が判定される。デフォルト処理が実行されており、新たなスロー再生コマンドが供給されない場合、ステップ３７２において、有効な排他的コマンドフラグがクリアされ、処理はステップ３７４に進む。ステップ３７４では、上述のフラグに基づいて、スロー再生状態において新たなフレームがデコードされている最中であるか否かが判定される。新たなフレームがデコードされている場合、処理はステップ３７６に進み、デコードが既に処理中ではないことを示すためにフラグがクリアされ、続いてステップ３６８において、デコードルーチンを呼び出し、そのフレームのデコードを完了する。
【００８７】
ステップ３７４において、新たなフレームのデコードが行われていないと判定された場合、処理はステップ３７８に進み、上述の繰返しカウンタの値が０と比較される。繰返しカウンタの値が０に達している場合、新たなフレームのデコードが開始される。
【００８８】
ステップ３７８において、ステップカウンタが０ではない場合、処理はステップ３８０に進み、繰返しカウンタの値と、コマンドから得られた初期の繰返し値とを比較する。ステップ３８０において、カウンタの値が繰返し値に等しいと判定された場合、これは、カウンタ値がデクリメントされていない状態であるため、Ｆｉｇ．１３Ｄのサブルーチンにおける現在のパスがスロー再生状態に遷移した後のサブルーチンにおける最初のパスであることを示している。したがって、ステップ３８０において、繰返しカウンタの値が未だ初期値であると判定された場合、処理はステップ３８２に進み、ＡＳＩＣは、スロー再生一時停止状態（SLF-PAUSE sub-state）に入る。このスロー再生一時停止状態では、カウンタがデクリメントされて０になるまで、現在のフレームが繰り返し出力される。ステップ３８２の後、又はステップ３８０において繰返しカウンタの値が初期値とは異なる場合はステップ３８０から直接、処理は３８４に進み、繰返しカウンタの値がデクリメントされる。続いて、処理はステップ３５２に進み終了する。なお、この場合、新たなフレームはデコードされず、この結果、繰返しカウンタの値が０になるまで、同じフレームが繰り返し出力される。
【００８９】
ホストによるさらなる処理により、繰返しカウンタの値がデクリメントされて０になると、Ｆｉｇ．１３Ｄに示すサブルーチンの次のパスにおいて、処理はステップ３７８から上述したステップ３６４乃至ステップ３６７を実行し、他のフレームのデコードが開始される。
【００９０】
ステップ３７２において、トリック再生状態装置が既にスロー再生状態にある場合に、新たな「スロー再生」コマンドが供給されることもある。例えば、ホストが再生の速度を速くあるいは遅くするために繰返しカウンタの値を変更しようとすることがある。この場合、ステップ３７２において、有効な排他的コマンドフラグが設定される。このとき、処理はステップ３８５に進み、現在のｆＩＤが判定される。現在のｆＩＤが１である場合、新たな「スロー再生」コマンドは、直ちに実行され、処理は、上述したステップ３５６乃至ステップ３６８を実行し、ここで他の処理とともに、新たな「スロー再生」コマンドからの新たな繰返し値が格納され、新たなフレームのデコード処理を開始する。
【００９１】
ステップ３８５において、現在のｆＩＤが０である場合、新たな「スロー再生」コマンドは、直ちに処理できず、サブルーチンは、ステップ３８６に進み、上述のフラグがチェックされて、新たなフレームのデコード処理が行われている最中であるか否かが判定される。新たなフレームが現在デコードされている場合、処理はステップ３７６及びステップ３７８に進む。一方、新たなフレームが現在デコード処理されていない場合、処理は上述したステップ３７８に進み、繰返しカウンタの値が０に達しているか否かを判定し、繰返しカウンタの値が０に達している場合、新たなフレームのデコードを開始する。
【００９２】
Ｆｉｇ．１３Ｅを用いて、「早送り再生」排他的コマンドに対するトリック再生状態遷移について説明する。新たな「早送り再生」排他的コマンドが供給されると、処理はステップ１６０からステップ３９０に進む。ステップ３９０において、「早送り再生」コマンド内の参照フレームカウンタが評価され、「早送り再生」コマンドをどのように実行するかが判定される。早送り再生（ＦＦ）状態では、ＭＰＥＧビデオストリームにおける参照フレームがデコードされ、表示される。すなわち、各ＭＰＥＧビデオオブジェクトユニット（video object unit：以下、ＶＯＢＵという。）からの設定された数の参照フレームがデコードされ、処理は次のＶＯＢＵの参照フレームをスキップする。「早送り再生」コマンドとともに供給される参照フレームカウンタは、各ＶＯＢＵからデコードする参照フレームの数を特定するカウンタである。早送り再生状態は、特別な「ｎｏ−Ｂ」モードを有しており、このｎｏ−Ｂモードでは、各ＶＯＢＵからの各参照フレームがデコード及び表示される。「早送り再生」コマンド内の参照フレームカウンタの値が０である場合、早送り再生状態は、ｎｏ−Ｂモードに入る。
【００９３】
すなわち、ステップ３９０において、「早送り再生」コマンド内の参照フレームカウンタの値が０と比較され、ここで参照フレームカウンタの値が０であると判定された場合、ステップ３９１において、「ｎｏ−Ｂ」フラグが設定され、早送り再生状態は、「ｎｏ−Ｂ」モードに入る。一方、参照フレームカウンタの値が０以外の数値である場合、ステップ３９２において「ｎｏ−Ｂ」フラグがクリアされ、ステップ３９３において、現在のＶＯＢＵから出力される参照フレームの数をカウントする早送り再生カウンタ（FF counter）が０に初期化される（早送り再生カウンタは、「ｎｏ−Ｂ」モードでは使用されず、ステップ３９１以降では初期化されない）。
【００９４】
ステップ３９１又はステップ３９３の後、処理はステップ３９４に進み、現在の状態が判定され、次の適切なさらなる処理が選択される。早送り再生状態のデフォルト処理（ステップ１８３）は、直接ステップ３９４に進む。
【００９５】
現在の状態が再生（ＰＬＡＹ）、スロー再生（ＳＬＦ）、逆方向早送り再生（ＦＲ）、逆方向デコード（ＲＤ）のいずれかである場合、早送り再生（ＦＦ）状態からの遷移は許可されない。この場合、処理はステップ３９６に直接進み、Ｆｉｇ．１３Ｅに示す状態遷移ハンドラは終了する。
【００９６】
「早送り再生」排他的コマンドが供給されたときの現在の状態が停止（ＳＴＯＰ）又は一時停止（ＰＡＵＳＥ）である場合、処理はステップ３９８に進み、現在のｆＩＤが判定される。上述のように、状態遷移は、ｆＩＤが１の場合にのみ許可される。したがって、ステップ３９８において、ｆＩＤが０であると判定された場合、処理はステップ３９６に進み、終了する。一方、ステップ３９８においてｆＩＤが１であると判定された場合、処理はステップ４００に進み、有効な排他的コマンドがクリアされ、次のビデオフィールドに対し、デフォルト処理が実行される。次に、ステップ４０２において、トリック再生状態装置は早送り再生状態に遷移する。そして、ステップ４０４において、上述したフラグがリセットされ、フレームデコード処理が現在行われていないことが示される。続いて、ステップ４０６において、トリック再生カウンタの値が０に初期化され、このトリック再生カウンタは、後の早送り再生処理における速度の判定に使用される。詳しくは、早送り再生状態においては、参照フレームがデコードされ、このフレームは、「早送り再生」コマンドとともに受け取った繰返し値により特定された回数繰り返し表示され、この後、新たな参照フレームがデコードされる。繰返し値は、次のフレームをデコードする前にフィールドを繰り返し出力する回数を特定する値であり、望まれる早送り再生の速度に基づいて、１〜１０以上の範囲内で、通常偶数の値をとる。早送り再生状態に入ると、まず単一のフレームがデコードされ、続いて繰返し値により特定されている回数、そのフレームが繰り返し表示される。この処理を実現するために、トリック再生繰返しカウンタの値は０に初期化される。
【００９７】
ステップ３９４において、トリック再生処理状態装置が早送り再生状態にある場合は、処理はステップ４０８に進み、デフォルト処理を実行する。また、ステップ３９８乃至ステップ４０６における様々な設定の後、処理はステップ４０８に進む。ステップ４０８において、上述のフラグが確認され、状態装置が新たな参照フレームをデコード中であるか否かが判定される。上述のように、Ｆｉｇ．１３Ｅに示すサブルーチンの最初のパスのステップ４０４において、このフラグはクリアされ、さらに以前にデコードされた参照フレームが繰り返し出力されている間、後続するサブルーチンのパスにおいてもこのフラグはクリアさる。この場合、処理はステップ４１０に進む。
【００９８】
ステップ４１０において、トリック再生繰返しカウンタの現在の値が評価され、このトリック再生繰返しカウンタの値が０にデクリメントされているか否かが判定される。上述のように、Ｆｉｇ．１３Ｅのサブルーチンの第１のパスの間、このカウンタはステップ４０６において０にリセットされる。さらに、後続するパスにおいて、トリック再生繰返しカウンタは、以前にデコードされた参照フレームが要求された回数繰り返し出力された後に０になる。このとき、処理は、ステップ４１２に進む。
【００９９】
ステップ４１２において、新たな参照フレームのデコードが開始される。ここで、早送り再生状態においてフレームのデコード処理が進行中であるあることを示すフラグが設定される。続いて、ステップ４１４において、デコード処理が呼び出され、フレームに対するデコードが開始され、処理が終了する（ステップ３９６）。
【０１００】
新たな参照フレームのデコードが開始されると、次のフィールドを出力するために、処理はステップ４０８に戻る。このとき、ステップ４１２において設定されたフラグは、フレームのデコード処理が進行中であることを示す。したがって、処理はステップ４１６に進み、このフラグがリセットされ、デコードが完了したことが示される。続いて、処理はステップ４１８に進み、トリック再生繰返しカウンタが「早送り再生」コマンドにより供給された値により初期化され、これにより新たにデコードされたフレームを繰り返す回数が示される。続いて、ステップ４２０において、処理は、次の参照フレームにスキップするよう指示される。
【０１０１】
ステップ４２０において指示された処理は、現在のフレームの第２のフィールドのデコードが完了した後に開始される。すなわち、この処理は、まず、現在のＶＯＢＵからデコードされた参照フレームの数がステップ３９０において「早送り再生」コマンドから得られた参照フレームカウンタにより特定された参照フレームの数と等しいか否かを判定することにより、次の適切な参照フレームに移行する。この数が等しくない場合、又は「ｎｏ−Ｂ」フラグが設定されている場合、この処理は参照フレームを検出するまでＶＯＢＵ内のＢフレームをスキップする。この処理において、ＶＯＢＵの最後に到達した場合、又は現在のＶＯＢＵからデコードされた参照フレームの数が参照フレームカウンタにより特定された数と一致した場合、処理は次のＶＯＢＵに移り、Ｂフレームをスキップすることにより、次のＶＯＢＵ内の第１の参照フレームが検出される。
【０１０２】
ステップ４２０において上述の処理を開始した後、Ｆｉｇ．１３Ｅに示すサブルーチンは、ステップ４１４に進み、デコードルーチンが呼び出され、現在のフレームのボトムフィールドがデコードされる。
【０１０３】
上述の処理の後、早送り再生状態のデフォルト処理の間、処理は再びステップ４０８に進み、ここではフレームをデコード処理中ではないため、トリック再生カウンタの値は０ではなく、処理はステップ４０８及びステップ４１０からステップ４２２に進む。ステップ４２２において、トリック再生カウンタはデクリメントされ、処理が完了する。このステップ４０８からステップ４１０及びステップ４２２への処理は、トリック再生カウンタの値がデクリメントされて０になるまで繰り返され、トリック再生カウンタの値が０になると、処理は上述したステップ４０８からステップ４１０、ステップ４１２及びステップ４１４を実行し、続いて、次のフィールドに対してステップ４０８からステップ４１６、ステップ４１８、ステップ４２０及びステップ４１４が実行され、これによりトリック再生カウンタの値がリセットされ、新たな参照フレームがデコードされる。
【０１０４】
なお、「早送り再生」排他的コマンドが早送り再生状態のときに供給された場合、処理はステップ３９０に進み、新たな「早送り再生」コマンドからの参照フレームカウンタの値が０と比較され、格納される。同時に、「早送り再生」コマンドからのトリック再生繰返しカウンタ用の初期値も格納される。これにより、ホストは、新たな「早送り再生」コマンドを用いてカウンタ値を変更し、より速い又はより遅い再生を実現することができる。
【０１０５】
Ｆｉｇ．１３Ｆを用いて、「コマ送り再生」排他的コマンドによるトリック再生状態遷移について説明する。「コマ送り再生」コマンドは、トリック再生状態装置が一時停止（ＰＡＵＳＥ）状態にある場合以外は、一時停止コマンドとして解釈される。また、トリック再生状態装置が一時停止状態にある場合に「コマ送り再生」コマンドが供給されると、順方向に１つのフレームがデコードされる。
【０１０６】
すなわち、「コマ送り再生」コマンドが解読されると（ステップ１６２）、ステップ４３０において、現在の状態が一時停止状態であるか否かの判定が行われる。現在の状態が一時停止状態ではない場合、処理はステップ１５８に進み、「コマ送り再生コマンド」を「一時停止」コマンドとして解釈する（Ｆｉｇ．１３Ｃ参照）。
【０１０７】
一方、「コマ送り再生」コマンドが供給されたときに、現在の状態が「一時停止」状態である場合、処理はステップ４３０からステップ４３２に進む。ステップ４３２では、現在のｆＩＤが評価される。現在のｆＩＤが０である場合、状態遷移は許可されず、サブルーチンは終了する（ステップ４３８）。この結果、フレームはデコードされず、状態装置は、次の１以上のフィールドに対応する期間中、一時停止状態に留まる。この処理の後、次のフィールドにおいて、再びＦｉｇ．１３Ｆのサブルーチンが開始されると、このとき、ｆＩＤは１となり、状態遷移が許可される。この場合、処理はステップ４３２からステップ４３４に進み、状態装置は再生「ＰＬＡＹ」状態に遷移する。次に、ステップ４３６において、デコードサブルーチンが呼び出され、次のフレームのトップフィールドがデコードされ、Ｆｉｇ．１３Ｆに示すサブルーチンは終了する。なお、この処理では、有効な排他的コマンドフラグは変更されない。このため、次のフィールド（ｆＩＤ＝０）においては、処理はステップ１６２及びＦｉｇ．１３Ｆのサブルーチンに再び進む。このとき、ステップ４３０において、現在の状態は「再生」状態であるため、処理はステップ１５８からＦｉｇ．１３Ｃに示すサブルーチンに進む。Ｆｉｇ．１３Ｃに関する上述の説明から明らかなように、このような状況では、処理はステップ３２０、ステップ３２２、ステップ３２４、及びステップ３２６に進み、ここでデコードサブルーチンが呼び出され、新たなフレームのボトムフィールドがデコードされる。ここでも、有効な排他的コマンドフラグは変更されない。この結果、次のフィールド（ｆＩＤ＝１）では、処理はステップ１６２及びＦｉｇ．１３Ｆに示すサブルーチンに進む。このとき、ステップ４３０において、現在の状態は再生状態であると判定され、したがって、処理はステップ１５８からＦｉｇ．１３Ｃに示すサブルーチンに進む。Ｆｉｇ．１３Ｃに関する上述の説明から明らかなように、このような状況では、処理は、ステップ３２０、ステップ３２２、ステップ３２４、及びステップ３２６に進み、ここでデコードサブルーチンが呼び出され、新たなフレームのボトムフィールドがデコードされる。ここでも、有効な排他的コマンドフラグは変更されない。この結果、次のフィールド（ｆＩＤ＝１）では、処理はステップ１６２及びＦｉｇ．１３Ｆに示すサブルーチンに進む。ステップ４３０において、現在の状態は再生状態であると判定され、したがって、処理はステップ１５８からＦｉｇ．１３Ｃに示すサブルーチンに進む。Ｆｉｇ．１３Ｃに関する上述の説明から明らかなように、このような状況では、処理は、ステップ３２０、ステップ３２２、ステップ３２８、ステップ３３０、ステップ３３４及びステップ３２６に進み、ここでデコードサブルーチンが呼び出され、新たなフレームのボトムフィールドがデコードされる。さらに有効な排他的コマンドフラグがクリアされ、状態装置は一時停止状態に戻る。このような処理により、単一のフレームが順方向にデコードされ、出力され、状態装置が一時停止状態から再生状態に遷移し、再び一時停止状態に戻る。
【０１０８】
Ｆｉｇ．１３Ｇを用いて「逆方向早送り再生」排他的コマンドによるトリック再生状態遷移について説明する。新たな「逆方向早送り再生」排他的コマンドが供給されると、処理はステップ１６３からステップ４４０に進む。ステップ４４０において、「逆方向早送り再生」コマンド内の参照フレームカウンタが読み出され、「逆方向早送り再生」コマンドをどのように実行するかが判定される。逆方向早送り再生状態においては、ＭＰＥＧビデオストリームの参照フレームがデコードされ、表示される。ＭＰＥＧ ＶＯＢＵ内の所定数の参照フレームがデコードされ、処理は次のＶＯＢＵ内の参照フレームスキップする。「逆方向早送り再生」コマンドとともに供給される参照フレームカウンタは、各ＶＯＢＵ内からデコードされる参照フレームの数を特定する。
【０１０９】
ステップ４４０に続いて、処理はステップ４４２に進み、現在の状態が判定され、次の適切な処理が選択される。逆方向早送り再生状態のデフォルト処理（１８５）は、ステップ４２２に直接進む。
【０１１０】
現在の状態が再生（ＰＬＡＹ）、スロー再生（ＳＬＦ）、早送り再生（ＦＦ）、逆方向デコード（ＲＤ）である場合、逆方向早送り再生状態への遷移は許可されない。この場合、処理は直接ステップ４４４に進み、Ｆｉｇ．１３Ｇに示す状態遷移ハンドラは終了する。
【０１１１】
現在の状態が停止（ＳＴＯＰ）又は一時停止（ＰＡＵＳＥ）である場合、「逆方向早送り再生」排他的コマンドは受理され、処理はステップ４４６に進み、フラグが確認されて、逆方向デコードタスクの初期バッファリング処理（initial buffering operation）が実行中であるか否かが判定される。「逆方向早送り再生」状態では、逆方向デコードタスクが起動され、この逆方向デコードタスクは、ビデオデータを連続的にデコードし、デコードしたビデオデータを後に出力するためにバッファリングする。このタスクは、逆方向早送り再生再生の開始に先行してデコードされた参照フレームの初期バッファリングを実行する。
【０１１２】
逆方向デコードバッファリングタスクが開始されていない場合、処理はステップ４４６からステップ４４８に進み、現在のｆＩＤが判定される。上述のように、状態遷移はｆＩＤが１の場合にのみ許可される。ステップ４４８において、したがって、ｆＩＤが０であると判定された場合、処理はステップ４４４に進み、終了する。一方、ステップ４４８において、ｆＩＤが１であると判定された場合、処理はステップ４５０に進み、初期逆方向デコードバッファリング処理が実行中であることを示すフラグが設定される。ステップ４５０に続いて、あるいは、逆方向デコードバッファリングが既に起動されていた場合はステップ４４６から直接、処理はステップ４５２に進み、逆方向デコードバッファリングタスクにより、既に５つの参照フレームがデコードされ、バッファリングされているか否かが判定される。初期の処理では、５つの参照フレームはデコードされておらず、処理はステップ４５４に進み、逆方向デコードバッファリングが開始され、サブルーチンは終了する（ステップ４４４）。
【０１１３】
なお、ステップ４５２からステップ４４４までの処理において、状態は変化せず、有効な排他的コマンドフラグはクリアされない。したがって、次の幾つかのフィールドにおいて、処理は再びＦｉｇ．１３Ｇに示すサブルーチンに進み、ステップ４４２，ステップ４４６、ステップ４５２及びステップ４５４を順次実行して、５つの参照フレームがデコード及びバッファリングされるまで、逆方向デコードバッファリングを繰り返し実行する。そして、５つの参照フレームがデコード及びバッファリングされると、処理はステップ４５２からステップ４５６に進む。
【０１１４】
ステップ４５６において、トリック再生カウンタは、０に初期化され、後に逆方向早送り再生処理の速度の決定に使用される。すなわち、逆方向早送り再生状態においては、参照フレームがデコードされ、このフレームは、「逆方向早送り再生」コマンドとともに供給された繰返し値により特定される回数繰り返し表示され、この後新たな参照フレームがデコードされる。繰返し値は、次のフレームがデコードされるまでに繰返しフィールドが出力される回数を特定する値であり、望まれる逆方向早送り再生再生の速度に基づいて、通常、１乃至１０以上の範囲内の偶数の値をとる。早送り再生状態に遷移すると、まず単一のフレームがデコードされ、このフレームは繰返し値により特定された回数繰り返し表示される。この処理を実現するために、トリック再生繰返しカウンタの値は０に初期化される。
【０１１５】
ステップ４５６に続いて、処理はステップ４５８に進み、ステップ４４６において確認されたフラグがクリアされ、初期逆方向デコードバッファリングが完了したことが示される。同時に、ステップ４５８において、フラグ（上述）がリセットされ、フレームデコードが現在進行中でないことが示される。続いて、ステップ４６０において、有効な排他的コマンドフラグがクリアされ、後続するビデオフィールドに対するデフォルト処理が実行される。次に、ステップ４６２において、「逆方向早送り再生」コマンドに対する肯定応答がホストに供給され、逆方向早送り再生再生が開始されることが通知される。続いて、ステップ４６４において、トリック再生状態装置は、逆方向早送り再生状態に遷移する。処理は、ステップ４６６に進み、逆方向早送り再生状態におけるデフォルト処理を実行する。なお、ステップ４４２において、状態装置が逆方向早送り再生状態にあると判定された場合も、処理はステップ４６６に進みデフォルト処理を実行する。したがって、新たな排他的コマンドが供給されない限り、この時点からＦｉｇ．１３Ｇに示す状態遷移サブルーチンにおける処理は、ステップ４６６に進む。
【０１１６】
ステップ４６６において、上述のフラグが判定され、状態装置が新たな参照フレームをデコード中であるか否かが判定される。上述のように、Ｆｉｇ．１３Ｇに示すサブルーチンの初期パスにおけるステップ４５８において、クリアされる。このフラグは、このサブルーチンの後続するパスにおいて、以前にデコードされた参照フレームが繰り返し出力されている間にもクリアされる。この状況では、処理はステップ４６８に進む。
【０１１７】
ステップ４６８において、トリック再生繰返しカウンタの現在の値が評価され、この値がデクリメントされて０になっているか否かが判定される。上述のように、Ｆｉｇ．１３Ｇに示すサブルーチンの初期パスでは、このカウンタは、ステップ４５６において０にリセットされる。さらに、後続するパスでは、このトリック再生繰返しカウンタの値は、以前にデコードされた参照フレームが要求された回数繰り返し出力された後に０に達する。この場合、処理はステップ４７０に進む。
【０１１８】
ステップ４７０では、新たな参照フレームのデコードが開始される。ここでは、逆方向早送り再生状態の処理がフレームのデコード処理の最中であることを示すフラグが設定される。続いて、ステップ４７２において、デコード処理が呼び出され、フレームのデコードが開始される。続いて、逆方向デコードバッファリング処理が再開され（ステップ４５４）、処理が終了する（ステップ４４４）。
【０１１９】
次のフィールド出力のための新たな参照フレームのデコードが開始されると、処理はステップ４６６に戻る。このとき、ステップ４７０において設定されたフラグは、フレームデコード処理中であることを示す。したがって、処理はステップ４７４に進み、フラグがリセットされ、デコードが完了したことが示される。続いて、処理はステップ４７６に進み、トリック再生繰返しカウンタは、「逆方向早送り再生」コマンドにより供給された値により初期化され、新たにデコードされたフレームを繰り返す回数が示される。続いて、ステップ４７２において、デコード処理が呼び出され、フレームのデコードが開始される。次に、ステップ４５４において、逆方向デコードバッファリング処理が再開され、処理が終了する（ステップ４４４）。
【０１２０】
ステップ４７２により指示された処理は、現在のフレームにおける第２のフィールドのデコードが完了した後に開始される。すなわち、まず、現在のＶＯＢＵからデコードされた参照フレームの数がステップ４４０において「逆方向早送り再生」コマンドから得られた参照フレームの数に一致するか否かを判定することにより、適切な次の参照フレームに処理を移行する。ここで参照フレームの数が一致しない場合、参照フレームを検出するまで処理はＶＯＢＵ内のＢフレームをスキップする。この処理において、ＶＯＢＵの最後に到達した場合、又は現在のＶＯＢＵからデコードされた参照フレームの数が参照フレームカウンタにより特定されている数に一致した場合、次のＶＯＢＵが処理され、Ｂフレームをスキップすることにより、次のＶＯＢＵ内の最初の参照フレームの位置が検出される。
【０１２１】
ステップ４２０における上述の処理を開始した後、Ｆｉｇ．１３Ｇに示すサブルーチンは、ステップ４１４に進み、デコードルーチンが呼び出され、現在のフレームのボトムフィールドがデコードされる。
【０１２２】
上述の処理の後、逆方向早送り再生状態のデフォルト処理の間、処理は再びステップ４６６に進み、ここでフレームのデコード処理は進行中ではなく、トリック再生カウンタの値は０ではないため、処理は、ステップ４６６、ステップ４６８及びステップ４７８を実行する。ステップ４７８において、トリック再生カウンタはデクリメントされ、処理は終了する。このステップ４６６、ステップ４６８及びステップ４７８における処理は、トリック再生カウンタがデクリメントされて０に到達するまで繰り返され、トリック再生カウンタが０になると、上述のように、処理はステップ４６６からステップ４６８、ステップ４７０、ステップ４７２及びステップ４５４に進み、トリック再生カウンタがリセットされて、新たな参照フレームのデコードが開始される。
【０１２３】
なお、「逆方向早送り再生」排他的コマンドが逆方向早送り再生状態において供給された場合、処理はステップ４４０に進み、新たな「逆方向早送り再生」コマンドからの参照フレームカウンタの値が０と比較され、格納される。同時に、新たな「逆方向早送り再生」コマンドからのトリック再生繰返しカウンタ用の値も格納される。これにより、ホストは新たな「逆方向早送り再生」コマンドを用いて、カウンタ値を変更し、より速い又はより遅い逆方向再生を実現することができる。
【０１２４】
Ｆｉｇ．１３Ｈを用いて、「逆方向デコード」排他的コマンドについて説明する。まず、逆方向スロー再生及び逆方向コマ送り再生は、ホストが「逆方向デコード」排他的コマンドにより状態装置を逆方向デコード（ＲＤ）状態に遷移させた後に、ホストから供給される非排他的コマンドにより実現される。逆方向デコード状態では、ＡＳＩＣは、逆方向スロー又は逆方向コマ送りに対応する逆方向再生を実現できるように、ＭＰＥＧソースからのフレームを逆順にデコード及びバッファリングする。
【０１２５】
「逆方向デコード」排他的コマンドに対する処理（ステップ１６５）は、まず、ステップ４８０に進み、ここで状態装置の現在の状態が評価される。状態装置が現在早送り再生（ＦＦ）、逆方向早送り再生（ＦＲ）、スロー再生（ＳＬＦ）又は再生（ＰＬＡＹ）状態にある場合、逆方向デコード（ＲＤ）状態への遷移は許可されず、Ｆｉｇ．１３Ｈに示すサブルーチンは直ちに終了する（ステップ４８２）。
【０１２６】
一方、現在の状態が停止（ＳＴＯＰ）又は一時停止（ＰＡＵＳＥ）である場合、逆方向デコード（ＲＤ）状態への遷移は許可され、処理はステップ４８４に進み、ｆＩＤの現在の値が判定される。上述のように、ｆＩＤが０である場合、状態遷移は許可されず、したがって、この場合Ｆｉｇ．１３Ｈに示すサブルーチンは直ちに終了する（ステップ４８２）。次のフィールドにおいて、又はｆＩＤが１である場合、処理はステップ４８４からステップ４８６に進み、状態装置は、逆方向デコード状態に遷移し、次にステップ４８８において、有効な排他的コマンドがクリアされ、続いてステップ４９０において、逆方向デコード処理タスクをスケジューリングし、これにより、デコードされたフレームのバッファリングが開始される。これにより、「逆方向デコード」排他的コマンドの処理は終了する（ステップ４８２）。
【０１２７】
逆方向デコード状態では、デフォルト処理（ステップ１８６）が実行される。デフォルト処理では、ホストから独立して供給された非排他的コマンドによる指示に基づいて、ステップ４９２において、フレームは逆方向スロー再生又は逆方向コマ送り再生として、逆順に表示される。これによりデフォルト処理は終了する（ステップ４８２）。
【０１２８】
逆方向デコード状態において、新たな「逆方向デコード」コマンドが供給されることがある。この場合、ステップ４９４において、現在のｆＩＤの値が判定される。ｆＩＤが０である場合、Ｆｉｇ．１３Ｈに示すサブルーチンは直ちに終了する（ステップ４８２）。次のフィールドにおいて、又はｆＩＤが１である場合、処理はステップ４９４からステップ４９６に進み、ここで有効な非排他的コマンドがクリアされ、次にステップ４９８において逆方向デコード処理タスクがまだスケジューリングされていない場合、逆方向デコード処理タスクをスケジューリングする。続いて、処理はステップ４９２に進み、ホストから独立して供給された非排他的コマンドによる指示に基づいて、フレームは逆方向スロー再生又は逆方向コマ送り再生として、逆順に表示される。これによりデフォルト処理は終了する（ステップ４８２）。
【０１２９】
Ｆｉｇ．１４を用いて、ステップ１２４（Ｆｉｇ．９）の包括的処理におけるビデオデータのトップフィールド及びボトムフィールドの表示について説明する。状態によって、フィールドの表示の手法が異なるため、まず、ステップ５００において、状態装置の現在の状態を判定する。
【０１３０】
停止（ＳＴＯＰ）状態では、フィールドは表示されず、したがって処理は終了する（ステップ５０２）。
【０１３１】
再生（ＰＬＡＹ）状態では、標準の再生処理が実行され、すなわち、ｆＩＤが０の場合トップフィールドが表示され、ｆＩＤが１の場合ボトムフィールドが表示される。したがって、再生状態においては、処理はステップ５０４に進み、現在のｆＩＤの値が評価される。ｆＩＤが０の場合、処理はステップ５０６に進み、トップフィールドが表示される。一方、ｆＩＤが１の場合、処理はステップ５０８に進み、ボトムフィールドが表示される。
【０１３２】
一時停止（ＰＡＵＳＥ）又は逆方向デコード（ＲＤ）状態では、表示は単一のフレームで一時停止し、すなわち同一のフレームが繰り返し表示される。したがって、これらの状態では、フィールド又はフレーム静止モードがアクティブ化されているか否かが問題となる。フィールド静止モードがアクティブ化されている場合、ｆＩＤが０の場合もｆＩＤが１の場合もビデオデータのトップフィールドが表示される。この結果、出力解像度は低下するが、フィールド間に動きがある場合に生じる「にじみ（blur）」や「ちらつき（shimmer）」を回避できる。一方、フレーム静止モードがアクティブ化されている場合、ｆＩＤが０のときはビデオデータのトップフィールドが表示され、ｆＩＤが１のときはビデオデータのボトムフィールドが表示される。この場合、出力解像度を向上させることができるが、フィールド間に動きがある場合、「にじみ（blur）」や「ちらつき（shimmer）」が生じる虞もある。したがって、一時停止又は逆方向デコード状態では、ステップ５１０において、ｆＩＤの値が評価される。ｆＩＤが０の場合、一時停止モードに関わらず、処理はステップ５０６に進み、トップフィールドが表示される。一方、ｆＩＤが１である場合、処理はステップ５１２に進み、一時停止モードに関する判定が行われる。現在の一時停止モードがフレーム静止モードである場合、処理はステップ５１２からステップ５０８に進み、ボトムフィールドが表示される。一方、現在の一時停止モードがフィールド静止モードである場合、処理はステップ５１２からステップ５０６に進み、トップフィールドが表示される。
【０１３３】
スロー再生（ＳＬＦ）、早送り再生（ＦＦ）、逆方向早送り再生（ＦＲ）状態においては、単一のフレームを繰り返し表示することが多く、この場合、出力するフィールドは、一時停止（ＰＡＵＳＥ）又は逆方向デコード（ＲＤ）状態と同様の手法により選択する必要がある。しかしながら、スロー再生、早送り再生、逆方向早送り再生の状態では、フレームから次のフレームへの移行中に遷移が行われることが多い。この期間中は、フィールドを再生状態と同様の手法で出力する必要があり、すなわち、ｆＩＤが１のときトップフィールドを表示し、ｆＩＤが０のときボトムフィールドを表示する必要がある。したがって、スロー再生、早送り再生、逆方向早送り再生の状態では、処理はステップ５１４から開始され、ここで上述したフラグを確認し、フレームがデコードされている最中であるか否かが判定される。フレームのデコードが行われている場合、現在のフレームから次のフレームに移行するまで表示を継続する。すなわち、フレームのデコード中であることを示すフラグが設定されている場合、処理は、ステップ５１４からステップ５０４に進み、再生状態と同様にフィールドを表示する。一方、フレームのデコード処理が行われていない場合、処理はステップ５１４からステップ５１０に進み、一時停止状態又は逆方向デコード状態と同様の手法でフィールドを表示する。
【０１３４】
なお、逆方向再生状態、すなわち逆方向早送り再生状態又は逆方向デコード状態では、あるフレームから次のフレームへの移行中には、フィールドを逆方向に再生する方がよい場合もあり、すなわち、ｆＩＤが０のときにボトムフィールドを表示し、ｆＩＤが１のときにトップフィールドを表示してもよい。ここで、フィールド間に動きがある場合、この逆方向のフィールド再生は、フレームの移行を行う際に、表示において適切な逆方向の動きを再生する。Ｆｉｇ．１４に示す具体例では、逆方向再生におけるフィールドの再生は、順方向の再生と同様の手法で行っているが、これによれば、逆方向再生において、順方向と逆方向の動きが交互に現れるような時間的に不自然な再生がなされる虞がある。しかしながら、逆方向再生において、表示するフィールドも逆方向にした場合、走査線の位置が不正になるため、空間的な歪みが生じる虞がある。このような空間的歪みは、Ｆｉｇ．１４に示す手法によるフィールドの再生順序により生じる虞のある時間的な不自然さより深刻であると考えられる。しかしながら、他の具体例においては、逆方向再生モードにおいて、フィールドを逆方向に表示するようにしてもよい。
【０１３５】
本発明を様々な具体例を用いて説明し、またこれら具体例を詳細事項とともに記述したが、本出願人は、このような詳細な具体例により本発明を限定する意図はない。当業者にとって、本発明のさらなる利点及び変形は明らかである。したがって、本発明の広範な範囲は、上述の特定の詳細事項、例示的な装置及び方法、及び上述した具体例に限定されるものではない。すなわち、本発明の包括的な概念から逸脱することなく、上述の具体例を様々に変形することができる。
【図面の簡単な説明】
【０１３６】
【図１】
Ｆｉｇ．１は、参照する米国特許出願に記載されている特定用途向け集積回路（ＡＳＩＣ）の構成要素を示すブロック図であり、特に、オフチップダイナミックランダムアクセスメモリ（ＤＲＡＭ）及びそこに格納されたデータと、ＡＳＩＣを制御する縮小命令セット中央処理ユニット（ＲＩＳＣ ＣＰＵ）と、その構成要素及び格納されたデータを示す図である。
【図２】
Ｆｉｇ．２は、ＲＩＳＣホストコマンドレジスタ内に格納されるホストからのコマンドのデータ構造を示す図である。
【図３】
Ｆｉｇ．３は、ＤＲＡＭホストコマンドバッファ内に格納された非排他的コマンドのデータ構造を示す図である。
【図４】
Ｆｉｇ．４は、ＤＲＡＭに格納された非排他的コマンド用のＤＲＡＭホストコマンド読出−書込ポインタのデータ構造を示す図である。
【図５】
Ｆｉｇ．５は、ＤＲＡＭトリック再生コマンドバッファに格納された排他的コマンドのデータ構造を示す図である。
【図６】
Ｆｉｇ．６は、ホストからのコマンド、コマンドマネージャ、状態遷移ハンドラ、及びサブルーチンの機能的関係を示す図である。
【図７】
Ｆｉｇ．７Ａ及びＦｉｇ．７Ｂは、コマンドマネージャを実行するデジタルオーディオ／ビデオプロセッサのメインルーチンの関連する部分と、状態遷移ハンドラルーチンを示すフローチャートである。
【図８】
Ｆｉｇ．８は、状態遷移ハンドラにより実行される許可可能なデジタルビデオデコード状態を説明する状態遷移図である。
【図９】
Ｆｉｇ．９は、状態遷移ハンドラルーチンを示すフローチャートである。
【図１０】
Ｆｉｇ．１０は、排他的コマンドを解読するサブルーチンを示すフローチャートである。
【図１１】
Ｆｉｇ．１１は、Ｆｉｇ．９に示すデフォルトトリック再生処理サブルーチンを示すフローチャートである。
【図１２】
Ｆｉｇ．１２は、命令メモリの持続的格納領域を含むコマンドマネージャの処理を示すフローチャートである。
【図１３】
Ｆｉｇ．１２Ａは、Ｆｉｇ．１に示すＤＲＡＭの仮想命令メモリにおける処理を示すフローチャートである。
【図１４】
Ｆｉｇ．１３Ａは、ＲＩＳＣ ＣＰＵをプログラミングして実現される状態装置におけるトリック再生処理の詳細な動作を説明するフローチャートである。
【図１５】
Ｆｉｇ．１３Ｂは、ＲＩＳＣ ＣＰＵをプログラミングして実現される状態装置におけるトリック再生処理の詳細な動作を説明するフローチャートである。
【図１６】
Ｆｉｇ．１３Ｃは、ＲＩＳＣ ＣＰＵをプログラミングして実現される状態装置におけるトリック再生処理の詳細な動作を説明するフローチャートである。
【図１７】
Ｆｉｇ．１３Ｄは、ＲＩＳＣ ＣＰＵをプログラミングして実現される状態装置におけるトリック再生処理の詳細な動作を説明するフローチャートである。
【図１８】
Ｆｉｇ．１３Ｅは、ＲＩＳＣ ＣＰＵをプログラミングして実現される状態装置におけるトリック再生処理の詳細な動作を説明するフローチャートである。
【図１９】
Ｆｉｇ．１３Ｆは、ＲＩＳＣ ＣＰＵをプログラミングして実現される状態装置におけるトリック再生処理の詳細な動作を説明するフローチャートである。
【図２０】
Ｆｉｇ．１３Ｇは、ＲＩＳＣ ＣＰＵをプログラミングして実現される状態装置におけるトリック再生処理の詳細な動作を説明するフローチャートである。
【図２１】
Ｆｉｇ．１３Ｈは、ＲＩＳＣ ＣＰＵをプログラミングして実現される状態装置におけるトリック再生処理の詳細な動作を説明するフローチャートである。
【図２２】
Ｆｉｇ．１４は、ＲＩＳＣ ＣＰＵのプログラムにおける包括的処理におけるトップフィールド及びボトムフィールドの表示処理を説明するフローチャートである。