Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7615036B2 - High-Level Syntax for Immersive Video Coding - Google Patents
[go: Go Back, main page]

JP7615036B2 - High-Level Syntax for Immersive Video Coding - Google Patents

High-Level Syntax for Immersive Video Coding Download PDF

Info

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
Application number
JP2021548154A
Other languages
Japanese (ja)
Other versions
JP2022524305A (en
Inventor
ボイス,ジル
ドミトリチェンコ,マックス
ディヴェカール,アトゥール
Original Assignee
インテル コーポレイション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2022524305A publication Critical patent/JP2022524305A/en
Application granted granted Critical
Publication of JP7615036B2 publication Critical patent/JP7615036B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/128Adjusting depth or disparity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/184Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods 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は、イマーシブビデオデータを符号化(encoding)するための一つの例示的な符号化システムのブロック図である。 図2は、イマーシブビデオデータを復号(decoding)するための一つの例示的な復号化システムのブロック図である。 図3は、より高いビット深さ(bit-depth)の深度値(depth values)とより低いビット深さの深度値との間の、一つの例示的な区分ごとの(piece-wise)線形マッピングを示す。 図4は、区分ごとの線形マッピングを使用して、深度ビューのビット深さを低減するための一つの例示的なプロセスを示す。 図5は、深度ビューにおける深度値のピクセルカウントに基づく、区分ごとの線形マッピングの例示的な生成を示す。 図6は、高ビット深度値(bit-depth value)と低ビット深度値との間で深度ビューをマッピングおよび逆マッピングプするように、区分ごとの線形マッピングを定義するための一つの例示的なプロセスを示す。 図7は、区分ごとの線形マッピングを使用して、深度ビューのビット深さを増加させるための一つの例示的なプロセスを示す。 図8は、一つの例示的なコード化のためのカメラアレイおよび対応するカメラパラメータを示す。 図9は、カメラパラメータを含むイマーシブビデオデータを符号化するための一つの例示的なプロセスを示す。 図10は、カメラパラメータを含むイマーシブビデオデータを復号するための一つの例示的なプロセスを示す。 図11は、イマーシブビデオデータをコード化するための一つの例示的なシステム1100の説明図である。 図12は、一つの例示的なシステムの説明図である。 図13は、本開示の少なくともいくつかの実施例に従って構成された、一つの例示的なデバイスを示す。
The material described herein is presented by way of example and not limitation in the accompanying drawings. For simplicity and clarity of illustration, elements illustrated in the figures have not necessarily been drawn to scale. For example, dimensions of some elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements.
FIG. 1 is a block diagram of an exemplary encoding system for encoding immersive video data. FIG. 2 is a block diagram of an exemplary decoding system for decoding immersive video data. FIG. 3 shows an exemplary piece-wise linear mapping between depth values of a higher bit-depth and depth values of a lower bit-depth. FIG. 4 shows one exemplary process for reducing the bit depth of a depth view using piecewise linear mapping. FIG. 5 illustrates an example generation of a piecewise linear mapping based on pixel counts of depth values in a depth view. FIG. 6 illustrates one example process for defining a piecewise linear mapping to map and demap depth views between higher and lower bit-depth values. FIG. 7 shows one example process for increasing the bit depth of a depth view using piecewise linear mapping. FIG. 8 shows the camera array and corresponding camera parameters for one exemplary encoding. FIG. 9 shows an exemplary process for encoding immersive video data including camera parameters. FIG. 10 shows an exemplary process for decoding immersive video data including camera parameters. FIG. 11 is an illustration of an example system 1100 for encoding immersive video data. FIG. 12 is an illustration of one exemplary system. FIG. 13 illustrates an example device constructed in accordance with at least some embodiments of the present disclosure.

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 example encoding system 100 for encoding immersive video data, configured in accordance with at least some implementations of the present disclosure. FIG. 2 is a block diagram of an example decoding system 200 for decoding immersive video data, configured in accordance with at least some implementations of the present disclosure. That is, FIGS. 1 and 2 show block diagrams of an encoding system and a client system (e.g., a decoding system or decode system), respectively.

図1を参照すると、符号化システム100は、ビデオ圧縮を提供し、そして、符号化システム100は、コンピュータまたはサーバシステムなどのコンピューティングデバイスを介して実装されるビデオ符号化システムの一部であり得る。例えば、符号化システム100は、テクスチャビデオ101および選択ビュー142からの深さビデオ102、テクスチャビデオ103および選択されたビュー142のうち1つからの深さビデオ104、テクスチャビデオ105および選択されたビュー142のうち別の1つからの深さビデオ106(並びに、任意の追加のテクスチャビデオおよび他の選択されたビュー142からの深さビデオ)を含む、様々なビュー(例えば、ビューまたはシーンのビューポイントからそれぞれ)からのテクスチャおよび深さを、例えば、含んでいるビデオを受信する。
符号化システム100は、そうしたテクスチャビデオおよび深さビデオを符号化して、(以下に説明されるように)そうしたテクスチャおよび深さビデオの解凍バージョンを生成するように、デコーダによって復号され得るビットストリーム131を生成し、そして、任意的に、ベースビュー141および選択されたビュー142によって表現されるシーンの合成ビューを生成する。特に、合成されたビューは、必ずしも任意のそうしたビューに対応せず、そして、従って、符号化システム100によって符号化されないシーンのビューを表すことができる。
1, the encoding system 100 provides video compression, and the encoding system 100 may be part of a video encoding system implemented via a computing device, such as a computer or server system. For example, the encoding system 100 receives video, e.g., including texture and depth from various views (e.g., from viewpoints of a view or scene, respectively), including texture video 101 and depth video 102 from a selected view 142, texture video 103 and depth video 104 from one of the selected views 142, texture video 105 and depth video 106 from another one of the selected views 142 (as well as any additional texture videos and depth videos from other selected views 142).
Encoding system 100 encodes such texture and depth videos to generate a bitstream 131 that can be decoded by a decoder to generate decompressed versions of such texture and depth videos (as described below), and, optionally, generates a synthesized view of the scene represented by base view 141 and selected view 142. In particular, the synthesized view does not necessarily correspond to any such view, and thus may represent a view of the scene not encoded by encoding system 100.

例えば、テクスチャ符号化モジュール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, texture encoding module 113 receives texture video 103 of 8-bit or 10-bit bit depth, and texture encoding module 113 encodes texture video 103 using a standard-compliant codec and profile to generate a corresponding bitstream. And texture encoding module 115 receives texture video 105 of 8-bit or 10-bit bit depth, and encodes it to generate a corresponding bitstream. In particular, texture videos 101, 103, 105 have a bitdepth that matches the bitdepth used by texture encoding modules 111, 113, 115. Although described with respect to a bitdepth of 8 or 10 bits, any standard bitdepth may be used.

しかしながら、深さビデオ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 depth videos 122, 124, 126 is generated based on the depth videos 102, 104, 106, respectively, such that the depth videos 122, 124, 126 are 8-bit or 10-bit depth videos or depth views. As used herein, the terms depth video and depth view are used interchangeably to refer to a video having video frames that are depth frames that include per-pixel depth values, i.e., each pixel represents a depth value. Such low bit depth depth videos 122, 124, 126 are then encoded by depth encoding modules 112, 114, 116 using a standard-based codec and profile, such as HEVC Main 10, to generate a corresponding bitstream. Additionally, as used herein, texture view, texture video, and similar terms refer to color video with those pixels having a luma value and multiple color values, three colors, or similar representations. For example, such texture video may include any suitable video frames, video pictures, etc., in any suitable resolution, such as video graphics array (VGA), high definition (HD), full HD (e.g., 1080p), 4K resolution video, 8K resolution, etc. Such texture video may be in any suitable color space, such as YUV. During encoding, the depth video and texture video may be split into coding units, prediction units, transform units, etc., and encoded using intra and inter techniques known in the art.

深さ符号化モジュール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 texture coding modules 111, 113, 115 (e.g., representatives of texture video) are received by a multiplexer 119, which multiplexes the bitstreams into a bitstream 131 for storage, transmission, etc., and ultimately for use by a decoder, as described further below. The bitstream 131 may be compatible with a video compression-decompression (codec) standard, such as, for example, HEVC. Although described herein with respect to HEVC, the disclosed techniques may be implemented with respect to any codec, such as AVC (Advanced Video Coding/H.264/MPEG-4 Part 10), VVC (Versatile Video Coding/MPEG-I Part 3), VP8, VP9, Alliance for Open Media (AOMedia) Video1 (AV1), VP8/VP9/AV1 family, etc. The encoding system 100 may be implemented via any suitable device, such as a server, 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, a two-in-one device, etc. For example, as used herein, a system, device, computer, or computing device may include any such device or platform.

説明されるように、図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 encoding system 100 of FIG. 1, multiple views with texture and depth are available, where the texture is 8 or 10 bits, and the depth is 16 bits. The encoding system selects a subset of the views to encode. In the illustrated embodiment, an HEVC encoder is used. For the selected views, the texture is encoded in the available bit representation, and the depth is converted from a 16-bit representation, x, to a 10-bit representation, y. In conventional systems, such a conversion may be performed according to the following equation: y=round(1024*x/65536). Alternatively, truncation may be employed instead of rounding, and clipping may also be applied, for example to avoid values outside the allowed range, such as the following equation: y=Clip3(0,1023,int(1024*x÷65536+0.5). Such conventional techniques unfavorably lose information in the bit depth reduction.

対照的に、図1に示されるように、符号化システム100は、深度値のいくつかの範囲が深度値の他の範囲よりも細かい粒度で表現されるように適用される、区分ごとの線形マッピングを使用して、符号化システム100におけるマッピングモジュール121、123、125を介して、深さビデオ102、104、106をより高いビット深さ(例えば、16ビット表現)からより低いビット深さ(例えば、10ビット表現)へ変換する。そうしたビット深さマッピングが、以下でさらに説明される。 In contrast, as shown in FIG. 1, the encoding system 100 converts the depth videos 102, 104, 106 from higher bit depths (e.g., 16-bit representations) to lower bit depths (e.g., 10-bit representations) via mapping modules 121, 123, 125 in the encoding system 100 using a piecewise linear mapping that is applied such that some ranges of depth values are represented with finer granularity than other ranges of depth values. Such bit depth mapping is described further below.

いくつかの実施形態において、符号化システム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 encoding system 100 selects parameters for a piecewise linear mapping. As shown, such mapping parameters 161 are provided to the mapping modules 121, 123, 125 for implementation in the piecewise linear mapping. Furthermore, the mapping parameters 161 (e.g., metadata representing the mapping parameters) are signaled and encoded via the metadata encoding module 117 and multiplexed with the encoded bitstream into the bitstream 131 via the multiplexer 119 for use by the decoder. In one embodiment, the mapping metadata can be conveyed using a supplemental enhancement information message or other high-level syntax structure in the video bitstream or system layer. In some embodiments, the mapping parameters 161 (e.g., mapping metadata) include or represent a list of (x,y) coordinates of the end points of the line segments, where x represents a 16-bit deep representation value and y represents a transformed 10-bit representation value.

さらに、カメラアレイパラメータ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 base view 141 used to capture and the selected view 142, as well as any other views of the scene, may be provided to the camera parameter encoding module 118 for encoding. The resulting bitstream is then provided to the multiplexer 119 for inclusion in the bitstream 131. The camera array parameters 151 include parameters representative of the camera during video capture, such as the camera's position (e.g., x, y, z information), the camera's orientation in space (e.g., yaw, pitch, and roll information, or quaternion information), and camera characteristics such as focal length, field of view, and Znear and Zfar, which indicate the physical distance from the camera, with the lowest and highest 16-bit values (0 and 65535) corresponding to disparity depth files, etc. The camera parameter encoding module 118 may advantageously encode such camera array parameters 151 to reduce redundancy and improve efficiency, as described further herein below.

これから図2に移ると、復号化システム200が、例えば、クライアントシステムとして実装されてよい。符号化システム100と同様に、復号化システム200は、例えば、サーバ、パーソナルコンピュータ、ラップトップコンピュータ、タブレット、ファブレット、スマートフォン、デジタルカメラ、ゲーム機、ウェアラブルデバイス、表示装置、オールインワンデバイス、ツーインワンデバイス、等といった、任意の適切なデバイスを介して実装され得る。例えば、ここにおいて使用されるように、システム、デバイス、コンピュータ、またはコンピュータデバイスは、任意のそうしたデバイスまたはプラットフォームを含み得る。復号化システム200は、任意のソースからビットストリーム131を受信し、かつ、復号化システム200は、復号のためにビットストリーム131を逆多重化(demultiplexes)する。 2, the decoding system 200 may be implemented, for example, as a client system. Similar to the encoding system 100, the decoding system 200 may be implemented via any suitable device, such as, for example, a server, 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, a two-in-one device, and the like. For example, as used herein, a system, a device, a computer, or a computing device may include any such device or platform. The decoding system 200 receives the bitstream 131 from any source, and the decoding system 200 demultiplexes the bitstream 131 for decoding.

示されるように、デマルチプレクサ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 decoding system 200. In particular, such decoding faithfully recreates the mapping parameters 161, which include a list of (x,y) coordinates or similar data structure of the line segment end points, where x represents a 16-bit deep representation value and y represents a transformed 10-bit representation value. For example, the inverse mapping modules 221, 223, 225 reverse the process performed by the mapping modules 121, 123, 125 to generate a higher bit depth video from a lower bit depth video.

いくつかの実施形態において、ラインセグメントエンドポイントメタデータは、深さマッピングSEIメッセージ、もしくは、他の高レベルシンタックスまたはシステムシグナリングで送信される。いくつかの実施形態においては、2つ以上のラインセグメントエンドポイントセットが信号化される。いくつかの実施形態において、SEIメッセージは、それがキャンセルされるまで、または、新しいパラメータを伴う別のSEIメッセージがそれを置き換えるために送信されるまで、継続する。例示的なSEIシンタックスおよびセマティック(semantics)が、表1および以下の説明において提供される。

Figure 0007615036000001
表1:例示的なSEIシンタックスおよびセマティック In some embodiments, the line segment endpoint metadata is sent in a depth mapping SEI message or other high level syntax or system signaling. In some embodiments, more than one line segment endpoint set is signaled. In some embodiments, an SEI message lasts until it is canceled or until another SEI message with new parameters is sent to replace it. Exemplary SEI syntax and semantics are provided in Table 1 and in the description below.
Figure 0007615036000001
Table 1: Example SEI syntax and semantics

いくつかの実施形態において、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 depth video 222, which corresponds to the depth video 122, such that the depth video 222 is at a lower bit depth, such as 8 or 10 bits. In particular, the depth video 222 may be unsuitable for use by the view synthesis module 231 due to its low bit depth. The depth video 222 and the mapping parameters 161 are received by an inverse mapping module 221, which maps the depth video 222 to the depth video 202 (at a lower bit depth), such as 16 bits, as shown. The depth video 222 corresponds to the depth video 202, although it is not a perfect replication due to the lossy encoding/decoding process. In particular, the inverse mapping module 221 performs an inverse piece-wise linear mapping with respect to the piece-wise linear mapping performed by the mapping module 121. As shown, mapping parameters 161 are used in both contexts. Such mapping parameters 161 retain more information in some depth ranges of the depth map while losing more information in other depth ranges. Such piecewise linear mapping may be contrasted with rounding or truncation techniques, which in effect lose the same amount of information in all depth ranges.

同様に、深さ復号化モジュール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 depth video 124 such that the depth video 224 is at a lower bit depth (e.g., 8 or 10 bits). The depth video 224 and the mapping parameters 161 are received by an inverse mapping module 223, which maps the depth video 224 to the depth video 204 at a higher bit depth using an inverse piece-wise linear mapping technique described herein. Additionally, other views are processed similarly. For example, the depth decoding module 216 receives and decodes the bitstream to generate a depth video 226 corresponding to the depth video 126 such that the depth video 226 is at a lower bit depth. The depth video 226 and the mapping parameters 161 are used by an inverse mapping module 225 to map the depth video 226 to the depth video 206 at a higher bit depth using an inverse piece-wise linear mapping technique.

さらに、カメラパラメータ復号化モジュール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 linear mapping 300 between higher and lower bit depth values configured in accordance with at least some implementations of the present disclosure. In the example of FIG. 3, the piecewise linear mapping 300 utilizes three line segments 307, 308, 309, represented by ( x0 , y0 ), ( x1 , y1 ), ( x2 , y2 ), and ( x3 , y3 ). However, any number of line segments may be used. In some embodiments, a piecewise linear function is used because it has a relatively low complexity for a decoder to perform the inverse mapping function and does not require a large amount of metadata for signaling. In some embodiments, the number of line segments of the piecewise linear function is limited to a predefined number to limit the decoder complexity and metadata signaling overhead.

図示される例において、ラインセグメント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, line segment 307 is defined as the line segment between endpoint 303 ( x0 , y0 ) and endpoint 304 ( x1 , y1 ). Similarly, line segment 308 is defined as the line segment between endpoint 304 ( x1 , y1 ) and endpoint 305 ( x2 , y2 ), and line segment 309 is defined as the line segment between endpoint 305 ( x2 , y2 ) and endpoint 306 ( x3 , y3 ). As used herein, the term endpoint refers to the points that define the ends of a line segment.

特に、区分ごとの線形マッピング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 linear mapping 300 maps between high bit-depth values 302 and low bit-depth values 301. For example, the high bit-depth values 302 may be 16-bit depth values and the low bit-depth values 301 may be 8-bit or 10-bit depth values, as described herein. In such an embodiment, the high bit-depth values 302 of a depth view (e.g., any of the depth videos 102, 104, 106) have a bit-depth of 16 bits and therefore have a range of available values from 0 to 65535 (e.g., =2^16-1). Such high bit depth values 302 of the depth view are then forward mapped to low bit depth values 301 of the depth view (e.g., any of the depth videos 122, 124, 126), such that the low bit depth values 301 may be, for example, 8-bit deep or 10-bit deep. In an 8-bit depth context, the low bit depth values 301 have an available range of 0 to 255 (e.g., =2^8-1). In a 10-bit depth context, the low bit depth values 301 have an available range of 0 to 1023 (e.g., =2^10-1).

さらに、少なくともエンドポイント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 endpoints 304, 305 are between the minimum and maximum values of the components of the high bit-depth value 302 and the low bit-depth value 301. For example, the range of the high bit-depth value 302 from 0 to 65535 may define the horizontal or x component of the piecewise linear mapping 300, and the range of the low bit-depth value 301 from 0 to 255 or 1023 may define the vertical or y component of the piecewise linear mapping 300. The endpoints 303, 304, 305, 306 are between (0,0) and (65535,255) or (65535,1023), inclusive, so that the endpoint 303 may be at (0,0) and the endpoint 306 may be at (65535,255) or (65535,1023), although other final endpoints within the available ranges may be defined. Intermediate endpoints, such as endpoints 304, 305, are then between such minimum and maximum endpoints. Thus, the horizontal or x-components of both endpoints 304, 305 exceed the minimum depth value (e.g., 0) of the higher bit depth range, and the vertical or y-components of both endpoints 304, 305 exceed the minimum depth value (e.g., 0) of the lower bit depth range. Similarly, the horizontal or x-components of both endpoints 304, 305 are less than the maximum depth value (e.g., 65535) of the higher bit depth range, and the vertical or y-components of both endpoints 304, 305 are less than the maximum depth value (e.g., 255 or 1023) of the lower bit depth range. As used herein, the term horizontal component of a point corresponds to a coordinate along the high bit depth value 302, and the term vertical component of a point corresponds to a coordinate along the low bit depth value 301.

図示されるように、エンドポイント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, endpoints 303, 304 define line segment 307, endpoints 304, 305 define line segment 308, and endpoints 305, 306 define line segment 309. Thus, line segments 307, 308 share endpoint 304, and line segments 308, 309 share endpoint 305. As described, line segment 307 has a greater slope than line segment 308, which in turn has a greater slope than line segment 309. Such a slope may be generated in response to a depth value pixel count in the depth view defined by endpoints 303, 304, 305, 306 and used to generate piecewise linear mapping 300, as described further below.

いくつかの実施形態において、順方向マッピング(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 line segments 307, 308, 309 corresponds to a particular high bit-depth value of the high bit-depth values 302, and then determining the mapped low bit-depth value by applying a linear mapping according to the end points of the line segments. For example, as shown for high bit-depth value 311, it is determined that the high bit-depth value 311 is within the line segment 308. The high bit-depth value 311 is then mapped to the low bit-depth value 312 using a linear mapping based on the line segment 308. That is, the high bit-depth value 311 is mapped to the low bit-depth value 312 by applying a linear function defined by the line segment 308 to the high bit-depth value 311 to determine the resulting low bit-depth value 312.

いくつかの実施形態においては、式(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 decoding system 200 using a similar technique. In some embodiments, the inverse mapping is performed by determining which of the line segments 307, 308, 309 corresponds to a particular low bit-depth value of the low bit-depth values 302, and then determining the mapped high bit-depth value by applying a linear mapping (e.g., an inverse linear mapping) according to the end points of the line segments. For example, as shown for low bit-depth value 312, it is determined that the low bit-depth value 312 is within the line segment 308. The low bit-depth value 312 is then mapped to the high bit-depth value 311 using a linear mapping based on the line segment 308 by fitting the linear function defined by the line segment 308 to the low bit-depth value 312 to determine the resulting high bit-depth value 311.

いくつかの実施形態においては、式(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-depth values 311 will lose precision as a result of mapping from the high bit-depth values 311 to the low bit-depth values 312. However, by applying the piecewise linear mapping 300 with the line segments 307, 308, 309, the precision loss can be advantageously varied across the depth values 302. For example, the line segments 307, 308, 309 with larger slopes lose less precision than the line segments 307, 308, 309 with smaller slopes. This is because the larger slope line segments have relatively lower bit-depth values (or bins) to map to compared to the smaller slope line segments. This can be visually seen with respect to the line segments 307, 309. The line segment 307 has a larger slope, and as a result, the high bit-depth values in the range from x0 to x1 have a relatively higher number of corresponding low bit-depth values in the range from y0 to y1 . This is in contrast to line segment 309, which covers an equal size of high bit-depth values from x2 to x3 (e.g., x1 - x0 = x3 - x2 ), but has smaller low bit-depth values from y2 to y3 (e.g., y1 - y0 > y3 - y2 ). Thus, the mapping for line segment 309 converts the same number of high bit-depth values to a smaller number of low bit-depth values, resulting in a larger loss of precision, as reflected in the inverse mapping from low to high bit-depth values. Such a line segment may be advantageous when the depth view has more objects and/or details (e.g., edges) with less depth compared to objects with more depth. Thereby, more details are preserved in the depth view by employing a piecewise linear mapping. The selection of endpoints 303, 304, 305, 306 that define line segments 307, 308, 309 for optimal mapping and precision loss is further described below. Note that equally spaced endpoints in the x dimension are shown merely for clarity of explanation. Such endpoint spacing is not actually applied as a constraint.

例えば、図3に示す実施形態において、ラインセグメント307のスロープは、ラインセグメント309のスロープより大きい。いくつかの実施形態において、そうしたスロープの差異は、x2...x3の範囲内よりもx0...x1の範囲内がより多くのサンプル(例えば、ピクセルサンプル)を示しているヒストグラムに応答して(対応する深さ画像(depth image)について)生成されてもよい。すなわち、第2範囲と比較して第1範囲内のより多くのサンプル数に応答して、第1範囲の第1スロープは、第2範囲の第2スロープよりも大きい。 3 , the slope of line segment 307 is greater than the slope of line segment 309. In some embodiments, such a slope difference may be generated (for a corresponding depth image) in response to a histogram showing more samples (e.g., pixel samples) in the range x0 ... x1 than in the range x2 ...x3. That is, a first slope of the first range is greater than a second slope of the second range in response to a greater number of samples in the first range compared to the second range.

図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 depth videos 122, 124, 126 (lower bit depth), and inverse mapping modules 221, 223, 225 map depth videos 222, 224, 226 (lower bit depth) to depth videos 202, 204, 206 (higher bit depth). For example, for each depth value, mapping is performed as described with respect to high bit depth value 311 and low bit depth value 312.

図4は、本開示の少なくともいくつかの実施態様に従って構成された、区分ごとの線形マッピングを使用して、深度ビューのビット深さを低減するための一つの例示的なプロセス400を示している。プロセス400は、例えば、符号化システム100によって実行される、例示されるような1つ以上の動作401~406を含んでよい。プロセス400は、動作401で開始し、そこでは、ビット深さの低減が開始される。ビット深さの低減は、例えば、深さビデオ102、104、106(より高いビット深さ)を深さビデオ122、124、126(より低いビット深さ)にマッピングする、マッピングモジュール121、123、125によって実行され得る。 FIG. 4 illustrates one example process 400 for reducing the bit depth of a depth view using piecewise linear mapping, arranged in accordance with at least some implementations of the present disclosure. Process 400 may include one or more operations 401-406, as illustrated, performed, for example, by encoding system 100. Process 400 begins with operation 401, where bit depth reduction is initiated. Bit depth reduction may be performed, for example, by mapping modules 121, 123, 125, which map depth videos 102, 104, 106 (higher bit depths) to depth videos 122, 124, 126 (lower bit depths).

処理は、動作402において継続し、そこでは、高い又はより高い(より低いターゲットビット深さと比較して)ビット深さにおける深度ビューが受信される。深度ビューは、その各ピクセルに対して深度値(より高いビット深さ)を有する深さフレームまたは画像といった任意の適切なデータ構造を有し得る。いくつかの実施形態において、深度ビューは、各々16ビットのビット深さを有する深度値を有している。そうしたコンテキストにおいて、各深度値は、説明されるように、0から65535までの範囲であり得る。例えば、動作402において、高ビット深さでの深度値を有する第1深度ビューは、高ビット深さが最小値(例えば、0)から最大値(例えば、65535)までの利用可能な値の大きな範囲を有するように受信され得る。 Processing continues at operation 402, where a depth view at a high or higher (compared to a lower target bit depth) bit depth is received. The depth view may have any suitable data structure, such as a depth frame or image having a depth value (at the higher bit depth) for each pixel thereof. In some embodiments, the depth views have depth values each having a bit depth of 16 bits. In such a context, each depth value may range from 0 to 65535, as described. For example, at operation 402, a first depth view having depth values at a high bit depth may be received such that the high bit depth has a large range of available values from a minimum value (e.g., 0) to a maximum value (e.g., 65535).

処理は、動作403において継続し、そこでは、より高いビット深さでの深度ビューをより低いビット深さにマッピングするためにラインセグメントエンドポイントが獲得され、そうして、ラインセグメントエンドポイントは、ラインセグメント307、308、309といったマッピングのためのラインセグメントを画定する。そうしたラインセグメントエンドポイントおよびラインセグメントは、図5および図6に関して説明したものといった任意の適切な技術または技法を使用して、獲得または生成され得る。いくつかの実施形態において、ラインセグメントは、1つ以上の深度ビュー(例えば、深さフレーム)の少なくとも一部を使用して深度値範囲当たりの深さピクセル値カウントのヒストグラムを生成することにより、および、マッピングおよび逆マッピングに対応する再構成誤差を最小化するために、第1および第2ラインセグメントを含むマッピングのための複数のラインセグメントを再帰的に生成することによって決定される。 Processing continues at operation 403, where line segment endpoints are obtained to map a depth view at a higher bit depth to a lower bit depth, such that the line segment endpoints define line segments for the mapping, such as line segments 307, 308, and 309. Such line segment endpoints and line segments may be obtained or generated using any suitable technology or technique, such as those described with respect to FIGS. 5 and 6. In some embodiments, the line segments are determined by generating a histogram of depth pixel value counts per depth value range using at least a portion of one or more depth views (e.g., depth frames), and by recursively generating multiple line segments for the mapping, including first and second line segments, to minimize reconstruction errors corresponding to the mapping and inverse mapping.

処理は、動作404において継続し、高い又はより高いビット深さ深度ビューは、低減されたビット深さを有する深度ビューを生成するために、低ビット深さにマッピングされる。より低いビット深さは、8ビットまたは10ビットといった任意のビット深さであってよい。そうしたマッピングは、動作403で獲得されるラインセグメントエンドポイントに従って実行される。例えば、より高いビット深さ深度ビューに対する各ピクセルについて、ピクセルの区分ごとの線形マッピングが属する係る複数のラインセグメントのうちどのラインセグメントが関係するかについて決定がなされ得る(例えば、より高いビット深度値がラインセグメントのビット深度値の範囲内にあるように)。次いで、適切なラインセグメントに従った線形マッピングが、より高いビット深度値をより低いビット深度値にマッピングするために提供される。そうした処理は、8ビット(0から255の範囲)または10ビット(0から1023の範囲)という、より低いビット深さ深度ビュー(例えば、深さビデオ122、124、126のうち1つ)を生成するために、より高いビット深さ深度ビュー(例えば、深さビデオ102、104、106のうち1つ)の全てのピクセルに対して直列に又は並列して繰り返えされ得る。 Processing continues at operation 404, where the high or higher bit depth view is mapped to a lower bit depth to generate a depth view having a reduced bit depth. The lower bit depth may be any bit depth, such as 8 bits or 10 bits. Such mapping is performed according to the line segment endpoints obtained at operation 403. For example, for each pixel to the higher bit depth view, a determination may be made as to which of the multiple line segments the piecewise linear mapping of the pixel belongs to (e.g., such that the higher bit depth value is within the range of the bit depth values of the line segment). A linear mapping according to the appropriate line segment is then provided to map the higher bit depth value to the lower bit depth value. Such a process may be repeated serially or in parallel for all pixels of a higher bit depth view (e.g., one of depth videos 102, 104, 106) to generate a lower bit depth view (e.g., one of depth videos 122, 124, 126) of 8 bits (range 0 to 255) or 10 bits (range 0 to 1023).

例えば、図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 operation 405, where the lower bit depth views are output for encoding using a standard encoder implementing a standard codec and/or profile. In some embodiments, the lower bit depth views may be encoded using an HEVC Main Profile encoder. As shown, process 400 may end at operation 406. Process 400 may be performed serially or in parallel for any number of depth views. Such depth views may also be characterized as depth frames, depth pictures, etc. As described herein, such reduced bit depth views may be encoded using standard codecs and profiles by virtue of such codecs and profiles being able to handle the reduced bit depth.

動作403に関して説明されるように、ラインセグメントエンドポイントは、より高いビット深さからより低いビット深さまでの区分ごとの線形マッピングを画定するために符号化システム100において生成され得る。そうしたラインセグメントエンドポイントは、マッピングにおいて使用され、そして、復号における使用のために復号化システム100に送信される。これから、順方向および逆の区分ごとの線形マッピングに使用するために、ラインセグメントおよびラインセグメントエンドポイントを生成すること説明を向ける。 As described with respect to operation 403, line segment endpoints may be generated in encoding system 100 to define a piecewise linear mapping from a higher bit depth to a lower bit depth. Such line segment endpoints are used in the mapping and transmitted to decoding system 100 for use in decoding. We now turn to generating line segments and line segment endpoints for use in the forward and reverse piecewise linear mappings.

図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 linear mapping 300 based on pixel counts of depth values in a depth view, configured in accordance with at least some implementations of the present disclosure. As shown in FIG. 5, the range of high bit depth values 302 (e.g., from 0 to 65535) can be divided into a number of bins 505, such as histogram bins. Although illustrated with respect to 12 bins 505, any number can be used. For a particular portion of a depth view (e.g., one or more portions of depth views 102, 104, 106), the pixels are assigned to one of the bins 505 based on their depth values. That is, a pixel count is generated for each bin 505 based on the corresponding range of depth values. Such pixel counts generate a histogram 501 indicative of depth value pixel counts. Such pixel counts are then used to generate endpoints and corresponding line segments, as described further below.

図5に示されるように、ラインセグメント307は、スロープを有しており、そして、スロープは、ラインセグメント308に対応するビン503内のピクセルカウントよりも大きな値を有しているラインセグメント307に対応するビン502内のピクセルカウントに応答するラインセグメント308のスロープよりも大きい。同様に、セグメント3087は、スロープを有しており、そして、スロープは、ラインセグメント308に対応するビン504内のピクセルカウントよりも大きな値を有しているビン503内のピクセルカウントに応答するラインセグメント309のスロープよりも大きい。単に説明を明確にするために、等間隔のx次元のエンドポイントが示されていることに再び留意する。そうしたエンドポイント間隔は、実際に適用される制約ではないが、そうしたエンドポイント間隔が実装されてよい。 5, line segment 307 has a slope that is greater than the slope of line segment 308 in response to a pixel count in bin 502 corresponding to line segment 307 having a greater value than the pixel count in bin 503 corresponding to line segment 308. Similarly, segment 3087 has a slope that is greater than the slope of line segment 309 in response to a pixel count in bin 503 having a greater value than the pixel count in bin 504 corresponding to line segment 308. Note again that equally spaced x-dimension endpoints are shown merely for clarity of illustration. Such endpoint spacing is not a constraint that is actually applied, but such endpoint spacing may be implemented.

特に、ラインセグメント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 line segments 307, 308, 309 and the coordinates of the endpoints 303, 304, 305, 306 are generated based on pixel counts of the corresponding bins 502, 503, 504, as generated by a histogram 501 or similar counting technique. The portion of the depth view 102, 104, 106 used to generate the histogram 501 may be any suitable portion. In one embodiment, the histogram 501 is generated for each frame. In some implementations, the histogram 501 is generated using a group of images from one of the depth views 102, 104, 106. In some implementations, the histogram 501 is generated based only on edge regions of a single frame or multiple frames. The corresponding line segments 307, 308, 309 and the coordinates of the endpoints 303, 304, 305, 306 are then used for mapping and inverse mapping, and the coordinates are represented in the bitstream 131 and transmitted.

図6は、本開示の少なくともいくつかの実装に従って構成された、高ビット深度値と低ビット深度値との間で深度ビューをマッピングおよび逆マッピングプするように、区分ごとの線形マッピングを定義するための一つの例示的なプロセス600を示す。プロセス600は、例えば、符号化システム100によって実行される、図示されるような1つ以上の動作601~606を含み得る。プロセス600は、動作601で開始し、そこでは、区分ごとの線形マッピング生成が開始される。例えば、マッピングパラメータ161を生成するためのマッピングパラメータ選択モジュール110によって、区分ごとの線形マッピングモデル生成が実行され得る。 FIG. 6 illustrates one example process 600 for defining a piecewise linear mapping to map and demap depth views between high and low bit depth values, configured in accordance with at least some implementations of the present disclosure. Process 600 may include one or more operations 601-606 as shown, performed, for example, by encoding system 100. Process 600 begins with operation 601, where piecewise linear mapping generation is initiated. For example, piecewise linear mapping model generation may be performed by mapping parameter selection module 110 to generate mapping parameters 161.

処理は、動作602において継続し、そこでは、マッピングのための深度ビューデータが獲得される。説明されるように、1つ以上の深さ方向102、104、106のうちの一部分は、区分ごとの線形マッピングを生成するために使用される。いくつかの実施態様においては、区分ごとの線形マッピングを決定するために、単一フレームが使用される。いくつかの実施態様においては、予め選択された(preselected)数のフレームが使用される。いくつかの実施形態においては、画像のグループ(例えば、符号化構造において画定されるようなもの)が使用される。いくつかの実施態様においては、単一フレームのエッジ部分、予め選択された数のフレーム、または、画像のグループに係るエッジ部分のみが使用される。さらに、各ビューについてのマッピングパラメータを生成するために、単一の深度ビューが使用され、ビュー間で共有されるマッピングパラメータを生成するために、複数のビューが使用され得る。 Processing continues at operation 602, where depth view data for mapping is acquired. As described, a portion of one or more depth directions 102, 104, 106 is used to generate a piecewise linear mapping. In some embodiments, a single frame is used to determine the piecewise linear mapping. In some embodiments, a preselected number of frames are used. In some embodiments, a group of images (e.g., as defined in the coding structure) is used. In some embodiments, only edge portions of a single frame, a preselected number of frames, or an edge portion of a group of images are used. Additionally, a single depth view may be used to generate mapping parameters for each view, and multiple views may be used to generate mapping parameters shared between views.

上述のように、符号化システム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 encoding system 100 selects the piecewise linear mapping used such that a 10-bit representation of the depth is used instead of a 16-bit representation due to limitations of using a 10-bit video encoder, such as the HEVC Main 10 Profile. The same technique can be used to convert 16-bit data to 8-bit data for use with an 8-bit video codec, such as the HEVC Main Profile. Additionally, the described technique can be used to convert n-bit data to m-bit data, where n is greater than m. When rounding or truncating 16-bit data to 10-bit data, the quality of view synthesis is reduced due to the coarser representation of the depth data. Additional steps of encoding and decoding may further reduce the video quality. Video quality is more severely affected at the edges of objects (i.e., where the depth value changes between the object and the background). In some embodiments, the selection method in the encoding system 100 attempts to minimize the reduction in video quality associated with the reduction in the bit representation of the depth data. In some embodiments, a histogram is formed that counts the frequency of occurrence of particular depth values in the input depth view. The range of depth values that occur most frequently is assigned to the line segment with a higher slope, and the range of depth values that occur least frequently is assigned to the line segment with a lower slope. As explained, a higher slope means that a greater granularity of the representation is preserved, and similarly, a lower slope means that a lesser granularity of the representation is preserved.

一つの実施形態において、深度値のヒストグラムは、最初にエッジ検出アルゴリズムを適用することによって、画像内のエッジ領域に対して別々に決定される。ラインセグメントエンドポイントは、オブジェクトエッジで生じる最も頻繁に発生している深度値に対してより高いスロープを与えることを優先するように、エッジ深さヒストグラムに基づいて選択され得る。例えば、深さ画像(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 operation 603, where pixel counts across an initial high depth value range are determined using the selected depth view data, and then continues at operation 604, where line segments are recursively generated (as defined by the line segment end points) to minimize reconstruction error.

これから、最適な区分ごとの線形マッピングを再帰的に決定するための技法が説明される。そうした技法は、入力として、より高いビット深さマップ(例えば、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., endpoints 303, 304, 305, 306) of segments (line segments 307, 308, 309) of a piecewise linear mapping (e.g., piecewise linear mapping 300).

以下の説明においては、(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 operation 605, where the generated line segment endpoints are output for use in the forward mapping described with respect to mapping modules 121, 123, 125, for encoding into bitstream 131, and finally for use by decoding system 200 as described with respect to reverse mapping modules 221, 223, 225, and ends at operation 606. Description is now directed to the use of such line segment endpoints in the decoding process.

図7は、本開示の少なくともいくつかの実装に従って構成された、区分ごとの線形マッピングを使用して、深度ビューのビット深さを増加させるための一つの例示的なプロセス700を示す。プロセス700は、例えば、復号化システム200によって実行される、例示されるような1つ以上の動作701~706を含んでもい。プロセス700は、動作701で開始し、そこでは、ビット深さの増加が開始される。ビット深さの増加は、例えば、深さビデオ222、224、226(より低いビット深さ)を深さビデオ202、204、206(より高いビット深さ)にマッピングする、マッピングモジュール221、223、225によって実行され得る。 FIG. 7 illustrates one example process 700 for increasing the bit depth of a depth view using piecewise linear mapping, configured in accordance with at least some implementations of the present disclosure. Process 700 may include one or more operations 701-706, as illustrated, performed, for example, by decoding system 200. Process 700 begins with operation 701, where an increase in bit depth is initiated. The increase in bit depth may be performed, for example, by mapping modules 221, 223, 225, which map depth videos 222, 224, 226 (lower bit depths) to depth videos 202, 204, 206 (higher bit depths).

処理は、動作702において継続し、そこでは、深度ビューが、(より高いターゲットビット深さに対して)低い又はより低いビット深さにおいて受信され、そして、復号される。深度ビューは、その各ピクセルに対して(より低いビット深さでの)深度値を有する深さフレームまたは画像といった、任意の適切なデータ構造を有し得る。いくつかの実施形態において、深度ビューは、それぞれ0から255までの範囲における8ビットのビット深さを伴う深度値を有している。いくつかの実施形態において、深度ビューは、それぞれ0から255までの範囲における10ビットのビット深さを伴う深度値を有している。そうしたコンテキストにおいて、各深度値は、0から1023までの範囲であってよい。例えば、動作702においては、低ビット深さでの深度値を有する第1深度ビューが受信され得る。そうして、低ビット深さは、最小値(例えば、0)から最大値(例えば、255または1023)までの利用可能な値の大きな範囲を有する。 Processing continues at operation 702, where a depth view is received at a lower or lower bit depth (relative to a higher target bit depth) and decoded. The depth view may have any suitable data structure, such as a depth frame or image having a depth value (at the lower bit depth) for each pixel thereof. In some embodiments, the depth view has depth values with a bit depth of 8 bits each ranging from 0 to 255. In some embodiments, the depth view has depth values with a bit depth of 10 bits each ranging from 0 to 255. In such a context, each depth value may range from 0 to 1023. For example, at operation 702, a first depth view may be received having depth values at a low bit depth. Thus, the low bit depth has a large range of available values from a minimum value (e.g., 0) to a maximum value (e.g., 255 or 1023).

処理は、動作703において継続し、そこでは、ラインセグメントエンドポイントが、ラインセグメント307、308、309といったマッピングのためのラインセグメントを規定するように、より低いビット深さでの深度ビューをより高いビット深さにマッピングするために、ラインセグメントエンドポイントが復号される。そうしたラインセグメントエンドポイントおよびラインセグメントは、図2に関して説明したような任意の適切な技術または技法を用いて復号され得る。例えば、ラインセグメントエンドポイントは、メタデータ復号化モジュール217によって、ビットストリーム131から逆多重化された(demultiplexed)ビットストリームの一部から復号され得る。説明されるように、それによって画定されるラインセグメントエンドポイントおよびラインセグメントは、深度値を増加させるために使用される逆マッピングにおいて、より高いビット深さへのより低いビット深さを最小化することを求めることができる。 Processing continues at operation 703, where the line segment endpoints are decoded to map depth views at lower bit depths to higher bit depths, such that the line segment endpoints define line segments for mapping, such as line segments 307, 308, 309. Such line segment endpoints and line segments may be decoded using any suitable technique or technique, such as those described with respect to FIG. 2. For example, the line segment endpoints may be decoded by metadata decoding module 217 from a portion of the bit stream demultiplexed from bit stream 131. As described, the line segment endpoints and line segments defined thereby may be sought to minimize lower bit depths to higher bit depths in the inverse mapping used to increase depth values.

処理は、動作704において継続し、そこでは、低ビット深さ深度ビューまたはより低いビット深さ深度ビューは、増加されたビット深さを有する深度ビューを生成するために、より高いビット深さ深度ビューにマッピングされる。より高いビット深さは、16ビットといった任意のビット深さであってよい。そうしたマッピングは、動作703で復号されたラインセグメントエンドポイントに従って実行される。例えば、より低いビット深さ深度ビューの各ピクセルに対して、ピクセルを区分ごとに線形マッピングする複数のラインセグメントのうちどのラインセグメントが関係するかについて決定がなされ得る(例えば、より低いビット深度値がラインセグメントのビット深度値の範囲内にあるように)。次いで、関連するラインセグメントに従った線形マッピングが、より低いビット深度値をより高いビット深度値にマッピングするために提供される。そうした処理は、8ビット(0から255mでの範囲)または10ビット(0から1023までの範囲)といった、より高いビット深さ深度ビュー(例えば、深さビデオ202、204、206のうち1つ)を生成するために、より低いビット深さ深度ビュー(例えば、深さビデオ222、224、226のうち1つ)の全てのピクセルについて、直列または並列に繰り返えされ得る。 Processing continues at operation 704, where the low or lower bit depth view is mapped to a higher bit depth view to generate a depth view having an increased bit depth. The higher bit depth may be any bit depth, such as 16 bits. Such mapping is performed according to the line segment endpoints decoded at operation 703. For example, for each pixel of the lower bit depth view, a determination may be made as to which line segment of multiple line segments that piecewise linearly map the pixel is associated (e.g., such that the lower bit depth value is within the range of bit depth values of the line segment). A linear mapping according to the associated line segment is then provided to map the lower bit depth value to the higher bit depth value. Such processing may be repeated, in series or in parallel, for every pixel of a lower bit depth view (e.g., one of depth videos 222, 224, 226) to generate a higher bit depth view (e.g., one of depth videos 202, 204, 206), such as 8-bit (range 0 to 255m) or 10-bit (range 0 to 1023).

例えば、図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 operation 705, where a depth view at a higher bit depth is output for view synthesis processing, as described herein. In some embodiments, the higher bit depth view may be used to generate view 250, which may also be generated based on a corresponding texture view, as well as other depth and texture view pairs. As shown, process 700 may end at operation 706. Process 700 may be performed serially or in parallel for any number of depth views. Such depth views may also be characterized as depth frames, depth pictures, etc. As described herein, such increased bit depth views may be advantageous and provide improved performance in the context of view synthesis.

図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 encoding system 100 and the decoding system 200 using a camera information SEI message. In some embodiments, metadata describing the camera parameters, currently in the .json file and including additional metadata, may also be carried in the same or another SEI message. In some embodiments, it is advantageous to include depth mapping parameters in a separate SEI message, since these parameters may change more frequently than the camera parameters. In one embodiment, the 3DoFplus camera information SEI message represents data more compactly than a .json file, saving bitrate for data transmission. For each camera, the SEI message may include (x, y, z) position information and orientation information (based on yaw, pitch, roll, or quaternion parameters). In one embodiment, the yaw_pitch_roll flag indicates whether (yaw, pitch, roll) information is requested to be sent or they all have a default value of 0. For the (x, y, z) parameters, we typically have regular camera spacing. In some embodiments, bitrate savings can be achieved by signaling the granularity of the position signaled for each of x, y, and z. For example, spacing values in x, y, and z can be provided for camera positions to save bitrate.

さらに、ここにおいて説明されるビデオは、全方向(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 exemplary camera array 810 and corresponding camera parameters 800 for encoding, configured in accordance with at least some implementations of the present disclosure. For example, the camera array 810 may be used to capture a base view 141, a selected view 142, and other views, if necessary, of a scene. That is, the camera array 810 may be used for immersive video generation or capture. In the example of FIG. 8, the camera array 810 includes six cameras C1-C6 in a grid pattern, such that cameras C1-C3 are in a first row and cameras C4-C6 are in a second row. However, the camera array 810 may have any number of cameras with any spacing layout. In one embodiment, the camera array 810 includes a single row of cameras. Furthermore, the camera array 810 is shown such that the cameras C1-C6 are all aligned in the x-y plane. However, the cameras of the camera array 810 may be arranged in any manner.

カメラ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 camera parameters 811, 812, 813, 814, 815, 816, respectively. As shown, the camera parameters 811 may include the position of the camera C1, the orientation of the camera C1, and the imaging parameters of the camera C1. As shown, the position parameters include the coordinates of the camera C1 ( x1 , y1 , z1). The orientation parameters include the roll, pitch, yaw values (r1, p1, yaw1) or quaternion parameters that define the orientation of the camera C1. As shown with respect to the camera C1, each of the cameras C1-C6 may be positioned and oriented throughout 3D space, the positioning and orientation being characterized as 6-DOF motion 835. This indicates that each of the cameras C1-C6 can move in translation: forward/backward (e.g., z direction), up/down (e.g., y direction), right/left (e.g., x direction), and rotation: yaw (e.g., angle around y axis), roll (e.g., angle around x axis), and pitch (e.g., angle around z axis). The imaging parameters include one or more of a projection mode (PM1), a focal length (FL1), a field of view (FOV1), a Znear value (ZN1), and a Zfar value (ZF1). For example, the projection mode can indicate one of an omnidirectional content, a normal viewpoint content, or an orthogonal content for the camera. That is, the projection mode can indicate one of an omnidirectional projection mode, a normal viewpoint projection mode, or an orthographic projection mode.

同様に、カメラパラメータ812、813、814、815、816は、カメラC2-C6それぞれについて、同様の位置、配向、および撮像パラメータを、それぞれに、含んでいる。特に、カメラアレイパラメータ151によって表されるように、そうしたカメラパラメータ811、812、813、814、815、816、または、カメラアレイパラメータ151によって表されるようなその一部は、ビットストリーム131へと符号化され、そして、ビュー合成における使用のために復号化システム200によって復号される。ここにおいて説明される技法は、カメラアレイ810のカメラパラメータ812、813、814、815、816の効率的なコード化を提供する。 Similarly, camera parameters 812, 813, 814, 815, 816 include similar position, orientation, and imaging parameters for each of cameras C2-C6, respectively. In particular, as represented by camera array parameters 151, such camera parameters 811, 812, 813, 814, 815, 816, or a portion thereof as represented by camera array parameters 151, are encoded into bitstream 131 and decoded by decoding system 200 for use in view synthesis. The techniques described herein provide efficient coding of camera parameters 812, 813, 814, 815, 816 of camera array 810.

カメラ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 example process 900 for encoding immersive video data including camera parameters, arranged in accordance with at least some implementations of the present disclosure. Process 900 may include one or more operations 901-908, as illustrated, performed, for example, by encoding system 100. Process 900 begins with operation 901, where camera parameter encoding is initiated. Coding of the camera parameters may be performed, for example, by camera parameter encoding module 118 to encode camera parameters 800 for camera array 810, as represented by camera array parameters 151, into bitstream 131.

処理は、動作902において継続し、そこでは、カメラアレイのカメラについて位置、配向、および、撮像パラメータが獲得される。そうした位置、配向、および、撮像パラメータは、任意の適切なデータ構造を有し得る。処理は、動作903において継続し、そこでは、特定のカメラパラメータタイプが符号化のために選択される。例えば、説明されるカメラパラメータそれぞれが、順番に処理され得る。 Processing continues at operation 902, where position, orientation, and imaging parameters are obtained for the cameras of the camera array. Such position, orientation, and imaging parameters may have any suitable data structure. Processing continues at operation 903, where a particular camera parameter type is selected for encoding. For example, each of the described camera parameters may be processed in turn.

処理は、決定動作904において継続し、そこでは、選択されたカメラパラメータタイプについて、特定のパラメータ値が、カメラパラメータによって表されるカメラそれぞれによって共有されるか否かについて決定が為される。もし、そうでなければ、処理は、動作905において継続し、そこでは、カメラについて共有パラメータ値を示すフラグがオフにセットされ(例えば、0)、そして、カメラそれぞれに対する個々のパラメータが別々にコード化される。 Processing continues at decision operation 904, where a determination is made as to whether, for the selected camera parameter type, a particular parameter value is shared by each of the cameras represented by the camera parameters. If not, processing continues at operation 905, where a flag indicating a shared parameter value for the camera is set off (e.g., 0), and the individual parameters for each camera are coded separately.

パラメータ値がカメラパラメータタイプに対するカメラそれぞれによって共有される場合(例えば、全てのカメラ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 operation 906, where a flag indicating a shared parameter value for the camera is set on (e.g., 1) and the shared value is encoded. In particular, operations 904-906 provide reduced overhead when each of the cameras has a shared parameter value. For example, if the focal length of each of the cameras is the same, the shared focal length flag may be set on (e.g., 1) and the flag and the shared focal length may be encoded. Such processing reduces overhead by not repeating the focal length for each camera. However, if the cameras do not share a focal length, the shared focal length flag is set off and the focal length of each camera is encoded. Note that such flags may be set for multiple cameras and then changed. For example, if cameras C1-C4 have the same parameter value and C5 and C6 are different, an on flag may be set and the parameter value set for camera C1 and C2-C3 may use the same parameter value until an off flag is set and the parameter values for C5 and C6 are then signaled individually. For example, a shared parameter value flag may indicate that the shared parameter value is used until the flag is switched off.

そうした共有パラメータ値フラグは、単にパラメータ値フラグとして特徴付けられてよく、それらが対応するパラメータ値に基づいてラベル付けまたは識別されてよい。例えば、共有投影モードフラグ(例えば、投影モードフラグまたは投影モード値フラグ)は、第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 decision operation 907, where a determination is made whether the camera parameter type selected at operation 903 is the last camera parameter type to be processed. If so, processing ends at operation 908. If not, processing continues at operation 903 until the last camera parameter type has been processed, as described above. Although described with respect to such recursive processing for clarity of presentation, process 900 can decode any number of camera parameter types in parallel.

上述のように、プロセス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 process 900 provides efficient signaling of camera parameters, including camera position ((x,y,z)), camera orientation ((r,p,yaw) or quaternion values), and camera imaging parameters (PM,FL,FOV,ZN,ZF). Such compression techniques can be combined in any suitable combination. Such compressed flags and values are encoded into a bitstream and subsequently decoded and used in view synthesis, as described with respect to FIG. 10. In some embodiments, such encoding provides a part of immersive video data encoding and includes determining a camera projection mode for each of a plurality of cameras of a camera array corresponding to immersive video generation or capture, generating a camera projection mode flag for the camera, the camera projection mode flag having a first value (e.g., 1) in response to each camera having a shared projection mode and a second value (e.g., 0) in response to any of the cameras having a projection mode other than the shared projection mode, and encoding the camera projection mode flag into the bitstream. In some embodiments, in response to a first camera projection mode flag having a first value, the bitstream further includes a single camera projection mode indicator indicating a shared projection mode. In some embodiments, in response to a camera projection mode flag having a second value, the bitstream further includes multiple camera projection mode indicators, one for each camera.

いくつかの実施形態において、符号化は、各カメラによって達成可能な最小物理的深さおよび最大物理的深さを決定すること、カメラについて物理的深さフラグを生成することであり、物理的深さフラグは、共有される最小物理的深さ及び/又は共有される最大物理的深さをカメラが有するか否かこと、および、物理的深さフラグをビットストリームへと符号化すること、をさらに含む。いくつかの実施形態において、符号化は、カメラそれぞれについてヨー、ピッチ、およびロールパラメータ、または、クォータニオンパラメータのうち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 example process 1000 for decoding immersive video data including camera parameters, arranged in accordance with at least some implementations of the present disclosure. The process 1000 may include one or more operations 1001-1008 as shown, performed, for example, by the decoding system 200. The process 1000 begins with operation 1001, where camera parameter decoding is initiated. The camera parameter decoding may be performed, for example, by the camera parameter decoding module 218 to decode camera parameters 800 for the camera array 810, as represented by the camera array parameters 151 from the bitstream 131.

処理は、動作1002において継続し、そこでは、カメラパラメータフラグおよびインジケータを含む受信ビットストリームが受信され、そして、任意の適切な技術または技法を使用して復号される。特に、ビットストリームは、再構成するために復号され得る、図9に関して説明したような、任意のフラグ、パラメータ、インジケータ、等を含んでよい。処理は、動作1002において継続し、そこでは、第1カメラパラメータタイプが選択される。例えば、説明されたカメラパラメータそれぞれは、順番に処理され得る。 Processing continues at operation 1002, where a received bitstream including camera parameter flags and indicators is received and decoded using any suitable technology or technique. In particular, the bitstream may include any flags, parameters, indicators, etc., such as those described with respect to FIG. 9, that may be decoded to reconstruct. Processing continues at operation 1002, where a first camera parameter type is selected. For example, each of the described camera parameters may be processed in turn.

処理は、決定動作1004において継続し、そこでは、選択されたカメラパラメータタイプについて、選択されたカメラパラメータタイプに対する特定の、または、共有パラメータ値フラグがオン(例えば、1)に設定されているか否かについて決定が行われる。もしそうでなければ、処理は、動作1005において継続し、そこでは、カメラアレイのカメラそれぞれについてカメラパラメータ値が復号される。例えば、カメラは、特定の、または、共有パラメータ値を共有しないせいで、各カメラに対する値は別々に復号される。 Processing continues at decision operation 1004, where a determination is made for the selected camera parameter type as to whether a specific or shared parameter value flag for the selected camera parameter type is set on (e.g., 1). If not, processing continues at operation 1005, where the camera parameter values are decoded for each of the cameras in the camera array. For example, because the cameras do not share specific or shared parameter values, the values for each camera are decoded separately.

選択されたカメラパラメータタイプに対する特定の、または、共有パラメータ値フラグがオン(例えば、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 operation 1006, where an indicator or value of the specific or shared parameter value, etc. is decoded and set for all cameras in the camera array. That is, each camera is assigned the same value for the specific or shared parameter value (or, in the context of location information, the location of each camera is determined using the decoded information, as described below). Operations 1004-1006 provide for decoding of efficiently packed camera information, such that the shared camera information may be flagged and encoded only once. For example, if the focal length of each of the cameras in a camera array is the same, the shared focal length flag (or focal length flag, etc.) may be decoded to be on (e.g., 1). The shared or specific focal length, or indicator thereof, is then decoded and assigned for each camera. However, if the shared focal length flag is decoded to be off (e.g., 0), the focal length of each camera is decoded separately. Similar to encoding, in some embodiments, a sharing flag of 1 may be set and an indicator that applies may be sent until the flag is switched to 0 and new parameters are then sent. For example, each camera may be assigned a flag of 1 to indicate that sharing continues for that camera. The first camera with a different focal length is then flagged to 0 and new parameters are sent. Note that such flags may be set for many cameras and then changed.

符号化に関して説明されるように、そうした共有パラメータ値フラグは、単にパラメータ値フラグとして特徴付けられてよく、そして、それらが対応するパラメータ値に基づいてラベル付けまたは識別されてよい。例えば、共有投影モードフラグは、全てのカメラが同一の投影モードを共有している場合に示すことができ、共有視野フラグは、全てのカメラが同一の視野を共有している場合に示すことができ、共有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 decision operation 1007, where a determination is made as to whether the camera parameter type selected at operation 1003 is the last camera parameter type to be processed. If so, processing ends at operation 1008. If not, processing continues at operation 1003 until the last camera parameter type has been processed, as described above. Although illustrated with respect to such recursive processing for clarity of presentation, process 1000 can decode any number of camera parameter types in parallel.

上述のように、プロセス1000は、カメラ位置((x,y,z))、カメラ配向((r,p,yaw)またはクォータニオン値)、および、カメラ撮像パラメータ(PM,FL,FOV,ZN,ZF)を含むカメラパラメータの復号を提供する。いくつかの実施形態において、そうした復号化は、イマーシブビデオデータ復号化の一部を提供し、そして、深度ビュー、テクスチャビュー、およびカメラアレイの複数のカメラに対応するカメラ投影モードフラグを決定するためにビットストリームを復号することを含み、カメラ投影モードフラグは、全てのカメラが特定の投影モードを有することを示す第1値、または、カメラのいずれかが特定の投影モード以外の投影モードを有することを示す第2値を有し、深度ビュー、テクスチャビュー、およびカメラ投影モードフラグ深度ビューに基づいて復号されたビューを生成する。いくつかの実施形態において、第1値を有する第1カメラ投影モードフラグに応答して、ビットストリームは、さらに、特定の投影モードを示す単一カメラ投影モードインジケータを含む。いくつかの実施形態において、第2値を有するカメラ投影モードフラグに応答して、ビットストリームは、さらに、複数のカメラ投影モードインジケータを含み、カメラそれぞれについて1つである。いくつかの実施形態において、共有カメラ投影モードは、全方向投影モード、通常視点投影モード、または正投影モードのうちの少なくとも1つを含む。 As described above, the process 1000 provides for decoding of camera parameters including camera position ((x,y,z)), camera orientation ((r,p,yaw) or quaternion values), and camera imaging parameters (PM,FL,FOV,ZN,ZF). In some embodiments, such decoding provides a part of immersive video data decoding and includes decoding the bitstream to determine a depth view, a texture view, and camera projection mode flags corresponding to a plurality of cameras of the 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 camera projection mode flag depth view. In some embodiments, in response to the first camera projection mode flag having the first value, the bitstream further includes a single camera projection mode indicator indicating the particular projection mode. In some 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 camera. In some embodiments, the shared camera projection mode includes at least one of an omnidirectional projection mode, a normal perspective projection mode, or an orthographic projection mode.

いくつかの実施形態において、ビットストリームは、さらに、示すヨー、ピッチ、ロールフラグ、またはカメラのクォータニオンフラグのうちの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ビットを含む。

Figure 0007615036000002
表2:NALユニットヘッダの実施例 HEVC uses a 2-byte NAL (network abstraction layer) unit header, whose syntax is copied below, which includes 6 bits allocated for nuh_layer_id.
Figure 0007615036000002
Table 2: Example of a NAL unit header

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変数は、以下のように、スケーラビリティディメンションまたは層特性にマッピングされ得る。

Figure 0007615036000003
表3:スケーラビリティ次元に対するScalabilityIdマッピング The ScalabilityId variable can be mapped to a scalability dimension or tier characteristic as follows:
Figure 0007615036000003
Table 3: ScalabilityId mapping for scalability dimensions

附属書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が使用され得る。

Figure 0007615036000004
表4: スケーラビリティ次元に対するScalabilityIdのマッピングの修正 In some embodiments, a new entry in the scalability mask table is provided: AtlasFlag, which must be set to indicate that it is a coded image atlas by using one of the reserved values. The existing DepthLayerFlag may be used to distinguish between texture atlas layers and depth atlas layers.
Figure 0007615036000004
Table 4: Correction to the mapping of ScalabilityId to the Scalability dimension

イマーシブプロファイルは、テクスチャアトラス層が、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値は変動し得る。

Figure 0007615036000005
表5:シンタックス要素と変数 For the two layers, Table 5 below shows the values of the relevant syntax elements and variables. The table values highlighted in grey (i.e., DepthLayerFlag, AtlasFlag, ScalabilityId, and direct_dependency_flag for DepthAtlas) are required, while the values not highlighted (i.e., nuh_layer_id) can vary. In some embodiments, the DepthLayerFlag and AtlasFlag values are required in the immersive profile, while the nuh_layer_id value can vary.
Figure 0007615036000005
Table 5: Syntax elements and variables

説明は、これから、記述される技術、エンコーダ、デコーダを実装するためのシステムとデバイスに移る。例えば、ここにおいて説明される任意のエンコーダまたはデコーダは、図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 central processing units 1101, one or more graphics processing units 1102, a memory store 1103, a display 1104, and a transmitter 1105. As also shown, the graphics processing unit 1102 may include or implement a bit depth mapping module 1111, a camera parameter encoding module 1112, an encoder 1121, a decoder 1122, and/or a view synthesis module 1123. Such modules may be implemented to perform operations described herein. In the example system 1100, the memory store 1103 may store texture views, depth views, immersive video data, piecewise linear mapping parameters, bitstream data, synthetic view data, camera array parameters, or any other data or data structures described herein.

図示されるように、いくつかの例において、ビット深さマッピングモジュール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 parameter encoding module 1112, the encoder 1121, the decoder 1122, and/or the view synthesis module 1123 are implemented via the graphics processing unit 1102. In other examples, one or more portions of the bit depth mapping module 1111, the camera parameter encoding module 1112, the encoder 1121, the decoder 1122, and/or the view synthesis module 1123 are implemented via the central processing unit 1101 or an image processing unit (not shown) of the system 1100. In still other examples, one or more portions of the bit depth mapping module 1111, the camera parameter encoding module 1112, the encoder 1121, the decoder 1122, and/or the view synthesis module 1123 are implemented via an image processing pipeline, a graphics pipeline, or the like.

グラフィックス処理ユニット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 central processing unit 1101 may include any number and type of processing units or modules capable of providing control and other high-level functions for the system 1100 and/or providing any operations as described herein. The memory store 1103 may be any type of memory, such as volatile memory (e.g., static random access memory (SRAM), dynamic random access memory (DRAM), etc.) or non-volatile memory (e.g., flash memory, etc.). In a non-limiting example, the memory store 1103 may be implemented by a cache memory. In one embodiment, one or more portions of the bit depth mapping module 1111, the camera parameter encoding module 1112, the encoder 1121, the decoder 1122, and/or the view synthesis module 1123 are executed via an execution unit (EU) of the graphics processing unit 1102. The EU may include programmable logic or circuitry, such as a logic core or cores capable of providing a wide array of programmable logic functions. In one embodiment, one or more portions of the bit depth mapping module 1111, the camera parameter encoding module 1112, the encoder 1121, the decoder 1122, and/or the view synthesis module 1123 are implemented via dedicated hardware, such as fixed function circuitry. The fixed function circuitry may include dedicated logic or circuitry and provide a set of fixed function entry points to map to the dedicated logic for a fixed purpose or function. In some embodiments, one or more portions of the bit depth mapping module 1111, the camera parameter encoding module 1112, the encoder 1121, the decoder 1122, and/or the view synthesis module 1123 are implemented via an application specific integrated circuit (ASIC). The ASIC may include an integrated circuit customized to perform the operations described herein.

図12は、本開示の少なくとも一部の実施形態に従って構成された、例示的なシステム1200の説明図である。様々な実装において、システム1200は、モバイルデバイスシステムであってよいが、システム1200は、このコンテキストに限定されない。例えば、システム1200は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトラ・ラップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレット、またはスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス、カメラ(例えば、ポイントアンドシュートカメラ、スーパーズームカメラ、デジタル一眼レフ(DSLR)カメラ)、監視カメラ、カメラを含む監視システム、等に組み込むことができる。 12 is an illustration of an example system 1200 configured in accordance with at least some embodiments of the present disclosure. In various implementations, the system 1200 may be a mobile device system, although the system 1200 is not limited in this context. For example, the system 1200 may be incorporated into a personal computer (PC), a laptop computer, an ultra-laptop computer, a tablet, a touchpad, a portable computer, a handheld computer, a personal digital assistant (PDA), a mobile phone, a mobile phone/PDA combination, a television, a smart device (e.g., a smartphone, a smart tablet, or a smart television), a mobile internet device (MID), a messaging device, a data communication device, a camera (e.g., a point-and-shoot camera, a super zoom camera, a digital single-lens reflex (DSLR) camera), a surveillance camera, a surveillance system including a camera, and the like.

種々の実施態様において、システム1200は、ディスプレイ1220に接続されたプラットフォーム1202を含む。プラットフォーム1202は、コンテンツサービスデバイス1230またはコンテンツ配信デバイス1240といったコンテンツデバイス、または、画像センサ1219といった他のコンテンツソースからコンテンツを受信することができる。例えば、プラットフォーム1202は、ここにおいて説明されるように、画像センサ1219または任意の他のコンテンツソースから画像データを受信することができる。1つ以上のナビゲーション機能を含むナビゲーションコントローラ1250を使用して、例えば、プラットフォーム1202及び/又はディスプレイ1220と対話(interact)することができる。これらのコンポーネントそれぞれは、以下でより詳細に説明される。 In various embodiments, the system 1200 includes a platform 1202 coupled to a display 1220. The platform 1202 can receive content from a content device, such as a content services device 1230 or a content delivery device 1240, or from another content source, such as an image sensor 1219. For example, the platform 1202 can receive image data from the image sensor 1219 or any other content source, as described herein. A navigation controller 1250, including one or more navigation features, can be used to interact with the platform 1202 and/or the display 1220, for example. Each of these components is described in more detail below.

種々の実装において、プラットフォーム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 network 1260 to communicate (e.g., send and receive) media information to and from the network 1260. The content delivery device(s) 1240 may also be connected to the platform 1202 and/or the display 1220.

画像センサ1219は、シーンに基づいて画像データを提供し得る任意の適切な画像センサを含んでよい。例えば、画像センサ1219は、半導体電荷結合素子ベースのセンサ、相補型金属酸化物半導体ベースのセンサ、N型金属酸化物半導体ベースのセンサ、等を含み得る。例えば、画像センサ1219は、画像データを生成するためにシーンの情報を検出し得る任意のデバイスを含み得る。 Image sensor 1219 may include any suitable image sensor capable of providing image data based on a scene. For example, image sensor 1219 may include a semiconductor charge-coupled device-based sensor, a complementary metal oxide semiconductor-based sensor, an N-type metal oxide semiconductor-based sensor, etc. For example, image sensor 1219 may include any device capable of detecting information of a scene to generate image data.

様々な実装において、コンテンツサービスデバイス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 network 1260 or directly. It will be appreciated that content may be unidirectionally and/or bidirectionally communicated to and/or from any one of the components and content providers in the system 1200 via the network 1260. Examples of content may include any media information, including, for example, video, music, medical, and gaming information, etc.

コンテンツサービスデバイス、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 navigation controller 1250 having one or more navigation functions. The navigation functions of navigation controller 1250 can be used, for example, to interact with user interface 1222. In various embodiments, navigation controller 1250 can be a pointing device, which can be a computer hardware component (particularly a human interface device) that allows a user to input spatial (e.g., continuous and multi-dimensional) data into a computer. Many systems, such as graphical user interfaces (GUIs), as well as televisions and monitors, allow a user to control a computer or television and provide data using physical gestures.

ナビゲーションコントローラ1250のナビゲーション機能の動きは、ディスプレイ上に表示されるポインタ、カーソル、フォーカスリング、または他の視覚インジケータの動きによって、ディスプレイ(例えば、ディスプレイ1220)上で複製(replicated)され得る。例えば、ソフトウェアアプリケーション1216の制御下で、ナビゲーションコントローラ1250に置かれているナビゲーション機能は、例えば、ユーザインターフェイス1222上に表示される仮想ナビゲーション機能にマッピングされ得る。様々な実施形態において、ナビゲーションコントローラ1250は、別個のコンポーネントでなくてよいが、プラットフォーム1202及び/又はディスプレイ1220へと統合されてよい。しかしながら、本開示は、ここにおいて示される要素または記述されるコンテキストに限定されない。 Movement of navigation features of the navigation controller 1250 may be replicated on a display (e.g., display 1220) by movement of a pointer, cursor, focus ring, or other visual indicator displayed on the display. For example, under control of the software application 1216, navigation features located on the navigation controller 1250 may be mapped to virtual navigation features displayed on the user interface 1222, for example. In various embodiments, the navigation controller 1250 may not be a separate component, but may be integrated into the platform 1202 and/or the display 1220. However, this disclosure is not limited to the elements shown or in the context described herein.

種々の実装において、ドライバ(図示なし)は、例えば、イネーブルされたときに、初期ブート(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 content delivery device 1240 even when the platform is turned "off." In addition, the chipset 1205 may include hardware and/or software support for, for example, 5.1 surround sound audio and/or high definition 7.1 surround sound audio. The drivers may include graphics drivers for an integrated graphics platform. In various embodiments, the graphics drivers may include a peripheral component interconnect (PCI) graphics card.

様々な実装においては、システム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 system 1200 may be integrated. For example, platform 1202 and content services device 1230 may be integrated, or platform 1202 and content delivery device 1240 may be integrated, or platform 1202, content services device 1230, and content delivery device 1240 may be integrated, for example. In various embodiments, platform 1202 and display 1220 may be an integrated unit. Display 1220 and content services device 1230 may be integrated, for example, or display 1220 and content delivery device 1240 may be integrated. These examples are not intended to limit the disclosure.

様々な実施形態において、システム1200は、無線システム、有線システム、または、その両方の組み合わせとして実装されてよい。無線システムとして実装される場合、システム1200は、1つ以上のアンテナ、送信器、受信器、トランシーバ、増幅器、フィルタ、制御論理など、といった無線共有媒体(wireless shared media)を介して通信するのに適したコンポーネントおよびインターフェイスを含み得る。無線共有媒体の一つの例は、RFスペクトルなど、といった無線スペクトルの一部を含み得る。有線システムとして実装される場合、システム1200は、入出力アダプタ、入力/出力(I/O)アダプタを対応する有線通信媒体に接続するための物理コネクタ、ネットワークインターフェイスカード(NIC)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ、等といった有線通信媒体を介して通信するのに適したコンポーネントおよびインターフェイスを含み得る。有線通信媒体の例は、ワイヤ、ケーブル、メタルリード、プリント回路基板(PCB)、バックプレーン、スイッチファブリック(switch fabric)、半導体資料、ツイストペアワイヤ、同軸ケーブル、光ファイバ、等を含み得る。 In various embodiments, system 1200 may be implemented as a wireless system, a wired system, or a combination of both. When implemented as a wireless system, system 1200 may include components and interfaces suitable for communicating over a wireless shared media, such as one or more antennas, transmitters, receivers, transceivers, amplifiers, filters, control logic, etc. One example of a wireless shared media may include a portion of a wireless spectrum, such as the RF spectrum. When implemented as a wired system, system 1200 may include components and interfaces suitable for communicating over a wired communication media, such as input/output adapters, physical connectors for connecting input/output (I/O) adapters to corresponding wired communication media, network interface cards (NICs), disk controllers, video controllers, audio controllers, etc. Examples of wired communication media may include wires, cables, metal leads, printed circuit boards (PCBs), backplanes, switch fabrics, semiconductor materials, twisted pair wires, coaxial cables, optical fibers, etc.

プラットフォーム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, system 1200 may be embodied in a variety of physical styles or form factors. FIG. 13 illustrates an example small form factor device 1300 configured in accordance with at least some embodiments of the present disclosure. In some examples, system 1200 may be implemented via device 1300. In other examples, other systems, components, or modules described herein, or portions thereof, may be implemented via device 1300. In various embodiments, for example, device 1300 may be implemented as a mobile computing device having wireless capabilities. A mobile computing device may refer to any device having a processing system and a mobile power source or power source, such as, for example, one or more batteries.

モバイルコンピューティングデバイスの例は、パーソナルコンピュータ(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, device 1300 may include a housing having a front 1301 and a back 1302. Device 1300 includes a display 1304, an input/output (I/O) device 1306, a color camera 1321, a color camera 1322, and an integrated antenna 1308. In some embodiments, color camera 1321 and color camera 1322 acquire planar images as described herein. In some embodiments, device 1300 does not include color cameras 1321 and 1322, and device 1300 acquires input image data from another device (e.g., any input image data described herein). Device 1300 may also include navigation functionality 1312. I/O device 1306 may include any suitable I/O device for inputting information into a mobile computing device. Examples of I/O devices 1306 may include an alphanumeric keyboard, numeric keypad, touchpad, input keys, buttons, switches, microphones, speakers, voice recognition devices, and software, etc. Information may also be entered into device 1300 via a microphone (not shown) or digitized by a voice recognition device. As shown, device 1300 may include color cameras 1321, 1322, and a flash 1310 integrated into the back 1302 (or elsewhere) of device 1300. In other examples, color cameras 1321, 1322, and a flash 1310 may be integrated into the front 1301 of device 1300, or both a front and back set of cameras may be provided. Color cameras 1321, 1322 and flash 1310 may be components of a camera module for generating color image data with IR texture correction that may be output to display 1304 and/or processed into images or streaming video that may be remotely communicated from device 1300 via antenna 1308, for example.

種々の実施形態は、ハードウェア要素、ソフトウェア要素、または、その両方の組み合わせを使用して実装され得る。ハードウェア要素の例は、プロセッサ、マイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗、キャパシタ、インダクタ、など)、集積回路、特定用途向け集積回路(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:
前記第2ラインセグメントエンドポイントの水平成分および垂直成分は、それぞれに、前記第1最大深度値および前記第2最大深度値よりも小さい、
請求項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.
前記第1ラインセグメントエンドポイントおよび前記第2ラインセグメントエンドポイントは、前記マッピングの第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.
前記第1ラインセグメントは、第1スロープを有し、かつ、
前記第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:
前記第2ラインセグメントエンドポイントの水平成分および垂直成分は、それぞれに、前記第1最大値の深度値および前記第2最大値の深度値より小さい、
請求項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.
前記第1ラインセグメントエンドポイントおよび前記第2ラインセグメントエンドポイントは、前記マッピングの第1ラインセグメントを画定し、
前記マッピングは、さらに、前記第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.
前記第1ラインセグメントは、第1スロープを有し、かつ、
前記第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つのマシンで読取り可能な媒体であって、
コンピューティングデバイスで命令が実行されることに応答して、請求項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.
JP2021548154A 2019-03-19 2020-03-17 High-Level Syntax for Immersive Video Coding Active JP7615036B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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