(57)【要約】  ビデオデータをコード化するための技法は、ビデオコード化プロセスを実行することの一部として、サンプル適応オフセット（ＳＡＯ）オフセット値をコード化することを含む。具体的には、本技法は、ＳＡＯプロセスに従ってＳＡＯオフセット値を決定することを含む。本技法は更に、ＳＡＯオフセット値の様々な変動をコード化するための複数のコードを定義するコードブックを記憶することを含む。本技法はまた、コードブックによって定義される複数のコードの１つとしてＳＡＯオフセット値を規定するために、コードブックに従ってＳＡＯオフセット値をコード化することを含む。
2015511472.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ復号プロセスにおいてループフィルタパラメータを復号する方法であって、
ループフィルタリングプロセスを実行するためにコードブックを使用するか否かを示す指示を受信することと、前記コードブックは複数のエントリーを含み、前記コードブック中の前記エントリーの各々が前記ループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、前記コードブックがビデオデータの１つ以上のブロックに対して適用可能である、
受信された前記指示に基づいて、ビデオデータの前記１つ以上のブロックに対する前記ループフィルタリングプロセスを実行することとを備える、方法。
【請求項２】
前記コードブック中の特定のエントリーを定義する１つ以上のシンタックス要素を受信することと、
受信された前記１つ以上のシンタックス要素に基づいて、前記コードブックからループフィルタパラメータの前記特定のエントリーを取り出すことと、
受信された前記指示及び前記取り出されたループフィルタパラメータに基づいて、ビデオデータの前記１つ以上のブロックに対する前記ループフィルタリングプロセスを実行することとを更に備える、請求項１に記載の方法。
【請求項３】
前記ループフィルタリングプロセスが適応ループフィルタＡＬＦであり、前記ループフィルタパラメータがＡＬＦ係数を備える、請求項１に記載の方法。
【請求項４】
前記ループフィルタリングプロセスがサンプル適応オフセット（ＳＡＯ）フィルタであり、前記ループフィルタパラメータがＳＡＯオフセット値を備える、請求項１に記載の方法。
【請求項５】
前記コードブックがビデオデータの前記１つ以上のブロックに対する前記ＳＡＯフィルタを実行するために使用されるべきであることを前記指示が示し、前記指示を受信することが、スライスヘッダ、適応パラメータセット（ＡＰＳ）、シーケンスパラメータセット（ＳＰＳ）、及びピクチャパラメータセット（ＰＰＳ）の１つ以上において前記指示を受信することを備える、請求項４に記載の方法。
【請求項６】
スライスデータ、スライスヘッダ、ＡＰＳ、ＳＰＳ、及びＰＰＳの１つ以上において前記コードブックを受信することを更に備える、請求項５に記載の方法。
【請求項７】
前記コードブックがビデオデータの前記１つ以上のブロックに対して前記ＳＡＯフィルタを実行するために使用されるべきではないことを前記指示が示し、
ビデオデータの前記１つ以上のブロックとともに使用するための追加のループフィルタパラメータセットを受信することと、
前記コードブックの代わりに、前記受信された追加のループフィルタパラメータを使用して前記ループフィルタリング処理を実行することとを更に備える、請求項４に記載の方法。
【請求項８】
前記コードブックに対する追加のエントリーとして、前記受信された追加のループフィルタパラメータセットを追加することを更に備える、請求項４に記載の方法。
【請求項９】
前記コードブックが第１のコードブックであり、前記第１のコードブックが、スケーラブルビデオデータの基本レイヤにおけるビデオデータの前記１つ以上のブロックに対応し、
前記第１のコードブックからビデオデータの１つ以上の強化レイヤに対する第２のコードブックを予測することを更に備える、請求項１に記載の方法。
【請求項１０】
前記コードブックが、スケーラブルビデオデータの基本レイヤにおけるビデオデータの前記１つ以上のブロックに対応し、
ビデオデータの１つ以上の強化レイヤに対して前記コードブックを再使用することを更に備える、請求項１に記載の方法。
【請求項１１】
前記コードブックが第１のコードブックであり、前記第１のコードブックが、マルチビュービデオデータの基本ビューにおけるビデオデータの前記１つ以上のブロックに対応し、
前記第１のコードブックからマルチビュービデオデータの１つ以上の追加のビューに対する第２のコードブックを予測することを更に備える、請求項１に記載の方法。
【請求項１２】
前記コードブックが、マルチビュービデオデータの基本ビューにおけるビデオデータの前記１つ以上のブロックに対応し、
マルチビュービデオデータの１つ以上の追加のビューに対して前記コードブックを再使用することを更に備える、請求項１に記載の方法。
【請求項１３】
前記コードブックによって定義される前記複数のエントリーの１つ以上の各々が、
固定長のコードワードと、
単位コードワードと、
指数ゴロムコードワードとのうちの１つを備える、請求項１に記載の方法。
【請求項１４】
ビデオ符号化処理においてループフィルタパラメータを符号化する方法であって、
ループフィルタリングプロセスにおいて使用するためのループフィルタパラメータの特定のセットを決定することと、
ループフィルタパラメータの前記特定のセットがコードブックに記憶されるか否かを示す指示を信号伝達することと、前記コードブックが複数のエントリーを含み、前記コードブック中の前記エントリーの各々が前記ループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、前記コードブックがビデオデータの１つ以上のブロックに対して適用可能である、
ループフィルタパラメータの前記特定のセットに基づいて、ビデオデータの前記１つ以上のブロックに対する前記ループフィルタリングプロセスを実行することとを備える、方法。
【請求項１５】
前記コードブック中のループフィルタパラメータの前記特定のセットに対する前記エントリーを定義する、１つ以上のシンタックス要素を信号伝達することを更に備える、請求項１４に記載の方法。
【請求項１６】
前記ループフィルタリングプロセスが適応ループフィルタＡＬＦであり、前記ループフィルタパラメータがＡＬＦ係数を備える、請求項１４に記載の方法。
【請求項１７】
前記ループフィルタリングプロセスがサンプル適応オフセット（ＳＡＯ）フィルタであり、前記ループフィルタパラメータがＳＡＯオフセット値を備える、請求項１４に記載の方法。
【請求項１８】
前記コードブックがビデオデータの前記１つ以上のブロックに対する前記ＳＡＯフィルタを実行するために使用されるべきであることを前記指示が示し、前記指示を信号伝達することが、スライスヘッダ、適応パラメータセット（ＡＰＳ）、シーケンスパラメータセット（ＳＰＳ）、及びピクチャパラメータセット（ＰＰＳ）の１つ以上において前記指示を信号伝達することを備える、請求項１７に記載の方法。
【請求項１９】
スライスデータ、スライスヘッダ、ＡＰＳ、ＳＰＳ、及びＰＰＳの１つ以上において前記コードブックを信号伝達することを更に備える、請求項１８に記載の方法。
【請求項２０】
前記コードブックがビデオデータの前記１つ以上のブロックに対して前記ＳＡＯフィルタを実行するために使用されるべきではないことを前記指示が示し、
ビデオデータの前記１つ以上のブロックとともに使用するための追加のループフィルタパラメータセットを信号伝達することを更に備える、請求項１７に記載の方法。
【請求項２１】
前記コードブックに対する追加のエントリーとして、前記追加のループフィルタパラメータセットを追加することを更に備える、請求項１７に記載の方法。
【請求項２２】
前記コードブックが第１のコードブックであり、前記第１のコードブックが、スケーラブルビデオデータの基本レイヤにおけるビデオデータの前記１つ以上のブロックに対応し、
前記第１のコードブックからビデオデータの１つ以上の強化レイヤに対する第２のコードブックを予測することを更に備える、請求項１４に記載の方法。
【請求項２３】
前記コードブックが、スケーラブルビデオデータの基本レイヤにおけるビデオデータの前記１つ以上のブロックに対応し、
ビデオデータの１つ以上の強化レイヤに対して前記コードブックを再使用することを更に備える、請求項１４に記載の方法。
【請求項２４】
前記コードブックが第１のコードブックであり、前記第１のコードブックが、マルチビュービデオデータの基本ビューにおけるビデオデータの前記１つ以上のブロックに対応し、
前記第１のコードブックからマルチビュービデオデータの１つ以上の追加のビューに対する第２のコードブックを予測することを更に備える、請求項１４に記載の方法。
【請求項２５】
前記コードブックが、マルチビュービデオデータの基本ビューにおけるビデオデータの前記１つ以上のブロックに対応し、
マルチビュービデオデータの１つ以上の追加のビューに対して前記コードブックを再使用することを更に備える、請求項１４に記載の方法。
【請求項２６】
前記コードブックによって定義される前記複数のエントリーの１つ以上の各々が、
固定長のコードワードと、
単位コードワードと、
指数ゴロムコードワードとのうちの１つを備える、請求項１４に記載の方法。
【請求項２７】
ビデオデコーダを備え、ビデオ復号プロセスにおいてループフィルタパラメータを復号するように構成される装置であって、
前記ビデオデコーダが、
ループフィルタリングプロセスを実行するためにコードブックを使用するか否かを示す指示を受信し、このとき、前記コードブックが複数のエントリーを含み、前記コードブック中の前記エントリーの各々が前記ループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、前記コードブックがビデオデータの１つ以上のブロックに対して適用可能であり、
受信された前記指示に基づいて、ビデオデータの前記１つ以上のブロックに対する前記ループフィルタリングプロセスを実行する
ように構成される、装置。
【請求項２８】
前記ビデオデコーダが更に、
前記コードブック中の特定のエントリーを定義する１つ以上のシンタックス要素を受信し、
受信された前記１つ以上のシンタックス要素に基づいて、前記コードブックからループフィルタパラメータの前記特定のエントリーを取り出し、
受信された前記指示及び前記取り出されたループフィルタパラメータに基づいて、ビデオデータの前記１つ以上のブロックに対する前記ループフィルタリングプロセスを実行するように構成される、請求項２７に記載の装置。
【請求項２９】
前記ループフィルタリングプロセスが適応ループフィルタＡＬＦであり、前記ループフィルタパラメータがＡＬＦ係数を備える、請求項２７に記載の装置。
【請求項３０】
前記ループフィルタリングプロセスがサンプル適応オフセット（ＳＡＯ）フィルタであり、前記ループフィルタパラメータがＳＡＯオフセット値を備える、請求項２７に記載の装置。
【請求項３１】
前記コードブックがビデオデータの前記１つ以上のブロックに対する前記ＳＡＯフィルタを実行するために使用されるべきであることを前記指示が示し、前記ビデオデコーダが更に、スライスヘッダ、適応パラメータセット（ＡＰＳ）、シーケンスパラメータセット（ＳＰＳ）、及びピクチャパラメータセット（ＰＰＳ）の１つ以上において前記指示を受信するように構成される、請求項３０に記載の装置。
【請求項３２】
前記ビデオデコーダが更に、
スライスデータ、スライスヘッダ、ＡＰＳ、ＳＰＳ、及びＰＰＳの１つ以上において前記コードブックを受信するように構成される、請求項３１に記載の装置。
【請求項３３】
前記コードブックがビデオデータの前記１つ以上のブロックに対して前記ＳＡＯフィルタを実行するために使用されるべきではないことを前記指示が示し、前記ビデオデコーダが更に、
ビデオデータの前記１つ以上のブロックとともに使用するための追加のループフィルタパラメータセットを受信し、
前記コードブックの代わりに、受信された前記追加のループフィルタパラメータを使用して前記ループフィルタリング処理を実行するように構成される、請求項３０に記載の装置。
【請求項３４】
前記ビデオデコーダが更に、
前記コードブックに対する追加のエントリーとして、受信された前記追加のループフィルタパラメータセットを追加するように構成される、請求項３０に記載の装置。
【請求項３５】
前記コードブックが第１のコードブックであり、前記第１のコードブックが、スケーラブルビデオデータの基本レイヤにおけるビデオデータの前記１つ以上のブロックに対応し、前記ビデオデコーダが更に、
前記第１のコードブックからビデオデータの１つ以上の強化レイヤに対する第２のコードブックを予測するように構成される、請求項２７に記載の装置。
【請求項３６】
前記コードブックが、スケーラブルビデオデータの基本レイヤにおけるビデオデータの前記１つ以上のブロックに対応し、前記ビデオデコーダが更に、
ビデオデータの１つ以上の強化レイヤに対して前記コードブックを再使用するように構成される、請求項２７に記載の装置。
【請求項３７】
前記コードブックが第１のコードブックであり、前記第１のコードブックが、マルチビュービデオデータの基本ビューにおけるビデオデータの前記１つ以上のブロックに対応し、前記ビデオデコーダが更に、
前記第１のコードブックからマルチビュービデオデータの１つ以上の追加のビューに対する第２のコードブックを予測するように構成される、請求項２７に記載の装置。
【請求項３８】
前記コードブックが、マルチビュービデオデータの基本ビューにおけるビデオデータの前記１つ以上のブロックに対応し、前記ビデオデコーダが更に、
マルチビュービデオデータの１つ以上の追加のビューに対して前記コードブックを再使用するように構成される、請求項２７に記載の装置。
【請求項３９】
前記コードブックによって定義される前記複数のエントリーの１つ以上の各々が、
固定長のコードワードと、
単位コードワードと、
指数ゴロムコードワードとのうちの１つを備える、請求項２７に記載の装置。
【請求項４０】
ビデオエンコーダを備える、ビデオ符号化プロセスにおいてループフィルタパラメータを符号化するように構成される装置であって、
前記ビデオエンコーダが、
ループフィルタリングプロセスにおいて使用するためのループフィルタパラメータの特定のセットを決定し、
ループフィルタパラメータの前記特定のセットがコードブックにおいて記憶されるか否かを示す指示を信号伝達し、このとき、前記コードブックが複数のエントリーを含み、前記コードブック中の前記エントリーの各々が前記ループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、前記コードブックがビデオデータの１つ以上のブロックに対して適用可能であり、
ループフィルタパラメータの前記特定のセットに基づいて、ビデオデータの前記１つ以上のブロックに対する前記ループフィルタリングプロセスを実行する
ように構成される、装置。
【請求項４１】
前記ビデオエンコーダが更に、
前記コードブック中のループフィルタパラメータの前記特定のセットに対する前記エントリーを定義する、１つ以上のシンタックス要素を信号伝達するように構成される、請求項４０に記載の装置。
【請求項４２】
前記ループフィルタリングプロセスが適応ループフィルタＡＬＦであり、前記ループフィルタパラメータがＡＬＦ係数を備える、請求項４０に記載の装置。
【請求項４３】
前記ループフィルタリングプロセスがサンプル適応オフセット（ＳＡＯ）フィルタであり、前記ループフィルタパラメータがＳＡＯオフセット値を備える、請求項４０に記載の装置。
【請求項４４】
前記コードブックがビデオデータの前記１つ以上のブロックに対する前記ＳＡＯフィルタを実行するために使用されるべきであることを前記指示が示し、前記ビデオエンコーダが更に、スライスヘッダ、適応パラメータセット（ＡＰＳ）、シーケンスパラメータセット（ＳＰＳ）、及びピクチャパラメータセット（ＰＰＳ）の１つ以上において前記指示を信号伝達するように構成される、請求項４３に記載の装置。
【請求項４５】
前記ビデオエンコーダが更に、
スライスデータ、スライスヘッダ、ＡＰＳ、ＳＰＳ、及びＰＰＳの１つ以上において前記コードブックを信号伝達するように構成される、請求項４４に記載の装置。
【請求項４６】
前記コードブックがビデオデータの前記１つ以上のブロックに対して前記ＳＡＯフィルタを実行するために使用されるべきではないことを前記指示が示し、前記ビデオエンコーダが更に、
ビデオデータの前記１つ以上のブロックとともに使用するための追加のループフィルタパラメータセットを信号伝達するように構成される、請求項４３に記載の装置。
【請求項４７】
前記ビデオエンコーダが更に、
前記コードブックに対する追加のエントリーとして、前記追加のループフィルタパラメータセットを追加するように構成される、請求項４３に記載の装置。
【請求項４８】
前記コードブックが第１のコードブックであり、前記第１のコードブックが、スケーラブルビデオデータの基本レイヤにおけるビデオデータの前記１つ以上のブロックに対応し、前記ビデオエンコーダが更に、
前記第１のコードブックからビデオデータの１つ以上の強化レイヤに対する第２のコードブックを予測するように構成される、請求項４０に記載の装置。
【請求項４９】
前記コードブックが、スケーラブルビデオデータの基本レイヤにおけるビデオデータの前記１つ以上のブロックに対応し、前記ビデオエンコーダが更に、
ビデオデータの１つ以上の強化レイヤに対して前記コードブックを再使用するように構成される、請求項４０に記載の装置。
【請求項５０】
前記コードブックが第１のコードブックであり、前記第１のコードブックが、マルチビュービデオデータの基本ビューにおけるビデオデータの前記１つ以上のブロックに対応し、前記ビデオエンコーダが更に、
前記第１のコードブックからマルチビュービデオデータの１つ以上の追加のビューに対する第２のコードブックを予測するように構成される、請求項４０に記載の装置。
【請求項５１】
前記コードブックが、マルチビュービデオデータの基本ビューにおけるビデオデータの前記１つ以上のブロックに対応し、前記ビデオエンコーダが更に、
マルチビュービデオデータの１つ以上の追加のビューに対して前記コードブックを再使用するように構成される、請求項４０に記載の装置。
【請求項５２】
前記コードブックによって定義される前記複数のエントリーの１つ以上の各々が、
固定長のコードワードと、
単位コードワードと、
指数ゴロムコードワードとのうちの１つを備える、請求項４０に記載の装置。
【請求項５３】
ビデオ復号プロセスにおいてループフィルタパラメータを復号するように構成される装置であって、
ループフィルタリングプロセスを実行するためにコードブックを使用するか否かを示す指示を受信するための手段と、前記コードブックが複数のエントリーを含み、前記コードブック中の前記エントリーの各々が前記ループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、前記コードブックがビデオデータの１つ以上のブロックに対して適用可能である、
受信された前記指示に基づいて、ビデオデータの前記１つ以上のブロックに対する前記ループフィルタリングプロセスを実行するための手段とを備える、装置。
【請求項５４】
ビデオ符号化プロセスにおいてループフィルタパラメータを符号化するように構成される装置であって、
ループフィルタリングプロセスにおいて使用するためのループフィルタパラメータの特定のセットを決定するための手段と、
ループフィルタパラメータの前記特定のセットがコードブックに記憶されるか否かを示す指示を信号伝達するための手段と、前記コードブックが複数のエントリーを含み、前記コードブック中の前記エントリーの各々が前記ループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、前記コードブックがビデオデータの１つ以上のブロックに対して適用可能である、
ループフィルタパラメータの前記特定のセットに基づいて、ビデオデータの前記１つ以上のブロックに対する前記ループフィルタリングプロセスを実行するための手段とを備える、装置。
【請求項５５】
実行されると、ビデオデータを復号するように構成された装置の１つ以上のプロセッサに、
ループフィルタリングプロセスを実行するためにコードブックを使用するか否かを示す指示を受信させ、このとき、前記コードブックが複数のエントリーを含み、前記コードブック中の前記エントリーの各々が前記ループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、前記コードブックがビデオデータの１つ以上のブロックに対して適用可能であり、
受信された前記指示に基づいて、ビデオデータの前記１つ以上のブロックに対する前記ループフィルタリングプロセスを実行させる、
命令を記憶した、コンピュータ可読記憶媒体。
【請求項５６】
実行されると、ビデオデータを符号化するように構成された装置の１つ以上のプロセッサに、
ループフィルタリングプロセスにおいて使用するためのループフィルタパラメータの特定のセットを決定させ、
ループフィルタパラメータの前記特定のセットがコードブックに記憶されるか否かを示す指示を信号伝達させ、このとき、前記コードブックが複数のエントリーを含み、前記コードブック中の前記エントリーの各々が前記ループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、前記コードブックがビデオデータの１つ以上のブロックに対して適用可能であり、
ループフィルタパラメータの前記特定のセットに基づいて、ビデオデータの前記１つ以上のブロックに対する前記ループフィルタリングプロセスを実行させる、
命令を記憶した、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１２年２月２２日に出願された米国仮出願第６１／６０１，９９４号、及び２０１２年１２月１３日に出願された米国仮出願第６１／７３６，９１８号の利益を主張する。
【０００２】
[0002]本開示は全般にビデオコード化に関し、より具体的には、ビデオコード化プロセスにおけるサンプル適応オフセット（ＳＡＯ）オフセット値のコード化に関する。
【背景技術】
【０００３】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー又は衛星無線電話、ビデオ遠隔会議機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）、現在開発中のＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格によって定義された規格、及びそのような規格の拡張に記載されているようなビデオ圧縮技法を実装して、デジタルビデオ情報をより効率的に送信、受信、及び記憶する。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために空間的予測及び／又は時間的予測を含む。ブロックベースのビデオコード化では、ビデオフレーム又はスライスは、ブロックに区分され得る。各ブロックは、更に区分され得る。イントラコード化された（Ｉ）フレーム又はスライス中のブロックは、同じフレーム又はスライス中の隣接ブロック内の参照サンプルに対する空間的予測を使用して符号化される。インターコード化された（Ｐ又はＢ）フレーム又はスライス中のブロックは、同じフレーム又はスライス中の近隣ブロック中の参照サンプルに対する空間的予測、又は他の参照フレーム中の参照サンプルに対する時間的予測を使用し得る。空間的予測又は時間的予測は、コード化されるべきブロックの予測ブロックを生じる。残差データは、コード化されるべき元のブロックと予測ブロックとの間の画素差分を表す。
【０００５】
[0005]インターコード化されたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化されたブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化されたブロックは、イントラコード化モードと残差データとに従って符号化される。更なる圧縮のために、残差データが、画素領域から変換領域に変換されてよく、これにより残差変換係数が生じ、その残差変換係数が、次いで量子化され得る。最初は２次元アレイで構成される、量子化された変換係数は、エントロピーコード化のために、特に変換係数の１次元ベクトルを生成するために走査されてよい。
【発明の概要】
【０００６】
[0006]全般に、本開示の技法は、ビデオコード化に関する。具体的には、本明細書で開示される技法は、ビデオコード化プロセスの一部として使用される、サンプル適応オフセット（ＳＡＯ）オフセット値を含む、ループフィルタリングパラメータのコード化を対象とする。一例として、本開示の技法は、ＳＡＯプロセスに従って１つ又は複数のＳＡＯオフセット値を決定することを含む。この例では、１つ又は複数のＳＡＯオフセット値は、ビデオデータの１つ又は複数のブロックをコード化することの一部として決定され得る。例えば、１つ又は複数のＳＡＯオフセット値は、１つ又は複数のブロックをコード化するために使用される予測データをフィルタリングするために、ＳＡＯプロセスを実行する目的で決定され得る。本技法は更に、ビデオエンコーダ及びビデオデコーダの１つ又は複数におけるＳＡＯオフセット値の様々な変動をコード化するために使用され得るオフセット値の複数のセットを定義する、コードブックを記憶することを含む。本開示の技法はまた、コードブックに従って、上で説明された方式で決定された１つ又は複数のＳＡＯオフセット値をコード化することを含み得る。特に、本開示の技法は、１つ又は複数のＳＡＯオフセット値をコード化して、コードブックによって定義される複数のセットの１つとしてオフセット値を規定することを含み得る。
【０００７】
[0007]本開示の一例では、ビデオ復号プロセスにおいてループフィルタパラメータを復号する方法は、ループフィルタリングプロセスを実行するためにコードブックを使用するか否かを示す指示を受信することであって、コードブックが複数のエントリーを含み、コードブック中のエントリーの各々がループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、コードブックがビデオデータの１つ又は複数のブロックに対して適用可能である、受信することと、受信された指示に基づいて、ビデオデータの１つ又は複数のブロックに対してループフィルタリングプロセスを実行することとを備える。
【０００８】
[0008]復号方法は更に、コードブック中の特定のエントリーを定義する１つ又は複数のシンタックス要素を受信することと、受信された１つ又は複数のシンタックス要素に基づいて、コードブックからループフィルタパラメータの特定のエントリーを取り出すことと、受信された指示及び取り出されたループフィルタパラメータに基づいて、ビデオデータの１つ又は複数のブロックに対してループフィルタリングプロセスを実行することとを備え得る。
【０００９】
[0009]一例では、ループフィルタリングプロセスは適応ループフィルタＡＬＦであり、ループフィルタパラメータはＡＬＦ係数を備える。別の例では、ループフィルタリングプロセスはサンプル適応オフセット（ＳＡＯ）フィルタであり、ループフィルタパラメータはＳＡＯオフセット値を備える。
【００１０】
[0010]本開示の別の例では、ビデオ符号化プロセスにおいてループフィルタパラメータを符号化する方法は、ループフィルタリングプロセスにおいて使用するためのループフィルタパラメータの特定のセットを決定することと、ループフィルタパラメータの特定のセットがコードブックに記憶されるか否かを示す指示を信号伝達(signaling)することと、コードブックが複数のエントリーを含み、コードブック中のエントリーの各々がループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、コードブックがビデオデータの１つ又は複数のブロックに対して適用可能である、ループフィルタパラメータの特定のセットに基づいて、ビデオデータの１つ又は複数のブロックに対してループフィルタリングプロセスを実行することとを備える。方法は更に、コードブック中のループフィルタパラメータの特定のセットに対するエントリーを定義する、１つ又は複数のシンタックス要素を信号伝達することを備え得る。
【００１１】
[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]表示装置２８は、宛先機器１４と一体化されてよく、又はその外部にあってよい。幾つかの例では、宛先機器１４は、一体型表示装置を含んでよく、また、外部表示装置とインターフェースをとるように構成されてよい。他の例では、宛先機器１４は表示装置であり得る。一般に、表示装置２８は、復号されたビデオデータをユーザに対して表示し、液晶表示器（ＬＣＤ）、プラズマ表示器、有機発光ダイオード（ＯＬＥＤ）表示器、又は別のタイプの表示装置など、種々の表示装置のいずれかを備え得る。
【００３７】
[0038]ビデオエンコーダ２０及びビデオデコーダ３０は、ＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）とＩＳＯ／ＩＥＣ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）とのＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）によって現在開発中のＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作することができ、ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ（ＨＭ）に準拠し得る。代替的に、ビデオエンコーダ２０及びビデオデコーダ３０は、代替的にＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格のような、他のプロプライエタリ規格又は業界規格、あるいはそのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコード化規格にも限定されない。ビデオ圧縮規格の他の例には、ＭＰＥＧ−２及びＩＴＵ−Ｔ  Ｈ．２６３がある。「ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ８」又は「ＷＤ８」と呼ばれるＨＥＶＣ規格の最近のドラフトは、文書ＪＣＴＶＣ−Ｊ１００３＿ｄ７、Ｂｒｏｓｓら、「Ｈｉｇｈ  ｅｆｆｉｃｉｅｎｃｙ  ｖｉｄｅｏ  ｃｏｄｉｎｇ（ＨＥＶＣ）  ｔｅｘｔ  ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｄｒａｆｔ  ８」、ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３及びＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１のＪｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＪＣＴ−ＶＣ）、第１０回会合：スウェーデン  ストックホルム、２０１２年７月１１〜２０日に記載されており、この文書は、２０１３年２月１８日現在、ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ−ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ＿ｅｎｄ＿ｕｓｅｒ／ｄｏｃｕｍｅｎｔｓ／１０＿Ｓｔｏｃｋｈｏｌｍ／ｗｇ１１／ＪＣＴＶＣ−Ｊ１００３−ｖ８．ｚｉｐからダウンロード可能である。ＷＤ８は参照によって本明細書に組み込まれる。
【００３８】
[0039]図１には示されていないが、幾つかの態様では、ビデオエンコーダ２０及びビデオデコーダ３０は、各々オーディオエンコーダ及びデコーダと統合されてよく、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、又は他のハードウェア及びソフトウェアを含んでよい。適用可能な場合、幾つかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、又はユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３９】
[0040]ビデオエンコーダ２０及びビデオデコーダ３０は各々、１つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組合せのような、種々の適切なエンコーダ又はデコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装される場合、機器は、適切な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、１つ又は複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ２０及びビデオデコーダ３０の各々は１つ又は複数のエンコーダ又はデコーダ中に含まれてよく、そのいずれも、それぞれの機器において複合エンコーダ／デコーダ（「コーデック」）の一部として統合されてよい。
【００４０】
[0041]ＨＥＶＣ規格化の取り組みは、ＨＥＶＣ  Ｔｅｓｔ  Ｍｏｄｅｌ（ＨＭ）と呼ばれるビデオコード化機器の発展的モデルに基づく。ＨＭは、例えば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存の機器に対してビデオコード化機器の幾つかの追加の能力を仮定する。例えば、Ｈ．２６４は９個のイントラ予測符号化モードを提供するが、ＨＭは３４個ものイントラ予測符号化モードを提供し得る。
【００４１】
[0042]一般に、ＨＭの作業モデルは、ビデオフレーム又はピクチャが、ルーマとクロマの両方のサンプルを含む一連のツリーブロック又は最大コード化単位（ＬＣＵ）に分割され得ることを記載する。ツリーブロックは、Ｈ．２６４規格のマクロブロックと同様の目的を有する。スライスは、コード化順序で幾つかの連続するツリーブロックを含む。ビデオフレーム又はピクチャは、１つ又は複数のスライスに区分され得る。各ツリーブロックは、４分木に従ってコード化ユニット（ＣＵ）に分割され得る。例えば、４分木のルートノードとしてのツリーブロックは、４つの子ノードに分割されてよく、各子ノードが今度は親ノードとなり、別の４つの子ノードに分割されてよい。４分木のリーフノードとしての、最終的な、分割されていない子ノードは、コード化ノード、即ち、コード化されたビデオブロックを備える。コード化されたビットストリームと関連付けられるシンタックスデータは、ツリーブロックが分割され得る最大回数を定義することができ、コード化ノードの最小サイズも定義することができる。
【００４２】
[0043]ＣＵは、コード化ノードと、コード化ノードと関連付けられる予測単位（ＰＵ）と変換単位（ＴＵ）とを含む。ＣＵのサイズは、コード化ノードのサイズに対応し、形状が方形でなければならない。ＣＵのサイズは、８×８画素から最大で６４×６４以上の画素をもつツリーブロックのサイズにまで及び得る。各ＣＵは、１つ又は複数のＰｕと、１つ又は複数のＴＵとを含み得る。ＣＵと関連付けられるシンタックスデータは、例えば、ＣＵを１つ又は複数のＰｕに区分することを記述し得る。区分モードは、ＣＵが、スキップモード符号化又はダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかによって異なり得る。Ｐｕは、形状が非方形になるように区分され得る。ＣＵと関連付けられるシンタックスデータは、例えば、４分木に従って、ＣＵを１つ又は複数のＴＵに区分することも記述し得る。ＴＵは、形状が方形又は非方形であり得る。
【００４３】
[0044]ＨＥＶＣ規格に対する提案は、ＣＵごとに異なり得る、ＴＵに従う変換を可能にする。ＴＵは、一般に、区分されたＬＣＵについて定義された所与のＣＵ内のＰＵのサイズに基づいてサイズが決定されるが、常にそうであるとは限らない。ＴＵは通常、ＰＵと同じサイズであるか又はＰＵよりも小さい。幾つかの例では、ＣＵに対応する残差サンプルは、「残差４分木」（ＲＱＴ）として知られる４分木構造を使用してより小さいユニットに再分割され得る。ＲＱＴのリーフノードはＴＵと呼ばれることがある。ＴＵと関連付けられる画素差分値は、変換係数を生成するように変換されてよく、その変換係数は量子化され得る。
【００４４】
[0045]一般に、ＰＵは、予測プロセスに関連するデータを含む。例えば、ＰＵがイントラモード符号化されるとき、ＰＵは、ＰＵのイントラ予測モードを記述するデータを含み得る。別の例として、ＰＵがインターモード符号化されるとき、ＰＵは、ＰＵの動きベクトルを定義するデータを含み得る。ＰＵの動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（例えば、１／４画素精度又は１／８画素精度）、動きベクトルが指す参照ピクチャ、及び／又は動きベクトルの参照ピクチャリスト（例えば、リスト０、リスト１、又はリストＣ）を記述し得る。
【００４５】
[0046]一般に、ＴＵは、変換プロセス及び量子化プロセスのために使用される。１つ又は複数のＰＵを有する所与のＣＵは、１つ又は複数のＴＵも含み得る。予測の後に、ビデオエンコーダ２０は、ＰＵに対応する残差値を計算し得る。残差値は、エントロピーコード化のための直列化された変換係数を生成するために、ＴＵを使用して変換係数に変換され、量子化され、走査され得る、画素差分値を備える。本開示では、一般に、ＣＵのコード化ノードを指すために「ビデオブロック」又は単に「ブロック」という用語を使用する。幾つかの特定の場合において、本開示では、コード化ノードとＰＵとＴＵとを含む、ツリーブロック、即ち、ＬＣＵ又はＣＵを指す、「ビデオブロック」という用語も使用し得る。
【００４６】
[0047]ビデオシーケンスは通常、一連のビデオフレーム又はピクチャを含む。ピクチャのグループ（ＧＯＰ）は、一般に、一連の１つ又は複数のビデオピクチャを備える。ＧＯＰは、ＧＯＰ中に含まれる幾つかのピクチャを記述するシンタックスデータを、ＧＯＰのヘッダ中、ピクチャのうちの１つ又は複数のヘッダ中、又は他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ２０は通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、ＣＵ内のコード化ノードに対応し得る。ビデオブロックは、一定のサイズ又は可変のサイズを有してよく、指定されたコード化規格に従ってサイズが異なる場合がある。
【００４７】
[0048]一例として、ＨＭは、様々なＰＵサイズでの予測をサポートする。特定のＣＵのサイズが２Ｎ×２Ｎであると仮定すると、ＨＭは、２Ｎ×２Ｎ又はＮ×ＮというＰＵサイズでのイントラ予測をサポートし、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、又はＮ×Ｎという対称的なＰＵサイズでのインター予測をサポートする。ＨＭはまた、２Ｎ×ｎＵ、２Ｎ×ｎＤ、ｎＬ×２Ｎ、及びｎＲ×２ＮというＰＵサイズでのインター予測のための非対称区分をサポートする。非対称区分では、ＣＵの一方向は区分されないが、他の方向は２５％と７５％とに区分される。２５％の区分に対応するＣＵの部分は、「ｎ」とその後ろに付く「Ｕｐ」、「Ｄｏｗｎ」、「Ｌｅｆｔ」、又は「Ｒｉｇｈｔ」という表示によって示される。従って、例えば、「２Ｎ×ｎＵ」は、上部の２Ｎ×０．５Ｎ  ＰＵと下部の２Ｎ×１．５Ｎ  ＰＵとで水平方向に区分された２Ｎ×２Ｎ  ＣＵを指す。
【００４８】
[0049]本開示では、「Ｎ×Ｎ（NxN）」及び「Ｎ×Ｎ（N by N）」は、垂直寸法及び水平寸法に関するビデオブロックの画素寸法、例えば、１６×１６（16x16）画素又は１６×１６（16 by 16）画素を指すために互換的に使用され得る。一般に、１６×１６ブロックは、垂直方向に１６画素を有し（ｙ＝１６）、水平方向に１６画素を有する（ｘ＝１６）。同様に、Ｎ×Ｎブロックは、一般に、垂直方向にＮ画素を有し、水平方向にＮ画素を有し、但し、Ｎは非負の整数値を表す。ブロック中の画素は行と列で構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数の画素を有する必要があるとは限らない。例えば、ブロックはＮ×Ｍ画素を備えてよく、但し、Ｍは必ずしもＮに等しいとは限らない。
【００４９】
[0050]ＣＵのＰＵを使用したイントラ予測コード化又はインター予測コード化の後、ビデオエンコーダ２０は、ＣＵのＴＵのための残差データを計算し得る。ＰＵは、（画素領域とも呼ばれる）空間領域において画素データを備えてよく、ＴＵは、例えば、残差ビデオデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、又は概念的に同様の変換などの変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャの画素と、ＰＵに対応する予測値との間の画素差分に対応し得る。ビデオエンコーダ２０は、ＣＵのための残差データを含むＴＵを形成し、次いで、ＴＵを変換して、ＣＵの変換係数を生成し得る。
【００５０】
[0051]変換係数を生成するための任意の変換の後に、ビデオエンコーダ２０は、変換係数の量子化を実行し得る。量子化は、一般に、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、更なる圧縮を提供するプロセスを指す。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。例えば、量子化中にｎビット値がｍビット値に切り捨てられてよく、但し、ｎはｍよりも大きい。
【００５１】
[0052]幾つかの例では、ビデオエンコーダ２０は、予め定義された走査（scanning）又は「走査（scan）」順序を利用して、量子化された変換係数を走査し、エントロピー符号化され得る直列化されたベクトルを生成し得る。他の例では、ビデオエンコーダ２０は適応走査を実行し得る。量子化された変換係数を走査して１次元ベクトルを形成した後に、ビデオエンコーダ２０は、例えば、コンテキスト適応型可変長コード化（ＣＡＶＬＣ：context-adaptive variable length coding）、コンテキスト適応型バイナリ算術コード化（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）、シンタックスベースコンテキスト適応型バイナリ算術コード化（ＳＢＡＣ：syntax-based context-adaptive binary arithmetic coding）、確率間隔区分エントロピー（ＰＩＰＥ：Probability Interval Partitioning Entropy）コード化、又は別のエントロピー符号化方法に従って１次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ２０はまた、ビデオデータを復号する際にビデオデコーダ３０が使用するための、符号化されたビデオデータと関連付けられるシンタックス要素をエントロピー符号化し得る。
【００５２】
[0053]ＣＡＢＡＣを実行するために、ビデオエンコーダ２０は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、例えば、シンボルの隣接値が０値か否かに関係し得る。
【００５３】
[0054]以下は、ビデオエンコーダ２０及びビデオデコーダ３０、更に、図２及び図３において示され以下でより詳しく説明されたようなそれらの様々なコンポーネントに関して論じられる。本開示の時点では、サンプル適応オフセット（ＳＡＯ）コード化は、上で説明されたＨＥＶＣ規格で採用されることが考えられている。一般に、ビデオフレーム中の画素へのオフセット値の加算（例えば、インター予測又はイントラ予測のための予測フレーム）は、ビデオ品質を改善することができ、スムージング効果をもたらすことができる。
【００５４】
[0055]例えばＨ．２６４／ＡＶＣのような以前のビデオコード化規格では、画素のブロック又はフレーム全体にわたって一様に、オフセットタイプと値とを適用していた。これらの以前の技法とは対照的に、ＳＡＯ技法は、画素（又はブロック）分類尺度に応じて異なる画素（又はブロック）に異なるオフセット値が適用されることを可能にする。可能な分類尺度は、エッジ尺度及び帯域尺度のような、活動の尺度を含む。オフセット分類の説明は、参照によって本明細書に組み込まれる、Ｃ．−Ｍ．Ｆｕ、Ｃ．−Ｙ．Ｃｈｅｎ、Ｃ．−Ｙ．Ｔｓａｉ、Ｙ．−Ｗ．Ｈｕａｎｇ、Ｓ．Ｌｅｉ、「ＣＥ１３：Ｓａｍｐｌｅ  Ａｄａｐｔｉｖｅ  Ｏｆｆｓｅｔ  ｗｉｔｈ  ＬＣＵ−Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｅｃｏｄｉｎｇ」、ＪＣＴ−ＶＣ  Ｃｏｎｔｒｉｂｕｔｉｏｎ、Ｅ０４９、ジュネーブ、２０１１年２月において見いだされ得る。
【００５５】
[0056]ＨＥＶＣ規格に対する提案に従った現在のＳＡＯの実装形態では、各々の区分（ＬＣＵのセットを構成する）は、３つのオフセットタイプ（画素分類とも呼ばれる）、即ち、（１）オフセットなし、（２）帯域分類ベースのオフセットタイプ０／１、又は（３）エッジ分類ベースのオフセットタイプ０／１／２／３のうちの１つを有し得る。各帯域分類オフセットタイプは１６個の可能なオフセット値を有するが、各エッジ分類ベースのオフセットタイプは４つの可能なオフセット値を有する。これらのオフセットタイプのうちの１つが、区分に使用されるために選ばれた場合、対応するオフセットタイプとオフセット値（ＳＡＯ係数とも呼ばれる）とを示す情報がデコーダに送信される。
【００５６】
[0057]エッジオフセットタイプは、エッジ情報に基づいて各画素を分類する。図４は、ＨＥＶＣ規格に対して現在提案されている４つの可能なエッジオフセット分類を示す概念図である。図４に示されるエッジ分類の各々について、現在の画素のエッジタイプは、現在の画素（Ｃ）の値を隣接画素（１及び２）の値と比較することによって計算される。具体的には、ブロック４００の画素は、分類０のＳＡＯエッジオフセット、又は「ＳＡＯ＿ＥＯ＿０」に対応し、ブロック４０２の画素は、分類１のＳＡＯエッジオフセット、又は「ＳＡＯ＿ＥＯ＿１」に対応し、ブロック４０４の画素は、分類２のＳＡＯエッジオフセット、又は「ＳＡＯ＿ＥＯ＿２」に対応し、ブロック４０６の画素は、分類３のＳＡＯエッジオフセット、又は「ＳＡＯ＿ＥＯ＿３」に対応する。
【００５７】
[0058]ＨＥＶＣ規格に従った、上で説明されたＳＡＯ技法では、最初、現在の画素のエッジタイプは０であると仮定される。更に、現在の画素Ｃの値が左と右の隣接画素１及び２の両方の値に等しい場合、エッジタイプは０のままである。しかしながら、現在の画素Ｃの値が隣接画素１の値よりも大きい場合、エッジタイプは１だけ増やされる。或いは、現在の画素Ｃの値が隣接画素１の値よりも小さい場合、エッジタイプは１だけ減らされる。同様に、現在の画素Ｃの値が隣接画素２の値よりも大きい場合、エッジタイプは１だけ増やされ、現在の画素Ｃの値が隣接画素２の値よりも小さい場合、エッジタイプは１だけ減らされる。
【００５８】
[0059]従って、現在の画素Ｃは、「−２」、「−１」、「０」、「１」、又は「２」のいずれかのエッジタイプを有し得る。例えば、現在の画素Ｃの値が隣接画素１及び２の両方の値より小さい場合、エッジタイプは−２である。更に、現在の画素Ｃの値が一方の隣接画素（例えば、１）の値より小さいが他方の隣接画素（例えば、２）の値に等しい場合、エッジタイプは−１である。加えて、現在の画素Ｃの値が両方の隣接画素１及び２の値と同じである場合、又は、現在の画素Ｃの値が一方の隣接画素（例えば、１）の値より大きいが他方の隣接画素（例えば、２）の値より小さい場合、エッジタイプは０である。また、現在の画素Ｃの値が一方の隣接画素（例えば、１）の値より大きいが他方の隣接画素（例えば、１）の値に等しい場合、エッジタイプは１である。最後に、現在の画素Ｃの値が隣接画素１と２の値の両方より大きい場合、エッジタイプは２である。各々の０ではないエッジタイプ値に対して、４つのオフセット値（即ち、ｅｏｆｆｓｅｔ-2、ｅｏｆｆｓｅｔ-1、ｅｏｆｆｓｅｔ1、ｅｏｆｆｓｅｔ2）は、デコーダ（例えば、ビデオデコーダ３０）による使用のために符号化ビデオビットストリームにおいて（例えば、ビデオエンコーダ２０によって）決定され信号伝達される。ＳＡＯのオフセット値は、ＳＡＯ係数とも呼ばれ得る。
【００５９】
[0060]上で与えられた説明に鑑みて、各エッジオフセット分類に対して、各タイプ値が次の表現を使用して計算され得る。
【００６０】
EdgeType = 0;
if (C > 画素 1) EdgeType = EdgeType + 1;
if (C < 画素 1) EdgeType = EdgeType - 1;
if (C > 画素 2) EdgeType = EdgeType + 1;
if (C < 画素 2) EdgeType = EdgeType - 1;
[0061]帯域オフセットの場合、画素は、強度に基づいて異なる帯域に分類される。図５は、本開示の技法と一致する、ＳＡＯプロセスにおいて帯域分類を実行するために使用され得るビデオデータのブロックの画素の帯域の例を示す、概念図である。具体的には、図５の図面５００に示されるように、ビデオデータのブロックの画素の帯域は、画素強度値に基づいて決定され得る。帯域オフセット分類では、画素は３２個の帯域に分類され、このとき中心にある１６個の帯域が１つのグループへと分類され、残りの帯域が第２のグループへと分類される。帯域の各グループに対して、１６個のオフセット値（即ち、ｂｏｆｆｓｅｔ0、…、ｂｏｆｆｓｅｔ15）が決定され、ビデオデコーダ３０による使用のために符号化ビデオビットストリーム中でビデオエンコーダ２０によって信号伝達され得る。
【００６１】
[0062]ＨＭによれば、ビデオエンコーダがＳＡＯオフセットタイプ（例えば、ＳＡＯオフセットが適用されていないことを意味する「オフ」、「エッジ」オフセットのタイプ０／１／２／３、又は「帯域」オフセット）と、各ＬＣＵに対する対応するＳＡＯオフセット値とを決定した後、ビデオエンコーダは、ビデオデコーダによる使用のために符号化ビデオビットストリームの中のオフセットタイプと対応するオフセット値とを符号化する。例えば、ＳＡＯオフセットタイプ及び対応するオフセット値は、ビットストリーム中のスライスデータ、スライスヘッダ、適応パラメータセット（ＡＰＳ）、シーケンスパラメータセット（ＳＰＳ）、又はピクチャパラメータセット（ＰＰＳ）において信号伝達され得る。加えて、オフセットタイプ及び対応するオフセット値は、オフセットタイプと対応するオフセットデータとをビットストリーム中でビデオデコーダへより効率的に通信するために、任意の形式の統計的に無損失のコード化技法を使用してエントロピー符号化され得る。
【００６２】
[0063]ＨＥＶＣ規格に対する提案におけるＳＡＯの実装形態に関して上で説明される技法は、１つ又は複数の可能性のある欠点がある。例えば、それぞれ符号化し復号するための、ＨＭにおいて現在規定されておりＨＥＶＣにおいて提案されている符号化技法、ＳＡＯオフセットタイプ、及び対応するオフセットデータは、ＳＡＯオフセットタイプ及び対応するオフセットデータの分配に完全に対応するようには最適化されないことがある。従って、本開示は、幾つかの場合には、ＨＥＶＣ規格において現在提案されているようなＳＡＯコード化に関して上で特定された欠点の１つ又は複数に対処し得る、様々な技法を提示する。具体的には、一例として、規定され提案されたエントロピー符号化及び復号技法は、これらの値の一般的な分配に対して最適化され得る。ＳＡＯオフセットタイプ及びＨＭ準拠ビデオエンコーダによって一般に決定される対応するオフセットデータの統計的な評価を通じて、オフセット値の間の多数の関係が特定されてよく、この関係は、ＨＭにより規定されるエントロピー符号化技法及びＨＥＶＣにより提案されるエントロピー復号技法と比較して、ＳＡＯオフセットタイプ及び／又は対応するオフセットデータをより効率的に符号化し得る、エントロピー符号化技法の最適化のための基礎を形成し得る。
【００６３】
[0064]本開示で提案される技法は、ＳＡＯオフセットタイプ及び対応するオフセットデータ（例えば、オフセット値）のエントロピー符号化を改善することに関する多数の選択肢を定義する。これらの改善は、オフセット値の統計的な評価を通じて特定されるオフセット値の間の関係を利用することができる。例示すると、オフセット値は、限られた範囲の値を有するように、統計的な評価を通じて決定されている。言い換えると、オフセット値は通常、値の特定のセットに限定される。一例として、あるＳＡＯエッジオフセットタイプについて、対応するオフセット値は、「長方形構造」として特徴付けられ得るものを有すると特定されている。この長方形構造は、次のように記述され得る。
【００６４】
・ｏｆｆｓｅｔ０及びｏｆｆｓｅｔ３は同様である。
【００６５】
・ｏｆｆｓｅｔ１及びｏｆｆｓｅｔ２は同様である。
【００６６】
・ｏｆｆｓｅｔ０／ｏｆｆｓｅｔ３はｏｆｆｓｅｔ１／ｏｆｆｓｅｔ２以上である。
【００６７】
・オフセット値は通常０／１／２に限定される。
【００６８】
[0065]本開示で説明される技法は、この長方形構造を利用して、ＨＭにおいて現在規定されているようなオフセット値の独立のコード化と比較して、ＳＡＯオフセット値に対するより効率的なコード化を実現することができる。具体的には、本開示は、ビデオエンコーダとビデオデコーダの両方においてＳＡＯ処理のために使用され得る、ＳＡＯオフセット値のインデックス付きセットを含む、コードブックを使用することを提案する。
【００６９】
[0066]動作において、本開示で説明される技法は、ビデオコード化プロセスにおいてＳＡＯオフセット値をコード化することができる。一例として、ビデオエンコーダ２０は、本開示で説明される技法を実施して、本明細書で説明されるＳＡＯプロセスに従ってＳＡＯオフセット値を決定し、ＳＡＯオフセット値の間の関係を利用して符号化ＳＡＯオフセット値を生成するように最適化されている統計的に無損失のコード化プロセスに従って、ＳＡＯオフセット値をコード化するように構成され得る。同様に、ビデオデコーダ３０は、本開示で説明される技法を実施して、本明細書で説明されるＳＡＯ信号伝達と解析技法とに従ってＳＡＯオフセット値を決定するように構成され得る。
【００７０】
[0067]一例では、ビデオエンコーダ２０は、ＳＡＯオフセット値の異なるセットをコード化するための複数のコードを定義する、ＳＡＯオフセット値のコードブックを記憶することによって、ＳＡＯオフセット値をコード化することができる。ビデオエンコーダ２０は、ＳＡＯオフセット値をコード化するためにコードブックが使用されたことを示すためのビットをビットストリーム中で信号伝達し、使用されたＳＡＯオフセット値の特定のセットを示すためのインデックスをコードブックに信号伝達することができる。コードブックは、ビデオエンコーダ２０とビデオデコーダ３０の両方において事前に定義され記憶され得る。一例では、コードブックは、ビデオエンコーダ２０及び／又はビデオデコーダ３０におけるメモリに記憶された参照テーブル（ＬＵＴ）であり得る。
【００７１】
[0068]他の例では、事前に定義されたコードブックを記憶するのではなく、ビデオエンコーダ２０は、コードブックに記憶されるべきＳＡＯオフセット値を適応的に決定し、スライスヘッダ、適応パラメータセット（ＡＰＳ）、シーケンスパラメータセット（ＳＰＳ）、及びピクチャパラメータセット（ＰＰＳ）の１つ又は複数において、適応的に決定されたコードブックを信号伝達することができる。ビデオエンコーダ２０は、幾つかの例では、以前に信号伝達された、又はビデオデコーダ３０に記憶された任意の他のコードブックを適応的に決定されたコードブックが置き換えるように、スライスデータ、スライスヘッダ、ＡＰＳ、ＳＰＳ、及びＰＰＳの１つ又は複数において、適応的に決定されたコードブックを信号伝達することができる。あるいは、ビデオエンコーダは、幾つかの例では、以前に信号伝達された、又は符号化ＳＡＯオフセット値を復号するために使用されるビデオデコーダ３０に記憶された任意の他のコードブックを適応的に決定されたコードブックが補足するように、スライスデータ、スライスヘッダ、ＡＰＳ、ＳＰＳ、及びＰＰＳの１つ又は複数において、適応的に決定されたコードブックを信号伝達することができる。
【００７２】
[0069]他の例では、ビデオエンコーダ２０は、コードブック中のＳＡＯオフセット値のセットのインデックスをコード化するのではなく、ＨＭ及びＨＥＶＣに関して上で説明されたもののような、統計的に無損失のコード化に従って、ＳＡＯオフセット値をコード化することができる。この例では、ビデオエンコーダ２０は、明示的に符号化されたＳＡＯオフセット値が、ＳＡＯコードブックに対するインデックスを符号化することよりも良好なレート歪み性能を提供するかどうかを決定することができる。この例では、ビデオエンコーダ２０は、レート歪みの最適化に基づいて、明示的に符号化されたＳＡＯオフセット値を信号伝達するか、ＳＡＯコードブックに対するインデックスを信号伝達するかのいずれかであり得る。
【００７３】
[0070]加えて、この決定が、明示的に符号化されたＳＡＯオフセット値と、コードブックによりコード化されたオフセット値とに関して行われる場合、ビデオエンコーダ２０は、コードブックによりコード化されたＳＡＯオフセット値が、明示的に符号化されたＳＡＯオフセット値よりも効率的に符号化されないと決定したことに応答して、符号化ＳＡＯオフセット値が明示的に符号化されたことを示すためのビットをビットストリーム中で信号伝達することができる。その上、ビデオエンコーダ２０は、上述のビットに続いて、明示的に符号化されたＳＡＯオフセット値をビットストリーム中で信号伝達することができる。
【００７４】
[0071]このようにして、本技法は全般に、ＳＡＯオフセット値のより効率的な符号化を可能にし得る。一般に、本技法は、次の選択肢のうちの１つによって、ＳＡＯに対するコードブックを定義することができる。  
選択肢１：サイズＮを伴う、デコーダ／エンコーダ内のオフセット値の事前に定義されたコードブックを使用する
選択肢２：スライスデータ／スライスヘッダ／ＡＰＳ／ＰＰＳ／ＳＰＳの１つを使用してサイズＮのコードブックを信号伝達するそのようなコードブックは、次の状況の１つ又は複数において参照及び／又は再使用され得る。  
・同じレイヤ内（例えば、１つのフレーム／区分／ＬＣＵからのコードブックは、他のフレーム／区分／ＬＣＵのオフセットに対するコードブックを予測するために使用され得る）
・スケーラブルビデオコード化（ＳＶＣ）における異なるレイヤの間（例えば、基本レイヤからのコードブックは、強化レイヤに対するコードブックを予測するために再使用又は使用され得る）
・マルチビュービデオコード化（ＭＶＣ）における異なるビューの間（例えば、あるビューからのコードブックは、他のビューに対するコードブックを予測するために再使用又は使用され得る）
選択肢３：選択肢１よりも選択肢２を優先する可能性を伴って選択肢１を使用する
選択肢４：選択肢２の信号伝達プロセスによる、オフセット値の追加のセットのコードブックへの追加の可能性を伴う選択肢１
[0072]選択肢１は、サイズＮのＳＡＯオフセット値を記憶するための、適応的に決定されたものではなく事前に定義されたコードブックを、ビデオエンコーダ及びビデオデコーダが記憶する例を指す。即ち、コードブックは、ＳＡＯオフセット値のＮ個の異なるセットを記憶することができる。例えば、エッジタイプＳＡＯオフセットでは、コードブック中の各エントリーは、４つのオフセット値を含み得る。帯域タイプＳＡＯオフセットでは、コードブック中の各エントリーは、１６個のオフセット値を含み得る。
【００７５】
[0073]一例では、各エッジオフセットタイプ又は帯域オフセットタイプに対する別個のコードブックであり得る。別の例では、全てのＳＡＯタイプ（即ち、各エッジタイプ及び各帯域タイプ）に対するＳＡＯオフセット値の組合せの全てを含む、単一のコードブックであり得る。ビデオエンコーダ２０は、決定されたＳＡＯオフセットタイプに基づいて、コードブックからオフセット値の対応するセットの１つを選択して、符号化プロセスの間にＳＡＯを実行する。この決定は、レート歪みの最適化に基づき得る。ビデオエンコーダ２０は次いで、コードブックに対するインデックスを、符号化ビデオビットストリーム中へと信号伝達し、オフセット値のどのセットが使用されたかを示す。複数のコードブックがＳＡＯタイプごとに使用される例では、ビデオエンコーダ２０はまた、特定のコードブックが使用されていることを示すための、１つ又は複数のビットを信号伝達することができる。ビデオデコーダ３０は次いで、信号伝達されるビットに従って、ビデオデコーダに記憶されたコードブック中のオフセット値にアクセスする。
【００７６】
[0074]選択肢２は、ビデオエンコーダがコードブックを適応的に決定し、スライスデータ、スライスヘッダ、ＡＰＳ、ＰＰＳ、又はＳＰＳを介してこのコードブックをビデオデコーダに信号伝達する、上記の例を指す。幾つかの例では、コードブックは、複数の異なるフレーム、区分、最大コード化単位（ＬＣＵ）によって参照される。即ち、第１のフレーム、区分（例えば、スライス）、及び／又はＬＣＵを復号する際に使用するために信号伝達されるコードブックは、第２の異なるフレーム、区分、及び／又はＬＣＵによって参照され得る。同様に、複数のフレーム、区分、及び／又はＬＣＵが同じコードブックを参照し得る技法のこの態様は、スケーラブルビデオコード化（ＳＶＣ）及び／又はマルチビュービデオコード化（ＭＶＣ）に対応するように拡張され得る。
【００７７】
[0075]ＳＶＣの例は、全体が参照によって本明細書に組み込まれる、Ｈ．２６４／ＡＶＣ規格の付録Ｇにおいて記述されるＳＶＣ処理である。ＳＶＣは、ＨＥＶＣのような他のコード化規格のために開発され、又はそれに適用され得る。ＳＶＣにおいて、基本レイヤを補足するために、しばしば、ビデオデータが表示され得る空間解像度又は時間解像度を向上させるために、１つ又は複数の強化レイヤがコード化され得る。即ち、基本レイヤは、第１の低い空間解像度又は時間解像度でビデオデータを表し得る。追加の強化レイヤは、基本レイヤを補足して、基本レイヤと比較して空間解像度又は時間解像度を向上させることができる。ＳＶＣは一般に、同じビットストリームがビットストリーム（例えば、基本レイヤ）の低解像度のサブセットを復号することが可能な基本ビデオデコーダによって消費され得るが、より進化したビデオデコーダが追加のレイヤとともに基本レイヤを復号してより高解像度のビデオデータを提供することが可能であり得るという点で、より古いハードウェアに対する前方互換性を可能にし得る。選択肢２は、コードブックが複数のレイヤによって参照されることを可能にするために、ＳＶＣに関して実施され得る。例えば、基本レイヤからのコードブックは、１つ又は複数の強化レイヤにおいて使用するためのコードブックを予測するために使用され得る（例えば、差分予測）。別の例では、基本レイヤのために使用されるコードブックは単に、１つ又は複数の強化レイヤに対して再使用され得る。
【００７８】
[0076]マルチビュービデオコード化（ＭＶＣ）は、ビデオデータの複数のビューをコード化するためのビデオコード化処理である。ＳＶＣと同様に、ＭＶＣプロセスの例は、Ｈ．２６４／ＡＶＣに対する付録として定義される。より具体的には、ＭＶＣプロセスは、全体が参照によって本明細書に組み込まれる、Ｈ．２６４／ＡＶＣ規格の付録Ｈにおいて記述される。ＭＶＣは、ＨＥＶＣのような他のコード化規格のために開発され、又はそれに適用され得る。ＭＶＣでは、各ビューは、共通のシーンの対応するビデオデータが撮影された異なる視点又は角度に対応する。ＭＶＣは、インタービュー予測（２つの異なるビューの間の予測を意味する）とイントラビュー予測（同じビュー内の予測を意味する）とを実現する。選択肢２は、コードブックが複数のビューによって参照されることを可能にするために、ＭＶＣに関して実施され得る。例えば、１つのビュー（例えば、基本ビュー）からのコードブックは、１つ又は複数の異なるビューにおいて使用されるべきコードブックを予測するために使用され得る。別の例では、基本ビューのために使用されるコードブックは単に、１つ又は複数の他のビューのために再使用され得る。
【００７９】
[0077]選択肢３は、選択肢１及び選択肢２の例示的な組合せを指し、このとき、ビデオエンコーダ及びビデオデコーダは、ビデオエンコーダによって適応的に決定され信号伝達されるコードブックによって選択的に置き換えられ得る、事前に定義されるコードブックを記憶する。選択肢４は、選択肢１及び選択肢２の組合せを指し、このとき、ビデオエンコーダ及びビデオデコーダは、ビデオエンコーダ２０によって決定され信号伝達されるループフィルタパラメータ（例えば、ＳＡＯオフセット値）の１つ又は複数のセットによって補強され得る、事前に定義されるコードブックを記憶する。即ち、ビデオエンコーダ２０は、ビデオデコーダ３０において記憶されるコードブックに追加され得る、ループフィルタパラメータのセットを信号伝達することができる。
【００８０】
[0078]エッジタイプＳＡＯに対するＳＡＯオフセット値を記憶するコードブックの一例は次の通りである。
【００８１】
(2,1,1,2)
(1,1,1,1)
(1,0,0,1)
(2,0,0,2)
(2,0,1,2)
(2,1,0,2)
[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]ループフィルタユニット６６は、ループフィルタリングプロセスにおいて使用するためのループフィルタパラメータの特定のセットを決定し、ループフィルタパラメータの特定のセットがコードブックに記憶されるか否かを示す指示を信号伝達し、このとき、コードブックが複数のエントリーを含み、コードブック中のエントリーの各々がループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、コードブックがビデオデータの１つ又は複数のブロックに対して適用可能であり、更に、ループフィルタパラメータの特定のセットに基づいて、ビデオデータの１つ又は複数のブロックに対してループフィルタリングプロセスを実行するように構成され得る。ループフィルタユニット６６は更に、コードブック中のループフィルタパラメータの特定のセットに対するエントリーを定義する、１つ又は複数のシンタックス要素を信号伝達するように構成され得る。
【０１０６】
[0104]他の例では、ループフィルタユニット６６は更に、コードブックを適応的に決定するように構成され得る。これらの例では、エントロピー符号化ユニット５６はまた更に、スライスデータ、スライスヘッダ、ＡＰＳ、ＳＰＳ、及びＰＰＳの１つ又は複数において適応的に決定されたコードブックを信号伝達するように構成され得る。
【０１０７】
[0105]図３は、本開示の技法と一致する、ビデオコード化プロセスにおいてＳＡＯオフセット値をコード化するための技法を実行することができるビデオデコーダの例を示すブロック図である。図３の例では、ビデオデコーダ３０は、エントロピー復号ユニット８０と、予測モジュール８２と、逆量子化ユニット８８と、逆変換モジュール９０と、加算器９２と、ループフィルタユニット９４と、参照フレームメモリ９６とを含む。予測モジュール８２は、動き補償ユニット８４と、イントラ予測モジュール８６とを含む。ビデオデコーダ３０は、幾つかの例では、図２のビデオエンコーダ２０に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。
【０１０８】
[0106]復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化されたビデオスライスのビデオブロックと関連するシンタックス要素とを表す、符号化されたビデオビットストリームを受信する。ビットストリーム中に表されたビデオブロックが圧縮されたビデオデータを含むとき、ビデオデコーダ３０のエントロピー復号ユニット８０はビットストリームをエントロピー復号して、量子化係数と、動きベクトルと、他のシンタックス要素とを生成する。エントロピー復号ユニット８０は、予測モジュール８２に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ３０は、ビデオスライスレベル及び／又はビデオブロックレベルでシンタックス要素を受信し得る。
【０１０９】
[0107]ビデオスライスがイントラコード化された（Ｉ）スライスとしてコード化されるとき、予測モジュール８２のイントラ予測モジュール８６は、信号伝達されたイントラ予測モードと、現在のフレーム又はピクチャの、以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化された（即ち、Ｂ、Ｐ又はＧＰＢ）スライスとしてコード化されるとき、予測モジュール８２の動き補償ユニット８４は、エントロピー復号ユニット８０から受信された動きベクトル及び他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つの中の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、参照フレームメモリ９６に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、即ち、リスト０とリスト１とを構成し得る。
【０１１０】
[0108]動き補償ユニット８４は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在のビデオブロックの予測ブロックを生成する。例えば、動き補償ユニット８４は、ビデオスライスのビデオブロックをコード化するために使用される予測モード（例えば、イントラ又はインター予測）と、インター予測スライスタイプ（例えば、Ｂスライス、Ｐスライス、又はＧＰＢスライス）と、スライスの参照ピクチャリストのうちの１つ又は複数に対する構成情報と、スライスの各々のインター符号化されたビデオブロックの動きベクトルと、スライスの各々のインターコード化されたビデオブロックのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素の幾つかを使用する。
【０１１１】
[0109]動き補償ユニット８４はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット８４は、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用して、参照ブロックのサブ整数画素の補間された値を計算し得る。動き補償ユニット８４は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【０１１２】
[0110]逆量子化ユニット８８は、ビットストリーム中で与えられエントロピー復号ユニット８０によって復号された、量子化された変換係数を逆量子化（inverse quantize）、即ち、逆量子化（de-quantize）する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中の各ビデオブロックに対してビデオエンコーダ２０によって計算される量子化パラメータ（ＱＰ）の使用を含み得る。逆変換モジュール９０は、逆変換、例えば、逆ＤＣＴ、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用して、画素領域において残差ブロックを生成する。
【０１１３】
[0111]動き補償ユニット８４が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換モジュール９０からの残差ブロックを動き補償ユニット８４によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器９２は、この加算演算を実行する１つ又は複数のコンポーネントを表す。ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタリングするためのデブロッキングフィルタが適用され得る。加えて、上で説明されたように、ループフィルタユニット９４は、上で説明された技法に従って、ＳＡＯ及び／又は適応ループフィルタプロセスを実行することができる。いずれの場合でも、所与のフレーム又はピクチャ中の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照フレームメモリ９６に記憶される。参照フレームメモリ９６はまた、図１の表示装置２８などの表示装置上で後で表示するために、復号されたビデオを記憶する。
【０１１４】
[0112]幾つかの例では、ビデオデコーダ３０は、例えば、ビデオエンコーダ２０及び／又は記憶機器２４からのビットストリーム中で受信される、ビデオコード化プロセスの間にビデオデータの１つ又は複数のブロックを復号するように構成され得る。例えば、以前に説明されたように、１つ又は複数のブロックは、ビデオデータのフレームの１つ又は複数のスライス内に、又は、ビデオデータの複数のフレームのスライス内に含まれ得る。一例として、１つ又は複数のブロックを復号することの一部として、ビデオデコーダ３０のループフィルタユニット９４は、例えば、符号化された１つ又は複数のブロックとともにビデオデコーダ３０及び／又は記憶機器２４からビットストリーム中でも受信される、１つ又は複数のＳＡＯオフセット値を復号するように構成され得る。前にも説明されたように、１つ又は複数のＳＡＯオフセット値は、１つ又は複数のブロックを符号化するためにビデオエンコーダ（例えば、ビデオエンコーダ２０）によって以前に使用された可能性があり、１つ又は複数のブロックを復号するためにビデオデコーダ３０によって現在使用されている可能性がある。
【０１１５】
[0113]例えば、ループフィルタユニット９４は、ループフィルタリングプロセスを実行するためにコードブックを使用するか否かを示す指示を受信し、このとき、コードブックが複数のエントリーを含み、コードブック中のエントリーの各々がループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、コードブックがビデオデータの１つ又は複数のブロックに対して適用可能であり、更に、受信された指示に基づいて、ビデオデータの１つ又は複数のブロックに対してループフィルタリングプロセスを実行するように構成され得る。
【０１１６】
[0114]ループフィルタユニット９４は更に、コードブック中の特定のエントリーを定義する１つ又は複数のシンタックス要素を受信し、受信された１つ又は複数のシンタックス要素に基づいて、コードブックからループフィルタパラメータの特定のエントリーを取り出し、受信された指示及び取り出されたループフィルタパラメータに基づいて、ビデオデータの１つ又は複数のブロックに対してループフィルタリングプロセスを実行するように構成され得る。一例では、ループフィルタリングプロセスは適応ループフィルタＡＬＦであり、ループフィルタパラメータはＡＬＦ係数を備える。別の例では、ループフィルタリングプロセスはサンプル適応オフセット（ＳＡＯ）フィルタであり、ループフィルタパラメータはＳＡＯオフセット値を備える。
【０１１７】
[0115]図６〜図７は、本開示の技法と一致する、ビデオコード化プロセスにおいてＳＡＯオフセット値をコード化する例示的な方法を示すフローチャートである。図６及び図７の技法は一般に、ハードウェアで実装されるか、ソフトウェアで実装されるか、ファームウェアで実装されるか、又はこれらの組合せで実装されるかにかかわらず、任意の処理ユニット又はプロセッサによって実行されてよく、ソフトウェア又はファームウェアで実装される場合、対応するハードウェアが、ソフトウェア又はファームウェアのための命令を実行するために設けられ得る。
【０１１８】
[0116]例として、図６〜図７の技法が、ビデオエンコーダ２０（図１及び図２）とビデオデコーダ３０（図１及び図３）の両方、更にはこれらの様々なコンポーネント（例えば、ループフィルタユニット６６及びループフィルタユニット９４）に関して説明されるが、他の機器が同様の技法を実行するように構成され得ることを理解されたい。即ち、ビデオデコーダ３０は一般に、エントロピーコード化に関して、ビデオエンコーダ２０によって実行される方法と逆の方法を実行するように構成される。従って、ビデオエンコーダ２０及びビデオデコーダ３０は、この例では、同様の（逆ではあるが）コード化方法を実行するように構成される。しかしながら、ビデオエンコーダ及び／又はビデオデコーダは、特定の方法を実行するように個々に構成され得ることを理解されたい。その上、本開示の技法から逸脱することなく、図６〜図７に示されるステップは、異なる順序で、又は並列に実行されてよく、追加のステップが追加されてよく、幾つかのステップが省略されてよい。
【０１１９】
[0117]図６は、本開示の技法による例示的な復号方法のフローチャートである。一例では、ビデオデコーダ３０は、ループフィルタリングプロセスを実行するためにコードブックを使用するか否かを示す指示を受信するように構成されてよく、コードブックが複数のエントリーを含み、コードブック中のエントリーの各々がループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、コードブックがビデオデータの１つ又は複数のブロックに対して適用可能である（６００）。コードブックが使用されるべきではないことをその指示が示す場合、ビデオデコーダ３０は更に、信号伝達されたループフィルタリングパラメータを使用して、ビデオデータの１つ又は複数のブロックに対するループフィルタリングプロセスを実行するように構成され得る（６１０）。即ち、ループフィルタリングパラメータは、明示的にビデオデコーダ３０に信号伝達され、コードブックから取り出されない。
【０１２０】
[0118]コードブックが使用されるべきであることを指示が示す場合、ビデオデコーダ３０は更に、コードブック中の特定のエントリーを定義する１つ又は複数のシンタックス要素を受信するように構成され得る（６２０）。ビデオデコーダ３０は次いで、受信された１つ又は複数のシンタックス要素に基づいて、コードブックからループフィルタパラメータの特定のエントリーを取り出し（６３０）、受信された指示及び取り出されたループフィルタパラメータに基づいて、ビデオデータの１つ又は複数のブロックに対してループフィルタリングプロセスを実行することができる（６４０）。
【０１２１】
[0119]上の１つ又は複数の例では、コードブックによって定義される複数のエントリーの１つ又は複数の各々は、固定長のコードワード、単位コードワード、及び指数ゴロムコードワードの１つを備える。
【０１２２】
[0120]一例では、上で論じられた技法は、ループフィルタリングプロセスが適応ループフィルタＡＬＦであるときに実行され得る。この例では、ループフィルタパラメータはＡＬＦ係数を備える。
【０１２３】
[0121]別の例では、上で論じられた技法は、ループフィルタリングプロセスがサンプル適応オフセット（ＳＡＯ）フィルタであるときに実行され得る。この例では、ループフィルタパラメータはＳＡＯオフセット値を備える。
【０１２４】
[0122]本開示の１つ又は複数の例では、コードブックがビデオデータの１つ又は複数のブロックに対してＳＡＯフィルタを実行するために使用されるべきであることを、指示が示す。例えば、ビデオデコーダ３０は更に、スライスヘッダ、適応パラメータセット（ＡＰＳ）、シーケンスパラメータセット（ＳＰＳ）、及びピクチャパラメータセット（ＰＰＳ）の１つ又は複数において指示を受信するように構成され得る。
【０１２５】
[0123]本開示の一例では、ビデオデコーダ３０は、事前に定義されたコードブックをメモリに記憶する。別の例では、コードブックは事前に定義されないが、代わりに、ビデオデコーダ３０は、スライスデータ、スライスヘッダ、ＡＰＳ、ＳＰＳ、及びＰＰＳの１つ又は複数においてコードブックを受信する。
【０１２６】
[0124]本開示はこの状況を扱うための様々な例を提示し、このとき、コードブックがビデオデータの１つ又は複数のブロックに対してＳＡＯフィルタを実行するために使用されるべきではないことを、指示が示す。一例では、ビデオデコーダ３０は更に、ビデオデータの１つ又はブロックとともに使用するための追加のループフィルタパラメータセットを受信し、コードブックの代わりに受信された追加のループフィルタパラメータを使用してループフィルタリング処理を実行するように構成される。別の例では、ビデオデコーダ３０は更に、コードブックへの追加のエントリーとして設定される、受信された追加のループフィルタパラメータを追加するように構成される。
【０１２７】
[0125]本開示の他の例は、ＳＶＣ及びＭＶＣにおいてレイヤとビューの間でコードブックを予測し再使用するための技法を提示する。一例では、コードブックは第１のコードブックであり、第１のコードブックは、スケーラブルビデオデータの基本レイヤにおけるビデオデータの１つ又は複数のブロックに対応する。一例では、ビデオデコーダ３０は更に、第１のコードブックから、ビデオデータの１つ又は複数の強化レイヤに対する第２のコードブックを予測するように構成される。別の例では、ビデオデコーダ３０は、ビデオデータの１つ又は複数の強化レイヤに対するコードブックを再使用するように構成される。
【０１２８】
[0126]別の例では、コードブックは第１のコードブックであり、第１のコードブックは、マルチビュービデオデータの基本ビューにおけるビデオデータの１つ又は複数のブロックに対応する。一例では、ビデオデコーダ３０は更に、第１のコードブックから、マルチビュービデオデータの１つ又は複数の追加のビューに対する第２のコードブックを予測するように構成される。別の例では、ビデオデコーダ３０は更に、マルチビュービデオデータの１つ又は複数の追加のビューに対するコードブックを再使用するように構成される。
【０１２９】
[0127]図７は、本開示の技法による例示的な復号方法のフローチャートである。一例では、ビデオエンコーダ２０は、ループフィルタリングプロセスにおいて使用するためのループフィルタパラメータの特定のセットを決定し（７００）、ループフィルタパラメータの特定のセットがコードブックに記憶されているか否かを示す指示を信号伝達する（７１０）ように構成され得る。コードブックは複数のエントリーを含み、コードブック中のエントリーの各々はループフィルタリングプロセスに対するループフィルタパラメータのセットを備え、コードブックがビデオデータの１つ又は複数のブロックに対して適用可能である。
【０１３０】
[0128]コードブックが使用されるべきではないことを指示が示す場合、ビデオエンコーダ２０は、ビデオデータの１つ又はブロックとともに使用するための追加のループフィルタパラメータを信号伝達するように構成され得る（７２０）。コードブックが使用されるべきであることを指示が示す場合、ビデオエンコーダ２０は、コードブック中のループフィルタパラメータの特定のセットに対するエントリーを定義する、１つ又は複数のシンタックス要素を信号伝達するように構成され得る（７３０）。ビデオエンコーダ２０は次いで、ループフィルタパラメータの特定のセットに基づいて、ビデオデータの１つ又は複数のブロックに対するループフィルタリングプロセスを実行することができる（７４０）。
【０１３１】
[0129]上の１つ又は複数の例では、コードブックによって定義される複数のエントリーの１つ又は複数の各々は、固定長のコードワード、単位コードワード、及び指数ゴロムコードワードの１つを備える。
【０１３２】
[0130]一例では、上で論じられた技法は、ループフィルタリングプロセスが適応ループフィルタＡＬＦであるときに実行され得る。この例では、ループフィルタパラメータはＡＬＦ係数を備える。
【０１３３】
[0131]別の例では、上で論じられた技法は、ループフィルタリングプロセスがサンプル適応オフセット（ＳＡＯ）フィルタであるときに実行され得る。この例では、ループフィルタパラメータはＳＡＯオフセット値を備える。
【０１３４】
[0132]本開示の１つ又は複数の例では、コードブックがビデオデータの１つ又は複数のブロックに対してＳＡＯフィルタを実行するために使用されるべきであることを、指示が示す。例えば、ビデオエンコーダ２０は更に、スライスヘッダ、適応パラメータセット（ＡＰＳ）、シーケンスパラメータセット（ＳＰＳ）、及びピクチャパラメータセット（ＰＰＳ）の１つ又は複数において指示を信号伝達するように構成され得る。
【０１３５】
[0133]本開示の一例では、ビデオエンコーダ２０は、事前に定義されたコードブックをメモリに記憶する。別の例では、コードブックは事前に定義されないが、代わりに、ビデオエンコーダ２０は、スライスデータ、スライスヘッダ、ＡＰＳ、ＳＰＳ、及びＰＰＳの１つ又は複数においてコードブックを信号伝達する。
【０１３６】
[0134]本開示はこの状況を扱うための様々な例を提示し、このとき、コードブックがビデオデータの１つ又は複数のブロックに対してＳＡＯフィルタを実行するために使用されるべきではないことを、指示が示す。一例では、ビデオエンコーダ２０は更に、ビデオデータの１つ又はブロックとともに使用するための追加のループフィルタパラメータセットを信号伝達し、コードブックの代わりに信号伝達された追加のループフィルタパラメータを使用してループフィルタリング処理を実行するように構成される。別の例では、ビデオエンコーダ２０は更に、コードブックへの追加のエントリーとして設定される、信号伝達された追加のループフィルタパラメータを追加するように構成される。
【０１３７】
[0135]１つ又は複数の例では、本明細書に説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。各機能は、ソフトウェアで実装される場合、１つ又は複数の命令又はコードとしてコンピュータ可読媒体上に記憶されてよく、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形又は非一時的な媒体に対応してもよい、コンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は全般に、（１）非一時的である有形コンピュータ可読記憶媒体、又は（２）信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コード及び／又はデータ構造を取り出すために、１つ又は複数のコンピュータあるいは１つ又は複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【０１３８】
[0136]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭ又は他の光ディスク記憶、磁気ディスク記憶、又は他の磁気記憶機器、フラッシュメモリ、あるいは、命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモート発信源から送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体（transient media）を含まないが、代わりに非一時的（non-transient）又は非一時的（non-transitory）有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）及びディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）及びブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１３９】
[0137]命令は、１つ又は複数の汎用マイクロプロセッサなどの１つ又は複数のプロセッサ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用される「プロセッサ」という用語は、前述の構造、又は本開示で説明される技法の実装に適切な他の構造のいずれかを指し得る。加えて、幾つかの態様では、本明細書で説明された機能は、符号化及び復号のために構成された専用のハードウェア及び／又はソフトウェアモジュール内で提供されてよく、あるいは複合コーデックに組み込まれてよい。また、本技法は、１つ又は複数の回路又は論理要素中で完全に実装され得る。
【０１４０】
[0138]本開示の技法は、ワイヤレスハンドセット、ＩＣ又はＩＣのセット（例えば、チップセット）を含む、多種多様な機器又は装置において実装され得る。本開示では、開示される技法を実行するように構成された機器の機能的態様を強調するために、様々なコンポーネント、モジュール、又はユニットが説明されたが、それらのコンポーネント、モジュール、又はユニットは、必ずしも異なるハードウェアコンポーネント、モジュール又はユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、適切なソフトウェア及び／又はファームウェアとともに、上で説明された１つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされてもよく、又は相互動作可能なハードウェアユニットの集合によって与えられてもよい。
【０１４１】
[0139]様々な例が説明されてきた。これら及び他の例は、以下の特許請求の範囲内に入る。
【図１】
2015511472.tif 000003
【図２】
2015511472.tif 000004
【図３】
2015511472.tif 000005
【図４】
2015511472.tif 000006
【図５】
2015511472.tif 000007
【図６】
2015511472.tif 000008
【図７】
2015511472.tif 000009
【国際調査報告】
2015511472.tif 000010
2015511472.tif 000011