(57)【要約】【課題】Ｂピクチャのダイレクトモード動きベクトル演算方法を提供する。【解決手段】動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャが前記Ｂピクチャより時間的に前または後に位置する場合、前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルのモード（　ｌｉｓｔ　０　および／または　ｌｉｓｔ　１）に関わらず決定された動きベクトルをスケーリングし、　ｌｉｓｔ　０　動きベクトル（ＭＶＦ）と　ｌｉｓｔ　１動きベクトル（ＭＶＢ）を誘導してＢピクチャのダイレクトモード動きベクトルを演算する。【選択図】　　図６
2004129191.tif 000002
【特許請求の範囲】
【請求項１】
動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、
Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるブロックが持つ動きベクトルのモード（　ｌｉｓｔ　０　および／または　ｌｉｓｔ　１）に関わらず、一つの動きベクトルをダイレクトモードの動きベクトル誘導のための動きベクトルと決定し、前記動きベクトルの指しているレファランスピクチャをダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと決定して前記Ｂピクチャのダイレクトモードの動きベクトルを演算することを特徴とするＢピクチャのダイレクトモード動きベクトル演算方法。
【請求項２】
動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、
Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるブロックが一つの　ｌｉｓｔ　１　動きベクトルのみを有する場合、前記　ｌｉｓｔ　１　動きベクトルをダイレクトモードの動きベクトル誘導のための動きベクトルと決定し、前記　ｌｉｓｔ　１　動きベクトルの指しているレファランスピクチャをダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと決定して前記Ｂピクチャのダイレクトモードの動きベクトルを演算することを特徴とするＢピクチャのダイレクトモード動きベクトル演算方法。
【請求項３】
動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、
Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるブロックが一つの　ｌｉｓｔ　１　動きベクトルのみを有する場合、前記同一位置にあるブロックがゼロ動きを持つと見なすと同時に、前記Ｂピクチャより時間的に直ぐ前にあるデコーディングされたピクチャをダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと決定して前記Ｂピクチャのダイレクトモードの動きベクトルを誘導することを特徴とするＢピクチャのダイレクトモード動きベクトル演算方法。
【請求項４】
動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、
Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるブロックが一つの　ｌｉｓｔ　１　動きベクトルのみを有する場合、前記同一位置にあるブロックの持つ　ｌｉｓｔ　１　動きベクトルをダイレクトモードの動きベクトルを誘導する動きベクトルとして選び、前記Ｂピクチャより時間的に直ぐ前にあるデコーディングされたピクチャをダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと決定して前記Ｂピクチャのダイレクトモードの動きベクトルを誘導することを特徴とするＢピクチャのダイレクトモード動きベクトル演算方法。
【請求項５】
動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、
Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるブロックが二つの動きベクトルを持つ場合には一つの動きベクトル（　ｌｉｓｔ　０動きベクトルまたは　ｌｉｓｔ　１　動きベクトル）を選び、その選択された動きベクトルから前記Ｂピクチャのダイレクトモードの動きベクトルを誘導することを特徴とするＢピクチャのダイレクトモード動きベクトル演算方法。
【請求項６】
前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるブロックが二つの動きベクトルを持つ場合、一つの動きベクトル（　ｌｉｓｔ　０　動きベクトルまたは　ｌｉｓｔ　１　動きベクトル）を選ぶに当たって、
時間的距離に関わらず無条件に　ｌｉｓｔ　０　動きベクトルをダイレクトモードの動きベクトルを誘導する動きベクトルとして選び、前記　ｌｉｓｔ　０　動きベクトルの指しているレファランスピクチャをダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと決定して前記Ｂピクチャのダイレクトモードの動きベクトルを誘導することを特徴とする請求項５記載のＢピクチャのダイレクトモード動きベクトル演算方法。
【請求項７】
前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるブロックが二つの動きベクトルを持つ場合、一つの動きベクトル（　ｌｉｓｔ　０　動きベクトルまたは　ｌｉｓｔ　１　動きベクトル）を選ぶに当たって、
前記　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルのうち、ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャで時間的距離の短い動きベクトルをダイレクトモードの動きベクトルを誘導する動きベクトルとして選び、仮に前記二つの動きベクトルが同一レファランスを指すと、前記　ｌｉｓｔ　０　動きベクトルをダイレクトモードの動きベクトルを誘導する動きベクトルとして選んで、その選択された動きベクトルの指しているレファランスピクチャをダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと決定して前記Ｂピクチャのダイレクトモードの動きベクトルを誘導することを特徴とする請求項５記載のＢピクチャのダイレクトモード動きベクトル演算方法。
【請求項８】
動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、
最近にデコーディングされたピクチャをダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャと設定し、前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルをスケーリングし、　ｌｉｓｔ　０　動きベクトル（ＭＶＦ）と　ｌｉｓｔ　１　動きベクトル（ＭＶＢ）を誘導して前記Ｂピクチャのダイレクトモード動きベクトルを演算することを特徴とするＢピクチャのダイレクトモード動きベクトル演算方法。
【請求項９】
動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、
Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャが前記Ｂピクチャより時間的に前に位置する場合、前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルをスケーリングし、　ｌｉｓｔ　０　動きベクトル（ＭＶＦ）と　ｌｉｓｔ　１　動きベクトル（ＭＶＢ）を誘導して前記Ｂピクチャのダイレクトモード動きベクトルを演算することを特徴とするＢピクチャのダイレクトモード動きベクトル演算方法。
【請求項１０】
前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、前記Ｂピクチャのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、下記の式によって算出されることを特徴とする請求項９記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ　＝　ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルである。
【請求項１１】
前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、前記Ｂピクチャのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、下記の式によって算出されることを特徴とする請求項９記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ　＝　−ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　−（ＴＤＢ　＋　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　−ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルである。
【請求項１２】
前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出されることを特徴とする請求項９記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
または、
Ｚ＝ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ＋１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶｉは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフィールドにある同一位置のブロックが持っている動きベクトルである。
【請求項１３】
前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出されることを特徴とする請求項９記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ，ｉ　＝　−ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　−（ＴＤＢ，ｉ　＋　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
または、
Ｚ　＝　−ＴＤＢ，ｉ×２５６／ＴＤＤ，Ｉ　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶｉは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフィールドにある同一位置のブロックが持っている動きベクトルである。
【請求項１４】
前記Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出されることを特徴とする請求項９記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
【請求項１５】
前記Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出されることを特徴とする請求項９記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ，ｉ　＝　−ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　−（ＴＤＢ，ｉ　＋　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　−ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
【請求項１６】
前記Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される下記の式によって算出されることを特徴とする請求項９記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ　＝　ＴＤＢ×ＭＶ１／ＴＤＤ，１
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ，１）×ＭＶ１／ＴＤＤ，１
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ，１　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ１　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ１　＋　１２８）＞＞８
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤ，１は　ｌｉｓｔ　１　基準フレームのフィールド１と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶ１は前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックが持っている動きベクトルである。
【請求項１７】
前記Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される下記の式によって算出されることを特徴とする請求項９記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ　＝　−ＴＤＢ×ＭＶ１／ＴＤＤ，１
ＭＶＢ　＝　−（ＴＤＢ　＋　ＴＤＤ，１）×ＭＶ１／ＴＤＤ，１
または、
Ｚ　＝　−ＴＤＢ×２５６／ＴＤＤ，１　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ１　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ１　＋　１２８）＞＞８
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤ，１は　ｌｉｓｔ　１　基準フレームのフィールド１と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶ１は前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックが持っている動きベクトルである。
【請求項１８】
動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、
Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと　ｌｉｓｔ　１　レファランスピクチャの両方とも前記Ｂピクチャより時間的に後に存在する場合、前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルをスケーリングし、　ｌｉｓｔ　０　動きベクトル（ＭＶＦ）と　ｌｉｓｔ　１　動きベクトル（ＭＶＢ）を誘導して前記Ｂピクチャのダイレクトモード動きベクトルを演算することを特徴とするＢピクチャのダイレクトモード動きベクトル演算方法。
【請求項１９】
前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、前記Ｂピクチャのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、下記の式によって算出されることを特徴とする請求項１８記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ　＝　ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ　　　　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルである。
【請求項２０】
前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、前記Ｂピクチャのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、下記の式によって算出されることを特徴とする請求項１８記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ　＝　−ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　−（ＴＤＢ　＋　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　−ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルである。
【請求項２１】
前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出されることを特徴とする請求項１８記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
または、
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶｉは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフィールドにある同一位置のブロックが持っている動きベクトルである。
【請求項２２】
前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出されることを特徴とする請求項１８記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ，ｉ　＝　−ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　−（ＴＤＢ，ｉ　＋　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
または、
Ｚ　＝　−ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶｉは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフィールドにある同一位置のブロックが持っている動きベクトルである。
【請求項２３】
前記Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出されることを特徴とする請求項１８記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
【請求項２４】
前記Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出されることを特徴とする請求項１８記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ，ｉ　＝　−ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　−（ＴＤＢ，ｉ　＋　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　−ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
【請求項２５】
前記Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される下記の式によって算出されることを特徴とする請求項１８記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ　＝　ＴＤＢ×ＭＶ０　／ＴＤＤ，０
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ，０　）×ＭＶ０　／ＴＤＤ，０
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ，０　　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ０　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ０　＋　１２８）＞＞８
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤ，０　は　ｌｉｓｔ　１　基準フレームのフィールド０　と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶ０　は前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックが持っている動きベクトルである。
【請求項２６】
前記Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される下記の式によって算出されることを特徴とする請求項１８記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ　＝　−ＴＤＢ×ＭＶ０　／ＴＤＤ，０
ＭＶＢ　＝　−（ＴＤＢ　＋　ＴＤＤ，０　）×ＭＶ０　／ＴＤＤ　，０
または、
Ｚ　＝　−ＴＤＢ×２５６／ＴＤＤ，０　　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ０　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ０　＋　１２８）＞＞８
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤ、０　は　ｌｉｓｔ　１　基準フレームのフィールド０と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶ０　は前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックが持っている動きベクトルである。
【請求項２７】
動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、
ピクチャ間の時間的距離を符号付きの値で表すことによって、Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと　ｌｉｓｔ　１　レファランスピクチャの位置に関わらず前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルをスケーリングし、　ｌｉｓｔ　０　動きベクトル（ＭＶＦ）と　ｌｉｓｔ　１　動きベクトル（ＭＶＢ）を誘導して前記Ｂピクチャのダイレクトモード動きベクトルを演算することを特徴とするＢピクチャのダイレクトモード動きベクトル演算方法。
【請求項２８】
前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフレームモードである場合、前記Ｂピクチャのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、下記の式によって算出されることを特徴とする請求項２７記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ　＝　ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、Ｂフレームから計算された時間的距離は正（＋）の符号で表示され、ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、　ｌｉｓｔ　１　基準フレームから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルである。
【請求項２９】
前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフィールドモードである場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出されることを特徴とする請求項２７記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
または、
Ｚ＝ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であって、Ｂフィールドから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０レファランスフィールドとの間の時間的距離であって、　ｌｉｓｔ　１　レファランスフィールドから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＭＶｉは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフィールドにある同一位置のブロックが持っている動きベクトルである。
【請求項３０】
前記Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードである場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出されることを特徴とする請求項２７記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であって、Ｂフィールドから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、　ｌｉｓｔ　１　基準フレームから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
【請求項３１】
前記Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャが前記Ｂピクチャより時間的に後に存在する場合、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される下記の式によって算出されることを特徴とする請求項２７記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ　＝　ＴＤＢ×ＭＶ０　／ＴＤＤ，０
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ，０　）×ＭＶ０　／ＴＤＤ，０
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ，０　　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ０　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ０　＋　１２８）＞＞８
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、Ｂフレームから計算された時間的距離は正（＋）の符号で表示され、ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＴＤＤ，０　は　ｌｉｓｔ　１　基準フレームのフィールド０と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であって、　ｌｉｓｔ　１　基準フレームのフィールド０から計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＭＶ０　は前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックが持っている動きベクトルである。
【請求項３２】
前記Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャが前記Ｂピクチャより時間的に前に存在する場合、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される下記の式によって算出されることを特徴とする請求項２７記載のＢピクチャのダイレクトモード動きベクトル演算方法。
ＭＶＦ　＝　ＴＤＢ×ＭＶ１／ＴＤＤ，１
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ，１）×ＭＶ１／ＴＤＤ，１
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ，１　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ１　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ１　＋　１２８）＞＞８
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、Ｂフレームから計算された時間的距離は正（＋）の符号で表示され、ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＴＤＤ，１は　ｌｉｓｔ　１　基準フレームのフィールド１と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であって、　ｌｉｓｔ　１　基準フレームのフィールド１から計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＭＶ１は前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックが持っている動きベクトルである。
【請求項３３】
動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、
Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同位置のマクロブロックがイントラモードの場合には、空間的冗長性を用いて、前記Ｂピクチャのコーディングしようとするマクロブロックの周辺ブロックから　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャと各　ｌｉｓｔ　に対する動きベクトルを予測、算出し、Ｂピクチャのダイレクトモード動きベクトルを演算することを特徴とするＢピクチャのダイレクトモード動きベクトル演算方法。
【請求項３４】
前記　ｌｉｓｔ　１　レファランスピクチャを選ぶに当たって、
前記コーディングしようとするマクロブロックの周辺マクロブロックＡ、Ｂ、Ｃがレファランスするレファランスピクチャが異なっている場合には、最も小さいインデックスを有するレファランスピクチャを前記　ｌｉｓｔ　１　レファランスピクチャとして選ぶことを特徴とする請求項３３記載のＢピクチャのダイレクトモード動きベクトル演算方法。
【請求項３５】
前記　ｌｉｓｔ　１　レファランスピクチャを選ぶに当たって、
前記コーディングしようとするマクロブロックの周辺マクロブロックのうち二つ以上のマクロブロックがレファランスするレファランスピクチャが同一のインデックスを持っていると、そのインデックスを有するレファランスピクチャを前記　ｌｉｓｔ　１　レファランスピクチャとして選ぶことを特徴とする請求項３３記載Ｂピクチャのダイレクトモード動きベクトル演算方法。
【請求項３６】
前記各　ｌｉｓｔ　に対する動きベクトルを予測する際に、
周辺マクロブロックＡ、Ｂ、Ｃのうちイントラモードを有するマクロブロックがあれば、そのマクロブロックの　ｌｉｓｔ　０　と　ｌｉｓｔ　１　の動きベクトルをそれぞれ０と設定し、前記各　ｌｉｓｔ　レファランスピクチャの時間的位置と同一の方向を有する動きベクトルを周辺マクロブロックから選び、メディアン演算を通じて各　ｌｉｓｔの動きベクトルを求めるか、仮に周辺マクロブロックが同一の方向の動きベクトルを二つ持っているとそのマクロブロックから一つのみを選んでメディアン演算に含ませて各　ｌｉｓｔの動きベクトルを求めることを特徴とする請求項３３記載Ｂピクチャのダイレクトモード動きベクトル演算方法。
【請求項３７】
前記各　ｌｉｓｔ　に対する有効なレファランスピクチャインデックスをいずれも誘導できないなら、　ｌｉｓｔ　０　、　ｌｉｓｔ　１　のレファランスピクチャインデックスはそれぞれ０となり、各　ｌｉｓｔ　に対する動きベクトルは０と設定することを特徴とする請求項３３記載のＢピクチャのダイレクトモード動きベクトル演算方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動画像コーディング方法に関し、特に、次世代動画像圧縮技術において定義されたＢ（Ｂｉ−ｐｒｅｄｉｃｔｉｖｅ）ピクチャにおけるダイレクトモード動きベクトル抽出手法に間する。
【０００２】
【従来の技術】
従来のＢピクチャは、順方向、逆方向、両方向、ダイレクト、そしてイントラモードといった５種類の予測モードを持っている。ここで、順方向、逆方向、両方向モードは、モード名に方向情報を内包していることから、それらのモード名により動きベクトルの方向性が把握できる。そして、特に、ダイレクトモードは、隣接した二つのピクチャの間に動きの連続性が一定に保持されるという時間的冗長性（ｔｅｍｐｏｒａｌ　ｒｅｄｕｎｄａｎｃｙ）の特性を用いて、隣接ピクチャにある同一位置のブロックが持つ動きから両方向の動きベクトル二つを誘導する。このダイレクトモードは、動き情報をデコーダに伝送しないので、ビット率を減少させることができる利点がある。
【０００３】
一方、Ｈ．２６４またはＭＰＥＧ−４　ｐａｒｔ　１０　のような次世代動画像圧縮技術におけるＢピクチャは、自分がレファランスピクチャ（ｒｅｆｅｒｅｎｃ　ｐｉｃｔｕｒｅ）として使用されるのを許容するため、レファランスピクチャバッファに格納されるという特徴がある。また、Ｂピクチャの予測モードには　ｌｉｓｔ　０　、　ｌｉｓｔ　１、双予測、ダイレクト、そしてイントラなどの各モードがある。
【０００４】
ここで、ｌｉｓｔ　０　モードは、従来の順方向モードに似たモードであって、動き情報であるレファランスピクチャインデックスと動きベクトル差はそれぞれ‘ｒｅｆ＿ｉｄｘ＿ｌ０　’と‘ｍｖｄ＿ｌ０　’として表示される。また、Ｌｉｓｔ　１モードは、従来の逆方向モードに似たモードてあって、動き情報はそれぞれ‘ｒｅｆ＿ｉｄｘ＿ｌ１’と‘ｍｖｄ＿ｌ１’として表示される。双予測モードは二つのレファランスピクチャを有するが、二つのレファランスピクチャともＢピクチャに比べて時間的に前に位置してもよく、後に位置してもよい。また、Ｂピクチャを中心に前、後に存在してもよい。このとき二つのレファランスピクチャインデックスと動きベクトル差はそれぞれ、‘ｒｅｆ＿ｉｄｘ＿ｌ０　’、‘ｒｅｆ＿ｉｄｘ＿ｌ１’、‘ｍｖｄ＿ｌ０　’、‘ｍｖｄ＿ｌ１’として表示され、各レファランスピクチャは時間的位置情報のＰＯＣ（ｐｉｃｔｕｒｅ　ｏｒｄｅｒ　ｃｏｕｎｔ）というデータを持っている。
【０００５】
そして、ダイレクトモードは動きベクトルを得るために空間的手法と時間的手法のうちいずれかが選ばれる。空間的手法は、コーディング（符号化）したいマクロブロックの周辺ブロックから　ｌｉｓｔ　０　および　ｌｉｓｔ　１　のレファランスピクチャインデックスと動きベクトルを誘導する手法である。一方、時間的手法は、従来のＢピクチャにおいて使用される方法であって、ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロック（ｃｏ−ｌｏｃａｔｅｄ　ｂｌｏｃｋ）が持っている　ｌｉｓｔ　０　動きベクトルをスケーリングして　ｌｉｓｔ　０　動きベクトル（ＭＶＦ）と　ｌｉｓｔ１　動きベクトル（ＭＶＢ）を誘導する。ここで、ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャは　ｌｉｓｔ　１　予測のためのインデックスが０であるピクチャであり、ダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャは、　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持つ　ｌｉｓｔ　０　レファランスピクチャを使用する。
【０００６】
（または、ｓｈｏｒｔ−ｔｅｒｍ　ｂｕｆｆｅｒの大きさ）が６のとき、ＩＢＢＢＰパターンにおける各Ｂピクチャに対する　ｌｉｓｔ　０　予測のためのデフォルトインデックス、　ｌｉｓｔ　１　予測のためのデフォルトインデックスおよびダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャをそれぞれ示している。ここで　ｌｉｓｔ　０　予測のためのデフォルトインデックスと　ｌｉｓｔ　１　予測のためのデフォルトインデックスは、デコーディング順序に関わらず既にデコーディングされたレファランスピクチャの出力順序（ｏｕｔｐｕｔ　ｏｒｄｅｒ）、すなわちＰＯＣ値に基づいてインデックシングが行われる。図１では、全てのＢピクチャが時間的に後に続くＰピクチャをダイレクトモードのｌｉｓｔ　１　レファランスピクチャとして使用している。
【０００７】
一方、図２は、Ｂピクチャのみを使用するＩＢＢＢパターンにおける各Ｂピクチャに対する　ｌｉｓｔ　０　予測のためのデフォルトインデックス、　ｌｉｓｔ　１　予測のためのデフォルトインデックスおよびダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャをそれぞれ示す。図２の（ａ）は、コーディングするＢピクチャがＢ８のとき、　ｌｉｓｔ　１　のインデックス０を有する時間的に前に位置するＢ５がダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャとなり、（ｂ）のように次のデコーディング順序であるＢ７に対するダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャは時間的に後に位置したＢ８となる。最後に、（ｃ）のように次のデコーディング順序であるＢ９に対するダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャは時間的に前に位置したＢ７となる。
【０００８】
要するに、　図１および図２によれば、ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャは、コーディングしようとするＢピクチャより時間的に後に位置したＰまたはＢピクチャにもなり得、また時間的に前に位置したＢピクチャにもなり得る。
【０００９】
図３は、ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に後に位置する場合、同一位置のブロックが持つことのできるモードを示している。このとき、　ｌｉｓｔ　１　レファランスピクチャはＰピクチャまたはＢピクチャになり得るので、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるブロックは一つまたは二つの動きベクトルを持つか、イントラモードを持つことになる。Ｈ．２６４またはＭＰＥＧ−４　ｐａｒｔ　１０　のような次世代動画像圧縮技術は、スライスレベルでレファランスピクチャインデックスをリオーダリング（ｒｅｏｒｄｅｒｉｎｇ）することが許容されるので、　ｌｉｓｔ　１　予測のためのインデックス０をＢピクチャの直ぐ後にあるピクチャに割り当てることができる。すなわち、　ｌｉｓｔ　１　レファランスピクチャがＢピクチャの直ぐ後に存在することができることから、同一位置のブロックが持つ動きベクトルは前または後方向に向けられる。
【００１０】
さらに、図４は、ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に前に位置する場合、同一位置のブロックが持つことのできるモードを示している。前述のように同一位置のブロックは一つまたは二つの動きベクトルを持つか、イントラモードを持つ。このとき　ｌｉｓｔ　１　レファランスピクチャとＢピクチャとの間に異なるレファランスピクチャが存在し得ることから、動きベクトル方向は時間的に前と後に向けられる。
【００１１】
図３および図４に示すように、ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャは様々な予測モードを持つことができ、したがって、それら様々な場合に応じたダイレクトモードの動きベクトル演算方法が求められているというのが現状である。
【００１２】
【発明が解決しようとする課題】
本発明は、次世代動画像圧縮技術に定義されたＢピクチャにおいてダイレクトモード動きベクトル抽出手法を提示することによって、ダイレクトモードがマクロブロックの予測モードとして選ばれる可能性を高め、Ｂピクチャコーディング効率（ｃｏｄｉｎｇ　ｅｆｆｉｃｉｅｎｃｙ）を向上させることができるＢピクチャのダイレクトモード動きベクトル演算方法を提供することが目的である。
【００１３】
【課題を解決するための手段】
前記の目的を達成する本発明によるＢピクチャのダイレクトモード動きベクトル演算方法は、　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルを持っていると、ダイレクトモードの動きベクトルを誘導するために使用される動きベクトルは、二つの方法によって　ｌｉｓｔ　０　または　ｌｉｓｔ　１　動きベクトルを選んでダイレクトモードの動きベクトルを誘導する点に特徴がある。
【００１４】
ここで、本発明によれば、　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルのうち同一位置のブロックが存在する　ｌｉｓｔ　１　レファランスピクチャから時間的距離の短い動きベクトルをダイレクトモードの動きベクトルを誘導する動きベクトルとして選び、仮に、二つの動きベクトルが同一レファランスピクチャを指すと　ｌｉｓｔ　０　動きベクトルをダイレクトモードの動きベクトルを誘導する動きベクトルとして選んで、その選択された動きベクトルの指しているレファランスピクチャをダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと決定する方法があり、また、時間的距離に関わらず無条件に　ｌｉｓｔ　０　動きベクトルをダイレクトモードの動きベクトルを誘導する動きベクトルとして選び、前記　ｌｉｓｔ　０　動きベクトルの指しているレファランスピクチャをダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと決定する他の方法がある。
【００１５】
また、本発明では、ダイレクトモードの動きベクトルは同一位置のブロックが持つ　ｌｉｓｔ　０　動きベクトルから誘導されるという従来手法を、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるブロックが　ｌｉｓｔ　１　動きベクトルのみを持っている場合に適用すると、同一位置のブロックの　ｌｉｓｔ　０　動きベクトルは０であるためにダイレクトモードの動きベクトルはいずれも０となる問題点を解決するために、同一位置のブロックが持つモード種類に関わらず、そのブロックの持っている動きベクトルを用いてダイレクトモードの動きベクトルを誘導する。
【００１６】
ここで、本発明は、　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが　ｌｉｓｔ　１　動きベクトルのみを持っている場合、ダイレクトモード動きベクトルを求め得る方法を提示する。１番目の方法は、ダイレクトモード動きベクトル計算に使用される動きベクトル値を０にし、ダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャ（ｌｉｓｔ　０　ｒｅｆｅｒｅｎｃｅ　ｐｉｃｔｕｒｅ　ｆｏｒ　ｄｉｒｅｃｔ　ｍｏｄｅ）は時間的にＢピクチャの直ぐ前の位置に存在するデコーディングされたピクチャと定義することを特徴とする。２番目の方法は、ダイレクトモード動きベクトル計算に使用される動きベクトル値は同一位置のブロックの持っている　ｌｉｓｔ　１　動きベクトルをそのまま利用し、その代わり、ダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャは時間的にＢピクチャの直ぐ前の位置に存在するデコーディングされたピクチャと定義することを特徴とする。３番目の方法は、ダイレクトモード動きベクトル計算に使用される動きベクトル値は同一位置のブロックの持っている　ｌｉｓｔ　１　動きベクトルをそのまま利用し、　ｌｉｓｔ　１　動きベクトルの指しているレファランスピクチャをダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと決定することを特徴とする。
【００１７】
また、本発明によれば、従来の手法におけると同様にダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャを　ｌｉｓｔ　１　予測に使用されるインデックスが０のピクチャと定義する場合、Ｂピクチャとインデックス０のピクチャとの間に他のピクチャがデコーディングされるときインデックス０のピクチャの動き情報およびレファランスピクチャ情報が保持されなければならないことから追加的なメモリ使用が必須とされているが、本発明ではダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャを最近にデコーディングされたピクチャと定義することによって追加的なメモリ使用を節約することができる。
【００１８】
また、本発明は、動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャが前記Ｂピクチャより時間的に前に位置する場合、前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルをスケーリングし、　ｌｉｓｔ　０　動きベクトル（ＭＶＦ）と　ｌｉｓｔ　１　動きベクトル（ＭＶＢ）を誘導してＢピクチャのダイレクトモード動きベクトルを演算する点が特徴である。
【００１９】
ここで、本発明によれば、前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックともフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、前記Ｂピクチャのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは下記の式によって算出される。
ＭＶＦ　＝　ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【００２０】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルである。
【００２１】
また、本発明によれば、前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックともフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、前記Ｂピクチャのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは下記の式によって算出される。
ＭＶＦ　＝　−ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　−（ＴＤＢ　＋　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　−ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【００２２】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルである。
【００２３】
また、本発明によれば、前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックともフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出される。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ，ｉ）ｘ　ＭＶｉ／ＴＤＤ，ｉ
または、
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
【００２４】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドの間の時間的距離であり、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶｉは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフィールドにある同一位置のブロックが持っている動きベクトルである。
【００２５】
また、本発明によれば、前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックともフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出される。
ＭＶＦ，ｉ　＝　−ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　−（ＴＤＢ，ｉ　＋　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
または、
Ｚ　＝　−ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
【００２６】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶｉは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフィールドにある同一位置のブロックが持っている動きベクトルである。
【００２７】
また、本発明によれば、前記Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出される。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【００２８】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
【００２９】
また、本発明によれば、前記Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出される。
ＭＶＦ，ｉ　＝　−ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　−（ＴＤＢ，ｉ　＋　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　−ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【００３０】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
また、本発明によれば、前記Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、下記の式によって算出される　。ここで、　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックの持つ動き情報が、ダイレクトモードの動きベクトルを求めるのに使用される。
ＭＶＦ　＝　ＴＤＢ×ＭＶ１／ＴＤＤ，１
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ，１）×ＭＶ１／ＴＤＤ，１
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ，１　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ１　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ１　＋　１２８）＞＞８
【００３１】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤ，１は　ｌｉｓｔ　１　基準フレームのフィールド１と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶ１は前記　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックが持っている動きベクトルである。
【００３２】
また、本発明によれば、前記Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、下記の式によって算出される。ここで、　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックの持つ動き情報が、ダイレクトモードの動きベクトルを求めるのに使用される。
ＭＶＦ　＝　−ＴＤＢ×ＭＶ１／ＴＤＤ，１
ＭＶＢ　＝　−（ＴＤＢ　＋　ＴＤＤ，１）×ＭＶ１／ＴＤＤ，１
または、
Ｚ　＝　−ＴＤＢ×２５６／ＴＤＤ，１　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ１　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ１　＋　１２８）＞＞８
【００３３】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤ、１は　ｌｉｓｔ　１　基準フレームのフィールド１と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶ１は前記　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックが持っている動きベクトルである。
【００３４】
また、本発明によれば、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックが二つの動きベクトルを持つ場合には、一つの動きベクトル（　ｌｉｓｔ　０　または　ｌｉｓｔ　１　動きベクトル）を選び、この選ばれた動きベクトルからＢピクチャのダイレクトモードの動きベクトルを誘導する。
【００３５】
また、前記の目的を達成する、本発明によるＢピクチャのダイレクトモード動きベクトル演算方法の他の実施態様は、動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと　ｌｉｓｔ　１　レファランスピクチャとも前記Ｂピクチャより時間的に後に存在する場合、前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルをスケーリングし、　ｌｉｓｔ　０　動きベクトル（ＭＶＦ）と　ｌｉｓｔ　１　動きベクトル（ＭＶＢ）を誘導してＢピクチャのダイレクトモード動きベクトルを演算することが特徴である。
【００３６】
ここで、本発明によれば、前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックともフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャに比べて時間的に後に存在する場合、前記Ｂピクチャのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、下記の式によって算出される。
ＭＶＦ　＝　ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【００３７】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルである。
【００３８】
また、本発明によれば、前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックともフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャに比べて時間的に前に存在する場合、前記Ｂピクチャのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、下記の式によって算出される。
ＭＶＦ　＝　−ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　−（ＴＤＢ　＋　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　−ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【００３９】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルである。
【００４０】
また、本発明によれば、前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックともフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャに比べて時間的に後に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出される。
【００４１】
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
または、
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
【００４２】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶｉは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフィールドにある同一位置のブロックが持っている動きベクトルである。
【００４３】
また、本発明によれば、前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックともフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャに比べて時間的に前に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出される。
ＭＶＦ，ｉ　＝　−ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　−（ＴＤＢ，ｉ　＋　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
または、
Ｚ＝　−ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
【００４４】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶｉは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフィールドにある同一位置のブロックが持っている動きベクトルである。
【００４５】
また、本発明によれば、前記Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャに比べて時間的に後に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは下記の式によって算出される。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【００４６】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
【００４７】
また、本発明によれば、前記Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャに比べて時間的に前に存在する場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出される。
ＭＶＦ，ｉ　＝　−ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　−（ＴＤＢ，ｉ　＋　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　−ＴＤＢ，　ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【００４８】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
【００４９】
また、本発明によれば、前記Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャに比べて時間的に後に存在する場合、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、下記の式によって算出される。ここで、　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックの持つ動き情報が、ダイレクトモードの動きベクトルを求めるのに使用される。
【００５０】
ＭＶＦ　＝　ＴＤＢ×ＭＶ０　／ＴＤＤ，０
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ，０）×ＭＶ０　／ＴＤＤ，０
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ，０　　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ０　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ０　＋　１２８）＞＞８
【００５１】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤ，０は　ｌｉｓｔ　１　基準フレームのフィールド０と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶ０　は前記ダイレクトモードのための　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックが持っている動きベクトルである。
【００５２】
また、本発明によれば、前記Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードであり、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャに比べて時間的に前に存在する場合、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、下記の式によって算出される。ここで、　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックの持つ動き情報が、ダイレクトモードの動きベクトルを求めるのに使用される。
ＭＶＦ　＝　−ＴＤＢ×ＭＶ０　／ＴＤＤ，０
ＭＶＢ　＝　−（ＴＤＢ　＋　ＴＤＤ，０）×ＭＶ０　／ＴＤＤ，０
または、
Ｚ　＝　−ＴＤＢ×２５６／ＴＤＤ，０　　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ０　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ０　＋　１２８）＞＞８
【００５３】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤ，０　は　ｌｉｓｔ　１　基準フレームのフィールド０と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶ０　は前記ダイレクトモード　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックが持っている動きベクトルである。
【００５４】
また、本発明によれば、前記Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるブロックが二つの動きベクトルを持つ場合は、一つの動きベクトル（ＭＶ１またはＭＶ２）を選び、この選ばれた動きベクトルからＢピクチャのダイレクトモードの動きベクトルを誘導する。
【００５５】
また、前記目的を達成する本発明によるＢピクチャのダイレクトモード動きベクトル演算方法のさらに他の実施態様は、動画像コーディングシステムにおいてＢピクチャのダイレクトモード動きベクトルを抽出する際に、ダイレクトモード動きベクトルを求めるのに使用する数式を単純化するためにピクチャ間の時間的距離を符号付きの値で表すことによって、Ｂピクチャのダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと　ｌｉｓｔ　１　レファランスピクチャの位置に関わらず前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルをスケーリングし、　ｌｉｓｔ　０　動きベクトル（ＭＶＦ）と　ｌｉｓｔ　１　動きベクトル（ＭＶＢ）を誘導してＢピクチャのダイレクトモード動きベクトルを演算することが特徴である。
【００５６】
ここで、本発明によれば、前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックともフレームモードである場合、前記Ｂピクチャのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、下記の式によって算出される。
ＭＶＦ　＝　ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【００５７】
ここで、ＴＤＢは、現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、Ｂフレームから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、　ｌｉｓｔ　１　基準フレームから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルである。
【００５８】
また、本発明によれば、前記Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックともフィールドモードである場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出される。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
または、
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
【００５９】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であって、Ｂフィールドから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０レファランスフィールドとの間の時間的距離であって、　ｌｉｓｔ　１　レファランスフィールドから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＭＶｉは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフィールドにある同一位置のブロックが持っている動きベクトルである。
【００６０】
また、本発明によれば、前記Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードである場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記の式によって算出される。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【００６１】
ここで、ＴＤＢ，ｉ　は現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であって、Ｂフィールドから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、　ｌｉｓｔ　１　基準フレームから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
【００６２】
また、本発明によれば、前記Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャが前記Ｂピクチャより時間的に後に存在する場合、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、　ｌｉｓｔ　１　基準フレームのフィールド０にある同位置のマクロブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される下記の式によって算出される。
ＭＶＦ　＝　ＴＤＢ×ＭＶ０　／ＴＤＤ，０
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ，０）×ＭＶ０　／ＴＤＤ，０
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ，０　　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ０　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ０　＋　１２８）＞＞８
【００６３】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、Ｂフレームから計算された時間的距離は正（＋）の符号で表示され、ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＴＤＤ，０　は　ｌｉｓｔ　１　基準フレームのフィールド０と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であって、　ｌｉｓｔ　１　基準フレームのフィールド０から計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＭＶ０　は前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックが持っている動きベクトルである。
【００６４】
また、本発明によれば、前記Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャが前記Ｂピクチャより時間的に前に存在する場合、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される下記の式によって算出される。
ＭＶＦ　＝　ＴＤＢ×ＭＶ１／ＴＤＤ，１
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ，１）×ＭＶ１／ＴＤＤ，１
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ，１　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ１　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ１　＋　１２８）＞＞８
【００６５】
ここで、ＴＤＢは、現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、Ｂフレームから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＴＤＤ，１は、　ｌｉｓｔ　１　基準フレームのフィールド１と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であって、　ｌｉｓｔ　１　基準フレームのフィールド１から計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＭＶ１は前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックが持っている動きベクトルである。
【００６６】
また、前記の目的を達成する本発明によるＢピクチャのダイレクトモード動きベクトル演算方法のさらに他の実施態様は、動画像コーディングシステムでＢピクチャのダイレクトモード動きベクトルを抽出する際に、Ｂピクチャのダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同位置のマクロブロックがイントラモードの場合には、空間的冗長性を用いて、前記Ｂピクチャのコーディングしようとするマクロブロックの周辺ブロックから　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャと各　ｌｉｓｔ　に対する動きベクトルを予測し、算出し、Ｂピクチャのダイレクトモード動きベクトルを演算することが特徴である。
【００６７】
ここで、本発明によれば、前記　ｌｉｓｔ　１　レファランスピクチャを選ぶに際して、前記コーディングしようとするマクロブロックの周辺マクロブロックＡ、Ｂ、Ｃがレファランスするレファランスピクチャが異なっている場合には、最も小さいインデックスを有するレファランスピクチャを　ｌｉｓｔ　１　レファランスピクチャとして選ぶ。
【００６８】
また、本発明によれば、前記　ｌｉｓｔ　１　レファランスピクチャを選ぶに際して、前記コーディングしようとするマクロブロックの周辺マクロブロックのうち二つ以上のマクロブロックがレファランスするレファランスピクチャが同一のインデックスを持っていると、そのインデックスを有するレファランスピクチャを　ｌｉｓｔ　１　レファランスピクチャとして選ぶ。
【００６９】
また、本発明によれば、前記各　ｌｉｓｔ　に対する動きベクトルを予測するに際して、周辺マクロブロックＡ、Ｂ、Ｃのうちイントラモードを有するマクロブロックがあれば、そのマクロブロックの　ｌｉｓｔ　０　と　ｌｉｓｔ　１　の動きベクトルをそれぞれ０と設定し、前記各　ｌｉｓｔ　レファランスピクチャの時間的位置と同一の方向を有する動きベクトルを周辺マクロブロックから選び、メディアン演算を通じて各ｌｉｓｔの動きベクトルを求めるか、または、仮に周辺マクロブロックが同一の方向の動きベクトルを二つ持っていると、そのマクロブロックのうち一つのみを選んでメディアン演算に含ませて各　ｌｉｓｔの動きベクトルを求める。
【００７０】
また、本発明によれば、前記各　ｌｉｓｔ　に対する有効なレファランスピクチャインデックスをいずれも誘導できないなら、　ｌｉｓｔ　０　、　ｌｉｓｔ　１　のレファランスピクチャインデックスはそれぞれ０となり、各　ｌｉｓｔ　に対する動きベクトルは０と設定する。
【００７１】
【発明の実施の形態】
本発明は、ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同位置のマクロブロックがイントラモードのときにダイレクトモード動きベクトルを誘導する方法と、　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に後に位置する場合およびＢピクチャより時間的に前に位置する場合に対してダイレクトモード動きベクトルを求める方法を提示する。
【００７２】
そして、ダイレクトモード動きベクトルを求めるのに使用する数式を単純化するためにピクチャ間の時間的距離を符号付きの値で表すことによって、ダイレクトモードのための　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャ位置に関わらずにダイレクトモード動きベクトルを求める方法に対してそれぞれ区分して説明する。
【００７３】
一方、ピクチャレベルでフレームモードとフィールドモードがスイッチングされるのでＢピクチャと　ｌｉｓｔ　１　レファランスピクチャはフレーム構造またはフィールド構造にコーディングされることができる。したがって、Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャにある同位置のマクロブロックは四つの場合のフレーム／フィールドコーディング組合せを持つことになる。
【００７４】
［１］　　　　ｌｉｓｔ　１　レファランスピクチャにある同位置のマクロブロックがイントラモードを有する場合
図３の（ｆ）および図４の（ｆ）に示すように、ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同位置のマクロブロックは、レファランスピクチャの時間的位置に関わらずイントラモードを持つことができる。このようなモードを有するマクロブロックは動き情報を持っていないため、従来手法では単にダイレクトモード動きベクトルを０とし、　ｌｉｓｔ　０　レファランスピクチャは最近にデコーディングされたピクチャと定義した。しかし、従来手法は高いコーディング効率が保障できなかったため、本発明ではＢピクチャのコーディングしようとするマクロブロックの周辺ブロックから　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャと各ｌｉｓｔ　に対する動きベクトルを空間的冗長性を用いて予測し、算出する。
【００７５】
各　ｌｉｓｔ　に対するレファランスピクチャインデックスは、下記のような方法によって求める。図５は一般の空間的冗長性を考慮し、周辺ブロックＡ、Ｂ、Ｃの動きベクトルを用いてブロックＥの予測動きベクトルを演算することを説明するための図である。
【００７６】
仮に、周辺マクロブロックＡ、Ｂ、Ｃのレファランスピクチャインデックスが異なっている場合には、その中で最も小さいレファランスピクチャインデックスがダイレクトモードのレファランスピクチャインデックスとして決定される。
【００７７】
仮に、周辺マクロブロックのうち、二つのブロックが同一のレファランスピクチャインデックスを持っていると、そのインデックスがダイレクトモードのレファランスピクチャインデックスとして決定される。
【００７８】
仮に、周辺マクロブロックとも同一のレファランスピクチャインデックスを持っていると、そのインデックスがダイレクトモードのレファランスピクチャインデックスとして決定される。
【００７９】
また、各　ｌｉｓｔ　に対する動きベクトルは下記のような動きベクトル予測を通じて求める。このとき、周辺マクロブロックＡ、Ｂ、Ｃのうちイントラモードを有するマクロブロックがあれば、そのマクロブロックの　ｌｉｓｔ　０　と　ｌｉｓｔ　１　の動きベクトルをそれぞれ‘０’と設定する。
【００８０】
上で求めた各　ｌｉｓｔのレファランスピクチャの時間的位置と同一の方向を有する動きベクトルを周辺マクロブロックから選び、メディアン演算を通じて各　ｌｉｓｔの動きベクトルを求める。
【００８１】
仮に、周辺マクロブロックが同一方向の動きベクトルを二つ持っていると、そのマクロブロックでは一つのみを選んでメディアン演算に含ませる。
【００８２】
一方、仮に周辺ブロックから　ｌｉｓｔ　０　、　ｌｉｓｔ　１に対する有効なレファランスピクチャインデックスをいずれも誘導できなかったら、　ｌｉｓｔ　０　、　ｌｉｓｔ　１　のレファランスピクチャインデックスはそれぞれ‘０’となり、各　ｌｉｓｔ　に対する動きベクトルは‘０’と設定する。
【００８３】
［２］　　　ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に後に位置する場合
ケース１：Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフレームモードのとき
【００８４】
図３の（ａ）〜（ｈ）から分かるように、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるブロックは一つの動きベクトルを持つか、二つの動きベクトルを持つことができる。本発明では、同一位置のブロックが二つの動きベクトルを持つ場合には一つの動きベクトル（Ｌ０　ＭＶまたはＬ１　ＭＶ）を選び、この選ばれた動きベクトルからダイレクトモードの動きベクトルを誘導する（以下では、Ｌ０　ＭＶ（　ｌｉｓｔ　０　動きベクトル）が選ばれた場合を基準に説明するものとする）。
【００８５】
したがって、図３の（ａ）（ｃ）は図６の（ａ）と同様になり、図３の（ｂ）（ｄ）（ｅ）は図６の（ｃ）、図３の（ｇ）（ｈ）は図６の（ｂ）のように単純化して表示される。
【００８６】
仮に、ダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャと　ｌｉｓｔ　１　レファランスピクチャがＢピクチャを中心に時間的に前、後に存在する場合（図６の（ａ））、またはダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャの両方ともＢピクチャより時間的に後に存在して　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより後に存在する場合（図６の（ｂ））、ダイレクトモードの動きベクトルＭＶ、ＭＶは下記のように計算される。
ＭＶＦ　＝　ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
【００８７】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離を表し、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離をそれぞれ表す。
【００８８】
そして、前記式は下記のように表すこともできるが、これは、実際の演算に際しての便利性のためにビット演算を適用する場合を示したのである。
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【００８９】
仮に、ダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャともＢピクチャより時間的に後に存在し、　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより前に存在する場合（図６の（ｃ））、ダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、下記のように計算される。
ＭＶＦ　＝　−ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　−（ＴＤＢ　＋　ＴＤＤ）×ＭＶ／ＴＤＤ
【００９０】
または、下記のような式で表すこともできる。
Ｚ　＝　−ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【００９１】
ケース２：Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフィールドモードのとき
図７では、Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフィールドモードの場合を示す。Ｂピクチャのマクロブロックの各ブロックにおける動きベクトルは同一パリティの　ｌｉｓｔ　１　レファランスフィールドにある同一位置の　ｌｉｓｔ　０　動きベクトルから誘導される。
【００９２】
仮に、ダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャがＢピクチャを中心に時間的に前、後に存在する場合（図７の（ａ））、またはダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャともＢピクチャより時間的に後に存在して　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより後に存在する場合（図７の（ｂ））には、Ｂフレームの各フィールドｉ（ｉ＝０は１番目のフィールド、ｉ＝１は２番目のフィールドを意味）に対するダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉが下記のように計算される。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
【００９３】
ここで、ＭＶｉは　ｌｉｓｔ　１　基準フレームのｉにある同一位置のブロックが持つ　ｌｉｓｔ　０　動きベクトル、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離をそれぞれ意味する。前記式は下記のように表すことができる。
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
【００９４】
仮に、　ｌｉｓｔ　１　基準フレームのフィールドｉにある同一位置のブロックがＢピクチャより時間的に後に存在するフレームのフィールドを指す動きベクトルを持つことによって、ダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャのいずれもＢピクチャより時間的に後に存在しながら　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより前に存在する場合（図７の（ｃ）および（ｄ））、ダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは下記のように計算される。
ＭＶＦ，ｉ　＝　−ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　−（ＴＤＢ，ｉ　＋　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
【００９５】
または、下記のような式で表すこともできる。。
Ｚ　＝　−ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
【００９６】
ケース３：Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードのとき
【００９７】
図８は、Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードの場合を示す。ここで、現在マクロブロックの垂直座標をｙｃｕｒｒｅｎｔとし、　ｌｉｓｔ　１　レファランスピクチャの同位置のマクロブロック垂直座標をｙｃｏ−ｌｏｃａｔｅｄとすれば、両座標の間にはｙｃｏ−ｌｏｃａｔｅｄ＝２ｘｙｃｕｒｒｅｎｔの関係が成り立つ。そして　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスフィールドはそれぞれの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　基準フレームの同一パリティに存在することになる。
【００９８】
仮に、ダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャがＢピクチャを中心に時間的に前、後に存在する場合（図８の（ａ））、またはダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャともＢピクチャより時間的に後に存在して　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより後に存在する場合（図８の（ｂ））、Ｂフレームの各フィールドｉに対するダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記のように計算される。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
【００９９】
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【０１００】
仮に、　ｌｉｓｔ　１　基準フレームにある同一位置のブロックがＢピクチャより時間的に後に存在するフレームを指す動きベクトルを持つことによってダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャのいずれもＢピクチャより時間的に後に存在しながら　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより前に存在する場合（図８の（ｃ））、Ｂフレームの各フィールドｉに対するダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは、下記のように計算される。
ＭＶＦ，ｉ　＝　−ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　−（ＴＤＢ，ｉ　＋　ＴＤＤ）×ＭＶ／ＴＤＤ
【０１０１】
または、下記のような式で表すこともできる。。
Ｚ　＝　−ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【０１０２】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
【０１０３】
ケース４：Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードのとき
図９は、Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードの場合を示す。ここで、現在マクロブロックの垂直座標をｙｃｕｒｒｅｎｔとし、　ｌｉｓｔ　１　レファランスピクチャの同位置のマクロブロック垂直座標をｙｃｏ−ｌｏｃａｔｅｄとすれば、両座標の間にはｙｃｏ−ｌｏｃａｔｅｄ＝ｙｃｕｒｒｅｎｔ／２の関係が成り立つ。そして、　ｌｉｓｔ　１　基準フレームのフィールド０がフィールド１よりＢピクチャに時間的距離が近いので、フィールド０にある同一位置のブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される。
【０１０４】
仮に、ダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャがＢピクチャを中心に時間的に前、後に存在する場合（図９の（ａ））、またはダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャのいずれもＢピクチャより時間的に後に存在しながら　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１ピクチャより後に存在する場合（図９の（ｂ））、Ｂフレームのダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルＭＶＦ、ＭＶＢは下記のように計算される。
ＭＶＦ　＝　ＴＤＢ×ＭＶ０　／ＴＤＤ，０
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ，０　）×ＭＶ０　／ＴＤＤ，０
前記式は、下記のように表すことができる。
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ，０　　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ０　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ０　＋　１２８）＞＞８
【０１０５】
仮に、　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックがＢピクチャより時間的に後に存在するフレームのフィールドを指す動きベクトルを持つことによってダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャのいずれもＢピクチャより時間的に後に存在しながら　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより前に存在する場合（図９の（ｃ））、ダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルＭＶＦ、ＭＶＢは下記のように計算される。
ＭＶＦ　＝　−ＴＤＢ×ＭＶ０　／ＴＤＤ，０
ＭＶＢ　＝　−（ＴＤＢ　＋　ＴＤＤ，０　）×ＭＶ０　／ＴＤＤ，０
または、下記のような式で表すこともできる。。
Ｚ　＝　−ＴＤＢ×２５６／ＴＤＤ，０　　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ０　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ０　＋　１２８）＞＞８
【０１０６】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤ，０　は　ｌｉｓｔ　１　基準フレームのフィールド０と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶ０　は前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフレームのフィールド０にある同一位置のブロックが持っている動きベクトルである。
【０１０７】
［３］　　　ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に前に位置する場合
この場合には　ｌｉｓｔ　０　、　ｌｉｓｔ　１　レファランスピクチャのいずれもＢピクチャより常に時間的に前に位置している。
【０１０８】
ケース１：Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフレームモードのとき
図４に示すように、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるブロックは一つの動きベクトルを持つか、二つの動きベクトルを持つことができる。本発明では、同一位置のブロックが二つの動きベクトルを持つ場合には一つの動きベクトル（Ｌ０　ＭＶまたはＬ１　ＭＶ）を選び、この選ばれた動きベクトルからダイレクトモードの動きベクトルを誘導する（以下では、Ｌ０　ＭＶ（　ｌｉｓｔ　０　動きベクトル）が選ばれた場合を基準に説明するものとする）。
【０１０９】
したがって、図４の（ａ）（ｃ）（ｅ）（ｇ）（ｈ）は図１０の（ａ）と同様になり、図４の（ｂ）（ｄ）は図１０の（ｂ）のように単純化して表示される。
【０１１０】
仮に、ダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、ダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは下記のように計算される（図１０の（ａ））。
ＭＶＦ　＝　ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
【０１１１】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルである。
そして、前記式は下記のように表すことができる。
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【０１１２】
仮に、ダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、ダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは下記のように計算される（図１０の（ｂ））。
ＭＶＦ　＝　−ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　−（ＴＤＢ　＋　ＴＤＤ）×ＭＶ／ＴＤＤ
または、下記のような式で表すこともできる。。
Ｚ　＝　−ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【０１１３】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルである。
【０１１４】
ケース２：Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフィールドモードのとき
仮に、ダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、Ｂフレームの各フィールドｉに対するダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは下記のように計算される（図１１の（ａ）および（ｂ））。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
前記式は、下記のように表すことができる。
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
【０１１５】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶｉは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフィールドにある同一位置のブロックが持っている動きベクトルである。
【０１１６】
仮に、　ｌｉｓｔ　１　基準フレームのフィールドｉにある同一位置のブロックが時間的に後に存在するフレームのフィールドを指す動きベクトルを持つことによってダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、ダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは下記のように計算される（図１１の（ｃ）および（ｄ））。
ＭＶＦ，ｉ　＝　−ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　−（ＴＤＢ，ｉ　＋　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
または、下記のような式で表すこともできる。
Ｚ　＝　−ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
【０１１７】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶｉは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフィールドにある同一位置のブロックが持っている動きベクトルである。
【０１１８】
ケース３：Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードのとき
仮に、ダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、Ｂフレームの各フィールドｉに対するダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは下記のように計算される（図１２の（ａ））。
ＭＶＦ，ｉ＝ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
前記式は下記のように表すことができる。
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【０１１９】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
【０１２０】
仮に、　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが時間的に後に存在するフレームを指す動きベクトルを持つことによってダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、Ｂフレームの各フィールドｉに対するダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは下記のように計算される（図１２の（ｂ））。
ＭＶＦ，ｉ　＝　−ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　−（ＴＤＢ，ｉ　＋　ＴＤＤ）×ＭＶ／ＴＤＤ
または、下記のような式で表すこともできる。。
Ｚ　＝　−ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【０１２１】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
【０１２２】
ケース４：Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードのとき
ｌｉｓｔ　１　基準フレームのフィールド１（ｆ１）がフィールド０（ｆ０　）よりＢピクチャに時間的距離が近いので、フィールド１（ｆ１）にある同一位置のブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される。
【０１２３】
仮に、ダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に前に存在する場合、Ｂフレームの各フィールドｉに対するダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルＭＶＦ、ＭＶＢは下記のように計算される（図１３の（ａ））。
ＭＶＦ　＝　ＴＤＢ×ＭＶ１／ＴＤＤ，１
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ，１）×ＭＶ１／ＴＤＤ，１
前記式は、下記のように表すことができる。
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ，１　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ１　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ１　＋　１２８）＞＞８
【０１２４】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤ，１は　ｌｉｓｔ　１　基準フレームのフィールド１と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶ１は前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックが持っている動きベクトルである。
【０１２５】
仮に、　ｌｉｓｔ　１　基準フレームのフィールド１（ｆ１）にある同一位置のブロックが時間的に後に存在するフレームのフィールドを指す動きベクトルを持つことによってダイレクトモードの　ｌｉｓｔ　０　レファランスピクチャが　ｌｉｓｔ　１　レファランスピクチャより時間的に後に存在する場合、ダイレクトモードの　ｌｉｓｔ　０　、　ｌｉｓｔ　１　動きベクトルＭＶＦ、ＭＶＢは下記のように計算される（図１３の（ｂ））。
ＭＶＦ　＝　−ＴＤＢ×ＭＶ１／ＴＤＤ，１
ＭＶＢ　＝　−（ＴＤＢ　＋　ＴＤＤ，１）×ＭＶ１／ＴＤＤ，１
または、下記のような式で表すこともできる。
Ｚ　＝　−ＴＤＢ×２５６／ＴＤＤ，１　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ１　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ１　＋　１２８）＞＞８
【０１２６】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であり、ＴＤＤ，１は　ｌｉｓｔ　１　基準フレームのフィールド１と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であり、ＭＶ１は前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックが持っている動きベクトルである。
【０１２７】
［４］　　　ピクチャ間の時間的距離を符号付きの値で表現してダイレクトモード動きベクトルを演算する場合
前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に前に位置するか、または後に位置する場合、各ケースに対して２種類の数式が存在することになるので、これを単純化するための方法でピクチャ間の時間的距離を符号付きの値で表すと、下記のように単純化して表される。
【０１２８】
ケース１：Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフレームモードのとき
Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックのいずれもフレームモードである場合、前記Ｂピクチャのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは下記の式から求めることができる。
ＭＶＦ　＝　ＴＤＢ×ＭＶ／ＴＤＤ
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【０１２９】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、Ｂフレームから計算された時間的距離は正（＋）の符号で表示され、ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、　ｌｉｓｔ　１　基準フレームから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャにある同一位置のブロックが持っている動きベクトルである。
【０１３０】
ケース２：Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフィールドモードのとき
Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックのいずれもフィールドモードである場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは下記の式から求めることができる。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶｉ／ＴＤＤ，ｉ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ，ｉ）×ＭＶｉ／ＴＤＤ，ｉ
または、
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ，ｉ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶｉ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶｉ　＋　１２８）＞＞８
【０１３１】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であって、Ｂフィールドから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＴＤＤ，ｉは　ｌｉｓｔ　１　レファランスフィールドと　ｌｉｓｔ　０レファランスフィールドとの間の時間的距離であって、　ｌｉｓｔ　１　レファランスフィールドから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＭＶｉは前記ダイレクトモードの　ｌｉｓｔ　１　レファランスフィールドにある同一位置のブロックが持っている動きベクトルである。
【０１３２】
ケース３：Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードのとき
Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードである場合、前記Ｂフレームの各フィールドｉに対するダイレクトモードの動きベクトルＭＶＦ，ｉ、ＭＶＢ，ｉは下記の式から求めることができる。
ＭＶＦ，ｉ　＝　ＴＤＢ，ｉ×ＭＶ／ＴＤＤ
ＭＶＢ，ｉ　＝　（ＴＤＢ，ｉ　−　ＴＤＤ）×ＭＶ／ＴＤＤ
または、
Ｚ　＝　ＴＤＢ，ｉ×２５６／ＴＤＤ　　　　　　ＭＶＦ，ｉ　＝　（Ｚ×ＭＶ　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ，ｉ　＝　（Ｗ×ＭＶ　＋　１２８）＞＞８
【０１３３】
ここで、ＴＤＢ，ｉは現在のＢフィールドと　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であって、Ｂフィールドから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＴＤＤは　ｌｉｓｔ　１　基準フレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、　ｌｉｓｔ　１　基準フレームから計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＭＶは前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームにある同一位置のブロックが持っている動きベクトルである。
【０１３４】
ケース４：Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードのとき
Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャが前記Ｂピクチャより時間的に後に存在する場合、　ｌｉｓｔ　１　基準フレームのフィールド０がフィールド１よりＢピクチャに時間的距離が近いので、フィールド０にある同一位置のブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される。したがって、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される下記の式から求めることができる。
ＭＶＦ　＝　ＴＤＢ×ＭＶ０　／ＴＤＤ，０
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ，０　）×ＭＶ０　／ＴＤＤ，０
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ，０　　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ０　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ０　＋　１２８）＞＞８
【０１３５】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、Ｂフレームから計算された時間的距離は正（＋）の符号で表示され、ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＴＤＤ，０　は　ｌｉｓｔ　１　基準フレームのフィールド０　と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であって、　ｌｉｓｔ　１　基準フレームのフィールド０から計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＭＶ０　は前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームのフィールド０にある同一位置のブロックが持っている動きベクトルである。
【０１３６】
仮に、　ｌｉｓｔ　１　レファランスピクチャが前記Ｂピクチャより時間的に前に存在する場合、　ｌｉｓｔ　１　基準フレームのフィールド１がフィールド０よりＢピクチャに時間的距離が近いので、フィールド１にある同一位置のブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される。したがって、前記Ｂフレームのダイレクトモードの動きベクトルＭＶＦ、ＭＶＢは、　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックの動き情報がダイレクトモードの動きベクトルを求めるのに使用される下記の式から求めることができる。
ＭＶＦ　＝　ＴＤＢ×ＭＶ１／ＴＤＤ，１
ＭＶＢ　＝　（ＴＤＢ　−　ＴＤＤ，１）×ＭＶ１／ＴＤＤ，１
または、
Ｚ　＝　ＴＤＢ×２５６／ＴＤＤ，１　　　　　　ＭＶＦ　＝　（Ｚ×ＭＶ１　＋　１２８）＞＞８
Ｗ　＝　Ｚ　−　２５６　　　　　　　　　ＭＶＢ　＝　（Ｗ×ＭＶ１　＋　１２８）＞＞８
【０１３７】
ここで、ＴＤＢは現在のＢフレームと　ｌｉｓｔ　０　基準フレームとの間の時間的距離であって、Ｂフレームから計算された時間的距離は正（＋）の符号で表示され、ｌｉｓｔ　０　基準フレームから計算された時間的距離は負（−）の符号で表示され、ＴＤＤ，１は　ｌｉｓｔ　１　基準フレームのフィールド１と　ｌｉｓｔ　０　レファランスフィールドとの間の時間的距離であって、　ｌｉｓｔ　１　基準フレームのフィールド１から計算された時間的距離は正（＋）の符号で表示され、　ｌｉｓｔ　０　レファランスフィールドから計算された時間的距離は負（−）の符号で表示され、ＭＶ１は前記ダイレクトモードの　ｌｉｓｔ　１　基準フレームのフィールド１にある同一位置のブロックが持っている動きベクトルである。
【０１３８】
【発明の効果】
以上の説明の如く、本発明によるＢピクチャのダイレクトモード動きベクトル演算方法によれば、次世代動画像圧縮技術に定義されたＢピクチャにおいてダイレクトモード動きベクトル抽出手法は、ダイレクトモードがマクロブロックの予測モードとして選ばれる可能性が高められるため、Ｂピクチャのコーディング効率を向上させることができる。
【図面の簡単な説明】
【図１】一般のＩＢＢＢＰパターンにおけるダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャを説明するための図。
【図２】一般のＩＢＢＢパターンにおけるダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャを説明するための図。
【図３】一般のダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に後に位置する場合を示す図（Ｌ０　ＭＶ：　ｌｉｓｔ　０　動きベクトル、Ｌ１　ＭＶ：　ｌｉｓｔ
１　動きベクトル）。
【図４】一般のダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に前に位置する場合を示す図（Ｌ０　ＭＶ：　ｌｉｓｔ　０　動きベクトル、Ｌ１　ＭＶ：　ｌｉｓｔ
１　動きベクトル）。
【図５】一般の空間的冗長性を考慮し、周辺ブロックＡ、Ｂ、Ｃの動きベクトルを用いてブロックＥの予測動きベクトルを演算することを説明するための図。
【図６】一般のダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に後に位置するとき、Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフレームモードである場合を示す図。
【図７】一般のダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に後に位置するとき、Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフィールドモードである場合を示す図。
【図８】一般のダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に後に位置するとき、Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードである場合を示す図。
【図９】一般のダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に後に位置するとき、Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードである場合を示す図。
【図１０】一般のダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に前に位置するとき、Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフレームモードである場合を示す図。
【図１１】一般のダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に前に位置するとき、Ｂピクチャのマクロブロックと　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックの両方ともフィールドモードである場合を示す図。
【図１２】一般のダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に前に位置するとき、Ｂピクチャのマクロブロックがフィールドモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフレームモードである場合を示す図。
【図１３】一般のダイレクトモードの　ｌｉｓｔ　１　レファランスピクチャがＢピクチャより時間的に前に位置するとき、Ｂピクチャのマクロブロックがフレームモードであり、　ｌｉｓｔ　１　レファランスピクチャの同一位置にあるマクロブロックがフィールドモードである場合を示す図。
【図１】
2004129191.tif 000003
【図２】
2004129191.tif 000004
【図３】
2004129191.tif 000005
【図４】
2004129191.tif 000006
【図５】
2004129191.tif 000007
【図６】
2004129191.tif 000008
【図７】
2004129191.tif 000009
【図８】
2004129191.tif 000010
【図９】
2004129191.tif 000011
【図１０】
2004129191.tif 000012
【図１１】
2004129191.tif 000013
【図１２】
2004129191.tif 000014
【図１３】
2004129191.tif 000015