(57)【要約】      （修正有）【課題】ビデオブロックの幾何学的動き区分化をサポートするための技法を提供する。【解決手段】幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算することと、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算することと、マスクに基づいて第１の区分と第２の区分とを符号化することと、符号化された第１の区分と、符号化された第２の区分と、傾斜値と、ｙ切片値とを出力することとを行うように構成されたビデオエンコーダを含む。これは固定小数点実装形態を可能にし得る。ビデオデコーダが、傾斜値及びｙ切片値を受信して、マスクを計算し、マスクに基づいてブロックを復号し得る。【選択図】図２
2014209743.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、前記方法は、
幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、
前記幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算することと、
前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することと、
前記符号化された第１の区分と、前記符号化された第２の区分と、前記傾斜値と、前記ｙ切片値とを出力することと、
を含む、方法。
【請求項２】
前記マスクを計算することが、固定小数点演算のみを使用して前記マスクを計算することを含む、請求項１に記載の方法。
【請求項３】
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを含み、前記マスクを計算することは、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定することを含む、請求項１に記載の方法。
【請求項４】
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することは、
前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、
前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、
前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すことと
を含む、請求項１に記載の方法。
【請求項５】
遷移領域中の前記ブロックの画素のセットを決定することと、
前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することと、
をさらに含む、請求項４に記載の方法。
【請求項６】
前記幾何学的動き区分線の前記傾斜値及び前記ｙ切片値を計算することは、
角度値及び長さ値に基づいて初期傾斜値及び初期ｙ切片値を計算することと、
前記初期傾斜値及び前記初期ｙ切片値と、２のべき乗を含む１つ以上の値との積を計算することと、
前記傾斜値及び前記ｙ切片値を形成するために前記積を最も近い整数値に丸めることと、
を含み、前記角度値が、ｘ軸に対する、前記幾何学的動き区分線に直交し原点を通る線の角度を有し、前記長さ値は、前記原点から、前記直交線が前記幾何学的動き区分線と交わる点までの距離を有する、請求項１に記載の方法。
【請求項７】
ビデオデータを符号化するための装置であって、前記装置は、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、前記幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算することと、前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することと、前記符号化された第１の区分と、前記符号化された第２の区分と、前記傾斜値と、前記ｙ切片値とを出力することとを行うように構成されたビデオエンコーダを備える、装置。
【請求項８】
前記ビデオエンコーダが、固定小数点演算のみを使用して前記マスクを計算するように構成された、請求項７に記載の装置。
【請求項９】
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを有し、前記マスクを計算するために、前記ビデオエンコーダは、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定するように構成された、請求項７に記載の装置。
【請求項１０】
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化するために、前記ビデオエンコーダは、前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すこととを行うように構成された、請求項７に記載の装置。
【請求項１１】
前記ビデオエンコーダが、遷移領域中の前記ブロックの画素のセットを決定することと、前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することとを行うように構成された、請求項１０に記載の装置。
【請求項１２】
前記幾何学的動き区分線の前記傾斜値及び前記ｙ切片値を計算するために、前記ビデオエンコーダは、角度値及び長さ値に基づいて初期傾斜値及び初期ｙ切片値を計算することと、前記初期傾斜値及び前記初期ｙ切片値と、２のべき乗を含む１つ以上の値との積を計算することと、前記傾斜値及び前記ｙ切片値を形成するために前記積を最も近い整数値に丸めることとを行うように構成され、前記角度値が、ｘ軸に対する、前記幾何学的動き区分線に直交し原点を通る線の角度を備え、前記長さ値は、前記原点から、前記直交線が前記幾何学的動き区分線と交わる点までの距離を有する、請求項７に記載の装置。
【請求項１３】
ビデオデータを符号化するための装置であって、前記装置は、
幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化するための手段と、
前記幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算するための手段と、
前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算するための手段と、
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化するための手段と、
前記符号化された第１の区分と、前記符号化された第２の区分と、前記傾斜値と、前記ｙ切片値とを出力するための手段と、
を備える、装置。
【請求項１４】
前記マスクを計算するための前記手段が、固定小数点演算のみを使用して前記マスクを計算するための手段を備える、請求項１３に記載の装置。
【請求項１５】
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを備え、前記マスクを計算するための前記手段は、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定するための手段を備える、請求項１３に記載の装置。
【請求項１６】
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化するための前記手段は、
前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定するための手段と、
前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すための手段と、
前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すための手段と、
を備える、請求項１３に記載の装置。
【請求項１７】
遷移領域中の前記ブロックの画素のセットを決定するための手段と、
前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算するための手段と、
をさらに備える、請求項１６に記載の装置。
【請求項１８】
前記幾何学的動き区分線の前記傾斜値及び前記ｙ切片値を計算するための前記手段は、
角度値及び長さ値に基づいて初期傾斜値及び初期ｙ切片値を計算するための手段と、
前記初期傾斜値及び前記初期ｙ切片値と、２のべき乗を含む１つ以上の値との積を計算するための手段と、
前記傾斜値及び前記ｙ切片値を形成するために前記積を最も近い整数値に丸めるための手段と、
を備え、前記角度値が、ｘ軸に対する、前記幾何学的動き区分線に直交し原点を通る線の角度を有し、前記長さ値は、前記原点から、前記直交線が前記幾何学的動き区分線と交わる点までの距離を有する、請求項１３に記載の装置。
【請求項１９】
実行されると、
幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、
前記幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算することと、
前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することと、
前記符号化された第１の区分と、前記符号化された第２の区分と、前記傾斜値と、前記ｙ切片値とを出力することと、
をプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
【請求項２０】
前記マスクを計算することを前記プロセッサに行わせる前記命令が、固定小数点演算のみを使用して前記マスクを計算することを前記プロセッサに行わせる命令を含む、請求項１９に記載のコンピュータプログラム製品。
【請求項２１】
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを備え、前記マスクを計算することを前記プロセッサに行わせる前記命令は、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定することを前記プロセッサに行わせる命令を含む、請求項１９に記載のコンピュータプログラム製品。
【請求項２２】
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することを前記プロセッサに行わせる前記命令は、
前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、
前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、
前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すことと、
を前記プロセッサに行わせる命令を含む、請求項１９に記載のコンピュータプログラム製品。
【請求項２３】
遷移領域中の前記ブロックの画素のセットを決定することと、
前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することと、
を前記プロセッサに行わせる命令をさらに含む、請求項２２に記載のコンピュータプログラム製品。
【請求項２４】
前記幾何学的動き区分線の前記傾斜値及び前記ｙ切片値を計算することを前記プロセッサに行わせる前記命令は、
角度値及び長さ値に基づいて初期傾斜値及び初期ｙ切片値を計算することであって、前記角度値が、ｘ軸に対する、前記幾何学的動き区分線に直交し原点を通る線の角度を備え、前記長さ値は、前記原点から、前記直交線が前記幾何学的動き区分線と交わる点までの距離を備える、計算することと、
前記初期傾斜値及び前記初期ｙ切片値と、２のべき乗を含む１つ以上の値との積を計算することと、
前記傾斜値及び前記ｙ切片値を形成するために前記積を最も近い整数値に丸めることと、
を前記プロセッサに行わせる命令を含む、請求項１９に記載のコンピュータプログラム製品。
【請求項２５】
ビデオデータを復号する方法であって、前記方法は、
幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、
前記幾何学的動き区分線を定義する傾斜値及びｙ切片値を受信することであって、前記傾斜値及び前記ｙ切片値が整数値を備える、受信することと、
前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、
前記マスクに基づいて前記ブロックの前記第１の区分と前記第２の区分とを復号することと、
前記復号されたブロックを出力することと、
を含む、方法。
【請求項２６】
前記マスクを計算することが、固定小数点演算のみを使用して前記マスクを計算することを含む、請求項２５に記載の方法。
【請求項２７】
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを備え、前記マスクを計算することは、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定することを含む、請求項２５に記載の方法。
【請求項２８】
前記マスクに基づいて前記第１の区分と前記第２の区分とを復号することは、
前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、
前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、
前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すことと、
を含む、請求項２５に記載の方法。
【請求項２９】
遷移領域中の前記ブロックの画素のセットを決定することと、
前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することと、
をさらに含む、請求項２８に記載の方法。
【請求項３０】
ビデオデータを復号するための装置であって、前記装置は、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、前記幾何学的動き区分線を定義し、整数値を有する傾斜値及びｙ切片値を受信することと、前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、前記マスクに基づいて前記ブロックの前記第１の区分と前記第２の区分とを復号することと、前記復号されたブロックを出力することとを行うように構成されたビデオデコーダを備える、装置。
【請求項３１】
前記ビデオデコーダが、固定小数点演算のみを使用して前記マスクを計算するように構成された、請求項３０に記載の装置。
【請求項３２】
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを備え、前記マスクを計算するために、前記ビデオデコーダは、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定するように構成された、請求項３０に記載の装置。
【請求項３３】
前記マスクに基づいて前記第１の区分と前記第２の区分とを復号するために、前記ビデオデコーダは、前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すこととを行うように構成された、請求項３０に記載の装置。
【請求項３４】
前記ビデオデコーダが、遷移領域中の前記ブロックの画素のセットを決定することと、前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することとを行うように構成された、請求項３３に記載の装置。
【請求項３５】
ビデオデータを復号するための装置であって、前記装置は、
幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信するための手段と、
前記幾何学的動き区分線を定義し、整数値を有する傾斜値及びｙ切片値を受信するための手段と、
前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算するための手段と、
前記マスクに基づいて前記ブロックの前記第１の区分と前記第２の区分とを復号するための手段と、
前記復号されたブロックを出力するための手段と、
を備える、装置。
【請求項３６】
前記マスクを計算するための前記手段が、固定小数点演算のみを使用して前記マスクを計算するための手段を備える、請求項３５に記載の装置。
【請求項３７】
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを備え、前記マスクを計算するための前記手段は、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定するための手段を備える、請求項３５に記載の装置。
【請求項３８】
前記マスクに基づいて前記第１の区分と前記第２の区分とを復号するための前記手段は、
前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定するための手段と、
前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すための手段と、
前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すための手段と、
を備える、請求項３５に記載の装置。
【請求項３９】
遷移領域中の前記ブロックの画素のセットを決定するための手段と、
前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算するための手段と、
をさらに備える、請求項３８に記載の装置。
【請求項４０】
実行されると、
幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、
前記幾何学的動き区分線を定義する傾斜値及びｙ切片値を受信することであって、前記傾斜値及び前記ｙ切片値が整数値を備える、受信することと、
前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、
前記マスクに基づいて前記ブロックの前記第１の区分と前記第２の区分とを復号することと、
前記復号されたブロックを出力することと、
をプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を含むコンピュータプログラム製品。
【請求項４１】
前記マスクを計算することを前記プロセッサに行わせる前記命令が、固定小数点演算のみを使用して前記マスクを計算することを前記プロセッサに行わせる命令を含む、請求項４０に記載のコンピュータプログラム製品。
【請求項４２】
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを備え、前記マスクを計算することを前記プロセッサに行わせる前記命令は、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定することを前記プロセッサに行わせる命令を含む、請求項４０に記載のコンピュータプログラム製品。
【請求項４３】
前記マスクに基づいて前記第１の区分と前記第２の区分とを復号することを前記プロセッサに行わせる前記命令は、
前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、
前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、
前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すことと、
を前記プロセッサに行わせる命令を含む、請求項４０に記載のコンピュータプログラム製品。
【請求項４４】
遷移領域中の前記ブロックの画素のセットを決定することと、
前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することと、
を前記プロセッサに行わせる命令をさらに含む、請求項４３に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、各々の内容全体が参照により本明細書に明確に組み込まれる、２０１０年２月１８日に出願された米国仮出願第６１／３０５，８９２号、２０１０年４月１２日に出願された米国仮出願第６１／３２３，２３３号、及び２０１０年４月１２日に出願された米国仮出願第６１／３２３，２４４号の利益を主張する。
【０００２】
関連出願の相互参照
本特許出願は、代理人整理番号第１０１０５０Ｕ１号を有し、本明細書と同時に出願され、本出願の譲受人に譲渡され、参照により本明細書に明確に組み込まれる、Ｃｈｅｎらによる「SMOOTHING OVERLAPPED REGIONS RESULTING FROM GEOMETRIC MOTION PARTITIONING」、代理人整理番号第１０１０５０Ｕ２号を有し、本明細書と同時に出願され、本出願の譲受人に譲渡され、参照により本明細書に明確に組み込まれる、Ｃｈｅｎらによる「ADAPTIVE TRANSFORM SIZE SELECTION FOR GEOMETRIC MOTION PARTITIONING」、及び代理人整理番号第１０１０５０Ｕ３号を有し、本明細書と同時に出願され、本出願の譲受人に譲渡され、参照により本明細書に明確に組み込まれる、Ｃｈｅｎらによる「ENCODING MOTION VECTORS FOR GEOMETRIC MOTION PARTITIONING」という同時係属米国特許出願に関係する。
【０００３】
本開示は、ビデオ符号化に関する。
【背景技術】
【０００４】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録装置、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー電話又は衛星無線電話、ビデオ遠隔会議機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３又はＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義された規格、及びそのような規格の拡張に記載されているビデオ圧縮技法などのビデオ圧縮技法を実装して、デジタルビデオ情報をより効率的に送信及び受信する。
【０００５】
ビデオ圧縮技法では、ビデオシーケンスに固有の冗長性を低減又は除去するために空間的予測及び／又は時間的予測を実行する。ブロックベースのビデオ符号化の場合、ビデオフレーム又はスライスがマクロブロックに区分化され得る。各マクロブロックはさらに区分化され得る。イントラコード化（Ｉ）フレーム又はスライス中のマクロブロックは、隣接マクロブロックに関する空間的予測を使用して符号化される。インターコード化（Ｐ又はＢ）フレーム又はスライス中のマクロブロックは、同じフレーム又はスライス中の隣接マクロブロックに関する空間的予測、或いは他の参照フレームに関する時間的予測を使用し得る。
【発明の概要】
【０００６】
概して、本開示では、ビデオブロックの幾何学的動き区分化をサポートするための技法について説明する。即ち、矩形ブロックを２つ以上の厳密に矩形の区分(partitions)に区分化するのではなく、本開示の技法は、幾何学的動き区分化と呼ばれる、任意の区分境界を使用してブロックを区分化することを可能にする。幾何学的動き区分化をサポートするために、本開示は、区分境界における区分の重複部分のための動き補償を実行するための技法を提供する。本開示は、区分化されたブロックのサブブロックのための変換サイズを適応的に選択するための技法をも提供する。さらに、本開示は、区分の動きベクトルを個々に符号化するための技法を提供する。その上、本開示の技法は、固定小数点実装形態又は浮動小数点実装形態のいずれかを使用して実行され得る。
【０００７】
一例では、方法が、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、第１の区分からの少なくとも１つの隣接画素についての値と第２の区分からの少なくとも１つの隣接画素についての値とを適用するフィルタを使用してブロックの遷移領域中の画素の予測値を計算することと、遷移領域中の画素の予測値に基づいてブロックの遷移領域中の画素の残差値を計算することと、画素の残差値を出力することとを含む。
【０００８】
別の例では、装置が、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、第１の区分からの少なくとも１つの隣接画素についての値と第２の区分からの少なくとも１つの隣接画素についての値とを適用するフィルタを使用してブロックの遷移領域中の画素の予測値を計算することと、遷移領域中の画素の予測値に基づいてブロックの遷移領域中の画素の残差値を計算することと、画素の残差値を出力することとを行うように構成されたビデオエンコーダ（ビデオ符号器）を含む。
【０００９】
別の例では、装置が、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化するための手段と、第１の区分からの少なくとも１つの隣接画素についての値と第２の区分からの少なくとも１つの隣接画素についての値とを適用するフィルタを使用してブロックの遷移領域中の画素の予測値を計算するための手段と、遷移領域中の画素の予測値に基づいてブロックの遷移領域中の画素の残差値を計算するための手段と、画素の残差値を出力するための手段とを含む。
【００１０】
別の例では、コンピュータプログラム製品が、実行されると、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、第１の区分からの少なくとも１つの隣接画素についての値と第２の区分からの少なくとも１つの隣接画素についての値とを適用するフィルタを使用してブロックの遷移領域中の画素の予測値を計算することと、遷移領域中の画素の予測値に基づいてブロックの遷移領域中の画素の残差値を計算することと、画素の残差値を出力することとをプロセッサに行わせる命令を記憶したコンピュータ可読媒体を備える。
【００１１】
別の例では、方法が、ビデオデータの符号化されたブロックと、符号化されたブロックを第１の区分と第２の区分とに区分化する幾何学的動き区分線の定義と、ブロックの遷移領域中の画素についての残差値とを受信することと、第１の区分からの少なくとも１つの隣接画素についての値と第２の区分からの少なくとも１つの隣接画素についての値とを適用するフィルタを使用してブロックの遷移領域中の画素の予測値を計算することと、予測値及び残差値に基づいてブロックの遷移領域中の画素についての再構成値を計算することと、画素の再構成値を出力することとを含む。
【００１２】
別の例では、装置が、ビデオデータの符号化されたブロックと、符号化されたブロックを第１の区分と第２の区分とに区分化する幾何学的動き区分線の定義と、ブロックの遷移領域中の画素についての残差値とを受信することと、第１の区分からの少なくとも１つの隣接画素についての値と第２の区分からの少なくとも１つの隣接画素についての値とを適用するフィルタを使用してブロックの遷移領域中の画素の予測値を計算することと、予測値及び残差値に基づいてブロックの遷移領域中の画素についての再構成値を計算することと、画素の再構成値を出力することとを行うように構成されたビデオデコーダ（ビデオ復号器）を含む。
【００１３】
別の例では、装置が、ビデオデータの符号化されたブロックと、符号化されたブロックを第１の区分と第２の区分とに区分化する幾何学的動き区分線の定義と、ブロックの遷移領域中の画素についての残差値とを受信するための手段と、第１の区分からの少なくとも１つの隣接画素についての値と第２の区分からの少なくとも１つの隣接画素についての値とを適用するフィルタを使用してブロックの遷移領域中の画素の予測値を計算するための手段と、予測値及び残差値に基づいてブロックの遷移領域中の画素についての再構成値を計算するための手段と、画素の再構成値を出力するための手段とを含む。
【００１４】
別の例では、コンピュータプログラム製品が、実行されると、ビデオデータの符号化されたブロックと、符号化されたブロックを第１の区分と第２の区分とに区分化する幾何学的動き区分線の定義と、ブロックの遷移領域中の画素についての残差値とを受信することと、第１の区分からの少なくとも１つの隣接画素についての値と第２の区分からの少なくとも１つの隣接画素についての値とを適用するフィルタを使用してブロックの遷移領域中の画素の予測値を計算することと、予測値及び残差値に基づいてブロックの遷移領域中の画素についての再構成値を計算することと、画素の再構成値を出力することとをプロセッサに行わせる命令を記憶したコンピュータ可読媒体を備える。
【００１５】
別の例では、方法が、幾何学的動き区分線を使用してビデオデータの（Ｎ×Ｎ画素を含む）ブロックを第１の幾何学的区分と第２の幾何学的区分とに区分化すること、ビデオデータのブロックを４つの等しいサイズの重複しない（Ｎ／２）×（Ｎ／２）サブブロックに分割することと、（Ｎ／２）×（Ｎ／２）よりも小さい変換サイズを使用して、幾何学的動き区分線がそれを通るサブブロックのうちの少なくとも１つを符号化することとを含む。
【００１６】
別の例では、装置が、幾何学的動き区分線を使用してビデオデータの（Ｎ×Ｎ画素を含む）ブロックを第１の幾何学的区分と第２の幾何学的区分とに区分化することと、ビデオデータのブロックを４つの等しいサイズの重複しない（Ｎ／２）×（Ｎ／２）サブブロックに分割することと、（Ｎ／２）×（Ｎ／２）よりも小さい変換サイズを使用して、幾何学的動き区分線がそれを通るサブブロックのうちの少なくとも１つを符号化することとを含むビデオエンコーダを含む。
【００１７】
別の例では、装置が、幾何学的動き区分線を使用してビデオデータの（Ｎ×Ｎ画素を含む）ブロックを第１の幾何学的区分と第２の幾何学的区分とに区分化するための手段と、ビデオデータのブロックを４つの等しいサイズの重複しない（Ｎ／２）×（Ｎ／２）サブブロックに分割するための手段と、（Ｎ／２）×（Ｎ／２）よりも小さい変換サイズを使用して、幾何学的動き区分線がそれを通るサブブロックのうちの少なくとも１つを符号化するための手段とを含む。
【００１８】
別の例では、コンピュータプログラム製品が、実行されると、幾何学的動き区分線を使用してビデオデータの（Ｎ×Ｎ画素を含む）ブロックを第１の幾何学的区分と第２の幾何学的区分とに区分化することと、ビデオデータのブロックを４つの等しいサイズの重複しない（Ｎ／２）×（Ｎ／２）サブブロックに分割することと、（Ｎ／２）×（Ｎ／２）よりも小さい変換サイズを使用して、幾何学的動き区分線がそれを通るサブブロックのうちの少なくとも１つを符号化することとをプロセッサに行わせる命令を記憶したコンピュータ可読媒体を備える。
【００１９】
別の例では、方法が、幾何学的動き区分線によって第１の幾何学的区分と第２の幾何学的区分とに区分化されたビデオデータの符号化された（Ｎ×Ｎ画素を含む）ブロックを受信することと、ビデオデータのブロックを４つの等しいサイズの重複しない（Ｎ／２）×（Ｎ／２）サブブロックに分割することと、（Ｎ／２）×（Ｎ／２）よりも小さい変換サイズを使用して、幾何学的動き区分線がそれを通るサブブロックのうちの少なくとも１つを逆変換することとを含む。
【００２０】
別の例では、装置が、幾何学的動き区分線によって第１の幾何学的区分と第２の幾何学的区分とに区分化されたビデオデータの符号化され、Ｎ×Ｎ画素を含むブロックを受信することと、ビデオデータのブロックを４つの等しいサイズの重複しない（Ｎ／２）×（Ｎ／２）サブブロックに分割することと、（Ｎ／２）×（Ｎ／２）よりも小さい変換サイズを使用して、幾何学的動き区分線がそれを通るサブブロックのうちの少なくとも１つを逆変換することとを行うように構成されたビデオデコーダを含む。
【００２１】
別の例では、装置が、幾何学的動き区分線によって第１の幾何学的区分と第２の幾何学的区分とに区分化されたビデオデータの符号化され、Ｎ×Ｎ画素を含むブロックを受信するための手段と、ビデオデータのブロックを４つの等しいサイズの重複しない（Ｎ／２）×（Ｎ／２）サブブロックに分割するための手段と、（Ｎ／２）×（Ｎ／２）よりも小さい変換サイズを使用して、幾何学的動き区分線がそれを通るサブブロックのうちの少なくとも１つを逆変換するための手段とを含む。
【００２２】
別の例では、コンピュータプログラム製品が、実行されると、幾何学的動き区分線によって第１の幾何学的区分と第２の幾何学的区分とに区分化されたビデオデータの符号化され、Ｎ×Ｎ画素を含むブロックを受信することと、ビデオデータのブロックを４つの等しいサイズの重複しない（Ｎ／２）×（Ｎ／２）サブブロックに分割することと、（Ｎ／２）×（Ｎ／２）よりも小さい変換サイズを使用して、幾何学的動き区分線がそれを通るサブブロックのうちの少なくとも１つを逆変換することとをプロセッサに行わせる命令を記憶したコンピュータ可読媒体を備える。
【００２３】
別の例では、方法が、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、第１の区分のための第１の動きベクトルと第２の区分のための第２の動きベクトルとを決定することと、第１の区分に隣接するブロックのための動きベクトルから選択される第１の動き予測子に基づいて第１の動きベクトルを符号化することと、第２の区分に隣接するブロックのための動きベクトルから選択される第２の動き予測子に基づいて第２の動きベクトルを符号化すること、符号化された第１及び第２の動きベクトルを出力することを含み、第２の区分に隣接するブロックが、第１の区分に隣接するブロックとは無関係に決定される。
【００２４】
別の例では、装置が、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化し、第１の区分のための第１の動きベクトルと第２の区分のための第２の動きベクトルとを決定し、第１の区分に隣接するブロックのための動きベクトルから選択される第１の動き予測子に基づいて第１の動きベクトルを符号化し、第２の区分に隣接するブロックのための動きベクトルから選択される第２の動き予測子に基づいて第２の動きベクトルを符号化し、符号化された第１及び第２の動きベクトルを出力するように構成されたビデオエンコーダを含み、第２の区分に隣接するブロックが、第１の区分に隣接するブロックとは無関係に決定される。
【００２５】
別の例では、装置が、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化するための手段と、第１の区分のための第１の動きベクトルと第２の区分のための第２の動きベクトルとを決定するための手段と、第１の区分に隣接するブロックのための動きベクトルから選択される第１の動き予測子に基づいて第１の動きベクトルを符号化するための手段と、第２の区分に隣接するブロックのための動きベクトルから選択される第２の動き予測子に基づいて第２の動きベクトルを符号化するための手段と、符号化された第１及び第２の動きベクトルを出力するための手段とを含み、第２の区分に隣接するブロックが、第１の区分に隣接するブロックとは無関係に決定される。
【００２６】
別の例では、コンピュータプログラム製品が、実行されると、区分化されたブロックに隣接するブロックのセットを決定することと、第１の区分に隣接するブロックを備えるブロックのセットの第１のサブセットを決定することと、第１のサブセットを決定することとは無関係に、第２の区分に隣接するブロックを備えるブロックのセットの第２のサブセットを決定することとをプロセッサに行わせる命令を記憶したコンピュータ可読媒体を備える。
【００２７】
別の例では、方法が、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータのブロックと、第１の区分のための第１の符号化された動きベクトルと、第２の区分のための第２の符号化された動きベクトルとを受信することと、第１の区分に隣接するブロックのための動きベクトルから選択される第１の動き予測子に基づいて第１の符号化された動きベクトルを復号することと、第２の区分に隣接するブロックのための動きベクトルから選択される第２の動き予測子に基づいて第２の符号化された動きベクトルを復号することと、復号された第１及び第２の動きベクトルを使用してブロックを復号することとを含み、第２の区分に隣接するブロックが、第１の区分に隣接するブロックとは無関係に決定される。
【００２８】
別の例では、装置が、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータのブロックと、第１の区分のための第１の符号化された動きベクトルと、第２の区分のための第２の符号化された動きベクトルとを受信することと、第１の区分に隣接するブロックのための動きベクトルから選択される第１の動き予測子に基づいて第１の符号化された動きベクトルを復号することと、第２の区分に隣接するブロックのための動きベクトルから選択される第２の動き予測子に基づいて第２の符号化された動きベクトルを復号することと、復号された第１及び第２の動きベクトルを使用してブロックを復号することとを行うように構成されたビデオデコーダを含み、第２の区分に隣接するブロックが、第１の区分に隣接するブロックとは無関係に決定される。
【００２９】
別の例では、装置が、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータのブロックと、第１の区分のための第１の符号化された動きベクトルと、第２の区分のための第２の符号化された動きベクトルとを受信するための手段と、第１の区分に隣接するブロックのための動きベクトルから選択される第１の動き予測子に基づいて第１の符号化された動きベクトルを復号するための手段と、第２の区分に隣接するブロックのための動きベクトルから選択される第２の動き予測子に基づいて第２の符号化された動きベクトルを復号するための手段と、復号された第１及び第２の動きベクトルを使用してブロックを復号するための手段とを含み、第２の区分に隣接するブロックが、第１の区分に隣接するブロックとは無関係に決定される。
【００３０】
別の例では、コンピュータプログラム製品が、実行されると、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータのブロックと、第１の区分のための第１の符号化された動きベクトルと、第２の区分のための第２の符号化された動きベクトルとを受信することと、第１の区分に隣接するブロックのための動きベクトルから選択される第１の動き予測子に基づいて第１の符号化された動きベクトルを復号することと、第２の区分に隣接するブロックのための動きベクトルから選択される第２の動き予測子に基づいて第２の符号化された動きベクトルを復号することと、復号された第１及び第２の動きベクトルを使用してブロックを復号することとをプロセッサに行わせる命令を記憶するコンピュータ可読媒体を備え、第２の区分に隣接するブロックが、第１の区分に隣接するブロックとは無関係に決定される。
【００３１】
別の例では、方法が、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、幾何学的動き区分線の傾斜値及びｙ切片値を計算することであって、傾斜値及びｙ切片値が整数値を備える、計算することと、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算することと、マスクに基づいて第１の区分と第２の区分とを符号化することと、符号化された第１の区分と、符号化された第２の区分と、傾斜値と、ｙ切片値とを出力することとを含む。
【００３２】
別の例では、装置が、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、幾何学的動き区分線の（整数値である）傾斜値及びｙ切片値を計算することと、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算することと、マスクに基づいて第１の区分と第２の区分とを符号化することと、符号化された第１の区分と、符号化された第２の区分と、傾斜値と、ｙ切片値とを出力することとを行うように構成されたビデオエンコーダを含む。
【００３３】
別の例では、装置が、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化するための手段と、幾何学的動き区分線の（整数値である）傾斜値及びｙ切片値を計算するための手段と、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算するための手段と、マスクに基づいて第１の区分と第２の区分とを符号化するための手段と、符号化された第１の区分と、符号化された第２の区分と、傾斜値と、ｙ切片値とを出力するための手段とを含む。
【００３４】
別の例では、コンピュータプログラム製品が、実行されると、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、幾何学的動き区分線の（整数値である）傾斜値及びｙ切片値を計算することと、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算することと、マスクに基づいて第１の区分と第２の区分とを符号化することと、符号化された第１の区分と、符号化された第２の区分と、傾斜値と、ｙ切片値とを出力することとをプロセッサに行わせる命令を記憶したコンピュータ可読媒体を備える。
【００３５】
別の例では、方法が、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、幾何学的動き区分線を定義し、整数値である傾斜値及びｙ切片値を受信することと、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算することと、マスクに基づいてブロックの第１の区分と第２の区分とを復号することと、復号されたブロックを出力することとを含む。
【００３６】
別の例では、装置が、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、幾何学的動き区分線を定義し、整数値である傾斜値及びｙ切片値を受信することと、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算することと、マスクに基づいてブロックの第１の区分と第２の区分とを復号することと、復号されたブロックを出力することとを行うように構成されたビデオデコーダを含む。
【００３７】
別の例では、装置が、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信するための手段と、幾何学的動き区分線を定義し、整数値である傾斜値及びｙ切片値を受信するための手段と、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算するための手段と、マスクに基づいてブロックの第１の区分と第２の区分とを復号するための手段と、復号されたブロックを出力するための手段とを含む。
【００３８】
別の例では、コンピュータプログラム製品が、実行されると、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、幾何学的動き区分線を定義し、整数値である傾斜値及びｙ切片値を受信することと、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算することと、マスクに基づいてブロックの第１の区分と第２の区分とを復号することと、復号されたブロックを出力することとをプロセッサに行わせる命令を記憶したコンピュータ可読媒体を備える。
【００３９】
１つ以上の例の詳細を添付の図面及び以下の説明に記載する。他の特徴、目的、及び利点は、説明及び図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００４０】
【図１】幾何学的動き区分のための技法を利用し得る例示的なビデオ符号化及び復号システムを示すブロック図。
【図２】幾何学的動き区分のための技法を実装し得るビデオエンコーダの一例を示すブロック図。
【図３】幾何学的動き区分ブロックを含む符号化されたビデオシーケンスを復号し得るビデオデコーダの一例を示すブロック図。
【図４】幾何学的動き区分線を使用して区分化されたブロックと、幾何学的動き区分線を定義するために使用されるパラメータとを示す概念図。
【図５】幾何学的動き区分線を使用して区分化されたブロックと、幾何学的動き区分線の近くの遷移領域中の画素とを示す概念図。
【図６】３×３画素アレイを示す概念図。
【図７】幾何学的動き区分線で区分化されたブロックについての残差値を計算するときに平滑化を実行するための例示的な方法を示すフローチャート。
【図８】適応変換サイズ選択を使用して変換されるべき例示的なブロックを示す概念図。
【図９】適応変換サイズ選択を使用して変換されるべき別の例示的なブロックの概念図。
【図１０】Ｎ×Ｎブロックのサブブロックのための変換サイズを決定するための例示的な方法を示すフローチャート。
【図１１】幾何学的区分ブロックと隣接サブブロックとを示すブロック図。
【図１２】ビデオデータのブロックの幾何学的動き区分の動きベクトルを符号化するための例示的な方法を示すフローチャート。
【図１３】固定小数点実装形態を使用してビデオデータのブロックを符号化するための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００４１】
概して、本開示では、ビデオブロックの幾何学的動き区分をサポートするための技法について説明する。即ち、矩形ブロックを２つ以上の厳密に矩形の区分に区分化するのではなく、本開示の技法は、幾何学的動き区分と呼ばれる、任意の区分境界を使用してブロックを区分化することを可能にする。区分線は、２つのパラメータ、即ち、区分線に直交し、区分化されたブロックの中心点において発する線分の長さρ（ロー）と、区分化されたブロックの中心点を通る水平線に対する直交線の角度θ（シータ）とを使用して定義され得る。幾つかの例では、区分線がブロックのどの画素も通らないように、区分線は、各区分の画素を分画する階段線によって実現され得る。
【００４２】
例及び説明のために、本開示では、マクロブロックの幾何学的動き区分のための技法について説明する。しかしながら、これらの技法は、概してビデオデータの任意のブロックを区分化するために適用され得ることを理解されたい。マクロブロックという用語は、一般に１６×１６画素のサイズを有する２次元画素アレイを使用して、デジタルピクチャ及びビデオデータを符号化するためのデータ構造を指す。マクロブロックは、クロミナンスデータとルミナンスデータとを含み得る。一般に、クロミナンスデータは、ルミナンスデータに対して、水平及び垂直に２分の１にダウンサンプリングされる。従って、マクロブロックは、４つのルミナンスブロックと２つのクロミナンスブロックとを含み得る。４つのルミナンスブロックの各々は８×８画素を備え得、マクロブロックの各コーナーは、ルミナンスブロックのうちの厳密に１つのコーナーによって接触され得る。２つのクロミナンスブロックは、クロミナンスブロックの各々のコーナーがマクロブロックのそれぞれのコーナーに接触するような８×８画素ブロックであり得る。従って、クロミナンスブロックは、互いと重複し、ルミナンスブロックと重複し得る。
【００４３】
ビデオ符号化規格は、一般に、ビデオデータのブロックを符号化するための様々な予測モードを与える。イントラ予測は、スライス又はフレームのブロックを同じスライス又はフレームの他のブロックに対して符号化することを伴う。インター予測は、動き推定及び動き補償技法を使用して、スライス又はフレームのブロックを１つ以上の他のスライス又はフレームに対して符号化することを可能にする。
【００４４】
概して幾何学的動き区分を対象とする、本開示の技法は、任意の区分サイズ及び形状を可能にし得る。即ち、上記のρ値とθ値とを使用して定義される区分線により、マクロブロックを符号化するために非矩形区分を使用することが可能になり得る。特に、本開示の技法では、幾何学的動き区分のための動きベクトルを生成し、幾何学的動き区分に基づいて動き補償を実行するための技法について説明する。幾何学的動き区分線は、ブロックを矩形区分に区分化することに限定されない。幾つかの例では、幾何学的動き区分線はＮ×ＮブロックをＮ×Ｍブロックに区分化し得るが、幾何学的動き区分はまた、ブロックを、例えば、三角形区分などの非矩形区分に区分化する能力を与える。このようにして、幾何学的動き区分線は、ブロックの１つの水平方向境界及びブロックの１つの垂直方向境界と交差し得る。
【００４５】
幾つかの例では、幾何学的動き区分をサポートすることは、修正動き補償技法（modified motion compensation technique）の使用を含む。特に、修正動き補償技法は、幾何学的動き区分線の近くの遷移領域中の画素のための平滑化フィルタを与え得る。本開示の動き補償技法は、そのような重複画素についての残差値を決定することを含み得る。一例では、本開示の技法は、この境界領域において動き補償を実行するための低域フィルタ（例えば、平滑化フィルタ）を定義する。即ち、幾何学的区分線における区分間の遷移を平滑化する様々なフィルタが定義され得る。画素が遷移領域内に入った場合、画素についての予測値を決定するために、これらのフィルタのうちの１つを適用することによって、その画素のための動き補償が実行され得、フィルタは、区分のための動きベクトルによって識別される予測ブロックからの値を適用し、次いで予測値と符号化されるべき画素の値との間の差を決定する。この差は、画素についての残差値を表し得る。
【００４６】
別の例では、幾何学的に区分化されたブロックの境界領域において動き補償を実行するために、重み付き平均が使用され得る。即ち、画素についての動き補償値を決定するために、２つの区分からの画素についての値の重み付き平均が計算され得る。画素が比較的より近接している区分についての値は、他の区分についての値よりも重く重み付けされ得る。画素についての予測値は、このようにして計算され得、次いで、残差値を計算するために使用されるか、又は予測値に受信した残差値を適用することによって符号化されたブロックを再構成するために使用され得る。
【００４７】
本開示はまた、幾何学的動き区分を使用して区分化されたブロックの残差を符号化するための技法を含む。幾何学的区分を用いてブロックの残差を符号化するために、区分線の位置に基づいて、適応変換サイズが使用され得る。概して、Ｎ×Ｎ画素の各サブブロックブロックについて、区分がブロックを横断しない場合は、サブブロックについての残差はＮ×Ｎ変換サイズを使用して符号化され得、他の場合は、Ｎ×ＮサブブロックはＮ／２×Ｎ／２サブブロックに再分割され得、Ｎ／２×Ｎ／２サブブロックの各々は、区分線がサブブロックを横断するかどうかに関して再分析され得る。
【００４８】
例えば、ブロックサイズが１６×１６であると仮定する。内部の各８×８サブブロックについて、８×８ブロック内の全ての画素が同じ区分に属する場合は、８×８変換が使用され得、他の場合は、４つの４×４変換が使用され得る。別の例として、ブロックサイズが３２×３２又は６４×６４であるとき、各３２×３２又は１６×１６内部サブブロックについて、１６×１６ブロック内の全ての画素が同じ区分に属する場合は、１６×１６変換が使用され得、他の場合は、そのロジックが各１６×１６サブブロックについて繰り返され得る。
【００４９】
本開示はさらに、幾何学的動き区分線を使用して区分化されるブロックの区分のための動きベクトルを符号化するための技法を提供する。これらの技法は、動きベクトルの動き予測子を選択することを含み得、動き予測子の候補は、同じブロックの２つの区分の動きベクトルについて異なり得る。動き予測子の候補はまた、従来の符号化規格のものよりも多くの潜在的な動き予測子を含み得る。
【００５０】
本開示の技法はまた、固定小数点実装形態において適用され得る。特に、幾何学的動き区分線は、線の傾斜（ｍ）とｙ切片（ｃ）とを表す固定小数点（例えば、整数）値を使用して定義され得る。エンコーダ及びデコーダが固定小数点値から同じマスクを作成するように、エンコーダ及びデコーダはそれぞれ、幾何学的動き区分を評価するために固定小数点演算を使用するように構成され得る。エンコーダ及びデコーダは、次のようにマスクを計算するように構成され得る。マスクの各点（ｘ，ｙ）について、ｙ−ｍ＊ｘ＜ｃである場合は、マスク中の（ｘ，ｙ）における点の値は１であり、ｙ−ｍ＊ｘ≧ｃである場合は、マスク中の（ｘ，ｙ）における点の値は０である。このようにして、エンコーダ及びデコーダは、マスク中の各点について、マスク中の点の値が、点のｙ値と、線の傾斜値と点のｘ値との積と、の間の差が線のｙ切片値よりも大きいかどうかを示す値に設定されるように（それぞれのｘ値及びｙ値によって定義された点のセットを備える）マスクを計算するように構成され得る。マスク中の各点の値は１ビット値を備え得る。
【００５１】
値０を有するマスク中の点は領域０に対応するが、値１を有するマスク中の点は領域１に対応する。幾何学的動き区分によって定義されるように、領域０は１つの区分であり得、領域１は別の区分であり得る。従って、浮動小数点演算を使用して、幾何学的動き区分の中心点に対する角度θ（シータ）及び距離ρ（ロー）からマスクを計算するのではなく、エンコーダ及びデコーダは、角度及び中心点値に基づいて、傾斜ｍ及びｙ切片ｃについての固定小数点、整数値を使用してマスクを計算するように構成され得る。本開示の技法はまた、特定のブロック又はブロックのセットのために幾何学的動き区分が使用されるかどうかをシグナリングすることと、使用される場合、ブロック又はブロックのセットのために固定小数点演算が使用されるべきなのか浮動小数点演算が使用されるべきなのかをシグナリングすることとを含み得る。
【００５２】
図１は、幾何学的動き区分のための技法を利用し得る例示的なビデオ符号化及び復号システム１０を示すブロック図である。図１に示すように、システム１０は、通信チャネル１６を介して符号化ビデオを宛先機器１４に送信するソース機器１２を含む。ソース機器１２及び宛先機器１４は、広範囲の機器のいずれかを備え得る。場合によっては、ソース機器１２及び宛先機器１４は、ワイヤレスハンドセット、いわゆるセルラー電話又は衛星無線電話などのワイヤレス通信機器、又は通信チャネル１６を介してビデオ情報を通信することができる任意のワイヤレス機器を備え得、その場合、通信チャネル１６はワイヤレスである。但し、幾何学的動き区分に関係する本開示の技法は、必ずしもワイヤレス適用例又は設定に限定されるとは限らない。例えば、これらの技法は、無線テレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、インターネットビデオ送信、記憶媒体上に符号化される符号化デジタルビデオ、又は他のシナリオに適用され得る。従って、通信チャネル１６は、符号化ビデオデータの送信に好適なワイヤレス（無線）又はワイヤード（有線）媒体の任意の組合せを備え得る。
【００５３】
図１の例では、ソース機器１２は、ビデオソース１８と、ビデオエンコーダ２０と、変調器／復調器（モデム）２２と、送信機２４とを含む。宛先機器１４は、受信機２６と、モデム２８と、ビデオデコーダ３０と、表示装置３２とを含む。本開示によれば、ソース機器１２のビデオエンコーダ２０は、幾何学的動き区分のための技法を適用するように構成され得る。他の例では、ソース機器及び宛先機器が他の構成要素又は構成を含み得る。例えば、ソース機器１２は、外部カメラなどの外部ビデオソース１８からビデオデータを受信し得る。同様に、宛先機器１４は、一体型表示装置を含むのではなく、外部表示装置とインターフェースし得る。
【００５４】
図１の図示のシステム１０は一例にすぎない。幾何学的動き区分のための技法は、任意のデジタルビデオ符号化及び／又は復号化装置によって実行され得る。概して、本開示の技法はビデオ符号化装置によって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ／デコーダによっても実行され得る。さらに、本開示の技法の幾つかの態様はビデオプリプロセッサによっても実行され得る。ソース機器１２及び宛先機器１４は、ソース機器１２が宛先機器１４に送信するためのコード化ビデオデータを生成するような、符号化装置の例にすぎない。幾つかの例では、機器１２、１４の各々がビデオ符号化構成要素及び復号構成要素を含むので、機器１２、１４は、実質的に対称的に動作し得る。従って、システム１０は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、又はビデオ電話通信のためのビデオ機器１２とビデオ機器１４との間の一方向又は双方向のビデオ送信をサポートし得る。
【００５５】
ソース機器１２のビデオソース１８は、ビデオカメラなどの撮像機、以前に撮像されたビデオを含んでいるビデオアーカイブ、及び／又はビデオコンテンツプロバイダからのビデオフィードを含み得る。さらなる代替として、ビデオソース１８は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、又は生中継ビデオとアーカイブビデオとコンピュータ発生ビデオとの組合せを発生し得る。場合によっては、ビデオソース１８がビデオカメラである場合、ソース機器１２及び宛先機器１４は、いわゆるカメラ付き携帯電話又はビデオ電話を形成し得る。但し、上述のように、本開示で説明する技法は、一般にビデオ符号化に適用可能であり、ワイヤレス及び／又はワイヤード適用例に適用可能であり得る。各場合において、撮像されたビデオ、以前に撮像されたビデオ、又はコンピュータ発生ビデオはビデオエンコーダ２０によって符号化され得る。次いで、符号化ビデオ情報は、通信規格に従ってモデム２２によって変調され、送信機２４を介して宛先機器１４に送信され得る。モデム２２は、信号変調のために設計された様々なミキサ、フィルタ、増幅器又は他の構成要素を含み得る。送信機２４は、増幅器、フィルタ、及び１つ以上のアンテナを含む、データを送信するために設計された回路を含み得る。
【００５６】
宛先機器１４の受信機２６はチャネル１６を介して情報を受信し、モデム２８は情報を復調する。この場合も、ビデオ符号化プロセスは、幾何学的動き区分のための本明細書で説明する技法のうちの１つ以上を実装し得る。チャネル１６を介して通信される情報は、マクロブロック及び他の符号化ユニット、例えば、ピクチャグループ（ＧＯＰ）の特性及び／又は処理を記述するシンタックス要素を含む、ビデオデコーダ３０によっても使用される、ビデオエンコーダ２０によって定義されるシンタックス情報を含み得る。表示装置３２は、復号されたビデオデータをユーザに対して表示し、陰極線管（ＣＲＴ）、液晶表示器（ＬＣＤ）、プラズマ表示器、有機発光ダイオード（ＯＬＥＤ）表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
【００５７】
図１の例では、通信チャネル１６は、無線周波数（ＲＦ）スペクトル又は１つ以上の物理的伝送線路など、ワイヤレス又はワイヤードの任意の通信媒体、或いはワイヤレス及びワイヤードの媒体の任意の組合せを備え得る。通信チャネル１６は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信チャネル１６は、一般に、ワイヤード又はワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソース機器１２から宛先機器１４に送信するのに好適な任意の通信媒体、又は様々な通信媒体の集合体を表す。通信チャネル１６は、ソース機器１２から宛先機器１４への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、又は任意の他の機器を含み得る。
【００５８】
ビデオエンコーダ２０及びビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ１０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、ビデオ圧縮規格に従って動作し得る。但し、本開示の技法は、いかなる特定の符号化規格にも限定されない。他の例には、ＭＰＥＧ−２及びＩＴＵ−Ｔ  Ｈ．２６３がある。図１には示されていないが、幾つかの態様では、ビデオエンコーダ２０及びビデオデコーダ３０は、それぞれオーディオエンコーダ及びデコーダと統合され得、適切なＭＵＸ−ＤＥＭＵＸユニット、又は他のハードウェア及びソフトウェアを含んで、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００５９】
ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）として知られる共同パートナーシップの成果として、ＩＳＯ／ＩＥＣ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とともにＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）によって策定された。幾つかの態様では、本開示で説明する技法は、Ｈ．２６４規格に概して準拠する機器に適用され得る。Ｈ．２６４規格は、ＩＴＵ−Ｔ  Ｓｔｕｄｙ  Ｇｒｏｕｐによる２００５年３月付けのＩＴＵ−Ｔ勧告Ｈ．２６４「Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ」に記載されており、本明細書ではＨ．２６４規格又はＨ．２６４仕様、或いはＨ．２６４／ＡＶＣ規格又は仕様と呼ぶことがある。Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）はＨ．２６４／ＭＰＥＧ−４  ＡＶＣへの拡張に取り組み続けている。
【００６０】
ビデオエンコーダ２０及びビデオデコーダ３０はそれぞれ、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなどの様々な好適なエンコーダ回路のいずれか、又はそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々を１つ以上のエンコーダ又はデコーダ中に含めることができ、そのいずれかは複合エンコーダ／デコーダ（コーデック）の一部としてそれぞれのカメラ、コンピュータ、モバイル機器、加入者機器、ブロードキャスト機器、セットトップボックス、サーバなどに統合され得る。
【００６１】
ビデオシーケンスは、一般に、ビデオピクチャとも呼ばれる一連のビデオフレームを含む。ピクチャグループ（ＧＯＰ）は、概して、一連の１つ以上のビデオフレームを備える。ＧＯＰは、ＧＯＰ中に含まれる幾つかのフレームを記述するシンタックスデータを、ＧＯＰのヘッダ、ＧＯＰの１つ以上のフレームのヘッダ、又は他の場所中に含め得る。各フレームは、それぞれのフレームについての符号化モードを記述するフレームシンタックスデータを含み得る。ビデオエンコーダ２０は、一般に、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに対して動作する。ビデオブロックは、マクロブロック、マクロブロックの区分、又はマクロブロックよりも大きいブロックに対応し得る。ビデオブロックは、固定サイズ又は可変サイズを有し得、指定の符号化規格に応じてサイズが異なり得る。各ビデオフレームは１つ以上のスライスを含み得る。各スライスは複数のマクロブロックを含み得、それらはサブブロックとも呼ばれる区分に配置され得る。
【００６２】
一例として、ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分については１６×１６、８×８、又は４×４、及びクロマ成分については８×８など、様々なブロックサイズのイントラ予測をサポートし、ならびにルーマ成分については１６×１６、１６×８、８×１６、８×８、８×４、４×８及び４×４、及びクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測をサポートする。本開示では、「Ｎ×（x）Ｎ」と「Ｎ×（by）Ｎ」は、垂直寸法及び水平寸法に関するブロックの画素寸法、例えば、１６×（x）１６画素又は１６×（by）１６画素を指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６画素を有し（ｙ＝１６）、水平方向に１６画素を有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮ画素を有し、水平方向にＮ画素を有し、Ｎは、非負整数値を表す。ブロック中の画素は行と列に配置され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数の画素を有する必要はない。例えば、ブロックはＮ×Ｍ個の画素を備え得、Ｍは必ずしもＮに等しいとは限らない。
【００６３】
１６×１６よりも小さいブロックサイズは１６×１６マクロブロックの区分と呼ばれることがある。ビデオブロックは、画素領域中の画素データのブロックを備え得、或いは、例えば、コード化ビデオブロックと予測ビデオブロックとの画素差分を表す残差ビデオブロックデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、又は概念的に同様の変換などの変換の適用後の、変換領域中の変換係数のブロックを備え得る。場合によっては、ビデオブロックは、変換領域中の量子化変換係数のブロックを備え得る。
【００６４】
より小さいビデオブロックは、より良好な解像度を与えることができ、高い詳細レベルを含むビデオフレームのロケーションのために使用され得る。一般に、マクロブロック及び様々な区分はサブブロックと呼ばれることがあり、ビデオブロックと見なされ得る。さらに、スライスは、マクロブロック及び／又はサブブロックなどの複数のビデオブロックであると見なされ得る。各スライスはビデオフレームの単独で復号可能なユニットであり得る。代替的に、フレーム自体が復号可能なユニットであり得るか、又はフレームの他の部分が復号可能なユニットとして定義され得る。「符号化ユニット」又は「符号化ユニット」という用語は、フレーム全体、フレームのスライス、シーケンスとも呼ばれるピクチャグループ（ＧＯＰ）など、ビデオフレームの単独で復号可能な任意のユニット、又は適用可能な符号化技法に従って定義される別の単独で復号可能なユニットを指し得る。
【００６５】
本開示の技法によれば、ビデオエンコーダ２０は、ブロック、例えば、マクロブロックのインターモード符号化中に幾何学的動き区分を使用するように構成され得る。即ち、ビデオエンコーダ２０は、幾何学的区分とも呼ばれる幾何学的動き区分線を使用して、ブロックが最も良く符号化され得ると決定し得る。原点は、ブロックの中心にあると仮定される。その場合、各幾何学的動き区分線は、区分境界を定義する線に直交する、原点を通る線によって定義される。即ち、ビデオエンコーダ２０は、２つのパラメータ、即ち、区分線に直交し、区分化されたブロックの中心点において発する線分の長さρ（ロー）と、区分化されたブロックの中心点を通る水平線に対する直交線の角度θ（シータ）とを使用して、幾何学的動き区分線を定義し得る。言い換えれば、幾何学的動き区分線は、Ｘ軸に対して直交線によって定められた角度と、原点からの区分線の距離とによって定義される。ビデオエンコーダ２０は、ブロックが２つの区分に区分化されるべきであると決定し、２つの区分間の分割に最も良く適合する（ρ，θ）に従って定義された区分線を計算するように構成され得る。以下の式（１）は、幾何学的動き区分線を次のように定義する。
【数１】
2014209743.tif 000003
【００６６】
様々な例では、ビデオエンコーダ２０は、例えば、１６×１６、３２×３２、及び／又は６４×６４ブロックなど、固定又は可変サイズのブロックを使用するように構成され得る。概して、Ｎ×Ｎブロックの場合、ビデオエンコーダ２０は、両端値を含む［０，（Ｎ／２）−１］の範囲内のρについての値を選択し得る。従って、１６×１６ブロックの場合、ビデオエンコーダ２０は、両端値を含む［０，７］の範囲内のρについての値を選択するように構成され得る。別の例として、３２×３２ブロックの場合、ビデオエンコーダ２０は、両端値を含む［０，１５］の範囲内のρについての値を選択するように構成され得る。さらに別の例として、６４×６４ブロックの場合、ビデオエンコーダ２０は、両端値を含む［０，３１］の範囲内のρについての値を選択するように構成され得る。幾つかの例では、ビデオエンコーダ２０は、両端値を含む［０，３１］の範囲内のθについての値を選択するように構成され得る。従って、θについての値の範囲は、１１．２５度のステップサイズを有し得る。これらの例では、ブロックサイズが１６×１６の場合は、２５６個の可能な幾何学的区分があり得、ブロックサイズが３２×３２の場合は、５１２個の可能な幾何学的区分があり得、ブロックサイズが６４×６４の場合は、１０２４個の可能な幾何学的区分があり得る。しかしながら、ブロックサイズならびにρ及びθのステップサイズの選択は、必ずしも前述の値に限定されるとは限らない。
【００６７】
ビデオエンコーダ２０及びビデオデコーダ３０は、特定の画素がどの幾何学的動き区分に対応するかを決定するように構成され得、エンコーダ及びデコーダが所与の画素について同じ区分を選択するように構成されるべきである。幾つかの例では、ビデオエンコーダ２０及びビデオデコーダ３０は、幾何学的動き区分を使用してブロックを区分化するときに固定小数点計算を使用し得る。画素が領域０に対応するのか領域１に対応するのかの指示は、０が、画素が領域０に属することを示し、１が、画素が領域１に属することを示すバイナリマスクとして効率的に記憶され得る。可能な幾何学的区分の数及びブロックサイズのために、ビデオエンコーダ２０及びビデオデコーダ３０において全てのマスクを記憶することは法外であり得る。従って、本開示は、オンザフライで、幾つかの例では、固定小数点演算を使用して、マスクを計算するための技法を含む。
【００６８】
式（１）における傾斜ｍ及びｙ切片ｃは三角関数を含んでおり、従って、この式に厳密に基づくオンザフライでのマスクの計算は、浮動小数点実装形態を必要とするであろう。場合によっては、２つの機器が、一致する浮動小数点実装形態を有することは、困難であるか、さらには不可能である。従って、マスクは、固定小数点演算を使用して計算され得る。従って、遷移領域中の画素についての予測値を計算することは、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算することと、固定小数点演算を使用してマスクに基づいて第１の区分中の遷移領域中の画素の少なくとも１つの隣接画素の位置を特定し、第２の区分中の少なくとも１つの隣接画素の位置を特定することとを含み得る。
【００６９】
固定小数点演算を使用する例では、幾何学的動き区分が無限傾斜と無限ｙ切片とをもつ垂直線になるので、θ＝０及びθ＝πである場合は除外され得る。残りの場合には、1/tanθ及び1/sinθは、固定小数点値を使用して表され得る。他のパラメータρは、すでに整数として表され得る。1/tanθの場合、θの残りの値についての最大絶対値は５．０２７３であり、1/tanθの２つの連続値間の最大絶対差は０．１９８９であり得る。同様に、1/sinθの場合、最大絶対値は５．１２５８であり得、1/sinθの２つの連続値間の最大絶対差は０．０１９６であり得る。マスク計算を固定小数点演算に変換するために、ビデオエンコーダ２０は、1/tanθ及び1/sinθに、好適な２のべき乗を乗算し、その結果を最も近い整数に丸め得る。
【００７０】
一例では、固定小数点実装形態の場合、ビデオエンコーダ２０は、1/tanθ及び1/sinθに２20又は１０４８５７６を乗算し、それらを最も近い整数に丸め得る。ステップサイズ１をもつ最高６４×６４ブロックサイズの例では、ρの最大値が３２であるので、２５ビット符号付き実装形態はｙ切片値を表すのに十分である。式「ｍｘ」中のｘが−３２から３１までの値を取ることができるので、ｍｘは２５ビット符号付き整数としても表され得る。幾つかの例では、ビデオエンコーダ２０及びビデオデコーダ３０は、θの３２個の値の各々について、３２ビットの符号付き整数を使用して1/tanθの値と1/sinθの値とを記憶し得る。ｓｉｎ関数及びｔａｎ関数の対称性のために、ビデオエンコーダ２０及びビデオデコーダ３０は、傾き及び切片の８つの値のみを３２ビット符号付き整数として記憶するように構成され得る。上記のように、これらの記憶された値は、θ＝０及びθ＝πのときは使用する必要がない。
【００７１】
ビデオエンコーダ２０及びビデオデコーダ３０は、固定小数点演算を使用して同じマスクを導出するように構成され得る。これは、ビデオエンコーダ２０とビデオデコーダ３０との間にドリフトエラーを生じることを回避し得、さもなければ幾何学的動き区分によってドリフトエラーが生じ得る。領域０中の任意の点（ｘ0，ｙ0）について、ｙ0−ｍ＊ｘ0≧ｃとなるように領域０を定義する。同様に、領域１中の任意の点（ｘ1，ｙ1）について、ｙ1−ｍ＊ｘ1＜ｃとなるように領域１を定義する。任意の幾何学的動き区分及び任意の点（ｘ，ｙ）について、ビデオエンコーダ２０は、固定小数点においてｙ−ｍ＊ｘを計算し、その結果をｙ切片と比較して、その点が領域０に属するのか領域１に属するのかを決定し得る。θ＝０又はθ＝πのとき、幾何学的動き区分は、ｘ＝ρによって定義される垂直線である。その場合、ｘ＜ρの場合のブロックからの全ての点は、区分０に属するように定義され得、残りの点（ｘ≧ρ）は、区分１に属するように定義され得る。ビデオエンコーダ２０及びビデオデコーダ３０は、どの点が領域０に対応するか、及びどの点が領域１に対応するかを示すブロックのためのマスクを計算するために、ブロック中の各点にわたって反復するように構成され得る。固定小数点演算を使用してブロックのためのマスクを計算した後、幾何学ベースの動き区分のための残りの計算はマスクに基づき得る。
【００７２】
このようにして、ビデオエンコーダ２０は、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、幾何学的動き区分線の傾斜値及びｙ切片値を計算することであって、傾斜値及びｙ切片値が整数値を備える、計算することと、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算することと、マスクに基づいて第１の区分と第２の区分とを符号化することと、符号化された第１の区分と、符号化された第２の区分と、傾斜値と、ｙ切片値とを出力することとを行うように構成されたビデオエンコーダの例に対応し得る。
【００７３】
幾何学的動き区分を使用したブロックの区分は、ブロックの２つの非矩形区分を生成し得、各非矩形区分はそれぞれの動きベクトルを有する。それらの区分は、符号化されているブロックについての予測値に対応し得る。ビデオエンコーダ２０はまた、幾何学的動き区分のための動きベクトルを符号化し得る。ビデオエンコーダ２０は、動き予測子に対して動きベクトルを符号化し得る。ビデオエンコーダ２０は、ブロックを符号化するときにラスタ走査順序を仮定して、すでに符号化されている隣接ブロック、例えば、現在のブロックの上のブロック、左のブロック、及び右上のブロックの動きベクトルの中央値として、動き予測子を選択し得る。本開示の技法は、従来の符号化規格において使用されるものよりも広い、候補動きベクトルのセットから、中央値を選択することと、ブロックの各動きベクトルについて潜在的に異なる候補動きベクトルを使用することとを含む。即ち、ビデオエンコーダ２０は、単一のブロックの幾何学的動き区分の動きベクトルのための異なる動き予測子を使用すると決定し得る。
【００７４】
さらに、ビデオエンコーダ２０はブロックについての残差値を計算する。概して、ブロックの画素についての残差値は、ブロックの画素についての実効値とブロックのコロケート画素についての予測値との間の差に対応する。一例では、本開示の技法は、幾何学的動き区分線にわたる遷移を平滑化することを含む。そうするために、ビデオエンコーダ２０は、区分線の周りの特定の遷移領域で構成され得る。一例として、ビデオエンコーダ２０は、現在の画素を中心とする３×３画素ウィンドウを使用するように構成され得る。一例として、ビデオエンコーダ２０は、すぐ上の画素、すぐ下の画素、すぐ左の画素、及びすぐ右の画素のうちの少なくとも２つが異なる区分に属する場合、現在の画素が遷移領域中にあると決定するように構成され得る。別の例として、ビデオエンコーダ２０は、すぐ隣の８つの隣接画素のうちの少なくとも２つが異なる区分に属する場合、現在の画素が遷移領域中にあると決定するように構成され得る。他の例では、これらの方式は、現在の画素が遷移領域に属するかどうかを決定する際に画素が考慮される、現在の画素の周りを中心とするウィンドウの異なるサイズに拡張され得る。
【００７５】
遷移を平滑化するために、ビデオエンコーダ２０は、区分線にわたって低域フィルタを適用するように構成され得る。フィルタは、フィルタ処理されるべき画素を中心とする係数の行列、例えば、３×３行列に対応し得る。従って、フィルタは、遷移領域中の画素を中心とし得る。低域フィルタは様々な係数を有し得る。低域フィルタの一例は以下の通りであり得る。
【００７６】
１→２→１
２→３→２
１→２→１
但し、係数「３」は現在の画素に対応し、他の係数は、現在の画素のすぐ隣の他の隣接画素に対応する。低域フィルタの別の例は以下の通りであり得る。
【００７７】
０→１→０
１→４→１
０→１→０
但し、係数「４」は現在の画素に対応し、他の係数は、現在の画素のすぐ隣の他の隣接画素に対応する。遷移領域中の画素についての予測値を計算するために、ビデオエンコーダ２０は、（フィルタが遷移領域中の画素を中心とするとき）フィルタの係数と、係数とコロケートされる画素の値との積を計算し、積の和を計算し、積の和を係数の和で除算し得る。
【００７８】
このようにして、ビデオエンコーダ２０は、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、第１の区分からの少なくとも１つの隣接画素についての値と第２の区分からの少なくとも１つの隣接画素についての値とを適用するフィルタを使用してブロックの遷移領域中の画素の予測値を計算することと、遷移領域中の画素の予測値に基づいてブロックの遷移領域中の画素の残差値を計算することと、画素の残差値を出力することとを行うように構成されたビデオエンコーダの例に対応する。
【００７９】
幾つかの例では、遷移領域における平滑化のために、ビデオエンコーダ２０は、現在の画素を中心とする様々な条件に基づいてフィルタ処理を選択的に実行する。条件は、区分線に直交する方向に沿った画素値の差（又はある形状の勾配）と、ブロックの２つの区分間の動きベクトル差と、区分線方向と、参照フレームインデックスと、量子化パラメータと、２つの区分の画素の数とを含み得る。遷移領域中の画素をフィルタ処理するかどうか、及びどのようにフィルタ処理すべきかを決定するために、他の条件も分析され得る。
【００８０】
視覚的品質を改善するための別の方法は、遷移領域内の画素についての２つの予測を重ねることを含む。ビデオエンコーダ２０は、ブロックの区分のための各動きベクトルを使用して、遷移領域に属する画素についての２つの予測を生成し得る。ビデオエンコーダ２０は、次いで、重み付け和を使用して２つの予測を組み合わせ得る。例えば、画素が区分１に属しており、遷移領域中にもある場合、ビデオエンコーダ２０は、第１の区分値からの予測値は２／３の重みを使用して重み付けし得、他の区分からの予測値は１／３の重みを使用して重み付けし得る。他の例では、（３／４，１／４）又は（１／２，１／２）などの他の重み値が適用され得る。幾つかの例では、重み値は適応的に決定され得る。
【００８１】
幾つかの例では、重み付け和演算のための重み付け係数は、現在の画素を中心とする様々な条件に基づいて決定される。条件は、区分線に直交する方向に沿った画素値の差（又はある形状の勾配）と、ブロックの２つの区分間の動きベクトル差と、区分線方向と、参照フレームインデックスと、量子化パラメータと、２つの区分の画素の数とを含み得る。遷移領域中の画素をフィルタ処理するかどうか、及びどのようにフィルタ処理すべきかを決定するために、他の条件も分析され得る。
【００８２】
ビデオエンコーダ２０は、離散コサイン変換、４×４整数変換、８×８変換、１６×１６変換、又は他の変換などの変換を残差値に適用し得る。一例では、ビデオエンコーダ２０は、幾何学的動き区分線が区分を通るかどうかに基づいて、ブロックの区分の残差のために変換サイズを適応的に選択し得る。この例では、区分という用語は、幾何学的動き区分とは反対に、Ｎ×Ｎブロックの（Ｎ／２）×（Ｎ／２）又はより小さい区分を指す。
【００８３】
一例として、幾何学的動き区分線を使用してＮ×Ｎブロックが区分化されると仮定する。ビデオエンコーダ２０は、Ｎ×Ｎブロックを４つの重複しない（Ｎ／２）×（Ｎ／２）ブロックに分割し得る。その場合、各（Ｎ／２）×（Ｎ／２）ブロックについて、ビデオエンコーダ２０は、幾何学的動き区分が（Ｎ／２）×（Ｎ／２）を通るかどうかを決定し得る。幾何学的動き区分線が（Ｎ／２）×（Ｎ／２）ブロックを通らない場合、ビデオエンコーダ２０はブロックのための（Ｎ／２）×（Ｎ／２）の変換サイズを使用し得る。一方、幾何学的動き区分線が（Ｎ／２）×（Ｎ／２）を通る場合、ビデオエンコーダ２０は、（Ｎ／２）×（Ｎ／２）を４つの重複しない（Ｎ／４）×（Ｎ／４）ブロックに分割し、幾何学的動き区分線が（Ｎ／４）×（Ｎ／４）ブロックのいずれかを通るかどうかを決定する、という方法を再帰的に実行し得る。ビデオエンコーダ２０は、最小変換サイズ、例えば、４×４で構成され得、その場合、ビデオエンコーダ２０は、幾何学的動き区分線がサブブロックを通るかどうかにかかわらず、サブブロックのための最小変換サイズを選択し得る。
【００８４】
このようにして、ビデオエンコーダ２０は、幾何学的動き区分線を使用してビデオデータの（Ｎ×Ｎ画素を有する）ブロックを第１の幾何学的区分と第２の幾何学的区分とに区分化し、ビデオデータのブロックを４つの等しいサイズの重複しない（Ｎ／２）×（Ｎ／２）サブブロックに分割し、（Ｎ／２）×（Ｎ／２）よりも小さい変換サイズを使用して、幾何学的動き区分線がそれを通るサブブロックのうちの少なくとも１つを符号化するように構成されたビデオエンコーダの例に対応し得る。
【００８５】
予測データと残差データとを生成するためのイントラ予測符号化又はインター予測符号化の後、及び変換係数を生成するための（Ｈ．２６４／ＡＶＣで使用される４×４又は８×８整数変換、或いは離散コサイン変換ＤＣＴなどの）任意の変換の後、変換係数の量子化が実行され得る。量子化は、一般に、係数を表すために使用されるデータ量をできるだけ低減するために変換係数を量子化するプロセスを指す。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。例えば、量子化中にｎビット値がｍビット値に切り捨てられ得、但し、ｎはｍよりも大きい。
【００８６】
量子化の後、例えば、コンテンツ適応型可変長符号化（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）、又は別のエントロピー符号化方法に従って、量子化データのエントロピー符号化が実行され得る。エントロピー符号化用に構成された処理ユニット又は別の処理ユニットは、量子化係数のゼロランレングス符号化、及び／又はコード化ブロックパターン（ＣＢＰ）値、マクロブロックタイプ、符号化モード、（フレーム、スライス、マクロブロック、又はシーケンスなどの）符号化ユニットの最大マクロブロックサイズなどのシンタックス情報の生成など、他の処理機能を実行し得る。
【００８７】
ビデオエンコーダ２０は、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、及びＧＯＰベースのシンタックスデータなどのシンタックスデータを、例えば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、又はＧＯＰヘッダ中でビデオデコーダ３０にさらに送り得る。例えば、ビデオエンコーダ２０が、幾何学的動き区分を定義する角度値及び長さ値のための整数を与える場合、固定小数点演算を可能にするために、ビデオエンコーダ２０は、整数の使用をシグナリングし得る。ビデオエンコーダ２０は、シーケンスパラメータセット又はピクチャパラメータセット中でこれをシグナリングし得る。代替的に、ビデオエンコーダ２０は、プロファイル及び／又はレベルの再定義されたセットを使用し得、従って、幾何学的動き区分に関して固定小数点演算を可能にするように、整数値の使用を示すプロファイルインジケータ（ｐｒｏｆｉｌｅ＿ｉｄｃ）又はレベルインジケータ（ｌｅｖｅｌ＿ｉｄｃ）値を選択し得る。ビデオエンコーダ２０はまた、幾何学的動き区分が一連のピクチャ及び／又は個々のピクチャのために使用可能であるかどうかをシグナリングし得る。
【００８８】
その上、ビデオエンコーダ２０は、平滑化がブロックのために使用可能であったかどうか、使用可能であった場合、平滑化がどのように達成されるか、例えば、平滑化フィルタの指示を信号伝達し得る。例えば、ビデオエンコーダ２０は平滑化フィルタの係数を信号伝達し得る。ビデオエンコーダ２０は、適応変換サイズ選択が使用可能であるかどうかも信号伝達し得る。ビデオエンコーダ２０は、動き予測子に対して動きベクトルを符号化するために、候補動きベクトルの拡張されたセットがピクチャについて許容されるかどうかも信号伝達し得る。
【００８９】
ビデオデコーダ３０は、受信したビデオデータを復号するときに本開示の技法を使用するように構成され得る。ビデオデコーダ３０によって適用される技法は、ビデオエンコーダ２０によって適用される技法と本質的に対称的であり得る。例えば、ビデオデコーダ３０は、これらの技法の固定小数点実装形態を達成するために、符号化されたブロックのための幾何学的動き区分を定義する傾斜及び切片についての固定小数点値を受信し得る。従って、ビデオデコーダ３０は、幾何学的動き区分の傾斜及び切片に基づいて、オンザフライでブロックのためのマスクを計算し得、画素が領域０に入るのか領域１に入るのかを決定するためにブロックのための各画素ロケーションにわたって反復する。
【００９０】
このようにして、ビデオデコーダ３０は、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、幾何学的動き区分線を定義し、整数値を有する傾斜値及びｙ切片値を受信することと、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算することと、マスクに基づいてブロックの第１の区分と第２の区分とを復号することと、復号されたブロックを出力することとを行うように構成されたビデオデコーダの例に対応し得る。
【００９１】
別の例として、ビデオデコーダ３０は、ブロックのための幾何学的動き区分線においてブロックの遷移領域を平滑化するための平滑化技法を実装し得る。ビデオデコーダ３０は、ブロックの画素についての予測値を決定するために、ブロックの各幾何学的動き区分のための動きベクトルを受信し得る。ビデオデコーダ３０は、上記で説明したように、幾何学的動き区分遷移領域中の画素に平滑化フィルタを適用し得る。従って、ビデオデコーダ３０は、ビデオデータの符号化されたブロックと、符号化されたブロックを第１の区分と第２の区分とに区分化する幾何学的動き区分線の定義と、ブロックの遷移領域中の画素についての残差値とを受信することと、第１の区分からの少なくとも１つの隣接画素についての値と第２の区分からの少なくとも１つの隣接画素についての値とを適用するフィルタを使用してブロックの遷移領域中の画素の予測値を計算することと、予測値及び残差値に基づいてブロックの遷移領域中の画素についての再構成値を計算することと、画素の再構成値を出力することとを行うように構成されたビデオデコーダの例に対応し得る。
【００９２】
さらに別の例として、ビデオデコーダ３０は、適応変換サイズ選択に基づいて、様々なサイズの残差値のためのキーワードを受信し得る。これらのキーワードは可変長符号に対応し得、ブロックのための変換サイズに基づいて異なる辞書に対応し得る。従って、ビデオデコーダ３０は、幾何学的動き区分線がブロックを通るかどうかに基づいて特定のブロックのための変換サイズを決定し得る。このようにして、ビデオデコーダ３０は、幾何学的動き区分線によって第１の幾何学的区分と第２の幾何学的区分とに区分化されたビデオデータの符号化され、Ｎ×Ｎ画素を有するブロックを受信することと、ビデオデータのブロックを４つの等しいサイズの重複しない（Ｎ／２）×（Ｎ／２）サブブロックに分割することと、（Ｎ／２）×（Ｎ／２）よりも小さい変換サイズを使用して、幾何学的動き区分線がそれを通るサブブロックのうちの少なくとも１つを逆変換することとを行うように構成されたビデオデコーダの例に対応し得る。
【００９３】
さらに別の例として、ビデオデコーダ３０は、動き予測子に対して幾何学的動き区分のための動きベクトルを復号し得る。本開示の技法によれば、ビデオデコーダ３０は、候補動きベクトルのより大きいセットから動き予測子を決定し得、各幾何学的区分についての動き予測子を個々に決定し得る。このようにして、ビデオデコーダ３０は、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータのブロックと、第１の区分のための第１の符号化された動きベクトルと、第２の区分のための第２の符号化された動きベクトルとを受信することと、第１の区分に隣接するブロックのための動きベクトルから選択される第１の動き予測子に基づいて第１の符号化された動きベクトルを復号することと、第２の区分に隣接し、第１の区分に隣接するブロックとは無関係に決定されるブロックのための動きベクトルから選択される第２の動き予測子に基づいて第２の符号化された動きベクトルを復号することと、復号された第１及び第２の動きベクトルを使用してブロックを復号することとを行うように構成されたビデオデコーダの例に対応し得る。
【００９４】
ビデオエンコーダ２０及びビデオデコーダ３０はそれぞれ、適用可能なとき、１つ以上のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなどの様々な好適なエンコーダ又はデコーダ回路のいずれか、或いはそれらの任意の組合せとして実装され得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は１つ以上のエンコーダ又はデコーダ中に含められ得、そのいずれかは複合ビデオエンコーダ／デコーダ（コーデック）の一部として統合され得る。ビデオエンコーダ２０及び／又はビデオデコーダ３０を含む装置は、集積回路、マイクロプロセッサ、及び／又はセルラー電話などのワイヤレス通信機器を備え得る。
【００９５】
ビデオエンコーダ２０及びビデオデコーダ３０は、本開示の技法の任意の組合せを実行するように構成され得る。即ち、ビデオエンコーダ２０及びビデオデコーダ３０は、幾何学的動き区分のための固定小数点実装形態、幾何学的動き区分境界によって定義された遷移領域の平滑化、各幾何学的動き区分について動きベクトルを符号化すること、及び／又は幾何学的動き区分線がサブブロックを通るかどうかに基づくサブブロックのための適応変換サイズ選択のうちのいずれか１つ以上を任意の組合せで実行するように構成され得る。
【００９６】
幾つかの例では、ビデオエンコーダ２０及びビデオデコーダ３０は、本開示で説明する幾つかの技法を実装し得るが、本技法は使用不能であり得るか、又は、ビデオエンコーダ２０及びビデオデコーダ３０の一方は本技法の同じセットをサポートしないことがある。従って、ビデオエンコーダ２０は、どの技法が特定のビデオストリームのために使用されるかをシグナリングし得、ビデオデコーダ３０は、ビデオストリームを符号化するために使用される技法をビデオデコーダ３０がサポートするかどうかに基づいて、ビデオストリームを取り出すか又は使用すべきか否かを選択し得る。例えば、ビデオエンコーダ２０は、プロファイルインジケータ（profile_idc値）、レベルインジケータ（level_idc値）、ヘッダデータ、又は他の記述データを使用して、どの技法がシーケンスパラメータセット、ピクチャパラメータセットにおいて使用されるかを信号伝達し得る。
【００９７】
図２は、幾何学的動き区分のための技法を実装し得るビデオエンコーダ２０の一例を示すブロック図である。ビデオエンコーダ２０は、マクロブロック或いはマクロブロックの区分又は下位区分を含むビデオフレーム内のブロックのイントラ符号化及びインター符号化を実行し得る。イントラ符号化は、所与のビデオフレーム内のビデオの空間的冗長性を低減又は除去するために空間的予測に依拠する。インター符号化は、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減又は除去するために時間的予測に依拠する。イントラモード（Ｉモード）は、幾つかの空間ベースの圧縮モードのいずれかを指し、単方向予測（Ｐモード）又は双方向予測（Ｂモード）などのインターモードは、幾つかの時間ベースの圧縮モードのいずれかを指し得る。図２にはインターモード符号化のための構成要素が示されているが、ビデオエンコーダ２０はイントラモード符号化のための構成要素をさらに含み得ることを理解されたい。但し、簡潔及び明快のために、そのような構成要素は示されていない。
【００９８】
図２に示すように、ビデオエンコーダ２０は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図２の例では、ビデオエンコーダ２０は、モード選択ユニット４０と、動き推定ユニット４２と、動き補償ユニット４４と、イントラ予測ユニット４６と、参照フレームストア６４と、加算器５０と、変換ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。ビデオブロック再構成のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換ユニット６０と、加算器６２とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ（図２に図示せず）も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器６２の出力をフィルタ処理するであろう。
【００９９】
符号化プロセス中に、ビデオエンコーダ２０は符号化されるべきビデオフレーム又はスライスを受信する。フレーム又はスライスは、複数のビデオブロックに分割され得る。動き推定ユニット４２及び動き補償ユニット４４は、時間圧縮を行うために、１つ以上の参照フレーム中の１つ以上のブロックに対する受信したビデオブロックのインター予測符号化を実行する。イントラ予測ユニットはまた、空間圧縮を行うために、符号化すべきブロックと同じフレーム又はスライス中の１つ以上の隣接ブロックに対する受信したビデオブロックのイントラ予測符号化を実行し得る。
【０１００】
モード選択ユニット４０は、例えば、誤り結果に基づいて符号化モード、即ち、イントラ又はインターのうちの１つを選択し、残差ブロックデータを生成するために、得られたイントラコード化ブロック又はインターコード化ブロックを加算器５０に供給し、参照フレームとして使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロック又はインターコード化ブロックを加算器６２に供給し得る。
【０１０１】
動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のフレーム（又は、他の符号化ユニット）内の符号化されている現在のブロックに対する予測参照フレーム（又は、他の符号化ユニット）内の予測ブロックの変位を示し得る。予測ブロックは、絶対値差分和（ＳＡＤ）、差分２乗和（ＳＳＤ）、又は他の差分メトリックによって決定され得る画素差分に関して、符号化すべきブロックにぴったり一致することがわかるブロックである。動きベクトルはまた、マクロブロックの区分の変位を示し得る。動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチ又は生成することに関与し得る。この場合も、幾つかの例では、動き推定ユニット４２と動き補償ユニット４４は機能的に統合され得る。
【０１０２】
幾つかの例では、動き推定ユニット４２は、ブロックが幾何学的動き区分線を使用して区分化されるべきであると決定し得る。動き推定ユニット４２は、幾何学的動き区分線のためのパラメータ、例えば、区分化されたブロックの原点から幾何学的動き区分線の中間点までの線の角度θ及び距離ρを計算し得る。幾つかの例では、これらの技法の固定小数点実装形態を可能にするために、動き推定ユニット４２は、幾何学的動き区分線の傾斜ｍ及びｙ切片ｃとしてパラメータを決定し得る。さらに、ビデオエンコーダ２０及びビデオデコーダ３０（図１及び図３）は、θの異なる値について１／ｔａｎ（θ）及び１／ｓｉｎ（θ）のためのルックアップテーブルの同じコピーを記憶し得る。幾何学モードの場合、ビデオエンコーダ２０は、出力ビットストリーム中のθとρとについての値をシグナリングし得る。ビデオデコーダ３０は、ビデオエンコーダ２０によって計算されるマスクと同じであるマスクを計算するために固定小数点計算を実行するために、シグナリングされた値を使用するように構成され得る。
【０１０３】
動き推定ユニット４２は、ビデオブロックを参照フレームストア６４中の参照フレームのビデオブロック（又は区分）と比較することによってインターコード化フレームのビデオブロック、又はそれの幾何学的動き区分の動きベクトルを計算する。動き補償ユニット４４はまた、参照フレーム、例えば、Ｉフレーム又はＰフレームのサブ整数画素を補間し得る。ＩＴＵ  Ｈ．２６４規格では、参照フレームを「リスト」と呼ぶ。従って、参照フレームストア６４に記憶されたデータは、リストに記憶され得る。動き推定ユニット４２は、参照フレームストア６４からの１つ以上の参照フレームのブロックを現在のフレーム、例えば、Ｐフレーム又はＢフレームの符号化すべきブロックと比較する。参照フレームストア６４中の参照フレームがサブ整数画素の値を含むとき、動き推定ユニット４２によって計算される動きベクトルは参照フレームのサブ整数画素ロケーションを参照し得る。
【０１０４】
幾つかの例では、動き推定ユニット４２は、動きベクトルを符号化するために、動きベクトルと動き予測子との間の差を計算し得る。動き推定ユニット４２は、符号化されている現在のブロックの、上のブロックと、左のブロックと、上及び左のブロックと、上及び右のブロックとの動きベクトルの中央値として、動き予測子を選択し得る。動き推定ユニット４２はまた、現在のブロックの上のブロック及び左のブロックが区分化されているかどうか、区分化されている場合、これらの区分が別個の動きベクトルを有するかどうかを決定し得る。これらの区分が別個の動きベクトルを有する場合、動き推定ユニット４２は、これらの候補動きベクトルの全部の中央値から動き予測子を選択し得る。動き予測子を決定した後に、動き推定ユニット４２は、動きベクトルと動き予測子との間の差を計算し得る。動き推定ユニット４２は、計算された差をエントロピー符号化ユニット５６に送り、計算された動きベクトルを動き補償ユニット４４に送る。
【０１０５】
動き補償ユニット４４は、予測ブロックに基づいて予測データを計算し得る。ビデオエンコーダ２０は、符号化されている元のビデオブロックから、動き補償ユニット４４からの予測データを減算することによって残差ビデオブロックを形成する。加算器５０は、この減算演算を実行する１つ以上の構成要素を表す。
【０１０６】
幾つかの例では、本開示の技法によれば、動き補償ユニット４４は、ブロックのための幾何学的動き区分線によって定義された遷移領域におけるブロック中の画素をフィルタ処理し得る。例えば、動き補償ユニット４４は、領域０と領域１の両方からの値を考慮する３×３画素フィルタを使用して、遷移領域中の画素についての予測値を計算し得、領域０及び領域１は幾何学的動き区分に対応する。別の例として、動き補償ユニット４４は、領域０中の画素についての値と領域１中の画素についての値との重み付け和を計算することによって、遷移領域中の画素についての予測値を計算し得る。遷移領域中の画素についての予測値を計算した後に、加算器５０は、予測値と画素の実効値との間の差として、画素についての残差値を計算し得る。このようにして、加算器５０によって計算される残差値は、動き補償ユニット４４によって計算される平滑化された予測値に基づき得る。
【０１０７】
変換ユニット５２は、離散コサイン変換（ＤＣＴ）又は概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換ユニット５２は、概念的にＤＣＴと同様である、Ｈ．２６４規格によって定義される変換などの他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換又は他のタイプの変換も使用され得る。いずれの場合も、変換ユニット５２は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報を画素値領域から周波数領域などの変換領域に変換し得る。
【０１０８】
幾つかの例では、変換ユニット５２は、動き補償ユニット４４から様々なサイズのブロックを受信し得る。動き補償ユニット４４は、ブロックが幾何学的動き区分線に接触するかどうかに基づいてブロックサイズを選択するように構成され得る。例えば、元のブロックが１６×１６ブロックであると仮定する。動き補償ユニット４４は、元のブロックを４つの８×８ブロックに分割し得る。次いで、動き補償ユニット４４は、幾何学的動き区分線に接触する４つの８×８ブロックのいずれかを４×４ブロックに分割し得る。変換ユニット５２は、各潜在的なブロックサイズについての変換で構成され得る。このようにして、ビデオエンコーダ２０は、ブロックについての残差値を計算するときに幾何学的動き区分ブロックのための適応変換サイズ選択を実行し得る。１６×１６ブロックの例について説明したが、同様の技法は他のサイズブロック、例えば、３２×３２、６４×６４などに適用され得る。その上、動き補償ユニット４４は、最小ブロックサイズ、例えば、４×４で構成され得る。
【０１０９】
量子化ユニット５４は、ビットレートをさらに低減するために残差変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。
【０１１０】
量子化の後、エントロピー符号化ユニット５６が量子化変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット５６は、コンテンツ適応型可変長符号化（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術符号化（ＣＡＢＡＣ）、又は別のエントロピー符号化技法を実行し得る。エントロピー符号化ユニット５６によるエントロピー符号化の後、符号化されたビデオは、別の機器に送信されるか、或いは後で送信又は取り出すためにアーカイブされ得る。コンテキスト適応型バイナリ算術符号化の場合、コンテキストは隣接マクロブロックに基づき得る。
【０１１１】
場合によっては、エントロピー符号化ユニット５６又はビデオエンコーダ２０の別のユニットは、エントロピー符号化に加えて他の符号化機能を実行するように構成され得る。例えば、エントロピー符号化ユニット５６はマクロブロック及び区分のＣＢＰ値を決定するように構成され得る。また、場合によっては、エントロピー符号化ユニット５６は、マクロブロック又はそれの区分中の係数のランレングス符号化を実行し得る。特に、エントロピー符号化ユニット５６は、マクロブロック又は区分中の変換係数をスキャンするためにジグザグスキャン又は他のスキャンパターンを適用し、さらなる圧縮のためにゼロのランを符号化し得る。エントロピー符号化ユニット５６はまた、符号化ビデオビットストリーム中での送信のために適切なシンタックス要素とともにヘッダ情報を構成し得る。
【０１１２】
逆量子化ユニット５８及び逆変換ユニット６０は、それぞれ逆量子化及び逆変換を適用して、例えば参照ブロックとして後で使用するために、画素領域において残差ブロックを再構成する。動き補償ユニット４４は、残差ブロックを参照フレームストア６４のフレームのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、再構成された残差ブロックに１つ以上の補間フィルタを適用して、動き推定において使用するサブ整数画素値を計算し得る。加算器６２は、再構成された残差ブロックを動き補償ユニット４４によって生成された動き補償予測ブロックに加算して、参照フレームストア６４に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインター符号化するために動き推定ユニット４２及び動き補償ユニット４４によって参照ブロックとして使用され得る。
【０１１３】
図３は、符号化されたビデオシーケンスを復号するビデオデコーダ３０の一例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、逆量子化ユニット７６と、逆変換ユニット７８と、参照フレームストア８２と、加算器８０とを含む。ビデオデコーダ３０は、幾つかの例では、ビデオエンコーダ２０（図２）に関して説明した符号化パスとは概して逆の復号パスを実行し得る。イントラ予測ユニット７４は、ビットストリーム中で受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成し得る。
【０１１４】
動き補償ユニット７２は、エントロピー復号ユニット７０から受信した動きベクトルに基づいて予測データを生成し得る。符号化されたブロックが幾何学的動き区分線を使用して区分化されるとき、ブロックのどの画素がどの区分に対応するかを決定するために、動き補償ユニット７２は、ブロックのための幾何学的動き区分線の定義を受信し得る。幾つかの例では、線の定義は、ブロックの原点から幾何学的動き区分線の中心までの線の角度θ及び長さρに従い得る。幾つかの例では、動き補償ユニット７２が、固定小数点演算を使用してブロックの画素がどの幾何学的区分に対応するかを示すマスクを計算することができるように、線の定義は、幾何学的動き区分線の傾斜ｍ及びｙ切片ｃに従い得る。
【０１１５】
動き補償ユニット７２は、ビットストリーム中で受信された動きベクトルを使用して、参照フレームストア８２中の参照フレーム中の予測ブロックを識別し得る。幾つかの例では、動きベクトルは、前に符号化されたブロック又はそれの区分から選択される、動き予測子に対して符号化され得る。従って、動き補償ユニット７２は、ブロック又は区分のための動き予測子を決定することと、次いで受信した差分値を動き予測子に追加することとによって動きベクトルを復号し得る。
【０１１６】
動き補償ユニット７２はまた、平滑化フィルタを使用して幾何学的動き区分間の遷移領域中の画素についての予測値を計算するように構成され得る。例えば、動き補償ユニット７２は、予測値を決定するために、これらの画素に３×３画素フィルタを適用し得る。別の例として、動き補償ユニット７２は、第１の区分からの値と第２の区分からの値との重み付け和を使用して遷移領域中の画素についての予測値を計算し得る。
【０１１７】
逆量子化ユニット７６は、ビットストリーム中で供給され、エントロピー復号ユニット７０によって復号された量子化ブロック係数を逆量子化（inverse quantize）、即ち、逆量子化（de-quantize）する。逆量子化プロセスは、例えば、Ｈ．２６４復号規格によって定義された従来のプロセスを含み得る。逆量子化プロセスはまた、量子化の程度を決定し、同様に、適用すべき逆量子化の程度を決定するための、各マクロブロックについてエンコーダ５０によって計算される量子化パラメータＱＰYの使用を含み得る。
【０１１８】
逆変換ユニット５８は、逆変換、例えば逆ＤＣＴ、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用して、画素領域において残差ブロックを生成する。動き補償ユニット７２は動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行する。サブ画素精度をもつ動き推定に使用すべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット７２は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用される補間フィルタを使用して、参照ブロックのサブ整数画素の補間値を計算し得る。動き補償ユニット７２は、受信したシンタックス情報に従って、ビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【０１１９】
幾つかの例では、逆変換ユニット７８は、動き補償ユニット７２から、符号化されたブロックのための変換サイズの指示を受信し得る。動き補償ユニット７２は、ブロックが幾何学的動き区分に接触するかどうかを決定し、接触する場合、最小変換サイズ、例えば、４×４画素まで、変換サイズを１／２だけ縮小し得る。幾つかの例では、変換されたブロックは、適用すべき変換のサイズを記述するシンタックス情報を含み得る。
【０１２０】
動き補償ユニット７２は、シンタックス情報を使用して、符号化ビデオシーケンスの（１つ又は複数の）フレームを符号化するために使用されるマクロブロックのサイズと、符号化ビデオシーケンスのフレームの各マクロブロックがどのように区分化されるのかを記述する区分情報と、各区分がどのように符号化されるのかを示すモードと、各インター符号化マクロブロック又は区分のための１つ以上の参照フレームと、符号化ビデオシーケンスを復号するための他の情報とを決定し得る。
【０１２１】
加算器８０は、残差ブロックを、動き補償ユニット７２又はイントラ予測ユニットによって生成される対応する予測ブロックと加算して、復号されたブロックを形成する。所望される場合、ブロッキネスアーティファクトを除去するために、デブロッキングフィルタが、復号されたブロックをフィルタ処理することにも適用され得る。復号されたビデオブロックは、次いで、参照フレームストア８２に記憶され、参照フレームストア８２は、その後の動き補償のための参照ブロックを与え、また、表示装置（図１の表示装置３２など）上での提示のために復号されたビデオを生成する。
【０１２２】
図４は、幾何学的動き区分線１１６を使用して区分化されたブロック１１０を示す概念図である。幾何学的動き区分線１１６は、ブロック１１０を領域１１２及び領域１１４という２つの区分に区分化する。
【０１２３】
幾つかの例では、幾何学的動き区分線１１６は、直交線１２０の特性に従って定義され得る。特に、ｘ軸１１３とｙ軸１１１との交点をブロック１１０のための原点として定義する。直交線１２０は、幾何学的動き区分線１１６に直交し、点１２４において幾何学的動き区分線１１６と交差する。角度１１８は、ｘ軸１１３に対する直交線１２０の角度に対応する。距離１２２は、ブロック１１０の原点と幾何学的動き区分線１１６の点１２４との間の距離に対応し、ブロック１１０の原点からの幾何学的動き区分線１１６の垂直距離でもある。θ（シータ）及びρ（ロー）を上記で定義したように、角度１１８はθと呼ばれることもあり、距離１２２はρと呼ばれることもある。このようにして、幾何学的動き区分線１１６は、角度１１８と距離１２２との組合せを使用してブロック１１０のために定義され得る。
【０１２４】
代替的に、幾何学的動き区分線１１６は、傾斜１２６及びｙ切片１２８に従って定義され得る。傾斜角１２６は幾何学的動き区分線１１６の傾斜に対応する。ｙ切片１２８は、幾何学的動き区分線１１６がｙ軸１１１と交差する点に対応する。また、上記で定義したように、傾斜１２６はｍを使用して表され得、ｙ切片１２８はｃを使用して表され得る。画素が領域１１２中にあるのか領域１１４中にあるのかを示すブロック１１０のためのマスクを計算するために固定小数点演算が使用されることを可能にするために、傾斜１２６及びｙ切片１２８は整数値として表され得る。傾斜１２６及びｙ切片１２８は、便宜上、以下に複写する、上記の式（１）によって角度１１８及び距離１２０に数学的に関係付けられる。
【数２】
2014209743.tif 000004
【０１２５】
図５は、幾何学的動き区分線１３８を使用して区分化されたブロック１３０を示す概念図である。幾何学的動き区分線１３８は、ブロック１３０を領域１３２及び領域１３４という２つの領域に分割する。遷移領域１３６が、幾何学的動き区分線１３８の近くの画素を含む。幾つかの例では、遷移領域１３６は、領域１３２中の少なくとも１つの隣接画素と領域１３４中の少なくとも１つの隣接画素とを有する画素を含むように定義され得る。隣接画素は、上に隣接する、下に隣接する、左に隣接する、右に隣接する、左上に隣接する、右上に隣接する、左下に隣接する、及び／又は右下に隣接する、のいずれか又はすべてを含み得る。
【０１２６】
遷移領域１３６中の画素は、その画素が領域１３２により近接しているのか領域１３４により近接しているのかを示すために、様々なレベルの影付きで示されている。特に、この例では、淡い影付きの画素は領域１３２により近接しており、濃い影付きの画素は領域１３４により近接している。一例では、画素は、その画素に対する大部分の隣接画素が特定の領域中にあるとき、その領域により近接していると言われることがある。幾つかの例では、ビデオエンコーダ２０及び／又はビデオデコーダ３０は、遷移領域１３６中の画素に平滑化フィルタを適用するように構成され得る。
【０１２７】
図６は、３×３画素アレイ１４０を示す概念図である。画素アレイ１４０は、現在の画素１４２と隣接画素１４４Ａ〜１４４Ｈ（隣接画素１４４）とを含む。特に、図６の例では、画素１４４Ｂは、上に隣接する画素に対応し、画素１４４Ｇは、下に隣接する画素に対応し、画素１４４Ｄは、左に隣接する画素に対応し、画素１４４Ｅは、右に隣接する画素に対応し、画素１４４Ａは、左上に隣接する画素に対応し、画素１４４Ｃは、右上に隣接する画素に対応し、画素１４４Ｆは、左下に隣接する画素に対応し、画素１４４Ｈは、右下に隣接する画素に対応する。
【０１２８】
画素アレイ１４０は、現在の画素１４２が遷移領域、即ち、幾何学的動き区分線の近くの領域中にあるかどうかを決定するときに使用され得る。隣接画素１４４のうちの２つ以上が異なる領域中にあるとき、現在の画素１４２は、遷移領域中に含まれると言われることがある。例えば、ネイバー画素１４４Ｄが領域０中にあり、ネイバー画素１４４Ｅが領域１中にある場合、現在の画素１４２は、遷移領域中にあると言われることがある。幾つかの例では、現在の画素１４２は、大部分の隣接画素が特定の領域中にあるとき、その領域により近接していると言われることがある。例えば、隣接画素１４４Ａ、１４４Ｂ、１４４Ｃ、１４４Ｄ、及び１４４Ｆが領域０中にあり、隣接画素１４４Ｅ、１４４Ｇ、及び１４４Ｈが領域１中にある場合、現在の画素１４２は、領域０により近接していると言われることがある。
【０１２９】
画素アレイ１４０は、現在の画素１４２の値を調整するための３×３平滑化フィルタを定義するためにも使用され得る。そのフィルタは、現在の画素１４２及びネイバー画素１４４の各々のための定義された重みを有し得る。現在の画素１４２についての値を計算するために、画素アレイ１４０中の画素の各々の重みは、対応するロケーションにおける画素の値によって乗算され、次いで加算され、重みの和で除算され得る。一例では、ネイバー画素１４４Ａは１の重みを有し、ネイバー画素１４４Ｂは２の重みを有し、ネイバー画素１４４Ｃは１の重みを有し、ネイバー画素１４４Ｄは２の重みを有し、ネイバー画素１４４Ｅは２の重みを有し、ネイバー画素１４４Ｆは１の重みを有し、ネイバー画素１４４Ｇは２の重みを有し、ネイバー画素１４４Ｈは１の重みを有し、現在の画素１４２は３の重みを有する。これらの重みは、それぞれの画素の値によって乗算され、次いで１５（１＋２＋１＋２＋３＋２＋１＋２＋１）で除算されて、現在の画素１４２についての平滑化値が計算され得る。
【０１３０】
別の例では、ネイバー画素１４４Ａは０の重みを有し、ネイバー画素１４４Ｂは１の重みを有し、ネイバー画素１４４Ｃは０の重みを有し、ネイバー画素１４４Ｄは１の重みを有し、ネイバー画素１４４Ｅは１の重みを有し、ネイバー画素１４４Ｆは０の重みを有し、ネイバー画素１４４Ｇは１の重みを有し、ネイバー画素１４４Ｈは０の重みを有し、現在の画素１４２は４の重みを有する。これらの重みは、それぞれの画素の値によって乗算され、次いで８（１＋１＋４＋１＋１）で除算されて、現在の画素１４２についての平滑化値が計算され得る。他の例では、他の平滑化フィルタを作成するために、ネイバー画素１４４と現在の画素１４２とに他の重みが同様に割り当てられ得る。その上、隣接画素１４４に割り当てられる重みは、必ずしも対称的である必要はない。さらに、より大きい、例えば、５×５、７×７などの平滑化フィルタも定義され得る。
【０１３１】
図７は、幾何学的動き区分線で区分化されたブロックについての残差値を計算するときに平滑化を実行するための例示的な方法を示すフローチャートである。例としてビデオエンコーダ２０に関して説明するが、図７の方法は他の処理ユニットによって実行され得ることを理解されたい。例えば、図７の方法はビデオデコーダ３０によっても適用され得る。
【０１３２】
初めに、ビデオエンコーダ２０が、符号化されるべきビデオデータのブロックを受信する（１５０）。この例では、ブロックが、インター予測符号化フレーム、例えば、Ｐフレーム又はＢフレームのブロックに対応すると仮定する。動き推定ユニット４２がブロックの動き探索を実行し得る。動き探索の結果として、動き推定ユニット４２は、幾何学的動き区分線を使用してブロックが区分化されるべきであると決定する（１５２）。その結果、動き推定ユニット４２は、幾何学的動き区分線を使用してブロックを区分化し、２つの動きベクトル、即ち、幾何学的動き区分ごとに１つの動きベクトルを生成し得る。
【０１３３】
動き推定ユニット４２は、幾何学的動き区分線の定義とともに動きベクトルを動き補償ユニット４４に送り得る。幾つかの例では、幾何学的動き区分線の定義は、ブロックの原点から幾何学的動き区分線までの直交線についての角度及び距離値を使用して、又は幾何学的動き区分線についての傾斜及びｙ切片値を使用して表され得る。動き補償ユニット４４は、幾何学的動き区分線の定義を使用してブロックのためのマスクを計算し得る。上記線が直交線の角度及び長さを使用して定義されるとき、上記計算は浮動小数点演算を使用して行われ得る。上記線が幾何学的動き区分線の傾斜及びｙ切片を使用して定義されるとき、上記計算は固定小数点演算を使用して行われ得る。
【０１３４】
動き補償ユニット４４は、遷移領域に対応する、ブロック中の画素を決定する（１５４）。これらの画素は、幾何学的動き区分のうちの１つの中の少なくとも１つの隣接画素と、他の幾何学的動き区分中の別の隣接画素とを有する画素に対応し得る。隣接画素のセットは、画素の直接（例えば、真上の、真下の、及び真横の）ネイバーのみを含むか、又は画素に対する対角ネイバーを含み得る。動き補償ユニット４４は、次いで遷移領域中の画素のための平滑化プロセスを開始し得る。
【０１３５】
遷移領域中の画素は、定義によれば、ブロックの両方の幾何学的動き区分中のネイバーを含む。従って、平滑化は、ブロックの両方の区分からの値を使用して遷移領域中の画素についての予測値を計算することによって、２つの区分間で行われる（１５６）。幾つかの例では、遷移領域中の画素の平滑化は、各区分からの遷移領域中のコロケート画素についての値の重み付け和を計算することによって行われる。
【０１３６】
幾つかの例では、遷移領域中の画素の平滑化は、遷移領域中のある画素についての予測値を計算するために遷移領域中のその画素を囲む画素の値を平均化することによって行われ、これは各区分中の隣接画素を含む。従って、動き補償ユニット４４は、係数として割り当てられた重みを有するフィルタを、フィルタ処理されるべき画素と隣接画素とに適用することによって、遷移領域中の画素についての予測値を計算し得る。動き補償ユニット４４は、次いで、フィルタ処理された画素についての予測値を生成するために、これらの値の各々を加算し、重みの和で除算することによって、それらの値を平均化し得る。
【０１３７】
動き補償ユニット４４は、同様にして遷移領域中の画素の各々についての予測値を計算し得る。次いで、ビデオエンコーダ２０は、例えば、加算器５０を使用して、元のブロックから予測値を減算することによってブロックについての残差値を計算する（１５８）。以下でより詳細に説明するように、ビデオエンコーダ２０は、ブロックについての残差を、変換ユニット５２によって変換されるべき変動するサイズのサブブロックに分割し得る。サブブロックに適用される遷移のサイズは、幾何学的区分線が区分を通るかどうかに基づいて適応的に決定され得る。また、ビデオエンコーダ２０は計算された残差を出力し得る。出力することは、データをネットワーク上で送信すること、データをブロードキャストすること、データをコンピュータ可読媒体に記憶すること、又は他の方法でデータを出力することを含み得る。
【０１３８】
図７の方法は、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、第１の区分からの少なくとも１つの隣接画素についての値と第２の区分からの少なくとも１つの隣接画素についての値とを適用するフィルタを使用してブロックの遷移領域中の画素の予測値を計算することと、遷移領域中の画素の予測値に基づいてブロックの遷移領域中の画素の残差値を計算することと、画素の残差値を出力することとを含む方法として要約され得る。
【０１３９】
同様の方法がビデオデコーダ３０によって実行され得る。そのような方法は、ビデオデータの符号化されたブロックと、符号化されたブロックを第１の区分と第２の区分とに区分化する幾何学的動き区分線の定義と、ブロックの遷移領域中の画素についての残差値とを受信することと、第１の区分からの少なくとも１つの隣接画素についての値と第２の区分からの少なくとも１つの隣接画素についての値とを適用するフィルタを使用してブロックの遷移領域中の画素の予測値を計算することと、予測値及び残差値に基づいてブロックの遷移領域中の画素についての再構成値を計算することと、画素の再構成値を出力することとを含み得る。
【０１４０】
図８は、適応変換サイズ選択を使用して変換されるべき例示的なブロック１７０を示す概念図である。ブロック１７０は、幾何学的動き区分線１７２を使用して区分化されている。図８の例では、ブロック１７０は１６×１６画素ブロックである。変換ユニット５２（図２）は、異なる変換を使用してブロック１７０のサブブロックを変換するために異なるサイズの様々な変換で構成され得る。ビデオエンコーダ２０は、最初にブロック１７０を４つの８×８ブロック１７４Ａ〜１７４Ｄ（８×８ブロック１７４）に分割し得、但し、Ｔｒは「変換（transform）」を示し、変換サイズを示す。
【０１４１】
８×８ブロック１７４の各々について、ビデオエンコーダ２０は、幾何学的動き区分線１７２が８×８ブロックを通るかどうかを決定し得る。そうである場合は、ビデオエンコーダ２０は、８×８ブロックを４×４ブロックにさらに分割し得る。他の場合は、ビデオエンコーダ２０は、８×８変換を使用して８×８ブロックを変換し得る。
【０１４２】
図８の例では、幾何学的動き区分線１７２は、８×８ブロック１７４Ｂ、１７４Ｃ、及び１７４Ｄを通る。従って、８×８ブロック１７４Ｂ、１７４Ｃ、及び１７４Ｄは、重複しない４×４ブロックにさらに分割される。従って、この例では、８×８ブロック１７４Ｂ、１７４Ｃ、及び１７４Ｄの４×４サブブロックは、４×４変換を使用して変換されることになる。ビデオエンコーダ２０は、４×４の最小変換サイズで構成されることがあり、従って４×４ブロックをさらに分割しないことがある。但し、最小変換サイズは、４×４である必要はなく、代わりに２×２であり得、又はビデオエンコーダ２０は最小変換サイズで構成されないことがある。幾つかの例では、最小変換サイズは４×４よりも大きいことがある。この例では、幾何学的動き区分線１７２は８×８ブロック１７４Ａを通らず、従って、８×８ブロック１７４Ａに８×８変換が適用されるべきである。
【０１４３】
図９は、適応変換サイズ選択を使用して変換されるべき別の例示的なブロック１８０の概念図である。この例では、ブロック１８０は、幾何学的動き区分線１８２によって区分化された３２×３２ブロックを備える。初めに、ビデオエンコーダ２０が、ブロック１８０を４つの１６×１６ブロック１８４Ａ〜１８４Ｄ（１６×１６ブロック１８４）に区分化し得る。ビデオエンコーダ２０は、次いで、幾何学的動き区分線１８２が１６×１６ブロック１８４のうちのいずれかを通るかどうかを決定し得る。
【０１４４】
この例では、幾何学的動き区分線１８２は１６×１６ブロック１８４Ａを通らない。従って、ビデオエンコーダ２０は、１６×１６区分を使用して１６×１６区分１８４Ａを変換し得る。幾何学的動き区分線１８２が１６×１６ブロック１８４Ｂ、１８４Ｃ、及び１８４Ｄを通るので、ビデオエンコーダ２０は、図９に示すように、１６×１６ブロック１８４Ｂ、１８４Ｃ、及び１８４Ｄを８×８ブロックにさらに分割し得る。ビデオエンコーダ２０は、同じく図９の例に示すように、幾何学的動き区分線１８２が通る８×８ブロックの各々を４×４ブロックにさらに分割し得る。この例では、１６×１６ブロック１８４Ｂの１つの８×８ブロックが４×４ブロックにさらに分割され、１６×１６ブロック１８４Ｃの１つの８×８ブロックが４×４ブロックにさらに分割され、１６×１６ブロック１８４Ｄの８×８ブロックのうちの３つが４×４ブロックにさらに分割される。例として、ビデオエンコーダ２０が４×４の最小変換サイズで構成されると仮定する。
【０１４５】
ビデオエンコーダ２０は、８×８変換サイズを使用して、分割されていない８×８ブロックを変換し、４×４変換サイズを使用して４×４ブロックの各々を変換し得る。ビデオエンコーダ２０は、１６×１６変換を使用して１６×１６ブロック１８４Ａを変換し得る。このようにして、ビデオエンコーダ２０は、ブロック１８０のサブブロックが幾何学的動き区分線１８２に接触するかどうかに基づいて、それらのサブブロックのための変換サイズを適応的に決定し得る。
【０１４６】
図１０は、Ｎ×Ｎブロックのサブブロックのための変換サイズを決定するための例示的な方法を示すフローチャートである。例としてビデオエンコーダ２０に関して説明するが、図１０の方法は他の処理ユニットによって実行され得ることを理解されたい。例えば、図１０の方法は、例えば、サブブロックを逆変換するために、Ｎ×Ｎブロックのサブブロックのための変換サイズを決定するためにビデオデコーダ３０によっても適用され得る。
【０１４７】
初めに、ビデオエンコーダ２０がＮ×Ｎブロックを受信する（２００）。Ｎ×Ｎブロックは、区分化されたフルブロック、又はそれのサブブロックであり得る。ビデオエンコーダ２０は、幾何学的動き区分線がＮ×Ｎブロックを通るかどうかを決定する（２０２）。そうでない場合（２０２の「ＮＯ」分岐）、ビデオエンコーダ２０は、Ｎ×Ｎブロックを変換するためにＮ×Ｎ変換サイズを使用する（２０４）。
【０１４８】
一方、幾何学的動き区分線がＮ×Ｎブロックを通る場合（２０２の「ＹＥＳ」分岐）、ビデオエンコーダ２０は、Ｎ×Ｎブロックを４つの重複しない（Ｎ／２）×（Ｎ／２）ブロックに分割する（２０６）。次いで、ビデオエンコーダ２０は、各（Ｎ／２）×（Ｎ／２）ブロックのための変換サイズを決定する（２０８）。そうするために、ビデオエンコーダ２０は、各（Ｎ／２）×（Ｎ／２）ブロックについて図１０の方法の再帰呼出しを行い得る。即ち、ビデオエンコーダ２０は、幾何学的動き区分線が各（Ｎ／２）×（Ｎ／２）ブロックを通るかどうかを決定し得る。幾何学的動き区分線が通らない（Ｎ／２）×（Ｎ／２）ブロックについては、ビデオエンコーダ２０は（Ｎ／２）×（Ｎ／２）変換サイズを使用して変換し得、幾何学的動き区分線が通る（Ｎ／２）×（Ｎ／２）ブロックについては、ビデオエンコーダ２０は、４つの（Ｎ／４）×（Ｎ／４）ブロックにさらに再分割し、この場合も潜在的に図１０の方法の再帰的インスタンスを使用して各（Ｎ／４）×（Ｎ／４）ブロックのための変換サイズを決定し得る。ビデオエンコーダ２０は、次いで、変換されたサブブロックを出力し得る。出力することは、データをネットワーク上で送信すること、データをブロードキャストすること、データをコンピュータ可読媒体に記憶すること、又は他の方法でデータを出力することを含み得る。
【０１４９】
図１０の方法と同様の例示的な方法は、幾何学的動き区分線を使用してビデオデータのブロックを第１の幾何学的区分と第２の幾何学的区分とに区分化することであって、ブロックがＮ×Ｎ画素を備える、区分化することと、ビデオデータのブロックを４つの等しいサイズの重複しない（Ｎ／２）×（Ｎ／２）サブブロックに分割することと、（Ｎ／２）×（Ｎ／２）よりも小さい変換サイズを使用して、幾何学的動き区分線がそれを通るサブブロックのうちの少なくとも１つを符号化することとを含み得る。
【０１５０】
同様の方法がビデオデコーダ３０によって実行され得る。ビデオデコーダによって実行される例示的な方法は、幾何学的動き区分線によって第１の幾何学的区分と第２の幾何学的区分とに区分化されたビデオデータの符号化され、Ｎ×Ｎ画素を有するブロックを受信することと、ビデオデータのブロックを４つの等しいサイズの重複しない（Ｎ／２）×（Ｎ／２）サブブロックに分割することと、（Ｎ／２）×（Ｎ／２）よりも小さい変換サイズを使用して、幾何学的動き区分線がそれを通るサブブロックのうちの少なくとも１つを逆変換することとを含み得る。
【０１５１】
以下の擬似コードは、図１０の方法の例示的な部分的実装形態として、（ｘ，ｙ）における開始点をもつブロックのための変換サイズを決定するための例示的な関数「determineTransformSize」を与える。変数slope及びinterceptは、ブロックのための幾何学的動き区分線を定義する傾斜及び切片値である。変数__minTransformは、水平と垂直の両方に最小変換サイズに従って定義されたグローバル変数、例えば、４である。変数currSizeは、現在の変換サイズであり、幾何学的に動き区分化されたＮ×Ｎブロックの場合、（Ｎ／２）を用いて初期化し得る。
【０１５２】
変数startPartitionは、（ｘ，ｙ）におけるブロックの開始画素のための区分に対応し、変数curPartitionは、ブロックの現在の画素のための区分を追跡する。値startPartition及びcurPartitionは、ｃライクな条件演算子「？」を使用して計算され、「condition ? result1:result2」は、「condition」が真の場合はresult1を返し、他の場合はresult2を返す。２つのforループは、ブロックの画素にわたって反復する。ある時点において現在の画素のための区分が開始画素の区分に一致しない場合は、幾何学的動き区分線はブロックを通る。これにより、forループが中断し、determineTransformSizeへの再帰呼出しが行われ、現在の変換サイズcurrSizeが１／２だけ低減される。そうではなく、ブロックの全ての画素が同じ区分中に残っている場合は、ブロックを変換するために変換サイズcurrSizeが使用され得る。
【数３】
2014209743.tif 000005
【０１５３】
図１１は、幾何学的区分ブロック２２０と隣接サブブロック２２８Ａ〜２２８Ｆ（隣接サブブロック２２８）とを示すブロック図である。幾何学的動き区分線２２６が、ブロック２２０を区分２２２及び区分２２４という２つの区分に分割する。ビデオエンコーダ２０などのビデオエンコーダが、隣接サブブロック２２８の各々のための動きベクトルに対して区分２２２、２２４のための動きベクトルを符号化し得る。即ち、ビデオエンコーダ２０は、隣接サブブロック２２８のうちのどれが区分２２２、２２４の各々に対するネイバーと見なされるかを決定し得る。
【０１５４】
区分２２２に対するネイバーは、必ずしも区分２２４に対するネイバーと見なされるとは限らず、同様に、区分２２４に対するネイバーは、必ずしも区分２２２に対するネイバーと見なされるとは限らない。例えば、ビデオエンコーダ２０は、サブブロック２２８の各々が区分２２２に対するネイバーであるが、サブブロック２２８のいずれも区分２２４に対するネイバーでないと決定し得る。サブブロック２２８Ａ及び２２８Ｅの各々について、それの右縁に位置する画素が区分のネイバーである場合、それらのサブブロックは、その区分に対するネイバーと見なされ得る。サブブロック２２８Ｂ及び２２８Ｆの各々について、それの下縁に位置する画素が区分のネイバーである場合、それらのサブブロックは、その区分に対するネイバーと見なされ得る。サブブロック２２８Ｄは、それの右下コーナー画素が区分に対するネイバーである場合、その区分に対するネイバーと見なされ得る。サブブロック２２８Ｃは、それの左下コーナー画素が区分に対するネイバーである場合、その区分に対するネイバーと見なされ得る。別の例では、サブブロックの部分的縁画素がネイバーである場合、そのサブブロックは区分に隣接すると見なされ得る。
【０１５５】
ビデオエンコーダ２０は、区分のための動き予測子を決定するために、その区分に隣接すると見なされるサブブロック２２８のための動きベクトルの中央値を計算し得る。区分に隣接すると見なされるサブブロック２２８のための動きベクトルは、候補動き予測子のセットと呼ばれることもある。例のために、サブブロック２２８の各々が区分２２２に隣接すると決定されることを仮定すると、ビデオエンコーダ２０は、区分２２２のための動き予測子を決定するためにサブブロック２２８の各々のための動きベクトルの中央値を計算し得る。ビデオエンコーダ２０は、次いで、動きベクトルを符号化するために、区分２２２のための動きベクトルと区分２２２のための動き予測子との間の差を計算し得る。
【０１５６】
例のために、サブブロック２２８Ｃ、２２８Ｅ、及び２２８Ｆが区分２２４に隣接すると決定されることを仮定すると、ビデオエンコーダ２０は、区分２２４のための動き予測子を決定するためにサブブロック２２８Ｃ、２２８Ｅ、及び２２８Ｆのための動きベクトルの中央値を計算し得る。ビデオエンコーダ２０は、次いで、動きベクトルを符号化するために、区分２２４のための動きベクトルと区分２２４のための動き予測子との間の差を計算し得る。
【０１５７】
このようにして、ビデオエンコーダ又はビデオデコーダは、サブブロック２２８Ａ、２２８Ｂ、２２８Ｃ、及び２２８Ｄのみから選択する従来の方法よりも大きい、候補動き予測子のセットから、動き予測子を選択し得る。その上、ビデオエンコーダ又はビデオデコーダは、１つの区分、例えば、区分２２２のための動き予測子を、他の区分、例えば、区分２２４のための動き予測子とは無関係に選択し得る。従って、区分２２２、２２４は同じブロック２２０の区分であるが、区分２２２、２２４のための動き予測子は異なり得る。従って、ビデオエンコーダ又はデコーダは、区分を含んでいるブロック、即ち、区分がそれの一部を形成するブロックではなく、候補動き予測子に関係するサブブロックが区分に隣接するかどうかに基づいて、区分のための動き予測子を選択し得る。
【０１５８】
図１２は、ビデオデータのブロックの幾何学的動き区分の動きベクトルを符号化するための例示的な方法を示すフローチャートである。例としてビデオエンコーダ２０に関して説明するが、図１２の方法は他の処理ユニットによって実行され得ることを理解されたい。例えば、図１２の方法は、幾何学的に動き区分化されたブロックの符号化された動きベクトルを復号するためにビデオデコーダ３０によっても適用され得る。
【０１５９】
初めに、ビデオエンコーダ２０がビデオデータのブロックを受信する（２５０）。ビデオエンコーダ２０は、次いで、幾何学的動き区分を使用してブロックを区分化する（２５２）。ビデオエンコーダ２０は、次いで、第１の幾何学的動き区分のための候補予測子のセットを決定する（２５４）。即ち、ビデオエンコーダ２０は、ブロックに隣接するサブブロックのセットのうちのどれが第１の区分にも隣接すると見なされるかを決定し得る。次いで、ビデオエンコーダ２０は、第１の区分に隣接するサブブロックのための動きベクトルを取り出し得る。ビデオエンコーダ２０は、次いで、これらの動きベクトルの中央値を計算し、計算された中央値を第１の区分のための動き予測子として使用する（２５６）。ビデオエンコーダ２０は、次いで、第１の区分のための動きベクトルと第１の区分のための動き予測子との間の差を計算して、第１の区分のための予測子に対して動きベクトルを符号化する（２５８）。
【０１６０】
次に、ビデオエンコーダ２０は、第２の幾何学的動き区分のための候補予測子のセットを決定する（２６０）。即ち、ビデオエンコーダ２０は、ブロックに隣接するサブブロックのセットのうちのどれが第２の区分に隣接すると見なされるかを決定し得る。次いで、ビデオエンコーダ２０は、第２の区分に隣接するサブブロックのための動きベクトルを取り出し得る。ビデオエンコーダ２０は、次いで、これらの動きベクトルの中央値を計算し、計算された中央値を第２の区分のための動き予測子として使用する（２６２）。ビデオエンコーダ２０は、次いで、第２の区分のための動きベクトルと第２の区分のための動き予測子との間の差を計算して、第２の区分のための予測子に対して動きベクトルを符号化する（２６４）。ビデオエンコーダ２０は、次いで、符号化された動きベクトルを出力し得る。出力することは、データをネットワーク上で送信すること、データをブロードキャストすること、データをコンピュータ可読媒体に記憶すること、又は他の方法でデータを出力することを含み得る。
【０１６１】
このようにして、ビデオエンコーダ２０は、各区分のために独立して選択された候補動き予測子を使用して、互いとは無関係にブロックの幾何学的動き区分のための動きベクトルを符号化し得る。従って、ビデオエンコーダ２０は、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、第１の区分のための第１の動きベクトルと第２の区分のための第２の動きベクトルとを決定することと、第１の区分に隣接するブロックのための動きベクトルから選択される第１の動き予測子に基づいて第１の動きベクトルを符号化することと、第２の区分に隣接するブロックのための動きベクトルから選択される第２の動き予測子に基づいて第２の動きベクトルを符号化することであって、第２の区分に隣接するブロックが、第１の区分に隣接するブロックとは無関係に決定される、符号化することと、符号化された第１及び第２の動きベクトルを出力することとを含む方法を実行し得る。ビデオエンコーダ２０はまた、図１１に関して説明したように、従来使用されるものよりも大きい、動きベクトルのセットから、候補動き予測子を選択し得る。
【０１６２】
ビデオデコーダ３０は、符号化されたブロックのための符号化された動きベクトルを復号するために同様の方法を利用し得る。動き予測子と動きベクトルとの間の差を計算するのではなく、ビデオデコーダ３０は、符号化された動きベクトルを受信し、符号化された動きベクトルについての値を動き予測子に追加して、動きベクトルを復号し得る。従って、ビデオデコーダ３０は、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータのブロックと、第１の区分のための第１の符号化された動きベクトルと、第２の区分のための第２の符号化された動きベクトルとを受信することと、第１の区分に隣接するブロックのための動きベクトルから選択される第１の動き予測子に基づいて第１の符号化された動きベクトルを復号することと、第２の区分に隣接し、第１の区分に隣接するブロックとは無関係に決定されるブロックのための動きベクトルから選択される第２の動き予測子に基づいて第２の符号化された動きベクトルを復号することと、復号された第１及び第２の動きベクトルを使用してブロックを復号することとを含む方法を実行し得る。
【０１６３】
図１３は、固定小数点実装形態を使用してビデオデータのブロックを符号化するための例示的な方法を示すフローチャートである。例としてビデオエンコーダ２０に関して説明するが、図１３の方法と同様の方法が他の処理ユニットによって実行され得ることを理解されたい。例えば、図１３の方法と同様の方法は、固定小数点実装形態においてビデオデータを復号するためにビデオデコーダ３０によっても適用され得る。
【０１６４】
初めに、ビデオエンコーダ２０がビデオデータのブロックを受信する（２８０）。ビデオエンコーダ２０は、次いで、幾何学的動き区分を使用してブロックを区分化する（２８２）。ビデオエンコーダ２０は、ブロックを区分化するために使用される幾何学的動き区分線に直交しブロックの原点から開始する線分の角度θ及び長さρに従って幾何学的動き区分線を定義し得る。
【０１６５】
ビデオエンコーダ２０は、角度及び長さ値が、特定の数のビットを有する整数によって記憶され得るように、角度及び長さ値のためのステップサイズで構成され得る。一例として、ビデオエンコーダ２０は、５ビット数内で幾何学的動き区分線を定義する角度値を記憶するように構成され得る。角度値は、１のステップサイズと、両端値を含む０から３１の間の範囲とを有し得る。従って、角度値における、２つの連続するステップ間の差は、１１．２５度の差を表し得る。長さ値は、ブロックのサイズに依存し、両端値を含む０からＮ／２−１までの範囲を有する符号付き整数に対応し得、但し、Ｎはブロックサイズを表す。従って、例えば、１６×１６ブロックの場合は、長さ値は０から７の間の符号付き整数に対応し得、３２×３２ブロックの場合は、長さ値は０から１５の間の符号付き整数に対応し得、６４×６４ブロックの場合は、長さ値は０から３１の間の符号付き整数に対応し得る。
【０１６６】
但し、固定小数点実装形態を可能にするために、ビデオエンコーダ２０は、例えば、式（１）に従って、幾何学的動き区分線についての傾斜及びｙ切片を計算する（２８４）。ビデオエンコーダ２０は、傾斜及びｙ切片を整数値として表し得る。即ち、ビデオエンコーダ２０は、角度及び長さ値から傾斜及びｙ切片値を計算し、傾斜及びｙ切片値に整数値、例えば、６５５３６を乗算し、次いで、計算された傾斜及びｙ切片値を最も近い整数に丸め得る。ビデオエンコーダ２０は、得られた傾斜及びｙ切片値を適切なサイズのビットベクトル、例えば、３２ビット整数値として記憶し得る。
【０１６７】
ビデオエンコーダ２０は、次いで、傾斜及びｙ切片値を使用してブロックのためのマスクを計算する（２８６）。即ち、ビデオエンコーダ２０は、ブロックの各点が領域０中にあるのか領域１中にあるのか（例えば、図１１の例では、区分２２２中にあるのか区分２２４中にあるのか）を決定するために、各点にわたって反復し得る。ビデオエンコーダ２０は、ブロックを符号化するときにマスクを参照し、即ち、マスクに基づいてブロックを符号化する（２８８）。例えば、ビデオエンコーダ２０は、ブロックについての残差を計算するためにブロックの各区分の境界を決定し得る。即ち、ビデオエンコーダ２０は、マスクを参照して、第１の区分に関連する動きベクトルを使用してブロックの画素についての値を取り出すべきなのか、又は第２の区分に関連する動きベクトルを使用してブロックの画素についての値を取り出すべきなのかを決定し得る。
【０１６８】
ビデオエンコーダ２０は、これらの動きベクトルを使用して画素についての値を取り出し、これらの値と符号化されるべきブロックとの間の差を計算することによってブロックについての残差を計算し得る。このようにして、ビデオエンコーダ２０は、マスクを使用して、ブロック中の画素が第１の区分に対応するのか第２の区分に対応するのかを決定し、第１の区分のための動きベクトルによって示される参照ブロックから第１の区分中の画素についての予測値を取り出し、第２の区分のための動きベクトルによって示される参照ブロックから第２の区分中の画素についての予測値を取り出し得る。
【０１６９】
幾つかの例では、ビデオエンコーダ２０は、本開示で説明する平滑化技法を使用して区分間の遷移を平滑化し得る。即ち、ビデオエンコーダ２０は、遷移領域中のブロックの画素のセットを決定し、第１の区分のための動きベクトルによって示される参照ブロックと、第２の区分のための動きベクトルによって示される参照ブロックとに基づいて、遷移領域中の画素のセットについての予測値を計算し得る。
【０１７０】
ビデオエンコーダ２０は、次いで、符号化されたブロック、ならびに幾何学的動き区分線を定義する傾斜及びｙ切片値を出力する（２９０）。出力することは、データをネットワーク上で送信すること、データをブロードキャストすること、データをコンピュータ可読媒体に記憶すること、又は他の方法でデータを出力することを含み得る。ビデオエンコーダ２０は、さらに、本開示の技法を使用して区分のための動きベクトルを符号化し、残差のサブブロックを変換するときに本開示の適応変換サイズ選択技法を適用し得る。
【０１７１】
このようにして、ビデオエンコーダ２０などのビデオエンコーダによって実行され得る図１３の方法に対応する例示的な方法は、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、幾何学的動き区分線の（整数値を有する）傾斜値及びｙ切片値を計算することと、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算することと、マスクに基づいて第１の区分と第２の区分とを符号化することと、符号化された第１の区分と、符号化された第２の区分と、傾斜値と、ｙ切片値とを出力することとを含み得る。
【０１７２】
ビデオデコーダ３０などのビデオデコーダは、ビデオデータを復号するための同様の方法を実行し得る。ビデオデータを復号する例示的な方法は、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、幾何学的動き区分線を定義し、整数値を有する傾斜値及びｙ切片値を受信することと、第１の区分中のブロックの画素と第２の区分中のブロックの画素とを示すマスクを計算することと、マスクに基づいてブロックの第１の区分と第２の区分とを復号することと、復号されたブロックを出力することとを含み得る。
【０１７３】
１つ以上の例では、説明した機能はハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶されるか、或いはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、或いは（２）信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コード及び／又はデータ構造を取り出すために１つ以上のコンピュータ又は１つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１７４】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスクストレージ、磁気ディスクストレージ又は他の磁気ストレージ機器、フラッシュメモリ、或いは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク（disk）及びディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）及びブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１７５】
命令は、１つ以上のデジタル信号プロセッサ（ＤＳＰ）などの１つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、或いは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明した技法の実装に好適な他の構造のいずれかを指し得る。さらに、幾つかの態様では、本明細書で説明した機能は、符号化及び復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内に提供され得、或いは複合コーデックに組み込まれ得る。また、本技法は、１つ以上の回路又は論理要素中に十分に実装され得る。
【０１７６】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）又はＩＣのセット（例えば、チップセット）を含む、多種多様な機器又は装置において実施され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び／又はファームウェアとともに、上記で説明したように１つ以上のプロセッサを含んで、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
【０１７７】
様々な例について説明した。これら及び他の例は以下の特許請求の範囲内に入る。
【図１】
2014209743.tif 000006
【図２】
2014209743.tif 000007
【図３】
2014209743.tif 000008
【図４】
2014209743.tif 000009
【図５】
2014209743.tif 000010
【図６】
2014209743.tif 000011
【図７】
2014209743.tif 000012
【図８】
2014209743.tif 000013
【図９】
2014209743.tif 000014
【図１０】
2014209743.tif 000015
【図１１】
2014209743.tif 000016
【図１２】
2014209743.tif 000017
【図１３】
2014209743.tif 000018
【手続補正書】
【提出日】平成26年6月27日(2014.6.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、前記方法は、
幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、
前記幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算することと、
前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することと、
前記符号化された第１の区分と、前記符号化された第２の区分と、前記傾斜値と、前記ｙ切片値とを出力することと、
を含む、方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１７７
【補正方法】変更
【補正の内容】
【０１７７】
様々な例について説明した。これら及び他の例は以下の特許請求の範囲内に入る。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[１]  ビデオデータを符号化する方法であって、前記方法は、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、前記幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算することと、前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することと、前記符号化された第１の区分と、前記符号化された第２の区分と、前記傾斜値と、前記ｙ切片値とを出力することと、を含む、方法。
[２]  前記マスクを計算することが、固定小数点演算のみを使用して前記マスクを計算することを含む、［１に記載の方法。
[３]  前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを含み、前記マスクを計算することは、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定することを含む、［１］に記載の方法。
[４]  前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することは、前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すこととを含む、［１］に記載の方法。
[５]  遷移領域中の前記ブロックの画素のセットを決定することと、前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することと、をさらに含む、［４］に記載の方法。
[６]  前記幾何学的動き区分線の前記傾斜値及び前記ｙ切片値を計算することは、角度値及び長さ値に基づいて初期傾斜値及び初期ｙ切片値を計算することと、前記初期傾斜値及び前記初期ｙ切片値と、２のべき乗を含む１つ以上の値との積を計算することと、前記傾斜値及び前記ｙ切片値を形成するために前記積を最も近い整数値に丸めることと、を含み、前記角度値が、ｘ軸に対する、前記幾何学的動き区分線に直交し原点を通る線の角度を有し、前記長さ値は、前記原点から、前記直交線が前記幾何学的動き区分線と交わる点までの距離を有する、［１］に記載の方法。
[７]  ビデオデータを符号化するための装置であって、前記装置は、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、前記幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算することと、前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することと、前記符号化された第１の区分と、前記符号化された第２の区分と、前記傾斜値と、前記ｙ切片値とを出力することとを行うように構成されたビデオエンコーダを備える、装置。
[８]  前記ビデオエンコーダが、固定小数点演算のみを使用して前記マスクを計算するように構成された、［７］に記載の装置。
[９]  前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを有し、前記マスクを計算するために、前記ビデオエンコーダは、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定するように構成された、［７］に記載の装置。
[１０]  前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化するために、前記ビデオエンコーダは、前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すこととを行うように構成された、［７］に記載の装置。
[１１]  前記ビデオエンコーダが、遷移領域中の前記ブロックの画素のセットを決定することと、前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することとを行うように構成された、［１０］に記載の装置。
[１２]  前記幾何学的動き区分線の前記傾斜値及び前記ｙ切片値を計算するために、前記ビデオエンコーダは、角度値及び長さ値に基づいて初期傾斜値及び初期ｙ切片値を計算することと、前記初期傾斜値及び前記初期ｙ切片値と、２のべき乗を含む１つ以上の値との積を計算することと、前記傾斜値及び前記ｙ切片値を形成するために前記積を最も近い整数値に丸めることとを行うように構成され、前記角度値が、ｘ軸に対する、前記幾何学的動き区分線に直交し原点を通る線の角度を備え、前記長さ値は、前記原点から、前記直交線が前記幾何学的動き区分線と交わる点までの距離を有する、［７］に記載の装置。
[１３]  ビデオデータを符号化するための装置であって、前記装置は、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化するための手段と、前記幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算するための手段と、前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算するための手段と、前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化するための手段と、前記符号化された第１の区分と、前記符号化された第２の区分と、前記傾斜値と、前記ｙ切片値とを出力するための手段と、を備える、装置。
[１４]  前記マスクを計算するための前記手段が、固定小数点演算のみを使用して前記マスクを計算するための手段を備える、［１３］に記載の装置。
[１５]  前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを備え、前記マスクを計算するための前記手段は、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定するための手段を備える、［１３］に記載の装置。
[１６]  前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化するための前記手段は、前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定するための手段と、前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すための手段と、前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すための手段と、を備える、［１３］に記載の装置。
[１７]  遷移領域中の前記ブロックの画素のセットを決定するための手段と、前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算するための手段と、をさらに備える、［１６］に記載の装置。
[１８]  前記幾何学的動き区分線の前記傾斜値及び前記ｙ切片値を計算するための前記手段は、角度値及び長さ値に基づいて初期傾斜値及び初期ｙ切片値を計算するための手段と、前記初期傾斜値及び前記初期ｙ切片値と、２のべき乗を含む１つ以上の値との積を計算するための手段と、前記傾斜値及び前記ｙ切片値を形成するために前記積を最も近い整数値に丸めるための手段と、を備え、前記角度値が、ｘ軸に対する、前記幾何学的動き区分線に直交し原点を通る線の角度を有し、前記長さ値は、前記原点から、前記直交線が前記幾何学的動き区分線と交わる点までの距離を有する、［１３］に記載の装置。
[１９]  実行されると、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、前記幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算することと、前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することと、前記符号化された第１の区分と、前記符号化された第２の区分と、前記傾斜値と、前記ｙ切片値とを出力することと、をプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品。
[２０]  前記マスクを計算することを前記プロセッサに行わせる前記命令が、固定小数点演算のみを使用して前記マスクを計算することを前記プロセッサに行わせる命令を含む、［１９］に記載のコンピュータプログラム製品。
[２１]  前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを備え、前記マスクを計算することを前記プロセッサに行わせる前記命令は、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定することを前記プロセッサに行わせる命令を含む、［１９］に記載のコンピュータプログラム製品。
[２２]  前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することを前記プロセッサに行わせる前記命令は、前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すことと、を前記プロセッサに行わせる命令を含む、［１９］に記載のコンピュータプログラム製品。
[２３]  遷移領域中の前記ブロックの画素のセットを決定することと、前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することと、を前記プロセッサに行わせる命令をさらに含む、［２２］に記載のコンピュータプログラム製品。
[２４]  前記幾何学的動き区分線の前記傾斜値及び前記ｙ切片値を計算することを前記プロセッサに行わせる前記命令は、角度値及び長さ値に基づいて初期傾斜値及び初期ｙ切片値を計算することであって、前記角度値が、ｘ軸に対する、前記幾何学的動き区分線に直交し原点を通る線の角度を備え、前記長さ値は、前記原点から、前記直交線が前記幾何学的動き区分線と交わる点までの距離を備える、計算することと、前記初期傾斜値及び前記初期ｙ切片値と、２のべき乗を含む１つ以上の値との積を計算することと、前記傾斜値及び前記ｙ切片値を形成するために前記積を最も近い整数値に丸めることと、を前記プロセッサに行わせる命令を含む、［１９］に記載のコンピュータプログラム製品。
[２５]  ビデオデータを復号する方法であって、前記方法は、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、前記幾何学的動き区分線を定義する傾斜値及びｙ切片値を受信することであって、前記傾斜値及び前記ｙ切片値が整数値を備える、受信することと、前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、前記マスクに基づいて前記ブロックの前記第１の区分と前記第２の区分とを復号することと、前記復号されたブロックを出力することと、を含む、方法。
[２６]  前記マスクを計算することが、固定小数点演算のみを使用して前記マスクを計算することを含む、［２５］に記載の方法。
[２７]  前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを備え、前記マスクを計算することは、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定することを含む、［２５］に記載の方法。
[２８]  前記マスクに基づいて前記第１の区分と前記第２の区分とを復号することは、前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すことと、を含む、［２５］に記載の方法。
[２９]  遷移領域中の前記ブロックの画素のセットを決定することと、前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することと、をさらに含む、［２８］に記載の方法。
[３０]  ビデオデータを復号するための装置であって、前記装置は、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、前記幾何学的動き区分線を定義し、整数値を有する傾斜値及びｙ切片値を受信することと、前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、前記マスクに基づいて前記ブロックの前記第１の区分と前記第２の区分とを復号することと、前記復号されたブロックを出力することとを行うように構成されたビデオデコーダを備える、装置。
[３１]  前記ビデオデコーダが、固定小数点演算のみを使用して前記マスクを計算するように構成された、［３０］に記載の装置。
[３２]  前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを備え、前記マスクを計算するために、前記ビデオデコーダは、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定するように構成された、［３０］に記載の装置。
[３３]  前記マスクに基づいて前記第１の区分と前記第２の区分とを復号するために、前記ビデオデコーダは、前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すこととを行うように構成された、［３０］に記載の装置。
[３４]  前記ビデオデコーダが、遷移領域中の前記ブロックの画素のセットを決定することと、前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することとを行うように構成された、［３３］に記載の装置。
[３５]  ビデオデータを復号するための装置であって、前記装置は、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信するための手段と、前記幾何学的動き区分線を定義し、整数値を有する傾斜値及びｙ切片値を受信するための手段と、前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算するための手段と、前記マスクに基づいて前記ブロックの前記第１の区分と前記第２の区分とを復号するための手段と、前記復号されたブロックを出力するための手段と、を備える、装置。
[３６]  前記マスクを計算するための前記手段が、固定小数点演算のみを使用して前記マスクを計算するための手段を備える、［３５］に記載の装置。
[３７]  前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを備え、前記マスクを計算するための前記手段は、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定するための手段を備える、［３５］に記載の装置。
[３８]  前記マスクに基づいて前記第１の区分と前記第２の区分とを復号するための前記手段は、前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定するための手段と、前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すための手段と、前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すための手段と、を備える、［３５］に記載の装置。
[３９]  遷移領域中の前記ブロックの画素のセットを決定するための手段と、前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算するための手段と、をさらに備える、［３８］に記載の装置。
[４０]  実行されると、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、前記幾何学的動き区分線を定義する傾斜値及びｙ切片値を受信することであって、前記傾斜値及び前記ｙ切片値が整数値を備える、受信することと、前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、前記マスクに基づいて前記ブロックの前記第１の区分と前記第２の区分とを復号することと、前記復号されたブロックを出力することと、をプロセッサに行わせる命令を記憶したコンピュータ可読記憶媒体を含むコンピュータプログラム製品。
[４１]  前記マスクを計算することを前記プロセッサに行わせる前記命令が、固定小数点演算のみを使用して前記マスクを計算することを前記プロセッサに行わせる命令を含む、［４０］に記載のコンピュータプログラム製品。
[４２]  前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを備え、前記マスクを計算することを前記プロセッサに行わせる前記命令は、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定することを前記プロセッサに行わせる命令を含む、［４０］に記載のコンピュータプログラム製品。
[４３]  前記マスクに基づいて前記第１の区分と前記第２の区分とを復号することを前記プロセッサに行わせる前記命令は、前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すことと、を前記プロセッサに行わせる命令を含む、［４０］に記載のコンピュータプログラム製品。
[４４]  遷移領域中の前記ブロックの画素のセットを決定することと、前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することと、を前記プロセッサに行わせる命令をさらに含む、［４３］に記載のコンピュータプログラム製品。
【手続補正書】
【提出日】平成26年7月29日(2014.7.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、前記方法は、
幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、
前記幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算することと、
前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを、前記幾何学的動き区分線を定義する前記傾斜値及び前記ｙ切片値についての前記整数値を使用して計算することと、
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することと、
前記符号化された第１の区分と、前記符号化された第２の区分と、前記傾斜値と、前記ｙ切片値とを出力することと、
を含み、
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを含み、前記マスクを計算することは、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定することを含む、
方法。
【請求項２】
前記マスクを計算することが、固定小数点演算のみを使用して前記マスクを計算することを含む、請求項１に記載の方法。
【請求項３】
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することは、
前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、
前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、
前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すことと
を含む、請求項１に記載の方法。
【請求項４】
遷移領域中の前記ブロックの画素のセットを決定することと、
前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することと、
をさらに含む、請求項３に記載の方法。
【請求項５】
前記幾何学的動き区分線の前記傾斜値及び前記ｙ切片値を計算することは、
角度値及び長さ値に基づいて初期傾斜値及び初期ｙ切片値を計算することと、
前記初期傾斜値及び前記初期ｙ切片値と、２のべき乗を含む１つ以上の値との積を計算することと、
前記傾斜値及び前記ｙ切片値を形成するために前記積を最も近い整数値に丸めることと、
を含み、前記角度値が、ｘ軸に対する、前記幾何学的動き区分線に直交し原点を通る線の角度を有し、前記長さ値は、前記原点から、前記直交線が前記幾何学的動き区分線と交わる点までの距離を有する、請求項１に記載の方法。
【請求項６】
ビデオデータを符号化するための装置であって、前記装置は、幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、前記幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算することと、前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算することと、前記マスクに基づいて前記第１の区分と前記第２の区分とを、前記幾何学的動き区分線を定義する前記傾斜値及び前記ｙ切片値についての前記整数値を使用して符号化することと、前記符号化された第１の区分と、前記符号化された第２の区分と、前記傾斜値と、前記ｙ切片値とを出力することとを行うように構成されたビデオエンコーダを備え、
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを含み、前記マスクを計算するために、前記ビデオエンコーダは、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定するように構成される、
装置。
【請求項７】
前記ビデオエンコーダが、固定小数点演算のみを使用して前記マスクを計算するように構成された、請求項６に記載の装置。
【請求項８】
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化するために、前記ビデオエンコーダは、前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すこととを行うように構成された、請求項６に記載の装置。
【請求項９】
前記ビデオエンコーダが、遷移領域中の前記ブロックの画素のセットを決定することと、前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することとを行うように構成された、請求項８に記載の装置。
【請求項１０】
前記幾何学的動き区分線の前記傾斜値及び前記ｙ切片値を計算するために、前記ビデオエンコーダは、角度値及び長さ値に基づいて初期傾斜値及び初期ｙ切片値を計算することと、前記初期傾斜値及び前記初期ｙ切片値と、２のべき乗を含む１つ以上の値との積を計算することと、前記傾斜値及び前記ｙ切片値を形成するために前記積を最も近い整数値に丸めることとを行うように構成され、前記角度値が、ｘ軸に対する、前記幾何学的動き区分線に直交し原点を通る線の角度を備え、前記長さ値は、前記原点から、前記直交線が前記幾何学的動き区分線と交わる点までの距離を有する、請求項６に記載の装置。
【請求項１１】
ビデオデータを符号化するための装置であって、前記装置は、
幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化するための手段と、
前記幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算するための手段と、
前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算するための手段と、
前記マスクに基づいて前記第１の区分と前記第２の区分とを、前記幾何学的動き区分線を定義する前記傾斜値及び前記ｙ切片値についての前記整数値を使用して符号化するための手段と、
前記符号化された第１の区分と、前記符号化された第２の区分と、前記傾斜値と、前記ｙ切片値とを出力するための手段と、
を備え、
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを含み、前記マスクを計算するための手段は、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定するための手段を含む、
装置。
【請求項１２】
前記マスクを計算するための前記手段が、固定小数点演算のみを使用して前記マスクを計算するための手段を備える、請求項１１に記載の装置。
【請求項１３】
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化するための前記手段は、
前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定するための手段と、
前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すための手段と、
前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すための手段と、
を備える、請求項１１に記載の装置。
【請求項１４】
遷移領域中の前記ブロックの画素のセットを決定するための手段と、
前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算するための手段と、
をさらに備える、請求項１３に記載の装置。
【請求項１５】
前記幾何学的動き区分線の前記傾斜値及び前記ｙ切片値を計算するための前記手段は、
角度値及び長さ値に基づいて初期傾斜値及び初期ｙ切片値を計算するための手段と、
前記初期傾斜値及び前記初期ｙ切片値と、２のべき乗を含む１つ以上の値との積を計算するための手段と、
前記傾斜値及び前記ｙ切片値を形成するために前記積を最も近い整数値に丸めるための手段と、
を備え、前記角度値が、ｘ軸に対する、前記幾何学的動き区分線に直交し原点を通る線の角度を有し、前記長さ値は、前記原点から、前記直交線が前記幾何学的動き区分線と交わる点までの距離を有する、請求項１１に記載の装置。
【請求項１６】
コンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体は、
実行されると、
幾何学的動き区分線を使用してビデオデータのブロックを第１の区分と第２の区分とに区分化することと、
前記幾何学的動き区分線の、整数値を有する傾斜値及びｙ切片値を計算することと、
前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを、前記幾何学的動き区分線を定義する前記傾斜値及び前記ｙ切片値についての前記整数値を使用して計算することと、
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することと、
前記符号化された第１の区分と、前記符号化された第２の区分と、前記傾斜値と、前記ｙ切片値とを出力することと、
をプロセッサに行わせる命令を記憶し、
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを含み、前記プロセッサに前記マスクを計算させる命令は、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定させる命令を備える、
コンピュータ可読記憶媒体。
【請求項１７】
前記マスクを計算することを前記プロセッサに行わせる前記命令が、固定小数点演算のみを使用して前記マスクを計算することを前記プロセッサに行わせる命令を含む、請求項１６に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記マスクに基づいて前記第１の区分と前記第２の区分とを符号化することを前記プロセッサに行わせる前記命令は、
前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、
前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、
前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すことと、
を前記プロセッサに行わせる命令を含む、請求項１６に記載のコンピュータ可読記憶媒体。
【請求項１９】
遷移領域中の前記ブロックの画素のセットを決定することと、
前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することと、
を前記プロセッサに行わせる命令をさらに含む、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記幾何学的動き区分線の前記傾斜値及び前記ｙ切片値を計算することを前記プロセッサに行わせる前記命令は、
角度値及び長さ値に基づいて初期傾斜値及び初期ｙ切片値を計算することであって、前記角度値が、ｘ軸に対する、前記幾何学的動き区分線に直交し原点を通る線の角度を備え、前記長さ値は、前記原点から、前記直交線が前記幾何学的動き区分線と交わる点までの距離を備える、計算することと、
前記初期傾斜値及び前記初期ｙ切片値と、２のべき乗を含む１つ以上の値との積を計算することと、
前記傾斜値及び前記ｙ切片値を形成するために前記積を最も近い整数値に丸めることと、
を前記プロセッサに行わせる命令を含む、請求項１６に記載のコンピュータ可読記憶媒体。
【請求項２１】
ビデオデータを復号する方法であって、前記方法は、
幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、
前記幾何学的動き区分線を定義する傾斜値及びｙ切片値を受信することであって、前記傾斜値及び前記ｙ切片値が整数値を備える、受信することと、
前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを、前記幾何学的動き区分線を定義する前記傾斜値及び前記ｙ切片値についての前記整数値を使用して計算することと、
前記マスクに基づいて前記ブロックの前記第１の区分と前記第２の区分とを復号することと、
前記復号されたブロックを出力することと、
を含み、
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを含み、前記マスクを計算することは、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定することを含む、
方法。
【請求項２２】
前記マスクを計算することが、固定小数点演算のみを使用して前記マスクを計算することを含む、請求項２１に記載の方法。
【請求項２３】
前記マスクに基づいて前記第１の区分と前記第２の区分とを復号することは、
前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、
前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、
前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すことと、
を含む、請求項２１に記載の方法。
【請求項２４】
遷移領域中の前記ブロックの画素のセットを決定することと、
前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することと、
をさらに含む、請求項２３に記載の方法。
【請求項２５】
ビデオデータを復号するための装置であって、前記装置は、幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、前記幾何学的動き区分線を定義し、整数値を有する傾斜値及びｙ切片値を受信することと、前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを、前記幾何学的動き区分線を定義する前記傾斜値及び前記ｙ切片値についての前記整数値を使用して計算することと、前記マスクに基づいて前記ブロックの前記第１の区分と前記第２の区分とを復号することと、前記復号されたブロックを出力することとを行うように構成されたビデオデコーダを備え、
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを含み、前記マスクを計算するために、前記ビデオデコーダは、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定するように構成される、
装置。
【請求項２６】
前記ビデオデコーダが、固定小数点演算のみを使用して前記マスクを計算するように構成された、請求項２５に記載の装置。
【請求項２７】
前記マスクに基づいて前記第１の区分と前記第２の区分とを復号するために、前記ビデオデコーダは、前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すこととを行うように構成された、請求項２５に記載の装置。
【請求項２８】
前記ビデオデコーダが、遷移領域中の前記ブロックの画素のセットを決定することと、前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することとを行うように構成された、請求項２７に記載の装置。
【請求項２９】
ビデオデータを復号するための装置であって、前記装置は、
幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信するための手段と、
前記幾何学的動き区分線を定義し、整数値を有する傾斜値及びｙ切片値を受信するための手段と、
前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを計算するための手段と、
前記マスクに基づいて前記ブロックの前記第１の区分と前記第２の区分とを復号するための手段と、
前記復号されたブロックを出力するための手段と、
を備え、
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを含み、前記マスクを計算するための手段は、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定するための手段を含む、
装置。
【請求項３０】
前記マスクを計算するための前記手段が、固定小数点演算のみを使用して前記マスクを計算するための手段を備える、請求項２９に記載の装置。
【請求項３１】
前記マスクに基づいて前記第１の区分と前記第２の区分とを復号するための前記手段は、
前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定するための手段と、
前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すための手段と、
前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すための手段と、
を備える、請求項２９に記載の装置。
【請求項３２】
遷移領域中の前記ブロックの画素のセットを決定するための手段と、
前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算するための手段と、
をさらに備える、請求項３１に記載の装置。
【請求項３３】
コンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体は、
実行されると、
幾何学的動き区分線によって第１の区分と第２の区分とに区分化されたビデオデータの符号化されたブロックを受信することと、
前記幾何学的動き区分線を定義する傾斜値及びｙ切片値を受信することと、前記傾斜値及び前記ｙ切片値が整数値を備える、
前記第１の区分中の前記ブロックの画素と前記第２の区分中の前記ブロックの画素とを示すマスクを、前記幾何学的動き区分線を定義する前記傾斜値及び前記ｙ切片値についての前記整数値を使用して計算することと、
前記マスクに基づいて前記ブロックの前記第１の区分と前記第２の区分とを復号することと、
前記復号されたブロックを出力することと、
をプロセッサに行わせる命令を記憶み、
前記マスクが、それぞれのｘ値及びｙ値を含む点のセットを含み、前記プロセッサに前記マスクを計算させる命令は、前記マスク中の各点について、前記マスク中の前記点の前記値を、前記点の前記ｙ値と、前記傾斜値と前記点の前記ｘ値との積と、の間の差が前記ｙ切片値よりも大きいかどうかを示す値に設定させる命令を備える、
コンピュータ可読記憶媒体。
【請求項３４】
前記マスクを計算することを前記プロセッサに行わせる前記命令が、固定小数点演算のみを使用して前記マスクを計算することを前記プロセッサに行わせる命令を含む、請求項３３に記載のコンピュータ可読記憶媒体。
【請求項３５】
前記マスクに基づいて前記第１の区分と前記第２の区分とを復号することを前記プロセッサに行わせる前記命令は、
前記マスクを使用して、前記ブロック中の画素が前記第１の区分に対応するのか前記第２の区分に対応するのかを決定することと、
前記第１の区分のための動きベクトルによって示される参照ブロックから前記第１の区分中の画素についての予測値を取り出すことと、
前記第２の区分のための動きベクトルによって示される参照ブロックから前記第２の区分中の画素についての予測値を取り出すことと、
を前記プロセッサに行わせる命令を含む、請求項３３に記載のコンピュータ可読記憶媒体。
【請求項３６】
遷移領域中の前記ブロックの画素のセットを決定することと、
前記第１の区分のための前記動きベクトルによって示される前記参照ブロックと、前記第２の区分のための前記動きベクトルによって示される前記参照ブロックとに基づいて、前記遷移領域中の画素の前記セットについての予測値を計算することと、
を前記プロセッサに行わせる命令をさらに含む、請求項３５に記載のコンピュータ可読記憶媒体。
【外国語明細書】
2014209743000001.pdf