JP2014534733A - ビデオコード化のデブロッキングフィルタリングのための境界強度値の決定 - Google Patents

ビデオコード化のデブロッキングフィルタリングのための境界強度値の決定 Download PDF

Info

Publication number
JP2014534733A
JP2014534733A JP2014538930A JP2014538930A JP2014534733A JP 2014534733 A JP2014534733 A JP 2014534733A JP 2014538930 A JP2014538930 A JP 2014538930A JP 2014538930 A JP2014538930 A JP 2014538930A JP 2014534733 A JP2014534733 A JP 2014534733A
Authority
JP
Japan
Prior art keywords
edge
video block
video
boundary strength
strength value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014538930A
Other languages
English (en)
Other versions
JP5932049B2 (ja
Inventor
ファン・デア・オーウェラ、ゲールト
カークゼウィックズ、マルタ
ワン、シャンリン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2014534733A publication Critical patent/JP2014534733A/ja
Application granted granted Critical
Publication of JP5932049B2 publication Critical patent/JP5932049B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

ビデオコーダは、第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定することに応答して、第1の境界強度値をエッジと関連付け、このエッジは、第1のビデオブロックと第2のビデオブロックとの境界において発生する。第1のビデオブロックも第2のビデオブロックもイントラ予測されたCUと関連付けられない場合、ビデオコーダは、第2の又は第3の境界強度値をエッジと関連付けることができる。エッジが第1の境界強度値又は第2の境界強度値と関連付けられる場合、ビデオコーダは、エッジと関連付けられるサンプルに1つ以上のデブロッキングフィルタを適用することができる。第3の境界強度値は、デブロッキングフィルタがエッジと関連付けられるサンプルに対して無効にされることを示す。

Description

本出願は、各々の内容全体が参照により本明細書に組み込まれる、2011年10月25日に出願された米国仮出願第61/551,325号、2011年11月2日に出願された米国仮出願第61/554,887号、2011年12月22日に出願された米国仮出願第61/579,488号、及び2012年1月20日に出願された米国仮出願第61/589,143号の利益を主張する。
本開示はビデオコード化に関し、より詳細には、復号されたビデオデータのフィルタリングに関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップ又はデスクトップコンピュータ、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー電話又は衛星無線電話、ビデオ遠隔会議機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、デジタルビデオ情報をより効率的に送信、受信及び記憶するための、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4,Part 10,Advanced Video Coding(AVC)によって定義された規格、現在開発中のHigh Efficiency Video Coding(HEVC)規格、及びそのような規格の拡張に記載されているビデオ圧縮技法のような、ビデオ圧縮技法を実施する。
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減又は除去するために、空間的(イントラピクチャ)予測及び/又は時間的(インターピクチャ)予測を実行する。ブロックベースのビデオコード化の場合、ビデオスライスが、ツリーブロック、コード化単位(CU)及び/又はコード化ノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化された(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化された(P又はB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、又は他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
一般に、本開示は、第1のビデオブロックと第2のビデオブロックとの間で発生するエッジにデブロッキングフィルタを適用するための技法について説明する。エッジにデブロッキングフィルタを適用することで、ブロックベースのコード化により引き起こされる視覚的なアーチファクトの出現を減らすことができる。本明細書で説明されるように、ビデオコーダは、第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定したことに応答して、第1の境界強度値をエッジと関連付けることができ、このエッジは、第1のビデオブロックと第2のビデオブロックとの境界において発生する。第1のビデオブロックも第2のビデオブロックもイントラ予測されたCUと関連付けられない場合、ビデオコーダは、第2の又は第3の境界強度値をエッジと関連付けることができる。エッジが第1の境界強度値又は第2の境界強度値と関連付けられる場合、ビデオコーダは、エッジと関連付けられるサンプルに1つ又は複数のデブロッキングフィルタを適用することができる。第3の境界強度値は、デブロッキングフィルタがエッジと関連付けられるサンプルに対して無効にされることを示す。
本開示は、ビデオデータをコード化する方法について説明する。方法は、第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定したことに応答して、第1の境界強度値をエッジと関連付けることを備え、このエッジは、第1のビデオブロックと第2のビデオブロックとの境界において発生する。方法はまた、第1のビデオブロック及び第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ又は複数の追加の条件が満たされると決定したことに応答して、第2の境界強度値をエッジと関連付けることを備える。加えて、方法は、第1のビデオブロック及び第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ又は複数の追加の条件が満たされないと決定したことに応答して、第3の境界強度値をエッジと関連付けることを備える。方法はまた、エッジが第1の境界強度値又は第2の境界強度値と関連付けられるが第3の境界強度値とは関連付けられない場合、エッジと関連付けられるサンプルに1つ又は複数のデブロッキングフィルタを適用することを備える。
加えて、本開示は、第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定したことに応答して、第1の境界強度値をエッジと関連付けるように構成された、1つ又は複数のプロセッサを備えるビデオコード化装置について説明し、このエッジは、第1のビデオブロックと第2のビデオブロックとの境界において発生する。1つ又は複数のプロセッサは、第1のビデオブロック及び第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ又は複数の追加の条件が満たされると決定したことに応答して、第2の境界強度値をエッジと関連付けるように構成される。1つ又は複数のプロセッサは、第1のビデオブロック及び第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ又は複数の追加の条件が満たされないと決定したことに応答して、第3の境界強度値をエッジと関連付けるように構成される。加えて、1つ又は複数のプロセッサは、エッジが第1の境界強度値又は第2の境界強度値と関連付けられるが第3の境界強度値とは関連付けられない場合、エッジと関連付けられるサンプルにデブロッキングフィルタを適用するように構成される。
本開示はまた、第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定したことに応答して、第1の境界強度値をエッジと関連付けるための手段を備える、ビデオコード化装置について説明し、このエッジは、第1のビデオブロックと第2のビデオブロックとの境界において発生する。ビデオコード化装置はまた、第1のビデオブロック及び第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ又は複数の追加の条件が満たされると決定したことに応答して、第2の境界強度値をエッジと関連付けるための手段を備える。加えて、ビデオコード化装置は、第1のビデオブロック及び第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ又は複数の追加の条件が満たされないと決定したことに応答して、第3の境界強度値をエッジと関連付けるための手段を備える。ビデオコード化装置はまた、エッジが第1の境界強度値又は第2の境界強度値と関連付けられるが第3の境界強度値とは関連付けられない場合、エッジと関連付けられるサンプルに1つ又は複数のデブロッキングフィルタを適用するための手段を備える。
本開示はまた、実行されると、1つ又は複数のプロセッサに、第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定したことに応答して、第1の境界強度値をエッジと関連付けさせる、コンピュータ実行可能命令を記憶する1つ又は複数のコンピュータ可読記憶媒体を備える、コンピュータプログラム製品について説明する。このエッジは、第1のビデオブロックと第2のビデオブロックとの境界において発生する。命令はまた、1つ又は複数のプロセッサに、第1のビデオブロック及び第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ又は複数の追加の条件が満たされると決定したことに応答して、第2の境界強度値をエッジと関連付けさせる。命令はまた、1つ又は複数のプロセッサに、第1のビデオブロック及び第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ又は複数の追加の条件が満たされないと決定したことに応答して、第3の境界強度値をエッジと関連付けさせる。加えて、命令は、1つ又は複数のプロセッサに、エッジが第1の境界強度値又は第2の境界強度値と関連付けられるが第3の境界強度値とは関連付けられない場合、エッジと関連付けられるサンプルへと1つ又は複数のデブロッキングフィルタを適用させる。
1つ又は複数の例の詳細は、添付の図面及び以下の説明に記載されている。他の特徴、目的、及び利点は、その説明及び図面、ならびに特許請求の範囲から明らかになろう。
本開示の技法を利用し得る、例示的なビデオコード化システムを示すブロック図。 本開示の技法を実施し得る、例示的なビデオエンコーダを示すブロック図。 本開示の技法を実施し得る、例示的なビデオデコーダを示すブロック図。 コード化単位と関連付けられるブロック歪みを低減するための例示的なデブロッキング動作を示すフローチャート。 境界強度値を2つのビデオブロックの間のルーマエッジと関連付けるための例示的な動作を示すフローチャート。 境界強度値を2つのビデオブロックの間のクロマエッジと関連付けるための例示的な動作を示すフローチャート。 コード化単位のルーマエッジをデブロックするための例示的な動作を示すフローチャート。 個々のルーマエッジに対してビデオコーダによって実行される、例示的なデブロッキング動作を示すフローチャート。 第1のビデオブロック「A」と第2のビデオブロック「B」との間の垂直エッジにおけるサンプルの例示的な命名を示す概念図。 ルーマエッジのセグメントに強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかどうかを決定するための例示的な動作を示すフローチャート。 コード化単位のクロマエッジをデブロックするための例示的な動作を示すフローチャート。 個々のクロマエッジと関連付けられるCbサンプル又はCrサンプルに対してビデオコーダによって実行される、例示的なデブロッキング動作を示すフローチャート。 例示的なサンプル値のグラフを示す概念図。 例示的なサンプル値のグラフを示す概念図。 例示的なサンプル値のグラフを示す概念図。 例示的なサンプル値のグラフを示す概念図。 例示的なサンプル値のグラフを示す概念図。 例示的なサンプル値のグラフを示す概念図。 例示的なサンプル値のグラフを示す概念図。
添付の図面は、例を示す。添付の図面における、参照番号で指示される要素は、以下の説明における、同じ参照番号で指示される要素に対応する。本開示において、順序を示す言葉(例えば、「第1の」、「第2の」、「第3の」など)で始まる名称をもつ要素は、それらの要素が特定の順序を有することを必ずしも示唆しない。そうではなく、そのような順序を示す言葉は、同じ又は同様のタイプの異なる要素を指すために使用されるにすぎない。
エッジは、第1のビデオブロックと第2のビデオブロックとの境界において発生し得る。本開示では、サンプルの2次元(2D)ブロックを指すために「ビデオブロック」という用語が使用され得る。例えば、第1のビデオブロック及び第2のビデオブロックは、隣接するコード化単位(CU)、又はそのCUの変換単位(TU)若しくは予測単位(PU)と関連付けられる、復号されたビデオブロックであり得る。ビデオコーダは、第1のビデオブロック又は第2のビデオブロックがイントラ予測されたCUと関連付けられると決定したことに応答して、第1の境界強度値をエッジと関連付けることができる。第1のビデオブロックも第2のビデオブロックもイントラ予測されたCUと関連付けられない場合、ビデオコーダは、第2の又は第3の境界強度値をエッジと関連付けることができる。エッジが第1の境界強度値又は第2の境界強度値と関連付けられる場合、ビデオコーダは、エッジと関連付けられるサンプルに1つ又は複数のデブロッキングフィルタを適用することができる。エッジと関連付けられるサンプルは、エッジに対して垂直に延びるサンプルのラインの中のサンプルを含み得る。デブロッキングフィルタは、エッジと関連付けられるブロック歪み(blocking artifacts)の視認性を低下させることができる。ブロック歪みは、ビデオブロックにはもともと存在しなかった、輝度(ルーマ)及び/又は色度(クロマ)の鋭い非連続部分を含み得る。本明細書で使用される場合、「サンプル」という用語は、「画素」という用語と交換可能に使用され得る。
第1のビデオブロック又は第2のビデオブロックがイントラ予測されたCUと関連付けられると決定したことに応答してエッジを第1の境界強度値と関連付けることで、境界強度値をエッジと関連付ける処理を簡略化することができ、これにより、複雑さを低減し、ビデオコーダの性能を向上させることができる。対照的に、第1のビデオブロック又は第2のビデオブロックがイントラ予測されたCUと関連付けられると決定した後で、どの境界強度値をエッジと関連付けるかについての更なる決定をビデオコーダが行うとすると、ビデオコーダは、より複雑になり得るとともに、性能がより低くなり得る。
図1は、本開示の技法を利用することができる例示的なビデオコード化システム10を示すブロック図である。本明細書で使用され説明される場合、「ビデオコーダ」は総称的に、ビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコード化」又は「コード化」という用語は総称的に、ビデオ符号化とビデオ復号とを指し得る。
図1に示されるように、ビデオコード化システム10は、発信源機器12と宛先機器14とを含む。発信源機器12は、符号化されたビデオデータを生成する。宛先機器14は、発信源機器12によって生成された、符号化されたビデオデータを復号することができる。発信源機器12及び宛先機器14は、デスクトップコンピュータ、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォン、所謂「スマート」パッドなどの電話ハンドセット、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータ、モバイルコンピュータ機器などを含む、広範囲にわたる機器を備え得る。幾つかの例では、発信源機器12及び宛先機器14は、ワイヤレス通信のために装備され得る。
宛先機器14は、チャネル16を介して発信源機器12から符号化されたビデオデータを受信することができる。チャネル16は、発信源機器12から宛先機器14に符号化されたビデオデータを移動することが可能な、任意のタイプの媒体又は機器を備え得る。一例では、チャネル16は、発信源機器12が符号化されたビデオデータを宛先機器14にリアルタイムで直接送信することを可能にする通信媒体を備え得る。この例では、発信源機器12は、ワイヤレス通信プロトコルのような通信規格に従って、符号化されたビデオデータを変調することができ、変調されたビデオデータを宛先機器14に送信することができる。通信媒体は、高周波(RF)スペクトル又は1つ又は複数の物理伝送線路のような、ワイヤレス通信媒体又は有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークのような、パケットベースネットワークの一部を形成し得る。通信媒体は、発信源機器12から宛先機器14への通信を支援する、ルータ、スイッチ、基地局、又は他の機器を含み得る。
別の例では、チャネル16は、発信源機器12によって生成された符号化されたビデオデータを記憶する、記憶媒体に対応し得る。この例では、宛先機器14は、ディスクアクセス又はカードアクセスを介して、記憶媒体にアクセスすることができる。記憶媒体は、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、又は符号化されたビデオデータを記憶するための他の適切なデジタル記憶媒体など、種々のローカルにアクセスされるデータ記憶媒体を含み得る。更なる例では、チャネル16は、発信源機器12によって生成された符号化されたビデオを記憶する、ファイルサーバ又は別の中間記憶機器を含み得る。この例では、宛先機器14は、ストリーミング又はダウンロードを介して、ファイルサーバ又は他の中間記憶機器に記憶された、符号化されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶することと、符号化されたビデオデータを宛先機器14に送信することとが可能な、あるタイプのサーバであり得る。例示的なファイルサーバは、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(network attached storage(NAS))機器、及びローカルディスクドライブを含む。宛先機器14は、インターネット接続を含む任意の標準のデータ接続を通じて、符号化されたビデオデータにアクセスし得る。データ接続の例示的なタイプは、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適切な、ワイヤレスチャネル(例えば、Wi−Fi接続)、有線接続(例えば、DSL、ケーブルモデムなど)、又は両方の組合せを含み得る。ファイルサーバからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はその両方の組合せであり得る。
本開示の技法は、ワイヤレスの用途又は設定には限定されない。本技法は、無線を通じたテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の用途など、種々のマルチメディア用途のいずれかをサポートするビデオコード化に適用され得る。幾つかの例では、ビデオコード化システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び/又はビデオ電話などの用途をサポートするために、単方向又は双方向のビデオ送信をサポートするように構成され得る。
図1の例では、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)及び/又は送信機を含み得る。発信源機器12において、ビデオ発信源18は、撮像装置、例えばビデオカメラ、以前に撮影されたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、及び/又は、ビデオデータを生成するためのコンピュータグラフィックスシステムのような発信源、若しくはそのような発信源の組合せを含み得る。
ビデオエンコーダ20は、撮影されたビデオデータ、以前に撮影されたビデオデータ、又はコンピュータにより生成されたビデオデータを符号化し得る。符号化されたビデオデータは、発信源機器12の出力インターフェース22を介して宛先機器14に直接送信され得る。符号化されたビデオデータはまた、復号及び/又は再生のための宛先機器14によるその後のアクセスのために、記憶媒体又はファイルサーバ上に記憶され得る。
図1の例において、宛先機器14は、入力インターフェース28と、ビデオデコーダ30と、表示装置32とを含む。幾つかの例では、入力インターフェース28は、受信機及び/又はモデムを含み得る。宛先機器14の入力インターフェース28は、チャネル16を通じて符号化されたビデオデータを受信する。符号化されたビデオデータは、ビデオデータを表すビデオエンコーダ20によって生成される種々のシンタクス要素を含み得る。そのようなシンタクス要素は、通信媒体上で送信される、記憶媒体上に記憶される、又はファイルサーバ上に記憶される、符号化されたビデオデータとともに含まれ得る。
表示装置32は、宛先機器14と一体であってよく、又はその外部にあってよい。幾つかの例では、宛先機器14は、一体型表示装置を含んでよく、また、外部表示装置とインターフェースするように構成され得る。他の例では、宛先機器14は表示装置であり得る。一般に、表示装置32は、復号されたビデオデータをユーザに表示する。表示装置32は、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は別のタイプの表示装置など、種々の表示装置のいずれかを備え得る。
ビデオエンコーダ20及びビデオデコーダ30は、現在開発中の高効率ビデオコード化(HEVC)規格などのビデオ圧縮規格に従って動作することができ、HEVCテストモデル(HM)に準拠することができる。或いは、ビデオエンコーダ20及びビデオデコーダ30は、代替的にMPEG−4、Part 10、Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格、又はそのような規格の拡張版のような、他のプロプライエタリ規格又は業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコード化規格にも限定されない。ビデオ圧縮規格の他の例には、MPEG−2及びITU−T H.263がある。
図1の例には示されていないが、ビデオエンコーダ20及びビデオデコーダ30は各々、オーディオエンコーダ及びオーディオデコーダと統合されてよく、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なMUX−DEMUXユニット、又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、幾つかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
この場合も、図1は例にすぎず、本開示の技法は、符号化機器と復号機器との間のデータ通信を必ずしも含むとは限らないビデオコード化設定(例えば、ビデオ符号化又はビデオ復号)に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われ得る。符号化機器はデータを符号化してメモリに記憶することができ、及び/又は、復号機器はメモリからデータを取り出して復号することができる。多くの例では、符号化及び復号は、互いに通信しないが、メモリにデータを符号化し、及び/又はメモリからデータを取り出して復号するだけである機器によって実行される。
ビデオエンコーダ20及びビデオデコーダ30は各々、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェアのような、種々の好適な回路のいずれか、又はそれらの任意の組合せとして実施され得る。本技法が部分的にソフトウェアで実施されるとき、機器は、好適な非一時的コンピュータ可読記憶媒体にソフトウェアの命令を記憶することができ、1つ又は複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行することができる。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ又は複数のエンコーダ又はデコーダ中に含まれてよく、そのいずれも、それぞれの機器において複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
上で手短に述べられたように、ビデオエンコーダ20は、ビデオデータを符号化する。ビデオデータは、1つ又は複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。幾つかの例では、ピクチャは、ビデオ「フレーム」と呼ばれ得る。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20は、ビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化された表現を形成する、ビットのシーケンスを含み得る。ビットストリームは、コード化されたピクチャと、関連するデータとを含み得る。コード化されたピクチャとは、ピクチャのコード化された表現である。
ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中の各ピクチャに対して符号化動作を実行することができる。ビデオエンコーダ20がピクチャに対して符号化動作を実行するとき、ビデオエンコーダ20は、一連のコード化されたピクチャと、関連するデータとを生成することができる。関連するデータは、シーケンスパラメータセットと、ピクチャパラメータセットと、適応パラメータセットと、他のシンタクス構造とを含み得る。シーケンスパラメータセット(SPS)は、ピクチャの0個以上のシーケンスに適用可能なパラメータを含み得る。ピクチャパラメータセット(PPS)は、0個以上のピクチャに適用可能なパラメータを含み得る。適応パラメータセット(APS)は、0個以上のピクチャに適用可能なパラメータを含み得る。
コード化されたピクチャを生成するために、ビデオエンコーダ20は、ピクチャを等しいサイズのビデオブロックに区分することができる。ビデオブロックの各々は、ツリーブロックと関連付けられる。幾つかの例では、ツリーブロックは、最大コード化単位(LCU)とも呼ばれ得る。HEVCのツリーブロックは、H.264/AVCのような従来の規格のマクロブロックに広い意味で類似し得る。しかしながら、ツリーブロックは、特定のサイズに必ずしも限定されるものではなく、1つ又は複数のコード化単位(CU)を含み得る。ビデオエンコーダ20は、4分木区分を使用して、ツリーブロックのビデオブロックを、CUと関連付けられるビデオブロックへと区分することができるので、「ツリーブロック」という名前である。
幾つかの例では、ビデオエンコーダ20は、ピクチャを複数のスライスに区分することができる。スライスの各々は、整数個のCUを含み得る。幾つかの例では、スライスは、整数個のツリーブロックを備える。他の例では、スライスの境界は、ツリーブロック内にあり得る。
ピクチャに対して符号化動作を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化動作を実行することができる。ビデオエンコーダ20がスライスに対して符号化動作を実行すると、ビデオエンコーダ20は、スライスと関連付けられた符号化されたデータを生成することができる。スライスと関連付けられた符号化されたデータは、「コード化されたスライス」と呼ばれ得る。
コード化されたスライスを生成するために、ビデオエンコーダ20は、スライス中の各ツリーブロックに対して符号化動作を実行することができる。ビデオエンコーダ20がツリーブロックに対して符号化動作を実行すると、ビデオエンコーダ20は、コード化されたツリーブロックを生成することができる。コード化されたツリーブロックは、ツリーブロックの符号化されたバージョンを表すデータを備え得る。
コード化されたツリーブロックを生成するために、ビデオエンコーダ20は、ツリーブロックのビデオブロック上で4分木区分を再帰的に実行して、ビデオブロックを徐々により小さいビデオブロックへと分けることができる。より小さいビデオブロックの各々は、異なるCUと関連付けられ得る。例えば、ビデオエンコーダ20は、ツリーブロックのビデオブロックを4つの等しいサイズのサブブロックに区分し、サブブロックの1つ又は複数を、4つの等しいサイズのサブサブブロックに区分することができ、以下同様である。ビットストリーム中の1つ又は複数のシンタクス要素は、ビデオエンコーダ20がツリーブロックのビデオブロックを区分できる最大の回数を示し得る。CUのビデオブロックは、正方形の形状であり得る。CUのビデオブロックのサイズ(即ち、CUのサイズ)は、8×8の画素から、最大で64×64以上の画素を有するツリーブロックのビデオブロックのサイズ(即ち、ツリーブロックのサイズ)にまでわたり得る。
ビデオエンコーダ20は、ツリーブロックの各々の区分されていないCUに対して符号化動作を実行することができる。区分されていないCUは、ビデオブロックが他のCUのためのビデオブロックへと区分されていない、CUである。区分されていないCUに対して符号化動作を実行することの一部として、ビデオエンコーダ20は、CUのために1つ又は複数の予測単位(PU)を生成することができる。CUのPUの各々は、CUのビデオブロック内の異なるビデオブロックと関連付けられ得る。ビデオエンコーダ20は、CUの各PUの、予測されたビデオブロックを生成することができる。PUの予測されたビデオブロックは、サンプルのブロックであってよい。ビデオエンコーダ20は、イントラ予測又はインター予測を使用して、PUの予測されたビデオブロックを生成することができる。
ビデオエンコーダ20がイントラ予測を使用してPUの予測されたビデオブロックを生成する場合、ビデオエンコーダ20は、PUと関連付けられるピクチャの復号されたサンプルに基づいて、PUの予測されたビデオブロックを生成することができる。ビデオエンコーダ20がインター予測を使用してPUの予測されたビデオブロックを生成する場合、ビデオエンコーダ20は、PUと関連付けられるピクチャ以外のピクチャの復号された値に基づいて、PUの予測されたビデオブロックを生成することができる。ビデオエンコーダ20がイントラ予測を使用してCUのPUの予測されたビデオブロックを生成する場合、CUはイントラ予測されたCUである。
ビデオエンコーダ20がインター予測を使用してPUの予測されたビデオブロックを生成する場合、ビデオエンコーダ20は、PUの動き情報を生成することができる。PUの動き情報は、PUのビデオブロックに対応する別のピクチャの部分を示し得る。言い換えれば、PUの動き情報は、PUの「参照サンプル」を示し得る。ビデオエンコーダ20は、PUの動き情報によって示される他のピクチャの部分に基づいて、PUの予測されたビデオブロックを生成することができる。ビデオエンコーダ20がインター予測を使用してCUのPUの予測されたビデオブロックを生成する場合、CUはインター予測されたCUである。
ビデオエンコーダ20がCUの1つ又は複数のPUの予測されたビデオブロックを生成した後、ビデオエンコーダ20は、CUのPUの予測されたビデオブロックに基づいて、CUの残差データを生成することができる。CUの残差データは、CUのPUの予測されたビデオブロック中のサンプルと、CUの元のビデオブロック中のサンプルとの差を示し得る。
更に、区分されていないCUに対して符号化動作を実行することの一部として、ビデオエンコーダ20は、CUの残差データに対して再帰的な4分木区分を実行して、CUの残差データを、CUの変換単位(TU)と関連付けられる残差データの1つ又は複数のブロック(即ち、残差ビデオブロック)へと区分することができる。CUの各TUは、異なる残差ビデオブロックと関連付けられ得る。ビデオコーダ20は、CUの各TUに対して変換動作を実行することができる。
ビデオエンコーダ20がTUに対して変換動作を実行すると、ビデオエンコーダ20は、TUと関連付けられる残差ビデオブロックに対して1つ又は複数の変換を適用して、TUと関連付けられる1つ又は複数の変換係数ブロック(即ち、変換係数のブロック)を生成することができる。概念的には、変換係数ブロックは、変換係数の2次元(2D)行列(two-dimensional (2D) matrix)であってよい。
変換係数ブロックを生成した後、ビデオエンコーダ20は、変換係数ブロックに対して量子化動作を実行することができる。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、更なる圧縮を実現する処理を指す。量子化処理は、変換係数の一部又は全部と関連付けられるビット深度を低減することができる。例えば、量子化中にnビットの変換係数がmビットの変換係数に切り捨てられてよく、但し、nはmよりも大きい。
ビデオエンコーダ20は、各CUを、量子化パラメータ(QP)値と関連付けることができる。CUと関連付けられるQP値は、ビデオエンコーダ20が、CUと関連付けられる変換係数ブロックをどのように量子化するかを、決定し得る。ビデオエンコーダ20は、CUと関連付けられるQP値を調整することによって、CUと関連付けられる変換係数ブロックに適用される量子化の程度を調整することができる。
ビデオエンコーダ20が変換係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数をスキャンして、変換係数レベルの1次元ベクトルを生成することができる。ビデオエンコーダ20は、1次元ベクトルをエントロピー符号化することができる。ビデオエンコーダ20はまた、ビデオデータと関連付けられる他のシンタクス要素もエントロピー符号化することができる。
ビデオエンコーダ20によって生成されるビットストリームは、一連のネットワーク抽象化レイヤ(NAL)単位を含み得る。NAL単位の各々は、NAL単位中のデータのタイプの指示と、データを含むバイトとを含むシンタクス構造であり得る。例えば、NAL単位は、シーケンスパラメータセット、ピクチャパラメータセット、コード化されたスライス、補助強化情報(SEI)、アクセス単位区切り文字、フィラーデータ、又は別のタイプのデータを表すデータを含み得る。NAL単位中のデータは、エントロピー符号化された変換係数ブロック、動き情報などのような、エントロピー符号化されたシンタクス構造を含み得る。
ビデオデコーダ30は、ビデオエンコーダ20によって生成されるビットストリームを受け取ることができる。ビットストリームは、ビデオエンコーダ20によって符号化されるビデオデータのコード化された表現を含み得る。ビデオデコーダ30がビットストリームを受け取ると、ビデオデコーダ30は、ビットストリームに対して解析動作を実行することができる。ビデオデコーダ30が解析動作を実行すると、ビデオデコーダ30は、ビットストリームからシンタクス要素を抽出することができる。ビデオデコーダ30は、ビットストリームから抽出されたシンタクス要素に基づいて、ビデオデータのピクチャを復元することができる。シンタクス要素に基づいてビデオデータを復元するための処理は、一般に、シンタクス要素を生成するためにビデオエンコーダ20によって実行される処理の逆であり得る。
ビデオデコーダ30がCUと関連付けられるシンタクス要素を抽出した後、ビデオデコーダ30は、シンタクス要素に基づいて、CUのPUの予測されたビデオブロックを生成することができる。加えて、ビデオデコーダ30は、CUのTUと関連付けられる変換係数ブロックを逆量子化することができる。ビデオデコーダ30は、変換係数ブロックに対して逆変換を実行して、CUのTUと関連付けられる残差ビデオブロックを復元することができる。予測されたビデオブロックを生成し、残差ビデオブロックを復元した後、ビデオデコーダ30は、予測されたビデオブロック及び残差ビデオブロックに基づいて、CUのビデオブロックを復元することができる。このようにして、ビデオデコーダ30は、ビットストリーム中のシンタクス要素に基づいて、CUのビデオブロックを決定することができる。
CUのビデオブロックを復元した後、ビデオデコーダ30は、デブロッキング動作を実行して、CUと関連付けられるブロック歪みを低減することができる。このデブロッキング動作を実行するために、ビデオデコーダ30は、CUと関連付けられるTUエッジとPUエッジとを識別することができる。TUエッジは、CUのTUと関連付けられる残差ビデオブロックのセグメント又は一式のエッジに対応し得る。PUエッジは、CUのPUと関連付けられる予測されたビデオブロックのセグメント又は一式のエッジに対応し得る。CUと関連付けられるブロック歪みは、CUと関連付けられるTUエッジ及びPUエッジにおいて発生する傾向がある。
TUエッジとPUエッジとを識別した後で、ビデオデコーダ30は、境界強度値(boundary strength values)をTUエッジ及びPUエッジと関連付けることができる。以下で説明されるように、ビデオデコーダ30は、TUエッジ及びPUエッジと関連付けられる境界強度値を使用して、TUエッジ及びPUエッジと関連付けられるサンプルにデブロッキングフィルタを適用するかどうかということと、どのように適用するかということとを決定することができる。
本開示の技法によれば、ビデオデコーダ30は、第1のビデオブロック又は第2のビデオブロックがイントラ予測されたCUと関連付けられると決定したことに応答して、第1の境界強度値をエッジと関連付けることができる。エッジは、第1のビデオブロックと第2のビデオブロックとの境界において発生する、TUエッジ又はPUエッジであり得る。ビデオデコーダ30は、第1のビデオブロック及び第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ又は複数の追加の条件が満たされると決定したことに応答して、第2の境界強度値をエッジと関連付けることができる。ビデオデコーダ30は、第1のビデオブロック及び第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ又は複数の追加の条件が満たされないと決定したことに応答して、第3の境界強度値をエッジと関連付けることができる。ビデオデコーダ30は、エッジが第1の境界強度値又は第2の境界強度値と関連付けられるが第3の境界強度値とは関連付けられない場合、エッジと関連付けられるサンプルに1つ又は複数のデブロッキングフィルタを適用することができる。
ビデオエンコーダ20は、復号ピクチャバッファに復元されたビデオブロックを記憶する前に、同様のデブロッキング動作を実行して、CUと関連付けられる復元されたビデオブロック中のブロック歪みを低減することができる。従って、「ビデオコーダ」(即ち、ビデオエンコーダ又はビデオデコーダ)は、上で説明されたデブロッキング動作を実行することができる。
図2は、本開示の技法を実施するように構成された例示的なビデオエンコーダ20を示すブロック図である。図2は、説明を目的に与えられており、本開示において広く例示され説明される技法を限定するものと見なされるべきではない。説明のために、本開示は、HEVCコード化の状況において、ビデオエンコーダ20について説明する。しかしながら、本開示の技法は、他のコード化規格又は方法にも適用可能であり得る。
図2の例において、ビデオエンコーダ20は、複数の機能コンポーネントを含む。ビデオエンコーダ20の機能コンポーネントは、予測モジュール100と、残差生成モジュール102と、変換モジュール104と、量子化モジュール106と、逆量子化モジュール108と、逆変換モジュール110と、復元モジュール112と、フィルタモジュール113と、復号ピクチャバッファ114と、エントロピー符号化モジュール116とを含む。予測モジュール100は、動き推定モジュール122と、動き補償モジュール124と、イントラ予測モジュール126とを含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、又は異なる機能コンポーネントを含んでよい。更に、動き推定モジュール122と動き補償モジュール124は、高度に統合され得るが、図2の例では、説明のために別々に表されている。
ビデオエンコーダ20は、ビデオデータを受信することができる。ビデオエンコーダ20は、様々な発信源からビデオデータを受信することができる。例えば、ビデオエンコーダ20は、ビデオ発信源18(図1)又は別の発信源からビデオデータを受信することができる。ビデオデータは、一連のピクチャを表し得る。ビデオデータを符号化するために、ビデオエンコーダ20は、ピクチャの各々に対して符号化動作を実行することができる。ピクチャに対して符号化動作を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化動作を実行することができる。スライスに対する符号化動作を実行することの一部として、ビデオエンコーダ20は、スライス中のツリーブロックに対して符号化動作を実行することができる。
ツリーブロックに対して符号化動作を実行することの一部として、予測モジュール100は、ツリーブロックのビデオブロックに対して4分木区分を実行して、ビデオブロックを徐々により小さいビデオブロックへと分けることができる。より小さいビデオブロックの各々は、異なるCUと関連付けられ得る。例えば、予測モジュール100は、ツリーブロックのビデオブロックを4つの等しいサイズのサブブロックに区分し、サブブロックの1つ又は複数を、4つの等しいサイズのサブサブブロックに区分することができ、以下同様である。
CUと関連付けられるビデオブロックのサイズは、8×8サンプルから、最大で64×64サンプル以上のツリーブロックのサイズにまで、わたり得る。本開示では、「N×N(NxN)」及び「N×N(N by N)」は、垂直方向の寸法及び水平方向の寸法に関するビデオブロックのサンプルの寸法、例えば、16×16(16x16)サンプル又は16×16(16 by 16)サンプルを指すために交換可能に使用され得る。一般に、16×16のビデオブロックは、垂直方向に16個のサンプルを有し(y=16)、水平方向に16個のサンプルを有する(x=16)。同様に、N×Nのブロックは、一般に、垂直方向にN個のサンプルを有し、水平方向にN個のサンプルを有し、Nは非負整数値を表す。
更に、ツリーブロックに対して符号化動作を実行することの一部として、予測モジュール100は、ツリーブロック用の階層的な4分木データ構造を生成することができる。例えば、ツリーブロックは、4分木データ構造のルートノードに対応し得る。予測モジュール100が、ツリーブロックのビデオブロックを4つのサブブロックに区分する場合、ルートノードは、4分木データ構造中に4つの子ノードを有する。子ノードの各々は、サブブロックの1つと関連付けられるCUに対応する。予測モジュール100が、サブブロックの1つを4つのサブサブブロックに区分する場合、サブブロックと関連付けられるCUに対応するノードは、サブサブブロックの1つと関連付けられるCUに各々が対応する、4つの子ノードを有し得る。
4分木データ構造の各ノードは、対応するツリーブロック又はCUのシンタクスデータ(例えば、シンタクス要素)を含み得る。例えば、4分木の中のノードは、そのノードに対応するCUのビデオブロックが4つのサブブロックに区分される(即ち、分割される)かどうかを示す分割フラグを含み得る。CUのシンタクス要素は、再帰的に定義されてよく、CUのビデオブロックがサブブロックに分割されるかどうかに依存してよい。ビデオブロックが区分されていないCUは、4分木データ構造におけるリーフノードに対応し得る。コード化されたツリーブロックは、対応するツリーブロック用の4分木データ構造に基づくデータを含み得る。
ビデオエンコーダ20は、ツリーブロックの各々の区分されていないCUに対して符号化動作を実行することができる。ビデオエンコーダ20が区分されていないCUに対して符号化動作を実行すると、ビデオエンコーダ20は、区分されていないCUの符号化された表現を表すデータを生成する。
CUに対して符号化動作を実行することの一部として、予測モジュール100は、CUの1つ又は複数のPUの中で、CUのビデオブロックを区分することができる。ビデオエンコーダ20及びビデオデコーダ30は、様々なPUサイズをサポートすることができる。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20及びビデオデコーダ30は、2N×2N又はN×NというPUサイズと、2N×2N、2N×N、N×2N、N×N、又は同様の対称的なPUサイズでのインター予測とをサポートすることができる。ビデオエンコーダ20及びビデオデコーダ30は、2N×nU、2N×nD、nL×2N、及びnR×2NというPUサイズに対する非対称区分もサポートすることができる。幾つかの例では、予測モジュール100は、CUのビデオブロックの辺に直角に接触しない境界に沿って、CUのPUの間でCUのビデオブロックを区分するように、幾何学的な区分を実行することができる。
動き推定モジュール122及び動き補償モジュール124は、CUの各PUに対してインター予測を実行することができる。インター予測は、時間圧縮を実現し得る。PUに対してインター予測を実行することによって、動き推定モジュール122及び動き補償モジュール124は、CUと関連付けられるピクチャ以外の参照ピクチャの復号されたサンプルに基づいて、PUの予測データを生成することができる。PUの予測データは、予測されたビデオブロックと様々なシンタクス要素とを含み得る。
更に、動き推定モジュール122がPUに関して動き推定動作を実行するとき、動き推定モジュール122は、PUの1つ又は複数の動きベクトルを生成することができる。例えば、スライスは、イントラスライス(即ち、Iスライス)、予測されたスライス(即ち、Pスライス)、又は双方向予測されたスライス(即ち、Bスライス)であり得る。動き推定モジュール122及び動き補償モジュール124は、PUがIスライス中にあるか、Pスライス中にあるか、Bスライス中にあるかに応じて、CUのPUに対して様々な動作を実行することができる。Iスライス中では、全てのPUがイントラ予測される。従って、PUがIスライス中にある場合、動き推定モジュール122及び動き補償モジュール124は、PUに対してインター予測を実行しない。
PUがPスライス中にある場合、PUを含むピクチャは、「リスト0」と呼ばれる参照ピクチャのリストと関連付けられる。リスト0中の参照ピクチャの各々は、復号の順序での後続ピクチャのインター予測に使用され得るサンプルを含む。動き推定モジュール122が、Pスライス中のPUに関して動き推定動作を実行するとき、動き推定モジュール122は、PUの参照サンプルについて、リスト0中の参照ピクチャを検索することができる。PUの参照サンプルは、PUのビデオブロック中のサンプルに最も密接に対応するサンプルのセット、例えば、サンプルのブロックであり得る。動き推定モジュール122は、種々の評価基準を使用して、参照ピクチャ中のサンプルのセットがどの程度密接にPUのビデオブロック中のサンプルに対応するかを決定することができる。例えば、動き推定モジュール122は、絶対値差分和(SAD)、2乗差分和(SSD)、又は他の差分による評価基準によって、参照ピクチャ中のサンプルのセットがどの程度密接に、PUのビデオブロック中のサンプルに対応するかを、決定することができる。
Pスライス中のPUの参照サンプルを識別した後、動き推定モジュール122は、参照サンプルを含む、リスト0中の参照ピクチャを示す参照インデックスと、PUと参照サンプルの間の空間変位を示す動きベクトルとを生成することができる。様々な例において、動き推定モジュール122は、動きベクトルを可変の精度で生成することができる。例えば、動き推定モジュール122は、1/4サンプル精度、1/8サンプル精度、又は他の分数のサンプル精度で、動きベクトルを生成することができる。分数のサンプル精度の場合、参照サンプル値は、参照ピクチャ中の整数位置のサンプル値から補間され得る。動き推定モジュール122は、PUの動き情報を、エントロピー符号化モジュール116及び動き補償モジュール124に出力することができる。PUの動き情報は、参照インデックスとPUの動きベクトルとを含み得る。動き補償モジュール124は、PUの動き情報を使用して、PUの参照サンプルを識別し取り出すことができる。
PUがBスライス中にある場合、PUを含むピクチャは、「リスト0」及び「リスト1」と呼ばれる参照ピクチャの2つのリストと関連付けられ得る。リスト0中の参照ピクチャの各々は、復号の順序での後続ピクチャのインター予測に使用され得るサンプルを含む。リスト1中の参照ピクチャは、復号の順序ではピクチャの前に現れるが、提示の順序ではピクチャの後に現れる。幾つかの例では、Bスライスを含むピクチャは、リスト0とリスト1の組合せである、リストの組合せと関連付けられ得る。
更に、PUがBスライス中にある場合、動き推定モジュール122は、PUについての単方向予測又は双方向予測を実行することができる。動き推定モジュール122が、PUについての単方向予測を実行するとき、動き推定モジュール122は、PUの参照サンプルについて、リスト0又はリスト1の参照ピクチャを検索することができる。動き推定モジュール122は次いで、参照サンプルを含む、リスト0又はリスト1中の参照ピクチャを示す参照インデックスと、PUと参照サンプルとの間の空間変位を示す動きベクトルとを生成することができる。動き推定モジュール122は、PUの動き情報を示すシンタクス要素を、エントロピー符号化モジュール116及び動き補償モジュール124に出力することができる。PUの動き情報は、参照インデックスと、予測方向インジケータと、PUの動きベクトルとを含み得る。予測方向インジケータは、参照インデックスが、リスト0中の参照ピクチャを示すか、リスト1中の参照ピクチャを示すかを示し得る。動き補償モジュール124は、PUの動き情報を使用して、PUの参照サンプルを識別し取り出すことができる。
動き推定モジュール122が、PUについての双方向予測を実行するとき、動き推定モジュール122は、PUの参照サンプルについて、リスト0中の参照ピクチャを検索することができ、また、PUの別の参照サンプルについて、リスト1中の参照ピクチャを検索することができる。動き推定モジュール122は次いで、参照サンプルを含む、リスト0及びリスト1中の参照ピクチャを示す参照インデックスと、参照サンプルとPUとの間の空間変位を示す動きベクトルとを生成することができる。動き推定モジュール122は、PUの動き情報を示すシンタクス要素を、エントロピー符号化モジュール116及び動き補償モジュール124に出力することができる。PUの動き情報は、参照インデックスとPUの動きベクトルとを含み得る。動き補償モジュール124は、動き情報を使用して、PUの参照サンプルを識別し取り出すことができる。
幾つかの例では、動き推定モジュール122は、PUの動き情報のフルセットをエントロピー符号化モジュール116に出力しない。そうではなく、動き推定モジュール122は、別のPUの動き情報を参照して、PUの動き情報を信号伝達(signaling)し得る。例えば、動き推定モジュール122は、PUの動き情報が、隣接するPUの動き情報と十分に類似していると決定することができる。この例では、動き推定モジュール122は、PUと関連付けられるCUの4分木ノードにおいて、PUが隣接するPUと同じ動き情報を有することを、ビデオデコーダ30に対して示す値を示し得る。別の例では、動き推定モジュール122は、PUと関連付けられるCUと関連付けられた4分木ノードにおいて、隣接するPUと動きベクトル差(MVD)とを特定し得る。動きベクトル差は、PUの動きベクトルと、示される隣接するPUの動きベクトルとの差を示す。ビデオデコーダ30は、示される隣接するPUの動きベクトルと、動きベクトル差とを使用して、PUの動きベクトルを予測することができる。第2のPUの動き情報を信号伝達するときに第1のPUの動き情報を参照することによって、ビデオエンコーダ20は、より少数のビットを使用して、第2のPUの動き情報を信号伝達することが可能であり得る。
CUに対して符号化動作を実行することの一部として、イントラ予測モジュール126は、CUのPUに対してイントラ予測を実行することができる。イントラ予測は、空間圧縮を実現し得る。イントラ予測モジュール126がPUに対してイントラ予測を実行するとき、イントラ予測モジュール126は、同じピクチャ中の他のPUの復号されたサンプルに基づいて、PUの予測データを生成することができる。PUの予測データは、予測されたビデオブロックと様々なシンタクス要素とを含み得る。イントラ予測モジュール126は、Iスライス、Pスライス、及びBスライスの中のPUに対して、イントラ予測を実行することができる。
PUに対してイントラ予測を実行するために、イントラ予測モジュール126は、複数のイントラ予測モードを使用して、PUの予測データの複数のセットを生成することができる。イントラ予測モジュール126が、イントラ予測モードを使用して、PUの予測データのセットを生成するとき、イントラ予測モジュール126は、イントラ予測モードと関連付けられる方向及び/又は傾きに、隣接するPUのビデオブロックからPUのビデオブロックにわたって、サンプルを延ばすことができる。隣接するPUは、PU、CU及びツリーブロックに対して左から右、上から下の符号化順序を仮定すると、PUの上、上と右、上と左、又は左にあり得る。イントラ予測モジュール126は、PUのサイズに応じて、様々な数のイントラ予測モード、例えば、33個の方向性イントラ予測モードを使用することができる。
予測モジュール100は、PUについての、動き補償モジュール124によって生成された予測データ、又はPUについての、イントラ予測モジュール126によって生成された予測データの中から、PUの予測データを選択することができる。幾つかの例では、予測モジュール100は、予測データのセットのレート/歪みの評価基準に基づいて、PUの予測データを選択する。
予測モジュール100が、イントラ予測モジュール126によって生成された予測データを選択する場合、予測モジュール100は、PUの予測データを生成するのに使用されたイントラ予測モード、即ち、選択されたイントラ予測モードを信号伝達することができる。予測モジュール100は、選択されたイントラ予測モードを様々な方法で信号伝達することができる。例えば、選択されたイントラ予測モードは、隣接するPUのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接するPUのイントラ予測モードは、現在のPUに対して最もあり得るモードであり得る。従って、予測モジュール100は、選択されたイントラ予測モードが隣接するPUのイントラ予測モードと同じであることを示すための、シンタクス要素を生成することができる。
予測モジュール100がCUのPUの予測データを選択した後、残差生成モジュール102は、CUのビデオブロックからCUのPUの予測されたビデオブロックを差し引くことによって、CUの残差データを生成することができる。CUの残差データは、CUのビデオブロック中のサンプルの様々なサンプル成分に対応する、2D残差ビデオブロックを含み得る。例えば、残差データは、CUのPUの予測されたビデオブロック中のサンプルの輝度成分と、CUの元のビデオブロック中のサンプルの輝度成分との差に対応する、残差ビデオブロックを含み得る。加えて、CUの残差データは、CUのPUの予測されたビデオブロック中のサンプルのクロミナンス成分と、CUの元のビデオブロック中のサンプルのクロミナンス成分との差に対応する、残差ビデオブロックを含み得る。
予測モジュール100は、4分木区分を実行して、CUの残差ビデオブロックをサブブロックへと区分することができる。各々の分割されていない残差ビデオブロックは、CUの異なるTUと関連付けられ得る。CUのTUと関連付けられる残差ビデオブロックのサイズ及び位置は、CUのPUと関連付けられるビデオブロックのサイズ及び位置に基づいてよく、又は基づかなくてよい。「残差4分木」(RQT)として知られる4分木構造は、残差ビデオブロックの各々と関連付けられるノードを含み得る。CUのTUは、RQTのリーフノードに対応し得る。
変換モジュール104は、TUと関連付けられる残差ビデオブロックに1つ又は複数の変換を適用することによって、CUの各TUのための1つ又は複数の変換係数ブロックを生成することができる。変換係数ブロックの各々は、変換係数の2D行列であり得る。変換モジュール104は、TUと関連付けられる残差ビデオブロックに様々な変換を適用することができる。例えば、変換モジュール104は、離散コサイン変換(DCT)、方向変換、又は概念的に同様の変換を、TUと関連付けられる残差ビデオブロックに適用することができる。
変換モジュール104が、TUと関連付けられる変換係数ブロックを生成した後、量子化モジュール106は、変換係数ブロック中の変換係数を量子化することができる。量子化モジュール106は、CUと関連付けられるQP値に基づいて、CUのTUと関連付けられる変換係数ブロックを量子化することができる。
ビデオエンコーダ20は、様々な方法でQP値をCUと関連付けることができる。例えば、ビデオエンコーダ20は、CUと関連付けられるツリーブロックに対して、レート歪み分析を実行することができる。レート歪み分析では、ビデオエンコーダ20は、ツリーブロックに対して符号化動作を複数回実行することによって、ツリーブロックの複数のコード化された表現を生成することができる。ビデオエンコーダ20がツリーブロックの異なる符号化された表現を生成するとき、ビデオエンコーダ20は、異なるQP値をCUと関連付けることができる。所与のQP値が、ビットレート及び歪みの評価基準が最小であるツリーブロックのコード化された表現においてCUと関連付けられるとき、ビデオエンコーダ20は、その所与のQP値がCUと関連付けられることを信号伝達することができる。
逆量子化モジュール108及び逆変換モジュール110は、それぞれ、変換係数ブロックに逆量子化と逆変換とを適用して、変換係数ブロックから残差ビデオブロックを復元することができる。復元モジュール112は、復元された残差ビデオブロックを、予測モジュール100によって生成される1つ又は複数の予測されたビデオブロックからの対応するサンプルに追加して、TUと関連付けられる復元されたビデオブロックを生成することができる。このようにCUの各TUのビデオブロックを復元することによって、ビデオエンコーダ20は、CUのビデオブロックを復元することができる。
復元モジュール112がCUのビデオブロックを復元した後、フィルタモジュール113は、デブロッキング動作を実行して、CUと関連付けられるビデオブロックにおけるブロック歪みを低減することができる。フィルタモジュール113は、様々なデブロッキング動作を実行することができる。例えば、フィルタモジュール113は、図4に示される例示的なデブロッキング動作を実行することができる。他の例では、フィルタモジュール113は、図4に示される例示的なデブロッキング動作とは異なるデブロッキング動作を実行することができる。
1つ又は複数のデブロッキング動作を実行した後、フィルタモジュール113は、復号ピクチャバッファ114にCUの復元されたビデオブロックを記憶することができる。動き推定モジュール122及び動き補償モジュール124は、復元されたビデオブロックを含む参照ピクチャを使用して、後続ピクチャのPUに対してインター予測を実行することができる。加えて、イントラ予測モジュール126は、復号ピクチャバッファ114中の復元されたビデオブロックを使用して、CUと同じピクチャの中の他のPUに対してイントラ予測を実行することができる。
このようにして、フィルタモジュール113が、エッジと関連付けられるサンプルにデブロッキングフィルタを適用した後、予測モジュール100は、エッジと関連付けられるサンプルに少なくとも一部基づいて、予測されたビデオブロックを生成することができる。ビデオエンコーダ20は、その値が予測されたビデオブロックに少なくとも一部基づく、1つ又は複数のシンタクス要素を含むビットストリームを出力することができる。
エントロピー符号化モジュール116は、ビデオエンコーダ20の他の機能コンポーネントからデータを受信することができる。例えば、エントロピー符号化モジュール116は、量子化モジュール106から変換係数ブロックを受信することができ、予測モジュール100からシンタクス要素を受信することができる。エントロピー符号化モジュール116がデータを受信するとき、エントロピー符号化モジュール116は、1つ又は複数のエントロピー符号化動作を実行して、エントロピー符号化されたデータを生成することができる。例えば、ビデオエンコーダ20は、コンテキスト適応型可変長コード化(CAVLC)動作、CABAC動作、変数−変数(V2V)レングスコード化動作、シンタクスベースのコンテキスト適応型2値算術コード化(SBAC)動作、Probability Interval Partitioning Entropy(PIPE)コード化動作、又は別のタイプのエントロピー符号化動作をデータに対して実行することができる。エントロピー符号化モジュール116は、エントロピー符号化されたデータを含むビットストリームを出力することができる。
データに対してエントロピー符号化動作を実行することの一部として、エントロピー符号化モジュール116は、コンテキストモデルを選択することができる。エントロピー符号化モジュール116がCABAC動作を実行している場合、コンテキストモデルは、特定の値を有する特定のビンの確率の推定値を示し得る。CABACの文脈では、「ビン」という用語は、シンタクス要素の2値化されたバージョンのビットを指すために使用される。
エントロピー符号化モジュール116がCAVLC動作を実行している場合、コンテキストモデルは、対応するコードワードに係数をマッピングすることができる。CAVLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、比較的長いコードが劣勢シンボルに対応するように構築され得る。適切なコンテキストモデルの選択は、エントロピー符号化動作のコード化効率に影響を及ぼし得る。
図3は、本開示の技法を実施し得る、例示的なビデオデコーダ30を示すブロック図である。図3は、説明を目的に与えられており、本開示において広く例示され説明される技法に対する限定ではない。説明のために、本開示は、HEVCコード化の状況において、ビデオデコーダ30について説明する。しかしながら、本開示の技法は、他のコード化規格又は方法にも適用可能であり得る。
図3の例において、ビデオデコーダ30は、複数の機能コンポーネントを含む。ビデオデコーダ30の機能コンポーネントは、エントロピー復号モジュール150と、予測モジュール152と、逆量子化モジュール154と、逆変換モジュール156と、復元モジュール158と、フィルタモジュール159と、復号ピクチャバッファ160とを含む。予測モジュール152は、動き補償モジュール162と、イントラ予測モジュール164とを含む。幾つかの例では、ビデオデコーダ30は、図2のビデオエンコーダ20に関して説明された符号化経路とは全般に逆の復号経路を実行し得る。他の例では、ビデオデコーダ30は、より多数の、より少数の、又は異なる機能コンポーネントを含み得る。
ビデオデコーダ30は、符号化されたビデオデータを備えるビットストリームを受信し得る。ビットストリームは、複数のシンタクス要素を含み得る。ビデオデコーダ30がビットストリームを受信すると、エントロピー復号モジュール150は、ビットストリームに対して解析動作を実行することができる。ビットストリームに対して解析動作を実行した結果として、エントロピー復号モジュール150は、ビットストリームからシンタクス要素を抽出することができる。解析動作を実行することの一部として、エントロピー復号モジュール150は、ビットストリーム中のエントロピー符号化されたシンタクス要素を、エントロピー復号することができる。予測モジュール152、逆量子化モジュール154、逆変換モジュール156、復元モジュール158、及びフィルタモジュール159は、ビットストリームから抽出されたシンタクス要素に基づいて復号されたビデオデータを生成する、復元動作を実行することができる。
上で論じられたように、ビットストリームは、一連のNAL単位を備え得る。ビットストリームのNAL単位は、シーケンスパラメータセットNAL単位、ピクチャパラメータセットNAL単位、SEI NAL単位などを含み得る。ビットストリームに対して解析動作を実行することの一部として、エントロピー復号モジュール150は、シーケンスパラメータセットNAL単位からのシーケンスパラメータセット、ピクチャパラメータセットNAL単位からのピクチャパラメータセット、SEI NAL単位からのSEIデータなどを抽出してエントロピー復号する、解析動作を実行することができる。
加えて、ビットストリームのNAL単位は、コード化されたスライスNAL単位を含み得る。ビットストリームに対して解析動作を実行することの一部として、エントロピー復号モジュール150は、コード化されたスライスNAL単位からコード化されたスライスを抽出してエントロピー復号する、解析動作を実行することができる。コード化されたスライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタクス要素を含み得る。スライスヘッダ中のシンタクス要素は、スライスを含むピクチャと関連付けられたピクチャパラメータセットを識別するシンタクス要素を含み得る。エントロピー復号モジュール150は、コード化されたスライスヘッダに対して、CAVLC復号動作などのエントロピー復号動作を実行して、スライスヘッダを回復することができる。
コード化されたスライスNAL単位からスライスデータを抽出した後、エントロピー復号モジュール150は、スライスデータからコード化されたツリーブロックを抽出することができる。エントロピー復号モジュール150は次いで、コード化されたツリーブロックからコード化されたCUを抽出することができる。エントロピー復号モジュール150は、コード化されたCUからシンタクス要素を抽出する、解析動作を実行することができる。抽出されたシンタクス要素は、エントロピー符号化された変換係数ブロックを含み得る。エントロピー復号モジュール150は次いで、シンタクス要素に対してエントロピー復号動作を実行することができる。例えば、エントロピー復号モジュール150は、変換係数ブロックに対してCABAC動作を実行することができる。
エントロピー復号モジュール150が区分されていないCUに対して解析動作を実行した後、ビデオデコーダ30は、区分されていないCUに対して復元動作を実行することができる。区分されていないCUに対して復元動作を実行するために、ビデオデコーダ30は、CUの各TUに対して復元動作を実行することができる。CUの各TUに対して復元動作を実行することによって、ビデオデコーダ30は、CUと関連付けられる残差ビデオブロックを復元することができる。
TUに対して復元動作を実行することの一部として、逆量子化モジュール154は、TUと関連付けられた変換係数ブロックを逆量子化、即ち、量子化解除することができる。逆量子化モジュール154は、HEVCのために提案される、又はH.264復号規格によって定義される逆量子化処理と同様の方式で、変換係数ブロックを逆量子化することができる。逆量子化モジュール154は、変換係数ブロックのCUのためにビデオエンコーダ20によって計算される量子化パラメータQPを使用して、量子化の程度を決定し、同様に、逆量子化モジュール154が適用するべき逆量子化の程度を決定することができる。
逆量子化モジュール154が変換係数ブロックを逆量子化した後、逆変換モジュール156は、変換係数ブロックと関連付けられたTUの残差ビデオブロックを生成することができる。逆変換モジュール156は、TUの残差ビデオブロックを生成するために、逆変換を変換係数ブロックに対して適用することができる。例えば、逆変換モジュール156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、又は別の逆変換を変換係数ブロックに適用することができる。
幾つかの例では、逆変換モジュール156は、ビデオエンコーダ20からの信号伝達に基づいて、変換係数ブロックに適用するべき逆変換を決定することができる。そのような例では、逆変換モジュール156は、変換係数ブロックと関連付けられたツリーブロックの4分木のルートノードにおいて信号伝達された変換に基づいて、逆変換を決定することができる。他の例では、逆変換モジュール156は、ブロックサイズ、コード化モードなどのような、1つ又は複数のコード化特性から逆変換を推測することができる。幾つかの例では、逆変換モジュール156はカスケード逆変換を適用することができる。
インター予測を使用してCUのPUが符号化された場合、動き補償モジュール162は、動き補償を実行して、PUの予測されるビデオブロックを生成することができる。動き補償モジュール162は、PUの動き情報を使用して、PUの参照サンプルを識別することができる。PUの参照サンプルは、PUとは時間的に異なるピクチャ中にあり得る。PUの動き情報は、動きベクトルと、参照ピクチャインデックスと、予測方向とを含み得る。動き補償モジュール162は、PUの参照サンプルを使用して、PUの予測されたビデオブロックを生成することができる。幾つかの例では、動き補償モジュール162は、PUに隣接するPUの動き情報に基づいて、PUの動き情報を予測することができる。本開示では、ビデオエンコーダ20がインター予測を使用してPUの予測されたビデオブロックを生成する場合、PUはインター予測されたPUである。
幾つかの例では、動き補償モジュール162は、補間フィルタに基づく補間を実行することによって、PUの予測されたビデオブロックを精緻化することができる。サブサンプル精度を有する動き補償に使用されるべき補間フィルタの識別子は、シンタクス要素中に含まれ得る。動き補償モジュール162は、PUの予測されたビデオブロックの生成中にビデオエンコーダ20によって使用されるのと同じ補間フィルタを使用して、参照ブロックのサブ整数サンプルに対する補間される値を算出することができる。動き補償モジュール162は、受信されたシンタクス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測されるビデオブロックを生成することができる。
イントラ予測を使用してPUが符号化される場合、イントラ予測モジュール164は、イントラ予測を実行して、PUの予測されるビデオブロックを生成することができる。例えば、イントラ予測モジュール164は、ビットストリーム中のシンタクス要素に基づいて、PUのイントラ予測モードを決定することができる。ビットストリームは、PUのイントラ予測モードを予測するのにイントラ予測モジュール164が使用することができる、シンタクス要素を含み得る。
幾つかの例では、シンタクス要素は、イントラ予測モジュール164が別のPUのイントラ予測モードを使用して、現在のPUのイントラ予測モードを予測するべきであることを示し得る。例えば、現在のPUのイントラ予測モードが、隣接するPUのイントラ予測モードと同じであることがあり得る。言い換えれば、隣接するPUのイントラ予測モードは、現在のPUに対して最もあり得るモードであり得る。従って、この例では、ビットストリームは、PUのイントラ予測モードが、隣接するPUのイントラ予測モードと同じであることを示す、小さいシンタクス要素を含み得る。イントラ予測モジュール164は次いで、イントラ予測モードを使用して、空間的に隣接するPUのビデオブロックに基づいて、PUの予測データ(例えば、予測されるサンプル)を生成することができる。
復元モジュール158は、適用可能なとき、CUのTUと関連付けられる残差ビデオブロックとCUのPUの予測されるビデオブロックとを使用して、即ち、イントラ予測データ又はインター予測データのいずれかを使用して、CUのビデオブロックを復元することができる。従って、ビデオデコーダ30は、ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成することができ、予測されたビデオブロックと残差ビデオブロックとに基づいて、ビデオブロックを生成することができる。
復元モジュール158がCUのビデオブロックを復元した後、フィルタモジュール159は、デブロッキング動作を実行して、CUと関連付けられるブロック歪みを低減することができる。フィルタモジュール159は、様々なデブロッキング動作を実行して、CUと関連付けられるブロック歪みを低減することができる。例えば、フィルタモジュール159は、図4に示される例示的なデブロッキング動作を実行することができる。他の例では、フィルタモジュール159は、図4に示されるデブロッキング動作とは異なるデブロッキング動作を実行することができる。
復号ピクチャバッファ160は、ビデオデータのピクチャの復号されたサンプルを記憶することができる。従って、フィルタモジュール159がデブロッキング動作を実行してCUと関連付けられるブロック歪みを低減した後、ビデオデコーダ30は、復号ピクチャバッファ160にCUのビデオブロックを記憶することができる。復号ピクチャバッファ160は、後続の動き補償、イントラ予測、及び図1の表示装置32などの表示装置上での提示のために、参照ピクチャを与えることができる。例えば、ビデオデコーダ30は、復号ピクチャバッファ160中のビデオブロックに基づいて、他のCUのPUに対して、イントラ予測動作又はインター予測動作を実行することができる。
図4は、CUと関連付けられるブロック歪みを低減するための例示的な動作200を示すフローチャートである。ビデオエンコーダ20又はビデオデコーダ30のようなビデオコーダは、動作200を実行することができる。他の例では、ビデオコーダは、CUと関連付けられるブロック歪みを低減するために、動作200以外の動作を使用することができる。例えば、他の例では、ビデオコーダは、ビデオコーダが動作200よりも多数の、少数の、又は異なるステップを実行する、ブロック歪みを低減するための動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、動作200のステップを実行することができる。
ビデオコーダが動作200を開始した後、ビデオコーダは、現在のCUと関連付けられるTUエッジを識別することができる(202)。現在のCUは、ビデオコーダが現在コード化している(即ち、符号化又は復号している)CUである。説明を簡単にするために、本開示は、現在のCUと関連付けられるビデオブロックを、現在のCUビデオブロックと呼び得る。現在のCUビデオブロックと関連付けられるエッジは、現在のCUのPU及びTUのエッジに対応し得る。更に、現在のCUビデオブロックと関連付けられるエッジは、ルーマエッジ及びクロマエッジであり得る。ルーマエッジは、ルーマサンプルのブロック間の境界におけるエッジであり得る。クロマエッジは、クロマサンプルのブロック間の境界におけるエッジであり得る。ビデオコーダは、現在のCUの残差4分木の中のデータに基づいて、TUエッジを識別することができる。
加えて、ビデオコーダは、現在のCUと関連付けられるPUエッジを識別することができる(204)。ビデオコーダは、様々な方法でPUエッジを識別することができる。例えば、ビデオコーダは、現在のCUのPU区分モードと、現在のCUと関連付けられるフィルタ内部エッジフラグとに基づいて、PUエッジを識別することができる。フィルタ内部エッジフラグは、デブロッキングが現在のCUの内部エッジに対して有効かどうかを示し得る。現在のCUの内部エッジは、現在のCUのビデオブロックと隣接するCUのビデオブロックとの境界において発生しないエッジである。
現在のCUと関連付けられるTUエッジとPUエッジ(即ち、エッジ)を識別した後、ビデオコーダは、境界強度値をルーマエッジと関連付けることができる(206)。ビデオコーダは、様々な方法で、境界強度値をルーマエッジと関連付けることができる。例えば、ビデオコーダは、図5に示される例示的な動作を実行して、境界強度値をルーマエッジと関連付けることができる。他の例では、ビデオコーダは、図5の例とは異なる動作を実行して、境界強度値をルーマエッジと関連付けることができる。エッジを境界強度値と関連付けた後で、ビデオコーダは、ルーマエッジデブロッキング処理を実行することができる(208)。ルーマエッジデブロッキング処理は、輝度サンプルにおけるブロック歪みを低減することができる。ビデオコーダは、様々なルーマエッジデブロッキング処理を実行することができる。例えば、ビデオコーダは、図7に示される例示的なルーマエッジデブロッキング処理を実行することができる。他の例では、ビデオコーダは、図7に示される例示的なルーマエッジデブロッキング処理とは異なるルーマエッジデブロッキング処理を実行することができる。
加えて、ビデオコーダは、境界強度値をクロマエッジと関連付けることができる(210)。ビデオコーダは、様々な方法で、境界強度値をクロマエッジと関連付けることができる。例えば、ビデオコーダは、図6に示される例示的な動作を実行して、境界強度値をクロマエッジと関連付けることができる。他の例では、ビデオコーダは、図6の例とは異なる動作を実行して、境界強度値をクロマエッジと関連付けることができる。
ビデオコーダは次いで、クロマエッジデブロッキング処理を実行することができる(210)。クロマエッジデブロッキング処理は、クロミナンスサンプルにおけるブロック歪みを低減することができる。ビデオコーダは、様々なクロマエッジデブロッキング処理を実行することができる。例えば、ビデオコーダは、図11に示される例示的なクロマエッジデブロッキング処理を実行することができる。他の例では、ビデオコーダは、図11に示される例示的なクロマエッジデブロッキング処理とは異なるクロマエッジデブロッキング処理を実行することができる。
図5は、境界強度値をルーマエッジと関連付けるための例示的な動作250を示すフローチャートである。ビデオエンコーダ20又はビデオデコーダ30のようなビデオコーダは、動作250を実行することができる。他の例では、ビデオコーダは、動作250以外の動作を使用して、境界強度値をルーマエッジと関連付けることができる。例えば、他の例では、ビデオコーダは、ビデオコーダが動作250よりも多数の、少数の、又は異なるステップを実行する、境界強度値をルーマエッジと関連付けるための動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、動作250のステップを実行することができる。
ビデオコーダが動作250を開始した後、ビデオコーダは、ビデオブロック「p」又はビデオブロック「q」がイントラ予測されたCUと関連付けられるかどうかを決定することができる(260)。ルーマエッジは、ビデオブロック「p」とビデオブロック「q」との境界において発生し得る。
ビデオブロック「q」は、現在のCUビデオブロック内の4×4のビデオブロックであり得る。現在のCUビデオブロックは、ビデオコーダが現在コード化しているCU(即ち、現在のCU)と関連付けられるビデオブロックである。ビデオブロック「p」は、隣接するビデオブロック内の4×4のビデオブロックであり得る。他の例では、ビデオブロック「q」及び「p」は、8×8のビデオブロックであり得る。隣接するビデオブロックは、現在のCUビデオブロック内、又は、以前にコード化されたCUと関連付けられるビデオブロック内にあり得る。
CUは、そのCUのPUの予測データがイントラ予測を使用して生成される場合、イントラ予測されたCUであり得る。ビデオブロック「q」は、現在のCUビデオブロック(即ち、ビデオブロック「q」を含むビデオブロック)がイントラ予測されたCUと関連付けられるとき、イントラ予測されたCUと関連付けられ得る。ビデオブロック「p」は、ビデオブロック「p」を含むビデオブロックがイントラ予測されたCUと関連付けられるとき、イントラ予測されたCUと関連付けられ得る。
ビデオブロック「p」又はビデオブロック「q」がイントラ予測されたCUと関連付けられると決定したことに応答して(260の「はい」)、ビデオコーダは、第1の境界強度値をルーマエッジと関連付けることができる(262)。図5の例では、第1の境界強度値は2に等しい。2に等しい境界強度値は、デブロッキングフィルタが2に等しいオフセットを伴って有効であることを示し得る。
従来のビデオコーダは、ビデオブロック「p」又はビデオブロック「q」がイントラ予測されたCUと関連付けられると決定したことに応答して、ルーマエッジがCUエッジかどうかを決定することができる。CUエッジは、2つの異なるCUと関連付けられるビデオブロックの間の境界において発生するエッジであり得る。そのようなビデオコーダは、ルーマエッジがCUエッジであると決定したことに応答して、「4」という境界強度値をルーマエッジと関連付けることができ、ルーマエッジがCUエッジではないと決定したことに応答して、「3」という境界強度値をルーマエッジと関連付けることができる。
本開示の技法によれば、ビデオコーダが動作250を実行するとき、ビデオコーダは、ルーマエッジがCUエッジであると決定することなく、第1の境界強度値をルーマエッジと関連付ける。ルーマエッジがCUエッジであるかどうかに関する追加の決定を行う代わりに、ビデオブロック「p」又はビデオブロック「q」がイントラ予測されたCUと関連付けられると決定したことに応答して第1の境界強度値をルーマエッジと関連付けることで、複雑さを低減し、ビデオコーダの性能を向上させることができる。
一方で、ビデオブロック「p」もビデオブロック「q」もイントラ予測されたCU中にないと決定したことに応答して(260の「いいえ」)、ビデオコーダは、ビデオブロック「p」又はビデオブロック「q」が、1つ又は複数の0ではない変換係数レベルと関連付けられるTUと関連付けられるかどうかを決定することができる(264)。ビデオブロック「p」又はビデオブロック「q」の中のサンプルの値が、TUと関連付けられる残差ビデオブロックに基づく場合、ビデオブロック「p」又はビデオブロック「q」はTUと関連付けられ得る。
ビデオブロック「p」又はビデオブロック「q」のいずれかが1つ又は複数の0ではない変換係数レベルと関連付けられるTUと関連付けられると決定したことに応答して(264の「はい」)、ビデオコーダは、第2の境界強度値(Bs)をルーマエッジと関連付けることができる(266)。図5の例では、第2の境界強度値は1に等しい。1に等しい境界強度値は、デブロッキングフィルタが0に等しいオフセットを伴って有効であることを示し得る。従来は、ビデオコーダは、ビデオブロック「p」又はビデオブロック「q」のいずれかが1つ又は複数の0ではない変換係数と関連付けられるTUと関連付けられると決定したことに応答して、2という境界強度値をルーマエッジと関連付け得る。
それ以外の場合、この例では、ビデオブロック「p」もビデオブロック「q」も1つ又は複数の0ではない変換係数レベルと関連付けられるTUと関連付けられない場合(264の「いいえ」)、ビデオコーダは、ビデオブロック「p」又はビデオブロック「q」が異なる参照ピクチャ又は異なる数の動きベクトル(MV)を有するPUと関連付けられるかどうかを決定することができる(268)。ビデオブロック「p」又はビデオブロック「q」の中のサンプルの値が、PUと関連付けられる予測されたビデオブロックに基づく場合、ビデオブロック「p」又はビデオブロック「q」はPUと関連付けられ得る。
ビデオブロック「p」又はビデオブロック「q」が異なる参照ピクチャ又は異なる数の動きベクトルを有するPUと関連付けられると決定したことに応答して(268の「はい」)、ビデオコーダは、第2の境界強度値(例えば、1)をルーマエッジと関連付けることができる(266)。
加えて、ビデオコーダは、ビデオブロック「p」及びビデオブロック「q」が1つの動きベクトルを有するPUと各々関連付けられるかどうかと、ビデオブロック「p」と関連付けられるPUの動きベクトルの水平成分(MVpx)とビデオブロック「q」と関連付けられるPUの動きベクトルの水平成分(MVqx)との差の絶対値が1以上であるかどうかとを、決定することができる(272)。ビデオブロック「p」及びビデオブロック「q」が1つの動きベクトルを有するPUと各々関連付けられ、MVqxとMVpxとの差の絶対値が1以上であると決定したことに応答して(272の「はい」)、ビデオコーダは、第2の境界強度値(例えば、1)をルーマエッジと関連付けることができる(266)。
加えて、ビデオコーダは、ビデオブロック「p」及びビデオブロック「q」が1つの動きベクトルを有するPUと各々関連付けられるかどうかと、ビデオブロック「p」と関連付けられるPUの動きベクトルの垂直成分(MVpy)とビデオブロック「q」と関連付けられるPUの動きベクトルの垂直成分(MVqy)との差の絶対値が1以上であるかどうかとを、決定することができる(274)。ビデオブロック「p」及びビデオブロック「q」が1つの動きベクトルを有するPUと各々関連付けられ、MVpyとMVqyとの差の絶対値が1以上であると決定したことに応答して(274の「はい」)、ビデオコーダは、第2の境界強度値(例えば、1)をルーマエッジと関連付けることができる(266)。
加えて、ビデオコーダは、ビデオブロック「q」と関連付けられるPUとビデオブロック「p」と関連付けられるPUの両方が2つの動きベクトルを有するかどうかと、動きベクトルの少なくとも1つのペアに対して、動きベクトルの水平成分(MVpx、MVqx)の差の絶対値が1以上かどうかとを、決定することができる(276)。ビデオブロック「q」と関連付けられるPUとビデオブロック「p」と関連付けられるPUの両方が2つの動きベクトルを有し、動きベクトルの少なくとも1つのペアに対して、MVpxとMVqxとの差の絶対値が1以上であると決定したことに応答して(276の「はい」)、ビデオコーダは、第2の境界強度値(例えば、1)をルーマエッジと関連付けることができる(266)。
加えて、ビデオコーダは、ビデオブロック「q」と関連付けられるPUとビデオブロック「p」と関連付けられるPUの両方が2つの動きベクトルを有するかどうかと、動きベクトルの少なくとも1つのペアに対して、動きベクトルの垂直成分(MVpy、MVqy)の差の絶対値が1以上かどうかとを、決定することができる(278)。ビデオブロック「q」と関連付けられるPUとビデオブロック「q」と関連付けられるPUの両方が2つの動きベクトルを有し、動きベクトルの少なくとも1つのペアに対して、動きベクトルの垂直成分(MVpy、MVqy)の差の絶対値が1以上であると決定したことに応答して(278の「はい」)、ビデオコーダは、第2の境界強度値(例えば、1)をルーマエッジと関連付けることができる(266)。
それ以外の場合、即ちステップ268〜278の条件のいずれもが真であると評価されない場合、ビデオコーダは、ルーマエッジを第3の境界強度値と関連付けることができる(280)。図5の例では、第3の境界強度値は0に等しい。従って、図5の例では、ビデオコーダは、ビデオブロック「p」及びビデオブロック「q」がインター予測されるCUと関連付けられる場合にのみ、1又は0という境界強度値をルーマエッジと関連付けることができる。以下で説明されるように、ビデオコーダは、エッジと関連付けられる境界強度値が第3の境界強度値(例えば、0)である場合、デブロッキングフィルタをエッジに適用しない。
ステップ268〜278は、ビデオブロック「q」の中のサンプルとビデオブロック「p」の中のサンプルとの差を求めるための、追加の確認であり得る。ステップ268〜278の確認が真であると評価される場合、ビデオブロック「q」の中のサンプルとビデオブロック「p」の中のサンプルは何らかの差を有し得る。それ以外の場合、ビデオブロック「q」の中のサンプルとビデオブロック「p」の中のサンプルは殆んど又は全く差を有さないことがあるので、エッジは、0という境界強度値と関連付けられてよく、エッジと関連付けられるサンプルにデブロッキングフィルタは適用されない。
本開示は、ルーマエッジに関して実行されるものとして、図5の例について説明する。しかしながら、他の例では、動作250と同様の動作は、クロマエッジに関して実行され得る。
図6は、境界強度値を2つのビデオブロックの間のクロマエッジと関連付けるための例示的な動作280を示すフローチャートである。ビデオエンコーダ20又はビデオデコーダ30のようなビデオコーダは、動作280を実行することができる。他の例では、ビデオコーダは、動作280以外の動作を使用して、境界強度値をクロマエッジと関連付けることができる。例えば、他の例では、ビデオコーダは、ビデオコーダが動作280よりも多数の、少数の、又は異なるステップを実行する、境界強度値をクロマエッジと関連付けるための動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、動作280のステップを実行することができる。
ビデオコーダが動作280を開始した後、ビデオコーダは、現在のCUビデオブロックがPスライス又はBスライスの中にあるかどうかを決定することができる(282)。現在のCUビデオブロックは、ビデオコーダが現在コード化しているCU(即ち、現在のCU)と関連付けられるビデオブロックである。現在のCUビデオブロックがPスライス又はBスライスの中にあると決定したことに応答して(282の「はい」)、ビデオコーダは、第3の境界強度値(Bs)をエッジと関連付けることができる(284)。図6の例では、第3の境界強度値は0に等しい。0に等しい境界強度値は、デブロッキングフィルタがクロマエッジに適用されないことを示し得る。従って、ビデオコーダは、クロマエッジがIスライス中にある場合にのみ、デブロッキングフィルタをクロマエッジに適用することができる。
現在のCUビデオブロックがPスライス又はBスライスの中にない(即ち、現在のCUビデオブロックがIスライスの中にある)と決定したことに応答して(282の「いいえ」)、ビデオコーダは、クロマエッジが4N×4NのTUの内部エッジに対応するかどうかを決定することができ、Nはエッジのルーマサンプルの長さである(286)。例えば、ビデオコーダは、エッジの長さが8サンプルである場合、クロマエッジが32×32のTUの内部エッジに対応するかどうかを決定することができる。TUの外部エッジは、異なるTUと関連付けられるビデオブロックの境界に対応するエッジであり得る。TUの内部エッジは、異なるTUと関連付けられるビデオブロックの境界に対応しないエッジであり得る。
クロマエッジが4N×4NのTUの内部エッジに対応すると決定したことに応答して(286の「はい」)、ビデオコーダは、第3の境界強度値(Bs)をクロマエッジと関連付けることができる(284)。しかしながら、クロマエッジが4N×4NのTUの内部エッジに対応しないと決定したことに応答して(286の「いいえ」)、ビデオコーダは、第1の境界強度値をクロマエッジと関連付けることができる(288)。図6の例では、第1の境界強度値は2に等しい。
図4のステップ202及び204において、ビデオコーダは、8×8のルーマサンプルグリッド上のエッジを試験して、エッジがCUのPU又はTUのエッジに対応するかどうかを決定することができる。ビデオコーダは、残差ルーマサンプルのブロックの一番左上のルーマサンプルに対する座標に基づいて、エッジがPUエッジ又はTUエッジに対応するかどうかを示すデータをアレイに記憶することができる。各CUは、残差ルーマサンプルのブロック及び残差クロマサンプルの2つのブロックと関連付けられ得る。ビデオコーダは、残差クロマサンプルのブロックの各々が残差ルーマサンプルのブロックの幅及び高さの半分の幅と高さとを有するように、残差クロマサンプルのブロックをサブサンプリング又はダウンサンプリングすることができる。例えば、CUのTUは最初、残差ルーマサンプルの32×32のブロック及び残差クロマサンプルの2つの32×32のブロックと関連付けられ得る。この例では、ビデオコーダは、残差クロマサンプルのブロックを、残差クロマサンプルの16×16のブロックへとサブサンプリング又はダウンサンプリングすることができる。
従って、残差クロマサンプルのサブサンプリングされたブロック又はダウンサンプリングされたブロックでは、以前は8サンプル離れていたTUの内部エッジが、今では4サンプル離れている。結果として、残差クロマサンプルのブロック中のエッジの座標は、サブサンプリング又はダウンサンプリングの前と同じではないことがある。従って、ビデオコーダは、エッジがPU又はTUのエッジに対応するかどうかを決定するために、エッジの座標を変換する必要がある。このことは、デブロッキング処理の複雑さを大きくし得る。この複雑さを避けるために、ビデオコーダは、4N×4NのTUの内部エッジに対するBs値を第3の境界強度値に設定することができる。従って、ビデオコーダは、デブロッキングフィルタを4N×4NのTUの内部エッジに適用しない。
即ち、ビデオコーダは固定されたN×Nのデブロッキンググリッドに対するクロマデブロッキングを実行できるので、エッジ探索動作はクロマビデオブロックに対してもはや必要ではないことがあり、ルーマビデオブロックからクロマビデオブロックへのダウンサンプリングは通常、N×Nのサンプルよりも大きくないビデオブロックをもたらす。例えば、輝度ビデオブロックの最大のTUサイズは通常、ビデオコーダがN×Nのクロマビデオブロックへとダウンサンプリングできる、2N×2Nである。この場合、ビデオコーダは、固定されたN×Nのデブロッキンググリッドの全てのエッジがTUエッジでありデブロッキングされ得ると、決定することができる。ある例として、クロマデブロッキングは、固定された8×8のデブロッキンググリッドに対して実行され得る。輝度ビデオブロックの最大のTUサイズは通常16×16のサンプルなので、ダウンサンプリングされたクロミナンスビデオブロックは、8×8のサンプルのサイズを有してよく、これは、固定された8×8のデブロッキンググリッドと等価である。
1つの例外は、輝度ビデオブロックのTUサイズが2N×2Nよりも大きい、例えば4N×4Nである場合に存在し得る。この場合、輝度ビデオブロックは、デブロッキングフィルタを適用すべき4つのN×Nのデブロッキンググリッドを含む2N×2Nのクロミナンスビデオブロックへとダウンサンプリングされる。例として、ルーマビデオブロックのTUサイズは32×32のサンプルであり得るので、ダウンサンプリングされたクロミナンスビデオブロックは16×16のサンプルというサイズを有し、これは、固定された8×8のデブロッキンググリッドのうちの4つを含む。デブロッキングフィルタは、2N×2Nのクロミナンスビデオブロックの内部にあるN×Nのデブロッキンググリッドのエッジのいずれに対しても実行されなくてよい。従って、この場合、ビデオコーダは、4N×4Nの輝度ビデオブロック(及び2N×2Nのクロミナンスビデオブロック)の内部エッジが処理されないこと、即ち、デブロッキングフィルタが内部エッジに対して0に等しいBs値によって無効にされることを確実にするための、確認を実行することができる。
本技法は、ビデオコーダが、N×Nのグリッドに従ってTUエッジとPUエッジとを識別することを可能にする。加えて、ビデオコーダは、クロマビデオブロックがN×Nのサンプルよりも大きいサイズを有するかどうかを決定することができる。ビデオコーダは、クロマビデオブロックがN×Nのサンプル以下のサイズを有する場合、エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用することができる。しかしながら、クロマビデオブロックがN×Nのサンプルよりも大きいサイズを有する場合、ビデオコーダは、クロマビデオブロックの内部にあるグリッドのエッジに対して、デブロッキングフィルタを無効にすることができる。
幾つかの例では、ステップ286は、各エッジが8サンプルの幅又は高さである場合に適用可能である。そのような例では、エッジは、N×Nのサンプルグリッドを形成し得る。デブロッキングフィルタを4N×4NのTUの内部エッジのクロマサンプルに適用することは、デブロッキングフィルタの適用による複雑さと性能の低下とを正当化するほど、視覚上の品質を十分に向上させないことがある。従って、第3の境界強度値を、32×32のTUの外部エッジに対応しないクロマエッジと関連付けることによって、ビデオコーダは、エッジが32×32のTUの外部エッジに対応し、エッジが第1の境界強度値と関連付けられる場合にのみ、エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用することができる。このようにして、ビデオコーダは、有利なことに、クロマエッジに関するデブロッキング動作を更に実行することと関連付けられる複雑さと性能の低下とを避けることができる。
図7は、CUのルーマエッジをデブロックするための例示的な動作300を示すフローチャートである。ビデオエンコーダ20又はビデオデコーダ30のようなビデオコーダは、ルーマエッジデブロッキング動作300を実行することができる。他の例では、ビデオコーダは、ルーマエッジデブロッキング動作300以外の動作を使用することができる。例えば、他の例では、ビデオコーダは、ビデオコーダがルーマエッジデブロッキング動作300よりも多数の、少数の、又は異なるステップを実行する、ルーマエッジデブロッキング動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、ルーマエッジデブロッキング動作300のステップを実行することができる。
ビデオコーダがルーマエッジデブロッキング動作300を開始した後、ビデオコーダは、ビデオコーダが現在のCUビデオブロックと関連付けられる最後の垂直ルーマエッジに対してデブロッキング動作を実行したかどうかを決定することができる(302)。現在のCUビデオブロックは、ビデオコーダが現在コード化しているCU(即ち、現在のCU)と関連付けられるビデオブロックであり得る。最後の垂直ルーマエッジは、現在のCUビデオブロックと関連付けられる垂直ルーマエッジが幾何学的な順序に従って左から右に並べられるときの、最終の垂直ルーマエッジであり得る。
ビデオコーダが最後の垂直ルーマエッジに対してデブロッキング動作をまだ実行していないと決定したことに応答して(302の「いいえ」)、ビデオコーダは、現在のCUビデオブロックと関連付けられる次の垂直ルーマエッジを選択することができる(304)。次の垂直ルーマエッジは、デブロッキング動作がまだ実行されていない現在のCUビデオブロックと関連付けられる、最初の垂直ルーマエッジであり得る。ビデオコーダは次いで、選択されたルーマ垂直エッジに対してデブロッキング動作を実行することができる(306)。選択された垂直ルーマエッジに対してデブロッキング動作を実行することによって、ビデオコーダは、選択された垂直ルーマエッジと関連付けられるブロック歪みを低減又は除去することができる。ビデオコーダは、選択された垂直ルーマエッジに対して様々なデブロッキング動作を実行することができる。例えば、ビデオコーダは、図8の例示的なデブロッキング動作を、選択された垂直ルーマエッジに対して実行することができる。他の例では、ビデオコーダは、図8のデブロッキング動作とは異なるデブロッキング動作を、選択された垂直ルーマエッジに対して実行することができる。
選択された垂直ルーマエッジに対してデブロッキング動作を実行した後、ビデオコーダは、デブロッキング動作が現在のCUビデオブロックと関連付けられる最後の垂直ルーマエッジに適用されたかどうかを再び決定することができる(302)。適用されていない場合、ビデオコーダは、現在のCUビデオブロックと関連付けられる別の垂直ルーマエッジに関して、ステップ304と306とを繰り返すことができる。このようにして、ビデオコーダは、現在のCUビデオブロックと関連付けられる垂直ルーマエッジの各々に対して、デブロッキング動作を実行することができる。
デブロッキング動作が現在のCUビデオブロックと関連付けられる最後の垂直ルーマエッジに対して実行されたと決定したことに応答して(302の「はい」)、ビデオコーダは、デブロッキング動作が現在のCUビデオブロックと関連付けられる最後の水平ルーマエッジに対して実行されたかどうかを決定することができる(308)。最後の水平ルーマエッジは、現在のCUビデオブロックと関連付けられる水平ルーマエッジが幾何学的な順序に従って上から下に並べられるときの、最後の水平ルーマエッジであり得る。
ビデオコーダが最後の水平ルーマエッジに対してデブロッキング動作をまだ実行していないと決定したことに応答して(308の「いいえ」)、ビデオコーダは、現在のCUビデオブロックと関連付けられる次の水平ルーマエッジを選択することができる(310)。次の水平ルーマエッジは、デブロッキング動作がまだ実行されていない現在のCUビデオブロックと関連付けられる、最初の水平ルーマエッジであり得る。ビデオコーダは次いで、選択された水平ルーマエッジに対してデブロッキング動作を実行することができる(312)。選択された水平ルーマエッジに対してデブロッキング動作を実行することによって、ビデオコーダは、選択された水平ルーマエッジと関連付けられるブロック歪みを低減又は除去することができる。ビデオコーダは、選択された水平ルーマエッジに対して様々なデブロッキング動作を実行することができる。例えば、ビデオコーダは、図8の例示的なデブロッキング動作を、選択された水平ルーマエッジに対して実行することができる。
選択された水平ルーマエッジに対してデブロッキング動作を実行した後、ビデオコーダは、デブロッキング動作が現在のCUビデオブロックと関連付けられる最後の水平ルーマエッジに適用されたかどうかを再び決定することができる(308)。適用されていない場合、ビデオコーダは、現在のCUビデオブロックと関連付けられる別の水平ルーマエッジに関して、ステップ310と312とを繰り返すことができる。しかしながら、ビデオコーダが現在のCUビデオブロックと関連付けられる最後の水平ルーマエッジに対してデブロッキング動作を実行したと決定したことに応答して(308の「はい」)、ビデオコーダは、ルーマエッジデブロッキング動作300を終了することができる。このようにして、ビデオコーダは、現在のCUビデオブロックと関連付けられる垂直ルーマエッジと水平ルーマエッジの各々に対して、デブロッキング動作を実行することができる。
図8は、個々のルーマエッジに対してビデオコーダによって実行される、例示的なデブロッキング動作350を示すフローチャートである。幾つかの例では、ビデオエンコーダ20又はビデオデコーダ30のようなビデオコーダは、デブロッキング動作350を実行することができる。ビデオコーダは、ビデオコーダが現在コード化しているCUのビデオブロックと関連付けられるルーマエッジに関して、デブロッキング動作350を実行することができる。説明を簡単にするために、本開示は、ビデオコーダが現在コード化しているCUを、現在のCUと呼び得る。更に、本開示は、現在のCUと関連付けられるビデオブロックを、現在のCUビデオブロックと呼び得る。本開示は、ビデオコーダがデブロッキング動作350を実行しているエッジを、現在のエッジと呼び得る。
ビデオコーダがデブロッキング動作350を開始した後、ビデオコーダは、現在のエッジと関連付けられる境界強度値が0よりも大きいかどうかを決定することができる(352)。言い換えれば、ビデオコーダは、現在のエッジと関連付けられる境界強度値が第1の境界強度値又は第2の境界強度値と等しいかどうかを決定することができる。
現在のエッジと関連付けられる境界強度値が0よりも大きくないと決定したことに応答して(352の「いいえ」)、ビデオコーダは、現在のエッジに関してデブロッキング動作350を終了することができる。従って、ビデオコーダは、現在のエッジと関連付けられる境界強度値が0(即ち、第3の境界強度値)に等しい場合、デブロッキングフィルタを現在のエッジに適用しない。しかしながら、現在のエッジが第1の境界強度値(例えば、2)又は第2の境界強度値(例えば、1)と関連付けられる場合、ビデオコーダは、現在のエッジと関連付けられるルーマサンプルに1つ又は複数のデブロッキングフィルタを適用することができる。
一方、現在のエッジと関連付けられる境界強度値が0よりも大きいと決定したことに応答して(352の「はい」)、ビデオコーダは、デブロッキングQP値を求めることができる(354)。ビデオコーダは、様々な方法で、デブロッキングQP値を求めることができる。例えば、現在のエッジが現在のCUビデオブロックと隣接するCUのビデオブロックとの境界において発生する場合、ビデオコーダは、現在のCUと関連付けられるルーマQP値及び/又は隣接するCUと関連付けられるルーマQP値に基づいて、デブロッキングQP値を求めることができる。この例では、ビデオコーダは、次の式、即ちqPL=((QPY+QPP+1)>>1)に基づいてデブロッキングQP値を求めることができる。ここで、qPLはデブロッキングQP値であり、QPYは現在のCUと関連付けられるルーマQP値であり、QPPは隣接するCUと関連付けられるルーマQP値であり、「>>」は右シフトの演算子である。
デブロッキングQP値を求めた後、ビデオコーダは、現在のエッジと関連付けられるデブロッキングQP値と境界強度値とに基づいて、閾値tcに対するパラメータQの値を特定することができる(356)。幾つかの例では、ビデオコーダは、次の擬似コードを使用して、tcに対するパラメータQの値を特定することができる。
Figure 2014534733
上の擬似コードでは、「Bs」は現在のエッジと関連付けられる境界強度値を示し、「QP」はデブロッキングQP値を示す。上の擬似コードでは、z<xの場合はClip3(x,y,z)=xであり、z>yの場合はClip3(x,y,z)=yであり、他の場合はClip3(x,y,z)=zである。
別の例では、ビデオコーダは、次の擬似コードを使用して、tcに対するパラメータQの値を特定することができる。
Figure 2014534733
別の例では、ビデオコーダは、tcに対するパラメータQの値をQ=Clip3(0,55,qPL+2×(Bs−1)+(tc_offset_div2<<1))と特定することができ、qPLはデブロッキングQP値であり、Bsは現在のエッジと関連付けられる境界強度値であり、「tc_offset_div2」はtcに対するデブロッキングパラメータオフセットである。
加えて、ビデオコーダは、デブロッキングQP値に基づいて、閾値βに対してパラメータQの値を特定することができる(358)。幾つかの例では、ビデオコーダは、次の式を使用して、βに対するパラメータQの値を特定することができる。
Figure 2014534733
上の擬似コードでは、「Bs」、「QP」、及び「Clip3」は、上の擬似コードの場合と同じ意味を有し得る。別の例では、ビデオコーダは、βに対するパラメータQの値を、Q=Clip3(0,51,qPL+(beta_offset_div2<<1))として特定することができ、qPLはデブロッキングQPを示し、「beta_offset_div2」はβに対するデブロッキングパラメータオフセットである。
ビデオコーダは次いで、tcに対して特定されたQの値に基づいて、tcの値を求めることができる(360)。加えて、ビデオコーダは、βに対して特定されたQの値に基づいて、βの値を求めることができる(362)。幾つかの例では、ビデオコーダは、tc及びβに対するQの値を、1つ又は複数の参照テーブル中でtc及びβの値を探索するためのインデックスとして使用することができる。例えば、ビデオコーダは、次の表を使用して、tc及びβの値を特定することができる。
Figure 2014534733
この参照テーブルにおいてtc又はβの値を探索するためのインデックスとしてQの値を使用するために、ビデオコーダは、参照テーブル中でQの値を見つけて、次いで、Qの値を下回るtc又はβに対して規定された値を特定することができる。
ビデオコーダがtc及びβの値を求めた後、ビデオコーダは、tc又はβが0に等しいかどうかを決定することができる(364)。tc又はβのいずれかが0に等しいと決定したことに応答して(364の「はい」)、ビデオコーダは、現在のエッジに関するデブロッキング動作350を終了することができる。以下で説明されるように、tc又はβが0に等しいときにデブロッキング動作350を終了することで、複雑さを低減し、ビデオコーダの性能を向上させることができる。
このようにして、ビデオコーダは、デブロッキング量子化パラメータ値に基づいて、かつ、第1の境界強度値又は第2の境界強度値が現在のエッジと関連付けられるかどうかに基づいて、第1の閾値(即ち、tc)と第2の閾値(即ち、β)とを決定することができる。加えて、ビデオコーダは、第1の閾値又は第2の閾値が0に等しいかどうかを決定することができ、第1の閾値又は第2の閾値のいずれかが0に等しい場合、現在のエッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用しなくてよい。しかしながら、現在のエッジが第1の境界強度値又は第2の境界強度値と関連付けられる場合、かつ、第1の閾値も第2の閾値も0に等しくない場合、ビデオコーダは、現在のエッジと関連付けられるルーマサンプルに1つ又は複数のデブロッキングフィルタを適用することができる。
cもβも0に等しくないと決定したことに応答して(364の「いいえ」)、ビデオコーダは、現在のエッジと関連付けられるβとルーマサンプルとに基づいて、現在のエッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用するかどうかを決定することができる(366)。現在のエッジと関連付けられるβとルーマサンプルとに基づいて、現在のエッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用しないと決定したことに応答して(366の「いいえ」)、ビデオコーダは、現在のエッジに関するデブロッキング動作350を終了することができる。従って、ステップ366の決定は、デブロッキングフィルタに対する有効/無効の決定であり得る。
ビデオコーダは、様々な方法でこの決定を行うことができる。例えば、ビデオコーダは、次のように値dを計算することができる。
Figure 2014534733
この例では、ビデオコーダは、値dがβよりも小さいと決定したことに応答して、デブロッキングフィルタを適用するという決定を行うことができる。この例では、dp0、dp3、dq0、及びdq3は、サンプル活動の測定結果であり得る。
上の式では、p2,0、p1,0、q0,0などは、サンプルに対する命名である。命名は、文字x,yというフォーマットに従う。文字は、ビデオブロック「q」又はビデオブロック「p」を示す。下付き文字xは、現在のエッジの一番左上の端からのサンプル単位での水平方向の変位を示す。下付き文字yは、現在のエッジの一番左上の端からのサンプル単位での垂直方向の変位を示す。文字と単一の下付き文字のみとを使用してサンプルが示される場合、示されるサンプルの全てが単一のラインの中にあると推測され得る。図9は、第1のビデオブロック「A」と第2のビデオブロック「B」との間の垂直エッジにおけるサンプルの例示的な命名を示す概念図である。本開示は、この命名フォーマットを他の式において使用することができる。
別の例では、ビデオコーダは、次のように値dを計算することができる。
Figure 2014534733
この例では、ビデオコーダは、値dがβよりも小さいと決定したことに応答して、デブロッキングフィルタを適用するという決定を行うことができる。
同様の例において、値dは、次の式を使用して計算されるブーリアン値であり得る。
Figure 2014534733
この例では、ビデオコーダは、値dが真であると決定したことに応答してデブロッキングフィルタを適用するという決定を行うことができ、値dが偽であると決定したことに応答してデブロッキングフィルタを適用しないという決定を行うことができる。従って、合計された活動の測定結果(例えば、|p2,2−2×p1,2+p0,2|、|q2,2−2×q1,2+q0,2|など)が閾値βよりも小さい場合、ビデオコーダは、デブロッキングフィルタを8サンプルのデブロッキングエッジ領域に適用することができる。このようにして、エッジにまたがる活動が多い場合、エッジにまたがる不連続部分は可視ではないことがあるので、デブロッキングフィルタは必要ではないことがある。しかしながら、エッジにまたがる活動が少ない場合、ビデオコーダは、デブロッキングフィルタを適用して、エッジのいずれかの側のビデオブロック間の不連続部分を平滑化することができる。
デブロッキングフィルタを適用するという決定を行ったことに応答して(366の「はい」)、ビデオコーダは、強いフィルタ無効フラグが「真」に設定されるかどうかを決定することができる(368)。強いフィルタ無効フラグは、ビットストリーム中の様々なシンタクス構造内で信号伝達され得る。例えば、強いフィルタ無効フラグは、シーケンスパラメータセット、適応パラメータセット、ピクチャパラメータセット、又はスライスヘッダの中で、デブロッキングフィルタ制御パラメータの一部として示され得る。
ビットストリーム中での強いフィルタ無効フラグの信号伝達は、幾つかの理由で有利であり得る。例えば、ビットストリーム中での強いフィルタ無効フラグの信号伝達は、ビデオ復号の複雑さを低減することができ、それは、デブロッキングフィルタの強/弱の決定が回避され得るとともに、弱いデブロッキングフィルタの複雑さが強いデブロッキングフィルタよりも低い可能性があるからである。
強いフィルタ無効フラグが「真」に設定されないと決定したことに応答して(368の「いいえ」)、ビデオコーダは、現在のエッジと関連付けられるサンプルに強いデブロッキングフィルタを適用するかどうかを決定することができる(370)。言い換えれば、ビデオコーダは、デブロッキングフィルタの強/弱の判断を行うことができる。テクスチャ又は活動レベルが低く、階調変化がなだらかであり、エッジにまたがる不連続性が小さい場合、ビデオコーダは、強いフィルタを適用して、エッジと関連付けられるビデオブロック間の不連続性の更なる平滑化を実現するべきである。それ以外の場合、即ち、テクスチャ又は活動レベルが高く、階調変化が急激であり、エッジにまたがる不連続性が大きい場合、ビデオコーダは、弱いフィルタを適用して、エッジにおいてより小さな平滑化を実現するべきである。
ビデオコーダは、様々な方法で、強いデブロッキングフィルタを適用するかどうかの決定を行うことができる。例えば、現在のエッジは、8サンプルの幅又は高さであり得る。この例では、8個のルーマサンプルが、第1のセグメント及び第2のセグメントへと等しく分割され得る。第1のセグメントは前の4つのサンプル(即ち、サンプル0…3)を含んでよく、第2のセグメントは後の4つのサンプル(即ち、サンプル4…7)を含んでよい。この例では、ビデオコーダは、第1のセグメントに対して強/弱の決定を行い、第2のセグメントに対して別の強/弱の決定を行うことができる。ビデオコーダは、ステップ372及び374において、強いデブロッキングフィルタ又は弱いデブロッキングフィルタを、第1のセグメント及び第2のセグメントと関連付けられるルーマサンプルへ別々に適用することができる。ビデオコーダは、図10に示される例示的な動作を実行して、第1のセグメント又は第2のセグメントに、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかどうかを決定することができる。
他の例では、現在のエッジのセグメントは、4サンプルの幅又は高さであり得る。そのような例では、ビデオコーダは、サンプルの第1のライン及び現在のエッジと交差するサンプルの第4のラインの中のサンプルの値に基づいて、現在のエッジのセグメントに対する強/弱の決定を行うことができる。サンプルのラインは、現在のエッジに垂直な(かつ従って、第1のビデオブロックと第2のビデオブロックとの境界に垂直な)一連の隣接するサンプルであり得る。例えば、現在のエッジが水平である場合、ラインは垂直である。同様に、現在のエッジが垂直である場合、ラインは水平である。
更に他の例では、ビデオコーダは、現在のエッジと交差するサンプルの各ラインに対して、別個の強/弱の決定を行うことができる。そのような例では、ビデオコーダは、ステップ372及び374において、強いデブロッキングフィルタ又は弱いデブロッキングフィルタを、現在のエッジと交差するサンプルの各ラインの中のルーマサンプルに別々に適用することができる。
強いデブロッキングフィルタを適用するという決定を行ったことに応答して(370の「はい」)、ビデオコーダは、現在のエッジと関連付けられるルーマサンプルに強いデブロッキングフィルタを適用することができる(372)。幾つかの例では、強いデブロッキングフィルタを適用することは、両方向にエッジから3サンプル離れたサンプルまで修正し得る。
ビデオコーダは、様々な方法で、強いデブロッキングフィルタを適用することができる。例えば、ビデオコーダは、次の強いデブロッキングフィルタを、現在のルーマエッジと交差するルーマサンプルのラインに適用することができる。
Figure 2014534733
上のラインでは、「q」は第1のビデオブロックを示すことができ、「p」は第2の隣接するビデオブロックを示すことができる。p0、p1、p2、p3は、第1のビデオブロックと第2のビデオブロックとの境界からそれぞれ0サンプル、1サンプル、2サンプル、及び3サンプル離れた、第2のビデオブロックのサンプルの元の値を示す。p0’、p1’、及びp2’は、第1のビデオブロックと第2のビデオブロックとの境界からそれぞれ0サンプル、1サンプル、及び2サンプル離れた、第2のビデオブロックのサンプルの修正された値を示す。q0、q1、q2、及びq3は、第1のビデオブロックと第2のビデオブロックとの境界からそれぞれ0サンプル、1サンプル、2サンプル、及び3サンプル離れた、第1のビデオブロックのサンプルの元の値を示す。q0’、q1’、及びq2’は、第1のビデオブロックと第2のビデオブロックとの境界からそれぞれ0サンプル、1サンプル、及び2サンプル離れた、第1のビデオブロックのサンプルの修正された値を示す。
別の例では、ビデオコーダは、次の強いデブロッキングフィルタを、現在のエッジと交差するルーマサンプルのラインに適用することができる。
Figure 2014534733
この強いデブロッキングフィルタは、前の段落の強いデブロッキングフィルタに対して1つ又は複数の利点を有し得る。例えば、この強いデブロッキングフィルタは、前の段落の強いデブロッキングフィルタのデブロッキング強度を保つことができるが、ビデオコーダのラインメモリバッファの要件は、前の段落の強いデブロッキングフィルタにおいて必要とされる4つのラインではなく3つのラインであり得る。
別の例では、ビデオコーダは、次の強いデブロッキングフィルタを、サンプルのラインの中のルーマ値に適用することができる。
Figure 2014534733
強いフィルタ無効フラグが「真」に設定されるという決定を行ったことに応答して(368の「はい」)、又は、弱いデブロッキングフィルタを選択されたセグメントに適用するという決定を行ったことに応答して(370の「いいえ」)、ビデオコーダは、現在のエッジと関連付けられるルーマサンプルに弱いデブロッキングフィルタを適用することができる(374)。従って、強いフィルタ無効フラグが「真」に設定される場合、ビデオコーダは、弱いデブロッキングフィルタのみを使用し、ビデオコーダは、強い/弱いデブロッキングフィルタを実行するかどうかの決定を実行しない。
ビデオコーダは、様々な方法で、弱いデブロッキングフィルタを適用することができる。例えば、ビデオコーダは、次の弱いデブロッキングフィルタを、ルーマサンプルのラインに適用することができる。
Figure 2014534733
上のラインでは、p0、p1、p2、p0’、p1’、q0、q1、q2、q0’、q1’、及び「Clip3」関数は、上で与えられたものと同じ意味を有し得る。この弱いデブロッキングフィルタは、図13B及び図14Bに関して以下でより詳しく説明される。
別の例では、ビデオコーダは、次の弱いデブロッキングフィルタを、現在のルーマエッジと交差するルーマサンプルのラインに適用することができる。
Figure 2014534733
上のラインでは、p0、p1、p2、p0’、p1’、q0、q1、q2、q0’、q1’、及び「Clip3」関数は、上で与えられたものと同じ意味を有し得る。この弱いデブロッキングフィルタは、図14Cに関して以下でより詳しく説明される。
別の例では、ビデオコーダは、次の弱いデブロッキングフィルタを、現在のエッジと交差するルーマサンプルのラインに適用することができる。
Figure 2014534733
上のラインでは、p0、p1、p2、p0’、p1’、q0、q1、q2、q0’、q1’、及び「Clip3」関数は、上で与えられたものと同じ意味を有し得る。
図10は、ルーマエッジのセグメントに強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかどうかを決定するための例示的な動作380を示すフローチャートである。ビデオエンコーダ20又はビデオデコーダ30のようなビデオコーダは、動作380を実行することができる。他の例では、ビデオコーダは、動作380以外の動作を使用して、セグメントに強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかどうかを決定することができる。例えば、他の例では、ビデオコーダは、ビデオコーダが動作380よりも多数の、少数の、又は異なるステップを実行する、境界強度値を求めるための動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、動作380のステップを実行することができる。
動作380を開始した後、ビデオコーダは、セグメント中のサンプルの第1のラインに対する強度インジケータsw0を決定することができる(382)。加えて、ビデオコーダは、セグメント中のサンプルの第4のラインに対する強度インジケータsw3を決定することができる(384)。幾つかの例では、ビデオコーダは、次の式を使用して、サンプルiのラインに対する強度インジケータを決定することができる。
Figure 2014534733
この例では、2(|p2,i−2・p1,i+p0,i|+|q0,i−2・q1,i+q2,i|)<(β/4)はテクスチャ/活動の決定であってよく、(|p2,i−p0,i|+|q0,i−q2,i|)<(β/8)は階調変化の決定であってよく、|p0,i−q0,i|<((5・tc+1)/2)はエッジ不連続の確認であり得る。
サンプルの第1のラインに対する強度インジケータとサンプルの第4のラインに対する強度インジケータとを決定した後、ビデオコーダは、サンプルの第1のラインに対する強度インジケータ(sw0)とサンプルの第4のラインに対する強度インジケータ(sw3)の両方が「真」に等しいかどうかを決定することができる(386)。サンプルの第1のラインに対する強度インジケータとサンプルの第4のラインに対する強度インジケータの両方が「真」に等しいと決定したことに応答して(386の「はい」)、ビデオコーダは、強いデブロッキングフィルタを現在のエッジのセグメントに適用するという決定を行うことができる(388)。それ以外の場合、サンプルの第1のラインに対する強度インジケータ又はサンプルの第4のラインに対する強度インジケータのいずれかが「偽」に等しいと決定したことに応答して(386の「いいえ」)、ビデオコーダは、弱いデブロッキングフィルタを現在のエッジのセグメントに適用するという決定を行うことができる(390)。
ルーマエッジが複数の4サンプルのセグメントを有する例では、ビデオコーダは、セグメントの各々に対して動作380を実行することができる。例えば、ビデオコーダは、ルーマエッジの第2のセグメントに対して動作380を実行することができる。この例では、ビデオコーダは、上で説明されたようなサンプルの第1のライン及び第4のラインの代わりに、サンプルの第5のライン及び第8のラインに対して強度インジケータを決定し使用することができる。
強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかの決定をこのように行うことによって、ビデオコーダは、エッジのいずれかの側の3つのサンプルを読み取ることができる。対照的に、HEVCのTest Model 5(HM5)は、次の式を使用して、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかの決定を行うことができる。
Figure 2014534733
この式の第2の行において、ビデオコーダは、エッジから4サンプル離れたサンプル(即ち、p3,i、q3,i)を使用する。その結果、ビデオコーダが動作380を実行するとき、ビデオコーダは、エッジのいずれかの側の3行又は3列のサンプルを、メモリバッファに記憶することができる。対照的に、ビデオコーダが、エッジのいずれかの側の4行以上又は4列以上のサンプルに基づいて、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかの決定を行うとすれば、ビデオコーダは、4行以上又は4列以上をメモリバッファに記憶する必要があり得る。従って、エッジのいずれかの側の3つのサンプルに基づいて強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかの決定を行うことによって、ビデオコーダは、強いデブロッキングフィルタに対するデブロッキング強度を保ちつつ、列メモリバッファの要件を下げることができる。
別の例では、ビデオコーダは、上で与えられた式の代わりに、ステップ382及び384において次の式を使用することができる。
Figure 2014534733
上の式では、dは、図8のステップ366に関して上で説明された方式で計算され得る。更に、上の式では、d<(β>>2)はテクスチャ/活動の決定であり得る。この例では、エッジは、8サンプルの幅又は高さであってよく、ビデオコーダは、第1のセグメント(即ち、i=0…3)に対する強/弱の決定と、第2のセグメント(即ち、i=4…7)に対する別個の強/弱の決定とを行うことができる。ビデオコーダは、強いデブロッキングフィルタ又は弱いデブロッキングフィルタを、第1のセグメント及び第2のセグメントへ別々に適用することができる。この例では、ビデオコーダは、上の式を使用してsw2の値を求めることによって、第1のセグメントに対して強/弱の決定を行うことができる。ビデオコーダは、上の式を使用してsw5の値を求めることによって、第2のセグメントに対して強/弱の決定を行うことができる。第1のセグメント及び第2のセグメントに対して強/弱の決定を行うことは、ルーマエッジと交差するサンプルの各ライン(即ち、i=0…7)に対して別々に強/弱の決定を行うことよりも複雑ではないことがある。例えば、この技法は、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するか判断するための計算の回数を、24回の計算から6回の計算へと減らすことができる。
従って、この例では、ビデオコーダは、エッジと交差するサンプルの第3のライン、i=2に基づいて、第1のエッジセグメントと関連付けられるルーマサンプルに第1の強いデブロッキングフィルタを適用するか第1の弱いデブロッキングフィルタを適用するかどうかを決定することができる。加えて、ビデオコーダは、エッジと交差するサンプルの第6のライン、i=5に基づいて、第2のエッジセグメントと関連付けられるルーマサンプルに第2の強いデブロッキングフィルタを適用するか第2の弱いデブロッキングフィルタを適用するかどうかを決定することができる。第1の強いデブロッキングフィルタ及び第2の強いデブロッキングフィルタは、同じでも、異なってもよい。同様に、第1の弱いデブロッキングフィルタ及び第2の弱いデブロッキングフィルタは、同じでも、異なってもよい。
上で論じられたように、ビデオコーダは、図8のステップ364において、β及びtcが0に等しいかどうかを決定することができる。βが0に等しくtcが0に等しい場合、ビデオコーダは、弱いデブロッキングフィルタを適用するという決定を行う。例えば、上の式からの2(|p2i−2・p1i+p0i|+|q0i−2・q1i+q2i|)<(β/4)、(|p3i−p0i|+|q0i−q3i|)<(β/8)、及び|p0i−q0i|<((5・tc+1)/2)は、β又はtcが0に等しい場合、偽であると評価される。しかしながら、βが0よりも大きくtcが0に等しい場合、ビデオコーダは、弱いデブロッキングフィルタの自然なエッジの条件が偽であると決定することができ、ビデオコーダは弱いデブロッキングフィルタを適用しない。例えば、弱いルーマフィルタは、ラインΔ=Clip3(−tc,tc,Δ)を含み得る。tcが0に等しい場合、Δは0であると評価される。その結果、弱いルーマフィルタのラインp0’=p0+Δ及びq0’=q0−Δは、p0及びq0の値を変えない。同様に、弱いデブロッキングフィルタは、tcが0に等しいとき、p1又はq1の値を変えない。その上、エッジがクロマエッジであり、tcが0に等しい場合、ビデオコーダはΔを0にとどめるので、ビデオコーダは、デブロッキングフィルタをエッジに適用する必要はない。このようにして、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかの決定を行う前にβ及びtcが0に等しいかどうかを決定することによって、ビデオコーダが実行する計算の量が減らされ得る。対照的に、従来のビデオコーダは、β及びtcが0に等しい場合であっても、デブロッキングフィルタに対する有効/無効の判断を確認し、エッジに対してデブロッキングフィルタの強/弱の決定を行う可能性がある。
図11は、CUのクロマエッジをデブロックするための例示的な動作400を示すフローチャートである。ビデオエンコーダ20又はビデオデコーダ30のようなビデオコーダは、クロマエッジデブロッキング動作400を実行することができる。他の例では、ビデオコーダは、クロマエッジデブロッキング動作400以外の動作を使用することができる。例えば、他の例では、ビデオコーダは、ビデオコーダがクロマエッジデブロッキング動作400よりも多数の、少数の、又は異なるステップを実行する、クロマエッジデブロッキング動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、クロマエッジデブロッキング動作400のステップを実行することができる。
ビデオコーダがクロマエッジデブロッキング動作400を開始した後、ビデオコーダは、ビデオコーダが現在のCUビデオブロックと関連付けられる最後の垂直クロマエッジをすでに選択しているどうかを決定することができる(402)。現在のCUビデオブロックは、ビデオコーダが現在コード化しているCU(即ち、現在のCU)と関連付けられるビデオブロックであり得る。最後の垂直クロマエッジは、現在のCUビデオブロックと関連付けられる垂直クロマエッジが幾何学的な順序に従って左から右に並べられるときの、最終の垂直クロマエッジであり得る。
ビデオコーダが最後の垂直クロマエッジをまだ選択していないと決定したことに応答して(402の「いいえ」)、ビデオコーダは、現在のCUビデオブロックと関連付けられる次の垂直クロマエッジを選択することができる(404)。次の垂直クロマエッジは、ビデオコーダがまだ選択していない現在のCUビデオブロックと関連付けられる、最初の垂直クロマエッジであり得る。
ビデオコーダは次いで、選択された垂直クロマエッジと関連付けられるCbサンプルに対してデブロッキング動作を実行することができる(406)。加えて、ビデオコーダは、選択された垂直クロマエッジと関連付けられるCrサンプルに対してデブロッキング動作を実行することができる(408)。選択された垂直クロマエッジのCbサンプル及びCrサンプルに対してデブロッキング動作を実行することによって、ビデオコーダは、選択された垂直クロマエッジと関連付けられるブロック歪みを低減又は除去することができる。ビデオコーダは、選択された垂直クロマエッジと関連付けられるCbサンプル及びCrサンプルに対して、様々なデブロッキング動作を実行することができる。例えば、ビデオコーダは、図12の例示的なデブロッキング動作を、選択された垂直クロマエッジのCbサンプル及びCrサンプルに対して実行することができる。他の例では、ビデオコーダは、図12のデブロッキング動作とは異なるデブロッキング動作を、選択された垂直クロマエッジのCbサンプル及びCrサンプルに対して実行することができる。
選択された垂直クロマエッジと関連付けられるCbサンプル及びCrサンプルに対してデブロッキング動作を実行した後、ビデオコーダは、デブロッキング動作が現在のCUビデオブロックと関連付けられる最後の垂直クロマエッジに適用されたかどうかを再び決定することができる(402)。適用されていない場合、ビデオコーダは、現在のCUビデオブロックと関連付けられる別の垂直クロマエッジに関して、ステップ404〜408を繰り返すことができる。このようにして、ビデオコーダは、現在のCUビデオブロックと関連付けられる垂直クロマエッジの各々と関連付けられるCbサンプル及びCrサンプルに対して、デブロッキング動作を実行することができる。
デブロッキング動作が現在のCUビデオブロックと関連付けられる最後の垂直クロマエッジのCbサンプル及びCrサンプルに対して実行されていると決定したことに応答して(402の「はい」)、ビデオコーダは、現在のCUビデオブロックと関連付けられる最後の水平クロマエッジがすでに選択されているかどうかを決定することができる(410)。最後の水平クロマエッジは、現在のCUビデオブロックと関連付けられる水平クロマエッジが幾何学的な順序に従って上から下に並べられるときの、最後の水平クロマエッジであり得る。
ビデオコーダが最後の水平クロマエッジに対してデブロッキング動作をまだ実行していないと決定したことに応答して(410の「いいえ」)、ビデオコーダは、現在のCUビデオブロックと関連付けられる次の水平クロマエッジを選択することができる(412)。次の水平クロマエッジは、デブロッキング動作がまだ実行されていない現在のCUビデオブロックと関連付けられる、最初の水平クロマエッジであり得る。ビデオコーダは次いで、選択された水平クロマエッジと関連付けられるCbサンプルに対してデブロッキング動作を実行することができる(414)。加えて、ビデオコーダは、選択された水平クロマエッジと関連付けられるCrサンプルに対してデブロッキング動作を実行することができる(416)。選択された水平ルーマエッジと関連付けられるCbサンプル及びCrサンプルに対してデブロッキング動作を実行することによって、ビデオコーダは、選択された水平クロマエッジと関連付けられるブロック歪みを低減又は除去することができる。ビデオコーダは、選択された水平クロマエッジに対して様々なデブロッキング動作を実行することができる。例えば、ビデオコーダは、図12の例示的なデブロッキング動作を、選択された水平クロマエッジに対して実行することができる。
選択された水平クロマエッジと関連付けられるCbサンプル及びCrサンプルに対してデブロッキング動作を実行した後、ビデオコーダは、最後の水平クロマエッジがすでに選択されているかどうかを再び決定することができる(410)。選択されていない場合、ビデオコーダは、現在のCUビデオブロックと関連付けられる別の水平クロマエッジに関して、ステップ412〜416を繰り返すことができる。しかしながら、ビデオコーダが現在のCUビデオブロックと関連付けられる最後の水平クロマエッジをすでに選択していると決定したことに応答して(410の「はい」)、ビデオコーダは、クロマエッジデブロッキング動作400を終了することができる。このようにして、ビデオコーダは、現在のCUビデオブロックと関連付けられる垂直クロマエッジと水平クロマエッジの各々に対して、デブロッキング動作を実行することができる。
図12は、個々のクロマエッジと関連付けられるCbサンプル又はCrサンプルに対してビデオコーダによって実行される、例示的なデブロッキング動作450を示すフローチャートである。ビデオエンコーダ20又はビデオデコーダ30のようなビデオコーダは、デブロッキング動作450を実行することができる。他の例では、ビデオコーダは、デブロッキング動作450以外の動作を使用することができる。例えば、他の例では、ビデオコーダは、ビデオコーダがデブロッキング動作450よりも多数の、少数の、又は異なるステップを実行する、デブロッキング動作を実行することができる。他の例では、ビデオコーダは、異なる順序で、又は並行して、デブロッキング動作450のステップを実行することができる。
デブロッキング動作450を開始した後、ビデオコーダは、クロマエッジがIスライスと関連付けられるかどうかを決定することができる(452)。クロマエッジは、クロマエッジがIスライス中にあるCUと関連付けられる場合、Iスライスと関連付けられ得る。クロマエッジがIスライスと関連付けられないと決定したことに応答して(452の「いいえ」)、ビデオコーダは、クロマエッジに関する動作450を終了することができる。
幾つかの例では、ビデオコーダは、現在のCUと関連付けられるビデオブロックの各ルーマサンプルに対するエントリーを有するアレイに、境界強度値を記憶する。(垂直エッジに対する)一番上のルーマサンプル又は(水平エッジに対する)一番左のルーマサンプルと関連付けられるエントリーは、エッジと関連付けられる境界強度値を記憶することができる。ビデオコーダは、クロミナンスビデオブロックをダウンサンプリングすることができる。例えば、輝度ビデオブロックの最大のTUサイズは通常、ビデオコーダがN×Nのクロミナンスビデオブロックへとダウンサンプリングできる、2N×2Nである。ビデオコーダはPスライス及びBスライスの中のクロマ値をダウンサンプリングすることができるので、現在のCUと関連付けられるクロマサンプルの数は、CUと関連付けられるルーマサンプルの数よりも少なくてよい。従って、クロマエッジと関連付けられる境界強度値を参照するために、ビデオコーダは、クロマエッジの一番上又は一番左のクロマサンプルに対応するルーマサンプルの配置を計算することが必要であり得る。ビデオコーダは次いで、対応するルーマサンプルの配置を使用して、クロマエッジと関連付けられる境界強度値を参照することができる。
対応するルーマサンプルの配置を求めることは、ビデオコーダの複雑さを高め、ビデオコーダの性能を低下させ得る。しかしながら、ビデオコーダは、Iスライス中のクロマサンプルをダウンサンプリングしなくてよい。従って、クロマエッジがIスライスと関連付けられる場合、ビデオコーダは、対応するルーマサンプルの配置を計算する必要はなくてよい。従って、クロマエッジがIスライスと関連付けられるかどうか確認し、クロマエッジがIスライスと関連付けられない場合にデブロッキング動作450を終了することによって、ビデオコーダは、クロマエッジがIスライスと関連付けられないときに対応するルーマサンプルの配置を計算することによる複雑さと性能の低下とを避けることができる。
クロマエッジがIスライスと関連付けられると決定したことに応答して(452の「はい」)、ビデオコーダは、デブロッキングQP値を求めることができる(456)。ビデオコーダは、図8に関して上で説明されたのと同様の方式で、デブロッキングQP値を求めることができる。
デブロッキングQP値を求めた後、ビデオコーダは、クロマエッジと関連付けられるデブロッキングQP値と境界強度値とに基づいて、閾値tcに対するQの値を特定することができる(458)。ビデオコーダは次いで、tcに対するQの値に基づいて、tcの値を求めることができる(460)。ビデオコーダは、図8に関して上で説明されたのと同様の方式で、tcに対するQの値とtcの値とを特定することができる。
cの値を求めた後、ビデオコーダは、tcが0に等しいかどうかを決定することができる(462)。tcが0に等しいと決定したことに応答して(462の「はい」)、ビデオコーダは、クロマエッジに関するデブロッキング動作450を終了することができる。それ以外の場合、tcが0に等しくないと決定したことに応答して(462の「いいえ」)、ビデオコーダは、クロマエッジと関連付けられるサンプルにデブロッキングフィルタを適用することができる(464)。ビデオコーダがクロマエッジと関連付けられるCbサンプルに関してデブロッキング動作450を実行している場合、ビデオコーダは、クロマエッジと関連付けられるCbサンプルにデブロッキングフィルタを適用することができる。ビデオコーダがクロマエッジと関連付けられるCrサンプルに関してデブロッキング動作450を実行している場合、ビデオコーダは、クロマエッジと関連付けられるCrサンプルにデブロッキングフィルタを適用することができる。デブロッキングフィルタを適用した後、ビデオコーダは、クロマエッジに関してデブロッキングフィルタ450を終了することができる。
ビデオコーダは、様々な方法で、デブロッキングフィルタを適用することができる。例えば、ビデオコーダは、次のデブロッキングフィルタを、クロマサンプルに適用することができる。
Figure 2014534733
上の「Clip1C」関数は、値をクロマサンプルのビット深度にとどめる。
別の例では、ビデオコーダは、次のデブロッキングフィルタを、クロマエッジと関連付けられるクロマサンプルに適用することができる。
Figure 2014534733
別の例では、ビデオコーダは、次のデブロッキングフィルタを、クロマエッジと関連付けられるクロマサンプルに適用することができる。
Figure 2014534733
このデブロッキングフィルタは、前の段落のデブロッキングフィルタに対して1つ又は複数の利点を有し得る。例えば、前の段落の例示的なデブロッキングフィルタとは対照的に、このデブロッキングフィルタは線形の傾きをオーバーシュートしない。加えて、このデブロッキングフィルタの使用は、ルーマ及びデブロッキングフィルタに対するハードウェアの再使用を容易にし得る。クロマデブロッキングフィルタは、図13C及び図13Dに関してより詳しく説明される。
図13A〜図13Dは、例示的なサンプル値のグラフを示す概念図である。図13A〜図13Dにおいて、実線の黒色の丸は、エッジ500の両側にあるサンプルの元の値を表す。線形の傾き502は、弱いデブロッキングフィルタによって使用される、最初のサンプルから最後のサンプルまでの直線を示す。
図13Bにおいて、灰色の丸は、ビデオコーダが次の弱いデブロッキングフィルタをルーマサンプルに適用した後の、ルーマサンプルの値を表す。
Figure 2014534733
図13Bに示されるように、図13Bの弱いデブロッキングフィルタは、線形の傾き502をオーバーシュートしないような方法で、ルーマサンプルを調整することができる。線形の傾きをオーバーシュートすることは、Δの値が大きすぎること、従って、画像品質に悪影響を及ぼす新たな視覚的アーチファクトが発生する可能性があることを意味し得る。
図13Cにおいて、灰色の丸は、ビデオコーダが弱いデブロッキングフィルタをクロマサンプルに適用した後の、サンプルの値を表す。
Figure 2014534733
図13Cに示されるように、図13Cの弱いデブロッキングフィルタは、線形の傾き502をオーバーシュートするような方法で、クロマサンプルを調整することができる。
図13Dにおいて、灰色の丸は、ビデオコーダが異なる弱いデブロッキングフィルタをクロマサンプルに適用した後の、クロマサンプルの値を表す。
Figure 2014534733
図13Dの弱いデブロッキングフィルタは、線形の傾き502をオーバーシュートするような方法で、クロマサンプルを調整しない。
図14A〜図14Cは、例示的なサンプル値のグラフを示す概念図である。図14A〜図14Cにおいて、実線の黒色の丸は、ルーマサンプルの元の値を表す。垂直のライン550は、隣接するビデオブロック間の境界において発生するエッジを示す。ライン550の異なる側にあるルーマサンプルの値に、段差又はエッジの不連続性が存在するので、エッジと関連付けられるブロック歪みが存在し得る。
図14Aは、デブロッキングフィルタの適用の前の、サンプルの元の値を示す。細かい点線552は、最初のサンプルから最後のサンプルまでの線形の傾きを示す。ライン550の両側にあるサンプルの元の値は、滑らかかつ平らである。従って、強/弱の判断の第3の部分、即ちエッジの不連続性の確認により、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかどうかを決定することができる。
図14Bにおいて、灰色の丸は、ビデオコーダが従来の弱いデブロッキングフィルタを元のルーマサンプルに適用した後のサンプル値に対応する。弱いデブロッキングフィルタは、次のように表され得る。
Figure 2014534733
図14Bにおいて、弱いデブロッキングフィルタは、エッジの両側の平滑性により、エッジの両側にある2つのサンプルを修正する。
更に、図14Bにおいて、白色の丸は、ビデオコーダが従来の強いデブロッキングフィルタをルーマサンプルに適用した後のサンプル値を示す。強いデブロッキングフィルタは、次のように表され得る。
Figure 2014534733
図14Bに示されるように、強いデブロッキングフィルタを適用することは、エッジの両側にある最大で3つのルーマサンプルを修正することができる。同様に、弱いデブロッキングフィルタを適用することは、エッジの両側にある最大で2つのルーマサンプルを修正することができる。更に、図14Bに示されるように、図14Bの強いデブロッキングフィルタを適用することと図14Bの弱いデブロッキングフィルタを適用することとの差は、比較的小さいことがある。これは、図14Bの弱いデブロッキングフィルタが強すぎる可能性があることを意味し得る。
図14Cにおいて、ビデオコーダは、次の弱いデブロッキングフィルタをルーマサンプルに適用している。
Figure 2014534733
図14Cの弱いデブロッキングフィルタを適用することは、幾つかの理由で、図14Bの弱いデブロッキングフィルタを適用することより有利であり得る。例えば、ビデオコーダがエッジに対して弱いデブロッキングフィルタを選択した場合、エッジの不連続性の確認(例えば、|p0,i−q0,i|<((5・tc+1)/2))は偽である。従って、エッジの形状の一部を保つことが、弱いデブロッキングフィルタにとって適切であり得る。対照的に、図14Bの弱いデブロッキングフィルタは、サンプルをほぼ直線へと平滑化し得る。
別の例では、図14Cの弱いデブロッキングフィルタでは、ビデオコーダは、単一の乗算演算のみを使用してΔを計算することができ、Δに基づいて、エッジと関連付けられるルーマサンプルの修正された値を求めることができる。ビデオコーダが単一の乗算演算のみを使用してΔを計算するので、図14Cの弱いデブロッキングフィルタにおいてΔの値を計算することは、図14Bの弱いデブロッキングフィルタにおいてΔの値を計算することよりも、ビデオコーダにとって計算的に複雑ではないことがある。値Δは、弱いデブロッキングフィルタの強度を示し得る。Δの値を求めることは、(デブロッキングフィルタを適用するかどうかを決定した後、かつ、強いデブロッキングフィルタを適用するか弱いデブロッキングフィルタを適用するかどうかを決定した後の)第3のデブロッキングの判断であると考えられ得る。サンプル値の差分(例えば、q0−p0)は、ステップ状の不連続部分であり得る。
幾つかの例では、ビデオコーダは、クロマサンプル、更にはルーマサンプルに対しても、図14Cの弱いデブロッキングフィルタを使用することができる。その結果、修正されたクロマ値は、線形の傾きをオーバーシュートしない。加えて、ビデオコーダはルーマサンプル及びクロマサンプルに対して同一の弱いデブロッキングフィルタを使用し得るので、ビデオコーダは、同一のハードウェアを再使用して、ルーマサンプルとクロマサンプルの両方に弱いデブロッキングフィルタを適用することが可能であり得る。
1つ又は複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施され得る。各機能は、ソフトウェアで実施される場合、1つ又は複数の命令又はコードとしてコンピュータ可読媒体上に記憶されてよく、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、データ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、全般に、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実施のための命令、コード及び/又はデータ構造を取り出すために、1つ又は複数のコンピュータあるいは1つ又は複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROM又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気ストレージ機器、フラッシュメモリ、あるいは、命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモート発信源から送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)及びブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つ又は複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路又はディスクリート論理回路などの、1つ又は複数のプロセッサによって実行され得る。従って、本明細書で使用される「プロセッサ」という用語は、前述の構造、又は本明細書で説明される技法の実施に好適な任意の他の構造のいずれかを指す。更に、幾つかの態様では、本明細書で説明された機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に与えられてよく、あるいは複合コーデックに組み込まれてよい。また、本技法は、1つ又は複数の回路又は論理要素中で十分に実施され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置において実施され得る。本開示では、開示される技法を実行するように構成された機器の機能的態様を強調するために、様々なコンポーネント、モジュール、又はユニットが説明されたが、それらのコンポーネント、モジュール、又はユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上で説明された1つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられてよく、又は相互動作するハードウェアユニットの集合によって与えられてよい。
様々な例が説明された。これら及び他の例は以下の特許請求の範囲内に入る。
様々な例が説明された。これら及び他の例は以下の特許請求の範囲内に入る。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1] ビデオデータをコード化する方法であって、第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定することに応答して、第1の境界強度値をエッジと関連付けることと、前記エッジが、前記第1のビデオブロックと前記第2のビデオブロックとの境界において発生する、前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ以上の追加の条件が満たされると決定することに応答して、第2の境界強度値を前記エッジと関連付けることと、前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、前記1つ以上の追加の条件が満たされないと決定することに応答して、第3の境界強度値を前記エッジと関連付けることと、前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられるが前記第3の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルに1つ以上のデブロッキングフィルタを適用することとを備える、方法。
[2] 前記第1の境界強度値を前記エッジと関連付けることが、前記エッジがCUエッジかどうかを決定することなく前記第1の境界強度値を前記エッジと関連付けることを備える、[1]に記載の方法。
[3] 前記第1の境界強度値が2に等しく、前記第2の境界強度値が1に等しく、前記第3の境界強度値が0に等しい、[1]に記載の方法。
[4] 前記1つ以上のデブロッキングフィルタを適用することが、前記エッジが前記第1の境界強度値と関連付けられる場合、前記エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用することと、前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられる場合、前記エッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用することとを備える、[1]に記載の方法。
[5] デブロッキング量子化パラメータ(QP)値に基づいて、かつ、前記第1の境界強度値又は前記第2の境界強度値が前記エッジと関連付けられるかどうかに基づいて、第1の閾値と第2の閾値とを決定することと、前記第1の閾値又は前記第2の閾値が0に等しいかどうかを決定することと、前記第1の閾値又は前記第2の閾値のいずれかが0に等しい場合、前記エッジと関連付けられる前記ルーマサンプルにデブロッキングフィルタを適用しないこととを更に備え、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用することが、前記エッジが前記第1の境界強度値又は第2の境界強度値と関連付けられる場合、かつ、前記第1の閾値も前記第2の閾値も0に等しくない場合、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用することを備える、[4]に記載の方法。
[6] 前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用することが、単一の乗算演算のみを使用してデルタ値を計算することと、前記デルタ値に基づいて、前記エッジと関連付けられる前記ルーマサンプルの修正された値を求めることとを備える、[4]に記載の方法。
[7] 前記エッジの高さ又は幅が8個のルーマサンプルであり、前記8個のルーマサンプルが第1のエッジセグメント及び第2のエッジセグメントに等しく分割され、前記エッジと交差するサンプルの第3のラインに基づいて、前記第1のエッジセグメントと関連付けられるルーマサンプルに第1の強いデブロッキングフィルタを適用するか第1の弱いデブロッキングフィルタを適用するかどうかを決定することと、前記エッジと交差するサンプルの第6のラインに基づいて、前記第2のエッジセグメントと関連付けられるルーマサンプルに第2の強いデブロッキングフィルタを適用するか第2の弱いデブロッキングフィルタを適用するかどうかを決定することとを更に備える、[4]に記載の方法。
[8] 前記エッジがクロマエッジであり、前記クロマエッジがイントラスライスと関連付けられるかどうかを決定することを更に備え、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用することが、前記クロマエッジがIスライスと関連付けられ、前記クロマエッジが前記第1の境界強度値と関連付けられる場合にのみ、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用することを備える、[4]に記載の方法。
[9] N×Nのグリッドに従って、変換単位(TU)のエッジと予測単位(PU)のエッジとを識別することと、クロマビデオブロックがN×Nのサンプルよりも大きいサイズを有するかどうかを決定することとを更に備え、クロマサンプルにデブロッキングフィルタを適用することが、前記クロマビデオブロックがN×Nのサンプル以下のサイズを有する場合、前記エッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用することと、前記クロマビデオブロックがN×Nのサンプルよりも大きいサイズを有する場合、前記クロマビデオブロックの内部にある前記グリッドのエッジに対して、前記デブロッキングフィルタを無効にすることとを備える、[4]に記載の方法。
[10] 前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられないと決定することに応答して、前記1つ以上の追加の条件が満たされるかどうかを決定することを更に備え、前記1つ以上の追加の条件が満たされるかどうかを決定することが、前記第1のビデオブロック又は前記第2のビデオブロックが1つ以上の0ではない変換係数レベルを有する変換単位(TU)と関連付けられると決定することと、前記第1のビデオブロック又は前記第2のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられると決定することと、前記第1のビデオブロック及び前記第2のビデオブロックが各々1つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が1以上であることとを決定することと、前記第1のビデオブロック及び前記第2のビデオブロックが各々1つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が1以上であることとを決定することと、前記第1のビデオブロック及び前記第2のビデオブロックが各々2つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの少なくとも1つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が1以上であることとを決定することと、前記第1のビデオブロック及び前記第2のビデオブロックが各々2つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの少なくとも1つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が1以上であることとを決定することとのうちの、1つ以上を備える、[1]に記載の方法。
[11] ビデオ復号の方法を備え、ビットストリームを受信することと、前記ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成することと、前記予測されたビデオブロック及び前記残差ビデオブロックに基づいて、前記第1のビデオブロックを生成することとを更に備える、[1]に記載の方法。
[12] ビデオ符号化の方法を備え、前記エッジと関連付けられる前記サンプルに前記デブロッキングフィルタを適用した後、前記エッジと関連付けられる前記サンプルに少なくとも一部基づいて、予測されたビデオブロックを生成することと、その値が前記予測されたビデオブロックに少なくとも一部基づく、1つ以上のシンタクス要素を含むビットストリームを出力することとを更に備える、[1]に記載の方法。
[13] 1つ以上のプロセッサを備えるビデオコード化装置であって、前記1つ以上のプロセッサが、第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定することに応答して、第1の境界強度値をエッジと関連付け、このとき前記エッジが、前記第1のビデオブロックと前記第2のビデオブロックとの境界において発生し、前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ以上の追加の条件が満たされると決定することに応答して、第2の境界強度値を前記エッジと関連付け、前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、前記1つ以上の追加の条件が満たされないと決定することに応答して、第3の境界強度値を前記エッジと関連付け、前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられるが前記第3の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルにデブロッキングフィルタを適用するように構成される、ビデオコード化装置。
[14] 前記第1の境界強度値を前記エッジと関連付けることが、前記エッジがCUエッジかどうかを決定することなく前記第1の境界強度値を前記エッジと関連付けることを備える、[13]に記載のビデオコード化装置。
[15] 前記第1の境界強度値が2に等しく、前記第2の境界強度値が1に等しく、前記第3の境界強度値が0に等しい、[13]に記載のビデオコード化装置。
[16] 前記1つ以上のプロセッサが、前記エッジが前記第1の境界強度値と関連付けられる場合、前記エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用し、前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられる場合、前記エッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用するように構成される、[13]に記載のビデオコード化装置。
[17] 前記1つ以上のプロセッサが更に、デブロッキング量子化パラメータ(QP)値に基づいて、かつ、前記第1の境界強度値又は前記第2の境界強度値が前記エッジと関連付けられるかどうかに基づいて、第1の閾値と第2の閾値とを決定し、前記第1の閾値又は前記第2の閾値が0に等しいかどうかを決定し、前記第1の閾値又は前記第2の閾値のいずれかが0に等しい場合、前記エッジと関連付けられる前記ルーマサンプルにデブロッキングフィルタを適用せず、前記エッジが前記第1の境界強度値又は第2の境界強度値と関連付けられる場合、かつ、前記第1の閾値も前記第2の閾値も0に等しくない場合、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するように構成される、[16]に記載のビデオコード化装置。
[18] 前記1つ以上のプロセッサが、単一の乗算演算のみを使用してデルタ値を計算し、前記デルタ値に基づいて、前記エッジと関連付けられる前記ルーマサンプルの修正された値を求めるように構成される、[16]に記載のビデオコード化装置。
[19] 前記エッジの高さ又は幅が8個のルーマサンプルであり、前記8個のルーマサンプルが第1のエッジセグメント及び第2のエッジセグメントに等しく分割され、前記1つ以上のプロセスが、前記エッジと交差するサンプルの第3のラインに基づいて、前記第1のエッジセグメントと関連付けられるルーマサンプルに強いデブロッキングフィルタを適用するかどうかを決定し、前記エッジと交差するサンプルの第6のラインに基づいて、前記第2のエッジセグメントと関連付けられるルーマサンプルに前記強いデブロッキングフィルタを適用するかどうかを決定し、前記第1のエッジセグメントと関連付けられる前記ルーマサンプルに前記強いデブロッキングフィルタを適用するかどうかの前記決定に基づいて、前記第1のエッジセグメントと関連付けられる前記ルーマサンプルに、前記強いデブロッキングフィルタ又は弱いデブロッキングフィルタを適用し、前記第2のエッジセグメントと関連付けられる前記ルーマサンプルに前記強いデブロッキングフィルタを適用するかどうかの前記決定に基づいて、前記第2のエッジセグメントと関連付けられる前記ルーマサンプルに、前記強いデブロッキングフィルタ又は前記弱いデブロッキングフィルタを適用するように構成される、[16]に記載のビデオコード化装置。
[20] 前記エッジがクロマエッジであり、前記1つ以上のプロセッサが、前記クロマエッジがIスライスと関連付けられるかどうかを決定し、前記クロマエッジがIスライスと関連付けられ、前記クロマエッジが前記第1の境界強度値と関連付けられる場合にのみ、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するように構成される、[16]に記載のビデオコード化装置。
[21] 前記1つ以上のプロセッサが、前記エッジが32×32の変換単位(TU)の外部エッジに対応するかどうかを決定し、前記エッジが前記32×32のTUの外部エッジに対応し、前記エッジが前記第1の境界強度値と関連付けられる場合にのみ、前記エッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するように構成される、[16]に記載のビデオコード化装置。
[22] 前記1つ以上のプロセッサが、前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられないと決定することに応答して、前記1つ以上の追加の条件が満たされるかどうかを決定するように構成され、前記1つ以上の追加の条件が満たされるかどうかを決定するために、前記1つ以上のプロセッサが、前記第1のビデオブロック又は前記第2のビデオブロックが1つ以上の0ではない変換係数レベルを有する変換単位(TU)と関連付けられると決定することに応答して、前記1つ以上の追加の条件が満たされると決定し、前記第1のビデオブロック又は前記第2のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられると決定することに応答して、前記1つ以上の追加の条件が満たされると決定し、前記第1のビデオブロック及び前記第2のビデオブロックが各々1つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が1以上であることとを決定することに応答して、前記1つ以上の追加の条件が満たされると決定し、前記第1のビデオブロック及び前記第2のビデオブロックが各々1つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が1以上であることとを決定することに応答して、前記1つ以上の追加の条件が満たされると決定し、前記第1のビデオブロック及び前記第2のビデオブロックが各々2つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの少なくとも1つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が1以上であることとを決定することに応答して、前記1つ以上の追加の条件が満たされると決定し、前記第1のビデオブロック及び前記第2のビデオブロックが各々2つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの少なくとも1つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が1以上であることとを決定することに応答して、前記1つ以上の追加の条件が満たされると決定するように構成される、[13]に記載のビデオコード化装置。
[23] 前記1つ以上のプロセッサが、ビットストリームを受信し、前記ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成し、前記予測されたビデオブロック及び前記残差ビデオブロックに基づいて、前記第1のビデオブロックを生成するように構成される、[13]に記載のビデオコード化装置。
[24] 前記1つ以上のプロセッサが、前記エッジと関連付けられる前記サンプルに前記デブロッキングフィルタを適用した後、前記エッジと関連付けられる前記サンプルに少なくとも一部基づいて、予測されたビデオブロックを生成し、その値が前記予測されたビデオブロックに少なくとも一部に基づく、1つ以上のシンタクス要素を含むビットストリームを出力するように構成される、[13]に記載のビデオコード化装置。
[25] 第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定することに応答して、第1の境界強度値をエッジと関連付けるための手段であって、前記エッジが、前記第1のビデオブロックと前記第2のビデオブロックとの境界において発生する、手段と、前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ以上の追加の条件が満たされると決定することに応答して、第2の境界強度値を前記エッジと関連付けるための手段と、前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、前記1つ以上の追加の条件が満たされないと決定することに応答して、第3の境界強度値を前記エッジと関連付けるための手段と、前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられるが前記第3の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルに1つ以上のデブロッキングフィルタを適用するための手段とを備える、ビデオコード化装置。
[26] 前記第1の境界強度値を前記エッジと関連付けることが、前記エッジがCUエッジかどうかを決定することなく前記第1の境界強度値を前記エッジと関連付けることを備える、[25]に記載のビデオコード化装置。
[27] 前記第1の境界強度値が2に等しく、前記第2の境界強度値が1に等しく、前記第3の境界強度値が0に等しい、[25]に記載のビデオコード化装置。
[28] 前記1つ以上のデブロッキングフィルタを適用するための前記手段が、前記エッジが前記第1の境界強度値と関連付けられる場合、前記エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用するための手段と、前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられる場合、前記エッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用するための手段とを備える、[25]に記載のビデオコード化装置。
[29] デブロッキング量子化パラメータ(QP)値に基づいて、かつ、前記第1の境界強度値又は前記第2の境界強度値が前記エッジと関連付けられるかどうかに基づいて、第1の閾値と第2の閾値とを決定するための手段と、前記第1の閾値又は前記第2の閾値が0に等しいかどうかを決定するための手段と、前記第1の閾値又は前記第2の閾値のいずれかが0に等しい場合、前記エッジと関連付けられる前記ルーマサンプルにデブロッキングフィルタを適用しないための手段とを更に備え、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するための前記手段が、前記エッジが前記第1の境界強度値又は第2の境界強度値と関連付けられる場合、かつ、前記第1の閾値も前記第2の閾値も0に等しくない場合、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するための手段を備える、[28]に記載のビデオコード化装置。
[30] 前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するための前記手段が、単一の乗算演算のみを使用してデルタ値を計算するための手段と、前記デルタ値に基づいて、前記エッジと関連付けられる前記ルーマサンプルの修正された値を求めるための手段とを備える、[28]に記載のビデオコード化装置。
[31] 前記エッジの高さ又は幅が8個のルーマサンプルであり、前記8個のルーマサンプルが第1のエッジセグメント及び第2のエッジセグメントに等しく分割され、前記エッジと交差するサンプルの第3のラインに基づいて、前記第1のエッジセグメントと関連付けられるルーマサンプルに第1の強いデブロッキングフィルタを適用するか第1の弱いデブロッキングフィルタを適用するかどうかを決定するための手段と、前記エッジと交差するサンプルの第6のラインに基づいて、前記第2のエッジセグメントと関連付けられるルーマサンプルに第2の強いデブロッキングフィルタを適用するか第2の弱いデブロッキングフィルタを適用するかどうかを決定するための手段とを更に備える、[28]に記載のビデオコード化装置。
[32] 前記エッジがクロマエッジであり、前記クロマエッジがイントラスライスと関連付けられるかどうかを決定するための手段を更に備え、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するための前記手段が、前記クロマエッジがIスライスと関連付けられ、前記クロマエッジが前記第1の境界強度値と関連付けられる場合にのみ、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するための手段を備える、[28]に記載のビデオコード化装置。
[33] N×Nのグリッドに従って、変換単位(TU)のエッジと予測単位(PU)のエッジとを識別するための手段と、クロマビデオブロックがN×Nのサンプルよりも大きいサイズを有するかどうかを決定するための手段とを更に備え、クロマサンプルにデブロッキングフィルタを適用するための前記手段が、前記クロマビデオブロックがN×Nのサンプル以下のサイズを有する場合、前記エッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するための手段と、前記クロマビデオブロックがN×Nのサンプルよりも大きいサイズを有する場合、前記クロマビデオブロックの内部にある前記グリッドのエッジに対して、前記デブロッキングフィルタを無効にするための手段とを備える、[28]に記載のビデオコード化装置。
[34] 前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられないと決定することに応答して、前記1つ以上の追加の条件が満たされるかどうかを決定するための手段を更に備え、前記1つ以上の追加の条件が満たされるかどうかを決定するための前記手段が、前記第1のビデオブロック又は前記第2のビデオブロックが1つ以上の0ではない変換係数レベルを有する変換単位(TU)と関連付けられると決定するための手段と、前記第1のビデオブロック又は前記第2のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられると決定するための手段と、前記第1のビデオブロック及び前記第2のビデオブロックが各々1つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が1以上であることとを決定するための手段と、前記第1のビデオブロック及び前記第2のビデオブロックが各々1つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が1以上であることとを決定するための手段と、前記第1のビデオブロック及び前記第2のビデオブロックが各々2つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの少なくとも1つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が1以上であることとを決定するための手段と、前記第1のビデオブロック及び前記第2のビデオブロックが各々2つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの少なくとも1つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が1以上であることとを決定するための手段とのうちの1つ以上を備える、[25]に記載のビデオコード化装置。
[35] ビデオ復号装置を備え、ビットストリームを受信するための手段と、前記ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成するための手段と、前記予測されたビデオブロック及び前記残差ビデオブロックに基づいて、前記第1のビデオブロックを生成するための手段とを更に備える、[25]に記載のビデオコード化装置。
[36] ビデオ符号化装置を備え、前記エッジと関連付けられる前記サンプルに前記デブロッキングフィルタを適用した後、前記エッジと関連付けられる前記サンプルに少なくとも一部基づいて、予測されたビデオブロックを生成するための手段と、その値が前記予測されたビデオブロックに少なくとも一部基づく、1つ以上のシンタクス要素を含むビットストリームを出力するための手段とを更に備える、[25]に記載のビデオコード化装置。
[37] コンピュータ実行可能命令を記憶する1つ以上のコンピュータ可読記憶媒体を備えるコンピュータプログラム製品であって、前記コンピュータ実行可能命令が、実行されると、1つ以上のプロセッサに、第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定することに応答して、第1の境界強度値をエッジと関連付けさせ、このとき前記エッジが、前記第1のビデオブロックと前記第2のビデオブロックとの境界において発生し、前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ以上の追加の条件が満たされると決定することに応答して、第2の境界強度値を前記エッジと関連付けさせ、前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、前記1つ以上の追加の条件が満たされないと決定することに応答して、第3の境界強度値を前記エッジと関連付けさせ、前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられるが前記第3の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルへと1つ以上のデブロッキングフィルタを適用させる、コンピュータプログラム製品。
[38] 前記コンピュータ実行可能命令が、実行されると、前記エッジがCUエッジかどうかを決定することなく前記境界強度値を前記エッジと関連付けるように、前記1つ以上のプロセッサを構成する、[37]に記載のコンピュータプログラム製品。

Claims (38)

  1. ビデオデータをコード化する方法であって、
    第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定することに応答して、第1の境界強度値をエッジと関連付けることと、前記エッジが、前記第1のビデオブロックと前記第2のビデオブロックとの境界において発生する、
    前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ以上の追加の条件が満たされると決定することに応答して、第2の境界強度値を前記エッジと関連付けることと、
    前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、前記1つ以上の追加の条件が満たされないと決定することに応答して、第3の境界強度値を前記エッジと関連付けることと、
    前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられるが前記第3の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルに1つ以上のデブロッキングフィルタを適用することとを備える、方法。
  2. 前記第1の境界強度値を前記エッジと関連付けることが、前記エッジがCUエッジかどうかを決定することなく前記第1の境界強度値を前記エッジと関連付けることを備える、請求項1に記載の方法。
  3. 前記第1の境界強度値が2に等しく、前記第2の境界強度値が1に等しく、前記第3の境界強度値が0に等しい、請求項1に記載の方法。
  4. 前記1つ以上のデブロッキングフィルタを適用することが、
    前記エッジが前記第1の境界強度値と関連付けられる場合、前記エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用することと、
    前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられる場合、前記エッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用することとを備える、請求項1に記載の方法。
  5. デブロッキング量子化パラメータ(QP)値に基づいて、かつ、前記第1の境界強度値又は前記第2の境界強度値が前記エッジと関連付けられるかどうかに基づいて、第1の閾値と第2の閾値とを決定することと、
    前記第1の閾値又は前記第2の閾値が0に等しいかどうかを決定することと、
    前記第1の閾値又は前記第2の閾値のいずれかが0に等しい場合、前記エッジと関連付けられる前記ルーマサンプルにデブロッキングフィルタを適用しないこととを更に備え、
    前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用することが、前記エッジが前記第1の境界強度値又は第2の境界強度値と関連付けられる場合、かつ、前記第1の閾値も前記第2の閾値も0に等しくない場合、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用することを備える、請求項4に記載の方法。
  6. 前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用することが、
    単一の乗算演算のみを使用してデルタ値を計算することと、
    前記デルタ値に基づいて、前記エッジと関連付けられる前記ルーマサンプルの修正された値を求めることとを備える、請求項4に記載の方法。
  7. 前記エッジの高さ又は幅が8個のルーマサンプルであり、前記8個のルーマサンプルが第1のエッジセグメント及び第2のエッジセグメントに等しく分割され、
    前記エッジと交差するサンプルの第3のラインに基づいて、前記第1のエッジセグメントと関連付けられるルーマサンプルに第1の強いデブロッキングフィルタを適用するか第1の弱いデブロッキングフィルタを適用するかどうかを決定することと、
    前記エッジと交差するサンプルの第6のラインに基づいて、前記第2のエッジセグメントと関連付けられるルーマサンプルに第2の強いデブロッキングフィルタを適用するか第2の弱いデブロッキングフィルタを適用するかどうかを決定することとを更に備える、請求項4に記載の方法。
  8. 前記エッジがクロマエッジであり、前記クロマエッジがイントラスライスと関連付けられるかどうかを決定することを更に備え、
    前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用することが、前記クロマエッジがIスライスと関連付けられ、前記クロマエッジが前記第1の境界強度値と関連付けられる場合にのみ、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用することを備える、請求項4に記載の方法。
  9. N×Nのグリッドに従って、変換単位(TU)のエッジと予測単位(PU)のエッジとを識別することと、
    クロマビデオブロックがN×Nのサンプルよりも大きいサイズを有するかどうかを決定することとを更に備え、
    クロマサンプルにデブロッキングフィルタを適用することが、
    前記クロマビデオブロックがN×Nのサンプル以下のサイズを有する場合、前記エッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用することと、
    前記クロマビデオブロックがN×Nのサンプルよりも大きいサイズを有する場合、前記クロマビデオブロックの内部にある前記グリッドのエッジに対して、前記デブロッキングフィルタを無効にすることとを備える、請求項4に記載の方法。
  10. 前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられないと決定することに応答して、前記1つ以上の追加の条件が満たされるかどうかを決定することを更に備え、
    前記1つ以上の追加の条件が満たされるかどうかを決定することが、
    前記第1のビデオブロック又は前記第2のビデオブロックが1つ以上の0ではない変換係数レベルを有する変換単位(TU)と関連付けられると決定することと、
    前記第1のビデオブロック又は前記第2のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられると決定することと、
    前記第1のビデオブロック及び前記第2のビデオブロックが各々1つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が1以上であることとを決定することと、
    前記第1のビデオブロック及び前記第2のビデオブロックが各々1つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が1以上であることとを決定することと、
    前記第1のビデオブロック及び前記第2のビデオブロックが各々2つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの少なくとも1つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が1以上であることとを決定することと、
    前記第1のビデオブロック及び前記第2のビデオブロックが各々2つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの少なくとも1つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が1以上であることとを決定することとのうちの、1つ以上を備える、請求項1に記載の方法。
  11. ビデオ復号の方法を備え、
    ビットストリームを受信することと、
    前記ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成することと、
    前記予測されたビデオブロック及び前記残差ビデオブロックに基づいて、前記第1のビデオブロックを生成することとを更に備える、請求項1に記載の方法。
  12. ビデオ符号化の方法を備え、
    前記エッジと関連付けられる前記サンプルに前記デブロッキングフィルタを適用した後、前記エッジと関連付けられる前記サンプルに少なくとも一部基づいて、予測されたビデオブロックを生成することと、
    その値が前記予測されたビデオブロックに少なくとも一部基づく、1つ以上のシンタクス要素を含むビットストリームを出力することとを更に備える、請求項1に記載の方法。
  13. 1つ以上のプロセッサを備えるビデオコード化装置であって、前記1つ以上のプロセッサが、
    第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定することに応答して、第1の境界強度値をエッジと関連付け、このとき前記エッジが、前記第1のビデオブロックと前記第2のビデオブロックとの境界において発生し、
    前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ以上の追加の条件が満たされると決定することに応答して、第2の境界強度値を前記エッジと関連付け、
    前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、前記1つ以上の追加の条件が満たされないと決定することに応答して、第3の境界強度値を前記エッジと関連付け、
    前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられるが前記第3の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルにデブロッキングフィルタを適用するように構成される、ビデオコード化装置。
  14. 前記第1の境界強度値を前記エッジと関連付けることが、前記エッジがCUエッジかどうかを決定することなく前記第1の境界強度値を前記エッジと関連付けることを備える、請求項13に記載のビデオコード化装置。
  15. 前記第1の境界強度値が2に等しく、前記第2の境界強度値が1に等しく、前記第3の境界強度値が0に等しい、請求項13に記載のビデオコード化装置。
  16. 前記1つ以上のプロセッサが、
    前記エッジが前記第1の境界強度値と関連付けられる場合、前記エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用し、
    前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられる場合、前記エッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用するように構成される、請求項13に記載のビデオコード化装置。
  17. 前記1つ以上のプロセッサが更に、
    デブロッキング量子化パラメータ(QP)値に基づいて、かつ、前記第1の境界強度値又は前記第2の境界強度値が前記エッジと関連付けられるかどうかに基づいて、第1の閾値と第2の閾値とを決定し、
    前記第1の閾値又は前記第2の閾値が0に等しいかどうかを決定し、
    前記第1の閾値又は前記第2の閾値のいずれかが0に等しい場合、前記エッジと関連付けられる前記ルーマサンプルにデブロッキングフィルタを適用せず、
    前記エッジが前記第1の境界強度値又は第2の境界強度値と関連付けられる場合、かつ、前記第1の閾値も前記第2の閾値も0に等しくない場合、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するように構成される、請求項16に記載のビデオコード化装置。
  18. 前記1つ以上のプロセッサが、
    単一の乗算演算のみを使用してデルタ値を計算し、
    前記デルタ値に基づいて、前記エッジと関連付けられる前記ルーマサンプルの修正された値を求めるように構成される、請求項16に記載のビデオコード化装置。
  19. 前記エッジの高さ又は幅が8個のルーマサンプルであり、前記8個のルーマサンプルが第1のエッジセグメント及び第2のエッジセグメントに等しく分割され、
    前記1つ以上のプロセスが、
    前記エッジと交差するサンプルの第3のラインに基づいて、前記第1のエッジセグメントと関連付けられるルーマサンプルに強いデブロッキングフィルタを適用するかどうかを決定し、
    前記エッジと交差するサンプルの第6のラインに基づいて、前記第2のエッジセグメントと関連付けられるルーマサンプルに前記強いデブロッキングフィルタを適用するかどうかを決定し、
    前記第1のエッジセグメントと関連付けられる前記ルーマサンプルに前記強いデブロッキングフィルタを適用するかどうかの前記決定に基づいて、前記第1のエッジセグメントと関連付けられる前記ルーマサンプルに、前記強いデブロッキングフィルタ又は弱いデブロッキングフィルタを適用し、
    前記第2のエッジセグメントと関連付けられる前記ルーマサンプルに前記強いデブロッキングフィルタを適用するかどうかの前記決定に基づいて、前記第2のエッジセグメントと関連付けられる前記ルーマサンプルに、前記強いデブロッキングフィルタ又は前記弱いデブロッキングフィルタを適用するように構成される、請求項16に記載のビデオコード化装置。
  20. 前記エッジがクロマエッジであり、前記1つ以上のプロセッサが、
    前記クロマエッジがIスライスと関連付けられるかどうかを決定し、
    前記クロマエッジがIスライスと関連付けられ、前記クロマエッジが前記第1の境界強度値と関連付けられる場合にのみ、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するように構成される、請求項16に記載のビデオコード化装置。
  21. 前記1つ以上のプロセッサが、
    前記エッジが32×32の変換単位(TU)の外部エッジに対応するかどうかを決定し、
    前記エッジが前記32×32のTUの外部エッジに対応し、前記エッジが前記第1の境界強度値と関連付けられる場合にのみ、前記エッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するように構成される、請求項16に記載のビデオコード化装置。
  22. 前記1つ以上のプロセッサが、
    前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられないと決定することに応答して、前記1つ以上の追加の条件が満たされるかどうかを決定するように構成され、
    前記1つ以上の追加の条件が満たされるかどうかを決定するために、前記1つ以上のプロセッサが、
    前記第1のビデオブロック又は前記第2のビデオブロックが1つ以上の0ではない変換係数レベルを有する変換単位(TU)と関連付けられると決定することに応答して、前記1つ以上の追加の条件が満たされると決定し、
    前記第1のビデオブロック又は前記第2のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられると決定することに応答して、前記1つ以上の追加の条件が満たされると決定し、
    前記第1のビデオブロック及び前記第2のビデオブロックが各々1つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が1以上であることとを決定することに応答して、前記1つ以上の追加の条件が満たされると決定し、
    前記第1のビデオブロック及び前記第2のビデオブロックが各々1つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が1以上であることとを決定することに応答して、前記1つ以上の追加の条件が満たされると決定し、
    前記第1のビデオブロック及び前記第2のビデオブロックが各々2つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの少なくとも1つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が1以上であることとを決定することに応答して、前記1つ以上の追加の条件が満たされると決定し、
    前記第1のビデオブロック及び前記第2のビデオブロックが各々2つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの少なくとも1つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が1以上であることとを決定することに応答して、前記1つ以上の追加の条件が満たされると決定するように構成される、請求項13に記載のビデオコード化装置。
  23. 前記1つ以上のプロセッサが、
    ビットストリームを受信し、
    前記ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成し、
    前記予測されたビデオブロック及び前記残差ビデオブロックに基づいて、前記第1のビデオブロックを生成するように構成される、請求項13に記載のビデオコード化装置。
  24. 前記1つ以上のプロセッサが、
    前記エッジと関連付けられる前記サンプルに前記デブロッキングフィルタを適用した後、前記エッジと関連付けられる前記サンプルに少なくとも一部基づいて、予測されたビデオブロックを生成し、
    その値が前記予測されたビデオブロックに少なくとも一部に基づく、1つ以上のシンタクス要素を含むビットストリームを出力するように構成される、請求項13に記載のビデオコード化装置。
  25. 第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定することに応答して、第1の境界強度値をエッジと関連付けるための手段であって、前記エッジが、前記第1のビデオブロックと前記第2のビデオブロックとの境界において発生する、手段と、
    前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ以上の追加の条件が満たされると決定することに応答して、第2の境界強度値を前記エッジと関連付けるための手段と、
    前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、前記1つ以上の追加の条件が満たされないと決定することに応答して、第3の境界強度値を前記エッジと関連付けるための手段と、
    前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられるが前記第3の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルに1つ以上のデブロッキングフィルタを適用するための手段とを備える、ビデオコード化装置。
  26. 前記第1の境界強度値を前記エッジと関連付けることが、前記エッジがCUエッジかどうかを決定することなく前記第1の境界強度値を前記エッジと関連付けることを備える、請求項25に記載のビデオコード化装置。
  27. 前記第1の境界強度値が2に等しく、前記第2の境界強度値が1に等しく、前記第3の境界強度値が0に等しい、請求項25に記載のビデオコード化装置。
  28. 前記1つ以上のデブロッキングフィルタを適用するための前記手段が、
    前記エッジが前記第1の境界強度値と関連付けられる場合、前記エッジと関連付けられるクロマサンプルにデブロッキングフィルタを適用するための手段と、
    前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられる場合、前記エッジと関連付けられるルーマサンプルにデブロッキングフィルタを適用するための手段とを備える、請求項25に記載のビデオコード化装置。
  29. デブロッキング量子化パラメータ(QP)値に基づいて、かつ、前記第1の境界強度値又は前記第2の境界強度値が前記エッジと関連付けられるかどうかに基づいて、第1の閾値と第2の閾値とを決定するための手段と、
    前記第1の閾値又は前記第2の閾値が0に等しいかどうかを決定するための手段と、
    前記第1の閾値又は前記第2の閾値のいずれかが0に等しい場合、前記エッジと関連付けられる前記ルーマサンプルにデブロッキングフィルタを適用しないための手段とを更に備え、
    前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するための前記手段が、前記エッジが前記第1の境界強度値又は第2の境界強度値と関連付けられる場合、かつ、前記第1の閾値も前記第2の閾値も0に等しくない場合、前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するための手段を備える、請求項28に記載のビデオコード化装置。
  30. 前記エッジと関連付けられる前記ルーマサンプルに前記デブロッキングフィルタを適用するための前記手段が、
    単一の乗算演算のみを使用してデルタ値を計算するための手段と、
    前記デルタ値に基づいて、前記エッジと関連付けられる前記ルーマサンプルの修正された値を求めるための手段とを備える、請求項28に記載のビデオコード化装置。
  31. 前記エッジの高さ又は幅が8個のルーマサンプルであり、前記8個のルーマサンプルが第1のエッジセグメント及び第2のエッジセグメントに等しく分割され、
    前記エッジと交差するサンプルの第3のラインに基づいて、前記第1のエッジセグメントと関連付けられるルーマサンプルに第1の強いデブロッキングフィルタを適用するか第1の弱いデブロッキングフィルタを適用するかどうかを決定するための手段と、
    前記エッジと交差するサンプルの第6のラインに基づいて、前記第2のエッジセグメントと関連付けられるルーマサンプルに第2の強いデブロッキングフィルタを適用するか第2の弱いデブロッキングフィルタを適用するかどうかを決定するための手段とを更に備える、請求項28に記載のビデオコード化装置。
  32. 前記エッジがクロマエッジであり、前記クロマエッジがイントラスライスと関連付けられるかどうかを決定するための手段を更に備え、
    前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するための前記手段が、前記クロマエッジがIスライスと関連付けられ、前記クロマエッジが前記第1の境界強度値と関連付けられる場合にのみ、前記クロマエッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するための手段を備える、請求項28に記載のビデオコード化装置。
  33. N×Nのグリッドに従って、変換単位(TU)のエッジと予測単位(PU)のエッジとを識別するための手段と、
    クロマビデオブロックがN×Nのサンプルよりも大きいサイズを有するかどうかを決定するための手段とを更に備え、
    クロマサンプルにデブロッキングフィルタを適用するための前記手段が、
    前記クロマビデオブロックがN×Nのサンプル以下のサイズを有する場合、前記エッジと関連付けられる前記クロマサンプルに前記デブロッキングフィルタを適用するための手段と、
    前記クロマビデオブロックがN×Nのサンプルよりも大きいサイズを有する場合、前記クロマビデオブロックの内部にある前記グリッドのエッジに対して、前記デブロッキングフィルタを無効にするための手段とを備える、請求項28に記載のビデオコード化装置。
  34. 前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられないと決定することに応答して、前記1つ以上の追加の条件が満たされるかどうかを決定するための手段を更に備え、
    前記1つ以上の追加の条件が満たされるかどうかを決定するための前記手段が、
    前記第1のビデオブロック又は前記第2のビデオブロックが1つ以上の0ではない変換係数レベルを有する変換単位(TU)と関連付けられると決定するための手段と、
    前記第1のビデオブロック又は前記第2のビデオブロックが異なる参照ピクチャと関連付けられる、又は、異なる数の動きベクトルと関連付けられると決定するための手段と、
    前記第1のビデオブロック及び前記第2のビデオブロックが各々1つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの水平方向成分の差の絶対値が1以上であることとを決定するための手段と、
    前記第1のビデオブロック及び前記第2のビデオブロックが各々1つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの垂直方向成分の差の絶対値が1以上であることとを決定するための手段と、
    前記第1のビデオブロック及び前記第2のビデオブロックが各々2つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの少なくとも1つのペアに対して、前記ペア中の前記動きベクトルの水平方向成分の差の絶対値が1以上であることとを決定するための手段と、
    前記第1のビデオブロック及び前記第2のビデオブロックが各々2つの動きベクトルと関連付けられることと、前記第1のビデオブロック及び前記第2のビデオブロックと関連付けられる前記動きベクトルの少なくとも1つのペアに対して、前記ペア中の前記動きベクトルの垂直方向成分の差の絶対値が1以上であることとを決定するための手段とのうちの1つ以上を備える、請求項25に記載のビデオコード化装置。
  35. ビデオ復号装置を備え、
    ビットストリームを受信するための手段と、
    前記ビットストリーム中のシンタクス要素に基づいて、予測されたビデオブロックと残差ビデオブロックとを生成するための手段と、
    前記予測されたビデオブロック及び前記残差ビデオブロックに基づいて、前記第1のビデオブロックを生成するための手段とを更に備える、請求項25に記載のビデオコード化装置。
  36. ビデオ符号化装置を備え、
    前記エッジと関連付けられる前記サンプルに前記デブロッキングフィルタを適用した後、前記エッジと関連付けられる前記サンプルに少なくとも一部基づいて、予測されたビデオブロックを生成するための手段と、
    その値が前記予測されたビデオブロックに少なくとも一部基づく、1つ以上のシンタクス要素を含むビットストリームを出力するための手段とを更に備える、請求項25に記載のビデオコード化装置。
  37. コンピュータ実行可能命令を記憶する1つ以上のコンピュータ可読記憶媒体を備えるコンピュータプログラム製品であって、前記コンピュータ実行可能命令が、実行されると、1つ以上のプロセッサに、
    第1のビデオブロック又は第2のビデオブロックがイントラ予測されたコード化単位(CU)と関連付けられると決定することに応答して、第1の境界強度値をエッジと関連付けさせ、このとき前記エッジが、前記第1のビデオブロックと前記第2のビデオブロックとの境界において発生し、
    前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、1つ以上の追加の条件が満たされると決定することに応答して、第2の境界強度値を前記エッジと関連付けさせ、
    前記第1のビデオブロック及び前記第2のビデオブロックがイントラ予測されたCUと関連付けられず、前記1つ以上の追加の条件が満たされないと決定することに応答して、第3の境界強度値を前記エッジと関連付けさせ、
    前記エッジが前記第1の境界強度値又は前記第2の境界強度値と関連付けられるが前記第3の境界強度値とは関連付けられない場合、前記エッジと関連付けられるサンプルへと1つ以上のデブロッキングフィルタを適用させる、コンピュータプログラム製品。
  38. 前記コンピュータ実行可能命令が、実行されると、前記エッジがCUエッジかどうかを決定することなく前記境界強度値を前記エッジと関連付けるように、前記1つ以上のプロセッサを構成する、請求項37に記載のコンピュータプログラム製品。
JP2014538930A 2011-10-25 2012-10-24 ビデオコード化のデブロッキングフィルタリングのための境界強度値の決定 Active JP5932049B2 (ja)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201161551325P 2011-10-25 2011-10-25
US61/551,325 2011-10-25
US201161554887P 2011-11-02 2011-11-02
US61/554,887 2011-11-02
US201161579488P 2011-12-22 2011-12-22
US61/579,488 2011-12-22
US201261589143P 2012-01-20 2012-01-20
US61/589,143 2012-01-20
US13/532,610 US9167269B2 (en) 2011-10-25 2012-06-25 Determining boundary strength values for deblocking filtering for video coding
US13/532,610 2012-06-25
PCT/US2012/061693 WO2013063117A1 (en) 2011-10-25 2012-10-24 Determining boundary strength values for deblocking filtering for video coding

Publications (2)

Publication Number Publication Date
JP2014534733A true JP2014534733A (ja) 2014-12-18
JP5932049B2 JP5932049B2 (ja) 2016-06-08

Family

ID=48135968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014538930A Active JP5932049B2 (ja) 2011-10-25 2012-10-24 ビデオコード化のデブロッキングフィルタリングのための境界強度値の決定

Country Status (16)

Country Link
US (1) US9167269B2 (ja)
EP (2) EP3975557A1 (ja)
JP (1) JP5932049B2 (ja)
KR (1) KR101642205B1 (ja)
CN (1) CN103931185B (ja)
AU (1) AU2012328924C1 (ja)
BR (1) BR112014009431B1 (ja)
CA (1) CA2852533C (ja)
IL (1) IL232003A (ja)
IN (1) IN2014CN03177A (ja)
MY (1) MY166482A (ja)
RU (1) RU2586003C2 (ja)
SG (1) SG11201401379SA (ja)
TW (1) TWI499285B (ja)
WO (1) WO2013063117A1 (ja)
ZA (1) ZA201403807B (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5859568B2 (ja) * 2011-03-10 2016-02-10 メディア テック シンガポール ピーティーイー.リミテッド 非ブロック化フィルタの方法と装置
WO2013037254A1 (en) * 2011-09-13 2013-03-21 Mediatek Inc. Method and apparatus for reduction of deblocking filter
PL4024864T3 (pl) * 2011-11-04 2024-03-18 Lg Electronics, Inc. Sposób i aparat do kodowania/dekodowania informacji wideo
BR122020018119B1 (pt) * 2012-01-17 2023-11-21 Gensquare Llc Método para aplicar um deslocamento de borda
US9363516B2 (en) * 2012-01-19 2016-06-07 Qualcomm Incorporated Deblocking chroma data for video coding
US9414054B2 (en) 2012-07-02 2016-08-09 Microsoft Technology Licensing, Llc Control and use of chroma quantization parameter values
US9591302B2 (en) * 2012-07-02 2017-03-07 Microsoft Technology Licensing, Llc Use of chroma quantization parameter offsets in deblocking
JP6256340B2 (ja) * 2012-09-20 2018-01-10 ソニー株式会社 画像処理装置および方法、並びにプログラム
AU2013200051B2 (en) * 2013-01-04 2016-02-11 Canon Kabushiki Kaisha Method, apparatus and system for de-blocking video data
US9510002B2 (en) * 2013-09-09 2016-11-29 Apple Inc. Chroma quantization in video coding
FR3018417B1 (fr) * 2014-03-04 2017-07-28 Sagemcom Broadband Sas Procede de modification d'un flux video binaire.
AU2014202921B2 (en) * 2014-05-29 2017-02-02 Canon Kabushiki Kaisha Method, apparatus and system for de-blocking a block of video samples
US10142642B2 (en) * 2014-06-04 2018-11-27 Qualcomm Incorporated Block adaptive color-space conversion coding
EP3189660B1 (en) 2014-09-30 2023-07-12 HFI Innovation Inc. Method of adaptive motion vector resolution for video coding
US9832467B2 (en) * 2014-10-07 2017-11-28 Qualcomm Incorporated Deblock filtering for intra block copying
KR102294016B1 (ko) * 2014-12-05 2021-08-25 성균관대학교산학협력단 변환생략을 참조하는 디블록킹 필터링을 이용한 영상의 부호화/복호화 방법 및 이를 이용하는 장치
US10681371B2 (en) * 2015-06-07 2020-06-09 Lg Electronics Inc. Method and device for performing deblocking filtering
US20170078703A1 (en) * 2015-09-10 2017-03-16 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
WO2017045101A1 (en) * 2015-09-14 2017-03-23 Mediatek Singapore Pte. Ltd. Advanced deblocking filter in video coding
WO2017175898A1 (ko) * 2016-04-07 2017-10-12 엘지전자(주) 인트라 예측 필터링을 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
EP3520402A4 (en) 2016-10-03 2019-09-18 Sharp Kabushiki Kaisha SYSTEMS AND METHOD FOR APPLYING DEFLECTION FILTERS IN RECONSTRUCTED VIDEO DATA
KR101985833B1 (ko) * 2017-03-22 2019-06-04 국방과학연구소 인루프 필터에 관한 영상 부호화 및 복호화 장치 및 방법
WO2018171888A1 (en) * 2017-03-23 2018-09-27 Huawei Technologies Co., Ltd. Apparatus and method for de-blocking filtering
US10638126B2 (en) * 2017-05-05 2020-04-28 Qualcomm Incorporated Intra reference filter for video coding
US11153607B2 (en) * 2018-01-29 2021-10-19 Mediatek Inc. Length-adaptive deblocking filtering in video coding
GB2571313B (en) * 2018-02-23 2022-09-21 Canon Kk New sample sets and new down-sampling schemes for linear component sample prediction
KR20230085940A (ko) * 2018-03-28 2023-06-14 후아웨이 테크놀러지 컴퍼니 리미티드 효율적인 디블로킹을 수행하기 위한 이미지 처리 디바이스 및 방법
MX2020009875A (es) * 2018-03-29 2020-10-12 Sony Corp Aparato de procesamiento de imagen y metodo de procesamiento de imagen.
MX2020010312A (es) 2018-03-29 2020-12-09 Arris Entpr Llc Sistema y método para la eliminación de bloques del contenido de hdr.
EP3782371A4 (en) * 2018-03-30 2021-12-22 Sharp Kabushiki Kaisha SYSTEMS AND PROCEDURES FOR THE APPLICATION OF UNBLOCKING FILTERS ON RECONSTRUCTED VIDEO DATA
GB2573798A (en) * 2018-05-17 2019-11-20 Canon Kk A filter
JP2021523641A (ja) 2018-05-17 2021-09-02 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 暗黙的変換ユニット境界のデブロッキング
BR112021002210A2 (pt) * 2018-08-10 2021-05-04 Huawei Technologies Co., Ltd. aparelho e método para realizar desblocagem
KR20230162161A (ko) 2018-10-12 2023-11-28 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서 디블로킹 필터를 위한 장치 및 방법
US10939118B2 (en) * 2018-10-26 2021-03-02 Mediatek Inc. Luma-based chroma intra-prediction method that utilizes down-sampled luma samples derived from weighting and associated luma-based chroma intra-prediction apparatus
WO2020100764A1 (en) 2018-11-14 2020-05-22 Sharp Kabushiki Kaisha Systems and methods for applying deblocking filters to reconstructed video data
JP7418152B2 (ja) * 2018-12-17 2024-01-19 キヤノン株式会社 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法
US11044473B2 (en) * 2018-12-21 2021-06-22 Qualcomm Incorporated Adaptive loop filtering classification in video coding
WO2020141880A1 (ko) * 2019-01-02 2020-07-09 엘지전자 주식회사 영상 코딩 시스템에서 디블록킹 필터링을 사용하는 영상 디코딩 방법 및 장치
WO2020177664A1 (en) * 2019-03-02 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Restrictions on in-loop filtering
US11394993B2 (en) * 2019-03-13 2022-07-19 Tencent America LLC Method and apparatus for affine inter prediction with small subblocks
US11284093B2 (en) * 2019-05-09 2022-03-22 Qualcomm Incorporated Affine linear weighted intra prediction in video coding
CN117176969A (zh) * 2019-05-11 2023-12-05 抖音视界有限公司 用于视频编解码的去方块滤波器
US11330298B2 (en) * 2019-06-25 2022-05-10 Qualcomm Incorporated Simplified intra chroma mode coding in video coding
MX2022001244A (es) * 2019-08-06 2022-02-22 Beijing Bytedance Network Tech Co Ltd Restricción de tamaño basada en formato de color.
JP7305878B2 (ja) * 2019-08-23 2023-07-10 北京字節跳動網絡技術有限公司 コーディングブロック又はサブブロック境界でのデブロッキングフィルタリング
EP3868101B1 (en) * 2019-08-23 2024-04-10 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for performing chroma deblocking for blocks which use joint chroma coding
BR112022003656A2 (pt) 2019-09-02 2022-05-24 Beijing Bytedance Network Tech Co Ltd Método e aparelho de processamento de dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios
WO2021056219A1 (zh) * 2019-09-24 2021-04-01 北京大学 视频编解码的方法和装置
CN116916043A (zh) 2019-09-24 2023-10-20 Oppo广东移动通信有限公司 预测值的确定方法、编码器、解码器以及计算机存储介质
CN114762326B (zh) * 2020-01-21 2024-03-22 阿里巴巴集团控股有限公司 用于自适应分辨率视频编码的下一代环路滤波器实现

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050243915A1 (en) * 2004-04-29 2005-11-03 Do-Kyoung Kwon Adaptive de-blocking filtering apparatus and method for mpeg video decoder
US20060126962A1 (en) * 2001-03-26 2006-06-15 Sharp Laboratories Of America, Inc. Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding
JP2011091824A (ja) * 2001-09-14 2011-05-06 Sharp Corp 画像復号装置及び画像復号方法
US20110222607A1 (en) * 2010-03-15 2011-09-15 Jicheng An Deblocking filtering method and deblocking filter

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7227901B2 (en) * 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
NO322722B1 (no) 2004-10-13 2006-12-04 Tandberg Telecom As Fremgangsmate for videokoding gjennom reduksjon av blokkartefakter
US7961963B2 (en) * 2005-03-18 2011-06-14 Sharp Laboratories Of America, Inc. Methods and systems for extended spatial scalability with picture-level adaptation
KR100678958B1 (ko) * 2005-07-29 2007-02-06 삼성전자주식회사 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더
KR100819289B1 (ko) * 2006-10-20 2008-04-02 삼성전자주식회사 영상 데이터의 디블록킹 필터링 방법 및 디블록킹 필터
KR100922275B1 (ko) * 2006-12-15 2009-10-15 경희대학교 산학협력단 경계 필터링 강도의 결정 방법 및 이를 이용한 디블록킹필터링 방법과 장치
CN100493196C (zh) 2007-07-27 2009-05-27 武汉大学 一种快速计算h.264视频标准中去块滤波边界强度值的方法
KR100973657B1 (ko) * 2007-11-01 2010-08-02 경희대학교 산학협력단 디블록킹 필터링을 포함하는 코덱 사이의 트랜스코딩 방법 및 장치
CN101212665B (zh) 2007-12-25 2012-01-25 海信集团有限公司 一种环路滤波方法
US20090245351A1 (en) * 2008-03-28 2009-10-01 Kabushiki Kaisha Toshiba Moving picture decoding apparatus and moving picture decoding method
US9143803B2 (en) 2009-01-15 2015-09-22 Qualcomm Incorporated Filter prediction based on activity metrics in video coding
TWI413415B (zh) * 2009-06-17 2013-10-21 Novatek Microelectronics Corp 以h264解方塊為基礎的多源過濾器以及多源過濾方法
US8537200B2 (en) 2009-10-23 2013-09-17 Qualcomm Incorporated Depth map generation techniques for conversion of 2D video data to 3D video data
CA2785036A1 (en) 2010-02-05 2011-08-11 Telefonaktiebolaget L M Ericsson (Publ) De-blocking filtering control

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060126962A1 (en) * 2001-03-26 2006-06-15 Sharp Laboratories Of America, Inc. Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding
JP2011091824A (ja) * 2001-09-14 2011-05-06 Sharp Corp 画像復号装置及び画像復号方法
US20050243915A1 (en) * 2004-04-29 2005-11-03 Do-Kyoung Kwon Adaptive de-blocking filtering apparatus and method for mpeg video decoder
US20110222607A1 (en) * 2010-03-15 2011-09-15 Jicheng An Deblocking filtering method and deblocking filter

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN5015000309; List, P., et.al.: '"Adaptive Deblocking Filter"' IEEE Transactions on Circuits and Systems for Video Technology Vol.13, No.7, 200307, p.614-619 *
JPN6015040674; Norkin, A., et.al.: '"Description of CE12: Deblocking filtering"' [online] Document: JCTVC-D612(version 1), 20110128, Joint Collaborative Team on Video Coding (JCT-VC) *

Also Published As

Publication number Publication date
TWI499285B (zh) 2015-09-01
KR20140085545A (ko) 2014-07-07
CN103931185A (zh) 2014-07-16
US9167269B2 (en) 2015-10-20
TW201334544A (zh) 2013-08-16
AU2012328924B2 (en) 2015-11-12
IL232003A (en) 2017-06-29
BR112014009431B1 (pt) 2022-10-11
EP3975557A1 (en) 2022-03-30
BR112014009431A2 (pt) 2017-04-18
AU2012328924C1 (en) 2016-06-09
AU2012328924A1 (en) 2014-05-08
CA2852533C (en) 2017-01-03
US20130101024A1 (en) 2013-04-25
KR101642205B1 (ko) 2016-07-22
IN2014CN03177A (ja) 2015-07-03
CA2852533A1 (en) 2013-05-02
EP2772053A1 (en) 2014-09-03
ZA201403807B (en) 2021-05-26
CN103931185B (zh) 2017-08-29
RU2014121089A (ru) 2015-12-10
IL232003A0 (en) 2014-05-28
JP5932049B2 (ja) 2016-06-08
WO2013063117A1 (en) 2013-05-02
MY166482A (en) 2018-06-27
RU2586003C2 (ru) 2016-06-10
SG11201401379SA (en) 2014-05-29

Similar Documents

Publication Publication Date Title
JP5932049B2 (ja) ビデオコード化のデブロッキングフィルタリングのための境界強度値の決定
US10477232B2 (en) Search region determination for intra block copy in video coding
US9883203B2 (en) Adaptive overlapped block motion compensation
US9161046B2 (en) Determining quantization parameters for deblocking filtering for video coding
JP6141386B2 (ja) 深度範囲パラメータのシグナリング
CN105144718B (zh) 当跳过变换时用于有损译码的帧内预测模式
JP5587508B2 (ja) ビデオコード化のためのイントラ平滑化フィルタ
JP6022586B2 (ja) ビデオコーディングのための隣接するビデオユニットの利用可能性の検出
JP6144333B2 (ja) レートひずみ最適量子化におけるレベル決定
US9420280B2 (en) Adaptive upsampling filters
JP6162150B2 (ja) ビデオコーディング用の残差4分木(rqt)コーディング
JP2019515580A (ja) イントラ予測モードのネイバーベースのシグナリング
US20130272423A1 (en) Transform coefficient coding
KR102182441B1 (ko) 비디오 코딩에서 hevc 확장들을 위한 다중 계층들의 저복잡도 지원
JP6333942B2 (ja) ビデオ情報のスケーラブルコード化のための装置及び方法
US20130336395A1 (en) Unification of signaling lossless coding mode and pulse code modulation (pcm) mode in video coding
JP2015527028A (ja) スケーラブルビデオコード化におけるダウンサンプリング位相情報の信号伝達
CN112514386A (zh) 网格编解码量化系数编解码
CN115004706A (zh) 关于变换和系数信令的方法和装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160427

R150 Certificate of patent or registration of utility model

Ref document number: 5932049

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250