"デジタルビデオシステムで動き予測を実行する方法であって、第1のビデオ画像と第2のビデオ画像との第1の表示時間差に2の累乗値を乗算することで第1の被乗数を決定するステップと、前記被乗数を前記第2のビデオ画像と第3のビデオ画像の第2の表示時間差で除算することで変倍された比率を決定するステップと、動きベクトル予測の計算のために前記変倍された比率を記憶するステップとを含む方法。前記変倍された比率に前記第1のビデオ画像に関連する動きベクトルを乗算することで変倍された動きベクトルを決定するステップをさらに含む請求項1に記載のデジタルビデオシステムで動き予測を実行する方法。前記変倍された動きベクトルを前記2の累乗値で除算するステップをさらに含む請求項2に記載のデジタルビデオシステムで動き予測を実行する方法。前記除算が前記変倍された動きベクトルのビットをけた送りすることで実行される請求項3に記載のデジタルビデオシステムで動きベクトル予測を実行する方法。前記2の累乗値が256を含む請求項1に記載のデジタルビデオシステムで動き予測を実行する方法。前記2の累乗値が通信チャネルを通して周期的に送信される請求項1に記載のデジタルビデオシステムで動き予測を実行する方法。除算によって前記変倍された比率を決定する前記ステップがビデオ画像あたり1回だけ実行される請求項1に記載のデジタルビデオシステムで動き予測を実行する方法。前記変倍された比率が切り捨てされる請求項1に記載のデジタルビデオシステムで動き予測を実行する方法。前記変倍された比率が最も近い整数に丸められる請求項1に記載のデジタルビデオシステムで動き予測を実行する方法。前記2の累乗値が定数を含む請求項1に記載のデジタルビデオシステムで動き予測を実行する方法。コンピュータ可読媒体であって、該コンピュータ可読媒体が動き予測を実行する一組のコンピュータ命令を有し、前記一組のコンピュータ命令が、第1のビデオ画像と第2のビデオ画像との第1の表示時間差に2の累乗値を乗算することで第1の被乗数を決定するステップと、前記被乗数を前記第2のビデオ画像と第3ビデオ画像の第2の表示時間差で除算することで変倍された比率を決定するステップと、動きベクトル予測の計算のために前記変倍された比率を記憶するステップとを含む一組のステップを実施するコンピュータ可読媒体。前記コンピュータ命令が、前記変倍された比率に前記第1のビデオ画像に関連する動きベクトルを乗算することで変倍された動きベクトルを決定するステップをさらに実行する請求項11に記載のコンピュータ可読媒体。前記コンピュータ命令が、前記変倍された動きベクトルを前記2の累乗値で除算するステップをさらに実行する請求項12に記載のコンピュータ可読媒体。前記除算が前記変倍された動きベクトルのビットをけた送りすることで実行される請求項13に記載のコンピュータ可読媒体。前記2の累乗値が256を含む請求項11に記載のコンピュータ可読媒体。前記2の累乗値が通信チャネルを通して周期的に送信される請求項11に記載のコンピュータ可読媒体。除算によって前記変倍された比率を決定する前記ステップがビデオ画像あたり1回だけ実行される請求項11に記載のコンピュータ可読媒体。前記変倍された比率が切り捨てされる請求項11に記載のコンピュータ可読媒体。前記変倍された比率が最も近い整数に丸められる請求項11に記載のコンピュータ可読媒体。前記2の累乗値が定数を含む請求項11に記載のコンピュータ可読媒体。除算演算の要件が低減されたマルチメディア圧縮および符号化システムの可変精度画像間タイミング指定の方法およびシステムを開示する。以下の説明では、説明を分かりやすくするために、特定の命名法を用いて本発明の徹底的な理解を図る。しかし、本発明を実施する際にこれらの特定の詳細内容が必要ではないことは当業者には明らかであろう。例えば、本発明をMPEGマルチメディア圧縮および符号化システムに関して記載している。しかし、他のタイプの圧縮および符号化システムにも同じ技法を容易に適用することができる。マルチメディア圧縮および符号化の概要図1は、当業技術分野で周知である典型的なデジタルビデオエンコーダ100の高レベルブロック図である。デジタルビデオエンコーダ100は、ブロック図の左側でビデオフレームの着信ビデオストリーム105を受信する。デジタルビデオエンコーダ100は、各ビデオフレームを画素ブロックの格子に分割する。画素ブロックは別々に圧縮される。さまざまな異なるサイズの画素ブロックを異なるビデオ符号化システムが使用できる。例えば、異なる画素ブロック解像度は、8×8、8×4、16×8、4×4等を含む。さらに、画素ブロックは時折マクロブロックと呼ばれる。本明細書では、いかなるサイズの画素のいかなるブロックを指す場合でも画素ブロックという用語を使用する。離散コサイン変換DCTユニット110はビデオフレーム内の各画素ブロックを処理する。フレームは独立して処理できイントラフレーム、または動き補償ユニットから受信した他のフレームからの情報に関連して処理できるインターフレーム。次に、量子化Qユニット120は離散コサイン変換ユニット110からの情報を量子化する。最後に、量子化されたビデオフレームはエントロピーエンコーダHユニット180によって符号化され、符号化されたビットストリームを生成する。エントロピーエンコーダHユニット180は可変長符号化VLCシステムを使用できる。フレーム間符号化ビデオフレームは他の近くのビデオフレームに関連して定義されるので、デジタルビデオエンコーダ100は、インターフレームが符号化できるように、各復号化されたフレームがデジタルビデオデコーダ内でどのように表示されるかの複製を作成する必要がある。それ故、デジタルビデオエンコーダ100の下の部分は実際にデジタルビデオデコーダシステムになる。特に、逆量子化器Q-1ユニット130はビデオフレーム情報の量子化を反転し、逆離散コサイン変換DCT-1ユニット140はビデオフレーム情報の離散コサイン変換を反転する。逆離散コサイン変換DCT-1ユニット140からすべてのDCT係数が再構成されると、動き補償ユニットが動きベクトルと共にこの情報を使用して符号化されたビデオフレームを再構成する。次に、再構成されたビデオフレームは以後のフレームの動き予測の基準ビデオフレームとして使用される。次に、復号化されたビデオフレームを用いて復号化されたビデオフレーム内の情報に関して定義されたインターフレームPフレームまたはBフレームを符号化することができる。特に、動き補償MCユニット150および動き予測MEユニット160を用いて動きベクトルを決定し、インターフレームの符号化に用いる差分値を生成することができる。レートコントローラ190はデジタルビデオエンコーダ100内の多くの異なる構成要素から情報を受信し、この情報を用いてビデオフレームごとにビットバジェットを割り当てる。レートコントローラ190は、指定された一組の制約事項に適合する最高品質のデジタルビデオビットストリームを生成するようにビットバジェットを割り当てなければならない。特に、レートコントローラ190は、バッファのオーバフロー記憶できる以上の情報を送信することでビデオデコーダ内の利用可能なメモリの量を超過すること、またはバッファのアンダフロービデオフレームの送信が遅く、ビデオデコーダが表示するビデオフレームが不足することを引き起こすことなく、最高品質の圧縮ビデオストリームを生成しようとする。画素ブロックによるデジタルビデオ符号化一部のビデオ信号では、連続するビデオ画像フレームまたはフィールドの間の時間は一定ではない。注:本明細書ではビデオ画像という用語で一般にビデオフレームまたはビデオフィールドを指す。例えば、伝送帯域幅の制約によって一部のビデオ画像が欠落することがある。さらに、カメラの不規則性あるいはスローモーションまたはファストモーションのような特殊効果のためにビデオタイミングも異なる場合がある。一部のビデオストリームでは、元のビデオソースは設計による不均一の画像間時間を単に有することがある。例えば、コンピュータグラフィックアニメーションなどの合成ビデオは、ビデオカメラシステムなどの均一のタイミングのビデオキャプチャーシステムによって任意のビデオタイミングを課されないために、不均一のタイミングを有する場合がある。柔軟なデジタルビデオ符号化システムは不均一のビデオ画像タイミングを扱うことができなければならない。前述したように、大半のデジタルビデオ符号化システムはビデオ画像を画素ブロックの矩形の格子に分割する。ビデオ画像内の各々の個々の画素ブロックは別々に圧縮され符号化される。例えば、ISOMPEGまたはITUH.264などのいくつかのビデオ符号化標準は、別のタイプの予測画素ブロックを用いてビデオ画像を符号化する。1つのシナリオでは、画素ブロックは以下の3つのタイプのうちのいずれかである。1.I画素ブロック-イントラI画素ブロックは符号化に際して他のビデオ画像の情報を使用しないイントラ画素ブロックは完全に自己定義される。2.P画素ブロック-片方向予測P画素ブロックは以前のビデオ画像の画像情報を参照する。3.B画素ブロック-双方向予測B画素ブロックは以前および将来のビデオ画像の情報を参照する。ビデオ画像内の画素ブロックのすべてがイントラ画素ブロックの場合、ビデオ画像はイントラフレームである。ビデオ画像が片方向予測マクロブロックまたはイントラ画素ブロックのみを含む場合、ビデオ画像はPフレームと呼ばれる。ビデオ画像が双方向予測画素ブロックを含む場合、ビデオ画像はBフレームと呼ばれる。話を分かりやすくするために、本明細書では所与の画像内のすべての画素ブロックが同じタイプである場合を想定する。符号化されるビデオ画像のシーケンスの例は以下のように表現される。I1B2B3B4P5B6B7B8B9P10B11P12B13I14...ここで、文字I、P、またはBは、デジタルビデオ画像がIフレーム、Pフレーム、またはBフレームのいずれかであるか、番号はビデオ画像のシーケンス内のビデオ画像のカメラの順序を表す。カメラ順序はカメラがそのビデオ画像を記録した順序で、ビデオ画像を表示する順序表示順でもある。上記の一連のビデオ画像の例を図2に概念図で示す。図2を参照すると、矢印は記憶された画像この場合、IフレームまたはPフレームの画素ブロックが他の画像の動き補償予測で使用されることを示す。図2のシナリオでは、他の画像の情報はイントラフレームビデオ画像I1の符号化で使用されない。ビデオ画像P5は、符号化に以前のビデオ画像I1内のビデオ情報を使用するPフレームであり、したがって、ビデオ画像I1からビデオ画像P5に矢印が引かれている。ビデオ画像B2、ビデオ画像B3、ビデオ画像B4はすべてその符号化にビデオ画像I1およびビデオ画像P5両方の情報を使用する。したがって、矢印がビデオ画像I1およびビデオ画像P5からビデオ画像B2、ビデオ画像B3、およびビデオ画像B4に引かれている。上記のように、画像間時間は一般に同じではない。B画像は将来の画像後で表示される画像の情報を使用するので、送信順は普通表示順とは異なる。特に、他のビデオ画像を構成するのに必要なビデオ画像は最初に送信しなければならない。上記のシーケンスでは、送信順は以下の通りである。I1P5B2B3B4P10B6B7B8B9P12B11I14B13...図3は図2のビデオ画像の以前の送信順を示す。さらに、図中の矢印は記憶されたビデオ画像この場合、IまたはPの画素ブロックが他のビデオ画像の動き補償予測に使用されることを示す。図3を参照すると、システムは最初に他のいかなるフレームにも依存しないIフレームI1を送信する。次に、システムはビデオ画像I1に依存するPフレームビデオ画像P5を送信する。次に、ビデオ画像B2がビデオ画像P5の前に表示されるとしても、システムはビデオ画像P5の後にBフレームビデオ画像B2を送信する。これは、ビデオ画像B2を復号化する時点では、デコーダはビデオ画像B2を復号化するのに必要なビデオ画像I1およびP5内の情報を受信し、記憶しているからである。同様に、ビデオ画像I1およびP5をただちに用いて次のビデオ画像B3およびビデオ画像B4を復号化することができる。受信機/デコーダは正しく表示するためにビデオ画像シーケンスを並び替える。この動作で、IおよびP画像は記憶画像と呼ばれることが多い。Pフレーム画像の符号化は、通常、動きベクトルが画像内の画素ブロックごとに計算される動き補償を使用する。計算された動きベクトルを用いて、前述の以前の画像の画素を並進して予測画素ブロックP画素ブロックを形成できる。次に、Pフレーム画像内の実際の画素ブロックと予測画素ブロックとの差が符号化されて送信される。P画像P画像の符号化は、通常、以前の画像のある位置をポイントする動きベクトルMVが現在の画像内の画素ブロックごとに計算される動き補償MCを使用する。動きベクトルを用いて、前述の以前の画像の画素を平行移動して予測画素ブロックを形成できる。次に、P画像内の実際の画素ブロックと予測画素ブロックとの差が符号化されて送信される。また、各動きベクトルは予測符号化によって送信できる。例えば、動きベクトル予測は近くの動きベクトルを用いて形成できる。その場合、実際の動きベクトルと予測動きベクトルとの差が符号化されて送信される。B画像各B画素ブロックは、前述した以前のビデオ画像を参照する第1の動きベクトルと、以後のビデオ画像を参照する第2の動きベクトルという2つの動きベクトルを使用する。これら2つの動きベクトルから2つの予測画素ブロックが計算される。次に、2つの予測画素ブロックはある機能を用いて結合され、最終予測画素ブロックが形成される。上記と同様、Bフレーム画像の実際の画素ブロックと最終予測画素ブロックとの差が符号化され送信される。P画素ブロックの場合、予測符号化を用いてB画素ブロックの各動きベクトルMVを送信することもできる。特に、予測動きベクトルは近くの動きベクトルを用いて形成される。次に、実際の動きベクトルと予測動きベクトルとの差が符号化され送信される。しかし、B画素ブロックの場合、最も近くの記憶画像画素ブロック内の動きベクトルから動きベクトルを補間する余地がある。そのような動きベクトル補間はデジタルビデオエンコーダとデジタルビデオデコーダの両方で実行される。この動きベクトル補間は固定された背景をゆっくりとパンするカメラによって作成されるビデオシーケンスのビデオ画像で特に有効である。実際、そのような動きベクトル補間は単独で使用できる。特に、これは、補間を用いて符号化された上記のB画素ブロック動きベクトルに関して差分情報を計算したり送信したりする必要がないということを意味する。さらに説明を深めるために、上記のシナリオで、画像iとjとの間の画像間表示時間をDi,jと表す。すなわち、画像の表示時間が、それぞれ、TiおよびTjの場合、Di,j=Ti-TjここからDi,k=Di,jDj,kDi,k=-Dk,iただし、Di,jは場合によって負である。それ故、MV5,1がI1を参照するP5画素ブロックの動きベクトルの場合、B2、B3およびB4内の対応する画素ブロックでは、I1およびP5を参照する動きベクトルはそれぞれ以下の式により補間される。MV2,1=MV5,1D2,1/D5,1MV5,2=MV5,1D5,2/D5,1MV3,1=MV5,1D3,1/D5,1MV5,3=MV5,1D5,3/D5,1MV4,1=MV5,1D4,1/D5,1MV5,4=MV5,1D5,4/D5,1動きベクトル予測に表示時間の比率が使用されるので、絶対表示時間は必要ないことに留意されたい。それ故、Di,j画像間表示時間値には相対表示時間を使用することができる。このシナリオは、例えば、H.264標準内で生成できる。生成過程で、PまたはB画像はその動きベクトル予測に任意の以前に送信された画像を使用できる。それ故、上記の場合、画像B3はその予測に画像I1および画像B2を使用できる。さらに、動きベクトルは補間だけでなく外挿してもよい。それ故、この場合、以下のようになる。MV3,1=MV2,1D3,1/D2,1このような動きベクトルの外挿または補間は動きベクトルの予測符号化の予測プロセスでも使用できる。画像間表示時間の符号化ビデオシーケンスの可変画像間表示時間は、極めて高い符号化効率を得られるように符号化し送信しなければならない。表示時間はビデオデコーダの要件を満たすように選択可能な精度を有する。理想的には、符号化システムは、比較的簡単なコンピュータシステムがデジタルビデオを復号化できるように、デコーダのタスクを簡単化すべきである。可変画像間表示時間は、差分動きベクトル、直接モード動きベクトル、および/または暗黙的B予測ブロック重み付けを計算するためにいくつかの異なるビデオ符号化システムで潜在的に必要である。ビデオシーケンス内の可変画像間表示時間という問題は時間的基準の使用とからみあっている。理想的には、ビデオコーデックの出力画像の正確な画素値の導出はその画像が復号化または表示される時間から独立していなければならない。したがって、タイミングの問題と時間基準とはコーデックレイヤ外で解決しなければならない。所望の時間独立の基礎となる符号化関連およびシステム関連の両方の理由がある。ビデオコーデックでは、以下の2つの目的で時間基準が使用される。1基準画像選択の順序の確立2画像間の動きベクトルの補間基準画像選択の順序を確立するには、相対位置値を送信するだけでよい。例えば、復号化順のフレーム位置Nと表示順のフレーム位置Mの差、すなわち、N-Mである。そのような実施形態では、タイムスタンプまたは他の時間基準は必要ない。動きベクトルを補間する場合、時間的な距離が補間距離に関連するならば、時間的な距離が有用である。しかし、動きが非直線の場合にはこれはあてはまらない。したがって、動きベクトル補間の時間情報以外のパラメータを送信することがより適当と思われる。システムに関しては、通常のビデオコーデックはビデオコーデックが他のビデオおよびオーディオコーデックと共存する、より大きいシステムの一部であると予測できる。そのようなマルチコーデックシステムでは、優れたシステムレイヤ形成および設計は、タイミングなどのコーデックに論理的に依存しない一般機能がコーデック外のレイヤによって処理されることを必要とする。各コーデックによる個別のタイミング管理ではなく、システムによるタイミング管理は、同期化などの共通機能の一貫した処理を達成するのに欠かせない。例えば、ビデオ/オーディオプレゼンテーションなどの同時に複数のストリームを処理するシステムでは、異なるストリームを同期状態に保つためにタイミング調整がストリーム内に必要になることがある。同様に、異なるクロックを備えたリモートシステムのストリームを処理するシステムでは、リモートシステムとの同期を保つためにタイミング調整が必要である。そのようなタイミング調整はタイムスタンプを用いて達成できる。例えば、送信機からの送信側レポートによってリンクされ、ストリームごとにRTPレイヤ内でRTPに供給されるタイムスタンプを同期化に使用できる。これらの送信側レポートは、以下の形式をとることができる。ビデオRTPタイムスタンプXが基準タイムスタンプYと位置合わせされている。オーディオRTPタイムスタンプWが基準タイムスタンプZと位置合わせされている。ここで、基準タイムスタンプのクロック速度は知られており、2つのストリームを位置合わせすることができる。しかし、これらのタイムスタンプ基準は2つのストリームに関して周期的かつ個別に到着し、2つのストリームの何らかの必要な再位置合わせを引き起こす。これは一般にビデオストリームをオーディオに合わせて調整するかその逆の方法で達成される。タイムスタンプをシステムが処理する場合、表示される画素値に影響してはならない。より一般的には、時間情報のシステムによる処理はコーデック外部で実行しなければならない。前節で述べたように、不均一の画像間時間の場合の問題は、画像間表示時間値Di,jを効率的にデジタルビデオ受信機に送信することである。この目標を達成する1つの方法は、第1の画像の後に、画像ごとに現在の画像と最も最近送信された記憶画像との表示時間差をシステムに送信させるというものである。エラー許容力については、画像内で送信を数回繰り返してもよい。例えば、表示時間差をMPEGまたはH.264標準のスライスヘッダ内で繰り返すことができる。すべてのスライスヘッダが失われた場合、損失画像に依存して復号化情報を得る他の画像もおそらくは復号化できない。したがって、前節の例に関して、システムは以下の画像間表示時間値を送信する。D5,1D2,5D3,5D4,5D10,5D6,10D7,10D8,10D9,10D12,10D11,12D14,12D13,14...動きベクトル予測のために、画像によって、画像間表示時間Di,jは変化する。例えば、単一のBフレーム画像B6のみが2つのPフレーム画像P5とP7との中間にある場合、以下の情報のみを送信すれば済む。D7,5=2およびD6,7=-1ここで、Di,j画像間表示時間値は相対時間値である。ビデオ画像B6がビデオ画像P5とビデオ画像P7との距離のわずか1/4の位置にある場合、送信する適当なDi,j画像間表示時間値は以下のようになる。D7,5=4およびD6,7=-1上記の両方の例では、ビデオ画像B6とビデオ画像P7との間の表示時間画像間表示時間D6,7は表示時間の単位値として使用されていることに留意されたい。最近の例では、ビデオ画像P5とビデオ画像P7との間の表示時間差画像間表示時間D6,7は、4表示時間単位4D6,7である。復号化の効率の改善一般に、動きベクトル予測計算は、除数が2の累乗の場合に大幅に簡単化される。これは、2つの記憶された画像間のDi,j画像間時間が図4に示すように2の累乗として選択される場合に本発明者の実施態様で容易に達成される。あるいは、予測手順はすべての除数を2の累乗に切り捨てるか丸めるように定義できる。画像間時間が2の累乗の場合、画像間時間の値そのものの代わりに2の累乗を送信しさえすればデータビットの数を低減できる。図4は、画像間の距離が2の累乗になるように選択される場合を示すグラフである。この場合、ビデオ画像P1とビデオ画像P3との間のD3,1表示時間値2が121=2のためとして送信され、ビデオ画像P7とビデオ画像P3との間のD7,3表示時間値4が222=4のためとして送信できる。あるいは、外挿演算の動きベクトル補間は、分母が2の累乗であるような方法で変倍して任意の所望の精度に近似することができる。分母に2の累乗がある除算は除算する値のビットをけた送りするだけで実行できる。例えば、D5,4/D5,1~Z5,4/Pただし、値Pは2の累乗で、Z5,4=PD5,4/D5,1は最も近い整数に丸められるか切り捨てされる。Pの値はシステムの定数として周期的に送信されるか設定される。一実施形態では、Pの値はP=28=256に設定される。この手法の利点は、デコーダが画像あたりZ5,4を1回だけ計算すれば済むか、または多くの場合にデコーダがZ値を事前計算して記憶できるという点である。これによって、デコーダは画像内の動きベクトルごとにD5,1で除算する必要がなくなり、はるかに効率的に動きベクトル補間が実行できる。例えば、通常の動きベクトル計算は以下のようになる。MV5,4=MV5,1D5,4/D5,1しかし、Z5,4ただしZ5,4=PD5,4/D5,1を計算し記憶する場合、MV5,4=MV5,1Z5,4/PP値は2の累乗になるように選択されているので、Pによる除算は単にビットのけた送りである。したがって、ビデオ画像のZ値が計算されたら、以降の画素ブロックの動きベクトルを計算するのに1回の乗算と1回のけた送りだけが必要である。さらに、計算時に有効ビットが失われないように、システムはすべての除算を最後に実行することで精度を高く保つことができる。こうして、デコーダはエンコーダと同様に動きベクトル補間を正確に実行して、この方法を採らなければ発生する可能性がある不一致の問題を回避することができる。除算2の累乗による除算以外のは、加算または乗算よりもデジタルコンピュータシステムにとってはるかに計算が集中するタスクであるため、この手法は動きベクトル補間または外挿を使用する画像を再構築するために必要な計算を大幅に削減することができる。ある場合には、動きベクトル補間を使用しなくてもよい。ただし、受信機/プレーヤシステムがビデオ画像を正しい順序で表示するように、受信機/プレーヤシステムにビデオ画像の表示順序を送信することがなお必要である。この場合、実際の表示時間に関わらず、Di,jは単に符号付き整数値で足りる。いくつかの応用例では、画像順序を再構成するために符号正または負しか必要でない。画像間時間Di,jは単一の符号付き整数値として送信できる。ただし、Di,j値の符号化に多くの方法を使用してさらに圧縮をかけることができる。例えば、符号ビットに続けて可変長符号化の大きさを指定すると比較的実施しやすく、符号化の効率が上がる。使用可能なそのような可変長符号化システムはUVLCユニバーサル可変長符号として知られる。UVLC可変長符号化システムは以下のコードワードで与えられる。1=12=0103=0114=001005=001016=001107=001118=0001000...画像間時間を符号化する別の方法は算術符号化の使用である。通常、算術符号化はデータビットの極めて高い圧縮を行う条件付き確率を使用する。以上のように、本発明は、動きベクトル予測で使用する画像間表示時間の簡単で強力な符号化および伝送方法とこれら画像間表示時間の復号化方法とを紹介する。画像間表示時間の符号化は、可変長符号化または算術符号化を用いて極めて効率的にすることができる。さらに、ビデオコーデックの必要のみを満たすように所望の精度を選択することができる。以上、マルチメディア圧縮および符号化システムで可変精度画像間タイミングを指定するシステムについて説明した。本発明の範囲を逸脱することなく、本発明の要素の材料および構成をさまざまな変更および修正できることは、当業者には明らかであろう。"