(57)【要約】  複数のプロセッサ間で符号化処理を並列化する装置及び方法を提供する。装置は、計算資源バランサ（１９９）及びスプリッタ（１４５）を含む。計算資源バランサ（１９９）は、スレッド・アフィニティ及び処理アフィニティの少なくとも一方に基づいて複数のプロセッサのそれぞれに符号器インスタンスを割り当てる。スプリッタ（１４５）は、符号器インスタンスそれぞれが、別個のＧＯＰそれぞれが複数のプロセッサそれぞれで符号化されるように入力ビデオ系列を並列に符号化することができるように入力ビデオ系列を別個のＧＯＰに時間的に分割する。
2008527945.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサ間でビデオ符号化処理を並列化する装置であって、
スレッド・アフィニティ及び処理アフィニティの少なくとも一方に基づいて前記複数のプロセッサのそれぞれに符号器インスタンスを割り当てる計算資源バランサと、
入力ビデオ系列を別個のピクチャ群（ＧＯＰ）に、前記別個のＧＯＰのそれぞれが前記複数のプロセッサのそれぞれで符号化されるように時間的に分割するスプリッタとを備える装置。
【請求項２】
請求項１記載の装置であって、一定の符号化品質が前記別個のＧＯＰ間で維持されるように前記別個のＧＯＰ間の量子化パラメータ（ＱＰ）差を制限する手段を更に備える装置。
【請求項３】
請求項２記載の装置であって、前記符号器インスタンス間の平均ＱＰを把握する、前記符号器インスタンス間の静的大局変数及び共通変数の少なくとも一方を維持することによって前記ＱＰ差を制限する装置。
【請求項４】
請求項１記載の装置であって、ＧＯＰ符号化が終了した後に順番に前記別個のＧＯＰ内のピクチャを再配列するマルチプレクサを更に備える装置。
【請求項５】
請求項４記載の装置であって、前記マルチプレクサは、ピクチャ・レベル及びＧＯＰレベルの少なくとも一方のタイムスタンプ及び連番の少なくとの一方を用いて前記ピクチャを再配列する装置。
【請求項６】
請求項１記載の装置であって、前記符号器インスタンスに提示される前記別個のＧＯＰのそれぞれの第１のフレームが、瞬時復号化リフレッシュ（ＩＤＲ）フレームとして符号化されるので、前記符号器インスタンスのそれぞれが、互いに独立して動作することができる装置。
【請求項７】
複数のプロセッサ間でビデオ符号化処理を並列化する方法であって、
スレッド・アフィニティ及び処理アフィニティの少なくとも一方に基づいて前記複数のプロセッサのそれぞれに符号器インスタンスを割り当てる工程と、
入力ビデオ系列を別個のピクチャ群（ＧＯＰ）に、前記別個のＧＯＰのそれぞれが前記複数のプロセッサのそれぞれで符号化されるように時間的に分割する工程とを備える方法。
【請求項８】
請求項７記載の方法であって、前記別個のＧＯＰ間で一定の符号化品質が維持されるように前記別個のＧＯＰ間の量子化パラメータ（ＱＰ）差を制限する工程を更に備える方法。
【請求項９】
請求項８記載の方法であって、前記制限する工程は、前記符号器インスタンス間の平均ＱＰを把握する、前記符号器インスタンス間の静的大局変数及び共通変数の少なくとも一方を維持することによって前記ＱＰ差を制限する方法。
【請求項１０】
請求項７記載の方法であって、ＧＯＰ符号化が終了した後に順番に前記別個のＧＯＰ内のピクチャを再配列する工程を更に備える方法。
【請求項１１】
請求項１０記載の方法であって、前記再配列する工程は、ピクチャ・レベル及びＧＯＰレベルの少なくとも一方のタイムスタンプ及び連番の少なくとの一方を用いて前記ピクチャを再配列する方法。
【請求項１２】
請求項７記載の方法であって、前記符号器インスタンスに提示される前記別個のＧＯＰそれぞれの第１のフレームが、瞬時復号化リフレッシュ（ＩＤＲ）フレームとして符号化されるので、前記符号器インスタンスのそれぞれが、互いに独立して動作することができる方法。
【請求項１３】
複数のプロセッサ間でビデオ符号化処理を並列化する装置であって、
スレッド・アフィニティ及び処理アフィニティの少なくとも一方に基づいて前記複数のプロセッサのそれぞれに符号器インスタンスを割り当てる計算資源バランサと、
入力ビデオ系列を別個のスライスに、前記別個のスライスのそれぞれが前記複数のプロセッサのそれぞれで符号化されるように前記入力ビデオ系列を並列に前記符号器インスタンスのそれぞれが符号化することができるように空間的に分割するスプリッタとを備える装置。
【請求項１４】
請求項１３記載の装置であって、一定の符号化品質が前記別個のスライス間で維持されるように前記別個のスライス間の量子化パラメータ（ＱＰ）差を制限する手段を更に備える装置。
【請求項１５】
請求項１４記載の装置であって、前記制限する手段は、前記符号器インスタンス間の平均ＱＰを把握する、前記符号器インスタンス間の静的大局変数及び共通変数の少なくとも一方を維持することによって前記ＱＰ差を制限する装置。
【請求項１６】
複数のプロセッサ間でビデオ符号化処理を並列化する方法であって、
スレッド・アフィニティ及び処理アフィニティの少なくとも一方に基づいて前記複数のプロセッサのそれぞれに符号器インスタンスを割り当てる工程と、
入力ビデオ系列を別個のスライスに、前記別個のスライスのそれぞれが前記複数のプロセッサのそれぞれで符号化されるように前記入力ビデオ系列を並列に前記符号器インスタンスのそれぞれが符号化することができるように空間的に分割する工程とを備える方法。
【請求項１７】
請求項１６記載の方法であって、一定の符号化品質が前記別個のスライス間で維持されるように前記別個のスライス間の量子化パラメータ（ＱＰ）差を制限する工程を更に備える方法。
【請求項１８】
請求項１７記載の方法であって、前記制限する工程は、前記符号器インスタンス間の平均ＱＰを把握する、前記符号器インスタンス間の静的大局変数及び共通変数の少なくとも一方を維持することによって前記ＱＰ差を制限する方法。
【発明の詳細な説明】
【関連出願への相互参照】
【０００１】
本願は、その内容全体を本明細書及び特許請求の範囲に援用する、「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＲＥＡＬ  ＴＩＭＥ  ＰＡＲＡＬＬＥＬ  ＶＩＤＥＯ  ＥＮＣＯＤＩＮＧ」と題する西暦２００５年１月１９日付出願の米国仮出願第６０／６４５，１７９号（代理人整理番号ＰＵ０５０００１３）の利益を主張する。
【技術分野】
【０００２】
本発明は一般に、ビデオ符号器及びビデオ復号器に関し、特に、リアルタイム並列ビデオ符号化の方法及び装置に関する。
【背景技術】
【０００３】
ビデオ・データのリアルタイム符号化は、計算量の要求が非常に厳しく、かなりの量のメモリ及び計算資源を必要とする。
【０００４】
並列システム及び分散システムを用いたビデオ符号化は過去に、いくつかの事例においてＭＰＥＧ１システム及びＭＰＥＧ２システムに用いられている。最も顕著な事例の１つには、並列バークレー符号器プロジェクトがある。このプロジェクトの目標は、ビデオ系列を時間方向において並列化することによってビデオ符号化処理を加速化させることであった。並列バークレー符号器プロジェクトは、いくつかのフレームを各プロセッサに計算量測定に基づいて割り当てる動的スケジューリング手法を利用する。計算量測定において、かつ符号化中にアンバランスが見出されるにつれ、新たな作業負荷割り当てが、符号化対象の将来の系列について算出される。
【０００５】
しかし、並列システム及び分散システムを用いたビデオ符号化には欠点がない訳でない。よって、符号化時間が一定であるように並列アーキテクチャにリアルタイム符号化（例えば、ＪＶＴ／Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ（「ＪＶＴ」）標準による）のために時間的ビデオ系列をスケジューリングするという課題を解決するリアルタイム並列ビデオ符号化の方法及び装置を有することが望ましく、大いに効果的である。更に、並列ビデオ符号器の複数のインスタンスに関して正確なレート制御を維持するという別の課題を解決するリアルタイム並列ビデオ符号化の方法及び装置を有することが望ましく、大いに効果的である。更に、マルチプロセッサＰＣプラットフォーム上でのリアルタイム符号化という更に別の課題を解決する方法及び装置を有することが望ましく、大いに効果的である。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来技術の前述並びにその他の欠点及び不利点は、リアルタイム並列ビデオ符号化の方法及び装置に関する本発明によって解決される。
【課題を解決するための手段】
【０００７】
本発明の一局面によれば、複数のプロセッサ間で符号化処理を並列化する装置を提供する。装置は、計算資源バランサ及びスプリッタを含む。計算資源バランサは、スレッド・アフィニティ及び処理アフィニティの少なくとも一方に基づいて複数のプロセッサのそれぞれに符号器インスタンスを割り当てる。スプリッタは、符号器インスタンスそれぞれが、別個のＧＯＰそれぞれが複数のプロセッサそれぞれで符号化されるように入力ビデオ系列を並列に符号化することができるように入力ビデオ系列を別個のピクチャ群（ＧＯＰ）に時間的に分割する。
【０００８】
本発明の別の局面によれば、複数のプロセッサ間で符号化処理を並列化する方法を提供する。この方法は、スレッド・アフィニティ及び処理アフィニティの少なくとも一方に基づいて複数のプロセッサのそれぞれに符号器インスタンスを割り当てる工程を含む。この方法は、符号器インスタンスそれぞれが、別個のＧＯＰそれぞれが複数のプロセッサそれぞれで符号化されるように入力ビデオ系列を並列に符号化するように入力ビデオ系列を別個のＧＯＰに時間的に分割する工程も含む。
【０００９】
本発明の更に別の局面によれば、複数のプロセッサ間で符号化処理を並列化する装置を提供する。装置は、計算資源バランサ及びスプリッタを含む。計算資源バランサは、スレッド・アフィニティ及び処理アフィニティの少なくとも一方に基づいて複数のコンピュータ・プロセッサのそれぞれに符号器インスタンスを割り当てる。スプリッタは、別個のスライスそれぞれが複数のプロセッサそれぞれで符号化されるように符号器インスタンスそれぞれが入力ビデオ系列を並列に符号化することができるように入力ビデオ系列を別個のスライスに空間的に分割する。
【００１０】
本発明の更に別の局面によれば、複数のプロセッサ間で符号化処理を並列化する方法を提供する。この方法は、スレッド・アフィニティ及び処理アフィニティの少なくとも一方に基づいて複数のプロセッサのそれぞれに符号器インスタンスを割り当てる工程を含む。この方法は、符号器インスタンスそれぞれが、別個のスライスそれぞれが複数のプロセッサそれぞれで符号化されるように入力ビデオ系列を並列に符号化することができるように入力ビデオ系列を別個のスライスに空間的に分割する工程も含む。
【発明を実施するための最良の形態】
【００１１】
本発明の前述並びにその他の局面、特徴及び利点は、添付図面に関して検討するものとする、以下の、例示的な実施例の詳細な説明から明らかになるであろう。
【実施例】
【００１２】
本発明は、リアルタイム並列ビデオ符号化の方法及び装置に関する。効果的には、本発明は、標準的なマルチプロセッサ・デスクトップＰＣを用いたリアルタイム・ビデオ符号化を提供するが、特許請求の範囲は、マルチプロセッサ・デスクトップＰＣの環境に限定されると解されないものとする。本発明は、ＪＶＴ／Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ  （「ＪＶＴ」）標準ビデオ符号化環境において説明しているが、本発明の原理は、他のビデオ圧縮標準に用いることにも適用可能である。
【００１３】
前述の通り、リアルタイムＪＶＴ符号化は、計算量の要求が非常に厳しく、かなりの量のメモリ及び計算資源を必要とする。本明細書及び特許請求の範囲では、時間的なピクチャ群（ＧＯＰ）単位で、複数プロセッサ間でＪＶＴビデオ符号化処理を並列化してリアルタイム符号化を達成する方法及び装置が提供される。本発明では、手法（例えば、マルチスレッド・ソフトウェア・スケジューリング手法と組み合わせたピクチャ計算量解析及びシーン切り換え検出など）を組み合わせている。
【００１４】
ビデオ系列の一部をプロセッサ間でスケジューリングすべき方法を求めるための性能メトリックに全面的に注力するよりも、更なる要素（例えば、時間ウィンドウに加えたシーン切り換え検出など）を用いて系列をスケジューリングする。更に、並列ＪＶＴ符号器では、符号化対象の系列の各セグメントは互いに独立している（前述の並列バークレー符号器プロジェクトではそうでない）。並列バークレー符号器プロジェクトでは、符号器のインスタンス間の復号化参照フレームの多少の交換が存在しており、これは、望ましくない更なる負荷をもたらし得る。独立している系列を用いることによって、並列に符号化されるデータの相互依存性が最小にされ、その結果、各符号器インスタンス間の最小の通信しかもたらさない。更に、符号器インスタンス間の正確なビットレート制御、及びシーン切り換え検出は並列バークレー符号器プロジェクトでは解決されていないことも特筆すべきである。よって、本発明及びバークレー符号器プロジェクトは並列ビデオ符号化に関するが、本発明は、並列符号化を達成するのに用いる基本的なステップ及びアプローチの多く（ピクチャ系列がプロセッサ間でスケジューリングされる方法、及びレート制御が正確に維持される方法を含むが、これらに限定されない）において異なる。  
効果的には、本発明は、符号化時間が一定であるように並列アーキテクチャにリアルタイムＪＶＴ符号化のためにビデオの時間系列をスケジューリングするという課題を解決する。更に、本発明は効果的には、並列ＪＶＴビデオ符号器の複数インスタンスに関して正確なレート制御を維持するという別の課題を解決する。更に、本発明は効果的には、マルチプロセッサＰＣプラットフォーム上のリアルタイム符号化という更に別の課題を解決する。
【００１５】
本明細書は、本発明の原理を例証する。よって、本明細書及び特許請求の範囲に明示的に説明されているものでないか、又は示されているものでないが、本発明の原理を実施し、その趣旨及び範囲内に含まれる種々の構成を当業者が考え出すことができるであろう。
【００１６】
本明細書及び特許請求の範囲記載の、例、及び条件付き言い回しは全て、本発明の原理、及び、技術を進展させるために本願発明者が貢献する本願の概念の理解を支援するという教示の目的のためであることが意図されており、前述の特に記載された例及び条件に限定されないものと解されることとする。
【００１７】
更に、本発明の原理、局面及び実施例、並びにその特定の例を記載した、本明細書及び特許請求の範囲内の提示は全て、その構造的な均等物及び機能的な均等物を包含することが意図されている。更に、現在知られている均等物、及び、将来において開発される均等物（すなわち、構造に係わらず、同じ機能を行う、開発された何れかの構成要素）を前述の均等物が含むことが意図されている。
【００１８】
よって、例えば、本明細書記載のブロック図が、本発明の原理を実施する例証的な回路の概念図を表すことが当業者によって分かるであろう。同様に、コンピュータ又はプロセッサを明示的に示しているか否かに係わらず、コンピュータ読み取り可能媒体において実質的に表し、よって、コンピュータ又はプロセッサによって実行することができる種々の処理を、何れかのフローチャート、フロー図、状態遷移図、疑似コード等が表すことが分かるであろう。
【００１９】
図に示す種々の構成要素の機能は、専用ハードウェア、及び適切なハードウェアに関連してソフトウェアを実行することができるハードウェアを用いることによって提供することができる。プロセッサによって備えられる場合、機能は、単一の専用プロセッサによって、単一の共有プロセッサによって、又は複数の個々のプロセッサ（一部は共有され得る）によって備えることができる。更に、「プロセッサ」又は「コントローラ」の語を明示的に用いていることは、ソフトウェアを実行することができるハードウェアを排他的に表すものと解されないものとし、ディジタル信号プロセッサ（「ＤＳＰ」）ハードウェア、ソフトウェアを記憶するリード・オンリー・メモリ（「ＲＯＭ」）、ランダム・アクセス・メモリ（「ＲＡＭ」）、及び不揮発性記憶装置を限定なしで暗黙的に含み得る。
【００２０】
他のハードウェア（通常のハードウェア及び／又はカスタム）も含むことができる。同様に、図に示すスイッチは何れも、概念的なものに過ぎない。その機能は、プログラム・ロジックの処理によって、専用ロジックによって、プログラム制御と専用ロジックとの相互作用によって行うことができ、又は手作業によっても行うことができる。特定の手法は、意味合いから、より具体的に理解されるように実施者によって選択可能である。
【００２１】
本願の特許請求の範囲では、特定された機能を行う手段として記載された構成要素は、その規定された機能を行うやり方（例えば、ａ）その機能を行う回路要素の組み合わせ、ｂ）何れかの形態のソフトウェア（よって、上記機能を行うために上記ソフトウェアを実行する適切な回路と組み合わせた、ファームウェア、マイクロコード等を含む）を含む）を包含することが意図されている。前述の特許請求の範囲記載の本発明は、特許請求の範囲が要求するやり方で、記載された種々の手段によって提供される機能が組み合わせられ、集約されることにある。よって、前述の機能を提供することが可能な如何なる手段も、本明細書及び特許請求の範囲記載のものと均等であるものとする。
【００２２】
効果的には、本発明は、複数のプロセッサ（例えば、標準マルチプロセッサ・デスクトップＰＣ上）間でリアルタイムＪＶＴ符号化を達成する新しい手法を提供する。リアルタイムＪＶＴ符号化を達成する計算量集約的な要件を前提とすれば、この目標を達成するために、並列アーキテクチャが必要と考えられた。ビデオ符号器を並列化し、マクロブロックを並列に符号化するための手法（例えば、内部アルゴリズム（すなわち、動き推定、モード決定等）における並列性の活用など）はいくつか、別々のものが存在しているが、ピクチャ又はＧＯＰの系列を並列に符号化する手法が選ばれた。この手法は、複数のプロセッサ間のスケーリングの可能性が高く、既存のＪＶＴ符号器のコア・アーキテクチャ及び機能に行う必要がある変更も制限する。
【００２３】
図１に移れば、ＪＶＴ／Ｈ．２６４／ＭＰＥＧ４  ＡＶＣ（「ＪＶＴ」）環境における並列ビデオ符号器アーキテクチャは、全体を参照番号１００で示す。
【００２４】
並列ビデオ符号器アーキテクチャ１００は、オーディオ・グラバ１１０の入力と信号通信で接続される第１の出力と、デインタレーサ／雑音フィルタ／スケーラ１３０の入力と信号通信で接続される第２の出力とを有するリアルタイム・キャプチャ・インタフェースを含む。
【００２５】
オーディオ・グラバ１１０の出力は、オーディオ符号器（以下「オーディオ符号器」）１１５の少なくとも１つのインスタンスの入力と信号通信で接続される。オーディオ符号器１１５の出力は、ＭＰＥＧ２−ＴＳマルチプレクサ１２０の第１の入力と信号通信で接続される。ＭＰＥＧ２トランスポート・ストリーム（ＴＳ）マルチプレクサ１２０の出力は、ディジタル・ビデオ放送非同期シリアル・インタフェース（ＤＶＢ−ＡＳＩ）送信器（Ｔｘ）１２５の入力と信号通信で接続される。
【００２６】
デインタレース／雑音フィルタ／スケーラ１３０の出力は、ビデオ・グラバ１３５の入力と信号通信で接続される。ビデオ・グラバ１３５の出力は、プリプロセッサ／計算量解析器１４０と信号通信で接続される。プリプロセッサ／計算量解析器１４０の出力は、ピクチャ群（ＧＯＰ）スプリッタ・キュー（本明細書では、「シーン切り換え検出器」としても表す）１４５の入力と信号通信で接続される。ＧＯＰスプリッタ・キュー１４５の第１乃至第Ｎの出力はそれぞれ、ＪＶＴ符号器１５０の第１乃至第Ｎのインスタンスの入力と信号通信で接続される。ＪＶＴ符号器１５０の第１乃至第Ｎのインスタンスの出力はそれぞれ、符号化ＪＶＴマルチプレクサ１６０の第１乃至第Ｎの入力と信号通信で接続される。符号化ＪＶＴマルチプレクサ１６０の出力は、ＭＰＥＧ−２  ＴＳマルチプレクサ１２０の第２の入力と信号通信で接続される。
【００２７】
並列ビデオ符号器アーキテクチャ１００は、システム資源を識別し、スレッド及びプロセッサのアフィニティの割り当て（例えば、符号器毎に単一のプロセッサ）を行うことが可能なように資源を割り当てる計算資源バランサ１９９を更に含む。計算資源バランサ１９９は、少なくとも、ＪＶＴ符号器インスタンス１５０、又はＪＶＴ符号器インスタンス１５０を作成／管理する構成要素と信号通信で接続される。計算資源バランサ１９９は、図１に示す構成要素の全体のデータ連鎖を設定する役目を基本的に担う主アプリケーション（図示せず）の一部であり得るか、又は、図１に示すスタンドアロンの構成要素であり得る。
【００２８】
図１に示す構成要素の一部がハードウェアとして表されており、他がソフトウェアとして表されている一方で、本発明は図１に示すまさにその構成に限定されず、よって、本明細書及び特許請求の範囲記載の本発明の教示が与えられれば、前述の構成要素の他の構成及び実現形態も、本発明の範囲を維持する限り、使用することができる。例えば、本発明の他の実施例では、ハードウェア構成要素として図１に示す構成要素はソフトウェア構成要素として表すことができ、ソフトウェア構成要素として図１に示す構成要素はハードウェア構成要素として表すことができ、かつ／又は、一タイプ（ハードウェア若しくはソフトウェア）として示す構成要素はハードウェア及びソフトウェアの組み合わせとして実現される。
【００２９】
図１中のデータのフローは左から右に進み、入力データは、ビデオ・ソースとして表され、非圧縮ビデオ形式（ＹＵＶ４２０（これに限られない）など）であり、出力データは、例えば、圧縮ＪＶＴビデオＮＡＬユニットで表される。リアルタイム・キャプチャ・インタフェース１０５は例えば、アナログ・キャプチャ・インタフェース、又は、ディジタル・ビデオ・キャプチャ・インタフェース（シリアル・ディジタル・インタフェース（ＳＤＩ）やＤＶ（ＩＥＥＥ１３９４）など）であり得る。
【００３０】
次に、図１に示すデインタレーサ／雑音フィルタ／スケーラ１３０に関して更に説明する。デインタレース、フィルタリング及びスケーリングは全て、符号器プラットフォームの重要な機能構成部分である。まず、アナログ・キャプチャ・システムでは、入力ビデオは、インタレースされた標準品位（ＳＤ）の形式（すなわち、毎秒６０フィールドでの７２０ｘ４８０ｉ）である。しかし、本発明の原理によるリアルタイムＨ．２６４符号器は好ましくは、毎秒３０フレームでの３５２ｘ２８８又はＣＩＦの最大分解能でのプログレシブ・ビデオを受け入れる。デインタレース変換に加えて、雑音フィルタリング及びスケーリングも実現される。雑音フィルタリングは、空間的かつ／又は時間的に雑音を除去して（すなわち、動き補償時間フィルタリング）、符号化のためにビデオの品質を向上させる。更に、入力ビデオの分解能が符号器に対して正しいようにスケーリングが実行される。
【００３１】
更に、この特定のＨ．２６４符号器プラットフォームでは、デインタレース、フィルタリング及びスケーリングは全て、ハードウェアで行われる。しかし、本発明は前述の構成に限定されず、よって、前述の機能は、ソフトウェアで、又はハードウェア及びソフトウェアの組み合わせで行うこともできる。
【００３２】
次に、図１に示すビデオ・グラバ１３５に関する更なる説明を表す。ビデオ・グラバ１３５は、入力ビデオ・フレームが、入力キャプチャ・カードから一定レートでキャプチャされる場所である。ビデオ・グラバ１３５は、ビデオ・フレームを入力バッファにキャプチャし、これを次いで、解析のために符号器のプリプロセッサに転送する高優先度スレッドとして実現することができる。
【００３３】
次に、図１に示すプリプロセッサ／計算量解析器１４０及びＧＯＰスプリッタ・キュー１４５に関して更に説明する。ＧＯＰスプリッタ・キュー１４５は、図１に示す並列符号器インスタンスそれぞれに入力系列を供給する。ピクチャ群（ＧＯＰ）は、特定のやり方で符号化される対象のビデオ・フレーム系列として定義される。例えば、毎秒３０フレームのビデオ系列における半秒のＧＯＰは場合によっては、ＩＢＢＰＢＢＰＢＢＰＢＢＰＢＢＰの符号化フレーム系列として符号化することが可能である。特に、プリプロセッサの計算量解析器１４０及び符号器１５０に提示される各ＧＯＰの第１のフレームは、何れの先行符号化ピクチャにも依存しないように瞬時復号化リフレッシュ（ＩＤＲ）同期フレームとして符号化される。
【００３４】
プリプロセッサの計算量解析器は、先行フレームに対する個々のビデオ・フレームそれぞれの計算量を計算する。この段階では、１６ｘ１６の高速動き推定が、マクロブロック毎に行われる。マクロブロック単位に以下の統計の少なくとも一部が収集され、少なくとも３つのＧＯＰ（すなわち、水平動きベクトル、垂直動きベクトル、絶対差（ＳＡＤ）の和、並びに、分散及び標準偏差）の期間中、符号器内の後の使用のために格納される。
【００３５】
上記統計を用いて、結果として生じる符号化ビットストリームの所望のレート制御設定のより正確な達成を支援する。分散は、画像及び符号化計算量の好適な尺度をもたらす。その結果、フレーム単位のビット割り当てがより最適になる。更に、統計を用いて、ビットストリーム内でシーン切り換えが生じ得る場所も算出する。これによって、その場合、ビットストリームをより好適に符号化する方法に関するヒントが符号器に与えられる。
【００３６】
ピクチャ毎の推定数のビットは更に、符号器間での符号化ピクチャ出力品質及びバッファ制約に関してレート制御を一定に保つようプリプロセッサ／計算量解析器１４０において割り当てる。
【００３７】
次に、図１に示すＪＶＴ符号器１５０に関して更に説明する。前処理後、かつ、十分なビデオ・データが利用可能になると、ＪＶＴ符号器１５０の各インスタンスに、符号化対象のＧＯＰが提示される。フレームが符号化されるにつれ、符号化フレームは、マルチプレクサ１６０において、ソートされたリンク・リストに挿入される。アンバランス及び理想的でないシステム状態によって、狂った順序でフレームが到着する場合があり得る可能性が高い。
【００３８】
次に、図１に示す符号化ＪＶＴマルチプレクサ１６０に関して更に説明する。符号化ＪＶＴマルチプレクサ１６０は、符号器出力フレームの正しい順序を確実にし、符号化ＪＶＴビットストリームを順番にファイル又は伝送インタフェースに後に供給する。最も一般的な伝送インタフェースは、ＤＶＢ‐ＡＳＩインタフェース及びイーサネット（登録商標）である。ＤＶＢ‐ＡＳＩインタフェースは標準化されたＭＰＥＧ２伝送インタフェースである一方、イーサネット（登録商標）・インタフェースは、インターネット・プロトコル（ＩＰ）伝送の標準インタフェースである。
【００３９】
次に、本発明の原理によるレート制御に関して説明する。デュアル・プロセッサ符号器におけるレート制御手法の目的は、各符号器インスタンスの出力ビットレートと目標ビットレートとの一致を保つことである。更に、符号器の別個のインスタンスによって符号化されるＧＯＰ間の符号化品質を一定に維持することも望ましい。特に、各ＧＯＰ間の符号化ビデオにおける品質のばらつきが大きいことは視覚的に望ましくない。ＧＯＰ間の品質のばらつきを制限するために、量子化パラメータ（ＱＰ）は、一ＧＯＰの最後と次のＧＯＰの最初との間で大きくばらついてはならない。プリプロセッサ／計算量解析器１４０は、フレーム間の符号化ＱＰ差が最小にされるようなＧＯＰ間の境界条件の推定を支援する。
【００４０】
図２に移れば、ＪＶＴ／Ｈ．２６４／ＭＰＥＧ４  ＡＶＣ（「ＪＶＴ」）環境における並列ビデオ符号化の方法は、参照番号２００で全体を示す。
【００４１】
開始ブロック２０２は、機能ブロック２０５にコントロールを移す。機能ブロック２０５は、スレッド・アフィニティ及び／又は処理アフィニティに基づいて複数のコンピュータ・プロセッサそれぞれに符号器インスタンスを割り当てる。機能ブロック２１０は、別個のＧＯＰそれぞれが複数のプロセッサそれぞれで符号化されるように入力ビデオ系列を並列に符号器インスタンスそれぞれが符号化することができるように入力ビデオ系列を別個のＧＯＰに時間的に分割し、機能ブロック２１５にコントロールを移す。
【００４２】
機能ブロック２１０は、機能ブロック２１１及び機能ブロック２１２も含む。機能ブロック２１１は、別個のＧＯＰ間で一定の符号化品質が（例えば、符号器インスタンス間の平均ＱＰを把握する、符号器インスタンス間の静的大局変数及び／又は共通変数を維持することによって）維持されるように別個のＧＯＰ間の量子化パラメータ（ＱＰ）差を制限する。機能ブロック２１２は、符号器インスタンスそれぞれが互いに独立して動作することができるように、符号器インスタンスに提示される別個のＧＯＰそれぞれの第１のフレームをＩＤＲフレームとして符号化する。
【００４３】
機能ブロック２１５は、ＧＯＰ符号化が終了した後に、別個のＧＯＰ内のピクチャを順番に（例えば、ピクチャ・レベル及び／又はＧＯＰレベルにおいてタイムスタンプ及び／又は連番を用いて）再配列し、終了ブロック２２０にコントロールを移す。
【００４４】
図３に移れば、ＪＶＴ／Ｈ．２６４／ＭＰＥＧ４  ＡＶＣ（「ＪＶＴ」）環境における並列ビデオ符号化の別の方法は、全体を参照番号３００で示す。
【００４５】
開始ブロック３０２は、機能ブロック３０５にコントロールを移す。機能ブロック３０５は、スレッド・アフィニティ及び／又は処理アフィニティに基づいて複数のコンピュータ・プロセッサそれぞれに符号器インスタンスを割り当て、機能ブロック３１０にコントロールを移す。機能ブロック３１０は、別個のスライスそれぞれが複数のプロセッサそれぞれで符号化されるように入力ビデオ系列を並列に符号器インスタンスそれぞれが符号化することができるように入力ビデオ系列を別個のスライスに空間的に分割し、終了ブロック３２０にコントロールを移す。
【００４６】
機能ブロック３１０は機能ブロック３１１も含む。機能ブロック３１１は、別個のＧＯＰ間で一定の符号化品質が（例えば、符号器インスタンス間の平均ＱＰを把握する、符号器インスタンス間の静的大局変数及び／又は共通変数を維持することによって）維持されるように別個のＧＯＰ間の量子化パラメータ（ＱＰ）差を制限する。
【００４７】
次に、本発明の多くの付随的な利点／特徴の一部を説明する。例えば、１つの利点／特徴は、複数のコンピュータ・プロセッサ間でＨ．２６４符号化処理を並列化する装置である。この装置は、スレッド・アフィニティ及び／又は処理アフィニティに基づいて複数のコンピュータ・プロセッサそれぞれに符号器インスタンスを割り当てる計算資源バランサと、各符号器インスタンスが入力ビデオ系列を並列に符号化することが可能であるように入力ビデオ系列を別個のＧＯＰ又は別個のスライスに分割するスプリッタとを含む。別個のＧＯＰ又は別個のスライスは、１つのＧＯＰ又はスライスが、複数のコンピュータ・プロセッサの１つで符号化され、別のＧＯＰ又はスライスが、複数のコンピュータ・プロセッサの別の１つで符号化される等のように符号化される。更に、別の利点／特徴は、前述の装置であり、この装置では、ＧＯＰ間又はスライス間で一定の符号化品質が維持されるようにＧＯＰ間又はスライス間の量子化パラメータ（ＧＰ）差が制限される。ＧＰ差は、符号器インスタンス間の平均ＱＰを把握する、例えば、静的大局変数（又は、２つの符号器スレッド間の共通の変数）によって維持することができる。更に、別の利点／特徴は、前述の装置であり、この装置では、ＧＯＰ符号化の終了後に、ピクチャが順番に再配列される。再配列は、例えば、ピクチャ・レベル及び／又はＧＯＰレベルにおいてタイムスタンプ及び／連番を用いることによって、行うことができる。更に、別の利点／特徴は、前述の符号器であり、この符号器では、符号器インスタンスにそれぞれ提示される別個のＧＯＰそれぞれの第１のフレームがＩＤＲフレームとして符号化される。各ＧＯＰの当初フレームをＩＤＲフレームとして符号化することによって、符号器の２つのインスタンスは、独立して動作することができる。
【００４８】
本発明の前述並びにその他の特徴及び利点は、本明細書及び特許請求の範囲記載の教示に基づいて当業者によって容易に確認することができる。本発明の教示は、ハードウェア、ソフトウェア、ファームウェア、専用プロセッサ、又はそれらの組み合わせの種々の形態で実現することができる。
【００４９】
最も好ましくは、本発明の教示はハードウェア及びソフトウェアの組み合わせとして実現される。更に、ソフトウェアは好ましくは、プログラム記憶装置上に有形に実施されたアプリケーション・プログラムとして実現される。アプリケーション・プログラムは、何れかの適切なアーキテクチャを備えるマシンにアップロードし得るものであり、かつ、前述のマシンによって実行し得る。好ましくは、マシンは、ハードウェア（１つ又は複数の中央処理装置（「ＣＰＵ」）、ランダム・アクセス・メモリ（「ＲＡＭ」）や入出力（「Ｉ／Ｏ」）インタフェースなど）を有するコンピュータ・プラットフォーム上に実現される。コンピュータ・プラットフォームは、オペレーティング・システム及びマイクロ命令コードも含み得る。本明細書及び特許請求の範囲記載の種々の処理及び機能は、マイクロ命令コードの一部若しくはアプリケーション・プログラムの一部、又はそれらの何れかの組み合わせ（ＣＰＵによって実行することができる）であり得る。更に、種々の他の周辺装置（更なるデータ記憶装置や印刷装置など）をコンピュータ・プラットフォームに接続することができる。
【００５０】
更に、添付図面に表した構成システム部分及び構成方法の一部は好ましくはソフトウェアで実現されるので、システム構成部分間又は処理機能ブロック間の実際の接続は、本発明がプログラムされるやり方によって変わり得る。本明細書及び特許請求の範囲に記載の教示が与えられれば、当業者は、本発明の前述及び同様の実現形態又は構成を考え出すことができるであろう。
【００５１】
添付図面を参照して例証的な実施例を本明細書及び特許請求の範囲において説明したが、本発明は前述のまさにその実施例に限定されるものでなく、本発明の範囲又は趣旨から逸脱しない限り、当業者によって種々の変更及び修正を行うことができる。前述の変更及び修正は全て、特許請求の範囲記載の本発明の範囲内に含まれることが意図されている。
【図面の簡単な説明】
【００５２】
【図１】本発明の原理による、ＪＶＴ／Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ（「ＪＶＴ」）の実施例における並列ビデオ符号器アーキテクチャを示すブロック図である。
【図２】本発明の原理による、ＪＶＴ／Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ（「ＪＶＴ」）の実施例における並列ビデオ符号化の方法を示すフロー図である。
【図３】本発明の原理による、ＪＶＴ／Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ（「ＪＶＴ」）の実施例における並列ビデオ符号化の別の方法を示すフロー図である。
【図１】
2008527945.tif 000003
【図２】
2008527945.tif 000004
【図３】
2008527945.tif 000005
【手続補正書】
【提出日】平成18年8月4日(2006.8.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のプロセッサ間でビデオ符号化処理を並列化する装置であって、
処理アフィニティに基づいて前記複数のプロセッサのそれぞれに符号器インスタンスを割り当てる計算資源バランサと、
入力ビデオ系列を別個のピクチャ群（ＧＯＰ）に、前記別個のＧＯＰのそれぞれが前記複数のプロセッサのそれぞれで符号化されるように時間的に分割するスプリッタとを備える装置。
【請求項２】
請求項１記載の装置であって、一定の符号化品質が前記別個のＧＯＰ間で維持されるように前記別個のＧＯＰ間の量子化パラメータ（ＱＰ）差を制限する手段を更に備える装置。
【請求項３】
請求項２記載の装置であって、前記符号器インスタンス間の平均ＱＰを把握する、前記符号器インスタンス間の静的大局変数及び共通変数の少なくとも一方を維持することによって前記ＱＰ差を制限する装置。
【請求項４】
請求項１記載の装置であって、ＧＯＰ符号化が終了した後に順番に前記別個のＧＯＰ内のピクチャを再配列するマルチプレクサを更に備える装置。
【請求項５】
請求項４記載の装置であって、前記マルチプレクサは、ピクチャ・レベル及びＧＯＰレベルの少なくとも一方のタイムスタンプ及び連番の少なくとの一方を用いて前記ピクチャを再配列する装置。
【請求項６】
請求項１記載の装置であって、前記符号器インスタンスに提示される前記別個のＧＯＰのそれぞれの第１のフレームが、瞬時復号化リフレッシュ（ＩＤＲ）フレームとして符号化されるので、前記符号器インスタンスのそれぞれが、互いに独立して動作することができる装置。
【請求項７】
複数のプロセッサ間でビデオ符号化処理を並列化する方法であって、
処理アフィニティに基づいて前記複数のプロセッサのそれぞれに符号器インスタンスを割り当てる工程と、
入力ビデオ系列を別個のピクチャ群（ＧＯＰ）に、前記別個のＧＯＰのそれぞれが前記複数のプロセッサのそれぞれで符号化されるように時間的に分割する工程とを備える方法。
【請求項８】
請求項７記載の方法であって、前記別個のＧＯＰ間で一定の符号化品質が維持されるように前記別個のＧＯＰ間の量子化パラメータ（ＱＰ）差を制限する工程を更に備える方法。
【請求項９】
請求項８記載の方法であって、前記制限する工程は、前記符号器インスタンス間の平均ＱＰを把握する、前記符号器インスタンス間の静的大局変数及び共通変数の少なくとも一方を維持することによって前記ＱＰ差を制限する方法。
【請求項１０】
請求項７記載の方法であって、ＧＯＰ符号化が終了した後に順番に前記別個のＧＯＰ内のピクチャを再配列する工程を更に備える方法。
【請求項１１】
請求項１０記載の方法であって、前記再配列する工程は、ピクチャ・レベル及びＧＯＰレベルの少なくとも一方のタイムスタンプ及び連番の少なくとの一方を用いて前記ピクチャを再配列する方法。
【請求項１２】
請求項７記載の方法であって、前記符号器インスタンスに提示される前記別個のＧＯＰそれぞれの第１のフレームが、瞬時復号化リフレッシュ（ＩＤＲ）フレームとして符号化されるので、前記符号器インスタンスのそれぞれが、互いに独立して動作することができる方法。
【請求項１３】
複数のプロセッサ間でビデオ符号化処理を並列化する装置であって、
処理アフィニティに基づいて前記複数のプロセッサのそれぞれに符号器インスタンスを割り当てる計算資源バランサと、
入力ビデオ系列を別個のスライスに、前記別個のスライスのそれぞれが前記複数のプロセッサのそれぞれで符号化されるように前記入力ビデオ系列を並列に前記符号器インスタンスのそれぞれが符号化することができるように空間的に分割するスプリッタとを備える装置。
【請求項１４】
請求項１３記載の装置であって、一定の符号化品質が前記別個のスライス間で維持されるように前記別個のスライス間の量子化パラメータ（ＱＰ）差を制限する手段を更に備える装置。
【請求項１５】
請求項１４記載の装置であって、前記制限する手段は、前記符号器インスタンス間の平均ＱＰを把握する、前記符号器インスタンス間の静的大局変数及び共通変数の少なくとも一方を維持することによって前記ＱＰ差を制限する装置。
【請求項１６】
複数のプロセッサ間でビデオ符号化処理を並列化する方法であって、
処理アフィニティに基づいて前記複数のプロセッサのそれぞれに符号器インスタンスを割り当てる工程と、
入力ビデオ系列を別個のスライスに、前記別個のスライスのそれぞれが前記複数のプロセッサのそれぞれで符号化されるように前記入力ビデオ系列を並列に前記符号器インスタンスのそれぞれが符号化することができるように空間的に分割する工程とを備える方法。
【請求項１７】
請求項１６記載の方法であって、一定の符号化品質が前記別個のスライス間で維持されるように前記別個のスライス間の量子化パラメータ（ＱＰ）差を制限する工程を更に備える方法。
【請求項１８】
請求項１７記載の方法であって、前記制限する工程は、前記符号器インスタンス間の平均ＱＰを把握する、前記符号器インスタンス間の静的大局変数及び共通変数の少なくとも一方を維持することによって前記ＱＰ差を制限する方法。
【国際調査報告】
2008527945.tif 000006
2008527945.tif 000007
2008527945.tif 000008