(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-27
(45)【発行日】2024-10-07
(54)【発明の名称】デブロッキングを実行するための装置及び方法
(51)【国際特許分類】
H04N 19/117 20140101AFI20240930BHJP
H04N 19/136 20140101ALI20240930BHJP
H04N 19/176 20140101ALI20240930BHJP
H04N 19/86 20140101ALI20240930BHJP
【FI】
H04N19/117
H04N19/136
H04N19/176
H04N19/86
【外国語出願】
(21)【出願番号】P 2023145458
(22)【出願日】2023-09-07
(62)【分割の表示】P 2021506957の分割
【原出願日】2019-08-12
【審査請求日】2023-09-22
(32)【優先日】2018-08-10
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-08-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】コトラ,アナンド メヘル
(72)【発明者】
【氏名】チェン,ジェンレェ
(72)【発明者】
【氏名】エセンリク,セミフ
(72)【発明者】
【氏名】ワン,ビァオ
(72)【発明者】
【氏名】ガオ,ハン
(72)【発明者】
【氏名】チョウ,ジージエ
【審査官】山▲崎▼ 雄介
(56)【参考文献】
【文献】特開2017-069810(JP,A)
【文献】米国特許出願公開第2013/0294525(US,A1)
【文献】欧州特許出願公開第03358847(EP,A1)
【文献】国際公開第2018/123423(WO,A1)
【文献】米国特許出願公開第2020/0014921(US,A1)
【文献】Weijia Zhu, et al.,CE2: Deblocking Improvements for Large CUs (Test 2.1.7),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 11th Meeting: Ljubljana, SI, 10-18 July 2018,JVET-K0315.docx,ITU-T,2018年07月06日,URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K0315-v3.zip
【文献】Anand Meher Kotra, et al.,CE2-related : Longer Tap Deblocking Filter,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 11th Meeting: Ljubljana, SI, 10-18 July 2018,JVET-K0369-r3.docx,ITU-T,2018年07月15日,URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K0369-v4.zip
【文献】Anand Meher Kotra, et al.,CE11.3.3: Deblocking for 4 x N and N x 4 block boundaries,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macao, CN, 3-12 Oct. 2018,JVET-L0225_CE11.3.3-r1.docx,ITU-T,2018年09月28日,URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0225-v2.zip
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
第1画像ブロックと第2画像ブロックとの間のブロック・エッジをデブロッキングするための、画像エンコーダ又は画像デコーダで使用するデブロッキング・フィルタ装置であって、
前記第1画像ブロックはM*N又はN*Mであるブロック・サイズを有し、M及びNはそれぞれ前記第1画像ブロックのその幅及び高さを表し、或いはN及びMはそれぞれ前記第1画像ブロックのその幅及び高さを表し、
前記第2画像ブロックはL*T又はT*Lであるブロック・サイズを有し、L及びTはそれぞれ前記第2画像ブロックのその幅及び高さを表し、或いはT及びLはそれぞれ前記第2画像ブロックのその幅及び高さを表し、
前記デブロッキング・フィルタ装置は、命令を記憶するメモリと、前記メモリと通信するプロセッサとを含み、前記プロセッサは、前記命令の実行の際に、
前記第1画像ブロック及び前記第2画像ブロックのうちの一方がサブ・ブロックを含み、前記サブ・ブロックを含むその一方の画像ブロックが前記第2画像ブロックであり、nが正の整数である場合に、16以下の偶数の整数2
nであるTに基づいて、値MAを、3に等しい正の整数として決定し、
16より大きい偶数の整数2
nであるNに基づいて、値MBを、7に等しい正の整数として決定し、
前記第2画像ブロックの高々MA個のサンプルの値を第1出力値として修正し、前記第1画像ブロックの高々MB個のサンプルの値を第2出力値として修正するように構成されており、前記高々MA個のサンプルは前記ブロック・エッジに垂直なライン内にあり、前記高々MA個のサンプルは前記ブロック・エッジに隣接し、前記高々MB個のサンプルは前記ブロック・エッジに垂直なライン内にあり、前記高々MB個のサンプルは前記ブロック・エッジに隣接している、デブロッキング・フィルタ装置。
【請求項2】
前記命令の実行の際に、前記プロセッサは、更に、
前記ブロック・エッジがフィルタリングされるべきか否か、又は、非対称ロング・フィルタリングが実行されるべきか否かのうちの1つ以上を、
第1判定値として、前記ブロック・エッジに隣接する、前記第1画像ブロックの高々DA個のサンプルの値、及び
第2判定値として、前記ブロック・エッジに隣接する、前記第2画像ブロックの高々DB個のサンプルの値
に基づいて決定するように構成されており、DA及びDBは整数である、請求項1に記載のデブロッキング・フィルタ装置。
【請求項3】
DA=MA+1及びDB=MB+1である、請求項2に記載のデブロッキング・フィルタ装置。
【請求項4】
前記ブロック・エッジが水平ブロック・エッジである場合に、前記第1画像ブロックの前記高さNに沿うその方向は前記ブロック・エッジに垂直であり、前記第2画像ブロックの前記高さTに沿うその方向は前記ブロック・エッジに垂直であり、前記第1画像ブロックの前記高さNは16より大きな偶数の整数2
nであり、且つ前記第2画像ブロックの前記高さTは16以下の偶数の整数2
nである、又は
前記ブロック・エッジが垂直ブロック・エッジである場合に、前記第1画像ブロックの前記幅Nに沿うその方向は前記ブロック・エッジに垂直であり、前記第2画像ブロックの前記幅Tに沿うその方向は前記ブロック・エッジに垂直であり、前記第1画像ブロックの前記幅Nは16より大きな偶数の整数2
nであり、且つ前記第2画像ブロックの前記幅Tは16以下の偶数の整数2
nである、請求項1~3のうちの何れか1項に記載のデブロッキング・フィルタ装置。
【請求項5】
前記第2画像ブロックは現在のブロックであり、前記第1画像ブロックは前記現在のブロックの隣接ブロックである、請求項1~3のうちの何れか1項に記載のデブロッキング・フィルタ装置。
【請求項6】
前記第1画像ブロックは前記第2画像ブロックの左にある、請求項5に記載のデブロッキング・フィルタ装置。
【請求項7】
前記第1画像ブロック及び前記第2画像ブロックは変換ブロックである、又は
前記第1画像ブロック及び前記第2画像ブロックはコーディング・ブロックである、請求項1~6のうちの何れか1項に記載のデブロッキング・フィルタ装置。
【請求項8】
画像符号化又は画像復号化において、第1画像ブロックと第2画像ブロックとの間のブロック・エッジをデブロッキングするためのデブロッキング方法であって、
前記第1画像ブロックはM*N又はN*Mであるブロック・サイズを有し、M及びNはそれぞれ前記第1画像ブロックのその幅及び高さを表し、或いはN及びMはそれぞれ前記第1画像ブロックのその幅及び高さを表し、
前記第2画像ブロックはL*T又はT*Lであるブロック・サイズを有し、L及びTはそれぞれ前記第2画像ブロックのその幅及び高さを表し、或いはT及びLはそれぞれ前記第2画像ブロックのその幅及び高さを表し、
前記デブロッキング方法は、
前記第1画像ブロック及び前記第2画像ブロックのうちの一方がサブ・ブロックを含み、前記サブ・ブロックを含むその一方の画像ブロックが前記第2画像ブロックであり、nが正の整数である場合に、16以下の偶数の整数2
nであるTに基づいて、値MAを、3に等しい正の整数として決定するステップと、
16より大きい偶数の整数2
nであるNに基づいて、値MBを、7に等しい正の整数として決定するステップと、
前記第2画像ブロックの高々MA個のサンプルの値を第1出力値として修正するステップであって、前記高々MA個のサンプルは前記ブロック・エッジに垂直なライン内にあり、前記高々MA個のサンプルは前記ブロック・エッジに隣接しているステップと、
前記第1画像ブロックの高々MB個のサンプルの値を第2出力値として修正するステップであって、前記高々MB個のサンプルは前記ブロック・エッジに垂直なライン内にあり、前記高々MB個のサンプルは前記ブロック・エッジに隣接しているステップと、
を含むデブロッキング方法。
【請求項9】
更に、
前記ブロック・エッジがフィルタリングされるべきか否か、又は、非対称ロング・フィルタリングが実行されるべきか否かのうちの1つ以上を、
第1判定値として、前記ブロック・エッジに隣接する、前記第1画像ブロックの高々DA個のサンプルの値、及び
第2判定値として、前記ブロック・エッジに隣接する、前記第2画像ブロックの高々DB個のサンプルの値
に基づいて決定するステップを含み、DA及びDBは整数である、請求項8に記載のデブロッキング方法。
【請求項10】
DA=MA+1及びDB=MB+1である、請求項9に記載のデブロッキング方法。
【請求項11】
前記ブロック・エッジが水平ブロック・エッジである場合に、前記第1画像ブロックの前記高さNに沿うその方向は前記ブロック・エッジに垂直であり、前記第2画像ブロックの前記高さTに沿うその方向は前記ブロック・エッジに垂直であり、前記第1画像ブロックの前記高さNは16より大きな偶数の整数2
nであり、且つ前記第2画像ブロックの前記高さTは16以下の偶数の整数2
nである、又は
前記ブロック・エッジが垂直ブロック・エッジである場合に、前記第1画像ブロックの前記幅Nに沿うその方向は前記ブロック・エッジに垂直であり、前記第2画像ブロックの前記幅Tに沿うその方向は前記ブロック・エッジに垂直であり、前記第1画像ブロックの前記幅Nは16より大きな偶数の整数2
nであり、且つ前記第2画像ブロックの前記幅Tは16以下の偶数の整数2
nである、請求項8~10のうちの何れか1項に記載のデブロッキング方法。
【請求項12】
前記第2画像ブロックは現在のブロックであり、前記第1画像ブロックは前記現在のブロックの隣接ブロックである、請求項8~10のうちの何れか1項に記載のデブロッキング方法。
【請求項13】
前記第1画像ブロックは前記第2画像ブロックの左にある、請求項12に記載のデブロッキング方法。
【請求項14】
前記第1画像ブロック及び前記第2画像ブロックは変換ブロックである、又は
前記第1画像ブロック及び前記第2画像ブロックはコーディング・ブロックである、請求項8~13のうちの何れか1項に記載のデブロッキング方法。
【請求項15】
第1画像ブロックと第2画像ブロックとの間のブロック・エッジをデブロッキングするための、画像エンコーダ又は画像デコーダで使用するデブロッキング・フィルタ装置であって、
前記第1画像ブロックはM*N又はN*Mであるブロック・サイズを有し、M及びNはそれぞれ前記第1画像ブロックのその幅及び高さを表し、或いはN及びMはそれぞれ前記第1画像ブロックのその幅及び高さを表し、
前記第2画像ブロックはL*T又はT*Lであるブロック・サイズを有し、L及びTはそれぞれ前記第2画像ブロックのその幅及び高さを表し、或いはT及びLはそれぞれ前記第2画像ブロックのその幅及び高さを表し、
前記デブロッキング・フィルタ装置は、命令を記憶するメモリと、前記メモリと通信するプロセッサとを含み、前記プロセッサは、前記命令の実行の際に、
前記第1画像ブロック及び前記第2画像ブロックのうちの一方がサブ・ブロックを含み、前記サブ・ブロックを含むその一方の画像ブロックが前記第2画像ブロックであり、nが正の整数である場合に、16以下の偶数の整数2
nであるTに基づいて、最大フィルタ長MAを、3に等しい正の整数として決定し、
16より大きい偶数の整数2
nであるNに基づいて、最大フィルタ長MBを、7に等しい正の整数として決定し、
前記最大フィルタ長MAに少なくとも部分的に基づいて、前記ブロック・エッジに隣接する前記第2画像ブロックのサンプルの値を修正し、
前記最大フィルタ長MBに少なくとも部分的に基づいて、前記ブロック・エッジに隣接する前記第1画像ブロックのサンプルの値を修正するように構成されている、デブロッキング・フィルタ装置。
【請求項16】
前記最大フィルタ長MAは前記第2画像ブロックに関連しており、前記最大フィルタ長MBは前記第1画像ブロックに関連している、請求項15に記載のデブロッキング・フィルタ装置。
【請求項17】
前記命令の実行の際に、前記プロセッサは、更に、
前記第2画像ブロックの高々MA個のサンプルの値を修正し、前記第1画像ブロックの高々MB個のサンプルの値を修正するように構成されており、
前記高々MA個のサンプルは前記ブロック・エッジに垂直なライン内にあり、前記高々MA個のサンプルは前記ブロック・エッジに隣接し、前記高々MB個のサンプルは前記ブロック・エッジに垂直なライン内にあり、前記高々MB個のサンプルは前記ブロック・エッジに隣接している、請求項15に記載のデブロッキング・フィルタ装置。
【請求項18】
画像符号化又は画像復号化において、第1画像ブロックと第2画像ブロックとの間のブロック・エッジをデブロッキングするためのデブロッキング方法であって、
前記第1画像ブロックはM*N又はN*Mであるブロック・サイズを有し、M及びNはそれぞれ前記第1画像ブロックのその幅及び高さを表し、或いはN及びMはそれぞれ前記第1画像ブロックのその幅及び高さを表し、
前記第2画像ブロックはL*T又はT*Lであるブロック・サイズを有し、L及びTはそれぞれ前記第2画像ブロックのその幅及び高さを表し、或いはT及びLはそれぞれ前記第2画像ブロックのその幅及び高さを表し、
前記デブロッキング方法は、
前記第1画像ブロック及び前記第2画像ブロックのうちの一方がサブ・ブロックを含み、前記サブ・ブロックを含むその一方の画像ブロックが前記第2画像ブロックであり、nが正の整数である場合に、16以下の偶数の整数2
nであるTに基づいて、最大フィルタ長MAを、3に等しい正の整数として決定するステップと、
16より大きい偶数の整数2
nであるNに基づいて、最大フィルタ長MBを、7に等しい正の整数として決定するステップと、
前記最大フィルタ長MAに少なくとも部分的に基づいて、前記ブロック・エッジに隣接する前記第2画像ブロックのサンプルの値を修正するステップと、
前記最大フィルタ長MBに少なくとも部分的に基づいて、前記ブロック・エッジに隣接する前記第1画像ブロックのサンプルの値を修正するステップと
を含むデブロッキング方法。
【請求項19】
前記最大フィルタ長MAは前記第2画像ブロックに関連しており、前記最大フィルタ長MBは前記第1画像ブロックに関連している、請求項18に記載のデブロッキング方法。
【請求項20】
前記最大フィルタ長MAに少なくとも部分的に基づいて、前記ブロック・エッジに隣接する前記第2画像ブロックのサンプルの値を修正するステップは、
前記第2画像ブロックの高々MA個のサンプルの値を修正するステップを含み、前記高々MA個のサンプルは前記ブロック・エッジに垂直なライン内にあり、前記高々MA個のサンプルは前記ブロック・エッジに隣接しており、
前記最大フィルタ長MBに少なくとも部分的に基づいて、前記ブロック・エッジに隣接する前記第1画像ブロックのサンプルの値を修正するステップは、
前記第1画像ブロックの高々MB個のサンプルの値を修正するステップを含み、前記高々MB個のサンプルは前記ブロック・エッジに垂直なライン内にあり、前記高々MB個のサンプルは前記ブロック・エッジに隣接している、請求項18に記載のデブロッキング方法。
【請求項21】
コンピュータ命令を記憶する非一時的なコンピュータ読み取り可能な媒体であって、前記コンピュータ命令は、1つ以上のプロセッサにより実行されると、画像符号化又は画像復号化において、第1画像ブロックと第2画像ブロックとの間のブロック・エッジをデブロッキングするための処理を、前記1つ以上のプロセッサに実行させ、
前記第1画像ブロックはM*N又はN*Mであるブロック・サイズを有し、M及びNはそれぞれ前記第1画像ブロックのその幅及び高さを表し、或いはN及びMはそれぞれ前記第1画像ブロックのその幅及び高さを表し、
前記第2画像ブロックはL*T又はT*Lであるブロック・サイズを有し、L及びTはそれぞれ前記第2画像ブロックのその幅及び高さを表し、或いはT及びLはそれぞれ前記第2画像ブロックのその幅及び高さを表し、
前記処理は、
前記第1画像ブロック及び前記第2画像ブロックのうちの一方がサブ・ブロックを含み、前記サブ・ブロックを含むその一方の画像ブロックが前記第2画像ブロックであり、nが正の整数である場合に、16以下の偶数の整数2
nであるTに基づいて、最大フィルタ長MAを、3に等しい正の整数として決定するステップと、
16より大きい偶数の整数2
nであるNに基づいて、最大フィルタ長MBを、7に等しい正の整数として決定するステップと、
前記最大フィルタ長MAに少なくとも部分的に基づいて、前記ブロック・エッジに隣接する前記第2画像ブロックのサンプルの値を修正するステップと、
前記最大フィルタ長MBに少なくとも部分的に基づいて、前記ブロック・エッジに隣接する前記第1画像ブロックのサンプルの値を修正するステップと
を含む、記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願の相互参照
本願は、2018年8月10日付で出願された米国仮特許出願第62/717,029号、及び2018年8月27日付で出願された米国仮特許出願第62/723,453号に対する優先権を主張している。前述の特許出願はその全体が参照により本願に援用される。
【0002】
技術分野
本発明の実施形態は、画像処理の分野、例えば静止画及び/又はビデオ画像コーディングに関連する。特に、本発明の実施形態はデブロッキング・フィルタの改良を取り扱う。
【0003】
背景
画像コーディング(符号化及び復号化)は、広範囲のデジタル画像アプリケーション、例えばデジタル放送TV、インターネット及びモバイル・ネットワークを介したビデオ伝送、ビデオチャットのようなリアルタイムの会話アプリケーション、ビデオ会議、DVD及びブルーレイ・ディスク、ビデオ・コンテンツの取得及び編集システム、並びにセキュリティ・アプリケーションのカムコーダで使用されている。
【0004】
1990年のH.261規格におけるブロック・ベースのハイブリッド・ビデオ・コーディング・アプローチの開発以来、新たなビデオ符号化技術及びツールが開発され、新たなビデオ・コーディング規格の基礎を形成した。ほとんどのビデオ・コーディング規格のゴールの1つは、画質を犠牲にすることなく、従前と比較してビットレートの低減を達成することであった。更に、ビデオ・コーディング規格は、MPEG-1ビデオ、MPEG-2ビデオ、ITU-T H.262/MPEG-2、ITU-T H.263、ITU-T H.264/MPEG-4、パート10、アドバンスト・ビデオ・コーディング(AVC)、ITU-T H.265、高効率ビデオ・コーディング(HEVC)、ITU-T H.266/汎用ビデオ・コーディング(VVC)及びこれらの規格の拡張、例えばスケーラビリティ及び/又は3次元(3D)拡張を含む。
【0005】
ブロック・ベースの画像コーディング方式は、ブロック・エッジに沿ってエッジ・アーチファクトが生じる可能性があるという共通点を有する。これらのアーチファクトはコーディング・ブロックの独立したコーディングに起因する。これらのエッジ・アーチファクトは、しばしばユーザーにとってたやすく見える。ブロック・ベースの画像コーディングのゴールは、エッジ・アーチファクトを視認性閾値未満に低減することである。これは、デブロッキング・フィルタリングを実行することによって行われる。このようなデブロッキング・フィルタリングは、一方では、可視的なエッジ・アーチファクトを除去するために復号化する側で実行され、他方、エッジ・アーチファクトが画像に符号化されることを少しでも防止するために、符号化する側でも実行される。特に、(変換ユニット(TU)、予測ユニット(PU)、コーディング・ユニット(CU)のような)サブ・ブロック・ツールを使用する画像ブロックに対しては、デブロッキング・フィルタリングは困難になる可能性がある。
【発明の概要】
【0006】
上述の問題を考慮して、本発明の実施形態は、従来のデブロッキング・フィルタリングを改善することを目的とする。本発明の実施形態は、短縮された処理時間でデブロッキング・フィルタリングを実行することが可能なデブロッキング・フィルタ装置、エンコーダ、デコーダ、及び対応する方法を提供する課題を有する。更に、デブロッキングは効率的で正確であるべきである。
【0007】
本発明の実施形態は独立請求項の特徴によって、実施形態の更に有利な実装は従属請求項の特徴によって、規定される。
【0008】
特定の実施形態は、添付の独立請求項において、他の実施形態は従属請求項において概説される。
【0009】
本発明の第1態様によれば、デブロッキング・フィルタ装置が提供される。デブロッキング・フィルタ装置は、画像エンコーダ及び/又は画像デコーダで使用するように意図されている。デブロッキング・フィルタ装置は、
ブロック間のエッジを決定するように構成されたエッジ位置決めユニットであって、ブロック間のエッジは、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ(例えば、CUエッジ又はCU境界又はTU境界)と、第1コーディング・ブロックP又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジ(即ち、第1コーディング・ブロックP又は第2コーディング・ブロックQはサブ・ブロックを有する、又は第1コーディング・ブロックP又は第2コーディング・ブロックQはサブ・ブロック・ツールを使用する)とを含み、第1コーディング・ブロックPはM×Nサンプル又はN×M個サンプルであるブロック・サイズを有し、第2コーディング・ブロックQはL×Tサンプル又はT×Lサンプルであるブロック・サイズを有し(2つのコーディング・ブロックのうちの何れかのブロック・サイズはW*Hにより表現されてもよく、W及びHはそれぞれのコーディング・ブロックの幅及び高さを示す)、例えば、N又はTは偶数の整数2n(即ち、nが整数である2の整数乗)であって、(例えば、値が8又は16等である)閾値より大きい、エッジ位置決めユニットと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタ(即ち、より長いタップ・フィルタ、又は非対称フィルタ、又は非対称タップ・フィルタ、又は非対称ロング・フィルタ)を適用することによってフィルタリングされるべきか否かを決定するように構成されたデブロッキング決定ユニットと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきであると決定された場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値に第1フィルタ(即ち、より長いタップ・フィルタ、又は非対称フィルタ、又は非対称タップ・フィルタ、又は非対称ロング・フィルタ)を適用するように構成されたデブロッキング・フィルタリング・ユニットであって、ライン毎にブロック・エッジに垂直な隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに垂直な隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正される、又はライン毎にブロック・エッジに垂直な隣接する第2コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに垂直な隣接する第1コーディング・ブロックの高々MB個のサンプル値が修正される、デブロッキング・フィルタリング・ユニットとを含み、MA≠MBであり、特にMA<MB=7のようにMA<MBである。例えば、MA=3及びMB=7であり、又はMA=4及びMB=7であり、又はMA=5及びMB=7等である。MA又はMBの値は、N又はTの値に依存することを理解することが可能である。
【0010】
第2画像ブロックQが、サブ・ブロックを有するか、又はサブ・ブロック・ツールを使用する現在のブロックであり、第1画像ブロックPが、現在のブロックの隣接ブロックである場合、相応して第2コーディング・ブロックにおいて、ブロック・エッジに垂直な隣接する入力サンプルの各ラインに対して、高々MA個のサンプルが修正されて出力フィルタリング済みサンプルを生成し、第1コーディング・ブロックでは、ブロック・エッジに垂直な隣接する入力サンプルの各ラインに対して、高々MB個のサンプルが修正されて出力フィルタリング済みサンプルを生成する。例えば、N又はTは8より大きな偶数の整数2nであり、M又はLは2より大きな偶数の整数2nであり(例えば、M又はLは以下の値、4、8、16又は32、・・・を有する可能性がある)、MはNと異なるか、又はMはNと同じであり、又はLはTと異なるか、又はLはTと同じであり、M×N(ここで、N>8)は水平エッジに適用され、N×M(ここで、N>8)は垂直エッジに適用される。別の例では、N又はTは、16より大きな偶数の整数2nであり、M×N(N>16)が水平エッジに適用され、N×M(ここで、N>16)が垂直エッジに適用される。
【0011】
ブロック・エッジとサブ・ブロック・エッジの相違は、更なる説明において説明される。サブ・ブロック・エッジは、Affine又はアドバンスト・テンポラル動きベクトル予測(ATMVP)のようなサブpuツールを含むサブ・ブロック・ツールを使用するブロックに対して内部のエッジであり、ブロック・エッジ(即ち、コーディング・ユニット(CU)エッジ又はコーディング・ブロック・エッジ又はCU境界)は、2つのコーディング・ユニット又は2つのコーディング・ブロック又は2つの変換ブロックの間で共有されるエッジである。サブ・ブロック・ツールはまた、イントラ・サブ・パーティション・ツール(ISP)及びサブ・ブロック変換(SBT)ツールのようなツールを含んでもよい。
【0012】
「ブロック」、「コーディング・ブロック」、又は「画像ブロック」という用語が、変換ユニット(TU)、予測ユニット(PU)、コーディング・ユニット(CU)等に適用されうる本開示において使用されることに留意されたい。VVCでは一般的に、変換ユニット及びコーディング・ユニットは、TUタイリング又はサブ・ブロック変換(SBT)が使用される数少ないシナリオを除いて、ほぼ整合している。「ブロック/画像ブロック/コーディング・ブロック/変換ブロック」及び「ブロック・サイズ/変換ブロック・サイズ」という用語は、本開示では互いに交換されてもよいことが理解できる。「サンプル/ピクセル」という用語は本開示では互いに交換されてもよい。
【0013】
本発明は、垂直及び水平エッジの両方に効く。垂直エッジの場合、第1又は第2コーディング・ブロックの幅は、その幅が8サンプル(例えば16又は32)より大きいか否かがチェックされる。水平エッジの場合、第1又は第2コーディング・ブロックの高さは、その高さが8サンプル(例えば16又は32)より大きいか否かがチェックされる。垂直エッジについては、ブロックの幅が考慮され、16以上の幅又は16より大きな幅を有するブロックのみについて、より長いタップ・フィルタ(即ち、ロング・フィルタ)が適用される。水平エッジについては、ブロックの高さが考慮され、16以上の高さ又は16より大きな高さを有するブロックのみについて、より長いタップ・フィルタ(即ち、ロング・フィルタ)が適用される。
【0014】
第1フィルタ(即ち、より長いタップ・フィルタ、非対称のフィルタ、非対称のタップ・フィルタ、又は非対称のロング・フィルタ)は、ブロック・エッジの一方の側でフィルタ決定のためにDA個のサンプルを使用し、ブロック・エッジの他方の側でフィルタ決定のためにDB個のサンプルを使用するフィルタであり、MB個のサンプルがブロック・エッジ(CUエッジ又はTUエッジ)の一方の側で修正され、MA個のサンプルがブロック・エッジ(CUエッジ又はTUエッジ)の他方の側で修正され、MA≠MBであり、特にMA<MB=7のようにMA<MBであり、例えば、MA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7であることに留意されたい。一般に、DA=MA+1及びDB=MB+1である。第1フィルタは、ブロック・エッジ(例えば、CUエッジ又はTUエッジ)の何れかの側で異なる数のサンプルを修正する非対称フィルタであってもよい。
【0015】
これは、ブロック・エッジの2つの側を別様に取り扱うことを許容し、従って本方法は、ブロック・エッジとサブ・ブロック・エッジとの間のフィルタリング・オーバーラップを回避することができ、従って、デブロッキングが並列に実行されうることを保証することができる。従って、デブロッキング・フィルタリングの処理時間は著しく短縮される。
【0016】
フィルタ装置は、フィルタリング及び修正を実行するように構成されたプロセッサを含んでもよいことに留意されたい。更に、これはまた、特に、何れかのブロックがサブ・ブロック・ツールを使用しているブロック間のエッジを、並列にデブロッキングできることを保証することができる。
【0017】
そのような第1態様による装置の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジは第1コーディング・ブロック内に存在し、サブ・ブロック間のサブ・ブロック・エッジは第2コーディング・ブロック内に存在し(即ち、第1コーディング・ブロック及び第2コーディング・ブロックはサブ・ブロックを有する)、デブロッキング決定ユニットは、更に、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが、第2フィルタ(例えば、HEVCストロング・フィルタ)を適用することによってフィルタリングされるべきか否かを決定するように構成され、及び
デブロッキング・フィルタリング・ユニットは、更に、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが、第2フィルタ(例えば、HEVCストロング・フィルタ)を適用することによってフィルタリングされるべきであると決定された場合に、ブロック・エッジ近傍のサンプルの値に第2フィルタ(例えば、HEVCストロング・フィルタ)を適用するように構成され、ブロック・エッジに隣接する第1コーディング・ブロックのMA’個のサンプル値が修正され、ブロック・エッジに隣接する第2コーディング・ブロックのMB’個のサンプル値が修正され、MA’=MB’<7のようにMA’=MB’であり、例えばMA’=MB’=3、又はMA’=MB’=5である。
【0018】
第2フィルタは、MA’個(例えば3個の)サンプルがブロック・エッジ(CUエッジ)の一方の側で修正され、MB’個の(例えば3個の)サンプルがブロック・エッジ(CUエッジ)の他方の側で修正されるHEVCストロング・フィルタであってもよいことに留意されたい。別の例では、第2フィルタは、エッジの両側で高々3つのサンプルを修正することが可能なストロング・フィルタである。HEVCでは、ノーマル・フィルタ及びストロング・フィルタという2つのフィルタがデブロッキング・フィルタとして規定されている。ノーマル・フィルタは、エッジの両側で高々2つのサンプルを修正する。ストロング・フィルタでは、エッジに沿ったサンプル間で更に3つの検査が実行される。
【0019】
そのような第1態様による装置の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロック内に存在せず、サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロック内に存在する場合(即ち、第1コーディング・ブロックがサブ・ブロックを有する)、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、例えば、MA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7である;
又は
サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロック内に存在せず、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロック内に存在する場合(即ち、第2コーディング・ブロックがサブ・ブロックを有する)、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MB個のサンプル値が修正され、例えば、MA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7である。
【0020】
そのような第1態様又は第1態様の上記の任意の実装による装置の可能な実装形式において、デブロッキング決定ユニットは、更に、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが第1フィルタ(即ち、より長いタップ・フィルタ、又は非対称フィルタ、又は非対称タップ・フィルタ、又は非対称のより長いフィルタ)を適用することによってフィルタリングされるべきか否かを、
- 第1フィルタ判定値として、ブロック・エッジに隣接する、第1コーディング・ブロックの高々DA個のサンプル値、及び
- 第2フィルタ判定値として、ブロック・エッジに隣接する、第2コーディング・ブロックの高々DB個のサンプル値
に基づいて決定するように構成される。
【0021】
一般に、DA=MA+1及びDB=MB+1である。MA=3及びMB=3である場合、DA=DB=4であり、又はMA=7及びMB=7である場合、DA=DB=8であり、又はMA=3及びMB=7である場合、DA=4、DB=8であり、又はMA=4及びMB=7である場合、DA=5、DB=8であり、又はMA=5及びMB=7である場合、DA=6、DB=8である。これは、どのエッジが実際にデブロッキングされ、どのエッジがデブロッキングされないかを、非常に正確に並列的に決定することを許容する。
【0022】
そのような第1態様又は第1態様の上記の任意の実装による装置の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロックQ内部に存在する場合(即ち、第2コーディング・ブロックQがサブ・ブロックを有する)、デブロッキング決定ユニットは、以下の第1式:
【数1】
によって規定される第1条件が満たされるか否かを決定するように構成され、βは閾値パラメータを示し、q
iは第2コーディング・ブロックQのサンプル値を表し、i=0,1,2,3であり、p
jは第1コーディング・ブロックPのサンプル値を表し、j=0,3,4,7又はj=0,2,3,5である。
【0023】
新しいフィルタ条件が提案される。これは、コーディング・ユニットのエッジでデブロッキングを実行するために必要な過去のコーディング・ユニットのピクセル値を記憶するために必要なライン・メモリを著しく減少させる。
【0024】
そのような第1態様又は第1態様の上記の任意の実装による装置の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロックP内部に存在する場合(即ち、第1コーディング・ブロックPがサブ・ブロックを有する)、デブロッキング決定ユニットは、以下の第2式:
【数2】
によって規定される第2条件が満たされるか否かを決定するように構成され、βは閾値パラメータを示し、p
iは第1コーディング・ブロックPのサンプル値を表し、i=0,1,2,3であり、q
jは第2コーディング・ブロックQのサンプル値を表し、j=0,3,4,7又はj=0,2,3,5である。
【0025】
新しいフィルタ条件が提案される。これは、コーディング・ユニットのエッジでデブロッキングを実行するために必要な過去のコーディング・ユニットのピクセル値を記憶するために必要なライン・メモリを著しく減少させる。
【0026】
そのような第1態様又は第1態様の上記の任意の実装による装置の可能な実装形式において、閾値パラメータβは、複数のサンプルの量子化ステップ・サイズに関連する量子化パラメータQPに基づいて決定されるか、又は閾値パラメータβは、ルック・アップ・テーブルを使用して、量子化パラメータQPに基づいて決定される。
【0027】
そのような第1態様又は第1態様の上記の任意の実装による装置の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロックP内部には存在せず、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロックQ内部に存在する場合(即ち、第1コーディング・ブロックPはサブ・ブロックを有しておらず、第2コーディング・ブロックQはサブ・ブロックを有している)、デブロッキング・フィルタリング・ユニットは、以下の式:
【数3】
に基づいて、第1画像ブロックP及び第2画像ブロックQ(503a,503b)の間の垂直又は水平エッジ(505)の右又は下に対して、サンプルの現在の行又は列の第1サンプルのフィルタリングされたサンプル値q
0’を決定するように構成され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0028】
新しいフィルタ係数が提案される。これらは、HEVCストロング・フィルタ係数とより長いタップ非対称フィルタ係数とを含む2種類のフィルタ係数を許容する。
【0029】
そのような第1態様又は第1態様の上記の任意の実装による装置の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロックP内部には存在せず、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロックQ内部に存在する場合(即ち、第1コーディング・ブロックPはサブ・ブロックを有しておらず、第2コーディング・ブロックQはサブ・ブロックを有している)、デブロッキング・フィルタリング・ユニットは、以下の式:
【数4】
に基づいて、第1画像ブロックP及び第2画像ブロックQ(503a,503b)の間の垂直又は水平エッジ(505)の右又は下に対して、サンプルの現在の行又は列の第2サンプルのフィルタリングされたサンプル値q
1’を決定するように構成され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
新しいフィルタ係数が提案される。これらは、HEVCストロング・フィルタ係数とより長いタップ非対称フィルタ係数とを含む2種類のフィルタ係数を許容する。
【0030】
そのような第1態様又は第1態様の上記の任意の実装による装置の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロックP内部には存在せず、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロックQ内部に存在する場合(即ち、第1コーディング・ブロックPはサブ・ブロックを有しておらず、第2コーディング・ブロックQはサブ・ブロックを有している)、デブロッキング・フィルタリング・ユニットは、以下の式:
【数5】
に基づいて、第1画像ブロックP及び第2画像ブロックQ(503a,503b)の間の垂直又は水平エッジ(505)の右又は下に対して、サンプルの現在の行又は列の第3サンプルのフィルタリングされたサンプル値q
2’を決定するように構成され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
新しいフィルタ係数が提案される。これらは、HEVCストロング・フィルタ係数とより長いタップ非対称フィルタ係数とを含む2種類のフィルタ係数を許容する。
【0031】
そのような第1態様又は第1態様の上記の任意の実装による装置の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロックP内部には存在せず、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロックQ内部に存在する場合(即ち、第1コーディング・ブロックPはサブ・ブロックを有しておらず、第2コーディング・ブロックQはサブ・ブロックを有している)、デブロッキング・フィルタリング・ユニットは、以下の式:
【数6】
に基づいて、第1画像ブロックP及び第2画像ブロックQ(503a,503b)の間の垂直又は水平エッジ(505)の左又は上に対して、サンプルの現在の行又は列の対応するサンプルのフィルタリングされたサンプル値p
i’を決定するように構成され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。これらは、新たなより長いタップ非対称フィルタ係数を許容する。
【0032】
第2態様によれば、デブロッキング・フィルタ装置が提供される。デブロッキング・フィルタ装置は、画像エンコーダ及び/又は画像デコーダで使用するように意図されている。デブロッキング・フィルタ装置は、
ブロック間のエッジを決定するように構成されたエッジ位置決めユニットであって、ブロック間のエッジは、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジと、第1コーディング・ブロックP又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジとを含み(即ち、第1コーディング・ブロックP又は第2コーディング・ブロックQはサブ・ブロックを有する、又は第1コーディング・ブロックP又は第2コーディング・ブロックQはサブ・ブロック・ツールを使用する)、第1コーディング・ブロックPはM×N又はN×Mであるブロック・サイズを有し、第2コーディング・ブロックQはL×T又はT×Lであるブロック・サイズを有し、例えばN又はTは閾値(例えば、8又は16等)よりも大きい偶数の整数2nである、エッジ位置決めユニットと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタ(即ち、より長いタップ・フィルタ、又は非対称フィルタ、又は非対称タップ・フィルタ、又は非対称ロング・フィルタ)を適用することによってフィルタリングされるべきか否かを決定するように構成されたデブロッキング決定ユニットと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきではないと決定された場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値に第3フィルタを適用するように構成されたデブロッキング・フィルタリング・ユニットであって、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、MA=MB<7であり、例えばMA=MB=4である、デブロッキング・フィルタリング・ユニットとを含む。
【0033】
例えば、N又はTは8より大きな偶数の整数2nであり、M又はLは2より大きな偶数の整数2nであり、MはNとは異なるか、又はMはNと同じであり、或いはLはTとは異なるか、又はLはTと同じである。一例では、第3フィルタは、ブロック・エッジ(CUエッジ)の両側で最大4個のサンプルを修正することが可能なHEVCストロング・フィルタであってもよい。換言すれば、第3フィルタは、ブロック・エッジ(CUエッジ)の一方の側で最大4個のサンプルが修正される一方、ブロック・エッジ(CUエッジ)の他方の側で最大4個のサンプルが修正されるHEVCストロング・フィルタであってもよい。
【0034】
これは、ブロック・エッジの両側で少数のサンプル値を修正することを許容し、従って、本方法は、ブロック・エッジとサブ・ブロック・エッジとの間のフィルタリング・オーバーラップをある程度回避することが可能であり、従って、デブロッキングが並列的に実行され得ることを保証することができる。従って、デブロッキング・フィルタリングの処理時間を短縮することができる。
【0035】
本発明の第3態様によれば、デブロッキング・フィルタ装置が提供される。デブロッキング・フィルタ装置は、画像エンコーダ及び/又は画像デコーダで使用するように意図されている。デブロッキング・フィルタ装置は、
ブロック間のエッジを決定するように構成されたエッジ位置決めユニットであって、ブロック間のエッジは、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジと、第1コーディング・ブロックP又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジとを含み(即ち、第1コーディング・ブロックP又は第2コーディング・ブロックQはサブ・ブロックを有する)、第1コーディング・ブロックPはM×N又はN×Mであるブロック・サイズを有し、第2コーディング・ブロックQはL×T又はT×Lであるブロック・サイズを有し、例えば、N又はTは閾値(例えば、8又は16等)よりも大きな偶数の整数2nである、エッジ位置決めユニットと、
第1コーディング・ブロックP又は第2コーディング・ブロックQ(内部)のサブ・ブロック間のサブ・ブロック・エッジがフィルタリングされるべきでないことを決定するように、即ち第1コーディング・ブロックP又は第2コーディング・ブロックQ(内部)のサブ・ブロック間のサブ・ブロック・エッジがデブロッキングに関してディセーブルされることを決定するように構成されたデブロッキング決定ユニットと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値に第4フィルタ(通常のより長いタップ・フィルタ)を適用するように構成されたデブロッキング・フィルタリング・ユニットであって、ブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、MA=MBであり、例えばMA=MB=7である、デブロッキング・フィルタリング・ユニットとを含む。
【0036】
例えば、N又はTは8より大きな偶数の整数2nであり、M又はLは2より大きな偶数の整数2nであり、MはNとは異なるか、又はMはNと同じであり、或いはLはTとは異なるか、又はLはTと同じである。
【0037】
一例では、第4フィルタは、ブロック・エッジ(例えば、CUエッジ又はCU境界)の何れかの側で高々7個のサンプルを修正することが可能な通常のより長いタップ・フィルタであってもよい。
【0038】
これは、第1コーディング・ブロックP又は第2コーディング・ブロックQ(内部)のサブ・ブロック間のサブ・ブロック・エッジがデブロッキングに関してディセーブルにされることを許容し、従って本方法は、ブロック・エッジとサブ・ブロック・エッジとの間のフィルタリング・オーバーラップを回避することが可能であり、従ってデブロッキングが並列的に実行され得ることを保証することができる。従って、デブロッキング・フィルタリングの処理時間は著しく短縮される。
【0039】
本発明の第4態様によれば、ビデオ符号化装置が提供され、ビデオ符号化装置(100)はビデオ・ストリームの画像を符号化し、ビデオ符号化装置(100)は、
ピクチャを再構成するように構成された再構成ユニット(114)と、
再構成されたピクチャを、フィルタリングされた再構成されたピクチャに処理する前述したようなフィルタ装置(120)とを含む。
これは、画像の非常に効率的で正確な符号化を許容する。
【0040】
本発明の第5態様によれば、ビデオ復号化装置が提供され、ビデオ復号化装置(200)は、符号化されたビデオ・ストリーム(303)のピクチャを復号化し、ビデオ復号化装置(200)は、
ピクチャを再構成するように構成された再構成ユニット(214)と、
再構成されたピクチャを、フィルタリングされた再構成されたピクチャに処理する前述したようなループ・フィルタ装置(220)とを含む。
これは特に画像の正確で効率的な復号化を許容する。
【0041】
第6態様によれば、本発明は画像符号化及び/又は画像復号化で使用するためのデブロッキング方法に関連し、本方法は、
ブロック間のエッジを決定するステップであって、ブロック間のエッジは、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジと、第1コーディング・ブロックP又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジ(例えば、第1コーディング・ブロックP又は第2コーディング・ブロックQはサブ・ブロックを有する、又は第1コーディング・ブロックP又は第2コーディング・ブロックQはサブ・ブロック・ツールを有する)とを含み、第1コーディング・ブロックPはM×Nサンプル又はN×M個サンプルであるブロック・サイズを有し、第2コーディング・ブロックQはL×Tサンプル又はT×Lサンプルであるブロック・サイズを有し、例えば、N又はTは閾値(例えば、値が8又は16等)より大きな偶数の整数2nである、ステップと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタ(即ち、より長いタップ・フィルタ、又は非対称フィルタ、又は非対称タップ・フィルタ、又は非対称ロング・フィルタ)を適用することによってフィルタリングされるべきか否かを決定する、換言すれば、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタ(即ち、より長いタップ・フィルタ、又は非対称フィルタ、又は非対称タップ・フィルタ)を適用することによってデブロッキングに関してイネーブルにされるか否かを決定するステップと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきであると決定された場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値に第1フィルタ(即ち、より長いタップ・フィルタ、又は非対称フィルタ、又は非対称タップ・フィルタ、又は非対称ロング・フィルタ)を適用するステップであって、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、又はライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MB個のサンプル値が修正され、MA≠MBであり、特にMA<MB=7のようにMA<MBである、ステップとを含む。例えば、MA=3及びMB=7であり、又はMA=4及びMB=7であり、又はMA=5及びMB=7等である。
【0042】
例えば、N又はTは8より大きな偶数の整数2nであり(例えば、N又はTは16又は32,...を採用する)、M又はLは2より大きな偶数の整数2nであり(例えば、M又はLは4、8、16又は32・・・を採用する)、MはNと異なるか、又はMはNと同じであり、又はLはTと異なるか、又はLはTと同じである。別の例では、N又はTは、16より大きな偶数の整数2nであり(例えば、N又はTは32又は64,...を採用する)、M又はLは2より大きな偶数の整数2nであり(例えば、M又はLは4、8、16又は32・・・を採用する)、MはNと異なるか、又はMはNと同じであり、又はLはTと異なるか、又はLはTと同じであり、M×N(ここで、N>16)は水平エッジに適用され、N×M(ここで、N>16)は垂直エッジに適用される。
【0043】
例えば、第1フィルタ(即ち、より長いタップ・フィルタ、非対称のフィルタ、非対称のタップ・フィルタ)は、ブロック・エッジの一方の側でフィルタ決定のためにDB個のサンプルを使用し、ブロック・エッジの他方の側でフィルタ決定のためにDA個のサンプルを使用するフィルタであり、MB個のサンプルがブロック・エッジ(CUエッジ又はTUエッジ)の一方の側で修正され、MA個のサンプルがブロック・エッジ(CUエッジ又はTUエッジ)の他方の側で修正され、MA≠MBであり、特にMA<MBであり、例えばMA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7である。第1フィルタは、ブロック・エッジ(CUエッジ又はTUエッジ)の何れかの側で異なる数のサンプルを修正する非対称フィルタであってもよい。
【0044】
これは、特に正確で効率的なデブロッキングを許容する。特にこれはブロック・エッジの2つの側を別様に取り扱うことを許容し、従って本方法は、ブロック・エッジとサブ・ブロック・エッジとの間のフィルタリング・オーバーラップを回避することができ、従って、デブロッキングが並列に実行されうることを保証することができる。従って、デブロッキング・フィルタリングの処理時間は著しく短縮される。
【0045】
そのような第6態様による方法の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジは第1コーディング・ブロック内に存在し、サブ・ブロック間のサブ・ブロック・エッジは第2コーディング・ブロック内に存在し(即ち、第1コーディング・ブロックP及び第2コーディング・ブロックQはサブ・ブロックを有する、又は第1コーディング・ブロックP及び第2コーディング・ブロックQはサブ・ブロック・ツールを有する)、
【0046】
本方法は、更に、
第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが、第2フィルタを適用することによってフィルタリングされるべきか否かを決定するステップと、
【0047】
第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが、第2フィルタを適用することによってフィルタリングされるべきであると決定された場合に、ブロック・エッジ近傍のサンプルの値に第2フィルタを適用するステップであって、ブロック・エッジに隣接する第1コーディング・ブロックのMA’個のサンプル値が修正され、ブロック・エッジに隣接する第2コーディング・ブロックのMB’個のサンプル値が修正され、MA’=MB’であり、例えばMA’=MB’=3、又はMA’=MB’=5である、ステップとを含む。
【0048】
そのような第6態様又は第6態様の上記の任意の実装による方法の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロック内に存在しない場合(例えば、第1コーディング・ブロックPがサブ・ブロックを有する一方、第2コーディング・ブロックQはサブ・ブロックを有しない)、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、MA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7である;又は
サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロック内に存在しない場合(例えば、第2コーディング・ブロックQがサブ・ブロックを有する一方、第1コーディング・ブロックPがサブ・ブロックを有しない)、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MB個のサンプル値が修正され、MA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7である。
【0049】
そのような第6態様又は第6態様の上記の任意の実装による方法の可能な実装形式において、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが第1フィルタを適用することによってフィルタリングされるべきか否かは、
- 第1フィルタ判定値として、ブロック・エッジに隣接する、第1コーディング・ブロックの高々DA個のサンプル値、及び
- 第2フィルタ判定値として、ブロック・エッジに隣接する、第2コーディング・ブロックの高々DB個のサンプル値
に基づいて決定される。
【0050】
そのような第6態様又は第6態様の上記の任意の実装による方法の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロックQ内部に存在する場合(例えば、第2コーディング・ブロックQがサブ・ブロックを有する)、以下の第1式:
【数7】
によって規定される第1条件が満たされるか否かが決定され、βは閾値パラメータを示し、q
iは第2コーディング・ブロックQのサンプル値を表し、i=0,1,2,3であり、p
jは第1コーディング・ブロックPのサンプル値を表し、j=0,3,4,7又はj=0,2,3,5である。
【0051】
そのような第6態様又は第6態様の上記の任意の実装による方法の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロックP内部に存在する場合(例えば、第1コーディング・ブロックPがサブ・ブロックを有する)、以下の第2式:
【数8】
によって規定される第2条件が満たされるか否かが決定され、βは閾値パラメータを示し、p
iは第1コーディング・ブロックPのサンプル値を表し、i=0,1,2,3であり、q
jは第2コーディング・ブロックQのサンプル値を表し、j=0,3,4,7又はj=0,2,3,5である。
【0052】
そのような第6態様又は第6態様の上記の任意の実装による方法の可能な実装形式において、閾値パラメータβは、複数のサンプルの量子化ステップ・サイズに関連する量子化パラメータQPに基づいて決定されるか、又は閾値パラメータβは、ルック・アップ・テーブルを使用して、量子化パラメータQPに基づいて決定される。
【0053】
そのような第6態様又は第6態様の上記の任意の実装による方法の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロックP内部には存在せず、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロックQ内部に存在する場合(第1コーディング・ブロックPはサブ・ブロックを有しておらず、第2コーディング・ブロックQはサブ・ブロックを有しているような場合)、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの右又は下に対して、サンプルの現在の行又は列の第1サンプルのフィルタリングされたサンプル値q
0’は、以下の式:
【数9】
に基づいて決定され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0054】
そのような第6態様又は第6態様の上記の任意の実装による方法の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロックP内部には存在せず、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロックQ内部に存在する場合(第1コーディング・ブロックPはサブ・ブロックを有しておらず、第2コーディング・ブロックQはサブ・ブロックを有しているような場合)、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの右又は下に対して、サンプルの現在の行又は列の第2サンプルのフィルタリングされたサンプル値q
1’は、以下の式
【数10】
に基づいて決定され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0055】
そのような第6態様又は第6態様の上記の任意の実装による方法の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロックP内部には存在せず、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロックQ内部に存在する場合(第1コーディング・ブロックPはサブ・ブロックを有しておらず、第2コーディング・ブロックQはサブ・ブロックを有しているような場合)、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの右又は下に対して、サンプルの現在の行又は列の第3サンプルのフィルタリングされたサンプル値q
2’は、以下の式
【数11】
に基づいて決定され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0056】
そのような第6態様又は第6態様の上記の任意の実装による方法の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロックP内部には存在せず、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロックQ内部に存在する場合(第1コーディング・ブロックPはサブ・ブロックを有しておらず、第2コーディング・ブロックQはサブ・ブロックを有しているような場合)、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの左又は上に対して、サンプルの現在の行又は列の対応するサンプルのフィルタリングされたサンプル値p
i’は、以下の式:
【数12】
に基づいて決定され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0057】
そのような第6態様又は第6態様の上記の任意の実装による方法の可能な実装形式において、N及びTが16より大きな偶数の整数2nである場合に、MA=3及びMB=7であり、又はMA=4及びMB=7であり、又はMA=5及びMB=7である。
【0058】
第7態様によれば、本発明は画像符号化及び/又は画像復号化のための、画像の第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジをデブロッキングするデブロッキング方法に関連し、第1コーディング・ブロックPはM*N又はN*Mであるブロック・サイズを有し、第2コーディング・ブロックQはL*T又はT*Lであるブロック・サイズを有し、例えば、N又はTは8より大きな偶数の整数2nであり、特にN又はTは16より大きな偶数の整数2nであり、第1コーディング・ブロック又は第2コーディング・ブロックのサブ・ブロック間にサブ・ブロック・エッジが存在し(即ち、第1コーディング・ブロック又は第2コーディング・ブロックはサブ・ブロックを有する)、本方法は、
第1コーディング・ブロックのサブ・ブロック間にサブ・ブロック・エッジがある場合において(即ち、第1コーディング・ブロックがサブ・ブロックを有し、又は第1コーディング・ブロックがサブ・ブロック・ツールを使用し、ここで、第1コーディング・ブロックが現在のブロックである)、
- 第1フィルタ出力サンプル値として、ブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値を修正するステップ、及び
- 第2フィルタ出力サンプル値として、ブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値を修正するステップ
を含み、MA≠MBであり、特にMA<MB=7のようにMA<MBであり、例えばMA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7等であり、又は
第2コーディング・ブロックのサブ・ブロック間にサブ・ブロック・エッジがある場合において(即ち、第2コーディング・ブロックがサブ・ブロックを有し、又は第2コーディング・ブロックがサブ・ブロック・ツールを使用し、ここで、第2コーディング・ブロックが現在のブロックである)、
- 第1フィルタ出力サンプル値として、ブロック・エッジに隣接する第2コーディング・ブロックの高々MA個のサンプル値を修正するステップ、及び
- 第2フィルタ出力サンプル値として、ブロック・エッジに隣接する第1コーディング・ブロック(902,1302)の高々MB個のサンプル値を修正するステップ(1404)
を含み、MA≠MBであり、特にMA<MB=7のようにMA<MBであり、例えばMA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7等である。
【0059】
これは、特に正確で効率的なデブロッキングを許容する。特にこれはブロック・エッジの2つの側を別様に取り扱うことを許容し、従って本方法は、ブロック・エッジとサブ・ブロック・エッジとの間のフィルタリング・オーバーラップを回避することができ、従って、デブロッキングが並列に実行されうることを保証することができる。従って、デブロッキング・フィルタリングの処理時間は著しく短縮される。
【0060】
第8態様によれば、本発明は、画像符号化及び/又は画像復号化に使用するためのデブロッキング方法に関連し、本方法は:
ブロック間のエッジを決定するステップであって、ブロック間のエッジは、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジと、第1コーディング・ブロックP又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジとを含み、第1コーディング・ブロックPはM×N又はN×Mであるブロック・サイズを有し、第2コーディング・ブロックQはL×T又はT×Lであるブロック・サイズを有する、ステップと、
【0061】
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタ(即ち、より長いタップ・フィルタ、非対称フィルタ、又は非対称タップ・フィルタ、又は非対称のより長いフィルタ)を適用することによってフィルタリングされるべきか否かを決定するステップと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが第1フィルタを適用することによってフィルタリングされるべきでないと決定される場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値に第3フィルタを適用するステップであって、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、MA=MB<7のようにMA=MBであり、例えばMA=MB=4である、ステップとを含む。
【0062】
一例において、N又はTは8より大きな偶数の整数2nであり、特にN又はTは16より大きな偶数の整数2nであり、M又はLは2より大きな偶数の整数2nであり、MはNとは異なるか、又はMはNと同じであり、或いはLはTとは異なるか、又はLはTと同じである。
【0063】
一例において、第1フィルタ(即ち、より長いタップ・フィルタ、非対称のフィルタ、非対称のタップ・フィルタ、又は非対称のロング・フィルタ)は、ブロック・エッジの一方の側でフィルタ決定のためにDB個のサンプルを使用し、ブロック・エッジの他方の側でフィルタ決定のためにDA個のサンプルを使用するフィルタであり、MB個のサンプルがブロック・エッジ(CUエッジ又はTUエッジ)の一方の側で修正され、MA個のサンプルがブロック・エッジ(CUエッジ又はTUエッジ)の他方の側で修正され、MA≠MBであり、特にMA<MB=7のようにMA<MBであり、例えば、MA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7である。
【0064】
一例において、第3フィルタは、ブロック・エッジ(CUエッジ又はTUエッジ)の両側で最大4個のサンプルを修正することが可能なHEVCストロング・フィルタであってもよい。換言すれば、第3フィルタは、ブロック・エッジ(CUエッジ又はTUエッジ)の一方の側で最大4個のサンプルが修正される一方、ブロック・エッジの他方の側(CUエッジ又はTUエッジ)で最大4個のサンプルが修正されるHEVCストロング・フィルタであってもよい。
【0065】
これは、特に正確で効率的なデブロッキングを許容する。
【0066】
第9態様によれば本発明は画像符号化及び/又は画像復号化において使用するためのデブロッキング方法に関連し、本方法は、
ブロック間のエッジを決定するステップであって、ブロック間のエッジは、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジと、第1コーディング・ブロックP又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジとを含み、第1コーディング・ブロックPはM×N又はN×Mであるブロック・サイズを有し、第2コーディング・ブロックQはL×T又はT×Lであるブロック・サイズを有する、ステップと、
第1コーディング・ブロックP又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジはフィルタリングされるべきでないと決定するステップ(例えば、第1コーディング・ブロックP又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジはデブロッキングに関してディセーブルされることを決定する)と、
第4フィルタ(通常のより長いタップ・フィルタ)を、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値に適用するステップであって、ブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、MA=MB=7のようにMA=MBである、ステップとを含む。
【0067】
一例において、N又はTは8より大きな偶数の整数2nであり、特にN又はTは16より大きな偶数の整数2nであり、M又はLは2より大きな偶数の整数2nであり、MはNと異なるか、又はMはNと同じであり、或いはLはTと異なるか、又はTと同じである。
【0068】
一例では、第4フィルタは、ブロック・エッジ(例えば、CUエッジ又はCU境界)の何れかの側で高々7個のサンプルを修正することが可能な通常のより長いタップ・フィルタであってもよい。
【0069】
これは、特に正確で効率的なデブロッキングを許容する。
【0070】
第10態様によれば、本発明は、画像を符号化するための符号化方法に関し、任意の態様又はそのような任意の態様の任意の実装による前述の又は後述するデブロッキング方法を含む。これは、特に正確で効率的な画像の符号化を許容する。
【0071】
第11態様によれば、本発明は、画像を復号化するための復号化方法に関し、任意の態様又はそのような任意の態様の任意の実装による前述の又は後述するデブロッキング方法を含む。これは、特に正確で効率的な画像の符号化を許容する。
【0072】
本発明の第12態様によれば、デブロッキング・フィルタ装置が提供される。デブロッキング・フィルタ装置は、画像エンコーダ及び/又は画像デコーダで使用するように意図されている。デブロッキング・フィルタ装置は、
ブロック間のエッジを決定するように構成されたエッジ位置決めユニットであって、ブロック間のエッジは、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ(例えば、CUエッジ)と、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジ(例えば、サブpuエッジ)とを含み、第1コーディング・ブロックPは、M×N又はN×Mであるブロック・サイズを有し、第2コーディング・ブロックQは、L×T又はT×Lであるブロック・サイズを有し、例えばN又はTは閾値(例えば、8又は16等)よりも大きな偶数の整数2nである、エッジ位置決めユニットと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ、及び第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第1セットはフィルタリングされるべきであり、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第2セットはフィルタリングされるべきではないと決定するように構成されたデブロッキング決定ユニットと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値でデブロッキング・フィルタリングを実行し、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第1セットの各々の近傍のサンプルの値でデブロッキング・フィルタリングを実行するように構成されたデブロッキング・フィルタリング・ユニットとを含む。
【0073】
例えば、デブロッキング決定ユニットは、第1コーディング・ブロックP又は第2コーディング・ブロックQ(内部)のサブ・ブロック間の「第1」サブ・ブロック・エッジはフィルタリングされるべきでないことを決定するように、換言すれば、第1コーディング・ブロックP又は第2コーディング・ブロックQ(内部)のサブ・ブロック間の「第1」サブ・ブロック・エッジは、デブロッキングに関してディセーブルにされることを決定するように構成されることが可能である。
例えば、デブロッキング決定ユニットは、第1コーディング・ブロックP又は第2コーディング・ブロックQ(内部)のサブ・ブロック間の「最後の」サブ・ブロック・エッジはフィルタリングされるべきでないことを決定するように、換言すれば、第1コーディング・ブロックP又は第2コーディング・ブロックQ(内部)のサブ・ブロック間の「最後の」サブ・ブロック・エッジは、デブロッキングに関してディセーブルにされることを決定するように構成されることが可能である。
【0074】
例えば、デブロッキング決定ユニットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQについて16×16グリッドとオーバーラップする全てのサブpuエッジを決定し、それらの内部エッジのみにデブロッキングを適用するように構成されることが可能である。他の内部サブpuエッジはデブロッキングされない。また、より長いタップ・フィルタが、16×16グリッドとオーバーラップする内部サブpuエッジをデブロッキングするために使用されることが可能である一方、より長いタップ・フィルタがCUエッジに適用されることが可能である。
【0075】
そのような第12態様による装置の可能な実装形式において、第1コーディング・ブロック及び/又は第2コーディング・ブロック内部のサブ・ブロック間のサブ・ブロック・エッジの第1セットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間の最初のサブ・ブロック・エッジと最後のサブ・ブロック・エッジとを除く複数のサブ・ブロック・エッジを含み(から構成され)、最初のサブ・ブロック・エッジは、第1コーディング・ブロックP及び第2コーディング・ブロックQのうちの一方に最も近く、最後のサブ・ブロック・エッジは、第1コーディング・ブロックP及び第2コーディング・ブロックQのうちの他方に最も近く、
第1コーディング・ブロック及び/又は第2コーディング・ブロック内部のサブ・ブロック間のサブ・ブロック・エッジの第2セットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間の最初のサブ・ブロック・エッジ及び最後のサブ・ブロック・エッジから構成され、最初のサブ・ブロック・エッジは、第1コーディング・ブロックP及び第2コーディング・ブロックQのうちの一方に最も近く、最後のサブ・ブロック・エッジは、第1コーディング・ブロックP及び第2コーディング・ブロックQのうちの他方に最も近い。
【0076】
そのような第12態様による装置の可能な実装形式において、デブロッキング・フィルタリング・ユニットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値に第5フィルタを適用するように構成され、サブ・ブロック・エッジの第1セット各々の一方の側における高々NA個のサンプル値は、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部で修正され、サブ・ブロック・エッジの第1セット各々の他方の側における高々NB個のサンプル値が修正され、NA、NB=4である。
【0077】
そのような第12態様による装置の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが、第1コーディング・ブロックP内部に存在せず、サブ・ブロック間の複数のサブ・ブロック・エッジが、第2コーディング・ブロックQ内部に存在する場合に、デブロッキング・フィルタリング・ユニットは、HEVCデブロッキング・フィルタリングである第5フィルタが適用されるべきことが決定された場合に、以下の式:
【数13】
に基づいて、第2コーディング・ブロックQ内部の垂直又は水平サブ・ブロック・エッジそれぞれの側におけるサンプルの現在の行又は列の対応するサンプルのフィルタリングされたサンプル値q
i’を決定するように構成され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i=0,1,j=0,1..3である。
【0078】
そのような第12態様による装置の可能な実装形式において、第1コーディング・ブロック及び/又は第2コーディング・ブロック内部のサブ・ブロック間のサブ・ブロック・エッジの第1セットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間の16×16グリッドとオーバーラップする1つ以上のサブ・ブロック・エッジを含み(から構成され)、
第1又は第2コーディング・ブロック内部のサブ・ブロック間のサブ・ブロック・エッジの第2セットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間の16×16グリッドとオーバーラップするサブ・ブロック・エッジを除く1つ以上のサブ・ブロック・エッジを含む(から構成される)。
【0079】
そのような第12態様による装置の可能な実装形式において、デブロッキング・フィルタリング・ユニットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値に第6フィルタを適用するように構成され、サブ・ブロック・エッジの第1セットそれぞれの一方の側における高々NA’個のサンプル値は、第1コーディング・ブロックP又は第2コーディング・ブロックQ内部で修正され、サブ・ブロック・エッジの第1セットそれぞれの他方の側における高々NB’個のサンプル値は修正され、NA’=NB’=7である。NA’及びNB’はブロック・サイズに基づいて決定されてもよいこと、換言すれば、NA’及びNB’はそれぞれのブロックのブロック・サイズに依存することを理解することができる。実装方法において、大きなブロック、即ちブロック・サイズ≧32の場合、修正されたサンプルの最大数は、7(ロング・フィルタに対応する)であってもよい。
【0080】
そのような第12態様による装置の可能な実装形式において、第1コーディング・ブロックP内部にサブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部にサブ・ブロック間の複数のサブ・ブロック・エッジが存在する場合に、デブロッキング・フィルタリング・ユニットは、以下の式:
【数14】
に基づいて、第2コーディング・ブロックQ内部の垂直又は水平のサブ・ブロック・エッジそれぞれの側においてサンプルの現在の行又は列の対応するサンプルのフィルタリングされたサンプル値q
i’を決定するように構成され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0081】
そのような第12態様による装置の可能な実装形式において、第1コーディング・ブロックP内部にサブ・ブロック間の複数のサブ・ブロック・エッジが存在し、第2コーディング・ブロックQ内部にサブ・ブロック間の複数のサブ・ブロック・エッジが存在する場合に、デブロッキング・フィルタリング・ユニットは、以下の式:
【数15】
に基づいて、第2コーディング・ブロックQ及び第1コーディング・ブロックP内部の垂直又は水平のサブ・ブロック・エッジそれぞれの側においてサンプルの現在の行又は列の対応するサンプルのフィルタリングされたサンプル値q
i’及びp
i’を決定するように構成され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0082】
そのような第12態様による装置の可能な実装形式において、デブロッキング決定ユニットは、更に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきか否かを決定するように構成され、及び
デブロッキング・フィルタリング・ユニットは、更に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジは第1フィルタを適用することによってフィルタリングされるべきであると決定された場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値に第1フィルタを適用するように構成され、ライン毎のブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎のブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、又はライン毎のブロック・エッジに隣接する第2コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎のブロック・エッジに隣接する第1コーディング・ブロックの高々MB個のサンプル値が修正され、MA=3及びMB=7である。
【0083】
そのような第12態様による装置の可能な実装形式において、サブ・ブロック間の複数のサブ・ブロック・エッジが第1コーディング・ブロック内部に存在し、サブ・ブロック間の複数のサブ・ブロック・エッジが第2コーディング・ブロック内部に存在する場合に、
【0084】
デブロッキング決定ユニットは、更に、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジは、第2フィルタを適用することによってフィルタリングされるべきであると決定するように構成され、及び
デブロッキング・フィルタリング・ユニットは、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジは、第2フィルタを適用することによってフィルタリングされるべきであると決定された場合に、ブロック・エッジ近傍のサンプルの値に第2フィルタを適用するように更に構成され、ブロック・エッジに隣接する第1コーディング・ブロックのMA’個のサンプル値が修正され、ブロック・エッジに隣接する第2コーディング・ブロックのMB’個のサンプル値が修正され、MA’=3及びMB’=3である。
【0085】
そのような第12態様による装置の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロック内部に存在しない場合、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、又は
サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロック内部に存在しない場合、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MB個のサンプル値が修正され、MA=3及びMB=7である。
【0086】
そのような第12態様による装置の可能な実装形式において、デブロッキング決定ユニットは、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきか否かを、
- 第1フィルタ判定値として、ブロック・エッジに隣接する第1コーディング・ブロックの高々DA個のサンプル値、及び
- 第2フィルタ判定値として、ブロック・エッジに隣接する第2コーディング・ブロックの高々DB個のサンプル値
に基づいて決定するように更に構成される。
【0087】
そのような第12態様による装置の可能な実装形式において、デブロッキング決定ユニットは、サブ・ブロック間の複数のサブ・ブロック・エッジが第2コーディング・ブロックQ内部に存在する場合に、以下の第1式:
【数16】
により規定される第1条件が満たされるか否かを決定するように構成され、βは閾値パラメータを示し、q
iは第2コーディング・ブロックQのサンプル値を表し、i=0,1,2,3であり、p
jは第1コーディング・ブロックPのサンプル値を表し、j=0,3,4,7又はj=0,2,3,5である。
【0088】
そのような第12態様による装置の可能な実装形式において、デブロッキング決定ユニットは、サブ・ブロック間の複数のサブ・ブロック・エッジが第1コーディング・ブロックP内部に存在する場合に、以下の第2式:
【数17】
により規定される第2条件が満たされているか否かを決定するように構成され、βは閾値パラメータを示し、p
iは第1コーディング・ブロックPのサンプル値を表し、i=0,1,2,3であり、q
jは第2コーディング・ブロックQのサンプル値を表し、j=0,3,4,7又はj=0,2,3,5である。
【0089】
そのような第12態様による装置の可能な実装形式において、閾値パラメータβは、複数のサンプルの量子化ステップ・サイズに関連する量子化パラメータQPに基づいて決定される、又は
閾値パラメータβは、ルック・アップ・テーブルを使用して、量子化パラメータQPに基づいて決定される。
【0090】
そのような第12態様による装置の可能な実装形式において、デブロッキング・フィルタリング・ユニットは、第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部に、サブ・ブロック間のサブ・ブロック・エッジが存在する場合に、以下の式:
【数18】
に基づいて、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの右又は下に対して、サンプルの現在の行又は列の第1サンプルのフィルタリングされたサンプル値q
0’を決定するように構成され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0091】
そのような第12態様による装置の可能な実装形式において、デブロッキング・フィルタリング・ユニットは、第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部に、サブ・ブロック間のサブ・ブロック・エッジが存在する場合に、以下の式:
【数19】
に基づいて、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの右又は下に対して、サンプルの現在の行又は列の第2サンプルのフィルタリングされたサンプル値q
1’を決定するように構成され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0092】
そのような第12態様による装置の可能な実装形式において、デブロッキング・フィルタリング・ユニットは、第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部に、サブ・ブロック間のサブ・ブロック・エッジが存在する場合に、以下の式:
【数20】
に基づいて、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの右又は下に対して、サンプルの現在の行又は列の第3サンプルのフィルタリングされたサンプル値q
2’を決定するように構成され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0093】
そのような第12態様による装置の可能な実装形式において、デブロッキング・フィルタリング・ユニットは、第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部に、サブ・ブロック間のサブ・ブロック・エッジが存在する場合に、以下の式:
【数21】
に基づいて、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの左又は上に対して、サンプルの現在の行又は列のサンプルの対応するサンプルのフィルタリングされたサンプル値p
i’を決定するように構成され、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0094】
そのような第12態様による装置の可能な実装形式において、デブロッキング決定ユニットは、更に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきか否かを決定するように構成され、デロッキング・フィルタリング・ユニットは、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきでないと判断された場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値に第3フィルタを適用するように更に構成されており、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、MA=MB=4である。
【0095】
第13態様によれば、本発明は画像符号化及び/又は画像復号化において使用するためのデブロッキング方法に関連し、本方法は、
ブロック間のエッジを決定するステップであって、ブロック間のエッジは、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジと、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジとを含み、第1コーディング・ブロックPは、M×N又はN×Mであるブロック・サイズを有し、第2コーディング・ブロックQは、L×T又はT×Lであるブロック・サイズを有し、例えばN又はTは閾値(例えば、8又は16等)よりも大きな偶数の整数2nである、ステップと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ、及び第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第1セットはフィルタリングされるべきであり、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第2セットはフィルタリングされるべきではないと決定するステップと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値でデブロッキング・フィルタリングを実行し、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第1セットの各々の近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップとを含む。
【0096】
そのような第13態様による方法の可能な実装形式において、第1コーディング・ブロック及び/又は第2コーディング・ブロック内部のサブ・ブロック間のサブ・ブロック・エッジの第1セットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間の最初のサブ・ブロック・エッジと最後のサブ・ブロック・エッジとを除く複数のサブ・ブロック・エッジを含み(から構成され)、最初のサブ・ブロック・エッジは、第1コーディング・ブロックP及び第2コーディング・ブロックQのうちの一方に最も近く、最後のサブ・ブロック・エッジは、第1コーディング・ブロックP及び第2コーディング・ブロックQのうちの他方に最も近く、
第1コーディング・ブロック及び/又は第2コーディング・ブロック内部のサブ・ブロック間のサブ・ブロック・エッジの第2セットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間の最初のサブ・ブロック・エッジ及び最後のサブ・ブロック・エッジから構成され、最初のサブ・ブロック・エッジは、第1コーディング・ブロックP及び第2コーディング・ブロックQのうちの一方に最も近く、最後のサブ・ブロック・エッジは、第1コーディング・ブロックP及び第2コーディング・ブロックQのうちの他方に最も近い。
【0097】
そのような第13態様による方法の可能な実装形式において、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジの第1セットの各々の近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップは、
第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部でサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値に第5フィルタを適用するステップを含み、サブ・ブロック・エッジの第1セット各々の一方の側における高々NA個のサンプル値は、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部で修正され、サブ・ブロック・エッジの第1セット各々の他方の側における高々NB個のサンプル値が修正され、NA=NB=4である。
【0098】
そのような第13態様による方法の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが、第1コーディング・ブロックP内部に存在せず、サブ・ブロック間の複数のサブ・ブロック・エッジが、第2コーディング・ブロックQ内部に存在する場合に、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップは、
HEVCデブロッキング・フィルタリングである第5フィルタが適用されるべきことが決定された場合に、以下の式:
【数22】
に基づいて、第2コーディング・ブロックQ内部の垂直又は水平サブ・ブロック・エッジそれぞれの側におけるサンプルの現在の行又は列の対応するサンプルのフィルタリングされたサンプル値q
i’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i=0,1,j=0,1..3である。
【0099】
そのような第13態様による方法の可能な実装形式において、第1コーディング・ブロック及び/又は第2コーディング・ブロック内部のサブ・ブロック間のサブ・ブロック・エッジの第1セットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間の16×16グリッドとオーバーラップする1つ以上のサブ・ブロック・エッジを含み(から構成され)、
第1又は第2コーディング・ブロック内部のサブ・ブロック間のサブ・ブロック・エッジの第2セットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間の16×16グリッドとオーバーラップするサブ・ブロック・エッジを除く1つ以上のサブ・ブロック・エッジを含む(から構成される)。
【0100】
そのような第13態様による方法の可能な実装形式において、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップは、
第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値に第6フィルタを適用するステップを含み、サブ・ブロック・エッジの第1セットそれぞれの一方の側における高々NA’個のサンプル値は、第1コーディング・ブロックP又は第2コーディング・ブロックQ内部で修正され、サブ・ブロック・エッジの第1セットそれぞれの他方の側における高々NB’個のサンプル値は修正され、NA’=NB’=7である。
【0101】
そのような第13態様による方法の可能な実装形式において、第1コーディング・ブロックP内部にサブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部にサブ・ブロック間の複数のサブ・ブロック・エッジが存在する場合に、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップは、以下の式:
【数23】
に基づいて、第2コーディング・ブロックQ内部の垂直又は水平のサブ・ブロック・エッジそれぞれの側においてサンプルの現在の行又は列の対応するサンプルのフィルタリングされたサンプル値q
i’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0102】
そのような第13態様による方法の可能な実装形式において、第1コーディング・ブロックP内部にサブ・ブロック間の複数のサブ・ブロック・エッジが存在し、第2コーディング・ブロックQ内部にサブ・ブロック間の複数のサブ・ブロック・エッジが存在する場合に、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップは、以下の式:
【数24】
に基づいて、第2コーディング・ブロックQ及び第1コーディング・ブロックP内部の垂直又は水平のサブ・ブロック・エッジそれぞれの側においてサンプルの現在の行又は列の対応するサンプルのフィルタリングされたサンプル値q
i’及びp
i’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0103】
そのような第13態様による方法の可能な実装形式において、本方法は更に、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきか否かを決定するステップと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジは第1フィルタを適用することによってフィルタリングされるべきであると決定された場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値に第1フィルタを適用するステップとを含み、ライン毎のブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎のブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、又はライン毎のブロック・エッジに隣接する第2コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎のブロック・エッジに隣接する第1コーディング・ブロックの高々MB個のサンプル値が修正され、MA=3及びMB=7である。
【0104】
そのような第13態様による方法の可能な実装形式において、サブ・ブロック間の複数のサブ・ブロック・エッジが第1コーディング・ブロック内部に存在し、サブ・ブロック間の複数のサブ・ブロック・エッジが第2コーディング・ブロック内部に存在する場合に、本方法は更に、
第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジは、第2フィルタを適用することによってフィルタリングされるべきであると決定するステップと、
第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジは、第2フィルタを適用することによってフィルタリングされるべきであると決定された場合に、ブロック・エッジ近傍のサンプルの値に第2フィルタを適用するステップとを含み、ブロック・エッジに隣接する第1コーディング・ブロックのMA’個のサンプル値が修正され、ブロック・エッジに隣接する第2コーディング・ブロックのMB’個のサンプル値が修正され、MA’=3及びMB’=3である。
【0105】
そのような第13態様による方法の可能な実装形式において、サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロック内部に存在しない場合、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、又は
サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロック内部に存在しない場合、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MB個のサンプル値が修正され、MA=3及びMB=7である。
【0106】
そのような第13態様による方法の可能な実装形式において、本方法は更に、
第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきか否かを、
- 第1フィルタ判定値として、ブロック・エッジに隣接する第1コーディング・ブロックの高々DA個のサンプル値、DA=4、及び
- 第2フィルタ判定値として、ブロック・エッジに隣接する第2コーディング・ブロックの高々DB個のサンプル値、DB=4
に基づいて決定するステップを含む。
【0107】
そのような第13態様による方法の可能な実装形式において、本方法は更に、サブ・ブロック間の複数のサブ・ブロック・エッジが第2コーディング・ブロックQ内部に存在する場合に、以下の第1式:
【数25】
により規定される第1条件が満たされるか否かを決定するステップを含み、βは閾値パラメータを示し、q
iは第2コーディング・ブロックQのサンプル値を表し、i=0,1,2,3であり、p
jは第1コーディング・ブロックPのサンプル値を表し、j=0,3,4,7又はj=0,2,3,5である。
【0108】
そのような第13態様による方法の可能な実装形式において、本方法は更に、サブ・ブロック間の複数のサブ・ブロック・エッジが第1コーディング・ブロックP内部に存在する場合に、以下の第2式:
【数26】
により規定される第2条件が満たされているか否かを決定するステップを含み、βは閾値パラメータを示し、p
iは第1コーディング・ブロックPのサンプル値を表し、i=0,1,2,3であり、q
jは第2コーディング・ブロックQのサンプル値を表し、j=0,3,4,7又はj=0,2,3,5である。
【0109】
そのような第13態様による方法の可能な実装形式において、閾値パラメータβは、複数のサンプルの量子化ステップ・サイズに関連する量子化パラメータQPに基づいて決定される、又は
閾値パラメータβは、ルック・アップ・テーブルを使用して、量子化パラメータQPに基づいて決定される。
【0110】
そのような第13態様による方法の可能な実装形式において、第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部に、サブ・ブロック間のサブ・ブロック・エッジが存在する場合に、第1コーディング・ブロックP及び第2コーディング・ブロックQの間のブロック・エッジ近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップは、以下の式:
【数27】
に基づいて、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの右又は下に対して、サンプルの現在の行又は列の第1サンプルのフィルタリングされたサンプル値q
0’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0111】
そのような第13態様による方法の可能な実装形式において、第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部に、サブ・ブロック間のサブ・ブロック・エッジが存在する場合に、第1コーディング・ブロックP及び第2コーディング・ブロックQの間のブロック・エッジ近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップは、以下の式:
【数28】
に基づいて、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの右又は下に対して、サンプルの現在の行又は列の第2サンプルのフィルタリングされたサンプル値q
1’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0112】
そのような第13態様による方法の可能な実装形式において、第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部に、サブ・ブロック間のサブ・ブロック・エッジが存在する場合に、第1コーディング・ブロックP及び第2コーディング・ブロックQの間のブロック・エッジ近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップは、以下の式:
【数29】
に基づいて、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの右又は下に対して、サンプルの現在の行又は列の第3サンプルのフィルタリングされたサンプル値q
2’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0113】
そのような第13態様による方法の可能な実装形式において、第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部に、サブ・ブロック間のサブ・ブロック・エッジが存在する場合に、第1コーディング・ブロックP及び第2コーディング・ブロックQの間のブロック・エッジ近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップは、以下の式:
【数30】
に基づいて、第1及び第2サンプル・ブロックの間の垂直又は水平エッジの左又は上に対して、サンプルの現在の行又は列の対応するサンプルのフィルタリングされたサンプル値p
i’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0114】
そのような第13態様による方法の可能な実装形式において、本方法は更に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきか否かを決定するステップと、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきでないと決定された場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値に第3フィルタを適用するステップであって、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、MA=MB=4である、ステップとを含む。
【0115】
本発明の第6又は第7態様による方法は、本発明の第1態様による装置によって実行することが可能である。本発明の第6又は第7態様による方法の更なる特徴及び実装形式は、本発明の第1態様及びその様々な実装形式による装置の機能から直接的に生じる。
【0116】
本発明の第8態様による方法は、本発明の第2態様による装置によって実行することが可能である。本発明の第8態様による方法の更なる特徴及び実装形式は、本発明の第2態様及びその様々な実装形式による装置の機能から直接的に生じる。本発明の第13態様による方法は、本発明の第12態様による装置によって実行することが可能である。本発明の第8態様による方法の更なる特徴及び実装形式は、本発明の第2態様及びその様々な実装形式による装置の機能から直接的に生じる。
【0117】
別の態様によれば、本発明は、ビデオ・ストリームを復号化するための、プロセッサ及びメモリを含む装置に関連する。メモリは、前述したような任意の態様又は前述した任意の態様についての前述した任意の実装によるデブロッキング方法をプロセッサに実行させる命令を記憶している。
【0118】
別の態様によれば、本発明は、ビデオ・ストリームを符号化するための、プロセッサ及びメモリを含む装置に関連する。メモリは、前述したような任意の態様又は前述した任意の態様についての前述した任意の実装によるデブロッキング方法をプロセッサに実行させる命令を記憶している。
【0119】
別の態様によれば、実行されるとビデオ・データをコーディングするように構成される1つ以上のプロセッサを動作させる命令をそこに格納したコンピュータ読み取り可能な記憶媒体が提案される。命令は、前述したような任意の態様又は前述した任意の態様についての前述した任意の実装によるデブロッキング方法を、1つ以上のプロセッサに実行させる。
【0120】
別の態様によれば、コンピュータ・プログラムがコンピュータ上で動作する場合に、前述したような任意の態様又は前述した任意の態様についての前述した任意の実装によるデブロッキング方法を実行するためのプログラム・コードを有するコンピュータ・プログラム製品が提供される。
【0121】
1つ以上の実施形態の詳細は、添付の図面及び以下の説明において記述されている。他の特徴、目的、及び利点は、明細書、図面、及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0122】
以下、本発明の以下の実施形態が、添付の図及び図面を参照して、より詳細に説明される。
【0123】
【
図1】本発明の実施形態を実装するように構成されたビデオ・エンコーダの一例を示すブロック図である。
【0124】
【
図2】本発明の実施形態を実装するように構成されたビデオ・デコーダの例示的な構造を示すブロック図である。
【0125】
【
図3】本発明の実施形態を実施するように構成されたビデオ・コーディング・システムの一例を示すブロック図である。
【0126】
【
図4】コーディング・ブロックQがサブpuツール(一般的にはサブ・ブロック・ツール)を使用する2つの例示的なコーディング・ブロックを示す。
【0127】
【
図5】2つの例示的なコーディング・ブロックと
図10に示される例示的な方法によるフィルタリング中に使用され修正される個々のサンプル値とを示す。
【0128】
【
図6】本発明の実施形態によるデブロッキング・フィルタ装置の第1実施形態を示す。
【0129】
【
図7】より長いタップ・フィルタを使用するものとするか否かを決定する方法を示すフローチャートを示す。
【0130】
【
図8】HEVCストロング・フィルタ条件が満たされるべきか否かを決定する方法を示すフローチャートを示す。
【0131】
【
図9】2つの例示的なコーディング・ブロックと本発明の別の実施形態によるフィルタリング中に使用され修正されるサンプル値とを示す。
【0132】
【
図10】デブロッキング・フィルタリングの効率を高めるための例示的なプロセスを示すフロー図を示す。
【0133】
【
図11A】デブロッキング・フィルタリングの効率を高めるための例示的なプロセスを示すフロー図を示す。
【0134】
【
図11B】デブロッキング・フィルタリングの効率を高めるための例示的なプロセスを示すフロー図を示す。
【0135】
【
図12】デブロッキング・フィルタリングの効率を高めるための例示的なプロセスを示すフロー図を示す。
【0136】
【
図13】例示的な実施形態による
図3からのソース・デバイス310及び宛先デバイス320の一方又は両方として使用され得る装置1300の簡略化されたブロック図を示す。
【0137】
【
図14】ビデオ・コーディングのためのデバイスの概略図を示す。
【0138】
【
図15】16×16グリッド上にあるすべての内部サブpuエッジに如何にしてデブロッキングが適用され得るのかを示す。
【0139】
【
図16】最初及び最後のサブpuエッジを除くすべての内部サブpuエッジに如何にしてHEVCデブロッキングが適用され得るのかを示す。
【0140】
【
図17】コーディング・ブロックがサブpuツールを使用するコーディング・ブロック内部の2つの例示的なサブ・ブロックを示す;
【0141】
【
図18】コーディング・ブロック内部の例示的なサブ・ブロックを示す。コーディング・ブロックはサブpuツールを使用し、これらサブpu各々は別々の動きベクトルを使用する。
【0142】
【
図19】8*8グリッド上のピクチャ・サンプル、水平及び垂直ブロック境界の例を示す。 以下、同一の参照符号は、同一の又は少なくとも機能的に等価な特徴を指す。部分的には、同一の実体を参照する異なる参照符号が、異なる図において使用されている。
【発明を実施するための形態】
【0143】
以下の説明では、本開示の一部を形成し、本発明の実施形態の特定の態様又は本発明の実施形態が使用され得る特定の態様を例示として示す、添付図面に対する参照が行われる。本発明の実施形態は、他の態様で使用されてもよく、図に示されていない構造的又は論理的な変更を含んでもよいことが理解される。従って、以下の詳細な説明は、限定的な意味で捉えられるべきではなく、本発明の範囲は、添付の特許請求の範囲によって規定される。
【0144】
例えば、説明される方法に関連する開示は、方法を実行するように構成された対応するデバイス又はシステムについても当てはまり、その逆もまた当てはまる可能性があることが理解される。例えば、1つ又は複数の特定の方法ステップが説明される場合、対応するデバイスは、たとえそのような1つ以上のユニットが明示的に説明も図中に図示もされていなかったとしても、説明された1つ又は複数の方法ステップを実行するために、1つ又は複数のユニット、例えば機能ユニット(例えば、1つ又は複数のステップを実行する1つのユニット、又は複数のステップのうちの1つ以上を各々が実行する複数のユニット)を含む可能性がある。一方、例えば、1つ又は複数のユニット、例えば機能ユニットに基づいて、特定の装置が記載される場合、対応する方法は、たとえそのような1つ又は複数のステップが明示的に説明も図中に図示もされていなかったとしても、1つ又は複数のユニットの機能を実行するために1つのステップ(例えば、1つ又は複数のユニットの機能を実行する1つのステップ、又は複数のユニットのうちの1つ以上の機能をそれぞれが実行する複数のステップ)を含む可能性がある。更に、本願で説明される種々の例示的な実施形態及び/又は態様の特徴は、特に断らない限り、互いに組み合わせられる可能性があることが理解される。
【0145】
ビデオ・コーディングは、典型的には、ビデオ又はビデオ・シーケンスを形成する一連のピクチャの処理を指す。ピクチャという用語ではなく、フレーム又は画像という用語が、ビデオ・コーディングの分野では同義語として使用されてもよい。ビデオ・コーディングは、ビデオ符号化及びビデオ復号化の2つの部分を含む。ビデオ符号化は、ソース側で実行され、典型的には、(より効率的な記憶及び/又は伝送のために)ビデオ・ピクチャを表現するために必要とされるデータ量を減少させるために、オリジナル・ビデオ・ピクチャを(例えば、圧縮により)処理することを含む。ビデオ復号化は、宛先側で実行され、典型的には、ビデオ・ピクチャを再構成するために、エンコーダと比較した場合の逆処理を含む。ビデオ・ピクチャ(又は後述するように一般的にはピクチャ)の「コーディング」に関連する実施形態は、ビデオ・ピクチャの「符号化」及び「復号化」の両方に関連するように理解されるものとする。符号化部と復号化部の組み合わせは、CODEC(符号化及び復号化)とも呼ばれる。
【0146】
ロスレス・ビデオ・コーディングの場合、オリジナル・ビデオ・ピクチャが再構成されることが可能であり、即ち、再構成されたビデオ画像は、オリジナル・ビデオ・ピクチャと同じ品質を有する(記憶又は伝送の間の伝送損失又はその他のデータ損失は無いことを仮定している)。ロスレスでないビデオ・コーディングの場合、デコーダで完全に再構成することができないビデオ・ピクチャを表すデータ量を減らすために、例えば量子化による更なる圧縮が実行され、即ち、再構成されたビデオ・ピクチャの品質は、オリジナル・ビデオ・ピクチャの品質よりも低いか又は劣化している。
【0147】
H.261以降の幾つかのビデオ・コーディング規格は「ロスレスでないハイブリッド・ビデオ・コーデック」のグループに属する(即ち、サンプル・ドメインにおける空間的及び時間的予測と、変換ドメインにおける量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオ・シーケンスの各ピクチャは、典型的には、重複しないブロックのセットに区分され、コーディングは典型的にはブロック・レベルで実行される。換言すれば、エンコーダにおいて、ビデオは、典型的には、ブロック(ビデオ・ブロック)レベルで、例えば、空間(イントラ・ピクチャ)予測及び時間(インター・ピクチャ)予測を用いて予測ブロックを生成すること、現在のブロック(現在処理されている/処理されるべきブロック)から予測ブロックを減算して残差ブロックを取得すること、残差ブロックを変換すること、及び伝送されるべきデータ量を減少(圧縮)させるために、変換ドメインにおける残差ブロックを量子化することにより、処理される、即ち符号化される一方、デコーダでは、表現用の現在のブロックを再構成するために、エンコーダと比較して逆の処理が、符号化された又は圧縮されたブロックに適用される。更に、エンコーダはデコーダ処理ループを複製し、その結果、両者が同一の予測(例えば、イントラ及びインター予測)、及び/又は後続のブロックを処理、即ちコーディングするための再構成を生成する。
【0148】
ビデオ・ピクチャ処理(動画処理とも言及される)及び静止画処理(この処理という用語はコーディングを含む)は、多くの概念及び技術又はツールを共有するものので、以下、「ピクチャ」という用語は、ビデオ・シーケンスのビデオ・ピクチャ(上述したようなもの)及び/又は静止画を指すために使用され、不要な反復と、必要でなければビデオ・ピクチャ及び静止画の区別とを回避する。説明が静止ピクチャ(又は静止画像)のみを指す場合には、「静止画」という用語が使用されるものとする。
【0149】
エンコーダ100の以下の実施形態では、
図4~14に基づいて本発明の実施形態をより詳細に説明する前に、
図1~
図3に基づいてデコーダ200及びコーディング・システム300が説明される。
【0150】
図3は、コーディング・システム300、例えばピクチャ・コーディング・システム300の実施形態を示す概念的又は概略的なブロック図であり、コーディング・システム300は、符号化されたデータ330、例えば符号化されたピクチャ330を、例えば符号化されたデータ330を復号するための宛先デバイス320へ提供するように構成されたソース・デバイス310を含む。
【0151】
ソース・デバイス310は、エンコーダ100又は符号化ユニット100を含み、更にオプションとして、ピクチャ・ソース312、前処理ユニット314、例えばピクチャ前処理ユニット314、及び通信インターフェース又は通信ユニット318を含んでもよい。
【0152】
ピクチャ・ソース312は、例えば現実世界のピクチャを捕捉するための任意の種類のピクチャ捕捉デバイス、及び/又は、例えばコンピュータ・アニメーション・ピクチャを生成するためのコンピュータ・グラフィックス・プロセッサのような任意の種類のピクチャ生成デバイス、又は、現実世界のピクチャ、コンピュータ・アニメーション・ピクチャ(例えば、スクリーン・コンテンツ、バーチャル・リアリティ(VR)ピクチャ)及び/又はそれらの任意の組み合わせ(例えば、拡張リアリティ(AR)ピクチャ)を取得及び/又は提供する任意の種類のデバイス、を含んでもよいし又はそれらであってもよい。以下では、これらすべての種類のピクチャ及び他の任意の種類のピクチャは、特に断らない限り、「ピクチャ」又は「画像」として言及されるが、「ビデオ・ピクチャ」及び「静止ピクチャ」をカバーする「ピクチャ」という用語に関する前述の説明は、明示的に別意に特定されない限り、依然として正しい。
【0153】
(デジタル)ピクチャは、強度値を有するサンプルの2次元アレイ又はマトリクスであるか、又はそれらとして考えることが可能である。アレイ中のサンプルは、ピクセル(ピクチャの要素の短い形式)又はペルと言及されてもよい。アレイ又はピクチャの水平及び垂直方向(又は軸)におけるサンプル数は、ピクチャのサイズ及び/又は解像度を規定する。色の表現については、典型的には、3つの色成分が使用され、即ち、ピクチャは、3つのサンプル・アレイで表現されるか、又はそれを含む可能性がある。RGBフォーマット又は色空間では、ピクチャは対応する赤、緑、及び青のサンプル・アレイを含む。しかしながら、ビデオ・コーディングにおいては、各ピクセルは、典型的には、輝度/色度フォーマット又は色空間、例えば、Yで示される輝度成分(しばしば、Lが代わりに使用される)と、Cb及びCrで示される2つの色度成分とを含むYCbCrで表現される。輝度(又は略称ルマ)成分Yは、輝度又はグレー・レベル強度(例えば、グレー・スケール・ピクチャなど)を表す一方、2つの色度(又は略称クロマ)成分Cb及びCrは、色度又は色情報成分を表す。従って、YCbCrフォーマットのピクチャは、輝度サンプル値(Y)の輝度サンプル・アレイと、色度値(Cb及びCr)の2つの色度サンプル・アレイとを含む。RGBフォーマットのピクチャはYCbCrフォーマットにコンバート又は変換されることが可能であり、その逆も可能であり、そのプロセスは色変換又はコンバージョンとしても知られている。ピクチャがモノクロである場合、ピクチャは輝度サンプル・アレイのみを含むことが可能である。
【0154】
ピクチャ・ソース312は、例えばピクチャを捕捉するためのカメラ、例えばピクチャ・メモリのようなメモリであって、以前に捕捉もしくは生成されたピクチャを含む又は記憶するメモリ、及び/又はピクチャを取得もしくは受信するための任意の種類のインターフェース(内部又は外部)であってもよい。カメラは、例えば、ソース・デバイスに一体化されたローカルな又は一体化カメラであってもよく、メモリは、ローカルな又は集積メモリ、例えばソース・デバイスに一体化されたものであってもよい。インターフェースは、例えば外部ビデオ・ソースからピクチャを受信するための外部インターフェース、例えばカメラ、外部メモリ、又は外部ピクチャ生成装置、例えば外部コンピュータ・グラフィックス・プロセッサ、コンピュータ又はサーバーのような外部ピクチャ捕捉デバイスであってもよい。インターフェースは、任意のプロプライエタリ又は標準化されたインターフェース・プロトコルに従う、任意の種類のインターフェース、例えば有線又は無線インターフェース、光インターフェースであってもよい。ピクチャ・データ312を得るためのインターフェースは、通信インターフェース318と同じインターフェース又はその一部であってもよい。
【0155】
前処理ユニット314と前処理ユニット314により実行される処理とを区別して、ピクチャ又はピクチャ・データ313は、rawピクチャ又はrawピクチャ・データ313と言及されてもよい。
【0156】
前処理ユニット314は、(raw)ピクチャ・データ313を受信し、ピクチャ・データ313に対して前処理を実行し、前処理されたピクチャ315又は前処理されたピクチャ・データ315を取得するように構成される。前処理ユニット314によって実行される前処理は、例えば、トリミング、色フォーマット変換(例えば、RGBからYCbCrへ)、色補正、又はノイズ除去を含んでもよい。
【0157】
エンコーダ100は、前処理されたピクチャ・データ315を受信し、符号化されたピクチャ・データ171を提供するように構成される(例えば、
図1に基づいて、更なる詳細が説明される)。
【0158】
ソース・デバイス310の通信インターフェース318は、符号化されたピクチャ・データ171を受信し、記憶又は直接な再構成のために、それを別のデバイス、例えば宛先デバイス320又は任意の他のデバイスへ送信し、又は符号化されたピクチャ・データ171それぞれを処理した後に、符号化されたデータ330を記憶し、及び/又は符号化されたデータ330を別のデバイス、例えば宛先デバイス320又は他の任意のデバイスへ、復号化又は記憶のために送信するように構成されることが可能である。
【0159】
宛先デバイス320は、デコーダ200又は復号化ユニット200を含み、更に即ちオプションとして、通信インターフェース又は通信ユニット322、ポスト・プロセッサ326、及び表示デバイス328を含んでもよい。
【0160】
宛先デバイス320の通信インターフェース322は、符号化されたピクチャ・データ171又は符号化されたデータ330を、例えばソース・デバイス310から直接的に、又は他の任意のソース、例えばメモリ、例えば符号化されたピクチャ・データのメモリから受信するように構成される。
【0161】
通信インターフェース318及び通信インターフェース322は、ソース・デバイス310と宛先デバイス320との間の直接的な通信リンク、例えば直接的な有線もしくは無線接続を介して、又は任意の種類のネットワーク、例えば有線もしくは無線ネットワークもしくはそれらの任意の組み合わせ、又は任意の種類の私的及び公的ネットワークもしくはそれらの任意の種類の組み合わせを介して、符号化されたピクチャ・データ171又は符号化されたデータ330をそれぞれ送信、受信するように構成されてもよい。
【0162】
通信インターフェース318は、例えば符号化されたピクチャ・データ171を、通信リンク又は通信ネットワークを介して伝送するために、適切なフォーマット、例えばパケットにパッケージするように構成されることが可能であり、更に、データ損失プロテクション及びデータ損失リカバリを含むことが可能である。
【0163】
通信インターフェース318の対応物を形成する通信インターフェース322は、例えば符号化されたピクチャ・データ171を得るために、符号化されたデータ330を非パッケージ化するように構成されることが可能であり、更に、例えば、誤り隠蔽を含むデータ損失プロテクション及びデータ損失リカバリを実行するように構成されることが可能である。
【0164】
通信インターフェース318及び通信インターフェース322の両方は、ソース・デバイス310から宛先デバイス320を指している
図3の符号化されたピクチャ・データ330の矢印によって示されるように、一方向通信インターフェースとして、又は双方向通信インターフェースとして構成されることが可能であり、また、例えばメッセージを送信及び受信するために、例えば接続を設定するために、ピクチャ・データを含む欠落又は遅延データを確認及び/又は再送し、及び、通信リンク及び/又はデータ伝送、例えば符号化されたピクチャ・データ伝送に関連する他の任意の情報を交換するように構成されることが可能である。
【0165】
デコーダ200は、符号化されたピクチャ・データ171を受信し、復号化されたピクチャ・データ231又は復号化されたピクチャ231を提供するように構成される(例えば、
図2に基づいて、更なる詳細が説明される)。
【0166】
宛先デバイス320の後処理プロセッサ326は、復号化されたピクチャ・データ231、例えば復号化されたピクチャ231を後処理して、後処理されたピクチャ・データ327、例えば後処理されたピクチャ327を取得するように構成される。後処理ユニット326によって実行される後処理は、例えば、色フォーマット変換(例えば、YCbCrからRGBへ)、色補正、トリミング、再サンプリング、又は他の処理を、例えばディスプレイ・デバイス328による表示のために復号化されたピクチャ・データ231を準備するために、含んでもよい。
【0167】
宛先デバイス320のディスプレイ・デバイス328は、ピクチャを表示するために、例えばユーザー又はビューアに対して、後処理されたピクチャ・データ327を受信するように構成される。ディスプレイ・デバイス328は、再構成されたピクチャを表現するための任意の種類のディスプレイ、例えば、一体化された又は外部のディスプレイ又はモニタであってもよいし、或いはそれらを含んでもよい。ディスプレイは、例えば、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマ・ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は任意の他の種類のディスプレイ・・・ビーマー、ホログラム(3D)・・・を含んでもよい。
【0168】
図3は、ソース・デバイス310及び宛先デバイス320を別個のデバイスとして描いているが、デバイスの実施形態は、両方又は両方の機能、ソース・デバイス310又は対応する機能、及び宛先デバイス320又は対応する機能を含んでもよい。そのような実施形態では、ソース・デバイス310又は対応する機能及び宛先デバイス320又は対応する機能は、同じハードウェア及び/又はソフトウェアを使用して、又は別個のハードウェア及び/又はソフトウェアを使用して、又はそれらの任意の組み合わせによって実装されてもよい。
【0169】
説明に基づいて当業者に明らかなように、
図3に示されるように、ソース・デバイス310及び/又は宛先デバイス320内の様々なユニット又は機能の存在及び(厳密な)分割は、実際のデバイス及びアプリケーションに依存して変化し得る。
【0170】
従って、
図3に示すソース・デバイス310及び宛先デバイス320は、本発明の例示的な実施形態であるに過ぎず、本発明の実施形態は、
図3に示されるものに限定されない。
【0171】
ソース・デバイス310及び宛先デバイス320は、任意の種類の携帯用又は据え付け用のデバイス、例えばノートブック又はラップトップ・コンピュータ、携帯電話、スマートフォン、タブレット又はタブレット・コンピュータ、カメラ、デスクトップ・コンピュータ、セット・トップ・ボックス、テレビ、ディスプレイ・デバイス、デジタル・メディア・プレーヤ、ビデオ・ゲーム・コンソール、ビデオ・ストリーミング・デバイス、ブロードキャスト受信デバイス等を(大規模な専門的な符号化/復号化のためのサーバー及びワーク・ステーション、例えばネットワーク・エンティティをも)含む任意の広範囲に及ぶデバイスを含む可能性があり、任意の種類のオペレーティング・システムを使用する可能性があり、あるいは全く使用しない可能性もある。
【0172】
図1は、例えばピクチャ・エンコーダ100のようなエンコーダ100の実施形態の概略的/概念的なブロック図であり、入力102、残差計算ユニット104、変換ユニット106、量子化ユニット108、逆量子化ユニット110、逆変換ユニット112、再構成ユニット114、バッファ118、ループ・フィルタ120、復号化ピクチャ・バッファ(DPB)130、予測ユニット160[インター推定ユニット142、インター予測ユニット144、イントラ推定ユニット152、イントラ予測ユニット154、モード選択ユニット]、エントロピー符号化ユニット170、及び出力172を含む。
図1に示すようなビデオ・エンコーダ100は、ハイブリッド・ビデオ・エンコーダ又はハイブリッド・ビデオ・コーデックによるビデオ・エンコーダとも呼ばれてもよい。
【0173】
例えば、残差計算ユニット104、変換ユニット106、量子化ユニット108、エントロピー符号化ユニット170は、エンコーダ100の順方向信号経路を形成するが、例えば、逆量子化ユニット110、逆変換ユニット112、再構成ユニット114、バッファ118、ループ・フィルタ120、復号化ピクチャ・バッファ(DPB)130、インター予測ユニット144、イントラ予測ユニット154は、エンコーダの逆方向信号経路を形成し、エンコーダの逆方向信号経路はデコーダの信号経路に対応する(
図2のデコーダ200参照)。
【0174】
エンコーダは、例えば入力102、ピクチャ101、又はピクチャ101のピクチャ・ブロック103、例えばビデオ又はビデオ・シーケンスを形成する一連のピクチャのうちのピクチャを受信するように構成される。ピクチャ・ブロック103は、現在のピクチャ・ブロック又はコーディングされるべきピクチャ・ブロックとも呼ばれ、ピクチャ101は、現在のピクチャ又はコーディングされるべきピクチャと呼ばれる(特に、ビデオ・コーディングでは、現在のピクチャを、他のピクチャ、例えば同じビデオ・シーケンス、即ち現在のピクチャも含むビデオ・シーケンスの、以前に符号化された及び/又は復号化されたピクチャと区別する)。
【0175】
エンコーダ100の実施形態は、例えばピクチャ103を複数のブロックに、例えばブロック103のようなブロックを典型的には複数の重複しないブロックに分割するように構成された、ピクチャ分割ユニットとも言及されうる分割ユニット(
図1には示されていない)を含んでもよい。分割ユニットは、ビデオ・シーケンス及びブロック・サイズを規定する対応するグリッドのすべてのピクチャに対して同じブロック・サイズを使用するように、又はピクチャ間、サブセット間、又はピクチャのグループ間でブロック・サイズを変更し、各ピクチャを対応するブロックに分割するように構成されてもよい。
【0176】
ピクチャ101と同様に、ブロック103は再び、ピクチャ101よりも小さな寸法ではあるが、強度値(サンプル値)を有するサンプルの2次元アレイ又はマトリクスであるか、又はそれらとして考えることが可能である。換言すれば、ブロック103は、例えば、1つのサンプル・アレイ(例えば、モノクロ・ピクチャ101の場合のルマ・アレイ)又は3つのサンプル・アレイ(例えば、カラー・ピクチャ101の場合のルマ及び2つのクロマ・アレイ)、又は適用されるカラー・フォーマットに依存する他の任意の数及び/又は種類のアレイを含んでもよい。ブロック103の水平及び垂直方向(又は軸)のサンプル数は、ブロック103のサイズを規定する。
【0177】
図1に示されるように、エンコーダ100は、ブロック毎にピクチャ101を符号化するように構成され、例えば、符号化及び予測はブロック103ごとに実行される。
【0178】
残差計算ユニット104は、例えばピクチャ・ブロック103のサンプル値から予測ブロック165のサンプル値を差し引くことにより、ピクチャ・ブロック103及び予測ブロック165(予測ブロック165についての更なる詳細は後述する)に基づいて残差ブロック105を、サンプル毎に(ピクセル毎に)算出し、サンプル・ドメインにおける残差ブロック105を取得するように構成される。
【0179】
変換ユニット106は、変換、例えば空間周波数変換又は線形空間変換、例えば離散コサイン変換(DCT)又は離散正弦変換(DST)を、残差ブロック105のサンプル値に適用して、変換ドメインにおける変換係数107を取得するように構成される。また、変換された係数107は、変換された残差係数と呼ばれ、変換ドメインにおける残差ブロック105を表すことが可能である。
【0180】
変換ユニット106は、HEVC/H.265用に指定されたコア変換などのDCT/DSTの整数近似を適用するように構成されてもよい。直交DCT変換と比較して、このような整数近似は、典型的には、あるファクタによってスケーリングされる。順及び逆変換によって処理される残差ブロックのノルムを保つために、付加的なスケーリング・ファクタが変換プロセスの一部として適用される。スケーリング・ファクタは、典型的には、シフト演算のために2のべき乗であるスケーリング・ファクタ、変換係数のビット深度、精度と実装コストとの間のトレードオフ等のような特定の制約に基づいて選択される。特定のスケーリング・ファクタは、逆変換のために、例えばデコーダ200における逆変換ユニット212(及び、例えばエンコーダ100における逆変換ユニット112による対応する逆変換)によって指定され、例えばエンコーダ100における変換ユニット106による順変換のために、対応するスケーリング・ファクタが相応して指定されてもよい。
【0181】
量子化ユニット108は、例えばスカラー量子化又はベクトル量子化を適用することによって、量子化係数109を得るために、変換された係数107を量子化するように構成される。量子化された係数109は、量子化された残差係数109とも呼ばれる。例えば、スカラー量子化の場合、より細かい又はより粗い量子化を達成するために、異なるスケーリングが適用される可能性がある。より小さな量子化ステップ・サイズは、より微細な量子化に対応し、より大きな量子化ステップ・サイズは、より粗い量子化に対応する。適用可能な量子化ステップ・サイズは、量子化パラメータ(QP)によって示されてもよい。量子化パラメータは、例えば、適用可能な量子化ステップ・サイズの所定のセットに対するインデックスであってもよい。例えば、小さな量子化パラメータは、微細な量子化(小さな量子化ステップ・サイズ)に対応する可能性があり、大きな量子化パラメータは、粗い量子化(大きな量子化ステップ・サイズ)に対応する可能性があり、又はその逆もありうる。量子化は、量子化ステップ・サイズによる除算を含む可能性があり、例えば逆量子化ユニット110による対応する逆の非量子化は、量子化ステップ・サイズによる乗算を含む可能性がある。
【0182】
HEVCによる実施形態は、量子化ステップ・サイズを決定するために量子化パラメータを使用するように構成されてもよい。一般に、量子化ステップ・サイズは、除算を含む数式の固定小数点近似を使用して量子化パラメータに基づいて計算されてもよい。量子化ステップ・サイズ及び量子化パラメータの数式の固定小数点近似で使用されるスケーリングに起因して修正される可能性がある残差ブロックのノルムを復元するために、量子化及び非量子化のために追加のスケーリング・ファクタが導入されてもよい。一実装例では、逆変換及び非量子化のスケーリングが組み合わせられてもよい。代替的に、カスタマイズされた量子化テーブルが使用され、エンコーダからデコーダへ、例えばビット・ストリームでシグナリングされてもよい。量子化は、ロスレスでないオペレーションであり、量子化ステップ・サイズの増加に伴って損失が増加する。
【0183】
エンコーダ100の(又は量子化ユニット108のそれぞれの)実施形態は、例えば対応する量子化パラメータによって、量子化方式及び量子化ステップ・サイズを出力するように構成されてもよく、その結果、デコーダ200は、対応する逆量子化を受信及び適用してもよい。エンコーダ100(又は量子化ユニット108)の実施形態は、例えば、直接的に、又はエントロピー符号化ユニット170又は任意の他のエントロピーコーディング・ユニットを介して、エントロピー符号化されて、量子化方式及び量子化ステップ・サイズを出力するように構成されてもよい。
【0184】
逆量子化ユニット110は、量子化係数に量子化ユニット108の逆量子化を適用して、例えば量子化ユニット108と同じ量子化ステップ・サイズに基づいて又はそれと同じものを使用して、量子化ユニット108によって適用される量子化方式の逆を適用することによって、非量子化係数111を得るように構成される。また、非量子化係数111は、非量子化残差係数111と呼ばれ、典型的には、量子化による損失に起因して変換係数と同一ではないが、変換係数108に対応する。
【0185】
逆変換ユニット112は、変換ユニット106によって適用される変換の逆変換、例えば、逆離散コサイン変換(DCT)又は逆離散サイン変換(DST)を適用して、サンプル・ドメインにおける逆変換ブロック113を得るように構成される。逆変換ブロック113は、逆変換された非量子化ブロック113又は逆変換された残差ブロック113とも呼ばれる。
【0186】
再構成ユニット114は、逆変換ブロック113と予測ブロック165とを結合して、例えば、復号化された残差ブロック113のサンプル値と予測ブロック165のサンプル値とをサンプルごとに加算することによって、サンプル・ドメインにおける再構成されたブロック115を得るように構成される。
【0187】
バッファ・ユニット116(又は略称「バッファ」116)、例えばライン・バッファ116は、例えばイントラ推定及び/又はイントラ予測のために、再構成ブロック及びそれぞれのサンプル値をバッファリング又は格納するように構成される。更なる実施形態では、エンコーダは、任意の種類の推定及び/又は予測のために、未だフィルタリングされていない再構成ブロック及び/又はバッファ・ユニット116に格納されたそれぞれのサンプル値を使用するように構成されてもよい。
【0188】
エンコーダ100の実施形態は、例えばバッファ・ユニット116がイントラ推定152及び/又はイントラ予測154のために再構成ブロック115を記憶するために使用されるだけでなく、ループ・フィルタ・ユニット120(
図1には示されていない)に対しても使用されるように、及び/又は、例えばバッファ・ユニット116及び復号化ピクチャ・バッファ130が1つのバッファを形成するように、構成されてもよい。更なる実施形態は、フィルタリングされたブロック121及び/又は復号化ピクチャ・バッファ130(両方とも
図1には示されていない)からのブロック又はサンプルを、イントラ推定152及び/又はイントラ予測154のための入力又は基礎として使用するように構成されてもよい。
【0189】
ループ・フィルタ・ユニット120(又は略称「ループ・フィルタ」120)は、再構成ブロック115をフィルタリングして、フィルタリングされたブロック121を、例えばデブロッキング・サンプル適応オフセット(SAO)フィルタ又はその他のフィルタ、例えば鮮鋭化又は平滑化フィルタ又は協調フィルタを適用することによって、取得するように構成される。フィルタリングされたブロック121は、フィルタリングされた再構成ブロック121とも呼ばれる。以下、ループ・フィルタ120は、デブロッキング・フィルタとも呼ばれる。ループ・フィルタ・ユニット120の更なる詳細は、例えば、
図6又は7又は
図10ないし
図12に基づいて、以下において説明される。
【0190】
ループ・フィルタ・ユニット120の実施形態は、フィルタ分析ユニット及び実際のフィルタ・ユニットを含んでもよく(
図1には示されていない)、フィルタ分析ユニットは、実際のフィルタに対するループ・フィルタ・パラメータを決定するように構成される。フィルタ分析ユニットは、固定された予め決定されたフィルタ・パラメータを実際のループ・フィルタに適用し、所定のフィルタ・パラメータのセットからフィルタ・パラメータを適応的に選択し、又は実際のループ・フィルタに対するフィルタ・パラメータを適応的に計算するように構成されてもよい。
【0191】
ループ・フィルタ・ユニット120の実施形態は、1つ又は複数のフィルタ(ループ・フィルタ・コンポーネント/サブフィルタ)、例えば、直列に、又は並列に、又はそれらの任意の組み合わせで接続された1つ以上の異なる種類又はタイプのフィルタを含んでもよく(
図1には示されていない)、各フィルタは、個別に、又は複数のフィルタのうちの他のフィルタと一緒に、例えば前述のパラグラフで説明したように、それぞれのループ・フィルタ・パラメータを決定するためのフィルタ分析ユニットを含んでもよい。
【0192】
エンコーダ100(ループ・フィルタ・ユニット120それぞれ)の実施形態は、例えば、直接的に、又はエントロピー符号化ユニット170又は任意の他のエントロピーコーディング・ユニットを介して、エントロピー符号化されたループ・フィルタ・パラメータを出力するように構成されることが可能であり、その結果、例えばデコーダ200は復号化のために同じループ・フィルタ・パラメータを受信して適用することができる。
【0193】
復号化ピクチャ・バッファ(DPB)130は、フィルタリングされたブロック121を受信して格納するように構成される。復号化ピクチャ・バッファ130は、更に、同じ現在のピクチャ又は異なるピクチャ、例えば以前に再構成されたピクチャの、以前にフィルタリングされた他のブロック、例えば以前に再構成されフィルタリングされたブロック121を格納するように構成されてもよく、例えばインター推定及び/又はインター予測のために、以前に完全に再構成された、即ち復号化されたピクチャ(及び、対応するリファレンス・ブロック及びサンプル)及び/又は部分的に再構成された現在のピクチャ(及び対応するリファレンス・ブロック及びサンプル)を提供してもよい。
【0194】
本発明の更なる実施形態は、例えばイントラ及びインター推定及び予測のような任意の種類の推定又は予測のために、復号化ピクチャ・バッファ130の以前にフィルタリングされたブロック及び対応するフィルタされたサンプル値を使用するように構成されてもよい。
【0195】
ブロック予測ユニット160とも呼ばれる予測ユニット160は、ピクチャ・ブロック103(現在のピクチャ101の現在のピクチャ・ブロック103)、例えばバッファ116からの同じ(現在の)ピクチャのリファレンス・サンプルのような復号化された又は少なくとも再構成されたピクチャ・データ、及び/又は、復号化ピクチャ・バッファ130からの1つ又は複数の以前に復号化されたピクチャからの復号化されたピクチャ・データ231を受信又は取得し、予測のためにそのようなデータを処理するように、即ち、インター予測ブロック145又はイントラ予測ブロック155である可能性がある予測ブロック165を提供するように構成される。
【0196】
モード選択ユニット162は、予測モード(例えば、イントラ又はインター予測モード)、及び/又は予測ブロック165として使用されるべき対応する予測ブロック145又は155を、残差ブロック105の計算のために及び再構成ブロック115の再構成のために選択するように構成されることが可能である。
【0197】
モード選択部162の実施形態は、予測モードを(例えば、予測ユニット160によってサポートされるものの中から)選択するように構成されてもよく、その予測モードは、最良の一致、あるいは換言すれば、最小の残差(最小の残差は、伝送又は記憶に対するより良い圧縮を意味する)、又は最小のシグナリング・オーバーヘッド(最小のシグナリング・オーバーヘッドは、伝送又は記憶に対するより良い圧縮を意味する)、又は、両方を考慮する又はバランスさせる。モード選択ユニット162は、レート歪み最適化(RDO)に基づいて予測モードを決定するように、即ち、最小レート歪み最適化を提供する予測モード、又は少なくとも、関連するレート歪みが予測モード選択基準を満たす予測モードを選択するように構成されることが可能である。
【0198】
以下、例示のエンコーダ100によって実行される予測処理(例えば、予測ユニット160及びモード選択(モード選択ユニット162による))が、より詳細に説明される。
【0199】
上述したように、エンコーダ100は、(予め決定された)予測モードのセットから最良の又は最適な予測モードを決定又は選択するように構成される。予測モードのセットは、例えばイントラ予測モード及び/又はインター予測モードを含んでもよい
【0200】
一組のイントラ予測モードは、例えばH.264で規定されているような、32個の異なるイントラ予測モード、例えばDC(又は平均)モード及び平面モードのような非方向性モード、又は方向性モードを含んでもよいし、又は、例えばH.265で規定されているような、65個の異なるイントラ予測モード、例えばDC(又は平均)モード及び平面モードのような非方向性モード、又は方向性モードを含んでもよい。
【0201】
一組の(又は可能な)インター予測モードは、利用可能なリファレンス・ピクチャ(即ち、DBP230に格納された少なくとも部分的に復号化された以前のピクチャ)及び他のインター予測パラメータ、例えばリファレンス・ピクチャの全体、又はリファレンス・ピクチャの一部のみ、例えば現在のブロックのエリア周辺のサーチ・ウィンドウ・エリアが、最良のマッチング・リファレンス・ブロックをサーチするために使用されるかどうか、及び/又は、例えばピクセル補間が適用されるかどうか、例えばハーフ/セミ・ペル、及び/又はクォーター・ペル補間が適用されるかどうか、に依存する。
【0202】
上記の予測モードに加えて、スキップ・モード及び/又は直接モードが適用されてもよい。
【0203】
更に、予測ユニット160は、ブロック103を、より小さなブロック・パーティション又はサブ・ブロックに、例えば四分木分割(QT)、二分木分割(BT)、三分木分割(TT)、又はこれらの任意の組み合わせを反復的に利用して分割し、例えばブロック・パーティション又はサブ・ブロックの各々について予測を実行するように構成されてもよく、モード選択は、分割されたブロック103のツリー構造の選択と、ブロック・パーティション又はサブ・ブロックの各々に適用される予測モードとを含む。
【0204】
インター・ピクチャ推定ユニット142とも呼ばれるインター推定ユニット142は、ピクチャ・ブロック103(現在のピクチャ101の現在のピクチャ・ブロック103)、及び復号化されたピクチャ231、又は少なくとも1つ又は複数の以前に再構成されたブロック、例えば1つ又は複数の他の/異なる以前に復号化されたピクチャ231の再構成されたブロックを、インター予測(又は「インター・ピクチャ推定」)のために受信又は取得するように構成される。例えば、ビデオ・シーケンスは、現在のピクチャと以前に復号化されたピクチャ231とを含んでもよく、換言すれば、現在のピクチャと以前に復号化されたピクチャ231とは、ビデオ・シーケンスを形成するピクチャの一部分であってもよいし、又はピクチャのシーケンスを形成してもよい。
【0205】
エンコーダ100は、例えば、複数の他のピクチャの同じ又は異なるピクチャの複数のリファレンス・ブロックからリファレンス・ブロックを選択し、リファレンス・ピクチャ(又は参照ピクチャ・インデックス、...)、及び/又はリファレンス・ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)を、インター推定パラメータ143として、インター予測ユニット144へ提供するように構成されてもよい。このオフセットは、動きベクトル(MV)とも呼ばれる。インター推定は、動き推定(ME)及びインター予測、動き予測(MP)とも呼ばれる。
【0206】
インター予測ユニット144は、例えば受信インター予測パラメータ143を取得し、例えば受信し、インター予測パラメータ143に基づいて又はそれを使用してインター予測を実行し、インター予測ブロック145を取得するように構成される。
【0207】
図1は、インター・コーディングのための2つの別個のユニット(又はステップ)、即ちインター推定142及びインター予測152を示しているが、両方の機能は、一方(インター予測)がインター予測ブロック、即ちその又は「どちらかと言えば」インター予測152を計算することを、例えば、すべての可能な又は予め定められた可能なインター予測モードのサブセットを反復的にテストする一方、現在の最良のインター予測モード及びそれぞれのインター予測ブロックを記憶し、現在の最良の予測モード及びそれぞれのインター予測ブロックを、もう1回インター予測144を実行することなく、(最終的な)インター予測パラメータ143及びインター予測ブロック145として使用することによって要求し/含みながら、実行されてもよい。
【0208】
イントラ推定ユニット152は、イントラ推定のために、同じピクチャのピクチャ・ブロック103(現在のピクチャ・ブロック)と、1つ又は複数の以前に再構成されたブロック、例えば再構成された隣接ブロックとを、取得する、例えば受信するように構成される。エンコーダ100は、例えば、複数の(所定の)イントラ予測モードからイントラ予測モードを選択し、それをイントラ予測パラメータ153としてイントラ予測ユニット154に提供するように構成されてもよい。
【0209】
エンコーダ100の実施形態は、最適化基準、例えば、最小残差(例えば、現在のピクチャ・ブロック103に最も類似する予測ブロック155を提供するイントラ予測モード)又は最小レート歪みに基づいて、イントラ予測モードを選択するように構成されてもよい。
【0210】
イントラ予測ユニット154は、イントラ予測パラメータ153、例えば選択されたイントラ予測モード153に基づいて、イントラ予測ブロック155を決定するように構成される。
【0211】
図1は、イントラ・コーディングのための2つの別個のユニット(又はステップ)、即ちイントラ推定152及びイントラ予測154を示しているが、両方の機能は、一方(イントラ予測)がイントラ予測ブロック、即ちその又は「どちらかと言えば」イントラ予測154を計算することを、例えば、すべての可能な又は予め定められた可能なイントラ予測モードのサブセットを反復的にテストする一方、現在の最良のイントラ予測モード及びそれぞれのイントラ予測ブロックを記憶し、現在の最良の予測モード及びそれぞれのイントラ予測ブロックを、もう1回イントラ予測154を実行することなく、(最終的な)イントラ予測パラメータ153及びイントラ予測ブロック155として使用することによって要求し/含みながら、実行されてもよい。
【0212】
エントロピー符号化ユニット170は、エントロピー符号化アルゴリズム又は方式(例えば、可変長コーディング(VLC)方式、コンテキスト適応VLC方式(CALVC)、算術コーディング方式、コンテキスト適応バイナリ算術コーディング(CABAC))を、量子化された残差係数109、インター予測パラメータ143、イントラ予測パラメータ153、及び/又はループ・フィルタ・パラメータに、個別に又は一緒に適用して(又は全く行わず)、例えば符号化されたビット・ストリーム171の形態で出力172によって出力され得る符号化されたピクチャ・データ171を取得するように構成される。
【0213】
ビデオ・エンコーダ100の他の構造的なバリエーションは、ビデオ・ストリームを符号化するために使用されることが可能である。例えば、非変換ベースのエンコーダ100は、特定のブロック又はフレームについて、変換処理ユニットによらず、残差信号を直接的に量子化することが可能である。別の実施形態では、エンコーダ100は、単独ユニットに結合された量子化ユニット及び逆量子化ユニットを有することが可能である。
【0214】
図2は、復号化されたピクチャ231を得るために、例えばエンコーダ100により符号化された、符号化されたピクチャ・データ(例えば、符号化ビット・ストリーム)171を受信するように構成された例示的なビデオ・デコーダ200を示す。
【0215】
デコーダ200は、入力202、エントロピー復号化ユニット204、逆量子化ユニット210、逆変換ユニット212、再構成ユニット214、バッファ216、ループ・フィルタ220、復号化ピクチャ・バッファ230、予測ユニット260、インター予測ユニット244、イントラ予測ユニット254、モード選択ユニット260、及び出力232を含む。
【0216】
エントロピー復号化ユニット204は、符号化されたピクチャ・データ171に対するエントロピー復号化を実行し、例えば量子化係数209及び/又は復号化されたコーディング・パラメータ(
図2には示されていない)、例えばインター予測パラメータ143、イントラ予測パラメータ153、及び/又はループ・フィルタ・パラメータの(復号化された)何れか又は全てを得るように構成される。
【0217】
デコーダ200の実施形態では、逆量子化ユニット210、逆変換ユニット212、再構成ユニット214、バッファ216、ループ・フィルタ220、復号化ピクチャ・バッファ230、予測ユニット260、及びモード選択ユニット262は、エンコーダ100(及びそれぞれの機能ユニット)の逆の処理を実行して、符号化されたピクチャ・データ171を復号化するように構成される。
【0218】
特に、逆量子化ユニット210は逆量子化ユニット110と機能的に同一であってもよく、逆変換ユニット212は逆変換ユニット112と機能的に同一であってもよく、再構成ユニット214は再構成ユニット114と機能的に同一であってもよく、バッファ216はバッファ116と機能的に同一であってもよく、ループ・フィルタ220はループ・フィルタ120と機能的に同一であってもよく(実際のループ・フィルタについては、典型的には、ループ・フィルタ220は、オリジナル画像101又はブロック103に基づいてフィルタ・パラメータを決定するためのフィルタ分析ユニットを含んでいないが、例えばエントロピー復号化ユニット204から、符号化に使用されるフィルタ・パラメータを(明示的に又は暗示的に)受信するか又は取得する)、復号化ピクチャ・バッファ230は復号化ピクチャ・バッファ130と機能的に同一であってもよい。
【0219】
予測ユニット260は、インター予測ユニット244と、イントラ予測ユニット254とを含み、インター予測ユニット244は、インター予測ユニット144と機能が同一であってもよく、インター予測ユニット254は、イントラ予測ユニット154と機能が同一であってもよい。予測ユニット260及びモード選択ユニット262は、典型的には、ブロック予測を実行し、及び/又は符号化されたデータ171のみから(オリジナル・ピクチャ101についての更なる情報なしに)予測ブロック265を取得し、予測パラメータ143又は153及び/又は選択された予測モードに関する情報を、例えばエントロピー復号化ユニット204から(明示的又は暗示的に)受信又は取得するように構成される。
【0220】
デコーダ200は、復号化されたピクチャ231を、例えば出力232を介して、ユーザーに提示又は表示するために出力するように構成される。
【0221】
本発明の実施形態は、主にビデオ・コーディングに基づいて説明されてきたが、エンコーダ100及びデコーダ200(及び対応するシステム300)の実施形態は、静止画処理又はコーディング、即ちビデオ・コーディングでのように、任意の先行する又は連続するピクチャから独立した個々のピクチャの処理又はコーディングのために構成されてもよいことに留意すべきである。一般に、ピクチャ処理コーディングが単一のピクチャ101に限定される場合には、インター推定142のみであり、インター予測144、242は利用可能でない。ビデオ・エンコーダ100及びビデオ・デコーダ200の全てではない他の機能(ツール又は技術とも呼ばれる)のほとんど、例えば分割、変換(スケーリング)106、量子化108、逆量子化110、逆変換112、イントラ推定142、イントラ予測154、254及び/又はループ・フィルタリング120、220、及びエントロピー・コーディング170及びエントロピー復号化204は、静止ピクチャについて等しく使用されることが可能である、
【0222】
本発明は、
図1及び
図2においてループ・フィルタとも呼ばれる、デブロッキング・フィルタの内部動作を取り扱う。ループ・フィルタ・ユニット120、220の更なる詳細は、例えば
図6、7、又は
図10~
図12、又は
図15~
図16に基づいて、以下において説明される。
【0223】
H.264/AVC及びHEVCのようなビデオ・コーディング方式は、ブロック・ベースのハイブリッド・ビデオ・コーディングの成功している原理に沿って設計される。この原理を用いて、ピクチャは、先ずブロックに分割され、次いで各ブロックは、イントラ・ピクチャ又はインター・ピクチャ予測を用いることによって予測される。これらのブロックは、隣接するブロックから相対的にコーディングされ、ある程度の類似性をもってオリジナル信号に近づく。コーディングされたブロックは、オリジナル信号を近似するにすぎないので、近似の間の相違は、予測及び変換ブロック境界における不連続性を引き起こす可能性がある。これらの不連続性はデブロッキング・フィルタによって減衰させられる。HEVCは、H.264/AVCのマクロブロック構造を、最大サイズ64x64ピクセルのコーディング・ツリー・ユニット(CTU)の概念に置き換える。CTUは更に、四分木分割方式で、より小さなコーディング・ユニット(CU)に分割され、これは8×8ピクセルの最小サイズまで細分化されることが可能である。HEVCは予測ブロック(PB)と変換ブロック(TB)の概念も導入している。
【0224】
HEVCでは、ノーマル・フィルタとストロング・フィルタの2つのフィルタが、デブロッキング・フィルタにおいて規定されている。ノーマル・フィルタは、エッジの両側で高々2つのサンプルを修正する。ストロング・フィルタでは、エッジに沿ったサンプルと予め規定された閾値との間の3つの追加的な検査が評価される。これらの検査のすべてが真であれば、ストロング・フィルタが適用される。ストロング・フィルタは、エッジに沿ったサンプルに対して、より強い平滑化効果を有し、エッジの両側で高々3つのサンプルを修正することができる。
【0225】
ITU‐T VCEG(Q6/16)とISO/IEC MPEG(JTC 1/SC 29/WG 11)は、次世代ビデオ・コーデック:汎用ビデオ・コーディング(VVC)を研究している。この新しいビデオ・コーデック規格は、現在のHEVC規格(スクリーン・コンテンツ・コーディング及びハイ・ダイナミック・レンジ・コーディングのための現在の拡張と近未来の拡張とを含む)のものを大幅に超える圧縮能力を目指している。これらのグループは、共同ビデオ探索チーム(JVET)として知られる共同作業において、この探索活動を共同作業し、この分野の専門家によって提案された圧縮技術設計を評価している。
【0226】
VVCテスト・モデル(VTM)は、HEVCの能力を超える潜在的な強化されたビデオ・コーディング技術としての、ITU-T VCEG及びISO/IEC MPEGの共同ビデオ探索チーム(JVET)による協調テスト・モデル研究における特徴を述べている。
【0227】
VTMソフトウェアは、四分木プラス二分木プラス三分木(QTBTTT)と呼ばれる新しい分割ブロック構造方式を使用する。
【0228】
QTBTTT構造は、複数のパーティション・タイプの概念を除去する、即ちコーディング・ユニット(CU)、予測ユニット(PU)及び変換ユニット(TU)の区別を除去する。従って,CU=PU=TUである。
【0229】
QTBTTTは、より柔軟なCU分割形状をサポートし、CUは正方形又は長方形の何れかの形状を有することができる。CUの最小の幅と高さは4サンプルであるとすることが可能であり、CUのサイズは4×N又はN×4にすることも可能であり、Nは[4,8,16,32]のレンジ内の値をとることができる。更に、最大CTUサイズは128×128ピクセルに増やされており、これはHEVCにおけるCTUサイズより4倍大きい。
【0230】
長方形CUに対して、短辺に近い歪みは、HEVCストロング・フィルタが適用された場合でも、ブロック・アーチファクトを生じることは明らかになり得る。ブロック・アーチファクトは、大きなCUのエッジに沿って観察される可能性があり、歪みは、より大きな予測及び変換処理に起因して顕著である。
【0231】
現在では、AffineやATMVPのような追加のSub-puツール(即ち一般的にはサブ・ブロック・ツール)が、汎用ビデオ・コーディング(VVC)規格に採用されている。実装方法において、サブpuツール、特にAffineの場合、デブロッキングは、8×8グリッドとオーバーラップするサブpuエッジ/境界に対して実行されてもよい。別の実装方法において、サブpuツール、特にAffineの場合、16×16グリッドとオーバーラップするサブpu境界のみがデブロッキングされ、他のすべてのサブpu境界はデブロッキングされず、即ち、デブロッキングは、
図15に示されるように、8×8グリッドとオーバーラップするサブpu境界については実行されない。別の実装方法において、サブpuツール、特にAffineの場合、最初及び最後の内部サブpu境界はデブロッキングされない。他のすべての内部サブpuエッジは、
図16に示すようにデブロックされる。換言すれば、
図15及び16に示されるようなソリューションは、少なくとも、内部サブpuエッジの一部に対するデブロッキングを許容する。これら全ての実装は、エッジを共有するブロックの1つがAffine又はATMVPのようなサブpuツールを使用する場合に、より長いタップ・フィルタ・アプリケーションの調和性をカバーするために主に存在する。
【0232】
現在のデブロッキング・フィルタ処理(四分木プラス二分木プラス三分木(QTBTTT)分割を使用する)が
図4に示されている。
【0233】
「より長いタップ・フィルタ」のサブpuツールへの適用に関する問題は
図4に示されている。P、Qとも呼ばれるコーディング・ブロック401、402は2つのCUであり、CUのサイズは16×4サンプルである。
【0234】
CUエッジ(太い黒線でマークされている)がフィルタリングされる場合に、CUエッジの何れかの側で最大7個のサンプルが修正される。従って、Q0,0からQ6,0までのサンプルが修正される。また、サンプルQ7,0 Q6,0 Q5,0は、サブpu境界(細い黒線でマークされている)に対するデブロッキング決定で使用される。従って、フィルタリングは、オーバーラップを生じ、更に、並列的にデブロッキングされるべきでないエッジが生じる。
【0235】
従って、デブロッキング・フィルタリングをシリアル方式で実行することが必要である。これは、非常に長い処理時間を招く。特に、近い将来のプロセッサ技術では、ますます多くの並列処理構造を採用するので、このことは不必要に長い処理時間を招く。並列に動作するようにデブロッキング・フィルタリングを適合させることにより、かなりの処理時間を節約することができる。
【0236】
詳細には、デブロッキング・フィルタリングを並列化することは、
図5、
図15又は
図16に示されるようなアプローチによって達成されることが可能である。
【0237】
7.1 本発明の実施形態
ソリューション1:
1.1 現在のブロックQが、AffineやATMVPのようなSub-puツールを使用する場合、本発明は、より長いタップ・フィルタの非対称バージョンを使用し、即ち、表1に示されるような非対称フィルタを使用して、ブロックPとQとの間のCU境界をデブロッキングする。基本的に、コーディング・ユニットはインター予測を利用することが可能である。インター予測では、コーディング・ユニットが使用することが可能な幾つかの異なるツールが存在する。Affine及びATMVPは2つのサブpuツールである。サブpuツールは、所与のコーディング・ユニットが、更に小さな予測ユニット(サブpu)を使用し、動き補償が、サブpuの各々に対して別々に行われることを意味する。例えば、16×4サイズのコーディング・ユニットを有している場合、アフィン・ツールは、(
図4に示すように)8×4サイズの2個のサブpu又は4×4サイズの4個のサブpuを使用する。例えば、16×16サイズのコーディング・ユニットを有している場合、アフィン・ツールは、
図17(a)及び(b)に示すように、サイズ4×4の16個のサブpu又はサイズ8×8の4個のサブpuを使用する。これらのサブpu又はサブ・ブロックの各々は、
図18に示すように、別々の動きベクトルを使用する。そのため、サブpuツールを使用するコーディング・ユニットQの場合、最大3個のサンプルが修正され、コーディング・ユニットPの場合、最大7個のサンプルが修正される。
図4又は5を参照されたい。コーディング・ユニットPの幅が8サンプルより大きい、例えば16又は32サンプルである場合、コーディング・ユニットPについては、最大7個のサンプルが修正される。幾つかのシナリオにおいて、3、4、5又は6個のサンプルが、コーディング・ユニットP、Qに対して修正されてもよいことに留意されたい。
【0238】
【0239】
入力ピクセルは、フィルタリングに使用されるピクセル値又はサンプル値に対応し、出力ピクセルは、修正されたサンプル値に対応する。入力ピクセルは、ブロック・エッジで始まる、ブロック・エッジに垂直な連続的なピクセルであってもよいことに留意すべきである。また、出力ピクセルは、ブロック・エッジで始まる、ブロック・エッジに垂直な連続的なピクセルであってもよい。表1に示されるように、一例において、第1出力値(コーディング・ブロックQに関連する)は、q2、q1、q0に対応し、第2出力値(コーディング・ブロックPに関連する)は、p0、p1、p2、...p5、p6に対応する。相応して、コーディング・ユニットQはサブ・ブロック・ツールを使用する第2画像ブロックに対応し、コーディング・ユニットPは第1画像ブロックに対応する。コーディング・ユニットQは現在のブロックであり、コーディング・ユニットPは現在のブロックの隣接ブロックである。
また、フィルタ条件(式1)は、ブロックQからの最大4サンプルのみがフィルタ決定に使用されることを確認する。
【0240】
一例では、ブロッキング・セグメントの第1及び第4ラインの双方に関して:
【数31】
一般に、デブロッキング・フィルタ・プロセスは、境界/エッジの検出、フィルタリング決定(フィルタ・オン/オフ決定)、及び垂直及び水平エッジのフィルタリング・プロセスの3つのステップを含む可能性がある。
【0241】
フィルタの決定(式1の場合)には、4つのサンプルのみを使用することができる。従って、ブロックQの式1では、q0からq3までのサンプルのみが使用される。ブロックPの式1では、式1に示されるような4つのサンプルが使用されうる。一例では、第2決定値はq3、q2、q1、q0に対応し、第1決定値はp0、p3、p4、p7、p0、p2、p3、p5に対応する。
【0242】
式1が満たされる場合、表1で言及されているより長いタップ・フィルタを使用することができる。式1が満たされない場合、HEVCストロング・フィルタを使用することができる。また、ここではブロックQから最大3個のサンプル、即ちq
0ないしq
2が修正される。基本的には、より長いタップ・フィルタを適用するために、式1が考慮される。式/条件1が真である場合にのみ、表1に示されているより長いタップ・フィルタが適用されてもよい。式1は、
図7のステップ707において使用されてもよいことに留意されたい。
【0243】
式1は、基本的にはCUエッジの何れかの側の勾配をチェックする。ブロックQからフィルタ決定を行うために、最大4個のサンプルのみが利用可能であるため、従ってサンプルq0ないしq3のみがブロックQから使用され、βは、既知の、例えばHEVC規格からの閾値パラメータを示す。フィルタ条件に関し、閾値パラメータβの値は量子化パラメータQPに依存する。上述したように、QPは、ビットレートとビデオ・コンテンツ品質との間のトレードオフを制御するビデオ・コーディング規格における周知のパラメータである。実施形態では、QPは0ないし51の範囲にあるとすることが可能である。実施形態において、フィルタ装置120、220の処理回路は、ルック・アップ・テーブルを使用して、量子化パラメータQPに基づいて閾値パラメータβを決定するように構成される。実施形態において、ルック・アップ・テーブルは次のように規定されることが可能である。
【0244】
Look-up Table[52]=
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64}
【0245】
閾値パラメータβ及びそのQPリファレンスへの依存性に関する更なる詳細については、参照により本願に援用される書籍“High Efficiency Video Coding(HEVC)”,Sze et alの第7章を参照されたい。
【0246】
1.2 隣接ブロックPがAffineやATMVPのようなサブpuツールを使用する場合、本発明は、より長いタップ・フィルタの非対称バージョンを使用し、即ち、ブロックP及びQの間のCU境界をデブロッキングするために、表2に示される非対称フィルタを使用する。
従って、サブpuツールを使用するコーディング・ユニットPについては、一例では最大3個のサンプルが修正されるが、現在のコーディング・ユニットQについては、最大7個のサンプルが修正される。
【0247】
【0248】
入力ピクセルは、フィルタリングに使用されるピクセル値又はサンプル値に対応し、出力ピクセルは、修正されたサンプル値に対応する。入力ピクセルは、ブロック・エッジで始まる、ブロック・エッジに垂直な連続的なピクセルであってもよいことに留意すべきである。また、出力ピクセルは、ブロック・エッジで始まる、ブロック・エッジに垂直な連続的なピクセルであってもよい。表2に示されるように、一例において、第1出力値(コーディング・ブロックPに関連する)は、p2、p1、p0に対応し、第2出力値(コーディング・ブロックQに関連する)は、q0、q1、q2、...q5、q6に対応する。相応して、コーディング・ユニットPはサブ・ブロック・ツールを使用する第2画像ブロックに対応し、コーディング・ユニットQは第1画像ブロックに対応する。コーディング・ユニットPは現在のブロックであり、コーディング・ユニットQは現在のブロックの隣接ブロックである。
【0249】
また、フィルタ条件(式2)は、ブロックPからの最大4サンプルのみがフィルタ決定に使用されることを確かめている。
【0250】
一例では、ブロッキング・セグメントの第1及び第4ラインの双方に関して:
【数32】
一般に、デブロッキング・フィルタ・プロセスは、境界/エッジの検出、フィルタリング決定(フィルタ・オン/オフ決定)、及び垂直及び水平エッジのフィルタリング・プロセスの3つのステップを含む可能性がある。
【0251】
フィルタの決定(式2の場合)には、4つのサンプルのみを使用することができる。従って、ブロックPの式2では、p0からp3までのサンプルのみが使用される。ブロックQの式2では、式2に示されるような4つのサンプルが使用されうる。一例では、第2決定値はp3、p2、p1、p0に対応し、第1決定値はq0、q3、q4、q7、q0、q2、q3、q5に対応する。
【0252】
式2が満たされる場合、表2で言及されているより長いタップ・フィルタを使用することができる。式2が満たされない場合、HEVCストロング・フィルタを使用することができる。また、ここではブロックPから最大3個のサンプル、即ちp
0ないしp
2が修正される。基本的には、より長いタップ・フィルタを適用するために、式2が考慮される。式2が真である場合にのみ、表2に示されているより長いタップ・フィルタが適用されてもよい。式2は、
図7のステップ707において使用されてもよいことに留意されたい。
【0253】
フィルタ決定を行うために、ブロックPから最大4個のサンプルを使用することが、許容される。従って、p4、p5...p7のサンプルを使用することはできず、従って、p4、p5...p7のサンプルのフィルタ係数はゼロである。この方法では、p4、p5、...p7はフィルタリング処理で使用されない。
【0254】
式2は、基本的にブロックの何れかの側の勾配をチェックする。ブロックPからフィルタ決定を行うために、最大4個のサンプルのみが利用可能であるため、従ってサンプルp0ないしp3のみがブロックPから使用される。
【0255】
1.3 代替的な実装では、p0、p1、p2又はq0、q1、q2の係数は、HEVCストロング・フィルタ係数を使用することも可能である。コーディング・ユニットPがサブpuツールを使用する場合の係数は表3に示されている。換言すれば、本発明は、より長いタップ・フィルタの非対称バージョンを使用することが可能であり、即ち、ブロックPとQとの間のCU境界をデブロッキングするために、表3に示すような非対称フィルタを使用することが可能である。相応して、コーディング・ユニットPは第2画像ブロックに対応し、コーディング・ユニットQは第1画像ブロックに対応する。符号化ユニットPは現在のブロックであり、コーディング・ユニットQは現在のブロックの隣接ブロックである。
【0256】
【0257】
代替的に、p0、p1、p2又はq0、q1、q2に対するフィルタ係数は、HEVCストロング・フィルタ係数を使用することも可能である。コーディング・ユニットQがサブpuツールを使用する場合のフィルタ係数は表4に示されている。換言すれば、本発明は、より長いタップ・フィルタの非対称バージョンを使用することが可能であり、即ち、ブロックPとQとの間のCU境界をデブロッキングするために、表4に示すような非対称フィルタを使用することが可能である。相応して、コーディング・ユニットQは第2画像ブロックに対応し、コーディング・ユニットPは第1画像ブロックに対応する。コーディング・ユニットQは現在のブロックであり、コーディング・ユニットPは現在のブロックの隣接ブロックである。
【0258】
【0259】
使用されるフィルタ条件は、ブロックP又はブロックQがサブpuツールを使用するか否かに基づいて、式1又は式2であるとすることが可能である。例えば、ブロックPがサブpuツールを使用する場合、フィルタ条件は式2であり、ブロックQがサブpuツールを使用する場合、フィルタ条件は式1である。
【0260】
1.4 コーディング・ユニットQとコーディング・ユニットPの両方がサブpuツールを使用する場合、より長いタップ・フィルタは、もはやCU境界で適用されない。CUエッジ(略称CE)については、HEVCストロング・フィルタが考慮されてもよい。実装では、CUエッジの側で最大3個のサンプルがブロックP内で修正され、CUエッジの別の側で最大3個のサンプルがブロックQ内で修正される。使用したフィルタは表5に示されるとおりである。換言すれば、本発明は、ブロックPとQとの間のCU境界をデブロッキングするために、表5に示されるようなフィルタを使用することができる。
【表5】
【0261】
図7は、より長いタップ・フィルタ(又は非対称ロング・フィルタ)が使用されるものとされるか否かを決定する方法を示すフローチャートである。
図7に示すように、HEVCストロング・フィルタ条件は、「より長いタップ・フィルタ」条件が真であることについて充足されるべきである。ステップ707において、詳細は上述されている。ステップ709で使用される、より長いタップ・フィルタは、ステップ708で使用される通常のより長いタップ・フィルタとは異なり、詳細は上述されている。通常のより長いタップ・フィルタ条件は:
【数33】
であってもよい。幾つかの例では、HEVCフィルタのトップにおいて、ステップ708における通常のより長いタップ・フィルタは、エッジの各側でのフィルタ決定のために8個のサンプルを使用し、7個のサンプルがエッジの各側で修正される。しかしながら、ステップ709におけるより長いタップ・フィルタは、エッジの一方の側でのフィルタ決定のためにDB個のサンプルを使用し、エッジの他方の側でのフィルタ決定のためにDA個のサンプルを使用し、MB個のサンプルがエッジの一方の側で修正され、MA個のサンプルがエッジの他方の側で修正される。MA≠MBであり、特にMA<MBであり、例えばMA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7である。一般に、DA=MA+1、DB=MB+1である。
【0262】
HEVCストロング・フィルタ条件が満たれるべきか否かを決定する詳細は
図8に示される。強いフィルタリングと通常のフィルタリングとの間の決定を含むブロック境界のためのデブロッキング・フィルタリング決定は、
図8のフローチャートに要約される。
【0263】
第1ステップ800において、現在フィルタリングされているブロック・エッジが、8×8符号化サンプル・グリッドに整合しているか否かがチェックされる。そのケースである場合、第2ステップ801において、フィルタリングされるべきブロック・エッジが予測ユニット又は変換ユニットの間の境界であるか否かがチェックされる。そのケースである場合、第3ステップ802において、境界強度Bs>0であるか否かがチェックされる。この条件も満たされる場合、第4ステップ803において、条件7.1が真であるか否かがチェックされる。
【0264】
条件7.1は、デブロッキング・フィルタリングがブロック境界に適用されるか否かをチェックするために使用される。特に、ブロック境界の各側でどれだけ多くの信号が直線から逸脱しているか(ramp)をチェックする。
【0265】
この条件が満たされない場合、又はステップ800、801及び802の何れかのチェックが充足されない場合、第5ステップ804において、フィルタリングは実行されないことが決定される。
【0266】
第6ステップ805では(
図8には示されていない)、フィルタリングされるべきエッジを囲む2つのブロックの何れかのブロック・サイズが4であるか否かがここでチェックされる。そのケースではない場合、第7ステップ806において、更なる条件7.2、7.3、及び7.4が満たされるか否かがチェックされる。
【0267】
条件7.2は、ブロック境界の側で有意な信号変動はないことをチェックする。条件7.3は、両側の信号はフラットであることを確認する。条件7.4は、ブロック境界の両側におけるサンプル値の間のステップは小さいことを保証する。
【0268】
これらの条件の全てが真である場合、第8ステップ807において、ストロング・フィルタリングが実行され、ステップ807は、
図7のステップ702でまさに置換される。そのケースでない場合、第9ステップ808において、通常のフィルタリングが実行されることが決定される。
【0269】
このソリューションは、デブロッキング・フロー・チャートの一部を実行し、その結果、ただ1つのサンプル修正が実行される。
【0270】
これは、少なくとも1つのブロック・サイズが閾値より大きな偶数の整数2n(例えば、8又は16等)である場合、特に少なくとも1つのブロック・サイズが16より大きな偶数の整数2nである場合に、フィルタリングが実行されるか否か、及びどのタイプのフィルタリングが実行されるか、を決定するのに必要なチェックの量を大幅に削減することを許容する。
【0271】
Affine及びATMVPのようなサブpuツールを使用するブロックの何れか又は両方に、より長いタップ・フィルタが適用される場合に、フィルタのオーバーラップを回避するために、以下のソリューションが本開示において提案される。
【0272】
ソリューション1:「非対称」フィルタを使用すること。これは、ブロックQ又はブロックPの何れかが、Affine又はATMVPのようなサブpuツールを使用する場合に、サブpuツールを使用するブロックに対して高々MA個のサンプルの修正を許容し、例えば、MA=3、4、5又は6である。
【0273】
ソリューション2:コーディング・ユニットQとコーディング・ユニットPの両方がサブpuツールを使用する場合、より長いタップ・フィルタはCUエッジに適用されない。エッジにはHEVCストロング・フィルタが考慮される。従って、ブロックP及びQのCUエッジの何れかの側で同数のサンプルが修正される、MA’=MB’である。
【0274】
ソリューション3:ブロックQ又はブロックPの何れかがAffine又はATMVPのようなサブpuツールを使用する場合、デブロッキングはCUエッジのみにおいて実行される一方、サブpuエッジのデブロッキングをディセーブルにする。
【0275】
ソリューション4及び5:ブロックQ又はブロックPの何れかがAffine又はATMVPのようなサブpuツールを使用する場合、デブロッキングはサブpuエッジの一部で実行されるだけでなく、CUエッジでも実行される。
【0276】
ソリューション4:このソリューションでは、より長いタップ・デブロッキング・フィルタ又は通常のHEVCデブロッキング・フィルタは、すべてのCUエッジに適用されることが可能である。内部サブpuエッジについては、16×16グリッドとオーバーラップするエッジのみが、デブロッキングされる。8×8グリッドとオーバーラップする内部サブpuエッジは、デブロッキングされない。このソリューションの主な利点は、より長いタップ・フィルタが、cuエッジから離れた内部サブpuエッジの一部にも適用されうることである。
【0277】
図15に示されるように、この例は、3個のコーディング・ユニット(ブロック)P、Q、Rを含む。ブロックQは、Affine又はATMVPのようなサブpuツールを使用し、従って、内部サブpuエッジから構成される。2つのコーディング・ユニット・エッジが存在し、一方のエッジはブロックP(例えば、CU P)とブロックQ(例えば、CU Q)との間で共有され、他方のコーディング・ユニット・エッジはブロックQ(例えば、CU Q)とブロックR(例えば、CU R)との間で共有される。フィルタ・オーバーラップを導入することなく、従って並列的なデブロッキングを犠牲にすることなく、コーディング・ユニット・エッジに対してより長いタップ・フィルタを適用するために、提案されるソリューションは、16×16グリッドとオーバーラップする内部サブpuエッジすべてをデブロッキングするだけである。その他の内部サブpuエッジすべてはデブロッキングされない。この状況は
図15にも示されており、破線は、8×8グリッドとオーバーラップし且つデブロッキングされない内部サブpuエッジである。通常の線は、16×16グリッドとオーバーラップする内部サブpuエッジを示し、従って、それらはデブロッキングされることが可能である。このソリューションの重要な特性は:より長いタップ・フィルタは、CUエッジに、及び16×16のグリッドとオーバーラップする内部サブpuエッジにも適用されうることである。
【0278】
ブロックP、Q、Rは、M×N又はN×M又はL×T又はT×Lであるブロック・サイズを有し、N又はTは閾値(例えば、8又は16等)より大きな偶数の整数2nである。例えば、ブロックP、Q、Rのサイズ(即ち、幅又は高さ)は、32又は64サンプルであってもよい。
【0279】
16×16グリッドについては、オーバーラップする少なくとも1つの内部サブpuエッジが存在するであろう。
【0280】
一般に、より小さなブロックについては、8×8グリッドとオーバーラップする最初及び最後の内部サブpuエッジは1つだけであろうが、従ってそれはデブロッキングされ得ない。これは
図4に示される状況である。
【0281】
8×8グリッドは
図19に示されている。8×8グリッドは8サンプルのギャップで間隔を空けた垂直及び水平ラインを有する。16×16グリッドは16サンプルのギャップで間隔を空けた垂直及び水平ラインを有するであろう。
【0282】
サブ・ブロック・エッジの何れかの側で最大7サンプル、即ちNA’=NB’=7を修正するより長いタップ・フィルタのような第6フィルタが使用されることが可能である。ところで、通常のHEVCデブロッキング・フィルタは、16×16グリッドとオーバーラップするこれらのサブpuエッジすべてに適用されことも可能である。一般に、通常のHEVCデブロッキング・フィルタは、エッジの何れかの側で最大3個のサンプルを修正する可能性がある。16×16グリッドとオーバーラップするこれらのサブpuエッジに、通常のHEVCデブロッキング・フィルタが適用される場合、サブpuエッジの何れかの側で修正されるべきサンプル数は、異なるシナリオに従って適合されてもよい。
【0283】
図15において、即ちソリューション4(16×16グリッド)に関し、第6フィルタは、より長いタップ・フィルタを指す可能性がある。より長いタップ・フィルタは、エッジの何れかの側で等しい数のサンプルを修正するフィルタである。この場合、NA’=NB’=7の任意のより長いタップ・フィルタを使用することが可能であり、即ち、より長いタップ・フィルタは、エッジの何れかの側で最大7個のサンプルまで修正することが可能である。より長いタップ・フィルタである場合、NA’=NB’=7である。より長いタップ・フィルタは、サブPUエッジの何れかの側で最大7個のサンプルを修正する。また、通常のHEVCフィルタを適用することもできる。サブpuブロックの内部にあるサンプルは、フィルタ決定及びフィルタ修正に使用される。
【0284】
ソリューション5:このソリューションでは、最初と最後の内部サブpuエッジ、例えば8×8のグリッドとオーバーラップするものについては、デブロッキングはディセーブルにされる。例えば8×8グリッドとオーバーラップする他の全てのサブpuエッジは、最大4個のサンプルまでを修正する第5フィルタ(通常のHEVCデブロッキング・フィルタ又は他の任意のフィルタ等)を有するように許容される。より長いタップのデブロッキング・フィルタは、それでも全てのCUエッジに安全に適用されうる。
【0285】
図16に示すように、この例は3個のコーディング・ユニット(ブロック)P、Q、Rから構成される。ブロックQは、Affine又はATMVPのようなサブpuツールを使用し、従って内部サブpuエッジから構成される。2つのコーディング・ユニット・エッジが存在し、一方のエッジはブロックPとブロックQとの間で共有され、他方のコーディング・ユニット・エッジはブロックQとブロックRとの間で共有される。フィルタ・オーバーラップを導入することなく、従って並列的なデブロッキングを犠牲にすることなく、コーディング・ユニット・エッジに対してより長いタップ・フィルタを適用するために、ソリューションは、最初と最後のサブpuエッジを除くすべての内部サブpuエッジをデブロッキングするだけである。また、最大3個のサンプルを修正するHEVCデブロッキング・フィルタ又は最大4個のサンプルを修正する他の任意のデブロッキング・フィルタのような、第5フィルタは、最初と最後のサブpuエッジを除く他のすべての内部サブpuエッジをデブロッキングするために使用されることが可能である。このソリューション5の内部サブpuエッジについては、各々の連続するエッジは8サンプルだけ離れているので、8×8グリッド上で一般にフィルタリングを行っているのと同様であることに留意されたい。従って、通常のHEVCデブロッキング・フィルタ、又は最大4個のサンプルを修正することが可能な他の任意のフィルタが、ソリューション5で使用されることが可能である。
【0286】
図16において、即ちソリューション5(最初と最後を除く)に関し、第5フィルタは、より長いタップ・フィルタを指す可能性がある。より長いタップ・フィルタは、エッジの何れかの側で等しい数のサンプルを修正するフィルタであってもよい。この場合、NA=NBの任意のより長いタップ・フィルタを使用することが可能である。より長いタップ・フィルタである場合、NA=NB=4である。より長いタップ・フィルタは、サブPUエッジの何れかの側で最大4個のサンプルを修正する。また、通常のHEVCフィルタを適用することもできる。サブpuブロックの内部にあるサンプルは、フィルタ決定及びフィルタ修正に使用される。
【0287】
ブロックP、Q、Rは、M×N又はN×M又はL×T又はT×Lであるブロック・サイズを有し、N又はTは8より大きな偶数の整数2
nである。例えば、ブロックP、Q、Rのサイズ(即ち、幅又は高さ)は、32又は64サンプルであってもよい。一般に、より小さなブロックについては、8×8グリッドとオーバーラップする最初及び最後の内部サブpuエッジは1つだけであろうが、従ってそれはデブロッキングされ得ない。これは
図4に示される状況である。
【0288】
第1コーディング・ブロックP又は第2コーディング・ブロックQ内部のサブ・ブロック間の最初のサブpuエッジ及び最後のサブpuエッジに関し、第1サブpuエッジは第1コーディング・ブロックP及び第2コーディング・ブロックQの一方に最も近く、最後のサブpuエッジは第1コーディング・ブロックP及び第2コーディング・ブロックQの他方に最も近い。
【0289】
本開示は、垂直エッジ及び水平エッジの両方によく適用される。本開示は、サブpuブロックの左上の位置(x,y)を用いて第1サブpuエッジを規定することができ、第1垂直エッジについては、左上の位置が(x+n,y+8)であると言うことが可能であり、nはエッジに沿う増分であるが、それらの位置は同じである。最後の垂直エッジについては、その位置は隣接ブロック位置(p,q)の隣にあると言うことが可能であり、最後の垂直エッジの位置は(p+n,q-8)から始まるであろう。水平エッジについては、ちょうど逆で同様である。
【0290】
要約すると、ソリューションは並列的なデブロッキング動作が実行されうることを保証することができ、従ってビデオ・コーディングの主観的及び客観的な品質を改善する。ソリューション3は、すべての内部サブpuエッジに対するデブロッキングをディセーブルにしたが、ソリューション4及びソリューション5は、少なくとも、内部サブpuエッジの一部に対するデブロッキングを許容している。
【0291】
このアプローチは、
図15又は16にも示されている。
図5では、2つのブロック501、502を含む画像500が示されている。ブロック・エッジ504は、ブロック501及び502を分割する。ブロック・エッジ505は、ブロック502をブロック5021及び5022に分割する。本発明の第1実施形態によれば、ブロック・エッジ504付近の第7サンプル値は、ブロック501内部で修正され、ブロック・エッジ504付近の3サンプル値は、ブロック502、5021内部で修正される一方で、ブロック・エッジ504の両側で、2つの連続するサンプル値がフィルタ入力値として使用される。
図9では、画像900の関連するブロック901及び902のみが示されており、同じことが水平エッジに当てはまる。本発明は、より長いタップ・フィルタの適用のための全てのブロック・タイプに適用され、本発明は、垂直及び水平エッジの両方に対して、例えば幅>8の垂直エッジに対して機能する。
【0292】
将来のビデオ・コーディング規格では、3サンプルより多くを修正する「ロング・タップ」フィルタが使用される可能性がある。以下、ブロック・サイズが16サンプル以上である場合は常に、8サンプルをフィルタ入力値とし、最大7サンプルを修正する「ロング・タップ」フィルタが使用される可能性がある。
【0293】
現在のブロックがサブ・ブロック・ツールを使用するようなシナリオにおいて、並列的なデブロッキングが可能であることを保証するために、以下の改善されたメカニズムを提案する。
【0294】
メカニズム1a:現在のブロック・サイズが≧16サンプルである場合、及び隣接するブロック・サイズも≧16サンプルである場合、「ロング・タップ」フィルタを強制する。
【0295】
メカニズム2a:前述のように「非対称NAS」を強制する。
【0296】
従って、「非対称フィルタ」は、入力値として使用されるサンプル及び修正値をブロック幅毎に修正する。
例えば、
・ブロック幅==4ならば、3サンプルがフィルタ決定で使用されることが可能であり、1サンプルが修正されることが可能である。
・ブロック幅==8ならば、4サンプルがフィルタ決定及び修正で使用されることが可能である。
・ブロック幅≧16の場合、ロング・タップ・フィルタは、前述したように適用されることが可能であり、例えば、現在のブロックがサブ・ブロック・ツールを使用する場合、ライン毎にブロック・エッジに隣接する現在のブロック(サブ・ブロック・ツールを使用する)の高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する隣接ブロックの高々MB個のサンプル値が修正され、MA≠MBであり、特にMA<MBであり、例えばMA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7である。現在のブロックがサブ・ブロック・ツールを有するシナリオでは、MA及びMBは、ブロック・サイズに基づいて決定されてもよいこと、換言すれば、MA及びMBはそれぞれのブロックのブロック・サイズに依存することを理解することが可能である。実装方法において、大きなブロック、即ちブロック・サイズ≧32に関し、修正されるサンプルの最大数は7であってもよい(ロング・フィルタに対応する)。
【0297】
図6は、本開示で説明される技術に従った例示的なデブロッキング・フィルタ装置600を示すブロック図である(更なる詳細は、以下において、例えば
図7、8又は
図10、11A、11B、12に基づいて説明されるであろう)。デブロッキング・フィルタ装置600は、本願で説明される種々の例に従ってデブロッキング技術を実行するように構成されてもよい。一般に、
図1のループ・フィルタ120及び
図2のループ・フィルタ220の何れか又は両方は、デブロッキング・フィルタ装置600のものと実質的に同様なコンポーネントを含むことができる。ビデオ・エンコーダ、ビデオ・デコーダ、ビデオ・エンコーダ/デコーダ(CODEC)等の他のビデオ・コーディング・デバイスもまた、デブロッキング・フィルタ600と実質的に類似のコンポーネントを含むことができる。デブロッキング・フィルタ装置600は、ハードウェア、ソフトウェア、又はファームウェア、又はそれらの任意の組み合わせで実装されてもよい。ソフトウェア又はファームウェアにおいて実装される場合、対応するハードウェア(1つ以上のプロセッサ又は処理ユニット、及びソフトウェア又はファームウェアの命令を記憶するためのメモリなど)もまた、提供され得る。
【0298】
図6の例では、デブロッキング・フィルタ装置600は、デブロッキング決定ユニット604と、メモリに記憶されたサポート定義602と、デブロッキング・フィルタリング・ユニット606と、メモリに記憶されたデブロッキング・フィルタ・パラメータ608と、エッジ位置決めユニット603と、エッジ位置データ構造605とを含む。デブロッキング・フィルタ600のコンポーネントの何れか又は全ては、機能的に統合される可能性がある。デブロッキング・フィルタ600のコンポーネントは、説明の目的のためにのみ、別個に示されている。一般に、デロッキング・フィルタ600は、例えば予測データをブロックの残差データと結合する加算コンポーネント114、214からの復号化されたブロックのデータを受信する。データは、ブロックがどのように予測されたのかについての指標を更に含む可能性がある。以下に説明する例では、デロッキング・フィルタ装置600は、CTB(又はLCU)及びCTBのCU四分木に関連付けられた復号化されたビデオ・ブロックを含むデータを受信するように構成され、CU四分木は、CTBがどのようにCUに分割されるか、リーフ・ノードCUのTU及びPUの予測モードを記述する。
【0299】
デブロッキング・フィルタ装置600は、デブロッキング・フィルタ装置600のメモリ内、又は対応するビデオ・コーディング・デバイスによって提供される外部メモリ内に、エッジ位置データ構造605を維持することができる。幾つかの例では、エッジ位置決めユニット603は、どのようにCTBがCUに分割されるかを示すCTBに対応する四分木を受信してもよい。次いで、エッジ位置決めユニット603は、CU四分木を分析して、デブロッキングの候補であるCTB内のCUのTU及びPUに関連付けられた復号化されたビデオ・ブロック間のエッジを決定することができる。
【0300】
エッジ位置データ構造605は、水平次元と、垂直次元と、水平エッジ及び垂直エッジを表す次元とを有するアレイを含んでもよい。一般に、ビデオ・ブロック間のエッジは、CTBの最小サイズのCU、又はCUのTU及びPUに関連する2つのビデオ・ブロックの間で発生する可能性がある。CTBがN×Nのサイズを有すると仮定し、CTBの最小サイズのCUがM×Mのサイズであると仮定すると、アレイは[N/M]×[N/M]×2のサイズを含む可能性があり、ここで「2」はCUの間の2つの可能なエッジ方向(水平及び垂直)を表す。例えば、CTBが64×64ピクセルと8×8最小サイズCUを有すると仮定すると、アレイは[8]×[8]×[2]エントリを含む可能性がある。
【0301】
各エントリは、一般に、2つのビデオ・ブロック間の可能なエッジに対応する可能性がある。エッジ位置データ構造605の各エントリに対応するLCU内の位置の各々に、エッジが実際には存在しない可能性がある。従って、データ構造の値は、偽に初期化されてもよい。一般に、エッジ位置決めユニット603は、CU四分木を分析して、CTBのCUのTU及びPUに関連する2つのビデオ・ブロック間のエッジの位置を決定し、エッジ位置データ構造605内の対応する値を、真に設定することができる。
【0302】
一般に、アレイのエントリは、対応するエッジがデブロッキングの候補としてCTB内に存在するか否かを記述することができる。即ち、エッジ位置決めユニット603が、CTBのCUのTU及びPUに関連付けられる2つの隣接するビデオ・ブロック間にエッジが存在すると決定した場合に、エッジ位置決めユニット603は、エッジ位置データ構造605内の対応するエントリの値を、エッジが存在することを示すように(例えば、「真」の値に)設定することができる。
【0303】
デブロッキング決定ユニット604は、一般に、2つの隣接ブロックについて、2つのブロックの間のエッジがデブロックされるべきか否かを決定する。デブロッキング決定ユニット604は、エッジ位置データ構造605を使用して、エッジの位置を決定することができる。エッジ位置データ構造605の値がブール値を有する場合、デブロッキング決定ユニット604は、幾つかの例では、「真」の値がエッジの存在を示し、「偽」の値がエッジは存在しないことを示す、と決定することができる。
【0304】
一般に、デブロッキング決定ユニット604は、1つ以上のデブロッキング決定機能を備えるように構成される。機能は、ブロック間でエッジを横切るピクセルのラインに適用される複数の係数を含んでもよい。例えば、機能は、エッジに垂直なピクセルのラインに適用されてもよく、MA(例えば、3、4又は5)個のピクセルが2個のブロックの一方にあり、MB(例えば、7)個のピクセルが2個のブロックの他方にある。サポート定義602は、機能のサポートを規定する。一般に、「サポート」は、機能が適用されるピクセルに対応する。
【0305】
デブロッキング決定ユニット604は、サポート定義602によって規定されるように、サポートの1つ以上のセットに、1つ以上のデブロッキング決定機能を適用して、ビデオ・データの2個のブロック間の特定のエッジがデブロッキングされるべきか否かを決定するように構成されてもよい。デブロッキング決定ユニット604から生じている破線は、フィルタリングされずに出力されるブロックのデータを表す。デブロッキング決定ユニット604が、2つのブロック間のエッジはフィルタリングされるべきではないと決定した場合、デブロッキング・フィルタ600は、データを変更することなく、ブロックのデータを出力することができる。即ち、データは、デブロッキング・フィルタリング・ユニット606をバイパスしてもよい。一方、デブロッキング決定ユニット604が、エッジはデブロッキングされるべきであると決定した場合、デブロッキング決定ユニット604は、エッジをデブロッキングするために、エッジ近傍のピクセルの値を、デブロッキング・フィルタリング部606に、フィルタリングさせてもよい。
【0306】
デブロッキング・フィルタリング・ユニット606は、デブロッキング決定ユニット604によって指示されるように、デブロッキングされるべきエッジに関するデブロッキング・フィルタ・パラメータ608から、デブロッキング・フィルタの定義を取り出す。一般に、エッジのフィルタリングは、デブロッキングされるべき現在のエッジの近傍からのピクセル値を使用する。従って、デブロッキング決定機能及びデブロッキング・フィルタの両方は、エッジの両側で特定のサポート領域を有する可能性がある。デブロッキング・フィルタリング・ユニット606は、エッジ近傍のピクセルにデブロッキング・フィルタを適用することによって、ピクセルの値を平滑化することが可能であり、その結果、エッジ近傍の高周波遷移が減衰させられる。このようにして、エッジ近傍のピクセルに対するデブロッキング・フィルタの適用は、エッジ近傍のブロッキネス・アーチファクトを低減することができる。
【0307】
図10は、本開示で説明される技術による例示的なデブロッキング方法を示すブロック図である(更なる詳細は、以下において、例えば
図7、8に基づいて説明されるであろう)。
【0308】
図10において、デブロッキング方法の実施形態が示されている。
【0309】
第1ステップ1001において、ブロック間のエッジが決定され、ブロック間のエッジは、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジと、第1コーディング・ブロック又は第2コーディング・ブロックのサブ・ブロック間のサブ・ブロック・エッジ(例えば、第1コーディング・ブロック又は第2コーディング・ブロックはサブ・ブロックを有する、又は第1コーディング・ブロック又は第2コーディング・ブロックはサブ・ブロック・ツールを有する)とを含み、第1コーディング・ブロックはM×N又はN×Mであるブロック・サイズを有し、第2コーディング・ブロックはL×T又はT×Lであるブロック・サイズを有し、N又はTは閾値(例えば、8又は16等)より大きな偶数の整数2nであり;
【0310】
第2ステップ1002において、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが、第1フィルタ(即ち、より長いタップ・フィルタ、又は非対称フィルタ、又は非対称タップ・フィルタ、又は非対称ロング・フィルタ)を適用することによってフィルタリングされるべきか否かが決定される、換言すれば、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが、第1フィルタ(即ち、より長いタップ・フィルタ、又は非対称フィルタ、又は非対称タップ・フィルタ、又は非対称ロング・フィルタ)を適用することによってデブロッキングすることに対してイネーブルにされるか否かが決定され;
【0311】
第3ステップ1003において、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきであると決定された場合に、第1フィルタ(より長いタップ・フィルタ、又は非対称フィルタ、又は非対称タップ・フィルタ、又は非対称のより長いフィルタ)が、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジ近傍のサンプル(即ち、入力ピクセル)の値に適用され、第1コーディング・ブロックがサブ・ブロックを有する場合に(又は第1コーディング・ブロックがサブ・ブロック・ツールを有する、第1コーディング・ブロックが現在のブロックである、第2コーディング・ブロックが現在のブロックの隣接ブロックである)、ライン毎にブロック・エッジに隣接する(即ち、垂直な)第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する(即ち、垂直な)第2コーディング・ブロックの高々MB個のサンプル値が修正される、又は第2コーディング・ブロックがサブ・ブロックを有する場合に(又は第2コーディング・ブロックがサブ・ブロック・ツールを有する、第2コーディング・ブロックが現在のブロックである、第1コーディング・ブロックが現在のブロックの隣接ブロックである)、ライン毎にブロック・エッジに対して隣接する(即ち、垂直な)第2コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに対して隣接する(即ち、垂直な)第1コーディング・ブロックの高々MB個のサンプル値が修正され、MA≠MBであり、特にMA<MBであり、例えば
【0312】
MA<MB=7であり、
例えば、MA=3及びMB=7、
MA=4及びMB=7、又は
MA=5及びMB=7である。
【0313】
現在のブロックがサブ・ブロック・ツールを有するシナリオでは、MA及びMBは、ブロック・サイズに基づいて決定されてもよいこと、換言すれば、MA及びMBはそれぞれのブロックのブロック・サイズに依存することを理解することが可能である。実装方法において、大きなブロック、即ちブロック・サイズ≧32の場合、修正されるサンプルの最大数は、7(ロング・フィルタに対応する)であってもよい。
入力ピクセルは、フィルタリングに使用されるピクセル値又はサンプル値に対応し、出力ピクセルは、修正されたサンプル値に対応する。入力ピクセルは、ブロック・エッジで始まる、ブロック・エッジに垂直な連続的なピクセルであってもよいことに留意すべきである。また、出力ピクセルは、ブロック・エッジで始まる、ブロック・エッジに垂直な連続的なピクセルであってもよい。先に開示されたデブロッキング方法の詳細を参照することが可能であり、ここでは繰り返さない。
【0314】
図11Aは、本開示で説明される技術による別の例示的なデブロッキング方法を示すブロック図である(更なる詳細は、以下において、例えば
図7、8に基づいて説明されるであろう)。
【0315】
図11Aにおいて、デブロッキング方法の別の実施形態が示されている。
【0316】
第1ステップ1101において、ブロック間のエッジが決定され、ブロック間のエッジは、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジと、第1コーディング・ブロック又は第2コーディング・ブロックのサブ・ブロック間のサブ・ブロック・エッジとを含み、第1コーディング・ブロックはM×N又はN×Mであるブロック・サイズを有し、第2コーディング・ブロックはL×T又はT×Lであるブロック・サイズを有し、N又はTは閾値(例えば、8又は16等)より大きな偶数の整数2nであり;
【0317】
第2ステップ1102において、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが、第1フィルタ(即ち、より長いタップ・フィルタ、又は非対称フィルタ、又は非対称タップ・フィルタ、又は非対称ロング・フィルタ)を適用することによってフィルタリングされるべきか否かが決定される、換言すれば、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが、第1フィルタ(即ち、より長いタップ・フィルタ、又は非対称フィルタ、又は非対称タップ・フィルタ、又は非対称ロング・フィルタ)を適用することによってデブロッキングすることに対してイネーブルにされるか否かが決定され;
【0318】
第2ステップ1103において、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきでないと決定された場合に、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジ近傍のサンプル(即ち、入力ピクセル)の値に第3フィルタが適用され、ライン毎にブロック・エッジに隣接する(即ち、垂直な)第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する(即ち、垂直な)第2コーディング・ブロックの高々MB個のサンプル値が修正され、MA=MBであり、例えばMA=MB=4である。
【0319】
第1コーディング・ブロックが現在のブロックであり、第2コーディング・ブロックは現在のブロックの隣接ブロックであること、又は第2コーディング・ブロックが現在のブロックであり、第1コーディング・ブロックは現在のブロックの隣接ブロックであることを理解することが可能である。
【0320】
入力ピクセルは、フィルタリングに使用されるピクセル値又はサンプル値に対応し、出力ピクセルは、修正されたサンプル値に対応する。入力ピクセルは、ブロック・エッジで始まる、ブロック・エッジに垂直な連続的なピクセルであってもよいことに留意すべきである。また、出力ピクセルは、ブロック・エッジで始まる、ブロック・エッジに垂直な連続的なピクセルであってもよい。
【0321】
先に開示された例示的なデブロッキング方法の詳細を参照することが可能であり、ここでは繰り返さない。
【0322】
図11Bは、本開示で説明される技術による別の例示的なデブロッキング方法を示すブロック図である(更なる詳細は、以下において、例えば
図7、8に基づいて説明されるであろう)。
【0323】
図11Bにおいて、デブロッキング方法の別の実施形態が示されている。
【0324】
第1ステップ1121において、ブロック間のエッジが決定され、ブロック間のエッジは、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジと、第1コーディング・ブロックP又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジとを含み、第1コーディング・ブロックPはM×N又はN×Mであるブロック・サイズを有し、第2コーディング・ブロックQはL×T又はT×Lであるブロック・サイズを有し、N又はTは閾値(例えば、8又は16等)より大きな偶数の整数2nであり;
【0325】
第2ステップ1122において、第1コーディング・ブロックP又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジが、フィルタリングされるべきでないことが決定され、換言すれば、第1コーディング・ブロックP又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジが、デブロッキングに対してディセーブルにされることが決定され;
【0326】
第3ステップ1123において、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプル(即ち、入力ピクセル)の値に第4フィルタ(例えば、通常のより長いタップ・フィルタ)が適用され、ブロック・エッジに隣接する(即ち、垂直な)第1コーディング・ブロックの高々MA個のサンプル値が修正され、ブロック・エッジに隣接する(即ち、垂直な)第2コーディング・ブロックの高々MB個のサンプル値が修正され、MA=MB=7である。
第1コーディング・ブロックが現在のブロックであり、第2コーディング・ブロックは現在のブロックの隣接ブロックであること、又は第2コーディング・ブロックが現在のブロックであり、第1コーディング・ブロックは現在のブロックの隣接ブロックであることを理解することが可能である。
【0327】
入力ピクセルは、フィルタリングに使用されるピクセル値又はサンプル値に対応し、出力ピクセルは、修正されたサンプル値に対応する。入力ピクセルは、ブロック・エッジで始まる、ブロック・エッジに垂直な連続的なピクセルであってもよいことに留意すべきである。また、出力ピクセルは、ブロック・エッジで始まる、ブロック・エッジに垂直な連続的なピクセルであってもよい。
【0328】
図12は、本開示で説明される技術による別の例示的なデブロッキング方法を示すブロック図である(更なる詳細は、以下において、例えば
図7、8、10、11A、11B、12、及び
図15、16に基づいて説明されるであろう)。
【0329】
図12において、デブロッキング方法の別の実施形態が示されている。第1ステップ1201において、ブロック間のエッジが決定され、ブロック間のエッジは、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジと、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジとを含み、第1コーディング・ブロックPは、M×N又はN×Mであるブロック・サイズを有し、第2コーディング・ブロックQは、L×T又はT×Lであるブロック・サイズを有し、例えばN又はTは閾値(例えば、8又は16等)よりも大きな偶数の整数2
nであり;
【0330】
第2ステップ1202において、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ、及び第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第1セットは、フィルタリングされるべきであり、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第2セットはフィルタリングされるべきではないと決定され、
【0331】
第3ステップ1203において、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値でデブロッキング・フィルタリングが実行され、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第1セットの各々の近傍のサンプルの値でデブロッキング・フィルタリングが実行される。
第1コーディング・ブロックが現在のブロックであり、第2コーディング・ブロックは現在のブロックの隣接ブロックであること、又は第2コーディング・ブロックが現在のブロックであり、第1コーディング・ブロックは現在のブロックの隣接ブロックであることを理解することが可能である。
【0332】
入力ピクセルは、フィルタリングに使用されるピクセル値又はサンプル値に対応し、出力ピクセルは、修正されたサンプル値に対応する。入力ピクセルは、ブロック・エッジで始まる、ブロック・エッジに垂直な連続的なピクセルであってもよいことに留意すべきである。また、出力ピクセルは、ブロック・エッジで始まる、ブロック・エッジに垂直な連続的なピクセルであってもよい。
【0333】
図16に示されるように、第1コーディング・ブロック及び/又は第2コーディング・ブロック内部のサブ・ブロック間のサブ・ブロック・エッジの第1セットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間の最初のサブ・ブロック・エッジと最後のサブ・ブロック・エッジとを除く複数のサブ・ブロック・エッジを含み(から構成され)、最初のサブ・ブロック・エッジは、第1コーディング・ブロックP及び第2コーディング・ブロックQのうちの一方に最も近く、最後のサブ・ブロック・エッジは、第1コーディング・ブロックP及び第2コーディング・ブロックQのうちの他方に最も近く、
【0334】
第1コーディング・ブロック及び/又は第2コーディング・ブロック内部のサブ・ブロック間のサブ・ブロック・エッジの第2セットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間の最初のサブ・ブロック・エッジ及び最後のサブ・ブロック・エッジから構成され、最初のサブ・ブロック・エッジは、第1コーディング・ブロックP及び第2コーディング・ブロックQのうちの一方に最も近く、最後のサブ・ブロック・エッジは、第1コーディング・ブロックP及び第2コーディング・ブロックQのうちの他方に最も近い。
【0335】
第2ステップ1203において、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジの第1セットの各々の近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップは:
第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値に第5フィルタを適用するステップを含み、サブ・ブロック・エッジの第1セット各々の一方の側における高々NA個のサンプル値は、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部で修正され、サブ・ブロック・エッジの第1セット各々の他方の側における高々NB個のサンプル値が修正され、NA=NB=4である。
【0336】
第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2のコーディング・ブロックQの内部に、サブ・ブロック間の複数のサブ・ブロック・エッジが存在する場合に、第2ステップ1203において、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップは:
HEVCデブロッキング・フィルタリングである第5フィルタが適用されるべきことが決定された場合に、以下の式:
【数34】
に基づいて、第2コーディング・ブロックQ内部の垂直又は水平サブ・ブロック・エッジそれぞれの側におけるサンプルの現在の行又は列の対応するサンプルのフィルタリングされたサンプル値q
i’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i=0,1,j=0,1..3である。
【0337】
図15に示されるように、第1コーディング・ブロック及び/又は第2コーディング・ブロック内部のサブ・ブロック間のサブ・ブロック・エッジの第1セットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間で16×16グリッドとオーバーラップする1つ以上のサブ・ブロック・エッジを含み(から構成され)、
第1又は第2コーディング・ブロック内部のサブ・ブロック間のサブ・ブロック・エッジの第2セットは、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間の16×16グリッドとオーバーラップするサブ・ブロック・エッジを除く1つ以上のサブ・ブロック・エッジを含む(から構成される)。
【0338】
相応して、第2ステップ1203において、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQのサブ・ブロック間のサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値で、デブロッキング・フィルタリングを実行するステップは:
第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値に第6フィルタを適用するステップを含み、サブ・ブロック・エッジの第1セットそれぞれの一方の側における高々NA’個のサンプル値は、第1コーディング・ブロックP又は第2コーディング・ブロックQ内部で修正され、サブ・ブロック・エッジの第1セットそれぞれの他方の側における高々NB’個のサンプル値は修正され、NA’=NB’=7である。
【0339】
第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部に、サブ・ブロック間の複数のサブ・ブロック・エッジが存在する場合(第1コーディング・ブロックPはサブ・ブロックを有しないが、第2コーディング・ブロックQはサブ・ブロックを有するような場合)、相応して、第2ステップ1203において、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップは、
以下の式:
【数35】
に基づいて、第2コーディング・ブロックQ内部の垂直又は水平のサブ・ブロック・エッジそれぞれの側においてサンプルの現在の行又は列の対応するサンプルのフィルタリングされたサンプル値q
i’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0340】
第1コーディング・ブロックP内部にサブ・ブロック間の複数のサブ・ブロック・エッジが存在し、第2コーディング・ブロックQ内部にサブ・ブロック間の複数のサブ・ブロック・エッジが存在する場合に、第2ステップ1203において、第1コーディング・ブロックP及び/又は第2コーディング・ブロックQ内部のサブ・ブロック間のサブ・ブロック・エッジの第1セット各々の近傍のサンプルの値でデブロッキング・フィルタリングを実行するステップは、
以下の式:
【数36】
に基づいて、第2コーディング・ブロックQ及び第1コーディング・ブロックPそれぞれの内部の垂直又は水平のサブ・ブロック・エッジそれぞれの側においてサンプルの現在の行又は列の対応するサンプルのフィルタリングされたサンプル値q
i’及びp
i’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0341】
実施形態によるデブロッキング方法は、更に、
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジは第1フィルタを適用することによってフィルタリングされるべきであるか否かが決定され、及び
第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジは第1フィルタを適用することによってフィルタリングされるべきであると決定された場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値に第1フィルタが適用されるステップを含み、
ライン毎のブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎のブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、又はライン毎のブロック・エッジに隣接する第2コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎のブロック・エッジに隣接する第1コーディング・ブロックの高々MB個のサンプル値が修正され、MA≠MBであり、特にMA<MBであり、例えばMA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7である。
【0342】
サブ・ブロック間の複数のサブ・ブロック・エッジが第1コーディング・ブロック内部に存在し、サブ・ブロック間の複数のサブ・ブロック・エッジが第2コーディング・ブロック内部に存在する場合に、本方法は更に、
第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジは、第2フィルタを適用することによってフィルタリングされるべきであると決定され、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジは、第2フィルタを適用することによってフィルタリングされるべきであると決定された場合に第2フィルタがブロック・エッジ付近の値に適用されるステップを含み、ブロック・エッジに隣接する第1コーディング・ブロックのMA’個のサンプル値が修正され、ブロック・エッジに隣接する第2コーディング・ブロックのMB’個のサンプル値が修正され、MA’=3及びMB’=3である。
【0343】
サブ・ブロック間のサブ・ブロック・エッジが第2コーディング・ブロック内部に存在しない場合、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、MA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7であり、又は
サブ・ブロック間のサブ・ブロック・エッジが第1コーディング・ブロック内部に存在しない場合、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MB個のサンプル値が修正され、MA=3及びMB=7、又はMA=4及びMB=7、又はMA=5及びMB=7である。
【0344】
本方法は、更に、第1コーディング・ブロックと第2コーディング・ブロックとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきか否かを、
- 第1フィルタ判定値として、ブロック・エッジに隣接する第1コーディング・ブロックの高々DA個のサンプル値、DA=4及び
- 第2フィルタ判定値として、ブロック・エッジに隣接する第2コーディング・ブロックの高々DB個のサンプル値、DB=4
に基づいて決定するステップを含む。
【0345】
サブ・ブロック間の複数のサブ・ブロック・エッジが第2コーディング・ブロックQ内部に存在する場合に、本方法は、更に、
以下の第1式:
【数37】
により規定される第1条件が満たされるか否かを決定するステップを含み、βは閾値パラメータを示し、q
iは第2コーディング・ブロックQのサンプル値を表し、i=0,1,2,3であり、p
jは第1コーディング・ブロックPのサンプル値を表し、j=0,3,4,7又はj=0,2,3,5である。
【0346】
サブ・ブロック間の複数のサブ・ブロック・エッジが第1コーディング・ブロックP内部に存在する場合に、本方法は、更に、
以下の第2式:
【数38】
により規定される第2条件が満たされているか否かを決定するステップを含み、βは閾値パラメータを示し、p
iは第1コーディング・ブロックPのサンプル値を表し、i=0,1,2,3であり、q
jは第2コーディング・ブロックQのサンプル値を表し、j=0,3,4,7又はj=0,2,3,5である。
【0347】
閾値パラメータβは、複数のサンプルの量子化ステップ・サイズに関連する量子化パラメータQPに基づいて決定される、又は
閾値パラメータβは、ルック・アップ・テーブルを使用して、量子化パラメータQPに基づいて決定される。
【0348】
第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部に、サブ・ブロック間のサブ・ブロック・エッジが存在する場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ付近のサンプルの値でデブロッキング・フィルタリングを実行するステップは、
以下の式:
【数39】
に基づいて、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの右又は下に対して、サンプルの現在の行又は列の第1サンプルのフィルタリングされたサンプル値q
0’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0349】
第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部に、サブ・ブロック間のサブ・ブロック・エッジが存在する場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ付近のサンプルの値でデブロッキング・フィルタリングを実行するステップは、
以下の式:
【数40】
に基づいて、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの右又は下に対して、サンプルの現在の行又は列の第2サンプルのフィルタリングされたサンプル値q
1’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0350】
第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部に、サブ・ブロック間のサブ・ブロック・エッジが存在する場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ付近のサンプルの値でデブロッキング・フィルタリングを実行するステップは、
以下の式:
【数41】
に基づいて、第1コーディング・ブロックP及び第2コーディング・ブロックQの間の垂直又は水平エッジの右又は下に対して、サンプルの現在の行又は列の第3サンプルのフィルタリングされたサンプル値q
2’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0351】
第1コーディング・ブロックP内部に、サブ・ブロック間のサブ・ブロック・エッジが存在せず、第2コーディング・ブロックQ内部に、サブ・ブロック間のサブ・ブロック・エッジが存在する場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ付近のサンプルの値でデブロッキング・フィルタリングを実行するステップは、
以下の式:
【数42】
に基づいて、第1及び第2サンプル・ブロックの間の垂直又は水平エッジの左又は上に対して、サンプルの現在の行又は列のサンプルの対応するサンプルのフィルタリングされたサンプル値p
i’を決定するステップを含み、p
iは、第1コーディング・ブロックPのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、q
jは、第2コーディング・ブロックQのサンプルの現在の行又は列の一部分の対応するサンプル値を表し、i,j=0,1..7である。
【0352】
実施形態によるデブロッキング方法は、更に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきか否かが決定されるステップと、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジが、第1フィルタを適用することによってフィルタリングされるべきでないと判断された場合に、第1コーディング・ブロックPと第2コーディング・ブロックQとの間のブロック・エッジ近傍のサンプルの値に第3フィルタが適用されるステップであって、ライン毎にブロック・エッジに隣接する第1コーディング・ブロックの高々MA個のサンプル値が修正され、ライン毎にブロック・エッジに隣接する第2コーディング・ブロックの高々MB個のサンプル値が修正され、MA=MB=4である、ステップとを含む。
【0353】
第1フィルタ、第2フィルタ、第3フィルタ、第4フィルタ、第5フィルタ、及び第6フィルタは、ブロック・エッジを別様にフィルタリングすることに対応していることを理解することができる。換言すれば、全ての異なるフィルタは、入力及び出力サンプルとして:所与のブロック・エッジに垂直な隣接するサンプルを使用する。更に、異なるフィルタは、異なる数の最大フィルタリング・サンプルを入力として使用し、また、フィルタ出力として異なる数の最大サンプルを修正する。
【0354】
図13は、例示的実施形態による、
図3のソース・デバイス310及び宛先デバイス320の何れか又は両方として使用することが可能な装置1300の簡略化されたブロック図である。装置1300は本出願の技術を実装することができる。装置1300は、複数のコンピューティング・デバイスを含むコンピューティング・システムの形態におけるもの、あるいは単一のコンピューティング・デバイス、例えば移動電話機、タブレット・コンピュータ、ラップトップ・コンピュータ、ノートブック・コンピュータ、デスクトップ・コンピュータ等の形態におけるものとすることが可能である。
【0355】
装置1300のプロセッサ1302は中央処理ユニットであるとすることが可能である。代替的に、プロセッサ1302は、現在存在する又は今後開発される、情報を操作又は処理することが可能な任意の他のタイプのデバイス又は複数のデバイスであるとすることが可能である。開示される実装は、図示のように単一のプロセッサ、例えば、プロセッサ1302を用いて実施されることが可能であるが、1つより多いプロセッサを使用して、速度及び効率における利点を達成することが可能である。
【0356】
装置1300内のメモリ1304は、実装におけるリード・オンリ・メモリ(ROM)デバイス又はランダム・アクセス・メモリ(RAM)デバイスであるとすることが可能である。任意の他の適切なタイプのストレージ・デバイスがメモリ1304として使用されることが可能である。メモリ1304は、バス1312を使用してプロセッサ1302によってアクセスされるコード及び/又はデータ1306を格納するために使用されてもよい。メモリ1304は、更に、オペレーティング・システム1308及びアプリケーション・プログラム1310を記憶するために使用されることが可能である。アプリケーション・プログラム1310は、本願で説明された方法を実行することをプロセッサ1302が可能にする少なくとも1つのプログラムを含んでもよい。例えば、アプリケーション・プログラム1310は、アプリケーション1ないしNを含むことが可能であり、更に、本願で説明される方法を実行するビデオ・コーディング・アプリケーションを含むことが可能である。装置1300はまた、例えば、モバイル・コンピューティング・デバイスと共に使用されるメモリ・カードであるとすることが可能な第2ストレージ1314の形態の追加的なメモリを含むことも可能である。ビデオ通信セッションは、かなりの量の情報を含む可能性があるので、それらは、全体的又は部分的にストレージ1314に記憶され、処理のために必要に応じてメモリ1304にロードされることが可能である。
【0357】
装置1300はまた、ディスプレイ1318などの1つ以上の出力デバイスを含むことが可能である。ディスプレイ1318は、一例では、ディスプレイを、タッチ入力を感知するように動作可能なタッチ感知素子と組み合わせるタッチ感知ディスプレイであってもよい。ディスプレイ1318は、バス1312を介してプロセッサ1302に結合されることが可能である。ユーザーが装置1300をプログラムするか又は他の方法で使用することを可能にする他の出力デバイスは、ディスプレイ1318に加えて、又はそれに代わるものとして提供されることが可能である。出力デバイスがディスプレイであるか、又はそれを含む場合、ディスプレイは、液晶ディスプレイ(LCD)、陰極線管ディスプレイ(CRT)、プラズマ・ディスプレイ、又は有機LEDディスプレイのような発光ダイオード(LED)ディスプレイを含む種々の方法で実現されることが可能である。
【0358】
また、装置1300は、画像感知デバイス1320、例えばカメラ、又は、ユーザー操作装置1300の画像のような画像を感知することが可能な現存する又は今後開発される任意の他の画像感知デバイス1320を含むこと、又はそれらと通信することも可能である。画像感知デバイス1320は、それがユーザー操作装置1300の方へ向けられるように配置されることが可能である。一例では、画像感知デバイス1320の位置及び光軸は、視野が、ディスプレイ1318に直接的に隣接するエリアであって、ディスプレイ1318がそこから可視的であるエリアを含むように、構成されることが可能である。
【0359】
また、装置1300は、サウンド感知デバイス1322、例えばマイクロホン、又は、装置1300付近で音を感知することが可能な、現存する又は今後開発される任意の他のサウンド感知デバイスを含むこと、又はそれらと通信することも可能である。サウンド感知デバイス1322は、それがユーザー操作装置1300に向けられ、ユーザーが装置1300を操作する間に、ユーザーによって為されたサウンド、例えばスピーチ又は他の発話を受信するように構成されることが可能であるように、位置決めされることが可能である。
【0360】
図13は、装置1300のプロセッサ1302及びメモリ1304を単一デバイスに統合されたものとして描いているが、他の構成を利用することも可能である。プロセッサ1302の動作は、直接的に又はローカル・エリア又は他のネットワークを介して結合されることが可能な複数のマシン(各マシンは、1つ以上のプロセッサを有する)にわたって分散されることが可能である。メモリ1304は、ネットワーク・ベースのメモリ又は装置1300のオペレーションを実行する複数のマシン内のメモリ、のような複数のマシンに分散されることが可能である。ここでは単一のバスとして示されているが、装置1300のバス1312は、複数のバスを含んでもよい。更に、セカンダリ・ストレージ1314は、装置1300の他の構成要素に直接的に結合されることが可能であり、又はネットワークを介してアクセスされることが可能であり、且つメモリ・カードのような単一の統合されたユニット又は複数のメモリ・カードのような複数のユニットを含むことが可能である。従って、装置1300は広く多様な構成で実装されることが可能である。
【0361】
図14は、本開示の実施形態によるビデオ・コーディングのための例示的なコーディング・デバイス1400の概略図である。コーディング・デバイス1400は、本願で説明されるように開示される実施形態を実装することに適している。実施形態では、コーディング・デバイス1400は、
図2のビデオ・デコーダ200のようなデコーダ、又は
図1のビデオ・エンコーダ100のようなエンコーダであってもよい。実施形態では、コーディング・デバイス1400は、上述したような、
図2のビデオ・デコーダ200又は
図1のビデオ・エンコーダ100の1つ以上の構成要素であってもよい
【0362】
コーディング・デバイス1400は、データを受信するための入口ポート1420及び受信機ユニット(Rx)1410;データを処理するためのプロセッサ、論理ユニット、又は中央処理ユニット(CPU)1430;データを送信するための送信機ユニット(Tx)1440及び出口ポート1450;データを記憶するためのメモリ1460を含む。コーディング・デバイス1400はまた、光信号又は電気信号の出入りのために、入口ポート1420、受信機ユニット1410、送信機ユニット1440、及び出口ポート1450に結合された光-電(OE)構成要素及び電-光(EO)構成要素を含んでもよい。また、コーディング・デバイス1400は、幾つかの例では、無線送信機及び/又は受信機を含んでもよい。
【0363】
プロセッサ1430は、ハードウェア及びソフトウェアによって実現される。プロセッサ1430は、1つ以上のCPUチップ、コア(例えば、マルチ・コア・プロセッサ)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、及びデジタル信号プロセッサ(DSP)として実装されてもよい。プロセッサ1430は、入口ポート1420、受信機ユニット1410、送信機ユニット1440、出口ポート1450、及びメモリ1460と通信する。プロセッサ1430は、コーディング・モジュール1414を含む。コーディング・モジュール1414は、上述の開示された実施形態を実現する。例えば、コーディング・モジュール1414は、種々のコーディング動作を実現、処理、準備、又は提供する。従って、コーディング・モジュール1414を含むことは、コーディング・デバイス1400の機能に対する実質的な改善をもたらし、コーディング・デバイス1400の異なる状態への変換をもたらす。あるいは、コーディング・モジュール1414は、(例えば、非一時的な媒体に記憶されたコンピュータ・プログラム製品として)メモリ1460に記憶された命令として実現され、プロセッサ1430によって実行される。
【0364】
メモリ1460は、1つ以上のディスク、テープ・ドライブ、及びソリッド・ステート・ドライブを含み、オーバー・フロー・データ・ストレージ・デバイスとして使用され、このようなプログラムが実行のために選択された場合にプログラムを記憶し、プログラムの実行中に読み込まれた命令及びデータを記憶することが可能である。メモリ1460は、揮発性及び/又は不揮発性であってもよく、リード・オンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、ターナリー・コンテンツ・アドレス指定可能メモリ(TCAM)、及び/又はスタティック・ランダム・アクセス・メモリ(SRAM)であってもよい。また、コーディング・デバイス1400は、エンド・ユーザと対話するための入力/出力(I/O)デバイスであってもよい。例えば、コーディング・デバイス1400は、視覚的な出力のためのモニタ等のディスプレイ、オーディオ出力のためのスピーカー、ユーザー入力のためのキーボード/マウス/トラックボール等を含んでもよい。
【0365】
本発明は、本願における様々な実施形態に関連して説明されている。しかしながら、開示された実施形態に対する他の変形例が、図面、開示及び添付の請求項の検討から、クレームされる発明を実施する際に当業者によって理解され達成されることが可能である。請求項において、「含む」という言葉は、他の要素又はステップを排除しておらず、不定冠詞的な「ある」(“a”or“an”)は複数を排除していない。単一のプロセッサ又は他のユニットが、請求項に記載された幾つかのアイテムの機能を充足する可能性がある。ある複数の事項が、異なる従属請求項に普通に記載されているという単なる事実は、これらの事項の組み合わせが有利に利用され得ないことを示してはいない。コンピュータ・プログラムは、他のハードウェアと共に又はその一部として供給される光記憶媒体又はソリッド・ステート媒体のような適切な媒体上に記憶/分配されてもよいが、インターネット又は他の有線又は無線通信システムを介するような他の形態で分配されてもよい。
【0366】
実施形態及び説明が「メモリ」という用語に言及する場合は常に、「メモリ」という用語は、明示的に別意で言及されていない限り、磁気ディスク、光ディスク、リード・オンリ・メモリ(Read-Only Memory,ROM)、ランダム・アクセス・メモリ(Random Access Memory,RAM)・・・[のすべての可能性のあるメモリの列挙]と理解され及び/又はそれらを含むものとする。
【0367】
実施形態及び説明が「ネットワーク」という用語に言及する場合は常に、明示的に別意で言及されていない限り、用語「ネットワーク」は、・・・[のすべての可能なメモリの列挙]と理解され及び/又はそれらを含むものとする。
【0368】
当業者は、種々の図面の「ブロック」(「ユニット」)(方法及び装置)が、(必ずしもハードウェア又はソフトウェアにおける個々の「単位」ではなく)本発明の実施形態の機能を表現又は説明しており、従って装置の実施形態に加えて方法の実施形態(ユニット=ステップ)の機能又は特徴を等しく説明していることを理解するであろう。
【0369】
「ユニット」という用語は、エンコーダ/デコーダの実施形態の機能の例示目的のために単に使用されるに過ぎず、本開示を制限するようには意図されていない。
【0370】
本願で提供される幾つかの実施形態において、開示されるシステム、装置、及び方法は、他の方法で実現されてもよいことが理解されるべきである。例えば、説明される装置の実施形態は単に例示である。例えば、ユニットの分割は、単なる論理機能的な分割であり、実際の実装においては他の分割であってもよい。例えば、複数のユニット又は構成要素は、別のシステムに結合又は統合されてもよく、或いは幾つかの特徴は、無視され或いは実行されなくてもよい。加えて、表示又は説明された相互結合、直接的な結合、又は通信接続は、幾つかのインターフェースを使用することによって実現されてもよい。装置又はユニット間の間接的な結合又は通信接続は、電子的、機械的、又は他の形態で実施されてもよい。
【0371】
別個のパーツとして説明されているユニットは、物理的に別々であってもなくてもよく、また、ユニットとして表示されるパーツは、物理的なユニットであってもなくてもよく、一カ所に配置されていてもよいし、或いは複数のネットワーク・ユニット上に分散されてもよい。ユニットの一部又は全部は、実施形態のソリューションの目的を達成するために、実際のニーズに従って選択されてもよい。
【0372】
更に、本発明の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよいし、又は各ユニットは、物理的に単独で存在してもよいし、又は2つ以上のユニットが1つのユニットに統合されてもよい。
【0373】
本発明の実施形態は、本願で説明される方法及び/又はプロセスの何れかを実行するように構成される処理回路を含む装置、例えば、エンコーダ及び/又はデコーダを更に含んでもよい。
【0374】
実施形態は、ハードウェア、ファームウェア、ソフトウェア、又はそれらの任意の組み合わせとして実現されてもよい。例えば、エンコーダ/符号化又はデコーダ/復号化の機能は、ファームウェア又はソフトウェアを伴う又は伴わない処理回路、例えば、プロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)等によって実行されてもよい。
【0375】
エンコーダ100(及び対応する符号化方法100)及び/又はデコーダ200(及び対応する復号化方法200)の機能は、コンピュータ読み取り可能な媒体に記憶されたプログラム命令によって実現されてもよい。プログラム命令は、実行されると、処理回路、コンピュータ、プロセッサ等に、符号化及び/又は復号化方法のステップを実行させる。コンピュータ読み取り可能な媒体は、ブルーレイ・ディスク、DVD、CD、USB(フラッシュ)ドライブ、ハード・ディスク、ネットワークを介して利用可能なサーバー・ストレージ等のような、プログラムが記憶される非一時的な記憶媒体を含む任意の媒体であるとすることが可能である。
【0376】
本発明の実施形態は、コンピュータ上で実行される場合に本願で説明される任意の方法を実行するためのプログラム・コードを含むコンピュータ・プログラムを含む。
【0377】
本発明の実施形態は、プロセッサによって実行される場合に本願で説明される任意の方法をコンピュータ・システムに実行させるプログラム・コードを含むコンピュータ読み取り可能な媒体であるか又はそれを含む。
【0378】
1つ以上の例において、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実現されてもよい。ソフトウェアで実現される場合、機能は、コンピュータ読み取り可能な媒体上の1つ以上の命令又はコードとして記憶され又は伝送され、ハードウェア・ベースの処理ユニットによって実行されてもよい。コンピュータ読み取り可能な媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ読み取り可能な記憶媒体、又は例えば通信プロトコルに従って、ある場所から他の場所へのコンピュータ・プログラムの転送を促進する任意の媒体を含む通信媒体を含んでもよい。このようにして、コンピュータ読み取り可能な媒体は、一般に、(1)非一時的である有形のコンピュータ読み取り可能な記憶媒体、又は(2)信号又は搬送波のような通信媒体に対応する可能性がある。データ記憶媒体は、本開示で説明される技術の実施のための命令、コード及び/又はデータ構造を検索するために、1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされることが可能な任意の利用可能な媒体であり得る。コンピュータ・プログラム製品は、コンピュータ読み取り可能な媒体を含む可能性がある。
【0379】
例えば、限定ではないが、このようなコンピュータ読み取り可能な記憶媒体は、RAM、ROM、EEPROM、CD-ROM又は他の光ディスク・ストレージ、他の磁気ディスク・ストレージ・デバイス、フラッシュ・メモリ、あるいは、命令又はデータ構造の形態で所望のプログラム・コードを記憶するために使用することが可能であってコンピュータによってアクセスされることが可能な他の任意の媒体を含むことが可能である。また、任意の接続がコンピュータ読み取り可能な媒体と適切に呼ばれる。例えば、同軸ケーブル、光ファイバ・ケーブル、ツイスト・ペア、デジタル加入者回線(DSL)、又は、赤外線、無線、及びマイクロ波のような無線技術を用いて、ウェブサイト、サーバー、又は他のリモート・ソースから命令が伝送される場合、同軸ケーブル、光ファイバ・ケーブル、ツイスト・ペア、DSL、又は、赤外線、無線、及びマイクロ波のような無線技術は、媒体の定義に含まれる。しかしながら、コンピュータ読み取り可能な記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的な媒体を含まず、むしろ非一時的で有形の記憶媒体に向けられることが理解されるべきである。ディスク及びディスクは、本願で使用される場合、コンパクト・ディスク(CD)、レーザー・ディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピー・ディスク及びブルーレイ・ディスクを含み、ディスクは通常磁気的にデータを再生し、ディスクは光学的にレーザーでデータを再生する。上記の組み合わせもまた、コンピュータ読み取り可能な媒体の範囲内に含まれるべきである。
【0380】
命令は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールド・プログラマブル論理アレイ(FPGA)、又は他の同等の集積された又は個別的な論理回路などの1つ以上のプロセッサによって実行されてもよい。従って、本願で使用される「プロセッサ」という用語は、前述の構造の何れか、又は本願で説明された技術の実現に適した他の任意の構造を指す可能性がある。更に、幾つかの態様において、本願で説明される機能は、符号化及び復号化のために構成される専用のハードウェア及び/又はソフトウェア・モジュール内で提供されてもよく、又は組み合わせられたコーデックに組み込まれてもよい。また、この技術は、1つ以上の回路又は論理素子で完全に実現されることが可能である。
【0381】
本開示の技術は、ワイヤレス・ハンドセット、集積回路(IC)、又は一組のIC(例えば、チップ・セット)を含む、広範な種類のデバイス又は装置で実現されてもよい。開示される技術を実行するように構成されるデバイスの機能的側面を強調するために、種々のコンポーネント、モジュール、又はユニットが本開示で説明されているが、必ずしも異なるハードウェア・ユニットによる実現を必要としない。むしろ、上述のように、種々のユニットは、コーデック・ハードウェア・ユニット内で組み合わされてもよく、又は、適切なソフトウェア及び/又はファームウェアと共に、上述したような1つ以上のプロセッサを含む、相互運用性のあるハードウェア・ユニットの集合によって提供されてもよい。
【0382】
幾つかの実施形態が本開示において提供されてきたが、開示されたシステム及び方法は、本開示の精神又は範囲から逸脱することなく、他の多くの特定の形態で具現化され得ることが理解されるべきである。本実施例は、例示的であって限定的ではないものと考えられるべきであり、その意図は、本願の所与の詳細に限定されるものではない。例えば、種々の要素又は構成要素は、別のシステムと組み合わせられ又は統合される可能性があり、或いは特定の特徴が省略され、或いは実装されない可能性がある。
【0383】
更に、様々な実施形態において個別的又は別個に説明及び図示された技術、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく、他のシステム、モジュール、技術、又は方法と組み合わせられ又は統合されることが可能である。互いに結合され、又は直接的に結合され、又は通信するように図示又は議論される他のアイテムは、電気的、機械的、又は他の方法であるかによらず、何らかのインターフェース、デバイス、又は中間構成要素を介して間接的に結合され、又は通信することが可能である。変更、置換、及び代替の他の例は、当業者によって確認可能であり、本願で開示される精神及び範囲から逸脱することなく行われることが可能である。