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

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

▶ 三星電子株式会社の特許一覧

特表2024-527952映像に対するAI基盤フィルタリングのための装置及びその方法
<>
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図1
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図2
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図3
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図4
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図5
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図6
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図7
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図8
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図9
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図10
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図11
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図12
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図13
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図14
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図15
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図16
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図17
  • 特表-映像に対するAI基盤フィルタリングのための装置及びその方法 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-26
(54)【発明の名称】映像に対するAI基盤フィルタリングのための装置及びその方法
(51)【国際特許分類】
   H04N 19/117 20140101AFI20240719BHJP
   H04N 19/154 20140101ALI20240719BHJP
   H04N 19/176 20140101ALI20240719BHJP
【FI】
H04N19/117
H04N19/154
H04N19/176
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024504891
(86)(22)【出願日】2022-08-02
(85)【翻訳文提出日】2024-01-25
(86)【国際出願番号】 KR2022011429
(87)【国際公開番号】W WO2023014065
(87)【国際公開日】2023-02-09
(31)【優先権主張番号】10-2021-0104202
(32)【優先日】2021-08-06
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2022-0028221
(32)【優先日】2022-03-04
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
(71)【出願人】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100229448
【弁理士】
【氏名又は名称】中槇 利明
(72)【発明者】
【氏名】ピョ,インジ
(72)【発明者】
【氏名】キム,キョンア
(72)【発明者】
【氏名】ディン,コックカーン
(72)【発明者】
【氏名】パク,ミンス
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159TA69
5C159TB08
5C159TC28
5C159TD02
5C159TD03
5C159TD17
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
インストラクションを保存するメモリと、インストラクションによって動作するプロセッサと、を含み、該プロセッサは、現在ブロックの符号化データから現在ブロックを復元し、符号化データに含まれた量子化パラメータから算出されるサンプル値を含む量子化エラーマップを獲得し、現在ブロック及び量子化エラーマップをニューラルネットワークに適用し、第1修正ブロックを獲得し、現在ブロックと第1修正ブロックとの第1差分ブロックを獲得し、現在ブロックの特徴に依存するパラメータにより、第1差分ブロックのサンプル値を変更し、第2差分ブロックを獲得し、現在ブロックと第2差分ブロックとを結合し、第2修正ブロックを獲得する、一実施形態による映像処理装置が開示される。
【特許請求の範囲】
【請求項1】
AI(artificial intelligence)基盤フィルタリングのための映像処理装置において、
1以上のインストラクションを保存するメモリと、
前記1以上のインストラクションによって動作するプロセッサと、を含み、
前記プロセッサは、
現在ブロックの符号化データから現在ブロックを復元し、
前記符号化データ内の量子化パラメータから算出されるサンプル値を含む量子化エラーマップを獲得し、
前記現在ブロック及び前記量子化エラーマップをニューラルネットワークに適用し、第1修正ブロックを獲得し、
前記現在ブロックと前記第1修正ブロックとの第1差分ブロックを獲得し、
前記現在ブロックの特徴に依存するパラメータにより、前記第1差分ブロックのサンプル値を変更し、第2差分ブロックを獲得し、
前記現在ブロックと前記第2差分ブロックとを結合し、第2修正ブロックを獲得する、映像処理装置。
【請求項2】
前記ニューラルネットワークは、
前記現在ブロック及び前記量子化エラーマップを、事前に設定された加重値によってコンボリューション処理し、前記第1差分ブロックを出力する少なくとも1つのコンボリューションレイヤと、
前記第1差分ブロックと前記現在ブロックとを合わせ、前記第1修正ブロックを出力する合算レイヤと、を含む、
請求項1に記載の映像処理装置。
【請求項3】
前記現在ブロックの下位ブロックのための量子化パラメータが、前記符号化データに含まれている場合、前記量子化エラーマップのサンプル値は、前記下位ブロックのそれぞれについて算出される、請求項1に記載の映像処理装置。
【請求項4】
前記プロセッサは、
複数の候補パラメータのうち、前記符号化データから獲得された第1情報が示すパラメータを選択し、
前記選択されたパラメータにより、前記第1差分ブロックのサンプル値を変更し、前記第2差分ブロックを獲得する、
請求項1に記載の映像処理装置。
【請求項5】
前記プロセッサは、
複数のパラメータセットのうち、前記符号化データから獲得された第2情報が示すパラメータセットを選択し、
前記選択されたパラメータセット内の前記複数の候補パラメータのうち、前記第1情報が示すパラメータを選択する、
請求項4に記載の映像処理装置。
【請求項6】
前記第2情報は、前記現在ブロックを含む上位ブロックのために獲得され、
前記第1情報は、前記現在ブロックのために獲得される、
請求項5に記載の映像処理装置。
【請求項7】
前記プロセッサは、
前記パラメータを決定するために、前記現在ブロック、または前記現在ブロックの上位ブロックの特徴値を獲得する、
請求項1に記載の映像処理装置。
【請求項8】
前記特徴値は、
i)前記現在ブロックまたは前記上位ブロックの復元のために獲得される残差サンプル値を二乗した値の和、
ii)前記残差サンプル値を二乗した値の平均、
iii)前記残差サンプル値のうち最大値、
iv)前記残差サンプル値の絶対値のうち最大値、
v)残差サンプルに対応する変換係数における、0ではない変換係数の個数、
vi)前記現在ブロックに対応するスライスのタイプを示す値、
vii)前記現在ブロック内または前記上位ブロック内において、イントラ予測が適用されるブロックの広さと、インター予測が適用されるブロックの広さとの比率、
viii)前記現在ブロックまたは前記上位ブロックの鮮明度(sharpness)、
ix)前記現在ブロックまたは前記上位ブロックについて設定される1以上の量子化パラメータから算出される1以上の量子化ステップサイズの平均、または
x)前記1以上の量子化パラメータから算出される1以上の量子化エラー値の平均のうち少なくとも一つから獲得される、請求項7に記載の映像処理装置。
【請求項9】
前記パラメータは、スケールファクタを含み、
前記プロセッサは、
前記スケールファクタにより、前記第1差分ブロックのサンプル値をスケーリングし、 前記第2差分ブロックを獲得する、
請求項1に記載の映像処理装置。
【請求項10】
前記パラメータは、クリッピングファクタを含み、
前記プロセッサは、
前記第1差分ブロックのサンプル値が、前記クリッピングファクタに対応する上限値と下限値との間に含まれるように、前記第1差分ブロックのサンプル値をクリッピングし、前記第2差分ブロックを獲得する、
請求項1に記載の映像処理装置。
【請求項11】
前記プロセッサは、
前記現在ブロック、または前記現在ブロックの上位ブロックの特徴値を獲得し、
複数の加重値セットのうち、前記特徴値に対応する加重値セットを選択するが、
前記現在ブロックと前記量子化エラーマップは、前記選択された加重値セットによって動作するニューラルネットワークによって処理される、
請求項1に記載の 映像処理装置。
【請求項12】
前記プロセッサは、
前記現在ブロック、または前記現在ブロックの上位ブロックの特徴値を獲得し、
前記獲得された特徴値に基づき、前記現在ブロックに対し、前記AI基盤フィルタリングを適用するか否かということを決定する、
請求項1に記載の映像処理装置。
【請求項13】
前記プロセッサは、
前記ニューラルネットワーク内のコンボリューションレイヤの層数、及びコンボリューションレイヤで利用されるフィルタカーネルの大きさによって拡張距離(extension distance)を算出し、
現在映像内において、前記現在ブロックの境界外部の周辺サンプルのうち、前記拡張距離に対応する周辺サンプルと、前記現在ブロックのサンプルによってなる拡張ブロックとを前記ニューラルネットワークに適用する、
請求項1に記載の映像処理装置。
【請求項14】
現在ブロックの符号化データから現在ブロックを復元する段階と、
前記符号化データ内の量子化パラメータから算出されるサンプル値を含む量子化エラーマップを獲得する段階と、
前記現在ブロック及び前記量子化エラーマップをニューラルネットワークに適用し、第1修正ブロックを獲得する段階と、
前記現在ブロックと前記第1修正ブロックとの第1差分ブロックを獲得する段階と、
前記現在ブロックの特徴に依存するパラメータにより、前記第1差分ブロックのサンプル値を変更し、第2差分ブロックを獲得する段階と、
前記現在ブロックと前記第2差分ブロックとを結合し、第2修正ブロックを獲得する段階と、を含む、
映像処理方法。
【請求項15】
請求項14に記載の方法をコンピュータで遂行するためのプログラムが記録された、コンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像を処理する方法及びその装置に係り、具体的には、AI(artificial intelligence[人工知能])基盤フィルタ〔AIベースのフィルタ〕を映像に適用し、映像の符号化過程及び復号過程で発生したエラーを除去する方法及びその装置に関する。
【背景技術】
【0002】
H.264 AVC(Advanced Video Coding)及びHEVC(High Efficiency Video Coding)のようなコーデックにおいては、映像をブロックに分割し、インター予測(inter prediction)またはイントラ予測(intra prediction)を介し、それぞれのブロックを予測符号化及び予測復号する。
【0003】
イントラ予測は、映像内の空間的な冗長性を除去し、映像を圧縮する方法であり、インター予測は、映像間の時間的な冗長性を除去し、映像を圧縮する方法である。
【0004】
符号化過程においては、イントラ予測またはインター予測を介し、予測ブロックを生成し、現在ブロックから予測ブロックを減算し、残差ブロックを生成し、該残差ブロックの残差サンプルを変換及び量子化する。
【0005】
復号過程においては、残差ブロックの量子化された変換係数を逆量子化及び逆変換し、残差ブロックの残差サンプルを生成し、イントラ予測またはインター予測を介して生成された予測ブロックを残差ブロックに加え、現在ブロックを復元する。復元された現在ブロックは、1以上のフィルタリングアルゴリズムによって処理された後、出力されうる。
【0006】
H.264 AVC及びHEVCのようなコーデックにおいては、復元された現在ブロックのフィルタリングのために、ルール基盤のフィルタリングアルゴリズムを利用する。該ルール基盤のフィルタリングアルゴリズムは、例えば、デブロッキング(deblocking)フィルタ、SAO(sample adaptive offset)フィルタ及びALF(adaptive loop filter)を例示することができる。
【0007】
伝統的には、ルール基盤のフィルタリングアルゴリズムは、良好な性能を発揮したが、映像の解像度が高くなり、映像のコンテンツが多様化されることにより、映像の特性を柔軟に考慮することができるAI基盤フィルタリングアルゴリズムが要求されうる。
【発明の概要】
【発明が解決しようとする課題】
【0008】
一実施形態によるAI基盤フィルタリングのための映像処理装置及びその方法は、復元ブロックに対してAI基盤フィルタリングを適用し、該復元ブロックが原本ブロックにさらに類似するようにすることを課題とする。
【0009】
また、一実施形態によるAI基盤フィルタリングのための映像処理装置及びその方法は、復元ブロック内の量子化エラーをさらに効率的に除去することを課題とする。
【0010】
また、一実施形態によるAI基盤フィルタリングのための映像処理装置及びその方法は、復元ブロックの特徴を考慮したAI基盤フィルタリングを介し、復元ブロックのクォリティを向上させることを課題とする。
【課題を解決するための手段】
【0011】
一実施形態によるAI基盤フィルタリングのための映像処理装置は、1以上のインストラクションを保存するメモリと、前記1以上のインストラクションによって動作するプロセッサと、を含み、前記プロセッサは、現在ブロックの符号化データ(encoded data)から現在ブロックを復元し、前記符号化データに含まれた量子化パラメータから算出されるサンプル値を含む量子化エラーマップ(quantization error map)を獲得し、前記現在ブロック及び前記量子化エラーマップをニューラルネットワークに適用し、第1修正ブロック(first modified block)を獲得し、前記現在ブロックと前記第1修正ブロックとの第1差分ブロック(first differential block)を獲得し、前記現在ブロックの特徴に依存するパラメータにより、前記第1差分ブロックのサンプル値を変更し、第2差分ブロック(second differential block)を獲得し、前記現在ブロックと前記第2差分ブロックとを結合し、第2修正ブロック(second modified block)を獲得しうる。
【発明の効果】
【0012】
一実施形態によるAI基盤フィルタリングのための映像処理装置及びその方法は、復元ブロックに対してAI基盤フィルタリングを適用し、復元ブロックが原本ブロックにさらに類似するようにしうる。
【0013】
また、一実施形態によるAI基盤フィルタリングのための映像処理装置及びその方法は、復元ブロック内の量子化エラーをさらに効率的に除去することができる。
【0014】
また、一実施形態によるAI基盤フィルタリングのための映像処理装置及びその方法は、復元ブロックの特徴を考慮したAI基盤フィルタリングを介し、復元ブロックのクォリティを向上させることができる。
【図面の簡単な説明】
【0015】
図1】一実施形態による映像処理装置の構成を図示するブロック図である。
図2】一実施形態により、現在ブロックの下位ブロックに対する量子化パラメータから生成された量子化エラーマップを図示する図である。
図3】一実施形態によるニューラルネットワークを図示する図である。
図4】一実施形態による映像修正部の構成を図示する図である。
図5】一実施形態による候補パラメータと、ブロックの特徴との対応関係を示す表である。
図6】一実施形態による、パラメータセットと、ブロックの特徴との対応関係を示す表である。
図7】一実施形態による、複数のスケールファクタセットを図示する図である。
図8】一般的なコンボリューション処理について説明するための図である。
図9】一実施形態による、現在映像内の拡張ブロックを図示する図である。
図10】一実施形態による、拡張距離が3に決定された場合の拡張ブロックを図示する図である。
図11】一実施形態による、拡張ブロックに対応する拡張量子化エラーマップを図示する図である。
図12】一実施形態による、複数の加重値セットと、ブロックの特徴との対応関係を示す表である。
図13】一実施形態による、映像処理装置による映像処理方法のフローチャートである。
図14】一実施形態による、映像処理装置による映像処理方法のフローチャートである。
図15】一実施形態による、ニューラルネットワークの訓練方法について説明するための図である。
図16】他の実施形態による映像処理装置の構成を図示するブロック図である。
図17】映像の符号化過程及び復号過程を図示する図である。
図18】映像からツリー構造によって分割されたブロックを図示する図である。
【発明を実施するための形態】
【0016】
一実施形態による、AI(artificial intelligence)基盤フィルタリングのための映像処理装置は、1以上のインストラクションを保存するメモリと、前記1以上のインストラクションによって動作するプロセッサと、を含み、前記プロセッサは、現在ブロックの符号化データ(encoded data)から現在ブロックを復元し、前記符号化データに含まれた量子化パラメータから算出されるサンプル値を含む量子化エラーマップ(quantization error map)を獲得し、前記現在ブロック及び前記量子化エラーマップをニューラルネットワークに適用し、第1修正ブロック(first modified block)を獲得し、前記現在ブロックと前記第1修正ブロックとの第1差分ブロック(first differential block)を獲得し、前記現在ブロックの特徴に依存するパラメータにより、前記第1差分ブロックのサンプル値を変更し、第2差分ブロック(second differential block)を獲得し、前記現在ブロックと前記第2差分ブロックとを結合し、第2修正ブロック(second modified block)を獲得しうる。
【0017】
一実施形態において、前記ニューラルネットワークは、前記現在ブロック及び前記量子化エラーマップを、事前に設定された加重値によってコンボリューション処理し、前記第1差分ブロックを出力する少なくとも1つのコンボリューションレイヤと、前記第1差分ブロックと前記現在ブロックとを合わせ、前記第1修正ブロックを出力する合算レイヤと、を含むものでもある。
【0018】
一実施形態において、前記量子化エラーマップのサンプル値は、前記量子化パラメータから算出される量子化ステップサイズまたは量子化エラー値に対応しうる。
【0019】
一実施形態において、前記現在ブロックの下位ブロックのための量子化パラメータが、前記符号化データに含まれている場合、前記量子化エラーマップのサンプル値は、前記下位ブロックのそれぞれについて算出されうる。
【0020】
一実施形態において、前記プロセッサは、複数の候補パラメータのうち、前記符号化データから獲得された第1情報が示すパラメータを選択し、前記選択されたパラメータにより、前記第1差分ブロックのサンプル値を変更し、前記第2差分ブロックを獲得しうる。
【0021】
一実施形態において、前記プロセッサは、複数のパラメータセットのうち、前記符号化データから獲得された第2情報が示すパラメータセットを選択し、前記選択されたパラメータセットに含まれた前記複数の候補パラメータのうち、前記第1情報が示すパラメータを選択しうる。
【0022】
一実施形態において、前記第2情報は、前記現在ブロックを含む上位ブロックのために獲得され、前記第1情報は、前記現在ブロックのために獲得されうる。
【0023】
一実施形態において、前記プロセッサは、前記パラメータ決定のために、前記現在ブロック、または前記現在ブロックの上位ブロックの特徴値を獲得しうる。
【0024】
一実施形態において、前記特徴値は、i)前記現在ブロックまたは前記上位ブロックの復元のために獲得される残差サンプル値を二乗した値の和、ii)前記残差サンプル値を二乗した値の平均、iii)前記残差サンプル値のうち最大値、iv)前記残差サンプル値の絶対値のうち最大値、v)前記残差サンプルに対応する変換係数における、0ではない変換係数の個数、vi)前記現在ブロックに対応するスライスのタイプを示す値、vii)前記現在ブロック内または前記上位ブロック内において、イントラ予測が適用されるブロックの広さと、インター予測が適用されるブロックの広さとの比率、viii)前記現在ブロックまたは前記上位ブロックの鮮明度(sharpness)、ix)前記現在ブロックまたは前記上位ブロックについて設定される1以上の量子化パラメータから算出される1以上の量子化ステップサイズの平均、またはx)前記1以上の量子化パラメータから算出される1以上の量子化エラー値の平均のうち少なくとも一つから獲得されうる。
【0025】
一実施形態において、前記パラメータは、スケールファクタを含み、前記プロセッサは、前記選択されたスケールファクタにより、前記第1差分ブロックのサンプル値をスケーリングし、前記第2差分ブロックを獲得しうる。
【0026】
一実施形態において、前記パラメータは、クリッピングファクタ(clipping factor)を含み、前記プロセッサは、前記第1差分ブロックのサンプル値が、前記選択されたクリッピングファクタに対応する上限値と下限値との間に含まれるように、前記第1差分ブロックのサンプル値をクリッピングし、前記第2差分ブロックを獲得しうる。
【0027】
一実施形態において、前記プロセッサは、前記現在ブロック、または前記現在ブロックの上位ブロックの特徴値を獲得し、複数の加重値セットのうち、前記特徴値に対応する加重値セットを選択するものの、前記現在ブロックと前記量子化エラーマップは、前記選択された加重値セットによって動作するニューラルネットワークによって処理されうる。
【0028】
一実施形態において、前記プロセッサは、前記現在ブロック、または前記現在ブロックの上位ブロックの特徴値を獲得し、前記獲得された特徴値に基づき、前記現在ブロックに対し、前記AI基盤フィルタリングを適用するか否かということを決定しうる。
【0029】
一実施形態において、前記プロセッサは、前記ニューラルネットワークに含まれたコンボリューションレイヤの層数、及びコンボリューションレイヤで利用されるフィルタカーネルの大きさによって拡張距離(extension distance)を算出し、現在映像内において、前記現在ブロックの境界外部の周辺サンプルのうち、前記拡張距離に対応する周辺サンプルと、前記現在ブロックのサンプルによってなる拡張ブロックとを前記ニューラルネットワークに適用しうる。
【0030】
一実施形態において、前記現在ブロックの境界が、前記現在映像の境界に該当すれば、前記拡張距離に対応する周辺サンプルは、利用可能な最も近いサンプルから決定されうる。
【0031】
一実施形態において、前記ニューラルネットワークは、訓練用原本ブロックと、前記ニューラルネットワークを介して獲得される訓練用第1修正ブロックとの差に対応する損失情報によって訓練され、前記訓練用第1修正ブロックは、前記訓練用原本ブロックの符号化及び復号を介して獲得される訓練用現在ブロック、及び前記訓練用現在ブロックに対応する訓練用量子化エラーマップを前記ニューラルネットワークに適用することによって獲得されうる。
【0032】
一実施形態による映像処理方法は、現在ブロックの符号化データから現在ブロックを復元する段階と、前記符号化データに含まれた量子化パラメータから算出されるサンプル値を含む量子化エラーマップを獲得する段階と、前記現在ブロック及び前記量子化エラーマップをニューラルネットワークに適用し、第1修正ブロックを獲得する段階と、前記現在ブロックと前記第1修正ブロックとの第1差分ブロックを獲得する段階と、前記現在ブロックの特徴に依存するパラメータにより、前記第1差分ブロックのサンプル値を変更し、第2差分ブロックを獲得する段階と、前記現在ブロックと前記第2差分ブロックとを結合し、第2修正ブロックを獲得する段階と、を含むものでもある。
【0033】
一実施形態による映像処理装置は、1以上のインストラクションを保存するメモリと、前記1以上のインストラクションによって動作するプロセッサと、を含み、前記プロセッサは、現在ブロックの符号化データから現在ブロックを復元し、前記符号化データに含まれた量子化パラメータから算出されるサンプル値を含む量子化エラーマップを獲得し、前記現在ブロック及び前記量子化エラーマップをニューラルネットワークに適用し、第1差分ブロックを獲得し、前記現在ブロックの特徴に依存するパラメータにより、前記第1差分ブロックのサンプル値を変更し、第2差分ブロックを獲得し、前記現在ブロックと前記第2差分ブロックとを結合し、修正ブロックを獲得しうる。
【0034】
本開示は、多様な変更を加えることができ、さまざまな実施形態を有することができるが、特定実施形態を図面に例示し、それらについて、詳細な説明を介して詳細に説明する。しかしながら、それらは、本開示の実施形態について限定するものではなく、本開示は、さまざまな実施形態の思想及び技術範囲に含まれる全ての変更、均等物ないし代替物を含むことであると理解されなければならない。
【0035】
本実施形態についての説明にあたり、関連する公知技術に係わる具体的な説明が、本開示の要旨を必要以上に不明確にしうると判断される場合、その詳細な説明を省略する。また、明細書の説明過程で利用される数(例えば、第1、第2など)は、1つの構成要素を、他の構成要素と区分するための識別記号に過ぎない。
【0036】
本開示において、「a、bまたはcのうち少なくとも一つ」という表現は、「a」、「b」、「c」、「a及びb」、「a及びc」、「b及びc」、「a、b及びcのいずれも」、またはその変形を称しうる。
【0037】
また、本開示において、一構成要素が他構成要素と、「連結される」または「接続される」と言及されたときには、前記一構成要素が、前記他構成要素と、直接連結されるか、あるいは直接接続されもするが、特に反対となる記載が存在しない以上、中間に、さらに他の構成要素を媒介して連結されるか、あるいは接続されもすると理解されなければならないのである。
【0038】
また、本開示において、「~部(ユニット)」、「~モジュール」などと表現される構成要素は、2個以上の構成要素が、1つの構成要素に合わされるか、あるいは1つの構成要素が、さらに細分化された機能別に、2個以上に分化されてもよい。また、以下で説明される構成要素それぞれは、自体が担当する主機能以外にも、他の構成要素が担当する機能のうち、一部または全部の機能をさらに遂行することもでき、該構成要素それぞれが担当する主機能のうち一部機能が、他の構成要素によって専門担当されて遂行されてもよいということは、言うまでもない。
【0039】
また、本開示において、「映像(image)またはピクチャ(picture)」は、静止映像(または、フレーム)、複数の連続された静止映像によって構成された動画、またはビデオを意味しうる。
【0040】
また、本開示において、「ニューラルネットワーク(neural network)」は、脳神経を模写した人工ニューラルネットワークモデルの代表的な例示であり、特定アルゴリズムを使用した人工ニューラルネットワークモデルに限定されるものではない。該ニューラルネットワークは、深層ニューラルネットワーク(deep neural network)としても参照される。
【0041】
また、本開示において、「加重値〔重み〕(weight)」は、ニューラルネットワークをなす各レイヤの演算過程で利用される値であり、例えば、入力値を所定演算式に適用するときに利用されうる。該加重値は、訓練結果に設定される値であり、必要により、別途の訓練データ(training data)を介して更新されうる。
【0042】
また、本開示において、「現在ブロック」は、現在の処理対象であるブロックを意味する。該現在ブロックは、現在映像から分割されたスライス、タイル、最大符号化単位、符号化単位、予測単位または変換単位でもある。
【0043】
また、本開示において、「サンプル」は、映像、ブロック、フィルタカーネルまたは特徴マップのようなデータ内のサンプリング位置に割り当てられたデータであり、処理対象になるデータを意味する。例えば、該サンプルは、二次元の映像内のピクセルを含むものでもある。
【0044】
一実施形態による映像処理装置、及びそれによる映像処理方法についての 説明に先立ち、図17及び図18を参照し、映像の符号化過程及び復号過程について説明する。
【0045】
図17は、映像の符号化過程及び復号過程を図示する図面である。
【0046】
符号化装置1710は、映像に対する符号化を介して生成されたビットストリームを、復号装置1750に伝送し、復号装置1750は、ビットストリームを受信及び復号して映像を復元する
具体的には、符号化装置1710において、予測符号化部1715は、インター予測及びイントラ予測を介して予測ブロックを出力し、変換・量子化部1720は、予測ブロックと現在ブロックとの残差ブロックの残差サンプルを変換及び量子化し、量子化された変換係数を出力する。エントロピー符号化部1725は、量子化された変換係数を符号化し、ビットストリームとして出力する。
【0047】
量子化された変換係数は、逆量子化・逆変換部1730を経て、空間領域の残差サンプルを含む残差ブロックに復元される。予測ブロックと残差ブロックとが合わせられた復元ブロックは、デブロッキングフィルタリング部1735及びループフィルタリング部1740を経て、フィルタリングされたブロックとして出力される。フィルタリングされたブロックを含む復元映像は、予測符号化部1715により、次の入力映像の参照映像として使用されうる。
【0048】
復号装置1750に受信されたビットストリームは、エントロピー復号部1755及び逆量子化・逆変換部1760を経て、空間領域の残差サンプルを含む残差ブロックに復元される。予測復号部1775から出力された予測ブロックと残差ブロックとが組合わされ、復元ブロックが生成され、該復元ブロックは、デブロッキングフィルタリング部1765及びループフィルタリング部1770を経て、フィルタリングされたブロックとして出力される。フィルタリングされたブロックを含む復元映像は、予測復号部1775により、次の映像に係わる参照映像に利用されうる。
【0049】
符号化装置1710のループフィルタリング部1740は、ユーザ入力またはシステム設定によって入力されたフィルタ情報を利用し、ループフィルタリングを行う。ループフィルタリング部1740によって使用されたフィルタ情報は、エントロピー符号化部1725を介し、復号装置1750に伝送される。復号装置1750のループフィルタリング部1770は、エントロピー復号部1755から入力されたフィルタ情報に基づき、ループフィルタリングを行うことができる。
【0050】
映像の符号化過程及び復号過程においては、該映像が階層的に分割され、該映像から分割されたブロックに対し、符号化及び復号が行われる。該映像から分割されたブロックについては、図18を参照して説明する。
【0051】
図18は、映像1800から、ツリー構造によって分割されたブロックを図示する図面である。
【0052】
1つの映像1800は、1以上のスライス(slice)、あるいは1以上のタイル(tile)に分割されうる。1つのスライスは、複数のタイルを含むものでもある。
【0053】
1つのスライスあるいは1つのタイルは、1以上の最大符号化単位(maximum CU:maximum coding unit)のシーケンスでもある。
【0054】
1つの最大符号化単位は、1以上の符号化単位に分割されうる。該符号化単位は、予測モードを決定するための基準ブロックでもある。言い換えれば、それぞれの符号化単位につき、イントラ予測モードが適用されるか、あるいはインター予測モードが適用されるかということが決定されうる。本開示において、該最大符号化単位は、最大符号化ブロックとしても参照され、該符号化単位は、符号化ブロックとしても参照される。
【0055】
符号化単位の大きさは、最大符号化単位と同一であるか、あるいは最大符号化単位よりも小さい。該最大符号化単位は、最大サイズを有する符号化単位であるので、該符号化単位としても参照される。
【0056】
符号化単位から、イントラ予測またはインター予測のための1以上の予測単位が決定されうる。該予測単位の大きさは、符号化単位と同一であるか、あるいは符号化単位よりも小さい。
【0057】
また、符号化単位から、変換及び量子化のための1以上の変換単位が決定されうる。該変換単位の大きさは、符号化単位と同一であるか、あるいは符号化単位よりも小さい。該変換単位は、変換及び量子化のための基準ブロックであり、該符号化単位の残差サンプルが、符号化単位内の変換単位別に変換及び量子化されうる。
【0058】
本開示において、現在ブロックは、映像1800から分割されたスライス、タイル、最大符号化単位、符号化単位、予測単位または変換単位でもある。また、該現在ブロックの下位ブロックは、該現在ブロックから分割されたブロックであり、例えば、該現在ブロックが最大符号化単位であるならば、該下位ブロックは、符号化単位、予測単位または変換単位でもある。また、該現在ブロックの上位ブロックは、該現在ブロックを一部として含むブロックであり、例えば、該現在ブロックが最大符号化単位であるならば、該上位ブロックは、ピクチャシーケンス、ピクチャ、スライスまたはタイルでもある。
【0059】
以下においては、図1ないし図16を参照し、一実施形態による、映像処理装置及び映像処理方法について説明する。
【0060】
図1は、一実施形態による、映像処理装置100の構成を図示するブロック図である。
【0061】
図1を参照すれば、映像処理装置100は、復号部110及びAIフィルタ部130を含むものでもある。
【0062】
AIフィルタ部130は、量子化エラー算出部132、AI基盤映像処理部134、映像分析部136及び映像修正部138を含むものでもある。
【0063】
復号部110及びAIフィルタ部130は、1以上のプロセッサでもって具現されうる。復号部110及びAIフィルタ部130は、メモリに保存されたインストラクションによって動作しうる。
【0064】
図1は、復号部110とAIフィルタ部130とを個別に図示されているが、復号部110及びAIフィルタ部130は、1つのプロセッサを介して具現されうる。その場合、復号部110及びAIフィルタ部130は、専用プロセッサでもって具現され、AP(application processor)、CPU(central processing unit)またはGPUのような汎用プロセッサと、ソフトウェアとの組み合わせを介して具現されもする。また、専用プロセッサの場合、本開示の実施形態を具現するためのメモリを含むか、あるいは外部メモリを利用するためのメモリ処理部を含むものでもある。
【0065】
復号部110及びAIフィルタ部130は、複数のプロセッサによって構成されもする。その場合、専用プロセッサの組み合わせでもって具現され、AP、CPUまたはGPUのような多数の汎用プロセッサと、ソフトウェアとの組み合わせを介して具現されもする。
【0066】
復号部110は、符号化データを復号し、現在ブロックを復元することができる。符号化データは、原本映像内の原本ブロックに係わる符号化結果として生成されうる。
【0067】
一実施形態において、復号部110は、図17に図示された逆量子化・逆変換部1730及び予測符号化部1715を含むものでもある。他の実施形態において、復号部110は、図17に図示された逆量子化・逆変換部1760及び予測復号部1775を含むものでもある。
【0068】
符号化データは、原本ブロックに係わる符号化を介して生成されたシンタックスエレメント(syntax element)を含むものでもある。
【0069】
例えば、符号化データは、図17に図示されたエントロピー符号化部1725に入力されるデータに該当しうる。また、例えば、該符号化データは、エントロピー復号部1755から出力されるデータに該当しうる。
【0070】
一実施形態において、映像処理装置100は、図17に図示された符号化装置1710または復号装置1750でもある。
【0071】
映像処理装置100が符号化装置1710である場合、映像処理装置100は、符号化データをエントロピー符号化してビットストリームを生成し、ビットストリームを復号装置1750に伝送しうる。映像処理装置100が復号装置1750である場合、映像処理装置100は、符号化装置1710から受信されたビットストリームをエントロピー復号し、符号化データを獲得しうる。
【0072】
一実施形態において、符号化データは、ビットストリームに該当しもする。
【0073】
復号部110によって復元された現在ブロックは、AIフィルタ部130に入力されうる。
【0074】
一実施形態において、復号部110によって復元された現在ブロックは、AI基盤映像処理部134に伝達され、符号化データに含まれた量子化パラメータは、復号部110から量子化エラー算出部132に伝達されうる。
【0075】
一実施形態において、復号部110によって復元された現在ブロックは、AIフィルタ部130に入力される前、事前に決定された1以上のフィルタリングアルゴリズムによって処理された後、AIフィルタ部130に入力されうる。例えば、復号部110によって復元された現在ブロックがデブロッキングフィルタによって処理された後、AIフィルタ部130に入力されうる。
【0076】
AIフィルタ部130は、現在ブロックに対し、AI基盤フィルタリングを適用し、フィルタリングされたブロックを出力する。図1に図示されているように、フィルタリングされたブロックは、第2修正ブロックでもある。
【0077】
一実施形態において、AIフィルタ部130によって出力される第2修正ブロックは、事前に決定された1以上のフィルタリングアルゴリズムによって処理されうる。例えば、該第2修正ブロックがSAO(sample adaptive offset)フィルタによって処理された後、出力されうる。
【0078】
量子化エラー算出部132は、復号部110から受信された量子化パラメータに基づき、量子化エラーマップを生成しうる。
【0079】
量子化エラーマップは、量子化パラメータから算出されるサンプル値を含むものでもある。該量子化エラーマップの大きさは、現在ブロックの大きさと同一でもある。
【0080】
一実施形態において、量子化エラーマップは、量子化パラメータから算出される量子化エラー値をサンプル値として含むものでもある。
【0081】
量子化エラー値は、原本ブロックに係わる符号化過程及び復号過程において、残差サンプルに対して適用される量子化及び逆量子化によって引き起こされうるエラー量を示しうる。
【0082】
量子化エラー値が大きいというのは、量子化前の変換係数と、逆量子化後の変換係数との差が大きくなりうるということを意味しうる。量子化前の変換係数と、逆量子化後の変換係数との差が大きいほど、原本ブロックと、符号化データに対する復号を介して獲得される現在ブロックとの同一性が低減されうる。
【0083】
量子化及び逆量子化によって引き起こされるエラーは、アーティファクトに該当するので、量子化エラー値を考慮し、AI基盤フィルタリングが行われなければならない必要性がある。
【0084】
一実施形態において、量子化エラー値は、下記式1から算出されうる。
(式1)
量子化エラー値=量子化ステップサイズ^2/12
式1を参照すれば、量子化エラー値は、量子化ステップサイズを二乗した値に比例しうる。
【0085】
量子化ステップサイズは、変換係数の量子化に利用される値であり、該変換係数を量子化ステップサイズで除することにより、変換係数が量子化されうる。反対に、量子化された変換係数に量子化ステップサイズを乗することにより、量子化された変換係数が逆量子化されうる。
【0086】
量子化ステップサイズは、以下式2に近似化されうる。
(式2)
量子化ステップサイズ=2^(量子化パラメータ/n)/量子化スケール[量子化パラメータ%n]
式2において、量子化スケール[量子化パラメータ%n]は、事前に決定されたn個のスケール値のうち、量子化パラメータが示すスケール値を示す。HEVCコーデックにおいては、6個のスケール値(26214、23302、20560、18396、16384及び14564)を定義しているので、HEVCコーデックによれば、nは、6である。
【0087】
式1及び式2を参照すれば、量子化パラメータが大きくなるほど、量子化ステップサイズが大きくなり、量子化エラー値が大きくなりうる。
【0088】
具現例により、一実施形態において、量子化エラー算出部132は、量子化パラメータから算出される量子化ステップサイズをサンプル値として含む量子化エラーマップを生成することもできる。
【0089】
一実施形態において、1つの量子化パラメータが、現在ブロック、または現在ブロックの上位ブロックについて設定される場合、量子化エラーマップのサンプルは、1つの量子化パラメータから算出される同一サンプル値を有しうる。
【0090】
他の実施形態において、量子化パラメータが、現在ブロックの下位ブロックそれぞれについて設定される場合、量子化エラー算出部132は、現在ブロックの下位ブロックに対応する量子化パラメータにより、下位ブロック別に、サンプル値を算出しうる。
【0091】
量子化パラメータが、下位ブロックそれぞれについて設定される場合につき、図2を参照して説明する。
【0092】
図2は、一実施形態による、現在ブロック10の下位ブロック、第1下位ブロック11、第2下位ブロック12、第3下位ブロック13及び第4下位ブロック14に係わる量子化パラメータから生成された量子化エラーマップ20を図示する図面である。
【0093】
現在ブロック10は、第1下位ブロック11、第2下位ブロック12、第3下位ブロック13及び第4下位ブロック14に分割されうる。第1下位ブロック11、第2下位ブロック12、第3下位ブロック13及び第4下位ブロック14それぞれは、変換単位に対応しうる。
【0094】
図2を参照すれば、現在ブロック10の第1下位ブロック11、第2下位ブロック12、第3下位ブロック13及び第4下位ブロック14につき、それぞれa、b、c、aの量子化パラメータが設定される場合、第1下位ブロック11、第2下位ブロック12、第3下位ブロック13及び第4下位ブロック14に対応する量子化エラーマップ20の第1ブロック21、第2ブロック22、第3ブロック23及び第4ブロック24のサンプルは、量子化パラメータa,b,c,aから算出されるサンプル値a’,b’,c’,a’を有しうる。
【0095】
一実施形態において、サンプル値a’,b’,c’,a’は、前述の式1及び式2に基づいて算出される量子化エラー値に対応しうる。他の実施形態において、サンプル値a’,b’,c’,a’は、前述の式2に基づいて算出される量子化ステップサイズに対応しうる。
【0096】
現在ブロック10の第1下位ブロック11、第2下位ブロック12、第3下位ブロック13及び第4下位ブロック14それぞれにつき、量子化パラメータが設定される場合、量子化エラー算出部132は、原本ブロックの下位ブロックと、現在ブロック10の第1下位ブロック11、第2下位ブロック12、第3下位ブロック13及び第4下位ブロック14との差を示す量子化エラーマップ20を生成すると理解されうる。
【0097】
図2は、現在ブロック10が、4個の下位ブロック11,12,13,14に分割されるように図示されているが、それは、1つの例示であるのみ、現在ブロック10は、多様な個数(例えば、1個、2個、4個、8個など)、及び多様な大きさの下位ブロックに分割されうる。
【0098】
再び図1を参照すれば、現在ブロックと量子化エラーマップとがAI基盤映像処理部134に伝達される。
【0099】
AI基盤映像処理部134は、現在ブロックと量子化エラーマップとをニューラルネットワークに適用し、第1修正ブロックを獲得し、第1修正ブロックを映像修正部138に伝達しうる。
【0100】
具現例により、AI基盤映像処理部134は、現在ブロック及び量子化エラーマップと共に、現在ブロックを復元するのに利用された予測ブロック及び/または残差ブロックをニューラルネットワークに適用し、第1修正ブロックを獲得しうる。
【0101】
AI基盤映像処理部134が利用するニューラルネットワークは、メモリに保存されうる。具現例により、ニューラルネットワークは、AIプロセッサでもって具現されもする。
【0102】
現在ブロックと量子化エラーマップとを処理するためのニューラルネットワークについては、図3を参照して説明する。
【0103】
図3は、一実施形態によるニューラルネットワーク300を図示する図面である。
【0104】
図3に図示されているように、ニューラルネットワーク300は、第1コンボリューションレイヤ310、第1活性化レイヤ320、第2コンボリューションレイヤ330、第2活性化レイヤ340、第3コンボリューションレイヤ350及び合算レイヤ(summation layer)360を含むものでもある。合算レイヤ360は、加算器(adder)としても参照される。
【0105】
現在ブロック10と量子化エラーマップ20は、第1コンボリューションレイヤ310に入力される。現在ブロック10と量子化エラーマップ20は、連接(concatenation)された後、第1コンボリューションレイヤ310に入力されうる。図3に図示された量子化エラーマップ20は、図2に図示された量子化エラーマップ20のように、互いに異なるサンプル値を有する4個のブロックに区分されうる。
【0106】
第1コンボリューションレイヤ310に表示された3X3X1は、3X3サイズの1個のフィルタカーネルを利用し、現在ブロック10と量子化エラーマップ20とにつき、コンボリューション処理を行うところを例示する。コンボリューション処理結果、1個のフィルタカーネルにより、1個の特徴マップが生成される。
【0107】
第1コンボリューションレイヤ310によって生成された特徴マップは、現在ブロック10と量子化エラーマップ20との固有特性を示しうる。例えば、該特徴マップは、現在ブロック10と量子化エラーマップ20との垂直方向特性、水平方向特性またはエッジ特性などを示しうる。
【0108】
第1コンボリューションレイヤ310から出力された特徴マップは、第1活性化レイヤ320に入力される。
【0109】
第1活性化レイヤ320は、特徴マップにつき、非線形(non-linear)特性を付与しうる。第1活性化レイヤ320は、シグモイド関数(sigmoid function)、Tanh関数、ReLU(rectified linear unit)関数などを含むものでもあるが、それらに限定されるのではない。
【0110】
第1活性化レイヤ320が特徴マップに対して非線形特性を付与するということは、該特徴マップの一部サンプル値を変更して出力することを意味しうる。このとき、該変更は、非線形特性を適用して行われうる。
【0111】
第1活性化レイヤ320は、特徴マップのサンプル値を、第2コンボリューションレイヤ330に伝達するか否かということを決定しうる。例えば、該特徴マップのサンプル値のうちあるサンプル値は、第1活性化レイヤ320によって活性化され、第2コンボリューションレイヤ330に伝達され、あるサンプル値は、第1活性化レイヤ320によって非活性化され、第2コンボリューションレイヤ330に伝達されないのである。該特徴マップが示す現在ブロック10と量子化エラーマップ20との固有特性が、第1活性化レイヤ320によって強調されうる。
【0112】
第1活性化レイヤ320から出力された特徴マップは、第2コンボリューションレイヤ330に入力される。
【0113】
第2コンボリューションレイヤ330に表示された3X3X1は、3X3サイズの1個のフィルタカーネルを利用して入力された特徴マップにつき、コンボリューション処理することを例示する。第2コンボリューションレイヤ330の出力は、第2活性化レイヤ340に入力される。第2活性化レイヤ340は、入力された特徴マップに対し、非線形特性を付与しうる。
【0114】
第2活性化レイヤ340から出力された特徴マップは、第3コンボリューションレイヤ350に入力される。第3コンボリューションレイヤ350に表示された3X3X1は、3X3サイズの1個のフィルタカーネルを利用して1個の特徴マップを生成するために、コンボリューション処理を行うことを例示する。
【0115】
第3コンボリューションレイヤ350から出力された特徴マップは、合算レイヤ360において現在ブロック10と合算され、合算結果、第1修正ブロック30が出力される。
【0116】
第3コンボリューションレイヤ350から出力される特徴マップが、現在ブロック10と合算されることにより、第1修正ブロック30が獲得されるので、第3コンボリューションレイヤ350から出力される特徴マップは、現在ブロック10と第1修正ブロック30との第1差分ブロックとしても参照される。
【0117】
図3に図示されたニューラルネットワーク300は、合算レイヤ360を含むので、AI基盤映像処理部134は、ニューラルネットワーク300から、第1修正ブロック30を獲得しうる。ニューラルネットワーク300が合算レイヤ360を含まない場合、AI基盤映像処理部134は、ニューラルネットワーク300から、第1差分ブロックを獲得しうる。合算レイヤ360を含まないニューラルネットワークを利用する映像処理装置1600については、図16を参照して後述する。
【0118】
図3は、ニューラルネットワーク300が3つのコンボリューションレイヤ、第1コンボリューションレイヤ310、第2コンボリューションレイヤ330、第3コンボリューションレイヤ350と、第1活性化レイヤ320及び第2活性化レイヤ340を含んでいるように図示されているが、それは、1つの例示であるのみ、具現例により、ニューラルネットワーク300に含まれたコンボリューションレイヤ及び活性化レイヤの層数は、多様に変更されうる。
【0119】
また、具現例により、ニューラルネットワーク300は、RNN(recurrent neural network)を介して具現されもする。その場合は、本開示の例示によるニューラルネットワーク300のCNN(convolutional neural network)構造をRNN構造に変更することを意味する。
【0120】
また、具現例により、現在ブロック10と量子化エラーマップ20が第1コンボリューションレイヤ310に入力される前、現在ブロック10が、1以上のコンボリューションレイヤによって処理され、それと別個に、量子化エラーマップ20が1以上のコンボリューションレイヤによって処理されうる。互いに異なるコンボリューションレイヤによって個別的に処理された現在ブロック10と量子化エラーマップ20とが、第1コンボリューションレイヤ310に入力されうる。
【0121】
一実施形態において、映像処理装置100は、前述のコンボリューション演算、及び活性化レイヤの演算のための少なくとも1つのALU(arithmetic logic unit)を含むものでもある。
【0122】
ALUは、プロセッサでもって具現されうる。コンボリューション演算のために、該ALUは、入力されたデータ(例えば、現在ブロック10及び量子化エラーマップ20)のサンプル値とフィルタカーネルのサンプル値との積演算を行う乗算器、及び乗算の結果値を加える加算器を含むものでもある。
【0123】
活性化レイヤの演算のために、ALUは、事前に決定されたシグモイド関数、Tanh関数またはReLU関数などにおいて利用される加重値を、入力されたサンプル値に乗じる乗算器、及び乗じた結果と、所定値とを比較し、入力されたサンプル値を、次のレイヤに伝達するか否かということを判断する比較器を含むものでもある。
【0124】
再び図1を参照すれば、映像分析部136は、復号部110によって復元された現在ブロック、または現在ブロックの上位ブロックの特徴を分析することができる。該上位ブロックの特徴分析が必要である場合、復号部110によって復元された上位ブロックが、映像分析部136に提供されうる。
【0125】
一実施形態において、映像分析部136は、現在ブロックまたは上位ブロックに係わる分析結果として、特徴値を獲得しうる。
【0126】
一実施形態において、特徴値は、以下で例示される値のうち少なくとも一つから獲得されうる。
【0127】
i)現在ブロックまたは上位ブロックの復元のために獲得される残差サンプル値を二乗した値の和;
ii)現在ブロックまたは上位ブロックの復元のために獲得される残差サンプル値を二乗した値の平均;
iii)現在ブロックまたは上位ブロックの復元のために獲得される残差サンプル値のうち最大値;
iv)現在ブロックまたは上位ブロックの復元のために獲得される残差サンプル値の絶対値のうち最大値;
v)現在ブロックまたは上位ブロックの復元のために獲得される残差サンプルに対応する変換係数(例えば、逆変換された変換係数)のうち、0ではない変換係数の個数;
vi)現在ブロックに対応するスライスのタイプを示す値であり、現在ブロックを含むスライスがI(Intra)スライスであるか、P(Predictive)スライスであるか、あるいはB(Bi-Predictive)スライスであるかということを示す値;
vii)現在ブロックまたは上位ブロック内において、イントラ予測が適用されるブロックの広さと、インター予測が適用されるブロックの広さとの比率;
viii)現在ブロックまたは上位ブロックの鮮明度(sharpness)であり、サンプル値の標準偏差、エッジ量またはグラジエントのうち少なくとも一つから算出される値;
ix)現在ブロックまたは上位ブロックについて設定される1以上の量子化パラメータから算出される1以上の量子化ステップサイズの平均;
x)現在ブロックまたは上位ブロックについて設定される1以上の量子化パラメータから算出される1以上の量子化エラー値の平均。
【0128】
以上で例示されたi)、ii)、iii)、iv)及びv)に該当する値は、量子化及び逆量子化の対象になる現在ブロック内または上位ブロック内の残差サンプルのエネルギーがどれほどの大きさであるかということを示す。残差サンプルのエネルギーが大きければ、量子化及び逆量子化を介し、エラーが発生する可能性が高くなりうる。
【0129】
また、現在ブロックまたは上位ブロックの鮮明度が高い場合、原本ブロックに係わる符号化/復号を介して獲得される現在ブロックに、エラーが存在する可能性が高くなりうるので、viii)に該当する値から、現在ブロック内にどれほどのエラーが存在するかということが予測されうる。
【0130】
また、ix)及びx)に該当する値は、量子化を介して生じるエラー量と直接関連があるので、ix)及びx)に該当する値から、現在ブロック内にどれほどのエラーが存在するかということが予測されうる。
【0131】
具現例により、映像分析部136は、i)ないしx)に該当する値のうち2以上を組み合わせ、特徴値を獲得することもできる。2個以上の値を組み合わせるのに、乗算演算及び/または加算演算が利用されうる。
【0132】
現在ブロックまたは上位ブロックの特徴値が獲得されれば、映像分析部136は、特徴値に基づき、パラメータを決定し、決定されたパラメータを映像修正部138に提供しうる。
【0133】
パラメータは、スケールファクタ及び/またはクリッピングファクタを含むものでもある。該スケールファクタ及び該クリッピングファクタについては、後述する。
【0134】
映像修正部138は、現在ブロックと第1修正ブロックとの第1差分ブロックを獲得しうる。先に、図3と係わって説明した合算レイヤ360を含むニューラルネットワーク300は、第1修正ブロック30を最終出力するので、映像修正部138は、第1修正ブロックから現在ブロックを差し引き、第1差分ブロックを獲得しうる。
【0135】
映像修正部138は、第1差分ブロックのサンプル値をパラメータによって変更し、第2差分ブロックを獲得しうる。そして、映像修正部138は、該第2差分ブロックと現在ブロックとを合わせ、第2修正ブロックを獲得しうる。
【0136】
映像修正部138の構成については、図4を参照して説明する。
【0137】
図4は、一実施形態による、映像修正部138の構成を図示する図面である。
【0138】
図4を参照すれば、映像修正部138は、減算部410、サンプル値変更部420及び加算部430を含むものでもある。
【0139】
減算部410は、現在ブロックと第1修正ブロックとを入力され、現在ブロックと第1修正ブロックとの差に該当する第1差分ブロックを出力することができる。一実施形態において、減算部410は、第1修正ブロックのサンプル値から現在ブロックのサンプル値を差し引き、第1差分ブロックのサンプル値を獲得しうる。
【0140】
サンプル値変更部420は、映像分析部136から提供されるパラメータにより、第1差分ブロックのサンプル値を変更し、第2差分ブロックを出力することができる。
【0141】
一実施形態において、パラメータがスケールファクタに該当する場合、サンプル値変更部420は、第1差分ブロックのサンプル値にスケールファクタを乗じ、第2差分ブロックのサンプル値を獲得しうる。
【0142】
他の実施形態において、パラメータがクリッピングファクタに該当する場合、サンプル値変更部420は、第1差分ブロックのサンプル値を、クリッピングファクタから確認される上限値と下限値との間の値に制限し、第2差分ブロックのサンプル値を獲得することもできる。
【0143】
さらに他の実施形態において、パラメータがスケールファクタとクリッピングファクタとを含む場合、サンプル値変更部420は、第1差分ブロックのサンプル値にスケールファクタを乗じ、スケールファクタが乗じられた第1差分ブロックのサンプル値を、クリッピングファクタから確認される上限値と下限値との間の値に制限し、第2差分ブロックのサンプル値を獲得することもできる。
【0144】
さらに他の実施形態において、パラメータがスケールファクタとクリッピングファクタを含む場合、サンプル値変更部420は、第1差分ブロックのサンプル値をクリッピングファクタから確認される上限値と下限値との間の値に制限し、クリッピングファクタによって制限された第1差分ブロックのサンプル値にスケールファクタを乗じ、第2差分ブロックのサンプル値を獲得することもできる。
【0145】
加算部430は、現在ブロックと第2差分ブロックとを合算し、第2修正ブロックを出力することができる。
【0146】
一実施形態において、映像修正部138が、第1差分ブロックのサンプル値をパラメータによって変更する理由は、第1差分ブロックがコンボリューションレイヤの処理結果に該当するためである。コンボリューションレイヤは、訓練を介して事前に設定された加重値によって入力データを処理するので、コンボリューションレイヤは、事前に決定された訓練目的に合うように、入力データを処理することになる。
【0147】
本開示においては、訓練を介して設定された加重値によって動作するコンボリューションレイヤの出力データ、すなわち、第1差分ブロックを、現在ブロックの特徴に依存するパラメータによって修正することにより、該現在ブロックが、該現在ブロックの特徴に適するようにフィルタリングされるようにすることができる。
【0148】
具現例により、映像修正部138は、第1修正ブロックのサンプル値をパラメータによって変更し、第2修正ブロックを獲得することもできる。
【0149】
一実施形態において、図1に図示された映像分析部136は、現在ブロックまたは上位ブロックの特徴値と、臨界値との比較結果により、1以上の候補パラメータから、第1差分ブロックに適用されるパラメータを選択しうる。
【0150】
図5は、一実施形態による、候補パラメータと、ブロックの特徴との対応関係を示す表であり、このような対応関係は、映像処理装置100に事前に保存されてもいる。
【0151】
一実施形態において、候補パラメータは、符号化データから、現在ブロックまたは上位ブロックのために獲得されもする。該候補パラメータが、上位ブロックのために獲得された場合、当該上位ブロックに含まれる下位ブロックに対し、同一候補パラメータが利用されうる。
【0152】
図5に図示されているように、映像分析部136は、現在ブロックまたは上位ブロックの特徴値が、第1臨界値より小さければ、候補パラメータ「a」を、第1差分ブロックに適用されるパラメータとして選択し、特徴値が第1臨界値以上であり、第2臨界値未満であるならば、候補パラメータ「b」を、第1差分ブロックに適用されるパラメータとして選択しうる。また、映像分析部136は、特徴値が第2臨界値以上であるならば、候補パラメータ「c」を、第1差分ブロックに適用されるパラメータとして選択しうる。
【0153】
図5は、3個の候補パラメータを例示しているが、それは、1つの実施形態であるのみ、候補パラメータの個数は、多様に決定され、それぞれの候補パラメータに対応する条件も、多様に設定されうる。
【0154】
一実施形態において、図5に図示された候補パラメータは、1以上のパラメータセットのうちから選択されたパラメータセットに含まれもする。
【0155】
図6は、一実施形態による、パラメータセットと、ブロックの特徴との対応関係を示す表であり、このような対応関係は、映像処理装置100に事前に保存されうる。
【0156】
一実施形態において、パラメータセットは、符号化データから獲得されもする。例えば、該パラメータセットは、符号化データまたはビットストリームのシーケンスパラメータセット(sequence parameter set)に含まれもする。
【0157】
図6は、各パラメータセットに含まれた候補パラメータが共に図示されているが、パラメータセット「P」は、図5に図示された候補パラメータ「a」,「b」,「c」を含み、パラメータセット「Q」は、候補パラメータ「d」,「e」を含み、パラメータセット「R」は、候補パラメータ「a」,「g」,「h」を含むものでもある。
【0158】
図6に図示されているように、映像分析部136は、現在ブロックまたは上位ブロックの特徴値が第3臨界値より小さければ、パラメータセット「P」を選択し、特徴値が第3臨界値以上であり、第4臨界値未満であるならば、パラメータセット「Q」を選択しうる。また、映像分析部136は、特徴値が第4臨界値以上であるならば、パラメータセット「R」を選択しうる。
【0159】
一例として、映像分析部136は、特徴値が第3臨界値より小さければ、パラメータセット「P」を選択し、特徴値が第3臨界値より小さい範囲内において、当該特徴値が図5に図示された第1臨界値より小さければ、候補パラメータ「a」を、第1差分ブロックのために選択し、当該特徴値が第1臨界値以上であり、第2臨界値未満であるならば、候補パラメータ「b」を選択しうる。
【0160】
一実施形態において、いずれか1つのパラメータセット(例えば、パラメータセット「P」)に含まれた候補パラメータの個数は、他の1つのパラメータセット(例えば、パラメータセット「Q」)に含まれた候補パラメータの個数と異なりもする。また、いずれか1つのパラメータセット(例えば、パラメータセット「P」)に含まれた候補パラメータのうち一部は、他の1つのパラメータセット(例えば、パラメータセット「R」)に含まれた候補パラメータのうち一部と同一でもある。
【0161】
図6は、3つのパラメータセットが図示されているが、それは、1つの例示であるのみ、該パラメータセットの個数は、多様に決定され、それぞれのパラメータセットに対応する条件も、多様に設定されうる。
【0162】
具現例により、1以上のパラメータセットのうちいずれか一つを選択するのに利用される特徴値と、1以上の候補パラメータのうちいずれか一つを選択するのに利用される特徴値は、互いに異なる方式によって算出されうる。例えば、1以上のパラメータセットのうちいずれか一つを選択するのに利用される特徴値は、前述のi)に該当する値から算出され、1以上の候補パラメータのうちいずれか一つを選択するのに利用される特徴値は、v)に該当する値から算出されうる。
【0163】
一実施形態において、パラメータセットは、現在ブロックの上位ブロックのために選択され、パラメータは、現在ブロックのために選択されうる。例えば、該現在ブロックが最大符号化単位であり、上位ブロックがスライスである場合、1以上のパラメータセットのうちいずれか1つのパラメータセットが、スライスのために選択され、選択されたパラメータセットに含まれた候補パラメータのうちいずれか一つが、当該スライス内の最大符号化単位別に選択されうる。
【0164】
他の実施形態において、パラメータセットは、第1上位ブロックのために選択され、パラメータは、第2上位ブロックのために選択されうる。例えば、現在ブロックが最大符号化単位であり、第1上位ブロックがピクチャシーケンスであり、第2上位ブロックがスライスである場合、1以上のパラメータセットのうちいずれか1つのパラメータセットが、ピクチャシーケンスのために選択され、選択されたパラメータセットに含まれた候補パラメータのうちいずれか一つが、当該ピクチャシーケンス内のスライス別に選択されうる。そして、スライス内の最大符号化単位に対し、同一パラメータが適用されうる。
【0165】
さらに他の実施形態において、パラメータセットは、符号化データに含まれた第1情報によって選択されうる。該第1情報は、1以上のパラメータセットのうちいずれか一つを示すインデックスまたはフラグでもある。一実施形態において、該第1情報は、符号化データ(または、ビットストリーム)のシーケンスパラメータセット(sequence parameter set)、ピクチャパラメータセット(picture parameter set)、スライスヘッダ(slice header)またはスライスデータ(slice data)のうち少なくとも一つから獲得されうる。
【0166】
さらに他の実施形態において、パラメータは、符号化データに含まれた第2情報によって選択されうる。該第2情報は、1以上の候補パラメータのうちいずれか一つを示すインデックスまたはフラグでもある。一実施形態において、該第2情報は、符号化データ(または、ビットストリーム)のシーケンスパラメータセット、ピクチャパラメータセット、スライスヘッダまたはスライスデータのうち少なくとも一つから獲得されうる。
【0167】
具現例により、第1情報が示すパラメータセットに含まれた1以上の候補パラメータのうちいずれか一つは、現在ブロックまたは上位ブロックの特徴値に基づいて選択されもする。他の例として、1以上のパラメータセットのうちいずれか一つが、現在ブロックまたは上位ブロックの特徴値に基づいて選択され、選択されたパラメータセットに含まれた1以上の候補パラメータのうちいずれか一つは、第2情報に基づいて選択されもする。
【0168】
一実施形態において、第1情報及び第2情報により、第1差分ブロックのためのパラメータが選択される場合、図1に図示された映像分析部136は、AIフィルタ部130から除かれもする。なぜならば、第1差分ブロックに適用されるパラメータを選択するのに、現在ブロックまたは上位ブロックの特徴値が利用されないためである。
【0169】
一実施形態において、第1情報は、上位ブロックのために、符号化データに含まれ、第2情報は、現在ブロックのために、符号化データに含まれもする。上位ブロックがスライスであり、現在ブロックが最大符号化単位である場合、該第1情報は、ビットストリームのスライスヘッダに含まれ、該第2情報は、スライスデータに含まれもする。
【0170】
他の実施形態において、第1情報は、第1上位ブロックのために、符号化データに含まれ、第2情報は、第2上位ブロックのために、符号化データに含まれもする。該第1上位ブロックが、ピクチャシーケンスまたはピクチャであり、該第2上位ブロックがスライスである場合、該第1情報は、シーケンスパラメータセットまたはピクチャパラメータセットに含まれ、該第2情報は、スライスヘッダに含まれもする。
【0171】
以下においては、スケールファクタとクリッピングファクタとにつき、さらに具体的に説明する。
【0172】
スケールファクタは、第1差分ブロックのサンプル値に適用される値であり、例えば、第1差分ブロックのサンプル値に乗じられる値を含むものでもある。
【0173】
図7は、一実施形態による、複数のスケールファクタセットを図示する図面である。
【0174】
図7に図示されているように、それぞれのスケールファクタセットは、1以上の候補スケールファクタを含むものでもある。例えば、第1セットは、1、0.75、0.5及び0.25の候補スケールファクタを含み、第2セットは、1、0.75、1.25及び0.5の候補スケールファクタを含むものでもある。
【0175】
前述のように、複数のスケールファクタセットのうちいずれか一つが特徴値に基づき、あるいは符号化データに含まれた情報に基づいて選択され、選択されたスケールファクタセットに含まれた候補スケールファクタのうちいずれか一つが特徴値に基づき、あるいは符号化データに含まれた情報に基づいて選択されうる。
【0176】
映像修正部138は、映像分析部136が選択したスケールファクタを、第1差分ブロックのサンプル値に適用し、第2差分ブロックを生成しうる。
【0177】
次に、クリッピングファクタは、第1差分ブロックのサンプル値につき、クリッピング演算を行うための値である。
【0178】
例えば、映像修正部138は、下記式3により、第1差分ブロックのサンプル値をクリッピングすることができる。
(式3)
Clip(p)=clip(X,p,Y)
式3において、pは、第1差分ブロックのサンプル値を示し、Xは、下限値を示し、Yは、上限値を示す。式3において、pが、XとYとの間の値を有するならば、pが出力され、pがXより小さければ、Xが出力され、pがYより大きければ、Yが出力される。
【0179】
映像分析部136は、第1差分ブロックのためのクリッピングファクタから、X値とY値とを決定しうる。
【0180】
一例として、映像分析部136は、クリッピングファクタをX値に決定し、X値の符号を反対に変更し、Y値を決定しうる。
【0181】
他の例として、映像分析部136は、クリッピングファクタをY値に決定し、Y値の符号を反対に変更し、X値を決定しうる。
【0182】
さらに他の例として、クリッピングファクタが、X値とY値とのセットによって構成されている場合、映像分析部136は、クリッピングファクタに含まれたX値とY値とを利用し、クリッピング演算を行うこともできる。
【0183】
さらに他の例として、映像分析部136は、前述のi)ないしx)に該当する値のうち少なくとも一つを利用し、X値とY値とを算出することもできる。一例として、映像分析部136は、現在ブロックまたは上位ブロックの復元のために獲得される残差サンプル値(例えば、残差サンプル値の絶対値のうち最大値)に、量子化パラメータ、量子化ステップサイズまたは量子化エラー値を乗じ、X値とY値とのうちいずれか一つを決定しうる。そして、映像分析部136は、X値とY値とのうちいずれか1つの符号を変更し、X値とY値とのうち他の一つを決定しうる。
【0184】
なお、本開示によれば、映像を構成するブロックそれぞれにつき、AI基盤フィルタリングが適用され、AI基盤フィルタリングが適用されたブロックが、1つの復元映像を構成するようになるが、ブロック別に、AI基盤フィルタリングが適用されることにより、ブロック間の境界に、アーティファクトが生じる可能性がある。
【0185】
例えば、図18に図示された映像1800から分割された最大符号化単位それぞれにつき、AI基盤フィルタリングが適用される場合、復元映像内の最大符号化単位間の連続性が低減されうる。
【0186】
一実施形態において、AI基盤映像処理部134は、現在ブロック内のサンプルと、現在ブロックの境界外部に位置したサンプルを含む拡張ブロックを、ニューラルネットワーク300に適用することにより、ブロック間の連続性が低減されることを防止しうる。
【0187】
拡張ブロックがいかように決定されるかということについての説明先立ち、一般的なコンボリューション処理につき、図8を参照して説明する。
【0188】
図8は、一般的なコンボリューション処理について説明するための図面である。
【0189】
図8において、ブロック800に表示されたI1ないしI25は、ブロック800のサンプルを示し、フィルタカーネル820に表示されたF1ないしF9は、フィルタカーネル820の加重値を示す。また、特徴マップ830に表示されたM1ないしM9は、特徴マップ830のサンプルを示す。また、ブロック800に隣接したサンプルP1ないしP24は、ブロック800に対するパディング(padding)を介して決定されたサンプル(以下、パディングサンプル810)である。一般的に、パディングサンプル810は、0の値を有しうる。
【0190】
コンボリューション処理過程において、P1、P2、P3、P8、I1、I2、P10、I6及びI7のサンプル値それぞれと、フィルタカーネル820のF1、F2、F3、F4、F5、F6、F7、F8及びF9それぞれとの積演算が行われ、該積演算の結果値に対し、組み合わせ(例えば、加算演算)を行った値が特徴マップ830のM1の値に割り当てられうる。
【0191】
コンボリューション演算のストライド(stride)が1であるならば、P2、P3、P4、I1、I2、I3、I6、I7及びI8のサンプル値それぞれと、フィルタカーネル820のF1、F2、F3、F4、F5、F6、F7、F8及びF9それぞれとの積演算が行われ、該積演算の結果値を組み合わせた値が、特徴マップ830のM2の値に割り当てられうる。
【0192】
フィルタカーネル820のF9が、パディングサンプルP24に逹するまで、フィルタカーネル820が、ストライドによって移動する間、ブロック800のサンプル、及びパディングサンプル810と、フィルタカーネル820の加重値とのコンボリューション演算が行われることにより、ブロック800と同一サイズを有する特徴マップ830が獲得されうる。
【0193】
一般的に、パディング処理がなされていないブロック800に対し、コンボリューション処理が行われる場合、ブロック800より小サイズの特徴マップ830が出力される。図8に図示されているように、フィルタカーネル820の大きさが3X3である場合、ブロック800と同一サイズの特徴マップ830を獲得するためには、ブロック800の左側方向、右側方向、上部方向及び下部方向に、1のサンプル距離ほど、パディングがなされなければならない。もしフィルタカーネル820の大きさが5X5である場合には、ブロック800と同一サイズの特徴マップ830を獲得するために、ブロック800の左側方向、右側方向、上部方向及び下部方向に、2のサンプル距離ほど、パディングがなされなければならない。
【0194】
本開示によれば、現在ブロックと同一サイズの第1修正ブロックを獲得するために、現在ブロックをパディングする代わりに、図9に図示された現在映像900内の現在ブロック10より大サイズの拡張ブロック990が利用されうる。ここで、現在ブロック10の境界外部に位置するサンプルも、現在映像900に含まれたサンプルである。すなわち、現在ブロック10をパディングする代わりに、現在ブロック10に隣接したサンプルを利用することにより、ブロック間にアーティファクトが生じる可能性が低減される。
【0195】
AI基盤映像処理部134は、現在ブロックと同一サイズの第1修正ブロックが、ニューラルネットワーク300から出力されうるように、拡張ブロックの適切な大きさを決定しなければならない。
【0196】
一実施形態によるAI基盤映像処理部134は、ニューラルネットワーク300に含まれたコンボリューションレイヤの層数、及びそれぞれのコンボリューションレイヤで利用されるフィルタカーネルの大きさを考慮し、拡張距離を算出しうる。そして、AI基盤映像処理部134は、現在ブロックの境界外部にある周辺サンプルのうち、拡張距離に対応するサンプル、及び現在ブロック内のサンプルを含む拡張ブロックを決定しうる。
【0197】
一実施形態において、いずれか1つのコンボリューションレイヤで利用されるフィルタカーネルの大きさがnXnである場合、nXnサイズのフィルタカーネルから要求される拡張距離は、(n-1)/2と算出されうる。ここで、nは、奇数でもある。
【0198】
いずれか1つのコンボリューションレイヤで利用されるフィルタカーネルの個数が複数個である場合、複数のフィルタカーネルのうち、最大サイズのフィルタカーネルを基準に拡張距離が算出されうる。
【0199】
図3に図示されているように、ニューラルネットワーク300が3つのコンボリューションレイヤを含み、3つのコンボリューションレイヤで利用されるフィルタカーネルの大きさがいずれも3X3であるならば、AI基盤映像処理部134は、拡張距離を3(=1+1+1)と決定しうる。3つのコンボリューションレイヤのうち、2つのコンボリューションレイヤで利用されるフィルタカーネルの大きさが5X5であり、残り1つのコンボリューションレイヤで利用されるフィルタカーネルの大きさが3X3であるならば、AI基盤映像処理部134は、拡張距離を5(=2+2+1)と決定しうる。
【0200】
図10は、一実施形態による、拡張距離が3に決定された場合の拡張ブロック1090を図示する図面である。
【0201】
拡張距離が3に決定された場合、AI基盤映像処理部134は、現在ブロック10の境界外部に位置する周辺サンプルのうち、3の拡張距離内に位置する周辺サンプルと、現在ブロック10内のサンプルとを含む拡張ブロック1090を決定しうる。
【0202】
図10に図示されているように、現在映像1000が、6個のブロック、すなわち、左側ブロック1010、現在ブロック10、右側ブロック1020、左下側ブロック1030、下側ブロック1040及び右下側ブロック1050に分割され、中央上部に位置したブロックが、現在ブロック10である場合、AI基盤映像処理部134は、現在ブロック10の左側ブロック1010内に位置しながら、現在ブロック10の左側境界から3の拡張距離内に位置する周辺サンプル、現在ブロック10の右側ブロック1020内に位置しながら、現在ブロック10の右側境界から3の拡張距離内に位置する周辺サンプル、及び現在ブロック10の下部ブロック1040内に位置しながら、現在ブロック10の下部境界から3の拡張距離内に位置する周辺サンプルを選択しうる。このとき、拡張ブロック1090を決定するために、現在ブロック10の左側下部ブロック1030内に位置する周辺サンプル、及び現在ブロック10の右側下部ブロック1050内に位置する周辺サンプルも選択されうる。
【0203】
現在ブロック10の境界が、現在映像1000の境界と一致する場合、例えば、図10に図示されているように、現在ブロック10の上部境界が、現在映像1000の上部境界と一致する場合、現在ブロック10の上部境界の外部に位置する周辺サンプルが存在しない。従って、AI基盤映像処理部134は、現在ブロック10の上部境界外部に位置する周辺サンプル1060それぞれから最も近いサンプルを利用し、現在ブロック10の上部境界の外部に位置する周辺サンプル1060を決定しうる。
【0204】
図10に図示されているように、現在ブロック10の上部境界の外部に位置する周辺サンプル1060のうち、最も左側列に位置する周辺サンプルの値は、最も近いサンプル値aと決定され、周辺サンプル1060のうち、最も右側列に位置する周辺サンプルの値は、最も近いサンプル値kと決定されうる。
【0205】
AI基盤映像処理部134は、5x5サイズの現在ブロック10より大きい11x11サイズの拡張ブロック1090をニューラルネットワーク300に適用し、現在ブロック10の大きさと同一サイズである5x5の第1修正ブロックを獲得しうる。
【0206】
ニューラルネットワーク300に入力される現在ブロック10と、量子化エラーマップ20との大きさが同一でなければならないので、拡張ブロック1090がニューラルネットワーク300に入力される場合、AI基盤映像処理部134は、拡張ブロック1090と同一サイズを有する拡張量子化エラーマップを生成しなければならないが、それについては、図11を参照して説明する。
【0207】
図11は、一実施形態による、拡張ブロックに対応する拡張量子化エラーマップ1120を図示する図面である。
【0208】
図11の左側には、図2に図示された量子化エラーマップ20が図示されており、図11の右側には、一実施形態による拡張量子化エラーマップ1120が図示されている。
【0209】
図2に図示されているように、現在ブロック10が、第1下位ブロック11、第2下位ブロック12、第3下位ブロック13及び第4下位ブロック14に分割され、第1下位ブロック11、第2下位ブロック12、第3下位ブロック13及び第4下位ブロック14の量子化パラメータが、それぞれa、b、c及びaであるとき、第1下位ブロック11ないし第4下位ブロック14に対応する量子化エラーマップ20内の第1ブロック21ないし第4ブロック24は、a’、b’、c’及びa’のサンプル値を有しうる。図11の左側に図示された量子化エラーマップ20には、サンプルが表示されていないが、第1ブロック21ないし第4ブロック24は、複数のサンプルを含み、当該サンプルが、a’、b’、c’及びa’のサンプル値を有しうる。
【0210】
現在ブロック10内のサンプルと、それに隣接する周辺サンプルとが拡張ブロックを構成する場合、現在ブロック10の境界外部に位置する周辺サンプルが属した下位ブロックの量子化パラメータにより、量子化エラーマップ20の外部の周辺サンプルの値が決定されうる。
【0211】
図11の右側に図示されているように、第1ブロック21の左側ブロック1121のサンプルは、e’の値を有し、第3ブロック23の左側ブロック1122のサンプルは、a’の値を有する。ここで、e’及びa’は、現在ブロック10の第1下位ブロック11の左側に位置する下位ブロックに割り当てられた量子化パラメータ、及び第3下位ブロック13の左側に位置する下位ブロックに割り当てられた量子化パラメータからそれぞれ算出されうる。
【0212】
また、第3ブロック23の左側下部ブロック1123のサンプルは、f’の値を有しうるし、第3ブロック23の下部ブロック1124のサンプルは、c’の値を有し、第4ブロック24の下部ブロック1125のサンプルは、a’の値を有しうる。また、第4ブロック24の右側下部ブロック1126のサンプルは、e’の値を有し、第2ブロック22と第4ブロック24の右側ブロック1127のサンプルは、d’の値を有しうる。
【0213】
図10と係わって説明されたように、現在ブロック10の境界(例えば、上部境界)が、現在映像1000の境界に該当する場合、現在ブロック10の境界外部に位置する周辺サンプルは、当該周辺サンプルが利用しうる最も近いサンプルから決定されうる。同様に、量子化エラーマップ20の境界外部に位置する周辺サンプルの値も、当該周辺サンプルが利用しうる最も近いサンプルから決定されうる。
【0214】
現在ブロック10の上部境界が、現在映像1000の境界に該当する場合、図11の右側に図示されているように、量子化エラーマップ20の上部境界の外部に位置するサンプルは、e’、a’、b’及びa’の値を有しうる。すなわち、第1ブロック21の左側上部に位置するブロック1131のサンプルは、それらと最も近い第1ブロック21の左側ブロック1121のサンプルから決定され、第1ブロック21の上部に位置するブロック1130のサンプルは、それらと最も近い第1ブロック21のサンプルから決定されうる。また、第2ブロック22の上部に位置するブロック1129のサンプルは、それらと最も近い第2ブロック22のサンプルから決定され、第2ブロック22の右側上部に位置するブロック1128のサンプルは、それらと最も近い第2ブロック22の右側ブロック1127のサンプルから決定されうる。
【0215】
なお、一実施形態において、AI基盤映像処理部134は、現在ブロックまたは上位ブロックの特徴値から、複数の加重値セットのうち、ニューラルネットワーク300に設定される加重値セットを選択しうるが、それについては、図12を参照して説明する。
【0216】
図12は、一実施形態による、複数の加重値セットと、ブロックの特徴との対応関係を示す表である。図12に図示された対応関係は、映像処理装置100に事前に保存されうる。
【0217】
複数の加重値セットそれぞれは、ニューラルネットワーク300に対する訓練結果として生成されうる。例えば、図12に図示されたA加重値セット、B加重値セット及びC加重値セットは、互いに異なる訓練目的により、ニューラルネットワーク300を訓練させることによって獲得されうる。訓練目的を異なるように設定するということは、ニューラルネットワーク300を訓練させるのに利用される訓練用映像の種類を異にするか、あるいは損失情報を、他の方式で算出することを意味しうる。
【0218】
一例として、後述する図15に図示されたニューラルネットワーク300の訓練過程において、訓練用第1修正ブロック1504と訓練用原本ブロック1501との差に対応する損失情報1505が利用されうるが、2つのブロック間の差を算出する方法は、多様であるので、第1方法によって算出された損失情報1505に基づき、ニューラルネットワーク300を訓練させることにより、A加重値セットを生成し、第2方法によって算出された損失情報1505に基づき、ニューラルネットワーク300を訓練させることにより、B加重値セットを生成しうる。また、第3方法によって算出された損失情報1505に基づき、ニューラルネットワーク300を訓練させることにより、C加重値セットを生成しうる。
【0219】
一実施形態によるAI基盤映像処理部134は、現在ブロックまたは上位ブロックの特徴に基づき、ニューラルネットワーク300の加重値を適応的に設定する(set)ので、現在ブロックに係わる効果的なフィルタリングが可能になりうる。ここで、加重値セットでもって、ニューラルネットワーク300を設定するというのは、ニューラルネットワーク300のコンボリューションレイヤで利用されるフィルタカーネルの加重値を、加重値セットに含まれた加重値でもって設定することを意味しうる。
【0220】
図12を参照すれば、特徴値が、第1臨界値より大きければ、A加重値セットが選択され、特徴値が、第1臨界値以下であり、第2臨界値より大きければ、B加重値セットが選択され、特徴値が、第2臨界値以下であり、第3臨界値より大きければ、C加重値セットが選択されうる。
【0221】
図12は、3つの加重値セットが図示されているが、それは、1つの例示であるのみ、加重値セットの個数は、多様に決定され、それぞれの加重値セットに対応する条件も、多様に設定されうる。
【0222】
一実施形態において、加重値セットを選択するのに利用される特徴値は、前述の現在ブロックのためのパラメータセットとパラメータとを選択するのに利用される特徴値と異なる方法によって算出されうる。例えば、1以上のパラメータセットのうちいずれか一つを選択するのに利用される特徴値は、前述のi)に該当する値から算出され、加重値セットを選択するのに利用される特徴値は、v)に該当する値から算出されうる。
【0223】
具現例により、AI基盤映像処理部134は、複数の加重値セットのうち、符号化データに含まれた第3情報が示す加重値セットを選択し、選択された加重値セットでもって、ニューラルネットワーク300を設定することもできる。
【0224】
一実施形態において、AI基盤映像処理部134は、現在ブロックまたは上位ブロックの特徴に基づき、現在ブロックに対し、AI基盤フィルタリングを適用するか否かということを決定しうる。例えば、図12に図示されているように、特徴値が第3臨界値以下であるならば、AI基盤映像処理部134は、AI基盤フィルタリングを、現在ブロックに対して適用しないと決定しうる。その場合、映像処理装置100から現在ブロックが出力されうる。
【0225】
現在ブロック内にエラーが存在する可能性が低い場合にも、現在ブロックに対し、AI基盤フィルタリングを適用することは、映像処理装置100に対する不要な負荷になりうる。従って、AI基盤映像処理部134は、現在ブロックまたは上位ブロックの特徴から、AI基盤フィルタリングが必要ではないと判断されれば、現在ブロックに係わるAI基盤フィルタリングをスキップすることができる。
【0226】
一実施形態において、現在ブロックに対し、AI基盤フィルタリングが適用されるか否かということを示す情報(例えば、フラグ)が符号化データから獲得され、獲得された情報に基づき、現在ブロックに対し、AI基盤フィルタリングを適用するか否かということが決定されうる。
【0227】
図13は、一実施形態による、映像処理装置100による映像処理方法のフローチャートである。
【0228】
S1310段階において、映像処理装置100は、符号化データを復号し、現在ブロックを復元する。符号化データは、原本映像内の原本ブロックに係わる符号化を介して生成されうる。
【0229】
一実施形態において、映像処理装置100は、符号化データ、または符号化データに対応するビットストリームを、外部装置からネットワークを介して受信することができる。
【0230】
他の実施形態において、映像処理装置100は、ハードディスク、フロッピィーディスク及び磁気テープのような磁気媒体、CD-ROM(compact disc read only memory)及びDVD(digital versatile disc)のような光記録媒体、フロプティカルディスク(floptical disk)のような磁気・光媒体(magneto-optical medium)などを含むデータ記録媒体から、符号化データ、または符号化データに対応するビットストリームを獲得しうる。
【0231】
S1320段階において、映像処理装置100は、符号化データに含まれた量子化パラメータから算出されたサンプル値を含む量子化エラーマップを獲得する。
【0232】
S1330段階において、映像処理装置100は、現在ブロック及び量子化エラーマップを、ニューラルネットワーク300に適用し、第1修正ブロックを獲得する。
【0233】
一実施形態において、映像処理装置100は、拡張ブロックと拡張量子化エラーマップとをニューラルネットワーク300に適用し、第1修正ブロックを獲得することもできる。
【0234】
また、一実施形態において、映像処理装置100は、現在ブロックまたは上位ブロックに係わる分析を介して獲得される特徴値をサンプル値として含む特徴マップを、現在ブロック及び量子化エラーマップと共に、ニューラルネットワーク300に適用することもできる。
【0235】
また、一実施形態において、映像処理装置100は、現在ブロック及び量子化エラーマップと共に、現在ブロックを復元するのに利用された予測ブロック及び/または残差ブロックをニューラルネットワーク300に適用し、第1修正ブロックを獲得することもできる。
【0236】
S1340段階において、映像処理装置100は、現在ブロックと第1修正ブロックとの第1差分ブロックを獲得する。
【0237】
S1350段階において、映像処理装置100は、現在ブロック及び上位ブロックの特徴に基づいてパラメータを決定し、該パラメータにより、第1差分ブロックのサンプル値を変更し、第2差分ブロックを獲得する。
【0238】
S1360段階において、映像処理装置100は、第2差分ブロックと現在ブロックとを利用し、第2修正ブロックを獲得する。
【0239】
図14は、一実施形態による、映像処理装置100による映像処理方法のフローチャートである。
【0240】
S1410段階において、映像処理装置100は、符号化データを復号し、現在ブロックを復元する。
【0241】
符号化データは、原本映像内の原本ブロックに係わる符号化を介して生成されうる。
【0242】
一実施形態において、映像処理装置100は、符号化データ、または符号化データに対応するビットストリームを、外部装置からネットワークを介して受信することができる。
【0243】
他の実施形態において、映像処理装置100は、ハードディスク、フロッピィーディスク及び磁気テープのような磁気媒体、CD-ROM及びDVDのような光記録媒体、フロプティカルディスク(floptical disk)のような磁気・光媒体(magneto-optical medium)などを含むデータ記録媒体から、符号化データ、または符号化データに対応するビットストリームを獲得しうる。
【0244】
S1420段階において、映像処理装置100は、現在ブロック、または現在ブロックの上位ブロックの特徴を分析し、特徴値を獲得する。
【0245】
S1430段階において、映像処理装置100は、特徴値に基づき、現在ブロックに対し、AI基盤フィルタリングが適用されるか否かということを判断する。
【0246】
現在ブロックに対し、AI基盤フィルタリングが適用されると決定された場合、S1440段階において、映像処理装置100は、特徴値に対応する加重値セット及びパラメータを決定する。
【0247】
S1450段階において、映像処理装置100は、加重値セットでもって、ニューラルネットワーク300を設定する。それにより、ニューラルネットワーク300は、加重値セットに含まれた加重値によって動作しうる。
【0248】
S1460段階において、映像処理装置100は、符号化データに含まれた量子化パラメータから算出されたサンプル値を含む量子化エラーマップを生成する。映像処理装置100は、量子化エラーマップと現在ブロックとをニューラルネットワーク300に適用し、第1修正ブロックを獲得する。
【0249】
一実施形態において、映像処理装置100は、拡張ブロックと拡張量子化エラーマップとをニューラルネットワーク300に適用し、第1修正ブロックを獲得することもできる。
【0250】
また、一実施形態において、映像処理装置100は、現在ブロックまたは上位ブロックに係わる分析を介して獲得される特徴値をサンプル値として含む特徴マップを、現在ブロック及び量子化エラーマップと共に、ニューラルネットワーク300に適用することもできる。
【0251】
また、一実施形態において、映像処理装置100は、現在ブロック及び量子化エラーマップと共に、現在ブロックを復元するのに利用された予測ブロック及び/または残差ブロックをニューラルネットワーク300に適用し、第1修正ブロックを獲得することもできる。
【0252】
S1470段階において、映像処理装置100は、現在ブロックと第1修正ブロックとの第1差分ブロックを獲得し、現在ブロックまたは上位ブロックの特徴に基づき、パラメータを決定し、該パラメータにより、第1差分ブロックのサンプル値を変更し、第2差分ブロックを獲得する。
【0253】
S1480段階において、映像処理装置100は、第2差分ブロックと現在ブロックを利用し、第2修正ブロックを獲得する。
【0254】
S1490段階において、映像処理装置100は、第2修正ブロックを出力する。
【0255】
S1430段階において、現在ブロックに対し、AI基盤フィルタリングが適用されないと決定された場合、S1495段階において、映像処理装置100は、現在ブロックを出力する。
【0256】
以下においては、図15を参照し、ニューラルネットワーク300の訓練方法について説明する。
【0257】
図15は、一実施形態による、ニューラルネットワーク300の訓練方法について説明するための図面である。
【0258】
図15に図示された訓練用原本ブロック1501は、前述の原本ブロックに対応し、訓練用現在ブロック1502は、図1に図示された現在ブロックに対応しうる。また、訓練用量子化エラーマップ1503及び訓練用第1修正ブロック1504は、図1に図示された量子化エラーマップ及び第1修正ブロックに対応しうる。
【0259】
本開示によるニューラルネットワーク300の訓練方法によれば、ニューラルネットワーク300から出力される訓練用第1修正ブロック1504が、訓練用原本ブロック1501と同一または類似するようになるように、ニューラルネットワーク300を訓練させる。そのために、訓練用第1修正ブロック1504と訓練用原本ブロック1501との差に対応する損失情報1505が、ニューラルネットワーク300の訓練に利用されうる。
【0260】
図15を参照し、ニューラルネットワーク300の訓練過程について詳細に説明すれば、まず、訓練用原本ブロック1501に対する符号化/復号1510を介し、訓練用現在ブロック1502が獲得される。
【0261】
訓練用現在ブロック1502と、訓練用現在ブロック1502に対応する訓練用量子化エラーマップ1503は、ニューラルネットワーク300に入力され、ニューラルネットワーク300から、訓練用第1修正ブロック1504が出力される。ニューラルネットワーク300は、事前に設定された加重値によって動作しうる。
【0262】
訓練用第1修正ブロック1504と訓練用原本ブロック1501との差に対応する損失情報1505が算出され、損失情報1505によってニューラルネットワーク300に設定された加重値が更新される。ニューラルネットワーク300は、損失情報1505が、低減または最小化されるように加重値を更新することができる。
【0263】
損失情報1505は、訓練用原本ブロック1501と訓練用第1修正ブロック1504との差に対するL1-norm値、L2-norm値、SSIM(structural similarity)値、PSNR-HVS(peak signal-to-noise ratio-human vision system)値、MS-SSIM(multiscale SSIM)値、VIF(variance inflation factor)値またはVMAF(video multimethod assessment fusion)値のうち少なくとも一つを含むものでもある。
【0264】
図15は、訓練用原本ブロック1501と訓練用第1修正ブロック1504との差に対応する損失情報1505を算出するように図示されているが、具現例により、損失情報1505は、訓練用原本ブロック1501と訓練用第2修正ブロックとの差に対応しもする。ここで、訓練用第2修正ブロックは、訓練用現在ブロック1502と訓練用第1修正ブロック1504とから訓練用第1差分ブロックを獲得し、該訓練用第1差分ブロックのサンプル値をパラメータによって変更させ、該訓練用第2差分ブロックを獲得し、該訓練用第2差分ブロックと訓練用現在ブロック1502とを合算することによって獲得されうる。
【0265】
他の実施形態において、図1に図示された第2修正ブロックが事前に決定された1以上のフィルタリングアルゴリズムによって処理される場合、損失情報1505は、訓練用原本ブロック1501と、事前に決定された1以上のフィルタリングアルゴリズムによって処理された訓練用第2修正ブロックとの差に対応しもする。
【0266】
一実施形態による、ニューラルネットワーク300の訓練は、訓練装置によって行われうる。該訓練装置は、映像処理装置100でもある。具現例により、該訓練装置は、外部サーバーでもある。その場合、外部サーバーによって訓練されたニューラルネットワーク300及び加重値が、映像処理装置100に伝達されうる。
【0267】
図16は、他の実施形態による映像処理装置1600の構成を図示するブロック図である。
【0268】
図16を参照すれば、映像処理装置1600は、復号部1610及びAIフィルタ部1630を含むものでもある。
【0269】
AIフィルタ部1630は、量子化エラー算出部1632、AI基盤映像処理部1634、映像分析部1636及び映像修正部1638を含むものでもある。
【0270】
図16に図示された映像処理装置1600の構成は、図1に図示された映像処理装置100の構成と同一であるが、AI基盤映像処理部1634が、第1修正ブロックの代わりに、第1差分ブロックを出力するという点で違いがある。ニューラルネットワーク300が、図3に図示された合算レイヤ360を含まない場合、AI基盤映像処理部1634は、第1差分ブロックを出力することができる。
【0271】
映像修正部1638は、第1差分ブロックのサンプル値を、映像分析部1636から提供されたパラメータによって変更し、第2差分ブロックを獲得し、該第2差分ブロックと現在ブロックとを合わせ、第2修正ブロックを出力することができる。
【0272】
ニューラルネットワーク300が合算レイヤ360を含まない場合のためのニューラルネットワークの訓練方法について説明すれば、図15に図示されたニューラルネットワーク300は、訓練用第1修正ブロックの代わりに、訓練用第1差分ブロックを出力することができる。そして、損失情報1505は、訓練用原本ブロック1501と訓練用現在ブロック1502との差分ブロックと、訓練用第1差分ブロックとの差に対応しうる。
【0273】
なお、前述の本開示の実施形態は、コンピュータで実行されうるプログラムに作成可能であり、作成されたプログラムは、機器によって読み取り可能な記録媒体に保存されうる。
【0274】
機器によって読み取り可能な記録媒体は、非一時的(non-transitory)記録媒体の形態で提供されうる。ここで、「非一時的記録媒体」は、実在(tangible)する装置であり、信号(signal)(例:電磁波)を含まないということを意味するのみであり、その用語は、データが記録媒体に半永久的に保存される場合と、臨時的に保存される場合とを区分するものではない。例として、「非一時的記録媒体」は、データが臨時的に保存されるバッファを含むものでもある。
【0275】
一実施形態によれば、本文書に開示された多様な実施形態による方法は、コンピュータプログラム製品(computer program product)に含まれて提供されうる。該コンピュータプログラム製品は、商品として、販売者及び購入者との間で取り引きされうる。該コンピュータプログラム製品は、機器/コンピュータで読み取り可能な記録媒体(例:CD-ROM)の形態で配布されたり、アプリケーションストアを介し、あるいは2つのユーザ装置(例:スマートフォン)間において、直接にオンラインで配布(例:ダウンロードまたはアップロード)されたりしうる。該オンライン配布の場合、該コンピュータプログラム製品(例:ダウンローダブルアプリ(downloadable app))の少なくとも一部は、製造社のサーバー、アプリケーションストアのサーバーまたは中継サーバーのメモリのような機器で読み取り可能な記録媒体に、少なくとも一時保存されるか、あるいは臨時生成されうる。
【0276】
以上、本開示の技術的思想について、望ましい実施形態を挙げて詳細に説明したが、本開示の技術的思想は、前述の実施形態に限定されるものではなく、本開示の技術的思想の範囲内において、当分野で通常の知識を有する者により、さまざまな変形及び変更が可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
【国際調査報告】