(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-11
(45)【発行日】2022-11-21
(54)【発明の名称】画像処理方法および電子デバイス
(51)【国際特許分類】
H04N 19/117 20140101AFI20221114BHJP
H04N 19/139 20140101ALI20221114BHJP
H04N 19/14 20140101ALI20221114BHJP
H04N 19/159 20140101ALI20221114BHJP
H04N 19/176 20140101ALI20221114BHJP
H04N 19/186 20140101ALI20221114BHJP
【FI】
H04N19/117
H04N19/139
H04N19/14
H04N19/159
H04N19/176
H04N19/186
(21)【出願番号】P 2021557679
(86)(22)【出願日】2020-12-16
(86)【国際出願番号】 US2020065439
(87)【国際公開番号】W WO2021133620
(87)【国際公開日】2021-07-01
【審査請求日】2021-09-30
(32)【優先日】2020-11-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-12-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ドゥ,イシン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】ジャオ,リアン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】久保 光宏
(56)【参考文献】
【文献】Kiran Misra, et al.,"On Cross Component Adaptive Loop Filter for Video Compression",Proceedings of 2019 Picture Coding Symposium (PCS),IEEE,2019年11月15日,全5頁,ISBN: 978-1-7281-4704-8, <DOI: 10.1109/PCS48520.2019.8954547>.
【文献】Kiran Misra, et al.,"Cross-Component Adaptive Loop Filter for chroma",JVET-O0636,version 2,[online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年07月07日,Pages 1-9,[令和4年10月4日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=7252> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0636-v2.zip>.
【文献】Hua Yang, et al.,"CE5-related: Joint chroma cross-component adaptive loop filtering",JVET-P0372,version 8,[online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年10月09日,Pages 1-6,[令和4年10月4日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=8161> and <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P0372-v8.zip>.
【文献】Che-Wei Kuo, et al.,"CE5-related: Unification of CCALF and ALF",JVET-P0178,version 2,[online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年10月02日,Pages 1-5,[令和4年10月4日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=7967> and <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P0178-v2.zip>.
【文献】Kiran Misra,"CE5-2.1, CE5-2.2: Cross Component Adaptive Loop Filter",JVET-P0080,version 1,[online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年09月18日,Pages 1-7,[令和4年10月4日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=7869> and <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P0080-v1.zip>.
【文献】K. Misra, et al.,"CE5-related: On the design of CC-ALF",JVET-P1008,version 3,[online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年10月09日,Pages 1-6,[令和4年10月4日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=8823> and <URL: https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P1008-v3.zip>.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
電子デバイスが実行する画像処理方法であって、
画像フレームのブロックの統計情報を取得するステップと、
前記統計情報が条件を満たすかどうかを決定するステップと、
前記統計情報が前記条件を満たすことに応答して、前記ブロックに対して交差成分フィルタリング(CCF)を無効にするステップと、
を含むことを特徴する画像処理方法。
【請求項2】
前記ブロックに対してCCFを無効にするステップは、
前記ブロックのための符号化されたデータを含むビットストリームにCCFフラグが含まれないと決定するステップ、を含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記ブロックの統計情報を取得するステップは、
前記ブロックの平滑度情報を取得するステップ、を含む、
ことを特徴とする請求項1又は2に記載の方法。
【請求項4】
前記ブロックの平滑度情報を取得するステップは、
前記ブロックにおける画素値または勾配値に基づいて前記ブロックの平滑度を測定するステップ、を含む、
ことを特徴とする請求項3に記載の方法。
【請求項5】
前記統計情報が前記条件を満たすかどうかを決定するステップは、
前記ブロックの平滑度が閾値よりも小さいかどうかを決定するステップ、を含む、
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記統計情報が前記条件を満たすかどうかを決定するステップは、
前記ブロックの平滑度が閾値よりも大きいかどうかを決定するステップ、を含む、
ことを特徴とする請求項4に記載の方法。
【請求項7】
前記ブロックにおける画素値に基づいて前記ブロックの平滑度を測定するステップは、
前記ブロックにおける画素の輝度成分値または色度成分値のうちの少なくとも1つに基づいて、前記ブロックの平滑度を測定するステップ、を含む、
ことを特徴とする請求項4乃至6のうちいずれか一項に記載の方法。
【請求項8】
前記ブロックの平滑度を測定するステップは、
前記ブロックにおける画素値の範囲、前記ブロックにおける画素値の四分位範囲、前記ブロックにおける画素値の分散、または前記ブロックにおける画素値の標準偏差の、うちの少なくとも1つに基づいて、前記ブロックの平滑度を測定するステップ、を含む、
ことを特徴とする請求項4乃至6のうちいずれか一項に記載の方法。
【請求項9】
前記ブロックの平滑度を測定するステップは、
前記ブロックにおける勾配値の範囲、前記ブロックにおける勾配値の四分位範囲、前記ブロックにおける勾配値の分散、または前記ブロックにおける勾配値の標準偏差の、うちの少なくとも1つに基づいて、前記ブロックの平滑度を測定するステップ、を含む、
ことを特徴とする請求項4乃至6のうちいずれか一項に記載の方法。
【請求項10】
前記ブロックの統計情報を取得するステップは、
前記ブロックのモード情報を取得するステップ、を含む、
ことを特徴とする請求項1に又は2記載の方法。
【請求項11】
前記統計情報が前記条件を満たすかどうかを決定するステップは、
前記ブロックのモード情報に所定の情報が含まれるかどうかを決定するステップ、を含む、
ことを特徴とする請求項10に記載の方法。
【請求項12】
前記ブロックのモード情報を取得するステップは、
前記ブロックのための予測モード、係数符号化に関連する情報、ブロックサイズ、量子化パラメータ、別の画像フレームのCCFフラグ、または前記ブロックに関連付けられた動きベクトル、のうちの少なくとも1つを取得するステップ、を含む、
ことを特徴とする請求項10又は11に記載の方法。
【請求項13】
前記ブロックのモード情報を取得するステップは、
前記ブロックのための予測モードを取得するステップ、を含み、および、
前記統計情報が前記条件を満たすかどうかを決定するステップは、
前記ブロックのための予測モードが、フレーム内DC(直流)モードであるかどうかを決定するステップ、を含む、
ことを特徴とする請求項10又は11に記載の方法。
【請求項14】
前記ブロックの統計情報を取得するステップは、
前記ブロックの中間情報を取得するステップであって、前記ブロックの中間情報がエンコーダおよびデコーダの両方で使用可能であるステップ、を含む、
ことを特徴とする請求項1又は2に記載の方法。
【請求項15】
前記統計情報が前記条件を満たすかどうかを決定するステップは、
前記ブロックの中間情報が所定の情報を含むかどうかを決定するステップ、を含む、
ことを特徴とする請求項14に記載の方法。
【請求項16】
前記ブロックの中間情報を取得するステップは、
ループフィルタリングプロセス中に導出されるサンプル分類情報、デブロッキングプロセス、制約付き指向性強化フィルタリング(CDEF)プロセスまたはループ復元プロセス中に導出されるフィルタリング強度、またはCDEFプロセス中に導出されるエッジ方向、のうちの少なくとも1つを取得するステップ、を含む、
ことを特徴とする請求項14又は15に記載の方法。
【請求項17】
前記ブロックの中間情報を取得するステップは、
制約付き指向性強化フィルタリング(CDEF)プロセス中に導出されるフィルタリング強度を取得するステップ、を含み、および、
前記統計情報が前記条件を満たすかどうかを決定するステップは、
前記CDEFプロセスのフィルタリング強度が0であるかどうかを決定するステップ、を含む、
ことを特徴とする請求項14又は15に記載の方法。
【請求項18】
電子デバイスであって、
プロセッサと、
命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体と、を含み、前記命令が前記プロセッサによって実行されると、
画像フレームのブロックの統計情報を取得するステップと、
前記統計情報が条件を満たすかどうかを決定するステップと、
前記統計情報が前記条件を満たすことに応答して、前記ブロックに対して交差成分フィルタリング(CCF)を無効にするステップと、を前記プロセッサに実行させる、
ことを特徴とする電子デバイス。
【請求項19】
前記命令は、さらに、
前記統計情報が前記条件を満たすことに応答して、前記ブロックのための符号化されたデータを含むビットストリームにCCFフラグを含まないステップ、を前記プロセッサに実行させる、
ことを特徴とする請求項18に記載の電子デバイス。
【請求項20】
前記ブロックの統計情報には、前記ブロックの平滑度情報、前記ブロックのモード情報、または、前記ブロックの、エンコーダおよびデコーダの両方で使用可能な中間情報、のうちの少なくとも1つが含まれる、
ことを特徴とする請求項18又は19に記載の電子デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、2020年11月6日に出願された米国特許出願第17/092,157号、および2019年12月24日に出願された米国仮特許出願第62/953,458号に対する優先権を主張し、これらの両方の内容の全体は、参照により本明細書に組み込まれる。
【0002】
[技術分野]
本願は、ビデオコーディング技術の分野に関し、特に、適応交差成分フィルタを使用するビデオコーディングのためのシステムおよび方法に関する。
【背景技術】
【0003】
AOMedia Video 1(AV1)は、インターネットを介したビデオ伝送のために設計されたオープンビデオコーディングフォーマットである。AV1は、半導体企業、ビデオオンデマンドプロバイダー(video on demand providers)、ビデオコンテンツ制作者(video content producers)、ソフトウェア開発会社(software development companies)およびWebブラウザベンダー(web browser vendors)を含むコンソーシアム(consortium)である、オープンメディア同盟(AOMedia:Alliance for Open Media)によって、VP9の後継として開発されたものである。AV1プロジェクトの多くの構成部分は、同盟メンバーによる以前の研究活動に由来している。実験的な技術プラットフォームには、Xiph/MozillaによるDaala、Googleによる実験的なVP9の進化プロジェクトVP10、およびCisco(シスコ)によるThorが含まれている。VP9のコードベースに基づいて構築されたAV1には、付加的な技術が組み込まれており、それらの技術のうちのいくつかは、これらの実験的な形式で開発されたものである。AV1参照コーデックおよびビットストリーム仕様のさまざまなバージョンがリリースされた。AV1ビットストリーム仕様には、参照ビデオコーデックが含まれている。
【0004】
ITU-TVCEG(Q6/16)およびISO/IEC MPEG(JTC 1/SC 29/WG 11)は、H.265/HEVC(High Efficiency Video Coding、高効率ビデオコーディング)規格の様々なバージョンを公開した。これらの2つの標準化組織は、HEVCを超える次のビデオコーディング標準を開発する可能性を探るために、共同ビデオ探索チーム(JVET:Joint Video Exploration Group)を共同で設立した。これらの2つの組織によって発表された、HEVCを超える機能を有するビデオ圧縮に関する共同提案募集(CfP:Call for Proposal)に応答して、標準ダイナミックレンジ(SDR:standard dynamic range)、ハイダイナミックレンジ(HDR:high dynamic range)および360個のビデオカテゴリに関する、40件以上の回答が提出された。CfPへの受け取られたすべての回答は、第122回のMPEG/第10回のJVET会議で評価された。この会議の結果として、JVETは、HEVCを超える次世代ビデオコーディングの標準化プロセスを正式に開始した。新しい規格は、汎用ビデオコーディング(VVC:VersatileVideo Coding)と命名され、JVETは、共同ビデオ専門家チームと改名された。VTM(VVC Test Model)の最新バージョンは、VTM 7である。
【0005】
交差成分フィルタリング(CCF:Cross-component filtering)は、1つの成分のサンプル値を使用して別の成分を細分化するフィルタリングプロセスである。CCFの一例は、JVET-O0636で提案された交差成分適応ループフィルタ(CC-ALF:cross-component adaptive loop filter)である。フラグは、処理中のフレーム内のブロックのためのCCFオン/オフなどを信号で通知するために使用される。例えば、平滑領域内のブロックは、CCFをオフにするように信号で通知される。しかしながら、CCFが平滑領域内で実行されないため、平滑領域でのCCFのシグナリングは、ビットオーバーヘッドと必要な記憶空間、および/または伝送帯域幅を増加させ、これは、大きな平滑領域(複数)を有する画像フレームについて特に当てはまる。
【0006】
開示される方法およびシステムは、上記1つまたは複数の問題、および他の問題を解決することを目的としている。
【発明の概要】
【0007】
本開示によれば、画像フレームのブロックの統計情報を取得するステップと、前記統計情報が条件を満たすかどうかを決定するステップと、前記統計情報が条件を満たすことに応答して、前記ブロックに対して交差成分フィルタリング(CCF)を無効にするステップと、を含む画像処理方法が提供されている。
【0008】
また、本開示によれば、プロセッサと、命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体とを含む電子デバイスが提供されており、前記命令が前記プロセッサによって実行されると、画像フレームのブロックの統計情報を取得するステップと、前記統計情報が条件を満たすかどうかを決定するステップと、前記統計情報が前記条件を満たすことに応答して、前記ブロックに対して交差成分フィルタリング(CCF)を無効にするステップと、を前記プロセッサに実行させる。
【図面の簡単な説明】
【0009】
【
図1】本開示に係る例示的な動作環境を示す図である。
【
図2】本開示に係る例示的なコンピュータシステムを示す図である。
【
図3】CC-ALFが適用された例示的なHEVC符号化構造を示す図である。
【
図4A】他のループフィルタに対するCC-ALFの配置を示す図である。
【
図4B】CC-ALFで使用されているひし形フィルタを示す図である。
【
図5】本開示に係る例示的な画像処理方法を示すフローチャートである。
【
図6】本開示に係る別の例示的な画像処理方法を示すフローチャートである。
【
図7】本開示に係る別の例示的な画像処理方法を示すフローチャートである。
【
図8】本開示に係る別の例示的な画像処理方法を示すフローチャートである。
【
図9】本開示に係る別の例示的な画像処理方法を示すフローチャートである。
【
図10A】本開示に係る別の例示的な画像処理方法を示すフローチャートである。
【
図10B】本開示に係る別の例示的な画像処理方法を示すフローチャートである。
【
図11A】本開示に係る別の例示的な画像処理方法を示すフローチャートである。
【
図11B】本開示に係る別の例示的な画像処理方法を示すフローチャートである。
【
図12】本開示に係る別の例示的な画像処理方法を示すフローチャートである。
【
図13】本開示に係る例示的な電子デバイスのブロック図である。
【発明を実施するための形態】
【0010】
以下、添付図面を参照しながら、本開示の実施形態における技術的解決手段を説明する。可能な限り、同じ参照符号は、同じまたは類似の構成要素を示すために、図面全体を通して使用される。明らかに、説明される実施形態は、本発明の一部の実施形態に過ぎず、すべての実施形態ではない。創造的な努力なしに本発明の実施形態に基づいて当業者によって得られる他の実施形態は、本開示の範囲に属するものとする。
【0011】
本開示において使用されるいくつかの頭字語および用語は、以下のようにリストアップされている。
【0012】
ALF:Adaptive Loop Filter、適応ループフィルタ
APS:Adaptation Parameter Set、適応パラメータセット
CBF:Coded Block Flag、符号化されたブロックのフラグ
CC-ALF:Cross-Component Adaptive Loop Filter/Filtering、交差成分適応ループフィルタ/フィルタリング
CCF:Cross-Component Filter/Filtering、交差成分フィルタ/フィルタリング
CDEF:Constrained Directional Enhancement Filter/Filtering、制約付き指向性強化フィルタ/フィルタリング
DC:Direct Current、直流
HEVC:High Efficiency Video Coding、高効率ビデオコーディング
JVET:Joint Video Exploration Team、共同ビデオ探索チーム
QP:Quantization Parameter、量子化パラメータ
SAO:Sample Adaptive Offset、サンプル適応オフセット
VVC:Versatile Video Coding、汎用ビデオコーディング
ビットストリーム(Bitstream):符号化された画像フレームおよび関連付けられたデータの表現を形成するビットのシーケンスである。
フラグ(Flag):いくつかの可能な値のうちの1つ、例えば、2つの可能な値(例えば、0と1)のうちの1つ、を取ることができる、変数またはシングルビット構文要素である。
構文要素(Syntax element):ビットストリームで表現されるデータ要素である。
構文構造(Syntax structure):指定された順序でビットストリームに一緒に存在する0個以上の構文要素である。
【0013】
図1は、本開示に係る例示的な動作環境100を示す。動作環境100は、ビデオ機能を有する様々なデバイスを含むことができる。例えば、
図1に示されるように、動作環境100は、モバイルデバイス102と、端末デバイス104と、電子デバイス106と、を含む。他のタイプのデバイスも含まれてよい。
【0014】
いくつかの実施形態では、
図1に示されるように、動作環境100は、サーバ120と、1つまたは複数のユーザ130と、様々なデバイスとサーバ120とを接続する通信ネットワーク140と、をさらに含む。ユーザ130は、様々なデバイスのうちの1つまたは複数を使用、アクセス、または制御することができる。
【0015】
モバイルデバイス102、端末デバイス104、および電子デバイス106は、一般に、端末デバイスと呼ばれることもあり、これは、例えばパーソナルデジタルアシスタント(PDA:personal digital assistant)、携帯電話、スマートフォン、統合メッセージングデバイス(IMD:integrated messaging device)、タブレットコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、または別のコンピューティングデバイスのような任意のユーザ端末を含むことができる。端末デバイスはまた、例えばデジタルカメラ、ビデオカメラ、セキュリティカメラ、車載カメラまたはステレオカメラなどの、任意の画像またはビデオキャプチャデバイス;または、例えばデジタルドアベル、自動運転センサー、デジタル音声アシスタント、スマートスピーカー、スマート家電またはビデオ処理能力を有する任意の工業用もしくは商業用、モノのインターネット(IoT:Internet of Things)システムなどの、ビデオ機能を有する任意の電子デバイスを含むこともできる。モバイルデバイス102、端末デバイス104および電子デバイス106のいずれかは、移動している個人によって運ばれるときに静止または移動することができ、輸送の一部として、または輸送モードで配置されてもよく、輸送モードには、自動車、トラック、タクシー、バス、電車、船、飛行機、自転車、オートバイ、または任意の類似の適切な輸送モードが含まれる。
【0016】
ネットワーク140は、任意の適切なタイプの通信ネットワークを含むことができ、また、有線または無線ネットワークの任意の組み合わせを含むことができ、この有線または無線ネットワークは、無線セルラー電話ネットワーク、無線ローカルエリアネットワーク(WLAN:wireless local area network)、Bluetoothパーソナルエリアネットワーク、イーサネットローカルエリアネットワーク、トークンリングローカルエリアネットワーク、ワイドエリアネットワーク、およびインターネットを含むが、これらに限定されない。ネットワーク140はまた、音声/データ通信のためのプライベート又はクラウドコンピューティングプラットフォームを含むこともできる。インターネットまたは他のタイプのネットワークが含まれる場合、インターネットへの接続には、長距離無線接続、短距離無線接続、および/または様々な有線接続が含まれることができ、有線接続には、電話回線、ケーブル回線、電力線、および/または類似な通信経路が含まれている。
【0017】
サーバ120は、サーバクラスタ内に配置された、または異なる場所で配布された、任意のタイプのサーバコンピュータシステムまたは複数のコンピュータシステムを含むことができる。上記サーバ120はまた、クラウドコンピューティングプラットフォーム上のクラウドサーバを含むこともできる。サーバ120はまた、サーバエンティティとも呼ばれることもがあり、これは、ビデオ復号およびアプリケーション処理のサーバ側機能を実行するための任意の適切なデバイス(電子デバイスを含む)と集積されてもよい。
【0018】
図2は、様々な端末デバイス102、104および/または106、および/またはサーバ120の特定の態様を実現する例示的なコンピュータシステムを示す。
図2に示されるように、コンピュータシステム200は、ハードウェアプロセッサ202と、メモリ204と、カードリーダ206と、ディスプレイ208と、キーボード210と、無線周波数(RF:radio-frequency)インターフェース212と、ベースバンド214と、アンテナ216と、符号化回路222と、復号回路224と、カメラ226と、スピーカ232と、マイクロフォン234とを含む。
図2に示される構成要素は、例示的なものであり、特定の構成要素は省略されてもよく、他の構成要素が追加されてもよい。
【0019】
プロセッサ202は、コンピュータシステム200を制御するために提供され得る。プロセッサ202は、他の構成要素にデータを送信し、また他の構成要素からデータを受信するために、1つまたは複数のバスまたは他の電気接続を介して他の構成要素に接続することができる。プロセッサ202は、1つまたは複数の処理コアを含むことができ、例えば、プロセッサ202は、4コアプロセッサまたは8コアプロセッサであってもよい。プロセッサ202は、デジタル信号処理(DSP:digital signal processing)、フィールドプログラマブルゲートアレイ(FPGA:field-programmable gate array)、またはプログラマブルロジックアレイ(PLA:programmable logic array)のうちの少なくとも1つのハードウェア形態を使用することによって実現され得る。プロセッサ202はまた、メインプロセッサおよびコプロセッサを含むことができる。メインプロセッサは、中央処理ユニット(CPU:central processing unit)であってもよく、コプロセッサは、ディスプレイスクリーンが表示する必要のあるコンテンツのレンダリングおよび描画を担当するように構成されたグラフィックス処理ユニット(GPU:graphics processing unit)であってもよい。いくつかの実施形態では、プロセッサ202は、人工知能(AI:artificial intelligence)プロセッサをさらに含むことができる。AIプロセッサは、機械学習に関連するコンピューティング動作を処理するように構成される。
【0020】
メモリ204は、高速ランダムアクセスメモリおよび/または不揮発性メモリなどの1つまたは複数のコンピュータ読み取り可能な記憶媒体、例えば、1つまたは複数のディスク記憶デバイスまたはフラッシュ記憶デバイスを含むことができる。メモリ204は、画像および音声データの形式でデータを記憶することができ、また、プロセッサ202のための命令を記憶することもできる。カードリーダ206は、任意のタイプのポータブルカードインタフェース、例えば、スマートカードインタフェース、通信カードインタフェース(例えば、近距離通信(NFC:near field communication)カード)、または加入者識別子モジュール(SIM:subscriber identifier module)カード、またはユーザ情報を提供するための、かつユーザ130の認証および許可のための認証情報を提供するのに適している他のカードインタフェースなどを含むことができる。
【0021】
さらに、ディスプレイ208は、画像またはビデオを表示するのに適している任意の適切なディスプレイを含むことができる。例えば、ディスプレイ208は、液晶ディスプレイ(LCD:liquid crystal display)スクリーン、有機発光ダイオード(OLED:organic light-emitting diode)スクリーンなどを含むことができ、また、タッチスクリーンであってもよい。キーボード210は、ユーザが情報を入力するために、物理キーボードまたは仮想キーボードを含むことができ、また、他のタイプの入力/出力デバイスを含むこともできる。スピーカ232およびマイクロフォン234は、コンピュータシステム200に対して音声を入力および出力するために使用され得る。
【0022】
RFインターフェース212(アンテナ216と共に)は、RF信号を送受信するためのRF回路を含むことができる。RFインターフェース212は、電気信号を送信用の電磁信号に変換し、または受信した電磁信号を受信用の電気信号に変換することができる。RFインターフェース212は、少なくとも1つの無線通信プロトコルを介して他の電子デバイスと通信することができる。無線通信プロトコルは、メトロポリタンエリアネットワーク、様々な世代の移動通信ネットワーク(2G、3G、4Gおよび5G)、無線ローカルエリアネットワーク(LAN:wireless local area network)、および/または無線フィディリティー(WiFi:wireless fidelity)ネットワークを含むことができる。いくつかの実施形態では、RFインターフェース212はまた、近距離通信(NFC)に関連する回路を含むことができる。ベースバンド214は、RFインターフェース212への信号およびそれからの信号を処理するための回路を含むことができる。
【0023】
さらに、カメラ226は、画像またはビデオを収集するように構成された任意のタイプの、画像またはビデオキャプチャデバイスを含むことができる。コンピュータシステム200がユーザによって携帯されるポータブルデバイスである場合、カメラ226は、フロントカメラおよびリアカメラを含むことができる。フロントカメラは、電子デバイスのフロントパネルに配置することができ、リアカメラは、電子デバイスの背面に配置することができる。いくつかの実施形態では、少なくとも2つのリアカメラが存在しており、各リアカメラは、メインカメラ、被写界深度カメラ、広角カメラ、および望遠カメラのうちのいずれかであるため、メインカメラと被写界深度カメラとを融合させることによって背景ぼかし機能を実現し、また、メインカメラと広角カメラとを融合させることによってパノラマ撮影や仮想現実(VR:virtual reality)撮影機能、または他の融合撮影機能を実現する。いくつかの実施形態では、カメラ226は、さらに、フラッシュを含むことができる。
【0024】
符号化回路222および復号回路224は、音声および/またはビデオデータの符号化および復号を実行すること、またはプロセッサ202によって実行される符号化および復号を支援することに適した電子デバイスのコーデック回路と呼ばれることもある。
【0025】
図2に示されるようなコンピュータシステム200はまた、任意の特定のシステムを実現するための付加的な構造を含むことができる。例えば、コンピュータシステム200は、サーバ120が実現される場合にデータベースおよび/または地上回線ベースのネットワーク通信インターフェースを含むことができ、または、モバイルデバイス102などが実現される場合に無線通信システムのモバイル端末またはユーザ機器の構造と類似している構造を含むことができる。しかしながら、コンピュータシステム200は、ビデオの符号化および復号、またはビデオの符号化、またはビデオの復号を必要とする任意の電子デバイスまたは装置を実現するための任意の構造を含むか、または省略することができる。例えば、エンコーダを実現するようにまたはそれを含むように構成されている場合、コンピュータシステム200は、符号化回路222を含み得るが、復号回路224を含まなくてもよい一方、デコーダを実現するようにまたはそれを含むように構成されている場合、コンピュータシステム200は、復号回路224を含み得るが、符号化回路222を含まなくてもよい。
【0026】
再び
図1を参照すると、コンピュータシステム200(すなわち、様々なデバイス102、104および/または106のうちの任意の1つまたは複数)は、様々なデータ(例えば、音声データ、環境/動作データ、画像データおよび/またはビデオデータ)をキャプチャまたは収集することができ、また、ネットワーク140を介してそれらのデータをサーバ120に送信することができる。コンピュータシステム200は、データをサーバ120に送信する前にデータを処理または前処理することができ、または未処理のデータをサーバ120に送信することができる。
【0027】
動作中に、端末デバイスのユーザは、ビデオアプリケーションを使用して、サーバ120との間でビデオコンテンツを伝送および/または受信することができ、または、様々な端末デバイスのユーザは、様々なビデオアプリケーションを使用して、ビデオコンテンツを相互に通信することができる。一実施形態では、1つのユーザは、サーバ120を介して他のユーザとビデオコンテンツを通信することができ、または、サーバ120は、ユーザ間の通信チャネルを設定することができ、これにより、1つのユーザは、上記通信チャネルを介して他のユーザとビデオを直接に通信することができる。
【0028】
交差成分フィルタリング(CCF)は、第1成分(例えば、YCbCr色空間におけるY、CbまたはCr)の再構築されたサンプルを入力として使用し、出力を第1成分とは異なる成分である第2成分に適用するフィルタプロセスである。エンコーダでは、CCFプロセスは、例えばフィルタリング係数の導出またはフィルタリングの実行のうちの少なくとも1つを含むことができる。デコーダでは、CCFプロセスは、例えばフィルタリングの実行を含むことができる。
【0029】
CCFの一例は、ALFの特定のタイプである交差成分適応ループフィルタリング(CC-ALF:cross-component adaptive loop filtering)である。ALFは、通常、再構築されたフレームに対してフィルタリングをフレーム間予測のために実行するインループフィルタリングプロセスにおける最後のフィルタリングステップとして使用される。
図3は、CC-ALFが適用された例示的なHEVC符号化構造を概略的に示す。
図3に示される符号化プロセスは、符号化端(エンコーダ)で実行可能であり、例えば、符号化回路222単独、プロセッサ202単独、符号化回路222とプロセッサ202の組み合わせ、または、コンピュータシステム200の他の構成要素/回路と共に符号化回路222および/またはプロセッサ202によって実現され得る。
【0030】
図3に示されるように、画像フレームは、残差を取得するために、参照(参照フレームまたは参照ブロック)に基づいて、フレーム間予測またはフレーム内予測を使用して処理され得、この残差は、次に、変換および量子化される。変換/量子化された残差は、エントロピー符号化され、これにより、ビットストリームは生成され、復号側に伝送される。変換/量子化された残差はまた、逆変換および逆量子化され、次に、参照フレームと結合され、これにより、再構築されたフレームは得られる。再構築されたフレームは、デブロッキングフィルタ(DBF:deblocking filter)、サンプル適応オフセット(SAO)フィルタおよび交差成分適応ループフィルタ(CC-ALF:cross-component adaptive loop filter)を含むインループフィルタに供給される。フィルタリングされたフレームは、後続フレームのフレーム間予測プロセスで使用するために、バッファ(復号された画像のバッファ)に記憶される。CC-ALFのための係数は、符号化端で導出され、符号化端でのCC-ALFプロセスで使用され得る。符号化端は、復号端での対応するCC-ALFプロセスで使用するために、CC-ALF係数を復号端に送信することができ、または、復号端での対応するCC-ALFプロセスで使用するための正しいCC-ALF係数を選択するために、CC-ALF係数のシグナリングを復号端に送信することができる。いくつかの実施形態では、SAOフィルタは、例えば制約付き指向性強化フィルタ(CDEF)に置き換えることができる。
【0031】
復号側(デコーダ)では、復号プロセスは、基本的に、
図3に示される符号化プロセスの逆のプロセスである。復号端でのCC-ALFプロセスは、符号化端から受信されたCC-ALF係数、または符号化端からのシグナリングに従って取得されたCC-ALF係数を使用することができる。復号プロセスは、例えば、復号回路224単独、プロセッサ202単独、復号回路224とプロセッサ202の組み合わせ、または、コンピュータシステム200の他の構成要素/回路と共に復号回路224および/またはプロセッサ202によって実現可能である。
【0032】
図4Aは、他のループフィルタに対するCC-ALFの配置を示す。
図4Bは、CC-ALFで使用されているひし形フィルタを示す。フィルタは、線形フィルタであってもよい。
図4Aに示されるように、CC-ALFは、フィルタを各色度成分のための輝度チャンネルに適用する。フィルタ係数は、適応パラメータセット(APS)で伝送され、因子2
10でスケーリングされ、固定小数点表現のために丸められる。いくつかの実施形態では、1つのAPSにおいて、最大25個の、輝度フィルタ係数とクリッピング値インデックスとのセット、および、最大8個の、色度フィルタ係数とクリッピング値インデックスとのセットが、信号で通知され得る。スライスヘッドにおいて、現在のスライスのために使用されるAPSのインデックスは、信号で通知される。フィルタの適用は、可変ブロックサイズによって制御され、サンプルのブロックごとに受信された、コンテキスト符号化されたフラグを介して、信号で通知される。ブロックサイズとCC-ALF有効化フラグ(enabling flag)は、色度成分ごとに、スライスレベルで受信される。サポートされているブロックサイズ(色度サンプル内)には、例えば16×16、32×32および64×64が含まれている。
【0033】
以下の表1は、CC-ALFに関連付けられた構文の相関部分を示す。
【表1】
CC-ALFに関連付けられた構文のセマンティクスは、以下の通りである。
【0034】
alf_ctb_cross_component_cb_idc[ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ]が0に等しいことは、交差成分Cbフィルタが輝度位置(xCtb、yCtb)でのCb色成分サンプルのブロックに適用されていないことを示す。
【0035】
alf_cross_component_cb_idc[ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ]が0に等しくないことは、第alf_cross_component_cb_idc[ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ]番目の交差成分Cbフィルタが輝度位置(xCtb、yCtb)でのCb色成分サンプルのブロックに適用されていることを示す。
【0036】
alf_ctb_cross_component_cr_idc[ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ]が0に等しいことは、交差成分Crフィルタが輝度位置(xCtb、yCtb)でのCr色成分サンプルのブロックに適用されていないことを示す。
【0037】
alf_cross_component_cr_idc[ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ]が0に等しくないことは、第alf_cross_component_cr_idc[ xCtb >> CtbLog2SizeY ][ yCtb >> CtbLog2SizeY ]番目の交差成分Crフィルタが輝度位置(xCtb、yCtb)でのCr色成分サンプルのブロックに適用されていることを示す。
【0038】
以下、本開示に係る例示的な画像処理方法を詳細に説明する。本開示に係る画像処理方法は、本開示に係る電子デバイスによって実行され得る。電子デバイスは、例えば1つ以上のプロセッサまたは1つ以上の集積回路などのような処理回路によって実現され得る。例えば、電子デバイスは、1つ以上のプロセッサと、プログラムが記憶されている非一時的なコンピュータ読み取り可能な記憶媒体とを含むことができ、前記プログラムが1つ以上のプロセッサによって実行されるとき、以下に説明する例示的な画像処理方法のうちの1つなど、本開示に係る方法を1つ以上のプロセッサに実行させる。いくつかの実施形態では、電子デバイスは、
図2に示されるコンピュータシステム200、またはコンピュータシステム200の一部を含むことができる。例えば、電子デバイスが、以下に説明する符号化関連プロセスを実現するように構成されたエンコーダである場合、電子デバイスは、例えば、符号化回路222および/または1つまたは複数のプロセッサとしてのプロセッサ202と、非一時的なコンピュータ読み取り可能な記憶媒体としてのメモリ204とを含むことができる。一方、電子デバイスが、以下に説明する復号関連プロセスを実現するように構成されたデコーダである場合、電子デバイスは、例えば、復号回路224および/または1つまたは複数のプロセッサとしてのプロセッサ202と、非一時的なコンピュータ読み取り可能な記憶媒体としてのメモリ204とを含むことができる。さらに、電子デバイスが、符号化関連プロセスおよび復号関連プロセスの両方を実現するように構成されたコーデックである場合、電子デバイスは、例えば、符号化回路222、復号回路224、および/または1つまたは複数のプロセッサとしてのプロセッサ202と、非一時的なコンピュータ読み取り可能な記憶媒体としてのメモリ204とを含むことができる。
【0039】
本開示のいくつかの実施形態では、サンプル領域の統計情報は取得/導出され、さらなる決定のために使用され得る。処理に応じて、サンプル領域は、処理に関連付けられた特定の領域を指すことができる。例えば、CCF関連処理では、サンプル領域は、CCFがさらに適用され得る領域を指すことができる。具体的なアプリケーションシナリオに応じて、サンプル領域は、画像フレーム(例えばコンピュータシステム200のカメラ226のような画像取得デバイスによって取得された画像フレームなど)、または画像フレームの一部、あるいは処理された(例えば、再構築された)画像フレームまたは処理された画像フレームの一部であってもよい。例えば、サンプル領域は、ブロックまたはブロックの一部を含むことができる。ブロックは、4×4ブロック(すなわち、4画素×4画素の画素アレイを含む)、8×8ブロック、16×16ブロック、または32×32ブロックであってもよい。
【0040】
さらに、画像フレームは、異なる成分を有する色空間で表現され得る。例えば、YCbCr色空間では、画像フレーム(またはその一部)は、輝度成分(Y)と2つの色度成分(CbおよびCr)に分解され得る。したがって、画像における各ブロックについて、ブロックの輝度情報を含む1つの輝度ブロック(Yブロック)と、ブロックの色度情報を含む2つの色度ブロック(CbブロックおよびCrブロック)とが存在している。
【0041】
以下により詳細に説明するように、様々な情報/データは、統計情報として使用可能である。いくつかの実施形態では、統計情報は、平滑度情報、すなわち、サンプル領域内の再構築されたサンプルの平滑度の測定値を含むことができる。再構築されたサンプルは、例えば、
図3に関連して先に説明された符号化プロセス中にまたは復号プロセス中に取得可能である。いくつかの実施形態では、サンプル領域の平滑度は、サンプル領域内の画素値に基づいて測定され得る。画素の画素値は、例えば、少なくとも画素での輝度成分値または色度成分値を含むことができる。
【0042】
いくつかの実施形態では、サンプル領域の平滑度は、サンプル領域内の画素値の範囲から計算可能である。画素値の範囲は、例えば、サンプル領域内の最大画素値と最小画素値との間の絶対差であってもよい。
【0043】
いくつかの実施形態では、サンプル領域の平滑度は、サンプル領域内の画素値の四分位範囲(interquartile range)から計算可能である。画素値の四分位範囲は、例えば、サンプル領域内の画素値の第1パーセンタイルと第2パーセンタイルとの間の絶対差であってもよい。第1パーセンタイルは、例えば75%であってもよく、第2パーセンタイルは、例えば25%であってもよい。
【0044】
いくつかの実施形態では、サンプル領域の平滑度は、サンプル領域内の画素値の分散から計算可能である。例えば、サンプル領域には、n個のサンプル(例えば、画素)が含まれているとすると、サンプル領域内の画素値の分散S2は、以下のように計算可能であり、即ち、
【数1】
ここで、iは、1からnまでの値を持つ整数であり、また、サンプル領域内のi番目のサンプルを表し、xiは、i番目のサンプルの画素値であり、
は、n個のサンプルにわたる平均(中位)画素値を表す。
【0045】
いくつかの実施形態では、サンプル領域内の画素値の分散S2の代わりに、サンプル領域内の画素値の標準偏差Sを使用して、サンプル領域の平滑度を計算することができる。サンプル領域内の画素値の標準偏差Sは、サンプル領域内の画素値の分散S2の平方根である。
【0046】
いくつかの実施形態では、異なる画素での画素値を使用して直接に計算される上記パラメータの代わりに、または上記パラメータに加えて、異なる画素での導出値を使用して計算されるパラメータが、サンプル領域の平滑度を表すために使用されてもよい。画素の導出値は、画素の画素値および/または隣接する画素の画素値に基づいて導出された値を指す。例えば、画素の導出値は、画素の勾配値であってもよく、この勾配値は、例えば、画素の画素値と隣接する画素の画素値との間の差として計算されてもよく、または、画素の反対側に位置する2つの隣接する画素の画素値の間の差として計算されてもよい。
【0047】
例えば勾配値などのような導出値を使用する、サンプル領域の平滑度の計算は、上記画素値を使用する、サンプル領域の平滑度の計算に類似し得る。例えば、サンプル領域の平滑度は、サンプル領域内の勾配値の範囲(最大勾配値と最小勾配値との間の絶対差)、サンプル領域内の勾配値の四分位範囲、サンプル領域内の勾配値の分散、および/またはサンプル領域内の勾配値の標準偏差によって計算可能である。
【0048】
上記平滑度情報の代わりに、またはそれに加えて、他のタイプの情報が、統計情報として使用されてもよい。いくつかの実施形態では、統計情報は、エンコーダがモード決定を行った後に生成され、この統計情報は、復号プロセス中にデコーダが使用するためにデコーダに伝送される情報を含むことができる。このような情報は、「モード情報」とも呼ばれ得る。モード情報は、送信される前にエンコーダによって符号化され(例えば、圧縮され、および信号で通知され)得る。モード情報は、例えば2値ビットを使用して符号化することができ、すなわち、特定の2値ビットまたは2値ビットの組み合わせが1つの特定のモード情報を表すために使用され得る。モード情報のコーディングを表す情報は、「符号化された情報」とも呼ばれる。デコーダが、符号化された情報を受信する場合、当該デコーダは、モード情報を取得するために、符号化された情報を解析することができる。
【0049】
いくつかの実施形態では、モード情報は、ブロックに対して信号で通知される予測モード、係数コーディングに関連する情報(例えば、符号化されたブロックフラグ(CBF)など)、ブロックサイズ、量子化パラメータ(QP)、他の画像フレーム(例えば、参照フレーム)のCCFフラグ(CCFのオン/オフを示す)、またはブロックに関連付けられた動きベクトル(量値)のうちの少なくとも1つを含むことができる。予測モードは、フレーム内DC(直流)モード、フレーム内平面モード、フレーム内Paethモード、フレーム内平滑モード、フレーム内再帰フィルタリングモード、またはフレーム間スキップモードであってもよい。
【0050】
統計情報にはまた、付加的にまたは代替的に、エンコーダおよびデコーダの両方において特定のプロセスのために(例えばCCFが適用される場合に)使用できる情報が含まれてもよい。このような情報は、エンコーダおよびデコーダの両方で使用可能であるため、エンコーダからデコーダに送信される必要がない。以下、このような情報は、「中間情報」とも呼ばれ得る。中間情報は、例えば、ループフィルタリングプロセス(例えば、ALF)中に導出されたサンプル分類情報、デブロッキングプロセス、CDEFまたはループ復元中に導出されたフィルタリング強度、またはCDEF中に導出されたエッジ方向のうちの少なくとも1つを含むことができる。
【0051】
図5は、本開示に係る例示的な画像処理方法500を示すフローチャートである。方法500は、エンコーダを実現する電気デバイスによって、例えば上記コンピュータシステム200またはコンピュータシステム200の一部によって実行され得る。
図5に示されるように、502において、処理するブロック(現在ブロックとも呼ばれる)を受信する。504において、上記ブロックの統計情報を取得する。506において、上記統計情報が条件を満たすかどうかを決定する。上記統計情報が上記条件を満たす場合(506:「はい」)、CCFシグナリングは、現在ブロックに対して無効にされる(508)。一方、上記統計情報が上記条件を満たさない場合(506:「いいえ」)、CCFシグナリングは、現在ブロックに対して有効にされる(510)。すなわち、例示的な方法500によれば、CCFシグナリングは、現在ブロックの統計情報が条件を満たすことに応答して、現在ブロックに対して有効にされる。
【0052】
処理するブロックは、上述のように画像フレームの一部であってもよい。画像フレームは、コンピュータシステム200のカメラ226などの画像取得デバイスによって取得され得る。
【0053】
CCFを信号で通知するか、またはCCFシグナリング自体を信号で通知するかは、画像フレームの一部を単位として決定され得る。画像フレームのこのような部分は、「CCFシグナリングユニット」または単に「シグナリングユニット」と呼ばれる。いくつかの実施形態では、CCFを信号で通知するかどうかは、決定可能であり、および/または、CCFシグナリングは、ブロックレベルで実行可能であり、つまり、ブロックは、シグナリングユニットであることができる。他のいくつかの実施形態では、シグナリングユニットは、ブロックよりも大きくても小さくてもよい。例えば、シグナリングユニットは、複数のブロックを含む領域、またはブロックの一部(例えば、サブブロック)を含む領域であってもよい。
【0054】
CCFシグナリングは、CCFが実行されるかどうか、およびCCF関連情報がどのようにエンコーダによって送信され、それがどのようにデコーダによって受信されるかなどの方法を提供するメカニズムを指す。CCF信号を有効にすることは、例えば、エンコーダからデコーダに送信されるビットストリームにCCFフラグを含めることによって実現され得る。例えば、ブロックのためのCCFフラグは、ビットストリーム内のブロックに対応する、ブロックヘッダ(ブロックのためのデータパケットのヘッダ部分)に含まれてもよい。CCFフラグが真(true)である場合、デコーダは、CCFをブロックで実行する必要があることを知ることができる。一方、CCFフラグが偽(false)である場合、デコーダは、そのブロックについてCCFを必要としないことを知ることができる。
【0055】
これに対応して、CCFシグナリングを無効にすることは、例えば、エンコーダからデコーダに送信されるビットストリームにCCFフラグを含めないことによって実現され得る。例えば、ビットストリーム内のブロックに対応する、ブロックヘッダにCCFフラグが含まれない場合、これは、このブロックのためのCCFシグナリングが無効にされることを示す。いくつかの実施形態では、デコーダが、ブロックのためのCCFフラグを受信しなかった場合、すなわち、デコーダが、CCFシグナリングがブロックに適用されていないことを検出した場合に、デコーダは、ブロックに対してデフォルト動作を実行することができる。デフォルト動作は、例えば、ブロックに対してCCFをオフにすること、すなわち、ブロックに対してCCFを実行しないことであってもよい。
【0056】
図5に示され、かつ、上述されたように、電子デバイスは、統計情報が条件を満たすかどうかに基づいて、ブロックのためのCCFシグナリングを無効にするかどうかを決定することができる。条件は、統計情報の種類によって異なる場合がある。例えば、統計情報に平滑度情報が含まれる場合、条件には、所定の閾値が含まれてよい。このシナリオでは、統計情報が条件を満たすことに応答して、ブロックのためのCCFシグナリングを無効にすること(508)は、ブロックの平滑度が所定の閾値よりも小さいかまたは所定の閾値よりも大きいことに応答して、例えばブロックの最大画素値および最小画素値の間の絶対差または勾配値が所定の閾値よりも小さいことに応答して、ブロックのためのCCFシグナリングを無効にする、ことを含むことができる。
【0057】
統計情報にモード情報が含まれる場合、条件には、特定のモード情報を表す所定の情報または所定の値が含まれてよい。このシナリオでは、統計情報が条件を満たすことに応答して、ブロックのためのCCFシグナリングを無効にすること(508)は、モード情報が所定の情報であることに応答して、ブロックのためのCCFシグナリングを無効にする、ことを含むことができ、上記所定の情報は、例えば、所定の値に等しいと識別されたモード情報に対応する、符号化された情報として決定され得る。例えば、ブロックのためのCCFシグナリングは、ブロックがフレーム内DCモードによって符号化されると決定したことに応答して、無効にされ得る。
【0058】
統計情報に中間情報が含まれる場合、条件には、特定の中間情報を表す所定の情報または所定の値が含まれてよい。このシナリオでは、統計情報が条件を満たすことに応答してブロックのためのCCFシグナリングを無効にすること(508)は、中間情報が所定の情報であることに応答して、ブロックのためのCCFシグナリングを無効にする、ことを含むことができ、上記所定の情報は、例えば、所定の値に等しいと識別された中間情報として決定され得る。例えば、ブロックのためのCCFシグナリングは、そのブロックのCDEFフィルタリング強度が0であると決定したことに応答して、無効にされ得る。
【0059】
いくつかの実施形態では、この方法は、エンコーダからデコーダに送信されるために、ビットストリームに含まれるブロックに対応するデータパケットを生成する、ことをさらに含むことができる。ブロックのためのCCFシグナリングを508で無効にすることは、ブロックに対応するデータパケットのブロックヘッダにCCFフラグを含めないと決定する、ことを含むことができる。
【0060】
本開示によれば、例えば、上述の例示的な方法によれば、いくつかのシナリオでは、特定の条件が満たされた場合、CCFフラグおよび/または他のCCF関連情報をデコーダに送信する必要はない。したがって、符号化してエンコーダからデコーダに送信する必要のある情報が少なくなり、符号化効率を向上させることができる。さらに、必要な記憶空間および伝送帯域幅が少なくなり、画像処理の全体的な効率を向上させることができる。
【0061】
エンコーダは、CCFを信号で通知するかどうか、および/またはCCFプロセスを有効にするかどうかを決定することに加えて、CCF係数を導出し、そのCCF係数をデコーダに信号で通知することもできる。いくつかの実施形態では、エンコーダは、以下でより詳細に説明するように、ブロックの統計情報に基づいて、1つまたは複数のサンプル(例えば、1つまたは複数の画素)をブロックから除外することができる。
【0062】
図6は、本開示に係る例示的な画像処理方法600を示すフローチャートである。方法600は、エンコーダを実現する電気デバイスによって、例えば上記コンピュータシステム200またはコンピュータシステム200の一部によって実行され得る。
図6に示されように、602において、処理するブロック(現在ブロックとも呼ばれる)を受信する。604において、上記ブロックの統計情報を取得する。606において、上記ブロックの統計情報に基づいてCCF係数を導出する。いくつかの実施形態では、ブロックの統計情報に基づいてCCF係数を導出することは、ブロックの統計情報が条件を満たすことに応答してCCF係数を導出するプロセスから、ブロックの1つまたは複数のサンプル(例えば、1つまたは複数の画素)を除外する、ことを含むことができる。統計情報は、上記タイプの統計情報のうちのいずれかであってもよい。条件は、統計情報のタイプごとに異なる場合がある。
【0063】
統計情報に平滑度情報が含まれる場合、条件には、所定の閾値が含まれてよい。このシナリオでは、CCF係数を導出するプロセスから1つまたは複数のサンプルを除外することは、ブロックの平滑度が所定の閾値よりも小さいか、または所定の閾値よりも大きいことに応答して、例えば、ブロックの最大画素値および最小画素値の間の絶対差または勾配値が所定の閾値よりも小さいことに応答して、1つまたは複数のサンプルを除外すること、ことを含むことができる。
【0064】
統計情報にモード情報が含まれる場合、条件には、特定のモード情報を表す所定の情報または所定の値が含まれてよい。このシナリオでは、CCF係数を導出するプロセスから1つまたは複数のサンプルを除外することは、モード情報が所定の情報であることに応答して、1つまたは複数のサンプルを除外する、ことを含むことができ、上記所定の情報は、例えば、所定の値に等しいと識別されたモード情報に対応する、符号化された情報として決定され得る。例えば、CCF係数を導出するプロセスから1つまたは複数のサンプルは、ブロックがフレーム内DCモードによって符号化されると決定したことに応答して、除外され得る。
【0065】
統計情報に中間情報が含まれる場合、条件には、特定の中間情報を表す所定の情報または所定の値が含まれてよい。このシナリオでは、CCF係数を導出するプロセスから1つまたは複数のサンプルを除外することは、中間情報が所定の情報であることに応答して、1つまたは複数のサンプルを除外する、ことを含むことができ、上記所定の情報は、例えば、所定の値に等しいと識別された中間情報として決定され得る。例えば、1つまたは複数のサンプルは、ブロックのCDEFフィルタリング強度が0であると決定したことに応答して、CCF係数を導出するプロセスから除外され得る。
【0066】
いくつかの実施形態では、CCF係数を導出するプロセスから1つまたは複数のサンプルを除外することは、CCF係数を導出するときにブロックからすべての画素を除外する、ことを含むことができる。例えば、ブロックのCDEFフィルタリング強度が0である場合、ブロックからのすべての画素が、CCF係数を導出するプロセスから除外され得、つまり、ブロックからのすべての画素は、CCF係数を導出するために使用されない。
【0067】
いくつかの実施形態では、ブロックの統計情報が条件を満たす場合、ブロックのどの画素が、CCF係数を導出するプロセスから除外されるかに関して、さらなる決定が行われる。すなわち、さらなる決定結果に応じて、CCF係数を導出するときに、ブロックからの画素は、部分的に除外され得る。例えば、CDEFにおけるブロックでエッジ方向が識別される場合、ブロック内の、エッジに沿った画素のみが、CCF係数を導出するために使用され、エッジ上に位置していない他の画素は、CCF係数を導出するプロセスから除外される。
【0068】
図7は、本開示に係る別の例示的な画像処理方法700を示すフローチャートである。方法700は、デコーダを実現する電子デバイスによって、例えば上記コンピュータシステム200またはコンピュータシステム200の一部によって実行され得る。
図7に示されるように、702において、ブロック(現在ブロック)に対応するデータパケットを受信する。704において、上記データパケットにCCFフラグが含まれているかどうかを決定する。上記データパケットにCCFフラグが含まれている場合(704:「はい」)、上記CCFフラグに従ってデータパケットを処理し(706)、例えば、CCFがオンとして信号で通知されるかどうか(すなわち、CCFフラグが真であるかどうか)に応じて、上記ブロックに対してCCFを実行するかまたは実行しない。一方、上記データパケットにCCFフラグが含まれていない場合(704:「いいえ」)、上記ブロックに対してデフォルト動作を実行する(708)。
【0069】
いくつかの実施形態では、データパケットにCCFフラグが含まれているかどうかを決定すること(704)は、データパケットのブロックヘッダにCCFフラグが含まれているかどうかを決定する、ことを含むことができる。いくつかの実施形態では、デフォルト動作には、ブロックを再構築するプロセス中に、ブロックに対してCCFをオフにする(CCFが実行されないと決定する)、ことが含まれてもよい。すなわち、データパケットにCCFフラグが含まれていないと決定した場合、ブロックが再構築されるときに、ブロックに対してCCFは実行されない。
【0070】
図7に関連して先に説明された実施形態では、CCFが信号で通知されない場合、デフォルト動作、例えば、CCFをオフにすることが、デコーダで実行される。他のいくつかの実施形態では、デコーダは、以下でより詳細に説明するように、領域の特定の統計情報に基づいて、その領域に対してCCFを実行するかどうかを決定し、上記領域の特定の統計情報は、CCFを信号で通知するかどうかを決定するためにエンコーダによって使用される。すなわち、領域が信号で通知されていない場合でも、デコーダは、CCFフラグがそのような統計情報に基づいて伝送された場合、上記CCFフラグの値を導出することができ、上記領域に対するCCFは、必ずしも無効にされない。いくつかの実施形態では、領域のモード情報が、この目的のために使用されてもよい。
【0071】
図8は、本開示に係る別の例示的な画像処理方法800を示すフローチャートである。方法800は、デコーダを実現する電子デバイスによって、例えば上記コンピュータシステム200またはコンピュータシステム200の一部によって実行され得る。
図8に示されるように、802において、領域(現在領域)に対応するデータパケットを受信する。上記領域は、画像フレームの一部であってよく、複数のブロックを含むことができる。804において、上記データパケットにCCFフラグが含まれているかどうかを決定する。上記データパケットにCCFフラグが含まれている場合(804:「はい」)、CCFフラグに従って上記データパケットを処理し(806)、例えば、CCFフラグが真であるか偽であるかに応じて、上記領域に対してCCFを実行するかまたは実行しない。一方、上記データパケットにCCFフラグが含まれていない場合(804:「いいえ」)、上記領域の統計情報に基づいて、上記領域に対してCCFを実行するかどうかを決定する(808)。いくつかの実施形態では、領域の統計情報には、領域内のブロックまたは画素のモード情報が含まれてもよい。
【0072】
図8に示されるデコーダ側のプロセスに対応するエンコーダ側のプロセスは、
図5に示される例示的な方法など、上記例示的な方法のエンコーダ側のプロセスに類似することができるが、ただし、
図5に示される例示的な方法は、シグナリングユニットの例としてブロックを使用して説明されている一方で、
図8に示されるデコーダ側のプロセスに対応するエンコーダ側のプロセスは、複数のブロックを含む領域に対してCCFを信号で通知するかどうかを決定することができる。すなわち、エンコーダは、領域の統計情報に基づいて、CCFが信号で通知されるかどうかを決定することができ、そして、CCFシグナリングがない領域については、デコーダは、同じ統計情報に基づいて、CCFを実行するかどうかを決定することができる。
【0073】
いくつかの実施形態では、上記決定(エンコーダによってCCFを信号で通知するかどうかの決定、またはデコーダによってCCFを実行するかどうかの決定)は、例えば領域における、特定のモードによって符号化されたブロックまたは画素のパーセンテージなど、領域における特定のモードによって符号化されたブロックまたは画素の量に従って行われてもよい。例えば、エンコーダが、領域における、特定のモード(例えば、スキップモード)によって符号化されたブロックまたは画素のパーセンテージが閾値より大きいと決定した場合、このエンコーダは、その領域に対してCCFを信号で通知しないと決定することができる。相応的に、デコーダが、領域における、特定のモード(例えば、スキップモード)によって符号化されたブロックまたは画素のパーセンテージが閾値より大きいと決定した場合、このデコーダは、その領域に対してCCFを実行しないと決定することができる。すなわち、領域に対してCCFを実行するかどうかを決定すること(808)は、領域における、特定のモード(例えば、スキップモード)によって符号化されたブロックまたは画素のパーセンテージが閾値よりも大きいと決定したことに応答して、その領域に対してCCFを実行しないと決定する、ことを含むことができる。
【0074】
別の例として、エンコーダが、領域における、特定のモード(例えば、フレーム内モード)によって符号化されたブロックまたは画素のパーセンテージが閾値よりも大きいと決定した場合、このエンコーダは、その領域に対してCCFを信号で通知しないと決定することができる。相応的に、デコーダが、領域における、特定のモード(例えば、フレーム内モード)によって符号化されたブロックまたは画素のパーセンテージが閾値よりも大きいと決定した場合、このデコーダは、その領域に対してCCFを実行すると決定することができる。すなわち、領域に対してCCFを実行するかどうかを決定すること(808)は、領域における、特定のモード(例えば、フレーム内モード)によって符号化されたブロックまたは画素のパーセンテージが閾値よりも大きいと決定したことに応答して、その領域に対してCCFを実行すると決定する、ことを含むことができる。
【0075】
上記のように特定のモードによって符号化されたブロックまたは画素のパーセンテージは、面積の大きさに応じて計算されてよく、すなわち、特定のモードによって符号化されたブロックまたは画素の面積の大きさの、領域全体の面積の大きさに対するパーセンテージに応じて計算されてよい。いくつかの実施形態では、特定のモードに応じて符号化されたブロックまたは画素のパーセンテージは、数量によって計算されてよく、すなわち、特定のモードによって符号化されたブロックまたは画素の数量の、領域におけるブロックまたは画素の総数に対するパーセンテージに応じて計算されてよい。閾値は、例えば、40%から60%の範囲内であってよい。
【0076】
いくつかの実施形態では、上記決定(エンコーダによってCCFを信号で通知するかどうかの決定、またはデコーダによってCCFを実行するかどうかの決定)は、例えば領域内の最大ブロックサイズなど、領域内のブロックサイズに従って行われてもよい。例えば、エンコーダが、領域内の最大ブロックサイズが閾値よりも小さいと決定した場合、このエンコーダは、その領域に対してCCFを信号で通知しないと決定することができる。相応的に、デコーダが、領域内の最大ブロックサイズが閾値よりも小さいと決定した場合、このデコーダは、その領域に対してCCFを実行すると決定することができる。すなわち、領域に対してCCFを実行するかどうかを決定すること(808)は、領域内の最大ブロックサイズが閾値よりも小さいと決定したことに応答して、その領域に対してCCFを実行すると決定する、ことを含むことができる。上記閾値は、例えば、32画素または64画素であってよい。
【0077】
いくつかの実施形態では、CCFがシグナリングユニット(例えば、ブロック)に対して実行されるかどうかが、デコーダに信号で通知された場合(例えば、CCFシグナリングが、上記例示的な方法のうちの1つなど、本開示に係る方法に従って有効にされる場合、またはCCFシグナリングが、デフォルトで有効にされる場合)、デコーダは、CCFシグナリングに従って更なる動作を実行することができる。例えば、デコーダがシグナリングユニットのために受信したCCFフラグがオフされることが信号で通知された場合、このデコーダは、シグナリングユニットが平滑領域を含むと決定し、シグナリングユニット全体のためのCCFを無効にすることができる。いくつかの実施形態では、デコーダがシグナリングユニットのために受信したCCFフラグがオンされることが信号で通知された場合、このデコーダは、以下でより詳細に説明するように、シグナリングユニット、シグナリングユニット内のより小さな領域(例えば、サブブロック)、または色成分に対してCCFを実行する必要があるかどうかをさらに決定することができる。
【0078】
図9は、本開示に係る別の例示的な画像処理方法900を示すフローチャートである。方法900は、デコーダを実現する電子デバイスによって、例えば上記コンピュータシステム200またはコンピュータシステム200の一部によって実行され得る。
図9に示されるように、902において、ブロック(現在ブロック)に対応するデータパケットを受信する。904において、上記データパケットに含まれるCCFフラグが真であるか偽であるかを決定する。CCFフラグが真であることは、上記ブロックについて、CCFがオンとして信号で通知されることを示し、CCFフラグが偽であることは、上記ブロックについて、CCFがオフとして信号で通知されることを示す。CCFフラグが偽である場合(904:False)、上記ブロックに対してCCFが実行されないと決定し(906)、すなわち、上記ブロックに対してCCFを無効にする。一方、CCFフラグが真である場合(904:True)、上記ブロックの統計情報に基づいて、上記ブロックに対してCCFを実行するかどうか(すなわち、上記ブロックに対してCCFを有効または無効にするかどうか)を決定する(908)。デコーダは、以下でより詳細に説明するように、決定の結果に応じて、ブロック、ブロックの一部(サブブロック)、またはブロックの色成分に対してCCFを実行するなど、更なる動作を実行することができる。統計情報は、上記タイプの統計情報のうちのいずれかであってもよい。
【0079】
いくつかの実施形態では、ブロックに対してCCFを実行するかどうかを決定すること(908)は、ブロック全体に対してCCFを実行するかどうかを決定する、ことを含むことができる。いくつかの実施形態では、ブロックに対してCCFを実行するかどうかは、ブロックの統計情報が条件を満たすかどうかに基づいて決定され得る。ブロックの統計情報が条件を満たすかどうかの決定は、
図5に関連して先に説明された決定プロセスと類似している。その違いは、
図5のプロセスでは、決定結果が、CCFを信号で通知するかどうかを制御するために使用される一方、
図9のプロセスでは、決定結果が、CCFを実行するかどうかを制御するために使用される。
【0080】
例えば、統計情報に平滑度情報が含まれる場合、条件には、所定の閾値が含まれてよい。このシナリオでは、ブロックに対してCCFを実行するかどうかを決定することは、ブロックの平滑度が所定の閾値よりも小さいかまたは所定の閾値よりも大きいことに応答して、例えば、ブロックの最大画素値および最小画素値の間の絶対差または勾配値が所定の閾値よりも小さいことに応答して、そのブロックに対してCCFを実行しない(CCFを無効にする)と決定する、ことを含むことができる。
【0081】
統計情報にモード情報が含まれる場合、条件には、特定のモード情報を表す所定の情報または所定の値が含まれてよい。このシナリオでは、ブロックに対してCCFを実行するかどうかを決定することは、モード情報が所定の情報であることに応答して、ブロックに対してCCFを実行しないと決定する、ことを含むことができ、所定の情報は、例えば、所定の値に等しいと識別されたモード情報に対応する、符号化された情報として決定され得る。例えば、ブロックのためのCCFは、ブロックがフレーム内DCモードによって符号化されると決定したことに応答して、無効にされ得る。
【0082】
統計情報に中間情報が含まれる場合、条件には、特定の中間情報を表す所定の情報または所定の値が含まれてよい。このシナリオでは、ブロックに対してCCFを実行するかどうかを決定することは、中間情報が所定の情報であることに応答して、ブロックに対してCCFを実行しないと決定する、ことを含むことができ、所定の情報は、例えば、所定の値に等しいと識別された中間情報として決定され得る。例えば、ブロックのためのCCFは、そのブロックのCDEFフィルタリング強度が0であると決定したことに応答して、無効にされ得る。
【0083】
いくつかの実施形態では、ブロックに対してCCFを実行するかどうかを決定すること(908)は、ブロックのサブブロックに対してCCFを実行するかどうかを決定する、ことを含むことができる。サブブロックは、ブロックの1/2、1/3、1/4、1/6、1/8、1/16、または1/32などのような、ブロックの一部であってもよい。すなわち、ブロックレベルでのCCFフラグが真であっても、ブロックのサブブロックごとに、CCFを実行するかどうかは、サブブロックの統計情報に基づいて個別に決定されてもよい。サブブロックの統計情報の決定、およびサブブロック上でCCFを実行するかどうかの条件の決定は、サブブロックレベルで同じ決定が行われることを除いて、ブロックに関して上述されたものと類似している。
【0084】
いくつかの実施形態では、ブロックに対してCCFを実行するかどうかを決定することは、各色成分内のブロックまたはサブブロック上でCCFを実行するかどうかを決定する、ことを含むことができる。ブロックまたはサブブロック内の各色成分は、対応する統計情報を有することができ、それらの統計情報は、他の色成分の統計情報とは異なっていてもよい。
【0085】
いくつかの実施形態では、統計ベースのCCF決定は、1つの色成分に対して実行され得、また、決定結果は、他の色成分に直接に適用され得る。すなわち、デコーダは、ブロックまたはサブブロック内の1つの色成分のための統計情報のみを決定する必要があり得る。次に、デコーダは、その色成分の統計情報に基づいて、その色成分においてCCFを実行するかどうかを決定し、そして、同じ決定結果を他の色成分に適用することができる。例えば、デコーダが、ある色成分の統計情報に基づいて、当該色成分内のブロックまたはサブブロックのCCFを無効にする(すなわち、当該色成分内のブロックまたはサブブロックに対してCCFを実行しないと決定する)場合、このデコーダは、他の色成分内のブロックまたはサブブロックに対してもCCFを無効にする。具体例として、Cb成分内のブロックまたはサブブロックに対してCCFを無効にする場合、Cr成分内のブロックまたはサブブロックに対してもCCFを無効にする。
【0086】
いくつかの実施形態では、異なる色成分内のブロックまたはサブブロックに対してCCFを実行するかどうかの決定は、相関していない。つまり、統計ベースのCCF決定は、色成分ごとに実行されてよく、1つの色成分内のブロックまたはサブブロックのためのCCFオン/オフは、他の色成分内のブロックまたはサブブロックのためのCCFオン/オフに影響を与えない。したがって、デコーダは、ブロックまたはサブブロック内の各色成分のための統計情報を決定し、そして、対応する色成分の統計情報に基づいて各色成分においてCCFを実行するかどうかを決定する必要があり得る。例えば、デコーダが、1つの色成分の統計情報に基づいて、当該色成分内のブロックまたはサブブロックに対してCCFを無効にする(すなわち、当該色成分内のブロックまたはサブブロックに対してCCFを実行しないと決定する)場合、このデコーダは、他の色成分内のブロックまたはサブブロックに対してCCFを有効または無効にするかどうかをさらに決定する必要がある。具体例として、CCFがCb成分内のブロックまたはサブブロックに対して無効にされる場合、このCCFは、Cr成分の統計情報に基づいて、Cr成分内のブロックまたはサブブロックに対して有効にされてもまたは無効にされてもよい。
【0087】
上記実施形態によれば、画像処理における処理時間を短縮することができる。例えば、統計情報に基づいて、領域が平滑領域であるかどうかを決定するために必要な時間は、短縮され得る。したがって、画像処理速度および全体的な効率を向上させることができる。
【0088】
いくつかの実施形態では、領域(例えば、複数のブロックを含む領域)のためのCCFフラグが真であっても、より詳細に説明するように、その領域内のブロックからの画素は、依然として、CCFプロセスから除外され得る。上記のように、エンコーダ側では、上記CCFプロセスは、CCF係数を導出することまたはCCFを実行することのうちの少なくとも1つを含むことができ、デコーダ側では、CCFプロセスは、CCFを実行することを含むことができる。CCFプロセスから画素を除外することは、エンコーダおよびデコーダの両方で行われ得る。
【0089】
図10Aは、本開示に係る例示的な画像処理方法1000Aを示すフローチャートである。方法1000Aは、エンコーダを実現する電子デバイスによって、例えば上記コンピュータシステム200またはコンピュータシステム200の一部によって実行され得る。
図10Aに示すように、1002Aにおいて、処理する領域(現在領域とも呼ばれる)に対応するデータを受信する。上記領域は、複数のブロックを含むことができる。1004Aにおいて、上記領域のためのCCFフラグを決定する。上記領域のためのCCFフラグは、本開示に係る方法に従って決定可能である。1006Aにおいて、上記領域のためのCCFフラグが真であることに応答して、上記領域内のブロックの統計情報を取得する。上記ブロックの統計情報には、予測モード(すなわち、フレーム内DCモード、フレーム内平面モード、フレーム内Paethモード、フレーム内平滑モード、フレーム内再帰フィルタリングモード、フレーム間スキップモードが適用されるかどうか)、係数コーディングに関連する情報(例えば、CBF)、ブロックサイズ、QP、他の画像フレーム(例えば、参照フレーム)のCCFフラグ、および/またはブロックに関連付けられた動きベクトル(量値)などのような、ブロックのモード情報が含まれ得る。1008Aにおいて、上記統計情報が条件を満たすことに応答して、例えば、上記ブロックのモード情報が条件を満たす場合、上記ブロックからの画素をCCFプロセスから除外する。
【0090】
相応的に、
図10Bは、本開示に係る例示的な画像処理方法1000Bを示しており、方法1000Bは、デコーダを実現する電子デバイスによって、例えば上記コンピュータシステム200またはコンピュータシステム200の一部によって実行され得る。
図10Bに示されるように、1002Bにおいて、領域(現在領域とも呼ばれる)に対応するデータパケットを受信する。上記領域は、複数のブロックを含むことができる。1004Bにおいて、上記データパケットに含まれる領域のためのCCFフラグが真であるか偽であるかを決定する。1006Bにおいて、上記領域のためのCCFフラグが真であることに応答して、上記領域内のブロックの統計情報を取得する。上記ブロックの統計情報は、上記ブロックのモード情報に対応する、符号化された情報を含むことができる。1008Bにおいて、上記統計情報が条件を満たすことに応答して、例えば上記ブロックの符号化された情報が条件を満たす場合、上記ブロックからの画素をCCFプロセスから除外する。
【0091】
様々なモード情報/符号化された情報、および条件は、プロセス1006A/1006Bおよび1008A/1008Bにおいて、ブロックの画素を除外するかどうかを決定するために使用されてもよい。例えば、ブロックの予測モードがスキップモードである場合、ブロック内の画素は、(エンコーダおよび/またはデコーダで)CCFプロセスから除外される。別の例として、ブロックの輝度成分および/または色度成分のCBFフラグがゼロである場合、ブロック内の画素は、(エンコーダおよび/またはデコーダで)CCFプロセスから除外される。さらなる例として、ブロックの輝度成分または色度成分が、例えば平面モード、DCモードまたは平滑(AV1)モードなどの無指向性フレーム内予測モードで符号化される場合、ブロック内の画素は、(エンコーダおよび/またはデコーダで)CCFプロセスから除外される。
【0092】
例えばブロックレベルでの、CCFシグナリングは、ブロックの各色成分に対して実行されてもよく、したがって、1つまたは複数のCCFフラグが、そのブロックに対して信号で通知され得る。
図11Aは、本開示に係る例示的な画像処理方法1100Aを示すフローチャートである。方法1100Aは、例えばブロックの様々な色成分のためのCCFシグナリングを決定するために、エンコーダを実現する電子デバイスによって、例えば上記コンピュータシステム200またはコンピュータシステム200の一部によって実行され得る。
【0093】
図11Aに示されるように、1102において、処理するブロック(現在ブロックとも呼ばれる)を受信する。1104において、上記ブロックのすべての適用可能な色成分について、第1のCCFフラグ(「共同CCFフラグ」とも呼ばれる)を決定する。上記ブロックの色成分には、例えばCb成分およびCr成分が含まれ得る。第1のCCFフラグは、すべての適用可能な色成分がCCFを適用するかどうかを示すように信号で通知され得る。
【0094】
1106において、適用可能な色成分のいずれもCCFを適用しないことを示す値を有して第1のCCFフラグが信号で通知されているかどうかを決定する。適用可能な色成分のいずれもCCFを適用しないことを示す値を有して第1のCCFフラグが信号で通知されている場合(1106:「はい」)、個々の色成分に対してCCFシグナリングを実行するかどうかをさらに決定する必要はない(1108)。一方、適用可能な色成分のいずれもCCFを適用しないことを示す値を有して第1のCCFフラグが信号で通知されていない場合(1106:「いいえ」)、例えば、ブロックの適用可能な色成分のうちの少なくとも1つがCCFを適用することを示す値を有して第1のCCFフラグが信号で通知されている場合、適用可能な色成分の第1の色成分(例えば、Cb成分)に対して第2のCCFフラグを決定する(1110)。
【0095】
1112において、第1の色成分がCCFを適用することを示す値を有して第2のCCFフラグが信号で通知されているかどうかを決定する。第1の色成分がCCFを適用することを示す値を有して第2のCCFフラグが信号で通知されている場合(1112:「はい」)、適用可能な色成分の第2の色成分(例えば、Cr成分)に対して第3のCCFフラグを決定する(1114)。ここで、第3のCCFフラグは、第2の色成分がCCFを適用するかどうかを示す値を有して信号で通知される。一方、第1の色成分がCCFを適用することを示す値を有して第2のCCFフラグが信号で通知されていない場合(1112:「いいえ」)、例えば、第1の色成分がCCFを適用しないことを示す値を有して第2のCCFフラグが信号で通知されている場合、第2の色成分に対しては、さらなるCCFシグナリングを必要としないと決定する(1116)。
【0096】
図11Bは、本開示に係る例示的な画像処理方法1100Bを示すフローチャートである。方法1100Bは、例えばブロックの様々な色成分に対してCCFを実行するかどうかを決定するために、デコーダを実現する電子デバイスによって、例えば上記コンピュータシステム200またはコンピュータシステム200の一部によって実行され得る。
【0097】
図11Bに示すように、1122において、ブロック(現在ブロックとも呼ばれる)のためのデータパケットを受信する。上記データパケットには、方法1100Aに従って上記のように決定されたブロックの適用可能な色成分のための1つまたは複数のCCFフラグが含まれ得る。例えば、上記データパケットには、少なくとも第1のCCFフラグが含まれてもよく、エンコーダでの符号化プロセスに応じて、第2のCCFフラグおよび第3のCCFフラグがさらに含まれてもよい。1124において、どのCCFフラグが上記データパケットに含まれているかを決定する。データパケットに第1のCCFフラグのみが含まれている場合、上記エンコーダ側プロセスに基づいて、第1のCCFフラグは、適用可能な色成分のいずれもCCFを適用しないことを示す値を有し、したがって、すべての適用可能な色成分に対してCCFを実行しない(1126)。データパケットに第1のCCFフラグと第2のCCFフラグのみが含まれている場合、上記エンコーダ側プロセスに基づいて、第1のCCFフラグは、適用可能な色成分のうちの少なくとも1つがCCFを適用していることを示す値を有し、第2のCCFフラグは、第1の色成分がCCFを適用していないことを示す値を有する。これにより、第2の色成分に対してCCFを実行する必要があると推測することができ、したがって、第2の色成分に対してCCFを実行する(1128)。さらに、データパケットに第1、第2、および第3のCCFフラグの3つがすべて含まれている場合、上記エンコーダ側プロセスに基づいて、第1のCCFフラグは、適用可能な色成分のうちの少なくとも1つがCCFを適用することを示す値を有し、第2のCCFフラグは、第1の色成分がCCFを適用することを示す値を有し、第3のCCFフラグは、第2の色成分がCCFを適用することを示す値、または、第2の色成分がCCFを適用しないことを示す値を有する。従って、第1の色成分に対してはCCFが実行され、そして、第2の色成分に対してCCFが実行されるかどうかは、第3のCCFフラグが、第2の色成分がCCFを適用することを示す値を有するかどうかに依存する(1130)。
【0098】
図11Aおよび11Bに示される上記例示的な方法1100Aおよび方法1100Bでは、ブロックが2つの適用可能な色成分を含むシナリオが示され、例として説明されている。同様の方法は、異なる数の適用可能な色成分、例えば3つ以上の適用可能な色成分を有するシナリオに適用することもできる。
【0099】
いくつかの実施形態では、構文解析の依存性を回避するために、統計ベースのブロックレベルでのCCFオン/オフは、デコーダに直接に信号で通知されない。逆に、エンコーダは、統計ベースのブロックレベルでのCCFオン/オフを予測として決定し、その予測が正しいかどうか(真または偽)をデコーダに信号で通知することができる。デコーダは、上記ブロックの予測および統計情報に基づいて、上記ブロックに対してCCFを実行するかどうかを決定することができる。このプロセスについては、以下でより詳細に説明する。
【0100】
図12は、本開示に係る例示的な画像処理方法1200を示すフローチャートである。
図12におけるエンコーダおよびデコーダのそれぞれは、電子デバイス、例えば上記コンピュータシステム200またはコンピュータシステム200の一部によって実現され得る。
図12に示されるように、1202において、エンコーダは、ブロックの統計情報に基づいて、上記ブロックのためのCCFオン/オフ予測を決定する。1204において、エンコーダは、上記CCFオン/オフ予測をデコーダに通知する。1206において、デコーダは、エンコーダから上記CCFオン/オフ予測を受信する。1208において、デコーダは、上記ブロックの統計情報を決定する。1210において、デコーダは、上記CCFオン/オフ予測および上記ブロックの統計情報に基づいて、上記ブロックに対してCCFを実行するかどうかを決定する。
【0101】
いくつかの実施形態では、CCFオン/オフ予測が真である場合、デコーダは、ブロックの決定された統計情報が信頼できると決定することができる。このシナリオでは、デコーダは、ブロックの統計情報が条件を満たすかどうか、例えば、ブロックの統計情報が、そのブロックが平滑領域であることを示すかどうかに応じて、そのブロックに対してCCFを実行するかどうかを決定することができる。例えば、デコーダは、ブロックの統計情報が条件を満たす(決定された統計情報は、ブロックが平滑領域であることを示す)場合、CCFを実行すると決定し、ブロックの統計情報が条件を満たさない(決定された統計情報は、ブロックが平滑領域ではないことを示す)場合、CCFを実行しないと決定することができる。
【0102】
いくつかの実施形態では、CCFオン/オフ予測が偽である場合、デコーダは、ブロックの決定された統計情報が信頼できないと決定することができる。このシナリオでは、デコーダは、ブロックの統計情報が条件を満たさないかどうか、例えば、ブロックの統計情報が、そのブロックが平滑領域ではないことを示すかどうかに応じて、そのブロックに対してCCFを実行するかどうかを決定することができる。例えば、デコーダは、ブロックの統計情報が条件を満たさない(決定された統計情報は、ブロックが平滑領域ではないことを示す)場合、CCFを実行すると決定し、ブロックの統計情報が条件を満たす(決定された統計情報は、ブロックが平滑領域であることを示す)場合、CCFを実行しないと決定することができる。
【0103】
図13は、本開示に係る電子デバイス1300のブロック図である。電子デバイス1300は、本開示に係るエンコーダまたはデコーダ、またはエンコーダまたはデコーダの一部を実現することができ、または、エンコーダまたはデコーダを含むことができる。
図13に示されるように、電子デバイス1300は、プロセッサ1302と、非一時的なコンピュータ読み取り可能な記憶媒体1304とを含む。プロセッサ1302には、例えば、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラなどが含まれてもよい。記憶媒体1304には、例えば静的ランダムアクセスメモリ(SRAM:static random-access memory)、動的ランダムアクセスメモリ(DRAM:dynamic random-access memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memory)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM:electrically erasable programmable read-only memory)、またはフラッシュメモリ(例えば、ユニバーサルシリアルバス(USB:universal serial bus))メモリなどのうちの少なくとも1つが含まれてもよい。記憶媒体1304には、プロセッサ1302によって実行されると、本開示に係る方法、例えば上記の例示的な方法のうちの1つをプロセッサ1302に実行させる命令が記憶されてもよい。
【0104】
本開示によれば、符号化してエンコーダからデコーダへ送信する必要のある情報が少なくなり、または統計情報を得るための処理時間が少なくなる。したがって、符号化効率を向上させ、複雑度を低減させることができる。さらに、必要な記憶空間および伝送帯域幅が少なくなる。画像処理の全体的な効率を向上させることができる。
【0105】
本開示の原理および実施形態は、本明細書中の特定の実施形態を使用して説明されるが、実施形態の前述の説明は、本開示の方法および方法の核となるアイデアを理解するのを助けることのみを目的としている。同時に、当業者は、本開示のアイデアに基づいて、特定の実施形態および適用範囲に変更を加えることができる。結論として、本明細書の内容は、本開示に対する制限として解釈されるべきではない。