(57)【要約】      （修正有）【課題】推定されたコーディングコストを用いたコーディングモード選択技法を提供する。【解決手段】高い圧縮効率を提供するため、符号化デバイスは、高い効率を持って画素ブロックのデータをコーディングする画素ブロックコーディングモードを選択することを試みる。このために、前記符号化デバイスは、可能なモードのうちの少なくとも一部のモードに関するコーディングコストの推定値に基づいてコーディングモード選択を行う。前記符号化デバイスは、前記ブロックを実際にコーディングせずに前記異なるモードに関する前記コーディングコストを推定する。一定の側面においては、前記符号化モジュールデバイスは、各モードに関する前記ブロックのデータを量子化せずに前記モードに関する前記コーディングコストを推定する。この方法により、前記コーディングコスト推定技法は、有効なモード選択を行うために必要な計算集約型の計算量を低減させる。【選択図】図２
2014003648.tif 000002
【特許請求の範囲】
【請求項１】
デジタル映像データを処理するための方法であって、
量子化されたときにゼロでないままである画素ブロックの残差データに関する１つ以上の変換係数を識別することと、
少なくとも前記識別された変換係数に基づいて前記残差データのコーディングと関連づけられたビット数を推定することと、
前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定すること、とを備える、方法。
【請求項２】
前記変換係数を識別することは、前記変換係数の各々を複数のしきい値のうちの対応する１つと比較して量子化されたときにゼロでないままである前記変換係数を識別することを備え、前記複数のしきい値の各々は、量子化パラメータ（ＱＰ）の関数として計算される請求項１に記載の方法。
【請求項３】
前記変換係数の各々を複数のしきい値のうちの対応する１つと比較して量子化されたときにゼロでないままである前記変換係数を識別することは、対応するしきい値よりも小さい前記変換係数を、量子化されたときにゼロでないままである変換係数として識別することを備える請求項２に記載の方法。
【請求項４】
複数の組のしきい値を予め計算することであって、前記しきい値の組の各々は、前記ＱＰの異なる値に対応することと、
前記画素ブロックを符号化するために用いられる前記ＱＰの前記値に基づいて前記複数のしきい値の組のうちの１つを選択すること、とをさらに備える請求項２に記載の方法。
【請求項５】
前記残差データをコーディングすることと関連づけられた前記ビット数を推定することは、
量子化されたときにゼロでないままであるとして識別された前記変換係数の数を決定することと、
量子化されたときにゼロでないままであるとして識別された前記変換係数のうちの少なくとも１つの絶対値を合計することと、
ゼロでない変換係数の少なくとも前記決定された数及び前記少なくとも１つのゼロでない変換係数の前記絶対値の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定すること、とを備える請求項１に記載の方法。
【請求項６】
前記残差データのコーディングと関連づけられた前記ビット数を推定することは、少なくとも２つのブロックモードの各々において前記残差データをコーディングするために要求されるビット数を推定することを備え、前記コーディングコストを推定することは、前記少なくとも２つのブロックモードの各々において、前記ブロックモードのうちの前記各々の１つにおける少なくとも前記推定されたビット数に基づいて前記コーディングコストを推定することを備え、前記モードの各々に関して少なくとも前記推定されたコーディングコストに基づいて前記ブロックモードのうちの１つを選択することをさらに備える請求項１に記載の方法。
【請求項７】
前記モードの各々に関して、前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数を用いて前記画素ブロックをコーディングするための総コーディングコストを推定することと、
前記複数のモードのうちで最低の推定された総コーディングコストを有するモードを選択することと、
前記選択されたモードを適用して前記画素ブロックをコーディングすること、とをさらに備える請求項６に記載の方法。
【請求項８】
前記総コーディングコストを推定することは、
前記画素ブロックに関する歪みメトリックを計算することと、
前記画素ブロックの非残差データのコーディングと関連づけられたビット数を計算することと、
少なくとも前記歪みメトリック、前記非残差データのコーディングと関連づけられた前記ビット数、及び前記残差データのコーディングと関連づけられた前記ビット数に基づいて前記画素ブロックをコーディングするための前記総コーディングコストを推定すること、とを備える請求項７に記載の方法。
【請求項９】
前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数に基づいてコーディングコーディングを選択することと、
前記コーディングモードを選択後に前記残差データに関する前記変換係数を量子化することと、
前記残差データに関する前記量子化された変換係数を符号化することと、
前記残差データに関する前記符号化された係数を送信すること、とをさらに備える請求項１に記載の方法。
【請求項１０】
前記変換係数の行列を生成することであって、前記変換係数行列の行数は、前記ブロック内における画素の行数と等しく、前記変換係数行列の列数は、前記ブロック内における画素の列数と等しいことと、
前記変換係数行列をしきい値行列と比較することであって、前記しきい値行列は、前記変換係数行列の次元と同じ次元を有し、前記比較は、１及びゼロの行列が得られ、前記ゼロは、量子化後にゼロになる前記変換係数行列内の位置を表し、前記１は、量子化後にゼロでないままである前記変換係数行列内の位置を表すことと、
前記１及びゼロの行列内における１の数を合計して量子化時にゼロでないままであるとして識別された前記変換係数の数を計算することと、
前記１及びゼロの行列内の前記１の位置に対応する前記変換係数行列内の前記変換係数のうちの少なくとも１つの絶対値を合計することと、
少なくとも前記ゼロでない変換係数の数及び前記少なくとも１つのゼロでない変換係数の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定すること、とをさらに備える請求項１に記載の方法。
【請求項１１】
デジタル映像データを処理するための装置であって、
画素ブロックの残差データに関する変換係数を生成する変換モジュールと、
量子化されたときにゼロでないままである前記変換係数のうちの１つ以上を識別し及び少なくとも前記識別された変換係数に基づいて前記残差データのコーディングと関連づけられたビット数を推定するビット推定モジュールと、
前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定する制御モジュールと、を備える、装置。
【請求項１２】
前記ビット推定モジュールは、前記変換係数の各々を複数のしきい値のうちの対応する１つと比較して量子化されたときにゼロでないままである変換係数を識別し、前記複数のしきい値の各々は、量子化パラメータ（ＱＰ）の関数として計算される請求項１１に記載の装置。
【請求項１３】
前記ビット推定モジュールは、対応するしきい値よりも小さい前記変換係数を、量子化されたときにゼロでないままである変換係数として識別する請求項１２に記載の装置。
【請求項１４】
前記ビット推定モジュールは、複数の組のしきい値を予め計算し、前記しきい値の組の各々は、前記ＱＰの異なる値に対応し、前記しきい値の組の各々は、前記ＱＰの異なる値に対応し、前記画素ブロックを符号化するために用いられる前記ＱＰの前記値に基づいて前記複数のしきい値の組のうちの１つを選択する請求項１２に記載の装置。
【請求項１５】
前記ビット推定モジュールは、量子化されたときにゼロでないままであるとして識別された前記変換係数の数を決定し、量子化されたときにゼロでないままであるとして識別された前記変換係数のうちの少なくとも１つの絶対値を合計し及びゼロでない変換係数の少なくとも前記決定された数及び前記少なくとも１つのゼロでない変換係数の前記絶対値の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定する請求項１１に記載の装置。
【請求項１６】
前記ビット推定モジュールは、少なくとも２つのブロックモードの各々における前記残差データのコーディングと関連づけられた前記ビット数を推定し、
前記制御モジュールは、前記少なくとも２つのブロックモードのうちの各々の１つにおける少なくとも前記推定されたビット数に基づいて前記ブロックの各々に関するコーディングコストを推定し、及び前記モードの各々に関して少なくとも前記推定されたコーディングコストに基づいて前記ブロックモードのうちの１つを選択する請求項１１に記載の装置。
【請求項１７】
前記制御モジュールは、前記モードの各々に関して、前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数を用いて前記画素ブロックをコーディングするための総コーディングコストを推定し、前記複数のモードのうちで最低の推定された総コーディングコストを有するモードを選択し、及び前記選択されたモードを適用して前記画素ブロックをコーディングする請求項１６に記載の装置。
【請求項１８】
前記制御モジュールは、前記画素ブロックに関する歪みメトリックを計算し、前記画素ブロックの非残差データのコーディングと関連づけられたビット数を計算し及び少なくとも前記歪みメトリック、前記非残差データのコーディングと関連づけられたビット数及び前記残差データのコーディングと関連づけられた前記ビット数に基づいて前記画素ブロックをコーディングするための前記総コーディングコストを推定する請求項１７に記載の装置。
【請求項１９】
前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいてコーディングモードを選択する制御モジュールと、
前記コーディングモードの選択後に前記残差データに関する前記変換係数を量子化する量子化モジュールと、
前記残差データに関する前記量子化された変換係数を符号化するエントロピー符号化モジュールと、
前記残差データに関する前記符号化された係数を送信する送信機と、をさらに備える請求項１１に記載の装置。
【請求項２０】
前記変換モジュールは、前記変換係数の行列を生成し、前記変換係数行列の行数は、前記ブロック内における画素の行数と等しく、前記変換係数行列の列数は、前記ブロック内における画素の列数と等しく、
前記ビット推定モジュールは、前記変換係数行列をしきい値行列と比較し、前記しきい値行列は、前記変換係数行列の次元と同じ次元を有し、前記比較は、１及びゼロの行列が得られ、前記ゼロは、量子化後にゼロになる前記変換係数行列内の位置を表し、前記１は、量子化後にゼロでないままである前記変換係数行列内の位置を表し、
前記ビット推定モジュールは、前記１及びゼロの行列内における１の数を合計して量子化されたときにゼロでないままであるとして識別された前記変換係数の数を計算し、前記１及びゼロの行列内の前記１の位置に対応する前記変換係数行列内の前記変換係数のうちの少なくとも１つの絶対値を合計し、及び少なくとも前記ゼロでない変換係数の数及び前記少なくとも１つのゼロでない変換係数の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定する請求項１１に記載の装置。
【請求項２１】
デジタル映像データを処理するための装置であって、
量子化されたときにゼロでないままである画素ブロックの残差データに関する１つ以上の変換係数を識別するための手段と、
少なくとも前記識別された変換係数に基づいて前記残差データのコーディングと関連づけられたビット数を推定するための手段と、
前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定するための手段と、を備える、装置。
【請求項２２】
前記識別する手段は、前記変換係数の各々を複数のしきい値のうちの対応する１つと比較して量子化されたときにゼロでないままである変換係数を識別し、前記複数のしきい値の各々は、量子化パラメータ（ＱＰ）の関数として計算される請求項２１に記載の装置。
【請求項２３】
前記識別する手段は、対応するしきい値よりも小さい前記変換係数を、量子化されたときにゼロでないままである変換係数として識別する請求項２２に記載の装置。
【請求項２４】
複数の組のしきい値を予め計算するための手段であって、前記しきい値の組の各々は、前記ＱＰの異なる値に対応する手段と、
前記画素ブロックを符号化するために用いられる前記ＱＰの前記値に基づいて前記複数のしきい値の組のうちの１つを選択するための手段と、をさらに備える請求項２２に記載の装置。
【請求項２５】
前記推定する手段は、量子化されたときにゼロでないままであるとして識別された前記変換係数の数を決定し、量子化されたときにゼロでないままであるとして識別された前記変換係数のうちの少なくとも１つの絶対値を合計し、及びゼロでない変換係数の少なくとも前記決定された数及び前記少なくとも１つのゼロでない変換係数の前記絶対値の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定する請求項２１に記載の装置。
【請求項２６】
前記ビット推定手段は、少なくとも２つのブロックモードの各々における前記残差データのコーディングと関連づけられたビット数を推定し、及び前記コーディングコスト推定手段は、前記少なくとも２つのブロックモードのうちの各々の１つにおける少なくとも前記推定されたビット数に基づいて前記ブロックモードの各々に関するコーディングコストを推定し、及び前記ブロックモードの各々に関して少なくとも前記推定されたビット数に基づいて前記ブロックモードのうちの１つを選択するための手段をさらに備える請求項２１に記載の装置。
【請求項２７】
前記モードの各々に関して、前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数を用いて前記画素ブロックをコーディングするための総コーディングコストを推定するための手段をさらに備え、前記選択する手段は、前記複数のモードのうちで最低の推定された総コーディングコストを有するモードを選択する請求項２６に記載の装置。
【請求項２８】
前記コーディングコスト推定手段は、前記画素ブロックに関する歪みメトリックを計算し、前記画素ブロックの非残差データのコーディングと関連づけられたビット数を計算し、及び少なくとも前記歪みメトリック、前記非残差データのコーディングと関連づけられた前記ビット数及び前記残差データのコーディングと関連づけられた前記ビット数に基づいて前記画素ブロックをコーディングするための前記総コーディングコストを推定する請求項２７に記載の装置。
【請求項２９】
前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数に基づいてコーディングモードを選択するための手段と、
前記コーディングモードを選択後に前記残差データに関する前記変換係数を量子化するための手段と、
前記残差データに関する前記量子化された変換係数を符号化するための手段と、
前記残差データに関する前記符号化された係数を送信するための手段と、をさらに備える請求項２１に記載の装置。
【請求項３０】
前記変換係数の行列を生成するための手段をさらに備え、前記変換係数行列の行数は、前記ブロック内における画素の行数と等しく、前記変換係数行列の列数は、前記ブロック内における画素の列数と等しく、
前記識別する手段は、前記変換係数行列をしきい値行列と比較し、前記しきい値行列は、前記変換係数行列の次元と同じ次元を有し、前記比較は、１及びゼロの行列が得られ、前記ゼロは、量子化後にゼロになる前記変換係数行列内の位置を表し、前記１は、量子化後にゼロでないままである前記変換係数行列内の位置を表し、
前記推定する手段は、前記１及びゼロの行列内における１の数を合計して量子化されたときにゼロでないままであるとして識別された前記変換係数の数を計算し、前記１及びゼロの行列内の前記１の位置に対応する前記変換係数行列内の前記変換係数のうちの少なくとも１つの絶対値を合計し、及び少なくとも前記ゼロでない変換係数の数及び前記少なくとも１つのゼロでない変換係数の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定する請求項２１に記載の装置。
【請求項３１】
命令が格納されているコンピュータによって読み取り可能な媒体を備える、デジタル映像データを処理するためのコンピュータプログラム製品であって、前記命令は、
量子化されたときにゼロでないままである画素ブロックの残差データに関する１つ以上の変換係数を識別するための符号と、
少なくとも前記識別された変換係数に基づいて前記残差データのコーディングと関連づけられたビット数を推定するための符号と、
前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定するための符号と、を備える、コンピュータプログラム製品。
【請求項３２】
前記変換係数を識別するための符号は、前記変換係数の各々を複数のしきい値のうちの対応する１つと比較して量子化されたときにゼロでないままである変換係数を識別し、前記複数のしきい値の各々は、量子化パラメータ（ＱＰ）の関数として計算される請求項３１に記載のコンピュータプログラム製品。
【請求項３３】
前記変換係数の各々を複数のしきい値のうちの対応する１つと比較して量子化されたときにゼロでないままである変換係数を識別するための符号は、対応するしきい値よりも小さい前記変換係数を、量子化されたときにゼロでないままである変換係数として識別するための符号を備える請求項３２に記載のコンピュータプログラム製品。
【請求項３４】
複数の組のしきい値を予め計算するための符号であって、前記しきい値の組の各々は、前記ＱＰの異なる値に対応する符号と、
前記画素ブロックを符号化するために用いられる前記ＱＰの前記値に基づいて前記複数のしきい値の組のうちの１つを選択するための符号と、をさらに備える請求項３２に記載のコンピュータプログラム製品。
【請求項３５】
前記残差データのコーディングと関連づけられた前記ビット数を推定するための符号は、
量子化されたときにゼロでないままであるとして識別された前記変換係数の数を決定するための符号と、
量子化されたときにゼロでないままであるとして識別された前記変換係数のうちの少なくとも１つの絶対値を合計するための符号と、
ゼロでない変換係数の少なくとも前記決定された数及び前記少なくとも１つのゼロでない変換係数の前記絶対値の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定するための符号と、を備える請求項３１に記載のコンピュータプログラム製品。
【請求項３６】
前記残差データのコーディングと関連づけられた前記ビット数を推定するための符号は、少なくとも２つのブロックモードのうちの各々における前記残差データのコーディングと関連づけられたビット数を推定するための符号を備え、及び前記コーディングコストを推定するための符号は、前記ブロックモードのうちの各々の１つにおける少なくとも前記推定されたビット数に基づいて前記少なくとも２つのブロックノードの各々に関する前記コーディングコストを推定するための符号を備え、及び前記ブロックモードの各々に関して少なくとも前記推定されたビット数に基づいて前記ブロックモードのうちの１つを選択するための符号をさらに備える請求項３１に記載のコンピュータプログラム製品。
【請求項３７】
前記モードの各々に関して、前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数を用いて前記画素ブロックをコーディングするための総コーディングコストを推定するための符号と、
前記複数のモードのうちで最低の推定された総コーディングコストを有するモードを選択するための符号と、
前記選択されたモードを適用して前記画素ブロックをコーディングするための符号と、をさらに備える請求項３６に記載のコンピュータプログラム製品。
【請求項３８】
前記総コーディングコストを推定するための符号は、  
前記画素ブロックに関する歪みメトリックを計算するための符号と、
前記画素ブロックの非残差データのコーディングと関連づけられたビット数を計算するための符号と、
少なくとも前記歪みメトリック、前記非残差データのコーディングと関連づけられた前記ビット数及び前記残差データのコーディングと関連づけられた前記ビット数に基づいて前記画素ブロックをコーディングするための前記総コーディングコストを推定するための符号と、を備える請求項３７に記載のコンピュータプログラム製品。
【請求項３９】
前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数に基づいてコーディングモードを選択するための符号と、
前記コーディングモードを選択後に前記残差データに関する前記変換係数を量子化するための符号と、
前記残差データに関する前記量子化された変換係数を符号化するための符号と、
前記残差データに関する前記符号化された係数を送信するための符号と、をさらに備える請求項３１に記載のコンピュータプログラム製品。
【請求項４０】
前記変換係数の行列を生成するための符号であって、前記変換係数行列の行数は、前記ブロック内における画素の行数と等しく、前記変換係数行列の列数は、前記ブロック内における画素の列数と等しい符号と、
前記変換係数行列をしきい値行列と比較するための符号であって、前記しきい値行列は、前記変換係数行列の次元と同じ次元を有し、前記比較は、１及びゼロの行列が得られ、前記ゼロは、量子化後にゼロになる前記変換係数行列内の位置を表し、前記１は、量子化後にゼロでないままである前記変換係数行列内の位置を表す符号と、
前記１及びゼロの行列内における１の数を合計して量子化されたときにゼロでないままであるとして識別された前記変換係数の数を計算するための符号と、
前記１及びゼロの行列内における前記１の位置に対応する前記変換係数行列内の前記変換係数のうちの少なくとも１つの絶対値を合計するための符号と、
少なくとも前記ゼロでない変換係数の数及び前記少なくとも１つのゼロでない変換係数の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定するための符号と、をさらに備える請求項３１に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、映像コーディングに関するものである。この開示は、より具体的には、映像シーケンスをコーディングするためにコーディングコストを推定することに関するものである。
【背景技術】
【０００２】
デジタル映像能力は、デジタルテレビ、デジタル直接放送システム、無線通信デバイス、パーソナルデジタルアシスタント（ＰＤＡ）、ラップトップコンピュータ、デスクトップコンピュータ、ビデオゲームコンソール、デジタルカメラ、デジタル記録デバイス、携帯電話、衛星無線電話、等を含む広範なデバイス内に組み込むことができる。デジタル映像デバイスは、映像シーケンスを処理及び送信する際に従来のアナログ映像システムの有意な改良を提供することができる。
【０００３】
デジタル映像シーケンスをコーディングするために異なる映像コーディング基準が確立されている。例えば、ムービング・ピクチャ・エキスパーツ・グループ（ＭＰＥＧ）は、ＭＰＥＧ−１、ＭＰＥＧ−２及びＭＰＥＧ−４を含む幾つかの基準を開発している。その他の例は、国際電気通信連合（ＩＴＵ）−Ｔ  Ｈ．２６３基準と、ＩＴＵ−Ｔ  Ｈ．２６４基準及びその同等基準であるＩＳＯ／ＩＥＣ ＭＰＥＧ−４、Ｐａｒｔ−１０、すなわちアドバンストビデオコーディング（ＡＶＣ）と、を含む。これらの映像コーディング基準は、データを圧縮された形でコーディングすることによって映像シーケンスの向上された送信効率をサポートする。
【０００４】
多くの現在の技法は、ブロックに基づくコーディングを利用する。ブロックに基づくコーディングにおいては、マルチメディアシーケンスのフレームは、個別の画素ブロックに分割され、これらの画素ブロックが、同じフレーム内又は異なるフレームに所在することができるその他のブロックとの差分に基づいてコーディングされる。幾つかの画素ブロックは、“マクロブロック”としばしば呼ばれ、画素のサブブロックから成るグループを備える。一例として、１６×１６マクロブロックは、４つの８×８サブブロックを備えることができる。これらのサブブロックは、別々にコーディングすることができる。例えば、Ｈ．２６４基準は、様々な異なるブロックサイズ、例えば１６×１６、１６×８、８×１６、８×８、４×４、８×４、及び４×８、を有するブロックのコーディングを可能にする。さらに、拡大として、あらゆるサイズのサブブロック、例えば、２×１６、１６×２、２×２、４×１６、及び８×２、をマクロブロック内に含めることができる。
【発明の概要】
【０００５】
この開示の一定の側面においては、デジタル映像データを処理するための方法は、量子化されたときにゼロでないままである画素ブロックの残差データ（ｒｅｓｉｄｕａｌ  ｄａｔａ）に関する１つ以上の変換係数を識別することと、少なくとも前記識別された変換係数に基づいて前記残差データのコーディングと関連づけられたビット数を推定することと、前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定すること、とを備える。
【０００６】
一定の側面においては、デジタル映像データを処理するための装置は、画素ブロックの残差データに関する変換係数を生成する変換モジュールと、量子化されたときにゼロでないままである前記変換係数のうちの１つ以上を識別し及び少なくとも前記識別された変換係数に基づいて前記残差データのコーディングと関連づけられたビット数を推定するビット推定モジュールと、前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定する制御モジュールと、を備える。
【０００７】
一定の側面においては、デジタル映像データを処理するための装置は、量子化されたときにゼロでないままである画素ブロックの残差データに関する１つ以上の変換係数を識別するための手段と、少なくとも前記識別された変換係数に基づいて前記残差データのコーディングと関連づけられたビット数を推定するための手段と、前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定するための手段と、を備える。
【０００８】
一定の側面においては、デジタル映像データを処理するためのコンピュータプログラム製品は、命令が格納されているコンピュータによって読み取り可能な媒体を備える。前記命令は、量子化されたときにゼロでないままである画素ブロックの残差データに関する１つ以上の変換係数を識別するための符号と、少なくとも前記識別された変換係数に基づいて前記残差データのコーディングと関連づけられたビット数を推定するための符号と、前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定するための符号と、を含む。
【０００９】
１つ以上の例の詳細が添付図面及び以下の説明において示される。その他の特徴、目的、及び利点が、以下の説明と図面から、及び請求項から明確になるであろう。
【図面の簡単な説明】
【００１０】
【図１】ここにおいて説明されるコーディングコスト推定技法を採用する映像コーディングシステムを示すブロック図である。
【図２】典型的符号化モジュールをさらに詳細に示すブロック図である。
【図３】他の典型的符号化モジュールをさらに詳細に示すブロック図である。
【図４】推定されたコーディングコストに基づいて符号化モードを選択する符号化モジュールの典型的動作を示す流れ図である。
【図５】ブロックの残差データを量子化又は符号化せずに残差データをコーディングすることと関連づけられたビット数を推定する符号化モジュールの典型的動作を示す流れ図である。
【図６】ブロックの残差データを符号化せずに残差データをコーディングすることと関連づけられたビット数を推定する符号化モジュールの典型的動作を示す流れ図である。
【発明を実施するための形態】
【００１１】
この開示は、推定されたコーディングコストを用いた映像コーディングモード選択技法を説明する。例えば高い圧縮効率を提供するために、符号化デバイスは、画素ブロックのデータを高い効率でコーディングする画素ブロックコーディングモードを選択するのを試みることができる。この目的のために、符号化デバイスは、少なくとも可能なモードの少なくとも一部に関するコーディングコスト推定値に基づいてコーディングモード選択を行うことができる。ここにおいて説明される技法により、符号化デバイスは、ブロックを実際にコーディングせずに異なるモードに関するコーディングコストを推定する。実際、幾つかの側面においては、符号化モジュールデバイスは、各モードに関するブロックのデータを量子化せずにモードに関するコーディングコストを推定することができる。この方法により、この開示のコーディングコスト推定技法は、有効なモード選択を行うために必要な計算集約的計算量を低減させる。
【００１２】
図１は、ここにおいて説明されるコーディングコスト推定技法を採用するマルチメディアコーディングシステム１０を示したブロック図である。コーディングシステム１０は、送信チャネル１６によって接続された符号化デバイス１２と復号デバイス１４とを含む。符号化デバイス１２は、１つ以上のデジタルマルチメディアデータシーケンスを符号化し、符号化されたシーケンスを復号のために及び可能なことにデバイス１４のユーザーに提示するために送信チャネル１６において復号デバイス１４に送信する。送信チャネル１６は、あらゆる有線又は無線媒体、又はその組み合わせを備えることができる。
【００１３】
符号化デバイス１２は、１つ以上のマルチメディアデータチャネルをブロードキャストするために用いられるブロードキャストネットワーク構成要素の一部を形成することができる。一例として、符号化デバイス１２は、符号化されたマルチメディアデータの１つ以上のチャネルを無線デバイスにブロードキャストするために用いられる無線基地局、サーバー、又はいずれかのインフラストラクチャノードの一部を形成することができる。この場合は、符号化デバイス１２は、符号化されたデータを複数の無線デバイス、例えば復号デバイス１４、に送信することができる。しかしながら、単純化するために図１には単一の復号デバイス１４が示される。代替として、符号化デバイス１２は、映像テレフォニー又はその他の類似の用途に関してローカルでキャプチャされた映像を送信するハンドセットを備えることができる。
【００１４】
復号デバイス１４は、符号化デバイス１２によって送信された符号化されたマルチメディアデータを受信してそのマルチメディアデータをユーザーに提示するために復号するユーザーデバイスを備えることができる。一例として、復号デバイス１４は、デジタルテレビ、無線通信デバイス、ゲームプレイ装置、ポータブルデジタルアシスタント（ＰＤＡ）、ラップトップコンピュータ、デスクトップコンピュータ、デジタル音楽及び映像デバイス、例えば 商標“ｉＰｏｄ”の名称で販売されるデバイス、ラジオテレフォン、例えばセルラー、衛星又は地上に基づくラジオテレフォン、又は映像及び／又は音声ストリーミング、ビデオテレフォニー、又はその両方に関して装備されるその他の無線移動端末、の一部として実装することができる。復号デバイス１４は、移動デバイス又は静止デバイスと関連づけることができる。ブロードキャスト用途においては、符号化デバイス１２は、複数のユーザーと関連づけられた複数の復号デバイス１４に符号化された映像及び／又は音声を送信することができる。
【００１５】
幾つかの側面においては、双方向通信用途に関して、マルチメディアコーディングシステム１０は、セッション開始プロトコル（ＳＩＰ）、国際電気通信連合標準化セクター（ＩＴＵ−Ｔ）Ｈ．３２３基準、ＩＴＵ−Ｔ Ｈ．３２４基準、又はその他の基準に従ってビデオテレフォニー又は映像ストリーミングをサポートすることができる。一方向又は双方向通信に関して、符号化デバイス１２は、映像圧縮基準、例えばムービング・ピクチャ・エキスパーツ・グループ（ＭＰＥＧ）−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ Ｈ．２６３、又は、ＭＰＥＧ−４、Ｐａｒｔ１０、アドバンストビデオコーディング（ＡＶＣ）に対応するＩＴＵ−Ｈ．２６４、に従って符号化されたマルチメディアデータを生成することができる。図１には示されていないが、符号化デバイス１２及び復号デバイス１４は、音声符号器及び復号器とそれぞれ一体化することができ、共通のデータシーケンス又は別個のデータシーケンス内の音声及び映像の両方の符号化を処理するための適切なマルチプレクサ−デマルチプレクサ（ＭＵＸ−ＤＥＭＵＸ）モジュール、又はその他のハードウェア、ファームウェア、又はソフトウェアを含むことができる。該当する場合は、ＭＵＸ−ＤＥＭＵＸモジュールは、ＩＴＵ−Ｈ．２２３マルチプレクサプロトコル、又はユーザーデータグラムプロトコル（ＵＤＰ）等のその他のプロトコルに準拠することができる。
【００１６】
一定の側面においては、この開示は、技術基準ＴＩＡ−１０９９、Ａｕｇ．２００６（“ＦＬＯ仕様”）として発行された順方向リンク専用（ＦＬＯ）エアインタフェース仕様“Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast”（地上移動マルチメディアマルチキャストに関する順方向リンク専用エアインタフェース仕様）を用いて地上移動マルチメディアマルチキャスト（ＴＭ３）システムにおいてリアルタイムマルチメディアサービスを配送するためのエンハンストＨ．２６４映像コーディングへの適用を企図する。しかしながら、この開示において説明されるコーディングコスト推定技法は、特定の型のブロードキャスト、マルチキャスト、ユニキャスト、又はポイント・ツー・ポイントシステムに限定されない。
【００１７】
図１に示されるように、符号化デバイス１２は、符号化モジュール１８と、送信機２０と、を含む。符号化モジュール１８は、映像符号化の場合は１つ以上のデータフレームを含むことができる１つ以上の入力マルチメディアシーケンスを受信し、受信されたマルチメディアシーケンスのフレームを選択的に符号化する。符号化モジュール１８は、入力されたマルチメディアシーケンスを１つ以上のソース（図１には示されない）から受信する。幾つかの側面においては、符号化モジュール１８は、例えば衛星を介して１つ以上の映像コンテンツプロバイダから入力マルチメディアシーケンスを受信することができる。他の例として、符号化モジュール１８は、符号化デバイス１２内に組み入れられるか又は符号化デバイス１２に結合された画像キャプチャデバイス（図１には示されない）からマルチメディアシーケンスを受け取ることができる。代替として、符号化モジュール１８は、符号化デバイス１２内の又は符号化デバイス１２に結合されたメモリ又はアーカイブ（図１には示されない）からマルチメディアシーケンスを受け取ることができる。マルチメディアシーケンスは、コーディングされてブロードキャストとして又はオンデマンドで送信されるライブのリアルタイムの又はほぼリアルタイムの映像、音声、又は映像と音声のシーケンスを備えることができ、又はコーディングしてブロードキャストとして又はオンデマンドで送信するために予め記録されて格納された映像、音声、又は映像と音声を備えることができる。幾つかの側面においては、マルチメディアシーケンスの少なくとも一部分は、例えばゲームプレイにおける場合のようにコンピュータによって生成することができる。
【００１８】
いずれの場合も、符号化モジュール１８は、複数のフレームを符号化して複数のコーディングされたフレームを送信機２０を介して復号デバイス１４に送信する。符号化モジュール１８は、入力されたマルチメディアシーケンスのフレームをフレーム内コーディングされたフレーム、フレーム間コーディングされたフレーム又はその組み合わせとして符号化することができる。フレーム内コーディング技法を用いて符号化されるフレームは、その他のフレームを基準にせずにコーディングされ、イントラ（“Ｉ”）フレームとしばしば呼ばれる。フレーム間コーディング技法を用いて符号化されるフレームは、１つ以上のその他のフレームを基準にしてコーディングされる。フレーム間コーディングされたフレームは、１つ以上の予測“Ｐ”フレーム、両方向（“Ｂ”）フレーム、又はその組み合わせを含むことができる。Ｐフレームは、少なくとも１つの時間的に前のフレームを基準にして符号化され、Ｂフレームは、少なくとも１つの時間的に後のフレームを基準にして符号化される。幾つかの場合においては、Ｂフレームは、少なくとも１つの時間的に後のフレーム及び少なくとも１つの時間的に前のフレームを基準にして符号化することができる。
【００１９】
符号化モジュール１８は、フレームを複数のブロックに分割してこれらのブロックの各々を別々に符号化するようにさらに構成することができる。一例として、符号化モジュール１８は、複数の１６×１６ブロックにフレームを分割することができる。幾つかのブロックは、“マクロブロック”としばしば呼ばれ、小分割ブロック（ここでは“サブブロック”としばしば呼ばれる）から成るグループを備える。一例として、１６×１６マクロブロックは、４つの８×８サブブロック、又はその他の小分割ブロックを備えることができる。例えば、Ｈ．２６４基準は、様々な異なるサイズ、例えば１６×１６、１６×８、８×１６、８×８、４×４、８×４、４×８、を有するブロックの符号化を可能にする。さらに、拡大として、あらゆるサイズのサブブロック、例えば、２×１６、１６×２、２×２、４×１６、及び８×２、をマクロブロック内に含めることができる。従って、符号化モジュール１８は、フレームを幾つかのブロックに分割し及び画素ブロックの各々をフレーム内コーディングされたブロック又はフレーム間コーディングされたブロックとして符号化するように構成することができ、これらの各々を一般的にブロックと呼ぶことができる。
【００２０】
符号化モジュール１８は、複数のコーディングモードをサポートすることができる。これらのモードの各々は、ブロックサイズ及びコーディング技法の異なる組み合わせに対応することができる。例えばＨ．２６４基準の場合は、７つのインターモード及び１３のイントラモードが存在する。７つの可変ブロックサイズインターモードは、ＳＫＩＰモードと、１６×１６モードと、１６×８モードと、８×１６モードと、８×８モードと、８×４モードと、４×８モードと、４×４モードと、を含む。１３のイントラモードは、９つの可能な補間方向が存在するＩＮＴＲＡ４×４モードと、４つの可能な補間方向が存在するＩＮＴＲＡ１６×１６モードと、を含む。
【００２１】
高い圧縮効率を提供するために、この開示の様々な側面により、符号化モジュール１８は、ブロックのデータを高い効率でコーディングするモードを選択するのを試みる。この目的のために、符号化モジュール１８は、各々のブロックに関して、全モードの少なくとも一部に関するコーディングコストを推定する。符号化モジュール１８は、コーディングコストをレート及び歪みの関数として推定する。ここにおいて説明される技法により、符号化モジュール１８は、レートメトリック及び歪みメトリックを決定するためにブロックを実際にコーディングせずにモードに関するコーディングコストを推定する。この方法により、符号化モジュール１８は、各モードに関するブロックのデータの計算が複雑なコーディングを行うことなしに少なくともコーディングコストに基づいてモードのうちの１つを選択することができる。従来のモード選択は、いずれのモードを選択すべきかを決定するために各々のモードを用いたデータの実際のコーディングを要求する。従って、これらの技法は、各々のモードに関してデータを実際にコーディングせずにコーディングコストに基づいてモードを選択することによって時間と計算資源を節約する。実際、幾つかの側面においては、符号化モジュール１８は、各モードに関してブロックのデータを量子化せずにモードに関するコーディングコストを推定することができる。この方法により、この開示のコーディングコスト推定技法は、有効なモード選択を行うために必要な計算集約型の計算量を低減させる。
【００２２】
符号化デバイス１２は、選択されたモードを適用してフレームのブロックをコーディングし、コーディングされたデータフレームを送信機２０を介して送信する。送信機２０は、符号化されたマルチメディアを送信チャネル１６において送信するための適切なモデム及びドライバ回路ソフトウェア及び／又はファームウェアを含むことができる。無線用途に関して、送信機２６は、符号化されたマルチメディアデータを搬送する無線データを送信するためのＲＦ回路を含む。
【００２３】
復号デバイス１４は、受信機２２と、復号モジュール２４と、を含む。復号デバイス１４は、受信機２２を介して符号化デバイス１２から符号化されたデータを受け取る。送信機２０と同様に、受信機２２は、符号化されたマルチメディアを送信チャネル１６において受信するための適切なモデム及びドライバ回路ソフトウェア及び／又はファームウェアを含むことができ、及び無線用途において符号化されマルチメディアデータを搬送する無線データを受信するためのＲＦ回路を含むことができる。復号モジュール２４は、受信機２２を介して受信されたコーディングされたデータフレームを復号する。復号デバイス１４は、復号デバイス１４内に組み入れられるか又は有線又は無線接続を介して復号デバイス１４に結合された個別デバイスとして提供することができるディスプレイ（示されていない）を介して、復号されたデータフレームをユーザーに対してさらに提示することができる。
【００２４】
幾つかの例においては、符号化デバイス１２及び復号デバイス１４は、各々が、送信チャネル１６において送信される符号化されたマルチメディア及びその他の情報に関する送信デバイス及び受信デバイスの両方として働くことができるように可逆（ｒｅｃｉｐｒｏｃａｌ）送受信回路を各々含むことができる。この場合は、符号化デバイス１２及び復号デバイス１４の両方が、マルチメディアシーケンスを送信及び受信すること、従って双方向通信に参加することができる。換言すると、コーディングシステム１０の例示される構成要素は、符号器／復号器（ＣＯＤＥＣ）の一部として一体化することができる。
【００２５】
符号化デバイス１２及び復号デバイス１４内の構成要素は、ここにおいて説明される技法を実装するために利用可能な構成要素例である。しかしながら、符号化デバイス１２及び復号デバイス１４は、希望される場合は、数多くのその他の構成要素を含むことができる。例えば、符号化デバイス１２は、各々がここにおいて説明される技法より１つ以上のマルチメディアデータシーケンスを受信し及び各々のマルチメディアデータシーケンスを符号化する複数の符号化モジュールを含むことができる。この場合は、符号化デバイス１２は、データセグメントを送信のために結合する少なくとも１つのマルチプレクサをさらに含むことができる。さらに、符号化デバイス１２及び復号デバイス１４は、符号化された映像の送信及び受信のための適切な変調構成要素、復調構成要素、周波数変換構成要素、フィルタリング構成要素、及び増幅器構成要素を含むことができ、無線周波数（ＲＦ）無線構成要素とアンテナとを適宜含むことができる。しかしながら、例示を容易にするために、該構成要素は図１には示されていない。
【００２６】
図２は、典型的符号化モジュール３０をさらに詳細に示すブロック図である。符号化モジュール３０は、例えば、図１の符号化デバイス１２の符号化モジュール１８を代表することができる。図２に示されるように、符号化モジュール３０は、１つ以上のマルチメディアシーケンスの入力されたマルチメディアデータフレームを１つ以上のソースから受信し、受信されたマルチメディアシーケンスのフレームを処理する制御モジュール３２を含む。特に、制御モジュール３２は、マルチメディアシーケンスの着信フレームを解析し、フレームの解析に基づいてこれらの着信フレームを符号化すべきか又はスキップすべきかを決定する。幾つかの側面においては、符号化デバイス１２は、送信チャネル１６において帯域幅を保存するためにフレームスキップを用いることによってマルチメディアシーケンス内に含まれる情報を引き下げられたフレームレートで符号化することができる。
【００２７】
さらに、符号化されることになる着信フレームに関して、制御モジュール３２は、これらのフレームを、Ｉフレーム、Ｐフレーム、又はＢフレームとして符号化すべきかどうかを決定するように構成することもできる。制御モジュール３２は、チャネル切り替えフレームとして用いるために、又はイントラリフレッシュフレームとして用いるために、マルチメディアシーケンス開始時に、又はシーケンス内でのシーン変化時に、着信フレームをＩフレームとして符号化するのを決定することができる。その他の場合は、制御モジュール３２は、フレームをコーディングすることと関連づけられた帯域幅量を小さくするためにフレーム間コーディングされたフレーム（すなわち、Ｐフレーム又はＢフレーム）としてフレームを符号化する。
【００２８】
制御モジュール３２は、フレームを複数のブロックに分割し、これらのブロックの各々に関するコーディングモード、例えば上述されるＨ．２６４コーディングモードのうちの１つ、を選択するようにさらに構成することができる。以下において詳細に説明されるように、符号化モジュール３０は、これらのコーディングモードのうちで最も効率的なコーディングモードを選択するのに役立つようにこれらのモードのうちの少なくとも一部に関するコーディングコストを推定することができる。ブロックのうちの１つをコーディングする際に用いるためのコーディングモードを選択後は、符号化モジュール３０は、ブロックに関する残差データを生成する。フレーム内コーディングの対象として選択されたブロックに関しては、空間予測モジュール３４は、ブロックに関する残差データを生成する。空間予測モジュール３４は、例えば、１つ以上の隣接ブロック及び選択されたフレーム内コーディングモードに対応する補間方向性を用いる補間を介してブロックの予測されたバージョンを生成することができる。これで、空間予測モジュール３４は、入力フレームのブロックと予測されたブロックとの間の差分を計算することができる。この差分は、残差データ又は残差係数と呼ばれる。
【００２９】
フレーム間コーディング対象として選択されたブロックに関しては、動き推定モジュール３６及び動き補償モジュール３８は、ブロックに関する残差データを生成する。特に、動き推定モジュール３６は、少なくとも１つの基準フレームを識別し、その基準フレーム内において入力フレーム内のブロックと最も良く一致するブロックを探す。動き推定モジュール３６は、入力フレーム内におけるブロックの位置と基準フレーム内における識別されたブロックの位置との間のオフセットを表すための動きベクトルを計算する。動き補償モジュール３８は、入力フレームのブロックと動きベクトルが指し示す基準フレーム内の識別されたブロックとの間の差分を計算する。この差分は、そのブロックに関する残差データと呼ばれる。
【００３０】
符号化モジュール３０は、変換モジュール４０と、量子化モジュール４６と、エントロピー符号器４８と、も含む。変換モジュール４０は、変換関数に従ってブロックの残差データを変換する。幾つかの側面においては、変換モジュール４０は、残差データに関する変換係数を生成するために整数変換、例えば４×４又は８×８整数変換又は離散コサイン変換（ＤＣＴ）、を残差データに適用する。量子化モジュール４６は、変換係数を量子化し、量子化された変換係数をエントロピー符号器４８に提供する。エントロピー符号器４８は、コンテキスト適応型コーディング技法、例えばコンテキスト適応型可変長コーディング（ＣＡＶＬＣ）又はコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、等を用いて量子化された変換係数を符号化する。以下において詳細に説明されるように、エントロピー符号器４８は、選択されたモードを適用してブロックのデータをコーディングする。
【００３１】
エントロピー符号器４８は、ブロックと関連づけられた追加データを符号化することもできる。例えば、残差データに加えて、エントロピー符号器４８は、ブロックの１つ以上の動きベクトル、ブロックのコーディングモードを示す識別子、１つ以上の基準フレームインデックス、量子化パラメータ（ＱＰ）情報、ブロックのスライス情報、等を符号化することができる。エントロピー符号器４８は、符号化モジュール３０内のその他のモジュールからこの追加ブロックデータを受け取ることができる。例えば、動きベクトル情報は、動き推定モジュール３６から受け取ることができ、ブロックモード情報は、制御モジュール３２から受け取ることができる。幾つかの側面においては、エントロピー符号器４８は、固定長コーディング（ＦＬＣ）技法又はユニバーサル可変長コーディング（ＶＬＣ）技法、例えば指数−ゴロムコーディング（“Ｅｘｐ−Ｇｏｌｏｍｂ”）、を用いてこの追加情報の少なくとも一部分をコーディングすることができる。代替として、エントロピー符号器４８は、上述されるコンテキスト適応型コーディング技法、すなわち、ＣＡＢＡＣ又はＣＡＶＬＣ、を用いて追加のブロックデータの一部分を符号化することができる。
【００３２】
制御モジュール３２がブロックに関するモードを選択するのを援助するために、制御モジュール３２は、可能なモードのうちの少なくとも一部に関するコーディングコストを推定する。一定の側面においては、制御モジュール３２は、可能なコーディングモードの各々におけるブロックをコーディングするコストを推定することができる。コストは、例えば、所定のモードにおいてブロックをコーディングすることと関連づけられたビット数対そのモードにおいて生じる歪み量に関して推定することができる。例えばＨ．２６４基準の場合は、制御モジュール３２は、フレーム間コーディング用に選択されたブロックに関しては２２の異なるコーディングモード（フレーム間及びフレーム内コーディングモード）及びフレーム内コーディング用に選択されたブロックに関しては１３の異なるコーディングモードに関するコーディングコストを推定することができる。その他の側面においては、制御モジュール３２は、他のモード選択技法を用いて最初に可能なモードの組を減らし、次にこの開示の技法を利用してその組の残りのモードに関するコーディングコストを推定することができる。換言すると、幾つかの側面においては、制御モジュール３２は、コスト推定技法を適用する前にモードの可能性の数を絞ることができる。有利なことに、符号化モジュール３０は、異なるモードに関するブロックのデータを実際にコーディングせずにモードに関するコーディングコストを推定し、それにより、コーディング決定に関連する計算上のオーバーヘッドを低減する。実際、図２に示される例においては、符号化モジュール３０は、異なるモードに関するブロックのデータを量子化せずにコーディングコストを推定することができる。この方法により、この開示のコーディングコスト推定技法は、コーディングコストを計算するために必要な計算集約型の計算量を低減させる。特に、モードのうちの１つを選択するために様々なコーディングモードを用いてブロックを符号化する必要がない。
【００３３】
ここにおいてさらに詳細に説明されるように、制御モジュール３２は、以下の方程式に従って各々の解析されたモードのコーディングコストを推定する。
【数１】
2014003648.tif 000003
【００３４】
ここで、Ｊは、推定されたコーディングコストであり、Ｄは、ブロックの歪みメトリックであり、λｍｏｄｅは、各々のモードのラグランジュ乗数であり、Ｒは、ブロックのレートメトリックである。歪みメトリック（Ｄ）は、例えば、差分の絶対値の和（ＳＡＤ）と、差分の二乗の和（ＳＳＤ）と、変換差分の絶対値の和（ＳＡＴＤ）と、変換差分の二乗の和（ＳＳＴＤ）、と、等を備えることができる。レートメトリック（Ｒ）は、例えば、所定のブロックにおけるデータをコーディングすることと関連づけられたビット数であることができる。上述されるように、異なるコーディング技法を用いて異なるタイプのブロックデータをコーディングすることができる。従って、方程式（１）は、以下の形に書き換えることができる。
【数２】
2014003648.tif 000004
【００３５】
ここで、Ｒｃｏｎｔｅｘｔは、コンテキスト適応型コーディング技法を用いてコーディングされるブロックデータに関するレートメトリックを表し、Ｒｎｏｎ＿ｃｏｎｔｅｘｔは、非コンテキスト適応型コーディング技法を用いてコーディングされるブロックデータに関するレートメトリックを表す。例えば、Ｈ．２６４基準においては、残差データは、ＣＡＶＬＣ又はＣＡＢＡＣ等のコンテキスト適応型コーディングを用いてコーディングすることができる。その他のブロックデータ、例えば動きベクトル、ブロックモード、等は、ＦＬＣ又はユニバーサルＶＬＣ技法、例えばＥｘｐ−Ｇｏｌｏｍｂを用いてコーディングすることができる。この場合は、方程式（２）は、以下の形に書き換えることができる。
【数３】
2014003648.tif 000005
【００３６】
ここで、Ｒｒｅｓｉｄｕａｌは、コンテキスト適応型コーディング技法を用いて残差データをコーディングするためのレートメトリック、例えば残差データをコーディングすることと関連づけられたビット数、を表し、Ｒｏｔｈｅｒは、ＦＬＣ又はユニバーサルＶＬＣ技法を用いてその他のブロックデータをコーディンするためのレートメトリック、例えばその他のブロックデータをコーディングすることと関連づけられたビット数、を表す。
【００３７】
推定されたコーディングコスト（Ｊ）を計算する際には、符号化モジュール３０は、ＦＬＣ又はユニバーサルＶＬＣ、すなわちＲｏｔｈｅｒを用いてブロックデータをコーディングすることと関連づけられたビット数を相対的に簡単に決定することができる。符号化モジュール３０は、例えば、ＦＬＣ又はユニバーサルＶＬＣを用いてブロックデータをコーディングすることと関連づけられたビット数を特定するために符号テーブルを用いることができる。符号テーブルは、例えば、複数の符号語と、その符号語をコーディングすることと関連づけられたビット数と、を含むことができる。しかしながら、残差データ（Ｒｒｅｓｉｄｕａｌ）をコーディングすることと関連づけられたビット数を決定することは、データのコンテキストの関数としてのコンテキスト適応型コーディングは適応型の性質を有することに起因してはるかに困難なタスクとなる。残差データをコーディングすること関連づけられたビットの正確な数、又はどのようなデータがコンテキスト適応型コーディング中であるかを決定するために、符号化モジュール３０は、残差データを変換し、変換された残差データを量子化し及び変換−量子化された残差データを符号化しなければならない。しかしながら、この開示の技法により、ビット推定モジュール４２は、残差データを実際にコーディングせずにコンテキスト適応型コーディング技法を用いて残差データをコーディングすることと関連づけられたビット数を推定することができる。
【００３８】
図２に示される例においては、ビット推定モジュール４２は、残差データに関する変換係数を用いて残差データをコーディングすることと関連づけられたビット数を推定する。従って、解析されるべき各モードに関して、符号化モジュール３０は、残差モードをコーディングすることと関連づけられたビット数を推定するために残差データに関する変換係数を計算するだけでよい。従って、符号化モジュール３０は、各々のモードに関して変換係数を量子化せず及び量子化された変換係数を符号化しないことによって資源の計算量を低減させ及び残差データをコーディングすることと関連づけられたビット数を決定するために要する時間を短縮する。
【００３９】
ビット推定モジュール４２は、変換モジュール４０によって出力された変換係数を解析し、量子化後にゼロでないままになる１つ以上の変換係数を識別する。特に、ビット推定モジュール４２は、変換係数の各々を対応するしきい値と比較する。幾つかの側面においては、対応するしきい値は、符号化モジュール３０のＱＰの関数として計算することができる。ビット推定モジュール４２は、対応するしきい値よりも大きいか又は同じである変換係数を、量子化後にゼロでないままである変換係数として識別する。
【００４０】
ビット推定モジュール４２は、量子化後にゼロでないままであるとして識別された少なくとも変換係数に基づいて残差データをコーディングすることと関連づけられたビット数を推定する。特に、ビット推定モジュール４２は、量子化の影響を受けないゼロでない変換係数の数を決定する。ビット推定モジュール４２は、量子化の影響を受けないとして識別された変換係数の絶対値の少なくとも一部を合計する。次に、ビット推定モジュール４２は、以下の方程式を用いて、残差データに関するレートメトリック、すなわち、残差データをコーディンすることと関連づけられたビット数、を推定する。
【数４】
2014003648.tif 000006
【００４１】
ここで、ＳＡＴＤは、量子化の影響を受けないことが予測されるゼロでない変換係数の絶対値の少なくとも一部の和であり、ＮＺｅｓｔ は、量子化の影響を受けないことが予測されるゼロでない変換係数の推定数であり、ａ１、ａ２、及びａ３は、係数である。係数ａ１、ａ２、及びａ３は、例えば、最小二乗推定を用いて計算することができる。変換係数の和は、方程式例（４）における変換差分の絶対値の和ＳＡＴＤであるが、その他の差分係数、例えばＳＳＴＤ、を用いることができる。
【００４２】
４×４ブロックに関するＲｒｅｓｉｄｕａｌの計算例が以下に示される。異なるサイズのブロックに関しても同様の計算を行うことができる。符号化モジュール３０は、残差データに関する変換係数の行列を計算する。変換係数の典型的行列が以下に示される。
【数５】
2014003648.tif 000007
【００４３】
変換係数行列（Ａ）の行数は、ブロック内の画素の行数と等しく、変換係数行列の列数は、ブロック内の画素の列数と等しい。従って、上例においては、変換係数行列の次元は、４×４ブロックに対応するために４×４である。変換係数行列のエントリＡ（ｉ，ｊ）の各々は、各々の残差係数の変換である。
【００４４】
量子化中に、行列Ａのうちのより小さい値を有する変換係数は、量子化後にゼロになる傾向がある。従って、符号化モジュール３０は、残差変換係数行列Ａをしきい値行列と比較し、行列Ａのいずれの変換係数が量子化後にゼロでないままであるかを予測する。典型的しきい値行列が以下に示される。
【数６】
2014003648.tif 000008
【００４５】
行列Ｃは、ＱＰ値の関数として計算することができる。行列Ｃの次元は、行列Ａの次元と同じである。例えばＨ．２６４基準の場合は、行列Ｃのエントリは、以下の方程式に基づいて計算することができる。
【数７】
2014003648.tif 000009
【００４６】
ここで、ＱＢＩＴＳ｛ＱＰ｝は、スケーリングをＱＰの関数として決定するパラメータであり、Ｌｅｖｅｌ＿Ｏｆｆｓｅｔ（ｉ，ｊ）｛ＱＰ｝は、行列の行ｉ及び列ｊにおけるエントリに関するデッドゾーンパラメータであり、ＱＰの関数でもあり、Ｌｅｖｅｌ＿Ｓｃａｌｅ（ｉ，ｊ）｛ＱＰ｝は、行列の行ｉ及び列ｊにおけるエントリに関する乗算係数であり、ＱＰの関数でもあり、ｉは行列の行に対応し、ｊは行列の列に対応し、ＱＰは、符号化モジュール３０の量子化パラメータに対応する。方程式例（５）においては、変数は、Ｈ．２６４コーディング基準においては演算ＱＰの関数として定義することができる。
【００４７】
これらの変数のうちのいずれの変数が量子化後も存在するかを決定するためにその他の方程式を用いることができ、その他のコーディング基準においてはその特定の基準によって採用される量子化法に基づいて定義することができる。幾つかの側面においては、符号化モジュール３０は、ＱＰ値範囲内において動作するように構成することができる。この場合は、符号化モジュール３０は、ＱＰ値範囲内の各々のＱＰ値に対応する複数の比較行列を予め計算することができる。符号化モジュール３０は、変換係数行列と比較するために符号化モジュール３０のＱＰに対応する比較行列を選択する。
【００４８】
変換係数行列Ａとしきい値行列Ｃとの間の比較結果は、１とゼロの行列である。上例においては、この比較は、以下に示される１とゼロの行列になる。
【数８】
2014003648.tif 000010
【００４９】
ここで、１は、量子化の影響を受けない見込みである、すなわちゼロでないままである見込みであるとして識別された変換係数の位置を表し、ゼロは、量子化の影響を受ける見込みである、すなわちゼロになる見込みである変換係数の位置を表す。上述されるように、変換係数は、行列Ａの変換係数の絶対値が行列Ｃの対応するしきい値よりも大きいか又は同じであるときにゼロでないままである見込みであるとして識別される。
【００５０】
結果的に得られた１とゼロの行列を用いて、ビット推定モジュール４２は、量子化の影響を受けない変換係数の数を決定する。換言すると、ビット推定モジュール４２は、量子化後もゼロでないままであるとして識別された変換係数の数を決定する。ビッ推定モジュール４２は、以下の方程式に従って量子化後にゼロでないままであるとして識別された変換係数の数を決定する。
【数９】
2014003648.tif 000011
【００５１】
ここで、ＮＺｅｓｔは、ゼロでない変換係数の推定数であり、Ｍ（ｉ，ｊ）は、行ｉ及び列ｊにおける行列Ｍの値である。上例においては、ＮＺｅｓｔは、８に等しい。
【００５２】
ビット推定モジュール４２は、量子化の影響を受けないことが推定される変換係数の絶対値の少なくとも一部の和も計算する。一定の側面においては、ビット推定モジュール４２は、以下の方程式に従って変換係数の絶対値の少なくとも一部の和を計算することができる。
【数１０】
2014003648.tif 000012
【００５３】
ここで、ＳＡＴＤは、量子化後にゼロでないままであるとして識別された変換係数の総和であり、Ｍ（ｉ，ｊ）は、行ｉ及び列ｊにおける行列Ｍの値であり、Ａ（ｉ，ｊ）は、行ｉ及び列ｊにおける行列Ａの値であり、ａｂｓ（ｘ）は、ｘの絶対値を計算する絶対値関数である。上述される例においては、ＳＡＴＤは、２３６１に等しい。その他の差分メトリック、例えばＳＳＴＤ、も変換係数に関して用いることができる。
【００５４】
これらの値を用いて、ビット推定モジュール４２は、上記の方程式（３）を用いて残差係数をコーディングすることと関連づけられたビット数を概算する。制御モジュール３２は、Ｒｒｅｓｉｄｕａｌの推定値を用いてモードの総コーディングコストの推定値を計算することができる。符号化モジュール３０は、１つ以上のその他の可能なモードに関する総コーディングコストを同じ方法で推定し、最小のコーディングコストを有するモードを選択することができる。次に、符号化モジュール３０は、選択されたコーディングモードを適用してフレームのブロック又はブロック（複数）をコーディングする。
【００５５】
上記の技法は、符号化デバイス１２内に個々に実装することができ、又は、２つ以上又はすべての技法をまとめて実装することができる。符号化モジュール３０内の構成要素は、ここにおいて説明される技法を実装するために適用可能な構成要素の典型的例である。しかしながら、符号化モジュール３０は、希望される場合はその他の数多くの構成要素を含むこと、及び上述されるモジュールのうちの１つ以上のモジュールの機能を結合したより少ない数の構成要素を含むことができる。符号化モジュール３０内の構成要素は、１つ以上のプロセッサ、デジタル信号プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はそのいずれかの組み合わせとして実装することができる。異なる特徴をモジュールとして描写することは、符号化モジュール３０の異なる機能上の側面を強調することが意図されており、該モジュールを別個のハードウェア又はソフトウェア構成要素によって実現しなければならないということは必ずしも意味しない。むしろ、１つ以上のモジュールと関連づけられた機能は、共通の又は別個のハードウェア又はソフトウェア構成要素内に組み入れることができる。
【００５６】
図３は、他の典型的符号化モジュール５０を示すブロック図である。図３の符号化モジュール５０は、図２の符号化モジュール３０に実質的に準じるが、符号化モジュール５０のビット推定モジュール５２は、残差データに関する変換係数の量子化後に残差データをコーディングすることと関連づけられたビット数を推定する。特に、変換係数の量子化後は、ビット推定モジュール５２は、以下の方程式を用いて残差係数をコーディングすることと関連づけられたビット数を推定する。
【数１１】
2014003648.tif 000013
【００５７】
ここで、ＳＡＴＱＤは、ゼロでない量子化された変換係数の絶対値の和であり、ＮＺＴＱは、ゼロでない量子化された変換係数の数であり、ａ１、ａ２、及びａ３は、係数である。係数ａ１、ａ２、及びａ３は、例えば、最小二乗推定を用いて計算することができる。符号化モジュール５０は、残差データをコーディングすることと関連づけられたビット数を推定する前に変換係数を量子化するが、符号化モジュール５０は、依然として、ブロックのデータを実際にコーディングせずにモードに関するコーディングコストを推定する。従って、計算集約型の計算量が依然として低減される。
【００５８】
図４は、少なくとも推定されたコーディングコストに基づいて符号化モードを選択する符号化モジュール、例えば図２の符号化モジュール３０及び／又は図３の符号化モジュール５０、の典型的動作を示す流れ図である。しかしながら、典型例を示すことを目的として、図４は、符号化モジュール３０に関して説明される。符号化モジュール３０は、コーディングコストを推定する対象となるモードを選択する（６０）。符号化モジュール３０は、現在のブロックに関する歪みメトリックを生成する（６２）。符号化モジュール３０は、例えば、ブロックと少なくとも１つの基準ブロックとの間の比較に基づいて歪みメトリックを計算することができる。フレーム内コーディング対象として選択されたブロックの場合は、基準ブロックは、同じフレーム内の隣接ブロックであることができる。他方、フレーム間コーディングを対象として選択されたブロックの場合は、基準ブロックは、隣接フレームからのブロックであることができる。歪みメトリックは、例えば、ＳＡＤ、ＳＳＤ、ＳＡＴＤ、ＳＳＴＤ、又はその他の同様の歪みメトリックであることができる。
【００５９】
図４の例おいては、符号化モジュール３０は、非コンテキスト適応型コーディング技法を用いてコーディングされるデータ部分をコーディングすることと関連づけられたビット数を決定する（６４）。上述されるように、このデータは、ブロックの１つ以上の動きベクトルと、ブロックのコーディングモードを示す識別子と、１つ以上の基準フレームインデックスと、ＱＰ情報と、ブロックのスライス情報と、等を含むことができる。符号化モジュール３０は、例えば、ＦＬＣ、ユニバーサルＶＬＣ又はその他の非コンテキスト適応型コーディング技法を用いてデータをコーディングすることと関連づけられたビット数を識別するための符号テーブルを用いることができる。
【００６０】
符号化モジュール３０は、コンテキスト適応型コーディング技法を用いてコーディングされるデータ部分をコーディングすることと関連づけられたビット数を推定及び／又は計算する（６６）。例えばＨ．２６４基準に関しては、符号化モジュール３０は、コンテキスト適応型コーディングを用いて残差データをコーディングすることと関連づけられたビット数を推定することができる。符号化モジュール３０は、残差データをコーディングすることを実際に行わずに残差データをコーディングすることと関連づけられたビット数を推定することができる。一定の側面においては、符号化モジュール３０は、残差データを量子化せずに残差データをコーディングすることと関連づけられたビット数を推定することができる。例えば、符号化モジュール３０は、残差データに関する変換係数を計算すること及び量子化後にゼロでないままである見込みである変換係数を識別することができる。これらの識別された変換係数を用いて、符号化モジュール３０は、残差データをコーディングすることと関連づけられたビット数を推定する。その他の側面においては、符号化モジュール３０は、変換係数を量子化すること及び少なくとも量子化された変換係数に基づいて残差データをコーディングすることと関連づけられたビット数を推定することができる。いずれの場合も、符号化モジュール３０は、要求されるビット数を推定することによって時間及び処理資源を節約する。十分な計算資源が存在する場合は、符号化モジュール３０は、推定する代わりに要求される実際のビット数を計算することができる。
【００６１】
符号化モジュール３０は、選択されたモードにおいてブロックをコーディングすることに関する総コーディングコストを推定及び／又は計算する（６８）。符号化モジュール３０は、歪みメトリック、非コンテキスト適応型コーディングを用いてコーディングされるデータ部分をコーディングすることと関連づけられたビット及びコンテキスト適応型コーディングを用いてコーディングされるデータ部分をコーディングすることと関連づけられたビットに基づいてブロックをコーディングすることに関する総コーディングコストを推定することができる。例えば、符号化モジュール３０は、上記の方程式（２）又は（３）を用いて選択されたモードにおいてブロックをコーディングすることに関する総コーディングコストを推定することができる。
【００６２】
符号化モジュール３０は、コーディングコストを推定する対象となるその他のコーディングモードが存在するかどうかを決定する（７０）。上述されるように、符号化モジュール３０は、可能なモードの少なくとも一部に関するコーディングコストを推定する。一定の側面においては、符号化モジュール３０は、可能なコーディングモードの各々においてブロックをコーディングするコストを推定することができる。例えばＨ．２６４基準においては、符号化モジュール３０は、フレーム間コーディング用に選択されたブロックに関しては２２の異なるコーディングモード（フレーム間及びフレーム内コーディングモード）及びフレーム内コーディング用に選択されたブロックに関しては１３の異なるコーディングモードに関するコーディングコストを推定することができる。その他の側面においては、符号化モジュール３０は、最初に可能なモードの組を縮小するために他のモード選択技法を用いることができ、及び縮小されたコーディングモードの組に関するコーディングコストを推定するためにこの開示の技法を利用することができる。
【００６３】
コーディングコストを推定する対象となるさらなるコーディングモードが存在するときには、符号化モジュール３０は、次のコーディングモードを選択し、選択されたコーディングモードにおいてデータをコーディングするコストを推定する。コーディングコストを推定する対象となるさらなるコーディングモードが存在しないときには、符号化モジュール３０は、少なくとも推定されたコーディングコストに基づいてブロックをコーディングするために用いるモードのうちの１つを選択する（７２）。一例においては、コーディングモジュール３０は、最低の推定されたコーディングコストを有するコーディングモードを選択することができる。モードが選択された時点で、コーディングモジュール３０は、選択されたモードを適用して特定のブロックをコーディングすることができる（７４）。プロセスは、所定のフレーム内の追加のブロックに関して続くことができる。一例として、プロセスは、フレーム内の全ブロックがここにおいて説明される技法により選択されたコーディングモードを用いてコーディングされてしまうまで続くことができる。さらに、プロセスは、複数のフレームのブロックが高効率モードを用いてコーディングされるまで続くことができる。
【００６４】
図５は、ブロックの残差係数をコーディングすることと関連づけられたビット数を推定する符号化モジュール、例えば図２の符号化モジュール３０、の典型的動作を示す流れ図である。コーディングコストを推定する対象となるコーディングモードのうちの１つを選択後、符号化モジュール３０は、選択されたモードに関するブロックの残差データを生成する（８０）。例えばフレーム内コーディングするために選択されたブロックの場合は、空間予測モジュール３４は、ブロックをそのブロックの予測されたバージョンと比較することに基づいてそのブロックに関する残差データを生成する。代替として、フレーム間コーディングするために選択されたブロックの場合は、動き推定モジュール３６及び動き補償モジュール３８は、ブロックと基準フレーム内の対応ブロックとの比較に基づいてそのブロックに関する残差データを計算する。幾つかの側面においては、残差データは、ブロックの歪みメトリックを生成するために計算済みであることができる。この場合は、符号化モジュール３０は、残差データをメモリから取り出すことができる。
【００６５】
変換モジュール４０は、変換関数に従ってブロックの残差係数を変換して残差データに関する変換係数を生成する（８２）。変換モジュール４０は、例えば、４×４又は８×８整数変換又はＤＣＴ変換を残差データに適用して残差データに関する変換係数を生成する。ビット推定モジュール４２は、変換係数のうちの１つを対応するしきい値と比較して変換係数がしきい値よりも大きい又は同じであるかどうかを決定する（８４）。変換係数に対応するしきい値は、符号化モジュール３０のＱＰの関数として計算することができる。変換係数が対応するしきい値よりも大きいか又は同じである場合は、ビット推定モジュール４２は、その変換係数を、量子化後にゼロでないままである係数であるとして識別する（８６）。変換係数が対応するしきい値よりも小さい場合は、ビット推定モジュール４２は、変換係数を、量子化後にゼロになる係数として識別する（８８）。
【００６６】
ビット推定モジュール４２は、ブロックの残差データに関する追加の変換係数が存在するかどうかを決定する（９０）。ブロックの追加の変換係数が存在する場合は、ビット推定モジュール４２は、係数のうちの他の１つを選択してそれを対応するしきい値と比較する。解析すべき追加の変換係数が存在しない場合は、ビット推定モジュール４２は、量子化後にゼロでないままであるとして識別された係数の数を決定する（９２）。ビット推定モジュール４２は、量子化後にゼロでないままであるとして識別された変換係数の絶対値の少なくとも一部の絶対値も合計する（９４）。ビット推定モジュール４２は、決定されたゼロでない係数の数及びゼロでない係数の一部の和を用いて残差データをコーディングすることと関連づけられたビット数を推定する（９６）。ビット推定モジュール４２は、例えば、上記の方程式（４）を用いて残差データをコーディングすることと関連づけられたビット数を推定することができる。この方法により、符号化モジュール３０は、ブロックの残差データを量子化又は符号化せずに選択されたモードにおいて残差データをコーディングすることと関連づけられたビット数を推定する。
【００６７】
図６は、ブロックの残差係数をコーディングすることと関連づけられたビット数を推定する符号化モジュール、例えば図３の符号化モジュール５０、の典型的動作を示す流れ図である。コーディングコストを推定する対象となるコーディングモードのうちの１つを選択後は、符号化モジュール５０は、ブロックの残差係数を生成する（１００）。例えばフレーム内コーディングするために選択されたブロックの場合は、空間予測モジュール３４は、ブロックをそのブロックの予測されたバージョンと比較することに基づいてそのブロックに関する残差データを計算する。代替として、フレーム間コーディングするために選択されたブロックの場合は、動き推定モジュール３６及び動き補償モジュール３８は、ブロックと基準フレーム内の対応ブロックとの比較に基づいてそのブロックに関する残差データを計算する。幾つかの側面においては、残差係数は、ブロックの歪みメトリックを生成するために計算済みであることができる。
【００６８】
変換モジュール４０は、変換関数に従ってブロックの残差係数を変換して残差データに関する変換係数を生成する（１０２）。変換モジュール４０は、例えば、４×４又は８×８整数変換又はＤＣＴ変換を残差データに適用して変換された残差係数を生成することができる。量子化モジュール４６は、符号化モジュール５０のＱＰに従って変換係数を量子化する（１０４）。
【００６９】
ビット推定モジュール５２は、ゼロでない量子化された変換係数の数を決定する（１０６）。ビット推定モジュール４２は、非ゼロレベル又は量子化された変換係数の絶対値も合計する（１０８）。ビット推定モジュール５２は、ゼロでない量子化された変換係数の計算された数及びゼロでない量子化された変換係数の和を用いて残差データをコーディングすることと関連づけられたビット数を推定する（１１０）。ビット推定モジュール５２は、例えば、上記の方程式（４）を用いて残差係数をコーディングすることと関連づけられたビット数を推定することができる。この方法により、符号化モジュールは、残差データを符号化せずに選択されたモードにおいてブロックの残差データをコーディングすることと関連づけられたビット数を推定する。
【００７０】
ここにおいて説明される教示に基づき、ここにおいて開示される側面は、その他の側面とは無関係に実装できること及びこれらの側面のうちの２つ以上を様々な方法で組み合わせることができることが明らかなはずである。ここにおいて説明される技法は、ハードウェア内、ソフトウェア内、ファームウェア内、又はそのいずれかの組み合わせ内において実装することができる。ハードウェア内に実装される場合は、これらの技法は、デジタルハードウェア、アナログハードウェア又はその組み合わせを用いて実現することができる。ソフトウェア内に実装される場合は、これらの技法は、命令又は符号が格納されているコンピュータによって読み取り可能な媒体を含むコンピュータプログラム製品によって少なくとも部分的に実現することができる。コンピュータプログラム製品のコンピュータによって読み取り可能な媒体と関連づけられた命令又は符号は、コンピュータによって、例えば１つ以上のプロセッサ、例えば１つ以上のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、又はその他の同等の集積回路又は個別論理回路、によって実行することができる。
【００７１】
一例として、ただし制限することなしに、該コンピュータによって読み取り可能な媒体は、ＲＡＭ、例えば同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、非揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、ＲＯＭ、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、ＥＥＰＲＯＭ、ＦＬＡＳＨメモリ、ＣＤ−ＲＯＭ、又はその他の光学ディスク記憶装置、磁気ディスク記憶装置又はその他の磁気記憶装置、又は希望されるプログラムコードを命令又は命令構造の形態で搬送又は格納するために用いることができ及びコンピュータによってアクセス可能であるその他のあらゆる有形な媒体を備えることができる。
【００７２】
幾つかの側面及び例が説明されている。しかしながら、これらの例の様々な修正が可能であり、さらに、ここにおいて提示される原理は、その他の側面に対しても同様に適用することができる。これらの及びその他の側面は、以下の請求項の適用範囲内である。
【図１】
2014003648.tif 000014
【図２】
2014003648.tif 000015
【図３】
2014003648.tif 000016
【図４】
2014003648.tif 000017
【図５】
2014003648.tif 000018
【図６】
2014003648.tif 000019
【手続補正書】
【提出日】平成25年9月2日(2013.9.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
デジタル映像データを処理するための方法であって、
ゼロでないおよび量子化されたときにゼロでないままである画素ブロックの残差データに関する１つ以上の変換係数をプロセッサにより識別することと、ここにおいて、前記識別することは前記１つ以上の変換係数を量子化することなく実行される、
前記変換係数の行列を生成することと、ここにおいて、前記変換係数の行列の行数は前記ブロック内の画素の行数に等しく、前記変換係数の行列の列数は、前記ブロック内の画素の列に等しい、
前記変換係数の行列をしきい値行列と比較することと、ここにおいて、前記しきい値行列は前記変換係数の行列の次元と同じ次元を有し、前記比較は１と０の行列を生じ、０は量子化後にゼロになる前記変換係数の行列内のロケーションを表し、１は量子化後にゼロでないままである前記変換係数の行列内のロケーションを表す、
前記１と０の行列内の１の数を加算して、量子化されたときにゼロでないままであると識別された前記変換係数の数を計算することと、
前記１と０の行列内の１のロケーションに対応する前記変換係数の行列内の前記変換係数の少なくとも１の絶対値を加算することと、
少なくとも前記ゼロでない変換係数の数と、前記少なくとも１つのゼロでない変換係数の加算とに基づいて前記残差データのコーディングと関連づけられたビット数を推定することと、
下記式に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定することと、
J=D+λmode (Rresidual+Rother)
但し、Ｊは推定されたコーディングコストを、Ｄは前記ブロックの歪みメトリックを、λmodeは複数のコーディングモードの各々のラグランジュ乗数を、Rresidualはコンテキスト適応型コーディング技法を用いて残差データをコーディングするためのビット数を、Rotherは固定長コーディング（ＦＬＣ）技法またはユニバーサル可変長コーディング(ＶＬＣ)技法を用いてその他のブロックデータをコーディングするためのビット数を表す、
を備える、方法。
【請求項２】
前記しきい値行列の前記しきい値の各々は、量子化パラメータ（ＱＰ）の関数として計算される請求項１に記載の方法。
【請求項３】
量子化後にゼロでないままである前記変換係数の行列内のロケーションは、それぞれの対応するしきい値を満足する変換係数に対応する、請求項２に記載の方法。
【請求項４】
複数のしきい値行列を予め計算することであって、前記しきい値行列の各々は、前記ＱＰの異なる値に対応することと、
前記画素ブロックを符号化するために用いられる前記ＱＰの前記値に基づいて前記複数のしきい値行列から前記しきい値行列を選択すること、とをさらに備える請求項２に記載の方法。
【請求項５】
デジタル映像データを処理する装置において、
画素ブロックの残差データに関する変換係数を生成するとともに、前記変換係数の行列を生成する変換モジュールと、ここにおいて、前記変換係数の行列の行数は前記ブロック内の画素の行数に等しく、前記変換係数の行列の列数は、前記ブロック内の画素の列数に等しい、
量子化されておらずかつゼロでなく、量子化されたときにゼロでないままである前記変換係数の１つまたは複数を識別し、
前記変換係数の行列をしきい値行列と比較し、ここにおいて、前記しきい値行列は、前記変換係数の行列の次元と同じ次元を有し、前記比較は、１および０の行列を生じ、０は量子化後に０になる前記変換係数の行列内のロケーションを表し、１は量子化後にゼロでないままである前記変換係数の行列内のロケーションを表す、
１および０の行列内の１の数を加算し、量子化されたときゼロでないままであると識別された前記変換係数の数を計算し、
前記１および０の行列内の１のロケーションに対応する前記変換係数の行列内の前記変換係数の少なくとも１つの絶対値を加算し、
少なくとも、前記ゼロでない変換係数の数と、前記少なくとも１つのゼロでない変換係数の加算に基づいて前記残差データのコーディングに関連するビットの数を推定する、
ビット推定モジュールと、
下記式に基づいて、前記画素ブロックをコーディングするためのコーディングコストを推定する制御モジュールと、
J=D+λmode (Rresidual+Rother)
但し、Ｊは推定されたコーディングコストを、Ｄは前記ブロックの歪みメトリックを、λmodeは複数のコーディングモードの各々のラグランジュ乗数を、Rresidualはコンテキスト適応型コーディング技法を用いて残差データをコーディングするためのビット数を、Rotherは固定長コーディング（ＦＬＣ）技法またはユニバーサル可変長コーディング(ＶＬＣ)技法を用いてその他のブロックデータをコーディングするためのビット数を表す、
を備える、装置。
【請求項６】
前記しきい値行列のしきい値の各々は、量子化パラメータ（ＱＰ）の関数として計算される請求項５に記載の装置。
【請求項７】
量子化後にゼロでないままである前記変換係数の行列のロケーションはそれぞれの対応するしきい値を満足する変換係数に対応する、
請求項６に記載の装置。
【請求項８】
前記ビット推定モジュールは、複数の組のしきい値を予め計算し、前記しきい値の組の各々は、前記ＱＰの異なる値に対応し、前記画素ブロックを符号化するために用いられる前記ＱＰの前記値に基づいて前記しきい値行列として用いられるべき前記複数のしきい値の組のうちの１つを選択する請求項６に記載の装置。
【請求項９】
デジタル映像データを処理するための装置において、
ゼロでなく量子化されておらず、量子化されたときにゼロでないままである画素ブロックの残差データに関する１つ以上の変換係数を識別するための手段と、
前記変換係数の行列を生成する手段と、ここにおいて、前記変換係数の行列の行数は前記ブロック内の画素の行数に等しく、前記変換係数の行列の列数は、前記ブロック内の画素の列数に等しく、前記識別手段は前記変換係数の行列をしきい値行列と比較し、前記しきい値行列は前記変換係数の行列の次元と同じ次元を有し、前記比較は１および０の行列を生じ、０は量子化後にゼロとなる前記変換係数の行列内のロケーションを表し、１は量子化後にゼロでないままである前記変換係数の行列内のロケーションを表す、
前記１および０の行列内の１の数を加算して量子化されたときにゼロでないままであると識別された前記変換係数の数を計算し、
前記１および０の行列内の１のロケーションに対応する前記変換係数の行列内の前記変換係数の少なくとも１つの絶対値を加算し、
少なくとも前記ゼロでない変換係数の数と、前記少なくとも１つのゼロでない変換係数の加算に基づいて前記残差データのコーディングと関連づけられたビット数を推定する、
ことにより前記残差データのコーディングと関連づけられたビットの数を推定するための手段と、
下記式に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定するための手段と、
J=D+λmode (Rresidual+Rother)
但し、Ｊは推定されたコーディングコストを、Ｄは前記ブロックの歪みメトリックを、λmodeは複数のコーディングモードの各々のラグランジュ乗数を、Rresidualはコンテキスト適応型コーディング技法を用いて残差データをコーディングするためのビット数を、Rotherは固定長コーディング（ＦＬＣ）技法またはユニバーサル可変長コーディング(ＶＬＣ)技法を用いてその他のブロックデータをコーディングするためのビット数を表す、
を備える、装置。
【請求項１０】
前記しきい値行列の前記しきい値の各々は、量子化パラメータ（ＱＰ）の関数として計算される請求項９に記載の装置。
【請求項１１】
量子化後にゼロでないままである前記変換係数の行列のロケーションはそれぞれの対応するしきい値を満足する変換係数に対応する請求項９に記載の装置。
【請求項１２】
複数の組のしきい値を予め計算するための手段であって、前記しきい値の組の各々は、前記ＱＰの異なる値に対応する手段と、
前記画素ブロックを符号化するために用いられる前記ＱＰの前記値に基づいて前記しきい値行列における使用のための前記複数のしきい値の組のうちの１つを選択するための手段と、をさらに備える請求項１０に記載の装置。
【請求項１３】
コンピュータによって実行可能なデジタル映像データを処理するための命令が格納されたコンピュータ読み取り可能記録媒体において、前記命令は、
量子化されておらずかつゼロでなく、量子化されたときにゼロでないままである画素ブロックの残差データに関する１つ以上の変換係数を識別するためのコードと、
前記変換係数の行列を生成するためのコードと、ここにおいて、前記変換係数の行列の行数は、前記ブロック内の画素の行数に等しく、前記変換係数の行列の列数は、前記ブロック内の画素の列数に等しい、
前記変換係数の行列をしきい値行列と比較するためのコードと、ここにおいて、前記しきい値行列は前記変換係数の行列の次元と同じ次元を有し、前記比較は１と０の行列を生じ、０は量子化後にゼロになる前記変換係数の行列内のロケーションを表し、１は量子化後にゼロでないままである前記変換係数の行列内のロケーションを表す、
前記１と０の行列内の１の数を加算して、量子化されたときにゼロでないままであると識別された前記変換係数の数を計算するためのコードと、
前記１と０の行列内の１のロケーションに対応する前記変換係数の行列内の前記変換係数の少なくとも１の絶対値を加算するためのコードと、
少なくとも前記ゼロ変換係数の数、および前記少なくとも１つのゼロでない変換係数の加算に基づいて前記残差データのコーディングと関連づけられたビット数を推定するためのコードと、
下記式に基づいて、前記画素ブロックをコーディングするためのコーディングコストを推定するためのコードと、
J=D+λmode (Rresidual+Rother)
但し、Ｊは推定されたコーディングコストを、Ｄは前記ブロックの歪みメトリックを、λmodeは複数のコーディングモードの各々のラグランジュ乗数を、Rresidualはコンテキスト適応型コーディング技法を用いて残差データをコーディングするためのビット数を、Rotherは固定長コーディング（ＦＬＣ）技法またはユニバーサル可変長コーディング(ＶＬＣ)技法を用いてその他のブロックデータをコーディングするためのビット数を表す、
を備える、コンピュータ読み取り可能記録媒体。
【請求項１４】
前記しきい値行列のしきい値の各々は、量子化パラメータ（ＱＰ）の関数として計算される請求項１３に記載のコンピュータ読み取り可能記録媒体。
【請求項１５】
量子化後にゼロでないままである前記変換係数の行列のロケーションはそれぞれの対応するしきい値を満足する変換係数に対応する、請求項１４に記載のコンピュータ読み取り可能記録媒体。
【請求項１６】
複数の組のしきい値を予め計算するためのコードであって、前記しきい値の組の各々は、前記ＱＰの異なる値に対応するコードと、
前記画素ブロックを符号化するために用いられる前記ＱＰの前記値に基づいて前記しきい値行列を追加するために使用されるべき前記複数のしきい値の組のうちの１つを選択するためのコードと、をさらに備える請求項１４に記載のコンピュータ読み取り可能記録媒体。
【請求項１７】
前記残差データのコーディングと関連づけられたビットの数を推定することは、少なくとも２つのブロックモードの各々において前記残差データを符号化する必要のあるビット数を推定することを具備し、前記コーディングコストを推定することは、前記少なくとも２つのブロックモードの各々において、少なくとも前記ブロックモードのそれぞれの１つにおいて推定されたビット数に基づいて前記コーディングコストを推定することを具備し、さらに少なくとも前記モードの各々に関する前記推定されたコーディングコストに基づいて前記ブロックモードのうちの１つを選択することを具備する、請求項１の方法。
【請求項１８】
前記モードの各々に関して、前記残差データのコーディングと関連づけられた前記推定されたビット数を少なくとも用いて前記画素ブロックをコーディングするためのトータルコーディングコストを推定することと、
最少の推定されたトータルコーディングコストを有する前記複数のモードのうちの１つを選択することと、
前記選択されたモードを前記画素ブロックを符号化するために適用することと、
をさらに具備する請求項１７の方法。
【請求項１９】
前記トータルコーディングコストを推定することは、
前記画素ブロックに関する歪みメトリックを計算することと、
前記画素ブロックの非残差データの符号化に関連づけられたビット数を計算することと、
前記歪みメトリック、前記非残差データの符号化と関連付けられたビット数、および前記残差データの符号化と関連付けられたビット数に少なくとも基づいて前記画素ブロックを符号化するための前記トータルコーディングコストを推定することと、
を具備する、請求項１８の方法。
【請求項２０】
少なくとも前記残差データの符号化と関連付けられた前記推定されたビット数に基づいて符号化モードを選択することと、
前記符号化モードを選択した後、前記残差データに関する前記変換係数を量子化することと、
前記残差データに関する前記量子化された変換係数を符号化することと、
前記残差データに関する前記符号化された係数を送信することと、
をさらに具備する、請求項１の方法。
【請求項２１】
前記ビット推定モジュールは、少なくとも２つのブロックモードの各々において前記残差データの符号化と関連づけられたビット数を推定し、
前記制御モジュールは、前記ブロックモードのそれぞれの１つにおける前記推定されたビット数に少なくとも基づいて前記少なくとも２つのブロックモードの各々に関するコーディングコストを推定し、前記モードの各々に関する前記推定されたコーディングコストに少なくとも基づいて前記ブロックモードのうちの１つを選択する、請求項５の装置。
【請求項２２】
前記制御モジュールは、前記モードの各々に関して、前記残差データの符号化と関連づけられた前記推定されたビット数を少なくとも用いて前記画素ブロックを符号化するためのトータルコーディングコストを推定し、最小の推定されたトータルコーディングコストを有する前記複数のモードのうちの１つを選択し、前記選択されたモードを、前記画素ブロックを符号化するために適用する、請求項２１の装置。
【請求項２３】
前記制御モジュールは、前記画素ブロックに関する歪みメトリックを計算し、前記画素ブロックの非残差データの符号化と関連づけられたビット数を計算し、前記歪みメトリック、前記非残差データの符号化と関連づけられたビット数、および前記残差データの符号化と関連づけられたビット数に少なくとも基づいて前記画素ブロックの符号化に関するトータルコーディングコストを推定する、請求項２２の装置。
【請求項２４】
前記残差データを符号化することと関連づけられた前記推定されたビット数に少なくとも基づいて符号化モードを選択する制御モジュールと、
前記符号化モードの選択の後、前記残差データに関する前記変換係数を量子化する量子化モジュールと、
前記残差データに関する前記量子化された変換係数を符号化するエントロピー符号化モジュールと、
前記残差データに関する前記符号化された係数を送信する送信機と、
をさらに具備する、請求項５の装置。
【請求項２５】
前記ビット推定手段は、少なくとも２つのブロックモードの各々において前記残差データの符号化と関連づけられたビット数を推定し、前記コーディングコスト推定手段は、少なくとも前記ブロックモードのそれぞれの１つにおける前記推定されたビット数に基づいて少なくとも２つのブロックモードの各々に関するコーディングコストを推定し、少なくとも前記モードの各々に関する前記推定されたビット数に基づいて前記ブロックモードのうちの１つを選択する手段をさらに具備する、請求項９の装置。
【請求項２６】
前記モードの各々に関して、少なくとも前記残差データの符号化と関連づけられた前記推定されたビット数を用いて前記画素ブロックを符号化するためのトータルコーディングコストを推定する手段をさらに具備し、前記選択手段は、最小の推定されたトータルコーディングコストを有する前記複数のモードのうちの１つを選択する、請求項２５の装置。
【請求項２７】
前記コーディングコスト推定手段は、前記画素ブロックに関する歪みメトリックを計算し、前記画素ブロックの非残差データの符号化と関連づけられたビット数を計算し、少なくとも前記歪みメトリック、前記非残差データの符号化と関連づけられたビット数、および前記残差データの符号化と関連づけられたビット数に基づいて前記画素ブロックを符号化するためのトータルコーディングコストを推定する、請求項２６の装置。
【請求項２８】
少なくとも前記残差データの符号化と関連づけられた前記推定されたビット数に基づいて符号化モードを選択する手段と、
前記符号化モードを選択した後、前記残差データに関する前記変換係数を量子化する手段と、
前記残差データに関する前記量子化された変換係数を符号化する手段と、および
前記残差データに関する前記符号化された係数を送信する手段と、
をさらに具備する請求項９の装置。
【請求項２９】
前記残差データの符号化と関連づけられた前記ビット数を推定するためのコードは、少なくとも２つのブロックモードの各々における前記残差データの符号化と関連づけられたビット数を推定するためのコードを具備し、前記コーディングコストを推定するためのコードは、少なくとも前記ブロックモードの各々における推定されたビット数に基づいて前記少なくとも２つのブロックモードの各々に関する前記コーディングコストを推定するためのコードを具備し、少なくとも前記モードの各々に関する前記推定されたビット数に基づいて前記ブロックモードのうちの１つを選択するためのコードをさらに具備する、請求項１３のコンピュータ読み取り可能記録媒体。
【請求項３０】
前記モードの各々に関して、前記残差データの符号化と関連づけられた前記推定されたビット数を少なくとも用いて、前記画素ブロックを符号化するためのトータルコーディングコストを推定するためのコードと、
最少の推定されたトータルコーディングコストを有する前記複数のモードのうちの１つを選択するためのコードと、および
前記選択されたモードを前記画素ブロックを符号化するための適用するためのコードと、
をさらに具備する、請求項２９のコンピュータ読み取り可能記録媒体。
【請求項３１】
前記トータルコーディングコストを推定するためのコードは、
前記画素ブロックに関する歪みメトリックを計算するためのコードと、
前記画素ブロックの非残差データの符号化と関連づけられたビット数を計算するためのコードと、
少なくとも前記歪みメトリック、前記非残差データの符号化に関連したビット数と、前記残差データの符号化と関連づけられたビット数に基づいて前記画素ブロックを符号化するためのトータルコーディングコストを推定するためのコードと、
を具備する、請求項３０のコンピュータ読み取り可能記録媒体。
【請求項３２】
少なくとも前記残差データの符号化と関連づけられた前記推定されたビット数に基づいて符号化モードを選択するためのコードと、
前記符号化モードを選択した後、前記残差データに関する前記変換係数を量子化するためのコードと、
前記残差データに関する前記量子化された変換係数を符号化するためのコードと、および
前記残差データに関する前記符号化された係数を送信するためのコードと、
をさらに具備する、請求項１３のコンピュータ読み取り可能記録媒体。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
幾つかの側面及び例が説明されている。しかしながら、これらの例の様々な修正が可能であり、さらに、ここにおいて提示される原理は、その他の側面に対しても同様に適用することができる。これらの及びその他の側面は、以下の請求項の適用範囲内である。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
デジタル映像データを処理するための方法であって、
量子化されたときにゼロでないままである画素ブロックの残差データに関する１つ以上の変換係数を識別することと、
少なくとも前記識別された変換係数に基づいて前記残差データのコーディングと関連づけられたビット数を推定することと、
前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定すること、とを備える、方法。
［Ｃ２］
前記変換係数を識別することは、前記変換係数の各々を複数のしきい値のうちの対応する１つと比較して量子化されたときにゼロでないままである前記変換係数を識別することを備え、前記複数のしきい値の各々は、量子化パラメータ（ＱＰ）の関数として計算されるＣ１に記載の方法。
［Ｃ３］
前記変換係数の各々を複数のしきい値のうちの対応する１つと比較して量子化されたときにゼロでないままである前記変換係数を識別することは、対応するしきい値よりも小さい前記変換係数を、量子化されたときにゼロでないままである変換係数として識別することを備えるＣ２に記載の方法。
［Ｃ４］
複数の組のしきい値を予め計算することであって、前記しきい値の組の各々は、前記ＱＰの異なる値に対応することと、
前記画素ブロックを符号化するために用いられる前記ＱＰの前記値に基づいて前記複数のしきい値の組のうちの１つを選択すること、とをさらに備えるＣ２に記載の方法。
［Ｃ５］
前記残差データをコーディングすることと関連づけられた前記ビット数を推定することは、
量子化されたときにゼロでないままであるとして識別された前記変換係数の数を決定することと、
量子化されたときにゼロでないままであるとして識別された前記変換係数のうちの少なくとも１つの絶対値を合計することと、
ゼロでない変換係数の少なくとも前記決定された数及び前記少なくとも１つのゼロでない変換係数の前記絶対値の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定すること、とを備えるＣ１に記載の方法。
［Ｃ６］
前記残差データのコーディングと関連づけられた前記ビット数を推定することは、少なくとも２つのブロックモードの各々において前記残差データをコーディングするために要求されるビット数を推定することを備え、前記コーディングコストを推定することは、前記少なくとも２つのブロックモードの各々において、前記ブロックモードのうちの前記各々の１つにおける少なくとも前記推定されたビット数に基づいて前記コーディングコストを推定することを備え、前記モードの各々に関して少なくとも前記推定されたコーディングコストに基づいて前記ブロックモードのうちの１つを選択することをさらに備えるＣ１に記載の方法。
［Ｃ７］
前記モードの各々に関して、前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数を用いて前記画素ブロックをコーディングするための総コーディングコストを推定することと、
前記複数のモードのうちで最低の推定された総コーディングコストを有するモードを選択することと、
前記選択されたモードを適用して前記画素ブロックをコーディングすること、とをさらに備えるＣ６に記載の方法。
［Ｃ８］
前記総コーディングコストを推定することは、
前記画素ブロックに関する歪みメトリックを計算することと、
前記画素ブロックの非残差データのコーディングと関連づけられたビット数を計算することと、
少なくとも前記歪みメトリック、前記非残差データのコーディングと関連づけられた前記ビット数、及び前記残差データのコーディングと関連づけられた前記ビット数に基づいて前記画素ブロックをコーディングするための前記総コーディングコストを推定すること、とを備えるＣ７に記載の方法。
［Ｃ９］
前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数に基づいてコーディングコーディングを選択することと、
前記コーディングモードを選択後に前記残差データに関する前記変換係数を量子化することと、
前記残差データに関する前記量子化された変換係数を符号化することと、
前記残差データに関する前記符号化された係数を送信すること、とをさらに備えるＣ１に記載の方法。
［Ｃ１０］
前記変換係数の行列を生成することであって、前記変換係数行列の行数は、前記ブロック内における画素の行数と等しく、前記変換係数行列の列数は、前記ブロック内における画素の列数と等しいことと、
前記変換係数行列をしきい値行列と比較することであって、前記しきい値行列は、前記変換係数行列の次元と同じ次元を有し、前記比較は、１及びゼロの行列が得られ、前記ゼロは、量子化後にゼロになる前記変換係数行列内の位置を表し、前記１は、量子化後にゼロでないままである前記変換係数行列内の位置を表すことと、
前記１及びゼロの行列内における１の数を合計して量子化時にゼロでないままであるとして識別された前記変換係数の数を計算することと、
前記１及びゼロの行列内の前記１の位置に対応する前記変換係数行列内の前記変換係数のうちの少なくとも１つの絶対値を合計することと、
少なくとも前記ゼロでない変換係数の数及び前記少なくとも１つのゼロでない変換係数の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定すること、とをさらに備えるＣ１に記載の方法。
［Ｃ１１］
デジタル映像データを処理するための装置であって、
画素ブロックの残差データに関する変換係数を生成する変換モジュールと、
量子化されたときにゼロでないままである前記変換係数のうちの１つ以上を識別し及び少なくとも前記識別された変換係数に基づいて前記残差データのコーディングと関連づけられたビット数を推定するビット推定モジュールと、
前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定する制御モジュールと、を備える、装置。
［Ｃ１２］
前記ビット推定モジュールは、前記変換係数の各々を複数のしきい値のうちの対応する１つと比較して量子化されたときにゼロでないままである変換係数を識別し、前記複数のしきい値の各々は、量子化パラメータ（ＱＰ）の関数として計算されるＣ１１に記載の装置。
［Ｃ１３］
前記ビット推定モジュールは、対応するしきい値よりも小さい前記変換係数を、量子化されたときにゼロでないままである変換係数として識別するＣ１２に記載の装置。
［Ｃ１４］
前記ビット推定モジュールは、複数の組のしきい値を予め計算し、前記しきい値の組の各々は、前記ＱＰの異なる値に対応し、前記しきい値の組の各々は、前記ＱＰの異なる値に対応し、前記画素ブロックを符号化するために用いられる前記ＱＰの前記値に基づいて前記複数のしきい値の組のうちの１つを選択するＣ１２に記載の装置。
［Ｃ１５］
前記ビット推定モジュールは、量子化されたときにゼロでないままであるとして識別された前記変換係数の数を決定し、量子化されたときにゼロでないままであるとして識別された前記変換係数のうちの少なくとも１つの絶対値を合計し及びゼロでない変換係数の少なくとも前記決定された数及び前記少なくとも１つのゼロでない変換係数の前記絶対値の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定するＣ１１に記載の装置。
［Ｃ１６］
前記ビット推定モジュールは、少なくとも２つのブロックモードの各々における前記残差データのコーディングと関連づけられた前記ビット数を推定し、
前記制御モジュールは、前記少なくとも２つのブロックモードのうちの各々の１つにおける少なくとも前記推定されたビット数に基づいて前記ブロックの各々に関するコーディングコストを推定し、及び前記モードの各々に関して少なくとも前記推定されたコーディングコストに基づいて前記ブロックモードのうちの１つを選択するＣ１１に記載の装置。
［Ｃ１７］
前記制御モジュールは、前記モードの各々に関して、前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数を用いて前記画素ブロックをコーディングするための総コーディングコストを推定し、前記複数のモードのうちで最低の推定された総コーディングコストを有するモードを選択し、及び前記選択されたモードを適用して前記画素ブロックをコーディングするＣ１６に記載の装置。
［Ｃ１８］
前記制御モジュールは、前記画素ブロックに関する歪みメトリックを計算し、前記画素ブロックの非残差データのコーディングと関連づけられたビット数を計算し及び少なくとも前記歪みメトリック、前記非残差データのコーディングと関連づけられたビット数及び前記残差データのコーディングと関連づけられた前記ビット数に基づいて前記画素ブロックをコーディングするための前記総コーディングコストを推定するＣ１７に記載の装置。
［Ｃ１９］
前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいてコーディングモードを選択する制御モジュールと、
前記コーディングモードの選択後に前記残差データに関する前記変換係数を量子化する量子化モジュールと、
前記残差データに関する前記量子化された変換係数を符号化するエントロピー符号化モジュールと、
前記残差データに関する前記符号化された係数を送信する送信機と、をさらに備えるＣ１１に記載の装置。
［Ｃ２０］
前記変換モジュールは、前記変換係数の行列を生成し、前記変換係数行列の行数は、前記ブロック内における画素の行数と等しく、前記変換係数行列の列数は、前記ブロック内における画素の列数と等しく、
前記ビット推定モジュールは、前記変換係数行列をしきい値行列と比較し、前記しきい値行列は、前記変換係数行列の次元と同じ次元を有し、前記比較は、１及びゼロの行列が得られ、前記ゼロは、量子化後にゼロになる前記変換係数行列内の位置を表し、前記１は、量子化後にゼロでないままである前記変換係数行列内の位置を表し、
前記ビット推定モジュールは、前記１及びゼロの行列内における１の数を合計して量子化されたときにゼロでないままであるとして識別された前記変換係数の数を計算し、前記１及びゼロの行列内の前記１の位置に対応する前記変換係数行列内の前記変換係数のうちの少なくとも１つの絶対値を合計し、及び少なくとも前記ゼロでない変換係数の数及び前記少なくとも１つのゼロでない変換係数の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定するＣ１１に記載の装置。
［Ｃ２１］
デジタル映像データを処理するための装置であって、
量子化されたときにゼロでないままである画素ブロックの残差データに関する１つ以上の変換係数を識別するための手段と、
少なくとも前記識別された変換係数に基づいて前記残差データのコーディングと関連づけられたビット数を推定するための手段と、
前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定するための手段と、を備える、装置。
［Ｃ２２］
前記識別する手段は、前記変換係数の各々を複数のしきい値のうちの対応する１つと比較して量子化されたときにゼロでないままである変換係数を識別し、前記複数のしきい値の各々は、量子化パラメータ（ＱＰ）の関数として計算されるＣ２１に記載の装置。
［Ｃ２３］
前記識別する手段は、対応するしきい値よりも小さい前記変換係数を、量子化されたときにゼロでないままである変換係数として識別するＣ２２に記載の装置。
［Ｃ２４］
複数の組のしきい値を予め計算するための手段であって、前記しきい値の組の各々は、前記ＱＰの異なる値に対応する手段と、
前記画素ブロックを符号化するために用いられる前記ＱＰの前記値に基づいて前記複数のしきい値の組のうちの１つを選択するための手段と、をさらに備えるＣ２２に記載の装置。
［Ｃ２５］
前記推定する手段は、量子化されたときにゼロでないままであるとして識別された前記変換係数の数を決定し、量子化されたときにゼロでないままであるとして識別された前記変換係数のうちの少なくとも１つの絶対値を合計し、及びゼロでない変換係数の少なくとも前記決定された数及び前記少なくとも１つのゼロでない変換係数の前記絶対値の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定するＣ２１に記載の装置。
［Ｃ２６］
前記ビット推定手段は、少なくとも２つのブロックモードの各々における前記残差データのコーディングと関連づけられたビット数を推定し、及び前記コーディングコスト推定手段は、前記少なくとも２つのブロックモードのうちの各々の１つにおける少なくとも前記推定されたビット数に基づいて前記ブロックモードの各々に関するコーディングコストを推定し、及び前記ブロックモードの各々に関して少なくとも前記推定されたビット数に基づいて前記ブロックモードのうちの１つを選択するための手段をさらに備えるＣ２１に記載の装置。
［Ｃ２７］
前記モードの各々に関して、前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数を用いて前記画素ブロックをコーディングするための総コーディングコストを推定するための手段をさらに備え、前記選択する手段は、前記複数のモードのうちで最低の推定された総コーディングコストを有するモードを選択するＣ２６に記載の装置。
［Ｃ２８］
前記コーディングコスト推定手段は、前記画素ブロックに関する歪みメトリックを計算し、前記画素ブロックの非残差データのコーディングと関連づけられたビット数を計算し、及び少なくとも前記歪みメトリック、前記非残差データのコーディングと関連づけられた前記ビット数及び前記残差データのコーディングと関連づけられた前記ビット数に基づいて前記画素ブロックをコーディングするための前記総コーディングコストを推定するＣ２７に記載の装置。
［Ｃ２９］
前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数に基づいてコーディングモードを選択するための手段と、
前記コーディングモードを選択後に前記残差データに関する前記変換係数を量子化するための手段と、
前記残差データに関する前記量子化された変換係数を符号化するための手段と、
前記残差データに関する前記符号化された係数を送信するための手段と、をさらに備えるＣ２１に記載の装置。
［Ｃ３０］
前記変換係数の行列を生成するための手段をさらに備え、前記変換係数行列の行数は、前記ブロック内における画素の行数と等しく、前記変換係数行列の列数は、前記ブロック内における画素の列数と等しく、
前記識別する手段は、前記変換係数行列をしきい値行列と比較し、前記しきい値行列は、前記変換係数行列の次元と同じ次元を有し、前記比較は、１及びゼロの行列が得られ、前記ゼロは、量子化後にゼロになる前記変換係数行列内の位置を表し、前記１は、量子化後にゼロでないままである前記変換係数行列内の位置を表し、
前記推定する手段は、前記１及びゼロの行列内における１の数を合計して量子化されたときにゼロでないままであるとして識別された前記変換係数の数を計算し、前記１及びゼロの行列内の前記１の位置に対応する前記変換係数行列内の前記変換係数のうちの少なくとも１つの絶対値を合計し、及び少なくとも前記ゼロでない変換係数の数及び前記少なくとも１つのゼロでない変換係数の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定するＣ２１に記載の装置。
［Ｃ３１］
命令が格納されているコンピュータによって読み取り可能な媒体を備える、デジタル映像データを処理するためのコンピュータプログラム製品であって、前記命令は、
量子化されたときにゼロでないままである画素ブロックの残差データに関する１つ以上の変換係数を識別するための符号と、
少なくとも前記識別された変換係数に基づいて前記残差データのコーディングと関連づけられたビット数を推定するための符号と、
前記残差データをコーディングすることと関連づけられた少なくとも前記推定されたビット数に基づいて前記画素ブロックをコーディングするためのコーディングコストを推定するための符号と、を備える、コンピュータプログラム製品。
［Ｃ３２］
前記変換係数を識別するための符号は、前記変換係数の各々を複数のしきい値のうちの対応する１つと比較して量子化されたときにゼロでないままである変換係数を識別し、前記複数のしきい値の各々は、量子化パラメータ（ＱＰ）の関数として計算されるＣ３１に記載のコンピュータプログラム製品。
［Ｃ３３］
前記変換係数の各々を複数のしきい値のうちの対応する１つと比較して量子化されたときにゼロでないままである変換係数を識別するための符号は、対応するしきい値よりも小さい前記変換係数を、量子化されたときにゼロでないままである変換係数として識別するための符号を備えるＣ３２に記載のコンピュータプログラム製品。
［Ｃ３４］
複数の組のしきい値を予め計算するための符号であって、前記しきい値の組の各々は、前記ＱＰの異なる値に対応する符号と、
前記画素ブロックを符号化するために用いられる前記ＱＰの前記値に基づいて前記複数のしきい値の組のうちの１つを選択するための符号と、をさらに備えるＣ３２に記載のコンピュータプログラム製品。
［Ｃ３５］
前記残差データのコーディングと関連づけられた前記ビット数を推定するための符号は、
量子化されたときにゼロでないままであるとして識別された前記変換係数の数を決定するための符号と、
量子化されたときにゼロでないままであるとして識別された前記変換係数のうちの少なくとも１つの絶対値を合計するための符号と、
ゼロでない変換係数の少なくとも前記決定された数及び前記少なくとも１つのゼロでない変換係数の前記絶対値の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定するための符号と、を備えるＣ３１に記載のコンピュータプログラム製品。
［Ｃ３６］
前記残差データのコーディングと関連づけられた前記ビット数を推定するための符号は、少なくとも２つのブロックモードのうちの各々における前記残差データのコーディングと関連づけられたビット数を推定するための符号を備え、及び前記コーディングコストを推定するための符号は、前記ブロックモードのうちの各々の１つにおける少なくとも前記推定されたビット数に基づいて前記少なくとも２つのブロックノードの各々に関する前記コーディングコストを推定するための符号を備え、及び前記ブロックモードの各々に関して少なくとも前記推定されたビット数に基づいて前記ブロックモードのうちの１つを選択するための符号をさらに備えるＣ３１に記載のコンピュータプログラム製品。
［Ｃ３７］
前記モードの各々に関して、前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数を用いて前記画素ブロックをコーディングするための総コーディングコストを推定するための符号と、
前記複数のモードのうちで最低の推定された総コーディングコストを有するモードを選択するための符号と、
前記選択されたモードを適用して前記画素ブロックをコーディングするための符号と、をさらに備えるＣ３６に記載のコンピュータプログラム製品。
［Ｃ３８］
前記総コーディングコストを推定するための符号は、
前記画素ブロックに関する歪みメトリックを計算するための符号と、
前記画素ブロックの非残差データのコーディングと関連づけられたビット数を計算するための符号と、
少なくとも前記歪みメトリック、前記非残差データのコーディングと関連づけられた前記ビット数及び前記残差データのコーディングと関連づけられた前記ビット数に基づいて前記画素ブロックをコーディングするための前記総コーディングコストを推定するための符号と、を備えるＣ３７に記載のコンピュータプログラム製品。
［Ｃ３９］
前記残差データのコーディングと関連づけられた少なくとも前記推定されたビット数に基づいてコーディングモードを選択するための符号と、
前記コーディングモードを選択後に前記残差データに関する前記変換係数を量子化するための符号と、
前記残差データに関する前記量子化された変換係数を符号化するための符号と、
前記残差データに関する前記符号化された係数を送信するための符号と、をさらに備えるＣ３１に記載のコンピュータプログラム製品。
［Ｃ４０］
前記変換係数の行列を生成するための符号であって、前記変換係数行列の行数は、前記ブロック内における画素の行数と等しく、前記変換係数行列の列数は、前記ブロック内における画素の列数と等しい符号と、
前記変換係数行列をしきい値行列と比較するための符号であって、前記しきい値行列は、前記変換係数行列の次元と同じ次元を有し、前記比較は、１及びゼロの行列が得られ、前記ゼロは、量子化後にゼロになる前記変換係数行列内の位置を表し、前記１は、量子化後にゼロでないままである前記変換係数行列内の位置を表す符号と、
前記１及びゼロの行列内における１の数を合計して量子化されたときにゼロでないままであるとして識別された前記変換係数の数を計算するための符号と、
前記１及びゼロの行列内における前記１の位置に対応する前記変換係数行列内の前記変換係数のうちの少なくとも１つの絶対値を合計するための符号と、
少なくとも前記ゼロでない変換係数の数及び前記少なくとも１つのゼロでない変換係数の和に基づいて前記残差データのコーディングと関連づけられた前記ビット数を推定するための符号と、をさらに備えるＣ３１に記載のコンピュータプログラム製品。
【外国語明細書】
2014003648000001.pdf