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

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

▶ クアルコム,インコーポレイテッドの特許一覧

特表2023-553882拡張補間フィルタを使用したイントラ予測
<>
  • 特表-拡張補間フィルタを使用したイントラ予測 図1
  • 特表-拡張補間フィルタを使用したイントラ予測 図2A
  • 特表-拡張補間フィルタを使用したイントラ予測 図2B
  • 特表-拡張補間フィルタを使用したイントラ予測 図3
  • 特表-拡張補間フィルタを使用したイントラ予測 図4
  • 特表-拡張補間フィルタを使用したイントラ予測 図5
  • 特表-拡張補間フィルタを使用したイントラ予測 図6
  • 特表-拡張補間フィルタを使用したイントラ予測 図7
  • 特表-拡張補間フィルタを使用したイントラ予測 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-26
(54)【発明の名称】拡張補間フィルタを使用したイントラ予測
(51)【国際特許分類】
   H04N 19/117 20140101AFI20231219BHJP
   H04N 19/157 20140101ALI20231219BHJP
   H04N 19/176 20140101ALI20231219BHJP
   H04N 19/593 20140101ALI20231219BHJP
【FI】
H04N19/117
H04N19/157
H04N19/176
H04N19/593
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023534015
(86)(22)【出願日】2021-12-20
(85)【翻訳文提出日】2023-06-02
(86)【国際出願番号】 US2021073040
(87)【国際公開番号】W WO2022140765
(87)【国際公開日】2022-06-30
(31)【優先権主張番号】63/129,437
(32)【優先日】2020-12-22
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/645,024
(32)【優先日】2021-12-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】バッパディトヤ・レイ
(72)【発明者】
【氏名】ヴァディム・セレジン
(72)【発明者】
【氏名】マルタ・カルチェヴィッチ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LB11
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159PP16
5C159TA31
5C159TA32
5C159TA69
5C159TB08
5C159TC26
5C159TC27
5C159TD02
5C159TD12
5C159UA02
5C159UA05
5C159UA12
(57)【要約】
イントラ予測のために拡張補間フィルタを使用してビデオデータを処理するための技法が本明細書で説明される。たとえば、デバイスは、ビデオデータのブロックを予測するためのイントラ予測モードを決定し得る。デバイスは、ビデオデータのブロックに対して使用するための平滑化フィルタのタイプを決定することであって、平滑化フィルタのタイプが、ビデオデータのブロックの幅およびビデオデータのブロックの高さのうちの少なくとも1つを第1のしきい値と比較することに少なくとも部分的に基づいて決定される、決定することを行い得る。デバイスは、平滑化フィルタの決定されたタイプとイントラ予測モードとを使用して、ビデオデータのブロックに対するイントラ予測をさらに実行し得る。
【特許請求の範囲】
【請求項1】
ビデオデータを処理するための装置であって、
少なくとも1つのメモリと、
前記少なくとも1つのメモリに結合された少なくとも1つのプロセッサとを含み、前記少なくとも1つのプロセッサが、
ビデオデータのブロックを予測するためのイントラ予測モードを決定することと、
ビデオデータの前記ブロックに対して使用するための平滑化フィルタのタイプを決定することであって、前記平滑化フィルタの前記タイプが、ビデオデータの前記ブロックの幅およびビデオデータの前記ブロックの高さのうちの少なくとも1つを第1のしきい値と比較することに少なくとも部分的に基づいて決定される、決定することと、
平滑化フィルタの前記決定されたタイプと前記イントラ予測モードとを使用して、ビデオデータの前記ブロックに対するイントラ予測を実行することと
を行うように構成される、装置。
【請求項2】
前記少なくとも1つのプロセッサが、
前記ブロックの前記幅および前記ブロックの前記高さのうちの少なくとも1つが前記第1のしきい値よりも大きいとの決定に少なくとも部分的に基づいて、平滑化フィルタの前記決定されたタイプとして第1の平滑化補間フィルタを使用し、
前記第1の平滑化補間フィルタを使用して、ビデオデータの前記ブロックのイントラ予測のための参照ピクセルを決定する
ように構成される、請求項1に記載の装置。
【請求項3】
前記第1の平滑化補間フィルタが6タップガウスフィルタを含む、請求項2に記載の装置。
【請求項4】
前記少なくとも1つのプロセッサが、
前記ブロックの前記幅および前記ブロックの前記高さのうちの少なくとも1つが前記第1のしきい値以下であるとの決定に少なくとも部分的に基づいて、平滑化フィルタの前記決定されたタイプとして第2の平滑化補間フィルタを使用し、
前記第2の平滑化補間フィルタを使用して、ビデオデータの前記ブロックのイントラ予測のための参照ピクセルを決定する
ように構成される、請求項1に記載の装置。
【請求項5】
前記第2の平滑化補間フィルタが4タップガウスフィルタを含む、請求項4に記載の装置。
【請求項6】
前記少なくとも1つのプロセッサが、
前記イントラ予測モードの角度方向と垂直イントラ予測モードおよび水平イントラ予測モードのうちの1つとの間の最小オフセットを決定し、
前記決定された最小オフセットを第2のしきい値と比較することに基づいて、ビデオデータの前記ブロックに対して使用するための平滑化フィルタの前記タイプを決定する
ように構成される、請求項1に記載の装置。
【請求項7】
前記少なくとも1つのプロセッサが、
前記決定された最小オフセットが前記第2のしきい値よりも大きいとの決定と前記イントラ予測モードが整数値参照ピクセル位置に関連付けられた整数角度モードであるとの決定とに少なくとも部分的に基づいて、平滑化フィルタの前記タイプとしてローパスフィルタを決定する
ように構成される、請求項6に記載の装置。
【請求項8】
前記ローパスフィルタが補間なしに参照ピクセル平滑化を実行し、前記ローパスフィルタが[1 2 1]フィルタを含む、請求項7に記載の装置。
【請求項9】
前記少なくとも1つのプロセッサが、
前記決定された最小オフセットが前記第2のしきい値よりも大きいとの決定と前記イントラ予測モードが分数値参照ピクセル位置に関連付けられた分数角度モードであるとの決定とに少なくとも部分的に基づいて、平滑化フィルタの前記タイプとしてガウスフィルタを決定する
ように構成される、請求項6に記載の装置。
【請求項10】
前記ガウスフィルタが、参照ピクセル平滑化なしに平滑化補間を実行する、請求項9に記載の装置。
【請求項11】
前記ガウスフィルタが、前記ブロックの前記幅および前記ブロックの前記高さのうちの少なくとも1つが前記第1のしきい値よりも大きいとの決定に基づいて、6タップガウスフィルタを含む、請求項9に記載の装置。
【請求項12】
前記ガウスフィルタが、前記ブロックの前記幅および前記ブロックの前記高さのうちの少なくとも1つが前記第1のしきい値以下であるとの決定に少なくとも部分的に基づいて、4タップガウスフィルタを含む、請求項9に記載の装置。
【請求項13】
前記少なくとも1つのプロセッサが、前記決定された最小オフセットが前記第2のしきい値以下であるとの決定に少なくとも部分的に基づいて、
平滑化フィルタの前記決定されたタイプとして補間フィルタを使用することであって、前記補間フィルタが4タップ3次フィルタを含む、使用することと、
参照ピクセル平滑化を適用せずに、前記補間フィルタを使用してビデオデータの前記ブロックに対するイントラ予測を実行することと
を行うように構成される、請求項6に記載の装置。
【請求項14】
前記少なくとも1つのプロセッサが、
前記イントラ予測モードが整数角度モードであるとの決定と前記決定された最小オフセットが前記第2のしきい値よりも大きいとの決定とに少なくとも部分的に基づいて、平滑化フィルタの前記タイプとしてローパスフィルタを決定する
ように構成される、請求項6に記載の装置。
【請求項15】
前記少なくとも1つのプロセッサが、
前記ブロックの前記幅および前記ブロックの前記高さのうちの少なくとも1つが前記第1のしきい値よりも大きいとの決定に少なくとも部分的に基づいて、大きいタップのローパスフィルタを使用して参照ピクセル平滑化を実行することであって、前記大きいタップのローパスフィルタが、小さいタップのローパスフィルタよりも高い程度の参照ピクセル平滑化を適用する、実行すること
を行うように構成される、請求項14に記載の装置。
【請求項16】
前記少なくとも1つのプロセッサが、
前記ブロックの前記幅および前記ブロックの前記高さのうちの少なくとも1つが前記第1のしきい値以下であるとの決定に少なくとも部分的に基づいて、小さいタップのローパスフィルタを使用して参照ピクセル平滑化を実行することであって、前記小さいタップのローパスフィルタが、大きいタップのローパスフィルタよりも低い程度の参照ピクセル平滑化を適用する、実行すること
を行うように構成される、請求項14に記載の装置。
【請求項17】
前記少なくとも1つのプロセッサが、
前記イントラ予測モードの傾斜を前記ブロックの前記幅および前記ブロックの前記高さから決定された1つまたは複数のピクセル位置と比較することに少なくとも部分的に基づいて、前記イントラ予測モードが整数角度モードであると決定する
ように構成される、請求項1に記載の装置。
【請求項18】
前記少なくとも1つのプロセッサが、
前記イントラ予測モードの角度方向と垂直イントラ予測モードまたは水平イントラ予測モードとの間のオフセットが第2のしきい値未満であると決定し、
前記イントラ予測モードの前記角度方向と前記垂直イントラ予測モードまたは前記水平イントラ予測モードとの間の前記オフセットが前記第2のしきい値未満であるとの決定に基づいて、3次補間フィルタを使用してビデオデータの前記ブロックに対するイントラ予測を実行する
ように構成される、請求項1に記載の装置。
【請求項19】
前記少なくとも1つのプロセッサが、弱い補間フィルタを使用して参照ライン拡張を実行するように構成され、
前記弱い補間フィルタが、イントラ予測を実行するための前記3次補間フィルタの使用に先立って前記参照ライン拡張を実行するために使用され、
前記3次補間フィルタが、前記弱い補間フィルタよりも高いカットオフ周波数を有し、前記弱い補間フィルタよりも高い程度の平滑化を適用する、
請求項18に記載の装置。
【請求項20】
前記弱い補間フィルタが、4タップシンクベース補間フィルタおよび6ビット4タップ補間フィルタを含む、請求項19に記載の装置。
【請求項21】
平滑化フィルタの前記タイプがビデオビットストリーム中でシグナリングされる、請求項1に記載の装置。
【請求項22】
平滑化フィルタの前記タイプが、予測ブロック、コーディングブロック、コーディングツリーユニット(CTU)、スライス、またはシーケンスのセットのうちの個々のセットに対してシグナリングされる、請求項1に記載の装置。
【請求項23】
前記少なくとも1つのプロセッサが、
ビデオビットストリーム中で明示的にシグナリングされる情報を使用せずに、前記ブロックの前記幅および前記高さのうちの少なくとも1つに基づいて、平滑化フィルタの前記タイプを決定する
ように構成される、請求項1に記載の装置。
【請求項24】
前記少なくとも1つのプロセッサが、
ビデオデータの前記ブロックに関する残差データのブロックを決定し、
残差データの前記ブロックとビデオデータの前記ブロックに対する前記イントラ予測を実行することに基づいて決定された予測ブロックとを使用して、ビデオデータの前記ブロックを復号する
ように構成される、請求項1に記載の装置。
【請求項25】
前記少なくとも1つのプロセッサが、
ビデオデータの前記ブロックに関連する情報を含む符号化ビデオビットストリームを生成する
ように構成される、請求項1に記載の装置。
【請求項26】
前記符号化ビデオビットストリームを前記少なくとも1つのメモリに記憶させる
をさらに含む、請求項25に記載の装置。
【請求項27】
前記符号化ビデオビットストリームを送信するように構成された送信機
をさらに含む、請求項25に記載の装置。
【請求項28】
ビデオデータを処理する方法であって、
ビデオデータのブロックを予測するためのイントラ予測モードを決定するステップと、
ビデオデータの前記ブロックに対して使用するための平滑化フィルタのタイプを決定するステップであって、前記平滑化フィルタの前記タイプが、ビデオデータの前記ブロックの幅およびビデオデータの前記ブロックの高さのうちの少なくとも1つを第1のしきい値と比較することに少なくとも部分的に基づいて決定される、決定するステップと、
平滑化フィルタの前記決定されたタイプと前記イントラ予測モードとを使用して、ビデオデータの前記ブロックに対するイントラ予測を実行するステップと
を含む、方法。
【請求項29】
前記ブロックの前記幅および前記ブロックの前記高さのうちの少なくとも1つが前記第1のしきい値よりも大きいとの決定に少なくとも部分的に基づいて、平滑化フィルタの前記決定されたタイプとして第1の平滑化補間フィルタを使用するステップと、
前記第1の平滑化補間フィルタを使用して、ビデオデータの前記ブロックのイントラ予測のための参照ピクセルを決定するステップと
をさらに含む、請求項28に記載の方法。
【請求項30】
前記第1の平滑化補間フィルタが6タップガウスフィルタを含む、請求項29に記載の方法。
【請求項31】
前記ブロックの前記幅および前記ブロックの前記高さのうちの少なくとも1つが前記第1のしきい値以下であるとの決定に少なくとも部分的に基づいて、平滑化フィルタの前記決定されたタイプとして第2の平滑化補間フィルタを使用するステップと、
前記第2の平滑化補間フィルタを使用して、ビデオデータの前記ブロックのイントラ予測のための参照ピクセルを決定するステップと
をさらに含む、請求項28に記載の方法。
【請求項32】
前記第2の平滑化補間フィルタが4タップガウスフィルタを含む、請求項31に記載の方法。
【請求項33】
前記イントラ予測モードの角度方向と垂直イントラ予測モードおよび水平イントラ予測モードのうちの1つとの間の最小オフセットを決定するステップと、
前記決定された最小オフセットを第2のしきい値と比較することに基づいて、ビデオデータの前記ブロックに対して使用するための平滑化フィルタの前記タイプを決定するステップと
をさらに含む、請求項28に記載の方法。
【請求項34】
前記決定された最小オフセットが前記第2のしきい値よりも大きいとの決定と前記イントラ予測モードが整数値参照ピクセル位置に関連付けられた整数角度モードであるとの決定とに少なくとも部分的に基づいて、平滑化フィルタの前記タイプとしてローパスフィルタを決定するステップ
をさらに含む、請求項33に記載の方法。
【請求項35】
前記ローパスフィルタが補間なしに参照ピクセル平滑化を実行し、前記ローパスフィルタが[1 2 1]フィルタを含む、請求項34に記載の方法。
【請求項36】
前記決定された最小オフセットが前記第2のしきい値よりも大きいとの決定と前記イントラ予測モードが分数値参照ピクセル位置に関連付けられた分数角度モードであるとの決定とに少なくとも部分的に基づいて、平滑化フィルタの前記タイプとしてガウスフィルタを決定するステップ
をさらに含む、請求項33に記載の方法。
【請求項37】
前記ガウスフィルタが参照ピクセル平滑化なしに平滑化補間を実行する、請求項36に記載の方法。
【請求項38】
前記ガウスフィルタが、前記ブロックの前記幅および前記ブロックの前記高さのうちの少なくとも1つが前記第1のしきい値よりも大きいとの決定に基づいて、6タップガウスフィルタを含む、請求項36に記載の方法。
【請求項39】
前記ガウスフィルタが、前記ブロックの前記幅および前記ブロックの前記高さのうちの少なくとも1つが前記第1のしきい値以下であるとの決定に基づいて、4タップガウスフィルタを含む、請求項36に記載の方法。
【請求項40】
前記決定された最小オフセットが前記第2のしきい値以下であるとの決定に少なくとも部分的に基づいて、
平滑化フィルタの前記決定されたタイプとして補間フィルタを使用するステップであって、前記補間フィルタが4タップ3次フィルタを含む、使用するステップと、
参照ピクセル平滑化を適用せずに、前記補間フィルタを使用してビデオデータの前記ブロックに対するイントラ予測を実行するステップと
を含む、請求項33に記載の方法。
【請求項41】
前記イントラ予測モードが整数角度モードであるとの決定と前記イントラ予測モードと水平モードまたは垂直モードとの間の前記決定された最小オフセットが前記第2のしきい値よりも大きいとの決定とに少なくとも部分的に基づいて、平滑化フィルタの前記タイプとしてローパスフィルタを決定するステップをさらに含む、請求項33に記載の方法。
【請求項42】
前記ブロックの前記幅および前記ブロックの前記高さのうちの少なくとも1つが前記第1のしきい値よりも大きいとの決定に少なくとも部分的に基づいて、大きいタップのローパスフィルタを使用して参照ピクセル平滑化を適用するステップであって、前記大きいタップのローパスフィルタが、小さいタップのローパスフィルタよりも高い程度の参照ピクセル平滑化を適用する、適用するステップ
をさらに含む、請求項41に記載の方法。
【請求項43】
前記ブロックの前記幅および前記ブロックの前記高さのうちの少なくとも1つが前記第1のしきい値以下であるとの決定に少なくとも部分的に基づいて、小さいタップのローパスフィルタを使用して参照ピクセル平滑化を適用するステップであって、前記小さいタップのローパスフィルタが、大きいタップのローパスフィルタよりも低い程度の参照ピクセル平滑化を適用する、適用するステップ
をさらに含む、請求項41に記載の方法。
【請求項44】
前記イントラ予測モードの傾斜を前記ブロックの前記幅および前記ブロックの前記高さから決定された1つまたは複数のピクセル位置と比較することに少なくとも部分的に基づいて、前記イントラ予測モードが整数角度モードであると決定するステップをさらに含む、請求項28に記載の方法。
【請求項45】
前記イントラ予測モードの角度方向と垂直イントラ予測モードまたは水平イントラ予測モードとの間のオフセットが第2のしきい値未満であると決定するステップと、
前記決定されたオフセットが前記第2のしきい値未満であるとの決定に基づいて、3次補間フィルタを使用してビデオデータの前記ブロックに対するイントラ予測を実行するステップと
をさらに含む、請求項28に記載の方法。
【請求項46】
弱い補間フィルタを使用して参照ライン拡張を実行するステップをさらに含み、
前記弱い補間フィルタが、イントラ予測を実行するための前記3次補間フィルタの使用に先立って前記参照ライン拡張を実行するために使用され、
前記3次補間フィルタが、前記弱い補間フィルタよりも高いカットオフ周波数を有し、前記弱い補間フィルタよりも高い程度の平滑化を適用する
請求項45に記載の方法。
【請求項47】
平滑化フィルタの前記タイプがビデオビットストリーム中でシグナリングされる、請求項28に記載の方法。
【請求項48】
ビデオビットストリーム中で明示的にシグナリングされる情報を使用せずに、前記ブロックの前記幅および前記高さのうちの少なくとも1つに基づいて平滑化フィルタの前記タイプを決定するステップをさらに含む、請求項28に記載の方法。
【請求項49】
ビデオデータの前記ブロックに関する残差データのブロックを決定するステップと、
残差データの前記ブロックとビデオデータの前記ブロックに対する前記イントラ予測を実行することに基づいて決定された予測ブロックとを使用して、ビデオデータの前記ブロックを復号するステップと
をさらに含む、請求項28に記載の方法。
【請求項50】
ビデオデータの前記ブロックに関連する情報を含む符号化ビデオビットストリームを生成するステップ
をさらに含む、請求項28に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は(たとえば、ビデオデータの符号化および/または復号を含む)ビデオコーディングに関する。たとえば、本出願の態様は、拡張補間フィルタを使用してイントラ予測を実行するためのシステムおよび技法に関する。
【背景技術】
【0002】
多くのデバイスおよびシステムは、ビデオデータが消費のために処理および出力されることを可能にする。デジタルビデオデータは、消費者およびビデオプロバイダの需要を満たすための大量のデータを含む。たとえば、ビデオデータの消費者は、高い忠実度、解像度、フレームレートなどを有する最高品質のビデオを所望する。その結果、これらの需要を満たすことが必要とされる大量のビデオデータは、通信ネットワーク、およびビデオデータを処理して記憶するデバイスに負担をかける。
【0003】
ビデオデータを圧縮するために、様々なビデオコーディング技法が使用され得る。ビデオコーディングは、1つまたは複数のビデオコーディング規格に従って実行される。たとえば、ビデオコーディング規格は、中でも、多用途ビデオコーディング(VVC)、高効率ビデオコーディング(HEVC)、アドバンストビデオコーディング(AVC)、MPEG-2パート2コーディング(MPEGは、ムービングピクチャエキスパートグループを表す)、ならびにAlliance for Open Mediaによって開発されたAOMediaビデオ1(AV1)などのプロプリエタリビデオコーデック/フォーマットを含む。ビデオコーディングは、一般に、ビデオ画像またはシーケンスの中に存在する冗長性を利用する予測方法(たとえば、インター予測、イントラ予測など)を利用する。ビデオコーディング技法の目的は、ビデオ品質の劣化を回避するかまたは最小限に抑えながら、より低いビットレートを使用する形態にビデオデータを圧縮することである。絶えず進化するビデオサービスが利用可能になるにつれて、より良いコーディング効率を有する符号化技法が必要とされる。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】B.Bross、J.Chen、S.Liu、「Versatile Video Coding(Draft 10)」、第19回JVET Meeting、Teleconference、2020年7月、JVET-S2001
【非特許文献2】J.Chen、Y.Ye、S.Kim、「Algorithm description for Versatile Video Coding and Test Model 10(VTM10)」、第19回JVET Meeting、Teleconference、2020年7月、JVET-S2002
【非特許文献3】X.Zhao、V.Seregin、M.Karczewicz、「Six tap intra interpolation filter」、第4回JVET Meeting、成都、中国、2016年10月、JVET-D0119
【発明の概要】
【課題を解決するための手段】
【0005】
いくつかの例では、中でも、ブロックサイズ、イントラ予測モードなどの情報に基づいて様々なタイプおよび程度の平滑化を適用し得る拡張補間フィルタ(enhanced interpolation filters)を使用してイントラ予測を実行するためのシステムおよび技法について説明する。少なくとも1つの例示的な例によれば、ビデオデータを処理するための方法が提供される。この方法は、ビデオデータのブロックを予測するためのイントラ予測モードを決定するステップと、ビデオデータのブロックに対して使用するための平滑化フィルタのタイプを決定するステップであって、平滑化フィルタのタイプが、ビデオデータのブロックの幅およびビデオデータのブロックの高さのうちの少なくとも1つを第1のしきい値を比較することに少なくとも部分的に基づいて決定される、決定するステップと、平滑化フィルタの決定されたタイプとイントラ予測モードとを使用して、ビデオデータのブロックに対するイントラ予測を実行するステップとを含む。
【0006】
別の例では、少なくとも1つのメモリ(たとえば、仮想コンテンツデータ、1つまたは複数の画像などのデータを記憶するように構成される)と、少なくとも1つのメモリに結合された少なくとも1つのプロセッサ(たとえば、回路内で実装される)とを含む、ビデオデータを処理するための装置が提供される。1つまたは複数のプロセッサは、ビデオデータのブロックを予測するためのイントラ予測モードを決定することと、ビデオデータのブロックに対して使用するための平滑化フィルタのタイプを決定することであって、平滑化フィルタのタイプが、ビデオデータのブロックの幅およびビデオデータのブロックの高さのうちの少なくとも1つを第1のしきい値と比較することに少なくとも部分的に基づいて決定される、決定することと、平滑化フィルタの決定されたタイプとイントラ予測モードとを使用して、ビデオデータのブロックに対するイントラ予測を実行することとを行うように構成され、またこれらを行うことができる。
【0007】
別の例では、その上に命令を記憶している非一時的コンピュータ可読媒体であって、命令が、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、ビデオデータのブロックに対するイントラ予測モードを決定することと、ビデオデータのブロックに対して使用するための平滑化フィルタのタイプを決定することであって、平滑化フィルタのタイプが、ビデオデータのブロックの幅およびビデオデータのブロックの高さのうちの少なくとも1つを第1のしきい値と比較することに少なくとも部分的に基づいて決定される、決定することと、平滑化フィルタの決定されたタイプとイントラ予測モードとを使用して、ビデオデータのブロックに対するイントラ予測を実行することとを行わせる、非一時的コンピュータ可読媒体が提供される。
【0008】
別の例では、ビデオデータを処理するための装置が提供される。この装置は、ビデオデータのブロックを予測するためのイントラ予測モードを決定するための手段と、ビデオデータのブロックに対して使用するための平滑化フィルタのタイプを決定するための手段であって、平滑化フィルタのタイプが、ビデオデータのブロックの幅およびビデオデータのブロックの高さのうちの少なくとも1つを第1のしきい値と比較することに少なくとも部分的に基づいて決定される、決定するための手段と、平滑化フィルタの決定されたタイプとイントラ予測モードとを使用して、ビデオデータのブロックに対するイントラ予測を実行するための手段とを含む。
【0009】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値よりも大きいとの決定に少なくとも部分的に基づいて、平滑化フィルタの決定されたタイプとして第1の平滑化補間フィルタを使用することと、第1の平滑化補間フィルタを使用して、ビデオデータのブロックのイントラ予測のための参照ピクセルを決定することとをさらに含み得る。
【0010】
いくつかの態様では、第1の平滑化補間フィルタは6タップガウスフィルタを含む。
【0011】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値以下であるとの決定に少なくとも部分的に基づいて、平滑化フィルタの決定されたタイプとして第2の平滑化補間フィルタを使用することと、第2の平滑化補間フィルタを使用して、ビデオデータのブロックのイントラ予測のための参照ピクセルを決定することとをさらに含み得る。
【0012】
いくつかの態様では、第2の平滑化補間フィルタは4タップガウスフィルタを含む。
【0013】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、イントラ予測モードの角度方向と垂直イントラ予測モードおよび水平イントラ予測モードのうちの1つとの間の最小オフセットを決定することと、決定された最小オフセットを第2のしきい値と比較することに基づいて、ビデオデータのブロックに対して使用するための平滑化フィルタのタイプを決定することとをさらに含み得る。
【0014】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、決定された最小オフセットが第2のしきい値よりも大きいとの決定とイントラ予測モードが整数値参照ピクセル位置(integer-valued reference pixel position)に関連付けられた整数角度モード(angled mode)であるとの決定とに少なくとも部分的に基づいて、平滑化フィルタのタイプとしてローパスフィルタを決定することをさらに含み得る。
【0015】
いくつかの態様では、ローパスフィルタは補間なしに参照ピクセル平滑化を実行し、ローパスフィルタは[1 2 1]フィルタを含む。
【0016】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、決定された最小オフセットが第2のしきい値よりも大きいとの決定とイントラ予測モードが分数値の参照ピクセル位置に関連付けられた分数角度モードであるとの決定とに少なくとも部分的に基づいて、平滑化フィルタのタイプとしてガウスフィルタを決定することをさらに含み得る。
【0017】
いくつかの態様では、ガウスフィルタは、参照ピクセル平滑化なしに平滑化補間を実行する。
【0018】
いくつかの態様では、ガウスフィルタは、ブロックの幅およびグロックの高さのうちの少なくとも1つが第1のしきい値よりも大きいとの決定に基づいて、6タップガウスフィルタを含む。
【0019】
いくつかの態様では、ガウスフィルタは、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値以下であるとの決定に基づいて4タップガウスフィルタを含む。
【0020】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、決定された最小オフセットが第2のしきい値以下であるとの決定に少なくとも部分的に基づいて、平滑化フィルタの決定されたタイプとして補間フィルタを使用することであって、補間フィルタが4タップ3次フィルタである、使用することと、参照ピクセル平滑化を適用せずに、補間フィルタを使用してビデオデータのブロックに対するイントラ予測を実行することとをさらに含み得る。
【0021】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、イントラ予測モードが整数角度モードであるとの決定と決定された最小オフセットが第2のしきい値よりも大きいとの決定とに少なくとも部分的に基づいて、平滑化フィルタのタイプとしてローパスフィルタを決定することをさらに含み得る。
【0022】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値よりも大きいとの決定に少なくとも部分的に基づいて、大きいタップのローパスフィルタを使用して参照ピクセル平滑化を実行することであって、大きいタップのローパスフィルタが、小さいタップのローパスフィルタよりも高い程度の参照ピクセル平滑化を適用する、実行することをさらに含み得る。
【0023】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値以下であるとの決定に少なくとも部分的に基づいて、小さいタップのローパスフィルタを使用して参照ピクセル平滑化を実行することをさらに含んでよく、小さいタップのローパスフィルタは、大きいタップのローパスフィルタよりも低い程度の参照ピクセル平滑化を適用する。
【0024】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、イントラ予測モードの傾斜をブロックの幅およびブロックの高さから決定された1つまたは複数のピクセル位置と比較することに少なくとも部分的に基づいて、イントラ予測モードがイントラ角度モードであると決定することをさらに含み得る。
【0025】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、イントラ予測モードの角度方向と垂直イントラ予測モードまたは水平イントラ予測モードとの間のオフセットが第2のしきい値未満であると決定することと、イントラ予測モードの角度方向と垂直イントラ予測モードまたは水平イントラ予測モードとの間のオフセットが第2のしきい値未満であると決定することに基づいて、3次補間フィルタを使用してビデオデータのブロックに対するイントラ予測を実行することとをさらに含み得る。
【0026】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、弱い補間フィルタを使用して参照ライン拡張(reference line extension)を実行することをさらに含んでよく、弱い補間フィルタが、イントラ予測を実行するための3次補間フィルタの使用に先立って参照ライン拡張を実行するために使用され、3次補間フィルタが、弱い補間フィルタよりも高いカットオフ周波数を有し、弱い補間フィルタよりも高い程度の平滑化を適用する。
【0027】
いくつかの態様では、弱い補間フィルタは、4タップシンクベース(sinc-based)補間フィルタおよび6ビット4タップ補間フィルタを含む。
【0028】
いくつかの態様では、平滑化フィルタのタイプはビデオビットストリーム中でシグナリングされる。
【0029】
いくつかの態様では、平滑化フィルタのタイプは、予測ブロック、コーディングブロック、コーディングツリーユニット(CTU)、スライス、またはシーケンスのセットのうちの個々のセットに対してシグナリングされる。
【0030】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、ビデオビットストリーム中で明示的にシグナリングされる情報を使用せずに、ブロックの幅および高さのうちの少なくとも1つに基づいて、平滑化フィルタのタイプを決定することをさらに含み得る。
【0031】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、ビデオデータのブロックに関する残差データのブロックを決定することと、残差データのブロックとビデオデータのブロックに対するイントラ予測を実行することに基づいて決定された予測ブロックとを使用して、ビデオデータのブロックを復号することとをさらに含み得る。
【0032】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、ビデオデータのブロックに関連する情報を含む符号化ビデオビットストリームを生成することをさらに含み得る。
【0033】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、符号化ビデオビットストリームを(たとえば、装置の少なくとも1つのメモリに)記憶することをさらに含み得る。
【0034】
いくつかの態様では、プロセス、装置、およびコンピュータ可読媒体は、(たとえば、装置の送信機を使用して)符号化ビデオビットストリームを送信することをさらに含み得る。
【0035】
いくつかの態様では、上記で説明した装置の各々は、モバイルデバイス(たとえば、モバイル電話もしくはいわゆる「スマートフォン」、タブレットコンピュータ、または他のタイプのモバイルデバイス)、ネットワーク接続されたウェアラブルデバイス、エクステンデッドリアリティデバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、または複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、サーバコンピュータ(たとえば、ビデオサーバまたは他のサーバデバイス)、テレビジョン、車両(または車両のコンピューティングデバイスもしくはシステム)、カメラ(たとえば、デジタルカメラ、インターネットプロトコル(IP)カメラなど)、マルチカメラシステム、ロボティックスデバイスまたはシステム、航空デバイスまたはシステム、あるいは他のデバイスであってよいか、またはその部分であってよい。いくつかの態様では、装置の各々は、1つまたは複数の画像またはビデオフレームをキャプチャするための少なくとも1つのカメラを含み得る。たとえば、装置の各々は、ビデオフレームを含む1つまたは複数の画像および/または1つまたは複数のビデオをキャプチャするための1つのカメラ(たとえば、RGBカメラ)または複数のカメラを含み得る。いくつかの態様では、装置の各々は、1つまたは複数の画像、ビデオ、通知、または他の表示可能なデータを表示するためのディスプレイを含み得る。いくつかの態様では、装置の各々は、1つまたは複数のビデオフレームおよび/またはシンタックスデータを、送信媒体を介して少なくとも1つのデバイスに送信するように構成された送信機を含み得る。いくつかの態様では、装置の各々は、1つまたは複数のセンサーを含み得る。
【0036】
本概要は、特許請求される主題の主要なまたは必須の特徴を特定することが意図されておらず、特許請求される主題の範囲を決定するために単独で使用されることも意図されていない。本主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照することによって理解されるべきである。
【0037】
上記のことは、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照するとより明らかになるだろう。
【0038】
本出願の例示的な実施形態について、以下の図を参照しながら以下で詳細に説明する。
【図面の簡単な説明】
【0039】
図1】いくつかの例による符号化デバイスおよび復号デバイスの一例を示すブロック図である。
図2A】いくつかの例による角度予測モードの一例を示す図である。
図2B】いくつかの例による、多用途ビデオコーディング(VVC)における方向性イントラ予測モードの一例を示す図である。
図3】いくつかの例によるモード依存イントラ平滑化(MDIS:mode dependent intra smoothing)プロセスの一例を示す図である。
図4】いくつかの例による参照ライン拡張の一例を示す図である。
図5】いくつかの例による、ブロックサイズおよびイントラ予測モードのうちの1つまたは複数に基づく切り替え可能なガウスフィルタリングの一例を示す図である。
図6】いくつかの例による、拡張平滑化フィルタを用いてイントラ予測を実行するためのプロセスの一例を示すフローチャートである。
図7】いくつかの例による例示的なビデオ符号化デバイスを示すブロック図である。
図8】いくつかの例による例示的なビデオ復号デバイスを示すブロック図である。
【発明を実施するための形態】
【0040】
本開示のいくつかの態様および実施形態が、以下で提供される。当業者に明らかになるように、これらの態様および実施形態のうちのいくつかは独立して適用されてもよく、それらのうちのいくつかは組み合わせて適用されてもよい。以下の説明では、説明のために、本出願の実施形態の完全な理解をもたらすように具体的な詳細が説明される。しかしながら、様々な実施形態がこれらの具体的な詳細なしに実践されてもよいことは明らかであろう。図および説明は限定的であることを意図しない。
【0041】
以下の説明は、例示的な実施形態のみを提供し、本開示の範囲、適用可能性、または構成を限定することが意図されていない。むしろ、例示的な実施形態の以下の説明は、例示的な実施形態を実装することを可能にする説明を当業者に提供する。添付の特許請求の範囲に記載されているような本出願の趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が加えられてもよいことを理解されたい。
【0042】
デジタルビデオデータは、特に高品質のビデオデータに対する需要が高まり続けているため、大量のデータを含み得る。たとえば、ビデオデータの消費者は、高い忠実度、解像度、フレームレートなどを有する、ますます高い品質のビデオを所望する。しかしながら、そのような要求を満たすために必要とされる大量のビデオデータは、通信ネットワーク、ならびにビデオデータを処理および記憶するデバイスに大きな負担をかけることがある。
【0043】
ビデオコーディングデバイスは、ビデオデータを効率的に符号化および復号するためにビデオ圧縮技法を実装する。ビデオ圧縮技法は、空間予測(たとえば、イントラフレーム予測もしくはイントラ予測)、時間予測(たとえば、インターフレーム予測もしくはインター予測)、インターレイヤ予測(ビデオデータの異なるレイヤにわたる)、および/またはビデオシーケンスに固有の冗長性を低減もしくは除去するための他の予測技法を含む、異なる予測モードを適用することを含み得る。ビデオエンコーダは、(以下でより詳細に説明する)ビデオブロックまたはコーディングユニットと呼ばれる矩形領域に、元のビデオシーケンスの各ピクチャを区分し得る。これらのビデオブロックは、特定の予測モードを使用して符号化され得る。
【0044】
ビデオブロックは、1つまたは複数のやり方で、より小さいブロックの1つまたは複数のグループに分割され得る。ブロックは、コーディングツリーブロック、予測ブロック、変換ブロック、および/または他の適切なブロックを含み得る。一般に「ブロック」への言及は、別段に規定されていない限り、そのようなビデオブロック(たとえば、コーディングツリーブロック、コーディングブロック、予測ブロック、変換ブロック、または当業者によって理解されるであろうように、他の適切なブロックもしくはサブブロック)を指すことがある。さらに、これらのブロックの各々は、本明細書では互換的に「ユニット」(たとえば、コーディングツリーユニット(CTU)、コーディングユニット、予測ユニット(PU)、変換ユニット(TU)など)と呼ばれることもある。場合によっては、ユニットは、ビットストリーム中で符号化されるコーディング論理ユニットを示すことがあり、ブロックは、プロセスがターゲットにするビデオフレームバッファの一部分を示すことがある。
【0045】
インター予測モードの場合、ビデオエンコーダは、参照フレームまたは参照ピクチャと呼ばれる、別の時間ロケーションに位置するフレーム(またはピクチャ)の中で符号化されているブロックと同様のブロックを探索することができる。ビデオエンコーダは、この探索を、符号化されるべきブロックからのある一定の空間変位に制限し得る。水平変位成分および垂直変位成分を含む2次元(2D)動きベクトルを使用して、最良一致の位置が特定され得る。イントラ予測モードの場合、ビデオエンコーダは、同じピクチャ内の以前に符号化された近隣ブロックからのデータに基づいて、空間予測技法を使用して、予測されたブロックを形成し得る。
【0046】
ビデオエンコーダは、予測誤差を決定し得る。たとえば、予測は、符号化されているブロックおよび予測されたブロックの中のピクセル値の間の差分として決定され得る。予測誤差は、残差と呼ばれることもある。ビデオエンコーダは、予測誤差に変換(たとえば、離散コサイン変換(DCT)または他の適切な変換)を適用して、変換係数を生成することもできる。変換の後、ビデオエンコーダは変換係数を量子化し得る。量子化変換係数および動きベクトルは、シンタックス要素を使用して表され、制御情報とともに、ビデオシーケンスのコードされた表現を形成し得る。いくつかの事例では、ビデオエンコーダは、量子化変換係数および/またはシンタックス要素をエントロピー符号化し、それによって、それらの表現に必要なビット数をさらに低減し得る。
【0047】
受信ビットストリームをエントロピー復号し量子化解除(de-quantizing)した後、ビデオデコーダは、上記で論じたシンタックス要素および制御情報を使用して、現在フレームを復号するための予測データ(たとえば、予測ブロック)を構築し得る。たとえば、ビデオデコーダは、予測されたブロックと圧縮された予測誤差とを加算し得る。ビデオデコーダは、量子化係数を使用して変換基底関数を重み付けすることによって、圧縮された予測誤差を決定し得る。再構築されたフレームと元のフレームとの間の差分は、再構築誤差と呼ばれる。
【0048】
ビデオコーディングは、特定のビデオコーディング規格に従って実行され得る。ビデオコーディング規格の例は、限定はしないが、中でも、ITU-T H.261、ISO/IEC MPEG-1ビジュアル、ITU-T H.262またはISO/IEC MPEG-2ビジュアル、ITU-T H.263、ISO/IEC MPEG-4ビジュアル、そのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張を含む、アドバンスドビデオコーディング(AVC)またはITU-T H.264、その範囲およびスクリーンコンテンツコーディング、3Dビデオコーディング(3D-HEVC)、マルチビュー(MV-HEVC)、およびスケーラブル(SHVC)拡張を含む高効率ビデオコーディング(HEVC)またはITU-T H.265、多用途ビデオコーディング(VVC)またはITU-T H.266およびその拡張、VP9、アライアンスオブオープンメディア(AOMedia)ビデオ1(AV1)、エッセンシャルビデオコーディング(EVC)を含む。
【0049】
上述のように、ビデオエンコーダは、元のビデオシーケンスの各ピクチャを1つまたは複数のより小さいブロックまたは矩形領域に区分することができ、1つまたは複数のより小さいブロックまたは矩形領域は、次いで、元のビデオシーケンスに固有の空間冗長性を除去するために、たとえば、イントラ予測(またはイントラフレーム予測)を使用して符号化され得る。ブロックがイントラ予測モードで符号化される場合、予測ブロックは、前に符号化され再構築されたブロックに基づいて形成され、これらのブロックは、予測参照(prediction reference)を形成するために、ビデオエンコーダとビデオデコーダの両方において利用可能である。たとえば、(たとえば、現在符号化されているまたは現在復号されている)現在ブロックの内部のピクセル値の空間予測は、隣接する、前に符号化されたブロックのピクセル値を使用して決定され得る。これらのピクセル値は、参照ピクセルとして使用される。参照ピクセルは、1つまたは複数の参照ピクセルラインおよび/または参照ピクセルグループに編成され得る。いくつかの例では、イントラ予測は、ブロックのルーマ成分とクロマ成分の両方に適用され得る。
【0050】
(たとえば、参照ピクセルからの)同じピクチャ内の前に符号化された近隣ブロックからのデータに基づいて予測される参照または予測されるブロックを形成するための異なる空間予測技法を提供するために、いくつかの異なるイントラ予測モードが利用され得る。イントラ予測モードは、平面モードとDCモードおよび/または方向性イントラ予測モード(「通常イントラ予測モード」とも呼ばれる)とを含み得る。いくつかの例では、複数の方向性イントラ予測モードとともに、単一の平面イントラ予測と単一のDCイントラ予測モードとが使用され得る。イントラ予測モードは、参照ピクセル値に基づいてコーディングされているエリアの中のピクセル値を計算するための異なる変形態または手法を記述する。例示的な例では、HEVC規格は33個の方向性イントラ予測モードを提供する。別の例示的な例では、VVCおよび/またはVVCテストモデル5(VTM5)は、HEVC方向性イントラ予測モードを拡張して、合計で93個の方向性イントラ予測モードを提供する。
【0051】
ビデオデコーダにおいて、各符号化ブロックに対するイントラ予測モードの選定(たとえば、符号化ブロックを生成するときにビデオエンコーダによって行われるイントラ予測モードの選定)は、デコーダによって決定され(たとえば、導出され)得るかまたはビデオデコーダにシグナリングされ得る。たとえば、場合によっては、近隣ブロック同士の間のイントラ予測モードは相関され得る(たとえば、2つの隣接する、前に符号化されたブロックがイントラ予測モード2を使用して予測された場合、現在ブロックに対する最良のイントラ予測モードもやはりイントラ予測モード2である可能性がある)。いくつかの例では、各現在ブロックに対して、ビデオエンコーダおよびビデオデコーダは、最確イントラ予測モードを計算し得る。ビデオエンコーダは、(たとえば、フラグ、モードパラメータ、モードセレクタなどを使用して)イントラ予測モードをビデオデコーダにシグナリングすることもできる。
【0052】
現在のVVC規格では、前に述べたように、93個の方向性イントラ予測モードが提供される。各イントラ予測モードは、イントラ予測モードが一意かつ非重複であるように、異なる角度方向に関連付けられる。方向性イントラ予測モードは、整数角度モードまたは分数(非整数角度)モードのいずれかとして分類され得る。ビデオデータの所与のブロックに対して、整数角度イントラ予測モードは整数位置において参照ピクセルを有し、たとえば、整数角度イントラ予測モードは、現在コーディングされているブロックの周囲に位置する参照ピクセルの位置を通過する傾斜を有する。比較して、分数イントラ予測モードは、整数位置に参照ピクセルを有さず、代わりに、2つの隣接する参照ピクセル間のどこかの点を通過する傾斜を有する(たとえば、分数位置i+f(i:整数部分、f:分数部分)におけるピクセルの傾斜はピクセルiおよびピクセルi+1を通過する)。
【0053】
VVC規格によれば、1つまたは複数の平滑化フィルタおよび/または動作がイントラ予測モードに基づいて参照ピクセルに適用され得る。参照ピクセルを平滑化またはフィルタリングすることによって、イントラ予測結果が平滑化された参照ピクセルから計算されるにつれて、より正確なイントラ予測結果が取得され得る。いくつかの例では、参照ピクセル平滑化は、分数イントラ予測モードと整数(たとえば、整数傾斜)イントラ予測モードの両方に対して実行され得る。参照ピクセル平滑化のための平滑化フィルタに加えて、VVC規格は、1つまたは複数の補間フィルタの利用も指定する。いくつかの例では、平滑化は、参照ピクセルを直接的に平滑化することによって実行され得る。いくつかの例では、平滑化動作は、(たとえば、平滑化補間フィルタを適用することによって)補間動作と組み合わされてよいか、またはそれとともに実行されてよい。
【0054】
たとえば、補間フィルタは、分数イントラ予測モードのための補間を実行するために使用され得る。分数イントラ予測モードは、非整数値傾斜であり、したがって(たとえば、隣接する参照ピクセル同士の間の位置における)分数参照ピクセル位置に関連付けられる。分数イントラ予測モードに対するイントラ予測は、したがって、分数参照ピクセル位置に対する補間値を計算するために、隣接参照ピクセルの値間で補間し得る。いくつかのシナリオでは、方向性イントラ予測モードの大部分は、分数(たとえば、非整数)モードであり得る。たとえば、VVC規格では、イントラ予測モード-14、-12、-10、-6、2、18、34、50、66、72、76、78、および80は、整数イントラ予測モード(「整数傾斜モード」とも呼ばれる)であり得、93個の方向性イントラ予測モードの残りのモードは、分数イントラ予測モードである。
【0055】
VVC規格は、すべてのブロックサイズに対して固定された程度の平滑化の使用を指定する。たとえば、VVC規格によれば、コーディングデバイス(たとえば、ビデオ符号化デバイスおよび/またはビデオ復号デバイス)は、すべてのブロックサイズに対して4タップガウス補間フィルタおよび/または[1 2 1]ローパスフィルタを使用し得る。場合によっては、すべてのブロックサイズに対する固定された程度の平滑化(たとえば、すべてのブロックサイズに対する4タップガウス補間フィルタおよび/または[1 2 1]ローパスフィルタ)の使用は、イントラ予測性能の低減をもたらし得る。たとえば、より大きいブロックサイズ(たとえば、16個以上のサンプルの幅および/または高さを有するブロック)は、より小さいブロックサイズ(たとえば、16個未満のサンプルの幅および/または高さを有するブロック)よりも高い程度の平滑化から利益を得ることがある。VVCにおけるブロック区分方式は、異なる入力、パラメータ、および他の分析要因に基づく異なるブロックサイズを許可するため、VVC規格に従ってイントラ予測を実行するとき、大きいブロックサイズおよび小さいブロックサイズに遭遇し得る。場合によっては、より大きいブロックサイズは、比較的平滑なエッジおよび/または比較的低数の特徴をすでに含む、元のビデオシーケンス画像の部分に関連付けられ得る。小さいブロックサイズは、比較的多数の特徴、方向などを含む、元のビデオシーケンス画像の部分に関連付けられ得る。
【0056】
より大きいブロックサイズの作成はブロック内の比較的平滑なビデオデータの存在に関連付けられることが多いため、より大きいブロックサイズのイントラ予測は、いくつかの例では、より高い程度の平滑化を適用することから利益を得ることがあり、より小さいブロックサイズのイントラ予測はより低い程度の平滑化を適用することから利益を得ることがある。
【0057】
本明細書でより詳細に説明するように、改善されたイントラ予測を提供するためのシステム、装置、方法、およびコンピュータ可読媒体(「システムおよび技法」と総称される)について本明細書で説明する。たとえば、本明細書でより詳細に説明するように、システムおよび技法は、各々が異なる程度の平滑化および/またはフィルタリングを用いる、複数の平滑化および/または補間フィルタを使用してイントラ予測を実行し得る。いくつかの態様によれば、システムおよび技法は、現在コーディングされているブロックのサイズに基づいて、1つまたは複数の平滑化フィルタおよび補間フィルタ(ならびに、関連付けられたタイプの平滑化および/または関連付けられた程度の平滑化)を選択することを含み得る。たとえば、ブロックの幅およびブロックの高さのうちの1つまたは複数が所定のしきい値と比較されてよく、より小さいブロック(たとえば、しきい値未満の幅および/または高さを有するブロック)がより大きいブロック(たとえば、しきい値よりも大きい幅および/または高さを有するブロック)とは異なる程度または平滑化を受ける。
【0058】
いくつかの例では、平滑化および/または補間フィルタは、追加または代替として、ピクチャまたはピクチャの一部分(たとえば、ブロック、スライスなど)のために使用されているイントラ予測モードに基づいて選択され得る。特定のイントラ予測モードと平滑化フィルタまたは補間フィルタとの間の関係は、事前に決定されてよく、かつ/または(たとえば、ピクチャ、ブロック、スライスなどが符号化または復号されるにつれて)リアルタイムで決定されてよい。例示的な例では、現在コーディングされているブロックのイントラ予測モードは、現在ブロックイントラ予測モードと垂直および水平イントラ予測モードのうちの1つとの間の最小距離(たとえば、角度距離またはオフセット)を決定するために、垂直イントラ予測モードおよび水平イントラ予測モードと比較され得る。最小距離は、平滑化および/またはフィルタリングが現在コーディングされているブロックに適用されるべきかどうかを決定するために、(いくつかの例では、VVC規格で定義される)所定のしきい値と比較され得る。いくつかの例では、本明細書で説明するような、ブロックレベル切替えを用いた参照ピクセルの可変平滑化は、以下より深く説明するように、拡張イントラ予測を提供し得る。
【0059】
システムおよび技法に関するさらなる詳細を、図面に関して説明する。
【0060】
図1は、符号化デバイス104および復号デバイス112を含むシステム100の一例を示すブロック図である。符号化デバイス104はソースデバイスの一部であってよく、復号デバイス112は受信デバイスの一部であってよい。ソースデバイスおよび/または受信デバイスは、モバイルもしくは固定の電話ハンドセット(たとえば、スマートフォン、セルラー電話など)、デスクトップコンピュータ、ラップトップもしくはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、インターネットプロトコル(IP)カメラ、または任意の他の好適な電子デバイスなどの、電子デバイスを含み得る。いくつかの例では、ソースデバイスおよび受信デバイスは、ワイヤレス通信用の1つまたは複数のワイヤレストランシーバを含み得る。本明細書で説明するコーディング技法は、(たとえば、インターネットを介した)ストリーミングビデオ送信、テレビジョン放送もしくは送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例を含む、様々なマルチメディア用途におけるビデオコーディングに適用可能である。本明細書で使用するコーディングという用語は、符号化および/または復号を指すことがある。いくつかの例では、システム100は、ビデオ会議、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、ゲーム、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートすることができる。
【0061】
符号化デバイス104(またはエンコーダ)は、符号化ビデオビットストリームを生成するためのビデオコーディング規格、フォーマット、コーデック、またはプロトコルを使用して、ビデオデータを符号化するために使用され得る。ビデオコーディング規格およびフォーマット/コーデックの例は、ITU-T H.261、ISO/IEC MPEG-1ビジュアル、ITU-T H.262またはISO/IEC MPEG-2ビジュアル、ITU-T H.263、ISO/IEC MPEG-4ビジュアル、そのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張を含む、ITU-T H.264(ISO/IEC MPEG-4 AVCとも呼ばれる)、高効率ビデオコーディング(HEVC)またはITU-T H.265、および多用途ビデオコーディング(VVC)またはITU-T H.266を含む。範囲およびスクリーンコンテンツコーディング拡張、3Dビデオコーディング(3D-HEVC)、ならびにマルチビュー拡張(MV-HEVC)およびスケーラブル拡張(SHVC)を含めて、マルチレイヤビデオコーディングとのHEVC取引に対する様々な拡張が存在する。HEVCおよびその拡張は、ジョイントコラボレーションチームオンビデオコーディング(JCT-VC)、ならびにITU-Tビデオコーディングエキスパートグループ(VCEG)のジョイントコラボレーションチームオン3Dビデオコーディングエクステンションデベロップメント(JCT-3V)およびISO/IECモーションピクチャエキスパートグループ(MPEG)によって開発されている。VP9、アライアンスフォーオープンメディアアライアンスオブオープンメディア(AOMedia)によって開発されたAOMediaビデオ1(AV1)、およびエッセンシャルビデオコーディング(EVC)は、本明細書で説明する技法が適用され得る他のビデオコーディング規格である。
【0062】
最新のビデオコーディング規格であるVVCは、広い範囲のアプリケーションのためにHEVCを超える実質的な圧縮能力を少なくとも部分的に達成するために、ITU-TおよびISO/IECのジョイントビデオエキスパートグループ(JEVT)によって開発された。VVC仕様は、2020年7月に確定され、ITU-TとISO/IECの両方によって公開された。VVC仕様は、規範的ビットストリームおよびピクチャフォーマット、高レベルシンタックス(HLS)およびコーディングユニットレベルシンタックス、解析プロセス、復号プロセスなどを指定する。VVCはまた、プロファイル/ティア/レベル(PTL)規制、バイトストリームフォーマット、仮想参照デコーダ、および補足エンハンスメント情報(SEI)を添付書類内に指定する。
【0063】
本明細書で説明するシステムおよび技法は、既存のビデオコーデック(たとえば、VVC、HEVC、AVC、または他の適切な既存のビデオコーデック)のいずれかに適用されてよく、かつ/または開発されているいずれのビデオコーディング規格および/または今後のビデオコーディング規格にとっても効率的なコーディングツールであり得る。たとえば、本明細書で説明する例は、VVC、HEVC、AVC、および/またはそれらの拡張などのビデオコーデックを使用して実行され得る。しかしながら、本明細書で説明する技法およびシステムはまた、MPEG、JPEG(または静止画像のための他のコーディング規格)、VP9、AV1、それらの拡張、またはすでに利用可能であるかまたはまだ利用可能もしくは開発済みでない他の好適なコーディング規格などの、他のコーディング規格、コーデック、またはフォーマットにも適用可能であり得る。たとえば、いくつかの例では、符号化デバイス104および/または復号デバイス112は、AV1、AVIの拡張、および/もしくはAV1の後継バージョン(たとえば、AV2)、または他のプロプリエタリフォーマットもしくは業界規格など、プロプリエタリビデオコーデック/フォーマットに従って動作し得る。したがって、本明細書で説明する技法およびシステムは特定のビデオコーディング規格に関して説明されることがあるが、説明はその特定の規格のみに適用されるものと解釈されるべきではないことを当業者は諒解されよう。
【0064】
図1を参照すると、ビデオソース102は、ビデオデータを符号化デバイス104に提供し得る。ビデオソース102は、ソースデバイスの一部であってもよく、またはソースデバイス以外のデバイスの一部であってもよい。ビデオソース102は、ビデオキャプチャデバイス(たとえば、ビデオカメラ、カメラフォン、ビデオフォンなど)、記憶されたビデオを含むビデオアーカイブ、ビデオデータを提供するビデオサーバもしくはコンテンツプロバイダ、ビデオサーバもしくはコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、コンピュータグラフィックスビデオデータを生成するためのコンピュータグラフィックスシステム、そのようなソースの組合せ、または任意の他の好適なビデオソースを含み得る。
【0065】
ビデオソース102からのビデオデータは、1つまたは複数の入力ピクチャまたは入力フレームを含み得る。ピクチャまたはフレームは、場合によってはビデオの一部である静止画像である。いくつかの例では、ビデオソース102からのデータは、ビデオの一部ではない静止画像であり得る。HEVC、VVC、および他のビデオコーディング仕様では、ビデオシーケンスは一連のピクチャを含み得る。ピクチャは、SL、SCb、およびSCrと示される3つのサンプルアレイを含み得る。SLは、ルーマサンプルの2次元アレイであり、SCbは、Cbクロミナンスサンプルの2次元アレイであり、SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。ピクセルは、ピクチャのアレイ内の所与のロケーションに対するすべての3つの成分(ルーマサンプルおよびクロマサンプル)を指す。他の場合には、ピクチャは、モノクロームであってよく、ルーマサンプルのアレイのみを含んでよく、その場合、ピクセルおよびサンプルという用語は、互換的に使用され得る。例示のために個々のサンプルを参照する、本明細書で説明する例示的な技法に関して、同じ技法がピクセル(たとえば、ピクチャのアレイ内の所与のロケーションに対するすべての3つのサンプル成分)に適用され得る。例示のためにピクセル(たとえば、ピクチャのアレイ内の所与のロケーションに対するすべての3つのサンプル成分)を参照する、本明細書で説明する例示的な技法に関して、同じ技法が個々のサンプルに適用され得る。
【0066】
符号化デバイス104のエンコーダエンジン106(またはエンコーダ)は、ビデオデータを符号化して、符号化ビデオビットストリームを生成する。いくつかの例では、符号化ビデオビットストリーム(または「ビデオビットストリーム」もしくは「ビットストリーム」)は、一連の1つまたは複数のコーディングされたビデオシーケンスである。コーディングされたビデオシーケンス(CVS)は、ベースレイヤの中でいくつかの特性を伴うランダムアクセスポイントピクチャを有するアクセスユニット(AU)から始めて、ベースレイヤの中でいくつかの特性を伴うランダムアクセスポイントピクチャを有する次のAUの直前までの、一連のAUを含む。たとえば、CVSを開始するランダムアクセスポイントピクチャのいくつかの特性は、1に等しいRASLフラグ(たとえば、NoRaslOutputFlag)を含み得る。そうでない場合、ランダムアクセスポイントピクチャ(0に等しいRASLフラグを有する)はCVSを開始しない。アクセスユニット(AU)は、1つまたは複数のコーディングされたピクチャと、同じ出力時間を共有するコーディングされたピクチャに対応する制御情報とを含む。ピクチャのコーディングされたスライスは、ビットストリームレベルで、ネットワークアブストラクションレイヤ(NAL)ユニットと呼ばれるデータユニットの中にカプセル化される。たとえば、HEVCビデオビットストリームは、NALユニットを含む1つまたは複数のCVSを含み得る。NALユニットの各々は、NALユニットヘッダを有する。一例では、ヘッダは、H.264/AVCに対して1バイト(マルチレイヤ拡張を除いて)、HEVCに対して2バイトである。NALユニットヘッダの中のシンタックス要素は、指定されたビットを取り、したがって、すべての種類のシステム、および特にトランスポートストリーム、リアルタイムトランスポート(RTP)プロトコル、ファイルフォーマットなどの、トランスポートレイヤにとって認識可能である。
【0067】
ビデオコーディングレイヤ(VCL:video coding layer)NALユニットおよび非VCL NALユニットを含む、NALユニットの2つのクラスがHEVC規格に存在する。VCL NALユニットは、コーディングされたピクチャデータの1つのスライスまたはスライスセグメント(以下で説明する)を含み、非VCL NALユニットは、1つまたは複数のコーディングされたピクチャに関係する制御情報を含む。場合によっては、NALユニットはパケットと呼ばれることがある。HEVC AUは、コーディングされたピクチャデータを含むVCL NALユニットと、(もしあれば)コーディングされたピクチャデータに対応する非VCL NALユニットとを含む。
【0068】
NALユニットは、ビデオの中のピクチャのコーディングされた表現などの、ビデオデータのコーディングされた表現(たとえば、符号化ビデオビットストリーム、ビットストリームのCVSなど)を形成するビットのシーケンスを含み得る。エンコーダエンジン106は、各ピクチャを複数のスライスに区分することによって、ピクチャのコーディングされた表現を生成する。スライスの中の情報が、同じピクチャ内の他のスライスからのデータに依存することなくコーディングされるように、スライスは他のスライスとは無関係である。スライスは、独立したスライスセグメント、および存在する場合、前のスライスセグメントに依存する1つまたは複数の従属したスライスセグメントを含む、1つまたは複数のスライスセグメントを含む。スライスは、ルーマサンプルおよびクロマサンプルのコーディングツリーブロック(CTB)に区分される。ルーマサンプルのCTBおよびクロマサンプルの1つまたは複数のCTBは、サンプル用のシンタックスとともに、コーディングツリーユニット(CTU)と呼ばれる。CTUは、「ツリーブロック」または「最大コーディング単位」(LCU)と呼ばれることもある。CTUは、HEVC符号化のための基本処理単位である。CTUは、様々なサイズの複数のコーディングユニット(CU)にスプリットされ得る。CUは、コーディングブロック(CB)と呼ばれるルーマサンプルアレイおよびクロマサンプルアレイを含む。
【0069】
ルーマCBおよびクロマCBは、予測ブロック(PB)にさらにスプリットされ得る。PBは、(利用可能であるかまたは使用するために有効化されているとき)インター予測またはイントラブロックコピー予測のために同じ動きパラメータを使用するルーマ成分またはクロマ成分のサンプルのブロックである。ルーマPBおよび1つまたは複数のクロマPBは、関連するたシンタックスとともに、予測ユニット(PU)を形成する。インター予測の場合、動きパラメータのセット(たとえば、1つまたは複数の動きベクトル、参照インデックスなど)は、PUごとにビットストリームにおいてシグナリングされ、ルーマPBおよび1つまたは複数のクロマPBのインター予測のために使用される。動きパラメータは、動き情報と呼ばれることもある。CBはまた、1つまたは複数の変換ブロック(TB)に区分され得る。TBは、予測残差信号をコーディングするために残差変換(たとえば、場合によっては、同じ2次元変換)が適用される、色成分のサンプルの正方形ブロックを表す。変換ユニット(TU)は、ルーマサンプルおよびクロマサンプルのTB、ならびに対応するシンタックス要素を表す。
【0070】
CUのサイズは、コーディングモードのサイズに対応し、形状が正方形であり得る。たとえば、CUのサイズは、8×8サンプル、16×16サンプル、32×32サンプル、64×64サンプル、または対応するCTUのサイズまでの任意の他の適切なサイズであり得る。「N×N」という句は、垂直寸法および水平寸法(たとえば、8ピクセル×8ピクセル)に換算してビデオブロックのピクセル寸法を指すために本明細書で使用される。ブロックの中のピクセルは、行および列に配置され得る。いくつかの例では、ブロックは、水平方向において垂直方向と同じ数のピクセルを有していないことがある。CUに関連付けられたシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述し得る。区分モードは、CUがイントラ予測モード符号化されるかまたはインター予測モード符号化されるかの間で異なり得る。PUは、形状が非正方形であるように区分され得る。CUに関連付けられたシンタックスデータはまた、たとえば、CTUに従う1つまたは複数のTUへのCUの区分を記述し得る。TUは、形状が正方形または非正方形であり得る。
【0071】
HEVC規格によれば、変換は、変換ユニット(TU)を使用して実行され得る。TUは、異なるCUに対して異なってよい。TUは、所与のCU内のPUのサイズに基づいてサイズ決定され得る。TUは、同じサイズであってもよく、またはPUよりも小さくてもよい。いくつかの例では、CUに対応する残差サンプルは、残差4分木(RQT)として知られる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは、TUに対応し得る。TUに関連付けられたピクセル差分値は、変換係数を生成するために変換され得る。変換係数は、エンコーダエンジン106によって量子化され得る。
【0072】
ビデオデータのピクチャがCUに区分されると、エンコーダエンジン106は、予測モードを使用して各PUを予測する。予測ユニットまたは予測ブロックは、残差(以下で説明される)を得るために元のビデオデータから減算される。CUごとに、予測モードは、シンタックスデータを使用してビットストリーム内部でシグナリングされ得る。予測モードは、イントラ予測(もしくはイントラピクチャ予測)またはインター予測(もしくはインターピクチャ予測)を含み得る。イントラ予測は、ピクチャ内の空間的に近隣のサンプル間の相関を利用する。たとえば、イントラ予測を使用すると、各PUは、たとえば、PUの平均値を見つけるためのDC予測、平坦面をPUに適合させるための平面予測、近隣データから外挿するための方向予測、または任意の他の好適なタイプの予測を使用して、同じピクチャの中の近隣画像データから予測される。インター予測は、画像サンプルのブロックに対する動き補償予測を導出するために、ピクチャ間の時間相関を使用する。たとえば、インター予測を使用すると、各PUは、(出力順序で現在のピクチャの前または後の)1つまたは複数の参照ピクチャの中の画像データからの動き補償予測を使用して予測される。ピクチャエリアをインターピクチャ予測を使用してコーディングするかまたはイントラピクチャ予測を使用してコーディングするかの決定は、たとえば、CUレベルにおいて行われ得る。
【0073】
エンコーダエンジン106およびデコーダエンジン116(以下でより詳細に説明する)は、VVCに従って動作するように構成され得る。いくつかのVVCによれば、(エンコーダエンジン106および/またはデコーダエンジン116などの)ビデオコーダは、ピクチャを複数のコーディングツリーユニット(CTU)に区分する(ルーマサンプルのCTBおよびクロマサンプルの1つまたは複数のCTBは、サンプル用のシンタックスとともに、CTUと呼ばれる)。ビデオコーダは、4分木2分木(QTBT)構造またはマルチタイプツリー(MTT)構造などのツリー構造に従ってCTUを区分することができる。QTBT構造は、HEVCのCU、PU、およびTUの間の区別などの、複数の区分タイプの概念を排除する。QTBT構造は、4分木区分に従って区分された第1のレベルおよび2分木区分に従って区分された第2のレベルを含む2つのレベルを含む。QTBT構造のルートノードはCTUに対応する。2分木のリーフノードはコーディングユニット(CU)に対応する。
【0074】
MTT区分構造では、ブロックは、4分木区分、2分木区分、および1つまたは複数のタイプのトリプルツリー区分を使用して区分され得る。トリプルツリー区分は、ブロックが3つのサブブロックにスプリットされる区分である。いくつかの例では、トリプルツリー区分は、中心を通って元のブロックを分割することなしに、ブロックを3つのサブブロックに分割する。MTTにおける区分タイプ(たとえば、4分木、2分木、およびトリプルツリー)は、対称または非対称であり得る。
【0075】
AV1コーデックに従って動作するとき、符号化デバイス104および復号デバイス112は、ブロックの中のビデオデータをコーディングするように構成され得る。AV1では、処理され得る最大コーディングブロックは、スーパーブロックと呼ばれる。AV1では、スーパーブロックは、128×128ルーマサンプルまたは64×64ルーマサンプルのいずれかであり得る。しかしながら、後継ビデオコーディングフォーマット(たとえば、AV2)では、スーパーブロックは、異なる(たとえば、より大きい)ルーマサンプルサイズによって定義され得る。いくつかの例では、スーパーブロックは、ブロック4分木のトップレベルである。符号化デバイス104は、スーパーブロックをより小さいコーディングブロックにさらに区分し得る。符号化デバイス104は、矩形区分または非矩形区分を使用して、スーパーブロックおよび他のコーディングブロックをより小さいブロックに区分し得る。非矩形ブロックは、N/2×N、N×N/2、N/4×N、およびN×N/4ブロックを含み得る。符号化デバイス104および復号デバイス112は、別個の予測を実行し、コーディングブロックの各々に対してプロセスを変換し得る。
【0076】
AV1はまた、ビデオデータのタイルを定義する。タイルは、他のタイルとは無関係にコーディングされ得るスーパーブロックの矩形アレイである。すなわち、符号化デバイス104および復号デバイス112は、他のタイルからのビデオデータを使用せずに、タイル内のコーディングブロックをそれぞれ符号化および復号し得る。しかしながら、符号化デバイス104および復号デバイス112は、タイル境界を超えてフィルタリングを実行し得る。タイルは、サイズの点で均一であっても不均一であってもよい。タイルベースのコーディングは、エンコーダおよびデコーダ実装形態のために、並列処理および/またはマルチスレッディングを可能にし得る。
【0077】
いくつかの例では、符号化デバイス104および復号デバイス112は、ルミナンス成分およびクロミナンス成分の各々を表すために単一のQTBT構造またはMTT構造を使用することができるが、他の例では、ビデオコーダは、ルミナンス成分のための1つのQTBT構造またはMTT構造および両方のクロミナンス成分のための別のQTBT構造またはMTT構造(またはそれぞれのクロミナンス成分のための2つのQTBT構造および/もしくはMTT構造)などの、2つ以上のQTBT構造またはMTT構造を使用することができる。
【0078】
符号化デバイス104および復号デバイス112は、HEVCごとの4分木区分、QTBT区分、MTT区分、または他の区分構造を使用するように構成されてもよい。
【0079】
いくつかの例では、ピクチャの1つまたは複数のスライスには、スライスタイプが割り当てられる。スライスタイプは、Iスライス、Pスライス、およびBスライスを含む。Iスライス(独立に復号可能なイントラフレーム)は、イントラ予測のみによってコーディングされているピクチャのスライスであり、したがって、Iスライスがスライスの任意の予測ユニットまたは予測ブロックを予測するためにフレーム内のデータしか必要としないので、独立に復号可能である。Pスライス(単方向予測フレーム)は、イントラ予測を用いて、かつ単方向インター予測を用いてコーディングされ得るピクチャのスライスである。Pスライス内の各予測ユニットまたは予測ブロックは、イントラ予測またはインター予測のいずれかを用いてコーディングされる。インター予測が適用されるとき、予測ユニットまたは予測ブロックは、1つの参照ピクチャのみによって予測され、したがって、参照サンプルは、1つのフレームの1つの参照領域のみからのものである。Bスライス(双方向予測フレーム)は、イントラ予測を用いて、かつインター予測(たとえば、双予測または単予測のいずれか)を用いてコーディングされ得るピクチャのスライスである。Bスライスの予測ユニットまたは予測ブロックは、2つの参照ピクチャから双方向に予測され得、ここで、各ピクチャは、1つの参照領域に寄与し、2つの参照領域のサンプルセットが重み付けられて(たとえば、等しい重みを用いて、または異なる重みを用いて)、双方向予測ブロックの予測信号を生成する。上述のように、1つのピクチャのスライスは、独立にコーディングされる。場合によっては、ピクチャは、ただ1つのスライスとしてコーディングされ得る。
【0080】
上述のように、イントラピクチャ予測は、ピクチャ内の空間的に近隣のサンプル間の相関を利用する。複数のイントラ予測モード(「イントラモード」とも呼ばれる)がある。いくつかの例では、ルーマブロックのイントラ予測は、平面モード、DCモード、および33個の角度モード(たとえば、対角イントラ予測モードおよび対角イントラ予測モードに隣接する角度モード)を含む、35個のモードを含む。符号化デバイス104および/または復号デバイス112は、(たとえば、絶対誤差和(SAE)、絶対差分和(SAD)、絶対変換誤差和(SATD)、または類似度の他の尺度に基づいて)予測ブロックと符号化されることになるブロックとの間の残差を最小化する各ブロックに対する予測モードを選択し得る。たとえば、SAEは、符号化されることになるブロックの中の各ピクセル(またはサンプル)と比較のために使用されている予測ブロックの中の対応するピクセル(またはサンプル)との間の絶対差分を利用することによって計算され得る。ピクセル(またはサンプル)の差分は加算されて、L1ノルムの差分画像、2つの画像ブロック間のマンハッタン距離、または他の計算など、ブロック類似性の尺度を作成し得る。一例としてSAEを使用すると、イントラ予測モードの各々を使用する予測に対するSAEは、予測誤差の大きさを示す。実際の現在ブロックに対する最善のマッチを有するイントラ予測モードは、最小SAEを与えるイントラ予測モードによって与えられる。
【0081】
イントラ予測の35個のモードは、以下のTable 1(表1)に示されるようにインデックスを付けられる。他の例では、33個の角度モードによってまだ表されていない場合がある予測角度を含む、より多くのイントラモードが定義され得る。他の例では、角度モードに関連付けられた予測角度は、HEVCにおいて使用されるものとは異なり得る。
【0082】
【表1】
【0083】
N×Nブロックのために平面予測を実行するために、(x, y)に位置する各サンプルpxyに対して、双線形フィルタを(イントラ予測のための参照サンプルとして使用される)4つの特定の近隣の再構築されたサンプルに適用することによって、予測サンプル値が計算され得る。4つの参照サンプルは、右上の再構築されたサンプルTR、左下の再構築されたサンプルBL、ならびに現在サンプルと同じ列(rx,-1)および行(r-1,y)に位置する2つの再構築されたサンプルを含む。平面モードは以下のように定式化され得る。
pxy=((N-x1)*・L+(N-y1)*・T+x1*・R+y1*・B)/(2*N)
【0084】
式中、x1=x+1、y1=y+1、R=TR、およびB=BLである。
【0085】
DCモードでは、予測ブロックは、近隣の再構築されたサンプルの平均値により埋められる。一般に、平面モードとDCモードの両方が、滑らかに変化する画像領域および不変の画像領域をモデル化するために適用される。
【0086】
33個の異なる予測方向を有する、HEVCにおける角度イントラ予測モードの場合、イントラ予測プロセスは、次のように説明され得る。各所与の角度イントラ予測モードの場合、イントラ予測方向は、それに応じて識別され得、たとえば、イントラモード18は、純水平予測方向に対応し、イントラモード26は、純垂直予測方向に対応する。角度予測モードは、図2Aの例示的な図200aに示される。いくつかのコーデックでは、異なる数のイントラ予測モードが使用され得る。たとえば、平面モードおよびDCモードに加えて、93個の角度モードを定義することができ、ここで、モード2は-135°の予測方向を示し、モード34は-45°の予測方向を示し、モード66は45°の予測方向を示す。いくつかのコーデック(たとえば、VVC)では、-135°を超え(-135°未満)、45°を超える(45°よりも大きい)角度も定義することができ、これらは、広角イントラモードと呼ばれることがある。本明細書の説明はHEVCにおける(すなわち、35個のモードを有する)イントラモード設計に関するが、開示する技法は、より多くのイントラモード(たとえば、VVCまたは他のコーデックによって定義されるイントラモード)に適用されてもよい。
【0087】
予測ブロックの各サンプルの座標(x,y)が特定のイントラ予測方向(たとえば、角度イントラ予測モードのうちの1つ)に沿って投影される。たとえば、特定のイントラ予測方向を仮定すると、予測ブロックのサンプルの座標(x,y)は、イントラ予測方向に沿って近隣の再構築されたサンプルの行/列に最初に投影される。(x,y)が2つの近隣の再構築されたサンプルLとRの間の分数位置αに投影される場合、(x,y)の予測値は、次のように定式化される2タップの双線形補間フィルタを使用して計算され得る。
pxy=(1-a)・L+a・R
【0088】
浮動小数点演算を回避するために、HEVCでは、上記の計算は整数演算を使用して次のように概算され得る:
pxy=((32-a')・L+a'・R+16)>>5
【0089】
式中、a'は32*aに等しい整数である。
【0090】
いくつかの例では、イントラ予測の前に、近隣参照サンプルは、2タップ-双線形または3タップ(1,2,1)/4フィルタを使用してフィルタリングされ、これらは、イントラ参照平滑化またはモード依存イントラ平滑化(MDIS:mode-dependent intra smoothing)と呼ばれることがある。イントラ予測を実行するとき、イントラ予測モードインデックス(predModeIntra)およびブロックサイズ(nTbS)を仮定すると、参照平滑化プロセスが実行されるかどうか、またどの平滑化フィルタが使用されるかが決定される。イントラ予測モードインデックスは、イントラ予測モードを示すインデックスである。
【0091】
インターピクチャ予測は、画像サンプルのブロックに対する動き補償予測を導出するために、ピクチャ間の時間相関を使用する。並進動きモデルを使用すると、以前に復号されたピクチャ(参照ピクチャ)の中のブロックの位置は、動きベクトル(Δx,Δy)によって示され、Δxは現在ブロックの位置に対する参照ブロックの水平変位を指定し、Δyはその垂直変位を指定する。場合によっては、動きベクトル(Δx,Δy)は、整数サンプル精度(整数精度とも呼ばれる)とすることができ、その場合、動きベクトルは、参照フレームの整数ペルグリッド(または整数ピクセルサンプリンググリッド)を指す。場合によっては、動きベクトル(Δx,Δy)は、参照フレームの整数ペルグリッドに制限されることなしに、基礎をなすオブジェクトの動きをより正確にキャプチャするために、分数サンプル精度(分数ペル精度または非整数精度とも呼ばれる)とすることができる。動きベクトルの精度は、動きベクトルの量子化レベルによって表される。たとえば、量子化レベルは、整数精度(たとえば、1ピクセル)または分数ペル精度(たとえば、1/4ピクセル、1/2ピクセル、または他のサブピクセル値)であり得る。対応する動きベクトルが分数サンプル精度を有するとき、予測信号を導出するために、補間が参照ピクチャに適用される。たとえば、分数位置における値を推定するために、(たとえば、1つまたは複数の補間フィルタを使用して)整数位置において利用可能なサンプルがフィルタ処理され得る。以前に復号された参照ピクチャは、参照ピクチャリストに対する参照インデックス(refIdx)によって示される。動きベクトルおよび参照インデックスは、動きパラメータと呼ばれることがある。単予測および双予測を含む、2つの種類のインターピクチャ予測が実行され得る。
【0092】
双予測(双方向インター予測とも呼ばれる)を使用するインター予測を用いると、2つの動き補償予測を(同じ参照ピクチャからまたは場合によっては異なる参照ピクチャから)生成するために、2つのセットの動きパラメータ(Δx0,y0,refIdx0およびΔx1,y1,refIdx1)が使用される。たとえば、双予測を用いると、各予測ブロックは、2つの動き補償予測信号を使用し、B個の予測ユニットを生成する。最終的な動き補償予測を得るために、2つの動き補償予測が組み合わされる。たとえば、2つの動き補償予測は平均化によって組み合され得る。別の例では、重み付け予測が使用されてよく、この場合、各動き補償予測に異なる重みが加えられてよい。双予測において使用され得る参照ピクチャは、リスト0およびリスト1として示す、2つの別個のリスト内に記憶される。動きパラメータは、動き推定プロセスを使用して符号化デバイス104において導出され得る。
【0093】
単予測(単方向インター予測とも呼ばれる)を使用するインター予測を用いると、参照ピクチャから動き補償予測を生成するために、1セットの動きパラメータ(Δx0,y0,refIdx0)が使用される。たとえば、単予測を用いると、各予測ブロックは、多くとも1つの動き補償予測信号を使用し、P個の予測ユニットを生成する。
【0094】
PUは、予測プロセスに関するデータ(たとえば、動きパラメータまたは他の好適なデータ)を含み得る。たとえば、PUがイントラ予測を使用して符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインター予測を使用して符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分(Δx)、動きベクトルの垂直成分(Δy)、動きベクトルの解像度(たとえば、整数精度、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、参照インデックス、動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)、またはそれらの任意の組合せを記述し得る。
【0095】
AV1は、ビデオデータのコーディングブロックを符号化および復号するための2つの一般的な技法を含む。2つの一般的な技法は、イントラ予測(たとえば、イントラフレーム予測または空間予測)およびインター予測(たとえば、インターフレーム予測または時間予測)である。AV1の文脈で、イントラ予測モードを使用してビデオデータの現在フレームのブロックを予測するとき、符号化デバイス104および復号デバイス112は、ビデオデータの他のフレームからのビデオデータを使用しない。大部分のイントラ予想モードの場合、ビデオ符号化デバイス104は、現在ブロック中のサンプル値と同じフレーム中の参照サンプルから生成される予測値との間の差分に基づいて、現在フレームのブロックを符号化する。ビデオ符号化デバイス104は、イントラ予測モードに基づいて、参照サンプルから生成された予測値を決定する。
【0096】
イントラ予測および/またはインター予測を使用して予測を実行した後、符号化デバイス104は変換および量子化を実行することができる。たとえば、予測に続いて、エンコーダエンジン106は、PUに対応する残差値を計算し得る。残差値は、コーディングされているピクセルの現在ブロック(PU)と現在ブロックを予測するために使用される予測ブロック(たとえば、現在ブロックの予測されたバージョン)との間のピクセル差分値を含み得る。たとえば、予測ブロックを生成した(たとえば、インター予測またはイントラ予測を発した)後、エンコーダエンジン106は、予測ユニットによって生成された予測ブロックを現在ブロックから減算することによって、残差ブロックを生成することができる。残差ブロックは、現在ブロックのピクセル値と予測ブロックのピクセル値との間の差分を定量化するピクセル差分値のセットを含む。いくつかの例では、残差ブロックは、2次元のブロックフォーマット(たとえば、ピクセル値の2次元行列または2次元アレイ)で表され得る。そのような例では、残差ブロックは、ピクセル値の2次元表現である。
【0097】
予測が実行された後に残ることがある任意の残差データは、ブロック変換を使用して変換され、ブロック変換は、離散コサイン変換、離散サイン変換、整数変換、ウェーブレット変換、他の好適な変換関数、またはそれらの任意の組合せに基づき得る。場合によっては、1つまたは複数のブロック変換(たとえば、サイズ32×32、16×16、8×8、4×4、または他の好適なサイズ)が、各CUにおける残差データに適用され得る。いくつかの例では、TUは、エンコーダエンジン106によって実装される変換プロセスおよび量子化プロセスのために使用され得る。1つまたは複数のPUを有する所与のCUはまた、1つまたは複数のTUを含み得る。以下でさらに詳細に説明するように、残差値はブロック変換を使用して変換係数に変換されることがあり、エントロピーコーディングのためのシリアル化変換係数を生成するためにTUを使用して量子化および走査されることがある。
【0098】
いくつかの例では、CUのPUを使用するイントラ予測コーディングまたはインター予測コーディングに続いて、エンコーダエンジン106は、CUのTUに対する残差データを計算し得る。PUは、空間領域(またはピクセル領域)におけるピクセルデータを含み得る。TUは、ブロック変換を適用した後の、変換領域における係数を備え得る。前述のように、残差データは、符号化されていないピクチャのピクセルとPUに対応する予測値との間のピクセル差分値に相当し得る。エンコーダエンジン106は、CUに対する残差データを含むTUを形成し得、次いで、TUを変換してCUに対する変換係数を生成し得る。
【0099】
エンコーダエンジン106は、変換係数の量子化を実行し得る。量子化は、係数を表すために使用されるデータの量を低減するために変換係数を量子化することによって、さらなる圧縮を実現する。たとえば、量子化は、係数の一部または全部に関連付けられたビット深度を低減し得る。一例では、nビット値を有する係数は、量子化中にmビット値に切り捨てられてもよく、nはmよりも大きい。
【0100】
量子化が実行されると、コーディングされたビデオビットストリームは、量子化された変換係数、予測情報(たとえば、予測モード、動きベクトル、ブロックベクトルなど)、区分情報、および他のシンタックスデータなど、任意の他の適切なデータを含む。コーディングされたビデオビットストリームの異なる要素は、エンコーダエンジン106によってエントロピー符号化され得る。いくつかの例では、エンコーダエンジン106は、事前定義された走査順序を利用して量子化変換係数を走査して、エントロピー符号化され得るシリアル化ベクトルを生成し得る。いくつかの例では、エンコーダエンジン106は、適応走査を実行し得る。量子化変換係数を走査してベクトル(たとえば、1次元ベクトル)を形成した後、エンコーダエンジン106はベクトルをエントロピー符号化し得る。たとえば、エンコーダエンジン106は、コンテキスト適応型可変長コーディング、コンテキスト適応型バイナリ算術コーディング、シンタックスベースコンテキスト適応型バイナリ算術コーディング、確率間隔区分エントロピーコーディング、または別の好適なエントロピー符号化技法を使用し得る。
【0101】
符号化デバイス104の出力部110は、符号化ビデオビットストリームデータを構成するNALユニットを、通信リンク120を介して受信デバイスの復号デバイス112に送り得る。復号デバイス112の入力部114は、NALユニットを受信し得る。通信リンク120は、ワイヤレスネットワーク、ワイヤードネットワーク、またはワイヤードネットワークとワイヤレスネットワークの組合せによって提供されるチャネルを含み得る。ワイヤレスネットワークは、任意のワイヤレスインターフェースまたはワイヤレスインターフェースの組合せを含んでよく、任意の好適なワイヤレスネットワーク(たとえば、インターネットまたは他のワイドエリアネットワーク、パケットベースネットワーク、WiFi(商標)、無線周波数(RF)、UWB、WiFi-Direct、セルラー、ロングタームエボリューション(LTE)、WiMax(商標)など)を含んでよい。ワイヤードネットワークは、任意のワイヤードインターフェース(たとえば、ファイバー、イーサネット、電力線イーサネット、同軸ケーブルを介したイーサネット、デジタル信号ライン(DSL)など)を含んでよい。ワイヤードネットワークおよび/またはワイヤレスネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチなどの様々な機器を使用して実装され得る。符号化ビデオビットストリームデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調されてよく、受信デバイスへ送信されてよい。
【0102】
いくつかの例では、符号化デバイス104は、符号化ビデオビットストリームデータをストレージ108に記憶し得る。出力部110は、エンコーダエンジン106から、またはストレージ108から、符号化ビデオビットストリームデータを取り出し得る。ストレージ108は、分散されるかまたはローカルにアクセスされる様々なデータ記憶媒体のうちのいずれかを含み得る。たとえば、ストレージ108は、ハードドライブ、ストレージディスク、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体を含み得る。ストレージ108はまた、インター予測において使用するための参照ピクチャを記憶するための復号ピクチャバッファ(DPB)を含むことができる。さらなる例では、ストレージ108は、ソースデバイスによって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応することができる。そのような場合、復号デバイス112を含む受信デバイスは、ストリーミングまたはダウンロードを介して記憶デバイスからの記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを受信デバイスに送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワークアタッチトストレージ(NAS)デバイス、またはローカルディスクドライブを含む。受信側デバイスは、インターネット接続を含めて、任意の標準データ接続を通して符号化ビデオデータにアクセスし得、ファイルサーバ上に記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。ストレージ108からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【0103】
復号デバイス112の入力部114は、符号化ビデオビットストリームデータを受信し、ビデオビットストリームデータをデコーダエンジン116に、またはデコーダエンジン116によって後で使用するためにストレージ118に提供し得る。たとえば、ストレージ118は、インター予測において使用するための参照ピクチャを記憶するためのDPBを含むことができる。復号デバイス112を含む受信デバイスは、ストレージ108を介して、復号されるべき符号化ビデオデータを受信することができる。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、受信デバイスに送信され得る。送信された符号化ビデオデータのための通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレス通信媒体またはワイヤード通信媒体を備えることができる。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイスから受信デバイスへの通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0104】
デコーダエンジン116は、符号化ビデオデータを構成する1つまたは複数のコーディングされたビデオシーケンスの要素を(たとえば、エントロピーデコーダを使用して)エントロピー復号および抽出することによって、符号化ビデオビットストリームデータを復号し得る。デコーダエンジン116は、再スケーリングし、符号化ビデオビットストリームデータに対して逆変換を実行し得る。残差データは、デコーダエンジン116の予測段に渡される。デコーダエンジン116は、ピクセルのブロック(たとえば、PU)を予測する。いくつかの例では、予測は、逆変換の出力(残差データ)に追加される。
【0105】
復号デバイス112は、復号ビデオをビデオ宛先デバイス122に出力し得、ビデオ宛先デバイス122は、復号ビデオデータをコンテンツの消費者に表示するためのディスプレイまたは他の出力デバイスを含み得る。いくつかの態様では、ビデオ宛先デバイス122は、復号デバイス112を含む受信デバイスの一部であってよい。いくつかの態様では、ビデオ宛先デバイス122は、受信デバイス以外の別個のデバイスの一部であってよい。
【0106】
いくつかの例では、ビデオ符号化デバイス104および/またはビデオ復号デバイス112は、それぞれ、オーディオ符号化デバイスおよびオーディオ復号デバイスと統合されてよい。ビデオ符号化デバイス104および/またはビデオ復号デバイス112はまた、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、上記で説明されたコーディング技法を実装するのに必要な他のハードウェアまたはソフトウェアを含み得る。ビデオ符号化デバイス104およびビデオ復号デバイス112は、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。符号化デバイス104の具体的な詳細の一例が、図8を参照して以下で説明される。復号デバイス112の具体的な詳細の一例が、図9を参照して以下で説明される。
【0107】
図1に示す例示的なシステムは、本明細書で使用され得る1つの例示的な例である。本明細書で説明する技法を使用してビデオデータを処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法はビデオ符号化デバイスまたはビデオ復号デバイスによって実行されるが、技法はまた、通常は「コーデック」と呼ばれる複合ビデオエンコーダデコーダによって実行され得る。さらに、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイスおよび受信デバイスは、ソースデバイスが受信デバイスに送信するためのコーディングされたビデオデータを生成する、そのようなコーディングデバイスの例にすぎない。いくつかの例では、ソースデバイスおよび受信デバイスは、デバイスの各々がビデオ符号化および復号構成要素を含むように、実質的に対称的に動作し得る。したがって、例示的なシステムは、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのために、ビデオデバイス間の一方向または双方向のビデオ送信をサポートし得る。
【0108】
HEVC規格の拡張は、MV-HEVCと呼ばれるマルチビュービデオコーディング拡張、およびSHVCと呼ばれるスケーラブルビデオコーディング拡張を含む。MV-HEVC拡張およびSHVC拡張は階層化コーディングの概念を共有し、異なるレイヤが符号化ビデオビットストリームの中に含まれる。コーディングされたビデオシーケンスの中の各レイヤは、固有のレイヤ識別子(ID)によってアドレス指定される。レイヤIDは、NALユニットが関連付けられたレイヤを識別するために、NALユニットのヘッダの中に存在し得る。MV-HEVCでは、異なるレイヤは、ビデオビットストリームの中で同じシーンの異なるビューを表現することができる。SHVCでは、異なる空間解像度(すなわち、ピクチャ解像度)で、または異なる再構築忠実度でビデオビットストリームを表す、異なるスケーラブルレイヤが提供される。スケーラブルレイヤは、(レイヤID=0である)ベースレイヤ、および(レイヤID=1、2、...nである)1つまたは複数のエンハンスメントレイヤを含み得る。ベースレイヤは、HEVCの最初のバージョンのプロファイルに準拠し得、ビットストリームの中の最低利用可能レイヤを表現する。エンハンスメントレイヤは、空間分解度、時間分解能もしくはフレームレート、および/または再構築忠実度(すなわち、品質)がベースレイヤと比較して増大している。エンハンスメントレイヤは、階層的に編成され、下位レイヤに依存することがある(または、依存しないこともある)。いくつかの例では、異なるレイヤは、単一規格コーデックを使用してコーディングされ得る(たとえば、HEVC、SHVC、または他のコーディング規格を使用してすべてのレイヤが符号化される)。いくつかの例では、異なるレイヤは、多規格コーデックを使用してコーディングされ得る。たとえば、ベースレイヤがAVCを使用してコーディングされてよく、1つまたは複数のエンハンスメントレイヤがHEVC規格に対するSHVC拡張および/またはMV-HEVC拡張を使用してコーディングされてよい。
【0109】
一般に、レイヤは、VCL NALユニットのセット、および非VCL NALユニットの対応するセットを含む。NALユニットは、特定のレイヤID値を割り当てられる。レイヤが下位レイヤに依存することがあるという意味で、レイヤは階層的であり得る。レイヤセットとは、自蔵式であるビットストリーム内で表されるレイヤのセットを指し、自蔵式とは、レイヤセット内のレイヤが、復号プロセスにおけるレイヤセットの中の他のレイヤに依存することができるが、いかなる他のレイヤにも復号のために依存しないことを意味する。したがって、レイヤセットの中のレイヤは、ビデオコンテンツを表現できる独立したビットストリームを形成することができる。レイヤセットの中のレイヤのセットは、サブビットストリーム抽出プロセスの動作によって別のビットストリームから取得され得る。レイヤセットは、いくつかのパラメータに従って動作することをデコーダが望むときに復号されるべきレイヤのセットに相当し得る。
【0110】
前に説明したように、HEVCビットストリームは、VCL NALユニットおよび非VCL NALユニットを含む、NALユニットのグループを含む。VCL NALユニットは、コーディングされたビデオビットストリームを形成するコーディングされたピクチャデータを含む。たとえば、コーディングされたビデオビットストリームを形成するビットのシーケンスがVCL NALユニットに存在する。非VCL NALユニットは、他の情報に加えて、符号化ビデオビットストリームに関する高レベル情報を有するパラメータセットを含み得る。たとえば、パラメータセットは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、およびピクチャパラメータセット(PPS)を含み得る。パラメータセットの目的の例は、ビットレート効率、エラーレジリエンシー、およびシステムレイヤインターフェースを提供することを含む。各スライスは、スライスを復号するために復号デバイス112が使用し得る情報にアクセスするために、単一のアクティブなPPS、SPS、およびVPSを参照する。識別子(ID)は、パラメータセットごとにコーディングされてもよく、VPS ID、SPS ID、およびPPS IDを含む。SPSは、SPS IDおよびVPS IDを含む。PPSは、PPS IDおよびSPS IDを含む。各スライスヘッダは、PPS IDを含む。IDを使用すると、アクティブなパラメータセットが所与のスライスに対して識別され得る。
【0111】
PPSは、所与のピクチャの中のすべてのスライスに適用される情報を含む。いくつかの例では、ピクチャの中のすべてのスライスは、同じPPSを参照する。異なるピクチャの中のスライスも、同じPPSを参照し得る。SPSは、同じコーディングされたビデオシーケンス(CVS)またはビットストリームの中のすべてのピクチャに適用される情報を含む。前に説明されたように、コーディングされたビデオシーケンスは、ベースレイヤの中で(上記で説明された)いくつかの特性を伴うランダムアクセスポイントピクチャ(たとえば、瞬時復号参照(IDR)ピクチャもしくはブロークンリンクアクセス(BLA)ピクチャ、または他の適切なランダムアクセスポイントピクチャ)から始めて、ベースレイヤの中でいくつかの特性を伴うランダムアクセスポイントピクチャを有する次のアクセスユニット(AU)の直前(またはビットストリームの末尾)までの、一連のAUである。SPSの中の情報は、コーディングされたビデオシーケンス内のピクチャごとに変化しないことがある。コーディングされたビデオシーケンスの中のピクチャは、同じSPSを使用し得る。VPSは、コーディングされたビデオシーケンスまたはビットストリームの中のすべてのレイヤに適用される情報を含む。VPSは、コーディングされたビデオシーケンス全体に適用されるシンタックス要素を有するシンタックス構造を含む。いくつかの実施形態では、VPS、SPS、またはPPSは、符号化ビットストリームとともにインバンドで送信され得る。いくつかの実施形態では、VPS、SPS、またはPPSは、コーディングされたビデオデータを含むNALユニットとは別個の送信において、アウトオブバンドで送信され得る。
【0112】
本開示は、一般に、シンタックス要素などの特定の情報を「シグナリング」することに言及することがある。「シグナリング」という用語は、一般に、シンタックス要素および/または符号化されたビデオデータを復号するために使用される他のデータのための値の通信を指すことがある。たとえば、ビデオ符号化デバイス104は、ビットストリーム中でシンタックス要素のための値をシグナリングし得る。一般に、シグナリングは、ビットストリーム中で値を生成することを指す。上述のように、ビデオソース102は、実質的にリアルタイムで、または、ビデオ宛先デバイス122によって後で取り出すためにシンタックス要素をストレージ108に記憶するときに行われ得るなど、リアルタイムではなく、ビットストリームをビデオ宛先デバイス122にトランスポートし得る。
【0113】
ビデオビットストリームはまた、補足強調情報(SEI)メッセージを含み得る。たとえば、SEI NALユニットは、ビデオビットストリームの一部であり得る。場合によっては、SEIメッセージは、復号プロセスによって必要とされない情報を含むことができる。たとえば、SEIメッセージの中の情報は、デコーダがビットストリームのビデオピクチャを復号するのに必須でないことがあるが、デコーダは、ピクチャ(たとえば、復号出力)の表示または処理を改善するためにその情報を使用することができる。SEIメッセージの中の情報は、埋込みメタデータであってよい。例示的な一例では、SEIメッセージの中の情報は、コンテンツの視認性を改善するためにデコーダ側エンティティによって使用され得る。いくつかの事例では、いくつかのアプリケーション規格は、アプリケーション規格に準拠するすべてのデバイスに品質の改善がもたらされ得るように、ビットストリームの中にそのようなSEIメッセージの存在を要求することがある(たとえば、多くの他の例に加えて、SEIメッセージがビデオのすべてのフレームに対して搬送されるフレーム互換平面立体視3DTVビデオフォーマット用のフレームパッキングSEIメッセージの搬送、回復点SEIメッセージの処理、DVBにおけるパンスキャンスキャン矩形SEIメッセージの使用)。
【0114】
上述のように、符号化デバイス104は、空間冗長性を除去するために、イントラ予測および/またはイントラフレーム予測を使用して、元のビデオシーケンスのピクチャの1つまたは複数のブロックまたは矩形領域を符号化し得る。復号デバイス112は、符号化デバイス104によって使用された同じイントラ予測モードを使用することによって、符号化ブロックを復号し得る。イントラ予測モードは、参照ピクセル値に基づいてコーディングされているエリアの中のピクセル値を計算するための異なる変形態または手法を記述する。VVC規格では、イントラ予測モードに基づいて、1つまたは複数の平滑化フィルタおよび補間フィルタが選択され、その後、現在ブロックの参照ピクセルおよび/またはイントラ予測に適用され得る。この手法では、イントラ予測のために使用される平滑化フィルタか補間フィルタかの同じ選定がすべてのブロックサイズに提供され、たとえば、固定された程度の平滑化がすべての考えられるブロックサイズに適用される。異なる方向性イントラ予測モードがVVC規格において提供される。
【0115】
図2Bは、VVCにおける方向性イントラ予測モード(「角度イントラ予測モード」とも呼ばれる)の例示的な図200bを示す。いくつかの例では、平面モードおよびDCモードは、HEVCにおけるのと同じ状態をVVCにおいて維持する。示すように、2と66との間の偶数インデックスを有するイントラ予測モードは、33HEVCイントラ予測モードに等しくてよく、図2Bの残りのイントラ予測モードは、VVCにおいて新しく加えられたイントラ予測を表す。例示的な例として、自然なビデオ内に提示される任意のエッジ方向をより良くキャプチャするために、VTM5(VVCテストモデル5)における方向性イントラ予測モードの数は、33HEVC方向から合計で93個の方向に増大された。イントラ予測モードは、すべての目的で、参照によりその全体が本明細書に組み込まれている、B.Bross、J.Chen、S.Liu、「Versatile Video Coding(Draft 10)」、第19回JVET Meeting、Teleconference、2020年7月、JVET-S2001においてより詳細に説明されている。いくつかの例では、VVC規格において紹介されている、より高密度の方向性イントラ予測モードは、すべてのブロックサイズに、またルーマイントラ予測とクロマイントラ予測の両方に適用され得る。場合によっては、これらの方向性イントラ予測モードは、多重参照ライン(MLR:multiple reference lines)と、かつ/またはイントラサブパーティションモード(ISP:intra-sub partition mode)と、のいずれかと組み合わせて使用され得る。さらなる詳細は、すべての目的で、参照によりその全体が本明細書に組み込まれている、J.Chen、Y.Ye、S.Kim、「Algorithm description for Versatile Video Coding and Test Model 10(VTM10)」、第19回JVET Meeting、Teleconference、2020年7月、JVET-S2002において説明されている。
【0116】
いくつかの例では、モード依存イントラ平滑化(MDIS)は、現在コーディングされているブロックのイントラ予測モードに基づく平滑化フィルタおよび/または平滑化のタイプを適用することによって、イントラ予測信号を平滑化するために利用され得る。図3は、イントラ予測のために使用され得るMDISプロセス300の一例を示す流れ図である。例示的な例では、図3の例示的なMDISプロセスは、VVC規格のMDISプロセスと同じであり得る。例示的なMDISプロセス300は、現在コーディングされているブロックに対するイントラ予測において使用されることになる特定の補間フィルタおよび/または特定の平滑化フィルタを選択するために使用され得る。以下でより深く説明するように、いくつかの例では、補間および/または平滑化フィルタの選択は、現在コーディングされているブロックのイントラ予測モードに少なくとも部分的に基づき得る。
【0117】
例示的なMDISプロセス300は、動作302において、現在コーディングされているブロックのイントラ予測モードが水平イントラ予測モードまたは垂直イントラ予測モードであるか否かを決定することによって開始し得る。図2Bに示した方向性イントラ予測モードを参照すると、水平イントラ予測モードは、モード18として示され、垂直イントラ予測モードはモード50として示されている。動作302における、イントラ予測モードが水平モードまたは垂直モードのいずれかであるかの決定(たとえば、302の「Yes」出力)に応答して、例示的なMDISプロセスは、動作304に進むことができる。示すように、動作304は参照ピクセル平滑化の実行または補間フィルタの適用なしに、MDISプロセスを終了させる。いくつかの例では、無平滑化または無補間は、水平イントラ予測モードおよび垂直イントラ予測モードに対して実行され得るが、これは、これらの2つのモードのための参照ピクセル値が現在ブロックの予測ピクセル値を決定する際に直接的にコピーされ得るためである。
【0118】
イントラ予測モードが水平モードまたは垂直モードでない場合(たとえば、動作302の「No」出力)、例示的なMDISプロセスは、平滑化が現在ブロックに必要とされるかどうかの決定に進むことができる。示すように、現在ブロックに対して平滑化が実行されるべきか否かの決定は、現在ブロックのイントラ予測モードに少なくとも部分的に基づいて、動作306において実行され得る。たとえば、イントラ予測モードは、最小距離minDistVerHorを計算するために使用されてよく、ここで、たとえば、minDistVerHorは、{|intra-prediction mode number-vertical intra-prediction mode number|、|intra-prediction mode number-horizontal intra-prediction mode number|}の最小値である。最小距離minDistVerHorはまた、最小角度オフセットおよび/または最小角度距離と呼ばれることもある。例示的な例では、垂直イントラ予測モード数は50であってよく、水平イントラ予測モード数は18であってよい。したがって、現在ブロックのイントラ予測モード数が30である場合、最小角度オフセットは、min{|30-50|,|30-18|}=min{20,12}=12として計算され得る。
【0119】
動作306において、最小角度オフセットminDistVerHorは、次いで、しきい値intraHorVerDistThres[nTbS]と比較されてよく、しきい値intraHorVerDistThres[nTbS]は、いくつかの例では、たとえば、ルックアップ関数またはルックアップテーブルintraHorVerDistThresに対するインデックスとして現在変換ブロックサイズnTbSを提供することによって決定される、VVC規格によって与えられる所定のしきい値であり得る。図3に示すように、最小角度オフセットminDistVerHorがしきい値intraHorVerDistThres[nTbS]以下である場合、動作306は、現在ブロックに対して何の平滑化も必要ではないと決定し得る、たとえば、306の「No」出力。
【0120】
平滑化が必要とされない場合、例示的なMDISプロセスは、動作306から動作307に進むことができ、動作307は、ここで、いずれの参照ピクセル平滑化もなしに、補間フィルタを適用するとして示されている。いくつかの例では、動作307によって適用される補間フィルタは、図3に示した4タップ(6ビット)3次補間フィルタなど、3次補間フィルタであってよい。動作306が直接的参照ピクセル平滑化は必要とされないと決定したため、動作307は、4タップ3次補間フィルタのみを適用し得、たとえば、最小角度オフセットは、動作306において、イントラ予測モードが水平モードまたは垂直モードのいずれかからのしきい値距離内にあったことを示したため、参照ピクセル平滑化は実行されない。
【0121】
動作306が、最小角度オフセットminDistVerHorがしきい値intraHorVerDistThres[nTbS]よりも大きいと決定する場合、動作306は、現在ブロックに平滑化が必要とされると決定し得る、たとえば、「Yes」出力。平滑化が必要とされるとの決定に応答して、現在ブロックに対するイントラ予測モードは、後続の動作308においてさらに分析され得る。
【0122】
いくつかの例では、動作308は、現在ブロックに対するイントラ予測モードを分析して、それが整数傾斜イントラ予測モードであるかまたは分数傾斜イントラ予測モードであるか(それぞれ、「整数角度モード」および「分数角度モード」とも呼ばれる)を決定し得る。前に述べたように、整数角度モードは現在ブロックの特定の整数値参照ピクセル位置に関連付けられ、分数角度モードは特定の整数値参照ピクセル位置に関連付けられない。分数角度モードは、代わりに、隣接する整数値参照ピクセル位置同士の間のある中間(たとえば、分数)位置に関連付けられる。
【0123】
動作308が現在ブロックに対するイントラ予測モードが整数角度モードである(たとえば、308の「Yes」出力)と決定することに基づいて、動作308は動作309に進むことができる。示すように、場合によっては、整数角度モードに対して補間は必要ではないと決定されるため、動作309は、参照ピクセル平滑化を実行し得るが、補間は実行しない。たとえば、整数角度イントラ予測モードは参照ピクセル値を直接的に使用することができるため、参照ピクセル平滑化のみが実行される。いくつかの例では、動作309の参照ピクセル平滑化は、参照ピクセル値の2倍に直接隣接する左および右(または上および下)の参照ピクセル位置の値を加えた数からなる和の平均を計算する、[1 2 1]フィルタなど、ローパスフィルタを適用することによって実行され得る。
【0124】
動作308が現在ブロックに対するイントラ予測モードが分数角度モードである(たとえば、非整数角度モード、308の「No」出力)と決定することに基づいて、場合によっては、後続の動作310は、イントラ予測モードに関連付けられた分数参照ピクセル位置に対する補間値を計算し得る。たとえば、動作310は、補間された分数参照ピクセル位置値を計算し得、1つまたは複数の隣接する整数値参照ピクセル位置から取得された1つまたは複数の参照ピクセル値に基づいて計算され得る。動作306において、(たとえば、動作306は最小角度オフセットminDistVerHor>しきい値intraHorVerDistThres[nTbS]であると決定したため)現在ブロックのイントラ予測に平滑化が実行されるべきであると前に決定されたことを想起すると、動作308の「No」出力は、平滑化と補間の両方が現在ブロックに適用されるシナリオに対応し得る。
【0125】
いくつかの例では、図3に示すように、平滑化動作および補間動作は、たとえば、平滑化補間フィルタを適用することによって、単一の組み合わされたステップにおいて実行され得る。例示的な例では、平滑化補間フィルタは、生成されたイントラ予測信号を平滑化し、分数参照ピクセル位置値を同時に補間する、ガウス補間フィルタとして提供され得る。前述のガウス補間フィルタなど、平滑化補間フィルタは、直接的参照ピクセル平滑化を実行せずに平滑化を適用し得る。いくつかの例では、平滑化補間フィルタは、動作310に示すような、4タップ(6ビット)ガウス補間フィルタを含み得る。
【0126】
図3の例示的なMDISプロセス300の文脈において、MDISプロセス(およびVVC規格)は、ブロックサイズまたは他の特性に基づき可変程度の平滑化を使用しないことに留意されたい。いくつかの例では、本明細書で説明するシステムおよび技法は、限定はしないが、現在ブロックのイントラ予測モード、現在ブロックのサイズ、現在ブロックの幅、現在ブロックの高さなどを含む要因に少なくとも部分的に基づいて、可変程度の平滑化および/または補間を提供し得る。
【0127】
いくつかの例では、ビデオコーディング技法は、イントラ予測を実行するために、メイン参照ライン拡張(MRL:main reference line extension)および/またはイントラサブパーティションモード(ISP)のうちの1つまたは複数とともに、方向性イントラ予測モードを使用することを含み得る。例示的な例では、イントラ予測は、イントラ予測のためにメイン参照ピクセルラインを拡張するために1つまたは複数のサイド参照ピクセルを使用することを含み得る。
【0128】
図4は、1つまたは複数のサイド参照ピクセルを使用した参照ライン拡張の例示的な図400を示す。現在コーディングされているブロック405に対して示されているのは、一連の計算された参照ライン拡張ピクセル420を含む参照ピクセルの上線410である。左参照ピクセル430のセットも示されている。垂直モード(たとえば、イントラ予測モード>=34、特定の垂直イントラ予測モード50と混合しないように)のイントラ予測の場合、参照ピクセルの上線410を拡張するために、たとえば、参照ライン拡張ピクセル420に対する値を生成すること、または場合によっては計算することによって、現在コーディングされているブロック405の左参照ピクセル430からの1つまたは複数のピクセルが使用され得る。参照ライン拡張ピクセル420の計算は、図4に示すように、現在ブロック405の左端を超えて拡張するように、参照ピクセルの上線410の長さを拡張するために使用され得る。
【0129】
現在のVVC規格では、参照ピクセルの上線410は、左参照ピクセル430中の最近の近隣を識別することによって拡張可能であり、識別される最近の近隣の値は、参照ライン拡張ピクセル420のうちの少なくとも1つの値に等しく設定される。例示的な例では、図4は、参照ピクセルの上線410の参照ライン拡張ピクセル420中に位置する点P(たとえば、423によって示される)を示す。上部参照ピクセルライン410は、左参照ピクセル430に基づいて拡張される。現在のVVC規格では、参照ライン拡張プロセスは、左参照ピクセル430のうちのどれが拡張参照ラインピクセルP/423に最近の近隣であるかを決定し、次いで、拡張参照ラインピクセルPの値を左参照ピクセル430中の識別された最近の近隣の値に等しく設定することによって進む。図4に示すように、左参照ピクセル430の列内の最近の近隣はX1として示され、X1位置におけるピクセル値は、したがって、拡張参照ラインピクセルP(たとえば、423)を作成するために使用される。参照ピクセルの上線410は、この方法論を使用して所望の長さに拡張され得、その後、参照ピクセルの元の上線410および参照ライン拡張ピクセル420によって形成される拡張参照ラインを使用してイントラ予測が実行される。いくつかの例では、同様のプロセスが水平モード(たとえば、イントラ予測モード<34、特定の水平イントラ予測モード18と混合しないように)のイントラ予測に適用されてもよく、上部参照ライン中の識別された最近の近隣ピクセルの値は、参照ピクセルの左線を拡張するために投影される。
【0130】
VVCイントラ予測プロセスに対する様々な改善が、すべての目的で、参照によりその全体が本明細書に組み込まれている、X.Zhao、V.Seregin、M.Karczewicz、「Six tap intra interpolation filter」、第4回JVET Meeting、成都、中国、2016年10月、JVET-D0119に記述されているJVET-D0119において提案されている。たとえば、JVET-D0119は、次の2つの方法を導入することによってイントラ予測プロセスを改善することを提案している:(1)図3の例示的なMDISプロセスを実行するための上記で説明したような、4タップ(6ビット)3次補間の代わりに、6タップ(8ビット)3次補間を使用すること、(2)最近の近隣ピクセル値を投影する代わりに、図4に関して説明した例示的な参照ライン拡張を実行するために、(この場合も、図3の例示的なMDISプロセスに関して上記で説明したのと)同じ4タップ(6ビット)3次補間を使用すること。
【0131】
前で述べたように、いくつかの例では、より大きいブロックサイズは、イントラ予測中により高い程度の平滑化を適用させることから利益を得ることができる。しかしながら、VVCは、すべてのブロックサイズに対して固定された程度の平滑化(たとえば、4タップガウス補間または[1 2 1]フィルタリング)を使用し、これは、上記の観察に照らして、非効率的または効率性の低いイントラ予測をもたらし得る。上記で論じたJVET-D0119に関して、参照ピクセルの1つまたは複数のライン(たとえば、上部および/または左参照ピクセルライン)を拡張するための4タップ3次補間の使用は問題がある可能性があるが、これは、拡張参照ラインの拡張部分を使用してイントラ予測が実行されるとき、その使用が過剰平滑化をもたらすことがあり、それにより、イントラ予測プロセス全体に不正確さおよび/または非効率性をもたらし得るためである。
【0132】
たとえば、そのような状況において過剰平滑化が生じることがあるが、これは、拡張参照ラインの拡張ピクセルが、その各々がある程度の平滑化およびエッジ劣化をもたらす、少なくとも2つの別個の補間動作の対象となるためである。第1の補間動作は、それぞれ、左/上部参照ピクセルからの最近の近隣値に基づいて拡張上部/左参照ピクセルライン値を決定するための4タップ3次補間である。拡張参照ピクセルラインの補間された参照ピクセル値は、その後、図3の例示されるMDISプロセスに関して説明した補間動作など、現在ブロックに対するイントラ予測中に第2の補間動作に関与し得る。たとえば、拡張参照ピクセルラインの補間された参照ピクセル値は、4タップ3次補間、4タップガウス平滑化補間、および/またはローパス[1 2 1]参照ピクセル平滑化のうちの1つまたは複数において利用され得、その各々は、イントラ予測プロセス全体に過剰平滑化をもたらし得る。
【0133】
前に述べたように、1つまたは複数の拡張補間フィルタを使用してイントラ予測を実行するためのシステムおよび技法について本明細書で説明する。システムおよび技法は、符号化デバイス104、復号デバイス112によって、符号化デバイス104と復号デバイス112の両方によって、および/または他のデバイスによって実行され得る。本明細書で説明する態様は、独立してかつ/または組み合わされた様式で適用され得る。いくつかの例では、本明細書で説明するシステムおよび技法は、(たとえば、イントラ予測モードの適用中にまたはそれとともに使用されるフィルタリングのために)1つまたは複数のイントラ予測モードを実行するために使用され得る。
【0134】
いくつかの例では、本明細書で説明するシステムおよび技法は、ブロックレベル切替えを用いた可変程度の参照ピクセル平滑化を提供し得る。たとえば、各々、異なる程度の平滑化を有する、複数の平滑化フィルタおよび/またはガウス補間フィルタ(「ガウス平滑化補間フィルタ」とも呼ばれる)がイントラ予測中に参照ピクセルを平滑化するために使用され得る。場合によっては、決定された平滑化フィルタおよび/または決定された補間フィルタの選択は、異なるコーディングレベルで明示的にシグナリングされ得、たとえば、予測ブロック単位で、コーディングブロック単位で、CTU単位で、スライス単位で、および/またはシーケンス(たとえば、SPS内の)レベル単位でシグナリングされ得る。いくつかの例では、決定された平滑化および/または補間フィルタの選択は、復号情報を使用して暗示的に決定され得、復号情報は、限定はしないが、ブロックサイズ、予測モード、QP、および/またはCUレベルモードフラグ(MRL、ISPなど)を含み、その場合、フィルタ選定の明示的なシグナリングは不要である。たとえば、いくつかの例では、符号化デバイス104および/または復号デバイス112は、現在コーディングされているブロックが一定のサイズを有する、しきい値よりも大きい幅および/または高さを有する、しきい値未満の幅および/または高さを有するなどの決定に基づいて、イントラ予測において使用するための平滑化フィルタおよび/または補間フィルタを暗示的に決定または選択し得る。
【0135】
1つの例示的な例では、分数角度(たとえば、非整数角度)イントラ予測モードの処理をVVC規格に記述される手法から拡張して、より高い程度の平滑化を適用する第1のガウス平滑化補間フィルタかより低い程度の平滑化を適用する少なくとも第2のガウス平滑化補間フィルタからを選定することを含めることができる。図3に関して前に論じたように、VVC規格によって使用される手法は、現在コーディングされているブロックのサイズにかかわらず、すべての分数角度イントラ予測モードに対して同じ4タップガウス平滑化補間フィルタを利用する。
【0136】
図5は、現在ブロックの少なくともイントラ予測モードおよび現在ブロックのサイズに基づいて、可変程度のイントラ予測平滑化を適用するために切り替え可能な平滑化および/または補間を実行するためのプロセス500の一例を示す例示的な図である。すぐ上で論じた例の文脈で、拡張補間フィルタを使用したイントラ予測のための本開示のシステムおよび技法は、分数角度イントラ予測モードに対して、6タップガウス平滑化フィルタを備えた第1のフィルタか4タップガウス平滑化補間フィルタを備えた第2のフィルタを選択することを含み得る。6タップガウス平滑化補間フィルタは、4タップガウス平滑化補間フィルタよりも高い程度の平滑化を適用し得る。いくつかの例では、図5の4タップガウス平滑化補間フィルタは、図3の例示的なVVC MDISプロセス300に関して説明した4タップガウス平滑化補間フィルタと同じまたは同様であってよい。いくつかの例では、フィルタリング、補間、および/または平滑化度選択プロセスは、図5に見られるような、現在コーディングされているブロックのブロックサイズに応じて暗示的であり得る。
【0137】
いくつかの例では、図5に示すブロックレベル切り替えを用いた参照ピクセルに対する可変の平滑化フィルタリングおよび補間プロセスは、図3の例示的なVVC MDISプロセスと同じまたは同様であってよいが、動作510(たとえば、現在コーディングされているブロックの幅および現在コーディングされているブロックの高さのうちの1つまたは複数を少なくとも第1のしきい値Tと比較する)ならびに後続動作512(たとえば、第1のしきい値Tの超過に応答して、比較的高程度の平滑化を用いる6タップガウス平滑化補間フィルタを選択し適用する)および514(たとえば、第1のしきい値Tの非超過に応答して、比較的低程度の平滑化を用いる4タップガウス平滑化補間フィルタを選択し適用する)を除く。
【0138】
動作502において、プロセスは、現在復号されているブロックに対するイントラ予測モードが水平イントラ予測モード(たとえば、モード18)または垂直イントラ予測モード(たとえば、モード50)であるかどうかを決定し得る。イントラ予測モードが水平モードまたは垂直モードのいずれかである場合、プロセスは、ブロック504において、図3の例示的なMDISプロセスに関して前に説明したように、(図5で「参照ピクセル平滑化」と呼ばれる)参照ピクセル平滑化を実行せず、補間フィルタリングを実行しないと決定する。プロセスは、次いで、現在コーディングされているブロックの処理に進み、参照ピクセル平滑化または補間フィルタリングを適用せずに、イントラ予測を実行し得る。
【0139】
動作506において、プロセスは、最小角度オフセットminDistVerHorがしきい値intraHorVerDistThres[nTbS]よりも大きいかどうかを決定し得る。場合によっては、minDistVerHorおよび/またはintraHorVerDistThres[nTbS]のうちの1つまたは複数は、図3の例示的なMDISプロセスに関して上記で論じた対応する可変値と同じまたは同様であってよい。例示的な例では、角度オフセット可変minDistVerHorは、Min(Abs(predModeIntra-50)、Abs(predModeIntra-18))に等しく設定されてよく、ここで、predModeIntraは、イントラ予測モード番号を示し、50は垂直イントラ予測モード番号を示し、18が水平イントラ予測モードnumnberを示す。場合によっては、predModeIntraは、IntraPredModeY[xCb][yCb]またはIntraPredModeC[xCb][yCb]に等しく設定されてよい。いくつかの例では、しきい値変数intraHorVerDistThres[nTbS]は、現在コーディングされている変換ブロックサイズnTbSの異なる値に対して以下のTable 2(表2)に指定されるように与えられてよい。
【0140】
【表2】
【0141】
いくつかの例では、動作506が、角度オフセットminDistVerHorがしきい値変数intraHorVerDistThres[nTbS]の値以下であると決定する場合(たとえば、minDistVerHor≦intraHorVerDistThres[nTbs])、プロセスは、動作507において、参照ピクセル平滑化を実行しないと決定し得、現在コーディングされているブロックのイントラ予測のために4タップ3次補間フィルタを適用するとさらに決定し得る。たとえば、プロセスは、いずれの参照ピクセル平滑化も実行せずに、1つまたは複数の参照ピクセルを予測または補間するために4タップ3次フィルタを適用し得る。
【0142】
動作506が角度オフセットminDistVerHorがしきい値intraHorVerDistThres[nTbS]よりも大きいと決定する場合(たとえば、minDistVerHor>intraHorVerDistThres[nTbS])、プロセスはその後、動作508において、図3の例示的なMDISプロセスに関して前に説明したように、整数角度モードが現在コーディングされているブロックのイントラ予測モード中に存在するかどうかを決定し得る。
【0143】
一例では、動作508が、整数角度モードが現在コーディングされているブロックのイントラ予測モード中に存在すると決定するとき、プロセスは、動作509において、[1 2 1]ローパスフィルタを使用して参照ピクセル平滑化を実行し、補間フィルタリングを実行しないと決定し得る。プロセスは、次いで、[1 2 1]フィルタを使用して参照ピクセルを平滑化するために参照ピクセル平滑化を実行した後で動作509において終了し得る。補間は実行されず、平滑化された参照ピクセルは、現在コーディングされているブロックに対するイントラ予測のために直接的にコピーされる。
【0144】
一例では、動作508が、分数(たとえば、非整数)角度モードが現在コーディングされているブロックのイントラ予測モード中に存在すると決定するとき、プロセスは動作510に進み、ブロックの幅がしきい値T以上であるかどうか、および/またはブロックの高さがしきい値T以上であるかどうかを決定し得る。いくつかの例では、動作510は、ブロックの幅およびブロックの高さのうちのどれがしきい値T以上であるかを決定することを含み得る。いくつかの例では、しきい値Tの値は、所定の値、たとえば、16、32、64、または1つもしくは複数の他の所定の値であってよい。
【0145】
動作510においてブロックの幅およびブロックの高さがしきい値T以上であると決定された場合(たとえば、高さ≧T&&幅≧T)、プロセスはその後、動作512において、参照ピクセル平滑化を実行しないと決定し得、現在コーディングされているブロックのイントラ予測に対して6タップガウス平滑化補間フィルタを適用することによって終了する。たとえば、プロセスは、6タップガウス平滑化補間フィルタを適用して、いずれの参照ピクセル平滑化もなしに、現在ブロックの1つまたは複数のピクセルを予測し得る。
【0146】
ブロックの幅またはブロックの高さがしきい値T以上でない場合(たとえば、高さ<Tおよび/または幅<T)、プロセスは、動作514において、参照ピクセル平滑化を実行しないと決定し得、4タップガウス平滑化補間フィルタを適用することによって終了する。たとえば、プロセスは、4タップ(6ビット)ガウス平滑化補間フィルタを適用して、いずれの参照ピクセル平滑化もなしに、現在コーディングされているブロックの1つまたは複数のピクセルを予測し得る。前に述べたように、たとえば、動作514は、現在コーディングされているブロックが比較的小さいサイズを有すると決定する動作510に応答してトリガされるため、動作514の4タップガウス平滑化補間フィルタは、動作512の6タップガウス平滑化補間フィルタよりも低い程度の平滑化を適用し得る。同様に、6タップガウス平滑化補間フィルタがより高い程度の平滑化を適用し、より大きいブロックサイズがより小さいブロックサイズと比較してより大きい平滑化から利益を得ることができることを想起すると、動作512の6タップガウス平滑化補間フィルタは、現在コーディングされているブロックが比較的大きいブロックサイズを有すると決定する動作510に応答するに部分的に基づいてトリガされ得る。
【0147】
場合によっては、動作514において適用される例示的な6タップガウス平滑化補間フィルタは、[1 4 6 4 1]ローパスフィルタおよび双線形フィルタの1つまたは複数の異なる位相の畳み込みを使用して導出され得る。
【0148】
動作508が現在コーディングされているブロックのイントラ予測モードが整数角度モードであると決定するシナリオに関してなど、1つの例示的な例では、図5に示す動作509は、より大きいタップの平滑化フィルタ(たとえば、[1 4 6 4 1]ローパスフィルタ、図示せず)か動作509に関連して適用されるとして現在示されている、より小さい[1 2 1]ローパスフィルタかの選択を含めるように拡張され得る。いくつかの例では、より大きいタップ[1 4 6 4 1]フィルタかより小さいタップ[1 2 1]フィルタかを選択するための選択基準は、動作510において実装された選択基準と同じまたは同様の様式で実行され得る。たとえば、現在コーディングされているブロックの幅および現在コーディングされているブロックの高さのうちの1つまたは複数を少なくとも1つのしきい値と比較することができ、(たとえば、しきい値以上であると決定された)より大きいブロックは、イントラ予測により大きいタップ[1 4 6 4 1]フィルタを適用させ、(たとえば、しきい値未満であると決定された)より小さいブロックは、イントラ予測により小さいタップ[1 2 1]フィルタを適用させる。場合によっては、ブロックサイズなどの要因に基づいているとして動作510に関して説明する同じまたは同様の明示的および/または明示的選択プロセスのうちの1つまたは複数が、現在コーディングされているブロックサイズに基づいて異なるタップフィルタおよび/または程度から選択するために、動作509の整数角度参照ピクセル平滑化が拡張されるそのような例において使用され得る。
【0149】
いくつかの例では、本明細書で説明するシステムおよび技法は、参照ライン拡張のために、たとえば、参照ライン拡張が4タップ3次補間に基づくとき潜在的に生じるとして上記で論じた過剰平滑化問題を回避または最小限に抑え、その後、イントラ予測中に別の補間を受ける、弱いフィルタリング補間を実行し得る。たとえば、(たとえば、垂直ピクセル参照の最近の近隣ピクセル値に基づいて補間された)参照ライン拡張ピクセルに対する値を補間するために4タップ3次フィルタリングを使用する代わりに、場合によっては参照ラインを拡張する文脈で生じ得る考えられる過剰平滑化問題を低減または軽減するために、より弱いフィルタベースの補間が使用され得る。参照ライン拡張ピクセルの値を決定するためにより弱い補間を利用することによって、残りのイントラ予測プロセス、および本明細書で説明するその関連する補間および平滑化動作は、前述の過剰平滑化の問題を生じることなく、同じ状態に留まり得る。
【0150】
1つの例示的な例では、(たとえば、適切なウィンドウ処理を用いた)4タップシンクベース補間が、参照ライン拡張ピクセルに対する補間値を計算するための弱い補間を提供するために使用され得る。いくつかの例では、4タップシンクベースの補間は、(たとえば、より高いカットオフ周波数を有する)4タップ3次補間など、3次補間よりも弱くてよい。ある例示的な例では、参照ライン拡張ピクセルに対する弱い補間は、6ビット4タップの弱フィルタとして提供され得、そのフィルタの一例が以下に提供される(位置(32-i)/32における係数はi/32のミラーバージョンであることに留意されたい):
{0,64,0,0},//0/32位置
{-1,64,1,0},//1/32位置
{-3,65,3,-1},//2/32位置
{-3,63,5,-1},//3/32位置
{-4,63,6,-1},//4/32位置
{-5,62,9,-2},//5/32位置
{-5,60,11,-2},//6/32位置
{-5,58,13,-2},//7/32位置
{-6,57,16,-3},//8/32位置
{-6,55,18,-3},//9/32位置
{-7,54,21,-4},//10/32位置
{-7,52,23,-4},//11/32位置
{-6,48,26,-4},//12/32位置
{-7,47,29,-5},//13/32位置
{-6,43,32,-5},//14/32位置
{-6,41,34,-5},//15/32位置
{-5,37,37,-5},//16/32位置
【0151】
これらのシステムおよび技法は、予測(たとえば、イントラ予測)が拡張補間フィルタを使用して実行されることを可能にする。本明細書で説明するシステムおよび技法は、いくつかの例では、複数の補間フィルタを利用する他の技法に優る利点を提供し得る。たとえば、場合によっては、たとえば、異なる補間フィルタタップを備えた複数の補間フィルタが1つのブロック、スライス、タイル、および/またはピクチャ内に適用され得る。一例では、補間フィルタタイプおよび補間フィルタタップ(長さ)は、ブロックの高さおよび/幅、ブロック形状(幅と高さの比率)、ブロックエリアサイズ、イントラ予測モード、および/または、限定はしないが、再構築されたサンプル値およびイントラ予測モードなどを含む、近隣復号情報に依存し得る。そのような場合、イントラ予測が垂直状角度イントラ予測モードであるとき、また幅が8以下であるかまたは他のサイズである場合、6タップ6次補間フィルタが使用され、場合によっては、4タップガウス補間フィルタが使用される。イントラ予測が水平状イントラ予測モードであるとき、また幅が8以下であるかまたは他のサイズである場合、6タップ6次補間フィルタが使用され、場合によっては、4タップガウス補間フィルタが使用される。本明細書で説明するシステムおよび技法を使用する一例では、コーディングブロックの幅および高さがしきい値T以上である場合、6タップガウスフィルタが使用され(また、ピクセル平滑化は適用されない)、場合によっては、4タップガウスフィルタが使用される(また、ピクセル平滑化は適用されない)。
【0152】
図6は、画像および/またはビデオデータを処理するためのプロセス600の一例を示すフローチャートである。ブロック602において、プロセス600は、ビデオデータのブロックを予測するためのイントラ予測モードを決定するステップを含み得る。
【0153】
ブロック604において、プロセス600は、ビデオデータのブロックに対して使用するための平滑化フィルタのタイプを決定するステップを含み得る。たとえば、プロセス600は、ビデオデータのブロックの幅およびビデオデータのブロックの高さのうちの少なくとも1つを第1のしきい値と比較することに少なくとも部分的に基づいて、平滑化フィルタのタイプを決定し得る。いくつかの態様では、平滑化フィルタのタイプは、ビデオビットストリーム中でシグナリングされる。場合によっては、平滑化フィルタのタイプは、予測ブロック、コーディングブロック、コーディングツリーユニット(CTU)、スライス、またはシーケンスのセットの個々のセットに対してシグナリングされる。ブロック606において、プロセス600は、平滑化フィルタの決定されたタイプとイントラ予測モードとを使用して、ビデオデータのブロックに対するイントラ予測を実行するステップを含み得る。
【0154】
いくつかの例では、プロセス600は、ブロックの幅、ブロックの高さ、またはブロックの幅および高さが第1のしきい値よりも大きいとの決定に少なくとも部分的に基づいて、平滑化フィルタの決定されたタイプとして第1の平滑化補間フィルタを使用するステップを含み得る。1つの例示的な例では、第1の平滑化補間フィルタは6タップガウスフィルタを含む。そのような例では、プロセス600は、第1の平滑化補間フィルタを使用して、ビデオデータのブロックのイントラ予測のための参照ピクセルを決定するステップをさらに含み得る。
【0155】
いくつかの例では、プロセス600は、ブロックの幅、ブロックの高さ、またはブロックの幅および高さが第1のしきい値以下である(たとえば、それ未満である)との決定に少なくとも部分的に基づいて、平滑化フィルタの決定されたタイプとして第2の平滑化補間フィルタを使用するステップを含み得る。1つの例示的な例では、第2の平滑化補間フィルタは4タップガウスフィルタを含む。そのような例では、プロセス600は、第2の平滑化補間フィルタを使用して、ビデオデータのブロックのイントラ予測のための参照ピクセルを決定するステップをさらに含み得る。
【0156】
場合によっては、プロセス600は、イントラ予測モードの角度方向と垂直イントラ予測モードおよび水平イントラ予測モードのうちの1つとの間の最小オフセットを決定するステップを含み得る。プロセス600は、決定された最小オフセットと第2のしきい値と比較することに基づいて、ビデオデータのブロックに対して使用するための平滑化フィルタのタイプを決定するステップをさらに含み得る。一例では、プロセス600は、決定された最小オフセットが第2のしきい値よりも大きいとの決定とイントラ予測モードが整数値参照ピクセル位置に関連付けられた整数角度モードであるとの決定とに少なくとも部分的に基づいて、平滑化フィルタのタイプとしてローパスフィルタを決定するステップを含み得る。1つの例示的な例では、ローパスフィルタは、[1 2 1]フィルタを含み、補間なしに参照ピクセル平滑化を実行する。
【0157】
別の例では、プロセス600は、決定された最小オフセットが第2のしきい値よりも大きいとの決定とイントラ予測モードが分数値参照ピクセル位置に関連付けられた分数角度モードであるとの決定とに少なくとも部分的に基づいて、平滑化フィルタのタイプとしてガウスフィルタを決定するステップを含み得る。場合によっては、ガウスフィルタは、参照ピクセル平滑化なしに、平滑化補間を実行する。1つの例示的な例では、ガウスフィルタは、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値よりも大きいとの決定に基づいて、6タップガウスフィルタを含む。別の例示的な例では、ガウスフィルタは、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値以下であるとの決定に基づいて、4タップガウスフィルタを含む。
【0158】
いくつかの態様では、プロセス600は、決定された最小オフセットが第2のしきい値以下である(たとえば、それ未満である)との決定に少なくとも部分的に基づいて、平滑化フィルタの決定されたタイプとして補間フィルタを使用するステップを含み得る。1つの例示的な例では、補間フィルタは4タップ3次フィルタを含む。プロセス600は、参照ピクセル平滑化を適用せずに、補間フィルタを使用してビデオデータのブロックに対するイントラ予測を実行するステップをさらに含み得る。
【0159】
いくつかの例では、プロセス600は、イントラ予測モードが整数角度モードであるとの決定と決定された最小オフセットが第2のしきい値よりも大きいとの決定とに少なくとも部分的に基づいて、平滑化フィルタのタイプとしてローパスフィルタを決定するステップを含み得る。場合によっては、プロセス600は、ブロックの幅、ブロックの高さ、またはブロックの幅および高さが第1のしきい値よりも大きいとの決定に少なくとも部分的に基づいて、大きいタップのローパスフィルタを使用して参照ピクセル平滑化を実行するステップを含み得る。大きいタップのローパスフィルタは、小さいタップのローパスフィルタよりも高い程度の参照ピクセル平滑化を適用する。場合によっては、プロセス600は、ブロックの幅、ブロックの高さ、またはブロックの幅および高さが第1のしきい値以下である(たとえば、それ未満である)との決定に少なくとも部分的に基づいて、小さいタップのローパスフィルタを使用して参照ピクセル平滑化を実行するステップを含み得る。小さいタップのローパスフィルタは、大きいタップのローパスフィルタよりも低い程度の参照ピクセル平滑化を適用する。
【0160】
場合によっては、プロセス600は、イントラ予測モードの傾斜をブロックの幅およびブロックの高さから決定された1つまたは複数のピクセル位置と比較することに少なくとも部分的に基づいて、イントラ予測モードが整数角度モードであると決定するステップを含み得る。
【0161】
いくつかの態様では、プロセス600は、イントラ予測モードの角度方向と垂直イントラ予測モードまたは水平イントラ予測モードとの間のオフセットが第2のしきい値未満であると決定するステップを含み得る。プロセス600は、イントラ予測モードの角度方向と垂直イントラ予測モードまたは水平イントラ予測モードとの間のオフセットが第2のしきい値未満であると決定することに基づいて、3次補間フィルタを使用してビデオデータのブロックに対するイントラ予測を実行するステップをさらに含み得る。
【0162】
いくつかの例では、プロセス600は、弱い補間フィルタを使用して参照ライン拡張を実行するステップを含み得る。場合によっては、イントラ予測を実行するための3次補間フィルタの使用に先だって参照ライン拡張を実行するために、弱い補間フィルタが使用される。場合によっては、3次補間フィルタは、弱い補間フィルタよりも高いカットオフ周波数を有し、弱い補間フィルタよりも高い程度の平滑化を適用する。いくつかの態様では、弱い補間フィルタは、4タップシンクベース補間フィルタおよび6ビット4タップ補間フィルタを含む。
【0163】
いくつかの態様では、プロセス600は、ビデオビットストリーム中で明示的にシグナリングされる情報を使用せずに、ブロックの幅、ブロックの高さ、またはブロックの幅および高さに基づいて、平滑化フィルタのタイプを決定するステップを含み得る。
【0164】
場合によっては、プロセス600は、復号デバイス(たとえば、図1および図8の復号デバイス112)によって実行され得る。たとえば、プロセス600は、ビデオデータのブロックに関する残差データのブロックを決定するステップをさらに含み得る。プロセス600は、残差データのブロックとビデオデータのブロックに対するイントラ予測を実行することに基づいて決定された予測ブロックとを使用して、ビデオデータのブロックを復号するステップを含み得る。
【0165】
場合によっては、プロセス600は、符号化デバイス(たとえば、図1および図7の符号化デバイス104)によって実行され得る。たとえば、プロセス600は、ビデオデータのブロックに関連する情報を含む、符号化ビデオビットストリームを生成するステップを含み得る。いくつかの例では、プロセス600は、(たとえば、装置の少なくとも1つのメモリに)符号化ビデオビットストリームを記憶するステップを含み得る。いくつかの例では、プロセス600は、(たとえば、装置の送信機を使用して)符号化ビデオビットストリームを送信するステップを含み得る。
【0166】
いくつかの実装形態では、本明細書で説明するするプロセス(または方法)は、図1に示すシステム100などのコンピューティングデバイスまたは装置によって実行され得る。たとえば、プロセスは、図1および図8に示す符号化デバイス104によって、別のビデオソース側デバイスもしくはビデオ送信デバイスによって、図1および図9に示す復号デバイス112によって、ならびに/またはプレーヤデバイス、ディスプレイ、もしくは任意の他のクライアント側デバイスなど、別のクライアント側デバイスによって実行され得る。場合によっては、コンピューティングデバイスまたは装置は、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、または本明細書で説明するプロセスのステップを行うように構成されたデバイスの他の構成要素を含み得る。いくつかの例では、コンピューティングデバイスまたは装置は、ビデオフレームを含むビデオデータ(たとえば、ビデオシーケンス)をキャプチャするように構成されたカメラを含み得る。いくつかの例では、ビデオデータをキャプチャするカメラまたは他のキャプチャデバイスは、コンピューティングデバイスとは別個であり、その場合、コンピューティングデバイスは、キャプチャされたビデオデータを受信または取得する。コンピューティングデバイスは、ビデオデータを通信するように構成されたネットワークインターフェースをさらに含み得る。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータまたは他のタイプのデータを通信するように構成され得る。いくつかの例では、コンピューティングデバイスまたは装置は、ビデオビットストリームのピクチャのサンプルなどの出力ビデオコンテンツを表示するためのディスプレイを含み得る。
【0167】
プロセスは、論理フロー図に関して説明され、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せで実装され得る動作のシーケンスを表す。コンピュータ命令の文脈では、動作は、1つまたは複数のプロセッサによって実行されると、記載された動作を実行する、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実行するかまたは特定のデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が説明される順序は、限定として解釈されることを意図せず、説明する任意の数の動作は、プロセスを実装するために任意の順序で、かつ/または並列に組み合わせられ得る。
【0168】
加えて、プロセスは、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行することができ、1つまたは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで、まとめて実行するコード(たとえば、実行可能命令、1つもしくは複数のコンピュータプログラム、または1つもしくは複数のアプリケーション)として実装することができる。上述のように、コードは、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形で、コンピュータ可読記憶媒体または機械可読記憶媒体に記憶され得る。コンピュータ可読記憶媒体または機械可読記憶媒体は非一時的であってよい。
【0169】
本明細書で説明するコーディング技法は、例示的なビデオ符号化および復号システム(たとえば、システム100)において実装され得る。いくつかの例では、システムは、宛先デバイスによって後で復号されるべき符号化ビデオデータを提供するソースデバイスを含む。具体的には、ソースデバイスは、ビデオデータを、コンピュータ可読媒体を介して宛先デバイスに提供する。ソースデバイスおよび宛先デバイスは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどを含む、幅広いデバイスのいずれかを備えてよい。場合によっては、ソースデバイスおよび宛先デバイスは、ワイヤレス通信のために装備されてよい。
【0170】
宛先デバイスは、復号されるべき符号化ビデオデータを、コンピュータ可読媒体を介して受信し得る。コンピュータ可読媒体は、ソースデバイスから宛先デバイスへ符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体は、ソースデバイスが符号化ビデオデータをリアルタイムで宛先デバイスに直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイスに送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレス通信媒体またはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイスから宛先デバイスへの通信を容易にするために有用であり得る任意の他の機器を含み得る。
【0171】
いくつかの例では、符号化されたデータは、出力インターフェースから記憶デバイスに出力され得る。同様に、符号化されたデータは、入力インターフェースによって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体などの、分散されるかまたはローカルにアクセスされる様々なデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイスは、ソースデバイスによって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイスは、ストリーミングまたはダウンロードを介して記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイスに送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワークアタッチトストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイスは、インターネット接続を含む任意の標準的なデータ接続を通じて符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適したワイヤレスチャネル(たとえば、Wi-Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。記憶デバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【0172】
本開示の技法は、ワイヤレスの用途または設定に必ずしも限定されるとは限らない。技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のうちのいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システムは、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0173】
一例では、ソースデバイスは、ビデオソース、ビデオエンコーダ、および出力インターフェースを含む。宛先デバイスは、入力インターフェース、ビデオデコーダ、およびディスプレイデバイスを含み得る。ソースデバイスのビデオエンコーダは、本明細書で開示する技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または配置を含み得る。たとえば、ソースデバイスは、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイスは、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【0174】
上記の例示的なシステムは一例にすぎない。並行してビデオデータを処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法はビデオ符号化デバイスによって実行されるが、技法はまた、通常は「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実行され得る。さらに、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイスおよび宛先デバイスは、ソースデバイスが宛先デバイスに送信するためのコーディングされたビデオデータを生成する、そのようなコーディングデバイスの例にすぎない。いくつかの例では、ソースデバイスおよび宛先デバイスは、デバイスの各々がビデオ符号化および復号構成要素を含むように、実質的に対称的に動作し得る。したがって、例示的なシステムは、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのために、ビデオデバイス間の一方向または双方向のビデオ送信をサポートし得る。
【0175】
ビデオソースは、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソースは、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組合せを生成し得る。場合によっては、ビデオソースがビデオカメラである場合、ソースデバイスおよび宛先デバイスは、いわゆるカメラフォンまたはビデオフォンを形成し得る。しかしながら、上述のように、本開示で説明する技法は、一般にビデオコーディングに適用可能であることがあり、ワイヤレスおよび/またはワイヤードの適用例に適用され得る。各場合において、キャプチャされた、プリキャプチャされた、またはコンピュータ生成されたビデオは、ビデオエンコーダによって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェースによってコンピュータ可読媒体上に出力され得る。
【0176】
述べたように、コンピュータ可読媒体は、ワイヤレス放送もしくはワイヤードネットワーク送信などの一時的媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスクなどの記憶媒体(すなわち、非一時的記憶媒体)、あるいは他のコンピュータ可読媒体を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、たとえば、ネットワーク送信を介して、ソースデバイスから符号化ビデオデータを受信し、符号化ビデオデータを宛先デバイスに提供し得る。同様に、ディスクスタンピング施設などの媒体製造施設のコンピューティングデバイスは、ソースデバイスから符号化ビデオデータを受信し、符号化ビデオデータを含むディスクを製造し得る。したがって、コンピュータ可読媒体は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むものと理解され得る。
【0177】
宛先デバイスの入力インターフェースは、コンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ブロックおよび他のコーディングされたユニット、たとえば、ピクチャグループ(GOP)の特性および/または処理を記述するシンタックス要素を含む、ビデオエンコーダによって定義されるシンタックス情報を含んでもよく、シンタックス情報はビデオデコーダによっても使用される。ディスプレイデバイスは、復号ビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのうちのいずれかを備え得る。本出願の様々な実施形態が説明された。
【0178】
符号化デバイス104および復号デバイス112の具体的な詳細が、それぞれ、図8および図9に示される。図8は、本開示で説明する技法のうちの1つまたは複数を実装し得る例示的な符号化デバイス104を示すブロック図である。符号化デバイス104は、たとえば、本明細書で説明するシンタックス構造(たとえば、VPS、SPS、PPS、または他のシンタックス要素のシンタックス構造)を生成し得る。符号化デバイス104は、ビデオスライス内のビデオブロックのイントラ予測およびインター予測コーディングを実行し得る。前に説明したように、イントラコーディングは、空間予測に少なくとも部分的に依拠して、所与のビデオフレームまたはピクチャ内の空間的冗長性を低減または除去する。インターコーディングは、ビデオシーケンスの隣接するまたは取り囲むフレーム内の時間的冗長性を低減または除去するために、時間予測に少なくとも部分的に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのうちのいずれかを指すことがある。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのうちのいずれかを指すことがある。
【0179】
符号化デバイス104は、区分ユニット35、予測処理ユニット41、フィルタユニット63、ピクチャメモリ64、加算器50、変換処理ユニット52、量子化ユニット54、およびエントロピー符号化ユニット56を含む。予測処理ユニット41は、動き推定ユニット42、動き補償ユニット44、およびイントラ予測処理ユニット46を含む。ビデオブロック再構築のために、符号化デバイス104はまた、逆量子化(inverse quantization)ユニット58、逆変換処理ユニット60、および加算器62を含む。フィルタユニット63は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表すことが意図される。フィルタユニット63がループ内フィルタであるものとして図8に示されるが、他の構成では、フィルタユニット63はループ後フィルタとして実装されてよい。後処理デバイス57は、符号化デバイス104によって生成された符号化ビデオデータに対して追加の処理を実行し得る。本開示の技法は、いくつかの事例では、符号化デバイス104によって実装され得る。しかしながら、他の事例では、本開示の技法のうちの1つまたは複数は、後処理デバイス57によって実装され得る。
【0180】
図8に示すように、符号化デバイス104はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。区分することはまた、スライス、スライスセグメント、タイル、または他のもっと大きい単位に区分すること、ならびに、たとえば、LCUおよびCUの4分木構造によるビデオブロック区分を含み得る。符号化デバイス104は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(また場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、誤差結果(たとえば、コーディングレート、およびひずみのレベルなど)に基づいて、現在ビデオブロックに対して、複数のイントラ予測コーディングモードのうちの1つ、または複数のインター予測コーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、残差ブロックデータを生成するために加算器50に、また参照ピクチャとして使用するための符号化ブロックを再構築するために加算器62に、得られたイントラまたはインターコーディングされたブロックを提供し得る。
【0181】
予測処理ユニット41内のイントラ予測処理ユニット46は、空間圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライスの中の1つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照ピクチャの中の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実行する。
【0182】
動き推定ユニット42は、ビデオシーケンス用の所定のパターンに従ってビデオスライス用のインター予測モードを決定するように構成され得る。所定のパターンは、シーケンスの中のビデオスライスを、Pスライス、Bスライス、またはGPBスライスとして指定し得る。動き推定ユニット42および動き補償ユニット44は高集積され得るが、概念的な目的のために別々に示される。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックの予測ユニット(PU)の変位を示し得る。
【0183】
予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUと厳密に一致することが判明したブロックである。いくつかの例では、符号化デバイス104は、ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置に対する値を計算し得る。たとえば、符号化デバイス104は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実行することができ、分数ピクセル位置を有する動きベクトルを出力することができる。
【0184】
動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコーディングされたスライスの中のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、その各々がピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得る。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44へ送る。
【0185】
動き補償ユニット44によって実行される動き補償は、場合によっては、サブピクセル精度への補間を実行する、動き推定によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴う場合がある。現在ビデオブロックのPUの動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリスト内で動きベクトルが指す予測ブロックの位置を特定し得る。符号化デバイス104は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックに関する残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際に復号デバイス112が使用するための、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成し得る。
【0186】
イントラ予測処理ユニット46は、上記で説明したように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。具体的には、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パスの間に、様々なイントラ予測モードを使用して現在ブロックを符号化してもよく、イントラ予測処理ユニット46は、テストされたモードから使用すべき適切なイントラ予測モードを選択してもよい。たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードに対してレートひずみ分析を使用してレートひずみ値を計算してもよく、テストされたモードの中から最良のレートひずみ特性を有するイントラ予測モードを選択してもよい。レートひずみ分析は、一般に、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されたビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックにとって最良のレートひずみ値を示すかを決定するために、様々な符号化ブロックに対するひずみおよびレートから比を計算し得る。
【0187】
いずれの場合も、ブロックのためのイントラ予測モードを選択した後、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。符号化デバイス104は、様々なブロックのための符号化コンテキストの定義、ならびにコンテキストの各々に対して使用すべき最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示を、送信されるビットストリーム構成データの中に含め得る。ビットストリーム構成データは、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)を含み得る。
【0188】
予測処理ユニット41がインター予測またはイントラ予測のいずれかを介して現在ビデオブロックのための予測ブロックを生成した後、符号化デバイス104は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロックの中の残差ビデオデータは、1つまたは複数のTUに含められ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域にコンバートし得る。
【0189】
変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、変換係数を量子化してビットレートをさらに低減する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調節することによって修正され得る。いくつかの例では、量子化ユニット54は次いで、量子化された変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
【0190】
量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化技法を実行することができる。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビットストリームは、復号デバイス112へ送信されてよく、または復号デバイス112による後の送信もしくは取出しのためにアーカイブされてもよい。エントロピー符号化ユニット56はまた、コーディングされている現在ビデオスライスの動きベクトルおよび他のシンタックス要素をエントロピー符号化し得る。
【0191】
逆量子化ユニット58および逆変換処理ユニット60は、参照ピクチャの参照ブロックとして後で使用するためのピクセル領域における残差ブロックを再構築するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット44は、参照ピクチャリスト内の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、1つまたは複数の補間フィルタを再構築された残差ブロックに適用し得る。加算器62は、ピクチャメモリ64に記憶するための参照ブロックを生成するために、動き補償ユニット44によって生成された動き補償予測ブロックに再構築された残差ブロックを加算する。参照ブロックは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するための参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る。
【0192】
このようにして、図8の符号化デバイス104は、本明細書で説明する技法を実行するように構成されたビデオエンコーダの一例を表す。たとえば、符号化デバイス104は、本明細書で説明するプロセスを含む、本明細書で説明する技法のうちのいずれをも実行することができる。場合によっては、本開示の技法のうちのいくつかはまた、後処理デバイス57によって実装され得る。
【0193】
図9は、例示的復号デバイス112を示すブロック図である。復号デバイス112は、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、フィルタユニット91、およびピクチャメモリ92を含む。予測処理ユニット81は、動き補償ユニット82およびイントラ予測処理ユニット84を含む。復号デバイス112は、いくつかの例では、図8からの符号化デバイス104に関して説明した符号化パスとは全般に逆の復号パスを実行し得る。
【0194】
復号プロセスの間、復号デバイス112は、符号化デバイス104によって送られた符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを受信する。いくつかの実施形態では、復号デバイス112は、符号化デバイス104から符号化ビデオビットストリームを受信し得る。いくつかの実施形態では、復号デバイス112は、サーバ、媒体認識ネットワーク要素(MANE)、ビデオエディタ/スプライサ、または上記で説明された技法のうちの1つもしくは複数を実装するように構成された他のそのようなデバイスなどのネットワークエンティティ79から、符号化ビデオビットストリームを受信し得る。ネットワークエンティティ79は、符号化デバイス104を含んでもよく、または含まなくてもよい。本開示で説明する技法のうちのいくつかは、ネットワークエンティティ79が符号化ビデオビットストリームを復号デバイス112に送信する前に、ネットワークエンティティ79によって実装され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ79および復号デバイス112は、別個のデバイスの一部であり得るが、他の事例では、ネットワークエンティティ79に関して説明する機能は、復号デバイス112を備える同じデバイスによって実行され得る。
【0195】
復号デバイス112のエントロピー復号ユニット80は、ビットストリームをエントロピー復号して、量子化された係数、動きベクトル、および他のシンタックス要素を生成する。エントロピー復号ユニット80は、動きベクトルおよび他のシンタックス要素を予測処理ユニット81に転送する。復号デバイス112は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。エントロピー復号ユニット80は、VPS、SPS、およびPPSなどの1つまたは複数のパラメータセットの中の固定長シンタックス要素と可変長シンタックス要素の両方を処理およびパースし得る。
【0196】
ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックに関する予測データを生成し得る。ビデオフレームがインターコーディングされた(すなわち、B、PまたはGPB)スライスとしてコーディングされたとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリスト内の参照ピクチャのうちの1つから生成され得る。復号デバイス112は、ピクチャメモリ92に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、すなわち、リスト0およびリスト1を構築し得る。
【0197】
動き補償ユニット82は、動きベクトルおよび他のシンタックス要素をパースすることによって現在ビデオスライスのビデオブロックに関する予測情報を決定し、復号されている現在ビデオブロックに対する予測ブロックを生成するために予測情報を使用する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスのための1つまたは複数の参照ピクチャリストについての構築情報、スライスのインター符号化ビデオブロックごとの動きベクトル、スライスのインターコーディングされたビデオブロックごとのインター予測ステータス、および現在ビデオスライスの中のビデオブロックを復号するための他の情報を決定するために、パラメータセットの中の1つまたは複数のシンタックス要素を使用し得る。
【0198】
動き補償ユニット82は、補間フィルタに基づいて補間を実行することもできる。動き補償ユニット82は、ビデオブロックの符号化の間に符号化デバイス104によって使用されたような補間フィルタを使用して、参照ブロックのサブ整数ピクセルに対する補間値を計算し得る。この場合、動き補償ユニット82は、符号化デバイス104によって使用された補間フィルタを、受信されたシンタックス要素から決定してよく、予測ブロックを生成するためにその補間フィルタを使用し得る。
【0199】
逆量子化ユニット86は、ビットストリームの中で提供されエントロピー復号ユニット80によって復号された量子化変換係数を逆量子化または量子化解除する。逆量子化プロセスは、ビデオスライス中の各ビデオブロックについて符号化デバイス104によって計算される量子化パラメータを使用して量子化の程度を決定し、同様に、適用すべき逆量子化の程度を決定することを含み得る。逆変換処理ユニット88は、ピクセル領域における残差ブロックを生成するために、変換係数に逆変換(たとえば、逆DCTまたは他の好適な逆変換)、逆整数変換、または概念的に類似の逆変換プロセスを適用する。
【0200】
動き補償ユニット82が動きベクトルおよび他のシンタックス要素に基づいて現在ビデオブロックに対する予測ブロックを生成した後、復号デバイス112は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、(コーディングループの中またはコーディングループの後のいずれかの)ループフィルタも、ピクセル遷移を平滑化するために、またはビデオ品質を他の方法で改善するために使用され得る。フィルタユニット91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなどの、1つまたは複数のループフィルタを表すことを意図する。フィルタユニット91はループ内フィルタであるものとして図9に示されるが、他の構成では、フィルタユニット91は、ループ後フィルタとして実装されてよい。所与のフレームまたはピクチャの中の復号ビデオブロックは次いで、ピクチャメモリ92に記憶され、ピクチャメモリ92は、後続の動き補償のために使われる参照ピクチャを記憶する。ピクチャメモリ92はまた、図1に示すビデオ宛先デバイス122などのディスプレイデバイス上で後で提示できるように、復号ビデオを記憶する。
【0201】
このようにして、図9の復号デバイス112は、本明細書で説明した技法を実行するように構成されたビデオデコーダの一例を表す。たとえば、復号デバイス112は、本明細書で説明したプロセスを含む、本明細書で説明した技法のうちのいずれをも実行することができる。
【0202】
本明細書において使用される場合、「コンピュータ可読媒体」という用語は、限定はされないが、ポータブルまたは非ポータブルの記憶デバイス、光記憶デバイス、ならびに命令および/またはデータを記憶、収容、または搬送することができる様々な他の媒体を含む。コンピュータ可読媒体は、データを記憶することができ、ワイヤレスにまたはワイヤード接続を介して伝搬する搬送波および/または一時的な電子信号を含まない、非一時的媒体を含み得る。非一時的媒体の例は、限定はしないが、磁気ディスクもしくはテープ、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリ、またはメモリデバイスを含み得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表すことがある、コードおよび/または機械実行可能命令を記憶していることがある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡すことおよび/または受けることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介して渡され、転送され、または送信されてもよい。
【0203】
いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含むケーブルまたはワイヤレス信号を含み得る。しかしながら、言及されるとき、非一時的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、および信号それ自体などの媒体を明確に除く。
【0204】
本明細書で提供される実施形態および例の完全な理解を与えるために、上記の説明において具体的な詳細が提供されている。しかしながら、実施形態がこれらの具体的な詳細なしに実践され得ることが当業者によって理解されよう。説明を明快にするために、いくつかの事例では、本技術は、デバイスと、デバイス構成要素と、ソフトウェア、またはハードウェアとソフトウェアの組合せにおいて具現化された方法におけるステップまたはルーチンとを備える機能ブロックを含む個々の機能ブロックを含むものとして提示されることがある。図に示されるものおよび/または本明細書で説明されるもの以外の追加の構成要素が使用されてもよい。たとえば、不必要な詳細で実施形態を不明瞭にしないように、回路、システム、ネットワーク、プロセス、または他の構成要素がブロック図の形態で構成要素として示されることがある。他の事例では、実施形態を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、不必要な詳細なしに示されることがある。
【0205】
個々の実施形態が、フローチャート、流れ図、データフロー図、構造図、またはブロック図として示されるプロセスまたは方法として上で説明されることがある。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実行することができる。加えて、動作の順序は並べ替えられてよい。プロセスは、その動作が完了するときに終了するが、図に含まれない追加のステップを有することがある。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応するとき、その終了は、その関数が呼出し関数またはメイン関数に戻ることに対応することがある。
【0206】
上記で説明した例によるプロセスおよび方法は、記憶されたまたは他の方法でコンピュータ可読媒体から入手可能なコンピュータ実行可能命令を使用して実装され得る。そのような命令は、たとえば、汎用コンピュータ、専用コンピュータ、もしくは処理デバイスに特定の機能もしくは機能のグループを実行させるか、または特定の機能もしくは機能のグループを実行するように汎用コンピュータ、専用コンピュータ、もしくは処理デバイスを他の方法で構成する、命令およびデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、たとえば、アセンブリ言語、ファームウェア、ソースコードなどの、バイナリ、中間フォーマット命令であってもよい。命令、使用される情報、および/または説明された例による方法の間に作成される情報を記憶するために使用されることがあるコンピュータ可読媒体の例は、磁気または光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク接続された記憶デバイスなどを含む。
【0207】
これらの開示によるプロセスおよび方法を実装するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せを含むことができ、様々なフォームファクタのうちのいずれをもとることができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読媒体または機械可読媒体に記憶されてもよい。プロセッサは、必要なタスクを実行してもよい。フォームファクタの典型的な例は、ラップトップ、スマートフォン、携帯電話、タブレットデバイスまたは他の小型フォームファクタパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどを含む。本明細書で説明する機能は、周辺装置またはアドインカードにおいても具現化され得る。そのような機能は、さらなる例として、異なるチップの中の回路基板または単一のデバイスの中で実行される異なるプロセス上でも実装され得る。
【0208】
命令、そのような命令を伝えるための媒体、命令を実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、本開示で説明する機能を提供するための例示的な手段である。
【0209】
上記の説明では、本出願の態様はそれらの特定の実施形態に関して説明されているが、本出願がそれらに限定されないことを当業者は認識されよう。本出願の例示的な実施形態が本明細書で詳細に説明されたが、本発明の概念が他の方法で様々に具現化され採用され得ることと、従来技術によって限定される場合を除き、添付の特許請求の範囲がそのような変形を含むものと解釈されることが意図されることとを理解されたい。上記で説明された適用例の様々な特徴および態様は、個別にまたは一緒に使用され得る。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書で説明されるもの以外の任意の数の環境および適用例において利用され得る。したがって、本明細書および図面は、限定的ではなく例示的であると見なされるべきである。例示のために、方法は特定の順序で説明された。代替実施形態では、方法は説明された順序とは異なる順序で実行され得ることを諒解されたい。
【0210】
本明細書において使用される、未満(「<」)およびよりも大きい(「>」)という記号または用語は、本記述の範囲から逸脱することなく、それぞれ、以下(「≦」)および以上(「≧」)という記号で置き換えられ得ることを、当業者は諒解されよう。
【0211】
構成要素がいくつかの動作を実行する「ように構成される」ものとして説明される場合、そのような構成は、たとえば、動作を実行するように電子回路もしくは他のハードウェアを設計することによって、動作を実行するようにプログラマブル電子回路(たとえば、マイクロプロセッサ、または他の適切な電子回路)をプログラムすることによって、またはそれらの任意の組合せで達成され得る。
【0212】
「に結合された」という句は、直接もしくは間接的にのいずれかで別の構成要素に物理的に接続された任意の構成要素、および/または、直接もしくは間接的にのいずれかで別の構成要素と通信している(たとえば、ワイヤードもしくはワイヤレス接続および/または他の好適な通信インターフェースを介して他の構成要素に接続された)任意の構成要素を指す。
【0213】
セット「の少なくとも1つ」および/またはセットの「1つまたは複数」と記載する請求項の文言または他の文言は、セットの1つの要素またはセットの(任意の組合せでの)複数の要素が請求項を満足することを示す。たとえば、「AおよびBのうちの少なくとも1つ」を記載する請求項の文言は、A、B、またはAおよびBを意味する。別の例では、「A、B、およびCのうちの少なくとも1つ」を記載する請求項の文言は、A、B、C、またはAおよびB、またはAおよびC、またはBおよびC、またはAおよびBおよびCを意味する。セット「の少なくとも1つ」および/またはセットの「1つまたは複数」という文言は、セットに列挙される項目にセットを限定しない。たとえば、「AおよびBのうちの少なくとも1つ」を記述する請求項の文言は、A、B、またはAおよびBを意味することができ、加えて、AおよびBのセットに列挙されていない項目をさらに含むことができる。
【0214】
本明細書で開示する実施形態に関して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上記で説明された。そのような機能がハードウェアとして実装されるかまたはソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装決定は、本出願の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【0215】
本明細書で説明する技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのうちのいずれかにおいて実装され得る。モジュールまたは構成要素として説明される任意の特徴は、集積論理デバイスの中で一緒に、または個別であるが相互動作可能な論理デバイスとして別々に実装され得る。ソフトウェアにおいて実装される場合、技法は、実行されると、上記で説明した方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、FLASHメモリ、磁気または光データ記憶媒体などの、メモリまたはデータ記憶媒体を備え得る。技法は、追加または代替として、伝搬される信号または波などの、命令またはデータ構造の形でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、かつ/または実行され得る、コンピュータ可読通信媒体によって少なくとも部分的に実現されてもよい。
【0216】
プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路構成もしくは個別論理回路構成などの、1つまたは複数のプロセッサを含んでもよいプロセッサによって実行されてもよい。そのようなプロセッサは、本開示に記載された技法のいずれかを実行するように構成されてもよい。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明する技法の実装に好適な任意の他の構造もしくは装置のうちのいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明する機能は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内に設けられてもよく、または複合ビデオエンコーダデコーダ(コーデック)に組み込まれてもよい。
【0217】
本開示の説明のための例は、以下を含む。
【0218】
態様1: ビデオデータを処理する方法であって、ビデオデータのブロックを取得するステップと、イントラ予測モードを使用してブロックを処理するステップと、ブロックの幅および高さのうちの少なくとも1つに基づいて、ブロックに対して使用するための補間フィルタのタイプを決定するステップとを含む、方法。
【0219】
態様2: ベースのブロックの幅およびブロックの高さのうちの少なくとも1つがしきい値よりも大きいとの決定、ブロックに対して使用するための第1のタイプの補間フィルタを決定するステップと、第1のタイプの補間フィルタを使用して、ブロックのための参照ピクセルを決定するステップとをさらに含む、態様1の方法。
【0220】
態様3: 第1のタイプの補間フィルタが6タップガウスフィルタを含む、態様1の方法。
【0221】
態様4: ベースのブロックの幅およびブロックの高さのうちの少なくとも1つがしきい値以下であるとの決定、ブロックに対して使用するための第2のタイプの補間フィルタを決定するステップと、第2のタイプの補間フィルタを使用して、ブロックのための参照ピクセルを決定するステップとをさらに含む、態様1の方法。
【0222】
態様5: 第2のタイプの補間フィルタが4タップガウスフィルタを含む、態様4の方法。
【0223】
態様6: 補間フィルタのタイプがビデオビットストリーム中で明示的にシグナリングされる、態様1から5のいずれか1つの方法。
【0224】
態様7: 補間フィルタのタイプが、予測ブロック、コーディングブロック、コーディングツリーユニット(CTU)、スライス、またはシーケンス単位で明示的にシグナリングされる、態様6の方法。
【0225】
態様8: ビデオビットストリーム中で明示的にシグナリングされる情報を使用せずに、ブロックの幅および高さのうちの少なくとも1つに基づいて、補間フィルタのタイプを決定するステップをさらに含む、態様1から5のいずれか1つの方法。
【0226】
態様9: ビデオデータを記憶するように構成されたメモリと、プロセッサとを備えた装置であって、プロセッサが、ビデオデータのブロックを取得し、イントラ予測モードを使用してブロックを処理し、ブロックの幅および高さのうちの少なくとも1つに基づいて、ブロックに対して使用するための補間フィルタのタイプを決定するように構成される、装置。
【0227】
態様10: プロセッサが、ベースのブロックの幅およびブロックの高さのうちの少なくとも1つがしきい値よりも大きいとの決定、ブロックに対して使用するための第1のタイプの補間フィルタを決定し、第1のタイプの補間フィルタを使用して、ブロックのための参照ピクセルを決定するように構成される、態様9の装置。
【0228】
態様11: 第1のタイプの補間フィルタが6タップガウスフィルタを含む、態様9の装置。
【0229】
態様12: プロセッサが、ベースのブロックの幅およびブロックの高さのうちの少なくとも1つがしきい値以下であるとの決定、ブロックに対して使用するための第2のタイプの補間フィルタを決定し、第2のタイプの補間フィルタを使用して、ブロックのための参照ピクセルを決定するように構成される、態様9の装置。
【0230】
態様13: 第2のタイプの補間フィルタが4タップガウスフィルタである、態様12の装置。
【0231】
態様14: 補間フィルタのタイプがビデオビットストリーム中で明示的にシグナリングされる、態様9から13のいずれか1つの装置。
【0232】
態様15: 補間フィルタのタイプが、予測ブロック、コーディングブロック、コーディングツリーユニット(CTU)、スライス、またはシーケンス単位で明示的にシグナリングされる、態様14の装置。
【0233】
態様16: プロセッサが、ビデオビットストリーム中で明示的にシグナリングされる情報を使用せずに、ブロックの幅および高さのうちの少なくとも1つに基づいて、補間フィルタのタイプを決定するように構成される、態様9から13のいずれか1つの装置。
【0234】
態様17: 装置がエンコーダを含む、態様9から16のいずれか1つの装置。
【0235】
態様18: 装置がデコーダを含む、態様9から17のいずれか1つの装置。
【0236】
態様19: 装置がモバイルデバイスである、態様9から18のいずれか1つの装置。
【0237】
態様20: 装置が拡張現実デバイスである、態様9から19のいずれかの装置。
【0238】
態様21: ビデオデータを表示するように構成されたディスプレイをさらに備える、態様9から20のいずれか1つの装置。
【0239】
態様22: 1つまたは複数のピクチャをキャプチャするように構成されたカメラをさらに備える、態様9から21のいずれか1つの装置。
【0240】
態様23: プロセッサによって実行されると、態様1から22のいずれかの方法を実行する命令を記憶した、コンピュータ可読媒体。
【0241】
態様24: 態様1から態様22のいずれかの動作を実行するための手段を含む装置。
【0242】
態様25: ビデオデータを処理する方法であって、ビデオデータのブロックを取得するステップと、イントラ予測モードを使用してブロックを処理するステップと、ブロックの幅および高さのうちの少なくとも1つに基づいて、ブロックに対して使用するための平滑化フィルタのタイプを決定するステップとを含む、方法。
【0243】
態様26: イントラ予測モードの角度が整数角度かどうかを決定するステップであって、平滑化フィルタのタイプを決定するステップが、イントラ予測モードの角度が整数角度であるとの決定にさらに基づく、決定するステップをさらに含む、態様25の方法。
【0244】
態様27: ベースのブロックの幅およびブロックの高さのうちの少なくとも1つがしきい値よりも大きいとの決定、ブロックに対して使用するための第1のタイプの平滑化フィルタを決定するステップと、第1のタイプの平滑化フィルタを使用して、ブロックのための少なくとも1つの予測ピクセルを処理するステップとをさらに含む、態様25または26のいずれか1つの方法。
【0245】
態様28: 第1のタイプの平滑化フィルタが[1 4 6 4 1]フィルタを含む、態様27の方法。
【0246】
態様29: ベースのブロックの幅およびブロックの高さのうちの少なくとも1つがしきい値以下であるとの決定、ブロックに対して使用するための第2のタイプの平滑化フィルタを決定するステップと、第2のタイプの平滑化フィルタを使用して、ブロックのための少なくとも1つの予測ピクセルを処理するステップとをさらに含む、態様25または26のいずれか1つの方法。
【0247】
態様30: 第2のタイプの平滑化フィルタが[1 2 1]フィルタを含む、態様29の方法。
【0248】
態様31: 平滑化フィルタのタイプがビデオビットストリーム中で明示的にシグナリングされる、態様25から30のいずれか1つの方法。
【0249】
態様32: 補間フィルタのタイプが、予測ブロック、コーディングブロック、コーディングツリーユニット(CTU)、スライス、またはシーケンス単位で明示的にシグナリングされる、態様31の方法。
【0250】
態様33: ビデオビットストリーム中で明示的にシグナリングされる情報を使用せずに、ブロックの幅および高さのうちの少なくとも1つに基づいて、平滑化フィルタのタイプを決定するステップをさらに含む、態様25から30のいずれか1つの方法。
【0251】
態様34: ビデオデータを記憶するように構成されたメモリと、プロセッサとを備えた装置であって、プロセッサが、ビデオデータのブロックを取得し、イントラ予測モードを使用してブロックを処理し、ブロックの幅および高さのうちの少なくとも1つに基づいて、ブロックに対して使用するための平滑化フィルタのタイプを決定するように構成される、装置。
【0252】
態様35: プロセッサが、イントラ予測モードの角度が整数角度であるかどうかを決定することであって、平滑化フィルタのタイプを決定することが、イントラ予測モードの角度が整数角度であるとの決定にさらに基づく、決定することを行うように構成される、態様34の装置。
【0253】
態様36: プロセッサが、ベースのブロックの幅およびブロックの高さのうちの少なくとも1つがしきい値よりも大きいとの決定、ブロックに対して使用するための第1のタイプの平滑化フィルタを決定し、第1のタイプの平滑化フィルタを使用してブロックのための少なくとも1つの予測ピクセルを処理するように構成される、態様34または35のいずれか1つの装置。
【0254】
態様37: 第1のタイプの平滑化フィルタが[1 4 6 4 1]フィルタを含む、態様36の装置。
【0255】
態様38: プロセッサが、ベースのブロックの幅およびブロックの高さのうちの少なくとも1つがしきい値以下であるとの決定、ブロックに対して使用するための第2のタイプの平滑化フィルタを決定し、第2のタイプの平滑化フィルタを使用して、ブロックのための少なくとも1つの予測ピクセルを処理するように構成される、態様34または35のいずれか1つの装置。
【0256】
態様39: 第2のタイプの平滑化フィルタが[1 2 1]フィルタを含む、態様38の装置。
【0257】
態様40: 平滑化フィルタのタイプがビデオビットストリーム中で明示的にシグナリングされる、態様34から39のいずれか1つの装置。
【0258】
態様41: 補間フィルタのタイプが、予測ブロック、コーディングブロック、コーディングツリーユニット(CTU)、スライス、またはシーケンス単位で明示的にシグナリングされる、態様40の装置。
【0259】
態様42: プロセッサが、ビデオビットストリーム中で明示的にシグナリングされる情報を使用せずに、ブロックの幅および高さのうちの少なくとも1つに基づいて、平滑化フィルタのタイプを決定するように構成される、態様34から39のいずれか1つの装置。
【0260】
態様43: 装置がエンコーダを含む、態様34から42のいずれか1つの装置。
【0261】
態様44: 装置がデコーダを含む、態様34から43のいずれか1つの装置。
【0262】
態様45: 装置がモバイルデバイスである、態様34から44のいずれか1つの装置。
【0263】
態様46: 装置が拡張現実デバイスである、態様34から45のいずれか1つの装置。
【0264】
態様47: ビデオデータを表示するように構成されたディスプレイをさらに備える、態様34から46のいずれか1つの装置。
【0265】
態様48: 1つまたは複数のピクチャをキャプチャするように構成されたカメラをさらに備える、態様34から47のいずれか1つの装置。
【0266】
態様49: プロセッサによって実行されると、態様25から48のいずれかの方法を実行する命令を記憶した、コンピュータ可読媒体。
【0267】
態様50: 態様25から48のいずれかの動作を実行するための手段を含む、装置。
【0268】
態様51: プロセッサによって実行されると、態様1から22および態様25から48のいずれかの方法を実行する命令を記憶した、コンピュータ可読媒体。
【0269】
態様52: 態様1から22および態様25から48のいずれかの動作を実行するための手段を含む、装置。
【0270】
態様53: ビデオデータを処理するための装置であって、少なくとも1つのメモリと、少なくとも1つのメモリに結合された少なくとも1つのプロセッサとを備え、少なくとも1つのプロセッサが、ビデオデータのブロックを予測するためのイントラ予測モードを決定することと、ビデオデータのブロックに対して使用するための平滑化フィルタのタイプを決定することであって、平滑化フィルタのタイプが、ビデオデータのブロックの幅およびビデオデータのブロックの高さのうちの少なくとも1つを第1のしきい値と比較することに少なくとも部分的に基づいて決定される、決定することと、平滑化フィルタの決定されたタイプとイントラ予測モードとを使用して、ビデオデータのブロックに対するイントラ予測を実行することとを行うように構成される、装置。
【0271】
態様54: 少なくとも1つのプロセッサが、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値よりも大きいとの決定に少なくとも部分的に基づいて、平滑化フィルタの決定されたタイプとして第1の平滑化補間フィルタを使用し、第1の平滑化補間フィルタを使用して、ビデオデータのブロックのイントラ予測のための参照ピクセルを決定するように構成される、態様53の装置。
【0272】
態様55: 第1の平滑化補間フィルタが6タップガウスフィルタを含む、態様53から54のいずれかの装置。
【0273】
態様56: 少なくとも1つのプロセッサが、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値以下であるとの決定に少なくとも部分的に基づいて、平滑化フィルタの決定されたタイプとして第2の平滑化補間フィルタを使用し、第2の平滑化補間フィルタを使用して、ビデオデータのブロックのイントラ予測のための参照ピクセルを決定するように構成される、態様55の装置。
【0274】
態様57: 第2の平滑化補間フィルタが4タップガウスフィルタを含む、態様56の装置。
【0275】
態様58: 少なくとも1つのプロセッサが、イントラ予測モードの角度方向と垂直イントラ予測モードおよび水平イントラ予測モードのうちの1つとの間の最小オフセットを決定し、決定された最小オフセットを第2のしきい値と比較することに基づいて、ビデオデータのブロックに対して使用するための平滑化フィルタのタイプを決定するように構成される、態様53から57のいずれかの装置。
【0276】
態様59: 少なくとも1つのプロセッサが、決定された最小オフセットが第2のしきい値よりも大きいとの決定とイントラ予測モードが整数値参照ピクセル位置に関連付けられた整数角度モードであるとの決定とに少なくとも部分的に基づいて、平滑化フィルタのタイプとしてローパスフィルタを決定するように構成される、態様58の装置。
【0277】
態様60: ローパスフィルタが補間なしに参照ピクセル平滑化を実行し、ローパスフィルタが[1 2 1]フィルタである、態様59の装置。
【0278】
態様61: 少なくとも1つのプロセッサが、決定された最小オフセットが第2のしきい値よりも大きいとの決定とイントラ予測モードが分数値参照ピクセル位置に関連付けられた分数角度モードであるとの決定とに少なくとも部分的に基づいて、平滑化フィルタのタイプとしてガウスフィルタを決定するように構成される、態様58の装置。
【0279】
態様62: ガウスフィルタが参照ピクセル平滑化なしに平滑化補間を実行する、態様61の装置。
【0280】
態様63: ガウスフィルタが、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値よりも大きいとの決定に基づいて、6タップガウスフィルタを含む、態様61の装置。
【0281】
態様64: ガウスフィルタが、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値よりも大きくないとの決定に基づいて、4タップガウスフィルタを含む、態様61の装置。
【0282】
態様65: 少なくとも1つのプロセッサが、決定された最小オフセットが第2のしきい値以下であるとの決定に少なくとも部分的に基づいて、平滑化フィルタの決定されたタイプとして補間フィルタを使用することであって、補間フィルタが、4タップ3次フィルタを含む、使用することと、参照ピクセル平滑化を適用せずに、補間フィルタを使用してビデオデータのブロックに対するイントラ予測を実行するように構成される、態様58の装置。
【0283】
態様66: 少なくとも1つのプロセッサが、イントラ予測モードが整数角度モードであるとの決定と決定された最小オフセットが第2のしきい値よりも大きいとの決定とに少なくとも部分的に基づいて、平滑化フィルタのタイプとしてローパスフィルタを決定するように構成される、態様58の装置。
【0284】
態様67: 少なくとも1つのプロセッサが、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値よりも大きいとの決定に少なくとも部分的に基づいて、大きいタップのローパスフィルタを使用して参照ピクセル平滑化を実行することであって、大きいタップのローパスフィルタが、小さいタップのローパスフィルタよりも高い程度の参照ピクセル平滑化を適用する、実行することを行うように構成される、態様67の装置。
【0285】
態様68: 少なくとも1つのプロセッサが、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値以下であるとの決定に少なくとも部分的に基づいて、小さいタップのローパスフィルタを使用して参照ピクセル平滑化を実行することであって、小さいタップのローパスフィルタが、大きいタップのローパスフィルタよりも低い程度の参照ピクセル平滑化を適用する、実行することを行うように構成される、態様67の装置。
【0286】
態様69: 少なくとも1つのプロセッサが、イントラ予測モードの傾斜をブロックの幅およびブロックの高さから決定された1つまたは複数のピクセル位置と比較することに少なくとも部分的に基づいて、イントラ予測モードが整数角度モードであると決定するように構成される、態様53から68のいずれかの装置。
【0287】
態様70: 少なくとも1つのプロセッサが、イントラ予測モードの角度方向と垂直イントラ予測モードまたは水平イントラ予測モードとの間のオフセットが第2のしきい値未満であると決定し、イントラ予測モードの角度方向と垂直イントラ予測モードまたは水平イントラ予測モードとの間のオフセットが第2のしきい値未満であると決定することに基づいて、3次補間フィルタを使用してビデオデータのブロックに対するイントラ予測を実行するように構成される、態様53から69のいずれかの装置。
【0288】
態様71: 少なくとも1つのプロセッサが、弱い補間フィルタを使用して参照ライン拡張を実行するように構成され、弱い補間フィルタが、イントラ予測を実行するための3次補間フィルタの使用に先立って参照ライン拡張を実行するために使用され、3次補間フィルタが、弱い補間フィルタよりも高いカットオフ周波数を有し、弱い補間フィルタよりも高い程度の平滑化を適用する、態様70の装置。
【0289】
態様72: 弱い補間フィルタが4タップシンクベース補間フィルタおよび6ビット4タップ補間フィルタを含む、態様71の装置。
【0290】
態様73: 平滑化フィルタのタイプがビデオビットストリーム中でシグナリングされる、態様53から72のうちのいずれかの装置。
【0291】
態様74: 平滑化フィルタのタイプが、予測ブロック、コーディングブロック、コーディングツリーユニット(CTU)、スライス、またはシーケンスのセットの個々のセットに対してシグナリングされる、態様53から73のいずれかの装置。
【0292】
態様75: 少なくとも1つのプロセッサが、ビデオビットストリーム中で明示的にシグナリングされる情報を使用せずに、ブロックの幅および高さのうちの少なくとも1つに基づいて平滑化フィルタのタイプを決定するように構成される、態様53から74のいずれかの装置。
【0293】
態様76: 少なくとも1つのプロセッサが、ビデオデータのブロックに関する残差データのブロックを決定し、残差データのブロックとビデオデータのブロックに対するイントラ予測を実行することに基づいて決定された予測ブロックとを使用して、ビデオデータのブロックを復号するように構成される、態様53から75のいずれかの装置。
【0294】
態様77: 少なくとも1つのプロセッサが、ビデオデータのブロックに関連する情報を含む符号化ビデオビットストリームを生成するように構成される、態様53から75のいずれかの装置。
【0295】
態様78: 符号化ビデオビットストリームを少なくとも1つのメモリに記憶させるをさらに含む、態様77の装置。
【0296】
態様79: 符号化ビデオビットストリームを送信するように構成された送信機をさらに含む、態様77から78のうちのいずれかの装置。
【0297】
態様80: ビデオデータを処理する方法であって、ビデオデータのブロックを予測するためのイントラ予測モードを決定するステップと、ビデオデータのブロックに対して使用するための平滑化フィルタのタイプを決定するステップであって、平滑化フィルタのタイプが、ビデオデータのブロックの幅およびビデオデータのブロックの高さのうちの少なくとも1つを第1のしきい値と比較することに少なくとも部分的に基づいて決定される、決定するステップと、平滑化フィルタの決定されたタイプとイントラ予測モードとを使用して、ビデオデータのブロックに対するイントラ予測を実行するステップとを含む、方法。
【0298】
態様81: ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値よりも大きいとの決定に少なくとも部分的に基づいて、平滑化フィルタの決定されたタイプとして第1の平滑化補間フィルタを使用するステップと、第1の平滑化補間フィルタを使用して、ビデオデータのブロックのイントラ予測のための参照ピクセルを決定するステップとをさらに含む、態様80の方法。
【0299】
態様82: 第1の平滑化補間フィルタが6タップガウスフィルタを含む、態様81の方法。
【0300】
態様83: ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値以下であるとの決定に少なくとも部分的に基づいて、平滑化フィルタの決定されたタイプとして第2の平滑化補間フィルタを使用するステップと、第2の平滑化補間フィルタを使用して、ビデオデータのブロックのイントラ予測のための参照ピクセルを決定するステップとをさらに含む、態様80から82のいずれかの方法。
【0301】
態様84: 第2の平滑化補間フィルタが4タップガウスフィルタを含む、態様83の方法。
【0302】
態様85: イントラ予測モードの角度方向と垂直イントラ予測モードおよび水平イントラ予測モードのうちの1つとの間の最小オフセットを決定するステップと、決定された最小オフセットを第2のしきい値と比較することに基づいて、ビデオデータのブロックに対して使用するための平滑化フィルタのタイプを決定するステップとをさらに含む、態様80から84のいずれかの方法。
【0303】
態様86: 決定された最小オフセットが第2のしきい値よりも大きいとの決定とイントラ予測モードが整数値参照ピクセル位置に関連付けられた整数角度モードであるとの決定とに少なくとも部分的に基づいて、平滑化フィルタのタイプとしてローパスフィルタを決定するステップをさらに含む、態様85の方法。
【0304】
態様87: ローパスフィルタが補間なしに参照ピクセル平滑化を実行し、ローパスフィルタが[1 2 1]フィルタを含む、態様86の方法。
【0305】
態様88: 決定された最小オフセットが第2のしきい値よりも大きいとの決定とイントラ予測モードが分数値参照ピクセル位置に関連付けられた分数角度モードであるとの決定とに少なくとも部分的に基づいて、平滑化フィルタのタイプとしてガウスフィルタを決定するステップをさらに含む、態様85の方法。
【0306】
態様89: ガウスフィルタが参照ピクセル平滑化なしに平滑化補間を実行する、態様88の方法。
【0307】
態様90: ガウスフィルタが、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値よりも大きいとの決定に基づいて、6タップガウスフィルタを含む、態様88の方法。
【0308】
態様91: ガウスフィルタが、ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値以下であるとの決定に基づいて、4タップガウスフィルタを含む、態様88の方法。
【0309】
態様92: 決定された最小オフセットが第2のしきい値以下であるとの決定に少なくとも部分的に基づいて、平滑化フィルタの決定されたタイプとして補間フィルタを使用するステップであって、補間フィルタが4タップ3次フィルタを含む、使用するステップと、参照ピクセル平滑化を適用せずに、補間フィルタを使用してビデオデータのブロックに対するイントラ予測を実行するステップとをさらに含む、態様85の方法。
【0310】
態様93: イントラ予測モードが整数角度モードであるとの決定とイントラ予測モードと水平モードまたは垂直モードとの間の決定された最小オフセットが第2のしきい値よりも大きいとの決定とに少なくとも部分的に基づいて、平滑化フィルタのタイプとしてローパスフィルタを決定するステップをさらに含む、態様85の方法。
【0311】
態様94: ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値よりも大きいとの決定に少なくとも部分的に基づいて、大きいタップのローパスフィルタを使用して参照ピクセル平滑化を適用するステップであって、大きいタップのローパスフィルタが、小さいタップのローパスフィルタよりも高い程度の参照ピクセル平滑化を適用する、適用するステップをさらに含む、態様93の方法。
【0312】
態様95: ブロックの幅およびブロックの高さのうちの少なくとも1つが第1のしきい値以下であるとの決定に少なくとも部分的に基づいて、小さいタップのローパスフィルタを使用して参照ピクセル平滑化を適用するステップであって、小さいタップのローパスフィルタが、大きいタップのローパスフィルタよりも低い程度の参照ピクセル平滑化を適用する、適用するステップをさらに含む、態様93の方法。
【0313】
態様96: イントラ予測モードの傾斜をブロックの幅およびブロックの高さから決定された1つまたは複数のピクセル位置と比較することに少なくとも部分的に基づいて、イントラ予測モードが整数角度モードであると決定するステップをさらに含む、態様80から95のいずれかの方法。
【0314】
態様97: イントラ予測モードの角度方向と垂直イントラ予測モードまたは水平イントラ予測モードとの間のオフセットが第2のしきい値未満であると決定するステップと、決定されたオフセットが第2のしきい値未満であると決定することに基づいて、3次補間フィルタを使用してビデオデータのブロックに対するイントラ予測を実行するステップとをさらに含む、態様80から96のいずれかの方法。
【0315】
態様98: 弱い補間フィルタを使用して参照ライン拡張を実行するステップであって、弱い補間フィルタが、イントラ予測を実行するための3次補間フィルタの使用に先立って参照ライン拡張を実行するために使用され、3次補間フィルタが、弱い補間フィルタよりも高いカットオフ周波数を有し、弱い補間フィルタよりも高い程度の平滑化を適用する、実行するステップをさらに含む、態様97の方法。
【0316】
態様99: 弱い補間フィルタが4タップシンクベース補間フィルタおよび6ビット4タップ補間フィルタを含む、態様98の方法。
【0317】
態様100: 平滑化フィルタのタイプがビデオビットストリーム中でシグナリングされる、態様80から99のいずれかの方法。
【0318】
態様101: 平滑化フィルタのタイプが、予測ブロック、コーディングブロック、コーディングツリーユニット(CTU)、スライス、またはシーケンスのセットの個々のセットに対してシグナリングされる、態様80から100のいずれかの方法。
【0319】
態様102: ビデオビットストリーム中で明示的にシグナリングされる情報を使用せずに、ブロックの幅および高さのうちの少なくとも1つに基づいて、平滑化フィルタのタイプを決定するステップをさらに含む、態様80から101のいずれかの方法。
【0320】
態様103: ビデオデータのブロックに関する残差データのブロックを決定するステップと、残差データのブロックとビデオデータのブロックに対するイントラ予測を実行するステップに基づいて決定された予測ブロックとを使用して、ビデオデータのブロックを復号するステップとをさらに含む、態様80から102のいずれかの方法。
【0321】
態様104: ビデオデータのブロックに関連する情報を含む符号化ビデオビットストリームを生成するステップをさらに含む、態様80から102のいずれかの方法。
【0322】
態様105: 符号化ビデオビットストリームを記憶するステップをさらに含む、態様104の方法。
【0323】
態様106: 符号化ビデオビットストリームを送信するステップをさらに含む、態様104または105のいずれかの方法。
【0324】
態様107: 態様43:プロセッサによって実行されると態様53から106のいずれかの方法を実行する命令を記憶した、コンピュータ可読媒体。
【0325】
態様108: 態様53から106のいずれかの動作を実行するための手段を含む装置。
【符号の説明】
【0326】
2 モード
18 イントラモード、モード
26 イントラモード
34 モード
35 区分ユニット
41 予測処理ユニット
42 動き推定ユニット
44 動き補償ユニット
46 イントラ予測処理ユニット
50 モード、垂直イントラ予測モード、加算器
52 変換処理ユニット
54 量子化ユニット
56 エントロピー符号化ユニット
57 後処理デバイス
58 逆量子化ユニット
60 逆変換処理ユニット
62 加算器
63 フィルタユニット
64 ピクチャメモリ
66 モード
79 ネットワークエンティティ
80 エントロピー復号ユニット
81 予測処理ユニット
82 動き補償ユニット
84 イントラ予測処理ユニット
86 逆量子化ユニット
88 逆変換処理ユニット
90 加算器
91 フィルタユニット
92 ピクチャメモリ
100 システム
102 ビデオソース
104 符号化デバイス、ビデオ符号化デバイス
106 エンコーダエンジン
108 ストレージ
110 出力部
112 復号デバイス、ビデオ復号デバイス
114 入力部
116 デコーダエンジン
118 ストレージ
120 通信リンク
122 ビデオ宛先デバイス
200a 図
200b 図
300 MDISプロセス
400 図
405 現在コーディングされているブロック、現在ブロック
410 参照ピクセルの上線、上部参照ピクセルライン
420 参照ライン拡張ピクセル
423 参照ラインピクセルP
430 左参照ピクセル
500 プロセス
600 プロセス
図1
図2A
図2B
図3
図4
図5
図6
図7
図8
【国際調査報告】