(57)【特許請求の範囲】
【請求項１】
方法であって、
非一時的なコンピュータ可読媒体に記憶された命令を実行するプロセッサによって符号化ビットストリームを復号化することにより再構成フレームを生成すること、
前記再構成フレームを出力すること、を備え、
前記復号化することが、
前記符号化ビットストリームの一部を復号化することによって復号化ブロックを生成すること、
前記符号化ビットストリームから第１のデブロッキング閾値インデックスであって、第１の定義済みのデブロッキング閾値のセットを示す第１のデブロッキング閾値インデックスを特定すること、
前記符号化ビットストリームから第２のデブロッキング閾値インデックスであって、第２の定義済みのデブロッキング閾値のセットを示す第２のデブロッキング閾値インデックスを特定すること、
前記復号化ブロックに基づいて再構成ブロックを生成することであって、前記第１の定義済みのデブロッキング閾値のセットと前記第２の定義済みのデブロッキング閾値のセットとに基づいてデブロッキングすることを含む、前記再構成ブロックを生成すること、
前記再構成ブロックを前記再構成フレーム内に含めること、
を含み、
前記再構成フレームを生成することにおいて、
前記第１のデブロッキング閾値インデックスが垂直デブロッキング閾値インデックスである場合におけるデブロッキングが、前記第１のデブロッキング閾値インデックスに基づく垂直デブロッキングと、前記第２のデブロッキング閾値インデックスに基づく水平デブロッキングとを含み、
前記第１のデブロッキング閾値インデックスが水平デブロッキング閾値インデックスである場合におけるデブロッキングが、前記第１のデブロッキング閾値インデックスに基づく水平デブロッキングと、前記第２のデブロッキング閾値インデックスに基づく垂直デブロッキングとを含み、
前記デブロッキングすることが、現在のデブロッキング閾値インデックスに基づいて現在のデブロッキング閾値を特定することを含み、
前記現在のデブロッキング閾値インデックスが前記第１のデブロッキング閾値インデックスである場合に、前記現在のデブロッキング閾値が前記第１の定義済みのデブロッキング閾値のセットのうちの第１のデブロッキング閾値であり、
前記現在のデブロッキング閾値インデックスが前記第２のデブロッキング閾値インデックスである場合に、前記現在のデブロッキング閾値が前記第２の定義済みのデブロッキング閾値のセットのうちの第２のデブロッキング閾値であり、
前記現在のデブロッキング閾値を特定することが、
前記現在のデブロッキング閾値インデックスに基づいて複数のデブロッキング閾値から現在のデブロッキング閾値のセットを特定すること、
現在の方向における前記復号化ブロックの現在のブロック境界に対応する現在の最小変換ブロックサイズを特定すること、
前記現在の最小変換ブロックサイズに基づいて、前記現在のデブロッキング閾値のセットからデブロッキング閾値のサブセットを前記現在のデブロッキング閾値として特定すること、を含み、
前記現在のデブロッキング閾値インデックスが前記第１のデブロッキング閾値インデックスである場合、前記現在のデブロッキング閾値のセットは、前記第１の定義済みのデブロッキング閾値のセットであり、
前記現在のデブロッキング閾値インデックスが前記第２のデブロッキング閾値インデックスである場合、前記現在のデブロッキング閾値のセットは、前記第２の定義済みのデブロッキング閾値のセットである、方法。
【請求項２】
前記第１のデブロッキング閾値インデックスを特定することが、前記再構成フレームに対応するフレームヘッダから前記第１のデブロッキング閾値インデックスを抽出することを含む、請求項１に記載の方法。
【請求項３】
前記第２のデブロッキング閾値インデックスを特定することが、
前記符号化ビットストリームから差分デブロッキング閾値インデックス値を特定すること、
前記差分デブロッキング閾値インデックス値と前記第１のデブロッキング閾値インデックスとの合計を前記第２のデブロッキング閾値インデックスとして特定すること、
を含む、請求項１または２に記載の方法。
【請求項４】
前記現在のデブロッキング閾値を特定することが、
前記現在の最小変換ブロックサイズが前記現在のブロック境界と反対側の前記復号化ブロックの第２のブロック境界の第２の最小変換ブロックサイズとは異なると判定したことに応じて、前記現在のデブロッキング閾値が前記第２のブロック境界のデブロッキング閾値とは異なるように前記現在のデブロッキング閾値を特定すること、
前記現在の最小変換ブロックサイズが前記第２の最小変換ブロックサイズに等しいと判定したことに応じて、前記第２のブロック境界のデブロッキング閾値を前記現在のデブロッキング閾値として特定すること、を含む、請求項１に記載の方法。
【請求項５】
前記デブロッキングすることが、
現在のデブロッキング判定が前記現在のブロック境界をデブロッキングすることを示していることに応じて、前記現在のブロック境界をデブロッキングすること、
前記現在のデブロッキング判定を生成することであって、
前記現在の方向に沿った前記復号化ブロックのピクセル値に基づいて現在の平坦度係数を特定すること、
前記現在の平坦度係数が前記現在のデブロッキング閾値に基づくデブロッキング判定閾値を超えていると判定したことに応じて、前記現在のデブロッキング判定をデブロッキングの省略を示すものとして特定すること、
前記現在の方向に沿った隣接する復号化ブロックのピクセル値に基づいて隣接平坦度係数を特定すること、
前記隣接平坦度係数が前記デブロッキング判定閾値を超えていると判定したことに応じて、前記現在のデブロッキング判定をデブロッキングの省略を示すものとして特定すること、
前記現在の平坦度係数が前記デブロッキング判定閾値内にあり、かつ前記隣接平坦度係数が前記デブロッキング判定閾値内にあると判定したことに応じて、前記現在のデブロッキング判定を、デブロッキングすることを示すものとして特定すること、
によって前記現在のデブロッキング判定を生成すること
を含む、請求項１または４に記載の方法。
【請求項６】
前記現在のブロック境界をデブロッキングすることが、
前記デブロッキング閾値のサブセットからデブロッキングフィルタ閾値を特定すること、
前記デブロッキングフィルタ閾値に従って、デブロッキングフィルタパラメータを用いて前記現在のブロック境界をデブロッキングすること、を含む、請求項４または５に記載の方法。
【請求項７】
方法であって、
非一時的なコンピュータ可読媒体に記憶された命令を実行するプロセッサによって入力フレームを符号化することにより符号化フレームを生成することであって、
前記符号化フレームを復号化することによって復号化フレームを生成すること、
前記復号化フレームを再構成することによって再構成フレームを生成することであって、
前記復号化フレームをデブロッキングするための複数のデブロッキング閾値インデックスから共有デブロッキング閾値インデックスであって、第１の定義済みのデブロッキング閾値のセットを特定する共有デブロッキング閾値インデックスを特定すること、
前記複数のデブロッキング閾値インデックスから第１のデブロッキング閾値インデックスであって、第２の定義済みのデブロッキング閾値のセットを特定する第１のデブロッキング閾値インデックスを特定することであって、前記復号化フレームをデブロッキングするために前記共有デブロッキング閾値インデックスを第２のデブロッキング閾値インデックスとして使用することを含む、前記第１のデブロッキング閾値インデックスを特定すること、
前記複数のデブロッキング閾値インデックスから前記第２のデブロッキング閾値インデックスであって、第３の定義済みのデブロッキング閾値のセットを特定する前記第２のデブロッキング閾値インデックスを特定することであって、前記復号化フレームをデブロッキングするために前記第１のデブロッキング閾値インデックスを使用することを含む、前記第２のデブロッキング閾値インデックスを特定すること、
を含む前記復号化フレームを再構成すること、
前記符号化フレームと、前記第１のデブロッキング閾値インデックスの表示と、前記第２のデブロッキング閾値インデックスの表示とを含む出力ビットストリームを生成すること、
を含む前記符号化すること、
前記出力ビットストリームを出力すること、
を備え、
前記再構成フレームを生成することが、
前記符号化フレームから符号化ブロックをデコードすることによって復号化ブロックを生成すること、
前記復号化ブロックに基づいて再構成ブロックを生成することであって、前記第１のデブロッキング閾値インデックスと前記第２のデブロッキング閾値インデックスとに基づいてデブロッキングすることを含む、前記再構成ブロックを生成すること、
前記再構成フレーム内に前記再構成ブロックを含めること、
を含み、
前記符号化することにおいて、
前記第１のデブロッキング閾値インデックスが垂直デブロッキング閾値インデックスである場合におけるデブロッキングが、前記第１のデブロッキング閾値インデックスに基づく垂直デブロッキングと、前記第２のデブロッキング閾値インデックスに基づく水平デブロッキングとを含み、
前記第１のデブロッキング閾値インデックスが水平デブロッキング閾値インデックスである場合におけるデブロッキングが、前記第１のデブロッキング閾値インデックスに基づく水平デブロッキングと、前記第２のデブロッキング閾値インデックスに基づく垂直デブロッキングとを含む、方法。
【請求項８】
前記出力ビットストリームを生成することが、
前記符号化フレームに対応するフレームヘッダ内に前記第１のデブロッキング閾値インデックスの表示を含めることか、または、
前記第１のデブロッキング閾値インデックスと前記第２のデブロッキング閾値インデックスとの差を差分デブロッキング閾値インデックス値として特定し、前記出力ビットストリーム内に前記差分デブロッキング閾値インデックス値を含めること、
のうちの少なくとも一方を含む、請求項７に記載の方法。
【請求項９】
前記共有デブロッキング閾値インデックスを特定することが、
複数の共有エラーメトリックを決定することであって、前記複数の共有エラーメトリックの各々が、前記入力フレームの一部分と、前記複数のデブロッキング閾値インデックスのうちの対応する１つを前記第１のデブロッキング閾値インデックスおよび前記第２のデブロッキング閾値インデックスとして用いて前記復号化フレームをデブロッキングすることにより生成される候補再構成フレームの対応する部分との差異に対応する、前記複数の共有エラーメトリックを決定すること、
前記複数の共有エラーメトリックのうちの最小共有エラーメトリックに対応する前記デブロッキング閾値インデックスを前記共有デブロッキング閾値インデックスとして特定すること、を含む、請求項８に記載の方法。
【請求項１０】
前記第１のデブロッキング閾値インデックスを特定することが、
複数の第１のエラーメトリックを決定することであって、前記複数の第１のエラーメトリックの各々が、前記入力フレームの一部分と、前記共有デブロッキング閾値インデックスを前記第２のデブロッキング閾値インデックスとして用いるとともに、前記共有デブロッキング閾値インデックス以外の前記複数のデブロッキング閾値インデックスのうちの対応する１つを前記第１のデブロッキング閾値インデックスとして用いて前記復号化フレームをデブロッキングすることにより生成される候補再構成フレームの対応する部分との差異に対応する、前記複数の第１のエラーメトリックを決定すること、
前記最小共有エラーメトリックを前記共有デブロッキング閾値インデックスに対応する第１のエラーメトリックとして前記複数の第１のエラーメトリック内に含めること、
前記複数の第１のエラーメトリックのうち最小の第１のエラーメトリックに対応するデブロッキング閾値インデックスを前記第１のデブロッキング閾値インデックスとして特定すること、を含む、請求項９に記載の方法。
【請求項１１】
前記第２のデブロッキング閾値インデックスを特定することが、
複数の第２のエラーメトリックを決定することであって、前記複数の第２のエラーメトリックの各々が、前記入力フレームの一部分と、前記第１のデブロッキング閾値インデックスを用いるとともに、前記第１のデブロッキング閾値インデックス以外の前記複数のデブロッキング閾値インデックスのうちの対応する１つを前記第２のデブロッキング閾値インデックスとして用いて前記復号化フレームをデブロッキングすることにより生成される候補再構成フレームの対応する部分との差異に対応する、前記複数の第２のエラーメトリックを決定すること、
前記最小の第１のエラーメトリックを前記第１のデブロッキング閾値インデックスに対応する第２のエラーメトリックとして前記複数の第２のエラーメトリック内に含めること、
前記複数の第２のエラーメトリックのうち最小の第２のエラーメトリックに対応するデブロッキング閾値インデックスを前記第２のデブロッキング閾値インデックスとして特定すること、を含む、請求項１０に記載の方法。
【請求項１２】
前記デブロッキングすることが、現在のデブロッキング閾値インデックスに基づいて現在のデブロッキング閾値を特定することを含み、
前記現在のデブロッキング閾値インデックスが前記第１のデブロッキング閾値インデックスである場合に、前記現在のデブロッキング閾値が前記第２の定義済みのデブロッキング閾値のセットのうちの第１のデブロッキング閾値であり、
前記現在のデブロッキング閾値インデックスが前記第２のデブロッキング閾値インデックスである場合に、前記現在のデブロッキング閾値が前記第３の定義済みのデブロッキング閾値のセットのうちの第２のデブロッキング閾値である、請求項１０または１１に記載の方法。
【請求項１３】
前記現在のデブロッキング閾値を特定することが、
前記現在のデブロッキング閾値インデックスに基づいて複数のデブロッキング閾値から現在のデブロッキング閾値のセットを特定すること、
現在の方向における前記復号化ブロックの現在のブロック境界に対応する現在の最小変換ブロックサイズを特定すること、
前記現在の最小変換ブロックサイズに基づいて、前記現在のデブロッキング閾値のセットからデブロッキング閾値のサブセットを前記現在のデブロッキング閾値として特定すること、を含み、
前記現在のデブロッキング閾値インデックスが前記第１のデブロッキング閾値インデックスである場合、前記現在のデブロッキング閾値のセットは、前記第２の定義済みのデブロッキング閾値のセットであり、
前記現在のデブロッキング閾値インデックスが前記第２のデブロッキング閾値インデックスである場合、前記現在のデブロッキング閾値のセットは、前記第３の定義済みのデブロッキング閾値のセットである、請求項１２に記載の方法。
【請求項１４】
前記現在のデブロッキング閾値を特定することが、
前記現在の最小変換ブロックサイズが前記現在のブロック境界と反対側の前記復号化ブロックの第２のブロック境界の第２の最小変換ブロックサイズとは異なると判定したことに応じて、前記現在のデブロッキング閾値が前記第２のブロック境界のデブロッキング閾値とは異なるように前記現在のデブロッキング閾値を特定すること、
前記現在の最小変換ブロックサイズが前記第２の最小変換ブロックサイズに等しいと判定したことに応じて、前記第２のブロック境界のデブロッキング閾値を前記現在のデブロッキング閾値として特定すること、を含む、請求項１３に記載の方法。
【請求項１５】
前記デブロッキングすることが、現在のデブロッキング判定が前記現在のブロック境界をデブロッキングすることを示していることに応じて、前記現在のブロック境界をデブロッキングすることを含む、請求項１３または１４に記載の方法。
【請求項１６】
方法であって、
非一時的なコンピュータ可読媒体に記憶された命令に応答するプロセッサによって再構成フレームを生成することであって、
符号化ビットストリームの一部を復号化することによって、復号化ブロックを含む復号化フレームを生成すること、
前記符号化ビットストリームから第１のデブロッキング閾値インデックスであって、第１の定義済みのデブロッキング閾値のセットを特定する第１のデブロッキング閾値インデックスを読み取ること、
前記符号化ビットストリームから前記第１のデブロッキング閾値インデックスとは異なる第２のデブロッキング閾値インデックスを特定すること、
前記第１のデブロッキング閾値インデックスに基づいて前記復号化フレームを第１の方向にデブロッキングすることにより部分デブロッキングフレームを生成すること、
前記第２のデブロッキング閾値インデックスに基づいて前記部分デブロッキングフレームを第２の方向にデブロッキングすることにより前記再構成フレームを生成すること、
によって前記再構成フレームを生成すること、
前記再構成フレームを出力すること、
を備え、
前記第１のデブロッキング閾値インデックスを読み取ることが、前記再構成フレームに対応するフレームヘッダから前記第１のデブロッキング閾値インデックスを抽出することを含み、
前記第２のデブロッキング閾値インデックスを特定することが、
前記再構成フレームに対応する前記フレームヘッダから前記第２のデブロッキング閾値インデックスを示す情報を抽出すること、
前記第２のデブロッキング閾値インデックスを示す情報が差分デブロッキング閾値インデックス値を含むと判定したことに応じて、前記差分デブロッキング閾値インデックス値と前記第１のデブロッキング閾値インデックスとの合計を前記第２のデブロッキング閾値インデックスとして特定すること、
前記第２のデブロッキング閾値インデックスを示す情報がデブロッキング閾値インデックスを含むと判定したことに応じて、前記デブロッキング閾値インデックスを前記第２のデブロッキング閾値インデックスとして特定すること、
を含み、
前記デブロッキングすることが、現在のデブロッキング閾値インデックスに基づいて現在のデブロッキング閾値を特定することを含み、
前記現在のデブロッキング閾値インデックスが前記第１のデブロッキング閾値インデックスである場合に、前記現在のデブロッキング閾値が前記第１の定義済みのデブロッキング閾値のセットのうちの第１のデブロッキング閾値であり、
前記現在のデブロッキング閾値インデックスが前記第２のデブロッキング閾値インデックスである場合に、前記現在のデブロッキング閾値が第２の定義済みのデブロッキング閾値のセットのうちの第２のデブロッキング閾値であり、
前記現在のデブロッキング閾値を特定することが、
前記現在のデブロッキング閾値インデックスに基づいて複数のデブロッキング閾値から現在のデブロッキング閾値のセットを特定すること、
現在の方向における前記復号化ブロックの現在のブロック境界に対応する現在の最小変換ブロックサイズを特定すること、
前記現在の最小変換ブロックサイズに基づいて、前記現在のデブロッキング閾値のセットからデブロッキング閾値のサブセットを前記現在のデブロッキング閾値として特定すること、を含み、
前記現在のデブロッキング閾値インデックスが前記第１のデブロッキング閾値インデックスである場合、前記現在のデブロッキング閾値のセットは、前記第１の定義済みのデブロッキング閾値のセットであり、
前記現在のデブロッキング閾値インデックスが前記第２のデブロッキング閾値インデックスである場合、前記現在のデブロッキング閾値のセットは、前記第２の定義済みのデブロッキング閾値のセットである、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、送信または保存のためのビデオストリームデータの符号化と復号化に関する。本明細書では、デュアルデブロッキング（dual deblocking）フィルタ閾値を使用した符号化および復号化のためのシステム、方法、および装置の態様が開示される。
【背景技術】
【０００２】
デジタルビデオは、例えば、ビデオ会議を介したリモートビジネス会議、高解像度ビデオエンターテイメント、ビデオ広告、またはユーザにより生成されたビデオの共有などに使用され得る。ビデオデータには大量のデータが含まれるため、高性能の圧縮が送信および保存に有利となり得る。したがって、デュアルデブロッキングフィルタ閾値を使用するビデオコーディングなど、帯域幅が制限されている通信チャネルを介して送信される高解像度ビデオを提供することが有利となり得る。
【発明の概要】
【０００３】
一態様は、デュアルデブロッキングフィルタ閾値を使用したビデオ復号化のための方法である。デュアルデブロッキングフィルタ閾値を使用したビデオ復号化は、符号化ビットストリームを復号化することによって再構成フレームを生成すること、および前記再構成フレームを出力することを含み得る。復号化することは、前記符号化ビットストリームの一部を復号化することにより復号化ブロックを生成すること、前記符号化ビットストリームから第１のデブロッキング閾値インデックスを特定すること、前記符号化ビットストリームから第２のデブロッキング閾値インデックスを特定すること、前記復号化ブロックに基づいて再構成ブロックを生成すること、および前記再構成ブロックを前記再構成フレーム内に含めることを含み得る。前記再構成ブロックを生成することは、前記第１のデブロッキング閾値インデックスおよび前記第２のデブロッキング閾値インデックスに基づいてデブロッキングすることを含み得る。
【０００４】
別の態様は、デュアルデブロッキングフィルタ閾値を使用したビデオ符号化のための方法である。デュアルデブロッキングフィルタ閾値を使用したビデオ符号化は、入力フレームを符号化することによって符号化フレームを生成すること、および出力ビットストリームを出力することを含み得る。符号化することは、前記符号化フレームを復号化することによって復号化フレームを生成すること、前記復号化フレームを再構成することによって再構成フレームを生成すること、および前記符号化フレームと前記第１のデブロッキング閾値インデックスの表示と前記第２のデブロッキング閾値インデックスの表示とを含む出力ビットストリームを生成することを含み得る。前記復号化フレームを再構成することは、前記復号化フレームをデブロッキングするために複数のデブロッキング閾値インデックスから共有デブロッキング（joint deblocking）閾値インデックスを特定すること、前記複数のデブロッキング閾値インデックスから第１のデブロッキング閾値インデックスを特定することであって、当該第１のデブロッキング閾値インデックスを特定することが前記復号化フレームをデブロッキングするために前記共有デブロッキング閾値インデックスを第２のデブロッキング閾値インデックスとして使用することを含むこと、および前記複数のデブロッキング閾値インデックスから前記第２のデブロッキング閾値インデックスを特定することであって、当該第２のデブロッキング閾値インデックスを特定することが前記復号化フレームをデブロッキングするために前記第１のデブロッキング閾値インデックスを使用することを含むこと、を含み得る。
【０００５】
別の態様は、デュアルデブロッキングフィルタ閾値を使用したビデオ符号化のための方法である。デュアルデブロッキングフィルタ閾値を使用したビデオ符号化は、符号化ビットストリームの一部を復号化した復号化ブロックを含む復号化フレームを生成することによって再構成フレームを生成すること、前記符号化ビットストリームから第１のデブロッキング閾値インデックスを特定すること、前記符号化ビットストリームから前記第１のデブロッキング閾値インデックスとは異なる第２のデブロッキング閾値インデックスを特定すること、前記第１のデブロッキング閾値インデックスに基づいて第１の方向に前記復号化フレームをデブロッキングすることによって部分デブロッキングフレームを生成すること、および前記第２のデブロッキング閾値インデックスに基づいて第２の方向に前記部分デブロッキングフレームをデブロッキングすることによって前記再構成フレームを生成すること、を含み得る。この方法は、前記再構成フレームを出力することを含み得る。
【０００６】
これらおよび他の変形例の態様については、以下でさらに詳細に説明する。
【図面の簡単な説明】
【０００７】
本明細書の記載では添付の図面を参照するが、いくつかの図面に亘る同様の参照番号は特に言及しない限り同様の構成を示す。
【図１】本開示の実装形態によるコンピューティングデバイスの図である。
【図２】本開示の実装形態によるコンピューティングおよび通信システムの図である。
【図３】本開示の実装形態による符号化および復号化で使用するためのビデオストリームの図である。
【図４】本開示の実装形態によるエンコーダのブロック図である。
【図５】本開示の実装形態によるデコーダ５００のブロック図である。
【図６】本開示の実装形態によるフレームの一部の表現のブロック図である。
【図７】本開示の実装形態によるブロック境界を含む入力フレームの一部の例を示す図である。
【図８】本開示の実装形態によるブロックアーチファクトを含む再構成フレームの一部の例を示す図である。
【図９】本開示の実装形態によるピクセルの行にピクセル粒度を有するブロックアーチファクトを含む再構成フレームの一部の例を示す図である。
【図１０】本開示の実装形態によるピクセルの列にピクセル粒度を有するブロックアーチファクトを含む再構成フレームの一部の例を示す図である。
【図１１】本開示の実装形態によるデュアルデブロッキングフィルタ閾値を使用した符号化の例のフローチャート図である。
【図１２】本開示の実装形態によるデブロッキング閾値インデックスを特定する例のフローチャート図である。
【図１３】本開示の実装形態によるデブロッキング閾値インデックスを特定する例のフローチャート図である。
【図１４】本開示の実装形態による現在のエラーメトリックを決定する例のフローチャート図である。
【図１５】本開示の実装形態による現在のブロックをデブロッキングする例のフローチャート図である。
【図１６】本開示の実装形態によるデュアルデブロッキングフィルタ閾値を使用した復号化の例のフローチャート図である。
【発明を実施するための形態】
【０００８】
ビデオ圧縮スキームは、各画像またはフレームをブロックなどのより小さな部分に分割し、出力内の各ブロックに含まれる情報を制限するための技術を使用して出力ビットストリームを生成することを含み得る。いくつかの実装形態では、出力内の各ブロックに含まれる情報は、空間的冗長性を減らしたり、時間的冗長性を減らしたり、またはそれらの組み合わせを用いたりすることによって制限され得る。例えば、時間的冗長性または空間的冗長性は、エンコーダとデコーダの双方に利用可能な情報に基づいてフレームを予測し、予測したフレームと元のフレームとの差または残差を表す情報を含めることで削減され得る。残差情報は、その残差情報を変換係数に変換し、その変換係数を量子化し、その量子化した変換係数をエントロピーコーディングすることによってさらに圧縮され得る。
【０００９】
符号化ビットストリームは、その制限された情報からブロックおよびソース画像を再生成するように復号化することができる。復号化フレームは、量子化によって生じるブロック境界に跨がるブロックノイズアーチファクトなどのアーチファクトを含み得る。このアーチファクトを減らすために、垂直ブロック境界や水平ブロック境界などのブロック境界に沿ってデブロッキングフィルタを使用するなどして、復号化フレームがフィルタリングされ得る。ブロック境界に一致した入力画像からオブジェクトエッジなどのエッジコンテンツを保持するために、フィルタリングは、各ブロック境界をフィルタリングするかどうかを決定し、対応するフィルタリングパラメータを特定するための閾値を特定し得る。１つの閾値セットを使用して垂直ブロック境界と水平ブロック境界の双方をフィルタリングすると、フィルタリングの精度が制限され、符号化品質が低下する場合がある。
【００１０】
デュアルデブロッキングフィルタ閾値を使用したビデオコーディングは、垂直ブロック境界などに沿って第１の方向にフィルタリングするための第１のフィルタ閾値の最適セットを特定するとともに、水平ブロック境界などに沿って第２の方向にフィルタリングするための第２のフィルタ閾値の最適セットを特定することにより、精度および符号化品質を向上させ得る。エンコーダは、垂直ブロック境界をフィルタリングするために特定されたフィルタ閾値のセットに対応するデブロッキング閾値インデックスと、水平ブロックをフィルタリングするために特定されたフィルタ閾値のセットに対応する別のデブロッキング閾値インデックスとを特定し得る。エンコーダは、符号化ビットストリーム内にデブロッキング閾値インデックスを示す情報を含め得る。デコーダは、符号化ビットストリームからデブロッキング閾値インデックスを示す情報を抽出し、対応するフィルタ閾値を特定して、第１の方向における第１のフィルタ閾値のセットと第２の方向における第２のフィルタ閾値のセットとを使用して復号化フレームをデブロッキングし得る。
【００１１】
図１は、本開示の実装形態によるコンピューティングデバイス１００の図である。図示されたコンピューティングデバイス１００は、メモリ１１０、プロセッサ１２０、ユーザインターフェース（ＵＩ）１３０、電子通信ユニット１４０、センサ１５０、電源１６０、およびバス１７０を含む。本明細書で使用される「コンピューティングデバイス」という用語は、本明細書に開示される任意の方法またはその方法の任意の一部を実行可能な任意のユニットまたはユニットの組み合わせを含む。
【００１２】
コンピューティングデバイス１００は、パーソナルコンピュータ（ＰＣ）、サーバ、ワークステーション、ミニコンピュータ、またはメインフレームコンピュータなどの固定コンピューティングデバイス、あるいは、携帯電話、携帯情報端末（ＰＤＡ）、ラップトップ、またはタブレットＰＣなどのモバイルコンピューティングデバイスとすることができる。なお、単一のユニットとして図示されているが、コンピューティングデバイス１００の１つまたは複数の要素を任意の数の個別の物理ユニットに統合することもできる。例えば、ＵＩ１３０およびプロセッサ１２０を第１の物理ユニットに統合し、メモリ１１０を第２の物理ユニットに統合することができる。
【００１３】
メモリ１１０は、例えば、データ１１２、命令１１４、オペレーティングシステム１１６、またはそれらに関連する任意の情報をコンピューティングデバイス１００の他のコンポーネントによる使用もしくはそのコンポーネントとの通信のために含む、記憶する、通信する、または転送することができる任意の有形デバイスなどの任意の非一時的なコンピュータ利用またはコンピュータ可読媒体を含むことができる。非一時的なコンピュータ利用またはコンピュータ可読媒体は、例えば、ソリッドステートドライブ、メモリカード、リムーバブルメディア、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ハードディスクやフロッピー（登録商標）ディスクや光ディスクなどの任意のタイプのディスク、磁気もしくは光学カード、特定用途向け集積回路（ＡＳＩＣ）、電子情報の記憶に適した任意のタイプの非一時的なメディア、またはそれらの任意の組み合わせとすることができる。
【００１４】
なお、単一のユニットとして図示されているが、メモリ１１０は、ランダムアクセスメモリユニットなどの１つまたは複数の一次メモリユニット、ディスクなどの１つまたは複数の二次データ記憶ユニット、またはそれらの組み合わせなどによる複数の物理ユニットを含み得る。例えば、データ１１２（またはその一部）、命令１１４（またはその一部）、またはその両方は、二次記憶ユニットに記憶されてもよく、対応するデータ１１２を処理したり、対応する命令１１４を実行したり、またはその両方の実行に伴って、一次記憶ユニットにロードもしくは転送されてもよい。いくつかの実装形態では、メモリ１１０またはその一部は取り外し可能なメモリであってもよい。
【００１５】
データ１１２は、入力オーディオデータ、符号化オーディオデータ、復号化オーディオデータなどの情報を含むことができる。命令１１４は、本明細書に開示される任意の方法またはその方法の任意の一部を実行するためのコードなどの命令を含むことができる。命令１１４は、ハードウェア、ソフトウェア、またはそれらの任意の組み合わせで実現することができる。例えば、命令１１４は、本明細書に記載される方法、アルゴリズム、態様、またはそれらの組み合わせのいずれかを実現するためにプロセッサ１２０によって実行され得るコンピュータプログラムなどの、メモリ１１０に記憶される情報として実装され得る。
【００１６】
なお、メモリ１１０に含まれるものとして図示されているが、いくつかの実装形態では、命令１１４またはその一部は、本明細書に記載される方法、アルゴリズム、態様、またはそれらの組み合わせのいずれかを実行するための専用ハードウェアを含むことができる専用プロセッサまたは回路として実装され得る。命令１１４の一部は、同じマシンもしくは異なるマシン上の複数のプロセッサにわたって、あるいはローカルエリアネットワーク、ワイドエリアネットワーク、インターネット、またはそれらの組み合わせなどのネットワークにわたって分散させることができる。
【００１７】
プロセッサ１２０は、デジタル信号または他の電子情報を取り扱うまたは処理することができる、光学プロセッサ、量子プロセッサ、分子プロセッサ、またはそれらの組み合わせを含む既存のまたは今後開発される任意のデバイスまたはシステムを含むことができる。例えば、プロセッサ１２０は、特定用途プロセッサ、中央処理装置（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、複数のマイクロプロセッサ、ＤＳＰコアに関連する１つまたは複数のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジックアレイ、プログラマブルロジックコントローラ、マイクロコード、ファームウェア、任意のタイプの集積回路（ＩＣ）、ステートマシン、またはそれらの組み合わせを含むことができる。本明細書で使用される「プロセッサ」という用語は、単一のプロセッサまたは複数のプロセッサを含む。
【００１８】
ＵＩ１３０は、仮想または物理キーパッド、タッチパッド、ディスプレイ、タッチディスプレイ、スピーカー、マイク、ビデオカメラ、センサ、またはそれらの任意の組み合わせなど、ユーザとのインターフェースが可能な任意のユニットを含むことができる。例えば、ＵＩ１３０を視聴覚ディスプレイデバイスとし、コンピューティングデバイス１００が視聴覚ディスプレイデバイスのＵＩ１３０を用いて、復号化映像などの映像の表示と併せて復号化音声などの音声を提示してもよい。なお、単一のユニットとして図示されているが、ＵＩ１３０が１つまたは複数の物理ユニットを含んでもよい。例えば、ＵＩ１３０は、ユーザとの音声通信を実行するための音声インターフェースと、ユーザとの視覚およびタッチ式の通信を実行するためのタッチディスプレイとを含んでもよい。
【００１９】
電子通信ユニット１４０は、無線周波数（ＲＦ）通信媒体、紫外線（ＵＶ）通信媒体、可視光通信媒体、光ファイバー通信媒体、有線通信媒体、またはそれらの組み合わせなどの有線または無線の電子通信媒体１８０を介して信号を送信、受信、または送受信することができる。例えば、図示されるように、電子通信ユニット１４０は、無線信号を介して通信するように構成されたアンテナなどの電子通信インターフェース１４２に動作可能に接続される。
【００２０】
電子通信インターフェース１４２は、図１では無線アンテナとして示されているが、図示される無線アンテナ、イーサネット（登録商標）ポートなどの有線通信ポート、赤外線ポート、シリアルポート、あるいは、有線または無線の電子通信媒体１８０とインターフェース可能な任意の他の有線または無線ユニットとすることができる。なお、図１は、単一の電子通信ユニット１４０および単一の電子通信インターフェース１４２を示しているが、任意の数の電子通信ユニットおよび任意の数の電子通信インターフェースを使用することができる。
【００２１】
センサ１５０は、例えば、音声検知装置、可視光検知装置、動き検知装置、またはそれらの組み合わせを含み得る。例えば、センサ１５０は、マイクなどの音声検知装置、またはコンピューティングデバイス１００の近くにおける対話または他の発話などのコンピューティングデバイス１００を操作するユーザによって作成された音を検知可能な既存のまたは今後開発される任意の他の音声検知装置を含み得る。別の例では、センサ１５０は、カメラ、またはコンピューティングデバイスを操作するユーザの画像などの画像を検知可能な既存のまたは今後開発される任意の他の画像検知装置を含み得る。なお、単一のセンサ１５０が図示されているが、コンピューティングデバイス１００は複数のセンサ１５０を含んでもよい。例えば、コンピューティングデバイス１００は、コンピューティングデバイス１００のユーザに向かう方向に視野が向けられた第１のカメラと、コンピューティングデバイス１００のユーザから離れる方向に視野が向けられた第２のカメラとを含み得る。
【００２２】
電源１６０は、コンピューティングデバイス１００に電力を供給するための任意の適切なデバイスとすることができる。例えば、電源１６０としては、有線の外部電源インターフェース、ニッケルカドミウム（ＮｉＣｄ）やニッケル亜鉛（ＮｉＺｎ）やニッケル水素（ＮｉＭＨ）やリチウムイオン（Ｌｉ−ｉｏｎ）などの１つまたは複数の乾電池、太陽電池、燃料電池、またはコンピューティングデバイス１００に電力を供給可能な任意の他のデバイスが挙げられる。なお、図１では単一の電源１６０が示されているが、コンピューティングデバイス１００は複数の電源１６０、例えばバッテリと有線の外部電源インターフェースとを含んでもよい。
【００２３】
また、図では別々のユニットとして示されているが、電子通信ユニット１４０、電子通信インターフェース１４２、ＵＩ１３０、電源１６０、またはそれらの一部が、一つの複合ユニットとして構成されてもよい。例えば、電子通信ユニット１４０、電子通信インターフェース１４２、ＵＩ１３０、および電源１６０は、外部ディスプレイデバイスとインターフェースして、通信、電力、またはその両方を提供することができる通信ポートとして実装されてもよい。
【００２４】
メモリ１１０、プロセッサ１２０、ＵＩ１３０、電子通信ユニット１４０、センサ１５０、または電源１６０のうちの１つ以上は、バス１７０を介して動作可能に結合され得る。なお、図１では単一のバス１７０が示されているが、コンピューティングデバイス１００は複数のバスを含んでもよい。例えば、メモリ１１０、プロセッサ１２０、ＵＩ１３０、電子通信ユニット１４０、センサ１５０、およびバス１７０は、バス１７０を介して電源１６０から電力を受け取り得る。別の例では、メモリ１１０、プロセッサ１２０、ＵＩ１３０、電子通信ユニット１４０、センサ１５０、電源１６０、またはそれらの組み合わせは、バス１７０を介して電子信号を送受信するなどして、データを通信し得る。
【００２５】
図１には別途に示されていないが、プロセッサ１２０、ＵＩ１３０、電子通信ユニット１４０、センサ１５０、または電源１６０のうちの１つ以上は、内部バッファまたはレジスタなどの内部メモリを含んでもよい。例えば、プロセッサ１２０は、内部メモリ（図示略）を含み、処理のためにメモリ１１０から内部メモリ（図示略）にデータ１１２を読み込んでもよい。
【００２６】
別々の要素として図示されているが、メモリ１１０、プロセッサ１２０、ＵＩ１３０、電子通信ユニット１４０、センサ１５０、電源１６０、バス１７０、またはそれらの任意の組み合わせは、１つまたは複数の電子ユニット、回路、またはチップに統合することができる。
【００２７】
図２は、本開示の実装形態によるコンピューティングおよび通信システム２００の図である。図示されるコンピューティングおよび通信システム２００は、コンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃと、アクセスポイント２１０Ａ，２１０Ｂと、ネットワーク２２０とを含む。例えば、コンピューティングおよび通信システム２００は、音声、オーディオ、データ、ビデオ、メッセージング、ブロードキャスト、またはそれらの組み合わせなどの通信を、コンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃなどの１つまたは複数の有線または無線通信デバイスに提供する多元接続システムとすることができる。なお、簡略化のために、図２では３つのコンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃと、２つのアクセスポイント２１０Ａ，２１０Ｂと、１つのネットワーク２２０とを示しているが、任意の数のコンピューティングおよび通信デバイスと、アクセスポイントと、ネットワークを使用することができる。
【００２８】
コンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃは、例えば、図１に示されたコンピューティングデバイス１００などのコンピューティングデバイスとすることができる。例えば、コンピューティングおよび通信デバイス１００Ａ，１００Ｂを、モバイルコンピューティングデバイス、ラップトップ、シンクライアント、またはスマートフォンなどのユーザデバイスとし、コンピューティングおよび通信デバイス１００Ｃを、メインフレームまたはクラスタなどのサーバとすることができる。なお、コンピューティングおよび通信デバイス１００Ａ，１００Ｂをユーザデバイスとし、コンピューティングおよび通信デバイス１００Ｃをサーバとして説明するが、任意のコンピューティングおよび通信デバイスがサーバの機能の一部またはすべてを実行してもよいし、ユーザデバイスの機能の一部またはすべてを実行してもよいし、あるいはサーバとユーザデバイスの機能の一部またはすべてを実行してもよい。例えば、サーバとしてのコンピューティングおよび通信デバイス１００Ｃが、オーディオデータを受信し、符号化し、処理し、記憶し、送信し、またはそれらの組み合わせを実行してもよく、コンピューティングおよび通信デバイス１００Ａ，１００Ｂのうちの一方または両方が、オーディオデータを受信し、復号化し、処理し、記憶し、提示し、またはそれらの組み合わせを実行してもよい。
【００２９】
各コンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃとしては、ユーザ機器（ＵＥ）、移動局、固定またはモバイル加入者ユニット、携帯電話、パーソナルコンピュータ、タブレットコンピュータ、サーバ、家庭用電化製品、または任意の類似のデバイスなどを挙げることができ、これらは、ネットワーク２２０などを介して有線または無線通信を実行するように構成することができる。例えば、コンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃは、有線または無線の通信信号を送信または受信するように構成することができる。なお、各コンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃは単一のユニットとして図示されているが、コンピューティングおよび通信デバイスは任意の数の相互接続される要素を含むことができる。
【００３０】
各アクセスポイント２１０Ａ，２１０Ｂは、有線または無線通信リンク１８０Ａ，１８０Ｂ，１８０Ｃを介して、コンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃか、ネットワーク２２０か、またはそれらの両方と通信するように構成された任意のタイプのデバイスとすることができる。例えば、アクセスポイント２１０Ａ，２１０Ｂとしては、基地局、基地トランシーバ局（ＢＴＳ）、ノードＢ、拡張ノードＢ（ｅノードＢ）、ホームノードＢ（ＨノードＢ）、無線ルータ、有線ルータ、ハブ、リレー、スイッチ、または任意の類似の有線または無線デバイスなどを挙げることができる。なお、各アクセスポイント２１０Ａ，２１０Ｂは単一のユニットとして図示されているが、アクセスポイントは任意の数の相互接続される要素を含むことができる。
【００３１】
ネットワーク２２０は、音声、データ、アプリケーション、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）、あるいは、有線または無線通信リンクを介した任意の他の通信プロトコルもしくは通信プロトコルの組み合わせなどのサービスを提供するように構成された任意のタイプのネットワークとすることができる。例えば、ネットワーク２２０は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、仮想プライベートネットワーク（ＶＰＮ）、モバイルもしくはセルラー電話ネットワーク、インターネット、または任意の他の電子通信手段とすることができる。ネットワークは、伝送制御プロトコル（ＴＣＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、インターネットプロトコル（ＩＰ）、リアルタイムトランスポートプロトコル（ＲＴＰ）、ハイパーテキストトランスポートプロトコル（ＨＴＴＰ）、またはそれらの組み合わせなどの通信プロトコルを使用することができる。
【００３２】
コンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃは、有線または無線通信リンクの１つ以上を使用するか、もしくは有線および無線通信リンクの組み合わせを介したネットワーク２２０を通じて互いに通信することができる。例えば、図示されるように、コンピューティングおよび通信デバイス１００Ａ，１００Ｂは無線通信リンク１８０Ａ，１８０Ｂを介して通信することができ、コンピューティングおよび通信デバイス１００Ｃは有線通信リンク１８０Ｃを介して通信することができる。コンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃのいずれも、１つまたは複数の任意の有線または無線通信リンクを使用して通信することができる。例えば、第１のコンピューティングおよび通信デバイス１００Ａは、第１のタイプの通信リンクを使用して第１のアクセスポイント２１０Ａを介して通信することができ、第２のコンピューティングおよび通信デバイス１００Ｂは、第２のタイプの通信リンクを使用して第２のアクセスポイント２１０Ｂを介して通信することができ、第３のコンピューティングおよび通信デバイス１００Ｃは、第３のタイプの通信リンクを使用して第３のアクセスポイント（図示略）を介して通信することができる。同様に、アクセスポイント２１０Ａ，２１０Ｂは、１つまたは複数のタイプの有線または無線通信リンク２３０Ａ，２３０Ｂを介してネットワーク２２０と通信することができる。なお、図２では、ネットワーク２２０を介して通信するコンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃを示しているが、コンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃは、直接有線または無線通信リンクなどの任意の数の通信リンクを介して互いに通信することができる。
【００３３】
いくつかの実装形態では、コンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃのうちの１つまたは複数の間の通信が、ネットワーク２２０を介した通信を省略し、データ記憶装置などの別の媒体（図示略）を介したデータの転送を含んでもよい。例えば、サーバとしてのコンピューティングおよび通信デバイス１００Ｃが符号化オーディオデータなどのオーディオデータをポータブルデータ記憶ユニットなどのデータ記憶装置に記憶し、コンピューティングおよび通信デバイス１００Ａ，１００Ｂのうちの一方または両方が、そのデータ記憶装置をコンピューティングおよび通信デバイス１００Ｃから物理的に切断しコンピューティングおよび通信デバイス１００Ａ，１００Ｂのうちの一方に物理的に接続するなどして、データ記憶装置の記憶されたオーディオデータにアクセスしてそのオーディオデータをデータ記憶装置から読み込むまたは取得することができる。
【００３４】
コンピューティングおよび通信システム２００の他の実装形態も可能である。例えば、一つの実装形態において、ネットワーク２２０は、アドホックネットワークとすることができ、アクセスポイント２１０Ａ，２１０Ｂのうちの１つ以上を省略することができる。コンピューティングおよび通信システム２００は、図２に示されていないデバイス、ユニット、または要素を含んでもよい。例えば、コンピューティングおよび通信システム２００は、より多くの通信デバイス、ネットワーク、およびアクセスポイントを含んでもよい。
【００３５】
図３は、本開示の実装形態による符号化および復号化で使用するためのビデオストリーム３００の図である。ビデオカメラによってキャプチャされたビデオストリームやコンピューティングデバイスによって生成されたビデオストリームなどのビデオストリーム３００は、ビデオシーケンス３１０を含み得る。ビデオシーケンス３１０は、隣接フレーム３２０のシーケンスを含み得る。なお、３つの隣接するフレーム３２０が図示されているが、ビデオシーケンス３１０は、任意の数の隣接フレーム３２０を含むことができる。
【００３６】
隣接フレーム３２０内の各フレーム３３０は、ビデオストリーム内の単一の画像を表し得る。なお、図３には示されていないが、フレーム３３０は１つまたは複数のセグメント、タイル、またはプレーンを含んでもよく、これらは、並列的などのように個別にコーディングまたは処理されてもよい。フレーム３３０は複数のブロック３４０を含み得る。なお、図３には示されていないが、ブロックは複数のピクセルを含むことができる。例えば、ブロックは、１６×１６のピクセル群、８×８のピクセル群、８×１６のピクセル群、または任意の他のピクセル群を含むことができる。本明細書で特に明記しない限り、「ブロック」という用語は、スーパーブロック、マクロブロック、セグメント、スライス、または任意の他のフレーム部分を含むことができる。フレーム、ブロック、ピクセル、またはそれらの組み合わせは、輝度情報、クロミナンス情報、あるいはビデオストリーム（またはその一部）を記憶し変更し通信しまたは表示するのに使用可能な任意の他の情報などの表示情報を含むことができる。
【００３７】
図４は、本開示の実装形態によるエンコーダ４００のブロック図である。エンコーダ４００は、図１に示されたコンピューティングデバイス１００または図２に示されたコンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃなどのデバイスにおいて、例えば、図１に示されたメモリ１１０などのデータ記憶ユニットに記憶されるコンピュータソフトウェアプログラムとして実装可能である。コンピュータソフトウェアプログラムは、図１に示されたプロセッサ１２０などのプロセッサによって実行され得る機械命令を含むことができ、本明細書に記載されるようなビデオデータの符号化をデバイスに実行させ得る。エンコーダ４００は、例えばコンピューティングデバイス１００に含まれる専用ハードウェアとして実装することもできる。
【００３８】
エンコーダ４００は、図３に示されたビデオストリーム３００などのビデオストリーム４０２を符号化して符号化（圧縮）ビットストリーム４０４を生成することができる。いくつかの実装形態では、エンコーダ４００は、圧縮ビットストリーム４０４を生成するための順方向経路を含み得る。順方向経路は、イントラ／インター予測ユニット４１０、変換ユニット４２０、量子化ユニット４３０、エントロピー符号化ユニット４４０、またはそれらの任意の組み合わせを含むことができる。いくつかの実装形態では、エンコーダ４００は、さらなるブロックの符号化のためにフレームを再構成するための（破線の接続線によって示される）再構成経路を含み得る。再構成経路は、逆量子化ユニット４５０、逆変換ユニット４６０、再構成ユニット４７０、フィルタリングユニット４８０、またはそれらの任意の組み合わせを含み得る。なお、ビデオストリーム４０２を符号化するためにエンコーダ４００の他の変形例の構成を使用することもできる。
【００３９】
ビデオストリーム４０２を符号化するために、ビデオストリーム４０２内の各フレームはブロック単位で処理することができる。したがって、現在のブロックがフレーム内のブロックから特定され、その現在のブロックが符号化され得る。
【００４０】
イントラ／インター予測ユニット４１０において、現在のブロックは、単一のフレーム内において行われ得るフレーム内予測か、またはフレームとフレームの間で行われ得るフレーム間予測のいずれかを使用して符号化され得る。イントラ予測は、以前に符号化されて再構成された現在のフレーム内のサンプルから予測ブロックを生成することを含み得る。インター予測は、１つまたは複数の以前に構成された参照フレーム内のサンプルから予測ブロックを生成することを含み得る。現在のフレーム内の現在のブロックの予測ブロックを生成することは、動き推定を実行して、参照フレームの適切な参照部分を示す動きベクトルを生成することを含み得る。
【００４１】
イントラ／インター予測ユニット４１０は、現在のブロック（生ブロック（raw block））から予測ブロックを減算して残差ブロックを生成してもよい。変換ユニット４２０は、残差ブロックを例えば周波数領域における変換係数に変換することを含み得るブロックベースの変換を行ってもよい。ブロックベースの変換の例としては、カルーネン・レーベ（Karhunen-Loeve）変換（ＫＬＴ）、離散コサイン変換（ＤＣＴ）、特異値分解変換（ＳＶＤ）、および非対称離散正弦変換（ＡＤＳＴ）が挙げられる。一例では、ＤＣＴは、ブロックを周波数領域に変換することを含み得る。ＤＣＴは、マトリクスの左上に最低周波数（すなわち、ＤＣ）係数を有し、マトリクスの右下に最高周波数係数を有する空間周波数に基づいた変換係数値を使用することを含み得る。
【００４２】
量子化ユニット４３０は、変換係数を量子化変換係数または量子化レベルとも呼ばれ得る離散量子値に変換し得る。エントロピー符号化ユニット４４０は、量子化変換係数をエントロピー符号化することでエントロピー符号化係数を生成することができる。エントロピー符号化は確率分布メトリックを使用することを含み得る。エントロピー符号化係数およびブロックの復号に使用される情報（使用される予測のタイプ、動きベクトル、および量子化値を含み得る）は圧縮ビットストリーム４０４に出力され得る。圧縮ビットストリーム４０４は、ランレングス符号化（run-length encoding（ＲＬＥ））およびゼロラン符号化（zero-run conding）などの様々な技術を使用してフォーマットすることができる。
【００４３】
再構成経路は、エンコーダ４００と、図５に示されたデコーダ５００などの対応するデコーダとの間の参照フレーム同期を維持するために使用することができる。再構成経路は、以下で説明する復号化プロセスと同様とすることができ、符号化フレームまたはその一部を復号化することを含み得る。この復号化は、符号化ブロックを復号化することを含み得るものであり、逆量子化ユニット４５０で量子化変換係数を逆量子化し、逆変換ユニット４６０で逆量子化変換係数を逆変換して、微分残差ブロックを生成することを含み得る。再構成ユニット４７０は、イントラ／インター予測ユニット４１０によって生成された予測ブロックを微分残差ブロックに追加して復号化ブロックを作成し得る。この復号化ブロックにフィルタリングユニット４８０が適用されることで、ブロックノイズアーチファクトなどの歪みを低減し得る再構成ブロックを生成することができる。なお、図４には１つのフィルタリングユニット４８０が示されているが、復号化ブロックのフィルタリングは、ループフィルタリング、デブロッキングフィルタリング、他のタイプのフィルタリング、または複数のタイプのフィルタリングの組み合わせを含み得る。再構成ブロックは、４８２の破線で示されるように、現在のフレームの別の部分、別のフレーム、またはその両方を符号化するために、参照フレームの一部であり得る再構成ブロックとして記憶またはアクセス可能とされ得る。フレームのデブロッキング閾値インデックス値などのコーディング情報は、４８４の破線で示されるように、符号化されるか、圧縮ビットストリーム４０４に含まれるか、またはその両方とされ得る。
【００４４】
圧縮ビットストリーム４０４を符号化するためにエンコーダ４００の他の変形例を使用することもできる。例えば、非変換ベースのエンコーダ４００は、変換ユニット４２０を用いることなく残差ブロックを直接量子化することができる。いくつかの実装形態では、量子化ユニット４３０および逆量子化ユニット４５０は、単一のユニットに統合され得る。
【００４５】
図５は、本開示の実装形態によるデコーダ５００のブロック図である。デコーダ５００は、図１に示されたコンピューティングデバイス１００または図２に示されたコンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃなどのデバイスにおいて、例えば、図１に示されたメモリ１１０などのデータ記憶ユニットに記憶されるコンピュータソフトウェアプログラムとして実装可能である。コンピュータソフトウェアプログラムは、図１に示されたプロセッサ１２０などのプロセッサによって実行され得る機械命令を含むことができ、本明細書に記載されるようなビデオデータの符号化をデバイスに実行させ得る。デコーダ５００は、例えばコンピューティングデバイス１００に含まれる専用ハードウェアとして実装することもできる。
【００４６】
デコーダ５００は、図４に示された圧縮ビットストリーム４０４などの圧縮ビットストリーム５０２を受信し、その圧縮ビットストリーム５０２を復号化して出力ビデオストリーム５０４を生成し得る。デコーダ５００は、エントロピー復号化ユニット５１０、逆量子化ユニット５２０、逆変換ユニット５３０、イントラ／インター予測ユニット５４０、再構成ユニット５５０、フィルタリングユニット５６０、またはそれらの任意の組み合わせを含み得る。なお、圧縮ビットストリーム４２０を復号化するためにデコーダ５００の他の変形例の構成を使用することもできる。
【００４７】
エントロピー復号化ユニット５１０は、例えば、コンテキスト適応バイナリ算術復号化（Context Adaptive Binary Arithmetic Decoding）を使用して圧縮ビットストリーム５０２内のデータ要素を復号化することで、量子化変換係数のセットを生成し得る。逆量子化ユニット５２０は量子化変換係数を逆量子化することができ、逆変換ユニット５３０は逆量子化変換係数を逆変換することで、図４に示された逆変換ユニット４６０によって生成される微分残差ブロックに対応し得る微分残差ブロックを生成することができる。イントラ／インター予測ユニット５４０は、圧縮ビットストリーム５０２からの復号化されたヘッダ情報を使用して、エンコーダ４００で作成された予測ブロックに対応する予測ブロックを生成し得る。その予測ブロックが再構成ユニット５５０において微分残差ブロックに加えられることで復号化ブロックが生成される。この復号化ブロックにフィルタリングユニット５６０が適用されることでブロックノイズアーチファクトなどのアーチファクトを低減することができる。このフィルタリングユニット５６０は、ループフィルタリング、デブロッキングフィルタリング、他のタイプのフィルタリング、または複数のタイプのフィルタリングの組み合わせを含み得るものであり、出力ビデオストリーム５０４として出力され得る再構成ブロックを生成することを含み得る。
【００４８】
圧縮ビットストリーム４２０を復号化するためにデコーダ５００の他の変形例を使用することもできる。例えば、デコーダ５００は、フィルタリングユニット５６０を用いることなく出力ビデオストリーム５０４を生成することができる。
【００４９】
図６は、本開示の実装形態による、図３に示されたフレーム３３０などのフレームの一部６００の表現のブロック図である。図示されるように、フレームの一部６００は、マトリクス内またはデカルト平面に２行２列の４つの６４×６４ブロック６１０を含む。いくつかの実装形態では、１つの６４×６４ブロックは最大コーディング単位のＮ＝６４であり得る。各６４×６４ブロックは、４つの３２×３２ブロック６２０を含み得る。各３２×３２ブロックは、４つの１６×１６ブロック６３０を含み得る。各１６×１６ブロックは、４つの８×８ブロック６４０を含み得る。各８×８ブロック６４０は、４つの４×４ブロック６５０を含み得る。各４×４ブロック６５０は、このデカルト平面またはマトリクス内の対応するブロック内において４行４列で表され得る１６個のピクセルを含み得る。ピクセルは、輝度情報、色情報、位置情報など、フレーム内でキャプチャされた画像を表す情報を含み得る。いくつかの実装形態では、図示されるような１６×１６ピクセルブロックなどのブロックは、輝度ピクセル６６２を含み得る輝度ブロック６６０と、ＵまたはＣｂクロミナンスブロック６７０やＶまたはＣｒクロミナンスブロック６８０などの２つのクロミナンスブロック６７０，６８０とを含み得る。クロミナンスブロック６７０，６８０はクロミナンスピクセル６９０を含み得る。例えば、輝度ブロック６６０が１６×１６個の輝度ピクセル６６２を含み得るとともに、各クロミナンスブロック６７０，６８０が図示されるように８×８個のクロミナンスピクセル６９０を含み得る。なお、ブロックの一つの配置が図示されているが、任意の配置を使用することができる。図６はＮ×Ｎブロックを示すが、いくつかの実装形態ではＮ×Ｍブロックを使用することができる。例えば、３２×６４ブロック、６４×３２ブロック、１６×３２ブロック、３２×１６ブロック、または他のサイズのブロックが使用されてもよい。いくつかの実装形態では、Ｎ×２Ｎブロック、２Ｎ×Ｎブロック、またはそれらの組み合わせが使用されてもよい。
【００５０】
いくつかの実装形態において、ビデオコーディングは、順序付け式（ordered）ブロックレベルコーディングを含み得る。順序付け式ブロックレベルコーディングは、ラスタスキャン順序などの順序でフレームのブロックをコーディングすることを含み得る。ラスタスキャン順序では、フレームの左上隅（またはフレームの一部分）のブロックからブロックの特定および処理を開始し、左から右に行に沿って、および上の行から下の行に沿って進み、各ブロックを順番に処理して特定する。例えば、フレームの左上の行列の６４×６４ブロックがコーディングされる最初のブロックとされ得るとともに、この最初のブロックのすぐ右の６４×６４ブロックがコーディングされる２番目のブロックとされ得る。そして、上から２行目がコーディングされる２行目とされ、この２行目の左側の列の６４×６４ブロックが１行目の最も右側の列の６４×６４ブロックの後にコーディングされ得るものとなる。
【００５１】
いくつかの実装形態では、ブロックのコーディングは、ラスタスキャン順序でブロック内のより小さなブロック単位をコーディングすることを含み得るクアッドツリー（quad-tree）コーディングを使用することを含み得る。例えば、図６に示されたフレームの部分の左下隅に示される６４×６４ブロックがクアッドツリーコーディングを用いてコーディングされ得る場合、左上の３２×３２ブロックがコーディングされ、次に右上の３２×３２ブロックがコーディングされ、次に左下の３２×３２ブロックがコーディングされ、次に右下の３２×３２ブロックがコーディングされ得る。各３２×３２ブロックがクアッドツリーコーディングを用いてコーディングされ得る場合、左上の１６×１６ブロックがコーディングされ、次に右上の１６×１６ブロックがコーディングされ、次に左下の１６×１６ブロックがコーディングされ、次に右下の１６×１６ブロックがコーディングされ得る。各１６×１６ブロックがクアッドツリーコーディングを用いてコーディングされ得る場合、左上の８×８ブロックがコーディングされ、次に右上の８×８ブロックがコーディングされ、次に左下の８×８ブロックがコーディングされ、次に右下の８×８ブロックがコーディングされ得る。各８×８ブロックがクアッドツリーコーディングを用いてコーディングされ得る場合、左上の４×４ブロックがコーディングされ、次に右上の４×４ブロックがコーディングされ、次に左下の４×４ブロックがコーディングされ、次に右下の４×４ブロックがコーディングされ得る。いくつかの実装形態では、１６×１６ブロックに対して８×８ブロックが省略されてもよく、１６×１６ブロックがクアッドツリーコーディングを用いてコーディングされ得る場合に、左上の４×４ブロックがコーディングされた後、この１６×１６ブロック内の他の４×４ブロックがラスタスキャン順にコーディングされてもよい。
【００５２】
いくつかの実装形態において、ビデオコーディングは、例えば、対応する符号化フレームから元のフレームの情報の一部を省略することにより、元のフレーム（または入力フレーム）に含まれる情報を圧縮することを含み得る。例えば、コーディングは、スペクトル冗長性を低減すること、空間冗長性を低減すること、時間冗長性を低減すること、またはそれらの組み合わせを含み得る。
【００５３】
いくつかの実装形態において、スペクトル冗長性を低減することは、ＹＵＶまたはＹＣｂＣｒカラーモデルあるいはカラースペースと呼ばれ得る、輝度成分（Ｙ）と２つのクロミナンス成分（ＵとＶまたはＣｂとＣｒ）とに基づくカラーモデルを使用することを含み得る。ＹＵＶカラーモデルを使用することは、比較的大量の情報を使用してフレームの一部分の輝度成分を表すこと、および比較的少量の情報を使用してそのフレームの部分の各対応するクロミナンス成分を表すことを含み得る。例えば、フレームの一部分は、１６×１６ブロックのピクセルを含み得る高解像度の輝度成分と、各々そのフレームの部分を８×８ブロックのピクセルとして表す２つの低解像度のクロミナンス成分とによって表され得る。ピクセルは、ある値、例えば０〜２５５の範囲内の値を示し得るとともに、例えば８ビットを使用して記憶または送信され得る。なお、この開示はＹＵＶカラーモデルに関して説明されているが、任意のカラーモデルが使用されてもよい。
【００５４】
いくつかの実装形態において、空間的冗長性を低減することは、例えば、離散コサイン変換（ＤＣＴ）を使用してブロックを周波数領域に変換することを含み得る。例えば、図４に示された変換ユニット４２０などのエンコーダのユニットが、空間周波数に基づく変換係数値を使用してＤＣＴを実行し得る。
【００５５】
いくつかの実装形態において、時間的冗長性を低減することは、フレーム間の類似性を使用して、以前に符号化され復号化され再構成されたビデオストリームのフレームであり得る１つまたは複数の参照フレームに基づいて比較的少量のデータを使用してフレームをエンコードすることを含み得る。例えば、現在のフレームのブロックまたはピクセルは、参照フレームの空間的に対応するブロックまたはピクセルに類似し得る。いくつかの実装形態では、現在のフレームのブロックまたはピクセルは、異なる空間位置における参照フレームのブロックまたはピクセルに類似し、時間的冗長性を低減することは、現在のフレーム内のブロックまたはピクセルの位置と参照フレーム内のブロックまたはピクセルの対応する位置との間の空間差または移動を示す動き情報を生成することを含み得る。
【００５６】
いくつかの実装形態において、時間的冗長性を低減することは、現在のフレームの現在のブロックまたはピクセルに対応する参照フレームの一部を特定することを含み得る。例えば、現在のフレームの現在のブロックまたはピクセルを最大限の効率で符号化するために使用する予測子を生成するための部分を特定するために、メモリに記憶されている参照フレームまたは参照フレームの一部が検索され得る。例えば、この検索は、現在のブロックと参照フレームの一部に基づいて生成された予測ブロックとの間のピクセル値の差が最小化される当該参照フレームの一部を特定し得るものであり、動き検索と呼ばれ得る。いくつかの実装形態では、検索される参照フレームの部分が制限され得る。例えば、検索される参照フレームの部分（検索エリアと呼ばれ得る）は参照フレームの制限された数の行を含み得る。一例では、予測子を生成するための参照フレームの部分を特定することは、検索エリアの部分のピクセルと現在のブロックのピクセルとの間の差分絶対値和（ＳＡＤ）などのコスト関数（cost function）を計算することを含み得る。
【００５７】
いくつかの実装形態では、参照フレーム内において予測子を生成するための参照フレームの部分の位置と現在のフレーム内の現在のブロックとの間の空間差は、動きベクトルとして表され得る。予測ブロックと現在のブロックとの間のピクセル値の差は、差分データ、残差データ、予測誤差、または残差ブロックと呼ばれ得る。いくつかの実装形態では、動きベクトルの生成は動き推定と呼ばれ得るものであり、現在のブロックのピクセルはｆｘ，ｙによるデカルト座標を使用した位置に基づいて示され得る。同様に、参照フレームの検索エリアのピクセルは、ｒｘ，ｙによるデカルト座標を使用した位置に基づいて示され得る。現在のブロックの動きベクトル（ＭＶ）は、例えば、現在のフレームのピクセルと参照フレームの対応するピクセルとの間のＳＡＤに基づいて決定され得る。
【００５８】
なお、本明細書では明瞭化のためにフレームのマトリクスまたはデカルト表現を参照して説明されているが、フレームは、フレームまたは画像のピクセル値を効率的に表すことができるように任意のデータ構造で記憶され、送信され、処理され、またはそれらの任意の組み合わせが取られ得る。例えば、フレームは、図示されるようなマトリクスなどの二次元データ構造かまたはベクトル配列などの一次元データ構造で記憶され、送信され、処理され、またはそれらの任意の組み合わせが取られ得る。一実装形態では、図示されるような二次元表現などのフレームの表現は、フレームを画像としてレンダリングする際の物理的位置に対応し得る。例えば、フレームの左上隅にあるブロックの左上隅の位置は、フレームを画像としてレンダリングする際の左上隅の物理的位置に対応し得る。
【００５９】
いくつかの実装形態では、ブロックベースのコーディング効率は、予測コーディングのために、入力ブロックを矩形状（正方形を含む）のパーティションであり得る１つまたは複数の予測パーティションに分割することによって改善され得る。いくつかの実装形態では、予測分割を使用するビデオコーディングは、複数の候補予測分割スキームの中から１つの予測分割スキームを選択することを含み得る。例えば、いくつかの実装形態では、６４×６４コーディングユニットの候補予測分割スキームは、４×４，４×８，８×４，８×８，８×１６，１６×８，１６×１６，１６×３２，３２×１６，３２×３２，３２×６４，６４×３２，または６４×６４などの、４×４から６４×６４までのサイズの範囲内において矩形状サイズの予測パーティションを含み得る。いくつかの実装形態では、予測分割を使用するビデオコーディングは、予測パーティション全検索を含み得る。予測パーティション全検索は、それぞれ利用可能な候補予測分割スキームを使用してコーディングユニットを符号化することによって予測分割スキームを選択すること、および最小レート歪みエラーを生成するスキームなどの最適なスキームを選択することを含み得る。
【００６０】
いくつかの実装形態において、ビデオフレームの符号化は、ブロック６１０などの現在のブロックを符号化するために予測分割スキームを特定することを含み得る。いくつかの実装形態では、予測分割スキームを特定することは、ブロックを図示されるような６４×６４であり得る最大コーディングユニットサイズの単一の予測パーティションとして符号化するかどうか、または、ブロックを図示されるような３２×３２ブロック６２０、１６×１６ブロック６３０、または８×８ブロック６４０などのサブブロックに対応し得る複数の予測パーティションに分割するかどうかを判定することを含み得るとともに、１つまたは複数のより小さな予測パーティションに分割するかどうかを判定することを含み得る。例えば、６４×６４ブロックは、４つの３２×３２予測パーティションに分割され得る。その４つの３２×３２予測パーティションのうちの３つは、３２×３２予測パーティションとして符号化され得る一方、４つ目の３２×３２予測パーティションは、４つの１６×１６予測パーティションにさらに分割され得る。その４つの１６×１６予測パーティションのうちの３つは、１６×１６予測パーティションとして符号化され得る一方、４つ目の１６×１６予測パーティションは、４つの８×８予測パーティションにさらに分割され得るものとなり、その各々が８×８予測パーティションとして符号化され得る。いくつかの実装形態では、予測分割スキームを特定することは、予測分割決定ツリーを使用することを含み得る。
【００６１】
いくつかの実装形態において、現在のブロックのビデオコーディングは、複数の候補予測コーディングモードから最適な予測コーディングモードを特定することを含み得る。これにより、様々な統計特性を持つビデオ信号の処理に柔軟性がもたられ、圧縮効率が向上され得る。例えば、ビデオコーダは、各候補予測コーディングモードを評価して、例えば、現在のブロックに対してレート歪みコストなどのエラーメトリックを最小化する予測コーディングモードであり得る最適な予測コーディングモードを特定し得る。いくつかの実装形態では、現在のブロックと対応する予測ブロックとの間の類似性に基づいて利用可能な候補予測コーディングモードのセットを制限することにより、候補予測コーディングモードの検索の複雑さが低減され得る。いくつかの実装形態では、各候補予測コーディングモードの検索の複雑さは指向性改良モード検索（directed refinement mode search）を実行することによって低減され得る。例えば、１６×１６，８×８，４×４などの候補ブロックサイズの限られたセットに対してメトリックが生成されてもよく、各ブロックサイズに関連付けられるエラーメトリックは降順とされてもよく、４×８や８×４ブロックサイズなど追加の候補ブロックサイズが評価されてもよい。
【００６２】
いくつかの実装形態では、ブロックベースのコーディング効率は、変換コーディングのために、現在の残差ブロックを矩形状（正方形を含む）のパーティションであり得る１つまたは複数の変換パーティションに分割することによって改善され得る。いくつかの実装形態では、変換分割を使用するビデオコーディングは、均一変換分割スキームを選択することを含み得る。例えば、ブロック６１０などの現在の残差ブロックは、６４×６４ブロックであり得るとともに、６４×６４変換を使用して分割することなく変換され得る。
【００６３】
図６には明示的に示されていないが、残差ブロックは、均一変換分割スキームを使用して変換分割され得る。例えば、６４×６４残差ブロックは、４個の３２×３２変換ブロックを含む均一変換分割スキームを使用するか、１６個の１６×１６変換ブロックを含む均一変換分割スキームを使用するか、６４個の８×８変換ブロックを含む均一変換分割スキームを使用するか、または２５６個の４×４変換ブロックを含む均一変換分割スキームを使用して変換分割され得る。
【００６４】
いくつかの実装形態では、変換分割を使用するビデオコーディングは、マルチフォーム変換パーティションコーディングを使用して残差ブロックの複数の変換ブロックサイズを特定することを含み得る。いくつかの実装形態では、マルチフォーム変換パーティションコーディングは、現在のブロックサイズ変換を使用して現在のブロックを変換するのか、それとも現在のブロックを分割して各パーティションをマルチフォーム変換パーティションコーディングすることによって現在のブロックを変換するのかを再帰的に判定することを含み得る。例えば、図６に示される左下のブロック６１０が６４×６４残差ブロックであり得る場合、マルチフォーム変換パーティションコーディングは、６４×６４変換を使用して現在の６４×６４残差ブロックをコーディングするのか、それともその６４×６４残差ブロックを４つの３２×３２ブロック６２０などの複数のパーティションに分割して各パーティションをマルチフォーム変換パーティションコーディングすることによってその６４×６４残差ブロックをコーディングするのかを判定することを含み得る。いくつかの実装形態では、現在のブロックを変換分割するかどうかの判定は、現在のブロックサイズ変換を使用して現在のブロックを符号化する場合のコストを、パーティションサイズ変換を使用して各パーティションを符号化する場合のコストの合計と比較することに基づき得る。
【００６５】
図７は、本開示の実装形態によるブロック境界を含む入力フレームの一部分の例を示す。入力フレームの部分７００は、左上に第１のブロック７１０、右上に第２のブロック７２０、左下に第３のブロック７３０、右下に第４のブロック７４０を含む。この入力フレームの部分７００は、第１のブロック７１０と第２のブロック７２０との間の垂直ブロック境界である第１のブロック境界７５０と、第１のブロック７１０と第３のブロック７３０との間の水平ブロック境界である第２のブロック境界７６０と、第３のブロック７３０と第４のブロック７４０との間の垂直ブロック境界である第３のブロック境界７７０と、第２のブロック７２０と第４のブロック７４０との間の水平ブロック境界である第４のブロック境界７８０とを含む。
【００６６】
第１のブロック７１０および第２のブロック７２０は、フレームによってキャプチャされた第１のオブジェクトまたは視覚要素に対応するコンテンツを含むことを示す点描の背景で示されている。第３のブロック７３０および第４のブロック７４０は、フレームによってキャプチャされた第２のオブジェクトまたは視覚要素に対応するコンテンツを含むことを示す白色の背景で示されている。フレームによってキャプチャされた第１のオブジェクトと第２のオブジェクトとの間のエッジは、第２のブロック境界７６０と第４のブロック境界７８０に対応し、７９０の太い破線で示されている。
【００６７】
なお、図７には明示的に示されていないが、各ブロック７１０，７２０，７３０，７４０はピクセルを含み得る。例えば、各ブロック７１０，７２０，７３０，７４０は、８×８ピクセルブロックであり得る。
【００６８】
図４に関連して説明した符号化などのような画像またはビデオの符号化は、量子化によって生じるブロック境界に沿った歪みであり得るブロックノイズアーチファクトなどのアーチファクトまたは歪みをもたらし得る。例えば、図７に示された入力フレームの部分７００の符号化は、図８に示された再構成画像部分に示されるようなブロックノイズアーチファクトをもたらし得る。
【００６９】
図８は、本開示の実装形態によるブロックアーチファクトを含む再構成フレームの一部分の例を示す。図８に示された再構成フレームの部分８００は、この図８に示された再構成フレームの部分８００がブロックノイズアーチファクトを含むという点を除いて、図７に示された入力フレームの部分７００に対応し得る。
【００７０】
図８は、左上に第１のブロック８１０、右上に第２のブロック８２０、左下に第３のブロック８３０、右下に第４のブロック８４０を含むとともに、第１のブロック８１０と第２のブロック８２０との間の垂直ブロック境界である第１のブロック境界８５０と、第１のブロック８１０と第３のブロック８３０との間の水平ブロック境界である第２のブロック境界８６０と、第３のブロック８３０と第４のブロック８４０との間の垂直ブロック境界である第３のブロック境界８７０と、第２のブロック８２０と第４のブロック８４０との間の水平ブロック境界である第４のブロック境界８８０とを含む。
【００７１】
図８に示された第１のブロック８１０は、この図８に示された第１のブロック８１０が濃い点描を用いて示されるブロックノイズ量子化エラーを示すという点を除いて、図７に示された第１のブロック７１０に対応する。図８に示された第２のブロック８２０は、図７に示された第２のブロック７２０に対応する。図８に示された第３のブロック８３０は、図７に示された第３のブロック７３０に対応する。図８に示された第４のブロック８４０は、この図８に示された第４のブロック８４０が薄い点描を用いて示されるブロックノイズ量子化エラーを示すという点を除いて、図７に示された第４のブロック７４０に対応する。
【００７２】
図７に関連して説明したオブジェクトと同様、図８に示された第１のブロック８１０および第２のブロック８２０は、フレームによってキャプチャされた第１のオブジェクトまたは視覚要素に対応するコンテンツを含み、図８に示された第３のブロック８３０および第４のブロック８４０は、フレームによってキャプチャされた第２のオブジェクトまたは視覚要素に対応するコンテンツを含む。フレームによってキャプチャされた第１のオブジェクトと第２のオブジェクトとの間のエッジは、第２のブロック境界８６０と第４のブロック境界８８０に対応し、８９０の太い破線で示されている。
【００７３】
なお、図８には明示的に示されていないが、各ブロック８１０，８２０，８３０，８４０はピクセルを含み得る。例えば、各ブロック８１０，８２０，８３０，８４０は、８×８ピクセルブロックであり得る。
【００７４】
図８に示された再構成フレームの部分８００のデブロッキングは、第１のブロック境界８５０に沿ったブロックノイズアーチファクトや第３のブロック境界８７０に沿ったブロックノイズアーチファクトなどのブロック境界に沿ったブロックノイズアーチファクトを低減または最小化すること、および、第２のブロック境界８６０および第４のブロック境界８８０に沿ったオブジェクトエッジ８９０を維持または最小限の境界曖昧さとすることを含み、ブロックノイズアーチファクトに対応するブロック間の差と、オブジェクトエッジに対応するブロック間の差とを区別することを含み得る。
【００７５】
図９は、本開示の実装形態によるピクセルの行にピクセル粒度（pixel granularity）を有するブロックアーチファクトを含む再構成フレームの一部分の例を示す。図９に示された再構成フレームの部分９００は、この図９に示された再構成フレームの部分９００ではピクセルの行にピクセルまたはピクセル位置が明示的に表されており、ブロック境界についての参照は明瞭化のために省略されているという点を除いて、図８に示された再構成フレームの部分８００に対応し得る。
【００７６】
図９は、図８に示された第１のブロック８１０に対応する左上の第１のブロック９１０と、図８に示された第２のブロック８２０に対応する右上の第２のブロック９２０と、図８に示された第３のブロック８３０に対応する左下の第３のブロック９３０と、図８に示された第４のブロック８４０に対応する右下の第４のブロック９４０とを含む。
【００７７】
現在のブロックであり得る第３のブロック９３０は、図９において左から右に順に明瞭化のためにｃ０，ｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６，ｃ７で表示される、第３のブロック９３０を水平に横切る行に沿ったピクセルなどのピクセルを含み得る。水平に隣接するブロックなどの隣接ブロックであり得る第４のブロック９４０は、図９において左から右に順に明瞭化のためにａ０，ａ１，ａ２，ａ３，ａ４，ａ５，ａ６，ａ７で表示される、第４のブロック９４０を水平に横切る行に沿ったピクセルなどのピクセルを含み得る。
【００７８】
第３のブロック９３０のデブロッキングは、現在のブロック（第３のブロック９３０）の行に沿ったピクセルｃ０，ｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６，ｃ７および水平方向に隣接するブロック（第４のブロック９４０）の行に沿ったピクセルａ０，ａ１，ａ２，ａ３，ａ４，ａ５，ａ６，ａ７のうちの１つ以上に基づいて、図８に示された第４のブロック境界８８０に対応し得る現在のブロック（第３のブロック９３０）と隣接ブロック（第４のブロック９４０）のブロック境界に沿った現在のブロック（第３のブロック９３０）の行のピクセルｃ０，ｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６，ｃ７の１つ以上をデブロッキングすることを含み得る。
【００７９】
第２のブロック１０２０のデブロッキングは、現在のブロック（第２のブロック１０２０）の列に沿ったピクセルｃ０，ｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６，ｃ７および垂直方向に隣接するブロック（第４のブロック１０４０）の列に沿ったピクセルａ０，ａ１，ａ２，ａ３，ａ４，ａ５，ａ６，ａ７のうちの１つ以上に基づいて、図８に示された第３のブロック境界８７０に対応し得る現在のブロック（第２のブロック１０２０）と垂直方向に隣接するブロック（第４のブロック１０４０）のブロック境界に沿った現在のブロック（第２のブロック１０２０）の列のピクセルｃ０，ｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６，ｃ７の１つ以上をデブロッキングすることを含み得る。
【００８０】
図１０は、本開示の実装形態によるピクセルの列にピクセル粒度（pixel granularity）を有するブロックアーチファクトを含む再構成フレームの一部分の例を示す。図１０に示された再構成フレームの部分１０００は、この図１０に示された再構成フレームの部分１０００ではピクセルの列にピクセルまたはピクセル位置が明示的に表されており、ブロック境界についての参照は明瞭化のために省略されているという点を除いて、図８に示された再構成フレームの部分８００に対応し得る。
【００８１】
図１０は、図８に示された第１のブロック８１０に対応する左上の第１のブロック１０１０と、図８に示された第２のブロック８２０に対応する右上の第２のブロック１０２０と、図８に示された第３のブロック８３０に対応する左下の第３のブロック１０３０と、図８に示された第４のブロック８４０に対応する右下の第４のブロック１０４０とを含む。
【００８２】
現在のブロックであり得る第２のブロック１０２０は、図１０において上から下に順に明瞭化のためにｃ０，ｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６，ｃ７で表示される、第２のブロック１０２０を垂直に横切る列に沿ったピクセルなどのピクセルを含み得る。垂直に隣接するブロックなどの隣接ブロックであり得る第４のブロック１０４０は、図１０において上から下に順に明瞭化のためにａ０，ａ１，ａ２，ａ３，ａ４，ａ５，ａ６，ａ７で表示される、第４のブロック１０４０を垂直に横切る列に沿ったピクセルなどのピクセルを含み得る。
【００８３】
第２のブロック１０２０のデブロッキングは、現在のブロック（第２のブロック１０２０）の列に沿ったピクセルｃ０，ｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６，ｃ７および垂直方向に隣接するブロック（第４のブロック１０４０）の列に沿ったピクセルａ０，ａ１，ａ２，ａ３，ａ４，ａ５，ａ６，ａ７のうちの１つ以上に基づいて、図８に示された第３のブロック境界８７０に対応し得る現在のブロック（第２のブロック１０２０）と垂直方向に隣接するブロック（第４のブロック１０４０）のブロック境界に沿った現在のブロック（第２のブロック１０２０）の列のピクセルｃ０，ｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６，ｃ７の１つ以上をデブロッキングすることを含み得る。
【００８４】
図１１は、本開示の実装形態によるデュアルデブロッキングフィルタ閾値を用いた符号化１１００の例のフローチャート図である。デュアルデブロッキングフィルタ閾値を用いた符号化１１００は、図４に示されたエンコーダ４００などのエンコーダで実行され得る。例えば、図４に示されたエンコーダ４００のフィルタリングユニット４８０が、デュアルデブロッキングフィルタ閾値を用いた符号化１１００を実行し得る。
【００８５】
デュアルデブロッキングフィルタ閾値を用いた符号化１１００は、１１１０において入力フレームを特定すること、１１２０において入力フレームを符号化すること、１１３０において符号化ビットストリームを出力すること、またはそれらの任意の組み合わせを含み得る。
【００８６】
入力フレームは、１１１０において特定され得る。例えば、エンコーダは、入力画像かまたは入力ビデオストリームもしくは信号、あるいはその一部を受信またはそれにアクセスし、入力画像かまたは入力ビデオストリームの一部を現在の入力フレームとして特定し得る。
【００８７】
１１１０で特定された入力フレームは、１１２０において符号化され得る。１１２０で入力フレームを符号化することは、１１２２において符号化フレームを生成すること、１１２４において再構成フレームを生成すること、１１２６においてデブロッキング閾値インデックスを特定すること、１１２８において符号化フレームとデブロッキング閾値インデックスとを出力ビットストリーム内に含めること、またはそれらの組み合わせを含み得る。なお、図１１では別々に示されているが、１１２２で符号化フレームを生成すること、１１２４で再構成フレームを生成すること、１１２６でデブロッキング閾値インデックスを特定すること、および１１２８で符号化フレームとデブロッキング閾値インデックスとを出力ビットストリーム内に含めることが、一体的に実行されてもよい。
【００８８】
１１２２で符号化フレームを生成することは、ブロックベースの符号化を使用することを含み得るものであり、本明細書で説明されているかもしくは文脈から明らかである場合を除いて、図４に関連して説明した符号化と同様であり得る。例えば、エンコーダは、予測ブロックを生成し、各予測ブロックと対応する入力ブロックとの差を残差として特定し、残差を変換することによって各変換係数を特定し、変換係数を量子化することによって各量子化変換係数を生成し、各量子化変換係数と動き情報などの他の符号化データとをエントロピーコーディングし得るか、またはそれらの組み合わせを実行し得る。
【００８９】
１１２４で再構成フレームを生成することは、本明細書で説明されているかもしくは文脈から明らかである場合を除いて、図４に関連して説明した再構成と同様であり得る。例えば、エンコーダは、量子化変換係数を逆量子化して各逆量子化変換係数を生成し、逆量子化変換係数を逆変換して各再構成残差を生成し、１１２２で生成された予測ブロックなどの各予測ブロックを特定し、復号化フレームを生成し（各予測ブロックと対応する再構成残差とを組み合わせることによって復号化フレームの各復号化ブロックを生成することを含み得る）、復号化フレームをフィルタリング（ループフィルタリング、デブロッキングフィルタリング、またはその両方など）してアーチファクトを低減しつつ再構成フレームを生成し得るか、またはそれらの組み合わせを実行し得る。なお、１１２４で再構成フレームの生成に関連して説明したが、デブロッキングまたはその一部は、復号化フレームの生成に続いてまたはループフィルタリングに続いて実行されてもよい。再構成フレームは、他のフレームを符号化するために、再構成フレームまたは参照フレームとして記憶されるかまたはアクセス可能とされてもよい。
【００９０】
デブロッキング閾値インデックスは、１１２６において特定され得る。いくつかの実装形態では、１１２６でデブロッキング閾値インデックスを特定することは、１１２２での符号化フレームの生成に続いて１１２４で再構成フレームの生成と同時に（例えば、組み合わせて）実行されてもよいし、または１１２４で再構成フレームの生成に続いて実行されてもよい。例えば、１１２４での再構成フレームの生成と１１２６でのデブロッキング閾値インデックスの特定は図１１では別々に示されているが、１１２４での再構成フレームの生成に関連して説明したデブロッキングは、デブロッキング閾値インデックスを特定することを含み得る。
【００９１】
１１２６でデブロッキング閾値インデックスを特定することは、第１のデブロッキング閾値インデックスを特定すること、第２のデブロッキング閾値インデックスを特定すること、またはその両方を含み得る。デブロッキング閾値インデックスは、定義済みのデブロッキング閾値のセット、グループ、または一群を特定する整数値などのインデックスであり得る。例えば、エンコーダは、定義済みのデブロッキング閾値のセットを含むテーブルまたは他のデータ記憶構造を含み得るかもしくはそれにアクセスし得るものであり、各々定義済みのデブロッキング閾値のセットは、それぞれ対応するデブロッキング閾値インデックスによってインデックス付けされるかまたは一意に特定される。
【００９２】
１１２６でデブロッキング閾値インデックスを特定することは、水平または垂直などの第１の方向にフレームをデブロッキングするための第１のデブロッキング閾値インデックスを特定すること、および第１の方向に直交する垂直または水平などの第２の方向にフレームをデブロッキングするための、第１のデブロッキング閾値インデックスとは異なり得る第２のデブロッキング閾値インデックスを特定することを含み得る。
【００９３】
一例では、第１のデブロッキング閾値インデックスはフレームの垂直ブロック境界をデブロッキングするために特定され得るものであり、第２のデブロッキング閾値インデックスはフレームの水平ブロック境界をデブロッキングするために特定され得るものである。デブロッキング閾値インデックスを特定する例は図１２に示されている。
【００９４】
符号化フレーム、デブロッキング閾値インデックス、またはその両方は、１１２８において出力ビットストリームすなわち符号化ビットストリーム内に含められ得る。例えば、デブロッキング閾値インデックスは、符号化フレームのフレームヘッダに含められ得る。このフレームヘッダは出力ビットストリーム内に含められ得るものであり、フレームヘッダまたはその一部をエントロピーコーディングすることを含み得る。
【００９５】
デブロッキング閾値インデックスを出力ビットストリーム内に含めることは、第１のデブロッキング閾値インデックスの表示を出力ビットストリーム内に含めること、および個別に、第２のデブロッキング閾値インデックスの表示を出力ビットストリーム内に含めることを含み得る。いくつかの実装形態では、第２のデブロッキング閾値インデックスの表示を出力ビットストリーム内に含めることは、第１のデブロッキング閾値インデックスと第２のデブロッキング閾値インデックスとの差などの差分デブロッキング閾値インデックス値を特定すること、および、差分デブロッキング閾値インデックスまたはその表示を第２のデブロッキング閾値インデックスとして出力ビットストリーム内に含めることを含み得る。
【００９６】
符号化ビットストリームは、１１３０において出力され得る。例えば、符号化ビットストリームまたは出力ビットストリームは、図２に示されたネットワーク２２０などのネットワークを介した信号として送信され得ることで、図１に示されたコンピューティングデバイス１００または図２に示されたコンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃなどのデバイス（図５に示されたデコーダ５００などのデコーダを含み得る）は、ネットワークを介してその信号を受信し、符号化ビデオビットストリームを復号して、現在のフレームに対応する再構成フレームまたはその一部を生成し得る。別の例では、符号化ビットストリームは、図１に示されたコンピューティングデバイス１００または図２に示されたコンピューティングおよび通信デバイス１００Ａ，１００Ｂ，１００Ｃなどのデバイスにおける図１に示されたメモリ１１０などのメモリに記憶済み符号化ビデオとして記憶され得ることで、そのメモリにアクセス可能なそのデバイスまたは任意の他のデバイスが、その記憶済み符号化ビデオを取得し得るとともに、図５に示されたデコーダ５００などのデコーダが、その符号化ビデオを復号して、現在のフレームに対応する再構成フレームまたはその一部を生成し得る。
【００９７】
デュアルデブロッキングフィルタ閾値を用いた符号化の他の実装形態も利用可能である。実装形態では、デュアルデブロッキングフィルタ閾値を用いた符号化の追加の要素を追加したり、特定の要素を組み合わせたり、および／または特定の要素を削除したりすることができる。
【００９８】
図１２は、本開示の実装形態によるデブロッキング閾値インデックスを特定１２００する例のフローチャート図である。デブロッキング閾値インデックスを特定１２００することは、図４に示されたエンコーダ４００などのエンコーダに実装され得る。例えば、図４に示されたエンコーダ４００のフィルタリングユニット４８０がデブロッキング閾値インデックスの特定１２００を実行し得る。
【００９９】
デブロッキング閾値インデックスを特定１２００することは、復号化フレームであり得る現在のフレームをデブロッキングするためのデブロッキング閾値インデックスを特定することを含み得るものであり、本明細書で説明されているかもしくは文脈から明らかである場合を除いて、図１１に示されたデブロッキング閾値インデックスの特定１１２６に類似し得る。
【０１００】
デブロッキング閾値インデックスを特定１２００することは、１２１０において共有デブロッキング（joint deblocking）閾値インデックスを特定すること、１２２０において第１の個別のデブロッキング閾値インデックスを特定すること、１２３０において第２の個別のデブロッキング閾値インデックスを特定すること、またはそれらの任意の組み合わせを含み得る。
【０１０１】
なお、図１２には別途に示されていないが、デブロッキング閾値インデックスを特定１２００することは、候補デブロッキング閾値インデックスを特定することを含み得る。候補デブロッキング閾値インデックスの各々は、それぞれ定義済みのデブロッキング閾値のセットに対応し得るか、またはそれを一意に特定し得る。例えば、エンコーダ、またはエンコーダのデブロッキング閾値インデックス特定ユニットは、候補デブロッキング閾値インデックスおよび対応するデブロッキング閾値のセットを含むテーブル（エンコーダのメモリに記憶されたテーブル、もしくはエンコーダがアクセス可能なテーブルなど）または他のデータ記憶構造からの読み出しを行い得るかもしくはそれにアクセスし得る。一例では、候補デブロッキング閾値インデックスはＮのカーディナリティ（cardinality）を有し、定義済みのデブロッキング閾値のセットはＮのカーディナリティを有し、各候補デブロッキング閾値インデックスはそれぞれ定義済みのデブロッキング閾値のセットに対応し得る。
【０１０２】
１２１０で共有デブロッキング閾値インデックスを特定することは、フレームをデブロッキングするにあたって共有エラーメトリックなどのメトリックを最小化するデブロッキング閾値のセットに対応するデブロッキング閾値インデックスを特定することを含み得るものであり、フレームをデブロッキングすることは、水平または垂直などの第１の方向においてデブロッキング閾値のセットを用いてフレームをデブロッキングすること、および第１の方向に直交し得る垂直または水平などの第２の方向においてデブロッキング閾値のセットを用いてフレームをデブロッキングすることを含み得る。共有デブロッキング閾値インデックスなどのデブロッキング閾値インデックスを特定する例は図１３に示されている。
【０１０３】
１２２０で第１の個別のデブロッキング閾値インデックスを特定することは、第１の方向において第１の個別のデブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いつつ、第２の方向において１２１０で特定された共有デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いてフレームをデブロッキングするにあたり、エラーメトリックなどのメトリックを最小化するデブロッキング閾値のセットに対応するデブロッキング閾値インデックスを特定することを含み得る。第１の個別のデブロッキング閾値インデックスなどのデブロッキング閾値インデックスを特定する例は図１３に示されている。
【０１０４】
１２３０で第２の個別のデブロッキング閾値インデックスを特定することは、第１の方向において１２２０で特定された第１の個別のデブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いつつ、第２の方向において第２の個別のデブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いてフレームをデブロッキングするにあたり、エラーメトリックなどのメトリックを最小化するデブロッキング閾値のセットに対応するデブロッキング閾値インデックスを特定することを含み得る。第２の個別のデブロッキング閾値インデックスなどのデブロッキング閾値インデックスを特定する例は図１３に示されている。
【０１０５】
図１３は、本開示の実装形態によるデブロッキング閾値インデックスを特定１３００する例のフローチャート図である。デブロッキング閾値インデックスの特定１３００は、図４に示されたエンコーダ４００などのエンコーダで実行され得る。例えば、図４に示されたエンコーダ４００のフィルタリングユニット４８０がデブロッキング閾値インデックスの特定１３００を実行し得る。
【０１０６】
デブロッキング閾値インデックスを特定１３００することは、１３１０において現在の候補デブロッキング閾値インデックスを特定すること、１３２０において現在のエラーメトリックを決定すること、１３３０において最小エラーメトリックに対応する候補デブロッキング閾値インデックスを特定すること、またはそれらの任意の組み合わせを含み得る。
【０１０７】
現在の候補デブロッキング閾値インデックスは１３１０で特定され得る。現在の候補デブロッキング閾値インデックスを特定することは、図１２に関連して説明した候補デブロッキング閾値インデックスなどの候補デブロッキング閾値インデックスのセットから現在のデブロッキング閾値インデックスを特定することを含み得る。１３１０で現在の候補デブロッキング閾値インデックスを特定することは、デブロッキング閾値の対応するセットを特定することを含み得る。
【０１０８】
例えば、図１２において１２１０で示されるような共有デブロッキング閾値インデックスを特定することがデブロッキング閾値インデックスの特定１３００を含み得るものであり、現在の候補デブロッキング閾値インデックスを特定することは、水平または垂直などの第１の方向と、第１の方向に直交し得る垂直または水平などの第２の方向において、現在のフレームまたはその一部をデブロッキングするための現在の候補デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを特定することを含み得る。
【０１０９】
別の例では、図１２において１２２０で示されるような、または図１２において１２３０で示されるような個別のデブロッキング閾値インデックスを特定することがデブロッキング閾値インデックスの特定１３００を含み得るものであり、１３１０で現在の候補デブロッキング閾値インデックスを特定することは、第１の方向において現在のフレームまたはその一部をデブロッキングするための現在の候補デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを特定するとともに、第２の方向において異なる個別のデブロッキング閾値インデックス（別々にまたは以前に特定された個別のデブロッキング閾値インデックスなど）に対応するデブロッキング閾値のセットを用いること、または、第１の方向において異なる個別のデブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いるとともに、第２の方向において現在のフレームまたはその一部をデブロッキングするための現在の候補デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを特定することを含み得る。
【０１１０】
現在の候補デブロッキング閾値インデックスに対する現在のエラーメトリックは、１３２０において決定され得る。現在のエラーメトリックを決定することは、水平または垂直などの第１の方向において現在の候補デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて現在のフレームまたはその一部をデブロッキングすること、第１の方向に直交し得る垂直または水平などの第２の方向において現在の候補デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて現在のフレームまたはその一部をデブロッキングすること、または、第１の方向および第２の方向において現在の候補デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて現在のフレームまたはその一部をデブロッキングすることを含み得る。
【０１１１】
例えば、図１２において１２１０で示されるような共有デブロッキング閾値インデックスを特定することがデブロッキング閾値インデックスの特定１３００を含み得るものであり、１３２０で現在のエラーメトリックを決定することは、第１の方向および第２の方向において現在の候補デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて現在のフレームまたはその一部をデブロッキングすることを含み得る。共有デブロッキング閾値インデックスを特定することを含む実装形態では、現在のエラーメトリックは共有エラーメトリックであり得る。
【０１１２】
別の例では、図１２において１２２０で示されるような、または図１２において１２３０で示されるような個別のデブロッキング閾値インデックスを特定することがデブロッキング閾値インデックスの特定１３００を含み得るものであり、１３２０で現在のエラーメトリックを決定することは、第１の方向において現在の候補デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて現在のフレームまたはその一部をデブロッキングするとともに、第２の方向において異なる個別のデブロッキング閾値インデックス（別々に特定された個別のデブロッキング閾値インデックスなど）に対応するデブロッキング閾値のセットを用いて現在のフレームまたはその一部をデブロッキングすること、または、第２の方向において現在の候補デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて現在のフレームまたはその一部をデブロッキングするとともに、第１の方向において異なる個別のデブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて現在のフレームまたはその一部をデブロッキングすることを含み得る。
【０１１３】
１３２０で現在のエラーメトリックを決定することは、候補再構成フレームまたはその一部を生成すること、および、候補再構成フレーム（またはその一部）と対応する入力フレーム（またはその一部）との差に基づいて、例えば、再構成候補フレームと対応する入力フレームとの差分絶対値和（ＳＡＤ：sum of absolute differences）か、差分二乗和（ＳＳＤ：sum of squared differences）か、または別のエラーメトリックを決定することなどによって、現在のエラーメトリックを特定することを含み得る。現在のエラーメトリックを決定する例は図１４に示されている。
【０１１４】
複数の候補デブロッキング閾値インデックスのうちの対応する候補デブロッキング閾値インデックスを用いて、第１の方向に現在のフレームまたはその一部をデブロッキングしたり、第２の方向に現在のフレームまたはその一部をデブロッキングしたり、または第１の方向と第２の方向に現在のフレームまたはその一部をデブロッキングしたりすることにそれぞれ対応する各エラーメトリックは、１３２５の破線矢印で示されるように決定され得る。
【０１１５】
例えば、図１２において１２１０で示されるような共有デブロッキング閾値インデックスを特定することがデブロッキング閾値インデックスの特定１３００を含み得るものであり、１３２０で現在のエラーメトリックを決定することは、複数の候補デブロッキング閾値インデックスのうちの各々対応する１つを用いて、共有エラーメトリックであり得る対応するエラーメトリックを決定することであって、第１の方向および第２の方向において各候補デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて現在のフレームまたはその一部をデブロッキングすることによって当該エラーメトリックを決定することを含み得る。
【０１１６】
いくつかの実装形態では、１３１０で現在の候補デブロッキング閾値インデックスを特定することは、複数の候補デブロッキング閾値インデックスの中から、別々に特定される個別のデブロッキング閾値インデックスを特定すること、例えば、第１の方向（または第２の方向）において現在のフレームまたはその一部をデブロッキングするための別々に特定された個別のデブロッキング閾値インデックスや、第２の方向（または第１の方向）において現在のフレームまたはその一部をデブロッキングするための現在の候補デブロッキング閾値インデックスなどを特定することを省略してもよく、また、各エラーメトリックを決定することは、第１の方向および第２の方向において、別々に特定された個別のデブロッキング閾値インデックスを用いて現在のフレームまたはその一部をデブロッキングすることに対応するエラーメトリックを決定することを省略してもよい。
【０１１７】
例えば、図１２において１２２０で示されるような、または図１２において１２３０で示されるような個別のデブロッキング閾値インデックスを特定することがデブロッキング閾値インデックスの特定１３００を含み得るものであり、１３２０で現在のエラーメトリックを決定することは、個別のデブロッキング閾値インデックス（別々に特定された個別のデブロッキング閾値インデックスなど）とは異なる（またはそれ以外の）それぞれの候補デブロッキング閾値インデックスに対応するエラーメトリック（第１のエラーメトリック）を決定することを含み得る。このエラーメトリック（第１のエラーメトリック）の決定は、第１の方向において現在の候補デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて現在のフレームまたはその一部をデブロッキングするとともに、第２の方向において個別のデブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて現在のフレームまたはその一部をデブロッキングすることによって、または、第１の方向において異なる個別のデブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて現在のフレームまたはその一部をデブロッキングするとともに、第２の方向において現在の候補デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて現在のフレームまたはその一部をデブロッキングすることによって行われる。
【０１１８】
最小エラーメトリックに対応するデブロッキング閾値インデックスは、１３３０において特定され得る。最小エラーメトリックに対応するデブロッキング閾値インデックスを特定することは、エラーメトリックのセットから最小エラーメトリックを特定することを含み得る。エラーメトリックのセット内の各エラーメトリックは、１３２０で決定されたそれぞれの現在のエラーメトリックに対応し得る。
【０１１９】
例えば、デブロッキング閾値インデックスを特定１３００することが、図１２において１２１０で示されるような共有デブロッキング閾値インデックスを特定することを含み得る場合、１３２０で現在のエラーメトリックを決定することは、各候補デブロッキング閾値インデックスに対応する各デブロッキング閾値のセットを使用して第１の方向および第２の方向に現在のフレームまたはその一部をデブロッキングすることに対応する各エラーメトリックなどのエラーメトリックを決定することを含み得るとともに、１３３０でデブロッキング閾値インデックスを特定することは、１３２０で決定されたエラーメトリックから最小エラーメトリックを特定すること、および最小エラーメトリックに対応する候補デブロッキング閾値インデックスを１３３０でのデブロッキング閾値インデックスとして特定することを含み得る。
【０１２０】
別の例では、図１２において１２００で示されるようなデブロッキング閾値インデックスを特定することは、図１２において１２１０で示されるような共有デブロッキング閾値インデックスを特定すること、図１２において１２２０で示されるような第１の個別のデブロッキング閾値インデックスを特定すること、および、図１２において１２３０で示されるような第２の個別のデブロッキング閾値インデックスを特定することを含み得る。
【０１２１】
共有デブロッキング閾値インデックスを特定することは、デブロッキング閾値のセットを用いて第１の方向に現在のフレームまたはその一部をデブロッキングするとともに、そのデブロッキング閾値のセットを用いて第２の方向に現在のフレームまたはその一部をデブロッキングすることに対応する最小共有エラーメトリックを特定することを含み得る。
【０１２２】
第１の個別のデブロッキング閾値インデックスを特定することは、エラーメトリックのセットの中から最小エラーメトリックに対応するデブロッキング閾値インデックスを特定することを含み得るものであって、エラーメトリックのセットは、最小共有エラーメトリックを含むとともに候補エラーメトリックを含み、この候補エラーメトリックは、共有デブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて第１の方向に現在のフレームまたはその一部をデブロッキングするとともに、他のデブロッキング閾値のセットを用いて第２の方向に現在のフレームまたはその一部をデブロッキングすることに対応する。
【０１２３】
第２の個別のデブロッキング閾値インデックスを特定することは、エラーメトリックのセットの中から最小エラーメトリックに対応するデブロッキング閾値インデックスを特定することを含み得るものであって、エラーメトリックのセットは、第１の個別のデブロッキング閾値インデックスに対応するエラーメトリックを含むとともに候補エラーメトリックを含み、この候補エラーメトリックは、第１の個別のデブロッキング閾値インデックスに対応するデブロッキング閾値のセットを用いて第１の方向に現在のフレームまたはその一部をデブロッキングするとともに、他のデブロッキング閾値のセットを用いて第２の方向に現在のフレームまたはその一部をデブロッキングすることに対応する。
【０１２４】
図１４は、本開示の実装形態による現在のエラーメトリックを決定１４００する例のフローチャート図である。現在のエラーメトリックの決定１４００は、図４に示されたエンコーダ４００などのエンコーダで実行され得る。例えば、図４に示されたエンコーダ４００のフィルタリングユニット４８０が現在のエラーメトリックの決定１４００を実行し得る。
【０１２５】
現在のエラーメトリックを決定１４００することは、１４１０において現在のブロックを特定すること、１４２０において再構成ブロックを生成すること、１４３０においてエラーメトリックを決定すること、またはそれらの任意の組み合わせを含み得る。
【０１２６】
なお、図１４には別途に示されていないが、現在のエラーメトリックを決定１４００することは、水平または垂直などの第１の方向において現在のフレームをデブロッキングするための第１のデブロッキング閾値のセットを特定すること、および第１の方向に直交し得る垂直または水平などの第２の方向において現在のフレームをデブロッキングするための第２のデブロッキング閾値のセットを特定することを含み得る。
【０１２７】
第１のデブロッキング閾値のセットは、図１２において１２１０で示されるように特定された共有デブロッキング閾値インデックスなどの共有デブロッキング閾値インデックスに対応し得るか、または、図１２において１２２０で示されるように特定された第１の個別のデブロッキング閾値インデックスなどの第１の個別のデブロッキング閾値インデックスに対応し得る。第２のデブロッキング閾値のセットは、共有の個別のデブロッキング閾値インデックスに対応し得るか、または、図１２において１２３０で示されるように特定された第２の個別のデブロッキング閾値インデックスなどの第２の個別のデブロッキング閾値インデックスに対応し得る。
【０１２８】
現在のフレームの現在のブロックは、１４１０において特定され得る。例えば、現在のフレームは、予測ブロックなどのブロックを含み得るとともに、そのフレームのそれぞれの現在のブロックは、ラスタ順序などのスキャン順序に基づいて特定され得る。なお、図１４には別途に示されていないが、現在のエラーメトリックを決定１４００することは、現在のブロック、現在のブロックに隣接する１つまたは複数の隣接ブロック、またはその両方についての変換ブロックサイズを示す情報を特定することを含み得る。
【０１２９】
再構成ブロックは、１４２０において生成され得る。現在のフレームが復号化フレームであり得るとともに、１４１０で特定された現在のブロックが復号化ブロックであり得る場合、１４２０で再構成ブロックを生成することは現在のブロックをデブロッキングすることを含み得る。
【０１３０】
現在のブロックをデブロッキングすることは、現在のブロックを第１の方向にデブロッキングする際に第１のデブロッキング閾値インデックスを使用し、現在のブロックを第２の方向にデブロッキングする際に第２のデブロッキング閾値インデックスを使用して、復号化ブロックであり得る現在のブロックをデブロッキングすることを含み得る。
【０１３１】
第１のデブロッキング閾値インデックスと第２のデブロッキング閾値インデックスは共有デブロッキング閾値インデックスであってもよいし、第１のデブロッキング閾値インデックスは第２のデブロッキング閾値インデックスと異なっていてもよい。例えば、特定されたデブロッキング閾値インデックスが共有デブロッキング閾値インデックスであり得る場合、現在のブロックをデブロッキングすることは、復号化ブロックを水平方向にデブロッキングする際には、その特定されたデブロッキング閾値インデックスを水平デブロッキング閾値インデックスとして用い、復号化ブロックを垂直方向にデブロッキングする際には、その特定されたデブロッキング閾値インデックスを垂直デブロッキング閾値インデックスとして用いることを含み得るか、または、復号化ブロックを垂直方向に垂直デブロッキングする際には、その特定されたデブロッキング閾値インデックスを垂直デブロッキング閾値インデックスとして用い、復号化ブロックを水平方向に水平デブロッキングする際には、その特定されたデブロッキング閾値インデックスを水平デブロッキング閾値インデックスとして用いることを含み得る。現在のブロックをデブロッキングする例は図１５に示されている。
【０１３２】
図１４に示されるように、現在のエラーメトリックを決定１４００することは、１４２５の破線矢印によって示されるように、現在のフレームのブロック毎にそれぞれの再構成ブロックを生成することを含み得る。例えば、現在のフレームのブロック毎にそれぞれの再構成ブロックが１４２０で生成され得る場合、現在のブロックを第１の方向および第２の方向にデブロッキングすることを含み得る。なお、図１４には別途に示されていないが、現在のエラーメトリックを決定１４００することは、現在のブロックを第１の方向にデブロッキングすることによって現在のフレームのブロック毎にそれぞれ部分再構成ブロックを生成すること、および対応する部分再構成ブロックを第２の方向にデブロッキングすることによって現在のフレームのブロック毎に再構成ブロックを生成することを含み得る。
【０１３３】
現在のエラーメトリックは、１４３０において決定され得る。現在のエラーメトリックは、現在の再構成フレーム（またはその一部）と対応する入力フレーム（またはその一部）との差に基づいて、例えば、現在の再構成フレームと対応する入力フレームとの差分絶対値和か、差分二乗和か、または別のエラーメトリックを決定することなどによって、決定され得る。
【０１３４】
図１５は、本開示の実装形態による現在のブロックをデブロッキング１５００する例のフローチャート図である。現在のブロックをデブロッキング１５００することは、再構成ブロックを生成することを含み得るものであり、図４に示されたエンコーダ４００などのエンコーダで実行され得る。例えば、図４に示されたエンコーダ４００のフィルタリングユニット４８０が現在のブロックのデブロッキング１５００を実行し得る。
【０１３５】
現在のブロックをデブロッキングすることは、第１のデブロッキング閾値インデックスに基づいて、または第１のデブロッキング閾値インデックスと第２のデブロッキング閾値インデックスとに基づいて現在のブロックをデブロッキングすることを含み得る。例えば、第１のデブロッキング閾値インデックスが共有デブロッキング閾値インデックスであり得る場合、現在のブロックをデブロッキングすることは、共有デブロッキング閾値インデックスに基づいて第１の方向に現在のブロックをデブロッキングすること、および共有デブロッキング閾値インデックスに基づいて第２の方向に現在のブロックをデブロッキングすることを含み得る。別の例では、第１のデブロッキング閾値インデックスが第１の個別のデブロッキング閾値インデックスであり得るとともに、第２のデブロッキング閾値インデックスが第２の個別のデブロッキング閾値インデックスであり得る場合、現在のブロックをデブロッキングすることは、第１の個別のデブロッキング閾値インデックスに基づいて第１の方向に現在のブロックをデブロッキングすること、および第２の個別のデブロッキング閾値インデックスに基づいて第２の方向に現在のブロックをデブロッキングすることを含み得る。
【０１３６】
現在のブロックは、ブロック境界、境界線、ブロックエッジ、またはブロック辺を有し得る。例えば、図６〜１０に示されるように、現在のブロックが４つのブロック境界を有し得る場合、上部ブロック境界や下部ブロック境界などの垂直方向における２つのブロック境界と、左ブロック境界や右ブロック境界などの水平方向における２つのブロック境界とを含み得る。現在のブロックが複数の隣接ブロックに対してすぐ隣りに存在し得る場合、例えば、複数の隣接ブロックは、上部ブロック境界に沿って現在のブロックに隣接し得る現在のブロックの上方の隣接ブロック、下部ブロック境界に沿って現在のブロックに隣接し得る現在のブロックの下方の隣接ブロック、左ブロック境界に沿って現在のブロックに隣接し得る現在のブロックの左の隣接ブロック、右ブロック境界に沿って現在のブロックに隣接し得る現在のブロックの右の隣接ブロックなどである。現在のブロックおよび隣接ブロックの各々は、それぞれの変換ブロックに対応し得る。例えば、現在のブロックがＮ×Ｎブロックであり得る場合にＮ×Ｎ変換ブロックに対応してもよいし、またはｘ２Ｎ／ｘ×Ｎ／ｘ変換ブロックなどのより小さな変換ブロックに対応してもよい。
【０１３７】
図１５に示されるように、現在のブロックをデブロッキング１５００することは、１５１０において現在の方向を特定すること、１５２０において現在のブロック境界を特定すること、１５３０において現在のデブロッキング閾値のサブセットを特定すること、１５４０においてピクセルを特定すること、１５５０において非平坦度係数（non-flatness factor）を決定すること、１５６０においてデブロッキングするかどうかを決定すること、１５７０においてデブロッキングパラメータを特定すること、またはそれらの組み合わせを含み得る。
【０１３８】
現在の方向は１５１０において特定され得る。例えば、現在の方向は、水平または垂直などの第１の方向、またはその第１の方向に直交し得る垂直または水平などの第２の方向として特定され得る。
【０１３９】
１５１０で現在の方向を特定することは、現在のフレームを現在の方向にデブロッキングするための現在のデブロッキング閾値インデックスを特定することを含み得る。例えば、現在のフレームを現在の方向にデブロッキングするための現在のデブロッキング閾値インデックスは、図１３において１３１０で示されるように特定され得る。現在のフレームを現在の方向にデブロッキングするための現在のデブロッキング閾値インデックスを特定することは、現在のフレームを現在の方向にデブロッキングするための現在のデブロッキング閾値インデックスに関連付けられた現在のデブロッキング閾値のセット、グループ、または一群を特定することを含み得る。例えば、エンコーダは、現在のデブロッキング閾値インデックスおよび対応するデブロッキング閾値を含むテーブル（エンコーダのメモリに記憶されたテーブル、もしくはエンコーダがアクセス可能なテーブルなど）または他のデータ記憶構造からの読み出しを行い得るかもしくはそれにアクセスし得る。
【０１４０】
現在のブロック境界は、１５２０において特定され得る。例えば、現在の方向が垂直であり得る場合、現在のブロックの上辺か、上部境界線か、もしくは上部エッジに対応する水平ブロック境界が現在のブロック境界として特定され得るか、または現在のブロックの下辺か、下部境界線か、もしくは下部エッジに対応する水平ブロック境界が現在のブロック境界として特定され得る。別の例では、現在の方向が水平であり得る場合、現在のブロックの左辺か、左境界線か、もしくは左エッジに対応する垂直ブロック境界が現在のブロック境界として特定され得るか、または現在のブロックの右辺か、右境界線か、もしくは右エッジに対応する垂直ブロック境界が現在のブロック境界として特定され得る。
【０１４１】
現在のブロック境界をデブロッキングするための現在のデブロッキング閾値のサブセットは１５３０において特定され得る。１５３０で現在のデブロッキング閾値のサブセットを特定することは、１５２０で特定された現在のブロック境界に対応する現在の最小変換ブロックサイズを特定することを含み得る。
【０１４２】
１５３０で現在のブロック境界に対応する現在の最小変換ブロックサイズを特定することは、現在のブロック境界に沿った各変換ブロックであって、現在のブロックに対応する変換ブロックか、現在のブロック境界に沿って現在のブロックに隣接する変換ブロックか、もしくはその両方を含み得る各変換ブロックの変換ブロックサイズを特定することを含み得る。
【０１４３】
例えば、図８において、現在のブロックが右上ブロック８２０であり、現在の方向が水平であり、現在のブロック境界８５０が現在のブロック８２０と水平に隣接するブロック８１０との間の垂直境界であり、現在のブロック８２０が１６×１６ブロックであり、現在のブロック８２０の変換ブロックサイズが１６×１６であり、隣接ブロック８１０の変換ブロックサイズが８×８であり、現在の最小変換ブロックサイズが８×８であり得る。
【０１４４】
図１５に示されるように、１５３０で現在のデブロッキング閾値のサブセットを特定することは、現在の最小変換ブロックサイズに基づいて現在のデブロッキング閾値のサブセットを特定することを含み得るものであって、これは、現在のデブロッキング閾値インデックスに基づいて特定されたデブロッキング閾値のセットであり得る現在のデブロッキング閾値のセットから、現在のデブロッキング閾値のサブセットを特定することを含み得る。
【０１４５】
例えば、現在のデブロッキング閾値インデックスに基づいて特定された現在のデブロッキング閾値のセットが、それぞれ利用可能な変換ブロックサイズに対応するデブロッキング閾値のサブセットを含み得る場合、１５３０で現在のデブロッキング閾値のサブセットを特定することは、現在のデブロッキング閾値のセットから現在の最小変換ブロックサイズに対応するデブロッキング閾値のサブセットを特定することを含み得る。現在のデブロッキング閾値のサブセットは現在のデブロッキング閾値として特定され得る。例えば、デブロッキング閾値の１つ以上が対応する最小変換ブロックサイズに関連付けられ得る場合、現在の最小変換ブロックサイズに関連付けられたデブロッキング閾値のサブセットが現在のデブロッキング閾値として特定され得る。
【０１４６】
いくつかの実装形態では、現在の方向における最初のブロック境界での最小変換ブロックサイズが現在の方向における現在のブロックに対して反対側のブロック境界での以前に特定された最小変換ブロックサイズと一致し得る場合、反対側のブロック境界をデブロッキングするために特定されたデブロッキング閾値が現在のブロック境界をデブロッキングするためのデブロッキング閾値として特定され得る。いくつかの実装形態では、現在の方向における現在のブロック境界での最小変換ブロックサイズが現在の方向における現在のブロックに対して反対側のブロック境界での以前に特定された最小変換ブロックサイズと相違し得る場合、現在のブロック境界をデブロッキングするためのデブロッキング閾値は反対側のブロック境界をデブロッキングするために特定されたデブロッキング閾値とは別に特定され得る。
【０１４７】
１５３０で現在のデブロッキング閾値のサブセットを特定することは、現在のブロック境界をデブロッキングするための現在のデブロッキング判定閾値を特定することを含み得る。例えば、１５３０で特定された現在のデブロッキング閾値のサブセットが現在のデブロッキング判定閾値を含み得る場合、現在のデブロッキング判定閾値は現在のデブロッキング閾値のサブセットから特定され得る。
【０１４８】
現在のピクセルのセット、グループ、または一群などの現在のピクセルは、１５４０において特定され得る。現在のピクセルは、現在のブロック、現在の方向において現在のブロック境界に沿って現在のブロックに隣接する隣接ブロック、またはその両方からのピクセルを含み得る。例えば、１５１０で特定された現在の方向が垂直であり、現在のブロックがピクセルの列を含み、隣接ブロックが対応するピクセルの列を含み得る場合、１５４０で現在のピクセルを特定することは、現在のブロックの現在の列からの定義済みのカーディナリティ、数、またはカウント（Ｎ）のピクセル（例えば、現在のブロック境界に最も近い現在のブロックの現在の列からのＮピクセルなど）を特定することを含み得るとともに、隣接ブロックの現在の列からの定義済みのカーディナリティのピクセル（例えば、現在のブロック境界に最も近い隣接ブロックの現在の列からのＮピクセルなど）を特定することを含み得る。いくつかの実装形態では、現在のブロックから特定されたピクセルのカーディナリティは、隣接ブロックから特定されたピクセルのカーディナリティと異なり得る。
【０１４９】
非平坦度係数などのメトリックは、１５５０において決定され得る。非平坦度係数は、特定されたピクセルのセットの平坦度または非平坦度を示し得る。例えば、現在の非平坦度係数は、現在のブロックにおいて特定されたピクセルのセット（１５４０で特定された現在のブロックのピクセルなど）の平坦度を示し得るとともに、隣接する非平坦度係数は、隣接ブロックの対応するピクセルの平坦度または非平坦度を示し得る。例えば、平坦度メトリックまたは係数、あるいは非平坦度メトリックまたは係数は、対応するピクセル間の最大差を示し得る。
【０１５０】
例えば、図９において、現在のブロックが左下ブロック９３０であり、現在のブロック境界が現在のブロック９３０と隣接ブロック９４０（隣接する復号化ブロックであり得る）との間の垂直境界であり得る。現在のブロック９４０の各行についてそれぞれの現在の平坦度係数が特定され得るとともに、隣接ブロック９４０の各行についてそれぞれの隣接平坦度係数が特定され得る。一例では、現在のブロック９３０の上から５行目の現在の平坦度係数は、ｃ０，ｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６，ｃ７と表示されたピクセルに基づいて特定され得るとともに、隣接ブロック９４０の上から５行目の隣接平坦度係数は、ａ０，ａ１，ａ２，ａ３，ａ４，ａ５，ａ６，ａ７と表示されたピクセルに基づいて特定され得る。
【０１５１】
一例では、現在のブロック（ｃ）９３０の現在の平坦度係数または非平坦度係数は、ｃ４と表示されたピクセルとｃ７と表示されたピクセルとの差の絶対値、ｃ５と表示されたピクセルとｃ７と表示されたピクセルとの差の絶対値、およびｃ６と表示されたピクセルとｃ７と表示されたピクセルとの差の絶対値のうちの最大値に基づいて特定され、次式のように表され得る。
【０１５２】
Ｎｆ（ｃ）＝ｍａｘ（｜ｃ４−ｃ７｜，｜ｃ５−ｃ７｜，｜ｃ６−ｃ７｜）  ［式１］
隣接ブロック（ａ）の対応する隣接平坦度係数または非平坦度係数は、ａ０と表示されたピクセルとａ１と表示されたピクセルとの差の絶対値、ａ０と表示されたピクセルとａ２と表示されたピクセルとの差の絶対値、およびａ０と表示されたピクセルとａ３と表示されたピクセルとの差の絶対値のうちの最大値に基づいて特定され、次式のように表され得る。
【０１５３】
Ｎｆ（ａ）＝ｍａｘ（｜ａ０−ａ１｜，｜ａ０−ａ２｜，｜ａ０−ａ３｜）  ［式２］
別の例では、図１０において、現在のブロックが右上ブロック１０２０であり、現在のブロック境界が現在のブロック１０２０と垂直に隣接するブロック１０４０との間の水平境界であり得る。現在のブロック１０２０の各列について現在の平坦度係数が特定され得るとともに、隣接ブロック１０４０の各列について隣接平坦度係数が特定され得る。例えば、現在のブロック１０２０の左から５列目の現在の平坦度係数は、ｃ０，ｃ１，ｃ２，ｃ３，ｃ４，ｃ５，ｃ６，ｃ７と表示されたピクセルに基づいて特定され得るとともに、隣接ブロック１０４０の左から５列目の隣接平坦度係数は、ａ０，ａ１，ａ２，ａ３，ａ４，ａ５，ａ６，ａ７と表示されたピクセルに基づいて特定され得る。
【０１５４】
図１５に示されるように、現在のデブロッキング判定は１５６０において特定され得る。例えば、１５４０で特定されたピクセルをデブロッキングするかどうかは、１５３０で特定された現在のデブロッキング判定閾値と１５５０で決定された非平坦度係数とに基づいて１５６０で判定され得る。例えば、現在のブロック境界がフレームによってキャプチャされたコンテンツのエッジと一致し得る場合、現在のブロック境界に沿ったピクセルのデブロッキングが省略され得る。別の例では、ブロック境界がフレームによってキャプチャされたコンテンツ内のエッジとは不一致であり得る場合、現在のブロック境界に沿ったピクセルがデブロッキングされ得る。
【０１５５】
現在のブロック境界に沿った現在のブロックにおいて１５４０で特定されたピクセルをデブロッキングするかどうかを判定することは、現在のブロックの現在の行または列について１５５０で特定された現在の非平坦度係数（Ｎｆ（ｃ））が１５３０で特定された現在のデブロッキング判定閾値未満であるかどうかを判定すること、および隣接ブロックの隣接非平坦度係数（Ｎｆ（ａ））が現在のデブロッキング判定閾値未満であるかどうかを判定することを含み得る。
【０１５６】
例えば、現在のブロックの現在の行または列の現在の非平坦度係数（Ｎｆ（ａ））がデブロッキング判定閾値未満であり、隣接ブロックの現在の行または列の隣接非平坦度係数（Ｎｆ（ａ））がデブロッキング判定閾値未満であり得る場合、現在のブロック境界の現在の行または列についてデブロッキングすることを示す判定が特定され得る。
【０１５７】
別の例では、現在のブロックの現在の行または列の現在の非平坦度係数（Ｎｆ（ａ））がデブロッキング判定閾値未満であり、隣接ブロックの現在の行または列の隣接非平坦度係数（Ｎｆ（ａ））が少なくともデブロッキング判定閾値（デブロッキング判定閾値以上など）であり得る場合、現在のブロック境界の現在の行または列についてのデブロッキングを省略することを示す判定が特定され得る。
【０１５８】
別の例では、現在のブロックの現在の行または列の現在の非平坦度係数（Ｎｆ（ａ））が少なくともデブロッキング判定閾値（デブロッキング判定閾値以上など）であり、隣接ブロックの現在の行または列の隣接非平坦度係数（Ｎｆ（ａ））がデブロッキング判定閾値未満であり得る場合、現在のブロック境界の現在の行または列についてのデブロッキングを省略することを示す判定が特定され得る。
【０１５９】
別の例では、現在のブロックの現在の行または列の現在の非平坦度係数（Ｎｆ（ａ））が少なくともデブロッキング判定閾値（デブロッキング判定閾値以上など）であり、隣接ブロックの現在の行または列の隣接非平坦度係数（Ｎｆ（ａ））が少なくともデブロッキング判定閾値（デブロッキング判定閾値以上など）であり得る場合、現在のブロック境界の現在の行または列についてのデブロッキングを省略することを示す判定が特定され得る。
【０１６０】
１５６０で特定されたデブロッキング判定は１５４０で特定されたピクセルについてデブロッキングすることを示し得るものであり、１５４０で特定されたピクセルをデブロッキングする際のデブロッキングフィルタ、デブロッキングフィルタタイプ、デブロッキングフィルタ強度、またはそれらの組み合わせなどのデブロッキングパラメータまたはデブロッキングフィルタパラメータが１５７０において特定され得る。デブロッキングパラメータを特定することは、デブロッキング判定閾値とは異なり得る１つまたは複数のデブロッキングフィルタ閾値を現在のデブロッキング閾値のサブセットから特定すること、および特定されたデブロッキングフィルタ閾値に基づいてデブロッキングパラメータを特定することを含み得る。例えば、デブロッキングフィルタ閾値は、予測モード、動きベクトルの一貫性、変換ブロックサイズ、変換ブロックタイプなどに基づいて特定または調整され得る。
【０１６１】
現在のブロック境界をデブロッキングすることは、１５６２および１５７２の破線矢印で示されるように、現在のブロックの各行または各列について１５４０でピクセルを特定すること、現在のブロックの各行または各列について１５５０で非平坦度係数を決定すること、現在のブロックの各行または各列について１５６０でデブロッキングするかどうかを判定すること、現在のブロックの各行または各列について１５７０でデブロッキングパラメータを特定すること、またはそれらの組み合わせを含み得る。
【０１６２】
現在の方向において現在のブロックをデブロッキングすることは、１５７４の破線矢印で示されるように、現在の方向について１５２０で各ブロック境界を特定すること、それぞれのブロック境界毎に、対応するブロック境界について１５３０で現在のデブロッキング閾値のサブセットを特定すること、対応するブロック境界における現在のブロックの各行または各列について１５４０でピクセルを特定すること、対応するブロック境界における現在のブロックの各行または各列について１５５０で非平坦度係数を決定すること、対応するブロック境界における現在のブロックの各行または各列について１５６０でデブロッキングするかどうかを判定すること、対応するブロック境界における現在のブロックの各行または各列について１５７０でデブロッキングパラメータを特定すること、またはそれらの組み合わせを含み得る。
【０１６３】
現在のブロックをデブロッキングすることは、１５７６の破線矢印で示されるように、１５１０で各方向を特定すること、それぞれの方向毎に、対応する方向について１５２０で各ブロック境界を特定すること、それぞれのブロック境界毎に、対応するブロック境界について１５３０で現在のデブロッキング閾値のサブセットを特定すること、対応するブロック境界における現在のブロックの各行または各列について１５４０でピクセルを特定すること、対応するブロック境界における現在のブロックの各行または各列について１５５０で非平坦度係数を決定すること、対応するブロック境界における現在のブロックの各行または各列について１５６０でデブロッキングするかどうかを判定すること、対応するブロック境界における現在のブロックの各行または各列について１５７０でデブロッキングパラメータを特定すること、またはそれらの組み合わせを含み得る。
【０１６４】
図１６は、本開示の実装形態によるデュアルデブロッキングフィルタ閾値を用いた復号化１６００の例のフローチャート図である。デュアルデブロッキングフィルタ閾値を用いた復号化１６００は、図５に示されたデコーダ５００などのデコーダで実行され得る。
【０１６５】
デュアルデブロッキングフィルタ閾値を用いた復号化１６００は、１６１０において符号化フレームを特定すること、１６２０において復号化フレームを生成すること、１６３０においてデブロッキング閾値インデックスを特定すること、１６４０において再構成フレームを生成すること、１６５０において再構成フレームを出力すること、またはそれらの任意の組み合わせを含み得る。
【０１６６】
符号化フレームは１６１０において特定され得る。例えば、デコーダは、符号化ビットストリームを受信またはそれにアクセスし得るとともに、その符号化ビットストリームまたはその一部から符号化フレームを特定し得る。
【０１６７】
復号化フレームは１６２０において生成され得る。例えば、復号化フレームは、１６１０で特定された符号化フレームを復号化することによって生成され得る。復号化フレームを生成することは、復号化ブロックを生成することを含み得る。復号化ブロックを生成することは、符号化ビットストリームの一部を復号化することを含み得る。
【０１６８】
デブロッキング閾値インデックスは、１６３０において特定され得る。例えば、デブロッキング閾値インデックスは、現在の（再構成または復号化）フレームに関連付けられたまたはそれに対応するフレームヘッダなどの符号化ビットストリームからデブロッキング閾値インデックスをデコード、読み取り、または抽出することによって特定され得る。
【０１６９】
デブロッキング閾値インデックスを特定することは、符号化ビットストリームから第１のデブロッキング閾値インデックスを特定すること、符号化ビットストリームから第２のデブロッキング閾値インデックスを特定すること、またはその両方を含み得る。例えば、デブロッキング閾値インデックスを特定することは、水平または垂直などの第１の方向に現在のフレームをデブロッキングするための第１のデブロッキング閾値インデックスを特定すること、および垂直または水平などの第２の方向に現在のフレームをデブロッキングするための第２のデブロッキング閾値インデックスを特定することを含み得る。
【０１７０】
いくつかの実装形態では、第２のデブロッキング閾値インデックスを特定することは、符号化ビットストリームから差分デブロッキング閾値インデックス値などの第２のデブロッキング閾値インデックスを示す情報を抽出すること、および差分デブロッキング閾値インデックス値と第１のデブロッキング閾値インデックスとの合計を第２のデブロッキング閾値インデックスとして特定することを含み得る。いくつかの実装形態では、第２のデブロッキング閾値インデックスを特定することは、第２のデブロッキング閾値インデックスを示す情報が差分デブロッキング閾値インデックス値を含むと判定することを含み得る。
【０１７１】
再構成フレームは、１６４０において生成され得る。再構成フレームを生成することは、復号化フレームをデブロッキングすること（これにより、再構成ブロックを生成することを含み得る）、および再構成ブロックをデブロッキングすることを含み得る。
【０１７２】
復号化フレームをデブロッキングすることは、フレームの各復号化ブロックをデブロッキングすることを含み得るものであって、これは、フレームの各復号化ブロックを特定すること、および、各復号化ブロックをデブロッキングすることによって対応する再構成ブロックを生成することを含み得るものであり、これらは、本明細書で説明されているかもしくは文脈から明らかである場合を除いて、図１４において１４１０で示されたブロック特定および図１４において１４２０で示されたブロック再構成と同様であり得る。現在のブロックをデブロッキングすることは、本明細書で説明されているかもしくは文脈から明らかである場合を除いて、図１５に示されたデブロッキングと同様であり得る。例えば、各再構成ブロックは、第１のデブロッキング閾値インデックスおよび第２のデブロッキング閾値インデックスに基づいて対応する復号化ブロックをデブロッキングすることによって生成され得る。再構成ブロックは、再構成フレームに含まれ得る。
【０１７３】
例えば、第１のデブロッキング閾値インデックスが垂直デブロッキング閾値インデックスであり得る場合、再構成フレームを生成することは、第１のデブロッキング閾値インデックスに基づく垂直デブロッキングと、第２のデブロッキング閾値インデックスに基づく水平デブロッキングとを含み得る。別の例では、第１のデブロッキング閾値インデックスが水平デブロッキング閾値インデックスであり得る場合、再構成フレームを生成することは、第１のデブロッキング閾値インデックスに基づく水平デブロッキングと、第２のデブロッキング閾値インデックスに基づく垂直デブロッキングとを含み得る。
【０１７４】
第１の方向にデブロッキングすることは、第１のデブロッキング閾値インデックスに基づいて復号化フレームを第１の方向にデブロッキングすることにより部分デブロッキングフレームを生成することを含み得る。第２の方向にデブロッキングすることは、第２のデブロッキング閾値インデックスに基づいて部分デブロッキングフレームを第２の方向にデブロッキングすることにより再構成フレームを生成することを含み得る。
【０１７５】
第１の方向または第２の方向にデブロッキングすることは、対応する（現在の）デブロッキング閾値インデックスに基づいて複数のデブロッキング閾値のセットから現在のデブロッキング閾値（１つのデブロッキング閾値のセットを含み得る）を特定することを含み得る。例えば、デコーダ、またはデコーダのデブロッキング閾値特定ユニットは、デブロッキング閾値のセットを含むテーブル（デコーダのメモリに記憶されたテーブル、もしくはデコーダがアクセス可能なテーブルなど）または他のデータ記憶構造からの読み出しを行い得るかもしくはそれにアクセスし得るとともに、第１のデブロッキング閾値インデックスに対応する第１のデブロッキング閾値のセットと、第２のデブロッキング閾値インデックスに対応する第２のデブロッキング閾値のセットとを特定し得る。
【０１７６】
再構成フレームは、１６５０において出力され得る。例えば、再構成フレームは、ユーザに対する保存または提示用に、図５に示された出力ビデオストリーム５０４などの出力ビデオストリーム内に含まれ得る。
【０１７７】
本明細書において「例」または「実装形態」という用語は、例、事例、または例証であることを意味するために使用される。本明細書において「例」または「実装形態」と記載された任意の態様または設計は、必ずしも他の態様または設計に対して好ましいまたは有利であるとして解釈されるべきではない。むしろ、「例」または「実装形態」という言葉の使用は、具体的な方法で概念を提示することを意図している。本出願で使用される用語「または」は、排他的な「または」ではなく、包括的な「または」を意味することが意図される。すなわち、他に明記されていない限り、または文脈から明らかでない限り、「ＸはＡまたはＢを含む」とは、任意の自然な包含的置換（natural inclusive permutations）を意味することを意図する。すなわち、「ＸはＡまたはＢを含む」は、ＸがＡを含む場合、ＸがＢを含む場合、ＸがＡおよびＢの両方を含む場合のいずれも満たす。さらに、本出願および添付の特許請求の範囲で使用される「１つ」は、他に明記されない限り、または単数形に向けられる文脈から明らかでない限り、「１つまたは複数」を意味すると一般に解釈されるべきである。さらに、「実装形態」または「一実装形態」という用語の使用は、そのように記載されない限り、同じ実施形態または実装形態を意味することを意図するものではない。本明細書で使用される「決定する」および「特定する」という用語、またはその変形語は、図１に示された複数のデバイスのうちの１つ以上を用いて、選択、確認、計算、検索、受信、決定、確立、取得、または、その他の方法で特定または決定することを含み得る。
【０１７８】
さらに、説明を簡単にするために、図および本明細書での説明は、シーケンスまたは一連のステップまたは段階を含み得るが、本明細書に開示される方法の要素は、様々な順序でおよび／または同時に起こり得る。また、本明細書に開示された方法の要素は、本明細書に明示的に提示および説明されていない他の要素とともに生じ得る。さらに、本明細書で説明される方法の１つまたは複数の要素が、開示された主題による方法の実装形態から省略されてもよい。
【０１７９】
送信コンピューティングおよび通信デバイス１００Ａおよび／または受信コンピューティングおよび通信デバイス１００Ｂの実装（さらにはそれに記憶されるおよび／またはそれによって実行されるアルゴリズム、方法、命令など）は、ハードウェア、ソフトウェア、または任意の組み合わせで実現することができる。ハードウェアは、例えば、コンピュータ、知的財産（ＩＰ）コア、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理アレイ、光プロセッサ、プログラマブルロジックコントローラ、マイクロコード、マイクロコントローラ、サーバ、マイクロプロセッサ、デジタル信号プロセッサ、または他の適切な回路を含むことができる。特許請求の範囲において、「プロセッサ」という用語は、前述のハードウェアのいずれかを単独でまたは組み合わせて含むものとして理解されるべきである。「信号」および「データ」という用語は互換的に使用される。さらに、送信コンピューティングおよび通信デバイス１００Ａおよび受信コンピューティングおよび通信デバイス１００Ｂの部分は、必ずしも同様に実装される必要はない。
【０１８０】
さらに、一実装形態では、例えば、送信コンピューティングおよび通信デバイス１００Ａまたは受信コンピューティングおよび通信デバイス１００Ｂは、その実行時に、本明細書に記載された各方法、アルゴリズム、および／または命令のいずれかを実行するコンピュータプログラムを使用して実装することができる。追加的または代替的に、例えば、本明細書に記載された方法、アルゴリズム、または命令のいずれかを実行するための専用ハードウェアを含み得る専用コンピュータ／プロセッサを利用することができる。
【０１８１】
送信コンピューティングおよび通信デバイス１００Ａおよび受信コンピューティングおよび通信デバイス１００Ｂは、例えば、リアルタイムビデオシステムのコンピュータ上で実装することができる。あるいは、送信コンピューティングおよび通信デバイス１００Ａはサーバに実装され得る一方、受信コンピューティングおよび通信デバイス１００Ｂはハンドヘルド通信デバイスなどのサーバとは別のデバイスに実装され得る。この場合、送信コンピューティングおよび通信デバイス１００Ａは、エンコーダ４００を使用してコンテンツを符号化ビデオ信号に符号化し、その符号化ビデオ信号を通信デバイスに送信することができる。そして、通信デバイスは、デコーダ５００を使用して符号化ビデオ信号を復号化することができる。あるいは、通信デバイスは、通信デバイス上にローカルに記憶されたコンテンツ、例えば、送信コンピューティングおよび通信デバイス１００Ａによって送信されなかったコンテンツを復号化することができる。他の適切な送信コンピューティングおよび通信デバイス１００Ａおよび受信コンピューティングおよび通信デバイス１００Ｂの実装スキームが利用可能である。例えば、受信コンピューティングおよび通信デバイス１００Ｂは、ポータブル通信デバイスではなく、概して設置型のパーソナルコンピュータであってもよく、および／またはエンコーダ４００を含むデバイスがデコーダ５００を含んでもよい。
【０１８２】
さらに、本開示の実装形態の全部または一部は、例えば有形のコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態を取ることができる。コンピュータ使用可能またはコンピュータ可読媒体は、例えば、任意のプロセッサによって、またはそれに関連して使用するために、プログラムを有形的に収容、記憶、通信、または輸送することができる任意のデバイスであり得る。媒体は、例えば、電子、磁気、光学、電磁気、または半導体デバイスであり得る。他の適切な媒体も利用可能である。
【０１８３】
上記の実装形態は、本出願の容易な理解を可能にするために説明されたものであり限定的なものではない。一方、本開示は、添付の特許請求の範囲内に含まれる様々な変形および均等の構成を包含することを意図しており、その範囲は、法律で許容されるようなすべての変形および均等の構造を包含するように最も広い解釈が与えられるべきである。
【図１】
0006959367.tif 000002
【図２】
0006959367.tif 000003
【図３】
0006959367.tif 000004
【図４】
0006959367.tif 000005
【図５】
0006959367.tif 000006
【図６】
0006959367.tif 000007
【図７】
0006959367.tif 000008
【図８】
0006959367.tif 000009
【図９】
0006959367.tif 000010
【図１０】
0006959367.tif 000011
【図１１】
0006959367.tif 000012
【図１２】
0006959367.tif 000013
【図１３】
0006959367.tif 000014
【図１４】
0006959367.tif 000015
【図１５】
0006959367.tif 000016
【図１６】
0006959367.tif 000017