JP6735644B2 - 情報処理装置及びその制御方法、コンピュータプログラム - Google Patents

情報処理装置及びその制御方法、コンピュータプログラム Download PDF

Info

Publication number
JP6735644B2
JP6735644B2 JP2016183361A JP2016183361A JP6735644B2 JP 6735644 B2 JP6735644 B2 JP 6735644B2 JP 2016183361 A JP2016183361 A JP 2016183361A JP 2016183361 A JP2016183361 A JP 2016183361A JP 6735644 B2 JP6735644 B2 JP 6735644B2
Authority
JP
Japan
Prior art keywords
projection
push
server
information processing
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016183361A
Other languages
English (en)
Other versions
JP2018049386A5 (ja
JP2018049386A (ja
Inventor
智哉 酒井
智哉 酒井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2016183361A priority Critical patent/JP6735644B2/ja
Priority to CN201780058068.7A priority patent/CN110114759A/zh
Priority to PCT/JP2017/030667 priority patent/WO2018055984A1/ja
Priority to KR1020197010147A priority patent/KR102128798B1/ko
Publication of JP2018049386A publication Critical patent/JP2018049386A/ja
Priority to US16/352,670 priority patent/US10636115B2/en
Publication of JP2018049386A5 publication Critical patent/JP2018049386A5/ja
Application granted granted Critical
Publication of JP6735644B2 publication Critical patent/JP6735644B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/06Topological mapping of higher dimensional structures onto lower dimensional surfaces
    • G06T3/067Reshaping or unfolding 3D tree structures onto 2D planes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/08Projecting images onto non-planar surfaces, e.g. geodetic screens
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1859Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/4061Push-to services, e.g. push-to-talk or push-to-video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Library & Information Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)

Description

本発明は情報処理装置及びその制御方法、コンピュータプログラムに関し、特に、画像データの送信技術に関する。
近年、全天周撮像装置により撮像された全天周映像データを、ユーザへリアルタイムに配信する配信システムが提供されている。特許文献1には、HTTPストリーミング技術を活用して、360度の全天周映像データの配信を行うシステムが記載されている。
一方で、HTTP/2などのプロトコルは、サーバが主導でクライアントへデータをプッシュ送信する手順について規定している。これを、HTTPストリーミングに適用し、セグメントに対する個別的なリクエストを受信しなくてもクライアントの再生に必要なセグメントをプッシュ送信することで、再生までの遅延を低減することが知られている。
特開2016−105593号公報
全天周映像データを送信する場合、サーバは、全天周映像データを二次元平面上に投影(展開)して、配信するセグメントを生成することができる。全天周映像データを二次元平面上に投影する方式としては、複数の方式が存在する。
クライアントによっては、特定の投影方式で投影された全天周映像データの表示処理に対応していない場合がありうる。そのため、サーバが全天周映像データをプッシュ送信してもクライアントが再生できないという課題があった。また、クライアントによっては、サーバによって特定の投影方式で投影された全天周映像データを他の投影方式で投影された全天周映像データに変換する処理に対応していない場合がありうる。そのような場合も、クライアントは、所望の投影方式で投影された全天周映像データを表示することができない。たとえクライアントが、サーバによって特定の投影方式で投影された全天周映像データを他の投影方式で投影された全天周映像データに変換することが可能だったとしても、その変換処理には負荷がかかってしまう。また、投影(展開)されていない全天周映像データの受信をクライアントが望んでいるにも関わらず、サーバが特定の投影方式で投影された全天周映像データを送信してしまうというケースも考えられる。
なお、上記のような課題は、全天周映像データ以外の映像データを送信する場合においても発生しうる。例えば、魚眼レンズで撮影された映像データや、超広角レンズで撮影された映像データについても、その投影方式(展開方式)は、複数存在する。また、全天周映像データのうち、一部の領域の映像データが除かれた部分全天周映像データについても、同様の課題が発生する。複数の投影方式が存在するということは、複数の表示形式が存在するというように言い換えることも可能である。
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、複数の投影方式が存在する画像データをクライアントに適した形式で提供できるようにする技術を提供することである。
上記の目的を達成するため、本発明による情報処理装置は以下の構成を備える。即ち、
像データをサーバ装置から受信する情報処理装置であって、
投影対象画像に対して適用可能な複数の投影方式のうち、1以上の投影方式の識別情報を含むプッシュ指示を生成する生成手段と、
前記生成手段により生成されたプッシュ指示を前記サーバ装置へ送信する送信手段と、
前記送信手段により送信されたプッシュ指示に応じて前記サーバ装置からプッシュ送信された画像データであって、前記プッシュ指示に含まれる識別情報に応じて決定された投影方式によって投影対象画像が投影された画像データを受信する受信手段と
を備えことを特徴とする。

本発明によれば、複数の投影方式が存在する画像データをクライアントに適した形式で提供することができる。
全天周映像データの投影方式の一例を説明する図である。 システム構成図である。 クライアントのハードウェア構成例を示すブロック図である クライアントの機能構成例を示すブロック図である サーバのハードウェア構成例を示すブロック図である サーバの機能構成例を示すブロック図である プッシュ指示の一例である。 MPEG-DASHのMPDファイルの記述方式の一例を示す図である。 プッシュ応答の一例である。 クライアントの動作を示すフローチャートである サーバの動作を示すフローチャートである シーケンスを表すシーケンス図である
以下、本発明の一実施形態に係る通信装置、通信システムについて、添付の図面を参照しながら詳細に説明する。なお、以下の実施形態は特許請求の範囲に関る本発明を限定するものではなく、また、以下の実施形態で説明されている特徴の組み合わせの全てが本発明に必須のものとは限らない。
(全天周映像データ)
図1は、全天周映像データ及びその投影方式の例を示す図である。全天周映像データは、図1(a)の1001に示すように、原点O(1003)を中心とした、周囲(方位角φ=0°〜360°、仰角θ=−90°〜90°)の範囲を撮像した映像データである。全周囲映像データは、全方位映像データ、Virtual Reality(VR)映像データ、360°映像データや、その他異種の呼び方があるが、これらの呼び方に関わらず、本実施形態の構成は適用可能である。なお、本実施形態では三次元空間の全方位に画像を有する全天周画像の画像データとして、映像(動画)を配信する例を説明するが、静止画像を配信するようにしてもよい。すなわち、本実施形態では、全天周映像データという表現を用いて説明するが、この全天周映像データは、映像(動画)であっても、静止画であっても良い。
また、本実施形態の構成が適用することができる映像データの範囲は、1001で示されるような、方位角φ=0°〜360°、仰角θ=−90°〜90°の映像データに限定されない。例えば、方位角φ=0°〜360°、仰角θ=0°〜90°の半球や、その他の任意の方位角、仰角の値を取る映像データに対しても、本実施形態の構成は適用可能である。また、右目用データ、左目用データ、立体視用データなどの全天周映像データに対しても、本実施形態の構成は適用することができる。
撮像された全天周映像データを配信する場合、全天周映像データを二次元平面上に展開する投影処理が行われる。全天周映像データを二次元平面上に投影する方式は、複数の方式が存在する。図1(b)の1005は、全天周映像データ1004を円筒に投影して二次元平面上に展開する、正距円筒図法(Equirectangular)を示している。図1(c)の1007は、全天周映像データ1004を、直方体1006に投影し、その直方体1006を二次元平面に展開する投影方式(Cube)を示している。図1(d)の1009は、全天周映像データ1004を、ピラミッド型の正四角錐(Pyramid)1008に投影し、その正四角錐に投影された全天周映像データを二次元平面に展開する投影方式を示している。このように、全天周画像の展開方式には、全天周画像を円筒、多面体、円錐などに投影して二次元平面に展開する方式が含まれうる。本実施形態は、全天周映像データの投影方式の種類に関わらず適用可能である。つまり、図1に例示した全天周投影方式の例以外の、魚眼、円錐、正多面体などのその他の投影方式に対しても、本実施形態の構成は適用可能である。
一方で、全天周映像データを再生する場合、二次元平面上に展開された全天周映像データに対して、レンダリング処理を行う。
投影処理が行われた全天周映像データは、符号化処理が行われる。本実施形態は、HEVC、AVCやVP8、VP9やその他異種の符号化方式であっても適用可能である。HEVCはHigh Efficiency Video Codingの略称であり、AVCはAdvanced Video Codingの略称である。
また、本実施形態における全天周映像データは複数のタイルに分割されていてもよい。全天周映像データをタイルに分割して符号化する方式には、個々のタイルを個別に符号化する方式や、タイル符号化を用いて符号化する方式あるが、符号化のやり方に関わらず本実施形態は適用可能である。
本実施形態は、スケーラブル符号化方式であるLHEVC、SVC、MVCや、その他異種のスケーラブル符号化方式や階層符号化方式であっても適用可能である。LHEVCはLayered HEVCの略称であり、SVCはScalable Video Codingの略称であり、MVCはMultiview Video Codingの略称である。なお、階層符号化を適用する場合、レイヤ数は2つ以上であっても、本実施形態は適用可能である。
また、階層化とタイル化を組み合わせて適用してもよい。例えば、低画質であるベースレイヤはタイル化せず全天周映像データの全領域を含むように符号化し、高画質であるエンハンスメントレイヤはタイル化を行う。符号化処理が行われた全天周映像データは、動画コンテナに格納される。本実施形態は、ISOBMFF、HEVC FileFormat、MPEG2-TS、CommonMediaApplicationFormat、WebMや、その他異種の動画コンテナフォーマットであっても適用可能である。ISOBMFFのBMFFはBase Media File Formatの略称である。
全天周映像データは、動画コンテナフォーマットに格納される際に、複数の動画ファイルに分割されるセグメント化が行われる。なお、本実施形態において、サーバに格納されている映像データは、複数のファイルにセグメント化されているが、これに限らず単一のファイルに格納されていてもよい。単一のファイルに格納されている場合、クライアントはそのファイルの特定の範囲(バイトレンジ)を指定してセグメントの取得を行う。また、二次元平面上に投影した全天周映像データを、複数の領域に分割し、それぞれの領域毎に、符号化、動画コンテナへの格納、及び、セグメント化を行ってもよい。なお、セグメントとは、映像データを空間的又は時間的に分割した映像データの単位をいう。
本実施形態は、1つの全天周映像データをもとに、複数の投影方式、視野角、解像度、着目領域の組み合わせに対応するために、異なる複数のビットストリームが生成してもよい。この場合、サーバ102は、それぞれのビットストリームをセグメント化したセグメントを保持する。
本実施形態においては、通信プロトコルとしてHTTP/2を使用する例を説明するが、これに限定されない。例えば、SPDY(スピーディー)、QUIC(Quic UDP Internet Connections)やWebSocketなどの通信プロトコルであってもよい。また、プッシュ通信機能を有する通信プロトコルであれば、本実施形態は適用可能である。
本実施形態においてはマニフェストファイルとして、MPEG−DASHで規定されているMPD(Media Presentation Description)を利用する例について説明する。なお、本実施形態は、MPEG−DASHのMPDに限らず、Http LivestreamingやSmooth Streamingなどの、プレイリスト記述を使用する他のプロトコルであっても適用可能である。
(通信システム)
図2は、本実施形態に係る通信システムの構成の一例を示す図である。本実施形態におけるクライアント装置としてのクライアント101は、サーバ102から全天周動画のプッシュ送信を受信する情報処理装置である。クライアント101は、例えば、DTV(Digital TV)、HMD(Head Mount Display)、スマートフォン、タブレット等の表示機能を備える通信装置である。クライアント101はスマートフォン、タブレット、または、PC上のWebブラウザや、その他のインストールされたアプリケーションであってもよい。また、クライアント101は、投影装置を備えたプロジェクタであってもよい。また、クライアント101は、複数の投影装置を備えた、マルチプロジェクタであってもよい。なお、クライアント101は、プロキシ装置、CDN(Contents Deliver Network)など中間装置であっても本実施形態は適用可能である
本実施形態におけるサーバ装置としてのサーバ102は、クライアント101へ全天周動画をプッシュ送信する情報処理装置である。サーバ102は、デジタルカメラ、デジタルビデオカメラ、ネットワークカメラ、プロジェクタ、携帯電話、スマートフォン、PC(パーソナルコンピュータ)、及び、サーバ装置等であり、映像データの送信元であるサーバ装置として機能する。本実施形態では、サーバ102を1台のPCによって実現しているが、クラウド上で分散して配置されていてもよい。
ネットワーク103は、クライアント101とサーバ102との間で通信を行うための通信網である。ネットワーク103には、クライアント101とサーバ102とが接続される。本実施形態は、ネットワーク103の形態により限定されない。例えば、ネットワーク103は、LAN(Local Area Network)やWAN(Wide Area Network)、公衆移動体通信であるLTE(Long Term Evolution),又はそれらの組み合わせにより接続される。LANはLocal Area Networkの略称であり、WANはWide Area Networkの略称である。LTEはLong Term Evolutionの略称である。LANとしては、例えばEthernet(登録商標)に則った有線LANや、IEEE(Institute of Electrical and Electronics Engineers)802.11シリーズに則った無線LANなどが用いられる。WANとしては、例えばインターネットなどが用いられる。なお、クライアント101とサーバ102は、ネットワーク103を介さずに、直接接続されてもよい。例えば、無線アドホックネットワークを用いて、クライアント101とサーバ102が通信するようにしてもよい。
(クライアント)
図3は、クライアント101のハードウェア構成例を示すブロック図である。図3において、制御部201は、クライアント101における動作を統括的に制御する中央演算処理装置(CPU)であり、システムバス211を介して、各構成部(202、205、206、208、209)を制御する。
記憶部202は、各種データを記憶し管理する記憶装置である。記憶部202は、例えば、ハードディスク、SSD(ソリッドステートドライブ)等のストレージ装置や、RAM(書込み可能メモリ)、ROM(読出し専用メモリ)等により構成される。
表示部205は、制御部201の制御下で各種表示を行う。表示部205は、例えば、液晶パネル、有機ELディスプレイ等により構成される。操作部206は、ユーザからの操作を受け付ける。操作部206は、例えば、タッチパネル、キーボード、ポインティング装置により構成される。
復号化部208は、映像データの復号化処理を行う。本実施形態では、復号化部208を専用の論理回路により実現する例を説明するが、制御部201がコンピュータプログラムに基づきクライアント101全体を制御することで、復号化部208を実現してもよい。
通信部209は、無線LANインターフェース210を制御し、各種通信処理を制御する。210は、無線LANインターフェースである。なお、本実施形態では、無線LANインターフェースを介して、無線LAN通信を行っているが、これに限らず、有線LANインターフェース、または、公衆移動体通信インターフェースを介した通信であってもよい。また、これらの通信方式に限定されず、Bluetooth(登録商標)などの他の無線方式により通信を行ってもよい。また、これらのインターフェースを複数備えていてもよい。なお、本実施形態では、映像データを表示する表示部205がクライアント101の構成要素として1つのハードウェアに含まれているが、クライアント101の外部の表示装置をインターフェースを介して接続するようにしてもよい。例えば、表示部205は、HDMI(登録商標)などで接続された、ディスプレイ、テレビ等の表示機能を備える装置であっても、本実施形態は適用可能である。
図4は、クライアント101の機能構成例を示すブロック図である。なお、本実施形態では、以下に示す各機能ブロックの機能は、制御部201のCPU(不図示)が記憶部202のメモリ(不図示)に格納されているソフトウェアプログラム(コンピュータプログラム)を実行することにより実現される。ただし、各機能ブロックに含まれる一部または全部がハードウェア化されていてもよい。
図4において、通信制御部301は、通信部209を介して通信を制御する。表示制御部302は、レンダリング処理部314がレンダリング処理を行った全天周映像データを、表示部205を介して表示する。また、表示制御部302は、ユーザからの操作を受け付けるためのUI(ユーザインタフェース)を表示する。表示部205は、ユーザに対して、全天周映像データを視聴するかどうかの選択肢を出すボタン、ダイアログ、またはその他のメッセージを表示することができる。操作制御部303は、操作部206を制御しユーザからの操作を受け付ける。記憶制御部304は、記憶部202を制御し、処理データ、または映像データ等のデータの記憶や削除等を行う。
TCP/IP通信制御部305は、通信部209を利用して、サーバ102との間で、TCP/IP(Transmission Control Protocol/Internet Protocol)方式の通信制御を行う。なお、本実施形態ではTCP/IP通信を利用する例を示すが、これに限らず、UDP(User Datagram Protocol)を利用してもよい。セグメント解析部306は、サーバ102から取得した映像データであるセグメントをデコードする。
プレイリスト解析部307は、サーバ102から取得したMPDファイルに記述されたプレイリストを解析する。プレイリストには、特定のタイミングに、特定のセグメントにアクセスするためのURL(Uniform Resource Locator)が記述されている。また、MPDファイルには、セグメントが全天周映像データかどうかを表す識別子、特定のセグメントに適用された投影方式、セグメントの視野角といった情報が記述されていてもよい。なお、本実施形態は、セグメントの情報をプレイリストに記述してクライアントに渡しているが、この方式に限定されない。例えば、これらのパラメータをHTMLファイルや、javascriptファイルなどのファイルを解析して取得してもよい。
HTTP/2通信処理部308は、HTTP/2(Hyper Text Transfer Protocol version 2)において規定されるクライアントとしての通信処理を行う。HTTP/2通信処理部308は、プッシュ指示をサーバに通知する。プッシュ指示とは、クライアントとサーバの間で、サーバのプッシュの振る舞いについて交渉を行う公知の手順である。
プッシュポリシーは、Accept-Push-Policy Header Field(https://tools.ietf.org/html/draft−ruellan−http−accept−push−policy−02)に詳細な記述がある。クライアント101はサーバ102に対して、“accept−push−policy”というヘッダフィールドを送信する。クライアントはこのヘッダフィールドに、クライアントにとって好ましいサーバの振る舞いを設定して送信する。サーバは、クライアントから受け取ったプッシュポリシーに対して、サーバが選択したサーバの振る舞いを“push−policy”というヘッダフィールドに設定して送信する。
本実施形態では、クライアント101はHTTPリクエストにaccept−push−policyというプッシュポリシーを要求するためのヘッダフィールドを使用するが、ヘッダフィールドの名前はこれに限定されない。また、accept−push−policyには、1つまたは複数のプッシュポリシーを含めることができる。
再生制御部309は、復号化部208を通じて、受信したセグメントの復号処理を行う。能力取得部310は、クライアント101の処理能力に関する情報を取得する。クライアント101の処理能力には、例えば、クライアント101がレンダリング処理を実行可能な全天周映像データの投影方式、表示部205に表示可能な視野角、画面サイズ等の表示処理に関連する情報等が含まれる。能力取得部310が取得する能力情報はこれらに限定されず、その他の取得した全て周映像データの再生に必要となる情報を含んでいてもよい。
着目領域取得部312は、クライアント101が視聴する全天周映像データの着目領域を取得する。着目領域取得部312は極座標を用いて着目領域を取得してもよいし、二次元平面に投影処理が行われた後の領域を二次元平面の座標で取得してもよい。また、サーバ102が推奨する着目領域を、クライアント101が取得したい着目領域としてもよい。サーバ102の推奨する領域とは、サーバ側が選択した領域であってもよいし、多数のユーザが視聴を行っている領域でもよい。
プッシュ指示生成部313は、クライアント101がサーバ102に行うプッシュ指示の内容を生成する。プッシュ指示生成部313が、全天周映像データを要求するために生成するプッシュ指示の例は、図7を参照して後述する。
レンダリング処理部314は、取得したセグメントに対して、投影方式に基づいたレンダリング処理を行い、全天周映像データを復元する。プッシュ応答解析部315は、プッシュ応答の解析を行い、サーバ102がプッシュ送信するセグメントが、全天周映像データであるかどうかの情報を取得する。また、プッシュ応答解析部315は、プッシュ応答の解析を行い、サーバ102がプッシュ送信するセグメントの投影方式や、領域情報を取得する。
(サーバ)
図5は、サーバ102のハードウェア構成例を示すブロック図である。図5において、制御部401は、サーバ102における動作を統括的に制御する中央演算処理装置(CPU)であり、システムバス411を介して、各構成部(402、405〜409)を制御する。
記憶部402は、各種データを記憶し管理する記憶装置である。記憶部402は、例えば、ハードディスク、SSD等のストレージ装置や、RAM、ROM等により構成される。
表示部405は、制御部401の制御下で各種表示を行う。表示部405は、例えば、液晶パネル、有機ELディスプレイ等により構成される。操作部406は、ユーザからの操作を受け付ける。操作部406は、例えば、タッチパネル、キーボード、ポインティング装置により構成される。撮像部407は、映像データの撮像を行う撮像装置である。撮像部407は、例えば、CCD(Charge Coupled Device)センサ等により実現される。
符号化部408は、映像データの符号化処理を行う。本実施形態では、符号化部408を専用の論理回路により実現する例を説明するが、制御部401がコンピュータプログラムに基づきサーバ102全体を制御することで、符号化部408を実現してもよい。
通信部409は、有線LANインターフェース410を制御し、各種通信処理を制御する。410は、有線LANインターフェースである。なお、本実施形態では、通信制御部が有線LANインターフェースを制御する例を説明するが、これに限らず、無線LANインターフェース、または、公衆移動体通信インターフェースを制御して通信を行ってもよい。また、これらの通信方式に限定されず、Bluetoothなど他の通信方式により通信を行ってもよい。
なお、本実施形態では、サーバ102が映像データの撮像を行う例を説明するが、サーバ102は全天周映像データを他の装置から取得してもよい。また、本実施形態では一台のサーバ装置が取得した映像データを使用する例を説明するが、これに限らず、サーバ102は複数の機器から取得した映像データを元に映像データを生成してもよい。また、サーバ102は複数の機器から取得した映像データをもとに生成された映像データを、他の機器から取得してもよい。なお、本実施形態では、サーバ102が、符号化部408を含んでいるが、サーバ102は他の装置から符号化済みのデータを取得してもよい。
図6は、サーバ102の機能構成例を示すブロック図である。図6において、通信制御部501は、通信部409を介して通信を制御する。表示制御部502は、表示部405を介して、ユーザからの操作を受け付けるためのUIを表示してもよい。操作制御部503は、操作部406を制御し、ユーザからの操作を受け付ける。TCP/IP通信制御部505は、通信部409を利用して、クライアント101との間で、TCP/IP方式の通信制御を行う。なお、本実施形態ではTCP/IP通信を利用する例を示すが、これに限らず、UDPを利用してもよい。
HTTP/2通信処理部506は、HTTP/2において規定されるサーバとして通信処理を行う。HTTP/2通信処理部506は、プッシュ応答生成部512が生成したプッシュ応答を付与し、HTTPレスポンスを送信する。HTTP/2通信処理部506はプッシュ応答をクライアントに送信する場合、“push−policy”というヘッダフィールドを使用する。サーバ102はクライアント101から受信した“accept−push−policy”ヘッダフィールドを含むHTTPリクエストへのレスポンスに、“push−policy”ヘッダを付与する。サーバ102は“push−policy”ヘッダフィールドに対して、クライアント101へのプッシュ応答を記載する。本実施形態では、HTTPレスポンスにプッシュ応答を付与する時に、“push−policy”ヘッダフィールドを使用するが、これに限らず、他のヘッダを用いてもよいし、レスポンスボディにプッシュ応答を含めてもよい。
セグメント生成部507は、投影処理部510によって投影処理を行った全天周映像データから、クライアント101へ送信するセグメントを生成する。セグメント生成部507は、1つの全天周映像データを投影処理した映像データに対して、複数の異なるビットレート、解像度のセグメントを生成してもよい。また、セグメント生成部507は、複数の異なる投影処理方式によって投影された映像データに対して、それぞれセグメントを生成してもよい。なお、サーバ102が送信するセグメントは、他の装置が生成したセグメントであってもよい。
プレイリスト生成部508は、クライアントが、映像データの取得に使用するプレイリストを生成する。プレイリストには特定のタイミングで特定のセグメントにアクセスするためのURLを記述する。また、プレイリストには、特定のセグメントが、どの撮影方式で投影されたセグメントであるかの情報や、セグメントの視野角の情報などを記述する。なお、本実施形態では、各レイヤのセグメントの情報を、プレイリストに記述しているが、これに限定されず、HTMLファイルや、javascriptファイルに記述してもよい。なお、サーバ102が送信するプレイリストは、他の装置で生成されたものであってもよい。
プッシュ指示解析部509は、クライアントから受信したリクエストに付与されているプッシュ指示の内容を解析する。クライアントから受信するプッシュ指示には、クライアントが処理可能な全天周映像データの投影方式、クライアントの視野角、及び、クライアントの画面領域などが含まれる。なお、プッシュ指示解析部509は、DASH with Server Push and Websockets(23009−6)などで規定されているプッシュ指示の解析も行う。
投影処理部510は、撮像部407が撮影した映像データの2次元平面上への投影処理を行う。なお、サーバ102は、全天周映像データに対して、複数の投影処理方式を適用し、別々の映像データを生成してもよい。また、サーバ102は、他の装置によって投影処理が行われた映像データを使用してもよい。
セグメント選択部511は、クライアント101から受信したプッシュ指示に基づき、プッシュ送信する初期化セグメント及びメディアセグメントを選択する。なお、本実施形態では、初期化セグメント及びメディアセグメントを選択する例を説明するが、初期化セグメントのみを選択してもよい。
プッシュ応答生成部512は、クライアントから受信したプッシュ指示に対する応答を生成する。プッシュ応答生成部512は、クライアントから受信したプッシュ指示に対して、サーバ102がプッシュ送信を行うセグメントの情報を記載する。プッシュ応答の具体例は図9を参照して後述する。
(プッシュ指示)
図7は、クライアント101が生成するプッシュ指示の例を示す図である。なお、本実施形態におけるプッシュ指示は、一例であり、プッシュ指示の中身、文法、及び、記法は、これらに限定されない。
901は、全天周映像データのプッシュ要求を含む、プッシュ指示の例である。これにより、クライアント101はサーバ102に対して全天周映像データのプッシュ送信を指示することができる。
「“urn:mpeg:dash:fdh:201x:push-fast-start”」は、このプッシュ指示が、MPEG−DASHのスキームにより示されるバージョンに対応していることを示す識別子である。この識別子は、MPDリクエストにプッシュ指示が付与されていることを示す。なお、識別子の記述方式はこの方式に限定されない。
「format =“vr”」はサーバ102に対して、全天周映像データのプッシュを指示するプッシュ指示である。なお、全天周映像データのプッシュを指示するプッシュ指示は、「format」や「vr」を用いた記法に限定されない。例えば、「media=“vr”」と指定してもよいし、「format=“omnidirectional”」という指定を行ってもよい。
なお、全天周映像データのプッシュ要求は、右目用データ、左目用データ、立体使用データ、を指示する識別子を記述してもよい。この場合、「format =“vr, stereoscopic”」と指定すると、立体視用のデータをプッシュするプッシュ指示となる。また、「format=“vr, right, left”」と記述すると、右目用データと左目用のデータの両方をプッシュするプッシュ指示となる。全天周映像データをプッシュするプッシュ指示は、例えば、
・Omnidirectional Media Application Format(23000−20)。
・DASH with Server Push and Websockets(23009−6)
などの各種標準仕様書に規定されている、指示子、識別子、パラメータを用いて記述してもよい。
902は、全天周映像データの投影方式を指示するプッシュ指示の例である。投影方式を指示することにより、クライアント101は、サーバ102に、クライアントが処理可能である投影方式を指示することができる。その結果、クライアント101は、自身が再生可能である全天周映像データのセグメントをサーバ102から受信できる可能性を高めることができる。投影方式は複数の種類を指定してもよいし、1つだけ指定してもよい。
「projection_type=“cube,equirectangular”」は、クライアントが対応している全天周映像データの投影方式を指示する識別子である。本例では、投影方式として、キューブ(cube)と正距円筒図法(equirectangular)にクライアントが対応していることを示す。なお、クライアントが対応している全天周映像データの投影方式を指示する識別子の記法はこれに限定されない。例えば、「projection_type」に限らず、「projection」や、「mapping」といったその他の記述方式を用いてもよい。
また、クライアントが対応している全天周映像データの投影方式は、「cube」、「equirectangular」などの具体的な投影方式を指示するやり方に限定されない。例えば、「equirectangular:0」、「cube:1」、「pyramid:2」のように、投影方式に対応する番号を予め定義し、その番号を通知してもよい。つまり「projection_type=“0,1”」のように記述してもよい。
なお、本実施形態では、投影方式を指定しているが、これに加えて、投影後の図形の領域を指定してもよい。例えば、直方体に投影を行った場合、直方体の面を表す情報を付与してもよい。例えば、「projection_type=“cube,front”」のように記述する。この場合、直方体の正面に投影されたセグメントのプッシュを指示するように要求する。なお、本実施形態では、frontと記述しているが、直方体の6つの面に値、又は識別子を割り当て、それらを指定してもよい。例えば、frontに“0”、または“f”を割り当てると、「projection_type=“cube,0”」、「projection_type=“cube,f”」のように記述できる。
なお、投影方式の種類と、投影方式毎に異なる領域を指示する方式は、例えば、
・Omnidirectional Media Application Format(23000−20)。
・DASH with Server Push and Websockets(23009−6)。
などの各種標準仕様書に規定されている、指示子、識別子、パラメータを用いて記述してもよい。
903は、全天周映像データの着目領域を指示するプッシュ指示の例である。着目領域を指示することにより、クライアントは、ユーザが所望する着目領域のセグメントを受信できる可能性を高めることができる。「vr_view=“180,90”」は、方位角が180°、仰角90°の着目領域を要求するプッシュ指示である。本実施形態では、方位角、仰角の順番でプッシュ指示を送っているが、この順番に限定されない。この場合、サーバが規定する原点(0°)から180°までの方位角と、サーバが規定する原点(0°)から90°までの仰角が着目領域であることを示す。
また、903の例では方位角と仰角の2つの値を与えているが、着目領域を指示する方式はこれに限らず、方位角の始点、方位角の終点、仰角の始点、仰角の終点の4つの値を与えてもよい。例えば、「vr_view=30,180,-20,90」と記述する。これは、方位角が30°から180°、仰角が-20°から90°の全天周映像データを要求するプッシュ指示となる。なお、4つの値を与える記述方式はこれに限定されない。
また、本実施形態では、方位角と仰角の2つの値を与えているが、これに限らず、方位角、または、仰角のどちらか1つの値を与えてもよい。方位角のみを与える場合、「vr_view=H_FOV=180」のように、サーバが規定する原点(0°)からの方位角を規定する方式や、「vr_view=H_FOV,-30,180」のように、方位角の始点と方位角の終点を指示してもよい。なお、vr_viewやH_FOVといった記述方式はこの記述方式に限定されない。仰角のみを与える場合、「vr_view=V_FOV=90」のように、サーバが規定する原点(0°)からの仰角を規定する方式や、「vr_view=V_FOV,-20,90」のように、仰角の始点と、方位角の終点を指示してもよい。なお、vr_viewやV_FOVといった記述方式はこの記述方式に限定されない。
また、本実施形態では、本実施形態では、方位角、仰角の組み合わせで着目領域を指定しているが、これに限定されず、X,Y,Z軸の回転軸(yaw, pitch, roll)の回転角度の中から1つ以上パラメータを選択して、指定してもよい。例えば、「vr_view=yaw=90, pitch=90, roll=90」のように指定できる。また、着目領域を指示する方式は、画面内のピクセルの相対座標であってもよい。例えば、「vr_view=0,0, 640, 480」と記述することができる。これは、全天周映像データを2次元平面に投影した場合に、例えば左上の座標から640×480ピクセル分の領域を含むセグメントのプッシュ指示を行うことになる。
また、着目領域を指示する方式は、例えば、
・Omnidirectional Media Application Format(23000−20)。
・DASH with Server Push and Websockets(23009−6)。
などの各種標準仕様書に規定されている、全天周映像データの領域を指定する、指示子、識別子、パラメータを用いて記述してもよい。
また、本実施形態では、クライアント101が方位角、仰角を指定しているが、サーバが推奨する領域を取得するように、プッシュ指示を出してもよい。例えば、”vr_view=optimalViewPoint”と記述する。これにより、サーバ側が、クライアントに見せたい着目領域を送信するように指示することができる。なお、着目領域は、複数の領域を指定してもよい。
904は、全天周映像データのプッシュ要求と、全天周映像データの投影方式を指示するプッシュ指示の組み合わせの例である。904では、「format=“vr”」により全天周映像データのプッシュ要求を行い、「projection_type=“cube,equirectangular”」により投影方式の指示を行っている。
905は、全天周映像データを要求するプッシュ指示と、全天周映像データの着目領域を指示するプッシュ指示の組み合わせの例である。905では、「format=“vr”」により全天周映像データのプッシュ要求を行い、「vr_view=“180,90”」により、方位角が180°、仰角90°の着目領域を指示している。
906は、全天周映像データの投影方式を指示するプッシュ指示と、全天周映像データの着目領域を指示するプッシュ指示の例である。906では、「projection_type=“cube,equirectangular”」により投影方式の指示を行い、「vr_view=“180,90”」により、方位角が180°、仰角90°の着目領域を指示している。
なお、全天周映像データの着目領域は、投影方式毎に指定してもよい。例えば、「projection_type=“cube,equirectangular” ; vr_view=“cube,front, equirectangular,360,180”」と記述することができる。この場合、直方体に投影したセグメントは、正面のセグメントをプッシュ送信するように指示し、正距円筒図法で投影したセグメントは方位角360°、仰角180の全ての領域を含むように、プッシュ送信を指示する。
また、ある投影方式には着目領域を指定し、別の投影方式には着目領域を指定しなくてもよい。例えば、「projection_type=“cube,equirectangular” ; vr_view=“cube,front, equirectangular”」と記述することができる。この場合、直方体に投影したセグメントは、正面のセグメントをプッシュ送信することを通知し、正距円筒図法で投影したセグメント角180の全ての領域を含むセグメントをプッシュ送信することを通知する。
907は、全天周映像データのプッシュ要求を含むプッシュ指示と、全天周映像データの投影方式を指示するプッシュ指示と、全天周映像データの着目領域を指示するプッシュ指示の組み合わせの例である。
904〜907で示したように、複数のプッシュ指示を組み合わせることで、クライアントにとって適した全天周映像データのセグメントを受信できる可能性をさらに高めることができる。
908は、全天周映像データをプッシュせず、2次元の映像データセグメントを送信するように要求するプッシュ指示の例である。これにより、サーバ102に対して、明示的に全天周映像データの再生に対応していないことを通知することができる。「format =“2d”」はサーバ102に対して、全天周映像データをプッシュせず、2次元の映像データセグメントを送信するように要求するプッシュ指示である。なお、全天周映像データをプッシュせずに、2次元の映像データをプッシュするように要求するため記法は、この記法に限定されない。
また、2次元の映像データセグメントを送信するように要求するプッシュ指示は、例えば、
・Omnidirectional Media Application Format(23000−20)。
・DASH with Server Push and Websockets(23009−6)。
などの各種標準仕様書に規定されている、指示子、識別子、パラメータを用いて記述してもよい。なお、二次元の映像データセグメントは、全天周映像データが複数の動画をスティッチングされて生成された場合、スティッチング前の動画データのいずれかであってもよい。
(MPDファイル)
図8は、サーバ102がクライアント101へ送信するMPDファイルの一例を示す図である。クライアント101は、サーバ102から受信したセグメントのURLと、MPDファイルの内容から、受信したセグメントが全天周映像データかどうかを判断する。また、クライアント101は、サーバ102から受信したセグメントのURLと、MPDファイルの内容から、投影方式、着目領域を判断する。
1101は、全天周映像データであることを示すMPDファイルの例を示している。1102において、SupplementalPropertyに”SchemeIdUri”を与えることにより、クライアント101は、このAdaptationSetに記述されているセグメントが全天周映像データであることを理解することができる。
1103は、MPDファイルの別の例を示している。この例では、あるAdaptationSetに含まれるセグメントが、Cubeの投影方式を用いて処理されたものであり、方位角180度、仰角120度の範囲の映像データを含んでいることを意味する(1104)。
なお、ここで紹介したMPDファイルの記述方式は一例であり、MPDファイルの記述方式はこれらの方式に限定されない。
クライアント101は、プッシュ送信されたセグメントのURLと、MPDファイルから、プッシュ送信されたセグメントの投影処理方式、そのセグメントがどの投影方式で処理されたのかを判断する。
(プッシュ応答)
図9は、サーバ102が生成するプッシュ応答の例を示す。なお、本実施形態におけるプッシュ応答は一例であり、プッシュ応答の中身、文法、及び、記法はこれらに限定されない。
1201は、全天周映像データを送信すること通知するプッシュ応答の例である。これにより、クライアント101に対してプッシュ送信するセグメントが、全天周映像データであることを通知することができる。
「urn:mpeg:dash:fdh:201x:push-fast-start」は、このプッシュ応答が、MPEG−DASHの当該スキームにより示されるバージョンに対応していることを示す識別子である。この識別子は、この識別子が付与されているMPDレスポンスはプッシュ応答が付与されていることを示す。
「format =“vr”」はクライアント101に対して、全天周映像データのプッシュ送信をすることを通知するプッシュ応答である。なお、全天周映像データのプッシュ送信をすることを通知するプッシュ応答は、この記法に限定されない。
全天周映像データのプッシュ応答は、右目用データ、左目用データ、立体使用データ、を指示する識別子を記述してもよい。この場合、例えば、「format =“vr, stereoscopic”」と指定すると、立体視用のデータをプッシュ送信するプッシュ応答となる。また、「format =“vr, right, left”」と記述すると、右目用データと左目用のデータの両方をプッシュ送信するプッシュ指示となる。
全天周映像データをプッシュ送信するプッシュ応答は、例えば、
・Omnidirectional Media Application Format(23000−20)。
・DASH with Server Push and Websockets(23009−6)。
などの各種標準仕様書に規定されている、指示子、識別子、パラメータを用いて記述してもよい。
サーバ102は1201で示すようなプッシュ指示を受信した場合、1つの投影方式で生成された複数のセグメントをプッシュ送信してもよいし、複数の投影方式により生成された複数のセグメントをプッシュ送信してもよい。また、サーバ102は、ある着目領域を含むセグメントをプッシュ送信してもよいし、全天周映像データの全領域を含むセグメントの組み合わせを選んでプッシュ送信してもよい。
1202は、全天周映像データの投影方式を通知するプッシュ応答の例である。投影方式を通知することにより、クライアントは、MPDを解析せずに、プッシュ送信されるセグメントの投影方式を知ることが可能となる。その結果、再生までの時間を短縮することができる。
「projection_type=“cube,equirectangular”」は、サーバ102がプッシュ送信するセグメントの全天周映像データの投影方式を表す識別子である。本例では、投影方式として、キューブと正距円筒図法のセグメントをプッシュ送信することを示している。なお、サーバ102がプッシュ送信する全天周映像データの投影方式を指示する識別子の記法はこれに限定されない。
また、サーバ102がプッシュ送信する全天周映像データの投影方式は、「cube」、「equirectangular」などの具体的な投影方式を記述する方式に限定されない。例えば、「equirectangular:0」、「cube:1」、「pyramid:2」のように、投影方式に対応する番号を予め定義し、その番号を通知してもよい。つまり「projection_type=“0,1”」のように記述してもよい。
なお、本実施形態では、投影方式を指定しているが、これに加えて、投影後の図形の領域を指定してもよい。例えば、直方体に投影を行った場合、直方体の面を表す情報を付与してもよい。例えば、「projection_type=“cube,front”」のように記述する。この場合、直方体の正面に投影されたセグメントをプッシュ送信することを意味する。なお、本実施形態では、frontと記述しているが、直方体の6つの面に値、又は識別子を割り当て、それらを指定してもよい。例えば、frontに「0」、または「f」を割り当てると、「projection_type=“cube,0”」、「projection_type=“cube,f”」のように記述できる。
なお、投影方式の種類と、投影方式毎に異なる領域を識別する方式は、例えば、
・Omnidirectional Media Application Format(23000−20)。
・DASH with Server Push and Websockets(23009−6)。
などの各種標準仕様書に規定されている、全天周映像データの投影方式と領域を意味する識別子、パラメータなどを用いて記述してもよい。
サーバ102は、1202のようなプッシュ指示を受信した場合、ある着目領域を含むセグメントをプッシュ送信してもよいし、全天周映像データの全領域を含むセグメントの組み合わせを選んでプッシュ送信してもよい。
1203は、全天周映像データのプッシュ送信する領域を表すプッシュ応答の例である。「vr_view=180,90」は、方位角が180°、仰角90°の着目領域をプッシュ送信するプッシュ応答を示している。本実施形態では、方位角、仰角の順番でプッシュ応答を送っているが、この順番に限定されない。この場合、サーバ102が規定する原点(0°)から180°までの方位角と、サーバ102が規定する原点(0°)から90°までの仰角が着目領域であることを示す。
また、本実施形態では方位角と仰角の2つの値を与えているが、着目領域を指示する方式はこれに限らず、方位角の始点、方位角の終点、仰角の始点、仰角の終点の4つの値を特定して着目領域を示してもよい。例えば、「vr_view=30,180, -20,90」と記述する。これは、方位角が30°から、180°、仰角が-20°から90°の全天周映像データをプッシュ送信するプッシュ応答となる。なお、4つの値を与える記述方式はこのような記法に限定されない。
また、本実施形態では、方位角と仰角の2つの値を与えているが、これに限らず、方位角、または、仰角のどちらか1つの値を与えてもよい。方位角のみを与える場合、例えば、「vr_view=H_FOV=180」のように、サーバが規定する原点(0°)からの方位角を規定する方式により記述してもよい。あるいは、「vr_view=H_FOV,-30,180」のように、方位角の始点と方位角の終点を指示する方式により記述してもよい。なお、vr_viewやH_FOVといった記述方式はこの記述方式に限定されない。仰角のみを与える場合、例えば、「vr_view=V_FOV=90」のように、サーバが規定する原点(0°)からの仰角を規定する方式に記述してもよい。あるいは、「vr_view=V_FOV,-20,90」のように、仰角の始点と、方位角の終点を指示する方式により記述してもよい。なお、vr_viewやV_FOVといった記述方式はこの記述方式に限定されない。
また、本実施形態では、本実施形態では、方位角、仰角の組み合わせで着目領域を指定しているが、これに限定されず、X,Y,Z軸の回転軸(yaw, pitch, roll)の中から1つ以上パラメータを選択して、指定してもよい。例えば、「vr_view=yaw=90, pitch=90, roll=90」のように指定できる。
また、着目領域を指示する方式は、画面内のピクセルの相対座標により着目領域を指示するものであってもよい。例えば、「vr_view=0,0, 640, 480」と記述することができる。これは、全天周映像データを2次元平面に投影した場合に、例えば左上の座標から640×480ピクセル分の領域を含むセグメントのプッシュ指示を行うことになる。
また、着目領域を指示する方式は、例えば、
・Omnidirectional Media Application Format(23000−20)。
・DASH with Server Push and Websockets(23009−6)。
などの各種標準仕様書に規定されている、全天周映像データの領域を指定するパラメータにより記述してもよい。
サーバ102は1203のようなプッシュ指示を受信した場合、1つの投影方式で生成されたセグメントをプッシュ送信してもよいし、複数の投影方式により生成された、複数のセグメントをプッシュ送信してもよい。
1204は、全天周映像データのプッシュ応答と、全天周映像データの投影方式を通知するプッシュ応答の組み合わせの例である。
1205は、全天周映像データをプッシュ送信するプッシュ応答と、全天周映像データの着目領域を指示するプッシュ応答の組み合わせの例である。
1206は、プッシュ送信する全天周映像データの投影方式を通知するプッシュ応答と、プッシュ送信する全天周映像データの着目領域を通知するプッシュ応答の例である。
なお、全天周映像データの着目領域は、投影方式毎に指定してもよい。例えば、「projection_type=“cube,equirectangular” ; vr_view=“cube,front, equirectangular,360,180」と記述することができる。この場合、直方体に投影したセグメントは、正面のセグメントをプッシュ送信するように通知し、正距円筒図法で投影したセグメントは方位角360°、仰角180の全ての領域を含むセグメントをプッシュ送信することを通知する。
また、ある投影方式には着目領域を指定し、別の投影方式には着目領域を指定しなくてもよい。例えば、「projection_type=“cube,equirectangular” ; vr_view=“cube,front, equirectangular”」と記述することができる。この場合、直方体に投影したセグメントは、正面のセグメントをプッシュ送信することを通知し、正距円筒図法で投影したセグメント角180の全ての領域を含むセグメントをプッシュ送信することを通知する。
1207は、全天周映像データをプッシュ送信することを通知するプッシュ応答と、プッシュ送信する全天周映像データの投影方式を通知するプッシュ応答と、プッシュ送信する全天周映像データの着目領域を通知するプッシュ応答の組み合わせの例である。なお、本実施形態では、プッシュ応答として、「urn:mpeg:dash:fdh:201x:push-fast-start」を送信する例を説明しているが、これに限定されず、他の情報をプッシュ応答として送信することもできる。例えば、プッシュ送信するセグメントのURLのリストや、プッシュ送信する複数のセグメントのテンプレートを表すURLテンプレートを、プッシュ応答に含めてもよい。
1208は、全天周映像データをプッシュせず、2次元の映像データセグメントをプッシュ送信することを通知するプッシュ応答の例である。これにより、クライアント101に対して、明示的に全天周映像データの再生に対応していないことを通知することができる。
「format =“2d”」はクライアント101に対して、全天周映像データをプッシュせず、2次元の映像データセグメントをプッシュ送信するように通知するプッシュ応答である。なお、全天周映像データをプッシュせずに、2次元の映像データをプッシュするように通知するプッシュ応答の記法は、この記法に限定されない。
また、2次元の映像データセグメントを送信するように要求するプッシュ指示は、例えば、
・Omnidirectional Media Application Format(23000−20)。
・DASH with Server Push and Websockets(23009−6)。
などの各種標準仕様書に規定されている、指示子、識別子、パラメータにより記述してもよい。
(クライアントの動作)
次に、以上のような構成を備えた本実施形態のクライアント101、サーバ102の動作について説明する。まず、クライアント101の動作について、図10を参照しながら詳細に説明する。図10はクライアント101の動作手順を示すフローチャートである。図10の各ステップは、クライアント101の制御部201がコンピュータプログラムに基づき装置全体を制御することにより実行される。
クライアント101の能力取得部310は、クライアント101が全天周映像データを再生可能であるかを判断する(S601)。クライアント101は、全天周映像データのレンダリング能力があるかを判断してもよいし、ユーザからの操作を受け付けて、全天周映像データの再生が必要かを判断してもよい。全天周映像データを再生可能である場合(S601でYES)はS602へ進み、再生可能でない場合(S601でNO)はS618へ進む。
S602では、クライアント101の能力取得部310は、クライアント101が処理可能である全天周映像データの投影方式を取得する。ここで、能力取得部310は、クライアントが処理可能な複数の投影方式の中から、一部、又は、全ての方式を選択してもよい。後述するようにS606において、クライアント101は選択した投影方式をサーバ102に通知する。複数の投影方式を選択してサーバ102に通知すると、サーバ102は、クライアントが再生可能である投影方式で生成されたセグメントをプッシュ送信できる可能性を高めることができる。
次に、クライアント101の能力取得部310は、クライアント101の表示能力の情報を取得する(S603)。能力取得部310が取得する表示能力は、例えば、クライアント101が表示部205に表示可能である視野角や、クライアント101の画面解像度等が含まれるが、これらに限定されない。
次に、クライアント101の着目領域取得部312は、クライアント101の着目領域を取得する(S604)。
次に、クライアント101のプッシュ指示生成部313は、全天周映像データを取得するためのプッシュ指示を生成する(S605)。プッシュ指示の内容は、図7を参照して前述したとおりである。プッシュ指示は、S602、S603,S604で取得した情報の一部、または、全部を用いて生成される。S602、S603、S604で取得した情報の一部を用いる場合、使用しない情報を取得するためのステップは省略可能である。例えば、サーバ102に対して、処理可能な全天周映像データの投影方式だけを指示する場合、S603、S604は省略可能である。また、プッシュ指示生成部313が生成するプッシュ指示は、全天周映像データを要求するプッシュ指示であってもよい。この場合、S602〜S604の処理は省略可能である。
なお、本実施形態では、プッシュ指示生成部313が生成するプッシュ指示には、全天周映像データの取得に関連する情報が含まれるが、これらの情報に限定されない。例えば、映像データ/音声データを指示するプッシュ指示や、所望のビットレートを指定するプッシュ指示などの複数のプッシュ指示と組み合わせてプッシュ指示を生成してもよい。
次に、クライアント101のHTTP/2通信処理部308は、プッシュ指示生成部313が生成したプッシュ指示を付与したMPDリクエストを送信する(S606)。
次に、クライアント101のHTTP/2通信処理部308は、MPDレスポンスを受信する(S607)。
次に、クライアント101のHTTP/2通信処理部308は、サーバ102がプッシュ送信に対応しているかどうかを判断する(S608)。HTTP/2通信処理部308は、サーバからのMPDレスポンスに、「push−policy」ヘッダフィールドが含まれている場合、サーバ102がプッシュ送信に対応していると判断する。プッシュ応答解析部315は、サーバ102から受信したプッシュ応答が、“push−none”あるいは、プッシュ送信に対応していないことを示す内容である場合、サーバ102がプッシュ送信に対応していないと判断する。また、HTTP/2通信処理部308は、「push−policy」ヘッダが、サーバからのMPDレスポンスに含まれていない場合、サーバがプッシュ送信に対応していないと判断する。サーバ102がプッシュ送信に対応している場合(S608でYES)はS609へ進み、対応していない場合(S608でNO)はS615へ進む。
S609では、クライアント101のプッシュ応答解析部315は、サーバ102のプッシュ応答を解析し、クライアント101が再生可能であるセグメントがプッシュされるかどうかを判断する(S609)。プッシュ応答解析部315は、サーバ102からプッシュされるセグメントの投影方式をレンダリング処理できる場合に、再生可能であると判断する。例えば、プッシュ応答解析部315は、クライアントがCube形式の投影方式を処理可能である場合、サーバからのプッシュ応答にCubeが含まれていれば、再生可能なセグメントがプッシュされると判断する。なお、プッシュ応答に投影方式が含まれていない場合であっても、MPDファイルに記述されている投影方式から、プッシュ送信されるセグメントの投影方式を判断し、再生可能かを判断してもよい。再生可能なセグメントがプッシュ送信される場合(S609でYES)はS610へ進み、送信されない場合(S609でNO)はS615へ進む。
S610では、クライアント101のHTTP/2通信処理部308は、サーバ102からプッシュ送信された初期化セグメント及びメディアセグメントを受信する。
次に、クライアント101のレンダリング処理部314は、受信したセグメントファイルのレンダリング処理を行う(S612)。ここで、レンダリング処理部314は、プッシュで受信したセグメントのURLと、MPDファイル内に記述されている該当セグメントの投影処理方式から、全天周映像データの投影方式を判断し、それに基づきレンダリング処理を行う。
次に、クライアント101の再生制御部309は、表示制御部302を介して、全天周映像データを表示部205に表示する(S613)。そして、処理を終了する。
S608でNO、または、S609でNOと判断した場合、S615において、クライアントは再生可能な初期化セグメント及びメディアセグメントの取得を開始する。そして、S612へ進む。
一方、S601でNOの場合、S618において、クライアント101のプッシュ指示生成部313は、全天周映像データはプッシュせずに、二次元の映像データのプッシュ送信を要求するプッシュ指示を生成する。そして、S606へ進む。S606移行の処理は前述の通りである。
上記のように、クライアント101は、全天周動画等の複数の投影方式が存在する画像データをサーバ102から受信する情報処理装置である。クライアント101は、画像データのプッシュ送信を指示するためのプッシュ指示を生成し、そのプッシュ指示をサーバ102へ送信して、それに応じてサーバ102からプッシュ送信された画像データに係るセグメントを受信する。ここで、クライアント101は、当該クライアント101が再生可能な投影方式に関する情報を含むプッシュ指示を生成する。そのため、サーバ102は、クライアント101が再生可能な投影方式により二次元平面に展開された画像データをセグメントに分割してクライアント101へ送信することができ、クライアント101はそのセグメントを受信して再生することができる。
また、クライアント101は、全天周画像を再生可能でないときは、二次元画像の画像データに係るセグメントのプッシュ送信を指示するためのプッシュ指示を生成して(S618)、サーバ102へ送信する。このため、クライアント101は、その能力に応じて、再生可能な画像データを受信して再生することができる。
また、クライアント101は、画像データの注目領域を示す情報を含むプッシュ指示を生成してサーバ102へ送信する。そのため、クライアント101は、サーバ102からプッシュ送信された注目領域に係るセグメントを受信して再生することが可能である。
(サーバの動作)
次に、サーバ102の動作について、図11を参照しながら詳細に説明する。図11はサーバ102の動作手順を示すフローチャートである。図11の各ステップは、サーバ102の制御部401がコンピュータプログラムに基づき装置全体を制御することにより実行される。
サーバ102のHTTP/2通信処理部506は、クライアント101からMPDリクエストを受信する(S701)。
サーバ102のプッシュ指示解析部509は、MPDリクエストにプッシュ指示が付与されているかどうかを判断する(S702)。プッシュ指示解析部509は、MPDリクエストに「Accept−Push−Policy」ヘッダフィールドが含まれている場合、プッシュ指示が付与されていると判断する。プッシュ指示解析部509は、MPDリクエストに「Accept−Push−Policy」ヘッダフィールドが含まれていない場合、プッシュ指示が付与されていないと判断する。プッシュ指示が付与されている場合(S702でYES)はS703へ進み、付与されていない場合(S702でNO)はS730へ進む。
S703では、サーバ102のプッシュ指示解析部509は、プッシュ指示に全天周映像データのプッシュ指示があるかどうかを判断する。プッシュ指示解析部509は、
・全天周映像データを要求するプッシュ指示。
・全天周映像データの投影方式を指示するプッシュ指示。
・全天周映像データの着目領域を指示するプッシュ指示。
のいずれかを含む場合、全天周映像データのプッシュ指示があると判断する。全天周映像データのプッシュ指示がある場合(S703でYES)はS704へ進み、全天周映像データのプッシュ指示がない場合(S703でNO)はS726へ進む。
S704では、サーバ102のプッシュ指示解析部509は、プッシュ指示に、全天周映像データの投影方式を指示するプッシュ指示が含まれているかを判断する。含まれている場合(S704でYES)はS705へ進み、含まれていない場合(S704でNO)はS716へ進む。
S705では、サーバ102のセグメント選択部511は、プッシュ指示で指示された投影方式で生成されたセグメントを保持しているかを判断する。なお、セグメント選択部は、クライアントから指示された投影方式のうち、少なくとも1つに対応している場合、S705でYESと判断してもよい。指示された投影方式のセグメントを保持している場合(S705でYES)はS706へ進み、保持していない場合(S705でNO)はS726へ進む。
S706では、サーバ102のプッシュ指示解析部509は、プッシュ指示に、全天周映像データの着目領域を指示するプッシュ指示が含まれているかを判断する。着目領域の指示が含まれる場合(S706でYES)はS707へ進み、含まれない場合(S706でNO)はS712へ進む。
S707では、サーバ102のセグメント選択部511は、指示された投影方式で指示された領域をカバーするセグメントを保持するかどうかを判断する。保持している場合(S707でYES)はS708へ進み、保持していない場合(S707でNO)はS712へ進む。
S708では、サーバ102のセグメント選択部511は、指示された投影方式で、指示された着目領域をカバーするセグメントを選択する。そして、サーバ102のプッシュ応答生成部512は、プッシュ応答を生成する(S709)。プッシュ応答生成部512は、セグメント選択部511が選択したセグメントの投影方式と、領域を含むプッシュ応答を生成する。
次に、サーバ102のHTTP/2通信処理部506は、プッシュ応答生成部512が生成したプッシュ応答を付与し、MPDレスポンスを送信する(S710)。なお、サーバ102が選択した投影方式のみを含むMPDファイルを生成して送信してもよい。これにより、クライアント101は再生可能なセグメントのみを含むMPDファイルを処理することになる。その結果、クライアント101のMPDファイルの解析処理負荷を低減することができる。
次に、サーバ102のHTTP/2通信処理部506は、セグメント選択部511が選択したセグメントをプッシュ送信する(S711)。そして、処理を終了する。
一方、S707でNOの場合、S712において、サーバ102のセグメント選択部511は、指示された投影方式で、全天周映像データの全ての領域をカバーするようにセグメントを選択する。次に、サーバ102のプッシュ応答生成部512は、プッシュ応答を生成する(S713)。プッシュ応答生成部512は、セグメント選択部511が選択したセグメントに対応する投影方式を含むプッシュ応答を生成する。なお、プッシュ応答生成部512は、セグメント選択部511が選択したセグメントに対応する領域を、プッシュ応答に含めてもよい。そして、S710へ進む。
また、S704でNOの場合、S716において、サーバ102のプッシュ指示解析部509は、プッシュ指示に、全天周映像データの着目領域を指示するプッシュ指示が含まれているかを判断する。含まれている場合(S716でYES)はS717へ進み、含まれていない場合(S716でNO)はS722へ進む。
S717では、サーバ102のセグメント選択部511は、指示された領域をカバーするセグメントを保持するかどうかを判断する。保持している場合(S717でYES)はS718へ進み、保持していない場合(S717でNO)はS722へ進む。
S718では、サーバ102のセグメント選択部511は、指示された領域をカバーするセグメントを選択する。セグメント選択部511は、複数の投影方式で生成されたセグメントから、1つ、または、複数の投影方式で生成されたセグメントを選んでもよい。
次に、サーバ102のプッシュ応答生成部512は、プッシュ応答を生成する(S719)。プッシュ応答生成部512は、セグメント選択部511が選択したセグメントに対応する投影方式、着目領域を含むプッシュ応答を生成する。そして、S710へ進む。
一方、S722では、サーバ102のセグメント選択部511は、全領域をカバーできるように、全天周映像データのセグメントを選択する。
次に、サーバ102のプッシュ応答生成部512は、S722でセグメント選択部511が選択したセグメントの投影方式、着目領域を含む、プッシュ応答を生成する(S723)。そして、S710へ進む。
S703でNOの場合、S726において、サーバ102のセグメント選択部511は、2次元の映像データセグメント、例えば正距円筒図法で生成されたセグメントを選択する。次に、サーバ102のプッシュ応答生成部512は二次元の映像データセグメントをプッシュすることを通知するプッシュ応答を生成する(S727)。そして、S710へ進む。
また、S702において、MPDリクエストにプッシュ指示が付与されていないと判断された場合(S702でNO)、S730において、サーバ102のHTTP/2通信処理部506はMPDファイルをレスポンスとして送信する(S730)。そして、処理を終了する。
なお、本実施形態では、サーバ102は事前にセグメントのデータを生成して保持している例を説明したが、ライブ配信のようにセグメントをリアルタイムで生成する場合であっても本実施形態は適用可能である。その場合、サーバ102は、クライアントからプッシュ指示のあった投影方式、着目領域のセグメントのみを生成することで、処理負荷の低減を行うことが可能となる。
また、本実施形態では、サーバ102のセグメント選択部511は、初期化セグメントとメディアセグメントを選択しているが、初期化セグメントのみを選択しプッシュ送信する場合であっても本実施形態は適用可能である。
サーバ102の動作について、以下に補足する。
○投影方式の指示がある場合
クライアントからのプッシュ指示に、複数の全天周映像データの投影処理方式が指示されている場合(S708、S712)、複数の異なる投影方式の、1つまたは複数の投影方式に対応するセグメントを選択してもよい。また、ある投影方式に対応するセグメントを選択する場合、ビットストリームの異なる複数のセグメントを選択してもよい。
また、サーバ102は、投影方式毎の圧縮効率や、ファイルサイズなどを基準に、いずれかの投影方式を選択してもよい。
○投影方式の指示がない場合
本実施形態において、投影方式の指定がない場合(S718、S722)、セグメント選択部511は、複数の投影方式で生成されたセグメントを選択してもよいし、単一の投影方式で生成されたセグメントを選択してもよい。
○着目領域の指定がある場合
本実施形態において、着目領域を指定された場合(S708、S718)、着目領域をカバーする複数のセグメント中の1つ、又は、複数のセグメントを選んでもよい。なお、指示された着目領域が複数のビットストリームにまたがる場合、複数のビットストリームを選択し、そのビットストリームのセグメントをプッシュ送信してもよい。
また、指示された着目領域を含むセグメントが複数存在する場合、その中の1つ、または、全部を選択して送信してもよい。例えば、スケーラブル符号化を用いる場合、低解像度の全領域をカバーするセグメントと、高解像度で着目領域をカバーするセグメントを生成することができる。高解像度の着目領域をカバーするセグメントをプッシュ送信すると、クライアント101を使用するユーザは、着目領域を高解像度で視聴できる。低解像度で全領域をカバーするセグメントをプッシュ送信すると、クライアント101を使用するユーザは、着目領域を変更した場合であっても途切れることなく動画の視聴が可能となる。
高解像度と低解像度のセグメント両方をプッシュ送信すると、着目領域の高解像度の視聴と、着目領域を変更した場合に途切れることない動画の視聴の両立が可能となる。
○着目領域の指定がない場合
本実施形態において、着目領域を指示するプッシュ指示がない場合(S712,S722、S726)、セグメント選択部511は、全ての領域をカバーするように、1つまたは複数のセグメントを選択してもよい。セグメント選択部511が全ての領域を含むようにセグメントをプッシュ送信することで、クライアント101は、どの着目領域であってもスムーズに視聴を開始し、スムーズに着目領域を切り替えることができる。
また、セグメント選択部511は、全領域を含むセグメントを選択する代わりに、サーバが推奨する領域のセグメントを選択しプッシュ送信してもよい。ここで、サーバが推奨するセグメントは、全天周映像データのコンテンツを生成者が視聴を推奨する領域であってもよいし、他のユーザのアクセスログから、視聴しているユーザが多い領域を選択してもよい。これにより、クライアント101は、高画質な全天周映像データを視聴することができる。これに加えて、全天周映像データの全領域を含むセグメントをプッシュ送信すると、クライアント101は、高画質な全天周映像データの視聴と、着目領域の切替えをスムーズに視聴することができる。
上記のように、サーバ102は、複数の投影方式が存在する画像データをクライアント101へプッシュ送信する情報処理装置である。サーバ102は、画像データのプッシュ送信を指示するためのプッシュ指示を通信部409により受信したことに応じて、画像データに係るセグメントをクライアント101へプッシュ送信するように通信部409を制御する。ここで、クライアント101が再生可能な投影方式に関する情報がプッシュ指示に含まれる場合に、当該投影方式により二次元平面に投影された画像データのセグメントをクライアント101へプッシュ送信するように通信部409を制御する。そのため、サーバ102は、クライアント101が再生可能な投影方式により二次元平面に展開された画像データをセグメントに分割してクライアント101へ送信することができる。
(通信シーケンス)
次に、図12を参照して、クライアント101とサーバ102の間の通信シーケンスについて説明する。
クライアント101のプッシュ指示生成部313は、全天周映像取得のためのプッシュ指示を生成する(M801)。この処理は、図10のS605またはS618の処理と同様の処理である。
M802では、クライアント101は、サーバ102へ、プッシュ指示を付与したMPDリクエストを送信する。この処理は、クライアント101のS606、及び、サーバ102のS701の処理と同様である。
M803では、サーバ102は、受信したプッシュ指示をもとに、プッシュ送信するセグメントを選択する。この処理は、S708、S712、S718、S722、又は、S726の処理と同様である。
M804では、サーバ102はプッシュ応答を生成する。この処理は、S709、S713、S719、S723、または、S727の処理と同様である。
M805では、サーバ102は、クライアント101へ、プッシュ応答を付与したMPDレスポンスを送信する。この処理は、サーバ102のS710、及び、クライアント101のS607の処理と同様である。
M806では、サーバ102は、クライアント101へ、初期化セグメントをプッシュ送信する。この処理は、クライアント101のS610、及び、サーバ102のS711の処理と同様である。
M807では、サーバ102は、クライアント101へ、メディアセグメントをプッシュ送信する。この処理も、クライアント101のS610、及び、サーバ102のS711と同様の処理である。
M808では、クライアント101は、受信したセグメントをレンダリングする。この処理は、S612と同様の処理である。
M809は、クライアント101は、レンダリングしたセグメントを表示部205に表示して再生する。この処理は、S613と同様の処理である。
クライアント101は、M802において送信したプッシュ指示に基づく全てのセグメントを再生し終えて、さらに別のセグメントを受信する場合、再度、サーバ102へセグメントリクエスト及びプッシュ指示を送信する。すなわち、M810では、クライアント101は、サーバ102に対して、プッシュ指示を付与しセグメントリクエストを送信する。例えば、クライアント101は、ユーザからコンテンツ再生を指示されたような場合に、このようなセグメントリクエストを送信する。
次に、サーバ102は、クライアント101に対して、プッシュ応答を付与し、メディアセグメントを送信する(M811)。さらに、サーバ102は、クライアント101に対して、メディアセグメントをプッシュ送信する(M812)。
以上説明したように、本発明の実施形態によれば、クライアント101は、論理的なストリームを用いて、着目領域と周辺領域の取得を制御する。これにより、ネットワークの帯域を消費しないように、より詳細な制御が可能となる。その結果、ユーザが着目している領域の映像をシームレスに切り替えることができるようになる。
また、本実施形態によれば、クライアント101は、サーバに対して全天周映像データのプッシュ送信を要求するプッシュ指示を送信する。これにより、クライアント101は、サーバ102からプッシュ送信された全天周映像データを受信することで、再生遅延を低減することができる。
さらに、クライアント101は、サーバ102に対して、自身が処理可能な投影方式をプッシュ指示することによって、クライアントが再生可能である全天周映像データを受信できる可能性を高めることができる。その結果、帯域が限られても映像を可能な限りスムーズに視聴可能とすることが可能となる。
さらに、クライアント101は、サーバ102に対して、着目領域を送信する。これにより、クライアントはサーバから、クライアントが所望する領域の全天周映像データを受信できる可能性を高めることができる。その結果、帯域が限られても、着目領域の映像を可能な限りスムーズに視聴することが可能となる。
なお、上述の実施形態では、全天周映像データをプッシュ送信する場合の例を中心に説明したが、全天周映像データ以外の画像データ(静止画像を含む)を送信する場合においても効果が得られる。例えば、魚眼レンズで撮影された画像データや、超広角レンズで撮影された画像データ、及び、全天周画像データのうち、一部の領域の画像データが除かれた部分全天周画像データを送信する場合にも、本実施形態の構成による効果が得られる。また、複数の投影方式(展開方式)が存在するということは、複数の表示形式が存在するというように言い換えることも可能である。このような全天周映像以外の複数の投影方式が存在する画像データについても、その投影方式に関する情報を含むプッシュ指示を送受信することで、クライアントに適した投影方式により二次元平面に展開してプッシュ送信することが可能である。また、図7及び上述の実施形態では、クライアント101が処理可能な投影方式をサーバ102に通知する例を中心に説明したが、この形態に限らない。例えば、クライアント101が処理可能な複数の投影方式のうち、ユーザに選択された投影方式をサーバ102に通知するようにしても良い。また、クライアント101は、投影処理(展開処理)がされていない全天周映像データを要求する場合は、図7のprojection_type=”none”などを記述しても良い。また、クライアント101は、投影処理(展開処理)がされていない全天周映像データを要求する場合に、図7のprojection_typeを省略してプッシュ要求を行うようにしてもよい。この場合、サーバ102は、projection_typeに記述がないプッシュ要求を受信した場合、投影処理がなされていない全天周映像データをクライアント101に対してプッシュ送信する。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
クライアント101、通信部209、能力取得部310、着目領域取得部312、プッシュ指示生成部313、プッシュ応答解析部315、サーバ102、通信部409、プレイリスト生成部508、プッシュ指示解析部509、投影処理部510、セグメント選択部511、プッシュ応答生成部512

Claims (16)

  1. 像データをサーバ装置から受信する情報処理装置であって、
    投影対象画像に対して適用可能な複数の投影方式のうち、1以上の投影方式の識別情報を含むプッシュ指示を生成する生成手段と、
    前記生成手段により生成されたプッシュ指示を前記サーバ装置へ送信する送信手段と、
    前記送信手段により送信されたプッシュ指示に応じて前記サーバ装置からプッシュ送信された画像データであって、前記プッシュ指示に含まれる識別情報に応じて決定された投影方式によって投影対象画像が投影された画像データを受信する受信手段と
    を備えことを特徴とする情報処理装置。
  2. 前記受信手段は、前記サーバ装置から、前記プッシュ指示に含まれる識別情報に応じて決定された投影方式により前記投影対象画像が二次元平面に投影された画像データのセグメントを受信することを特徴とする請求項1に記載の情報処理装置。
  3. 前記生成手段は、前記情報処理装置が再生可能な少なくとも1つの投影方式の識別情報を含むプッシュ指示を生成する
    ことを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記受信手段が受信した画像データに応じた画像を表示手段に表示させる表示制御手段と
    をさらに備えることを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
  5. 前記投影対象像は、三次元空間の全方位に画像を有する全天周画像であり、
    前記投影方式には、前記全天周画像を円筒、多面体、又は、円錐に投影して二次元平面に投影する方式が含まれる
    ことを特徴とする請求項1から4のいずれか1項に記載の情報処理装置。
  6. 前記情報処理装置が全天周映像を展開するか否かを判定する判定手段をさらに備え、
    前記生成手段は、前記情報処理装置が全天周画像を展開しないと判定した場合は、1以上の投影方式の識別情報を含むプッシュ指示を生成することを特徴とする請求項5に記載の情報処理装置。
  7. 前記生成手段は、MPD(Media Presentation Description)に記述された1又は複数の投影方式の識別情報の中から選択された識別情報を含むプッシュ指示を生成することを特徴とする請求項1から6のいずれか1項に記載の情報処理装置。
  8. 前記生成手段は、注目領域を示す情報をさらに含むプッシュ指示を生成し、
    前記受信手段は、前記プッシュ指示に応じて前記サーバ装置からプッシュ送信された画像データであって、前記プッシュ指示に含まれる識別情報に応じて決定された投影方式によって投影対処画像の注目領域が投影された画像データを受信する
    ことを特徴とする請求項1から7のいずれか1項に記載の情報処理装置。
  9. 像データをプッシュ送信する情報処理装置であって、
    投影対象画像に対して適用可能な複数の投影方式のうち、1以上の投影方式の識別情報を含むプッシュ指示をクライアント装置から受信する受信手段と、
    前記プッシュ指示に含まれる1以上の投影方式の識別情報に基づいて、前記クライアント装置へプッシュ送信すべき画像データを生成するために投影対象画像に対して適用すべき投影方式を決定する決定手段と、
    前記決定手段により決定された投影方式が前記投影対象画像に適用されることによって生成された画像データを前記クライアント装置に対してプッシュ送信する送信手段と、を備えることを特徴とする情報処理装置。
  10. 前記投影対象像は、三次元空間の全方位に画像を有する全天周画像であり、
    前記投影方式には、前記全天周画像を円筒、多面体、又は、円錐に投影して二次元平面に投影する方式が含まれる
    ことを特徴とする請求項9に記載の情報処理装置。
  11. 前記クライアント装置からのプッシュ指示に基づいて、前記投影対象画像に対する投影処理を情報処理装置が実行すべきか判定する判定手段を更に備え、
    前記送信手段は、
    前記投影対象画像に対する投影処理を前記情報処理装置が実行すべきと前記判定手段が判定した場合、前記決定手段により決定された投影方式で前記投影対象画像が投影されることで生成される画像データを前記クライアント装置へプッシュ送信し、
    前記投影対象画像に対する投影処理を前記情報処理装置が実行すべきでないと前記判定手段が判定した場合、前記投影対象画像を前記クライアント装置へプッシュ送信することを特徴とする請求項9又は10に記載の情報処理装置。
  12. 前記受信手段は、MPD(Media Presentation Description)に記述された1又は複数の投影方式の識別情報の中から選択された識別情報を含むプッシュ指示を受信することを特徴とする請求項9から11のいずれか1項に記載の情報処理装置。
  13. 前記送信手段は、注目領域を示す情報が前記プッシュ指示に含まれる場合、前記プッシュ指示に含まれる識別情報に応じて決定された投影方式によって投影対処画像の注目領域が投影された画像データを前記クライアント装置へプッシュ送信することを特徴とする請求項9から12のいずれか1項に記載の情報処理装置。
  14. 像データをサーバ装置から受信する情報処理装置の制御方法であって、
    1以上の投影方式の識別情報を含むプッシュ指示を生成する生成工程と、
    前記生成工程により生成されたプッシュ指示を前記サーバ装置へ送信する送信工程と、
    前記送信工程により送信されたプッシュ指示に応じて前記サーバ装置からプッシュ送信された画像データであって、前記プッシュ指示に含まれる識別情報に応じて決定された投影方式によって投影対象画像が投影された画像データを受信する受信工程と
    を備えことを特徴とする情報処理装置の制御方法。
  15. 像データをプッシュ送信する情報処理装置の制御方法であって、
    投影対象画像に対して適用可能な複数の投影方式のうち、1以上の投影方式の識別情報を含むプッシュ指示をクライアント装置から受信する受信工程と、
    前記プッシュ指示に含まれる1以上の投影方式の識別情報に基づいて、前記クライアント装置へプッシュ送信すべき画像データを生成するために投影対象画像に対して適用すべき投影方式を決定する決定工程と、
    前記決定工程により決定された投影方式が前記投影対象画像に適用されることによって生成された画像データを前記クライアント装置に対してプッシュ送信する送信工程と、
    を備えることを特徴とする情報処理装置の制御方法。
  16. コンピュータを請求項1から13のいずれか1項に記載の情報処理装置が備える各手段として機能させるためのコンピュータプログラム。
JP2016183361A 2016-09-20 2016-09-20 情報処理装置及びその制御方法、コンピュータプログラム Active JP6735644B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2016183361A JP6735644B2 (ja) 2016-09-20 2016-09-20 情報処理装置及びその制御方法、コンピュータプログラム
CN201780058068.7A CN110114759A (zh) 2016-09-20 2017-08-28 信息处理装置、其控制方法和计算机程序
PCT/JP2017/030667 WO2018055984A1 (ja) 2016-09-20 2017-08-28 情報処理装置及びその制御方法、コンピュータプログラム
KR1020197010147A KR102128798B1 (ko) 2016-09-20 2017-08-28 정보 처리 디바이스 및 이를 제어하는 방법, 및 컴퓨터 프로그램
US16/352,670 US10636115B2 (en) 2016-09-20 2019-03-13 Information processing apparatus, method for controlling the same, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016183361A JP6735644B2 (ja) 2016-09-20 2016-09-20 情報処理装置及びその制御方法、コンピュータプログラム

Publications (3)

Publication Number Publication Date
JP2018049386A JP2018049386A (ja) 2018-03-29
JP2018049386A5 JP2018049386A5 (ja) 2019-10-24
JP6735644B2 true JP6735644B2 (ja) 2020-08-05

Family

ID=61690865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016183361A Active JP6735644B2 (ja) 2016-09-20 2016-09-20 情報処理装置及びその制御方法、コンピュータプログラム

Country Status (5)

Country Link
US (1) US10636115B2 (ja)
JP (1) JP6735644B2 (ja)
KR (1) KR102128798B1 (ja)
CN (1) CN110114759A (ja)
WO (1) WO2018055984A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6920270B2 (ja) * 2018-11-20 2021-08-18 Nttテクノクロス株式会社 操作実行システム、操作実行装置、操作実行方法及びプログラム
JP2021048506A (ja) * 2019-09-19 2021-03-25 Kddi株式会社 映像シーン情報管理装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003141562A (ja) * 2001-10-29 2003-05-16 Sony Corp 非平面画像の画像処理装置及び画像処理方法、記憶媒体、並びにコンピュータ・プログラム
JP2006180022A (ja) * 2004-12-21 2006-07-06 Konica Minolta Holdings Inc 画像処理システム
JP4666060B2 (ja) * 2008-11-14 2011-04-06 富士ゼロックス株式会社 情報処理装置、情報処理システム及びプログラム
JP4924618B2 (ja) * 2009-01-05 2012-04-25 ソニー株式会社 表示制御装置、表示制御方法及びプログラム
US8872888B2 (en) * 2010-10-01 2014-10-28 Sony Corporation Content transmission apparatus, content transmission method, content reproduction apparatus, content reproduction method, program and content delivery system
KR101739272B1 (ko) * 2011-01-18 2017-05-24 삼성전자주식회사 멀티미디어 스트리밍 시스템에서 컨텐트의 저장 및 재생을 위한 장치 및 방법
JP5847440B2 (ja) * 2011-06-01 2016-01-20 キヤノン株式会社 情報処理装置およびその制御方法、並びに制御プログラム
WO2013055164A1 (ko) * 2011-10-13 2013-04-18 삼성전자 주식회사 콘텐츠 디스플레이 방법, 콘텐츠 동기화 방법, 방송 콘텐츠 디스플레이 방법 및 디스플레이 장치
US9392304B2 (en) * 2012-02-29 2016-07-12 Hulu, LLC Encoding optimization using quality level of encoded segments
JP5721659B2 (ja) * 2012-04-06 2015-05-20 キヤノン株式会社 管理装置、管理システム、及び制御方法
JP6186775B2 (ja) * 2012-05-31 2017-08-30 株式会社リコー 通信端末、表示方法、及びプログラム
US9348993B2 (en) * 2012-09-28 2016-05-24 Futurewei Technologies, Inc. Segment authentication for dynamic adaptive streaming
JP2014072608A (ja) * 2012-09-28 2014-04-21 Brother Ind Ltd 情報処理システム、情報処理装置、表示装置、及びプログラム
US9537902B2 (en) * 2013-02-13 2017-01-03 Qualcomm Incorporated Enabling devices without native broadcast capability to access and/or receive broadcast data in an efficient manner
JP6689559B2 (ja) * 2013-03-05 2020-04-28 株式会社リコー 画像投影装置、システム、画像投影方法およびプログラム
JP6249639B2 (ja) * 2013-05-30 2017-12-20 キヤノン株式会社 画像処理システム、画像処理装置、画像処理方法、画像処理プログラム
CN109842613B (zh) * 2013-07-12 2021-11-19 佳能株式会社 用于提供和接收媒体数据的方法和装置以及存储介质
JP5777185B1 (ja) * 2014-05-16 2015-09-09 株式会社ユニモト 全周動画配信システム、全周動画配信方法、通信端末装置およびそれらの制御方法と制御プログラム
JP6002191B2 (ja) * 2014-10-06 2016-10-05 株式会社ユニモト 全周動画配信システム、全周動画配信方法、通信端末装置およびそれらの制御方法と制御プログラム
JP6075889B2 (ja) * 2014-06-10 2017-02-08 日本電信電話株式会社 映像配信装置及び映像再生装置
GB2528672B (en) * 2014-07-25 2017-02-08 Canon Kk Push-based transmission of resources and correlated network quality estimation
EP2999187B1 (en) * 2014-09-18 2017-11-15 Alcatel Lucent Method, computer program product and server for streaming media content from a server to a client
US20160150212A1 (en) 2014-11-26 2016-05-26 Sony Corporation Live selective adaptive bandwidth
US20170272691A1 (en) * 2014-12-22 2017-09-21 Lg Electronics Inc. Broadcast signal transmission device, broadcast signal reception device, broadcast signal transmission method, and broadcast signal reception method
CN114363667B (zh) * 2016-02-01 2024-01-02 松下电器(美国)知识产权公司 客户端、服务器、接收方法及发送方法

Also Published As

Publication number Publication date
KR102128798B1 (ko) 2020-07-02
CN110114759A (zh) 2019-08-09
JP2018049386A (ja) 2018-03-29
US20190213708A1 (en) 2019-07-11
WO2018055984A1 (ja) 2018-03-29
US10636115B2 (en) 2020-04-28
KR20190050817A (ko) 2019-05-13

Similar Documents

Publication Publication Date Title
US20210014472A1 (en) Methods and apparatus of viewport adaptive 360 degree video delivery
US10021301B2 (en) Omnidirectional camera with multiple processors and/or multiple sensors connected to each processor
JP6979035B2 (ja) 仮想現実メディアコンテンツのストリーミングを向上させる方法、デバイス及びコンピュータプログラム
US9843725B2 (en) Omnidirectional camera with multiple processors and/or multiple sensors connected to each processor
KR102384489B1 (ko) 정보 처리 장치, 정보 제공 장치, 제어 방법, 및 컴퓨터 판독가능 저장 매체
JP6075889B2 (ja) 映像配信装置及び映像再生装置
KR101528863B1 (ko) 파노라마 영상의 스트리밍 서비스 제공 시스템에서 타일링 영상 동기화 방법
JP6541309B2 (ja) 送信装置、送信方法、及びプログラム
JP7243631B2 (ja) 再生装置および方法、並びに、生成装置および方法
JP6735644B2 (ja) 情報処理装置及びその制御方法、コンピュータプログラム
JP5915604B2 (ja) 情報処理装置、プログラム及び情報処理方法
JP6845227B2 (ja) ビデオ放送のためのシステム
US11893679B2 (en) Methods for transmitting and rendering a 3D scene, method for generating patches, and corresponding devices and computer programs
JP2020005038A (ja) 送信装置、送信方法、受信装置、受信方法、及び、プログラム
WO2018163891A1 (ja) 送信装置、受信装置、情報処理方法及びプログラム
JP2015049641A (ja) 情報処理装置、プログラム及び通信システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190912

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190912

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200714

R151 Written notification of patent or utility model registration

Ref document number: 6735644

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151