(57)【特許請求の範囲】
【請求項１】
符号化／圧縮データストリームを復号化するためのオーディオ／ビデオ復号化／伸張回路を有するマルチメディアシステムであって、
前記オーディオ／ビデオ復号化／伸張オーディオ回路は、符号化／圧縮データストリームを分離して符号化／圧縮オーディオデータ、符号化／圧縮ビデオデータ、オーディオ時間値及びビデオ時間値にする分離器と、
前記分離器に接続されたアドレス指定可能な記憶部を有し、符号化／圧縮オーディオデータ、符号化／圧縮ビデオデータ若しくは復号化／伸張ビデオデータを選択的に記憶し読むためにアドレス指定可能な記憶部からアドレッシングするメモリと、
前記メモリに接続され、符号化／圧縮ビデオデータを復号化して、復号化／伸張ビデオデータを生成する第１のデコーダと、
前記第１デコーダとメモリに接続され、ビデオ時間値とオーディオ時間値を比較し、その比較が予め決められたしきい値を超えたときに、前記第１のデコーダによる復号化／伸張ビデオデータの生成を前記メモリによるアドレス指定可能な記憶部のアドレッシングに実質的に同期させるシンクロナイザとからなり、
前記オーディオ時間値及びビデオ時間値は、前記復号化／伸張オーディオデータのタイムスタンプと、前記復号化／伸張ビデオデータのタイムスタンプを各々含み、
前記シンクロナイザは、予め決められたしきい値だけビデオ時間値がオーディオ時間値を超えたことを決定し、メモリによる復号化／伸張ビデオデータを含むアドレス指定可能な記憶部をアドレッシングするシーケンスは、メモリによるアドレス指定可能な記憶部のアドレッシングと、第１のデコーダによる復号化／伸張ビデオデータの生成を実質的に同期させるためにアドレスのシーケンスを繰り返すことによって変更されることを特徴とするオーディオ／ビデオ復号化回路。
【請求項２】
符号化／圧縮データストリームを復号化するためのオーディオ／ビデオ復号化／伸張回路を有するマルチメディアシステムであって、
前記オーディオ／ビデオ復号化／伸張オーディオ回路は、符号化／圧縮データストリームを分離して符号化／圧縮オーディオデータ、符号化／圧縮ビデオデータ、オーディオ時間値及びビデオ時間値にする分離器と、
前記分離器に接続されたアドレス指定可能な記憶部を有し、符号化／圧縮オーディオデータ、符号化／圧縮ビデオデータ若しくは復号化／伸張ビデオデータを選択的に記憶し読むためにアドレス指定可能な記憶部からアドレッシングするメモリと、
前記メモリに接続され、符号化／圧縮ビデオデータを復号化して、復号化／伸張ビデオデータを生成する第１のデコーダと、
前記第１デコーダとメモリに接続され、ビデオ時間値とオーディオ時間値を比較し、その比較が予め決められたしきい値を超えたときに、前記第１のデコーダによる復号化／伸張ビデオデータの生成を前記メモリによるアドレス指定可能な記憶部のアドレッシングに実質的に同期させるシンクロナイザとからなり、
前記オーディオ時間値及びビデオ時間値は、前記復号化／伸張オーディオデータのタイムスタンプと、前記復号化／伸張ビデオデータのタイムスタンプを各々含み、
前記シンクロナイザは、予め決められたしきい値だけオーディオ時間値がビデオ時間値を超えたことを決定し、メモリにより符号化／圧縮ビデオデータを含むアドレス指定可能な記憶部をアドレッシングするシーケンスは、メモリによりアドレス指定可能な記憶部のアドレッシングと、第１のデコーダによる復号化／伸張ビデオデータの生成を実質的に同期させるためにアドレスのシーケンスをスキップすることによって変更されることを特徴とするオーディオ／ビデオ復号化回路。
【請求項３】
メモリに接続され、符号化／圧縮オーディオデータを復号化／伸張オーディオデータに復号化する第２のデコーダを更に含むことを特徴とする請求項１記載のオーディオ／ビデオ復号化回路。
【請求項４】
第１のデコーダ及びビデオモニタに接続され、ビデオモニタ上のイメージとして復号化／伸張ビデオデータを表示するグラフィックコントローラを更に含むことを特徴とする請求項１に記載のオーディオ／ビデオ復号化回路。
【請求項５】
第１デコーダ及びデジタルディスプレイに接続され、デジタルディスプレイ上のイメージとして復号化／伸張ビデオデータを表示するグラフィックコントローラを更に含むことを特徴とする請求項１に記載のオーディオ／ビデオ復号回路。
【請求項６】
第１デコーダ及びテレビジョンディスプレイに接続され、復号化／伸張ビデオデータからテレビジョンデータを生成し、且つテレビジョンディスプレイ上のイメージとしてテレビジョンデータを表示するテレビジョン信号エンコーダを更に含むことを特徴とする請求項１記載のオーディオ／ビデオ復号回路。
【請求項７】
第２デコーダに接続され、復号化／伸張オーディオデータからアナログオーディオ信号を生成するデジタル−アナログコンバータを更に含むことを特徴とする請求項３記載のオーディオ／ビデオ復号回路。
【請求項８】
デジタル−アナログコンバータに接続され、アナログオーディオ信号の振幅を増幅するオーディオ増幅器を更に含むことを特徴とする請求項７記載のオーディオ／ビデオ復号回路。
【請求項９】
メモリに接続され、符号化／圧縮オーディオデータを復号化／伸張オーディオデータに復号化する第２のデコーダを更に含むことを特徴とする請求項２記載のオーディオ／ビデオ復号化回路。
【請求項１０】
第１のデコーダ及びビデオモニタに接続され、ビデオモニタ上のイメージとして復号化／伸張ビデオデータを表示するグラフィックコントローラを更に含むことを特徴とする請求項２に記載のオーディオ／ビデオ復号化回路。
【請求項１１】
第１デコーダ及びデジタルディスプレイに接続され、デジタルディスプレイ上のイメージとして復号化／伸張ビデオデータを表示するグラフィックコントローラを更に含むことを特徴とする請求項２に記載のオーディオ／ビデオ復号回路。
【請求項１２】
第１デコーダ及びテレビジョンディスプレイに接続され、復号化／伸張ビデオデータからテレビジョンデータを生成し、且つテレビジョンディスプレイ上のイメージとしてテレビジョンデータを表示するテレビジョン信号エンコーダを更に含むことを特徴とする請求項２記載のオーディオ／ビデオ復号回路。
【請求項１３】
第２デコーダに接続され、復号化／伸張オーディオデータからアナログオーディオ信号を生成するディジタル−アナログコンバータを更に含むことを特徴とする請求項９記載のオーディオ／ビデオ復号回路。
【請求項１４】
デジタル−アナログコンバータに接続され、アナログオーディオ信号の振幅を増幅するオーディオ増幅器を更に含むことを特徴とする請求項１３記載のオーディオ／ビデオ復号回路。
【請求項１５】
符号化／圧縮データストリームを復号化するためのオーディオ／ビデオ復号化／伸張回路を有するマルチメディアシステムであって、
前記オーディオ／ビデオ復号化／伸張オーディオ回路は、符号化／圧縮データストリームを分離して符号化／圧縮オーディオデータ、符号化／圧縮ビデオデータ、オーディオ時間値及びビデオ時間値にする分離器と、
前記分離器に接続されたアドレス指定可能な記憶部を有し、符号化／圧縮オーディオデータ、符号化／圧縮ビデオデータ若しくは復号化／伸張ビデオデータを選択的に記憶し読むためにアドレス指定可能な記憶部からアドレッシングするメモリと、
前記メモリに接続され、符号化／圧縮ビデオデータを復号化して、復号化／伸張ビデオデータを生成する第１のデコーダと、
前記第１デコーダとメモリに接続され、ビデオ時間値とオーディオ時間値を比較し、その比較が予め決められたしきい値を超えたときに、前記第１のデコーダによる復号化／伸張ビデオデータの生成を前記メモリによるアドレス指定可能な記憶部のアドレッシングに実質的に同期させるシンクロナイザとからなり、
前記オーディオ時間値及びビデオ時間値は、前記復号化／伸張オーディオデータのタイムスタンプと、前記復号化／伸張ビデオデータのタイムスタンプを各々含み、
前記シンクロナイザは、予め決められたしきい値だけビデオ時間値がオーディオ時間値を超えたことを決定し、前記メモリによる復号化／伸張ビデオデータを含むアドレス指定可能な記憶部をアドレッシングするシーケンスは、前記メモリによるアドレス指定可能な記憶部のアドレッシングと、前記第１のデコーダによる復号化／伸張ビデオデータの生成を実質的に同期させるためにアドレスのシーケンスを繰り返すことによって変更され、
前記シンクロナイザは、また、予め決められたしきい値だけオーディオ時間値がビデオ時間値を超えたことを決定し、前記メモリにより符号化／圧縮ビデオデータを含むアドレス指定可能な記憶部をアドレッシングするシーケンスは、前記メモリによりアドレス指定可能な記憶部のアドレッシングと、前記第１のデコーダによる復号化／伸張ビデオデータの生成を実質的に同期させるためにアドレスのシーケンスをスキップすることによって変更されることを特徴とするマルチメディアシステム。
【発明の詳細な説明】
発明の分野
この発明は、一般的に、マルチメディア・システムの分野に関し、特に、本発明は、回路がオーディオ再生とビデオ表示との間の同期をとるマルチメディア・パーソナル・コンピュータ（ＰＣ）のための同期方法及び回路に関する。本発明は、特に、モーション・ピクチャー・エキスパート・グループ（ＭＰＥＧＩ＋ＩＩ）によるデータ圧縮及び伸張標準に適する。
本発明の背景
パーソナル・コンピュータは、オーディオ及びビデオ情報を含むマルチメディア・ソフトウエア・アプリケーションを動作させるために応用されている。いくつかのマルチメディア仕様委員会は、符号化／圧縮及び復号／伸張の標準化を確立し若しくは提案してきている。モーション・ピクチャー・エキスパート・グループによって確立されたＭＰＥＧＩ及びＩＩは、マルチメディア・ＰＣ・ソフトウエア・アプリケーションの分野で最も広く認められている国際標準である。他の標準として、ジョイント・フォトグラフィック・エキスパート・グループによって確立されているＪＰＥＧ及びモーションＪＰＥＧがある。図１Ａは、ＭＰＥＧアルゴリズムに基づいて圧縮され符号化されたビデオ及び／またはオーディオデータを伸張するＭＰＥＧオーディオ及びビデオ復号化システム１２０を説明している。このシステム・デコーダ１１０は、散在され圧縮されたビデオ及び／またはオーディオデータを含むことのできる符号化されたＭＰＥＧデータ・ストリーム１０１を読み、ビデオ・プレゼンテーション・タイム・スタンプ（ＶＰＴＳ）１０４、システム・クロック・リファレンス（ＳＣＲ）１０５、及びオーディオ・プレゼンテーション・タイム・スタンプ（ＡＰＴＳ）１０６のようなタイミング情報を発生する。ビデオデコーダ１１１は、ビデオデータストリーム１０２を復号化し伸張して、復号化／伸張されたビデオ信号１０７を発生する。オーディオデコーダ１１２はオーディオデータ・ストリーム１０３を復号し伸張して、復号化／伸張されたオーディオ信号１０８を発生する。復号化／伸張されたオーディオ信号１０８が、オーディオスピーカ若しくは他のオーディオ発生手段（図示せず）に接続される一方、復号化／伸張されたビデオ信号１０７は、ＰＣモニタ若しくは他のタイプのディスプレイに接続される。
図１Ｂは、ＭＰＥＧに関するＩＳＯ／ＩＥＣ１１１７２−１：１９９３（Ｅ）国際標準仕様書の４９ページから参考としてここに編入されたものであり、これは、符号化／圧縮データのデータストリームがパケットを用いてどのようなまとまりにされ伝送されるかの詳細な図を示している。データストリーム１６０は、例えば、ＩＳＯレイヤー（層）とパックレイヤーのような異なるレイヤーを持つ。ＩＳＯレイヤー内の連続するパッケージ１６１は、ＩＳＯエンドコード１６４に達するまで伝送される。各パッケージ１６１は、パック・スタート・コード１６２及びパックデータ１６３を有するものとして定義される。パックレイヤーでは、各パッケージ１６１は、パック開始コード１６２、システム・クロック・リファレンス１１７、システムヘッダー１８０及びデータパケット１６５〜１６８を持つものとして定義される。省略符号１６７は多数のパケットを示している。システム・クロック・リファレンス１１７は、ビットパターン００１０、Ｘの３ビット１８５、１のビット・パターン、Ｙの１５ビット１８６、１のビットパターン、Ｚの１５ビット１８７、ビットパターン１１、マルチプレクサレート１８８、及びビットパターン１であることが更に定義される。Ｘの３ビット１８５、Ｙの１５ビット１８６及びＺの１５ビット１８７は、システム・クロック・リファレンス（ＳＣＲ）を示す３３ビット・パターンを構成する。システム・クロック・リファレンスは、基準とされるシステム時間を示す。マルチプレクサレート１８８は、オーディオパケットがどのくらいの間隔でビデオパケットの間に散在されているのかを示す。各パケット１６５〜１６８は、パケット１６６と同じように説明される。パケット１６６は、３バイトのパケット開始コードプリフィックス１７０Ａ、１バイトのストリームＩＤ１７０Ｂ、２バイトのパッケージ長１７１、ｈバイトの他のヘッダーデータ１７２、及びＮバイトのパッケージデータ１７３を有する。Ｎバイトのパケットデータ１７３は、オーディオ若しくはビデオデータを示す。例えば、ＭＰＥＧＩ、ＭＰＥＧII若しくはＪＰＥＧ等の圧縮／符号化方法を用いる場合においては、データパケットは、適切に符号化される。ｈバイトの他のヘッダーデータ１７２は、１から１６までのスタッフィングバイト１４０、コードビット０１  １４１、基準バッファスケールをフラッギングする１ビット１４２、基準バッファサイズを示す１３ビット１４３、及び何もないか、プレゼンテーション・タイム・スタンプ（ＰＴＳ）か、デコーディング・タイム・スタンプ（ＤＴＳ）を持つプレゼンテーション・タイム・スタンプ（ＰＴＳ）かを夫々示す、１、５または１０バイトのタイムスタンプ情報１５０からなる。
プレゼンテーション・タイム・スタンプは、もし次に続くデータパケット１７３がオーディオ情報を含むならば、オーディオ・プレゼンテーション・タイム・スタンプとなる。これに代えて、プレゼンテーション・タイム・スタンプは、もし次に続くデータパケット１７３がビデオ情報を含むなら、ビデオ・プレゼンテーション・タイム・スタンプとなる。これらの場合においても、ＡＰＴＳやＶＰＴＳは、５バイト、即ち、未使用の７ビットを含む３３ビットの情報によって示される。
図３Ａは図１Ｂと比較して符号化／圧縮データストリーム１０１の簡単化された例３１５を説明している。このような符号化／圧縮されたデータストリームは、複数の符号化／圧縮されたビデオデータパケット、若しくはブロック及び複数の符号化／圧縮されたオーディオデータパケット、またはブロックを含む。ＭＰＥＧは、更に、ピクチャと呼ばれるビデオフレームに基いてビデオパケットを符号化／圧縮する。３つのタイプのビデオフレームが用いられる。イントラ−フレーム、即ち、Ｉタイプフレーム又はピクチャは、それ自身に関する情報を用いて符号化されるビデオデータのフレームである。１つの任意の圧縮されていないビデオフレームのみが符号化／圧縮されて、１つの符号化／圧縮されたビデオデータのＩタイプフレームになる。予測フレーム、即ち、Ｐタイプフレーム又はピクチャは、過去の参照フレームから動き補償予測を用いて符号化／圧縮されたフレームである。ＩタイプやＰタイプのような、以前に符号化／圧縮されたフレームは、ビデオデータの現在の圧縮されていないビデオデータのフレームを符号化／圧縮して、符号化され圧縮されたビデオデータのＰタイプフレームにするために用いられる。双方向フレーム、即ち、Ｂタイプフレーム又はピクチャは、過去及び未来の参照フレーム、または過去、または未来のビデオデータの参照フレームを用いて符号化／圧縮されたフレームである。参照フレームはＩタイプフレームかＰタイプフレームのどちらでもよい。Ｂタイプフレームは、Ｉタイプ、Ｐタイプ若しくはＩタイプとＰタイプの組み合わせ、またはフレーム間でビデオ内に速い動きがあるときはＩタイプかＰタイプのどちらかの間に挿入される。動き補償は、符号化／圧縮及び復号化／伸張での画素値を予測する効率を向上するために、あるフレームから次のフレームまでの動きベクトルの利用を参照する。予測方法は、動きベクトルを用いる。これは、オフセット値と、ビデオデータの任意のフレームを圧縮／符号化若しくは伸張／復号化するために、エラーデータと共に用いられる復号化された画素値を持つビデオデータの過去若しくは未来のフレームに関連しているエラーデータを供給するためである。動きを表示でき、可変の解像度とフレームレートを持つイメージを表示するのに必要とされるデータの量は、オーディオの再生に必要とされるデータの量よりもはるかに多いので、３０３〜３０３のようなビデオパケットは、ＭＰＥＧデータストリーム内で３１１のようなオーディオデータパケットよりもずっと頻繁に発生する。ビデオデータパケットの間にオーディオデータパケットをまばらに挿入すると、オーディオが再生される前若しくは後にイメージフレームが表示されることを引き起こす。タイムスタンプはオーディオとビデオの同期を容易にするために符号化／圧縮されたデータストリーム中に設けられる。ビデオ・プレゼンテーション・タイム・スタンプ３００〜３０２は、任意のシステムタイムクロック３１６の様々なインターバル３０６〜３０８で用意される。参照符号３１０で例示されているオーディオ・プレゼンテーション・タイム・スタンプもまた、ＭＰＥＧデータストリームの様々なインターバル３１２で用意される。更に、様々なインターバルで供給されるシステム・クロック・リファレンス（ＳＣＲ）がある。これらＳＣＲ、ＶＰＴＳ及びＡＰＴＳのそれぞれは時間値を示す３３ビットの値である。ＭＰＥＧ標準は、ＭＰＥＧデコーダがビデオ表示シーケンスの開始時刻として３３ビットＶＰＴＳを用い、オーディオ再生シーケンスの開始時刻として３３ビットＡＰＴＳを用いることを推奨している。ＡＰＴＳ及びＶＰＴＳは、あわせてプレゼンテーション・タイム・スタンプ（ＰＴＳ）と呼ばれる。ＭＰＥＧ標準は、ＡＰＴＳ、ＶＰＴＳ及びＳＣＲが少なくとも０．７秒に１度、ビットストリーム中に現れることを要求している。
従来技術においては、３３ビットのシステム・クロック・リファレンス（ＳＣＲ）は、ビデオ再生とオーディオ再生との間のずれを最小限にするためにビデオ及びオーディオ出力の両方に対する基準時間として用いられてきた。ＳＣＲはシステムカウンタと呼ばれるカウンタにロードされ、そして９０ｋｈｚのシステムクロック（ＳＣＬＫ）でインクリメントされる。システムカウンタの出力は、オーディオ若しくはビデオ再生にどのくらいの量の同期ずれがあったかを決定するために、ビデオデコーダ１１１においてＶＰＴＳと及びオーディオデコーダ１１２内においてＡＰＴＳと比較される。もし、しきい値レベルに達したら、ビデオはオーディオと正確に同期するためにジャンプする。従って、ＳＣＲはビデオ再生とオーディオ再生を再同期させるために用いられる。いくつかの復号化システムにおいては、ビデオクロック若しくは復号化クロックはＳＣＲを参照することなく生成され、それはロックされていない若しくは基準に合わされていないので、時間ドリフト（進み若しくは遅れ）がビデオ若しくは復号化クロックから得られる合成されたＶＰＴＳ中に現れる。この時間ドリフトは、１秒若しくは９００００システムクロック周期内で、１００万で約５０の時間誤差を引き起こす。これは実際のＶＰＴＳ値と４４から６７μｓｅｃ異なる合成されたＶＰＴＳ値に相当する。同期ずれについて修正を行わないシステムにおいては、時間誤差は蓄積し、ビデオイメージをオーディオ再生に対して５から６分毎に１フレーム進ませる若しくは遅れさせる。もしビデオ表示及びオーディオ再生がときどき再同期されないなら、フレームの進み若しくは遅れは更に長期間にわたって蓄積される。
本発明の概要及び目的
マルチメディアシステムは、表示装置に表示すべくビデオイメージを生成するため及び可聴再生すべくオーディオ信号を生成するために、符号化／圧縮された、オーディオ／ビデオデータストリームを復号化し／伸張するためのオーディオ／ビデオ、デコーダ／デコンプレッサを含む。マルチメディアシステムは、統合されたシステムと、ビデオイメージの表示とオーディオの再生を実質的に同期させるためのオーディオ／ビデオ同期回路を持つビデオデコーダを含む。オーディオの再生とビデオイメージの表示との同期ずれが生じたことを検出するための方法が説明される。
マルチメディアシステムの一部は、オーディオサウンドとビデオイメージを符号化／圧縮して、時間情報、符号化／圧縮されたビデオデータのパケット及び符号化／圧縮されたオーディオデータのパケットを含む、符号化／圧縮されたビットストリームにする。符号化／圧縮されたビットストリームは、後で再生するために他のＣＤＲＯＭや記憶デバイスに記録されるか若しくは現在のビデオイメージの表示及びオーディオ再生のためにマルチメディアシステムの再生部に直接送られる。
マルチメディアシステムの再生部は、コンパクトディスクリードオンリーメモリリーダ、処理回路、オーディオ／ビデオ復号化回路、音を発生するためのオーディオスピーカ、及びオーディオ再生に対応するビデオを表示するための１若しくはそれ以上の表示デバイスを含む。
オーディオ／ビデオ復号化回路は、システムデコーダ、ビデオデコーダ、ＦＩＦＯバッファ、メモリインターフェース手段、及びオーディオ／ビデオ同期回路を含む集積回路を含む。オーディオ／ビデオ同期回路は、オーディオとビデオとの間で同期がはずれた状態を検出し、イメージのビデオ表示をオーディオ再生に同期させるために、ビデオフレーム若しくはそれの一部分のどちらかをスキップまたはリピートさせる。これに代えて、オーディオ／ビデオ同期回路は、オーディオ再生をイメージのビデオ表示に同期させるために、オーディオデータ若しくはそれの一部分を、スキップ若しくは遅延させる。
オーディオとビデオとの間で同期がはずれた状態を検出する方法は、符号化／圧縮されたオーディオ／ビデオデータストリーム内のビデオ時間値とオーディオ時間値の受信の時間差を検出すること、修正されたビデオ時間値を発生するために、ビデオ時間値にその時間差を加算すること、及びオーディオ再生がビデオ表示より進みしきい値だけ進んでいるか、若しくはオーディオ再生がビデオ表示より遅れしきい値だけ遅れているかどうかを決定するために、修正されたビデオ時間値とオーディオ時間値を比較することを含む。
他の方法は、符号化／圧縮されたオーディオ／ビデオデータストリーム内のオーディオ時間値とビデオ時間値の受信の時間差を検出すること、修正されたオーディオ時間値を生成するためにその時間差をオーディオ時間値に加算すること、及びビデオ表示がオーディオ再生より進みしきい値だけ進んでいるか、若しくはビデオ表示がオーディオ再生より遅れしきい値だけ遅れているかどうかを検出するために、修正されたオーディオ時間値とビデオ時間値を比較することを含む。
本発明の目的は、オーディオとビデオの同期の改良を提供するにある。
本発明のさらなる目的は、オーディオ／ビデオ同期を実行するために必要とされる回路の数と規模を減らすことによってマルチメディアシステムのコストを削減するにある。
本発明のさらなる目的は、異なるフレームレート及びクロックレートを持つマルチメディアシステムによって受信され、異なる同期条件を持つ様々なメディアに適合することができるマルチメディアシステムにおいて順応性のある同期装置を提供するにある。
本発明のさらなる目的は、同期精度の選択可能な分解能を持つマルチメディアシステムにおいて順応性のある装置を提供することにある。
【図面の簡単な説明】
図１ＡはＭＰＥＧ復号化システムの従来技術のブロック図である。
図１Ｂはオーディオ及びビデオデータのシリアル伝送に関する従来技術の符号化データストリームフォーマットである。
図２は本発明の回路及びアルゴリズムを含むＭＰＥＧ復号化システムのブロック図を示す。
図３Ａは図１Ｂで説明されたＭＰＥＧデータストリームに関する波形図及びシステムタイミングの説明図である。
図３Ｂはどのようにして進んだビデオフレームがオーディオデータと再同期されるのかを示す説明図である。
図３Ｃはどのようにして遅れたビデオフレームがオーディオデータと再同期されるのかを示す説明図である。
図４Ａは本発明の好ましい形態の論理に関する概略ブロックの説明図である。
図４Ｂは本発明の第２の形態の論理に関する概略ブロックの説明図である。
図５Ａは本発明の好ましい形態の論理回路の詳細なブロックの説明図である。
図５Ｂは本発明の第２の形態の論理回路の詳細なブロックの説明図である。
図６は本発明がどのようにしてマルチメディアコンピュータシステム内で使用されるのかを説明する概略システム図である。
図７Ａ〜図７Ｃはグラフィック及び符号化されたデータの転送を合成するための本発明の選択的構成の説明図である。
図８は本発明による、符号化／圧縮されたオーディオ及びビデオデータと復号化／伸張されたビデオデータを記憶するためのフレームバッファメモリの機能及び制御を説明するブロック図である。
図９は選択されたオフセット値と切り捨てのための各ビットに対する個々の時間の２進テーブルの説明図である。
本発明の詳細な説明
図１Ａの従来技術においては、ビデオ・プレゼンテーション・タイムスタンプ（ＶＰＴＳ）１０４は、時間ドリフトを決めるためにＳＣＲ１０５に対して比較された。図２と図４Ａ及び図４Ｂを参照すると、本発明は、時間ドリフトを決定し、ビデオフレームとオーディオ再生を正しく合わせるために、ＶＰＴＳ（１０４又は４０３）をＡＰＴＳ（１０６又は４０２）と比較する。この比較を行うために、モノリシック集積回路は、ここでは「Ｖｉｄｓｙｓｔ」（ビデオ−システム）デコーダと呼ばれているが、本発明のアルゴリズムと回路を含んでいる。
図２は、Ｖｉｄｓｙｓｔデコーダ２２１を含むＭＰＥＧオーディオ／ビデオデコーダシステムの単純化されたブロック図を示している。Ｖｉｄｓｙｓｔデコーダ２２１は、ＭＰＥＧデータストリーム１０１を受け取り、データパケットから時間情報（ＶＰＴＳ１０４、ＳＣＲ１０５、ＡＰＴＳ１０６）を分離すると同様にオーディオデータパケットからビデオデータパケットを分離する。ビデオデータパケットはビデオデータストリーム２０２としてビデオデコーダ２１１に送られる。システムデコーダ２１０によってＭＰＥＧデータストリーム１０１から分離された時間情報（ＶＰＴＳ１０４、ＳＣＲ１０５、ＡＰＴＳ１０６）は、Ｖｉｄｓｙｓｔデコーダ２２１からオーディオデコーダ２１２へ外部的に送られるのと同様に内部的にビデオデコーダ２１１へ送られる。ビデオデータストリーム２０２内のビデオデータパケットは、復号化／伸張されたビデオデータ１０７を生成するために、ビデオデコーダ２１１内で復号化され伸張される。Ｖｉｄｓｙｓｔデコーダ２２１のビデオデコーダ２１１内には、時間ドリフトを決めるためにＶＰＴＳとＡＰＴＳを比較するＡ／Ｖ同期回路（図示せず）がある。
Ａ／Ｖ同期回路は更に、予め決められた制限値を超える時間ドリフトに応じて、表示されたビデオイメージとオーディオ再生の再同期をとるために、復号化／伸張ビデオの生成を制御する。Ｖｉｄｓｙｓｔデコーダ２２１内のシステムデコーダ２１０によって分離されたオーディオデータパケットはオーディオデータストリーム２０３としてオーディオデコーダ２１２へ外部的に送られる。オーディオデコーダ２１２もまた、ＤＳＰチップのようなモノリシック集積回路やＣｒｉｓｔａｌ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ製のＣＳ４９２０のような専用化されたオーディオデコーダである。同期はすべてＶｉｄｓｙｓｔデコーダ２２１によって行われるので、オーディオデコーダ２１２は同期を提供する必要がない。しかしながら、他の応用において、本発明の回路はオーディオデコーダ２１２に含まれてもよい。
同期のためのフレームの繰り返しとスキップ
図３Ｂと図３Ｃは、本発明によってビデオ表示がどのようにオーディオ再生に同期されるかを示すものである。図３Ｂを参照すると、時間上のビデオ表示はビデオデータフレーム（０）３２０Ａからビデオデータフレーム（Ｎ＋１）３２０（Ｎ＋１）までのシーケンスによって示されている。時間上のオーディオ再生はオーディオデータ（０）３３０Ａからオーディオデータ（Ｎ＋１）３３０（Ｎ＋１）までのシーケンスによって示されている。図３Ｃも同様に説明される。図３Ｂにおいて、ビデオデータフレームとオーディオデータとの再同期をとるために、ビデオデータフレームはオーディオデータに対して進み、オーディオが追いつくことを許容するためにビデオデータフレームが繰り返される。初めに、ビデオデータフレーム（０）３２０Ａとオーディオデータ（０）３３０Ａが完全に同期していると仮定する。時間が経過してビデオデータフレーム（ｋ）３２０Ｋはオーディオデータ（Ｋ）３３０Ｋに対して進んでいる。一度、進みしきい値−−例えば、１または１．５フレーム−−に達すると、Ａ／Ｖ同期回路はビデオフレーム（場合によって半フレーム）が繰り返されるようにする。図３Ｂにおいては、ビデオデータフレーム（Ｍ）３２０Ｍがオーディオデータ（Ｍ）３３０Ｍに１フレーム先行するとき、１フレーム進みしきい値に到達し、リピートビデオフレーム３２２で示されるように、次のビデオデータフレーム（Ｎ）３２０Ｎがビデオ表示上で繰り返される。このように、ビデオデータフレーム（Ｎ）３２０Ｎがオーディオデータ（Ｎ）３３０と再同期される。
図３Ｃを参照すると、ビデオデータフレームはオーディオデータよりも遅れ、ビデオデータフレームとオーディオデータとの再同期のためにビデオデータフレームはスキップされる。初めに、ビデオデータフレーム（０）３２１Ａはオーディオデータ（０）３３１Ａと完全に同期している。時間が経過してビデオデータフレーム（Ｊ）３２１Ｊはオーディオデータ（Ｊ）３３１Ｊに対して遅れている。一度、遅れしきい値−−例えば、１または１．５フレーム−−に達すると、Ａ／Ｖ同期回路はビデオフレーム（場合によって半フレーム）がスキップされるようにする。図３Ｃにおいては、ビデオデータフレーム（Ｌ）３２０Ｌがオーディオデータ（Ｎ）３３１Ｎに１フレーム先行するとき、１フレーム遅れしきい値に到達し、スキップビデオフレーム３２３で示されるように、次のビデオデータフレーム（Ｍ）（図示せず）がビデオ表示上でスキップされる。ビデオデータフレーム（Ｍ）の代わりに、オーディオデータ（Ｎ）３３１Ｎが再生されるときにビデオデータフレーム（Ｎ）３２１Ｎが表示される。このように、ビデオデータフレーム（Ｎ）３２１Ｎはオーディオデータ（Ｎ）３３１Ｎと再同期される。
図３Ｂと図３Ｃは１フレーム全部のリピートまたはスキップを示す。１／２フレームのリピートは、フレームの下半分が対応する新しいフレームデータの対応する部分に更新される間、そのフレームの上半分を同じ状態で保持する必要がある。１／２フレームのスキップは、そのフレームの上半分が次のフレームデータの対応する部分に更新されている間、そのフレームの下半分を現在のフレームデータの対応する半分に更新する必要がある。図３Ｂと図３Ｃは単一ビデオデータフレームをリピートするまたはスキップする単なる典型例であり、複数のフレームがスキップされたり繰り返されても良い。もし、オーディオとビデオが１フレーム以上同期が外れていたら、複数のフレームをスキップするかリピートするのが好ましい。ある応用として、オーディオデータが絶え間なく再生され聞こえていることを可能にしている限り、ユーザーはビデオデータフレームを停止するかリピートするかを選択してよい。他の場合には、ユーザーは複数のフレームをスキップすることによって早送りしたり、又、多数のビデオデータフレームに渡ってポーズしたり駒送りしたりすることを要求してもよい。いずれの場合においても、ノーマル再生を始めたい所望のビデオデータフレームが見つかった時には、オーディオデータを閉鎖状態（ｍｕｔｅ）とし、それからビデオとオーディオトラックとを再同期させるのが望ましい。
図３Ｂと図３Ｃはイメージのビデオ表示がスキップされたり繰り返されることを示している。イメージのビデオ表示のフレームをスキップするには、符号化／圧縮されたビデオデータフレームが、ビデオ表示とオーディオ再生の再同期をさせるためにスキップされることが望ましい。イメージのビデオ表示のフレームをリピートするためには、復号化／伸張されたビデオデータフレームが、ビデオ表示とオーディオ再生の再同期を取るためにリピートされることが望ましい。その代わりに、オーディオデータのパケットがビデオ表示とオーディオ再生を再同期させるためにスキップされたり遅延されたりしてもよい。
復号化／伸張する前に符号化／圧縮されたビデオフレームをスキップすること又は符号化／圧縮されたオーディオデータのパケットを遅延させることは、より有効にメモリを使用し、また、再同期をとる上でより効果がある。復号化／伸張されたビデオフレームをスキップすることは、より大きなメモリを必要とし、再同期を取る上で効果的ではない。符号化／圧縮された又は復号化／伸張されたオーディオデータパケットをリピートすることは、符号化／圧縮されたオーディオデータのパケットまたは復号化／伸張されたオーディオデータパケットを遅延させるよりも、聴覚的に知覚されてしまう。符号化／圧縮ビデオでは、Ｉタイプのフレームは約２０Ｋバイトのメモリを必要とし、Ｐタイプフレームは約１０Ｋバイトを必要とし、Ｂタイプのフレームは約３Ｋバイトを必要とする。
ＭＰＥＧ復号化の要求は、スキップされてよい符号化／圧縮ビデオフレームのタイプを限定している。前のＩタイプのフレームからＰタイプのフレームを復号化／伸張するのを可能にするために、普通、Ｉタイプのフレームの直前の最後のＰタイプフレーム以外は、Ｂタイプフレームのみスキップされなければならない。
例として、符号化／圧縮されたデータストリームが次のようなフレームシーケンス、Ｉ1Ｂ2Ｂ3Ｐ4Ｂ5Ｐ6Ｂ7Ｐ8Ｂ9Ｂ10Ｐ11・・・Ｐn-3Ｂn-2Ｐn-1Ｉnであることを考える。ここで、ＢはＢタイプに符号化されたビデオフレーム、ＰはＰタイプに符号化されたビデオフレーム、ＩはＩタイプに符号化されたビデオフレームを表す。予測された又はＰタイプのフレームを復号化するためには、Ｉタイプのフレームを前もって復号化することが必要である。このように、Ｐ4はＩ1がまず復号化されることを必要とし、符号化／圧縮されたＩ1フレームはハードウェアによってスキップされてはならない。同様に、フレームＰ6はフレームＰ6を復号化／伸張するためにＰ4が利用可能であることを要求する。従って、Ｐ4もスキップされてはならない。フレームＢ3がＰ4とＩ1を必要とするので、Ｂタイプフレームは符号化中ＩタイプとＰタイプまたはその組み合わせの間に挿入され、イメージの正確な再生には必要ではない。例の中のＰn-1のようなＩタイプフレームの前の最後のＰタイプフレームは、同様にスキップされてもよい。符号化／圧縮されるために、Ｐn-1が利用可能であることに依存する未来のフレームは無い。
復号化／伸張されたフレームをスキップするハードウエアはこのような制限は持たないが、より大きなメモリを必要とする。ソフトウェアはフレームタイプを決定するために前もって復号化をすることができるので、符号化／圧縮フレームをスキップするソフトウエア方法は、このような制限を持たない。しかしながら、ソフトウェア方法はハードウエア方法が行うようなリアルタイムの処理を行わない。
同期回路の動作
ビデオとオーディオとの同期を取るのに、プラスまたはマイナス１／２フレーム又はその複数倍フレームのフレーム同期分解能を提供するのが望ましい。この方法では、１／２フレームの時間ドリフトを持つ符号化／圧縮されたデータを復号化することは、よく同期の取れたビデオイメージとオーディオプレイバックの再生を提供する。説明の目的のために、本発明の動作はＭＰＥＧＩ符号化／圧縮標準を用いて説明される。本発明が、ＭＰＥＧIIやモーションＪＰＥＧのような他の符号化／圧縮標準をサポートするように修正されることは、諒解されよう。
ＭＰＥＧ符号化／圧縮されたビットストリームを圧縮／復号化するために、ＭＰＥＧ標準は、９０ｋｈｚのクロック周波数がシステム基準クロック（ＳＣＬＫ）としてどの復号化回路にも使用されることを推奨している。９０ｋｈｚのシステム基準クロック周波数は１１．１１マイクロ秒のクロック周期と等価である。ビデオ表示レートやフレームレートは、ある一定期間にモニターやそのようなデバイスに表示されるイメージフレームの数であるが、変化する。人間の目はその平均化の特性からディスプレイをちらちらする動きとは対称的にスムースで普通の動きをしているように見るので、毎秒６０フレーム（ｆｐｓ）のフレームレートは時々リアルタイムとして参照する。３０ｆｐｓのフレームレートは、６０ｆｐｓのフレームレートよりもスクリーンに表示されるデータが少なくて済むが、それほどスムーズでも普通の動きでもなく多少フリッカが現れる。３０ｆｐｓのフレームレートはＣＤＲＯＭやマルチメディアのアプリケーションに対しては理想的と考えられている−−イメージの質に対するデータの必要量がバランスがとれている。３０ｆｐｓのフレームレートは表示装置に約３３．３ミリ秒毎に１つのイメージフレームを表示することと等価である。１／２フレームの同期の分解能のために、許される時間ドリフトは約３３．３ミリ秒の半分即ち１６．６７ミリ秒である。１６．６７ミリ秒の間に、システムクロック（ＳＣＬＫ）は約１５００周期経過している。従って、１／２フレームの分解能の同期は１５００ＳＣＬＫクロック周期以下の時間ドリフトを要求する。同様な理由から、もし６０ｆｐｓのフレームレートに対して１／２フレームの同期の分解能が望まれた場合には、時間ドリフトは約７５０ＳＣＬＫクロック周期であるべきである。もし、３０ｆｐｓに対しての分解能が２．５フレームならば、許容される時間ドリフトは１５００ＳＣＬＫクロック周期の半分のフレームの時間ドリフトの５倍、即ち７５００ＳＣＬＫクロック周期であるべきである。同様に、もし３０ｆｐｓに対する分解能が１フレームであれば、許容される時間ドリフトは１５００ＳＣＬＫクロック周期の半分のフレームの時間ドリフトの２倍即ち３０００ＳＣＬＫクロック周期である。従って、３０ｆｐｓに対しての３フレームの時間ドリフトは９０００ＳＣＬＫクロック周期と等価である。まとめると、３０ｆｐｓに対する１／２フレーム、１フレーム、２．５フレーム、及び３フレームの時間ドリフトは、それぞれ１５００、３０００、７５００、及び９０００ＳＣＬＫクロック周期である。６０ｆｐｓに対しては、１／２フレーム、１フレーム、２．５フレーム、及び３フレームの時間ドリフトは、それぞれ７５０、１５００、３７５０、及び４５００ＳＣＬＫクロック周期である。本発明では、システムクロック（ＳＣＬＫ）は時間ドリフトを決定するのに使用される。
本発明は、同期はずれ状態を決定するためにＶＰＴＳとＡＰＴＳの差を使用する。図３Ａを参照すると、システムクロックタイムライン３１６はシステムクロックＳＣＬＫの増加するクロック周期を示している。ＭＰＥＧビットストリーム３１５はＭＰＥＧビットストリームの一例を示している。ＭＰＥＧビットストリーム３１５内のＶＰＴＳ（３０６−３０８）、ＡＰＴＳ３１２とＳＣＲ３１８の発生のタイミング情報は、ＳＣＬＫの所定のクロック周期数と一致する。図３Ａに示されているように、ＡＰＴＳ３１２の発生からＶＰＴＳ３０８の発生には遅延がある。ＶＰＴＳ３０７とＡＰＴＳ３１２の受信の間の遅延に対するＳＣＬＫクロック周期の数は、値Ｎ３１４である。ＡＰＴＳ３１２とＶＰＴＳ３０８の受信の間の遅延に対するＳＣＬＫクロック周期の数は、値Ｍ３１３である。
例えば、図３Ａと図４Ａを考える。ここで、カウンタ４１１が値Ｍ３１３をカウントし、レジスタ４１２が結果的にＶＰＴＳ３０８の値を格納する。ＡＰＴＳ３１２が生じると、カウンタ４１１はＶＰＴＳ３０８を受け取る前に生じるＳＣＬＫクロック周期の数をカウントする。このように、カウンタ４１１によってカウントされたカウント値はＭ３１３の値を示す。Ｎの値も同様に図４Ａのブロック図によってカウントされる。
ＡＰＴＳとＶＰＴＳは３３ビットのタイムスタンプ値である。従って、例えば、ＡＰＴＳ３１２は午後２時６分５．１１０秒というタイムスタンプ値を取り、ＶＰＴＳ３０８は午後２時６分５．２９０秒というタイムスタンプ値を取る。この二つのタイムスタンプを比較すると、ＶＰＴＳ３０８はＡＰＴＳ３１２よりも後のタイムスタンプ値をとる。ビデオがオーディオより先行しているか遅れているかを正しく比較するために、ＡＰＴＳは後に生じるＶＰＴＳに対して正規化されるか修正されなければならない。従って、遅延値Ｍは同じ基準フレームを持つためにＡＰＴＳに対して加算される必要がある。３０ｆｐｓで１／２フレーム時間の時間ドリフトのしきい値が約１６．６７ｍｓ、即ち、０．０１６６７秒であることに注意しなければならない。
第１の場合として、Ｍは０．１６６の時間値をとると仮定する。ＭをＡＰＴＳに加算すると（ＡＰＴＳ＋Ｍ）＝午後２時６分５．１７６秒になり、これは正規化されたＡＰＴＳ値である。正規化されたＡＰＴＳ値の合計を午後２時６分５．２９０秒のＶＰＴＳ値と比較すると、ビデオはオーディオに対し０．１１４秒（即ち、ＶＰＴＳ−（ＡＰＴＳ＋Ｍ）＝０．１１４秒）進んでいる。このように、ＶＰＴＳは正規化されたＡＰＴＳ、即ち（ＡＰＴＳ＋Ｍ）、より０．１１４秒大きい。マルチメディアシステムで再生されると、図３Ｂのフレーム３２０Ｎと３３０Ｍで示されるように、ビデオのイメージ表示がオーディオ再生に対して進んでいるように、ユーザーはビデオの後のフレームを見、前のビデオに合うオーディオを聞く。その代わりに、オーディオがビデオに遅れているとも言え、しかしながら、オーディオデータを基準フレームとして使うほうが好ましい。このように、オーディオデータを進め、任意のビデオフレームに合わすようにするために、ビデオを減速させるか又はビデオフレームをホールドしリピートすることが望ましい。
第２の場合として、（ＡＰＴＳ＋Ｍ）＝午後２時６分５．４４３秒となるようＭは０．３３３秒の時間値をとると仮定する。（ＡＰＴＳ＋Ｍ）−ＶＰＴＳを実行することにより、正規化されたＡＰＴＳと午後２時６分５．２９０秒のＶＰＴＳ値を比較すると、その結果は０．１５３秒となる。（ＡＰＴＳ＋Ｍ）の値がＶＰＴＳの値よりも後のタイムスタンプなので、ビデオはオーディオよりも遅れていることに注意されたい。マルチメディアシステムで再生されると、図３Ｃのフレーム３２１Ｌと３３１Ｍで示されるように、ユーザーはビデオの前のフレームを見、ビデオの後のフレームに対するオーディオを聞く。このように、ビデオフレームを進めてオーディオと実質的に合わせるために、ビデオのフレームをジャンプさせたりスキップさせたりすることが望ましい。
Ｎの値は、（ＶＰＴＳ＋Ｎ）と続くＡＰＴＳ３１２との比較を可能にするために、前のＶＰＴＳ３０７を同様に正規化する。ビデオがオーディに対して遅れており、時間ドリフトしきい値を超えている場合、ビデオデータのフレームまたはその一部分をスキップさせることによりビデオの表示を実質的にオーディオと合わせることが望ましい。
ビデオ表示がオーディオ再生に対してフレームのごく少しだけ、進んでいたり遅れたりしていることが、気づかれないものである時は、スキップや繰り返しにフレーム全体を使用することは回路の複雑さを低減するために好ましい。
このように、ＶＰＴＳが正規化されたＡＰＴＳ値よりも大きい時にＶＰＴＳ−（ＡＰＴＳ＋Ｍ）の計算が実行され、ＶＰＴＳが正規化されたＡＰＴＳ値より小さい時に（ＡＰＴＳ＋Ｍ）−ＶＰＴＳの計算が実行される。Ｎが使用される場合、同様に、ＡＰＴＳが正規化されたＶＰＴＳ値よりも大きい時に、ＡＰＴＳ−（ＶＰＴＳ＋Ｎ）の計算が実行され、ＡＰＴＳが正規化されたＶＰＴＳ値より小さい時に（ＶＰＴＳ＋Ｎ）−ＡＰＴＳの計算が実行される。いずれの場合でも、これら二つの演算の結果を検出した後に、何フレームまたはフレームのどれくらいの部分ビデオ表示がオーディオ再生に対して進んでいるまたは遅延しているかを決めるのが望ましい。フレームの数は、その計算の結果と予め定められた時間ドリフトしきい値とを比較することにより、決定される。時間ドリフトしきい値は、所望の表示レートでの所望の数のフレームまたはその一部内のＳＣＬＫクロック周期の数内のフレーム時間やその一部を示す。特に、プラスとマイナス１／２フレーム時間、１フレーム時間、２と１／２（２．５）フレーム時間、３フレーム時間の時間ドリフトしきい値は興味がそそられるものである。上述したように、３０ｆｐｓの表示レートの時、１／２フレーム時間は１５００ＳＣＬＫクロック周期と決められ、１フレーム時間は３０００ＳＣＬＫクロック周期であり、２．５フレーム時間は７５００ＳＣＬＫクロック周期で、３フレーム時間９０００ＳＣＬＫクロック周期であった。６０ｆｐｓの表示レートに対しては、これらの時間、ドリフトしきい値は半分にされてそれぞれ７５０、１５００、３７５０と４５００ＳＣＬＫクロック周期になる。他のしきい値が本発明の要旨と範囲から逸脱しないで選択されることは評価され得る。
図４Ａは、様々な時間ドリフトしきい値に対する結果の比較と同様に、ＶＰＴＳが（ＡＰＴＳ＋Ｍ）より大きい時、ＶＰＴＳ−（ＡＰＴＳ＋Ｍ）の、ＶＰＴＳが（ＡＰＴＳ＋Ｍ）よりも小さい時、（ＡＰＴＳ＋Ｍ）−ＶＰＴＳの計算を行うための回路の機能的なブロック図を示す。図４Ｂは、ＡＰＴＳが（ＶＰＴＳ＋Ｎ）より大きい時、ＡＰＴＳ−（ＶＰＴＳ＋Ｎ）の、ＡＰＴＳが（ＮＰＴＳ＋Ｎ）よりも小さい時に（ＶＰＴＳ＋Ｎ）−ＡＰＴＳの計算を行うための回路の機能的なブロック図を示す。これらの計算の結果に対する時間ドリフトしきい値の比較において、プラスマイナス３フレーム時間のようなより粗いフレーム時間分解能（時間ドリフトしきい値）は論理的に最初に計算されるべきであり、プラスマイナス１／２フレーム時間のような最も細かいフレーム時間分解能（時間ドリフトしきい値）は最後に計算されるべきである。図４Ａを参照すると、ＡＰＴＳが符号化／圧縮されたデータストリーム内に検出されたときには、ＳＴＣカウンタ４１１はカウンタ入力４０２の検出されたＡＰＴＳを示す２進値に設定されロードされる。ＳＴＣカウンタ４１１がどのようにカウントするかによって、ＳＣＬＫクロック周波数は分割される。ＳＴＣカウンタ４１１が一つずつカウントすると仮定すると、線４０１の９０ｋｈｚのＳＣＬＫ周波数は、カウンタクロック入力４０４に対して同じ周波数を生成する周波数デバイダ４１０で１つに分割される。ＳＴＣカウンタ４１１がインクリメントされるとき、Ｍに対する値が生成される。ＶＰＴＳに達すると、検出されたＶＰＴＳに対するＭの生成は完了され、カウンタ出力４０５は（ＡＰＴＳ＋Ｍ）の計算を反映する。ＶＰＴＳが符号化／圧縮されたデータストリーム中に検出されたとき、レジスタ４１２はレジスタ入力４０３での検出されたＶＰＴＳを示す２進値がロードされる。減算器４１３は減算器入力４０５の（ＡＰＴＳ＋Ｍ）の値と減算器入力４０６のＶＰＴＳの値から（ＡＰＴＳ＋Ｍ）−ＶＰＴＳを計算する。バス４０７上の減算器４１３からの結果出力はバス４０９上に与えられた時間ドリフトしきい値とコンパレータ４１４によって比較イネーブル入力信号４２０による適当な時に比較される。上述されたように、次の一連の式が３０ｆｐｓの表示レートに対してコンパレータ４１４によって実行されるように、大きな時間ドリフトしきい値が最初に比較される。
Ｅｑ．（Ａ）もし、（ＡＰＴＳ＋Ｍ）−ＶＰＴＳ＜−９０００なら、
ビデオは少なくとも３フレームオーディオに対し進んでおり、ビデオフレームをリピートし、もし、そうではなくて、
Ｅｑ．（Ｂ）もし、（ＡＰＴＳ＋Ｍ）−ＶＰＴＳ＞９０００なら、
ビデオは少なくとも３フレームオーディオに対して遅れており、ビデオフレームをスキップし、もしそうでなければ、次のより細かい分解能のステップを実行する。
Ｅｑ．（Ｃ）もし、（ＡＰＴＳ＋Ｍ）−ＶＰＴＳ＜−７５００なら、
ビデオは少なくとも２．５フレーム以上３フレームより少なくオーディオに対して進んでおり、ビデオフレームをリピートし、もしそうではなくて、
Ｅｑ．（Ｄ）もし、（ＡＰＴＳ＋Ｍ）−ＶＰＴＳ＞７５００なら、
ビデオは少なくとも２．５フレーム以上３フレームより少なくオーディオに対して遅れており、ビデオフレームをスキップし、もしそうでなければ、次のより細かい分解能のステップを実行する。
Ｅｑ．（Ｅ）もし、（ＡＰＴＳ＋Ｍ）−ＶＰＴＳ＜−３０００なら、
ビデオは少なくとも１フレーム以上２．５フレームより少なくオーディオに対して進んでおり、ビデオフレームをリピートし、もしそうではなくて、
Ｅｑ．（Ｆ）もし、（ＡＰＴＳ＋Ｍ）−ＶＰＴＳ＞３０００なら、
ビデオは少なくとも１フレーム以上２．５フレームより少なくオーディオに対して遅れており、ビデオフレームをスキップし、もしそうでなければ、次のより細かい分解能のステップを実行する。
Ｅｑ．（Ｇ）もし、（ＡＰＴＳ＋Ｍ）−ＶＰＴＳ＜−１５００なら、
ビデオは少なくとも１／２フレーム以上１フレームより少なくオーディオに対して進んでおり、ビデオフレームをリピートし、もしそうではなくて、
Ｅｑ．（Ｈ）もし、（ＡＰＴＳ＋Ｍ）−ＶＰＴＳ＞１５００なら、
ビデオは少なくとも１／２フレーム以上１フレームより少なくオーディオに対して遅れており、ビデオフレームをスキップし、もしそうでなければ、次のより細かい分解能のステップを実行し、もしそれ以上細かい分解能のステップが無く、実際の時間ドリフトがプラスマイナス１／２フレームの最後にテストされたフレーム時間以下であれば、中止する。
６０ｆｐｓの表示レートに対しては、時間ドリフトしきい値は同じ結果を決めるために半分にカットされる。例えば、Ｅｑ．（Ａ）は次のように変更される。
Ｅｑ．（Ａ’）もし（ＡＰＴＳ＋Ｍ）−ＶＰＴＳ＜−４５００なら、
図４Ａに対して一般に、式は一般的に次のように書かれる。
Ｅｑ．（Ｉ）｜（ＡＰＴＳ＋Ｍ）−ＶＰＴＳ｜＜時間ドリフトしきい値なら、
図４Ｂの場合は、この式は次のように変更される。
Ｅｑ．（II）｜（ＶＰＴＳ＋Ｍ）−ＡＰＴＳ）｜＜時間ドリフトしきい値なら、
これらの計算の結果に依存して、オーディオ再生とイメージのビデオ表示は、ビデオフレームまたはその一部をリピートしたりスキップすることによって、またはオーディオデータパケットまたはその一部をスキップしたり遅延させることによって、再同期される。しかしながら、人間はスキップされたりリピートされたオーディオデータに容易に気づく。
オーディオとビデオの再同期を制御する時に、プラスマイナス１／２フレームの時間ドリフトしきい値は、Ａ／Ｖ同期回路が振動しフレーム又はその一部を連続的にリピートしたりスキップすることを引き起こすこともありうる。従って、１フレームの時間ドリフト分解能が、最も細かいフレーム時間分解能として好ましい。前記の計算に使用された時間ドリフト分解能は、ビデオイメージ表示とオーディオ再生中のフレームやその一部（１／２フレームのような）のスキップ又はリピートとは同じではない。
図４Ｂを再び参照すると、ＶＰＴＳが符号化／圧縮されたデータストリーム内に検出されたときには、ＳＴＣカウンタ４１１はカウンタ入力４０３の検出されたＶＰＴＳを示す２進値に設定されロードされる。ＳＴＣカウンタ４１１がどのようにカウントするかに依存して、ＳＣＬＫクロック周波数は分割される。ここで、ＳＴＣカウンタ４１１が一つずつカウントする場合を想定すると、線４０１の９０ｋｈｚのＳＣＬＫ周波数は、カウンタクロック入力４０４に対して同じ周波数を生成する周波数デバイダ４１０で１つに分割される。ＳＴＣカウンタ４１１がインクリメントされるとき、Ｎに対する値が生成される。ＡＰＴＳに達すると、検出されたＡＰＴＳに対するＮの生成は完了されカウンタ出力４０５は（ＶＰＴＳ＋Ｎ）の計算を反映する。ＡＰＴＳが符号化／圧縮されたデータストリーム中に検出されたとき、レジスタ４１２はレジスタ入力４０２での検出されたＡＰＴＳを示す２進値がロードされる。減算器４１３は減算器入力４０５の（ＶＰＴＳ＋Ｎ）の値と減算器入力４０６のＡＰＴＳの値から（ＶＰＴＳ＋Ｎ）−ＡＰＴＳを計算する。バス４０７上の減算器４１３からの結果出力は、バス４０９上に供給された時間ドリフトしきい値とコンパレータ４１４によって比較イネーブル入力信号４２０による適当な時に比較される。上述されたように、次の一連の式が３０ｆｐｓの表示レートに対してコンパレータ４１４によって実行されるよう、大きな時間ドリフトしきい値が最初に比較される。
Ｅｑ．（Ｋ）もし、（ＶＰＴＳ＋Ｎ）−ＡＰＴＳ＜−９０００なら、
ビデオは少なくとも３フレームオーディオに対して遅れており、ビデオフレームをスキップし、もしそうではなくて、
Ｅｑ．（Ｌ）もし、（ＶＰＴＳ＋Ｎ）−ＡＰＴＳ＞９０００なら、
ビデオは少なくとも３フレームオーディオに対して進んでおり、ビデオフレームをリピートし、もしそうでなければ、次のより細かい分解能のステップを実行する。
Ｅｑ．（Ｍ）もし、（ＶＰＴＳ＋Ｎ）−ＡＰＴＳ＜−７５００なら、
ビデオは少なくとも２．５フレーム以上３フレームより少なくオーディオに対して遅れており、ビデオフレームをスキップし、もしそうではなくて、
Ｅｑ．（Ｎ）もし、（ＶＰＴＳ＋Ｎ）−ＡＰＴＳ＞７５００なら、
ビデオは少なくとも２．５フレーム以上３フレームより少なくオーディオに対して進んでおり、ビデオフレームをリピートし、もしそうでなければ、次のより細かい分解能のステップを実行する。
Ｅｑ．（Ｏ）もし、（ＶＰＴＳ＋Ｎ）−ＡＰＴＳ＜−３０００なら、
ビデオは少なくとも１フレーム以上２．５フレームより少なくオーディオに対して遅れており、ビデオフレームをスキップし、もしそうではなくて、
Ｅｑ．（Ｐ）もし、（ＶＰＴＳ＋Ｎ）−ＡＰＴＳ＞３０００なら、
ビデオは少なくとも１フレーム以上２．５フレームより少なくオーディオに対して進んでおり、ビデオフレームをリピートし、もしそうでなければ、次のより細かい分解能のステップを実行する。
Ｅｑ．（Ｑ）もし、（ＶＰＴＳ＋Ｎ）−ＡＰＴＳ＜−１５００なら、
ビデオは少なくとも１／２フレーム以上１フレームより少なくオーディオに対して遅れており、ビデオフレームをスキップし、もしそうではなくて、
Ｅｑ．（Ｒ）もし、（ＶＰＴＳ＋Ｎ）−ＡＰＴＳ＞１５００なら、
ビデオは少なくとも１／２フレーム以上１フレームより少なくオーディオに対して進んでおり、ビデオフレームをリピートし、もしそうでなければ、次のより細かい分解能のステップを実行し、もしそれ以上細かい分解能のステップが無く、実際の時間ドリフトがプラスマイナス１／２フレームの最後にテストされたフレーム時間より少ない場合、中止する。
今、図４Ａと図４Ｂを参照すると、上述したように、ＳＴＣカウンタ４１１がどのようにカウントするかに依存して、ＳＣＬＫクロック周波数は分割される。もし、ＳＴＣカウンタ４１１が２つずつカウントされると、線４０１の９０ｋｈｚのＳＣＬＫ周波数は、カウンタクロック入力４０４に対してＳＣＬＫの周波数の１／２を生成する周波数デバイダ４１０によって２つに分割される。もし、ＳＴＣカウンタ４１１が１２８ずつカウントすると、線４０１上の９０ｋｈｚのＳＣＬＫ周波数は１２８、即ち、２m（ｍ＝７）で、カウンタクロック入力４０４に対してＳＣＬＫの周波数の１／１２８を生成する周波数デバイダ４１０によって分割される。
同期回路のハード構成の説明
この発明の機能を実際のハードウエアに変換するために、Ａ／Ｖ同期回路が単一のモノリシック集積回路内で機能するための図４Ａ及び図４ＢのＡ／Ｖ同期回路に対して行われるいくつかの好ましい変更がある。符号化／圧縮されたデータを復号化／伸張されたビデオ及びオーディオデータに伸張し、復号化するために必要とされる時間、スクリーン上にイメージを表示するための時間、及びオーディオデータを再生するための時間と関連するシステムの遅延があるので、ビデオ及びオーディオのシステムの遅延の差異を考慮しなければならない。従って、ＶＰＴＳ若しくはＡＰＴＳは、ＶＰＴＳ若しくはＡＰＴＳからフレーム時間値を加算又は減算することによって、システムの遅延に対して補正される必要がある。これは次のように式で表される。
Ｅｑ．（III）ＶＴＰＳ’＝ＶＰＴＳ＋ＡＶＬＡＴＥＮＣＹ（オーディオビデオ遅延）
ここで、ＡＶＬＡＴＥＮＣＹ＝ＶＬＡＴＥＮＣＹ−ＡＬＡＴＥＮＣＹ
一方、ＡＰＴＳはこのように修正される。
Ｅｑ．（IV）ＡＰＴＳ’＝ＡＰＴＳ＋ＶＡＬＡＴＥＮＣＹ
ここで、ＶＡＬＡＴＥＮＣＹ＝ＡＬＡＴＥＮＣＹ−ＶＬＡＴＥＮＣＹ
従って、異なるシステムでのＡＶＬＡＴＥＮＣＹ及びＶＡＬＡＴＥＮＣＹの様々な値は、修正されたＡＰＴＳ、即ち、ＡＰＴＳ’又は修正されたＶＰＴＳ、即ち、ＶＰＴＳ’を得るためにレジスタにロードされ、ＡＰＴＳ若しくはＶＰＴＳのどちらかに加えられる。ＡＶＬＡＴＥＮＣＹとＶＡＬＡＴＥＮＣＹはあわせて、ＡＶＬＡＴＥＮＣＹ若しくは単純にシステム遅延と呼ばれる。３０ｆｐｓの表示レートについて上に示す（Ａ）乃至（Ｈ）の式を再編成及び再公式化する。
Ｅｑ．（１ａ）もし（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−９０００）＜０
ならばビデオはオーディオに対して少なくとも３フレーム進んでいるので、ビデオフレームを繰り返し、そしてもしそうでないのなら、
Ｅｑ．（２ａ）もし（ＶＰＴＳ’＋９０００）−（ＡＰＴＳ＋Ｍ）＜０
ならばビデオはオーディオに対して少なくとも３フレーム遅れているのでビデオフレームをスキップし、そしてもしそうでないのなら次のより細かい分解能のステップを実行する。
Ｅｑ．（３ａ）もし（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−７５００）＜０
ならばビデオはオーディオに対して少なくとも２．５フレーム以上３フレームより少なく進んでいるのでビデオフレームを繰り返し、そしてもしそうでないのなら、
Ｅｑ．（４ａ）もし（ＶＰＴＳ’＋７５００）−（ＡＰＴＳ＋Ｍ）＜０
ならばビデオはオーディオに対して少なくとも２．５フレーム以上３フレームより少なく遅れているので、ビデオフレームをスキップし、そしてもしそうでないのなら、より細かい分解能のステップを実行する。
Ｅｑ．（５ａ）もし（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−３０００）＜０
ならばビデオはオーディオに対して少なくとも１フレーム以上２．５フレームより少なく進んでいるのでビデオフレームを繰り返し、そしてもしそうでないのなら、
Ｅｑ．（６ａ）もし（ＶＰＴＳ’＋３０００）−（ＡＰＴＳ＋Ｍ）＜０
ならばビデオはオーディオに対して少なくとも１フレーム以上２．５フレームより少なく遅れているのでビデオフレームをスキップし、そしてもしそうでないのなら、次のより細かい分解能のステップを実行する。
Ｅｑ．（７ａ）もし（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−１５００）＜０
ならばビデオはオーディオに対して少なくとも１／２フレーム以上１フレームより少なく進んでいるのでビデオフレームを繰り返し、そしてもしそうでないのなら、
数Ｅｑ．（８ａ）もし（ＶＰＴＳ’＋１５００）−（ＡＰＴＳ＋Ｍ）＜０
ならばビデオはオーディオに対して少なくとも１／２フレーム以上１フレームより少なく遅れているのでビデオフレームをスキップし、そしてもしそうでないのなら、次のより細かい分解能のステップを実行し、或いはもしより細かい分解能のステップがなく、そして実際の時間ドリフトがプラスマイナス１／２フレームの最後にテストされたフレーム時間よりも少ない場合には、中止する。
６０ｆｐｓの表示レートについては、時間しきい値が半分にされるのみならず、ＡＶＬＡＴＥＮＣＹの値によって示される遅延も半分にされる。従って、ＡＰＴＳはＡＰＴＳ”に修正され、ＶＰＴＳはＶＰＴＳ”に修正される。式Ｅｑ．（１ａ）−（６ａ）はＥｑ．（１ｂ）−（８ｂ）に修正される。
Ｅｑ．（１ｂ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ”−４５００）＜０
Ｅｑ．（２ｂ）（ＶＰＴＳ”＋４５００）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（３ｂ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ”−３７５０）＜０
Ｅｑ．（４ｂ）（ＶＰＴＳ”＋３７５０）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（５ｂ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ”−１５００）＜０
Ｅｑ．（６ｂ）（ＶＰＴＳ”＋１５００）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（７ｂ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ”−７５０）＜０
Ｅｑ．（８ｂ）（ＶＰＴＳ”＋７５０）−（ＡＰＴＳ＋Ｍ）＜０
表示レートが変化すると、時間ドリフトのしきい値及びＶＰＴＳ’及びＡＰＴＳ’は式Ｅｑ．（１ｂ）−（８ｂ）で変更されるということを注意すべきである。
回路規模を縮小するために、時間ドリフトしきい値は、理想的な１０進値からここではオフセット値と呼ばれる値までの２進値に丸められる。
タイムスタンプ値は３３ビット巾なので、カウンタ及び減算器も同様に３３ビット巾でなければならない。これは回路規模やシリコン  リアル  エステイト（ｒｅａｌ  ｅｓｔａｔｅ）の使用を増大させるものとして集積回路では好ましくない。その代わりに、３３ビット値をより扱いやすい巾に縮めることは好ましい。ＭＰＥＧ標準で推奨されている好ましいシステムクロック周波数が９０ｋｈｚ、即ち、１１．１１マイクロ秒（μｓ）だったことを思い出すべきである。周波数デバイダが１（２m＝１の場合、ｍ＝０）で分割する上述の図４Ａのシステムを用いると、各カウンタのカウント値は１１．１１μｓを示す。従って、少なくともＡＰＴＳ及びＶＰＴＳタイムスタンプ値の最下位のビットは同様に１１．１１μｓを示す。２番目のＬＳＢは２２．２２μｓを示し、３番目のＬＳＢは４４．４４μｓ、４番目のＬＳＢは８８．８８μｓ等である。３０ｆｐｓでは、１／２フレーム時間は、およそ１６．６７ミリ秒となる１５００ＳＣＬＫクロック周期、１フレーム時間は３０００ＳＣＬＫ周期、即ち、３３．３３ミリ秒、２．５フレーム周期は７５００ＳＣＬＫ周期、即ち、８３．３３μｓだったことを思い出すべきである。図９は３３ビットタイムスタンプの下位１８ビットの興味のある時間値のあるパターンについて示している。
１／２、１、２．５及び３フレーム時間の時間ドリフトのしきい値に関しては、プラスマイナス１５３６、３０７２、７６８０及び９２１６のオフセット比較値は殆ど近似値である。これらの値の選択は、全ての他の上位及び下位ビットが０なので、オフセット比較値の長さをビット９から１３に切り捨てることを可能にする。従って、この発明の構成においては、オフセット比較に対してたった５ビット巾の値及び５ビット巾の記憶レジスタが用いられることが必要である。これはＥｑ．（１ａ）−（８ａ）を次に示すＥｑ．（９ａ）−（１６ａ）に夫々変更する。
Ｅｑ．（９ａ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−９２１６）＜０
Ｅｑ．（１０ａ）（ＶＰＴＳ’＋９２１６）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（１１ａ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−７６８０）＜０
Ｅｑ．（１２ａ）（ＶＰＴＳ’＋７６８０）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（１３ａ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−３０７２）＜０
Ｅｑ．（１４ａ）（ＶＰＴＳ’＋３０７２）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（１５ａ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−１５３６）＜０
Ｅｑ．（１６ａ）（ＶＰＴＳ’＋１５３６）−（ＡＰＴＳ＋Ｍ）＜０
６０ｆｐｓの表示レートでは、１／２、１、２．５及び３フレーム時間の修正された時間ドリフトは、夫々プラスマイナス７５０、１５００、３７５０及び４５００であった。必要とされるビットの数を縮めるために、プラスマイナス７６８、１５３６、３８４０及び４６０８の値は上のテーブルから置き換えられる。７６８は、１５３６に対する値を単にＬＳＢの方向に１ビットシフトすることである２で分割することにより、１５３６から取り出すことができるということに注意されたい。他の値は、オフセット値の長さを５ビット巾に保持するために、この方法と同様に得ることができる。好ましくは、周波数デバイダは、３０ｆｐｓの表示レートの、２若しくは１／２倍の表示レートに対してＥｑ．（９ａ）−（１６ａ）と共に用いられる。Ｅｑ．（１ｂ）−（８ｂ）から変更された６０ｆｐｓの式は、
Ｅｑ．（９ｂ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ”−４６０８）＜０
Ｅｑ．（１０ｂ）（ＶＰＴＳ”＋４６０８）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（１１ｂ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ”−３８４０）＜０
Ｅｑ．（１２ｂ）（ＶＰＴＳ”＋３８４０）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（１３ｂ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ”−１５３６）＜０
Ｅｑ．（１４ｂ）（ＶＰＴＳ”＋１５３６）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（１５ｂ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ”−７６８）＜０
Ｅｑ．（１６ｂ）（ＶＰＴＳ”＋７６８）−（ＡＰＴＳ＋Ｍ）＜０
この方法は、３０ｆｐｓに対するオフセット値をＭＳＢの方向に１ビットシフトすることによって成し遂げられるオフセット値の２倍化によって３０ｆｐｓの式から１５ｆｐｓに対する式及び値を生成するために用いられる。一方、オフセット値をシフトしない代わりに、可変周波数デバイダによるシステムクロックの分割は、正確な表示レートに対してＥｑ．（９ａ）−（１６ａ）を使用する。１５ｆｐｓに対する結果として生じる式は次に示すようにＥｑ．（９ａ）−（１６ａ）から変更される。
Ｅｑ．（９ｃ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’’’−１８４５２）＜０
Ｅｑ．（１０ｃ）（ＶＰＴＳ’’’＋１８４５２）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（１１ｃ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’’’−１５３６０）＜０
Ｅｑ．（１２ｃ）（ＶＰＴＳ’’’＋１５３６０）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（１３ｃ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’’’−６１４４）＜０
Ｅｑ．（１４ｃ）（ＶＰＴＳ’’’＋６１４４）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（１５ｃ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’’’−３０７２）＜０
Ｅｑ．（１６ｃ）（ＶＰＴＳ’’’＋３０７２）−（ＡＰＴＳ＋Ｍ）＜０
ＶＰＴＳは、１５ｆｐｓの表示レートでの正確な遅延に対するＥｑ．（９ｃ）−（１６ｃ）で、ＶＰＴＳ’’’に修正されるものとして示される。−方、ＡＰＴＳの値はＡＰＴＳ’’’に修正される。Ｅｑ．（９ｃ）−（１６ｃ）に対するオフセット値は、Ｅｑ．（９ａ）−（１６ａ）のそれの２倍であり、そしてＥｑ．（９ｂ）−（１６ｂ）に対するオフセット値は、Ｅｑ．（９ａ）−（１６ａ）のそれの１／２であるということに注意されたい。従って、３０ｆｐｓの表示レートに対して選択されたオフセット数を使うことにより、２倍又は１／２倍の表示レートに対する他のオフセット数は、オフセット値のビットを左若しくは右にシフトすることによって表示レートに対して生成される。もし表示レートが３０ｆｐｓの２倍若しくは１／２倍でなければ、他のオフセット数はＡ／Ｖ同期回路にロードされる必要がある。その代わり、ＳＣＬＫの周波数の分割を変更することによって、他の表示レートは、Ｅｑ．（９ａ）−（１６ａ）のようなただ１組の式によってサポートされる。
インクリメントされたＡＰＴＳ値からＶＰＴＳが減算される、図４Ａのロジック及びＥｑ．（Ａ）−（Ｈ）に対し、Ｅｑ．（９ａ）−（１６ａ）、Ｅｑ．（９ｂ）−（１６ｂ）及びＥｑ．（９ｃ）−（１６ｃ）が適用可能であるる。インクリメントされたＶＰＴＳ値からＡＰＴＳが減算される、図４Ｂのロジック及びＥｑ．（Ｋ）−（Ｒ）に対し、Ｅｑ．（９ａ）−（１６ａ）、Ｅｑ．（９ｂ）−（１６ｂ）及びＥｑ．（９ｃ）−（１６ｃ）は、Ｅｑ．（１７ａ）−（２４ａ）、Ｅｑ．（１７ｂ）−（２４ｂ）及びＥｑ．（１７ｃ）−（２４ｃ）に１つ１つ適合するように変更される。
３０ｆｐｓの表示レート用
Ｅｑ．（１７ａ）（ＶＰＴＳ＋Ｎ）−（ＡＰＴＳ’−９２１６）＜０
Ｅｑ．（１８ａ）（ＡＰＴＳ’＋９２１６）−（ＶＰＴＳ＋Ｎ）＜０
Ｅｑ．（１９ａ）（ＶＰＴＳ＋Ｎ）−（ＡＰＴＳ’−７６８０）＜０
Ｅｑ．（２０ａ）（ＡＰＴＳ’＋７６８０）−（ＶＰＴＳ＋Ｎ）＜０
Ｅｑ．（２１ａ）（ＶＰＴＳ＋Ｎ）−（ＡＰＴＳ’−３０７２）＜０
Ｅｑ．（２２ａ）（ＡＰＴＳ’＋３０７２）−（ＶＰＴＳ＋Ｎ）＜０
Ｅｑ．（２３ａ）（ＶＰＴＳ＋Ｎ）−（ＡＰＴＳ’−１５３６）＜０
Ｅｑ．（２４ａ）（ＡＰＴＳ’＋１５３６）−（ＶＰＴＳ＋Ｎ）＜０
６０ｆｐｓの表示レート用
Ｅｑ．（１７ｂ）（ＶＰＴＳ＋Ｎ）−（ＡＰＴＳ”−４６０８）＜０
Ｅｑ．（１８ｂ）（ＡＰＴＳ”＋４６０８）−（ＶＰＴＳ＋Ｎ）＜０
Ｅｑ．（１９ｂ）（ＶＰＴＳ＋Ｎ）−（ＡＰＴＳ”−３８４０）＜０
Ｅｑ．（２０ｂ）（ＡＰＴＳ”＋３８４０）−（ＶＰＴＳ＋Ｎ）＜０
Ｅｑ．（２１ｂ）（ＶＰＴＳ＋Ｎ）−（ＡＰＴＳ”−１５３６）＜０
Ｅｑ．（２２ｂ）（ＡＰＴＳ”＋１５３６）−（ＶＰＴＳ＋Ｎ）＜０
Ｅｑ．（２３ｂ）（ＶＰＴＳ＋Ｎ）−（ＡＰＴＳ”−７６８）＜０
Ｅｑ．（２４ｂ）（ＡＰＴＳ”＋７６８）−（ＶＰＴＳ＋Ｎ）＜０
１５ｆｐｓの表示レート用
Ｅｑ．（１７ｃ）（ＶＰＴＳ＋Ｎ）−（ＡＰＴＳ’’’−１８４５２）＜０
Ｅｑ．（１８ｃ）（ＡＰＴＳ’’’＋１８４５２）−（ＶＰＴＳ＋Ｎ）＜０
Ｅｑ．（１９ｃ）（ＶＰＴＳ＋Ｎ）−（ＡＰＴＳ’’’−１５３６０）＜０
Ｅｑ．（２０ｃ）（ＡＰＴＳ’’’＋１５３６０）−（ＶＰＴＳ＋Ｎ）＜０
Ｅｑ．（２１ｃ）（ＶＰＴＳ＋Ｎ）−（ＡＰＴＳ’’’−６１４４）＜０
Ｅｑ．（２２ｃ）（ＡＰＴＳ’’’＋６１４４）−（ＶＰＴＳ＋Ｎ）＜０
Ｅｑ．（２３ｃ）（ＶＰＴＳ＋Ｎ）−（ＡＰＴＳ’’’−３０７２）＜０
Ｅｑ．（２４ｃ）（ＡＰＴＳ’’’＋３０７２）−（ＶＰＴＳ＋Ｎ）＜０
図５Ａは、図４Ａのそれに機能の点で同様の式Ｅｑ．（９ａ）−（１６ａ）の８つの式の内の４つを用いる、Ａ／Ｖ同期回路を説明している。図５Ｂは、図４Ｂのそれに機能の点で同様のＥｑ．（１７ａ）−（２４ａ）の８つの式の内の４つを用いる、Ａ／Ｖ同期回路を説明している。図５Ｂの回路の動作は、図５Ａの回路の動作と同様である。それゆえに、次の説明の大半は、両方の回路に適用できる。２つのオフセット値及びＡＶ遅延値は、入力端子５１７を介してロード値信号を受信しているときに、入力端子５４３を介してレジスタ５７７にロードされる。オフセット値を得るために時間ドリフトしきい値を切り捨てるか若しくは丸めることは、周波数デバイダ５１０と合わされた場合に、図５Ａの残りのハードウエアのデータバスの大きさを縮小することができる。記憶されたオフセット値の２倍若しくは１／２を得るために左若しくは右にシフトすることは、マルチプレクサ５６６によって成し遂げられる。むしろ周波数デバイダ５１０は、図４Ａの周波数デバイダに関して簡単に説明された圧縮を利用可能にすることだけでなく、３０ｆｐｓの式に対するオフセット値の倍数を得るためにも用いられる。図９及び図５Ａは、オフセット値と呼ばれる切り捨てられ修正された時間ドリフトしきい値と組み合わせて周波数デバイダを使用することの有効性を説明している。ＡＰＴＳ及びＶＰＴＳが３３ビット値であるとして説明されたが、しかしながら、要求されている最大時間ドリフト幅を決定するために、ＡＰＴＳ及びＶＰＴＳの最上位ビットの全てが必要とされてはいない。例えば、１番目のＭＳＢがＡＭ（午前）若しくはＰＭ（午後）を示すと同時に、最上位ビット２番目のＭＳＢは、２31×１１．１１μｓ、即ち、６．６２５時間を示す。従って、オーディオ再生とビデオ再生とはそう大きく同期がはずれないと予測される。オーディオ及びビデオとの同期はずれは、１８から０までのビットによって示される０から３秒までの範囲内であることが予想される。
従って、ＡＰＴＳ及びＶＰＴＳ値の両方の３２から１９までのビットは切り捨て可能である。再同期はまた、６０ｆｐｓのフレームの１／１０よりも少ない１．４２ｍｓより少ない時間値については求められていないので、ＡＰＴＳ及びＶＰＴＳ値の６から０までのビットが同様に切り捨て可能である。従って、ＡＰＴＳ及びＶＰＴＳについて解析される望ましいビットの範囲は１８から７である。
図５Ａにおいては、切り捨てられたＡＰＴＳ［１８：７］がバス５０２を介してカウンタ５１１に入力され、切り捨てられたＶＰＴＳ［１８：７］がバス５０３を介してレジスタ５１２に入力されることが諒解されよう。切り捨てのために、カウンタ５１１は、正確な表示レート及び任意のオフセット値だけでなく切り捨てにも適応するように、カウントしなければならない。切り捨てることだけ考えると、カウンタは２7（１２８）でカウントすべきである。従って、セレクタブル周波数デバイダ５１０は、ライン５０４を介してカウンタ５１１に正確な増分値入力を供給するために、１２８でＳＣＬＫの周波数を分割する。このように、ＶＰＴＳ、ＡＰＴＳ及び修正された時間ドリフトしきい値の巾を切り捨てることは、より少ない回路を持つＡ／Ｖ同期回路を提供するために、より小さなカウンタ、加算器、レジスタ、バス及び他のハードウエアの使用を許容する。
Ａ／Ｖ同期回路によって使用される回路の総量を更に減らすために、Ｅｑ．（９ａ）−（１６ａ）、Ｅｑ．（９ｂ）−（１６ｂ）、Ｅｑ．（９ｃ）−（１６ｃ）若しくは時間ドリフトがしきい値を超えているか否かを決定するための他の同様な式の演算を実行するため１つの加算器／減算器が図５Ａで用いられている。もし、図５Ａの加算器／減算器によって式の１つの演算の結果が負の値を示すオーバーフロー状態であれば、その式は満足される。ＡＰＴＳ、ＶＰＴＳ及び修正された時間ドリフト値は切り捨てられているので、加算器／減算器５１３はたった１２ビットしか必要としない。勿論、全く切り捨てないか若しくは他のビットが、ＡＰＴＳ、ＶＰＴＳ及び修正された時間ドリフト値に対して異なるデータ長となるように切り捨てられ、それによって、他の回路に対する異なる大きさと同様に異なる大きさの加算器／減算器を必要とするのでも良い。
さて、図５ＡのＡ／Ｖ同期回路の動作が、３０ｆｐｓの表示レート、プラスマイナス１と３フレーム時間の時間ドリフトしきい値が、適切なＥｑ．（９ａ）−（１０ａ）、Ｅｑ．（１３ａ）−（１４ａ）が適用できると仮定して詳細に説明する。このシステムは、ソフトウエアリセット若しくはシステムデコーダ内の分離器からのリセットのどちらかを受信して初期リセットされる。このシステムはまたＥｑ．（９ａ）−（１０ａ）、Ｅｑ．（１３ａ）−（１４ａ）の結果の１つが満たされたときにリセットされる。オーディオ及びビデオが、丁度良く適合することができるよりも多いフレーム同期がはずれている場合には、ソフトウエアが再同期を実行することができるように、割り込み要求がソフトウエアに送られる。オーディオとビデオが同期しておらず、ビデオフレームをスキップすることが望ましいが、しかしながら、Ｂタイプフレームが圧縮されたビデオデータストリーム内に予め決められた期間中に見つけられていない場合には、ソフトウエアが、オーディオとビデオを同期させるために１つのビデオフレーム若しくは複数のビデオフレームをスキップさせるようにするために、同様にソフトウエアに割り込みが送られる。リセット状態のどの場合でも、リセットロジック５５２はステートマシン５５３をリセットしてＩＤＬＥ（活動停止）状態０（Ｓ０）５２０にする。セレクタブル周波数デバイダ５１０は、圧縮及び異なるフレームレートを適応させるためにシステムクロックを分割する。もしもレジスタ５５７がＥｑ．（９ａ）−（１０ａ）、Ｅｑ．（１３ａ）−（１４ａ）で表された３０ｆｐｓの表示レートに対する値がロードされ、実際に受信される圧縮されたビットストリームが３０ｆｐｓの表示レートに適合している場合には、周波数デバイダは、切り捨てのみに適合するために２7（１２８）で分割する。しかしながら、もしもレジスタ５５７内の値がロードされたＥｑ．（９ａ）−（１０ａ）、Ｅｑ．（１３ａ）−（１４ａ）に対する値のままで、実際に受信した圧縮ビットストリームが６０ｆｐｓの値だった場合には、セレクタブル周波数デバイダ５１０は、カウンタ５１１がより速くカウントすることを可能とするために、２6（６４）で分割する。２7（１２８）、２6（６４）へのセレクタブル周波数デバイダ５１０の分割の変更は、Ｅｑ．（９ｂ）−（１０ｂ）、Ｅｑ．（１３ｂ）−（１４ｂ）が図５Ａの回路によって効果的に用いられるように、レジスタ５５７に記憶されているオフセット値を半分に分割するのと同じ効果を持つ。同様に、もしも圧縮されているビットストリームが１５ｆｐｓの表示レートであった場合、デバイダは、Ｅｑ．（９ｃ）−（１０ｃ）、Ｅｑ．（１３ｃ）−（１４ｃ）を用いるようにレジスタ５５７に記憶されているオフセット値を２倍にする効果を生み出すために、２５６、即ち、２8で分割する。
状態０（Ｓ０）の間、システム５２０は適切なオフセット値及び遅延値をレジスタ５５７内に読み込む。時間ドリフトは、プラスマイナス１フレーム時間及びプラスマイナス３フレーム時間の好ましい時間ドリフトしきい値を超えているかどうかを見るために検査されると仮定する。最初に符号化／圧縮されたビデオフレームがスキップされているか否かを知り、次に復号化／伸張されたビデオフレームがリピートされたか否かを知ることが好ましいので、式の並び順序はわずかに変更される。従って、式の計算の順序は３０ｆｐｓの通常の表示レートに関しては、次のようになる。
Ｅｑ．（１０ａ）（ＶＰＴＳ’＋９２１６）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（９ａ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−９２１６）＜０
Ｅｑ．（１４ａ）（ＶＰＴＳ’＋３０７２）−（ＡＰＴＳ＋Ｍ）＜０
Ｅｑ．（１３ａ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−３０７２）＜０
ここで、ＶＰＴＳがＶＰＴＳ’になるためにＡＶＬＡＴＥＮＣＹによって変更される。
切り捨てられた値であるオフセット値は、ＡＶ遅延値と並列にバス５４３のビット［１９：０］からレジスタ５７７にロードされる。例えば、図９のビット［１３：９］からの２進パターン１００１０で示されるオフセット値９２１６は、ＯＶ１と示されているレジスタ５５７の５ビット［９：５］にロードされる。図９のビット［１３：９］からの２進パターン００１１００で示されるオフセット値３０７２は、ＯＶ２と示されているレジスタ５５７の５ビット［１４：１０］に同時にロードされる。ＡＶ遅延値は、ＡＶＬと示されているレジスタ５５７の５ビット［４：０］に同時にロードされる。Ａ／Ｖ同期回路は、圧縮されたデータストリームから最初のＡＰＴＳ値を受信状態０（５２０）で待つ。図３ＡのＡＰＴＳ３１２のようなＡＰＴＳが発生すると、図５ＡのＡ／Ｖ同期回路は、カウンタ５１１をバス５０２上で使用可能な短くされたＡＰＴＳ値に初期化する。ＳＣＬＫは、セレクタブル周波数デバイダ５１０がカウンタ５１１が初期化されたＡＰＴＳ値からインクリメントするのを可能にする前に、２mのクロック周期を実行する。この場合、１２８ＳＣＬＫクロック周期がカウントされた後、周波数デバイダ５１０はカウンタ５１１をインクリメントする。カウンタ５１１は連続的にインクリメントし、レジスタ５８１によって記憶された圧縮データストリーム中の新しいＡＰＴＳ値の受信後に、ＬＤＰＴＳ１信号５１５によって再初期化されて新しいＡＰＴＳ値にされる。カウンタ５１１が多数回インクリメントされた後に、図３ＡのＶＰＴＳ３０８のようなＶＰＴＳが圧縮データストリーム中で受信され、ステートマシン５５３を状態１（Ｓ１）５２１に移行させる。
状態１の間、切り捨てられたＶＰＴＳ値は、ＰＴＳレジスタ５１２にロードされるようにマルチプレクサ５５９によって選択される。次のステップは、以下に繰り返されているＥｑ．（III）によってＶＰＴＳとＶＰＴＳ’に修正する。
Ｅｑ．（III）ＶＰＴＳ’＝ＶＰＴＳ＋ＡＶＬＡＴＥＮＣＹ
チップクロック５１８は、Ｅｑ．（III）を実行するために、ステートマシン５５３を、次の状態、ステート２（Ｓ２）５５２にインクリメントする。Ｓ２の間、レジスタ５１７のビット［４：０］に記憶されているＡＶ遅延値は、バスＹ［１２：０］５３７のＹ［６：２］５３５のビットへマルチプレクサ５５６を通過するよう選択される。バスＹ［１２：０］５３７のＹ［１２：７、１：０］の１２から７及び１から０までの番号付けされた残りのビットは、ビット１２から７及び１から０を論理０レベルにセットするためにグランドに接続される。
状態２、３、５、７及び９の間、信号５３１（Ｓ２、Ｓ３、Ｓ５、Ｓ７、Ｓ９）は、加算器／減算器５１３の入力Ａとしてのバス５０５へマルチプレクサ５５８を通過するようにバスＹ［１２：０］５３７を選択する。信号５３１（Ｓ２、Ｓ３、Ｓ５、Ｓ７、Ｓ９）もまた、状態２、３、５、７及び９の間、マルチプレクサ５５４を介して加算器／減算器５１３の入力Ｂに入力するため、バスＲ［１２：０］５４０を選択する。レジスタ５１２は、その中に記憶されているＶＰＴＳ、ＶＰＴＳ［１８：７］の切り捨てられた値を、バスＲ［１２：０］５４０のＲ［１１：００］のビット１１から０に送る。状態２の間、切り捨てられたＶＰＴＳの値は、マルチプレクサ５５４を介して加算器／減算器５１３のバス５０６上の入力Ｂに入力する。加算器／減算器は、２の補数の加算を用いて減算を実行する能力及び入力Ａを入力Ｂと交換する及びこの逆を行う能力を持つ加算器である。状態２の間、加算器／減算器５１３は（ＡＶＬＡＴＥＮＣＹ＋ＶＰＴＳ）を実行し、バスＳＵＭ［１２：０］５０７にＶＰＴＳ’値を送る。その出力、加算器／減算器５１３のＳＵＭ［１２：０］は、状態２の間はレジスタ５１２に、状態３、５、７及び９の間はレジスタ５５５に記憶される。従って、状態２の間、（ＡＶＬＡＴＥＮＣＹ＋ＶＰＴＳ）＝ＶＰＴＳ’の結果はレジスタ５１２に記憶される。次に、ステートマシン５５３は状態３（Ｓ３）５２３に遷移する。
状態３（Ｓ３）５２３の間、ビデオがオーディオに対して３フレームより大きく遅れているか否かを検出するために、Ｅｑ．（１０ａ）（ＶＰＴＳ’＋９２１６）−（ＡＰＴＳ＋Ｍ）＜０の計算の最初のステップが実行される。（ＶＰＴＳ’＋９２１６）の値は、カウンタが（ＡＰＴＳ＋Ｍ）の値を保持している間に生成される。状態３及び５の間、信号５６５（Ｓ３、Ｓ５）は、マルチプレクサ５５６を介してＹ［１２：０］バス５３７のビット２から６へ送るようにオフセット値ＯＶ１を選択する。信号５３１は、マルチプレクサ５５８を介してバス５０５に送り、加算器／減算器５１３の入力Ａに入力するために、Ｙ［１２：０］バス５３７を選択する。レジスタ５１２に記憶されているＶＰＴＳ’の値は、マルチプレクサ５５４を介してバス５０６に送り、加算器／減算器の入力Ｂに入力するために信号５３１によって選択される。加算器／減算器制御信号５６０−５６２は、加算器／減算器にＡ＋Ｂの機能を実行させる。従って、加算器／減算器５１３は、（９２１６＋ＶＰＴＳ’）を実行し、そして、その結果をＳＵＭ［１２：０］バス５０７に出力する。ＳＵＭ［１２：０］バス５０７上の結果は、状態３、５、７及び９の間、チップクロック５１８及び信号５６７（Ｓ３、Ｓ５、Ｓ７、Ｓ９）によってレジスタ５５５に記憶される。チップクロック信号はまたステートマシンに次の状態、すなわち、状態４に遷移させる。
状態４（Ｓ４）５２４の間、Ｅｑ．（１０ａ）の（ＶＰＴＳ’＋９２１６）−（ＡＰＴＳ＋Ｍ）＜０の計算の最後のステップが実行される。状態４、６、８及び１０の間、信号５３１は、加算器／減算器５１３の入力端子Ａに入力されるバス５０５にマルチプレクサ５５８を介して送るためにカウンタ５１１の出力を選択する。図５ＡのＡ／Ｖ同期回路の残りの部分がシステムクロックの周波数で動作している間、カウンタはセレクタブル周波数デバイダ５１０からの出力によってインクリメントされるので、カウンタ５１１の出力は、式の計算の間、不変の値として現れる。従って、カウンタ出力５４４は、ＶＰＴＳが受信された後にその値からインクリメントされるべきではない。
状態４、６、８及び１０の間、信号５３１は、マルチプレクサ５５４を介してバス５０６上に送り、加算器／減算器５１３の入力Ｂに入力するように、レジスタ５５５からの出力を選択する。状態４の間、値（９２１６＋ＶＰＴＳ’）は、入力Ｂとして加算器／減算器５１３に入力され、値（ＡＰＴＳ＋Ｍ）は、入力Ａとして加算器／減算器５１３に入力される。加算器／減算器制御信号５６０−５６２は、Ｂ−Ａの演算を実行するために、加算器／減算器５１３を選択する。ＳＷＡＰ信号５６１は入力Ａと入力Ｂとを交換するためにアクティブにされ、ＣＯＭＰＢ信号５６２は、加算器／減算器５１３のキャリー入力でのＳＵＢ信号５６０の加算に伴い、加算器／減算器５１３が、（ＡＰＴＳ＋Ｍ）を補い、それの２の補数の形に変換するためにアクティブにされる。加算器／減算器５１３は、その後は（ＶＰＴＳ’＋９２１６）を−（ＡＰＴＳ＋Ｍ）に加算する。
もしも状態４の間、加算器／減算器５１３のオーバーフロー出力５４９がオーバーフロー状態を示すと、Ｅｑ．（１０ａ）は満足され、ビデオイメージの表示はオーディオ再生に対して少なくとも３フレーム遅れており、ビデオフレーム若しくはそれの一部分が後のオーディオ再生時間に追いつくようスキップされる。もしも計算が結果としてオーバーフロー状態にならなければ、ステートマシンは状態５（Ｓ５）５２５に遷移する。オーバーフロー出力５４９は、状態４の間Ｄフリップフロップ５７２に、状態６の間Ｄフリップフロップ５７４に、状態８の間Ｄフリップフロップ５７６に、そして状態１０の間Ｄフリップフロップ５７８に記憶される。オーバーフロー状態の場合には、制御信号出力ＳＫＩＰ  ＭＵＬＴ５４５は、ビデオイメージをオーディオ再生に十分マッチさせるために、ビデオイメージの複数のフレーム、例えば３フレーム、のスキップをさせるために、他の回路（図示せず）に知らせる。それに代えて、制御信号出力５４５は、イメージのビデオ表示が追いつくまでの間、多数のフレーム分、オーディオ再生を遅延させても良い。しかしながら、この後者の方法は、人の眼に対するビデオ表示の変化よりも、人の耳に対するオーディオ再生の変化が気づかれ易いので好ましくない。更に、もしオーバーフローの状態が現れたら、オーバーフロー出力５４９は、リセットロジック５５２を通じてステートマシン５５３をリセットさせる。一旦、式Ｅｑ．（９ａ）、（１０ａ）、（１３ａ）若しくは（１４ａ）の１つが満足されると、図５ＡのＡ／Ｖ同期回路は、計算のシーケンスの全てを実行する必要がない。もし（ＶＰＴＳ’＋９２１６）−（ＡＰＴＳ＋Ｍ）の計算がオーバーフロー状態にならなかった場合は、ステートマシン５５３は状態５に遷移するということを思い出されたい。
状態５（Ｓ５）５２３の間、ビデオがオーディオに対し３フレーム時間以上進んでいるか否かを検出するために、Ｅｑ．（９ａ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−９２１６）＜０の計算が開始される。状態５は（ＶＰＴＳ’−９２１６）を生成する。制御信号５６５（Ｓ３、Ｓ５）は、状態５の間、マルチプレクサ５５６を介してバスＹ［１２：０］５３７のビット６から２に送るように、ＯＶ１に記憶されているオフセット値を選択する。制御信号５３１は、状態５の間、マルチプレクサ５５８を介して加算器／減算器５１３の入力Ａに入力するために、バスＹ［１２：０］５３７を選択する。制御信号５３１は、状態５の間、マルチプレクサ５５４を介して加算器／減算器５１３の入力Ｂに入力するために、ビット１１から０上の切り捨てられたＶＰＴＳを持つバスＲ［１２：０］を更に選択する。加算器／減算器制御信号５６０−５６２は、Ｂ−Ａの演算を実行するために加算器／減算器５１３を選択する。ＳＷＡＰ信号５６１は、入力Ａと入力Ｂを交換するためにアクティブになり、ＣＯＭＰＢ信号５６２は、加算器／減算器５１３のキャリー入力へのＳＵＢ信号５６０の加算に伴い、加算器／減算器５１３が（９２１６）を補い、その２の補数の形に変換するようにアクティブになる。従って、加算器／減算器５１３は、（ＶＰＴＳ＋−９２１６）の加算を実行し、バス５０７上のその結果は、状態５の間、レジスタ５５５に記憶される。ステートマシンはそして状態６に遷移する。
状態６（Ｓ６）５２６の間、計算Ｅｑ．（９ａ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−９２１６）＜０は完了される。（ＶＰＴＳ＋−９２１６）の値は（ＡＰＴＳ＋Ｍ）から減算される。信号線５３１は、状態６の間、加算器／減算器５１３の入力Ａに入力されるバス５０５にマルチプレクサ５５８を介して送るために、カウンタ出力バス５４４を選択する。信号線５３１は、また、マルチプレクサを介してバス５０６に送り、加算器／減算器５１３の入力Ｂに入力するためにバス５４１上のレジスタ５５５からの出力を選択する。加算器／減算器制御信号５６０−５６２は、Ｂ−Ａの演算を実行するために、加算器／減算器５１３を選択する。ＳＷＡＰ信号５６１は、入力Ａと入力Ｂを交換するためにアクティブになり、ＣＯＭＰＢ信号５６２は、加算器／減算器５１３のキャリー入力へのＳＵＢ信号５６０の加算に伴い、加算器／減算器５１３が（ＶＰＴＳ’＋−９２１６）を、その２の補数の形に変換するようにアクティブにする。加算器／減算器５１３は、（ＡＰＴＳ＋Ｎ）への−（ＶＰＴＳ’＋−９２１６）の加算を実行する。もし（ＡＰＴＳ＋Ｎ）への（ＶＰＴＳ’＋−９２１６）の加算によってオーバーフロー状態となったら、Ｅｑ．（９ａ）は満足され、ビデオはオーディオに対して少なくとも３フレーム進んでいる。もし、オーバーフロー状態がなければ、ステートマシンは状態７に遷移する。
オーバーフロー状態の場合、オーバーフロー出力５４９は、状態６の間、Ｄフリップフロップ５７４に記憶される。制御信号出力ＲＰＴ  ＭＵＬＴ５４６は生成され、ビデオイメージが不変に保持され、オーディオがビデオに追いつくように、ビデオイメージの複数のフレーム、例えば３フレームをリピートするように、他の回路（図示せず）に知らせる。その代わりに、制御信号出力５４５は、イメージのビデオ表示に追いつくために、オーディオ再生に、多数のフレーム若しくはデータパケットをスキップするようにさせるが、しかしながら、オーディオーデータのスキップは好ましくない。更にまた、オーバーフロー状態の場合には、ステートマシン５５３は状態０にリセットされる。もしも（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−９２１６）の計算がオーバーフロー状態とならなければ、ステートマシンが状態７に遷移するということを思い出されたい。
状態７（Ｓ７）５２５の間、計算Ｅｑ．（１４ａ）（ＶＰＴＳ’＋３０７２）−（ＡＰＴＳ＋Ｍ）＜０は、ビデオがオーディオに対し１フレーム時間より大きく遅れているか否かを検出するために開始される。状態７の間、（ＶＰＴＳ’＋３０７２）に対する値が生成される。状態７及び９の間、レジスタ５５７からのオフセット値ＯＶ２は、マルチプレクサ５５６を介して、バスＹ［１２：０］５３７のビット６から２に送られるように、信号５６９（Ｓ７、Ｓ９）によって選択される。信号５３１は、マルチプレクサ５５８を介してバス５０５に送り、加算器／減算器５１３の入力端子Ａに入力するために、バスＹ［１２：０］５３７を選択する。信号線５３１はまた、状態７の間、加算器／減算器５１３の入力Ｂとして、バス５０６に接続するために、ビット１１から０上でレジスタ５１２に記憶されているＶＰＴＳ値を使用可能なバスＲ［１２：０］５４０を選択する。加算器／減算器制御信号５６０から５６２は、Ａ＋Ｂの演算を実行するために、加算器／減算器５１３を選択する。ＳＷＡＰ信号５６１、ＣＯＭＰＢ信号５６２及びＳＵＢ信号５６０は、加算器／減算器５１３が（ＶＰＴＳ’＋３０７２）の加算を実行できるようにインアクティブになる。バス５０７上の結果として生じた出力は、状態７の間、信号５６７及びチップクロック５１８によってレジスタ５５５に記憶される。チップクロックはまた、ステートマシンを状態８へ遷移させる。
状態８（Ｓ８）５２８の間、計算Ｅｑ．（１４ａ）（ＶＰＴＳ’＋３０７２）−（ＡＰＴＳ＋Ｍ）は完了される。カウンタ５１１内の（ＡＰＴＳ＋Ｍ）の値は、レジスタ５５５に記憶されている（ＶＰＴＳ’＋３０７２）の値から減算される。状態８の間、信号５３１は、マルチプレクサ５５８を介してバス５０５に送り、加算器／減算器５１３の入力Ａに入力するように、バス５４４上のカウンタ出力を選択する。信号５３１はまた、状態８の間、マルチプレクサ５５４を介して、加算器／減算器５１３の入力Ｂとしてバス５０６に送るために、バス５４１上のレジスタ５５５からの出力を選択する。加算器／減算器制御信号５６０−５６２は、Ｂ−Ａの演算を実行するために、加算器／減算器５１３を選択する。ＳＷＡＰ信号５６１は、入力Ａ及び入力Ｂを交換するためにアクティブになり、ＣＯＭＰＢ信号５６２は、加算器／減算器５１３のキャリー入力へのＳＵＢ信号５６０の加算に伴い、加算器／減算器５１３が（ＡＰＴＳ＋Ｍ）を補い、その２の補数の形に変換するようアクティブになる。加算器／減算器はそして（ＶＰＴＳ’＋３０７２）を−（ＡＰＴＳ＋Ｍ）に加算する。
もし−（ＡＰＴＳ＋Ｍ）への（ＶＰＴＳ’＋３０７２）の加算からオーバーフロー状態となった場合には、Ｅｑ．（１４ａ）は満たされ、ビデオはオーディオに対して少なくとも１フレーム以上３フレームより大きく遅れている。もしオーバーフロー状態がなかったらステートマシンは状態９に遷移する。
オーバーフロー状態の場合には、オーバーフロー出力５４９は状態８の間Ｄフリップフロップ５７６に記憶され、ビデオイメージの１フレーム若しくはその一部をスキップするように、他の回路（図示せず）に知らせる制御信号出力５４７を生成する。−方、制御信号出力５４７は、イメージのビデオ表示が追いつくのを可能にするために、オーディオ再生をオーディオデータの１フレーム若しくはそれの一部分だけ遅延させても良いが、これは好ましくない。オーバーフローの場合、さらなる計算は不要なので、ステートマシンは状態０にリセットされる。しかしながら、もしＥｑ．（１４ａ）の計算を行った後にオーバーフロー状態が生じなければ、ステートマシン５５３は状態９に遷移する。
状態９（Ｓ９  ５２９）の間、計算Ｅｑ．（１３ａ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−３０７２）＜０は、ビデオがオーディオに対して１フレーム時間より大きく進んでいるか否かを検出するために開始される。状態９の間、切り捨てられたオフセット値ＯＶ２は、バスＹ［１２：０］５３７のビット６から２をマルチプレクサ５５６を通過するよう信号５６９によりレジスタ５５７から選択される。信号５３１は、バス５０５へマルチプレクサ５５８を通過するようにバスＹ［１２：０］５３７を選択し、加算器／減算器５１３の入力端子Ａに入力される。信号５３１はまた、状態９の間、加算器／減算器５１３の入力Ｂとしてマルチプレクサ５５４を介してバス５０６に送るために、ビット１１から０上でレジスタ５１２内に記憶されているＶＰＴＳ値を使用可能なバスＲ［１２：０］５４０を選択する。加算器／減算器制御信号５６０−５６２は、Ｂ−Ａの演算を実行するために加算器／減算器５１３を選択する。ＳＷＡＰ信号５６１は入力Ａと入力Ｂを交換するためにアクティブにされ、ＣＯＭＰＢ信号５６２は、加算器／減算器５１３のキャリー入力へのＳＵＢ信号の加算に伴い加算器／減算器５１３が（３０７２）を補い、その２の補数の形に変換するようにアクティブになる。従って、加算器／減算器５１３は、（ＶＰＴＳ＋−３０７２）の加算を実行し、バス５０７上のその結果は、状態９の間、チップクロック５１８及び信号５６７によりレジスタ５５５に記憶される。チップクロック５１８はまた、ステートマシン５５３を状態１０に遷移させる。
状態１０の間、Ｅｑ．（１３ａ）（ＡＰＴＳ＋Ｍ）−（ＶＰＴＳ’−３０７２）の計算が完了される。現在レジスタ５５に記憶されている（ＶＰＴＳ’−３０７２）の値は（ＡＰＴＳ＋Ｍ）から減算される。状態１０の間、信号５３１は、マルチプレクサ５５８を介してバス５０５に渡し、加算器／減算器５１３の入力Ａに入力するために、バス５４４上のカウンタ５１１の出力を選択する。信号線５３１は状態１０の間、加算器／減算器５１３の入力Ｂとしてマルチプレクサ５５４を介してバス５０６に渡すために、バス５４１上のレジスタ出力を選択する。加算器／減算器制御信号５６０−５６２は、Ｂ−Ａの演算を実行するために加算器／減算器５１３を選択する。ＳＷＡＰ信号５６１は、入力Ａと入力Ｂを交換するためにアクティブにされ、ＣＯＭＰＢ信号５６２は、加算器／減算器５１３のキャリー入力へのＳＵＢ信号５６０の加算に伴い、加算器／減算器５１３が（ＶＰＴＳ’＋３０７２）を補い、その２の補数の形に変換するようにアクティブになる。加算器／減算器５１３は（ＡＰＴＳ＋Ｎ）への−（ＶＰＴＳ’＋−３０７２）の加算を実行する。
もし（ＡＰＴＳ＋Ｎ）への−（ＶＰＴＳ’＋３０７２）の加算からオーバーフロー状態となった場合には、Ｅｑ．（１３ａ）は満足され、オーディオはビデオに対し少なくとも１フレーム以上３フレームより少なく進んでいる。もしオーバーフロー状態がないなら、ステートマシンは動作停止状態である状態０に遷移する。
オーバーフロー状態の場合においては、オーバーフロー出力５４９は、状態１０の間、Ｄフリップフロップ５７８に記憶されオーディオが追いつくのを可能にするためにビデオイメージの１フレーム若しくはその一部分をリピートするように他の回路（図示せず）に知らせる制御信号出力５４８を生成する。その代わり、制御信号出力５４８は、イメージのビデオ表示に適合するために、オーディオデータ１フレーム若しくはそれの一部分をオーディオ再生にスキップさせるが、これは好ましくない。このステートマシンは、さらなる計算が不要なので、オーバーフロー状態により状態０にリセットされる。もしＥｑ．（１３ａ）の計算した後にオーバーフローが生じなかったら、ステートマシンは、実際の時間ドリフトがＥｑ．（１２ａ）、（１１ａ）、（１４ａ）及び（１３ａ）によって検出されたものより少ないので状態０に反転する。
図５ＡのＡ／Ｖ同期回路は前述の例で４つの式と２つのオフセット値のみを用いて特に詳細に説明されているが、追加の式及びオフセット値は、追加のレジスタを追加すること及びステートマシンに追加の状態を与えることによって適応され、若しくは他の式の計算が実行され、若しくは今の式が他の方法で実行される。他の変更は当業者にとって明らかであろう。興味深い１つの変更は図５Ｂのそれである。図５Ｂは、図５Ａの回路とほんのわずかに異なる方法で同期はずれを検出する第２のＡ／Ｖ同期回路を説明している。ＶＰＴＳの切り捨てられた値がカウンタ５１１に入力され、ＡＰＴＳの切り捨てられた値がレジスタ５１２に入力されることに注意されたい。図５Ａの説明においては、Ｅｑ．（１２ａ）、（１１ａ）、（１４ａ）及び（１３ａ）が用いられた。図５Ｂでは、Ｅｑ．（２０ａ）−（１９ａ）及び（２２ａ）−（２１ａ）が１及び３フレーム時間に対して用いられる。図５ＢのＡ／Ｖ同期回路は、図５ＡのＡ／Ｖ同期回路と同じ方法で動作する。図３Ａの３０６−３０８のような符号化されたビデオストリーム中のＶＰＴＳが発生される毎に、カウンタ５１０はＶＰＴＳ値を示す２進値が再ロードされる。カウンタ５１０はＳＣＬＫでインクリメントされる。図３Ａの３１２のような符号化されたデータストリーム中にＡＰＴＳが生じると、ＡＰＴＳを表す２進値は、遅延時間の修正及び式の計算が生じるように、レジスタ５１２に記憶される。他の点では、図５Ｂの回路は上述した図５Ａと同様に機能し動作する。
データをスキップ、リピート又は遅延するためのメモリ制御
図８は、図６で説明されているような典型的なマルチメディアシステムの一部を説明している。メモリ６９１は、「Ｖｉｄｓｙｓｔ」デコーダ６１９のメモリコントローラ８２９及びＦＩＦＯ６４１に接続する。ビデオデコーダ６２１及びシステムデコーダ６２２は、「Ｖｉｄｓｙｓｔ」デコーダ６１９内に含まれる。図５Ａ及び図５Ｂでより詳細に説明されているＡ／Ｖ同期回路６２０は、「Ｖｉｄｓｙｓｔ」デコーダ６１９に含まれる。
メモリ６９１は、ホストプロセッサ（図示せず）から受信した符号化／圧縮されたオーディオデータ及び符号化／圧縮されたビデオデータを一時的に記憶部分８７０に記憶する。記憶部分８７０は、多数のＭＰＥＧタイプの符号化されたビデオフレーム及び多数のＭＰＥＧタイプの符号化されたオーディオデータパケットを記憶するのに十分な大きさである。符号化／圧縮されたオーディオデータは、適切な時間に「Ｖｉｄｓｙｓｔ」デーコーダ６１９によって記憶部分８７０から読み出され、ＦＩＦＯ６４１及びオーディオコントロール／ＦＩＦＯ８３０を介してオーディオデコーダ６２７に送られる。符号化／圧縮されたビデオデータは、その符号化／圧縮ビデオデータを復号化し伸張して、復号化／伸張されビデオデータにする適切な時間に「Ｖｉｄｓｙｓｔ」デコーダ６１９によって記憶部分８７０から読み出され、メモリ９６１に記憶され直す。メモリ９６１は、各記憶部分８７１から８７４に、１フレームの復号化／伸張されたビデオデータを一時的に記憶する。
メモリコントローラ８２９は、メモリ６９１内のアドレス指定可能な記憶位置に対しデータを読み書きするようメモリ制御ロジック８７５に命令する。メモリ６９１内のメモリ制御ロジック８７５は、データバス８２４及びＦＩＦＯメモリ６４１を介して「Ｖｉｄｓｙｓｔ」デコーダ６１９とメモリ６９１内のアドレス指定可能な位置を接続する。
上述したように、同期はずれを検出するために、Ａ／Ｖ同期回路によって行われる計算結果に依存して、オーディオ再生及びイメージのビデオ表示は、ビデオフレーム若しくはそれの一部分をリピート若しくはスキップすること、又はオーディオデータパケット若しくはそれの一部分をスキップ若しくは遅延することによって再同期される。
イメージのビデオ表示のフレームをスキップするには、符号化／圧縮されたビデオデータフレームが、オーディオ再生とビデオ表示を再同期するためにスキップされることが好ましい。イメージのビデオ表示のフレームをリピートするには、復号化／伸張されたビデオデータフレームが、オーディオ再生とビデオ表示を再同期するためにリピートされることが好ましい。これに代えて、符号化／圧縮されたオーディオデータのパケットが、オーディオ再生とビデオ表示を再同期するためにスキップ若しくは遅延されても良い。
符号化／圧縮されたビデオデータフレームをスキップするために、適切なフレームのタイプが検出されることが必要である。システムデコーダ６２２は、符号化／圧縮されたビットストリームを分離して、符号化／圧縮されたビデオデータ、符号化／圧縮されたオーディオデータ及びタイミング情報にすると、例えばＩタイプ、Ｐタイプ若しくはＢタイプ等のビデオフレームのタイプを信号線８５１を介してメモリコントローラ８２９に知らせる。従って、メモリコントローラ８２９は、符号化されたビデオフレームのタイプが何であるか及び各タイプを見つけることのできるメモリ６９１内のアドレス指定可能な記憶位置のアドレス空間のアドレスを知る。Ａ／Ｖ同期回路から、同期はずれを示す、図５Ａ−Ｂの信号５４５−５４８のような信号を受信すると、メモリコントローラ８２９は、メモリ６９１内にスキップされても良い適切なタイプの符号化／圧縮されたビデオフレームタイプがあるか否かを検出する。もしもメモリコントローラ８２９がスキップされるタイプを知ると、所望の符号化／圧縮されたフレームをスキップするために、メモリ６９１に供給されるアドレッシングの順序を変更する。アドレッシング順序の変更は、異なる開始アドレスを選択することと同様に単純である。所定のアドレスシーケンスに対する他の変更が、記憶された符号化／圧縮フレームのスキップに適応することが諒解されよう。
もしもメモリコントローラ８２９が、メモリ６９１内にスキップされても良いタイプの符号化されたフレームがないことを知った場合には、受信された符号化／圧縮されたビットストリーム中にそれがシステムデコーダ６２２によって分離されたとき、スキップされても良いタイプを探す。予め決められた時間の後、もしもスキップされても良い符号化／圧縮されたフレームのタイプが、符号化／圧縮ビットストリーム中に見つけられなかった場合は、メモリコントローラは、ソフトウエアに再同期を実行させるように割り込み要求を信号線８５０を介して通知する。
復号化／伸張されたビデオデータフレームをリピートするために、メモリコントローラ８２９はビデオデータの同じフレームを含むメモリ６９１中のアドレス指定可能な記憶位置に対するメモリアドレスのシーケンスをリピートするように、メモリ６９１に単純に命令する。リピートされるために選択された符号化／圧縮ビデオデータフレームは、２回メモリ６９１から読み出され、ＦＩＦＯ６４１を介してビデオデコーダ６２１に送られる。
符号化／圧縮されたオーディオデータをスキップするために、メモリコントローラ８２９は、メモリアドレスのシーケンスを選択的にスキップ、若しくは、符号化／圧縮されたオーディオデータをより滑らかにスキップするためにメモリアドレスを定期的にスキップする。符号化／圧縮されたオーディオデータのアドレスのシーケンスをスキップすることは、上述したような符号化／圧縮されたビデオデータのアドレスのシーケンスをスキップすることと同様である。好ましくは、オーディオコントローラ／ＦＩＦＯ８３０は、オーディオ再生とイメージのビデオ表示を同期させるために、オーディオデコーダ６２７による復号化／伸張されたオーディオデータの発生の速度を上げても良い。復号化／伸張されたオーディオデータの生成の速度を上げることは、符号化／圧縮されたオーディオデータをスキップすることよりも、より人に知覚されにくい。オーディオコントローラ／ＦＩＦＯ８３０は、復号化／伸張オーディオデータの生成の速度を上げるために、メモリ６９１から符号化／圧縮オーディオデータをより頻繁に要求し、符号化／圧縮オーディオデータをより速くオーディオデコーダ６２７に供給することもできる。
符号化／圧縮オーディオデータを遅延するために、オーディオコントローラ／ＦＩＦＯ８３０は、オーディオデコーダ６２７に復号化／伸張オーディオデータの生成の速度を落とさせるために、メモリ６９１からあまり頻繁には符号化／圧縮オーディオデータを要求せず、符号化／圧縮されたオーディオデータを少しだけゆっくり供給する。
マルチメディアシステム
本発明の特にマルチメディアに対する応用例が、図６に示されている。マルチメディアコンピュータのようなマルチメディアデジタルシステム６００は、内部的にＣＤＲＯＭリーダ６１１に接続されたメインのシステムボード６１０とオーディオ／ビデオデコーダ６１２を有する。マルチメディアデジタルシステム６００は、イメージソース６０１からなる符号化システムに外部的に接続され、デジタルディスプレイ６０５やＣＲＴモニタ６０６やテレビ６０７のような外部の表示デバイスに接続される。始めに、符号化は、イメージデータを供給するあるソースからのデータに対して行われる。イメージデータを供給するソースの例としては、動画カメラ、テレビモニタ、コンピュータ、スキャナとスチルカメラである。ソースに関係なくイメージデータはバス６３５上へエンコーダ６０２に対して供給される。図６では、イメージ６０３は、動画カメラのようなイメージソース６０１によって読まれ、エンコーダ６０２によって符号化されるために、バス６３５上のデータストリームに変換される。使用される標準のタイプによってエンコーダ６０２はＭＰＥＧＩエンコーダやＭＰＥＧIIエンコーダ、ＪＰＥＧエンコーダ、また符号化／圧縮データを生成する他のタイプのエンコーダでありえる。イメージデータは、符号化された後、エンコーダ６０２から直接プロセッサに接続されたり、コンパクト・ディスク・リード・オンリー・メモリ（ＣＤＲＯＭ）６０４上に書かれる。ＣＤＲＯＭ６０４上に書かれた場合は、エンコーダ６０２から記録された符号化／圧縮データをプロセッサ６１３に結合させるために、ディスクはＣＤＲＯＭリーダ６１１に挿入されなければならない。
プロセッサ６１３は、インテル８０４８６のような標準プロセッサでも良いし、専用化されたプロセッサでも良い。プロセッサ６１３は、符号化／圧縮されたデータを、後に読み出され、システムバス６１５に置かれるためにシステムメモリ６１４に記憶しても良いし、直接符号化／圧縮データをシステムバス６１５に結合させても良い。システムバス６１５は、ＩＳＡバス、ＰＣＩバスまた他の標準的なコンピュータバスまたはいくつかの種類の専用化バスでも良い。システムバス６１５上の符号化／圧縮されたデータストリームは、オーディオ／ビデオ復号化システム６１２に接続される。システムバス６１５上の符号化／圧縮データは、「Ｖｉｄｓｙｓｔ」デコーダ６１９に接続される。「Ｖｉｄｓｙｓｔ」デコーダ６１９内では、システムデコーダ６２２は、符号化／圧縮データを符号化／圧縮ビデオデータと、符号化／圧縮オーディオデータと、タイミング制御信号に分離する。システムデコーダ６２２は、タイミング制御信号を伝送するために、オーディオ／ビデオ同期回路６２０に接続される。システムデコーダ６２２は、符号化／圧縮オーディオデータを伝送するために、直接オーディオデコーダ６２７に接続されても良いし、符号化／圧縮オーディオデータのフレームのオーディオデコーダ６２７へ転送される前の一時的な記憶を提供するＦＩＦＯ６４１とメモリ６９１を介してオーディオデコーダ６２７へ間接的に接続されても良い。システムデコーダ６２２はまた、符号化／圧縮ビデオデータを伝送するために、ビデオデコーダ６２１に直接接続されても良い。他の方法として、システムデコーダ６２２は、符号化／圧縮されたビデオデータのフレームのビデオデコーダ６２１に転送される前の一時的な記憶を提供するＦＩＦＯ６４２とメモリ６９１を介して間接的にビデオデコーダ６２１に接続されても良い。どの場合においても、ＦＩＦＯ６４１への制御信号６３１、ＦＩＦＯ６４２への制御信号６３０、メモリ６９０への制御信号は、符号化／圧縮されたビデオデータのフレーム又はその一部、符号化／圧縮されたオーディオデータのパケットまたはその一部、または復号化／伸張されたビデオデータのフレーム又はその一部のいずれでもスキップするか繰り返す可能性を呈する。
もし、メモリ６９１またはＦＩＦＯ６４２内で多数の予め決められたフレーム以上スキップする必要がある場合には、オーディオ／ビデオデータストリームを再び並べるために、ＭＰＥＧビットストリームをシーケンス層の初めから再開始するためにＶｉｄｓｙｓｔデコーダ６１９によって割り込み信号が発生される。もし、予め定められているフレームの数よりも多くリピートする必要性がある場合には、オーディオ／ビデオデータストリームを再整列させるために、シーケンス層の開始部位からＭＧＥＰビットストリームを再始動すべく、割り込み信号が生成される。図５Ａの場合には、復号繰り返し信号５４６と復号スキップ信号５４５のどちらかが、ＣＰＵ６１３に送られる割り込み要求を生成する。ＦＩＦＯ６４１と６４２、メモリ６９１に対する他の制御信号は、図示されていないが、コントローラ６２９から発生する。
ｖｉｄｓｙｓｔデコーダ６１９内のビデオデコーダ６２１は、符号化／圧縮されたビデオデータをバス６２６に供給される復号化／伸張されたビデオデータストリームに伸張し復号する機能を果たす。グラフィックコントローラ６２５は、復号化／伸張されたビデオデータストリームを受け取り、ビデオ表示メモリ６２４と連動してデジタルディスプレイ６０５かＣＲＴビデオモニタ６０６のどちらかにイメージをスキャンする。
コーデック６２８は、復号化／伸張されたビデオデータストリームを受け取って、テレビ６０７に合うＹＵＶやＲＧＢのようなデータフォーマットに変換する。コーデック６２８は、現在はＮＴＳＣやＰＡＬのテレビに表示するために、復号化／伸張されたビデオデータストリームをＮＴＳＣやＰＡＬフォーマットに変換しているが、将来的なフォーマット変換が同様に使用されても良い。
オーディオデコーダ６２７は符号化／圧縮されたオーディオデータストリームをアナログアプリケーションデバイス（図示せず）またはドライブスピーカ６０８に直接伝送される復号化／伸張オーディオアナログ信号に復号／伸張する。別な方法として、オーディオデコーダ６２７は符号化／圧縮されたオーディオデータストリームをアナログアプリケーションデバイス（図示せず）にバス６０９を介して伝送される復号化／伸張デジタルオーディオデータストリームに復号／伸張する。
オーディオ／ビデオ同期回路６２０は、図５Ａを参照して上述されたが、システムデコーダ６２２によって符号化／圧縮ビットストリームから分離されたタイミング情報（ＶＰＴＳ、ＡＰＴＳ、ＳＣＲ）を受け取る。タイミング情報に応じて、オーディオ／ビデオ同期回路６２０は、符号化／圧縮されたまたは復号化／伸張されたオーディオまたはビデオデータの１またはそれ以上のフレームまたはフレームの一部をスキップまたは繰り返すために、ＦＩＦＯ６４１、６４２、メモリ６９１及びビデオデコーダ６２１への制御信号を間接的にまたは直接的に生成する。ビデオフレームまたはその一部を繰り返すために、オーディオ／ビデオ同期回路６２０は、ビデオデコーダ６２１に所定の期間同じ出力を制御信号バス６３０、６３２を介して生成させる。ビデオフレームまたはその一部をスキップするために、オーディオ／ビデオ同期回路６２０は、ＦＩＦＯ６４２とメモリ６９１に、適切な符号化／圧縮されたビットストリームビデオデコーダ６２１に供給するために、決められた数のアドレスをスキップさせる。
同様に、オーディオデータまたはその一部をスキップするために、オーディオ／ビデオ同期回路６２０は、ＦＩＦＯ６４１とメモリ６９１に、適切な符号化／圧縮されたビットストリームビデオデコーダ６２１に供給するために、決められた数のアドレスをスキップさせる。
ビデオ基本入出力オペレーティングシステム（ＶＢＩＯＳ）６２３は、グラフィックコントローラ６２５とｖｉｄｓｙｓｔデコーダ６１９を初期化する。ＶＢＩＯＳ６２３は、ｖｉｄｓｙｓｔデコーダ６１９とグラフィックコントローラ６２５に対するソフトウェアのコード化された命令を有している。ｖｉｄｓｙｓｔデコーダ６１９に対する命令は、ＶＨＳテープ記録再生機と同様な、停止、ステップ、早送りや符号化／圧縮されたデータに対する他のコマンドを行う。
これらの命令は、オーディオ／ビデオ同期回路６２０に、さらにＦＩＦＯ６４２、６４１、ビデオデコーダ６２０、オーディオデコーダ６２７にビデオフレームやオーディオデータまたはそれらの一部の組み合わせをスキップまたは繰り返させる制御信号を生じさせる。
結合されたビデオデータ
図６はグラフィックスデータと符号化されたデータがバス６１５と表示デバイス６０５−６０７を共有する一つの方法を示す。この場合、グラフィックスコントローラ６２５は、モニタ６０６またはデジタルディスプレイ６０５の同じ表示デバイス上に表示されるべき６２６上の復号化／伸張されたビデオデータストリームとバス６１５上のグラフィックスデータを結合する内部マルチプレクサ（図示せず）を有する。この場合、グラフィックスデータは背景のウィンドウと他のウィンドウをディスプレイ上に供給し、一方、復号化／伸張されたデータは同じディスプレイ上の他のウィンドウ内に表示される。テレビモニタは一つのディスプレイ上に結合された両方のデータタイプを同様に有することができる。
図７Ａは図６の簡略化されたブロック図を示す。図６及び図７Ａにおいて、バス６１５は、バス６１５からｖｉｄｓｙｓｔデコーダ６１９へ送られる符号化されたデータとバス６１５からグラフィックスコントローラ６２５へ送られるグラフィックスデータとの間で時間多重される。図７Ａと図６において、グラフィックスコントローラ６２５は、グラフィックスデータと復号化／伸張されたビデオデータを同じ表示デバイス上に多重化する内部マルチプレクサを有する。
図７Ｂは、グラフィックスデータと復号化／伸張されたビデオデータを同じ表示デバイス上に表示するもう一つの代替案である。この場合、バス６１５は符号化されたデータとグラフィックスデータと符号化データから生成された復号化／伸張されたビデオデータを時間多重する。符号化されたデータはバス６１５上に置かれ、双方向ポートを有するｖｉｄｓｙｓｔデコーダ７１９によって受け取られる。ｖｉｄｓｙｓｔデコーダ７１９は、その符号化データを復号化／伸張し、復号化／伸張されたデータをバス６１５へ返送する。グラフィックスコントローラ７２５は、グラフィックスデータと復号化／伸張されたデータの両方を、デジタルディスプレイ６０５、モニタ６０６またはＴＶ６０７それぞれへほぼ同時の表示のために内部的に一緒に多重化されるよう受け取る。この場合、グラフィックスコントローラ７２５はその２つのデータタイプを正確に多重するだけでなくグラフィックスデータと復号化／伸張されたビデオデータをＴＶ６０７に表示させるためにＮＴＳＣやＰＡＬ信号に正確に変換するためにもより多くの回路を有する。
図７Ｃは、外部の構成要素を使ってグラフィックスデータと復号化／伸張されたビデオデータを同じ表示デバイス上に表示するもう一つの代替案である。図７Ａと同様に、バス６１５は符号化されたデータとグラフィックスデータを時間多重する。ｖｉｄｓｙｓｔ６１９は、バス６１５から符号化データを受け取り、選択的にピクセルデータとしてデジタルディスプレイ６０５にマルチプレクサ７０１によって結合され、選択的にアナログ信号としてデジタルアナログ変換器７０４とマルチプレクサ７０２を介してモニタ６０６に結合され、ＮＴＳＣ／ＰＡＬコーデック６２８とマルチプレクサ７０３を介してＮＴＳＣ又はＰＡＬ信号としてＴＶ６０７に結合される復号化／伸張されたビデオデータストリームを生成する。グラフィックスコントローラ７２６はグラフィックスデータをバス６１５から受け取り、ピクセルデータをデジタルディスプレイ６０５に、アナロググラフィックス信号をモニタ６０６に、ＮＴＳＣ／ＰＡＬ信号をＴＶ６０７に、タイミング／制御信号をディスプレイ６０５−６０７に、多重化制御信号をマルチプレクサ７０１−７０３に供給する。マルチプレクサ７０１−７０３を使用して、グラフィックスコントローラ７２６は正確に多重化制御信号を生成し、それによってグラフィックスデータとｖｉｄｓｙｓｔデコーダ６１９からの復号化／伸張されたビデオデータがディスプレイ６０５−６０７のいずれかに表示されるタイミングをとる。グラフィックスコントローラ６２５と７２５内の内部マルチプレクサは外部の多重化７０１−７０３と同様の方法で動作する。
本発明の好ましい実施例と様々な変形例がここで詳細に開示され説明されたが、当業者にとっては発明の要旨と範囲を逸脱しないで様々な形式や詳細な点においての変形が容易である。
【図１Ａ】
0004066058.tif 000002
【図１Ｂ】
0004066058.tif 000003
【図２】
0004066058.tif 000004
【図３Ａ】
0004066058.tif 000005
【図３Ｂ】
0004066058.tif 000006
【図３Ｃ】
0004066058.tif 000007
【図４Ａ】
0004066058.tif 000008
【図４Ｂ】
0004066058.tif 000009
【図５Ａ】
0004066058.tif 000010
【図５Ｂ】
0004066058.tif 000011
【図６】
0004066058.tif 000012
【図７Ａ】
0004066058.tif 000013
【図７Ｂ】
0004066058.tif 000014
【図７Ｃ】
0004066058.tif 000015
【図８】
0004066058.tif 000016
【図９】
0004066058.tif 000017