JP7229696B2 - 情報処理装置、情報処理方法、及びプログラム - Google Patents

情報処理装置、情報処理方法、及びプログラム Download PDF

Info

Publication number
JP7229696B2
JP7229696B2 JP2018145650A JP2018145650A JP7229696B2 JP 7229696 B2 JP7229696 B2 JP 7229696B2 JP 2018145650 A JP2018145650 A JP 2018145650A JP 2018145650 A JP2018145650 A JP 2018145650A JP 7229696 B2 JP7229696 B2 JP 7229696B2
Authority
JP
Japan
Prior art keywords
time
segment
information
unit
data
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
JP2018145650A
Other languages
English (en)
Other versions
JP2020022106A (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 JP2018145650A priority Critical patent/JP7229696B2/ja
Priority to US16/522,099 priority patent/US11496535B2/en
Publication of JP2020022106A publication Critical patent/JP2020022106A/ja
Application granted granted Critical
Publication of JP7229696B2 publication Critical patent/JP7229696B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • 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/70Media network packetisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、映像データや音声データを含むメディアデータを送信する技術に関する。
近年、映像データや音声データを含むメディアデータのストリームをセグメント時間(segment duration)単位のメディアセグメントに分割して送信するアダプティブストリーミング技術を用いたシステムが普及している。アダプティブストリーミング技術としては、以下の二つがある。第1の技術は、MPEG(Moving Picture Experts Group)によって規格化されたDASH(Dynamic Adaptive Streaming over HTTP)である。第2の技術は、HLS(HTTP Live Streaming)である。
DASHの規格に基づくアダプティブストリーミングにおいては、まずクライアント装置は、MPDファイル(Media Presentation Description)を取得する。MPDファイルには、配信サーバが送信可能なメディアセグメントの系列の情報であるRepresentationが一つ以上記載されている。そして、クライアント装置は、MPDに記載されたRepresentationの中から、クライアント装置の表示性能や通信状況に応じた適切なRepresentationを選択する。その後、クライアント装置は、MPDの記載に従って、MPEG2-TSまたはISOBMFF(ISO Base Media File Format)の映像フォーマットをメディアセグメント単位でダウンロードして再生する。
また特許文献1や特許文献2等には、クライアント装置からの要求に対して、配信サーバがセグメントを送信するための方法が開示されている。特許文献1は、セグメントのデータサイズの変更の要求に対し、符号化される動き情報の量を調節して、セグメントのデータサイズを変更する方法を開示している。また特許文献2は、時間セクションを指定する要求に対し、要求された時間セクションのセグメントを出力する方法を開示している。
特表2009-525705号公報 特表2013-509818号公報
しかし、上述の特許文献1、2に開示された従来技術では、特にライブストリームの配信時に、配信サーバにおいてクライアント装置の所望するセグメント時間のセグメントが用意されない場合、クライアント装置にて次の現象が生じる虞がある。例えば、セグメント時間が長すぎる場合には、セグメントの生成が行われて、クライアント装置がそのセグメントを受信して再生を行うまでの再生遅延が大きくなる場合がある。また、セグメント時間が短すぎる場合には、クライアント装置から配信サーバに対する要求処理のオーバーヘッドが大きくなり、セグメントの再生が一時的に途切れる場合がある。
そこで、本発明は、再生遅延を少なくしつつ途切れることなくセグメントの再生を可能にすることを目的とする。
本発明の情報処理装置は、セグメントの単位時間を指定する第1の時間を示す情報を、外部装置から取得する時間取得手段と、前記第1の時間を示す情報に基づいて、前記セグメントの単位時間の候補である第2の時間を少なくとも一つ、決定する決定手段と、メディアデータのストリームを、前記決定された前記第2の時間ごとの前記セグメントに分けたセグメント情報を生成する生成手段と、前記セグメント情報を前記外部装置に送信する送信手段と、を有することを特徴とする。
本発明によれば、再生遅延を少なくしつつ途切れることなくセグメントの再生が可能となる。
実施形態に係るシステムの概略構成例を示す図である。 情報生成装置のハードウェア構成例を示す図である。 情報生成装置の機能構成例を示す図である。 初期化セグメントとメディアセグメントのデータ構造を説明する図である。 第1の実施形態に係るMPDファイルの一例を示す図である。 プレイリスト送信処理を示すフローチャートである。 第1の実施形態のセグメント時間決定処理を示すフローチャートである。 第2の実施形態におけるフレーム周期のリストを示す図である。 第2の実施形態の情報生成装置における処理を示すフローチャートである。 第2の実施形態に係るMPDファイルの一例を示す図である。 クライアント装置のハードウェア構成例を示す図である。 クライアント装置の機能構成例を示す図である。 第3の実施形態のセグメント時間決定処理を示すフローチャートである。
以下、添付図面を参照して本発明の実施形態について説明する。
<第1の実施形態>
図1は、本発明の情報処理装置の一例である情報生成装置101およびクライアント装置102を含むシステムの概略的な構成例を示す図である。本実施形態では、例えばリアルタイムで取得された映像データや音声データを含むメディアデータのライブストリームを、単位時間毎のセグメントに分割したメディアセグメントを送信するアダプティブストリーミング技術を用いたシステムを例に挙げている。
図1に示すシステムは、本実施形態に係る情報生成装置101およびクライアント装置102と、ネットワーク103とを有する。例えば、情報生成装置101はネットワークカメラであり、ネットワーク103はLAN等のIPネットワークである。情報生成装置101は、アダプティブストリーミング技術を用いて、映像や音声の少なくともいずれかを含むメディアデータのストリームを単位時間毎に分割してメディアセグメントを生成可能な装置である。本実施形態では、情報生成装置101が配信サーバの機能を有する例を挙げているが、配信サーバは別に設けられていてもよい。クライアント装置102は、情報生成装置101に対する外部装置であり、ネットワーク103を介して情報生成装置101と通信可能な通信装置である。本実施形態において、クライアント装置102は、情報生成装置101からアダプティブストリーミング技術を用いて送信されるメディアセグメントのデータを受信して再生可能な例えばパーソナルコンピュータ(PC)であるとする。
このように、情報生成装置101とクライアント装置102は、ネットワーク103を介して接続され、相互に通信可能となされている。
クライアント装置102は、情報生成装置101に対して各種要求コマンドを送信することができる。本実施形態の場合、クライアント装置102が情報生成装置101に送信するコマンドとしては、後述するプレイリスト送信要求やセグメント送信要求のコマンド等を挙げることができる。詳細は後述するが、本実施形態の場合、クライアント装置102は、例えばプレイリスト送信要求のコマンドに、セグメントの単位時間を指定する指定時間を含む単位時間情報を含めることができる。
情報生成装置101は、クライアント装置102からの各種要求コマンドを受信すると、それらコマンドに対するレスポンスを、クライアント装置102に返送する。詳細は後述するが、本実施形態の場合、情報生成装置101は、クライアント装置102からプレイリスト送信要求のコマンドを受信すると、そのコマンドに含まれる単位時間情報からセグメントの単位時間を指定する指定時間の情報を取得する。そして情報生成装置101は、その指定時間に基づいて、セグメントの単位時間の候補であるセグメント時間を少なくとも一つ決定し、当該セグメントの単位時間を含むプレイリストの情報をクライアント装置102に送信することができる。また情報生成装置101は、メディアデータのストリームを、セグメントの単位時間毎のセグメントに分けたセグメント情報を生成して、クライアント装置102に送信可能となされている。
ネットワーク103は、Ethernet(登録商標)等の通信規格を満足する複数のルータ、スイッチ、ケーブル等を有する。ネットワーク103は、情報生成装置101およびクライアント装置102間の通信が行えるものであれば、その通信規格、規模、構成は限定されず、インターネットから無線LAN(Local Area Network)にまで適用可能である。なお、図1では、説明の簡略化のために、情報生成装置101は1台としているが、2台以上であってもよい。また、クライアント装置102以外にも、ネットワーク103を介して情報生成装置101に接続する1台以上のクライアント装置があってもよい。
図2は、本実施形態に係る情報生成装置101のハードウェア構成例を示す図である。
情報生成装置101は、CPU201、一次記憶装置202、二次記憶装置203、画像キャプチャI/F206、ネットワークI/F207を有し、それらが内部バス204を介して相互に接続されている。また情報生成装置101は、CCDセンサやCMOSセンサからなる撮像素子205も有する。
一次記憶装置202は、例えばRAMであり、書き込み可能な高速の記憶装置である。一次記憶装置202は、OSや各種プログラムおよび各種データがロードされ、またOSや各種プログラムの作業領域として使用される。二次記憶装置203は、例えばフラッシュメモリ、HDD、SDカード等であり、不揮発性記憶装置である。二次記憶装置203は、OSや各種プログラムおよび各種データの永続的な記憶領域として使用され、短期的な各種データの記憶領域としても使用される。
CPU201は、二次記憶装置203に記憶されているプログラムを一次記憶装置202に展開して実行することにより、本実施形態の情報生成装置101に係る各種処理を実現する。画像キャプチャI/F206には、撮像素子205が接続され、撮像素子205が撮像したリアルタイムの画像データを所定のフォーマットのデータに変換等して一次記憶装置202に転送する。ネットワークI/F207は、ネットワーク103を介してクライアント装置102に接続可能とするインタフェースであり、クライアント装置102等との間の通信に係る各処理を担う。
図3は、本実施形態に係る情報生成装置101の機能構成例を示す図である。
情報生成装置101は、受信部301、時間取得部302、時間決定部303、プレイリスト生成部304、データ生成部305、セグメント生成部306、および送信部307を有する。受信部301、時間取得部302、時間決定部303、プレイリスト生成部304、データ生成部305、セグメント生成部306、および送信部307は、図2のCPU201がプログラムを実行することにより機能する処理部である。なお、これらの一部の機能がハードウェア構成により実現され、残りの機能がプログラムの実行によるソフトウェア構成として実現されてもよい。
データ生成部305は、画像キャプチャI/F206により一次記憶装置202に転送された画像データに対して符号化処理を行い、映像データとして映像フレーム及び映像メタデータを生成する。画像データの符号化方式には、例えばH.264/AVCまたはH.265/HEVCを用いることができる。但し、符号化方式はこれらに限らず、他の種々の符号化方式が用いられてもよく、映像データを生成可能なものであればいずれの方式であってもよい。
映像メタデータは、例えばSPS(Sequence Parameter Set)やPPS(Picture Parameter Set)等の映像再生を開始するために必要なデータである。映像フレームは、映像再生時に継続して表示される映像1コマ単位の情報を示すデータである。映像フレーム及び映像メタデータはデータ生成部305が生成する映像データの最小単位であり、後述のセグメント生成部306が生成するセグメントは、1以上の映像フレームまたは映像メタデータを含み得るデータである。
映像フレームには、例えば独立フレームと従属フレームがある。独立フレームは、フレーム内符号化処理によって生成され、復号時に他の映像フレームの情報を必要としない映像フレームであり、例えばIフレームである。従属フレームは、フレーム間符号化処理によって生成され、他の映像フレームとの差分情報から構成される映像フレームであり、例えばPフレーム又はBフレームである。データ生成部305は、例えば所定のグループ(GOP:Group Of Picuture)の周期毎に独立フレームを少なくとも一つ生成し、GOP周期内のその他の映像フレームを従属フレームとして生成する。なお映像フレームの構成方式はこの例に限られるものではない。
データ生成部305は、一定の周期(フレーム周期)毎に連続して映像フレームを生成する。フレーム周期は設定情報に応じて変更可能となされており、データ生成部305は、映像フレームの生成の際に使用したフレーム周期を示す設定情報を、二次記憶装置203に保持することができる。なお本実施形態において、フレーム周期が例えば40ミリ秒である場合、フレーム周期の設定情報は40ミリ秒の時間を表す値となされる。またデータ生成部305は、映像フレームの解像度、符号化方式、送信ビットレート等についてもそれぞれの設定情報によって変更可能となされている。そして、データ生成部305は、映像データを生成する際に使用した、映像フレームの解像度、符号化方式、送信ビットレート等をそれぞれ示す設定情報についても、二次記憶装置203に保持することができる。
受信部301は、クライアント装置102からの各種要求コマンドとして、例えばプレイリストの送信要求やセグメントの送信要求のコマンド等を受信することができる。プレイリスト及びセグメントの詳細なデータ構造については後述する。
受信部301は、プレイリスト送信要求のコマンドをクライアント装置102から受信すると、時間取得部302に対し、プレイリスト送信要求受信通知を送る。プレイリスト送信要求は、プレイリスト生成部304が生成するプレイリストに対する送信要求である。また本実施形態の場合、プレイリスト送信要求のコマンドには、プレイリスト自体のパスに加え、セグメント生成部306が生成するセグメントの時間長であるセグメント時間を要求するクエリ等として単位時間情報を含めることができる。受信部301は、プレイリスト送信要求のコマンドに単位時間情報が含まれていた場合、その単位時間情報をもプレイリスト送信要求受信通知に含めて、時間取得部302に送る。
本実施形態の場合、プレイリスト送信要求に含まれる単位時間情報は、クライアント装置102がセグメントの単位時間を指定した指定時間を含んだ情報となされている。本実施形態の場合、指定時間は、例えばクライアント装置102が自身の表示性能や処理性能、通信状況等に基づいて設定した時間とするが、クライアント装置102に予め設定された時間であってもよい。
単位時間情報のフォーマットとしては、例えば、時間長方式又はフレーム数方式を用いることができる。
時間長方式の場合、単位時間情報はクライアント装置102が要求するセグメント時間(指定時間)の時間長を含み、プレイリスト送信要求コマンドのクエリパラメータ名としてはセグメント時間の時間長を表現する「duration」を定義することができる。例えば、クライアント装置102が時間長Xとして120ミリ秒のセグメント時間を要求する場合には、時間長X=120とし、クエリとして「duration=120」をプレイリスト送信要求のコマンドが含むようにすればよい。
フレーム数方式の場合、単位時間情報は、フレーム周期のY倍の時間を示す値Yを、クライアント装置102が要求するセグメント時間(指定時間)を示す情報として含むものとなされる。フレーム数方式の場合、プレイリスト送信要求のコマンドのクエリパラメータとしては、そのような値Yを表現可能な「frame」を定義することができる。例えば、クライアント装置102が120ミリ秒のセグメント時間を要求する場合、フレーム周期が40ミリ秒であるため、値Y=3とし、クエリとして「frame=3」をプレイリスト送信要求のコマンドが含むようにすればよい。
なお単位時間情報のフォーマットは、時間長方式やフレーム数方式以外の方式でもよく、単位時間を表現できるものであればよい。
時間取得部302は、受信部301からプレイリスト送信要求受信通知を受け取ると、その通知に含まれる単位時間情報から指定時間を取得し、時間決定部303に対して指定時間取得通知を行う。指定時間取得通知は指定時間を示すものとする。
ここで時間取得部302は、受信部301から受け取ったプレイリスト送信要求受信通知に含まれる単位時間情報を、所定のフォーマットの情報に変換するものとしてもよい。
例えば、受信部301から受け取った単位時間情報が前述した時間長方式の「duration=X」を含む場合、指定時間は以下の式(1)で表わされる。
(指定時間)=X[ミリ秒] ・・・式(1)
また、受信部301から受け取った単位時間情報が前述したフレーム数方式の「frame=Y」を含む場合、指定時間は以下の式(2)で算出することができる。
(データ生成部305のフレーム周期)×Y[ミリ秒] ・・・式(2)
なお、時間取得部302は、データ生成部305において使用するフレーム周期を二次記憶装置203から読み出し可能であるものとする。
時間決定部303は、時間取得部302から指定時間取得通知を受け取ると、指定時間取得通知が示す指定時間を基に、後述するメディアセグメントの単位時間の候補であるセグメント時間を少なくとも一つ決定する。セグメント時間の決定処理の詳細は後述する。そして、時間決定部303は、プレイリスト生成部304に対してセグメント時間決定通知を送信する。セグメント時間決定通知は、時間決定部303が決定したセグメント時間を示すものとする。
プレイリスト生成部304は、時間決定部303からセグメント時間決定通知を受け取ると、セグメント時間決定通知が示すセグメント時間を記載したプレイリストを生成し、一次記憶装置202に保持する。
プレイリストの一例としては、ISO/IEC23009-1にて定義されるMPDファイルを用いることができる。MPDファイルには、情報生成装置101が送信可能なセグメントの情報、セグメント時間情報、セグメントの映像データの解像度情報、フレームレート情報、符号化方式情報、送信ビットレート情報等を、送信メディア情報として記述することができる。
その後、プレイリスト生成部304は、送信部307に対しプレイリスト送信指示を送り、プレイリストのデータをクライアント装置102に送信させるようにする。なお、プレイリスト生成部304は、情報生成装置101の処理負荷増大等により、一時的にプレイリストが生成不可となる場合には、送信部307に対しHTTP503等のエラーレスポンスをクライアント装置102に送信させる指示を行うものとしてもよい。
送信部307は、プレイリスト生成部304からプレイリストの送信指示を受け取ると、一次記憶装置202が保持しているプレイリストのデータを読み出してクライアント装置102に送信する。
受信部301は、セグメント送信要求のコマンドをクライアント装置102から受信すると、クライアント装置102に対してレスポンスを送信する指示を送信部307に行う。セグメント送信要求は、セグメント生成部306が生成するセグメントに対する送信要求である。送信部307は、送信要求が行われたセグメントが既にセグメント生成部306により生成されて一次記憶装置202内に存在している場合には、その送信要求が行われたセグメントのデータをレスポンスとしてクライアント装置102に送信する。一方、送信要求が行われたセグメントが一次記憶装置202に存在しない場合、送信部307は、HTTP404等のエラーレスポンスを送信することができる。
セグメント生成部306は、データ生成部305が生成した映像メタデータと映像フレームにヘッダ部を付加し、それぞれ初期化セグメント及びメディアセグメントを生成して、一次記憶装置202に保持する。以下、初期化セグメント及びメディアセグメントを併せてセグメントと呼称する。初期化セグメントとメディアセグメントの詳細は後述する。セグメントは例えばISO/IEC14496-12にて定義される構造を持つものとすることができる。セグメント生成部306は、時間決定部303にて決定されたセグメント時間の時間長分に相当する数の映像フレームを含むように、メディアセグメントを生成する。またセグメント生成部306は、セグメントを生成して一次記憶装置202に保持すると、送信部307に対しセグメントの送信指示を行う。
送信部307は、セグメント生成部306からセグメントの送信指示を受け取ると、その送信指示に応じたセグメントを一次記憶装置202から読み出して、クライアント装置102に対して送信する。なおここでは、送信部307はクライアント装置102からセグメント送信要求のコマンドを受信してからセグメントを送信する例を挙げているが、これに限定されない。例えば、HTTP/2やWebsocketなどのプロトコルの場合、送信部307は、クライアント装置102から送信要求を受信しなくても、セグメント生成部306においてセグメントの生成が完了した時点で次々と送信することができる。この場合、セグメント生成部306はセグメントの生成が完了する度に送信部307に対しセグメント生成通知を行い、送信部307はセグメント生成通知の受信によりセグメントの生成完了を検知し、それらセグメントの生成が完了した時点で次々と送信する。
図4は、セグメント生成部306が生成する初期化セグメント441及びメディアセグメント451のデータ構成を説明する図である。
図4に示すように、初期化セグメント441は、前述したSPSやPPS等を有した映像メタデータ461を含む。メディアセグメント451は一つ以上の映像フレームを含むことができる。メディアセグメント451は映像フレーム471~473を符号化順に含んでいる。例えば、映像フレーム471を独立フレーム、映像フレーム472と映像フレーム473を従属フレームとすることができる。なおここではメディアセグメント451の先頭の映像フレームを独立フレームとしたが、先頭の映像フレームが独立フレームでないメディアセグメントがあってもよい。情報生成装置101は、メディアセグメント451を含む複数のメディアセグメントを、クライアント装置102の送信要求に応じてネットワークI/F207を通して次々に送信することができる。
メディアセグメント451のセグメント時間は、以下の式(3)で算出することができる。
(データ生成部305のフレーム周期)×(メディアセグメント451に含まれる映像フレームのフレーム数)=40[ミリ秒]×3=120[ミリ秒] ・・・式(3)
図5は、情報生成装置101がクライアント装置102に送信するプレイリストとしてのMPDファイル580の構成の一例を示す図である。
プレイリスト生成部304は、二次記憶装置203にて保持するフレーム周期等の設定情報、及び、時間決定部303からのセグメント時間決定通知が示すセグメント時間に基づいて、MPDファイル580を作成する。
MPDファイル580は、Period581、AdaptationSet582、Representation583、SegmentTemplate584の順の各要素からなる階層構造となっている。この階層構造によって情報生成装置101がクライアント装置102に送信することが可能なセグメントに関する情報を定義することができる。
Period581は、下位階層の要素が定義される期間の範囲を定義する。例えば、Period581では、Period581の開始時間startを0と記述し、Period581の期間の時間長durationを記述しないことで、情報生成装置101が連続して送信する全てのセグメント情報を定義することができる。
AdaptationSet582は、映像の情報を示しており、例えば同じPeriod581の期間で別の視点の映像を定義することができる。
Representation583では、セグメントの映像の情報として解像度やフレームレート等を定義することができる。id情報595は、Representation583を識別するためのid情報であり、この例ではRepresentation583のidが1であることを示している。Representation583は、解像度情報585、フレームレート情報586、符号化方式情報592、送信ビットレート情報593、及び、後述のSegmentTemplate584中のセグメント時間情報等を送信メディア情報として含む。解像度情報585、フレームレート情報586、符号化方式情報592、送信ビットレート情報593は、二次記憶装置203に保持されている前述した各設定情報に基づき記述される。
解像度情報585は、セグメントの映像フレームの解像度として幅×高さが例えば256×144[ピクセル]であることを示している。フレームレート情報586は、セグメントの映像フレームが1秒当たりに生成される枚数、つまりフレーム周期の秒値表現の逆数が例えば25であることを示している。符号化方式情報592は、セグメントの映像の符号化方式が、例えばH.264/AVC Mainプロファイル レベル3.1であることを示している。送信ビットレート情報593は、セグメントを送信する送信ビットレートが、例えば65536[bps]であることを示している。
SegmentTemplate584では、以下の式(4)を満たすように、タイムスケール情報587及びセグメント時間情報588を用いることにより、Representation583のメディアセグメントのセグメント時間を記述することができる。
(Representation583のセグメント時間)=(セグメント時間情報588)/(タイムスケール情報587)=300/2500[秒]=120[ミリ秒] ・・・式(4)
Representation583のセグメント時間は、時間決定部303が決定したセグメント時間に一致するよう記述する。
また、Representation583は、初期化セグメントURI情報589、及び、メディアセグメントURI情報590を含んでいる。クライアント装置102は、情報生成装置101のIPアドレスを含むMPDBaseURI情報591、RepresentationBaseURI情報594を使用することにより、下記のURIにアクセスすることができる。そして、クライアント装置102は、Representation583及びSegmentTemplate584によって定義された初期化セグメントと各メディアセグメントとの取得を行うことができる。クライアント装置102は、Representation583の初期化セグメントURI、及び、メディアセグメントURIを、id情報595から$RepresentationID$を1として、それぞれ式(5)、式(6)で決定することができる。
(Representation583の初期化セグメントURI)=(MPDBaseURI情報591)+(RepresentationBaseURI情報594)+(初期化セグメントURI情報589)="http://192.169.100.1:80/video/stream1/init1.mp4" ・・・式(5)
(Representation583のメディアセグメントURI)=(MPDBaseURI情報591)+(RepresentationBaseURI情報594)+(メディアセグメントURI情報590)="http://192.169.100.1:80/video/stream1/media1_$Number$.m4s" ・・・式(6)
上記の式において、要素A+要素Bは、要素Aの文字列の右側に要素Bの文字列を結合すること意味する。$Number$は、テンプレート表現であり、メディアセグメントURI情報590のstartNumberの値からメディアセグメントの映像の時系列順又は符号化順に評価値がインクリメントされていく。
実際の各メディアセグメントのURIは一例として以下のようになる。"http://192.169.100.1:80/video/stream1/media1_1.m4s"、"http://192.169.100.1:80/video/stream1/media1_2.m4s"、・・・。
送信部307が、このようなMPDファイル580をクライアント装置102に送信することで、クライアント装置102は、情報生成装置101に対し初期化セグメント又はメディアセグメントの送信要求を次々に行うことが可能となる。例えば、まず、クライアント装置102は、初期化セグメントを取得し、映像再生のための初期化処理を行う。そして、クライアント装置102は、タイムスケール情報587、セグメント時間情報588に基づいたセグメント時間毎にメディアセグメントの送信要求を行って、順次、メディアセグメントを取得し映像を再生する。
図6は、第1の実施形態の情報生成装置101におけるプレイリスト送信処理を示すフローチャートである。なお、以下の説明では、図6のフローチャートの各ステップS601~ステップS604をS601~S604と略記する。このことは、後述する他のフローチャートにおいても同様とする。
この図6のフローチャートに示すプレイリスト送信処理は、時間取得部302が、受信部301からのプレイリスト送信要求受信通知を受け取ることにより開始する。
S601では、時間取得部302が、受信部301からのプレイリスト送信要求受信通知に含まれる単位時間情報から、セグメント時間の指定時間を取得する。そして、時間取得部302は、時間決定部303に対し、指定時間取得通知を送信する。
S602では、時間決定部303が、時間取得部302からの指定時間取得通知に含まれる指定時間を基に、セグメントの単位時間の候補であるセグメント時間を少なくとも一つ決定し、プレイリスト生成部304に対してセグメント時間決定通知を送信する。
S603では、プレイリスト生成部304が、時間決定部303からのセグメント時間決定通知が示すセグメント時間を記載したMPDファイル580を生成し、そのMPDファイル580を一次記憶装置202に保持する。そして、プレイリスト生成部304は、MPDファイル580をクライアント装置102に対して送信する送信指示を、送信部307に送る。
S604では、送信部307が、プレイリスト生成部304からのMPDファイル580の送信指示に応答し、一次記憶装置202に保持されるMPDファイル580のデータを取得してクライアント装置102に対して送信する。そして、MPDファイル580の送信が完了すると、情報生成装置101におけるプレイリスト送信処理は終了する。
図7は、時間決定部303におけるセグメント時間決定処理を示すフローチャートである。
S701において、時間決定部303は、時間取得部302からの指定時間取得通知に含まれる指定時間を超えない(フレーム周期)×(自然数n)の最大値を算出する。つまり、時間決定部303は、クライアント装置102からの指定時間を超えないフレーム周期の整数倍の最大値をセグメント時間として算出する。セグメント時間は、下記の式(7)の条件を満たす数となる。
(セグメント時間)=(データ生成部305のフレーム周期)×(自然数n)≦(時間取得部302が取得した指定時間)、かつ、(時間取得部302が取得した指定時間)<(データ生成部305のフレーム周期)×(n+1) ・・・式(7)
例えば、時間取得部302が取得した指定時間が150[ミリ秒]であり、自然数n=3、データ生成部305のフレーム周期が40[ミリ秒]である場合、式(7)により以下のような時間が算出される。
(セグメント時間)=(フレーム周期の40[ミリ秒])×3=120[ミリ秒]≦(指定時間の150[ミリ秒])、かつ、(指定時間の150[ミリ秒])<(フレーム周期の40[ミリ秒])×4=160[ミリ秒]
すなわちこの場合、セグメント時間としては120[ミリ秒]が算出される。
そしてS702において、時間決定部303は、S701にて算出した時間をセグメント時間として決定し、その決定したセグメント時間を示すセグメント時間決定通知を、プレイリスト生成部304に送信する。
このように、情報生成装置101は、クライアント装置102からのプレイリスト送信要求(つまりMPDファイル580の送信要求)に含まれる単位時間情報からセグメントの単位時間を指定する指定時間を取得する。そして、情報生成装置101は、その指定時間を基に、クライアント装置102が所望するセグメント時間のセグメントを返信できるようにする。これにより、情報生成装置101は、クライアント装置102に対して、最小限の遅延で映像を送信することができることになる。
前述の例では、データ生成部305が映像フレームを生成するフレーム周期を40[ミリ秒]としたが、フレーム周期は40[ミリ秒]以外の時間でもよい。また、データ生成部305は単一のフレーム周期で映像フレームを生成するものとしたが、複数のフレーム周期の系列の映像フレームを同時に生成可能であってもよい。
またセグメント生成部306は、時間決定部303がセグメント時間を決定した時点でセグメントの生成を開始するものとしたが、それには限定されない。例えば、セグメント生成部306は、クライアント装置102がMPDファイル580を取得してセグメントの送信要求を情報生成装置101に行った後に、セグメントの生成を開始するものとしてもよい。
また時間取得部302から時間決定部303に送られる指定時間取得通知が示す指定時間は、ミリ秒値としたが、例えば秒値でもよく、前述のセグメント時間情報588のようなtimescale基準の時間表現であってもよい。指定時間は、時間長表現ができるものであればこれらに限らない。
前述したように、時間決定部303は、指定時間を超えない(フレーム周期)×(自然数n)の最大値をセグメント時間として決定するものとしたが、以下の方法(a)~方法(d)のようにしてセグメント時間を決定してもよい。
方法(a):時間決定部303は、時間取得部302からの指定時間取得通知に含まれる指定時間以上の(フレーム周期)×(自然数n)の最小値、つまり指定時間以上のフレーム周期の整数倍の最小値を、セグメント時間として決定する。
方法(b):時間決定部303は、任意データのパケットを送信部307が送信してクライアント装置102からの応答を受信部301が受信するまでの時間によりメディアセグメントの送信遅延時間を推定する。さらに、時間決定部303は、送信遅延時間以上の任意の時間を最短待ち時間とし、セグメント時間の所定の閾値として設定する。そして、時間決定部303は、時間取得部302からの指定時間取得通知に含まれる指定時間が閾値以下つまり最短待ち時間以下の場合に、その閾値つまり最短待ち時間をセグメント時間として決定する。
方法(c):時間決定部303は、データ生成部305のフレーム周期または時間決定部303が決定するセグメント時間に関わらず、セグメント生成部306がセグメントを生成するのに最低限所要する時間以上の任意の時間を最短待ち時間とする。つまり、最短待ち時間を、セグメント時間の所定の閾値として設定する。そして、時間決定部303は、時間取得部302からの指定時間取得通知に含まれる指定時間が最短待ち時間以下つまり閾値以下の場合に、その閾値つまり最短待ち時間をセグメント時間として決定する。
方法(d):時間決定部303は、データ生成部305で連続的に生成される映像フレームにおいて他のフレームを用いずに復号可能な独立フレームが生成されてから、次の独立フレームが生成されるまでの時間を最長待ち時間として所定の閾値に設定する。例えばGOPにおいて取り得る最長待ち時間が閾値として設定される。そして、時間決定部303は、時間取得部302からの指定時間取得通知に含まれる指定時間が閾値以上つまり最長待ち時間以上の場合に、その閾値つまり最長待ち時間をセグメント時間として決定する。
前述した方法(a)~方法(d)のうち、方法(b)~方法(d)によれば、時間決定部303は、セグメント生成部306がセグメントを生成するのに所要する上限値または下限値の時間を所定の閾値として設定している。そして、時間決定部303は、時間取得部302からの指定時間取得通知に含まれる指定時間と、所定の閾値とを比較し、その比較結果を基に、所定の閾値をセグメント時間に決定するかどうかを判断するようなことが行われている。
また情報生成装置101は、前述した指定時間を超えない(フレーム周期)×(自然数n)の最大値や方法(a)~方法(d)のようなそれぞれ異なる方法で決定した複数のセグメント時間を、セグメント時間の候補としてもよい。それらそれぞれ異なる方法で決定したセグメント時間を、異なる複数のRepresentationまたはAdaptationSetがセグメント時間情報としてMPDファイルに含めるようにしてもよい。さらに、時間決定部303が複数のセグメント時間を決定し、セグメント生成部306はそれら複数のセグメント時間の各セグメントを同時に生成可能となされていてもよい。この場合、クライアント装置102は、複数のセグメント時間の候補を含んだMPDファイルから、自身の表示性能や通信状況に応じた適切なセグメント時間を基に生成されるセグメントの送信要求を、情報生成装置101に送信すればよい。
また、データ生成部305では、一定のフレーム周期を持たずに不定の時間間隔で映像フレーム(不定周期映像フレームとする。)を生成することも可能である。この場合、セグメント生成部306は、時間決定部303が決定したセグメント時間に対し、不定周期映像フレームを含むメディアセグメントを生成するものとしてもよい。
また前述の例では、指定時間や決定したセグメント時間は、フレーム周期の整数倍としたが、例えば一部のフレームの表示時間をセグメントのヘッダ部内の情報等で調整し、フレーム周期の整数倍でないセグメント時間のセグメントを生成可能としてもよい。
またセグメント時間は、メディアデータのストリーム毎に決定されてもよい。
またセグメント生成部306が生成するセグメントは映像データを含むものとしたが、セグメント生成部306は音声データを含むメディアセグメントを生成可能としてもよい。
前述の例では、情報生成装置101は、データ生成部305、セグメント生成部306の機能を含むものとしたが、例えばこれらの機能を持つ他の装置と通信を行うことで、これらの機能を含まないような構成となされていてもよい。この場合の情報生成装置101は、受信部301、時間取得部302、時間決定部303、プレイリスト生成部304、送信部307のみを有し、プレイリストを生成するものとしてもよい。
前述したように、第1の実施形態においては、クライアント装置102から所望されるセグメント時間(指定時間)に基づき、情報生成装置101が送信可能なセグメント時間を決定してクライアント装置102に対し提示する。これにより、本実施形態によれば、再生遅延を最小限にしながら途切れることなくセグメントを再生することが可能となる。
<第2の実施形態>
以下、第2の実施形態の情報生成装置101について説明する。第2の実施形態の情報生成装置101の構成は前述した第1の実施形態の例と同様であるため、その構成等の図示を省略する。
第2の実施形態では、主に第1の実施形態とは異なる部分について説明を行う。
図8は、第2の実施形態において、データ生成部305が映像フレームを生成可能なフレーム周期のリスト(フレーム周期リスト800)の一例を示した図である。
データ生成部305は、フレーム周期リスト800を作成し二次記憶装置203にて保持することを可能とする。図8に示したフレーム周期リスト800は、データ生成部305が、フレーム周期801、802、803にそれぞれ対応する、40[ミリ秒]、80[ミリ秒]、120[ミリ秒]のフレーム周期で映像フレームを生成可能であることを示している。フレーム周期リスト800はこの例に限らず、データ生成部305が生成可能なフレーム周期を示すことが可能なものであればどのようなものでもよい。
図9は、第2の実施形態の時間決定部303におけるセグメント時間決定処理を示すフローチャートである。第2の実施形態においては、第1の実施形態における図6のフローチャートのS602のセグメント時間決定処理を、図9のフローチャートの処理に代えて行うものとする。
まず、時間決定部303は、フレーム周期リスト800が示す各フレーム周期について、S901からS904までのループ処理を開始する。時間決定部303は、フレーム周期リスト800に含まれる全てのフレーム周期についての処理が終了すると、S901からS904までのループ処理を終了し、セグメント時間決定通知を行った後にセグメント時間決定処理を終了する。
S901からS904までのループ処理では、時間決定部303は、まずS902の処理として、時間取得部302からの指定時間取得通知における指定時間が、フレーム周期リスト800に含まれるフレーム周期以下であるかどうかを判定する。時間決定部303は、指定時間がフレーム周期リスト800に含まれるフレーム周期以下であると判定した場合には処理をS903に進め、指定時間がフレーム周期リスト800に含まれるフレーム周期を超過していると判定した場合には処理をS904に進める。本実施形態において、例えば指定時間を100[ミリ秒]とした場合、時間決定部303は、フレーム周期801、802に対しては処理をS903進め、フレーム周期803に対しては処理をS904に進めることとなる。指定時間は、100[ミリ秒]以外でもよい。
S903に進むと、時間決定部303は、時間取得部302からの指定時間取得通知が示す指定時間に基づいてセグメント時間を決定する。セグメント時間の算出方法としては、例えば第1の実施形態で述べた各種の方法を用いることができる。時間決定部303において、例えば指定時間を超えない(フレーム周期)×(自然数n)の最大値をセグメント時間に決定する場合、フレーム周期801に対するセグメント時間は式(8)、フレーム周期802に対するセグメント時間は式(9)で決定される。
(セグメント時間)=(フレーム周期801の40[ミリ秒])×2=80[ミリ秒]<100[ミリ秒] ・・・式(8)
(セグメント時間)=(フレーム周期802の80[ミリ秒])×1=80[ミリ秒]<100[ミリ秒] ・・・式(9)
S903にて各フレーム周期について決定されたセグメント時間は、各フレーム周期と対応付けた情報として一次記憶装置202にて保持される。
S904に進むと、時間決定部303は、フレーム周期リスト800が示すフレーム周期についてのループ処理が続く場合には、S902の処理に戻る。そして、フレーム周期リスト800が示すフレーム周期のループ処理が終わった場合、時間決定部303は、S905に処理を進める。
S905に進むと、時間決定部303は、セグメント時間を示すセグメント時間決定通知をプレイリスト生成部304に送信し、セグメント時間決定処理を終了する。
図10は、第2の実施形態の情報生成装置101がクライアント装置102に送信するプレイリストとしてのMPDファイル1000の構成の一例を示す図である。
プレイリスト生成部304は、セグメント時間決定通知が示すセグメント時間を基に、一次記憶装置202に保持しているセグメント時間が対応付けられたフレーム周期毎にRepresentationを一つ作成し、MPDファイル1000を作成する。
MPDファイル1000では、AdaptationSet1001内に、Representation1002、1003の2つのRepresentaionが定義される。
Representation1002は、フレーム周期801に対応するフレームレート情報1004を含む。これによりクライアント装置102は、タイムスケール情報1005及びセグメント時間情報1006と下記の式(10)とを用いることにより、Representation1002のメディアセグメントのセグメント時間を算出することができる。
(Representation1002のセグメント時間)=(セグメント時間情報1006)/(タイムスケール情報1005)=200/2500[秒]=80[ミリ秒] ・・・式(10)
Representation1003は、フレーム周期802に対応するフレームレート情報1007を含む。これによりクライアント装置102は、タイムスケール情報1008及びセグメント時間情報1009と下記の式(11)とを用いることにより、Representation1003のメディアセグメントのセグメント時間を算出することができる。
(Representation1003のセグメント時間)=(セグメント時間情報1009)/(タイムスケール情報1008)=200/2500[秒]=80[ミリ秒] ・・・式(11)
このようなMPDファイル1000を取得したクライアント装置102は、表示性能や通信状況に応じた適切なRepresentationを、Representation1002及び1003から選択する。これにより、情報生成装置101に対し初期化セグメント又はメディアセグメントの送信要求を行うことが可能となる。
このように、第2の実施形態の情報生成装置101は、データ生成部305が映像フレームを生成可能である各フレーム周期と、プレイリスト送信要求に含まれるセグメントの単位時間の指定時間とを比較する。そして、情報生成装置101は、データ生成部305が映像フレームを生成可能な各フレーム周期について、クライアント装置102が所望するセグメント時間のセグメントを返信できるようにしている。これにより、情報生成装置101は、クライアント装置102に対して、最小限の遅延を可能とするフレームレートでの映像送信を可能とする。
なお、時間決定部303は、フレーム周期が指定時間を超過するものについてはセグメント時間の決定を行わないものとしたが、そのようなフレーム周期に対しては、例えば第1の実施形態の方法(a)~方法(d)を用いてセグメント時間を決定してもよい。この場合も時間決定部303は、フレーム周期とセグメント時間を対応付けた情報として一次記憶装置202にて保持するものとしてもよい。
また、データ生成部305は、フレーム周期リスト800が示す各フレーム周期の映像データを同時に生成可能であってもよく、単一のフレーム周期の系列の映像フレームしか同時に生成できなくてもどちらでもよい。この場合、受信部301は、クライアント装置102からセグメントの送信要求を受信した後、その要求されたセグメントが一次記憶装置202に保持されたMPDファイル1000に記述されているいずれのRepresentationのものかを判別する。そして、データ生成部305は、受信部301により判別されたRepresentationのフレームレート情報に対応するフレーム周期で映像フレームの生成を開始するものとしてもよい。
セグメント生成部306は、時間決定部303がセグメント時間を決定した時点でセグメントの生成を開始するものとしたが、Representationに含まれるセグメント時間情報に対応するセグメント時間でセグメントを生成開始するものとしてもよい。この場合、受信部301は、クライアント装置102からセグメントの送信要求を受信した後、その要求されたセグメントが一次記憶装置202に保持されているMPDファイル1000に記述されたいずれのRepresentationのものかを判別する。そして、セグメント生成部306は、受信部301により判別されたRepresentationに含まれるセグメント時間情報に対応するセグメント時間でセグメントの生成を開始するものとしてもよい。
セグメント生成部306は、複数のセグメント時間の系列のセグメントを同時に生成可能であってもよく、単一のセグメント時間の系列のセグメントしか同時に生成できなくてもどちらでもよい。例えば後者の場合、受信部301がクライアント装置102からセグメントの送信要求を受信してから、そのセグメントに対応するRepresentationのフレーム周期で、データ生成部305が映像フレームの生成を開始するものとしてもよい。
<第3の実施形態>
以下、第3の実施形態の情報処理装置について説明する。第3の実施形態の情報処理装置は図1のクライアント装置102であり、自らがセグメント時間を決定して、情報生成装置101側に伝えることを可能とした場合の例である。第3の実施形態の場合、図1の情報生成装置101は、前述した実施形態で説明したようなセグメント時間の決定処理を行わず、クライアント装置102が自ら決定して送信してきたセグメント時間の情報を受信する。そして、情報生成装置101は、クライアント装置102から送信されてきたセグメント時間に応じたセグメントのデータを生成して、そのクライアント装置102に送信する。
図11は、第3の実施形態におけるクライアント装置102のハードウェア構成例を示した図である。
第3の実施形態のクライアント装置102は、CPU1101、一次記憶装置1102、二次記憶装置1103、操作I/F1105、出力I/F1106、ネットワークI/F1107を有し、それらが内部バス1104を介して相互に接続されている。またクライアント装置102の出力I/F1106には、表示装置や音声出力装置等の再生装置1110が接続されているとする。
一次記憶装置1102は、RAM等の書き込み可能な高速の記憶装置であり、OSや各種プログラムおよび各種データがロードされ、それらの作業領域として使用される。二次記憶装置1103は、フラッシュメモリ、HDD、SDカード等の不揮発性記憶装置であり、OSや各種プログラムおよび各種データの永続的な記憶領域として使用され、また短期的な各種データの記憶領域としても使用される。
CPU1101は、二次記憶装置1103に記憶されているプログラムを一次記憶装置1102に展開して実行することにより、第3の実施形態に係るクライアント装置102の処理を行う。操作I/F1105は、本実施形態のクライアント装置102に対してユーザが各種指示を入力するためのインタフェースである。ネットワークI/F1107は、ネットワーク103を介して情報生成装置101に接続するインタフェースであり、情報生成装置101との通信を担う。
図12は、第3の実施形態に係るクライアント装置102の機能構成例を示す図である。
第3の実施形態のクライアント装置102は、通信部1201、周期取得部1202、時間取得部1203、時間決定部1204、セグメント処理部1205、および再生処理部1206を有する。これら通信部1201~再生処理部1206は、図11のCPU1101がプログラムを実行することにより機能する処理部である。
第3の実施形態の場合、周期取得部1202は、情報生成装置101が生成するメディアデータの最小単位であるフレーム周期を示す情報の取得要求コマンドを、通信部1201を介して情報生成装置101に送る。なお、フレーム周期を示す情報の取得要求は、プレイリスト送信要求コマンドに先立って送信することが望ましい。そして、周期取得部1202は、その送信要求に対するレスポンスとして情報生成装置101から送信されたフレーム周期を示す情報を、通信部1201を介して取得する。
時間取得部1203は、クライアント装置102の表示性能や処理性能、通信状況等に基づいて、セグメントの単位時間を指定する指定時間を示す情報を取得する。第3の実施形態において、時間取得部1203が取得する指定時間の情報は、前述した実施形態の情報生成装置101の時間取得部302が取得する単位時間情報に含まれる指定時間と同様の情報である。指定時間は、例えば前述した時間長方式やフレーム数方式により表現可能な時間であってもよい。
時間決定部1204は、フレーム周期および指定情報の情報を基に、情報生成装置101が生成するセグメントの単位時間の候補であるセグメント時間を少なくとも一つ決定する。第3の実施形態において、時間決定部1204が決定するセグメント時間は、前述した第1の実施形態あるいは第2の実施形態で決定されるのと同様のセグメント時間である。そして、クライアント装置102は、その決定したセグメント時間を示す情報を、例えばプレイリスト送信要求のコマンドに含め、通信部1201を介して情報生成装置101に対して送信する。
クライアント装置102は、前述したセグメント時間を含むプレイリスト送信要求のコマンド送信後、そのセグメント時間を基に情報生成装置101が生成して送信したセグメントのデータを、通信部1201を介して受信する。
セグメント処理部1205は、通信部1201が受信したセグメントのデータを復号化し、その復号化後のフレームのデータを結合等してメディアデータを復元する処理を行う。
再生処理部1206は、セグメント処理部1205にて復元されたメディアデータを基に、図11の再生装置1110において再生される映像や音声のデータを生成する再生処理を行う。
図13は、第3の実施形態のクライアント装置102における主要な処理の流れを示したフローチャートである。この図13のフローチャートの処理は、情報生成装置101に対して例えばプレイリスト送信要求の送信する前に行われるとする。
S1301では、周期取得部1202が、前述したフレーム周期取得要求のレスポンスとして情報生成装置101から送信されてきたフレーム周期を示す情報を、通信部1201を介して取得する。
S1302では、時間取得部1203が、クライアント装置102の表示性能や処理性能、通信状況等を基に、セグメントの単位時間を指定する指定時間の情報を取得する。
S1303では、時間決定部1204が、フレーム周期および指定時間の情報を基に、情報生成装置101が生成するセグメントの単位時間の候補であるセグメント時間を少なくとも一つ決定する。
S1304では、S1303で決定されたセグメント時間を示す情報を、通信部1201が、例えばプレイリスト送信要求のコマンドに含めて情報生成装置101に対して送信する。そして、セグメント時間を含むプレイリスト送信要求コマンドの送信が完了すると、クライアント装置102は、情報生成装置101からプレイリストが送信されてくるのを待つ状態となる。
<その他の実施形態>
なお、クライアント装置102は、情報生成装置101からプレイリストであるMPDを取得した後、そのMPDに記述されたフレーム周期を設定・変更等することも可能である。この場合、クライアント装置102は、フレーム周期を変更等した場合、その変更等した内容を、例えばメディアセグメントの送信要求コマンドに含めて情報生成装置101側に返送する。これにより、情報生成装置101は、変更等されたフレーム周期に応じたセグメントのデータを生成して、クライアント装置102に送信する。
また、情報生成装置101は、第3の実施形態のようにクライアント装置102側でセグメント時間の決定が行われたかどうかを検出可能であってもよい。情報生成装置101は、クライアント装置102側でセグメント時間の決定されていないことを検出した場合には、自身がセグメント時間を決定する処理を行うようにしてもよい。クライアント装置102側でセグメント時間の決定が行われたかどうかは、例えばforceオプションや、クライアント装置102から送られてきた指定時間の値がフレームレートに対して正確であるか否か等により検出することができる。
また、前述した各実施形態では、DASH配信を例に説明したが、HLS配信など他のアダプティブストリーミング技術にも本発明は適用可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
なお、前述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
101:情報生成装置、301:時間取得部、302:時間決定部、303:プレイリスト生成部、304:プレイリスト生成部、305:データ生成部、306:セグメント生成部、307:送信部、102:クライアント装置、103:ネットワーク

Claims (18)

  1. セグメントの単位時間を指定する第1の時間を示す情報を、外部装置から取得する時間取得手段と、
    前記第1の時間を示す情報に基づいて、前記セグメントの単位時間の候補である第2の時間を少なくとも一つ、決定する決定手段と、
    メディアデータのストリームを、前記決定された前記第2の時間ごとの前記セグメントに分けたセグメント情報を生成する生成手段と、
    前記セグメント情報を前記外部装置に送信する送信手段と、
    を有することを特徴とする情報処理装置。
  2. 設定情報に基づいて前記メディアデータを生成するデータ生成手段をさらに有し、
    前記決定手段は、前記メディアデータの生成に使用された前記設定情報を基に、前記第2の時間を決定することを特徴とする請求項1に記載の情報処理装置。
  3. 前記設定情報は異なる複数の設定情報からなり、
    前記決定手段は、前記メディアデータの生成に使用が可能な複数の前記設定情報に基づいて、前記第2の時間を決定することを特徴とする請求項2に記載の情報処理装置。
  4. 前記データ生成手段は、前記メディアデータの最小単位の時間であるフレーム周期の設定情報に基づいて、前記フレーム周期ごとのデータからなる前記メディアデータを生成し、
    前記決定手段は、前記フレーム周期の設定情報を基に、前記第2の時間を決定することを特徴とする請求項2または3に記載の情報処理装置。
  5. メディアデータの最小単位の時間であるフレーム周期を取得する周期取得手段と、
    セグメントの単位時間を指定する第1の時間を示す情報を取得する時間取得手段と、
    前記第1の時間を示す情報に基づいて、前記セグメントの単位時間の候補である第2の時間を少なくとも一つ、決定する決定手段と、
    メディアデータのストリームから前記セグメントごとのセグメント情報を生成する外部装置に対し、前記決定された第2の時間を示す情報を送信する送信手段と、
    を有することを特徴とする情報処理装置。
  6. 前記決定手段は、前記フレーム周期と前記第1の時間を示す情報とに基づいて、前記第2の時間を少なくとも一つ、決定することを特徴とする請求項5に記載の情報処理装置。
  7. 前記決定手段は、前記第1の時間以下の前記フレーム周期の整数倍の最大値を、前記第2の時間として決定することを特徴とする請求項4から6のいずれか1項に記載の情報処理装置。
  8. 前記決定手段は、前記第1の時間が前記フレーム周期より短い場合には、前記フレーム周期の設定情報に基づいて前記第2の時間を決定しないことを特徴とする請求項4からのいずれか1項に記載の情報処理装置。
  9. 前記決定手段は、前記第1の時間以上の前記フレーム周期の整数倍の最小値を、前記第2の時間として決定することを特徴とする請求項4からのいずれか1項に記載の情報処理装置。
  10. 前記決定手段は、前記第2の時間の上限値または下限値を示す所定の閾値と前記第1の時間との比較結果に基づいて、前記所定の閾値を前記第2の時間として決定することを特徴とする請求項1からのいずれか1項に記載の情報処理装置。
  11. 前記所定の閾値は、前記第2の時間の上限値であって、前記メディアデータのフレームを一つ以上、含むグループの時間長であり、
    前記グループには他のフレームを用いずに復号が可能なフレームが少なくとも一つ含まれ、
    前記決定手段は、前記第1の時間が前記所定の閾値以上の場合に、前記所定の閾値を前記第2の時間として決定することを特徴とする請求項10に記載の情報処理装置。
  12. 前記決定手段は、
    前記セグメントが送信されてから受信されるまでに要する遅延時間を推定し、
    前記第1の時間が、前記遅延時間以上の時間である場合に、前記遅延時間以上の前記所定の閾値を、前記第2の時間として決定することを特徴とする請求項10または1に記載の情報処理装置。
  13. 前記第1の時間は、時間長で示されることを特徴とする請求項1から1のいずれか1項に記載の情報処理装置。
  14. 前記第1の時間は、前記メディアデータの最小単位の数で示されることを特徴とする請求項1から1のいずれか1項に記載の情報処理装置。
  15. 前記メディアデータは、リアルタイムに取得された映像データと音声データの少なくとも何れかを含むデータであることを特徴とする請求項1から1のいずれか1項に記載の情報処理装置。
  16. セグメントの単位時間を指定する第1の時間を示す情報を、外部装置から取得する時間取得工程と、
    前記第1の時間を示す情報に基づいて、前記セグメントの単位時間の候補である第2の時間を少なくとも一つ、決定する決定工程と、
    メディアデータのストリームを、前記決定された前記第2の時間ごとの前記セグメントに分けたセグメント情報を生成する生成工程と、
    前記セグメント情報を前記外部装置に送信する送信工程と、
    を有することを特徴とする情報処理方法。
  17. メディアデータの最小単位の時間であるフレーム周期を取得する周期取得工程と、
    セグメントの単位時間を指定する第1の時間を示す情報を取得する時間取得工程と、
    前記第1の時間を示す情報に基づいて、前記セグメントの単位時間の候補である第2の時間を少なくとも一つ、決定する決定工程と、
    メディアデータのストリームから前記セグメントごとのセグメント情報を生成する外部装置に対し、前記決定された第2の時間を示す情報を送信する送信工程と、
    を有することを特徴とする情報処理方法。
  18. コンピュータを、請求項1から1のいずれか1項に記載の情報処理装置して機能させるためのプログラム。
JP2018145650A 2018-08-02 2018-08-02 情報処理装置、情報処理方法、及びプログラム Active JP7229696B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018145650A JP7229696B2 (ja) 2018-08-02 2018-08-02 情報処理装置、情報処理方法、及びプログラム
US16/522,099 US11496535B2 (en) 2018-08-02 2019-07-25 Video data transmission apparatus, video data transmitting method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018145650A JP7229696B2 (ja) 2018-08-02 2018-08-02 情報処理装置、情報処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2020022106A JP2020022106A (ja) 2020-02-06
JP7229696B2 true JP7229696B2 (ja) 2023-02-28

Family

ID=69228032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018145650A Active JP7229696B2 (ja) 2018-08-02 2018-08-02 情報処理装置、情報処理方法、及びプログラム

Country Status (2)

Country Link
US (1) US11496535B2 (ja)
JP (1) JP7229696B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111954001A (zh) * 2020-07-31 2020-11-17 西安万像电子科技有限公司 图像编码方法、装置、编码端设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011114681A (ja) 2009-11-27 2011-06-09 Mitsubishi Electric Corp 映像情報再生方法及びシステム、並びに映像情報コンテンツ
JP2015041800A (ja) 2013-08-20 2015-03-02 キヤノン株式会社 受信装置及び受信方法
JP2016506682A5 (ja) 2013-12-16 2017-01-19
JP2017063282A (ja) 2015-09-24 2017-03-30 ブラザー工業株式会社 サーバ装置、サーバプログラム、端末プログラム、動画送信方法、動画表示方法、通信システム
US20170094338A1 (en) 2015-09-28 2017-03-30 Takahiro Kamekura Information processing apparatus and delivery method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7027708B2 (en) * 2000-12-29 2006-04-11 Etalk Corporation System and method for reproducing a video session using accelerated frame playback
JP3629253B2 (ja) * 2002-05-31 2005-03-16 株式会社東芝 音声再生装置および同装置で用いられる音声再生制御方法
US8582905B2 (en) 2006-01-31 2013-11-12 Qualcomm Incorporated Methods and systems for rate control within an encoding device
JP2008092107A (ja) * 2006-09-29 2008-04-17 Toshiba Corp 情報処理装置及び音声/映像データ再生方法
US8914835B2 (en) 2009-10-28 2014-12-16 Qualcomm Incorporated Streaming encoded video data
US10735486B2 (en) 2012-12-28 2020-08-04 Qualcomm Incorporated Device timing adjustments and methods for supporting dash over broadcast
US10063872B2 (en) * 2015-09-11 2018-08-28 Facebook, Inc. Segment based encoding of video

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011114681A (ja) 2009-11-27 2011-06-09 Mitsubishi Electric Corp 映像情報再生方法及びシステム、並びに映像情報コンテンツ
US20120207215A1 (en) 2009-11-27 2012-08-16 Tomoaki Ryu Video information reproduction method and system, and video information content
JP2015041800A (ja) 2013-08-20 2015-03-02 キヤノン株式会社 受信装置及び受信方法
JP2016506682A5 (ja) 2013-12-16 2017-01-19
JP2017063282A (ja) 2015-09-24 2017-03-30 ブラザー工業株式会社 サーバ装置、サーバプログラム、端末プログラム、動画送信方法、動画表示方法、通信システム
US20170094338A1 (en) 2015-09-28 2017-03-30 Takahiro Kamekura Information processing apparatus and delivery method
JP2017069636A (ja) 2015-09-28 2017-04-06 株式会社リコー 情報処理装置、配信方法、及びプログラム

Also Published As

Publication number Publication date
US11496535B2 (en) 2022-11-08
US20200045096A1 (en) 2020-02-06
JP2020022106A (ja) 2020-02-06

Similar Documents

Publication Publication Date Title
US8515265B2 (en) Method and apparatus for providing trick play service
US11997302B2 (en) Encoding device, decoding device, streaming system, and streaming method
WO2017138387A1 (ja) 情報処理装置および情報処理方法
KR102362513B1 (ko) 타임 슬라이스 영상을 생성하는 서버, 방법 및 사용자 단말
JP2009512316A (ja) カメラパラメータを利用した多視点動画符号化及び復号化装置並びに方法と、これを行うためのプログラムの記録された記録媒体
JP7073128B2 (ja) 通信装置、通信方法、及びプログラム
JP6541309B2 (ja) 送信装置、送信方法、及びプログラム
JP7238948B2 (ja) 情報処理装置および情報処理方法
CN108696505B (zh) 视频分发设备、视频接收设备、视频分发方法和记录介质
JP7229696B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US8812584B2 (en) Moving picture file transmitting server and method of controlling operation of same
JP6193569B2 (ja) 受信装置、受信方法、及びプログラム、撮像装置、撮像方法、及びプログラム、送信装置、送信方法、及びプログラム
JP5739079B1 (ja) 動画圧縮装置および動画圧縮伸長システム
WO2019031306A1 (ja) 生成装置、再生装置、生成方法、再生方法、制御プログラム、記録媒体
JP2017098706A (ja) 受信装置、セグメント取得方法、及びプログラム
US10298651B2 (en) Encoding device, decoding device, computer program product, and streaming system
CN109104552B (zh) 摄像设备、摄像设备的处理方法和存储介质
JP6890977B2 (ja) 送信装置、送信方法、およびプログラム
JP6400163B2 (ja) 受信装置、受信方法、送信装置、送信方法、及びプログラム
JP2019152972A (ja) 配信装置、情報処理方法及びプログラム
JP7305371B2 (ja) 情報配信装置、情報配信方法及びプログラム
JP7292901B2 (ja) 送信装置、送信方法、及びプログラム
JP2019029931A (ja) 映像送信装置、映像受信装置、映像送受信システム、制御方法、並びにプログラム
EP3376769A1 (en) Systems and methods for adaptive streaming using jpeg 2000
JP2020129734A (ja) コンテンツ生成装置、受信装置、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220920

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230215

R151 Written notification of patent or utility model registration

Ref document number: 7229696

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151