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

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

▶ 華為技術有限公司の特許一覧

特許7553007ビデオコーディングにおけるクロマイントラ予測のための方法及び装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】ビデオコーディングにおけるクロマイントラ予測のための方法及び装置
(51)【国際特許分類】
   H04N 19/11 20140101AFI20240910BHJP
   H04N 19/157 20140101ALI20240910BHJP
   H04N 19/186 20140101ALI20240910BHJP
   H04N 19/593 20140101ALI20240910BHJP
【FI】
H04N19/11
H04N19/157
H04N19/186
H04N19/593
【請求項の数】 16
【外国語出願】
(21)【出願番号】P 2023098183
(22)【出願日】2023-06-15
(62)【分割の表示】P 2021549313の分割
【原出願日】2020-03-24
(65)【公開番号】P2023126795
(43)【公開日】2023-09-12
【審査請求日】2023-07-04
(31)【優先権主張番号】62/822,981
(32)【優先日】2019-03-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】フィリッポフ,アレクセイ コンスタンティノヴィッチ
(72)【発明者】
【氏名】ルフィツキー,ヴァシリー アレクセーヴィッチ
(72)【発明者】
【氏名】チェン,ジェンレェ
【審査官】岩井 健二
(56)【参考文献】
【文献】特開2015-177343(JP,A)
【文献】国際公開第2018/070107(WO,A1)
【文献】国際公開第2014/156046(WO,A1)
【文献】国際公開第2013/160699(WO,A1)
【文献】Benjamin Bross, Jianle Chen, and Shan Liu,Versatile Video Coding (Draft 4),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M1001-v7,13th Meeting: Marrakech, MA,2019年03月07日,pp.109-121
【文献】Alexey Filippov, et al.,4:4:4 and 4:2:2 chroma formats support for VVC,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0392-v3,14th Meeting: Geneva, CH,2019年03月21日,pp.1-5
【文献】Alexey Filippov, et al.,Support of 4:4:4 and 4:2:2 chroma formats in VVC,JVET-N0671-DraftText.docx,2019年03月29日,pp.109-122,https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N0671-v5.zip
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ピクチャのクロマ成分についての方向性イントラ予測の方法であって、
第1のルックアップテーブル(LUT)を使用することにより、ルマイントラ予測モード(intraPredModeY)の値に基づいて前記クロマ成分のイントラ予測モードを取得するステップと、
前記クロマ成分の前記イントラ予測モードを使用することにより、第2のLUTからクロマイントラ予測モード(intraPredModeC)を導出するステップであり、前記クロマ成分は水平及び垂直方向において異なるサブサンプリング比を有する、ステップと、
前記クロマイントラ予測モード(intraPredModeC)に対して広角マッピングを実行して、修正されたintraPredModeCを取得するステップと、
前記修正されたintraPredModeCに基づいて前記クロマ成分についてのintraPredAngleパラメータを取得するステップと、
前記intraPredAngleパラメータに基づいて前記クロマ成分の予測サンプルを取得するステップと、
前記ルマイントラ予測モード(intraPredModeY)の値をビットストリームに符号化するステップと
を含む方法。
【請求項2】
前記クロマイントラ予測モード(intraPredModeC)に対して広角マッピングを実行して、前記修正されたintraPredModeCを取得するステップは、
元のイントラ予測モード(predModeIntra)に対して広角マッピングを実行して、修正されたpredModeIntraを取得するステップであり、前記元のpredModeIntraの値は、前記クロマイントラ予測モード(intraPredModeC)の値に等しい、ステップを含む、請求項1に記載の方法。
【請求項3】
前記修正されたintraPredModeCに基づいて前記intraPredAngleパラメータを取得するステップは、
前記修正されたpredModeIntraを使用することにより、マッピングテーブルから前記クロマ成分についての前記intraPredAngleパラメータを取得するステップを含む、請求項2に記載の方法。
【請求項4】
広角マッピングは、前記ルマイントラ予測モード(intraPredModeY)について実行され、結果のイントラ予測モードは、前記intraPredAngleパラメータの値を得るために使用される、請求項1乃至3のうちいずれか1項に記載の方法。
【請求項5】
前記広角マッピングは、ルマ成分のアスペクト比を使用することにより前記ルマイントラ予測モード(intraPredModeY)について実行され、IntraPredModeFinalYを生じる、請求項4に記載の方法。
【請求項6】
IntraPredModeFinalYが34未満でないとき、intraPredAngleパラメータは、
intraPredAngle=intraPredAngle>>1
のように定義され、
そうでない場合、intraPredAngleパラメータは、
intraPredAngle=intraPredAngle<<1
のように再定義される、請求項5に記載の方法。
【請求項7】
前記intraPredAngleパラメータは、クロマサブサンプリングの効果を補うために左又は右にシフトされる、請求項1乃至6のうちいずれか1項に記載の方法。
【請求項8】
前記クロマ成分の前記イントラ予測モードは、前記第1のLUTにおいて指定されるように、intra_chroma_pred_mode[xCb][yCb]及びIntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]を使用することにより取得され、
sps_cclm_enabled_flagが0に等しいとき、前記第1のLUTは、
【表1】
を含み、
sps_cclm_enabled_flagが1に等しいとき、前記第1のLUTは、
【表2】
を含む、請求項1乃至7のうちいずれか1項に記載の方法。
【請求項9】
前記第2のLUTは67個のエントリを有し、前記第2のLUTについてのインデックスは0~66であり、各インデックスは、イントラ予測方向の角度に関連する、請求項1乃至8のうちいずれか1項に記載の方法。
【請求項10】
前記インデックスと対応する角度との間のマッピングは、
【表3】
に示すものである、請求項9に記載の方法。
【請求項11】
前記インデックスと対応する角度パラメータとの間のマッピングは、
【表4】
に示すものであり、
predModeIntraは前記インデックスを表し、intraPredAngleは対応するインデックスの角度パラメータを表す、請求項9に記載の方法。
【請求項12】
前記第2のLUTは、
【表5】
を含み、モードXは前記クロマ成分の前記イントラ予測モードであり、モードYは前記第2のLUTから導出された前記クロマイントラ予測モード(intraPredModeC)である、請求項1乃至11のうちいずれか1項に記載の方法。
【請求項13】
前記クロマ成分のクロマフォーマットは、YUV4:2:2として定義される、請求項1乃至12のうちいずれか1項に記載の方法。
【請求項14】
請求項1乃至13のうちいずれか1項に記載の方法を実行するための処理回路を含むエンコーダ。
【請求項15】
コンピュータに請求項1乃至13のうちいずれか1項に記載の方法を実行させるコンピュータプログラム。
【請求項16】
エンコーダであって、
1つ以上のプロセッサと、
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能記憶媒体と
を含み、
前記プログラミングは、前記プロセッサにより実行されたとき、請求項1乃至13のうちいずれか1項に記載の方法を実行するように当該エンコーダを構成する、エンコーダ。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、参照により援用する、2019年3月24日に出願された米国仮出願第62/822,981号に対する優先権を主張する。
【0002】
[技術分野]
本願(開示)の実施形態は、概してピクチャ処理の分野に関し、より詳細には、ビデオコーディングにおけるクロマイントラ予測の方法に関する。
【背景技術】
【0003】
ビデオコーディング(ビデオ符号化及び復号)は、広範囲のデジタルビデオアプリケーション、例えば、放送デジタルTV、インターネット及び移動ネットワーク上のビデオ送信、ビデオチャットのようなリアルタイム会話アプリケーション、ビデオ会議、DVD及びブルーレイディスク、ビデオコンテンツ取得及び編集システム、並びにセキュリティアプリケーションのカムコーダにおいて使用される。
【0004】
比較的短いビデオですら描写するために必要なビデオデータの量は相当なものになる可能性があり、これは、データがストリーミングされるとき或いは限られた帯域幅容量を有する通信ネットワークを横切って通信されるときに、困難を生じることがある。したがって、ビデオデータは、一般的に、現代の電気通信ネットワークを横切って通信される前に圧縮される。メモリリソースが制限されることがあるので、ビデオが記憶デバイスに記憶されるとき、ビデオのサイズも問題になる可能性がある。ビデオ圧縮デバイスは、しばしば、送信又は記憶の前にビデオデータをコーディングするためにソースにおいてソフトウェア及び/又はハードウェアを使用し、それにより、デジタルビデオ画像を表すために必要なデータの量を減少させる。次いで、圧縮されたデータは、ビデオデータを復号するビデオ解凍デバイスにより宛先で受信される。限られたネットワークリソース及びより高いビデオ品質の更に高まる要求のため、ピクチャ品質にほとんど或いは全く犠牲を払わずに圧縮比を改善する、改善された圧縮及び解凍技術が望ましい。
【発明の概要】
【0005】
本願の実施形態は、独立請求項に従って符号化及び復号するための装置及び方法を提供する。
【0006】
上記及び他の目的は、独立請求項の対象物により達成される。更なる実現形式は、従属請求項、説明及び図面から明らかである。
【0007】
第1の態様によれば、本発明は、ピクチャのクロマ成分についての方向性イントラ予測の方法に関する。当該方法は、クロマ成分の初期イントラ予測モード(例えば、プロセスマップ422におけるモードX)を取得するステップと、クロマ成分の初期イントラ予測モードを使用することにより、ルックアップテーブル(LUT, look up table)からクロマイントラ予測モード(intraPredModeC)(例えば、プロセスマップ422におけるモードY)を導出するステップであり、クロマ成分は水平及び垂直方向において異なるサブサンプリング比を有する、ステップとを含む。当該方法は、クロマイントラ予測モード(intraPredModeC)に対して広角マッピングを実行して、修正されたintraPredModeCを取得するステップと、修正されたintraPredModeCに基づいてクロマ成分についてのintraPredAngleパラメータを取得するステップと、intraPredAngleパラメータに基づいてクロマ成分の予測サンプルを取得するステップとを更に含む。
【0008】
第1の態様の実現方式として、当該方法は、
-ビットストリームからルマイントラ予測モード(intraPredModeY)の値を取得するステップを更に含み、
クロマ成分の初期イントラ予測モードを取得するステップは、
-ルマイントラ予測モード(intraPredModeY)の値に基づいてクロマ成分の初期イントラ予測モードを取得するステップを含む。
【0009】
第1の態様の実現方式として、クロマイントラ予測モード(intraPredModeC)に対して広角マッピングを実行して、修正されたintraPredModeCを取得するステップは、
元のイントラ予測モード(predModeIntra)に対して広角マッピングを実行して、修正されたpredModeIntraを取得するステップであり、元のpredModeIntraの値は、クロマイントラ予測モード(intraPredModeC)の値に等しい、ステップを含む。
【0010】
第1の態様の実現方式として、LUT(例えば、テーブル8-4)は67個のエントリを有し、LUTについてのインデックスは0~66である。
【0011】
本発明の第1の態様による方法は、本発明の第2の態様によるデバイスにより実行できる。ピクチャのクロマ成分についての方向性イントラ予測のデバイスは、取得ユニットと、導出ユニットと、マッピングユニットとを含む。取得ユニットは、クロマ成分の初期イントラ予測モードを取得するように構成される。導出ユニットは、クロマ成分の初期イントラ予測モードを使用することにより、ルックアップテーブル(LUT, look up table)からクロマイントラ予測モード(intraPredModeC)を導出するように構成され、クロマ成分は水平及び垂直方向において異なるサブサンプリング比を有する。マッピングユニットは、クロマイントラ予測モード(intraPredModeC)に対して広角マッピングを実行して、修正されたintraPredModeCを取得するように構成され、取得ユニットは、修正されたintraPredModeCに基づいてクロマ成分についてのintraPredAngleパラメータを取得し、intraPredAngleパラメータに基づいてクロマ成分の予測サンプルを取得するように更に構成される。
【0012】
本発明の第2の態様による方法の更なる特徴及び実現形式は、本発明の第1の態様による装置の特徴及び実現形式に対応する。
【0013】
第3の態様によれば、本発明は、ビデオストリームを復号するための装置に関し、プロセッサと、メモリとを含む。メモリは、プロセッサに第1の態様による方法を実行させる命令を記憶している。
【0014】
第4の態様によれば、本発明は、ビデオストリームを符号化するための装置に関し、プロセッサと、メモリとを含む。メモリは、プロセッサに第1の態様による方法を実行させる命令を記憶している。
【0015】
第5の態様によれば、実行されたとき、ビデオデータをコーディングするように構成された1つ以上のプロセッサを引き起こす命令を記憶したコンピュータ読み取り可能記憶媒体が提案される。命令は、1つ以上のプロセッサに、第1の態様又は第1の態様のいずれか可能な実施形態による方法を実行させる。
【0016】
第6の態様によれば、本発明は、コンピュータ上で実行されたとき、第1の態様又は第1の態様のいずれか可能な実施形態による方法を実行するためのプログラムコードを含むコンピュータプログラムに関する。
【0017】
第7の態様によれば、本開示は、上記の方法を実行するための処理回路を含むエンコーダを更に提供する。
【0018】
第8の態様によれば、本開示は、上記の方法を実行するための処理回路を含むデコーダを更に提供する。
【0019】
本発明の実施形態は、初期クロマイントラ予測モードからクロマイントラ予測モードを決定するために使用されるLUTにおいて最小数のエントリを提供する。初期クロマイントラ予測モードは、初期ルマイントラ予測モードに等しくてもよい。これは、実行されるステップの順序により、すなわち、広角マッピングの前に実行されるルミナンスモードへのクロミナンスイントラ予測モードマッピングにより達成される。
【0020】
1つ以上の実施形態の詳細は、添付の図面及び以下の説明に記載されている。他の特徴、目的及び利点は、説明、図面及び特許請求の範囲から明らかになる。
【図面の簡単な説明】
【0021】
以下に、本発明の実施形態について、添付の図及び図面を参照してより詳細に説明する。
図1A】本発明の実施形態を実現するように構成されたビデオコーディングシステムの例を示すブロック図である。
図1B】本発明の実施形態を実現するように構成されたビデオコーディングシステムの他の例を示すブロック図である。
図2】本発明の実施形態を実現するように構成されたビデオエンコーダの例を示すブロック図である。
図3】本発明の実施形態を実現するように構成されたビデオデコーダの例示的な構造を示すブロック図である。
図4】符号化装置又は復号装置の例を示すブロック図である。
図5】符号化装置又は復号装置の他の例を示すブロック図である。
図6】VTM-4.0及びVVC仕様書ドラフトv.4における角度イントラ予測方向及び関連するイントラ予測モードを示す図である。
図7】YUV 4:2:0及びYUV 4:2:2クロマフォーマットについてのルマ及びクロマ色平面を示す図である。
図8】IntraPredModeCがIntraPredModeYから導出される場合の例を示し、IntraPredModeYは広角イントラ予測モードであり、IntraPredModeCは非広角角度イントラ予測モードである。
図9】IntraPredModeCがIntraPredModeYから導出される場合の例を示し、IntraPredModeYは非広角イントラ予測モードであり、IntraPredModeCは非広角角度イントラ予測モードである。
図10】IntraPredModeCがIntraPredModeYから導出される場合の例を示し、IntraPredModeYは非広角イントラ予測モードであり、IntraPredModeCは広角角度イントラ予測モードである。
図11】予測モードクリッピングを使用してIntraPredModeCがIntraPredModeYから導出される場合の例を示し、IntraPredModeYは非広角イントラ予測モードであり、IntraPredModeCは広角角度イントラ予測モードである。
図12A】本発明に従って実現されるクロマ成分のイントラ予測のブロック1200の実施形態を示す。
図12B】本発明に従って実現されるクロマ成分のイントラ予測のブロック1210の実施形態を示す。
図13】本発明に従って実現されるクロマ成分のイントラ予測の方法1300の実施形態を示す。
図14】本発明に従って実現されるクロマ成分のイントラ予測のデバイス1400の実施形態を示す。
図15】コンテンツ配信サービスを実現するコンテンツ供給システム3100の例示的な構造を示すブロック図である。
図16】端末デバイスの例の構造を示すブロック図である。
【0022】
以下では、同一の参照符号は、他に明示的に指定されていない場合、同一の或いは少なくとも機能的に等価な特徴を示す。
【発明を実施するための形態】
【0023】
以下の説明では、本開示の一部を形成し、例示により本発明の実施形態の特定の態様又は本発明の実施形態が使用され得る特定の態様を示す、添付の図面に参照が行われる。本発明の実施形態は、他の態様で使用され、図面に示さない構造的又は論理的変更を含んでもよいことが理解される。したがって、以下の詳細な説明は、限定的な意味で考えられるべきではなく、本発明の範囲は、添付の特許請求の範囲により定義される。
【0024】
例えば、記載の方法に関連する開示はまた、方法を実行するように構成された対応するデバイス又はシステムにも当てはまってもよく、逆も同様であることが理解される。例えば、1つ又は複数の特定の方法のステップが記載される場合、対応するデバイスは、記載される1つ又は複数の方法のステップを実行するための1つ又は複数のユニット、例えば、機能ユニットを、このような1つ以上のユニットが明示的に記載されないか或いは図面に示されない場合でも含んでもよい(例えば、1つのユニットが1つ又は複数のステップを実行するか、或いは、複数のユニットが複数のステップのうち1つ以上をそれぞれ実行する)。他方、例えば、特定の装置が1つ又は複数のユニット、例えば、機能ユニットに基づいて記載される場合、対応する方法は、1つ又は複数のユニットの機能を実行するための1つのステップを、このような1つ又は複数のステップが明示的に記載されないか或いは図面に示されない場合でも含んでもよい(例えば、1つのステップが1つ又は複数のユニットの機能を実行するか、或いは、複数のステップが複数のユニットのうち1つ以上の機能をそれぞれ実行する)。さらに、ここに記載の様々な例示的な実施形態及び/又は態様の特徴は、特に断りのない限り、互いに結合されてもよいことが理解される。
【0025】
典型的には、ビデオコーディングは、ビデオ又はビデオシーケンスを形成するピクチャのシーケンスの処理を示す。用語「ピクチャ」の代わりに、用語「フレーム」又は「画像」がビデオコーディングの分野において同義語として使用されてもよい。ビデオコーディング(又は一般的にコーディング)は、ビデオ符号化及びビデオ復号の2つの部分を含む。ビデオ符号化は、ソース側で実行され、典型的には、(より効率的な記憶及び/又は送信のために)ビデオピクチャを表すために必要なデータの量を低減するように、(例えば、圧縮により)元のビデオピクチャを処理することを含む。ビデオ復号は、宛先側で実行され、典型的には、ビデオピクチャを再構成するために、エンコーダと比較して逆の処理を含む。ビデオピクチャ(又は一般的にピクチャ)の「コーディング」を参照する実施形態は、ビデオピクチャ又はそれぞれのビデオシーケンスの「符号化」又は「復号」に関連すると理解されるものとする。符号化部及び復号部の組み合わせはまた、コーデック(CODEC, Coding and Decoding)とも呼ばれる。
【0026】
可逆ビデオコーディングの場合、元のビデオピクチャは再構成でき、すなわち、再構成ビデオピクチャは、元のビデオピクチャと同じ品質を有する(記憶又は送信の間の送信損失又は他のデータ損失が無いと仮定する)。非可逆ビデオコーディングの場合、ビデオピクチャを表すデータの量を低減するために、例えば、量子化による更なる圧縮が実行され、これは、デコーダで完全には再構成できず、すなわち、再構成ビデオピクチャの品質は、元のビデオピクチャの品質と比較して低いか或いは悪い。
【0027】
いくつかのビデオコーディング標準は、「非可逆ハイブリッドビデオコーデック」のグループに属する(すなわち、サンプルドメインにおける空間及び時間予測と、変換ドメインにおける量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、典型的には、重複しないブロックのセットにパーティションされ、コーディングは、典型的には、ブロックレベルで実行される。言い換えると、エンコーダにおいて、例えば、空間(イントラピクチャ)予測及び/又は時間(インターピクチャ)予測を使用して予測ブロックを生成し、現在ブロック(現在処理されている/処理されるべきブロック)から予測ブロックを減算して残差ブロックを取得し、残差ブロックを変換して変換ドメインにおいて残差ブロックを量子化して送信されるべきデータの量を低減すること(圧縮)により、ビデオは典型的にはブロック(ビデオブロック)レベルで処理され、すなわち、符号化される。一方、デコーダにおいて、エンコーダと比較して逆の処理が符号化又は圧縮されたブロックに適用されて、表現のために現在ブロックを再構成する。さらに、エンコーダは、デコーダ処理ループを複製し、それにより、双方は、後続のブロックを処理する、すなわち、コーディングするために、同一の予測(例えば、イントラ及びインター予測)及び/又は再構成を生成する。
【0028】
ビデオコーディングシステム10の以下の実施形態では、ビデオエンコーダ20及びビデオデコーダ30について図1~3に基づいて説明する。
【0029】
図1Aは、本願の技術を利用し得る例示的なコーディングシステム10、例えばビデオコーディングシステム10を示す概略ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(又は略してエンコーダ20)及びビデオデコーダ30(又は略してデコーダ30)は、本願に記載の様々な例による技術を実行するように構成され得るデバイスの例を表す。
【0030】
図1Aに示すように、コーディングシステム10は、符号化ピクチャデータ21を、例えば、符号化ピクチャデータ13を復号するための宛先デバイス14に提供するように構成されたソースデバイス12を含む。
【0031】
ソースデバイス12は、エンコーダ20を含み、さらに、すなわち任意選択で、ピクチャソース16と、プリプロセッサ(又は前処理ユニット)18、例えばピクチャプリプロセッサ18と、通信インタフェース又は通信ユニット22とを含んでもよい。
【0032】
ピクチャソース16は、いずれかの種類のピクチャキャプチャデバイス、例えば、現実世界のピクチャをキャプチャするためのカメラ、及び/又はいずれかの種類のピクチャ生成デバイス、例えば、コンピュータアニメーションピクチャを生成するためのコンピュータグラフィックスプロセッサ、又は現実世界のピクチャ、コンピュータにより生成されたピクチャ(例えば、スクリーンコンテンツ、仮想現実(VR, virtual reality)ピクチャ)及び/又はこれらのいずれかの組み合わせ(例えば、拡張現実(AR, augmented reality)ピクチャ)を取得及び/又は提供するためのいずれかの種類のデバイスでもよく或いはこれを含んでもよい。ピクチャソースは、上記のピクチャのうちいずれかを記憶するいずれかの種類のメモリ又はストレージでもよい。
【0033】
プリプロセッサ18、及び前処理ユニット18により実行される処理と対照的に、ピクチャ又はピクチャデータ17はまた、生ピクチャ又は生ピクチャデータ17とも呼ばれてもよい。
【0034】
プリプロセッサ18は、(生)ピクチャデータ17を受信し、ピクチャデータ17に対して前処理を実行して、前処理されたピクチャ19又は前処理されたピクチャデータ19を取得するように構成される。プリプロセッサ18により実行される前処理は、例えば、トリミング、カラーフォーマット変換(例えば、RGBからYCbCrへ)、色補正又はノイズ除去を含んでもよい。前処理ユニット18は光コンポーネントでもよいことが理解できる。
【0035】
ビデオエンコーダ20は、前処理されたピクチャデータ19を受信し、符号化ピクチャデータ21を提供するように構成される(更なる詳細については、例えば、図2に基づいて以下に説明する)。
【0036】
ソースデバイス12の通信インタフェース22は、符号化ピクチャデータ21を受信し、記憶又は直接の再構成のために、通信チャネル13上で符号化ピクチャデータ21(又はそのいずれかの更なる処理されたバージョン)を他のデバイス、例えば、宛先デバイス14又はいずれかの他のデバイスに送信するように構成されてもよい。
【0037】
宛先デバイス14は、デコーダ30(例えば、ビデオデコーダ30)を含み、さらに、すなわち任意選択で、通信インタフェース又は通信ユニット28と、ポストプロセッサ32(又は後処理ユニット32)と、ディスプレイデバイス34とを含んでもよい。
【0038】
宛先デバイス14の通信インタフェース28は、例えば、ソースデバイス12から直接に或いはいずれかの他のソース、例えば記憶デバイス、例えば符号化ピクチャデータ記憶デバイスから、符号化ピクチャデータ21(又はそのいずれかの更なる処理されたバージョン)を受信し、符号化ピクチャデータ21をデコーダ30に提供するように構成される。
【0039】
通信インタフェース22及び通信インタフェース28は、ソースデバイス12と宛先デバイス14との間の直接通信リンク、例えば、直接有線又は無線接続を介して、或いはいずれかの種類のネットワーク、例えば、有線若しくは無線ネットワーク又はこれらのいずれかの組み合わせ、又はいずれかの種類の私設及び公衆ネットワーク、又はこれらのいずれかの種類の組み合わせを介して、符号化ピクチャデータ21又は符号化データ13を送信又は受信するように構成されてもよい。
【0040】
通信インタフェース22は、例えば、符号化ピクチャデータ21を適切なフォーマット、例えばパケットにパッケージ化し、及び/又は通信リンク又は通信ネットワーク上での送信のために、いずれかの種類の送信符号化又は処理を使用して符号化ピクチャデータを処理するように構成されてもよい。
【0041】
通信インタフェース22の相手方を形成する通信インタフェース28は、例えば、送信データを受信し、いずれかの種類の対応する送信復号若しくは処理及び/又はパッケージ解除を使用して、送信データを処理して、符号化ピクチャデータ21を取得するように構成されてもよい。
【0042】
通信インタフェース22及び通信インタフェース28の双方は、図1Aにおいてソースデバイス12から宛先デバイス14を指す通信チャネル13についての矢印により示されるような単方向通信インタフェース、又は双方向通信インタフェースとして構成されてもよく、例えば、メッセージを送信及び受信して、例えば、接続を確立するために、通信リンク及び/又はデータ送信、例えば、符号化ピクチャデータ送信に関連するいずれかの他の情報を承認及び交換するように構成されてもよい。
【0043】
デコーダ30は、符号化ピクチャデータ21を受信し、復号ピクチャデータ31又は復号ピクチャ31を提供するように構成される(更なる詳細については、例えば、図3又は図5に基づいて以下に説明する)。
【0044】
宛先デバイス14のポストプロセッサ32は、復号ピクチャデータ31(再構成ピクチャデータとも呼ばれる)、例えば復号ピクチャ31を後処理して、後処理されたピクチャデータ33、例えば後処理されたピクチャ33を取得するように構成される。後処理ユニット32により実行される後処理は、例えば、カラーフォーマット変換(例えば、YCbCrからRGBへ)、色補正、トリミング若しくは再サンプリング、又は例えば復号ピクチャデータ31を、例えば、ディスプレイデバイス34による表示のために準備するためのいずれかの他の処理を含んでもよい。
【0045】
宛先デバイス14のディスプレイデバイス34は、後処理されたピクチャデータ33を受信して、例えば、ユーザ又はビューアにピクチャを表示するように構成される。ディスプレイデバイス34は、再構成ピクチャを提示するいずれかの種類のディスプレイ、例えば、一体型若しくは外部ディスプレイ又はモニタでもよく或いはこれを含んでもよい。ディスプレイは、例えば、液晶ディスプレイ(LCD, liquid crystal display)、有機発光ダイオード(OLED, organic light emitting diode)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、シリコン上液晶(LCoS, liquid crystal on silicon)、デジタル光プロセッサ(DLP, digital light processor)又はいずれかの種類の他のディスプレイを含んでもよい。
【0046】
図1Aはソースデバイス12及び宛先デバイス14を別個のデバイスとして示すが、デバイスの実施形態はまた、ソースデバイス12又は対応する機能及び宛先デバイス14又は対応する機能の双方又は双方の機能を含んでもよい。このような実施形態では、ソースデバイス12又は対応する機能及び宛先デバイス14又は対応する機能は、同じハードウェア及び/又はソフトウェアを使用して或いは別個のハードウェア及び/又はソフトウェア又はこれらのいずれかの組み合わせにより実現されてもよい。
【0047】
説明に基づいて当業者に明らかなように、図1Aに示すようなソースデバイス12及び/又は宛先デバイス14内の異なるユニット又は機能の存在及び(正確な)分割は、実際のデバイス及び用途に依存して変化してもよい。
【0048】
エンコーダ20(例えば、ビデオエンコーダ20)若しくはデコーダ30(例えば、ビデオデコーダ30)又はエンコーダ20及びデコーダ30の双方は、1つ以上のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP, digital signal processor)、特定用途向け集積回路(ASIC, application-specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA, field-programmable gate array)、ディスクリートロジック、ハードウェア、専用ビデオコーディング又はこれらのいずれかの組み合わせのような、図1Bに示すような処理回路を介して実現されてもよい。エンコーダ20は、図2のエンコーダ20及び/又はここに記載のいずれかの他のエンコーダシステム又はサブシステムに関して説明するように、様々なモジュールを具体化するように処理回路46を介して実現されてもよい。デコーダ30は、図3のデコーダ30及び/又はここに記載のいずれかの他のデコーダシステム又はサブシステムに関して説明するように、様々なモジュールを具体化するように処理回路46を介して実現されてもよい。処理回路は、以下に説明するように、様々な動作を実行するように構成されてもよい。図5に示すように、技術が部分的にソフトウェアで実現される場合、デバイスは、適切な非一時的なコンピュータ読み取り可能記憶媒体内のソフトウェアのための命令を記憶してもよく、本開示の技術を実行するために1つ以上のプロセッサを使用してハードウェアで命令を実行してもよい。ビデオエンコーダ20及びビデオデコーダ30のどちらかは、例えば、図1Bに示すように、単一のデバイス内の結合されたエンコーダ/デコーダ(CODEC, encoder/decoder)の部分として統合されてもよい。
【0049】
ソースデバイス12及び宛先デバイス14は、いずれかの種類のハンドヘルド又は固定デバイス、例えば、ノートブック又はラップトップコンピュータ、携帯電話、スマートフォン、タブレット又はタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、ディスプレイデバイス、デジタルメディアプレイヤ、ビデオゲームコンソール、ビデオストリーミングデバイス(コンテンツサービスサーバ又はコンテンツ配信サーバ等)、放送受信機デバイス、放送送信機デバイス等を含む、広範なデバイスのうちいずれかを含んでもよく、いずれかの種類のオペレーティングシステムを使用してもよく或いは使用しなくてもよい。いくつかの場合、ソースデバイス12及び宛先デバイス14は、無線通信のために装備されてもよい。したがって、ソースデバイス12及び宛先デバイス14は無線通信デバイスでもよい。
【0050】
いくつかの場合、図1Aに示すビデオコーディングシステム10は単に例であり、本願の技術は、必ずしも符号化デバイスと復号デバイスとの間にいずれかのデータ通信を含むとは限らないビデオコーディング設定(例えば、ビデオ符号化又はビデオ復号)に適用してもよい。他の例では、データはローカルメモリから取り出される、ネットワーク上でストリーミングされる、等である。ビデオ符号化デバイスは、データを符号化してメモリに記憶してもよく、及び/又はビデオ復号デバイスはデータをメモリから取り出して復号してもよい。いくつかの例では、符号化及び復号は、互いに通信しないが単にデータをメモリに符号化し及び/又はメモリからデータを取り出して復号するデバイスにより実行される。
【0051】
説明の便宜上、本発明の実施形態は、ここでは、例えば高効率ビデオコーディング(HEVC, High-Efficiency Video Coding)又はバーサタイルビデオコーディング(VVC, Versatile Video coding)のリファレンスソフトウェア、ITU-Tビデオコーディング専門家委員会(VCEG, Video Coding Experts Group)及びISO/IEC動画専門家委員会(MEPEG, Motion Picture Experts Group)のビデオコーディングに関する共同作業部会(JCT-VC, Joint Collaboration Team on Video Coding)により開発された次世代ビデオコーディング標準を参照することにより記載される。当業者は、本発明の実施形態がHEVC又はVVCに限定されないことを理解する。
【0052】
エンコーダ及び符号化方法
図2は、本願の技術を実現するように構成された例示的なビデオエンコーダ20の概略ブロック図を示す。図2の例では、ビデオエンコーダ20は、入力201(又は入力インタフェース201)と、残差計算ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構成ユニット214と、ループフィルタユニット220と、復号ピクチャバッファ(DPB, decoded picture buffer)230と、モード選択ユニット260と、エントロピー符号化ユニット270と、出力272(又は出力インタフェース272)とを含む。モード選択ユニット260は、インター予測ユニット244と、イントラ予測処理ユニット254と、パーティションユニット262とを含んでもよい。インター予測ユニット244は、動き推定ユニット及び動き補償ユニット(図示せず)を含んでもよい。図2に示すようなビデオエンコーダ20はまた、ハイブリッドビデオエンコーダ又はハイブリッドビデオコーデックによるビデオエンコーダとも呼ばれてもよい。
【0053】
残差計算ユニット204、変換処理ユニット206、量子化ユニット208、モード選択ユニット260は、エンコーダ20の順方向信号経路を形成するものと呼ばれてもよい。一方で、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(DPB, decoded picture buffer)230、インター予測ユニット244及びイントラ予測ユニット254は、ビデオエンコーダ20の逆方向信号経路を形成するものと呼ばれてもよく、ビデオエンコーダ20の逆方向信号経路はデコーダの信号経路に対応する(図3におけるデコーダ30を参照する)。逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB, decoded picture buffer)230、インター予測ユニット244及びイントラ予測ユニット254はまた、ビデオエンコーダ20の「内蔵デコーダ」を形成するものとも呼ばれる。
【0054】
ピクチャ及びピクチャパーティション(ピクチャ及びブロック)
エンコーダ20は、例えば、入力201を介して、ピクチャ17(又はピクチャデータ17)、例えば、ビデオ又はビデオシーケンスを形成するピクチャのシーケンスのピクチャを受信するように構成されてもよい。受信したピクチャ又はピクチャデータはまた、前処理ピクチャ19(前処理ピクチャデータ19)でもよい。簡潔にするために、以下の説明はピクチャ17を参照する。ピクチャ17はまた、(特に、ビデオコーディングにおいて、現在ピクチャを他のピクチャ、例えば、同じビデオシーケンス、すなわち、現在ピクチャも含むビデオシーケンスの前に符号化及び/又は復号されたピクチャと区別するために)現在ピクチャ又はコーディングされるべきピクチャとも呼ばれてもよい。
【0055】
(デジタル)ピクチャは、強度値を有するサンプルの2次元配列又は行列であるか或いはそれとして考えられることができる。配列内のサンプルはまた、ピクセル(ピクチャエレメントの短縮形)又はペル(pel)とも呼ばれてもよい。配列又はピクチャの水平及び垂直方向(又は軸)におけるサンプルの数は、ピクチャのサイズ及び/又は解像度を定義する。色の表現のために、典型的には3つの色成分が使用され、すなわち、ピクチャは、3つのサンプル配列で表されてもよく或いはこれらを含んでもよい。RBGフォーマット又は色空間では、ピクチャは、対応する赤、緑及び青のサンプル配列を含む。しかし、ビデオコーディングでは、各ピクセルは、典型的には、ルミナンス及びクロミナンスフォーマット又は色空間、例えば、Y(場合によっては代わりにLも使用される)により示されるルミナンス成分とCb及びCrにより示される2つのクロミナンス成分とを含むYCbCrで表される。ルミナンス(又は略してルマ)成分Yは、明るさ又はグレーレベル強度(例えば、グレースケールピクチャにおけるもの等)を表す。一方で、2つのクロミナンス(又は略してクロマ)成分Cb及びCrは、色度又は色情報成分を表す。したがって、YCbCrフォーマットのピクチャは、ルミナンスサンプル値(Y)のルミナンスサンプル配列と、クロミナンス値(Cb及びCr)の2つのクロミナンスサンプル配列とを含む。RGBフォーマットのピクチャは、YCbCrフォーマットに転換又は変換されてもよく、逆も同様であり、プロセスはまた、色変換又は転換としても知られる。ピクチャがモノクロである場合、ピクチャは、ルミナンスサンプル配列のみを含んでもよい。したがって、ピクチャは、例えば、モノクロフォーマットのルマサンプルの配列又はルマサンプルの配列、並びに4:2:0、4:2:2及び4:4:4カラーフォーマットのクロマサンプルの2つの対応する配列でもよい。
【0056】
ビデオエンコーダ20の実施形態は、ピクチャ17を複数の(典型的には重複しない)ピクチャブロック203にパーティションするように構成されたピクチャパーティションユニット(図2に図示せず)を含んでもよい。これらのブロックはまた、ルートブロック、マクロブロック(H.264/AVC)又はコーディングツリーブロック(CTB, coding tree block)又はコーディングツリーユニット(CTU, coding tree unit)(H.265/HEVC及びVVC)とも呼ばれてもよい。ピクチャパーティションユニットは、ビデオシーケンスの全てのピクチャ、及びブロックサイズを定義する対応するグリッドに同じブロックサイズを使用するように、或いは、ピクチャ又はピクチャのサブセット若しくはグループの間でブロックサイズを変更し、各ピクチャを対応するブロックにパーティションするように構成されてもよい。
【0057】
更なる実施形態では、ビデオエンコーダは、ピクチャ17のブロック203、例えば、ピクチャ17を形成する1つ、いくつか又は全てのブロックを直接受信するように構成されてもよい。ピクチャブロック203はまた、現在ピクチャブロック又はコーディングされるべきピクチャブロックとも呼ばれてもよい。
【0058】
ピクチャ17と同様に、ピクチャブロック203は、ここでも、強度値(サンプル値)を有するサンプルの2次元配列又は行列であるか或いはそれとして考えられることができるが、ピクチャ17よりも小さい次元である。言い換えると、ブロック203は、例えば、1つのサンプル配列(例えば、モノクロピクチャ17の場合のルマ配列、又はカラーピクチャの場合のルマ又はクロマ配列)若しくは3つのサンプル配列(例えば、カラーピクチャ17の場合のルマ及び2つのクロマ配列)、又は適用されるカラーフォーマットに依存していずれかの他の数及び/又は種類の配列を含んでもよい。ブロック203の水平及び垂直方向(又は軸)におけるサンプルの数は、ブロック203のサイズを定義する。したがって、ブロックは、例えば、サンプルのM×N(M列×N行)配列、又は変換係数のM×N配列でもよい。
【0059】
図2に示すようなビデオエンコーダ20の実施形態は、ブロック毎にピクチャ17を符号化するように構成されてもよく、例えば、符号化及び予測がブロック203毎に実行される。
【0060】
図2に示すようなビデオエンコーダ20の実施形態は、スライス(ビデオスライスとも呼ばれる)を使用することによりピクチャをパーティション及び/又は符号化するように更に構成されてもよく、ピクチャは、(典型的には重複しない)1つ以上のスライスにパーティションされてもよく或いはこれを使用して符号化されてもよく、各スライスは、1つ以上のブロック(例えば、CTU)を含んでもよい。
【0061】
図2に示すようなビデオエンコーダ20の実施形態は、タイルグループ(ビデオタイルグループとも呼ばれる)及び/又はタイル(ビデオタイルとも呼ばれる)を使用することによりピクチャをパーティション及び/又は符号化するように更に構成されてもよく、ピクチャは、(典型的には重複しない)1つ以上のタイルグループにパーティションされてもよく或いはこれを使用して符号化されてもよく、各タイルグループは、例えば、1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含んでもよく、各タイルは、例えば、長方形形状でもよく、1つ以上のブロック(例えば、CTU)、例えば完全な或いは部分的なブロックを含んでもよい。
【0062】
残差計算
残差計算ユニット204は、ピクチャブロック203及び予測ブロック265(予測ブロック265に関する更なる詳細は以下に提供される)に基づいて、例えば、サンプル毎に(ピクセル毎に)ピクチャブロック203のサンプル値から予測ブロック265のサンプル値を減算して、サンプルドメインにおける残差ブロック205を取得することにより、残差ブロック205を計算するように構成される。
【0063】
変換
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、例えば、離散コサイン変換(DCT, discrete cosine transform)又は離散サイン変換(DST, discrete sine transform)を適用して、変換ドメインにおける変換係数207を取得するように構成される。変換係数207はまた、変換残差係数とも呼ばれ、変換ドメインにおける残差ブロック205を表してもよい。
【0064】
変換処理ユニット206は、H.265/HEVCについて指定された変換のようなDCT/DSTの整数近似を適用するように構成されてもよい。直交DCT変換と比較して、このような整数近似は、典型的には、特定の因子によりスケーリングされる。順変換及び逆変換により処理される残差ブロックのノルムを維持するために、更なるスケーリング因子が変換プロセスの一部として適用される。スケーリング因子は、典型的には、スケーリング因子がシフト演算のために2のべき乗であること、変換係数のビット深さ、精度と実現コストとの間のトレードオフ等のような特定の制約に基づいて選択される。特定のスケーリング因子は、例えば、逆変換処理ユニット212による逆変換(及び例えば、ビデオデコーダ30における逆変換処理ユニット312による対応する逆変換)について指定され、例えば、エンコーダ20における変換処理ユニット206による順変換についての対応するスケーリング因子が相応して指定されてもよい。
【0065】
ビデオエンコーダ20の実施形態(それぞれ、変換処理ユニット206)は、例えば、直接或いはエントロピー符号化ユニット270を介して符号化又は圧縮される、変換パラメータ、例えば、変換又は複数の変換のタイプを出力するように構成されてもよく、それにより、例えば、ビデオデコーダ30は、復号のために変換パラメータを受信して使用してもよい。
【0066】
量子化
量子化ユニット208は、例えば、スカラー量子化又はベクトル量子化を適用することにより、変換係数207を量子化して、量子化された係数209を取得するように構成されてもよい。量子化された係数209はまた、量子化された変換係数209又は量子化された残差係数209とも呼ばれてもよい。
【0067】
量子化プロセスは、変換係数207の一部又は全部に関連するビット深さを低減してもよい。例えば、nビットの変換係数は、量子化の間にmビットの変換係数に切り捨てられてもよく、nはmよりも大きい。量子化の程度は、量子化パラメータ(QP, quantization parameter)を調整することにより変更されてもよい。例えば、スカラー量子化では、より精細な或いはより粗い量子化を達成するために異なるスケーリングが適用されてもよい。より小さい量子化ステップサイズは、より精細な量子化に対応する。一方で、より大きい量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップは、量子化パラメータ(QP, quantization parameter)により示されてもよい。量子化パラメータは、例えば、適用可能な量子化ステップサイズの所定のセットに対するインデックスでもよい。例えば、小さい量子化パラメータは、精細な量子化(小さい量子化ステップサイズ)に対応してもよく、大きい量子化パラメータは、粗い量子化(大きい量子化ステップサイズ)に対応してもよく、逆も同様である。量子化は、量子化ステップサイズによる除算を含んでもよく、例えば、逆量子化ユニット210による対応するもの及び/又は逆の反量子化は、量子化ステップサイズによる乗算を含んでもよい。いくつかの標準、例えば、HEVCによる実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するように構成されてもよい。一般的に、量子化ステップサイズは、除算を含む式の固定点近似を使用して、量子化パラメータに基づいて計算されてもよい。量子化ステップサイズ及び量子化パラメータについての式の固定点近似において使用されるスケーリングのため、変更され得る残差ブロックのノルムを復元するために、量子化及び反量子化のための更なるスケーリング因子が導入されてもよい。1つの例示的な実現方式では、逆変換及び反量子化のスケーリングは組み合わされてもよい。代替として、カスタマイズされた量子化テーブルが使用され、例えば、ビットストリームでエンコーダからデコーダにシグナリングされてもよい。量子化は非可逆動作であり、量子化ステップサイズの増加に伴い損失が増加する。
【0068】
ビデオエンコーダ20の実施形態(それぞれ、量子化ユニット208)は、例えば、直接或いはエントロピー符号化ユニット270を介して符号化される、量子化パラメータ(QP, quantization parameter)を出力するように構成されてもよく、それにより、例えば、ビデオデコーダ30は、復号のために量子化パラメータを受信して適用してもよい。
【0069】
逆量子化
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化ステップサイズに基づいて或いはこれを使用して、量子化ユニット208により適用された量子化方式の逆を適用することにより、量子化された係数に対して量子化ユニット208の逆量子化を適用して、反量子化された係数211を取得するように構成される。反量子化された係数211はまた、反量子化された残差係数211とも呼ばれ、典型的には量子化による損失のため変換係数と同一ではないが、変換係数207に対応してもよい。
【0070】
逆変換
逆変換処理ユニット212は、変換処理ユニット206により適用された変換の逆変換、例えば、逆離散コサイン変換(DCT, discrete cosine transform)又は逆離散サイン変換(DST, discrete sine transform)を適用して、サンプルドメインにおける再構成された残差ブロック213(又は対応する反量子化された係数213)を取得するように構成される。再構成された残差ブロック213はまた、変換ブロック213とも呼ばれてもよい。
【0071】
再構成
再構成ユニット214(例えば、加算器又は合計器214)は、変換ブロック213(すなわち、再構成された残差ブロック213)を予測ブロック265に加算して、例えば、再構成された残差ブロック213のサンプル値と予測ブロック265のサンプル値とをサンプル毎に加算することにより、サンプルドメインにおける再構成されたブロック215を取得するように構成される。
【0072】
フィルタリング
ループフィルタユニット220(又は略して「ループフィルタ」220)は、再構成されたブロック215をフィルタリングして、フィルタリングされたブロック221を取得するように、或いは一般的に、再構成されたサンプルをフィルタリングして、フィルタリングされたサンプルを取得するように構成される。ループフィルタユニットは、例えば、ピクセル遷移を円滑化するように、或いは、ビデオ品質を改善するように構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(SAO, sample-adaptive offset)フィルタ又は1つ以上の他のフィルタ、例えば、バイラテラルフィルタ、適応ループフィルタ(ALF, adaptive loop filter)、先鋭化、円滑化フィルタ若しくは協調フィルタ又はこれらのいずれかの組み合わせのような1つ以上のループフィルタを含んでもよい。ループフィルタユニット220はインループフィルタであるとして図2に示されているが、他の構成では、ループフィルタユニット220はポストループフィルタとして実現されてもよい。フィルタリングされたブロック221はまた、フィルタリングされた再構成ブロック221と呼ばれてもよい。
【0073】
ビデオエンコーダ20の実施形態(それぞれ、ループフィルタユニット220)は、例えば、直接或いはエントロピー符号化ユニット220を介して符号化される、ループフィルタパラメータ(サンプル適応オフセット情報等)を出力するように構成されてもよく、それにより、例えば、デコーダ30は、復号のために同じループフィルタパラメータ又はそれぞれのループフィルタを受信して適用してもよい。
【0074】
復号ピクチャバッファ
復号ピクチャバッファ(DPB, decoded picture buffer)230は、ビデオエンコーダ20によりビデオデータを符号化するために、参照ピクチャ又は一般的に参照ピクチャデータを記憶するメモリでもよい。DPB230は、シンクロナスDRAM(SDRAM, synchronous DRAM)を含むダイナミックランダムアクセスメモリ(DRAM, dynamic random access memory)、磁気抵抗RAM(MRAM, magnetoresistive RAM)、抵抗RAM(RRAM, resistive RAM)、又は他のタイプのメモリデバイスのような様々なメモリデバイスのうちいずれかにより形成されてもよい。復号ピクチャバッファ(DPB, decoded picture buffer)230は、1つ以上のフィルタリングされたブロック221を記憶するように構成されてもよい。復号ピクチャバッファ230は、同じ現在ピクチャ又は異なるピクチャ、例えば、前に再構成されたピクチャの他の前にフィルタリングされたブロック、例えば、前に再構成されてフィルタリングされたブロック221を記憶するように更に構成されてもよく、例えば、インター予測のために、完全な前に再構成された、すなわち、復号されたピクチャ(及び対応する参照ブロック及びサンプル)、及び/又は部分的に再構成された現在ピクチャ(及び対応する参照ブロック及びサンプル)を提供してもよい。復号ピクチャバッファ(DPB, decoded picture buffer)230はまた、1つ以上のフィルタリングされていない再構成ブロック215、又は一般的には、例えば、再構成されたブロック215がループフィルタユニット220によりフィルタリングされない場合には、フィルタリングされていない再構成サンプル、又は再構成されたブロック若しくはサンプルのいずれかの他の更に処理されたバージョンを記憶するように構成されてもよい。
【0075】
モード選択(パーティション及び予測)
モード選択ユニット260は、パーティションユニット262と、インター予測ユニット244と、イントラ予測ユニット254とを含み、元のピクチャデータ、例えば元のブロック203(現在ピクチャ17の現在ブロック203)と、再構成ピクチャデータ、例えば、同じ(現在)ピクチャの及び/又は1つ又は複数の前に復号されたピクチャからの、例えば、復号ピクチャバッファ230又は他のバッファ(例えば、図示しないラインバッファ)からのフィルタリングされた及び/又はフィルタリングされていない再構成サンプル又はブロックとを受信又は取得するように構成される。再構成ピクチャデータは、予測ブロック265又は予測子265を取得するために、予測、例えば、インター予測又はイントラ予測のための参照ピクチャデータとして使用される。
【0076】
モード選択ユニット260は、現在ブロック予測モードについてのパーティション(パーティションしないことを含む)と、予測モード(例えば、イントラ又はインター予測モード)とを決定又は選択し、残差ブロック205の計算のため且つ再構成ブロック215の再構成のために使用される対応する予測ブロック265を生成するように構成されてもよい。
【0077】
モード選択ユニット260の実施形態は、最良の適合若しくは言い換えると最小残差(最小残差は送信又は記憶のためのより良い圧縮を意味する)又は最小シグナリングオーバヘッド(最小シグナリングオーバヘッドは送信又は記憶のためのより良い圧縮を意味する)を提供するか、或いは、双方を考慮するか或いはバランスさせるパーティション及び予測モードを(例えば、モード選択ユニット260によりサポートされるか或いは利用可能なものから)選択するように構成されてもよい。モード選択ユニット260は、レート歪み最適化(RDO, rate distortion optimization)に基づいて、パーティション及び予測モードを決定するように、すなわち、最小のレート歪みを提供する予測モードを選択するように構成されてもよい。この文脈における「最良」、「最小」、「最適」等のような用語は、必ずしも全体的な「最良」、「最小」、「最適」等を示すとは限らず、閾値を超えるか或いはそれよりも下である値のような終了若しくは選択基準、又は潜在的に「準最適選択」をもたらすが複雑さ及び処理時間を低減する他の制約の充足を示してもよい。
【0078】
言い換えると、パーティションユニット262は、例えば、四分木パーティション(QT, quad-tree-partitioning)、二分パーティション(BT, binary partitioning)若しくは三分木パーティション(TT, triple-tree-partitioning)又はこれらのいずれかの組み合わせを繰り返し使用して、ブロック203をより小さいブロックパーティション又はサブブロック(これもまたブロックを形成する)にパーティションし、例えば、ブロックパーティション又はサブブロックのそれぞれについて予測を実行するように構成されてもよく、モード選択は、パーティションされたブロック203の木構造の選択を含み、予測モードは、ブロックパーティション又はサブブロックのそれぞれに適用される。
【0079】
以下に、例示的なビデオエンコーダ20により実行される(例えば、パーティションユニット260による)パーティション及び(インター予測ユニット244及びイントラ予測ユニット254による)予測処理について更に詳細に説明する。
【0080】
パーティション
パーティションユニット262は、現在ブロック203を、より小さいパーティション、例えば、正方形又は長方形サイズのより小さいブロックにパーティション(又は分割)してもよい。これらのより小さいブロック(サブブロックとも呼ばれてもよい)は、一層小さいパーティションに更にパーティションされてもよい。これはまた、ツリーパーティション又は階層ツリーパーティションとも呼ばれ、例えば、ルートツリーレベル0(階層レベル0、深さ0)におけるルートブロックは、再帰的にパーティションされ、例えば、次のより下のツリーレベルの2つ以上のブロック、例えば、ツリーレベル1(階層レベル1、深さ1)におけるノードにパーティションされてもよく、これらのブロックは、例えば、終了基準が充足されたため、例えば、最大ツリー深さ又は最小ブロックサイズに達したため、パーティションが終了するまで、再び、次のより下のツリーレベル、例えば、ツリーレベル2(階層レベル2、深さ2)の2つ以上のブロックにパーティションされる、等でもよい。更にパーティションされないブロックはまた、ツリーのリーフブロック又はリーフノードとも呼ばれる。2つのパーティションへのパーティションを使用するツリーは、二分木(BT, binary-tree)と呼ばれ、3つのパーティションへのパーティションを使用するツリーは三成分木(TT, ternary-tree)と呼ばれ、4つのパーティションへのパーティションを使用するツリーは四分木(QT, quad-tree)と呼ばれる。
【0081】
上記のように、ここで使用される用語「ブロック」は、ピクチャの一部、特に正方形又は長方形の部分でもよい。例えば、HEVC及びVVCを参照すると、ブロックは、コーディングツリーユニット(CTU, coding tree unit)、コーディングユニット(CU, coding unit)、予測ユニット(PU, prediction unit)及び変換ユニット(TU, transform unit)及び/又は対応するブロック、例えば、コーディングツリーブロック(CTB, coding tree block)、コーディングブロック(CB, coding block)、変換ブロック(TB, transform block)又は予測ブロック(PB, prediction block)でもよく或いはこれに対応してもよい。
【0082】
例えば、コーディングツリーユニット(CTU, coding tree unit)は、ルマサンプルのCTB、3つのサンプル配列を有するピクチャのクロマサンプルの2つの対応するCTB、又はモノクロピクチャ若しくは3つの別個の色平面及びサンプルをコーディングするために使用されるシンタックス構造を使用してコーディングされるピクチャのサンプルのCTBでもよく或いはこれを含んでもよい。対応して、コーディングツリーブロック(CTB, coding tree block)は、何らかの値のNについて、サンプルのN×Nブロックでもよく、それにより、CTBへの成分の分割はパーティションである。コーディングユニット(CU, coding unit)は、ルマサンプルのコーディングブロック、3つのサンプル配列を有するピクチャのクロマサンプルの2つの対応するコーディングブロック、又はモノクロピクチャ若しくは3つの別個の色平面及びサンプルをコーディングするために使用されるシンタックス構造を使用してコーディングされるピクチャのサンプルのコーディングブロックでもよく或いはこれを含んでもよい。対応して、コーディングブロック(CB, coding block)は、何らかの値のM及びNについて、サンプルのM×Nブロックでもよく、それにより、コーディングブロックへのCTBの分割はパーティションである。
【0083】
例えば、HEVCによる実施形態では、コーディングツリーユニット(CTU, coding tree unit)は、コーディングツリーとして示される四分木構造を使用することによりCUに分割されてもよい。インターピクチャ(時間)予測を使用してピクチャ領域をコーディングするか、イントラピクチャ(空間)予測を使用してピクチャ領域をコーディングするかの判断は、CUレベルで行われる。各CUは、PU分割タイプに従って、1つ、2つ又は4つのPUに更に分割できる。1つのPU内で、同じ予測プロセスが適用され、関連情報がPU毎にデコーダに送信される。PU分割タイプに基づいて予測プロセスを適用することにより残差ブロックを取得した後に、CUは、CUについてのコーディングツリーと同様の他の四分木構造に従って、変換ユニット(TU, transform unit)にパーティションできる。
【0084】
例えば、バーサタイルビデオコーディング(VVC, Versatile Video Coding)と呼ばれる現在策定中の最新のビデオコーディング標準による実施形態では、結合した四分木及び二分木(QTBT, Quad-tree and binary tree)パーティションが、例えば、コーディングブロックをパーティションするために使用される。QTBTブロック構造では、CUは正方形又は長方形形状のいずれかを有することができる。例えば、コーディングツリーユニット(CTU, coding tree unit)は、まず、四分木によりパーティションされる。四分木リーフノードは、二分木又は三成分(三分)木構造により更にパーティションされる。パーティションツリーリーフノードは、コーディングユニット(CU, coding unit)と呼ばれ、そのセグメント化は、更なるパーティションのない予測及び変換処理のために使用される。これは、CU、PU及びTUがQTBTコーディングブロック構造において同じブロックサイズを有することを意味する。並行して、複数パーティション、例えば、三分木パーティションがQTBTブロック構造と共に使用されてもよい。
【0085】
一例では、ビデオエンコーダ20のモード選択ユニット260は、ここに記載のパーティション技術のいずれかの組み合わせを実行するように構成されてもよい。
【0086】
上記のように、ビデオエンコーダ20は、(例えば、予め決定された)予測モードのセットから最良又は最適な予測モードを決定又は選択するように構成される。予測モードのセットは、例えば、イントラ予測モード及び/又はインター予測モードを含んでもよい。
【0087】
イントラ予測
イントラ予測モードのセットは、35個の異なるイントラ予測モード、例えば、DC(又は平均)モード及びプラナーモードのような非方向性モード、又は例えば、HEVCで定義されたような方向性モードを含んでもよく、或いは、67個の異なるイントラ予測モード、例えば、DC(又は平均)モード及びプラナーモードのような非方向性モード、又は例えば、VVCについて定義されたような方向性モードを含んでもよい。
【0088】
イントラ予測ユニット254は、イントラ予測モードのセットのうち或るイントラ予測モードに従ってイントラ予測ブロック265を生成するために、同じ現在ピクチャの近傍ブロックの再構成されたサンプルを使用するように構成される。
【0089】
イントラ予測ユニット254(又は一般的にモード選択ユニット260)は、符号化ピクチャデータ21に含めるためにシンタックスエレメント226の形式で、イントラ予測パラメータ(又は一般的にブロックについて選択されたイントラ予測モードを示す情報)をエントロピー符号化ユニット270に出力するように更に構成され、それにより、例えば、ビデオデコーダ30は、復号のために予測パラメータを受信して使用してもよい。
【0090】
インター予測
インター予測モードのセット(又は可能なもの)は、利用可能な参照ピクチャ(すなわち、例えば、DBP230に記憶された、前の少なくとも部分的に復号されたピクチャ)及び他のインター予測パラメータ、例えば、最良の適合する参照ブロックを探索するために全体の参照ピクチャが使用されるか、参照ピクチャの部分のみ、例えば、現在ブロックの領域の周辺の探索ウインドウ領域が使用されるか、及び/又は、例えば、ピクセル補間、例えば、ハーフ/セミペル及び/又は4分の1ペル補間が適用されるか否かに依存する。
【0091】
上記の予測モードに加えて、スキップモード及び/又は直接モードが適用されてもよい。
【0092】
インター予測ユニット244は、動き推定(ME, motion estimation)ユニット及び動き補償(ME, motion compensation)ユニット(双方とも図2に図示せず)を含んでもよい。動き推定ユニットは、動き推定のために、ピクチャブロック203(現在ピクチャ17の現在ブロック203)及び復号ピクチャ231、又は少なくとも1つ若しくは複数の前に再構成されたブロック、例えば、1つ又は複数の他の/異なる前の復号ピクチャ231の再構成されたブロックを受信又は取得するように構成されてもよい。例えば、ビデオシーケンスは、現在ピクチャ及び前の復号ピクチャ231を含んでもよく、或いは言い換えると、現在ピクチャ及び前の復号ピクチャ231は、ビデオシーケンスを形成するピクチャのシーケンスの一部でもよく或いはこれを形成してもよい。
【0093】
エンコーダ20は、例えば、複数の他のピクチャの同じ或いは異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(又は参照ピクチャインデックス)及び/又は参照ブロックの位置(x,y座標)と現在ブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして動き推定ユニットに提供するように構成されてもよい。このオフセットはまた、動きベクトル(MV, motion vector)とも呼ばれる。
【0094】
動き補償ユニットは、インター予測パラメータを取得し、例えば、受信し、インター予測パラメータに基づいて或いはこれを使用してインター予測を実行して、インター予測ブロック265を取得するように構成される。動き補償ユニットにより実行される動き補償は、動き推定により決定された動き/ブロックベクトルに基づいて、予測ブロックをフェッチ又は生成し、場合によってはサブピクセル精度に対する補間を実行することを含んでもよい。補間フィルタリングは、既知のピクセルサンプルから更なるピクセルサンプルを生成してもよく、したがって、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの数を潜在的に増加させる。現在ピクチャブロックのPUの動きベクトルを受信すると、動き補償ユニットは、参照ピクチャリストのうち1つの中で動きベクトルが指す予測ブロックを見つけてもよい。
【0095】
動き補償ユニットはまた、ビデオスライスのピクチャブロックを復号する際にビデオデコーダ30による使用のために、ブロック及びビデオスライスに関連するシンタックスエレメントを生成してもよい。スライス及びそれぞれのシンタックスエレメントに加えて或いはその代替として、タイルグループ及び/又はタイル及びそれぞれのシンタックスエレメントが生成又は使用されてもよい。
【0096】
エントロピーコーディング
エントロピー符号化ユニット270は、量子化された係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ及び/又は他のシンタックスエレメントに対して、例えば、エントロピー符号化アルゴリズム又は方式(例えば、可変長コーディング(VLC, variable length coding)方式、コンテキスト適応型VLC方式(CAVLC, context adaptive VLC)、算術コーディング方式、二値化、コンテキスト適応型バイナリ算術コーディング(CABAC, context adaptive binary arithmetic coding)、シンタックスに基づくコンテキスト適応型バイナリ算術コーディング(SBAC, syntax-based context-adaptive binary arithmetic coding)、確率区間区分エントロピー(PIPE, probability interval partitioning entropy)コーディング又は他のエントロピー符号化方法若しくは技術)を適用するか或いは迂回して(非圧縮)、例えば、符号化ビットストリーム21の形式で出力272を介して出力できる符号化ピクチャデータ21を取得するように構成され、それにより、例えば、ビデオデコーダ30は、復号のためにパラメータを受信して使用してもよい。符号化ビットストリーム21は、ビデオデコーダ39に送信されてもよく、或いは、ビデオデコーダ30による後の送信又は取り出しのためにメモリに記憶されてもよい。
【0097】
ビデオエンコーダ20の他の構造的変形は、ビデオストリームを符号化するために使用できる。例えば、非変換ベースのエンコーダ20は、特定のブロック又はフレームについて、変換処理ユニット206なしに、残差信号を直接量子化できる。他の実現方式では、エンコーダ20は、単一のユニットに結合された量子化ユニット208及び逆量子化ユニット210を有することができる。
【0098】
デコーダ及び復号方法
図3は、本願の技術を実現するように構成されたビデオデコーダ30の例を示す。ビデオデコーダ30は、復号ピクチャ331を取得するために、例えば、エンコーダ20により符号化された符号化ピクチャデータ21(例えば、符号化ビットストリーム21)を受信するように構成される。復号ピクチャデータ又はビットストリームは、符号化ピクチャデータを複合するための情報、例えば、符号化ビデオスライス(及び/又はタイルグループ又はタイル)のピクチャブロック及び関連するシンタックスエレメントを表すデータを含む。
【0099】
図3の例では、デコーダ30は、エントロピー復号ユニット304と、逆量子化ユニット310と、逆変換処理ユニット312と、再構成ユニット314(例えば、合計器314)と、ループフィルタ320と、復号ピクチャバッファ(DBP, decoded picture buffer)330と、モード適用ユニット360と、インター予測ユニット344と、イントラ予測ユニット354とを含む。インター予測ユニット344は、動き補償ユニットでもよく或いはこれを含んでもよい。ビデオデコーダ30は、いくつかの例では、図2からビデオエンコーダ100に関して説明した符号化経路と一般的に逆の復号経路を実行してもよい。
【0100】
エンコーダ20に関して説明したように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、復号ピクチャバッファ(DPB, decoded picture buffer)230、インター予測ユニット344及びイントラ予測ユニット354はまた、ビデオエンコーダ20の「内蔵デコーダ」を形成するとも呼ばれてもよい。したがって、逆量子化ユニット310は逆量子化ユニット110と機能的に同一でもよく、逆変換処理ユニット312は逆変換処理ユニット212と機能的に同一でもよく、再構成ユニット314は再構成ユニット214と機能的に同一でもよく、ループフィルタ320はループフィルタ220と機能的に同一でもよく、復号ピクチャバッファ330は復号ピクチャバッファ230と機能的に同一でもよい。したがって、ビデオ20エンコーダのそれぞれのユニット及び機能について提供された説明は、対応して、ビデオデコーダ30のそれぞれのユニット及び機能に適用する。
【0101】
エントロピー復号
エントロピー復号ユニット304は、ビットストリーム21(又は一般的には符号化ピクチャデータ21)をパースし、例えば、符号化ピクチャデータ21に対してエントロピー復号を実行して、例えば、量子化された係数309及び/又は復号されたコーディングパラメータ(図3に図示せず)、例えば、インター予測パラメータ(例えば、参照ピクチャインデクス及び動きベクトル)、イントラ予測パラメータ(例えば、イントラ予測モード又はインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ及び/又は他のシンタックスエレメントのうちいずれか又は全てを取得するように構成される。エントロピー復号ユニット304は、エンコーダ20のエントロピー符号化ユニット270に関して説明したような符号化方式に対応する復号アルゴリズム又は方式を適用するように構成されてもよい。エントロピー復号ユニット304は、インター予測パラメータ、イントラ予測パラメータ及び/又は他のシンタックスエレメントをモード適用ユニット360に提供し、他のパラメータをデコーダ30の他のユニットに提供するように更に構成されてもよい。ビデオデコーダ30は、ビデオスライスレベル及び/又はビデオブロックレベルのシンタックスエレメントを受信してもよい。スライス及びそれぞれのシンタックスエレメントに加えて或いはその代替として、タイルグループ及び/又はタイル及びそれぞれのシンタックスエレメントが受信及び/又は使用されてもよい。
【0102】
逆量子化
逆量子化ユニット310は、符号化ピクチャデータ21から(例えば、エントロピー復号ユニット304により例えばパース及び/又は復号することにより)量子化パラメータ(QP, quantization parameter)(又は一般的に逆量子化に関する情報)及び量子化された係数を受信し、量子化パラメータに基づいて、復号済みの量子化された係数309に対して逆量子化を適用して、変換係数311とも呼ばれてもよい反量子化された係数311を取得するように構成されてもよい。逆量子化プロセスは、量子化の程度、及び同様に適用されるべき逆量子化の程度を決定するために、ビデオスライス(又はタイル若しくはタイルグループ)内の各ビデオブロックについてビデオエンコーダ20により決定された量子化パラメータの使用を含んでもよい。
【0103】
逆変換
逆変換処理ユニット312は、変換係数311とも呼ばれる反量子化された係数311を受信し、サンプルドメインにおいて再構成された残差ブロック213を取得するために反量子化された係数311に変換を適用するように構成されてもよい。再構成された残差ブロック213はまた、変換ブロック313とも呼ばれてもよい。変換は、逆変換、例えば、逆DCT、逆DST、逆整数変換又は概念的に同様の逆変換プロセスでもよい。逆変換処理ユニット312は、符号化ピクチャデータ21から(例えば、エントロピー復号ユニット304により例えばパース及び/又は復号することにより)変換パラメータ又は対応する情報を受信して、反量子化された係数311に適用されるべき変換を決定するように更に構成されてもよい。
【0104】
再構成
再構成ユニット314(例えば、加算器又は合計器314)は、再構成された残差ブロック313を予測ブロック365に加算して、例えば、再構成された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することにより、サンプルドメインにおける再構成されたブロック315を取得するように構成されてもよい。
【0105】
フィルタリング
(コーディングループ内又はコーディングループの後の)ループフィルタユニット320は、再構成されたブロック315をフィルタリングして、フィルタリングされたブロック321を取得するように、例えば、ピクセル遷移を円滑化するように或いはビデオ品質を改善するように構成される。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(SAO, sample-adaptive offset)フィルタ又は1つ以上の他のフィルタ、例えば、バイラテラルフィルタ、適応ループフィルタ(ALF, adaptive loop filter)、先鋭化、円滑化フィルタ若しくは協調フィルタ又はこれらのいずれかの組み合わせのような1つ以上のループフィルタを含んでもよい。ループフィルタユニット320はインループフィルタであるとして図3に示されるが、他の構成では、ループフィルタユニット320はポストループフィルタとして実現されてもよい。
【0106】
復号ピクチャバッファ
ピクチャの復号ビデオブロック321は、次いで、他のピクチャのための後の動き補償のための参照ピクチャとして及び/又はそれぞれのディスプレイに出力するために復号ピクチャを記憶する復号ピクチャバッファ330に記憶される。
【0107】
デコーダ30は、ユーザへの提示又は閲覧のために、例えば、出力312を介して復号ピクチャ331を出力するように構成される。
【0108】
予測
インター予測ユニット344は、インター予測ユニット244(特に、動き補償ユニット)と同一でもよく、イントラ予測ユニット354は、インター予測ユニット254と機能的に同一でもよく、パーティション及び/又は予測パラメータ又は符号化ピクチャデータ21から(例えば、エントロピー復号ユニット304により例えばパース及び/又は復号することにより)受信したそれぞれの情報に基づいて、分割又はパーティション判断及び予測を実行する。モード適用ユニット360は、再構成ピクチャ、ブロック又はそれぞれの(フィルタリングされた或いはフィルタリングされていない)サンプルに基づいて、ブロック毎に予測(イントラ又はインター予測)を実行して、予測ブロック365を取得するように構成されてもよい。
【0109】
ビデオスライスがイントラコーディングされた(I, intra coded)スライスとしてコーディングされるとき、モード適用ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード及び現在ピクチャの前に復号されたブロックからのデータに基づいて、現在ビデオスライスのピクチャブロックについて予測ブロック365を生成するように構成される。ビデオピクチャがインターコーディングされた(すなわち、B又はP)スライスとしてコーディングされるとき、モード適用ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、エントロピー復号ユニット304から受信した動きベクトル及び他のシンタックスエレメントに基づいて、現在ビデオスライスのビデオブロックについて予測ブロック365を生成するように構成される。インター予測では、予測ブロックは、参照ピクチャリストのうち1つの中の参照ピクチャのうち1つから生成されてもよい。ビデオデコーダ30は、DPB330に記憶された参照ピクチャに基づいて、デフォルト構成技術を使用して、参照フレームリスト、リスト0及びリスト1を構成してもよい。同じこと又は同様のことが、スライス(例えば、ビデオスライス)に加えて或いはその代替として、タイルグループ(例えば、ビデオタイルグループ)及び/又はタイル(例えば、ビデオタイル)を使用する実施形態に或いはそれにより適用されてもよく、例えば、ビデオは、I、P又はBタイルグループ及び/又タイルを使用してコーディングされてもよい。
【0110】
モード適用ユニット360は、動きベクトル又は関連情報及び他のシンタックスエレメントをパースすることにより、現在ビデオスライスのビデオブロックについて予測情報を決定するように構成され、復号されている現在ビデオブロックについて予測ブロックを生成するために予測情報を使用する。例えば、モード適用ユニット360は、受信したシンタックスエレメントのうちいくつかを使用して、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(例えば、イントラ又はインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス又はGPBスライス)、スライスの参照ピクチャリストのうち1つ以上についての構成情報、スライスの各インター符号化されたビデオブロックの動きベクトル、スライスの各インターコーディングされたビデオブロックについてのインター予測状態、及び現在ビデオスライス内のビデオブロックを復号するための他の情報を決定する。同じこと又は同様のことが、スライス(例えば、ビデオスライス)に加えて或いはその代替として、タイルグループ(例えば、ビデオタイルグループ)及び/又はタイル(例えば、ビデオタイル)を使用する実施形態に或いはそれにより適用されてもよく、例えば、ビデオは、I、P又はBタイルグループ及び/又タイルを使用してコーディングされてもよい。
【0111】
図3に示すようなビデオデコーダ30の実施形態は、スライス(ビデオスライスとも呼ばれる)を使用することによりピクチャをパーティション及び/又は復号するように構成されてもよく、ピクチャは、(典型的には重複しない)1つ以上のスライスにパーティションされてもよく或いはこれを使用して復号されてもよく、各スライスは、1つ以上のブロック(例えば、CTU)を含んでもよい。
【0112】
図3に示すようなビデオデコーダ30の実施形態は、タイルグループ(ビデオタイルグループとも呼ばれる)及び/又はタイル(ビデオタイルとも呼ばれる)を使用することによりピクチャをパーティション及び/又は復号するように構成されてもよく、ピクチャは、(典型的には重複しない)1つ以上のタイルグループにパーティションされてもよく或いはこれを使用して復号されてもよく、各タイルグループは、例えば、1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含んでもよく、各タイルは、例えば、長方形形状でもよく、1つ以上のブロック(例えば、CTU)、例えば完全な或いは部分的なブロックを含んでもよい。
【0113】
ビデオデコーダ30の他の変形は、符号化ピクチャデータ21を復号するために使用できる。例えば、デコーダ30は、ループフィルタユニット320なしに、出力ビデオストリームを生成できる。例えば、非変換ベースのデコーダ30は、特定のブロック又はフレームについて、逆変換処理ユニット312なしに、残差信号を直接逆量子化できる。他の実現方式では、ビデオデコーダ30は、単一のユニットに結合された逆量子化ユニット310及び逆変換処理ユニット312を有することができる。
【0114】
エンコーダ20及びデコーダ30において、現在ステップの処理結果は更に処理され、次いで次のステップに出力されてもよいことが理解されるべきである。例えば、補間フィルタリング、動きベクトル導出又はループフィルタリングの後に、クリップ又はシフトのような更なる動作が、補間フィルタリング、動きベクトル導出又はループフィルタリングの処理結果に対して実行されてもよい。
【0115】
更なる動作は、現在ブロックの導出された動きベクトル(アフィンモードの制御点動きベクトル、アフィン、プラナー、ATMVPモードにおけるサブブロック動きベクトル、時間動きベクトル等を含むが、これらに限定されない)に適用されてもよい点に留意すべきである。例えば、動きベクトルの値は、その表現ビットに従って所定の範囲に制約される。動きベクトルの表現ビットがbitDepthである場合、範囲は-2^(bitDepth-1)~2^(bitDepth-1)-1であり、「^」は指数計算を意味する。例えば、bitDepthが16に等しく設定された場合、範囲は-32768~32767であり、bitDepthが18に等しく設定された場合、範囲は-131072~131071である。例えば、導出された動きベクトル(例えば、1つの8×8ブロック内の4×4サブブロックのMV)の値は、4つの4×4サブブロックのMVの整数部の間の最大差が、1ピクセル以下のようなNピクセル以下になるように制約される。ここで、bitDepthに従って動きベクトルを制約するための2つの方法を提供する。
【0116】
方法1:以下の演算によりオーバーフロー最上位ビット(MSB, most significant bit)を除去する。
ux=(mvx+2bitDepth)%2bitDepth (1)
mvx=(ux>=2bitDepth-1)?(ux-2bitDepth):ux (2)
uy=(mvy+2bitDepth)%2bitDepth (3)
mvy=(uy>=2bitDepth-1)?(uy-2bitDepth):uy (4)
ここで、mvxは画像ブロック又はサブブロックの動きベクトルの水平成分であり、mvyは画像ブロック又はサブブロックの動きベクトルの垂直成分であり、ux及びuyは中間値を示す。
【0117】
例えば、mvxの値が-32769である場合、式(1)及び(2)を適用した後に、結果の値は32767である。コンピュータシステムでは、10進数は2の補数として記憶される。-32769の2の補数は1,0111,1111,1111,1111(17ビット)であり、その場合、MSBが破棄されるため、結果の2の補数は0111,1111,1111,1111(10進数は32767である)であり、これは式(1)及び(2)を適用することによる出力と同じである。
ux=(mvpx+mvdx+2bitDepth)%2bitDepth (5)
mvx=(ux>=2bitDepth-1)?(ux-2bitDepth):ux (6)
uy=(mvpy+mvdy+2bitDepth)%2bitDepth (7)
mvy=(uy>=2bitDepth-1)?(uy-2bitDepth):uy (8)
演算は、式(5)~(8)に示すように、mvpとmvdとの和の間に適用されてもよい。
【0118】
方法2:値をクリッピングすることによりオーバーフローMSBを除去する。
vx=Clip3(-2bitDepth-1,2bitDepth-1-1,vx)
vy=Clip3(-2bitDepth-1,2bitDepth-1-1,vy)
ここで、vxは画像ブロック又はサブブロックの動きベクトルの水平成分であり、vyは画像ブロック又はサブブロックの動きベクトルの垂直成分であり、x、y及びzはそれぞれMVクリッピングプロセスの3つの入力値に対応し、関数Clip3の定義は以下の通りである。
【数1】
図4は、本開示の実施形態によるビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、ここで説明するような開示の実施形態を実現するのに適する。実施形態では、ビデオコーディングデバイス400は、図1Aのビデオデコーダ30のようなデコーダ又は図1Aのビデオエンコーダ20のようなエンコーダでもよい。
【0119】
ビデオコーディングデバイス400は、データを受信するための入口ポート410(又は入力ポート410)及び受信機ユニット(Rx)420と、データを処理するためのプロセッサ、論理ユニット又は中央処理装置(CPU, central processing unit)430と、データを送信するための送信機ユニット(Tx)440及び出口ポート450(又は出力ポート450)と、データを記憶するためのメモリ460とを含む。ビデオコーディングデバイス400はまた、光若しくは電気信号の出口又は入口のための、入口ポート410、受信機ユニット420、送信機ユニット440及び出口ポート450に結合された光電気(OE, optical-to-electrical)コンポーネント及び電気光(EO, electrical-to-optical)コンポーネントを含んでもよい。
【0120】
プロセッサ430は、ハードウェア及びソフトウェアにより実現される。プロセッサ430は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサ)、FPGA、ASIC及びDSPとして実現されてもよい。プロセッサ430は、入口ポート410、受信機ユニット420、送信機ユニット440、出口ポート450及びメモリ460と通信する。プロセッサ430は、コーディングモジュール470を含む。コーディングモジュール470は、上記の開示の実施形態を実現する。例えば、コーディングモジュール470は、様々なコーディング動作を実現、処理、準備又は提供する。したがって、コーディングモジュール470に含まれるものは、ビデオコーディングデバイス400の機能に実質的な改善を提供し、異なる状態へのビデオコーディングデバイス400の変換をもたらす。代替として、コーディングモジュール470は、メモリ460に記憶されてプロセッサ430により実行される命令として実現される。
【0121】
メモリ460は、1つ以上のディスク、テープドライブ及びソリッドステートドライブを含んでもよく、プログラムが実行のために選択されるときこのようなプログラムを記憶するため且つプログラムの実行中に読み取られる命令及びデータを記憶するためのオーバフローデータ記憶デバイスとして使用されてもよい。メモリ460は、例えば、揮発性及び/又は不揮発性でもよく、読み取り専用メモリ(ROM, read-only memory)、ランダムアクセスメモリ(RAM, random access memory)、三値連想メモリ(TCAM, ternary content-addressable memory)及び/又はスタティックランダムアクセスメモリ(SRAM, static random-access memory)でもよい。
【0122】
図5は、例示的な実施形態による図1からのソースデバイス12及び宛先デバイス14の一方又は双方として使用されてもよい装置500の簡略ブロック図である。
【0123】
装置500内のプロセッサ502は、中央処理装置とすることができる。代替として、プロセッサ502は、現在存在するか或いは今後開発される、情報を操作又は処理できるいずれかの他のタイプのデバイス又は複数のデバイスとすることができる。開示の実現方式は示されるように単一のプロセッサ、例えばプロセッサ502で実施できるが、速度及び効率における利益は、1つよりも多くのプロセッサを使用して達成できる。
【0124】
装置500内のメモリ504は、実装方式では、読み取り専用メモリ(ROM, read only memory)デバイス又はランダムアクセスメモリ(RAM, random access memory)デバイスとすることができる。いずれかの他の適切なタイプの記憶デバイスが、メモリ504として使用できる。メモリ504は、バス512を使用してプロセッサ502によりアクセスされるコード及びデータ506を含むことができる。メモリ504は、オペレーティングシステム508及びアプリケーションプログラム510を更に含むことができ、アプリケーションプログラム510は、プロセッサ502がここに記載の方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、ここに記載の方法を実行するビデオコーディングアプリケーションを更に含むアプリケーション1~Nを含むことができる。
【0125】
装置500はまた、ディスプレイ518のような1つ以上の出力デバイスを含むことができる。ディスプレイ518は、一例では、タッチ入力を感知するよう動作可能なタッチセンシティブ素子とディスプレイを結合したタッチセンシティブディスプレイでもよい。ディスプレイ518は、バス512を介してプロセッサ502に結合できる。
【0126】
ここでは単一のバスとして示されるが、装置500のバス512は複数のバスで構成できる。さらに、2次ストレージ514は、装置500の他のコンポーネントに直接結合でき、或いは、ネットワークを介してアクセスでき、メモリカードのような単一の統合ユニット又は複数のメモリカードのような複数のユニットを含むことができる。したがって、装置500は、広範な構成で実現できる。
【0127】
方向性イントラ予測は、予測方向により指定されるように、近傍サンプルの値を予測ブロックに伝搬することを含む周知の技術である。図6は、93個の予測方向を示し、破線の方向は、非正方形ブロックにのみ適用される広角モードに関連する。
【0128】
方向は、予測サンプル及び参照サンプルの位置の間のオフセットの増加により指定されてもよい。この増加のより大きい大きさは、予測方向のより大きいゆがみに対応する。Table 1は、predModeIntraと角度パラメータintraPredAngleとの間のマッピングテーブルを指定する。このパラメータは、実際には、1/32サンプル解像度で指定された行毎(又は列毎)のこのオフセットの増加である。
【表1】
広角モードは、45度よりも大きい予測方向の傾きに対応する、32(1サンプル)よりも大きいintraPredAngleの絶対値により識別されてもよい。
【0129】
予測サンプル(「predSamples」)は、以下に説明するように、近傍サンプル「p」から取得されてもよい。
【数2】
ルマ及びクロマ成分についてのイントラ予測モードのシグナリングは、クロマイントラ予測モードがルマイントラ予測モードから導出されるような方法で実行されてもよい。
【数3】
パラメータ「intra_chroma_pred_mode」はビットストリーム内でシグナリングされる。Table 2及びTable 3から、特定の場合(「X」により示される)、クロマ成分についてのイントラ予測モード(IntraPredModeC)は、同一位置のルマブロックについて指定されたイントラ予測モードに等しく設定されることに気付き得る。
【0130】
クロマフォーマットは、図7に示すように、クロマ配列の優先順位及びサブサンプリングを決定する。モノクロサンプリングでは、名目上ルマ配列とみなされる1つのサンプル配列のみが存在する。
【0131】
4:2:0サンプリングでは、2つのクロマ配列のそれぞれは、ルマ配列の半分の高さ及び半分の幅を有する。
【0132】
4:2:2サンプリングでは、2つのクロマ配列のそれぞれは、ルマ配列の同じ高さ及び半分の幅を有する。
【0133】
この解決策は、ルマサンプルについて指定されるのと同じクロマサンプルを予測するためのイントラ予測方向を提供する。しかし、水平方向のクロマサブサンプリング比が垂直方向のクロマサブサンプリング比に等しくないとき、クロマについてのイントラ予測方向はサブサンプリングにより影響され、イントラ予測方向の角度へのイントラ予測モードの異なるマッピングを生じる。この効果を補うために、HMの範囲拡張において、モードマッピングステップ、すなわち、対応するルマイントラ予測モード(IntraPredModeY)について専用ルックアップテーブル(LUT, lookup table)からのフェッチを実行し、クロマイントラ予測モード(IntraPredModeC)のためにフェッチされた値を使用することが提案された。Table 4は、HEVC標準で指定されるモードのセットについて、このLUTを与える。
【表2】
イントラ予測プロセスにおけるVVC仕様ドラフト4では、イントラ予測モード(intraPredMode)のインデックスは、アスペクト比に従って以下のように修正される。
【数4】
上記のアスペクト比(whRatio)に関してイントラ予測モード(predModeIntra)を修正するプロセスは、「広角マッピング」と更に呼ばれる。
【0134】
最新の手法を適用する場合、YUV4:2:2クロマフォーマットについて指定されているように、ルマ及びクロマブロックについての条件は水平クロマサブサンプリングのために異なるので、クロマサンプルについてのイントラ予測方向は、同一位置のルマサンプルについて指定された方向と反対になる可能性がある。
【0135】
本発明の実施形態は、クロマイントラ予測のためにルマイントラ予測モードを使用するとき、ブロックアスペクト比及びクロマサブサンプリングフォーマットを一緒に考慮することを提案する。
【0136】
本発明は、この問題を解決するためのいくつかの方法/実施形態を提供する。1つの方法は、ルマ及びクロマ方向性イントラ予測がブロックの同じ側を使用することを確保するためのクリッピング動作を導入する。
【0137】
他の方法は、結果のクロマ予測モードがマッピングされた方向の同じ角度を有することを確保するための広角マッピングプロセスの修正を含む。上記の説明の通り、これらの方向は一致しない(「(predModeIntra-67)」及び「(predModeIntra+65)」)。
【0138】
第3の方法は、広角マッピングプロセスのための入力パラメータの調整を含む。特に、クロマアスペクト比の代わりにルマアスペクト比を使用することが提案される。さらに、クロマサブサンプリングの影響を補うために、intraPredAngleパラメータが左又は右にシフトされる。
【0139】
代替として、VVC仕様ドラフトにおいて与えられる、シグナリングされたルマイントラ予測モード(0..66の範囲にある)のセットについて、以下のルックアップテーブルが使用されてもよい(Table 5)。
【表3】
可能な解決策の1つは、Table 5で指定されたLUTをルマイントラ予測モード(IntraPredModeY)の値に適用し、取得されたモードをクロマブロックについての方向性イントラ予測プロセスの入力イントラ予測モード(IntraPredModeC)として使用することを含み、これは、
-IntraPredModeCの広角マッピング
-参照サンプル配列(「ref」)及びintraPredAngleパラメータの導出
-上記で決定された参照サンプル(「ref」)及びintraPredAngleパラメータを使用して予測クロマサンプルの値を取得すること
を含む。
【0140】
この手法は、ルマイントラ予測モード(IntraPredModeY)が広角モードでない場合にうまく機能する。図9に示すように、同じ空間位置「A」上の予測されたクロマ及びルマサンプルは、同じ空間位置にも位置する参照サンプルを使用する。
【0141】
この方法はまた、45度の角度(モード2)への出力クロマイントラ予測方向のクリッピングを指定するので、図11に示す場合でも機能する。このクリッピングは、LUT内のエントリのセットについて同じ値を指定することによって実現される(エントリIntraPredModeY=2..8に注意して下さい)。
【0142】
本発明の他の実施形態は、ステップ「IntraPredModeCの広角マッピング」が実行される場合についての広角マッピングプロセスの修正を含む。
【0143】
以下の説明は、水平及び垂直方向の異なるサブサンプリング比(それぞれ「SubWidthC」及び「SubHeightC」として更に示される)を指定するクロマフォーマットについて、マッピングされた方向がクロマイントラ予測に対して実行されるか否かに関して、広角マッピングプロセスの更なる依存性を指定する。
【数5】
しかし、上記の手法は、ルマイントラ予測モード(IntraPredModeY)が広角方向に対応する場合、反対方向のルマ及びクロマイントラ予測モードを生じる可能性がある。図8は、IntraPredModeCがIntraPredModeYから導出され、IntraPredModeYが広角イントラ予測モードであり、IntraPredModeCが非広角角度イントラ予測モードである場合の例を示す。(図8に示すように)期待されるイントラ予測モードの場合の例は、上記に開示された方法により生成されない。図9は、IntraPredModeCがIntraPredModeYから導出され、IntraPredModeYが非広角イントラ予測モードであり、IntraPredModeCが非広角角度イントラ予測モードである場合の例を示す。図10は、IntraPredModeCがIntraPredModeYから導出され、IntraPredModeYが非広角イントラ予測モードであり、IntraPredModeCが広角角度イントラ予測モードである場合の例を示す。(図10に示すように)非広角入力ルマイントラ予測モード(IntraPredModeY)が広角クロマイントラ予測モード(IntraPredModeC)を生成する場合の例である。図11は、IntraPredModeCが予測モードクリッピングを使用してIntraPredModeYから導出され、IntraPredModeYが非広角イントラ予測モードであり、IntraPredModeCが非広角角度イントラ予測モードである場合の例を示す。
-図8及び図10に示す方法(「方法3」)を指定する例示的な実施形態は、クロマフォーマットがYUV4:2:2として定義され、入力ルマイントラ予測モード(IntraPredModeY)が方向性(すなわち、DCに等しくなく、プラナーに等しくない)とき、以下のステップの形式で開示されてもよく、ルマブロックのアスペクト比を使用した(IntraPredModeY)の広角マッピングはIntraPredModeFinalYを生じる。
-以下のステップを含む、入力予測モードIntraPredModeFinalYを使用したクロマブロックについての参照サンプル配列(「ref」)及びintraPredAngleパラメータの導出。
【0144】
-IntraPredModeFinalYが34未満でない場合、intraPredAngleパラメータは以下のように再定義される。
【0145】
intraPredAngle=intraPredAngle>>1
-そうでない場合、intraPredAngleパラメータは以下のように再定義される。
【0146】
intraPredAngle=intraPredAngle<<1
-上記で決定された参照サンプル(「ref」)及びintraPredAngleパラメータを使用して予測クロマサンプルの値を取得する。
【0147】
代替として、「intraPredAngle=intraPredAngle>>1」演算の代わりに、「intraPredAngle=sign(intraPredAngle)*((Abs(intraPredAngle)+1)>>1)」又は「intraPredAngle=intraPredAngle/2」のような、他の2による除算の実現方式が使用されてもよい。
【0148】
双方の方法の組み合わせもまた適用されてもよい。実施形態は、方向性である(すなわち、DCに等しくなく、プラナーに等しくない)入力ルマイントラ予測モード(IntraPredModeY)について以下のステップを含む。
-IntraPredModeYが18未満でなく50よりも大きくない場合、以下のステップが当てはまる。
【0149】
・ルマイントラ予測モード(IntraPredModeY)のキー値を使用してLUT(例えば、Table 5で指定される)からフェッチし、クロマ入力イントラ予測モード(IntraPredModeC)を生じる。
【0150】
・IntraPredModeCの広角マッピング
・参照サンプル配列(「ref」)及びintraPredAngleパラメータの導出
・上記で決定された参照サンプル(「ref」)及びintraPredAngleパラメータを使用して予測クロマサンプルの値を取得すること。
-そうでない場合、「方法3」の説明で指定されたステップを実行する。
【0151】
本発明の実施形態はまた、以下の形式で表されてもよい。
【数6】
本発明の実施形態はまた、以下の形式で表されてもよい。
【数7】
intraPredAngleパラメータ調整の方法はまた、以下の形式で実現されてもよい。
【数8】
特に、現在ブロックの予測コーディングの以下の方法及び実施形態は、復号又は符号化デバイスにより実現される。復号デバイスは、図1Aのビデオデコーダ30又は図3のデコーダ30でもよい。符号化デバイスは、図1Aのビデオエンコーダ20又は図2のエンコーダ20でもよい。
【0152】
実施形態1200(図12Aを参照する)によれば、idc_chrom_formatの値が4:2:2クロマフォーマットを示すとき、クロマイントラ予測モード(intraPredModeC)1203は、クロマ成分の初期イントラ予測モードを使用することにより、ルックアップテーブル(LUT, look up table)1202から導出される。クロマ成分の初期イントラ予測モードの値は、ルマイントラ予測モードintraPredModeYの値に等しくてもよい。Table 2、Table 3、Table 8-2又はTable 8-3は、クロマ成分の初期イントラ予測モードの値intra_chroma_pred_mode[xCb][yCb]とルマイントラ予測モードintraPredModeYの値IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]との間の例を与える。
【0153】
ルックアップテーブル1202の例はTable 5又はTable 8-4である。ルックアップテーブルは、インデックス0~66を有する67個のエントリを含む。
【0154】
クロマイントラ予測モード1203に対して広角マッピング1204を実行した後に、修正されたクロマイントラ予測モードが取得される。パラメータintraPredAngle 1205は、修正されたクロマイントラ予測モードに基づいて取得される。例えば、修正されたクロマイントラ予測モードをpredModeIntraとして使用することにより、intraPredAngle 1205がTable 1から取得される。クロマ成分の予測サンプルは、intraPredAngleパラメータに基づいてクロマ方向性イントラ予測1206を実行することにより取得される。
【0155】
実施形態1210(図12Bを参照する)によれば、広角マッピング1212は、ルマイントラ予測モードintraPredModeY 1211に対して実行されて、修正されたintraPredModeYを取得する。idc_chrom_formatの値が4:2:2クロマフォーマットを示すとき、クロマイントラ予測モード(intraPredModeC)1214は、修正されたintraPredModeYを使用することによりルックアップテーブル(LUT, look up table)1213から導出される。ルックアップテーブル1213は、インデックス0~94を有する95個のエントリを有してもよい。
【0156】
パラメータintraPredAngle 1215は、クロマイントラ予測モード1214に基づいて取得される。例えば、クロマイントラ予測モードをpredModeIntraとして使用することにより、intraPredAngle 1215がTable 1から取得される。クロマ成分の予測サンプルは、intraPredAngleパラメータに基づいてクロマ方向性イントラ予測1216を実行することにより取得される。
【0157】
実施形態1300は以下のステップを含む。ステップ1301において、デバイスは、ルマイントラ予測モード(intraPredModeY)の値を取得する。例えば、デバイスは、ビットストリームをパースすることによりintraPredModeYの値を取得する。ステップ1302において、デバイスは、ルマイントラ予測モード(intraPredModeY)の値に基づいて、例えば、Table 2、Table 3、Table 8-2又はTable 8-3に基づいて、クロマ成分の初期イントラ予測モード(IntraPredModeC)を取得する。ステップ1303において、デバイスは、クロマフォーマットが4:2:2であるとき、クロマ成分の初期イントラ予測モード(intraPredModeC)を使用することにより、ルックアップテーブル(LUT, look up table)からクロマイントラ予測モード(intraPredModeC)を導出する。Table 8-4の例では、クロマ成分の初期イントラ予測モードはモードXであり、クロマイントラ予測モード(intraPredModeC)はモードYである。これは、元のintraPredModeCがintraPredModeCを取得するように調整されることを意味する。
【0158】
ステップ1304は、クロマイントラ予測モード(intraPredModeC)に対して広角マッピングを実行して、修正されたintraPredModeCを取得することを含む。上記のように、広角マッピングは、非正方形ブロック(nWがnHに等しくない)について、以下を含む。
【0159】
以下の条件の全てが真である場合、wideAngleは1に等しく設定され、predModeIntraは(predModeIntra+65)に等しく設定される。
【0160】
nWがnHよりも大きい
predModeIntraが2以上である
predModeIntraが(whRatio>1)?(8+2*whRatio):8未満である
そうでなく、以下の条件の全てが真である場合、wideAngleは1に等しく設定され、predModeIntraは(predModeIntra-67)に等しく設定される。
【0161】
nHがnWよりも大きい
predModeIntraが66以下である
predModeIntraが(whRatio>1)?(60-2*whRatio):60よりも大きい
ステップ1305は、修正されたintraPredModeCに基づいて、クロマ成分についてのintraPredAngleパラメータを取得することを含む。例えば、修正されたintraPredModeCをpredModeIntraとして使用することにより、intraPredAngle 1215がTable 1から取得される。ステップ1306は、intraPredAngleパラメータに基づいてクロマ成分の予測サンプルを取得することを含む。
【0162】
この実施形態1300の詳細な情報は、上記の実施形態において示される。
【0163】
図14は、デバイス1400の実施形態を示す。デバイス1400は、図1Aのビデオデコーダ30又は図3のデコーダ30でもよく、或いは、図1Aのビデオエンコーダ20又は図2のエンコーダ20でもよい。デバイス1400は、実施形態1200、1210、1300及び上記の他の実施形態を実現するために使用できる。
【0164】
ピクチャのクロマ成分についての方向性イントラ予測のデバイスは、取得ユニット1401と、導出ユニット1402と、マッピングユニット1403とを含む。
【0165】
取得ユニット1401は、クロマ成分の初期イントラ予測モードを取得するように構成される。導出ユニット1402は、クロマ成分の初期イントラ予測モードを使用することにより、ルックアップテーブル(LUT, look up table)からクロマイントラ予測モード(intraPredModeC)を導出するように構成され、クロマ成分は水平及び垂直方向において異なるサブサンプリング比を有する。導出ユニット1402は、Table 8-2及びTable 8-3で指定されるように、intra_chroma_pred_mode[xCb][yCb]及びIntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]を使用することにより、クロマイントラ予測モードIntraPredModeC[xCb][yCb]を導出するために使用できる。
【0166】
マッピングユニット1403は、クロマイントラ予測モード(intraPredModeC)に対して広角マッピングを実行して、修正されたintraPredModeCを取得するように構成される。一例として、マッピングユニット1403は、元のイントラ予測モード(predModeIntra)に対して広角マッピングを実行して、修正されたpredModeIntraを取得し、元のpredModeIntraの値はクロマイントラ予測モード(intraPredModeC)の値に等しい。
【0167】
取得ユニット1401は、例えば、マッピングテーブルから、修正されたintraPredModeCに基づいてクロマ成分についてのintraPredAngleパラメータを取得し、intraPredAngleパラメータに基づいてクロマ成分の予測サンプルを取得するように更に構成される。
【0168】
取得ユニット1401はまた、ビットストリームからルマイントラ予測モード(intraPredModeY)の値を取得し、次いで、ルマイントラ予測モード(intraPredModeY)の値に基づいてクロマ成分の初期イントラ予測モードを取得するように構成されてもよい。
【0169】
本開示は以下のセットの態様を提供する。
【0170】
実施形態1.水平及び垂直方向において異なるサブサンプリング比を有するピクチャのクロマ成分についての方向性イントラ予測の方法であって、
-クロマ成分についての参照サンプル(「ref」)の配列及びintraPredAngleパラメータを取得するステップであり、intraPredAngleパラメータの導出は、水平及び垂直方向におけるクロマ成分サブサンプリング比の差に従って調整される、ステップと、
-クロマ成分についての参照サンプル(「ref」)の配列及びintraPredAngleパラメータを使用してクロマ成分の予測サンプルを取得するステップと
を含む方法。
【0171】
実施形態2.当該方法は、
-ビットストリームからルマイントラ予測モード(intraPredModeY)の値を取得するステップを更に含む、実施形態1に記載の方法。
【0172】
実施形態3.クロマ成分についてのintraPredAngleパラメータは、ルマイントラ予測モード(intraPredModeY)の値から導出されるクロマイントラ予測モード(intraPredModeC)から取得される、実施形態2に記載の方法。
【0173】
実施形態4.クロマイントラ予測モード(intraPredModeC)の導出は、LUTからのフェッチによって実行される、実施形態3に記載の方法。
【0174】
実施形態5.取得されたクロマイントラ予測モード(intraPredModeC)が広角である場合、クリッピング動作が実行される、実施形態3又は4に記載の方法。
【0175】
実施形態6.クロマイントラ予測モードは、intraPredModeCが広角マッピングプロセスのマッピング条件を満たす場合、最も近い非広角モードに設定される、実施形態5に記載の方法。
【0176】
実施形態7.広角マッピングは、ルマイントラ予測モード(intraPredModeY)について実行され、結果のイントラ予測モードは、intraPredAngleパラメータの値を得るために使用される、実施形態1~6のうちいずれか1つに記載の方法。
【0177】
実施形態8.intraPredAngleパラメータの値は、クロマフォーマットに従って調整され、クロマ成分の予測サンプルを取得するために使用される、実施形態7に記載の方法。
【0178】
実施形態9.クロマフォーマットは、YUV4:2:2として定義される、実施形態7又は8に記載の方法。
【0179】
実施形態10.ルマブロックのアスペクト比を使用する(IntraPredModeY)の広角マッピングは、IntraPredModeFinalYを生じる、実施形態7~9のうちいずれか1つに記載の方法。
【0180】
実施形態11.IntraPredModeFinalYが34未満でないとき、intraPredAngleパラメータは、intraPredAngle=intraPredAngle>>1のように定義され、
そうでない場合、intraPredAngleパラメータは、intraPredAngle=intraPredAngle<<1のように再定義される、実施形態10に記載の方法。
【0181】
実施形態12.intraPredAngleパラメータは、クロマサブサンプリングの効果を補うために、左又は右にシフトされる、実施形態1~11のうちいずれか1つに記載の方法。
【0182】
実施形態13.クロマイントラ予測モードIntraPredModeC[xCb][yCb]は、Table 8-2及びTable 8-3に指定されるようにintra_chroma_pred_mode[xCb][yCb]及びIntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]を使用して導出される、実施形態1~12のうちいずれか1つに記載の方法。
【0183】
実施形態14.クロマイントラ予測モードIntraPredModeC[xCb][yCb]は、プロセスマップ422を使用して導出される、実施形態1~12のうちいずれか1つに記載の方法。
【0184】
実施形態15.非正方形ブロック(nWがnHに等しくない)について、イントラ予測モードpredModeIntraは、
以下の条件の全てが真である場合、wideAngleは1に等しく設定され、predModeIntraは(predModeIntra+65)に等しく設定される
nWがnHよりも大きい
predModeIntraが2以上である
predModeIntraが(whRatio>1)?(8+2*whRatio):8未満である
そうでなく、以下の条件の全てが真である場合、wideAngleは1に等しく設定され、predModeIntraは(predModeIntra-67)に等しく設定される
nHがnWよりも大きい
predModeIntraが66以下である
predModeIntraが(whRatio>1)?(60-2*whRatio):60よりも大きい
のように取得される、実施形態1~14のうちいずれか1つに記載の方法。
【0185】
提案の方法によるクロマモード導出プロセスは、従来の手法と比較して有益な効果に恵まれる。これらの効果の1つは、本発明の実施形態が、初期ルマイントラ予測モードからクロマイントラ予測モードを決定するために使用されるLUTにおいて最小数のエントリを提供することである。これは、実行されるステップの順序により、すなわち、広角マッピングの前に実行されるルミナンスモードへのクロミナンスイントラ予測モードマッピングにより達成される。広角マッピングなしにクロマ対ルマLUTを適用するとき、正方形ブロック形状だけについてマッピングを指定することが必要であり、したがって、必要なLUTエントリを67に制限する。
【0186】
その他に、提案される本発明の実施形態では、クロミナンスモード導出は、同一位置のルミナンスブロックの形状を取得するために必要とされない。従来の方法では、広角マッピングプロセスの結果であるルミナンスイントラ予測方向のマッピングは、ルミナンスブロックのアスペクト比も同様に考慮する必要がある。この依存性の理由は、広角マッピングプロセスが、マッピングされたイントラ予測モードの値を決定するためにブロックのアスペクト比に関する情報を必要とするからである。本発明の実施形態では、広角マッピングは、入力ルミナンスイントラ予測モードについて実行されず、したがって、入力ルミナンスイントラ予測モードは、ビットストリームのパースにより取得され得る。ルミナンス成分のパーティション構造を扱う必要がないので、提案されるステップの順序が使用される場合、復号待ち時間が改善される。
【0187】
以下は、上記の実施形態で示されるような符号化方法及び復号方法並びにこれらを使用するシステムの適用の説明である。
【0188】
図15は、コンテンツ配信サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、キャプチャデバイス3102、端末デバイス3106を含み、任意選択でディスプレイ3126を含む。キャプチャデバイス3102は、通信リンク3104上で端末デバイス3106と通信する。通信リンクは、上記の通信チャネル13を含んでもよい。通信リンク3104は、WIFI、イーサネット、ケーブル、無線(3G/4G/5G)、USB又はこれらのいずれかの種類の組み合わせ等を含むが、これらに限定されない。
【0189】
キャプチャデバイス3102は、データを生成し、上記の実施形態に示すような符号化方法によりデータを符号化してもよい。代替として、キャプチャデバイス3102は、データをストリーミングサーバ(図面に図示せず)に配信してもよく、サーバは、データを符号化し、符号化データを端末デバイス3106に送信する。キャプチャデバイス3102は、カメラ、スマートフォン若しくはパッド、コンピュータ若しくはラップトップ、ビデオ会議システム、PDA、車載デバイス又はこれらのうちいずれかの組み合わせ等を含むが、これらに限定されない。例えば、キャプチャデバイス3102は、上記のようなソースデバイス12を含んでもよい。データがビデオを含むとき、キャプチャデバイス3102に含まれるビデオエンコーダ20は、実際に、ビデオ符号化処理を実行してもよい。データがオーディオ(すなわち、音声)を含むとき、キャプチャデバイス3102に含まれるオーディオエンコーダは、実際に、オーディオ符号化処理を実行してもよい。いくつかの実際のシナリオでは、キャプチャデバイス3102は、符号化ビデオ及びオーディオデータを、これらを一緒に多重化することにより配信する。他の実際のシナリオでは、例えば、ビデオ会議システムにおいて、符号化オーディオデータ及び符号化ビデオデータは多重化されない。キャプチャデバイス3102は、符号化オーディオデータ及び符号化ビデオデータを端末デバイス3106に別個に配信する。
【0190】
コンテンツ供給システム3100では、端末デバイス310は、符号化データを受信して再生する。端末デバイス3106は、上記の符号化データを復号できるスマートフォン若しくはパッド3108、コンピュータ若しくはラップトップ3110、ネットワークビデオレコーダ(NVR, network video recorder)/デジタルビデオレコーダ(DVR, digital video recorder)3112、TV3114、セットトップボックス(STB, set top box)3116、ビデオ会議システム3118、ビデオ監視システム3120、パーソナルデジタルアシスタント(PDA, personal digital assistant)3122、車載デバイス3124又はこれらのうちいずれかの組合せ等のような、データ受信及び復元能力を有するデバイスでもよい。例えば、端末デバイス3106は、上記のような宛先デバイス14を含んでもよい。符号化データがビデオを含むとき、端末デバイスに含まれるビデオデコーダ30は、ビデオ復号を実行するように優先される。符号化データがオーディオを含むとき、端末デバイスに含まれるオーディオデコーダは、オーディオ復号処理を実行するように優先される。
【0191】
自身のディスプレイを有する端末デバイス、例えば、スマートフォン若しくはパッド3108、コンピュータ若しくはラップトップ3110、ネットワークビデオレコーダ(NVR, network video recorder)/デジタルビデオデコーダ(DVR, digital video recorder)3112、TV3114、パーソナルデジタルアシスタント(PDA, personal digital assistant)3122又は車載デバイス3124では、端末デバイスは、復号データを自身のディスプレイに供給できる。ディスプレイを備えない端末デバイス、例えば、STB3116、ビデオ会議システム3118又はビデオ監視システム3120では、外部ディスプレイ3126が、復号データを受信して表示するために自身に接触される。
【0192】
このシステム内の各デバイスが符号化又は復号を実行するとき、上記の実施形態において示すように、ピクチャ符号化デバイス又はピクチャ復号デバイスが使用できる。
【0193】
図16は、端末デバイス3106の例の構造を示す図である。端末デバイス3106がキャプチャデバイス3102からストリームを受信した後に、プロトコル処理ユニット3202は、ストリームの送信プロトコルを分析する。プロトコルは、リアルタイムストリーミングプロトコル(RTSP, Real Time Streaming Protocol)、ハイパーテキスト転送プロトコル(HTTP, Hyper Text Transfer Protocol)、HTTPライブストリーミングプロトコル(HLS, HTTP Live streaming protocol)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP, Real-time Transport protocol)、リアルタイムメッセージングプロトコル(RTMP, Real Time Messaging Protocol)又はいずれかの種類のこれらの組み合わせ等を含むが、これらに限定されない。
【0194】
プロトコル処理ユニット3202がストリームを処理した後に、ストリームファイルが生成される。ファイルは、逆多重化ユニット3204に出力される。逆多重化ユニット3204は、多重化データを符号化オーディオデータ及び符号化ビデオデータに分離できる。上記のように、いくつかの実際のシナリオでは、例えば、ビデオ会議システムにおいて、符号化オーディオデータ及び符号化ビデオデータは多重化されない。この状況では、符号化データは、逆多重化ユニット3204を通過せずにビデオデコーダ3206及びオーディオデコーダ3208に送信される。
【0195】
逆多重化処理を介して、ビデオエレメンタリストリーム(ES, elementary stream)、オーディオES及び任意選択のサブタイトルが生成される。上記の実施形態において説明したようなビデオデコーダ30を含むビデオデコーダ3206は、上記の実施形態において示すような復号方法によりビデオESを復号して、ビデオフレームを生成し、このデータを同期ユニット3212に供給する。オーディオデコーダ3208は、オーディオESを復号してオーディオフレームを生成し、このデータを同期ユニット3212に供給する。代替として、ビデオフレームは、同期ユニット3212に供給する前に、バッファ(図Yに図示せず)に記憶してもよい。同様に、オーディオフレームは、同期ユニット3212に供給する前に、バッファ(図Yに図示せず)に記憶してもよい。
【0196】
同期ユニット3212は、ビデオフレーム及びオーディオフレームを同期させ、ビデオ/オーディオをビデオ/オーディオディスプレイ3214に供給する。例えば、同期ユニット3212は、ビデオ及びオーディオ情報の提示を同期させる。情報は、コーディングされたオーディオ及び視覚データの提示に関するタイムスタンプと、データストリーム自身の配信に関するタイムスタンプとを使用してシンタックス内にコーディングしてもよい。
【0197】
サブタイトルがストリームに含まれる場合、サブタイトルデコーダ3210は、サブタイトルを復号し、これをビデオフレーム及びオーディオフレームと同期させ、ビデオ/オーディオ/サブタイトルをビデオ/オーディオ/サブタイトルディスプレイ3216に供給する。
【0198】
本発明は、上記のシステムに限定されず、上記の実施形態におけるピクチャ符号化デバイス又はピクチャ復号デバイスのいずれかは、他のシステム、例えば車両システムに組み込まれることができる。
【0199】
数学演算子
本願で使用される数学演算子は、Cプログラミング言語で使用されるものと同様である。しかし、整数除算及び算術シフト演算の結果は、より正確に定義され、指数計算及び実数値の除算のような更なる演算子が定義される。番号付け及び計数規則は、一般的に0から始まり、例えば、「第1」は0番目と等価であり、「第2」は1番目と等価である、等である。
【0200】
論理演算子
以下の論理演算子は以下のように定義される。
【数9】
論理演算子
以下の論理演算子は以下のように定義される。
【0201】
x&&y x及びyのブール論理「積」
x||y x及びyのブール論理「和」
! ブール論理「否定」
x?y:z xが真である場合又は0に等しくない場合、yの値に評価され、そうでない場合、zの値に評価される
関係演算子
以下の関係演算子は以下のように定義される。
【0202】
> よりも大きい
>= 以上
< 未満
<= 以下
== 等しい
!= 等しくない
関係演算子が値「na」(not applicable)を割り当てられたシンタックスエレメント又は変数に適用されるとき、値「na」は、シンタックスエレメント又は変数の個別の値として扱われる。値「na」は、いずれかの他の値に等しくないと考えられる。
【0203】
ビット演算子
以下のビット演算子は以下のように定義される。
【0204】
& ビット毎の「積」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。他の引数よりも少ないビットを含む二値の引数に対して演算するとき、より短い引数は、0に等しいより上位のビットを追加することにより拡張される。
【0205】
| ビット毎の「和」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。他の引数よりも少ないビットを含む二値の引数に対して演算するとき、より短い引数は、0に等しいより上位のビットを追加することにより拡張される。
【0206】
^ ビット毎の「排他和」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。他の引数よりも少ないビットを含む二値の引数に対して演算するとき、より短い引数は、0に等しいより上位のビットを追加することにより拡張される。
【0207】
x>>y y個の二進数字によるxの2の補数整数表現の算術右シフト。この関数は、yの非負整数値についてのみ定義される。右シフトの結果としての最上位ビット(MSB, most significant bit)にシフトされたビットは、シフト演算前のxのMSBに等しい値を有する。
【0208】
x<<y y個の二進数字によるxの2の補数整数表現の算術左シフト。この関数は、yの非負整数値についてのみ定義される。左シフトの結果としての最下位ビット(LSB, least significant bit)にシフトされたビットは、0に等しい値を有する。
【0209】
代入演算子
以下の代入演算子は以下のように定義される。
【0210】
= 代入演算子
++ インクリメント。すなわち、すなわち、x++はx=x+1に等しい。配列インデックスにおいて使用されるとき、インクリメント演算の前の変数の値に評価される。
【0211】
-- デクリメント。すなわち、すなわち、x--はx=x-1に等しい。配列インデックスにおいて使用されるとき、デクリメント演算の前の変数の値に評価される。
【0212】
+= 指定された量だけのインクリメント。すなわちx+=3はx=x+3に等しく、x+=(-3)はx=x+(-3)に等しい。
【0213】
-= 指定された量だけのデクリメント。すなわちx-=3はx=x-3に等しく、x-=(-3)はx=x-(-3)に等しい。
【0214】
範囲表記
以下の表記が値の範囲を指定するために使用される。
【0215】
x=y..z xはy以上z以下の整数値をとり、x、y及びzは整数であり、zはyよりも大きい。
【0216】
数学関数
以下の数学関数が定義される。
【数10】
Asin(x) 三角法の逆正弦関数。-1.0以上1.0以下の範囲にある引数xに対して演算し、ラジアンの単位の-π÷2以上π÷2以下の範囲の出力値を有する。
【0217】
Atan(x) 三角法の逆正接関数。引数xに対して演算し、ラジアンの単位の-π÷2以上π÷2以下の範囲の出力値を有する。
【数11】
Ceil(x) x以上の最小の整数。
【0218】
Clip1Y(x)=Clip3(0,(1<<BitDepthY)-1,x)
Clip1C(x)=Clip3(0,(1<<BitDepthC)-1,x)
【数12】
Cos(x) ラジアンの単位の引数xに対して演算する三角法の余弦関数。
【0219】
Floor(x) x以下の最大の整数。
【数13】
Ln(x) xの自然対数(eを底とする対数であり、eは自然対数の底の定数2.718281828...である)。
【0220】
Log2(x) xの2を底とする対数。
【0221】
Log10(x) xの10を底とする対数。
【数14】
【数15】
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
【数16】
Sin(x) ラジアンの単位の引数xに対して演算する三角法の正弦関数。
【0222】
Sqrt(x)=√x
Swap(x,y)=(y,x)
Tan(x) ラジアンの単位の引数xに対して演算する三角法の正接関数。
【0223】
演算優先順位
式の優先順位が括弧の使用により明示的に示されないとき、以下の規則が当てはまる。
【0224】
-より高い優先度の演算は、より低い優先度のいずれかの演算の前に評価される。
【0225】
-同じ優先度の演算は、左から右に順次評価される。
【0226】
以下の表は、最高から最低までの演算の優先度を指定し、表におけるより高い位置は、より高い優先度を示す。
【0227】
Cプログラミング言語でも使用される演算子については、本明細書で使用される優先順位は、Cプログラミング言語で使用される優先順位と同じである。
【表4】
論理演算のテキスト記述
テキストでは、以下の形式:
if(条件0)
ステートメント0
else(条件1)
ステートメント1
...
else /*残りの条件に関する参考注記*/
ステートメントn
で数学的に記述されるような論理演算のステートメントは、以下の方式で記述されてもよい。
【0228】
...以下の通り/...以下が当てはまる:
-条件0である場合、ステートメント0
-そうでなく、条件1である場合、ステートメント1
-...
-そうでない場合(残りの条件に関する参考注記)、ステートメントn
テキストにおけるそれぞれの「…である場合…、そうでなく、…である場合…、そうでない場合…」のステートメントは、「…である場合」が直後に続く「…以下の通り」又は「…以下が当てはまる」で導入される。「…である場合…、そうでなく、…である場合…、そうでない場合…」の最後の条件は、常に「そうでない場合、…」である。交互に配置される「…である場合…、そうでなく、…である場合…、そうでない場合…」のステートメントは、「そうでない場合、…」で終わる「…以下の通り」又は「…以下が当てはまる」に一致させることにより識別できる。
【0229】
テキストにおいて、以下の形式:
if(条件0a&&条件0b)
ステートメント0
else if(条件1a||条件1b)
ステートメント1
...
else
ステートメントn
で数学的に記述されるような論理演算のステートメントは、以下の方式で記述されてもよい。
【0230】
...以下の通り/...以下が当てはまる:
-以下の条件の全てが真である場合、ステートメント0:
-条件0a
-条件0b
-そうでなく、以下の条件のうち1つ以上が真である場合、ステートメント1:
-条件1a
-条件1b
-…
-そうでない場合、ステートメントn
テキストにおいて、以下の形式:
if(条件0)
ステートメント0
if(条件1)
ステートメント1
で数学的に記述されるような論理演算のステートメントは、以下の方式で記述されてもよい。
【0231】
条件0であるとき、ステートメント0
条件1であるとき、ステートメント1
本発明の実施形態について、主にビデオコーディングに基づいて説明したが、コーディングシステム10、エンコーダ20及びデコーダ30(及び対応してシステム10)の実施形態、並びにここに記載の他の実施形態はまた、静止画ピクチャ処理又はコーディング、すなわち、ビデオコーディングにおけるような、いずれかの前の或いは又は連続するピクチャと独立した個々のピクチャの処理又はコーディングについて構成されてもよい点に留意すべきである。一般的に、ピクチャ処理コーディングが単一のピクチャ17に限定される場合、インター予測ユニット244(エンコーダ)及び344(デコーダ)のみが利用可能でなくてもよい。ビデオエンコーダ20及びビデオデコーダ30の全ての他の機能(ツール又は技術とも呼ばれる)は、静止画ピクチャ処理、例えば、残差計算204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、パーティション262/362、イントラ予測254/354、及び/又はループフィルタリング220、320、並びにエントロピーコーディング270及びエントロピー復号304に同等に使用されてもよい。
【0232】
例えば、エンコーダ20及びデコーダ30の実施形態、並びに、例えば、エンコーダ20及びデコーダ30に関してここに記載した機能は、ハードウェア、ソフトウェア、ファームウェア又はこれらのいずれかの組み合わせで実現されてもよい。ソフトウェアで実現される場合、機能は、1つ以上の命令又はコードとしてコンピュータ読み取り可能媒体に記憶され或いは通信媒体上で送信され、ハードウェアベースの処理ユニットにより実行されてもよい。コンピュータ読み取り可能媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ読み取り可能記憶媒体、又は例えば、通信プロトコルに従って或る場所から他の場所へのコンピュータプログラムの転送を容易にするいずれかの媒体を含む通信媒体を含んでもよい。このように、コンピュータ読み取り可能媒体は、一般的に、(1)非一時的である有形コンピュータ読み取り可能記憶媒体、又は(2)信号若しくは搬送波のような通信媒体に対応してもよい。データ記憶媒体は、本開示に記載の技術の実現のために命令、コード及び/又はデータ構造を取り出すために、1つ以上のコンピュータ又は1つ以上のプロセッサによりアクセスできるいずれかの利用可能な媒体でもよい。コンピュータプログラム製品は、コンピュータ読み取り可能媒体を含んでもよい。
【0233】
限定ではなく例として、このようなコンピュータ読み取り可能記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリ、又は命令若しくはデータ構造の形式で所望のプログラムコードを記憶するために使用でき且つコンピュータによりアクセスできるいずれかの他の媒体を含むことができる。また、いずれかの接続は、適切にコンピュータ読み取り可能媒体と呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL, digital subscriber line)、又は赤外線、無線及びマイクロ波のような無線技術を使用してウェブサイト、サーバ又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、又は赤外線、無線及びマイクロ波のような無線技術は、媒体の定義に含まれる。しかし、コンピュータ読み取り可能記憶媒体及びデータ記憶媒体は、接続、搬送波、信号又は他の一時的な媒体を含まないが、代わりに非一時的な有形記憶媒体を対象とすることが理解されるべきである。ディスク(disk)及びディクス(disc)は、ここで使用されるとき、コンパクトディスク(CD, compact disc)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD, digital versatile disc)、フロッピーディスク及びブルーレイディスクを含み、ディスク(disk)は通常ではデータを磁気的に再生し、ディスク(disc)はデータをレーザで光学的に再生する。上記の組み合わせも、コンピュータ読み取り可能媒体の範囲に含まれるべきである。
【0234】
命令は、1つ以上のデジタルシグナルプロセッサ(DSP, digital signal processor)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC, application specific integrated circuit)、フィールドプログラマブルロジックアレイ(FPGA, field programmable logic array)又は他の等価な集積若しくは個別論理回路のような1つ以上のプロセッサにより実行されてもよい。したがって、用語「プロセッサ」は、ここで使用されるとき、上記の構造のうちいずれか又はここに記載の技術の実現方式に適したいずれかの他の構造を示してもよい。さらに、いくつかの態様では、ここに記載の機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に提供されてもよく或いは結合されたコーデックに組み込まれてもよい。また、技術は、1つ以上の回路又は論理素子に完全に実現されてもよい。
【0235】
本開示の技術は、無線ハンドセット、集積回路(IC, integrated circuit)又はICのセット(例えば、チップセット)を含む広範なデバイス又は装置に実現されてもよい。様々なコンポーネント、モジュール又はユニットは、開示の技術を実行するように構成されたデバイスの機能的側面を強調するように本開示において記載されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上記のように、様々なユニットは、適切なソフトウェア及び/又はファームウェアと組み合わせて、コーデックハードウェアユニットに結合されてもよく、或いは、上記のような1つ以上のプロセッサを含む相互運用ハードウェアユニットの集合により提供されてもよい。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12A
図12B
図13
図14
図15
図16