JP7615036B2 - High-Level Syntax for Immersive Video Coding - Google Patents
High-Level Syntax for Immersive Video Coding Download PDFInfo
- Publication number
- JP7615036B2 JP7615036B2 JP2021548154A JP2021548154A JP7615036B2 JP 7615036 B2 JP7615036 B2 JP 7615036B2 JP 2021548154 A JP2021548154 A JP 2021548154A JP 2021548154 A JP2021548154 A JP 2021548154A JP 7615036 B2 JP7615036 B2 JP 7615036B2
- Authority
- JP
- Japan
- Prior art keywords
- depth
- line segment
- mapping
- bit
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/111—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/111—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
- H04N13/117—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/128—Adjusting depth or disparity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/161—Encoding, multiplexing or demultiplexing different image signal components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/36—Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
圧縮/解凍(compression/decompression)(コーデック(codec))システムにおいては、圧縮効率とビデオ品質が重要な性能基準である。例えば、視覚品質は、多くのビデオアプリケーションにおけるユーザ体験の重要な側面であり、そして、圧縮効率は、ビデオファイルを保管するのに必要なメモリストレージの量、及び/又は、ビデオコンテンツを伝送かつ/あるいはストリームするために必要な帯域幅の量に影響を与える。ビデオエンコーダ(video encoder)は、所与の帯域幅にわたりより多くの情報を送信することができるように、または、所与のメモリ空間等に保管することができるように、ビデオ情報を圧縮する。圧縮された信号またはデータは、次いで、ユーザに表示するために、信号またはデータを復号または解凍するデコーダ(decoder)によって復号される。大部分の実装においては、より大きな圧縮を用いる高い視覚品質が望ましい。 In compression/decompression (codec) systems, compression efficiency and video quality are important performance criteria. For example, visual quality is an important aspect of the user experience in many video applications, and compression efficiency impacts the amount of memory storage required to store a video file and/or the amount of bandwidth required to transmit and/or stream the video content. A video encoder compresses the video information so that more information can be transmitted over a given bandwidth or stored in a given memory space, etc. The compressed signal or data is then decoded by a decoder, which decodes or decompresses the signal or data for display to the user. In most implementations, higher visual quality with greater compression is desired.
開発中のMPEG 3DoF+規格といった、イマーシブ(immersive)ビデオおよび3Dビデオ符号化規格は、シーンのテクスチャと深さ表現の両方を符号化(encode)し、そして、コード化深さ(coded depth)を利用して、ビュー補間(view interpolation)(ビュー合成(view synthesis)としても呼ばれるもの)を通して中間ビュー位置をレンダリングする。従来の(legacy)2Dビデオ符号化規格は、テクスチャと深さを別々に符号化するために使用することができる。最も一般的に使用されるビデオ符号化規格は、8ビットまたは10ビットの入力画像しかサポートできないが、多くの深さ表現は16ビット表現を有する。さらに、高レベルのシンタックス(syntax)が、符号化効率のために必要とされる。これらおよび他の考慮事項に関して、現在の改善が必要とされている。そうした改善は、イマーシブおよび3Dビデオを符号化および復号化したいという要望がより広く普及すると、重要になり得る。 Immersive and 3D video coding standards, such as the developing MPEG 3DoF+ standard, encode both texture and depth representations of a scene and then use the coded depth to render intermediate view positions through view interpolation (also called view synthesis). Legacy 2D video coding standards can be used to code texture and depth separately. Most commonly used video coding standards can only support 8-bit or 10-bit input images, while many depth representations have 16-bit representations. Furthermore, a high level of syntax is required for coding efficiency. With regard to these and other considerations, current improvements are needed, which could become important as the desire to encode and decode immersive and 3D video becomes more widespread.
この出願は、2019年3月19日に出願され、タイトルが“HIGH LEVEL SYNTAX FOR IMMERSIVE VIDEO CODING”である米国仮特許出願第62/820760号について優先権を主張し、その全体が参照により包含されている。 This application claims priority to U.S. Provisional Patent Application No. 62/820,760, filed March 19, 2019, and entitled "HIGH LEVEL SYNTAX FOR IMMERSIVE VIDEO CODING," which is incorporated by reference in its entirety.
ここにおいて説明されている資料は、例示として示されるものであり、そして、添付の図面に限定されるものではない。説明を簡潔かつ明瞭にするために、図中に示されている要素は、必ずしも縮尺通りに描かれていない。例えば、いくつかの要素の寸法は、明確にするために、他の要素に対して誇張されてよい。さらに、適切であると考えられる場合には、対応する要素または類似の要素を示すために、参照ラベルが図の間で繰り返されている。
1つ以上の実施形態または実装が、これから、同封の図面を参照して説明される。特定の構成および配置が説明されるが、これは例示的な目的のためにだけ行われることが理解されるべきである。当業者であれば、本説明の精神および範囲から逸脱することなく、他の構成および配置が使用され得ることを理解するだろう。ここにおいて説明される技術及び/又は配置が、また、ここにおいて説明されるもの以外の様々な他のシステムおよびアプリケーションにも使用され得ることは、当業者とって明らかであろう。 One or more embodiments or implementations will now be described with reference to the enclosed drawings. While particular configurations and arrangements are described, it should be understood that this is done for illustrative purposes only. Those skilled in the art will appreciate that other configurations and arrangements may be used without departing from the spirit and scope of the present description. Those skilled in the art will appreciate that the techniques and/or arrangements described herein may also be used in a variety of other systems and applications other than those described herein.
以下の説明は、例えば、システムオンチップ(SoC)アーキテクチャといったアーキテクチャにおいて明らかにされ得る種々の実装を示しているが、ここにおいて説明される技術及び/又は構成の実装は、特定のアーキテクチャ及び/又は計算システムに限定されるものではなく、同様の目的のために任意のアーキテクチャ及び/又は計算システムによって実装され得る。例えば、多重集積回路(IC)チップ及び/又はパッケージ、及び/又は、セットトップボックス、スマートフォン、等といった種々のコンピューティングデバイス、及び/又は、コンシューマ電子デバイスを使用する種々のアーキテクチャは、ここにおいて説明される技術及び/又は構成を実装することができる。さらに、以下の説明は、論理実装、システムコンポーネントのタイプおよび相互関係、論理分割/統合選択、等の多くの特定の詳細を記載することができるが、請求される技術的事項(subject matter)は、そうした特定の詳細がなくても実施可能である。他のインスタンスでは、例えば、制御構造および完全なソフトウェア命令シーケンスといったいくつかの資料は、ここにおいて開示される資料を不明瞭にしないように、詳細には示されないことがある。 Although the following description illustrates various implementations that may be manifested in architectures such as, for example, system-on-chip (SoC) architectures, implementations of the techniques and/or configurations described herein are not limited to a particular architecture and/or computing system, but may be implemented by any architecture and/or computing system for the same purpose. For example, various architectures using multiple integrated circuit (IC) chips and/or packages, and/or various computing devices such as set-top boxes, smartphones, and/or consumer electronic devices may implement the techniques and/or configurations described herein. Furthermore, although the following description may set forth many specific details, such as logical implementations, types and interrelationships of system components, logical partitioning/integration options, and the like, the claimed subject matter may be practiced without such specific details. In other instances, some material, such as, for example, control structures and complete software instruction sequences, may not be shown in detail so as not to obscure the material disclosed herein.
ここにおいて開示される資料は、ハードウェア、ファームウェア、ソフトウェア、または、それらの任意の組み合わせで実装され得る。ここにおいて開示される資料は、また、1つ以上のプロセッサによって読出され、そして、実行され得る、マシンで読取り可能な媒体上に保管された命令として実装されてもよい。マシンで読取り可能な媒体は、マシン(例えば、コンピューティングデバイス)によって読取り可能な形態で情報を保管または送信するための任意の媒体及び/又はメカニズムを含み得る。例えば、マシンで読取り可能な媒体は、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスクストレージ媒体、光ストレージ媒体、フラッシュメモリデバイス、電気、光、音響、または他の形態の伝搬信号(例えば、搬送波、赤外線信号、デジタル信号、等)などを含み得る。 The material disclosed herein may be implemented in hardware, firmware, software, or any combination thereof. The material disclosed herein may also be implemented as instructions stored on a machine-readable medium that may be read and executed by one or more processors. A machine-readable medium may include any medium and/or mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device). For example, a machine-readable medium may include read-only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, electrical, optical, acoustic, or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.), and the like.
明細書中の「1つの実装(“one implementation”)」、「実装“an implementation”」、「例示的な実装“an example implementation”」、等への言及は、説明された実装が特定の特徴、構造、または特性を含み得るが、全ての実施形態が必ずしも特定の特徴、構造、または特性を含み得るとは限らないことを示す。そのうえ、そうしたフレーズ(phrases)は、必ずしも同一の実装を意味するものではない。さらに、特定の特徴、構造、または特性が実施形態に関連して説明される場合、ここにおいて明示的に説明されているか否かにかかわらず、他の実施形態に関連して、そうした特徴、構造、または特性を実行することは当業者の知識内であることが提示されている。 References in the specification to "one implementation," "an implementation," "an example implementation," and the like indicate that the described implementation may include a particular feature, structure, or characteristic, but not all embodiments may necessarily include the particular feature, structure, or characteristic. Moreover, such phrases do not necessarily refer to the same implementation. Furthermore, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one of ordinary skill in the art to implement such feature, structure, or characteristic in connection with other embodiments, whether or not explicitly described herein.
用語「実質的に(“substantially”)」、「近い(“close”)」、「概ね(“approximately”)」、および「約(“about”)」は、一般的に、目標値の+/10%内にあることを意味する。例えば、「実質的に等しい」、「ほぼ等しい」、および「概ね等しい」という用語は、それらの使用の明示的なコンテキスト(context)において特に指定しない限り、そのように説明されたものの間には偶発的なばらつきがないことを意味する。当該技術分野において、そうした変動(variation)は、典型的に、所定の目標値の+/-10%以下である。特に指定されない限り、共通のオブジェクトを説明するための、一般的な形容詞「第1(“first”)」、「第2(“second”)」、および「第3(“third”)」、等の使用は、共通のオブジェクトを説明するために、同様なオブジェクトの異なるインスタンスが参照されていることを単に示すだけであり、そして、そのように説明されたオブジェクトが、時間的に、空間的に、順位付けにおいて、または任意の他の方法のいずれかで、所与のシーケンスであることを要することを意味するように意図されてはいない。 The terms "substantially,""close,""approximately," and "about" generally mean within +/- 10% of a target value. For example, the terms "substantially equal,""approximately equal ," and "approximately equal" mean that there is no accidental variation between those so described, unless otherwise specified in the express context of their use. In the art, such variation is typically no more than +/- 10% of a given target value. Unless otherwise specified, the use of the common adjectives "first,""second,""third," etc., to describe a common object is merely to indicate that different instances of a similar object are being referenced to describe the common object, and is not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in order, or in any other manner.
方法、デバイス、装置、計算プラットフォーム、および製品が、ここにおいて、イマーシブおよび3Dビデオ符号化に関連して説明される。 Methods, devices, apparatus, computing platforms, and articles of manufacture are described herein in connection with immersive and 3D video encoding.
説明されるように、イマーシブビデオおよび3Dビデオ符号化規格は、シーンのテクスチャ表現および深さ表現の両方を符号化(encode)し、そして、コード化深さを利用して、ビューの補間または合成を通して中間ビュー位置をレンダリングすることができる。ここで使用されるように、イマーシブビデオという用語は、シーンの複数のペアのテクスチャおよび深度ビュー(depth view)を含むビデオを意味する。従来の2Dビデオ符号化規格は、テクスチャと深さを別々に符号化するために使用することができ、そして、典型的には、8ビットまたは10ビットの入力画像をサポートする。ここにおいて説明される技術は、HEVC Main 10プロファイルといった、10ビットビデオ符号化規格で深さを符号化する以前に、16ビット表現での深度ビュー(例えば、深さイメージ、フレーム、またはマップ)の区分ごとの(piece-wise)線形マッピングを10ビット表現に適用することによって、イマーシブビデオ符号化の品質を改善する。表現を明確にするためにHEVC Main 10に関して説明したが、任意の適切なコーデック(codec)が適用されてよい。さらに、16ビットから10ビットへの表現のマッピングに関して説明されるが、入力および出力のビット深さは、任意の適切なビット深さであり得る。さらに、ビュー補間で使用される追加のカメラパラメータを効率的に記述するために、高レベルシンタックスが提供される。そうした変更は、HEVCビデオパラメータセット拡張に対して行うことができ、かつ/あるいは、3DoF+規格のサポートを示すために新しいプロファイルを提供することができる。再び、表現を明確にするためにHEVCに関して説明したが、そうした変更及び/又は新しいプロファイルは、任意の適切なコーデックに関して実施され得る。 As described, immersive and 3D video coding standards encode both texture and depth representations of a scene and can use the coded depth to render intermediate view positions through view interpolation or synthesis. As used herein, the term immersive video refers to a video that includes multiple pairs of texture and depth views of a scene. Conventional 2D video coding standards can be used to code texture and depth separately and typically support 8-bit or 10-bit input images. The techniques described herein improve the quality of immersive video coding by applying a piece-wise linear mapping of a depth view (e.g., a depth image, frame, or map) in a 16-bit representation to a 10-bit representation before encoding the depth in a 10-bit video coding standard, such as the HEVC Main 10 profile. Although described with respect to HEVC Main 10 for clarity of presentation, any suitable codec may be applied. Additionally, although described with respect to a mapping of 16-bit to 10-bit representation, the input and output bit depths may be any suitable bit depth. Additionally, a high level syntax is provided to efficiently describe additional camera parameters used in view interpolation. Such modifications may be made to HEVC video parameter set extensions and/or new profiles may be provided to indicate support for the 3DoF+ standard. Again, while described with respect to HEVC for clarity of presentation, such modifications and/or new profiles may be implemented with respect to any suitable codec.
ここにおいて説明される技術は、開発中のMPEG 3DoF+規格のためのビデオ品質および符号化効率を改善する。しかし、テクスチャおよび深度ビューを含み、かつ、符号化され得るものよりも高いビット表現で深さが利用可能な他のイマーシブビデオコーデックスシステムに適用され得る。いくつかの実施形態においては、エンコーダで、深さ方向のビューを符号化する以前に、16ビット表現は、ビットストリームにおいて信号化された区分ごとの線形マッピングを記述しているメタデータを用いた区分ごとの線形マッピングを使用して、10ビット表現にマッピングされる。デコーダでは、10ビット深さ深度ビューを復号(decode)した後で、16ビット表現にマッピングするために逆(inverse)マッピングが実行され、16ビット表現がビュー合成のために使用される。特に、深さの10ビット表現は、深さを完全に表現するには不十分であり、ビュー合成のために深さを使用する場合には、視覚的なアーチファクトを導き得る。さらに、16ビットのビット深さを10ビットとして表現するために、最下位ビットを丸めたり捨てたりすることも、また、アーチファクトを導入する。開示される技術は、ビットストリームで信号化された区分ごとの線形マッピングを記述しているメタデータを用いる、説明された16ビットから10ビットへのマッピングを使用して、そうした問題を軽減または解決する。これは、説明される技術(例えば、開発中の3DoF+規格の一般的な試験条件)を使用して、客観的および主観的なビデオ品質の改善を結果として生じる。 The techniques described herein improve video quality and coding efficiency for the developing MPEG 3DoF+ standard. However, they may be applied to other immersive video codec systems that include texture and depth views and where depth is available at a higher bit representation than can be coded. In some embodiments, at the encoder, before coding the depthwise view, the 16-bit representation is mapped to a 10-bit representation using a piecewise linear mapping with metadata describing the piecewise linear mapping signaled in the bitstream. At the decoder, after decoding the 10-bit depth view, an inverse mapping is performed to map to a 16-bit representation, which is used for view synthesis. In particular, the 10-bit representation of depth is insufficient to fully represent the depth and may lead to visual artifacts when using the depth for view synthesis. Furthermore, rounding or discarding the least significant bits to represent a 16-bit bit depth as 10 bits also introduces artifacts. The disclosed technology mitigates or solves such problems using a described 16-bit to 10-bit mapping with metadata describing the piecewise linear mapping signaled in the bitstream. This results in improved objective and subjective video quality using the described technology (e.g., typical test conditions for the developing 3DoF+ standard).
さらに、ここにおいて説明される技術は、マルチカメラのイマーシブビデオシステムにおいて、追加のカメラパラメータのメタデータを搬送するための効率的な信号伝達を提供する。いくつかの実施形態においては、3DoF+規格のサポートを示すために、新しいHEVCイマーシブプロファイルが提供されている。いくつかの実施形態においては、HEVCビデオパラメータセット(video parameter set、VPS)の修正が、地図(atlas)の使用を示すために提案されている。例えば、HEVCといったビデオコーデックで符号化される単一の画像が、複数の異なるカメラ位置からのデータを結合する多くの領域を有するように、地図が形成され得る。ルノー・ドーレ、フランク・スウダー、共著の“Outperforming 3DoF+ anchors:first evidence”、M43504、2018年7月において説明されるようにである。特に、説明される技術は、マルチカメラシステムにおいてカメラパラメータを搬送するためのオーバーヘッドを低減し、より多くのカメラ表現をビットストリームで使用することを可能にし、結果として、より高いビデオ品質を生じている。 Furthermore, the techniques described herein provide efficient signaling for carrying metadata of additional camera parameters in multi-camera immersive video systems. In some embodiments, a new HEVC immersive profile is provided to indicate support for the 3DoF+ standard. In some embodiments, a modification of the HEVC video parameter set (VPS) is proposed to indicate the use of an atlas. For example, an atlas may be formed such that a single image encoded with a video codec such as HEVC has many regions that combine data from multiple different camera positions, as described in Renaud Dore and Frank Suder, “Outperforming 3DoF+ anchors: first evidence”, M43504, July 2018. In particular, the techniques described reduce the overhead for carrying camera parameters in multi-camera systems, allowing more camera representations to be used in the bitstream, resulting in higher video quality.
図1は、本開示の少なくともいくつかの実装に従って構成された、イマーシブビデオデータを符号化するための一つの例示的な符号化システム100のブロック図である。図2は、本開示の少なくともいくつかの実装に従って構成された、イマーシブビデオデータを復号するための一つの例示的な復号化システム200のブロック図である。すなわち、図1および図2は、それぞれ、符号化システムおよびクライアントシステム(例えば、復号化システムまたはデコードシステム)のブロック図を示している。
FIG. 1 is a block diagram of an
図1を参照すると、符号化システム100は、ビデオ圧縮を提供し、そして、符号化システム100は、コンピュータまたはサーバシステムなどのコンピューティングデバイスを介して実装されるビデオ符号化システムの一部であり得る。例えば、符号化システム100は、テクスチャビデオ101および選択ビュー142からの深さビデオ102、テクスチャビデオ103および選択されたビュー142のうち1つからの深さビデオ104、テクスチャビデオ105および選択されたビュー142のうち別の1つからの深さビデオ106(並びに、任意の追加のテクスチャビデオおよび他の選択されたビュー142からの深さビデオ)を含む、様々なビュー(例えば、ビューまたはシーンのビューポイントからそれぞれ)からのテクスチャおよび深さを、例えば、含んでいるビデオを受信する。
符号化システム100は、そうしたテクスチャビデオおよび深さビデオを符号化して、(以下に説明されるように)そうしたテクスチャおよび深さビデオの解凍バージョンを生成するように、デコーダによって復号され得るビットストリーム131を生成し、そして、任意的に、ベースビュー141および選択されたビュー142によって表現されるシーンの合成ビューを生成する。特に、合成されたビューは、必ずしも任意のそうしたビューに対応せず、そして、従って、符号化システム100によって符号化されないシーンのビューを表すことができる。
1, the
例えば、テクスチャ符号化モジュール111は、テクスチャビデオ101(例えば、テクスチャビュー)を受信し、そうして、テクスチャビデオ101は、ビット深さが8ビットまたは10ビットであってよく、かつ、テクスチャ符号化モジュール111は、規格に準拠したコーデック及びプロファイルを用いてテクスチャビデオ101を符号化して、対応するビットストリームを生成することができる。同様に、テクスチャ符号化モジュール113は、ビット深さが8ビットまたは10ビットのテクスチャビデオ103を受信し、かつ、テクスチャ符号化モジュール113は、規格に準拠したコーデック及びプロファイルを用いてテクスチャビデオ103を符号化して、対応するビットストリームを生成する。そして、テクスチャ符号化モジュール115は、ビット深さが8ビットまたは10ビットのテクスチャビデオ105を受信し、かつ、符号化して、対応するビットストリームを生成する。特に、テクスチャビデオ101、103、105は、テクスチャ符号化モジュール111、113、115によって使用されるビット深さに一致するビット深さを有する。ビット深さ8または10ビットに関して説明されているが、任意の標準ビット深さが使用され得る。
For example, texture encoding module 111 receives texture video 101 (e.g., texture view), which may be of 8-bit or 10-bit bit depth, and texture encoding module 111 may encode texture video 101 using a standard-compliant codec and profile to generate a corresponding bitstream. Similarly,
しかしながら、深さビデオ102、104、106は、標準符号化モジュールによって使用されないビット深さである。特に、深さ符号化モジュール112、114、116はまた、8または10ビットの標準ビット深さで動作するが、深さビデオ102、104、106は、16ビットといった、より高いビット深さで受信される。示されるように、深さ符号化モジュール112、114、116によって符号化される以前に、各深さビデオ102、104、106は、マッピングモジュール121、123、125によって、より高いビット深さ(例えば、16ビット)から、標準符号化プロファイル(例えば、図1に示されている10ビットを用いた10ビットまたは8ビット)にも適合するより低いビット深さへ、それぞれに、マッピングされる。そうしたビット深さマッピングは、例えば、16ビットの深度ビューからの10ビットまたは8ビットの深度ビューを提供する。そうしたビット深さマッピングは、以下でさらに説明するように、深さビデオ102、104、106に基づいてマッピングパラメータ選択モジュール110によって選択されるマッピングパラメータ161(例えば、区分ごとの線形マッピング関数を表す線(line)セグメントのエンドポイント)に基づいて区分ごとの線形方法(linear fashion)で適用される。 However, the depth videos 102, 104, 106 are at a bit depth that is not used by the standard encoding module. In particular, the depth encoding modules 112, 114, 116 also operate at a standard bit depth of 8 or 10 bits, but the depth videos 102, 104, 106 are received at a higher bit depth, such as 16 bits. As shown, before being encoded by the depth encoding modules 112, 114, 116, each depth video 102, 104, 106 is mapped by mapping modules 121, 123, 125, respectively, from a higher bit depth (e.g., 16 bits) to a lower bit depth that also conforms to a standard encoding profile (e.g., 10 bits or 8 bits with the 10 bits shown in FIG. 1). Such bit depth mapping provides, for example, a 10-bit or 8-bit depth view from a 16-bit depth view. Such bit depth mapping is applied in a piecewise linear fashion based on mapping parameters 161 (e.g., end points of line segments representing piecewise linear mapping functions) selected by a mapping parameter selection module 110 based on the depth videos 102, 104, 106, as described further below.
示されるように、深さビデオ122、124、126を含む結果としての深さビデオ(または、深度ビュー)は、深さビデオ102、104、106に基づいてそれぞれ生成され、そうして、深さビデオ122、124、126は、8ビットまたは10ビットの深さビデオまたは深度ビューである。ここにおいて使用されるように、深さビデオ(depth video)および深度ビュー(depth view)という用語は、ピクセル単位の深度値を含む深さフレームである、ビデオフレームを有するビデオを示すために、互換的に使用されている。すなわち、各ピクセルは、深度値を示している。そうした低いビット深さの深さビデオ122、124、126は、次いで、HEVC Main 10といった標準ベースのコーデックおよびプロファイルを用いて深さ符号化モジュール112、114、116によって符号化され、対応するビットストリームを生成する。さらに、ここにおいて使用されるように、テクスチャビュー(texture view)、テクスチャビデオ(texture video)、および同様の用語は、輝度値(luma value)および複数の明度(color value)、3つの明度、または、同様の表現を有するそれらのピクセルを伴うカラービデオを示している。例えば、そうしたテクスチャビデオは、ビデオグラフィックスアレイ(VGA)、高解像度(HD)、フルHD(例えば、1080p)、4K解像度ビデオ、8K解像度といった、任意の適切な解像度における、任意の適切なビデオフレーム、ビデオピクチャ、等を含んでよい。そうしたテクスチャビデオは、YUVといった任意の適当な色空間内にあってよい。符号化の最中に、深さビデオおよびテクスチャビデオは、符号化ユニット、予測ユニット、および変換ユニット、等へと分割され、そして、当技術分野で公知のイントラおよびインター技術を用いて符号化され得る。
As shown, a resulting depth video (or depth view) including
深さ符号化モジュール112、114、116(例えば、深さビデオの各代表)およびテクスチャ符号化モジュール111、113、115(例えば、テクスチャビデオの各代表)からの結果としてのビットストリームは、マルチプレクサ119によって受信され、マルチプレクサは、ストレージ、伝送、等のために、そして、最終的には、以下でさらに説明するように、デコーダによる使用のために、ビットストリームをビットストリーム131へと多重化(multiplexes)する。ビットストリーム131は、例えば、HEVCといったビデオ圧縮-解凍(コーデック(codec))標準と互換性があり得る。ここではHEVCに関して説明したが、開示される技術は、任意のコーデックに関して実装され得る。AVC(Advanced Video Coding/H.264/MPEG-4 Part10)、VVC(Versatile Video Coding/MPEG-I Part3)、VP8、VP9、Alliance for Open Media(AOMedia)Video1(AV1)、VP8/VP9/AV1ファミリー、等といったものである。符号化システム100は、任意の適切なデバイスを介して実装され得る。例えば、サーバ、パーソナルコンピュータ、ラップトップコンピュータ、タブレット、ファブレット、スマートフォン、デジタルカメラ、ゲーム機、ウェアラブルデバイス、ディスプレイ装置、オールインワンデバイス、ツーインワンデバイス、等といったものである。例えば、ここにおいて使用されるように、システム、デバイス、コンピュータ、またはコンピュータデバイスは、任意のそうしたデバイスまたはプラットフォームを含み得る。
The resulting bitstreams from the depth coding modules 112, 114, 116 (e.g., representatives of depth video) and the
説明されるように、図1の符号化システム100では、テクスチャおよび深さを伴う複数のビューが利用可能であり、テクスチャは8ビットまたは10ビット、そして、深さは16ビットである。符号化システムは、符号化するビューのサブセットを選択する。図示される実施形態においては、HEVCエンコーダが使用されている。選択されたビューに対して、テクスチャは利用可能なビット表現で符号化され、そして、深さは16ビット表現、x、から10ビット表現、y、へ変換される。従来のシステムにおいて、そうした変換は、次の等式に従って実行され得る。y=round(1024*x/65536)。代替的に、丸め(rounding)の代わりに切り捨て(truncation)が採用されてよく、そして、例えば、許容範囲外の値を避けるために、クリッピングも、また、適用され得る。次の等式、y=Clip3(0,1023,int(1024*x÷65536+0.5)といったものである。そうした従来技術は、ビット深さ低減において情報を不利に失う。
As illustrated, in the
対照的に、図1に示されるように、符号化システム100は、深度値のいくつかの範囲が深度値の他の範囲よりも細かい粒度で表現されるように適用される、区分ごとの線形マッピングを使用して、符号化システム100におけるマッピングモジュール121、123、125を介して、深さビデオ102、104、106をより高いビット深さ(例えば、16ビット表現)からより低いビット深さ(例えば、10ビット表現)へ変換する。そうしたビット深さマッピングが、以下でさらに説明される。
In contrast, as shown in FIG. 1, the
いくつかの実施形態において、符号化システム100のマッピングパラメータ選択モジュール110は、区分ごとの線形マッピングのためのパラメータを選択する。示されるように、そうしたマッピングパラメータ161は、区分ごとの線形マッピングにおける実装のために、マッピングモジュール121、123、125に対して提供されている。さらに、マッピングパラメータ161(例えば、マッピングパラメータを表すメタデータ)は、信号化され、メタデータ符号化モジュール117を介して符号化され、符号化されたビットストリームと共にマルチプレクサ119を介してビットストリーム131に多重化され、デコーダによって使用される。一つの実施形態において、ビデオビットストリームまたはシステムレイヤ内の補足拡張情報メッセージまたは他の高レベルシンタックス構造を使用して、マッピングメタデータを搬送することができる。いくつかの実施形態において、マッピングパラメータ161(例えば、マッピングメタデータ)は、ラインセグメントのエンドポイントの(x,y)座標のリストを含み、または、表している。ここで、xは深さ16ビットの表現値を表し、そして、yは変換された10ビットの表現値を表している。
In some embodiments, the mapping parameter selection module 110 of the
さらに、カメラアレイパラメータ151、ベースビュー141をキャプチャするために使用され、そして、選択されたビュー142、並びに、シーンの他の任意のビューが、符号化のためにカメラパラメータ符号化モジュール118に対して提供され得る。そして、結果としてのビットストリームは、ビットストリーム131に含めるためにマルチプレクサ119に提供される。カメラアレイパラメータ151は、ビデオキャプチャの最中のカメラを代表するパラメータを含む。例えば、カメラの位置(例えば、x、y、z情報)、空間におけるカメラの方向(例えば、ヨー、ピッチ、およびロール情報、または、クォータニオン(quaternion)情報)、並びに、焦点距離、視野、およびZnearとZfarといったカメラ特性を含んでおり、これらは、カメラからの物理的距離を示し、最低および最高の16ビット値(0および65535)が、不均衡(disparity)深さファイルに対応している、等。カメラパラメータ符号化モジュール118は、ここにおいて以下でさらに説明されるように、そうしたカメラアレイパラメータ151を有利に符号化して、冗長性を低減し、かつ、効率を向上させ得る。
Additionally, camera array parameters 151, the
これから図2に移ると、復号化システム200が、例えば、クライアントシステムとして実装されてよい。符号化システム100と同様に、復号化システム200は、例えば、サーバ、パーソナルコンピュータ、ラップトップコンピュータ、タブレット、ファブレット、スマートフォン、デジタルカメラ、ゲーム機、ウェアラブルデバイス、表示装置、オールインワンデバイス、ツーインワンデバイス、等といった、任意の適切なデバイスを介して実装され得る。例えば、ここにおいて使用されるように、システム、デバイス、コンピュータ、またはコンピュータデバイスは、任意のそうしたデバイスまたはプラットフォームを含み得る。復号化システム200は、任意のソースからビットストリーム131を受信し、かつ、復号化システム200は、復号のためにビットストリーム131を逆多重化(demultiplexes)する。
2, the
示されるように、デマルチプレクサ219から逆多重化された各ビットストリームは、テクスチャ復号化モジュール211、213、215、深さ復号化モジュール212、214、216、メタデータ復号化モジュール217、および、カメラパラメータ復号化モジュール218のうち1つを含む、対応するモジュールに提供される。示されるように、テクスチャ復号化モジュール211は、テクスチャビデオ101に対応するテクスチャビデオ201を生成するために、ビットストリームを受信し、かつ、復号する。テクスチャ復号化モジュール213は、テクスチャビデオ103に対応するテクスチャビデオ203を生成するために、ビットストリームを受信し、かつ、復号する。そして、テクスチャ復号化モジュール215は、テクスチャビデオ105に対応するテクスチャビデオ205を生成するために、ビットストリームを受信し、かつ、復号する。テクスチャビデオ201、203、205は、テクスチャビデオ101、103、105に対応するが、損失の大きい符号化/復号化処理のせいで、完全には複製しないことに留意する。そうした復号は、任意の適切な技術または技法を使用して実行され得る。特に、そうした復号は、ヘッドマウントディスプレイ位置情報(HMD pos. info.)252に基づいて、ヘッドマウントディスプレイ(HMD)251(または、他のディスプレイデバイス)による使用のために、合成ビュー250を生成する際に、ビュー合成モジュール231による使用に適したビット深さ(例えば、8ビットまたは10ビット)でテクスチャビデオ201、203、205を提供する。 As shown, each demultiplexed bitstream from the demultiplexer 219 is provided to a corresponding module, including one of texture decoding modules 211, 213, 215, depth decoding modules 212, 214, 216, metadata decoding module 217, and camera parameter decoding module 218. As shown, the texture decoding module 211 receives and decodes the bitstream to generate a texture video 201 corresponding to the texture video 101. The texture decoding module 213 receives and decodes the bitstream to generate a texture video 203 corresponding to the texture video 103. And, the texture decoding module 215 receives and decodes the bitstream to generate a texture video 205 corresponding to the texture video 105. Note that the texture videos 201, 203, 205 correspond to the texture videos 101, 103, 105, but do not perfectly replicate them due to the lossy encoding/decoding process. Such decoding may be performed using any suitable technology or technique. In particular, such decoding provides texture videos 201, 203, 205 at a bit depth (e.g., 8-bit or 10-bit) suitable for use by view synthesis module 231 in generating a synthetic view 250 for use by a head mounted display (HMD) 251 (or other display device) based on head mounted display position information (HMD pos. info.) 252.
さらに、メタデータ復号化モジュール217は、適切なビットストリームを受信し、そして、復号化システム200の逆マッピングモジュール221、223、225による使用のためにマッピングパラメータ161を復号する。特に、そうした復号は、マッピングパラメータ161を忠実に再作成する。ラインセグメントのエンドポイントの(x,y)座標のリストまたは類似のデータ構造を含み、そうして、xは深さ16ビットの表現値を表し、かつ、yが変換された10ビットの表現値を表している。例えば、逆マッピングモジュール221、223、225は、マッピングモジュール121、123、125によって実行される処理を逆にして、より低いビット深さビデオからより高いビット深さビデオを生成する。
Furthermore, the metadata decoding module 217 receives the appropriate bitstream and decodes the mapping parameters 161 for use by the inverse mapping modules 221, 223, 225 of the
いくつかの実施形態において、ラインセグメントエンドポイントメタデータは、深さマッピングSEIメッセージ、もしくは、他の高レベルシンタックスまたはシステムシグナリングで送信される。いくつかの実施形態においては、2つ以上のラインセグメントエンドポイントセットが信号化される。いくつかの実施形態において、SEIメッセージは、それがキャンセルされるまで、または、新しいパラメータを伴う別のSEIメッセージがそれを置き換えるために送信されるまで、継続する。例示的なSEIシンタックスおよびセマティック(semantics)が、表1および以下の説明において提供される。
いくつかの実施形態において、SEIメッセージパラメータは、キャンセルされるまで符号化順序で存続する。表1において、パラメータは、以下のように実装され得る。
dm_cancel_flagが1に等しいことは、任意の以前の深さマッピングSEIメッセージの持続性がキャンセルされることを示す。
dm_num_mapping_setsは、信号化される区分ごとの線形マッピングセットの数を指定する。
dm_num_segments[i]は、i番目のマッピングセットにおけるラインセグメントの数を指定する。
dm_seg_x[i][j]およびdm_seg_y[i][j]は、i番目のマッピングセットで定義されたj番目の(x,y)ラインセグメントエンドポイントを指定する。
In some embodiments, the SEI message parameters remain in coding order until canceled. In Table 1, the parameters may be implemented as follows:
dm_cancel_flag equal to 1 indicates that the persistence of any previous depth mapping SEI messages is canceled.
dm_num_mapping_sets specifies the number of linear mapping sets per piece that are signaled.
dm_num_segments[i] specifies the number of line segments in the i-th mapping set.
dm_seg_x[i][j] and dm_seg_y[i][j] specify the jth (x,y) line segment end points defined in the ith mapping set.
以下でさらに説明されるように、i番目のマッピングセット、DecodedValue、を使用する深さコード化画像内の各サンプルについて、変数InverseMappedValueは、以下を使用して決定される。
for(j=0;<jdm_num_segments[i];j++){
if(DecodedValue>=dm_seg_y[i][j]&&DecodedSampleValue<=
dm_seg_y[i][j+1])
InverseMappedValue=Clip3(0,65535,int(dm_seg_x[i][j]+0.5+
((DecodedValue-dm_seg_y[i][j])÷(dm_seg_x[i][j+1])-
dm_seg_x[i][j])
*(dm_seg_y[i][j+1]-dm_seg_y[i][j])))
As explained further below, for each sample in the depth-coded image that uses the i-th mapping set, DecodedValue, the variable InverseMappedValue is determined using:
for(j=0;<jdm_num_segments[i];j++){
if(DecodedValue>=dm_seg_y[i][j]&&DecodedSampleValue<=
dm_seg_y[i][j+1])
InverseMappedValue=Clip3(0,65535,int(dm_seg_x[i][j]+0.5+
((DecodedValue-dm_seg_y[i][j])÷(dm_seg_x[i][j+1])-
dm_seg_x[i][j])
*(dm_seg_y[i][j+1]-dm_seg_y[i][j])))
例えば、変数InverseMappedValueを決定するために、i番目のマッピングセット、DecodedValue、を使用して、深さコード化画像内の各サンプルについて、以前のコードまたは疑似コードが使用され得る。これにより、10ビットのビット深度値は、ビュー合成において復号化システムで使用するために、16ビットのビット深度値に対してマッピングされ得る。 For example, the previous code or pseudocode may be used to determine the variable InverseMappedValue for each sample in the depth-coded image using the ith mapping set, DecodedValue, so that 10-bit bit-depth values may be mapped to 16-bit bit-depth values for use by the decoding system in view synthesis.
引き続き図2を参照すると、深さ復号化モジュール212は、深さビデオ122に対応する、深さビデオ222を生成するためにビットストリームを受信し、かつ、復号化して、そして、深さビデオ222が8または10ビットといったより低いビット深さであるようにする。特に、深さビデオ222は、低いビット深さのせいで、ビュー合成モジュール231による使用には適さないことがある。深さビデオ222およびマッピングパラメータ161は、逆マッピングモジュール221によって受信される。逆マッピングモジュール221は、示されるように、16ビットといった、より高いビット深さで、深さビデオ222を(より低いビット深さで)深さビデオ202に対してマッピングする。深さビデオ222は、損失の大きい符号化/復号化処理のせいで完全な複製(replication)ではないが、深さビデオ202に対応している。特に、逆マッピングモジュール221は、マッピングモジュール121によって実行される区分ごとの線形マッピングに関して、逆の区分ごとの線形マッピング(inverse piece-wise linear mapping)を実行する。示されるように、マッピングパラメータ161は、両方のコンテキストにおいて使用される。そうしたマッピングパラメータ161は、深さマップのいくつかの深さ範囲でより多くの情報を保持する一方で、他の深さ範囲でより多くの情報を失っている。そうした区分ごとの線形マッピングは、事実上、全ての深さの範囲で同じ量の情報を実質的に失う丸め技法または切り捨て技法と対比され得る。
Continuing to refer to FIG. 2, the depth decoding module 212 receives and decodes the bitstream to generate a
同様に、深さ復号化モジュール214は、深さビデオ124に対応する深さビデオ224を生成するために、深さビデオ224がより低いビット深さ(例えば、8または10ビット)であるように、ビットストリームを受信し、かつ、復号する。深さビデオ224およびマッピングパラメータ161は、逆マッピングモジュール223によって受信される。逆マッピングモジュールは、ここにおいて説明される区分ごとの逆線形マッピング(inverse piece-wise linear mapping)技法を使用して、より高いビット深さで深さビデオ224を深さビデオ204に対してマッピングするものである。さらに、他のビューが同様に処理される。例えば、深さ復号化モジュール216は、深さビデオ126に対応する深さビデオ226を生成するためにビットストリームを受信し、かつ、復号して、深さビデオ226がより低いビット深さにあるようにする。深さビデオ226およびマッピングパラメータ161は、区分ごとの逆線形マッピング技法を使用して、より高いビット深さで深さビデオ226を深さビデオ206にマッピングするために、逆マッピングモジュール225によって使用される。
Similarly, the depth decoding module 214 receives and decodes the bitstream to generate a depth video 224 corresponding to the
さらに、カメラパラメータ復号化モジュール218は、関連するビットストリームを受信し、かつ、ビュー合成モジュール231によって使用されるカメラアレイパラメータ151を復号する。そうした復号は、カメラアレイパラメータ151を忠実に再現する。例えば、ビュー合成モジュール231によって使用され、ビューを生成するために使用されるカメラを代表するパラメータを含んでいる。例えば、カメラアレイパラメータ151は、カメラ位置(例えば、x、y、z情報)、空間におけるカメラの配向(例えば、ヨー、ピッチ、ロール情報またはクォータニオン(quaternion)情報)、および、焦点距離、視野、Znear、Zfar、等のカメラ特性を含み得る。 Furthermore, the camera parameter decoding module 218 receives the associated bitstream and decodes the camera array parameters 151 used by the view synthesis module 231. Such decoding faithfully reproduces the camera array parameters 151, including, for example, parameters representative of the cameras used by the view synthesis module 231 to generate the views. For example, the camera array parameters 151 may include camera positions (e.g., x, y, z information), camera orientations in space (e.g., yaw, pitch, roll information or quaternion information), and camera properties such as focal length, field of view, Znear, Zfar, etc.
ビュー合成モジュール231は、カメラアレイパラメータ151およびヘッドマウントディスプレイ位置情報252、または、再生シーン内の所望のビューを表す他の情報を受信し、そして、ビュー合成モジュール231は、ビュー250を生成する。ビュー250は、ヘッドマウントディスプレイ251といったディスプレイを介したシーンの提示のための任意の適切なデータ構造を含み得る。ユーザは、ヘッドマウントディスプレイ251を装着し、そして、ユーザは、ヘッドマウントディスプレイ251を空間的に移動させることができる。ヘッドマウントディスプレイ251の位置および配向(orientation)に基づいて、ヘッドマウントディスプレイ位置情報252が、シーン内の所望の仮想ビュー(virtual view)を識別するために生成される。代替的に、仮想ビューが望まれる位置および方向(例えば、仮想ビューカメラまたはビューポート)は、ビュー250を生成するために、別のシステムまたはデバイスによって提供されてよい。ビュー合成モジュール231は、テクスチャビデオ201、203、205、深さビデオ202、204、206、カメラアレイパラメータ151、および、ヘッドマウントディスプレイ位置情報252(または、他の仮想ビューデータ)に基づいて、任意の適切な技術または技法を使用して、ビュー250を生成することができる。ビュー250が、次いで、シーン内のイマーシブビューア体験を提供するために、ユーザに対して表示される。 The view synthesis module 231 receives the camera array parameters 151 and head mounted display position information 252, or other information, that represents a desired view within the playback scene, and the view synthesis module 231 generates the view 250. The view 250 may include any suitable data structure for the presentation of a scene via a display, such as a head mounted display 251. A user wears the head mounted display 251, and the user can move the head mounted display 251 spatially. Based on the position and orientation of the head mounted display 251, head mounted display position information 252 is generated to identify a desired virtual view within the scene. Alternatively, the position and orientation at which the virtual view is desired (e.g., a virtual view camera or viewport) may be provided by another system or device to generate the view 250. The view synthesis module 231 can generate the view 250 using any suitable technology or technique based on the texture videos 201, 203, 205, the depth videos 202, 204, 206, the camera array parameters 151, and the head mounted display position information 252 (or other virtual view data). The view 250 is then displayed to the user to provide an immersive viewer experience within the scene.
図2に示めされるすクライアントシステムにおいては、圧縮された深さおよびテクスチャビューを含んでいるビットストリームが、復号される(例えば、デマルチプレックスされ、そして、復号される)。ビュー合成は、選択されたビュー位置および配向(例えば、ヘッドマウントディスプレイの動き、または、HMV位置情報によって示される他のビュー選択によって識別される)に基づいて実行され、復号されたテクスチャビデオ、および、復号され、逆ビットマッピングされた深さビデオを使用して、ディスプレイビューポートのビューを生成する。
例えば、復号された深さ10ビットのビューは、区分ごとの逆線形関数を使用して、16ビット表現(または、より高いビットの整数または浮動小数点表現)を再構成するために変換され得る。ビュー合成が、次いで、選択されたビュー位置および配向(例えば、ヘッドマウントディスプレイの動き、または、HMV位置情報によって示される他のビュー選択によって識別される)に基づいて、実行され得る。再構成された深さ16ビット表現データ(または、より高いビットも整数または浮動小数点表現)、並びに、ZnearおよびZfarパラメータを使用している。
いくつかの実施形態において、クライアントシステムは、逆マッピングおよびビュー合成動作を組み合わせることができ、そして、ビュー合成動作のために必要とされる場合にだけ、逆マッピング計算を行うことができる。
In the client system shown in Figure 2, a bitstream containing compressed depth and texture views is decoded (e.g., demultiplexed and decoded). View synthesis is performed based on a selected view position and orientation (e.g., identified by head mounted display movement or other view selection indicated by HMV position information) and uses the decoded texture video and the decoded, inverse bitmapped depth video to generate a view for the display viewport.
For example, the decoded 10-bit deep view may be converted to reconstruct a 16-bit representation (or a higher bit integer or floating point representation) using a piecewise inverse linear function. View synthesis may then be performed based on the selected view position and orientation (e.g., identified by head mounted display movement or other view selection indicated by HMV position information) using the reconstructed 16-bit deep representation data (or a higher bit integer or floating point representation) and the Znear and Zfar parameters.
In some embodiments, the client system may combine the inverse mapping and view synthesis operations and perform the inverse mapping calculations only when needed for the view synthesis operation.
説明されるように、マッピングモジュール121、123、125は、より高いビット深さの深度値から、より低いビット深さの深度値への区分ごとの線形マッピングを提供し、そして、逆マッピングモジュール221、223、225は、より低いビット深さの深度値から、より高いビット深さの深度値を提供するために、プロセスを逆転させる。これから、区分ごとの線形マッピング、および、区分ごとの逆線形マッピングのアプリケーションについて説明を向ける。一つの実施形態において、ラインセグメントエンドポイントのリストは、符号化システムによって選択され、そして、ビットストリームを介して送信される。いくつかの実施態様においては、N個のラインセグメントを表現するために、N+1個の(x,y)データのペア(pairs)が使用される。 As described, mapping modules 121, 123, 125 provide a piecewise linear mapping from higher bit depth values to lower bit depth values, and inverse mapping modules 221, 223, 225 reverse the process to provide higher bit depth values from lower bit depth values. We now turn to the application of piecewise linear mapping and piecewise inverse linear mapping. In one embodiment, a list of line segment endpoints is selected by the encoding system and transmitted via the bitstream. In some implementations, N+1 (x,y) data pairs are used to represent N line segments.
図3は、本開示の少なくともいくつかの実装に従って構成された、より高いビット深さの深度値とより低いビット深さの深度値との間の、一つの例示的な区分ごとの線形マッピング300を示す。図3の例において、区分ごとの線形マッピング300は、(x0,y0)、(x1,y1)、(x2,y2)、および(x3,y3)によって表される、3つのラインセグメント307、308、309を利用する。しかしながら、任意の数のラインセグメントが使用され得る。いくつかの実施形態においては、区分ごとの線形関数が使用される。区分ごとの線形関数は、デコーダが逆マッピング関数を実行するために比較的低い複雑性を有し、そして、信号化のために大量のメタデータを必要としないからである。いくつかの実施形態において、区分ごとの線形関数のラインセグメントの数は、デコーダの複雑性およびメタデータ信号のオーバーヘッドを制限するために、既定の数に制限されている。
FIG. 3 illustrates an exemplary piecewise
図示される例において、ラインセグメント307は、エンドポイント303(x0,y0)とエンドポイント304(x1,y1)との間のラインセグメントとして画定される。同様に、ラインセグメント308は、エンドポイント304(x1,y1)とエンドポイント305(x2,y2)との間のラインセグメントとして画定され、そして、ラインセグメント309は、エンドポイント305(x2,y2)とエンドポイント306(x3,y3)との間のラインセグメントとして画定されている。ここにおいて使用されるように、エンドポイントという用語は、ラインセグメントの終端を定義するポイントを示している。
In the illustrated example,
特に、区分ごとの線形マッピング300は、高ビット深度値(high bit-depth values)302と低ビット深度値(low bit-depth values)301の間でマッピングする。例えば、高ビット深度値302は、16ビット深度値であり、かつ、低ビット深度値301は、ここにおいて説明されるように、8ビットまたは10ビット深度値であり得る。そうした実施例において、深度ビュー(例えば、深さビデオ102、104、106のいずれか)の高ビット深度値302は、16ビットのビット深さ(bit-depth)を有し、そして、従って、0から65535(例えば、=2^16-1)までの利用可能な値の範囲を有する。深度ビューのそうした高ビット深度値302は、次いで、深度ビューの低いビット深度値301(例えば、深さビデオ122、124、126のいずれか)へフォワードマッピングされ、そうして、低ビット深度値301は、例えば、8ビット深さ、または、10ビット深さであり得る。8ビット深さのコンテキストにおいて、低ビット深度値301は、0から255(例えば、=2^8-1)の利用可能な範囲を有している。10ビット深さのコンテキストにおいて、低ビット深度値301は、0から1023(例えば、=2^10-1)の利用可能な範囲を有している。
In particular, the piecewise
さらに、少なくともエンドポイント304、305は、高ビット深度値302および低ビット深度値301のコンポーネントの最小値と最大値との間にある。例えば、0から65535までの高ビット深度値302の範囲は、区分ごとの線形マッピング300の水平すなわちx成分を画定し、そして、0から255または1023までの低ビット深度値301の範囲は、区分ごとの線形マッピング300の垂直すなわちy成分を画定し得る。エンドポイント303、304、305、306は、(0,0)と、(65535,255)または(65535,1023)との間にあり、包括的で、そうして、エンドポイント303は、(0,0)にあり、そして、エンドポイント306は、(65535,255)または(65535,1023)であり得るが、利用可能な範囲内の他の最終エンドポイントが定義され得る。次いで、エンドポイント304、305といった中間エンドポイントは、そうした最小エンドポイントと最大エンドポイントとの間にある。そうして、両方のエンドポイント304、305の水平すなわちx成分が、より高いビット深さ範囲の最小深度値(例えば、0)を超え、そして、両方のエンドポイント304、305の垂直すなわちy成分が、より低いビット深さ範囲の最小深度値(例えば、0)を超える。同様に、両方のエンドポイント304、305の水平すなわちx成分が、より高いビット深さ範囲の最大深度値(例えば、65535)よりも小さく、両方のエンドポイント304、305の垂直すなわちy成分が、より低いビット深さ範囲の最大深度値(例えば、255または1023)よりも小さい。ここにおいて使用されるように、ポイントの水平成分という用語は、高ビット深度値302に沿った座標に対応し、そして、ポイントの垂直成分という用語は、低ビット深度値301に沿った座標に対応している。
Furthermore, at least the
図示されるように、エンドポイント303、304はラインセグメント307を画定し、エンドポイント304、305はラインセグメント308を画定し、そして、エンドポイント305、306はラインセグメント309を画定している。そうして、ラインセグメント307、308はエンドポイント304を共有し、そして、ラインセグメント308、309はエンドポイント305を共有している。説明されるように、ラインセグメント307は、ラインセグメント308よりも大きなスロープを有し、ラインセグメント308は、次に、ラインセグメント309よりも大きなスロープを有している。そうしたスロープは、エンドポイント303、304、305、306によって画定され、以下でさらに説明されるように、区分ごとの線形マッピング300を生成するために使用される深度ビュー内の深度値ピクセルカウントに応答して生成され得る。
As shown,
いくつかの実施形態において、順方向マッピング(forward mapping)は、ラインセグメント307、308、309のどれが、高ビット深度値302の特定の高ビット深度値に対応するかを決定することによって実行され、そして、次いで、ラインセグメントのエンドポイントに従って線形マッピングを適用することによって、マッピングされた低ビット深度値を決定する。例えば、高ビット深度値311に関して示されるように、高ビット深度値311がラインセグメント308内にあると判断される。次に、ラインセグメント308に基づく線形マッピングを用いて、高ビット深度値311を低ビット深度値312にマッピングする。すなわち、ラインセグメント308によって画定される線形関数を高ビット深度値311に適用することによって、高ビット深度値311が低ビット深度値312にマッピングされ、結果としての低ビット深度値312を決定する。
In some embodiments, forward mapping is performed by determining which of the
いくつかの実施形態においては、式(1)に従って、[xi,xi+1]の範囲のxに対して、高ビット深度値(例えば、16ビットx値)が、以下のように、低ビット深度値(例えば、8ビットまたは10ビット値)にマッピングされる。
y=round(yi+(x-xi)/(xi+1-xi))*(yi+1-yi)) (1)
ここで、xは[xi,xi+1]の範囲内にあり(xはビット深さの高い値)、[xi,xi+1]と
[yi,yi+1]の間に線形マッピングが提供される(範囲内にあるラインセグメントを高ビット深度値、x、と画定している)。例えば、高ビット深度値311(x)について、低ビット深度値312(y)は、y=y2+((x-x1)/(x2-x1))*(y2-y1)として画定され得る。
In some embodiments, for x in the range [x i , x i+1 ], high bit-depth values (e.g., 16-bit x values) are mapped to low bit-depth values (e.g., 8-bit or 10-bit values) according to equation (1) as follows:
y=round(y i +(xx i )/(x i+1 -x i ))*(y i+1 -y i )) (1)
Here, x is in the range [x i ,x i+1 ] (x is the high value of the bit depth), and [x i ,x i+1 ] and
A linear mapping is provided between [ yi , yi +1 ] (defining the line segment that falls within the range as the high bit-depth value, x). For example, for a high bit-depth value 311(x), a low bit-depth value 312(y) may be defined as y= y2 +(( xx1 )/( x2 - x1 ))*( y2 - y1 ).
逆マッピング(inverse mapping)は、復号化システム200において、同様の技法を用いて実行される。いくつかの実施形態において、逆マッピングは、ラインセグメント307、308、309のどれが低ビット深度値302の特定の低ビット深度値に対応するかを決定することによって実行され、次いで、ラインセグメントのエンドポイントに従って線形マッピング(例えば、逆線形マッピング)を適用することによって、マッピングされた高ビット深度値を決定する。例えば、低ビット深度値312に関して示されるように、低ビット深度値312がラインセグメント308内にあると判断される。次に、ラインセグメント308に基づいた線形マッピングを用いて、ラインセグメント308によって画定された線形関数を低ビット深度値312に当てはめて、結果としての高ビット深度値311を決定することによって、低ビット深度値312が高ビット深度値311にマッピングされる。
Inverse mapping is performed in the
いくつかの実施形態においては、式(1)の逆数に従って、[yi,yi+1]の範囲内のyに対して、低ビット深度値(例えば、8ビットまたは10ビットy値)を高ビット深度値(例えば、16ビット値)にマッピングする。例えば、低ビット深度値312(y)に対して、高ビット深度値311(x)は、x=x2+((y-y1)/y2-y1))*(x2-x1)として決定され得る。 In some embodiments, for y in the range [ yi , yi+1 ], low bit-depth values (e.g., 8-bit or 10-bit y values) are mapped to high bit-depth values (e.g., 16-bit values) according to the inverse of equation (1). For example, for a low bit-depth value 312(y), the high bit-depth value 311(x) may be determined as x= x2 +(( yy1 )/ y2 - y1 ))*( x2 - x1 ).
そうしたマッピング及び/又は逆マッピングは、任意の適切な計算技術または技法を用いて実施することができる。いくつかの実施形態において、ルックアップテーブルは、順方向または逆マッピング関数のいずれか又は両方について、マッピングテーブルを使用して特定の入力値(x値)を特定の出力値(y値)にマッピングするために使用され得る。いくつかの実施形態においては、丸め(rounding)の代わりに切り捨て(truncation)が上記の式において使用されてよい。クリッピングも、または、例えば、許容範囲外の値を回避するために、上記の式に適用されてよい。 Such mapping and/or inverse mapping may be performed using any suitable computational technique or technique. In some embodiments, a lookup table may be used for either or both of the forward or inverse mapping functions to map a particular input value (x value) to a particular output value (y value) using the mapping table. In some embodiments, truncation may be used in the above equations instead of rounding. Clipping may also be applied to the above equations, for example, to avoid values outside of an acceptable range.
特に、高ビット深度値311から低ビット深度値312へのマッピングの結果として、高ビット深度値311は精度を失うことが予想される。しかしながら、ラインセグメント307、308、309を有する区分ごとの線形マッピング300を適用することによって、精度の損失は、深度値302にわたり有利に変化させることができる。例えば、より大きなスロープを有するラインセグメント307、308、309は、より小さなスロープを有するラインセグメント307、308、309よりも精度を失わない。より小さなスロープラインセグメントと比較して、より大きなスロープラインセグメントはマッピングする相対的により低いビット深度値(またはビン)を有しているせいである。これは、ラインセグメント307、309に関して視覚的に見ることができる。ラインセグメント307は、より大きなスロープを有し、その結果、x0からx1までの範囲の高ビット深度値は、y0からy1までの範囲の対応する低ビット深度値の相対的に高い数を有する。これは、x2からx3までの高ビット深度値(例えば、x1-x0=x3-x2)の等しいサイズをカバーするが、変換するy2からy3までのより小さい低ビット深度値(例えば、y1-y0>y3-y2)を有する、ラインセグメント309と対照的である。従って、ラインセグメント309に関するマッピングは、低いビット深度値から高いビット深度値への逆マッピングに反映されるように、同数の高いビット深度値をより少ない数の低いビット深度値に変換し、精度の損失をより大きくする。そうしたラインセグメントは、深度ビューが、深さの大きいオブジェクトと比較して、深さの小さいオブジェクト及び/又はディテール(例えば、エッジ)が多い場合に有利であり得る。それによって、より詳細が、区分ごとの線形マッピングを採用することによって、深度ビューにおいて保持される。最適なマッピングおよび精度損失のためにラインセグメント307、308、309を画定するエンドポイント303、304、305、306の選択が、以下でさらに説明される。単に説明を明確にするために、x次元における等間隔のエンドポイントが示されていることに留意する。そうしたエンドポイント間隔は、実際には制約として適用されない。
In particular, it is expected that the high bit-
例えば、図3に示す実施形態において、ラインセグメント307のスロープは、ラインセグメント309のスロープより大きい。いくつかの実施形態において、そうしたスロープの差異は、x2...x3の範囲内よりもx0...x1の範囲内がより多くのサンプル(例えば、ピクセルサンプル)を示しているヒストグラムに応答して(対応する深さ画像(depth image)について)生成されてもよい。すなわち、第2範囲と比較して第1範囲内のより多くのサンプル数に応答して、第1範囲の第1スロープは、第2範囲の第2スロープよりも大きい。
3 , the slope of
図1および図2を参照すると、図3に関して説明された技法に従って、マッピングモジュール121、123、125は、深さビデオ102、104、106(より高いビット深さ)を深さビデオ122、124、126(より低いビット深さ)にマッピングし、そして、逆マッピングモジュール221、223、225は、深さビデオ222、224、226(より低いビット深さ)を深さビデオ202、204、206(より高いビット深さ)にマッピングする。例えば、各深度値について、高ビット深度値311および低ビット深度値312に関して説明されたように、マッピングが実行される。
1 and 2, according to the technique described with respect to FIG. 3, mapping modules 121, 123, 125 map depth videos 102, 104, 106 (higher bit depth) to
図4は、本開示の少なくともいくつかの実施態様に従って構成された、区分ごとの線形マッピングを使用して、深度ビューのビット深さを低減するための一つの例示的なプロセス400を示している。プロセス400は、例えば、符号化システム100によって実行される、例示されるような1つ以上の動作401~406を含んでよい。プロセス400は、動作401で開始し、そこでは、ビット深さの低減が開始される。ビット深さの低減は、例えば、深さビデオ102、104、106(より高いビット深さ)を深さビデオ122、124、126(より低いビット深さ)にマッピングする、マッピングモジュール121、123、125によって実行され得る。
FIG. 4 illustrates one
処理は、動作402において継続し、そこでは、高い又はより高い(より低いターゲットビット深さと比較して)ビット深さにおける深度ビューが受信される。深度ビューは、その各ピクセルに対して深度値(より高いビット深さ)を有する深さフレームまたは画像といった任意の適切なデータ構造を有し得る。いくつかの実施形態において、深度ビューは、各々16ビットのビット深さを有する深度値を有している。そうしたコンテキストにおいて、各深度値は、説明されるように、0から65535までの範囲であり得る。例えば、動作402において、高ビット深さでの深度値を有する第1深度ビューは、高ビット深さが最小値(例えば、0)から最大値(例えば、65535)までの利用可能な値の大きな範囲を有するように受信され得る。
Processing continues at
処理は、動作403において継続し、そこでは、より高いビット深さでの深度ビューをより低いビット深さにマッピングするためにラインセグメントエンドポイントが獲得され、そうして、ラインセグメントエンドポイントは、ラインセグメント307、308、309といったマッピングのためのラインセグメントを画定する。そうしたラインセグメントエンドポイントおよびラインセグメントは、図5および図6に関して説明したものといった任意の適切な技術または技法を使用して、獲得または生成され得る。いくつかの実施形態において、ラインセグメントは、1つ以上の深度ビュー(例えば、深さフレーム)の少なくとも一部を使用して深度値範囲当たりの深さピクセル値カウントのヒストグラムを生成することにより、および、マッピングおよび逆マッピングに対応する再構成誤差を最小化するために、第1および第2ラインセグメントを含むマッピングのための複数のラインセグメントを再帰的に生成することによって決定される。
Processing continues at
処理は、動作404において継続し、高い又はより高いビット深さ深度ビューは、低減されたビット深さを有する深度ビューを生成するために、低ビット深さにマッピングされる。より低いビット深さは、8ビットまたは10ビットといった任意のビット深さであってよい。そうしたマッピングは、動作403で獲得されるラインセグメントエンドポイントに従って実行される。例えば、より高いビット深さ深度ビューに対する各ピクセルについて、ピクセルの区分ごとの線形マッピングが属する係る複数のラインセグメントのうちどのラインセグメントが関係するかについて決定がなされ得る(例えば、より高いビット深度値がラインセグメントのビット深度値の範囲内にあるように)。次いで、適切なラインセグメントに従った線形マッピングが、より高いビット深度値をより低いビット深度値にマッピングするために提供される。そうした処理は、8ビット(0から255の範囲)または10ビット(0から1023の範囲)という、より低いビット深さ深度ビュー(例えば、深さビデオ122、124、126のうち1つ)を生成するために、より高いビット深さ深度ビュー(例えば、深さビデオ102、104、106のうち1つ)の全てのピクセルに対して直列に又は並列して繰り返えされ得る。
Processing continues at
例えば、図3を参照すると、より高い深度ビューの深度値は、他の深度ビューを生成するために、より低いビット深度値が、より高いビット深さよりも小さいより低いビット深さでの深度値にマッピングされてよい。そうして、より低いビット深さは、最小値(例えば、0)から最大値(例えば、255または1,023)までの利用可能な値の範囲を有しており、
第1ラインセグメントエンドポイントの水平成分(例えば、x1)及び垂直成分(例えば、y1)が、より高いビット深さの最小深度値(例えば、0)及びより低いビット深さの最小深度値(例えば、0)を、それぞれに、超えるように、マッピングのためのラインセグメントを画定するために、第1ラインセグメントエンドポイント(例えば、(x1,y1))および第2ラインセグメントエンドポイント(例えば、(x2,y2))を使用している。さらに、第2ラインセグメントエンドポイントの水平成分(例えば、x2)および垂直成分(例えば、y2)は、それぞれに、より高いビット深さの最大深度値(例えば、65535)及びより低いビット深さの最大深度値(例えば、255または1023)よりも小さい。
For example, referring to FIG. 3, the depth values of a higher depth view may be mapped to depth values at a lower bit depth that is less than the higher bit depth to generate another depth view. Thus, the lower bit depth has a range of available values from a minimum value (e.g., 0) to a maximum value (e.g., 255 or 1,023),
A first line segment endpoint (e.g., (x1, y1 )) and a second line segment endpoint (e.g., (x2, y2 )) are used to define a line segment for mapping such that the horizontal component (e.g., x1 ) and vertical component (e.g., y1 ) of the first line segment endpoint exceed the minimum depth value (e.g., 0) of the higher bit depth and the minimum depth value (e.g., 0) of the lower bit depth, respectively. Furthermore, the horizontal component (e.g., x2 ) and vertical component (e.g., y2 ) of the second line segment endpoint are less than the maximum depth value (e.g., 65535 ) of the higher bit depth and the maximum depth value (e.g., 255 or 1023) of the lower bit depth, respectively.
処理は、動作405において継続し、そこでは、より低いビット深さでの深度ビューが、標準コーデック及び/又はプロファイルを実装している標準エンコーダを使用して、符号化のために出力される。いくつかの実施形態において、より低いビット深さ深度ビューは、HEVCメインプロファイルエンコーダを使用して符号化されてよい。示されるように、プロセス400は、動作406で終了し得る。プロセス400は、任意の数の深度ビューに対して直列に又は並列的に実行され得る。そうした深度ビューは、深さフレーム、深さピクチャ、等としても特徴付けされ得る。ここにおいて説明されるように、そうした低減されたビット深さ深度ビューは、低減されたビット深さを処理することができるそうしたコーデックおよびプロファイルのおかげで、標準のコーデックおよびプロファイルを使用して符号化され得る。
Processing continues at
動作403に関して説明されるように、ラインセグメントエンドポイントは、より高いビット深さからより低いビット深さまでの区分ごとの線形マッピングを画定するために符号化システム100において生成され得る。そうしたラインセグメントエンドポイントは、マッピングにおいて使用され、そして、復号における使用のために復号化システム100に送信される。これから、順方向および逆の区分ごとの線形マッピングに使用するために、ラインセグメントおよびラインセグメントエンドポイントを生成すること説明を向ける。
As described with respect to
図5は、本開示の少なくともいくつかの実装に従って構成された、深度ビューにおける深度値のピクセルカウントに基づく、例示的な区分ごとの線形マッピング300の生成を示している。図5に示されるように、高ビット深度値302の範囲(例えば、0から65535まで)は、ヒストグラムビンといった複数のビン505へと分割することができる。12個のビン505に関して図示されているが、任意の数を使用することができる。深度ビューの特定の部分(例えば、深度ビュー102、104、106のうちの1つ以上の部分)について、そのピクセルは、その深度値に基づいてビン505のうち1つに割り当てられている。すなわち、対応する深度値の範囲に基づいて、ビン505それぞれについてピクセルカウントが生成される。そうしたピクセルカウントは、深度値ピクセルカウントを示すヒストグラム501を生成する。そうしたピクセルカウントは、次に、以下でさらに説明されるように、エンドポイントおよび対応するラインセグメントを生成するために使用される。
5 illustrates the generation of an example piecewise
図5に示されるように、ラインセグメント307は、スロープを有しており、そして、スロープは、ラインセグメント308に対応するビン503内のピクセルカウントよりも大きな値を有しているラインセグメント307に対応するビン502内のピクセルカウントに応答するラインセグメント308のスロープよりも大きい。同様に、セグメント3087は、スロープを有しており、そして、スロープは、ラインセグメント308に対応するビン504内のピクセルカウントよりも大きな値を有しているビン503内のピクセルカウントに応答するラインセグメント309のスロープよりも大きい。単に説明を明確にするために、等間隔のx次元のエンドポイントが示されていることに再び留意する。そうしたエンドポイント間隔は、実際に適用される制約ではないが、そうしたエンドポイント間隔が実装されてよい。
5,
特に、ラインセグメント307、308、309のスロープ、および、エンドポイント303、304、305、306の座標は、ヒストグラム501または同様のカウンティング技法によって生成されるように、対応するビン502、503、503のピクセルカウントに基づいて生成される。ヒストグラム501を生成するために使用される深度ビュー102、104、106の部分は、任意の適切な部分であってよい。一つの実施形態において、ヒストグラム501は、フレーム毎に生成される。いくつかの実施態様において、ヒストグラム501は、深度ビュー102、104、106のうち1つの画像のグループを使用して生成される。いくつかの実施態様において、ヒストグラム501は、単一フレーム又は複数フレームのエッジ領域だけに基づいて生成される。次に、対応するラインセグメント307、308、309およびエンドポイント303、304、305、306の座標が、マッピングおよび逆マッピングに使用され、座標は、ビットストリーム131で表現され、そして、送信される。
In particular, the slopes of the
図6は、本開示の少なくともいくつかの実装に従って構成された、高ビット深度値と低ビット深度値との間で深度ビューをマッピングおよび逆マッピングプするように、区分ごとの線形マッピングを定義するための一つの例示的なプロセス600を示す。プロセス600は、例えば、符号化システム100によって実行される、図示されるような1つ以上の動作601~606を含み得る。プロセス600は、動作601で開始し、そこでは、区分ごとの線形マッピング生成が開始される。例えば、マッピングパラメータ161を生成するためのマッピングパラメータ選択モジュール110によって、区分ごとの線形マッピングモデル生成が実行され得る。
FIG. 6 illustrates one
処理は、動作602において継続し、そこでは、マッピングのための深度ビューデータが獲得される。説明されるように、1つ以上の深さ方向102、104、106のうちの一部分は、区分ごとの線形マッピングを生成するために使用される。いくつかの実施態様においては、区分ごとの線形マッピングを決定するために、単一フレームが使用される。いくつかの実施態様においては、予め選択された(preselected)数のフレームが使用される。いくつかの実施形態においては、画像のグループ(例えば、符号化構造において画定されるようなもの)が使用される。いくつかの実施態様においては、単一フレームのエッジ部分、予め選択された数のフレーム、または、画像のグループに係るエッジ部分のみが使用される。さらに、各ビューについてのマッピングパラメータを生成するために、単一の深度ビューが使用され、ビュー間で共有されるマッピングパラメータを生成するために、複数のビューが使用され得る。
Processing continues at
上述のように、符号化システム100は、HEVC Main 10 Profileといった、10ビットのビデオエンコーダを使用することの制限のせいで、16ビット表現の代わりに10ビット表現の深さが使用されるように、使用される区分ごとの線形マッピングを選択する。HEVC Main Profileといった、8ビットビデオコーデックを使用するために、16ビットデータを8ビットデータに変換するように、同じ技法が使用され得る。さらに、説明される技術は、nがmを超えるように、nビットデータをmビットデータに変換するために使用され得る。16ビットデータを10ビットデータへ丸め、または、切り捨てるときには、深さデータのより粗い表現のせいで、ビュー合成の品質が低減される。符号化および復号化の追加的なステップは、ビデオ品質をさらに低減し得る。ビデオ品質は、オブジェクトのエッジ(つまり、オブジェクトと背景の間で深度値が変化するところ)でより厳しく影響を受ける。いくつかの実施形態において、符号化システム100における選択方法は、深さデータのビット表現の低減に伴うビデオ品質の低減を最小化しようと試みる。いくつかの実施形態においては、入力深度ビューにおける特定の深度値の発生頻度をカウントする、ヒストグラムが形成される。最も頻繁に発生する深度値の範囲は、より高いスロープを有するラインセグメントに割り当てられ、そして、最も少なく発生する深度値の範囲は、より低いスロープを有するラインセグメントに割り当てられる。説明されるように、より高いスロープは、表現のより大きな粒度が保持されることを意味し、そして、同様に、より低いスロープは、表現のより小さな粒度が保持されることを意味する。
As described above, the
一つの実施形態において、深度値のヒストグラムは、最初にエッジ検出アルゴリズムを適用することによって、画像内のエッジ領域に対して別々に決定される。ラインセグメントエンドポイントは、オブジェクトエッジで生じる最も頻繁に発生している深度値に対してより高いスロープを与えることを優先するように、エッジ深さヒストグラムに基づいて選択され得る。例えば、深さ画像(depth image)について、エッジ領域が決定され、そして、エッジ領域についてエッジヒストグラムが生成され得る。次いで、第2範囲に対してヒストグラムの第1範囲内により多くのエッジサンプルがあることに応答して、第1範囲の第1スロープは、第2範囲の第2スロープよりも大きい。いくつかの実施形態においては、深度ビューのエッジ領域が決定され、そして、深さピクセル値カウントのヒストグラムが、検出されたエッジ領域内のピクセルを使用して、かつ、エッジ領域外のピクセルを除外して生成される。そうしたヒストグラムは、次に、以下に説明されるように、区分ごとの線形マッピングのラインセグメントを決定するために使用され得る。 In one embodiment, a histogram of depth values is determined separately for edge regions in the image by first applying an edge detection algorithm. Line segment endpoints may be selected based on the edge depth histogram to give a preference to providing a higher slope for the most frequently occurring depth values that occur at object edges. For example, edge regions may be determined for a depth image and an edge histogram may be generated for the edge regions. Then, in response to there being more edge samples in a first range of the histogram relative to the second range, a first slope of the first range is greater than a second slope of the second range. In some embodiments, edge regions of the depth view are determined and a histogram of depth pixel value counts is generated using pixels within the detected edge regions and excluding pixels outside the edge regions. Such a histogram may then be used to determine line segments for a piecewise linear mapping as described below.
エンコーダは、任意の数のビューおよび画像のヒストグラムに基づいてラインセグメントを選択することができる。いくつかの実施形態においては、同じランダムアクセス期間内の符号化ビデオシーケンス全体 (例えば、I画像および多数の追加的な非I画像) について深さマッピングパラメータの同じセットを適用することは、マッピングパラメータの異なるセットを使用することによって引き起こされるフレーム間予測(inter-frame prediction)における非効率性の導入を回避するために有利である。この場合には、マッピングパラメータを選択するときに、ランダムアクセス期間内の全てのビューの全ての画像を使用することが有利であろう。一つの実施形態において、(全てのサンプルまたはエッジサンプルを使用する)前述のヒストグラムは、ランダムアクセス期間または画像のグループ内の全てのビューの全ての画像を使用して生成される。 The encoder may select line segments based on histograms of any number of views and images. In some embodiments, it is advantageous to apply the same set of depth mapping parameters for the entire encoded video sequence (e.g., an I-picture and a number of additional non-I-pictures) within the same random access period to avoid introducing inefficiencies in inter-frame prediction caused by using different sets of mapping parameters. In this case, it may be advantageous to use all images of all views within the random access period when selecting mapping parameters. In one embodiment, such histograms (using all samples or edge samples) are generated using all images of all views within the random access period or group of images.
処理は、動作603において継続し、そこでは、選択された深度ビューデータを使用して、初期の高深度値範囲にわたるピクセルカウントが決定される。そして、動作604において継続し、そこでは、再構成誤差を最小化するためにラインセグメントが(ラインセグメントエンドポイントによって画定されるように)再帰的に生成される。
Processing continues at
これから、最適な区分ごとの線形マッピングを再帰的に決定するための技法が説明される。そうした技法は、入力として、より高いビット深さマップ(例えば、16ビット)のヒストグラム(全(full)フレーム、多数のフレーム、または、エッジのみ、のいずれか)、および、マッピング内の所望の数のセグメントを使用する。そうしたヒストグラムおよび入力セグメントの数は、任意の適切な技術または技法を使用して決定され得る。実施形態において、所望の数のセグメントは、特定の既定値に制限されている。以下の技法は、動的プログラミングを使用して、区分ごとの線形マッピング(例えば、区分ごとの線形マッピング300)のセグメント(ラインセグメント307、308、309)のエンドポイント(例えば、エンドポイント303、304、305、306)について最適なx座標およびy座標を決定する。
Now, a technique for recursively determining an optimal piecewise linear mapping is described. Such a technique uses as input a histogram (either full frame, multiple frames, or edges only) of a higher bit depth map (e.g., 16-bit) and a desired number of segments in the mapping. Such a histogram and the number of input segments may be determined using any suitable technique or techniques. In an embodiment, the desired number of segments is limited to a certain default value. The following technique uses dynamic programming to determine optimal x and y coordinates for the endpoints (e.g.,
以下の説明においては、(i)区分ごとの線形マッピングの第1セグメントは(0,0)で始まり、(ii)セグメントsが(i,k)で始まる場合、以前のセグメントs-1は(i-1,q)で終わる。ここで、qはkまたはk-1である。そして、(iii)各セグメントのスロープ(出力ビンの数/入力ビンの数)は、1以下(<=1)であるように制限される。 In the following description, (i) the first segment of a piecewise linear mapping starts at (0,0), (ii) if a segment s starts at (i,k), then the previous segment s-1 ends at (i-1,q), where q is k or k-1, and (iii) the slope (number of output bins/number of input bins) of each segment is constrained to be less than or equal to 1 (<=1).
E(s,i,k)を、セグメント[0...s]を使用して入力ビン[0...i]が出力ビン[0...k]にマッピングするときの再構成誤差の最小値とする。S(s,i,k)は、s+1セグメントそれぞれのスタートポイントおよびエンドポイントからなる、対応する最適解(optimal solution)を示す。すなわち、Sは、再構成誤差の最小値に対応する区分ごとの線形マッピングである。最後のセグメント(インデックスs)は(i,k)で終了することに留意する。次に、このセグメントについて全ての可能な開始位置(p,q)は、pがi以下かつqがk以下(p<=i and q<=k)であるように考えられ得る。 Let E(s,i,k) be the minimum reconstruction error when input bins [0...i] are mapped to output bins [0...k] using segment [0...s]. Let S(s,i,k) denote the corresponding optimal solution consisting of the start and end points of each of the s+1 segments. That is, S is the piecewise linear mapping that corresponds to the minimum reconstruction error. Note that the last segment (index s) ends at (i,k). Then, all possible starting positions (p,q) for this segment can be considered such that p is less than or equal to i and q is less than or equal to k (p<=i and q<=k).
特に、この問題は、誤差E(s,i,k)を伴う最適解S(s,i,k)が特定の(p,q)において開始するセグメントsをもつように、最適な下部構造(substructure)特性を有している。さらに、最適解における以前のセグメントs-1は(m,n)において終了する。それは、(p-1,q)または(p-1,q-1)であり得る。次いで、最適解S(s,i,k)は、S'(s-1,m,n)で示される、(s-1,m,n)に対する最適解で構成されることを要し、セグメントsが後に続く誤差E'(s-1,m,n)を伴う。(S(s,i,k)がS'(s-1,m,n)を含まない場合には、S(s,i,k)におけるセグメント[0.s-1]がS'(s-1,m,n)で置き換えられ得る。これは、S'(s-1,m,n)が(s-1,m,n)に対する全ての解の中で可能な最小の誤差をもっているので、E(s,i,k)よりも低い全体誤差を伴う(s,i,k)に対する新たな解を与える。) In particular, this problem has the optimal substructure property such that the optimal solution S(s,i,k) with error E(s,i,k) has a segment s that starts at a particular (p,q). Furthermore, the previous segment s-1 in the optimal solution ends at (m,n), which can be (p-1,q) or (p-1,q-1). Then, the optimal solution S(s,i,k) needs to be constructed from the optimal solution for (s-1,m,n), denoted S'(s-1,m,n), with error E'(s-1,m,n) followed by segment s. (If S(s,i,k) does not contain S'(s-1,m,n), then the segment [0.s-1] in S(s,i,k) can be replaced with S'(s-1,m,n). This gives a new solution to (s,i,k) with an overall error lower than E(s,i,k), since S'(s-1,m,n) has the smallest possible error among all solutions to (s-1,m,n).)
セグメントsが、ビン[p.i]をビン[q.k]にマッピングするときの再構成誤差は、e(s,p,q,i,k)で示される。これは、式(2)に示されるように、E(s,i,k)について再帰的な解を与える。
E(s,i,k)
=minimum over all feasible(p,q) of {E(s-1,m,n)+e(s,p,q,i,k)} if s>0
=e(0,0,i,k) if s=0
(2)
ここで、(p,q)は現在セグメントsのスタートポイントであり、(m,n)は以前のセグメントs-1のエンドポイントである。mはp-1に等しく(m=p-1)、そして、nはqまたはq-1である。
The reconstruction error when segment s maps bin [pi] to bin [qk] is denoted as e(s,p,q,i,k), which gives a recursive solution for E(s,i,k), as shown in equation (2).
E(s,i,k)
=minimum over all feasible(p,q) of {E(s-1,m,n)+e(s,p,q,i,k)} if s>0
=e(0,0,i,k) if s=0
(2)
where (p,q) is the start point of the current segment s, and (m,n) is the end point of the previous segment s-1, where m is equal to p-1 (m=p-1), and n is either q or q-1.
実行可能な(p,q)は、次のように定義される。セグメントは、平坦(単一の出力ビン)または単調に増加すると仮定されている。以前の各セグメントは少なくとも1つの入力ビンをカバーする必要があるので、インデックスsを有する現在セグメントはs以上(>=s)で開始する必要がある。各セグメントは
1以下のスロープを有する必要がある。そして、各セグメントは少なくとも1つの入力ビンをカバーする必要がある。これらの制約は、式(3)に示されるように定義され得る。
S<=p<=i
0<=q<=k
k-q+1<=i-p+1(スロープ制約)
s<=i(各セグメントは少なくとも1つの入力ビンをカバーする必要がある)
(3)
A feasible (p,q) is defined as follows: The segments are assumed to be flat (single output bin) or monotonically increasing. Each previous segment must cover at least one input bin, so the current segment with index s must start at or above s (>=s). Each segment must have a slope less than or equal to 1. And each segment must cover at least one input bin. These constraints may be defined as shown in equation (3).
S<=p<=i
0<=q<=k
k-q+1<=i-p+1 (slope constraint)
s<=i (each segment must cover at least one input bin)
(3)
セグメントsがビン[p..i]をビン[q..k]にマッピングするときの誤差関数e(s,p,q,i,k)は次のように定義される。最初に(first)式(4)で与えられる定義を用いて、入力ビンを出力ビンに均一にマッピングする。
Let I=i-p+1 =number of input bins
Let J=k-q+1 =number of output bins
Let f=floor(I/J)
Let r=I-f*J
(4)
The error function e(s,p,q,i,k) for a segment s mapping bins [p..i] to bins [q..k] is defined as: First, we uniformly map the input bins to the output bins using the definition given in equation (4).
Let I=i-p+1 =number of input bins
Let J=k-q+1 =number of output bins
Let f = floor(I/J)
Let r=If*J
(4)
次いで、最初のr出力ビンには、それぞれf+1の入力ビンが割り当てられる。1番目(first)に対して[0..f]、2番目(second)に対して[f+1,2f+1]、等。残りのJ-r出力ビンには、それぞれf入力ビンが割り当てられる。 The first r output bins are then each assigned f+1 input bins: [0..f] for first, [f+1,2f+1] for second, etc. The remaining J-r output bins are each assigned f input bins.
次に、誤差モデルが以下のように提供される。誤差モデル:各入力ビンスパン(input bin span)を範囲Dにする。入力ビンi内でカウントされたピクセルの真の値は[(i-1)D..iD]にわたり均一に分布していると仮定され得る。次に、K入力ビンを1つの出力ビンにマッピングすると仮定する。次いで、逆マッピングは、これらの入力ビンのKDサイズの範囲の中心の値にピクセルを再構成する。2乗誤差seは、そこで、以下の式(5)によって提供される擬似符号(Pseudo-Code)に示されるように与えられ得る。 The error model is then provided as follows: Error Model: Let each input bin span be in range D. The true values of pixels counted in input bin i may be assumed to be uniformly distributed over [(i-1)D..iD]. Next, assume that we map K input bins to one output bin. The inverse mapping then reconstructs the pixels to the values at the center of the KD-sized range of these input bins. The squared error se may then be given as shown in the Pseudo-Code provided by Equation (5) below.
Kが偶数である場合:tはインターバル(interval)の中心からのビン距離を表す。例えば、K=6、t={2,1,0,0,1,2}である。
se=integral(over 0..D)1/D.(tD+x)^2dx
=t*t*D*D+t*D*D+D*D/3
For K=1:
se=2integral(over 0 to D/2)1/D.x^2dx=D*D/12
Kが奇数であり、1より大きい場合:tはインターバルの中心からのビン距離を表す。例えば、K=7、t={3,2,1,0,1,2,3}である。
For t not equal to 0:
se=integral(over 0..D)1/D.((t-0.5)D+x)^2dx
=(t-0.5)^2*D*D+(t-0.5)*D*D+D*D/3
Total squared error for the output bin=sum_{over t}(histogram value*se(t))
単純化のため、Dは1に設定され得る、D=1
(5)
If K is even: t represents the bin distance from the center of the interval, e.g., K=6, t={2,1,0,0,1,2}.
se=integral(over 0..D)1/D.(tD+x)^2dx
=t*t*D*D+t*D*D+D*D/3
For K=1:
se=2integral(over 0 to D/2)1/Dx^2dx=D*D/12
If K is odd and greater than 1: t represents the bin distance from the center of the interval, e.g., K=7, t={3,2,1,0,1,2,3}.
For t not equal to 0:
se=integral(over 0..D)1/D.((t-0.5)D+x)^2dx
=(t-0.5)^2*D*D+(t-0.5)*D*D+D*D/3
Total squared error for the output bin=sum_{over t}(histogram value*se(t))
For simplicity, D can be set to 1, D=1
(5)
現在セグメントが、そのy座標(出力ビン)が以前のセグメントのエンドポイントのy座標に一致するスタートポイントを有する場合に、問題が生じ得ることに留意する。このことは、以前のセグメントだけが使用される場合よりも多くの入力ビンが同じ出力ビンにマッピングされることを生じさせ、以前のセグメントの再構成誤差に影響する。1つの解決策は、この追加的な再構成誤差を現在セグメントに帰属させることである。別の解決策は、この状況を許容しないことであり、そうして、現在セグメントは新しい出力ビンでのみ開始できる。最適化にはコストがかかる可能性がある。 Note that a problem can arise if the current segment has a start point whose y coordinate (output bin) matches the y coordinate of the endpoint of the previous segment. This causes more input bins to be mapped to the same output bin than if only the previous segment was used, affecting the reconstruction error of the previous segment. One solution is to attribute this additional reconstruction error to the current segment. Another solution is to not allow this situation, so that the current segment can only start in the new output bin. The optimization can be costly.
そうした再帰的な技法を使用して、ラインセグメントエンドポイントは、入力ヒストグラムデータおよび多数の選択されたラインセグメントに基づいて生成される。 Using such a recursive technique, line segment endpoints are generated based on the input histogram data and a number of selected line segments.
処理は、動作605において継続し、そこでは、生成されたラインセグメントエンドポイントは、マッピングモジュール121、123、125に関して説明された順方向マッピングにおける使用のため、そして、ビットストリーム131への符号化のため、そして、最終的には、逆方向マッピングモジュール221、223、225に関して説明されたように復号化システム200による使用のために、出力される。そして、終了動作606である。説明は、これから、復号処理におけるそうしたラインセグメントエンドポイントの使用に向けられる。
Processing continues at
図7は、本開示の少なくともいくつかの実装に従って構成された、区分ごとの線形マッピングを使用して、深度ビューのビット深さを増加させるための一つの例示的なプロセス700を示す。プロセス700は、例えば、復号化システム200によって実行される、例示されるような1つ以上の動作701~706を含んでもい。プロセス700は、動作701で開始し、そこでは、ビット深さの増加が開始される。ビット深さの増加は、例えば、深さビデオ222、224、226(より低いビット深さ)を深さビデオ202、204、206(より高いビット深さ)にマッピングする、マッピングモジュール221、223、225によって実行され得る。
FIG. 7 illustrates one
処理は、動作702において継続し、そこでは、深度ビューが、(より高いターゲットビット深さに対して)低い又はより低いビット深さにおいて受信され、そして、復号される。深度ビューは、その各ピクセルに対して(より低いビット深さでの)深度値を有する深さフレームまたは画像といった、任意の適切なデータ構造を有し得る。いくつかの実施形態において、深度ビューは、それぞれ0から255までの範囲における8ビットのビット深さを伴う深度値を有している。いくつかの実施形態において、深度ビューは、それぞれ0から255までの範囲における10ビットのビット深さを伴う深度値を有している。そうしたコンテキストにおいて、各深度値は、0から1023までの範囲であってよい。例えば、動作702においては、低ビット深さでの深度値を有する第1深度ビューが受信され得る。そうして、低ビット深さは、最小値(例えば、0)から最大値(例えば、255または1023)までの利用可能な値の大きな範囲を有する。
Processing continues at
処理は、動作703において継続し、そこでは、ラインセグメントエンドポイントが、ラインセグメント307、308、309といったマッピングのためのラインセグメントを規定するように、より低いビット深さでの深度ビューをより高いビット深さにマッピングするために、ラインセグメントエンドポイントが復号される。そうしたラインセグメントエンドポイントおよびラインセグメントは、図2に関して説明したような任意の適切な技術または技法を用いて復号され得る。例えば、ラインセグメントエンドポイントは、メタデータ復号化モジュール217によって、ビットストリーム131から逆多重化された(demultiplexed)ビットストリームの一部から復号され得る。説明されるように、それによって画定されるラインセグメントエンドポイントおよびラインセグメントは、深度値を増加させるために使用される逆マッピングにおいて、より高いビット深さへのより低いビット深さを最小化することを求めることができる。
Processing continues at
処理は、動作704において継続し、そこでは、低ビット深さ深度ビューまたはより低いビット深さ深度ビューは、増加されたビット深さを有する深度ビューを生成するために、より高いビット深さ深度ビューにマッピングされる。より高いビット深さは、16ビットといった任意のビット深さであってよい。そうしたマッピングは、動作703で復号されたラインセグメントエンドポイントに従って実行される。例えば、より低いビット深さ深度ビューの各ピクセルに対して、ピクセルを区分ごとに線形マッピングする複数のラインセグメントのうちどのラインセグメントが関係するかについて決定がなされ得る(例えば、より低いビット深度値がラインセグメントのビット深度値の範囲内にあるように)。次いで、関連するラインセグメントに従った線形マッピングが、より低いビット深度値をより高いビット深度値にマッピングするために提供される。そうした処理は、8ビット(0から255mでの範囲)または10ビット(0から1023までの範囲)といった、より高いビット深さ深度ビュー(例えば、深さビデオ202、204、206のうち1つ)を生成するために、より低いビット深さ深度ビュー(例えば、深さビデオ222、224、226のうち1つ)の全てのピクセルについて、直列または並列に繰り返えされ得る。
Processing continues at
例えば、図3を参照すると、深度ビューの深度値は、深度ビューを生成するために、より低いビット深さよりも大きい、より高いビット深さにおける深度値にマッピングされてよく、そうして、より高いビット深さは、最小値(例えば、0)から最大値(例えば、65535)までの値の利用可能な範囲を有する。第1ラインセグメントエンドポイント(例えば、(x1,y1))および第2ラインセグメントエンドポイント(例えば、(x2,y2))を使用して、第1ラインセグメントエンドポイントの水平成分(例えば、x1)および垂直成分(例えば、y1)が、より高いビット深さの最小深度値(例えば、0)およびより低いビット深さの最小深度値(例えば、0)を、それぞれに、超えるように、マッピングのためのラインセグメントを定義する。さらに、第2ラインセグメントエンドポイントの水平成分(例えば、x2)および垂直成分(例えば、y2)は、より高いビット深さの最大深度値(例えば、65535)およびより低いビット深さの最大深度値(例えば、255または1023)よりも、それぞれに、小さい。 3, the depth values of a depth view may be mapped to depth values at a higher bit depth that is greater than the lower bit depth to generate a depth view, such that the higher bit depth has an available range of values from a minimum value (e.g., 0) to a maximum value (e.g., 65535). A first line segment end point (e.g., ( x1 , y1 )) and a second line segment end point (e.g., ( x2 , y2 )) are used to define a line segment for the mapping, such that the horizontal component (e.g., x1 ) and vertical component (e.g., y1 ) of the first line segment end point exceed the minimum depth value (e.g., 0) of the higher bit depth and the minimum depth value (e.g., 0) of the lower bit depth, respectively. Further, the horizontal component (e.g., x2 ) and vertical component (e.g., y2 ) of the second line segment end point are less than the maximum depth value of the higher bit depth (e.g., 65535) and the maximum depth value of the lower bit depth (e.g., 255 or 1023), respectively.
処理は、動作705において継続し、そこでは、ここにおいて説明されるように、ビュー合成処理のために、より高いビット深さでの深度ビューが出力される。いくつかの実施形態においては、ビュー250を生成するために、より高いビット深さ深度ビューが使用され得る。それは、また、対応するテクスチャビュー、並びに、他の深さおよびテクスチャビューのペアに基づいて生成される。示されるように、プロセス700は、動作706で終了し得る。プロセス700は、任意の数の深度ビューに対して直列または並列に実行されてよい。そうした深度ビューは、また、深さフレーム、深さピクチャ等、としても特徴付けされ得る。ここにおいて説明されるように、そうしたビット深さの増加したビューは、ビュー合成のコンテキストにおいて、好適であり、かつ、改善された性能を提供することができる。
Processing continues at
図1および図2を参照して、これから、カメラパラメータ符号化モジュール118およびカメラパラメータ復号化モジュール218を介した、カメラアレイパラメータ151の符号化および復号化へ、それぞれに、説明が移る。そうした符号化されたカメラアレイパラメータは、カメラ情報SEIメッセージを使用して、符号化システム100と復号化システム200との間で送信され得る。いくつかの実施態様において、カメラパラメータを記述するメタデータ、現在.jsonファイル内にあり、かつ、追加情報であるメタデータを含んでいるもの、は、また、同一または別のSEIメッセージにおいても搬送され得る。いくつかの実施形態においては、深さマッピングパラメータがカメラパラメータよりも頻繁に変化し得るので、これらのパラメータを別個のSEIメッセージに含めることが有利である。一つの実施形態において、3DoFplusのカメラ情報SEIメッセージは、.jsonファイルよりもコンパクトにデータを表現し、データ送信のためのビットレート(bitrate)を節約している。各カメラについて、SEIメッセージは、(x、y、z)位置情報および(ヨー、ピッチ、ロール、または、クォータニオンパラメータに基づく)配向情報を含み得る。一つの実施形態において、yaw_pitch_rollフラグは、(yaw,pitch,roll)情報が送信されるように要求されているか否か、または、それら全てがデフォルト値の0を有するか、を示す。(x,y,z)パラメータについて、典型的には、正規(regular)のカメラ間隔を有する。いくつかの実施形態において、ビットレートの節約は、x、y、およびzそれぞれについて、信号化された位置の粒度を信号化することによって達成され得る。例えば、x、y、およびzでの間隔値が、ビットレートを節約するために、カメラ位置に対して提供され得る。
1 and 2, the description now turns to the encoding and decoding of the camera array parameters 151 via the camera parameter encoding module 118 and the camera parameter decoding module 218, respectively. Such encoded camera array parameters may be transmitted between the
さらに、ここにおいて説明されるビデオは、全方向(omnidirectional)コンテンツまたは通常視点(normal perspective)コンテンツを含み得る。いくつかの実施形態において、カメラ情報SEIメッセージは、どちらが使用されるかを示すフラグを含む。例えば、カメラ情報SEIメッセージは、全方向コンテンツまたは通常視点コンテンツを示すフラグを含み得る。さらに、いくつかの実施態様において、マルチカメラのイマーシブメディアシステムにおける全てのカメラは、同じパラメータを有する。パラメータは、視野、および、Znear(カメラによって達成可能な最小の物理的深さ)、そして、Zfar(カメラによって達成可能な最大の物理的深さ)を含んでいる。いくつかの実施形態においては、これらのパラメータの共通値を示すためのフラグを送信することによって信号化オーバーヘッドが低減され、全てのビューに対して信号化され得る。または、それらのパラメータが各ビューに対して明示的に信号化される場合である。例えば、カメラ情報SEIメッセージは、全てのビュー間で共通のカメラパラメータ、または、異なるカメラパラメータを示すフラグを含み得る。前者の例では、対応するカメラパラメータの単一セットが提供され、そして、後者の例では、カメラパラメータの複数セットが提供される。カメラのセットがカメラパラメータを共有する例では、カメラパラメータのユニークなセットだけが提供され得る。そして、SEIメッセージは、カメラパラメータの冗長なセットが送信されないように、どのビューがカメラパラメータのどのセットに対応するかについてのインジケータを含み得る。 Additionally, the videos described herein may include omnidirectional or normal perspective content. In some embodiments, the Camera Info SEI message includes a flag indicating which is used. For example, the Camera Info SEI message may include a flag indicating omnidirectional or normal perspective content. Additionally, in some implementations, all cameras in a multi-camera immersive media system have the same parameters. The parameters include field of view, Znear (the minimum physical depth achievable by the camera), and Zfar (the maximum physical depth achievable by the camera). In some embodiments, signaling overhead is reduced by sending flags to indicate common values of these parameters, which may be signaled for all views, or where the parameters are explicitly signaled for each view. For example, the Camera Info SEI message may include flags indicating common or different camera parameters among all views. In the former example, a single set of corresponding camera parameters is provided, and in the latter example, multiple sets of camera parameters are provided. In examples where a set of cameras share camera parameters, only a unique set of camera parameters may be provided. And the SEI message may include an indicator as to which view corresponds to which set of camera parameters so that redundant sets of camera parameters are not sent.
図8は、本開示の少なくともいくつかの実装に従って構成された、コード化のための一つの例示的なカメラアレイ810および対応するカメラパラメータ800を示す。例えば、シーンのベースビュー141、選択されたビュー142、および、必要であれば、他のビューを獲得するために、カメラアレイ810が使用され得る。つまり、カメラアレイ810は、イマーシブビデオ生成またはキャプチャのために使用され得る。図8の例において、カメラアレイ810は、カメラC1-C3が第1列(row)にあり、かつ、カメラC4-C6が第2列にあるように、グリッドパターンにおける6つのカメラC1-C6を含んでいる。しかしながら、カメラアレイ810は、任意の間隔レイアウトで任意の数のカメラを有してよい。一つの実施形態において、カメラアレイ810は、カメラの単一の列を含んでいる。さらに、カメラアレイ810は、カメラC1-C6がx-y平面において全て整列されるように示されている。しかしながら、カメラアレイ810のカメラは、任意の方法で配置されてよい。
FIG. 8 illustrates one
カメラC1-C6それぞれは、対応するカメラパラメータ811、812、813、814、815、816を、それぞれに、有してい。図示されるように、カメラパラメータ811は、カメラC1の位置、カメラC1の配向(orientation)、および、カメラC1の撮像パラメータ(imaging parameter)を含み得る。示されるように、位置パラメータは、カメラC1の座標(x1、y1、z1)を含む。配向パラメータは、ロール、ピッチ、ヨーの値(r1、p1、yaw1)、または、カメラC1の配向を定義するクォータニオン(quaternion)パラメータを含む。カメラC1に関して示されるように、カメラC1-C6それぞれは、3D空間全体にわたり位置決めされ、かつ、配向されてよく、6-DOF運動835として特徴付けられる位置決め及び配向である。これは、カメラC1-C6それぞれが、並進:前/後(例えば、z方向)、上/下(例えば、y方向)、右/左(例えば、x方向)、および、回転:ヨー(例えば、y軸周りの角度)、ロール(例えば、x軸周りの角度)、ピッチ(例えば、z軸周りの角度)、で移動し得ることを示している。撮像パラメータは、投影モード(PM1)、焦点距離(FL1)、視野(FOV1)、Znear値(ZN1)、および、Zfar値(ZF1)のうちの1つ以上を含む。例えば、投影モードは、カメラんいついて全方向コンテンツ、通常視点コンテンツ、または直交コンテンツのうち1つを示し得る。すなわち、投影モードは、全方向投影モード、通常視点投影モード、または正投影(orthographic projection)モードのうち1つを示し得る。
Each of the cameras C1-C6 has corresponding
同様に、カメラパラメータ812、813、814、815、816は、カメラC2-C6それぞれについて、同様の位置、配向、および撮像パラメータを、それぞれに、含んでいる。特に、カメラアレイパラメータ151によって表されるように、そうしたカメラパラメータ811、812、813、814、815、816、または、カメラアレイパラメータ151によって表されるようなその一部は、ビットストリーム131へと符号化され、そして、ビュー合成における使用のために復号化システム200によって復号される。ここにおいて説明される技法は、カメラアレイ810のカメラパラメータ812、813、814、815、816の効率的なコード化を提供する。
Similarly,
カメラC1に関して示されるように、システム110は、6-DOF運動135として特徴付けられる動きで3D空間全体にわたり移動し得る。これは、システム110が、並進:前/後(例えば、x方向)、上/下(例えば、y方向)、右/左(例えば、z方向)、回転:ヨー(例えば、z軸周りの角度α)、ロール(例えば、y軸周りの角度β)、ピッチ(例えば、x軸周りの角度γ)で、移動し得ることを示す。理解されるように、VRフレームといった3Dコンテンツは、システム110のユーザの推定視線に基づいて(例えば、x軸の前方方向に沿って)生成され得る。 As shown with respect to camera C1, system 110 may move throughout 3D space with motion characterized as 6-DOF motion 135. This indicates that system 110 may move in translation: forward/backward (e.g., in the x direction), up/down (e.g., in the y direction), right/left (e.g., in the z direction), and rotation: yaw (e.g., angle α about the z axis), roll (e.g., angle β about the y axis), and pitch (e.g., angle γ about the x axis). As will be appreciated, 3D content such as VR frames may be generated based on an estimated line of sight of the user of system 110 (e.g., along the forward direction of the x axis).
図9は、本開示の少なくともいくつかの実装に従って構成された、カメラパラメータを含むイマーシブビデオデータを符号化するための一つの例示的なプロセス900を示す。プロセス900は、例えば、符号化システム100によって実行される、例示されるような1つ以上の動作901-908を含んでよい。プロセス900は、動作901で開始され、そこでは、カメラパラメータ符号化が始められる。カメラパラメータのコード化は、例えば、カメラアレイパラメータ151によって表されるように、カメラアレイ810についてカメラパラメータ800をビットストリーム131へと符号化するための、カメラパラメータ符号化モジュール118によって実行され得る。
FIG. 9 illustrates an
処理は、動作902において継続し、そこでは、カメラアレイのカメラについて位置、配向、および、撮像パラメータが獲得される。そうした位置、配向、および、撮像パラメータは、任意の適切なデータ構造を有し得る。処理は、動作903において継続し、そこでは、特定のカメラパラメータタイプが符号化のために選択される。例えば、説明されるカメラパラメータそれぞれが、順番に処理され得る。
Processing continues at
処理は、決定動作904において継続し、そこでは、選択されたカメラパラメータタイプについて、特定のパラメータ値が、カメラパラメータによって表されるカメラそれぞれによって共有されるか否かについて決定が為される。もし、そうでなければ、処理は、動作905において継続し、そこでは、カメラについて共有パラメータ値を示すフラグがオフにセットされ(例えば、0)、そして、カメラそれぞれに対する個々のパラメータが別々にコード化される。
Processing continues at
パラメータ値がカメラパラメータタイプに対するカメラそれぞれによって共有される場合(例えば、全てのカメラC1-C6は、そのパラメータタイプについて同じパラメータ値を有している)、処理は、動作906において継続され、そこでは、カメラについて共有パラメータ値を示すフラグがオンに設定され(例えば、1)、そして、共有値が符号化される。特に、動作904-906は、カメラそれぞれが共有パラメータ値を有する場合に、低減されたオーバーヘッドを提供する。例えば、カメラそれぞれの焦点距離が同じである場合、共有焦点距離フラグがオンに設定され(例えば、1)、そして、フラグおよび共有焦点距離がコード化され得る。そうした処理は、各カメラについて焦点距離を繰り返さないことによってオーバーヘッドを低減する。しかしながら、カメラが焦点距離を共有しない場合、共有焦点距離フラグはオフに設定され、そして、各カメラの焦点距離がコード化される。そうしたフラグは、多数のカメラに対して設定され、そして、次いで、変更され得ることに留意する。例えば、カメラC1-C4が同じパラメータ値を有し、かつ、C5およびC6が異なる場合、オンのフラグが設定されてよく、カメラC1についてパラメータ値が設定され、かつ、C2-C3は、オフのフラグが設定されるまで、同じパラメータ値を使用してよく、そして、C5およびC6に対するパラメータ値が、次いで、個別に信号化される。例えば、共有パラメータ値フラグは、フラグがオフに切り替わるまで、共有パラメータ値が使用されることを示し得る。
If the parameter values are shared by each of the cameras for a camera parameter type (e.g., all cameras C1-C6 have the same parameter value for that parameter type), processing continues at
そうした共有パラメータ値フラグは、単にパラメータ値フラグとして特徴付けられてよく、それらが対応するパラメータ値に基づいてラベル付けまたは識別されてよい。例えば、共有投影モードフラグ(例えば、投影モードフラグまたは投影モード値フラグ)は、第1値を有する投影モードフラグ(例えば、1)に基づいて、全てのカメラC1-C6が同一の投影モード(例えば、全方向投影モード、通常視点投影モード、または正投影モードのうち1つ)を共有する場合、または、カメラが第2値を有する投影モードフラグ(例えば、0)に基づいて、全てのカメラが同一の投影モードを有しないことを示すことができる。共有視野フラグ(例えば、視野フラグまたは視野共有値フラグ)は、第1値を有する視野フラグ(例えば、1)に基づいて、全てのカメラC1-C6が同一視野を共有する場合、または、第2値を有する投影モードフラグ(例えば、0)に基づいて、全てのカメラが同一視野を有しない場合を示すことができる。同様のやり方で、同じZnearとZfarの値を有するカメラは、共有Znearフラグ(例えば、Znearフラグ、Znear共有値フラグ、または最小物理的深さフラグ)、および、共有Zfarフラグ(例えば、Zfarフラグ、Zfar共有値フラグ、または最大物理的深さフラグ)、または、共有Zdistancesフラグ(例えば、Zdistancesフラグ、Zdistances共有値フラグ、または物理的深さフラグ)だけを使用して、ZnearとZfarの両方が全てのカメラC1-C6に対して同一であることを示すために、一緒に、もしくは、別々に信号化され得る。そうしたフラギングの全ての場合に、もしパラメータ値が全てのカメラによって共有されるならば、単一の共有パラメータ値、単一の共有パラメータ値、等のインジケータは、ビットストリームにおいて符号化される。もしそうでなければ、各カメラのための別々のパラメータ値が信号化され得る。 Such shared parameter value flags may be characterized simply as parameter value flags and may be labeled or identified based on their corresponding parameter values. For example, a shared projection mode flag (e.g., a projection mode flag or a projection mode value flag) may indicate that all cameras C1-C6 share the same projection mode (e.g., one of an omnidirectional projection mode, a normal perspective projection mode, or an orthographic projection mode) based on a projection mode flag having a first value (e.g., 1), or that all cameras do not have the same projection mode based on a projection mode flag having a second value (e.g., 0). A shared field of view flag (e.g., a field of view flag or a field of view shared value flag) may indicate that all cameras C1-C6 share the same field of view based on a field of view flag having a first value (e.g., 1), or that all cameras do not have the same field of view based on a projection mode flag having a second value (e.g., 0). In a similar manner, cameras with the same Znear and Zfar values may be signaled, either together or separately, to indicate that both Znear and Zfar are identical for all cameras C1-C6 using only a shared Znear flag (e.g., Znear flag, Znear shared value flag, or minimum physical depth flag) and a shared Zfar flag (e.g., Zfar flag, Zfar shared value flag, or maximum physical depth flag), or a shared Zdistances flag (e.g., Zdistances flag, Zdistances shared value flag, or physical depth flag). In all such cases of flagging, if the parameter value is shared by all cameras, an indicator of a single shared parameter value, a single shared parameter value, etc., is coded in the bitstream. If not, separate parameter values for each camera may be signaled.
さらに、複数のカメラパラメータ値について、共有パラメータ値フラグが使用されてよい。例えば、単一の共有画像フラグを使用して、カメラ間で共有されるべき投影モード、焦点距離、視野、Znear値、およびZfar値の全てを示すことができる。次いで、そうした単一の共有撮像フラグに、投影モード、焦点距離、視野、Znear値、およびZfar値それぞれについてのパラメータ値が続き、そうした値は、他のカメラについて信号化されない。同様に、単一のヨー、ピッチ、ロールフラグ、またはクォータニオンフラグは、ヨー、ピッチ、およびロールを示すために信号化されてよく、または、クォータニオンパラメータは、カメラC1-C6それぞれについて同じであってよい。いくつかの実施形態において、ヨー、ピッチ、ロール、またはクォータニオンパラメータの値(その後、全てのカメラで共有されるもの)が信号化される。いくつかの実施形態において、第2フラグは、ヨー、ピッチ、およびロール、または、クォータニオンパラメータが、ヨー、ピッチ、およびロールについて、0、0、0といったデフォルト値であることを示すことができる。いくつかの実施形態においては、第2フラグが使用されず、そして、単一のヨー、ピッチ、およびロールフラグ、または、クォータニオンフラグがオン(例えば、1)に設定された場合、デフォルト値はデコーダによって推定される。 Additionally, shared parameter value flags may be used for multiple camera parameter values. For example, a single shared image flag may be used to indicate all of the projection mode, focal length, field of view, Znear value, and Zfar value to be shared between the cameras. Such a single shared image flag may then be followed by parameter values for each of the projection mode, focal length, field of view, Znear value, and Zfar value, which are not signaled for the other cameras. Similarly, a single yaw, pitch, roll flag, or quaternion flag may be signaled to indicate yaw, pitch, and roll, or the quaternion parameters may be the same for each of the cameras C1-C6. In some embodiments, the values of the yaw, pitch, roll, or quaternion parameters (which are then shared by all the cameras) are signaled. In some embodiments, a second flag may indicate that the yaw, pitch, and roll, or the quaternion parameters are default values, such as 0, 0, 0 for yaw, pitch, and roll. In some embodiments, if the second flag is not used and a single yaw, pitch, and roll flag or a quaternion flag is set to on (e.g., 1), the default values are inferred by the decoder.
いくつかの実施形態において、カメラパラメータ値は共有されないが、それらは、単一の値を使用して予測されてよい。例えば、カメラC1-C6が列(row)において等間隔で配置されている場合、列位置フラグが備えられてよい。次いで、列位置フラグに基づいて、カメラについて共有されたz位置およびy位置が信号化され、そして、全てのカメラC1-C6に対して同じ値として使用され得る。さらに、カメラC1のx位置は、全てのカメラについて同じである一定のx位置間隔値(例えば、図8のxC)を用いて信号化され得る。これにより、カメラC2-C6のx位置は、カメラC1のx位置および一定のx位置間隔値を使用して生成され得る(例えば、カメラCNのx位置=x1+(N-1)*xC)。そして、カメラC2-C6の位置の明示的な信号化は無い。 In some embodiments, the camera parameter values are not shared, but they may be predicted using a single value. For example, if the cameras C1-C6 are equally spaced in a row, a row position flag may be provided. Then, based on the row position flag, the shared z and y positions for the cameras may be signaled and used as the same values for all cameras C1-C6. Furthermore, the x position of camera C1 may be signaled using a constant x position interval value (e.g., x C in FIG. 8 ) that is the same for all cameras. Thus, the x positions of cameras C2-C6 may be generated using the x position of camera C1 and a constant x position interval value (e.g., x position of camera CN=x 1 +(N-1)*x C ). And there is no explicit signaling of the positions of cameras C2-C6.
同様に、(図8に示されるように)カメラC1-C6がグリッドに等間隔で配置されている場合、グリッド位置フラグが備えられてよい。グリッド位置フラグに基づいて、次いで、カメラについて共有されたz位置は、信号化され、そして、全てのカメラC1-C6について同一の値として使用され得る。さらに、カメラC1のx位置およびy位置は、全てのカメラについて同じである一定のx位置間隔値(例えば、図8のxC)および一定のy位置間隔値(例えば、図8のyC)を用いて信号化され得る。これにより、カメラC2-C6のx位置およびy位置は、カメラC1のxおよびy位置、並びに、一定のx位置間隔値および一定のy位置間隔値を使用して生成され得る(C2は((x1+xC),(y1))、C4は((x1),(y1+yC)、C5は((x1+xC),(y1+yC))にある)。そして、カメラC2-C6の位置の明示的な信号化は無い。 Similarly, if cameras C1-C6 are equally spaced in a grid (as shown in FIG. 8), a grid position flag may be provided. Based on the grid position flag, the shared z position for the cameras may then be signaled and used as the same value for all cameras C1-C6. Furthermore, the x and y positions of camera C1 may be signaled with a constant x position spacing value (e.g., x C in FIG. 8) and a constant y position spacing value (e.g., y C in FIG. 8) that are the same for all cameras. This allows the x and y positions of cameras C2-C6 to be generated using the x and y positions of camera C1 and a constant x position spacing value and a constant y position spacing value (C2 is at (( x1 + xC ), ( y1 )), C4 is at (( x1 ), ( y1 + yC ), C5 is at (( x1 + xC ), ( y1 + yC ))))) and there is no explicit signaling of the positions of cameras C2-C6.
処理は、決定動作907において継続し、そこでは、動作903で選択されたカメラパラメータタイプが処理されるべき最後のカメラパラメータタイプであるか否かの決定が行われる。もしそうであれば、処理は、動作908で終了する。もしそうでなければ、前述のように、最後のカメラパラメータタイプが処理されるまで、処理は、動作903において継続する。表現を明瞭にするために、そうした再帰的処理に関して説明したが、プロセス900は、任意の数のカメラパラメータタイプを並列に復号することができる。
Processing continues at
上述のように、プロセス900は、カメラ位置((x,y,z))、カメラ配向((r,p,yaw)またはクォータニオン値)、および、カメラ撮像パラメータ(PM,FL,FOV,ZN,ZF)を含む、カメラパラメータの効率的な信号化(signaling)を提供する。そうした圧縮技術は、任意の適切な組み合わせで組み合わせることができる。そうした圧縮されたフラグおよび値は、ビットストリームへと符号化され、そして、続いて、図10に関して説明されるように復号され、かつ、ビュー合成において使用される。いくつかの実施形態において、そうした符号化は、イマーシブビデオデータ符号化の一部を提供し、そして、イマーシブビデオ生成またはキャプチャに対応するカメラアレイの複数のカメラそれぞれについてカメラ投影モードを決定すること、カメラのカメラ投影モードフラグを生成することであり、カメラ投影モードフラグは、共有投影モードを有する各カメラに応答して第1値(例えば、1)を有し、かつ、共有投影モード以外の投影モードを有するカメラのいずれかに応答して第2値(例えば、0)を有すること、および、カメラ投影モードフラグをビットストリームに符号化することを含む。いくつかの実施形態において、第1値を有する第1カメラ投影モードフラグに応答して、ビットストリームは、共有投影モードを示す単一のカメラ投影モードインジケータをさらに含む。いくつかの実施形態において、第2値を有するカメラ投影モードフラグに応答して、ビットストリームは、複数のカメラ投影モードインジケータをさらに含み、カメラそれぞれについて1つずつである。
As described above, the
いくつかの実施形態において、符号化は、各カメラによって達成可能な最小物理的深さおよび最大物理的深さを決定すること、カメラについて物理的深さフラグを生成することであり、物理的深さフラグは、共有される最小物理的深さ及び/又は共有される最大物理的深さをカメラが有するか否かこと、および、物理的深さフラグをビットストリームへと符号化すること、をさらに含む。いくつかの実施形態において、符号化は、カメラそれぞれについてヨー、ピッチ、およびロールパラメータ、または、クォータニオンパラメータのうち1つを決定すること、カメラについてヨー、ピッチ、およびロールフラグ、または、クォータニオンフラグを生成することであり、ヨー、ピッチ、およびロールフラグ、または、クォータニオンパラメータフラグは、カメラが、共有ヨー、ピッチ、およびロールパラメータ、または、共有クォータニオンパラメータを有するか否か示すこと、および、ヨー、ピッチ、およびロールフラグ、または、クォータニオンパラメータフラグをビットストリームへと符号化すること、をさらに含む。いくつかの実施態様において、ヨー、ピッチ、およびロールパラメータ、または、クォータニオンパラメータは、デフォルトのヨー、ピッチ、およびロール、または、デフォルトのクォータニオンパラメータフラグ値を示す。いくつかの実施形態において、符号化は、カメラ間における共有物理的間隔を表す共有物理的間隔値を決定すること、および、共有物理的間隔値をビットストリームへと符号化すること、をさらに含む。 In some embodiments, the encoding further includes determining a minimum and maximum physical depth achievable by each camera, generating a physical depth flag for the camera, the physical depth flag indicating whether the camera has a shared minimum physical depth and/or a shared maximum physical depth, and encoding the physical depth flag into the bitstream. In some embodiments, the encoding further includes determining one of yaw, pitch, and roll parameters or quaternion parameters for each camera, generating a yaw, pitch, and roll flag or quaternion flag for the camera, the yaw, pitch, and roll flag or quaternion parameter flag indicating whether the camera has shared yaw, pitch, and roll parameters or shared quaternion parameters, and encoding the yaw, pitch, and roll flag or quaternion parameter flag into the bitstream. In some implementations, the yaw, pitch, and roll parameters or quaternion parameters indicate default yaw, pitch, and roll or default quaternion parameter flag values. In some embodiments, the encoding further includes determining a shared physical spacing value representing the shared physical spacing between the cameras and encoding the shared physical spacing value into the bitstream.
図10は、本開示の少なくともいくつかの実装に従って構成された、カメラパラメータを含むイマーシブビデオデータを復号するための一つの例示的なプロセス1000を示す。プロセス1000は、例えば、復号化システム200によって実行される、図示されるような1つ以上の動作1001-1008を含んでよい。プロセス1000は、動作1001で始まり、そこでは、カメラパラメータ復号が開始される。カメラパラメータの復号は、例えば、カメラパラメータ復号化モジュール218によって実行され、ビットストリーム131からのカメラアレイパラメータ151によって表されるように、カメラアレイ810についてカメラパラメータ800を復号することができる。
FIG. 10 illustrates an
処理は、動作1002において継続し、そこでは、カメラパラメータフラグおよびインジケータを含む受信ビットストリームが受信され、そして、任意の適切な技術または技法を使用して復号される。特に、ビットストリームは、再構成するために復号され得る、図9に関して説明したような、任意のフラグ、パラメータ、インジケータ、等を含んでよい。処理は、動作1002において継続し、そこでは、第1カメラパラメータタイプが選択される。例えば、説明されたカメラパラメータそれぞれは、順番に処理され得る。
Processing continues at
処理は、決定動作1004において継続し、そこでは、選択されたカメラパラメータタイプについて、選択されたカメラパラメータタイプに対する特定の、または、共有パラメータ値フラグがオン(例えば、1)に設定されているか否かについて決定が行われる。もしそうでなければ、処理は、動作1005において継続し、そこでは、カメラアレイのカメラそれぞれについてカメラパラメータ値が復号される。例えば、カメラは、特定の、または、共有パラメータ値を共有しないせいで、各カメラに対する値は別々に復号される。
Processing continues at
選択されたカメラパラメータタイプに対する特定の、または、共有パラメータ値フラグがオン(例えば、1)に設定される場合、処理は、動作1006において継続し、そこでは、特定のパラメータ値または共有されたパラメータ値のインジケータまたは値などが復号され、そして、カメラアレイ内の全てのカメラに対して設定される。すなわち、各カメラは、特定の、または、共有パラメータ値について、同一の値が割り当てられる(または、位置情報のコンテキストにおいて、各カメラの位置は、以下で説明されるように、復号された情報を使用して決定される)。動作1004-1006は、共有されたカメラ情報が一度だけフラグ付けされ、かつ、符号化され得るように、効率的にパックされたカメラ情報の復号を提供する。例えば、カメラ内のカメラそれぞれの焦点距離が同一である場合、共有焦点距離フラグ(または、焦点距離フラグ、等)がオン(例えば、1)であるように復号され得る。そして、共有または特定焦点距離、または、そのインジケータが復号され、かつ、各カメラに対して割り当てられる。しかしながら、共有焦点距離フラグがオフ(例えば、0)であるように復号される場合、各カメラの焦点距離は別々に復号される。符号化と同様に、いくつかの実施形態において、1の共有フラグが設定されてよく、そして、フラグが0に切り替えられ、その後新しいパラメータが送信されるまで、適用されるインジケータが送信されてよい。例えば、各カメラは、カメラについて共有が継続されることを示すために、1のフラグが割り当てられ得る。異なる焦点距離を持つ第1カメラは、次いで、0にフラグ付けされ、そして、新しいパラメータが送信される。そうしたフラグは、数多くのカメラについて設定され、そして、次いで、変更され得ることに留意する。
If the specific or shared parameter value flag for the selected camera parameter type is set on (e.g., 1), processing continues at
符号化に関して説明されるように、そうした共有パラメータ値フラグは、単にパラメータ値フラグとして特徴付けられてよく、そして、それらが対応するパラメータ値に基づいてラベル付けまたは識別されてよい。例えば、共有投影モードフラグは、全てのカメラが同一の投影モードを共有している場合に示すことができ、共有視野フラグは、全てのカメラが同一の視野を共有している場合に示すことができ、共有Znearフラグ、共有Zfarフラグ、または共有Zdistancesフラグは、それぞれに、カメラが達成可能な最小物理的深さ、カメラが達成可能な最大物理的深さ、またはその両方が、全てのカメラについて同一であることを示すことができる。再び、カメラパラメータ符号化に関して説明されるように、共用パラメータ値フラグが、複数のカメラパラメータ値に対して使用されてよい。例えば、単一の共有撮像フラグは、全ての投影モード、焦点距離、視野、Znear値、およびZfar値の全てが、全てのカメラについて同一であることを示すことができる。そうした共有画像フラグがオン(on)として復号されるとき、投影モード、焦点距離、視野、Znear値、およびZfar値それぞれに対するインジケータまたはパラメータ値が、ビットストリームから復号され、全てのカメラに適用される。 As described with respect to the encoding, such shared parameter value flags may be characterized simply as parameter value flags and may be labeled or identified based on their corresponding parameter values. For example, a shared projection mode flag may indicate if all cameras share the same projection mode, a shared field of view flag may indicate if all cameras share the same field of view, and a shared Znear flag, a shared Zfar flag, or a shared Zdistances flag may indicate, respectively, that the minimum physical depth the cameras can achieve, the maximum physical depth the cameras can achieve, or both, are the same for all cameras. Again, as described with respect to the camera parameter encoding, shared parameter value flags may be used for multiple camera parameter values. For example, a single shared imaging flag may indicate that all projection modes, focal lengths, field of view, Znear values, and Zfar values are all the same for all cameras. When such a shared image flag is decoded as on, indicators or parameter values for each of the projection modes, focal lengths, field of view, Znear values, and Zfar values are decoded from the bitstream and applied to all cameras.
同様に、共有ヨー、ピッチ、ロールフラグ、またはクォータニオンフラグが復号されてよく、そして、オンとしてフラグが付されると、ヨー、ピッチ、およびロールの単一セット、またはクォータニオンパラメータが復号されて、全てのカメラに適用される。あるいは、共有ヨー、ピッチ、ロールフラグ、またはオンであるクォータニオンフラグは、そうしたパラメータが全てのカメラで共有されており、パラメータがヨー、ピッチ、ロールについて0、0、0のデフォルト値に設定されることを示すことができる。 Similarly, a shared yaw, pitch, roll flag, or quaternion flag may be decoded and, when flagged as on, a single set of yaw, pitch, and roll, or quaternion parameters are decoded and applied to all cameras. Alternatively, a shared yaw, pitch, roll flag, or quaternion flag being on may indicate that such parameters are shared across all cameras and that the parameters are set to default values of 0, 0, 0 for yaw, pitch, and roll.
さらに、いくつかの実施形態において、そうしたフラグ付けおよびパラメータ共有(sharing)は、明示的に符号化されていないデコーダにおける値を決定するために、デコーダによって使用されてよい。例えば、ビットストリームは、カメラがオンに設定されている列位置フラグを決定するために復号されてよい。列位置フラグに基づいて、カメラの共有されたz位置およびy位置が復号され、そして、全てのカメラC1-C6に割り当てられる。さらに、カメラC1のx位置(例えば、図8のx1)および一定のx位置間隔値(例えば、xC)が復号される。カメラC1-C6それぞれについてのx寸法におけるカメラ位置は、次いで、カメラC1がx1にあり、カメラC2-C6が列内の先のカメラに対してxCによってオフセットされた位置にあるようにデコーダによって決定されてよい(例えば、カメラCNx位置=x1+(N-1)*xCであり、かつ、カメラC2-C6の位置の明示的な信号化はない)。いくつかの実施形態において、グリッド位置フラグがオンであることを決定するように、ビットストリームが復号され、提供され得る。グリッド位置フラグに基づいて、カメラの共有z位置が復号され、そして、全てのカメラC1-C6に割り当てられる。カメラC1のx位置およびy位置(それぞれ、x1およびy1)並びに、一定のx位置間隔値(例えば、xC)および一定のy位置間隔値(例えば、yC)が、復号される。これにより、カメラC2-C6のx位置およびy位置は、カメラC1のx位置およびy位置、並びに、一定のx位置およびy位置間隔値を使用して生成され得る。 Further, in some embodiments, such flagging and parameter sharing may be used by the decoder to determine values at the decoder that are not explicitly coded. For example, the bitstream may be decoded to determine a row position flag that the camera is set to on. Based on the row position flag, the shared z and y positions of the cameras are decoded and assigned to all cameras C1-C6. Further, the x position of camera C1 (e.g., x 1 in FIG. 8) and a constant x position spacing value (e.g., x C ) are decoded. The camera positions in the x dimension for each of cameras C1-C6 may then be determined by the decoder such that camera C1 is at x 1 and cameras C2-C6 are at positions offset by x C relative to the previous camera in the row (e.g., camera CNx position=x 1 +(N-1)*x C , and there is no explicit signaling of the positions of cameras C2-C6). In some embodiments, the bitstream may be decoded and provided to determine that the grid position flag is on. Based on the grid position flags, the shared z-positions of the cameras are decoded and assigned to all cameras C1-C6. The x and y positions of camera C1 ( x1 and y1 , respectively) and a constant x-position interval value (e.g., xC ) and a constant y-position interval value (e.g., yC ) are decoded. Thus, the x and y positions of cameras C2-C6 can be generated using the x and y positions of camera C1 and the constant x-position and y-position interval values.
処理は、決定動作1007において継続し、そこでは、動作1003において選択されたカメラパラメータタイプが処理されるべき最後のカメラパラメータタイプであるか否かについての決定が行われる。もしそうであれば、処理は、動作1008で終了する。もしそうでなければ、前述のように、最後のカメラパラメータタイプが処理されるまで、処理は動作1003において継続する。表現を明確にするために、そうした再帰的処理に関して図示されているが、プロセス1000は、任意の数のカメラパラメータタイプを並列に復号することができる。
Processing continues at
上述のように、プロセス1000は、カメラ位置((x,y,z))、カメラ配向((r,p,yaw)またはクォータニオン値)、および、カメラ撮像パラメータ(PM,FL,FOV,ZN,ZF)を含むカメラパラメータの復号を提供する。いくつかの実施形態において、そうした復号化は、イマーシブビデオデータ復号化の一部を提供し、そして、深度ビュー、テクスチャビュー、およびカメラアレイの複数のカメラに対応するカメラ投影モードフラグを決定するためにビットストリームを復号することを含み、カメラ投影モードフラグは、全てのカメラが特定の投影モードを有することを示す第1値、または、カメラのいずれかが特定の投影モード以外の投影モードを有することを示す第2値を有し、深度ビュー、テクスチャビュー、およびカメラ投影モードフラグ深度ビューに基づいて復号されたビューを生成する。いくつかの実施形態において、第1値を有する第1カメラ投影モードフラグに応答して、ビットストリームは、さらに、特定の投影モードを示す単一カメラ投影モードインジケータを含む。いくつかの実施形態において、第2値を有するカメラ投影モードフラグに応答して、ビットストリームは、さらに、複数のカメラ投影モードインジケータを含み、カメラそれぞれについて1つである。いくつかの実施形態において、共有カメラ投影モードは、全方向投影モード、通常視点投影モード、または正投影モードのうちの少なくとも1つを含む。
As described above, the
いくつかの実施形態において、ビットストリームは、さらに、示すヨー、ピッチ、ロールフラグ、またはカメラのクォータニオンフラグのうちの1つを含み、ヨー、ピッチ、ロールフラグ、またはカメラのクォータニオンフラグは、カメラが共有ヨー、ピッチ、ロールパラメータまたは共有クォータニオンパラメータを有するか否かを示す。いくつかの実施形態において、ビットストリームは、さらに、カメラについて物理的深さフラグを含み、物理的深さフラグは、カメラが共有された最小物理的深さ及び/又は共有された最大物理的深さを有するか否かを示す。いくつかの実施形態において、復号プロセスは、さらに、カメラが共有ヨー、ピッチ、ロールパラメータ、または、共有クォータニオンパラメータを有することを示す、ヨー、ピッチ、ロールフラグ、または、クォータニオンフラグに応答し、カメラそれぞれについてヨー、ピッチ、ロールパラメータ、またはクォータニオンパラメータは、デフォルトのヨー、ピッチ、ロールパラメータ、または、デフォルトのクォータニオンパラメータである。いくつかの実施形態において、ビットストリームは、さらに、共有物理的間隔値を含み、そして、復号処理は、さらに、共有物理的間隔値を使用してカメラ間の物理的間隔を決定することを含む。 In some embodiments, the bitstream further includes one of a yaw, pitch, roll flag, or a quaternion flag for the camera indicating whether the cameras have shared yaw, pitch, roll parameters, or shared quaternion parameters. In some embodiments, the bitstream further includes a physical depth flag for the camera, the physical depth flag indicating whether the cameras have a shared minimum physical depth and/or a shared maximum physical depth. In some embodiments, the decoding process is further responsive to the yaw, pitch, roll flag, or the quaternion flag indicating that the cameras have shared yaw, pitch, roll parameters, or shared quaternion parameters, and the yaw, pitch, roll parameters, or quaternion parameters for each of the cameras are default yaw, pitch, roll parameters, or default quaternion parameters. In some embodiments, the bitstream further includes a shared physical spacing value, and the decoding process further includes determining a physical spacing between the cameras using the shared physical spacing value.
説明は、これから、3DoF+規格の準拠、および、ここにおいて記載されるテクスチャおよび深さを表現するために作成されたアトラス(atlases)のサポートに移る。 The discussion now moves on to compliance with the 3DoF+ standard and support for atlases created to represent texture and depth as described herein.
HEVCは2バイトNAL(ネットワーク抽象レイヤ(network abstraction layer))ユニットヘッダを使用し、そのシンタックスは、以下にコピーされている。それは、nuh_layer_idに割り当てられた6ビットを含む。
HEVCは、セクション7で基本ビデオパラメータセット(VPS)を定義し、そして、附属書(Annex)FでVPS拡張(VPS extension)を定義している。附属書Fは、独立非ベース層復号化(Independent Non-Base Layer Decoding、INBLD)能力を記述しており、そこでは、独立にコード化された層は、0に等しくないnuh_layer_id値を有し得る。 HEVC defines a base video parameter set (VPS) in Section 7 and a VPS extension in Annex F. Annex F describes the Independent Non-Base Layer Decoding (INBLD) capability, where independently coded layers may have nuh_layer_id values not equal to 0.
ベースVPSは、vps_max_layers_minus1シンタックス要素を含む。VPS拡張は、シンタックス要素splitting_flag、scalability_mask_flag[i]、dimension_id_len_minus1[j]、dimension_id[i][j]、およびdirect_depency_flag[i][j]を含む。これらのシンタックス要素は、ScalabilityId変数の導出、および層間の依存関係を含む、各層の特性を示すために使用される。 The base VPS includes the vps_max_layers_minus1 syntax element. The VPS extension includes the syntax elements splitting_flag, scalability_mask_flag[i], dimension_id_len_minus1[j], dimension_id[i][j], and direct_depency_flag[i][j]. These syntax elements are used to indicate the characteristics of each layer, including the derivation of the ScalabilityId variable and the dependencies between layers.
ScalabilityId変数は、以下のように、スケーラビリティディメンションまたは層特性にマッピングされ得る。
附属書Gは、マルチビューメインプロファイルを定義する。ここで、強化層(enhancement layer)は、ベース層から予測される層間層(inter-layer)である。 Annex G defines the multi-view main profile, where the enhancement layer is an inter-layer predicted from the base layer.
いくつかの態様においては、テクスチャおよび深さを表すために、2つのアトラスが作成される。これらの2つのアトラスは、同じビットストリーム内の別々の層として符号化されてよく、それぞれが異なる値nuh_layer_idを有する。深さアトラス層(depth atlas layer)は独立しており、そして、テクスチャアトラス層から層間予測を行うことはできない。 In some aspects, two atlases are created to represent texture and depth. These two atlases may be coded as separate layers in the same bitstream, each with a different value nuh_layer_id. The depth atlas layers are independent, and no inter-layer prediction can be made from the texture atlas layer.
新たな「イマーシブ(“Immersive”)」HEVCプロファイルがここにおいて提供される。一つの実施形態において、プロファイルは、2つの独立した層(layers)を許容し、それぞれは、INBLD(独立非ベース層復号化)機能を有するメイン10(またはメイン)プロファイルに個々に適合する。別の実施形態においては、追加のプロファイルが、メインおよびメイン10プロファイルで必要とされる4:2:0のクロマフォーマットではなく、特に、深さのモノクロ表現を可能にするために、各独立層についてサポートされる。 A new "Immersive" HEVC profile is provided herein. In one embodiment, the profile allows for two independent layers, each individually conforming to the Main 10 (or Main) profile with INBLD (Independent Non-Base Layer Decoding) capability. In another embodiment, an additional profile is supported for each independent layer, specifically to allow for monochrome representation of depth, rather than the 4:2:0 chroma format required by the Main and Main 10 profiles.
このプロファイルの作成と定義により、ビットストリームおよびデコーダは、相互運用性(interoperability)を確保するために必要な、3DoF+規格への適合性を示すことができる。 The creation and definition of this profile allows bitstreams and decoders to demonstrate conformance to the 3DoF+ standard, which is necessary to ensure interoperability.
いくつかの実施形態においては、スケーラビリティマスクテーブル中の新しいエントリが提供される。AtlasFlagであり、これは、リザーブ値(reserved value)のうち1つを使用することによって、コード化された画像アトラスであることを示すように設定されることを要する。テクスチャアトラス層と深さアトラス層を区別するために、既存のDepthLayerFlagが使用され得る。
イマーシブプロファイルは、テクスチャアトラス層が、0に等しいDepthLayerFlagおよび1に等しいAtlasFlagを有すること、および、ScalabilityId値から導出されるように、アトラス層が1に等しいDepthLayerFlagおよび1に等しいAtlasFlagを有することを必要とする。 The Immersive Profile requires that texture atlas layers have DepthLayerFlag equal to 0 and AtlasFlag equal to 1, and that atlas layers have DepthLayerFlag equal to 1 and AtlasFlag equal to 1, as derived from the ScalabilityId value.
イマーシブプロファイルは、2つのレイヤについてnuh_layer_idの値に追加の必要条件を課さず、そして、VPSは、ScalabilityIdの適切な値を信号化する方法においてフレキシビリティを提供する。 The Immersive Profile places no additional requirements on the values of nuh_layer_id for the two layers, and the VPS provides flexibility in how to signal the appropriate value of ScalabilityId.
説明は、これから、イマーシブプロファイルについてScalabilityId値を適切に設定するためにVPSを使用する最もビットレート効率の良い方法に移る。いくつかの実施態様においては、0のnuh_layer_idがテクスチャアトラス層について使用され、そして、1のnuh_layer_idが深さアトラス層について使用すされる The discussion now moves to the most bitrate-efficient way to use the VPS to appropriately set the ScalabilityId value for the immersive profile. In some implementations, a nuh_layer_id of 0 is used for texture atlas layers, and a nuh_layer_id of 1 is used for depth atlas layers.
いくつかの実施形態においては、nuh_layer_idのビットの多層特性への単純なマッピングを示すために、splitting_flagが1に等しく設定される。 In some embodiments, splitting_flag is set equal to 1 to indicate a simple mapping of bits in nuh_layer_id to multi-layer characteristics.
いくつかの実施形態において、scalability_mask_flag[i]は、使用される層の次元(dimension)が0(DepthLayerFlag)および4(AtlasFlagの場合)であることを示すために、00000010001(各ビットはアレイ値を表す)に等しく設定される。 In some embodiments, scalability_mask_flag[i] is set equal to 00000010001 (each bit represents an array value) to indicate that the layer dimensions used are 0 (for DepthLayerFlag) and 4 (for AtlasFlag).
いくつかの実施形態においては、AtlasFlagを表すために必要とされるビットが1ビットだけであることを示すために、dimension_id_len_minus1[1]が0に等しく設定される。 In some embodiments, dimension_id_len_minus1[1] is set equal to 0 to indicate that only one bit is required to represent the AtlasFlag.
いくつかの実施態様においては、深さアトラス層がテクスチャアトラス層に依存しないことを示すために、direct_dependency_flag[1][0]が0に設定される。 In some embodiments, direct_dependency_flag[1][0] is set to 0 to indicate that the depth atlas layer does not depend on the texture atlas layer.
2つの層について、以下の表5は、関連するシンタックス要素および変数の値を示している。グレーでハイライトされたテーブル値(すなわち、DepthLayerFlag、AtlasFlag、ScalabilityId、および、DepthAtlasに対するdirect_dependency_flag)が必要とされ、一方で、ハイライトされていない値(すなわち、nuh_layer_id)は変動し得る。いくつかの実施形態においては、DepthLayerFlagおよびAtlasFlagの値がイマーシブプロファイルにおいて必要とされ、一方で、nuh_layer_id値は変動し得る。
説明は、これから、記述される技術、エンコーダ、デコーダを実装するためのシステムとデバイスに移る。例えば、ここにおいて説明される任意のエンコーダまたはデコーダは、図11に示されるシステム、図12に示されるシステム、及び/又は、図13に示されるデバイスを介して実施され得る。特に、説明した技術、エンコーダ、およびデコーダは、パーソナルコンピュータ、ラップトップコンピュータ、タブレット、ファブレット、スマートフォン、デジタルカメラ、ゲーム機、ウェアラブルデバイス、ディスプレイデバイス、オールインワンデバイス、ツーインワンデバイスといった、任意の適切なデバイスまたはプラットフォームを介して実施され得る。 The description now turns to systems and devices for implementing the described techniques, encoders, and decoders. For example, any encoder or decoder described herein may be implemented via the system shown in FIG. 11, the system shown in FIG. 12, and/or the device shown in FIG. 13. In particular, the described techniques, encoders, and decoders may be implemented via any suitable device or platform, such as a personal computer, a laptop computer, a tablet, a phablet, a smartphone, a digital camera, a gaming console, a wearable device, a display device, an all-in-one device, or a two-in-one device.
ここにおいて説明されるシステムの種々のコンポーネントは、ソフトウェア、ファームウェア、及び/又は、ハードウェア、及び/又は、それらの任意の組み合わせにおいて実装され得る。例えば、ここにおいて説明される装置またはシステムの種々のコンポーネントは、少なくとも部分的に、例えば、スマートフォンといった計算システムに見られるような、計算システムオンチップ(System-On-Chip、SoC)のハードウェアによって提供され得る。当業者であれば、ここにおいて説明されるシステムが、対応する図に描かれていない追加のコンポーネントを含み得ることを認識するだろう。例えば、ここにおいて説明されるシステムは、明確化のために図示していない追加のコンポーネントを含んでよい。 The various components of the systems described herein may be implemented in software, firmware, and/or hardware, and/or any combination thereof. For example, the various components of the devices or systems described herein may be provided, at least in part, by the hardware of a computing system-on-chip (SoC), such as found in a computing system, such as a smartphone. Those skilled in the art will recognize that the systems described herein may include additional components not depicted in the corresponding figures. For example, the systems described herein may include additional components not shown for clarity.
ここにおいて説明される例示的なプロセスの実施は、図示された順序で示された全ての動作の実施を含み得るが、一方、本開示は、この点に関して限定されず、かつ、種々の例において、ここにおいて説明される例示的なプロセスの実施は、図示された動作、図示されたものとは異なる順序で実施された動作、または、追加の動作のサブセットだけを含み得る。 While implementation of the example processes described herein may include performance of all of the acts shown in the order illustrated, the disclosure is not limited in this respect, and in various examples, implementation of the example processes described herein may include only a subset of the acts illustrated, acts performed in an order different from those illustrated, or additional acts.
加えて、ここにおいて説明される動作のうち任意の1つ以上は、1つ以上のコンピュータプログラム製品によって提供される命令に応答して行われ得る。そうしたプログラム製品は、例えば、プロセッサによって実行されると、ここにおいて説明される機能を提供することができる命令を提供する信号生成媒体(signal bearing media)を含み得る。コンピュータプログラム製品は、1つ以上のマシンで読取り可能な媒体の任意の形態において提供され得る。従って、例えば、1つ以上のグラフィックス処理ユニットまたはプロセッサコアを含むプロセッサは、1つ以上のマシンで読取り可能な媒体によってプロセッサに伝達されるプログラムコード、及び/又は、命令または命令セットに応答して、ここにおける例示的なプロセスの1つ以上のブロックを引き受けることができる。一般的に、マシンで読取り可能な媒体は、ここにおいて説明される装置及び/又はシステムのいずれかが、装置またはシステムの少なくとも一部、または、ここにおいて説明される任意の他のモジュールまたはコンポーネントを実装するようにできるプログラムコード及び/又は命令セットの形態においてソフトウェアを搬送することができる。 Additionally, any one or more of the operations described herein may be performed in response to instructions provided by one or more computer program products. Such program products may include, for example, signal bearing media that provide instructions that, when executed by a processor, can provide the functionality described herein. A computer program product may be provided in any form of one or more machine-readable media. Thus, for example, a processor including one or more graphics processing units or processor cores may undertake one or more blocks of the exemplary processes herein in response to program code and/or instructions or instruction sets conveyed to the processor by one or more machine-readable media. In general, a machine-readable medium may carry software in the form of program code and/or instruction sets that can cause any of the devices and/or systems described herein to implement at least a portion of the device or system, or any other module or component described herein.
ここにおいて説明される任意の実施において使用されるように、「モジュール(“module”)」という用語は、ここにおいて説明される機能を提供するように構成されたソフトウェア論理、ファームウェア論理、ハードウェア論理、及び/又は、回路の任意の組み合わせを指す。ソフトウェアは、ソフトウェアパッケージ、コード、及び/又は、命令セットまたは命令として具体化され得る。そして、「ハードウェア(“hardware”)」は、ここにおいて説明される任意の実施において使用されるように、例えば、単独でまたは任意の組み合わせで、ハードワイヤード回路、プログラマブル回路、状態マシン回路、固定機能回路、実行ユニット回路、及び/又は、プログラマブル回路によって実行される命令を保管するファームウェアを含み得る。モジュールは、集合的または個別的に、例えば、集積回路(IC)、システムオンチップ(SoC)など、より大きなシステムの一部を形成する回路として具体化され得る。 As used in any implementation described herein, the term "module" refers to any combination of software logic, firmware logic, hardware logic, and/or circuitry configured to provide the functionality described herein. Software may be embodied as a software package, code, and/or instruction set or instructions. And, "hardware," as used in any implementation described herein, may include, for example, hardwired circuitry, programmable circuitry, state machine circuitry, fixed function circuitry, execution unit circuitry, and/or firmware that stores instructions executed by programmable circuitry, either alone or in any combination. Modules, collectively or individually, may be embodied as circuitry that forms part of a larger system, such as, for example, an integrated circuit (IC), a system on a chip (SoC), etc.
図11は、本開示の少なくともいくつかの実装に従って構成された、イマーシブビデオデータを符号化するための例示的システム1100の説明図である。図11に示されるように、システム1100は、1つ以上の中央処理装置1101、1つ以上のグラフィックス処理ユニット1102、メモリストア1103、ディスプレイ1104、および、送信器1105を含み得る。また、示されるように、グラフィックス処理ユニット1102は、ビット深さマッピングモジュール1111、カメラパラメータ符号化モジュール1112、エンコーダ1121、デコーダ1122、及び/又は、ビュー合成モジュール1123を含み、または、実装し得る。そうしたモジュールは、ここにおいて説明される動作を実行するために実装され得る。システム1100の例において、メモリストア1103は、テクスチャビュー、深度ビュー、イマーシブビデオデータ、区分ごとの線形マッピングパラメータ、ビットストリームデータ、合成ビューデータ、カメラアレイパラメータ、または、ここにおいて説明される任意の他のデータまたはデータ構造を保管し得る。
FIG. 11 is an illustration of an example system 1100 for encoding immersive video data, configured in accordance with at least some implementations of the present disclosure. As shown in FIG. 11, the system 1100 may include one or more
図示されるように、いくつかの例において、ビット深さマッピングモジュール1111、カメラパラメータ符号化モジュール1112、エンコーダ1121、デコーダ1122、及び/又は、ビュー合成モジュール1123は、グラフィックス処理ユニット1102を介して実装される。他の例においては、ビット深さマッピングモジュール1111、カメラパラメータ符号化モジュール1112、エンコーダ1121、デコーダ1122、及び/又は、ビュー合成モジュール1123の1つ以上の部分が、中央処理装置1101またはシステム1100の画像処理装置(図示なし)を介して実装される。さらに他の例においては、ビット深さマッピングモジュール1111、カメラパラメータ符号化モジュール1112、エンコーダ1121、デコーダ1122、及び/又は、ビュー合成モジュール1123の1つ以上の部分が、画像処理パイプライン、グラフィックスパイプラインなどを介して実装される。
As shown, in some examples, the bit depth mapping module 1111, the camera
グラフィックス処理ユニット1102は、ここにおいて説明される動作を提供することができる任意の数およびタイプのグラフィックス処理ユニットを含み得る。そうした動作は、ソフトウェア、ハードウェア、または、それらの組み合わせによって実施され得る。例えば、グラフィックス処理ユニット1102は、メモリストア1103から得られたテクスチャビュー、深度ビュー、ビットストリームデータなどを操作するために専用の回路を含み得る。中央処理装置1101は、システム1100のための制御および他の高レベルの機能を提供し、かつ/あるいは、ここにおいて説明されるような任意の動作を提供することができる任意の数およびタイプの処理装置またはモジュールを含み得る。メモリストア1103は、揮発性メモリ(例えば、スタティック・ランダムアクセスメモリ(SRAM)、ダイナミック・ランダムアクセスメモリ(DRAM)、等)または不揮発性メモリ(例えば、フラッシュメモリ、等)などの任意のタイプのメモリであってよい。非限定的な例において、メモリストア1103は、キャッシュメモリによって実装され得る。一つの実施形態において、ビット深さマッピングモジュール1111、カメラパラメータ符号化モジュール1112、エンコーダ1121、デコーダ1122、及び/又は、ビュー合成モジュール1123の1つ以上の部分は、グラフィックス処理ユニット1102の実行ユニット(execution unit、EU)を介して実行される。EUは、例えば、ワイドアレイのプログラマブル論理機能を提供することができる論理コアまたはコアといった、プログラマブル論理または回路を含み得る。一つの実施形態において、ビット深さマッピングモジュール1111、カメラパラメータ符号化モジュール1112、エンコーダ1121、デコーダ1122、及び/又は、ビュー合成モジュール1123の1つ以上の部分は、固定機能回路(fixed function circuitry)などといった、専用ハードウェアを介して実装される。固定機能回路は、専用論理または専用回路を含んでよく、そして、固定機能エントリポイントのセットを提供して、固定目的または固定機能のために専用論理にマッピングすることができる。いくつかの実施形態において、ビット深さマッピングモジュール1111、カメラパラメータ符号化モジュール1112、エンコーダ1121、デコーダ1122、及び/又は、ビュー合成モジュール1123の1つ以上の部分は、特定用途向け集積回路(ASIC)を介して実装される。ASICは、ここにおいて説明される動作を実行するようにカスタマイズされた集積回路を含み得る。
The graphics processing unit 1102 may include any number and type of graphics processing units capable of providing the operations described herein. Such operations may be implemented by software, hardware, or a combination thereof. For example, the graphics processing unit 1102 may include dedicated circuitry for manipulating texture views, depth views, bitstream data, etc. obtained from the memory store 1103. The
図12は、本開示の少なくとも一部の実施形態に従って構成された、例示的なシステム1200の説明図である。様々な実装において、システム1200は、モバイルデバイスシステムであってよいが、システム1200は、このコンテキストに限定されない。例えば、システム1200は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトラ・ラップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレット、またはスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス、カメラ(例えば、ポイントアンドシュートカメラ、スーパーズームカメラ、デジタル一眼レフ(DSLR)カメラ)、監視カメラ、カメラを含む監視システム、等に組み込むことができる。
12 is an illustration of an
種々の実施態様において、システム1200は、ディスプレイ1220に接続されたプラットフォーム1202を含む。プラットフォーム1202は、コンテンツサービスデバイス1230またはコンテンツ配信デバイス1240といったコンテンツデバイス、または、画像センサ1219といった他のコンテンツソースからコンテンツを受信することができる。例えば、プラットフォーム1202は、ここにおいて説明されるように、画像センサ1219または任意の他のコンテンツソースから画像データを受信することができる。1つ以上のナビゲーション機能を含むナビゲーションコントローラ1250を使用して、例えば、プラットフォーム1202及び/又はディスプレイ1220と対話(interact)することができる。これらのコンポーネントそれぞれは、以下でより詳細に説明される。
In various embodiments, the
種々の実装において、プラットフォーム1202は、チップセット1205、プロセッサ1210、メモリ1212、アンテナ1213、ストレージ1214、グラフィックスサブシステム1215、アプリケーション1216、画像信号プロセッサ1217、及び/又は、無線装置(radio)1218の任意の組み合わせを含み得る。チップセット1205は、プロセッサ1210、メモリ1212、ストレージ1214、グラフィックスサブシステム1215、アプリケーション1216、画像信号プロセッサ1217、及び/又は、無線装置1218の間の相互通信を提供することができる。例えば、チップセット1205は、ストレージ1214との相互通信を提供することができるストレージアダプタ(図示なし)を含み得る。 In various implementations, the platform 1202 may include any combination of the chipset 1205, the processor 1210, the memory 1212, the antenna 1213, the storage 1214, the graphics subsystem 1215, the application 1216, the image signal processor 1217, and/or the radio 1218. The chipset 1205 may provide intercommunication between the processor 1210, the memory 1212, the storage 1214, the graphics subsystem 1215, the application 1216, the image signal processor 1217, and/or the radio 1218. For example, the chipset 1205 may include a storage adapter (not shown) that may provide intercommunication with the storage 1214.
プロセッサ1210は、複合命令セットコンピュータまたは縮小命令セットコンピュータプロセッサ、x86命令セット互換プロセッサ、マルチコア、または、任意の他のマイクロプロセッサまたは中央処理ユニットとして実装され得る。種々の実装において、プロセッサ1210は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサ、等であってよい。 The processor 1210 may be implemented as a mixed instruction set computer or reduced instruction set computer processor, an x86 instruction set compatible processor, a multi-core, or any other microprocessor or central processing unit. In various implementations, the processor 1210 may be a dual-core processor, a dual-core mobile processor, etc.
メモリ1212は、これらに限定されるわけではないが、ランダムアクセスメモリ(RAM)、ダイナミック・ランダムアクセス・モリ(DRAM)、またはスタティックRAM(SRAM)といった、揮発性メモリデバイスとして実装され得る。 Memory 1212 may be implemented as a volatile memory device, such as, but not limited to, random access memory (RAM), dynamic random access memory (DRAM), or static RAM (SRAM).
ストレージ1214は、これらに限定されるわけではないが、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部ストレージ、取り付けられた(attached)ストレージ、フラッシュメモリ、バッテリバックアップSDRAM(シンクロナスDRAM)、及び/又は、ネットワークアクセス可能ストレージデバイスといった、不揮発性ストレージとして実装され得る。様々な実装において、ストレージ1214は、例えば、複数のハードドライブが含まれる場合に、価値のあるデジタルメディアに対するストレージ性能強化保護(storage performance enhanced protection)を増加する技術を含んでよい。 Storage 1214 may be implemented as non-volatile storage, such as, but not limited to, a magnetic disk drive, an optical disk drive, a tape drive, internal storage, attached storage, flash memory, battery-backed synchronous dynamic random access memory (SDRAM), and/or a network-accessible storage device. In various implementations, storage 1214 may include technology to increase storage performance enhanced protection for valuable digital media, for example, when multiple hard drives are included.
画像信号プロセッサ1217は、画像処理のために使用される特殊化されたデジタル信号プロセッサ、等として実装され得る。いくつかの例において、画像信号プロセッサ1217は、単一命令多重データまたは複数命令多重データアーキテクチャ、等に基づいて実装され得る。いくつかの例において、画像信号プロセッサ1217は、メディアプロセッサとして特徴付けられ得る。ここにおいて説明されるように、画像信号プロセッサ1217は、チップアーキテクチャ上のシステムに基づいて、かつ/あるいは、マルチコアアーキテクチャに基づいて、実装されてよい。 Image signal processor 1217 may be implemented as a specialized digital signal processor used for image processing, etc. In some examples, image signal processor 1217 may be implemented based on a single instruction multiple data or multiple instruction multiple data architecture, etc. In some examples, image signal processor 1217 may be characterized as a media processor. As described herein, image signal processor 1217 may be implemented based on a system on a chip architecture and/or based on a multi-core architecture.
グラフィックスサブシステム1215は、表示のための静止画またはビデオといった画像の処理を実行することができる。グラフィックスサブシステム1215は、例えば、グラフィックス処理ユニットまたはビジュアル処理ユニットであってよい。アナログまたはデジタルインターフェイスを使用して、グラフィックスサブシステム1215とディスプレイ1220とを通信可能に接続することができる。例えば、インターフェイスは、High-Definition Multimedia Interface、DisplayPort、無線HDMI(登録商標)、及び/又は、無線HD準拠技術のいずれかであってよい。グラフィックスサブシステム1215は、プロセッサ1210またはチップセット1205へと統合されてよい。いくつか実装形態において、グラフィックスサブシステム1215は、チップセット1205に通信可能に接続されたスタンドアロン装置であってよい。 The graphics subsystem 1215 can perform processing of images, such as still images or video, for display. The graphics subsystem 1215 can be, for example, a graphics processing unit or a visual processing unit. An analog or digital interface can be used to communicatively connect the graphics subsystem 1215 to the display 1220. For example, the interface can be any of High-Definition Multimedia Interface, DisplayPort, Wireless HDMI, and/or Wireless HD compliant technologies. The graphics subsystem 1215 can be integrated into the processor 1210 or the chipset 1205. In some implementations, the graphics subsystem 1215 can be a standalone device communicatively connected to the chipset 1205.
ここにおいて説明されるグラフィックス及び/又はビデオ処理技術は、種々のハードウェアアーキテクチャにおいて実装され得る。例えば、グラフィックス及び/又はビデオ機能は、チップセット内に統合されてよい。代替的に、個別のグラフィックス及び/又はビデオプロセッサが使用され得る。さらに別の実装として、グラフィックス及び/又はビデオ機能は、マルチコアプロセッサを含む汎用プロセッサによって提供され得る。さらなる実施形態において、機能は、民生用電子装置において実装されてよい。 The graphics and/or video processing techniques described herein may be implemented in a variety of hardware architectures. For example, graphics and/or video capabilities may be integrated within a chipset. Alternatively, separate graphics and/or video processors may be used. In yet another implementation, graphics and/or video capabilities may be provided by a general-purpose processor, including a multi-core processor. In further embodiments, the capabilities may be implemented in a consumer electronic device.
無線装置1218は、種々の適切な無線通信技術を使用して信号を送受信することが可能な1つ以上の無線を含み得る。そうした技術は、1つ以上の無線ネットワークにわたる通信を含み得る。無線ネットワークの例は(これらに限定されるわけではないが)、無線ローカルエリアネットワーク(WLAN)、無線パーソナルエリアネットワーク(WPAN)、無線大都市エリアネットワーク(WMAN)、セルラネットワーク、および、衛星ネットワークを含む。そうしたネットワークにわたる通信において、無線装置1218は、任意のバージョンの1つ以上の適用可能な規格に従って動作し得る。 The wireless device 1218 may include one or more radios capable of transmitting and receiving signals using various suitable wireless communication technologies. Such technologies may include communication over one or more wireless networks. Examples of wireless networks include, but are not limited to, wireless local area networks (WLANs), wireless personal area networks (WPANs), wireless metropolitan area networks (WMANs), cellular networks, and satellite networks. In communicating over such networks, the wireless device 1218 may operate according to one or more applicable standards in any version.
様々な実施形態において、ディスプレイ1220は、任意のテレビジョンタイプのモニタまたはディスプレイを含み得る。ディスプレイ1220は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビジョンのような装置、及び/又は、テレビジョンを含み得る。ディスプレイ1220は、デジタル及び/又はアナログであってよい。様々な実装において、ディスプレイ1220は、ホログラフィ表示であってもよい。また、ディスプレイ1220は、視覚的投影を受容し得る透明表面(transparent surface)であってよい。そうした投影は、様々な形態の情報、画像、及び/又は、オブジェクトを伝達し得る。例えば、そうした投影は、モバイル拡張現実(MAR)アプリケーションのための視覚的オーバレイであってよい。1つ以上のソフトウェアアプリケーション1216の制御下で、プラットフォーム1202は、ディスプレイ1220上にユーザインターフェイス1222を表示し得る。 In various embodiments, the display 1220 may include any television-type monitor or display. The display 1220 may include, for example, a computer display screen, a touch screen display, a video monitor, a television-like device, and/or a television. The display 1220 may be digital and/or analog. In various implementations, the display 1220 may be a holographic display. The display 1220 may also be a transparent surface that may receive visual projections. Such projections may convey various forms of information, images, and/or objects. For example, such projections may be visual overlays for mobile augmented reality (MAR) applications. Under control of one or more software applications 1216, the platform 1202 may display a user interface 1222 on the display 1220.
様々な実装において、コンテンツサービスデバイス1230は、国内、国際、及び/又は、独立したサービスによってホストされてよく、従って、例えば、インターネットを介してプラットフォーム1202にアクセス可能であり得る。コンテンツサービスデバイス1230は、プラットフォーム1202及び/又はディスプレイ1220に接続され得る。プラットフォーム1202及び/又はコンテンツサービスデバイス1230は、ネットワーク1260との間で媒体情報(media information)を通信(例えば、送受信)するために、ネットワーク1260に接続され得る。コンテンツ配信デバイス1240は、また、プラットフォーム1202及び/又はディスプレイ1220にも接続され得る。
In various implementations, the content services device(s) 1230 may be hosted by a national, international, and/or independent service and thus may be accessible to the platform 1202 via, for example, the Internet. The content services device(s) 1230 may be connected to the platform 1202 and/or the display 1220. The platform 1202 and/or the content services device(s) 1230 may be connected to the
画像センサ1219は、シーンに基づいて画像データを提供し得る任意の適切な画像センサを含んでよい。例えば、画像センサ1219は、半導体電荷結合素子ベースのセンサ、相補型金属酸化物半導体ベースのセンサ、N型金属酸化物半導体ベースのセンサ、等を含み得る。例えば、画像センサ1219は、画像データを生成するためにシーンの情報を検出し得る任意のデバイスを含み得る。
様々な実装において、コンテンツサービスデバイス1230は、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、インターネット可能なデバイス、または、デジタル情報及び/又はコンテンツを配信することができるアプライアンス、および、コンテンツプロバイダとプラットフォーム1202及び/又はディスプレイ1220との間で、ネットワーク1260を介して、または直接的に、コンテンツを一方向または双方向に通信することができる他の同様なデバイス、を含み得る。コンテンツは、ネットワーク1260を介して、システム1200内のコンポーネントおよびコンテンツプロバイダのいずれか1つとの間及び/又はそれらから、一方向及び/又は双方向に通信され得ることが正しく理解されるだろう。コンテンツの例は、例えば、ビデオ、音楽、医療、およびゲーム情報などを含む、任意の媒体情報を含み得る。
In various implementations, the content services device 1230 may include a cable television box, a personal computer, a network, a telephone, an Internet-enabled device, or an appliance capable of delivering digital information and/or content, and other similar devices capable of unidirectionally or bidirectionally communicating content between a content provider and the platform 1202 and/or the display 1220 via the
コンテンツサービスデバイス、1230は、媒体情報、デジタル情報、及び/又は他のコンテンツを含むケーブルテレビジョン・プログラミングといった、コンテンツを受信することができる。コンテンツプロバイダの例は、任意のケーブルまたは衛星テレビ、もしくは、無線またはインターネットのコンテンツプロバイダを含み得る。提供される実施例は、本開示に従った実施を何らかの形で制限するように意図されたものではない。 The content services device 1230 can receive content, such as cable television programming, including media information, digital information, and/or other content. Examples of content providers may include any cable or satellite television, or over-the-air or Internet content provider. The examples provided are not intended to limit in any way implementations according to the present disclosure.
様々な実装において、プラットフォーム1202は、1つ以上のナビゲーション機能を有するナビゲーションコントローラ1250から制御信号を受信することができる。ナビゲーションコントローラ1250のナビゲーション機能は、例えば、ユーザインターフェイス1222と対話(interact)するために使用され得る。様々な実施形態において、ナビゲーションコントローラ1250は、ユーザが空間(例えば、連続および多次元)データをコンピュータに入力することを可能にするコンピュータハードウェアコンポーネント(特に、ヒューマンインターフェイスデバイス)であり得るポインティングデバイスであってよい。グラフィカルユーザインターフェイス(GUI)、並びに、テレビおよびモニタといった、多くのシステムにより、ユーザは、物理的ジェスチャを用いてコンピュータ又はテレビジョンを制御し、データを提供することができる。
In various implementations, platform 1202 can receive control signals from a
ナビゲーションコントローラ1250のナビゲーション機能の動きは、ディスプレイ上に表示されるポインタ、カーソル、フォーカスリング、または他の視覚インジケータの動きによって、ディスプレイ(例えば、ディスプレイ1220)上で複製(replicated)され得る。例えば、ソフトウェアアプリケーション1216の制御下で、ナビゲーションコントローラ1250に置かれているナビゲーション機能は、例えば、ユーザインターフェイス1222上に表示される仮想ナビゲーション機能にマッピングされ得る。様々な実施形態において、ナビゲーションコントローラ1250は、別個のコンポーネントでなくてよいが、プラットフォーム1202及び/又はディスプレイ1220へと統合されてよい。しかしながら、本開示は、ここにおいて示される要素または記述されるコンテキストに限定されない。
Movement of navigation features of the
種々の実装において、ドライバ(図示なし)は、例えば、イネーブルされたときに、初期ブート(boot-up)後、ボタンのタッチで、テレビのようにプラットフォーム1202を、ユーザが即座にターンオンまたはオフできるようにする技術を含み得る。プログラムロジックにより、プラットフォーム1202は、プラットフォームがターン「オフ(“off”)」されている場合でさえも、コンテンツをメディアアダプタ、または、他のコンテンツサービスデバイス1230、もしくは、コンテンツ配信デバイス1240に対してストリーム(stream)することができる。加えて、チップセット1205は、例えば、5.1サラウンドサウンドオーディオ及び/又は高精細度7.1サラウンドサウンドオーディオのハードウェア及び/又はソフトウェアサポートを含み得る。ドライバは、統合グラフィックプラットフォームのためのグラフィックスドライバを含み得る。様々な実施形態において、グラフィックスドライバは、ペリフェラルコンポーネント相互接続(PCI)グラフィックスカードを含み得る。
In various implementations, the drivers (not shown) may include technology that, when enabled, allows a user to instantly turn the platform 1202 on or off like a television with the touch of a button after initial boot-up. Program logic allows the platform 1202 to stream content to a media adapter or other content service device 1230 or
様々な実装においては、システム1200に示されるコンポーネントのうち任意の1つ以上が統合され得る。例えば、プラットフォーム1202およびコンテンツサービスデバイス1230が、統合されてよく、または、プラットフォーム1202およびコンテンツ配信デバイス1240が、統合されてよく、もしくは、プラットフォーム1202、コンテンツサービスデバイス1230、およびコンテンツ配信デバイス1240が、例えば、統合されてよい。様々な実施形態において、プラットフォーム1202およびディスプレイ1220は、統合ユニットであり得る。ディスプレイ1220およびコンテンツサービスデバイス1230が、例えば、統合されてよく、または、ディスプレイ1220およびコンテンツ配信デバイス1240が統合されてよい。これらの実施例は、本開示を限定するものではない。
In various implementations, any one or more of the components shown in
様々な実施形態において、システム1200は、無線システム、有線システム、または、その両方の組み合わせとして実装されてよい。無線システムとして実装される場合、システム1200は、1つ以上のアンテナ、送信器、受信器、トランシーバ、増幅器、フィルタ、制御論理など、といった無線共有媒体(wireless shared media)を介して通信するのに適したコンポーネントおよびインターフェイスを含み得る。無線共有媒体の一つの例は、RFスペクトルなど、といった無線スペクトルの一部を含み得る。有線システムとして実装される場合、システム1200は、入出力アダプタ、入力/出力(I/O)アダプタを対応する有線通信媒体に接続するための物理コネクタ、ネットワークインターフェイスカード(NIC)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ、等といった有線通信媒体を介して通信するのに適したコンポーネントおよびインターフェイスを含み得る。有線通信媒体の例は、ワイヤ、ケーブル、メタルリード、プリント回路基板(PCB)、バックプレーン、スイッチファブリック(switch fabric)、半導体資料、ツイストペアワイヤ、同軸ケーブル、光ファイバ、等を含み得る。
In various embodiments,
プラットフォーム1202は、情報を通信するための1つ以上の論理的または物理的チャネルを確立することができる。情報は、媒体情報および制御情報を含み得る。媒体情報は、ユーザについて意図されたコンテンツを表す任意のデータを参照し得る。コンテンツの例は、例えば、音声会話、ビデオ会議、ストリーミングビデオ、電子メールメッセージ、ボイスメールメッセージ、英数字記号、グラフィックス、画像、ビデオ、テキスト、等からのデータを含み得る。音声会話からのデータは、例えば、音声情報、無音期間、バックグラウンドノイズ、快適雑音、トーン、等であり得る。制御情報は、自動化システムのためのコマンド、命令、または制御ワードを表す任意のデータを参照し得る。例えば、制御情報は、システムを通して媒体情報をルーティングするために使用されてよく、または、ノードに所定の方法で媒体情報を処理するように指示するために使用され得る。しかしながら、実施形態は、図12に示され又は説明された要素またはコンテキストに限定されるものではない。 The platform 1202 can establish one or more logical or physical channels for communicating information. The information can include media information and control information. Media information can refer to any data that represents content intended for a user. Examples of content can include, for example, data from an audio conversation, a video conference, streaming video, an email message, a voicemail message, alphanumeric symbols, graphics, images, video, text, etc. Data from an audio conversation can be, for example, speech information, periods of silence, background noise, comfort noise, tones, etc. Control information can refer to any data that represents commands, instructions, or control words for an automated system. For example, control information can be used to route media information through a system or to instruct a node to process the media information in a predetermined manner. However, embodiments are not limited to the elements or context shown or described in FIG. 12.
上述のように、システム1200は、様々な物理的スタイルまたはフォームファクタにおいて具体化され得る。図13は、本開示の少なくともいくつかの実施例に従って構成された、一つの例示的なスモールフォームファクタデバイス1300を示す。いくつかの例において、システム1200は、デバイス1300を介して実施されてよい。他の例においては、ここにおいて説明される他のシステム、コンポーネント、またはモジュール、もしくは、その一部が、デバイス1300を介して実装され得る。様々な実施形態において、例えば、デバイス1300は、無線能力を有するモバイルコンピューティングデバイスとして実装され得る。モバイルコンピューティングデバイスは、処理システム、および、例えば、1つ以上のバッテリといった、モバイル電源または電源を有する任意のデバイスを参照し得る。
As mentioned above,
モバイルコンピューティングデバイスの例は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトラ・ラップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、携帯電話/PDAの組み合わせ、スマートデバイス(例えば、スマートフォン、スマートタブレット、またはスマートテレビジョン)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス、カメラ(例えば、ポイント-アンド-シュートカメラ、スーパーズームカメラ、デジタルシングルレンズリフレックス(DSLR)カメラ)、等を含み得る。 Examples of mobile computing devices may include personal computers (PCs), laptop computers, ultra-laptop computers, tablets, touchpads, portable computers, handheld computers, personal digital assistants (PDAs), mobile phones, mobile phone/PDA combinations, smart devices (e.g., smartphones, smart tablets, or smart televisions), mobile internet devices (MIDs), messaging devices, data communications devices, cameras (e.g., point-and-shoot cameras, superzoom cameras, digital single lens reflex (DSLR) cameras), and the like.
モバイルコンピューティングデバイスの例は、また、自動車またはロボットによって実施されるように構成されたコンピュータ、または、リスト(wrist)コンピュータ、フィンガーコンピュータ、リングコンピュータ、眼鏡コンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、靴コンピュータ、衣類コンピュータ、および他のウェアラブルコンピュータといった、人によって装着されるコンピュータを含み得る。様々な実施形態において、例えば、モバイルコンピューティングデバイスは、音声通信及び/又はデータ通信と同様に、コンピュータアプリケーションを実行することができるスマートフォンとして実装されてよい。いくつかの実施形態は、一つの例として、スマートフォンとして実装されるモバイルコンピューティングデバイスを用いて説明され得るが、他の実施形態も同様に他の無線モバイルコンピューティングデバイスを用いて実装され得ることが理解されるだろう。本実施形態は、このコンテキストに限定されるものではない。 Examples of mobile computing devices may also include computers configured to be implemented by automobiles or robots, or computers worn by a person, such as wrist computers, finger computers, ring computers, eyeglass computers, belt clip computers, armband computers, shoe computers, clothing computers, and other wearable computers. In various embodiments, for example, a mobile computing device may be implemented as a smartphone capable of executing computer applications as well as voice and/or data communications. Some embodiments may be described using a mobile computing device implemented as a smartphone as an example, although it will be understood that other embodiments may be implemented using other wireless mobile computing devices as well. The embodiments are not limited in this context.
図13に示されるように、デバイス1300は、フロント1301およびバック1302を有するハウジングを含んでよい。デバイス1300は、ディスプレイ1304、入力/出力(I/O)デバイス1306、カラーカメラ1321、カラーカメラ1322、および統合アンテナ1308を含む。いくつかの実施態様において、カラーカメラ1321およびカラーカメラ1322は、ここにおいて説明されるように、平面画像を獲得する。いくつかの実施形態において、デバイス1300は、カラーカメラ1321および1322を含まず、デバイス1300は、他のデバイスから入力画像データ(例えば、ここにおいて説明される任意の入力画像データ)を獲得する。デバイス1300は、また、ナビゲーション機能1312を含んでよい。I/Oデバイス1306は、モバイルコンピューティングデバイスに情報を入力するための任意の適切なI/Oデバイスを含み得る。I/Oデバイス1306の例は、英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、マイクロホン、スピーカ、音声認識装置、およびソフトウェア、等を含み得る。情報は、また、マイクロホン(図示なし)を介してデバイス1300に入力されてよく、または、音声認識装置によってデジタル化されてよい。示されるように、デバイス1300は、デバイス1300のバック1302(または他の場所)の中へ組み込まれたカラーカメラ1321、1322、およびフラッシュ1310を含み得る。他の例において、カラーカメラ1321、1322、およびフラッシュ1310は、デバイス1300のフロント1301の中へ組み込まれてよく、または、カメラのフロントセットおよびバックセットの両方が備えられてよい。カラーカメラ1321、1322およびフラッシュ1310は、例えば、ディスプレイ1304に出力され、かつ/あるいは、アンテナ1308を介してデバイス1300から遠隔通信される画像またはストリーミングビデオに処理され得る、IRテクスチャ補正を伴うカラー画像データを生成するためのカメラモジュールのコンポーネントであってよい。
As shown in FIG. 13,
種々の実施形態は、ハードウェア要素、ソフトウェア要素、または、その両方の組み合わせを使用して実装され得る。ハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗、キャパシタ、インダクタ、など)、集積回路、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(PFGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット、等を含み得る。ソフトウェアの例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、ファンクション、方法、プロシージャ、ソフトウェアインターフェイス、アプリケーションプログラムインターフェイス(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、バユー、シンボル、または、それらの任意の組み合わせを含み得る。ハードウェア要素及び/又はソフトウェア要素を使用して実施される実施形態を決定することは、所望の計算速度、電力レベル、耐熱性、処理サイクルバジェット、入力データ速度、出力データ速度、メモリリソース、データバス速度、および、他の設計または性能制約といった、任意の数の要因に従って変動し得る。 Various embodiments may be implemented using a combination of hardware elements, software elements, or both. Examples of hardware elements may include a processor, a microprocessor, a circuit, a circuit element (e.g., a transistor, a resistor, a capacitor, an inductor, etc.), an integrated circuit, an application specific integrated circuit (ASIC), a programmable logic device (PLD), a digital signal processor (DSP), a field programmable gate array (PFGA), a logic gate, a register, a semiconductor device, a chip, a microchip, a chipset, etc. Examples of software may include a software component, a program, an application, a computer program, an application program, a system program, a machine program, an operating system software, a middleware, a firmware, a software module, a routine, a subroutine, a function, a method, a procedure, a software interface, an application program interface (API), an instruction set, a computing code, a computer code, a code segment, a computer code segment, a word, a bayou, a symbol, or any combination thereof. Determining which embodiment to implement using hardware and/or software elements may vary according to any number of factors, such as desired computational speed, power levels, thermal tolerance, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds, and other design or performance constraints.
少なくとも1つの実施形態の1つ以上の態様は、プロセッサ内の種々のロジックを表すマシンで読取り可能な媒体上に保管された代表的な命令によって実施され得る。それは、マシンによって読み取られたときに、ここにおいて説明される技術を実行するためのロジックをマシンに作り上げさせる。そうした表示は、IPコアとして知られており、有形のマシンで読取り可能な媒体上に保管され、そして、ロジックまたはプロセッサを実際に製造する製造機械にロードするために様々な顧客または製造施設へ供給される。 One or more aspects of at least one embodiment may be implemented by representative instructions stored on a machine-readable medium that represent various logic within a processor, which, when read by a machine, causes the machine to create logic for performing the techniques described herein. Such representations, known as IP cores, are stored on tangible machine-readable media and supplied to various customers or manufacturing facilities for loading into manufacturing machines that actually produce the logic or processor.
ここにおいて説明される所定の特徴は、種々の実施形態を参照して説明されてきたが、この説明は、限定的な意味で解釈されるように意図されたものではない。従って、本開示が関係する当業者にとって明らかである、ここにおいて説明された実施形態、並びに、他の実施形態の種々の修正は、本開示の精神および範囲内にあるとみなされる。 While certain features described herein have been described with reference to various embodiments, this description is not intended to be construed in a limiting sense. Accordingly, various modifications of the embodiments described herein, as well as other embodiments, that are apparent to those skilled in the art to which this disclosure pertains, are deemed to be within the spirit and scope of the disclosure.
1つ以上の第1実施形態において、イマーシブビデオデータを符号化するための方法は、第1ビット深さでの第1深度値を有する第1深度ビューを受信するステップであり、前記第1ビット深さは、第1最小深度値から第1最大深度値までの値の第1利用可能範囲を含むステップと、第2深度ビューを生成するために、前記第1深度値を、前記第1ビット深さよりも小さい第2ビット深さでの第2深度値へマッピングするステップであり、前記第2ビット深さは、第2最小深度値から第2最大深度値までの値の第2利用可能範囲を含み、前記マッピングのためのラインセグメントを画定するために、第1ラインセグメントエンドポイントおよび第2ラインセグメントエンドポイントを使用し、前記第1ラインセグメントエンドポイントの水平成分および垂直成分は、前記第1最小深度値および是第2最小深度値を、それぞれに、超える、ステップと、第2深度ビュー、並びに、前記第1ラインセグメントエンドポイントおよび前記第2ラインセグメントエンドポイントを、ビットストリームへと符号化するステップと、を含む。 In one or more first embodiments, a method for encoding immersive video data includes receiving a first depth view having a first depth value at a first bit depth, the first bit depth including a first available range of values from a first minimum depth value to a first maximum depth value; mapping the first depth value to a second depth value at a second bit depth less than the first bit depth, the second bit depth including a second available range of values from a second minimum depth value to a second maximum depth value, using first and second line segment endpoints to define line segments for the mapping, the horizontal and vertical components of the first line segment endpoints exceeding the first and second minimum depth values, respectively, to generate a second depth view; and encoding the second depth view and the first and second line segment endpoints into a bitstream.
1つ以上の第2実施形態においては、さらに、第1実施形態に対して、前記第2ラインセグメントエンドポイントの水平成分および垂直成分は、それぞれに、前記第1最大深度値および前記第2最大深度値よりも小さい。 In one or more second embodiments, further relative to the first embodiment, the horizontal and vertical components of the second line segment endpoints are less than the first and second maximum depth values, respectively.
1つ以上の第3実施形態においては、さらに、第1または第2実施形態に対して、前記第1ラインセグメントエンドポイントおよび前記第2ラインセグメントエンドポイントは、前記マッピングの第1ラインセグメントを画定し、前記マッピングは、さらに、前記第2ラインセグメントエンドポイントおよび第3ラインセグメントエンドポイントによって画定される第2ラインセグメントを含む。 In one or more third embodiments, further to the first or second embodiment, the first line segment endpoint and the second line segment endpoint define a first line segment of the mapping, and the mapping further includes a second line segment defined by the second line segment endpoint and a third line segment endpoint.
1つ以上の第4実施形態においては、さらに、第1から第3実施形態のいずれかに対して、前記第1ラインセグメントは、第1スロープを有し、かつ、 前記第2ラインセグメントは、前記第1ラインセグメントに対する第1深度値ピクセルカウントが前記第2ラインセグメントに対する第2深度値ピクセルカウントを超えていることに応答して、前記第1スロープよりも小さい第2スロープを有する。 In one or more fourth embodiments, further to any of the first to third embodiments, the first line segment has a first slope, and the second line segment has a second slope less than the first slope in response to a first depth value pixel count for the first line segment exceeding a second depth value pixel count for the second line segment.
1つ以上の第5実施形態においては、さらに、第1から第4実施形態のいずれかに対して、前記方法は、さらに、前記マッピングの少なくとも前記第1ラインセグメントおよび前記第2ラインセグメントを決定するステップ、を含み、前記決定は、前記第1深度ビューの少なくとも一部を使用して、深度値範囲ごとの深度値ピクセルカウントのヒストグラムを生成するステップと、前記マッピングおよび逆マッピングに対応する再構成誤差を最小化するために、前記第1ラインセグメントおよび前記第2ラインセグメントを含む前記マッピングについて、複数のラインセグメントを再帰的に生成するステップと、によって行われる。 In one or more fifth embodiments, further to any of the first to fourth embodiments, the method further includes determining at least the first and second line segments of the mapping, the determining being performed by generating a histogram of depth value pixel counts for each depth value range using at least a portion of the first depth view, and recursively generating a number of line segments for the mapping including the first and second line segments to minimize a reconstruction error corresponding to the mapping and the inverse mapping.
1つ以上の第6実施形態においては、さらに、第1から第5実施形態のいずれかに対して、前記方法は、さらに、前記第1深度ビューのエッジ領域を決定するステップを含み、前記深度値ピクセルカウントのヒストグラムは、前記エッジ領域内のピクセルを使用し、かつ、前記エッジ領域外のピクセルを除外して、生成される。 In one or more sixth embodiments, further to any of the first to fifth embodiments, the method further includes determining an edge region of the first depth view, and the histogram of depth value pixel counts is generated using pixels within the edge region and excluding pixels outside the edge region.
1つ以上の第7実施形態においては、さらに、第1から第6実施形態のいずれかに対して、前記方法は、さらに、第1および第2深度ビューに対応するテクスチャビューをビットストリームへと符号化するステップ、を含む。 In one or more seventh embodiments, the method further includes, relative to any of the first to sixth embodiments, encoding texture views corresponding to the first and second depth views into a bitstream.
1つ以上の第8実施形態においては、さらに、第1から第7実施形態のいずれかに対して、前記第1ビット深さは16ビットであり、前記第2ビット深さは8ビットまたは10ビットのうち1つであり、そして、ビットストリームは高効率ビデオ符号化(HEVC)に準拠したビットストリームである。 In one or more eighth embodiments, further to any of the first to seventh embodiments, the first bit depth is 16 bits, the second bit depth is one of 8 bits or 10 bits, and the bitstream is a High Efficiency Video Coding (HEVC) compliant bitstream.
1つ以上の第9実施形態において、イマーシブビデオデータを復号するための方法は、第1ビット深さでの第1深度値を有する第1深度ビュー、および、前記第1深度ビューを第2深度ビューにマッピングするための第1ラインセグメントエンドポイントおよび第2ラインセグメントエンドポイント、を決定するためにビットストリームを復号化するステップであり、前記第1ビット深さは、第1最小値から第1最大値までの値の第1利用可能範囲を含む、ステップと、第2深度ビューを生成するために、前記第1ラインセグメントエンドポイントおよび前記第2ラインセグメントエンドポイントを使用して、第1深度値を第2深度値にマッピングするステップであり、第2深度値は、前記第1ビット深さよりも大きい第2ビット深さであり、前記第2ビット深さは、第2最小値から第2最大値までの値の第2利用可能範囲を含み、前記第1ラインセグメントエンドポイントの水平成分および垂直成分は、それぞれに、前記第1最小値および前記第2最小値を超えている、ステップと、前記第2深度ビューに基づいて、合成ビューを生成するステップと、を含む。 In one or more ninth embodiments, a method for decoding immersive video data includes the steps of: decoding a bitstream to determine a first depth view having a first depth value at a first bit depth, and first and second line segment endpoints for mapping the first depth view to a second depth view, the first bit depth including a first available range of values from a first minimum value to a first maximum value; mapping the first depth value to a second depth value using the first and second line segment endpoints to generate a second depth view, the second depth value being at a second bit depth greater than the first bit depth, the second bit depth including a second available range of values from a second minimum value to a second maximum value, the horizontal and vertical components of the first line segment endpoints exceeding the first minimum value and the second minimum value, respectively; and generating a synthetic view based on the second depth view.
1つ以上の第10実施形態においては、さらに、第9実施形態に対して、前記第2ラインセグメントエンドポイントの水平成分および垂直成分は、それぞれに、前記第1最大値の深度値および前記第2最大値の深度値より小さい。 In one or more tenth embodiments, further to the ninth embodiment, the horizontal and vertical components of the second line segment endpoint are less than the first maximum depth value and the second maximum depth value, respectively.
1つ以上の第11実施形態においては、さらに、第9または第10実施形態に対して、前記第1ラインセグメントエンドポイントおよび前記第2ラインセグメントエンドポイントは、前記マッピングの第1ラインセグメントを画定し、前記マッピングは、さらに、前記第2ラインセグメントエンドポイントおよび第3ラインセグメントエンドポイントによって画定される第2ラインセグメントを含む。 In one or more eleventh embodiments, further to the ninth or tenth embodiment, the first line segment endpoint and the second line segment endpoint define a first line segment of the mapping, and the mapping further includes a second line segment defined by the second line segment endpoint and a third line segment endpoint.
1つ以上の第12実施形態においては、さらに、第9から第11実施形態のいずれかに対して、前記第1ラインセグメントは、第1スロープを有し、かつ、
前記第2ラインセグメントは、前記第1スロープよりも小さい第2スロープを有する。
In one or more twelfth embodiment, further to any of the ninth to eleventh embodiments, the first line segment has a first slope; and
The second line segment has a second slope that is less than the first slope.
1つ以上の第13実施形態においては、さらに、第9から第12実施形態のいずれかに対して、前記方法は、さらに、前記ビットストリームから前記第1深度ビューおよび前記第2深度ビューに対応するテクスチャビューを復号するステップであり、前記合成ビューは、前記テクスチャビューに基づいて生成される、ステップを含む。 In one or more thirteenth embodiments, the method further includes, relative to any of the ninth to twelfth embodiments, a step of decoding texture views corresponding to the first depth view and the second depth view from the bitstream, and the synthetic view is generated based on the texture views.
1つ以上の第14実施形態においては、さらに、第9から第13実施形態のいずれかに対して、前記第1ビット深さは8ビットまたは10ビットのうち1つであり、前記第2ビット深さは16ビットであり、そして、前記ビットストリームは、高効率ビデオ符号化(HEVC)準拠ビットストリームである。 In one or more of the fourteenth embodiments, further to any of the ninth to thirteenth embodiments, the first bit depth is one of 8 bits or 10 bits, the second bit depth is 16 bits, and the bitstream is a High Efficiency Video Coding (HEVC) compliant bitstream.
1つ以上の第15実施形態において、イマーシブビデオデータを符号化するための方法は、イマーシブビデオ生成またはキャプチャに対応しているカメラアレイに係る複数のカメラそれぞれについてカメラ投影モードを決定するステップと、前記カメラについてカメラ投影モードフラグを生成するステップであり、前記カメラ投影モードフラグは、特定の投影モードを有する前記カメラそれぞれに応答する第1値、および、前記特定の投影モード以外の投影モードを有する前記カメラのいずれかに応答する第2値を有している、ステップと、前記カメラ投影モードフラグをビットストリームへと符号化するステップと、を含む。 In one or more fifteenth embodiments, a method for encoding immersive video data includes determining a camera projection mode for each of a plurality of cameras in a camera array capable of immersive video generation or capture, generating camera projection mode flags for the cameras, the camera projection mode flags having a first value responsive to each of the cameras having a particular projection mode and a second value responsive to any of the cameras having a projection mode other than the particular projection mode, and encoding the camera projection mode flags into a bitstream.
1つ以上の第16実施形態においては、さらに、第15実施形態に対して、前記第1値を有している第1カメラ投影モードフラグに応答して、前記ビットストリームは、さらに、前記特定の投影モードを示す単一カメラ投影モードインジケータを含む。 In one or more sixteenth embodiments, in response to a first camera projection mode flag having the first value, the bitstream further includes a single camera projection mode indicator indicating the particular projection mode, relative to the fifteenth embodiment.
1つ以上の第17実施形態においては、さらに、第15または第16実施形態に対して、前記第2値を有している前記カメラ投影モードフラグに応答して、前記ビットストリームは、さらに、前記カメラそれぞれについて1つである、複数のカメラ投影モードインジケータを含む。 In one or more of the seventeenth embodiments, further to the fifteenth or sixteenth embodiments, in response to the camera projection mode flag having the second value, the bitstream further includes a plurality of camera projection mode indicators, one for each of the cameras.
1つ以上の第18実施形態においては、さらに、第15から第17実施形態のいずれかに対して前記、カメラ投影モードは、全方向投影モード、通常視点投影モード、または正投影モードのうち少なくとも1つを含む。 In one or more of the eighteenth embodiments, further to any of the fifteenth to seventeenth embodiments, the camera projection mode includes at least one of an omnidirectional projection mode, a normal viewpoint projection mode, or an orthographic projection mode.
1つ以上の第19実施形態においては、さらに、第15から第18実施形態のいずれかに対して、前記方法は、さらに、前記カメラそれぞれによって達成可能な最小物理的深さおよび最大物理的深さを決定するステップと、前記カメラについて物理的深さフラグを生成するステップであり、前記物理的深さフラグは、前記カメラが、共有された最小物理的深さ、及び/又は、共有された最大物理的深度を有するか否か、を示す、ステップと、前記物理的深さフラグを、前記ビットストリームへと符号化するステップと、を含む。 In one or more nineteenth embodiments, further to any of the fifteenth to eighteenth embodiments, the method further includes determining a minimum and a maximum physical depth achievable by each of the cameras, generating a physical depth flag for the cameras, the physical depth flag indicating whether the cameras have a shared minimum physical depth and/or a shared maximum physical depth, and encoding the physical depth flag into the bitstream.
1つ以上の第20実施形態においては、さらに、第15から第19実施形態のいずれかに対して、前記方法は、さらに、前記カメラそれぞれについて、ヨー、ピッチ、およびロールのパラメータ、または、クォータニオンパラメータのうち1つを決定するステップと、前記カメラについて、ヨー、ピッチ、およびロールのフラグ、または、クォータニオンフラグを生成するステップであり、ヨー、ピッチ、およびロールの前記フラグ、または、前記クォータニオンフラグは、前記カメラが、共有のヨー、ピッチ、およびロールのパラメータ、または、共有のクォータニオンパラメータを有するか否かを示す、ステップと、ヨー、ピッチ、およびロールの前記フラグ、または、前記クォータニオンフラグを、前記ビットストリームへと符号化するステップと、を含む。 In one or more twentieth embodiments, further to any of the fifteenth to nineteenth embodiments, the method further includes the steps of determining one of yaw, pitch, and roll parameters or quaternion parameters for each of the cameras, generating yaw, pitch, and roll flags or quaternion flags for the cameras, the yaw, pitch, and roll flags or the quaternion flags indicating whether the cameras have shared yaw, pitch, and roll parameters or shared quaternion parameters, and encoding the yaw, pitch, and roll flags or the quaternion flags into the bitstream.
1つ以上の第21実施形態においては、さらに、第15から第20実施形態のいずれかに対して、前記ヨー、ピッチ、およびロールパラメータ、または、前記クォータニオンパラメータは、デフォルトのヨー、ピッチ、およびロール、または、デフォルトのクォータニオンパラメータフラグ値を示す。 In one or more twenty-first embodiments, further to any of the fifteenth to twentieth embodiments, the yaw, pitch, and roll parameters or the quaternion parameters indicate default yaw, pitch, and roll or default quaternion parameter flag values.
1つ以上の第22実施形態においては、さらに、第15から第21実施形態のいずれかに対して、前記方法は、さらに、前記カメラ間の共有物理的間隔を表す、共有物理的間隔値を決定するステップと、前記共有物理的間隔値を、前記ビットストリームへと符号化するステップと、を含む。 In one or more twenty-second embodiments, further to any of the fifteenth to twenty-first embodiments, the method further includes determining a shared physical spacing value representing a shared physical spacing between the cameras, and encoding the shared physical spacing value into the bitstream.
1つ以上の第23実施形態において、イマーシブビデオデータを復号化するための方法は、深さビュー、テクスチャビュー、および、カメラアレイの複数のカメラに対応するカメラ投影モードフラグを決定するためにビットストリームの復号するステップであり、前記カメラ投影モードフラグは、前記カメラの全てが特定の投影モードを有することを示す第1値、または、前記カメラのいずれかが前記特定の投影モード以外の投影モードを有することを示す第2値を有している、ステップと、前記深さビュー、前記テクスチャビュー、および、前記カメラ投影モードフラグの深さビューに基づいて、復号されたビューを生成するステップと、を含む。 In one or more twenty-third embodiments, a method for decoding immersive video data includes decoding a bitstream to determine a depth view, a texture view, and camera projection mode flags corresponding to a plurality of cameras of a camera array, the camera projection mode flags having a first value indicating that all of the cameras have a particular projection mode or a second value indicating that any of the cameras have a projection mode other than the particular projection mode; and generating a decoded view based on the depth view, the texture view, and the depth view of the camera projection mode flags.
1つ以上の第24実施形態においては、さらに、第23実施形態に対して、前記第1値を有する前記カメラ投影モードフラグに応答して、前記ビットストリームは、さらに、前記特定の投影モードを示す単一カメラ投影モードインジケータを含む。 In one or more of the twenty-fourth embodiments, further to the twenty-third embodiment, in response to the camera projection mode flag having the first value, the bitstream further includes a single camera projection mode indicator indicating the particular projection mode.
1つ以上の第25実施形態においては、さらに、第23または第24実施形態に対して、前記第2値を有する前記カメラ投影モードフラグに応答して、前記ビットストリームは、さらに、前記カメラそれぞれについて1つである、複数のカメラ投影モードインジケータを含む。 In one or more of the twenty-fifth embodiment, further to the twenty-third or twenty-fourth embodiment, in response to the camera projection mode flag having the second value, the bitstream further includes a plurality of camera projection mode indicators, one for each of the cameras.
1つ以上の第26実施形態においては、さらに、第23から第25実施形態のいずれかに対して、前記共有カメラ投影モードは、全方向投影モード、通常視点投影モード、または正投影モードのうち少なくとも1つを含む。 In one or more of the twenty-sixth embodiment, further to any of the twenty-third to twenty-fifth embodiments, the shared camera projection mode includes at least one of an omnidirectional projection mode, a normal viewpoint projection mode, or an orthogonal projection mode.
1つ以上の第27実施形態においては、さらに、第23から第26実施形態のいずれかに対して、前記ビットストリームは、さらに、前記カメラについて物理的深さフラグを含み、前記物理的深さフラグは、前記カメラが、共有される最小の物理的深さ、及び/又は、共有される最大の物理的深さ、を有するか否かを示す。 In one or more of the twenty-seventh embodiment, further to any of the twenty-third to twenty-sixth embodiments, the bitstream further includes a physical depth flag for the camera, the physical depth flag indicating whether the camera has a shared minimum physical depth and/or a shared maximum physical depth.
1つ以上の第28実施形態においては、さらに、第23から第27実施形態のいずれかに対して、前記ビットストリームは、さらに、前記カメラについてヨー、ピッチ、およびロールフラグ、または、クォータニオンフラグを含み、前記ヨー、ピッチ、およびロールフラグ、または、前記クォータニオンフラグは、前記カメラが共有ヨー、ピッチ、およびロールパラメータ、または、共有クォータニオンパラメータを有するか否かを示す。 In one or more twenty-eighth embodiments, further to any of the twenty-third to twenty-seventh embodiments, the bitstream further includes yaw, pitch, and roll flags or quaternion flags for the cameras, the yaw, pitch, and roll flags or the quaternion flags indicating whether the cameras have shared yaw, pitch, and roll parameters or shared quaternion parameters.
1つ以上の第29実施形態においては、さらに、第23から第28実施形態のいずれかに対して、本方法は、さらに、前記カメラが、共有ヨー、ピッチ、ロールパラメータ、または、共有クォータニオンパラメータを有することを示す、ヨー、ピッチ、およびロールフラグ、クォータニオンフラグに応答して、前記カメラそれぞれについて、ヨー、ピッチ、およびロールパラメータ、または、クォータニオンパラメータを、デフォルトのヨー、ピッチ、およびロールパラメータ、または、デフォルトのクォータニオンパラメータに設定するステップ、を含む。 In one or more twenty-ninth embodiments, further to any of the twenty-third to twenty-eighth embodiments, the method further includes the step of setting the yaw, pitch, and roll parameters, or the quaternion parameters, for each of the cameras, to default yaw, pitch, and roll parameters, or default quaternion parameters, in response to a yaw, pitch, and roll flag, or a quaternion flag indicating that the cameras have shared yaw, pitch, and roll parameters, or shared quaternion parameters.
1つ以上の第30実施形態においては、さらに、第23から第28実施形態のいずれかに対して、前記ビットストリームは、さらに、共有物理的間隔値を含み、かつ、前記方法は、さらに、前記共有物理的間隔値を使用して、前記カメラ間の物理的間隔を決定するステップ、を含む。 In one or more 30th embodiments, further to any of the 23rd to 28th embodiments, the bitstream further includes a shared physical spacing value, and the method further includes a step of determining a physical spacing between the cameras using the shared physical spacing value.
1つ以上の第31実施形態において、デバイスまたはシステムは、メモリと、上記の実施形態のうちいずれか1つに従った方法を実行するための1つ以上のプロセッサと、を含む。 In one or more thirty-first embodiments, a device or system includes a memory and one or more processors for performing a method according to any one of the above embodiments.
1つ以上の第32実施形態において、複数の命令を含む少なくとも1つのマシンで読取り可能な媒体は、コンピューティングデバイスで命令が実行されることに応答して、上記の実施形態のうちいずれか1つに従った方法を前記コンピューティングデバイスに実行させる。 In one or more thirty-second embodiments, at least one machine-readable medium containing a plurality of instructions causes a computing device to perform a method according to any one of the above embodiments in response to the instructions being executed on the computing device.
1つ以上の第33実施形態において、装置は、上記の実施形態のうちいずれか1つに従った方法を実施するための手段を含む。 In one or more of the thirty-third embodiments, the apparatus includes means for carrying out a method according to any one of the above embodiments.
これらの実施形態は、上記の実施形態に限定されるものではなく、添付の範囲から逸脱することなく、修正および変更によって実施することができることが認識されるだろう。例えば、上記の実施形態は、特徴の特定の組み合わせを含んでよい。しかしながら、上記の実施形態は、この点に関して限定されるものではなく、かつ、様々な実施形態において、上記の実施形態は、そうした特徴のサブセットのみを引き受けること、そうした特徴の異なる順序を引き受けること、そうした特徴の異なる組み合わせを引き受けること、及び/又は、明示的に列挙された特徴以外の追加の特徴を引き受けること、を含み得る。実施形態の範囲は、従って、添付の請求項を参照して決定され、そうした請求項が権利を有する均等物の全ての範囲を伴うものである。 It will be recognized that the embodiments are not limited to the above embodiments, but can be practiced with modification and alteration without departing from the scope of the appended claims. For example, the above embodiments may include a particular combination of features. However, the above embodiments are not limited in this respect, and in various embodiments, the above embodiments may include taking on only a subset of such features, taking on a different order of such features, taking on different combinations of such features, and/or taking on additional features other than those expressly recited. The scope of the embodiments should therefore be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
Claims (13)
第1ビット深さでの第1深度値を有する第1深度ビューを受信するステップであり、
前記第1ビット深さは、第1最小深度値から第1最大深度値までの値の第1利用可能範囲を含む、
ステップと、
第2深度ビューを生成するために、前記第1深度値を、前記第1ビット深さよりも小さい第2ビット深さでの第2深度値へマッピングするステップであり、
前記第2ビット深さは、第2最小深度値から第2最大深度値までの値の第2利用可能範囲を含み、
前記マッピングは、第1ラインセグメントエンドポイントおよび第2ラインセグメントエンドポイントを使用することによって実行されて、前記マッピングのためのラインセグメントを画定し、
前記第1ラインセグメントエンドポイントの水平成分および垂直成分は、前記第1深度値および前記第2深度値に対応しており、かつ、前記第1最小深度値および前記第2最小深度値を、それぞれに、超える、
ステップと、
第2深度ビュー、並びに、前記第1ラインセグメントエンドポイントおよび前記第2ラインセグメントエンドポイントを、ビットストリームへと符号化するステップと、
を含む、方法。 1. A method for encoding immersive video data, comprising:
receiving a first depth view having a first depth value at a first bit depth;
the first bit depth comprises a first available range of values from a first minimum depth value to a first maximum depth value;
Steps and
mapping the first depth values to second depth values at a second bit depth less than the first bit depth to generate a second depth view;
the second bit depth comprises a second available range of values from a second minimum depth value to a second maximum depth value;
The mapping is performed by using a first line segment end point and a second line segment end point to define a line segment for the mapping;
horizontal and vertical components of the first line segment endpoints correspond to the first and second depth values and exceed the first and second minimum depth values, respectively;
Steps and
encoding a second depth view and the first and second line segment endpoints into a bitstream;
A method comprising:
請求項1に記載の方法。 a horizontal component and a vertical component of the second line segment endpoint are less than the first maximum depth value and the second maximum depth value, respectively;
The method of claim 1.
前記マッピングは、さらに、前記第2ラインセグメントエンドポイントおよび第3ラインセグメントエンドポイントによって画定される第2ラインセグメントを含む、
請求項1または2に記載の方法。 the first line segment endpoint and the second line segment endpoint define a first line segment of the mapping;
the mapping further includes a second line segment defined by the second line segment endpoint and a third line segment endpoint.
The method according to claim 1 or 2.
前記第2ラインセグメントは、前記第1ラインセグメントに対する第1深度値ピクセルカウントが前記第2ラインセグメントに対する第2深度値ピクセルカウントを超えていることに応答して、前記第1スロープよりも小さい第2スロープを有する、
請求項3に記載の方法。 the first line segment has a first slope; and
the second line segment having a second slope less than the first slope in response to a first depth value pixel count for the first line segment exceeding a second depth value pixel count for the second line segment.
The method according to claim 3.
前記マッピングの少なくとも前記第1ラインセグメントおよび前記第2ラインセグメントを決定するステップ、を含み、
前記決定は、
前記第1深度ビューの少なくとも一部を使用して、深度値範囲ごとの深度値ピクセルカウントのヒストグラムを生成するステップと、
前記マッピングおよび逆マッピングに対応する再構成誤差を最小化するために、前記第1ラインセグメントおよび前記第2ラインセグメントを含む前記マッピングについて、複数のラインセグメントを再帰的に生成するステップと、
によって行われる、
請求項3または4に記載の方法。 The method further comprises:
determining at least the first and second line segments of the mapping;
The said decision:
generating a histogram of depth value pixel counts for each depth value range using at least a portion of the first depth view;
recursively generating a number of line segments for the mapping including the first line segment and the second line segment to minimize a reconstruction error corresponding to the mapping and the inverse mapping;
carried out by
The method according to claim 3 or 4.
前記第1深度ビューのエッジ領域を決定するステップを含み、
前記深度値ピクセルカウントのヒストグラムは、前記エッジ領域内のピクセルを使用し、かつ、前記エッジ領域外のピクセルを除外して、生成される、
請求項5に記載の方法。 The method further comprises:
determining an edge region of the first depth view;
the histogram of depth value pixel counts is generated using pixels within the edge region and excluding pixels outside the edge region.
The method according to claim 5.
第1ビット深さでの第1深度値を有する第1深度ビュー、および、前記第1深度ビューを第2深度ビューにマッピングするための第1ラインセグメントエンドポイントおよび第2ラインセグメントエンドポイント、を決定するためにビットストリームを復号化するステップであり、
前記第1ビット深さは、第1最小値から第1最大値までの値の第1利用可能範囲を含む、
ステップと、
第2深度ビューを生成するために、第1深度値を、第2深度値へマッピングするステップであり、
第2深度値は、前記第1ビット深さよりも大きい第2ビット深さであり、
前記第2ビット深さは、第2最小値から第2最大値までの値の第2利用可能範囲を含み、
前記マッピングは、前記第1ラインセグメントエンドポイントおよび前記第2ラインセグメントエンドポイントを使用することによって実行されて、前記マッピングのためのラインセグメントを画定し、
前記第1ラインセグメントエンドポイントの水平成分および垂直成分は、前記第1深度値および前記第2深度値に対応しており、かつ、前記第1最小値および前記第2最小値を、それぞれに、超えている、
ステップと、
前記第2深度ビューに基づいて、合成ビューを生成するステップと、
を含む、方法。 1. A method for decoding immersive video data, comprising:
decoding the bitstream to determine a first depth view having a first depth value at a first bit depth and first and second line segment end points for mapping the first depth view to a second depth view;
the first bit depth comprises a first available range of values from a first minimum value to a first maximum value;
Steps and
mapping the first depth values to second depth values to generate a second depth view;
the second depth value is a second bit depth greater than the first bit depth;
the second bit depth comprises a second available range of values from a second minimum value to a second maximum value;
the mapping is performed by using the first line segment end point and the second line segment end point to define a line segment for the mapping;
horizontal and vertical components of the first line segment endpoints correspond to the first and second depth values and exceed the first and second minimum values, respectively;
Steps and
generating a synthetic view based on the second depth view;
A method comprising:
請求項7に記載の方法。 the horizontal and vertical components of the second line segment endpoint are less than the first maximum depth value and the second maximum depth value, respectively;
The method of claim 7.
前記マッピングは、さらに、前記第2ラインセグメントエンドポイントおよび第3ラインセグメントエンドポイントによって画定される第2ラインセグメントを含む、
請求項7または8に記載の方法。 the first line segment endpoint and the second line segment endpoint define a first line segment of the mapping;
the mapping further includes a second line segment defined by the second line segment endpoint and a third line segment endpoint.
9. The method according to claim 7 or 8.
前記第2ラインセグメントは、前記第1スロープよりも小さい第2スロープを有する、
請求項9に記載の方法。 the first line segment has a first slope; and
the second line segment has a second slope that is less than the first slope.
10. The method of claim 9.
前記ビットストリームから前記第1深度ビューおよび前記第2深度ビューに対応するテクスチャビューを復号するステップであり、
前記合成ビューは、前記テクスチャビューに基づいて生成される、
ステップ、を含む、
請求項7乃至10いずれか一項に記載の方法。 The method further comprises:
decoding texture views corresponding to the first depth view and the second depth view from the bitstream;
the synthetic view is generated based on the texture view.
Steps, including:
11. The method according to any one of claims 7 to 10.
請求項1乃至11いずれか一項に記載の方法を実行するための1つ以上のプロセッサと、
を含む、システム。 Memory,
One or more processors for carrying out the method of any one of claims 1 to 11;
Including, the system.
コンピューティングデバイスで命令が実行されることに応答して、請求項1乃至11いずれか一項に記載の方法を前記コンピューティングデバイスに実行させる、
マシンで読取り可能な媒体。 At least one machine-readable medium containing a plurality of instructions,
In response to instructions being executed on a computing device, causing the computing device to perform the method of any one of claims 1 to 11.
Machine-readable media.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201962820760P | 2019-03-19 | 2019-03-19 | |
| US62/820,760 | 2019-03-19 | ||
| PCT/US2020/023122 WO2020190928A1 (en) | 2019-03-19 | 2020-03-17 | High level syntax for immersive video coding |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022524305A JP2022524305A (en) | 2022-05-02 |
| JP7615036B2 true JP7615036B2 (en) | 2025-01-16 |
Family
ID=72521170
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021548154A Active JP7615036B2 (en) | 2019-03-19 | 2020-03-17 | High-Level Syntax for Immersive Video Coding |
Country Status (6)
| Country | Link |
|---|---|
| EP (1) | EP3942797A4 (en) |
| JP (1) | JP7615036B2 (en) |
| KR (2) | KR20260006083A (en) |
| CN (1) | CN113491111A (en) |
| BR (1) | BR112021016388A2 (en) |
| WO (1) | WO2020190928A1 (en) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115550666A (en) * | 2021-06-29 | 2022-12-30 | 北京京东方技术开发有限公司 | Encoding method, decoding method, computing device, and medium for video data |
| US11582431B1 (en) | 2021-08-30 | 2023-02-14 | Nvidia Corporation | Image signal processing pipelines for high dynamic range sensors |
| JP7752519B2 (en) * | 2021-12-01 | 2025-10-10 | キヤノン株式会社 | Image processing device, its control method, and program |
| WO2025043029A1 (en) * | 2023-08-21 | 2025-02-27 | Beijing Dajia Internet Information Technology Co., Ltd | Methods and devices on slope adjustment for ibc lic and filtered ibc and filtered intra tmp and cccm and glm |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005341555A (en) | 2004-04-29 | 2005-12-08 | Mitsubishi Electric Information Technology Centre Europa Bv | Method for representing image or image sequence, descriptor for representing image and method for using the same, and apparatus, computer program, and storage medium for performing these methods |
| JP2010516099A (en) | 2007-01-04 | 2010-05-13 | トムソン ライセンシング | Method and apparatus for multi-view information transmitted with high level syntax |
| US20140218473A1 (en) | 2013-01-07 | 2014-08-07 | Nokia Corporation | Method and apparatus for video coding and decoding |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8681255B2 (en) * | 2010-09-28 | 2014-03-25 | Microsoft Corporation | Integrated low power depth camera and projection device |
| KR101998756B1 (en) * | 2011-06-17 | 2019-07-10 | 한국전자통신연구원 | Method And Apparatus For Video Encoding And Decoding |
| US9363535B2 (en) * | 2011-07-22 | 2016-06-07 | Qualcomm Incorporated | Coding motion depth maps with depth range variation |
| US9697593B2 (en) * | 2014-01-28 | 2017-07-04 | Ittiam Systems (P) Ltd. | System and method for tone mapping on high dynamic range images |
| US10339688B2 (en) * | 2016-07-28 | 2019-07-02 | Cyberlink Corp. | Systems and methods for rendering effects in 360 video |
| US9942517B1 (en) * | 2016-10-04 | 2018-04-10 | Avaya Inc. | Multi-mode video conferencing system |
-
2020
- 2020-03-17 JP JP2021548154A patent/JP7615036B2/en active Active
- 2020-03-17 WO PCT/US2020/023122 patent/WO2020190928A1/en not_active Ceased
- 2020-03-17 KR KR1020257043175A patent/KR20260006083A/en active Pending
- 2020-03-17 KR KR1020217026220A patent/KR102921892B1/en active Active
- 2020-03-17 BR BR112021016388A patent/BR112021016388A2/en unknown
- 2020-03-17 EP EP20773623.2A patent/EP3942797A4/en active Pending
- 2020-03-17 CN CN202080015175.3A patent/CN113491111A/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005341555A (en) | 2004-04-29 | 2005-12-08 | Mitsubishi Electric Information Technology Centre Europa Bv | Method for representing image or image sequence, descriptor for representing image and method for using the same, and apparatus, computer program, and storage medium for performing these methods |
| JP2010516099A (en) | 2007-01-04 | 2010-05-13 | トムソン ライセンシング | Method and apparatus for multi-view information transmitted with high level syntax |
| US20140218473A1 (en) | 2013-01-07 | 2014-08-07 | Nokia Corporation | Method and apparatus for video coding and decoding |
Non-Patent Citations (2)
| Title |
|---|
| Jill Boyce et al.,HEVC Additional Supplemental Enhancement Information (Draft 1) [online],JCTVC-Z1005(JCTVC-Z1005.doc), [2024年2月22日検索],インターネット <URL: http://phenix.it-sudparis.eu/jct/doc_end_user/documents/26_Geneva/wg11/JCTVC-Z1005-v1.zip>,2017年02月04日 |
| Takanori Senoh et al.,AHG8: Proposed Draft Amendment on Signaling of Alternative 3D Format in ISO/IEC 14496-10 (ITU-T H.264) [online],JCT3V-B0059r1 M26751(JCT3V-B0059 M26751 AHG8 Proposed draft amendment for signalling of Alternative 3D Format r1.doc), [2024年2月22日検索],インターネット <URL: http://phenix.it-sudparis.eu/jct3v/doc_end_user/documents/2_Shanghai/wg11/JCT3V-B0059-v2.zip>,2012年10月12日 |
Also Published As
| Publication number | Publication date |
|---|---|
| BR112021016388A2 (en) | 2021-11-23 |
| WO2020190928A1 (en) | 2020-09-24 |
| CN113491111A (en) | 2021-10-08 |
| EP3942797A1 (en) | 2022-01-26 |
| KR20260006083A (en) | 2026-01-12 |
| EP3942797A4 (en) | 2022-12-14 |
| KR102921892B1 (en) | 2026-02-02 |
| KR20210130148A (en) | 2021-10-29 |
| JP2022524305A (en) | 2022-05-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7566778B2 (en) | Immersive Video Coding Techniques for 3DoF+/MIV and V-PCC | |
| US11991376B2 (en) | Switchable scalable and multiple description immersive video codec | |
| US10200698B2 (en) | Determining chroma quantization parameters for video coding | |
| US10075689B2 (en) | Region-of-interest based 3D video coding | |
| TWI751261B (en) | Deblock filtering for 360 video | |
| JP2023521553A (en) | Patch-based video coding for machines | |
| JP7615036B2 (en) | High-Level Syntax for Immersive Video Coding | |
| US9860514B2 (en) | 3D video coding including depth based disparity vector calibration | |
| US9872026B2 (en) | Sample adaptive offset coding | |
| US20230412808A1 (en) | Determining adaptive quantization matrices using machine learning for video coding | |
| EP3771210A1 (en) | Content and quantization adaptive coding structure decisions for video coding | |
| US10484714B2 (en) | Codec for multi-camera compression | |
| US9942552B2 (en) | Low bitrate video coding | |
| US10104373B2 (en) | Content based video encoding for wireless display |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230315 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240226 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240305 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240529 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240806 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20241101 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20241203 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20241227 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7615036 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |