(57)【要約】  運動補償予想を遂行する際に運動推定動作の数を減少するための装置は、運動推定装置と、運動補償予想装置と、処理要素を備えている。運動推定装置は、ビデオフレームのマクロブロックから運動ベクトルを抽出するように構成される。マクロブロックは、ブロックサイズであるインターモードを含む。運動補償予想装置は、基準フレーム内の対応マクロブロックを分析することにより運動ベクトルに基づいて予想ブロックを発生するように構成される。処理要素は、運動推定装置及び運動補償予想装置と通信する。又、処理要素は、歪値を第１の所定スレッシュホールドと比較し、そしてこの歪値と第１の所定スレッシュホールドとの比較に基づいて、第２のエンコードモードを評価せずに第１及び第２のエンコードモードの中から第１のエンコードモードを選択する。【選択図】図９
2009542151.tif 000002
【特許請求の範囲】
【請求項１】
運動補償予想を使用してマクロブロックをエンコードするためのモードを選択する方法において、
ビデオフレームの少なくとも１つのマクロブロックから少なくとも１つの運動ベクトルを抽出するステップであって、前記少なくとも１つのマクロブロックは、複数のブロックサイズを有する第１の複数のインターモードを含むものであるステップと、
基準フレームを分析することにより前記少なくとも１つの運動ベクトルに基づいて前記マクロブロックに対する少なくとも１つの予想を発生するステップと、
歪値を第１の所定スレッシュホールドと比較し、そしてこの歪値と第１の所定スレッシュホールドとの比較に基づいて第２のエンコードモードを評価せずに第１及び第２のエンコードモードの中で第１のエンコードモードを選択するステップと、
を備えた方法。
【請求項２】
歪値を比較する前に、少なくとも１つのマクロブロックの残留エラーを、複数の所定の候補運動ベクトルに対応する別の所定スレッシュホールドと比較するステップを更に備え、前記複数の所定の候補運動ベクトルは、複数の運動ベクトルのサブセットを含む、請求項１に記載の方法。
【請求項３】
前記複数の所定の候補運動ベクトルは、ｘ及びｙ方向に（０、０）の値を有する少なくとも１つの運動ベクトルと、フレーム内のマクロブロックに対応する運動ベクトルの値に依存する値を有する予想運動ベクトルとを含む、請求項２に記載の方法。
【請求項４】
前記少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに前記抽出された運動ベクトルに基づいて少なくとも１つのマクロブロックの運動を推定するステップと、
前記少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに前記少なくとも１つのマクロブロックの各領域に各々対応する複数の歪値を計算するステップと、
を更に備えた請求項１に記載の方法。
【請求項５】
前記複数の領域に対して前記複数の歪値を加算して合計を発生するステップと、
前記合計を第２の所定スレッシュホールドと比較し、前記合計が第２の所定スレッシュホールドを越えるときに、第１のコードモードを評価せずに第２のコードモードを選択するステップと、
を更に備えた請求項４に記載の方法。
【請求項６】
複数のビットを含むバイナリー歪マップを発生するステップを更に備え、各ビットの値は、第３の所定スレッシュホールドとの比較に対応し、そして各ビットは、少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つのマクロブロックの各領域に対応する、請求項４に記載の方法。
【請求項７】
第１歪値及び第２歪値の和が第４の所定スレッシュホールドを越えるかどうか決定するステップであって、第１歪値及び第２歪値は、少なくとも１つのマクロブロックが複数のブロックサイズの中の第２ブロックサイズより成るときに、少なくとも１つのマクロブロックの第１区画に対応するものであるステップと、
前記第１歪値及び第２歪値の和が第４の所定スレッシュホールドを越えるときには前記第１区画に対応する運動を推定するステップと、
少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つのマクロブロックから抽出された少なくとも１つの運動ベクトルを、第１歪値及び第２歪値の和が第４の所定スレッシュホールド未満であるときに前記第１区画に対応する運動ベクトルとして使用するステップと、
を更に備えた請求項４に記載の方法。
【請求項８】
第３歪値及び第４歪値の和が第４の所定スレッシュホールドを越えるかどうか決定するステップであって、第３歪値及び第４歪値は、少なくとも１つのマクロブロックが複数のブロックサイズの中の第２ブロックサイズより成るときに、少なくとも１つのマクロブロックの第２区画に対応するものであるステップと、
前記第３歪値及び第４歪値の和が第４の所定スレッシュホールドを越えるときには前記第２区画に対応する運動を推定するステップと、
少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つのマクロブロックから抽出された少なくとも１つの運動ベクトルを、第３歪値及び第４歪値の和が第４の所定スレッシュホールド未満であるときに前記第２区画に対応する運動ベクトルとして使用するステップと、
を更に備えた請求項７に記載の方法。
【請求項９】
第５歪値及び第６歪値の和が第４の所定スレッシュホールドを越えるかどうか決定するステップであって、第５歪値及び第６歪値は、少なくとも１つのマクロブロックが複数のブロックサイズの中の第３ブロックサイズより成るときに、少なくとも１つのマクロブロックの第３区画に対応するものであるステップと、
前記第４歪値及び第５歪値の和が第４の所定スレッシュホールドを越えるときには前記第３区画に対応する運動を推定するステップと、
少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つのマクロブロックから抽出された少なくとも１つの運動ベクトルを、第５歪値及び第６歪値の和が第４の所定スレッシュホールド未満であるときに前記第３区画に対応する運動ベクトルとして使用するステップと、
を更に備えた請求項７に記載の方法。
【請求項１０】
第６歪値及び第７歪値の和が第４の所定スレッシュホールドを越えるかどうか決定するステップであって、第６歪値及び第７歪値は、少なくとも１つのマクロブロックが複数のブロックサイズの中の第３ブロックサイズより成るときに、少なくとも１つのマクロブロックの第４区画に対応するものであるステップと、
前記第６歪値及び第７歪値の和が第４の所定スレッシュホールドを越えるときには前記第４区画に対応する運動を推定するステップと、
少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つのマクロブロックから抽出された少なくとも１つの運動ベクトルを、第６歪値及び第７歪値の和が第４の所定スレッシュホールド未満であるときに前記第４区画に対応する運動ベクトルとして使用するステップと、
を更に備えた請求項９に記載の方法。
【請求項１１】
前記第１、第２及び第３ブロックサイズの中から、運動推定が遂行される最良のインターモードを決定するステップと、
候補イントラモードの中から最良のイントラモードを決定するステップと、
前記最良のインターモード及び最良のイントラモードのうちの、最低のコスト関数を有する一方を選択するステップと、
を備えた請求項１０に記載の方法。
【請求項１２】
前記第１エンコードモードは、時間的冗長性に基づくインターコード化モードを含み、そして前記第２エンコードモードは、空間的冗長性に基づくイントラコード化モードを含む、請求項１に記載の方法。
【請求項１３】
前記第１ブロックサイズは、前記第２及び第３ブロックサイズより大きく、前記第２ブロックサイズは、水平区画であり、そして前記第３ブロックサイズは、垂直区画である、請求項１０に記載の方法。
【請求項１４】
コンピュータ読み取り可能なプログラムコード部分が記憶された少なくとも１つのコンピュータ読み取り可能な記憶媒体を備えた、運動補償予想を遂行するためのコンピュータプログラム製品において、前記コンピュータ読み取り可能なプログラムコード部分は、
ビデオフレームの少なくとも１つのマクロブロックから少なくとも１つの運動ベクトルを抽出する第１の実行可能な部分であって、前記少なくとも１つのマクロブロックは、複数のブロックサイズを有する第１の複数のインターモードを含むものである第１の実行可能な部分と、
基準フレームを分析することにより前記少なくとも１つの運動ベクトルに基づいて前記少なくとも１つのマクロブロックに対する少なくとも１つの予想を発生する第２の実行可能な部分と、
歪値を第１の所定スレッシュホールドと比較し、そしてこの歪値と第１の所定スレッシュホールドとの比較に基づいて第２のエンコードモードを評価せずに第１及び第２のエンコードモードの中で第１のエンコードモードを選択する第３の実行可能な部分と、
を備えている、コンピュータプログラム製品。
【請求項１５】
前記少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに前記抽出された運動ベクトルに基づいて少なくとも１つのマクロブロックの運動を推定する第６の実行可能な部分と、
前記少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに前記少なくとも１つのマクロブロックの各領域に各々対応する複数のＳＡＤ歪値を計算する第７の実行可能な部分と、
を更に備えた請求項１４に記載のコンピュータプログラム製品。
【請求項１６】
前記複数の領域に対して前記複数の歪値を加算して合計を発生する第８の実行可能な部分と、
前記合計を第２の所定スレッシュホールドと比較し、前記合計が第２の所定スレッシュホールドを越えるときに、第１のコードモードを評価せずに第２のコードモードを選択する第９の実行可能な部分と、
を更に備えた請求項１５に記載のコンピュータプログラム製品。
【請求項１７】
複数のビットを含むバイナリー歪マップを発生する第１０の実行可能な部分を更に備え、各ビットの値は、第３の所定スレッシュホールドとの比較に対応し、そして各ビットは、少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つの予想マクロブロックの各領域に対応する、請求項１５に記載のコンピュータプログラム製品。
【請求項１８】
第１歪値及び第２歪値の和が第４の所定スレッシュホールドを越えるかどうか決定する第１１の実行可能な部分であって、第１歪値及び第２歪値は、少なくとも１つのマクロブロックが複数のブロックサイズの中の第２ブロックサイズより成るときに、少なくとも１つのマクロブロックの第１区画に対応するものである第１１の実行可能な部分と、
前記第１歪値及び第２歪値の和が第４の所定スレッシュホールドを越えるときには前記第１区画に対応する運動を推定する第１２の実行可能な部分と、
少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つのマクロブロックから抽出された少なくとも１つの運動ベクトルを、第１歪値及び第２歪値の和が第４の所定スレッシュホールド未満であるときに前記第１区画に対応する運動ベクトルとして使用する第１３の実行可能な部分と、
を更に備えた請求項１５に記載のコンピュータプログラム製品。
【請求項１９】
第３歪値及び第４歪値の和が第４の所定スレッシュホールドを越えるかどうか決定する第１４の実行可能な部分であって、第３歪値及び第４歪値は、少なくとも１つのマクロブロックが複数のブロックサイズの中の第２ブロックサイズより成るときに、少なくとも１つのマクロブロックの第２区画に対応するものである第１４の実行可能な部分と、
前記第３歪値及び第４歪値の和が第４の所定スレッシュホールドを越えるときには前記第２区画に対応する運動を推定する第１５の実行可能な部分と、
少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つのマクロブロックから抽出された少なくとも１つの運動ベクトルを、第３歪値及び第４歪値の和が第４の所定スレッシュホールド未満であるときに前記第２区画に対応する運動ベクトルとして使用する第１６の実行可能な部分と、
を更に備えた請求項１８に記載のコンピュータプログラム製品。
【請求項２０】
第５歪値及び第６歪値の和が第４の所定スレッシュホールドを越えるかどうか決定する第１７の実行可能な部分であって、第５歪値及び第６歪値は、少なくとも１つのマクロブロックが第３ブロックサイズより成るときに少なくとも１つのマクロブロックの第３区画に対応するものである第１７の実行可能な部分と、
前記第４歪値及び第５歪値の和が第４の所定スレッシュホールドを越えるときには前記第３区画に対応する運動を推定する第１８の実行可能な部分と、
少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つのマクロブロックから抽出された少なくとも１つの運動ベクトルを、第５歪値及び第６歪値の和が第４の所定スレッシュホールド未満であるときに前記第３区画に対応する運動ベクトルとして使用する第１９の実行可能な部分と、
を更に備えた請求項１８に記載のコンピュータプログラム製品。
【請求項２１】
第６歪値及び第７歪値の和が第４の所定スレッシュホールドを越えるかどうか決定する第２０の実行可能な部分であって、第６歪値及び第７歪値は、少なくとも１つのマクロブロックが複数のブロックサイズの中の第３ブロックサイズより成るときに少なくとも１つのマクロブロックの第４区画に対応するものである第２０の実行可能な部分と、
前記第６歪値及び第７歪値の和が第４の所定スレッシュホールドを越えるときには前記第４区画に対応する運動を推定する第２１の実行可能な部分と、
少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つのマクロブロックから抽出された少なくとも１つの運動ベクトルを、第６歪値及び第７歪値の和が第４の所定スレッシュホールド未満であるときに前記第４区画に対応する運動ベクトルとして使用する第２２の実行可能な部分と、
を更に備えた請求項２０に記載のコンピュータプログラム製品。
【請求項２２】
前記第１、第２及び第３ブロックサイズの中から、運動推定が遂行される最良のインターモードを決定する第２３の実行可能な部分と、
候補イントラモードの中から最良のイントラモードを決定する第２４の実行可能な部分と、
前記最良のインターモード及び最良のイントラモードのうちの、最低のコスト関数を有する一方を選択する第２５の実行可能な部分と、
を備えた請求項２１に記載のコンピュータプログラム製品。
【請求項２３】
前記第１エンコードモードは、時間的冗長性に基づくインターコード化モードを含み、そして前記第２エンコードモードは、空間的冗長性に基づくイントラコード化モードを含む、請求項１４に記載のコンピュータプログラム製品。
【請求項２４】
前記第１ブロックサイズは、前記第２及び第３ブロックサイズより大きく、前記第２ブロックサイズは、水平区画であり、そして前記第３ブロックサイズは、垂直区画である、請求項２１に記載のコンピュータプログラム製品。
【請求項２５】
運動補償予想を遂行するための装置において、
ビデオフレームの少なくとも１つのマクロブロックから少なくとも１つの運動ベクトルを抽出するように構成された運動推定装置であって、前記少なくとも１つのマクロブロックは、複数のブロックサイズを有する第１の複数のインターモードを含むものである運動推定装置と、
基準フレームを分析することにより前記少なくとも１つの運動ベクトルに基づいて前記マクロブロックに対する少なくとも１つの予想を発生するように構成された運動補償予想装置と、
前記運動推定装置及び運動補償予想装置と通信する処理要素と、
を備え、前記処理要素は、歪値を第１の所定スレッシュホールドと比較するように構成され、そして
前記処理要素は、更に、前記歪値と第１の所定スレッシュホールドとの比較に基づいて第２のエンコードモードを評価せずに第１及び第２のエンコードモードの中で第１のエンコードモードを選択するように構成された、装置。
【請求項２６】
前記処理要素は、更に、前記少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに前記抽出された運動ベクトルに基づいて少なくとも１つのマクロブロックの運動を推定するように構成され、
前記処理要素は、更に、前記少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに前記少なくとも１つのマクロブロックの各領域に各々対応する複数の歪値を計算するように構成された、請求項２５に記載の装置。
【請求項２７】
前記処理要素は、更に、前記複数の領域に対して前記複数の歪値を加算して合計を発生するように構成され、
前記処理要素は、更に、前記合計を第２の所定スレッシュホールドと比較し、前記合計が第２の所定スレッシュホールドを越えるときに、第１のコードモードを評価せずに第２のコードモードを選択するように構成された、請求項２６に記載の装置。
【請求項２８】
前記処理要素は、更に、複数のビットを含むバイナリー歪マップを発生するように構成され、各ビットの値は、第３の所定スレッシュホールドとの比較に対応し、そして各ビットは、少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つの予想マクロブロックの各領域に対応する、請求項２６に記載の装置。
【請求項２９】
前記処理要素は、更に、第１歪値及び第２歪値の和が第４の所定スレッシュホールドを越えるかどうか決定するように構成され、第１歪値及び第２歪値は、少なくとも１つのマクロブロックが複数のブロックサイズの中の第２ブロックサイズより成るときに、少なくとも１つのマクロブロックの第１区画に対応するものであり、
前記処理要素は、更に、前記第１歪値及び第２歪値の和が第４の所定スレッシュホールドを越えるときには前記第１区画に対応する運動を推定するように構成され、
前記処理要素は、更に、少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つのマクロブロックから抽出された少なくとも１つの運動ベクトルを、第１歪値及び第２歪値の和が第４の所定スレッシュホールド未満であるときに前記第１区画に対応する運動ベクトルとして使用するように構成された、請求項２６に記載の装置。
【請求項３０】
前記処理要素は、更に、第３歪値及び第４歪値の和が第４の所定スレッシュホールドを越えるかどうか決定するように構成され、第３歪値及び第４歪値は、少なくとも１つのマクロブロックが複数のブロックサイズの中の第２ブロックサイズより成るときに、少なくとも１つのマクロブロックの第２区画に対応するものであり、
前記処理要素は、更に、前記第３歪値及び第４歪値の和が第４の所定スレッシュホールドを越えるときには前記第２区画に対応する運動を推定するように構成され、
前記処理要素は、更に、少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つのマクロブロックから抽出された少なくとも１つの運動ベクトルを、第３歪値及び第４歪値の和が第４の所定スレッシュホールド未満であるときに前記第２区画に対応する運動ベクトルとして使用するように構成された、請求項２９に記載の装置。
【請求項３１】
前記処理要素は、更に、第５歪値及び第６のＳＡＤ値の和が第４の所定スレッシュホールドを越えるかどうか決定するように構成され、第５歪値及び第６歪値は、少なくとも１つのマクロブロックが複数のブロックサイズの中の第３ブロックサイズより成るときに、少なくとも１つのマクロブロックの第３区画に対応するものであり、
前記処理要素は、更に、前記第４歪値及び第５歪値の和が第４の所定スレッシュホールドを越えるときには前記第３区画に対応する運動を推定するように構成され、
前記処理要素は、更に、少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つのマクロブロックから抽出された少なくとも１つの運動ベクトルを、第５歪値及び第６歪値の和が第４の所定スレッシュホールド未満であるときに前記第３区画に対応する運動ベクトルとして使用するように構成された、請求項２９に記載の装置。
【請求項３２】
前記処理要素は、更に、第６歪値及び第７歪値の和が第４の所定スレッシュホールドを越えるかどうか決定するように構成され、第６歪値及び第７歪値は、少なくとも１つのマクロブロックが複数のブロックサイズの中の第３ブロックサイズより成るときに、少なくとも１つのマクロブロックの第４区画に対応するものであり、
前記処理要素は、更に、前記第６歪値及び第７歪値の和が第４の所定スレッシュホールドを越えるときには前記第４区画に対応する運動を推定するように構成され、
前記処理要素は、更に、少なくとも１つのマクロブロックが複数のブロックサイズの中の第１ブロックサイズより成るときに、少なくとも１つのマクロブロックから抽出された少なくとも１つの運動ベクトルを、第６歪値及び第７歪値の和が第４の所定スレッシュホールド未満であるときに前記第４区画に対応する運動ベクトルとして使用するように構成された、請求項３１に記載の装置。
【請求項３３】
前記処理要素は、更に、前記第１、第２及び第３ブロックサイズの中から、運動推定が遂行される最良のインターモードを決定するように構成され、
前記処理要素は、更に、候補イントラモードの中から最良のイントラモードを決定するように構成され、
前記処理要素は、更に、前記最良のインターモード及び最良のイントラモードのうち、最低のコスト関数を有する一方を選択するように構成される、請求項３２に記載の装置。
【請求項３４】
前記第１エンコードモードは、時間的冗長性に基づくインターコード化モードを含み、そして前記第２エンコードモードは、空間的冗長性に基づくイントラコード化モードを含む、請求項２５に記載の装置。
【請求項３５】
前記装置は、エンコーダとして実施される、請求項２５に記載の装置。
【請求項３６】
１つ以上のビデオシーケンスを実行するように構成されたビデオモジュールを備え、このビデオモジュールは、請求項２５に記載の装置を含む、移動ターミナル。
【請求項３７】
前記歪値は、予想マクロブロックの複数の領域の中のある領域に対応する、請求項１に記載の方法。
【請求項３８】
前記歪値は、予想マクロブロックの複数の領域の中のある領域に対応する、請求項１４に記載の方法。
【請求項３９】
前記歪値は、予想マクロブロックの複数の領域の中のある領域に対応する、請求項２５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般的に、移動電子装置技術に係り、より詳細には、ビデオコード化効率を著しく低下することなくビデオエンコーディングのエンコードの複雑さを低減するための高速インター（ＩＮＴＥＲ）モード判断アルゴリズムを与える方法、装置及びコンピュータプログラム製品に係る。
【背景技術】
【０００２】
近年の通信時代は、ワイヤライン及びワイヤレスネットワークの膨大な拡張をもたらした。コンピュータネットワーク、テレビジョンネットワーク、及び電話ネットワークは、消費者の需要によって煽られる空前の技術的拡張を経験している。ワイヤレス及び移動ネットワーク技術は、より融通性及び即時性のある情報転送を与えながら、関連する消費者需要に対処している。
【０００３】
現在及び将来のネットワーク技術は、情報転送の容易さ及びユーザの便宜性を促進し続けている。移動電子装置の能力における１つのこのような拡張は、ビデオシーケンスのようなビデオデータを処理するためのこのような装置の能力に関係している。ビデオシーケンスは、ネットワークサーバー又は他のネットワーク装置から、移動ターミナル、例えば、移動電話、ポータブルデジタルアシスタント（ＰＤＡ）、移動テレビジョン、ビデオ−ｉＰＯＤ、移動ゲームシステム、等へ与えることができ、或いは移動ターミナル及びネットワーク装置の組合せから与えることもできる。
【０００４】
ビデオシーケンスは、典型的に、非常に多数のビデオフレームより成り、これらビデオフレームは、非常に多数のピクセルで形成され、各ピクセルは、デジタルビットのセットにより表わされる。ビデオフレームには非常に多数のピクセルがあり、又、典型的なビデオシーケンスには非常に多数のビデオフレームがあるので、ビデオシーケンスを表すのに必要なデータの量が多くなる。従って、ビデオシーケンスを表すのに使用される情報の量は、典型的に、ビデオ圧縮（即ち、ビデオコード化）によって減少される。例えば、ビデオ圧縮は、デジタルビデオデータを、より少数のビットしか必要としないフォーマットに変換し、ビデオデータの効率的な記憶及び送信を容易にする。Ｈ．２６４／ＡＶＣ（アドバンスドビデオコーディング）（ＡＶＣ／Ｈ．２６４又はＨ．２６４／ＭＰＥＧ−４パート１０又はＭＰＥＧ−４パート１０／Ｈ．２６４ＡＶＣとも称される）は、ＩＳＯ／ＭＰＥＧ及びＩＴＵ−Ｔ／ＶＣＥＧ研究グループによって一緒に開発されたビデオコード化規格で、以前のビデオコード化規格（例えば、Ｈ．２６３）よりも著しく高いコード化効率を達成する。特に、Ｈ．２６４／ＡＶＣは、以前のビデオコード化規格よりも、同様のビットレートにおいて、著しく良好なビデオクオリティを達成する。Ｈ．２６４／ＡＶＣは、圧縮効率が高く且つネットワークが馴染み易い設計であるために、第三世代の移動マルチメディアサービスであるデジタルビデオブロードキャスティング・ツー・ハンドヘルド（ＤＶＢ−Ｈ）から高鮮明度デジタル多様性ディスク（ＨＤ−ＤＶＤ）までの範囲で工業的な勢いを得ている。しかしながら、当業者に完全に明らかなように、Ｈ．２６４は、Ｈ．２６４エンコーダ及びＨ．２６４デコーダにおける複雑さの増加を犠牲にして、高いコード化効率を得ている。
【０００５】
現在、Ｈ．２６４エンコーディング機能をハンドセットにおいて実施する多数の移動マルチメディア規格の発表が行われている。ハンドセットは、スペースに制限があり、計算能力に制限があり且つリソースに制限があるとすれば、Ｈ．２６４を使用するハンドセットは、多数の理由で複雑さの少ないエンコーディングを行うことが必須である。第１に、複雑さの少ないエンコーディングは、ハンドセットにおいてビデオエンコーダのリソース消費を減少し、これにより、ハンドセットのバッテリ寿命を延長する。第２に、あるビデオフレームのエンコーディングが、割り当てられた時間より長い時間をエンコードに要する場合には、ビデオフレームがスキップされることがある。従って、ビデオフレームのエンコーディングの最大の複雑さ、及び平均的なエンコーディングの複雑さを減少しなければならない。
【０００６】
Ｈ．２６４エンコーダの複雑さは、主として、運動補償予想（ＭＣＰ）によるものである。運動補償予想は、ビデオデータを圧縮するための広く認められた技術であり、典型的に、連続するビデオフレーム間の時間的冗長性を除去するのに使用される（即ち、フレーム間コード化）。時間的冗長性は、典型的に、ビデオシーケンス内の連続するビデオフレーム間に類似性があるときに生じる。例えば、ビデオシーケンスにおける連続するフレームのコンテンツの変化は、主として、ビデオシーケンスのシーンにおける運動の結果によるものである。運動は、シーンに存在する物体の移動又はカメラの運動によって生じる。典型的に、連続するフレーム間の差（例えば、運動又は移動）だけがエンコードされる。運動補償予想は、以前にエンコードされたフレーム（例えば、現在フレームに先行するフレーム）におけるセグメントのパラメータを使用してビデオシーケンスの運動を推定することにより時間的冗長性を除去する。換言すれば、運動補償予想は、基準フレームとして働き得る以前にエンコードされたフレームの運動ベクトルに基づいてフレームを発生できるようにする（即ち、予想フレーム）。
【０００７】
当業者であれば、完全に明らかなように、ビデオフレームは、マクロブロックにセグメント化又は分割することができ、マクロブロックにおいて運動補償予想を行うことができる。ビデオフレームの各マクロブロックに対して、運動推定を行い、そして基準フレームとして働き得る以前にエンコードされたフレームにおけるマッチングするマクロブロックに対応する運動ベクトルに基づいて予想マクロブロックを発生することができる。
【０００８】
以前のビデオコード化規格とは異なり、Ｈ．２６４／ＡＶＣビデオコード化規格では、マクロブロックを、１６ｘ１６ブロックの種々のブロック区画に分割することができ、そしてマクロブロックの各区画に対応する異なる運動ベクトルを発生することができる。マクロブロックの各区画に対応する異なる運動ベクトルが発生される。というのは、Ｈ．２６４／ＡＶＣは、マクロブロックに対して新たなインターモード又はブロックサイズを定義するからである。より詳細には、図１に示すように、Ｈ．２６４／ＡＶＣビデオコード化規格は、１６ｘ１６マクロブロックの種々のブロック区画を許し、新たなインターモード、即ち１６ｘ１６モードマクロブロックのＩＮＴＥＲ＿１６ｘ１６、ＩＮＴＥＲ＿１６ｘ８、ＩＮＴＥＲ＿８ｘ１６、及びＩＮＴＥＲ＿８ｘ８を定義する。更に、図１に示すように、Ｈ．２６４／ＡＶＣビデオコード化規格は、８ｘ８サブマクロブロックの種々の区画を許し、新たなＩＮＴＥＲサブモード、即ち８ｘ８サブモードサブマクロブロックのＩＮＴＥＲ＿８ｘ８、ＩＮＴＥＲ＿８ｘ４、ＩＮＴＥＲ＿４ｘ８、及びＩＮＴＥＲ４ｘ４を定義する。ＩＮＴＥＲ＿１６ｘ８モードについて考えると、このインターモードでは、マクロブロックが水平方向に２つの区画に分割され、そして各区画に対して運動ベクトルが送信され、マクロブロックに対して２つの運動ベクトルを生じさせる。この点に関して、Ｈ．２６４／ＡＶＣは、２つのフレーム間により正確な運動表示を発生し、コード化効率を著しく高める。
【０００９】
Ｈ．２６４／ＡＶＣは、増加された数のインターモードを定義するので、Ｈ．２６４エンコーダは、最良のモードを見つけるために以前のビデオコード化規格より多くのモードをチェックすることが要求される。各候補モードについて、マクロブロックの全ての区画に対して運動推定を行わねばならず、運動推定動作の数を著しく増加し、ひいては、Ｈ．２６４エンコーダの複雑さを高める。この増加した数の運動推定動作は、Ｈ．２６４エンコーダのリソース消費を増加し、Ｈ．２６４エンコーダを使用する移動ターミナルのバッテリ寿命を短縮する。
【００１０】
エンコーダにおける運動補償予想ステップの複雑さを減少するために、運動推定動作の数を減少しなければならない。これは、ＩＮＴＥＲ＿１６ｘ１６を除く全てのインターモードをディスエイブルし、そしてＩＮＴＥＲ＿１６ｘ１６モードに対する運動推定のみを遂行することにより達成できる。しかしながら、図２から明らかなように、ＩＮＴＥＲ＿１６ｘ８及びＩＮＴＥＲ＿８ｘ１６モードがディスエイブルされる場合は、コード化効率にペナルティが生じる。図２に示すように、ＩＮＴＥＲ＿１６ｘ１６、ＩＮＴＥＲ＿１６ｘ８及びＩＮＴＥＲ＿８ｘ１６モードに対して運動推定が遂行される所与のビデオシーケンス（例えば、１５フレーム／秒において１７６ｘ１４４解像度でＱＣＩF(クオーター・コモン・インターメディエート・フォーマット)においてエンコードされた“Foreman”というタイトルのビデオクリップ）の場合に、ＩＮＴＥＲ＿１６ｘ１６モードに対してのみ運動推定が遂行される状態に対抗して、所与のビットレート（キロビット／秒）において（デシベルで測定された）高いピーク信号対雑音比（ＰＳＮＲ）が得られる。この点に関して、ＩＮＴＥＲ＿１６ｘ１６モード以外の全てのインターモードをディスエイブルすると、コード化効率が著しく低下する。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従って、コード化効率の著しい低下を経験することなく運動推定動作の数を減少することによりＨ．２６４エンコーダのエンコーディングの複雑さを減少するための高速インターモード判断アルゴリズムが要望されている。
【課題を解決するための手段】
【００１２】
それ故、１つ以上の区画を持ち得る可変サイズのマクロブロックを検査して処理することのできる高速インターモード判断アルゴリズムを実施する方法、装置及びコンピュータプログラム製品が提供される。この方法、装置及びコンピュータプログラム製品は、エンコーダの運動補償予想に関連した運動推定動作の数を減少する。この点に関して、コード化効率の著しい低下を経験することなくエンコーダの複雑さが低減される。従って、エンコーダの運動推定動作の数の減少によりコスト節約を実現することができる。本発明の高速インターモード判断アルゴリズムは、Ｈ．２６４／ＡＶＣビデオコード化規格、或いは可変サイズのマクロブロックを促進することのできる他の適当なビデオコード化規格において実施することができる。
【００１３】
１つの実施形態では、運動補償予想を遂行する際に運動推定動作の数を減少するための方法が提供される。最初に、少なくとも１つの運動ベクトルがビデオフレームの少なくとも１つのマクロブロックから抽出されるかどうか決定される。少なくとも１つのマクロブロックは、複数のブロックサイズを有する第１の複数のインターモードを含む。次いで、マクロブロックに対する少なくとも１つの予想が、基準フレームを分析することにより少なくとも１つの運動ベクトルに基づいて発生される。次いで、抽出された運動ベクトルが実質的にゼロに等しいかどうか決定され、もしそうであれば、少なくとも１つの予想マクロブロックと少なくとも１つのマクロブロックとの間の差に基づいて歪値が計算される。次いで、歪値は、第１の所定のスレッシュホールドと比較され、そして歪値が第１の所定スレッシュホールドより小さいときには、第２のエンコードモードを評価せずに第１及び第２のエンコードモードの中から第１のエンコードモードが選択される。第２のエンコードモードを評価しないことにより、エンコードプロセスの効率が改善される。
【００１４】
別の実施形態では、運動補償予想を遂行する際に運動推定動作の数を減少するための装置が提供される。この装置は、運動推定装置、運動補償予想装置及び処理要素を備えている。運動推定装置は、ビデオフレームの少なくとも１つのマクロブロックから少なくとも１つの運動ベクトルを抽出するように構成される。少なくとも１つのマクロブロックは、複数のブロックサイズを有する第１の複数のインターモードを含む。運動補償予想装置は、基準フレームを分析することにより少なくとも１つの運動ベクトルに基づいて少なくとも１つのマクロブロックに対する少なくとも１つの予想を発生するように構成される。処理要素は、運動推定装置及び運動補償予想装置と通信する。又、処理要素は、抽出された運動ベクトルが実質的にゼロに等しいかどうか決定するように構成される。更に処理要素は、抽出された運動ベクトルが実質的にゼロに等しいときには、少なくとも１つの予想マクロブロックと少なくとも１つのマクロブロックとの間の差に基づいて歪値を計算するように構成される。又、処理要素は、歪値を第１の所定スレッシュホールドと比較し、そして歪値が第１の所定スレッシュホールドより小さいときには、第２のエンコードモードを評価せずに第１及び第２のエンコードモードの中から第１のエンコードモードを選択するように構成される。
【００１５】
他の実施形態によれば、前記方法と一貫したやり方で運動補償予想を遂行する際に推定動作の数を減少するための対応するコンピュータプログラム製品が提供される。
【００１６】
以上、本発明を一般的に説明したが、必ずしも正しいスケールで描かれていない添付図面を参照して本発明の実施形態を詳細に説明する。
【発明を実施するための最良の形態】
【００１７】
本発明の、全部ではないが幾つかの実施形態が示された添付図面を参照して、本発明の実施形態を以下に詳細に説明する。実際に、本発明は、多数の異なる形態で実施することができ、ここに述べる実施形態に限定されるものではなく、むしろ、これら実施形態は、適用される法的要求をこの開示で満足するために設けられている。全体を通して同じ要素は、同じ番号で示す。
【００１８】
図３は、本発明から利益が得られる移動ターミナル１０のブロック図である。しかしながら、図示されて以下に説明される移動電話は、本発明から利益が得られる移動ターミナルの一形式を例示するものに過ぎず、それ故、本発明の範囲を限定するものではないことを理解されたい。移動ターミナル１０の多数の実施形態が図示されて、例示のために以下に説明されるが、他の形式の移動ターミナル、例えば、ポータブルデジタルアシスタント（ＰＤＡ）、ページャー、移動テレビジョン、ラップトップコンピュータ、並びに他の形式の音声及びテキスト通信システムが本発明を容易に使用することができる。更に、移動でない装置も、本発明の実施形態を容易に使用できる。
【００１９】
更に、本発明の方法の多数の実施形態が移動ターミナル１０により遂行され又は使用されるが、この方法は、移動ターミナル以外によって使用されてもよい。更に、本発明のシステム及び方法は、主として、移動通信アプリケーションに関連して説明される。しかしながら、本発明のシステム及び方法は、移動通信産業及び移動通信産業以外において種々の他のアプリケーションに関連して利用できることも理解されたい。
【００２０】
移動ターミナル１０は、送信器１４及び受信器１６と動作上通信するアンテナ１２を備えている。更に、移動ターミナル１０は、送信器１４及び受信器１６へ信号を供給し及びそこから信号を受け取るコントローラ２０又は他の処理要素を備えている。信号は、適用セルラーシステムのエアインターフェイス規格に基づくシグナリング情報と、ユーザスピーチ及び／又はユーザ発生データとを含む。この点に関して、移動ターミナル１０は、１つ以上のエアインターフェイス規格、通信プロトコル、変調タイプ及びアクセスタイプと動作することができる。説明上、移動ターミナル１０は、多数の第１、第２及び／又は第３世代通信プロトコル等に基づいて動作することができる。例えば、移動ターミナルは、第２世代（２Ｇ）のワイヤレス通信プロトコルＩＳ−１３６（ＴＤＭＡ）、ＧＳＭ、及びＩＳ−９５（ＣＤＭＡ）、又は第３世代のワイヤレス通信プロトコルワイドバンドコード分割多重アクセス（ＷＣＤＭＡ）に基づいて動作することができる。
【００２１】
コントローラ２０は、移動ターミナル１０のオーディオ及びロジック機能を実施するのに必要な回路を含むことが理解される。例えば、コントローラ２０は、デジタル信号プロセッサ装置、マイクロプロセッサ装置、種々のアナログ／デジタルコンバータ、デジタル／アナログコンバータ、及び他のサポート回路で構成されてもよい。移動ターミナル１０の制御及び信号処理機能は、これら装置間にその各能力に基づいて割り当てられる。従って、コントローラ２０は、メッセージ及びデータを、変調及び送信の前に、畳み込み式にエンコードしインターリーブする機能も含むことができる。コントローラ２０は、更に、内部ボイスコーダーを含むことができ、又、内部データモデムを含んでもよい。更に、コントローラ２０は、メモリに記憶できる１つ以上のソフトウェアプログラムを動作するための機能を含むこともできる。例えば、コントローラ２０は、従来のウェブブラウザのような接続プログラムを動作することができる。この接続プログラムは、移動ターミナル１０が、例えば、ワイヤレスアプリケーションプロトコル（ＷＡＰ）に基づいて、位置ベースのコンテンツのようなウェブコンテンツを送信及び受信するのを許す。
【００２２】
又、移動ターミナル１０は、出力装置、例えば、従来のイヤホン又はスピーカ２４、リンガー２２、マイクロホン２６、ディスプレイ２８、及びユーザ入力インターフェイスを含むユーザインターフェイスも備え、それらは、全て、コントローラ２０に結合される。移動ターミナル１０がデータを受信するのを許すユーザ入力インターフェイスは、移動ターミナル１０がデータを受信するのを許す多数の装置、例えば、キーパッド３０、タッチディスプレイ（図示せず）、又は他の入力装置のいずれかを含む。キーパッド３０を含む実施形態では、キーパッド３０は、従来の数字（０−９）、関連キー（＃、＊）、並びに移動ターミナル１０を操作するための他のキーを含む。或いは又、キーパッド３０は、従来のＱＷＥＲＴＹキーパッドを含んでもよい。更に、移動ターミナル１０は、この移動ターミナル１０を操作するのに必要な種々の回路を付勢すると共に、検出可能な出力として機械的な振動を任意に与えるために、振動バッテリパックのようなバッテリ３４も備えている。
【００２３】
ここに例示する実施形態では、移動ターミナル１０は、ビデオ電話でもよく、コントローラ２０と通信するビデオモジュール３６を備えている。このビデオモジュール３６は、ビデオデータを記憶、表示又は送信のために捕獲するいかなる手段でもよい。例えば、ビデオモジュール３６は、捕獲された映像からデジタル映像ファイルを形成することのできるデジタルカメラを含んでもよい。更に、デジタルカメラは、捕獲された映像のシーケンスからビデオ映像ファイルを形成することができてもよい。従って、ビデオモジュール３６は、レンズや他の光学装置のような全てのハードウェア、及び捕獲された映像からデジタル映像ファイルを生成すると共に、捕獲された映像のシーケンスからビデオ映像ファイルを生成するのに必要なソフトウェアを含む。或いは又、ビデオモジュール３６は、映像又はビデオデータ（例えば、ビデオシーケンス、ビデオストリーム、ビデオクリップ等）を見るのに必要なハードウェアのみを含み、一方、移動ターミナル１０のメモリ装置が、捕獲された映像からデジタル映像ファイルを生成するのに必要なソフトウェアの形態でコントローラ２０により実行するためのインストラクションを記憶してもよい。又、移動ターミナル１０のメモリ装置は、捕獲された映像のシーケンスからビデオ映像ファイルを生成するのに必要なソフトウェアの形態でコントローラ２０により実行するためのインストラクションも記憶することができる。映像データ及びビデオデータは、移動ターミナルのディスプレイ２８に示される。ここに例示する実施形態では、ビデオモジュール３６は、更に、ビデオデータを処理する際にコントローラ２０の助けとなるコプロセッサのような処理要素、並びに映像データ及び／又はビデオデータを圧縮及び／又は解凍するためのエンコーダ及び／又はデコーダを含んでもよい。エンコーダ及び／又はデコーダは、Ｈ．２６４／ＡＶＣビデオコード化規格、又は可変サイズのマクロブロックをサポートできる他の適当なビデオコード化規格によりビデオデータをエンコード及び又はデコードすることができる。
【００２４】
移動ターミナル１０は、更に、ユーザアイデンティティモジュール（ＵＩＭ）３８を含むことができる。ＵＩＭ３８は、典型的に、プロセッサが内蔵されたメモリ装置である。ＵＩＭ３８は、例えば、加入者アイデンティティモジュール（ＳＩＭ）、ユニバーサル集積回路カード（ＵＩＣＣ）、ユニバーサル加入者アイデンティティモジュール（ＵＳＩＭ）、除去可能なユーザアイデンティティモジュール（Ｒ−ＵＩＭ）、等を含むことができる。ＵＩＭ３８は、典型的に、移動加入者に関係した情報エレメントを記憶する。ＵＩＭ３８に加えて、移動ターミナル１０は、メモリを装備してもよい。例えば、移動ターミナル１０は、不揮発性メモリ４０、例えば、データを一時的に記憶するためのキャッシュエリアを含む揮発性ランダムアクセスメモリ（ＲＡＭ）を含んでもよい。又、移動ターミナル１０は、埋設可能及び／又は除去可能である他の不揮発性メモリ４２を含んでもよい。それに加えて又はそれとは別に、不揮発性メモリ４２は、カリフォルニア州サニーベールのサンディスク社、又はカリフォルニア州フレモントのレクサーメディア社から入手できるＥＥＰＲＯＭ、フラッシュメモリ等を含むことができる。これらメモリは、移動ターミナル１０の機能を実施するために移動ターミナル１０によって使用される多数の情報断片及びデータを記憶することができる。例えば、これらのメモリは、移動ターミナル１０を独特に識別できる国際移動装置識別（ＩＭＥＩ）コードのような識別子を含むことができる。
【００２５】
図４には、本発明から利益が得られる一形式のシステムが示されている。このシステムは、複数のネットワーク装置を含む。図示されたように、１つ以上の移動ターミナル１０は、各々、ベースサイト又はベースステーション（ＢＳ）４４へ信号を送信し及びそこから信号を受信するためのアンテナ１２を含む。ベースステーション４４は、１つ以上のセルラー又は移動ネットワークの一部分でよく、その各々は、ネットワークを動作するのに必要な要素、例えば、移動交換センター（ＭＳＣ）４６を備えている。当業者に良く知られたように、移動ネットワークは、ベースと称されることもある。
【００２６】
ステーション／ＭＳＣ／インターワーキングファンクション（ＢＭＩ）。動作中、移動ターミナル１０がコールを発し及び受けるときに、ＭＳＣ４６は、移動ターミナル１０へ及び移動ターミナル１０からコールをルーティングする。又、ＭＳＣ４６は、移動ターミナル１０がコールに含まれるときに、地上線トランクへの接続を与えることもできる。更に、ＭＳＣ４６は、移動ターミナル１０への及び移動ターミナル１０からのメッセージの転送を制御できると共に、移動ターミナル１０がメッセージングセンターへ及びメッセージングセンターからメッセージを転送することも制御できる。図４のシステムにはＭＳＣ４６が示されているが、ＭＳＣ４６は、単にネットワーク装置を例示するもので、本発明は、ＭＳＣを使用するネットワークへの使用に限定されないことに注意されたい。
【００２７】
ＭＳＣ４６は、データネットワーク、例えば、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、及び／又はワイドエリアネットワーク（ＷＡＮ）に接続することができる。ＭＳＣ４６は、データネットワークに直結することができる。しかしながら、１つの典型的な実施形態では、ＭＳＣ４６はＧＴＷ４８に結合され、そしてＧＴＷ４８は、インターネット５０のようなＷＡＮに結合される。次いで、処理要素のような装置（例えば、パーソナルコンピュータ、サーバーコンピュータ、等）を、インターネット５０を経て移動ターミナル１０に結合することができる。例えば、以下に述べるように、処理要素は、コンピューティングシステム５２（図４には２つ示されている）、ビデオサーバー５４（図４には１つ示されている）、等に関連した１つ以上の処理要素を含むことができる。
【００２８】
ＢＳ４４は、シグナリングＧＰＲＳ（汎用パケット無線サービス）サポートノード（ＳＧＳＮ）５６に結合することもできる。当業者に良く知られたように、ＳＧＳＮ５６は、典型的に、パケット交換サービスに対してＭＳＣ４６と同様の機能を遂行することができる。ＳＧＳＮ５６は、ＭＳＣ４６と同様に、インターネット５０のようなデータネットワークに結合することができる。ＳＧＳＮ５６は、データネットワークに直結することができる。しかしながら、より典型的な実施形態では、ＳＧＳＮ５６は、パケット交換コアネットワーク、例えば、ＧＰＲＳコアネットワーク５８に結合される。パケット交換コアネットワークは、次いで、別のＧＴＷ４８、例えば、ＧＴＷ  ＧＰＲＳサポートノード（ＧＧＳＮ）６０に結合され、そしてＧＧＳＮ６０は、インターネット５０に結合される。ＧＧＳＮ６０に加えて、パケット交換コアネットワークは、ＧＴＷ４８に結合することもできる。又、ＧＧＳＮ６０は、メッセージングセンターに結合することもできる。この点に関して、ＧＧＳＮ６０及びＳＧＳＮ５６は、ＭＳＣ４６と同様に、ＭＭＳメッセージのようなメッセージの転送を制御することができる。又、ＧＧＳＮ６０及びＳＧＳＮ５６は、移動ターミナル１０がメッセージングセンターへ及びメッセージングセンターからメッセージを転送することも制御できる。
【００２９】
更に、ＳＧＳＮ５６をＧＰＲＳコアネットワーク５８及びＧＧＳＮ６０へ結合することにより、コンピューティングシステム５２及び／又はビデオサーバー５４のような装置は、インターネット５０、ＳＧＳＮ５６、及びＧＧＳＮ６０を経て、移動ターミナル１０に結合することができる。この点に関して、コンピューティングシステム５２及び／又はビデオサーバー５４のような装置は、ＳＧＳＮ５６、ＧＰＲＳコアネットワーク５８、及びＧＧＳＮ６０を横切って移動ターミナル１０と通信することができる。移動ターミナル１０及び他の装置（例えば、コンピューティングシステム５２、ビデオサーバー５４、等）をインターネット５０に直接的又は間接的に接続することにより、移動ターミナル１０は、例えば、ハイパーテキスト転送プロトコル（ＨＴＴＰ）に基づいて他の装置と及び互いに通信して、移動ターミナル１０の種々の機能を行うことができる。
【００３０】
考えられる各移動ネットワークの各要素を図示して説明するのではないが、移動ターミナル１０は、ＢＳ４４を通して多数の異なるネットワークの１つ以上に結合できることが明らかであろう。この点に関して、ネットワーク（１つ又は複数）は、多数の第１世代（１Ｇ）、第２世代（２Ｇ）、２．５Ｇ、第３世代（３Ｇ）、及び／又は将来の移動通信プロトコル、等の中の１つ以上に基づいて、通信をサポートすることができる。例えば、１つ以上のネットワークは、２Ｇワイヤレス通信プロトコルＩＳ−１３６（ＴＤＭＡ）、ＧＳＭ、及びＩＳ−９５（ＣＤＭＡ）に基づいて、通信をサポートすることができる。又、例えば、１つ以上のネットワークは、２．５Ｇワイヤレス通信プロトコルＧＰＲＳ、改善型データＧＳＭ環境（ＥＤＧＥ）、等に基づいて、通信をサポートすることができる。更に、例えば、１つ以上のネットワークは、３Ｇワイヤレス通信プロトコル、例えば、ワイドバンドコード分割多重アクセス（ＷＣＤＭＡ）無線アクセス技術を使用するユニバーサル移動電話システム（ＵＭＴＳ）ネットワークに基づいて、通信をサポートすることができる。又、ある狭帯域ＡＭＰＳ（ＮＡＭＰＳ）及びＴＡＣＳネットワーク（１つ又は複数）も、デュアルモード又はそれ以上のモードの移動ステーション（例えば、デジタル／アナログ、又はＴＤＭＡ／ＣＤＭＡ／アナログ電話）のように、本発明の実施形態から利益を得ることができる。
【００３１】
移動ターミナル１０は、更に、１つ以上のワイヤレスアクセスポイント（ＡＰ）６２へ結合することができる。ＡＰ６２は、例えば、高周波（ＲＦ）、ブルーツース（ＢＴ）、赤外線（ＩｒＤＡ）、又は次のものを含む、即ち、ＩＥＥＥ８０２．１１（例えば、８０２．１１ａ、８０２．１１ｂ、８０２．１１ｇ、８０２．１１ｎ、等）のようなワイヤレスＬＡＮ（ＷＬＡＮ）技術、ＩＥＥＥ８０２．１６のようなＷｉＭＡＸ技術、及び／又はＩＥＥＥ８０２．１５のような超ワイドバンド（ＵＷＢ）技術、等を含む、多数の異なるワイヤレスネットワーク技術のいずれかのような技術に基づいて、移動ターミナル１０と通信するように構成される。ＡＰ６２は、インターネット５０に結合することができる。ＭＳＣ４６と同様に、ＡＰ６２は、インターネット５０に直結することができる。しかしながら、一実施形態では、ＡＰ６２は、ＧＴＷ４８を経てインターネット５０に間接的に結合される。更に、一実施形態では、ＢＳ４４は、別のＡＰ６２と考えてもよい。明らかなように、移動ターミナル１０及びコンピューティングシステム５２、ビデオサーバー５４、及び／又は多数の他の装置のいずれかを、インターネット５０に直接的又は間接的に接続することにより、移動ターミナル１０は、互いに、又、コンピューティングシステム、ビデオサーバー、等と通信し、これにより、移動ターミナル１０の種々の機能、例えば、コンピューティングシステム５２及び／又はビデオサーバー５４へのデータ、コンテンツ、等の送信、及び／又はそこからのコンテンツ、データ、等の受信、を実行することができる。例えば、ビデオサーバー５４は、ビデオサービスに加入している１つ以上の移動ターミナル１０へビデオデータを供給する。このビデオデータは、Ｈ．２６４／ＡＶＣビデオコード化規格に基づいて圧縮することができる。ビデオサーバー５４は、オンラインビデオストアへのゲートウェイとして働くこともできるし、又は以前に記録されたビデオクリップを含むこともできる。ビデオサーバー５４は、例えば、第３世代プラットホーム（３ＧＰ）、ＡＶＩ（オーディオビデオインターリーブ）、Ｗｉｎｄｏｗｓ  Ｍｅｄｉａ（登録商標）、ＭＰＥＧ（動画エクスパートグループ、Ｑｕｉｃｋ  Ｔｉｍｅ（登録商標）、Ｒｅａｌ  Ｖｉｄｅｏ（登録商標）、Ｓｈｏｃｋｗａｖｅ（登録商標）（Ｆｌａｓｈ（登録商標））、等）を含む多数の異なるフォーマットで１つ以上のビデオシーケンスを供給することができる。ここに使用する「ビデオデータ」、「コンテンツ」、「情報」、及び同様の用語は、本発明の実施形態に基づいて、送信、受信及び／又は記憶することのできるデータを指すように交換可能に使用することができる。従って、このような用語の使用は、本発明の精神及び範囲を制限するものではない。
【００３２】
図４に示されていないが、インターネット５０を横切ってコンピューティングシステム５２に移動ターミナル１０を結合するのに加えて、又はそれに代わって、移動ターミナル１０及びコンピューティングシステム５２は、互いに結合され、そして、例えば、ＲＦ、ＢＴ、ＩｒＤＡ、或いは（ＬＡＮ、ＷＬＡＮ、ＷｉＭＡＸ及び／又はＵＷＢ技術を含む）多数の異なるワイヤライン又はワイヤレス通信技術のいずれかに基づいて通信することができる。それに加えて又はそれとは別に、１つ以上のコンピューティングシステム５２は、コンテンツを記憶することのできる除去可能なメモリを含むことができ、このコンテンツは、その後、移動ターミナル１０へ転送することができる。更に、移動ターミナル１０は、１つ以上の電子装置、例えば、プリンタ、デジタルプロジェクタ及び／又は他のマルチメディア捕獲、発生及び／又は記憶装置（例えば、他のターミナル）に結合することもできる。コンピューティングシステム５２と同様に、移動ターミナル１０は、例えば、ＲＦ、ＢＴ、ＩｒＤＡ、或いは（ＵＳＢ、ＬＡＮ、ＷＬＡＮ、ＷｉＭＡＸ及び／又はＵＷＢ技術を含む）多数の異なるワイヤライン又はワイヤレス通信技術のいずれかに基づいて、ポータブル電子装置と通信するように構成できる。
【００３３】
コード化効率の著しい低下を経験することなく運動推定動作の数を減少することによりエンコーディングの複雑さを減少するように高速インターモード判断アルゴリズムを実施できるエンコーダの要素が示された図５を参照して本発明の実施形態を説明する。図５のエンコーダ６８は、例えば、図３の移動ターミナル１０に使用することができる。しかしながら、図５のエンコーダは、種々の他の装置、移動及び固定の両方、に使用されてもよく、それ故、本発明は、図３の移動ターミナル１０のような装置への適用に限定されるものでないが、本発明の実施形態は、移動ターミナルへの適用について以下に詳細に説明する。以下の説明は、一例に過ぎず、これに限定されない。例えば、図５のエンコーダは、コンピューティングシステム５２、ビデオレコーダ、例えば、ＤＶＤプレーヤ、ＨＤ−ＤＶＤプレーヤ、デジタルビデオブロードキャスト（ＤＢＶ）ハンドヘルド装置、パーソナルデジタルアシスタント（ＰＤＡ）、デジタルテレビジョンセットトップボックス、ゲーム及び／又はメディアコンソール、等に使用することができる。更に、図５のエンコーダ６８は、移動ターミナル１０の装置、コンポーネント、エレメント又はビデオモジュール３６に使用することができる。エンコーダ６８は、複数のビデオフレームを有するビデオシーケンスをエンコードすることのできるハードウェア、ソフトウェア、又はハードウェアとソフトウェアの組合せで実施された装置又は手段でよい。ここに例示する実施形態では、エンコーダ６８は、移動ターミナル１０のメモリに記憶されてコントローラ２０により実行されるソフトウェアインストラクションで実施することができる。別の実施形態では、エンコーダ６８は、ビデオモジュール３６のメモリに記憶されてビデオモジュール３６の処理要素により実行されるソフトウェアインストラクションで実施されてもよい。又、図５は、エンコーダの構成の一例を示すが、多数の他の構成を使用して、本発明の実施形態を具現化できることにも注意されたい。
【００３４】
図５には、当業者に一般的に知られたように、到来するビデオシーケンスをエンコードすることのできるエンコーダ６８が示されている。図５に示すように、入力ビデオフレームＦn（ビデオサーバー５４のようなビデオソースから送信される）が、エンコーダ６８により受け取られる。この入力ビデオフレームＦnは、マクロブロックの単位で処理される。入力ビデオフレームＦnは、差のブロック７８の正の入力に供給され、そして差のブロック７８の出力は、変換ブロック８２へ送られ、入力ビデオフレームＦnに基づく変換係数のセットを発生することができる。変換係数のセットは、次いで、量子化ブロック８４へ送信され、このブロックは、各入力ビデオフレームを量子化して、量子化変換係数のセットを有する量子化フレームを発生する。ループ９２は、量子化フレームを逆量子化ブロック８８及び逆変換ブロック９０へ供給し、これらは、各々、量子化フレームの逆量子化、及び変換係数の逆変換を遂行する。逆変換ブロック９０から得られるフレーム出力は、加算ブロック８０へ送られ、このブロックは、フレームをフィルタ７６へ供給し、ブロッキング歪の作用を減少させる。フィルタされたフレームは、基準フレームとして働くことができ、基準フレームメモリ７４に記憶される。図５に示すように、基準フレームは、以前にエンコードされたフレームＦ’n-1でもよい。運動補償予想（ＭＣＰ）ブロック７２は、基準フレームメモリ７４に記憶された基準フレームに基づいて運動補償予想を遂行して、予想マクロブロックを発生し、これは、運動推定ブロック７０によって発生される運動ベクトルに基づいて運動補償される。この運動推定ブロック７０は、ビデオフレームＦnにおける最良一致のマクロブロックから運動ベクトルを決定する。運動補償予想ブロック７２は、この運動ベクトルに基づいて基準フレームにおける対応するマクロブロックをシフトし、予想マクロブロックを発生する。
【００３５】
Ｈ．２６４／ＡＶＣビデオコード化規格は、各マクロブロックをイントラ（ＩＮＴＲＡ）又はインター（ＩＮＴＥＲ）のいずれかのモードでエンコードできるようにする。換言すれば、Ｈ．２６４／ＡＶＣビデオコード化規格は、エンコーダがイントラ又はインターモードのいずれでエンコードすべきか選択できるようにする。インターモードのコード化を行うために、差のブロック７８は、セレクタ７１を経てＭＣＰブロック７２に結合された負の出力を有する。この点に関して、差のブロック７８は、現在ビデオフレームＦnにおけるマクロブロックの最良の一致から予想マクロブロックを減算し、残留又は差のマクロブロックＤnを発生する。差のマクロブロックは、変換ブロック８２及び量子化ブロック８４によって変換及び量子化されて、量子化変換係数のセットを与える。これらの係数は、エントロピーエンコードブロック８６によりエントロピーエンコードすることができる。エントロピーエンコードされた係数は、マクロブロックをデコードするのに必要な残留データ（例えば、マクロブロック予想モード、量子化ステップサイズ、マクロブロックが運動補償される仕方を指定する運動ベクトル情報、等）と一緒に、エンコードされたマクロブロックの圧縮されたビットストリームを形成する。エンコードされたマクロブロックは、送信及び／又は記憶のためにネットワークアブストラクションレイヤ（ＮＡＬ）へ通される。
【００３６】
イントラモードコード化を行うために、差のブロック７８の負の入力がイントラモードブロックに接続される（セレクタ７１を経て）イントラモードでは、以前にエンコードされて再構成された（しかし、フィルタ７６によりフィルタされていない）到来ビデオフレームＦnにおけるサンプルから予想マクロブロックが形成される。イントラモードで発生された予想ブロックは、現在到来するビデオフレームＦnにおけるマクロブロックの最良の一致から減算されて、残留又は差のマクロブロックＤ’nを発生する。この差のマクロブロックＤ’nは、変換ブロック８２及び量子化ブロック８４により変換及び量子化され、量子化変換係数のセットを与える。これらの係数は、エントロピーエンコードブロック８６によりエントロピーエンコードすることができる。エントロピーエンコードされた係数は、マクロブロックをデコードするのに必要な残留データと一緒に、エンコードされたマクロブロックの圧縮されたビットストリームを形成し、これは、送信及び／又は記憶のためにネットワークアブストラクションレイヤ（ＮＡＬ）へ通される。
【００３７】
当業者に明らかなように、Ｈ．２６４／ＡＶＣは、イントラコード化に対して２ブロックタイプ（サイズ）、即ち４ｘ４及び１６ｘ１６をサポートする。４ｘ４のイントラブロックは、９個の予想モードをサポートする。１６ｘ１６のイントラブロックは、４個の予想モードをサポートする。又、Ｈ．２６４／ＡＶＣがインターコード化モードにおいてＳＫＩＰモードをサポートすることも指摘されねばならない。Ｈ．２６４／ＡＶＣは、インターモードコード化において種々のブロックサイズ及び区画のツリー構造運動補償を使用する。上述したように、Ｈ．２６４／ＡＶＣは、インターコード化マクロブロックを、１６ｘ１６、１６ｘ８、８ｘ１６、及び８ｘ８のような区画及びサイズ範囲で細分化できるようにする。インターコード化マクロブロックは、ここでは、インターモード、例えば、ＩＮＴＥＲ＿１６ｘ１６、ＩＮＴＥＲ＿１６ｘ８、ＩＮＴＥＲ＿８ｘ１６、及びＩＮＴＥＲ＿８ｘ８モードと称され、この場合、ＩＮＴＥＲ＿１６ｘ１６モードは、１６ｘ１６ブロックサイズを有し、ＩＮＴＥＲ＿１６ｘ８モードは、１６ｘ８区画を有し、ＩＮＴＥＲ＿８ｘ１６モードは、８ｘ１６区画を有し、そしてＩＮＴＥＲ＿８ｘ８モードは、８ｘ８区画を有する。（例えば、図１を参照されたい。）更に、Ｈ．２６４／ＡＶＣは、８ｘ８、８ｘ４、４ｘ８及び４ｘ４といったブロックサイズの範囲のサブ区画を有するサブマクロブロックもサポートする。インターコード化サブマクロブロックは、ここでは、ＩＮＴＥＲ＿８ｘ８、ＩＮＴＥＲ＿８ｘ４、ＩＮＴＥＲ＿４ｘ８及びＩＮＴＥＲ＿４ｘ４サブモードのようなインターサブモードとも称される。（例えば、図１を参照されたい。）これらの区画及びサブ区画は、各マクロブロック内に非常に多数の考えられる組合せを生じさせる。背景の部分で説明したように、個別の運動ベクトルは、典型的に、マクロブロックの各区画又はサブ区画に対して送信され、そして運動推定は、典型的に、区画ごとに遂行される。この増加する数の運動推定動作は、従来のＨ．２６４／ＡＶＣエンコーダの複雑さを劇的に高める。
【００３８】
本発明の実施形態の高速インターモード判断アルゴリズムは、コード化効率を著しく低下せずに運動推定動作の数を減少することにより、従来のＨ．２６４エンコーダに関連した複雑さを著しく低減する。エンコーダ６８は、コスト関数を最大にし且つ圧縮効率を最大にするために特定マクロブロックのクオリティに基づいてマクロブロックを区画及びサブマクロブロック区画へと分割する仕方を決定することができる。コスト関数は、エンコーダ６８によるコスト比較であり、エンコーダ６８は、特定のマクロブロックをインターモードでエンコードすべきかイントラモードでエンコードすべきか判断する。最小のコスト関数をもつモードがエンコーダ６８により最良モードとして選択される。本発明のここに例示する実施形態によれば、コスト関数は、
Ｊ(ＭＯＤＥ)｜ＱＰ＝ＳＡＤ＋λMODE・Ｒ(ＭＯＤＥ)
によって与えられる。ここで、ＱＰは、量子化パラメータであり、ＳＡＤは、予想マクロブロックとオリジナルマクロブロックとの間の絶対差の和であり、Ｒ(ＭＯＤＥ)は、所与のモード（例えば、インター又はイントラ）に対して使用されるシンタックスビットの数であり、そしてλMODEは、歪とビット数との間の兼ね合いのバランスを取るためのラグランジェパラメータである。
【００３９】
図６は、本発明のここに例示する実施形態による運動補償予想モジュール９４のブロック図である。運動補償予想モジュール９４は、エンコーダ６８のコンポーネントである。運動補償予想モジュール９４は、図５の運動推定ブロック７０である運動推定装置９６を備えている。更に、運動補償予想モジュール９４は、図５の運動補償予想ブロック７２である運動補償予想装置９８を備えている。運動補償予想（ＭＣＰ）装置９８は、絶対差の和（ＳＡＤ）の分析器９１を含む。運動補償予想モジュール９４は、区画及びサブ区画を有する可変サイズマクロブロックに対して運動補償予想を遂行することのできるハードウェア、ソフトウェア、又はハードウェアとソフトウェアの組合せで実施される任意の装置又は手段でよい。運動補償予想モジュール９４は、コントローラ２０のような処理要素、又はビデオモジュール３６の要素であるコプロセッサの制御のもとで動作することができる。
【００４０】
ここに例示する実施形態では、運動補償予想モジュール９４は、フレームＦnのような現在ビデオフレームのセグメントに対応する可変サイズのマクロブロックを分析することができる。例えば、運動補償予想モジュール９４は、１つ以上の区画を有する１６ｘ１６サイズのマクロブロックを分析することができる。（例えば、図１のＩＮＴＥＲ＿１６ｘ８、ＩＮＴＥＲ＿８ｘ１６及びＩＮＴＥＲ＿８ｘ８モードを参照されたい。）現在ビデオフレームＦnの１６ｘ１６マクロブロック（ここでは、「オリジナルマクロブロック」と称される）に対応する運動ベクトルを、運動推定装置９６により１６ｘ１６マクロブロックから抽出することができる。運動ベクトルは、運動補償予想装置９８へ送信され、そしてこの運動補償予想装置９８は、この運動ベクトルを使用し、基準フレームメモリ７４のようなメモリに記憶される以前にエンコードされた基準フレーム（例えば、フレームＦ’n-1）において対応するマクロブロックをシフトさせることにより、予想マクロブロックを発生する。運動補償予想装置９８は、ＳＡＤ分析器９１を備え、これは、１６ｘ１６の予想マクロブロックの１つ以上の領域を分析することによりオリジナルマクロブロックと予想マクロブロックとの間の差（又はエラー）を決定する。特に、一実施形態のＳＡＤ分析器は、１６ｘ１６マクロブロックの８ｘ８ブロックを評価して、１６ｘ１６の予想マクロブロック内の４つの領域、即ち図７に示すＳＡＤ0、ＳＡＤ1、ＳＡＤ2及びＳＡＤ3の絶対差の和（ＳＡＤ）（或いはエラー、又は例えば、歪値）を決定する。ＳＡＤ分析器９１は、４つの領域（ＳＡＤ0、ＳＡＤ1、ＳＡＤ2及びＳＡＤ3）の各々を、Ｔｈｒｅ＿２のような所定のスレッシュホールドと比較する。４つの領域を評価することにより、ＳＡＤ分析器９１は、オリジナルマクロブロックと予想マクロブロックとの間の歪の場所及びエネルギーを分析することができる。ＳＡＤが、１６ｘ１６の予想マクロブロックの所与の領域に対して所定のスレッシュホールドＴｈｒｅ＿２より小さい場合には、ＳＡＤ分析器は、その所与の領域に対する予想結果が充分に正確であると決定し、そしてバイナリーＳＡＤマップの領域にバイナリービット０を指定する。（例えば、図８のバイナリーＳＡＤマップにおけるＳＡＤ1を参照されたい。）一方、１６ｘ１６の予想マクロブロックの所与の領域に対する予想結果が所定のスレッシュホールドＴｈｒｅ＿２を越えるとＳＡＤ分析器が決定したときには、ＳＡＤ分析器は、１６ｘ１６の予想マクロブロックの特定の領域に対する結果が希望のように正確でないと判断し、そしてバイナリーＳＡＤマップの領域にバイナリービット１を指定する。（例えば、図８のバイナリーＳＡＤマップにおけるＳＡＤ0を参照されたい。）
【００４１】
図８には、ＳＡＤ分析器により発生され、１０１０のバイナリー値を有するバイナリーＳＡＤマップの一例が示されている。図８に示すように、ＳＡＤ分析器は、領域ＳＡＤ0及びＳＡＤ2の予想結果が所定のスレッシュホールドＴｈｒｅ＿２を越えると決定し、そして１６ｘ１６の予想マクロブロックのこれら領域に対する予想結果が希望のように正確でないことを指示するバイナリービット１を各領域に指定する。又、ＳＡＤ分析器は、領域ＳＡＤ1及びＳＡＤ3の予想結果が所定のスレッシュホールドＴｈｒｅ＿２未満であると決定し、そして１６ｘ１６の予想マクロブロックのこれら領域に対する予想結果が充分に正確であることを指示するバイナリービット０をそれら領域に指定する。
【００４２】
ＳＡＤ分析器によって発生されるバイナリーＳＡＤマップの結果に基づいて、運動補償予想装置９８は、１６ｘ１６のマクロブロックのある領域を評価する必要があるかどうか決定する。背景の部分で上述したように、従来、運動ベクトルは、１６ｘ１６マクロブロックの各区画に対して抽出される。これは、必ずしも、本発明のここに例示する実施形態のケースではない。例示のために、現在ビデオフレームＦnに１６ｘ８区画（即ち、ＩＮＴＥＲ＿１６ｘ８モード；例えば、図１を参照）を有する１６ｘ１６ブロックサイズのマクロブロックのようなオリジナルのマクロブロックについて考える。運動推定装置９６は、最初に、現在ビデオフレームＦnの１６ｘ８区画（即ち、図１のＩＮＴＥＲ＿１６ｘ８モード）を有する１６ｘ１６マクロブロックの対応セグメントから運動ベクトルを抽出する。運動ベクトルは、１６ｘ１６マクロブロックが１６ｘ８区画を有していないかのように（例えば、１６ｘ１６マクロブロックがＩＮＴＥＲ＿１６ｘ１６モードに対応するかのように；例えば、図１を参照）、運動推定装置９６により最初に抽出される。換言すれば、運動ベクトルは、１６ｘ８区画に関わりなく、最初に抽出される。従って、ＩＮＴＥＲ＿１６ｘ８モードブロックの上部及び下部区画に対応する運動ベクトルは、運動推定装置９６によって最初に抽出されない。運動補償予想装置９８は、上述したように、基準フレームにおける一致するマクロブロックをシフトさせることにより、予想マクロブロックを発生する。
【００４３】
予想マクロブロックが発生されると、ＳＡＤ分析器は、１６ｘ１６の予想マクロブロックの各領域を評価し、そして上述したように、バイナリーＳＡＤマップを発生する。結果が各領域について充分正確であることをＳＡＤ分析器が決定した場合には、運動補償予想モジュール９４は、ＩＮＴＥＲ＿１６ｘ８モードブロックの上部及び下部区画の運動ベクトルを抽出する必要がないことを決定する。換言すれば、上部及び下部区画は評価されず、従って、上部及び下部区画について運動推定が行われない。例えば、領域ＳＡＤ0、ＳＡＤ1、ＳＡＤ2及びＳＡＤ3の予想結果が各々所定スレッシュホールドＴｈｒｅ＿２より低いとＳＡＤ分析器が決定する場合には、各領域にバイナリービット０が指定され、そしてＳＡＤ分析器により発生されるバイナリーＳＡＤマップは、００００のバイナリー値を有し、これは、各領域の予想結果が充分に正確であることを指示する。この点に関して、運動補償予想モジュール９４は、ＩＮＴＥＲ＿１６ｘ８モードブロックの上部及び下部区画に対して運動推定を行う必要がないことを決定し、そして１６ｘ１６モードブロック（即ち、ＩＮＴＥＲ＿１６ｘ１６モード；例えば、図１を参照）に対応する運動ベクトルを単に使用して、運動推定、運動補償予想を遂行すると共に、予想マクロブロックを発生する。従って、コード化効率の著しい低下を受けずに、エンコーダ６８における運動推定計算の数が減少される。
【００４４】
ＳＡＤ分析器が、（前記例のバイナリー値００００に代わって）バイナリー値１０１０をバイナリーＳＡＤマップに発生し、領域ＳＡＤ0及びＳＡＤ2の予想結果が所定スレッシュホールドＴｈｒｅ＿２を越えると共に、領域ＳＡＤ1及びＳＡＤ3の予想結果が所定スレッシュホールドＴｈｒｅ＿２未満であることを指示する場合には、ＳＡＤ分析器は、ＩＮＴＥＲ＿８ｘ１６モードブロックの左区画の予想結果が希望のように正確でなく、一方、右区画の予想結果が充分に正確であると決定する。従って、運動推定装置９６は、現在ビデオフレームＦnの、８ｘ１６区画（ＩＮＴＥＲ＿１６ｘ８モード）を有するオリジナルの１６ｘ１６マクロブロックから、第２の運動ベクトルを抽出する。この第２の運動ベクトルは、ＩＮＴＥＲ＿８ｘ１６モードブロックの左区画から抽出される。運動推定装置９６は、運動補償予想装置９８によって左区画において運動補償予想を遂行できるように、運動推定を実行する。しかしながら、バイナリーＳＡＤマップは、領域ＳＡＤ1及びＳＡＤ3の結果が充分に正確であることを指示するので、右区画からの運動ベクトルを抽出する必要はなく、従って、ＩＮＴＥＲ＿８ｘ１６モードブロックの右区画に対する運動推定及び運動補償を実行する必要がなく、これにより、エンコーダ６８における運動推定動作の数を減少する。その後、運動補償予想モジュール９４は、最良のインターモード（即ち、ＩＮＴＥＲ＿１６ｘ１６モード、及びこの例では、ＩＮＴＥＲ＿８ｘ１６モードの左区画の中で）と最良のイントラモードとの間の最良のコード化モードを選択することができる。一実施形態では、最良のコード化モードは、次の式に基づいてコスト関数を最小にするものである。
Ｊ(ＭＯＤＥ)｜ＱＰ＝ＳＡＤ＋λMODE・Ｒ(ＭＯＤＥ)
【００４５】
ＳＡＤ分析器が、バイナリー値０１０１を有するバイナリーＳＡＤマップを発生する別の例について考える。ＳＡＤ分析器は、領域ＳＡＤ0及びＳＡＤ2の予想結果が所定スレッシュホールドＴｈｒｅ＿２より低く、且つＩＮＴＥＲ＿８ｘ１６モードブロックの左区画の予想結果が充分に正確である一方、領域ＳＡＤ1及びＳＡＤ3の予想結果が所定スレッシュホールドＴｈｒｅ＿２より高く、ＩＮＴＥＲ＿８ｘ１６モードブロックの右区画の予想結果が希望のように正確でないことを指示していると決定する。従って、運動推定装置９６は、上述したように１６ｘ１６ＩＮＴＥＲ＿ｍｏｄｅに基づいて第１の運動ベクトルを抽出し、その後に、ＩＮＴＥＲ＿８ｘ１６モードブロックの右区画から別の運動ベクトル（即ち、第２の運動ベクトル）を抽出し、右区画に対する運動推定及び運動補償予想が行われるようにする。しかしながら、ＳＡＤ0及びＳＡＤ2の結果は充分に正確であるから、ＩＮＴＥＲ＿８ｘ１６モードブロックの左区画に対応する運動ベクトルは、抽出の必要がない。換言すれば、左区画は評価されない。その後、運動補償予想モジュール９４は、最良のインターモード（即ち、ＩＮＴＥＲ＿１６ｘ１６モード、及びこの例では、ＩＮＴＥＲ＿８ｘ１６モードの右区画の中で）と最良のイントラモードとの間の最良のコード化モードを選択することができる。上述したように、一実施形態の最良のコード化モードは、コスト関数を最小にするものである。
【００４６】
それに代わって、運動推定装置９６が、現在フレームＦnの１６ｘ８区画（即ち、ＩＮＴＥＲ＿１６ｘ８モード；例えば、図１を参照）を有するオリジナルの１６ｘ１６サイズのマクロブロックを評価すると仮定する。この点について、運動推定装置９６は、第１に、１６ｘ１６サイズのマクロブロックがＩＮＴＥＲ＿１６ｘ１６モードブロックであるかのように、即ちＩＮＴＥＲ＿１６ｘ８モードブロックの上部及び下部区画に関わりなく、運動ベクトルを抽出する。ＳＡＤ分析器が、バイナリー値００１１を有するバイナリーＳＡＤマップを発生する例について考える。この点については、ＳＡＤ分析器は、ＳＡＤ0及びＳＡＤ1が所定スレッシュホールドＴｈｒｅ＿２未満である一方、ＳＡＤ2及びＳＡＤ3が所定スレッシュホールドＴｈｒｅ＿２を越えると決定する。これは、ＳＡＤ0及びＳＡＤ1の結果が充分に正確である一方、ＳＡＤ2及びＳＡＤ3の結果が希望のように正確でないことを意味する。従って、運動推定装置は、下部区画に対応するＩＮＴＥＲ＿１６ｘ８モードブロックから第２の運動ベクトルを抽出し、そして下部区画において運動補償予想を実行できるように運動推定を実行する。しかしながら、ＳＡＤ0及びＳＡＤ1の結果は非常に正確であるから、ＩＮＴＥＲ＿１６ｘ８モードブロックの上部区画に対応する運動ベクトルは、抽出の必要がなく、従って、上部区画に対して運動推定及び運動補償予想を行う必要がない。
【００４７】
従って、エンコーダ６８における運動推定動作の数が減少される。その後、運動補償予想モジュール９４は、最良のインターモード（即ち、ＩＮＴＥＲ＿１６ｘ１６モード、及びこの例では、ＩＮＴＥＲ＿１６ｘ８モードの下部区画の中で）と最良のイントラモードとの間の最良のコード化モードを選択することができる。上述したように、最良のコード化モードは、コスト関数を最小にするものである。
【００４８】
運動推定装置９６が、現在フレームＦnの１６ｘ８区画（即ち、ＩＮＴＥＲ＿８ｘ１６モード；例えば、図１を参照）を有するオリジナルの１６ｘ１６サイズのマクロブロックを評価するときに、ＳＡＤ分析器がバイナリー値１１００のバイナリーＳＡＤマップを発生する例について考える。この点に関して、ＳＡＤ分析器は、ＳＡＤ0及びＳＡＤ1が所定スレッシュホールドＴｈｒｅ＿２を越える一方、ＳＡＤ2及びＳＡＤ3が所定スレッシュホールドＴｈｒｅ＿２未満であると決定する。これは、ＳＡＤ0及びＳＡＤ1の結果が希望のように正確でない一方、ＳＡＤ2及びＳＡＤ3の結果が充分に正確であることを意味する。従って、運動推定装置９６は、上部区画に対応するＩＮＴＥＲ＿１６ｘ８モードブロックから第２の運動ベクトルを抽出し、そして上部区画において運動補償予想を実行できるように運動推定を実行する。しかしながら、ＳＡＤ2及びＳＡＤ3の結果は充分に正確であるから、ＩＮＴＥＲ＿１６ｘ８モードブロックの下部区画に対応する運動ベクトルは、抽出の必要がなく、従って、下部区画に対して運動推定及び運動補償予想を行う必要がない。
【００４９】
この点に関して、運動推定動作の数が減少されるので、エンコーダ６８の複雑さが低減される。その結果、運動補償予想モジュール９４は、最良のインターモード（即ち、ＩＮＴＥＲ＿１６ｘ１６モード、及びこの例では、ＩＮＴＥＲ＿１６ｘ８モードの上部区画の中で）と最良のイントラモードとの間の最良のコード化モードを選択することができる。最良のコード化モードは、コスト関数を最小にするものである。
【００５０】
図９Ａ及び９Ｂは、本発明のここに例示する実施形態に基づいて高速インターモード判断アルゴリズムを発生する方法及びプログラム製品のフローチャートである。高速インターモード判断アルゴリズムは、コントローラ２０のような処理要素、又はビデオモジュール３６の要素であるコプロセッサの制御のもとで動作することのできる図５のエンコーダ６８によって実施できる。従って、このフローチャートは、コントローラ２０のような処理要素や、例えば、コプロセッサにより機能を遂行できる多数のステップを含む。これらステップは、ハードウェア及び／又はファームウェアのような種々の手段により実施できることを理解されたい。このような場合に、ハードウェア及び／又はファームウェアは、各ステップを単独で、及び／又は１つ以上のコンピュータプログラム製品の制御のもとで、実施することができる。この点に関して、このようなコンピュータプログラム製品（１つ又は複数）は、コンピュータ読み取り可能な記憶媒体において実施される一連のコンピュータインストラクションのような少なくとも１つのコンピュータ読み取り可能なプログラムコード部分を含むことができる。
【００５１】
処理要素は、到来するビデオフレーム（例えば、Ｆn）を受け取り、そしてこのビデオフレーム内でセグメント化される多数のモード（例えば、ＩＮＴＥＲ＿１６ｘ１６、ＩＮＴＥＲ＿１６ｘ８、ＩＮＴＥＲ＿８ｘ１６、及びＩＮＴＥＲ＿８ｘ８）を有する可変サイズの１６ｘ１６マクロブロックを分析することができる。処理要素は、ビデオフレームの１６ｘ１６マクロブロック（ここでは、「オリジナルのマクロブロック」と称される）から運動ベクトルを抽出し、そして運動推定及び運動補償予想を遂行して、予想マクロブロックを発生することができる。更に、処理要素は、予想マクロブロックとオリジナルマクロブロックとの間で絶対差の和（ＳＡＤ）を比較する。例えば、本発明のここに例示する実施形態の高速インターモード判断アルゴリズムを実施するために、処理要素は、ＳＫＩＰモード及びＺＥＲＯ＿ＭＯＴＩＯＮモードに対してＳＡＤを計算する。即ち、処理要素は、当業者に知られたように、ＳＡＤSKIP及びＳＡＤZERO_MOTを各々計算する。ブロック１００を参照されたい。ここに定義するように、ＺＥＲＯ＿ＭＯＴＩＯＮモードは、抽出された運動ベクトルが、オリジナルマクロブロックと予想マクロブロックとの間に運動が全くないか又は極めて少ないことを意味する（０、０）に等しいようなＩＮＴＥＲ＿１６ｘ１６モードを指す。Ｈ．２６４／ＡＶＣ規格に定義されたように、ＳＫＩＰモードでは、エンコーダ（例えば、エンコーダ６８）は、運動ベクトル及び残留ベクトルをデコーダへ送信せず、そしてデコーダは、予想運動ベクトルのみを使用して、マクロブロックを再構成する。予想運動ベクトルが（０、０）である場合には、ＳＫＩＰモードに対して発生される予想は、ＺＥＲＯ＿ＭＯＴＩＯＮモードに対するものと同じになる。（このため、Ｈ．２６４／ＡＶＣでは、マクロブロックにおける各運動ベクトルが予想的にコード化される。即ち、以前のマクロブロックであるが同じフレームに運動ベクトルを使用して運動ベクトルのための予想が形成される。この予想運動ベクトルは、（０、０）の値又は他の値を有することができる。ＳＫＩＰモードにおいてマクロブロックがコード化される場合には、当業者に明らかなように、デコーダへ送られる運動ベクトルはなく、そしてデコーダは、マクロブロックに対する運動ベクトルが予想運動ベクトルと同じであると仮定する。従って、予想運動ベクトルが（０、０）である場合には、ＺＥＲＯ＿ＭＯＴＩＯＮがＳＫＩＰモードに等しくなる。）処理要素が、ＳＡＤSKIPが所定スレッシュホールドＴｈｒｅ＿１未満であるか、又はＳＡＤZERO_MOTが所定スレッシュホールドＴｈｒｅ＿１未満であると決定した場合に、処理要素は、最小のコスト関数を与えるがイントラモードを更に評価しないというモードに基づいて、ＳＫＩＰモード又はＺＥＲＯ＿ＭＯＴＩＯＮモードの間を選択する。次いで、処理要素は、ｅａｒｌｙ＿ｅｘｉｔフラグを１（これは、ＳＫＩＰモード又はＺＥＲＯ＿ＭＯＴＩＯＮモードのいずれかが充分に正確な予想結果を与えることを意味する）に変化させる。ブロック１０２及び１２４を参照されたい。さもなければ、処理要素は、ｅａｒｌｙ＿ｅｘｉｔフラグを０（これは、ＳＫＩＰモード及びＺＥＲＯ＿ＭＯＴＩＯＮモ��ドが希望の精度で予想結果を与えないことを意味する）に変化させる。ブロック１０２を参照されたい。次いで、処理要素は、ＩＮＴＥＲ＿１６ｘ１６モードに対して運動推定（ＭＥ）を実行し、そして１６ｘ１６マクロブロック内の各８ｘ８ブロックに対するＳＡＤを計算し、１６ｘ１６マクロブロックの領域ＳＡＤ16x16,0、ＳＡＤ16x16,1、ＳＡＤ16x16,2、及びＳＡＤ16x16,3に対応する４つのＳＡＤ値を生じる。ブロック１０４を参照されたい。又、例えば、図７も参照されたい。
【００５２】
その後に、処理要素は、ＳＡＤTOTAL＝ＳＡＤ16x16,0＋ＳＡＤ16x16,1＋ＳＡＤ16x16,2＋ＳＡＤ16x16,3が所定スレッシュホールドＴｈｒｅ＿３より大きいかどうか決定し、もしそうであれば、処理要素は、ｅａｒｌｙ＿ｅｘｉｔフラグを０に変化させ、付加的なインターモードを評価せずに、最良のイントラモード（当業者に知られたように決定される）を決定する。ブロック１０６及び１２６を参照されたい。換言すれば、ＩＮＴＥＲ＿１６ｘ１６モードブロックに対して運動推定が実行された後に、ＳＡＤ16x16,0＋ＳＡＤ16x16,1＋ＳＡＤ16x16,2＋ＳＡＤ16x16,3の合計（ＳＡＤTOTAL）が所定スレッシュホールドＴｈｒｅ＿３より大きいときに、処理要素は、オリジナルマクロブロックと予想マクロブロックとの間のエラーが１６ｘ１６マクロブロックの区画に対して大きい（即ち、エラーが、１６ｘ１６モードマクロブロックの他のインターモード、例えば、ＩＮＴＥＲ＿１６ｘ８、ＩＮＴＥＲ＿８ｘ１６及びＩＮＴＥＲ＿８ｘ８モードに対して大きい）ことを決定する。従って、処理要素は、付加的なインターモードを決定するのに時間及びリソースを費やさないことを判断し、むしろ、最良のイントラモードを決定する。
【００５３】
ＳＡＤTOTALが所定スレッシュホールドＴｈｒｅ＿３を越えない場合に、処理要素は、４つのＳＡＤ領域、即ちＳＡＤ0、ＳＡＤ1、ＳＡＤ2及びＳＡＤ3に対応する４つのビットを含むバイナリーＳＡＤマップを発生する。ブロック１０８を参照されたい。各ビットは、領域のＳＡＤ値と、所定スレッシュホールドＴｈｒｅ＿２との間の比較の結果に対応する。ＳＡＤ値が所定スレッシュホールドＴｈｒｅ＿２未満である場合には、処理要素は、バイナリーＳＡＤマップにおける対応ＳＡＤ領域にバイナリービット０を指定する（例えば、図８のＳＡＤ1を参照）。一方、ＳＡＤ値が所定スレッシュホールドＴｈｒｅ＿２を越える場合には、処理要素は、バイナリーＳＡＤマップにおける対応ＳＡＤ領域にバイナリービット１を指定する（例えば、図８のＳＡＤ0を参照）。
【００５４】
処理要素により発生されるバイナリーＳＡＤマップに基づいて、処理要素は、以下のテーブル１に示された次のアクションのうちの１つを決定する。ブロック１１０を参照されたい。
2009542151.tif 000003
テーブル１
【００５５】
処理要素が、バイナリーＳＡＤマップにおける所与のバイナリー値（例えば、バイナリー値００００）に対してｄｏ＿ｍｅ＿１６ｘ８フラグが０であると決定した場合には、次いで、処理要素は、それに対応するバイナリー値に対してｄｏ＿ｍｅ＿８ｘ１６フラグが０であるかどうか判断し、もしそうであれば、処理要素は、運動推定が既に行われたインターモード、及び最良のイントラモードの中で、最良のインターモードを決定し、そしてＪ(ＭＯＤＥ)｜ＱＰ＝ＳＡＤ＋λMODE・Ｒ(ＭＯＤＥ)で与えられるようなコスト関数を最小にするモードに基づいて最良のインターモードと最良のイントラモードとの間で選択を行う。ブロック１１２、１１８及び１２２を参照されたい。さもなければ、処理要素は、ＳＡＤ16x16、0＋ＳＡＤ16x16,1が所定のスレッシュホールドＴｈｒｅ＿４より大きいかどうか決定し、もしそうであれば、処理要素は、１６ｘ８のマクロブロック区画の上部区画に対して運動推定を実行する（例えば、図１のＩＮＴＥＲ＿１６ｘ８モードを参照されたい）。さもなければ、処理要素は、（ブロック１０４で決定された）ＩＮＴＥＲ＿１６ｘ１６モードにおいて見つかった運動ベクトル（ＭＶ）を上部区画に対する運動ベクトルとして使用する。同様に、処理要素は、ＳＡＤ16x16、2＋ＳＡＤ16x16,3が所定スレッシュホールドＴｈｒｅ＿４を越えるかどうか決定し、もしそうであれば、処理要素は、１６ｘ８マクロブロック区画の下部区画に対して運動推定を遂行する。さもなければ、処理要素は、（ブロック１０４で決定された）ＩＮＴＥＲ＿１６ｘ１６モードにおいて見つかった運動ベクトルを下部区画に対する運動ベクトルとして使用する。ブロック１１４を参照されたい。
【００５６】
次いで、処理要素は、ＩＮＴＥＲ＿１６ｘ８モード（即ち、１６ｘ８のマクロブロック区画）に対する運動推定プロセスの後にＳＡＤ16x8を計算し、そしてＳＡＤ16x8が所定スレッシュホールドＴｈｒｅ＿１より低い場合に、処理要素は、ｄｏ＿ｍｅ＿８ｘ１６フラグを０に変化させる。ブロック１１６を参照されたい。ｄｏ＿ｍｅ＿８ｘ１６フラグが０である場合には、処理要素は、運動推定が既に行われたインターモード、及び最良のイントラモードの中で、最良のインターモードを決定し、そして最も低いコスト関数を有するモードに基づいて、最良のインターモードと最良のイントラモードとの間で選択を行う。ブロック１１８及び１２２を参照されたい。
【００５７】
その後、処理要素は、ＳＡＤ16x16、0＋ＳＡＤ16x16,2が所定スレッシュホールドＴｈｒｅ＿４より大きいかどうか判断し、もしそうであれば、処理要素は、８ｘ１６マクロブロック区画の左区画に対する運動推定を行う。例えば、図１のＩＮＴＥＲ＿８ｘ１６モードを参照されたい。さもなければ、処理要素は、（ブロック１０４で決定された）ＩＮＴＥＲ＿１６ｘ１６モードにおいて見つかった運動ベクトルを８ｘ１８マクロブロック区画の左区画に対する運動ベクトルとして使用する。同様に、処理要素は、ＳＡＤ16x16、1＋ＳＡＤ16x16,3が所定スレッシュホールドＴｈｒｅ＿４より大きいかどうか決定し、もしそうであれば、処理要素は、８ｘ１６マクロブロック区画の右区画に対する運動推定を行う。さもなければ、処理要素は、（ブロック１０４で決定された）ＩＮＴＥＲ＿１６ｘ１６モードにおいて見つかった運動ベクトルを右区画に対する運動ベクトルとして使用する。ブロック１２０を参照されたい。
【００５８】
その後、処理要素は、運動推定が既に行われたインターモード、及び最良のイントラモードの中で、最良のインターモードを決定し、そして最も低いコスト関数を有するモードに基づいて最良のインターモードと最良のイントラモードとの間で選択を行う。ブロック１２２を参照されたい。
【００５９】
本発明のここに例示する実施形態では、所定スレッシュホールドＴｈｒｅ＿１、Ｔｈｒｅ＿２、Ｔｈｒｅ＿３、及びＴｈｒｅ＿４は、断片的な一次関数を伴う量子化パラメータ（ＱＰ）に依存する。ＱＰに対する所定のスレッシュホールド値（Ｔｈｒｅ＿１、Ｔｈｒｅ＿２、Ｔｈｒｅ＿３、及びＴｈｒｅ＿４）の依存性は、以下の式で示すことができる。Ｔｈ＿ｕｎｉｔ（ＱＰ）は、量子化パラメータに基づいてスレッシュホールドを適応させるのに使用される。パラメータｓｋｉｐＭｕｌｔｉｐｌｅは、予め定義された定数であり、ＳＫＩＰ及びＺＥＲＯ＿ＭＯＴＩＯＮモードに対するｅａｒｌｙ＿ｅｘｉｔスレッシュホールドを決定するのに使用される。パラメータｓａｄＭｕｌｔｉｐｌｅ１及びｓａｄＭｕｌｔｉｐｌｅ２は、予め定義された定数であり、ここに例示する実施形態では、上述したように使用される。パラメータｅｘｉｔＴｏＩｎｔｒａＴｈは、予め定義された定数であり、イントラモードへ早期に退出すべきかどうか判断するのに使用される。
2009542151.tif 000004
【００６０】
図１０は、本発明のここに例示するエンコーダにより達成される平均的複雑さ低減を表すグラフである。図１０を参照すれば、ｐｒｏｆ３は、本発明のここに例示する実施形態のエンコーダ（例えば、エンコーダ６８）に対応し、一方、ｐｒｏｆ２は、従来のＨ．２６４エンコーダに対応する。図１０に示すように、上述した高速インターモード判断アルゴリズムを使用する本発明のエンコーダに対する運動推定動作の数は、所与のビデオシーケンス（即ち、１５フレーム／秒において１７６ｘ１４４の解像度でＱＣＩＦにおいてエンコードされたフットボールに関するビデオシーケンス）について、従来のＨ．２６４エンコーダが４７１であるのに対して、２７０であった。図示されたように、本発明のここに例示する実施形態のエンコーダは、所与のビットレートにおいて、従来のＨ．２６４エンコーダより低いピーク信号対雑音比（ＰＳＮＲ）も達成する。図１１を参照すれば、本発明のここに例示するエンコーダにより達成される平均的複雑さ低減を表すグラフが、ビットレート・対・フレーム当り秒数（即ち、秒／フレーム）に関して示されている。図１１に関して、ｐｒｏｆ３は、本発明のここに例示する実施形態によるエンコーダに対応し、一方、ｐｒｏｆ２は、従来のＨ．２６４エンコーダに対応する。図１１に示すように、本発明のここに例示する実施形態のエンコーダは、所与のビットレートにおいて、従来のＨ．２６４エンコーダより高速度でビデオフレームをエンコードする。
【００６１】
図１２には、フレームの複雑さ（即ち、ビデオフレームのエンコーディングの複雑さ）に関するグラフが示されている。ここで使用するフレームの複雑さとは、ペンティウムベースのパーソナルコンピュータ（ＰＣ）において１フレームをエンコードするのに使用される時間（ミリ秒で測定された）である。図１２において、ｐｒｏｆ３は、本発明のここに例示する実施形態によるエンコーダに対応し、一方、ｐｒｏｆ２は、従来のＨ．２６４エンコーダに対応する。図１２に示すように、所与のビデオフレームに対して、本発明のここに例示する実施形態によるエンコーダは、従来のＨ．２６４エンコーダに対して１８．０６％の最大複雑さ低減を達成する。
【００６２】
図９Ａ及び９Ｂに示されたフローチャートの各ブロック又はステップ、並びにフローチャートのブロックの組合せは、１つ以上のコンピュータプログラムインストラクションを含むハードウェア、ファームウェア、及び／又はソフトウェアのような種々の手段により実施できることを理解されたい。例えば、上述した１つ以上の手順は、コンピュータプログラムインストラクションによって実施されてもよい。この点に関して、上述した手順を実施するコンピュータプログラムインストラクションは、移動ターミナルのメモリ装置によって記憶され、移動ターミナルの内蔵プロセッサによって実行されてもよい。明らかなように、このようなコンピュータプログラムインストラクションは、コンピュータ又は他のプログラム可能な装置（即ち、ハードウェア）にロードされてマシンを形成し、コンピュータ又は他のプログラム可能な装置で実行されるインストラクションが、フローチャートのブロック又はステップで指定された機能を実施するための手段を生成することができる。又、これらのコンピュータプログラムインストラクションは、コンピュータ読み取り可能なメモリに記憶されて、特定の仕方で機能するようにコンピュータ又は他のプログラム可能な装置に指令し、コンピュータ読み取り可能なメモリに記憶されたインストラクションが、フローチャートのブロック又はステップで指定された機能を実施するインストラクション手段を含む製造物品を形成することができる。又、コンピュータプログラムインストラクションは、コンピュータ又は他のプログラム可能な装置にロードされて、コンピュータ又は他のプログラム可能な装置において一連の動作ステップを遂行させ、コンピュータ又は他のプログラム可能な装置で実行されるインストラクションが、フローチャートのブロック又はステップで指定された機能を実施するためのステップを与えるように、コンピュータ実施プロセスを生成することもできる。
【００６３】
従って、フローチャートのブロック又はステップは、指定の機能を遂行するための手段の組合せ、指定の機能を遂行するためのステップの組合せ、及び指定の機能を遂行するためのプログラムインストラクション機能をサポートする。又、フローチャートの１つ以上のブロック又はステップ、並びにフローチャートのブロック又はステップの組合せは、指定の機能又はステップを遂行する特殊目的のハードウェアベースのコンピュータシステム、或いは特殊目的にハードウェア及びコンピュータインストラクションの組合せによって実施できることも理解されたい。
【００６４】
上述した機能は、多数の仕方で実行できる。例えば、上述した機能の各々を実行するための適当な手段を使用して、本発明を実施することができる。一実施形態では、本発明の要素の全部又は一部分が、一般的に、コンピュータプログラム製品の制御のもとで動作する。本発明の方法を遂行するためのコンピュータプログラム製品は、不揮発性記憶媒体のようなコンピュータ読み取り可能な記憶媒体、及びコンピュータ読み取り可能な記憶媒体において実施される一連のコンピュータインストラクションのようなコンピュータ読み取り可能なコード部分を含む。
【００６５】
前記説明及び添付図面に表わされた教示の利益を得る、本発明に係る当業者であれば、ここに述べる本発明の多数の変更及び他の実施形態が明らかであろう。それ故、本発明は、ここに開示した特定の実施形態に限定されず、特許請求の範囲内で他の実施形態が包含されることを理解されたい。又、特定の用語を使用したが、それらは、一般的に且つ説明上使用したもので、限定を目的としたものではない。
【００６６】
例えば、本発明の高速インターモード判断アルゴリズムは、１６ｘ８及び８ｘ１６区画を有するマクロブロックを参照して説明したが、高速インターモード判断アルゴリズムは、８ｘ８マクロブロック区画のような小さな区画へも容易に拡張できることを理解されたい。更に、本発明の実施形態の高速インターモード判断アルゴリズムは、本発明の精神及び範囲から逸脱せずに、サブマクロブロック（例えば、８ｘ８ブロックサイズのサブマクロブロック）、並びに８ｘ４、４ｘ８及び４ｘ４のようなサブ区画へも拡張することができる。更に、本発明の実施形態の高速インターモード判断アルゴリズムは、Ｈ．２６４／ＡＶＣビデオコード化規格に関して以上に説明したが、この高速インターモード判断アルゴリズムは、可変サイズのブロックサイズ運動推定をサポートするビデオコード化規格にも適用できることを理解されたい。
【図面の簡単な説明】
【００６７】
【図１】Ｈ．２６４／ＡＶＣビデオコード化規格でサポートされたインターモードを例示する図である。
【図２】インターモード１６ｘ８及び８ｘ１６がディスエイブルされるときのコード化効率の低下を表すグラフである。
【図３】本発明の実施形態による移動ターミナルの概略ブロック図である。
【図４】本発明の実施形態によるワイヤレス通信システムの概略ブロック図である。
【図５】本発明の実施形態によるエンコーダの概略ブロック図である。
【図６】本発明の実施形態による運動補償予想モジュールの概略ブロック図である。
【図７】１６ｘ１６マクロブロックにおける８ｘ８ブロックのナンバリングを示す図である。
【図８】本発明の実施形態によるバイナリー絶対差の和のマップを示す図である。
【図９Ａ】本発明の実施形態により高速インターモード判断アルゴリズムを発生する方法の種々のステップを示すフローチャートである。
【図９Ｂ】本発明の実施形態により高速インターモード判断アルゴリズムを発生する方法の種々のステップを示すフローチャートである。
【図１０】本発明の実施形態によるエンコーダの一実施形態によって得られるレート歪性能及び平均的複雑さ低減を、従来のエンコーダに対して示すグラフである。
【図１１】本発明のエンコーダの複雑さの低減及びコード化効率を、従来のエンコーダに対して示すグラフである。
【図１２】本発明のエンコーダの実施形態によるフレームのエンコーディングの複雑さを、従来のエンコーダに対して示すグラフである。
【図１】
2009542151.tif 000005
【図２】
2009542151.tif 000006
【図３】
2009542151.tif 000007
【図４】
2009542151.tif 000008
【図５】
2009542151.tif 000009
【図６】
2009542151.tif 000010
【図７】
2009542151.tif 000011
【図８】
2009542151.tif 000012
【図９Ａ】
2009542151.tif 000013
【図９Ｂ】
2009542151.tif 000014
【図１０】
2009542151.tif 000015
【図１１】
2009542151.tif 000016
【図１２】
2009542151.tif 000017
【国際調査報告】
2009542151.tif 000018
2009542151.tif 000019
2009542151.tif 000020
2009542151.tif 000021