(57)【要約】ビデオデータを符号化するために、ビデオエンコーダは、ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化し、４つのＮ×Ｎブロックの各々に対する符号化モードを決定し、４つのＮ×Ｎブロックの各々に対する符号化モードを使用して、４つのＮ×Ｎブロックの符号化バージョンを表す値を算出し、算出された値に基づいて、２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定し、少なくとも１つの非正方形区分化モードのテストを省略するかどうかの決定に少なくとも部分的に基づいて、２Ｎ×２Ｎブロックを符号化する。【選択図】  図６
2018511232.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、
ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化することと、ここにおいて、Ｎは整数値である、
前記４つのＮ×Ｎブロックの各々に対する符号化モードを決定することと、
前記４つのＮ×Ｎブロックの各々に対する前記符号化モードを使用して、前記４つのＮ×Ｎブロックの符号化バージョンを表す値を算出することと、
算出された前記値に基づいて、前記２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと、
前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかの前記決定に少なくとも部分的に基づいて、前記２Ｎ×２Ｎブロックを符号化することと
を備える方法。
【請求項２】
テストを省略するかどうかを決定することは、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から水平値を決定することと、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から垂直値を決定することと、
前記水平値が前記垂直値にオフセットを乗じたものよりも大きいかどうか又は前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいかどうかに基づいて、前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと
を備える、請求項１に記載の方法。
【請求項３】
テストを省略するかどうかを決定することは、前記水平値が前記垂直値に前記オフセットを乗じたものよりも大きいとき、Ｎ×２Ｎ区分化モードをテストすることを省略すると決定することを備える、請求項２に記載の方法。
【請求項４】
テストを省略するかどうかを決定することは、前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいとき、２Ｎ×Ｎ区分化モードをテストすることを省略すると決定することを備える、請求項２に記載の方法。
【請求項５】
前記値を算出することは、前記４つのＮ×Ｎブロックの動きベクトルについての動きベクトル差分値を算出することを備え、前記動きベクトル差分値の各々は、それぞれの水平成分とそれぞれの垂直成分とを含む、
前記水平値を決定することは、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出することを備え、
前記水平値を決定することは、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出することを備える、
請求項２に記載の方法。
【請求項６】
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定すること及び前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することは、２Ｎ×２Ｎ区分モードでビデオデータのブロックを符号化することに関連付けられた第１のレート歪み（ＲＤ）コストが、Ｎ×Ｎ区分モードで前記ビデオデータのブロックを符号化することに関連付けられた第２のＲＤコストよりも大きいことに応答して実行される、
請求項２に記載の方法。
【請求項７】
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定すること及び前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することは、前記４つのＮ×Ｎブロックのうちのいずれのものに対するイントラモードを使用して前記２Ｎ×２Ｎブロックを符号化しないと決定することに応答して実行される、
請求項２に記載の方法。
【請求項８】
前記水平値が前記垂直値に前記オフセットを乗じたものよりも小さいこと、かつ、前記垂直値が、前記水平値に前記オフセットを乗じたものよりも小さいことに応答して、前記Ｎ×２Ｎ区分化モード及び前記２Ｎ×Ｎ区分化モードの両方をテストすること
を更に備える、請求項２に記載の方法。
【請求項９】
ビデオデータを符号化するためのデバイであって、
前記ビデオデータを記憶するために構成されたメモリと、
１つ又は複数のプロセッサと
を備え、前記１つ又は複数のプロセッサは、
ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化することと、ここにおいて、Ｎは整数値である、
前記４つのＮ×Ｎブロックの各々に対する符号化モードを決定することと、
前記４つのＮ×Ｎブロックの各々に対する前記符号化モードを使用して、前記４つのＮ×Ｎブロックの符号化バージョンを表す値を算出することと、
算出された前記値に基づいて、前記２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと、
前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかの前記決定に少なくとも部分的に基づいて、前記２Ｎ×２Ｎブロックを符号化することと
を行うように構成された、デバイス。
【請求項１０】
テストを省略するかどうかを決定することは、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から水平値を決定することと、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から垂直値を決定することと、
前記水平値が前記垂直値にオフセットを乗じたものよりも大きいかどうか又は前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいかどうかに基づいて、前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと
を備える、請求項９に記載のデバイス。
【請求項１１】
テストを省略するかどうかを決定するために、前記１つ又は複数のプロセッサは、前記水平値が前記垂直値に前記オフセットを乗じたものよりも大きいとき、Ｎ×２Ｎ区分化モードをテストすることを省略すると決定するように更に構成される、請求項１０に記載のデバイス。
【請求項１２】
テストを省略するかどうかを決定するために、前記１つ又は複数のプロセッサは、前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいとき、２Ｎ×Ｎ区分化モードをテストすることを省略すると決定するように更に構成される、請求項１０に記載のデバイス。
【請求項１３】
前記値を算出するために、前記１つ又は複数のプロセッサは、前記４つのＮ×Ｎブロックの動きベクトルについての動きベクトル差分値を算出するように更に構成され、前記動きベクトル差分値の各々は、それぞれの水平成分とそれぞれの垂直成分とを含む、
前記水平値を決定するために、前記１つ又は複数のプロセッサは、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出するように更に構成される、
前記水平値を決定するために、前記１つ又は複数のプロセッサは、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出するように更に構成される
請求項１０に記載のデバイス。
【請求項１４】
前記１つ又は複数のプロセッサは、２Ｎ×２Ｎ区分モードでビデオデータのブロックを符号化することに関連付けられた第１のレート歪み（ＲＤ）コストが、Ｎ×Ｎ区分モードで前記ビデオデータのブロックを符号化することに関連付けられた第２のＲＤコストよりも大きいことに応答して、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定することと、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することとを行うように更に構成される、
請求項１０に記載のデバイス。
【請求項１５】
前記１つ又は複数のプロセッサは、前記４つのＮ×Ｎブロックのうちのいずれのものに対するイントラモードを使用して前記２Ｎ×２Ｎブロックを符号化しないと決定することに応答して、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定することと、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することとを行うように更に構成される、
請求項１０に記載のデバイス。
【請求項１６】
前記１つ又は複数のプロセッサは、前記水平値が前記垂直値に前記オフセットを乗じたものよりも小さいこと、かつ、前記垂直値が、前記水平値に前記オフセットを乗じたものよりも小さいことに応答して、前記Ｎ×２Ｎ区分化モード及び前記２Ｎ×Ｎ区分化モードの両方をテストするように更に構成される、請求項１０に記載のデバイス。
【請求項１７】
前記デバイスは、符号化されたデータを送信するように構成された送信機を備えるワイヤレス通信デバイスを備える、請求項９に記載のデバイス。
【請求項１８】
前記ワイヤレス通信デバイスは、セルラ電話を備え、前記符号化されたビデオデータは、前記送信機によって送信される前にセルラ通信規格に従って変調される、請求項１７に記載のデバイス。
【請求項１９】
ビデオデータを符号化するための装置であって、
ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化するための手段と、ここにおいて、Ｎは整数値である、
前記４つのＮ×Ｎブロックの各々に対する符号化モードを決定するための手段と、
前記４つのＮ×Ｎブロックの各々に対する前記符号化モードを使用して、前記４つのＮ×Ｎブロックの符号化バージョンを表す値を算出するための手段と、
算出された前記値に基づいて、前記２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定するための手段と、
前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかの前記決定に少なくとも部分的に基づいて、前記２Ｎ×２Ｎブロックを符号化するための手段と
を備える装置。
【請求項２０】
テストを省略するかどうかを前記決定するための手段は、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から水平値を決定するための手段と、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から垂直値を決定するための手段と、
前記水平値が前記垂直値にオフセットを乗じたものよりも大きいかどうか又は前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいかどうかに基づいて、前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定するための手段と
を備える、請求項１９に記載の装置。
【請求項２１】
テストを省略するかどうかを前記決定するための手段は、前記水平値が前記垂直値に前記オフセットを乗じたものよりも大きいとき、Ｎ×２Ｎ区分化モードをテストすることを省略すると決定するための手段を備える、請求項２０に記載の装置。
【請求項２２】
テストを省略するかどうかを前記決定するための手段は、前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいとき、２Ｎ×Ｎ区分化モードをテストすることを省略すると決定するための手段を備える、請求項２０に記載の装置。
【請求項２３】
前記値を前記算出するための手段は、前記４つのＮ×Ｎブロックの動きベクトルについての動きベクトル差分値を算出するための手段を備え、前記動きベクトル差分値の各々は、それぞれの水平成分とそれぞれの垂直成分とを含む、
前記水平値を前記決定するための手段は、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出するための手段を備え、
前記水平値を前記決定するための手段は、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出するための手段を備える、
請求項２０に記載の装置。
【請求項２４】
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を前記決定するための手段及び前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を前記決定するための手段は、２Ｎ×２Ｎ区分モードでビデオデータのブロックを符号化することに関連付けられた第１のレート歪み（ＲＤ）コストが、Ｎ×Ｎ区分モードで前記ビデオデータのブロックを符号化することに関連付けられた第２のＲＤコストよりも大きいことに応答して実行する、
請求項２０に記載の装置。
【請求項２５】
命令を記憶したコンピュータ読取り可能な記憶媒体であって、前記命令は、１つ又は複数のプロセッサによって実行されると、
ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化することと、ここにおいて、Ｎは整数値である、
前記４つのＮ×Ｎブロックの各々に対する符号化モードを決定することと、
前記４つのＮ×Ｎブロックの各々に対する前記符号化モードを使用して、前記４つのＮ×Ｎブロックの符号化バージョンを表す値を算出することと、
算出された前記値に基づいて、前記２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと、
前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかの前記決定に少なくとも部分的に基づいて、前記２Ｎ×２Ｎブロックを符号化することと
を前記１つ又は複数のプロセッサに行わせる、コンピュータ読取り可能な記憶媒体。
【請求項２６】
テストを省略するかどうかを決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されたとき、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から水平値を決定することと、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から垂直値を決定することと、
前記水平値が前記垂直値にオフセットを乗じたものよりも大きいかどうか又は前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいかどうかに基づいて、前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと
を前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、請求項２５に記載のコンピュータ読取り可能な記憶媒体。
【請求項２７】
テストを省略するかどうかを決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記水平値が前記垂直値に前記オフセットを乗じたものよりも大きいとき、Ｎ×２Ｎ区分化モードをテストすることを省略すると決定すること
を前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、請求項２６に記載のコンピュータ読取り可能な記憶媒体。
【請求項２８】
テストを省略するかどうかを決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいとき、２Ｎ×Ｎ区分化モードをテストすることを省略すると決定することを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、請求項２６に記載のコンピュータ読取り可能な記憶媒体。
【請求項２９】
前記値を算出するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記４つのＮ×Ｎブロックの動きベクトルについての動きベクトル差分値を算出することを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶し、前記動きベクトル差分値の各々は、それぞれの水平成分とそれぞれの垂直成分とを含む、
前記水平値を決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出することを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶し、
前記水平値を決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出することを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、
請求項２６に記載のコンピュータ読取り可能な記憶媒体。
【請求項３０】
前記コンピュータ読取り可能な記憶媒体は、実行されると、２Ｎ×２Ｎ区分モードでビデオデータのブロックを符号化することに関連付けられた第１のレート歪み（ＲＤ）コストが、Ｎ×Ｎ区分モードで前記ビデオデータのブロックを符号化することに関連付けられた第２のＲＤコストよりも大きいことに応答して、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定することと、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することとを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、請求項２６に記載のコンピュータ読取り可能な記憶媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
[0001]本開示は、全内容が参照によって本明細書に組み込まれる、２０１５年３月６日に出願された米国特許仮出願第６２／１２９，６５０号の利益を主張する。
【技術分野】
【０００２】
[0002]本開示は、ビデオ符号化に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビ、デジタルディレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲーム機、セルラ式又は衛星無線電話、いわゆる「スマートフォン」、ビデオテレビ会議デバイス、ビデオストリーミングデバイス及び同様のものを含む、広範囲のデバイスに組み込まれることができる。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ Ｈ．２６３、ＩＴＵ−Ｔ Ｈ．２６４／ＭＰＥＧ−４，パート１０，アドバンスドビデオコード化（ＡＶＣ）で定められている規格、最近完了した高効率ビデオコード化（ＨＥＶＣ）規格及びそのような規格の拡張に記載されているもののような、ビデオ圧縮技法を実現する。ビデオデバイスは、そのようなビデオ圧縮技法を実現することでより効率的にデジタルビデオ情報を送信、受信、符号化、復号、及び／又は記憶することができる。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに内在する冗長性を低減又は取り除くために、空間（イントラピクチャ）予測及び／又は時間（インターピクチャ）予測を実行する。ブロックベースのビデオコード化の場合、ビデオスライス（即ち、ビデオフレーム又はビデオフレームの一部）は、ツリーブロック、コード化単位（ＣＵ）及び／又はコード化ノードとも呼ばれ得る、ビデオブロックへと区分化され得る。ピクチャのイントラコード化された（Ｉ）スライス中のビデオブロックは、同じピクチャにおける隣接ブロック中の基準サンプルに対して空間予測を使用して符号化される。ピクチャのインターコード化された（Ｐ又はＢ）スライス中のビデオブロックは、同じピクチャにおける隣接ブロック中の基準サンプルに対して空間予測を使用するか又は他の参照ピクチャ中の基準サンプルに対して時間予測を使用し得る。ピクチャは、フレームと呼ばれ得、参照ピクチャは、参照フレームと呼ばれ得る。
【０００５】
[0005]空間予測又は時間予測は、コード化されることとなるブロックについての予測ブロックに帰着する。残差データは、コード化されることとなる元のブロックと予測ブロックとの間の画素差を表す。インターコード化されたブロックは、予測ブロックを形成する基準サンプルのブロックを指し示す動きベクトルと、コード化されたブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化されたブロックは、イントラコード化モードと残差データとに従って符号化される。更なる圧縮のために、残差データは、画素ドメインから変換ドメインに変換され得、これは、残差変換係数に帰着し、これは、その後量子化され得る。最初は二次元アレイで配置されている、量子化された変換係数は、変換係数の一次元ベクトルを作り出すために走査され得、エントロピーコード化が、更なる圧縮を達成するために適用され得る。
【発明の概要】
【０００６】
[0006]本開示は、ビデオデータを符号化するための技法を説明し、より具体的には、非正方形ブロック（例えば、予測単位）符号化のための様々な方法を説明する。いくつかのコード化シナリオについて、非正方形予測単位は、正方形予測単位と比較して、改善されたレート歪みトレードオフ又は改善された圧縮のようなコード化利得を作り出し得る。しかしながら、非正方形予測単位をテストすることの複雑性は、エンコーダ側の複雑性を劇的に増加させ得る。本開示は、非正方形ブロックから達成されるコード化効率の大部分を依然として維持しつつ、非正方形ブロックを使用してビデオデータを符号化することに関連付けられた計算複雑性を低減するための技法を導入する。
【０００７】
[0007]一例では、ビデオデータを符号化する方法は、ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化することと、ここにおいて、Ｎは整数値である、４つのＮ×Ｎブロックの各々に対する符号化モードを決定することと、４つのＮ×Ｎブロックの各々に対する符号化モードを使用して、４つのＮ×Ｎブロックの符号化バージョンを表す値を算出することと、算出された値に基づいて、２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと、少なくとも１つの非正方形区分化モードのテストを省略するかどうかの決定に少なくとも部分的に基づいて、２Ｎ×２Ｎブロックを符号化することとを含む。
【０００８】
[0008]別の例では、ビデオデータを符号化するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化することと、ここにおいて、Ｎは整数値である、４つのＮ×Ｎブロックの各々に対する符号化モードを決定することと、４つのＮ×Ｎブロックの各々に対する符号化モードを使用して、４つのＮ×Ｎブロックの符号化バージョンを表す値を算出することと、算出された値に基づいて、２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと、少なくとも１つの非正方形区分化モードのテストを省略するかどうかの決定に少なくとも部分的に基づいて、２Ｎ×２Ｎブロックを符号化することとを行うように構成された１つ又は複数のプロセッサとを含む。
【０００９】
[0009]別の例では、ビデオデータを符号化するための装置は、ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化するための手段と、ここにおいて、Ｎは整数値である、４つのＮ×Ｎブロックの各々に対する符号化モードを決定するための手段と、４つのＮ×Ｎブロックの各々に対する符号化モードを使用して、４つのＮ×Ｎブロックの符号化バージョンを表す値を算出するための手段と、算出された値に基づいて、２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定するための手段と、少なくとも１つの非正方形区分化モードのテストを省略するかどうかの決定に少なくとも部分的に基づいて、２Ｎ×２Ｎブロックを符号化するための手段とを含む。
【００１０】
[0010]別の例では、１つ又は複数のプロセッサによって実行されたときに、ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化することと、ここにおいて、Ｎは整数値である、４つのＮ×Ｎブロックの各々に対する符号化モードを決定することと、４つのＮ×Ｎブロックの各々に対する符号化モードを使用して、４つのＮ×Ｎブロックの符号化バージョンを表す値を算出することと、算出された値に基づいて、２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと、少なくとも１つの非正方形区分化モードのテストを省略するかどうかの決定に少なくとも部分的に基づいて、２Ｎ×２Ｎブロックを符号化することとを行うことを１つ又は複数のプロセッサに行わせる命令を記憶したコンピュータ読取り可能な記憶媒体。
【００１１】
[0011]本開示の１つ又は複数の実施形態の詳細は、添付の図面及び以下の説明において示される。本開示の他の特徴、目的及び利点は、本説明及び図面から並びに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】[0012]図１は、本開示で説明される技法を利用し得る例となるビデオ符号化及び復号システムを例示するブロック図である。
【図２】[0013]図２は、本開示の技法に係る、差分値を決定するのに使用され得る４つのＮ×Ｎ区分の例を示す。
【図３Ａ】[0014]図３Ａは、本開示で説明される技法を実現し得る例となるビデオエンコーダを例示するブロック図である。
【図３Ｂ】[0015]図３Ｂは、本開示で説明される技法を実現し得る例となるビデオエンコーダを例示するブロック図である。
【図４】[0016]図４は、本開示の態様に係る、長方形ＰＵ最適化のための技法を例示するフローチャートである。
【図５】[0017]図５は、本開示で説明される技法を実現し得る例となるビデオデコーダを例示するブロック図である。
【図６】[0018]図６は、本開示の態様に係る、長方形ＰＵ最適化のための技法を例示するフローチャートを示す。
【発明の詳細な説明】
【００１３】
[0019]本開示は、ビデオデータを符号化するための技法に向けられており、より具体的には、長方形ブロック（例えば、予測単位）符号化のための様々な方法に向けられている。いくつかのコード化シナリオについて、長方形予測単位は、正方形予測単位と比較して、改善されたレート歪みトレードオフ又は改善された圧縮のようなコード化利得を作り出し得る。しかしながら、長方形予測単位をテストすることの複雑性は、エンコーダ側の複雑性を劇的に増加させ得る。例えば、仮想の高効率ビデオコード化（ＨＥＶＣ）ビデオエンコーダについて、正方形コード化モードに加えて非正方形コード化モードを使用することは、正方形予測単位だけを使用することの４倍程度の複雑性であると推定されている。
【００１４】
[0020]本開示は、長方形ＰＵから達成されるコード化効率の大部分を依然として維持しつつ、ＨＥＶＣのようなビデオ圧縮技法において長方形ＰＵを使用することに関連付けられた複雑性を低減するための技法を導入する。以下でより詳細に説明されるように、本開示の技法によれば、ビデオエンコーダは、他のモード（例えば、正方形ＰＵモード）について決定された情報に依存して、長方形ＰＵモードを選択的にチェックし、長方形ＰＵモードをチェックすることを選択的に省略し得る。このコンテキストでは、長方形区分モードをチェックすることは、長方形区分モードを含む符号化仮定をテストすることを指す。
【００１５】
[0021]図１は、本開示で説明される技法を利用し得る例となるビデオ符号化及び復号システム１０を例示するブロック図である。図１に示されるように、システム１０は、宛先デバイス１４によって後の時間に復号されることとなる符号化されたビデオデータを生成する発信源デバイス１２を含む。発信源デバイス１２及び宛先デバイス１４は、デスクトップコンピュータ、ノートブック（即ち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイス又は同様のものを含む、広範囲のデバイスのうちの任意のものを備え得る。いくつかのケースでは、発信源デバイス１２及び宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００１６】
[0022]宛先デバイス１４は、復号されることとなる符号化されたビデオデータを、リンク１６を介して受信し得る。リンク１６は、符号化されたビデオデータを発信源デバイス１２から宛先デバイス１４に転送する能力がある任意のタイプの媒体又はデバイスを備え得る。一例では、リンク１６は、発信源デバイス１２が、符号化されたビデオデータをリアルタイムで宛先デバイス１４に直接送信することを可能にするために通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルのような通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトル又は１つ又は複数の物理伝送回線のような任意のワイヤレス又はワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、広域ネットワーク、又はインターネットのようなグローバルネットワークといったパケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、又は発信源デバイス１２から宛先デバイス１４への通信を容易にするのに有用であり得る任意の他の機器を含み得る。
【００１７】
[0023]代替的に、符号化されたデータは、出力インターフェース２２から記憶デバイス２６に出力され得る。同様に、符号化されたデータは、入力インターフェースによって記憶デバイス２６からアクセスされ得る。記憶デバイス２６は、ハードドライブ、ブルーレイディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性若しくは非揮発性メモリ、又は符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、様々な分配型の、又は局所的にアクセスされるデータ記憶媒体のうちの任意のものを含み得る。更なる例では、記憶デバイス２６は、ファイルサーバ又は発信源デバイス１２によって生成された被符号化ビデオを保持し得る別の中間記憶デバイスに対応し得る。宛先デバイス１４は、ストリーミング又はダウンロードを介して、記憶デバイス２６から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶する及び符号化されたビデオデータを宛先デバイス１４に送信する能力がある任意のタイプのサーバであり得る。例となるファイルサーバは、（例えば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続記憶（ＮＡＳ）デバイス、又はローカルディスクドライブを含む。宛先デバイス１４は、インターネット接続を含む、任意の標準データ接続を介して、符号化されたビデオデータにアクセスし得る。これは、ファイルサーバに記憶されている符号化されたビデオデータにアクセスするのに好適なワイヤレスチャネル（例えば、Ｗｉ−Ｆｉ接続）、ワイヤード接続（例えば、ＤＳＬ、ケーブルモデム、等）又は両方の組み合わせを含み得る。記憶デバイス２６からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、又は両方の組み合わせであり得る。
【００１８】
[0024]本開示の技法は、必ずしも、ワイヤレスアプリケーション又はセッティングに制限されるわけではない。本技法は、無線テレビブロードキャスト、ケーブルテレビ送信、衛星テレビ送信、例えば、インターネットを介したストリーミングビデオ送信、データ記憶媒体への記憶のためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号又は他のアプリケーションのような様々なマルチメディアアプリケーションのうちの任意のものをサポートして、ビデオ符号化に適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、及び／又はビデオ電話のようなアプリケーションをサポートするために、単方向又は双方向のビデオ送信をサポートするように構成され得る。
【００１９】
[0025]図１の例では、発信源デバイス１２は、ビデオ発信源１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。いくつかのケースでは、出力インターフェース２２は、変調器／復調器（モデム）及び／又は送信機を含み得る。発信源デバイス１２では、ビデオ発信源１８は、例えば、ビデオカメラのような撮像装置、以前に撮られたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受けるためのビデオフィードインターフェース、及び／又は原ビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムのような発信源又はそのような発信源の組み合わせを含み得る。一例として、ビデオ発信源１８がビデオカメラである場合、発信源デバイス１２及び宛先デバイス１４は、いわゆる、カメラ電話又はビデオ電話を形成し得る。しかしながら、本開示で説明される技法は一般に、ビデオ符号化に適用可能であり得、ワイヤレス及び／又はワイヤードアプリケーションに適用され得る。
【００２０】
[0026]撮られたビデオ、事前に撮られたビデオ、又はコンピュータにより生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化されたビデオデータは、発信源デバイス１２の出力インターフェース２２を介して、宛先デバイス１４に直接送信され得る。符号化されたビデオデータはまた（又は、代替的に）、復号及び／又は再生のための、宛先デバイス１４又は他のデバイスによる後のアクセスのために記憶デバイス２６に記憶され得る。
【００２１】
[0027]宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。いくつかのケースでは、入力インターフェース２８は、受信機及び／又はモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を通して、符号化されたビデオデータを受信する。リンク１６を通して通信される、又は記憶デバイス２６上に提供される符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ３０のようなビデオデコーダが使用するための、ビデオエンコーダ２０によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体に記憶されるか、ファイルサーバに記憶される被符号化ビデオデータに含まれ得る。
【００２２】
[0028]ディスプレイデバイス３２は、宛先デバイス１４と統合され得るか、宛先デバイス１４の外部にあり得る。いくつかの例では、宛先デバイス１４は、統合されたディスプレイデバイスを含み得、同様に、外部のディスプレイデバイスとインターフェース接続するように構成され得る。他の例では、宛先デバイス１４は、ディスプレイデバイスであり得る。一般に、ディスプレイデバイス３２は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、又は別のタイプのディスプレイデバイスのような様々なディスプレイデバイスのうちの任意のものを備え得る。
【００２３】
[0029]ビデオエンコーダ２０及びビデオデコーダ３０は、最近確定された高効率ビデオコード化（ＨＥＶＣ）規格のようなビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０及びビデオデコーダ３０は、別名、ＭＰＥＧ−４，パート１０，アドバンスドビデオコード化（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ Ｈ．２６４規格又はそのような規格の拡張のような他の専有規格又は業界規格に従って動作し得る。しかしながら、本開示の技法は、任意の特定のコード化規格に制限されない。ビデオ圧縮規格の他の例は、ＭＰＥＧ−２及びＩＴＵ−Ｔ Ｈ．２６３を含む。
【００２４】
[0030]本開示の技法は、説明を容易にするために、ＨＥＶＣ専門用語を利用し得る。しかしながら、本開示の技法がＨＥＶＣに制限されると想定されるべきではなく、実際、本開示の技法が、ＨＥＶＣの後続の規格及びその拡張で実現され得ることは明確に企図される。
【００２５】
[0031]図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０及びビデオデコーダ３０は、各々、オーディオエンコーダ及びデコーダと統合され得、共通データストリーム又は別個のデータストリームにおけるオーディオ及びビデオの両方の符号化に対処するために、適切なＭＵＸ−ＤＥＭＵＸユニット又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ Ｈ．２２３マルチプレクサプロトコル、又はユーザデータグラムプロトコル（ＵＤＰ）のような他のプロトコルに準拠し得る。
【００２６】
[0032]ビデオエンコーダ２０及びビデオデコーダ３０は各々、１つ又は複数のマイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア又はそれらの任意の組み合わせのような、様々な好適なエンコーダ回路のうちの任意のものとして実現され得る。本技法がソフトウェアで部分的に実現されるとき、デバイスは、このソフトウェアのための命令を、好適かつ非一時的なコンピュータ読取可能な媒体に記憶し、本開示の技法を実行するために、１つ又は複数のプロセッサを使用してハードウェアにおいて命令を実行し得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は、１つ又は複数のエンコーダ又はデコーダに含まれ得、それらのうちのどちらも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（ＣＯＤＥＣ）の一部として統合され得る。
【００２７】
[0033]以上のように、ＪＣＴ−ＶＣは、ＨＥＶＣ規格の開発を最近完了した。ＨＥＶＣ規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれる、ビデオコード化デバイスの発展型モデルに基づいていた。ＨＭは、例えば、ＩＴＵ−Ｔ Ｈ．２６４／ＡＶＣに準拠した既存のデバイスに対して、ビデオコード化デバイスのいくつかの追加の能力を仮定する。例えば、Ｈ．２６４が、９つのイントラ予測符号化モードを提供するのに対し、ＨＭは、３５個ものイントラ予測符号化モードを提供し得る。
【００２８】
[0034]ＨＥＶＣ及び他のビデオコード化規格では、ビデオシーケンスは典型的に、一連のピクチャを含む。ピクチャは、「フレーム」とも呼ばれ得る。ピクチャは、ＳＬ、ＳＣｂ、及びＳＣｒと表される３つのサンプルアレイを含み得る。ＳＬは、ルーマサンプルの二次元アレイ（即ち、ブロック）である。ＳＣｂは、Ｃｂクロミナンスサンプルの二次元アレイである。ＳＣｒは、Ｃｒクロミナンスサンプルの二次元アレイである。クロミナンスサンプルは、本明細書では、「クロマ」サンプルとも呼ばれ得る。他の事例では、ピクチャは、モノクロであり得、ルーマサンプルのアレイだけを含み得る。
【００２９】
[0035]ピクチャの符号化表現を生成するために、ビデオエンコーダ２０は、コード化ツリー単位（ＣＴＵ）のセットを生成し得る。ＣＴＵの各々は、ルーマサンプルのコード化ツリーブロックと、クロマサンプルの２つの対応するコード化ツリーブロックと、これらのコード化ツリーブロックのサンプルをコード化するために使用されるシンタックス構造とを備え得る。モノクロのピクチャ又は３つの別個の色平面を有するピクチャでは、ＣＴＵは、単一のコード化ツリーブロックと、このコード化ツリーブロックのサンプルをコード化するために使用されるシンタックス構造とを備え得る。コード化ツリーブロックは、サンプルのＮ×Ｎブロックであり得、ここで、Ｎは、１６、３２又は６４のような整数に等しいであろう。ＣＴＵは、「ツリーブロック」又は「最大コード化単位」（ＬＣＵ）とも呼ばれ得る。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣのような他の規格のマクロブロックに大まかに類似し得る。しかしながら、ＣＴＵは、必ずしも、特定のサイズに制限されるわけではなく、１つ又は複数のコード化単位（ＣＵ）を含み得る。スライスは、ラスター走査順に連続して並べられた整数の数のＣＴＵを含み得る。
【００３０】
[0036]コード化されたＣＴＵを生成するために、ビデオエンコーダ２０は、ＣＴＵのコード化ツリーブロックに対して四分木区分化を再帰的に実行して、コード化ツリーブロックをコード化ブロックへと分割し得、よって、「コード化ツリー単位」と称される。コード化ブロックは、サンプルの２Ｎ×２Ｎブロックであり得る。ＣＵは、ルーマサンプルのコード化ブロックと、ルーマサンプルアレイ、Ｃｂサンプルアレイ、及びＣｒサンプルアレイを有するピクチャのクロマサンプルの２つの対応するコード化ブロックと、これらのコード化ブロックのサンプルをコード化するために使用されるシンタックス構造とを備え得る。モノクロのピクチャ又は３つの別個の色平面を有するピクチャでは、ＣＵは、単一のコード化ブロックと、このコード化ブロックのサンプルをコード化するために使用されるシンタックス構造とを備え得る。
【００３１】
[0037]ビデオエンコーダ２０は、ＣＵレベルでブロックイントラ予測ブロックを符号化するかインター予測ブロックを符号化するかどうかを決定し得、ここで、様々なＰＵ区分化スキームが使用され得る。例として、ＨＥＶＣは、６４×６４から下は４×４までのサンプルのＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると想定すると、ＨＭは、２Ｎ×２Ｎ又はＮ×ＮというＰＵサイズでのイントラ予測と、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、又はＮ×Ｎという対称的なＰＵサイズでのインター予測とをサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、及びｎＲ×２ＮというＰＵサイズでのインター予測について非対称的な区分化をサポートする。非対称な区分化では、ＣＵの一方の方向は区分化されないが、もう一方の方向は２５％と７５％へと区分化される。２５％区分に対応するＣＵの一部は、「ｎ」によって示され、その後に「上（Ｕ：Up）」、「下（Ｄ：Down）」、「左（Ｌ：Left）」又は「右（Ｒ：Right）」というインジケーションが続く。故に、例えば、「２Ｎ×ｎＵ」は、上には２Ｎ×０．５Ｎ ＰＵが、下には２Ｎ×１．５Ｎ ＰＵがくるように水平に区分化された２Ｎ×２Ｎ ＣＵを指す。
【００３２】
[0038]本開示では、「Ｎ×Ｎ（NxN）」及び「Ｎ×Ｎ（N by N）」は、交換可能に使用され、垂直次元及び水平次元の観点からビデオブロックの画素次元、例えば、１６×１６（16x16）画素又は１６×１６（16 by 16）画素、を指し得る。一般に、１６×１６ブロックは、垂直方向に１６画素（ｙ＝１６）を、水平方向に１６画素（ｘ＝１６）を有するであろう。同様に、Ｎ×Ｎブロックは一般に、垂直方向にＮ画素を、水平方向にＮ画素を有し、ここで、Ｎは、自然数を表す。ブロック中の画素は、行と列に配置され得る。更に、ブロックは、水平方向において、必ずしも、垂直方向と同じ数の画素を有する必要はない。例えば、ブロックは、Ｎ×Ｍ画素を備え得、ここで、Ｍは必ずしもＮと等しいとは限らない。
【００３３】
[0039]ビデオエンコーダ２０は、ＣＵのコード化ブロックを１つ又は複数の予測ブロックへと区分化し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形（即ち、正方形又は非正方形）ブロックであり得る。ＣＵの予測単位（ＰＵ）は、ルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、これらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。モノクロのピクチャ又は３つの別個の色平面を有するピクチャでは、ＰＵは、単一の予測ブロックと、この予測ブロックを予測ために使用されるシンタックス構造とを備え得る。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ、Ｃｂ、及びＣｒ予測ブロックについての予測ルーマ、Ｃｂ、及びＣｒブロックを生成し得る。
【００３４】
[0040]ビデオエンコーダ２０は、ＰＵについての予測ブロックを生成するためにイントラ予測又はインター予測を使用し得る。ビデオエンコーダ２０が、ＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャの復号されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。ビデオエンコーダ２０が、ＰＵの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連付けられたピクチャ以外の１つ又は複数のピクチャの復号されたサンプルに基づいて、ＰＵの予測ブロックを生成し得る。
【００３５】
[0041]ビデオエンコーダ２０が、ＣＵの１つ又は複数のＰＵについての予測ルーマ、Ｃｂ、及びＣｒブロックを生成した後、ビデオエンコーダ２０は、そのＣＵについてのルーマ残差ブロックを生成し得る。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つ中のルーマサンプルと、ＣＵの元のルーマコード化ブロック中の対応するサンプルとの間の差分を示す。加えて、ビデオエンコーダ２０は、ＣＵについてのＣｂ残差ブロックを生成し得る。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つ中のＣｂサンプルと、ＣＵの元のＣｂコード化ブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０はまた、ＣＵについてのＣｒ残差ブロックを生成し得る。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックの１つ中のＣｒサンプルと、ＣＵの元のＣｒコード化ブロック中の対応するサンプルとの間の差分を示し得る。
【００３６】
[0042]更に、ビデオエンコーダ２０は、ＣＵのルーマ、Ｃｂ、及びＣｒ残差ブロックを１つ又は複数のルーマ、Ｃｂ、及びＣｒ変換ブロックへと分解するために四分木区分化を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形（例えば、正方形又は非正方形）ブロックであり得る。ＣＵの変換単位（ＴＵ）は、ルーマサンプルの変換ブロックと、クロマサンプルの２つの対応する変換ブロックと、これら変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。故に、ＣＵの各ＴＵは、ルーマ変換ブロック、Ｃｂ変換ブロック及びＣｒ変換ブロックに関連付けられ得る。ＴＵに関連付けられたルーマ変換ブロックは、ＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックは、ＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックは、ＣＵのＣｒ残差ブロックのサブブロックであり得る。モノクロのピクチャ又は３つの別個の色平面を有するピクチャでは、ＴＵは、単一の変換ブロックと、この変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
【００３７】
[0043]ビデオエンコーダ２０は、ＴＵについてのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１つ又は複数の変換を適用し得る。係数ブロックは、変換係数の二次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ２０は、ＴＵについてのＣｂ係数ブロックを生成するために、ＴＵのＣｂ変換ブロックに１つ又は複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵについてのＣｒ係数ブロックを生成するために、ＴＵのＣｒ変換ブロックに１つ又は複数の変換を適用し得る。
【００３８】
[0044]係数ブロック（例えば、ルーマ係数ブロック、Ｃｂ係数ブロック、又はＣｒ係数ブロック）を生成した後、ビデオエンコーダ２０は、これらの係数ブロックを量子化し得る。量子化は一般に、変換係数を表すために使用されるデータ量をできる限り低減させためにそれら変換係数が量子化されるプロセスを指し、これは、更なる圧縮を提供する。ビデオエンコーダ２０が係数ブロックを量子化した後、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。例えば、ビデオエンコーダ２０は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コード化（ＣＡＢＡＣ）を実行し得る。
【００３９】
[0045]ビデオエンコーダ２０は、コード化されたピクチャ及び関連するデータの表現を形成するビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、ネットワーク抽象化レイヤ（ＮＡＬ）単位のシーケンスを備え得る。ＮＡＬ単位は、ＮＡＬ単位内のデータのタイプを示すインジケーションと、必要に応じてエミュレーション防止ビットが組み入れられているＲＢＳＰの形式でそのデータを包含するバイトとを含むシンタックス構造である。ＮＡＬ単位の各々は、ＮＡＬ単位ヘッダを含み、生バイトシーケンスペイロード（ＲＢＳＰ）をカプセル化する。ＮＡＬ単位ヘッダは、ＮＡＬ単位タイプコードを示すシンタックス要素を含み得る。ＮＡＬ単位のＮＡＬ単位ヘッダによって指定されるＮＡＬ単位タイプコードは、ＮＡＬ単位のタイプを示す。ＲＢＳＰは、ＮＡＬ単位内にカプセル化される整数の数のバイトを包含するシンタックス構造であり得る。いくつかの事例では、ＲＢＳＰはゼロビットを含む。
【００４０】
[0046]異なるタイプのＮＡＬ単位は、異なるタイプのＲＢＳＰをカプセル化し得る。例えば、第１のタイプのＮＡＬ単位は、ピクチャパラメータセット（ＰＰＳ）のためのＲＢＳＰをカプセル化し得、第２のタイプのＮＡＬ単位は、コード化されたスライスのためのＲＢＳＰをカプセル化し得、第３のタイプのＮＡＬ単位は、補足エンハンスメント情報（ＳＥＩ）メッセージのためのＲＢＳＰをカプセル化し得る。（パラメータセット及びＳＥＩメッセージのためのＲＢＳＰとは対照的に）ビデオコード化データのためのＲＢＳＰをカプセル化するＮＡＬ単位は、ビデオコード化レイヤ（ＶＣＬ）ＮＡＬ単位と呼ばれ得る。
【００４１】
[0047]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受け得る。加えて、ビデオデコーダ３０は、ビットストリームからシンタックス要素を取得するためにビットストリームを解析し得る。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構築し得る。ビデオデータを再構築するためのプロセスは、一般に、ビデオエンコーダ２０によって実行されるプロセスと相互関係にある。加えて、ビデオデコーダ３０は、現在のＣＵのＴＵに関連付けられた係数ブロックを逆量子化し得る。ビデオデコーダ３０は、現在のＣＵのＴＵに関連付けられた変換ブロックを再構築するために、係数ブロックに対して逆変換を実行し得る。ビデオデコーダ３０は、現在のＣＵのＰＵについての予測ブロックのサンプルを、現在のＣＵのＴＵの変換ブロックの対応するサンプルに加えることで、現在のＣＵのコード化ブロックを再構築し得る。ピクチャの各ＣＵについてのコード化ブロックを再構築することで、ビデオデコーダ３０は、ピクチャを再構築し得る。
【００４２】
[0048]より良好なコード化効率のためＨＥＶＣで定められている手法を活用するために、ビデオエンコーダ２０のようなＨＥＶＣエンコーダは、極めて複雑になり得る。例えば、ＬＣＵを符号化するために、ビデオエンコーダ２０は、例えば、８×８、１６×１６から最大で６４×６４までの範囲の多くの異なるＣＵサイズをチェックする（例えば、それについての符号化仮定をテストする）必要があり得る。ＣＵサイズごとに、２Ｎ×２Ｎ、２Ｎ×Ｎ、及びＮ×２Ｎ、等、チェックすべき異なる区分モード（例えば、ＰＵ形状）も存在し得る。
【００４３】
[0049]区分モードの中で、２Ｎ×Ｎ及びＮ×２Ｎは、通称、長方形区分モードと呼ばれるが、このコンテキストでは、長方形は概して、非正方形を意味し、正方形区分モードを除くと理解される。２つのＰＵを伴う場合、動き推定及びレート歪み最適化を含む２Ｎ×Ｎモードのチェックは、通常、２Ｎ×２Ｎモードをチェックすることの約２倍の複雑さである。Ｎ×２Ｎモードをチェックする場合についても同様である。結果として、２Ｎ×２Ｎモードに加えてこれらの２つのモードをチェックすることは、余分に４倍の複雑性を招き得る。
【００４４】
[0050]多くの典型的なビデオエンコーダ実現では、長方形ＰＵモードは、矩形モードに関連付けられた複雑性を効率的に低減する方法の欠如により、正方形ＰＵモードと比較して、それ程望ましくないであろう。矩形モードに関連付けられたこの複雑性は、特に、ビデオが直ぐに符号化されることを必要とするリアルタイム又は準リアルタイムアプリケーションにとって望ましくないであろう。
【００４５】
[0051]本開示は、矩形モードを使用することから達成されるコード化効率の大部分を維持しつつ、長方形ＰＵモードを使用してビデオデータを符号化することに関連付けられた複雑性を低減し得る様々な技法を導入する。ＨＥＶＣに制限されるわけではないが、本開示の技法は、ＨＥＶＣ規格を使用してビデオを符号化するときに特に利益になり得る。
【００４６】
[0052]本開示の例となる技法によれば、ビデオエンコーダ２０は、全てのＣＵに対して長方形ＰＵモードをチェックするわけではないように構成され得る。代わりに、長方形ＰＵモードは、他のモードのコスト（例えば、ＲＤコスト）に依存して条件付きでチェックされ得る。所与のＣＵサイズの場合、２Ｎ×２Ｎモードをチェックした後、ビデオエンコーダ２０は、Ｎ×Ｎモードに関連付けられた４つの４分の１サイズのブロックのＲＤ（レート歪み）コストを更にチェックし得る（これは、４つの４分の１のサイズのＣＵで２Ｎ×２Ｎモードをチェックすることに大まかに等しい）。２Ｎ×２ＮモードとＮ×Ｎモードとの間のＲＤコスト関係性に依存して、長方形ＰＵモードが選択的にチェックされ得る。
【００４７】
[0053]例えば、Ｎ×Ｎレベルにおける４つのブロックの合計のＲＤコストが２Ｎ×２Ｎレベルにおけるブロックのものよりも高い場合、２Ｎ×２Ｎブロックをより小さいブロック区分へと分けることがコード化効率を改善する可能性は低い。このケースでは、ビデオエンコーダ２０は、長方形ＰＵモード（例えば、２Ｎ×Ｎモード及びＮ×２Ｎモード）をチェックすることを省略し得る。
【００４８】
[0054]本開示の技法によれば、ビデオエンコーダ２０が、長方形区分モードをチェックすると決定するとき、２つの長方形区分モードのうちの１つ（即ち、２Ｎ×２Ｎ又はＮ×２Ｎのいずれか）を単にチェックするのが十分であるかどうかを決めるために、いくつかの追加の条件が使用され得る。より具体的には、一例では、そのような決定は、４つのＮ×ＮブロックのＲＤコスト情報値に基づき得る。
【００４９】
[0055]図２は、以下の式１−４に従って、差分値を決定するために使用され得る（１０１Ａ、１０１Ｂ、１０１Ｃ、及び１０１Ｄとラベル付された）４つのＮ×Ｎ区分の例を示す。図２は、４つのＮ×Ｎブロックへと区分化される２Ｎ×２Ｎブロックの例を示す。水平差分及び垂直差分の２つの値は、図２の４つのＮ×Ｎブロックから導出され得る。差分値は、動きベクトル差分値及び／又はＲＤコスト差分値であり得る。（例えば、以下の式２によって算出されるような）垂直差分が、（例えば、以下の式１によって算出されるような）水平差分よりも高い場合、Ｎ×２Ｎモードは、２Ｎ×Ｎモードよりも選択される可能性が高いため、Ｎ×２Ｎ区分モードだけがチェックされ、逆もまた同様である。垂直差分及び水平差分が近いときにのみ、２Ｎ×Ｎ及びＮ×２Ｎの両方がチェックされる。
【００５０】
[0056]２Ｎ×２Ｎブロックが４つのＮ×Ｎブロックへと区分化されるとき、例えば、ビデオエンコーダ２０は、以下でより詳細に説明されるように、動き推定プロセスを使用してＮ×Ｎブロックの各々についての動きベクトルを決定し得る。ビデオエンコーダ２０は、以下の式１及び２を使用して、各Ｎ×Ｎブロックが水平隣接ブロックに及び垂直隣接ブロックにどれだけ近いかを決定するために、動きベクトル情報から決定される水平差分値（Ｈ）及び垂直差分値（Ｖ）を比較し得る。
Ｈ＝ａｂｓ（ＭＶ１−ＭＶ２）＋ａｂｓ（ＭＶ３−ＭＶ４）    式（１）
Ｖ＝ａｂｓ（ＭＶ１−ＭＶ３）  ａｂｓ（ＭＶ２−ＭＶ４）    式（２）
【００５１】
[0057]式１及び２の動きベクトル減算は、例えば、第１の動きベクトルのｘ成分と第２の動きベクトルのｘ成分との間の差分を決定することで、及び第１の動きベクトルのｙ成分と第２の動きベクトルのｙ成分との間の差分を決定することで決定され得る。２つの隣接した正方形Ｎ×Ｎ区分が同様の動きベクトルを有する（例えば、動きベクトル間の差分が小さい）場合、１つの動きベクトルを有する単一の長方形区分として、それら２つの区分をまとめて符号化することが効率的であり得る。反対に、２つの隣接する正方形Ｎ×Ｎ区分が実質的に異なる動きベクトルを有する（例えば、動きベクトル間の差分が比較的大きい）場合、１つの動きベクトルを有する単一の長方形区分として、それら２つの区分をまとめて符号化することは望ましくないであろう。故に、２つのＮ×Ｎにおける動きベクトルのより小さい差分は、典型的に、長方形形状区分を使用することに対するより高い可能性を示し得る。ＨがＶよりも低い場合、水平形状（２Ｎ×Ｎ）だけがチェックされ得、逆もまた同様である。
【００５２】
[0058]式１及び２に示されるような動きベクトル差分の代わりに、水平差分値（Ｈ）及び垂直差分値（Ｖ）もまた、各Ｎ×Ｎ区分を符号化することに関連付けられたコスト（例えば、ＲＤコスト又は歪み）に基づいて決定され得る。歪み分析は、一般に、符号化されたブロックと、この符号化されたブロックを作り出すために符号化された元の符号化されていないブロックとの間の歪み（又は、誤差）の量を決定する。レート歪み分析は同様に、一般に、符号化されたブロックと、この符号化されたブロックを作り出すために符号化された元の符号化されていないブロックとの間の歪み（又は、誤差）の量を決定するが、符号化されたブロックを作り出すために使用されるビットレート（即ち、ビット数）を更に考慮に入れる。平均二乗誤差（ＭＥＳ：mean-squared-error）分析及び活性重み付き（activity-weighted）ＭＳＥのような、歪みを定量化するための多数の技法が知られている。同様に、ラグランジュコスト分析のような、レート歪みコストを測定するための多数の技法が知られている。本開示の技法は、歪みメトリック又はレート歪みメトリックを決定するための任意の特定の技法に制限されない。
【００５３】
[0059]コストが考慮されるとき、Ｈ及びＶは、以下の式（３）及び（４）で示されるように、同様に導出される。
Ｈ＝ａｂｓ（（Ｃｏｓｔ１＋Ｃｏｓｔ２）−（Ｃｏｓｔ３＋Ｃｏｓｔ４））    式（３）
Ｖ＝ａｂｓ（（Ｃｏｓｔ１＋Ｃｏｓｔ３）−（Ｃｏｓｔ２＋Ｃｏｓｔ４））    式（４）
【００５４】
[0060]２つのＮ×Ｎにおけるコストのより大きな差分が、長方形形状を使用するより高い可能性を示すため、ＨがＶよりも高い場合、水平形状（２Ｎ×Ｎ）だけがチェックされ、逆もまた同様である。
【００５５】
[0061]上で説明した差分についての近さは、βで定義され得る。例えば、βが１．０５である場合、そして、差分が５％よりも小さい場合、２Ｎ×Ｎ及びＮ×２Ｎの両方がチェックされるであろう。
【００５６】
[0062]全体的に、本開示の技法は、コード化効率をほとんど損なうことなく、長方形ＰＵコード化の複雑性を略６０％低減し得る。
【００５７】
[0063]図３Ａは、本開示で説明される技法を実現し得る例となるビデオエンコーダ２０を例示するブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラ及びインターコード化を実行し得る。イントラコード化は、所与のビデオフレーム又はピクチャ内のビデオにおける空間冗長性を低減又は取り除くために空間予測に依拠する。インターコード化は、ビデオシーケンスの隣接フレーム又はピクチャ内のビデオにおける時間冗長性を低減又は取り除くために時間予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのうちの任意のものを指し得る。単方向予測（Ｐモード）又は双方向予測（Ｂモード）のようなインターモードは、いくつかの時間ベースの圧縮モードのうちの任意のものを指し得る。
【００５８】
[0064]図３Ａの例では、ビデオエンコーダ２０は、ビデオデータメモリ３３と、区分化ユニット３５と、予測処理ユニット４１と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。予測処理ユニット４１は、動き推定ユニット（ＭＥＵ）４２と、動き補償ユニット（ＭＣＵ）４４と、イントラ予測ユニット４６とを含む。ビデオブロック再構築のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換処理ユニット６０と、加算器６２と、フィルタユニット６４と、復号ピクチャバッファ（ＤＰＢ）６６とを含む。
【００５９】
[0065]図３Ａに示されるように、ビデオエンコーダ２０は、ビデオデータを受け、受けたビデオデータをビデオデータメモリ３３に記憶する。ビデオデータメモリ３３は、ビデオエンコーダ２０の構成要素によって符号化されることとなるビデオデータを記憶し得る。ビデオデータメモリ３３に記憶されたビデオデータは、例えば、図１のビデオ発信源１８から取得され得る。ＤＰＢ６６は、例えば、イントラコード化モード又はインターコード化モードで、ビデオエンコーダ２０がビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ３３及びＤＰＢ６６は、同期動的ランダムアクセスメモリ（ＳＤＲＡＭ）、磁気ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲＲＡＭ（登録商標））を含む、ＤＲＡＭ又は他のタイプのメモリデバイスのような、様々なメモリデバイスのうちの任意のものによって形成され得る。ビデオデータメモリ３３及びＤＰＢ６６は、同じメモリデバイス又は別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ３３は、ビデオエンコーダ２０の他の構成要素とともにオンチップであり得るか、これらの構成要素に対してオフチップであり得る。
【００６０】
[0066]区分化ユニット３５は、ビデオデータメモリ３３からビデオデータを取り出し、このビデオデータをビデオブロックへと区分化する。区分化ユニット３５は、例えば、上に及び本開示の他の箇所で説明された技法に従って、ビデオデータの区分を決定し得る。この区分化はまた、例えば、ＬＣＵ及びＣＵの四分木構造に従ったビデオブロック区分化に加え、スライス、タイル又は他のより大きなユニットへの区分化を含み得る。ビデオエンコーダ２０は一般に、符号化されることとなるビデオスライス内のビデオブロックを符号化する構成要素を例示する。スライスは、複数のビデオブロック（そして、場合によっては、タイルと称されるビデオブロックのセット）へと分割され得る。予測処理ユニット４１は、誤差結果（例えば、コード化レート及び歪みのレベル）に基づいて、現在のビデオブロックに対して、複数の可能なコード化モードのうちの１つ、例えば、複数のイントラコード化モードのうちの１つ又は複数のインターコード化モードのうちの１つを選択し得る。予測処理ユニット４１は、結果として生じるイントラ又はインターコード化されたブロックを、残差ブロックデータを生成するために加算器５０に、参照ピクチャとしての使用のための符号化されたブロックを再構築するために加算器６２に提供し得る。
【００６１】
[0067]予測処理ユニット４１内のイントラ予測ユニット４６は、空間圧縮を提供するために、コード化されることとなる現在のブロックと同じフレーム又はスライス内の１つ又は複数の隣接ブロックに対して、現在のビデオブロックのイントラ予測コード化を実行し得る。予測処理ユニット４１内の動き推定ユニット４２及び動き補償ユニット４４は、時間圧縮を提供するために、１つ又は複数の参照ピクチャ内の１つ又は複数の予測ブロックに対して、現在のビデオブロックのインター予測コード化を実行する。
【００６２】
[0068]動き推定ユニット４２は、ビデオシーケンスについての所定のパターンに従って、ビデオスライスに対するインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス内のビデオスライスをＰスライス又はＢスライスと指定し得る。動き推定ユニット４２及び動き補償ユニット４４は、高度に統合され得るが、概念的な目的のために別個に例示されている。動き推定ユニット４２によって実行される動き推定は、ビデオブロックについての動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、参照ピクチャ内の予測ブロックに対する、現在のビデオフレーム又はピクチャ内でのビデオブロックのＰＵの変位を示し得る。
【００６３】
[0069]予測ブロックは、画素差の観点から、コード化されることとなるビデオブロックのＰＵに厳密に一致すると認められるブロックであり、これは、差分絶対値和（ＳＡＤ）、差分二乗和（ＳＳＤ）、又は他の差分メトリックによって決定され得る。いくつかの例では、ビデオエンコーダ２０は、ＤＰＢ６６に記憶された参照ピクチャのサブ整数画素位置についての値を算出し得る。例えば、ビデオエンコーダ２０は、参照ピクチャの４分の１画素位置、８分の１画素位置、又は他の分数画素位置の値を補間し得る。従って、動き推定ユニット４２は、全画素位置及び分数画素位置に対して、動き探索を実行し、分数画素精度で動きベクトルを出力し得る。
【００６４】
[0070]動き推定ユニット４２は、ＰＵの位置と参照ピクチャの予測ブロックの位置とを比較することで、インターコード化されたスライス内のビデオブロックのＰＵについての動きベクトルを算出する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）又は第２の参照ピクチャリスト（リスト１）から選択され得、それらは各々、ＤＰＢ６６に記憶された１つ又は複数の参照ピクチャを識別する。動き推定ユニット４２は、算出された動きベクトルを、エントロピー符号化ユニット５６及び動き補償ユニット４４に送る。
【００６５】
[0071]動き補償ユニット４４によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて、予測ブロックをフェッチすること又は生成ことを伴い得、場合によっては、サブ画素精度への補間を実行する。現在のビデオブロックのＰＵについての動きベクトルを受けると、動き補償ユニット４４は、動きベクトルが指す予測ブロックを参照ピクチャリストのうちの１つに位置付け得る。ビデオエンコーダ２０は、コード化されている現在のビデオブロックの画素値から予測ブロックの画素値を減算することで残差ビデオブロックを形成し、画素差分値を形成する。画素差分値は、このブロックについての残差データを形成し、輝度及び彩度の両方の差分成分を含み得る。加算器５０は、この減算演算を実行する１つ又は複数の構成要素を表す。動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するためのビデオブロック及びビデオスライスに関連付けられたシンタックス要素を生成し得る。
【００６６】
[0072]予測処理ユニット４１が現在のビデオブロックについての予測ブロックを生成した後、イントラ予測又はインター予測のいずれかを介して、ビデオエンコーダ２０は、現在のビデオブロックから予測ブロックを減算することで残差ビデオブロックを形成し得る。残差ブロック内の残差ビデオデータは、１つ又は複数のＴＵに含まれ、変換処理ユニット５２に適用され得る。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ）のような変換又は概念上同様の変換を使用して、残差ビデオデータを残差変換係数へと変換する。変換処理ユニット５２は、残差ビデオデータを画素ドメインから周波数ドメインのような変換ドメインに変換し得る。
【００６７】
[0073]変換処理ユニット５２は、結果として生じる変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートを更に低減するために、変換係数を量子化する。量子化プロセスは、これら係数のうちのいくつか又は全てに関連付けられたビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することで修正され得る。いくつかの例では、次に、量子化ユニット５４は、量子化された変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット５６が走査を実行し得る。
【００６８】
[0074]量子化に続いて、エントロピー符号化ユニット５６は、量子化された変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コード化（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コード化（ＣＡＢＡＣ）、シンタックスベースのコンテキスト適応型バイナリ算術コード化（ＳＢＡＣ）、確率区間区分エントロピー（ＰＩＰＥ）コード化、又は別のエントロピー符号化方法若しくは技法を実行し得る。エントロピー符号化ユニット５６によるエントロピー符号化に続いて、符号化されたビットストリームは、ビデオデコーダ３０に送信されるか、ビデオデコーダ３０による後の送信又は取り出しのためにアーカイブされ得る。エントロピー符号化ユニット５６はまた、コード化されている現在のビデオスライスについての動きベクトル及び他のシンタックス要素をエントロピー符号化し得る。
【００６９】
[0075]逆量子化ユニット５８及び逆変換処理ユニット６０は、参照ピクチャの参照ブロックとしての後の使用のために、画素ドメイン内において残差ブロックを再構築するために、それぞれ逆量子化及び逆変換を適用する。動き補償ユニット４４は、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つの予測ブロックに残差ブロックを加えることで参照ブロックを算出し得る。動き補償ユニット４４はまた、再構築された残差ブロックに１つ又は複数の補間フィルタを適用して、動き推定で用いるサブ整数画素値を算出し得る。加算器６２は、再構築されたブロックを作り出すために、動き補償ユニット４４によって作り出された動き補償された予測ブロックに、再構築された残差ブロックを加える。
【００７０】
[0076]フィルタユニット６４は、再構築されたブロック（例えば、加算器６２の出力）をフィルタ処理し、参照ブロックとしての使用のために、フィルタ処理された被再構築ブロックをＤＰＢ６６に記憶する。参照ブロックは、後続のビデオフレーム又はピクチャにおいてブロックをインター予測するために、動き推定ユニット４２及び動き補償ユニット４４によって参照ブロックとして使用され得る。フィルタユニット６４は、デブロッキングフィルタ処理、サンプル適応型オフセット（ＳＡＯ）フィルタ処理、適応型ループフィルタ処理（ＡＬＦ）、又は他のタイプのループフィルタ処理のうちの１つ又は複数を適用し得る。フィルタユニット６４は、ブロック境界をフィルタ処理するためにデブロッキングフィルタ処理を適用して、再構築されたビデオからブロック歪み（blockiness artifacts）を取り除き得、コード化品質全体を改善するために他のタイプのフィルタリンを適用し得る。追加のループフィルタ（インループ又はポストループ）もまた使用され得る。
【００７１】
[0077]図３Ｂは、本開示で説明される技法を実現し得る例となるビデオエンコーダ２１を例示するブロック図である。図３Ｂは、本開示の技法を実行するように構成された例となるＨＥＶＣビデオエンコーダを表す。図３Ａのビデオエンコーダ２０及び図３Ｂのビデオエンコーダ２１は、必ずしも、代替的なビデオエンコーダであることが意図されているわけではなく、代わりに、同じビデオエンコーダの代替的な視点であると考えられ得る。故に、ビデオエンコーダ２０に関連して説明された特徴は、ビデオエンコーダ２１で実現され得、逆もまた同様である。
【００７２】
[0078]ビデオエンコーダ２１は、汎用コーダ制御ユニット１４０と、動き推定ユニット１４２と、動き補償ユニット１４４と、イントラピクチャ推定ユニット１４５と、イントラピクチャ予測処理ユニット１４６と、変換スケーリング及び量子化ユニット１５２／１５４と、スケーリング及び逆変換ユニット１５８／１６０と、フィルタ制御分析ユニット１７０と、デブロッキング及びＳＡＯフィルタ１７２／１７４と、復号ピクチャバッファ１７８と、ヘッダ形成及びＣＡＢＡＣユニット１８０とを含む。これらの構成要素の各々は一般に、図３Ａにおけるその同様に番号付けされた等価物と同じ機能を実行する。例えば、動き推定ユニット１４２は一般に、図３Ａにおける動き推定ユニット４２と同じ機能性を実行し、変換スケーリング及び量子化ユニット１５２／１５４は、一般に、変換処理ユニット５２及び量子化ユニット５４と同じ機能性を実行する。
【００７３】
[0079]汎用コーダ制御ユニット１４０は、ビデオエンコーダ２１がどのようにしてビデオデータを符号化することとなるかについての様々なパラメータを選択及び維持する。例えば、汎用コーダ制御ユニット１４０は、それに従ってビデオデータがコード化されることとなるＨＥＶＣ規格のプロフィール、ティア、及びレベルを選択し得る。汎用コーダ制御ユニット１４０はまた、例えば、ビットレート及び所望のＲＤレベルを確立及び維持し得る。
【００７４】
[0080]ビデオエンコーダ２１は、入力ビデオ信号をビデオブロック（例えば、ＣＴＵ）へと区分化し、これらのＣＴＵを動き推定ユニット１４２及びイントラピクチャ推定ユニット１４５に送る。動き推定ユニット１４２は、ビデオシーケンスについての所定のパターンに従って、ビデオのブロックに対するインター予測モードを決定するように構成され得る。イントラピクチャ推定ユニット１４５は、ビデオデータのブロックに対するイントラ予測モードを決定するように構成され得る。ビデオエンコーダ２１は、ビデオデータのブロックをコード化するために、イントラ予測モード又はインター予測モードのうちの１つを選択する。選択されたイントラ予測データ又は動きデータは、ヘッダ形成及びＣＡＢＡＣユニット１８０に送られ、これは、このデータを、符号化ビットストリームへの包含のためにエントロピー符号化し得る。
【００７５】
[0081]加算器１５０において、ビデオエンコーダ２１は、決定された動きデータ又はイントラ予測データを使用して識別された、予測されたブロックを、元のブロックから減算することで残差データを決定する。変換、スケーリング及び量子化ユニット１５２／１５４は、ＤＣＴ又は概念的に類似した変換のような変換を使用して残差ビデオデータを残差変換係数へと変換し、残差ビデオデータを画素ドメインから周波数ドメインのような変換ドメインへと変換し得る。変換、スケーリング及び量子化ユニット１５２／１５４はまた、データを更に圧縮するために変換係数を量子化する。量子化プロセスは、これら係数のうちのいくつか又は全てに関連付けられたビット深度を低減し得る。変換、スケーリング及び量子化ユニット１５２／１５４は、量子化された変換係数をヘッダ形成及びＣＡＢＡＣユニット１８０に送り、これは、この量子化された変換係数を、符号化ビットストリームへの包含のためにエントロピー符号化し得る。
【００７６】
[0082]ビデオエンコーダ２１はまた、様々な符号化仮定について達成されるビデオ符号化の品質を決定するための復号ループを含み得る。復号ループでは、スケーリング及び逆変換ユニット１５８／１６０は、画素ドメインにおける残差ブロックを再構築するために逆量子化及び逆変換を適用する。加算器１６２は、再構築されたブロックを決定するために、動き補償ユニット１４４のイントラピクチャ予測処理ユニット１４６のいずれかによって見つかった予測されたブロックに、再構築された残差ブロックを追加する。
【００７７】
[0083]フィルタ制御分析ユニット１７０は、再構築されたブロックをフィルタ処理するために使用されることとなる、任意のＳＡＯ情報を含むフィルタ情報を決定する。フィルタ制御分析ユニット１７０は、決定されたフィルタ情報をヘッダ形成及びＣＡＢＡＣユニット１８０に送り、これは、このフィルタ情報を、符号化ビットストリームへの包含のためにエントロピー符号化し得る。デブロッキング及びＳＡＯフィルタ１７２／１７４はまた、ブロック歪みを取り除くために及びビデオ品質を他の方法で改善するために、フィルタ制御分析ユニット１７０によって決定されたフィルタ情報に基づいて、１つ又は複数のフィルタを、再構築されたブロックに適用し得る。複数のコード化パスを実行することの一部として、フィルタ制御分析ユニット１７０は、フィルタ情報の複数の異なるセットを導出し得、デブロッキング及びＳＡＯフィルタ１７２／１７４は、再構築されたブロックをコード化するためにフィルタ情報の異なるセットのどのフィルタ情報を使用するかを決定することの一部として、導出されたフィルタ情報を使用して、これらのブロックをフィルタ処理し得る。
【００７８】
[0084]ＤＰＢ１７８への記憶に先立ち、デブロッキング及びＳＡＯフィルタ１７２／１７４は、決定されたフィルタ情報を使用して、再構築されたブロックをフィルタ処理し得る。故に、ビデオデータの更なるブロックをコード化するとき、イントラピクチャ推定ユニット１４５及び動き推定ユニット１４２は、フィルタ処理された被再構築ブロックにおいて予測ブロックを探索し得、これらは、ビデオデコーダが予測ブロックを位置付けるために使用するブロックと同じブロックである。
【００７９】
[0085]図４は、本開示の態様に係る、長方形ＰＵ最適化のための技法を例示するフローチャートを示す。図４の技法は、ビデオエンコーダ２０及び２１のいずれかに対応し、ビデオエンコーダ２０及び２１の両方の特性を組み合わせ、及び／又は、ビデオエンコーダ２０及び２１とは異なり得る汎用ビデオエンコーダに関連して説明されるであろう。図４の技法は、任意の特定のタイプのビデオエンコーダに限定されない。更に、図４の技法は、ＲＤコストに関連して説明されるが、図４の技法が、ＲＤコスト以外のコストを使用して実現されるか、動きベクトル差分を使用して実現されるか、又は複数のタイプのコストの組み合わせ又はコストと動きベクトル差分との組み合わせを使用して実現され得ることは理解されるべきである。
【００８０】
[0086]図４の技法に従って、ビデオエンコーダは、第１の正方形区分モードでビデオデータのブロックを符号化することに関連付けられた第１のレート歪み（ＲＤ）コストを決定し（１０２）、第２の正方形区分モードでビデオデータのブロックを符号化することに関連付けられた第２のＲＤコストを決定する（１０４）ように構成され、ここで、第２の正方形区分モードは、第１の正方形区分モードよりも小さい正方形区分を実現する。図４の例では、第１の正方形区分モードは、２Ｎ×２Ｎモードであり、第２の正方形区分モードは、Ｎ×Ｎ区分モードである。第２のＲＤコストは、４つのＮ×Ｎブロックに関連付けられた合計のＲＤコストに相関し得る。４つのＮ×Ｎブロックについての第２のＲＤコストは、例えば、４つのＮ×Ｎブロックについての歪み及びシグナリングコストを加算することで決定され得る。第２のＲＤコストは、（４つのＮ×Ｎブロックに分けられる）２Ｎ×２ＮブロックのＲＤコストを測定する別の方法であり、これは、コード化ゲインを作り出すこととなるのが、２Ｎ×２Ｎブロックを２つの２Ｎ×Ｎブロック又は２つのＮ×２Ｎブロックへと分けることか否かを示すインジケーションを提供し得る。
【００８１】
[0087]ビデオエンコーダは、（図４においてＣ２Ｎ×２Ｎと示される）第１のＲＤコストを（図４においてＣＮ×Ｎと示される）第２のＲＤコストと比較し得（１０６）、第２のＲＤコストが第１のＲＤコスト×閾値量よりも大きいこと（１０６、ＹＥＳ）に応答して、ビデオコーダは、区分モード決定プロセスを終了し得る。（図４においてαと示される）閾値量は、例えば、１．１、１．０５、０．９５、０．９、又は何らかの他のそのような値に等しく設定され得る。値αは、ビデオエンコーダが２Ｎ×２Ｎ区分モードを選択する周波数に影響を与え得る。ビデオエンコーダは、長方形区分モードのチェックを省略することで区分モード決定プロセスを終了し得る。第２のＲＤコストが第１のＲＤコスト×閾値量よりも大きいこと（１０６、ＹＥＳ）に応答して、ビデオエンコーダは、ブロックを符号化するための第１の正方形区分モード（図４の例では２Ｎ×２Ｎ）を選択し得る。
【００８２】
[0088]第１のＲＤコストが第２のＲＤコスト×第２の閾値量よりも大きいこと（１０６、ＮＯ）に応答して、ビデオエンコーダは、追加の区分モードをチェックし得る。追加の区分モードをチェックすることの一部として、ブロックのうちの少なくとも１つがＮ×Ｎに対するイントラモードでコード化されるべきであるとビデオエンコーダが決定する場合（１０８、ＹＥＳ）、ビデオエンコーダは、区分モード決定プロセスを終了し、４つのＮ×Ｎ区分を使用して２Ｎ×２Ｎブロックを符号化し得る。全てのブロックがＮ×Ｎに対するイントラモードでコード化されないとビデオエンコーダが決定する場合（１０８、ＮＯ）、ビデオエンコーダは、第２の正方形区分モードの区分に関連付けられた水平差分を決定し、第２の正方形区分モードの区分に関連付けられた垂直差分を決定する（１１０）。第２の正方形区分モードの区分に関連付けられた水平差分を決定するために、ビデオエンコーダは、上の式１に従って動きベクトル間の差分を決定し、及び／又は、上の式３に従ってＲＤコスト間の差分を決定し得る。第２の正方形区分モードの区分に関連付けられた垂直差分を決定するために、ビデオエンコーダは、上の式２に従って動きベクトル間の差分を決定し、及び／又は、上の式４に従ってＲＤコスト間の差分を決定し得る。
【００８３】
[0089]第２の正方形区分モードの区分に関連付けられた水平差分を決定するために、ビデオエンコーダは、左上の区分と上右の区分との間の差分（例えば、コスト差分又は動きベクトル差分）と、左下の区分と右下の区分との間の差分とを決定し得る。第２の正方形区分モードの区分に関連付けられた垂直差分を決定するために、ビデオエンコーダは、左上の区分と左下の区分との間の差分と、右上の区分と右下の区分との間の差分とを決定し得る。
【００８４】
[0090]水平差分が垂直差分×閾値量よりも小さいこと（１１２、Ｈ＜β×Ｖ）に応答して、ビデオエンコーダは、水平長方形区分モード（例えば、２Ｎ×Ｎ）をチェックすることなく、ブロックに対する垂直長方形（例えば、Ｎ×２Ｎ）区分モードをチェックし得る（１１４）。垂直差分が水平差分×閾値量よりも小さいこと（１１２、ｖ＜β×Ｈ）に応答して、ビデオエンコーダは、ブロックに対する水平長方形区分モード（例えば、Ｎ×２Ｎ）をチェックすることなく、ブロックに対する垂直長方形区分モード（例えば、２Ｎ×Ｎ）をチェックし得る（１１６）。垂直差分が水平差分の閾値量内であること（１１２、ＮＯ）に応答して、ビデオエンコーダは、ブロックに対する垂直長方形区分モードと、ブロックに対する水平長方形区分モードとをチェックし得る（１１８）。
【００８５】
[0091]図４のステップ１１４、１１６、及び１１８について、長方形区分モードがチェックされるからといって、長方形区分モードを使用してブロックが最終的に符号化されるわけではないことは理解されるべきである。ステップ１１４に続いて、例えば、ブロックは、依然として、Ｎ×２Ｎ区分モードをチェックした後に、正方形区分モード（例えば、２Ｎ×２Ｎ又はＮ×Ｎ）を使用して符号化され得る。同様に、ステップ１１６に続いて、例えば、ブロックは、依然として、２Ｎ×Ｎ区分モードをチェックした後に、正方形区分モード（例えば、２Ｎ×２Ｎ又はＮ×Ｎ）を使用して符号化され得、ステップ１１８に続いて、ブロックは、依然として、２Ｎ×Ｎ及びＮ×２Ｎの両方の区分モードをチェックした後に、正方形区分モード（例えば、２Ｎ×２Ｎ又はＮ×Ｎ）を使用して符号化され得る。
【００８６】
[0092]図４の技法をＨＥＶＣ以外のビデオ圧縮規格に適用するときに、ステップ１０８が取り除かれ得ることもまた理解されるべきである。ＨＥＶＣが、イントラコード化されたブロックについて長方形区分をサポートしないため、ＨＥＶＣエンコーダは、区分がイントラ符号化されるべきであると決定した後、長方形区分モードをテストする必要はない。イントラ符号化された長方形区分をサポートする異なるビデオ圧縮規格の場合、ビデオエンコーダは、２Ｎ×２Ｎブロックの１つ又は複数の区分がイントラ符号化されるべきであると決定した後であってもステップ１１０に進む。
【００８７】
[0093]上述した技法に従って、ビデオエンコーダ２０及び２１は、ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化するように構成されたビデオエンコーダ及び４つのＮ×Ｎブロックの各々に対する符号化モードを決定することの例を表す。次に、ビデオエンコーダ２０及び２１は、４つのＮ×Ｎブロックの各々に対する符号化モードを使用して、４つのＮ×Ｎブロックの符号化バージョンを表す値を算出し、算出された値に基づいて、２Ｎ×２Ｎブロックに対する少なくとも１つの長方形区分化モードのテストを省略するかどうかを決定し得る。ビデオエンコーダ２０及び２１は、少なくとも１つの長方形区分化モードのテストを省略するかどうかの決定に少なくとも部分的に基づいて、２Ｎ×２Ｎブロックを符号化し得る。
【００８８】
[0094]ビデオエンコーダ２０及び２１は、４つのＮ×Ｎブロックの符号化バージョンを表す値から水平値を決定することと、４つのＮ×Ｎブロックの符号化バージョンを表す値から垂直値を決定することと、水平値が垂直値にオフセットを乗じたものよりも大きいかどうか又は垂直値が水平値にオフセットを乗じたものよりも大きいかどうかに基づいて少なくとも１つの長方形区分化モードのテストを省略するかどうかを決定することとを行うことでテストを省略するかどうかを決定し得る。ビデオエンコーダ２０及び２１は、水平値が垂直値にオフセットを乗じたものよりも大きいとき、Ｎ×２Ｎ区分化モードをテストすることを省略すると決定することでテストを省略するかどうかを決定し得る。ビデオエンコーダ２０及び２１はまた、垂直値が水平値にオフセットを乗じたものよりも大きいとき、２Ｎ×Ｎ区分化モードをテストすることを省略すると決定することでテストを省略するかどうかを決定し得る。
【００８９】
[0095]ビデオエンコーダ２０及び２１は、４つのＮ×Ｎブロックの動きベクトルについての動きベクトル差分値を算出することで値を算出し得、ここで、動きベクトル差分値の各々は、それぞれの水平成分とそれぞれの垂直成分とを含む。ビデオエンコーダ２０及び２１は、４つのＮ×Ｎブロックの左上ブロックについての動きベクトルの水平成分と４つのＮ×Ｎブロックの右上ブロックについての動きベクトルの水平成分との間の第１の差分と、４つのＮ×Ｎブロックの左下ブロックについての動きベクトルの水平成分と４つのＮ×Ｎブロックの右下ブロックについての動きベクトルの水平成分との間の第２の差分との和を算出することで、水平値を決定し得る。ビデオエンコーダ２０及び２１は、４つのＮ×Ｎブロックの左上ブロックについての動きベクトルの水平成分と４つのＮ×Ｎブロックの右上ブロックについての動きベクトルの水平成分との間の第１の差分と、４つのＮ×Ｎブロックの左下ブロックについての動きベクトルの水平成分と４つのＮ×Ｎブロックの右下ブロックについての動きベクトルの水平成分との間の第２の差分との和を算出することで、水平値を決定し得る。
【００９０】
[0096]図５は、本開示で説明される技法に従って、符号化されたビデオデータを復号し得る例となるビデオデコーダ３０を例示するブロック図である。ビデオデコーダ３０は、ビデオデータを受け、復号するように構成されたビデオデコーダとして提示されているが、ビデオデコーダ３０に関連して説明される技法の多くがビデオエンコーダ２０又は２１によっても実行され得ることは理解されるべきである。ビデオエンコーダ２０及び２１は、例えば、ビデオ復号ループを含み得、複数のコード化パスを実行することの一部として、ビデオエンコーダ２０及び２１は、ビデオデータを符号化し、次に、この符号化の品質を分析するために、符号化されたビデオデータを復号し得る。
【００９１】
[0097]図５の例では、ビデオデコーダ３０は、ビデオデータメモリ７８と、エントロピー復号ユニット８０と、予測処理ユニット８１と、逆量子化ユニット８６と、逆変換処理ユニット８８と、加算器９０と、ＤＰＢ９４とを含む。予測処理ユニット８１は、動き補償ユニット８２と、イントラ予測ユニット８４とを含む。ビデオデコーダ３０は、いくつかの例では、図３Ａからのビデオエンコーダ２０又は図３Ｂからのビデオエンコーダ２１に関連して説明された符号化パスと概して相互関係にある復号パスを実行し得る。
【００９２】
[0098]復号プロセス中、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化されたビデオスライスのビデオブロックを表す符号化されたビデオビットストリームと関連するシンタックス要素とを受ける。ビデオデコーダ３０は、受けた被符号化ビデオビットストリームをビデオデータメモリ７８に記憶する。ビデオデータメモリ７８は、ビデオデコーダ３０の構成要素によって復号されることとなる、符号化されたビデオビットストリームのようなビデオデータを記憶し得る。ビデオデータメモリ７８に記憶されたビデオデータは、例えば、図１のリンク１６を介して、図１の記憶デバイス２６から、又はカメラのようなローカルビデオ発信源から、又は物理データ記憶媒体にアクセスすることで取得され得る。ビデオデータメモリ７８は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するコード化ピクチャバッファ（ＣＰＢ）を形成し得る。ＤＰＢ９４は、例えば、イントラ又はインターコード化モードで、ビデオデコーダ３０がビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ７８及びＤＰＢ９４は、ＤＲＡＭ、ＳＤＲＡＭ、ＭＲＡＭ、ＲＲＡＭ又は他のタイプのメモリデバイスのような様々なメモリデバイスのうちの任意のものによって形成され得る。ビデオデータメモリ７８及びＤＰＢ９４は、同じメモリデバイス又は別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ７８は、ビデオデコーダ３０の他の構成要素とともにオンチップであり得るか、これらの構成要素に対してオフチップであり得る。
【００９３】
[0099]ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化された係数、動きベクトル、及び他のシンタックス要素を生成するために、ビデオデータメモリ７８に記憶されたビデオデータをエントロピー復号する。エントロピー復号ユニット８０は、動きベクトル及び他のシンタックス要素を予測処理ユニット８１に転送する。ビデオデコーダ３０は、ビデオスライスレベル及び／又はビデオブロックレベルでシンタックス要素を受け得る。
【００９４】
[0100]ビデオスライスがイントラコード化された（Ｉ）スライスとしてコード化されるとき、予測処理ユニット８１のイントラ予測ユニット８４は、シグナル伝達されたイントラ予測モード及びデータに基づいて現在のフレーム又はピクチャの以前に復号されたブロックから現在のビデオスライスのビデオブロックについての予測データを生成し得る。ビデオフレームがインターコード化された（即ち、Ｂ又はＰ）スライスとしてコード化されるとき、予測処理ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受けた動きベクトル及び他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックについての予測ブロックを作り出す。予測ブロックは、参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つから作り出され得る。ビデオデコーダ３０は、ＤＰＢ９４に記憶された参照ピクチャに基づいてデフォルト構築技法を使用して、参照フレームリスト、リスト０及びリスト１、を構築し得る。
【００９５】
[0101]動き補償ユニット８２は、動きベクトル及び他のシンタックス要素を解析することで現在のビデオスライスのビデオブロックについての予測情報を決定し、この予測情報を使用して、復号されている現在のビデオブロックについての予測ブロックを作り出す。例えば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコード化するために使用される予測モード（例えば、イントラ又はインター予測）を決定するための受けたシンタックス要素、インター予測スライスタイプ（例えば、Ｂスライス又はＰスライス）、スライスのための参照ピクチャリストのうちの１つ又は複数についての構築情報、スライスの各インター符号化されたビデオブロックについての動きベクトル、スライスの各インターコード化されたビデオブロックについてのインター予測ステータス、及び現在のビデオスライス内のビデオブロックを復号するための他の情報のうちのいくつかを使用する。
【００９６】
[0102]動き補償ユニット８２はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット８２は、参照ブロックのサブ整数画素についての補間値を算出するためにビデオブロックの符号化中、ビデオエンコーダ２０によって使用されるような補間フィルタを使用し得る。このケースでは、動き補償ユニット８２は、受けたシンタックス要素からビデオエンコーダ２０によって使用される補間フィルタを決定し、この補間フィルタを使用して、予測ブロックを作り出し得る。
【００９７】
[0103]逆量子化ユニット８６は、ビットストリームにおいて提供され、かつ、エントロピー復号ユニット８０によって復号された被量子化変換係数を逆量子化（inverse quantize）、即ち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度、また同じ様に、適用されるべき逆量子化の程度を決定するために、ビデオスライスにおける各ビデオブロックについて、ビデオエンコーダ２０によって算出される量子化パラメータの使用を含み得る。逆変換処理ユニット８８は、画素ドメインにおいて残差ブロックを作り出すために、逆変換、例えば、逆ＤＣＴ、逆整数変換、又は概念上類似した逆変換プロセスを変換係数に適用する。
【００９８】
[0104]予測処理ユニットが、例えば、イントラ又はインター予測を使用して現在のビデオブロックについての予測ブロックを生成した後、ビデオデコーダ３０は、逆変換処理ユニット８８からの残差ブロックを、動き補償ユニット８２によって生成された対応する予測ブロックと加算することで、再構築されたビデオブロックを形成する。加算器９０は、この加算演算を実行する１つ又は複数の構成要素を表す。フィルタユニット９２は、例えば、デブロッキングフィルタ処理、ＳＡＯフィルタ処理、ＡＬＦフィルタ処理、又は他のタイプのフィルタ処理のうちの１つ又は複数を使用して、再構築されたビデオブロックをフィルタ処理する。（コード化ループ内又はコード化ループ後のどちらかの）他のループフィルタはまた、画素遷移を平滑にするために又は別の方法でビデオ品質を改善するために使用され得る。所与のフレーム又はピクチャ内の復号されたビデオブロックはその後、後の動き補償のために使用される参照ピクチャを記憶するＤＰＢ９４に記憶される。ＤＰＢ９４は、図１のディスプレイデバイス３２のようなディスプレイデバイス上での後の提示のために、復号されたビデオを記憶する追加のメモリの一部であるか又はそれとは別個であり得る。
【００９９】
[0105]図６は、本開示の態様に係る、長方形ＰＵ最適化のための技法を例示するフローチャートを示す。図６の技法は、ビデオエンコーダ２０及び２１に対応し、ビデオエンコーダ２０及び２１の両方の特性を組み合わせ、及び／又はビデオエンコーダ２０及び２１とは異なり得る汎用ビデオエンコーダに関連して説明されるであろう。図６の技法は、任意の特定のタイプのビデオエンコーダに制限されない。
【０１００】
[0106]ビデオエンコーダは、ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化する（１３０）。ビデオエンコーダは、４つのＮ×Ｎブロックの各々に対する符号化モードを決定し（１３２）、４つのＮ×Ｎブロックの各々に対する符号化モードを使用して、４つのＮ×Ｎブロックの符号化バージョンを表す値を算出する（１３４）。ビデオエンコーダは、算出された値に基づいて、２Ｎ×２Ｎブロックに対する少なくとも１つの長方形区分化モードのテストを省略するかどうかを決定する（１３６）。ビデオエンコーダは、少なくとも１つの長方形区分化モードのテストを省略するかどうかの決定に少なくとも部分的に基づいて、２Ｎ×２Ｎブロックを符号化する（１３８）。ビデオエンコーダは、例えば、テストされる様々な区分モードの中から１つの区分モードを選択し、選択された区分モードを使用して２Ｎ×２Ｎブロックを符号化する。
【０１０１】
[0107]１つ又は複数の例では、説明された機能は、ハードウェアで、ソフトウェアで、ファームウェアで、又はこれらの任意の組み合わせで実現され得る。ソフトウェアで実現される場合、これら機能は、１つ又は複数の命令又はコードとして、コンピュータ読取可能な媒体に記憶されるか、コンピュータ読取可能な媒体を通して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ読取可能な媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの移送を容易にする任意の媒体を含む通信媒体又はデータ記憶媒体のような有体の媒体に対応するコンピュータ読取り可能な記憶媒体を含み得る。このように、コンピュータ読取可能な媒体は、一般に、（１）非一時的である有形のコンピュータ読取り可能な記憶媒体又は（２）信号又は搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実現のための命令、コード、及び／又はデータ構造を取り出すために、１つ又は複数のコンピュータ又は１つ又は複数のプロセッサによってアクセス可能な任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ読取可能な媒体を含み得る。
【０１０２】
[0108]限定ではなく例として、そのようなコンピュータ読取り可能な記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭ又は他の光学ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶デバイス、フラッシュメモリ、又は命令又はデータ構造の形式で所望のプログラムコードを記憶するために使用されることができ、かつ、コンピュータによってアクセス可能な任意の他の媒体を備え得る。また、任意の接続は厳密にはコンピュータ読取可能な媒体と称され得る。例えば、命令が、ウェブサイト、サーバ又は他のリモート発信源から、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）又は赤外線、電波及びマイクロ波のようなワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ又は赤外線、電波及びマイクロ波のようなワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ読取り可能な記憶媒体及びデータ記憶媒体は、接続、搬送波、信号又は他の一時的な媒体を含まないが、代わりに非一時的な有体の記憶媒体に向けられることは理解されるべきである。本明細書で使用される場合、ディスク（disk）及びディスク（disc）は、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、デジタル多用途ディスク（ＤＶＤ）、フロッピー（登録商標）ディスク及びブルーレイディスクを含み、ディスク（disk）は、通常磁気的にデータを再生し、ディスク（disc）は、レーザーを用いて光学的にデータを再生する。上記の組み合わせもまた、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
【０１０３】
[0109]命令は、１つ又は複数のデジタルシグナルプロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）又は他の等価的な集積回路又はディスクリートな論理回路のような１つ又は複数のプロセッサによって実行され得る。従って、「プロセッサ」という用語は、本明細書で使用される場合、前述の構造又は本明細書で説明された技法の実現に好適な任意の他の構造のうちの任意のものを指し得る。加えて、いくつかの態様では、本明細書で説明された機能性は、符号化及び復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内に提供され得るか又は複合コーデックに組み込まれ得る。また、本技法は、１つ又は複数の回路又は論理要素において完全に実現され得る。
【０１０４】
[0110]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）又はＩＣのセット（例えば、チップセット）を含む、幅広い種類のデバイス又は装置において実現され得る。様々な構成要素、モジュール又はユニットは、本開示では、開示された技法を実行するように構成されたデバイスの機能的な態様を強調するために説明されているが、必ずしも異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上述したように、様々なユニットは、コーデックハードウェアユニットへと組み合わせられるか、好適なソフトウェア及び／又はファームウェアと併せて、上述した１つ又は複数のプロセッサを含む、相互動作するハードウェアユニットの集合によって提供され得る。
【０１０５】
[0111]様々な例が説明されている。これらの例及び他の例は、以下の特許請求の範囲の範囲内である。
【図１】
2018511232.tif 000003
【図２】
2018511232.tif 000004
【図３Ａ】
2018511232.tif 000005
【図３Ｂ】
2018511232.tif 000006
【図４】
2018511232.tif 000007
【図５】
2018511232.tif 000008
【図６】
2018511232.tif 000009
【手続補正書】
【提出日】平成29年11月7日(2017.11.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオデータを符号化する方法であって、
ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化することと、ここにおいて、Ｎは整数値である、
前記４つのＮ×Ｎブロックの各々に対する符号化モードを決定することと、
前記４つのＮ×Ｎブロックの各々に対する前記符号化モードを使用して、前記４つのＮ×Ｎブロックの符号化バージョンを表す値を算出することと、
算出された前記値に基づいて、前記２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと、
前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかの前記決定に少なくとも部分的に基づいて、前記２Ｎ×２Ｎブロックを符号化することと
を備える方法。
【請求項２】
テストを省略するかどうかを決定することは、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から水平値を決定することと、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から垂直値を決定することと、
前記水平値が前記垂直値よりも大きいかどうか又は前記垂直値が前記水平値よりも大きいかどうかに基づいて、前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと
を備える、請求項１に記載の方法。
【請求項３】
テストを省略するかどうかを決定することは、前記水平値が前記垂直値よりも大きいとき、Ｎ×２Ｎ区分化モードをテストすることを省略すると決定することを備える、請求項２に記載の方法。
【請求項４】
テストを省略するかどうかを決定することは、前記垂直値が前記水平値よりも大きいとき、２Ｎ×Ｎ区分化モードをテストすることを省略すると決定することを備える、請求項２に記載の方法。
【請求項５】
前記値を算出することは、前記４つのＮ×Ｎブロックの動きベクトルについての動きベクトル差分値を算出することを備え、前記動きベクトル差分値の各々は、それぞれの水平成分とそれぞれの垂直成分とを含む、
前記水平値を決定することは、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出することを備え、
前記水平値を決定することは、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出することを備える、
請求項２に記載の方法。
【請求項６】
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定すること及び前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することは、２Ｎ×２Ｎ区分モードでビデオデータのブロックを符号化することに関連付けられた第１のレート歪み（ＲＤ）コストが、Ｎ×Ｎ区分モードで前記ビデオデータのブロックを符号化することに関連付けられた第２のＲＤコストよりも大きいことに応答して実行される、
請求項２に記載の方法。
【請求項７】
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定すること及び前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することは、前記４つのＮ×Ｎブロックのうちのいずれのものに対するイントラモードを使用して前記２Ｎ×２Ｎブロックを符号化しないと決定することに応答して実行される、
請求項２に記載の方法。
【請求項８】
前記水平値が前記垂直値にオフセットを乗じたものよりも小さいこと、かつ、前記垂直値が、前記水平値に前記オフセットを乗じたものよりも小さいことに応答して、前記Ｎ×２Ｎ区分化モード及び前記２Ｎ×Ｎ区分化モードの両方をテストすること
を更に備える、請求項２に記載の方法。
【請求項９】
ビデオデータを符号化するためのデバイであって、
前記ビデオデータを記憶するために構成されたメモリと、
１つ又は複数のプロセッサと
を備え、前記１つ又は複数のプロセッサは、
ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化することと、ここにおいて、Ｎは整数値である、
前記４つのＮ×Ｎブロックの各々に対する符号化モードを決定することと、
前記４つのＮ×Ｎブロックの各々に対する前記符号化モードを使用して、前記４つのＮ×Ｎブロックの符号化バージョンを表す値を算出することと、
算出された前記値に基づいて、前記２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと、
前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかの前記決定に少なくとも部分的に基づいて、前記２Ｎ×２Ｎブロックを符号化することと
を行うように構成された、デバイス。
【請求項１０】
テストを省略するかどうかを決定することは、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から水平値を決定することと、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から垂直値を決定することと、
前記水平値が前記垂直値よりも大きいかどうか又は前記垂直値が前記水平値よりも大きいかどうかに基づいて、前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと
を備える、請求項９に記載のデバイス。
【請求項１１】
テストを省略するかどうかを決定するために、前記１つ又は複数のプロセッサは、前記水平値が前記垂直値よりも大きいとき、Ｎ×２Ｎ区分化モードをテストすることを省略すると決定するように更に構成される、請求項１０に記載のデバイス。
【請求項１２】
テストを省略するかどうかを決定するために、前記１つ又は複数のプロセッサは、前記垂直値が前記水平値よりも大きいとき、２Ｎ×Ｎ区分化モードをテストすることを省略すると決定するように更に構成される、請求項１０に記載のデバイス。
【請求項１３】
前記値を算出するために、前記１つ又は複数のプロセッサは、前記４つのＮ×Ｎブロックの動きベクトルについての動きベクトル差分値を算出するように更に構成され、前記動きベクトル差分値の各々は、それぞれの水平成分とそれぞれの垂直成分とを含む、
前記水平値を決定するために、前記１つ又は複数のプロセッサは、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出するように更に構成される、
前記水平値を決定するために、前記１つ又は複数のプロセッサは、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出するように更に構成される
請求項１０に記載のデバイス。
【請求項１４】
前記１つ又は複数のプロセッサは、２Ｎ×２Ｎ区分モードでビデオデータのブロックを符号化することに関連付けられた第１のレート歪み（ＲＤ）コストが、Ｎ×Ｎ区分モードで前記ビデオデータのブロックを符号化することに関連付けられた第２のＲＤコストよりも大きいことに応答して、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定することと、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することとを行うように更に構成される、
請求項１０に記載のデバイス。
【請求項１５】
前記１つ又は複数のプロセッサは、前記４つのＮ×Ｎブロックのうちのいずれのものに対するイントラモードを使用して前記２Ｎ×２Ｎブロックを符号化しないと決定することに応答して、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定することと、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することとを行うように更に構成される、
請求項１０に記載のデバイス。
【請求項１６】
前記１つ又は複数のプロセッサは、前記水平値が前記垂直値にオフセットを乗じたものよりも小さいこと、かつ、前記垂直値が、前記水平値に前記オフセットを乗じたものよりも小さいことに応答して、前記Ｎ×２Ｎ区分化モード及び前記２Ｎ×Ｎ区分化モードの両方をテストするように更に構成される、請求項１０に記載のデバイス。
【請求項１７】
前記デバイスは、符号化されたデータを送信するように構成された送信機を備えるワイヤレス通信デバイスを備える、請求項９に記載のデバイス。
【請求項１８】
前記ワイヤレス通信デバイスは、セルラ電話を備え、前記符号化されたビデオデータは、前記送信機によって送信される前にセルラ通信規格に従って変調される、請求項１７に記載のデバイス。
【請求項１９】
ビデオデータを符号化するための装置であって、
ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化するための手段と、ここにおいて、Ｎは整数値である、
前記４つのＮ×Ｎブロックの各々に対する符号化モードを決定するための手段と、
前記４つのＮ×Ｎブロックの各々に対する前記符号化モードを使用して、前記４つのＮ×Ｎブロックの符号化バージョンを表す値を算出するための手段と、
算出された前記値に基づいて、前記２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定するための手段と、
前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかの前記決定に少なくとも部分的に基づいて、前記２Ｎ×２Ｎブロックを符号化するための手段と
を備える装置。
【請求項２０】
テストを省略するかどうかを前記決定するための手段は、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から水平値を決定するための手段と、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から垂直値を決定するための手段と、
前記水平値が前記垂直値よりも大きいかどうか又は前記垂直値が前記水平値よりも大きいかどうかに基づいて、前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定するための手段と
を備える、請求項１９に記載の装置。
【請求項２１】
テストを省略するかどうかを前記決定するための手段は、前記水平値が前記垂直値よりも大きいとき、Ｎ×２Ｎ区分化モードをテストすることを省略すると決定するための手段を備える、請求項２０に記載の装置。
【請求項２２】
テストを省略するかどうかを前記決定するための手段は、前記垂直値が前記水平値よりも大きいとき、２Ｎ×Ｎ区分化モードをテストすることを省略すると決定するための手段を備える、請求項２０に記載の装置。
【請求項２３】
前記値を前記算出するための手段は、前記４つのＮ×Ｎブロックの動きベクトルについての動きベクトル差分値を算出するための手段を備え、前記動きベクトル差分値の各々は、それぞれの水平成分とそれぞれの垂直成分とを含む、
前記水平値を前記決定するための手段は、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出するための手段を備え、
前記水平値を前記決定するための手段は、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出するための手段を備える、
請求項２０に記載の装置。
【請求項２４】
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を前記決定するための手段及び前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を前記決定するための手段は、２Ｎ×２Ｎ区分モードでビデオデータのブロックを符号化することに関連付けられた第１のレート歪み（ＲＤ）コストが、Ｎ×Ｎ区分モードで前記ビデオデータのブロックを符号化することに関連付けられた第２のＲＤコストよりも大きいことに応答して実行する、
請求項２０に記載の装置。
【請求項２５】
命令を記憶したコンピュータ読取り可能な記憶媒体であって、前記命令は、１つ又は複数のプロセッサによって実行されると、
ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化することと、ここにおいて、Ｎは整数値である、
前記４つのＮ×Ｎブロックの各々に対する符号化モードを決定することと、
前記４つのＮ×Ｎブロックの各々に対する前記符号化モードを使用して、前記４つのＮ×Ｎブロックの符号化バージョンを表す値を算出することと、
算出された前記値に基づいて、前記２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと、
前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかの前記決定に少なくとも部分的に基づいて、前記２Ｎ×２Ｎブロックを符号化することと
を前記１つ又は複数のプロセッサに行わせる、コンピュータ読取り可能な記憶媒体。
【請求項２６】
テストを省略するかどうかを決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されたとき、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から水平値を決定することと、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から垂直値を決定することと、
前記水平値が前記垂直値よりも大きいかどうか又は前記垂直値が前記水平値よりも大きいかどうかに基づいて、前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと
を前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、請求項２５に記載のコンピュータ読取り可能な記憶媒体。
【請求項２７】
テストを省略するかどうかを決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記水平値が前記垂直値よりも大きいとき、Ｎ×２Ｎ区分化モードをテストすることを省略すると決定すること
を前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、請求項２６に記載のコンピュータ読取り可能な記憶媒体。
【請求項２８】
テストを省略するかどうかを決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記垂直値が前記水平値よりも大きいとき、２Ｎ×Ｎ区分化モードをテストすることを省略すると決定することを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、請求項２６に記載のコンピュータ読取り可能な記憶媒体。
【請求項２９】
前記値を算出するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記４つのＮ×Ｎブロックの動きベクトルについての動きベクトル差分値を算出することを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶し、前記動きベクトル差分値の各々は、それぞれの水平成分とそれぞれの垂直成分とを含む、
前記水平値を決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出することを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶し、
前記水平値を決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出することを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、
請求項２６に記載のコンピュータ読取り可能な記憶媒体。
【請求項３０】
前記コンピュータ読取り可能な記憶媒体は、実行されると、２Ｎ×２Ｎ区分モードでビデオデータのブロックを符号化することに関連付けられた第１のレート歪み（ＲＤ）コストが、Ｎ×Ｎ区分モードで前記ビデオデータのブロックを符号化することに関連付けられた第２のＲＤコストよりも大きいことに応答して、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定することと、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することとを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、請求項２６に記載のコンピュータ読取り可能な記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１０５
【補正方法】変更
【補正の内容】
【０１０５】
[0111]様々な例が説明されている。これらの例及び他の例は、以下の特許請求の範囲の範囲内である。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ビデオデータを符号化する方法であって、
ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化することと、ここにおいて、Ｎは整数値である、
前記４つのＮ×Ｎブロックの各々に対する符号化モードを決定することと、
前記４つのＮ×Ｎブロックの各々に対する前記符号化モードを使用して、前記４つのＮ×Ｎブロックの符号化バージョンを表す値を算出することと、
算出された前記値に基づいて、前記２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと、
前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかの前記決定に少なくとも部分的に基づいて、前記２Ｎ×２Ｎブロックを符号化することと
を備える方法。
［Ｃ２］
テストを省略するかどうかを決定することは、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から水平値を決定することと、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から垂直値を決定することと、
前記水平値が前記垂直値にオフセットを乗じたものよりも大きいかどうか又は前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいかどうかに基づいて、前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと
を備える、Ｃ１に記載の方法。
［Ｃ３］
テストを省略するかどうかを決定することは、前記水平値が前記垂直値に前記オフセットを乗じたものよりも大きいとき、Ｎ×２Ｎ区分化モードをテストすることを省略すると決定することを備える、Ｃ２に記載の方法。
［Ｃ４］
テストを省略するかどうかを決定することは、前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいとき、２Ｎ×Ｎ区分化モードをテストすることを省略すると決定することを備える、Ｃ２に記載の方法。
［Ｃ５］
前記値を算出することは、前記４つのＮ×Ｎブロックの動きベクトルについての動きベクトル差分値を算出することを備え、前記動きベクトル差分値の各々は、それぞれの水平成分とそれぞれの垂直成分とを含む、
前記水平値を決定することは、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出することを備え、
前記水平値を決定することは、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出することを備える、
Ｃ２に記載の方法。
［Ｃ６］
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定すること及び前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することは、２Ｎ×２Ｎ区分モードでビデオデータのブロックを符号化することに関連付けられた第１のレート歪み（ＲＤ）コストが、Ｎ×Ｎ区分モードで前記ビデオデータのブロックを符号化することに関連付けられた第２のＲＤコストよりも大きいことに応答して実行される、
Ｃ２に記載の方法。
［Ｃ７］
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定すること及び前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することは、前記４つのＮ×Ｎブロックのうちのいずれのものに対するイントラモードを使用して前記２Ｎ×２Ｎブロックを符号化しないと決定することに応答して実行される、
Ｃ２に記載の方法。
［Ｃ８］
前記水平値が前記垂直値に前記オフセットを乗じたものよりも小さいこと、かつ、前記垂直値が、前記水平値に前記オフセットを乗じたものよりも小さいことに応答して、前記Ｎ×２Ｎ区分化モード及び前記２Ｎ×Ｎ区分化モードの両方をテストすること
を更に備える、Ｃ２に記載の方法。
［Ｃ９］
ビデオデータを符号化するためのデバイであって、
前記ビデオデータを記憶するために構成されたメモリと、
１つ又は複数のプロセッサと
を備え、前記１つ又は複数のプロセッサは、
ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化することと、ここにおいて、Ｎは整数値である、
前記４つのＮ×Ｎブロックの各々に対する符号化モードを決定することと、
前記４つのＮ×Ｎブロックの各々に対する前記符号化モードを使用して、前記４つのＮ×Ｎブロックの符号化バージョンを表す値を算出することと、
算出された前記値に基づいて、前記２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと、
前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかの前記決定に少なくとも部分的に基づいて、前記２Ｎ×２Ｎブロックを符号化することと
を行うように構成された、デバイス。
［Ｃ１０］
テストを省略するかどうかを決定することは、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から水平値を決定することと、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から垂直値を決定することと、
前記水平値が前記垂直値にオフセットを乗じたものよりも大きいかどうか又は前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいかどうかに基づいて、前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと
を備える、Ｃ９に記載のデバイス。
［Ｃ１１］
テストを省略するかどうかを決定するために、前記１つ又は複数のプロセッサは、前記水平値が前記垂直値に前記オフセットを乗じたものよりも大きいとき、Ｎ×２Ｎ区分化モードをテストすることを省略すると決定するように更に構成される、Ｃ１０に記載のデバイス。
［Ｃ１２］
テストを省略するかどうかを決定するために、前記１つ又は複数のプロセッサは、前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいとき、２Ｎ×Ｎ区分化モードをテストすることを省略すると決定するように更に構成される、Ｃ１０に記載のデバイス。
［Ｃ１３］
前記値を算出するために、前記１つ又は複数のプロセッサは、前記４つのＮ×Ｎブロックの動きベクトルについての動きベクトル差分値を算出するように更に構成され、前記動きベクトル差分値の各々は、それぞれの水平成分とそれぞれの垂直成分とを含む、
前記水平値を決定するために、前記１つ又は複数のプロセッサは、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出するように更に構成される、
前記水平値を決定するために、前記１つ又は複数のプロセッサは、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出するように更に構成される
Ｃ１０に記載のデバイス。
［Ｃ１４］
前記１つ又は複数のプロセッサは、２Ｎ×２Ｎ区分モードでビデオデータのブロックを符号化することに関連付けられた第１のレート歪み（ＲＤ）コストが、Ｎ×Ｎ区分モードで前記ビデオデータのブロックを符号化することに関連付けられた第２のＲＤコストよりも大きいことに応答して、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定することと、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することとを行うように更に構成される、
Ｃ１０に記載のデバイス。
［Ｃ１５］
前記１つ又は複数のプロセッサは、前記４つのＮ×Ｎブロックのうちのいずれのものに対するイントラモードを使用して前記２Ｎ×２Ｎブロックを符号化しないと決定することに応答して、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定することと、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することとを行うように更に構成される、
Ｃ１０に記載のデバイス。
［Ｃ１６］
前記１つ又は複数のプロセッサは、前記水平値が前記垂直値に前記オフセットを乗じたものよりも小さいこと、かつ、前記垂直値が、前記水平値に前記オフセットを乗じたものよりも小さいことに応答して、前記Ｎ×２Ｎ区分化モード及び前記２Ｎ×Ｎ区分化モードの両方をテストするように更に構成される、Ｃ１０に記載のデバイス。
［Ｃ１７］
前記デバイスは、符号化されたデータを送信するように構成された送信機を備えるワイヤレス通信デバイスを備える、Ｃ９に記載のデバイス。
［Ｃ１８］
前記ワイヤレス通信デバイスは、セルラ電話を備え、前記符号化されたビデオデータは、前記送信機によって送信される前にセルラ通信規格に従って変調される、Ｃ１７に記載のデバイス。
［Ｃ１９］
ビデオデータを符号化するための装置であって、
ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化するための手段と、ここにおいて、Ｎは整数値である、
前記４つのＮ×Ｎブロックの各々に対する符号化モードを決定するための手段と、
前記４つのＮ×Ｎブロックの各々に対する前記符号化モードを使用して、前記４つのＮ×Ｎブロックの符号化バージョンを表す値を算出するための手段と、
算出された前記値に基づいて、前記２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定するための手段と、
前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかの前記決定に少なくとも部分的に基づいて、前記２Ｎ×２Ｎブロックを符号化するための手段と
を備える装置。
［Ｃ２０］
テストを省略するかどうかを前記決定するための手段は、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から水平値を決定するための手段と、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から垂直値を決定するための手段と、
前記水平値が前記垂直値にオフセットを乗じたものよりも大きいかどうか又は前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいかどうかに基づいて、前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定するための手段と
を備える、Ｃ１９に記載の装置。
［Ｃ２１］
テストを省略するかどうかを前記決定するための手段は、前記水平値が前記垂直値に前記オフセットを乗じたものよりも大きいとき、Ｎ×２Ｎ区分化モードをテストすることを省略すると決定するための手段を備える、Ｃ２０に記載の装置。
［Ｃ２２］
テストを省略するかどうかを前記決定するための手段は、前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいとき、２Ｎ×Ｎ区分化モードをテストすることを省略すると決定するための手段を備える、Ｃ２０に記載の装置。
［Ｃ２３］
前記値を前記算出するための手段は、前記４つのＮ×Ｎブロックの動きベクトルについての動きベクトル差分値を算出するための手段を備え、前記動きベクトル差分値の各々は、それぞれの水平成分とそれぞれの垂直成分とを含む、
前記水平値を前記決定するための手段は、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出するための手段を備え、
前記水平値を前記決定するための手段は、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出するための手段を備える、
Ｃ２０に記載の装置。
［Ｃ２４］
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を前記決定するための手段及び前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を前記決定するための手段は、２Ｎ×２Ｎ区分モードでビデオデータのブロックを符号化することに関連付けられた第１のレート歪み（ＲＤ）コストが、Ｎ×Ｎ区分モードで前記ビデオデータのブロックを符号化することに関連付けられた第２のＲＤコストよりも大きいことに応答して実行する、
Ｃ２０に記載の装置。
［Ｃ２５］
命令を記憶したコンピュータ読取り可能な記憶媒体であって、前記命令は、１つ又は複数のプロセッサによって実行されると、
ビデオデータの２Ｎ×２Ｎブロックを４つのＮ×Ｎブロックへと区分化することと、ここにおいて、Ｎは整数値である、
前記４つのＮ×Ｎブロックの各々に対する符号化モードを決定することと、
前記４つのＮ×Ｎブロックの各々に対する前記符号化モードを使用して、前記４つのＮ×Ｎブロックの符号化バージョンを表す値を算出することと、
算出された前記値に基づいて、前記２Ｎ×２Ｎブロックに対する少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと、
前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかの前記決定に少なくとも部分的に基づいて、前記２Ｎ×２Ｎブロックを符号化することと
を前記１つ又は複数のプロセッサに行わせる、コンピュータ読取り可能な記憶媒体。
［Ｃ２６］
テストを省略するかどうかを決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されたとき、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から水平値を決定することと、
前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から垂直値を決定することと、
前記水平値が前記垂直値にオフセットを乗じたものよりも大きいかどうか又は前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいかどうかに基づいて、前記少なくとも１つの非正方形区分化モードのテストを省略するかどうかを決定することと
を前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、Ｃ２５に記載のコンピュータ読取り可能な記憶媒体。
［Ｃ２７］
テストを省略するかどうかを決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記水平値が前記垂直値に前記オフセットを乗じたものよりも大きいとき、Ｎ×２Ｎ区分化モードをテストすることを省略すると決定すること
を前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、Ｃ２６に記載のコンピュータ読取り可能な記憶媒体。
［Ｃ２８］
テストを省略するかどうかを決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記垂直値が前記水平値に前記オフセットを乗じたものよりも大きいとき、２Ｎ×Ｎ区分化モードをテストすることを省略すると決定することを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、Ｃ２６に記載のコンピュータ読取り可能な記憶媒体。
［Ｃ２９］
前記値を算出するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記４つのＮ×Ｎブロックの動きベクトルについての動きベクトル差分値を算出することを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶し、前記動きベクトル差分値の各々は、それぞれの水平成分とそれぞれの垂直成分とを含む、
前記水平値を決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出することを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶し、
前記水平値を決定するために、前記コンピュータ読取り可能な記憶媒体は、実行されると、前記４つのＮ×Ｎブロックの左上ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右上ブロックについての前記動きベクトルの前記水平成分との間の第１の差分と、前記４つのＮ×Ｎブロックの左下ブロックについての前記動きベクトルの前記水平成分と前記４つのＮ×Ｎブロックの右下ブロックについての前記動きベクトルの前記水平成分との間の第２の差分との和を算出することを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、
Ｃ２６に記載のコンピュータ読取り可能な記憶媒体。
［Ｃ３０］
前記コンピュータ読取り可能な記憶媒体は、実行されると、２Ｎ×２Ｎ区分モードでビデオデータのブロックを符号化することに関連付けられた第１のレート歪み（ＲＤ）コストが、Ｎ×Ｎ区分モードで前記ビデオデータのブロックを符号化することに関連付けられた第２のＲＤコストよりも大きいことに応答して、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記水平値を決定することと、前記４つのＮ×Ｎブロックの前記符号化バージョンを表す前記値から前記垂直値を決定することとを前記１つ又は複数のプロセッサに行わせる更なる命令を記憶する、Ｃ２６に記載のコンピュータ読取り可能な記憶媒体。
【国際調査報告】
2018511232.tif 000010
2018511232.tif 000011