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

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

▶ キヤノン株式会社の特許一覧

特許7421570ファイル内にパノラマ画像をカプセル化するための方法および装置
<>
  • 特許-ファイル内にパノラマ画像をカプセル化するための方法および装置 図1
  • 特許-ファイル内にパノラマ画像をカプセル化するための方法および装置 図2
  • 特許-ファイル内にパノラマ画像をカプセル化するための方法および装置 図3
  • 特許-ファイル内にパノラマ画像をカプセル化するための方法および装置 図4
  • 特許-ファイル内にパノラマ画像をカプセル化するための方法および装置 図5
  • 特許-ファイル内にパノラマ画像をカプセル化するための方法および装置 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-16
(45)【発行日】2024-01-24
(54)【発明の名称】ファイル内にパノラマ画像をカプセル化するための方法および装置
(51)【国際特許分類】
   H04N 5/92 20060101AFI20240117BHJP
   H04N 21/236 20110101ALI20240117BHJP
   H04N 5/76 20060101ALI20240117BHJP
   G11B 27/00 20060101ALI20240117BHJP
   G06F 16/51 20190101ALI20240117BHJP
【FI】
H04N5/92 010
H04N21/236
H04N5/76
G11B27/00 A
G06F16/51
【請求項の数】 20
(21)【出願番号】P 2021563179
(86)(22)【出願日】2020-06-10
(65)【公表番号】
(43)【公表日】2022-08-29
(86)【国際出願番号】 EP2020066017
(87)【国際公開番号】W WO2020260014
(87)【国際公開日】2020-12-30
【審査請求日】2022-03-22
(31)【優先権主張番号】1909192.5
(32)【優先日】2019-06-26
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】マゼ, フレデリック
(72)【発明者】
【氏名】ドゥヌアル, フランク
【審査官】富樫 明
(56)【参考文献】
【文献】国際公開第2019/072795(WO,A1)
【文献】国際公開第2018/177819(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/91-5/956
H04N 21/00-21/858
H04N 5/76
G11B 27/00
G06F 16/51
(57)【特許請求の範囲】
【請求項1】
メディアデータをカプセル化したファイルを生成する方法であって、前記方法は、
パノラマ画像を生成するための複数の画像を識別するエンティティの第1のグループを記述するEntityToGroupBoxを生成することと、
前記EntityToGroupBoxと前記メディアデータを前記ファイルに埋め込むこととを含み、
前記第1のグループの各エンティティは、前記メディアデータの少なくとも一部に関連しており、
前記第1のグループのエンティティは、前記複数の画像の少なくとも一部を識別するエンティティの第2のグループを記述するグループ化データ構造を有する、方法。
【請求項2】
前記第1のグループを記述するEntityToGroupBoxは、ISOBMFFに準拠した「pano」に等しいグループ化タイプを有するEntityToGroupBoxである請求項1に記載の方法。
【請求項3】
前記第2のグループを記述するグループ化データ構造は、ISOBMFFに準拠したEntityToGroupBoxである請求項1または2に記載の方法。
【請求項4】
前記第2のグループを記述するグループ化データ構造は、露出、フォーカス、またはホワイトバランスに係るブラケット撮影に対応するグループ化タイプを有するグループ化データ構造であることを特徴とする、請求項1乃至3のいずれか1項に記載の方法。
【請求項5】
パノラマ記述アイテムプロパティは、前記第1のグループに関連付けられ、
前記パノラマ記述アイテムプロパティは、前記パノラマ画像に関するパラメータを提供する請求項1乃至4のいずれか1項に記載の方法。
【請求項6】
前記パノラマ記述アイテムプロパティは、
パノラマ方向、
グリッドパノラマの行数から1を引いた数を指定するための整数、
パノラマグリッド内の列数から1を引いた数を指定する整数、
のうちの少なくとも1つを含む、請求項5に記載の方法。
【請求項7】
前記パノラマ記述アイテムプロパティは、ISOBMFFに準拠した「pano」に等しいグループ化タイプを有する、請求項5または6に記載の方法。
【請求項8】
前記第1のグループおよび/または前記第2のグループのエンティティ、および/または前記第1のグループおよび/または前記第2のグループ、のうちの少なくとも1つが、タイミング情報を含むアイテムプロパティに関連付けられる、請求項1に記載の方法。
【請求項9】
前記第2のグループの少なくとも1つのエンティティが画像アイテムである請求項1~8のいずれかに記載の方法。
【請求項10】
前記第2のグループの少なくとも1つのエンティティは、画像シーケンストラックである請求項1に記載の方法。
【請求項11】
前記画像シーケンストラックはサンプルを含み、前記画像シーケンストラックは、SampleToGroupBoxによって記述され、前記SampleToGroupBoxは、ブラケット撮影で得られた画像のサンプルをグループ化する、請求項10に記載の方法。
【請求項12】
前記タイミング情報は、前記第1のグループまたは前記第2のグループのエンティティの作成時刻、または前記第1のグループまたは前記第2のグループの作成時刻を含む、請求項8に記載の方法。
【請求項13】
前記タイミング情報は、前記第1のグループまたは前記第2のグループのエンティティの最終修正時刻、または前記第1のグループまたは前記第2のグループの最終修正時刻を含む、請求項8に記載の方法。
【請求項14】
メディアデータがカプセル化されたファイルを処理する方法であって、
パノラマ画像を生成するための複数の画像を識別するエンティティの第1のグループを記述するEntityToGroupBoxと、前記メディアデータと、を含む前記ファイルを処理し、
前記第1のグループの各エンティティは、前記メディアデータの少なくとも一部に関連しており、
前記第1のグループのエンティティを記述するEntityToGroupBoxは、前記複数の画像の少なくとも一部を識別するエンティティの第2のグループを記述するグループ化データ構造を有する、方法。
【請求項15】
メディアデータをカプセル化したファイルを生成するためのデバイスであって、デバイスは、
パノラマ画像を生成するための複数の画像を識別するエンティティの第1のグループを記述するEntityToGroupBoxを生成し、
前記EntityToGroupBoxと前記メディアデータを前記ファイルに埋め込む
ように構成されたプロセッサを含み、
前記第1のグループの各エンティティは、前記メディアデータの少なくとも一部に関連し、
前記第1のグループのエンティティは、前記複数の画像の少なくとも一部を識別するエンティティの第2のグループを記述するグループ化データ構造を有する、デバイス。
【請求項16】
メディアデータがカプセル化されたファイルを処理するためのデバイスであって、
パノラマ画像を生成するための複数の画像を識別するエンティティの第1のグループを記述するEntityToGroupBoxと、前記メディアデータとを含む前記ファイルを処理するように構成されたプロセッサを含み、
前記第1のグループの各エンティティは、前記メディアデータの少なくとも一部に関連し、
前記第1のグループのエンティティは、前記複数の画像の少なくとも一部を識別するエンティティの第2のグループを記述するグループ化データ構造を有する、デバイス。
【請求項17】
請求項1~13のいずれか1項に記載の方法をコンピュータに実行させるためのコンピュータプログラムを格納したコンピュータ可読記憶媒体。
【請求項18】
請求項14に記載の方法をコンピュータに実行させるためのコンピュータプログラムを格納したコンピュータ可読記憶媒体。
【請求項19】
請求項1~13のいずれか1項に記載の方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項20】
請求項14に記載の方法をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ファイル内に複数の画像をカプセル化するための方法およびデバイスに関する。
【背景技術】
【0002】
現代のカメラは、画像を撮影するためのさまざまな撮影モードを提供している。これらの撮影モードのいくつかでは、一連の画像が撮影される。例えば、それらはいくつかの画像が撮影されるブラケティングモードを提供し、撮影の1つのパラメータの値は撮影画像毎に変化する。パラメータは例えば、露光時間、ホワイト値、またはフォーカスであってもよい。別の撮影モードは、シーンの大きなビューを再構成するために一連の重なり合う画像を得ることを可能にするパノラマモードとすることができる。現代のカメラでは、これらのさまざまな撮影モードを組み合わせることができ、たとえば、パノラマを構築するための撮影ビューごとに、ブラケティングモードに従って一連の画像を撮影することができる。たとえば、パノラマを構成する各ビューの画像を自動露出ブラケット撮影することで、ハイダイナミックレンジ(HDR)パノラマを作成することができる。もう1つの例は、パノラマを構成する各ビューの画像のフォーカスブラケット撮影によって、フォーカススタックパノラマを作成することである。
【0003】
カメラで撮影された画像は、例えばメモリカード等の記憶デバイスに記憶される。画像は、典型的には記憶デバイス上のデータのサイズを縮小するために符号化される。JPEGや、より最近のHEVC規格のように、多くの符号化規格が使用されてもよい。
【0004】
HEVC規格は、静止画像の符号化のためのプロファイルを定義し、単一の静止画像または静止画像のシーケンスを圧縮するための特定のツールを記述する。このような種類の画像データに使用されるISOベースメディアファイルフォーマット(ISOBMFF)の拡張が、ISO/IEC23008規格のパート12に「HEIFまたは高効率画像ファイルフォーマット」という名称で含めるために提案されている。
【0005】
HEIF(High Efficiency Image File Format)は1つ以上の画像と画像シーケンスの記憶と共有のために、Moving Picture Experts Group(MPEG)によって開発された規格である。
【0006】
MIAF(Multi-Image Application Format)はMPEGによってISO/IEC23000規格パート22に開発された規格であり、High Efficiency Image File(HEIF)フォーマットに埋め込まれた画像の作成、読み取り、構文解析、および復号のための正確な相互運用性ポイントに対するHEIF仕様の制約のセットを定義する。
【0007】
HEIFおよびMIAFファイルフォーマットは、パノラマを記憶する効率的な方法を提供しない。
【0008】
HEIFおよびMIAFファイルフォーマットは、画像または画像のグループ(パノラマを含む)の人間が読めるテキストの説明を保存する効率的な方法を提供しない。
【0009】
HEIFおよびMIAFファイルフォーマットは、画像および画像グループ(パノラマを含む)のタイミング情報を記憶する効率的な方法を提供しない。
【発明の概要】
【0010】
本発明は、前述の問題のうちの1つまたは複数に対処するように考案された。それは、派生画像(a derived image)としてのパノラマの記述に関する。
【0011】
本発明の一態様によれば、ファイル内にメディアデータをカプセル化する方法が提案され、方法は、
リファレンス画像のセットを符号化することと、
リファレンス画像のセットを記述するための画像アイテムのセットを生成することと、
リファレンス画像のセットに基づいて、パノラマに対応する派生画像を記述する画像アイテムを生成することと、
派生画像を記述する画像アイテムを画像アイテムのセットに関連付ける関連付け情報を生成することと、
パノラマのパラメータを含むパラメータデータ構造を生成することと、パラメータデータ構造は、派生画像を記述する画像アイテムと関連付けられており、
関連付け情報と派生画像を記述する画像アイテムのセットをファイルに埋め込むことと
を含む。
【0012】
一実施形態によれば、方法はさらに、
パノラマのパラメータを含むパラメータデータ構造を生成することと、パラメータデータ構造は、派生画像を記述する画像アイテムに関連付けられており、
ファイルにパラメータデータ構造を埋め込むことと
を含む。
【0013】
一実施形態によれば、
派生画像を記述する画像アイテムは派生画像アイテムであり、
派生画像アイテムは、派生画像アイテムがパノラマであることを示す専用アイテムタイプを有し、
パラメータデータ構造は、ファイルのメディア部分に格納される。
【0014】
一実施形態によれば、
方法はさらに、パノラマに対応する派生画像を符号化することを含み、符号化された派生画像は、ファイルのメディア部分に格納され、
派生画像を記述する画像アイテムは、予め導出された符号化画像アイテムであり、
パラメータデータ構造は、予め導出された符号化画像アイテムに関連するアイテムプロパティとして格納される。
【0015】
一実施形態によれば、パラメータデータ構造は、パノラマ方向を含む。
【0016】
一実施形態によれば、パラメータデータ構造は、いくつかの行および列をさらに含む。
【0017】
一実施形態によれば、パラメータデータ構造は、パノラマに対応する派生画像のサイズを含む。
【0018】
一実施形態によれば、パラメータデータ構造は、派生のタイプのタイプ指示を含む。
【0019】
一実施形態によれば、画像アイテムのセット内の画像アイテムの少なくともいくつかは、画像アイテムのグループを構成する。
【0020】
一実施形態によれば、画像アイテムの少なくともいくつかは、少なくとも1つの人が可読のラベルを含むアイテムプロパティに関連付けられる。
【0021】
一実施形態によれば、画像アイテムのうちの少なくともいくつかは、タイミング情報を含むアイテムプロパティに関連付けられる。
【0022】
本発明の別の態様によれば、ファイル内のメディアデータを読み取る方法が提案され、方法は、
リファレンス画像のセットに基づいて、パノラマに対応する派生画像を記述する画像アイテムを読み取ることと、
派生画像を記述する画像アイテムを画像アイテムのセットに関連付ける関連付け情報を読み取ることと、
リファレンス画像のセットを記述する画像アイテムのセットを読み取ることと、
パノラマに対応する派生画像を取得することと
を含む。
【0023】
一実施形態によれば、方法はさらに、
パノラマのパラメータを含むパラメータデータ構造を読み取ること、パラメータデータ構造は派生画像を記述する画像アイテムに関連付けられている、を含む。
【0024】
一実施形態によれば、
派生画像を記述する画像アイテムは、派生画像アイテムであり、
派生画像アイテムは、派生画像アイテムがパノラマであることを示す専用アイテムタイプを有し、
パラメータデータ構造は、ファイルのメディア部分に格納される。
【0025】
一実施形態によれば、
方法は、パノラマに対応する派生画像を復号することをさらに含み、符号化された派生画像は、ファイルのメディア部分に格納され、
派生画像を記述する画像アイテムは、予め導出された符号化画像アイテムであり、
パラメータデータ構造は、予め導出された符号化画像アイテムに関連するアイテムプロパティとして格納される。
【0026】
一実施形態によれば、パラメータデータ構造は、パノラマ方向を含む。
【0027】
一実施形態によれば、パラメータデータ構造は、いくつかの行および列をさらに含む。
【0028】
一実施形態によれば、パラメータデータ構造は、パノラマに対応する派生画像のサイズを含む。
【0029】
一実施形態によれば、パラメータデータ構造は、派生のタイプのタイプ指示を含む。
【0030】
一実施形態によれば、画像アイテムのセット内の画像アイテムの少なくともいくつかは、画像アイテムのグループを構成する。
【0031】
本発明の別の態様によれば、ファイル内にメディアデータをカプセル化するためのデバイスが提案され、デバイスは、
リファレンス画像のセットを符号化し、
リファレンス画像のセットを記述するための画像アイテムのセットを生成し、
リファレンス画像のセットに基づいて、パノラマに対応する派生画像を記述する画像アイテムを生成し、
派生画像を記述する画像アイテムを画像アイテムのセットに関連付ける関連付け情報を生成し、
派生画像を記述する画像アイテムのセット、および関連付け情報をファイルに埋め込む
ように構成された回路を含む。
【0032】
本発明の別の態様によれば、ファイル内のメディアデータを読み取るためのデバイスが提案され、デバイスは、
リファレンス画像のセットに基づいて、パノラマに対応する派生画像を記述する画像アイテムを読み取り、
派生画像を記述する画像アイテムを画像アイテムのセットに関連付ける関連付け情報を読み取り、
リファレンス画像のセットを記述する画像アイテムのセットを読み取り、
パノラマに対応する派生画像を取得する
ように構成された回路を含む。
【0033】
本発明の別の態様によれば、プログラマブル装置のためのコンピュータプログラム製品が提案され、コンピュータプログラム製品は、プログラマブル装置にロードされてプログラマブル装置によって実行されるときに本発明による方法を実施するための一連の命令を含む。
【0034】
本発明の別の態様によれば、本発明による方法を実施するためのコンピュータプログラムの命令を記憶するコンピュータ可読記憶媒体が提案される。
【0035】
本発明の別の態様によれば、実行時に本発明の方法を実行させるコンピュータプログラムが提案される。
【0036】
本発明による方法の少なくとも一部は、コンピュータで実施することができる。したがって、本発明は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または本明細書ではすべて一般に「回路」、「モジュール」または「システム」と呼ばれることがあるソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態をとることができる。さらに、本発明は、媒体に具現化されたコンピュータ使用可能プログラムコードを有する任意の有形の表現媒体に具現化されたコンピュータプログラム製品の形成をとることができる。
【0037】
本発明はソフトウェアで実施することができるので、本発明は、任意の適切なキャリア媒体上のプログラマブル装置に提供するためのコンピュータ可読コードとして実施することができる。有形の非一時的キャリア媒体は、フロッピーディスク、CD-ROM、ハードディスクドライブ、磁気テープ装置またはソリッドステートメモリ装置などの記憶媒体を含むことができる。トランジットキャリア媒体は、電気信号、電子信号、光信号、音響信号、磁気信号、または電磁信号、例えばマイクロ波またはRF信号などの信号を含むことができる。
【図面の簡単な説明】
【0038】
ここで、本発明の実施形態を、単なる例として、以下の図面を参照して説明する。
図1図1は、いくつかの画像または画像のシーケンスを含むHEIFファイルの例を示す。
図2図2は、本発明の一実施形態による、派生画像アイテムにおけるパノラマの記憶を示す。
図3図3は、本発明の別の実施形態による、予め導出された符号化画像アイテムにおけるパノラマの記憶を示す。
図4図4は、本発明の別の実施形態によるエンティティグループにおけるパノラマの記憶を示す。
図5図5は、本発明のいくつかの実施形態による、HEIFフォーマットを使用して、1つのファイルに、パノラマを形成する1つまたは複数の画像をカプセル化する処理の主なステップを示す。
図6図6は、本発明の1つまたは複数の実施形態を実施するためのコンピューティングデバイスの概略ブロック図である。
【発明を実施するための形態】
【0039】
HEVC規格は、静止画像の符号化のためのプロファイルを定義し、単一の静止画像または静止画像のシーケンスを圧縮するための特定のツールを記述する。このような種類の画像データに使用されるISOベースメディアファイルフォーマット(ISOBMFF)の拡張が、ISO/IEC23008規格のパート12に「HEIFまたは高効率画像ファイルフォーマット」という名称で含めるために提案されている。
【0040】
HEIFおよびMIAF規格は、異なるユースケースに対応する2つの形態の記憶をカバーする。
【0041】
各画像が、デコーダで任意選択的に使用されるタイミング情報を有するサンプルによって表され、画像が他の画像に依存し得る、画像シーケンスの記憶
単一の画像の記憶、および独立して符号化された画像の集合
第1のケースでは、カプセル化がISOベースメディアファイルフォーマット(文書「情報技術-オーディオビジュアルオブジェクトの符号化-パート12:ISOベースメディアファイルフォーマット」、ISO/IEC14496-12:2015、第5版、2015年12月を参照)におけるビデオトラックのカプセル化に近く、ファイルレベルの「moov」ボックス、「trak」ボックス(「moov」ボックスにカプセル化されている)、およびサンプルのグループおよびサンプルの説明のためのサンプルグループ化などの類似のツールおよび概念が使用される。サンプルは単一の時間(例えば、ビデオ内のフレーム又は画像シーケンス内の画像)に関連付けられた全ての時限データを示す。
【0042】
ボックスはコンテナとも呼ばれ、ファイル内のデータを記述するために提供されるメタデータ構造である。ボックスは、オブジェクト指向のビルディングブロックで、固有のタイプ識別子(通常は4文字のコード、FourCCまたは4CCと記されている)と長さによって定義される。ファイル内のすべてのデータ(メディアデータを記述するメタデータと、メディアデータ)は、ボックスに含まれている。ファイル内に他のデータがない。ファイルレベルのボックスは、他のボックスに含まれていないボックスである。
【0043】
「moov」ボックスは、「trak」サブボックスを含むファイルフォーマットボックスであり、各「trak」ボックスはトラック、すなわち、関連サンプルの時限シーケンスを記述する。
【0044】
第2のケースでは、ISOBMFFボックスのセット、ファイルレベルの「meta」ボックス、およびそのサブボックスが使用される。これらのボックスおよびそれらの階層は、「トラック関連」ボックス(「trak」ボックス階層)よりも少ない記述ツールを提供し、関連サンプルの代わりに「情報アイテム」または「アイテム」に関連する。「ボックス」という表現と「コンテナ」という表現は、ファイル内の画像データの編成または/およびプロパティを記述するメタデータを含むメタデータ構造を参照するために、両方とも同じ意味で使用される可能性があることに留意されたい。同じ表現「box」と表現「コンテナ」は、ファイル中の画像データを含むメタデータ構造(例えば「mdat」や「idat」ボックス)を参照するために、両方とも同じ意味で使用されることもある。
【0045】
図1は、1つ以上の静止画像および可能であればビデオまたは一連の画像のようなメディアデータを含むHEIFファイル101の例を示す。このファイルには、最初の「ftyp」ボックス(FileTypeBox)111が含まれており、このボックスにはファイルのタイプの識別子(通常は4つの文字コードのセット)が含まれている。このファイルには、「meta」(MetaBox)102と呼ばれる第2のボックスが含まれており、このボックスが1つ以上の静止画像を記述するメタデータ構造を含む一般的な時間制限の無いメタデータを格納するために使用される。この「meta」ボックス102は、いくつかの単一画像を記述する「iinf」ボックス(ItemInfoBox)121を含む。各単一画像は、アイテム1211および1212とも示されるメタデータ構造ItemInfoEntryによって記述される。各アイテムは、一意の32ビット識別子item_IDを有する。これらのアイテムに対応するメディアデータは、メディアデータ用のコンテナである「mdat」ボックス104に格納される。「iloc」ボックス(ItemLocationBox)122は、各アイテムに対して、「mdat」ボックス104内のその関連するメディアデータの長さおよびオフセットを提供する。「iref」ボックス(ItemReferenceBox)123は、あるアイテムと他のアイテムとの型付きリファレンスによるリンクを記述するためにも定義されることがある。
【0046】
任意選択で、画像シーケンスまたはビデオの記憶を記述するために、HEIFファイル101は、いくつかの画像シーケンスまたはビデオトラック131および132を記述する「moov」(MovieBox)103と呼ばれる第3のボックスを含むことができる。典型的には、トラック131が時間情報が必ずしも意味がない画像のセットを記述するように設計された画像シーケンス(「pict」)トラックであり、132はビデオコンテンツを記述するように設計されたビデオ(「vide」)トラックである。これらの両方のトラックは、一連の画像サンプルを記述し、画像サンプルは例えばビデオシーケンスのフレームのように、同時に撮影されたピクセルのセットである。2つのトラック間の主な違いは、「pict」トラックではタイミング情報は必ずしも意味がないが、「vide」トラックではタイミング情報がサンプルの表示のタイミングを制約するように意図されていることである。これらのサンプルに対応するデータは、メディアデータのためのコンテナ、「mdat」ボックス104に格納される。
【0047】
「mdat」コンテナ104は、データ部分141および142によって表されるアイテムに対応する時間制限の無い符号化画像と、データ部分143によって表されるサンプルに対応する時限の符号化画像とを格納する。
【0048】
HEIFファイル101は、複数の画像を格納するための異なる代替手段を提供する。例えば、複数の画像をアイテムとして、または「pict」トラックまたは「vide」トラックとすることができるサンプルのトラックとして格納することができる。実際の選択は、典型的には、画像のタイプおよび意図されるファイルの使用法に従ってファイルを生成するアプリケーションまたはデバイスによって行われる。
【0049】
HEIF規格は、画像に関連するプロパティを指定するために設計されたいくつかのメカニズム、特に、画像、より一般的にアイテム(あらゆる種類のメディアタイプ)のプロパティを宣言または格納するためのいくつかのメタデータ構造も提供する。通常、「meta」ボックス102は、任意のアイテムと、順序付けられたアイテムプロパティのセットとの関連付けを可能にする「iprp」ボックス(ItemPropertiesBox)125を含むことができる。この「iprp」ボックス125は、HEIFファイルに記述された全てのアイテムのプロパティを記述する全てのプロパティデータ構造(ItemPropertyおよびItemFullProperty)1253を含むプロパティコンテナデータ構造である「ipco」ボックス(ItemPropertyContainerBox)1251を含む。「iprp」ボックスは、「ipma」ボックス(ItemPropertyAssociationBox)1252のセットも含み、これは、1つ以上のアイテムプロパティを所与のアイテムに実際に関連付ける関連付けデータ構造である。そのとき、同じプロパティをいくつかのアイテムに関連付けることが可能である。
【0050】
さらに、ISOベースメディアファイルフォーマットは、アイテム及び/又はトラックのグループ化のために適合されるグループ化メカニズムを規定する。「meta」ボックス102は、以下のように定義されるEntityToGroupBox(エンティティグループとも表記される)と呼ばれるグループ化データ構造からすべて継承するエンティティ1241および1242のグループを記述するメタデータ構造のセットを含むことができるコンテナボックス「gprl」(GroupsListBox)124を含むことができる。
aligned(8) Class EntityToGroupBox(grouping_type、version、flags)
extends FullBox(grouping_type、version、flags){
unsigned int(32) group_id;
unsigned int(32) num_entities_in_group;
for (i=0; i<num_entities_in_group; i++)
unsigned int(32) entity_id;
// 残りのデータは特定のgrouping_typeに対して指定できる

ここで、group_idはエンティティのグループの一意の識別子であり、この場合はファイル内で一意であると理解する必要がある。これは、任意のEntityToGroupBoxのgroup_id値、GroupsListBoxまたは任意のtrack_ID値を含む階層レベル(ファイル、ムービー、またはトラック)のitem_ID値(GroupsListBoxがファイルレベルに含まれている場合)と等しくないものとする。次に、entity_idのリストは、グループに関連するすべてのエンティティの識別子を与える。
【0051】
このメカニズムでは、「エンティティ」という表現は、アイテム(画像やメタデータアイテムなどの任意の種類のアイテム)またはトラック(例えば、ビデオトラック「vide」、画像トラック「pict」、オーディオトラック、その他の種類のトラックのシーケンス)を指すために使用され、grouping_typeは、グループ化の種類を指定するために使用される。HEIFは実際には、限られた数のgrouping_type値を定義する。
【0052】
ISOベースメディアファイルフォーマットは、トラック内のサンプルのグループ化に適したグループ化メカニズムも指定する。
【0053】
このメカニズムは、2つの専用ボックスに依存する。SampleToGroupBoxという名前の第1のボックスでは、1つ以上のサンプルを1つ以上のグループ記述に関連付けることができる。SampleGroupDescriptionBoxという名前の第2のボックスは、サンプルのグループのプロパティの代替的な記述を提供する1つまたは複数のサンプルグループ記述エントリを有する。これらの2つのボックスが同じgrouping_typeで宣言される場合、それらは、それぞれ、共通grouping_typeによって識別されるサンプルの所与のタイプのグループについて、サンプルとグループ記述エントリのうちの1つとの関連付け、および代替のグループ記述エントリのリストを提供する。
【0054】
本発明は、パノラマを形成するために撮影または編集されたアイテムのグループを記述するための手段を提供するメカニズムを提供する。これは、使用された撮影または収集モードを記述するための手段を提供する。いくつかの実施形態によれば、撮影に関するいくつかの追加情報またはプロパティを、エンティティまたはエンティティのグループに関連して記述することができる。
【0055】
この規格は、派生画像の概念を提供する。派生画像は、1つまたは複数のリファレンス画像に基づく導出(a derivation)から生じる画像である。規格には、2つの異なるタイプの派生画像がある。第1のものは派生画像アイテムであり、画像アイテムはリファレンス画像のセットにリンクされる。派生画像アイテムは、ファイルのメディア部分の中の画像データを有さない。画像データの代わりに、メディアデータ部分は、導出プロセスで使用される幾つかのパラメータを含むことができる。第2のタイプの派生画像は、予め導出された符号化画像アイテムである。予め導出された符号化画像アイテムは、リファレンス画像のセットにもリンクされる。予め導出された符号化画像アイテムと派生画像アイテムとの間の差は主に、予め導出された符号化画像アイテムが、ファイルのメディア部分における導出から得られる画像データを含むことである。派生画像へのアクセスを必要とするプレイヤは、派生画像アイテムの場合、リファレンス画像に基づいて導出を実行する必要があり、派生画像は、予め導出された符号化画像アイテムにおいて直接アクセス可能である。この規格は、現在、派生画像が画像のグリッドおよび重畳画像を格納することを意図している。本明細書では、パノラマ画像を派生画像として記述することが、提案される解決策である。第1の実施形態は、派生画像アイテムに基づいており、第2の実施形態は、予め導出された符号化画像アイテムに基づいている。提案された解決策によれば、パノラマは、ファイル内のアイテムによって表される。アイテムを使用してパノラマを記述する利点の1つは、パノラマをHEIFファイルの主アイテムとして指定できること(PrimaryItemBox「pitm」経由)、すなわちパノラマをHEIFリーダでレンダリングすることを目的とするデフォルトアイテムとして指定できることである。
【0056】
第3の実施形態は、リファレンス画像のグループとしてパノラマ画像を説明する。
【0057】
第1の実施形態によれば、パノラマは、派生画像アイテムとして記述される。アイテムは、それが、導出への入力である1つまたは複数の他の画像アイテムへの「dimg」アイテム参照を含むとき、派生画像アイテムである。派生画像は、それ自体に符号化画像ビットストリームを表すメディアデータを含まないが、派生画像アイテムを表す再構成画像は、1つまたは複数の入力画像(符号化画像または他の派生画像)に対して操作を実行することによって取得される。再構成画像を得るために実行される正確な操作は、項目のitem_typeによって識別される。
【0058】
この実施形態によれば、item_type値が「pano」のアイテムは、より高い解像度のパノラマを得るために、与えられた順序で1つ以上の入力画像を重ね合わせてステッチすることによって、派生画像アイテムを定義する。入力画像は、ItemReferenceBox内のこの派生画像アイテムのためのタイプ「dimg」のSingleItemTypeReferenceBox内にスキャン順序にリストされる。
【0059】
グリッド派生画像アイテム(item_type=「grid」)とは対照的に、パノラマ派生画像アイテムは、入力画像がオーバーラップすることなく一貫したサイズを有することを義務付けない。また、オーバーレイ派生画像(item_type=「iovl」)とは対照的に、パノラマ派生画像アイテムは、導出動作が入力画像をスティッチングし、パノラマにおける位置合わせおよび変形を補正するための追加の処理ステップを暗示することを示す。さらに、入力画像のスキャン順序は、ユーザによって実行される撮影順序と一致し、したがって、HEIFファイルにそれらをカプセル化する前に画像を順序変更することを回避する。
【0060】
パノラマ方向としてパノラマに関連付けられているパラメータは、必要に応じて、派生画像アイテムに関連付けられているファイルのメディアデータ部分に格納することができる。パノラマ派生画像アイテム(またはアイテムのボディ)に関連付けられているこれらのメディアデータは、パラメータデータ構造の中で次のように記述されることがある。
aligned(8) Class ImagePanorama {
unsigned int(8) version = 0;
unsigned int(8)flags = 0;
unsigned int(8) panorama_direction;
if (panorama_direction >= 4 && panorama_direction <= 5){// grid
unsigned int(8) rows_minus_one;
unsigned int(8) columns_minus_one;


ここで、
versionおよびflagsは、0に等しいものとする。両方の属性は、パノラマ派生画像アイテムのさらなる拡張をサポートするために定義される。Versionパラメータは、新しい構文属性をVersionパラメータの値に条件付きで定義するために使用でき、flagsパラメータは、オプション機能またはパラメータをこのflagsパラメータの値に条件付きで通知/アクティブ化するflagsのマップを定義できる場合がある。
【0061】
panorama_directionは、例えば8ビットの符号なし整数で、使用されるパノラマのタイプとパノラマ内の入力画像のスキャン順序を通知する。
0:左から右への水平パノラマ
1:右から左への水平パノラマ
2:下から上への垂直パノラマ
3:上から下への垂直パノラマ
4:ラスタスキャン順序におけるグリッドパノラマ、すなわち、行および列は、左上隅から始まり、左から右へおよび上から下へと編成される。
5:連続的な順序におけるグリッドパノラマ、すなわち、左上隅から始まり、第1の行は左から右に編成され、次に、第2の行は右から左に編成され、第3の行は左から右に編成され、以下同様である。
【0062】
その他の値は不定である。
【0063】
rows_minus_oneは、グリッド内の行数から1を引いた数を指定する符号なし整数である。
【0064】
columns_minus_oneは、グリッド内の列数から1を引いた数を指定する符号なし整数である。実施形態では、このパラメータは存在せず、列の数は、入力画像の総数と行の数から計算される。
【0065】
メディアファイルにパラメータデータ構造が存在しない場合は、水平の左から右へのパノラマと見なされる。
【0066】
代替案では、異なる隅(例えば、上右、下左、または下右隅)から開始するラスタスキャンまたは連続スキャン順序でグリッドパノラマをサポートするように、panorama_directionの追加値を定義することができる。例えば、右下隅から開始して、ラスタスキャン順序は右から左へ、および下から上への各行について編成され、連続スキャン順序は右から左への最後の行から開始し、次いで、上の行の左から右へと開始し、以下同様である。
【0067】
変形例では、パノラマ派生画像アイテムに関連付けられているメディアデータが、以下のように定義されてもよい。
aligned(8) Class ImagePanorama {
unsigned int(8) version = 0;
unsigned int(8) flags;
FieldLength = ((flags & 1)+ 1)* 16;
unsigned int(FieldLength) output_width;
unsigned int(FieldLength) output_height;
unsigned int(8) panorama_direction;
if (panorama_direction >= 4 && panorama_direction <= 5) { // grid
unsigned int(8) rows_minus_one;
unsigned int(8) columns_minus_one;

ここで、
再構成されたパノラマ画像のサイズをシグナリングするために、2つの追加のパラメータおよびフラグが定義される。
【0068】
(flags & 1)が0に等しいことは、フィールドの長さoutput_width、output_heightが16ビットであることを指定する。(flags & 1)が1に等しいことは、フィールドの長さoutput_width、output_heightが32ビットであることを指定する。1より大きいflagsの値は予約(reserved)されている。
【0069】
output_width、output_heightは、再構成されたパノラマ画像の幅と高さをそれぞれ指定する。
【0070】
代わりに、ImageSpatialExtentsProperty(4CCが「ispe」)とパノラマ派生画像アイテム(ItemPropertyAssociationBox(「ipma」)を介して)を関連付けることによって、再構築されたパノラマ画像の幅と高さがシグナリング可能である。
【0071】
一実施形態によれば、パノラマのための画像の撮影は別のブラケティングモード、例えば、ハイダイナミックレンジ(HDR)パノラマを生成するための自動露出ブラケティング、またはフォーカスステークドパノラマを生成するためのフォーカスブラケティング、または任意の他のタイプのブラケティングモードと組み合わされる。したがって、パノラマ派生画像アイテムは、導出への入力であるエンティティの1つ以上のグループへの「dimg」アイテム参照を含むことがある(例えば、自動露出ブラケティングのためのグループ化タイプ「aebr」を有するEntityToGroupBox、又は、ISO/IEC23008-12、w18430、2019年4月の修正案の草案の中で定義されるエンティティのグループとしてのフォーカスブラケティングなどのためのグループ化タイプ「fobr」)。
【0072】
1つ以上のグループへの「dimg」アイテム参照を含めるために、既存のSingleItemTypeReferenceBoxの定義を拡張して、既存の属性To_item_IDがエンティティのグループのgroup_idも参照できるようにすることができる。属性to_item_IDの名前をto_item_or_group_IDに変更し、次のように定義することができる。
aligned(8) class SingleItemTypeReferenceBox(referenceType) extends Box(referenceType) {
unsigned int(16) from_item_ID;
unsigned int(16) reference_count;
for (j=0; j<reference_count; j++) {
unsigned int(16) to_item_or_group_ID;


ここで、
reference_typeは、参照のタイプの指摘を含む
from_item_IDは、他のアイテムを参照するアイテムのitem_IDを含む
reference_countは参照数である
to_item_or group_IDは、アイテムのitem_IDまたは参照されるエンティティグループのgroup_idを含む。
【0073】
パノラマを構成する各ビューについて、ブラケティングモードを識別するグループ化タイプを有するEntityToGroupBoxが、このビューに対応する画像のブラケティングセットを記述するように定義される。さらに、ブラケッティングモードに対応するアイテムプロパティ(例えば、AutoExposurePropertyまたはFocusPropertyなど)を各画像アイテムに関連付けて、この画像アイテムのブラケッティングのプロパティ(例えば、画像アイテムの露出値ストップ)を指定することができる。
【0074】
図2は、この第1の実施形態の一例を示す。
【0075】
パノラマは、派生画像アイテム201によって表される。派生画像アイテムをパノラマ、例えば「パノラ」として識別するために、新しいアイテムタイプが提案される。
【0076】
「iref」ボックスでは、参照タイプ「dimg」202の構造SingleItemTypeReferenceBoxが、リファレンス画像204および205のリストと、画像のグループ、例えばブラケティングセット208への参照と、を含む。画像のグループ自体は、グループを構成する画像アイテム206及び207のリファレンスを含む。「dimg」ボックスはアイテムのみ、エンティティのグループのみ、またはアイテムとエンティティのグループとの混合を参照することができることに留意されたい。
【0077】
パノラマを表す派生画像アイテム201は、「iloc」ボックス209を介して、メディアデータ内のオプションの構造210にリンクすることができる。メディアデータ内のこの構造210は、一般的な派生画像アイテムプロパティによる画像データを含まない。パノラマの導出に関するいくつかのパラメータを含み、通常は、上記のようにimagePanoramaボックスである。
【0078】
第1の実施形態の1つの特徴は、派生画像アイテムが入力画像アイテムのセットに適用されるべき(ここではパノラマを構築するための)導出操作を記述するが、結果として得られる再構成画像は実際にはHEIFファイルに格納されず、HEIFリーダがHEIFファイルを処理するたびに再構成されることである。
【0079】
第2の実施形態によれば、パノラマは、予め導出された符号化画像アイテムとして記述される。アイテムは、HEIFファイルに実際に格納されている符号化画像ビットストリームを指定し、それが派生する1つ以上の他の画像アイテムへの「ベース」アイテム参照も含む場合、予め導出された符号化画像アイテムである。現在のHEIF規格では、予め導出された符号化画像アイテムを生成するために使用される正確な導出プロセスを記述することができない。したがって、例えば、パノラマを表す予め導出された符号化画像アイテムを、HDR画像を表す予め導出された符号化画像アイテムと区別することは不可能である。
【0080】
提案された実施形態によれば、オプションのアイテムプロパティDerivationOperationPropertyは、入力画像アイテムに適用される導出操作を記述するために、以下のように定義され、予め導出されたアイテムに関連付けられてもよい。提案されたアイテムプロパティは、パノラマだけでなく、あらゆる種類の予め導出された符号化画像アイテムの導出操作を定義するために使用され得ることに留意されたい。
【0081】
ボックスタイプ:「dopr」
プロパティタイプ:記述アイテムプロパティ
コンテナ:ItemPropertyContainerBox
必須(アイテムごと):番号
数量(アイテムごと):予め導出された符号化画像の場合はゼロまたは1
DerivationOperationPropertyは、入力画像アイテムまたは画像アイテムのグループに適用された導出操作を文書化して、予め導出された符号化画像アイテムを生成する。入力画像アイテムまたは画像アイテムのグループは、予め導出された符号化画像アイテムからタイプ「base」のアイテム参照によって参照される順序で順序付けされる。
aligned(8) class DerivationOperationProperty
extends ItemFullProperty(’dopr’、version=0、flags=0) {
unsigned int(32) derivation_operation_4cc;
if (derivation_operation_4cc == ’pano’) {
unsigned int(8) panorama_direction;
if (panorama_direction >= 4
&& panorama_direction <= 5){ // グリッド
unsigned int(8) rows_minus_one;
unsigned int(8) columns_minus_one;


// 以下のパラメータを条件付きでさらに含むことができる
// 他のタイプの導出操作の場合
}
ここで、
derivation_operation_4CCは、派生演算の4文字コード(4CC)である。例えば、次の導出操作のリストを指定することができる。
【0082】
【表1】
【0083】
導出操作がパノラマ導出である場合、パノラマのタイプを特徴付けるために追加のパラメータが提供される。
【0084】
パラメータpanorama_direction、rows_minus_oneおよびcolumns_minus_oneは、上記の第1の実施形態で規定されているように定義される。
【0085】
DerivationOperationPropertyは、追加の導出操作4文字コードおよびパラメータをサポートするために簡単に拡張できる。
【0086】
この実施形態によれば、パノラマのための画像の撮影が他のブラケティングモード、例えば、ハイダイナミックレンジ(HDR)パノラマを作成するための自動露出ブラケティング、又はフォーカスステークドパノラマを作成するためのフォーカスブラケティング、又は任意の他のタイプのブラケティングモード、と組み合わせる場合、パノラマの予め導出された符号化画像アイテムは、パノラマ導出への入力として使用された1つ又は複数のエンティティのグループ(例えば、自動露出ブラケティングのためのグループ化タイプ「aebr」を有するEntityToGroupBox、又はISO/IEC23008-12、w18430、2019年4月の修正案の草案の中で定義されるエンティティのグループとしてのフォーカスブラケティングなどのためのグループ化タイプ’fobr’)への「ベース」アイテム参照を含んでもよい。上記の第1の実施形態と同様に、SingleGroupTypeReferenceBoxは、アイテムがエンティティのグループを参照できるように拡張することができる。パノラマを構成する各ビューについて、ブラケティングモードを識別するグループ化タイプを有するEntityToGroupBoxが、このビューに対応する画像のブラケティングセットを記述するように定義される。EntityToGroupBoxのgrouping_typeは、グループ化の目的を指定し、パノラマの予め導出された符号化画像を生成するための入力として使用された中間再構成画像を取得するために、このグループからの画像アイテムに適用された導出操作のタイプを暗黙的にシグナリングする。さらに、ブラケッティングモードに対応するアイテムプロパティ(例えば、AutoExposurePropertyまたはFocusPropertyなど)を、EntityToGroupBoxに関連する各画像アイテムに関連付けて、この画像アイテムのブラケッティングのプロパティ(例えば、画像アイテムの露出値ストップ)を指定することができる。
【0087】
パノラマの予め導出された符号化画像アイテムが、一つ以上のエンティティのグループへの「ベース」アイテム参照を直接含む場合の1つの利点は、それが、エンティティの各グループから導出された予め導出された符号化画像アイテムを宣言し、これが必要でないときに対応する中間再構成画像をHEIFファイルに格納することを回避することである。
【0088】
この実施形態によれば、再構成されたパノラマ画像の幅および高さは、(ItemPropertyAssociationBox(「ipma」)を介して)ImageSpatialExtentsProperty(4CC「ispe」)をパノラマの予め導出された符号化画像アイテムに関連付けることによってシグナリングすることができる。
【0089】
図3は、予め導出された符号化画像アイテムとして記述されるパノラマの例を示す。
【0090】
パノラマは、予め導出された符号化画像の符号化フォーマットを識別するitem_typeを有する予め導出された符号化画像アイテム301によって表される(例えば、HEVC符号化フォーマットの画像に対しては「hvc1」、JPEG符号化フォーマットの画像に対しては「JPEG」)。
【0091】
「iref」ボックスにおいて、参照タイプ「ベース」302の構造SingleItemTypeReferenceBoxは、リファレンス画像304および305のリスト303と、画像のグループ、例えばブラケットセット308への参照と、を含む。画像のグループ自体は、グループを構成する画像アイテム306及び307のリファレンスを含む。「ベース」ボックスはアイテムのみ、エンティティのグループのみ、またはアイテムとエンティティのグループとの混合を参照することができることに留意されたい。
【0092】
パノラマを表す予め導出された符号化画像アイテム301は、「iloc」ボックス309を介して、メディアデータにおける導出の結果に対応する画像データ310にリンクされる。ボックス311は、ボックス「ipma」内の関連付け情報312を介して、予め導出された符号化画像アイテム301にリンクされる導出操作を記述するオプションアイテムプロパティである。ボックス311は、典型的には上述したような「dopr」ボックスである。
【0093】
第3の実施形態によれば、特定のアイテムを定義してパノラマを記述するのではなく、パノラマを構成する画像間の関係のみを文書化することができる。これにより、HEIFファイルにパノラマオブジェクトを単独で作成することはできないが、HEIFリーダがパノラマを作成するために使用できる十分な情報を提供する。
【0094】
この第3の実施形態によれば、新しいgrouping_type「pano」が定義される。
【0095】
EntityToGroupBoxを新しいgrouping_type「pano」に関連付けることで、パノラマエンティティグループ(「pano」)は、パノラマを作成するために撮影された画像のセット(アイテム、アイテムのグループ、またはトラック内のサンプルとして格納されている)を示す。EntityToGroupBoxのentity_idは、アイテム識別子、トラック識別子、または画像のブラケティングセットを表すEntityToGroupBoxの識別子(group_id)に分解される(resolved)ように拡張される。
【0096】
後者は強調されたパノラマ(例えば、HDRパノラマ)を記述するのに有用である。
【0097】
次に、EntityToGroupBoxの構文を次のように定義できる。
【0098】
aligned(8) class EntityToGroupBox(grouping_type、version、flags)
extends FullBox(grouping_type、version、flags) {
unsigned int(32) group_id;
unsigned int(32) num_entities_in_group;
for (i=0; i<num_entities_in_group; i++)
unsigned int(32) entity_or_group_id;
// 残りのデータは特定のgrouping_typeに対して指定できる
}
ここで、
entity_or_group_idがアイテムに対して分解されるのは、entity_or_group_idと等しいitem_IDを持つアイテムがGroupsListBoxを含む階層レベル(ファイル、ムービー、またはトラック)に存在する場合であり、track_IDがentity_or_group_idと等しいトラックが存在し、GroupsListBoxがファイルレベルに含まれる場合にはトラックに対して分解され、またはgroup_idがentity_or_group_idと等しいエンティティグループが同じGroupsListBoxに存在する場合には、エンティティグループに対して分解される。
【0099】
他のパラメータは、以前に定義したものと同じ定義を保持する。
【0100】
代替案では、以下のようにエンティティのグループのグループを記述するために、新しいボックスが定義される。
aligned(8) class GroupToGroupBox(grouping_type、version、flags)
extends FullBox(grouping_type、version、flags) {
unsigned int(32) group_id;
unsigned int(32) num_groups_in_group;
for (i = 0; i < num_groups_in_group; i++)
unsigned int(32) referenced_group_id;
//残りのデータは特定のgrouping_typeに対して指定できる
}
ここで、
group_idは任意の他のGroupToGroupBoxおよびEntityToGroupBoxの任意のgroup_id値、GroupsListBoxを含む階層レベル(ファイル、ムービー、またはトラック)の任意のitem_ID値、または任意のtrack_ID値(GroupsListBoxがファイルレベルに含まれている場合)に等しくない、特定のグループ化に割り当てられた負でない整数である。
【0101】
num_groups_in_groupは、グループのこのグループにマップされるgroup_id値の個数を指定する。
【0102】
referenced_group_idは、entity_or_group_idと等しいgroup_idを持つエンティティグループが同じGroupsListBoxに存在する場合はエンティティグループについて分解され、entity_or_group_idと等しいgroup_idを持つグループのグループが同じGroupsListBoxに存在する場合はグループのグループについて分解される。
【0103】
言い換えれば、メディアデータをファイルにカプセル化する方法が提案され、方法は、
エンティティの第1のグループを記述するグループ化データ構造を生成することと、
ここで、グループ化データ構造は、エンティティの第1のグループとエンティティの第2のグループとの間の関連付け情報を含み、第2のグループの各エンティティは、メディアデータの少なくとも一部に関連付けられ、
ファイルへグループ化データ構造とメディアデータを埋め込むことと
を含む。
【0104】
一実施形態では、方法はさらに、
パノラマを生成するために準拠しているものとしてエンティティのグループを特徴付けるグループ化タイプを取得することと、
ファイルへグループ化タイプを埋め込むことと
を含む。
【0105】
一実施形態では、第2のグループの各エンティティがメディアデータの少なくとも一部に対応する。
【0106】
一実施形態では、第2のグループの各エンティティがアイテム、トラック、またはエンティティの第3のグループのうちの少なくとも1つである。
【0107】
grouping_type「pano」がGroupToGroupBoxに関連付けられている場合、パノラマグループ間(「pano」)は、パノラマを作成するために撮影された画像のセット(アイテムのグループとして格納され、アイテムの各グループはブラケティングセットを表す)を示す。
【0108】
entity_idの定義を拡張するか、新しいボックスGroupToGroupBoxを定義することによって、EntityToGroupBox構造内のエンティティのグループを直接参照する代わりに、ItemReferenceBox(「iref」)をグループ間参照専用の新しいボックスSingleGroupTypeReferenceBoxで拡張して、エンティティグループを他のエンティティグループのリストに関連付けることができる。SingleGroupTypeReferenceBoxは以下のように定義できる。
aligned(8) class
SingleGroupTypeReferenceBox(referenceType)
extends Box(referenceType) {
unsigned int(16) from_group_ID;
unsigned int(16) reference_count;
for (j=0; j<reference_count; j++) {
unsigned int(16) to_group_ID;


ここで、
from_group_IDは、他のエンティティグループを参照するエンティティグループのgroup_idを含む。
【0109】
reference_countは参照数である。
【0110】
to_group_IDは、参照されるエンティティーグループのgroup_idを含む。
【0111】
言い換えれば、メディアデータをファイルにカプセル化する方法が提案され、方法は、
エンティティの第1のグループを記述する第1のグループ化データ構造を取得することと、
エンティティの第2のグループを記述する第2のグループ化データ構造を取得することと、
第1のグループ化データ構造と第2のグループ化データ構造との間の関連付け情報を含む関連付けデータ構造を生成することと、
第1および第2のグループ化データ構造、関連付けデータ構造、およびメディアデータをファイルに埋め込むことと
を含む。
【0112】
一実施形態では、関連付けデータ構造が参照タイプをさらに含む。
【0113】
この代替案によれば、grouping_type「pano」は、EntityToGroupBoxに関連付けられ、次いで、パノラマエンティティグループ(「pano」)は、(アイテムとして格納されている)画像のオプションのリストを示し、オプションでアイテムのグループに関連付けられ、アイテムの各グループは、パノラマを作成するために撮影されたブラケティングセットを表す。パノラマエンティティグループ「pano」は、ItemReferenceBox内の参照タイプ「ベース」のSingleGroupTypeReferenceBoxを介して、ブラケティングセットを表すアイテムのグループに関連付けられる。
【0114】
画像シーケンストラックが「pano」エンティティグループに含まれる(すなわち、画像がサンプルとしてトラックに格納されている)場合、「pano」エンティティグループに存在するentity_idは1つだけである。画像シーケンストラックは、「pano」エンティティグループに含まれ、パノラマを形成するように意図された撮影された画像シーケンスを含むことを示すことができる。「pano」エンティティグループ内に存在する画像シーケンストラックは、他のブラケティングサンプルグループ化を含むことができる(例えば、パノラマ撮影が自動露出ブラケティングと結合されてHDRパノラマを形成する場合、grouping_type「aebr」を有するサンプルグループ化を定義して、同じブラケティングセットに属するサンプルをグループ化して記述することができる)。
【0115】
パノラマエンティティグループ内のエンティティ、またはパノラマエンティティグループによって参照される画像シーケンストラック内のサンプルが、パノラマ順序にリスト化される。エンティティグループまたはグループ間で使用されるパノラマ順序は、エンティティグループまたはグループ間に関連付けられたパノラマアイテムプロパティ「pano」を使用して宣言されるべきである。
【0116】
画像がアイテムとして格納される場合、パノラマEntityToGroupBoxは、パノラマ撮影が1つ以上のブラケティング(例えば、自動露出、フォーカス、またはホワイトバランスブラケティング)と結合される場合、他のブラケティングセットを直接参照することができる。
【0117】
パノラマエンティティグループまたはグループ間に関連付けられているパノラマ記述アイテムプロパティは、パノラマのパラメータ(方向、もしあればブラケティングのタイプ)を提供する。このアイテムプロパティは、エンティティグループ「pano」またはグループ間「pano」にのみ関連付けられている必要がある。
パノラマ記述アイテムプロパティは、次のように定義できる。
aligned(8) class PanoramaProperty
extends ItemFullProperty(’pano’、version=0、flags=0) {
unsigned int(8) panorama_direction;
if (panorama_direction >= 4 && panorama_direction <= 5) {// グリッド
unsigned int(8) rows_minus_one;
unsigned int(8) columns_minus_one;


ここで、
panorama_directionは、例えば8ビットの符号なし整数で、使用されるパノラマのタイプとパノラマ内の入力画像のスキャン順序を通知する。
【0118】
0:左から右への水平パノラマ
1:右から左への水平パノラマ
2:下から上への垂直パノラマ
3:上から下への垂直パノラマ
4:ラスタスキャン順序のグリッドパノラマ、すなわち、行および列は、左上隅から始めて、左から右および上から下へと編成される。
【0119】
5:連続的な順序のグリッドパノラマ、すなわち、左上隅から始めて、第1の行は左から右に編成され、次に、第2の行は右から左に編成され、第3の行は左から右に編成され、以下同様である。
【0120】
その他の値は不定である。
【0121】
rows_minus_oneは、グリッド内の行数から1を引いた数を指定する符号なし整数である。
【0122】
columns_minus_oneは、グリッド内の列数から1を引いた数を指定する符号なし整数である。
【0123】
パノラマ記述アイテムプロパティは、任意選択で、パノラマ撮影と結合された1つまたは複数のブラケティングセットのgrouping_typeの4CCを提供する、追加の属性panorama_bracketing_typeまたはpanorama_bracketing_typeのリストを含むことができる。例えば、このpanorama_bracketing_typeにより、リーダは、パノラマを構成する複数のビューのうちの1つの単一ビューに対応する1つの単一サンプルグループまたはブラケティングセットをどのサンプルが形成するかをトラック内で識別することができる。サンプルの各グループから、グループからの1つのサンプルのみ、またはこのグループからのサンプルのマージ(例えば、これらのサンプルのHDR合成)が完全なパノラマビューを構築するために、他のビューと合成される1つのビューを構築するために使用される。
【0124】
図4は、エンティティグループとして説明されるパノラマの2つの例を示す。
【0125】
第1の例では、第1のパノラマが第1のエンティティグループ401によって表される。第2の例では、第2のパノラマが第2のエンティティグループ402によって表される。
【0126】
両方のエンティティグループは異なるアイテムプロパティPanoramaProperty(「pano」)ボックスを参照する場合もあれば、同じパノラマプロパティを共有する場合、上記のように同じアイテムプロパティPanoramaProperty(「pano」)403を有利に参照することができる。
【0127】
第1のパノラマ401は複数のエンティティグループ404および405によって表されるアイテムのいくつかのブラケッティングセット(例えば、自動露出ブラケッティングセット「aebr」)から構成され、これを参照する。
【0128】
第2のパノラマ402は、1つの画像シーケンストラック406に格納されている一連のサンプルから構成され、一連のサンプルは「aebr」407、408、および409をグループ化するいくつかのサンプルによって表される連続する自動露出ブラケティングセットに対応する。例えば、サンプルグループ407は、サンプル410、411及び412から構成される。例えば、サンプル410は、自動露出値ストップパラメータ=-1を表すサンプルグループ記述エントリ0に関連付けられる。サンプル412は、自動露出値ストップパラメータ=+1を表すサンプルグループ記述エントリ2に関連付けられる。
【0129】
HEIF規格は、パノラマを含む画像または画像のグループの人が可読のテキスト記述を効率的に格納することを可能にしない。名前またはタイトル、パノラマの一般的な説明、画像または画像のグループ、およびパノラマに関連するキーワードまたはタグのリスト、他の画像または画像のグループなどの、人が可読のテキストの説明は、ユーザがそれらのパノラマ、HEIFファイル内の他の画像または画像のグループを編成、分類、検索し、HEIFファイルの内容を表示し、HEIFファイルの内容に基づいて文書を作成し、またはそれらのパノラマまたは他の画像または画像のグループを他のユーザと共有するために有用である。
【0130】
いくつかの実施形態では、追加の人が可読のラベル(単数または複数)はまた、各アイテムまたはエンティティのグループのコンテンツの人が可読の説明、例えばタイトル、一般的説明、またはタグを提供するために、任意の種類のアイテムまたはエンティティのグループ(例えば、上記実施形態によるパノラマを表す)に関連付けられてもよい。
【0131】
この目的のために、たとえばUserDescriptionPropertyというアイテムプロパティを以下のように定義できる。
ボックスタイプ:「udes」
プロパティタイプ:記述アイテムプロパティ
コンテナ:ItemPropertyContainerBox
必須(アイテムごと):番号
数量(アイテムごと):ゼロ以上
UserDescriptionPropertyは、ユーザ定義の名前、説明、およびタグとのアイテムの関連付けを可能にし、異なる言語コードを有することになるアイテムまたはエンティティのグループ(おそらくパノラマを表す)に関連付けられた複数のそのようなプロパティが存在し得る。これにより、異なる代替言語をアイテムまたはエンティティのグループに関連付けることができる。
【0132】
同じUserDescriptionPropertyは、同じ説明を共有する場合、2つの異なるアイテムまたはアイテムのグループに関連付けることができる。これにより、同じデータ情報を重複させずにメモリを節約できる。
【0133】
また、ボックスのフラグには以下のフラグを設定することができる。
0x000001 名前存在
0x000002 説明存在
0x000004 タグ存在
設定すると、関連付けられた名前、説明、またはタグ列がアイテムプロパティで定義されているかどうかを示す。これにより、空列の定義で構成される代替と比較して、対応するフィールドが使用されていない場合にアイテムプロパティ定義にバイトを保存できる。
aligned(8) class UserDescriptionProperty
extends ItemFullProperty(’udes’、version=0、flags=0) {
utf8string lang;
if (flags & name-present) utf8string name;
if (flags & description-present) utf8string description;
if (flags & tags-present) utf8string tags;

ここで、
langは、”en-US”、”fr-FR”、または”zh-CN”などのRFC5646準拠の言語タグ列を含む文字列であり、name、description、およびtagsに含まれるテキストの言語を表す。langが空の場合、言語はunknown/undefinedである。
【0134】
nameは、アイテムまたはエンティティーのグループの人が可読の名前を含むnull終端UTF-8文字列である。
【0135】
descriptionは、アイテムまたはエンティティのグループの人が可読の説明を含むnull終端UTF-8文字列である。
【0136】
tagsは、アイテムまたはエンティティのグループに関連するカンマ区切りのタグを含むnull終端UTF-8文字列である。
【0137】
HEIF及びMIAFファイルフォーマットは、生成時間又は修正時間のようなパノラマを含む画像及び画像のグループのタイミング情報を格納する効率的な方法を提供しない。このタイミング情報は、ユーザが、HEIFファイル内のパノラマ、又は他の画像又は画像のグループを整理、分類及び検索し、HEIFファイルの内容を表示し、HEIFファイルの内容に基づいて文書を作成し、又はそれらのパノラマ又は他の画像又は画像のグループを他のユーザと共有するのに有用である。
【0138】
いくつかの実施形態では、追加のアイテムプロパティがそれらの作成および修正時間を文書化するために、任意の種類のアイテムまたはエンティティのグループ(例えば、上記の実施形態によるパノラマを表す)に関連付けられてもよい。
【0139】
幾つかのアイテムプロパティ、例えば、CreationTimePropertyやModificationTimePropertyは、次のように定義できる。
ボックスタイプ:’crtt’
プロパティタイプ:記述アイテムプロパティ
コンテナ:ItemPropertyContainerBox
必須(アイテムごと):番号
数量(アイテムごと):高々1つ

ボックスタイプ:’mdft’
プロパティタイプ:記述アイテムプロパティ
コンテナ: ItemPropertyContainerBox
必須(アイテムごと):番号
数量(アイテムごと):高々1つ
CreationTimePropertyは、関連付けられたアイテムまたはエンティティのグループの作成時間を文書化する。
【0140】
ModificationTimePropertyは、関連するアイテムまたはエンティティのグループの最後の修正時間を文書化する。
aligned(8) class CreationTimeProperty
extends ItemFullProperty(’crtt’) {
unsigned int(64) creation_time;


aligned(8) class ModificationTimeProperty
extends ItemFullProperty(’mdft’) {
unsigned int(64) modification_time;

ここで、
creation_timeは、アイテムまたはエンティティのグループの作成時間を宣言する整数である(UTC時間の1904年1月1日午前0時からのマイクロ秒単位)。
【0141】
modification_timeは、アイテムまたはエンティティのグループが変更された最新の時間を宣言する整数である(UTC時間の1904年1月1日午前0時からのマイクロ秒単位)。
【0142】
マイクロ秒の精度により、1秒あたりのフレームレートが速い高速カメラの撮影時間をサポートできる。より高い精度が必要な場合は、追加の64ビットの属性を使用してボックスの新しいバージョンを定義できる(ネットワークタイムプロトコルバージョン4と同様)。
【0143】
代替として、UTC時間は、異なる開始時間(例えば、1970年または2001年1月1日の深夜、または明確に定義された、その他の任意の開始時間などの別の周知のエポック時間)からカウントされてもよい。
【0144】
別の代替案では、UTC時間からローカル時間を取得することを可能にするタイムゾーンを提供するために、例えば符号付き整数として、追加の属性を追加することができる。
【0145】
別の代替案では、creation_timeとmodification_timeがグローバルリファレンス時間と比較した差として表現される可能性があり、場合によっては時間尺度への参照によっても表現される可能性があり、両方とも、最上位の「meta」ボックスの下の別のボックス、またはHEIFファイル内の別の最上位ボックスで宣言される。これにより、creation_timeおよびmodification_time定義で(たとえば、64ビット整数ではなく32ビット整数を使用して)いくつかのバイトを節約できる。
【0146】
別の代替案では、ModificationTimePropertyが以下で定義されるように、人が可読のラベルやオプションのバージョニング番号などの追加属性を含む。複数のModificationTimePropertyは、変更履歴/バージョニングを追跡するために、アイテムまたはエンティティのグループに関連付けることができる。
【0147】
ボックスタイプ: ’mdft’
プロパティタイプ: 記述アイテムプロパティ
コンテナ: ItemPropertyContainerBox
必須(アイテムごと):番号
数量(アイテムごと):ゼロ以上

aligned(8) class ModificationTimeProperty
extends ItemFullProperty(’mdft’) {
unsigned int(64) modification_time;
unsigned int(16) major_version_number;
unsigned int(16) minor_version_number;
utf8string comment;

ここで、
modification_timeは上記のように定義される。
【0148】
major_version_numberとminor_version_numberは、メジャーバージョン番号とマイナーバージョン番号を提供する符号なし整数である。
【0149】
commentは、変更のための人が可読のコメントを与える。
【0150】
オプションで、追加の属性langは、UserDescriptionPropertyと同様にcommentに含まれるテキストの言語を提供することができる。
【0151】
図5は、HEIFフォーマットを使用して1つ以上の画像を1つのファイルにカプセル化するプロセスの主なステップを示している。コンピューティングデバイス600(図6)は例えば、この処理を適用することができる。
【0152】
シーンからパノラマビューを構築するために、いくつかのビュー撮影がデバイス600によって取得される。各ビュー撮影の間に、デバイスは所定のパノラマ方向に従って、おそらくは360°まで(例えば、左から右へまたは上から下への線または曲線を形成するか、または所与のスキャン順序を有するグリッドを形成する)移動される。
【0153】
ステップ501では、各ビュー撮影に対して、デバイスは現在ブラケティングモードがアクティブであるかどうか、すなわち、所与のブラケティングモード(例えば、自動露出ブラケティング、フォーカスブラケティング、ホワイトバランスブラケティング、超解像ブラケティング、被写界深度ブラケティング、フラッシュ露出ブラケティング、…)に従って画像のブラケティングセットを形成するために、所与のビューに対して複数の画像が撮影されるべきかどうかを判定する。ブラケティングは、一連の画像を撮影することで構成され、シリーズの各画像はカメラパラメータの異なる値を使用して撮影される。例えば、3つの画像の自動露光ブラケティングは、低露光時間を有する第1の画像、中間露光時間を有する第2の画像、及び高露光時間を有する第3の画像から成ることができる。
【0154】
ステップ501においてブラケティングモードがアクティブである場合、デバイスは、デバイス内に構成された、又はユーザによって選択されたブラケティングモードパラメータ(画像の数、画像撮影構成パラメータ)に従って、ステップ504で一連の画像を得る。
【0155】
ステップ505では、一連の画像の各画像が符号化され(例えば、HEVC、JPEG、RAW、または任意の他の画像符号化フォーマットを使用して)、新しい符号化画像アイテムとしてHEIFファイルにカプセル化される。EntityToGroupBoxは、ブラケティングモードに対応するグループ化タイプを有する一連の符号化画像アイテムを参照して定義される。たとえば、自動露出ブラケティングではグループ化タイプ「aebr」、またはフォーカスブラケティングでは「fobr」を使用する。オプションで、各画像のブラケティングパラメータ値を記述するために、各符号化画像アイテムにアイテムプロパティが関連付けられる。
【0156】
あるいは、一連の画像の各画像がトラック内の新しいサンプルとしてHEIFファイル内に符号化され、カプセル化される。そして、EntityToGroupBoxは上述したように、ブラケティングモードに対応するグループ化タイプを有するトラックを参照して定義される。サンプルグループ化メカニズムを使用して、各サンプルを各画像のブラケティングパラメータ値に関連付けることができる(別個のSampleGroupDescriptionEntryに記載されている)。
【0157】
ステップ501でブラケティングモードがアクティブではない場合、ステップ502で、デバイスはビューについて1つの単一画像を取得し、ステップ503で、この画像を(任意の画像符号化フォーマットで)符号化し、この画像を符号化画像アイテムとしてHEIFファイルにカプセル化する。
【0158】
ステップ506において、パノラマビューを形成する最後の撮影ビューに到達しない場合、以前のステップが繰り返される。
【0159】
最後に、ステップ507で、派生画像が、派生画像アイテムまたは予め導出された符号化画像アイテムとして、上述の実施形態のうちの1つに従って作成され、ステップ505および503で作成されたEntityToGroupBoxesまたは画像アイテムを参照するパノラマビューを記述するためにHEIFファイルにカプセル化される。
【0160】
パノラマが予め導出された符号化画像アイテムとして作成される場合、ステップ502および504で撮影された画像からパノラマ画像が計算される。作成されたパノラマ画像は、(任意の画像符号化フォーマットで)符号化され、上述の実施形態のうち1つに従って、ステップ505および503で作成されたEntityToGroupBoxまたは画像を参照して、予め導出された符号化画像アイテムとしてカプセル化される。
【0161】
図6は、本発明の1つまたは複数の実施形態を実施するためのコンピューティングデバイス600の概略ブロック図である。コンピューティングデバイス600は、マイクロコンピュータ、ワークステーション、または携帯電話、タブレット、スチルカメラ、またはビデオカメラなどのライトポータブルデバイスなどのデバイスとすることができる。コンピューティングデバイス600は、以下に接続された通信バスを備える。
【0162】
CPUと呼ばれるマイクロプロセッサのような中央処理ユニット601;
本発明の実施形態の方法の実行可能コード、ならびに本発明の実施形態による方法を実施するために必要な変数およびパラメータを記録するように適合されたレジスタを格納するための、RAMで示されるランダムアクセスメモリ602であり、そのメモリ容量は例えば、拡張ポートに接続されたオプションのRAMによって拡張することができる;
本発明の実施形態を実現するためのコンピュータプログラムを格納するためのROMで示されるリードオンリーメモリ603;
ネットワークインターフェース604は、典型的には処理されるデジタルデータが送受信される通信ネットワークに接続される。ネットワークインターフェース604は単一のネットワークインターフェースであってもよいし、異なるネットワークインターフェースのセット(例えば、有線および無線インターフェース、または異なる種類の有線または無線インターフェース)から構成されてもよい。データパケットは、送信のためにネットワークインターフェースに書き込まれるか、またはCPU601内で実行されているソフトウェアアプリケーションの制御の下で受信のためにネットワークインターフェースから読み出される;
ユーザインターフェース605は、ユーザからの入力を受信するために、またはユーザに情報を表示するために使用されてもよい;
HDで示されるハードディスク606は、大容量記憶装置として提供されてもよい;
I/Oモジュール607は、ビデオソースまたはディスプレイのような外部デバイスから/へデータを受信/送信するために使用されてもよい。
【0163】
実行可能コードは、リードオンリーメモリ603、ハードディスク606、または例えばディスクのようなリムーバブルデジタル媒体のいずれかに格納することができる。変形例によれば、プログラムの実行可能コードは、実行前にハードディスク606などの通信装置600の記憶手段の1つに記憶されるために、ネットワークインターフェース604を介して、通信ネットワークを用いて受信することができる。
【0164】
中央処理ユニット601は、前述の記憶手段の1つに格納された、本発明の実施形態によるプログラムもしくは複数のプログラムのソフトウェアコードの命令もしくは一部の実行を制御し、指示するように適合される。電源投入後、CPU601は例えば、プログラムROM603またはハードディスク(HD)606からそれらの命令がロードされた後に、ソフトウェアアプリケーションに関するメインRAMメモリ602からの命令を実行することができる。このようなソフトウェアアプリケーションは、CPU601によって実行されると、本発明のフローチャートのステップを実行させる。
【0165】
本発明のアルゴリズムの任意のステップは、PC(「パーソナルコンピュータ」)、DSP(「デジタル信号プロセッサ」)、またはマイクロコントローラなどのプログラマブルコンピューティングマシンによる命令またはプログラムのセットの実行によってソフトウェアで実施することができ、あるいは、FPGA(「フィールドプログラマブルゲートアレイ」)またはASIC(「特定用途向け集積回路」)などのマシンまたは専用コンポーネントによってハードウェアで実施することができる。
【0166】
以上、特定の実施形態を参照して本発明を説明したが、本発明は特定の実施形態に限定されるものではなく、本発明の範囲内にある変更は当業者には明らかであろう。
【0167】
多くのさらなる変更および変形は、単に例として与えられ、添付の特許請求の範囲によってのみ決定される本発明の範囲を限定することを意図しない、前述の例示的な実施形態を参照する際に、当業者にそれ自体を示唆するであろう。特に、様々な実施形態からの異なる特徴は、適宜、交換されてもよい。
【0168】
上述した本発明の各実施形態は単独で実施してもよいし、複数の実施形態を組み合わせとして実施してもよい。また、様々な実施形態からの特徴は、必要な場合、または単一の実施形態における個々の実施形態からの要素または特徴の組み合わせが有益である場合に組み合わせることができる。
【0169】
本明細書(任意の添付の特許請求の範囲、要約書、および図面を含む)に開示される各特徴は特に断らない限り、同じ、同等の、または同様の目的を果たす代替の特徴によって置き換えることができる。したがって、特に断らない限り、開示される各特徴は、同等または同様の特徴の一般的なシリーズの一例にすぎない。
【0170】
特許請求の範囲において、単語「有する」は他の要素又はステップを排除するものではなく、不定冠詞「a」又は「an」は複数を排除するものではない。異なる特徴が相互に異なる従属請求項に記載されているという単なる事実は、これらの特徴の組合せが有利に使用されることができないことを示すものではない。
図1
図2
図3
図4
図5
図6