JP2019517218A - Hevcおよびl−hevcファイルフォーマットでのタイルグルーピングおよびサンプルのマッピング - Google Patents

Hevcおよびl−hevcファイルフォーマットでのタイルグルーピングおよびサンプルのマッピング Download PDF

Info

Publication number
JP2019517218A
JP2019517218A JP2018561008A JP2018561008A JP2019517218A JP 2019517218 A JP2019517218 A JP 2019517218A JP 2018561008 A JP2018561008 A JP 2018561008A JP 2018561008 A JP2018561008 A JP 2018561008A JP 2019517218 A JP2019517218 A JP 2019517218A
Authority
JP
Japan
Prior art keywords
slice
tile
sample
file
segments
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.)
Granted
Application number
JP2018561008A
Other languages
English (en)
Other versions
JP2019517218A5 (ja
JP6932144B2 (ja
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 JP2019517218A publication Critical patent/JP2019517218A/ja
Publication of JP2019517218A5 publication Critical patent/JP2019517218A5/ja
Application granted granted Critical
Publication of JP6932144B2 publication Critical patent/JP6932144B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/174Methods 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 an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • 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/188Methods 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 a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Image Generation (AREA)

Abstract

コンピューティングデバイスが、ピクチャのスライスのそれぞれのスライスセグメントのためのそれぞれのRBSPをカプセル化する複数のコード化スライスNALユニットを備えるビットストリームを受信する。スライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含む。ピクチャは、第1のタイルおよび第2のタイルを含む複数のタイルに区分される。スライスセグメントは、第1のタイルのCTUを含む1つまたは複数のスライスセグメントおよび第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含む。コンピューティングデバイスは、ビットストリームを記憶するファイルを生成する。ファイルを生成することの一部として、コンピューティングデバイスは、ファイルにおいてタイル領域を定義する。タイル領域は、スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する整数個のタイルを備える。長方形タイル領域は第1のタイルを含み、第2のタイルを含まない。

Description

本出願は、その内容全体が参照により本明細書に組み込まれる、2016年5月24日に出願された米国仮特許出願第62/341,025号の利益を主張する。
本開示は、ビデオデータを処理するためのコンピューティングデバイスに関する。
デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、そのスケーラブルビデオコーディング(SVC:Scalable Video Coding)およびマルチビュービデオコーディング(MVC:Multiview Video Coding)拡張を含むITU-T H.264またはISO/IEC MPEG-4 AVC、ならびにそのスケーラブルコーディング拡張(すなわち、スケーラブル高効率ビデオコーディング、SHVC)およびマルチビュー拡張(すなわち、マルチビュー高効率ビデオコーディング、MV-HEVC)を含む、ITU-T H.265およびISO/IEC 23008-2としても知られている高効率ビデオコーディング(HEVC:High-Efficiency Video Coding)によって定められた規格で説明されているような、ビデオ圧縮技法を実装する。また、HEVCおよび階層化HEVC(「L-HEVC」)は、HEVCおよびL-HEVCの記憶のための様々なファイルフォーマットが開発中であることを表している。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)がビデオブロックに区分される場合があり、ビデオブロックは、ツリーブロック、コーディングユニット(CU)、および/またはコーディングノードと呼ばれる場合もある。ピクチャはフレームと呼ばれる場合があり、参照ピクチャ(reference picture)は参照フレーム(reference frame)と呼ばれる場合がある。
米国仮出願第62/339,009号
ISO/IEC FDIS 144916-15:2014 ISO/IEC 14496-12、第5版
本開示の態様は、一般に、HEVCおよび階層化HEVC(L-HEVC)ファイルフォーマットでのタイルグルーピングを扱うコンピューティングデバイスの改善に関する。ビデオコーディングデバイス(たとえば、HEVC準拠エンコーダもしくはデコーダ)、ファイル生成デバイス、メディアアウェアネットワーク要素(MANE: media aware network element)、または他のタイプのコンピューティングデバイスなどのコンピューティングデバイスは、独立して、または様々な組合せで本開示の様々な技法を実装し得る。
一例では、本開示は、ビデオデータを処理する方法について説明し、本方法は、コンピューティングデバイスによって、ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備えるビットストリームを受信するステップであって、NALユニットのストリームは、複数のコード化スライスNALユニット(coded slice NAL unit)を備え、複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、スライスの複数のスライスセグメントの各それぞれのスライスセグメントは、ピクチャの整数個のコーディングツリーユニット(CTU)を備え、スライスの複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、それぞれの従属スライスセグメントは、独立スライスセグメントに関する値から推測可能なそれぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、ピクチャは、複数のタイルに区分され、複数のタイルは、第1のタイルおよび第2のタイルを含み、スライスの複数のスライスセグメントは、第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、スライスの複数のスライスセグメントは、第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含む、ステップと、コンピューティングデバイスによって、ビットストリームを記憶するファイルを生成するステップであって、ファイルを生成することは、ファイルにおいてタイル領域を定義することを含み、タイル領域は、スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、長方形タイル領域は、第1のタイルを含み、長方形タイル領域は、第2のタイルを含まない、ステ
ップとを含む。
別の例では、本開示は、ビデオデータを処理する方法について説明し、本方法は、コンピューティングデバイスによって、ビットストリームを記憶するファイルを受信するステップであって、ビットストリームは、ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備え、NALユニットのストリームは、複数のコード化スライスNALユニットを備え、複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、スライスの複数のスライスセグメントの各それぞれのスライスセグメントは、ピクチャの整数個のコーディングツリーユニット(CTU)を備え、スライスの複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、それぞれの従属スライスセグメントは、独立スライスセグメントに関する値から推測可能なそれぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、ピクチャは、複数のタイルに区分され、複数のタイルは、第1のタイルおよび第2のタイルを含み、スライスの複数のスライスセグメントは、第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、スライスの複数のスライスセグメントは、第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、ファイルにおいてタイル領域が定義され、タイル領域は、スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、長方形タイル領域は、第1のタイルを含み、長方形タイル領域は、第2のタイルを含まない、ステップと、コンピューティングデバイスによって、ローカルメディアファイル再生またはリモートデバイスへのファイル中のデータのプログレッシブダウンロードのうちの少なくとも1つのためにファイルを使用するステップとを含む。
別の例では、本開示は、ビデオデータの記憶のためのファイルを生成するためのコンピューティングデバイスについて説明し、コンピューティングデバイスは、ファイルを記憶するように構成されたメモリと、1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備えるビットストリームを受信することであって、NALユニットのストリームは、複数のコード化スライスNALユニットを備え、複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、スライスの複数のスライスセグメントの各それぞれのスライスセグメントは、ピクチャの整数個のコーディングツリーユニット(CTU)を備え、スライスの複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、それぞれの従属スライスセグメントは、独立スライスセグメントに関する値から推測可能なそれぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、ピクチャは、複数のタイルに区分され、複数のタイルは、第1のタイルおよび第2のタイルを含み、スライスの複数のスライスセグメントは、第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、スライスの複数のスライスセグメントは、第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含む、受信することと、ビットストリームを記憶するファイルを生成することであって、ファイルを生成することは、ファイルにおいてタイル領域を定義することを含み、タイル領域は、スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、長方形タイル領域は、第1のタイルを含み、長方形タイル領域は、第2のタイルを含まない、生成することとを行うように構成される。
別の例では、本開示は、ビデオデータの記憶のためのファイルを処理するためのコンピューティングデバイスについて説明し、コンピューティングデバイスは、ファイルを記憶するように構成されたメモリと、1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、ビットストリームを記憶するファイルを受信することであって、ビットストリームは、ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備え、NALユニットのストリームは、複数のコード化スライスNALユニットを備え、複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、スライスの複数のスライスセグメントの各それぞれのスライスセグメントは、ピクチャの整数個のコーディングツリーユニット(CTU)を備え、スライスの複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、それぞれの従属スライスセグメントは、独立スライスセグメントに関する値から推測可能なそれぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、ピクチャは、複数のタイルに区分され、複数のタイルは、第1のタイルおよび第2のタイルを含み、スライスの複数のスライスセグメントは、第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、スライスの複数のスライスセグメントは、第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、ファイルにおいてタイル領域が定義され、タイル領域は、スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、長方形タイル領域は、第1のタイルを含み、長方形タイル領域は、第2のタイルを含まない、受信することと、ローカルメディアファイル再生またはリモートデバイスへのファイル中のデータのプログレッシブダウンロードのうちの少なくとも1つのためにファイルを使用することとを行うように構成される。
別の例では、本開示は、ビデオデータの記憶のためのファイルを生成するための装置について説明し、装置は、ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備えるビットストリームを受信するための手段であって、NALユニットのストリームは、複数のコード化スライスNALユニットを備え、複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、スライスの複数のスライスセグメントの各それぞれのスライスセグメントは、ピクチャの整数個のコーディングツリーユニット(CTU)を備え、スライスの複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、それぞれの従属スライスセグメントは、独立スライスセグメントに関する値から推測可能なそれぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、ピクチャは、複数のタイルに区分され、複数のタイルは、第1のタイルおよび第2のタイルを含み、スライスの複数のスライスセグメントは、第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、スライスの複数のスライスセグメントは、第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含む、手段と、ビットストリームを記憶するファイルを生成するための手段であって、ファイルを生成することは、ファイルにおいてタイル領域を定義することを含み、タイル領域は、スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、長方形タイル領域は、第1のタイルを含み、長方形タイル領域は、第2のタイルを含まない、手段とを含む。
別の例では、本開示は、ビデオデータの記憶のためのファイルを処理するための装置について説明し、装置は、ビットストリームを記憶するファイルを受信するための手段であって、ビットストリームは、ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備え、NALユニットのストリームは、複数のコード化スライスNALユニットを備え、複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、スライスの複数のスライスセグメントの各それぞれのスライスセグメントは、ピクチャの整数個のコーディングツリーユニット(CTU)を備え、スライスの複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、それぞれの従属スライスセグメントは、独立スライスセグメントに関する値から推測可能なそれぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、ピクチャは、複数のタイルに区分され、複数のタイルは、第1のタイルおよび第2のタイルを含み、スライスの複数のスライスセグメントは、第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、スライスの複数のスライスセグメントは、第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、ファイルにおいてタイル領域が定義され、タイル領域は、スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、長方形タイル領域は、第1のタイルを含み、長方形タイル領域は、第2のタイルを含まない、手段と、ローカルメディアファイル再生またはリモートデバイスへのファイル中のデータのプログレッシブダウンロードのうちの少なくとも1つのためにファイルを使用するための手段とを含む。
別の例では、本開示は、命令で符号化されたコンピュータ可読記憶媒体について説明し、命令は、実行されたときに、デバイスのプロセッサを、ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備えるビットストリームを受信することであって、NALユニットのストリームは、複数のコード化スライスNALユニットを備え、複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、スライスの複数のスライスセグメントの各それぞれのスライスセグメントは、ピクチャの整数個のコーディングツリーユニット(CTU)を備え、スライスの複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、それぞれの従属スライスセグメントは、独立スライスセグメントに関する値から推測可能なそれぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、ピクチャは、複数のタイルに区分され、複数のタイルは、第1のタイルおよび第2のタイルを含み、スライスの複数のスライスセグメントは、第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、スライスの複数のスライスセグメントは、第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含む、受信することと、ビットストリームを記憶するファイルを生成することであって、ファイルを生成することは、ファイルにおいてタイル領域を定義することを含み、タイル領域は、スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、長方形タイル領域は、第1のタイルを含み、長方形タイル領域は、第2のタイルを含まない、生成することとを行うように構成する。
別の例では、本開示は、命令で符号化されたコンピュータ可読記憶媒体について説明し、命令は、実行されたときに、デバイスのプロセッサを、ビットストリームを記憶するファイルを受信することであって、ビットストリームは、ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備え、NALユニットのストリームは、複数のコード化スライスNALユニットを備え、複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、スライスの複数のスライスセグメントの各それぞれのスライスセグメントは、ピクチャの整数個のコーディングツリーユニット(CTU)を備え、スライスの複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、それぞれの従属スライスセグメントは、独立スライスセグメントに関する値から推測可能なそれぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、ピクチャは、複数のタイルに区分され、複数のタイルは、第1のタイルおよび第2のタイルを含み、スライスの複数のスライスセグメントは、第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、スライスの複数のスライスセグメントは、第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、ファイルにおいてタイル領域が定義され、タイル領域は、スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、長方形タイル領域は、第1のタイルを含み、長方形タイル領域は、第2のタイルを含まない、受信することと、ローカルメディアファイル再生またはリモートデバイスへのファイル中のデータのプログレッシブダウンロードのうちの少なくとも1つのためにファイルを使用することとを行うように構成する。
本開示の1つまたは複数の例の詳細が、添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになる。
本開示で説明する技法を使用し得る例示的なビデオ符号化および復号システムを示すブロック図である。 例示的なタイルおよびスライスを示す概念図である。 本開示で説明する技法とともに使用され得る例示的なビデオエンコーダを示すブロック図である。 本開示で説明する技法とともに使用され得る例示的なビデオデコーダを示すブロック図である。 ネットワークの一部を形成するデバイスの例示的なセットを示すブロック図である。 本開示の1つまたは複数の技法による、ファイルの例示的な構造を示す概念図である。 本開示の技法による、コンピューティングデバイスの例示的な動作を示すフローチャートである。 本開示の技法による、ファイルを処理するためのコンピューティングデバイスの例示的な動作を示すフローチャートである。
高効率ビデオコーディング(HEVC)および他のビデオコーディング規格では、ピクチャがスライスおよびタイルに分割される。スライスは、1つの独立スライスセグメントに含まれ、同じアクセスユニット内の次の独立スライスセグメント(ある場合)に先行するすべての後続の従属スライスセグメント(ある場合)に含まれる、整数個のコーディングツリーユニット(CTU)である。ピクチャのコーディングツリーユニット(CTU)は、1つまたは複数のCTBを備えることができ、1つまたは複数のコーディングツリーブロック(CTB)のサンプルを符号化するために使用されるシンタックス構造を備えることができる。CTBは、ピクチャのサンプルアレイにおけるピクセルサンプルのN×Nブロックであり得る。スライスセグメントは、タイル走査において連続的に順序付けられ単一のネットワークアブストラクションレイヤ(NAL)ユニットに含まれている、整数個のCTUである。独立スライスセグメントは、スライスセグメントヘッダのシンタックス要素の値が先行するスライスセグメントに関する値から推測可能ではないスライスセグメントである。従属スライスセグメントは、スライスセグメントヘッダのいくつかのシンタックス要素の値が復号順序で先行する独立スライスセグメントに関する値から推測可能であるスライスセグメントである。
タイルは、ピクチャにおける特定のタイル列および特定のタイル行の中のCTUの長方形領域である。タイル列は、ピクチャの高さに等しい高さおよびビットストリームにおけるピクチャパラメータセット(PPS)中などビットストリームにおいてシグナリングされる幅を有するCTUの長方形領域である。タイル行は、ピクチャの幅に等しい幅およびPPS中などビットストリームにおいてシグナリングされる高さを有するCTUの長方形領域である。タイルは、2つ以上のスライスに含まれるCTUからなり得る。同様に、スライスは、2つ以上のタイルに含まれるCTUからなり得る。だが、各スライスおよびタイルに関して、以下の条件の一方または両方が満たされなければならない。(1)スライス中のすべてのCTUは同じタイルに属する、(2)タイル中のすべてのCTUは同じスライスに属する。さらに、各スライスセグメントおよびタイルに関して、以下の条件の一方または両方が満たされなければならない。(1)スライスセグメント中のすべてのCTUは同じタイルに属する、(2)タイル中のすべてのCTUは同じスライスセグメントに属する。
いくつかの例では、ピクチャの1つまたは複数のタイル内のCTUは、ピクチャの他のタイル中のCTUを参照せずに復号され得るが、時間またはレイヤ間参照ピクチャに依存し得る。ビデオデコーダがピクチャのタイルを、ピクチャの他のタイルを参照せずに復号することができる場合、ビデオデコーダはタイル中のCTUを、ピクチャの他のタイルの符号化されたCTUにアクセスせずに復号し得る。たとえば、タイルがピクチャの右上4分の1に対応する場合、ビデオデコーダは、ピクチャの他の4分の3の符号化されたCTUを受信する必要がない。これは、様々な状況で有用であり得る。たとえば、デバイスが小さいディスプレイスクリーンを有し、ビデオのピクチャの右上タイルが主な注目対象である場合、ピクチャの右上タイルのみを表示することが望ましいことがある。したがって、デバイスはピクチャの右上タイルの符号化されたCTUを、ピクチャの他のタイルの符号化されたCTUをダウンロードまたは復号することなくダウンロードおよび復号し得る。さらに、これは仮想現実(VR)のコンテキストで特に有用であり得る。VRのコンテキストでは、ユーザは、所与の瞬間において360度シーンの一部分のみを見る。360度シーンをタイルに分割することによって、デバイスは、ユーザが現在見ている360度シーンのタイルのみをダウンロードおよび/または復号し得る。だが、ピクチャ中のタイル間の構文解析依存性があり得る。たとえば、特定のタイルにおいて復号順序で最初に発生するCTUは、従属スライスセグメントにあり得る。したがって、この例では、特定のタイルのCTUを構文解析することが可能になる前に、別のタイルの符号化されたCTUを含む対応する独立セグメントを構文解析する必要があり得る。
様々なファイルフォーマットに準拠するファイルが、符号化されたビデオデータを記憶するために使用され得る。そのようなファイルフォーマットは、国際標準化機構(「ISO」)ベースメディアファイルフォーマット(ISOBMFF、ISO/IEC 14496-12)、ならびにMPEG-4ファイルフォーマット(ISO/IEC 14496-15)、3GPPファイルフォーマット(3GPP TS 26.244)およびAVCファイルフォーマット(ISO/IEC 14496-15)を含む、ISOBMFFから導出された他の規格を含む。ISOBMFFに準拠するファイルは、符号化されたビデオデータに加えてメタデータを含み得る。メタデータは、コンピューティングデバイスがファイル内の所望の符号化されたビデオデータを、コンピューティングデバイスが符号化されたビデオデータを解釈または復号する必要なしに特定および抽出するのを支援し得る。いくつかの例では、ファイル中の所望の符号化されたビデオデータを特定した後、コンピューティングデバイスは所望の符号化されたビデオデータを、ファイル中の他の符号化されたビデオデータを復号する必要なしに復号し得る。いくつかの例では、ファイル中の所望の符号化されたビデオデータを特定した後、コンピューティングデバイスは別のデバイスに所望の符号化されたビデオデータを、ファイル中の他の符号化されたビデオデータを送信せずに送信し得る。上記で説明した理由により、所望の符号化されたビデオデータは、ビデオデータのピクチャの特定のタイルに対応し得る。
ネットワークアブストラクションレイヤ(NAL)ユニット構造化ビデオの搬送のためのISOBMFFの拡張(以下、ISO/IEC FDIS 144916-15:2014)は、特定のタイルに対応する符号化されたビデオデータをコンピューティングデバイスが特定することを可能にする機構を指定している。たとえば、ISO/IEC FDIS 144916-15:2014は、長方形タイル領域および制約なしタイル領域の概念を定義している。ISO/IEC FDIS 144916-15:2014では、長方形タイル領域は、他のHEVCタイルを含まず、復号順序で連続してよいが連続する必要はない1つまたは複数のスライスにおいて符号化された長方形領域を形成する任意の整数個のHEVCタイルとして定義されている。さらに、ISO/IEC FDIS 144916-15:2014では、制約なしタイル領域は、1つまたは複数の完全なHEVCタイルからなるが、復号順序で連続する必要はない任意の数の完全なスライスとして定義されている。ファイルは、長方形タイル領域および制約なしタイル領域のための符号化されたビデオデータを特定する方法を示すメタデータを含み得る。
ISO/IEC FDIS 144916-15:2014における長方形タイル領域および制約なしタイル領域の定義は、いくつかの欠点を有する。たとえば、ISO/IEC FDIS 144916-15:2014は、スライスに関して長方形タイル領域および制約なしタイル領域を定義している。だが、スライスは、複数のタイルのCTUを含むことがあるので、不要なタイルのCTUを含むスライスセグメントを含むスライスを長方形タイル領域または制約なしタイル領域が含み得る状況が生じることがある。たとえば、ピクチャが1つのスライスを有することがあり、第1のタイルおよび第2のタイルに分割されることがある。この例では、スライスのスライスセグメントの第1のグループが第1のタイル中のCTUを含むことがあり、スライスのスライスセグメントの第2のグループが第2のタイル中のCTUを含むことがある。さらに、この例では、第1のタイルを備えるが第2のタイルを備えない長方形タイル領域を定義することが望ましいことがある。だが、ISO/IEC FDIS 144916-15:2014がスライスセグメントの代わりにスライスに関して長方形タイル領域および制約なしタイル領域を定義しているので、ISO/IEC FDIS 14416-15:2014では、復号順序で次のタイルがタイル領域になく、独立スライスセグメントで開始しない場合(すなわち、特定のタイルがスライスのCTUを含み、スライスが、タイル領域にないタイル中のCTUを含む場合)に特定のタイルを含むようにタイル領域が定義され得るかどうかが不明である。この明確性欠如により、コンピューティングデバイスがエラーを生成すること、またはコンピューティングデバイスがあいまいさに対処するためにさらなる複雑さを必要とすることがある。エラーまたはさらなる複雑さのいずれでも、コンピューティングデバイスのパフォーマンスを低下させ得る。
以下でより詳細に説明するように、本開示の技法は、完全なスライスの代わりにスライスセグメントのレベルで長方形タイル領域または制約なしタイル領域の概念を定義する。したがって、そのような技法は、コンピューティングデバイスがエラーおよびさらなる複雑さを回避するのを支援し、それによってコンピューティングデバイスを潜在的に改善することができる。
図1は、本開示で説明する技法を使用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、後で宛先デバイス14によって復号されるべき符号化されたビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのうちのいずれかを備える場合がある。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信用に装備される場合がある。ソースデバイス12および宛先デバイス14は、ビデオデバイスと見なされてよい。
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、メモリ21と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含む場合がある。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前キャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せなどのソースを含む場合がある。しかしながら、本開示で説明する技法は、一般に、ビデオコーディングに適用可能であり得、ワイヤレスおよび/または有線の用途に適用され得る。各場合において、キャプチャされた、事前にキャプチャされた、またはコンピュータで生成されたビデオは、ビデオエンコーダ20によって符号化され得る。メモリ21は、符号化された形態または符号化されていない形態でビデオデータを記憶するように構成され得る。いくつかの例では、メモリ21は、ビデオデータの記憶のためのファイルを記憶し得る。
ビデオエンコーダ20は、キャプチャされた、事前にキャプチャされた、またはコンピュータで生成されたビデオを符号化することができる。ソースデバイス12は、符号化されたビデオデータを、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信することができる。符号化されたビデオデータはまた(または、代替的に)、復号および/または再生のための、宛先デバイス14または他のデバイスによる後のアクセスのために記憶デバイス33に記憶され得る。
宛先デバイス14は、入力インターフェース28と、メモリ29と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化されたビデオデータを受信する。リンク16を介して通信された、または記憶デバイス33上に提供された符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダによって使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含む場合がある。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバ上に記憶された、符号化されたビデオデータとともに含まれ得る。メモリ29は、入力インターフェース28によって受信された符号化されたビデオデータ(たとえば、ビットストリーム)、復号されたビデオデータ、ビデオデータの記憶のためのファイルなどのビデオデータを記憶するように構成され得る。
ディスプレイデバイス32は、宛先デバイス14と一体であることがあり、または宛先デバイス14の外部にあることがある。いくつかの例では、宛先デバイス14は、一体化されたディスプレイデバイスを含むことがあり、また、外部ディスプレイデバイスとインターフェースするように構成されることがある。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備え得る。
ビデオエンコーダ20およびビデオデコーダ30は、各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装される場合がある。本技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれることがあり、そのいずれもが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されることがある。
出力インターフェース22は、符号化されたデータを記憶デバイス33に出力し得る。同様に、入力インターフェース28は、記憶デバイス33からの符号化されたデータにアクセスし得る。記憶デバイス33は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または、符号化されたビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイス33は、ソースデバイス12によって生成された符号化されたビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。出力インターフェース22がワイヤレス送信機を備える例では、出力インターフェース22は、4G、4G-LTE、LTE Advanced、5Gなどのセルラー通信規格に従って変調される、符号化されたビデオデータなどのデータを送信するように構成され得る。出力インターフェース22がワイヤレス送信機を備えるいくつかの例では、出力インターフェース22は、IEEE 802.11仕様、IEEE 802.15仕様(たとえば、ZigBee(登録商標))、Bluetooth(登録商標)規格などの他のワイヤレス規格に従って変調される、符号化されたビデオデータなどのデータを送信するように構成され得る。いくつかの例では、出力インターフェース22の回路は、ビデオエンコーダ20の回路および/またはソースデバイス12の他の構成要素に組み込まれる。たとえば、ビデオエンコーダ20および出力インターフェース22は、システムオンチップ(SoC)の一部であり得る。SoCは、汎用マイクロプロセッサ、グラフィックス処理装置などの、他の構成要素も含み得る。
宛先デバイス14は、リンク16を介して、復号されるべき符号化されたビデオデータを受信することができる。リンク16は、ソースデバイス12から宛先デバイス14に符号化されたビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備える場合がある。一例では、リンク16は、ソースデバイス12がリアルタイムで宛先デバイス14に符号化されたビデオデータを直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信される場合がある。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレスまたは有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースネットワークの一部を形成する場合がある。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含む場合がある。
宛先デバイス14の入力インターフェース28は、リンク16からデータを受信する。入力インターフェース28は、様々なタイプの構成要素またはデバイスを備え得る。たとえば、入力インターフェース28は、ワイヤレス受信機、モデム、有線ネットワーキング構成要素(たとえば、イーサネット(登録商標)カード)、または別の物理的な構成要素を備え得る。入力インターフェース28がワイヤレス受信機を備える例では、入力インターフェース28は、4G、4G-LTE、LTE Advanced、5Gなどのセルラー通信規格に従って変調される、ビットストリームなどのデータを受信するように構成され得る。入力インターフェース28がワイヤレス受信機を備えるいくつかの例では、入力インターフェース28は、IEEE 802.11仕様、IEEE 802.15仕様(たとえば、ZigBee(登録商標))、Bluetooth(登録商標)規格などの他のワイヤレス規格に従って変調される、ビットストリームなどのデータを受信するように構成され得る。いくつかの例では、入力インターフェース28の回路は、ビデオデコーダ30の回路および/または宛先デバイス14の他の構成要素に組み込まれ得る。たとえば、ビデオデコーダ30および入力インターフェース28は、SoCの一部であり得る。SoCは、汎用マイクロプロセッサ、グラフィックス処理装置などの、他の構成要素も含み得る。
宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイス33からの記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはファイルサーバ上に記憶された符号化されたビデオデータにアクセスするのに適した両方の組合せを含み得る。記憶デバイス33からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
本開示の技法は、必ずしもワイヤレスの用途または設定に限定されるとは限らない。技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体上に記憶するためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の用途などの、様々なマルチメディア用途のうちのいずれかをサポートするビデオコーディングに適用される場合がある。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成される場合がある。
さらに、図1の例では、ビデオコーディングシステム10は、ファイル生成デバイス34を含む。ファイル生成デバイス34は、ソースデバイス12によって生成された符号化されたビデオデータ(たとえば、ビットストリーム)を受信し得る。ファイル生成デバイス34は、符号化されたビデオデータを含むファイルを生成し得る。宛先デバイス14は、ファイル生成デバイス34によって生成されたファイルを受信し得る。様々な例では、ファイル生成デバイス34は、様々なタイプのコンピューティングデバイスを含み得る。たとえば、ファイル生成デバイス34は、メディアアウェアネットワーク要素(MANE)、サーバコンピューティングデバイス、パーソナルコンピューティングデバイス、専用コンピューティングデバイス、商用コンピューティングデバイス、または別のタイプのコンピューティングデバイスを備え得る。いくつかの例では、ファイル生成デバイス34は、コンテンツ配信ネットワークの一部である。ファイル生成デバイス34は、ソースデバイス12からリンク16などのチャネルを介して符号化されたビデオデータを受信し得る。さらに、宛先デバイス14は、ファイル生成デバイス34からリンク16などのチャネルを介してファイルを受信し得る。ファイル生成デバイス34は、ビデオデバイスと見なされてよい。ファイル生成デバイス34は、各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路のいずれかとして実装される場合がある。本技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ファイル生成デバイス34は、ビデオデータの記憶のためのファイルを記憶するように構成されたメモリを備え得る。
他の例では、ソースデバイス12または別のコンピューティングデバイスが、符号化されたビデオデータを含むファイルを生成する。しかしながら、説明を簡単にするために、本開示は、ファイルを生成するものとしてファイル生成デバイス34について説明する。とはいえ、そのような説明が全般にコンピューティングデバイスに適用可能であることを理解されたい。
いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、高効率ビデオコーディング(HEVC)規格またはその拡張などの、ビデオ圧縮規格に従って動作する。HEVC規格は、ISO/IEC23008-2と呼ばれることもある。以下でHEVC WDと呼ばれるHEVCのドラフト仕様は、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zipから入手可能である。HEVCに対するマルチビュー拡張、すなわちMV-HEVCも、JCT-3Vによって開発中である。「MV-HEVC Draft Text 5」と題する、以下でMV-HEVC WD5と呼ばれるMV-HEVCの最近のワーキングドラフト(WD)は、http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V-E1004-v6.zipから入手可能である。SHVCという名称の、HEVCに対するスケーラブルな拡張も、JCT-VCによって開発中である。「High efficiency video coding (HEVC) scalable extension draft 3」と題する、以下でSHVC WD3と呼ばれるSHVCの最近のワーキングドラフト(WD)は、http://phenix.it-sudparis.eu/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1008-v3.zipから入手可能である。HEVCの範囲拡張の最近のワーキングドラフト(WD)は、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1005-v3.zipから入手可能である。「3D-HEVC Draft Text 1」と題する、HEVCの3D拡張、すなわち3D-HEVCの最近のワーキングドラフト(WD)は、http://phenix.int-evry.fr/jct2/doc_end_user/documents/5_Vienna/wg11/JCT3V-E1001-v3.zipから入手可能である。ビデオエンコーダ20およびビデオデコーダ30は、これらの規格のうちの1つまたは複数に従って動作することができる。
代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG-4、Part 10、アドバンストビデオコーディング(AVC)と呼ばれるITU-T H.264規格、またはそのような規格の拡張などの、他のプロプライエタリな規格または業界規格に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visualならびにそのスケーラブルビデオコーディング(SVC)拡張およびマルチビュービデオコーディング(MVC)拡張を含むITU-T H.264(ISO/IEC MPEG-4 AVCとしても知られる)を含む。
図1に示さないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、オーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリームの中のオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含んでもよい。適用可能な場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
一般に、HEVCは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含むツリーブロックまたは最大コーディングユニット(LCU)のシーケンスに分割されることを表している。ツリーブロックは、コーディングツリーユニット(CTU)と呼ばれることもある。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分されてもよい。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割されてもよい。たとえば、ツリーブロックは、4分木のルートノードとして、4つの子ノードに分割されてもよく、各子ノードは、次に、親ノードになり、別の4つの子ノードに分割されてもよい。最後の、分割されていない子ノードは、4分木のリーフノードとして、コーディングノード、すなわちコード化ビデオブロックを備える。コード化ビットストリームに関連付けられたシンタックスデータは、ツリーブロックが分割され得る最大回数を定義してもよく、また、コーディングノードの最小サイズを定義してもよい。
CUは、コーディングノードと、コーディングノードに関連付けられた予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。CUのサイズは、8×8ピクセルから、最大64×64ピクセルまたはそれ以上のツリーブロックのサイズまでの範囲であってもよい。各CUは、1つまたは複数のPUと1つまたは複数のTUとを含んでもよい。CUに関連付けられたシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述し得る。区分モードは、CUがスキップまたは直接モード符号化されているか、イントラ予測モード符号化されているか、それともインター予測モード符号化されているかに応じて異なり得る。PUは、形状が非正方形であるように区分されてよい。CUに関連付けられたシンタックスデータはまた、たとえば、4分木に従った1つまたは複数のTUへのCUの区分を記述してもよい。TUは、形状が正方形または非正方形であり得る。
HEVCは、CUによって異なり得る、TUに従う変換を可能にする。TUは、典型的には、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズが決められるが、これは必ずしもそうではないことがある。TUは通常、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)と呼ばれる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは、TUと呼ばれることがある。TUに関連付けられたピクセル差分値は、量子化されてもよい変換係数を生成するために変換されてもよい。
一般に、PUは、予測プロセスに関連するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの分解能(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルのための参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述し得る。
一般に、TUは、変換および量子化プロセスのために使用される。1つまたは複数のPUを有する所与のCUはまた、1つまたは複数のTUを含み得る。予測に続いて、ビデオエンコーダ20は、PUに対応する残差値を計算することができる。残差値は、ピクセル差分値を備え、ピクセル差分値は、エントロピーコーディングのためのシリアライズ化された変換係数を生成するために、変換係数に変換され、量子化され、TUを使用して走査されてもよい。本開示は、典型的には、CUのコーディングノード(すなわち、コーディングブロック)を指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合には、本開示はまた、コーディングノードとPUおよびTUとを含むツリーブロック、すなわち、LCUまたはCUを指すために「ビデオブロック」という用語を使用することがある。
ビデオシーケンスは、典型的には、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は一般に、一連の1つまたは複数のビデオピクチャを備える。GOPは、GOP中に含まれるピクチャの数を記述するシンタックスデータを、GOPのヘッダ、ピクチャのうちの1つもしくは複数のヘッダ、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロック上で動作する。ビデオブロックは、CU内のコーディングノードに対応する場合がある。ビデオブロックは固定サイズまたは可変サイズを有してもよく、指定されたコーディング規格に従ってサイズが異なってもよい。
本開示では、「N×N」および「N掛けるN」は、垂直方向および水平方向の寸法に関するビデオブロックのピクセルの寸法、たとえば、16×16ピクセル、または16掛ける16ピクセルを指すために、互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセル(y=16)と水平方向に16ピクセル(x=16)とを有する。同様に、N×Nブロックは、一般に、垂直方向にNピクセルと水平方向にNピクセルとを有し、ここでNは、負ではない整数値を表す。ブロック中のピクセルは、行および列に配置され得る。その上、ブロックは、必ずしも水平方向で垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックは、N×Mピクセルを備えてもよく、ここでMは、必ずしもNと等しいとは限らない。
CUのPUを使用するイントラ予測またはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUのための残差データを計算してもよい。PUは、空間領域(ピクセル領域とも呼ばれる)におけるピクセルデータを備えてもよく、TUは、残差ビデオデータへの変換、たとえば、離散コサイン変換(DCT:discrete cosine transform)、整数変換、ウェーブレット変換、または概念的に同様の変換の用途に続いて、変換領域における係数を備えてもよい。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応してもよい。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、CUのための変換係数を生成するためにTUを変換してもよい。
変換係数を生成するための任意の変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、一般に、係数を表すために使用されるデータの量をできる限り低減するために変換係数が量子化され、さらなる圧縮が行われるプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、nビット値は、量子化の間にmビット値に丸められることがあり、ここで、nはmよりも大きい。
量子化変換係数を走査して1次元ベクトルを形成した後、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化することができる。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30によって使用するためのビデオデータに関連付けられた他のシンタックス要素をエントロピー符号化してもよい。
ビデオエンコーダ20は、コード化ピクチャの表現および関連するデータを形成するビットのシーケンスを含むビットストリームを出力することができる。「ビットストリーム」という用語は、ネットワークアブストラクションレイヤ(NAL)ユニットストリーム(たとえば、NALユニットのシーケンス)またはバイトストリーム(たとえば、HEVC規格のAnnex Bによって指定されているように、スタートコードプレフィックスおよびNALユニットを含むNALユニットストリームのカプセル化)のいずれかを指すために使用される総称であり得る。NALユニットは、NALユニットにおけるデータのタイプの指示と、必要に応じてエミュレーション防止ビットを散在させたローバイトシーケンスペイロード(RBSP)の形式による、そのデータを含むバイトとを含むシンタックス構造である。NALユニットの各々は、NALユニットヘッダを含むことができ、RBSPをカプセル化し得る。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含む場合がある。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化されている整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、RBSPは0個のビットを含む。
様々なタイプのNALユニットは、様々なタイプのRBSPをカプセル化することができる。たとえば、第1のタイプのNALユニットはピクチャパラメータセット(PPS)のためのRBSPをカプセル化することがあり、第2のタイプのNALユニットはスライスセグメントのためのRBSPをカプセル化することがあり、第3のタイプのNALユニットは補足エンハンスメント情報(SEI: Supplemental Enhancement Information)のためのRBSPをカプセル化することがあり、以下同様である。(パラメータセットおよびSEIメッセージのためのRBSPとは対照的に)ビデオコーディングデータのためのRBSPをカプセル化するNALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれることがある。パラメータセット(たとえば、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、PPSなど)を含むNALユニットは、パラメータセットNALユニットと呼ばれ得る。
本開示は、スライスセグメントのためのRBSPをカプセル化するNALユニットを、コード化スライスNALユニットと呼ぶことがある。HEVC WDにおいて定義されているように、スライスセグメントは、タイル走査において連続的に順序付けられ単一のNALユニットに含まれている、整数個のCTUである。対照的に、HEVC WDでは、スライスは、1つの独立スライスセグメントに含まれ、同じアクセスユニット内の次の独立スライスセグメント(ある場合)に先行するすべての後続の従属スライスセグメント(ある場合)に含まれる、整数個のCTUであり得る。独立スライスセグメントは、スライスセグメントヘッダのシンタックス要素の値が先行するスライスセグメントに関する値から推測されないスライスセグメントである。従属スライスセグメントは、スライスセグメントヘッダのいくつかのシンタックス要素の値が復号順序で先行する独立スライスセグメントに関する値から推測されるスライスセグメントである。コード化スライスNALユニットのRBSPは、スライスセグメントヘッダおよびスライスデータを含み得る。スライスセグメントヘッダは、スライスセグメントで表される第1またはすべてのCTUに関係するデータ要素を含むコード化スライスセグメントの一部である。スライスヘッダは、現在のスライスセグメントである独立スライスセグメントの、または復号順序において現在の従属スライスセグメントに先行する直近の独立スライスセグメントの、スライスセグメントヘッダである。
VPSは、0個以上のコード化ビデオシーケンス(CVS:coded video sequence)全体に適用されるシンタックス要素を備えるシンタックス構造である。SPSは、0個以上のCVS全体に適用されるシンタックス要素を含むシンタックス構造である。SPSは、SPSが有効であるときに有効であるVPSを特定するシンタックス要素を含み得る。したがって、VPSのシンタックス要素は、SPSのシンタックス要素よりも全般に適用可能であり得る。
パラメータセット(たとえば、VPS、SPS、PPSなど)は、スライスセグメントのスライスヘッダから直接または間接的に参照される識別情報を含み得る。この参照プロセスは「有効化」として知られている。したがって、ビデオデコーダ30が特定のスライスを復号しているとき、その特定のスライスのスライスヘッダの中のシンタックス要素によって直接または間接的に参照されるパラメータセットは、「有効化されている」と言われる。パラメータセットのタイプに応じて、有効化は、ピクチャごとに、またはシーケンスごとに行われ得る。たとえば、スライスのスライスヘッダは、PPSを特定するシンタックス要素を含み得る。したがって、ビデオコーダがスライスをコーディングするとき、PPSは有効化され得る。さらに、PPSはSPSを特定するシンタックス要素を含み得る。したがって、SPSを特定するPPSが有効化されるとき、SPSは有効化され得る。SPSはVPSを特定するシンタックス要素を含み得る。したがって、VPSを特定するSPSが有効化されるとき、VPSは有効化される。
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ30は、ビットストリームを構文解析してビットストリームからシンタックス要素を取得し得る。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構築することができる。ビデオデータを再構築するためのプロセスは、全般に、ビデオエンコーダ20によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ30は、PUの動きベクトルを使用して、現在のCUのPUの予測ブロックを決定し得る。加えて、ビデオデコーダ30は、現在のCUのTUの係数ブロックを逆量子化し得る。ビデオデコーダ30は、係数ブロックに対して逆変換を実行して、現在のCUのTUの変換ブロックを再構築し得る。ビデオデコーダ30は、現在のCUのPUの予測ブロックのサンプルを、現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUのコーディングブロックを再構築し得る。ピクチャのCUごとにコーディングブロックを再構築することによって、ビデオデコーダ30はピクチャを再構築し得る。HEVC WDでは、CVSは、瞬時復号リフレッシュ(IDR)ピクチャ、またはブロークンリンクアクセス(BLA: broken link access)ピクチャ、またはIDRピクチャもしくはBLAピクチャではないすべての後続ピクチャを含む、ビットストリームにおける第1のピクチャであるクリーンランダムアクセス(CRA: clean random access)ピクチャから開始し得る。
マルチビューコーディングでは、異なる視点からの同じシーンの複数のビューが存在することがある。「アクセスユニット」という用語は、同じ時間インスタンスに対応するピクチャのセットを指すために使用され得る。したがって、ビデオデータは、経時的に発生する一連のアクセスユニットとして概念化されてよい。「ビューコンポーネント」は、単一のアクセスユニットの中のビューのコード化表現であり得る。本開示では、「ビュー」は、同じビュー識別子に関連付けられたビューコンポーネントのシーケンスまたはセットを指すことがある。ビューコンポーネントは、テクスチャビューコンポーネントおよび深度ビューコンポーネントを含み得る。本開示では、「ビュー」は、同じビュー識別子に関連付けられた1つまたは複数のビューコンポーネントのセットまたはシーケンスを指すことがある。
MV-HEVC、3D-HEVCおよびSHVCでは、ビデオエンコーダは、一連のNALユニットを備えるビットストリームを生成し得る。ビットストリームの異なるNALユニットは、ビットストリームの異なるレイヤに関連付けられ得る。レイヤは、同じレイヤ識別子を有するVCL NALユニットおよび関連する非VCL NALユニットのセットとして定義され得る。レイヤは、マルチビュービデオコーディングにおけるビューと等価であり得る。マルチビュービデオコーディングでは、レイヤは、異なる時間インスタンスを有する同じレイヤのすべてのビューコンポーネントを含むことができる。各ビューコンポーネントは、特定の時間インスタンスにおける特定のビューに属するビデオシーンのコード化ピクチャであり得る。3Dビデオコーディングのいくつかの例では、レイヤは、特定のビューのすべてのコード化深度ピクチャまたは特定のビューのコード化テクスチャピクチャのいずれかを含み得る。3Dビデオコーディングの他の例では、レイヤは、特定のビューのテクスチャビューコンポーネントと深度ビューコンポーネントの両方を含み得る。同様に、スケーラブルビデオコーディングのコンテキストでは、レイヤは、通常、他のレイヤの中のコード化ピクチャとは異なるビデオ特性を有するコード化ピクチャに対応する。そのようなビデオ特性は、通常、空間分解能および品質レベル(たとえば、信号対雑音比)を含む。HEVCおよびその拡張では、特定の時間レベルを有するピクチャグループをサブレイヤとして定義することによって、時間スケーラビリティが1つのレイヤ内で達成され得る。
ビットストリームのそれぞれのレイヤごとに、下位レイヤの中のデータは、いかなる上位レイヤの中のデータも参照せずに復号され得る。スケーラブルビデオコーディングでは、たとえば、ベースレイヤの中のデータは、エンハンスメントレイヤの中のデータを参照せずに復号され得る。一般に、NALユニットは、単一のレイヤのデータのみをカプセル化し得る。したがって、ビットストリームの残りの最上位レイヤのデータをカプセル化するNALユニットは、ビットストリームの残りのレイヤの中のデータの復号可能性に影響を及ぼすことなくビットストリームから除去され得る。マルチビューコーディングおよび3D-HEVCでは、上位レイヤは、追加のビューコンポーネントを含み得る。SHVCでは、上位レイヤは、信号対雑音比(SNR)エンハンスメントデータ、空間エンハンスメントデータ、および/または時間エンハンスメントデータを含み得る。MV-HEVC、3D-HEVCおよびSHVCでは、ビデオデコーダがいかなる他のレイヤのデータも参照せずにレイヤの中のピクチャを復号できる場合、そのレイヤは「ベースレイヤ」と呼ばれることがある。ベースレイヤは、HEVCベース仕様(たとえば、HEVC WD)に準拠し得る。
SVCでは、ベースレイヤ以外のレイヤは「エンハンスメントレイヤ」と呼ばれることがあり、ビットストリームから復号されるビデオデータの視覚品質を向上させる情報を提供し得る。SVCは、空間分解能、信号対雑音比(すなわち、品質)または時間的なレートを向上させることができる。スケーラブルビデオコーディング(たとえば、SHVC)では、「レイヤ表現」は、単一のアクセスユニットにおける空間レイヤのコード化表現であり得る。説明を簡単にするために、本開示は、ビューコンポーネントおよび/またはレイヤ表現を「ビューコンポーネント/レイヤ表現」または単に「ピクチャ」と呼ぶことがある。
レイヤを実装するために、NALユニットのヘッダは、nuh_reserved_zero_6bitsシンタックス要素を含み得る。HEVC WDでは、nuh_reserved_zero_6bitsシンタックス要素が予約される。だが、MV-HEVC、3D-HEVCおよびSHVCでは、nuh_reserved_zero_6bitsシンタックス要素はnuh_layer_idシンタックス要素と呼ばれる。nuh_layer_idシンタックス要素は、レイヤの識別子を指定する。異なる値を指定するnuh_layer_idシンタックス要素を有するビットストリームのNALユニットは、ビットストリームの異なるレイヤに属する。
いくつかの例では、NALユニットのnuh_layer_idシンタックス要素は、NALユニットがマルチビューコーディング(たとえば、MV-HEVC)、3DVコーディング(たとえば、3D-HEVC)、またはスケーラブルビデオコーディング(たとえば、SHVC)におけるベースレイヤに関連する場合、0に等しい。ビットストリームのベースレイヤの中のデータは、ビットストリームのいかなる他のレイヤの中のデータも参照せずに復号され得る。NALユニットがマルチビューコーディング、3DV、またはスケーラブルビデオコーディングにおけるベースレイヤに関連しない場合、NALユニットのnuh_layer_idシンタックス要素は、0ではない値を有し得る。
さらに、レイヤ内のいくつかのビューコンポーネント/レイヤ表現は、同じレイヤ内の他のビューコンポーネント/レイヤ表現を参照することなく復号され得る。したがって、レイヤのいくつかのビューコンポーネント/レイヤ表現のデータをカプセル化するNALユニットは、レイヤ中の他のビューコンポーネント/レイヤ表現の復号可能性に影響を与えることなく、ビットストリームから除去され得る。そのようなビューコンポーネント/レイヤ表現のデータをカプセル化するNALユニットを除去することで、ビットストリームのフレームレートを下げることができる。レイヤ内の他のビューコンポーネント/レイヤ表現を参照することなく復号され得るレイヤ内のビューコンポーネント/レイヤ表現のサブセットは、「サブレイヤ」または「時間サブレイヤ」と本明細書では呼ばれ得る。
NALユニットは、NALユニットの時間識別子(すなわち、TemporalId)を指定するtemporal_idシンタックス要素を含み得る。NALユニットの時間識別子は、NALユニットが属するサブレイヤを識別する。したがって、ビットストリームの各サブレイヤは、異なる時間識別子を有し得る。一般に、レイヤの第1のNALユニットの時間識別子が同じレイヤの第2のNALユニットの時間識別子未満である場合、第1のNALユニットによってカプセル化されるデータは、第2のNALユニットによってカプセル化されるデータを参照することなく復号され得る。
HEVCのセクション3.160で説明されているように、タイルは、ピクチャにおける特定のタイル列および特定のタイル行の中のコーディングツリーブロックの長方形領域である。HEVCタイルは、同じコード化ピクチャにおける他のHEVCタイルとのコーディング依存性を有しないが、以前のコード化ピクチャからの他のHEVCタイルとのコーディング依存性を有することがあり、または独立して復号されることがある。だが、いくつかの例では、HEVCタイル間の構文解析依存性があり得る。図2は、例示的なタイルおよびスライスを示す概念図である。図2の例では、ピクチャ40は、各々が小さい正方形として表される64個のルーマCTBを有する。さらに、ピクチャ40は、垂直タイル境界50および水平タイル境界52によって分離された4つのタイル、42、44、46、48を有する。タイル42および44は第1のタイル行を形成し、タイル46および48は第2の異なるタイル行を形成する。その上、タイル42および46は第1のタイル列を形成し、タイル44および48は第2の異なるタイル列を形成する。タイル境界は、図2では厚い線として表されている。
図2の例では、タイル42におけるCTBがタイル46におけるCTBに隣接する場合でも、タイル46におけるCTBがタイル42におけるCTBに依存することはない。タイル列は、ピクチャの高さに等しい高さおよび(たとえば、ピクチャパラメータセットにおいて)シンタックス要素によって指定される幅を有するコーディングツリーブロックの長方形領域である。タイル行は、(たとえば、ピクチャパラメータセットにおいて)シンタックス要素によって指定される高さおよびピクチャの幅に等しい幅を有するコーディングツリーブロックの長方形領域である。
ピクチャ40は、8つのスライスセグメント54、56、58、60、62、64、66、および68を有する。図2の例では、スライスセグメント境界は破線で示されている。さらに、図2の例では、影付きCTBを有するスライスセグメントは独立スライスセグメントであり、白のCTBを有するスライスセグメントは従属スライスセグメントである。HEVCでは、スライスセグメントの各コード化ブロックは、スライスセグメントのためのNALユニットに含まれる。さらに、HEVCでは、NALユニットは、複数のスライスセグメントのコード化ブロックを含まない。
図2の例では、CTBの各々における番号は、CTBのコーディング順序を示す。図2に示すように、タイル境界は、ピクチャ40におけるCTBのコーディング順序を変更し得る。たとえば、タイル境界50および52がない場合、ビデオコーダは、ピクチャ40におけるCTBの行全体におけるすべてのCTBを、ピクチャ40におけるCTBの次の下位行の任意のCTBをコーディングする前にコーディングし得る。
HEVCのセクション6.3.1で説明されているように、スライスとは異なり、タイルは常に長方形である。タイルは、常に整数個のCTUを含み、2つ以上のスライスに含まれるCTUからなり得る。同様に、スライスは、2つ以上のタイルに含まれるCTUを備えるか、またはかかるCTUからなることがある。さらに、HEVCのセクション6.3.1で説明されているように、各スライスおよびタイルに関して、以下の条件の一方または両方が満たされなければならない。(1)スライス中のすべてのCTUは同じタイルに属する、(2)タイル中のすべてのCTUは同じスライスに属する。加えて、各スライスセグメントおよびタイルに関して、以下の条件の一方または両方が満たされなければならない。(1)スライスセグメント中のすべてのCTUは同じタイルタイルに属する、(2)タイル中のすべてのCTUは同じスライスセグメントに属する。
ここで、ファイルフォーマットおよびファイルフォーマット規格について簡単に説明する。ファイルフォーマット規格は、ISOベースメディアファイルフォーマット(ISOBMFF、ISO/IEC 14496-12、以下「ISO/IEC 14996-12」)、ならびにMPEG-4ファイルフォーマット(ISO/IEC 14496-14)、3GPPファイルフォーマット(3GPP TS 26.244)およびAVCファイルフォーマットを含む、ISOBMFFから導出された他のファイルフォーマット規格を含む。したがって、ISO/IEC 14496-12はISOベースメディアファイルフォーマットを指定する。ISO/IEC 14496-12、第5版は、ISO/IEC 14496-12の最近のバージョンである。他の文書は、特定の用途のためにISOベースメディアファイルフォーマットを拡張する。たとえば、ISO/IEC FDIS 14496-15:2014は、ISOベースメディアファイルフォーマットでのNALユニット構造化ビデオの搬送について説明している。H.264/AVCおよびHEVCならびにそれらの拡張は、NALユニット構造化ビデオの例である。ISO/IEC FDIS 14496-15:2014は、H.264/AVC NALユニットの搬送について説明しているセクションを含む。加えて、ISO/IEC FDIS 14496-15:2014のセクション8は、HEVC NALユニットの搬送について説明している。
ISOBMFFは、AVCファイルフォーマットなど、多くのコーデックカプセル化フォーマット用の、ならびにMPEG-4ファイルフォーマット、3GPPファイルフォーマット(3GP)、およびDVBファイルフォーマットなど、多くのマルチメディアコンテナフォーマット用の基礎として使用される。オーディオおよびビデオなどの連続的なメディアに加えて、画像などの静的メディア、ならびにメタデータが、ISOBMFFに準拠するファイルに記憶され得る。ISOBMFFに従って構造化されたファイルは、ローカルメディアファイル再生、リモートファイルのプログレッシブダウンロード、動的適応ストリーミングオーバーHTTP(DASH)用のセグメントを含む、多くの目的のために使用され得る。ISOBMFF構造化ファイルはまた、ストリーミングされるべきコンテンツおよびコンテンツのためのパケット化命令用の、ならびに受信されたリアルタイムメディアストリームの記録用のコンテナまたは「ラッパー」として使用され得る。したがって、当初は記憶用に設計されたが、ISOBMFFは、ストリーミング用に、たとえば、プログレッシブダウンロード用またはDASH用に有益であることが証明されている。ストリーミングのために、ISOBMFFにおいて定義されるムービーフラグメントが使用され得る。
HEVCファイルフォーマットに準拠するファイルは、ボックスと呼ばれる一連のオブジェクトを備え得る。ボックスは、一意のタイプ識別子および長さによって定義されたオブジェクト指向のビルディングブロックであり得る。たとえば、ボックスは、4文字コード化ボックスタイプ、ボックスのバイトカウント、およびペイロードを含む、ISOBMFFにおける基本シンタックス構造であり得る。言い換えれば、ボックスは、コード化ボックスタイプ、ボックスのバイトカウント、およびペイロードを備えるシンタックス構造であり得る。ISOBMFF準拠ファイルは、ボックスのシーケンスを含み、ボックスは他のボックスを含んでよい。場合によっては、HEVCファイルフォーマットに準拠するファイル中のすべてのデータは、ボックス内に含まれることがあり、ボックスにないファイル中のデータがないことがある。したがって、ISOBMFFファイルはボックスのシーケンスを含んでよく、ボックスは他のボックスを含んでよい。たとえば、ボックスのペイロードは、1つまたは複数の追加のボックスを含み得る。本開示の他の場所で詳細に説明する図6は、本開示の1つまたは複数の技法による、ファイル内の例示的なボックスを示す。
ISOBMFFに準拠するファイルは、様々なタイプのボックスを含み得る。たとえば、ISOBMFFに準拠するファイルは、ファイルタイプボックス、メディアデータボックス、ムービーボックス、ムービーフラグメントボックスなどを含み得る。この例では、ファイルタイプボックスは、ファイルタイプおよび互換性情報を含む。メディアデータボックスは、サンプル(たとえば、コード化ピクチャ)を含み得る。ムービーボックス(「moov」)は、ファイルに存在する連続的メディアストリームのためのメタデータを含む。連続的メディアストリームの各々は、トラックとしてファイルにおいて表され得る。たとえば、ムービーボックスは、ムービーに関するメタデータ(たとえば、サンプル間の論理関係およびタイミング関係、ならびにサンプルのロケーションへのポインタ)を含み得る。ムービーボックスは、いくつかのタイプのサブボックスを含み得る。ムービーボックスにおけるサブボックスは、1つまたは複数のトラックボックスを含み得る。トラックボックスは、ムービーの個々のトラックについての情報を含み得る。トラックボックスは、シングルトラックの情報全体を指定するトラックヘッダボックスを含み得る。加えて、トラックボックスは、メディア情報ボックスを含むメディアボックスを含み得る。メディア情報ボックスは、トラックにおけるメディアサンプルのデータインデックス付けを含むサンプルテーブルボックスを含み得る。サンプルテーブルボックスにおける情報は、適時にサンプルを特定し、トラックのサンプルの各々に関して、タイプ、サイズ、コンテナ、およびサンプルのそのコンテナへのオフセットを特定するために使用され得る。したがって、トラック用のメタデータは、トラックボックス(「trak」)の中に封入され、トラックのメディアコンテンツは、メディアデータボックス(「mdat」)の中に封入されるか、または別個のファイルの中に直接封入されるかのいずれかである。トラック用のメディアコンテンツは、オーディオアクセスユニットまたはビデオアクセスユニットなどの、サンプルのシーケンスを備えるか、またはサンプルのシーケンスからなる。
ISOBMFFは、以下のタイプのトラック、すなわち、(i)エレメンタリメディアストリームを含むメディアトラック、(ii)メディア送信命令を含むか、または受信パケットストリームを表すかのいずれかであるヒントトラック、および(iii)時間同期されたメタデータを含む時限メタデータトラックを規定する。各トラック用のメタデータは、トラックにおいて使用されるコーディングフォーマットまたはカプセル化フォーマットおよびそのフォーマットを処理するために必要とされる初期化データを各々が提供する、サンプル記述エントリのリストを含む。各サンプルは、トラックのサンプル記述エントリのうちの1つに関連付けられる。
ISOBMFF仕様は、DASHとともに使用するために6つのタイプのストリームアクセスポイント(SAP: Stream Access Point)を指定する。最初の2つのSAPタイプ(タイプ1および2)は、H.264/AVCおよびHEVCにおける瞬時デコーダリフレッシュ(IDR: Instantaneous Decoder Refresh)ピクチャに対応する。第3のSAPタイプ(タイプ3)は、オープンピクチャグループ(オープンGOP)ランダムアクセスポイント、したがって、HEVCにおけるブロークンリンクアクセス(BLA)ピクチャまたはクリーンランダムアクセス(CRA)ピクチャに対応する。第4のSAPタイプ(タイプ4)は、漸進的デコーダリフレッシュ(GDR: gradual decoder refresh)ランダムアクセスポイントに対応する。
ISOBMFFは、様々な機構によりサンプル固有メタデータを規定することを可能にする。サンプルテーブルボックス(「stbl」)内の固有のボックスは、共通のニーズに応じるために規格化されている。たとえば、Syncサンプルボックス(「stss」)は、サンプルテーブルボックス内のボックスである。トラックのランダムアクセスサンプルを列挙するために、Syncサンプルボックスが使用される。本開示は、Syncサンプルボックスによって列挙されたサンプルをSyncサンプルと呼ぶことがある。別の例では、サンプルグルーピング機構は、4文字グルーピングタイプによるサンプルを、ファイルの中でサンプルグループ記述エントリとして指定された同じ属性を共有するサンプルのグループにマッピングすることを可能にする。いくつかのグルーピングタイプが、ISOBMFFにおいて指定されている。
さらに、ファイルのトラックにNALユニットを含めるために、コンピューティングデバイスはサンプルにNALユニットを含め得る。いくつかの事例では、コンピューティングデバイスは、メディアデータボックスにサンプルを記憶する。他の事例では、コンピューティングデバイスは、メディアデータボックスにおいてサンプルをカプセル化することなく、サンプルをファイルに直接記憶する。サンプルは、ファイルにおいて「チャンク」でクラスタ化される。さらに、コンピューティングデバイスは、トラックのためのトラックボックスにおいてサンプルテーブルボックスを生成し得る。サンプルテーブルボックスは、チャンクオフセットボックス(たとえば、識別子「stco」または「co64」を有するボックス)を含む。トラックのためのチャンクオフセットボックス(たとえば、トラックのためのトラックボックスにおけるサンプルテーブルボックスにおけるチャンクオフセットボックス)は、トラックのサンプルを含むチャンクの開始ロケーションおよび/またはオフセットを指定するデータを含む。したがって、NALユニットを含むチャンクを示すためにチャンクオフセットボックスを生成することによって、デバイスは、トラックにNALユニットを含めることができる。チャンクオフセットボックスは、ファイルの始まりに対するチャンクの開始ロケーションおよび/またはオフセットを指定し得る。トラックのサンプルテーブルボックスはまた、サンプル-チャンクボックス(たとえば、識別子「stsc」を有するボックス)を含み得る。デバイスは、どのサンプルがどのチャンクにあるかを示すテーブルを構築するために、サンプル-チャンクボックスを使用し得る。たとえば、テーブルは、サンプル20から30がチャンク2にあることを示し得る。加えて、トラックのサンプルテーブルボックスは、サンプルサイズボックス(たとえば、識別子「stsz」または「stz2」を有するボックス)を含む。ISOBMFF 14996-12の§8.5.3.1で説明されているように、デバイスは、トラックにおけるサンプルのサイズを示すテーブルを生成するために、サンプルサイズボックスにおける情報を使用し得る。さらに、各サンプルは、サンプルにおける各NALユニットのサイズを示すデータを含み得る。
サンプルテーブルボックスは、1つまたは複数のSampleToGroupボックスおよび1つまたは複数のサンプルグループ記述ボックス(すなわち、SampleGroupDescriptionボックス)を含み得る。SampleToGroupボックスは、サンプルグループの関連する記述とともに、サンプルが属するサンプルグループを決定するために使用され得る。言い換えれば、SampleToGroupボックスは、サンプルが属するグループを示し得る。SampleToGroupボックスは、「sbgp」のボックスタイプを有し得る。SampleToGroupボックスは、グルーピングタイプ要素(たとえば、grouping_type)を含み得る。グルーピングタイプ要素は、サンプルグルーピングのタイプ(すなわち、サンプルグループを形成するために使用される基準)を識別する整数であり得る。さらに、SampleToGroupボックスは、1つまたは複数のエントリを含み得る。加えて、SampleGroupDescriptionボックスは、1つまたは複数のサンプルグループ記述エントリを含み得る。SampleToGroupボックスにおける各エントリは、トラックにおける異なる、重複しない一連の連続的サンプルに関連付けられ得る。SampleToGroupボックスにおける各エントリは、サンプルカウント要素(たとえば、sample_count)およびグループ記述インデックス要素(たとえば、group_description_index)を示し得る。エントリのサンプルカウント要素は、エントリに関連するサンプルの数を示し得る。言い換えれば、エントリのサンプルカウント要素は、同じサンプルグループ記述子を有する連続的サンプルの数を与える整数であり得る。グループ記述インデックス要素は、SampleGroupDescriptionボックスにおけるグループ記述エントリを識別し得る。識別されるグループ記述エントリは、エントリに関連するサンプルの記述を含む。SampleToGroupボックスの複数のエントリのグループ記述インデックス要素は、同じSampleGroupDescriptionボックスを識別し得る。
ISO/IEC 14496-12、第5版で定義されているように、SampleToGroupボックスのシンタックスを以下に再現する。
aligned(8) class SampleToGroupBox
extends FullBox('sbgp', version, 0)
{
unsigned int(32) grouping_type;
if (version == 1) {
unsigned int(32) grouping_type_parameter;
}
unsigned int(32) entry_count;
for (i=1; i <= entry_count; i++)
{
unsigned int(32)
sample_count;
unsigned int(32) group_description_index;
}
}
以下では、ISO/IEC 14496-12、第5版で定義されているSampleToGroupボックスにおけるシンタックス要素のセマンティクスを要約している。
・「version」は、0または1のいずれかである、このボックスのバージョンを指定する整数である。
・「grouping_type」は、サンプルグルーピングのタイプ(すなわち、サンプルグループを形成するために使用される基準)を識別するとともに、グルーピングタイプに対して同じ値を有するそのサンプルグループ記述テーブルにそれをリンクさせる整数である。grouping_type(および使用される場合、grouping_type_parameter)に対して同じ値を有するこのボックスの多くて1つの出現が、トラックに対して存在しなければならない。
・「grouping_type_parameter」は、グルーピングのサブタイプの指示である。
・「entry_count」は、以下のテーブルにおけるエントリの数を与える整数である。
・「sample_count」は、同じサンプルグループ記述子を有する連続的サンプルの数を与える整数である。このボックスにおけるサンプルカウントの和が総サンプルカウントを下回る場合、またはいくつかのサンプルに適用されるサンプル-グループボックスがない(たとえば、トラックフラグメントにない)場合、読者は、明示的なグループ関連付けを有しないサンプルを、SampleDescriptionGroupボックスにおいて定義されたデフォルトグループ(ある場合)に関連付けるか、またはデフォルトグループがない場合はいかなるグループにも関連付けない必要がある。このボックスにおける合計が他の場所で記述されたsample_countを上回ることはエラーであり、その場合に読者の行為は定義されない。
・「group_description_index」は、このグループにおけるサンプルを記述するサンプルグループエントリのインデックスを与える整数である。インデックスは、1からSampleGroupDescriptionボックスにおけるサンプルグループエントリの数までの範囲であるか、またはこのサンプルがこのタイプのグループなしのメンバーであることを示す値0を取る。
ISO/IEC 14496-12、第5版で定義されているように、SampleGroupDescriptionボックスのシンタックスを以下に再現する。
aligned(8) class SampleGroupDescriptionBox (unsigned int(32) handler_type)
extends FullBox('sgpd', version, 0){
unsigned int(32) grouping_type;
if (version==1) { unsigned int(32) default_length; }
if (version>=2) {
unsigned int(32) default_sample_description_index;
}
unsigned int(32) entry_count;
int i;
for (i = 1 ; i <= entry_count ; i++){
if (version==1) {
if (default_length==0) {
unsigned int(32) description_length;
}
}
SampleGroupEntry (grouping_type);
//SampleGroupEntryから導出されるクラスのインスタンス
//メディアタイプにとって適切で、かつ許容される
}
}
ISO/IEC 14496-12、第5版は、SampleGroupDescriptionボックスのシンタックス要素のセマンティクスを次のように定義している。
・「version」は、このボックスのバージョンを指定する整数である。
・「grouping_type」は、この同じグループ記述に関連するSampleToGroupボックスを識別する整数である。grouping_type_parameterが所与のgrouping_typeに関して定義されない場合、このgrouping_typeを有するこのボックスの1つの出現のみが存在しなければならない。
・「default_sample_description_index」は、SampleToGroupボックスを通じてサンプルとグループとのマッピングが提供されないトラックにおけるすべてのサンプルに適用されるサンプルグループ記述エントリのインデックスを指定する。このフィールドのデフォルト値は、(サンプルがこのタイプのグループなしにマッピングされることを示す)ゼロである。
・「entry_count」は、以下のテーブルにおけるエントリの数を与える整数である。
・「default_length」は、あらゆるグループエントリの長さ(長さが一定である場合)、またはそれが可変である場合にゼロ(0)を示す。
・「description_length」は、個々のグループエントリの長さがエントリごとに変わる場合に、その長さを示し、したがって、default_lengthは0である。
上記のように、SampleGroupDescriptionボックスは、1つまたは複数のグループ記述エントリを含み得る。様々なタイプのグループ記述エントリは、様々なタイプの情報を含み得る。たとえば、ビジュアルサンプルに関する情報を含むグループ記述エントリはクラスVisualSampleGroupEntryに属し、オーディオサンプルに関する情報を含むグループ記述エントリはクラスAudioSampleGroupEntryに属し、以下同様である。ISO/IEC 14496-12では、VisualSampleGroupEntryクラスは抽象型である。したがって、グループ記述エントリの様々なより特殊なクラスがVisualSampleGroupEntryクラスを拡張する。本開示の他の場所で詳細に説明するように、RectTileRegGroupEntryおよびUnconstrTileRegGroupEntryは、VisualSampleGroupEntryクラスを拡張する2つのクラスである。RecTileRegGroupEntryクラスはグループタイプ識別子「trif」を有し、UnconstrTileRegGroupEntryクラスはグループタイプ識別子「tsif」を有する。RecTileRegGroupEntryクラスをインスタンス化するグループ記述エントリは、長方形タイル領域を含むサンプルを記述するシンタックス要素を含む。UnconstrTileRegGroupEntryクラスをインスタンス化するグループ記述エントリは、制約なしタイル領域を含むサンプルを記述するシンタックス要素を含む。
別の例では、NALUMapEntryクラスは、VisualSampleGroupEntryクラスを拡張する。本開示は、NALUMapEntryクラスのインスタンスをNALUマップエントリと呼ぶことがある。NALUマップエントリは、NALユニットに識別子(groupID)を割り当てるために使用され得る。ISO/IEC 144916-15:2014で定義されているように、NALUMapEntryクラスのシンタックスを以下に再現する。
class NALUMapEntry() extends VisualSampleGroupEntry ('nalm') {
bit(6) reserved = 0;
unsigned int(1) large_size;
unsigned int(1) rle;
if (large_size) {
unsigned int(16) entry_count;
} else {
unsigned int(8) entry_count;
}
for (i=1; i<= entry_count; i++) {
if (rle) {
if (large_size) {
unsigned int(16) NALU_start_number;
} else {
unsigned int(8) NALU_start_number;
}
}
unsigned int(16) groupID;
}
}
ISO/IEC 144916-15:2014は、NALUMapEntryクラスのシンタックス要素のセマンティクスを次のように定義している。
・「large_size」は、トラックサンプルにおけるNALユニットエントリの数が8ビットで表されるか、それとも16ビットで表されるかを示す。
・「rle」は、groupIDをNALユニットに割り当てるためにランレングス符号化が使用される(1)か、それとも使用されない(0)かを示す。
・「entry_count」は、マップにおけるエントリの数を指定する。rleが1に等しいとき、entry_countは、連続的NALユニットが同じグループに関連付けられるランの数に対応することに留意されたい。rleが0に等しいとき、entry_countはNALユニットの総数を表す。
・「NALU_start_number」は、groupIDに関連する現在のランにおける第1のNALユニットのサンプルにおける1ベースのNALユニットインデックスである。
・「groupID」は、グループの一意の識別子を指定する。グループについてのさらなる情報が、このgroupIDおよびタイプ「nalm」のSampleToGroupボックスのgrouping_type_parameterに等しいgrouping_typeとともにサンプルグループ記述エントリによって提供される。
SampleGroupDescriptionボックスは、1つのクラスのサンプルグループ記述エントリのみを含み得る。たとえば、SampleGroupDescriptionボックスにおける各サンプルグループ記述エントリは、NALUMapEntryクラスのインスタンスであり得る。
コーデック(たとえば、HEVC)レベルでタイルについての情報を決定するのとは対照的に、ファイルレベルでタイルについての情報を取得することが有用であるシナリオが存在する。たとえば、図2では、タイル46および48がニュース放送の下部のクロールに対応し、タイル42および44がニュースの総合司会者の画像を含むと仮定する。この例では、クロールは、他のニュース、スポーツのスコア、閉校、株価などについてのテキストを含み得る。この例では、クロールをストリーミングせずに、ニュースの総合司会者の画像を含むピクチャ40の部分のみをストリーミングするのが望ましいことがある。このようにしてビデオのストリーミングされるコンテンツを減らすことは、スマートフォンまたはスマートウォッチなど、小さいスクリーンを有するデバイスにビデオをストリーミングするときに望ましいことがある。同時に、タイル46および48を含む同じビデオのフルバージョンが、テレビジョンなどのより大きいスクリーン上に提示するためにデバイスにストリーミングされ得る。
ピクチャの異なるタイルの抽出を容易にするために、個々のタイルまたはタイルのグループが、ファイルの異なるトラックに記憶され得る。デバイスはその場合、トラックレベルで抽出を実行することができる。たとえば、図2では、第1のトラックが、タイル42および44のための符号化されたビデオデータを含むことができ、第2のトラックが、タイル46および48のための符号化されたビデオデータを含むことができる。この例では、タイル46および48をストリーミングせずにタイル42および44をストリーミングするために、デバイスは、ファイルの第1のトラックを出力して、第2のトラックを出力しないことがある。だが、所望のタイルを含むトラックを抽出するために、デバイスは、ファイルのトラックに含まれるタイルについての情報を必要とし得る。
したがって、ISO/IEC FDIS 14496-15:2014は、ファイルレベルでタイルを記述および操作するためのツールを提供する。たとえば、ISO/IEC FDIS 14496-15:2014のセクション10.1は、タイル領域およびタイルセットの概念を定義している。タイル領域は、1つまたは複数のタイルを含む長方形領域である。タイル領域は、長方形タイル領域とも呼ばれ得る。たとえば、図2の例では、タイル42および44はタイル領域を形成することができ、タイル42および46はタイル領域を形成することができ、タイル44および48はタイル領域を形成することができ、タイル46および48はタイル領域を形成することができ、タイル42、44、46、および48はタイル領域を形成することができる。単一のスライスでコーディングされるいくつかのタイルは、タイルセットと呼ばれるタイルのセットとしてグルーピングされ得る。タイルセットは、制約なしタイル領域と呼ばれることもある。たとえば、図2の例では、タイルセットは、タイル42、タイル46、およびタイル48からなることができる。だが、図2の例では、タイル42、46、および48は単一の長方形領域ではないので、タイル42、タイル46、およびタイル48はタイル領域を形成することができない。タイルセットは、いくつかのHEVCタイルにわたる注目領域を表すために使用され得る。たとえば、タイルセットは、タイル42、44、および46からなることができる。この例では、タイル42、44、および46は、ライブビデオストリームに対応することができ、タイル48は多くのピクチャにわたって静的である画像を含む。
現在のファイルフォーマット設計は、1つまたは複数の潜在的問題をもたらしている。下記のように、そのような問題は以下のうちの1つまたは複数に関係し得る。(i)タイル領域のためのサンプルエントリ、NALUマップエントリおよびSampleToGroupボックスの間の関係、(ii)タイルトラックのためのベーストラックの存在、ならびに(iii)長方形タイル領域および制約なしタイル領域の定義。
上記で説明した既存のファイルフォーマット特性は、1つまたは複数の潜在的問題をもたらしている。タイル領域のためのサンプルエントリ、NALUマップエントリおよびSampleToGroupボックスの間の関係に関する様々な潜在的問題について、以下で説明する。本明細書で使用する「NALU」は、ネットワークアブストラクションレイヤ(NAL)ユニットを表す。
上述のように、1つまたは複数のタイル領域は、長方形タイル領域および/または制約なしタイル領域としてグルーピングされ得る。長方形タイル領域および制約なしタイル領域は、それぞれRectTileRegGroupEntry(「trif」)およびUnconstrTileRegGroupEntry(「tsif」)によって記述され、これらはいずれもVisualSampleGroupEntryの拡張である。SampleGroupDescriptionボックスは、RectTileRegGroupEntryクラスのインスタンスまたはUnconstrTileRegGroupEntryのインスタンスを含み得る。
以下のテキストは、長方形タイル領域グループエントリのシンタックスおよびセマンティクスを記述している。
class TileRegionGroupEntry() extends VisualSampleGroupEntry ('trif')
{
unsigned int(16) groupID;
unsigned int(1) tile_region_flag;
if (!tile_region_flag)
bit(7) reserved = 0;
else{
unsigned int(2) independent_idc;
unsigned int(1) full_picture;
unsigned int(1) filtering_disabled;
unsigned int(1) has_dependency_list;
bit(2) reserved = 0;
if (!full_picture) {
unsigned int(16) horizontal_offset;
unsigned int(16) vertical_offset;
}
unsigned int(16) region_width;
unsigned int(16) region_height;
if (has_dependency_list) {
unsigned int(16) dependency_tile_count;
for (i=1; i<= dependency_tile_count; i++)
unsigned int(16) dependencyTileGroupID;
}
}
セマンティクス
groupIDは、このサンプルグループエントリによって記述されるタイル領域グループの一意の識別子である。タイル領域グループエントリにおけるgroupIDの値は、0よりも大きくなければならない。値0は、特別な使用のために予約されている。
タイプ「nalm」のSampleToGroupボックスおよび「trif」に等しいgrouping_type_parameterがある場合、タイプ「trif」のSampleGroupDescriptionBoxが存在しなければならず、以下が適用される。
- タイル領域グループエントリにおけるgroupIDの値は、NALUMapEntryのエントリのうちの1つにおけるgroupIDに等しくなければならない。
- NALユニットがNALUMapEntryによってgroupID 0にマッピングされていることは、NALユニットが、このNALユニットと同じコード化ピクチャにおける任意のタイル領域を復号するために必要とされることを暗示している。
注1: 異なる依存性を記述するために、それぞれhorizontal_offset、vertical_offset、region_widthおよびregion_heightの同じ値を有するが、異なるgroupID値を有する複数のタイル領域グループエントリがあり得る。
1に等しいtile_region_flagは、ピクチャ内のNALユニットによってカバーされ、このタイル領域グループエントリに関連する領域がタイル領域であり、タイル領域のさらなる情報が、このタイル領域グループエントリにおける後続のフィールドによって提供されることを規定する。値0は、ピクチャ内のNALユニットによってカバーされ、このタイル領域グループエントリに関連する領域がタイル領域ではなく、領域のさらなる情報が、このタイル領域グループエントリにおいて提供されないことを規定する。
マルチレイヤビットストリームが1つまたは複数のトラックにおいて搬送されるとき、ビットストリームの任意の2つのレイヤであるレイヤAおよびレイヤBに関して、以下の制約が適用される。レイヤAのNALユニットが、対応するtile_region_flagが1に等しいgroupID値gIdAに関連付けられ、レイヤBのNALユニットが、対応するtile_region_flagが1に等しいgroupID値gIdBに関連付けられるとき、gIdAはgIdBに等しくないものとする。
independent_idcは、このタイル領域グループエントリに関連する各タイル領域と同じピクチャ中または同じレイヤの参照ピクチャ中の他のタイル領域との間のコーディング依存性を規定する。レイヤ間依存性がある場合、レイヤ間依存性が(has_dependency_listが1に等しいときに)dependencyTileGroupIDのリストによって示される。
このフィールドは、以下の値を取る。
- independent_idcが0に等しい場合、このタイル領域と同じピクチャ中または同じレイヤの参照ピクチャ中の他のタイル領域との間のコーディング依存性は、(has_dependency_listが1に等しいときに)dependencyTileGroupIDのリストによって記述されるか、または(has_dependency_listが0に等しいときに)知られていないかのいずれかである。
- independent_idcが1に等しい場合、このタイル領域と同じレイヤの任意の参照ピクチャ中の異なるgroupIDを有するタイル領域との間に時間的依存性がないが、このタイル領域と同じレイヤの参照ピクチャ中の同じgroupIDを有するタイル領域との間にコーディング依存性があり得る。
- independent_idcが2に等しい場合、このタイル領域と同じレイヤの参照ピクチャ中の任意のタイル領域との間にコーディング依存性がない。
- 値3が予約される。
full_pictureは、設定されたとき、このタイル領域グループエントリに関連する各タイル領域が完全なピクチャであり、その場合にregion_widthおよびregion_heightが、完全なピクチャの、それぞれ、幅および高さに設定されなければならず、independent_idcが1または2に設定されなければならないことを示す。
filtering_disabledは、設定されたとき、このタイル領域グループエントリに関連する各タイル領域に関して、ループ内フィルタ処理演算が、このタイル領域に隣接するピクセルにアクセスする必要がないことを、すなわち、隣接するタイルを復号することなくタイル領域のビットパーフェクト再構築(bit-exact reconstruction)が可能であることを示す。
has_dependency_listは、1に設定されたとき、dependency_tile_countが存在し、dependency_tile_countが0よりも大きいときにはdependencyTileGroupIDのリストも存在することを示す。0に設定されたとき、dependency_tile_countは存在せず、dependencyTileGroupIDも存在しない。
horizontal_offsetおよびvertical_offsetは、ルーマサンプルにおける、ベース領域の左上ピクセルに対する、このタイル領域グループエントリに関連する各タイル領域におけるタイルによってカバーされる長方形領域の左上ピクセルの水平オフセットおよび垂直オフセットをそれぞれ与える。ISO/IEC 14496-15のこの部分において定義されるHEVCおよびL-HEVCタイルトラックの場合、TileRegionGroupEntryにおいて使用されるベース領域は、このタイル領域グループエントリに関連するタイル領域におけるタイルが属するピクチャである。
region_widthおよびregion_heightは、ルーマサンプルにおける、このタイル領域グループエントリに関連する各タイル領域におけるタイルによってカバーされる長方形領域の幅および高さをそれぞれ与える。
注2: 空間スケーラビリティを使用し、ベースレイヤとエンハンスメントレイヤの両方でタイリングするL-HEVCストリームの場合、各レイヤがそれ自体のトラックにおいて搬送されるとき、ベースレイヤのTileRegionGroupEntryサンプル記述は、ベースレイヤのルーマサンプルで表される座標を与え、エンハンスメントレイヤのTileRegionGroupEntryサンプル記述は、エンハンスメントレイヤのルーマサンプルで表される座標を与える。
dependency_tile_countは、このタイル領域グループエントリに関連する各タイル領域が依存するタイル領域の数を示す。
dependencyTileGroupIDは、このタイル領域が依存する(TileRegionGroupEntryによって定義される)タイル領域のgroupIDを与える。このタイル領域グループエントリに関連する特定のタイル領域の場合、それが依存するタイル領域は、同じレイヤまたは参照レイヤからのものであり得る。
多くの場合、SampleGroupDescriptionボックス内に含まれている各サンプルグルーピングエントリは、サンプルをサンプルグルーピングにマッピングするSampleToGroupボックスへの対応を有する。だが、タイル領域グルーピング(すなわち、長方形タイル領域および制約なしタイル領域のグルーピング)の場合、サンプルとタイル領域グルーピングとの間のマッピングは、VisualSampleGroupEntryの拡張でもあるNALUマップエントリ(「nalm」)によって記述され得る。したがって、SampleToGroupボックスにおいてタイル領域を示す複数の方法がある。
上述のように、トラックのサンプルテーブルボックスは、第1のSampleGroupDescriptionボックス、第2のSampleGroupDescriptionボックス、およびSampleToGroupボックスを含み得る。第1のSampleGroupDescriptionボックスは、「nalm」に等しい「grouping_type」シンタックス要素を有し、NALUマップエントリを備える。第1のSampleGroupDescriptionボックスにおける各NALUマップエントリは、「groupID」値へのNALユニットのマッピングを規定する。たとえば、第1のSampleGroupDescriptionボックスにおける各NALUマップエントリは、NALユニット0から10が1の「groupID」値に関連付けられること、NALユニット11から20が2の「groupID」値に関連付けられること、などを規定し得る。SampleToGroupボックスは、「nalm」の値を有する「grouping_type」シンタックス要素および「trif」または「tsif」などの第2のタイプ識別子に等しい値を有する「grouping_type_parameter」シンタックス要素を含む。第2のSampleGroupDescriptionボックスは、SampleToGroupボックスの「grouping_type_parameter」シンタックス要素によって指定される第2のタイプ識別子に等しい「grouping_type」シンタックス要素を有する。第2のSampleGroupDescriptionボックスは、タイル領域サンプルエントリなどのグループ記述エントリ(たとえば、クラスRectTileRegGroupEntryまたはUnconstrTileRegGroupEntryに属するグループ記述エントリ)のセットを含む。第2のSampleGroupDescriptionボックスにおける各グループ記述エントリは、「groupID」シンタックス要素を含む。「groupID」シンタックス要素の特定の値を有する第2のSampleGroupDescriptionボックスにおけるグループ記述エントリは、第1のSampleGroupDescriptionボックスにおける「groupID」シンタックス要素の特定の値にマッピングされるNALユニットを記述する。
したがって、どのNALユニットが所望のタイル領域に関連付けられるかを判断するために、デバイスは、サンプルテーブルボックスにおける第1のSampleGroupDescriptionボックスを識別し得る。第1のSampleGroupDescriptionボックスにおけるグループ記述エントリは、長方形タイル領域または制約なしタイル領域などのタイル領域を記述する。言い換えれば、第1のSampleGroupDescriptionボックスにおけるグループ記述エントリは、タイル領域サンプルエントリである。第1のSampleGroupDescriptionボックスにおけるタイル領域サンプルエントリは、「trif」または「tsif」などの特定のタイプ識別子を有するグループ記述エントリクラスのインスタンスである。デバイスは次いで、第1のSampleGroupDescriptionボックスにおけるタイル領域サンプルエントリのうちのどれが所望のタイル領域に対応するかを判断し得る。デバイスは次いで、タイプ識別子「nalm」を指定する「grouping_type」シンタックス要素および特定のタイプ識別子を指定する「grouping_type_parameter」シンタックス要素を有するSampleToGroupボックスを識別し得る。次に、デバイスは、第2のSampleGroupDescriptionボックスを識別することができ、第2のSampleGroupDescriptionボックスは、「nalm」の4文字タイプ識別子を有する。デバイスは次いで、第2のSampleGroupDescriptionボックスにおけるNALUMapEntryに基づいて、どのNALユニットが、第1のSampleGroupDescriptionボックスにおける識別されるグループ記述エントリによって指定される「groupID」シンタックス要素の値に関連付けられるかを判断し得る。デバイスは、(ある場合に)どのタイル領域が特定のNALユニットに関連付けられるかを判断するために、このプロセスの逆を実行し得る。
さらに、本開示は、以下のときにタイル領域サンプルエントリを、NALUマップエントリに「関連付けられる」ものとして説明する。(1)NALUマップエントリが、対応するSampleGroupDescriptionボックスにあり、(2)NALUマップエントリにおけるグループ識別子シンタックス要素(たとえば、「groupID」)が、タイル領域サンプルエントリにおけるグループ識別子シンタックス要素によって指定された値に等しい値を指定している。対応するSampleGroupDescriptionボックスは、NALUマップエントリのタイプ識別子(たとえば、「trif」または「tsif」)を指定するグルーピングタイプパラメータシンタックス要素(たとえば、grouping_type_parameter)を有するSampleToGroupボックスのグルーピングタイプシンタックス要素(たとえば、grouping_type)のタイプ識別子に等しいタイプ識別子(たとえば、「nalm」)を指定するグルーピングタイプシンタックス要素を有する。
本開示は、SampleToGroupボックスのグルーピングタイプシンタックス要素が、タイル領域サンプルエントリを含むSampleGroupDescriptionボックスのグルーピングタイプシンタックス要素と合致するタイプ識別子(たとえば、「trif」または「tsif」)を指定しているときに、タイル領域サンプルエントリを、SampleToGroupボックスに「関連付けられる」ものとして説明し得る。
上述のように、ISO/IEC 14996-15は、ファイルの異なるトラックが、異なるタイルに対応する符号化されたデータを含むことを可能にする。異なるタイルに対応する符号化されたデータを異なるトラックに含める目標は、デバイスがタイルの他のトラックを抽出しない一方で特定のトラックを容易に抽出することを可能にすることである。本開示は、1つまたは複数のタイルのためのコード化スライスNALユニットを含むトラックを、タイルトラックと呼ぶことがある。このシナリオでは、ビデオデコーダが理想的に、抽出されたタイルトラックにおける符号化されたビデオデータのみを復号できる。だが、ビットストリームは、VPS、SPS、およびPPSなど、ピクチャの各タイルに共通であるパラメータセットを含み得る。したがって、ビデオデコーダが任意のタイルトラックまたはタイルトラックの組合せの符号化されたビデオデータを復号するために、これらのパラメータセットが存在する必要があり得る。パラメータセットが利用可能であることを保証するために、ISO/IEC 14995-15はベースタイルトラックを規定している。本開示は、ベースタイルトラックを、タイルトラックのためのベーストラックと呼ぶこともある。ファイルのメタデータにおけるトラック参照(「tbas」トラック参照によって示される)が、ベースタイルトラックを識別し得る。ベースタイルトラックは、パラメータセットを備えるサンプルを含む。ファイルのタイルトラックは、パラメータセットを含まない。タイルトラックを抽出するとき、デバイスはベースタイルトラックも抽出する。したがって、抽出されたタイルトラックを受信するデバイスは、ベースタイルトラックも受信する。
トラックボックスは、トラック参照ボックスを含み得る。ISO/IEC 14496-12、第5版の§8.3.3で説明されているように、トラック参照ボックスは、プレゼンテーションにおける含有トラック(containing track)(すなわち、トラック参照ボックスを含むトラック)から別のトラックへの参照を実現する。ISO/IEC 14496-12、第5版のコンテキストでは、プレゼンテーションは、場合によってはオーディオと組み合わせられた、1つまたは複数の動きシーケンスである。トラック参照ボックスは、1つまたは複数のトラック参照タイプボックスを含む。各トラック参照タイプボックスは、4文字タイプ識別子に関連付けられ、トラック識別子を含む。トラック識別子は、プレゼンテーションにおける別のトラックを識別する。たとえば、第1のトラックのトラック参照ボックスは、タイプ識別子「tbas」に関連するトラック参照タイプボックスを含み得る。この例では、トラック参照タイプボックスにおけるグループ識別子は、プレゼンテーションにおける第2のトラックを識別し得る。この例では、第1のトラックは、「tbas」トラック参照を有すると言われ、第2のトラックは、「tbas」トラック参照によって識別されると言われる。「tbas」トラック参照を第1のトラックに含めることによって、ファイルは、第1のトラックが第2のトラックに依存することを示す。この例では、第2のトラックがタイルベーストラックである。
ISO/IEC FDIS 14496-15:2014で説明されている既存のファイルフォーマット設計からすると、タイル領域(すなわち、長方形タイル領域および制約なしタイル領域)のためのサンプルグループエントリ、NALUマップエントリ、およびSampleToGroupボックスの間の関係は明確ではない。あいまいさの一例は、タイル領域サンプルエントリ(「trif」および/または「tsif」)が、SampleToGroupボックスを使用することによってサンプルにマッピングされ得るかどうかである。あいまいさの別の例は、NALUマップエントリとSampleToGroupボックスの両方が存在し、タイル領域サンプルエントリに関連付けられ得るかどうかである。(以下でブレット(A)から(D)として標示された)以下のシナリオは、上記のあいまいさを明確にするのを助けることができる。
(A)各ピクチャに多くて1つの長方形タイル領域がある。各ピクチャ/サンプルに多くて1つの長方形タイル領域がある場合、「trif」とサンプルとの間のマッピングは、NALUマップエントリとSampleToGroupボックスの両方を使用することによって記述され得る。トラックにおいて搬送されるビットストリームがNALユニットベースのビットストリーム(たとえば、AVC、HEVCなど)であるとき、NALUマップエントリを使用することが有益であるか、またはより望ましいことがある。
(B)各ピクチャに複数の長方形タイル領域および1つの制約なしタイル領域がある。各ピクチャに複数の長方形タイル領域があり、それらが1つの制約なしタイル領域にグルーピングされるとき、NALUマップエントリとSampleToGroupボックスの両方が、タイル領域をサンプルにマッピングするために使用され得る。上記のシナリオ(上記のシナリオ(A))と同様に、トラックにおいて搬送されるビットストリームがNALユニットベースのビットストリーム(たとえば、AVC、HEVCなど)であるとき、NALUマップエントリを使用することが有益であるか、またはより望ましいことがある。他の場合、以下の技法が使用され得、制約なしタイル領域サンプルエントリに関連する多くて1つのSampleToGroupボックスが存在し、長方形タイル領域サンプルエントリに関連するSampleToGroupボックスが存在しない。
(C)各ピクチャに複数の長方形タイル領域があり、それらは制約なしタイル領域にグルーピングされない。各ピクチャに複数の長方形タイル領域があり、それらが1つの制約なしタイル領域にグルーピングされないとき、タイル領域をサンプルにマッピングするためにSampleToGroupボックスを使用することが可能ではない。そのような状況では、サンプルへの長方形タイル領域のうちの1つのマッピングを実現するためにSampleToGroupボックスを使用することが可能であるが、そのようなユースケースは有用ではないことがある。そうではなく、サンプルへのタイル領域のマッピングは代わりに、NALUマップエントリを使用することによって行われ得る(さらには行われるべきである)。
(D)各ピクチャに複数の長方形タイル領域および制約なしタイル領域がある。このケースは、サンプルへのタイル領域のマッピングがNALUマップエントリを使用することによって行われ得、さらには行われるべきであるという点で、またはそうなる形で、上記のケース(たとえば、ブレット(C)で説明したシナリオ)と同様である。
上記のシナリオ(A)から(D)に基づいて、タイル領域サンプルエントリ(「trif」および/または「tsif」)とサンプルとの間のマッピングが、SampleToGroupボックスにおいてNALUマップエントリまたはタイル領域サンプルエントリを使用して識別されるべきときが明確にされるべきである。たとえば、ビデオコーディングデバイスは、マッピングのために、SampleToGroupボックスにおいてNALUマップエントリ対タイル領域サンプルエントリに関する選択方式を実装することによって、動作を改善し得る。
既存のファイルフォーマット技術はまた、長方形タイル領域および/または制約なしタイル領域の定義に関する1つまたは複数の潜在的問題を生じさせ得る。たとえば、長方形タイル領域は、他のHEVCタイルを含まず、復号順序で連続してよいが連続する必要はない1つまたは複数のスライスにおいて符号化された長方形領域を形成する任意の整数個のHEVCタイルとして定義されている。制約なしタイル領域は、1つまたは複数の完全なHEVCタイルからなり、復号順序で連続してよい(ただし、連続する必要はない)任意の数の完全なスライスとして定義されている。
長方形タイル領域と制約なしタイル領域の両方が、スライスに関連付けられるように定義されている。HEVCおよびいくつかの他のビデオコーディング規格のコンテキストでは、スライスは、1つの独立スライスセグメントに含まれ、同じアクセスユニット(AU)内の次の独立スライスセグメント(ある場合)に先行するすべての後続の従属スライスセグメント(ある場合)に含まれる、整数個のCTUであるように定義されている。言い換えれば、スライスは、1つまたは複数のスライスセグメント(すなわち、ゼロ個以上の従属スライスセグメントと1つの独立スライスセグメント)を含み得る。
上記で提示した長方形タイル領域および制約なしタイル領域の定義により、HEVCのコンテキストでは、ピクチャがたった1つのスライスでコーディングされるとき、スライスが複数のスライスセグメントからなるとしても、多くて1つの長方形タイル領域および/または制約なしタイル領域のみがあり得る。そのようなタイル領域は、基本的に(たとえば、実質的に)ピクチャ全体をカバーし得る。したがって、スライスが複数のスライスセグメントを含むか、または複数のスライスセグメントからなるとき、そのような状況の場合に既存のファイルフォーマット設計は限定される。言い換えれば、スライスが、複数のタイルの符号化されたブロックを含む複数のスライスセグメントを含むか、または複数のスライスセグメントからなるとき、既存のファイルフォーマット設計は、タイルのうちの1つを含み他を含まない長方形タイル領域または制約なしタイル領域を指定する方法をまったく提供しない。
たとえば、タイル領域サンプルエントリがNALUマップエントリに関連付けられ、タイル領域サンプルエントリがタイル領域(たとえば、長方形タイル領域または制約なしタイル領域)を記述すると仮定する。この例では、NALUマップエントリは、個々のスライスセグメントを含むNALユニットなど、タイル領域に関連付けられるNALユニットを示す。タイル領域が完全なスライスに関して定義され、スライスがタイル領域の外のブロックのためのスライスセグメントを含み得るので、ISO/IEC FDIS 14496-15:2014では、NALUマップエントリがタイル領域の外のブロックのためのスライスセグメントのためのNALユニットを示すことを強制されるべきか、またはNALUマップエントリがタイル領域の定義との緊張の中でタイル領域の中のブロックのためのスライスセグメントのためのNALユニットのみを示すべきであるか、またはファイルが、タイル領域のブロックを含む完全なスライスがタイル領域の外のブロックも含む場合にタイル領域を記述するタイル領域サンプルエントリを含むことを許容されるかが不明確である。この明確性欠如の結果として、異なるファイルおよびデバイスが、潜在的に適合しない方法で実装されることがあり、またはデバイスが、ファイルがいずれかの解釈を使用する可能性を考慮することを強制されることがあり、これは、デバイスの複雑さ(および関連コスト)を高めること、ならびに/またはデバイスのファイル処理能力を低下させることがある。
既存のファイルフォーマット設計はまた、タイルトラックのためのベーストラックの存在に関する1つまたは複数の潜在的問題をもたらしている。タイルトラックに関して、ISO/IEC 14996-15は以下を規定している。
「タイルトラックの中のサンプルも、サンプル記述ボックスも、VPS、SPS、またはPPS NALユニットを含んではならず、これらのNALユニットは、「tbas」トラック参照によって識別されるように、関連するレイヤを含むトラックのサンプルまたはサンプル記述ボックスの中になければならない。」
上記の説明の結果として、ファイルに1つまたは複数のタイルトラックがあるとき、「ベースタイルトラック」とも呼ばれる「tbas」トラック参照が存在しなければならず、ファイルの各タイルトラックは「tbas」トラック参照を有しなければならない。そのような暗黙的制約は、完全なピクチャ(すなわち、ベースタイルトラックにおけるサンプルから復号されるピクチャ)が復号およびレンダリングされる必要があり得るユースケースによって誘発され、かつ/またはそのようなユースケースに対処するために使用され得る。
いくつかのユースケースでは、ベースタイルトラックからの完全なピクチャは決して復号または再生されない。たとえば、仮想現実(VR)ビデオアプリケーションまたは360度ビデオアプリケーションの場合、ビデオ領域全体のサブセットのみがビデオピクチャによって表され、サブセットは、「ビューポート」とも呼ばれる現在の視野(FOV)に対応する。言い換えれば、ユーザによって現在見られているエリアは、これらのシナリオにおいて表示される。米国仮出願第62/339,009号は、2つの分解能など複数の分解能にVRビデオを符号化するためにSHVCなどのスケーラブルビデオコーデックを使用する符号化戦略について説明している。この戦略によれば、最低分解能のビデオ(またはベースレイヤ)のビットストリーム全体は、常に送信および復号される一方、いつでも、動き制約付きタイルを使用してコーディングされる、より高い分解能のビデオの一部のみが復号される。より高い分解能のビデオビットストリームは、複数のタイルトラックに記憶されるために構造化され得る。
そのようなユースケースの場合、ベースタイルトラックが常に存在することを求めることは、必要とされないことがあり、ベーストラックは決して復号されないので、ベーストラックの存在は実際には余分であり得る。VRビデオアプリケーションの場合、そのファイルフォーマット構造が多くのトラックを使用することが想定され、そのため、真に有用であるトラックのみを有することが望ましい。だが、タイルバックトラックの存在に起因して、DASHを使用してVRビデオがストリーミングされるときにもう1つのDASH表現が存在する。結果として、この追加のDASH表現のセグメントが要求される必要があり得、この結果は、よくあることであるが、パラメータセットがタイルトラックのサンプルエントリに実際に記憶され得るときに不要な負担を表し得る。
上述の潜在的問題のうちの1つまたは複数に対処し、それを軽減し、または場合によっては解決するために、コンピューティングデバイスは、本開示の様々な技法を実装することができ、その態様について、以下のパラグラフで説明する。そのようなコンピューティングデバイスは、個別に(たとえば、独立して)技法のうちの1つもしくは複数を実装すること、ならびに/または様々な組合せおよび/もしくはシーケンスで技法のうちの2つ以上を実装することができる。
本開示の第1の技法によれば、タイル領域サンプルエントリ(たとえば、長方形タイル領域、制約なしタイル領域、または他の形式のタイル領域サンプルエントリ)が、NALUマップエントリを使用するとともにSampleToGroupボックスを直接使用することによってサンプルにマッピングされ得る場合、タイル領域サンプルエントリがNALUマップエントリまたはSampleToGroupボックスに関連付けられ得るが、両方に関連付けられることはないような制約が実装され得る。ファイルにこの制約を実装することで、タイル領域サンプルエントリ(たとえば、「trif」または「tsif」の4文字タイプ識別子を有するクラスのグループ記述エントリ)に関連するNALUマップエントリとタイル領域サンプルエントリに関連するSampleToGroupボックスの両方をファイルが含む可能性にコンピューティングデバイスが対処できる必要性がなくなる。これは、コンピューティングデバイスの複雑さを低減し得る。
本開示の第1の技法の一例によれば、コンピューティングデバイス(たとえば、ソースデバイス12、ファイル生成デバイス34、または別のデバイス)は、タイル領域サンプルエントリ(たとえば、「trif」または「tsif」の4文字タイプ識別子を有するクラスのグループ記述エントリ)に関連するNALUマップエントリとタイル領域サンプルエントリに関連するSampleToGroupボックスの両方をデバイスがファイルに含めるのを防ぐファイルフォーマットに準拠するファイルを生成し得る。
本開示の第1の技法の別の例によれば、コンピューティングデバイス(たとえば、宛先デバイス14、MANE、または別のデバイス)は、ファイルを受信し得る。加えて、この例では、コンピューティングデバイスは、タイル領域サンプルエントリ(たとえば、「trif」または「tsif」の4文字タイプ識別子を有するクラスのグループ記述エントリ)に関連するNALUマップエントリをファイルが含むかどうか、およびタイル領域サンプルエントリに関連するSampleToGroupボックスをファイルが含むかどうかを判断し得る。タイル領域サンプルエントリに関連するNALUマップエントリおよびタイル領域サンプルエントリに関連するSampleToGroupボックスをファイルが含むとの判断に応答して、コンピューティングデバイスは、ファイルがファイルフォーマットに準拠しないと判断し得る。一方、コンピューティングデバイスは、ファイルがタイル領域サンプルエントリに関連するNALUマップエントリまたはタイル領域サンプルエントリに関連するSampleToGroupボックスのいずれかを含むが、両方を含まないとの判断に応答して、ファイルがファイルフォーマットに準拠すると判断し得る。
いくつかの例では、ファイル生成デバイス34は、タイル領域サンプルエントリ(たとえば、「trif」または「tsif」の4文字タイプ識別子を有するクラスのグループ記述エントリ)が、NALUマップエントリとSampleToGroupボックスの両方を使用してサンプルにマッピングされ得るかどうかを判断し得る。判断が肯定的である(すなわち、タイル領域サンプルエントリが両方を使用してサンプルにマッピングされ得る)場合、ファイル生成デバイス34は、タイル領域サンプルエントリがNALUマップエントリまたはSampleToGroupボックスのうちの1つを使用してのみサンプルにマッピングされ得るが、NALUマップエントリおよびSampleToGroupボックスの任意の組合せを使用してサンプルにマッピングできないように、マッピングを制約し得る。したがって、この例では、コンピューティングデバイスは、タイル領域サンプルエントリがNALUマップエントリまたはSampleToGroupボックスのいずれかに関連付けられると判断し得る。さらに、コンピューティングデバイスは、タイル領域サンプルエントリがNALUマップエントリおよびSampleToGroupボックスの組合せに関連付けられないと判断し得る。
本開示の第2の技法によれば、タイル領域サンプルエントリがSampleToGroupボックスに関連付けられるとき、サンプルに存在するたった1つのタイル領域(1つのタイル領域またはより大きい領域を形成するために一緒にグルーピングされるタイル領域のセットのいずれか)がなければならない。言い換えれば、ファイルのサンプルテーブルボックスが、SampleToGroupボックスに関連するタイル領域サンプルエントリを含むとき、ファイルのファイルフォーマットに存在する制限が、ファイルのサンプルが複数のタイル領域のためのコード化スライスNALユニットを含むのを防ぐ。この制限は、ファイルのサンプルが複数のタイル領域のためのコード化スライスNALユニットを含む可能性をコンピューティングデバイスが考慮する必要がないので、コンピューティングデバイスがファイルを読み取る複雑さを低減し得る。そのような複雑さを低減することで、デバイスの動作を加速させることができ、コンピューティングデバイスのコストを低減することができ、またはさもなければコンピューティングデバイスを改善することができる。
本開示の第2の技法の一例によれば、コンピューティングデバイス(たとえば、ソースデバイス12、ファイル生成デバイス34、または別のデバイス)は、SampleToGroupボックスに関連するタイル領域サンプルエントリおよび2つ以上のタイル領域が存在するサンプルを含むファイルをコンピューティングデバイスが生成するのを防ぐファイルフォーマットに準拠するファイルを生成し得る。
本開示の第2の技法の別の例によれば、コンピューティングデバイス(たとえば、宛先デバイス14、MANE、または別のデバイス)は、ファイルを受信し得る。加えて、この例では、コンピューティングデバイスは、ファイルのSampleToGroupボックスに関連するタイル領域サンプルエントリをファイルが含むかどうか、および2つ以上のタイル領域がファイルの単一のサンプルに存在するかどうかを判断し得る。ファイルのSampleToGroupボックスに関連するタイル領域サンプルエントリをファイルが含み、2つ以上のタイル領域がファイルの単一のサンプルに存在するとの判断に応答して、コンピューティングデバイスは、ファイルがファイルフォーマットに準拠しないと判断し得る。逆に、コンピューティングデバイスは、ファイルのSampleToGroupボックスに関連するタイル領域サンプルエントリをファイルが含み、ファイルの各それぞれのサンプルに関して、それぞれのファイルにたった1つのタイル領域が存在するとの判断に応答して、ファイルがファイルフォーマットに準拠すると判断し得る。
いくつかの例では、コンピューティングデバイスは、タイル領域サンプルエントリがSampleToGroupボックスに関連付けられると判断し得る。この例では、コンピューティングデバイスは、タイル領域サンプルエントリにマッピングされるサンプルがちょうど1つのタイル領域または2つ以上のタイル領域を含む連結領域を含むと判断し得る。たとえば、コンピューティングデバイス(たとえば、宛先デバイス14、ビデオエンコーダ20および/もしくはビデオデコーダ30を含むコンピューティングデバイス、または別のタイプのデバイス)は、タイル領域サンプルエントリ(たとえば、「trif」または「tsif」)が、SampleToGroupボックスを使用して対応するサンプルにマッピングされると判断し得る。判断が肯定的である(すなわち、場合によりtrifまたはtsifが、SampleToGroupボックスを使用してサンプルにマッピングされる)場合、コンピューティングデバイスは、たった1つのタイル領域が所与のサンプルに存在するように、タイル-サンプル相互作用を制約し得る。
本開示の第3の技法によれば、タイル領域およびサンプルのマッピングがNALUマップエントリを使用するか、それともサンプル-グループボックスを直接使用するかを示すためにシグナリングが実施され得る。たとえば、ファイル生成デバイス34または別のデバイスは、タイル領域およびサンプルのマッピングがNALUマップエントリを使用するか、それともSampleToGroupボックスを直接使用するかを示すためにシグナリングを実施し得る。たとえば、ファイル生成デバイス34は、タイル領域-サンプルマッピングがNALUマップエントリを使用するか、それともサンプル-グループボックスを使用するかを示す情報を符号化し、シグナリングし得る。そして、ファイル生成デバイス34は、タイル領域-サンプルマッピングがNALUマップエントリを使用するか、それともサンプル-グループボックスを使用するかを判断するために、シグナリングされた情報を使用し得る。2つの例示的な実装形態について、以下で説明する。
第3の技法の第1の例示的な実装形態では、タイル領域サンプルエントリを含むサンプルグループ記述ボックス(「sgpd」)のバージョンフィールドが、タイル領域サンプルエントリがNALUマップエントリに関連付けられ得るか、それともSampleToGroupボックスに関連付けられ得るかを示すために使用され得る。言い換えれば、コンピューティングデバイスは、SampleGroupDescriptionボックスにおけるタイル領域サンプルエントリがNALUマップエントリに関連付けられるか、それともSampleToGroupボックスに関連付けられるかを判断するために、SampleGroupDescriptionボックスのバージョンシンタックス要素を使用し得る。たとえば、SampleGroupDescriptionボックス(「sgpd」)のバージョンシンタックス要素が0に等しいとき、SampleGroupDescriptionボックスにおけるタイル領域サンプルエントリがSampleToGroupボックスに関連付けられ、NALUマップエントリに関連付けられず、SampleGroupDescriptionボックス(「sgpd」)のバージョンシンタックス要素が1に等しいとき、SampleGroupDescriptionボックスにおけるタイル領域サンプルエントリがNALUマップエントリに関連付けられ、SampleToGroupボックスに関連付けられない。したがって、この例では、SampleGroupDescriptionボックスのバージョンシンタックス要素が0である場合、コンピューティングデバイスは、SampleGroupDescriptionボックスにおけるタイル領域サンプルエントリがSampleToGroupボックスに関連付けられると判断し得る。バージョンシンタックス要素が1である場合、コンピューティングデバイスは、SampleGroupDescriptionボックスにおけるタイル領域サンプルエントリがNALUマップエントリに関連付けられると判断し得る。
たとえば、第1のデバイス(たとえば、ソースデバイス12、ファイル生成デバイス34)は、SampleGroupDescriptionボックス(「sgpd」)におけるタイル領域サンプルエントリ(たとえば、場合により「trif」または「tsif」)がSampleToGroupボックスを使用してサンプルにマッピングされることを示すために、SampleGroupDescriptionボックスのバージョンシンタックス要素において0値をシグナリングし得る。そして、第2のデバイス(たとえば、宛先デバイス14)は、SampleGroupDescriptionボックス(「sgpd」)におけるタイル領域サンプルエントリ(場合により「trif」または「tsif」)がSampleToGroupボックスを使用してサンプルにマッピングされると判断するために、SampleGroupDescriptionボックスのバージョンシンタックス要素におけるゼロ値を使用し得る。逆に、第1のデバイスは、SampleGroupDescriptionボックス(「sgpd」)におけるタイル領域サンプルエントリ(場合により「trif」または「tsif」)がNALUマップエントリを使用してサンプルにマッピングされることを示すために、SampleGroupDescriptionボックスのバージョンシンタックス要素において1値を符号化し、シグナリングし得る。そして、この例では、第2のデバイスは、SampleGroupDescriptionボックスにおけるタイル領域サンプルエントリ(たとえば、場合により「trif」または「tsif」)がNALUマップエントリを使用してサンプルにマッピングされると判断するために、SampleGroupDescriptionボックスのバージョンシンタックス要素における1値を使用し得る。
第3の技法の第2の例示的な実装形態では、タイル領域サンプルエントリがSampleToGroupボックスに関連付けられるか、それともNALUマップエントリに関連付けられるかを示すために、各タイル領域サンプルエントリにフラグが追加され得る。したがって、この例では、コンピューティングデバイスは、タイル領域サンプルエントリがNALUマップエントリに関連付けられるか、それともSampleToGroupボックスに関連付けられるかを判断するために1ビットフラグを使用し得る。たとえば、第1のデバイス(たとえば、ソースデバイス12、ファイル生成デバイス34、または別のデバイス)は、タイル領域サンプルエントリ(たとえば、「trif」または「tsif」)がNALUマップエントリを使用してサンプルにマッピングされることを示すために、1ビットフラグの一方の可能なバイナリ値を使用し、タイル領域サンプルエントリがSampleToGroupボックスを使用してサンプルにマッピングされることを示すために、1ビットフラグの他方の可能なバイナリ値を使用し得る。そして、第2のデバイス(たとえば、宛先デバイス14、MANE、または別のデバイス)は、シグナリングされた1ビットフラグを再構築し得る。フラグが第1の可能なバイナリ値に設定された場合、第2のデバイスは、タイル領域サンプルエントリ(たとえば、「trif」または「tsif」)がNALUマップエントリを使用してサンプルにマッピングされると判断し得る。フラグが第2の可能なバイナリ値に設定された場合、第2のデバイスは、タイル領域サンプルエントリがSampleToGroupボックスを使用してサンプルにマッピングされると判断し得る
本開示の第4の技法によれば、トラックにおけるビットストリームがNALユニットベース(たとえば、AVC、HEVC、AVCまたはHEVCの派生など)であるとき、タイル領域サンプルエントリは、SampleToGroupボックスではなくNALUマップエントリに関連付けられるべきである。たとえば、第1のデバイス(たとえば、ソースデバイス12、ファイル生成デバイス34、または別のデバイス)は、AVCもしくはHEVC規格またはそれらの派生である規格のうちの1つに準拠するビットストリームなど、ビットストリームがNALユニットベースであるかどうかを判断し得る。ビットストリームがNALユニットベースであるとの判断に基づいて、第1のデバイスは、ビットストリームを記憶するファイルを、ファイルにおける1つまたは複数のタイル領域サンプルエントリがNALUマップエントリに関連付けられ、ファイルにおけるいずれのタイル領域サンプルエントリもSampleToGroupボックスに関連付けられないように、生成し得る。一方、ビットストリームがNALユニットベースではないとの判断に基づいて、第1のデバイスはファイルを、タイル領域サンプルエントリがSampleToGroupボックスに関連付けられるように生成し得る。いくつかの例では、第2のデバイス(たとえば、宛先デバイス14)は、ファイルが、NALユニットベースであるビットストリームを記憶し、SampleToGroupボックスに関連するタイル領域サンプルエントリを含むとき、ファイルがファイルフォーマットに準拠しないと判断し得る。
したがって、第4の例では、コンピューティングデバイスは、タイル領域がNALユニットベースのビットストリームに含まれると判断し得る。加えて、この例では、コンピューティングデバイスは、NALユニットベースのビットストリームのタイル領域サンプルエントリがNALUマップエントリに関連付けられると判断し得る。
本開示の第5の技法によれば、HEVCおよびその派生コーデック(たとえば、SHVC、MV-HEVC、HEVC-SCCなど)の場合、長方形タイル領域および制約なしタイル領域の定義が、スライスレベルの代わりにスライスセグメントレベルでそれらが定義されるように変更される。本開示の第5の技法の2つの例について、下のサブブレット(a)および(b)に基づいて説明する。
a)長方形タイル領域は、他のHEVCタイルを含まず、復号順序で連続してよい(ただし、連続する必要はない)1つまたは複数のスライスセグメントにおいて符号化された長方形領域を形成する任意の整数個のHEVCタイルとして定義される。
b)制約なしタイル領域は、1つまたは複数の完全なHEVCタイルを含み、復号順序で連続してよい(ただし、連続する必要はない)任意の数のスライスセグメントとして定義される。
このようにして長方形タイル領域および制約なしタイル領域の定義を変更した結果として、ファイル生成デバイス34は、タイル領域に関連するNALUマップエントリが、タイル領域の符号化されたブロックを含むコード化スライスNALユニットを指定し、タイル領域の外の符号化されたブロックを含まないコード化スライスNALユニットを指定しないファイルを生成し得る。たとえば、NALユニット1から10が、タイル領域の中の符号化されたブロックを含むコード化スライスNALユニットであると仮定し、NALユニット11から20を、タイル領域の外の符号化されたブロックを含むコード化スライスNALユニットとする。さらに、この例では、NALユニット1が独立スライスセグメントを備え、NALユニット15が次の独立スライスセグメントを含むと仮定する。したがって、この例では、NALユニット1から14が第1の完全なスライスに対応し、NALユニット15以降が第2の完全なスライスに対応する。加えて、この例では、タイル領域のためのタイル領域エントリのグループ識別子(たとえば、groupID)が55に等しいと仮定する。この例では、タイル領域のためのタイル領域サンプルエントリに関連するNALUマップエントリが、2つのエントリを含み得る。本開示の第5の技法によれば、タイル領域が完全なスライスの代わりにスライスセグメントに関して定義されるので、NALUマップエントリにおける第1のエントリは、1のNALU_start_numberおよび55のgroupIDを指定し、NALUマップエントリにおける第2のエントリは、11のNALU_start_numberおよび55以外の何らかの数に等しいgroupIDを指定する。対照的に、タイル領域が完全なスライスに関して定義されていた場合、NALUマップエントリにおける第2のエントリは、タイル領域が完全な第1のスライスを含むように、11の代わりに15を指定することを強制されていた可能性がある。
したがって、いくつかの例では、長方形タイル領域は、ビデオデータのスライスセグメントに長方形領域を集合的に形成する整数個のタイルを備え得る。いくつかの例では、スライスセグメントは、長方形領域を集合的に形成するタイル以外のタイルをまったく含まない。いくつかの例では、長方形タイル領域を集合的に形成するタイルは、連続順序で配列される。さらに、いくつかの例では、長方形タイル領域を集合的に形成するタイルは、非連続順序で配列される。
いくつかの例では、タイル領域は制約なしタイル領域を備え得る。制約なしタイル領域は、ビデオデータのスライスセグメントに整数個のタイルを備え得る。さらに、いくつかの例では、制約なしタイル領域のタイルは、連続順序で配列される。いくつかの例では、制約なしタイル領域のタイルは、非連続順序で配列される。いくつかの例では、スライスセグメントは、制約なし領域のタイル以外のタイルをまったく含まない。
本開示の第5の技法によれば、コンピューティングデバイス(たとえば、ソースデバイス12、ファイル生成デバイス34、MANE、または別のコンピューティングデバイス)は、NALユニットのストリームを備えるビットストリームを受信する。NALユニットのストリームは、複数のコード化スライスNALユニットを備える。複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのRBSPをカプセル化する。スライスの複数のスライスセグメントの各それぞれのスライスセグメントは、ピクチャの整数個のCTUを備える。スライスの複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含む。さらに、この例では、ピクチャは複数のタイルに区分され、複数のタイルは第1のタイルおよび第2のタイルを含む。スライスの複数のスライスセグメントは、第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、スライスの複数のスライスセグメントは、第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含む。
さらに、この例では、コンピューティングデバイスは、ビットストリームを記憶するファイルを生成し得る。ファイルを生成することの一部として、コンピューティングデバイスは、ファイルにおいてタイル領域を定義し得る。タイル領域は、スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する複数のタイルのうちの整数個のタイルを備える長方形タイル領域である。いくつかの例では、長方形タイル領域は、長方形領域を形成する整数個のタイル以外のタイルをまったく含まない。長方形タイル領域は第1のタイルを含み、長方形タイル領域は第2のタイルを含まない。したがって、この例では、第2のタイルのCTUが、第1のタイルのブロックと同じ完全なスライスにあるので、タイル領域は、第2のタイルを含むことを強制されない。
同様に、一例では、コンピューティングデバイスは、ビットストリームを記憶するファイルを受信し得る。この例では、ビットストリームは、NALユニットのストリームを備える。NALユニットのストリームは、複数のコード化スライスNALユニットを備える。複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのRBSPをカプセル化する。スライスの複数のスライスセグメントの各それぞれのスライスセグメントは、ピクチャの整数個のCTUを備える。スライスの複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含む。この例では、ピクチャは、第1のタイルおよび第2のタイルを含む複数のタイルに区分される。スライスの複数のスライスセグメントは、第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、スライスの複数のスライスセグメントは、第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含む。ファイルにおいてタイル領域が定義される。タイル領域は、スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する複数のタイルのうちの整数個のタイルを備える長方形タイル領域である。いくつかの例では、長方形タイル領域は、長方形領域を形成する整数個のタイル以外のタイルをまったく含まない。長方形タイル領域は第1のタイルを含むが、長方形タイル領域は第2のタイルを含まない。この例では、コンピューティングデバイスは、ローカルメディアファイル再生、リモートデバイスへのファイル中のデータのプログレッシブダウンロード、または他の用途のためにファイルを使用し得る。
本開示の第6の技法によれば、タイルトラックは「tbas」トラック参照を有すること、または有しないことがある。言い換えれば、タイルトラックのためのトラックボックスは、タイプ識別子「tbas」に関連するトラック参照タイプボックスを含むトラック参照ボックスを含むことがあるが、含むことを必要とされない。第6の技法によれば、タイルトラックが「tbas」トラック参照を有するとき、タイルトラックにおけるサンプルもサンプル記述ボックスも、VPS、SPSまたはPPS NALユニットを含んではならない。そうではなく、これらのNALユニット(すなわち、VPS、SPSおよびPPS NALユニット)は、「tbas」トラック参照のサンプル中またはサンプル記述ボックス中になければならない。言い換えれば、タイルトラック参照を復号するために必要なVPS NALユニット、SPS NALユニット、PPS NALユニットは、タイルトラックのトラック参照ボックスにおける「tbas」トラック参照タイプボックスにおけるトラック識別子によって示されるトラックのサンプルまたはサンプル記述ボックスに記憶される。
一方、第6の技法によれば、タイルトラックが「tbas」トラック参照を有しないとき、必要な非VCL NALユニット(たとえば、VPS、SPS、PPSおよびSEI NALユニットなどのパラメータセットNALユニット)が、タイルトラックのサンプル中またはタイルトラックのサンプル記述ボックス中のいずれかになければならず、可能ならいつでもサンプル記述ボックス中にのみ優先的に配置される。たとえば、ファイル生成デバイス34は、パラメータセット更新がないとき、パラメータセット自体のIDを除いてパラメータセットNALユニットコンテンツがまったく変更されない場合などに、タイルトラックのサンプル記述ボックスに非VCL NALユニットを含めることができる。このようにして、ファイルフォーマットは、タイルベーストラックを使用するかどうかの柔軟性を有する。上記で説明したように、いくつかの状況では、タイルベーストラックの使用はコンピュータのパフォーマンスに悪影響をもたらし得る。
したがって、第6の技法の一例では、コンピューティングデバイスは、ビデオデータのタイルトラックがベーストラック(tbas)参照に関連付けられるかどうかを判断し得る。第6の技法のいくつかの事例では、タイルトラックが「tbas」参照に関連付けられるとの判断に応答して、コンピューティングデバイスは、タイルトラックのためのパラメータセットNALユニットがベースタイルトラックのサンプルまたはサンプル記述ボックスに含まれると判断し得る。第6の例のいくつかの事例では、タイルトラックが「tbas」参照に関連付けられるとの判断に応答して、コンピューティングデバイスは、タイルトラックのためのパラメータセットNALユニットがタイルトラックのいずれのサンプルまたはサンプル記述ボックスにも含まれないと判断し得る。第6の技法のいくつかの事例では、タイルトラックがいかなる「tbas」参照にも関連付けられないとの判断に応答して、コンピューティングデバイスは、タイルトラックのための1つまたは複数のパラメータセットNALユニットがタイルトラックのサンプル記述ボックス中または1つもしくは複数のサンプル中のいずれかに含まれると判断し得る。第6の例のいくつかの事例では、タイルトラックがいかなる「tbas」参照にも関連付けられないとの判断に応答して、コンピューティングデバイスは、タイルトラックのためのすべてのパラメータセットNALユニットがちょうど、タイルトラックのサンプル記述中または1つもしくは複数のサンプル中のうちの1つに含まれると判断し得る。第6の技法のいくつかの事例では、パラメータセットNALユニットは、VPS、SPS、またはPPS NALユニットのうちの1つまたは複数を備える。
本開示の第7の技法によれば、タイルトラックが「tbas」トラック参照を有しないとき、同じビットストリームの一部であるすべてのタイルトラックも「tbas」トラック参照を有してはならない。たとえば、ファイル生成デバイス34はファイルを、ファイルが複数のタイルトラックを含むように生成し得る。この例では、タイルトラックのいずれも「tbas」トラック参照を有しない。その上、いくつかの例では、コンピューティングデバイス(たとえば、宛先デバイス14、MANE、または別のデバイス)は、「tbas」トラック参照を有しない第1のタイルトラックをファイルが含むと判断し得る。第1のタイルトラックが「tbas」トラック参照を含まないことに基づいて、コンピューティングデバイスは、(同じくファイルタイルトラックを含む)ファイルの他のタイルトラックが「tbas」トラック参照を含まないと判断し得る。
本開示の第8の技法によれば、タイルトラックが「tbas」トラック参照を有するとき、同じビットストリームの一部であるすべてのタイルトラックも「tbas」トラック参照を有しなければならない。たとえば、ファイル生成デバイス34はファイルを、ファイルが複数のタイルトラックを含むように生成し得る。この例では、ファイルのファイルフォーマットによって規定される制約が、ファイルの任意のタイルトラックが「tbas」参照を有する場合に、ファイルの各タイルトラックが「tbas」参照を有することを求める。いくつかの例では、コンピューティングデバイス(たとえば、宛先デバイス14、MANE、または別のデバイス)は、「tbas」トラック参照を有する第1のタイルトラックをファイルが含むと判断し得る。この例では、ファイルは、ビットストリームに関するメタデータを記憶する。第1のタイルトラックが「tbas」トラック参照を含むことに基づいて、コンピューティングデバイスは、ファイルのあらゆる他のタイルトラックがそれぞれの「tbas」トラック参照を含むと判断し得る。
本開示の第9の技法によれば、2つ以上のタイルトラックが復号されるとき、重複する非VCL NALユニットに関して、たった1つのコピーが保持されなければならず、残りは除去される。たとえば、コンピューティングデバイス(たとえば、宛先デバイス14、MANE、ビデオデコーダ30、または別のデバイス)は、受信されたビットストリームのデータを再構築し、再構築されたデータが重複する非VCL NALユニットを含むと判断し得る。検出された重複に基づいて、コンピューティングデバイスは、重複または冗長性を示す非VCL NALユニットの1つのコピーを保持し得る。加えて、コンピューティングデバイスは、重複が検出された非VCL NALユニットのすべての他の(たとえば、重複または冗長)コピーを処分し得る。
図3は、本開示で説明する技法とともに使用され得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、単一のビュー、マルチビュー、スケーラブル、3D、および他のタイプのビデオデータを出力するように構成され得る。ビデオエンコーダ20は、ビデオを後処理エンティティ127に出力するように構成され得る。後処理エンティティ127は、MANEまたはスプライシング/エディティングデバイスなど、ビデオエンコーダ20からの符号化されたビデオデータを処理し得るビデオエンティティの一例を表すことを意図している。いくつかの事例では、後処理エンティティは、ネットワークエンティティの一例であってよい。いくつかのビデオ符号化システムでは、後処理エンティティ127およびビデオエンコーダ20は、別個のデバイスの部分であってよいが、他の事例では、後処理エンティティ127に関して説明される機能は、ビデオエンコーダ20を備える同じデバイスによって実行されてもよい。後処理エンティティ127は、ビデオデバイスであってよい。いくつかの例では、後処理エンティティ127は、図1のファイル生成デバイス34と同じであり得る。
ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実行してもよい。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオにおける空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオにおける時間冗長性を低減または除去するために時間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのうちのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのうちのいずれかを指し得る。
図3の例では、ビデオエンコーダ20は、区分ユニット135と、予測処理ユニット141と、フィルタユニット163と、参照ピクチャメモリ164と、加算器150と、変換処理ユニット152と、量子化ユニット154と、エントロピー符号化ユニット156とを含む。予測処理ユニット141は、動き推定ユニット142と、動き補償ユニット144と、イントラ予測処理ユニット146とを含む。ビデオブロック再構築のために、ビデオエンコーダ20はまた、逆量子化ユニット158と、逆変換処理ユニット160と、加算器162とを含む。フィルタユニット163は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表すことを意図している。フィルタユニット163がループ内フィルタであるものとして図3に示されるが、他の構成では、フィルタユニット163はループ後フィルタとして実装されてよい。
ビデオエンコーダ20のビデオデータメモリは、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリに記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。参照ピクチャメモリ164は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリおよび参照ピクチャメモリ164は、ダイナミックランダムアクセスメモリ(DRAM)(同期DRAM(SDRAM)を含む)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成されてもよい。ビデオデータメモリおよび参照ピクチャメモリ164は、同じメモリデバイスまたは別個のメモリデバイスによって設けられてよい。様々な例では、ビデオデータメモリは、ビデオエンコーダ20の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってよい。
図3に示すように、ビデオエンコーダ20は、ビデオデータを受信し、区分ユニット135は、データをビデオブロックに区分する。この区分は、スライス、タイル、または他のより大きい単位への区分、ならびに、たとえば、LCUおよびCUの4分木構造によるビデオブロック区分を含む場合もある。ビデオエンコーダ20は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(また場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット141は、エラー結果(たとえば、コーディングレート、およびひずみのレベル)に基づいて、現在のビデオブロックのための、複数のイントラコーディングモードのうちの1つまたは複数のインターコーディングモードのうちの1つなどの、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット141は、残差ブロックデータを生成するために加算器150に、また参照ピクチャとして使用するための符号化されたブロックを再構築するために加算器162に、得られたイントラまたはインターコード化ブロックを提供し得る。
予測処理ユニット141内のイントラ予測処理ユニット146は、空間圧縮を実現するために、コーディングされるべき現在のブロックと同じフレームまたはスライスの中の1つまたは複数の隣接ブロックに対する現在のビデオブロックのイントラ予測コーディングを実行することができる。予測処理ユニット141内の動き推定ユニット142および動き補償ユニット144は、時間圧縮を実現するために、1つまたは複数の参照ピクチャの中の1つまたは複数の予測ブロックに対する現在のビデオブロックのインター予測コーディングを実行する。
動き推定ユニット142は、ビデオシーケンスのための所定のパターンに従って、ビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、Pスライス、Bスライス、またはGPBスライスとしてシーケンス中のビデオスライスを指定してもよい。動き推定ユニット142によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUと厳密に一致することが判明したブロックである。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ164に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。したがって、動き推定ユニット142は、フルピクセル位置および分数ピクセル位置に対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
動き推定ユニット142は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUの動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されることがあり、それらの各々が、参照ピクチャメモリ164に記憶された1つまたは複数の参照ピクチャを特定する。動き推定ユニット142は、計算された動きベクトルをエントロピー符号化ユニット156および動き補償ユニット144に送る。
動き補償ユニット144によって実行される動き補償は、場合によってはサブピクセル精度への補間を実行する動き推定によって決定される動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴い得る。現在のビデオブロックのPUの動きベクトルを受信すると、動き補償ユニット144は、参照ピクチャリストのうちの1つの中で動きベクトルが指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成し得る。ピクセル差分値は、ブロックに対する残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含む場合がある。加算器150は、この減算演算を実行する1つまたは複数の構成要素を表す。動き補償ユニット144は、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用するための、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成することもできる。
イントラ予測処理ユニット146は、上記で説明したように、動き推定ユニット142および動き補償ユニット144によって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。詳細には、イントラ予測処理ユニット146は、現在のブロックを符号化するために使用するイントラ予測モードを決定することができる。いくつかの例では、イントラ予測処理ユニット146は、たとえば、別個の符号化パスの間、様々なイントラ予測モードを使用して現在のブロックを符号化してよく、イントラ予測処理ユニット146は、テストされたモードから、使用するための適切なイントラ予測モードを選択することができる。たとえば、イントラ予測処理ユニット146は、様々なテストされたイントラ予測モードに対してレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中から最良のレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、一般に、符号化されたブロックと、符号化されたブロックを生成するために符号化された、元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化されたブロックを生成するために使用されたビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット146は、どのイントラ予測モードがブロックにとって最良のレートひずみ値を表すかを判断するために、様々な符号化されたブロックに関するひずみおよびレートから比を計算することができる。
いずれの場合も、ブロック用のイントラ予測モードを選択した後、イントラ予測処理ユニット146は、ブロック用の選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット156に提供し得る。エントロピー符号化ユニット156は、本開示の技法に従って、選択されたイントラ予測モードを示す情報を符号化することができる。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)を含み得る送信されるビットストリーム構成データの中に、コンテキストの各々のために使用する、様々なブロックのための符号化コンテキストの定義と、最も可能性の高いイントラ予測モードの指示と、イントラ予測モードインデックステーブルと、修正されたイントラ予測モードインデックステーブルとを含める場合がある。
予測処理ユニット141が、インター予測またはイントラ予測のいずれかを介して現在のビデオブロック用の予測ブロックを生成した後、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって、残差ビデオブロックを形成し得る。残差ブロックの中の残差ビデオデータは、1つまたは複数のTU内に含められることがあり、変換処理ユニット152に適用されることがある。変換処理ユニット152は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット152は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換することができる。
変換処理ユニット152は、得られた変換係数を量子化ユニット154に送ることができる。量子化ユニット154は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット154は次いで、量子化変換係数を含む行列の走査を実行し得る。代替として、エントロピー符号化ユニット156が走査を実行してもよい。
量子化に続いて、エントロピー符号化ユニット156は、量子化変換係数を表すシンタックス要素をエントロピー符号化し得る。たとえば、エントロピー符号化ユニット156は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法もしくは技法を実行し得る。エントロピー符号化ユニット156によるエントロピー符号化に続いて、符号化されたビットストリームは、ビデオデコーダ30に送信されるか、または後の送信もしくはビデオデコーダ30による取出しのためにアーカイブされる場合がある。エントロピー符号化ユニット156は、コーディングされている現在のビデオスライスの動きベクトルおよび他のシンタックス要素をエントロピー符号化することもできる。
逆量子化ユニット158および逆変換処理ユニット160は、参照ピクチャの参照ブロックとして後で使用するための、ピクセル領域における残差ブロックを再構築するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット144は、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算し得る。動き補償ユニット144はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構築された残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器162は、参照ピクチャメモリ164に記憶するための参照ブロックを生成するために、動き補償ユニット144によって生成された動き補償された予測ブロックに再構築された残差ブロックを加算する。参照ブロックは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するための参照ブロックとして、動き推定ユニット142および動き補償ユニット144によって使用され得る。
ビデオエンコーダ20は、本開示で説明するファイルフォーマット技法を使用して記憶され得るビデオデータを生成するように構成されたビデオコーダの一例を表す。
図4は、本開示で説明する技法とともに使用され得る例示的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30は、単一のビュー、マルチビュー、スケーラブル、3D、および他のタイプのビデオデータを復号するように構成され得る。図4の例では、ビデオデコーダ30は、エントロピー復号ユニット280と、予測処理ユニット281と、逆量子化ユニット286と、逆変換処理ユニット288と、加算器290と、フィルタユニット291と、参照ピクチャメモリ292とを含む。予測処理ユニット281は、動き補償ユニット282およびイントラ予測処理ユニット284を含む。ビデオデコーダ30は、いくつかの例では、図3からのビデオエンコーダ20に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
コード化ピクチャバッファ(CPB)279は、ビットストリームの符号化されたビデオデータ(たとえば、NALユニット)を受信し、記憶することができる。CPB279に記憶されたビデオデータは、たとえば、リンク16から、たとえば、カメラなどのローカルビデオソースから、ビデオデータの有線もしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。CPB279は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するビデオデータメモリを形成し得る。CPB279は、たとえば、イントラコーディングモードまたはインターコーディングモードで、ビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。CPB279および参照ピクチャメモリ292は、ダイナミックランダムアクセスメモリ(DRAM)(同期DRAM(SDRAM)を含む)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成されてもよい。CPB279および参照ピクチャメモリ292は、同じメモリデバイスまたは別個のメモリデバイスによって設けられてよい。様々な例では、CPB279は、ビデオデコーダ30の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってよい。
復号プロセスの間に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化されたビデオビットストリームを受信する。ビデオデコーダ30は、ネットワークエンティティ229から符号化されたビデオビットストリームを受信し得る。たとえば、ネットワークエンティティ229は、上記で説明した技法のうちの1つまたは複数を実装するように構成されたサーバ、MANE、ビデオエディタ/スライサ、または他のそのようなデバイスであってよい。ネットワークエンティティ229は、ビデオエンコーダ20のようなビデオエンコーダを含んでもよく、含まなくてもよい。本開示で説明する技法のうちのいくつかは、ネットワークエンティティ229が符号化されたビデオビットストリームをビデオデコーダ30に送信する前に、ネットワークエンティティ229によって実装され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ229およびビデオデコーダ30は、別個のデバイスの部分であってよいが、他の事例では、ネットワークエンティティ229に関して説明される機能は、ビデオデコーダ30を備える同じデバイスによって実行されてもよい。ネットワークエンティティ229は、ビデオデバイスであると見なされてよい。さらに、いくつかの例では、ネットワークエンティティ229は、図1のファイル生成デバイス34である。
ビデオデコーダ30のエントロピー復号ユニット280は、ビットストリームの特定のシンタックス要素をエントロピー復号して、量子化係数、動きベクトル、および他のシンタックス要素を生成する。エントロピー復号ユニット280は、予測処理ユニット281に動きベクトルおよび他のシンタックス要素を転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信することができる。
予測処理ユニット281のイントラ予測処理ユニット284は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。予測処理ユニット281の動き補償ユニット282は、エントロピー復号ユニット280から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ292に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、リスト0およびリスト1を構築し得る。
逆量子化ユニット286は、ビットストリーム中で提供され、エントロピー復号ユニット280によって復号された量子化変換係数を、逆量子化すなわち量子化解除する。逆変換処理ユニット288は、ピクセル領域内の残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
動き補償ユニット282が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット288からの残差ブロックを、動き補償ユニット282によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器290は、この加算演算を実行する1つまたは複数の構成要素を表す。必要に応じて、(コーディングループ内またはコーディングループ後のいずれかの)ループフィルタもまた、ピクセル遷移を平滑化するため、またはさもなければビデオ品質を改善するために使用されてよい。フィルタユニット291は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表すことを意図している。フィルタユニット291がループ内フィルタであるものとして図4に示されるが、他の構成では、フィルタユニット291はループ後フィルタとして実装されてよい。所与のフレームまたはピクチャの中の復号されたビデオブロックは次いで、参照ピクチャメモリ292に記憶され、参照ピクチャメモリ292は、後続の動き補償のために使用される参照ピクチャを記憶する。参照ピクチャメモリ292はまた、図1のディスプレイデバイス32などのディスプレイデバイス上で後に提示するための復号されたビデオを記憶する。
図4のビデオデコーダ30は、本開示で説明するファイルフォーマット技法を使用して記憶され得るビデオデータを復号するように構成されたビデオデコーダの一例を表す。
図5は、ネットワーク300の一部を形成するデバイスの例示的なセットを示すブロック図である。この例では、ネットワーク300は、ルーティングデバイス304A、304B(ルーティングデバイス304)およびトランスコーディングデバイス306を含む。ルーティングデバイス304およびトランスコーディングデバイス306は、ネットワーク300の一部を形成してよい少数のデバイスを表すことを意図している。スイッチ、ハブ、ゲートウェイ、ファイヤウォール、ブリッジ、および他のそのようなデバイスのような、他のネットワークデバイスも、ネットワーク300内に含まれ得る。その上、追加のネットワークデバイスが、サーバデバイス302とクライアントデバイス308との間のネットワーク経路に沿って設けられ得る。いくつかの例では、サーバデバイス302がソースデバイス12(図1)に対応してよく、一方で、クライアントデバイス308が宛先デバイス14(図1)に対応してよい。
一般に、ルーティングデバイス304は、1つまたは複数のルーティングプロトコルを実装して、ネットワーク300を通じてネットワークデータを交換することができる。いくつかの例では、ルーティングデバイス304は、プロキシ動作またはキャッシュ動作を実行するように構成されてもよい。したがって、いくつかの例では、ルーティングデバイス304は、プロキシデバイスと呼ばれることがある。一般に、ルーティングデバイス304はルーティングプロトコルを実行して、ネットワーク300を通るルートを発見する。そのようなルーティングプロトコルを実行することによって、ルーティングデバイス304Bは、ルーティングデバイス304Aを介した、ルーティングデバイス304Bからサーバデバイス302へのネットワークルートを発見することができる。
本開示の技法は、ルーティングデバイス304およびトランスコーディングデバイス306などのネットワークデバイスによって実装されてよいが、クライアントデバイス308によって実装されてもよい。このようにして、ルーティングデバイス304、トランスコーディングデバイス306、およびクライアントデバイス308は、本開示の技法を実行するように構成されたデバイスの例を表す。その上、図1のデバイス、ならびに図3に示すビデオエンコーダ20および図4に示すビデオデコーダ30は、同じく、本開示の技法のうちの1つまたは複数を実行するように構成され得るデバイスの例である。
図6は、本開示の1つまたは複数の技法による、ファイル400の例示的な構造を示す概念図である。図6の例では、ファイル400は、ムービーボックス402および複数のメディアデータボックス404を含む。同じファイルの中にあるものとして図6の例で示されるが、他の例では、ムービーボックス402およびメディアデータボックス404が別個のファイルの中にあってよい。先に指摘したように、ボックスは、一意のタイプ識別子および長さによって定義されたオブジェクト指向のビルディングブロックであり得る。たとえば、ボックスは、4文字コード化ボックスタイプ、ボックスのバイトカウント、およびペイロードを含む、ISOBMFFにおける基本シンタックス構造であり得る。
ムービーボックス402は、ファイル400のトラック用のメタデータを含み得る。ファイル400の各トラックは、メディアデータの連続ストリームを備え得る。メディアデータボックス404の各々は、1つまたは複数のサンプル405を含み得る。サンプル405の各々は、オーディオアクセスユニットまたはビデオアクセスユニットを備え得る。各アクセスユニットは、マルチビューコーディング(たとえば、MV-HEVCおよび3D-HEVC)およびスケーラブルビデオコーディング(たとえば、SHVC)における複数のコード化ピクチャを備え得る。たとえば、アクセスユニットは、レイヤごとに1つまたは複数のコード化ピクチャを含み得る。
さらに、図6の例では、ムービーボックス402は、トラックボックス406を含む。トラックボックス406は、ファイル400のトラック用のメタデータを封入し得る。他の例では、ムービーボックス402は、ファイル400の異なるトラックのための複数のトラックボックスを含み得る。トラックボックス406は、トラック参照ボックス408およびメディアボックス410を含む。トラック参照ボックス408は、トラック参照タイプボックス409を含み得る。トラック参照タイプボックス409は、タイプ(たとえば、「tbas」)および別のトラックを識別するトラック識別子に関連付けられ得る。本開示の第6の技法によれば、タイルトラックのトラック参照ボックスは、タイプ識別子「tbas」に関連するトラック参照タイプボックスを含んでもよく、含まなくてもよい。
メディアボックス410は、トラック内のメディアデータについての情報を宣言するすべてのオブジェクトを含み得る。メディアボックス410は、メディア情報ボックス412を含む。メディア情報ボックス412は、トラックのメディアの特性情報を宣言するすべてのオブジェクトを含み得る。メディア情報ボックス412は、サンプルテーブルボックス414を含む。サンプルテーブルボックス414は、サンプル固有メタデータを規定し得る。
図6の例では、サンプルテーブルボックス414は、SampleToGroupボックス416、SampleGroupDescriptionボックス418、およびSampleGroupDescriptionボックス420を含む。他の例では、サンプルテーブルボックス414は、SampleToGroupボックス416、SampleGroupDescriptionボックス418、およびSampleGroupDescriptionボックス420に加えて他のボックスを含み得る。SampleToGroupボックス416は、サンプル(たとえば、サンプル405のうちの特定の1つ)を、SampleGroupDescriptionボックス418またはSampleGroupDescriptionボックス420など、SampleGroupDescriptionボックスにおいて記述されるサンプルのグループにマッピングし得る。SampleGroupDescriptionボックス418、420の各々は、様々なサンプルのグループ(すなわち、サンプルグループ)の中のサンプルによって共有される特性を規定し得る。
さらに、図6の例では、SampleGroupDescriptionボックス418は、1つまたは複数のタイル領域サンプルエントリ422を含む。SampleGroupDescriptionボックス420は、1つまたは複数のNALUマップエントリ424を含む。本開示の第2の技法によれば、タイル領域サンプルエントリ422がSampleToGroupボックス416に関連付けられるとき、サンプル(たとえば、サンプル405のうちのいずれか)に存在するたった1つのタイル領域(1つのタイル領域またはより大きい領域を形成するために一緒にグルーピングされるタイル領域のセットのいずれか)がなければならない。本開示の第3の技法によれば、SampleGroupDescriptionボックス418のバージョンフィールドは、タイル領域およびサンプル405のマッピングがNALUマップエントリ(たとえば、NALUマップエントリ424)を使用するか、それともSampleToGroupボックス416を直接使用するかを示し得る。
図7は、本開示の技法による、コンピューティングデバイスの例示的な動作を示すフローチャートである。本開示のフローチャートは例である。他の例は、より多数の、より少数の、または異なるアクションを含む場合がある。図7の例では、コンピューティングデバイスは、ソースデバイス12(図1)、ファイル生成デバイス34(図1)、後処理エンティティ127(図3)、サーバデバイス302(図5)、トランスコーディングデバイス306(図5)、または別のデバイスを含む、様々なタイプのコンピューティングデバイスであり得る。
図7の例では、コンピューティングデバイスは、NALユニットのストリームを備えるビットストリームを受信する(500)。コンピューティングデバイスは、様々な方法でビットストリームを受信し得る。たとえば、コンピューティングデバイスは、データ記憶媒体から、ネットワークインターフェースから、または別の方法でビットストリームを受信し得る。NALユニットのストリームは、複数のコード化スライスNALユニットを備える。複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのRBSPをカプセル化する。スライスの複数のスライスセグメントの各それぞれのスライスセグメントは、ピクチャの整数個のCTUを備える。スライスの複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含む。独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測されない。
さらに、1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、それぞれの従属スライスセグメントは、独立スライスセグメントに関する値から推測されるそれぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有する。加えて、ピクチャは、第1のタイルおよび第2のタイルを含む複数のタイル(たとえば、HEVCタイル)に区分される。スライスの複数のスライスセグメントは、第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、スライスの複数のスライスセグメントは、第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含む。
図7の例では、コンピューティングデバイスは、ビットストリームを記憶するファイルを生成する(502)。たとえば、コンピューティングデバイスは、コンピュータ可読記憶媒体上にファイルを表すデータを記憶し得る。ファイルを生成することの一部として、コンピューティングデバイスは、ファイルにおいてタイル領域を定義する(504)。図7の例では、タイル領域は、スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり得る。いくつかの例では、長方形タイル領域は、長方形領域を形成する整数個のタイル以外のタイルをまったく含まない。さらに、長方形タイル領域は第1のタイルを含むが、長方形タイル領域は第2のタイルを含まない。
いくつかの例では、コンピューティングデバイスは、ファイルにおいて、複数のスライスセグメントのうちの1つまたは複数のスライスセグメントを備える制約なしタイル領域を定義し得る。制約なしタイル領域の1つまたは複数のスライスセグメントの各々は、複数のタイルのうちの1つまたは複数の完全なタイルからなる。1つまたは複数の完全なタイルは、第1のタイルを含み、第2のタイルを含まない。コンピューティングデバイスは、制約なしタイル領域サンプルエントリを使用して制約なしタイル領域を定義し得る。
いくつかの例では、ファイルにおいてタイル領域を定義するために、コンピューティングデバイスは、ファイルにおいて、ファイルにおけるSampleToGroupボックスにおけるタイル領域サンプルエントリを生成し得る。タイル領域サンプルエントリにおけるシンタックス要素(たとえば、horizontal_offset、vertical_offset、region_width、region_height)は、タイル領域を指定し得る。加えて、コンピューティングデバイスは、ファイルにおいて、タイル領域サンプルエントリに関連するNALUマップエントリを生成し得る。本開示の他の場所で説明しているように、NALUマップエントリは、タイル領域に関連するNALユニットを指定する。
さらに、本開示の第2の技法によれば、アクション(502)においてファイルを生成することの一部として、コンピューティングデバイスは、ファイルにおけるサンプルを生成し得る。たとえば、コンピューティングデバイスは、ファイルにサンプルボックスを定義するデータを記憶し得る。サンプルは、複数のコード化スライスNALユニットを備える。加えて、コンピューティングデバイスは、ファイルにおいて、SampleToGroupボックスおよびSampleGroupDescriptionボックスを生成し得る。SampleGroupDescriptionボックスは、SampleToGroupボックスに関連するタイル領域サンプルエントリを含む。SampleToGroupボックスにおけるエントリは、サンプルをタイル領域サンプルエントリにマッピングする。SampleGroupDescriptionボックスにおけるタイル領域サンプルエントリは、タイル領域を記述する。さらに、SampleToGroupボックスに関連するタイル領域サンプルエントリをファイルが含むことに基づいて、ファイルのファイルフォーマットにおける制約が、サンプルにおいてCTUを含む任意の追加のタイル領域をコンピューティングデバイスが定義するのを防ぐ。したがって、ファイルは、タイル領域サンプルエントリがSampleToGroupボックスに関連付けられるとき、サンプルに存在するたった1つのタイル領域(1つのタイル領域またはより大きい領域を形成するために一緒にグルーピングされるタイル領域のセットのいずれか)がなければならないという規定に準拠する。
本開示の第3の技法によれば、アクション(500)においてファイルを生成することの一部として、コンピューティングデバイスは、ファイルにおけるサンプルを生成し得る。サンプルは、複数のコード化スライスNALユニットを備える。加えて、ファイルを生成することの一部として、コンピューティングデバイスは、ファイルにおけるサンプルグループ記述ボックスを生成し得る。サンプルグループ記述ボックスを生成することの一部として、コンピューティングデバイスは、サンプルグループ記述ボックスにおけるタイル領域サンプルエントリを生成し得る。加えて、サンプルグループ記述ボックスを生成することの一部として、コンピューティングデバイスは、サンプルグループ記述ボックスのバージョンシンタックス要素が以下、すなわち、NALユニットマップエントリまたはSampleToGroupボックスのうちのいずれにタイル領域サンプルエントリが関連付けられるかを示すように、サンプルグループ記述ボックスのバージョンシンタックス要素を設定し得る。したがって、タイル領域サンプルエントリを含むサンプルグループ記述ボックス(「sgpd」)のバージョンフィールドは、タイル領域サンプルエントリがNALUマップエントリに関連付けられ得るか、それともサンプル-グループボックスに関連付けられ得るかを示すために使用され得る。たとえば、0に等しいバージョンシンタックス要素は、タイル領域サンプルエントリがSampleToGroupボックスに関連付けられ、NALユニットマップエントリに関連付けられないことを示すことができ、1に等しいバージョンシンタックス要素は、タイル領域サンプルエントリがNALユニットマップエントリに関連付けられ、SampleToGroupボックスに関連付けられないことを示すことができる。
図8は、本開示の技法による、ファイルを処理するためのコンピューティングデバイスの例示的な動作を示すフローチャートである。図8の動作は、様々なタイプのコンピューティングデバイスによって実行され得る。たとえば、図8の動作は、宛先デバイス14(図1)、ネットワークエンティティ229(図4)、サーバデバイス302(図5)、トランスコーディングデバイス306(図5)、クライアントデバイス308(図5)、または別のデバイスによって実行され得る。
図8の例では、コンピューティングデバイスは、ビットストリームを記憶するファイルを受信する(550)。コンピューティングデバイスは、様々な方法でファイルを受信し得る。たとえば、コンピューティングデバイスは、コンピュータ可読記憶媒体から、ネットワークインターフェースから、または別のソースからファイルを受信し得る。
ビットストリームは、NALユニットのストリームを備える。ビットストリームにおけるNALユニットのストリームは、複数のコード化スライスNALユニットを備える。複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのRBSPをカプセル化する。スライスの複数のスライスセグメントの各それぞれのスライスセグメントは、ピクチャの整数個のCTUを備える。スライスの複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含む。独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から(たとえば、ビデオデコーダ30によって)推測可能ではない。1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、それぞれの従属スライスセグメントは、独立スライスセグメントに関する値から(たとえば、ビデオデコーダ30によって)推測可能なそれぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有する。ピクチャは、複数のタイル(たとえば、HEVCタイル)に区分される。複数のタイルは、第1のタイルおよび第2のタイルを含む。スライスの複数のスライスセグメントは、第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、スライスの複数のスライスセグメントは、第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含む。
ファイルにおいてタイル領域が定義される。タイル領域は、スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する複数のタイルのうちの整数個のタイルを備える長方形タイル領域である。スライスセグメントが領域の符号化されたブロックを含むとき、領域が1つまたは複数のスライスセグメントにおいて符号化され得る。いくつかの例では、長方形タイル領域は、長方形領域を形成する整数個のタイル以外のタイルをまったく含まない。長方形タイル領域は第1のタイルを含むが、長方形タイル領域は第2のタイルを含まない。
いくつかの例では、ファイルにおいて制約なしタイル領域が定義される。制約なしタイル領域は、複数のスライスセグメントのうちの1つまたは複数のスライスセグメントを備える。制約なしタイル領域の1つまたは複数のスライスセグメントの各々は、複数のタイルのうちの1つまたは複数の完全なタイルを備えるか、あるいはそれらからなる。1つまたは複数の完全なタイルは、第1のタイルを含む。1つまたは複数の完全なタイルは、第2のタイルを含まない。
さらに、図8の例では、コンピューティングデバイスは、ローカルメディアファイル再生またはリモートデバイスへのファイル中のデータのプログレッシブダウンロードのうちの少なくとも1つのためにファイルを使用し得る(552)。コンピューティングデバイスは、様々な方法でファイルを使用し得る。たとえば、ファイルは、複数のトラックを定義する複数のトラックボックスを含む。この例では、複数のトラックボックスのうちの特定のトラックボックスが、タイル領域サンプルエントリを含むSampleToGroupボックスを含む。この例では、タイル領域サンプルエントリは、タイル領域を定義するシンタックス要素(たとえば、horizontal_offset、vertical_offset、region_width、vertical_height)を備える。さらに、この例では、ファイルを使用することの一部として、コンピューティングデバイスは、タイル領域サンプルエントリにおけるシンタックス要素に基づいて、特定のトラックがタイル領域に関連付けられると判断し得る。たとえば、所望のタイル領域の対応する値と合致するタイル領域サンプルエントリにおけるシンタックス要素の値に基づいて、コンピューティングデバイスは、タイル領域サンプルエントリ(ひいては、タイル領域サンプルエントリを含むSampleToGroupボックスを含むトラック)が所望のタイル領域に対応すると判断し得る。この例では、特定のトラックがタイル領域に関連付けられるとの判断に基づいて、コンピューティングデバイスは、ファイルから特定のトラックのサンプルを、ファイルから複数のトラックのうちの1つまたは複数の他のトラックのサンプルを抽出することなく、抽出し得る。特定のトラックの抽出されたサンプルは、タイル領域における符号化されたブロックを含むNALユニットを含む。サンプルを抽出することは、サンプルを読み取ることまたはコピーすることを含み得る。
さらに、いくつかの例では、コンピューティングデバイスは、抽出されたサンプルにおける符号化されたブロックを復号してよく、1つまたは複数の他のトラックのサンプルにおける符号化されたブロックを復号しなくてよい。コンピューティングデバイスは、本開示の他の場所で提供した例に従って、符号化されたブロックを復号し得る。追加または代替として、コンピューティングデバイスは、リモートデバイスに、特定のトラックの抽出されたサンプルにおけるNALユニットをダウンロードしてよく、1つまたは複数の他のトラックのサンプルにおけるNALユニットをリモートデバイスにダウンロードしなくてよい。
図8の例には示されていないが、コンピューティングデバイスは、本開示の第2の例示的な技法に従って、かつファイルを受信することの一部として、ファイルにおいて、サンプル、サンプル-グループボックス(たとえば、SampleToGroupボックス)、およびサンプルグループ記述ボックス(たとえば、SampleGroupDescriptionボックス)を受信し得る。サンプルは、複数のコード化スライスNALユニットを備える。サンプルグループ記述ボックスは、タイル領域を記述するタイル領域サンプルエントリを備える。たとえば、サンプルグループ記述ボックスは、長方形タイル領域サンプルエントリまたは制約なしタイル領域サンプルエントリを含み得る。この例では、タイル領域は、サンプルにおいて定義される唯一のタイル領域である。この例では、コンピューティングデバイスは、サンプルを識別するとともにタイル領域サンプルエントリを指定するサンプル-グループボックスにおけるエントリに基づいて、サンプルにおけるコード化スライスNALユニットがタイル領域におけるタイルのCTUを含むと判断し得る。
さらに、図8の例には示されていないが、コンピューティングデバイスは、本開示の第3の例示的な技法に従って、かつファイルを受信することの一部として、ファイルにおけるサンプルを受信し得る。サンプルは、複数のコード化スライスNALユニットを備える。加えて、コンピューティングデバイスは、ファイルにおけるサンプルグループ記述ボックスを受信し得る。サンプルグループ記述ボックスを受信することの一部として、コンピューティングデバイスは、サンプルグループ記述ボックスにおけるタイル領域サンプルエントリを受信し得る。この例では、コンピューティングデバイスは、サンプルグループ記述ボックスのバージョンシンタックス要素に基づいて、タイル領域サンプルエントリがNALユニットマップエントリに関連付けられるか、それともSampleToGroupボックスに関連付けられるかを判断し得る。たとえば、0に等しいバージョンシンタックス要素は、タイル領域サンプルエントリがSampleToGroupボックスに関連付けられ、NALユニットマップエントリに関連付けられないことを示すことができ、1に等しいバージョンシンタックス要素は、タイル領域サンプルエントリがNALユニットマップエントリに関連付けられ、SampleToGroupボックスに関連付けられないことを示すことができる。
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるかまたはコンピュータ可読媒体を介して送信されてよく、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に相当し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード、および/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品がコンピュータ可読媒体を含んでよい。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含まず、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価な集積論理回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、または本明細書で説明する技法の実装に適した任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明する機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/もしくはソフトウェアモジュール内で与えられることがあり、または複合コーデックに組み込まれることがある。また、技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。開示する技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが本開示で説明されるが、それらは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わせられてよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、上記で説明したような1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
様々な例について説明した。これらおよび他の例は、以下の特許請求の範囲内に入る。
10 ビデオ符号化および復号システム、システム、ビデオコーディングシステム
12 ソースデバイス
14 宛先デバイス
16 リンク
18 ビデオソース
20 ビデオエンコーダ
21 メモリ
22 出力インターフェース
28 入力インターフェース
29 メモリ
30 ビデオデコーダ
32 ディスプレイデバイス
33 記憶デバイス
34 ファイル生成デバイス
40 ピクチャ
42 タイル
44 タイル
46 タイル
48 タイル
50 垂直タイル境界、タイル境界
52 水平タイル境界、タイル境界
54 スライスセグメント
56 スライスセグメント
58 スライスセグメント
60 スライスセグメント
62 スライスセグメント
64 スライスセグメント
66 スライスセグメント
68 スライスセグメント
127 後処理エンティティ
135 区分ユニット
141 予測処理ユニット
142 動き推定ユニット
144 動き補償ユニット
146 イントラ予測処理ユニット
150 加算器
152 変換処理ユニット
154 量子化ユニット
156 エントロピー符号化ユニット
158 逆量子化ユニット
160 逆変換処理ユニット
162 加算器
163 フィルタユニット
164 参照ピクチャメモリ
229 ネットワークエンティティ
279 コード化ピクチャバッファ(CPB)
280 エントロピー復号ユニット
281 予測処理ユニット
282 動き補償ユニット
284 イントラ予測処理ユニット
286 逆量子化ユニット
288 逆変換処理ユニット
290 加算器
291 フィルタユニット
292 参照ピクチャメモリ
300 ネットワーク
302 サーバデバイス
304 ルーティングデバイス
304A ルーティングデバイス
304B ルーティングデバイス
306 トランスコーディングデバイス
308 クライアントデバイス
400 ファイル
402 ムービーボックス
404 メディアデータボックス
405 サンプル
406 トラックボックス
408 トラック参照ボックス
409 トラック参照タイプボックス
410 メディアボックス
412 メディア情報ボックス
414 サンプルテーブルボックス
416 SampleToGroupボックス
418 SampleGroupDescriptionボックス
420 SampleGroupDescriptionボックス
422 タイル領域サンプルエントリ
424 NALUマップエントリ

Claims (28)

  1. ビデオデータを処理する方法であって、
    コンピューティングデバイスによって、ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備えるビットストリームを受信するステップであって、
    NALユニットの前記ストリームは、複数のコード化スライスNALユニットを備え、前記複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、前記ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、前記スライスの前記複数のスライスセグメントの各それぞれのスライスセグメントは、前記ピクチャの整数個のコーディングツリーユニット(CTU)を備え、前記スライスの前記複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、
    前記独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、
    前記1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、前記それぞれの従属スライスセグメントは、前記独立スライスセグメントに関する値から推測可能な前記それぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、
    前記ピクチャは、複数のタイルに区分され、前記複数のタイルは、第1のタイルおよび第2のタイルを含み、
    前記スライスの前記複数のスライスセグメントは、前記第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、前記スライスの前記複数のスライスセグメントは、前記第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含む、ステップと、
    前記コンピューティングデバイスによって、前記ビットストリームを記憶するファイルを生成するステップであって、
    前記ファイルを生成することは、前記ファイルにおいてタイル領域を定義することを含み、前記タイル領域は、前記スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する前記複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、前記長方形タイル領域は、前記第1のタイルを含み、前記長方形タイル領域は、前記第2のタイルを含まない、ステップと
    を含む方法。
  2. 前記ファイルにおいて、前記複数のスライスセグメントのうちの1つまたは複数のスライスセグメントを備える制約なしタイル領域を定義するステップであって、前記制約なしタイル領域の前記1つまたは複数のスライスセグメントの各々は、前記複数のタイルのうちの1つまたは複数の完全なタイルからなり、前記1つまたは複数の完全なタイルは、前記第1のタイルを含み、前記1つまたは複数の完全なタイルは、前記第2のタイルを含まない、ステップ
    をさらに含む、請求項1に記載の方法。
  3. 前記ファイルを生成するステップは、
    前記コンピューティングデバイスによって、前記ファイルにおけるサンプルを生成するステップであって、前記サンプルは、前記複数のコード化スライスNALユニットを備える、ステップと、
    前記コンピューティングデバイスによって、前記ファイルにおいて、サンプル-グループボックスおよびサンプルグループ記述ボックスを生成するステップであって、前記サンプルグループ記述ボックスは、前記サンプル-グループボックスに関連するタイル領域サンプルエントリを含み、前記サンプル-グループボックスにおけるエントリが前記サンプルを前記タイル領域サンプルエントリにマッピングし、前記サンプルグループ記述ボックスにおける前記タイル領域サンプルエントリは、前記タイル領域を記述する、ステップと
    をさらに含み、
    前記サンプル-グループボックスに関連する前記タイル領域サンプルエントリを前記ファイルが含むことに基づいて、前記ファイルのファイルフォーマットにおける制約が、前記サンプルにおいてCTUを含む任意の追加のタイル領域を前記コンピューティングデバイスが定義するのを防ぐ、請求項1に記載の方法。
  4. 前記ファイルを生成するステップは、
    前記ファイルにおけるサンプルを生成するステップであって、前記サンプルは、前記複数のコード化スライスNALユニットを備える、ステップと、
    前記ファイルにおけるサンプルグループ記述ボックスを生成するステップと
    をさらに含み、前記サンプルグループ記述ボックスを生成するステップは、
    前記サンプルグループ記述ボックスにおけるタイル領域サンプルエントリを生成するステップと、
    前記サンプルグループ記述ボックスのバージョンシンタックス要素が、NALユニットマップエントリまたはSampleToGroupボックスのうちのいずれに前記タイル領域サンプルエントリが関連付けられるかを示すように、前記サンプルグループ記述ボックスの前記バージョンシンタックス要素を設定するステップと
    を含む、請求項1に記載の方法。
  5. 0に等しい前記バージョンシンタックス要素は、前記タイル領域サンプルエントリが前記SampleToGroupボックスに関連付けられ、前記NALユニットマップエントリに関連付けられないことを示し、
    1に等しい前記バージョンシンタックス要素は、前記タイル領域サンプルエントリが前記NALユニットマップエントリに関連付けられ、前記SampleToGroupボックスに関連付けられないことを示す、請求項4に記載の方法。
  6. ビデオデータを処理する方法であって、
    コンピューティングデバイスによって、ビットストリームを記憶するファイルを受信するステップであって、
    前記ビットストリームは、ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備え、NALユニットの前記ストリームは、複数のコード化スライスNALユニットを備え、前記複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、前記ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、前記スライスの前記複数のスライスセグメントの各それぞれのスライスセグメントは、前記ピクチャの整数個のコーディングツリーユニット(CTU)を備え、前記スライスの前記複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、
    前記独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、
    前記1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、前記それぞれの従属スライスセグメントは、前記独立スライスセグメントに関する値から推測可能な前記それぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、
    前記ピクチャは、複数のタイルに区分され、前記複数のタイルは、第1のタイルおよび第2のタイルを含み、
    前記スライスの前記複数のスライスセグメントは、前記第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、前記スライスの前記複数のスライスセグメントは、前記第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、
    前記ファイルにおいてタイル領域が定義され、前記タイル領域は、前記スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する前記複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、前記長方形タイル領域は、前記第1のタイルを含み、前記長方形タイル領域は、前記第2のタイルを含まない、ステップと、
    前記コンピューティングデバイスによって、ローカルメディアファイル再生またはリモートデバイスへの前記ファイル中のデータのプログレッシブダウンロードのうちの少なくとも1つのために前記ファイルを使用するステップと
    を含む方法。
  7. 前記ファイルは、複数のトラックを定義する複数のトラックボックスを含み、前記複数のトラックボックスのうちの特定のトラックボックスが、タイル領域サンプルエントリを含むSampleToGroupボックスを含み、前記タイル領域サンプルエントリは、前記タイル領域を定義するシンタックス要素を備え、
    前記ファイルを使用するステップは、
    前記タイル領域サンプルエントリにおける前記シンタックス要素に基づいて、前記特定のトラックが前記タイル領域に関連付けられると判断するステップと、
    前記特定のトラックが前記タイル領域に関連付けられるとの前記判断に基づいて、前記ファイルから前記特定のトラックのサンプルを、前記ファイルから前記複数のトラックのうちの1つまたは複数の他のトラックのサンプルを抽出することなく、抽出するステップであって、前記特定のトラックの前記抽出されたサンプルは、前記タイル領域における符号化されたブロックを含むNALユニットを含む、ステップと
    を含む、請求項6に記載の方法。
  8. 前記抽出されたサンプルにおける前記符号化されたブロックを復号し、前記1つまたは複数の他のトラックの前記サンプルにおける符号化されたブロックを復号しないステップ、あるいは
    前記リモートデバイスに、前記特定のトラックの前記抽出されたサンプルにおける前記NALユニットをダウンロードし、前記1つまたは複数の他のトラックの前記サンプルにおける前記NALユニットを前記リモートデバイスにダウンロードしないステップ
    のうちの少なくとも1つをさらに含む、請求項7に記載の方法。
  9. 前記ファイルにおいて制約なしタイル領域が定義され、前記制約なしタイル領域は、前記複数のスライスセグメントのうちの1つまたは複数のスライスセグメントを備え、前記制約なしタイル領域の前記1つまたは複数のスライスセグメントの各々は、前記複数のタイルのうちの1つまたは複数の完全なタイルからなり、前記1つまたは複数の完全なタイルは、前記第1のタイルを含み、前記1つまたは複数の完全なタイルは、前記第2のタイルを含まない、請求項6に記載の方法。
  10. 前記ファイルを受信するステップは、前記コンピューティングデバイスによって、前記ファイルにおいて、サンプル、サンプル-グループボックス、およびサンプルグループ記述ボックスを受信するステップをさらに含み、前記サンプルは、前記複数のコード化スライスNALユニットを備え、前記サンプルグループ記述ボックスは、前記タイル領域を記述するタイル領域サンプルエントリを備え、
    前記タイル領域は、前記サンプルにおいて定義される唯一のタイル領域であり、
    前記方法は、前記コンピューティングデバイスによって、前記サンプルを識別するとともに前記タイル領域サンプルエントリを指定する前記サンプル-グループボックスにおけるエントリに基づいて、前記サンプルにおける前記コード化スライスNALユニットが前記タイル領域における前記タイルのCTUを含むと判断するステップをさらに含む、請求項6に記載の方法。
  11. 前記ファイルを受信するステップは、
    前記コンピューティングデバイスによって、前記ファイルにおけるサンプルを受信するステップであって、前記サンプルは、前記複数のコード化スライスNALユニットを備える、ステップと、
    前記コンピューティングデバイスによって、前記ファイルにおけるサンプルグループ記述ボックスを受信するステップであって、前記サンプルグループ記述ボックスを受信することは、前記コンピューティングデバイスによって、前記サンプルグループ記述ボックスにおけるタイル領域サンプルエントリを受信することを含む、ステップと
    をさらに含み、
    前記方法は、前記コンピューティングデバイスによって、前記サンプルグループ記述ボックスのバージョンシンタックス要素に基づいて、前記タイル領域サンプルエントリがNALユニットマップエントリに関連付けられるか、それともSampleToGroupボックスに関連付けられるかを判断するステップをさらに含む、請求項6に記載の方法。
  12. 0に等しい前記バージョンシンタックス要素は、前記タイル領域サンプルエントリが前記SampleToGroupボックスに関連付けられ、前記NALユニットマップエントリに関連付けられないことを示し、
    1に等しい前記バージョンシンタックス要素は、前記タイル領域サンプルエントリが前記NALユニットマップエントリに関連付けられ、前記SampleToGroupボックスに関連付けられないことを示す、請求項11に記載の方法。
  13. ビデオデータの記憶のためのファイルを生成するためのコンピューティングデバイスであって、
    前記ファイルを記憶するように構成されたメモリと、
    1つまたは複数のプロセッサと
    を備え、前記1つまたは複数のプロセッサは、
    ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備えるビットストリームを受信することであって、
    NALユニットの前記ストリームは、複数のコード化スライスNALユニットを備え、前記複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、前記ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、前記スライスの前記複数のスライスセグメントの各それぞれのスライスセグメントは、前記ピクチャの整数個のコーディングツリーユニット(CTU)を備え、前記スライスの前記複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、
    前記独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、
    前記1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、前記それぞれの従属スライスセグメントは、前記独立スライスセグメントに関する値から推測可能な前記それぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、
    前記ピクチャは、複数のタイルに区分され、前記複数のタイルは、第1のタイルおよび第2のタイルを含み、
    前記スライスの前記複数のスライスセグメントは、前記第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、前記スライスの前記複数のスライスセグメントは、前記第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含む、受信することと、
    前記ビットストリームを記憶するファイルを生成することであって、
    前記ファイルを生成することは、前記ファイルにおいてタイル領域を定義することを含み、前記タイル領域は、前記スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する前記複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、前記長方形タイル領域は、前記第1のタイルを含み、前記長方形タイル領域は、前記第2のタイルを含まない、生成することと
    を行うように構成される、コンピューティングデバイス。
  14. 前記1つまたは複数のプロセッサは、
    前記ファイルにおいて、前記複数のスライスセグメントのうちの1つまたは複数のスライスセグメントを備える制約なしタイル領域を定義することであって、前記制約なしタイル領域の前記1つまたは複数のスライスセグメントの各々は、前記複数のタイルのうちの1つまたは複数の完全なタイルからなり、前記1つまたは複数の完全なタイルは、前記第1のタイルを含み、前記1つまたは複数の完全なタイルは、前記第2のタイルを含まない、定義すること
    を行うようにさらに構成される、請求項13に記載のコンピューティングデバイス。
  15. 前記1つまたは複数のプロセッサは、前記ファイルを生成することの一部として、前記1つまたは複数のプロセッサが、
    前記ファイルにおけるサンプルを生成することであって、前記サンプルは、前記複数のコード化スライスNALユニットを備える、生成することと、
    前記ファイルにおいて、サンプル-グループボックスおよびサンプルグループ記述ボックスを生成することであって、前記サンプルグループ記述ボックスは、前記サンプル-グループボックスに関連するタイル領域サンプルエントリを含み、前記サンプル-グループボックスにおけるエントリが前記サンプルを前記タイル領域サンプルエントリにマッピングし、前記サンプルグループ記述ボックスにおける前記タイル領域サンプルエントリは、前記タイル領域を記述する、生成することと
    を行うように構成され、
    前記サンプル-グループボックスに関連する前記タイル領域サンプルエントリを前記ファイルが含むことに基づいて、前記ファイルのファイルフォーマットにおける制約が、前記サンプルにおいてCTUを含む任意の追加のタイル領域を前記コンピューティングデバイスが定義するのを防ぐ、請求項13に記載のコンピューティングデバイス。
  16. 前記1つまたは複数のプロセッサは、前記ファイルを生成することの一部として、前記1つまたは複数のプロセッサが、
    前記ファイルにおけるサンプルを生成することであって、前記サンプルは、前記複数のコード化スライスNALユニットを備える、生成することと、
    前記ファイルにおけるサンプルグループ記述ボックスを生成することと
    を行うように構成され、前記1つまたは複数のプロセッサは、前記サンプルグループ記述ボックスを生成することの一部として、前記1つまたは複数のプロセッサが、
    前記サンプルグループ記述ボックスにおけるタイル領域サンプルエントリを生成することと、
    前記サンプルグループ記述ボックスのバージョンシンタックス要素が、NALユニットマップエントリまたはSampleToGroupボックスのうちのいずれに前記タイル領域サンプルエントリが関連付けられるかを示すように、前記サンプルグループ記述ボックスの前記バージョンシンタックス要素を設定することと
    を行うように構成される、請求項13に記載のコンピューティングデバイス。
  17. 0に等しい前記バージョンシンタックス要素は、前記タイル領域サンプルエントリが前記SampleToGroupボックスに関連付けられ、前記NALユニットマップエントリに関連付けられないことを示し、
    1に等しい前記バージョンシンタックス要素は、前記タイル領域サンプルエントリが前記NALユニットマップエントリに関連付けられ、前記SampleToGroupボックスに関連付けられないことを示す、請求項16に記載のコンピューティングデバイス。
  18. ビデオデータの記憶のためのファイルを処理するためのコンピューティングデバイスであって、
    前記ファイルを記憶するように構成されたメモリと、
    1つまたは複数のプロセッサと
    を備え、前記1つまたは複数のプロセッサは、
    ビットストリームを記憶するファイルを受信することであって、
    前記ビットストリームは、ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備え、NALユニットの前記ストリームは、複数のコード化スライスNALユニットを備え、前記複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、前記ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、前記スライスの前記複数のスライスセグメントの各それぞれのスライスセグメントは、前記ピクチャの整数個のコーディングツリーユニット(CTU)を備え、前記スライスの前記複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、
    前記独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、
    前記1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、前記それぞれの従属スライスセグメントは、前記独立スライスセグメントに関する値から推測可能な前記それぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、
    前記ピクチャは、複数のタイルに区分され、前記複数のタイルは、第1のタイルおよび第2のタイルを含み、
    前記スライスの前記複数のスライスセグメントは、前記第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、前記スライスの前記複数のスライスセグメントは、前記第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、
    前記ファイルにおいてタイル領域が定義され、前記タイル領域は、前記スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する前記複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、前記長方形タイル領域は、前記第1のタイルを含み、前記長方形タイル領域は、前記第2のタイルを含まない、受信することと、
    ローカルメディアファイル再生またはリモートデバイスへの前記ファイル中のデータのプログレッシブダウンロードのうちの少なくとも1つのために前記ファイルを使用することと
    を行うように構成される、コンピューティングデバイス。
  19. 前記ファイルは、複数のトラックを定義する複数のトラックボックスを含み、前記複数のトラックボックスのうちの特定のトラックボックスが、タイル領域サンプルエントリを含むSampleToGroupボックスを含み、前記タイル領域サンプルエントリは、前記タイル領域を定義するシンタックス要素を備え、
    前記1つまたは複数のプロセッサは、前記ファイルを使用することの一部として、前記1つまたは複数のプロセッサが、
    前記タイル領域サンプルエントリにおける前記シンタックス要素に基づいて、前記特定のトラックが前記タイル領域に関連付けられると判断することと、
    前記特定のトラックが前記タイル領域に関連付けられるとの前記判断に基づいて、前記ファイルから前記特定のトラックのサンプルを、前記ファイルから前記複数のトラックのうちの1つまたは複数の他のトラックのサンプルを抽出することなく、抽出することであって、前記特定のトラックの前記抽出されたサンプルは、前記タイル領域における符号化されたブロックを含むNALユニットを含む、抽出することと
    を行うように構成される、請求項18に記載のコンピューティングデバイス。
  20. 前記1つまたは複数のプロセッサは、
    前記抽出されたサンプルにおける前記符号化されたブロックを復号し、前記1つまたは複数の他のトラックの前記サンプルにおける符号化されたブロックを復号しないこと、あるいは
    前記リモートデバイスに、前記特定のトラックの前記抽出されたサンプルにおける前記NALユニットをダウンロードし、前記1つまたは複数の他のトラックの前記サンプルにおける前記NALユニットを前記リモートデバイスにダウンロードしないこと
    のうちの少なくとも1つを実行するようにさらに構成される、請求項19に記載のコンピューティングデバイス。
  21. 前記ファイルにおいて制約なしタイル領域が定義され、前記制約なしタイル領域は、前記複数のスライスセグメントのうちの1つまたは複数のスライスセグメントを備え、前記制約なしタイル領域の前記1つまたは複数のスライスセグメントの各々は、前記複数のタイルのうちの1つまたは複数の完全なタイルからなり、前記1つまたは複数の完全なタイルは、前記第1のタイルを含み、前記1つまたは複数の完全なタイルは、前記第2のタイルを含まない、請求項18に記載のコンピューティングデバイス。
  22. 前記1つまたは複数のプロセッサは、前記ファイルを受信することの一部として、前記1つまたは複数のプロセッサが、前記ファイルにおいて、サンプル、サンプル-グループボックス、およびサンプルグループ記述ボックスを受信するように構成され、前記サンプルは、前記複数のコード化スライスNALユニットを備え、前記サンプルグループ記述ボックスは、前記タイル領域を記述するタイル領域サンプルエントリを備え、
    前記タイル領域は、前記サンプルにおいて定義される唯一のタイル領域であり、
    前記1つまたは複数のプロセッサは、前記サンプルを識別するとともに前記タイル領域サンプルエントリを指定する前記サンプル-グループボックスにおけるエントリに基づいて、前記サンプルにおける前記コード化スライスNALユニットが前記タイル領域における前記タイルのCTUを含むと判断するようにさらに構成される、請求項18に記載のコンピューティングデバイス。
  23. 前記1つまたは複数のプロセッサは、前記ファイルを受信することの一部として、前記1つまたは複数のプロセッサが、
    前記ファイルにおけるサンプルを受信することであって、前記サンプルは、前記複数のコード化スライスNALユニットを備える、受信することと、
    前記ファイルにおけるサンプルグループ記述ボックスを受信することであって、前記サンプルグループ記述ボックスを受信することは、前記コンピューティングデバイスによって、前記サンプルグループ記述ボックスにおけるタイル領域サンプルエントリを受信することを含む、受信することと
    を行うように構成され、
    前記1つまたは複数のプロセッサは、前記サンプルグループ記述ボックスのバージョンシンタックス要素に基づいて、前記タイル領域サンプルエントリがNALユニットマップエントリに関連付けられるか、それともSampleToGroupボックスに関連付けられるかを判断するようにさらに構成される、請求項18に記載のコンピューティングデバイス。
  24. 0に等しい前記バージョンシンタックス要素は、前記タイル領域サンプルエントリが前記SampleToGroupボックスに関連付けられ、前記NALユニットマップエントリに関連付けられないことを示し、
    1に等しい前記バージョンシンタックス要素は、前記タイル領域サンプルエントリが前記NALユニットマップエントリに関連付けられ、前記SampleToGroupボックスに関連付けられないことを示す、請求項23に記載のコンピューティングデバイス。
  25. ビデオデータの記憶のためのファイルを生成するための装置であって、
    ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備えるビットストリームを受信するための手段であって、
    NALユニットの前記ストリームは、複数のコード化スライスNALユニットを備え、前記複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、前記ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、前記スライスの前記複数のスライスセグメントの各それぞれのスライスセグメントは、前記ピクチャの整数個のコーディングツリーユニット(CTU)を備え、前記スライスの前記複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、
    前記独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、
    前記1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、前記それぞれの従属スライスセグメントは、前記独立スライスセグメントに関する値から推測可能な前記それぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、
    前記ピクチャは、複数のタイルに区分され、前記複数のタイルは、第1のタイルおよび第2のタイルを含み、
    前記スライスの前記複数のスライスセグメントは、前記第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、前記スライスの前記複数のスライスセグメントは、前記第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含む、手段と、
    前記ビットストリームを記憶するファイルを生成するための手段であって、
    前記ファイルを生成することは、前記ファイルにおいてタイル領域を定義することを含み、前記タイル領域は、前記スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する前記複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、前記長方形タイル領域は、前記第1のタイルを含み、前記長方形タイル領域は、前記第2のタイルを含まない、手段と
    を含む装置。
  26. ビデオデータの記憶のためのファイルを処理するための装置であって、
    ビットストリームを記憶するファイルを受信するための手段であって、
    前記ビットストリームは、ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備え、NALユニットの前記ストリームは、複数のコード化スライスNALユニットを備え、前記複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、前記ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、前記スライスの前記複数のスライスセグメントの各それぞれのスライスセグメントは、前記ピクチャの整数個のコーディングツリーユニット(CTU)を備え、前記スライスの前記複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、
    前記独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、
    前記1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、前記それぞれの従属スライスセグメントは、前記独立スライスセグメントに関する値から推測可能な前記それぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、
    前記ピクチャは、複数のタイルに区分され、前記複数のタイルは、第1のタイルおよび第2のタイルを含み、
    前記スライスの前記複数のスライスセグメントは、前記第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、前記スライスの前記複数のスライスセグメントは、前記第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、
    前記ファイルにおいてタイル領域が定義され、前記タイル領域は、前記スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する前記複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、前記長方形タイル領域は、前記第1のタイルを含み、前記長方形タイル領域は、前記第2のタイルを含まない、手段と、
    ローカルメディアファイル再生またはリモートデバイスへの前記ファイル中のデータのプログレッシブダウンロードのうちの少なくとも1つのために前記ファイルを使用するための手段と
    を含む装置。
  27. 命令で符号化されたコンピュータ可読記憶媒体であって、前記命令は、実行されたときに、デバイスのプロセッサを、
    ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備えるビットストリームを受信することであって、
    NALユニットの前記ストリームは、複数のコード化スライスNALユニットを備え、前記複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、前記スライスの前記複数のスライスセグメントの各それぞれのスライスセグメントは、前記ピクチャの整数個のコーディングツリーユニット(CTU)を備え、前記スライスの前記複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、
    前記独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、
    前記1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、前記それぞれの従属スライスセグメントは、前記独立スライスセグメントに関する値から推測可能な前記それぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、
    前記ピクチャは、複数のタイルに区分され、前記複数のタイルは、第1のタイルおよび第2のタイルを含み、
    前記スライスの前記複数のスライスセグメントは、前記第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、前記スライスの前記複数のスライスセグメントは、前記第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含む、受信することと、
    前記ビットストリームを記憶するファイルを生成することであって、
    前記ファイルを生成することは、前記ファイルにおいてタイル領域を定義することを含み、前記タイル領域は、前記スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する前記複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、前記長方形タイル領域は、前記第1のタイルを含み、前記長方形タイル領域は、前記第2のタイルを含まない、生成することと
    を行うように構成する、コンピュータ可読記憶媒体。
  28. 命令で符号化されたコンピュータ可読記憶媒体であって、前記命令は、実行されたときに、デバイスのプロセッサを、
    ビットストリームを記憶するファイルを受信することであって、
    前記ビットストリームは、ネットワークアブストラクションレイヤ(NAL)ユニットのストリームを備え、NALユニットの前記ストリームは、複数のコード化スライスNALユニットを備え、前記複数のコード化スライスNALユニットの各それぞれのコード化スライスNALユニットは、ビデオデータのピクチャのスライスの複数のスライスセグメントのそれぞれのスライスセグメントのためのそれぞれのローバイトシーケンスペイロード(RBSP)をカプセル化し、前記スライスの前記複数のスライスセグメントの各それぞれのスライスセグメントは、前記ピクチャの整数個のコーディングツリーユニット(CTU)を備え、前記スライスの前記複数のスライスセグメントは、1つの独立スライスセグメントおよび1つまたは複数の従属スライスセグメントを含み、
    前記独立スライスセグメントのスライスセグメントヘッダにおけるシンタックス要素のいかなる値も、任意の先行するスライスセグメントに関する値から推測可能ではなく、
    前記1つまたは複数の従属スライスセグメントの各それぞれの従属スライスセグメントに関して、前記それぞれの従属スライスセグメントは、前記独立スライスセグメントに関する値から推測可能な前記それぞれの従属スライスセグメントのスライスセグメントヘッダの1つまたは複数のシンタックス要素の値を有し、
    前記ピクチャは、複数のタイルに区分され、前記複数のタイルは、第1のタイルおよび第2のタイルを含み、
    前記スライスの前記複数のスライスセグメントは、前記第1のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、前記スライスの前記複数のスライスセグメントは、前記第2のタイルのCTUを含む1つまたは複数のスライスセグメントを含み、
    前記ファイルにおいてタイル領域が定義され、前記タイル領域は、前記スライスセグメントのうちの1つまたは複数において符号化された長方形領域を形成する前記複数のタイルのうちの整数個のタイルを備える長方形タイル領域であり、前記長方形タイル領域は、前記第1のタイルを含み、前記長方形タイル領域は、前記第2のタイルを含まない、受信することと、
    ローカルメディアファイル再生またはリモートデバイスへの前記ファイル中のデータのプログレッシブダウンロードのうちの少なくとも1つのために前記ファイルを使用することと
    を行うように構成する、コンピュータ可読記憶媒体。
JP2018561008A 2016-05-24 2017-05-24 Hevcおよびl−hevcファイルフォーマットでのタイルグルーピングおよびサンプルのマッピング Active JP6932144B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662341025P 2016-05-24 2016-05-24
US62/341,025 2016-05-24
US15/602,664 US10291923B2 (en) 2016-05-24 2017-05-23 Mapping of tile grouping and samples in HEVC and L-HEVC file formats
US15/602,664 2017-05-23
PCT/US2017/034185 WO2017205472A1 (en) 2016-05-24 2017-05-24 Mapping of tile grouping and samples in hevc and l-hevc file formats

Publications (3)

Publication Number Publication Date
JP2019517218A true JP2019517218A (ja) 2019-06-20
JP2019517218A5 JP2019517218A5 (ja) 2020-06-18
JP6932144B2 JP6932144B2 (ja) 2021-09-08

Family

ID=58794275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018561008A Active JP6932144B2 (ja) 2016-05-24 2017-05-24 Hevcおよびl−hevcファイルフォーマットでのタイルグルーピングおよびサンプルのマッピング

Country Status (10)

Country Link
US (1) US10291923B2 (ja)
EP (1) EP3466078B1 (ja)
JP (1) JP6932144B2 (ja)
KR (1) KR102485792B1 (ja)
CN (1) CN109155860B (ja)
AU (1) AU2017271510B2 (ja)
BR (1) BR112018073940A2 (ja)
ES (1) ES2824770T3 (ja)
TW (1) TWI777953B (ja)
WO (1) WO2017205472A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102618049B1 (ko) * 2016-02-02 2023-12-27 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 비디오 스트리밍의 관심 장면 섹션 및 영역 처리
US10291923B2 (en) * 2016-05-24 2019-05-14 Qualcomm Incorporated Mapping of tile grouping and samples in HEVC and L-HEVC file formats
US10999605B2 (en) 2017-01-10 2021-05-04 Qualcomm Incorporated Signaling of important video information in file formats
US11114138B2 (en) 2017-09-15 2021-09-07 Groq, Inc. Data structures with multiple read ports
US11243880B1 (en) 2017-09-15 2022-02-08 Groq, Inc. Processor architecture
US11360934B1 (en) 2017-09-15 2022-06-14 Groq, Inc. Tensor streaming processor architecture
US11868804B1 (en) 2019-11-18 2024-01-09 Groq, Inc. Processor instruction dispatch configuration
WO2019060443A1 (en) * 2017-09-20 2019-03-28 Vid Scale, Inc. HANDLING FACIAL DISCONTINUITIES IN 360-DEGREE VIDEO CODING
US11170307B1 (en) 2017-09-21 2021-11-09 Groq, Inc. Predictive model compiler for generating a statically scheduled binary with known resource constraints
US10638151B2 (en) * 2018-05-31 2020-04-28 Verizon Patent And Licensing Inc. Video encoding methods and systems for color and depth data representative of a virtual reality scene
US11108841B2 (en) 2018-06-19 2021-08-31 At&T Intellectual Property I, L.P. Apparatus, storage medium and method for heterogeneous segmentation of video streaming
WO2020045248A1 (ja) * 2018-08-29 2020-03-05 シャープ株式会社 動画像復号装置および動画像符号化装置
WO2020064733A1 (en) * 2018-09-25 2020-04-02 Telefonaktiebolaget Lm Ericsson (Publ) Media bistream having backwards compatibility
CN116684586A (zh) * 2018-10-05 2023-09-01 Lg电子株式会社 解码设备、编码设备及发送针对图像的数据的设备
US11301546B2 (en) 2018-11-19 2022-04-12 Groq, Inc. Spatial locality transform of matrices
US12022059B2 (en) * 2018-12-07 2024-06-25 Beijing Dajia Internet Information Technology Co., Ltd. Video coding using multi-resolution reference picture management
US11272178B2 (en) 2018-12-20 2022-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Video encoding and decoding
WO2020135317A1 (en) 2018-12-28 2020-07-02 Huawei Technologies Co., Ltd. Devices and methods for coding a picture by partitioning it into slices comprising tiles
CN113906744A (zh) * 2019-03-15 2022-01-07 北京达佳互联信息技术有限公司 视频编解码中无损编解码的信令
WO2020209479A1 (ko) * 2019-04-08 2020-10-15 엘지전자 주식회사 시그널링 된 정보에 기반한 픽처 파티셔닝 방법 및 장치
WO2020237072A1 (en) * 2019-05-23 2020-11-26 Vid Scale, Inc. Video-based point cloud streams
GB2584295A (en) * 2019-05-28 2020-12-02 Canon Kk Method and apparatus for encoding and decoding a video bitstream for merging regions of interest
CN112930683A (zh) 2019-06-20 2021-06-08 株式会社 Xris 用于对图像信号进行编码/解码的方法及其设备
EP3987792A4 (en) * 2019-06-21 2022-09-28 Telefonaktiebolaget Lm Ericsson (Publ) VIDEO CODING LAYER RATE INCREASED INDICATION
US11425388B2 (en) 2020-04-05 2022-08-23 Mediatek Inc. Methods and apparatuses of coding pictures with CTU based slice partitions in video coding system
GB2597642B (en) * 2020-06-16 2023-08-02 Canon Kk Method, device, and computer program for encapsulating media data into a media file
EP3972278A1 (en) * 2020-09-17 2022-03-23 Lemon Inc. Subpicture tracks in coded video
US20220086387A1 (en) 2020-09-17 2022-03-17 Lemon Inc. Subpicture entity groups in video coding
CN116601963A (zh) * 2020-12-17 2023-08-15 Lg电子株式会社 生成/接收包括nal单元阵列信息的媒体文件的方法和装置及发送媒体文件的方法
US20240205409A1 (en) * 2021-04-19 2024-06-20 Lg Electronics Inc. Method and device for generating/receiving media file on basis of eos sample group, and method for transmitting media file

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010007513A1 (en) * 2008-07-16 2010-01-21 Nokia Corporation Method and apparatus for track and track subset grouping
US20150023406A1 (en) * 2012-01-30 2015-01-22 Samsung Electronics Co., Ltd. Method and apparatus for video encoding for each spatial sub-area, and method and apparatus for video decoding for each spatial sub-area
WO2015011109A1 (en) * 2013-07-23 2015-01-29 Canon Kabushiki Kaisha Method, device, and computer program for encapsulating partitioned timed media data using a generic signaling for coding dependencies
US20150110118A1 (en) * 2013-10-22 2015-04-23 Canon Kabushiki Kaisha Method of processing disordered frame portion data units

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7777812B2 (en) * 2005-11-18 2010-08-17 Sharp Laboratories Of America, Inc. Methods and systems for picture resampling
US8023569B2 (en) * 2005-12-15 2011-09-20 Sharp Laboratories Of America, Inc. Methods and systems for block-based residual upsampling
US7991236B2 (en) * 2006-10-16 2011-08-02 Nokia Corporation Discardable lower layer adaptations in scalable video coding
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
FR2932637B1 (fr) * 2008-06-17 2010-08-20 Canon Kk Procede et dispositif de codage d'une sequence d'images
US8380790B2 (en) * 2008-12-15 2013-02-19 Microsoft Corporation Video conference rate matching
US20100225655A1 (en) * 2009-03-06 2010-09-09 Microsoft Corporation Concurrent Encoding/Decoding of Tiled Data
KR101504887B1 (ko) * 2009-10-23 2015-03-24 삼성전자 주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
WO2011126283A2 (en) * 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video based on internal bit depth increment, and method and apparatus for decoding video based on internal bit depth increment
SI2953356T1 (sl) * 2010-08-17 2018-12-31 Samsung Electronics Co., Ltd Postopek dekodiranja videa z uporabo transformacijske enote z variabilno drevesno strukturo
US20120114034A1 (en) * 2010-11-08 2012-05-10 Mediatek Inc. Method and Apparatus of Delta Quantization Parameter Processing for High Efficiency Video Coding
KR20120118781A (ko) * 2011-04-19 2012-10-29 삼성전자주식회사 다시점 비디오를 위한 단일화된 스케일러블 비디오 부호화 방법 및 그 장치, 다시점 비디오를 위한 단일화된 스케일러블 비디오 복호화 방법 및 그 장치
US10237565B2 (en) * 2011-08-01 2019-03-19 Qualcomm Incorporated Coding parameter sets for various dimensions in video coding
US9077998B2 (en) * 2011-11-04 2015-07-07 Qualcomm Incorporated Padding of segments in coded slice NAL units
US10349077B2 (en) * 2011-11-21 2019-07-09 Canon Kabushiki Kaisha Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and storage medium
EP2792146A4 (en) * 2011-12-17 2015-12-09 Dolby Lab Licensing Corp ENHANCED RESOLUTION VIDEO DISTRIBUTION COMPATIBLE WITH A FRAME, INTERLACED, MULTILAYER
US20130208808A1 (en) * 2012-02-08 2013-08-15 Panasonic Corporation Image coding method and image decoding method
PT2842313T (pt) * 2012-04-13 2016-12-22 Ge Video Compression Llc Fluxo de dados escaláveis e entidade de rede
US9736476B2 (en) * 2012-04-27 2017-08-15 Qualcomm Incorporated Full random access from clean random access pictures in video coding
US9621905B2 (en) * 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
US10785482B2 (en) * 2012-09-24 2020-09-22 Texas Instruments Incorporated Method and system for constraining tile processing overhead in video coding
AU2014231403A1 (en) * 2013-03-12 2015-07-16 Hfi Innovation Inc. Inter-layer motion vector scaling for scalable video coding
CN105874792B (zh) * 2014-01-02 2020-03-03 Vid拓展公司 用于混合的交错和递进内容的可伸缩视频编码的方法
US20160330459A1 (en) * 2014-01-03 2016-11-10 Samsung Electronics Co., Ltd. Method for encoding video and apparatus therefor, and method for decoding video and apparatus therefor using effective parameter delivery
US9918091B2 (en) * 2014-06-20 2018-03-13 Qualcomm Incorporated Systems and methods for assigning a minimum value to a syntax structure in a parameter set
GB2530751A (en) * 2014-09-30 2016-04-06 Sony Corp Video data encoding and decoding
US10034010B2 (en) * 2015-10-14 2018-07-24 Qualcomm Incorporated Alignment of operation point sample group in multi-layer bitstreams file format
US10582201B2 (en) 2016-05-19 2020-03-03 Qualcomm Incorporated Most-interested region in an image
US10291923B2 (en) * 2016-05-24 2019-05-14 Qualcomm Incorporated Mapping of tile grouping and samples in HEVC and L-HEVC file formats

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010007513A1 (en) * 2008-07-16 2010-01-21 Nokia Corporation Method and apparatus for track and track subset grouping
US20150023406A1 (en) * 2012-01-30 2015-01-22 Samsung Electronics Co., Ltd. Method and apparatus for video encoding for each spatial sub-area, and method and apparatus for video decoding for each spatial sub-area
WO2015011109A1 (en) * 2013-07-23 2015-01-29 Canon Kabushiki Kaisha Method, device, and computer program for encapsulating partitioned timed media data using a generic signaling for coding dependencies
US20150110118A1 (en) * 2013-10-22 2015-04-23 Canon Kabushiki Kaisha Method of processing disordered frame portion data units

Also Published As

Publication number Publication date
KR102485792B1 (ko) 2023-01-05
EP3466078B1 (en) 2020-07-15
CN109155860B (zh) 2021-02-02
AU2017271510A1 (en) 2018-11-01
BR112018073940A2 (pt) 2019-02-26
CN109155860A (zh) 2019-01-04
EP3466078A1 (en) 2019-04-10
JP6932144B2 (ja) 2021-09-08
TWI777953B (zh) 2022-09-21
US10291923B2 (en) 2019-05-14
ES2824770T3 (es) 2021-05-13
US20170347109A1 (en) 2017-11-30
AU2017271510B2 (en) 2021-09-09
WO2017205472A1 (en) 2017-11-30
KR20190010557A (ko) 2019-01-30
TW201743611A (zh) 2017-12-16

Similar Documents

Publication Publication Date Title
US10291923B2 (en) Mapping of tile grouping and samples in HEVC and L-HEVC file formats
US10298938B2 (en) Sample entry and operation point signalling in a layered video file format
US11115669B2 (en) End of sequence and end of bitstream NAL units in separate file tracks
CN108886642B (zh) 在高效率视频写码及分层高效率视频写码文件格式的图块分组的改进
US9621919B2 (en) Multi-layer video file format designs
EP3257262B1 (en) Sample grouping signaling in file formats

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200427

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210630

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: 20210719

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210817

R150 Certificate of patent or registration of utility model

Ref document number: 6932144

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150