(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-21
(54)【発明の名称】符号化及び復号化方法並びに装置
(51)【国際特許分類】
H04N 19/90 20140101AFI20240814BHJP
H04N 19/436 20140101ALI20240814BHJP
【FI】
H04N19/90
H04N19/436
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024506874
(86)(22)【出願日】2022-08-01
(85)【翻訳文提出日】2024-03-15
(86)【国際出願番号】 CN2022109485
(87)【国際公開番号】W WO2023011420
(87)【国際公開日】2023-02-09
(31)【優先権主張番号】202110898667.8
(32)【優先日】2021-08-05
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(71)【出願人】
【識別番号】507232478
【氏名又は名称】北京大学
【氏名又は名称原語表記】PEKING UNIVERSITY
【住所又は居所原語表記】No.5, Yiheyuan Road, Haidian District, Beijing 100871, China
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100229448
【氏名又は名称】中槇 利明
(72)【発明者】
【氏名】リウ,ジアイーン
(72)【発明者】
【氏名】ワーン,ドーァジャオ
(72)【発明者】
【氏名】ワーン,ジーン
(72)【発明者】
【氏名】グオ,ティエンシュヨン
(72)【発明者】
【氏名】ツゥイ,ゾーァ
(72)【発明者】
【氏名】ゴーァ,ユインイーン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159KK13
5C159MA00
(57)【要約】
本件出願は、データ符号化及び復号化方法のレート歪パフォーマンスを向上させるための符号化及び復号化方法並びに装置を開示するものであり、人工知能技術分野に関連する。方法は:先ず、符号化される対象データを取得し、次いで、符号化される対象データを第1の符号化ネットワークに入力して、ターゲット・パラメータを取得し;ターゲット・パラメータに基づいて第2の符号化ネットワークを構築し;次いで、符号化される対象データを第2の符号化ネットワークに入力して第1の特徴を取得し;最終的に、第1の特徴を符号化して符号化されたビットストリームを取得するステップを含む。
【特許請求の範囲】
【請求項1】
符号化方法であって:
符号化される対象データを取得するステップ;
前記符号化される対象データを第1の符号化ネットワークに入力して、ターゲット・パラメータを取得するステップ;
前記ターゲット・パラメータに基づいて第2の符号化ネットワークを構築するステップ;
前記符号化される対象データを第2の符号化ネットワークに入力して第1の特徴を取得するステップ;及び
前記第1の特徴を符号化して符号化されたビットストリームを取得するステップ;
を含む方法。
【請求項2】
請求項1に記載の方法において、前記ターゲット・パラメータは、前記第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である、方法。
【請求項3】
請求項1又は2に記載の方法において、前記第1の特徴を符号化して符号化されたビットストリームを取得するステップは:
前記第1の特徴を丸めて前記第1の特徴の整数値を取得するステップ;
前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第1の特徴の整数値についての推定された確率分布に基づいて、前記第1の特徴の整数値に関するエントロピー符号化を実行して、前記符号化されたビットストリームを取得するステップ;
を含む方法。
【請求項4】
請求項3に記載の方法において、前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップは:
第1の情報に基づいて前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を含む、方法。
【請求項5】
復号化方法であって:
復号化される対象のビットストリームを取得するステップ;
前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値と第2の特徴の整数値とを取得するステップであって、前記第1の特徴の整数値は、復号化されたデータを取得するために使用され、前記第2の特徴の整数値は、ターゲット・パラメータを取得するために使用される、ステップ;
前記第2の特徴の整数値を第1の復号化ネットワークに入力して、前記ターゲット・パラメータを取得するステップ;
前記ターゲット・パラメータに基づいて第2の復号化ネットワークを構築するステップ;及び
前記第1の特徴の整数値を前記第2の復号化ネットワークに入力して、復号化されたデータを取得するステップ;
を含む方法。
【請求項6】
請求項5に記載の方法において、前記ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である、方法。
【請求項7】
請求項5又は6に記載の方法において、前記復号化される対象のビットストリームは、第1の復号化される対象のビットストリームと第2の復号化される対象のビットストリームとを含み、前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値と第2の特徴の整数値とを取得するステップは:
前記第1の復号化される対象のビットストリームを復号化して、前記第1の特徴の整数値を取得するステップ;及び
前記第2の復号化される対象のビットストリームを復号化して、前記第2の特徴の整数値を取得するステップ;
を含む、方法。
【請求項8】
請求項7に記載の方法において、前記第1の復号化される対象のビットストリームを復号化して、前記第1の特徴の整数値を取得するステップは:
前記第1の復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第1の特徴の整数値についての推定された確率分布に基づいて、前記第1の復号化される対象のビットストリームに関するエントロピー復号化を実行して、前記第1の特徴の整数値を取得するステップ;
を含む、方法。
【請求項9】
請求項8に記載の方法において、前記第1の復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップは:
第1の情報に基づいて前記第1の復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を含む、方法。
【請求項10】
請求項7ないし9のうちの何れか一項に記載の方法において、前記第2の復号化される対象のビットストリームを復号化して、前記第2の特徴の整数値を取得するステップは:
前記第2の復号化される対象のビットストリームにおける前記第2の特徴の整数値に関する確率推定を実行して、前記第2の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第2の特徴の整数値についての推定された確率分布に基づいて、前記第2の復号化される対象のビットストリームに関するエントロピー復号化を実行して、前記第2の特徴の整数値を取得するステップ;
を含む、方法。
【請求項11】
請求項10に記載の方法において、前記第2の復号化される対象のビットストリームにおける前記第2の特徴の整数値に関する確率推定を実行して、前記第2の特徴の整数値についての推定された確率分布を取得するステップは:
第1の情報に基づいて前記第2の復号化される対象のビットストリームにおける前記第2の特徴の整数値に関する確率推定を実行して、前記第2の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を含む、方法。
【請求項12】
復号化方法であって:
復号化される対象のビットストリームを取得するステップ;
前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得するステップであって、前記第1の特徴の整数値は、復号化されたデータとターゲット・パラメータとを取得するために使用される、ステップ;
前記第1の特徴の整数値を第1の復号化ネットワークに入力して、前記ターゲット・パラメータを取得するステップ;
前記ターゲット・パラメータに基づいて第2の復号化ネットワークを構築するステップ;及び
前記第1の特徴の整数値を前記第2の復号化ネットワークに入力して、復号化されたデータを取得するステップ;
を含む方法。
【請求項13】
請求項12に記載の方法において、前記ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である、方法。
【請求項14】
請求項12又は13に記載の方法において、前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得するステップは:
前記復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第1の特徴の整数値についての推定された確率分布に基づいて、前記復号化される対象のビットストリームに関するエントロピー復号化を実行して、前記第1の特徴の整数値を取得するステップ;
を含む、方法。
【請求項15】
請求項14に記載の方法において、前記復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップは:
第1の情報に基づいて前記復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を含む、方法。
【請求項16】
処理回路を含む符号化装置であって、前記処理回路は:
符号化される対象データを取得するステップ;
前記符号化される対象データを第1の符号化ネットワークに入力して、ターゲット・パラメータを取得するステップ;
前記ターゲット・パラメータに基づいて第2の符号化ネットワークを構築するステップ;
前記符号化される対象データを第2の符号化ネットワークに入力して第1の特徴を取得するステップ;及び
前記第1の特徴を符号化して符号化されたビットストリームを取得するステップ;
を行うように構成されている、装置。
【請求項17】
請求項16に記載の装置において、前記ターゲット・パラメータは、前記第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である、装置。
【請求項18】
請求項16又は17に記載の装置において、前記処理回路は:
前記第1の特徴を丸めて前記第1の特徴の整数値を取得するステップ;
前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第1の特徴の整数値についての推定された確率分布に基づいて、前記第1の特徴の整数値に関するエントロピー符号化を実行して、前記符号化されたビットストリームを取得するステップ;
を行うように具体的に構成されている、装置。
【請求項19】
請求項18に記載の装置において、前記処理回路は:
第1の情報に基づいて前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を行うように具体的に構成されている、装置。
【請求項20】
処理回路を含む復号化装置であって、前記処理回路は:
復号化される対象のビットストリームを取得するステップ;
前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値と第2の特徴の整数値とを取得するステップであって、前記第1の特徴の整数値は、復号化されたデータを取得するために使用され、前記第2の特徴の整数値は、ターゲット・パラメータを取得するために使用される、ステップ;
前記第2の特徴の整数値を第1の復号化ネットワークに入力して、前記ターゲット・パラメータを取得するステップ;
前記ターゲット・パラメータに基づいて第2の復号化ネットワークを構築するステップ;及び
前記第1の特徴の整数値を前記第2の復号化ネットワークに入力して、復号化されたデータを取得するステップ;
を行うように具体的に構成されている、装置。
【請求項21】
請求項20に記載の装置において、前記ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である、装置。
【請求項22】
請求項20又は21に記載の装置において、前記復号化される対象のビットストリームは、第1の復号化される対象のビットストリームと第2の復号化される対象のビットストリームとを含み、前記処理回路は:
前記第1の復号化される対象のビットストリームを復号化して、前記第1の特徴の整数値を取得するステップ;及び
前記第2の復号化される対象のビットストリームを復号化して、前記第2の特徴の整数値を取得するステップ;
を行うように具体的に構成されている、装置。
【請求項23】
請求項22に記載の装置において、処理回路は:
前記第1の復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第1の特徴の整数値についての推定された確率分布に基づいて、前記第1の復号化される対象のビットストリームに関するエントロピー復号化を実行して、前記第1の特徴の整数値を取得するステップ;
を行うように具体的に構成されている、装置。
【請求項24】
請求項23に記載の装置において、処理回路は:
第1の情報に基づいて前記第1の復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を行うように具体的に構成されている、装置。
【請求項25】
請求項22ないし24のうちの何れか一項に記載の装置において、前記処理回路は:
前記第2の復号化される対象のビットストリームにおける前記第2の特徴の整数値に関する確率推定を実行して、前記第2の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第2の特徴の整数値についての推定された確率分布に基づいて、前記第2の復号化される対象のビットストリームに関するエントロピー復号化を実行して、前記第2の特徴の整数値を取得するステップ;
を行うように具体的に構成されている、装置。
【請求項26】
請求項25に記載の装置において、前記処理回路は:
第1の情報に基づいて前記第2の復号化される対象のビットストリームにおける前記第2の特徴の整数値に関する確率推定を実行して、前記第2の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を行うように具体的に構成されている、装置。
【請求項27】
処理回路を含む復号化装置であって、前記処理回路は:
復号化される対象のビットストリームを取得するステップ;
前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得するステップであって、前記第1の特徴の整数値は、復号化されたデータとターゲット・パラメータとを取得するために使用される、ステップ;
前記第1の特徴の整数値を第1の復号化ネットワークに入力して、前記ターゲット・パラメータを取得するステップ;
前記ターゲット・パラメータに基づいて第2の復号化ネットワークを構築するステップ;及び
前記第1の特徴の整数値を前記第2の復号化ネットワークに入力して、復号化されたデータを取得するステップ;
を行うように具体的に構成されている、装置。
【請求項28】
請求項27に記載の装置において、前記ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である、装置。
【請求項29】
請求項27又は28に記載の装置において、前記処理回路は:
前記復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第1の特徴の整数値についての推定された確率分布に基づいて、前記復号化される対象のビットストリームに関するエントロピー復号化を実行して、前記第1の特徴の整数値を取得するステップ;
を行うように具体的に構成されている、装置。
【請求項30】
請求項29に記載の装置において、前記処理回路は:
第1の情報に基づいて前記復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を行うように具体的に構成されている、装置。
【請求項31】
1つ以上のプロセッサ;及び
前記プロセッサに結合され、前記プロセッサにより実行されるプログラムを記憶する非一時的なコンピュータ読み取り可能な記憶媒体;
を含むエンコーダであって、前記プログラムが前記プロセッサにより実行されると、前記エンコーダは、請求項1ないし4のうちの何れか一項に記載の方法を実行することが可能になる、エンコーダ。
【請求項32】
1つ以上のプロセッサ;及び
前記プロセッサに結合され、前記プロセッサにより実行されるプログラムを記憶する非一時的なコンピュータ読み取り可能な記憶媒体;
を含むデコーダであって、前記プログラムは前記プロセッサにより実行されると、エンコーダは、請求項5ないし11のうちの何れか一項又は請求項12ないし15のうちの何れか一項に記載の方法を実行することが可能になる、デコーダ。
【請求項33】
コンピュータ・プログラムを含むコンピュータ読み取り可能な記憶媒体であって、前記コンピュータ・プログラムがコンピュータにおいて実行されると、前記コンピュータは、請求項1ないし4、請求項5ないし11、又は請求項12ないし15のうちの何れか一項に記載の方法を実行することが可能になる、記憶媒体。
【請求項34】
コンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品はコンピュータ・プログラム・コードを含み、前記コンピュータ・プログラム・コードがコンピュータにおいて実行されると、前記コンピュータは、請求項1ないし4、請求項5ないし11、又は請求項12ないし15のうちの何れか一項に記載の方法を実行することが可能になる、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本件出願は、2021年8月5日付で中国国家知識産権局に出願された「符号化及び復号化方法並びに装置」と題する中国特許出願第202110898667.8号に対する優先権を主張しており、同出願全体は参照により本件に援用される。
【0002】
[0002] 技術分野
本件出願は、人工知能の分野に関連し、特に、符号化及び復号化方法並びに装置に関連する。
【背景技術】
【0003】
[0003] 背景
科学技術の発展に伴い、画像の量と解像度は増加しつつある。大量の画像は、より大きな容量の記憶媒体を必要とするだけでなく、より広い伝送周波数帯域や、より長い伝送時間を必要とし、画像処理における基本的な課題にもなっている。画像の格納効率と伝送効率を向上させるために、大きなデータ量の画像は符号化して画像を圧縮する必要がある。
【0004】
[0004] ニューラル・ネットワークに基づく画像圧縮は、画像圧縮効率を向上させることができる。既存のニューラル・ネットワークに基づく画像圧縮方法は、主に、オンライン学習を必要とするニューラル・ネットワーク・ベースの画像圧縮方法(方法1として手短に言及される)と、オンライン学習を必要としないニューラル・ネットワーク・ベースの画像圧縮方法(方法2として手短に言及される)に分類される。方法1は、良好なレート歪パフォーマンス を有するが、オンライン学習を必要とし、低い画像圧縮速度を招く。方法2は、レート歪パフォーマンスは貧弱であるが、高い画像圧縮速度を有する。
【発明の概要】
【0005】
[0005] 本件出願は、オンライン・トレーニングによらずデータ符号化及び復号化方法のレート歪パフォーマンスを改善するための符号化及び復号化方法並びに装置を提供する。前述の目的を達成するために、本件出願は以下の技術的解決策を用いる。
【0006】
[0006] 第1の態様によれば、本件出願は符号化方法を提供する。方法は:符号化される対象データ(to-be-encoded data)を取得し、次いで、 符号化される対象データを第1の符号化ネットワークに入力して、ターゲット・パラメータを取得し;次いで、ターゲット・パラメータに基づいて第2の符号化ネットワークを構築し;次に、 符号化される対象データを第2の符号化ネットワークに入力して第1の特徴を取得し;最終的に、第1の特徴を符号化して符号化されたビットストリームを取得するステップを含む。
【0007】
[0007] 既存の符号化方法では、符号化ネットワーク(即ち、第2の符号化ネットワーク)が、固定されたパラメータ・ウェイトに基づいて、符号化される対象データのコンテンツ特徴(即ち、第1の特徴)を抽出し、次いで、コンテンツ特徴をビットストリームに符号化して(即ち、符号化されたビットストリーム)、そのビットストリームをデコーダ側へ送信している。デコーダ側は、ビットストリームに対して復号化及び再構成を実行して、復号化されたデータを取得する。従来の技術では、符号化ネットワークのパラメータ・ウェイトは、符号化される対象データと関連付けられていない、ということが分かる。しかしながら、本件出願で提供される符号化方法では、先ず、符号化される対象データは第1の符号化ネットワークに入力され、第1の符号化ネットワークは符号化される対象データに基づいて第2の符号化ネットワークのパラメータ・ウェイトを生成し、第2の符号化ネットワークのパラメータ・ウェイトは、取得されたウェイトに基づいて動的に調整され、その結果、第2の符号化ネットワークのパラメータ・ウェイトは、符号化される対象データに関連付けられるようになり、第2の符号化ネットワークの表現能力は増進され、第1の特徴を符号化することにより得られるビットストリームに関して復号化及び再構成によりデコーダ側で取得される復号化データは、符号化される対象データにより近づく。これは、符号化及び復号化ネットワークのレート歪パフォーマンスを向上させる。
【0008】
[0008] オプションとして、ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である。
【0009】
[0009] 可能な実装において、前記第1の特徴を符号化して符号化されたビットストリームを取得するステップは:第1の特徴を丸めて前記第1の特徴の整数値を取得し;第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;及び第1の特徴の整数値についての推定された確率分布に基づいて、第1の特徴の整数値に関するエントロピー符号化を実行して、符号化されたビットストリームを取得するステップを含む。
【0010】
[0010] エントロピー符号化は、第1の特徴の整数値についての推定された確率分布に基づいて、第1の特徴の整数値に対して実行されて、ビットストリームを形成する。これは、第1の特徴を出力するための符号化の冗長性を低減することができ、データの符号化又は復号化(圧縮)プロセスにおけるデータ伝送量を更に軽減することができる。
【0011】
[0011] 可能な実装において、第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するステップは:第1の情報に基づいて第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するステップであって、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップを含む。
【0012】
[0012] 確率分布は、コンテキスト情報及びサイド情報に基づいて推定され、その結果、取得される推定確率分布の精度を向上させることができる。これは、エントロピー符号化プロセスにおけるビット・レートを軽減し、エントロピー符号化のオーバーヘッドを軽減することができる。
【0013】
[0013] 第2の態様によれば、本件出願は復号化方法を提供する。方法は:復号化される対象のビットストリームを取得し;次いで、復号化される対象のビットストリームを復号化して、第1の特徴の整数値と第2の特徴の整数値とを取得し;更に、第2の特徴の整数値を第1の復号化ネットワークに入力して、前記ターゲット・パラメータを取得し;次に、ターゲット・パラメータに基づいて第2の復号化ネットワークを構築し;最終的に、第1の特徴の整数値を第2の復号化ネットワークに入力して、復号化されたデータを取得するステップを含む。第1の特徴の整数値は、復号化されたデータを取得するために使用され、第2の特徴の整数値は、ターゲット・パラメータを取得するために使用される。
【0014】
[0014] 既存の復号化方法では、復号化ネットワーク(即ち、第2の復号化ネットワーク)は、固定されたパラメータ・ウェイトに基づいて、符号化された対象データの内容値特徴(content value feature)(即ち、第1の特徴の整数値)に対して復号化及び再構成を実行して、復号化されたデータを取得する。従来技術では、復号化ネットワークのパラメータ・ウェイトは、復号化される対象データに関連付けられていない、ということが分かる。しかしながら、本件出願では、復号化される対象データの内容特徴とモデル特徴(即ち、第1の特徴と第2の特徴)を、復号化される対象ビットストリーム内に符号化し、次いで、デコーダ側は復号化される対象先ビットストリームを復号化して、第2の特徴の整数値を取得し、第2の特徴の整数値は、第1の復号化ネットワークに入力されて、第2の復号化ネットワークのパラメータ・ウェイトを取得し、次いで、第2の復号化ネットワークのパラメータ・ウェイトはパラメータ・ウェイトに基づいて動的に調整され、その結果、第2の復号化ネットワークのパラメータ・ウェイトは復号化される対象データに関連付けられるようになり、第2の復号化ネットワークの表現能力は改善され、復号化及び再構成を経て第2の復号化ネットワークにより取得される復号化されたデータは、符号化された対象データにより近づく。これは、符号化及び復号化ネットワークのレート歪パフォーマンスを向上させる。
【0015】
[0015] オプションとして、ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である。
【0016】
[0016] オプションとして、復号化される対象のビットストリームは、第1の復号化される対象のビットストリームと第2の復号化される対象のビットストリームとを含む。
【0017】
[0017] 可能な実装において、前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値と第2の特徴の整数値とを取得するステップは:第1の復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得し;及び第2の復号化される対象のビットストリームを復号化して、前記第2の特徴の整数値を取得するステップを含む。
【0018】
[0018] 可能な実装において、第1の復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得するステップは:第1の復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;及び第1の特徴の整数値についての推定された確率分布に基づいて、第1の復号化される対象のビットストリームに関するエントロピー復号化を実行して、第1の特徴の整数値を取得するステップを含む。
【0019】
[0019] 可能な実装において、第1の復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するステップは:第1の情報に基づいて第1の復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するステップであって、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップを含む。
【0020】
[0020] 可能な実装において、第2の復号化される対象のビットストリームを復号化して、第2の特徴の整数値を取得するステップは:第2の復号化される対象のビットストリームにおける第2の特徴の整数値に関する確率推定を実行して、第2の特徴の整数値についての推定された確率分布を取得し;及び第2の特徴の整数値についての推定された確率分布に基づいて、第2の復号化される対象のビットストリームに関するエントロピー復号化を実行して、第2の特徴の整数値を取得するステップを含む。
【0021】
[0021] 可能な実装において、第2の復号化される対象のビットストリームにおける第2の特徴の整数値に関する確率推定を実行して、第2の特徴の整数値についての推定された確率分布を取得するステップは:第1の情報に基づいて第2の復号化される対象のビットストリームにおける第2の特徴の整数値に関する確率推定を実行して、第2の特徴の整数値についての推定された確率分布を取得するステップであって、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップを含む。
【0022】
[0022] 第3の態様によれば、本件出願は復号化方法を提供する。方法は:復号化される対象のビットストリームを取得し;次いで、復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得し;更に、第1の特徴の整数値を第3の復号化ネットワークに入力して、ターゲット・パラメータを取得し;次に、ターゲット・パラメータに基づいて第2の復号化ネットワークを構築し;最終的に、第1の特徴の整数値を第2の復号化ネットワークに入力して、復号化されたデータを取得するステップを含む。第1の特徴の整数値は、復号化されたデータとターゲット・パラメータとを取得するために使用される。
【0023】
[0023] 既存の復号化方法では、復号化ネットワーク(即ち、第2の復号化ネットワーク)は、固定されたパラメータ・ウェイトに基づいて、符号化された対象データの内容値特徴(即ち、第1の特徴の整数値)に対して復号化及び再構成を実行して、復号化されたデータを取得する。従来技術では、復号化ネットワークのパラメータ・ウェイトは、復号化される対象データに関連付けられていない、ということが分かる。しかしながら、本件出願では、復号化される対象データの特徴(即ち、第1の特徴)を符号化することにより取得される復号化された対象ビットストリームを復号化して、第1の特徴の整数値を取得し、第1の特徴の整数値は、第1の復号化ネットワークに入力されて、第2の復号化ネットワークのパラメータ・ウェイトを取得し、次いで、第2の復号化ネットワークのパラメータ・ウェイトはパラメータ・ウェイトに基づいて動的に調整され、その結果、第2の復号化ネットワークのパラメータ・ウェイトは復号化される対象データに関連付けられるようになり、第2の復号化ネットワークの表現能力は改善され、復号化及び再構成を経て第2の復号化ネットワークにより取得される復号化されたデータは、符号化された対象データにより近づく。これは、符号化及び復号化ネットワークのレート歪パフォーマンスを向上させる。
【0024】
[0024] オプションとして、ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である。
【0025】
[0025] 可能な実装において、復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得するステップは:復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;及び第1の特徴の整数値についての推定された確率分布に基づいて、復号化される対象のビットストリームに関するエントロピー復号化を実行して、第1の特徴の整数値を取得するステップを含む。
【0026】
[0026] 可能な実装において、復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するステップは:第1の情報に基づいて復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するステップであって、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップを含む。
【0027】
[0027] 第4の態様によれば、本件出願は符号化装置を提供する。符号化装置は処理回路を含む。処理回路は:符号化される対象データを取得し;符号化される対象データを第1の符号化ネットワークに入力して、ターゲット・パラメータを取得し;ターゲット・パラメータに基づいて第2の符号化ネットワークを構築し;符号化される対象データを第2の符号化ネットワークに入力して第1の特徴を取得し;及び第1の特徴を符号化して符号化されたビットストリームを取得するように構成されている。
【0028】
[0028] オプションとして、ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である。
【0029】
[0029] 可能な実装において、前記処理回路は:第1の特徴を丸めて第1の特徴の整数値を取得し;第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;及び第1の特徴の整数値についての推定された確率分布に基づいて、第1の特徴の整数値に関するエントロピー符号化を実行して、符号化されたビットストリームを取得するように具体的に構成されている。
【0030】
[0030] 可能な実装において、処理回路は:第1の情報に基づいて第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するように具体的に構成されており、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0031】
[0031] 第5の態様によれば、本件出願は復号化装置を提供する。復号化装置は処理回路を含む。処理回路は:復号化される対象のビットストリームを取得し;復号化される対象のビットストリームを復号化して、第1の特徴の整数値と第2の特徴の整数値とを取得し(第1の特徴の整数値は、復号化されたデータを取得するために使用され、前記第2の特徴の整数値は、ターゲット・パラメータを取得するために使用される);第2の特徴の整数値を第1の復号化ネットワークに入力して、ターゲット・パラメータを取得し;ターゲット・パラメータに基づいて第2の復号化ネットワークを構築し;及び第1の特徴の整数値を第2の復号化ネットワークに入力して、復号化されたデータを取得するように具体的に構成されている。
【0032】
[0032] オプションとして、ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である。
【0033】
[0033] オプションとして、復号化される対象のビットストリームは、第1の復号化される対象のビットストリームと第2の復号化される対象のビットストリームとを含む。
【0034】
[0034] 可能な実装において、処理回路は:第1の復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得し;及び第2の復号化される対象のビットストリームを復号化して、第2の特徴の整数値を取得するように具体的に構成されている。
【0035】
[0033] 可能な実装において、処理回路は:第1の復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;及び第1の特徴の整数値についての推定された確率分布に基づいて、第1の復号化される対象のビットストリームに関するエントロピー復号化を実行して、第1の特徴の整数値を取得するように具体的に構成されている。
【0036】
[0036] 可能な実装において、処理回路は:第1の情報に基づいて第1の復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するように具体的に構成されており、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0037】
[0037] 可能な実装において、処理回路は:第2の復号化される対象のビットストリームにおける第2の特徴の整数値に関する確率推定を実行して、第2の特徴の整数値についての推定された確率分布を取得し;及び第2の特徴の整数値についての推定された確率分布に基づいて、第2の復号化される対象のビットストリームに関するエントロピー復号化を実行して、第2の特徴の整数値を取得するように具体的に構成されている。
【0038】
[0038] 可能な実装において、処理回路は:第1の情報に基づいて第2の復号化される対象のビットストリームにおける第2の特徴の整数値に関する確率推定を実行して、第2の特徴の整数値についての推定された確率分布を取得するように具体的に構成されており、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0039】
[0039] 第6の態様によれば、本件出願は復号化装置を提供する。復号化装置は処理回路を含む。処理回路は:復号化される対象のビットストリームを取得し;復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得し(ここで、第1の特徴の整数値は、復号化されたデータとターゲット・パラメータとを取得するために使用される);第1の特徴の整数値を第1の復号化ネットワークに入力して、ターゲット・パラメータを取得し;ターゲット・パラメータに基づいて第2の復号化ネットワークを構築し;及び第1の特徴の整数値を第2の復号化ネットワークに入力して、復号化されたデータを取得するように具体的に構成されている。
【0040】
[0040] オプションとして、ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である。
【0041】
[0044] 可能な実装において、処理回路は:復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;及び第1の特徴の整数値についての推定された確率分布に基づいて、第1の復号化される対象のビットストリームに関するエントロピー復号化を実行して、第1の特徴の整数値を取得するように具体的に構成されている。
【0042】
[0042] 可能な実装において、処理回路は:第1の情報に基づいて復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するように具体的に構成されており、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0043】
[0043] 第7の態様によれば、本件出願の実施形態はエンコーダを更に提供する。エンコーダは、少なくとも1つのプロセッサを含み、少なくとも1つのプロセッサがプログラム・コード又は命令を実行すると、第1の態様又は第1の態様の可能な実装の何れか1つにおける方法が実施される。
【0044】
[0044] オプションとして、エンコーダは、少なくとも1つのメモリを更に含む可能性があり、少なくとも1つのメモリは、プログラム・コード又は命令を記憶するように構成されている。
【0045】
[0045] 第8の態様によれば、本件出願の実施形態は、デコーダを更に提供する。デコーダは、少なくとも1つのプロセッサを含み、少なくとも1つのプロセッサがプログラム・コード又は命令を実行すると、第2の態様又は第2の態様の可能な実装の何れか1つにおける方法が実施される。
【0046】
[0046] オプションとして、デコーダは、少なくとも1つのメモリを更に含む可能性があり、少なくとも1つのメモリは、プログラム・コード又は命令を記憶するように構成される。
【0047】
[0047] 第9の態様によれば、本件出願の実施形態は、入力インターフェース、出力インターフェース、及び少なくとも1つのプロセッサを含むチップを更に提供する。オプションとして、チップは、メモリを更に含む。少なくとも1つのプロセッサは、メモリ内のコードを実行するように構成される。少なくとも1つのプロセッサがコードを実行する場合に、チップは、第1の態様又は第1の態様の可能な実装の何れか1つにおける方法を実施する。
【0048】
[0048] オプションとして、チップは集積回路であってもよい。
【0049】
[0049] 第10の態様によれば、本件出願の実施形態は、端末を更に提供する。端末は、前述の符号化装置、復号化装置、エンコーダ、デコーダ、又はチップを含む。
【0050】
[0050] 第11の態様によれば、本件出願は、コンピュータ・プログラムを記憶するように構成された、コンピュータ読み取り可能な記憶媒体を更に提供する。コンピュータ・プログラムは、第1の態様又は第1の態様の可能な実装の何れか1つにおける方法を実施するように構成される。
【0051】
[0051] 第12の態様によれば、本件出願の実施形態は、命令を含むコンピュータ・プログラム製品を更に提供する。コンピュータ・プログラム製品がコンピュータにおいて動作すると、コンピュータは、第1の態様又は第1の態様の可能な実装の何れか1つにおける方法を実施する。
【0052】
[0052] 実施形態で提供される符号化装置、復号化装置、エンコーダ、デコーダ、コンピュータ記憶媒体、コンピュータ・プログラム製品、及びチップは全て、上記で提供される方法を実行するように構成される。従って、達成可能な有益な効果については、上記でもたらされる方法の有益な効果を参照されたい。詳細は、ここで再び説明されない。
【図面の簡単な説明】
【0053】
[0053] 本件出願の実施形態における技術的解決策をより明確に説明するために、以下、実施形態を説明するための添付図面を簡単に説明する。以下の説明における添付図面は、単に本件出願の一部の実施形態を示しているに過ぎず、当業者は、創作的労力なしに、これらの添付図面から他の図面を更に導出する可能性がある、ということは明白である。
【
図1a】[0054]
図1aは、本件出願の実施形態によるコーディング・システムの例示的なブロック図である。
【
図1b】[0055]
図1bは、本件出願の実施形態によるビデオ・コーディング・システムの例示的なブロック図である。
【
図2】[0056]
図2は、本件出願の実施形態によるビデオ・エンコーダの例示的なブロック図である。
【
図3】[0057]
図3は、本件出願の実施形態によるビデオ・デコーダの例示的なブロック図である。
【
図4】[0058]
図4は、本件出願の実施形態による候補ピクチャ・ブロックの一例の概略図である。
【
図5】[0059]
図5は、本件出願の実施形態によるビデオ・コーディング・デバイスの例示的なブロック図である。
【
図6】[0060]
図6は、本件出願の実施形態による装置の例示的なブロック図である。
【
図7a】[0061]
図7aは、本件出願の実施形態によるアプリケーション・シナリオの概略図である。
【
図7b】[0062]
図7bは、本件出願の実施形態によるアプリケーション・シナリオの概略図である。
【
図8】[0063]
図8は、本件出願の実施形態による符号化及び復号化方法の概略フローチャートである。
【
図9】[0064]
図9は、本件出願の実施形態による符号化及び復号化システムの構造の概略図である。
【
図10】[0065]
図10は、本件出願の実施形態による別の符号化及び復号化方法の概略フローチャートである。
【
図11】[0066]
図11は、本件出願の実施形態による別の符号化及び復号化システムの構造の概略図である。
【
図12】[0067]
図12は、本件出願の実施形態による更に別の符号化及び復号化システムの構造の概略図である。
【
図13】[0068]
図13は、本件出願の実施形態による更に別の符号化及び復号化方法の概略フローチャートである。
【
図14】[0069]
図14は、本件出願の実施形態による更に別の符号化及び復号化システムの構造の概略図である。
【
図15】[0070]
図15は、本件出願の実施形態による符号化及び復号化方法のパフォーマンスの概略図である。
【
図16】[0071]
図16は、本件出願の実施形態によるアプリケーション・シナリオの概略図である。
【
図17】[0072]
図17は、本件出願の実施形態による別のアプリケーション・シナリオの概略図である。
【
図18】[0073]
図18は、本件出願の実施形態による符号化及び復号化装置の構造の概略図である。
【
図19】[0074]
図19は、本件出願の実施形態による別の符号化及び復号化装置の構造の概略図である。
【
図20】[0075]
図20は、本件出願の実施形態によるチップの構造の概略図である。
【発明を実施するための形態】
【0054】
[0076] 以下、本件出願の実施形態における添付図面を参照ながら本件出願の実施形態における技術的解決策を明確かつ十分に説明する。説明される実施形態は、本件出願の実施形態の全部ではなく一部分であるに過ぎない、ということは明らかである。本件出願の実施形態に基づいて当業者により創作的労力なしに得られる他の全ての実施形態は、本件出願の保護範囲内に属するものとする。
【0055】
[0077] 本明細書における用語「及び/又は」は、関連付けられた対象を記述するための関連付け関係のみを記述しており、3つの関係が存在し得ることを表す。例えば、A及び/又はBは、以下の3つのケース:Aのみが存在する、AとBの両方が存在する、そして、Bのみが存在することを表す可能性がある。
【0056】
[0078] 本件出願の明細書及び添付図面において、「第1」、「第2」等の用語は、異なる対象物を区別すること、又は、同じ対象物の異なる処理を区別することを意図しているが、対象物の特定の順序を示してはいない。
【0057】
[0079] 更に、本件出願の説明における「含む」、「有する」、又はそれらの他の変形の用語は、非排他的な包含をカバーするように意図されている。例えば、一連のステップ又はユニットを含むプロセス、方法、システム、製品、又はデバイスは、列挙されたステップ又はユニットに限定されず、オプションとして、別の列挙されていないステップ又はユニットを更に含んだり、又は、オプションとして、プロセス、方法、製品、又はデバイスの別の固有のステップ又はユニットを更に含んだりする。
【0058】
[0080] 本件出願の実施形態の説明において、「例」或いは「例えば」という言葉は、例、例示、又は説明を与えることを表すために使用される、というに留意すべきである。本件出願の実施形態において「例」又は「例えば」として説明される何らかの実施形態又は設計態様は、別の実施形態又は設計態様よりも好ましかったり、又はより多くの利点を有していたりするものとして説明されているはずはない。厳密には、「例」、「例えば」又はこれに類する用語の使用は、特定の態様で相対的な概念を提示するように意図されている。
【0059】
[0081] 本件出願の説明において、別意に指定されていない限り、「複数の」は2つ又は2つより多いことを意味する。
【0060】
[0082] 本件出願の実施形態は、AIベースのデータ圧縮/圧縮解除技術を提供し、特に、ニューラル・ネットワーク・ベースのデータ圧縮/圧縮解除技術を提供しており、具体的には、符号化及び復号化技術を提供して、従来のハイブリッド・データ符号化及び復号化システムを改善する。
【0061】
[0083] データ符号化及び復号化は、データ符号化及びデータ復号化を含む。データ符号化は、ソース側(又は、通常、エンコーダ側と言及される)で実行され、通常、生データ(raw data)を処理すること(例えば、圧縮)を含み、生データを表現するために要求されるデータ量を低減する(より効率的な記憶及び/又は伝送のためである)。データ復号化は、デスティネーション側(又は、通常、デコーダ側と言及される)で実行され、通常、エンコーダ側に対する逆処理を含み、生データを再構築する。本件出願の実施形態におけるデータの「符号化及び復号化」は、データの「符号化」又は「復号化」と理解されるべきである。符号化部と復号化部との組み合わせは、CODEC(encoding and decoding,CODEC)とも呼ばれる。
【0062】
[0084] ロスレス・データ・コーディングの場合、生データを再構成することが可能である。換言すれば、再構成された生データは生データと同じ品質を有する(記憶又は伝送の間に、伝送ロス又はその他のデータ・ロスは生じていないことを仮定している)。ロスレスでないデータ・コーディングの場合、生データを表現するのに要求されるデータ量を減らすために、例えば量子化によって更なる圧縮が実行され、生データをデコーダ側で完全に再構成することはできない。換言すれば、再構成された生データの品質は、生データの品質より低かったり又は悪かったりする。
【0063】
[0085] 本件発明の実施形態は、ビデオ・データ、ピクチャ・データ、オーディオ・データ、整数データ、及びその他のデータであって圧縮/圧縮解除要件を有するものに適用される可能性がある。以下、ビデオ・データのコーディング(手短に、ビデオ・コーディングと言及される)を用いることによって、本件出願の実施形態を説明する。他のタイプのデータ(例えば、ピクチャ・データ、オーディオ・データ、整数データ、及びその他のデータであって圧縮/圧縮解除要件を有するもの)については、以下の説明を参照されたい。詳細は、本件出願の実施形態の中では説明されない。ビデオ・コーディングと比較して、オーディオ・データや整数データのようなデータをコーディングする処理において、データは、ブロックに分割されることを必要とせず、データは直接的にコーディングされてもよい。
【0064】
[0086] ビデオ・コーディングは、通常、ビデオ又はビデオ・シーケンスを形成するピクチャのシーケンスの処理を示す。ビデオ・コーディングの分野では、「ピクチャ(picture)」、「フレーム(frame)」、及び「画像(image)」という用語は同義語として使用される可能性がある。
【0065】
[0087] 幾つかのビデオ・コーディング規格は、「非ロスレス・ハイブリッド・ビデオ・コーディング」(即ち、ピクセル・ドメインにおける空間及び時間予測が、変換ドメインにおいて量子化を適用するために2D変換コーディングと組み合わされる)に使用される。ビデオ・シーケンスの各ピクチャは、通常、オーバーラップしないブロックのセットにパーティション化され、コーディングは、通常、ブロック・レベルで実行される。換言すれば、エンコーダにおいて、ビデオは、通常、ブロック(ビデオ・ブロック)レベルで処理される、即ち、符号化される。例えば、予測ブロックが、空間(イントラ・ピクチャ)予測と時間(インター・ピクチャ)予測により生成され、その予測ブロックは、現在のブロック(処理中又は処理予定のブロック)から減算されて、残差ブロックを取得し、その残差ブロックは変換ドメインで変換されて量子化され、伝送される対象のデータ量を削減(圧縮)する。デコーダ側では、エンコーダと比較して逆処理部が、符号化されたブロックや圧縮されたブロックに対して適用されて、表現のためのカレント・ブロックを再構成する。更に、エンコーダはデコーダの処理ステップを複製し、その結果、エンコーダとデコーダは同じ予測(例えば、イントラ予測やインター予測)及び/又はピクセル再構成を行い、後続ブロックを処理する、即ちコーディングする。
【0066】
[0088] コーディング・システム10の以下の実施形態において、エンコーダ20及びデコーダ30は
図1aないし
図3に基づいて説明される。
【0067】
[0089]
図1aは、本件出願の実施形態によるコーディング・システム10の例示的なブロック図であり、例えば、本件出願の技法を利用することが可能なビデオ・コーディング・システム10(略して、コーディング・システム10)である。ビデオ・コーディング・システム10のビデオ・エンコーダ20(又は略して、エンコーダ20)及びビデオ・デコーダ30(又は略して、デコーダ30)は、本件で説明される様々な例による技法を実行するように構成され可能性があるデバイスを表す。
【0068】
[0090]
図1aに示されるように、コーディング・システム10は、符号化されたピクチャのような符号化されたピクチャ・データ21を、符号化されたピクチャ・データ21を復号化するためのデスティネーション・デバイス14に提供するように構成されたソース・デバイス12を含む。
【0069】
[0091] ソース・デバイス12は、エンコーダ20を含み、追加的に、即ち、オプションとして、ピクチャ・ソース16、前処理プロセッサ(又は前処理ユニット)18、例えば、ピクチャ前処理プロセッサ、及び通信インターフェース(又は通信ユニット)22を含む可能性がある。
【0070】
[0092] ピクチャ・ソース16は、例えば実世界のピクチャを捕捉するカメラのような任意の種類のピクチャ捕捉デバイス、及び/又は、例えばコンピュータ・アニメーション・ピクチャを生成するコンピュータ・グラフィックス・プロセッサのような任意の種類のピクチャ生成デバイス、又は実世界のピクチャ、コンピュータ生成ピクチャ(例えば、スクリーン・コンテンツ又はバーチャル・リアリティ(VR)ピクチャ)、及び/又はそれらの任意の組み合わせ(例えば、拡張現実(AR)ピクチャ)を取得及び/又は提供する任意の種類の他のデバイスを含んでもよいし、又はそれらであってもよい。ピクチャ・ソースは、上記の任意のピクチャを記憶する任意の種類のメモリ又はストレージである可能性がある。
【0071】
[0093] 前処理プロセッサ(又は前処理ユニット)18によって実行される処理を区別するために、ピクチャ(又はピクチャ・データ)17は、生ピクチャ(又は生ピクチャ・データ)17とも呼ばれる可能性もある。
【0072】
[0094] 前処理プロセッサ18は、生ピクチャ・データ17を受信し、生ピクチャ・データ17を前処理して、前処理されたピクチャ(又は前処理済みピクチャ・データ)19を取得するように構成される。前処理プロセッサ18によって実行される前処理は、例えば、トリミング、色フォーマット変換(例えば、RGBからYCbCrへ)、色補正、又はノイズ除去を含む可能性がある。前処理ユニット18は、オプションのコンポーネントであってもよいことを理解することができる。
【0073】
[0095] ビデオ・エンコーダ(又はエンコーダ)20は、前処理されたピクチャ・データ19を受信し、符号化されたピクチャ・データ21を提供するように構成される(更なる詳細は、例えば、
図2に基づいて後述される)。
【0074】
[0096] ソース・デバイス12の通信インターフェース22は、符号化されたピクチャ・データ21を受信し、符号化されたピクチャ・データ21(又はその何らかの更に処理されたバージョン)を、通信チャネル13を介して別のデバイス、例えばデスティネーション・デバイス14又は任意の他のデバイスへ、格納又は直接的な再構成のために伝送するように構成されることが可能である。
【0075】
[0097] デスティネーション・デバイス14は、デコーダ30を含み、更に、即ちオプションとして、通信インターフェース(又は通信ユニット)28、後処理プロセッサ(又は、後処理ユニット)32、及び表示デバイス34を含む可能性がある。
【0076】
[0098] デスティネーション・デバイス14の通信インターフェース28は、符号化されたピクチャ・データ21(又はその何らかの更に処理されたバージョン)を、ソース・デバイス12又は記憶デバイスのような任意の他のソース・デバイスから直接的に受信し、符号化されたピクチャ・データ21をデコーダ30に提供するように構成される。例えば、記憶デバイスは符号化ピクチャ・データ記憶デバイスである。
【0077】
[0099] 通信インターフェース22及び通信インターフェース28は、ソース・デバイス12とデスティネーション・デバイス14との間の直接的な通信リンク、例えば直接的な有線又は無線接続を介して、又は任意の種類のネットワーク、例えば有線若しくは無線ネットワーク又はそれらの任意の組み合わせ、又は任意の種類の私的な及び公的なネットワーク、又はそれらの任意の組み合わせを介して、符号化されたピクチャ・データ21を伝送又は受信するように構成されることが可能である。
【0078】
[0100] 通信インターフェース22は、例えば、符号化されたピクチャ・データ21を、例えばパケットのような適切なフォーマットにパッケージ化し、及び/又は、通信リンク又は通信ネットワークを介する伝送のための任意の種類の伝送符号化又は処理を使用して、符号化されたピクチャ・データを処理するように構成されることが可能である。
【0079】
[0101] 通信インターフェース22に対応する通信インターフェース28は、例えば、伝送されたデータを受信し、符号化されたピクチャ・データ21を取得するために任意の種類の対応する伝送復号化又は処理及び/又は非パッケージ化を使用して、伝送データを処理するように構成されることが可能である。
【0080】
[0102] 通信インターフェース22及び通信インターフェース28の両方は、
図1aにおいてソース・デバイス12からデスティネーション・デバイス14へ向かう通信チャネル13に関する矢印により示される一方向通信インターフェース、又は双方向通信インターフェースとして構成されることが可能であり、例えばメッセージを送信及び受信するように、例えば接続をセットアップするように、通信リンク及び/又はデータ伝送、例えば符号化されたピクチャ・データ伝送に関連する他の任意の情報を確認及び交換するように、構成されることが可能である。
【0081】
[0103] ビデオ・デコーダ(又は、デコーダ)30は、符号化されたピクチャ・データ21を受信し、復号化されたピクチャ・データ(又は、復号化されたピクチャ・データ)31を提供するように構成される(更なる詳細は、例えば、
図3に基づいて説明される)。
【0082】
[0104] 後処理プロセッサ32は、例えば復号化されたピクチャ31のような復号化されたピクチャ・データ31(再構成されたピクチャ・データとも呼ばれる)を後処理して、後処理されたピクチャ・データ33、例えば、後処理されたピクチャを取得するように構成される。後処理ユニット32によって実行される後処理は、例えばカラー・フォーマット変換(例えば、YCbCrからRGBへ)、色補正、トリミング、リ・サンプリング、又はその他の任意の処理、例えば表示デバイス34による表示のための例えば復号化されたピクチャ・データ31を準備するためのものを含む可能性がある。
【0083】
[0105] 表示デバイス34は、後処理されたピクチャ・データ33を受信して、ピクチャを、例えばユーザー又はビューアに表示するように構成されている。表示デバイス34は、再構成されたピクチャを表現する任意の種類のディスプレイ、例えば一体化された又は外部のディスプレイ又はモニタであってもよいし、又はそれらを含んでもよい。ディスプレイは、例えば、液晶ディスプレイ(liquid crystal display,,LCD)、有機発光ダイオード(organic light emitting diode,OLED)ディスプレイ、プラズマ・ディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オン・シリコン(liquid crystal on silicon,LCoS)、デジタル光プロセッサ(digital light processor,DLP)、又は任意の他の種類のディスプレイを含む可能性がある。
【0084】
[0106] コーディング・システム10は、訓練エンジン25を更に含む。訓練エンジン25は、エンコーダ20(特に、エンコーダ20のエントロピー符号化ユニット270)又はデコーダ30(特に、デコーダ30のエントロピー復号化ユニット304)が、推定によって得られる推定された確率分布に基づいて、符号化される対象ピクチャ・ブロックに対してエントロピー符号化を実行するように、エンコーダ20を訓練するように構成されている。訓練エンジン25の詳細な説明については、以下の方法の実施形態を参照されたい。
【0085】
[0107]
図1aは、ソース・デバイス12とデスティネーション・デバイス14とを別々のデバイスとして描いているが、デバイスの実施形態は、代替的に、ソース・デバイス12とデスティネーション・デバイス14の双方、又はソース・デバイス12とデスティネーション・デバイス14の双方の機能、即ち、ソース・デバイス12又は対応する機能とデスティネーション・デバイス14又は対応する機能とを含む可能性がある。そのような実施形態では、ソース・デバイス12又は対応する機能とデスティネーション・デバイス14又は対応する機能とは、同じハードウェア及び/又はソフトウェアによって、又は別個のハードウェア及び/又はソフトウェア、又はそれらの任意の組み合わせによって実現されてもよい。
【0086】
[0108] 明細書に基づいて当業者には明らかであるように、
図1aに示すソース・デバイス12及び/又はデスティネーション・デバイス14における機能又は様々なユニットの存在及び(厳密な)分割は、実際のデバイス及びアプリケーションに応じて異なる可能性がある。
【0087】
[0109]
図1bは、本件出願の実施形態によるビデオ・コーディング・システム40の例示的なブロック図である。エンコーダ20(例えば、ビデオ・エンコーダ20)又はデコーダ30(例えば、ビデオ・デコーダ30)又はエンコーダ20及びデコーダ30の双方は、
図1bに示されるようなビデオ・コーディング・システムの処理回路により、例えば、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processor,DSP)、特定用途向け集積回路(application-specific integrated circuit,ASIC)、フィールド・プログラマブル・ゲート・アレイ(field-programmable gate array,FPGA)、ディスクリート・ロジック、ハードウェア、ビデオ・コーディング専用プロセッサ又はそれらの任意の組み合わせにより、実現されることが可能である。
図2及び
図3を参照する。
図2は、本件出願の実施形態によるビデオ・エンコーダの例示的なブロック図であり、
図3は、本件出願の実施形態によるビデオ・デコーダの例示的なブロック図である。エンコーダ20は、
図2のエンコーダ20及び/又は本件明細書で説明される他の任意のエンコーダ・システム又はサブシステムに関して説明される様々なモジュールを具現化するために、処理回路46により実施されてもよい。デコーダ30は、
図3のデコーダ30及び/又は本件明細書で説明される他の任意のデコーダ・システム又はサブシステムに関して説明される様々なモジュールを具現化するために、処理回路46により実施されてもよい。処理回路46は、後述するように様々な動作を実行するように構成されることが可能である。
図5に示すように、技術が部分的にソフトウェアで実現される場合、デバイスは、適切な非一時的なコンピュータ読み取り可能な記憶媒体にソフトウェアの命令を記憶する可能性があり、本件出願の技術を実行するために1つ以上のプロセッサを使用するハードウェアで命令を実行する可能性がある。ビデオ・エンコーダ20とビデオ・デコーダ30の何れかは、例えば
図1bに示すように、単一のデバイス内の組み合わされたエンコーダ/デコーダ(encoder/decoder,CODEC)の一部として統合されてもよい。
【0088】
[0110] ソース・デバイス12及びデスティネーション・デバイス14は、任意の種類のハンドヘルド又はステーショナリ・デバイスを含む広範囲に及ぶ任意のデバイス、例えば、ノートブック又はラップトップ・コンピュータ、携帯電話、スマートフォン、タブレット又はタブレット・コンピュータ、カメラ、デスクトップ・コンピュータ、セット・トップ・ボックス、テレビ、表示デバイス、デジタル・メディア・プレーヤ、ビデオ・ゲーミング・コンソール、ビデオ・ストリーミング・デバイス(コンテンツ・サービス・サーバー又はコンテンツ配信サーバー等)、放送受信デバイス、放送送信デバイス、監視デバイス等を含む可能性があり、また、任意の種類のオペレーティング・システムを使用してもよいし、又は使用しなくてもよい。ソース・デバイス12及びデスティネーション・デバイス14はまた、クラウド演算シナリオにおけるデバイス、例えば、クラウド演算シナリオにおける仮想マシンであってもよい。場合によっては、ソース・デバイス12及びデスティネーション・デバイス14は無線通信用に装備されてもよい。従って、ソース・デバイス12及びデスティネーション・デバイス14は、無線通信デバイスであってもよい。
【0089】
[0111] 仮想現実(virtual reality,VR)アプリケーション、拡張現実(augmented reality,AR)アプリケーション、又は複合現実(mixed reality,MR)アプリケーションのような仮想シナリオ・アプリケーション(application,APP)が、ソース・デバイス12及びデスティネーション・デバイス14のそれぞれにインストールされる可能性があり、VRアプリケーション、ARアプリケーション、又はMRアプリケーションが、ユーザー操作(例えば、タップ、タッチ、スライド、ジッタリング、又は音声制御)に基づいて実行される可能性がある。ソース・デバイス12及びデスティネーション・デバイス14はそれぞれ、カメラ及び/又はセンサを用いて環境内の任意の対象物のピクチャ/ビデオをキャプチャし、キャプチャしたピクチャ/ビデオに基づいて表示デバイス上に仮想オブジェクトを表示する可能性がある。仮想オブジェクトは、VRシナリオ、ARシナリオ、又はMRシナリオにおける仮想オブジェクト(即ち、仮想環境内のオブジェクト)であってもよい。
【0090】
[0112] 本件出願のこの実施形態において、ソース・デバイス12及びデスティネーション・デバイス14内の仮想シナリオ・アプリケーションは、ソース・デバイス12及びデスティネーション・デバイス14の組み込みアプリケーションであってもよいし、或いは、第三者サービス・プロバイダによって提供されるアプリケーションであって、ユーザーによってインストールされるアプリケーションであってもよい、ということに留意すべきである。これは、本件において特に限定されない。
【0091】
[0113] 更に、リアルタイム・ビデオ伝送アプリケーション、例えば、ライブ放送アプリケーションが、ソース・デバイス12及びデスティネーション・デバイス14のそれぞれにインストールされていてもよい。ソース・デバイス12及びデスティネーション・デバイス14はそれぞれ、カメラを使用してピクチャ/ビデオをキャプチャし、キャプチャしたピクチャ/ビデオを表示デバイスに表示することが可能である。
【0092】
[0114] 場合によっては、
図1aに示すビデオ・コーディング・システム10は単なる一例に過ぎず、本件出願の技術は、符号化デバイスと復号化デバイスとの間で何らかのデータ通信を必ずしも含む必要のないビデオ・コーディング設定(例えば、ビデオ符号化又はビデオ復号化)に適用可能である。他の例において、データは、ローカル・メモリから検索され、ネットワークを介してストリーミングされる、等々。ビデオ符号化デバイスは、データを符号化し、符号化したデータをメモリに格納することが可能であり、及び/又はビデオ復号化デバイスは、データをメモリから取り出し、データを復号化することが可能である。一部の例では、符号化及び復号化は、互いに通信しないが、メモリへのデータを符号化し及び/又はメモリからデータを取り出してデータを復号化するデバイスによって実行される。
【0093】
[0115]
図1bは、本件出願のこの実施形態によるビデオ・コーディング・システム40の例示的なブロック図である。
図1bに示すように、ビデオ・コーディング・システム40は、撮像デバイス41、ビデオ・エンコーダ20、及びビデオ・デコーダ30(及び/又は処理回路46によって実現されるビデオ・エンコーダ/デコーダ)、アンテナ42、1つ以上のプロセッサ43、1つ以上のメモリ44、及び/又は表示デバイス45を含む可能性がある。
【0094】
[0116]
図1bに示すように、撮像デバイス41、アンテナ42、処理回路46、ビデオ・エンコーダ20、ビデオ・デコーダ30、プロセッサ43、メモリ44、及び/又はディスプレイ・デバイス45は、互いに通信することが可能である。ビデオ・コーディング・システム40は、様々な例において、ビデオ・エンコーダ20のみ、或いはビデオ・デコーダ30のみを含む可能性がある
[0117] 一部の例では、アンテナ42は、ビデオ・データの符号化されたビットストリームを送信又は受信するように構成されることが可能である。更に、一部の例では、ディスプレイ・デバイス45は、ビデオ・データを提示するように構成される可能性がある。処理回路46は、特定用途向け集積回路(application-specific integrated circuit,ASIC)ロジック、グラフィックス処理ユニット、汎用プロセッサなどを含む可能性がある。ビデオ・コーディング・システム40はまた、オプションのプロセッサ43を含む可能性がある。オプションのプロセッサ43は、同様に、特定用途向け集積回路(application-specific integrated circuit,ASIC)ロジック、グラフィックス処理ユニット、汎用プロセッサなどを含む可能性がある。更に、メモリ44は、例えば、揮発性メモリ(例えば、スタティック・ランダム・アクセス・メモリ(static random-access memory,SRAM)又はダイナミック・ランダム・アクセス・メモリ(dynamic random-access memory,DRAM))又は不揮発性メモリ(例えば、フラッシュ・メモリ)などの任意のタイプのメモリであってもよい。非限定的な例において、メモリ44はキャッシュ・メモリによって実装される可能性がある。他の例において、処理回路46は、ピクチャ・バッファを実現するためのメモリ(例えば、キャッシュ)を含む可能性がある。
【0095】
[0118] 一部の例では、論理回路によって実現されるビデオ・エンコーダ20は、(例えば、処理回路46又はメモリ44によって実現される)ピクチャ・バッファと、(例えば、処理回路46によって実現される)グラフィックス処理ユニットとを含む可能性がある。グラフィックス処理ユニットは、ピクチャ・バッファに通信可能に結合されることが可能である。グラフィックス処理ユニットは、処理回路46によって実現されるビデオ・エンコーダ20に含まれて、
図2を参照して説明される様々なモジュール、及び/又は本件明細書で説明される任意の他のエンコーダ・システム又はサブシステムを実現することが可能である。論理回路は、本件明細書で説明される様々な動作を実行するように構成されることが可能である。
【0096】
[0119] 一部の例では、ビデオ・デコーダ30は、
図3のビデオ・デコーダ30及び/又は本件明細書で説明される任意の他のデコーダ・システム若しくはサブシステムを参照しながら説明される様々なモジュールを実現するために、同様な方法で処理回路46によって実現されてもよい。一部の例では、論理回路によって実現されるビデオ・デコーダ30は、(処理回路46又はメモリ44によって実現される)ピクチャ・バッファと、(例えば、処理回路46によって実現される)グラフィックス処理ユニットとを含むことが可能である。グラフィックス処理ユニットは、ピクチャ・バッファに通信可能に結合されることが可能である。グラフィックス処理ユニットは、処理回路46によって実現されるビデオ・デコーダ30に含まれ、
図3を参照しながら説明される様々なモジュール、及び/又は本件明細書で説明される他の任意のデコーダ・システム又はサブシステムを実現することが可能である。
【0097】
[0120] 一部の例では、アンテナ42は、ビデオ・データの符号化されたビットストリームを受信するように構成されることが可能である。説明されるように、符号化されるビットストリームは、本件明細書で説明されるビデオ・フレーム符号化に関連するデータ、インジケータ、インデックス値、モード選択データなど、例えば、符号化パーティショニングに関連するデータ(例えば、変換係数又は量子化変換係数、オプションのインジケータ(説明されるようなもの)、及び/又は符号化パーティショニングを定義するデータ)を含む可能性がある。ビデオ・コーディング・システム40は、アンテナ42に結合されたビデオ・デコーダ30であって、符号化されたビットストリームを復号化するように構成されたビデオ・デコーダ30を更に含むことが可能である。ディスプレイ・デバイス45は、ビデオ・フレームを提示するように構成されている。
【0098】
[0121] 本件出願のこの実施形態では、ビデオ・エンコーダ20を参照しながら説明した例について、ビデオ・デコーダ30は、逆の処理を実行するように構成されることが可能である、ということが理解されるべきである。シグナリング・シンタックス要素に関し、ビデオ・デコーダ30は、そのようなシンタックス要素を受信して解析し、相応に、関連するビデオ・データを復号化するように構成されることが可能である。一部の例では、ビデオ・エンコーダ20は、シンタックス要素を、符号化されたビデオ・ビットストリームにエントロピー符号化することが可能である。そのような例では、ビデオ・デコーダ30は、そのようなシンタックス要素を解析し、相応に、関連するビデオ・データを復号化することが可能である。
【0099】
[0122] 説明の簡明性のために、本件出願の実施形態は、ITU-Tビデオ・コーディング・エキスパートグループ(video coding experts group,VCEG)及びISO/IEC動画エキスパート・グループ(motion picture experts group,MPEG)のビデオ・コーディングに関する共同研究チーム(joint collaboration team on video coding,JCT-VC)によって開発された汎用ビデオ・コーディング(versatile video coding,VVC)参照ソフトウェア又は高効率ビデオ・コーディング(high-efficiency video coding,HEVC)を参照することによって説明される。当業者は、本件出願の実施形態がHEVCやVVCに限定されないことを理解している。
【0100】
[0123] エンコーダ及び符号化方法
[0124]
図2に示されるように、ビデオ・エンコーダ20は、入力端(又は入力インターフェース)201と、残差計算ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構成ユニット214と、ループ・フィルタ220と、復号化ピクチャ・バッファ(decoded picture buffer,DPB)230と、モード選択ユニット260と、エントロピー符号化ユニット270と、出力端(又は出力インターフェース)272とを含む。モード選択ユニット260は、インター予測ユニット244、イントラ予測ユニット254、及びパーティショニング・ユニット262を含む可能性がある。インター予測ユニット244は、動き推定ユニット及び動き補償ユニット(図示せず)を含む可能性がある。
図2に示されるビデオ・エンコーダ20は、ハイブリッド・ビデオ・コーデックに基づくビデオ・エンコーダ又はハイブリッド・ビデオ・エンコーダとも呼ばれる場合もある。
【0101】
[0125]
図2を参照されたい。インター予測ユニットは、訓練されたターゲット・モデル(ニューラル・ネットワークとも呼ばれる)である。ニューラル・ネットワークは、入力ピクチャ、ピクチャ・エリア、又はピクチャ・ブロックを処理して、入力ピクチャ・ブロックの予測子を生成するように構成される。例えば、インター予測のためのニューラル・ネットワークは、入力ピクチャ、ピクチャ・エリア、又はピクチャ・ブロックを受信し、入力ピクチャ、ピクチャ・エリア、又はピクチャ・ブロックの予測子を生成するように構成される。
【0102】
[0126] 残差計算ユニット204、変換処理ユニット206、量子化ユニット208、及びモード選択ユニット260は、エンコーダ20の前方信号経路を形成する一方、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループ・フィルタ220、復号化ピクチャ・バッファ(decoded picture buffer,DPB)230、インター予測ユニット244、及びイントラ予測ユニット254は、エンコーダの後方信号経路を形成する。エンコーダ20の後方信号経路は、デコーダ(
図3のデコーダ30を参照されたい)の信号経路に対応する。逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループ・フィルタ220、復号化ピクチャ・バッファ230、インター予測ユニット244、及びイントラ予測ユニット254も、ビデオ・エンコーダ20の「内蔵デコーダ(built-in decoder)」を形成する。
【0103】
[0127] ピクチャ及びピクチャ・パーティショニング(ピクチャ及びブロック)
[0128] エンコーダ20は、入力端201を介して、ピクチャ(又はピクチャ・データ)17、例えば、ビデオ又はビデオ・シーケンスを形成するピクチャのシーケンス内にあるピクチャを受信するように構成されることが可能である。受信したピクチャ又はピクチャ・データはまた、前処理されたピクチャ(又は前処理されたピクチャ・データ)19であってもよい。簡単のため、以下の説明は、ピクチャ17を参照している。ピクチャ17はまた、カレント・ピクチャ(current picture)又は符号化される対象ピクチャと言及されてもよい(特に、ビデオ符号化において、カレント・ピクチャを、他のピクチャ、例えば、同じビデオ・シーケンス、即ち、カレント・ピクチャも含むビデオ・シーケンスのうちの以前に符号化及び/又は復号化されたピクチャと区別するためである)。
【0104】
[0129] (デジタル)ピクチャは、強度値を有するサンプルの2次元アレイ又はマトリクスであるか、又はそのように考えることが可能である。アレイ中のサンプルはまた、ピクセル(ピクセル又はペル)(ピクチャ要素の短縮形)と言及される場合もある。アレイの水平及び垂直方向(又は軸)におけるサンプルの数は、ピクチャのサイズ及び/又は解像度を規定する。色の表現には、通常、3つの色成分が使用され、具体的には、ピクチャは、3つのサンプル・アレイとして表現されてもよいし、又はそれを含んでいてもよい。RBGフォーマット又は色空間において、ピクチャは対応する赤、緑、及び青のサンプル・アレイを含む。しかしながら、ビデオ・コーディングにおいては、各ピクセルは、通常、ルミナンス/クロミナンス・フォーマット又は色空間、例えばYCbCrで表現され、YCbCrは、Yで示されるルミナンス成分(時折、Lによって示される)とCb及びCrで示される2つのクロミナンス成分とを含む。ルミナンス(ルマ)成分Yは、輝度又はグレー・レベル強度を表し(例えば、両者はグレー・スケール・ピクチャでは同じである)、2つのクロミナンス(又は略称、クロマ)成分Cb及びCrはクロミナンス又は色情報成分を表す。従って、YCbCrフォーマットにおけるピクチャは、ルミナンス・サンプル値(Y)のルミナンス・サンプル・アレイと、クロミナンス値(Cb及びCr)の2つのクロミナンス・サンプル・アレイとを含む。RGBフォーマットのピクチャは、YCbCrフォーマットにコンバート又は変換されることが可能であり、その逆も可能である。そのプロセスは色変換又はコンバージョンとも言及される。ピクチャがモノクロである場合、ピクチャはルミナンス・サンプル・アレイのみを含むことが可能である。従って、ピクチャは、例えば、モノクロ・フォーマットにおけるルミナンス・サンプルのアレイ、又はルミナンス・サンプルのアレイとクロミナンス・サンプルの2つの対応するアレイとの4:2:0、4:2:2、及び4:4:4カラー・フォーマットにおけるものであってもよい。
【0105】
[0130] 実施形態において、ビデオ・エンコーダ20の実施形態は、ピクチャ17を、複数の(典型的には重複しない)ピクチャ・ブロック203にパーティション化するように構成されたピクチャ・パーティショニング・ユニット(
図2には示されていない)を含むことが可能である。これらのブロックはまた、ルート・ブロック、マクロ・ブロック(H.264/AVC)又はコーディング・ツリー・ブロック(coding tree blocks,CTBs)又はコーディング・ツリー・ユニット(coding tree units,CTUs)として、H.265/HEVC及びVVC規格でのように言及されてもよい。パーティショニング・ユニットは、ビデオ・シーケンスの全てのピクチャに対して同一のブロック・サイズと、ブロック・サイズを規定する対応するグリッドとを使用するように、又は、ピクチャ、サブセット、又はピクチャのグループの間でブロック・サイズを変更し、各ピクチャを対応するブロックにパーティション化するように構成されることが可能である。
【0106】
[0131] 他の実施形態において、ビデオ・エンコーダは、ピクチャ17のブロック203、例えばピクチャ17を形成する1つの、幾つかの、又は全てのブロックを直接的に受信するように構成されてもよい。ピクチャ・ブロック203は、カレント・ピクチャ・ブロック又は符号化される対象ピクチャ・ブロックと言及されてもよい。
【0107】
[0132] ピクチャ17と同様に、ブロック203は、再び、ピクチャ17よりも小さな寸法ではあるが、強度値(サンプル値)を有するサンプルの2次元アレイ又はマトリクスであるか、又はそれらとして考えることが可能である。換言すると、ブロック203は、1つのサンプル・アレイ(例えば、モノクロ・ピクチャ17の場合におけるルミナンス・アレイ、又はカラー・ピクチャの場合におけるルミナンス又はクロマ・アレイ)又は3つのサンプル・アレイ(例えば、カラー・ピクチャ17の場合における1つのルミナンス・アレイ及び2つのクロミナンス・アレイ)、又は、使用されるカラー・フォーマットに依存する任意の他の数量及び/又は種類のアレイを含んでもよい。ブロック203の水平及び垂直方向(又は軸)のサンプルの数は、ブロック203のサイズを規定する。従って、ブロックは、サンプルのM×N(M列×N行)アレイ、又は変換係数のM×Nアレイであってもよい。
【0108】
[0133] 実施形態において、
図2に示されるビデオ・エンコーダ20は、ブロック毎にピクチャ17を符号化するように構成されることが可能であり、例えば符号化及び予測はブロック203毎に実行される。
【0109】
[0134] 実施形態において、
図2に示されるビデオ・エンコーダ20は、更に、スライス(ビデオ・スライスとも呼ばれる)を使用してピクチャをパーティション化及び/又は符号化するように構成されることが可能であり、ここで、ピクチャは、1つ以上のスライス(典型的には、重複しない)にパーティション化され、又はそれらを使用して符号化されることが可能である。各スライスは、1つ以上のブロック(例えば、コーディング・ツリー・ユニットCTUs)又は1つ以上のブロック・グループ(例えば、H.265/HEVC/VVC規格におけるタイル(tile)及びVVC規格におけるブリック(bricks))を含むことが可能である。
【0110】
[0135] 実施形態において、
図2に示されるビデオ・エンコーダ20は、スライス/タイル・グループ(ビデオ・タイル・グループとも呼ばれる)及び/又はタイル(ビデオ・タイルとも呼ばれる)を使用して、ピクチャをパーティション化及び/又は符号化するように更に構成されることが可能である。ピクチャは、1つ以上のスライス/タイル・グループ(典型的には、重複しない)にパーティション化され又はそれらを使用して符号化されることが可能であり、各スライス/タイル・グループは、1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含むことが可能である。各タイルは、矩形の形状であってもよく、1つ以上のブロック(例えば、CTU)、例えば完全な又は断片的なブロックを含む可能性がある。
【0111】
[0136] 残差計算
[0137] 残差計算ユニット204は、ピクチャ・ブロック(元のブロック)203及び予測ブロック265(予測ブロック265に関する更なる詳細は後に行われる)に基づいて、例えば、予測ブロック265のサンプル値を、ピクチャ・ブロック203のサンプル値から、サンプルごとに(ピクセルごとに)減算して、サンプル・ドメインで残差ブロック205を取得することによって、残差ブロック205を計算するように構成されてもよい。
【0112】
[0138] 変換
[0139] 変換処理ユニット206は、例えば、離散コサイン変換(discrete cosine transform,DCT)又は離散サイン変換(discrete sine transform,DST)などの変換を、残差ブロック205のサンプル値に適用して、変換ドメインにおける変換係数207を取得するように構成される。変換係数207は、変換残差係数と言及され、変換ドメインにおける残差ブロック205を表ことも可能である。
【0113】
[0140] 変換処理ユニット206は、H.265/HEVCで指定される変換のような、DCT/DSTの整数近似を適用するように構成されていてもよい。直交DCT変換と比較して、そのような整数近似は、通常、ある因子に基づいてスケーリングされる。フォワード変換とインバース変換を使用することにより処理される残差ブロックのノルムを保持するために、追加的なスケール因子が、変換プロセスの一部として適用される。スケール因子は、通常、幾つかの制約、例えば、スケール因子はシフト演算のために2の冪乗であること、変換係数のビット深度、及び、精度と実装コストとの間のトレードオフに基づいて選択される。例えば、特定のスケールファクタが、例えばエンコーダ側20の逆変換処理ユニット212による逆変換(及び、例えばデコーダ側30の逆変換処理ユニット312による対応する逆変換)のために指定されており、これに対応して、対応するスケール因子が、例えばエンコーダ側20の変換処理ユニット206による順変換のために指定されていてもよい。
【0114】
[0141] 実施形態において、ビデオ・エンコーダ20(相応に、変換処理ユニット206)は、変換パラメータ、例えば、1つ以上の変換のタイプ、例えば、エントロピー符号化ユニット270によって実行される符号化又は圧縮の後又は直接的であることのタイプ、のような変換パラメータを出力するように構成されることが可能であり、その結果、例えば、ビデオ・デコーダ30は、復号化のために変換パラメータを受信及び使用することが可能である。
【0115】
[0142] 量子化
[0143] 量子化ユニット208は、変換係数207を量子化して、量子化された変換係数209を取得することを、例えば、スカラー量子化又はベクトル量子化を適用することによって行うように構成されていてもよい。量子化された変換係数209は、量子化された残差係数209と言及される場合もある。
【0116】
[0144] 量子化プロセスは、変換係数207の全部又は一部に関連するビット深度を低減する可能性がある。例えば、nビット変換係数は、量子化中にmビット変換係数に丸められることが可能であり、ここで、nはmより大きい。量子化の程度は、量子化パラメータ(quantization parameter,QP)を調整することによって変更されることが可能である。例えば、スカラー量子化の場合、より細かい又はより粗い量子化を達成するために、異なるスケールが適用される可能性がある。より小さな量子化ステップは、より細かい量子化に対応し、より大きな量子化ステップは、より粗い量子化に対応する。適切な量子化ステップは、量子化パラメータ(quantization parameter,QP)によって指定される可能性がある。例えば、量子化パラメータは、適切な量子化ステップの予め定義されたセットに対するインデックスであってもよい。例えば、より小さな量子化パラメータは、より細かい量子化(より小さな量子化ステップ)に対応し、より大きい量子化パラメータは、より粗い量子化(より大きな量子化ステップ)に対応し、又はその逆であってもよい。量子化は、量子化ステップによる除算を含む可能性があり、対応する及び/又は逆量子化は、例えば逆量子化ユニット210により行われる、量子化ステップによる乗算を含む可能性がある。HEVCのような或る規格に従う実施形態は、量子化パラメータを使用して量子化ステップを決定するように構成されていてもよい。一般に、量子化ステップは、除算を含む式の固定小数点近似を使用することによって、量子化パラメータに基づいて計算されてもよい。追加のスケール因子が、量子化及び量子化解除のために導入されて、残差ブロックのノルムを復元することが可能であり、ここで、残差ブロックのノルムは、量子化ステップ及び量子化パラメータに関する式の固定点近似で使用されるスケールに起因して、修正される可能性がある。一例の実装では、逆変換のスケールが、量子化解除のスケールと組み合わせられる可能性がある。代替的に、カスタマイズされた量子化テーブルが使用され、エンコーダからデコーダへ、例えばビットストリームにおいてシグナリングされる可能性がある。量子化は非ロスレス演算であり、ここで、より大きな量子化ステップは、より大きいなロスを示す。
【0117】
[0145] 実施形態では、ビデオ・エンコーダ20(相応に、量子化ユニット208)は、量子化パラメータ(quantization parameter,QP)、例えば、エントロピー符号化ユニット270によって実行される符号化又は圧縮の後又は直接的に行うこと、を出力するように構成される可能性があり、その結果、例えば、ビデオ・デコーダ30は、復号化のために量子化パラメータを受信及び使用することが可能である。
【0118】
[0146] 逆量子化
[0147] 逆量子化ユニット210は、量子化解除された係数211を取得するために、量子化された係数に、量子化ユニット208の逆量子化を適用するように、例えば、量子化ユニット208に基づいて又は量子化ユニット208と同じ量子化ステップを使用することによって、量子化ユニット208により適用された量子化方式のインバースを適用するように構成される。量子化解除された係数211は、量子化解除された残差係数211と呼ばれる可能性もあり、通常は量子化によるロスに起因して変換係数とは異なるが、変換係数207に対応している。
【0119】
[0148] 逆変換
[0149] 逆変換処理ユニット212は、変換処理ユニット206によって適用された変換の逆変換、例えば、逆離散コサイン変換(discrete cosine transform,DCT)又は逆離散サイン変換(discrete sine transform,DST)を適用して、サンプル・ドメインにおいて再構成された残差ブロック213(又は対応する逆量子化係数213)を取得するように構成される。再構成された残差ブロック213は、変換ブロック213と言及されてもよい。
【0120】
[0150] 再構成
[0151] 再構成ユニット214(例えば、加算器214)は、変換ブロック213(即ち、再構成された残差ブロック213)を予測ブロック265に加算して、例えば、再構成された残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することによって、サンプル・ドメインにおいて、再構成されたブロック215を取得するように構成される。
【0121】
[0152] フィルタリング
[0153] ループ・フィルタ・ユニット220(又は、略して「ループ・フィルタ」220)は、再構成されたブロック215をフィルタリングして、フィルタリングされたブロック221を取得する、又は一般的には、再構成されたサンプルをフィルタリングして、フィルタリングされたサンプル値を取得するように構成されている。例えば、ループ・フィルタ・ユニットは、ピクセル遷移を滑らかにしたり、又はビデオ品質を改善したりするように構成される。ループ・フィルタ・ユニット220は、デブロッキング・フィルタ、サンプル適応オフセット(sample-adaptive offset,SAO)フィルタ、又は1つ以上の他のフィルタ、例えば、適応ループ・フィルタ(adaptive loop filter,ALF)、ノイズ抑制フィルタ(noise suppression filter ,NSF)、又はそれらの任意の組み合わせのような1つ以上のループ・フィルタを含む可能性がある。一例では、ループ・フィルタ・ユニット220は、デブロッキング・フィルタ、SAOフィルタ、及びALFフィルタを含む可能性がある。フィルタリング・プロセスの順序は、デブロッキング・フィルタ、SAOフィルタ、ALFフィルタであってもよい。別の例では、クロミナンス・ケーリングを伴うルミナンス・マッピング(luma mapping with chroma scaling,LMCS)と呼ばれるプロセス(即ち、適応イン・ループ・リシェーパ)が追加される。このプロセスはデブロッキングの前に実行される。別の例では、デブロッキング・フィルタ・プロセスは、内部サブ・ブロック・エッジ、例えば、アフィン・サブ・ブロック・エッジ、ATMVPサブ・ブロック・エッジ、サブ・ブロック変換(sub-block transform,SBT)エッジ、及びイントラ・サブ・パーティション(intra sub-partition,ISP)エッジに適用されてもよい。ループ・フィルタ・ユニット220は、
図2ではループ・フィルタであるとして示されているが、他の構成では、ループ・フィルタ・ユニット220は、ポスト・ループ・フィルタとして実装されてもよい。フィルタリングされたブロック221は、フィルタリングされた再構成ブロック221と言及される場合もある。
【0122】
[0154] 実施形態では、ビデオ・エンコーダ20(相応に、ループ・フィルタ・ユニット220)は、ループ・フィルタ・パラメータ(例えば、SAOフィルタ・パラメータ、ALFフィルタ・パラメータ、又はLMCSパラメータ)、例えば、エントロピー符号化ユニット270によって実行されるエントロピー符号化の後又は直接的に行うこと、を出力するように構成される可能性があり、その結果、デコーダ30は復号化のために同じ又は異なるループ・フィルタ・パラメータを受信して使用することができるようになる。
【0123】
[0155] 復号化済みピクチャ・バッファ
[0156] 復号化済みピクチャ・バッファ(decoded picture buffer,DPB)230は、ビデオ・エンコーダ20によるビデオ・データ符号化で使用するための参照ピクチャ・データを格納する参照ピクチャ・メモリである可能性がある。DPB230は、例えば、同期DRAM(synchronous DRAM,SDRAM)を含むダイナミック・ランダムアクセス・メモリ(dynamic random-access memory,DRAM)、磁気抵抗RAM(magnetoresistive RAM,MRAM)、抵抗RAM(resistive RAM,RRAM)、又は別のタイプのメモリ・デバイスを含む、様々なメモリ・デバイスのうちの任意の何れかによって形成されてもよい。復号化済みピクチャ・バッファ230は、1つ以上のフィルタリング・ブロック221を記憶するように構成されてもよい。復号化済みピクチャ・バッファ230は、同じカレント・ピクチャ又は異なるピクチャ、例えば以前に再構成されたピクチャの、例えば以前にフィルタリングされた他のブロック、例えば以前に再構成されフィルタリングされたブロック221を記憶するように更に構成されてもよく、また、例えばインター予測のために、完全な以前に再構成された、例えば復号化されたピクチャ(及び対応する参照ブロック及びサンプル)及び/又は部分的に再構成されたカレント・ピクチャ(及び対応する参照ブロック及びサンプル)を提供する可能性がある。復号化済みピクチャ・バッファ230は、例えば、再構成されたブロック215がループ・フィルタ・ユニット220によってフィルタリングされていない場合に、1つ以上のフィルタリングされていない再構成されたブロック215、又は一般にフィルタリングされていない再構成されたサンプルを格納し、或いは、再構成されたブロック又はサンプルの他の更なる処理されたバージョンを格納するように更に構成されてもよい。
【0124】
[0157] モード選択(パーティショニング及び予測)
[0158] モード選択ユニット260は、パーティショニング・ユニット262、インター予測ユニット244、及びイントラ予測ユニット254を含み、また、生ピクチャ・データ、例えば、元のブロック203(カレント・ピクチャ17のカレント・ブロック203)、再構成ピクチャ・データ、例えば、同じ(カレント)ピクチャの、及び/又は、1つ以上の以前に復号されたピクチャからの、例えば、復号化済みピクチャ・バッファ230又は他のバッファ(例えば、
図2に示されていないラインバッファ)からの、フィルタリングされた及び/又はフィルタリングされていない再構成サンプル又はブロックを受信又は取得するように構成されている。再構成されたピクチャ・データは、予測ブロック265又は予測子265を得るために、例えばインター予測又はイントラ予測のような予測のための参照ピクチャ・データとして使用される。
【0125】
[0159] モード選択ユニット260は、カレント・ブロックのパーティショニング(非パーティショニングを含む)及び予測モード(例えば、イントラ又はインター予測モード)を決定又は選択し、対応する予測ブロック265を生成するように構成される可能性があり、その予測ブロックは、残差ブロック205の計算のため及び再構成ブロック215の再構成のために使用される。
【0126】
[0160] 実施形態では、モード選択ユニット260は、(例えば、モード選択ユニット260に利用可能なもの又はサポートされているものから)パーティショニング及び予測モードを選択するように構成されることが可能である。予測モードは、最適な一致又は最小の残差(最小の残差は、送信又は格納のために、より良好な圧縮を意味する)を提供するか、最小のシグナリング・オーバーヘッド(最小のシグナリング・オーバーヘッドは、送信又は格納のために、より良好な圧縮を意味する)を提供するか、又は両方を考慮したり又はバランスをとったりする。モード選択ユニット260は、ビット・レート歪最適化(rate distortion optimization,RDO)に基づいてパーティショニング及び予測モードを決定する、例えば、最小ビット・レート歪最適化を提供する予測モードを選択する、ように構成されることが可能である。本件明細書における「最良」、「最低」、「最適」等の用語は、必ずしも一般的な「最良」、「最低」、「最適」を意味しておらず、終了又は選択の基準が合致している状況を意味する場合もある。例えば、閾値又はその他の制約を超えたり又は下回ったりする値は、「最適でない選択」となるが、複雑さや処理時間を減らす可能性がある。
【0127】
[0161] 換言すると、パーティショニング・ユニット262は、ビデオシーケンスからのピクチャを、コーディング・ツリー・ユニット(coding tree unit,CTU)のシーケンスにパーティショニングするように構成されてもよく、CTU203は、より小さなブロック・パーティション又はサブ・ブロック(ブロックを再び形成する)に更にパーティショニン化することを、例えば、四分木パーティショニング(quad-tree partitioning,QT)、二分木パーティショニング(binary-tree partitioning,BT)、三分木パーティショニング(triple-tree partitioning,TT)又はそれらの任意の組み合せを反復的に使用して行い、また、例えば、ブロック・パーティション又はサブ・ブロックの各々に対して予測を実行するように構成されることが可能であり、ここで、モード選択は、パーティション化されたブロック203のツリー構造、及びブロック・パーティション又はサブ・ブロックの各々に適用される予測モードの選択を含む。
【0128】
[0162] 以下、ビデオ・エンコーダ20によって実行されるパーティション化(例えば、パーティション化ユニット262によるもの)及び予測(例えば、インター予測ユニット244及びイントラ予測ユニット254によるもの)について詳細に説明する。
【0129】
[0163] パーティション化
[0164] パーティション化ユニット262は、ピクチャ・ブロック(又はCTU)203を、より小さなパーティション、例えば正方形又は長方形のより小さなブロックにパーティション化(又は分割)することが可能である。3つのサンプル・アレイを有するピクチャの場合、CTUは、ルミナンス・サンプルのN×Nブロックを、クロミナンス・サンプルの2つの対応するブロックとともに含む。CTUのルミナンス・ブロックの最大許容サイズは、発展中の多用途ビデオ・コーディング(versatile video coding,VVC)規格では128×128であるように規定されているが、将来的には128×128以外の値、例えば256×256であるように規定される可能性がある。ピクチャのCTUは、スライス/タイル・グループ、タイル又はブリックとしてクラスタ化/グループ化されてもよい。タイルはピクチャの矩形エリアをカバーし、タイルは1つ以上のブリックに分割されてもよい。ブリックは、タイルにおいて複数のCTU行を含む。複数のブリックにパーティション化されていないタイルは、ブリックと呼ぶことができる。しかしながら、ブリックはタイルの真のサブセットであり、タイルとは呼ばれない。VVCでは、ラスタ・スキャン・スライス/タイル・グループ・モードと矩形スライス・モードという2つのタイル・グループのモードがサポートされている。ラスター・スキャン・タイル・グループ・モードでは、スライス/タイル・グループは、ピクチャのタイル・ラスター・スキャンにおけるタイルのシーケンスを含む。矩形スライス・モードでは、スライスは、集合的にピクチャの矩形エリアを形成するピクチャの複数のブリックを含む。矩形スライス内のブリックは、スライスのブリック・ラスター・スキャンの順序におけるものである。これらの小さなブロック(サブ・ブロックと呼ばれる場合もある)は、更に小さなパーティションにパーティション化される可能性がある。これは、ツリー・パーティション化又は階層ツリー・パーティション化とも言及され、ここで、例えばルート・ツリー・レベル0(階層レベル0又は深度0)のルート・ブロックは、再帰的にパーティション化され、例えば、次の下位ツリー・レベル、例えば、ツリー・レベル1(階層レベル1又は深度1)におけるノードの2つ以上のブロックにパーティション化される。これらのブロックは、再び次の下位レベル、例えばツリー・レベル2(階層レベル2又は深度2)の2つ以上のブロックに、パーティション化が終了するまで(終了基準が満たされたこと、例えば、最大ツリー深度又は最小ブロック・サイズに到達したことに起因して)、パーティション化される可能性がある。更にパーティション化されないブロックは、ツリーのリーフ・ブロック又はリーフ・ノードとも呼ばれる。2つのパーティションへのパーティション化を用いるツリーはバイナリ・ツリー(binary-tree,BT)、3つのパーティションへのパーティション化を用いるツリーはターナリー・ツリー(ternary-tree,TT)、4つのパーティションへのパーティション化を用いるツリーはクワッド・ツリー(quad-tree,QT)と呼ばれる。
【0130】
[0165] 例えば、コーディング・ツリー・ユニット(CTU)は、3つのサンプル・アレイを有するピクチャのルミナンス・サンプルのCTB、クロミナンス・サンプルの2つの対応するCTB、又は、モノクロ・ピクチャ又は或るピクチャのサンプルのCTB(或るピクチャは、3つの別個のカラー・プレーン及びシンタックス構造(サンプルをコーディングするために使用されるもの)を使用することによってコーディングされる)であってもよいし、又はこれらを含んでいてもよい。これに対応して、コーディング・ツリー・ブロック(CTB)は、コンポーネントのCTBへの分割がパーティション化であるように、何らかのN値に関するサンプルのN×Nブロックであってもよい。コーディング・ユニット(coding unit,CU)は、3つのサンプル・アレイを有するピクチャのルミナンス・サンプルのコーディング・ブロック、クロミナンス・サンプルの2つの対応するコーディング・ブロック、又は、モノクロ・ピクチャ又は或るピクチャのサンプルのコーディング・ブロック(或るピクチャは、3つの別個のカラー・プレーン及びシンタックス構造(サンプルを符号化するために使用されるもの)を使用することによってコーディングされる)であってもよいし、又はこれらを含んでもよい。これに対応して、コーディング・ブロック(CB)は、CTBのコーディング・ブロックへの分割がパーティション化であるように、何らかのM及びN値に関するサンプルのM×Nブロックであってもよい。
【0131】
[0166] 実施形態では、例えば、HEVCに従って、コーディング・ツリーとして示されるクワッド・ツリー構造を使用することによって、コーディング・ツリー・ユニット(CTU)は、複数のCUに分割される可能性がある。インター(時間)予測又はイントラ(空間)予測を使用してピクチャ・エリアをコーディングするかどうかの判定は、リーフCUレベルで行われる。各リーフCUは、PU分割タイプに基づいて、1つ、2つ、又は4つのPUに更に分割される可能性がある。1つのPU内では、同じ予測プロセスが適用され、関連情報はPU単位でデコーダへ伝送される。PU分割タイプに基づいて予測プロセスを適用することによって、残差ブロックを取得した後に、リーフCUは、CUのコーディング・ツリーと同様の別のクワッド・ツリー構造に基づいて、変換ユニット(TU)にパーティション化される可能性がある。
【0132】
[0167] 実施形態では、例えば、現在開発中の最新のビデオ・コーディング規格(汎用ビデオ・コーディング(VVC)と呼ばれる)に従って、結合クワッド・ツリー・ネスト化マルチ・タイプ・ツリー(例えば、バイナリ・ツリー及びターナリー・ツリー)が、コーディング・ツリー・ユニットをパーティション化するために使用されるセグメンテーション構造を分割する。コーディング・ツリー・ユニット内のコーディング・ツリー構造では、CUは正方形又は長方形の何れかの形状を有する可能性がある。例えば、コーディング・ツリー・ユニット(CTU)は、先ずクワッド・ツリー構造によってパーティション化される。次いで、クワッド・ツリー・リーフ・ノードは、マルチ・タイプ・ツリー構造によって更にパーティション化されることが可能である。マルチ・タイプ・ツリー構造においては、垂直2分木分割(SPLIT_BT_VER)、水平2分木分割(SPLIT_BT_HOR)、垂直3分木分割(SPLIT_TT_VER)、水平3分木分割(SPLIT_TT_HOR)の4つの分割タイプがある。マルチ・タイプ・ツリー・リーフ・ノードは、コーディング・ユニット(CU)と呼ばれ、また、CUが最大変換長に対して過度に大きくない限り、この分割は、それ以上の如何なるパーティション化も行わずに、予測及び変換処理に使用される。これは、ほとんどの場合、CU、PU、及びTUが、ネスト化されたマルチ・タイプ・ツリー・コーディング・ブロック構造とともに、四分木において同じブロック・サイズを有する。例外は、サポートされる最大変換長が、CUのカラー成分の幅又は高さよりも小さい場合に生じる。VVCは、ネスト化されたマルチ・タイプ・ツリー・コーディング構造を用いる四分木において分割情報を分ける独自のシグナリング機構を発展させている。このシグナリング機構では、コーディング・ツリー・ユニット(CTU)は四分木のルートとして扱われ、先ず、四分木構造によってパーティション化される。各々の四分木リーフ・ノード(それを許容する程度に十分に大きい場合)は、次いで、マルチ・タイプ・ツリー構造によって更にパーティション化される。マルチ・タイプ・ツリー構造では、第1のフラグ(mtt_split_cu_flag)がシグナリングされて、ノードが更にパーティション化されるかどうかを指定し;ノードが更にパーティション化される場合には、第2のフラグ(mtt_split_cu_vertical_flag)がシグナリングされて、分割方向を指定し;次いで、第3のフラグ(mtt_split_cu_binary_flag)がシグナリングされて、分割は2分木分割であるか又は3分木分割であるかを指定する。mtt_split_cu_vertical_flag及びmtt_split_cu_binary_flagの値に基づいて、CUのマルチ・タイプ・ツリー分割モード(MttSplitMode)は、予め定義されたルール又はテーブルに基づいて、デコーダによって導出されることが可能である。特定の設計、例えば VVC ハードウェア・デコーダにおける 64×64 のルマ・ブロック及び 32×32 のクロマ・パイプライン設計では、ルミナンス・コーディング・ブロックの幅又は高さの何れかが 64 より大きい場合、TT 分割は禁止される。また、クロミナンス・コーディング・ブロックの幅又は高さの何れかが 32 より大きい場合も、TT 分割は禁止される。パイプライン設計は、ピクチャを仮想パイプライン・データ・ユニット(virtual pipeline data units,VPDUs)に分割し、VPDUはピクチャ内でオーバーラップしないユニットとして定義される。ハードウェア・デコーダでは、連続するVPDUは、複数のパイプライン・ステージによって同時に処理される。VPDUのサイズは、ほとんどのパイプライン・ステージにおけるバッファ・サイズに大まかには比例し、従って、VPDUのサイズを小さく保つことは重要である。ほとんどのハードウェア・デコーダでは、VPDUサイズは最大変換ブロック(TB)サイズに設定されることが可能である。しかしながら、VVCでは、ターナリー・ツリー(TT)及びバイナリ・ツリー(BT)のパーティション化は、VPDUサイズの増加を招く可能性がある。
【0133】
[0168] 更に、ツリー・ノード・ブロックの一部分が、底部又は右側のピクチャ境界を超える場合、ツリー・ノード・ブロックは、全てのコーディングされたCUの全てのサンプルがピクチャ境界内側に位置するようになるまで、強制的に分割されることに留意すべきである。
【0134】
[0169] 例えば、イントラ・サブ・パーティション(intra sub-partition,ISP)ツールは、ブロック・サイズに応じて、ルマ・イントラ予測されたブロックを、垂直又は水平に2つ又は4つのサブ・パーティションに分割することが可能である。
【0135】
[0170] 一例では、ビデオ・エンコーダ20のモード選択ユニット260は、上述したパーティション化技術の任意の組み合わせを実行するように構成されることが可能である。
【0136】
[0171] 上述したように、ビデオ・エンコーダ20は、(事前に決定された)予測モード・セットから、最良又は最適な予測モードを決定又は選択するように構成される。予測モード・セットは、例えば、イントラ予測モード及び/又はインター予測モードを含む可能性がある。
【0137】
[0172] イントラ予測
[0173] イントラ予測モード・セットは、35個の異なるイントラ予測モード、例えば、DC(又は平均)モード及び平面モードのような非方向性モード、又は、HEVCで定義されているもののような方向性モードを含む可能性があり、或いは、67個の異なるイントラ予測モード、例えば、DC(又は平均)モード及び平面モードのような非方向性モード、又は、VVCで定義されているもののような方向性モードを含む可能性がある。例えば、幾つかの従来の角度イントラ予測モードは、VVCで定義されているように、非正方形ブロックに関する広角イントラ予測モードに適応的に置き換えられる。別の例として、DC予測に関する除算演算を回避するために、より長い辺のみが、非正方形ブロックに関する平均を計算するために使用される。更に、平面モードのイントラ予測の結果は、位置依存イントラ予測結合(position dependent intra prediction combination,PDPC)方法を使用することによって、更に修正される可能性がある。
【0138】
[0174] イントラ予測ユニット254は、同じカレント・ピクチャの近傍ブロックの再構成されたサンプルを使用して、イントラ予測モード・セット内のイントラ予測モードに基づいて、イントラ予測ブロック265を生成するように構成される。
【0139】
[0175] イントラ予測ユニット254(又は、一般にモード選択ユニット260)は、イントラ予測パラメータ(又は一般的には、ブロックに対して選択されたイントラ予測モードを示す情報)を、符号化されたピクチャ・データ21に含めるためのシンタックス要素266の形態で、エントロピー符号化ユニット270に出力するように更に構成され、その結果、例えば、ビデオ・デコーダ30は、復号化のために予測パラメータを受信して使用することが可能になる。
【0140】
[0176] HEVCにおけるイントラ予測モードは、直流予測モード、平面予測モード、及び33個の角度予測モードを含む。即ち、合計で35個の予測モード候補が存在する。カレント・ブロックは、イントラ予測を実行するための参照として、左側及び上側に対して再構成されたピクチャ・ブロックのピクセルを使用する可能である。カレント・ブロックの周辺エリア内のピクチャ・ブロックであって、カレント・ブロックに対するイントラ予測に使用されるピクチャ・ブロックは、参照ブロックになり、参照ブロック内のピクセルは参照ピクセルと言及される。35個の候補予測モードにおいて、直流予測モードは、あるエリアに適用可能であり、そのエリアのテクスチャはカレント・ブロックにおいてフラットであり、そのエリア内の全てのピクセルは、参照ブロック内の参照ピクセルの平均値を、予測として使用する。平面予測モードは、あるピクチャ・ブロックに適用可能であり、そのピクチャ・ブロックのテクスチャは滑らかに変化している。この条件を満たすカレント・ブロックに対して、バイリニア補間は、参照ブロック内の参照ピクセルを、カレント・ブロック内の全てのピクセルの予測として使用することによって、実行される。角度予測モードでは、カレント・ブロックのテクスチャは、近傍の再構成されたピクチャ・ブロックのテクスチャと強く相関しているという特徴を利用して、対応する参照ブロックにおける参照ピクセルの値が、カレント・ブロックの全てのピクセルの予測として或る角度に沿ってコピーされる
[0177] HEVCエンコーダは、カレント・ブロックに対する35個の候補予測モードから、最適イントラ予測モードを選択し、最適イントラ予測モードをビデオ・ビットストリームに書き込む。イントラ予測のコーディング効率を改善するために、エンコーダ/デコーダは、周辺エリアにおいてイントラ予測を使用する再構成されたピクチャ・ブロックのそれぞれの最適イントラ予測モードの中から、3つの最確モード(most probable modes)を導出する。カレント・ブロックに対して選択された最適イントラ予測モードが3つの最確モードのうちの1つである場合、第1のインデックスは、選択された最適イントラ予測モードが3つの最確モードのうちの1つであることを示すために符号化される。選択された最適イントラ予測モードが3つの最確モードのうちの1つでない場合、第2のインデックスは、選択された最適イントラ予測モードが他の32個のモード(35個の予測モード候補のうちの前述の3つの最確モード以外のモード)のうちの1つであることを示すために符号化される。HEVC規格は、前述の第2のインデックスとして5ビット固定長コードを使用する。
【0141】
[0178] HEVCエンコーダによって3つの最確モードを導出する方法は:カレント・ブロックの左側近傍ピクチャ・ブロック及び上側近傍ピクチャ・ブロックの最適イントラ予測モードを選択することと、最適イントラ予測モードをセットに入れることとを含む。2つの最適イントラ予測モードが同じである場合、セット内で唯1つのイントラ予測モードは予約される。2つの最適イントラ予測モードが同じであり、両方とも角度予測モードである場合、角度方向に対して隣接する2つの角度予測モードが更に選択され、セットに追加される。そうでない場合は、平面予測モード、直流予測モード、及び垂直予測モードが順次選択され、セット内のモード数が3に到達するまで、セットに追加される。
【0142】
[0179] ビットストリームに対してエントロピー復号化を実行した後に、HEVCデコーダは、カレント・ブロックのモード情報を取得する。モード情報は、カレント・ブロックの最適イントラ予測モードが3つの最確モードにおけるものであるどうかを示す識別子、3つの最確モードにおけるカレント・ブロックの最適イントラ予測モードのインデックス、又は、他の32個のモードにおけるカレント・ブロックの最適イントラ予測モードのインデックスを含む。
【0143】
[0180] インター予測
[0181] 可能な実装において、インター相互予測モード・セットは、利用可能な参照ピクチャ(即ち、例えば、DBP 230に記憶された、以前の少なくとも部分的に復号化されたピクチャ)及び他のインター予測パラメータ、例えば、参照ピクチャ全体又は参照・ピクチャの一部のみ(例えば、カレント・ブロックのエリア周辺の探索ウィンドウ・エリア)が、最良の一致する参照ブロックを検索するために使用されるかどうか、及び/又は例えば、ピクセル補間、例えば、1/2ピクセル補間、1/4ピクセル補間、及び/又は1/16ピクセル補間が適用されるかどうか、に依存する。
【0144】
[0182] 前述の予測モードに加えて、スキップ・モード及び/又はダイレクト・モードが更に適用されてもよい。
【0145】
[0183] 例えば、拡張マージ予測モードのマージ候補リストは、次の5つのタイプの候補を:空間的な近傍のCUからの空間的MVP、同等位置のCUからの時間的MVP、FIFOテーブルからの履歴ベースのMVP、ペアワイズ平均MVP、及びゼロMV の順に含む。バイラテラル・マッチング・ベースのデコーダ側動きベクトル精密化(decoder side motion vector refinement,DMVR)は、マージ・モードのMVの精度を高めるために使用される可能性がある。MVDを用いるマージ・モード(merge mode with an MVD,MMVD)は、動きベクトル差分を用いるマージ・モードに由来する。MMVDフラグは、スキップ・フラグとマージ・フラグが送信された直後に送信され、MMVDモードがCUに使用されるかどうかを指定する。CUレベルの適応的動きベクトル解決(adaptive motion vector resolution,AMVR)方式が使用される可能性がある。AMVRは、CUのMVDが、異なる精度でコーディングされることを許容する。カレントCUのMVDは、カレントCUの予測モードに基づいて、適応的に選択される可能性がある。CUがマージ・モードでコーディングされる場合に、複合インター/イントラ予測(combined inter/intra prediction,CIIP)モードがカレント・CUに適用される可能性がある。CIIP予測を得るために、インター及びイントラ予測信号の重み付け平均化が実行される。アフィン動き補償予測では、2つの制御ポイント(4パラメータ)動きベクトル又は3つの制御ポイント(6パラメータ)動きベクトルの動き情報に基づいて、ブロックのアフィン・モーション・フィールドが記述される。サブブロック・ベースの時間的動きベクトル予測(subblock-based temporal motion vector prediction,SbTMVP)は、HEVCにおける時間的動きベクトル予測(temporal motion vector prediction,TMVP)に類似しているが、カレントCU内のサブCUの動きベクトルを予測している。双方向オプティカル・フロー(bi-directional optical flow,BDOF)は、以前はBIOと呼ばれていたが、より単純なバージョンであり、特に乗算の回数と乗算器の値の点で、かなり少ない演算しか必要としないものである。三角形パーティション・モードでは、CUは対角分割及び非対角分割(anti-diagonal splitting)によって2つの三角形部分に均等に分割される。更に、双-予測モードは、シンプルな平均化を越えて拡張され、2つの予測信号の加重平均を許容する。
【0146】
[0184] インター予測ユニット244は、動き推定(motion estimation,ME)ユニット及び動き補償(motion compensation,MC)ユニット(これらは
図2に示されていない)を含む可能性がある。動き推定ユニットは、動き推定のために、ピクチャ・ブロック203(カレント・ピクチャ17のカレント・ピクチャ・ブロック203)及び復号化されたピクチャ231、又は、少なくとも1つ以上の以前に再構成されたブロック、例えば、1つ以上の他の/異なる以前に復号化されたピクチャ231の再構成されたブロック、を受信又は取得するように構成されていてもよい。例えば、ビデオ・シーケンスは、カレント・ピクチャ及び以前に復号化されたピクチャ231を含む可能性があり、換言すれば、カレント・ピクチャ及び以前に復号化されたピクチャ231は、ビデオ・シーケンスを形成するピクチャの一部であるか、又はそのシーケンスを形成する可能性がある。
【0147】
[0185] 例えば、エンコーダ20は、同じピクチャの複数の参照ブロック又は他の複数のピクチャの異なるピクチャの複数の参照ブロックから、参照ブロックを選択し、参照ピクチャ(又は参照ピクチャ・インデックス)及び/又は参照ブロックの位置(x及びy座標)とカレント・ブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして動き推定ユニットに提供するように構成されることが可能である。このオフセットは、動きベクトル(motion vector,MV)とも呼ばれる。
【0148】
[0186] 動き補償ユニットは、例えば、インター予測パラメータを取得して、例えば受信して、インター予測パラメータに基づいて又は使用してインター予測を実行し、インター予測ブロック246を取得するように構成される。動き補償ユニットによって実行される動き補償は、動き推定を通じて決定された動き/ブロック・ベクトルに基づいて、予測ブロックを抽出又は生成することを含む可能性があり、サブ・ピクセル精度で補間を実行することを更に含む可能性がある。補間フィルタリングは、既知のピクセル・サンプルから追加のピクセル・サンプルを生成する可能性があり、従って、ピクチャ・ブロックをコーディングするために使用されることが可能な候補予測ブロックの量を潜在的に増加させる可能性がある。カレント・ピクチャ・ブロックのPUに対応する動きベクトルを受信すると、動き補償ユニットは、参照ピクチャ・リストの1つの中で動きベクトルが指し示す予測ブロックを突き止めることができる。
【0149】
[0187] 動き補償ユニットは、ビデオ・スライスのピクチャ・ブロックを復号化する際に、ビデオ・デコーダ30によって使用するために、ブロック及びビデオ・スライスに関連付けられたシンタックス要素を更に生成する可能性がある。スライス及びそれぞれのシンタックス要素に加えて、又はその代替として、タイル・グループ及び/又はタイル及びそれぞれのシンタックス要素が生成又は使用される可能性がある。
【0150】
[0188] アドバンスト動きベクトル予測(advanced motion vector prediction,AMVP)モードの動きベクトル候補リストを取得するプロセスにおいて、代替として動きベクトル候補リストに追加されことが可能な動きベクトル(motion vector,MV)は、カレント・ブロックの空間的に近傍のピクチャ・ブロックのMVと、カレント・ブロックの時間的に近傍のピクチャ・ブロックのMVとを含む。空間的に近傍のピクチャ・ブロックのMVは、カレント・ブロックの左候補ピクチャ・ブロックのMVと、カレント・ブロックの上候補ピクチャ・ブロックのMVとを含む可能性がある。例えば、
図4は、本件出願の実施形態による候補ピクチャ・ブロックの一例の概略図である。
図4に示されるように、左候補ピクチャ・ブロックのセットは{A0,A1}を含み、上候補ピクチャ・ブロックのセットは{B0,B1,B2}を含み、時間的に近傍の候補ピクチャ・ブロックのセットは{C,T}を含む。これら3つのセットは全て、代替案として動きベクトル候補リストに追加することが可能である。しかしながら、既存のコーディング規格では、AMVPの動きベクトル候補リストの最大長は2である。従って、高々2つのピクチャ・ブロックのMVが、3つのセットから、指定された順序で決定され、動きベクトル候補リストに追加されることを必要とする。その順番は以下のようにしてもよい:カレント・ブロックの左の候補ピクチャ・ブロックのセット{A0,A1}が優先的に考慮され(ここで、最初にA0が考慮され、A0が利用できない場合に、次いでA1が考慮される);次いで、カレント・ブロックの上の候補ピクチャ・ブロックのセット{B0,B1,B2}が考慮され(ここで、最初にB0が考慮され、B0が利用できない場合に、次いでB1が考慮され、B1が利用できない場合に、最後にB2が考慮される);そして最後に、カレント・ブロックの時間的に近傍の候補ピクチャ・ブロックのセット{C,T}が考慮される(ここで、最初にTが考慮され、Tが利用できない場合に、次いでCが考慮される)。
【0151】
[0189] 動きベクトル候補リストが得られた後に、レート歪みコスト(rate distortion cost,RDコスト)に基づいて、動きベクトル候補リストの中から最適MVが決定され、最小のRDコストを伴う動きベクトル候補が、カレント・ブロックの動きベクトル予測子(motion vector predictor,MVP)として使用される。レート歪コストは、以下の式に従って計算される:
J=SAD+λR
[0190] Jは、RDコストを表し、SADは、予測ブロックのピクセル値とカレント・ブロックのピクセル値との間で、動きベクトル候補に基づく動き推定によって得られる絶対差の合計(sum of absolute differences,SAD)を表し、Rは、ビット・レートを表し、λはラグランジュ乗数を表す。
【0152】
[0191] エンコーダ側は、動きベクトル候補リスト内の決定されたMVPのインデックスを、デコーダ側に転送する。更に、カレント・ブロックの実際の動きベクトルを得るために、MVP中心の近傍領域で動き探索が実行される。エンコーダ側は、MVPと実際の動きベクトルとの間の動きベクトル差(motion vector difference,MVD)を計算し、MVDをデコーダ側へ転送する。デコーダ側は、インデックスを解析し、インデックスに基づいて、動きベクトル候補リスト内の対応するMVPを見出し、MVDを解析し、MVDをMVPに加えて、カレント・ブロックの実際の動きベクトルを取得する。
【0153】
[0192] マージ(Merge)モードで候補動き情報リストを取得するプロセスにおいて、代替として候補動き情報リストに追加されることが可能な動き情報は、カレント・ブロックの空間的に近傍のピクチャ・ブロック又は時間的に近傍のピクチャ・ブロックの動き情報を含む。空間的に近傍のピクチャ・ブロック及び時間的に近傍のピクチャ・ブロックは、
図4に示すようなものであってもよい。候補動き情報リスト内の空間的ピクチャ・ブロックに対応する候補動き情報は、5つの空間的に近傍のブロック(A0,A1,B0,B1, B2)から得られる。空間的に近傍のブロックが利用できない場合、又はイントラ・フレーム予測モードである場合、空間的に近傍のブロックの動き情報は候補動き情報リストに追加されない。参照フレームのピクチャ・オーダー・カウント(picture order count,POC)とカレント・フレームのピクチャ・オーダー・カウント(picture order count,POC)とに基づいて、参照フレームの対応する位置におけるブロックのMVがスケーリングされた後に、カレント・ブロックの時間的な候補動き情報が取得される。先ず、参照フレーム内の位置Tにおけるブロックは利用可能であるかどうかが判定される。利用可能でなないならば、位置Cにおけるブロックが選択される。候補動き情報リストが得られた後に、RDコストに基づいて、候補動き情報リストから、カレント・ブロックの動き情報として、最適な動き情報が決定される。エンコーダ側は、候補動き情報リストにおける最適動き情報の位置のインデックス値(マージ・インデックスとして示される)をデコーダ側へ送信する。
【0154】
[0193] エントロピー・コーディング
[0194] エントロピー符号化ユニット270は、エントロピー符号化アルゴリズム又は方式(例えば、可変長コーディング(variable length coding,VLC)方式、コンテキスト適応型VLC(context-adaptive VLC,CALVC)方式、算術コーディング方式、2値化、コンテキスト適応型2値算術コーディング(context-adaptive binary arithmetic coding,CABAC)、シンタックス・ベース・コンテキスト適応型2値算術コーディング(syntax-based context-adaptive binary arithmetic coding,SBAC)、確率区間分割エントロピー(probability interval partitioning entropy,PIPE)コーディング、又は別のエントロピー符号化方法又は技術)を、量子化済み残差係数209、インター予測パラメータ、イントラ予測パラメータ、ループ・フィルタ・パラメータ、及び/又はその他のシンタックス要素に適用して、例えば符号化されたビットストリーム21の形態で、出力端272を介して出力されることが可能な符号化されたピクチャ・データ21を取得し、その結果、ビデオ・デコーダ30等が復号化のためにパラメータを受信して使用できるようにする。符号化されたビットストリーム21は、ビデオ・デコーダ30に伝送されてもよいし、或いは、ビデオ・デコーダ30による後の伝送又は検索のためにメモリに格納されてもよい。
【0155】
[0195] ビデオ・エンコーダ20の他の構造的バリエーションが、ビデオ・ストリームを符号化するために使用されてもよい。例えば、非変換ベースのエンコーダ20は、幾つかのブロック又はフレームについて、変換処理ユニット206を使用せずに、残差信号を直接的に量子化することが可能である。別の実装において、エンコーダ20は、量子化ユニット208と逆量子化ユニット210とを単一のユニットに結合させてもよい。
【0156】
[0196] デコーダ及び復号化方法
[0197]
図3に示されるように、ビデオ・デコーダ30は、例えば、エンコーダ20によって符号化された符号化ピクチャ・データ21(例えば、符号化されたビットストリーム21)を受信して、復号化されるピクチャ331を取得するように構成される。符号化されたピクチャ・データ又はビットストリームは、符号化されたピクチャ・データを復号化するための情報、例えば、符号化されたビデオ・スライス(及び/又はタイル・グループ又はタイル)のピクチャ・ブロックを表すデータ、及び関連するシンタックス要素を含む。
【0157】
[0198]
図3の例では、デコーダ30は、エントロピー復号化ユニット304と、逆量子化ユニット310と、逆変換処理ユニット312と、再構成ユニット314(例えば、加算器314)と、ループ・フィルタ320と、復号化済みピクチャ・バッファ(DBP)330と、モード適用ユニット360と、インター予測ユニット344と、イントラ予測ユニット354とを含む。インター予測ユニット344は、動き補償ユニットであってもよいし、それを含んでもよい。幾つかの例において、ビデオ・デコーダ30は、
図2に示すビデオ・エンコーダ100を参照して説明した符号化プロセスと概ね逆の復号化プロセスを実行することが可能である。
【0158】
[0199] エンコーダ20に関して説明されたように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループ・フィルタ220、復号化済みピクチャ・バッファDPB230、インター予測ユニット344、及びイントラ予測ユニット354もまた、ビデオ・エンコーダ20の「内蔵デコーダ」を形成する。従って、逆量子化ユニット310は逆量子化ユニット110と機能的に同一であってもよく、逆変換処理ユニット312は逆変換処理ユニット122と機能的に同一であってもよく、再構成ユニット314は再構成ユニット214と機能的に同一であってもよく、ループ・フィルタ320はループ・フィルタ220と機能的に同一であってもよく、復号化済みピクチャ・バッファ330は復号化済みピクチャ・バッファ230と機能的に同一であってもよい。従って、ビデオ・エンコーダ20のそれぞれのユニット及び機能について行われた説明は、ビデオ・デコーダ30のそれぞれのユニット及び機能にも相応に適用可能である。
【0159】
[0200] エントロピー復号化
[0201] エントロピー復号化ユニット304は、ビットストリーム21(又は一般に、符号化されたピクチャ・データ21)を解析し、例えば、符号化されたピクチャ・データ21に対して、エントロピー復号化を実行して、量子化された係数309及び/又は復号化されたコーディング・パラメータ(
図3には図示されていない)、例えば、インター予測パラメータ(例えば、参照ピクチャ・インデックス及び動きベクトル)、イントラ予測パラメータ(例えば、イントラ予測モード又はインデックス)、変換パラメータ、量子化パラメータ、ループ・フィルタ・パラメータ、及び/又はその他のシンタックス要素の何れか又は全て、を取得するように構成されている。エントロピー復号化ユニット304は、エンコーダ20のエントロピー符号化ユニット270に関して説明したような符号化方式に対応する復号化アルゴリズム又は方式を適用するように構成されることが可能である。エントロピー復号化ユニット304は、更に、インター予測パラメータ、イントラ予測パラメータ、及び/又はその他のシンタックス要素を、モード適用ユニット360に提供し、他のパラメータをデコーダ30の他のユニットに提供するように構成されることが可能である。ビデオ・デコーダ30は、ビデオ・スライス・レベル及び/又はビデオ・ブロック・レベルでシンタックス要素を受信することが可能である。スライス及びそれぞれのシンタックス要素に加えて、又はその代替として、タイル・グループ及び/又はタイル及びそれぞれのシンタックス要素が受信又は使用されることが可能である。
【0160】
[0202] 逆量子化
[0203] 逆量子化ユニット310は、量子化パラメータ(quantization parameters,QPs)(又は一般的に、逆量子化に関連する情報)及び量子化された係数を、符号化されたピクチャ・データ21から(例えば、エントロピー復号化ユニット304による構文解析及び/又は復号化によって)受信し、量子化パラメータに基づいて、復号化された量子化された係数309に対して逆量子化を実行して、変換係数311とも呼ばれる可能性のある量子化解除された係数311を取得するように構成されていてもよい。逆量子化プロセスは、量子化の程度、及び同様に、適用されるべき逆量子化の程度を決定するために、ビデオ・スライス内の各ビデオ・ブロックに対してビデオ・エンコーダ20によって決定された量子化パラメータを使用することを含む可能性がある。
【0161】
[0204] 逆変換
[0205] 逆変換処理ユニット312は、変換係数311とも呼ばれる逆量子化された係数311を受信し、逆量子化された係数311に変換を適用して、サンプル・ドメインにおける再構成された残差ブロック213を取得するように構成されることが可能である。再構成された残差ブロック213は、変換ブロック313と言及される場合もある。変換は、逆変換、例えば、逆DCT、逆DST、逆整数変換、又は、概念的に類似の逆変換処理である可能性がある。逆変換処理ユニット312は、(例えば、エントロピー復号化ユニット304による解析及び/又は復号化によって)符号化されたピクチャ・データ21から変換パラメータ又は対応する情報を受信して、逆量子化された係数311に適用されるべき変換を決定するように更に構成されていてもよい。
【0162】
[0206] 再構成
[0207] 再構成ユニット314(例えば、加算器314)は、再構成された残差ブロック313を予測ブロック365に追加して、サンプル・ドメインにおける再構成されたブロック315を、例えば再構成された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することによって、取得するように構成されている。
【0163】
[0208] フィルタリング
[0209] (コーディング・ループ内又はコーディング・ループ後の何れかにおける)ループ・フィルタ・ユニット320は、再構成されたブロック315をフィルタリングして、フィルタリングされたブロック321を取得し、ピクセル遷移を滑らかにしたり、或いはビデオ品質を改善したりするように構成されている。ループ・フィルタ・ユニット320は、デブロッキング・フィルタ、サンプル適応オフセット(sample-adaptive offset,SAO)フィルタ、又は、1つ以上の他のフィルタ、例えば、適応ループ・フィルタ(adaptive loop filter,ALF)、ノイズ抑制フィルタ(noise suppression filter,NSF)、又はそれらの任意の組み合わせのような1つ以上のループ・フィルタを含むことが可能である。一例では、ループ・フィルタ・ユニット220は、デブロッキング・フィルタ、SAOフィルタ、及びALFフィルタを含む可能性がある。フィルタリング・プロセスの順序は、デブロッキング・フィルタ、SAOフィルタ、そしてALFフィルタであってもよい。別の例では、クロミナンス・スケーリングを用いるルミナンス・マッピング(luma mapping with chroma scaling,LMCS)と呼ばれるプロセス(即ち、適応イン・ループ・リシェーパ)が追加される。このプロセスはデブロッキングの前に実行される。別の例では、デブロッキング・フィルタ・プロセスは、内部サブ・ブロック・エッジ、例えば、アフィン・サブ・ブロック・エッジ、ATMVPサブ・ブロック・エッジ、サブ・ブロック変換(sub-block transform,SBT)エッジ、及びイントラ・サブ・パーティション(intra sub-partition,ISP)エッジにも適用される可能性がある。ループ・フィルタ・ユニット320は、
図3ではループ・フィルタであるとして示されているが、他の構成では、ループ・フィルタ・ユニット320は、ポスト・ループ・フィルタとして実装されてもよい。
【0164】
[0210] 復号化済みピクチャ・バッファ
[0211] ピクチャの復号化されたビデオ・ブロック321は、次いで、復号化済みピクチャ・バッファ330に格納され、復号化済みピクチャ・バッファ330は、他のピクチャに対する後続の動き補償のため及び/又はそれぞれの出力表示のための参照ピクチャとして、復号化されたピクチャ331を格納する。
【0165】
[0212] デコーダ30は、復号化されたピクチャ311を、例えば出力端312を介して、ユーザーに提示したり又は表示したりするために出力するように構成されている。
【0166】
[0213] 予測
[0214] インター予測ユニット344は、インター予測ユニット244(特に、動き補償ユニット)と機能的に同一であってもよく、イントラ予測ユニット354は、インター予測ユニット254と機能的に同一であってもよく、符号化されたピクチャ・データ21から受信したパーティション化及び/又は予測パラメータ又はそれぞれの情報に基づいて(例えば、エントロピー復号化ユニット304による解析及び/又は復号化によって)、分割又はパーティション化決定及び予測を実行する。モード適用ユニット360は、予測ブロック365を取得するために、再構成されたピクチャ、ブロック、又はそれぞれのサンプル(フィルタリングされた又はフィルタリングされていないもの)に基づいて、ブロックごとに予測(イントラ又はインター予測)を実行するように構成されていてもよい。
【0167】
[0215] ビデオ・スライスがイントラ・コーディングされた(intra coded,I)スライスとしてコーディングされている場合、モード適用ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード、及びカレント・ピクチャの以前に復号化されたブロックからのデータに基づいて、カレント・ビデオ・スライスのピクチャ・ブロックに対する予測ブロック365を生成するように構成される。ビデオ・ピクチャがインター・コーディングされた(例えば、B又はP)スライスとしてコーディングされている場合、モード・アプリケーション・ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、エントロピー復号化ユニット304から受信した動きベクトル及びその他のシンタックス要素に基づいて、カレント・ビデオ・スライスのビデオ・ブロックに対する予測ブロック365を生成するように構成される。インター予測の場合、予測ブロックは、参照ピクチャ・リスト内の参照ピクチャから生成されてもよい。ビデオ・デコーダ30は、DPB 330に格納された参照ピクチャに基づいてデフォルトの構築技術を使用することによって、参照フレーム・リスト:リスト0及びリスト1を構築することが可能である。スライス(例えば、ビデオ・スライス)に加えて又はそれに代えて、タイル・グループ(例えば、ビデオ・タイル・グループ)及び/又はタイル(例えば、ビデオ・タイル)を使用する実施形態に対して又は実施形態によって、同じ又は類似のプロセスが適用されてもよく、例えば、ビデオは、I、P又はBタイル・グループ及び/又はタイルを使用することによってコーディングされてもよい。
【0168】
[0216] モード・アプリケーション・ユニット360は、動きベクトル又はその他のシンタックス要素を解析することによって、カレント・ビデオ・スライスのビデオ・ブロックの予測情報を決定し、予測情報を使用して、復号化されるカレント・ビデオブロックの予測ブロックを生成するように構成される。例えば、モード適用ユニット360は、受信したシンタックス要素の一部を使用して、ビデオ・スライスのビデオ・ブロックを個ディングするために使用される予測モード(例えば、イントラ予測又はインター予測)、インター予測スライス・タイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスの1つ以上の参照ピクチャ・リストの構成情報、スライスの各インター・コーディングされるビデオ・ブロックの動きベクトル、スライスの各インター・コーディングされるビデオ・ブロックのインター予測ステータス、及び、カレント・ビデオ・スライスのビデオ・ブロックを復号化するためのその他の情報を決定する。スライス(例えば、ビデオ・スライス)に加えて又はそれに代えて、タイル・グループ(例えば、ビデオ・タイル・グループ)及び/又はタイル(例えば、ビデオ・タイル)を使用する実施形態に対して又は実施形態によって、同じ又は類似のプロセスを適用することが可能であり、例えば、ビデオは、I、P又はBタイル・グループ及び/又はタイルを使用することによってコーディングされることが可能である。
【0169】
[0217] 実施形態では、
図3のビデオ・エンコーダ30は、スライス(ビデオ・スライスとも呼ばれる)を使用することによってピクチャをパーティション化及び/又は復号化するように更に構成されていてもよく、ここで、ピクチャは、1つ以上のスライス(典型的には、オーバーラップしていないもの)を使用することによってパーティション化又は復号化されることが可能である。各スライスは、1つ以上のブロック(例えば、CTU)又は1つ以上のブロックのグループ(例えば、H.265/HEVC/VVC規格におけるタイル及びVVC規格におけるブリック)を含む可能性がある。
【0170】
[0218] 実施形態では、
図3に示されるビデオ・デコーダ30は、スライス/タイル・グループ(ビデオ・タイル・グループとも呼ばれる)及び/又はタイル(ビデオ・タイルとも呼ばれる)を使用することによってピクチャをパーティション化及び/又は復号化するように更に構成されることが可能である。ピクチャは、1つ以上のスライス/タイル・グループ(典型的には、オーバーラップしていないもの)を使用することによってパーティション化又は復号化されてもよく、各スライス/タイル・グループは、1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含んでもよい。各タイルは、矩形形状のものであってよく、1つ以上のブロック(例えば、CTU)、例えば、完全なブロック又は部分的なブロックを含んでもよい。
【0171】
[0219] コーディングされたピクチャ・データ21を復号化するために、ビデオ・デコーダ30の他のバリエーションが使用される可能性がある。例えば、デコーダ30は、ループ・フィルタ・ユニット320なしに出力ビデオ・ストリームを生成する可能性がある。例えば、非変換ベースのデコーダ30は、幾つかのブロック又はフレームについて、逆変換処理ユニット312を使用せずに、残差信号を直接的に逆量子化することが可能である。別の実装において、ビデオ・デコーダ30は、逆量子化ユニット310と逆変換処理ユニット312とを単一のユニットに組み合わせてもよい。
【0172】
[0220] エンコーダ20及びデコーダ30において、カレント・ステップの処理結果は更に処理されて、次のステップに出力されてもよい、ということが理解されるべきである。例えば、補間フィルタリング、動きベクトル導出、又はループ・フィルタリングの後に、クリップ(clip)又はシフト(shift)のような更なる処理が、補間フィルタリング、動きベクトル導出、又はループ・フィルタリングの処理結果に対して実行されてもよい。
【0173】
[0221] カレント・ブロックの導出された動きベクトル(アフィン・モードにおける制御ポイント動きベクトル、アフィン、平面、及びATMVPモードにおけるサブ・ブロック動きベクトル、時間的動きベクトルなどを含むが、これらに限定されない)に対して更なる演算が適用されてもよい、ということに留意すべきである。例えば、動きベクトルの値は、動きベクトルの表現ビットに基づいて、予め定義された範囲に制約される。動きベクトルの表現ビットがbitDepthである場合、レンジは、
-2^(bitDepth-1) ないし 2^(bitDepth-1)-1
であり、ここで、“^”は指数を表す。例えば、bitDepthが16に設定されている場合、レンジは、-32768 ないし 32767 であり、或いは、bitDepthが18に設定されている場合、レンジは、-131072 ないし 131071である。例えば、導出される動きベクトル(例えば、1つの8×8ブロック内の4×4サブ・ブロックのMV)の値は、4×4サブ・ブロックのMVの整数部の間の最大差がNピクセルを超えないように、例えば、1ピクセルを超えないように制約される。本件では、bitDepthに基づいて動きベクトルを制約するための2つの方法が提供される。
【0174】
[0222] 実施形態は主にビデオ・コーディングに基づいて説明されているが、コーディング・システム10、エンコーダ20、及びデコーダ30の実施形態、並びに本件で説明される他の実施形態は、静止ピクチャ処理又はコーディング、即ち、ビデオ・コーディングにおける何らかの先行又は連続するピクチャとは独立した個々のピクチャの処理又はコーディングのために構成されてもよい、ということに留意すべきである。一般に、ピクチャ処理が単一のピクチャ17に限定される場合には、インター予測ユニット244(エンコーダ)及び344(デコーダ)だけは利用できない可能性がある。ビデオ・エンコーダ20及びビデオ・デコーダ30の他の全ての機能(ツール又は技術とも呼ばれるもの)は、静止ピクチャ処理に等しく使用される可能性があり、例えば、残差計算204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、パーティション化262/362、イントラ予測254/354、及び/又はループ・フィルタリング220/320、並びにエントロピー符号化270及びエントロピー復号化304などである。
【0175】
[0223]
図5は、本件出願の実施形態によるビデオ・コーディング・デバイス500の例示的なブロック図である。ビデオ・コーディング・デバイス500は、本件明細書で説明されるような開示される実施形態を実装することに適している。実施形態では、ビデオ・コーディング・デバイス500は、
図1aのビデオ・デコーダ30のようなデコーダ、或いは、
図1aのビデオ・エンコーダ20のようなエンコーダであってもよい。
【0176】
[0224] ビデオ・コーディング・デバイス500は、データを受信するための入口ポート510(又は入力ポート510)及び受信ユニット(receiver unit,Rx)520;データを処理するためのプロセッサ、論理ユニット、又は中央処理ユニット(central processing unit,CPU)530(例えば、本件におけるプロセッサ530は、ニューラル・ネットワーク処理ユニット530であってもよい);データを送信するための送信ユニット(transmitter unit,Tx)540及び出口ポート550(又は出力ポート550);及び データを記憶するためのメモリ560を含む。ビデオ・コーディング・デバイス500は、光信号又は電気信号の入口又は出口のために、入口ポート510、受信ユニット520、送信ユニット540、及び出口ポート550に結合された光-電気(optical-to-electrical,OE)コンポーネント及び電気-光(electrical-to-optical,EO)コンポーネントを含むことも可能である。
【0177】
[0225] プロセッサ530は、ハードウェア及びソフトウェアによって実現される。プロセッサ530は、1つ以上のプロセッサ・チップ、コア(例えば、マルチ・コア・プロセッサ)、FPGA、ASIC、及びDSPとして実現されることが可能である。プロセッサ530は、入口ポート510、受信ユニット520、送信ユニット540、出口ポート550、及びメモリ560と通信する。プロセッサ530は、コーディング・モジュール570(例えば、ニューラル・ネットワーク・ベースのコーディング・モジュール570)を含む。コーディング・モジュール570は、上述されている開示の実施形態を実現する。例えば、コーディング・モジュール570は、様々なコーディング演算を実装、処理、準備、又は提供する。従って、コーディング・モジュール570は、ビデオ・コーディング・デバイス500の機能に対してかなりの改善をもたらし、ビデオ・コーディング・デバイス500の異なる状態への切り替えに影響を及ぼす。或いは、コーディング・モジュール570は、メモリ560に記憶され且つプロセッサ530によって実行される命令として実現される。
【0178】
[0226] メモリ560は、1つ以上のディスク、テープ・ドライブ、及びソリッド・ステート・ドライブを含む可能性があり、オーバー・フロー・データ記憶デバイスとして使用されて、そのようなプログラムが実行のために選択される場合にプログラムを記憶し、また、プログラムの実行中に読み込まれた命令及びデータを記憶することが可能である。メモリ560は、揮発性及び/又は不揮発性であってよく、リード・オンリー・メモリ(read-only memory,ROM)、ランダム・アクセス・メモリ(random access memory,RAM)、ターナリー・コンテンツ・アドレス指定可能メモリ(ternary content-addressable memory,TCAM)、及び/又はスタティック・ランダム・アクセス・メモリ(static random-access memory,SRAM)であってもよい。
【0179】
[0227]
図6は、本件出願の実施形態による装置600の例示的なブロック図である。装置600は、
図1aのソース・デバイス12及びデスティネーション・デバイス14の何れか一方又は両方として使用することが可能である。
【0180】
[0228] 装置600のプロセッサ602は、中央処理ユニットである可能性がある。代替的に、プロセッサ602は、現在存在する又は今後開発される、情報を演算又は処理することが可能な他の任意のタイプのデバイス、又は複数のデバイスである可能性がある。開示される実装は、図示されるプロセッサ602のような単一のプロセッサを使用することによって実施されることが可能であるが、複数のプロセッサを使用することによって、速度及び効率における利点を達成することが可能である。
【0181】
[0229] デバイス600内のメモリ604は、ある実装では、リード・オンリー・メモリ(ROM)デバイス又はランダム・アクセス・メモリ(RAM)デバイスである可能性がある。他の任意の適切なタイプの記憶デバイスがメモリ604として使用される可能性がある。メモリ604は、バス612を介してプロセッサ602によってアクセスされるコード及びデータ606を含むことが可能である。メモリ604は、オペレーティング・システム608及びアプリケーション610を更に含むことが可能である。アプリケーション610は、本件明細書で説明されている方法をプロセッサ602が実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーション610は、アプリケーション1ないしNを含み、本件明細書で説明されている方法を実行するビデオ・コーディング・アプリケーションを更に含む可能性がある。
【0182】
[0230] デバイス600は、ディスプレイ618のような1つ以上の出力デバイスを更に含む可能性がある。ディスプレイ618は、一例では、タッチ入力を感知するように動作することが可能なタッチ・センシティブ要素をディスプレイに組み合わせたタッチ・センシティブ・ディスプレイであってもよい。ディスプレイ618は、バス612を介してプロセッサ602に結合されてもよい。
【0183】
[0231] 本件明細書では単一のバスとして描かれているが、デバイス600のバス612は、複数のバスを含む可能性がある。更に、セカンダリ・ストレージは、装置600の別の構成要素に直接的に結合されてもよいし、又はネットワークを介してアクセスされてもよく、メモリ・カードのような単一の統合されたユニット又は複数のメモリ・カードのような複数のユニットを含んでもよい。従って、装置600は、多種多様な構成で実施されることが可能である。
【0184】
[0232] 本件出願の実施形態は、ニューラル・ネットワークの適用に関連する。以下、理解を容易にするために、先ず、本件出願の実施形態で使用される幾つかの名詞又は用語を説明する。名詞又は用語は、本発明の内容の一部としても使用される。
【0185】
[0233] (1)ニューラル・ネットワーク
[0234] ニューラル・ネットワーク(neural network,NN)は、機械学習モデルである。ニューラル・ネットワークは、ニューロンを含む可能性がある。ニューロンは、xs及び切片1を入力として使用する演算ユニットであってもよく、ここで、演算ユニットの出力は次のようであってもよい:
【0186】
【数1】
[0235] s=1,2,...,又はnであり、nは1より大きな自然数であり、Wsはxsの重みであり、bはニューロンのバイアスである。fは、ニューロンの活性化関数(activation function)であり、ニューラル・ネットワークに非線形特徴を導入して、ニューロンにおける入力信号を出力信号に変換するために使用される。活性化関数の出力信号は、次の畳み込み層の入力として使用することが可能である。活性化関数はシグモイド関数であってもよい。ニューラル・ネットワークは、複数の単一ニューロンをともに接続することによって形成されるネットワークである。具体的には、あるニューロンの出力が別のニューロンの入力となることが可能である。各ニューロンの入力は、前の層の局所受容野(local receptive field)に接続されて、局所受容野の特徴を抽出することができる。局所受容野は、複数のニューロンを含む領域であってもよい。
【0187】
[0236] (2)ディープ・ニューラル・ネットワーク
[0237] ディープ・ニューラル・ネットワーク(deep neural network,DNN)は、多層ニューラル・ネットワークとも呼ばれ、複数の隠れ層を有するニューラル・ネットワークとして理解されてもよい。本件において、「複数の」についての特別な尺度基準はない。DNNは、異なる層の配置に基づいて分割され、DNNのニューラル・ネットワークは:入力層、隠れ層、出力層という3種類に分けられてもよい。一般的に、最初の層は入力層であり、最後の層は出力層であり、中央の層は隠れ層である。層は完全に接続される。具体的には、i番目の層のどのニューロンも、(i+1)番目の層の何らかのニューロンに確実に接続されている。DNNは複雑に見えるが、各層における作業の観点から言えば複雑ではない。簡単に言えば、DNNは次のような線型関係式で示される:
【0188】
【数2】
ここで、x
→は入力ベクトルであり、y
→は出力ベクトルであり、b
→はバイアス・ベクトルであり、Wはウェイト・マトリクス(係数とも呼ばれる)であり、α()は活性化関数である。各層では、このようなシンプルな演算だけが入力ベクトルx
→に対して実行されて、出力ベクトルy
→が取得される。DNNは多数の層を含むので、大量の係数W及び大量のオフセット・ベクトルb
→が存在する。DNNにおけるこれらのパラメータの定義は次のとおりである:係数Wを例として使用する。3層DNNにおいて、第2層の第4ニューロンから第3層の第2ニューロンへの線型係数は、W
3
24として定義される、ということが仮定される。上付き文字3は、係数Wが位置づけられる層を表し、下付文字は出力第 3 層インデックス 2 と入力第 2 層インデックス 4 に対応する。結論として、(L-1)番目の層のk番目のニューロンからL番目の層のj番目のニューロンへの係数は、W
L
jkとして定義される。入力層ではパラメータWが無い、ということに留意すべきである。ディープ・ニューラル・ネットワークでは、隠れ層が多いほど、現実世界における複雑なケースを記述する能力が高くなる。理論的には、より多くのパラメータを有するモデルは、より多くの複雑性及びより大きな「能力(capacity)」を有し、これは、疎モデルがより複雑な学習タスクを完了できることを意味する。ディープ・ニューラル・ネットワークの訓練は、ウェイト・マトリクスを学習するプロセスであり、訓練の最終目的は、訓練済みのディープ・ニューラル・ネットワークの全ての層のウェイト・マトリクス(複数の層におけるベクトルWによって形成されるウェイト・マトリクス)を取得することである。
【0189】
[0238] (3)畳み込みニューラル・ネットワーク
[0239] 畳み込みニューラル・ネットワーク(convolutional neuron network,CNN)は、畳み込み構造を有するディープ・ニューラル・ネットワークであり、深層学習(deep learning)アーキテクチャである。ディープ・ラーニング・アーキテクチャでは、機械学習アルゴリズムに従って、異なる抽象レベルで多層学習が実行される。ディープ・ラーニング・アーキテクチャとして、CNNはフィード・フォワード(feed-forward)人工神経網である。フィード・フォワード人工神経網の各ニューロンは、ニューラル・ネットワークに入力された画像に応答することができる。畳み込みニューラル・ネットワークは、畳み込み層及びプーリング層を含む特徴抽出器を含む。特徴抽出器はフィルタとして考えられてもよい。畳み込みプロセスは、学習可能なフィルタを使用して、入力ピクチャ又は畳み込み特徴マップ(feature map)に対して畳み込みを実行しているものとして考えられてもよい。
【0190】
[0240] 畳み込み層は、畳み込みニューラル・ネットワーク内にあるニューロン層であって、入力信号に対して畳み込み処理が実行されるものである。畳み込み層は、複数の畳み込み演算子を含む可能性がある。畳み込み演算子はカーネルとも呼ばれる。画像処理において、畳み込み演算子は、入力ピクチャ・マトリクス行列から特定の情報を抽出するフィルタとして機能する。畳み込み演算子は、本質的にはウェイト・マトリクスである可能性があり、ウェイト・マトリクスは、通常、予め定義されている。ピクチャに対して畳み込み演算を実行するプロセスにおいて、ウェイト・マトリクスは、通常、入力ピクチャにおいて水平方向に1ピクセル(又は、ストライド(stride)の値に依存して2ピクセル)の粒度でピクセルを処理するために使用され、ピクチャから特定の特徴を抽出する。ウェイト・マトリクスのサイズは、ピクチャのサイズに関連付けられるべきである。ウェイト・マトリクスの深度次元(depth dimension)は、入力ピクチャの深度次元と同じである、ということに留意すべきである。畳み込み演算の間に、ウェイト・マトリクスは入力ピクチャの深度全体に拡張される。従って、単一のウェイト・マトリクスによる畳み込みによって、単一の深度次元の畳み込み出力が生成される。しかしながら、多くの場合、単一のウェイト・マトリクスは使用されず、同じサイズ(行×列)の複数のウェイト・マトリクス、即ち複数の同じタイプの行列が適用される。ウェイト・マトリクスの出力は、畳み込みピクチャの深度次元を形成するためにスタックされる。本件における次元(dimension)は、前述の「複数」に基づいて決定されるものとして理解されてもよい。異なるウェイト・マトリクスを使用して、ピクチャから異なる特徴を抽出してもよい。例えば、あるウェイト・マトリクスはピクチャのエッジ情報を抽出するために使用され、別のウェイト・マトリクスはピクチャの特定の色を抽出するために使用され、別のウェイト・マトリクスはピクチャ内の不要なノイズをぼかすために使用される。複数のウェイト・マトリクスのサイズ(行×列)は同じである。同じサイズで複数のウェイト・マトリクスから抽出される特徴マップのサイズも同じであり、同じサイズの複数の抽出された特徴マップを組み合わせて、畳み込み演算の出力を形成する。これらのウェイト・マトリクスのウェイト値は、実際のアプリケーションにおける大量の学習によって取得されることを必要とする。訓練によって得られたウェイト値を含む各ウェイト・マトリクスは、畳み込みニューラル・ネットワークが正しい予測を行うように、入力ピクチャから情報を抽出するために使用されることが可能である。畳み込みニューラル・ネットワークが複数の畳み込み層を有する場合、通常、大量の一般的な特徴が、初期の畳み込み層で抽出される。一般的な特徴は低レベル特徴と呼ばれる場合もある。畳み込みニューラル・ネットワークの深度が増すにつれて、後続の畳み込み層で抽出される特徴はより複雑になり、例えば高レベルの意味的特徴(high-level semantic feature)になる。高レベルの意味的特徴を有する特徴は、解決されるべき問題に、より適用可能になる。
【0191】
[0241] 訓練パラメータの量は、通常、削減されることを必要とするので、プーリング層が、通常、畳み込み層の後に周期的に導入されることを必要としている。1つの畳み込み層の後に1つのプーリング層が続いてもよいし、或いは、複数の畳み込み層の後に1つ以上のプーリング層が続いてもよい。ピクチャ処理の間に、プーリング層はピクチャのスペース・サイズを縮小するだけのために使用される。プーリング層は、平均プーリング演算子及び/又は最大プーリング演算子を含み、入力ピクチャに対してサンプリングを実行して、小さなサイズのピクチャを取得することが可能である。平均プーリング演算子は、特定のレンジ内でピクチャ内のピクセル値を算出して、平均値を生成するために使用されることが可能である。平均値は、平均プーリングの結果として使用される。最大プーリング演算子は、特定のレンジ内で最大値を有するピクセルを、最大プーリング結果として選択するために使用されることが可能である。また、畳み込み層のウェイト・マトリクスのサイズがピクチャのサイズに関係付けられることを必要とするのと同様に、プーリング層の演算子もピクチャのサイズに関係付けられることを必要とする。プーリング層から出力される処理済みピクチャのサイズは、プーリング層に入力されるピクチャのサイズより小さくてもよい。プーリング層から出力されたピクチャの各ピクセルは、プーリング層に入力されたピクチャの対応するサブ・エリアの平均値又は最大値を表す。
【0192】
[0242] 畳み込み層/プーリング層で実行される処理の後でさえ、畳み込みニューラル・ネットワークは、依然として必要な出力情報を出力することができない。上述したように、畳み込み層/プーリング層は、特徴を抽出し、入力ピクチャによってもたらされるパラメータを低減するだけである。しかしながら、最終的な出力情報(必要なクラス情報又はその他の関連情報)を生成するために、畳み込みニューラル・ネットワークは、ニューラル・ネットワーク層を用いて、1つの必要なクラスの出力又は必要なクラス・グループの出力を生成することを必要とする。従って、ニューラル・ネットワーク層は、複数の隠れ層を含む可能性がある。複数の隠れ層に含まれるパラメータは、特定のタスク・タイプの関連する訓練データに基づく事前訓練によって取得されもよい。例えば、タスク・タイプは、画像認識、画像分類、及び超解像度画像再構成を含む可能性がある。
【0193】
[0243] オプションとして、ニューラル・ネットワーク層において、複数の隠れ層の後に、畳み込みニューラル・ネットワーク全体の出力層が続く。出力層は、カテゴリ・クロス・エントロピーに類似する損失関数を有し、損失関数は、具体的には、予測誤差を算出するために使用される。畳み込みニューラル・ネットワーク全体の順伝播が完了すると、逆伝播が開始され、上述した各層のウェイト値と偏差を更新して、畳み込みニューラル・ネットワークの損失、及び、出力層を用いて畳み込みニューラル・ネットワークにより出力された結果と理想的な結果との間の誤差を低減する。
【0194】
[0244] (4)リカレント・ニューラル・ネットワーク
[0245] リカレント・ニューラル・ネットワーク(recurrent neural network,RNN)は、シーケンス・データを処理するために使用される。従来のニューラル・ネットワーク・モデルは、入力層から始まり隠れ層に至り、そして出力層に至り、各層は完全に接続され、各層においてはノードは接続されない。この通常のニューラル・ネットワークは多くの問題を解決するが、それでも多くの問題に不十分である。例えば、文中の単語が予測されるべきである場合、通常、前の単語が使用されることを必要とし、なぜなら文中の隣接する単語は関連しているからである。RNNがリカレント・ニューラル・ネットワークと呼ばれる理由は、シーケンスの現在の出力がシーケンスの前の出力にも関連しているからである。具体的な表現形式は、ネットワークが以前の情報を記憶し且つ現在の出力の計算に以前の情報を適用するものである。具体的には、隠れ層のノードは接続され、隠れ層の入力は入力層の出力を含むだけでなく、前の時点の隠れ層の出力も含む。理論的には、RNNは任意の長さのシーケンス・データを処理することができる。RNNの訓練は、従来のCNNやDNNの訓練と同じである。誤差逆伝播アルゴリズムも使用されるが、相違点がある:RNNが拡張される場合、RNNのWのようなパラメータは共有される。この点は、前述の例で説明した従来のニューラル・ネットワークと相違する。また、勾配降下アルゴリズムを使用する際に、各ステップにおける出力は、現在のステップにおけるネットワークに対してだけでなく、幾つかの前のステップにおけるネットワーク状態にも依存している。この学習アルゴリズムは、通時的逆伝播(Back propagation Through Time,BPTT)アルゴリズムと呼ばれる。
【0195】
[0246] 畳み込みニューラル・ネットワークが利用可能である場合に、なぜリカレント・ニューラル・ネットワークが依然として必要であるのか? 理由は簡単である。畳み込みニューラル・ネットワークでは、要素は互いに独立しており、入力と出力も、猫と犬のように独立している、という前提が存在する。しかしながら、現実の世界では、複数の要素は相互に関連している。例えば、株価は時間とともに変化する。別の例として、「私は旅行が好きで、一番好きな場所は雲南省(Yunnan)です。将来、機会があれば(_)に行きます。」と言ったとする。ここで、人々は、その人が「雲南」に行くであろうというが分かるはずである。人々は文脈から推論を行うからである。しかしながら、機械はそれをどのように行うであろうか? そこで、RNNが登場する。RNNは、機械が人間のように記憶できるようになるように意図されている。そのため、RNNの出力は、現在の入力情報と過去の記憶情報に依存する必要がある。
【0196】
[0247] (5)損失関数
[0248] ディープ・ニューラル・ネットワークを訓練するプロセスにおいて、ディープ・ニューラル・ネットワークの出力は、実際に予想される予測子にできるだけ近いことが期待されるので、ネットワークの現在の予測子は、実際に予想される目標値と比較されることが可能であり、次いで、予測された値と目標値との間の差分に基づいて、ニューラル・ネットワークの各層におけるウェイト・ベクトルが更新される(確かに、最初の更新の前に、通常、初期化プロセスがあり、具体的には、ディープ・ニューラル・ネットワークの各層に対してパラメータが予め設定される)。例えば、ネットワークの予測子が大きい場合に、ウェイト・ベクトルは、予測される値を小さくするように調整されるようなことが、ディープ・ニューラル・ネットワークが実際に予想される目標値、又は実際に予想される目標値に極めて近い値、を予測できるようになるまで行われる。そのため、「予測子と目標値の間の差分を比較によってどのように求めるか」ということが、事前に定められていることを必要とする。これが、損失関数(loss function)或いは目的関数(objective function)である。損失関数と目的関数は、予測子と目標値の間の差分を測定される重要な式である。損失関数を例として使用する。損失関数のより大きな出力値(損失)は、より大きな差分を示す。従って、ディープ・ニューラル・ネットワークの訓練は、損失をできるだけ十分に小さくするプロセスである。
【0197】
[0249] (6)バック・プロパゲーション・アルゴリズム
[0250] 畳み込みニューラル・ネットワークは、超解像モデルの再構成誤差損失が、より小さくなるように、誤差逆伝播(back propagation,BP)アルゴリズムに従って、訓練プロセスにおいて、初期の超解像モデルのパラメータ値を補正することができる。具体的には、誤差損失が出力に生じるまで、入力信号が順方向に伝搬され、初期の超解像モデルのパラメータは、逆伝播誤差損失情報に基づいて更新されて、誤差損失を収束させる。逆伝播アルゴリズムは、超解像モデルの最適なパラメータ、例えばウェイト行列を求めるように意図された、誤差損失を中心とした逆伝播運動である。
【0198】
[0251] (7)敵対的生成ネットワーク
[0252] 敵対的生成ネットワーク(generative adversarial network,GAN)は、ディープ・ラーニング・モデルである。モデルは、少なくとも2つのモジュールを含み:一方のモジュールは生成モデル(Generative Model)であり、他方のモジュールは識別モデル(Discriminative Model)である。2つのモジュールは、互いにゲームを通じて学習し、より良い出力を生成するために使用される。生成モデルと識別モデルは両方ともニューラル・ネットワークであるとすることが可能であり、具体的には、ディープ・ニューラル・ネットワーク又は畳み込み・ニューラル・ネットワークであってもよい。GANの基本原理は次の通りである:ピクチャを生成するためのGANを一例として使用する。2つのネットワーク:G(Generator)とD(Discriminator)が存在することを仮定する。Gはピクチャを生成するネットワークである。Gはランダムなノイズzを受け取り、そのノイズに基づいてピクチャを生成し、ここで、ピクチャはG(z)として示される。Dは、ピクチャが「本物(real)」かどうかを判別するために使用されるネットワークである。Dの入力パラメータはxであり、xはピクチャを表し、出力D(x)は、xが本物のピクチャである確率を表す。D(x)の値が1である場合、それは、そのピクチャは100%本物であることを示す。D(x)の値が0である場合、それは、そのピクチャが本物であるはずはないことを示す。敵対的生成ネットワークを訓練するプロセスにおいて、生成ネットワークGの目的は、識別ネットワークDを欺けるほど、できるだけリアルなピクチャを生成することであり、識別ネットワークDの目的は、Gによって生成されたピクチャと本物のピクチャをできるだけ正確に識別することである。このように、GとDの間には、動的な「ゲーミング(gaming)」プロセス、具体的には、「敵対的生成的ネットワーク」における「敵対者」が存在する。最終的なゲーミングの結果は、理想的な状態では、Gは、本物のピクチャと区別することが困難なピクチャG(z)を生成することが可能であり、Dにとって、Gにより生成されたピクチャが本物であるかどうかを判別することは困難になり、具体的には、D(G(z))=0.5である。このようにして、優れた生成モデルGが得られ、これを用いてピクチャを生成することができる。
【0199】
[0253]
図7aは、本件出願の実施形態によるアプリケーション・シナリオの概略図である。
図7aに示されるように、アプリケーション・シナリオでは、デバイスはデータを取得し、取得したデータを圧縮し、次いで、圧縮されたデータを格納する。デバイスは、前述のソース・デバイス及びデスティネーション・デバイスの機能を統合している可能性がある。
【0200】
[0254] 1.デバイスが、データを取得する。
【0201】
[0255] 2.デバイスは、データを圧縮して、圧縮されたデータを取得する。
【0202】
[0256] 3.デバイスは、圧縮しデータを格納する。
【0203】
[0257] デバイスは、記憶スペースを節約するためにデータを圧縮する、ということが理解されるべきである。オプションとして、デバイスは、圧縮されたデータをアルバム又はクラウド・アルバムに格納することが可能である。
【0204】
[0258] 4.デバイスは、圧縮されたデータを解凍してデータを取得する。
【0205】
[0259]
図7bは、本件出願の実施形態によるアプリケーション・シナリオの概略図である。
図7bに示されるように、アプリケーション・シナリオでは、ソース・デバイスがデータを取得し、取得したデータを圧縮して圧縮されたデータを取得し、次いで、圧縮されたデータをデスティネーション・デバイスへ送信する。
【0206】
[0260] 本件出願の実施形態では、ソース・デバイスは、取得したデータを圧縮し、次いで、圧縮されたデータを、デスティネーション・デバイスへ送信することが可能である。これは、伝送帯域幅を削減することができる。
【0207】
[0261] 1.ソース・デバイスが、データを取得する。
【0208】
[0262] 2.ソース・デバイスは、データを圧縮して、圧縮されたデータを取得する。
【0209】
[0263] 3.ソース・デバイスは、圧縮されたデータをデスティネーション・デバイスへ送信する。
【0210】
[0264] ソース・デバイスは、データを圧縮し、次いで、データを伝送する。これは、伝送帯域幅を削減し、伝送効率を向上させることができる。
【0211】
[0265] 4.デスティネーション・デバイスは、圧縮されたデータを解凍してデータを取得する。
【0212】
[0266]
図8は、本件出願の実施形態による符号化及び復号化方法800のフローチャートである。符号化及び復号化方法800は、エンコーダ及びデコーダによって実行することが可能である。符号化及び復号化方法800は、一連のステップ又は動作として説明される。符号化及び復号化方法800は、様々なシーケンスで、及び/又は同時に実行されてもよく、
図8に示される実行シーケンスに限定されない、ということが理解されるべきである。
図8に示されるように、符号化及び復号化方法800は、以下のステップを含む可能性がある。
【0213】
[0267] ステップ801:エンコーダが、符号化される対象データを取得する。
【0214】
[0268] 例えば、エンコーダは、符号化される対象データxを取得する。
【0215】
[0269] ステップ802:エンコーダは、符号化される対象データを第1の符号化ネットワークに入力して、ターゲット・パラメータを取得する。
【0216】
[0270] ターゲット・パラメータは、第2の符号化ネットワークの全部又は一部の畳み込み及び非線型活性化のためのパラメータ・ウェイトであってもよい。
【0217】
[0271] オプションとして、第1の符号化ネットワークは、畳み込みカーネル生成器(畳み込みグループ又は全結合グループ(fully connected group))を含む可能性がある。畳み込みカーネル生成器は、符号化される対象データに基づいて、ターゲット・パラメータを生成するように構成されている。
【0218】
[0272] 例えば、エンコーダは、符号化される対象データxを、第1の符号化ネットワークに入力して、ターゲット・パラメータθgを取得する。
【0219】
[0273] ステップ803:エンコーダは、ターゲット・パラメータに基づいて、第2の符号化ネットワークを構築する。
【0220】
[0274] 例えば、エンコーダは、ターゲット・パラメータθgに基づいて、第2の符号化ネットワークga(x;θg)を構築する。
【0221】
[0275] ステップ804:エンコーダは、符号化される対象データを、第2の符号化ネットワークに入力して、第1の特徴を取得する。
【0222】
[0276] 第1の特徴は、符号化される対象データを再構成するために使用され、第1の特徴は、コンテンツ特徴と呼ばれる場合もある。例えば、第1の特徴は、符号化される対象データxの3次元特徴マップであってもよい。
【0223】
[0277] 例えば、エンコーダは、符号化される対象データxを、第2の符号化ネットワークga(x;θg)に入力して、第1の特徴yを取得する。yは、y=ga(x;θg)を満たす。
【0224】
[0278] ステップ805:エンコーダは、第1の特徴を符号化して、符号化されたビットストリーム(即ち、復号化される対象のビットストリーム)を取得する。
【0225】
[0279] 可能な実装において、エンコーダが、第1の特徴を符号化して、符号化されたビットストリームを取得することは:エンコーダが、第1の特徴を丸めて第1の特徴の整数値を取得し、次いで、第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し、次に、第1の特徴の整数値についての推定された確率分布に基づいて、第1の特徴の整数値に関するエントロピー符号化を実行して、符号化されたビットストリームを取得することを含む可能性がある。第1の特徴の整数値は、第1の値特徴(first value feature)又はコンテンツ丸め特徴(content rounding feature)と呼ばれる場合がある。
【0226】
[0280] 例えば、エンコーダは、先ず、第1の特徴yを丸めて、第1の特徴の整数値y^を取得する。次いで、エンコーダは、第1の特徴の整数値y^に関して確率推定を実行して、第1の特徴の整数値についての推定された確率分布p(y^)を取得する。次に、エンコーダは、第1の特徴の整数値についての推定された確率分布p(y^)に基づいて、第1の特徴の整数値y^に関するエントロピー符号化を実行して、符号化されたビットストリームを取得する。
【0227】
[0281] y^は、y^=round(y) を満たし、roundは、丸め演算である。
【0228】
[0282] p(y^)は、p(y^)=h(y^;θh) を満たし、h(y^;θh)は、エントロピー推定ネットワークである。
【0229】
[0283] オプションとして、エンコーダが、第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得することは:
エンコーダが、第1の情報に基づいて第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得することを含む可能性がある。第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0230】
[0284] 確率分布は、コンテキスト情報及びサイド情報に基づいて推定され、その結果、得られる推定された確率分布の精度は向上する可能性がある、ということに留意すべきである。これは、エントロピー符号化プロセスにおけるビット・レートを低減し、エントロピー符号化オーバーヘッドを低減する。
【0231】
[0285] ステップ806:エンコーダは、符号化されたビットストリームをデコーダへ送信する。
【0232】
[0286] ステップ807:デコーダは、符号化されたビットストリームを復号化して、第1の特徴の整数値を取得する。
【0233】
[0287] 可能な実装において、デコーダが、符号化されたビットストリームを復号化して、第1の特徴の整数値を取得することは:デコーダが、先ず、復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;次いで、第1の特徴の整数値についての推定された確率分布に基づいて、復号化されるビットストリームに関するエントロピー復号化を実行して、第1の特徴の整数値を取得することを含む可能性がある。
【0234】
[0288] ステップ808:デコーダは、第1の特徴の整数値を第1の復号化ネットワークに入力して、復号化されたデータを取得する。
【0235】
[0289] 例えば、デコーダは、第1の特徴の整数値y^を、復号化ネットワークgs(y^;φ)に入力して、復号化されたデータx^を取得し、ここで、復号化されたデータx^は、x^=gs(y^;φ)を満たし、φは、符号化ネットワークの畳み込み及び非線型活性化のためのパラメータ・ウェイトの全部又は一部である。
【0236】
[0290] 既存の符号化方法では、符号化ネットワーク(即ち、第2の符号化ネットワーク)が、固定されたパラメータ・ウェイトに基づいて、符号化される対象データのコンテンツ特徴(即ち、第1の特徴)を抽出し、次いで、コンテンツ特徴をビットストリーム(即ち、符号化されたビットストリーム)に符号化して、ビットストリームをデコーダ側へ送信する。デコーダ側は、ビットストリームに関して復号化及び再構成を実行して、復号化されたデータを取得する。従来の技術では、符号化ネットワークのパラメータ・ウェイトみは、符号化される対象データに関連付けられていない。しかしながら、本件出願の実施形態で提供される符号化方法では、先ず、符号化される対象データは第1の符号化ネットワークに入力され、第1の符号化ネットワークは符号化される対象データに基づいて第2の符号化ネットワークのパラメータ・ウェイトを生成し、従って、第2の符号化ネットワークのパラメータ・ウェイトは、取得されたウェイトに基づいて動的に調整され、その結果、第2の符号化ネットワークのパラメータ・ウェイトは、符号化される対象データに関連付けられるようになり、第2の符号化ネットワークの表現能力は増進され、第1の特徴を符号化することにより得られるビットストリームに関して復号化及び再構成によりデコーダ側で取得される復号化データは、符号化される対象データにより近づく。これは、符号化及び復号化ネットワークのレート歪パフォーマンスを向上させる。
【0237】
[0291] 本件出願のこの実施形態で提供される符号化及び復号化方法800は、
図9に示される符号化及び復号化システムに適用可能である。
図9に示されるように、符号化及び復号化システムは、第1の符号化ネットワーク901、第2の符号化ネットワーク902、丸めモジュール903、エントロピー推定ネットワーク904、エントロピー符号化モジュール905、エントロピー復号化モジュール906、及び復号化ネットワーク907を含む。
【0238】
[0292]
図9に示されるように、先ず、符号化される対象データは、第1の符号化ネットワーク901に入力されて、ターゲット・パラメータを取得し、次いで、第2の符号化ネットワーク902のパラメータが、ターゲット・パラメータに基づいて調整される(即ち、第2の符号化ネットワーク902の畳み込み及び非線型活性化のためのパラメータ・ウェイトの全部又は一部が、ターゲット・パラメータに基づいて調整される)。
【0239】
[0293] 符号化される対象データは、第2の符号化ネットワーク902に入力されて、第1の特徴を取得する。
【0240】
[0294] 丸めモジュール903は、第1の特徴を丸めて、第1の特徴の整数値を取得する。
【0241】
[0295] エントロピー推定ネットワーク904は、第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得する。
【0242】
[0296] エントロピー符号化モジュール905は、第1の特徴の整数値の推定された確率分布に基づいて、第1の特徴の整数値に関してエントロピー符号化を実行して、符号化されたビットストリームを取得する。
【0243】
[0297] エントロピー復号化モジュール906は、第1の特徴の整数値の推定された確率分布に基づいて、符号化されたビットストリームに関してエントロピー復号化を実行して、第1の特徴の整数値を取得する。
【0244】
[0298] 第1の特徴の整数値は、復号化ネットワーク907に入力されて、復号化されたデータを取得する。
【0245】
[0299]
図10は、本件出願の実施形態による符号化及び復号化方法1000のフローチャートである。符号化及び復号化方法1000は、エンコーダ及びデコーダによって実行することが可能である。符号化及び復号化方法1000は、一連のステップ又は動作として説明される。符号化及び復号化方法1000は、様々なシーケンスで、及び/又は同時に実行されてもよく、
図10に示される実行シーケンスに限定されない、ということが理解されるべきである。
図10に示されるように、符号化及び復号化方法1000は、以下のステップを含む可能性がある。
【0246】
[0300] ステップ1001:エンコーダが、符号化される対象データを取得する。
【0247】
[0301] ステップ1002:エンコーダは、符号化される対象データを第2の符号化ネットワークに入力して、第1の特徴を取得する。
【0248】
[0302] 第1の特徴は、符号化される対象データを再構成するために使用される。
【0249】
[0303] ステップ1003:エンコーダは、符号化される対象データを、第1の符号化ネットワークに入力して、第2の特徴を取得する。
【0250】
[0304] 第2の特徴は、ターゲット・パラメータを再構成するために使用され、第2の特徴は、モデル特徴と言及される場合があり、ターゲット・パラメータは、第2の復号化ネットワークの畳み込み及び非線型活性化のためのパラメータ・ウェイトの全部又は一部である。
【0251】
[0305] 可能な実装において、エンコーダは、先ず、第1の特徴を、チャネル次元において2つのパート(第1のサブ特徴及び第2のサブ特徴)に分割することが可能である。一方のパートは、符号化される対象データ(第1のサブ特徴)を再構成するために使用され、他方のパートは、ターゲット・パラメータ(第2のサブ特徴)を再構成するために使用される。次いで、エンコーダは、第2のサブ特徴を第1の符号化ネットワークに入力し、第2の特徴を取得する。
【0252】
[0306] オプションとして、第2の特徴が、小さなビットストリームで圧縮されることを可能にするために、第2のサブ特徴が第3の符号化ネットワークに入力される前に、第2のサブ特徴は、畳み込みネットワーク及び全結合ネットワークを介して更に変換されてもよい。変換前の第2のサブ特徴は、初期モデル特徴と呼ばれる場合があり、変換によって得られた第2のサブ特徴は、モデル特徴と呼ばれる場合がある。
【0253】
[0307] ステップ1004:エンコーダは、第1の特徴を符号化して、第1の符号化されたビットストリームを取得する。
【0254】
[0308] ステップ1005:エンコーダは、第2の特徴を符号化して、第2の符号化されたビットストリームを取得する。
【0255】
[0309] 可能な実装において、エンコーダは、第1の特徴及び第2の特徴を符号化して、復号化される対象のビットストリームを取得することが可能である。
【0256】
[0310] ステップ1006:エンコーダは、第1の復号化される対象のビットストリームと第2の復号化される対象のビットストリームを、デコーダへ送信する。
【0257】
[0311] ステップ1007:デコーダは、第1の復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得する。
【0258】
[0312] 可能な実装において、デコーダが、第1の復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得することは:デコーダが、第1の復号化される対象のビットストリーム内の第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得し、第1の特徴の整数値の推定された確率分布に基づいて、復号化される対象のビットストリームに関してエントロピー復号化を実行して、第1の特徴の整数値を取得することを含む可能性がある。
【0259】
[0313] 可能な実装において、第1の復号化される対象のビットストリーム内の第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得することは:第1の情報に基づいて、第1の復号化される対象のビットストリーム内の第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得することを含み、ここで、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0260】
[0314] ステップ1008:デコーダは、第2の復号化される対象のビットストリームを復号化して、第2の特徴量の整数値を取得する。
【0261】
[0315] 第2の特徴の整数値もまた、モデル丸め特徴と呼ばれる場合がある。
【0262】
[0316] 可能な実装において、デコーダが、第2の復号化される対象のビットストリームを復号化して、第2の特徴の整数値を取得することは:デコーダが、第2の復号化される対象のビットストリーム内の第2の特徴の整数値に関して確率推定を実行して、第2の特徴の整数値の推定された確率分布を取得し、第2の特徴の整数値の推定された確率分布に基づいて、第2の復号化される対象のビットストリームに対して、エントロピー復号化を実行して、第2の特徴の整数値を取得することを含む。
【0263】
[0317] 可能な実装において、第2の復号化される対象のビットストリーム内の第2の特徴の整数値に関して確率推定を実行して、第2の特徴の整数値の推定された確率分布を取得することは:第1の情報に基づいて、第2の復号化される対象のビットストリーム内の第2の特徴の整数値に関して確率推定を実行して、第2の特徴の整数値の推定された確率分布を取得することを含み、ここで、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0264】
[0319] ステップ1009:デコーダは、第2の特徴の整数値を、第1の復号化ネットワークに入力して、ターゲット・パラメータを取得する。
【0265】
[0319] ステップ1010:デコーダは、ターゲット・パラメータに基づいて第2の復号化ネットワークを構築する。
【0266】
[0320] ステップ1011:デコーダは、第1の特徴の整数値を第2の復号化ネットワークに入力して、復号化されたデータを取得する。
【0267】
[0321] 既存の復号化方法では、復号化ネットワーク(即ち、第2の復号化ネットワーク)は、固定されたパラメータ・ウェイトに基づいて、符号化された対象データの内容値特徴(即ち、第1の特徴の整数値)に対して復号化及び再構成を実行して、復号化されたデータを取得する。従来技術では、復号化ネットワークのパラメータ・ウェイトは、復号化される対象データに関連付けられていない、ということが分かる。しかしながら、本件出願のこの実施形態では、復号化される対象データの内容特徴とモデル特徴(即ち、第1の特徴と第2の特徴)を、復号化される対象ビットストリーム内に符号化し、次いで、デコーダ側は復号化される対象のビットストリームを復号化して、第2の特徴の整数値を取得し、第2の特徴の整数値は、第1の復号化ネットワークに入力されて、第2の復号化ネットワークのパラメータ・ウェイトを取得し、次いで、第2の復号化ネットワークのパラメータ・ウェイトはパラメータ・ウェイトに基づいて動的に調整され、その結果、第2の復号化ネットワークのパラメータ・ウェイトは復号化される対象データに関連付けられるようになり、第2の復号化ネットワークの表現能力は改善され、復号化及び再構成を経て第2の復号化ネットワークにより取得される復号化されたデータは、符号化された対象データにより近づく。これは、符号化及び復号化ネットワークのレート歪パフォーマンスを向上させる。
【0268】
[0322] 本件出願のこの実施形態で提供される符号化及び復号化方法1000は、
図11に示される符号化及び復号化システムに適用可能である。
図11に示されるように、符号化及び復号化システムは、第1の符号化ネットワーク1101、第2の符号化ネットワーク1102、第1の丸めモジュール1103、第2の丸めモジュール1104、エントロピー推定ネットワーク1105、第1のエントロピー符号化モジュール1106、第2のエントロピー符号化モジュール1107、第1のエントロピー復号化モジュール1108、第2のエントロピー復号化モジュール1109、第1の復号化ネットワーク1110、及び第2の復号化ネットワーク1111を含む。
【0269】
[0323]
図11に示されるように、先ず、符号化される対象データは、第2の符号化ネットワーク1102に入力されて、第1の特徴を取得し、次いで、符号化される対象データは、第1の符号化ネットワーク1101に入力されて、第2の特徴を取得する。
【0270】
[0324] 第1の丸めモジュール1103は、第1の特徴を丸めて、第1の特徴の整数値を取得する。
【0271】
[0325] 第2の丸めモジュール1104は、第2の特徴を丸めて、第2の特徴の整数値を取得する。
【0272】
[0326] エントロピー推定ネットワーク1105は、先ず、第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得し、次いで、第2の特徴の整数値に関して確率推定を実行して、第2の特徴の整数値の推定された確率分布を取得する。
【0273】
[0327] 第1のエントロピー符号化モジュール1106は、第1の特徴の整数値の推定された確率分布に基づいて、第1の特徴の整数値に関してエントロピー符号化を実行して、第1の復号化される対象のビットストリームを取得する。
【0274】
[0328] 第2のエントロピー符号化モジュール1107は、第2の特徴の整数値の推定された確率分布に基づいて、第2の特徴の整数値に関してエントロピー符号化を実行して、第2の復号化される対象のビットストリームを取得する。
【0275】
[0329] 第1のエントロピー復号化モジュール1108は、第1の特徴の整数値の推定された確率分布に基づいて、第1の復号化される対象のビットストリームに関してエントロピー復号化を実行して、第1の特徴の整数値を取得する。
【0276】
[0330] 第2のエントロピー復号化モジュール1109は、第2の特徴の整数値の推定された確率分布に基づいて、第2の復号化される対象のビットストリームに関してエントロピー復号化を実行して、第2の特徴の整数値を取得する。
【0277】
[0331] 第2の特徴の整数値は、先ず、第1の復号化ネットワーク1110に入力されて、ターゲット・パラメータを取得し、次いで、第2の復号化ネットワーク1111のパラメータは、ターゲット・パラメータに基づいて調整される(即ち、第2の復号化ネットワーク1111の畳み込み及び非線型活性化のためのパラメータ・ウェイトの全部又は一部が、ターゲット・パラメータに基づいて調整される)。
【0278】
[0332] 第1の特徴の整数値は、第2の復号化ネットワーク1111に入力されて、復号化されたデータを取得する。
【0279】
[0333] 本件出願のこの実施形態で提供される符号化及び復号化方法1000は、
図12に示される符号化及び復号化システムにも適用可能である。
図12に示されるように、符号化及び復号化システムは、第1の符号化ネットワーク1201、第2の符号化ネットワーク1202、チャネル分割モジュール1203、第1の丸めモジュール1204、第2の丸めモジュール1205、エントロピー推定ネットワーク1206、第1のエントロピー符号化モジュール1207、第2のエントロピー符号化モジュール1208、第1のエントロピー復号化モジュール1209、第2のエントロピー復号化モジュール1210、第1の復号化ネットワーク1211、及び第2の復号化ネットワーク1212を含む。
【0280】
[0334]
図12に示されるように、符号化される対象データは、先ず、第2の符号化ネットワーク1202に入力されて、第1の特徴を取得する。
【0281】
[0335] 第1の特徴は、チャネル分割モジュール1203に入力され、チャネル次元において第1のサブ特徴と第2のサブ特徴とに分割される。
【0282】
[0336] 第2のサブ特徴は、第1の符号化ネットワーク1201に入力されて、第2の特徴を取得する。
【0283】
[0337] 第1の丸めモジュール1204は、第1のサブ特徴を丸めて、第1の特徴の整数値を取得する。
【0284】
[0338] 第2の丸めモジュール1205は、第2のサブ特徴を丸めて、第2の特徴の整数値を取得する。
【0285】
[0339] エントロピー推定ネットワーク1206は、先ず、第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得し、次いで、第2の特徴の整数値に関して確率推定を実行して、第2の特徴の整数値の推定された確率分布を取得する。
【0286】
[0340] 第1のエントロピー符号化モジュール1207は、第1の特徴の整数値の推定された確率分布に基づいて、第1の特徴の整数値に関してエントロピー符号化を実行して、第1の復号化される対象のビットストリームを取得する。
【0287】
[0341] 第2のエントロピー符号化モジュール1208は、第2の特徴の整数値の推定された確率分布に基づいて、第2の特徴の整数値に関してエントロピー符号化を実行して、第2の復号化される対象のビットストリームを取得する。
【0288】
[0342] 第1のエントロピー復号化モジュール1209は、第1の特徴の整数値の推定された確率分布に基づいて、第1の復号化される対象のビットストリームに関してエントロピー復号化を実行して、第1の特徴の整数値を取得する。
【0289】
[0343] 第2のエントロピー復号化モジュール1210は、第2の特徴の整数値の推定された確率分布に基づいて、第2の復号化される対象のビットストリームに関してエントロピー復号化を実行して、第2の特徴の整数値を取得する。
【0290】
[0344] 第2の特徴の整数値は、先ず、第1の復号化ネットワーク1211に入力されて、ターゲット・パラメータを取得し、次いで、第2の復号化ネットワーク1212のパラメータは、ターゲット・パラメータに基づいて調整される(即ち、第2の復号化ネットワーク1212の畳み込み及び非線型活性化のためのパラメータ・ウェイトの全部又は一部が、ターゲット・パラメータに基づいて調整される)。
【0291】
[0345] 第1の特徴の整数値は、第2の復号化ネットワーク1212に入力されて、復号化されたデータを取得する。
【0292】
[0346]
図10は、本件出願の実施形態による符号化及び復号化方法1300のフローチャートである。符号化及び復号化方法1300は、エンコーダ及びデコーダによって実行することが可能である。符号化及び復号化方法1300は、一連のステップ又は動作として説明される。符号化及び復号化方法1300は、様々なシーケンスで、及び/又は同時に実行されてもよく、
図13に示される実行シーケンスに限定されない、ということが理解されるべきである。
図13に示されるように、符号化及び復号化方法1300は、以下のステップを含む可能性がある。
【0293】
[0347] ステップ1301:エンコーダが、符号化される対象データを取得する。
【0294】
[0348] ステップ1302:エンコーダは、符号化される対象データを符号化ネットワークに入力して、第1の特徴を取得する。
【0295】
[0349] ステップ1303:エンコーダは、第1の特徴を符号化して、復号化される対象のビットストリームを取得する。
【0296】
[0350] ステップ1304:エンコーダは、復号化される対象のビットストリームを、デコーダへ送信する。
【0297】
[0351] ステップ1305:デコーダは、復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得する。
【0298】
[0352] 可能な実装において、デコーダが、復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得することは:デコーダが、復号化される対象のビットストリーム内の第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得し、第1の特徴の整数値の推定された確率分布に基づいて、復号化される対象のビットストリームに関してエントロピー復号化を実行して、第1の特徴の整数値を取得することを含む可能性がある。
【0299】
[0353] 可能な実装において、復号化される対象のビットストリーム内の第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得することは:第1の情報に基づいて、復号化される対象のビットストリーム内の第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得することを含み、ここで、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0300】
[0354] ステップ1309:デコーダは、第1の特徴の整数値を、第1の復号化ネットワークに入力して、ターゲット・パラメータを取得する。
【0301】
[0355] オプションとして、第1の復号化ネットワークは、畳み込みカーネル生成器(畳み込みグループ又は全結合グループ)を含む可能性がある。畳み込みカーネル生成器は、符号化される対象データの第1の特徴の整数値に基づいて、ターゲット・パラメータを生成するように構成される。
【0302】
[0356] ステップ1307:デコーダは、ターゲット・パラメータに基づいて第2の復号化ネットワークを構築する。
【0303】
[0357] ステップ1308:デコーダは、第1の特徴の整数値を第2の復号化ネットワークに入力して、復号化されたデータを取得する。
【0304】
[0358] 既存の復号化方法では、復号化ネットワーク(即ち、第2の復号化ネットワーク)は、固定されたパラメータ・ウェイトに基づいて、符号化された対象データの内容値特徴(即ち、第1の特徴の整数値)に対して復号化及び再構成を実行して、復号化されたデータを取得する。従来技術では、復号化ネットワークのパラメータ・ウェイトは、復号化される対象データに関連付けられていない、ということが分かる。しかしながら、本件出願のこの実施形態では、復号化される対象データの特徴を符号化することにより取得される復号化対象ビットストリームを復号化して、第1の特徴の整数値を取得し、第1の特徴の整数値は、第1の復号化ネットワークに入力されて、第2の復号化ネットワークのパラメータ・ウェイトを取得し、次いで、第2の復号化ネットワークのパラメータ・ウェイトはパラメータ・ウェイトに基づいて動的に調整され、その結果、第2の復号化ネットワークのパラメータ・ウェイトは復号化される対象データに関連付けられるようになり、第2の復号化ネットワークの表現能力は改善され、復号化及び再構成を経て第2の復号化ネットワークにより取得される復号化されたデータは、符号化された対象データにより近づく。これは、符号化及び復号化ネットワークのレート歪パフォーマンスを向上させる。
【0305】
[0359] 本件出願のこの実施形態で提供される符号化及び復号化方法1300は、
図14に示される符号化及び復号化システムに適用可能である。
図14に示されるように、符号化及び復号化システムは、符号化ネットワーク1401、丸めモジュール1402、エントロピー推定ネットワーク1403、エントロピー符号化モジュール1404、エントロピー復号化モジュール1405、第1の復号化ネットワーク1406、及び第2の復号化ネットワーク1407を含む。
【0306】
[0360]
図14に示されるように、先ず、符号化される対象データは、符号化ネットワーク1401に入力されて、第1の特徴を取得する。
【0307】
[0361] 丸めモジュール1402は、第1の特徴を丸めて、第1の特徴の整数値を取得する。
【0308】
[0362] エントロピー推定ネットワーク1403は、第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得する。
【0309】
[0363] エントロピー符号化モジュール1404は、第1の特徴の整数値の推定された確率分布に基づいて、第1の特徴の整数値に関してエントロピー符号化を実行して、復号化される対象のビットストリームを取得する。
【0310】
[0364] エントロピー復号化モジュール1405は、第1の特徴の整数値の推定された確率分布に基づいて、復号化される対象のビットストリームに関してエントロピー復号化を実行して、第1の特徴の整数値を取得する。
【0311】
[0365] 第1の特徴の整数値は、先ず、復号化ネットワーク1406に入力されて、ターゲット・パラメータを取得し、次いで、第2の復号化ネットワーク1406のパラメータは、ターゲット・パラメータに基づいて調整される(即ち、第2の復号化ネットワーク1407の畳み込み及び非線型活性化のためのパラメータ・ウェイトの全部又は一部が、ターゲット・パラメータに基づいて調整される)。
【0312】
[0366] 第1の特徴の整数値は、第2の復号化ネットワーク1407に入力されて、復号化されたデータを取得する。
【0313】
[0367]
図15は、本件出願の実施形態による符号化及び復号化方法のパフォーマンスを示す概略図である。
図15の座標系は、ピーク信号対雑音比(Peak Signal-to-Noise Ratio,PSNR)指標に基づいて、本件出願の実施形態及び従来技術を使用して、テスト・セットを別々に符号化及び復号化するパフォーマンスを示す。テスト・セットは、コダック(Kodak)テスト・セットである。コダック・テスト・セットは、ポータブル・ネットワーク・グラフィックス(Portable Network Graphics,PNG)フォーマットで24枚の画像を含んでいる。24個のピクチャの解像度は、768×512又は512×768である可能性がある。
図15の座標系において、横座標はビット・レート(bits per pixel,BPP)を示し、縦座標はPSNRを示す。BPPは、各画像を保存するために使用されるビット量を示す。値が小さいほど圧縮ビット・レートは小さいことを示す。PSNRは画像を評価する客観的な基準である。PSNRが高いほど画質が良いことを示す。
【0314】
[0368]
図15に示される座標系における線分Aは本件発明の実施形態を表し、線分Bは従来技術を表す。BPP指標が同じである場合、本件出願の実施形態におけるPSNR指標は全て従来技術における指標よりも大きくなっており、また、画像圧縮品質(即ち、PSNR指標)が同じである場合、本件出願の実施形態におけるBPP指標は全て従来技術における指標よりも小さい、ということを
図15から知ることができる。本件出願の実施形態におけるレート歪パフォーマンスは、従来技術におけるレート歪パフォーマンスよりも高くなっており、データ符号化及び復号化方法のレート歪パフォーマンスは、本件出願の実施形態において改善されることが可能である、ということが分かる。
【0315】
[0369] 本件出願の実施形態において提供される符号化及び復号化方法が適用されることが可能なシナリオは、電子デバイス、クラウド・サービス、及びビデオ監視(例えば、電子デバイスの撮影及びビデオ又はオーディオ・サービス、アルバム、クラウド・アルバム、ビデオ監視、ビデオ会議、モデル圧縮)における画像、ビデオ、及び音声のようなデータのキャプチャ、格納、及び伝送に関連する全てのサービスを含むが、これらに限定されない。
【0316】
[0370]
図16は、本件出願の実施形態によるアプリケーション・シナリオの概略図である。
図16に示されるように、アプリケーション・シナリオでは、撮影によってピクチャ・データ(圧縮される対象データ)を取得した後に、電子デバイスは、撮影によって取得したピクチャ・データ(例えば、RAWフォーマット、YUVフォーマット、又はRGBフォーマットにおけるピクチャ・データ)を、電子デバイスのAI符号化ユニットに入力する。電子デバイスのAI符号化ユニットは、第1の符号化ネットワーク、第2の符号化ネットワーク、及びエントロピー推定ネットワークを起動して、ピクチャ・データを、低い冗長度の出力特徴に変換し、出力特徴の推定された確率分布を生成する。電子デバイスの算術符号化ユニットは、エントロピー符号化モジュールを起動して、出力特徴の推定された確率分布に基づいて出力特徴をデータ・ファイルに符号化する。ファイル格納ユニットは、エントロピー符号化モジュールによって生成されたデータ・ファイルを、電子デバイスの対応する格納場所に格納する。電子デバイスがデータ・ファイルを使用することを必要とする場合、ファイル・ローディング・ユニットは、データ・ファイルを、電子デバイスの対応する格納場所からロードし、データ・ファイルは算術復号化ユニットに入力される。算術復号化ユニットはエントロピー復号化モジュールを起動して、データ・ファイルを復号化して、出力特徴を取得し、また、出力特徴はAI復号化ユニットに入力される。AI復号化ユニットは、第1の復号化ネットワーク、第2の復号化ネットワーク、及び第3の復号化ネットワークを起動して、出力特徴に対して逆変換を実行し、出力特徴を画像データ(例えば、RGB画像データ)、即ち圧縮されたデータに解析する。AI符号化ユニット及びAI復号化ユニットは、電子デバイスのニューラル・ネットワーク処理ユニット(neural network processing unit,NPU)又はグラフィックス処理ユニット(graphics processing unit,GPU)に配備されてもよい。算術符号化ユニット、ファイル格納ユニット、ファイル・ローディング・ユニット、及び算術復号化ユニットは、電子デバイスのCPUに配備されてもよい。
【0317】
[0371]
図17は、本件出願の実施形態による別のアプリケーション・シナリオの概略図である。
図17に示されるように、アプリケーション・シナリオにおいて、電子デバイスは、クラウド(例えば、サーバー)に対して、アップロードする前に、格納されたピクチャ・データ(圧縮される対象データ)を符号化するか(例えば、JPEG符号化)、又は直接的にアップロードする。クラウドは、クラウドにおけるAI符号化ユニットに対して、入力する前に、受信したピクチャ・データを復号化するか(例えば、JPEG復号化)、又は直接的に入力する。クラウドにおけるAI符号化ユニットは、第1の符号化ネットワーク、第2の符号化ネットワーク、及びエントロピー推定ネットワークを起動して、ピクチャ・データを、冗長度の低い出力特徴に変換し、出力特徴量の推定された確率分布を生成する。クラウドにおける算術符号化ユニットは、エントロピー符号化モジュールを起動して、出力特徴の推定された確率分布に基づいて出力特徴をデータ・ファイルに符号化する。ファイル格納ユニットは、エントロピー符号化モジュールによって生成されたデータ・ファイルを、クラウドにおける対応する格納場所に格納する。電子デバイスがデータ・ファイルを使用することを必要とする場合、電子デバイスは、クラウドにダウンロード要求を送信する。クラウドがダウンロード要求を受信した後、ファイル・ローディング・ユニットは、データ・ファイルを、クラウドにおける対応するストレージ・ロケーションからロードし、データ・ファイルは算術復号化ユニットに入力される。算術復号化ユニットはエントロピー復号化モジュールを起動して、データ・ファイルを復号化して、出力特徴を取得し、また、出力特徴はAI復号化ユニットに入力される。AI復号化ユニットは、第1の復号化ネットワーク、第2の復号化ネットワーク、及び第3の復号化ネットワークを起動して、出力特徴に対して逆変換を実行し、出力特徴をピクチャ・データに解析する。クラウドは、電子デバイスに対して、送信する前にピクチャ・データを符号化するか(圧縮データ)、又は直接的に送信する。
【0318】
[0372] 以下、
図18及び
図19を参照しながら、前述の符号化及び復号化方法を実行するように構成された符号化及び復号化装置を説明する。
【0319】
[0373] 前述の機能を実装するために、符号化及び復号化装置は、各機能を実行する対応するハードウェア及び/又はソフトウェア・モジュールを含む、ということを理解することが可能である。本件明細書において開示される実施形態で説明される各々の例のアルゴリズム・ステップを参照すると、本件出願は、ハードウェア、又は、ハードウェアとコンピュータ・ソフトウェアとの組み合わせの形態で実施することが可能である。機能がハードウェアによって実行されるか、又は、コンピュータ・ソフトウェアによって駆動されるハードウェアによって実行されるかは、技術的解決策の設計制約及び特定の用途に依存する。当業者は、実施形態を参照して、説明した機能をそれぞれの特定の用途に実装するために、様々な方法を使用する可能性があるが、その実装が本件の範囲を超えて行くものであると考えるべきではない。
【0320】
[0374] 本件出願の実施形態において、符号化及び復号化装置は、前述の方法例に基づいて機能モジュールに分割される可能性がある。例えば、各々の機能モジュールは、対応する各機能に基づく分割によって得られてもよいし、或いは、2つ以上の機能が1つの処理モジュールに統合されてもよい。前述の統合されたモジュールは、ハードウェアの形態で実装されてもよい。本件実施形態において、モジュールへの分割は一例であり、単なる論理的な機能分割であるに過ぎず、実際の実装の際には他の分割であってもよい。
【0321】
[0375] 各々の機能モジュールが、対応する各機能に基づく分割によって得られる場合に、
図18は、前述の実施形態における符号化及び復号化装置の構成の可能な概略図である。
図18に示すように、装置1800は、トランシーバ・ユニット1801と、処理ユニット1802とを含む可能性がある。処理ユニット1802は、前述の方法の実施形態における符号化装置、復号化装置、エンコーダ、又はデコーダによって実行される方法、及び/又は、本件明細書で説明される技術の別の処理を実施することが可能である。
【0322】
[0376] 前述の方法の実施形態におけるステップの全ての関連する内容は、対応する機能モジュールの機能説明において引用されることが可能である、ということに留意すべきである。詳細はここで再び説明されない。
【0323】
[0377] 統合されたユニットが使用される場合に、装置1800は、処理ユニット、記憶ユニット、及び通信ユニットを含む可能性がある。処理ユニットは、デバイス1800の動作を制御及び管理するように構成されている可能性があり、例えば、前述のユニットによって実行されるステップを実行する際に、装置1800をサポートするように構成されていてもよい。記憶ユニットは、プログラム・コード、データ、及び/又はそれに類するもの、を記憶する際に装置1800をサポートするように構成されてもよい。通信ユニットは、装置1800と他のデバイスとの間の通信をサポートするように構成されてもよい。
【0324】
[0378] 処理ユニットは、プロセッサ又はコントローラであってもよい。プロセッサは、本件で開示される内容を参照して説明される様々な例示的な論理ブロック、モジュール、及び回路を実装又は実行することが可能である。プロセッサは、代替的に、演算機能を実装するための組み合わせであってもよく、例えば、1つ又は複数のマイクロプロセッサ、及び、デジタル信号プロセッサ(digital signal processing,DSP)とマイクロプロセッサとの組み合わせを含む組み合わせであってもよい。記憶デバイスはメモリであってもよい。通信ユニットは、具体的には、例えば、無線周波数回路、ブルートゥース・チップ、Wi-Fiチップ等であって、他の電子デバイスと相互作用するものであってもよい。
【0325】
[0379] 可能な実装において、本件出願のこの実施態様における符号化及び復号化装置は、
図19に示す構造を有する装置1900であってよい。装置1900は、プロセッサ1901及びトランシーバ1902を含む。
図18のトランシーバ・ユニット1801及び処理ユニット1802によって実施される関連機能は、プロセッサ1901によって実施されてもよい。
【0326】
[0380] オプションとして、装置1900は、メモリ1903を更に含む可能性がある。プロセッサ1901及びメモリ1903は、内部接続経路を介して互いに通信する。
図18の記憶デバイスによって実施される関連機能は、メモリ1903によって実施されてもよい。
【0327】
[0381] 本件出願の実施形態は、コンピュータ記憶媒体を更に提供する。コンピュータ記憶媒体は、コンピュータ命令を記憶する。コンピュータ命令が電子デバイス上で実行されると、電子デバイスは、前述の関連する方法ステップを実行して、前述の実施形態における符号化及び復号化方法を実施することが可能になる。
【0328】
[0382] 本件出願の実施形態は、コンピュータ・プログラム製品を更に提供する。コンピュータ・プログラム製品がコンピュータ上で実行されると、コンピュータは、前述の関連ステップを実行して、前述の実施形態における符号化及び復号化方法を実施することが可能になる。
【0329】
[0383] 本件出願の実施形態は、符号化及び復号化装置を更に提供する。装置は、具体的には、チップ、集積回路、コンポーネント、又はモジュールであってよい。具体的には、装置は、接続されたプロセッサと、命令を記憶するように構成されたメモリとを含むか、又は装置は、外部メモリから命令を取得するように構成された、少なくとも1つのプロセッサを含む。装置が動作する場合に、プロセッサは命令を実行し、その結果、チップは前述の方法の実施形態における符号化及び復号化方法を実行する。
【0330】
[0384]
図20は、チップ2000の構造の概略図である。チップ2000は、1つ以上のプロセッサ2001及びインターフェース回路2002を含む。オプションとして、チップ2000は、バス2003を更に含む可能性がある。
【0331】
[0385] プロセッサ2001は、集積回路チップである可能性があり、信号処理能力を有する。実施プロセスにおいて、前述の符号化方法の各ステップは、プロセッサ2001内のハードウェアの集積論理回路を使用することによって、又はソフトウェアの形態における命令を使用することによって完了することが可能である。
【0332】
[0386] プロセッサ2001は、汎用プロセッサ、デジタル信号プロセッサ(digital signal processing,DSP)、特定用途向け集積回路(application-specific integrated circuit,ASIC)、フィールド・プログラマブル・ゲート・アレイ(field-programmable gate array,FPGA)又は別のプログラマブル論理デバイス、ディスクリート・ゲート又はトランジスタ論理デバイス、又はディスクリート・ハードウェア・コンポーネントであってもよい。プロセッサは、本件出願の実施形態で開示される方法及びステップを実施又は実行することが可能である。汎用プロセッサは、マイクロプロセッサであってもよく、プロセッサは、任意の従来のプロセッサ等であってもよい。
【0333】
[0387] インターフェース回路2002は、データ、命令、又は情報を送信又は受信することが可能である。プロセッサ2001は、インターフェース回路2002を介して受信されるデータ、命令、又はその他の情報を処理し、処理によって得られた情報を、インターフェース回路2002を介して送信することが可能である。
【0334】
[0388] オプションとして、チップはメモリを更に含む。メモリは、リード・オンリー・メモリ・及びランダム・アクセス・メモリを含み、動作命令及びデータをプロセッサに提供することが可能である。メモリの一部は、不揮発性ランダム・アクセス・メモリ(non-volatile random access memory,NVRAM)を更に含んでもよい。
【0335】
[0389] オプションとして、メモリは、実行可能なソフトウェア・モジュール又はデータ構造を記憶し、プロセッサは、メモリに記憶された動作命令(動作命令は、オペレーティング・システムに記憶されることが可能である)を起動することによって、対応する動作を実行することが可能である。
【0336】
[0390] オプションとして、チップは、本件出願の実施形態における電子デバイス又はDOPにおいて使用される可能性がある。オプションとして、インターフェース回路2002は、プロセッサ2001の実行結果を出力するように構成されることが可能である。本件出願の1つ以上の実施形態で提供される符号化方法については、前述の実施形態を参照されたい。詳細はここで再び説明されない。
【0337】
[0391] プロセッサ2001及びインターフェース回路2002の各々に対応する機能は、ハードウェア設計を使用して実施することが可能であり、ソフトウェア設計を使用して実施することが可能であり、又は、ソフトウェア及びハードウェアの組み合せを使用して実施することが可能である、ということに留意すべきである。これは、本件において限定されない。
【0338】
[0392] 実施形態で提供される電子デバイス、コンピュータ記憶媒体、コンピュータ・プログラム製品、又はチップは、上記で提供される対応する方法を実行するように構成される。従って、達成可能な有益な効果については、上記で提供される対応する方法の有益な効果を参照されたい。詳細はここで再び説明しない。
【0339】
[0393] 前述のプロセスのシーケンス番号は、本件出願の実施形態における実行シーケンスを意味してはいない、ということが理解されるべきである。プロセスの実行順序は、プロセスの機能及び内部ロジックに基づいて決定されるべきものであり、本件出願の実施形態の実装プロセスに対する如何なる制限も構成するはずはない。
【0340】
[0394] 当業者は、本件明細書に開示された実施形態で説明されている例との組み合わせにおいて、ユニット及びアルゴリズム・ステップが、電子ハードウェア、又は、コンピュータ・ソフトウェアと電子ハードウェアとの組み合わせによって実施されることが可能である、ということを認識することが可能である。機能がハードウェアによって実行されるか又はソフトウェアによって実行されるかは、技術的解決策の設計制約及び特定の用途に依存する。当業者は、各々の特定の用途に対して、説明した機能を実装するために異なる方法を使用する可能性があるが、その実装が本件の範囲を超え行くものであると考えるべきではない。
【0341】
[0395] 説明を容易にかつ簡潔にするために、前述のシステム、装置、及びユニットの詳細な処理工程については、前述の方法の実施形態における対応するプロセスを参照されたい、ということは当業者により明確に理解されるであろう。詳細はここで再び説明されない。
【0342】
[0396] 本件において提供される幾つかの実施形態において、開示されるシステム、装置、及び方法は、他の態様で実施されてもよい、ということが理解されるべきである。例えば、説明した装置の実施形態は単なる例示である。例えば、ユニットへの分割は単なる論理機能的な分割であり、実際の実装の際には他の分割である可能性がある。例えば、複数のユニットやコンポーネントが組み合わせられたり、別のシステムに統合されたり、或いは一部の機能が無視されたり、実行されなかったりしてもよい。更に、図示又は説明された相互結合又は直接的な結合又は通信接続は、何らかのインターフェースを介して実装されてもよい。デバイス又はユニット間の間接的な結合又は通信接続は、電気的、機械的、又はその他の形態で実施されてもよい。
【0343】
[0397] 別個のパーツとして説明された前述のユニットは、物理的に別個であってもなくてもよく、ユニットとして図示されたパーツは、物理的なユニットであってもなくてもよく、一カ所に配置されてもよく、或いは、複数のネットワーク・ユニット上に分散されてもよい。ユニットの一部又は全部は、実施形態の解決策の目的を達成するための実際の要件に基づいて選択されることが可能である。
【0344】
[0398] 更に、本件出願の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよいし、各ユニットが物理的に単独で存在してもよいし、2つ以上のユニットが1つのユニットに統合されてもよい。
【0345】
[0399] 機能がソフトウェア機能ユニットの形態で実装され、独立した製品として販売又は使用される場合に、機能はコンピュータ読み取り可能な記憶媒体に記憶されてもよい。このような理解に基づいて、本質的に本件の技術的解決策、又は従来技術に寄与する部分、又は技術的解決策の全部又は一部は、ソフトウェア製品の形態で実施されることが可能である。コンピュータ・ソフトウェア製品は、記憶媒体に格納され、コンピュータ・デバイス(パーソナル・コンピュータ、サーバー、ネットワーク・デバイス等であってもよい)に、本件出願の実施形態で説明される前述の方法のステップの全部又は一部を実行するように指示するための複数の命令を含む。前述の記憶媒体は、USBフラッシュ・ドライブ、リムーバブル・ハード・ディスク、リード・オンリー・メモリ(Read-Only Memory,ROM)、ランダム・アクセス・メモリ(Random Access Memory,RAM)、磁気ディスク、コンパクト・ディスクのような、プログラム・コードを記憶することが可能な任意の媒体を含む。
【0346】
[0400] 前述の説明は、本件出願の具体的な実装に過ぎず、本件出願の保護範囲を限定するようには意図されていない。本件に開示された技術的範囲内で当業者によって容易に案出される如何なる変形又は置換も、本件の保護範囲に含まれるものとする。従って、本件出願の保護範囲は、クレームの保護範囲に従うものとする。
【手続補正書】
【提出日】2024-03-15
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
[0002] 技術分野
本件出願は、人工知能の技術分野に関連し、特に、符号化及び復号化方法並びに装置に関連する。
【背景技術】
【0002】
[0003] 背景
科学技術の発展に伴い、画像の量と解像度は増加しつつある。大量の画像は、より大きな容量の記憶媒体を必要とするだけでなく、より広い伝送周波数帯域や、より長い伝送時間を必要とし、画像処理における基本的な課題にもなっている。画像の格納効率と伝送効率を向上させるために、大きなデータ量の画像は符号化して画像を圧縮する必要がある。
【0003】
[0004] ニューラル・ネットワークに基づく画像圧縮は、画像圧縮効率を向上させることができる。既存のニューラル・ネットワークに基づく画像圧縮方法は、主に、オンライン学習を必要とするニューラル・ネットワーク・ベースの画像圧縮方法(方法1として手短に言及される)と、オンライン学習を必要としないニューラル・ネットワーク・ベースの画像圧縮方法(方法2として手短に言及される)に分類される。方法1は、良好なレート歪パフォーマンス を有するが、オンライン学習を必要とし、低い画像圧縮速度を招く。方法2は、レート歪パフォーマンスは貧弱であるが、高い画像圧縮速度を有する。
【発明の概要】
【0004】
[0005] 本件出願は、オンライン・トレーニングによらずデータ符号化及び復号化方法のレート歪パフォーマンスを改善するための符号化及び復号化方法並びに装置を提供する。前述の目的を達成するために、本件出願は以下の技術的解決策を用いる。
【0005】
[0006] 第1の態様によれば、本件出願は符号化方法を提供する。方法は:符号化される対象データ(to-be-encoded data)を取得し、次いで、 符号化される対象データを第1の符号化ネットワークに入力して、ターゲット・パラメータを取得し;次いで、ターゲット・パラメータに基づいて第2の符号化ネットワークを構築し;次に、 符号化される対象データを第2の符号化ネットワークに入力して第1の特徴を取得し;最終的に、第1の特徴を符号化して符号化されたビットストリームを取得するステップを含む。
【0006】
[0007] 既存の符号化方法では、符号化ネットワーク(即ち、第2の符号化ネットワーク)が、固定されたパラメータ・ウェイトに基づいて、符号化される対象データのコンテンツ特徴(即ち、第1の特徴)を抽出し、次いで、コンテンツ特徴をビットストリームに符号化して(即ち、符号化されたビットストリーム)、そのビットストリームをデコーダ側へ送信している。デコーダ側は、ビットストリームに対して復号化及び再構成を実行して、復号化されたデータを取得する。従来の技術では、符号化ネットワークのパラメータ・ウェイトは、符号化される対象データと関連付けられていない、ということが分かる。しかしながら、本件出願で提供される符号化方法では、先ず、符号化される対象データは第1の符号化ネットワークに入力され、第1の符号化ネットワークは符号化される対象データに基づいて第2の符号化ネットワークのパラメータ・ウェイトを生成し、第2の符号化ネットワークのパラメータ・ウェイトは、取得されたウェイトに基づいて動的に調整され、その結果、第2の符号化ネットワークのパラメータ・ウェイトは、符号化される対象データに関連付けられるようになり、第2の符号化ネットワークの表現能力は増進され、第1の特徴を符号化することにより得られるビットストリームに関して復号化及び再構成によりデコーダ側で取得される復号化データは、符号化される対象データにより近づく。これは、符号化及び復号化ネットワークのレート歪パフォーマンスを向上させる。
【0007】
[0008] オプションとして、ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である。
【0008】
[0009] 可能な実装において、前記第1の特徴を符号化して符号化されたビットストリームを取得するステップは:第1の特徴を丸めて前記第1の特徴の整数値を取得し;第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;及び第1の特徴の整数値についての推定された確率分布に基づいて、第1の特徴の整数値に関するエントロピー符号化を実行して、符号化されたビットストリームを取得するステップを含む。
【0009】
[0010] エントロピー符号化は、第1の特徴の整数値についての推定された確率分布に基づいて、第1の特徴の整数値に対して実行されて、ビットストリームを形成する。これは、第1の特徴を出力するための符号化の冗長性を低減することができ、データの符号化又は復号化(圧縮)プロセスにおけるデータ伝送量を更に軽減することができる。
【0010】
[0011] 可能な実装において、第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するステップは:第1の情報に基づいて第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するステップであって、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップを含む。
【0011】
[0012] 確率分布は、コンテキスト情報及びサイド情報に基づいて推定され、その結果、取得される推定確率分布の精度を向上させることができる。これは、エントロピー符号化プロセスにおけるビット・レートを軽減し、エントロピー符号化のオーバーヘッドを軽減することができる。
【0012】
[0013] 第2の態様によれば、本件出願は復号化方法を提供する。方法は:復号化される対象のビットストリームを取得し;次いで、復号化される対象のビットストリームを復号化して、第1の特徴の整数値と第2の特徴の整数値とを取得し;更に、第2の特徴の整数値を第1の復号化ネットワークに入力して、前記ターゲット・パラメータを取得し;次に、ターゲット・パラメータに基づいて第2の復号化ネットワークを構築し;最終的に、第1の特徴の整数値を第2の復号化ネットワークに入力して、復号化されたデータを取得するステップを含む。第1の特徴の整数値は、復号化されたデータを取得するために使用され、第2の特徴の整数値は、ターゲット・パラメータを取得するために使用される。
【0013】
[0014] 既存の復号化方法では、復号化ネットワーク(即ち、第2の復号化ネットワーク)は、固定されたパラメータ・ウェイトに基づいて、符号化された対象データの内容値特徴(content value feature)(即ち、第1の特徴の整数値)に対して復号化及び再構成を実行して、復号化されたデータを取得する。従来技術では、復号化ネットワークのパラメータ・ウェイトは、復号化される対象データに関連付けられていない、ということが分かる。しかしながら、本件出願では、復号化される対象データの内容特徴とモデル特徴(即ち、第1の特徴と第2の特徴)を、復号化される対象ビットストリーム内に符号化し、次いで、デコーダ側は復号化される対象先ビットストリームを復号化して、第2の特徴の整数値を取得し、第2の特徴の整数値は、第1の復号化ネットワークに入力されて、第2の復号化ネットワークのパラメータ・ウェイトを取得し、次いで、第2の復号化ネットワークのパラメータ・ウェイトはパラメータ・ウェイトに基づいて動的に調整され、その結果、第2の復号化ネットワークのパラメータ・ウェイトは復号化される対象データに関連付けられるようになり、第2の復号化ネットワークの表現能力は改善され、復号化及び再構成を経て第2の復号化ネットワークにより取得される復号化されたデータは、符号化された対象データにより近づく。これは、符号化及び復号化ネットワークのレート歪パフォーマンスを向上させる。
【0014】
[0015] オプションとして、ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である。
【0015】
[0016] オプションとして、復号化される対象のビットストリームは、第1の復号化される対象のビットストリームと第2の復号化される対象のビットストリームとを含む。
【0016】
[0017] 可能な実装において、前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値と第2の特徴の整数値とを取得するステップは:第1の復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得し;及び第2の復号化される対象のビットストリームを復号化して、前記第2の特徴の整数値を取得するステップを含む。
【0017】
[0018] 可能な実装において、第1の復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得するステップは:第1の復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;及び第1の特徴の整数値についての推定された確率分布に基づいて、第1の復号化される対象のビットストリームに関するエントロピー復号化を実行して、第1の特徴の整数値を取得するステップを含む。
【0018】
[0019] 可能な実装において、第1の復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するステップは:第1の情報に基づいて第1の復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するステップであって、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップを含む。
【0019】
[0020] 可能な実装において、第2の復号化される対象のビットストリームを復号化して、第2の特徴の整数値を取得するステップは:第2の復号化される対象のビットストリームにおける第2の特徴の整数値に関する確率推定を実行して、第2の特徴の整数値についての推定された確率分布を取得し;及び第2の特徴の整数値についての推定された確率分布に基づいて、第2の復号化される対象のビットストリームに関するエントロピー復号化を実行して、第2の特徴の整数値を取得するステップを含む。
【0020】
[0021] 可能な実装において、第2の復号化される対象のビットストリームにおける第2の特徴の整数値に関する確率推定を実行して、第2の特徴の整数値についての推定された確率分布を取得するステップは:第1の情報に基づいて第2の復号化される対象のビットストリームにおける第2の特徴の整数値に関する確率推定を実行して、第2の特徴の整数値についての推定された確率分布を取得するステップであって、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップを含む。
【0021】
[0022] 第3の態様によれば、本件出願は復号化方法を提供する。方法は:復号化される対象のビットストリームを取得し;次いで、復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得し;更に、第1の特徴の整数値を第1の復号化ネットワークに入力して、ターゲット・パラメータを取得し;次に、ターゲット・パラメータに基づいて第2の復号化ネットワークを構築し;最終的に、第1の特徴の整数値を第2の復号化ネットワークに入力して、復号化されたデータを取得するステップを含む。第1の特徴の整数値は、復号化されたデータとターゲット・パラメータとを取得するために使用される。
【0022】
[0023] 既存の復号化方法では、復号化ネットワーク(即ち、第2の復号化ネットワーク)は、固定されたパラメータ・ウェイトに基づいて、符号化された対象データの内容値特徴(即ち、第1の特徴の整数値)に対して復号化及び再構成を実行して、復号化されたデータを取得する。従来技術では、復号化ネットワークのパラメータ・ウェイトは、復号化される対象データに関連付けられていない、ということが分かる。しかしながら、本件出願では、復号化される対象データの特徴(即ち、第1の特徴)を符号化することにより取得される復号化された対象ビットストリームを復号化して、第1の特徴の整数値を取得し、第1の特徴の整数値は、第1の復号化ネットワークに入力されて、第2の復号化ネットワークのパラメータ・ウェイトを取得し、次いで、第2の復号化ネットワークのパラメータ・ウェイトはパラメータ・ウェイトに基づいて動的に調整され、その結果、第2の復号化ネットワークのパラメータ・ウェイトは復号化される対象データに関連付けられるようになり、第2の復号化ネットワークの表現能力は改善され、復号化及び再構成を経て第2の復号化ネットワークにより取得される復号化されたデータは、符号化された対象データにより近づく。これは、符号化及び復号化ネットワークのレート歪パフォーマンスを向上させる。
【0023】
[0024] オプションとして、ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である。
【0024】
[0025] 可能な実装において、復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得するステップは:復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;及び第1の特徴の整数値についての推定された確率分布に基づいて、復号化される対象のビットストリームに関するエントロピー復号化を実行して、第1の特徴の整数値を取得するステップを含む。
【0025】
[0026] 可能な実装において、復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するステップは:第1の情報に基づいて復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するステップであって、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップを含む。
【0026】
[0027] 第4の態様によれば、本件出願は符号化装置を提供する。符号化装置は処理回路を含む。処理回路は:符号化される対象データを取得し;符号化される対象データを第1の符号化ネットワークに入力して、ターゲット・パラメータを取得し;ターゲット・パラメータに基づいて第2の符号化ネットワークを構築し;符号化される対象データを第2の符号化ネットワークに入力して第1の特徴を取得し;及び第1の特徴を符号化して符号化されたビットストリームを取得するように構成されている。
【0027】
[0028] オプションとして、ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である。
【0028】
[0029] 可能な実装において、前記処理回路は:第1の特徴を丸めて第1の特徴の整数値を取得し;第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;及び第1の特徴の整数値についての推定された確率分布に基づいて、第1の特徴の整数値に関するエントロピー符号化を実行して、符号化されたビットストリームを取得するように具体的に構成されている。
【0029】
[0030] 可能な実装において、処理回路は:第1の情報に基づいて第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するように具体的に構成されており、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0030】
[0031] 第5の態様によれば、本件出願は復号化装置を提供する。復号化装置は処理回路を含む。処理回路は:復号化される対象のビットストリームを取得し;復号化される対象のビットストリームを復号化して、第1の特徴の整数値と第2の特徴の整数値とを取得し(第1の特徴の整数値は、復号化されたデータを取得するために使用され、前記第2の特徴の整数値は、ターゲット・パラメータを取得するために使用される);第2の特徴の整数値を第1の復号化ネットワークに入力して、ターゲット・パラメータを取得し;ターゲット・パラメータに基づいて第2の復号化ネットワークを構築し;及び第1の特徴の整数値を第2の復号化ネットワークに入力して、復号化されたデータを取得するように具体的に構成されている。
【0031】
[0032] オプションとして、ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である。
【0032】
[0033] オプションとして、復号化される対象のビットストリームは、第1の復号化される対象のビットストリームと第2の復号化される対象のビットストリームとを含む。
【0033】
[0034] 可能な実装において、処理回路は:第1の復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得し;及び第2の復号化される対象のビットストリームを復号化して、第2の特徴の整数値を取得するように具体的に構成されている。
【0034】
[0033] 可能な実装において、処理回路は:第1の復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;及び第1の特徴の整数値についての推定された確率分布に基づいて、第1の復号化される対象のビットストリームに関するエントロピー復号化を実行して、第1の特徴の整数値を取得するように具体的に構成されている。
【0035】
[0036] 可能な実装において、処理回路は:第1の情報に基づいて第1の復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するように具体的に構成されており、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0036】
[0037] 可能な実装において、処理回路は:第2の復号化される対象のビットストリームにおける第2の特徴の整数値に関する確率推定を実行して、第2の特徴の整数値についての推定された確率分布を取得し;及び第2の特徴の整数値についての推定された確率分布に基づいて、第2の復号化される対象のビットストリームに関するエントロピー復号化を実行して、第2の特徴の整数値を取得するように具体的に構成されている。
【0037】
[0038] 可能な実装において、処理回路は:第1の情報に基づいて第2の復号化される対象のビットストリームにおける第2の特徴の整数値に関する確率推定を実行して、第2の特徴の整数値についての推定された確率分布を取得するように具体的に構成されており、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0038】
[0039] 第6の態様によれば、本件出願は復号化装置を提供する。復号化装置は処理回路を含む。処理回路は:復号化される対象のビットストリームを取得し;復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得し(ここで、第1の特徴の整数値は、復号化されたデータとターゲット・パラメータとを取得するために使用される);第1の特徴の整数値を第1の復号化ネットワークに入力して、ターゲット・パラメータを取得し;ターゲット・パラメータに基づいて第2の復号化ネットワークを構築し;及び第1の特徴の整数値を第2の復号化ネットワークに入力して、復号化されたデータを取得するように具体的に構成されている。
【0039】
[0040] オプションとして、ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である。
【0040】
[0044] 可能な実装において、処理回路は:復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;及び第1の特徴の整数値についての推定された確率分布に基づいて、第1の復号化される対象のビットストリームに関するエントロピー復号化を実行して、第1の特徴の整数値を取得するように具体的に構成されている。
【0041】
[0042] 可能な実装において、処理回路は:第1の情報に基づいて復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得するように具体的に構成されており、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0042】
[0043] 第7の態様によれば、本件出願の実施形態はエンコーダを更に提供する。エンコーダは、少なくとも1つのプロセッサを含み、少なくとも1つのプロセッサがプログラム・コード又は命令を実行すると、第1の態様又は第1の態様の可能な実装の何れか1つにおける方法が実施される。
【0043】
[0044] オプションとして、エンコーダは、少なくとも1つのメモリを更に含む可能性があり、少なくとも1つのメモリは、プログラム・コード又は命令を記憶するように構成されている。
【0044】
[0045] 第8の態様によれば、本件出願の実施形態は、デコーダを更に提供する。デコーダは、少なくとも1つのプロセッサを含み、少なくとも1つのプロセッサがプログラム・コード又は命令を実行すると、第2の態様又は第2の態様の可能な実装の何れか1つにおける方法が実施される。
【0045】
[0046] オプションとして、デコーダは、少なくとも1つのメモリを更に含む可能性があり、少なくとも1つのメモリは、プログラム・コード又は命令を記憶するように構成される。
【0046】
[0047] 第9の態様によれば、本件出願の実施形態は、入力インターフェース、出力インターフェース、及び少なくとも1つのプロセッサを含むチップを更に提供する。オプションとして、チップは、メモリを更に含む。少なくとも1つのプロセッサは、メモリ内のコードを実行するように構成される。少なくとも1つのプロセッサがコードを実行する場合に、チップは、第1の態様又は第1の態様の可能な実装の何れか1つにおける方法を実施する。
【0047】
[0048] オプションとして、チップは集積回路であってもよい。
【0048】
[0049] 第10の態様によれば、本件出願の実施形態は、端末を更に提供する。端末は、前述の符号化装置、復号化装置、エンコーダ、デコーダ、又はチップを含む。
【0049】
[0050] 第11の態様によれば、本件出願は、コンピュータ・プログラムを記憶するように構成された、コンピュータ読み取り可能な記憶媒体を更に提供する。コンピュータ・プログラムは、第1の態様又は第1の態様の可能な実装の何れか1つにおける方法を実施するように構成される。
【0050】
[0051] 第12の態様によれば、本件出願の実施形態は、命令を含むコンピュータ・プログラム製品を更に提供する。コンピュータ・プログラム製品がコンピュータにおいて動作すると、コンピュータは、第1の態様又は第1の態様の可能な実装の何れか1つにおける方法を実施する。
【0051】
[0052] 実施形態で提供される符号化装置、復号化装置、エンコーダ、デコーダ、コンピュータ記憶媒体、コンピュータ・プログラム製品、及びチップは全て、上記で提供される方法を実行するように構成される。従って、達成可能な有益な効果については、上記でもたらされる方法の有益な効果を参照されたい。詳細は、ここで再び説明されない。
【図面の簡単な説明】
【0052】
[0053] 本件出願の実施形態における技術的解決策をより明確に説明するために、以下、実施形態を説明するための添付図面を簡単に説明する。以下の説明における添付図面は、単に本件出願の一部の実施形態を示しているに過ぎず、当業者は、創作的労力なしに、これらの添付図面から他の
添付図面を更に導出する可能性がある、ということは明白である。
【
図1a】[0054]
図1aは、本件出願の実施形態によるコーディング・システムの例示的なブロック図である。
【
図1b】[0055]
図1bは、本件出願の実施形態によるビデオ・コーディング・システムの例示的なブロック図である。
【
図2】[0056]
図2は、本件出願の実施形態によるビデオ・エンコーダの例示的なブロック図である。
【
図3】[0057]
図3は、本件出願の実施形態によるビデオ・デコーダの例示的なブロック図である。
【
図4】[0058]
図4は、本件出願の実施形態による候補ピクチャ・ブロックの一例の概略図である。
【
図5】[0059]
図5は、本件出願の実施形態によるビデオ・コーディング・デバイスの例示的なブロック図である。
【
図6】[0060]
図6は、本件出願の実施形態による装置の例示的なブロック図である。
【
図7a】[0061]
図7aは、本件出願の実施形態によるアプリケーション・シナリオの概略図である。
【
図7b】[0062]
図7bは、本件出願の実施形態によるアプリケーション・シナリオの概略図である。
【
図8】[0063]
図8は、本件出願の実施形態による符号化及び復号化方法の概略フローチャートである。
【
図9】[0064]
図9は、本件出願の実施形態による符号化及び復号化システムの構造の概略図である。
【
図10】[0065]
図10は、本件出願の実施形態による別の符号化及び復号化方法の概略フローチャートである。
【
図11】[0066]
図11は、本件出願の実施形態による別の符号化及び復号化システムの構造の概略図である。
【
図12】[0067]
図12は、本件出願の実施形態による更に別の符号化及び復号化システムの構造の概略図である。
【
図13】[0068]
図13は、本件出願の実施形態による更に別の符号化及び復号化方法の概略フローチャートである。
【
図14】[0069]
図14は、本件出願の実施形態による更に別の符号化及び復号化システムの構造の概略図である。
【
図15】[0070]
図15は、本件出願の実施形態による符号化及び復号化方法のパフォーマンスの概略図である。
【
図16】[0071]
図16は、本件出願の実施形態によるアプリケーション・シナリオの概略図である。
【
図17】[0072]
図17は、本件出願の実施形態による別のアプリケーション・シナリオの概略図である。
【
図18】[0073]
図18は、本件出願の実施形態による符号化及び復号化装置の構造の概略図である。
【
図19】[0074]
図19は、本件出願の実施形態による別の符号化及び復号化装置の構造の概略図である。
【
図20】[0075]
図20は、本件出願の実施形態によるチップの構造の概略図である。
【発明を実施するための形態】
【0053】
[0076] 以下、本件出願の実施形態における添付図面を参照ながら本件出願の実施形態における技術的解決策を明確に説明する。説明される実施形態は、本件出願の実施形態の全部ではなく一部分であるに過ぎない、ということは明らかである。本件出願の実施形態に基づいて当業者により創作的労力なしに得られる他の全ての実施形態は、本件出願の保護範囲内に属するものとする。
【0054】
[0077] 本明細書における用語「及び/又は」は、関連付けられた対象を記述するための関連付け関係のみを記述しており、3つの関係が存在し得ることを表す。例えば、A及び/又はBは、以下の3つのケース:Aのみが存在する、AとBの両方が存在する、そして、Bのみが存在することを表す可能性がある。
【0055】
[0078] 本件出願の明細書及び添付図面において、「第1」、「第2」等の用語は、異なる対象物を区別すること、又は、同じ対象物の異なる処理を区別することを意図しているが、対象物の特定の順序を示してはいない。
【0056】
[0079] 更に、本件出願の説明における「含む」、「有する」、又はそれらの他の変形の用語は、非排他的な包含をカバーするように意図されている。例えば、一連のステップ又はユニットを含むプロセス、方法、システム、製品、又はデバイスは、列挙されたステップ又はユニットに限定されず、オプションとして、別の列挙されていないステップ又はユニットを更に含んだり、又は、オプションとして、プロセス、方法、システム、製品、又はデバイスの別の固有のステップ又はユニットを更に含んだりする。
【0057】
[0080] 本件出願の実施形態の説明において、「例」或いは「例えば」という言葉は、例、例示、又は説明を与えることを表すために使用される、というに留意すべきである。本件出願の実施形態において「例」又は「例えば」として説明される何らかの実施形態又は設計態様は、別の実施形態又は設計態様よりも好ましかったり、又はより多くの利点を有していたりするものとして説明されているはずはない。厳密には、「例」、「例えば」又はこれに類する用語の使用は、特定の態様で相対的な概念を提示するように意図されている。
【0058】
[0081] 本件出願の説明において、別意に指定されていない限り、「複数の」は2つ又は2つより多いことを意味する。
【0059】
[0082] 本件出願の実施形態は、AIベースのデータ圧縮/圧縮解除技術を提供し、特に、ニューラル・ネットワーク・ベースのデータ圧縮/圧縮解除技術を提供しており、具体的には、符号化及び復号化技術を提供して、従来のハイブリッド・データ符号化及び復号化システムを改善する。
【0060】
[0083] データ符号化及び復号化は、データ符号化及びデータ復号化を含む。データ符号化は、ソース側(又は、通常、エンコーダ側と言及される)で実行され、通常、生データ(raw data)を処理すること(例えば、圧縮)を含み、生データを表現するために要求されるデータ量を低減する(より効率的な記憶及び/又は伝送のためである)。データ復号化は、デスティネーション側(又は、通常、デコーダ側と言及される)で実行され、通常、エンコーダ側に対する逆処理を含み、生データを再構築する。本件出願の実施形態におけるデータの「符号化及び復号化」は、データの「符号化」又は「復号化」と理解されるべきである。符号化部と復号化部との組み合わせは、CODEC(encoding and decoding,CODEC)とも呼ばれる。
【0061】
[0084] ロスレス・データ・コーディングの場合、生データを再構成することが可能である。換言すれば、再構成された生データは生データと同じ品質を有する(記憶又は伝送の間に、伝送ロス又はその他のデータ・ロスは生じていないことを仮定している)。ロスレスでないデータ・コーディングの場合、生データを表現するのに要求されるデータ量を減らすために、例えば量子化によって更なる圧縮が実行され、生データをデコーダ側で完全に再構成することはできない。換言すれば、再構成された生データの品質は、生データの品質より低かったり又は悪かったりする。
【0062】
[0085] 本件発明の実施形態は、ビデオ・データ、ピクチャ・データ、オーディオ・データ、整数データ、及びその他のデータであって圧縮/圧縮解除要件を有するものに適用される可能性がある。以下、ビデオ・データのコーディング(手短に、ビデオ・コーディングと言及される)を用いることによって、本件出願の実施形態を説明する。他のタイプのデータ(例えば、ピクチャ・データ、オーディオ・データ、整数データ、及びその他のデータであって圧縮/圧縮解除要件を有するもの)については、以下の説明を参照されたい。詳細は、本件出願の実施形態の中では説明されない。ビデオ・コーディングと比較して、オーディオ・データや整数データのようなデータをコーディングする処理において、データは、ブロックに分割されることを必要とせず、データは直接的にコーディングされてもよい。
【0063】
[0086] ビデオ・コーディングは、通常、ビデオ又はビデオ・シーケンスを形成するピクチャのシーケンスの処理を示す。ビデオ・コーディングの分野では、「ピクチャ(picture)」、「フレーム(frame)」、及び「画像(image)」という用語は同義語として使用される可能性がある。
【0064】
[0087] 幾つかのビデオ・コーディング規格は、「非ロスレス・ハイブリッド・ビデオ・コーディング」(即ち、ピクセル・ドメインにおける空間及び時間予測が、変換ドメインにおいて量子化を適用するために2D変換コーディングと組み合わされる)に使用される。ビデオ・シーケンスの各ピクチャは、通常、オーバーラップしないブロックのセットにパーティション化され、コーディングは、通常、ブロック・レベルで実行される。換言すれば、エンコーダにおいて、ビデオは、通常、ブロック(ビデオ・ブロック)レベルで処理される、即ち、符号化される。例えば、予測ブロックが、空間(イントラ・ピクチャ)予測と時間(インター・ピクチャ)予測により生成され、その予測ブロックは、現在のブロック(処理中又は処理予定のブロック)から減算されて、残差ブロックを取得し、その残差ブロックは変換ドメインで変換されて量子化され、伝送される対象のデータ量を削減(圧縮)する。デコーダ側では、エンコーダと比較して逆処理部が、符号化されたブロックや圧縮されたブロックに対して適用されて、表現のためのカレント・ブロックを再構成する。更に、エンコーダはデコーダの処理ステップを複製し、その結果、エンコーダとデコーダは同じ予測(例えば、イントラ予測やインター予測)及び/又はピクセル再構成を行い、後続ブロックを処理する、即ちコーディングする。
【0065】
[0088] コーディング・システム10の以下の実施形態において、エンコーダ20及びデコーダ30は
図1aないし
図3に基づいて説明される。
【0066】
[0089]
図1aは、本件出願の実施形態によるコーディング・システム10の例示的なブロック図であり、例えば、本件出願の技法を利用することが可能なビデオ・コーディング・システム10(略して、コーディング・システム10)である。ビデオ・コーディング・システム10のビデオ・エンコーダ20(又は略して、エンコーダ20)及びビデオ・デコーダ30(又は略して、デコーダ30)は、本件で説明される様々な例による技法を実行するように構成され可能性があるデバイスを表す。
【0067】
[0090]
図1aに示されるように、コーディング・システム10は、符号化されたピクチャのような符号化されたピクチャ・データ21を、符号化されたピクチャ・データ21を復号化するためのデスティネーション・デバイス14に提供するように構成されたソース・デバイス12を含む。
【0068】
[0091] ソース・デバイス12は、エンコーダ20を含み、追加的に、即ち、オプションとして、ピクチャ・ソース16、前処理プロセッサ(又は前処理ユニット)18、例えば、ピクチャ前処理プロセッサ、及び通信インターフェース(又は通信ユニット)22を含む可能性がある。
【0069】
[0092] ピクチャ・ソース16は、例えば実世界のピクチャを捕捉するカメラのような任意の種類のピクチャ捕捉デバイス、及び/又は、例えばコンピュータ・アニメーション・ピクチャを生成するコンピュータ・グラフィックス・プロセッサのような任意の種類のピクチャ生成デバイス、又は実世界のピクチャ、コンピュータ生成ピクチャ(例えば、スクリーン・コンテンツ又はバーチャル・リアリティ(VR)ピクチャ)、及び/又はそれらの任意の組み合わせ(例えば、拡張現実(AR)ピクチャ)を取得及び/又は提供する任意の種類の他のデバイスを含んでもよいし、又はそれらであってもよい。ピクチャ・ソースは、上記の任意のピクチャを記憶する任意の種類のメモリ又はストレージである可能性がある。
【0070】
[0093] 前処理プロセッサ(又は前処理ユニット)18によって実行される処理を区別するために、ピクチャ(又はピクチャ・データ)17は、生ピクチャ(又は生ピクチャ・データ)17とも呼ばれる可能性もある。
【0071】
[0094] 前処理プロセッサ18は、生ピクチャ・データ17を受信し、生ピクチャ・データ17を前処理して、前処理されたピクチャ(又は前処理済みピクチャ・データ)19を取得するように構成される。前処理プロセッサ18によって実行される前処理は、例えば、トリミング、色フォーマット変換(例えば、RGBからYCbCrへ)、色補正、又はノイズ除去を含む可能性がある。前処理ユニット18は、オプションのコンポーネントであってもよいことを理解することができる。
【0072】
[0095] ビデオ・エンコーダ(又はエンコーダ)20は、前処理されたピクチャ・データ19を受信し、符号化されたピクチャ・データ21を提供するように構成される(更なる詳細は、例えば、
図2に基づいて後述される)。
【0073】
[0096] ソース・デバイス12の通信インターフェース22は、符号化されたピクチャ・データ21を受信し、符号化されたピクチャ・データ21(又はその何らかの更に処理されたバージョン)を、通信チャネル13を介して別のデバイス、例えばデスティネーション・デバイス14又は任意の他のデバイスへ、格納又は直接的な再構成のために伝送するように構成されることが可能である。
【0074】
[0097] デスティネーション・デバイス14は、デコーダ30を含み、更に、即ちオプションとして、通信インターフェース(又は通信ユニット)28、後処理プロセッサ(又は、後処理ユニット)32、及び表示デバイス34を含む可能性がある。
【0075】
[0098] デスティネーション・デバイス14の通信インターフェース28は、符号化されたピクチャ・データ21(又はその何らかの更に処理されたバージョン)を、ソース・デバイス12又は記憶デバイスのような任意の他のソース・デバイスから直接的に受信し、符号化されたピクチャ・データ21をデコーダ30に提供するように構成される。例えば、記憶デバイスは符号化ピクチャ・データ記憶デバイスである。
【0076】
[0099] 通信インターフェース22及び通信インターフェース28は、ソース・デバイス12とデスティネーション・デバイス14との間の直接的な通信リンク、例えば直接的な有線又は無線接続を介して、又は任意の種類のネットワーク、例えば有線若しくは無線ネットワーク又はそれらの任意の組み合わせ、又は任意の種類の私的な及び公的なネットワーク、又はそれらの任意の組み合わせを介して、符号化されたピクチャ・データ21を伝送又は受信するように構成されることが可能である。
【0077】
[0100] 通信インターフェース22は、例えば、符号化されたピクチャ・データ21を、例えばパケットのような適切なフォーマットにパッケージ化し、及び/又は、通信リンク又は通信ネットワークを介する伝送のための任意の種類の伝送符号化又は処理を使用して、符号化されたピクチャ・データを処理するように構成されることが可能である。
【0078】
[0101] 通信インターフェース22に対応する通信インターフェース28は、例えば、伝送されたデータを受信し、符号化されたピクチャ・データ21を取得するために任意の種類の対応する伝送復号化又は処理及び/又は非パッケージ化を使用して、伝送データを処理するように構成されることが可能である。
【0079】
[0102] 通信インターフェース22及び通信インターフェース28の両方は、
図1aにおいてソース・デバイス12からデスティネーション・デバイス14へ向かう通信チャネル13に関する矢印により示される一方向通信インターフェース、又は双方向通信インターフェースとして構成されることが可能であり、例えばメッセージを送信及び受信するように、例えば接続をセットアップするように、通信リンク及び/又はデータ伝送、例えば符号化されたピクチャ・データ伝送に関連する他の任意の情報を確認及び交換するように、構成されることが可能である。
【0080】
[0103] ビデオ・デコーダ(又は、デコーダ)30は、符号化されたピクチャ・データ21を受信し、復号化されたピクチャ・データ(又は、復号化されたピクチャ・データ)31を提供するように構成される(更なる詳細は、例えば、
図3に基づいて説明される)。
【0081】
[0104] 後処理プロセッサ32は、例えば復号化されたピクチャ31のような復号化されたピクチャ・データ31(再構成されたピクチャ・データとも呼ばれる)を後処理して、後処理されたピクチャ・データ33、例えば、後処理されたピクチャを取得するように構成される。後処理ユニット32によって実行される後処理は、例えばカラー・フォーマット変換(例えば、YCbCrからRGBへ)、色補正、トリミング、リ・サンプリング、又はその他の任意の処理、例えば表示デバイス34による表示のための例えば復号化されたピクチャ・データ31を準備するためのものを含む可能性がある。
【0082】
[0105] 表示デバイス34は、後処理されたピクチャ・データ33を受信して、ピクチャを、例えばユーザー又はビューアに表示するように構成されている。表示デバイス34は、再構成されたピクチャを表現する任意の種類のディスプレイ、例えば一体化された又は外部のディスプレイ又はモニタであってもよいし、又はそれらを含んでもよい。ディスプレイは、例えば、液晶ディスプレイ(liquid crystal display,,LCD)、有機発光ダイオード(organic light emitting diode,OLED)ディスプレイ、プラズマ・ディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オン・シリコン(liquid crystal on silicon,LCoS)、デジタル光プロセッサ(digital light processor,DLP)、又は任意の他の種類のディスプレイを含む可能性がある。
【0083】
[0106] コーディング・システム10は、訓練エンジン25を更に含む。訓練エンジン25は、エンコーダ20(特に、エンコーダ20のエントロピー符号化ユニット270)又はデコーダ30(特に、デコーダ30のエントロピー復号化ユニット304)が、推定によって得られる推定された確率分布に基づいて、符号化される対象ピクチャ・ブロックに対してエントロピー符号化を実行するように、エンコーダ20を訓練するように構成されている。訓練エンジン25の詳細な説明については、以下の方法の実施形態を参照されたい。
【0084】
[0107]
図1aは、ソース・デバイス12とデスティネーション・デバイス14とを別々のデバイスとして描いているが、デバイスの実施形態は、代替的に、ソース・デバイス12とデスティネーション・デバイス14の双方、又はソース・デバイス12とデスティネーション・デバイス14の双方の機能、即ち、ソース・デバイス12又は対応する機能とデスティネーション・デバイス14又は対応する機能とを含む可能性がある。そのような実施形態では、ソース・デバイス12又は対応する機能とデスティネーション・デバイス14又は対応する機能とは、同じハードウェア及び/又はソフトウェアによって、又は別個のハードウェア及び/又はソフトウェア、又はそれらの任意の組み合わせによって実現されてもよい。
【0085】
[0108] 明細書に基づいて当業者には明らかであるように、
図1aに示すソース・デバイス12及び/又はデスティネーション・デバイス14における機能又は様々なユニットの存在及び(厳密な)分割は、実際のデバイス及びアプリケーションに応じて異なる可能性がある。
【0086】
[0109]
図1bは、本件出願の実施形態によるビデオ・コーディング・システム40の例示的なブロック図である。エンコーダ20(例えば、ビデオ・エンコーダ20)又はデコーダ30(例えば、ビデオ・デコーダ30)又はエンコーダ20及びデコーダ30の双方は、
図1bに示されるようなビデオ・コーディング・システムの処理回路により、例えば、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processor,DSP)、特定用途向け集積回路(application-specific integrated circuit,ASIC)、フィールド・プログラマブル・ゲート・アレイ(field-programmable gate array,FPGA)、ディスクリート・ロジック、ハードウェア、ビデオ・コーディング専用プロセッサ又はそれらの任意の組み合わせにより、実現されることが可能である。
図2及び
図3を参照する。
図2は、本件出願の実施形態によるビデオ・エンコーダの例示的なブロック図であり、
図3は、本件出願の実施形態によるビデオ・デコーダの例示的なブロック図である。エンコーダ20は、
図2のエンコーダ20及び/又は本件明細書で説明される他の任意のエンコーダ・システム又はサブシステムに関して説明される様々なモジュールを具現化するために、処理回路46により実施されてもよい。デコーダ30は、
図3のデコーダ30及び/又は本件明細書で説明される他の任意のデコーダ・システム又はサブシステムに関して説明される様々なモジュールを具現化するために、処理回路46により実施されてもよい。処理回路46は、後述するように様々な動作を実行するように構成されることが可能である。
図5に示すように、技術が部分的にソフトウェアで実現される場合、デバイスは、適切な非一時的なコンピュータ読み取り可能な記憶媒体にソフトウェアの命令を記憶する可能性があり、本件出願の技術を実行するために1つ以上のプロセッサを使用するハードウェアで命令を実行する可能性がある。ビデオ・エンコーダ20とビデオ・デコーダ30の何れかは、例えば
図1bに示すように、単一のデバイス内の組み合わされたエンコーダ/デコーダ(encoder/decoder,CODEC)の一部として統合されてもよい。
【0087】
[0110] ソース・デバイス12及びデスティネーション・デバイス14は、任意の種類のハンドヘルド又はステーショナリ・デバイスを含む広範囲に及ぶ任意のデバイス、例えば、ノートブック又はラップトップ・コンピュータ、携帯電話、スマートフォン、タブレット又はタブレット・コンピュータ、カメラ、デスクトップ・コンピュータ、セット・トップ・ボックス、テレビ、表示デバイス、デジタル・メディア・プレーヤ、ビデオ・ゲーミング・コンソール、ビデオ・ストリーミング・デバイス(コンテンツ・サービス・サーバー又はコンテンツ配信サーバー等)、放送受信デバイス、放送送信デバイス、監視デバイス等を含む可能性があり、また、任意の種類のオペレーティング・システムを使用してもよいし、又は使用しなくてもよい。ソース・デバイス12及びデスティネーション・デバイス14はまた、クラウド演算シナリオにおけるデバイス、例えば、クラウド演算シナリオにおける仮想マシンであってもよい。場合によっては、ソース・デバイス12及びデスティネーション・デバイス14は無線通信用に装備されてもよい。従って、ソース・デバイス12及びデスティネーション・デバイス14は、無線通信デバイスであってもよい。
【0088】
[0111] 仮想現実(virtual reality,VR)アプリケーション、拡張現実(augmented reality,AR)アプリケーション、又は複合現実(mixed reality,MR)アプリケーションのような仮想シナリオ・アプリケーション(application,APP)が、ソース・デバイス12及びデスティネーション・デバイス14のそれぞれにインストールされる可能性があり、VRアプリケーション、ARアプリケーション、又はMRアプリケーションが、ユーザー操作(例えば、タップ、タッチ、スライド、シェイキング、又は音声制御)に基づいて実行される可能性がある。ソース・デバイス12及びデスティネーション・デバイス14はそれぞれ、カメラ及び/又はセンサを用いて環境内の任意の対象物のピクチャ/ビデオをキャプチャし、キャプチャしたピクチャ/ビデオに基づいて表示デバイス上に仮想オブジェクトを表示する可能性がある。仮想オブジェクトは、VRシナリオ、ARシナリオ、又はMRシナリオにおける仮想オブジェクト(即ち、仮想環境内のオブジェクト)であってもよい。
【0089】
[0112] 本件出願のこの実施形態において、ソース・デバイス12及びデスティネーション・デバイス14内の仮想シナリオ・アプリケーションは、ソース・デバイス12及びデスティネーション・デバイス14の組み込みアプリケーションであってもよいし、或いは、第三者サービス・プロバイダによって提供されるアプリケーションであって、ユーザーによってインストールされるアプリケーションであってもよい、ということに留意すべきである。これは、本件において特に限定されない。
【0090】
[0113] 更に、リアルタイム・ビデオ伝送アプリケーション、例えば、ライブ放送アプリケーションが、ソース・デバイス12及びデスティネーション・デバイス14のそれぞれにインストールされていてもよい。ソース・デバイス12及びデスティネーション・デバイス14はそれぞれ、カメラを使用してピクチャ/ビデオをキャプチャし、キャプチャしたピクチャ/ビデオを表示デバイスに表示することが可能である。
【0091】
[0114] 場合によっては、
図1aに示すビデオ・コーディング・システム10は単なる一例に過ぎず、本件出願の技術は、符号化デバイスと復号化デバイスとの間で何らかのデータ通信を必ずしも含む必要のないビデオ・コーディング設定(例えば、ビデオ符号化又はビデオ復号化)に適用可能である。他の例において、データは、ローカル・メモリから検索され、ネットワークを介してストリーミングされる、等々。ビデオ符号化デバイスは、データを符号化し、符号化したデータをメモリに格納することが可能であり、及び/又はビデオ復号化デバイスは、データをメモリから取り出し、データを復号化することが可能である。一部の例では、符号化及び復号化は、互いに通信しないが、メモリへのデータを符号化し及び/又はメモリからデータを取り出してデータを復号化するデバイスによって実行される。
【0092】
[0115]
図1bは、本件出願のこの実施形態によるビデオ・コーディング・システム40の例示的なブロック図である。
図1bに示すように、ビデオ・コーディング・システム40は、撮像デバイス41、ビデオ・エンコーダ20、及びビデオ・デコーダ30(及び/又は処理回路46によって実現されるビデオ・エンコーダ/デコーダ)、アンテナ42、1つ以上のプロセッサ43、1つ以上のメモリ44、及び/又は表示デバイス45を含む可能性がある。
【0093】
[0116]
図1bに示すように、撮像デバイス41、アンテナ42、処理回路46、ビデオ・エンコーダ20、ビデオ・デコーダ30、プロセッサ43、メモリ44、及び/又はディスプレイ・デバイス45は、互いに通信することが可能である。ビデオ・コーディング・システム40は、様々な例において、ビデオ・エンコーダ20のみ、或いはビデオ・デコーダ30のみを含む可能性がある
[0117] 一部の例では、アンテナ42は、ビデオ・データの符号化されたビットストリームを送信又は受信するように構成されることが可能である。更に、一部の例では、ディスプレイ・デバイス45は、ビデオ・データを提示するように構成される可能性がある。処理回路46は、特定用途向け集積回路(application-specific integrated circuit,ASIC)ロジック、グラフィックス処理ユニット、汎用プロセッサなどを含む可能性がある。ビデオ・コーディング・システム40はまた、オプションのプロセッサ43を含む可能性がある。オプションのプロセッサ43は、同様に、特定用途向け集積回路(application-specific integrated circuit,ASIC)ロジック、グラフィックス処理ユニット、汎用プロセッサなどを含む可能性がある。更に、メモリ44は、例えば、揮発性メモリ(例えば、スタティック・ランダム・アクセス・メモリ(static random-access memory,SRAM)又はダイナミック・ランダム・アクセス・メモリ(dynamic random-access memory,DRAM))又は不揮発性メモリ(例えば、フラッシュ・メモリ)などの任意のタイプのメモリであってもよい。非限定的な例において、メモリ44はキャッシュ・メモリによって実装される可能性がある。他の例において、処理回路46は、ピクチャ・バッファを実現するためのメモリ(例えば、キャッシュ)を含む可能性がある。
【0094】
[0118] 一部の例では、論理回路によって実現されるビデオ・エンコーダ20は、(例えば、処理回路46又はメモリ44によって実現される)ピクチャ・バッファと、(例えば、処理回路46によって実現される)グラフィックス処理ユニットとを含む可能性がある。グラフィックス処理ユニットは、ピクチャ・バッファに通信可能に結合されることが可能である。グラフィックス処理ユニットは、処理回路46によって実現されるビデオ・エンコーダ20に含まれて、
図2を参照して説明される様々なモジュール、及び/又は本件明細書で説明される任意の他のエンコーダ・システム又はサブシステムを実現することが可能である。論理回路は、本件明細書で説明される様々な動作を実行するように構成されることが可能である。
【0095】
[0119] 一部の例では、ビデオ・デコーダ30は、
図3のビデオ・デコーダ30及び/又は本件明細書で説明される任意の他のデコーダ・システム若しくはサブシステムを参照しながら説明される様々なモジュールを実現するために、同様な方法で処理回路46によって実現されてもよい。一部の例では、論理回路によって実現されるビデオ・デコーダ30は、(処理回路46又はメモリ44によって実現される)ピクチャ・バッファと、(例えば、処理回路46によって実現される)グラフィックス処理ユニットとを含むことが可能である。グラフィックス処理ユニットは、ピクチャ・バッファに通信可能に結合されることが可能である。グラフィックス処理ユニットは、処理回路46によって実現されるビデオ・デコーダ30に含まれ、
図3を参照しながら説明される様々なモジュール、及び/又は本件明細書で説明される他の任意のデコーダ・システム又はサブシステムを実現することが可能である。
【0096】
[0120] 一部の例では、アンテナ42は、ビデオ・データの符号化されたビットストリームを受信するように構成されることが可能である。説明されるように、符号化されるビットストリームは、本件明細書で説明されるビデオ・フレーム符号化に関連するデータ、インジケータ、インデックス値、モード選択データなど、例えば、符号化パーティショニングに関連するデータ(例えば、変換係数又は量子化変換係数、オプションのインジケータ(説明されるようなもの)、及び/又は符号化パーティショニングを定義するデータ)を含む可能性がある。ビデオ・コーディング・システム40は、アンテナ42に結合されたビデオ・デコーダ30であって、符号化されたビットストリームを復号化するように構成されたビデオ・デコーダ30を更に含むことが可能である。ディスプレイ・デバイス45は、ビデオ・フレームを提示するように構成されている。
【0097】
[0121] 本件出願のこの実施形態では、ビデオ・エンコーダ20を参照しながら説明した例について、ビデオ・デコーダ30は、逆の処理を実行するように構成されることが可能である、ということが理解されるべきである。シグナリング・シンタックス要素に関し、ビデオ・デコーダ30は、そのようなシンタックス要素を受信して解析し、相応に、関連するビデオ・データを復号化するように構成されることが可能である。一部の例では、ビデオ・エンコーダ20は、シンタックス要素を、符号化されたビデオ・ビットストリームにエントロピー符号化することが可能である。そのような例では、ビデオ・デコーダ30は、そのようなシンタックス要素を解析し、相応に、関連するビデオ・データを復号化することが可能である。
【0098】
[0122] 説明の簡明性のために、本件出願の実施形態は、ITU-Tビデオ・コーディング・エキスパートグループ(video coding experts group,VCEG)及びISO/IEC動画エキスパート・グループ(motion picture experts group,MPEG)のビデオ・コーディングに関する共同研究チーム(joint collaboration team on video coding,JCT-VC)によって開発された汎用ビデオ・コーディング(versatile video coding,VVC)参照ソフトウェア又は高効率ビデオ・コーディング(high-efficiency video coding,HEVC)を参照することによって説明される。当業者は、本件出願の実施形態がHEVCやVVCに限定されないことを理解している。
【0099】
[0123] エンコーダ及び符号化方法
[0124]
図2に示されるように、ビデオ・エンコーダ20は、入力端(又は入力インターフェース)201と、残差計算ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構成ユニット214と、ループ・フィルタ220と、復号化ピクチャ・バッファ(decoded picture buffer,DPB)230と、モード選択ユニット260と、エントロピー符号化ユニット270と、出力端(又は出力インターフェース)272とを含む。モード選択ユニット260は、インター予測ユニット244、イントラ予測ユニット254、及びパーティショニング・ユニット262を含む可能性がある。インター予測ユニット244は、動き推定ユニット及び動き補償ユニット(図示せず)を含む可能性がある。
図2に示されるビデオ・エンコーダ20は、ハイブリッド・ビデオ・コーデックに基づくビデオ・エンコーダ又はハイブリッド・ビデオ・エンコーダとも呼ばれる場合もある。
【0100】
[0125]
図2を参照されたい。インター予測ユニットは、訓練されたターゲット・モデル(ニューラル・ネットワークとも呼ばれる)である。ニューラル・ネットワークは、入力ピクチャ、ピクチャ・エリア、又はピクチャ・ブロックを処理して、入力ピクチャ・ブロックの予測子を生成するように構成される。例えば、インター予測のためのニューラル・ネットワークは、入力ピクチャ、ピクチャ・エリア、又はピクチャ・ブロックを受信し、入力ピクチャ、ピクチャ・エリア、又はピクチャ・ブロックの予測子を生成するように構成される。
【0101】
[0126] 残差計算ユニット204、変換処理ユニット206、量子化ユニット208、及びモード選択ユニット260は、エンコーダ20の前方信号経路を形成する一方、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループ・フィルタ220、復号化ピクチャ・バッファ(decoded picture buffer,DPB)230、インター予測ユニット244、及びイントラ予測ユニット254は、エンコーダの後方信号経路を形成する。エンコーダ20の後方信号経路は、デコーダ(
図3のデコーダ30を参照されたい)の信号経路に対応する。逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループ・フィルタ220、復号化ピクチャ・バッファ230、インター予測ユニット244、及びイントラ予測ユニット254も、ビデオ・エンコーダ20の「内蔵デコーダ(built-in decoder)」を形成する。
【0102】
[0127] ピクチャ及びピクチャ・パーティショニング(ピクチャ及びブロック)
[0128] エンコーダ20は、入力端201を介して、ピクチャ(又はピクチャ・データ)17、例えば、ビデオ又はビデオ・シーケンスを形成するピクチャのシーケンス内にあるピクチャを受信するように構成されることが可能である。受信したピクチャ又はピクチャ・データはまた、前処理されたピクチャ(又は前処理されたピクチャ・データ)19であってもよい。簡単のため、以下の説明は、ピクチャ17を参照している。ピクチャ17はまた、カレント・ピクチャ(current picture)又は符号化される対象ピクチャと言及されてもよい(特に、ビデオ符号化において、カレント・ピクチャを、他のピクチャ、例えば、同じビデオ・シーケンス、即ち、カレント・ピクチャも含むビデオ・シーケンスのうちの以前に符号化及び/又は復号化されたピクチャと区別するためである)。
【0103】
[0129] (デジタル)ピクチャは、強度値を有するサンプルの2次元アレイ又はマトリクスであるか、又はそのように考えることが可能である。アレイ中のサンプルはまた、ピクセル(ピクセル又はペル)(ピクチャ要素の短縮形)と言及される場合もある。アレイの水平及び垂直方向(又は軸)におけるサンプルの数は、ピクチャのサイズ及び/又は解像度を規定する。色の表現には、通常、3つの色成分が使用され、具体的には、ピクチャは、3つのサンプル・アレイとして表現されてもよいし、又はそれを含んでいてもよい。RBGフォーマット又は色空間において、ピクチャは対応する赤、緑、及び青のサンプル・アレイを含む。しかしながら、ビデオ・コーディングにおいては、各ピクセルは、通常、ルミナンス/クロミナンス・フォーマット又は色空間、例えばYCbCrで表現され、YCbCrは、Yで示されるルミナンス成分(時折、Lによって示される)とCb及びCrで示される2つのクロミナンス成分とを含む。ルミナンス(ルマ)成分Yは、輝度又はグレー・レベル強度を表し(例えば、両者はグレー・スケール・ピクチャでは同じである)、2つのクロミナンス(又は略称、クロマ)成分Cb及びCrはクロミナンス又は色情報成分を表す。従って、YCbCrフォーマットにおけるピクチャは、ルミナンス・サンプル値(Y)のルミナンス・サンプル・アレイと、クロミナンス値(Cb及びCr)の2つのクロミナンス・サンプル・アレイとを含む。RGBフォーマットのピクチャは、YCbCrフォーマットにおけるピクチャにコンバート又は変換されることが可能であり、その逆も可能である。そのプロセスは色変換又はコンバージョンとも言及される。ピクチャがモノクロである場合、ピクチャはルミナンス・サンプル・アレイのみを含むことが可能である。従って、ピクチャは、例えば、モノクロ・フォーマットにおけるルミナンス・サンプルのアレイ、又はルミナンス・サンプルのアレイとクロミナンス・サンプルの2つの対応するアレイとの4:2:0、4:2:2、及び4:4:4カラー・フォーマットにおけるものであってもよい。
【0104】
[0130] 実施形態において、ビデオ・エンコーダ20の実施形態は、ピクチャ17を、複数の(典型的には重複しない)ピクチャ・ブロック203にパーティション化するように構成されたピクチャ・パーティショニング・ユニット(
図2には示されていない)を含むことが可能である。これらのブロックはまた、ルート・ブロック、マクロ・ブロック(H.264/AVC)又はコーディング・ツリー・ブロック(coding tree blocks,CTBs)又はコーディング・ツリー・ユニット(coding tree units,CTUs)として、H.265/HEVC及びVVC規格でのように言及されてもよい。パーティショニング・ユニットは、ビデオ・シーケンスの全てのピクチャに対して同一のブロック・サイズと、ブロック・サイズを規定する対応するグリッドとを使用するように、又は、ピクチャ、サブセット、又はピクチャのグループの間でブロック・サイズを変更し、各ピクチャを対応するブロックにパーティション化するように構成されることが可能である。
【0105】
[0131] 他の実施形態において、ビデオ・エンコーダは、ピクチャ17のブロック203、例えばピクチャ17を形成する1つの、幾つかの、又は全てのブロックを直接的に受信するように構成されてもよい。ピクチャ・ブロック203は、カレント・ピクチャ・ブロック又は符号化される対象ピクチャ・ブロックと言及されてもよい。
【0106】
[0132] ピクチャ17と同様に、ブロック203は、再び、ピクチャ17よりも小さな寸法ではあるが、強度値(サンプル値)を有するサンプルの2次元アレイ又はマトリクスであるか、又はそれらとして考えることが可能である。換言すると、ブロック203は、1つのサンプル・アレイ(例えば、モノクロ・ピクチャ17の場合におけるルミナンス・アレイ、又はカラー・ピクチャの場合におけるルミナンス又はクロマ・アレイ)又は3つのサンプル・アレイ(例えば、カラー・ピクチャ17の場合における1つのルミナンス・アレイ及び2つのクロミナンス・アレイ)、又は、使用されるカラー・フォーマットに依存する任意の他の数量及び/又は種類のアレイを含んでもよい。ブロック203の水平及び垂直方向(又は軸)のサンプルの数は、ブロック203のサイズを規定する。従って、ブロックは、サンプルのM×N(M列×N行)アレイ、又は変換係数のM×Nアレイであってもよい。
【0107】
[0133] 実施形態において、
図2に示されるビデオ・エンコーダ20は、ブロック毎にピクチャ17を符号化するように構成されることが可能であり、例えば符号化及び予測はブロック203毎に実行される。
【0108】
[0134] 実施形態において、
図2に示されるビデオ・エンコーダ20は、更に、スライス(ビデオ・スライスとも呼ばれる)を使用してピクチャをパーティション化及び/又は符号化するように構成されることが可能であり、ここで、ピクチャは、1つ以上のスライス(典型的には、重複しない)にパーティション化され、又はそれらを使用して符号化されることが可能である。各スライスは、1つ以上のブロック(例えば、コーディング・ツリー・ユニットCTUs)又は1つ以上のブロック・グループ(例えば、H.265/HEVC/VVC規格におけるタイル(tile)及びVVC規格におけるブリック(bricks))を含むことが可能である。
【0109】
[0135] 実施形態において、
図2に示されるビデオ・エンコーダ20は、スライス/タイル・グループ(ビデオ・タイル・グループとも呼ばれる)及び/又はタイル(ビデオ・タイルとも呼ばれる)を使用して、ピクチャをパーティション化及び/又は符号化するように更に構成されることが可能である。ピクチャは、1つ以上のスライス/タイル・グループ(典型的には、重複しない)にパーティション化され又はそれらを使用して符号化されることが可能であり、各スライス/タイル・グループは、1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含むことが可能である。各タイルは、矩形の形状であってもよく、1つ以上のブロック(例えば、CTU)、例えば完全な又は断片的なブロックを含む可能性がある。
【0110】
[0136] 残差計算
[0137] 残差計算ユニット204は、ピクチャ・ブロック(元のブロック)203及び予測ブロック265(予測ブロック265に関する更なる詳細は後に行われる)に基づいて、例えば、予測ブロック265のサンプル値を、ピクチャ・ブロック203のサンプル値から、サンプルごとに(ピクセルごとに)減算して、サンプル・ドメインで残差ブロック205を取得することによって、残差ブロック205を計算するように構成されてもよい。
【0111】
[0138] 変換
[0139] 変換処理ユニット206は、例えば、離散コサイン変換(discrete cosine transform,DCT)又は離散サイン変換(discrete sine transform,DST)などの変換を、残差ブロック205のサンプル値に適用して、変換ドメインにおける変換係数207を取得するように構成される。変換係数207は、変換残差係数と言及され、変換ドメインにおける残差ブロック205を表ことも可能である。
【0112】
[0140] 変換処理ユニット206は、H.265/HEVCで指定される変換のような、DCT/DSTの整数近似を適用するように構成されていてもよい。直交DCT変換と比較して、そのような整数近似は、通常、ある因子に基づいてスケーリングされる。フォワード変換とインバース変換を使用することにより処理される残差ブロックのノルムを保持するために、追加的なスケール因子が、変換プロセスの一部として適用される。スケール因子は、通常、幾つかの制約、例えば、スケール因子はシフト演算のために2の冪乗であること、変換係数のビット深度、及び、精度と実装コストとの間のトレードオフに基づいて選択される。例えば、特定のスケールファクタが、例えばエンコーダ側20の逆変換処理ユニット212による逆変換(及び、例えばデコーダ側30の逆変換処理ユニット312による対応する逆変換)のために指定されており、これに対応して、対応するスケール因子が、例えばエンコーダ側20の変換処理ユニット206による順変換のために指定されていてもよい。
【0113】
[0141] 実施形態において、ビデオ・エンコーダ20(相応に、変換処理ユニット206)は、変換パラメータ、例えば、1つ以上の変換のタイプ、例えば、エントロピー符号化ユニット270によって実行される符号化又は圧縮の後又は直接的であることのタイプ、のような変換パラメータを出力するように構成されることが可能であり、その結果、例えば、ビデオ・デコーダ30は、復号化のために変換パラメータを受信及び使用することが可能である。
【0114】
[0142] 量子化
[0143] 量子化ユニット208は、変換係数207を量子化して、量子化された変換係数209を取得することを、例えば、スカラー量子化又はベクトル量子化を適用することによって行うように構成されていてもよい。量子化された変換係数209は、量子化された残差係数209と言及される場合もある。
【0115】
[0144] 量子化プロセスは、変換係数207の全部又は一部に関連するビット深度を低減する可能性がある。例えば、nビット変換係数は、量子化中にmビット変換係数に丸められることが可能であり、ここで、nはmより大きい。量子化の程度は、量子化パラメータ(quantization parameter,QP)を調整することによって変更されることが可能である。例えば、スカラー量子化の場合、より細かい又はより粗い量子化を達成するために、異なるスケールが適用される可能性がある。より小さな量子化ステップは、より細かい量子化に対応し、より大きな量子化ステップは、より粗い量子化に対応する。適切な量子化ステップは、量子化パラメータ(quantization parameter,QP)によって指定される可能性がある。例えば、量子化パラメータは、適切な量子化ステップの予め定義されたセットに対するインデックスであってもよい。例えば、より小さな量子化パラメータは、より細かい量子化(より小さな量子化ステップ)に対応し、より大きい量子化パラメータは、より粗い量子化(より大きな量子化ステップ)に対応し、又はその逆であってもよい。量子化は、量子化ステップによる除算を含む可能性があり、対応する及び/又は逆量子化は、例えば逆量子化ユニット210により行われる、量子化ステップによる乗算を含む可能性がある。HEVCのような或る規格に従う実施形態は、量子化パラメータを使用して量子化ステップを決定するように構成されていてもよい。一般に、量子化ステップは、除算を含む式の固定小数点近似を使用することによって、量子化パラメータに基づいて計算されてもよい。追加のスケール因子が、量子化及び量子化解除のために導入されて、残差ブロックのノルムを復元することが可能であり、ここで、残差ブロックのノルムは、量子化ステップ及び量子化パラメータに関する式の固定点近似で使用されるスケールに起因して、修正される可能性がある。一例の実装では、逆変換のスケールが、量子化解除のスケールと組み合わせられる可能性がある。代替的に、カスタマイズされた量子化テーブルが使用され、エンコーダからデコーダへ、例えばビットストリームにおいてシグナリングされる可能性がある。量子化は非ロスレス演算であり、ここで、より大きな量子化ステップは、より大きいなロスを示す。
【0116】
[0145] 実施形態では、ビデオ・エンコーダ20(相応に、量子化ユニット208)は、量子化パラメータ(quantization parameter,QP)、例えば、エントロピー符号化ユニット270によって実行される符号化又は圧縮の後又は直接的に行うこと、を出力するように構成される可能性があり、その結果、例えば、ビデオ・デコーダ30は、復号化のために量子化パラメータを受信及び使用することが可能である。
【0117】
[0146] 逆量子化
[0147] 逆量子化ユニット210は、量子化解除された係数211を取得するために、量子化された係数に、量子化ユニット208の逆量子化を適用するように、例えば、量子化ユニット208に基づいて又は量子化ユニット208と同じ量子化ステップを使用することによって、量子化ユニット208により適用された量子化方式のインバースを適用するように構成される。量子化解除された係数211は、量子化解除された残差係数211と呼ばれる可能性もあり、通常は量子化によるロスに起因して変換係数とは異なるが、変換係数207に対応している。
【0118】
[0148] 逆変換
[0149] 逆変換処理ユニット212は、変換処理ユニット206によって適用された変換の逆変換、例えば、逆離散コサイン変換(discrete cosine transform,DCT)又は逆離散サイン変換(discrete sine transform,DST)を適用して、サンプル・ドメインにおいて再構成された残差ブロック213(又は対応する逆量子化係数213)を取得するように構成される。再構成された残差ブロック213は、変換ブロック213と言及されてもよい。
【0119】
[0150] 再構成
[0151] 再構成ユニット214(例えば、加算器214)は、変換ブロック213(即ち、再構成された残差ブロック213)を予測ブロック265に加算して、例えば、再構成された残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することによって、サンプル・ドメインにおいて、再構成されたブロック215を取得するように構成される。
【0120】
[0152] フィルタリング
[0153] ループ・フィルタ・ユニット220(又は、略して「ループ・フィルタ」220)は、再構成されたブロック215をフィルタリングして、フィルタリングされたブロック221を取得する、又は一般的には、再構成されたサンプルをフィルタリングして、フィルタリングされたサンプル値を取得するように構成されている。例えば、ループ・フィルタ・ユニットは、ピクセル遷移を滑らかにしたり、又はビデオ品質を改善したりするように構成される。ループ・フィルタ・ユニット220は、デブロッキング・フィルタ、サンプル適応オフセット(sample-adaptive offset,SAO)フィルタ、又は1つ以上の他のフィルタ、例えば、適応ループ・フィルタ(adaptive loop filter,ALF)、ノイズ抑制フィルタ(noise suppression filter ,NSF)、又はそれらの任意の組み合わせのような1つ以上のループ・フィルタを含む可能性がある。一例では、ループ・フィルタ・ユニット220は、デブロッキング・フィルタ、SAOフィルタ、及びALFフィルタを含む可能性がある。フィルタリング・プロセスの順序は、デブロッキング・フィルタ、SAOフィルタ、ALFフィルタであってもよい。別の例では、クロミナンス・ケーリングを伴うルミナンス・マッピング(luma mapping with chroma scaling,LMCS)と呼ばれるプロセス(即ち、適応イン・ループ・リシェーパ)が追加される。このプロセスはデブロッキングの前に実行される。別の例では、デブロッキング・フィルタ・プロセスは、内部サブ・ブロック・エッジ、例えば、アフィン・サブ・ブロック・エッジ、ATMVPサブ・ブロック・エッジ、サブ・ブロック変換(sub-block transform,SBT)エッジ、及びイントラ・サブ・パーティション(intra sub-partition,ISP)エッジに適用されてもよい。ループ・フィルタ・ユニット220は、
図2ではループ・フィルタであるとして示されているが、他の構成では、ループ・フィルタ・ユニット220は、ポスト・ループ・フィルタとして実装されてもよい。フィルタリングされたブロック221は、フィルタリングされた再構成ブロック221と言及される場合もある。
【0121】
[0154] 実施形態では、ビデオ・エンコーダ20(相応に、ループ・フィルタ・ユニット220)は、ループ・フィルタ・パラメータ(例えば、SAOフィルタ・パラメータ、ALFフィルタ・パラメータ、又はLMCSパラメータ)、例えば、エントロピー符号化ユニット270によって実行されるエントロピー符号化の後又は直接的に行うこと、を出力するように構成される可能性があり、その結果、デコーダ30は復号化のために同じ又は異なるループ・フィルタ・パラメータを受信して使用することができるようになる。
【0122】
[0155] 復号化済みピクチャ・バッファ
[0156] 復号化済みピクチャ・バッファ(decoded picture buffer,DPB)230は、ビデオ・エンコーダ20によるビデオ・データ符号化で使用するための参照ピクチャ・データを格納する参照ピクチャ・メモリである可能性がある。DPB230は、例えば、同期DRAM(synchronous DRAM,SDRAM)を含むダイナミック・ランダムアクセス・メモリ(dynamic random-access memory,DRAM)、磁気抵抗RAM(magnetoresistive RAM,MRAM)、抵抗RAM(resistive RAM,RRAM)、又は別のタイプのメモリ・デバイスを含む、様々なメモリ・デバイスのうちの任意の何れかによって形成されてもよい。復号化済みピクチャ・バッファ230は、1つ以上のフィルタリング・ブロック221を記憶するように構成されてもよい。復号化済みピクチャ・バッファ230は、同じカレント・ピクチャ又は異なるピクチャ、例えば以前に再構成されたピクチャの、例えば以前にフィルタリングされた他のブロック、例えば以前に再構成されフィルタリングされたブロック221を記憶するように更に構成されてもよく、また、例えばインター予測のために、完全な以前に再構成された、例えば復号化されたピクチャ(及び対応する参照ブロック及びサンプル)及び/又は部分的に再構成されたカレント・ピクチャ(及び対応する参照ブロック及びサンプル)を提供する可能性がある。復号化済みピクチャ・バッファ230は、例えば、再構成されたブロック215がループ・フィルタ・ユニット220によってフィルタリングされていない場合に、1つ以上のフィルタリングされていない再構成されたブロック215、又は一般にフィルタリングされていない再構成されたサンプルを格納し、或いは、再構成されたブロック又はサンプルの他の更なる処理されたバージョンを格納するように更に構成されてもよい。
【0123】
[0157] モード選択(パーティショニング及び予測)
[0158] モード選択ユニット260は、パーティショニング・ユニット262、インター予測ユニット244、及びイントラ予測ユニット254を含み、また、生ピクチャ・データ、例えば、元のブロック203(カレント・ピクチャ17のカレント・ブロック203)、再構成ピクチャ・データ、例えば、同じ(カレント)ピクチャの、及び/又は、1つ以上の以前に復号されたピクチャからの、例えば、復号化済みピクチャ・バッファ230又は他のバッファ(例えば、
図2に示されていないラインバッファ)からの、フィルタリングされた及び/又はフィルタリングされていない再構成サンプル又はブロックを受信又は取得するように構成されている。再構成されたピクチャ・データは、予測ブロック265又は予測子265を得るために、例えばインター予測又はイントラ予測のような予測のための参照ピクチャ・データとして使用される。
【0124】
[0159] モード選択ユニット260は、カレント・ブロックのパーティショニング(非パーティショニングを含む)及び予測モード(例えば、イントラ又はインター予測モード)を決定又は選択し、対応する予測ブロック265を生成するように構成される可能性があり、その予測ブロックは、残差ブロック205の計算のため及び再構成ブロック215の再構成のために使用される。
【0125】
[0160] 実施形態では、モード選択ユニット260は、(例えば、モード選択ユニット260に利用可能なもの又はサポートされているものから)パーティショニング及び予測モードを選択するように構成されることが可能である。予測モードは、最適な一致又は最小の残差(最小の残差は、送信又は格納のために、より良好な圧縮を意味する)を提供するか、最小のシグナリング・オーバーヘッド(最小のシグナリング・オーバーヘッドは、送信又は格納のために、より良好な圧縮を意味する)を提供するか、又は両方を考慮したり又はバランスをとったりする。モード選択ユニット260は、ビット・レート歪最適化(rate distortion optimization,RDO)に基づいてパーティショニング及び予測モードを決定する、例えば、最小ビット・レート歪最適化を提供する予測モードを選択する、ように構成されることが可能である。本件明細書における「最良」、「最低」、「最適」等の用語は、必ずしも一般的な「最良」、「最低」、「最適」を意味しておらず、終了又は選択の基準が合致している状況を意味する場合もある。例えば、閾値又はその他の制約を超えたり又は下回ったりする値は、「最適でない選択」となるが、複雑さや処理時間を減らす可能性がある。
【0126】
[0161] 換言すると、パーティショニング・ユニット262は、ビデオシーケンスからのピクチャを、コーディング・ツリー・ユニット(coding tree unit,CTU)のシーケンスにパーティショニングするように構成されてもよく、CTU203は、より小さなブロック・パーティション又はサブ・ブロック(ブロックを再び形成する)に更にパーティショニン化することを、例えば、四分木パーティショニング(quad-tree partitioning,QT)、二分木パーティショニング(binary-tree partitioning,BT)、三分木パーティショニング(triple-tree partitioning,TT)又はそれらの任意の組み合せを反復的に使用して行い、また、例えば、ブロック・パーティション又はサブ・ブロックの各々に対して予測を実行するように構成されることが可能であり、ここで、モード選択は、パーティション化されたブロック203のツリー構造、及びブロック・パーティション又はサブ・ブロックの各々に適用される予測モードの選択を含む。
【0127】
[0162] 以下、ビデオ・エンコーダ20によって実行されるパーティション化(例えば、パーティション化ユニット262によるもの)及び予測(例えば、インター予測ユニット244及びイントラ予測ユニット254によるもの)について詳細に説明する。
【0128】
[0163] パーティション化
[0164] パーティション化ユニット262は、ピクチャ・ブロック(又はCTU)203を、より小さなパーティション、例えば正方形又は長方形のより小さなブロックにパーティション化(又は分割)することが可能である。3つのサンプル・アレイを有するピクチャの場合、CTUは、ルミナンス・サンプルのN×Nブロックを、クロミナンス・サンプルの2つの対応するブロックとともに含む。CTUのルミナンス・ブロックの最大許容サイズは、発展中の多用途ビデオ・コーディング(versatile video coding,VVC)規格では128×128であるように規定されているが、将来的には128×128以外の値、例えば256×256であるように規定される可能性がある。ピクチャのCTUは、スライス/タイル・グループ、タイル又はブリックとしてクラスタ化/グループ化されてもよい。タイルはピクチャの矩形エリアをカバーし、タイルは1つ以上のブリックに分割されてもよい。ブリックは、タイルにおいて複数のCTU行を含む。複数のブリックにパーティション化されていないタイルは、ブリックと呼ぶことができる。しかしながら、ブリックはタイルの真のサブセットであり、タイルとは呼ばれない。VVCでは、ラスタ・スキャン・スライス/タイル・グループ・モードと矩形スライス・モードという2つのタイル・グループのモードがサポートされている。ラスター・スキャン・タイル・グループ・モードでは、スライス/タイル・グループは、ピクチャのタイル・ラスター・スキャンにおけるタイルのシーケンスを含む。矩形スライス・モードでは、スライスは、集合的にピクチャの矩形エリアを形成するピクチャの複数のブリックを含む。矩形スライス内のブリックは、スライスのブリック・ラスター・スキャンの順序におけるものである。これらの小さなブロック(サブ・ブロックと呼ばれる場合もある)は、更に小さなパーティションにパーティション化される可能性がある。これは、ツリー・パーティション化又は階層ツリー・パーティション化とも言及され、ここで、例えばルート・ツリー・レベル0(階層レベル0又は深度0)のルート・ブロックは、再帰的にパーティション化され、例えば、次の下位ツリー・レベル、例えば、ツリー・レベル1(階層レベル1又は深度1)におけるノードの2つ以上のブロックにパーティション化される。これらのブロックは、再び次の下位レベル、例えばツリー・レベル2(階層レベル2又は深度2)の2つ以上のブロックに、パーティション化が終了するまで(終了基準が満たされたこと、例えば、最大ツリー深度又は最小ブロック・サイズに到達したことに起因して)、パーティション化される可能性がある。更にパーティション化されないブロックは、ツリーのリーフ・ブロック又はリーフ・ノードとも呼ばれる。2つのパーティションへのパーティション化を用いるツリーはバイナリ・ツリー(binary-tree,BT)、3つのパーティションへのパーティション化を用いるツリーはターナリー・ツリー(ternary-tree,TT)、4つのパーティションへのパーティション化を用いるツリーはクワッド・ツリー(quad-tree,QT)と呼ばれる。
【0129】
[0165] 例えば、コーディング・ツリー・ユニット(CTU)は、3つのサンプル・アレイを有するピクチャのルミナンス・サンプルのCTB、クロミナンス・サンプルの2つの対応するCTB、又は、モノクロ・ピクチャ又は或るピクチャのサンプルのCTB(或るピクチャは、3つの別個のカラー・プレーン及びシンタックス構造(サンプルをコーディングするために使用されるもの)を使用することによってコーディングされる)であってもよいし、又はこれらを含んでいてもよい。これに対応して、コーディング・ツリー・ブロック(CTB)は、コンポーネントのCTBへの分割がパーティション化であるように、何らかのN値に関するサンプルのN×Nブロックであってもよい。コーディング・ユニット(coding unit,CU)は、3つのサンプル・アレイを有するピクチャのルミナンス・サンプルのコーディング・ブロック、クロミナンス・サンプルの2つの対応するコーディング・ブロック、又は、モノクロ・ピクチャ又は或るピクチャのサンプルのコーディング・ブロック(或るピクチャは、3つの別個のカラー・プレーン及びシンタックス構造(サンプルを符号化するために使用されるもの)を使用することによってコーディングされる)であってもよいし、又はこれらを含んでもよい。これに対応して、コーディング・ブロック(CB)は、CTBのコーディング・ブロックへの分割がパーティション化であるように、何らかのM及びN値に関するサンプルのM×Nブロックであってもよい。
【0130】
[0166] 実施形態では、例えば、HEVCに従って、コーディング・ツリーとして示されるクワッド・ツリー構造を使用することによって、コーディング・ツリー・ユニット(CTU)は、複数のCUに分割される可能性がある。インター(時間)予測又はイントラ(空間)予測を使用してピクチャ・エリアをコーディングするかどうかの判定は、リーフCUレベルで行われる。各リーフCUは、PU分割タイプに基づいて、1つ、2つ、又は4つのPUに更に分割される可能性がある。1つのPU内では、同じ予測プロセスが適用され、関連情報はPU単位でデコーダへ伝送される。PU分割タイプに基づいて予測プロセスを適用することによって、残差ブロックを取得した後に、リーフCUは、CUのコーディング・ツリーと同様の別のクワッド・ツリー構造に基づいて、変換ユニット(TU)にパーティション化される可能性がある。
【0131】
[0167] 実施形態では、例えば、現在開発中の最新のビデオ・コーディング規格(汎用ビデオ・コーディング(VVC)と呼ばれる)に従って、結合クワッド・ツリー・ネスト化マルチ・タイプ・ツリー(例えば、バイナリ・ツリー及びターナリー・ツリー)が、コーディング・ツリー・ユニットをパーティション化するために使用されるセグメンテーション構造を分割する。コーディング・ツリー・ユニット内のコーディング・ツリー構造では、CUは正方形又は長方形の何れかの形状を有する可能性がある。例えば、コーディング・ツリー・ユニット(CTU)は、先ずクワッド・ツリー構造によってパーティション化される。次いで、クワッド・ツリー・リーフ・ノードは、マルチ・タイプ・ツリー構造によって更にパーティション化されることが可能である。マルチ・タイプ・ツリー構造においては、垂直2分木分割(SPLIT_BT_VER)、水平2分木分割(SPLIT_BT_HOR)、垂直3分木分割(SPLIT_TT_VER)、水平3分木分割(SPLIT_TT_HOR)の4つの分割タイプがある。マルチ・タイプ・ツリー・リーフ・ノードは、コーディング・ユニット(CU)と呼ばれ、また、CUが最大変換長に対して過度に大きくない限り、この分割は、それ以上の如何なるパーティション化も行わずに、予測及び変換処理に使用される。これは、ほとんどの場合、CU、PU、及びTUが、ネスト化されたマルチ・タイプ・ツリー・コーディング・ブロック構造とともに、四分木において同じブロック・サイズを有する。例外は、サポートされる最大変換長が、CUのカラー成分の幅又は高さよりも小さい場合に生じる。VVCは、ネスト化されたマルチ・タイプ・ツリー・コーディング構造を用いる四分木において分割情報を分ける独自のシグナリング機構を発展させている。このシグナリング機構では、コーディング・ツリー・ユニット(CTU)は四分木のルートとして扱われ、先ず、四分木構造によってパーティション化される。各々の四分木リーフ・ノード(それを許容する程度に十分に大きい場合)は、次いで、マルチ・タイプ・ツリー構造によって更にパーティション化される。マルチ・タイプ・ツリー構造では、第1のフラグ(mtt_split_cu_flag)がシグナリングされて、ノードが更にパーティション化されるかどうかを指定し;ノードが更にパーティション化される場合には、第2のフラグ(mtt_split_cu_vertical_flag)がシグナリングされて、分割方向を指定し;次いで、第3のフラグ(mtt_split_cu_binary_flag)がシグナリングされて、分割は2分木分割であるか又は3分木分割であるかを指定する。mtt_split_cu_vertical_flag及びmtt_split_cu_binary_flagの値に基づいて、CUのマルチ・タイプ・ツリー分割モード(MttSplitMode)は、予め定義されたルール又はテーブルに基づいて、デコーダによって導出されることが可能である。特定の設計、例えば VVC ハードウェア・デコーダにおける 64×64 のルマ・ブロック及び 32×32 のクロマ・パイプライン設計では、ルミナンス・コーディング・ブロックの幅又は高さの何れかが 64 より大きい場合、TT 分割は禁止される。また、クロミナンス・コーディング・ブロックの幅又は高さの何れかが 32 より大きい場合も、TT 分割は禁止される。パイプライン設計は、ピクチャを仮想パイプライン・データ・ユニット(virtual pipeline data units,VPDUs)に分割し、VPDUはピクチャ内でオーバーラップしないユニットとして定義される。ハードウェア・デコーダでは、連続するVPDUは、複数のパイプライン・ステージによって同時に処理される。VPDUのサイズは、ほとんどのパイプライン・ステージにおけるバッファ・サイズに大まかには比例し、従って、VPDUのサイズを小さく保つことは重要である。ほとんどのハードウェア・デコーダでは、VPDUサイズは最大変換ブロック(TB)サイズに設定されることが可能である。しかしながら、VVCでは、ターナリー・ツリー(TT)及びバイナリ・ツリー(BT)のパーティション化は、VPDUサイズの増加を招く可能性がある。
【0132】
[0168] 更に、ツリー・ノード・ブロックの一部分が、底部又は右側のピクチャ境界を超える場合、ツリー・ノード・ブロックは、全てのコーディングされたCUの全てのサンプルがピクチャ境界内側に位置するようになるまで、強制的に分割されることに留意すべきである。
【0133】
[0169] 例えば、イントラ・サブ・パーティション(intra sub-partition,ISP)ツールは、ブロック・サイズに応じて、ルマ・イントラ予測されたブロックを、垂直又は水平に2つ又は4つのサブ・パーティションに分割することが可能である。
【0134】
[0170] 一例では、ビデオ・エンコーダ20のモード選択ユニット260は、上述したパーティション化技術の任意の組み合わせを実行するように構成されることが可能である。
【0135】
[0171] 上述したように、ビデオ・エンコーダ20は、(事前に決定された)予測モード・セットから、最良又は最適な予測モードを決定又は選択するように構成される。予測モード・セットは、例えば、イントラ予測モード及び/又はインター予測モードを含む可能性がある。
【0136】
[0172] イントラ予測
[0173] イントラ予測モード・セットは、35個の異なるイントラ予測モード、例えば、DC(又は平均)モード及び平面モードのような非方向性モード、又は、HEVCで定義されているもののような方向性モードを含む可能性があり、或いは、67個の異なるイントラ予測モード、例えば、DC(又は平均)モード及び平面モードのような非方向性モード、又は、VVCで定義されているもののような方向性モードを含む可能性がある。例えば、幾つかの従来の角度イントラ予測モードは、VVCで定義されているように、非正方形ブロックに関する広角イントラ予測モードに適応的に置き換えられる。別の例として、DC予測に関する除算演算を回避するために、より長い辺のみが、非正方形ブロックに関する平均を計算するために使用される。更に、平面モードのイントラ予測の結果は、位置依存イントラ予測結合(position dependent intra prediction combination,PDPC)方法を使用することによって、更に修正される可能性がある。
【0137】
[0174] イントラ予測ユニット254は、同じカレント・ピクチャの近傍ブロックの再構成されたサンプルを使用して、イントラ予測モード・セット内のイントラ予測モードに基づいて、イントラ予測ブロック265を生成するように構成される。
【0138】
[0175] イントラ予測ユニット254(又は、一般にモード選択ユニット260)は、イントラ予測パラメータ(又は一般的には、ブロックに対して選択されたイントラ予測モードを示す情報)を、符号化されたピクチャ・データ21に含めるためのシンタックス要素266の形態で、エントロピー符号化ユニット270に出力するように更に構成され、その結果、例えば、ビデオ・デコーダ30は、復号化のために予測パラメータを受信して使用することが可能になる。
【0139】
[0176] HEVCにおけるイントラ予測モードは、直流予測モード、平面予測モード、及び33個の角度予測モードを含む。即ち、合計で35個の予測モード候補が存在する。カレント・ブロックは、イントラ予測を実行するための参照として、左側及び上側に対して再構成されたピクチャ・ブロックのピクセルを使用する可能である。カレント・ブロックの周辺エリア内のピクチャ・ブロックであって、カレント・ブロックに対するイントラ予測に使用されるピクチャ・ブロックは、参照ブロックになり、参照ブロック内のピクセルは参照ピクセルと言及される。35個の候補予測モードにおいて、直流予測モードは、あるエリアに適用可能であり、そのエリアのテクスチャはカレント・ブロックにおいてフラットであり、そのエリア内の全てのピクセルは、参照ブロック内の参照ピクセルの平均値を、予測として使用する。平面予測モードは、あるピクチャ・ブロックに適用可能であり、そのピクチャ・ブロックのテクスチャは滑らかに変化している。この条件を満たすカレント・ブロックに対して、バイリニア補間は、参照ブロック内の参照ピクセルを、カレント・ブロック内の全てのピクセルの予測として使用することによって、実行される。角度予測モードでは、カレント・ブロックのテクスチャは、近傍の再構成されたピクチャ・ブロックのテクスチャと強く相関しているという特徴を利用して、対応する参照ブロックにおける参照ピクセルの値が、カレント・ブロックの全てのピクセルの予測として或る角度に沿ってコピーされる
[0177] HEVCエンコーダは、カレント・ブロックに対する35個の候補予測モードから、最適イントラ予測モードを選択し、最適イントラ予測モードをビデオ・ビットストリームに書き込む。イントラ予測のコーディング効率を改善するために、エンコーダ/デコーダは、周辺エリアにおいてイントラ予測を使用する再構成されたピクチャ・ブロックのそれぞれの最適イントラ予測モードの中から、3つの最確モード(most probable modes)を導出する。カレント・ブロックに対して選択された最適イントラ予測モードが3つの最確モードのうちの1つである場合、第1のインデックスは、選択された最適イントラ予測モードが3つの最確モードのうちの1つであることを示すために符号化される。選択された最適イントラ予測モードが3つの最確モードのうちの1つでない場合、第2のインデックスは、選択された最適イントラ予測モードが他の32個のモード(35個の予測モード候補のうちの前述の3つの最確モード以外のモード)のうちの1つであることを示すために符号化される。HEVC規格は、前述の第2のインデックスとして5ビット固定長コードを使用する。
【0140】
[0178] HEVCエンコーダによって3つの最確モードを導出する方法は:カレント・ブロックの左側近傍ピクチャ・ブロック及び上側近傍ピクチャ・ブロックの最適イントラ予測モードを選択することと、最適イントラ予測モードをセットに入れることとを含む。2つの最適イントラ予測モードが同じである場合、セット内で唯1つのイントラ予測モードは予約される。2つの最適イントラ予測モードが同じであり、両方とも角度予測モードである場合、角度方向に対して隣接する2つの角度予測モードが更に選択され、セットに追加される。そうでない場合は、平面予測モード、直流予測モード、及び垂直予測モードが順次選択され、セット内のモード数が3に到達するまで、セットに追加される。
【0141】
[0179] ビットストリームに対してエントロピー復号化を実行した後に、HEVCデコーダは、カレント・ブロックのモード情報を取得する。モード情報は、カレント・ブロックの最適イントラ予測モードが3つの最確モードにおけるものであるどうかを示す識別子、3つの最確モードにおけるカレント・ブロックの最適イントラ予測モードのインデックス、又は、他の32個のモードにおけるカレント・ブロックの最適イントラ予測モードのインデックスを含む。
【0142】
[0180] インター予測
[0181] 可能な実装において、インター相互予測モード・セットは、利用可能な参照ピクチャ(即ち、例えば、DBP 230に記憶された、以前の少なくとも部分的に復号化されたピクチャ)及び他のインター予測パラメータ、例えば、参照ピクチャ全体又は参照・ピクチャの一部のみ(例えば、カレント・ブロックのエリア周辺の探索ウィンドウ・エリア)が、最良の一致する参照ブロックを検索するために使用されるかどうか、及び/又は例えば、ピクセル補間、例えば、1/2ピクセル補間、1/4ピクセル補間、及び/又は1/16ピクセル補間が適用されるかどうか、に依存する。
【0143】
[0182] 前述の予測モードに加えて、スキップ・モード及び/又はダイレクト・モードが更に適用されてもよい。
【0144】
[0183] 例えば、拡張マージ予測モードのマージ候補リストは、次の5つのタイプの候補を:空間的な近傍のCUからの空間的MVP、同等位置のCUからの時間的MVP、FIFOテーブルからの履歴ベースのMVP、ペアワイズ平均MVP、及びゼロMV の順に含む。バイラテラル・マッチング・ベースのデコーダ側動きベクトル精密化(decoder side motion vector refinement,DMVR)は、マージ・モードのMVの精度を高めるために使用される可能性がある。MVDを用いるマージ・モード(merge mode with an MVD,MMVD)は、動きベクトル差分を用いるマージ・モードに由来する。MMVDフラグは、スキップ・フラグとマージ・フラグが送信された直後に送信され、MMVDモードがCUに使用されるかどうかを指定する。CUレベルの適応的動きベクトル解決(adaptive motion vector resolution,AMVR)方式が使用される可能性がある。AMVRは、CUのMVDが、異なる精度でコーディングされることを許容する。カレントCUのMVDは、カレントCUの予測モードに基づいて、適応的に選択される可能性がある。CUがマージ・モードでコーディングされる場合に、複合インター/イントラ予測(combined inter/intra prediction,CIIP)モードがカレント・CUに適用される可能性がある。CIIP予測を得るために、インター及びイントラ予測信号の重み付け平均化が実行される。アフィン動き補償予測では、2つの制御ポイント(4パラメータ)動きベクトル又は3つの制御ポイント(6パラメータ)動きベクトルの動き情報に基づいて、ブロックのアフィン・モーション・フィールドが記述される。サブ・ブロック・ベースの時間的動きベクトル予測(subblock-based temporal motion vector prediction,SbTMVP)は、HEVCにおける時間的動きベクトル予測(temporal motion vector prediction,TMVP)に類似しているが、カレントCU内のサブCUの動きベクトルを予測している。双方向オプティカル・フロー(bi-directional optical flow,BDOF)は、以前はBIOと呼ばれていたが、より単純なバージョンであり、特に乗算の回数と乗算器の値の点で、かなり少ない演算しか必要としないものである。三角形パーティション・モードでは、CUは対角分割及び非対角分割(anti-diagonal splitting)によって2つの三角形部分に均等に分割される。更に、双-予測モードは、シンプルな平均化を越えて拡張され、2つの予測信号の加重平均を許容する。
【0145】
[0184] インター予測ユニット244は、動き推定(motion estimation,ME)ユニット及び動き補償(motion compensation,MC)ユニット(これらは
図2に示されていない)を含む可能性がある。動き推定ユニットは、動き推定のために、ピクチャ・ブロック203(カレント・ピクチャ17のカレント・ピクチャ・ブロック203)及び復号化されたピクチャ231、又は、少なくとも1つ以上の以前に再構成されたブロック、例えば、1つ以上の他の/異なる以前に復号化されたピクチャ231の再構成されたブロック、を受信又は取得するように構成されていてもよい。例えば、ビデオ・シーケンスは、カレント・ピクチャ及び以前に復号化されたピクチャ231を含む可能性があり、換言すれば、カレント・ピクチャ及び以前に復号化されたピクチャ231は、ビデオ・シーケンスを形成するピクチャの一部であるか、又はそのシーケンスを形成する可能性がある。
【0146】
[0185] 例えば、エンコーダ20は、同じピクチャの複数の参照ブロック又は他の複数のピクチャの異なるピクチャの複数の参照ブロックから、参照ブロックを選択し、参照ピクチャ(又は参照ピクチャ・インデックス)及び/又は参照ブロックの位置(x及びy座標)とカレント・ブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして動き推定ユニットに提供するように構成されることが可能である。このオフセットは、動きベクトル(motion vector,MV)とも呼ばれる。
【0147】
[0186] 動き補償ユニットは、例えば、インター予測パラメータを取得して、例えば受信して、インター予測パラメータに基づいて又は使用してインター予測を実行し、インター予測ブロック246を取得するように構成される。動き補償ユニットによって実行される動き補償は、動き推定を通じて決定された動き/ブロック・ベクトルに基づいて、予測ブロックを抽出又は生成することを含む可能性があり、サブ・ピクセル精度で補間を実行することを更に含む可能性がある。補間フィルタリングは、既知のピクセル・サンプルから追加のピクセル・サンプルを生成する可能性があり、従って、ピクチャ・ブロックをコーディングするために使用されることが可能な候補予測ブロックの量を潜在的に増加させる可能性がある。カレント・ピクチャ・ブロックのPUに対応する動きベクトルを受信すると、動き補償ユニットは、参照ピクチャ・リストの1つの中で動きベクトルが指し示す予測ブロックを突き止めることができる。
【0148】
[0187] 動き補償ユニットは、ビデオ・スライスのピクチャ・ブロックを復号化する際に、ビデオ・デコーダ30によって使用するために、ブロック及びビデオ・スライスに関連付けられたシンタックス要素を更に生成する可能性がある。スライス及びそれぞれのシンタックス要素に加えて、又はその代替として、タイル・グループ及び/又はタイル及びそれぞれのシンタックス要素が生成又は使用される可能性がある。
【0149】
[0188] アドバンスト動きベクトル予測(advanced motion vector prediction,AMVP)モードの動きベクトル候補リストを取得するプロセスにおいて、代替として動きベクトル候補リストに追加されことが可能な動きベクトル(motion vector,MV)は、カレント・ブロックの空間的に近傍のピクチャ・ブロックのMVと、カレント・ブロックの時間的に近傍のピクチャ・ブロックのMVとを含む。空間的に近傍のピクチャ・ブロックのMVは、カレント・ブロックの左候補ピクチャ・ブロックのMVと、カレント・ブロックの上候補ピクチャ・ブロックのMVとを含む可能性がある。例えば、
図4は、本件出願の実施形態による候補ピクチャ・ブロックの一例の概略図である。
図4に示されるように、左候補ピクチャ・ブロックのセットは{A0,A1}を含み、上候補ピクチャ・ブロックのセットは{B0,B1,B2}を含み、時間的に近傍の候補ピクチャ・ブロックのセットは{C,T}を含む。これら3つのセットは全て、代替案として動きベクトル候補リストに追加することが可能である。しかしながら、既存のコーディング規格では、AMVPの動きベクトル候補リストの最大長は2である。従って、高々2つのピクチャ・ブロックのMVが、3つのセットから、指定された順序で決定され、動きベクトル候補リストに追加されることを必要とする。その順番は以下のようにしてもよい:カレント・ブロックの左の候補ピクチャ・ブロックのセット{A0,A1}が優先的に考慮され(ここで、最初にA0が考慮され、A0が利用できない場合に、次いでA1が考慮される);次いで、カレント・ブロックの上の候補ピクチャ・ブロックのセット{B0,B1,B2}が考慮され(ここで、最初にB0が考慮され、B0が利用できない場合に、次いでB1が考慮され、B1が利用できない場合に、最後にB2が考慮される);そして最後に、カレント・ブロックの時間的に近傍の候補ピクチャ・ブロックのセット{C,T}が考慮される(ここで、最初にTが考慮され、Tが利用できない場合に、次いでCが考慮される)。
【0150】
[0189] 動きベクトル候補リストが得られた後に、レート歪みコスト(rate distortion cost,RDコスト)に基づいて、動きベクトル候補リストの中から最適MVが決定され、最小のRDコストを伴う動きベクトル候補が、カレント・ブロックの動きベクトル予測子(motion vector predictor,MVP)として使用される。レート歪コストは、以下の式に従って計算される:
J=SAD+λR
[0190] Jは、RDコストを表し、SADは、予測ブロックのピクセル値とカレント・ブロックのピクセル値との間で、動きベクトル候補に基づく動き推定によって得られる絶対差の合計(sum of absolute differences,SAD)を表し、Rは、ビット・レートを表し、λはラグランジュ乗数を表す。
【0151】
[0191] エンコーダ側は、動きベクトル候補リスト内の決定されたMVPのインデックスを、デコーダ側に転送する。更に、カレント・ブロックの実際の動きベクトルを得るために、MVP中心の近傍領域で動き探索が実行される。エンコーダ側は、MVPと実際の動きベクトルとの間の動きベクトル差(motion vector difference,MVD)を計算し、MVDをデコーダ側へ転送する。デコーダ側は、インデックスを解析し、インデックスに基づいて、動きベクトル候補リスト内の対応するMVPを見出し、MVDを解析し、MVDをMVPに加えて、カレント・ブロックの実際の動きベクトルを取得する。
【0152】
[0192] マージ(Merge)モードで候補動き情報リストを取得するプロセスにおいて、代替として候補動き情報リストに追加されることが可能な動き情報は、カレント・ブロックの空間的に近傍のピクチャ・ブロック又は時間的に近傍のピクチャ・ブロックの動き情報を含む。空間的に近傍のピクチャ・ブロック及び時間的に近傍のピクチャ・ブロックは、
図4に示すようなものであってもよい。候補動き情報リスト内の空間的ピクチャ・ブロックに対応する候補動き情報は、5つの空間的に近傍のブロック(A0,A1,B0,B1, B2)から得られる。空間的に近傍のブロックが利用できない場合、又はイントラ・フレーム予測モードである場合、空間的に近傍のブロックの動き情報は候補動き情報リストに追加されない。参照フレームのピクチャ・オーダー・カウント(picture order count,POC)とカレント・フレームのピクチャ・オーダー・カウント(picture order count,POC)とに基づいて、参照フレームの対応する位置におけるブロックのMVがスケーリングされた後に、カレント・ブロックの時間的な候補動き情報が取得される。先ず、参照フレーム内の位置Tにおけるブロックは利用可能であるかどうかが判定される。利用可能でなないならば、位置Cにおけるブロックが選択される。候補動き情報リストが得られた後に、RDコストに基づいて、候補動き情報リストから、カレント・ブロックの動き情報として、最適な動き情報が決定される。エンコーダ側は、候補動き情報リストにおける最適動き情報の位置のインデックス値(マージ・インデックスとして示される)をデコーダ側へ送信する。
【0153】
[0193] エントロピー・コーディング
[0194] エントロピー符号化ユニット270は、エントロピー符号化アルゴリズム又は方式(例えば、可変長コーディング(variable length coding,VLC)方式、コンテキスト適応型VLC(context-adaptive VLC,CAVLC)方式、算術コーディング方式、2値化、コンテキスト適応型2値算術コーディング(context-adaptive binary arithmetic coding,CABAC)、シンタックス・ベース・コンテキスト適応型2値算術コーディング(syntax-based context-adaptive binary arithmetic coding,SBAC)、確率区間分割エントロピー(probability interval partitioning entropy,PIPE)コーディング、又は別のエントロピー符号化方法又は技術)を、量子化済み残差係数209、インター予測パラメータ、イントラ予測パラメータ、ループ・フィルタ・パラメータ、及び/又はその他のシンタックス要素に適用して、例えば符号化されたビットストリーム21の形態で、出力端272を介して出力されることが可能な符号化されたピクチャ・データ21を取得し、その結果、ビデオ・デコーダ30等が復号化のためにパラメータを受信して使用できるようにする。符号化されたビットストリーム21は、ビデオ・デコーダ30に伝送されてもよいし、或いは、ビデオ・デコーダ30による後の伝送又は検索のためにメモリに格納されてもよい。
【0154】
[0195] ビデオ・エンコーダ20の他の構造的バリエーションが、ビデオ・ストリームを符号化するために使用されてもよい。例えば、非変換ベースのエンコーダ20は、幾つかのブロック又はフレームについて、変換処理ユニット206を使用せずに、残差信号を直接的に量子化することが可能である。別の実装において、エンコーダ20は、量子化ユニット208と逆量子化ユニット210とを単一のユニットに結合させてもよい。
【0155】
[0196] デコーダ及び復号化方法
[0197]
図3に示されるように、ビデオ・デコーダ30は、例えば、エンコーダ20によって符号化された符号化ピクチャ・データ21(例えば、符号化されたビットストリーム21)を受信して、復号化されるピクチャ331を取得するように構成される。符号化されたピクチャ・データ又はビットストリームは、符号化されたピクチャ・データを復号化するための情報、例えば、符号化されたビデオ・スライス(及び/又はタイル・グループ又はタイル)のピクチャ・ブロックを表すデータ、及び関連するシンタックス要素を含む。
【0156】
[0198]
図3の例では、デコーダ30は、エントロピー復号化ユニット304と、逆量子化ユニット310と、逆変換処理ユニット312と、再構成ユニット314(例えば、加算器314)と、ループ・フィルタ320と、復号化済みピクチャ・バッファ(DBP)330と、モード適用ユニット360と、インター予測ユニット344と、イントラ予測ユニット354とを含む。インター予測ユニット344は、動き補償ユニットであってもよいし、それを含んでもよい。幾つかの例において、ビデオ・デコーダ30は、
図2に示すビデオ・エンコーダ
20を参照して説明した符号化プロセスと概ね逆の復号化プロセスを実行することが可能である。
【0157】
[0199] エンコーダ20に関して説明されたように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループ・フィルタ220、復号化済みピクチャ・バッファDPB230、インター予測ユニット344、及びイントラ予測ユニット354もまた、ビデオ・エンコーダ20の「内蔵デコーダ」を形成する。従って、逆量子化ユニット310は逆量子化ユニット110と機能的に同一であってもよく、逆変換処理ユニット312は逆変換処理ユニット122と機能的に同一であってもよく、再構成ユニット314は再構成ユニット214と機能的に同一であってもよく、ループ・フィルタ320はループ・フィルタ220と機能的に同一であってもよく、復号化済みピクチャ・バッファ330は復号化済みピクチャ・バッファ230と機能的に同一であってもよい。従って、ビデオ・エンコーダ20のそれぞれのユニット及び機能について行われた説明は、ビデオ・デコーダ30のそれぞれのユニット及び機能にも相応に適用可能である。
【0158】
[0200] エントロピー復号化
[0201] エントロピー復号化ユニット304は、ビットストリーム21(又は一般に、符号化されたピクチャ・データ21)を解析し、例えば、符号化されたピクチャ・データ21に対して、エントロピー復号化を実行して、量子化された係数309及び/又は復号化されたコーディング・パラメータ(
図3には図示されていない)、例えば、インター予測パラメータ(例えば、参照ピクチャ・インデックス及び動きベクトル)、イントラ予測パラメータ(例えば、イントラ予測モード又はインデックス)、変換パラメータ、量子化パラメータ、ループ・フィルタ・パラメータ、及び/又はその他のシンタックス要素の何れか又は全て、を取得するように構成されている。エントロピー復号化ユニット304は、エンコーダ20のエントロピー符号化ユニット270に関して説明したような符号化方式に対応する復号化アルゴリズム又は方式を適用するように構成されることが可能である。エントロピー復号化ユニット304は、更に、インター予測パラメータ、イントラ予測パラメータ、及び/又はその他のシンタックス要素を、モード適用ユニット360に提供し、他のパラメータをデコーダ30の他のユニットに提供するように構成されることが可能である。ビデオ・デコーダ30は、ビデオ・スライス・レベル及び/又はビデオ・ブロック・レベルでシンタックス要素を受信することが可能である。スライス及びそれぞれのシンタックス要素に加えて、又はその代替として、タイル・グループ及び/又はタイル及びそれぞれのシンタックス要素が受信又は使用されることが可能である。
【0159】
[0202] 逆量子化
[0203] 逆量子化ユニット310は、量子化パラメータ(quantization parameters,QPs)(又は一般的に、逆量子化に関連する情報)及び量子化された係数を、符号化されたピクチャ・データ21から(例えば、エントロピー復号化ユニット304による構文解析及び/又は復号化によって)受信し、量子化パラメータに基づいて、復号化された量子化された係数309に対して逆量子化を実行して、変換係数311とも呼ばれる可能性のある量子化解除された係数311を取得するように構成されていてもよい。逆量子化プロセスは、量子化の程度、及び同様に、適用されるべき逆量子化の程度を決定するために、ビデオ・スライス内の各ビデオ・ブロックに対してビデオ・エンコーダ20によって決定された量子化パラメータを使用することを含む可能性がある。
【0160】
[0204] 逆変換
[0205] 逆変換処理ユニット312は、変換係数311とも呼ばれる逆量子化された係数311を受信し、逆量子化された係数311に変換を適用して、サンプル・ドメインにおける再構成された残差ブロック213を取得するように構成されることが可能である。再構成された残差ブロック213は、変換ブロック213と言及される場合もある。変換は、逆変換、例えば、逆DCT、逆DST、逆整数変換、又は、概念的に類似の逆変換処理である可能性がある。逆変換処理ユニット312は、(例えば、エントロピー復号化ユニット304による解析及び/又は復号化によって)符号化されたピクチャ・データ21から変換パラメータ又は対応する情報を受信して、逆量子化された係数311に適用されるべき変換を決定するように更に構成されていてもよい。
【0161】
[0206] 再構成
[0207] 再構成ユニット314(例えば、加算器314)は、再構成された残差ブロック213を予測ブロック365に追加して、サンプル・ドメインにおける再構成されたブロック315を、例えば再構成された残差ブロック213のサンプル値と予測ブロック365のサンプル値とを加算することによって、取得するように構成されている。
【0162】
[0208] フィルタリング
[0209] (コーディング・ループ内又はコーディング・ループ後の何れかにおける)ループ・フィルタ・ユニット320は、再構成されたブロック315をフィルタリングして、フィルタリングされたブロック321を取得し、ピクセル遷移を滑らかにしたり、或いはビデオ品質を改善したりするように構成されている。ループ・フィルタ・ユニット320は、デブロッキング・フィルタ、サンプル適応オフセット(sample-adaptive offset,SAO)フィルタ、又は、1つ以上の他のフィルタ、例えば、適応ループ・フィルタ(adaptive loop filter,ALF)、ノイズ抑制フィルタ(noise suppression filter,NSF)、又はそれらの任意の組み合わせのような1つ以上のループ・フィルタを含むことが可能である。一例では、ループ・フィルタ・ユニット220は、デブロッキング・フィルタ、SAOフィルタ、及びALFフィルタを含む可能性がある。フィルタリング・プロセスの順序は、デブロッキング・フィルタ、SAOフィルタ、そしてALFフィルタであってもよい。別の例では、クロミナンス・スケーリングを用いるルミナンス・マッピング(luma mapping with chroma scaling,LMCS)と呼ばれるプロセス(即ち、適応イン・ループ・リシェーパ)が追加される。このプロセスはデブロッキングの前に実行される。別の例では、デブロッキング・フィルタ・プロセスは、内部サブ・ブロック・エッジ、例えば、アフィン・サブ・ブロック・エッジ、ATMVPサブ・ブロック・エッジ、サブ・ブロック変換(sub-block transform,SBT)エッジ、及びイントラ・サブ・パーティション(intra sub-partition,ISP)エッジにも適用される可能性がある。ループ・フィルタ・ユニット320は、
図3ではループ・フィルタであるとして示されているが、他の構成では、ループ・フィルタ・ユニット320は、ポスト・ループ・フィルタとして実装されてもよい。
【0163】
[0210] 復号化済みピクチャ・バッファ
[0211] ピクチャの復号化されたビデオ・ブロック321は、次いで、復号化済みピクチャ・バッファ330に格納され、復号化済みピクチャ・バッファ330は、他のピクチャに対する後続の動き補償のため及び/又はそれぞれの出力表示のための参照ピクチャとして、復号化されたピクチャ331を格納する。
【0164】
[0212] デコーダ30は、復号化されたピクチャ311を、例えば出力端332を介して、ユーザーに提示したり又は表示したりするために出力するように構成されている。
【0165】
[0213] 予測
[0214] インター予測ユニット344は、インター予測ユニット244(特に、動き補償ユニット)と機能的に同一であってもよく、イントラ予測ユニット354は、イントラ予測ユニット254と機能的に同一であってもよく、符号化されたピクチャ・データ21から受信したパーティション化及び/又は予測パラメータ又はそれぞれの情報に基づいて(例えば、エントロピー復号化ユニット304による解析及び/又は復号化によって)、分割又はパーティション化決定及び予測を実行する。モード適用ユニット360は、予測ブロック365を取得するために、再構成されたピクチャ、ブロック、又はそれぞれのサンプル(フィルタリングされた又はフィルタリングされていないもの)に基づいて、ブロックごとに予測(イントラ又はインター予測)を実行するように構成されていてもよい。
【0166】
[0215] ビデオ・スライスがイントラ・コーディングされた(intra coded,I)スライスとしてコーディングされている場合、モード適用ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード、及びカレント・ピクチャの以前に復号化されたブロックからのデータに基づいて、カレント・ビデオ・スライスのピクチャ・ブロックに対する予測ブロック365を生成するように構成される。ビデオ・ピクチャがインター・コーディングされた(例えば、B又はP)スライスとしてコーディングされている場合、モード・アプリケーション・ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、エントロピー復号化ユニット304から受信した動きベクトル及びその他のシンタックス要素に基づいて、カレント・ビデオ・スライスのビデオ・ブロックに対する予測ブロック365を生成するように構成される。インター予測の場合、予測ブロックは、参照ピクチャ・リスト内の参照ピクチャから生成されてもよい。ビデオ・デコーダ30は、DPB 330に格納された参照ピクチャに基づいてデフォルトの構築技術を使用することによって、参照フレーム・リスト:リスト0及びリスト1を構築することが可能である。スライス(例えば、ビデオ・スライス)に加えて又はそれに代えて、タイル・グループ(例えば、ビデオ・タイル・グループ)及び/又はタイル(例えば、ビデオ・タイル)を使用する実施形態に対して又は実施形態によって、同じ又は類似のプロセスが適用されてもよく、例えば、ビデオは、I、P又はBタイル・グループ及び/又はタイルを使用することによってコーディングされてもよい。
【0167】
[0216] モード・アプリケーション・ユニット360は、動きベクトル又はその他のシンタックス要素を解析することによって、カレント・ビデオ・スライスのビデオ・ブロックの予測情報を決定し、予測情報を使用して、復号化されるカレント・ビデオブロックの予測ブロックを生成するように構成される。例えば、モード適用ユニット360は、受信したシンタックス要素の一部を使用して、ビデオ・スライスのビデオ・ブロックを個ディングするために使用される予測モード(例えば、イントラ予測又はインター予測)、インター予測スライス・タイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスの1つ以上の参照ピクチャ・リストの構成情報、スライスの各インター・コーディングされるビデオ・ブロックの動きベクトル、スライスの各インター・コーディングされるビデオ・ブロックのインター予測ステータス、及び、カレント・ビデオ・スライスのビデオ・ブロックを復号化するためのその他の情報を決定する。スライス(例えば、ビデオ・スライス)に加えて又はそれに代えて、タイル・グループ(例えば、ビデオ・タイル・グループ)及び/又はタイル(例えば、ビデオ・タイル)を使用する実施形態に対して又は実施形態によって、同じ又は類似のプロセスを適用することが可能であり、例えば、ビデオは、I、P又はBタイル・グループ及び/又はタイルを使用することによってコーディングされることが可能である。
【0168】
[0217] 実施形態では、
図3のビデオ・
デコーダ30は、スライス(ビデオ・スライスとも呼ばれる)を使用することによってピクチャをパーティション化及び/又は復号化するように更に構成されていてもよく、ここで、ピクチャは、1つ以上のスライス(典型的には、オーバーラップしていないもの)を使用することによってパーティション化又は復号化されることが可能である。各スライスは、1つ以上のブロック(例えば、CTU)又は1つ以上のブロックのグループ(例えば、H.265/HEVC/VVC規格におけるタイル及びVVC規格におけるブリック)を含む可能性がある。
【0169】
[0218] 実施形態では、
図3に示されるビデオ・デコーダ30は、スライス/タイル・グループ(ビデオ・タイル・グループとも呼ばれる)及び/又はタイル(ビデオ・タイルとも呼ばれる)を使用することによってピクチャをパーティション化及び/又は復号化するように更に構成されることが可能である。ピクチャは、1つ以上のスライス/タイル・グループ(典型的には、オーバーラップしていないもの)を使用することによってパーティション化又は復号化されてもよく、各スライス/タイル・グループは、1つ以上のブロック(例えば、CTU)又は1つ以上のタイルを含んでもよい。各タイルは、矩形形状のものであってよく、1つ以上のブロック(例えば、CTU)、例えば、完全なブロック又は部分的なブロックを含んでもよい。
【0170】
[0219] コーディングされたピクチャ・データ21を復号化するために、ビデオ・デコーダ30の他のバリエーションが使用される可能性がある。例えば、デコーダ30は、ループ・フィルタ・ユニット320なしに出力ビデオ・ストリームを生成する可能性がある。例えば、非変換ベースのデコーダ30は、幾つかのブロック又はフレームについて、逆変換処理ユニット312を使用せずに、残差信号を直接的に逆量子化することが可能である。別の実装において、ビデオ・デコーダ30は、逆量子化ユニット310と逆変換処理ユニット312とを単一のユニットに組み合わせてもよい。
【0171】
[0220] エンコーダ20及びデコーダ30において、カレント・ステップの処理結果は更に処理されて、次のステップに出力されてもよい、ということが理解されるべきである。例えば、補間フィルタリング、動きベクトル導出、又はループ・フィルタリングの後に、クリップ(clip)又はシフト(shift)のような更なる処理が、補間フィルタリング、動きベクトル導出、又はループ・フィルタリングの処理結果に対して実行されてもよい。
【0172】
[0221] カレント・ブロックの導出された動きベクトル(アフィン・モードにおける制御ポイント動きベクトル、アフィン、平面、及びATMVPモードにおけるサブ・ブロック動きベクトル、時間的動きベクトルなどを含むが、これらに限定されない)に対して更なる演算が適用されてもよい、ということに留意すべきである。例えば、動きベクトルの値は、動きベクトルの表現ビットに基づいて、予め定義された範囲に制約される。動きベクトルの表現ビットがbitDepthである場合、レンジは、
-2^(bitDepth-1) ないし 2^(bitDepth-1)-1
であり、ここで、“^”は指数を表す。例えば、bitDepthが16に設定されている場合、レンジは、-32768 ないし 32767 であり、或いは、bitDepthが18に設定されている場合、レンジは、-131072 ないし 131071である。例えば、導出される動きベクトル(例えば、1つの8×8ブロック内の4×4サブ・ブロックのMV)の値は、4×4サブ・ブロックのMVの整数部の間の最大差がNピクセルを超えないように、例えば、1ピクセルを超えないように制約される。本件では、bitDepthに基づいて動きベクトルを制約するための2つの方法が提供される。
【0173】
[0222] 実施形態は主にビデオ・コーディングに基づいて説明されているが、コーディング・システム10、エンコーダ20、及びデコーダ30の実施形態、並びに本件で説明される他の実施形態は、静止ピクチャ処理又はコーディング、即ち、ビデオ・コーディングにおける何らかの先行又は連続するピクチャとは独立した個々のピクチャの処理又はコーディングのために構成されてもよい、ということに留意すべきである。一般に、ピクチャ処理が単一のピクチャ17に限定される場合には、インター予測ユニット244(エンコーダ)及び344(デコーダ)だけは利用できない可能性がある。ビデオ・エンコーダ20及びビデオ・デコーダ30の他の全ての機能(ツール又は技術とも呼ばれるもの)は、静止ピクチャ処理に等しく使用される可能性があり、例えば、残差計算204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、パーティション化262/362、イントラ予測254/354、及び/又はループ・フィルタリング220/320、並びにエントロピー符号化270及びエントロピー復号化304などである。
【0174】
[0223]
図5は、本件出願の実施形態によるビデオ・コーディング・デバイス500の例示的なブロック図である。ビデオ・コーディング・デバイス500は、本件明細書で説明されるような開示される実施形態を実装することに適している。実施形態では、ビデオ・コーディング・デバイス500は、
図1aのビデオ・デコーダ30のようなデコーダ、或いは、
図1aのビデオ・エンコーダ20のようなエンコーダであってもよい。
【0175】
[0224] ビデオ・コーディング・デバイス500は、データを受信するための入口ポート510(又は入力ポート510)及び受信ユニット(receiver unit,Rx)520;データを処理するためのプロセッサ、論理ユニット、又は中央処理ユニット(central processing unit,CPU)530(例えば、本件におけるプロセッサ530は、ニューラル・ネットワーク処理ユニット530であってもよい);データを送信するための送信ユニット(transmitter unit,Tx)540及び出口ポート550(又は出力ポート550);及び データを記憶するためのメモリ560を含む。ビデオ・コーディング・デバイス500は、光信号又は電気信号の入口又は出口のために、入口ポート510、受信ユニット520、送信ユニット540、及び出口ポート550に結合された光-電気(optical-to-electrical,OE)コンポーネント及び電気-光(electrical-to-optical,EO)コンポーネントを含むことも可能である。
【0176】
[0225] プロセッサ530は、ハードウェア及びソフトウェアによって実現される。プロセッサ530は、1つ以上のプロセッサ・チップ、コア(例えば、マルチ・コア・プロセッサ)、FPGA、ASIC、及びDSPとして実現されることが可能である。プロセッサ530は、入口ポート510、受信ユニット520、送信ユニット540、出口ポート550、及びメモリ560と通信する。プロセッサ530は、コーディング・モジュール570(例えば、ニューラル・ネットワーク・ベースのコーディング・モジュール570)を含む。コーディング・モジュール570は、上述されている開示の実施形態を実現する。例えば、コーディング・モジュール570は、様々なコーディング演算を実装、処理、準備、又は提供する。従って、コーディング・モジュール570は、ビデオ・コーディング・デバイス500の機能に対してかなりの改善をもたらし、ビデオ・コーディング・デバイス500の異なる状態への切り替えに影響を及ぼす。或いは、コーディング・モジュール570は、メモリ560に記憶され且つプロセッサ530によって実行される命令として実現される。
【0177】
[0226] メモリ560は、1つ以上のディスク、テープ・ドライブ、及びソリッド・ステート・ドライブを含む可能性があり、オーバー・フロー・データ記憶デバイスとして使用されて、そのようなプログラムが実行のために選択される場合にプログラムを記憶し、また、プログラムの実行中に読み込まれた命令及びデータを記憶することが可能である。メモリ560は、揮発性及び/又は不揮発性であってよく、リード・オンリー・メモリ(read-only memory,ROM)、ランダム・アクセス・メモリ(random access memory,RAM)、ターナリー・コンテンツ・アドレス指定可能メモリ(ternary content-addressable memory,TCAM)、及び/又はスタティック・ランダム・アクセス・メモリ(static random-access memory,SRAM)であってもよい。
【0178】
[0227]
図6は、本件出願の実施形態による装置600の例示的なブロック図である。装置600は、
図1aのソース・デバイス12及びデスティネーション・デバイス14の何れか一方又は両方として使用することが可能である。
【0179】
[0228] 装置600のプロセッサ602は、中央処理ユニットである可能性がある。代替的に、プロセッサ602は、現在存在する又は今後開発される、情報を演算又は処理することが可能な他の任意のタイプのデバイス、又は複数のデバイスである可能性がある。開示される実装は、図示されるプロセッサ602のような単一のプロセッサを使用することによって実施されることが可能であるが、複数のプロセッサを使用することによって、速度及び効率における利点を達成することが可能である。
【0180】
[0229] デバイス600内のメモリ604は、ある実装では、リード・オンリー・メモリ(ROM)デバイス又はランダム・アクセス・メモリ(RAM)デバイスである可能性がある。他の任意の適切なタイプの記憶デバイスがメモリ604として使用される可能性がある。メモリ604は、バス612を介してプロセッサ602によってアクセスされるコード及びデータ606を含むことが可能である。メモリ604は、オペレーティング・システム608及びアプリケーション610を更に含むことが可能である。アプリケーション610は、本件明細書で説明されている方法をプロセッサ602が実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーション610は、アプリケーション1ないしNを含み、本件明細書で説明されている方法を実行するビデオ・コーディング・アプリケーションを更に含む可能性がある。
【0181】
[0230] デバイス600は、ディスプレイ618のような1つ以上の出力デバイスを更に含む可能性がある。ディスプレイ618は、一例では、タッチ入力を感知するように動作することが可能なタッチ・センシティブ要素をディスプレイに組み合わせたタッチ・センシティブ・ディスプレイであってもよい。ディスプレイ618は、バス612を介してプロセッサ602に結合されてもよい。
【0182】
[0231] 本件明細書では単一のバスとして描かれているが、デバイス600のバス612は、複数のバスを含む可能性がある。更に、セカンダリ・ストレージは、装置600の別の構成要素に直接的に結合されてもよいし、又はネットワークを介してアクセスされてもよく、メモリ・カードのような単一の統合されたユニット又は複数のメモリ・カードのような複数のユニットを含んでもよい。従って、装置600は、多種多様な構成で実施されることが可能である。
【0183】
[0232] 本件出願の実施形態は、ニューラル・ネットワークの適用に関連する。以下、理解を容易にするために、先ず、本件出願の実施形態で使用される幾つかの名詞又は用語を説明する。名詞又は用語は、本発明の内容の一部としても使用される。
【0184】
[0233] (1)ニューラル・ネットワーク
[0234] ニューラル・ネットワーク(neural network,NN)は、機械学習モデルである。ニューラル・ネットワークは、ニューロンを含む可能性がある。ニューロンは、xs及び切片1を入力として使用する演算ユニットであってもよく、ここで、演算ユニットの出力は次のようであってもよい:
【0185】
【数1】
[0235] s=1,2,...,又はnであり、nは1より大きな自然数であり、Wsはxsの重みであり、bはニューロンのバイアスである。fは、ニューロンの活性化関数(activation function)であり、ニューラル・ネットワークに非線形特徴を導入して、ニューロンにおける入力信号を出力信号に変換するために使用される。活性化関数の出力信号は、次の畳み込み層の入力として使用することが可能である。活性化関数はシグモイド関数であってもよい。ニューラル・ネットワークは、複数の単一ニューロンをともに接続することによって形成されるネットワークである。具体的には、あるニューロンの出力が別のニューロンの入力となることが可能である。各ニューロンの入力は、前の層の局所受容野(local receptive field)に接続されて、局所受容野の特徴を抽出することができる。局所受容野は、複数のニューロンを含む領域であってもよい。
【0186】
[0236] (2)ディープ・ニューラル・ネットワーク
[0237] ディープ・ニューラル・ネットワーク(deep neural network,DNN)は、多層ニューラル・ネットワークとも呼ばれ、複数の隠れ層を有するニューラル・ネットワークとして理解されてもよい。本件において、「複数の」についての特別な尺度基準はない。DNNは、異なる層の配置に基づいて分割され、DNNのニューラル・ネットワークは:入力層、隠れ層、出力層という3種類に分けられてもよい。一般的に、最初の層は入力層であり、最後の層は出力層であり、中央の層は隠れ層である。層は完全に接続される。具体的には、i番目の層のどのニューロンも、(i+1)番目の層の何らかのニューロンに確実に接続されている。DNNは複雑に見えるが、各層における作業の観点から言えば複雑ではない。簡単に言えば、DNNは次のような線型関係式で示される:
【0187】
【数2】
ここで、x
→は入力ベクトルであり、y
→は出力ベクトルであり、b
→はバイアス・ベクトルであり、Wはウェイト・マトリクス(係数とも呼ばれる)であり、α()は活性化関数である。各層では、このようなシンプルな演算だけが入力ベクトルx
→に対して実行されて、出力ベクトルy
→が取得される。DNNは多数の層を含むので、大量の係数W及び大量のオフセット・ベクトルb
→が存在する。DNNにおけるこれらのパラメータの定義は次のとおりである:係数Wを例として使用する。3層DNNにおいて、第2層の第4ニューロンから第3層の第2ニューロンへの線型係数は、W
3
24として定義される、ということが仮定される。上付き文字3は、係数Wが位置づけられる層を表し、下付文字は出力第 3 層インデックス 2 と入力第 2 層インデックス 4 に対応する。結論として、(L-1)番目の層のk番目のニューロンからL番目の層のj番目のニューロンへの係数は、W
L
jkとして定義される。入力層ではパラメータWが無い、ということに留意すべきである。ディープ・ニューラル・ネットワークでは、隠れ層が多いほど、現実世界における複雑なケースを記述する能力が高くなる。理論的には、より多くのパラメータを有するモデルは、より多くの複雑性及びより大きな「能力(capacity)」を有し、これは、疎モデルがより複雑な学習タスクを完了できることを意味する。ディープ・ニューラル・ネットワークの訓練は、ウェイト・マトリクスを学習するプロセスであり、訓練の最終目的は、訓練済みのディープ・ニューラル・ネットワークの全ての層のウェイト・マトリクス(複数の層におけるベクトルWによって形成されるウェイト・マトリクス)を取得することである。
【0188】
[0238] (3)畳み込みニューラル・ネットワーク
[0239] 畳み込みニューラル・ネットワーク(convolutional neuron network,CNN)は、畳み込み構造を有するディープ・ニューラル・ネットワークであり、深層学習(deep learning)アーキテクチャである。ディープ・ラーニング・アーキテクチャでは、機械学習アルゴリズムに従って、異なる抽象レベルで多層学習が実行される。ディープ・ラーニング・アーキテクチャとして、CNNはフィード・フォワード(feed-forward)人工神経網である。フィード・フォワード人工神経網の各ニューロンは、ニューラル・ネットワークに入力された画像に応答することができる。畳み込みニューラル・ネットワークは、畳み込み層及びプーリング層を含む特徴抽出器を含む。特徴抽出器はフィルタとして考えられてもよい。畳み込みプロセスは、学習可能なフィルタを使用して、入力ピクチャ又は畳み込み特徴マップ(feature map)に対して畳み込みを実行しているものとして考えられてもよい。
【0189】
[0240] 畳み込み層は、畳み込みニューラル・ネットワーク内にあるニューロン層であって、入力信号に対して畳み込み処理が実行されるものである。畳み込み層は、複数の畳み込み演算子を含む可能性がある。畳み込み演算子はカーネルとも呼ばれる。画像処理において、畳み込み演算子は、入力ピクチャ・マトリクス行列から特定の情報を抽出するフィルタとして機能する。畳み込み演算子は、本質的にはウェイト・マトリクスである可能性があり、ウェイト・マトリクスは、通常、予め定義されている。ピクチャに対して畳み込み演算を実行するプロセスにおいて、ウェイト・マトリクスは、通常、入力ピクチャにおいて水平方向に1ピクセル(又は、ストライド(stride)の値に依存して2ピクセル)の粒度でピクセルを処理するために使用され、ピクチャから特定の特徴を抽出する。ウェイト・マトリクスのサイズは、ピクチャのサイズに関連付けられるべきである。ウェイト・マトリクスの深度次元(depth dimension)は、入力ピクチャの深度次元と同じである、ということに留意すべきである。畳み込み演算の間に、ウェイト・マトリクスは入力ピクチャの深度全体に拡張される。従って、単一のウェイト・マトリクスによる畳み込みによって、単一の深度次元の畳み込み出力が生成される。しかしながら、多くの場合、単一のウェイト・マトリクスは使用されず、同じサイズ(行×列)の複数のウェイト・マトリクス、即ち複数の同じタイプの行列が適用される。ウェイト・マトリクスの出力は、畳み込みピクチャの深度次元を形成するためにスタックされる。本件における次元(dimension)は、前述の「複数」に基づいて決定されるものとして理解されてもよい。異なるウェイト・マトリクスを使用して、ピクチャから異なる特徴を抽出してもよい。例えば、あるウェイト・マトリクスはピクチャのエッジ情報を抽出するために使用され、別のウェイト・マトリクスはピクチャの特定の色を抽出するために使用され、更に別のウェイト・マトリクスはピクチャ内の不要なノイズをぼかすために使用される。複数のウェイト・マトリクスのサイズ(行×列)は同じである。同じサイズで複数のウェイト・マトリクスから抽出される特徴マップのサイズも同じであり、同じサイズの複数の抽出された特徴マップを組み合わせて、畳み込み演算の出力を形成する。これらのウェイト・マトリクスのウェイト値は、実際のアプリケーションにおける大量の学習によって取得されることを必要とする。訓練によって得られたウェイト値を含む各ウェイト・マトリクスは、畳み込みニューラル・ネットワークが正しい予測を行うように、入力ピクチャから情報を抽出するために使用されることが可能である。畳み込みニューラル・ネットワークが複数の畳み込み層を有する場合、通常、大量の一般的な特徴が、初期の畳み込み層で抽出される。一般的な特徴は低レベル特徴と呼ばれる場合もある。畳み込みニューラル・ネットワークの深度が増すにつれて、後続の畳み込み層で抽出される特徴はより複雑になり、例えば高レベルの意味的特徴(high-level semantic feature)になる。高レベルの意味的特徴を有する特徴は、解決されるべき問題に、より適用可能になる。
【0190】
[0241] 訓練パラメータの量は、通常、削減されることを必要とするので、プーリング層が、通常、畳み込み層の後に周期的に導入されることを必要としている。1つの畳み込み層の後に1つのプーリング層が続いてもよいし、或いは、複数の畳み込み層の後に1つ以上のプーリング層が続いてもよい。ピクチャ処理の間に、プーリング層はピクチャのスペース・サイズを縮小するだけのために使用される。プーリング層は、平均プーリング演算子及び/又は最大プーリング演算子を含み、入力ピクチャに対してサンプリングを実行して、小さなサイズのピクチャを取得することが可能である。平均プーリング演算子は、特定のレンジ内でピクチャ内のピクセル値を算出して、平均値を生成するために使用されることが可能である。平均値は、平均プーリングの結果として使用される。最大プーリング演算子は、特定のレンジ内で最大値を有するピクセルを、最大プーリング結果として選択するために使用されることが可能である。また、畳み込み層のウェイト・マトリクスのサイズがピクチャのサイズに関係付けられることを必要とするのと同様に、プーリング層の演算子もピクチャのサイズに関係付けられることを必要とする。プーリング層から出力される処理済みピクチャのサイズは、プーリング層に入力されるピクチャのサイズより小さくてもよい。プーリング層から出力されたピクチャの各ピクセルは、プーリング層に入力されたピクチャの対応するサブ・エリアの平均値又は最大値を表す。
【0191】
[0242] 畳み込み層/プーリング層で実行される処理の後でさえ、畳み込みニューラル・ネットワークは、依然として必要な出力情報を出力することができない。上述したように、畳み込み層/プーリング層は、特徴を抽出し、入力ピクチャによってもたらされるパラメータを低減するだけである。しかしながら、最終的な出力情報(必要なクラス情報又はその他の関連情報)を生成するために、畳み込みニューラル・ネットワークは、ニューラル・ネットワーク層を用いて、1つの必要なクラスの出力又は必要なクラス・グループの出力を生成することを必要とする。従って、ニューラル・ネットワーク層は、複数の隠れ層を含む可能性がある。複数の隠れ層に含まれるパラメータは、特定のタスク・タイプの関連する訓練データに基づく事前訓練によって取得されもよい。例えば、タスク・タイプは、画像認識、画像分類、及び超解像度画像再構成を含む可能性がある。
【0192】
[0243] オプションとして、ニューラル・ネットワーク層において、複数の隠れ層の後に、畳み込みニューラル・ネットワーク全体の出力層が続く。出力層は、カテゴリ・クロス・エントロピーに類似する損失関数を有し、損失関数は、具体的には、予測誤差を算出するために使用される。畳み込みニューラル・ネットワーク全体の順伝播が完了すると、逆伝播が開始され、上述した各層のウェイト値と偏差を更新して、畳み込みニューラル・ネットワークの損失、及び、出力層を用いて畳み込みニューラル・ネットワークにより出力された結果と理想的な結果との間の誤差を低減する。
【0193】
[0244] (4)リカレント・ニューラル・ネットワーク
[0245] リカレント・ニューラル・ネットワーク(recurrent neural network,RNN)は、シーケンス・データを処理するために使用される。従来のニューラル・ネットワーク・モデルは、入力層から始まり隠れ層に至り、そして出力層に至り、各層は完全に接続され、各層においてはノードは接続されない。この通常のニューラル・ネットワークは多くの問題を解決するが、それでも多くの問題に不十分である。例えば、文中の単語が予測されるべきである場合、通常、前の単語が使用されることを必要とし、なぜなら文中の隣接する単語は関連しているからである。RNNがリカレント・ニューラル・ネットワークと呼ばれる理由は、シーケンスの現在の出力がシーケンスの前の出力にも関連しているからである。具体的な表現形式は、ネットワークが以前の情報を記憶し且つ現在の出力の計算に以前の情報を適用するものである。具体的には、隠れ層のノードは接続され、隠れ層の入力は入力層の出力を含むだけでなく、前の時点の隠れ層の出力も含む。理論的には、RNNは任意の長さのシーケンス・データを処理することができる。RNNの訓練は、従来のCNNやDNNの訓練と同じである。誤差逆伝播アルゴリズムも使用されるが、相違点がある:RNNが拡張される場合、RNNのWのようなパラメータは共有される。この点は、前述の例で説明した従来のニューラル・ネットワークと相違する。また、勾配降下アルゴリズムを使用する際に、各ステップにおける出力は、現在のステップにおけるネットワークに対してだけでなく、幾つかの前のステップにおけるネットワーク状態にも依存している。この学習アルゴリズムは、通時的逆伝播(Back propagation Through Time,BPTT)アルゴリズムと呼ばれる。
【0194】
[0246] 畳み込みニューラル・ネットワークが利用可能である場合に、なぜリカレント・ニューラル・ネットワークが依然として必要であるのか? 理由は簡単である。畳み込みニューラル・ネットワークでは、要素は互いに独立しており、入力と出力も、猫と犬のように独立している、という前提が存在する。しかしながら、現実の世界では、複数の要素は相互に関連している。例えば、株価は時間とともに変化する。別の例として、「私は旅行が好きで、一番好きな場所は雲南省(Yunnan)です。将来、機会があれば(_)に行きます。」と言ったとする。ここで、人々は、その人が「雲南」に行くであろうというが分かるはずである。人々は文脈から推論を行うからである。しかしながら、機械はそれをどのように行うであろうか? そこで、RNNが登場する。RNNは、機械が人間のように記憶できるようになるように意図されている。そのため、RNNの出力は、現在の入力情報と過去の記憶情報に依存する必要がある。
【0195】
[0247] (5)損失関数
[0248] ディープ・ニューラル・ネットワークを訓練するプロセスにおいて、ディープ・ニューラル・ネットワークの出力は、実際に予想される予測子にできるだけ近いことが期待されるので、ネットワークの現在の予測子は、実際に予想される目標値と比較されることが可能であり、次いで、予測された値と目標値との間の差分に基づいて、ニューラル・ネットワークの各層におけるウェイト・ベクトルが更新される(確かに、最初の更新の前に、通常、初期化プロセスがあり、具体的には、ディープ・ニューラル・ネットワークの各層に対してパラメータが予め設定される)。例えば、ネットワークの予測子が大きい場合に、ウェイト・ベクトルは、予測される値を小さくするように調整されるようなことが、ディープ・ニューラル・ネットワークが実際に予想される目標値、又は実際に予想される目標値に極めて近い値、を予測できるようになるまで行われる。そのため、「予測子と目標値の間の差分を比較によってどのように求めるか」ということが、事前に定められていることを必要とする。これが、損失関数(loss function)或いは目的関数(objective function)である。損失関数と目的関数は、予測子と目標値の間の差分を測定される重要な式である。損失関数を例として使用する。損失関数のより大きな出力値(損失)は、より大きな差分を示す。従って、ディープ・ニューラル・ネットワークの訓練は、損失をできるだけ十分に小さくするプロセスである。
【0196】
[0249] (6)バック・プロパゲーション・アルゴリズム
[0250] 畳み込みニューラル・ネットワークは、超解像モデルの再構成誤差損失が、より小さくなるように、誤差逆伝播(back propagation,BP)アルゴリズムに従って、訓練プロセスにおいて、初期の超解像モデルのパラメータ値を補正することができる。具体的には、誤差損失が出力に生じるまで、入力信号が順方向に伝搬され、初期の超解像モデルのパラメータは、逆伝播誤差損失情報に基づいて更新されて、誤差損失を収束させる。逆伝播アルゴリズムは、超解像モデルの最適なパラメータ、例えばウェイト行列を求めるように意図された、誤差損失を中心とした逆伝播運動である。
【0197】
[0251] (7)敵対的生成ネットワーク
[0252] 敵対的生成ネットワーク(generative adversarial network,GAN)は、ディープ・ラーニング・モデルである。モデルは、少なくとも2つのモジュールを含み:一方のモジュールは生成モデル(Generative Model)であり、他方のモジュールは識別モデル(Discriminative Model)である。2つのモジュールは、互いにゲームを通じて学習し、より良い出力を生成するために使用される。生成モデルと識別モデルは両方ともニューラル・ネットワークであるとすることが可能であり、具体的には、ディープ・ニューラル・ネットワーク又は畳み込み・ニューラル・ネットワークであってもよい。GANの基本原理は次の通りである:ピクチャを生成するためのGANを一例として使用する。2つのネットワーク:G(Generator)とD(Discriminator)が存在することを仮定する。Gはピクチャを生成するネットワークである。Gはランダムなノイズzを受け取り、そのノイズに基づいてピクチャを生成し、ここで、ピクチャはG(z)として示される。Dは、ピクチャが「本物(real)」かどうかを判別するために使用されるネットワークである。Dの入力パラメータはxであり、xはピクチャを表し、出力D(x)は、xが本物のピクチャである確率を表す。D(x)の値が1である場合、それは、そのピクチャは100%本物であることを示す。D(x)の値が0である場合、それは、そのピクチャが本物であるはずはないことを示す。敵対的生成ネットワークを訓練するプロセスにおいて、生成ネットワークGの目的は、識別ネットワークDを欺けるほど、できるだけリアルなピクチャを生成することであり、識別ネットワークDの目的は、Gによって生成されたピクチャと本物のピクチャをできるだけ正確に識別することである。このように、GとDの間には、動的な「ゲーミング(gaming)」プロセス、具体的には、「敵対的生成的ネットワーク」における「敵対者」が存在する。最終的なゲーミングの結果は、理想的な状態では、Gは、本物のピクチャと区別することが困難なピクチャG(z)を生成することが可能であり、Dにとって、Gにより生成されたピクチャが本物であるかどうかを判別することは困難になり、具体的には、D(G(z))=0.5である。このようにして、優れた生成モデルGが得られ、これを用いてピクチャを生成することができる。
【0198】
[0253]
図7aは、本件出願の実施形態によるアプリケーション・シナリオの概略図である。
図7aに示されるように、アプリケーション・シナリオでは、デバイスはデータを取得し、取得したデータを圧縮し、次いで、圧縮されたデータを格納する。デバイスは、前述のソース・デバイス及びデスティネーション・デバイスの機能を統合している可能性がある。
【0199】
[0254] 1.デバイスが、データを取得する。
【0200】
[0255] 2.デバイスは、データを圧縮して、圧縮されたデータを取得する。
【0201】
[0256] 3.デバイスは、圧縮しデータを格納する。
【0202】
[0257] デバイスは、記憶スペースを節約するためにデータを圧縮する、ということが理解されるべきである。オプションとして、デバイスは、圧縮されたデータをアルバム又はクラウド・アルバムに格納することが可能である。
【0203】
[0258] 4.デバイスは、圧縮されたデータを解凍してデータを取得する。
【0204】
[0259]
図7bは、本件出願の実施形態によるアプリケーション・シナリオの概略図である。
図7bに示されるように、アプリケーション・シナリオでは、ソース・デバイスがデータを取得し、取得したデータを圧縮して圧縮されたデータを取得し、次いで、圧縮されたデータをデスティネーション・デバイスへ送信する。
【0205】
[0260] 本件出願の実施形態では、ソース・デバイスは、取得したデータを圧縮し、次いで、圧縮されたデータを、デスティネーション・デバイスへ送信することが可能である。これは、伝送帯域幅を削減することができる。
【0206】
[0261] 1.ソース・デバイスが、データを取得する。
【0207】
[0262] 2.ソース・デバイスは、データを圧縮して、圧縮されたデータを取得する。
【0208】
[0263] 3.ソース・デバイスは、圧縮されたデータをデスティネーション・デバイスへ送信する。
【0209】
[0264] ソース・デバイスは、データを圧縮し、次いで、データを伝送する。これは、伝送帯域幅を削減し、伝送効率を向上させることができる。
【0210】
[0265] 4.デスティネーション・デバイスは、圧縮されたデータを解凍してデータを取得する。
【0211】
[0266]
図8は、本件出願の実施形態による符号化及び復号化方法800のフローチャートである。符号化及び復号化方法800は、エンコーダ及びデコーダによって実行することが可能である。符号化及び復号化方法800は、一連のステップ又は動作として説明される。符号化及び復号化方法800は、様々なシーケンスで、及び/又は同時に実行されてもよく、
図8に示される実行シーケンスに限定されない、ということが理解されるべきである。
図8に示されるように、符号化及び復号化方法800は、以下のステップを含む可能性がある。
【0212】
[0267] ステップ801:エンコーダが、符号化される対象データを取得する。
【0213】
[0268] 例えば、エンコーダは、符号化される対象データxを取得する。
【0214】
[0269] ステップ802:エンコーダは、符号化される対象データを第1の符号化ネットワークに入力して、ターゲット・パラメータを取得する。
【0215】
[0270] ターゲット・パラメータは、第2の符号化ネットワークの全部又は一部の畳み込み及び非線型活性化のためのパラメータ・ウェイトであってもよい。
【0216】
[0271] オプションとして、第1の符号化ネットワークは、畳み込みカーネル生成器(畳み込みグループ又は全結合グループ(fully connected group))を含む可能性がある。畳み込みカーネル生成器は、符号化される対象データに基づいて、ターゲット・パラメータを生成するように構成されている。
【0217】
[0272] 例えば、エンコーダは、符号化される対象データxを、第1の符号化ネットワークに入力して、ターゲット・パラメータθgを取得する。
【0218】
[0273] ステップ803:エンコーダは、ターゲット・パラメータに基づいて、第2の符号化ネットワークを構築する。
【0219】
[0274] 例えば、エンコーダは、ターゲット・パラメータθgに基づいて、第2の符号化ネットワークga(x;θg)を構築する。
【0220】
[0275] ステップ804:エンコーダは、符号化される対象データを、第2の符号化ネットワークに入力して、第1の特徴を取得する。
【0221】
[0276] 第1の特徴は、符号化される対象データを再構成するために使用され、第1の特徴は、コンテンツ特徴と呼ばれる場合もある。例えば、第1の特徴は、符号化される対象データxの3次元特徴マップであってもよい。
【0222】
[0277] 例えば、エンコーダは、符号化される対象データxを、第2の符号化ネットワークga(x;θg)に入力して、第1の特徴yを取得する。yは、y=ga(x;θg)を満たす。
【0223】
[0278] ステップ805:エンコーダは、第1の特徴を符号化して、符号化されたビットストリーム(即ち、復号化される対象のビットストリーム)を取得する。
【0224】
[0279] 可能な実装において、エンコーダが、第1の特徴を符号化して、符号化されたビットストリームを取得することは:エンコーダが、第1の特徴を丸めて第1の特徴の整数値を取得し、次いで、第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し、次に、第1の特徴の整数値についての推定された確率分布に基づいて、第1の特徴の整数値に関するエントロピー符号化を実行して、符号化されたビットストリームを取得することを含む可能性がある。第1の特徴の整数値は、第1の値特徴(first value feature)又はコンテンツ丸め特徴(content rounding feature)と呼ばれる場合がある。
【0225】
[0280] 例えば、エンコーダは、先ず、第1の特徴yを丸めて、第1の特徴の整数値y^を取得する。次いで、エンコーダは、第1の特徴の整数値y^に関して確率推定を実行して、第1の特徴の整数値についての推定された確率分布p(y^)を取得する。次に、エンコーダは、第1の特徴の整数値についての推定された確率分布p(y^)に基づいて、第1の特徴の整数値y^に関するエントロピー符号化を実行して、符号化されたビットストリームを取得する。
【0226】
[0281] y^は、y^=round(y) を満たし、roundは、丸め演算である。
【0227】
[0282] p(y^)は、p(y^)=h(y^;θh) を満たし、h(y^;θh)は、エントロピー推定ネットワークである。
【0228】
[0283] オプションとして、エンコーダが、第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得することは:
エンコーダが、第1の情報に基づいて第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得することを含む可能性がある。第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0229】
[0284] 確率分布は、コンテキスト情報及びサイド情報に基づいて推定され、その結果、得られる推定された確率分布の精度は向上する可能性がある、ということに留意すべきである。これは、エントロピー符号化プロセスにおけるビット・レートを低減し、エントロピー符号化オーバーヘッドを低減する。
【0230】
[0285] ステップ806:エンコーダは、符号化されたビットストリームをデコーダへ送信する。
【0231】
[0286] ステップ807:デコーダは、符号化されたビットストリームを復号化して、第1の特徴の整数値を取得する。
【0232】
[0287] 可能な実装において、デコーダが、符号化されたビットストリームを復号化して、第1の特徴の整数値を取得することは:デコーダが、先ず、復号化される対象のビットストリームにおける第1の特徴の整数値に関する確率推定を実行して、第1の特徴の整数値についての推定された確率分布を取得し;次いで、第1の特徴の整数値についての推定された確率分布に基づいて、復号化されるビットストリームに関するエントロピー復号化を実行して、第1の特徴の整数値を取得することを含む可能性がある。
【0233】
[0288] ステップ808:デコーダは、第1の特徴の整数値を第1の復号化ネットワークに入力して、復号化されたデータを取得する。
【0234】
[0289] 例えば、デコーダは、第1の特徴の整数値y^を、復号化ネットワークgs(y^;φ)に入力して、復号化されたデータx^を取得し、ここで、復号化されたデータx^は、x^=gs(y^;φ)を満たし、φは、符号化ネットワークの畳み込み及び非線型活性化のためのパラメータ・ウェイトの全部又は一部である。
【0235】
[0290] 既存の符号化方法では、符号化ネットワーク(即ち、第2の符号化ネットワーク)が、固定されたパラメータ・ウェイトに基づいて、符号化される対象データのコンテンツ特徴(即ち、第1の特徴)を抽出し、次いで、コンテンツ特徴をビットストリーム(即ち、符号化されたビットストリーム)に符号化して、ビットストリームをデコーダ側へ送信する。デコーダ側は、ビットストリームに関して復号化及び再構成を実行して、復号化されたデータを取得する。従来の技術では、符号化ネットワークのパラメータ・ウェイトみは、符号化される対象データに関連付けられていない。しかしながら、本件出願の実施形態で提供される符号化方法では、先ず、符号化される対象データは第1の符号化ネットワークに入力され、第1の符号化ネットワークは符号化される対象データに基づいて第2の符号化ネットワークのパラメータ・ウェイトを生成し、従って、第2の符号化ネットワークのパラメータ・ウェイトは、取得されたウェイトに基づいて動的に調整され、その結果、第2の符号化ネットワークのパラメータ・ウェイトは、符号化される対象データに関連付けられるようになり、第2の符号化ネットワークの表現能力は増進され、第1の特徴を符号化することにより得られるビットストリームに関して復号化及び再構成によりデコーダ側で取得される復号化データは、符号化される対象データにより近づく。これは、符号化及び復号化ネットワークのレート歪パフォーマンスを向上させる。
【0236】
[0291] 本件出願のこの実施形態で提供される符号化及び復号化方法800は、
図9に示される符号化及び復号化システムに適用可能である。
図9に示されるように、符号化及び復号化システムは、第1の符号化ネットワーク901、第2の符号化ネットワーク902、丸めモジュール903、エントロピー推定ネットワーク904、エントロピー符号化モジュール905、エントロピー復号化モジュール906、及び復号化ネットワーク907を含む。
【0237】
[0292]
図9に示されるように、先ず、符号化される対象データは、第1の符号化ネットワーク901に入力されて、ターゲット・パラメータを取得し、次いで、第2の符号化ネットワーク902のパラメータが、ターゲット・パラメータに基づいて調整される(即ち、第2の符号化ネットワーク902の畳み込み及び非線型活性化のためのパラメータ・ウェイトの全部又は一部が、ターゲット・パラメータに基づいて調整される)。
【0238】
[0293] 符号化される対象データは、第2の符号化ネットワーク902に入力されて、第1の特徴を取得する。
【0239】
[0294] 丸めモジュール903は、第1の特徴を丸めて、第1の特徴の整数値を取得する。
【0240】
[0295] エントロピー推定ネットワーク904は、第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得する。
【0241】
[0296] エントロピー符号化モジュール905は、第1の特徴の整数値の推定された確率分布に基づいて、第1の特徴の整数値に関してエントロピー符号化を実行して、符号化されたビットストリームを取得する。
【0242】
[0297] エントロピー復号化モジュール906は、第1の特徴の整数値の推定された確率分布に基づいて、符号化されたビットストリームに関してエントロピー復号化を実行して、第1の特徴の整数値を取得する。
【0243】
[0298] 第1の特徴の整数値は、復号化ネットワーク907に入力されて、復号化されたデータを取得する。
【0244】
[0299]
図10は、本件出願の実施形態による符号化及び復号化方法1000のフローチャートである。符号化及び復号化方法1000は、エンコーダ及びデコーダによって実行することが可能である。符号化及び復号化方法1000は、一連のステップ又は動作として説明される。符号化及び復号化方法1000は、様々なシーケンスで、及び/又は同時に実行されてもよく、
図10に示される実行シーケンスに限定されない、ということが理解されるべきである。
図10に示されるように、符号化及び復号化方法1000は、以下のステップを含む可能性がある。
【0245】
[0300] ステップ1001:エンコーダが、符号化される対象データを取得する。
【0246】
[0301] ステップ1002:エンコーダは、符号化される対象データを第2の符号化ネットワークに入力して、第1の特徴を取得する。
【0247】
[0302] 第1の特徴は、符号化される対象データを再構成するために使用される。
【0248】
[0303] ステップ1003:エンコーダは、符号化される対象データを、第1の符号化ネットワークに入力して、第2の特徴を取得する。
【0249】
[0304] 第2の特徴は、ターゲット・パラメータを再構成するために使用され、第2の特徴は、モデル特徴と言及される場合があり、ターゲット・パラメータは、第2の復号化ネットワークの畳み込み及び非線型活性化のためのパラメータ・ウェイトの全部又は一部である。
【0250】
[0305] 可能な実装において、エンコーダは、先ず、第1の特徴を、チャネル次元において2つのパート(第1のサブ特徴及び第2のサブ特徴)に分割することが可能である。一方のパートは、符号化される対象データ(第1のサブ特徴)を再構成するために使用され、他方のパートは、ターゲット・パラメータ(第2のサブ特徴)を再構成するために使用される。次いで、エンコーダは、第2のサブ特徴を第1の符号化ネットワークに入力し、第2の特徴を取得する。
【0251】
[0306] オプションとして、第2の特徴が、小さなビットストリームで圧縮されることを可能にするために、第2のサブ特徴が第3の符号化ネットワークに入力される前に、第2のサブ特徴は、畳み込みネットワーク及び全結合ネットワークを介して更に変換されてもよい。変換前の第2のサブ特徴は、初期モデル特徴と呼ばれる場合があり、変換によって得られた第2のサブ特徴は、モデル特徴と呼ばれる場合がある。
【0252】
[0307] ステップ1004:エンコーダは、第1の特徴を符号化して、第1の符号化されたビットストリームを取得する。
【0253】
[0308] ステップ1005:エンコーダは、第2の特徴を符号化して、第2の符号化されたビットストリームを取得する。
【0254】
[0309] 可能な実装において、エンコーダは、第1の特徴及び第2の特徴を符号化して、復号化される対象のビットストリームを取得することが可能である。
【0255】
[0310] ステップ1006:エンコーダは、第1の復号化される対象のビットストリームと第2の復号化される対象のビットストリームを、デコーダへ送信する。
【0256】
[0311] ステップ1007:デコーダは、第1の復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得する。
【0257】
[0312] 可能な実装において、デコーダが、第1の復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得することは:デコーダが、第1の復号化される対象のビットストリーム内の第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得し、第1の特徴の整数値の推定された確率分布に基づいて、復号化される対象のビットストリームに関してエントロピー復号化を実行して、第1の特徴の整数値を取得することを含む可能性がある。
【0258】
[0313] 可能な実装において、第1の復号化される対象のビットストリーム内の第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得することは:第1の情報に基づいて、第1の復号化される対象のビットストリーム内の第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得することを含み、ここで、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0259】
[0314] ステップ1008:デコーダは、第2の復号化される対象のビットストリームを復号化して、第2の特徴量の整数値を取得する。
【0260】
[0315] 第2の特徴の整数値もまた、モデル丸め特徴と呼ばれる場合がある。
【0261】
[0316] 可能な実装において、デコーダが、第2の復号化される対象のビットストリームを復号化して、第2の特徴の整数値を取得することは:デコーダが、第2の復号化される対象のビットストリーム内の第2の特徴の整数値に関して確率推定を実行して、第2の特徴の整数値の推定された確率分布を取得し、第2の特徴の整数値の推定された確率分布に基づいて、第2の復号化される対象のビットストリームに対して、エントロピー復号化を実行して、第2の特徴の整数値を取得することを含む。
【0262】
[0317] 可能な実装において、第2の復号化される対象のビットストリーム内の第2の特徴の整数値に関して確率推定を実行して、第2の特徴の整数値の推定された確率分布を取得することは:第1の情報に基づいて、第2の復号化される対象のビットストリーム内の第2の特徴の整数値に関して確率推定を実行して、第2の特徴の整数値の推定された確率分布を取得することを含み、ここで、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0263】
[0319] ステップ1009:デコーダは、第2の特徴の整数値を、第1の復号化ネットワークに入力して、ターゲット・パラメータを取得する。
【0264】
[0319] ステップ1010:デコーダは、ターゲット・パラメータに基づいて第2の復号化ネットワークを構築する。
【0265】
[0320] ステップ1011:デコーダは、第1の特徴の整数値を第2の復号化ネットワークに入力して、復号化されたデータを取得する。
【0266】
[0321] 既存の復号化方法では、復号化ネットワーク(即ち、第2の復号化ネットワーク)は、固定されたパラメータ・ウェイトに基づいて、符号化された対象データの内容値特徴(即ち、第1の特徴の整数値)に対して復号化及び再構成を実行して、復号化されたデータを取得する。従来技術では、復号化ネットワークのパラメータ・ウェイトは、復号化される対象データに関連付けられていない、ということが分かる。しかしながら、本件出願のこの実施形態では、復号化される対象データの内容特徴とモデル特徴(即ち、第1の特徴と第2の特徴)を、復号化される対象ビットストリーム内に符号化し、次いで、デコーダ側は復号化される対象のビットストリームを復号化して、第2の特徴の整数値を取得し、第2の特徴の整数値は、第1の復号化ネットワークに入力されて、第2の復号化ネットワークのパラメータ・ウェイトを取得し、次いで、第2の復号化ネットワークのパラメータ・ウェイトはパラメータ・ウェイトに基づいて動的に調整され、その結果、第2の復号化ネットワークのパラメータ・ウェイトは復号化される対象データに関連付けられるようになり、第2の復号化ネットワークの表現能力は改善され、復号化及び再構成を経て第2の復号化ネットワークにより取得される復号化されたデータは、符号化された対象データにより近づく。これは、符号化及び復号化ネットワークのレート歪パフォーマンスを向上させる。
【0267】
[0322] 本件出願のこの実施形態で提供される符号化及び復号化方法1000は、
図11に示される符号化及び復号化システムに適用可能である。
図11に示されるように、符号化及び復号化システムは、第1の符号化ネットワーク1101、第2の符号化ネットワーク1102、第1の丸めモジュール1103、第2の丸めモジュール1104、エントロピー推定ネットワーク1105、第1のエントロピー符号化モジュール1106、第2のエントロピー符号化モジュール1107、第1のエントロピー復号化モジュール1108、第2のエントロピー復号化モジュール1109、第1の復号化ネットワーク1110、及び第2の復号化ネットワーク1111を含む。
【0268】
[0323]
図11に示されるように、先ず、符号化される対象データは、第2の符号化ネットワーク1102に入力されて、第1の特徴を取得し、次いで、符号化される対象データは、第1の符号化ネットワーク1101に入力されて、第2の特徴を取得する。
【0269】
[0324] 第1の丸めモジュール1103は、第1の特徴を丸めて、第1の特徴の整数値を取得する。
【0270】
[0325] 第2の丸めモジュール1104は、第2の特徴を丸めて、第2の特徴の整数値を取得する。
【0271】
[0326] エントロピー推定ネットワーク1105は、先ず、第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得し、次いで、第2の特徴の整数値に関して確率推定を実行して、第2の特徴の整数値の推定された確率分布を取得する。
【0272】
[0327] 第1のエントロピー符号化モジュール1106は、第1の特徴の整数値の推定された確率分布に基づいて、第1の特徴の整数値に関してエントロピー符号化を実行して、第1の復号化される対象のビットストリームを取得する。
【0273】
[0328] 第2のエントロピー符号化モジュール1107は、第2の特徴の整数値の推定された確率分布に基づいて、第2の特徴の整数値に関してエントロピー符号化を実行して、第2の復号化される対象のビットストリームを取得する。
【0274】
[0329] 第1のエントロピー復号化モジュール1108は、第1の特徴の整数値の推定された確率分布に基づいて、第1の復号化される対象のビットストリームに関してエントロピー復号化を実行して、第1の特徴の整数値を取得する。
【0275】
[0330] 第2のエントロピー復号化モジュール1109は、第2の特徴の整数値の推定された確率分布に基づいて、第2の復号化される対象のビットストリームに関してエントロピー復号化を実行して、第2の特徴の整数値を取得する。
【0276】
[0331] 第2の特徴の整数値は、先ず、第1の復号化ネットワーク1110に入力されて、ターゲット・パラメータを取得し、次いで、第2の復号化ネットワーク1111のパラメータは、ターゲット・パラメータに基づいて調整される(即ち、第2の復号化ネットワーク1111の畳み込み及び非線型活性化のためのパラメータ・ウェイトの全部又は一部が、ターゲット・パラメータに基づいて調整される)。
【0277】
[0332] 第1の特徴の整数値は、第2の復号化ネットワーク1111に入力されて、復号化されたデータを取得する。
【0278】
[0333] 本件出願のこの実施形態で提供される符号化及び復号化方法1000は、
図12に示される符号化及び復号化システムにも適用可能である。
図12に示されるように、符号化及び復号化システムは、第1の符号化ネットワーク1201、第2の符号化ネットワーク1202、チャネル分割モジュール1203、第1の丸めモジュール1204、第2の丸めモジュール1205、エントロピー推定ネットワーク1206、第1のエントロピー符号化モジュール1207、第2のエントロピー符号化モジュール1208、第1のエントロピー復号化モジュール1209、第2のエントロピー復号化モジュール1210、第1の復号化ネットワーク1211、及び第2の復号化ネットワーク1212を含む。
【0279】
[0334]
図12に示されるように、符号化される対象データは、先ず、第2の符号化ネットワーク1202に入力されて、第1の特徴を取得する。
【0280】
[0335] 第1の特徴は、チャネル分割モジュール1203に入力され、チャネル次元において第1のサブ特徴と第2のサブ特徴とに分割される。
【0281】
[0336] 第2のサブ特徴は、第1の符号化ネットワーク1201に入力されて、第2の特徴を取得する。
【0282】
[0337] 第1の丸めモジュール1204は、第1のサブ特徴を丸めて、第1の特徴の整数値を取得する。
【0283】
[0338] 第2の丸めモジュール1205は、第2のサブ特徴を丸めて、第2の特徴の整数値を取得する。
【0284】
[0339] エントロピー推定ネットワーク1206は、先ず、第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得し、次いで、第2の特徴の整数値に関して確率推定を実行して、第2の特徴の整数値の推定された確率分布を取得する。
【0285】
[0340] 第1のエントロピー符号化モジュール1207は、第1の特徴の整数値の推定された確率分布に基づいて、第1の特徴の整数値に関してエントロピー符号化を実行して、第1の復号化される対象のビットストリームを取得する。
【0286】
[0341] 第2のエントロピー符号化モジュール1208は、第2の特徴の整数値の推定された確率分布に基づいて、第2の特徴の整数値に関してエントロピー符号化を実行して、第2の復号化される対象のビットストリームを取得する。
【0287】
[0342] 第1のエントロピー復号化モジュール1209は、第1の特徴の整数値の推定された確率分布に基づいて、第1の復号化される対象のビットストリームに関してエントロピー復号化を実行して、第1の特徴の整数値を取得する。
【0288】
[0343] 第2のエントロピー復号化モジュール1210は、第2の特徴の整数値の推定された確率分布に基づいて、第2の復号化される対象のビットストリームに関してエントロピー復号化を実行して、第2の特徴の整数値を取得する。
【0289】
[0344] 第2の特徴の整数値は、先ず、第1の復号化ネットワーク1211に入力されて、ターゲット・パラメータを取得し、次いで、第2の復号化ネットワーク1212のパラメータは、ターゲット・パラメータに基づいて調整される(即ち、第2の復号化ネットワーク1212の畳み込み及び非線型活性化のためのパラメータ・ウェイトの全部又は一部が、ターゲット・パラメータに基づいて調整される)。
【0290】
[0345] 第1の特徴の整数値は、第2の復号化ネットワーク1212に入力されて、復号化されたデータを取得する。
【0291】
[0346]
図10は、本件出願の実施形態による符号化及び復号化方法1300のフローチャートである。符号化及び復号化方法1300は、エンコーダ及びデコーダによって実行することが可能である。符号化及び復号化方法1300は、一連のステップ又は動作として説明される。符号化及び復号化方法1300は、様々なシーケンスで、及び/又は同時に実行されてもよく、
図13に示される実行シーケンスに限定されない、ということが理解されるべきである。
図13に示されるように、符号化及び復号化方法1300は、以下のステップを含む可能性がある。
【0292】
[0347] ステップ1301:エンコーダが、符号化される対象データを取得する。
【0293】
[0348] ステップ1302:エンコーダは、符号化される対象データを符号化ネットワークに入力して、第1の特徴を取得する。
【0294】
[0349] ステップ1303:エンコーダは、第1の特徴を符号化して、復号化される対象のビットストリームを取得する。
【0295】
[0350] ステップ1304:エンコーダは、復号化される対象のビットストリームを、デコーダへ送信する。
【0296】
[0351] ステップ1305:デコーダは、復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得する。
【0297】
[0352] 可能な実装において、デコーダが、復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得することは:デコーダが、復号化される対象のビットストリーム内の第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得し、第1の特徴の整数値の推定された確率分布に基づいて、復号化される対象のビットストリームに関してエントロピー復号化を実行して、第1の特徴の整数値を取得することを含む可能性がある。
【0298】
[0353] 可能な実装において、復号化される対象のビットストリーム内の第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得することは:第1の情報に基づいて、復号化される対象のビットストリーム内の第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得することを含み、ここで、第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む。
【0299】
[0354] ステップ1309:デコーダは、第1の特徴の整数値を、第1の復号化ネットワークに入力して、ターゲット・パラメータを取得する。
【0300】
[0355] オプションとして、第1の復号化ネットワークは、畳み込みカーネル生成器(畳み込みグループ又は全結合グループ)を含む可能性がある。畳み込みカーネル生成器は、符号化される対象データの第1の特徴の整数値に基づいて、ターゲット・パラメータを生成するように構成される。
【0301】
[0356] ステップ1307:デコーダは、ターゲット・パラメータに基づいて第2の復号化ネットワークを構築する。
【0302】
[0357] ステップ1308:デコーダは、第1の特徴の整数値を第2の復号化ネットワークに入力して、復号化されたデータを取得する。
【0303】
[0358] 既存の復号化方法では、復号化ネットワーク(即ち、第2の復号化ネットワーク)は、固定されたパラメータ・ウェイトに基づいて、符号化された対象データの内容値特徴(即ち、第1の特徴の整数値)に対して復号化及び再構成を実行して、復号化されたデータを取得する。従来技術では、復号化ネットワークのパラメータ・ウェイトは、復号化される対象データに関連付けられていない、ということが分かる。しかしながら、本件出願のこの実施形態では、復号化される対象データの特徴を符号化することにより取得される復号化対象ビットストリームを復号化して、第1の特徴の整数値を取得し、第1の特徴の整数値は、第1の復号化ネットワークに入力されて、第2の復号化ネットワークのパラメータ・ウェイトを取得し、次いで、第2の復号化ネットワークのパラメータ・ウェイトはパラメータ・ウェイトに基づいて動的に調整され、その結果、第2の復号化ネットワークのパラメータ・ウェイトは復号化される対象データに関連付けられるようになり、第2の復号化ネットワークの表現能力は改善され、復号化及び再構成を経て第2の復号化ネットワークにより取得される復号化されたデータは、符号化された対象データにより近づく。これは、符号化及び復号化ネットワークのレート歪パフォーマンスを向上させる。
【0304】
[0359] 本件出願のこの実施形態で提供される符号化及び復号化方法1300は、
図14に示される符号化及び復号化システムに適用可能である。
図14に示されるように、符号化及び復号化システムは、符号化ネットワーク1401、丸めモジュール1402、エントロピー推定ネットワーク1403、エントロピー符号化モジュール1404、エントロピー復号化モジュール1405、第1の復号化ネットワーク1406、及び第2の復号化ネットワーク1407を含む。
【0305】
[0360]
図14に示されるように、先ず、符号化される対象データは、符号化ネットワーク1401に入力されて、第1の特徴を取得する。
【0306】
[0361] 丸めモジュール1402は、第1の特徴を丸めて、第1の特徴の整数値を取得する。
【0307】
[0362] エントロピー推定ネットワーク1403は、第1の特徴の整数値に関して確率推定を実行して、第1の特徴の整数値の推定された確率分布を取得する。
【0308】
[0363] エントロピー符号化モジュール1404は、第1の特徴の整数値の推定された確率分布に基づいて、第1の特徴の整数値に関してエントロピー符号化を実行して、復号化される対象のビットストリームを取得する。
【0309】
[0364] エントロピー復号化モジュール1405は、第1の特徴の整数値の推定された確率分布に基づいて、復号化される対象のビットストリームに関してエントロピー復号化を実行して、第1の特徴の整数値を取得する。
【0310】
[0365] 第1の特徴の整数値は、先ず、復号化ネットワーク1406に入力されて、ターゲット・パラメータを取得し、次いで、第2の復号化ネットワーク1407のパラメータは、ターゲット・パラメータに基づいて調整される(即ち、第2の復号化ネットワーク1407の畳み込み及び非線型活性化のためのパラメータ・ウェイトの全部又は一部が、ターゲット・パラメータに基づいて調整される)。
【0311】
[0366] 第1の特徴の整数値は、第2の復号化ネットワーク1407に入力されて、復号化されたデータを取得する。
【0312】
[0367]
図15は、本件出願の実施形態による符号化及び復号化方法のパフォーマンスを示す概略図である。
図15の座標系は、ピーク信号対雑音比(Peak Signal-to-Noise Ratio,PSNR)指標に基づいて、本件出願の実施形態及び従来技術を使用して、テスト・セットを別々に符号化及び復号化するパフォーマンスを示す。テスト・セットは、コダック(Kodak)テスト・セットである。コダック・テスト・セットは、ポータブル・ネットワーク・グラフィックス(Portable Network Graphics,PNG)フォーマットで24枚の画像を含んでいる。24個のピクチャの解像度は、768×512又は512×768である可能性がある。
図15の座標系において、横座標はビット・レート(bits per pixel,BPP)を示し、縦座標はPSNRを示す。BPPは、各画像を保存するために使用されるビット量を示す。値が小さいほど圧縮ビット・レートは小さいことを示す。PSNRは画像を評価する客観的な基準である。PSNRが高いほど画質が良いことを示す。
【0313】
[0368]
図15に示される座標系における線分Aは本件発明の実施形態を表し、線分Bは従来技術を表す。BPP指標が同じである場合、本件出願の実施形態におけるPSNR指標は全て従来技術における指標よりも大きくなっており、また、画像圧縮品質(即ち、PSNR指標)が同じである場合、本件出願の実施形態におけるBPP指標は全て従来技術における指標よりも小さい、ということを
図15から知ることができる。本件出願の実施形態におけるレート歪パフォーマンスは、従来技術におけるレート歪パフォーマンスよりも高くなっており、データ符号化及び復号化方法のレート歪パフォーマンスは、本件出願の実施形態において改善されることが可能である、ということが分かる。
【0314】
[0369] 本件出願の実施形態において提供される符号化及び復号化方法が適用されることが可能なシナリオは、電子デバイス、クラウド・サービス、及びビデオ監視(例えば、電子デバイスの撮影及びビデオ又はオーディオ・サービス、アルバム、クラウド・アルバム、ビデオ監視、ビデオ会議、モデル圧縮)における画像、ビデオ、及び音声のようなデータのキャプチャ、格納、及び伝送に関連する全てのサービスを含むが、これらに限定されない。
【0315】
[0370]
図16は、本件出願の実施形態によるアプリケーション・シナリオの概略図である。
図16に示されるように、アプリケーション・シナリオでは、撮影によってピクチャ・データ(圧縮される対象データ)を取得した後に、電子デバイスは、撮影によって取得したピクチャ・データ(例えば、RAWフォーマット、YUVフォーマット、又はRGBフォーマットにおけるピクチャ・データ)を、電子デバイスのAI符号化ユニットに入力する。電子デバイスのAI符号化ユニットは、第1の符号化ネットワーク、第2の符号化ネットワーク、及びエントロピー推定ネットワークを起動して、ピクチャ・データを、低い冗長度の出力特徴に変換し、出力特徴の推定された確率分布を生成する。電子デバイスの算術符号化ユニットは、エントロピー符号化モジュールを起動して、出力特徴の推定された確率分布に基づいて出力特徴をデータ・ファイルに符号化する。ファイル格納ユニットは、エントロピー符号化モジュールによって生成されたデータ・ファイルを、電子デバイスの対応する格納場所に格納する。電子デバイスがデータ・ファイルを使用することを必要とする場合、ファイル・ローディング・ユニットは、データ・ファイルを、電子デバイスの対応する格納場所からロードし、データ・ファイルは算術復号化ユニットに入力される。算術復号化ユニットはエントロピー復号化モジュールを起動して、データ・ファイルを復号化して、出力特徴を取得し、また、出力特徴はAI復号化ユニットに入力される。AI復号化ユニットは、第1の復号化ネットワーク、第2の復号化ネットワーク、及び第3の復号化ネットワークを起動して、出力特徴に対して逆変換を実行し、出力特徴を画像データ(例えば、RGB画像データ)、即ち圧縮されたデータに解析する。AI符号化ユニット及びAI復号化ユニットは、電子デバイスのニューラル・ネットワーク処理ユニット(neural network processing unit,NPU)又はグラフィックス処理ユニット(graphics processing unit,GPU)に配備されてもよい。算術符号化ユニット、ファイル格納ユニット、ファイル・ローディング・ユニット、及び算術復号化ユニットは、電子デバイスのCPUに配備されてもよい。
【0316】
[0371]
図17は、本件出願の実施形態による別のアプリケーション・シナリオの概略図である。
図17に示されるように、アプリケーション・シナリオにおいて、電子デバイスは、クラウド(例えば、サーバー)に対して、アップロードする前に、格納されたピクチャ・データ(圧縮される対象データ)を符号化するか(例えば、JPEG符号化)、又は直接的にアップロードする。クラウドは、クラウドにおけるAI符号化ユニットに対して、入力する前に、受信したピクチャ・データを復号化するか(例えば、JPEG復号化)、又は直接的に入力する。クラウドにおけるAI符号化ユニットは、第1の符号化ネットワーク、第2の符号化ネットワーク、及びエントロピー推定ネットワークを起動して、ピクチャ・データを、冗長度の低い出力特徴に変換し、出力特徴量の推定された確率分布を生成する。クラウドにおける算術符号化ユニットは、エントロピー符号化モジュールを起動して、出力特徴の推定された確率分布に基づいて出力特徴をデータ・ファイルに符号化する。ファイル格納ユニットは、エントロピー符号化モジュールによって生成されたデータ・ファイルを、クラウドにおける対応する格納場所に格納する。電子デバイスがデータ・ファイルを使用することを必要とする場合、電子デバイスは、クラウドにダウンロード要求を送信する。クラウドがダウンロード要求を受信した後、ファイル・ローディング・ユニットは、データ・ファイルを、クラウドにおける対応するストレージ・ロケーションからロードし、データ・ファイルは算術復号化ユニットに入力される。算術復号化ユニットはエントロピー復号化モジュールを起動して、データ・ファイルを復号化して、出力特徴を取得し、また、出力特徴はAI復号化ユニットに入力される。AI復号化ユニットは、第1の復号化ネットワーク、第2の復号化ネットワーク、及び第3の復号化ネットワークを起動して、出力特徴に対して逆変換を実行し、出力特徴をピクチャ・データに解析する。クラウドは、電子デバイスに対して、送信する前にピクチャ・データを符号化するか(圧縮データ)、又は直接的に送信する。
【0317】
[0372] 以下、
図18及び
図19を参照しながら、前述の符号化及び復号化方法を実行するように構成された符号化及び復号化装置を説明する。
【0318】
[0373] 前述の機能を実装するために、符号化及び復号化装置は、各機能を実行する対応するハードウェア及び/又はソフトウェア・モジュールを含む、ということを理解することが可能である。本件明細書において開示される実施形態で説明される各々の例のアルゴリズム・ステップを参照すると、本件出願は、ハードウェア、又は、ハードウェアとコンピュータ・ソフトウェアとの組み合わせの形態で実施することが可能である。機能がハードウェアによって実行されるか、又は、コンピュータ・ソフトウェアによって駆動されるハードウェアによって実行されるかは、技術的解決策の設計制約及び特定の用途に依存する。当業者は、実施形態を参照して、説明した機能をそれぞれの特定の用途に実装するために、様々な方法を使用する可能性があるが、その実装が本件の範囲を超えて行くものであると考えるべきではない。
【0319】
[0374] 本件出願の実施形態において、符号化及び復号化装置は、前述の方法例に基づいて機能モジュールに分割される可能性がある。例えば、各々の機能モジュールは、対応する各機能に基づく分割によって得られてもよいし、或いは、2つ以上の機能が1つの処理モジュールに統合されてもよい。前述の統合されたモジュールは、ハードウェアの形態で実装されてもよい。本件実施形態において、モジュールへの分割は一例であり、単なる論理的な機能分割であるに過ぎず、実際の実装の際には他の分割であってもよい。
【0320】
[0375] 各々の機能モジュールが、対応する各機能に基づく分割によって得られる場合に、
図18は、前述の実施形態における符号化及び復号化装置の構成の可能な概略図である。
図18に示すように、装置1800は、トランシーバ・ユニット1801と、処理ユニット1802とを含む可能性がある。処理ユニット1802は、前述の方法の実施形態における符号化装置、復号化装置、エンコーダ、又はデコーダによって実行される方法、及び/又は、本件明細書で説明される技術の別の処理を実施することが可能である。
【0321】
[0376] 前述の方法の実施形態におけるステップの全ての関連する内容は、対応する機能モジュールの機能説明において引用されることが可能である、ということに留意すべきである。詳細はここで再び説明されない。
【0322】
[0377] 統合されたユニットが使用される場合に、装置1800は、処理ユニット、記憶ユニット、及び通信ユニットを含む可能性がある。処理ユニットは、デバイス1800の動作を制御及び管理するように構成されている可能性があり、例えば、前述のユニットによって実行されるステップを実行する際に、装置1800をサポートするように構成されていてもよい。記憶ユニットは、プログラム・コード、データ、及び/又はそれに類するもの、を記憶する際に装置1800をサポートするように構成されてもよい。通信ユニットは、装置1800と他のデバイスとの間の通信をサポートするように構成されてもよい。
【0323】
[0378] 処理ユニットは、プロセッサ又はコントローラであってもよい。プロセッサは、本件で開示される内容を参照して説明される様々な例示的な論理ブロック、モジュール、及び回路を実装又は実行することが可能である。プロセッサは、代替的に、演算機能を実装するための組み合わせであってもよく、例えば、1つ又は複数のマイクロプロセッサ、及び、デジタル信号プロセッサ(digital signal processor,DSP)とマイクロプロセッサとの組み合わせを含む組み合わせであってもよい。記憶デバイスはメモリであってもよい。通信ユニットは、具体的には、例えば、無線周波数回路、ブルートゥース・チップ、Wi-Fiチップ等であって、他の電子デバイスと相互作用するものであってもよい。
【0324】
[0379] 可能な実装において、本件出願のこの実施態様における符号化及び復号化装置は、
図19に示す構造を有する装置1900であってよい。装置1900は、プロセッサ1901及びトランシーバ1902を含む。
図18のトランシーバ・ユニット1801及び処理ユニット1802によって実施される関連機能は、プロセッサ1901によって実施されてもよい。
【0325】
[0380] オプションとして、装置1900は、メモリ1903を更に含む可能性がある。プロセッサ1901及びメモリ1903は、内部接続経路を介して互いに通信する。
図18の記憶デバイスによって実施される関連機能は、メモリ1903によって実施されてもよい。
【0326】
[0381] 本件出願の実施形態は、コンピュータ記憶媒体を更に提供する。コンピュータ記憶媒体は、コンピュータ命令を記憶する。コンピュータ命令が電子デバイス上で実行されると、電子デバイスは、前述の関連する方法ステップを実行して、前述の実施形態における符号化及び復号化方法を実施することが可能になる。
【0327】
[0382] 本件出願の実施形態は、コンピュータ・プログラム製品を更に提供する。コンピュータ・プログラム製品がコンピュータ上で実行されると、コンピュータは、前述の関連ステップを実行して、前述の実施形態における符号化及び復号化方法を実施することが可能になる。
【0328】
[0383] 本件出願の実施形態は、符号化及び復号化装置を更に提供する。装置は、具体的には、チップ、集積回路、コンポーネント、又はモジュールであってよい。具体的には、装置は、接続されたプロセッサと、命令を記憶するように構成されたメモリとを含むか、又は装置は、外部メモリから命令を取得するように構成された、少なくとも1つのプロセッサを含む。装置が動作する場合に、プロセッサは命令を実行し、その結果、チップは前述の方法の実施形態における符号化及び復号化方法を実行する。
【0329】
[0384]
図20は、チップ2000の構造の概略図である。チップ2000は、1つ以上のプロセッサ2001及びインターフェース回路2002を含む。オプションとして、チップ2000は、バス2003を更に含む可能性がある。
【0330】
[0385] プロセッサ2001は、集積回路チップである可能性があり、信号処理能力を有する。実施プロセスにおいて、前述の符号化方法の各ステップは、プロセッサ2001内のハードウェアの集積論理回路を使用することによって、又はソフトウェアの形態における命令を使用することによって完了することが可能である。
【0331】
[0386] プロセッサ2001は、汎用プロセッサ、デジタル信号プロセッサ(digital signal processor,DSP)、特定用途向け集積回路(application-specific integrated circuit,ASIC)、フィールド・プログラマブル・ゲート・アレイ(field-programmable gate array,FPGA)又は別のプログラマブル論理デバイス、ディスクリート・ゲート又はトランジスタ論理デバイス、又はディスクリート・ハードウェア・コンポーネントであってもよい。プロセッサは、本件出願の実施形態で開示される方法及びステップを実施又は実行することが可能である。汎用プロセッサは、マイクロプロセッサであってもよく、プロセッサは、任意の従来のプロセッサ等であってもよい。
【0332】
[0387] インターフェース回路2002は、データ、命令、又は情報を送信又は受信することが可能である。プロセッサ2001は、インターフェース回路2002を介して受信されるデータ、命令、又はその他の情報を処理し、処理によって得られた情報を、インターフェース回路2002を介して送信することが可能である。
【0333】
[0388] オプションとして、チップはメモリを更に含む。メモリは、リード・オンリー・メモリ・及びランダム・アクセス・メモリを含み、動作命令及びデータをプロセッサに提供することが可能である。メモリの一部は、不揮発性ランダム・アクセス・メモリ(non-volatile random access memory,NVRAM)を更に含んでもよい。
【0334】
[0389] オプションとして、メモリは、実行可能なソフトウェア・モジュール又はデータ構造を記憶し、プロセッサは、メモリに記憶された動作命令(動作命令は、オペレーティング・システムに記憶されることが可能である)を起動することによって、対応する動作を実行することが可能である。
【0335】
[0390] オプションとして、チップは、本件出願の実施形態における電子デバイス又はDSPにおいて使用される可能性がある。オプションとして、インターフェース回路2002は、プロセッサ2001の実行結果を出力するように構成されることが可能である。本件出願の1つ以上の実施形態で提供される符号化方法については、前述の実施形態を参照されたい。詳細はここで再び説明されない。
【0336】
[0391] プロセッサ2001及びインターフェース回路2002の各々に対応する機能は、ハードウェア設計を使用して実施することが可能であり、ソフトウェア設計を使用して実施することが可能であり、又は、ソフトウェア及びハードウェアの組み合せを使用して実施することが可能である、ということに留意すべきである。これは、本件において限定されない。
【0337】
[0392] 実施形態で提供される電子デバイス、コンピュータ記憶媒体、コンピュータ・プログラム製品、又はチップは、上記で提供される対応する方法を実行するように構成される。従って、達成可能な有益な効果については、上記で提供される対応する方法の有益な効果を参照されたい。詳細はここで再び説明しない。
【0338】
[0393] 前述のプロセスのシーケンス番号は、本件出願の実施形態における実行シーケンスを意味してはいない、ということが理解されるべきである。プロセスの実行順序は、プロセスの機能及び内部ロジックに基づいて決定されるべきものであり、本件出願の実施形態の実装プロセスに対する如何なる制限も構成するはずはない。
【0339】
[0394] 当業者は、本件明細書に開示された実施形態で説明されている例との組み合わせにおいて、ユニット及びアルゴリズム・ステップが、電子ハードウェア、又は、コンピュータ・ソフトウェアと電子ハードウェアとの組み合わせによって実施されることが可能である、ということを認識することが可能である。機能がハードウェアによって実行されるか又はソフトウェアによって実行されるかは、技術的解決策の設計制約及び特定の用途に依存する。当業者は、各々の特定の用途に対して、説明した機能を実装するために異なる方法を使用する可能性があるが、その実装が本件の範囲を超え行くものであると考えるべきではない。
【0340】
[0395] 説明を容易にかつ簡潔にするために、前述のシステム、装置、及びユニットの詳細な処理工程については、前述の方法の実施形態における対応するプロセスを参照されたい、ということは当業者により明確に理解されるであろう。詳細はここで再び説明されない。
【0341】
[0396] 本件において提供される幾つかの実施形態において、開示されるシステム、装置、及び方法は、他の態様で実施されてもよい、ということが理解されるべきである。例えば、説明した装置の実施形態は単なる例示である。例えば、ユニットへの分割は単なる論理機能的な分割であり、実際の実装の際には他の分割である可能性がある。例えば、複数のユニットやコンポーネントが組み合わせられたり、別のシステムに統合されたり、或いは一部の機能が無視されたり、実行されなかったりしてもよい。更に、図示又は説明された相互結合又は直接的な結合又は通信接続は、何らかのインターフェースを介して実装されてもよい。デバイス又はユニット間の間接的な結合又は通信接続は、電気的、機械的、又はその他の形態で実施されてもよい。
【0342】
[0397] 別個のパーツとして説明された前述のユニットは、物理的に別個であってもなくてもよく、ユニットとして図示されたパーツは、物理的なユニットであってもなくてもよく、一カ所に配置されてもよく、或いは、複数のネットワーク・ユニット上に分散されてもよい。ユニットの一部又は全部は、実施形態の解決策の目的を達成するための実際の要件に基づいて選択されることが可能である。
【0343】
[0398] 更に、本件出願の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよいし、各ユニットが物理的に単独で存在してもよいし、2つ以上のユニットが1つのユニットに統合されてもよい。
【0344】
[0399] 機能がソフトウェア機能ユニットの形態で実装され、独立した製品として販売又は使用される場合に、機能はコンピュータ読み取り可能な記憶媒体に記憶されてもよい。このような理解に基づいて、本質的に本件の技術的解決策、又は従来技術に寄与する部分、又は技術的解決策の全部又は一部は、ソフトウェア製品の形態で実施されることが可能である。コンピュータ・ソフトウェア製品は、記憶媒体に格納され、コンピュータ・デバイス(パーソナル・コンピュータ、サーバー、ネットワーク・デバイス等であってもよい)に、本件出願の実施形態で説明される前述の方法のステップの全部又は一部を実行するように指示するための複数の命令を含む。前述の記憶媒体は、USBフラッシュ・ドライブ、リムーバブル・ハード・ディスク、リード・オンリー・メモリ(Read-Only Memory,ROM)、ランダム・アクセス・メモリ(Random Access Memory,RAM)、磁気ディスク、コンパクト・ディスクのような、プログラム・コードを記憶することが可能な任意の媒体を含む。
【0345】
[0400] 前述の説明は、本件出願の具体的な実装に過ぎず、本件出願の保護範囲を限定するようには意図されていない。本件に開示された技術的範囲内で当業者によって容易に案出される如何なる変形又は置換も、本件の保護範囲に含まれるものとする。従って、本件出願の保護範囲は、クレームの保護範囲に従うものとする。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
符号化方法であって:
符号化される対象データを取得するステップ;
前記符号化される対象データを第1の符号化ネットワークに入力して、ターゲット・パラメータを取得するステップ;
前記ターゲット・パラメータに基づいて第2の符号化ネットワークを構築するステップ;
前記符号化される対象データを第2の符号化ネットワークに入力して第1の特徴を取得するステップ;及び
前記第1の特徴を符号化して符号化されたビットストリームを取得するステップ;
を含む方法。
【請求項2】
請求項1に記載の方法において、
1つ以上の前記ターゲット・パラメータは、前記第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である、方法。
【請求項3】
請求項1又は2に記載の方法において、前記第1の特徴を符号化して符号化されたビットストリームを取得するステップは:
前記第1の特徴を丸めて前記第1の特徴の整数値を取得するステップ;
前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第1の特徴の整数値についての推定された確率分布に基づいて、前記第1の特徴の整数値に関するエントロピー符号化を実行して、前記符号化されたビットストリームを取得するステップ;
を含む方法。
【請求項4】
請求項3に記載の方法において、前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップは:
第1の情報に基づいて前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を含む、方法。
【請求項5】
復号化方法であって:
復号化される対象のビットストリームを取得するステップ;
前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値と第2の特徴の整数値とを取得するステップであって、前記第1の特徴の整数値は、復号化されたデータを取得するために使用され、前記第2の特徴の整数値は、ターゲット・パラメータを取得するために使用される、ステップ;
前記第2の特徴の整数値を第1の復号化ネットワークに入力して、前記ターゲット・パラメータを取得するステップ;
前記ターゲット・パラメータに基づいて第2の復号化ネットワークを構築するステップ;及び
前記第1の特徴の整数値を前記第2の復号化ネットワークに入力して、復号化されたデータを取得するステップ;
を含む方法。
【請求項6】
請求項5に記載の方法において、前記ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である、方法。
【請求項7】
請求項5又は6に記載の方法において、前記復号化される対象のビットストリームは、第1の復号化される対象のビットストリームと第2の復号化される対象のビットストリームとを含み、前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値と第2の特徴の整数値とを取得するステップは:
前記第1の復号化される対象のビットストリームを復号化して、前記第1の特徴の整数値を取得するステップ;及び
前記第2の復号化される対象のビットストリームを復号化して、前記第2の特徴の整数値を取得するステップ;
を含む、方法。
【請求項8】
請求項7に記載の方法において、前記第1の復号化される対象のビットストリームを復号化して、前記第1の特徴の整数値を取得するステップは:
前記第1の復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第1の特徴の整数値についての推定された確率分布に基づいて、前記第1の復号化される対象のビットストリームに関するエントロピー復号化を実行して、前記第1の特徴の整数値を取得するステップ;
を含む、方法。
【請求項9】
請求項8に記載の方法において、前記第1の復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップは:
第1の情報に基づいて前記第1の復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を含む、方法。
【請求項10】
請求項
7に記載の方法において、前記第2の復号化される対象のビットストリームを復号化して、前記第2の特徴の整数値を取得するステップは:
前記第2の復号化される対象のビットストリームにおける前記第2の特徴の整数値に関する確率推定を実行して、前記第2の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第2の特徴の整数値についての推定された確率分布に基づいて、前記第2の復号化される対象のビットストリームに関するエントロピー復号化を実行して、前記第2の特徴の整数値を取得するステップ;
を含む、方法。
【請求項11】
請求項10に記載の方法において、前記第2の復号化される対象のビットストリームにおける前記第2の特徴の整数値に関する確率推定を実行して、前記第2の特徴の整数値についての推定された確率分布を取得するステップは:
第1の情報に基づいて前記第2の復号化される対象のビットストリームにおける前記第2の特徴の整数値に関する確率推定を実行して、前記第2の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を含む、方法。
【請求項12】
復号化方法であって:
復号化される対象のビットストリームを取得するステップ;
前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得するステップであって、前記第1の特徴の整数値は、復号化されたデータとターゲット・パラメータとを取得するために使用される、ステップ;
前記第1の特徴の整数値を第1の復号化ネットワークに入力して、前記ターゲット・パラメータを取得するステップ;
前記ターゲット・パラメータに基づいて第2の復号化ネットワークを構築するステップ;及び
前記第1の特徴の整数値を前記第2の復号化ネットワークに入力して、復号化されたデータを取得するステップ;
を含む方法。
【請求項13】
請求項12に記載の方法において、前記ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である、方法。
【請求項14】
請求項12又は13に記載の方法において、前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得するステップは:
前記復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第1の特徴の整数値についての推定された確率分布に基づいて、前記復号化される対象のビットストリームに関するエントロピー復号化を実行して、前記第1の特徴の整数値を取得するステップ;
を含む、方法。
【請求項15】
請求項14に記載の方法において、前記復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップは:
第1の情報に基づいて前記復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を含む、方法。
【請求項16】
処理回路を含む符号化装置であって、前記処理回路は:
符号化される対象データを取得するステップ;
前記符号化される対象データを第1の符号化ネットワークに入力して、ターゲット・パラメータを取得するステップ;
前記ターゲット・パラメータに基づいて第2の符号化ネットワークを構築するステップ;
前記符号化される対象データを第2の符号化ネットワークに入力して第1の特徴を取得するステップ;及び
前記第1の特徴を符号化して符号化されたビットストリームを取得するステップ;
を行うように構成されている、装置。
【請求項17】
請求項16に記載の装置において、前記ターゲット・パラメータは、前記第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である、装置。
【請求項18】
請求項16又は17に記載の装置において、前記処理回路は:
前記第1の特徴を丸めて前記第1の特徴の整数値を取得するステップ;
前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第1の特徴の整数値についての推定された確率分布に基づいて、前記第1の特徴の整数値に関するエントロピー符号化を実行して、前記符号化されたビットストリームを取得するステップ;
を行うように具体的に構成されている、装置。
【請求項19】
請求項18に記載の装置において、前記処理回路は:
第1の情報に基づいて前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を行うように具体的に構成されている、装置。
【請求項20】
処理回路を含む復号化装置であって、前記処理回路は:
復号化される対象のビットストリームを取得するステップ;
前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値と第2の特徴の整数値とを取得するステップであって、前記第1の特徴の整数値は、復号化されたデータを取得するために使用され、前記第2の特徴の整数値は、ターゲット・パラメータを取得するために使用される、ステップ;
前記第2の特徴の整数値を第1の復号化ネットワークに入力して、前記ターゲット・パラメータを取得するステップ;
前記ターゲット・パラメータに基づいて第2の復号化ネットワークを構築するステップ;及び
前記第1の特徴の整数値を前記第2の復号化ネットワークに入力して、復号化されたデータを取得するステップ;
を行うように具体的に構成されている、装置。
【請求項21】
請求項20に記載の装置において、前記ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である、装置。
【請求項22】
請求項20又は21に記載の装置において、前記復号化される対象のビットストリームは、第1の復号化される対象のビットストリームと第2の復号化される対象のビットストリームとを含み、前記処理回路は:
前記第1の復号化される対象のビットストリームを復号化して、前記第1の特徴の整数値を取得するステップ;及び
前記第2の復号化される対象のビットストリームを復号化して、前記第2の特徴の整数値を取得するステップ;
を行うように具体的に構成されている、装置。
【請求項23】
処理回路を含む復号化装置であって、前記処理回路は:
復号化される対象のビットストリームを取得するステップ;
前記復号化される対象のビットストリームを復号化して、第1の特徴の整数値を取得するステップであって、前記第1の特徴の整数値は、復号化されたデータとターゲット・パラメータとを取得するために使用される、ステップ;
前記第1の特徴の整数値を第1の復号化ネットワークに入力して、前記ターゲット・パラメータを取得するステップ;
前記ターゲット・パラメータに基づいて第2の復号化ネットワークを構築するステップ;及び
前記第1の特徴の整数値を前記第2の復号化ネットワークに入力して、復号化されたデータを取得するステップ;
を行うように具体的に構成されている、装置。
【請求項24】
請求項
23に記載の装置において、前記ターゲット・パラメータは、第2の符号化ネットワークの畳み込み及び非線型活性化に関するパラメータ・ウェイトのうちの全部又は一部である、装置。
【請求項25】
請求項
23又は
24に記載の装置において、前記処理回路は:
前記復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップ;及び
前記第1の特徴の整数値についての推定された確率分布に基づいて、前記復号化される対象のビットストリームに関するエントロピー復号化を実行して、前記第1の特徴の整数値を取得するステップ;
を行うように具体的に構成されている、装置。
【請求項26】
請求項
25に記載の装置において、前記処理回路は:
第1の情報に基づいて前記復号化される対象のビットストリームにおける前記第1の特徴の整数値に関する確率推定を実行して、前記第1の特徴の整数値についての推定された確率分布を取得するステップであって、前記第1の情報は、コンテキスト情報及びサイド情報のうちの少なくとも1つを含む、ステップ;
を行うように具体的に構成されている、装置。
【請求項27】
1つ以上のプロセッサ;及び
前記プロセッサに結合され、前記プロセッサにより実行されるプログラムを記憶する非一時的なコンピュータ読み取り可能な記憶媒体;
を含むエンコーダであって、前記プログラムが前記プロセッサにより実行されると、前記エンコーダは、請求項1ないし
2のうちの何れか一項に記載の方法を実行することが可能になる、エンコーダ。
【請求項28】
1つ以上のプロセッサ;及び
前記プロセッサに結合され、前記プロセッサにより実行されるプログラムを記憶する非一時的なコンピュータ読み取り可能な記憶媒体;
を含むデコーダであって、前記プログラムは前記プロセッサにより実行されると、エンコーダは、請求項5ないし
6のうちの何れか一項又は請求項12ないし
13のうちの何れか一項に記載の方法を実行することが可能になる、デコーダ。
【請求項29】
コンピュータ・プログラムを含むコンピュータ読み取り可能な記憶媒体であって、前記コンピュータ・プログラムがコンピュータにおいて実行されると、前記コンピュータは、請求項1ないし2、請求項5ないし
6、又は請求項12ないし
13のうちの何れか一項に記載の方法を実行することが可能になる、記憶媒体。
【請求項30】
コンピュータ・プログラ
ムであって、前記コンピュータ・プログラ
ムはコンピュータ・プログラム・コードを含み、前記コンピュータ・プログラム・コードがコンピュータにおいて実行されると、前記コンピュータは、請求項1ないし
2、請求項5ないし
6、又は請求項12ないし
13のうちの何れか一項に記載の方法を実行することが可能になる、コンピュータ・プログラ
ム。
【国際調査報告】