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

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

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

特許7509902スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法
<>
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図1A
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図1B
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図2
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図3
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図4
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図5
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図6
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図7
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図8
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図9
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図10
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図11
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図12
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図13
  • 特許-スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-24
(45)【発行日】2024-07-02
(54)【発明の名称】スライス用のピクチャパーティション情報をシグナリングするためのデコーダ及び対応する方法
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240625BHJP
   H04N 19/119 20140101ALI20240625BHJP
   H04N 19/136 20140101ALI20240625BHJP
   H04N 19/174 20140101ALI20240625BHJP
【FI】
H04N19/70
H04N19/119
H04N19/136
H04N19/174
【請求項の数】 35
(21)【出願番号】P 2022551572
(86)(22)【出願日】2021-02-20
(65)【公表番号】
(43)【公表日】2023-04-12
(86)【国際出願番号】 CN2021077000
(87)【国際公開番号】W WO2021169859
(87)【国際公開日】2021-09-02
【審査請求日】2022-10-24
(31)【優先権主張番号】PCT/EP2020/055220
(32)【優先日】2020-02-28
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】エセンリク,セミフ
(72)【発明者】
【氏名】ワン,ビアオ
(72)【発明者】
【氏名】コトラ,アナンド メヘル
(72)【発明者】
【氏名】アルシナ,エレナ アレキサンドロヴナ
【審査官】田部井 和彦
(56)【参考文献】
【文献】国際公開第2020/256442(WO,A1)
【文献】特表2022-537767(JP,A)
【文献】特表2015-507906(JP,A)
【文献】Seethal Paluri et al.,[AHG12]: Misc improvements to tile and rectangular slice signalling [online],JVET-Q0244-v2(JVET-Q0244_v2.docx), [2023年11月16日検索],インターネット <URL: https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q0244-v2.zip>,2019年12月31日
【文献】Bae-Keun Lee,AHG12: Cleanups on rectangular slices signalling [online],JVET-R0211(JVET-R0211.docx), [2023年11月16日検索],インターネット <URL: https://jvet-experts.org/doc_end_user/documents/18_Alpbach/wg11/JVET-R0211-v1.zip>,2020年04月03日
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/70
H04N 19/119
H04N 19/136
H04N 19/174
(57)【特許請求の範囲】
【請求項1】
復号デバイスにより実現されるコーディングの方法であって、
タイルにパーティションされた現在ピクチャのビットストリームを取得するステップであり、前記ピクチャに含まれる前記タイルは、ラスタースキャン順序に従ってインデックス付けされる、ステップと、
前記現在ピクチャのタイル行におけるタイルの数を取得するステップと、
前記現在ピクチャの長方形スライスのアドレスの値を取得するステップであり、前記スライスの前記アドレスは、前記スライスの一番上のタイル行の一番左のタイルのインデックスである、ステップと、
前記スライスの前記アドレスの前記値に従ってtileXの値を取得するステップであり、前記tileXの値は、タイル列の単位での前記スライスの一番上のタイル行の一番左のタイルの水平座標を示し、前記水平座標は、前記スライスの前記アドレスの前記値と前記現在ピクチャの前記タイル行における前記タイルの数との間のモジュラス演算に従って取得される、ステップと、
前記現在ピクチャの前記タイル行における前記タイルの数と前記tileXの値との間の差値が第1の閾値に等しくないとき、前記現在ピクチャの前記ビットストリームからタイル列の単位での前記長方形スライスのスライス幅の指示値をパースするステップと
を含む方法。
【請求項2】
前記現在ピクチャの前記タイル行における前記タイルの数と前記tileXの値との間の差値が前記第1の閾値に等しいとき、前記スライス幅の前記指示値をデフォルト値に設定するステップを更に含む、請求項1に記載の方法。
【請求項3】
前記デフォルト値は、前記スライスの幅が1つのタイル列を含むことを示す、請求項2に記載の方法。
【請求項4】
前記スライスの前記アドレスの前記値に従ってtileXの値を取得するステップは、
前記スライスの前記アドレスの前記値及び前記現在ピクチャの前記タイル行における前記タイルの数に従って前記tileXの値を取得するステップを含む、請求項1乃至3のうちいずれか1項に記載の方法。
【請求項5】
前記スライスの前記アドレスの前記値は、タイルインデックスにおける前記スライスの左上座標のアドレスを指定する、請求項1乃至のうちいずれか1項に記載の方法。
【請求項6】
前記現在ピクチャのタイル列におけるタイルの数を取得するステップと、
前記スライスの前記アドレスの前記値に従ってtileYの値を取得するステップであり、前記tileYの値はタイルインデックスにおける垂直アドレスを示す、ステップと、
前記現在ピクチャの前記タイル列における前記タイルの数と前記tileYの値との間の差値が第2の閾値に等しくないとき、前記現在ピクチャの前記ビットストリームからスライス高さの指示値をパースするステップと
を更に含む、請求項1乃至のうちいずれか1項に記載の方法。
【請求項7】
前記現在ピクチャの前記タイル列における前記タイルの数と前記tileYの値との間の差値が前記第2の閾値に等しいとき、前記スライス高さの前記指示値をデフォルト値に設定するステップを更に含む、請求項に記載の方法。
【請求項8】
前記スライスの前記アドレスの前記値に従ってtileYの値を取得するステップは、
前記スライスの前記アドレスの前記値及び前記現在ピクチャの前記タイル行における前記タイルの数に従って前記tileYの値を取得するステップを含む、請求項又はに記載の方法。
【請求項9】
前記tileYの値は、前記スライスの前記アドレスの前記値及び前記現在ピクチャの前記タイル行における前記タイルの数との間の整数除算演算に従って取得される、請求項乃至のうちいずれか1項に記載の方法。
【請求項10】
復号デバイスにより実現されるコーディングの方法であって、
タイルにパーティションされた現在ピクチャのビットストリームを取得するステップであり、前記ピクチャに含まれる前記タイルは、ラスタースキャン順序に従ってインデックス付けされる、ステップと、
前記現在ピクチャのタイル列におけるタイルの数を取得するステップと、
前記現在ピクチャの長方形スライスのアドレスの値を取得するステップであり、前記スライスの前記アドレスは、前記スライスの一番上のタイル行の一番左のタイルのインデックスである、ステップと、
前記スライスの前記アドレスの前記値に従ってtileYの値を取得するステップであり、前記tileYの値は、タイル行の単位での前記スライスの一番上のタイル行の一番左のタイルの垂直座標を示し、前記垂直座標は、前記スライスの前記アドレスの前記値と前記現在ピクチャの前記タイル行におけるタイルの数との間の整数除算演算に従って取得される、ステップと、
前記現在ピクチャの前記タイル列における前記タイルの数と前記tileYの値との間の差値が第2の閾値に等しくないとき、前記現在ピクチャの前記ビットストリームからタイル行の単位での前記長方形スライスのスライス高さの指示値をパースするステップと
を含む方法。
【請求項11】
前記現在ピクチャの前記タイル列における前記タイルの数と前記tileYの値との間の差値が前記第2の閾値に等しいとき、前記スライス高さの前記指示値をデフォルト値に設定するステップを更に含む、請求項10に記載の方法。
【請求項12】
前記デフォルト値は、前記スライスの高さが1つのタイル行を含むことを示す、請求項11に記載の方法。
【請求項13】
前記スライスの前記アドレスの前記値に従ってtileYの値を取得するステップは、
前記現在ピクチャのタイル行におけるタイルの数を取得するステップと、
前記スライスの前記アドレスの前記値及び前記現在ピクチャの前記タイル行における前記タイルの数に従って前記tileYの値を取得するステップと
を含む、請求項10乃至12のうちいずれか1項に記載の方法。
【請求項14】
前記スライスの前記アドレスの前記値は、タイルインデックスにおける前記スライスの左上座標のアドレスを指定する、請求項10乃至13のうちいずれか1項に記載の方法。
【請求項15】
符号化デバイスにより実現されるコーディングの方法であって、
現在ピクチャのタイル行におけるタイルの数を取得するステップと、
前記現在ピクチャの長方形スライスのアドレスの値を取得するステップであり、前記スライスの前記アドレスは、前記スライスの一番上のタイル行の一番左のタイルのインデックスであり、前記ピクチャに含まれる前記タイルは、ラスタースキャン順序に従ってインデックス付けされる、ステップと、
前記スライスの前記アドレスの前記値に従ってtileXの値を取得するステップであり、前記tileXの値は、タイル列の単位での前記スライスの一番上のタイル行の一番左のタイルの水平座標を示し、前記水平座標は、前記スライスの前記アドレスの前記値と前記現在ピクチャの前記タイル行における前記タイルの数との間のモジュラス演算に従って取得される、ステップと、
前記現在ピクチャの前記タイル行における前記タイルの数と前記tileXの値との間の差値が第1の閾値に等しくないとき、前記現在ピクチャのタイル列の単位での前記長方形スライスのスライス幅の指示値をコーディングして、ビットストリームを取得するステップと
を含む方法。
【請求項16】
前記現在ピクチャのタイル列におけるタイルの数を取得するステップと、
前記スライスの前記アドレスの前記値に従ってtileYの値を取得するステップであり、前記tileYの値はタイルインデックスにおける垂直アドレスを示す、ステップと、
前記現在ピクチャの前記タイル列における前記タイルの数と前記tileYの値との間の差値が第2の閾値に等しくないとき、前記現在ピクチャのスライス高さの指示値を前記ビットストリームにコーディングするステップと
を更に含む、請求項15に記載の方法。
【請求項17】
前記スライスの前記アドレスの前記値に従ってtileXの値を取得するステップは、
前記スライスの前記アドレスの前記値及び前記現在ピクチャの前記タイル行における前記タイルの数に従って前記tileXの値を取得するステップを含む、請求項15又は16に記載の方法。
【請求項18】
前記スライスの前記アドレスの前記値に従ってtileYの値を取得するステップは、
前記スライスの前記アドレスの前記値及び前記現在ピクチャの前記タイル行における前記タイルの数に従って前記tileYの値を取得するステップを含む、請求項16に記載の方法。
【請求項19】
前記tileYの値は、前記スライスの前記アドレスの前記値及び前記現在ピクチャの前記タイル行における前記タイルの数との間の整数除算演算に従って取得される、請求項16又は18に記載の方法。
【請求項20】
符号化デバイスにより実現されるコーディングの方法であって、
現在ピクチャのタイル列におけるタイルの数を取得するステップと、
前記現在ピクチャの長方形スライスのアドレスの値を取得するステップであり、前記スライスの前記アドレスは、前記スライスの一番上のタイル行の一番左のタイルのインデックスであり、前記ピクチャに含まれる前記タイルは、ラスタースキャン順序に従ってインデックス付けされる、ステップと、
前記スライスの前記アドレスの前記値に従ってtileYの値を取得するステップであり、前記tileYの値は、タイル行の単位での前記スライスの一番上のタイル行の一番左のタイルの垂直座標を示し、前記垂直座標は、前記スライスの前記アドレスの前記値と前記現在ピクチャの前記タイル行におけるタイルの数との間の整数除算演算に従って取得される、ステップと、
前記現在ピクチャの前記タイル列における前記タイルの数と前記tileYの値との間の差値が第2の閾値に等しくないとき、前記現在ピクチャのスライス高さの指示値をコーディングして、ビットストリームを取得するステップと
を含む方法。
【請求項21】
請求項1乃至14のうちいずれか1項に記載の方法を実行するための処理回路を含むデコーダ。
【請求項22】
請求項15乃至20のうちいずれか1項に記載の方法を実行するための処理回路を含むエンコーダ。
【請求項23】
コンピュータ又はプロセッサ上で実行されたとき、請求項1乃至20のうちいずれか1項に記載の方法を実行するためのプログラムコードを含むコンピュータプログラム。
【請求項24】
デコーダであって、
1つ以上のプロセッサと、
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能記憶媒体であり、前記プログラミングは、前記プロセッサにより実行されたとき、請求項1乃至14のうちいずれか1項に記載の方法を実行するように当該デコーダを構成する、非一時的なコンピュータ読み取り可能記憶媒体と
を含むデコーダ。
【請求項25】
エンコーダであって、
1つ以上のプロセッサと、
前記プロセッサに結合され、前記プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能記憶媒体であり、前記プログラミングは、前記プロセッサにより実行されたとき、請求項15乃至20のうちいずれか1項に記載の方法を実行するように当該エンコーダを構成する、非一時的なコンピュータ読み取り可能記憶媒体と
を含むエンコーダ。
【請求項26】
コンピュータデバイスにより実行されたとき、前記コンピュータデバイスに請求項1乃至20のうちいずれか1項に記載の方法を実行させるプログラムコードを保持する非一時的なコンピュータ読み取り可能媒体。
【請求項27】
ビデオデータ復号デバイスであって、
ビットストリームの形式でビデオデータを記憶するように構成された非一時的なメモリストレージと、
請求項1乃至14のうちいずれか1項に記載の方法を実行するように構成されたビデオデコーダと
を含むビデオデータ復号デバイス。
【請求項28】
ビデオデータ符号化デバイスであって、
ビットストリームの形式でビデオデータを記憶するように構成された非一時的なメモリストレージと、
請求項15乃至20のうちいずれか1項に記載の方法を実行するように構成されたビデオエンコーダと
を含むビデオデータ符号化デバイス。
【請求項29】
ビデオ復号装置であって、
タイルにパーティションされた現在ピクチャのビットストリームを取得するように構成された取得モジュールであり、前記ピクチャに含まれる前記タイルは、ラスタースキャン順序に従ってインデックス付けされ、前記取得モジュールは、前記現在ピクチャのタイル行におけるタイルの数を取得し、前記現在ピクチャの長方形スライスのアドレスの値を取得するように更に構成され、前記スライスの前記アドレスは、前記スライスの一番上のタイル行の一番左のタイルのインデックスである、取得モジュールと、
前記スライスの前記アドレスの前記値に従ってtileXの値を取得するように構成された計算モジュールであり、前記tileXの値は、タイル列の単位での前記スライスの一番上のタイル行の一番左のタイルの水平座標を示し、前記水平座標は、前記スライスの前記アドレスの前記値と前記現在ピクチャの前記タイル行における前記タイルの数との間のモジュラス演算に従って取得される、計算モジュールと、
前記現在ピクチャの前記タイル行における前記タイルの数と前記tileXの値との間の差値が第1の閾値に等しくないとき、前記現在ピクチャの前記ビットストリームからタイル列の単位での前記長方形スライスのスライス幅の指示値をパースするように構成されたパースモジュールと
を含むビデオ復号装置。
【請求項30】
前記取得モジュール、前記計算モジュール及び前記パースモジュールは、請求項1乃至のうちいずれか1項に記載の方法を実行するように更に構成される、請求項29に記載のビデオ復号装置。
【請求項31】
ビデオ復号装置であって、
タイルにパーティションされた現在ピクチャのビットストリームを取得するように構成された取得モジュールであり、前記ピクチャに含まれる前記タイルは、ラスタースキャン順序に従ってインデックス付けされ、前記取得モジュールは、前記現在ピクチャのタイル列におけるタイルの数を取得し、前記現在ピクチャの長方形スライスのアドレスの値を取得するように更に構成され、前記スライスの前記アドレスは、前記スライスの一番上のタイル行の一番左のタイルのインデックスである、取得モジュールと、
前記スライスの前記アドレスの前記値に従ってtileYの値を取得するように構成された計算モジュールであり、前記tileYの値は、タイル行の単位での前記スライスの一番上のタイル行の一番左のタイルの垂直座標を示し、前記垂直座標は、前記スライスの前記アドレスの前記値と前記現在ピクチャの前記タイル行におけるタイルの数との間の整数除算演算に従って取得される、計算モジュールと、
前記現在ピクチャの前記タイル列における前記タイルの数と前記tileYの値との間の差値が第2の閾値に等しくないとき、前記現在ピクチャの前記ビットストリームからタイル行の単位での前記長方形スライスのスライス高さの指示値をパースするように構成されたパースモジュールと
を含むビデオ復号装置。
【請求項32】
前記取得モジュール、前記計算モジュール及び前記パースモジュールは、請求項11乃至14のうちいずれか1項に記載の方法を実行するように更に構成される、請求項31に記載のビデオ復号装置。
【請求項33】
ビデオ符号化装置であって、
現在ピクチャのタイル行におけるタイルの数を取得するように構成された取得モジュールであり、前記取得モジュールは、前記現在ピクチャの長方形スライスのアドレスの値を取得するように更に構成され、前記スライスの前記アドレスは、前記スライスの一番上のタイル行の一番左のタイルのインデックスであり、前記ピクチャに含まれる前記タイルは、ラスタースキャン順序に従ってインデックス付けされる、取得モジュールと、
前記スライスの前記アドレスの前記値に従ってtileXの値を取得するように構成された計算モジュールであり、前記tileXの値は、タイル列の単位での前記スライスの一番上のタイル行の一番左のタイルの水平座標を示し、前記水平座標は、前記スライスの前記アドレスの前記値と前記現在ピクチャの前記タイル行における前記タイルの数との間のモジュラス演算に従って取得される、計算モジュールと、
前記現在ピクチャの前記タイル行における前記タイルの数と前記tileXの値との間の差値が第1の閾値に等しくないとき、タイル列の単位での前記長方形スライスのスライス幅の指示値を前記現在ピクチャのビットストリームにコーディングするように構成されたコーディングモジュールと
を含むビデオ符号化装置。
【請求項34】
前記取得モジュール、前記計算モジュール及び前記コーディングモジュールは、請求項16乃至19のうちいずれか1項に記載の方法を実行するように更に構成される、請求項33に記載のビデオ符号化装置。
【請求項35】
ビデオ符号化装置であって、
現在ピクチャのタイル列におけるタイルの数を取得するように構成された取得モジュールであり、前記取得モジュールは、前記現在ピクチャの長方形スライスのアドレスの値を取得するように更に構成され、前記スライスの前記アドレスは、前記スライスの一番上のタイル行の一番左のタイルのインデックスであり、前記ピクチャに含まれる前記タイルは、ラスタースキャン順序に従ってインデックス付けされる、取得モジュールと、
前記スライスの前記アドレスの前記値に従ってtileYの値を取得するように構成された計算モジュールであり、前記tileYの値は、タイル行の単位での前記スライスの一番上のタイル行の一番左のタイルの垂直座標を示し、前記垂直座標は、前記スライスの前記アドレスの前記値と前記現在ピクチャの前記タイル行におけるタイルの数との間の整数除算演算に従って取得される、計算モジュールと、
前記現在ピクチャの前記タイル列における前記タイルの数と前記tileYの値との間の差値が第2の閾値に等しくないとき、スライス高さの指示値を前記現在ピクチャのビットストリームにコーディングするように構成されたコーディングモジュールと
を含むビデオ符号化装置。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本出願は、世界知的所有権機関におけるPCT/EP2020/055220からの優先権を主張する。上記の特許出願の開示の全内容を参照により援用する。
【0002】
[技術分野]
本出願の実施形態は、概してピクチャ処理の分野に関し、より詳細には、スライス用のピクチャパーティション情報をシグナリングすることに関する。
【背景技術】
【0003】
ビデオコーディング(ビデオ符号化及び/又は復号)は、広範囲のデジタルビデオアプリケーション、例えば、放送デジタルTV、インターネット及び移動ネットワーク上のビデオ送信、ビデオチャットのようなリアルタイム会話アプリケーション、ビデオ会議、DVD及びブルーレイディスク、ビデオコンテンツ取得及び編集システム、並びにセキュリティアプリケーションのカムコーダにおいて使用される。
【0004】
比較的短いビデオですら描写するために必要なビデオデータの量は相当なものになる可能性があり、これは、データがストリーミングされるとき或いは限られた帯域幅容量を有する通信ネットワークを横切って通信されるときに、困難を生じることがある。したがって、ビデオデータは、一般的に、現代の電気通信ネットワークを横切って通信される前に圧縮される。メモリリソースが制限されることがあるので、ビデオが記憶デバイスに記憶されるとき、ビデオのサイズも問題になる可能性がある。ビデオ圧縮デバイスは、しばしば、送信又は記憶の前にビデオデータをコーディングするためにソースにおいてソフトウェア及び/又はハードウェアを使用し、それにより、デジタルビデオ画像を表すために必要なデータの量を減少させる。次いで、圧縮されたデータは、ビデオデータを復号するビデオ解凍デバイスにより宛先で受信される。限られたネットワークリソース及びより高いビデオ品質の更に高まる要求のため、ピクチャ品質にほとんど或いは全く犠牲を払わずに圧縮比を改善する、改善された圧縮及び解凍技術が望ましい。
【発明の概要】
【0005】
本出願の実施形態は、独立請求項に従って符号化及び復号するための装置及び方法を提供する。
【0006】
上記及び他の目的は、独立請求項の対象物により達成される。更なる実現形式は、従属請求項、詳細な説明及び図面から明らかである。
【0007】
本発明の第1の態様は、復号デバイスにより実現されるコーディングの方法を提供し、当該方法は、現在ピクチャのビットストリームを取得するステップと、現在ピクチャのタイル行におけるタイルの数を取得するステップと、現在ピクチャのスライスのアドレスの値を取得するステップと、スライスのアドレスの値に従ってtileXの値を取得するステップと、現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しくないとき、現在ピクチャのビットストリームからスライス幅の指示値をパースするステップとを含む。
【0008】
本発明の実施形態によれば、シグナリング方式が開示され、少なくとも2つのタイル列のみが存在し、その場合、スライス幅のシンタックスエレメントがシグナリングされる。したがって、ビットストリーム利用率及び復号効率が改善されている。
【0009】
第1の閾値は整数値であり、第1の閾値は0、1、2...でもよい。
【0010】
タイル行におけるタイルの数は、タイル列の数と同じ意味であることが理解され得る。
【0011】
一実現方式では、当該方法は、現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しいとき、スライス幅の指示値をデフォルト値に設定するステップを更に含む。デフォルト値は整数値であり、一例では、デフォルト値は0又は1でもよい。
【0012】
一実現方式では、デフォルト値は、スライスの幅が1つのタイル列を含むことを示す。
【0013】
一実現方式では、スライスのアドレスの値に従ってtileXの値を取得するステップは、スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数に従ってtileXの値を取得するステップを含む。
【0014】
一実現方式では、スライスのアドレスは、スライスの一番上のタイル行の一番左のタイルのインデックスであり、現在ピクチャに含まれるタイルは、ラスタースキャン順序に従ってインデックス付けされる。
【0015】
一実現方式では、tileXの値は、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算に従って取得される。いくつかの例では、「現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しくないとき」という条件は、「現在ピクチャのタイル行におけるタイルの数と、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算の値との間の差値が第1の閾値に等しくないとき」という条件に等しいことが理解され得る。したがって、tileXの値は最初に計算されず、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算の結果に従って表される。
【0016】
一実現方式では、スライスのアドレスの値は、タイルインデックスにおけるスライスの左上座標のアドレスを指定する。
【0017】
一実現方式では、tileXの値は水平座標の値を示す。一例では、tileXの値はタイルインデックスにおける水平アドレスを示す。
【0018】
一実現方式では、当該方法は、現在ピクチャのタイル列におけるタイルの数を取得するステップと、スライスのアドレスの値に従ってtileYの値を取得するステップと、現在ピクチャのタイル列におけるタイルの数とtileYの値との間の差値が第2の閾値に等しくないとき、現在ピクチャのビットストリームからスライス高さの指示値をパースするステップとを更に含む。第2の閾値は整数値であり、第2の閾値は0、1、2...でもよい。
【0019】
タイル列におけるタイルの数は、タイル行の数と同じ意味であることが理解され得る。
【0020】
一実現方式では、当該方法は、現在ピクチャのタイル列におけるタイルの数とtileYの値との間の差値が第2の閾値に等しいとき、スライス高さの指示値をデフォルト値に設定するステップを更に含む。
【0021】
一実現方式では、スライスのアドレスの値に従ってtileYの値を取得するステップは、スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数に従ってtileYの値を取得するステップを含む。
【0022】
一実現方式では、tileYの値は、スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数との間の整数除算演算に従って取得される。一実現方式では、tileYの値は垂直座標の値を示す。いくつかの例では、「現在ピクチャのタイル列におけるタイルの数とtileYの値との間の差値が第2の閾値に等しくないとき」という条件は、「現在ピクチャのタイル列におけるタイルの数と、スライスのアドレスの値と現在ピクチャのタイル列におけるタイルの数との間の整数除算演算の値との間の差値が第2の閾値に等しくないとき」という条件に等しいことが理解され得る。したがって、tileYの値は最初に計算されず、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間の整数除算演算の結果に従って表される。一例では、tileYの値はタイルインデックスにおける垂直アドレスを示す。
【0023】
本発明の第2の態様は、復号デバイスにより実現されるコーディングの方法を提供し、当該方法は、現在ピクチャのビットストリームを取得するステップと、現在ピクチャのタイル列におけるタイルの数を取得するステップと、現在ピクチャのスライスのアドレスの値を取得するステップと、スライスのアドレスの値に従ってtileYの値を取得するステップと、現在ピクチャのタイル列におけるタイルの数とtileYの値との間の差値が第2の閾値に等しくないとき、現在ピクチャのビットストリームからスライス高さの指示値をパースするステップとを含む。
【0024】
第2の閾値は整数値であり、第2の閾値は0、1、2...でもよい。
【0025】
タイル列におけるタイルの数は、タイル行の数と同じ意味であることが理解され得る。
【0026】
一実現方式では、当該方法は、現在ピクチャのタイル列におけるタイルの数とtileYの値との間の差値が第2の閾値に等しいとき、スライス高さの指示値をデフォルト値に設定するステップを更に含む。デフォルト値は整数値であり、一例では、デフォルト値は0又は1でもよい。
【0027】
一実現方式では、デフォルト値は、スライスの高さが1つのタイル行を含むことを示す。
【0028】
一実現方式では、スライスのアドレスの値に従ってtileYの値を取得するステップは、
現在ピクチャのタイル行におけるタイルの数を取得するステップと、
スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数に従ってtileYの値を取得するステップと
を含む。
【0029】
一実現方式では、tileYの値は垂直座標の値を示す。一例では、tileYの値はタイルインデックスにおける垂直アドレスを示す。
【0030】
一実現方式では、スライスのアドレスは、スライスの一番上のタイル行の一番左のタイルのインデックスであり、現在ピクチャに含まれるタイルは、ラスタースキャン順序に従ってインデックス付けされる。
【0031】
一実現方式では、tileYの値は、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間の整数除算演算に従って取得される。
【0032】
一実現方式では、スライスのアドレスの値は、タイルインデックスにおけるスライスの左上座標のアドレスを指定する。
【0033】
一実現方式では、当該方法は、現在ピクチャのタイル行におけるタイルの数を取得するステップと、スライスのアドレスの値に従ってtileXの値を取得するステップと、現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しくないとき、現在ピクチャのビットストリームからスライス幅の指示値をパースするステップとを更に含む。第1の閾値は整数値であり、第1の閾値は0、1、2...でもよい。
【0034】
タイル行におけるタイルの数は、タイル列の数と同じ意味であることが理解され得る。
【0035】
一実現方式では、当該方法は、現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しいとき、スライス幅の指示値をデフォルト値に設定するステップを更に含む。デフォルト値は整数値であり、一例では、デフォルト値は0又は1でもよい。
【0036】
一実現方式では、デフォルト値は、スライスの幅が1つのタイル列を含むことを示す。
【0037】
一実現方式では、スライスのアドレスの値に従ってtileXの値を取得するステップは、スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数に従ってtileXの値を取得するステップを含む。
【0038】
一実現方式では、スライスのアドレスは、スライスの一番上のタイル行の一番左のタイルのインデックスであり、現在ピクチャに含まれるタイルは、ラスタースキャン順序に従ってインデックス付けされる。
【0039】
一実現方式では、tileXの値は、スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算に従って取得される。いくつかの例では、「現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しくないとき」という条件は、「現在ピクチャのタイル行におけるタイルの数と、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算の値との間の差値が第1の閾値に等しくないとき」という条件に等しいことが理解され得る。したがって、tileXの値は最初に計算されず、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算の結果に従って表される。
【0040】
一実現方式では、スライスのアドレスの値は、タイルインデックスにおけるスライスの左上座標のアドレスを指定する。
【0041】
一実現方式では、tileXの値は水平座標の値を示す。
【0042】
本発明の第3の態様は、符号化デバイスにより実現されるコーディングの方法を提供し、当該方法は、現在ピクチャのタイル行におけるタイルの数を取得するステップと、現在ピクチャのスライスのアドレスの値を取得するステップと、スライスのアドレスの値に従ってtileXの値を取得するステップと、現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しくないとき、スライス幅の指示値を現在ピクチャのビットストリームにコーディングするステップとを含む。
【0043】
本発明の実施形態によれば、シグナリング方式が開示され、少なくとも2つのタイル列のみが存在し、その場合、スライス幅のシンタックスエレメントがシグナリングされる。したがって、ビットストリーム利用率及び復号効率が改善されている。
【0044】
第1の閾値は整数値であり、第1の閾値は0、1、2...でもよい。
【0045】
タイル行におけるタイルの数は、タイル列の数と同じ意味であることが理解され得る。
【0046】
一実現方式では、スライスのアドレスの値に従ってtileXの値を取得するステップは、スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数に従ってtileXの値を取得するステップを含む。
【0047】
一実現方式では、スライスのアドレスは、スライスの一番上のタイル行の一番左のタイルのインデックスであり、現在ピクチャに含まれるタイルは、ラスタースキャン順序に従ってインデックス付けされる。
【0048】
一実現方式では、tileXの値は、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算に従って取得される。いくつかの例では、「現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しくないとき」という条件は、「現在ピクチャのタイル行におけるタイルの数と、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算の値との間の差値が第1の閾値に等しくないとき」という条件に等しいことが理解され得る。したがって、tileXの値は最初に計算されず、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算の結果に従って表される。
【0049】
一実現方式では、スライスのアドレスの値は、タイルインデックスにおけるスライスの左上座標のアドレスを指定する。
【0050】
一実現方式では、tileXの値は水平座標の値を示す。
【0051】
一実現方式では、当該方法は、現在ピクチャのタイル列におけるタイルの数を取得するステップと、スライスのアドレスの値に従ってtileYの値を取得するステップと、現在ピクチャのタイル列におけるタイルの数とtileYの値との間の差値が第2の閾値に等しくないとき、スライス高さの指示値を現在ピクチャのビットストリームにコーディングするステップとを更に含む。第2の閾値は整数値であり、第2の閾値は0、1、2...でもよい。
【0052】
タイル列におけるタイルの数は、タイル行の数と同じ意味であることが理解され得る。
【0053】
一実現方式では、スライスのアドレスの値に従ってtileYの値を取得するステップは、スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数に従ってtileYの値を取得するステップを含む。
【0054】
一実現方式では、tileYの値は、スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数との間の整数除算演算に従って取得される。一実現方式では、tileYの値は垂直座標の値を示す。いくつかの例では、「現在ピクチャのタイル列におけるタイルの数とtileYの値との間の差値が第2の閾値に等しくないとき」という条件は、「現在ピクチャのタイル列におけるタイルの数と、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間の整数除算演算の値との間の差値が第2の閾値に等しくないとき」という条件に等しいことが理解され得る。したがって、tileYの値は最初に計算されず、スライスのアドレスの値と現在ピクチャのタイル列におけるタイルの数との間の整数除算演算の結果に従って表される。
【0055】
本発明の第4の態様は、符号化デバイスにより実現されるコーディングの方法を提供し、当該方法は、現在ピクチャのタイル列におけるタイルの数を取得するステップと、現在ピクチャのスライスのアドレスの値を取得するステップと、スライスのアドレスの値に従ってtileYの値を取得するステップと、現在ピクチャのタイル列におけるタイルの数とtileYの値との間の差値が第2の閾値に等しくないとき、スライス高さの指示値を現在ピクチャのビットストリームにコーディングするステップとを含む。
【0056】
第2の閾値は整数値であり、第2の閾値は0、1、2...でもよい。
【0057】
タイル列におけるタイルの数は、タイル行の数と同じ意味であることが理解され得る。
【0058】
一実現方式では、スライスのアドレスの値に従ってtileYの値を取得するステップは、
スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数に従ってtileYの値を取得するステップを含む。
【0059】
一実現方式では、tileYの値は垂直座標の値を示す。
【0060】
一実現方式では、スライスのアドレスは、スライスの一番上のタイル行の一番左のタイルのインデックスであり、現在ピクチャに含まれるタイルは、ラスタースキャン順序に従ってインデックス付けされる。
【0061】
一実現方式では、tileYの値は、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間の整数除算演算に従って取得される。
【0062】
一実現方式では、スライスのアドレスの値は、タイルインデックスにおけるスライスの左上座標のアドレスを指定する。
【0063】
一実現方式では、当該方法は、現在ピクチャのタイル行におけるタイルの数を取得するステップと、スライスのアドレスの値に従ってtileXの値を取得するステップと、現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しくないとき、スライス幅の指示値を現在ピクチャのビットストリームにコーディングするステップとを更に含む。第1の閾値は整数値であり、第1の閾値は0、1、2...でもよい。
【0064】
タイル行におけるタイルの数は、タイル列の数と同じ意味であることが理解され得る。
【0065】
一実現方式では、スライスのアドレスの値に従ってtileXの値を取得するステップは、スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数に従ってtileXの値を取得するステップを含む。
【0066】
一実現方式では、スライスのアドレスは、スライスの一番上のタイル行の一番左のタイルのインデックスであり、現在ピクチャに含まれるタイルは、ラスタースキャン順序に従ってインデックス付けされる。
【0067】
一実現方式では、tileXの値は、スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算に従って取得される。いくつかの例では、「現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しくないとき」という条件は、「現在ピクチャのタイル行におけるタイルの数と、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算の値との間の差値が第1の閾値に等しくないとき」という条件に等しいことが理解され得る。したがって、tileXの値は最初に計算されず、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算の結果に従って表される。
【0068】
一実現方式では、スライスのアドレスの値は、タイルインデックスにおけるスライスの左上座標のアドレスを指定する。
【0069】
一実現方式では、tileXの値は水平座標の値を示す。
【0070】
本発明の第5の態様は、ビデオ復号装置を提供し、当該装置は、
現在ピクチャのビットストリームを取得するように構成された取得モジュールであり、取得モジュールは、現在ピクチャのタイル行におけるタイルの数を取得し、現在ピクチャのスライスのアドレスの値を取得するように構成される、取得モジュールと、
スライスのアドレスの値に従ってtileXの値を取得するように構成された計算モジュールと、
現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しくないとき、現在ピクチャのビットストリームからスライス幅の指示値をパースするように構成されたパースモジュールとを含む。
【0071】
本発明の第5の態様における各モジュールの詳細は、本発明の上記の第1の態様における実施形態及び実現方式を参照してもよい。
【0072】
本発明の第6の態様は、ビデオ復号デバイスを提供し、当該復号デバイスは、
現在ピクチャのビットストリームを取得するように構成された取得モジュールであり、取得モジュールは、現在ピクチャのタイル列におけるタイルの数を取得し、現在ピクチャのスライスのアドレスの値を取得するように構成される、取得モジュールと、
スライスのアドレスの値に従ってtileYの値を取得するように構成された計算モジュールと、
現在ピクチャのタイル列におけるタイルの数とtileYの値との間の差値が第2の閾値に等しくないとき、現在ピクチャのビットストリームからスライス高さの指示値をパースするように構成されたパースモジュールとを含む。
【0073】
本発明の第6の態様における各モジュールの詳細は、本発明の上記の第2の態様における実施形態及び実現方式を参照してもよい。
【0074】
本発明の第7の態様は、ビデオ符号化デバイスを提供し、当該符号化デバイスは、
現在ピクチャのタイル行におけるタイルの数を取得するように構成された取得モジュールであり、取得モジュールは、現在ピクチャのスライスのアドレスの値を取得するように構成される、取得モジュールと、
スライスのアドレスの値に従ってtileXの値を取得するように構成された計算モジュールと、
現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しくないとき、スライス幅の指示値を現在ピクチャのビットストリームにコーディングするように構成されたコーディングモジュールと
を含む。
【0075】
本発明の第7の態様における各モジュールの詳細は、本発明の上記の第3の態様における実施形態及び実現方式を参照してもよい。
【0076】
本発明の第8の態様は、ビデオ符号化デバイスを提供し、当該ビデオ符号化デバイスは、
現在ピクチャのタイル列におけるタイルの数を取得するように構成された取得モジュールであり、取得モジュールは、現在ピクチャのスライスのアドレスの値を取得するように構成される、取得モジュールと、
スライスのアドレスの値に従ってtileYの値を取得するように構成された計算モジュールと、
現在ピクチャのタイル列におけるタイルの数とtileYの値との間の差値が第2の閾値に等しくないとき、スライス高さの指示値を現在ピクチャのビットストリームにコーディングするように構成されたコーディングモジュールと
を含む。
【0077】
本発明の第8の態様における各モジュールの詳細は、本発明の上記の第4の態様における実施形態及び実現方式を参照してもよい。
【0078】
本発明の第9の態様は、第1の態様、第2の態様及び第1の態様、第2の態様の実現方式のいずれか1つによる方法を実行するための処理回路を含むデコーダを提供する。
【0079】
本発明の第10の態様は、第3の態様、第4の態様及び第3の態様、第4の態様の実現方式のいずれか1つによる方法を実行するための処理回路を含むデコーダを提供する。
【0080】
本発明の第10の態様は、第1の態様、第2の態様、第3の態様、第4の態様並びに第1の態様、第2の態様、第3の態様及び第4の態様の実現方式のいずれか1つの方法を実行するためのプログラムコードを含むコンピュータプログラム製品を提供する。
【0081】
本発明の第11の態様は、コンピュータデバイスにより実行されたとき、コンピュータデバイスに第1の態様、第2の態様、第3の態様、第4の態様並びに第1の態様、第2の態様、第3の態様及び第4の態様の実現方式のいずれか1つの方法を実行させるプログラムコードを保持する非一時的なコンピュータ読み取り可能媒体を提供する。
【0082】
本発明の第12の態様は、
1つ以上のプロセッサと、
プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能記憶媒体であり、プログラミングは、プロセッサにより実行されたとき、第1の態様、第2の態様及び第1の態様、第2の態様の実現方式のいずれか1つによる方法を実行するようにデコーダを構成する、非一時的なコンピュータ読み取り可能記憶媒体と
を含むデコーダを提供する。
【0083】
本発明の第13の態様は、
1つ以上のプロセッサと、
プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能記憶媒体であり、プログラミングは、プロセッサにより実行されたとき、第3の態様、第4の態様及び第3の態様、第4の態様の実現方式のいずれか1つによる方法を実行するようにデコーダを構成する、非一時的なコンピュータ読み取り可能記憶媒体と
を含むエンコーダを提供する。
【図面の簡単な説明】
【0084】
以下に、本発明の実施形態について、添付の図及び図面を参照してより詳細に説明する。
図1A】本発明の実施形態を実現するように構成されたビデオコーディングシステムの例を示すブロック図である。
図1B】本発明の実施形態を実現するように構成されたビデオコーディングシステムの他の例を示すブロック図である。
図2】本発明の実施形態を実現するように構成されたビデオエンコーダの例を示すブロック図である。
図3】本発明の実施形態を実現するように構成されたビデオデコーダの例示的な構造を示すブロック図である。
図4】符号化装置又は復号装置の例を示すブロック図である。
図5】符号化装置又は復号装置の他の例を示すブロック図である。
図6】CTUに分割されたピクチャの例である。
図7】CTUのタイルベースのラスタースキャン順序の例である。
図8】ピクチャパーティションの例である。
図9】ピクチャ内のCTUアドレス情報の例である。
図10】ピクチャパーティションの他の例である。
図11】コンテンツ配信サービスを実現するコンテンツ供給システム3100の例示的な構造を示すブロック図である。
図12】端末デバイスの例の構造を示すブロック図である。
図13】方法の実施形態を示すフローチャートである。
図14】装置の実施形態を示すブロック図である。
【0085】
以下では、同一の参照符号は、他に明示的に指定されていない場合、同一の或いは少なくとも機能的に等価な特徴を示す。
【発明を実施するための形態】
【0086】
以下の説明では、本開示の一部を形成し、例示により本発明の実施形態の特定の態様又は本発明の実施形態が使用され得る特定の態様を示す、添付の図面に参照が行われる。本発明の実施形態は、他の態様で使用され、図面に示さない構造的又は論理的変更を含んでもよいことが理解される。したがって、以下の詳細な説明は、限定的な意味で考えられるべきでなく、本発明の範囲は、添付の特許請求の範囲により定義される。
【0087】
例えば、記載の方法に関連する開示はまた、方法を実行するように構成された対応するデバイス又はシステムにも当てはまってもよく、逆も同様であることが理解される。例えば、1つ又は複数の特定の方法のステップが記載される場合、対応するデバイスは、記載される1つ又は複数の方法のステップを実行するための1つ又は複数のユニット、例えば、機能ユニットを、このような1つ以上のユニットが明示的に記載されないか或いは図面に示されない場合でも含んでもよい(例えば、1つのユニットが1つ又は複数のステップを実行するか、或いは、複数のユニットが複数のステップのうち1つ以上をそれぞれ実行する)。他方、例えば、特定の装置が1つ又は複数のユニット、例えば、機能ユニットに基づいて記載される場合、対応する方法は、1つ又は複数のユニットの機能を実行するための1つのステップを、このような1つ又は複数のステップが明示的に記載されないか或いは図面に示されない場合でも含んでもよい(例えば、1つのステップが1つ又は複数のユニットの機能を実行するか、或いは、複数のステップが複数のユニットのうち1つ以上の機能をそれぞれ実行する)。さらに、ここに記載の様々な例示的な実施形態及び/又は態様の特徴は、特に断りのない限り、互いに結合されてもよいことが理解される。
【0088】
典型的には、ビデオコーディングは、ビデオ又はビデオシーケンスを形成するピクチャのシーケンスの処理を示す。「ピクチャ」という用語の代わりに、「フレーム」又は「画像」という用語がビデオコーディングの分野において同義語として使用されてもよい。ビデオコーディング(又は一般的にコーディング)は、ビデオ符号化及びビデオ復号の2つの部分を含む。ビデオ符号化は、ソース側で実行され、典型的には、(より効率的な記憶及び/又は送信のために)ビデオピクチャを表すために必要なデータの量を低減するように、(例えば、圧縮により)元のビデオピクチャを処理することを含む。ビデオ復号は、宛先側で実行され、典型的には、ビデオピクチャを再構成するために、エンコーダと比較して逆の処理を含む。ビデオピクチャ(又は一般的にピクチャ)の「コーディング」を参照する実施形態は、ビデオピクチャ又はそれぞれのビデオシーケンスの「符号化」又は「復号」に関連すると理解されるものとする。符号化部及び復号部の組み合わせはまた、コーデック(CODEC, Coding and Decoding)とも呼ばれる。
【0089】
可逆ビデオコーディングの場合、元のビデオピクチャは再構成でき、すなわち、再構成ビデオピクチャは、元のビデオピクチャと同じ品質を有する(記憶又は送信の間の送信損失又は他のデータ損失がないと仮定する)。非可逆ビデオコーディングの場合、ビデオピクチャを表すデータの量を低減するために、例えば、量子化による更なる圧縮が実行され、これは、デコーダで完全には再構成できず、すなわち、再構成ビデオピクチャの品質は、元のビデオピクチャの品質と比較して低いか或いは悪い。
【0090】
いくつかのビデオコーディング標準は、「非可逆ハイブリッドビデオコーデック」のグループに属する(すなわち、サンプルドメインにおける空間及び時間予測と、変換ドメインにおける量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各ピクチャは、典型的には、重複しないブロックのセットにパーティションされ、コーディングは、典型的には、ブロックレベルで実行される。言い換えると、エンコーダにおいて、例えば、空間(イントラピクチャ)予測及び/又は時間(インターピクチャ)予測を使用して予測ブロックを生成し、現在ブロック(現在処理されている/処理されるべきブロック)から予測ブロックを減算して残差ブロックを取得し、残差ブロックを変換して変換ドメインにおいて残差ブロックを量子化して送信されるべきデータの量を低減すること(圧縮)により、ビデオは典型的にはブロック(ビデオブロック)レベルで処理され、すなわち、符号化される。一方、デコーダにおいて、エンコーダと比較して逆の処理が符号化又は圧縮されたブロックに適用されて、表現のために現在ブロックを再構成する。さらに、エンコーダは、デコーダ処理ループを複製し、それにより、双方は後続のブロックを処理するために、すなわち、コーディングするために、同一の予測(例えば、イントラ及びインター予測)及び/又は再構成を生成する。
【0091】
以下に、ビデオコーディングシステム10、ビデオエンコーダ20及びビデオデコーダ30の実施形態について図1~3に基づいて説明する。
【0092】
図1Aは、本出願の技術を利用し得る例示的なコーディングシステム10、例えばビデオコーディングシステム10(又は略してコーディングシステム10)を示す概略ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(又は略してエンコーダ20)及びビデオデコーダ30(又は略してデコーダ30)は、本願に記載の様々な例による技術を実行するように構成され得るデバイスの例を表す。
【0093】
図1Aに示すように、コーディングシステム10は、符号化ピクチャデータ21を、例えば、符号化ピクチャデータ13を復号するための宛先デバイス14に提供するように構成されたソースデバイス12を含む。
【0094】
ソースデバイス12は、エンコーダ20を含み、さらに、すなわち任意選択で、ピクチャソース16と、プリプロセッサ(又は前処理ユニット)18、例えばピクチャプリプロセッサ18と、通信インタフェース又は通信ユニット22とを含んでもよい。
【0095】
ピクチャソース16は、いずれかの種類のピクチャキャプチャデバイス、例えば、現実世界のピクチャをキャプチャするためのカメラ、及び/又はいずれかの種類のピクチャ生成デバイス、例えば、コンピュータアニメーションピクチャを生成するためのコンピュータグラフィックスプロセッサ、又は現実世界のピクチャ、コンピュータにより生成されたピクチャ(例えば、スクリーンコンテンツ、仮想現実(VR, virtual reality)ピクチャ)及び/又はこれらのいずれかの組み合わせ(例えば、拡張現実(AR, augmented reality)ピクチャ)を取得及び/又は提供するためのいずれかの種類の他のデバイスでもよく或いはこれを含んでもよい。ピクチャソースは、上記のピクチャのうちいずれかを記憶するいずれかの種類のメモリ又はストレージでもよい。
【0096】
プリプロセッサ18、及び前処理ユニット18により実行される処理と対照的に、ピクチャ又はピクチャデータ17はまた、未加工ピクチャ又は未加工ピクチャデータ17とも呼ばれてもよい。
【0097】
プリプロセッサ18は、(未加工)ピクチャデータ17を受信し、ピクチャデータ17に対して前処理を実行して、前処理されたピクチャ19又は前処理されたピクチャデータ19を取得するように構成される。プリプロセッサ18により実行される前処理は、例えば、トリミング、カラーフォーマット変換(例えば、RGBからYCbCrへ)、色補正又はノイズ除去を含んでもよい。前処理ユニット18は任意選択のコンポーネントでもよいことが理解できる。
【0098】
ビデオエンコーダ20は、前処理されたピクチャデータ19を受信し、符号化ピクチャデータ21を提供するように構成される(更なる詳細については、例えば、図2に基づいて以下に説明する)。
【0099】
ソースデバイス12の通信インタフェース22は、符号化ピクチャデータ21を受信し、記憶又は直接の再構成のために、通信チャネル13上で符号化ピクチャデータ21(又はそのいずれかの更なる処理されたバージョン)を他のデバイス、例えば、宛先デバイス14又はいずれかの他のデバイスに送信するように構成されてもよい。
【0100】
宛先デバイス14は、デコーダ30(例えば、ビデオデコーダ30)を含み、さらに、すなわち任意選択で、通信インタフェース又は通信ユニット28と、ポストプロセッサ32(又は後処理ユニット32)と、ディスプレイデバイス34とを含んでもよい。
【0101】
宛先デバイス14の通信インタフェース28は、例えば、ソースデバイス12から直接に或いはいずれかの他のソース、例えば、記憶デバイス、例えば、符号化ピクチャデータ記憶デバイスから、符号化ピクチャデータ21(又はそのいずれかの更なる処理されたバージョン)を受信し、符号化ピクチャデータ21をデコーダ30に提供するように構成される。
【0102】
通信インタフェース22及び通信インタフェース28は、ソースデバイス12と宛先デバイス14との間の直接通信リンク、例えば、直接有線又は無線接続を介して、或いはいずれかの種類のネットワーク、例えば、有線若しくは無線ネットワーク又はこれらのいずれかの組み合わせ、又はいずれかの種類の私設及び公衆ネットワーク、又はこれらのいずれかの種類の組み合わせを介して、符号化ピクチャデータ21又は符号化データ13を送信又は受信するように構成されてもよい。
【0103】
通信インタフェース22は、例えば、符号化ピクチャデータ21を適切なフォーマット、例えばパケットにパッケージ化し、及び/又は通信リンク又は通信ネットワーク上での送信のために、いずれかの種類の送信符号化又は処理を使用して符号化ピクチャデータを処理するように構成されてもよい。
【0104】
通信インタフェース22の相手方を形成する通信インタフェース28は、例えば、送信データを受信し、いずれかの種類の対応する送信復号若しくは処理及び/又はパッケージ解除を使用して、送信データを処理して、符号化ピクチャデータ21を取得するように構成されてもよい。
【0105】
通信インタフェース22及び通信インタフェース28の双方は、図1Aにおいてソースデバイス12から宛先デバイス14を指す通信チャネル13についての矢印により示されるような単方向通信インタフェースとして、或いは双方向通信インタフェースとして構成されてもよく、例えば、メッセージを送信及び受信するように、例えば、接続を設定して、通信リンク及び/又はデータ送信、例えば、符号化ピクチャデータ送信に関連するいずれかの他の情報を承認及び交換するように構成されてもよい。
【0106】
デコーダ30は、符号化ピクチャデータ21を受信し、復号ピクチャデータ31又は復号ピクチャ31を提供するように構成される(更なる詳細については、例えば、図3又は図5に基づいて以下に説明する)。
【0107】
宛先デバイス14のポストプロセッサ32は、復号ピクチャデータ31(再構成ピクチャデータとも呼ばれる)、例えば復号ピクチャ31を後処理して、後処理されたピクチャデータ33、例えば、後処理されたピクチャ33を取得するように構成される。後処理ユニット32により実行される後処理は、例えば、カラーフォーマット変換(例えば、YCbCrからRGBへ)、色補正、トリミング若しくは再サンプリング、又は例えば復号ピクチャデータ31を、例えば、ディスプレイデバイス34による表示のために準備するためのいずれかの他の処理を含んでもよい。
【0108】
宛先デバイス14のディスプレイデバイス34は、後処理されたピクチャデータ33を受信して、例えば、ユーザ又はビューアにピクチャを表示するように構成される。ディスプレイデバイス34は、再構成ピクチャを提示するいずれかの種類のディスプレイ、例えば、一体型若しくは外部ディスプレイ又はモニタでもよく或いはこれを含んでもよい。ディスプレイは、例えば、液晶ディスプレイ(LCD, liquid crystal display)、有機発光ダイオード(OLED, organic light emitting diode)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、シリコン上液晶(LCoS, liquid crystal on silicon)、デジタル光プロセッサ(DLP, digital light processor)又はいずれかの種類の他のディスプレイでもよく或いはこれを含んでもよい。
【0109】
図1Aはソースデバイス12及び宛先デバイス14を別個のデバイスとして示すが、デバイスの実施形態はまた、双方又は双方の機能、ソースデバイス12又は対応する機能及び宛先デバイス14又は対応する機能を含んでもよい。このような実施形態では、ソースデバイス12又は対応する機能及び宛先デバイス14又は対応する機能は、同じハードウェア及び/又はソフトウェアを使用して或いは別個のハードウェア及び/又はソフトウェア又はこれらのいずれかの組み合わせにより実現されてもよい。
【0110】
説明に基づいて当業者に明らかなように、図1Aに示すようなソースデバイス12及び/又は宛先デバイス14内の異なるユニット又は機能の存在及び(正確な)分割は、実際のデバイス及び用途に依存して変化してもよい。
【0111】
エンコーダ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)の部分として統合されてもよい。
【0112】
ソースデバイス12及び宛先デバイス14は、いずれかの種類のハンドヘルド又は固定デバイス、例えば、ノートブック又はラップトップコンピュータ、携帯電話、スマートフォン、タブレット又はタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、ディスプレイデバイス、デジタルメディアプレイヤ、ビデオゲームコンソール、ビデオストリーミングデバイス(コンテンツサービスサーバ又はコンテンツ配信サーバ等)、放送受信機デバイス、放送送信機デバイス等を含む、広範なデバイスのうちいずれかを含んでもよく、いずれかの種類のオペレーティングシステムを使用してもよく或いは使用しなくてもよい。いくつかの場合、ソースデバイス12及び宛先デバイス14は、無線通信のために装備されてもよい。したがって、ソースデバイス12及び宛先デバイス14は無線通信デバイスでもよい。
【0113】
いくつかの場合、図1Aに示すビデオコーディングシステム10は単に例であり、本願の技術は、必ずしも符号化デバイスと復号デバイスとの間にいずれかのデータ通信を含むとは限らないビデオコーディング設定(例えば、ビデオ符号化又はビデオ復号)に適用してもよい。他の例では、データはローカルメモリから取り出される、ネットワーク上でストリーミングされる、等である。ビデオ符号化デバイスは、データを符号化してメモリに記憶してもよく、及び/又はビデオ復号デバイスはデータをメモリから取り出して復号してもよい。いくつかの例では、符号化及び復号は、互いに通信しないが単にデータをメモリに符号化し及び/又はメモリからデータを取り出して復号するデバイスにより実行される。
【0114】
説明の便宜上、本発明の実施形態は、ここでは、例えば高効率ビデオコーディング(HEVC, High-Efficiency Video Coding)又はバーサタイルビデオコーディング(VVC, Versatile Video coding)のリファレンスソフトウェア、ITU-Tビデオコーディング専門家委員会(VCEG, Video Coding Experts Group)及びISO/IEC動画専門家委員会(MPEG, Motion Picture Experts Group)のビデオコーディングに関する共同作業部会(JCT-VC, Joint Collaboration Team on Video Coding)により開発された次世代ビデオコーディング標準を参照することにより記載される。当業者は、本発明の実施形態がHEVC又はVVCに限定されないことを理解する。
【0115】
エンコーダ及び符号化方法
図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はまた、ハイブリッドビデオエンコーダ又はハイブリッドビデオコーデックによるビデオエンコーダとも呼ばれてもよい。
【0116】
残差計算ユニット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の「内蔵デコーダ」を形成するものとも呼ばれる。
【0117】
ピクチャ及びピクチャパーティション(ピクチャ及びブロック)
エンコーダ20は、例えば、入力201を介して、ピクチャ17(又はピクチャデータ17)、例えば、ビデオ又はビデオシーケンスを形成するピクチャのシーケンスのピクチャを受信するように構成されてもよい。受信したピクチャ又はピクチャデータはまた、前処理ピクチャ19(前処理ピクチャデータ19)でもよい。簡潔にするために、以下の説明はピクチャ17を参照する。ピクチャ17はまた、(特に、ビデオコーディングにおいて、現在ピクチャを他のピクチャ、例えば、同じビデオシーケンス、すなわち、現在ピクチャも含むビデオシーケンスの前に符号化及び/又は復号されたピクチャと区別するために)現在ピクチャ又はコーディングされるべきピクチャとも呼ばれてもよい。
【0118】
(デジタル)ピクチャは、強度値を有するサンプルの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つの対応する配列でもよい。
【0119】
ビデオエンコーダ20の実施形態は、ピクチャ17を複数の(典型的には重複しない)ピクチャブロック203にパーティションするように構成されたピクチャパーティションユニット(図2に図示せず)を含んでもよい。これらのブロックはまた、ルートブロック、マクロブロック(H.264/AVC)又はコーディングツリーブロック(CTB, coding tree block)又はコーディングツリーユニット(CTU, coding tree unit)(H.265/HEVC及びVVC)とも呼ばれてもよい。ピクチャパーティションユニットは、ビデオシーケンスの全てのピクチャ、及びブロックサイズを定義する対応するグリッドに同じブロックサイズを使用するように、或いは、ピクチャ又はピクチャのサブセット若しくはグループの間でブロックサイズを変更し、各ピクチャを対応するブロックにパーティションするように構成されてもよい。
【0120】
更なる実施形態では、ビデオエンコーダは、ピクチャ17のブロック203、例えば、ピクチャ17を形成する1つ、いくつか又は全てのブロックを直接受信するように構成されてもよい。ピクチャブロック203はまた、現在ピクチャブロック又はコーディングされるべきピクチャブロックとも呼ばれてもよい。
【0121】
ピクチャ17と同様に、ピクチャブロック203もまた、強度値(サンプル値)を有するサンプルの2次元配列又は行列であるか或いはそれとして考えられることができるが、ピクチャ17よりも小さい次元である。言い換えると、ブロック203は、例えば、1つのサンプル配列(例えば、モノクロピクチャ17の場合のルマ配列、又はカラーピクチャの場合のルマ若しくはクロマ配列)若しくは3つのサンプル配列(例えば、カラーピクチャ17の場合のルマ及び2つのクロマ配列)、又は適用されるカラーフォーマットに依存していずれかの他の数及び/又は種類の配列を含んでもよい。ブロック203の水平及び垂直方向(又は軸)におけるサンプルの数は、ブロック203のサイズを定義する。したがって、ブロックは、例えば、サンプルのM×N(M列×N行)配列、又は変換係数のM×N配列でもよい。
【0122】
図2に示すようなビデオエンコーダ20の実施形態は、ブロック毎にピクチャ17を符号化するように構成されてもよく、例えば、符号化及び予測がブロック203毎に実行される。
【0123】
図2に示すようなビデオエンコーダ20の実施形態は、スライス(ビデオスライスとも呼ばれる)を使用することによりピクチャをパーティション及び/又は符号化するように更に構成されてもよく、ピクチャは、(典型的には重複しない)1つ以上のスライスにパーティションされてもよく或いはこれを使用して符号化されてもよく、各スライスは、1つ以上のブロック(例えば、CTU)を含んでもよい。
【0124】
図2に示すようなビデオエンコーダ20の実施形態は、タイルグループ(ビデオタイルグループとも呼ばれる)及び/又はタイル(ビデオタイルとも呼ばれる)を使用することによりピクチャをパーティション及び/又は符号化するように更に構成されてもよく、ピクチャは、(典型的には重複しない)1つ以上のタイルグループにパーティションされてもよく或いはこれを使用して符号化されてもよく、各タイルグループは、例えば、1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含んでもよく、各タイルは、例えば、長方形形状でもよく、1つ以上のブロック(例えば、CTU)、例えば完全な或いは部分的なブロックを含んでもよい。
【0125】
残差計算
残差計算ユニット204は、ピクチャブロック203及び予測ブロック265(予測ブロック265に関する更なる詳細は以下に提供される)に基づいて、例えば、サンプル毎に(ピクセル毎に)ピクチャブロック203のサンプル値から予測ブロック265のサンプル値を減算して、サンプルドメインにおける残差ブロック205を取得することにより、残差ブロック205(残差205とも呼ばれる)を計算するように構成されてもよい。
【0126】
変換
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、例えば、離散コサイン変換(DCT, discrete cosine transform)又は離散サイン変換(DST, discrete sine transform)を適用して、変換ドメインにおける変換係数207を取得するように構成されてもよい。変換係数207はまた、変換残差係数とも呼ばれ、変換ドメインにおける残差ブロック205を表してもよい。
【0127】
変換処理ユニット206は、H.265/HEVCについて指定された変換のようなDCT/DSTの整数近似を適用するように構成されてもよい。直交DCT変換と比較して、このような整数近似は、典型的には、特定のファクタによりスケーリングされる。順変換及び逆変換により処理される残差ブロックのノルムを維持するために、更なるスケーリングファクタが変換プロセスの一部として適用される。スケーリングファクタは、典型的には、スケーリングファクタがシフト演算のために2の冪乗であること、変換係数のビット深度、精度と実現コストとの間のトレードオフ等のような特定の制約に基づいて選択される。特定のスケーリングファクタは、例えば、逆変換処理ユニット212による逆変換(及び例えば、ビデオデコーダ30における逆変換処理ユニット312による対応する逆変換)について指定され、例えば、エンコーダ20における変換処理ユニット206による順変換についての対応するスケーリングファクタが相応して指定されてもよい。
【0128】
ビデオエンコーダ20の実施形態(それぞれ、変換処理ユニット206)は、例えば、直接或いはエントロピー符号化ユニット270を介して符号化又は圧縮される、変換パラメータ、例えば、変換又は複数の変換のタイプを出力するように構成されてもよく、それにより、例えば、ビデオデコーダ30は、復号のために変換パラメータを受信して使用してもよい。
【0129】
量子化
量子化ユニット208は、例えば、スカラー量子化又はベクトル量子化を適用することにより、変換係数207を量子化して、量子化された係数209を取得するように構成されてもよい。量子化された係数209はまた、量子化された変換係数209又は量子化された残差係数209とも呼ばれてもよい。
【0130】
量子化プロセスは、変換係数207の一部又は全部に関連するビット深度を低減してもよい。例えば、nビットの変換係数は、量子化の間にmビットの変換係数に切り捨てられてもよく、nはmよりも大きい。量子化の程度は、量子化パラメータ(QP, quantization parameter)を調整することにより変更されてもよい。例えば、スカラー量子化では、より精細な或いはより粗い量子化を達成するために異なるスケーリングが適用されてもよい。より小さい量子化ステップサイズは、より精細な量子化に対応する。一方で、より大きい量子化ステップサイズは、より粗い量子化に対応する。適用可能な量子化ステップは、量子化パラメータ(QP, quantization parameter)により示されてもよい。量子化パラメータは、例えば、適用可能な量子化ステップサイズの所定のセットへのインデックスでもよい。例えば、小さい量子化パラメータは、精細な量子化(小さい量子化ステップサイズ)に対応してもよく、大きい量子化パラメータは、粗い量子化(大きい量子化ステップサイズ)に対応してもよく、逆も同様である。量子化は、量子化ステップサイズによる除算を含んでもよく、例えば、逆量子化ユニット210による対応するもの及び/又は逆の反量子化は、量子化ステップサイズによる乗算を含んでもよい。いくつかの標準、例えば、HEVCによる実施形態は、量子化ステップサイズを決定するために量子化パラメータを使用するように構成されてもよい。一般的に、量子化ステップサイズは、除算を含む式の固定点近似を使用して、量子化パラメータに基づいて計算されてもよい。量子化ステップサイズ及び量子化パラメータについての式の固定点近似において使用されるスケーリングのため、変更され得る残差ブロックのノルムを復元するために、量子化及び反量子化のための更なるスケーリングファクタが導入されてもよい。1つの例示的な実現方式では、逆変換及び反量子化のスケーリングは組み合わされてもよい。代替として、カスタマイズされた量子化テーブルが使用され、例えば、ビットストリームでエンコーダからデコーダにシグナリングされてもよい。量子化は非可逆動作であり、量子化ステップサイズの増加に伴い損失が増加する。
【0131】
ビデオエンコーダ20の実施形態(それぞれ、量子化ユニット208)は、例えば、直接或いはエントロピー符号化ユニット270を介して符号化される、量子化パラメータ(QP, quantization parameter)を出力するように構成されてもよく、それにより、例えば、ビデオデコーダ30は、復号のために量子化パラメータを受信して適用してもよい。
【0132】
逆量子化
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化ステップサイズに基づいて或いはこれを使用して、量子化ユニット208により適用された量子化方式の逆を適用することにより、量子化された係数に対して量子化ユニット208の逆量子化を適用して、反量子化された係数211を取得するように構成される。反量子化された係数211はまた、反量子化された残差係数211とも呼ばれ、典型的には量子化による損失のため変換係数と同一でないが、変換係数207に対応してもよい。
【0133】
逆変換
逆変換処理ユニット212は、変換処理ユニット206により適用された変換の逆変換、例えば、逆離散コサイン変換(DCT, discrete cosine transform)若しくは逆離散サイン変換(DST, discrete sine transform)又は他の逆変換を適用して、サンプルドメインにおける再構成された残差ブロック213(又は対応する反量子化された係数213)を取得するように構成される。再構成された残差ブロック213はまた、変換ブロック213とも呼ばれてもよい。
【0134】
再構成
再構成ユニット214(例えば、加算器又は合計器214)は、変換ブロック213(すなわち、再構成された残差ブロック213)を予測ブロック265に加算して、例えば、再構成された残差ブロック213のサンプル値と予測ブロック265のサンプル値とをサンプル毎に加算することにより、サンプルドメインにおける再構成されたブロック215を取得するように構成される。
【0135】
フィルタリング
ループフィルタユニット220(又は略して「ループフィルタ」220)は、再構成されたブロック215をフィルタリングして、フィルタリングされたブロック221を取得するように、或いは一般的に、再構成されたサンプルをフィルタリングして、フィルタリングされたサンプルを取得するように構成される。ループフィルタユニットは、例えば、ピクセル遷移を平滑化するように、或いは、ビデオ品質を改善するように構成される。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応オフセット(SAO, sample-adaptive offset)フィルタ又は1つ以上の他のフィルタ、例えば、バイラテラルフィルタ、適応ループフィルタ(ALF, adaptive loop filter)、鮮鋭化、平滑化フィルタ若しくは協調フィルタ又はこれらのいずれかの組み合わせのような1つ以上のループフィルタを含んでもよい。ループフィルタユニット220はインループフィルタであるとして図2に示されているが、他の構成では、ループフィルタユニット220はポストループフィルタとして実現されてもよい。フィルタリングされたブロック221はまた、フィルタリングされた再構成ブロック221とも呼ばれてもよい。
【0136】
ビデオエンコーダ20の実施形態(それぞれ、ループフィルタユニット220)は、例えば、直接或いはエントロピー符号化ユニット270を介して符号化される、ループフィルタパラメータ(サンプル適応オフセット情報等)を出力するように構成されてもよく、それにより、例えば、デコーダ30は、復号のために同じループフィルタパラメータ又はそれぞれのループフィルタを受信して適用してもよい。
【0137】
復号ピクチャバッファ
復号ピクチャバッファ(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によりフィルタリングされない場合には、フィルタリングされていない再構成サンプル、又は再構成されたブロック若しくはサンプルのいずれかの他の更に処理されたバージョンを記憶するように構成されてもよい。
【0138】
モード選択(パーティション及び予測)
モード選択ユニット260は、パーティションユニット262と、インター予測ユニット244と、イントラ予測ユニット254とを含み、元のピクチャデータ、例えば、元のブロック203(現在ピクチャ17の現在ブロック203)と、再構成ピクチャデータ、例えば、同じ(現在)ピクチャの及び/又は1つ又は複数の前に復号されたピクチャからの、例えば、復号ピクチャバッファ230又は他のバッファ(例えば、図示しないラインバッファ)からのフィルタリングされた及び/又はフィルタリングされていない再構成サンプル又はブロックとを受信又は取得するように構成される。再構成ピクチャデータは、予測ブロック265又は予測子265を取得するために、予測、例えば、インター予測又はイントラ予測のための参照ピクチャデータとして使用される。
【0139】
モード選択ユニット260は、現在のブロック予測モードについてのパーティション(パーティションしないことを含む)と、予測モード(例えば、イントラ又はインター予測モード)とを決定又は選択し、残差ブロック205の計算のため且つ再構成ブロック215の再構成のために使用される対応する予測ブロック265を生成するように構成されてもよい。
【0140】
モード選択ユニット260の実施形態は、最良の適合若しくは言い換えると最小残差(最小残差は送信又は記憶のためのより良い圧縮を意味する)又は最小シグナリングオーバヘッド(最小シグナリングオーバヘッドは送信又は記憶のためのより良い圧縮を意味する)を提供するか、或いは、双方を考慮するか或いはバランスさせるパーティション及び予測モードを(例えば、モード選択ユニット260によりサポートされるか或いは利用可能なものから)選択するように構成されてもよい。モード選択ユニット260は、レート歪み最適化(RDO, rate distortion optimization)に基づいて、パーティション及び予測モードを決定するように、すなわち、最小のレート歪みを提供する予測モードを選択するように構成されてもよい。この文脈における「最良」、「最小」、「最適」等のような用語は、必ずしも全体的な「最良」、「最小」、「最適」等を示すとは限らず、閾値を超えるか或いはそれよりも下である値のような終了若しくは選択基準、又は潜在的に「準最適選択」をもたらすが複雑さ及び処理時間を低減する他の制約の充足を示してもよい。
【0141】
言い換えると、パーティションユニット262は、例えば、四分木パーティション(QT, quad-tree-partitioning)、バイナリパーティション(BT, binary partitioning)若しくはトリプルツリーパーティション(TT, triple-tree-partitioning)又はこれらのいずれかの組み合わせを繰り返し使用して、ブロック203をより小さいブロックパーティション又はサブブロック(これも再びブロックを形成する)にパーティションし、例えば、ブロックパーティション又はサブブロックのそれぞれについて予測を実行するように構成されてもよく、モード選択は、パーティションされたブロック203のツリー構造の選択を含み、予測モードは、ブロックパーティション又はサブブロックのそれぞれに適用される。
【0142】
以下に、例示的なビデオエンコーダ20により実行される(例えば、パーティションユニット260による)パーティション及び(インター予測ユニット244及びイントラ予測ユニット254による)予測処理についてより詳細に説明する。
【0143】
パーティション
パーティションユニット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)と呼ばれる。
【0144】
上記のように、ここで使用される「ブロック」という用語は、ピクチャの一部、特に正方形又は長方形の部分でもよい。例えば、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)に対応してもよい。
【0145】
例えば、コーディングツリーユニット(CTU, coding tree unit)は、ルマサンプルのCTB、3つのサンプル配列を有するピクチャのクロマサンプルの2つの対応するCTB、又はモノクロピクチャ若しくは3つの別個の色平面及びサンプルをコーディングするために使用されるシンタックス構造を使用してコーディングされるピクチャのサンプルのCTBでもよく或いはこれを含んでもよい。対応して、コーディングツリーブロック(CTB, coding tree block)は、CTBへの成分の分割がパーティションであるような、何らかの値のNについてのサンプルのN×Nブロックでもよい。コーディングユニット(CU, coding unit)は、ルマサンプルのコーディングブロック、3つのサンプル配列を有するピクチャのクロマサンプルの2つの対応するコーディングブロック、又はモノクロピクチャ若しくは3つの別個の色平面及びサンプルをコーディングするために使用されるシンタックス構造を使用してコーディングされるピクチャのサンプルのコーディングブロックでもよく或いはこれを含んでもよい。対応して、コーディングブロック(CB, coding block)は、コーディングブロックへのCTBの分割がパーティションであるような、何らかの値のM及びNについてのサンプルのM×Nブロックでもよい。
【0146】
例えば、HEVCによる実施形態では、コーディングツリーユニット(CTU, coding tree unit)は、コーディングツリーとして示される四分木構造を使用することによりCUに分割されてもよい。インターピクチャ(時間)予測を使用してピクチャ領域をコーディングするか、イントラピクチャ(空間)予測を使用してピクチャ領域をコーディングするかの判断は、CUレベルで行われる。各CUは、PU分割タイプに従って、1つ、2つ又は4つのPUに更に分割できる。1つのPU内で、同じ予測プロセスが適用され、関連情報がPU毎にデコーダに送信される。PU分割タイプに基づいて予測プロセスを適用することにより残差ブロックを取得した後に、CUは、CUについてのコーディングツリーと同様の他の四分木構造に従って、変換ユニット(TU, transform unit)にパーティションできる。
【0147】
例えば、バーサタイルビデオコーディング(VVC, Versatile Video Coding)と呼ばれる現在策定中の最新のビデオコーディング標準による実施形態では、結合された四分木及び二分木(QTBT, Quad-tree and binary tree)パーティションが、例えば、コーディングブロックをパーティションするために使用される。QTBTブロック構造では、CUは正方形又は長方形形状のいずれかを有することができる。例えば、コーディングツリーユニット(CTU, coding tree unit)は、まず、四分木構造によりパーティションされる。四分木リーフノードは、二分木又は三分(又はトリプル)木構造により更にパーティションされる。パーティションリーフノードは、コーディングユニット(CU, coding unit)と呼ばれ、そのセグメント化は、更なるパーティションなしで予測及び変換処理に使用される。これは、CU、PU及びTUがQTBTコーディングブロック構造において同じブロックサイズを有することを意味する。並列に、マルチパーティション、例えばトリプルツリーパーティションがQTBTブロック構造と共に使用されてもよい。
【0148】
一例では、ビデオエンコーダ20のモード選択ユニット260は、ここに記載のパーティション技術のいずれかの組み合わせを実行するように構成されてもよい。
【0149】
上記のように、ビデオエンコーダ20は、(例えば、予め決定された)予測モードのセットから最良又は最適な予測モードを決定又は選択するように構成される。予測モードのセットは、例えば、イントラ予測モード及び/又はインター予測モードを含んでもよい。
【0150】
イントラ予測
イントラ予測モードのセットは、35個の異なるイントラ予測モード、例えば、DC(又は平均)モード及びプラナーモードのような非方向性モード、又は例えば、HEVCで定義されたような方向性モードを含んでもよく、或いは、67個の異なるイントラ予測モード、例えば、DC(又は平均)モード及びプラナーモードのような非方向性モード、又は例えば、VVCについて定義されたような方向性モードを含んでもよい。
【0151】
イントラ予測ユニット254は、イントラ予測モードのセットのうち或るイントラ予測モードに従ってイントラ予測ブロック265を生成するために、同じ現在ピクチャの隣接ブロックの再構成されたサンプルを使用するように構成される。
【0152】
イントラ予測ユニット254(又は一般的にモード選択ユニット260)は、符号化ピクチャデータ21に含めるためにシンタックスエレメント226の形式で、イントラ予測パラメータ(又は一般的にブロックについて選択されたイントラ予測モードを示す情報)をエントロピー符号化ユニット270に出力するように更に構成され、それにより、例えば、ビデオデコーダ30は、復号のために予測パラメータを受信して使用してもよい。
【0153】
インター予測
インター予測モードのセット(又は可能なもの)は、利用可能な参照ピクチャ(すなわち、例えば、DBP230に記憶された、前の少なくとも部分的に復号されたピクチャ)及び他のインター予測パラメータ、例えば、最良の適合する参照ブロックを探索するために全体の参照ピクチャが使用されるか、参照ピクチャの部分のみ、例えば、現在ブロックの領域の周辺の探索ウィンドウ領域が使用されるか、及び/又は、例えば、ピクセル補間、例えばハーフ/セミペル及び/又は4分の1ペル補間が適用されるか否かに依存する。
【0154】
上記の予測モードに加えて、スキップモード及び/又は直接モードが適用されてもよい。
【0155】
インター予測ユニット244は、動き推定(ME, motion estimation)ユニット及び動き補償(MC, motion compensation)ユニット(双方とも図2に図示せず)を含んでもよい。動き推定ユニットは、動き推定のために、ピクチャブロック203(現在ピクチャ17の現在ブロック203)及び復号ピクチャ231、又は少なくとも1つ若しくは複数の前に再構成されたブロック、例えば、1つ若しくは複数の他の/異なる前の復号ピクチャ231の再構成されたブロックを受信又は取得するように構成されてもよい。例えば、ビデオシーケンスは、現在ピクチャ及び前の復号ピクチャ231を含んでもよく、或いは言い換えると、現在ピクチャ及び前の復号ピクチャ231は、ビデオシーケンスを形成するピクチャのシーケンスの一部でもよく或いはこれを形成してもよい。
【0156】
エンコーダ20は、例えば、複数の他のピクチャの同じ或いは異なるピクチャの複数の参照ブロックから参照ブロックを選択し、参照ピクチャ(又は参照ピクチャインデックス)及び/又は参照ブロックの位置(x,y座標)と現在ブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして動き推定ユニットに提供するように構成されてもよい。このオフセットはまた、動きベクトル(MV, motion vector)とも呼ばれる。
【0157】
動き補償ユニットは、インター予測パラメータを取得し、例えば、受信し、インター予測パラメータに基づいて或いはこれを使用してインター予測を実行して、インター予測ブロック265を取得するように構成される。動き補償ユニットにより実行される動き補償は、動き推定により決定された動き/ブロックベクトルに基づいて、予測ブロックをフェッチ又は生成し、場合によってはサブピクセル精度への補間を実行することを含んでもよい。補間フィルタリングは、既知のピクセルサンプルから更なるピクセルサンプルを生成してもよく、したがって、ピクチャブロックをコーディングするために使用され得る候補予測ブロックの数を潜在的に増加させる。現在ピクチャブロックのPUの動きベクトルを受信すると、動き補償ユニットは、参照ピクチャリストのうち1つの中で動きベクトルが指す予測ブロックを見つけてもよい。
【0158】
動き補償ユニットはまた、ビデオスライスのピクチャブロックを復号する際にビデオデコーダ30による使用のために、ブロック及びビデオスライスに関連するシンタックスエレメントを生成してもよい。スライス及びそれぞれのシンタックスエレメントに加えて或いはその代替として、タイルグループ及び/又はタイル及びそれぞれのシンタックスエレメントが生成又は使用されてもよい。
【0159】
エントロピーコーディング
エントロピー符号化ユニット270は、量子化された係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ及び/又は他のシンタックスエレメントに対して、例えば、エントロピー符号化アルゴリズム又は方式(例えば、可変長コーディング(VLC, variable length coding)方式、コンテキスト適応型VLC方式(CAVLC, context adaptive VLC, scheme)、算術コーディング方式、二値化、コンテキスト適応型バイナリ算術コーディング(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による後の送信又は取り出しのためにメモリに記憶されてもよい。
【0160】
ビデオエンコーダ20の他の構造的変形は、ビデオストリームを符号化するために使用できる。例えば、非変換ベースのエンコーダ20は、特定のブロック又はフレームについて、変換処理ユニット206なしに、残差信号を直接量子化できる。他の実現方式では、エンコーダ20は、単一のユニットに結合された量子化ユニット208及び逆量子化ユニット210を有することができる。
【0161】
デコーダ及び復号方法
図3は、本願の技術を実現するように構成されたビデオデコーダ30の例を示す。ビデオデコーダ30は、復号ピクチャ331を取得するために、例えば、エンコーダ20により符号化された符号化ピクチャデータ21(例えば、符号化ビットストリーム21)を受信するように構成される。符号化ピクチャデータ又はビットストリームは、符号化ピクチャデータを復号するための情報、例えば、符号化ビデオスライス(及び/又はタイルグループ又はタイル)のピクチャブロック及び関連するシンタックスエレメントを表すデータを含む。
【0162】
図3の例では、デコーダ30は、エントロピー復号ユニット304と、逆量子化ユニット310と、逆変換処理ユニット312と、再構成ユニット314(例えば、合計器314)と、ループフィルタ320と、復号ピクチャバッファ(DBP, decoded picture buffer)330と、モード適用ユニット360と、インター予測ユニット344と、イントラ予測ユニット354とを含む。インター予測ユニット344は、動き補償ユニットでもよく或いはこれを含んでもよい。ビデオデコーダ30は、いくつかの例では、図2からビデオエンコーダ100に関して説明した符号化経路と一般的に逆の復号経路を実行してもよい。
【0163】
エンコーダ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のそれぞれのユニット及び機能に適用する。
【0164】
エントロピー復号
エントロピー復号ユニット304は、ビットストリーム21(又は一般的には符号化ピクチャデータ21)をパースし、例えば、符号化ピクチャデータ21に対してエントロピー復号を実行して、例えば、量子化された係数309及び/又は復号されたコーディングパラメータ(図3に図示せず)、例えば、インター予測パラメータ(例えば、参照ピクチャインデックス及び動きベクトル)、イントラ予測パラメータ(例えば、イントラ予測モード又はインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ及び/又は他のシンタックスエレメントのうちいずれか又は全てを取得するように構成される。エントロピー復号ユニット304は、エンコーダ20のエントロピー符号化ユニット270に関して説明したような符号化方式に対応する復号アルゴリズム又は方式を適用するように構成されてもよい。エントロピー復号ユニット304は、インター予測パラメータ、イントラ予測パラメータ及び/又は他のシンタックスエレメントをモード適用ユニット360に提供し、他のパラメータをデコーダ30の他のユニットに提供するように更に構成されてもよい。ビデオデコーダ30は、ビデオスライスレベル及び/又はビデオブロックレベルのシンタックスエレメントを受信してもよい。スライス及びそれぞれのシンタックスエレメントに加えて或いはその代替として、タイルグループ及び/又はタイル及びそれぞれのシンタックスエレメントが受信及び/又は使用されてもよい。
【0165】
逆量子化
逆量子化ユニット310は、符号化ピクチャデータ21から(例えば、エントロピー復号ユニット304により例えばパース及び/又は復号することにより)量子化パラメータ(QP, quantization parameter)(又は一般的に逆量子化に関する情報)及び量子化された係数を受信し、量子化パラメータに基づいて、復号済みの量子化された係数309に対して逆量子化を適用して、変換係数311とも呼ばれてもよい反量子化された係数311を取得するように構成されてもよい。逆量子化プロセスは、量子化の程度、及び同様に適用されるべき逆量子化の程度を決定するために、ビデオスライス(又はタイル若しくはタイルグループ)内の各ビデオブロックについてビデオエンコーダ20により決定された量子化パラメータの使用を含んでもよい。
【0166】
逆変換
逆変換処理ユニット312は、変換係数311とも呼ばれる反量子化された係数311を受信し、サンプルドメインにおいて再構成された残差ブロック213を取得するために反量子化された係数311に変換を適用するように構成されてもよい。再構成された残差ブロック213はまた、変換ブロック313とも呼ばれてもよい。変換は、逆変換、例えば、逆DCT、逆DST、逆整数変換又は概念的に同様の逆変換プロセスでもよい。逆変換処理ユニット312は、符号化ピクチャデータ21から(例えば、エントロピー復号ユニット304により例えばパース及び/又は復号することにより)変換パラメータ又は対応する情報を受信して、反量子化された係数311に適用されるべき変換を決定するように更に構成されてもよい。
【0167】
再構成
再構成ユニット314(例えば、加算器又は合計器314)は、再構成された残差ブロック313を予測ブロック365に加算して、例えば、再構成された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することにより、サンプルドメインにおける再構成されたブロック315を取得するように構成されてもよい。
【0168】
フィルタリング
(コーディングループ内又はコーディングループの後のいずれかの)ループフィルタユニット320は、再構成されたブロック315をフィルタリングして、フィルタリングされたブロック321を取得するように、例えば、ピクセル遷移を平滑化するように或いはビデオ品質を改善するように構成される。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応オフセット(SAO, sample-adaptive offset)フィルタ又は1つ以上の他のフィルタ、例えば、バイラテラルフィルタ、適応ループフィルタ(ALF, adaptive loop filter)、鮮鋭化、平滑化フィルタ若しくは協調フィルタ又はこれらのいずれかの組み合わせのような1つ以上のループフィルタを含んでもよい。ループフィルタユニット320はインループフィルタであるとして図3に示されるが、他の構成では、ループフィルタユニット320はポストループフィルタとして実現されてもよい。
【0169】
復号ピクチャバッファ
ピクチャの復号ビデオブロック321は、次いで、他のピクチャのための後の動き補償のための参照ピクチャとして及び/又はそれぞれの表示の出力のために復号ピクチャ331を記憶する復号ピクチャバッファ330に記憶される。
【0170】
デコーダ30は、ユーザへの提示又は閲覧のために、例えば、出力312を介して復号ピクチャ311を出力するように構成される。
【0171】
予測
インター予測ユニット344は、インター予測ユニット244(特に、動き補償ユニット)と同一でもよく、イントラ予測ユニット354は、インター予測ユニット254と機能的に同一でもよく、パーティション及び/又は予測パラメータ又は符号化ピクチャデータ21から(例えば、エントロピー復号ユニット304により例えばパース及び/又は復号することにより)受信したそれぞれの情報に基づいて、分割又はパーティション判断及び予測を実行する。モード適用ユニット360は、再構成ピクチャ、ブロック又はそれぞれの(フィルタリングされた或いはフィルタリングされていない)サンプルに基づいて、ブロック毎に予測(イントラ又はインター予測)を実行して、予測ブロック365を取得するように構成されてもよい。
【0172】
ビデオスライスがイントラコーディングされた(I, intra-coded)スライスとしてコーディングされるとき、モード適用ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード及び現在ピクチャの前に復号されたブロックからのデータに基づいて、現在ビデオスライスのピクチャブロックについて予測ブロック365を生成するように構成される。ビデオピクチャがインターコーディングされた(すなわち、B又はP)スライスとしてコーディングされるとき、モード適用ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、エントロピー復号ユニット304から受信した動きベクトル及び他のシンタックスエレメントに基づいて、現在ビデオスライスのビデオブロックについて予測ブロック365を生成するように構成される。インター予測では、予測ブロックは、参照ピクチャリストのうち1つの中の参照ピクチャのうち1つから生成されてもよい。ビデオデコーダ30は、DPB330に記憶された参照ピクチャに基づいて、デフォルト構成技術を使用して、参照フレームリスト、リスト0及びリスト1を構成してもよい。同じ又は同様のものが、スライス(例えば、ビデオスライス)に加えて或いはその代替として、タイルグループ(例えば、ビデオタイルグループ)及び/又はタイル(例えば、ビデオタイル)を使用する実施形態に或いはそれにより適用されてもよく、例えば、ビデオは、I、P又はBタイルグループ及び/又はタイルを使用してコーディングされてもよい。
【0173】
モード適用ユニット360は、動きベクトル又は関連情報及び他のシンタックスエレメントをパースすることにより、現在ビデオスライスのビデオブロックについて予測情報を決定するように構成され、復号されている現在ビデオブロックについて予測ブロックを生成するために予測情報を使用する。例えば、モード適用ユニット360は、受信したシンタックスエレメントのうちいくつかを使用して、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(例えば、イントラ又はインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス又はGPBスライス)、スライスの参照ピクチャリストのうち1つ以上についての構成情報、スライスの各インター符号化ビデオブロックの動きベクトル、スライスの各インターコーディングされたビデオブロックについてのインター予測状態、及び現在ビデオスライス内のビデオブロックを復号するための他の情報を決定する。同じ又は同様のことが、スライス(例えば、ビデオスライス)に加えて或いはその代替として、タイルグループ(例えば、ビデオタイルグループ)及び/又はタイル(例えば、ビデオタイル)を使用する実施形態に或いはそれにより適用されてもよく、例えば、ビデオは、I、P又はBタイルグループ及び/又はタイルを使用してコーディングされてもよい。
【0174】
図3に示すようなビデオデコーダ30の実施形態は、スライス(ビデオスライスとも呼ばれる)を使用することによりピクチャをパーティション及び/又は復号するように構成されてもよく、ピクチャは、(典型的には重複しない)1つ以上のスライスにパーティションされてもよく或いはこれを使用して復号されてもよく、各スライスは、1つ以上のブロック(例えば、CTU)を含んでもよい。
【0175】
図3に示すようなビデオデコーダ30の実施形態は、タイルグループ(ビデオタイルグループとも呼ばれる)及び/又はタイル(ビデオタイルとも呼ばれる)を使用することによりピクチャをパーティション及び/又は復号するように構成されてもよく、ピクチャは、(典型的には重複しない)1つ以上のタイルグループにパーティションされてもよく或いはこれを使用して復号されてもよく、各タイルグループは、例えば、1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含んでもよく、各タイルは、例えば長方形形状でもよく、1つ以上のブロック(例えば、CTU)、例えば完全な或いは部分的なブロックを含んでもよい。
【0176】
ビデオデコーダ30の他の変形は、符号化ピクチャデータ21を復号するために使用できる。例えば、デコーダ30は、ループフィルタユニット320なしに、出力ビデオストリームを生成できる。例えば、非変換ベースのデコーダ30は、特定のブロック又はフレームについて、逆変換処理ユニット312なしに、残差信号を直接逆量子化できる。他の実現方式では、ビデオデコーダ30は、単一のユニットに結合された逆量子化ユニット310及び逆変換処理ユニット312を有することができる。
【0177】
エンコーダ20及びデコーダ30において、現在のステップの処理結果は更に処理され、次いで次のステップに出力されてもよいことが理解されるべきである。例えば、補間フィルタリング、動きベクトル導出又はループフィルタリングの後に、クリップ又はシフトのような更なる動作が、補間フィルタリング、動きベクトル導出又はループフィルタリングの処理結果に対して実行されてもよい。
【0178】
更なる動作は、現在ブロックの導出された動きベクトル(アフィンモードの制御点動きベクトル、アフィン、プラナー、ATMVPモードにおけるサブブロック動きベクトル、時間動きベクトル等を含むが、これらに限定されない)に適用されてもよい点に留意すべきである。例えば、動きベクトルの値は、その表現ビットに従って所定の範囲に制約される。動きベクトルの表現ビットがbitDepthである場合、範囲は-2^(bitDepth-1)~2^(bitDepth-1)-1であり、「^」は累乗を意味する。例えば、bitDepthが16に等しく設定された場合、範囲は-32768~32767であり、bitDepthが18に等しく設定された場合、範囲は-131072~131071である。例えば、導出された動きベクトルの値(例えば、1つの8×8ブロック内の4つの4×4サブブロックのMV)は、4つの4×4サブブロックのMVの整数部分の間の最大差が、1ピクセルよりも多くない等のNピクセルよりも多くないように制約される。ここで、bitDepthに従って動きベクトルを制約するための2つの方法を提供する。
【0179】
方法1:フロー演算によりオーバーフローMSB(最上位ビット)を除去する。
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は中間値を示す。
【0180】
例えば、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)
【0181】
式(5)~(8)に示すように、演算はmvpとmvdとの和の間に適用されてもよい。
【0182】
方法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】
【0183】
図4は、本開示の実施形態によるビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、ここに説明するような開示の実施形態を実現するのに適する。実施形態では、ビデオコーディングデバイス400は、図1Aのビデオデコーダ30のようなデコーダ又は図1Aのビデオエンコーダ20のようなエンコーダでもよい。
【0184】
ビデオコーディングデバイス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)コンポーネントを含んでもよい。
【0185】
プロセッサ430は、ハードウェア及びソフトウェアにより実現される。プロセッサ430は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサ)、FPGA、ASIC及びDSPとして実現されてもよい。プロセッサ430は、入口ポート410、受信機ユニット420、送信機ユニット440、出口ポート450及びメモリ460と通信する。プロセッサ430は、コーディングモジュール470を含む。コーディングモジュール470は、上記に記載する開示の実施形態を実現する。例えば、コーディングモジュール470は、様々なコーディング動作を実現、処理、準備又は提供する。したがって、コーディングモジュール470に含まれるものは、ビデオコーディングデバイス400の機能に実質的な改善を提供し、異なる状態へのビデオコーディングデバイス400の変換をもたらす。代替として、コーディングモジュール470は、メモリ460に記憶されてプロセッサ430により実行される命令として実現される。
【0186】
メモリ460は、1つ以上のディスク、テープドライブ及びソリッドステートドライブを含んでもよく、プログラムが実行のために選択されるときこのようなプログラムを記憶するため且つプログラムの実行中に読み取られる命令及びデータを記憶するためのオーバフローデータ記憶デバイスとして使用されてもよい。メモリ460は、例えば、揮発性及び/又は不揮発性でもよく、読み取り専用メモリ(ROM, read-only memory)、ランダムアクセスメモリ(RAM, random access memory)、三値連想メモリ(TCAM, ternary content-addressable memory)及び/又はスタティックランダムアクセスメモリ(SRAM, static random-access memory)でもよい。
【0187】
図5は、例示的な実施形態による図1からのソースデバイス12及び宛先デバイス14の一方又は双方として使用されてもよい装置500の簡略ブロック図である。
【0188】
装置500内のプロセッサ502は、中央処理装置とすることができる。代替として、プロセッサ502は、現在存在するか或いは今後開発される、情報を操作又は処理できるいずれかの他のタイプのデバイス又は複数のデバイスとすることができる。開示の実現方式は図示のように単一のプロセッサ、例えばプロセッサ502で実施できるが、速度及び効率における利点は、1つよりも多くのプロセッサを使用して達成できる。
【0189】
装置500内のメモリ504は、実現方式では、読み取り専用メモリ(ROM, read only memory)デバイス又はランダムアクセスメモリ(RAM, random access memory)デバイスとすることができる。いずれかの他の適切なタイプの記憶デバイスが、メモリ504として使用できる。メモリ504は、バス512を使用してプロセッサ502によりアクセスされるコード及びデータ506を含むことができる。メモリ504は、オペレーティングシステム508及びアプリケーションプログラム510を更に含むことができ、アプリケーションプログラム510は、プロセッサ502がここに記載の方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、ここに記載の方法を実行するビデオコーディングアプリケーションを更に含むアプリケーション1~Nを含むことができる。
【0190】
装置500はまた、ディスプレイ518のような1つ以上の出力デバイスを含むことができる。ディスプレイ518は、一例では、タッチ入力を感知するよう動作可能なタッチセンシティブ素子とディスプレイを結合したタッチセンシティブディスプレイでもよい。ディスプレイ518は、バス512を介してプロセッサ502に結合できる。
【0191】
ここでは単一のバスとして示されるが、装置500のバス512は複数のバスで構成できる。さらに、2次ストレージ514は、装置500の他のコンポーネントに直接結合でき、或いは、ネットワークを介してアクセスでき、メモリカードのような単一の統合ユニット又は複数のメモリカードのような複数のユニットを含むことができる。したがって、装置500は、広範な構成で実現できる。
【0192】
パラメータセット
パラメータセットは基本的に同様であり、同じ基本的な設計目標、すなわち、ビットレート効率、エラー回復力及びシステムレイヤインタフェースの提供を共有する。HEVC(ITU-T H.265)では、ビデオパラメータセット(VPS, Video Parameter Set)、シーケンスパラメータセット(SPS, Sequence Parameter Set)及びピクチャパラメータセット(PPS, Picture Parameter Set)を含むパラメータセットの階層が存在し、これらはAVC及びVVCにおけるこれらの対応するものと同様である。各スライスは、スライスを復号するために使用される情報にアクセスするために、単一のアクティブなPPS、SPS及びVPSを参照する。PPSは、ピクチャ内の全てのスライスに適用する情報を含み、したがって、ピクチャ内の全てのスライスは、同じPPSを参照しなければならない。異なるピクチャ内のスライスも、同じPPSを参照することが許可される。同様に、SPSは、同じコーディングされたビデオシーケンス内の全てのピクチャに適用する情報を含む。
【0193】
PPSは別々のピクチャについて異なってもよいが、コーディングされたビデオシーケンス内の多く又は全てのピクチャが同じPPSを参照することが一般的である。パラメータセットを再利用することは、共有情報を複数回送信する必要性を回避するので、ビットレート効率が良い。また、パラメータセットの内容が、失われないことを確保するために、より信頼性の高い外部通信リンクにより搬送されることを可能にし、或いは、ビットストリーム内で頻繁に繰り返されることを可能にするので、ロスに対してロバストでもある。
【0194】
シーケンスパラメータセット(SPS)
SPSは、コーディングされたビデオシーケンスの1つ以上のレイヤに適用し、コーディングされたビデオシーケンス内のピクチャ毎に変化しないパラメータを含む。特に、SPSは、サブピクチャのシグナリングの情報を含む。
【0195】
以下の表のいくつかの部分は、ITU JVET-Q2001-v11におけるSPSでのサブピクチャシグナリングの一部のスナップショットを示しており、ダウンロードリンクは以下の通りである。
http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/17_Brussels/wg11/JVET-Q2001-v11.zip
本出願の残りの部分では、このドキュメントは簡略のためにVVCドラフト8と名付けられる。
【表1】

【0196】
SPS内のいくつかのシンタックスエレメントは、各サブピクチャの位置情報及び制御フラグをシグナリングする。第iのサブピクチャの位置情報は以下を含む。
・ピクチャ内のサブピクチャiの左上座標の水平成分を示すsubpic_ctu_top_left_x[i]、又は
・ピクチャ内のサブピクチャiの左上座標の垂直成分を示すsubpic_ctu_top_left_y[i]、又は
・ピクチャ内のサブピクチャiの幅を示すsubpic_width_minus1[i]、又は
・ピクチャ内のサブピクチャiの高さを示すsubpic_height_minus1[i]
【0197】
いくつかのシンタックスエレメント、例えば、sps_num_subpics_minus1は、ピクチャ内のサブピクチャの数を示す。
【0198】
CTU、スライス、タイル及びサブピクチャへのピクチャのパーティション
CTUへのピクチャのパーティション
ピクチャは一連のコーディングツリーユニット(CTU, Coding Tree Unit)に分割される。CTUという用語は、場合によってはCTB(coding tree block)と交換可能に使用される。一例では、CTUという用語は、ITU-T H.265におけるCTUの定義と同じである。3つのサンプルアレイを有するピクチャについて、CTUはルマサンプルのN×Nブロックと、クロマサンプルの対応する2つのブロックとを含む。図6は、CTUに分割されたピクチャの例を示す。CTUのサイズは、ピクチャ境界(不完全なCTUが存在し得る)に位置するCTUを除いて同じでもよい。
【0199】
タイルへのピクチャのパーティション
いくつかの例では、タイルが有効であるとき、ピクチャは垂直及び/又は水平境界により区切られた長方形形状のCTUのグループに分割される。垂直及び水平のタイル境界は、それぞれ上から下に且つ左ピクチャ境界から右ピクチャ境界に、ピクチャを横切る。水平タイル境界及び垂直タイル境界の位置に関連する指示情報は、ビットストリームにコーディングされる。
【0200】
図7は、9つのタイルへのピクチャのパーティションを例示する。この例では、タイル境界は太字の破線で記されている。CTUのタイルベースのラスタースキャン順序は、ピクチャ内の異なるサイズの9つのタイルで行われる。
【0201】
ピクチャを垂直に分割する1つよりも多くのタイルが存在するとき、CTUのスキャン順序は、ピクチャ内のCTUのラスタースキャン順序に対して変更される。CTUは以下のルールに従ってスキャンされる。
【0202】
1.タイルは、ラスタースキャン順序で左から右に且つ上から下にスキャンされ、これはタイルスキャン順序と呼ばれる。これは、左上のタイルから始めて、同じタイル行における全てのタイルが左から右にスキャンされることを意味する。次いで、2番目のタイル行(1つ下のタイル行)における最初のタイルから始めて、2番目のタイル行における全てのタイルが左から右にスキャンされる。このプロセスは、全てのタイルがスキャンされるまで繰り返される。
【0203】
2.タイルについて、このタイル内のCTUはラスタースキャン順序でスキャンされる。CTU行毎に、CTUは左から右にスキャンされ、CTU行は上から下にスキャンされる。図7はタイル内のCTUのスキャン順序を例示しており、CTUに対応する数字はスキャン順序を示す。
【0204】
タイルは、各タイルが同じピクチャの他のタイルから独立して復号可能であるような方法でのピクチャのパーティションを提供し、復号はエントロピー、残差及び予測復号を示す。さらに、タイルによって、ピクチャを同様のサイズの領域にパーティションすることが可能になる。したがって、ピクチャのタイルを互いに並列して処理することが可能になり、これは、各処理コアが互いに同一であるマルチコア処理環境にとって好ましい。
【0205】
処理順序及びスキャン順序という用語は、本出願において以下のように使用される。
【0206】
処理は、エンコーダ又はデコーダ内のCTUの符号化又は復号を示す。スキャン順序は、ピクチャ内の特定のパーティションのインデックス付けに関連する。CTUは、指定のスキャン順序に従ってピクチャ内で昇順にインデックス付けされる。タイル内のCTUスキャン順序は、タイル内のCTUがどのようにインデックス付けされるかを意味し、これは、これらが処理される順序(すなわち、処理順序)と同じでなくてもよい。
【0207】
スライスへのピクチャのパーティション
スライスの概念は、各スライスが同じピクチャの他のスライスから独立して復号可能であるような方法でのピクチャのパーティションを提供し、復号はエントロピー、残差及び予測復号を示す。タイルとの違いは、スライスが必ずしも長方形ではない任意の形状を有してもよく(パーティションの可能性においてより柔軟である)、スライスパーティションの目的が並列処理のためではなく、伝送環境におけるパケットサイズのマッチング及びエラー耐性のためであることである。
【0208】
スライスは、完全なピクチャを含んでもよく、或いは、ピクチャの一部を含む。ITU-T H.265では、スライスは処理順序でピクチャの連続CTUを含む。スライスは開始CTUアドレスに従って識別され、開始CTUアドレスはスライスヘッダ若しくはピクチャパラメータセット又は他のユニットでシグナリングされる。一例では、スライスが整数のタイルを含む必要があるとき、スライスは開始タイルアドレスに従って識別されてもよい。
【0209】
VVCのドラフト8では、スライスは、整数のタイル、又はピクチャのタイル内の整数の連続CTU行を含む。したがって、垂直スライス境界はまた、垂直タイル境界でもある。スライスの水平境界がタイル境界でないことが可能であり、水平CTU境界がタイル内に含まれてもよい。一例では、タイルが複数の長方形スライスに分割されるとき、各スライスは、タイル内の整数の連続する完全なCTU行を含む。
【0210】
いくつかの例では、2つのスライスモード、すなわち、ラスタースキャンスライスモード及び長方形スライスモードが存在する。ラスタースキャンスライスモードでは、スライスは、ピクチャのタイルラスタースキャンにおけるタイルのシーケンスを含む。長方形スライスモードでは、スライスは、ピクチャの長方形領域を併せて形成する多数のタイルを含むか、或いは、スライスは、ピクチャの長方形領域を併せて形成する1つのタイルの多数の連続CTU行を含む。長方形スライス内のタイルは、そのスライスに対応する長方形領域内でタイルラスタースキャン順序でスキャンされる。
【0211】
ピクチャの全てのスライスは、併せて全体のピクチャ全体を形成し、ピクチャの全てのCTUは、ピクチャのスライスのうち1つに含まれる。タイル及びサブピクチャについても同様のルールが適用される。
【0212】
サブピクチャへのピクチャのパーティション
サブピクチャはピクチャの長方形パーティションでもよい。サブピクチャは全体のピクチャ又はピクチャの一部でもよい。サブピクチャは、各サブピクチャが全体のビデオシーケンスの他のサブピクチャから独立して復号可能であるような方法でのピクチャのパーティションである。VVCドラフト8では、サブピクチャiについてsubpic_treated_as_pic_flag[i]指示が真である(例えば、subpic_treated_as_pic_flag[i]の値が1である)とき、サブピクチャiは全体のビデオシーケンスの他のサブピクチャから独立して復号可能である。
【0213】
サブピクチャとタイル又はスライスとの間の違いは、サブピクチャが独立して復号可能なビデオシーケンスを示すことである。タイル及びスライスについて、独立した復号はビデオシーケンスの単一のピクチャにおいて実行される。
【0214】
VVCドラフト8では、サブピクチャは、ピクチャの長方形領域を併せてカバーする1つ以上のスライスを含む。したがって、各サブピクチャ境界は常にスライス境界であり、各垂直サブピクチャ境界は常に垂直タイル境界である。
【0215】
図8は、タイル、スライス及びサブピクチャの例を示す。図8において、4つのタイル(2つのタイル列及び2つのタイル行)、4つの長方形スライス及び3つのサブピクチャを含むピクチャの例である。サブピクチャ2は2つのスライスを含み、サブピクチャ1及び3はそれぞれ1つのスライスを含む。サブピクチャ1は2つのタイルを含み、サブピクチャ2及び3はそれぞれ1つのタイルを含む。サブピクチャ、スライス及びタイル境界は、全てCTUの境界と一致する。境界において、これらを区別可能にするために、互いに小さいオフセットで示されている。
【0216】
図8に示す一例では、ピクチャは、216個のCTU、4つのタイル、4つのスライス及び3つのサブピクチャにパーティションされる。sps_num_subpics_minus1の値は2であり、位置に関連するシンタックスエレメントは以下の値を有する。
サブピクチャ1について
・subpic_ctu_top_left_x[0]はシグナリングされず、0として推定される
・subpic_ctu_top_left_y[0]はシグナリングされず、0として推定される
・subpic_width_minus1[0]の値は8である
・subpic_height_minus1[0]の値は11である
サブピクチャ2について
・subpic_ctu_top_left_x[1]の値は9である
・subpic_ctu_top_left_y[1]の値は0である
・subpic_width_minus1[1]の値は8である
・subpic_height_minus1[1]の値は5である
サブピクチャ3について
・subpic_ctu_top_left_x[2]の値は9である
・subpic_ctu_top_left_y[2]の値は6である
・subpic_width_minus1[2]はシグナリングされず8として推定される
・subpic_height_minus1[2]はシグナリングされず5として推定される
【0217】
タイルのシグナリング
以下の表は、VVCドラフト8のピクチャパラメータセットのRBSPシンタックステーブルに開示されている、ピクチャ内のタイルのタイルサイズ及び座標のシグナリングを例示する。
【表2】
【0218】
タイルのパーティション情報(例えば、タイルアドレス及びタイル寸法)は、通常ではパラメータセットにコーディングされる。上記の例では、指示no_pic_partition_flagの値はビットストリームにコーディングされ、no_pic_partition_flagの値は、ピクチャがスライス及びタイルにパーティションされるか否かを示すために使用される。no_pic_partition_flagが真である場合(ピクチャがスライス又はタイルにパーティションされないことを意味する)、ピクチャは1つのスライスのみ及び1つのタイルのみにパーティションされ、これらの境界はピクチャ境界と整合すると推定される。そうでない(no_pic_partition_flagが偽である)場合、タイルパーティション情報はビットストリームにコーディングされる。
【0219】
シンタックスエレメントtile_column_width_minus1[i]の値は、第iのタイル列の幅を示す。シンタックスエレメントtile_row_height_minus1[i]の値は、第iのタイル行の高さを示す。
【0220】
タイル行の高さ及びタイル列の幅は、ビットストリームで明示的にシグナリングできるか、或いは、ビットストリームに従って推定できる。シンタックスエレメントnum_exp_tile_columns_minus1及びnum_exp_tile_rows_minus1は、それぞれタイル列及びタイル行の数を示し、これらのタイルの幅及び高さはビットストリームで明示的にシグナリングされる。他のタイルの列及び行の幅及び高さは、関数に従って推定される。
【0221】
タイルのインデックス付けは、「ピクチャ内のタイルスキャン順序」を表す。ピクチャ内のタイルはラスタースキャン順序に従って順序付けされ(スキャンされ)、ピクチャの左上角にある最初のタイルが0番目のタイルであり、インデックスは各タイル行において左から右に増加し、タイル行における最後のタイルがスキャンされた後に、次のタイル行(現在のタイル行の1つ下)の一番左のタイルに続く。
【0222】
タイル内のCTU(タイル内のCTUスキャン順序)は、ラスタースキャン順序でスキャンされる。
【0223】
ピクチャ内のCTUのタイルベースのスキャン順序は、ピクチャ内のタイルスキャン順序及び各タイル内のCTUスキャン順序が同時に続くことを示す。言い換えると、
・ピクチャのタイルは、ピクチャ内のタイルスキャン順序に従ってスキャンされる
・1つのタイルのCTUは、異なるタイル内のCTUのいずれかの前に完全にスキャンされる
・各タイルにおいて、CTUはラスタースキャン順序(タイル内のCTUスキャン順序)でスキャンされる
【0224】
スライスのシグナリング
以下の表は、VVCドラフト8のピクチャパラメータセットのRBSPシンタックステーブルに開示されている、ピクチャ内の長方形形状のスライスのサイズ及び座標のシグナリングを例示する。
【表3】
【0225】
VVCドラフト8では、スライスは1つ以上の完全なタイルを含むか、或いは、タイルは1つ以上の完全なスライスを含む。したがって、スライスの座標及びサイズはタイルパーティションに関して示される。VVCドラフト8では、タイルパーティションはピクチャパラメータセットでシグナリングされる。スライスパーティション情報は、タイルマッピング情報を使用してシグナリングされる。
【0226】
上記の表において、シンタックスエレメントnum_slices_in_pic_minus1の値は、ピクチャ内のスライスの数を示す。シンタックスエレメントTile_idx_delta[i]の値は、第i+1のスライス及び第iのスライスの最初のタイルのタイルインデックスの間の差を示す。例えば、ピクチャ内の最初のスライスの最初のタイルのタイルインデックスは0である。2番目のスライスの最初のタイルのタイルインデックスが5である場合、Tile_idx_delta[0]の値は5に等しい。この文脈では、タイルインデックスはスライスのアドレスとして使用されてもよく、例えば、スライスの最初のタイルのインデックスはスライスの開始アドレスである。
【0227】
シンタックスエレメントslice_width_in_tiles_minus1[i]の値は、タイルの数でピクチャ内の第iのスライスの幅を示し、シンタックスエレメントslice_height_in_tiles_minus1[i]の値は、タイルの数でピクチャ内の第iのスライスの高さを示す(一例では、VVCドラフト8に開示されているように、slice_width_in_tiles_minus1[i]に1を加えたものは、タイル列の単位で第iの長方形スライスの幅を指定する。slice_height_in_tiles_minus1[i]に1を加えたものは、タイル行の単位で第iの長方形スライスの高さを指定する)。
【0228】
上の表において、slice_width_in_tiles_minus1[i]の値及びslice_height_in_tiles_minus1[i]の値が共に0に等しい場合(第iのスライスが最大でも高さにおける1つのタイル及び幅における1つのタイルの寸法を有することを示す)、シンタックスエレメントnum_exp_slices_in_tile[i]の値はビットストリームにコーディングされる。シンタックスエレメントnum_exp_slices_in_tile[i]の値は、タイル内のスライスの数を示す。
【0229】
VVCドラフト8によれば、スライスは複数の完全なタイルを含んでもよく、或いは、タイルは複数の完全なスライスを含んでもよい。上記のシンタックステーブルに示すように、スライス内のタイルの数はslice_width_in_tiles_minus1[i]及びslice_height_in_tiles_minus1[i]により示される。また、スライス内のタイルの数が1に等しい場合、タイル内のスライスの数はnum_exp_slices_in_tile[i]により示される。したがって、slice_width_in_tiles_minus1[i]の値及びslice_height_in_tiles_minus1[i]の値が共に1に等しい場合、スライスのサイズはタイルのサイズ以下になってもよい。
【0230】
シンタックスエレメントsingle_slice_per_subpic_flagが真である(例えば、single_slice_per_subpic_flagの値が1に等しい)ことは、ピクチャの全てのサブピクチャについて、サブピクチャ毎に唯一のスライスが存在することを示す(この場合、サブピクチャは1つよりも多くのスライスに分割できない)。
【0231】
1つの代替のシグナリング方法によれば、スライス開始アドレス及びスライスサイズは、VVCドラフト8において以下のステップに従って示される。
【0232】
1.まず、タイルパーティション情報がビットストリームで示され、インデックス(tileIdx)がピクチャ内のタイルをインデックス付けするために使用される(ピクチャ内のタイルスキャン順序に従う)。このステップの後に、各タイルのインデックス、座標及びサイズの値が取得される。
【0233】
2.ピクチャ内のスライスの数がシグナリングされる。一例では、スライスの数はシンタックスエレメントnum_slices_in_pic_minus1の値により示されることができる。
【0234】
3.ピクチャ内の最初のスライスについて、タイルの数でのスライスの幅及び高さが示される。最初のスライスの開始アドレスは明示的にシグナリングされず、tileIdx0であると推定され、ピクチャ内の最初のタイルはピクチャの最初のスライス内の最初のタイルである。
【0235】
4.最初のスライスのサイズが幅における1つのタイル及び高さにおける1つのタイルに等しい場合、且つ、タイルに1つよりも多くのCTU行が存在する場合、シンタックスエレメントnum_exp_slices_in_tile[0]の値がシグナリングされ、シンタックスエレメントnum_exp_slices_in_tile[0]の値は、当該タイルに含まれるスライスの数を示す。num_exp_slices_in_tile[0]の値は、サイズがビットストリームで明示的に示されるタイル内のスライスの数を示してもよいが、数及びサイズがタイルのサイズに基づいて推定される当該タイル内のスライスと、サイズが明示的にシグナリングされるスライスのサイズとが存在してもよい。したがって、タイル内のスライスの総数は、num_exp_slices_in_tile[0]及びタイルのサイズに従って決定されてもよい。一例では、タイル内のスライスの数はパラメータnumSlicesInTile[0]により表されることができる。
【0236】
5.ピクチャ内の最後のスライスまでの2番目のスライス(2番目のスライスを含むが、最後のスライスを除く)のそれぞれについて、タイルの数でのスライスの幅及び高さが明示的に示される。スライスの開始アドレスは、シンタックスエレメントtile_idx_delta[i]の値によって明示的に示されてもよく、iはスライスのインデックスである。開始アドレスが明示的にシグナリングされない場合(例えば、現在スライスの開始位置並びに幅及び高さを使用することにより、次のスライスの開始位置を推定することを可能にする順序でスライスがシグナリングされる場合)、スライスの開始アドレスは関数を介して推定される。一例として、スライスがビットストリームにおいてピクチャ内で左から右の順序でシグナリングされる場合、スライスの開始アドレスの水平座標及びスライスの幅が既知であれば、次のスライスの開始座標の水平座標は、スライスの幅にスライスの開始アドレスを加えた和として推定される。
【0237】
6.n番目のスライス(nは2以上、ピクチャ内のスライスの値から1を引いたもの以下である)のサイズが幅における1つのタイル及び高さにおける1つのタイルに等しい場合、且つ、n番目のスライス内に含まれるタイルに1つよりも多くのCTU行が存在する場合、シンタックスエレメントnum_exp_slices_in_tile[n]の値がシグナリングされ、シンタックスエレメントnum_exp_slices_in_tile[n]の値は、当該タイルに含まれるスライスの数を示す。
【0238】
7.ピクチャ内の最後のスライスについて、スライスの幅及び高さは明示的にシグナリングされず、ピクチャ幅におけるタイルの数、ピクチャ高さにおけるのタイルの数、及び最後のスライスの開始アドレスに従って推定される。最後のスライスの開始アドレスは明示的に示されることができるか或いは推定できる。ピクチャ内の最後のスライスの幅及び高さの推定は、以下の2つの式に従って実行でき、これらは、VVCドラフト8の6.5.1節からのものである。
slice_width_in_tiles_minus1[i]=NumTileColumns-1-tileX
slice_height_in_tiles_minus1[i]=NumTileRows-1-tileY
【0239】
slice_width_in_tiles_minus1[i]に1を加えたものは、タイル列の単位で第iの長方形スライスの幅を指定する。
【0240】
slice_height_in_tiles_minus1[i]に1を加えたものは、タイル行の単位で第iの長方形スライスの高さを指定する。
【0241】
上記のステップにおいて、スライスの開始アドレスが既知である場合には推定できるので、最後のスライスの幅及び高さはシグナリングされない。
【0242】
上記の式における変数tileX、tileY、NumTileColumns、NumTileRowsについては以下に説明する。
【0243】
VVCドラフト8の6.5.1節
6.5.1 CTBラスタースキャン、タイルスキャン及びサブピクチャスキャンのプロセス
長方形スライスについて、第iのスライス内のCTUの数を指定する、0以上num_slices_in_pic_minus1以下の範囲のiについてのリストNumCtusInSlice[i]、スライスの左上タイルのインデックスを指定する、0以上num_slices_in_pic_minus1以下の範囲のiについてのリストSliceTopLeftTileIdx[i]、並びに第iのスライス内の第jのCTBのピクチャラスタースキャンアドレスを指定する、0以上num_slices_in_pic_minus1以下の範囲のi及び0以上NumCtusInSlice[i]-1以下の範囲のjについての行列CtbAddrInSlice[i][j]は、以下のように導出される。
【表4】

【0244】
関数AddCtbsToSlice(sliceIdx,startX,stopX,startY,stopY)は以下のように指定される。
【表5】
【0245】
ピクチャ内のスライス開始アドレス及びスライスサイズのシグナリングの上記の説明は、VVCドラフト8に開示された一例である。具体的には、当該説明は、長方形形状のスライスが使用され、各サブピクチャ内のスライスの数が1に等しいと示されず(single_slice_per_subpic_flagシンタックスエレメントの値が1に等しくなく、single_slice_per_subpic_flagシンタックスエレメントの値が1に等しいとき、ピクチャの各サブピクチャは唯一のスライスで構成される)、1つよりも多くのタイルがピクチャ内に存在し、タイル内のCTU行の数が1よりも大きい場合を記述している。上記のパラメータのいくつかが変更された場合、スライス開始アドレス及びスライスサイズの他のシグナリングのモードが使用できる。例えば、各サブピクチャに1つのスライスのみが存在する場合、スライスの幅及び高さはビットストリームで明示的にシグナリングされず、それぞれ対応するサブピクチャ幅及び高さに等しいと推定される。
【0246】
VVCドラフト8の下位節6.5.1はまた、スライスi内のCTUのスキャン順序も開示しており、iはスライスインデックスである。この下位節の出力である行列CtbAddrInSlice[i][n]は、スライスi内のCTUスキャン順序を指定し、nは、0からスライスiのCTUの数までのCTUインデックスである。CtbAddrInSlice[i][n]の値は、スライスi内の第nのCTUのアドレスを指定する。
【0247】
通常では、スライス内のCTUスキャン順序は、スライスのCTUがスキャンされる順序を指定する。VVCドラフト8の6.5.1節の上記のステップは、スライス内のCTUスキャン順序がどのように決定されるか、例えば、行列CtbAddrInSlice[i][n]がどのように構築されるかについての例を例示する。
【0248】
VVCドラフト8に開示されているように、CtbAddrInSlice[i][n](スライスi内のCTUスキャン順序を指定する)はまた、スライス内のCTUの処理順序を指定する。具体的には、ピクチャのCTUは以下の順序で処理される。
【0249】
スライスはiによりインデックス付けされ、0に等しいiから始めてピクチャ内のスライスの数から1を引いたものに等しいiまで、iを増加させて処理される。スライスi内の各CTUnは、0に等しいnから始めてスライスi内のCTUの数から1を引いたものに等しいnまで、昇順に処理される。CtbAddrInSlice[i][n]の値は、スライスi内の第nのCTUのアドレスを指定する。
【0250】
VVCドラフト8に開示されているように、シグナリング方法は、ピクチャの各サブピクチャ内のスライスの数を示すために使用される。single_slice_per_subpic_flagの値は、ピクチャの全てのサブピクチャが唯一のスライスを含むか否かを示すために使用される。single_slice_per_subpic_flagの値が1に等しい場合、ピクチャの全てのサブピクチャは唯一のスライスを含む。そうでない(single_slice_per_subpic_flagの値が1に等しくない)場合、ピクチャのサブピクチャは1つよりも多くのスライスを含んでもよい。
【0251】
図9は、一例としてピクチャ内のCTUアドレスと、ピクチャ内の1つのスライス(スライス5、ピクチャ内の5番目のスライス)とを示す。この例によれば、CtbAddrInSliceの値は以下の通りである。
CtbAddrInSlice[4][0]=27
CtbAddrInSlice[4][1]=28
CtbAddrInSlice[4][2]=29
CtbAddrInSlice[4][3]=30
CtbAddrInSlice[4][4]=37
CtbAddrInSlice[4][5]=38
CtbAddrInSlice[4][6]=39
CtbAddrInSlice[4][7]=40
【0252】
スキャン順序は、タイル内のCTUスキャン順序のように、Y内のXのインデックスがインクリメントされる順序に従ってインデックス付けすることを示し、XはCTUであり、Yはタイルである。
【0253】
処理は、エンコーダ又はデコーダにおける復号又は符号化を意味する。したがって、処理順序は、X(例えば、CTU)がエンコーダ又はデコーダにおいて処理される順序を意味する。
【0254】
VVCドラフト8では、ピクチャに含まれる1つよりも多くのタイルが存在するとき、ピクチャ内のスライスは以下のようにシグナリングされる。
【0255】
1.シンタックスエレメントの値(ビットストリームでの明示的な指示又はビットストリームからの推定)は、タイルの数でスライスの開始タイルアドレスを決定するために使用される。
【0256】
2.最後のスライスを除く各スライスについて、スライスに含まれるタイルの数がシグナリングされる。
a.スライスが1つのタイルのみを含む場合、タイルに含まれるスライスの数が示される。
【0257】
3.ピクチャ内の最後のスライスについて、スライスが少なくとも1つの完全なタイルを含む場合、スライスに含まれるタイルの数が推定される。
【0258】
VVCドラフト8では、ピクチャ内の最後のスライスのサイズが(幅及び高さにおいて)1つのタイル以上である場合、最後のスライスのサイズの値はビットストリームから推定され、ビットストリームに直接コーディングされない。
【0259】
上記のように、slice_width_in_tiles_minus1[i]の値及びslice_height_in_tiles_minus1[i]の値(それぞれタイルの数での第iのスライスの幅及び高さを示す)は、iがnum_slices_in_pic_minus1よりも小さい場合(forループ「for(i=0;i<num_slices_in_pic_minus;i++)」による)より小さい場合、ビットストリームにコーディングされる。iがnum_slices_in_pic_minus1に等しいとき、例えば、最後のスライスについては、スライスの幅の値及び高さの値はシグナリングされない。
【0260】
実施形態1
・ピクチャが1つよりも多くのタイルにパーティションされるか否かを決定する。
・ピクチャが1つよりも多くのタイルにパーティションされると決定されたとき(例えば、NumTilesInPic>1の条件が真であるとき)、ピクチャ幅におけるタイルの数(例えば、ピクチャのタイル行におけるタイルの数)NumTileColumnsを取得する。
・ピクチャ高さにおけるタイルの数(例えば、ピクチャのタイル列におけるタイルの数)NumTileRowsを取得する。
・タイルインデックスにおけるスライスの左上座標(SliceTopLeftTileIdx[i])を取得する。タイルインデックスの値は、ピクチャ内のタイルのインデックス値を指定し、タイルは、ピクチャ内でラスタースキャン順序で順序付けされる(インデックス付けされる)。
・パラメータtileXにより示される、タイルインデックスの値に従ったタイルの水平座標を取得する。
・パラメータtileYにより示される、タイルインデックスの値に従ったタイルの垂直座標を取得する。
・ピクチャ内の各スライスについて、NumTileColumnsとtileXとの間の差値が第1の閾値よりも大きい場合、スライスの幅の指示の値がビットストリームにコーディングされる。
・ピクチャ内の各スライスについて、NumTileRowsとtileYとの間の差値が第2の閾値よりも大きい場合、スライスの高さの指示の値がビットストリームにコーディングされる。
【0261】
第1及び第2の閾値は0よりも大きい整数でもよい。一例では、双方の閾値は1に等しくてもよい。閾値は、水平方向(第1の閾値)及び垂直方向(第2の閾値)に沿ったタイルの数におけるサイズ閾値を示す。サイズ閾値が1つのタイルに等しいことを第1の閾値が示すとき、tileXとピクチャ幅におけるタイルの数との間の差が1つのタイルよりも大きい場合、スライス幅の指示がビットストリームに含まれる。tileXの開始値の規則(ピクチャ内の最初のタイルのtileXの値)に依存して、閾値が異なってもよい点に留意する。例えば、tileXの開始値が0である場合、第1の閾値は1でもよい。tileXの開始値が1である場合、第1の閾値は0でもよい。
【0262】
実施形態では、最後のスライスが少なくとも1つの完全なタイルを含む場合、最後のスライスの幅の値及び最後のスライスの高さの値もビットストリームにコーディングされない。
【0263】
実施形態では、tileXの値は、モジュロ演算に従って且つNumTileColumnsの値に従って取得される。例えば、tileX=tileIdx%NumTileColumnsである。
【0264】
実施形態では、tileYの値は、除算演算に従って且つNumTileRowsの値に従って取得される。例えば、tileY=tileIdx/NumTileRowsである。
【0265】
実施形態では、「閾値aよりも大きい」という条件は、「閾値bに等しくない」として実現されてもよい。当該条件を「閾値c以上である」として実現することも可能である。通常では、閾値aは閾値bに等しく、第3の閾値cは閾値a+1に等しい。
【0266】
本発明の1つの可能な実現方式が表3に示されている。VVCドラフト8の一部であった表1が修正される。
【0267】
表3において行番号10及び11は、tileX及びtileYをどのように取得するかを記述している。SliceTopLeftTileIdx[i]の値は、第iのスライス内の左上タイルのインデックス(タイルインデックス)の値を指定する。タイルインデックスの値はピクチャ内のタイルのインデックスであり、タイルは、ピクチャ内でラスタースキャン順序で順序付けされる。例えば図7に示すように、CTU0を含むタイルはタイルインデックス0を有する。CTU16を含むタイルはタイルインデックス1を有し、CTU24を含むタイルはタイルインデックス2を有し、CTU44を含むタイルはタイルインデックス3を有し、CTU52を含むタイルはタイルインデックス4を有し、CTU56を含むタイルはタイルインデックス5を有する、等である。
【0268】
tileX(ピクチャ内のタイルの水平座標)の値及びtileY(ピクチャ内のタイルの垂直座標)の値は、以下の式を使用して取得される。
tileX=SliceTopLeftTileIdx[i]%NumTileColumns
tileY=SliceTopLeftTileIdx[i]/NumTileColumns
【0269】
実施形態では、12行目において、以下の条件、すなわち、「NumTileColumns-tileX>1」が他の条件に追加される。条件が満たされない(NumTileColumns-tileXが1よりも大きくない)場合、シンタックスエレメントslice_width_in_tiles_minus1[i]の値はビットストリームに直接コーディングされない。したがって、ビットレート節約、よって圧縮効率が達成できる。
【0270】
同様に、14行目において、以下の条件、すなわち、「NumTileRows-tileY>1」が他の条件に追加される。条件が満たされない(NumTileRows-tileYが1よりも大きくない)場合、シンタックスエレメントslice_height_in_tiles_minus1[i]の値はビットストリームに直接コーディングされない。したがって、ビットレート節約、よって圧縮効率が達成できる。
【0271】
一例では、閾値は1であり、これは異なる実現方式で異なるものとすることができる。
【表6】
【0272】
一実施形態では、slice_width_in_tiles_minus1[i]及びslice_height_in_tiles_minus1[i]の値は、ビットストリームに存在しないとき、推定される。
【0273】
以下に、VVCドラフト8の6.5.1節における本発明の実現方式が例として提示される。
【0274】
一例によれば、値は0に等しいと推定される。これは、例えばVVCドラフト8の6.5.1節において以下のように実現できる。
【表7】
【0275】
上記の割り当てにおいて、ビットストリーム内のslice_width_in_tiles_minus1[i]の存在を決定するのと同じ閾値である、NumTileColumnsとtileXとの間の差が1よりも大きいとき、slice_width_in_tiles_minus1[i]の値は0に等しく設定される。言い換えると、「NumTileColumns-tileX<=thr」という条件は、slice_width_in_tiles_minus1[i]がビットストリームに存在するか否かを決定し、slice_width_in_tiles_minus1[i]がビットストリームに存在しないとき、slice_width_in_tiles_minus1[i]の値が推定される(0に設定される)。slice_height_in_tiles_minus1[i]がビットストリームに存在しないとき、slice_height_in_tiles_minus1[i]について同様の割り当てが行われる。
【0276】
以下のVVCドラフト8の6.5.1節における「NumTileRows-tileY=<1」及び「NumTileColumns-tileX=<1」という条件は、ビットストリーム内のslice_width_in_tiles_minus1[i]及びslice_height_in_tiles_minus1[i]の存在を検査するためのものである。これらは他の方法で同様に表されてもよく、重要なポイントは、slice_width_in_tiles_minus1及びslice_height_in_tiles_minus1が表3の13行目及び15行目に存在しない(ビットストリーム内の存在を決定するための条件が偽と評価する)とき、slice_width_in_tiles_minus1及びslice_height_in_tiles_minus1の値が0として推定されるべきであることである。
【0277】
slice_height_in_tiles_minus1[i]の値が0であると推定されることは、スライスiの高さが1つのタイルに等しいことを示す。
【0278】
slice_width_in_tiles_minus1[i]の値が0であると推定されるとき、これは、スライスiの幅が1つのタイルに等しいことを示す。
【0279】
slice_height_in_tiles_minus1及びslice_width_in_tiles_minus1は、各方向におけるスライスのサイズを示すシンタックスエレメントである。本発明の実施形態によれば、タイルの数でのスライスの幅又は高さに関するシンタックスエレメントがビットストリームに存在しない場合、スライスの幅又は高さは1つのタイルであると推定される。
【0280】
VVCドラフト8の6.5.1節における本発明の実現方式
6.5.1 CTBラスタースキャン、タイルスキャン及びサブピクチャスキャンのプロセス
長方形スライスについて、第iのスライス内のCTUの数を指定する、0以上num_slices_in_pic_minus1以下の範囲のiについてのリストNumCtusInSlice[i]、スライスの左上タイルのインデックスを指定する、0以上num_slices_in_pic_minus1以下の範囲のiについてのリストSliceTopLeftTileIdx[i]、並びに第iのスライス内の第jのCTBのピクチャラスタースキャンアドレスを指定する、0以上num_slices_in_pic_minus1以下の範囲のi及び0以上NumCtusInSlice[i]-1以下の範囲のjについての行列CtbAddrInSlice[i][j]は、以下のように導出される。
【表8】

【0281】
関数AddCtbsToSlice(sliceIdx,startX,stopX,startY,stopY)は以下のように指定される。
【表9】
【0282】
図13に示すように、復号デバイスにより実現されるコーディングの方法が開示され、当該方法は以下を含む。
【0283】
S1301:現在ピクチャのビットストリームを取得する。
【0284】
ビットストリームは、無線ネットワーク又は有線ネットワークに従って取得されてもよい。ビットストリームは、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL, digital subscriber line)、又は赤外線、無線、マイクロ波、WIFI、ブルートゥース、LTE若しくは5Gのような無線技術を使用して、ウェブサイト、サーバ又は他のリモートソースから送信されてもよい。
【0285】
実施形態では、ビットストリームは、1つ以上のコーディングされたビデオシーケンス(CVS, coded video sequence)を形成するアクセスユニット(AU, access unit)のシーケンスの表現を形成する、ネットワーク抽象レイヤ(NAL, network abstraction layer)ユニットストリーム又はバイトストリームの形式のビットのシーケンスである。
【0286】
いくつかの実施形態では、復号プロセスについて、デコーダ側はビットストリームを読み取り、ビットストリームから復号ピクチャを導出し、符号化プロセスについて、エンコーダ側はビットストリームを生成する。
【0287】
通常では、ビットストリームは、シンタックス構造により形成されたシンタックスエレメントを含む。シンタックスエレメント:ビットストリームで表現されるデータの要素。
【0288】
シンタックス構造:指定の順序でビットストリームに一緒に存在する0個以上のシンタックスエレメント。
【0289】
具体的な例では、ビットストリームフォーマットは、ネットワーク抽象レイヤ(NAL, network abstraction layer)ユニットストリームとバイトストリームとの間の関係を指定し、これらのいずれかがビットストリームと呼ばれる。
【0290】
ビットストリームは、2つのフォーマットのうち1つ、すなわち、NALユニットストリームフォーマット又はバイトストリームフォーマットとすることができる。概念的には、NALユニットストリームフォーマットは、より「基本的な」タイプである。NALユニットストリームフォーマットは、NALユニットと呼ばれるシンタックス構造のシーケンスを含む。このシーケンスは復号順序で順序付けされる。NALユニットストリーム内のNALユニットの復号順序(及び内容)に課される制約が存在する。
【0291】
バイトストリームフォーマットは、NALユニットを復号順序で順序付け、各NALユニットの前に開始コードプレフィックス及び0個以上のゼロ値バイトを付加してバイトストリームを形成することにより、NALユニットから構築できる。NALユニットストリームフォーマットは、このバイトのストリーム内の一意の開始コードプレフィックスパターンの位置を検索することにより、バイトストリームフォーマットから抽出できる。
【0292】
この節は、ビットストリームを介して与えられる、ソースピクチャと復号ピクチャとの間の関係を指定する。
【0293】
ビットストリームにより表されるビデオソースは、復号順序でのピクチャのシーケンスである。
【0294】
ソースピクチャ及び復号ピクチャは、それぞれ1つ以上のサンプルアレイで構成される。
-ルマ(Y)のみ(モノクロ)
-ルマ及び2つのクロマ(YCbCr又はYCgCo)
-緑、青及び赤(GBR、RGBとしても知られる)
-他の不特定のモノクロ又は3刺激カラーサンプリングを表すアレイ(例えば、YZX、XYZとしても知られる)
【0295】
これらのアレイに関連する変数及び用語は、ルマ(又はL又はY)及びクロマと呼ばれ、2つのクロマアレイはCb及びCrと呼ばれ、使用されている実際の色表現方法に関係ない。使用されている実際の色表現方法は、ITU-T H.SEI|ISO/IEC 23002-7で指定されるようなVUIパラメータで指定されるシンタックスで示されることができる。
【0296】
S1302:現在ピクチャのタイル行におけるタイルの数を取得する。
【0297】
タイル行におけるタイルの数は、タイル列の数と同じ意味であることが理解され得る。
【0298】
一例では、現在ピクチャのタイル行におけるタイルの数は、タイルの列の数を指定する変数NumTileColumnsに従って表される。
【0299】
一例では、現在ピクチャのタイル行におけるタイルの数は、ビットストリームのピクチャパラメータセットにコーディングされたパラメータに従って取得される。現在ピクチャのタイル行におけるタイルの数は、ビットストリーム内のパラメータを直接パースすることに従って取得されてもよく、或いは、パラメータから値を導出することに従って取得されてもよい。
【0300】
S1303:現在ピクチャのスライスのアドレスの値を取得する。
【0301】
一例では、スライスのアドレスの値は、タイルインデックス内のスライスの左上座標のアドレスを指定する。
【0302】
一例では、スライスのアドレスは、スライスの一番上のタイル行の一番左のタイルのインデックスであり、現在ピクチャに含まれるタイルはラスタースキャンの順序に従ってインデックス付けされる。
【0303】
一例では、スライスのアドレスの値は変数SliceTopLeftTileIdx[i]に従って表され、「i」はスライスインデックスである。
【0304】
0以上pps_num_slices_in_pic_minus1以下のiについてのSliceTopLeftTileIdx[i]は、スライス内の最初のCTUを含むタイルのタイルインデックスを指定する。pps_num_slices_in_pic_minus1に1を加えたものは、ピクチャパラメータセットPPSを参照する各ピクチャ内の長方形スライスの数を指定する。
【0305】
一例では、スライスのアドレスの値は、ビットストリームのピクチャパラメータセットにコーディングされたパラメータに従って取得される。現在ピクチャのタイル行におけるタイルの数は、ビットストリーム内のパラメータを直接パースすることに従って取得されてもよく、或いは、パラメータから値を導出することに従って取得されてもよい。
【0306】
S1304:スライスのアドレスの値に従ってtileXの値を取得する。
【0307】
一例では、スライスのアドレスの値に従ってtileXの値を取得することは、スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数に従ってtileXの値を取得することを含む。
【0308】
一例では、tileXの値は、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算に従って取得される。
【0309】
一例では、tileX=SliceTopLeftTileIdx[i]%NumTileColumnsである。
【0310】
一例では、tileXの値は水平座標の値を示す。
【0311】
S1305:現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しくないとき、現在ピクチャのビットストリームからスライス幅の指示値をパースする。
【0312】
第1の閾値は整数値であり、第1の閾値は0、1、2...でもよい。
【0313】
一例では、スライス幅の指示値はpps_slice_width_in_tiles_minus1[i]として表される。pps_slice_width_in_tiles_minus1[i]に1を加えたものは、タイル列の単位で第iの長方形スライスの幅を指定する。pps_slice_width_in_tiles_minus1[i]の値は、0以上NumTileColumns-1以下の範囲でもよい。存在しないとき、pps_slice_width_in_tiles_minus1[i]の値は0に等しいと推定される。
【0314】
いくつかの例では、「現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しくないとき」という条件は、「現在ピクチャのタイル行におけるタイルの数と、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算の値との間の差値が第1の閾値に等しくないとき」という条件に等しいことが理解され得る。したがって、tileXの値は最初に計算されず、スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算の結果に従って表される。
【0315】
本発明の実施形態によれば、シグナリング方式が開示され、少なくとも2つのタイル列のみが存在し、その場合、スライス幅のシンタックスエレメントがシグナリングされる。したがって、ビットストリーム利用率及び復号効率が改善されている。
【0316】
一例では、当該方法は、現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しいとき、スライス幅の指示値をデフォルト値に設定するステップを更に含む。デフォルト値は整数値であり、一例では、デフォルト値は0又は1でもよい。
【0317】
一例では、デフォルト値は、スライスの幅が1つのタイル列を含むことを示す。
【0318】
一例では、当該方法は、現在ピクチャのタイル列におけるタイルの数を取得するステップと、スライスのアドレスの値に従ってtileYの値を取得するステップと、現在ピクチャのタイル列におけるタイルの数とtileYの値との間の差値が第2の閾値に等しくないとき、現在ピクチャのビットストリームからスライス高さの指示値をパースするステップとを更に含む。第2の閾値は整数値であり、第2の閾値は0、1、2...でもよい。
【0319】
タイル列におけるタイルの数は、タイル行の数と同じ意味であることが理解され得る。
【0320】
一例では、現在ピクチャのタイル列におけるタイルの数は、変数NumTileRowsに従って表される。変数NumTileRowsはタイル行の数を指定する。
【0321】
一例では、スライス高さの指示値は、pps_slice_height_in_tiles_minus1[i]に従って表される。pps_slice_height_in_tiles_minus1[i]に1を加えたものは、pps_num_exp_slices_in_tile[i]が0に等しいとき、タイル行の単位で第iの長方形スライスの高さ指定する。pps_slice_height_in_tiles_minus1[i]の値は、0以上NumTileRows-1以下の範囲にあるものとする。
【0322】
一例では、当該方法は、現在ピクチャのタイル列におけるタイルの数とtileYの値との間の差値が第2の閾値に等しいとき、スライス高さの指示値をデフォルト値に設定するステップを更に含む。
【0323】
一例では、スライスのアドレスの値に従ってtileYの値を取得するステップは、スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数に従ってtileYの値を取得するステップを含む。
【0324】
一実現方式では、tileYの値は、スライスのアドレスの値及び現在ピクチャのタイル列におけるタイルの数との間の整数除算演算に従って取得される。例えば、tileY=SliceTopLeftTileIdx[i]/NumTileColumnsである。
【0325】
一例では、tileYの値は垂直座標の値を示す。いくつかの例では、「現在ピクチャのタイル列におけるタイルの数とtileYの値との間の差値が第2の閾値に等しくないとき」という条件は、「現在ピクチャのタイル列におけるタイルの数と、スライスのアドレスの値と現在ピクチャのタイル列におけるタイルの数との間の整数除算演算の値との間の差値が第2の閾値に等しくないとき」という条件に等しいことが理解され得る。したがって、tileYの値は最初に計算されず、スライスのアドレスの値と現在ピクチャのタイル列におけるタイルの数との間の整数除算演算の結果に従って表される。
【0326】
一例では、上記の実施形態のシンタックステーブルは以下の通りである。
【表10】
【0327】
図14に示すように、ビデオ復号装置1400が開示され、当該装置1400は、
現在ピクチャのビットストリームを取得するように構成された取得モジュール1401であり、取得モジュール1401は、現在ピクチャのタイル行におけるタイルの数を取得し、現在ピクチャのスライスのアドレスの値を取得するように構成される、取得モジュール1401と、
スライスのアドレスの値に従ってtileXの値を取得するように構成された計算モジュール1402と、
現在ピクチャのタイル行におけるタイルの数とtileXの値との間の差値が第1の閾値に等しくないとき、現在ピクチャのビットストリームからスライス幅の指示値をパースするように構成されたパースモジュール1403とを含む。
【0328】
各モジュールの詳細は、上記の方法の実施形態における実施形態及び実現方式を参照してもよい。
【0329】
本発明の利点
図10は、96個のCTU、4つのタイル及び8つのスライスへのピクチャのパーティションを例示している。
【0330】
VVCドラフト8のドキュメントに開示されている解決策によれば、以下のシンタックスエレメントは表1に従ってビットストリームにコーディングされる必要がある。
・値が0に等しいnum_slices_in_pic_minus1
・値が1に等しいtile_idx_delta_present_flag
・最初のスライス(iのインデックスが0に等しいことを意味する)について
○値が0に等しいslice_width_in_tiles_minus1[0]
○値が0に等しいslice_height_in_tiles_minus1[0]
○値が2に等しいnum_exp_slices_in_tile[0]
○CTU行の数で最初のスライスの高さを示す、値が0に等しいexp_slice_height_in_ctus_minus1[0]
・2番目のスライス(i=1)について
○値が1に等しいexp_slice_height_in_ctus_minus1[1]
○値が1に等しいtile_idx_delta[1]
・3番目のスライス(i=2)について
○値が0に等しいslice_width_in_tiles_minus1[2]
○値が0に等しいslice_height_in_tiles_minus1[2]
○値が2に等しいnum_exp_slices_in_tile[2]
○値が0に等しいexp_slice_height_in_ctus_minus1[2]
・4番目のスライス(i=3)について
○値が1に等しいexp_slice_height_in_ctus_minus1[3]
○値が1に等しいtile_idx_delta[3]
・5番目のスライス(i=4)について
○値が0に等しいslice_width_in_tiles_minus1[4]
○値が0に等しいslice_height_in_tiles_minus1[4]
○値が0に等しいnum_exp_slices_in_tile[4]
○値が1に等しいtile_idx_delta[4]
・6番目のスライス(i=5)について
○値が0に等しいslice_width_in_tiles_minus1[5]
○値が0に等しいslice_height_in_tiles_minus1[5]
○値が3に等しいnum_exp_slices_in_tile[5]
○値が1に等しいexp_slice_height_in_ctus_minus1[5]
・7番目のスライス(i=6)について
○値が0に等しいexp_slice_height_in_ctus_minus1[6]
・8番目のスライス(i=7)について
○値が2に等しいexp_slice_height_in_ctus_minus1[7]
【0331】
本発明の実施形態によれば、表3に示すように、図10における同じピクチャパーティションを記述するために、以下のシンタックスエレメントがビットストリームにコーディングされる必要がある。
・値が0に等しいnum_slices_in_pic_minus1
・値が1に等しいtile_idx_delta_present_flag
・最初のスライス(iのインデックスが0に等しいことを意味する)について
○値が0に等しいslice_width_in_tiles_minus1[0]
○値が0に等しいslice_height_in_tiles_minus1[0]
○値が2に等しいnum_exp_slices_in_tile[0]
○CTU行の数で最初のスライスの高さを示す、値が0に等しいexp_slice_height_in_ctus_minus1[0]
・2番目のスライス(i=1)について
○値が1に等しいexp_slice_height_in_ctus_minus1[1]
○値が1に等しいtile_idx_delta[1]
・3番目のスライス(i=2)について
○値が0に等しいslice_height_in_tiles_minus1[2]
○値が2に等しいnum_exp_slices_in_tile[2]
○値が0に等しいexp_slice_height_in_ctus_minus1[2]
・4番目のスライス(i=3)について
○値が1に等しいexp_slice_height_in_ctus_minus1[3]
○値が1に等しいtile_idx_delta[3]
・5番目のスライス(i=4)について
○値が0に等しいslice_width_in_tiles_minus1[4]
○値が0に等しいnum_exp_slices_in_tile[4]
○値が1に等しいtile_idx_delta[4]
・6番目のスライス(i=5)について
○値が3に等しいnum_exp_slices_in_tile[5]
○値が1に等しいexp_slice_height_in_ctus_minus1[5]
・7番目のスライス(i=6)について
○値が0に等しいexp_slice_height_in_ctus_minus1[6]
・8番目のスライス(i=7)について
○値が2に等しいexp_slice_height_in_ctus_minus1[7]
【0332】
要するに、以下のシンタックスエレメントはビットストリームにコーディングされる必要はない。
・値が0に等しいslice_width_in_tiles_minus1[2]
・値が0に等しいslice_height_in_tiles_minus1[4]
・値が0に等しいslice_width_in_tiles_minus1[5]
・値が0に等しいslice_height_in_tiles_minus1[5]
【0333】
これらのシンタックスエレメントの値は、VVCドラフト8の6.5.1節に追加された以下の条件に従って0に等しいと推定される。
【表11】

【0334】
以下は、上記の各実施形態に示す符号化方法及び復号方法並びにこれらを使用したシステムの適用の説明である。
【0335】
1.復号デバイスにより実現されるコーディングの方法であって、
現在ピクチャ(又はフレーム)のビットストリームを取得するステップと、
現在ピクチャのタイル行におけるタイルの数(例えば、NumTileColumnsの値)を取得するステップと、
現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値を取得するステップであり、現在スライスは現在ピクチャに含まれる、ステップと、
現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値に従って水平座標(一例では、水平座標は水平座標軸に位置する座標を意味する)(例えば、tileX)の値を取得するステップと、
現在ピクチャのタイル行におけるタイルの数(例えば、NumTileColumnsの値)と水平座標(例えば、tileX)の値との間の差値が第1の閾値(例えば、第1の閾値は整数であり、0、1、2...等でもよい)よりも大きいとき、現在ピクチャのビットストリームからスライス幅(すなわち、スライスの幅)の指示値をパースするステップ(すなわち、スライス幅の指示値はビットストリームにコーディングされる)と
を含む方法。
【0336】
例2.現在ピクチャのタイル行におけるタイルの数(例えば、NumTileColumnsの値)と水平座標(例えば、tileX)の値との間の差値が第1の閾値以下であるとき、スライス幅の指示値をデフォルト値(例えば、デフォルト値は0でもよい)に設定するステップを更に含む、例1に記載の方法。
【0337】
例3.デフォルト値は、現在スライスの幅が1つのタイル列を含むことを示す、例2に記載の方法。
【0338】
例4.現在スライスのアドレスの値に従って水平座標の値を取得するステップは、現在スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数に従って水平座標の値を取得するステップを含む、例1乃至3のうちいずれか1つに記載の方法。
【0339】
例5.現在スライスのアドレスは、現在スライスの一番上のタイル行の一番左のタイルのインデックスであり、現在ピクチャに含まれるタイルは、ラスタースキャン順序に従ってインデックス付けされる、例1乃至4のうちいずれか1つに記載の方法。
【0340】
例6.水平座標の値は、現在スライスのアドレスの値と現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算(例えば、SliceTopLeftTileIdx[i])%NumTileColumns)に従って取得される、例4又は5に記載の方法。
【0341】
例7.現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値は、タイルインデックスにおける現在スライスの左上座標のアドレスを指定する。
【0342】
例8.現在ピクチャのタイル列におけるタイルの数(例えば、NumTileRowsの値)を取得するステップと、
現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値に従って垂直座標(一例では、垂直座標は垂直座標軸に位置する座標を意味する)(例えば、tileY)の値を取得するステップと、
現在ピクチャのタイル列におけるタイルの数(例えば、NumTileRowsの値)と垂直座標(例えば、tileY)の値との間の差値が第2の閾値(例えば、第2の閾値は整数であり、0、1、2...等でもよい)よりも大きいとき、現在ピクチャのビットストリームからスライス高さ(すなわち、スライスの高さ)の指示値をパースするステップ(すなわち、スライス高さの指示値はビットストリームにコーディングされる)と
を更に含む、例1乃至7のうちいずれか1つに記載の方法。
【0343】
例9.現在ピクチャのタイル列におけるタイルの数(例えば、NumTileRowsの値)と垂直座標(例えば、tileY)の値との間の差値が第2の閾値以下であるとき、スライス高さの指示値をデフォルト値(例えば、デフォルト値は0に等しくてもよい)に設定するステップを更に含む、例8に記載の方法。
【0344】
例10.現在スライスのアドレスの値に従って垂直座標の値を取得するステップは、現在スライスのアドレスの値及び現在ピクチャのタイル列におけるタイルの数に従って垂直座標の値を取得するステップを含む、例8又は9に記載の方法。
【0345】
例11.垂直座標の値は、現在スライスのアドレスの値及び現在ピクチャのタイル列におけるタイルの数との間の整数除算演算(例えば、SliceTopLeftTileIdx[i])/NumTileRows)に従って取得される、例10に記載の方法。
【0346】
例12.復号デバイスにより実現されるコーディングの方法であって、
現在ピクチャ(又はフレーム)のビットストリームを取得するステップと、
現在ピクチャのタイル列におけるタイルの数(例えば、NumTileRowsの値)を取得するステップと、
現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値を取得するステップであり、現在スライスは現在ピクチャに含まれる、ステップと、
現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値に従って垂直座標(一例では、垂直座標は垂直座標軸に位置する座標を意味する)(例えば、tileY)の値を取得するステップと、
現在ピクチャのタイル列におけるタイルの数(例えば、NumTileRowsの値)と垂直座標(例えば、tileY)の値との間の差値が第2の閾値(例えば、第2の閾値は整数であり、0、1、2...等でもよい)よりも大きいとき、現在ピクチャのビットストリームからスライス高さ(すなわち、スライスの高さ)の指示値をパースするステップ(すなわち、スライス高さの指示値はビットストリームにコーディングされる)と
を含む方法。
【0347】
例13.現在ピクチャのタイル列におけるタイルの数(例えば、NumTileRowsの値)と垂直座標(例えば、tileY)の値との間の差値が第2の閾値以下であるとき、スライス高さの指示値をデフォルト値(例えば、デフォルト値は0に等しくてもよい)に設定するステップを更に含む、例12に記載の方法。
【0348】
例14.デフォルト値は、現在スライスの高さが1つのタイル行を含むことを示す、例13に記載の方法。
【0349】
例15.現在スライスのアドレスの値に従って垂直座標の値を取得するステップは、
現在スライスのアドレスの値及び現在ピクチャのタイル列におけるタイルの数に従って垂直座標の値を取得するステップを含む、例12乃至14のうちいずれか1つに記載の方法。
【0350】
例16.現在スライスのアドレスは、現在スライスの一番上のタイル行の一番左のタイルのインデックスであり、現在ピクチャに含まれるタイルは、ラスタースキャン順序に従ってインデックス付けされる、例12乃至15のうちいずれか1つに記載の方法。
【0351】
例17.垂直座標の値は、現在スライスのアドレスの値と現在ピクチャのタイル列におけるタイルの数との間の整数除算演算(例えば、SliceTopLeftTileIdx[i])/NumTileRows)に従って取得される、例15又は16に記載の方法。
【0352】
例18.現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値は、タイルインデックスにおける現在スライスの左上座標のアドレスを指定する、例12乃至17のうちいずれか1つに記載の方法。
【0353】
例19.現在ピクチャのタイル行におけるタイルの数(例えば、NumTileColumnsの値)を取得するステップと、
現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値に従って水平座標(一例では、水平座標は水平座標軸に位置する座標を意味する)(例えば、tileX)の値を取得するステップと、
現在ピクチャのタイル行におけるタイルの数(例えば、NumTileColumnsの値)と水平座標(例えば、tileX)の値との間の差値が第1の閾値(例えば、第1の閾値は整数であり、0、1、2...等でもよい)よりも大きいとき、現在ピクチャのビットストリームからスライス幅(すなわち、スライスの幅)の指示値をパースするステップ(すなわち、スライス幅の閾値はビットストリームにコーディングされる)と
を更に含む、例12乃至18のうちいずれか1つに記載の方法。
【0354】
例20.現在ピクチャのタイル行におけるタイルの数(例えば、NumTileColumnsの値)と水平座標(例えば、tileX)の値との間の差値が第1の閾値以下であるとき、スライス幅の指示値をデフォルト値(例えば、デフォルト値は0に等しくてもよい)に設定するステップを更に含む、例19に記載の方法。
【0355】
例21.現在スライスのアドレスの値に従って水平座標の値を取得するステップは、現在スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数に従って水平座標の値を取得するステップを含む、例19又は20に記載の方法。
【0356】
例22.水平座標の値は、現在スライスのアドレスの値及び現在ピクチャのタイル行におけるタイルの数との間のモジュラス演算(例えば、SliceTopLeftTileIdx[i])%NumTileColumns)に従って取得される。
【0357】
例23.符号化デバイスにより実現されるコーディングの方法であって、
現在ピクチャのタイル行におけるタイルの数(例えば、NumTileColumnsの値)を取得するステップと、
現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値を取得するステップであり、現在スライスは現在ピクチャに含まれる、ステップと、
現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値に従って水平座標(一例では、水平座標は水平座標軸に位置する座標を意味する)(例えば、tileX)の値を取得するステップと、
現在ピクチャのタイル行におけるタイルの数(例えば、NumTileColumnsの値)と水平座標(例えば、tileX)の値との間の差値が第1の閾値(例えば、第1の閾値は整数であり、0、1、2...等でもよい)よりも大きいとき、現在ピクチャのスライス幅(すなわち、スライスの幅)の指示値をコーディングして(すなわち、スライス幅の指示値はビットストリームにコーディングされる)、ビットストリームを取得するステップと
を含む方法。
【0358】
例24.現在ピクチャのタイル列におけるタイルの数(例えば、NumTileRowsの値)を取得するステップと、
現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値に従って垂直座標(一例では、垂直座標は垂直座標軸に位置する座標を意味する)(例えば、tileY)の値を取得するステップと、
現在ピクチャのタイル列におけるタイルの数(例えば、NumTileRowsの値)と垂直座標(例えば、tileY)の値との間の差値が第2の閾値(例えば、第2の閾値は整数であり、0、1、2...等でもよい)よりも大きいとき、現在ピクチャのスライス高さ(すなわち、スライスの高さ)の指示値をコーディングして(すなわち、スライス高さの指示値はビットストリームにコーディングされる)、ビットストリームを取得するステップと
を更に含む、例23に記載の方法。
【0359】
例25.符号化デバイスにより実現されるコーディングの方法であって、
現在ピクチャのタイル列におけるタイルの数(例えば、NumTileRowsの値)を取得するステップと、
現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値を取得するステップであり、現在スライスは現在ピクチャに含まれる、ステップと、
現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値に従って垂直座標(一例では、垂直座標は垂直座標軸に位置する座標を意味する)(例えば、tileY)の値を取得するステップと、
現在ピクチャのタイル列におけるタイルの数(例えば、NumTileRowsの値)と垂直座標(例えば、tileY)の値との間の差値が第2の閾値(例えば、第2の閾値は整数であり、0、1、2...等でもよい)よりも大きいとき、現在ピクチャのスライス高さ(すなわち、スライスの高さ)の指示値をコーディングして(すなわち、スライス高さの指示値はビットストリームにコーディングされる)、ビットストリームを取得するステップと
を含む方法。
【0360】
例26.現在ピクチャのタイル行におけるタイルの数(例えば、NumTileColumnsの値)を取得するステップと、
現在スライスのアドレス(例えば、SliceTopLeftTileIdx[i])の値に従って水平座標(一例では、水平座標は水平座標軸に位置する座標を意味する)(例えば、tileX)の値を取得するステップと、
現在ピクチャのタイル行におけるタイルの数(例えば、NumTileColumnsの値)と水平座標(例えば、tileX)の値との間の差値が第1の閾値(例えば、第1の閾値は整数であり、0、1、2...等でもよい)よりも大きいとき、現在ピクチャのスライス幅(すなわち、スライスの幅)の指示値をコーディングして(すなわち、スライス幅の閾値はビットストリームにコーディングされる)、ビットストリームを取得するステップと
を更に含む、例25に記載の方法。
【0361】
例27.例1乃至22のうちいずれか1つに記載の方法を実行するための処理回路を含むデコーダ(30)。
【0362】
例28.例23乃至26のうちいずれか1つに記載の方法を実行するための処理回路を含むエンコーダ。
【0363】
例29.コンピュータ又はプロセッサ上で実行されたとき、上記の例のうちいずれか1つに記載の方法を実行するためのプログラムコードを含むコンピュータプログラム製品。
【0364】
例30.デコーダであって、
1つ以上のプロセッサと、
プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能記憶媒体であり、プログラミングは、プロセッサにより実行されたとき、上記の例のうちいずれか1つに記載の方法を実行するようにデコーダを構成する、非一時的なコンピュータ読み取り可能記憶媒体と
を含むデコーダ。
【0365】
例31.エンコーダであって、
1つ以上のプロセッサと、
プロセッサに結合され、プロセッサによる実行のためのプログラミングを記憶する非一時的なコンピュータ読み取り可能記憶媒体であり、プログラミングは、プロセッサにより実行されたとき、上記の例のうちいずれか1つに記載の方法を実行するようにデコーダを構成する、非一時的なコンピュータ読み取り可能記憶媒体と
を含むエンコーダ。
【0366】
例32.コンピュータデバイスにより実行されたとき、コンピュータデバイスに上記の例のうちいずれか1つに記載の方法を実行させるプログラムコードを保持する非一時的なコンピュータ読み取り可能媒体。
【0367】
図8は、コンテンツ配信サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、キャプチャデバイス3102、端末デバイス3106を含み、任意選択でディスプレイ3126を含む。キャプチャデバイス3102は、通信リンク3104上で端末デバイス3106と通信する。通信リンクは、上記の通信チャネル13を含んでもよい。通信リンク3104は、WIFI、イーサネット、ケーブル、無線(3G/4G/5G)、USB又はこれらのいずれかの種類の組み合わせ等を含むが、これらに限定されない。
【0368】
キャプチャデバイス3102は、データを生成し、上記の実施形態に示すような符号化方法によりデータを符号化してもよい。代替として、キャプチャデバイス3102は、データをストリーミングサーバ(図面に図示せず)に配信してもよく、サーバは、データを符号化し、符号化データを端末デバイス3106に送信する。キャプチャデバイス3102は、カメラ、スマートフォン若しくはパッド、コンピュータ若しくはラップトップ、ビデオ会議システム、PDA、車載デバイス又はこれらのうちいずれかの組み合わせ等を含むが、これらに限定されない。例えば、キャプチャデバイス3102は、上記のようなソースデバイス12を含んでもよい。データがビデオを含むとき、キャプチャデバイス3102に含まれるビデオエンコーダ20は、実際に、ビデオ符号化処理を実行してもよい。データがオーディオ(すなわち、音声)を含むとき、キャプチャデバイス3102に含まれるオーディオエンコーダは、実際に、オーディオ符号化処理を実行してもよい。いくつかの実際のシナリオでは、キャプチャデバイス3102は、符号化ビデオ及びオーディオデータを、これらを一緒に多重化することにより配信する。他の実際のシナリオでは、例えば、ビデオ会議システムにおいて、符号化オーディオデータ及び符号化ビデオデータは多重化されない。キャプチャデバイス3102は、符号化オーディオデータ及び符号化ビデオデータを端末デバイス3106に別個に配信する。
【0369】
コンテンツ供給システム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は、ビデオ復号を実行するように優先される。符号化データがオーディオを含むとき、端末デバイスに含まれるオーディオデコーダは、オーディオ復号処理を実行するように優先される。
【0370】
自身のディスプレイを有する端末デバイス、例えば、スマートフォン若しくはパッド3108、コンピュータ若しくはラップトップ3110、ネットワークビデオレコーダ(NVR, network video recorder)/デジタルビデオデコーダ(DVR, digital video recorder)3112、TV3114、パーソナルデジタルアシスタント(PDA, personal digital assistant)3122又は車載デバイス3124では、端末デバイスは、復号データを自身のディスプレイに供給できる。ディスプレイを備えない端末デバイス、例えば、STB3116、ビデオ会議システム3118又はビデオ監視システム3120では、外部ディスプレイ3126が、復号データを受信して表示するために自身に接触される。
【0371】
このシステム内の各デバイスが符号化又は復号を実行するとき、上記の実施形態において示すように、ピクチャ符号化デバイス又はピクチャ復号デバイスが使用できる。
【0372】
図9は、端末デバイス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)又はいずれかの種類のこれらの組み合わせ等を含むが、これらに限定されない。
【0373】
プロトコル処理ユニット3202がストリームを処理した後に、ストリームファイルが生成される。ファイルは、逆多重化ユニット3204に出力される。逆多重化ユニット3204は、多重化データを符号化オーディオデータ及び符号化ビデオデータに分離できる。上記のように、いくつかの実際のシナリオでは、例えば、ビデオ会議システムにおいて、符号化オーディオデータ及び符号化ビデオデータは多重化されない。この状況では、符号化データは、逆多重化ユニット3204を通過せずにビデオデコーダ3206及びオーディオデコーダ3208に送信される。
【0374】
逆多重化処理を介して、ビデオエレメンタリストリーム(ES, elementary stream)、オーディオES及び任意選択のサブタイトルが生成される。上記の実施形態において説明したようなビデオデコーダ30を含むビデオデコーダ3206は、上記の実施形態において示すような復号方法によりビデオESを復号して、ビデオフレームを生成し、このデータを同期ユニット3212に供給する。オーディオデコーダ3208は、オーディオESを復号してオーディオフレームを生成し、このデータを同期ユニット3212に供給する。代替として、ビデオフレームは、同期ユニット3212に供給する前に、バッファ(図9に図示せず)に記憶してもよい。同様に、オーディオフレームは、同期ユニット3212に供給する前に、バッファ(図9に図示せず)に記憶してもよい。
【0375】
同期ユニット3212は、ビデオフレーム及びオーディオフレームを同期させ、ビデオ/オーディオをビデオ/オーディオディスプレイ3214に供給する。例えば、同期ユニット3212は、ビデオ及びオーディオ情報の提示を同期させる。情報は、コーディングされたオーディオ及び視覚データの提示に関するタイムスタンプと、データストリーム自身の配信に関するタイムスタンプとを使用してシンタックス内にコーディングしてもよい。
【0376】
サブタイトルがストリームに含まれる場合、サブタイトルデコーダ3210は、サブタイトルを復号し、これをビデオフレーム及びオーディオフレームと同期させ、ビデオ/オーディオ/サブタイトルをビデオ/オーディオ/サブタイトルディスプレイ3216に供給する。
【0377】
本発明は、上記のシステムに限定されず、上記の実施形態におけるピクチャ符号化デバイス又はピクチャ復号デバイスのいずれかは、他のシステム、例えば車両システムに組み込まれることができる。
【0378】
数学演算子
本願で使用される数学演算子は、Cプログラミング言語で使用されるものと同様である。しかし、整数除算及び算術シフト演算の結果は、より正確に定義され、指数計算及び実数値の除算のような更なる演算子が定義される。番号付け及び計数規則は、一般的に0から始まり、例えば、「第1」は0番目と等価であり、「第2」は1番目と等価である、等である。
【0379】
論理演算子
以下の論理演算子は以下のように定義される。
【表12】
【0380】
論理演算子
以下の論理演算子は以下のように定義される。
x&&y x及びyのブール論理「積」
x||y x及びyのブール論理「和」
! ブール論理「否定」
x?y:z xが真である場合又は0に等しくない場合、yの値に評価され、そうでない場合、zの値に評価される
【0381】
関係演算子
以下の関係演算子は以下のように定義される。
> よりも大きい
>= 以上
< 未満
<= 以下
== 等しい
!= 等しくない
関係演算子が値「na」(not applicable)を割り当てられたシンタックスエレメント又は変数に適用されるとき、値「na」は、シンタックスエレメント又は変数の個別の値として扱われる。値「na」は、いずれかの他の値に等しくないと考えられる。
【0382】
ビット演算子
以下のビット演算子は以下のように定義される。
& ビット毎の「積」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。他の引数よりも少ないビットを含む二値の引数に対して演算するとき、より短い引数は、0に等しいより上位のビットを追加することにより拡張される。
| ビット毎の「和」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。他の引数よりも少ないビットを含む二値の引数に対して演算するとき、より短い引数は、0に等しいより上位のビットを追加することにより拡張される。
^ ビット毎の「排他和」。整数の引数に対して演算するとき、整数値の2の補数表現に対して演算する。他の引数よりも少ないビットを含む二値の引数に対して演算するとき、より短い引数は、0に等しいより上位のビットを追加することにより拡張される。
x>>y y個の二進数字によるxの2の補数整数表現の算術右シフト。この関数は、yの非負整数値についてのみ定義される。右シフトの結果としての最上位ビット(MSB, most significant bit)にシフトされたビットは、シフト演算前のxのMSBに等しい値を有する。
x<<y y個の二進数字によるxの2の補数整数表現の算術左シフト。この関数は、yの非負整数値についてのみ定義される。左シフトの結果としての最下位ビット(LSB, least significant bit)にシフトされたビットは、0に等しい値を有する。
【0383】
代入演算子
以下の代入演算子は以下のように定義される。
= 代入演算子
++ インクリメント。すなわち、x++はx=x+1に等しい。配列インデックスにおいて使用されるとき、インクリメント演算の前の変数の値に評価される。
-- デクリメント。すなわち、x--はx=x-1に等しい。配列インデックスにおいて使用されるとき、デクリメント演算の前の変数の値に評価される。
+= 指定された量だけのインクリメント。すなわちx+=3はx=x+3に等しく、x+=(-3)はx=x+(-3)に等しい。
-= 指定された量だけのデクリメント。すなわちx-=3はx=x-3に等しく、x-=(-3)はx=x-(-3)に等しい。
【0384】
範囲表記
以下の表記が値の範囲を指定するために使用される。
x=y..z xはy以上z以下の整数値をとり、x、y及びzは整数であり、zはyよりも大きい。
【0385】
数学関数
以下の数学関数が定義される。
【数2】
Asin(x) 三角法の逆正弦関数。-1.0以上1.0以下の範囲にある引数xに対して演算し、ラジアンの単位の-π÷2以上π÷2以下の範囲の出力値を有する。
Atan(x) 三角法の逆正接関数。引数xに対して演算し、ラジアンの単位の-π÷2以上π÷2以下の範囲の出力値を有する。
【数3】
Ceil(x) x以上の最小の整数。
Clip1Y(x)=Clip3(0,(1<<BitDepthY)-1,x)
Clip1C(x)=Clip3(0,(1<<BitDepthC)-1,x)
【数4】
Cos(x) ラジアンの単位の引数xに対して演算する三角法の余弦関数。
Floor(x) x以下の最大の整数。
【数5】
Ln(x) xの自然対数(eを底とする対数であり、eは自然対数の底の定数2.718281828...である)。
Log2(x) xの2を底とする対数。
Log10(x) xの10を底とする対数。
【数6】
【数7】
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
【数8】
Sin(x) ラジアンの単位の引数xに対して演算する三角法の正弦関数。
Sqrt(x)=√x
Swap(x,y)=(y,x)
Tan(x) ラジアンの単位の引数xに対して演算する三角法の正接関数。
【0386】
演算優先順位
式の優先順位が括弧の使用により明示的に示されないとき、以下の規則が当てはまる。
-より高い優先度の演算は、より低い優先度のいずれかの演算の前に評価される。
-同じ優先度の演算は、左から右に順次評価される。
【0387】
以下の表は、最高から最低までの演算の優先度を指定し、表におけるより高い位置は、より高い優先度を示す。
【0388】
Cプログラミング言語でも使用される演算子については、本明細書で使用される優先順位は、Cプログラミング言語で使用される優先順位と同じである。
【表13】
【0389】
論理演算のテキスト記述
テキストにおいて、以下の形式:
if(条件0)
ステートメント0
else(条件1)
ステートメント1
...
else /*残りの条件に関する参考注記*/
ステートメントn
で数学的に記述されるような論理演算のステートメントは、以下の方式で記述されてもよい。
...以下の通り/...以下が当てはまる:
-条件0である場合、ステートメント0
-そうでなく、条件1である場合、ステートメント1
-...
-そうでない場合(残りの条件に関する参考注記)、ステートメントn
テキストにおけるそれぞれの「…である場合…、そうでなく、…である場合…、そうでない場合…」のステートメントは、「…である場合」が直後に続く「…以下の通り」又は「…以下が当てはまる」で導入される。「…である場合…、そうでなく、…である場合…、そうでない場合…」の最後の条件は、常に「そうでない場合、…」である。交互に配置される「…である場合…、そうでなく、…である場合…、そうでない場合…」のステートメントは、「そうでない場合、…」で終わる「…以下の通り」又は「…以下が当てはまる」に一致させることにより識別できる。
【0390】
テキストにおいて、以下の形式:
if(条件0a&&条件0b)
ステートメント0
else if(条件1a||条件1b)
ステートメント1
...
else
ステートメントn
で数学的に記述されるような論理演算のステートメントは、以下の方式で記述されてもよい。
...以下の通り/...以下が当てはまる:
-以下の条件の全てが真である場合、ステートメント0:
-条件0a
-条件0b
-そうでなく、以下の条件のうち1つ以上が真である場合、ステートメント1:
-条件1a
-条件1b
-…
-そうでない場合、ステートメントn
【0391】
テキストにおいて、以下の形式:
if(条件0)
ステートメント0
if(条件1)
ステートメント1
で数学的に記述されるような論理演算のステートメントは、以下の方式で記述されてもよい。
条件0であるとき、ステートメント0
条件1であるとき、ステートメント1
【0392】
本発明の実施形態について、主にビデオコーディングに基づいて説明したが、コーディングシステム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に同等に使用されてもよい。
【0393】
例えば、エンコーダ20及びデコーダ30の実施形態、並びに、例えば、エンコーダ20及びデコーダ30に関してここに記載した機能は、ハードウェア、ソフトウェア、ファームウェア又はこれらのいずれかの組み合わせで実現されてもよい。ソフトウェアで実現される場合、機能は、1つ以上の命令又はコードとしてコンピュータ読み取り可能媒体に記憶され或いは通信媒体上で送信され、ハードウェアベースの処理ユニットにより実行されてもよい。コンピュータ読み取り可能媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ読み取り可能記憶媒体、又は例えば、通信プロトコルに従って或る場所から他の場所へのコンピュータプログラムの転送を容易にするいずれかの媒体を含む通信媒体を含んでもよい。このように、コンピュータ読み取り可能媒体は、一般的に、(1)非一時的である有形コンピュータ読み取り可能記憶媒体、又は(2)信号若しくは搬送波のような通信媒体に対応してもよい。データ記憶媒体は、本開示に記載の技術の実現のために命令、コード及び/又はデータ構造を取り出すために、1つ以上のコンピュータ又は1つ以上のプロセッサによりアクセスできるいずれかの利用可能な媒体でもよい。コンピュータプログラム製品は、コンピュータ読み取り可能媒体を含んでもよい。
【0394】
限定ではなく例として、このようなコンピュータ読み取り可能記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリ、又は命令若しくはデータ構造の形式で所望のプログラムコードを記憶するために使用でき且つコンピュータによりアクセスできるいずれかの他の媒体を含むことができる。また、いずれかの接続は、適切にコンピュータ読み取り可能媒体と呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL, digital subscriber line)、又は赤外線、無線及びマイクロ波のような無線技術を使用してウェブサイト、サーバ又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、又は赤外線、無線及びマイクロ波のような無線技術は、媒体の定義に含まれる。しかし、コンピュータ読み取り可能記憶媒体及びデータ記憶媒体は、接続、搬送波、信号又は他の一時的な媒体を含まないが、代わりに非一時的な有形記憶媒体を対象とすることが理解されるべきである。ディスク(disk)及びディクス(disc)は、ここで使用されるとき、コンパクトディスク(CD, compact disc)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD, digital versatile disc)、フロッピーディスク及びブルーレイディスクを含み、ディスク(disk)は通常ではデータを磁気的に再生し、ディスク(disc)はデータをレーザで光学的に再生する。上記の組み合わせも、コンピュータ読み取り可能媒体の範囲に含まれるべきである。
【0395】
命令は、1つ以上のデジタルシグナルプロセッサ(DSP, digital signal processor)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC, application specific integrated circuit)、フィールドプログラマブルロジックアレイ(FPGA, field programmable logic array)又は他の等価な集積若しくは個別論理回路のような1つ以上のプロセッサにより実行されてもよい。したがって、「プロセッサ」という用語は、ここで使用されるとき、上記の構造のうちいずれか又はここに記載の技術の実現方式に適したいずれかの他の構造を示してもよい。さらに、いくつかの態様では、ここに記載の機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内に提供されてもよく或いは結合されたコーデックに組み込まれてもよい。また、技術は、1つ以上の回路又は論理素子に完全に実現されてもよい。
【0396】
本開示の技術は、無線ハンドセット、集積回路(IC, integrated circuit)又はICのセット(例えば、チップセット)を含む広範なデバイス又は装置に実現されてもよい。様々なコンポーネント、モジュール又はユニットは、開示の技術を実行するように構成されたデバイスの機能的側面を強調するように本開示において記載されているが、異なるハードウェアユニットによる実現を必ずしも必要としない。むしろ、上記のように、様々なユニットは、適切なソフトウェア及び/又はファームウェアと組み合わせて、コーデックハードウェアユニットに結合されてもよく、或いは、上記のような1つ以上のプロセッサを含む相互運用ハードウェアユニットの集合により提供されてもよい。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14