(57)【特許請求の範囲】
【請求項１】
異なるビデオ・フォーマットを処理するためのコンピュータ・システムであって、
プロセッサ（３０）と、
前記プロセッサ（３０）に接続してあるシステム・メモリ（３２）と、
周辺モーション・ビデオ・デバイスと、
前記プロセッサ（３０）と前記メモリ（３２）に接続してあり、更に前記周辺モーション・ビデオ・デバイス（２２）とに接続してあるインターフェース（３４，３６）と、
を備え、
前記周辺モーション・ビデオ・デバイスが、
多数の動作モードを有するタイミング発生器（１０２）であって、各前記動作モードが画素クロックとデジタルの画素タイミング・データとを発生し、前記画素クロックとデジタルの画素タイミング・データとが前記画像の各々のサイズを規定する、タイミング発生器（１０２）と、
処理エレメントであって、
前記タイミング発生器から画素タイミング・データと画素データとを受け取る入力と、
前記画素タイミング・データに応じた画素クロック・レートで前記受け取った画素データに処理を行なうモーション・ビデオ処理回路と、
画素タイミング・データおよび処理した画素データを与える出力と
を含む処理エレメントと、
を備えたコンピュータ・システム。
【請求項２】
請求項１記載のコンピュータ・システムにおいて、前記モーション・ビデオ処理回路が、
画素タイミング・データによって規定した第１画像サイズのフル・レート・モーション・ビデオの画像の画素データを第１データ経路から、前記画素タイミングを第２の別個のデータ経路から受け取る入力を有し、画素データを与える第１出力と、前記第１画素サイズよりも小さく、画素タイミング・データによって規定した第２画像サイズのモーション・ビデオの画像の画素タイミング・データを与える第２出力と、を有する補間／デシメーション・モジュール（１１０，１０４）と、
前記第２フレーム・サイズのモーション・ビデオの画像の画素データを前記補間／デシメーション・モジュールの前記第１出力から、画素タイミング・データを前記補間／デシメーション・モジュールの前記第２出力から受け取る入力を有し、フレーム内圧縮を用いて、圧縮モーション・ビデオ情報を与える出力を有する第１圧縮／伸長回路（６２）と、
前記第２フレーム・サイズのモーション・ビデオの画像の画素データを前記補間／デシメーション・モジュールの前記第１出力から、画素タイミング・データを前記補間／デシメーション・モジュールの前記第２出力から受け取る入力と、フレーム間圧縮を用いて圧縮モーション・ビデオ情報を与える出力とを有する第２圧縮／伸長回路（５８）と、
を備え、
前記第１および第２圧縮／伸長回路（６２／５８）の前記出力を前記システム・メモリ（３２）に対し、該システム・メモリ（３２）をバッファ・メモリとして用いるために接続し、
前記第１圧縮／伸長回路（６２）が、更に、前記システム・メモリ（３２）に接続してあり、前記フレーム内圧縮モーション・ビデオ情報を受け取る入力と、伸長モーション・ビデオ画素データを与える第１出力と、前記圧縮モーション・ビデオ情報に応じた前記第２画像サイズの画素タイミング・データを与える第２出力とを有し、
前記第２圧縮／伸長回路（５８）が、更に、前記システム・メモリに接続してあり、前記フレーム間圧縮モーション・ビデオ情報を受け取る入力と、伸長モーション・ビデオ画素データを与える第１出力と、前記圧縮モーション・ビデオ情報に応じた前記第２画像サイズの画素タイミング・データを与える第２出力とを有し、
前記補間／デシメーション回路（１１０，１０４）が、更に、前記第１および第２圧縮／伸長回路（６２，５８）の前記出力に接続してあり、前記第２画像サイズを有する伸長モーション・ビデオ画素データおよび画素タイミング・データを受け取る入力と、前記伸長モーション・ビデオ画素データおよび画素タイミング・データに応じて前記第１画像サイズのフル・レート・モーション・ビデオ画素データおよび画素タイミング・データを与える第１出力とを有し、
更に、前記補間／デシメーション回路から前記フル・レート・モーション・ビデオを受け取るように接続してある入力を有して、同期ビデオ出力信号を発生する出力ビデオ・エンコーダを含むこと、
を特徴とするコンピュータ・システム。
【請求項３】
請求項１記載のモーション・ビデオ処理回路において、前記画像のサイズを規定する前記画素タイミング・データが、ライン当たりの画素数および画像当たりのライン数を含むこと、を特徴とするモーション・ビデオ処理回路。
【請求項４】
第１データ経路からフル・レート・モーション・ビデオ・シーケンスの画像の画素データを、第２の別個のデータ経路から前記画像の各々のサイズを規定する画素タイミング・データを受ける入力を有し、異なるビデオ・フォーマットを処理するデジタル・モーション・ビデオ処理回路（２２）であって、
前記画素タイミング・データによって規定した第１サイズを有する前記フル・レート・モーション・ビデオ・シーケンスの画像の前記画素データを前記第１データ経路から、前記画素タイミング・データを前記第２データ経路から受け取る入力を有し、更に画素データを与える第１出力と、各画像が、画素タイミング・データによって規定した前記第１サイズよりも小さな第２サイズを有する第２モーション・ビデオ・シーケンスを規定する画素タイミング・データを与える第２出力と、を有する補間／デシメーション・モジュール（１１０，１０４）と、
前記第２モーション・ビデオ・シーケンスの前記画素データを前記補間／デシメーション・モジュールの前記第１出力から、画素タイミング・データを前記補間／デシメーション・モジュールの前記第２出力から受け取る入力と、圧縮モーション・ビデオ情報を与える出力と、を有する圧縮／伸長回路（６２，５８）と、を備え、
前記圧縮／伸長回路（６２，５８）が、更に、圧縮モーション・ビデオ情報を受け取る入力と、伸長モーション・ビデオ画素データを与える第１出力と、前記圧縮モーション・ビデオ情報に応じた前記第２画像サイズの画素タイミング・データを与える第２出力とを有し、
前記補間／デシメーション回路（１１０，１０４）が、更に、前記圧縮／伸長回路の前記第１出力に接続してあり、伸長モーション・ビデオ情報を受け取る第１入力と、前記第２画素サイズを規定する画素タイミング・データを与える第２出力と、フル・レート・モーション・ビデオ画素データを与える第１出力と、前記伸長モーション・ビデオ画素データおよび画素タイミング・データに応じて前記第１画像サイズの画素タイミング・データを与える第２出力とを有すること、を特徴とするデジタル・モーション・ビデオ処理回路。
【請求項５】
請求項４記載のデジタル・モーション・ビデオ処理回路であって、更に、第１フレーム間圧縮フォーマットの圧縮モーション・ビデオ・データを、第２フレーム内圧縮フォーマットの圧縮モーション・ビデオ・データに変換するために、
圧縮モーション・ビデオ・データを格納する第１メモリを備え、
前記第１フォーマットの圧縮モーション・ビデオ・データを伸長する前記伸長回路が、前記第１メモリから前記第１圧縮フォーマットの前記圧縮モーション・ビデオ・データを受け取る入力と、非圧縮モーション・ビデオ画素データを与える第１出力と、前記画素データによって規定した画像のサイズを規定する画素タイミング・データを与える第２出力とを有し、
前記伸長回路の前記第１出力に接続してある第１入力と、前記伸長回路の前記第２出力に接続してある第２入力とを有し、更に第１出力および第２出力を有し、非圧縮モーション・ビデオ・データを格納する第２メモリを更に備え、
非圧縮モーション・ビデオ画素データを前記第２圧縮フォーマットに圧縮する前記圧縮回路が、前記第２メモリの前記第１出力に接続してあり前記画素データを受け取る第１入力と、前記第２メモリの前記第２出力に接続してあり前記画素タイミング・データを受け取る第２入力と、前記第２圧縮フォーマットの圧縮モーション・ビデオ・データを前記第１メモリに供給する出力とを有すること、
を特徴とするデジタル・モーション・ビデオ処理回路。
【請求項６】
請求項４記載のデジタル・モーション・ビデオ処理回路において、前記モーション・ビデオ処理回路を、プロセッサとシステム・メモリ（３２）とを有するホスト・コンピュータに接続し、前記圧縮／伸長回路（６２，５８）が、前記システム・メモリに対し、該システム・メモリをバッファ・メモリとして用いるために接続した出力を有する、第１（６２）および第２（５８）圧縮／伸長回路を含むこと、を特徴とするデジタル・モーション・ビデオ処理回路。
【請求項７】
請求項６記載のモーション・ビデオ処理回路において、前記第１圧縮／伸長回路が、離散コサイン変換に基づいてフレーム内圧縮を用い、前記第２圧縮／伸長回路が離散コサイン変換に基づいてフレーム間圧縮を用いること、を特徴とするモーション・ビデオ処理回路。
【請求項８】
請求項４記載のモーション・ビデオ処理回路において、前記画像のサイズを規定する前記画素タイミング・データが、ライン当たりの画素数、および画像当たりのライン数を含むこと、を特徴とするモーション・ビデオ処理回路。
【請求項９】
請求項４記載のモーション・ビデオ処理回路であって、更に、前記画像のフォーマットまたはサイズの先行知識なしに、多数のモーション・ビデオ・フォーマットに対して、前記画像のサイズを判定するために用いる画素タイミング・データを発生する回路を備えること、を特徴とするモーション・ビデオ処理回路。
【発明の詳細な説明】
発明の分野
本発明は、コンピュータ・データ・ファイルにおいて、一連のデジタル・スティル画像として表されるモーション・ビデオ情報を処理するコンピュータ・システムに関するものである。このような処理は、モーション・ビデオ情報の捕獲、再生および操作を含む。
発明の背景
現在、数枚のデジタル静止画像のシーケンスを表すデータを含むコンピュータ・データ・ファイルとして、モーション・ビデオ情報を捕獲するために使用可能なコンピュータ・システムがいくつかある。このようなデジタル化データは、ＭＰＥＧ(Motion Picture Experts Group)およびmotion-ＪＰＥＧ(Joint Photographers Expert Group)圧縮のような、共通の圧縮規格を用いて圧縮してある場合が多い。矩形および非矩形画素フォーマットに関する論考が、ウィルマー（Russell Willmer）による“Transforming the PC into a TV,Radio,VCR,and Video Editing Studio”（ＴＶ、ラジオ、ＶＣＲおよびビデオ編集スタジオへのＰＣの変換）と題する論文（Institute of Electrical and Electronics Engineers、１９９５年１１月７日、７３８〜７４２ページ）に見られ、これも、ＰＣ内において生のビデオ再生を捕獲し操作することを可能にするアーキテクチャを開示している。タイミング信号を送信し、ビデオ・コントローラをＶＧＡコントローラに同期させる。アーキテクチャの中にはビデオを表示するものもいくつかあるが、これらは画像の編集や圧縮を行ったり、コンピュータ・ネットワーク内の他のデバイスと画像を共有することができない。クローカ（Edwin J.Kroker）による“Challanges in the Full Motion Video/Audio for Personal Computer”（パーソナル・コンピュータのためのフル・モーション・ビデオ／オーディオにおける課題）と題する論文（SMPTE Journal,Volume 102,No.1，１９９３年１月１日、２４〜４１ページ）は、パーソナル・コンピュータにビデオおよびオーディオ情報を収集、編集、操作および出力させる、ビデオ圧縮および伸長、オーディオ・デジタル化／信号処理、ならびに微細ピッチ製造および構成要素の技術を開示している。この論文は、パーソナル・コンピュータ上の表示は、矩形画素に基づくものであり、テレビジョン業界が設定したデジタル化規格には、矩形画素に基づくものはないことを記している。したがって、矩形画素サンプリングは、ＰＡＬおよびＮＴＳＣ規格では異なるサンプリング・レートを必要とする。
ヨーロッパ特許第０６６５５１３Ａ２号は、エンコードした動画データ(animating image data)をデコードし、次いでフレーム内エンコードし、格納することを開示している。デコードし編集した格納エンコード画像は、次いで、動画エンコーディング・システムによってエンコードする。
ビデオ捕獲において克服すべき１つの難題は、受信するビデオ情報に数種類のフォーマットがあり得ることである。これらは、ＮＴＳＣおよびＰＡＬフォーマット・ビデオからの矩形または非矩形画素フォーマットを含む。従来の捕獲システムは、通常、画素データ・フォーマットの先行知識を必要とするような設計であった。
ビデオ捕獲において克服すべき他の難題は、伸長時に良好な画質を維持しつつ、高い圧縮比を達成することである。画質は、多くの場合、圧縮比とは逆の関係にある。また、圧縮比は、メモリや帯域幅の要件にも影響を与える。低コストのビデオ捕獲回路を得るには、多くの場合、捕獲回路に必要なメモリ量の削減、および回路の小型化や簡素化が必要となる。
ビデオ再生において克服すべき難題は、モーション・ビデオ情報には必要とし得るフォーマットが数種類あることである。例えば、モーション・ビデオ情報を、異なる形態のコンピュータ・データ・ファイルに格納する場合があり、例えば、Motion-ＪＰＥＧからＭＰＥＧへの変換が必要となる。また、モーション・ビデオ情報は、ビデオ・テープ上に記録するために同期テレビジョン信号としてエンコードする場合もある。
また、モーション・ビデオ情報を処理し、遷移効果やタイトルのように、編集過程においてエフェクト(effect)を追加しなければならない場合もある。このような操作は、ビデオ情報の伸長、エフェクトの追加、および得られたビデオ情報の圧縮という工程を必要とする可能性がある。これらの工程の結果、圧縮／伸長回路間における双方向のデータ・フロー経路のために、複雑性が増大することになる。
家庭における素人の使用に適した低価格ビデオ回路であっても、モーション・ビデオ情報の捕獲、再生および操作のための基本的な処理動作を備えていなければならない。したがって、本発明の全体としての目的は、このようなファンクショナリティを備え、数種類のデータ・フォーマットを処理可能な、コンピュータに接続するためのビデオ処理回路を提供することである。本発明の別の全体としての目的は、周辺素子相互接続（ＰＣＩ：peripheral component interconnect）バスのような標準的なバス・インターフェースに接続可能なビデオ捕獲回路を提供することである。
発明の概要
デジタル・モーション・ビデオ処理回路は、例えば、毎秒６０フィールドでフル・レート・モーション・ビデオ情報を捕獲し、フル・レート・モーション・ビデオを再生することができる。また、モーション・ビデオ情報を操作して、エフェクトを実行することも可能である。このビデオ処理回路は、コンピュータのシステム・メモリを、当該回路からの圧縮ビデオ・データを保持するためのデータ・バッファとして使用する。システム・メモリには、標準的なバスを通じて、この回路によってアクセスすることができる。回路内のコントローラが、処理回路を介して、標準的なバスまたは入出力ポートに対して双方向にデータ・フローを送出し、圧縮、伸長、スケーリングおよびバッファリングを行わせる。標準的なバスは、周辺素子相互接続（ＰＣＩ）バスとすればよい。
デジタル画素データおよびタイミング・データ双方を含むデータ経路を有することにより、フォーマットの先行知識がなくとも、多数のモーション・ビデオ・フォーマットを処理することが可能となる。タイミング情報は、画素情報に実体化されている画像のサイズを規定する情報を含むので、圧縮プロセッサまたはビデオ・エンコーダのような各処理エレメントは、画素サイズまたはビデオ規格の先行知識がなくとも、任意のサイズの画像（例えば、フレームの第１および第２のフィールド）上、および任意のビデオ規格（例えば、ＩＴＵ−６０１−４としても知られているＣＣＩＲｒｅｃ６０１−２サンプリングのような、矩形画素および非矩形画素フォーマットのＮＴＳＣおよびＰＡＬ）で動作することができる。
加えて、２種類の圧縮プロセッサ、即ち、ＭＰＥＧプロセッサおよびＪＰＥＧプロセッサを備えたビデオ処理回路を有することにより、これらのフォーマット変換を１つの回路において行なうことが可能となる。例えば、ＭＰＥＧ−１エンコード・データをデコードすることができ、更にMotionＪＰＥＧ圧縮を用いて、デコードしたデータを圧縮することができる。
したがって、本発明の一形態は、プロセッサとシステム・メモリとを有するホスト・コンピュータに接続するためのモーション・ビデオ処理回路であり、このモーション・ビデオ処理回路は、第１画像サイズのフル・レート・モーション・ビデオ情報を受け取る入力を有し、前記第１画像サイズよりも小さな第２画像サイズを規定するモーション・ビデオ情報を与える出力を有する補間／デシメーション・モジュールと、補間／デシメーション・モジュールによって出力した第２フレーム・サイズのモーション・ビデオ情報を受け取る入力と、圧縮モーション・ビデオ情報を与える出力とを有し、圧縮モーション・ビデオ情報の後続または直前の画像の伸長を行なうことなく、圧縮モーション・ビデオ情報の画像の伸長を行なうようにした圧縮／伸長回路とから成り、圧縮／伸長回路の出力をシステム・メモリに接続し、前記システム・メモリをバッファ・メモリとして用い、圧縮／伸長回路が、更に、システム・メモリに接続してあり、圧縮モーション・ビデオ情報を受け取る入力と、圧縮モーション・ビデオ情報に応じた第２画像サイズの伸長モーション・ビデオ情報を与える出力とを有し、補間／デシメーション回路が、更に、圧縮／伸長回路の前記出力に接続してあり、第２画像サイズを有する伸長モーション・ビデオ情報を受け取る入力と、伸長モーション・ビデオ情報に応じた第１画像サイズのフル・レート・モーション・ビデオ情報を与える出力とを有する。一実施形態では、ビデオ処理回路は、第２圧縮／伸長モジュールを有する。
本発明の別の形態は、プロセッサと、このプロセッサに接続してあるシステム・メモリとを有するコンピュータ・システムである。周辺モーション・ビデオ・デバイスに接続するためのインターフェースも備えてある。周辺モーション・ビデオ・デバイスは、ビデオ画像のサイズを調節する補間／デシメーション・モジュールと、単一画像の独立アクセスを可能にする圧縮／伸長回路と、バッファとして用いるためのシステム・メモリへの経路とを有する、モーション・ビデオ捕獲および再生システムを含む。
本発明の別の形態は、画素データとタイミング情報とを受け取る入力を有するビデオ処理回路である。このビデオ処理回路は、タイミング情報を用いて画素データを処理し、画素データの画像サイズを判定するデータ圧縮回路を含む。データ伸長回路が、圧縮データを受け取り、この圧縮データを伸長画素データと、画素データが規定する画像のサイズを示すタイミング・データに変換する。伸長画素データおよびタイミング・データは、ビデオ・エンコーダがフル・レート・モーション・ビデオを発生する際に用いる。
本発明の別の形態は、第１フォーマットの圧縮モーション・ビデオ情報を受け取る入力を有するモーション・ビデオ処理回路である。第１伸長回路が、第１フォーマットの圧縮モーション・ビデオ情報を受け取り、圧縮モーション・ビデオ情報をモーション・ビデオの画素データに変換する。第２圧縮回路が、第１伸長回路によって出力した画素データを受け取り、画素データに圧縮を行い、第１フォーマットとは異なる第２フォーマットにする。本発明の一実施形態では、第１伸長回路はＭＰＥＧデコーダであり、第２圧縮回路はＪＰＥＧ圧縮を行なう。
【図面の簡単な説明】
図１は、本発明によるビデオ処理回路を含むコンピュータ・システムのブロック図である。
図２は、本発明のグラフィカル・ユーザ・インターフェースの一実施形態を示すディスプレイを有するコンピュータ・システムの斜視図である。
図３は、図１に示すメモリ・システムの一例である。
図４は、本発明の一実施形態におけるソフトウェア・レイヤを示す図である。
図５は、本発明の一実施形態のビデオ処理回路のコントローラ５０を更に詳細に示す。
図６は、いかにしてモーション・ビデオ・データを捕獲し圧縮するかを示すフロー・チャートである。
図７は、いかにしてモーション・ビデオ・データを伸長し再生するかを示すフロー・チャートである。
図８は、いかにして特殊効果のレンダリングを行うかを示すフロー・チャートである。
図９は、いかにしてＭＰＥＧエンコードしたモーション・ビデオ・データをデコードするかを示すフロー・チャートである。
詳細な説明
本発明は、添付図面と関連付けながら以下の詳細な説明を読むことによって、更に深く理解されよう。図面では、同様の参照番号は同様の構造を示すものとする。
図１は、本発明によるビデオ処理回路２２を、それと共に用いることができるコンピュータ・システムの一例と組み合わせた、全体ブロック図である。コンピュータ・システムは、相互接続機構３４を介してシステム・メモリ３２に接続してあるプロセッサ３０を含む。相互接続機構３４は、典型的に、１系統以上のバスおよび１つ以上のスイッチの組み合わせである。図１に示す実施形態では、コンピュータ・システムは、周辺素子相互接続（ＰＣＩ）バス３６を有し、ＰＣＩブリッジ・メモリ・コントローラ３４を介して、これにシステム・メモリ３２およびプロセッサ３０を接続してある。また、１つ以上の入力デバイス３７および出力デバイス３９もＰＣＩバス３６に接続してある。データのエンコード／デコードあるいは複雑な数学的処理またはグラフィック処理のような特殊機能を実行するために、特殊目的プロセッサ３５を用いることも可能である。また、コンピュータ・システムは、オーディオ／ビデオ入出力システム３８も含み、これを通じてアナログ・オーディオおよびデジタル・ビデオ情報を供給する。このオーディオ／ビデオ入出力システムは、例えば、カムコーダ(camcorder)４０からのオーディオおよびビデオ情報入力を受け取るように接続することができる。これは、例えば、矩形画素周波数を発生する、Philips Semiconductor（フィリップス・セミコンダクタ社）のＳＡＡ７１９６ビデオ・デコーダ／スケーラ回路を含むことができる。
図２は、コンピュータ・システムの一例の斜視図を示す。図２に示すように、出力デバイス３９はディスプレイ７２とし、入力デバイスはキーボード７４またはマウス７６とすることが考えられよう。プロセッサ、相互接続機構およびメモリ・システムは、典型的に、メイン・ユニット７８内に実装してある。尚、１つ以上の出力デバイスをコンピュータ・システムに接続し得ることは理解されよう。出力デバイスの例には、陰極線管（ＣＲＴ）ディスプレイ、液晶ディスプレイ（ＬＣＤ）、プリンタ、モデムのような通信デバイス、およびオーディオ出力が含まれる。また、１つ以上の入力デバイス３７もコンピュータ・システムに接続し得ることも理解されよう。入力デバイスの例には、キーボード、キーパッド、トラックボール、マウス、ペンおよびタブレット、通信デバイス、オーディオ入力ならびにスキャナが含まれる。本発明は、コンピュータ・システムと組み合わせて用いる特定の入力または出力デバイスに、またはここに記載するものに限定される訳でないことは理解されよう。入力および出力デバイスは、メイン・ユニット７８内に含ませても、その外部に置いてもよい。
コンピュータ・システムは、汎用コンピュータ・システムとしてもよく、「Ｃ＋＋」または「Ｐａｓｃａｌ」というような高級コンピュータ・プログラミング言語を用いてプログラム可能である。コンピュータ・システムは、特別にプログラムされた、特殊目的ハードウェアを用いて実現することも可能である。汎用コンピュータ・システムでは、プロセッサは、典型的に、Ｐｏｗｅｒ  ＰＣ６０３ｅＲＩＳＣマイクロプロセッサのような、商業的に入手可能なプロセッサである。これは、カリフォルニア州MilpitasのＣ−Ｃｕｂｅ社のＣＬ５６０Ｂ  ＪＰＥＧ圧縮／伸長チップのような特殊目的プロセッサを含むこともできる。このようなプロセッサは、Macintosh System Software（マッキントッシュ・システム・ソフトウェア）バーション７．５．３のようなMacintoshオペレーティング・システムのような、オペレーティング・システムと呼ばれるプログラムを実行する。オペレーティング・システムは、その他のコンピュータ・プログラムの実行を制御し、スケジューリング、デバッギング、入出力制御、アカウンティング・コンパイル(accounting compilation)、記憶領域の割り当て、データ管理およびメモリ管理、ならびに通信制御および関連サービスを備えている。プロセッサおよびオペレーティング・システムは、高級プログラミング言語によるアプリケーション・プログラムを書くための、コンピュータ・プラットフォームを定義する。本発明は、特定のコンピュータ・プラットフォーム、特定のオペレーティング・システム、特定のプロセッサ、または特定の高級プログラミング言語のいずれにも限定されるものではないことは理解されよう。加えて、コンピュータ・システムは、マルチ・プロセッサ・コンピュータ・システムとすることもでき、またはコンピュータ・ネットワークを通じて接続してある多数のコンピュータを含むこともできる。本発明の一実施形態は、カリフォルニア州CupertinoのApple Computer（アップル・コンピュータ社）のPerforma 5400,5420,6400シリーズ・コンピュータまたはPower Macintosh7600または8500シリーズ・コンピュータのような、ＰＣＩ拡張スロットおよびApple Video System（アップル・ビデオ・システム）を備えた、Macintosh PerformaコンピュータまたはPower Macintoshコンピュータのいずれかを用いて実施する。また、コンピュータ・システムは、Apple ComputerのQuickTime 2.5モーション・ビデオ・システムのような、モーション・ビデオ・ファイルを管理するアプリケーションも含むものとするとよい。
次に、図３を用いて、例示のメモリ・システム３２について更に詳細に説明する。メモリ・システムは、典型的に、コンピュータ読取可能および書込可能な不揮発性記録媒体８０を含み、その例には、磁気ディスク、フラッシュ・メモリおよびテープがある。ディスクは、フロッピー・ディスクとして知られている着脱自在のもの、および／またはハード・ドライブとして知られている固定式のものとすることができる。特に、１ギガバイト以上の容量のハード・ディスク・ドライブおよび少なくとも１６ないし２４メガバイトのＤＲＡＭを有する、PowerPCプロセッサをベースとするMacintosh Performaコンピュータが好ましい。ディスクは、典型的に毎秒８３０ｋバイト程度である、編集すべきビデオ情報を保持するための十分なサイズを有していなければならない。図３に示すディスクは、８２で示すように多数のトラックを有し、その中に二値形態、即ち、８４に示すように一連の１および０として変換した形態で信号を格納する。このような信号は、マイクロプロセッサが実行するアプリケーション・プログラム、またはデータ・ファイル内に格納してあるビデオ情報のように、当該アプリケーション・プログラムが処理するために、ディスク上に格納してある情報を定義する場合がある。典型的に、動作中、プロセッサ３０は、不揮発性記録媒体８４から集積回路メモリ素子８６にデータを読み出させる。集積回路メモリ素子８６は、典型的に、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）またはスタティック・メモリ（ＳＲＡＭ）のような、揮発性ランダム・アクセス・メモリである。集積回路メモリ素子８６は、プロセッサおよびディスク８０による情報アクセスの高速化を可能とし、典型的にシステム・メモリと呼んでいる。システム・メモリは、ディスクと出力デバイス３９またはビデオ情報との間のバッファとして用いることができる。これについては、以下で更に詳細に説明する。プロセッサは、通常、集積回路メモリ８６内でデータを操作させ、そのデータを変更した場合、処理完了時にディスク８０にコピーする。ディスク８０と集積回路メモリ８６との間のデータ移動を管理するための機構は、様々なものが公知であり、本発明はそれに限定されるものではない。また、本発明は特定のメモリ・システムにも限定されるものではないことも理解されよう。
次に、図４を用いて、このコンピュータ・システム内で相互作用する異なるレベルのソフトウェアについて更に詳細に説明する。８１で示すような、System7.5.2オペレーティング・システム以上を用いるPower Macintosh7500または8500のようなコンピュータを用いて、８３で示すようにビデオ処理回路を用意する。QuickTimeビデオ・システム８７は、ドライバ８５を介して、ビデオ処理回路８３と相互作用を行う。Apple Video Player（アップル・ビデオ・プレーヤ）のようなビデオ・プレーヤ・システム８９が、QuickTime 2.5と相互作用を行う。ビデオ情報を操作するアプリケーション・プログラムは、典型的に、QuickTime2.5と相互作用を行い、QuickTime2.5からコマンドをドライバに発行し、ビデオ処理回路８３を制御する。
ビデオ処理回路２２は、２種類の方法でコンピュータ・システムに接続する。第１に、コネクタ４２を介して、オーディオ／ビデオ入出力（Ａ／Ｖ  Ｉ／Ｏ）システム３８に接続し、これを介して、ＹＵＶラスタ・スキャン・フォーマットのデジタル・モーション・ビデオ情報やタイミング情報を受信し、更にデジタル・ビデオ情報、タイミング情報およびアナログ・オーディオ情報をこれに出力する。Ａ／Ｖ  Ｉ／Ｏシステム３８は、システム・オーディオ情報を、ＶＣＲのような出力デバイスに出力する。また、ビデオ処理回路２２は、ＰＣＩバス３６にも接続してある。
ビデオ処理回路２２は、コントローラ５０を含む。コントローラ５０は、ＰＣＩバス３６へのインターフェース処理、水平スケーリング、ビデオ・スキャン速度変換、ビデオ時間軸変換、およびビデオ処理回路２２のその他の構成要素の制御のための動作を処理する。これらその他の構成要素には、バッファ５６を用いるラスタ−ブロック変換器５４、およびＪＰＥＧコーデック５８を含む、ＪＰＥＧ圧縮／伸長回路が含まれる。ＪＰＥＧコーデックは、Zoran社のＺＲ３６０５０ＪＰＥＧプロセッサとすればよく、ラスタ−ブロック変換器は、Zoran社のＺＲ３６０１５変換器とすればよい。バッファ５６は、８ｋｘ８ストリップラインＳＲＡＭバッファとすればよく、ＪＰＥＧコーデックのためのラスタ対ブロック変換に用いる。このＳＲＡＭのアクセス速度は、画素レートの２倍である。何故なら、リード動作およびライト動作双方を各画素毎に行うからである。他の構成要素の中に、ＭＰＥＧフォーマットのビデオおよびオーディオをエンコードおよびデコードするためのビデオおよびオーディオ・エンコーダ／デコーダ（コーデック）６２がある。ＭＰＥＧコーデックは、C-Cube Corporation（Ｃ−キューブ社）のＣＬ４８０ＭＰＥＧデコーダとすればよく、これは、ホストの介入なしに、ＭＰＥＧ−１データのＩＳＯ１１１７２システム・レベル・ストリームのＭＰＥＧ−１ＩＢＢＰリアル・タイム・デコードを行う。このコーデック６２は、デコードするときにメモリ・バッファ６４を使用し、２５６Ｋｘ１６のダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）として実施すればよい。また、このバッファはコントローラ５０と共用し、コントローラ５０は、これをＪＰＥＧ圧縮および伸長の間、画素の格納に用いる。コントローラは、単一のカスタム集積回路として実施することも可能である。
コーデック６２によるオーディオ出力は、デジタル−アナログ変換器（ＤＡＣ）７３にも出力し、デジタル−アナログ変換器（ＤＡＣ）７３はアナログ・オーディオ信号をＡ／Ｖ  Ｉ／Ｏシステム３８に出力する。ＰＣＩ  ＢＩＯＳを含む電子的プログラム可能リード・オンリ・メモリ７０を、コントローラ５０に接続してある。また、コントローラ５０は、ビデオ・エンコーダ７１にも接続してあり、ビデオ・エンコーダ７１は、デジタル・モーション・ビデオ情報およびタイミング情報を受信し、Ｓ−Ｖｉｄｅｏ即ちＮＴＳＣまたはＰＡＬフォーマットのコンポジット・ビデオ信号を発生し、例えば、ＶＣＲ６９に出力する。ビデオ・エンコーダ７１が受信するタイミング情報は、コンポジット・ブランク信号、ならびに水平および垂直同期信号を含み、これらは各画像のサイズを規定し、ビデオ時間軸回路１０２によって発生することができる。ビデオ・エンコーダは、フル・スクリーン、フル・モーションの標準的なＮＴＳＣまたはＰＡＬ信号を、ビデオ画素データおよびタイミング情報から発生するので、ビデオ処理回路２２は、ＭＰＥＧ−１デコードの間、コンポジット・ビデオまたはＳ−Ｖｉｄｅｏのいずれかを用いて、標準的なＴＶモニタを駆動することができる。コントローラ５０は、これらの構成要素、および汎用バス・インターフェース６０を介したそれらのＰＣＩバス３６との相互作用を制御する。
次に、コントローラ５０およびこれらの構成要素との相互作用について、図５を用いて更に詳細に説明する。コントローラ５０は、それ自体が接続されている主要な構成要素の各々に対するインターフェースを含む。ＤＡＶインターフェース９０は、Ａ／Ｖ  Ｉ／Ｏシステム３８に至るコネクタ４２に接続する。ＭＰＥＧインターフェース９２は、ＭＰＥＧコーデック６２に接続する。ＤＲＡＭコントローラ９４は、ＭＰＥＧコーデック６２が使用するＤＲＡＭバッファ６４を制御する。ＪＰＥＧインターフェース９６は、ラスタ・ブロック変換器５４およびＪＰＥＧコーデック５８を制御するために備えてある。ＰＣＩインターフェース１００は、ＰＣＩバス３６に接続するために用いる。汎用バス・インターフェース（ＧＢＩＦ）９８は、ＰＣＩコンフィギュレーションＥＰＲＯＭ７０、ＭＰＥＧデコーダ６２、ＪＰＥＧコーデック５８およびビデオ・エンコーダ７１による汎用バス６０へのアクセスを制御し、種々のエフェクト・レンダリング・モード中における画素データの転送を含む、ＪＰＥＧおよびＭＰＥＧコーデック間のデータ転送に用いるデータ経路を備えるために実施する。また、汎用バス・インターフェースは、ＥＰＲＯＭ７０からのデータをフェッチするためにも用いる。インターフェース９０，９２，９４，９６，１００および９８については、以下で更に詳細に説明する。
また、コントローラ５０はビデオ時間軸発生回路１０２も含み、ビデオ時間軸発生回路１０２は、受信したラスタ・スキャン画像のための水平および垂直カウンタ情報を含む、ＤＡＶインターフェースからの信号を受け取る。ＤＡＶインターフェースは、例えば、所与のフィールドが所与のフレームの第１フィールドあるいは第２フィールドのどちらであるのかについての指示を与える。この指示は、画像の幅を示す信号と、画像の高さを示す信号との関係から得られる。更に、これは、クロック発生回路も含み、動作モードにしたがって、ビデオ情報を処理するために、２７，２４．５５および２９．５ＭＨＺの信号を発生する。また、クロック発生器は、ビデオ・クロック・レートの２倍のレートの信号、およびパルス対内のどのパルスがビデオ・クロック・レートに対応するかを示すクロック判定信号(clock qualifier signal)も発生する。矩形画素ＮＴＳＣモードでは、クロックは２４．５４５４ＭＨＺである。矩形画素ＰＡＬモードでは、クロックは２９．５ＭＨＺである。非矩形画素モードでは、クロックは２７ＭＨＺである。これら３種類のビデオ・クロック信号の１つを、画素ルーティング・ブロック１０８が内部画素クロックとして使用するために選択する。ＭＰＥＧ再生の間に用いるデジタル・オーディオ・クロック領域は、４４．１ＫＨｚレートでサンプリングしたオーディオについては、１１．２９ＭＨＺで動作する。その他の場合、ＤＡＶインターフェース９０を介して受け取った、ホスト・コンピュータ・システムのオーディオ・サブシステムからのオーディオ・クロック・パルスをカウントする。各ビデオ・フレームの終端において、カウントをサンプリングし、オーディオ情報をビデオ情報に同期化するために用いる。コントローラのＰＣＩインターフェース１００は、３３ＭＨＺの周波数で動作する。ビデオ時間軸情報は、ＭＰＥＧインターフェース９２，ＤＲＡＭコントローラ９４，ＪＰＥＧインターフェース９６、デシメーション・モジュール１０４、圧縮データ・ポート１０６および画素ルーティング・ブロック１０８に供給する。これらのモジュールの機能については、以下で更に詳細に説明する。
また、コントローラ５０は、６４０ｘ４８０で毎秒６０フィールド、フレーム・ビデオ当たり２フィールドというようなフル・スクリーン、フル・モーション・ビデオ・フォーマットと、３２０ｘ２４０画素、および毎秒３０フレーム（ＮＴＳＣビデオの場合）を有するＳＩＦフォーマットとの間の画像変換も処理する。入力時に、最大入力レートで、デシメーション・モジュール１０４および水平フィルタ・モジュール１１２によってこの変換を行う。出力時には、補間モジュール１１０および水平フィルタ・モジュール１１２を用いて、各ＳＩＦフレームを補間し、フル・レート（例えば、毎秒６０フィールド）の２つのフル・スクリーン・フィールドを生成する。水平フィルタ・モジュール１１２は、例えば、水平ライン上において７タップ有限インパルス応答（ＦＩＲ：finite impulse response）フィルタ動作を行うことができる。
コントローラ５０の画素ルーティング・ブロック１０８は、あらゆる入力からあらゆる出力に、画素データおよびタイミング・データを導出するために用いる。即ち、これは、ビデオ時間軸発生器１０２からの選択したクロック信号に応じて、汎用バス・インターフェース、ＪＰＥＧインターフェース、ＭＰＥＧインターフェースならびに補間およびデシメーション・モジュールに対してデータを双方向に送出する。ＤＡＶインターフェースが受信した画素データは、デシメーション・モジュールに送出し、一方タイミング信号はビデオ時間軸発生回路に供給し、ビデオ処理回路の内の他の構成要素が用いるタイミング・データを発生する。デシメーション・モジュールはタイミング・データを用いて、デシメートした画像の正しい出力サイズを判定する。次に、例えばデータをＪＰＥＧコーデック５８に渡すときに、タイミング・データをデシメーション・モジュールによって変更する。本システムの各構成要素は、タイミング・データを用いて各画像のサイズを判定する。このタイミング・データ経路は、各構成要素が処理対象画像のサイズについての先行知識を有する必要性を回避する。エンド・ユーザにとって、フォーマットの先行知識を必要とせずに種々のフォーマットの入来ビデオ信号を処理するというこの回路の能力のために、最初はビデオ・フォーマット間の相違について精通していない可能性もあるユーザにとって、ビデオ・フォーマット情報が明白となる。
次に、コントローラ５０内のインターフェースについて、更に詳細に説明する。
ＰＣＩインターフェース１００は、標準的なＰＣＩコンフィギュレーション空間を実現し、ホスト・コンピュータ・システムとの間のあらゆる伝達、およびビデオ処理回路とシステム・メモリとの間の全てのメモリ転送のために用いる。デュアル・アドレス・サイクルおよび特殊サイクル・モードはサポートしていない場合もある。ＰＣＩインターフェースは、ビデオ処理回路２２がスレーブ・デバイス（ターゲット）として、またはフル・バス・マスタとして機能し、システムの主メモリとビデオ処理回路２２との間でデータを移動させることができるようにする。ＰＣＩコンフィギュレーション空間の内容および動作、ＰＣＩインターフェース信号およびそれらの使用に関する更なる詳細は、PCI Local Bus Specification，Revision 2.0（ＰＣＩローカル・バス仕様書、第２版）の特に第６章に見出される。一実施形態では、ＰＣＩコンフィギュレーションは、次の値を有することができる。
base_class:  ０４ｈ。マルチメディア・デバイスを示す。
sub_class:  ００ｈ。ビデオ・デバイスを示す。
prog_int_class:  ００ｈ。特殊プログラミング・インターフェース・モデルをサポートしていないことを示す。
imp_master:  「サポートする」。デバイスがマスタになり得ることを示す。
imp_VGA:  「サポートせず」。ＶＧＡのサポートが不要であることを示す。
dev_sel_tim:  「低速」。回路がDEVSELに応答(turn around)することができる速度を示す。
reg_lay_code:  ０。
exp_rom_base:  拡張ＲＯＭ７０のベース・アドレス・レジスタにセットする。
int_Line:  「ＩＮＴＡ」。割り込みラインを示す。
min_gnt:  ０ｘ０１（０．２５マイクロ秒）。
max_lat:  ０ｘ０Ａ（２．５マイクロ秒）。および
ad_stepping:  「サポートせず」。
インターフェースは、先入れ先出し(ＦＩＦＯ)メモリとして実施したリード・バッファ１１６、および同様にＦＩＦＯとして実施したライト・バッファ１１８を、制御およびコンフィギュレーション・レジスタ１１７および１１９と共に含む。また、マスタ・インターフェースは、２つの直接メモリ・アクセス（ＤＭＡ）チャンネル１１４も有する。一方のＤＭＡチャンネルは、ＰＣＩバス６２から汎用バス・インターフェース６０に情報を転送する際に用いる。他方のチャンネルは、汎用バス・インターフェース６０からＰＣＩバス６２に情報を転送する際に用いる。通常、マスタ・インターフェースは、画素データを転送するために用いる。ＰＣＩインターフェース１００は、殆どの条件の下で、リード・ラインまたはライト・ライン・バースト・モード転送を実行し、ＰＣＩバス３６上の処理能力を最適化する。ＰＣＩインターフェースのターゲット部分は、主に、ホストおよびコントローラ、ＪＰＥＧコーデック、ＭＰＥＧコーデック、ＥＰＲＯＭ、ならびにビデオ・エンコーダ間で制御情報を転送するために用いる。ターゲット・インターフェースは、ＰＣＩバースト・モード転送をサポートしていない。何故なら、これは、ビデオ処理回路２２の構成要素を設定するためにのみ用いるからである。
ＰＣＩインターフェース１００は、２つのクロック領域を有する。ＰＣＩバス自体に直接インターフェースする標準的なＰＣＩインターフェース部分は、ＰＣＩクロック領域（典型的に３３ＭＨＺ）内にある。第２部分は、ビデオ処理回路２２のビデオ処理部分とインターフェースするものであり、ビデオ・クロック領域内にある。
ビデオ処理回路２２がＰＣＩインターフェース１１０を介して行うリード転送は、バス・マスタとして動作するＰＣＩインターフェースがメモリ・リード・ライン・コマンドを発行することによって開始する。インターフェースは、ＰＣＩバスの利用を最適化するために、フル・キャッシュ・ライン境界上でフル・キャッシュ・ライン転送が開始することを要求する。ターゲットとして、ＰＣＩインターフェース１００は、メモリ・リード・ラインおよびメモリ・リード・マルチプル・コマンドに、それらがメモリ・リード・コマンドであるかのように応答する。ＰＣＩインターフェースから単一の３２ビット・ワード以上を読み取ろうとした場合、インターフェースは、最初のワードを転送した後に、切断コマンドを発行する。
マスタとして動作するＰＣＩインターフェース１００を介してビデオ処理回路２２が行うライト転送は、メモリ・ライトおよび無効化コマンドまたはメモリ・ライト・コマンドのいずれかによって開始する。メモリ・ライトおよび無効化コマンドは、ＰＣＩバス利用を最適化するために、フル・キャッシュ・ライン・バーストでライトを行う際に用いる。フル・キャッシュ・ライン境界上で転送が開始しなくとも、転送がキャッシュ・ライン境界上に達するまでメモリ・ライトを実行し、その後の時点で、メモリ・ライトおよび無効化コマンドを用いる。ターゲットとして、ＰＣＩインターフェース１００は、メモリ・ライトならびにメモリ・ライトおよび無効化コマンドに、それらがメモリ・ライト・コマンドであるかのように応答する。単一の３２ビット・ワード以上をＰＣＩインターフェースに書き込もうとした場合、インターフェースは、最初のワードを転送した後、切断コマンドを発行する。
ＰＣＩデータ転送のキャッシュ・ライン整合は、ＰＣＩバス、システム・バスおよびメモリ・システム帯域幅のようなシステム資源を最適化する。何故なら、メモリ・システムは、通常、最も効率的に転送を処理するからであり、最も効率的な転送はキャッシュ・ライン・サイズの倍数となる。システム・キャッシュ・ライン・サイズは、ＰＣＩコンフィギュレーション空間内に指定する。また、ＰＣＩバスは、バースト・モードで動作することによって、ＰＣＩバス帯域幅の一層の有効利用を図る。したがって、ＰＣＩバス上のバースト転送をキャッシュ・ライン・サイズの倍数とすることによって、利用可能なバス・サイクルにおけるデータ転送の増大が可能となる。
このような転送のキャッシュ整合は、ビデオ処理回路がシステム・メモリから読み出しているのかまたは書き込んでいるのかによって、異なる方法で行なう。データをシステム・メモリに書き込んでいる場合には、データのキャッシュ・ライン整合を行なう負担は、データを書き込むべきバッファを割り当てているいずれかのソフトウェアに負わせることになる。各ライト・バッファの開始および終了アドレスは、このようなソフトウェアによって、フル・キャッシュ・ライン境界上に置くようにしなければならない。このようにすれば、ライト転送はフル・キャッシュ・ラインを用いて行われるので、後続のメモリへのライトもキャッシュ・ラインの境界上で一致する(fall on)ことになる。ソフトウェアは、ライト・バッファ程リード・バッファの境界整合に対する制御を多く行なわないので、ＰＣＩインターフェースが、転送をキャッシュ・ラインの境界に一致させる。ＤＭＡバッファがキャッシュ・ラインの境界上で開始しない場合、前述のように、キャッシュ・ライン整合が得られるまで最初のトランザクションにデータを転送させることによって、キャッシュ・ライン整合を得る。こうすれば、後続の転送は、フル・キャッシュ・ライン転送となる。
ＧＢＩＦ９８は、バス６０に至るインターフェースであり、ＪＰＥＧコーデック５８およびＭＰＥＧコーデック６２にデータ経路および制御経路を備える。ＰＣＩ  ＥＰＲＯＭもこのインターフェースを全ての転送に用いる。一実施形態では、バス６０は、８ビット・データ経路、１０ビット多重化アドレス経路、および４本の選択ラインを有する。バス６０は、肯定応答（「ＡＣＫ」）信号によって終了する６８０００型転送（ここではモード１と呼ぶ）、およびコマンド（ＣＭＤ）信号が所定の時間期間にわたってアクティブとなる時限Ｉ／Ｏサイクル（ここではモード０と呼ぶ）を含む、２つの異なる種類のバス・プロトコル即ちサイクル種別をサポートする。ＧＢＩＦ９８によって制御する各選択ラインは、これら２つのモードのいずれかを用いて通信するようにプログラム可能である。モード０を用いる場合、関連するサイクル・タイミング・レジスタにロードし、制御対象デバイスの最短サイクル・タイムを規定する。この時間は、選択したビデオ・モードに関連するクロック信号の値に応じて測定する。したがって、このサイクル・タイムは、可能な限り最高のレートに関連付けるべきである。矩形画素ＰＡＬビデオ・モードの場合、最高レートは２９．５ＭＨＺである。この場合、２５０ｎｓのＥＰＲＯＭに対する時限Ｉ／Ｏサイクルは、８クロック・サイクルで合計２７２ｎｓを必要とすることになろう。モード１を用いる場合、ＧＢＩＦは、選択ラインによって選択したデバイスからの「ＡＣＫ」信号を待つ。
ＧＢＩＦ９８には３つの動作モードがある。即ち、ＥＰＲＯＭアクセス（モード０のサイクルを用いる）、ＤＭＡアクセスおよびランダム・レジスタ・アクセス（双方ともモード１のサイクルを用いる）である。ＥＰＲＯＭアクセス・モードでは、ＥＰＲＯＭ選択信号とともに１０ビットのアドレスを、ＰＣＩインターフェース１００から受け渡す。ＰＣＩインターフェースは、リード・アクセス要求を、ＧＢＩＦへの４つのリード・コマンドに変換する。ＧＢＩＦは、ＰＣＩインターフェースが発行する各コマンド毎に、８ビット幅のＥＰＲＯＭのリードを実行する。ＧＢＩＦは、各バイトをＰＣＩインターフェース１００に渡し、ＰＣＩインターフェース１００はこれらを３２ビットのロング・ワードにパックし、このロング・ワードをＰＣＩバス・マスタに渡す。ＥＰＲＯＭアクセス経路は、ＦＬＡＳＨ  ＲＯＭの使用をサポートするライト動作もサポートする。
ＭＰＥＧ圧縮データの転送にのみ用いるＤＭＡアクセス・モードでは、ＧＢＩＦが、データをＭＰＥＧデコーダに移動させるためのサイクル全てを開始する。バス６０上のデータに対する要求に応答して、ＧＢＩＦはデータをＰＣＩインターフェース１００からＭＰＥＧデコーダに転送する。また、ＧＢＩＦは、ＰＣＩインターフェースからのデータのアンパックも行なう。
ランダム・レジスタ・アクセス・モードでは、１８ビットのアドレスをＰＣＩインターフェース１００からＧＢＩＦに渡し、バス６０上に置く。このアドレスは、ビデオ処理回路内の単一ワードまたはバイト・レジスタにアドレスする。そのアドレスに転送されるデータまたはそのアドレスから転送されるデータは、その相対バイト位置を保持し、ロング・ワードにはパックしない。
ＤＡＶインターフェース９０は、本発明の一実施形態では、コンピュータ・プラットフォーム、例えば、System7.5.3オペレーティング・システムを用いるApple Performaコンピュータに至るデジタル・ビデオおよびオーディオ・インターフェースであり、ＤＡＶコネクタ４２に接続する。ビデオ処理回路２２に対して入力および出力するデジタル・ビデオは全て、ＤＡＶコネクタ５２を通過するが、別個のコネクタを有するエンコード・アナログＳ−Ｖｉｄｅｏおよびコンポジット・ビデオは除く。ビデオ処理回路２２が受け取るＤＡＶコネクタのビデオおよびタイミング出力に関する更なる詳細は、Philips SemiconductorのＳＡＡ７１９６チップの仕様書、およびApple ComputerのApple DAV systemの仕様書に見ることができる。ＭＰＥＧデコード・デジタル・オーディオは、ＤＡＣ７３によって処理し、アナログ・データとしてＤＡＶコネクタ４２を通じて受け渡す。ホスト・コンピュータ・システム内のオーディオ・サブシステムによってオーディオ・クロックを供給し、ＤＡＶコネクタ４２を介してビデオ処理回路２２に送出する。
Apple Audio/Video Input/Output system（アップル・オーディオ／ビデオ入出力システム）を備えたApple Performaコンピュータを用いる実施形態では、ＤＡＶインターフェースを通じたビデオ・データ転送は、コンピュータ・システムまたはビデオ処理回路がクロック、同期、データ信号のどれを制御するかにしたがって、４つのモードの内の１つで行なうことができる。モード０では、ビデオ処理回路２２があるか否かには拘わらずに、データはビデオ入力源からグラフィックス・サブシステム・メモリに流れる。ビデオ処理回路２２がある場合、データを捕獲することができるが、データを駆動することはしない。このモードはデフォルト・モードである。モード２では、ビデオ処理回路がクロックおよび同期信号を供給し、ＤＡＶ４２を介してデータをシステム内に駆動する。このモードは、ＪＰＥＧおよびＭＰＥＧ伸長双方を用いる全ての伸長機能に用いる。２つのモード１および３は用いない。モード１では、クロックおよび同期信号は、コンピュータ・システムによって導出し、ＤＡＶ４２に接続してあるいずれかの回路がデータをシステム内に駆動する。モード３では、ビデオ処理回路は、システムからのクロック信号を用いて、同期信号を発生し、データをシステム内に駆動する。
ＤＡＶコネクタ４２を通じて受け渡すデジタル・ビデオ画素データは、完全なフレーム当たり２フィールドのフォーマットのビデオである。矩形画素ＮＴＳＣフォーマットでは、各フィールドは、６４０水平画素ｘ２４０ラインであり、１２．２７２７ＭＨＺの画素クロック・レートを用いて、毎秒６０フィールドづつ受け取るようにする。矩形画素ＰＡＬフォーマットでは、各フィールドは７６８水平画素ｘ２８８ラインであり、１４．７５ＭＨｚの画素クロック・レートを用いて、毎秒５０フィールドずつ受け取るようにする。非矩形画素ＮＴＳＣフォーマットでは、各フィールドは７２０水平画素ｘ２４３ラインであり、１３．５ＭＨＺの画素クロック・レートを用いて、毎秒６０フィールドずつ受け取るようにする。非矩形画素ＰＡＬフォーマットでは、各フィールドは７２０水平画素ｘ２８８ラインであり、１３．５ＭＨｚの画素クロック・レートを用いて、毎秒５０フィールドずつ受け取るようにする。ＤＡＶポートは、ビデオ・タイミング（クロックおよび同期信号）を圧縮モードの間のみ、ビデオ処理回路２２に供給する。その他の全モードでは、ＤＶＡポートは、ビデオ処理回路２２がビデオ時間軸回路１０２を用いて発生した時間軸に従属する。
ＤＲＡＭコントローラ９４は、ＭＰＥＧデコーダ６２およびコントローラ５０によるＤＲＡＭバッファ６４へのアクセスを制御する。コントローラ５０は、２つの外部三状態バッファへの信号をアサートすることによって、ＤＲＡＭバッファの制御を行なう。これらの外部三状態バッファは、ＭＰＥＧデコーダから来るアドレスおよび制御ラインを三状態化する。コントローラは、１画素クロック時間だけ待ち、次いでＤＲＡＭアドレスおよび制御ラインを駆動するそれ自体のピンをイネーブルする。すると、ＤＲＡＭバッファはコントローラ５０専用となり、コントローラ５０は、補間モジュール１１０およびデシメーション・モジュール１０４を含むフィルタ・ユニットによって処理しつつあるビデオ画素の一時的記憶部として、ＤＲＡＭバッファを用いる。ＤＲＡＭコントローラは、アクティブなラインおよび画素をカウントする１組のカウンタを用いて、現行のラインおよび当該ライン上の水平位置を追跡する。この情報を用いて、デシメーション・モジュール１０４および補間モジュール１１０がデータを書き込むアドレスまたはデータを読み出すアドレスを発生する。ＤＲＡＭへのＲＡＳ、ＣＡＳ、ＷＥ、ＯＥ、アドレスおよびデータ信号の制御、ならびに外部三状態バッファへのイネーブル・ラインの制御は、ビデオ・クロック・レートの２倍のレートを有するクロック信号によって制御する。
ＪＰＥＧインターフェース９６は、非圧縮画素データおよびタイミング・データを、コントローラ５０とＪＰＥＧコーデック５８との間で転送する。これは双方向インターフェースである。タイミング・データは、コーデック５８に、画像のフレーム境界についての情報を与える。圧縮の間、非圧縮画素データは、画素ルーティング・ブロックからこのインターフェースを介してＪＰＥＧコーデック５８に流れる。伸長の間、非圧縮データは、ＪＰＥＧコーデック５８からこのインターフェースを介して画素ルーティング・ブロック１０８に流れる。また、このインターフェースは、レジスタのラスタ−ブロック変換器５４へのアクセスにも用いる。
同様に、圧縮データ・ポート１０６は、圧縮画素データをコントローラ５０とＪＰＥＧコーデック５８との間で転送する。これは双方向インタフェースである。このデータ・ポートは、ビデオ・クロック領域と同期しており、したがって、ＪＰＥＧインターフェース９６と同じクロック信号で駆動する。このデータ・ポートは、クロック当たり１バイトという高さのレートが可能なバイト転送をサポートする。ＳＩＦモードでは、このレートは矩形画素ＰＡＬ画像に対して大まかに１４．７５Ｍｂｐｓである。
ＭＰＥＧインターフェース９２は、非圧縮画素データをＭＰＥＧデコーダ６２からコントローラ５０に転送する。これは、単一方向インターフェースである。ＭＰＥＧインターフェース９２を介して受け取った画素データは、画素ルーティング・ブロック１０８に送出する。
次に、図６を用いて、ビデオの圧縮について説明する。このプロセスの最初のステップは、ステップ１２０において、デジタル・オーディオ／ビデオ接続部を介してメディアを入力し、例えば、インターレースＹＵＶ４：２：２フォーマットのデジタル・フォーマット・データを供給することである。ビデオ画像は、テープのようなビデオ源から、または例えばテレビジョン・チューナから直接放送によってシステムに入力する。上述のように、ＤＡＶインターフェース９０によって受信したビデオ情報は、ラスタ・スキャン・フォーマットであり、したがって、一連の連続画素として受信する。次に、コントローラによって、２フィールド・データ全体を単一フレームに結合し、画像のサイズを縮小することによって、入力ビデオを単一画像フォーマット（ＳＩＦ）フレームに変換する（ステップ１２２）。次に、ステップ１２４において、ＪＰＥＧコーデックを用いてＳＩＦフォーマット・ビデオ画像を圧縮し、ＰＣＩインターフェース１００を介してシステム・メモリに出力する。このステップにおいて、ＳＩＦ画像データは、画素ルーティング・ブロック１０８を介し、更にＪＰＥＧインターフェース９６を介してラスタ−ブロック変換器５４に送出する。ＪＰＥＧコーデックは、ラスタ−ブロック変換器５４からデータを読み出し、それを圧縮し、圧縮したデータを圧縮データ・ポート１０６に出力する。このデータは、ＧＢＩＦ９８によって、圧縮データ・ポート１０６からＰＣＩインターフェースに読み出す。ホスト・コンピュータは、データをＰＣＩインターフェースからシステム・メモリに読み込む。次いで、ステップ１２６において、システム・メモリ内のビデオ情報をディスク内のデータ・ファイルにコピーする。
ビデオの捕獲中にＰＣＩインターフェース１００を介してデータを転送する場合、ビデオのいくつかのフレームをシステム・メモリ内の単一バッファにパックすることが望ましい。効率的にメモリを用いるために、時としてコントローラによって１フレームのデータを２つのバッファ間で分割する。データ転送を多数のメモリ区域にわたって分割するプロセスを、通常、散乱／収集またはデータ連鎖(data chaining)と呼んでいる。しかしながら、データ・レートが十分に高いので、コントローラ５０がバッファ間で切り替えを行なう時間は最少量である。
データ連鎖のためにバッファ間で切り替えを行なうという難題に対処するために、ＰＣＩインターフェースは、各ＤＭＡチャンネル毎に、２セットのバッファ・ポインタおよびワード・カウント・レジスタを有する。これら２セットのレジスタによって、次の組のバッファ・ポインタおよびワード・カウント・レジスタをバッファ転送の終了時に設定する際に伴うレイテンシがなくなる。結果的に、各ＤＭＡチャンネルは、バッファがあるフレームの途中で終了しても、数バッファに値するデータを連続的にホスト・メモリに転送することが可能となる。ホスト・ソフトウェアが直接ロードするレジスタ・セットを、シャドー・レジスタ・セットと呼ぶ。実行中のＤＭＡデータ転送のブックキーピング(bookkeeping)に使用中のレジスタ・セットを、アクティブ・レジスタ・セットと呼ぶ。
ホスト・コンピュータは、最初に、シャドー・レジスタ・セットおよびアクティブ・レジスタ・セット双方にロードする。アクティブ・ワード・カウント・レジスタがゼロまで減少した場合、シャドー・レジスタ・セットの内容をアクティブ・レジスタ・セットに転送する。ワード・カウントがゼロになったときに、割り込みをホストに送る。すると、ホスト・コンピュータは、３回目のバッファ転送のために、次のバッファの転送時刻をシャドー・レジスタ・セットにリロードする。ワード・カウントがゼロに達したときの割り込みにホストが応答し、現在アクティブなワード・カウント・レジスタがゼロに達する前に、アイドル状態のバッファ・アドレスおよびワード・カウント・レジスタ・セットにリロードすることができる限り、データ連鎖はデータ転送動作には透過的である。
アクティブ・レジスタ・セットのロードを管理する別の方法は、最初に１組のレジスタのみにロードすることである。次に、シャドー・セットが空でありチャンネル・ラン・ビットがアクティブであることを示す割り込み、またはチャンネルの終端を示す割り込みの受信時に、これらのレジスタにロードする。これらの割り込みは双方共、有効ビットがシャドー・レジスタにセットされている場合、アクティブ・ワード・カウンタがゼロに達したときに同時に発生する。アクティブ・ワード・カウンタがゼロに達したときにシャドー・レジスタが有効でない場合、チャンネル終端割り込みのみを発生する。
シャドー・セットが有効な場合にワード・カウント・レジスタがゼロに達したときはいつでも、シャドー・バッファ・アドレスおよびワード・カウント・レジスタをアクティブ・レジスタにロードする。ワード・カウント・レジスタのサイズは、約２２ビットとすべきである。ワード・カウンタは実際には、転送されている３２ビット・ワード全体の数をカウントするので、２２ビット・ワードのカウンタとすれば、１６Ｍバイトの転送サイズが可能となる。
モーション・ビデオ情報を処理する場合に対処すべき他の問題は、フレーム境界の検出である。データ捕獲または圧縮モードの間、フレーム・ポインタ・レジスタを用いて、ホスト・コンピュータがフレーム境界の位置を判定するのを助ける。フレーム・ポインタ・レジスタにロードした時点に発生する１割り込みの１つが、フレーム終了割り込みである。しかしながら、フレーム境界は、多数のフレームを収容するバッファ内部にある。ＧＢＩＦは、フレーム境界における特殊処理の一部として、フレーム終了状態を検出し、このデータをＰＣＩインターフェースに渡す。適正な値をフレーム・ポインタ・レジスタ内に置くデータ連鎖によって、フレーム・マーカを格納するバッファをシステムが知るまで、フレーム・ポインタ・レジスタにロードすることができないという問題が発生する。
フレーム・マーカを保持するバッファを判定するという問題に対処するために、データの各ワードをＰＣＩインターフェースのライトＦＩＦＯから読み出す際に、これを検査する。各データ転送の下位側１６ビットを、フレーム・マーカ・コードと比較する。データをＰＣＩバスに移動する際にＤＭＡエンジンがマーカ・コードを検出した場合、フレーム・ポインタ・レジスタに、アクティブ・レジスタ・セット内のバッファ・ポインタの値をロードしなければならない。
他のフレーム境界が現れる前にホスト・コンピュータがフレーム・ポインタ・レジスタを読むことができないという可能性がある。したがって、フレーム・ポインタ・オーバーラン・ビットを供給し、ホストにこのような状態が発生したときを通知する。このような場合、ホスト・コンピュータは、直前のフレーム・ポインタからバッファ全体を探索し、見落としたフレーム・マーカを突き止めることによって、このようなエラーから回復する。
次に、図７を用いて、ビデオ情報の伸長について更に詳細に説明する。伸長は、圧縮を逆にした一連のステップから成る。まず、ステップ１３０において、ディスクからシステム・メモリにフレームを読み込む。ステップ１３２において、主メモリからのこれらのフレームを、ＰＣＩバスを通じて転送し、ＰＣＩインターフェース１００内にバッファする。次に、ステップ１３４において、ＰＣＩインターフェースから伸長回路にデータを読み出し、伸長して、ブロックからラスタ画素データに変換し、ＳＩＦ画像を生成する。次に、ステップ１３６において、ＳＩＦ画像を補間し、フィルタ処理してフル・フレームサイズに戻す。これをＤＲＡＭバッファ６４に格納し、２フィールドとして出力する。次いで、ステップ１３８において、これら２フィールドをＤＡＶインターフェース９０またはエンコーダ７１に送信する。
次に、図８を用いて、モーション・ビデオ情報上におけるエフェクトのレンダリングについて更に詳細に説明する。このプロセスは、特殊効果を発生するために用いるべき画像の指示、および例えば、アプリケーション・プログラムからモーション・ビデオ情報を編集するために行なう効果の指示を受け取る。このようなアプリケーション・プログラムについては、１９９６年７月２９日に出願し、マサチューセッツ州TewksburyのAvid Technology,Inc.,（アヴィッド・テクノロジー社）に譲渡された、Kevin Foreman et al.（ケビン・フォアマンその他）による、“Graphical User Interface for a Motion Video Planning and Editing System for a Computer”（コンピュータ用のモーション・ビデオのプランニングおよび編集システムのためのグラフィックス・ユーザ・インターフェース）と題する米国特許出願に詳細に記載されている。その内容は、この言及により本願にも含まれるものとする。図８のプロセスは、エフェクトの各出力フレームを発生するために当該エフェクト内で必要な各フレームまたはフレーム対毎に行なう。最初に、ステップ１４０において、ディスクから圧縮フレーム・データを読み出し、システム・メモリに転送する。ステップ１４２において、圧縮フレームをＰＣＩバスを通じてビデオ処理回路に転送し、ＰＳＩインターフェース１００内にバッファする。次に、ステップ１４４において、圧縮フレームを伸長し、システム・メモリに書き戻す。次に、ステップ１４６において、他のソフトウェアによってシステム・メモリ内の１つまたは複数の画像に対してエフェクトを実行する。ステップ１４８において、エフェクトをレンダリングして得られた画像を、ＰＣＩバスを通じてビデオ処理回路２２に転送し、ＰＣＩインターフェース１００内にバッファする。次に、ステップ１５０において、ビデオ処理回路２２がこの画像を圧縮し、圧縮データをＰＣＩインターフェース１００を介して転送しシステム・メモリに戻す。次に、ステップ１５２において、画像を含む圧縮データをディスク上のデータ・ファイルに格納する。
次に、図９を用いて、ＭＰＥＧエンコード・ビデオの再生について更に詳細に説明する。ＭＰＥＧエンコード・ビデオのデコードには、ステップ１６０に示すように、典型的にＣＤＲＯＭまたはハード・ドライブからシステム・メモリへのデータの読み込みを伴う。次に、ステップ１６２において、データをＰＳＩインターフェースを介してシステム・メモリからＤＲＡＭバッファ６４にフェッチするように、ＭＰＥＧデコーダ６２に命令する。すると、ＭＰＥＧデコーダは、ＭＰＥＧエンコード・システム・ストリームを読み込み、ビデオおよびオーディオ情報の双方をデコードする。ＭＰＥＧデコーダは、ストリーム内におけるビデオおよびオーディオの同期の問題全てに対処し、フレームからフィールドへの変換を行なう。次に、ビデオ・データの２つのフレームをＭＰＥＧインターフェース９２を介してコントローラ５０に渡し、画素ルーティング・ブロック１０５および補間モジュール１１０を介してＤＡＶインターフェースに導出する。ＤＡＶインターフェースを介して、フル・スクリーン画像データを、ＤＡＶコネクタおよびエンコーダ７１双方に供給する。
ＭＰＥＧ−１デコード・モードを用いると、ＭＰＥＧ−１エンコード・ビデオストリームをMotionＪＰＥＧビデオ・ストリームに変換することも、ビデオ処理回路２２を用いて可能となる。この変換を行なうには、画素ルーティング・ブロック１０８を制御し、伸長ビデオ・データをＭＰＥＧデコーダ６２からＪＰＥＧインターフェース９６に送出させる。この変換プロセスでは、ＭＰＥＧ−圧縮データは、ホスト・コンピュータのシステム・メモリ３２内のバッファから、ＰＣＩインターフェース１００を介して受け取る。次に、ＧＢＩＦ９８は、圧縮データをＭＰＥＧデコーダ６２に送出する。次に、デコードしたビデオ・データを、ＭＰＥＧインターフェース９２を介してコントローラ５０に出力する。次いで、コントローラ５０は、ＪＰＥＧインターフェース９６への画素ルーティング・ブロック１０８を介して、ＪＰＥＧコーデック５８にビデオ・データを導出する。次に、ＪＰＥＧコーデック５８から圧縮データ・ポート１０６に圧縮データを出力する。次に、ＧＢＩＦは、圧縮データ・ポート１０６からデータを読み込み、このデータをＰＣＩインターフェース１００に供給する。ＰＣＩインターフェース１００は、ＪＰＥＧ圧縮データを、システム・メモリ内の別個のバッファに転送し、変換プロセスを完了する。
以上、本発明の実施形態をいくつか説明したが、前述の説明は単に例示に過ぎず限定的なものではなく、一例として提示しただけであることは、当業者には明白であろう。多数の変更やその他の実施形態も当業者の範囲内のことであり、添付の請求項に定めた本発明の範囲およびその均等物に該当するものとみなす。
【図１】
0004054067.tif 000002
【図２】
0004054067.tif 000003
【図３】
0004054067.tif 000004
【図４】
0004054067.tif 000005
【図５】
0004054067.tif 000006
【図６】
0004054067.tif 000007
【図７】
0004054067.tif 000008
【図８】
0004054067.tif 000009
【図９】
0004054067.tif 000010