IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン ダージャー インターネット インフォメーション テクノロジー カンパニー リミテッドの特許一覧

特表2024-522847ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング
<>
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図1
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図2
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図3
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図4A
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図4B
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図4C
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図4D
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図4E
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図5
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図6
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図7
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図8
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図9
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図10
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図11
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図12
  • 特表-ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-21
(54)【発明の名称】ビデオ符号化復号化のためのサイドウィンドウバイラテラルフィルタリング
(51)【国際特許分類】
   H04N 19/117 20140101AFI20240614BHJP
   H04N 19/14 20140101ALI20240614BHJP
   H04N 19/176 20140101ALI20240614BHJP
   H04N 19/82 20140101ALI20240614BHJP
【FI】
H04N19/117
H04N19/14
H04N19/176
H04N19/82
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023579005
(86)(22)【出願日】2022-06-21
(85)【翻訳文提出日】2024-02-21
(86)【国際出願番号】 US2022034255
(87)【国際公開番号】W WO2022271635
(87)【国際公開日】2022-12-29
(31)【優先権主張番号】63/213,268
(32)【優先日】2021-06-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521147444
【氏名又は名称】ベイジン ダージャー インターネット インフォメーション テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO., LTD.
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100163511
【弁理士】
【氏名又は名称】辻 啓太
(72)【発明者】
【氏名】ヤン ニン
(72)【発明者】
【氏名】シュウ シャオユウ
(72)【発明者】
【氏名】クオ チェウェイ
(72)【発明者】
【氏名】チェン ウェイ
(72)【発明者】
【氏名】チェン イーウェン
(72)【発明者】
【氏名】チュウ ホンチェン
(72)【発明者】
【氏名】ワン シエンリン
(72)【発明者】
【氏名】ユ ビン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LA00
5C159MA04
5C159MA05
5C159TA69
5C159TA70
5C159TB08
5C159TC02
5C159TC10
5C159TD02
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
本開示の実施形態は、ビデオ処理システム及び方法を提供する。ビデオ処理方法は、1つ以上のプロセッサによって、インループフィルタリングのためのビデオのビデオフレームを受信することを含んでもよい。ビデオ処理方法は、1つ以上のプロセッサによって、前記ビデオフレームの注目画素に対して、候補フィルタリングウィンドウの群から、前記注目画素をインループフィルタリングするバイラテラルフィルタリングウィンドウを選択することを更に含んでもよい。候補フィルタリングウィンドウの群は、複数のサイドフィルタリングウィンドウと1つのフルフィルタリングウィンドウとを含む。ビデオ処理方法は、1つ以上のプロセッサによって、選択されたバイラテラルフィルタリングウィンドウにより、前記ビデオフレームの前記注目画素をフィルタリングすることを更に含んでもよい。
【特許請求の範囲】
【請求項1】
1つ以上のプロセッサによって、インループフィルタリングのためのビデオのビデオフレームを受信することと、
前記1つ以上のプロセッサによって、前記ビデオフレームの注目画素に対して、複数のサイドフィルタリングウィンドウと1つのフルフィルタリングウィンドウとを含む候補フィルタリングウィンドウの群から、前記注目画素をインループフィルタリングするバイラテラルフィルタリングウィンドウを選択することと、
前記1つ以上のプロセッサによって、選択された前記バイラテラルフィルタリングウィンドウにより、前記ビデオフレームの前記注目画素をフィルタリングすることと、
を含む、バイラテラルフィルタリングによるビデオ処理方法。
【請求項2】
前記注目画素に対してバイラテラルフィルタリングウィンドウを選択することは、
前記複数のサイドフィルタリングウィンドウにより前記注目画素をフィルタリングして、複数のフィルタリングされた画素値をそれぞれ取得することと、
前記複数のフィルタリングされた画素値のうちの最適なフィルタリングされた画素値に対応するサイドフィルタリングウィンドウを前記バイラテラルフィルタリングウィンドウとして選択することと、
を更に含む、請求項1に記載のビデオ処理方法。
【請求項3】
前記最適なフィルタリングされた画素値に対応するサイドフィルタリングウィンドウを選択することは、
前記複数のフィルタリングされた画素値に対応しそれぞれが前記注目画素の対応するフィルタリングされた画素値と元の画素値との差分である複数の差分を算出することと、
前記複数のフィルタリングされた画素値から、前記複数の差分のうちの最小差分と関連するフィルタリングされた画素値を前記最適なフィルタリングされた画素値として識別することと、
を更に含む、請求項2に記載のビデオ処理方法。
【請求項4】
前記注目画素に対してバイラテラルフィルタリングウィンドウを選択することは、
前記フルフィルタリングウィンドウにより前記注目画素をフィルタリングして、フルウィンドウフィルタリングされた画素値を取得することと、
前記注目画素のフルウィンドウフィルタリングされた画素値と元の画素値との第1差分を算出することと、
前記注目画素の前記最適なフィルタリングされた画素値と元の画素値との第2差分を算出することと、
前記第1差分及び前記第2差分が所定の条件を満たす場合、前記フルフィルタリングウィンドウを前記バイラテラルフィルタリングウィンドウとして選択することと、
を更に含む、請求項2に記載のビデオ処理方法。
【請求項5】
前記所定の条件は、前記第1差分と前記第2差分との間の第3差分が所定の閾値よりも低いことである、請求項4に記載のビデオ処理方法。
【請求項6】
前記注目画素に対してバイラテラルフィルタリングウィンドウを選択することは、
候補フィルタリングウィンドウの群の、それぞれが前記注目画素と前記候補フィルタリングウィンドウ内にある前記注目画素の隣接する画素との間の画素類似度値である画素類似度値群をそれぞれ決定することと、
前記候補フィルタリングウィンドウの群から、前記画素類似度値群のうちの最適な画素類似度値に対応する候補フィルタリングウィンドウを前記バイラテラルフィルタリングウィンドウとして選択することと、
を更に含む、請求項1に記載のビデオ処理方法。
【請求項7】
各候補フィルタリングウィンドウの画素類似度値は、前記注目画素の画素値と前記候補フィルタリングウィンドウ内にある前記注目画素の隣接する画素の画素値との間に関して決定された差分の平均値である、請求項6に記載のビデオ処理方法。
【請求項8】
前記注目画素に対してバイラテラルフィルタリングウィンドウを選択することは、
前記最適な画素類似度値に対応する候補フィルタリングウィンドウがサイドフィルタリングウィンドウであれば、前記最適な画素類似度値と前記フルフィルタリングウィンドウに対して決定された画素類似度値との比較に基づいて、前記バイラテラルフィルタリングウィンドウを選択すること
を更に含む、請求項6に記載のビデオ処理方法。
【請求項9】
前記最適な画素類似度値と前記フルフィルタリングウィンドウに対して決定された画素類似度値との比較に基づいて、前記バイラテラルフィルタリングウィンドウを選択することは、
前記フルフィルタリングウィンドウの前記画素類似度値と前記最適な画素類似度値との差分が所定の閾値以下である場合、前記フルフィルタリングウィンドウを前記バイラテラルフィルタリングウィンドウとして選択すること
を更に含む、請求項8に記載のビデオ処理方法。
【請求項10】
前記ビデオフレームは、複数のビデオブロックを含み、
コンピュータによる実施される前記ビデオ処理方法は、
前記ビデオブロックがフルウィンドウフィルタリングされたものであるか又はサイドウィンドウフィルタリングされたものであるかを示すように、各ビデオブロックにフラグを付けること
を更に含む、請求項1に記載のビデオ処理方法。
【請求項11】
各ビデオブロックは、変換ユニット(TU)、符号化ユニット(CU)又は符号化ツリーユニット(CTU)である、請求項10に記載のビデオ処理方法。
【請求項12】
各サイドフィルタリングウィンドウは、フィルタリングウィンドウインデックスによって示されたフィルタリングウィンドウタイプを有する、請求項1に記載のビデオ処理方法。
【請求項13】
1つ以上のプロセッサに接続されたメモリを含み、
前記1つ以上のプロセッサは、
インループフィルタリングのためのビデオのビデオフレームを受信することと、
前記ビデオフレームの注目画素に対して、複数のサイドフィルタリングウィンドウと1つのフルフィルタリングウィンドウとを含む候補フィルタリングウィンドウの群から、前記注目画素をインループフィルタリングするバイラテラルフィルタリングウィンドウを選択することと、
選択された前記バイラテラルフィルタリングウィンドウにより、前記ビデオフレームの前記注目画素をフィルタリングすることと、
を実行するように構成される、バイラテラルフィルタリングのためのビデオ処理装置。
【請求項14】
前記注目画素に対してバイラテラルフィルタリングウィンドウを選択するために、前記1つ以上のプロセッサは、更に、
前記複数のサイドフィルタウィンドウにより前記注目画素をフィルタリングして、複数のフィルタリングされた画素値をそれぞれ取得することと、
前記複数のフィルタリングされた画素値のうちの最適なフィルタリングされた画素値に対応するサイドフィルタリングウィンドウを前記バイラテラルフィルタリングウィンドウとして選択することと、
を実行するように構成される、請求項13に記載のビデオ処理装置。
【請求項15】
前記最適なフィルタリングされた画素値に対応するサイドフィルタリングウィンドウを選択するために、前記1つ以上のプロセッサは、更に、
前記複数のフィルタリングされた画素値に対応しそれぞれが前記注目画素の対応するフィルタリングされた画素値と元の画素値との差分である複数の差分を算出することと、
前記複数のフィルタリングされた画素値から、前記複数の差分のうちの最小差分と関連するフィルタリングされた画素値を最適なフィルタリングされた画素値として識別することと、
を実行するように構成される、請求項14に記載のビデオ処理装置。
【請求項16】
前記注目画素に対してバイラテラルフィルタリングウィンドウを選択するために、前記1つ以上のプロセッサは、更に、
前記フルフィルタリングウィンドウにより前記注目画素をフィルタリングして、フルウィンドウフィルタリングされた画素値を取得することと、
前記注目画素のフルウィンドウフィルタリングされた画素値と元の画素値との第1差分を算出することと、
前記注目画素の最適なフィルタリングされた画素値と元の画素値との第2差分を算出するステップと、
前記第1差分と前記第2差分との間の第3差分が所定の閾値未満である場合、前記フルフィルタリングウィンドウを前記バイラテラルフィルタリングウィンドウとして選択することと、
を実行するように構成される、請求項14に記載のビデオ処理装置。
【請求項17】
前記注目画素に対してバイラテラルフィルタリングウィンドウを選択するために、前記1つ以上のプロセッサは、更に、
候補フィルタリングウィンドウの群の、それぞれが前記注目画素と前記注目画素の前記候補フィルタリングウィンドウ内にある隣接する画素との間の画素類似度値である画素類似度値群をそれぞれ決定することと、
前記候補フィルタリングウィンドウの群から、前記画素類似度値群のうちの最適な画素類似度値に対応する候補フィルタリングウィンドウを前記バイラテラルフィルタリングウィンドウとして選択することと、
を実行するように構成される、請求項13に記載のビデオ処理装置。
【請求項18】
前記注目画素に対してバイラテラルフィルタリングウィンドウを選択するために、前記1つ以上のプロセッサは、更に、
前記最適な画素類似度値に対応する候補フィルタリングウィンドウがサイドフィルタリングウィンドウであれば、画素類似度値と前記最適な画素類似度値との差分が所定の閾値以下であるフルフィルタリングウィンドウを前記バイラテラルフィルタリングウィンドウとして選択すること
を実行するように構成される、請求項17に記載のビデオ処理装置。
【請求項19】
前記ビデオフレームは、複数のビデオブロックを含み、各ビデオブロックは、変換ユニット(TU)、符号化ユニット(CU)又は符号化ツリーユニット(CTU)であり、
前記1つ以上のプロセッサは、更に、
各ビデオブロックにフラグを付けて、前記ビデオブロックがフルウィンドウフィルタリングされるか又はサイドウィンドウフィルタリングされるかを示すこと
を実行するように構成される、請求項13に記載のビデオ処理装置。
【請求項20】
1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサにバイラテラルフィルタリングによるビデオ処理方法を実行させる命令を記憶している非一時的コンピュータ可読記憶媒体であって、前記ビデオ処理方法は、
インループフィルタリングのためのビデオのビデオフレームを受信することと、
前記ビデオフレームの注目画素に対して、複数のサイドフィルタリングウィンドウと1つのフルフィルタリングウィンドウとを含む候補フィルタリングウィンドウの群から、前記注目画素をインループフィルタリングするバイラテラルフィルタリングウィンドウを選択することと、
選択された前記バイラテラルフィルタリングウィンドウにより、前記ビデオフレームの前記注目画素をフィルタリングすることと、
を含み、
フィルタリングされたビデオフレームは、前記非一時的コンピュータ可読記憶媒体に記憶される、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
この開示は、2021年6月22日に提出された米国仮出願第63/213,268号に基づき、その優先権を主張するものであり、その全内容を参照することにより本願に援用する。
【技術分野】
【0002】
この開示は、ビデオ符号化復号化及び圧縮に関する。より具体的には、この開示は、ビデオ符号化復号化におけるサイドウィンドウによるバイラテラルフィルタリングのためのビデオ処理システム及び方法に関する。
【背景技術】
【0003】
デジタルビデオは、デジタルテレビ、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録装置、デジタルメディアプレーヤ、ビデオゲームコンソール、スマートフォン、ビデオテレビ会議装置、ビデオストリーミング装置などの様々な電子機器によりサポートされている。電子機器は、通信ネットワークを介してデジタルビデオデータを送受信するか又は通信し、及び/又はデジタルビデオデータを記憶装置に記憶する。通信ネットワークの帯域幅容量及び記憶装置のメモリリソースが限られているため、ビデオ符号化復号化は、ビデオデータを通信又は記憶する前にビデオデータを1つ以上のビデオ符号化復号化標準に従って圧縮するために使用されてもよい。例えば、ビデオ符号化復号化標準は、多用途ビデオ符号化復号化(VVC)、共同探索テストモデル(JEM)、高効率ビデオ符号化復号化(HEVC/H.265)、アドバンスドビデオ符号化復号化(AVC/H.264)、動画像専門家委員会(MPEG)符号化復号化などを含む。ビデオ符号化復号化は、一般に、ビデオデータに固有の冗長性を利用する予測方法(例えば、インター予測、イントラ予測など)を利用する。ビデオ符号化復号化は、ビデオ品質の劣化を回避又は最小限に抑えながら、より低いビットレートによる形式にビデオデータを圧縮することを目的とする。
【発明の概要】
【0004】
本開示の実施形態は、サイドウィンドウによるバイラテラルフィルタリングのためのビデオ処理方法を提供する。ビデオ処理方法は、1つ以上のプロセッサによって、インループフィルタリングのためのビデオのビデオフレームを受信することを含んでもよい。前記ビデオ処理方法は、前記1つ以上のプロセッサによって、前記ビデオフレームの注目画素に対して、複数のサイドフィルタリングウィンドウと1つのフルフィルタリングウィンドウとを含む候補フィルタリングウィンドウの群から、前記注目画素をインループフィルタリングするバイラテラルフィルタリングウィンドウを選択することを含んでもよい。前記ビデオ処理方法は、前記1つ以上のプロセッサによって、選択された前記バイラテラルフィルタリングウィンドウにより、前記ビデオフレームの前記注目画素をフィルタリングすることを更に含んでもよい。
【0005】
本開示の実施形態は、サイドウィンドウによるバイラテラルフィルタリングのためのビデオ処理装置を更に提供する。前記ビデオ処理装置は、メモリと、1つ以上のプロセッサとを含んでもよい。前記メモリは、ビデオを格納するように構成されてもよい。前記1つ以上のプロセッサは、インループフィルタリングのためのビデオのビデオフレームを受信するように構成されてもよい。前記1つ以上のプロセッサは更に、前記ビデオフレームの注目画素に対して、複数のサイドフィルタリングウィンドウと1つのフルフィルタリングウィンドウとを含む候補フィルタリングウィンドウの群から、前記注目画素をインループフィルタリングするバイラテラルフィルタリングウィンドウを選択するように構成されてもよい。前記1つ以上のプロセッサは更に、選択された前記バイラテラルフィルタリングウィンドウにより、前記ビデオフレームの前記注目画素をフィルタリングするように構成されてもよい。
【0006】
本開示の実施形態は、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサにサイドウィンドウによるバイラテラルフィルタリングのためのビデオ処理方法を実行させる命令を記憶している非一時的コンピュータ可読記憶媒体を更に提供する。前記ビデオ処理方法は、インループフィルタリングのためのビデオのビデオフレームを受信することを含んでもよい。前記ビデオ処理方法は、前記ビデオフレームの注目画素に対して、複数のサイドフィルタリングウィンドウと1つのフルフィルタリングウィンドウとを含む候補フィルタリングウィンドウの群から、前記注目画素をインループフィルタリングするバイラテラルフィルタリングウィンドウを選択することを更に含んでもよい。前記ビデオ処理方法は、選択された前記バイラテラルフィルタリングウィンドウにより、前記ビデオフレームの前記注目画素をフィルタリングすることを更に含んでもよい。フィルタリングされたビデオフレームは、前記非一時的コンピュータ可読記憶媒体に記憶される。
【0007】
なお、前述の一般的な説明と以下の詳細な説明は、いずれも単なる実施例であり、本開示を限定するものではない。
【図面の簡単な説明】
【0008】
本明細書に組み込まれ、その一部を構成する添付図面は、本開示と一致する実施例を示しており、説明とともに、本開示の原理を説明する役割を果たす。
【0009】
図1】本開示のいくつかの実施形態に係る、ビデオブロックを符号化及び復号化する例示的なシステムを示すブロック図である。
図2】本開示のいくつかの実施形態に係る例示的なビデオエンコーダを示すブロック図である。
図3】本開示のいくつかの実施形態に係る例示的なビデオデコーダを示すブロック図である。
図4】本開示のいくつかの実施形態に係る、フレームが異なるサイズ及び形状の複数のビデオブロックに再帰的にどのように分割されるかを示すグラフィック表示である。
図5】ビデオフレームの代表的なエッジタイプの例示である。
図6】本開示のいくつかの実施形態に係る代表的なサイドフィルタリングウィンドウを示すグラフィック表示である。
図7】本開示のいくつかの実施形態に係るサイドフィルタリングウィンドウによるバイラテラルフィルタリングのための例示的なプロセスを示すブロック図である。
図8】本開示のいくつかの実施形態に係るサイドフィルタリングウィンドウによるバイラテラルフィルタリングのための例示的な方法の流れ図である。
図9】本開示のいくつかの実施形態に係る、図8中のサイドフィルタリングウィンドウによるバイラテラルフィルタリングのための方法の第1例示的な実施形態の流れ図である。
図10】本開示のいくつかの実施形態に係る、図8中のサイドフィルタリングウィンドウによるバイラテラルフィルタリングのための方法の第2例示的な実施形態の流れ図である。
図11】本開示のいくつかの実施形態に係る、図8中のサイドフィルタリングウィンドウによるバイラテラルフィルタリングのための方法の第3例示的な実施形態の流れ図である。
図12】本開示のいくつかの実施形態に係る、ビデオブロックに対して、フィルタリングされたブロックを選択する例示的な方法の流れ図である。
図13】本開示のいくつかの実施形態に係る、ユーザインタフェースに結合されるコンピューティング環境を示すブロック図である。
【発明を実施するための形態】
【0010】
実施例を添付図面に示す具体的な実施形態を詳細に参照する。以下の詳細な説明では、本明細書に示される主題の理解を寄るために、多数の非限定的な具体的な詳細が示されている。しかしながら、特許請求の範囲を逸脱しない範囲で、様々な代替実施形態を採用することができ、それらの具体的な詳細なしで主題を実施することができることが当業者には明らかである。例えば、本明細書に示される主題は、デジタルビデオ機能を有する複数のタイプの電子装置に実装可能であることが当業者には明らかである。
【0011】
なお、本開示の明細書及び特許請求の範囲と、添付図面とで使用される「第1」、「第2」などの用語は、対象を区別するために使用されるものであり、任意の具体的な順番又は順序を説明するために使用されるものではない。なお、このように使用されるデータは、適切な条件で置き換えが可能であり、これにより、添付図面に示されるか又は本開示に説明された以外の順番で、本明細書に説明される本開示の実施形態を実施することができる。
【0012】
現在VVC標準及び第3世代オーディオ・ビデオ符号化復号化標準(AVS3)には、デブロッキングフィルタ(DBF)、サンプル適応オフセット(SAO)フィルタ、適応ループフィルタ(ALF)を含む1つ以上のインループフィルタリングモジュールが存在してもよい。VVC標準の発展中において、逆変換後に再構成ブロックを微細化するようにバイラテラルフィルタを最初に提案する。次に、バイラテラルフィルタの適用を拡大してインループフィルタリングの一部とすることで、SAOとの併用が可能となる。例えば、バイラテラルフィルタとSAOフィルタとの組み合わせの出力は、以下の式で表現することができる。
OUT=clip3(I+ΔIBIF+ΔISAO) (1)
【0013】
上記式(1)において、IOUTは、バイラテラルフィルタとSAOフィルタとの組み合わせの出力を示す。Iは、中心サンプルの輝度を示す。ΔIBIFは、デブロッキングフィルタからのサンプルを入力として使用するバイラテラルフィルタにより生成された差分値を示す。ΔISAOは、デブロッキングフィルタからのサンプルを入力として使用するSAOフィルタにより生成されたオフセット値を示す。clip3(・)は、出力が[minValue,maxValue]の範囲にあることを確認するクリッピング機能を示し、以下のように定義される。
clip3(x)=min(max(minValue,x),maxValue) (2)
【0014】
VVC能力を超えた改善される圧縮に対する探索実験(EE)2において、バイラテラルフィルタは、さらなる圧縮性能向上のための有望なツールの1つであると考えられる。いくつかの例示的な適用において、バイラテラルフィルタによりフィルタリングされる画素は、フィルタリングウィンドウの中心に位置し、このようなフィルタリング動作は、フィルタリング中に鮮鋭度を維持すると期待されるエッジを滑らかにすることにつながる場合がある。エッジの望ましくない滑らかさを回避するために、サイドウィンドウフィルタリング技術を採用することにより、エッジの鮮鋭度又は他のタイプの望ましい信号を維持しながらノイズを除去することができる。
【0015】
本開示と一致して、サイドウィンドウフィルタリング技術は、ビデオ符号化復号化に適用されて、符号化復号化効率を向上させる。ビデオ符号化復号化におけるバイラテラルフィルタの目的を達成して、フィルタリングされた画像を原画像にできるだけ近くするために、サイドウィンドウ選択を慎重に考慮する。本開示によれば、圧縮性能をより良好にするために、サイドウィンドウフィルタリングの符号化復号化戦略を適応的に調整することができる。例えば、ビデオフレームのビデオブロックの品質及び統計的性質は、ブロック毎に異なり、ビデオの圧縮性能を向上させるためには、サイドウィンドウフィルタリングのブロック適応メカニズムを採用する必要がある。
【0016】
本開示と一致して、バイラテラルフィルタリングの符号化復号化効率を向上させるために、本明細書にビデオ処理システム及び方法が開示される。例えば、本明細書に開示されたシステム及び方法は、サイドウィンドウフィルタリングメカニズムをバイラテラルフィルタリングに組み込むことができるため、サイドウィンドウによるバイラテラルフィルタリング(SWBIF)プロセスを適用してバイラテラルフィルタリングの符号化復号化効率を向上させることができる。
【0017】
図1は、本開示のいくつかの実施形態に係る、ビデオブロックの符号化及び復号化を並行して行う例示的なシステム10を示すブロック図である。図1に示すように、システム10は、目標装置14によって後で復号化されるビデオデータを生成して符号化するソース装置12を含む。ソース装置12及び目標装置14は、デスクトップ又はラップトップコンピュータ、タブレットコンピュータ、スマートフォン、セットトップボックス、デジタルテレビ、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミング装置などを含む様々な電子機器のいずれかを含んでもよい。いくつかの実施形態では、ソース装置12及び目標装置14は、無線通信機能を備える。
【0018】
いくつかの実施形態では、目標装置14は、リンク16を介して、復号化される符号化ビデオデータを受信してもよい。リンク16は、符号化ビデオデータをソース装置12から目標装置14に転送することが可能な任意のタイプの通信媒体又は装置を含んでもよい。一実施例では、リンク16は、ソース装置12が符号化ビデオデータを目標装置14にリアルタイムに直接送信できるようにする通信媒体を含んでもよい。符号化ビデオデータは、無線通信プロトコルなどの通信標準に従って変調され、目標装置14に送信されてもよい。通信媒体は、無線周波数(RF)スペクトル又は1つ以上の物理伝送線などの、任意の無線通信媒体又は有線通信媒体を含んでもよい。通信媒体は、ローカルエリアネットワーク、広域ネットワーク、又はインターネットなどのグローバルネットワークなどのパケットによるネットワークの一部を構成してもよい。通信媒体は、ルータ、スイッチ、基地局、又はソース装置12から目標装置14への通信を容易にするのに有用であり得る任意の他の機器を含んでもよい。
【0019】
いくつかの他の実施形態では、符号化ビデオデータは、出力インタフェース22から記憶装置32に送信されてもよい。その後、記憶装置32内の符号化ビデオデータは、入力インタフェース28を介して目標装置14によってアクセスされてもよい。記憶装置32は、ハードドライブ、ブルーレイディスク、デジタルバーサタイルディスク(DVD)、コンパクトディスク読み取り専用メモリ(CD-ROM)、フラッシュメモリ、揮発性若しくは不揮発性メモリ、又は符号化ビデオデータを記憶する任意の他の適切なデジタル記憶媒体などの、様々な分散型又はローカルにアクセスされるデータ記憶媒体のうちのいずれかを含んでもよい。更なる実施例では、記憶装置32は、ファイルサーバ、又はソース装置12によって生成された符号化ビデオデータを記憶し得る他の中間記憶装置に対応してもよい。目標装置14は、ストリーミング又はダウンロードを介して、記憶装置32から記憶されたビデオデータにアクセスしてもよい。ファイルサーバは、符号化ビデオデータを記憶するとともに、符号化ビデオデータを目標装置14に送信することができる任意のタイプのコンピュータであってもよい。例示的なファイルサーバは、(例えば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続記憶(NAS)装置、又はローカルディスクドライブを含む。目標装置14は、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した無線チャネル(例えば、Wi-Fi(Wireless Fidelity)接続)、有線接続(例えば、DSL(Digital Subscriber Line、デジタル加入者線)、ケーブルモデムなど)、又はそれらの組み合わせのいずれかを含む任意の標準データ接続を通じて、符号化ビデオデータにアクセスしてもよい。記憶装置32からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又は両方の組み合せであってもよい。
【0020】
図1に示すように、ソース装置12は、ビデオソース18、ビデオエンコーダ20、及び出力インタフェース22を含む。ビデオソース18は、ビデオカメラなどのビデオキャプチャ装置、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するビデオフィードインタフェース、及び/又は、ソースビデオとしてコンピュータグラフィックデータを生成するコンピュータグラフィックシステム、又は、それらのソースの組み合わせなどのソースを含んでもよい。一実施例として、ビデオソース18がセキュリティ監視システムのビデオカメラであれば、ソース装置12及び目標装置14は、カメラフォン又はビデオフォンを含んでもよい。しかしながら、本開示に記載される実施形態は、一般にビデオ符号化復号化に適用可能であってもよく、無線及び/又は有線アプリケーションに適用可能であってもよい。
【0021】
キャプチャされたビデオ、予めキャプチャされたビデオ、又はコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化されてもよい。符号化ビデオデータは、ソース装置12の出力インタフェース22を介して、目標装置14に直接送信されてもよい。符号化ビデオデータはまた(又は代替的に)、目標装置14又は他の装置によって後でアクセスされて復号化及び/又は再生されるように、記憶装置32に記憶されてもよい。出力インタフェース22は、モデム及び/又は送信機を更に含んでもよい。
【0022】
目標装置14は、入力インタフェース28、ビデオデコーダ30、及び表示装置34を含む。入力インタフェース28は、受信機及び/又はモデムを含み、リンク16を介して符号化ビデオデータを受信してもよい。リンク16を介して通信されるか又は記憶装置32に提供される符号化ビデオデータは、ビデオデータを復号化する際にビデオデコーダ30によって使用される、ビデオエンコーダ20によって生成された様々な構文要素を含んでもよい。そのような構文要素は、通信媒体に送信されるか、又は記憶媒体に記憶されるか、又はファイルサーバに記憶される符号化ビデオデータに含まれてもよい。
【0023】
いくつかの実施形態では、目標装置14は、統合表示装置、及び目標装置14と通信するように構成された外部表示装置であり得る表示装置34を含んでもよい。表示装置34は、復号化ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は別のタイプの表示装置などの様々な表示装置のうちのいずれかを含んでもよい。
【0024】
ビデオエンコーダ20及びビデオデコーダ30は、例えば、VVC、HEVC、MPEG-4、Part 10、AVCなどの独自又は産業上の標準に従って動作してもよく、それらの標準の拡張に従って動作してもよい。本開示は、特定のビデオ符号化/復号化標準に限定されず、他のビデオ符号化/復号化標準にも適用可能であることを理解されたい。一般に、ソース装置12のビデオエンコーダ20は、これらの現在又は将来の標準のうちのいずれかに従ってビデオデータを符号化するように構成されてもよいと考えられる。同様に、一般に、目標装置14のビデオデコーダ30は、これらの現在又は将来の標準のうちのいずれかに従ってビデオデータを復号化するように構成されてもよいと考えられる。
【0025】
ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせなどの様々な適切なエンコーダ及び/又はデコーダ回路のうちのいずれかとして実装されてもよい。ソフトウェアで部分的に実装される場合、電子機器は、適切な非一時的コンピュータ可読媒体内のソフトウェアのための命令を記憶し、1つ以上のプロセッサによってハードウェアで命令を実行して、本開示に開示されるビデオ符号化/復号化動作を実行してもよい。ビデオエンコーダ20及びビデオデコーダ30のそれぞれは、1つ以上のエンコーダ又はデコーダに含まれてもよく、いずれも、組み合わせたエンコーダ/デコーダ(CODEC)の一部としてそれぞれの装置内に統合されてもよい。
【0026】
図2は、本願に記載されるいくつかの実施形態に係る、例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオフレーム内のビデオブロックのイントラ予測符号化及びインター予測符号化を実行することができる。イントラ予測符号化は、空間的予測に依存して、所与のビデオフレーム又は画像内のビデオデータの空間的冗長性を削減又は除去する。インター予測符号化は、時間予測に依存して、ビデオシーケンスの隣接するビデオフレーム又は画像内のビデオデータの時間冗長性を削減又は除去する。なお、「フレーム」という用語は、ビデオ符号化復号化の分野では、「画像」又は「ピクチャ」という用語の同義語として使用されてもよい。
【0027】
図2に示すように、ビデオエンコーダ20は、ビデオデータメモリ40、予測処理ユニット41、復号化画像バッファ(DPB)64、加算器50、変換処理ユニット52、量子化ユニット54、及びエントロピー符号化ユニット56を含む。予測処理ユニット41は、動き推定ユニット42、動き補償ユニット44、分割ユニット45、イントラ予測処理ユニット46、及びイントラブロックコピー(BC)ユニット48を更に含む。いくつかの実施形態では、ビデオエンコーダ20はまた、ビデオブロック再構成のために、逆量子化ユニット58、逆変換処理ユニット60、及び加算器62を含む。デブロッキングフィルタなどのインループフィルタ63は、加算器62とDPB64との間に配置されて、ブロック境界をフィルタリングして、再構成ビデオデータからブロックアーチファクトを除去することができる。加算器62の出力をフィルタリングするデブロッキングフィルタに加えて、SAOフィルタ及び/又は適応インループフィルタ(ALF)などの別のインループフィルタが採用されてもよい。いくつかの実施例では、インループフィルタは、省略されてもよく、復号化ビデオブロックは、加算器62によってDPB64に直接提供されてもよい。ビデオエンコーダ20は、固定又はプログラマブルハードウェアユニットの形態をとってもよく、図示された固定又はプログラマブルハードウェアユニットの1つ以上に分割されてもよい。
【0028】
ビデオデータメモリ40は、ビデオエンコーダ20のコンポーネントによって符号化されるビデオデータを記憶することができる。ビデオデータメモリ40内のビデオデータは、例えば、図1に示すビデオソース18から取得することができる。DPB64は、ビデオエンコーダ20による(例えば、イントラ予測符号化モード又はインター予測符号化モードの)ビデオデータの符号化に採用される参照ビデオデータ(例えば、参照フレーム又は画像)を記憶するバッファである。ビデオデータメモリ40及びDPB64は、様々なメモリ装置のいずれかによって形成されてもよい。様々な実施例では、ビデオデータメモリ40は、ビデオエンコーダ20の他のコンポーネントとともにオンチップであってもよく、それらのコンポーネントに対してオフチップであってもよい。
【0029】
図2に示すように、ビデオデータを受信した後、予測処理ユニット41内の分割ユニット45は、ビデオデータをビデオブロックに分割する。この分割には、ビデオデータと関連する4分木(QT)構造などの所定の分割構造に従って、ビデオフレームをスライス、タイル(例えば、ビデオブロックセット)、又は他のより大きな符号化ユニット(CU)に分割することも含まれてもよい。ビデオフレームは、サンプル値を有するサンプルの2次元配列又は行列であるか、又はそれらと見なされてもよい。配列内のサンプルは、画素又は画素と呼ばれてもよい。配列又は画像の水平方向及び垂直方向(又は軸)の複数のサンプルは、ビデオフレームのサイズ及び/又は解像度を定義する。ビデオフレームは、例えば、QT分割採用して複数のビデオブロックに分割されてもよい。ビデオブロックは、寸法がビデオフレームよりも小さいが、同様に、サンプル値を有するサンプルの2次元配列又は行列であるか、又はそれらと見なされてもよい。ビデオブロックの水平方向及び垂直方向(又は軸)の複数のサンプルは、ビデオブロックのサイズを定義する。ビデオブロックは、例えば、QT分割、2分木(BT)分割、3分木(TT)分割、又はそれらの任意の組み合わせを反復的に採用することにより、1つ以上のブロックパーティション又は(再びブロックを形成してもよい)サブブロックパーティションに更に分割されてもよい。なお、本明細書で使用される「ブロック」又は「ビデオブロック」という用語は、フレーム又は画像の一部、特に矩形(正方形又は非正方形)部分であってもよい。例えば、HEVC及びVVCを参照すると、ブロック又はビデオブロックは、符号化ツリーユニット(CTU)、CU、予測ユニット(PU)、又は変換ユニット(TU)であってもよく、それに対応してもよく、及び/又は、符号化ツリーブロック(CTB)、符号化ブロック(CB)、予測ブロック(PB)、又は変換ブロック(TB)などの対応するブロックであってもよく、それに対応してもよい。追加的に又は代替的に、ブロック又はビデオブロックは、CTB、CB、PB、TBなどのサブブロックであってもよく、それに対応してもよい。
【0030】
予測処理ユニット41は、エラー結果(例えば、符号化レート及び歪みのレベル)に基づいて、現在ビデオブロックに対して、複数のイントラ予測符号化モードのうちの1つ、又は、複数のインター予測符号化モードのうちの1つなどの、複数の可能な予測符号化モードのうちの1つを選択してもよい。予測処理ユニット41は、得られたイントラ又はインター予測符号化ブロック(例えば、予測ブロック)を、加算器50に提供して残差ブロックを生成し、加算器62に提供して符号化ブロックを再構成して、後に参照フレームの一部として使用することができる。また、予測処理ユニット41は、動きベクトル、イントラモードインジケータ、分割情報などの構文要素、及び他のそのような構文情報をエントロピー符号化ユニット56に提供する。
【0031】
現在ビデオブロックに対して適切なイントラ予測符号化モードを選択するために、予測処理ユニット41内のイントラ予測処理ユニット46は、符号化される現在ブロックと同じフレーム内の1つ以上の隣接ブロックに対する現在ビデオブロックのイントラ予測符号化を実行して、空間的予測を提供する。予測処理ユニット41内の動き推定ユニット42及び動き補償ユニット44は、1つ以上の参照フレーム内の1つ以上の予測ブロックに対する現在ビデオブロックのインター予測符号化を実行して、時間予測を提供する。ビデオエンコーダ20は、例えば、ビデオデータの各ブロックに対して適切な符号化モードを選択するために、複数の符号化パスを実行してもよい。
【0032】
いくつかの実施形態では、動き推定ユニット42は、動きベクトルを生成することにより、現在ビデオフレームのインター予測モードを決定し、該動きベクトルは、ビデオフレームのシーケンス内の所定のパターンに従って、参照フレーム内の予測ブロックに対する現在ビデオフレーム内のビデオブロックの変位を示す。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、参照フレーム内の予測ブロックに対する現在ビデオフレーム又は画像内のビデオブロックの変位を示してもよい。所定のパターンは、シーケンス内のビデオフレームをPフレーム又はBフレームとして指定してもよい。イントラBCユニット48は、動き推定ユニット42によるインター予測のための動きベクトルの決定と同様の方法で、イントラBC符号化のためのベクトル、例えばブロックベクトルを決定してもよく、動き推定ユニット42を利用してブロックベクトルを決定してもよい。
【0033】
ビデオブロックの予測ブロックは、差分絶対値和(SAD)、差分二乗和(SSD)、又は他の差分メトリックにより決定され得る、画素差分に関して符号化されるビデオブロックに近く一致すると見なされる参照フレームのブロック又は参照ブロックであってもよく、それに対応してもよい。いくつかの実施形態では、ビデオエンコーダ20は、DPB64に記憶された参照フレームのサブ整数画素位置の値を算出してもよい。例えば、ビデオエンコーダ20は、参照フレームの1/4画素位置、1/8画素位置、他の分数画素位置の値を補間してもよい。したがって、動き推定ユニット42は、全画素位置及び分数画素位置に対して動き探索を実行し、分数画素精度を有する動きベクトルを出力してもよい。
【0034】
動き推定ユニット42は、ビデオブロックの位置と、それぞれがDPB64に記憶された1つ以上の参照フレームを識別する第1参照フレームリスト(リスト0)又は第2参照フレームリスト(リスト1)から選択された参照フレームの予測ブロックの位置とを比較することにより、インター予測符号化フレーム内のビデオブロックの動きベクトルを算出する。動き推定ユニット42は、算出された動きベクトルを、動き補償ユニット44に送信してから、エントロピー符号化ユニット56に送信する。
【0035】
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて、予測ブロックをフェッチするか又は生成することを含んでもよい。現在ビデオブロックの動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照フレームリストのうちの1つを指し示す予測ブロックを特定し、DPB64から予測ブロックを取り出し、当該予測ブロックを加算器50に転送することができる。そして、加算器50は、符号化されている現在ビデオブロックの画素値から、動き補償ユニット44によって提供される予測ブロックの画素値を減算することにより、画素差分値の残差ブロックを形成する。残差ブロックを形成する画素差分値は、輝度差分成分又は彩度差分成分、又はその両方を含んでもよい。動き補償ユニット44は、ビデオフレームのビデオブロックを復号化する際にビデオデコーダ30によって使用される、ビデオフレームのビデオブロックと関連する構文要素を生成することもできる。構文要素は、例えば、予測ブロックを識別するために使用される動きベクトルを定義する構文要素、予測モードを示す任意のフラグ、又は本明細書に記載される任意の他の構文情報を含んでもよい。なお、動き推定ユニット42と動き補償ユニット44は、一体に統合されてもよく、概念的な目的のために図2に別個に示されている。
【0036】
いくつかの実施形態では、イントラBCユニット48は、動き推定ユニット42及び動き補償ユニット44に関連して上述した方法と同様の方法でベクトルを生成し、予測ブロックをフェッチすることができるが、予測ブロックは、符号化されている現在ブロックと同じフレーム内にあり、ベクトルは、動きベクトルとは対照的にブロックベクトルと呼ばれる。特に、イントラBCユニット48は、現在ブロックを符号化するために使用されるイントラ予測モードを決定してもよい。いくつかの実施例では、イントラBCユニット48は、例えば、別個の符号化パスの間に、様々なイントラ予測モードで現在ブロックを符号化し、レート歪み分析によりそれらの性能をテストすることができる。次に、イントラBCユニット48は、テストされた様々なイントラ予測モードから、適切なイントラ予測モードを選択して使用し、それに応じてイントラモードインジケータを生成することができる。例えば、イントラBCユニット48は、テストされた様々なイントラ予測モードに対して、レート歪み分析によりレート歪み値を算出し、使用する適切なイントラ予測モードとして、テストされたモードから、レート歪み特性が最適なイントラ予測モードを選択することができる。レート歪み分析は、一般に、符号化ブロックと、当該符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み(又はエラー)の量、及び、当該符号化ブロックを生成するために使用されたビットレート(即ち、ビット数)を決定する。イントラBCユニット48は、どのイントラ予測モードが当該ブロックのための最適なレート歪み値を示すかを決定するために、様々な符号化ブロックの歪み及びレートから比率を算出することができる。
【0037】
他の実施例では、イントラBCユニット48は、本明細書で説明される実施形態に従ってイントラBC予測のためのそのような機能を実行するために、全体的に又は部分的に、動き推定ユニット42及び動き補償ユニット44を採用することができる。いずれの場合も、イントラブロックコピーの場合、予測ブロックは、SAD、SSD、又は他の差分メトリックにより決定され得る、画素差分に関して、符号化されるブロックに近く一致すると見なされるブロックであってもよく、予測ブロックの識別は、サブ整数画素位置の値の算出を含んでもよい。
【0038】
予測ブロックがイントラ予測による同じフレームからのものであるか、インター予測による異なるフレームからのものであるかにかかわらず、ビデオエンコーダ20は、符号化されている現在ビデオブロックの画素値から予測ブロックの画素値を減算して、画素差分値を形成することにより、残差ブロックを形成することができる。残差ブロックを形成する画素差分値は、輝度成分差分と彩度成分差分の両方を含んでもよい。
【0039】
イントラ予測処理ユニット46は、上述したように、動き推定ユニット42及び動き補償ユニット44によって実行されるインター予測、又はイントラBCユニット48によって実行されるイントラブロックコピー予測の代替として、現在ビデオブロックをイントラ予測してもよい。特に、イントラ予測処理ユニット46は、現在ブロックを符号化するために採用されるイントラ予測モードを決定することができる。例えば、イントラ予測処理ユニット46は、例えば、別個の符号化パスの間に、様々なイントラ予測モードで現在ブロックを符号化することができ、イントラ予測処理ユニット46(又は、いくつかの実施例では、モード選択ユニット)は、テストされたイントラ予測モードから、使用する適切なイントラ予測モードを選択することができる。イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供することができる。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報をビットストリームに符号化することができる。
【0040】
予測処理ユニット41がインター予測又はイントラ予測のいずれかを介して現在ビデオブロックの予測ブロックを決定した後、加算器50は、現在ビデオブロックから予測ブロックを減算することにより残差ブロックを形成する。残差ブロック内の残差ビデオデータは、1つ以上のTUに含まれてもよく、変換処理ユニット52に提供される。変換処理ユニット52は、離散コサイン変換(DCT)又は概念的に同様の変換などの変換を採用して、残差ビデオデータを変換係数に変換する。
【0041】
変換処理ユニット52は、得られた変換係数を量子化ユニット54に送信することができる。量子化ユニット54は、変換係数を量子化してビットレートを更に低減する。また、量子化プロセスは、係数の一部又は全部と関連するビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することにより変更することができる。いくつかの実施例では、量子化ユニット54は次に、量子化変換係数を含む行列の走査を実行してもよい。代替的に、エントロピー符号化ユニット56は、走査を実行してもよい。
【0042】
量子化に続いて、エントロピー符号化ユニット56は、エントロピー符号化技術を採用して、例えば、コンテキスト適応可変長符号化(CAVLC)、コンテキスト適応バイナリ算術符号化(CABAC)、構文によるコンテキスト適応バイナリ算術符号化(SBAC)、確率区間分割エントロピー(PIPE)符号化、又は別のエントロピー符号化方法若しくは技術を採用して、量子化変換係数をビデオビットストリームに符号化する。符号化されたビットストリームは次に、図1に示すビデオデコーダ30に送信されてもよく、後でビデオデコーダ30に送信されるか又はビデオデコーダ30によって検索されるために、図1に示す記憶装置32にアーカイブされてもよい。エントロピー符号化ユニット56はまた、エントロピー符号化技術を採用して、符号化されている現在ビデオフレームのための動きベクトル及び他の構文要素を符号化することができる。
【0043】
逆量子化ユニット58及び逆変換処理ユニット60は、それぞれ逆量子化及び逆変換を適用して、他のビデオブロックの予測のための参照ブロックを生成するための画素領域内の残差ブロックを再構成する。再構成された残差ブロックを生成してもよい。上述したように、動き補償ユニット44は、DPB64に記憶されたフレームの1つ以上の参照ブロックから動き補償予測ブロックを生成してもよい。動き補償ユニット44はまた、動き推定に使用されるサブ整数画素値を算出するために、予測ブロックに対して1つ以上の補間フィルタを適用してもよい。
【0044】
加算器62は、再構成された残差ブロックを、動き補償ユニット44により生成された動き補償予測ブロックに追加して、DPB64に記憶するための参照ブロックを生成する。次に、参照ブロックは、後続のビデオフレーム内の別のビデオブロックをインター予測するための予測ブロックとして、イントラBCユニット48、動き推定ユニット42、及び動き補償ユニット44によって使用されてもよい。
【0045】
図3は、本願のいくつかの実施形態に係る、例示的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30は、ビデオデータメモリ79、エントロピー復号化ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、及びDPB92を含む。予測処理ユニット81は、動き補償ユニット82、イントラ予測ユニット84、及びイントラBCユニット85を更に含む。ビデオデコーダ30は、図2に関連してビデオエンコーダ20に関して上述した符号化プロセスとほぼ逆の復号化プロセスを実行することができる。例えば、動き補償ユニット82は、エントロピー復号化ユニット80から受信された動きベクトルに基づいて予測データを生成することができるが、イントラ予測ユニット84は、エントロピー復号化ユニット80から受信されたイントラ予測モードインジケータに基づいて予測データを生成することができる。
【0046】
いくつかの実施例では、ビデオデコーダ30のユニットは、本願の実施形態を実行するようにタスクされてもよい。また、いくつかの実施例では、本開示の実施形態は、ビデオデコーダ30のユニットのうちの1つ以上の間で分割されてもよい。例えば、イントラBCユニット85は、単独で、又は動き補償ユニット82、イントラ予測ユニット84、及びエントロピー復号化ユニット80などのビデオデコーダ30の他のユニットと組み合わせて、本願の実施形態を実行してもよい。いくつかの実施例では、ビデオデコーダ30は、イントラBCユニット85を含まなくてもよく、イントラBCユニット85の機能は、動き補償ユニット82などの予測処理ユニット81の他のコンポーネントによって実行されてもよい。
【0047】
ビデオデータメモリ79は、ビデオデコーダ30の他のコンポーネントによって復号化されるために、符号化ビデオビットストリームなどのビデオデータを記憶することができる。ビデオデータメモリ79に記憶されたビデオデータは、例えば、記憶装置32から、カメラなどのローカルビデオソースから、ビデオデータの有線又は無線ネットワーク通信を介して、又は物理データ記憶媒体(例えば、フラッシュドライブ又はハードディスク)にアクセスすることにより、取得されてもよい。ビデオデータメモリ79は、符号化ビデオビットストリームからの符号化ビデオデータを記憶する符号化画像バッファ(CPB)を含んでもよい。ビデオデコーダ30のDPB92は、ビデオデータを復号化する際にビデオデコーダ30によって(例えば、イントラ又はインター予測符号化モードで)使用される参照ビデオデータを記憶する。ビデオデータメモリ79及びDPB92は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)又は他のタイプのメモリ装置を含む、ダイナミックランダムアクセスメモリ(DRAM)などの様々なメモリ装置のいずれかによって形成されてもよい。説明の便宜上、ビデオデータメモリ79とDPB92は、図3中のビデオデコーダ30の2つの別個のコンポーネントとして示されている。しかしながら、ビデオデータメモリ79とDPB92が同じメモリ装置又は別個のメモリ装置によって提供され得ることは、当業者には明らかであろう。いくつかの実施例では、ビデオデータメモリ79は、ビデオデコーダ30の他のコンポーネントとオンチップであってもよく、それらのコンポーネントに対してオフチップであってもよい。
【0048】
復号化プロセスの間に、ビデオデコーダ30は、符号化ビデオフレームのビデオブロック及び関連する構文要素を表す符号化ビデオビットストリームを受信する。ビデオデコーダ30は、ビデオフレームレベル及び/又はビデオブロックレベルで構文要素を受信してもよい。ビデオデコーダ30のエントロピー復号化ユニット80は、エントロピー復号化技術を採用して、ビットストリームを復号化して、量子化係数、動きベクトル又はイントラ予測モードインジケータ、及び他の構文要素を取得する。次に、エントロピー復号化ユニット80は、動きベクトル又はイントラ予測モードインジケータ、及び他の構文要素を予測処理ユニット81に転送する。
【0049】
ビデオフレームがイントラ予測符号化(例えば、I)フレームとして、又は他のタイプのフレーム内のイントラ符号化予測ブロックに対して符号化される場合、予測処理ユニット81のイントラ予測ユニット84は、シグナリングされたイントラ予測モードと、現在フレームの以前に復号化されたブロックからの参照データとに基づいて、現在ビデオフレームのビデオブロックの予測データを生成してもよい。
【0050】
ビデオフレームがインター予測符号化(即ち、B又はP)フレームとして符号化される場合、予測処理ユニット81の動き補償ユニット82は、エントロピー復号化ユニット80から受信された動きベクトル及び他の構文要素に基づいて、現在ビデオフレームのビデオブロックの1つ以上の予測ブロックを生成する。予測ブロックのそれぞれは、参照フレームリストのうちの1つの参照フレームから生成されてもよい。ビデオデコーダ30は、DPB92に記憶された参照フレームに基づいて、デフォルトの構築技術を採用して、参照フレームリスト、例えば、リスト0及びリスト1を構築してもよい。
【0051】
いくつかの実施例では、ビデオブロックが本明細書で説明されるイントラBCモードに従って符号化される場合、予測処理ユニット81のイントラBCユニット85は、エントロピー復号化ユニット80から受信されたブロックベクトル及び他の構文要素に基づいて、現在ビデオブロックの予測ブロックを生成する。予測ブロックは、ビデオエンコーダ20によって処理された現在ビデオブロックと同じ画像の再構成された領域内にあってもよい。
【0052】
動き補償ユニット82及び/又はイントラBCユニット85は、動きベクトル及び他の構文要素を構文解析することにより、現在ビデオフレームのビデオブロックの予測情報を決定し、次に、当該予測情報により、復号化されている現在ビデオブロックの予測ブロックを生成する。例えば、動き補償ユニット82は、受信された構文要素の一部を使用して、ビデオフレームのビデオブロックを符号化するために使用される予測モード(例えば、イントラ予測又はインター予測)、インター予測フレームタイプ(例えば、B又はP)、フレームの参照フレームリストのうちの1つ以上の構成情報、フレームの各インター予測符号化ビデオブロックのための動きベクトル、フレームの各インター予測符号化ビデオブロックのためのインター予測状態、現在ビデオフレーム内のビデオブロックを復号化するための他の情報を決定する。
【0053】
同様に、イントラBCユニット85は、受信された構文要素の一部、例えばフラグを使用して、現在ビデオブロックがイントラBCモードで予測されたこと、フレームのどのビデオブロックが再構成領域内にあり、DPB92に記憶されるべきかの構成情報、フレームの各イントラBC予測ビデオブロックのブロックベクトル、フレームの各イントラBC予測ビデオブロックのためのイントラBC予測状態、現在ビデオフレーム内のビデオブロックを復号化するための他の情報を決定する。
【0054】
また、動き補償ユニット82は、ビデオブロックの符号化中にビデオエンコーダ20によって採用されるような補間フィルタにより補間を実行して、参照ブロックのサブ整数画素に対する補間値を算出してもよい。この場合、動き補償ユニット82は、受信された構文要素からビデオエンコーダ20によって採用される補間フィルタを決定し、補間フィルタにより予測ブロックを生成してもよい。
【0055】
逆量子化ユニット86は、ビデオフレーム内のビデオブロックごとにビデオエンコーダ20によって算出された同じ量子化パラメータを採用して、ビットストリームに提供されエントロピー復号化ユニット80によって復号化された量子化変換係数を逆量子化して、量子化の程度を決定する。逆変換処理ユニット88は、画素領域で残差ブロックを再構成するために、逆変換、例えば、逆DCT、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用する。
【0056】
動き補償ユニット82又はイントラBCユニット85がベクトル及び他の構文要素に基づいて現在ビデオブロックの予測ブロックを生成した後、加算器90は、逆変換処理ユニット88からの残差ブロックと、動き補償ユニット82及びイントラBCユニット85により生成された対応する予測ブロックとを加算することにより、現在ビデオブロックの復号化されたビデオブロックを再構成する。復号化されたビデオブロックは、現在ビデオブロックの再構成ブロックとも呼ばれてもよい。デブロッキングフィルタ、SAOフィルタ、及び/又はALFなどのインループフィルタ91は、加算器90とDPB92との間に配置されて、復号化されたビデオブロックを更に処理してもよい。いくつかの実施例では、インループフィルタ91は、省略されてもよく、復号化されたビデオブロックは、加算器90によってDPB92に直接提供されてもよい。次に、所与のフレーム内の復号化されたビデオブロックは、次のビデオブロックの後続の動き補償のための参照フレームを記憶するDPB92に記憶される。DPB92、又はDPB92とは別個のメモリ装置は、図1の表示装置34などの表示装置上に後で表示するために、復号化されたビデオを記憶してもよい。
【0057】
典型的なビデオ符号化復号化プロセス(例えば、ビデオ符号化プロセス及びビデオ復号化プロセスを含む)において、ビデオシーケンスは、典型的に、フレーム又は画像の順序付けられたセットを含む。各フレームは、SL、SCb及びSCrで示される3つのサンプル配列を含んでもよい。SLは、輝度サンプルの2次元配列である。SCbは、Cb彩度サンプルの2次元配列である。SCrは、Cr彩度サンプルの2次元配列である。他の例では、フレームは、モノクロームであり得るため、輝度サンプルの2次元配列のみを含む。
【0058】
図4Aに示すように、ビデオエンコーダ20(又はより具体的には、分割ユニット45)は、まず、フレームを1セットのCTUに分割することにより、フレームの符号化表現を生成する。ビデオフレームは、左から右へ、及び上から下へのラスタ走査順序で連続的に配置された整数個のCTUを含んでもよい。各CTUは、最大の論理符号化ユニットであり、CTUの幅及び高さは、ビデオシーケンス内の全てのCTUが128×128、64×64、32×32及び16×16のうちの1つである同じサイズを有するように、シーケンスパラメータセットでビデオエンコーダ20によってシグナリングされる。しかしながら、本開示におけるCTUは、必ずしも特定のサイズに限定されないことに留意されたい。図4Bに示すように、各CTUは、輝度サンプルの1つのCTB、彩度サンプルの2つの対応する符号化ツリーブロック、及び符号化ツリーブロックのサンプルを符号化し復号化するための構文要素を含んでもよい。構文要素は、インター又はイントラ予測、イントラ予測モード、動きベクトル及び他のパラメータを含む、画素の符号化ブロックの異なるタイプのユニットの性質、及びビデオシーケンスがどのようにビデオデコーダ30において再構成されるかを説明する。モノクローム画像又は3つの別個の色平面を有する画像において、CTUは、単一の符号化ツリーブロックと、符号化ツリーブロックのサンプルを符号化し復号化するための構文要素とを含んでもよい。符号化ツリーブロックは、サンプルのN×Nブロックであってもよい。
【0059】
優れた性能を実現するために、ビデオエンコーダ20は、CTUの符号化ツリーブロック上で、2分木分割、3分木分割、4分木分割、又はそれらの組み合わせなどのツリー分割を再帰的に実行し、CTUをより小さいCUに分割してもよい。図4Cに示すように、64×64のCTU400は、まず、それぞれが32×32のブロックサイズを有する4つのより小さいCUに分割される。4つのより小さいCUの中で、CU410及びCU420は、それぞれ、ブロックサイズによって16×16の4つのCUに分割される。2つの16×16のCU430及び440はそれぞれ、ブロックサイズによって8×8の4つのCUに更に分割される。図4Dは、図4Cに示されるようなCTU400の分割プロセスの最終結果を示す4分木データ構造を示し、4分木の各リーフノードは、32×32~8×8の範囲のそれぞれのサイズの1つのCUに対応する。図4Bに示すCTUと同様に、各CUは、輝度サンプルのCBと、同じサイズのフレームの彩度サンプルの2つの対応する符号化ブロックと、符号化ブロックのサンプルを符号化し復号化するための構文要素とを含んでもよい。モノクローム画像又は3つの別個の色平面を有する画像において、CUは、単一の符号化ブロックと、当該符号化ブロックのサンプルを符号化し復号化するための構文構造とを含んでもよい。なお、図4C及び4Dに示される4分木分割は、例示の目的のためのものに過ぎず、1つのCTUをCUに分割して、4分木/3分木/2分木分割に基づいて様々な局所的な特性に適応させることができる。マルチタイプツリー構造において、1つのCTUは、4分木構造によって分割され、各4分木リーフCUは、2分木構造及び3分木構造によって更に分割することができる。図4Eに示すように、幅W及び高さHを有する符号化ブロックの複数の可能な分割タイプ、即ち、4分割、垂直2分割、水平2分割、垂直3分割、垂直拡張3分割、水平3分割、及び水平拡張3分割がある。
【0060】
いくつかの実施形態では、ビデオエンコーダ20は、CUの符号化ブロックを1つ以上のM×NのPBに更に分割してもよい。PBは、同じ予測、インター又はイントラ予測が適用されるサンプルの矩形(正方形又は非正方形)ブロックを含んでもよい。CUのPUは、輝度サンプルのPBと、彩度サンプルの2つの対応するPBと、PBを予測するための構文要素とを含んでもよい。モノクローム画像又は3つの別個の色平面を有する画像において、PUは、単一のPBと、PBを予測するための構文構造とを含んでもよい。ビデオエンコーダ20は、CUの各PUの輝度PB、Cb PB及びCr PBについて、予測輝度ブロック、Cbブロック及びCrブロックを生成してもよい。
【0061】
ビデオエンコーダ20は、PUの予測ブロックを生成するために、イントラ予測又はインター予測を採用してもよい。ビデオエンコーダ20は、PUの予測ブロックを生成するためにイントラ予測を採用すれば、PUと関連するフレームの復号化サンプルに基づいて、PUの予測ブロックを生成してもよい。ビデオエンコーダ20は、PUの予測ブロックを生成するためにインター予測を採用すれば、PUと関連するフレーム以外の1つ以上のフレームの復号化サンプルに基づいて、PUの予測ブロックを生成してもよい。
【0062】
ビデオエンコーダ20は、CUの1つ以上のPUの予測輝度ブロック、Cbブロック及びCrブロックを生成した後、ビデオエンコーダ20は、CUの輝度残差ブロック内の各サンプルがCUの予測輝度ブロックのうちの1つの輝度サンプルと、CUの元の輝度符号化ブロックの対応するサンプルとの間の差分を示すように、CUの予測輝度ブロックを元の輝度符号化ブロックから減算することにより、CUの輝度残差ブロックを生成してもよい。同様に、ビデオエンコーダ20は、CUのCb残差ブロック内の各サンプルがCUの予測Cbブロックのうちの1つ内のCbサンプルと、CUの元のCb符号化ブロック内の対応するサンプルとの間の差分を示し、CUのCr残差ブロック内の各サンプルがCUの予測Crブロックのうちの1つ内のCrサンプルと、CUの元のCr符号化ブロック内の対応するサンプルとの間の差分を示してもよいように、CUのCb残差ブロック及びCr残差ブロックをそれぞれ生成してもよい。
【0063】
更に、図4Cに示すように、ビデオエンコーダ20は、CUの輝度、Cb、Cr残差ブロックを1つ以上の輝度、Cb、Cr変換ブロックにそれぞれ分解するために、4分木分割を採用してもよい。変換ブロックは、同じ変換が適用されるサンプルの矩形(正方形又は非正方形)ブロックを含んでもよい。CUのTUは、輝度サンプルの変換ブロックと、彩度サンプルの2つの対応する変換ブロックと、変換ブロックサンプルを変換するための構文要素とを含んでもよい。したがって、CUの各TUは、輝度変換ブロック、Cb変換ブロック及びCr変換ブロックと関連してもよい。いくつかの実施例では、TUと関連する輝度変換ブロックは、CUの輝度残差ブロックのサブブロックであってもよい。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであってもよい。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであってもよい。モノクローム画像又は3つの別個の色平面を有する画像において、TUは、単一の変換ブロックと、変換ブロックのサンプルを変換するための構文構造とを含んでもよい。
【0064】
ビデオエンコーダ20は、TUの輝度係数ブロックを生成するために、TUの輝度変換ブロックに1つ以上の変換を適用してもよい。係数ブロックは、変換係数の2次元配列であってもよい。変換係数は、スカラー量であってもよい。ビデオエンコーダ20は、TUのCb係数ブロックを生成するために、TUのCb変換ブロックに1つ以上の変換を適用してもよい。ビデオエンコーダ20は、TUのCr係数ブロックを生成するために、TUのCr変換ブロックに1つ以上の変換を適用してもよい。
【0065】
係数ブロック(例えば、輝度係数ブロック、Cb係数ブロック又はCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化することができる。量子化とは、一般に、変換係数を量子化して、変換係数を表現するためのデータの量をおそらく低減し、さらなる圧縮を提供するプロセスを指す。ビデオエンコーダ20は、係数ブロックを量子化した後、エントロピー符号化技術を適用して、量子化変換係数を示す構文要素を符号化することができる。例えば、ビデオエンコーダ20は、量子化変換係数を示す構文要素に対してCABACを実行してもよい。最後に、ビデオエンコーダ20は、符号化されたフレーム及び関連するデータの表現を形成するビット列を含むビットストリームを出力することができ、これは、記憶装置32に保存されるか、又は目標装置14に送信されるかのいずれかである。
【0066】
ビデオエンコーダ20により生成されたビットストリームを受信した後、ビデオデコーダ30は、ビットストリームを構文解析して、ビットストリームから構文要素を取得することができる。ビデオデコーダ30は、ビットストリームから取得された構文要素に少なくとも部分的に基づいて、ビデオデータのフレームを再構成してもよい。ビデオデータを再構成するプロセスは、一般に、ビデオエンコーダ20により実行される符号化プロセスと逆である。例えば、ビデオデコーダ30は、現在CUのTUと関連する係数ブロックに対して逆変換を実行して、現在CUのTUに関連付けられた残差ブロックを再構成してもよい。ビデオデコーダ30はまた、現在CUのPUの予測ブロックのサンプルを現在CUのTUの変換ブロックの対応するサンプルに追加することにより、現在CUの符号化ブロックを再構成する。フレームの各CUの符号化ブロックを再構成した後、ビデオデコーダ30は、フレームを再構成してもよい。
【0067】
上述したように、ビデオ符号化復号化は、主に、2つのモード、即ち、イントラフレーム予測(又はイントラ予測)とインターフレーム予測(又はインター予測)によりビデオ圧縮を実現する。なお、イントラブロックコピー(IBC)は、イントラフレーム予測又は第3モードと見なすことができる。2つのモードの間に、インターフレーム予測は、参照ビデオブロックからの現在ビデオブロックを予測する動きベクトルを採用するため、イントラフレーム予測よりも符号化復号化効率に寄与する。
【0068】
しかしながら、ビデオデータ収集技術が日々進歩するとともに、ビデオデータの詳細を保存するビデオブロックサイズがより微細化されることで、現在フレームの動きベクトルを表現するために必要なデータの量も実質的に増加する。この課題を解決する1つの方法は、空間領域と時間領域の両方の隣接するCUのグループが、予測のためのビデオデータが類似しているだけでなく、これらの隣接するCU間の動きベクトルも類似しているという事実からメリットを得る。したがって、空間的に隣接するCU及び/又は時間的に共同設置するCUの動き情報は、現在CUの「動きベクトル予測値(MVP)」とも呼ばれる、それらの空間的及び時間的な相関を探索することにより、現在CUの動き情報(例えば、動きベクトル)の近似として使用することができる。
【0069】
現在CUの実際の動きベクトルをビデオビットストリームに符号化する代わりに(図2に関連して上述したように、動き推定ユニット42により実際の動きベクトルを決定する)、現在CUの実際の動きベクトルから現在CUの動きベクトル予測値を減算して、現在CUの動きベクトル差分値(MVD)を生成する。これにより、フレームの各CUに対して動き推定ユニット42により決定された動きベクトルをビデオビットストリームに符号化する必要がなく、ビデオビットストリームの動き情報を表現するためのデータの量が大幅に減少する。
【0070】
符号化ブロックのインターフレーム予測の間に参照フレーム内の予測ブロックを選択するプロセスと同様に、ビデオエンコーダ20とビデオデコーダ30の両方は、現在CUの空間的に隣接するCU及び/又は時間的に共同設置するCUと関連する潜在的な候補動きベクトルを使用して現在CUの動きベクトル候補リスト(「マージリスト」とも呼ばれる)を構築してから、動きベクトル候補リストから1つのメンバーを現在CUの動きベクトル予測値として選択するために、一連のルールを利用することができる。これにより、動きベクトル候補リスト自体をビデオエンコーダ20からビデオデコーダ30に送信する必要がなく、動きベクトル候補リストから選択された動きベクトル予測値のインデックスは、ビデオエンコーダ20及びビデオデコーダ30が動きベクトル候補リスト内の同じ動きベクトル予測値を使用して現在CUを符号化及び復号化することに十分である。したがって、選択された動きベクトル予測値のインデックスのみをビデオエンコーダ20からビデオデコーダ30に送信する必要がある。
【0071】
本明細書は、バイラテラルフィルタリングに関する簡単な説明を提供する。バイラテラルフィルタリングのためのフィルタカーネルに対して、フィルタリングウィンドウ内の各サンプルの寄与は、サンプル間の空間距離だけでなく、サンプル間の輝度差分に依存する。例えば、(i,j)位置にあるサンプルは、(k,l)位置に隣接するサンプルを使用してフィルタリングすることができる。サンプル(i,j)のフィルタリングに対してサンプル(k,l)に割り当てられた重みω(i,j,k,l)は、以下の式で表すことができる。
【数1】
【0072】
上記式(3)において、I(i,j)及びI(k,l)はそれぞれ、サンプル(i,j)及び(k,l)の輝度値を示す。σは、空間的強度パラメータを示す。σは、輝度強度パラメータを示す。バイラテラルフィルタの強度は、σ及びσにより制御される。位置(i,j)に対するバイラテラルフィルタの出力サンプルは、フィルタリングウィンドウ内のサンプルの重み平均であってもよい。例えば、
【数2】
【0073】
上記式(4)において、Sout(i,j)は、位置(i,j)にある出力サンプルを示す。S(k,l)は、フィルタリングウィンドウ内の位置(k,l)にあるサンプルを示し、ここで、1≦k≦K及び1≦l≦Lである(例えば、1≦k≦K及び1≦l≦LであるS(k,l)は、フィルタリングウィンドウ内の画素を示す)。ω(i,j,k,l)は、S(k,l)の重みを示す。積KLは、フィルタリングウィンドウ内のサンプルの総数を示す。
【0074】
いくつかの実施形態では、バイラテラルフィルタの画像パラメータセットRBSP(Raw Byte Sequence Payload:未加工のバイトシーケンスペイロード)構文、スライスヘッダ構文、及び符号化ツリーユニット構文は、それぞれ以下の表1、表2及び表3によって実現されてもよい。
【表1】
【表2】
【表3】
【0075】
本明細書はまた、図5及び6を参照しながら、サイドウィンドウフィルタリング(SWF)の簡単な説明を提供し、図5は、ビデオフレームの代表的なエッジタイプを示し、図6は、本開示のいくつかの実施形態に係る代表的なサイドフィルタリングウィンドウを示す。画像フィルタリングに対して、画像中のエッジ及び他の信号詳細を保存しつつノイズを除去することが望ましい。いくつかの適用シナリオでは、画像フィルタリング方法は、画像が区分線形であると仮定する線形近似に基づくものであってもよい。次に、フィルタリングされる画素は、ローカルフィルタリングウィンドウの中心にあり、対応するフィルタリングされた画素は、フィルタリングされる画素と関連するローカルフィルタリングウィンドウ上の隣接する画素の重み平均として算出されてもよい。いくつかのエッジ、例えば、ステップエッジ、ランプエッジ又はルーフエッジ(図5に示すように)に対して、各エッジに対するフィルタリングウィンドウをそれぞれのエッジの一側に限定することにより、フィルタリング後にエッジの鮮鋭度を保存することができる。
【0076】
例えば、図5に示すステップエッジ510上の画素「a」に対して、サイドフィルタリングウィンドウ512は、画素「a」の左側に限定され、画素「a」をフィルタリングするために採用されてもよい。ステップエッジ510上の画素「b」に対して、サイドフィルタリングウィンドウ514は、画素「b」の右側に限定され、画素「b」をフィルタリングするために採用されてもよい。同様に、ランプエッジ520上の画素「c」に対して、画素「c」の一側に限定されたサイドフィルタリングウィンドウ522は、画素「c」をフィルタリングするために採用されてもよい。ランプエッジ520上の画素「d」に対して、画素「d」の一側に限定されたサイドフィルタリングウィンドウ524は、画素「d」をフィルタリングするために採用されてもよい。また、ルーフエッジ530上の画素「e」に対して、画素「e」の一側に限定されたサイドフィルタリングウィンドウ532は、画素「e」をフィルタリングするために採用されてもよい。ルーフエッジ530上の画素「f」に対して、画素「f」の一側に限定されたサイドフィルタリングウィンドウ534は、画素「f」をフィルタリングするために採用されてもよい。
【0077】
図6は、本開示のいくつかの実施形態に係る様々なサイドフィルタリングウィンドウを示す。例えば、図6の(a)部分は、3つのパラメータ(r,θ,ρ)で記述され得る連続的なサイドフィルタリングウィンドウ610を示す。rは、サイドフィルタリングウィンドウの半径を示し、θは、ウィンドウと水平線との角度を示し、ρは、注目画素(x,y)の位置を示す。固定パターンサイドフィルタリングウィンドウは、連続的なフィルタリングウィンドウの特殊な場合であってもよい。
【0078】
実際には、図6の(b)~(d)部分に示すように、少なくとも8つの固定パターンサイドフィルタリングウィンドウは、フィルタリング算出を簡略化することができる。例えば、図6の(b)部分は、注目画素(x,y)の左サイドフィルタリングウィンドウ(L)及び右サイドフィルタリングウィンドウ(R)を示す。図6の(c)部分は、注目画素(x,y)の上サイドフィルタリングウィンドウ(U)及び下サイドフィルタリングウィンドウ(D)を示す。図6の(d)部分は、注目画素(x,y)の北東フィルタリングウィンドウ(NE)、南東フィルタリングウィンドウ(SE)、南西フィルタリングウィンドウ(SW)及び北西フィルタリングウィンドウ(NW)をそれぞれ示す。
【0079】
エッジ上の各画素に対して、図6の(b)~(d)部分に示すように、8つのサイドフィルタリングウィンドウによりフィルタカーネルを適用する場合、8つの可能なフィルタリングされた出力を取得することができる。8つの可能なフィルタリングされた出力のうちの1つ(それに応じて、8つのサイドフィルタリングウィンドウのうちの1つ)を出力フィルタリングされた画素として選択して、エッジにある入力原画素と出力フィルタリングされた画素との間の距離を最小にすることにより、エッジの鮮鋭度を保存することができる。即ち、出力フィルタリングされた画素は、エッジにおいて、入力原画素と同じであってもよく、入力原画素にできる限り近づいてもよいため、入力輝度との距離が最小となるフィルタリングされた出力は、出力フィルタリングされた画素として選択されてもよい。対応するフィルタリングウィンドウを調整し、対応するフィルタ重みを再正規化することにより、任意のフィルタカーネルを本明細書に開示されたサイドウィンドウフィルタリングスキームに適用することができると考えられ、フィルタカーネルのタイプが本明細書に限定されない。
【0080】
本開示と一致して、本明細書に開示されたサイドウィンドウフィルタリングスキームは、VVC及びAVS3標準を超えてインループフィルタリングの符号化復号化性能を向上させることができる。いくつかの実施形態では、バイラテラルフィルタリングは、SAOフィルタと共同で動作して符号化復号化効率を向上させることができる。例として、バイラテラルフィルタリング技術は、本開示におけるサイドウィンドウフィルタリングスキームの精神を説明するために採用される。本明細書に開示されたサイドウィンドウフィルタリングスキームは、現代のビデオ符号化復号化技術の任意のフィルタリングモジュールに適用可能であると考えられ、バイラテラルフィルタに限定されない。
【0081】
図7は、本開示のいくつかの実施形態に係るサイドフィルタリングウィンドウによるバイラテラルフィルタリングの例示的なプロセスを示すブロック図である。いくつかの実施形態では、図7の例示的なプロセスは、ビデオエンコーダ20のインループフィルタ63又はビデオデコーダ30のインループフィルタ91により実行され得る。いくつかの実施形態では、図7の例示的なプロセスは、エンコーダ側又はデコーダ側にあるビデオプロセッサ(例えば、図13に示すプロセッサ1320)により実行されてもよい。例示の目的のためのものに過ぎず、以下、ビデオプロセッサに関して、図7の例示的なプロセスを説明する。
【0082】
最初に、ビデオプロセッサは、インループフィルタリングのビデオのビデオフレームを受信してもよい。ビデオフレームは、複数のビデオブロックを含んでもよく、各ビデオブロックは、処理される複数の注目画素を含む。ビデオフレーム内のビデオブロックの各注目画素に対して、ビデオプロセッサは、注目画素にサイドウィンドウによるバイラテラルフィルタリング700を実行してもよい。
【0083】
例えば、各注目画素に対して、ビデオプロセッサは、バイラテラルフィルタリングウィンドウの決定動作702を実行して、候補フィルタリングウィンドウの群から、注目画素のバイラテラルフィルタリングウィンドウを選択してもよい。候補フィルタリングウィンドウの群は、複数のサイドフィルタリングウィンドウと1つのフルフィルタリングウィンドウとを含んでもよい。複数のサイドフィルタリングウィンドウは、図6に示すように、例えば、注目画素のLウィンドウ、Rウィンドウ、Uウィンドウ、Dウィンドウ、NWウィンドウ、SEウィンドウ、SWウィンドウ又はSEウィンドウを含んでもよい。フルフィルタリングウィンドウは、例えば、注目画素がウィンドウの中央にある対称フィルタリングウィンドウであってもよい。
【0084】
その後、ビデオプロセッサは、バイラテラルフィルタリング動作704を実行して、選択されたバイラテラルフィルタリングウィンドウにより、ビデオフレーム内のビデオブロックの注目画素をフィルタリングしてもよい。例えば、ビデオプロセッサは、上記式(3)を適用して、選択されたバイラテラルフィルタリングウィンドウに基づいて、注目画素のフィルタリングされた画素を導出してもよい。
【0085】
以下、本明細書は、ビデオフレーム内の各注目画素に対応するそれぞれのフィルタリングされた画素を導出するためのサイドウィンドウによるバイラテラルフィルタリング700の複数の例示的な実施形態を提供する。本明細書に開示されたバイラテラルフィルタリングにおいて、各注目画素のフィルタリングは、バイラテラルフィルタリングウィンドウ内の全ての隣接する画素を重み付けるプロセスであってもよい。バイラテラルフィルタリングウィンドウは、本明細書に開示されたフルフィルタリングウィンドウ又はサイドフィルタリングウィンドウのうちの1つであってもよい。以下により詳細に説明されるように、注目画素に対してどのフィルタリングウィンドウが最適であるかを決定するために、1つ以上の基準を採用することができる。
【0086】
サイドウィンドウによるバイラテラルフィルタリング700の第1例示的な実施形態では、ビデオプロセッサは、複数のサイドフィルタリングウィンドウにより注目画素をフィルタリングして、複数のフィルタリングされた画素値をそれぞれ取得してもよい。例えば、各サイドフィルタリングウィンドウに対して、ビデオプロセッサは、上記式(3)を適用して、サイドフィルタリングウィンドウに基づいて、注目画素の対応するフィルタリングされた画素値を導出してもよい。その結果、複数のサイドフィルタリングウィンドウに対して、複数のフィルタリングされた画素値をそれぞれ生成することができる。
【0087】
そして、ビデオプロセッサは、複数のフィルタリングされた画素値に対応する複数の差分を算出し、各差分は、注目画素の対応するフィルタリングされた画素値と元の画素値との差分である。ビデオプロセッサは、複数のフィルタリングされた画素値から、複数の差分のうちの最小差分と関連するフィルタリングされた画素値を最適なフィルタリングされた画素値として識別してもよい。ビデオプロセッサは、最適なフィルタリングされた画素値に対応するサイドフィルタリングウィンドウを注目画素のバイラテラルフィルタリングウィンドウとして選択してもよい。ビデオプロセッサは、選択されたバイラテラルフィルタリングウィンドウにより注目画素のフィルタリングされた画素を出力してもよい。
【0088】
例えば、サイドウィンドウによるバイラテラルフィルタリング700の第1例示的な実施形態は、以下のように説明することができる。
【0089】
本開示と一致して、サイドウィンドウによるバイラテラルフィルタリング700の第1例示的な実施形態は、最適なサイドフィルタリングウィンドウにより、元の画素に最も近い出力フィルタリングされた画素を得るという基準に従う。第1例示的な実施形態では、サイドフィルタリングウィンドウのみが選択され、フルフィルタリングウィンドウが考慮されない。
【0090】
サイドウィンドウによるバイラテラルフィルタリング700の第2例示的な実施形態は、1つ以上の態様における第1例示的な実施形態を変更することにより形成することができる。いくつかの実施形態では、第1例示的な実施形態を変更して、フルフィルタリングウィンドウを候補フィルタリングウィンドウの群に組み込むことができる。即ち、第2例示的な実施形態における候補フィルタリングウィンドウの群は、フルフィルタリングウィンドウを含むようにS={F,L,R,U,D,NW,NE,SW,SE}に変更することができ、
は、フルフィルタリングウィンドウを表す。それに応じて、サイドフィルタリングウィンドウ又はフルフィルタリングウィンドウは、バイラテラルフィルタリングのために選択することができる。
【0091】
いくつかの実施形態では、第2例示的な実施形態において、サイドフィルタリングウィンドウの選択の信頼性を向上させるために、追加の判断条件を提供することができる。例えば、追加の判断条件は、第1例示的な実施形態のステップ2の後に追加することができる。以下により詳細に説明されるように、(a)、第2例示的な実施形態のステップ2における最適なフィルタリングされた画素値に対応する候補フィルタリングウィンドウがサイドフィルタリングウィンドウであり、かつ(b)、フィルタリング前の元の画素値と、フルフィルタリングウィンドウにより生成されたフルウィンドウフィルタリングされた画素値との第1差分が、元の画素値と、サイドフィルタリングウィンドウにより生成された最適なフィルタリングされた画素値との第2差分よりも明らかに大きければ(例えば、第1差分-第2差分≧所定の閾値th1)、最適なフィルタリングされた画素値に対応するサイドフィルタリングウィンドウを、バイラテラルフィルタリングウィンドウとして選択することができる。そうでなければ、フルフィルタリングウィンドウを、バイラテラルフィルタリングウィンドウとして選択することができる。
【0092】
具体的には、第1例示的な実施形態と同様に、第2例示的な実施形態では、ビデオプロセッサは、複数のサイドフィルタリングウィンドウにより注目画素をフィルタリングして、複数のフィルタリングされた画素値を取得してもよい。例えば、各サイドフィルタリングウィンドウに対して、ビデオプロセッサは、上記式(3)を適用して、サイドフィルタリングウィンドウに基づいて、注目画素の対応するフィルタリングされた画素値を導出してもよい。その結果、複数のサイドフィルタリングウィンドウに対して、複数のフィルタリングされた画素値をそれぞれ生成することができる。
【0093】
そして、ビデオプロセッサは、複数のフィルタリングされた画素値に対応する複数の差分を算出し、各差分は、注目画素の対応するフィルタリングされた画素値と元の画素値との差分である。ビデオプロセッサは、複数のフィルタリングされた画素値から、複数の差分のうちの最小差分に対応するフィルタリングされた画素値を最適なフィルタリングされた画素値として識別してもよい。
【0094】
また、ビデオプロセッサは、フルフィルタリングウィンドウにより注目画素をフィルタリングして、フルウィンドウフィルタリングされた画素値を取得してもよい。ビデオプロセッサは、注目画素のフルウィンドウフィルタリングされた画素値と元の画素値との第1差分を算出してもよい。また、ビデオプロセッサは、注目画素の最適なフィルタリングされた画素値と元の画素値との第2差分を算出してもよい。ビデオプロセッサは、第1差分及び第2差分が所定の条件を満たすか否かを決定してもよい。いくつかの実施形態では、所定の条件は、第1差分と第2差分との間の第3差分が所定の閾値th1未満であることを示す。例えば、第3差分が所定の閾値th1未満であれば、所定の条件が満たされる(例えば、第3差分=第1差分-第2差分であり、第3差分<所定の閾値th1)。
【0095】
第1差分及び第2差分が所定の条件を満たす場合、ビデオプロセッサは、フルフィルタリングウィンドウをバイラテラルフィルタリングウィンドウとして選択してもよい。そうでなければ、ビデオプロセッサは、最適なフィルタリングされた画素値に対応するサイドフィルタリングウィンドウを注目画素のバイラテラルフィルタリングウィンドウとして選択してもよい。ビデオプロセッサは、選択されたバイラテラルフィルタリングウィンドウにより注目画素のフィルタリングされた画素を出力してもよい。
【0096】
例えば、第2例示的な実施形態は、以下のように説明することができる。
【0097】
サイドウィンドウによるバイラテラルフィルタリング700の第3例示的な実施形態は、最適な画素類似度値に基づいて、各注目画素のバイラテラルフィルタリングウィンドウを決定するステップを含んでもよい。例えば、以下により詳細に説明されるように、注目画素とバイラテラルフィルタリングウィンドウ内の画素との平均差分は、候補フィルタリングウィンドウの群と関連する平均差分群のうち、最小であってもよい。
【0098】
具体的には、ビデオプロセッサは、候補フィルタリングウィンドウの群の画素類似度値群をそれぞれ決定してもよい。例えば、各候補フィルタリングウィンドウの画素類似度値は、注目画素と当該注目画素の候補フィルタリングウィンドウ内にある隣接する画素との間のものである。各候補フィルタリングウィンドウの画素類似度値は、注目画素の元の画素値と当該注目画素の候補フィルタリングウィンドウ内にある隣接する画素の元の画素値とに対して決定された差分平均値であってもよい。その結果、差分平均値群は、それぞれ候補フィルタリングウィンドウの群に対して決定され、画素類似度値群として使用される。ビデオプロセッサは、画素類似度値群から最適な画素類似度値を決定してもよい。例えば、ビデオプロセッサは、最適な画素類似度値を差分平均値群のうちの最小差分平均値として決定してもよい。
【0099】
ビデオプロセッサは、候補フィルタリングウィンドウの群から、最適な画素類似度値に対応する候補フィルタリングウィンドウをバイラテラルフィルタリングウィンドウとして選択してもよい。具体的には、最適な画素類似度値に対応する候補フィルタリングウィンドウがサイドフィルタリングウィンドウであれば、ビデオプロセッサは、最適な画素類似度値とフルフィルタリングウィンドウに対して決定された画素類似度値との比較に基づいて、バイラテラルフィルタリングウィンドウを選択してもよい。例えば、フルフィルタリングウィンドウの画素類似度値と最適な画素類似度値との差分が所定の閾値
以下である場合、ビデオプロセッサは、フルフィルタリングウィンドウをバイラテラルフィルタリングウィンドウとして選択してもよい。しかしながら、フルフィルタリングウィンドウの画素類似度値と最適な画素類似度値との差分が所定の閾値
以上であれば、ビデオプロセッサは、最適な画素類似度値に対応するサイドフィルタリングウィンドウをバイラテラルフィルタリングウィンドウとして選択してもよい。
【0100】
例えば、第3例示的な実施形態は、以下のように説明することができる。
【0101】
いくつかの適用シナリオでは、サイドウィンドウフィルタリングの直接適用は、ビデオコンテンツの多様性及び非定常性により、いくつかのビデオブロックにおいて失敗する場合がある。例えば、いくつかのビデオブロックに対して、フルウィンドウフィルタリングのみを適用し得るが、他のビデオブロックに対して、サイドウィンドウフィルタリングを適用し得る。ブロックレベルでフルウィンドウフィルタリングとサイドウィンドウフィルタリングのいずれかを適用する柔軟性を提供するために、ビデオプロセッサはまた、フィルタリングされたブロックの選択706を実行して、各ビデオブロックの適切な出力フィルタリングされたブロックを選択してもよい。例えば、ビデオブロックの第1潜在的なフィルタリングされたブロックは、全てのフィルタリングされた画素がフルフィルタリングウィンドウのみにより生成されるフルウィンドウフィルタリングされたブロックであってもよい。ビデオブロックの第2潜在的なフィルタリングされたブロックは、全ての画素が上述したサイドウィンドウによるバイラテラルフィルタリング700により生成されるサイドウィンドウフィルタリングされたブロックであってもよい。第2潜在的なフィルタリングされたブロックは、任意の他の適切なフィルタリングされたブロックであってもよく、サイドウィンドウによるバイラテラルフィルタリング700により生成されたフィルタリングされたブロックに限定されないと考えられる。ビデオブロックの出力フィルタリングされたブロックは、第1及び第2潜在的なフィルタリングされたブロックのうちの1つであると決定されてもよい。
【0102】
いくつかの実施形態では、フィルタリングされたブロックの選択706は、異なる粒度レベルで実行されてもよい。各ビデオブロックは、変換ユニット(TU)、符号化ユニット(CU)又は符号化ツリーユニット(CTU)であってもよい。ビデオプロセッサは、ビデオブロックがフルウィンドウフィルタリングされるか又はサイドウィンドウフィルタリングされるかを示すように、各ビデオブロックにフラグを付けてもよい。例えば、ビデオプロセッサは、ビデオブロックの出力フィルタリングされたブロックがフルウィンドウフィルタリングされたブロックであるか又はサイドウィンドウフィルタリングされたブロックであるかを示すように、各ビデオブロックにフラグを付けてもよい。また、フィルタリングされたブロックの選択706は、以下、図12を参照しながらより詳細に説明される。
【0103】
例えば、バイラテラルフィルタリングがTUレベルで実行されてもよいため、フィルタリングされたブロックの選択706は、TUレベルで実行されてもよい。以下の表4は、TUレベルでのフィルタリングされたブロックの選択の構文要素を提供する。要素「side_window_flag」は、出力フィルタリングされたブロックとしてフルウィンドウフィルタリングされたブロックが採用されるか又はサイドウィンドウフィルタリングされたブロックが採用されるかを示すように、各TUにシグナリングされてもよい。例えば、side_window_flagの第1値は、フルウィンドウフィルタリングされたブロックが出力フィルタリングされたブロックとして採用されることを示してもよい。side_window_flagの第2値は、サイドウィンドウフィルタリングされたブロックが出力フィルタリングされたブロックとして採用されることを示してもよい。エンコーダ側には、出力フィルタリングされたブロックとしてフルウィンドウフィルタリングされたブロックが採用されるか又はサイドウィンドウフィルタリングされたブロックが採用されるかを決定するために、レート歪み最適化を適用することができる。
【表4】
【0104】
別の実施例では、フィルタリングされたブロックの選択706は、CUレベルで実行されてもよい。side_window_flagは、CUレベルでシグナリングされてもよい。以下の表5は、CUレベルでのフィルタリングされたブロックの選択の構文要素を提供する。
【表5】
【0105】
また別の実施例では、TUレベル又はCUレベルでのフィルタリングされたブロックの選択がオーバーヘッドを引き起こす場合があるため、オーバーヘッドを回避するために、フィルタリングされたブロックの選択706は、CTUレベルで実行されてもよい。以下の表6は、CTUレベルでのフィルタリングされたブロックの選択の構文要素を提供する。bilateral_filter_ctb_flagが真であれば、side_window_flagは、サイドウィンドウフィルタリングされたブロックが採用されるか否かを示すようにシグナリングされる。
【表6】
【0106】
いくつかの実施形態では、ビデオプロセッサはまた、ブロックレベルのフィルタリングウィンドウの選択708を実行してもよい。例えば、ビデオプロセッサは、各ビデオブロックに対して、バイラテラルフィルタリングウィンドウを適応的に選択してもよい。例えば、エンコーダ側には、ビデオプロセッサは、フルフィルタリングウィンドウによりビデオブロックの各画素をフィルタリングすることができることを決定してもよい。代替的に、ビデオプロセッサは、特定のサイドフィルタリングウィンドウによりビデオブロックの各画素をフィルタリングすることができることを決定してもよい。フィルタウィンドウインデックスは、どのフィルタリングウィンドウがビデオブロックに対して使用されるかを示すようにシグナリングされる。デコーダ側には、フィルタリングウィンドウインデックスを構文解析して、フィルタリングウィンドウインデックスによりシグナリングされたフィルタリングウィンドウにより、バイラテラルフィルタリングを実行することができる。
【0107】
本開示と一致して、ブロックレベルのフィルタリングウィンドウの選択708はまた、異なる粒度レベルで実行されてもよい。以下の表7は、TUレベルでのフィルタリングウィンドウの選択の構文要素を提供する。各TUに対して、filter_window_indexは、TUに採用されるフィルタリングウィンドウを示すようにシグナリングされてもよい。
【表7】
【0108】
以下の表8は、CUレベルでのフィルタリングウィンドウの選択の構文要素を提供する。filter_window_indexは、どのフィルタリングウィンドウがCUに対して採用されるかを示すようにシグナリングされる。
【表8】
【0109】
以下の表9は、CTUレベルでのフィルタリングウィンドウの選択の構文要素を提供する。バイラテラルフィルタリングがCTUに対して採用可能であれば、filter_window_indexは、どのフィルタリングウィンドウがCTUに対して採用されるかを示すようにシグナリングされてもよい。
【表9】
【0110】
本開示と一致して、固定パターンサイドフィルタリングウィンドウは、以下の表10により説明されるように、フィルタウィンドウインデックスで説明することができる。固定パターンサイドフィルタリングウィンドウがビデオ符号化復号化に適用される場合、構文要素「filter_window_index」は、固定パターンサイドフィルタリングウィンドウのフィルタリングウィンドウタイプを示すために採用することができる。
【表10】
【0111】
図8は、本開示のいくつかの実施形態に係るサイドフィルタリングウィンドウによるバイラテラルフィルタリングの例示的な方法800の流れ図である。方法800は、ビデオエンコーダ20又はビデオデコーダ30と関連するビデオプロセッサにより実施されてもよく、以下に説明されるステップ802~804を含んでもよい。一部のステップは、本明細書に提供される開示を実行するオプションであってもよい。更に、一部のステップは、同時に実行されてもよく、図8に示す順序とは異なる順序で実行されてもよい。
【0112】
ステップ802では、ビデオプロセッサは、インループフィルタリングのためのビデオのビデオフレームを受信してもよい。
【0113】
ステップ804では、ビデオプロセッサは、ビデオフレームの注目画素に対して、候補フィルタリングウィンドウの群から、注目画素をインループフィルタリングするバイラテラルフィルタリングウィンドウを選択してもよい。候補フィルタリングウィンドウの群は、複数のサイドフィルタリングウィンドウと1つのフルフィルタリングウィンドウとを含んでもよい。
【0114】
ステップ806では、ビデオプロセッサは、選択されたバイラテラルフィルタリングウィンドウにより、ビデオフレームの注目画素をフィルタリングしてもよい。
【0115】
図9は、本開示のいくつかの実施形態に係る、図8中のサイドフィルタリングウィンドウによるバイラテラルフィルタリングのための方法800の第1例示的な実施形態である方法900の流れ図である。方法900は、ビデオエンコーダ20又はビデオデコーダ30と関連するビデオプロセッサにより実施されてもよく、以下に説明されるステップ902~912を含んでもよい。具体的には、方法800のステップ904~910は、方法800のステップ804の例示的な実施形態として実行されてもよい。一部のステップは、本明細書に提供される開示を実行するオプションであってもよい。更に、一部のステップは、同時に実行されてもよく、図9に示す順序とは異なる順序で実行されてもよい。
【0116】
ステップ902では、ビデオプロセッサは、インループフィルタリングのためのビデオのビデオフレームを受信してもよい。
【0117】
ステップ904では、ビデオプロセッサは、複数のサイドフィルタリングウィンドウによりビデオフレームの注目画素をフィルタリングして、複数のフィルタリングされた画素値をそれぞれ取得してもよい。ステップ904の実施は、以上に図7に関連して説明される。例えば、ステップ904は、上記第1例示的な実施形態におけるステップ1に従って実行されてもよい。
【0118】
ステップ906では、ビデオプロセッサは、複数のフィルタリングされた画素値に関する複数の差分をそれぞれ生成するように、注目画素の各フィルタリングされた画素値と元の画素値との差分を算出してもよい。
【0119】
ステップ908では、ビデオプロセッサは、複数のフィルタリングされた画素値から、複数の差分のうちの最小差分と関連するフィルタリングされた画素値を最適なフィルタリングされた画素値として識別してもよい。
【0120】
ステップ906及び908の実施は、以上に図7に関連して説明される。例えば、ステップ906及び908は、上記第1例示的な実施形態におけるステップ2に従って実行されてもよい。
【0121】
ステップ910では、ビデオプロセッサは、複数のフィルタリングされた画素値から最適なフィルタリングされた画素値に対応するサイドフィルタリングウィンドウをバイラテラルフィルタリングウィンドウとして選択してもよい。
【0122】
ステップ912では、ビデオプロセッサは、選択されたバイラテラルフィルタリングウィンドウにより、ビデオフレームの注目画素をフィルタリングしてもよい。
【0123】
ステップ910及び912の実施は、以上に図7に関連して説明される。例えば、ステップ910及び912は、上記第1例示的な実施形態における戻るステップに従って実行されてもよい。
【0124】
図10は、本開示のいくつかの実施形態に係る、図8中のサイドフィルタリングウィンドウによるバイラテラルフィルタリングのための方法800の第2例示的な実施形態である方法1000の流れ図である。方法1000は、ビデオエンコーダ20又はビデオデコーダ30と関連するビデオプロセッサにより実施されてもよく、以下に説明されるステップ1002~1018を含んでもよい。具体的には、方法1000のステップ1004~1016は、方法800のステップ804の例示的な実施形態として実行されてもよい。一部のステップは、本明細書に提供される開示を実行するオプションであってもよい。更に、一部のステップは、同時に実行されてもよく、図10に示す順序とは異なる順序で実行されてもよい。
【0125】
ステップ1002では、ビデオプロセッサは、インループフィルタリングのためのビデオのビデオフレームを受信してもよい。
【0126】
ステップ1004では、ビデオプロセッサは、複数のサイドフィルタリングウィンドウによりビデオフレームの注目画素をフィルタリングして、複数のフィルタリングされた画素値をそれぞれ取得してもよい。ステップ1004の実施は、以上に図7に関連して説明される。例えば、ステップ1004は、上記第2例示的な実施形態におけるステップ1に従って実行されてもよい。
【0127】
ステップ1006では、ビデオプロセッサは、複数のフィルタリングされた画素値に関する複数の差分をそれぞれ生成するように、注目画素の各フィルタリングされた画素値と元の画素値との差分を算出してもよい。
【0128】
ステップ1008では、ビデオプロセッサは、複数のフィルタリングされた画素値から、複数の差分のうちの最小差分と関連するフィルタリングされた画素値を最適なフィルタリングされた画素値として識別してもよい。
【0129】
ステップ1006及び1008の実施は、以上に図7に関連して説明される。例えば、ステップ1006及び1008は、上記第2例示的な実施形態におけるステップ2に従って実行されてもよい。
【0130】
ステップ1010では、ビデオプロセッサは、(a)注目画素のフルウィンドウフィルタリングされた画素値と元の画素値との第1差分、及び(b)注目画素の最適なフィルタリングされた画素値と元の画素値との第2差分を算出してもよい。
【0131】
ステップ1012では、ビデオプロセッサは、第1差分及び第2差分が所定の条件を満たすか否かを決定してもよい。第1差分及び第2差分が所定の条件を満たせば、方法1000は、ステップ1014に進んでもよい。そうでなければ、方法1000は、ステップ1016に進んでもよい。ステップ1014では、ビデオプロセッサは、フルフィルタリングウィンドウをバイラテラルフィルタリングウィンドウとして選択してもよい。
【0132】
ステップ1016では、ビデオプロセッサは、最適なフィルタリングされた画素値に対応するサイドフィルタリングウィンドウをバイラテラルフィルタリングウィンドウとして選択してもよい。
【0133】
ステップ1010~1016の実施は、以上に図7に関連して説明される。例えば、ステップ1010~1016は、上記第2例示的な実施形態におけるステップ3に従って実行されてもよい。
【0134】
ステップ1018では、ビデオプロセッサは、選択されたバイラテラルフィルタリングウィンドウにより、ビデオフレームの注目画素をフィルタリングしてもよい。
【0135】
図11は、本開示のいくつかの実施形態に係る、図8中のサイドフィルタリングウィンドウによるバイラテラルフィルタリングのための方法800の第3例示的な実施形態である方法1100の流れ図である。方法1100は、ビデオエンコーダ20又はビデオデコーダ30と関連するビデオプロセッサにより実施されてもよく、以下に説明されるステップ1102~1116を含んでもよい。具体的には、方法1100のステップ1104~1114は、方法800のステップ804の例示的な実施形態として実行されてもよい。一部のステップは、本明細書に提供される開示を実行するオプションであってもよい。更に、一部のステップは、同時に実行されてもよく、図11に示す順序とは異なる順序で実行されてもよい。
【0136】
ステップ1102では、ビデオプロセッサは、インループフィルタリングのためのビデオのビデオフレームを受信してもよい。
【0137】
ステップ1104では、ビデオプロセッサは、ビデオフレームの注目画素に対して、注目画素と当該注目画素の候補フィルタリングウィンドウ内にある隣接する画素との間の各候補フィルタリングウィンドウの画素類似度値を決定してもよい。その結果、候補フィルタリングウィンドウの群に対して、画素類似度値群をそれぞれ決定する。候補フィルタリングウィンドウの群は、複数のサイドフィルタリングウィンドウと1つのフルフィルタリングウィンドウとを含んでもよい。ステップ1104の実施は、以上に図7に関連して説明される。例えば、ステップ1104は、上記第3例示的な実施形態におけるステップ1に従って実行されてもよい。
【0138】
ステップ1106では、ビデオプロセッサは、画素類似度値群から最適な画素類似度値に対応する候補フィルタリングウィンドウを決定してもよい。ステップ1106の実施は、以上に図7に関連して説明される。例えば、ステップ1106は、上記第3例示的な実施形態におけるステップ2に従って実行されてもよい。
【0139】
ステップ1108では、ビデオプロセッサは、最適な画素類似度値に対応する候補フィルタリングウィンドウがサイドフィルタリングウィンドウであるか否かを決定してもよい。最適な画素類似度値に対応する候補フィルタリングウィンドウがサイドフィルタリングウィンドウであれば、方法1100は、ステップ1110に進んでもよい。そうでなければ、方法1100は、ステップ1112に進んでもよい。
【0140】
ステップ1110では、ビデオプロセッサは、フルフィルタリングウィンドウの画素類似度値と最適な画素類似度値との差分が所定の閾値以下であるか否かを決定してもよい。フルフィルタリングウィンドウの画素類似度値と最適な画素類似度値との差分が所定の閾値以下であれば、方法1100は、ステップ1112に進んでもよい。そうでなければ、方法1100は、ステップ1114に進んでもよい。
【0141】
ステップ1112では、ビデオプロセッサは、フルフィルタリングウィンドウをバイラテラルフィルタリングウィンドウとして選択してもよい。
【0142】
ステップ1114では、ビデオプロセッサは、最適な画素類似度値に対応するサイドフィルタリングウィンドウをバイラテラルフィルタリングウィンドウとして選択してもよい。
【0143】
ステップ1108~1114の実施は、以上に図7に関連して説明される。例えば、ステップ1108~1114は、上記第3例示的な実施形態におけるステップ3に従って実行されてもよい。
【0144】
ステップ1116では、ビデオプロセッサは、選択されたバイラテラルフィルタリングウィンドウにより、ビデオフレームの注目画素をフィルタリングしてもよい。
【0145】
図12は、本開示のいくつかの実施形態に係る、ビデオブロックに対して、フィルタリングされたブロックを選択する例示的な方法1200の流れ図である。方法1200は、ビデオエンコーダ20又はビデオデコーダ30と関連するビデオプロセッサにより実施されてもよく、以下に説明されるステップ1202~1212を含んでもよい。一部のステップは、本明細書に提供される開示を実行するオプションであってもよい。更に、一部のステップは、同時に実行されてもよく、図12に示す順序とは異なる順序で実行されてもよい。
【0146】
ステップ1202では、ビデオプロセッサは、ビデオブロックの複数の注目画素からの各注目画素に対して、サイドウィンドウによるバイラテラルフィルタリングを実行して、対応する第1フィルタリングされた画素を生成してもよい。その結果、ビデオブロックの複数の注目画素に対して、複数の第1フィルタリングされた画素を生成する。例えば、ビデオプロセッサは、ビデオブロックの各注目画素に対して、方法800、900、1000又は1100を実行して注目画素をフィルタリングすることにより、注目画素に対して、対応する第1フィルタリングされた画素を生成してもよい。
【0147】
ステップ1204では、ビデオプロセッサは、複数の第1フィルタリングされた画素を含むサイドウィンドウフィルタリングされたブロックを生成してもよい。
【0148】
ステップ1206では、ビデオプロセッサは、注目画素のそれぞれのフルフィルタリングウィンドウにより、複数の注目画素からの各注目画素に対して、バイラテラルフィルタリングを実行して、対応する第2フィルタリングされた画素を生成してもよい。その結果、ビデオブロックの複数の注目画素に対して、複数の第2フィルタリングされた画素を生成する。
【0149】
ステップ1208では、ビデオプロセッサは、複数の第2フィルタリングされた画素を含むフルウィンドウフィルタリングされたブロックを生成してもよい。
【0150】
ステップ1210では、ビデオプロセッサは、サイドウィンドウフィルタリングされたブロック又はフルウィンドウフィルタリングされたブロックをビデオブロックの最適なフィルタリングされたブロックとして選択してもよい。例えば、ビデオプロセッサは、レート歪み最適化に基づいて、サイドウィンドウフィルタリングされたブロック又はフルウィンドウフィルタリングされたブロックを最適なフィルタリングされたブロックとして選択してもよい。
【0151】
ステップ1212では、ビデオプロセッサは、ビデオブロックの最適なフィルタリングされたブロックに基づいて、ビデオブロックがフルウィンドウフィルタリングされたものであるか又はサイドウィンドウフィルタリングされたものであるかを示すように、ビデオブロックにフラグを付けてもよい。例えば、最適なフィルタリングされたブロックがサイドウィンドウフィルタリングされたブロックであれば、ビデオプロセッサは、サイドウィンドウフィルタリングされるようにビデオブロックにフラグを付けてもよい。最適なフィルタリングされたブロックがフルウィンドウフィルタリングされたブロックであれば、ビデオプロセッサは、フルウィンドウフィルタリングされるようにビデオブロックにフラグを付けてもよい。
【0152】
図13は、本開示のいくつかの実施形態に係る、ユーザインタフェース1350に結合されるコンピューティング環境1310を示す。コンピューティング環境1310は、データ処理サーバの一部とすることができる。コンピューティング環境1310は、プロセッサ1320と、メモリ1330と、入力/出力(I/O)インタフェース1340とを含んでもよい。
【0153】
プロセッサ1320は、典型的に、ディスプレイ、データ取得、データ通信、及び画像処理と関連する動作などの、コンピューティング環境1310の全体的な動作を制御する。プロセッサ1320は、上述方法のステップの全部又は一部を実行する命令を実行するための1つ以上のプロセッサを含んでもよい。また、プロセッサ1320は、プロセッサ1320と他のコンポーネントとの間のインタラクションを容易にする1つ以上のモジュールを含んでもよい。プロセッサ1320は、中央処理装置(CPU)、マイクロプロセッサ、シングルチップマシン、グラフィック処理装置(GPU)などであってもよい。
【0154】
メモリ1330は、コンピューティング環境1310の動作をサポートするために、様々なタイプのデータを記憶するように構成される。メモリ1330は、所定のソフトウェア1332を含んでもよい。そのようなデータの例として、コンピューティング環境1310上で動作する任意のアプリケーション又は方法のための命令、ビデオデータセット、画像データなどが挙げられる。メモリ1330は、静的ランダムアクセスメモリ(SRAM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、プログラマブル読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスク又は光ディスクなどの任意のタイプの揮発性若しくは不揮発性メモリ装置、又はそれらの組み合わせを採用することにより実装されてもよい。
【0155】
I/Oインタフェース1340は、プロセッサ1320と、キーボード、クリックホイール、ボタンなどのペリフェラルインタフェースモジュールとの間のインタフェースを提供する。ボタンは、ホームボタン、スキャン開始ボタン及びスキャン停止ボタンを含んでもよいが、それらに限定されない。I/Oインタフェース1340は、エンコーダ及びデコーダに結合することができる。
【0156】
いくつかの実施形態では、メモリ1330などに含まれる、上述の方法を実行するためにコンピューティング環境1310内のプロセッサ1320によって実行可能な複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。代替的に、非一時的コンピュータ可読記憶媒体は、ビットストリーム又はデータストリームが記憶されてもよく、ビットストリーム又はデータストリームは、例えば、エンコーダ(例えば、図2中のビデオエンコーダ20)が、ビデオデータを復号化する際にデコーダ(例えば、図3中のビデオデコーダ30)によって採用される上記符号化方法で生成した符号化ビデオ情報(例えば、1つ以上の構文要素を含むビデオ情報)を含む。非一時的コンピュータ可読記憶媒体は、例えば、ROM、ランダムアクセスメモリ(RAM)、CD-ROM、磁気テープ、フロッピーディスク、光データ記憶装置などであってもよい。
【0157】
いくつかの実施形態では、1つ以上のプロセッサ(例えば、プロセッサ1320)と、1つ以上のプロセッサによって実行可能な複数のプログラムが記憶されている非一時的コンピュータ可読記憶媒体又はメモリ1330とを含むコンピューティング装置も提供され、当該1つ以上のプロセッサは、複数のプログラムを実行する時に、上述の方法を実行するように構成される。
【0158】
いくつかの実施形態では、メモリ1330などに含まれる、上述の方法を実行するためにコンピューティング環境1310内のプロセッサ1320によって実行可能な複数のプログラムを含むコンピュータプログラム製品も提供される。例えば、コンピュータプログラム製品は、非一時的コンピュータ可読記憶媒体を含んでもよい。
【0159】
いくつかの実施形態では、上記方法を実行するために、コンピューティング環境1310は、1つ以上のASIC、DSP、デジタル信号処理装置(DSPD)、プログラマブルロジック装置(PLD)、FPGA、GPU、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他の電子コンポーネントで実装されてもよい。
【0160】
本開示の説明は、例示を目的として提示されたものであり、本開示を網羅したり限定したりすることを意図したものではない。前述の説明及び関連する図面に提示された教示の利益を有する当業者には、多くの修正、変形、及び代替の実施形態が明らかとなるであろう。
【0161】
特に明記しない限り、本開示に係る方法のステップの順序は、例示を意図するものに過ぎず、本開示に係る方法のステップは、具体的に上述した順序に限定されず、実際の条件に応じて変更されてもよい。また、本開示に係る方法のステップのうちの少なくとも1つのステップは、実際の必要に応じて調整されてもよく、組み合わせられてもよく、削除されてもよい。
【0162】
実施例は、本開示の原理を説明するために、また、他の当業者が様々な実施形態について本開示を理解し、意図される特定の適用に適した様々な修正を伴う基礎となる原理及び様々な実施を最もよく利用することができるように、選択され、説明された。したがって、本開示の範囲は、開示された実施形態の具体的な実施例に限定されるべきではなく、修正及び他の実施形態は、本開示の範囲内に含まれることが意図されることを理解されたい。

図1
図2
図3
図4A
図4B
図4C
図4D
図4E
図5
図6
図7
図8
図9
図10
図11
図12
図13
【手続補正書】
【提出日】2024-02-21
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つ以上のプロセッサによって、インループフィルタリングのためのビデオのビデオフレームを受信することと、
前記1つ以上のプロセッサによって、前記ビデオフレームの注目画素に対して、複数のサイドフィルタリングウィンドウと1つのフルフィルタリングウィンドウとを含む候補フィルタリングウィンドウの群から、前記注目画素をインループフィルタリングするバイラテラルフィルタリングウィンドウを選択することと、
前記1つ以上のプロセッサによって、選択された前記バイラテラルフィルタリングウィンドウにより、前記ビデオフレームの前記注目画素をフィルタリングすることと、
を含む、バイラテラルフィルタリングによるビデオ処理方法。
【請求項2】
前記注目画素に対してバイラテラルフィルタリングウィンドウを選択することは、
前記複数のサイドフィルタリングウィンドウにより前記注目画素をフィルタリングして、複数のフィルタリングされた画素値をそれぞれ取得することと、
前記複数のフィルタリングされた画素値のうちの最適なフィルタリングされた画素値に対応するサイドフィルタリングウィンドウを前記バイラテラルフィルタリングウィンドウとして選択することと、
を更に含む、請求項1に記載のビデオ処理方法。
【請求項3】
前記最適なフィルタリングされた画素値に対応するサイドフィルタリングウィンドウを選択することは、
前記複数のフィルタリングされた画素値に対応しそれぞれが前記注目画素の対応するフィルタリングされた画素値と元の画素値との差分である複数の差分を算出することと、
前記複数のフィルタリングされた画素値から、前記複数の差分のうちの最小差分と関連するフィルタリングされた画素値を前記最適なフィルタリングされた画素値として識別することと、
を更に含む、請求項2に記載のビデオ処理方法。
【請求項4】
前記注目画素に対してバイラテラルフィルタリングウィンドウを選択することは、
前記フルフィルタリングウィンドウにより前記注目画素をフィルタリングして、フルウィンドウフィルタリングされた画素値を取得することと、
前記注目画素のフルウィンドウフィルタリングされた画素値と元の画素値との第1差分を算出することと、
前記注目画素の前記最適なフィルタリングされた画素値と元の画素値との第2差分を算出することと、
前記第1差分及び前記第2差分が所定の条件を満たす場合、前記フルフィルタリングウィンドウを前記バイラテラルフィルタリングウィンドウとして選択することと、
を更に含む、請求項2に記載のビデオ処理方法。
【請求項5】
前記所定の条件は、前記第1差分と前記第2差分との間の第3差分が所定の閾値よりも低いことである、請求項4に記載のビデオ処理方法。
【請求項6】
前記注目画素に対してバイラテラルフィルタリングウィンドウを選択することは、
候補フィルタリングウィンドウの群の、それぞれが前記注目画素と前記候補フィルタリングウィンドウ内にある前記注目画素の隣接する画素との間の画素類似度値である画素類似度値群をそれぞれ決定することと、
前記候補フィルタリングウィンドウの群から、前記画素類似度値群のうちの最適な画素類似度値に対応する候補フィルタリングウィンドウを前記バイラテラルフィルタリングウィンドウとして選択することと、
を更に含む、請求項1に記載のビデオ処理方法。
【請求項7】
各候補フィルタリングウィンドウの画素類似度値は、前記注目画素の画素値と前記候補フィルタリングウィンドウ内にある前記注目画素の隣接する画素の画素値との間に関して決定された差分の平均値である、請求項6に記載のビデオ処理方法。
【請求項8】
前記注目画素に対してバイラテラルフィルタリングウィンドウを選択することは、
前記最適な画素類似度値に対応する候補フィルタリングウィンドウがサイドフィルタリングウィンドウであれば、前記最適な画素類似度値と前記フルフィルタリングウィンドウに対して決定された画素類似度値との比較に基づいて、前記バイラテラルフィルタリングウィンドウを選択すること
を更に含む、請求項6に記載のビデオ処理方法。
【請求項9】
前記最適な画素類似度値と前記フルフィルタリングウィンドウに対して決定された画素類似度値との比較に基づいて、前記バイラテラルフィルタリングウィンドウを選択することは、
前記フルフィルタリングウィンドウの前記画素類似度値と前記最適な画素類似度値との差分が所定の閾値以下である場合、前記フルフィルタリングウィンドウを前記バイラテラルフィルタリングウィンドウとして選択すること
を更に含む、請求項8に記載のビデオ処理方法。
【請求項10】
前記ビデオフレームは、複数のビデオブロックを含み、
記ビデオ処理方法は、
前記ビデオブロックがフルウィンドウフィルタリングされたものであるか又はサイドウィンドウフィルタリングされたものであるかを示すように、各ビデオブロックにフラグを付けること
を更に含む、請求項1に記載のビデオ処理方法。
【請求項11】
各ビデオブロックは、変換ユニット(TU)、符号化ユニット(CU)又は符号化ツリーユニット(CTU)である、請求項10に記載のビデオ処理方法。
【請求項12】
各サイドフィルタリングウィンドウは、フィルタリングウィンドウインデックスによって示されたフィルタリングウィンドウタイプを有する、請求項1に記載のビデオ処理方法。
【請求項13】
1つ以上のプロセッサと、
1つ以上のプロセッサによって実行可能な命令を格納するように構成されるメモリと、
を含み、
前記1つ以上のプロセッサは、前記命令の実行時に、請求項1~12のいずれか一項に記載の方法を実行するように構成される、バイラテラルフィルタリングのためのビデオ処理装置。
【請求項14】
ビットストリームを格納するための命令を有するコンピュータプログラムであって、
前記ビットストリームは、
請求項1~12のいずれか一項に記載の方法によって復号化されるビデオデータを符号化すること、又は、
請求項1~12のいずれか一項に記載の方法によって生成されるビデオデータを符号化すること、
を含む、コンピュータプログラム。
【請求項15】
ビデオビットストリームを記憶する非一時的コンピュータ可読記憶媒体であって、
前記ビデオビットストリームは、請求項13に記載のビデオ処理装置によって生成されたもの、又は、請求項13に記載のビデオ処理装置によって復号化されるものである、非一時的コンピュータ可読記憶媒体。
【請求項16】
請求項1~12のいずれか一項に記載のビデオ処理方法によって生成されたビットストリームを格納するための方法。
【国際調査報告】