JP5143295B1 - 電子機器及びインデックス生成方法 - Google Patents

電子機器及びインデックス生成方法 Download PDF

Info

Publication number
JP5143295B1
JP5143295B1 JP2012015564A JP2012015564A JP5143295B1 JP 5143295 B1 JP5143295 B1 JP 5143295B1 JP 2012015564 A JP2012015564 A JP 2012015564A JP 2012015564 A JP2012015564 A JP 2012015564A JP 5143295 B1 JP5143295 B1 JP 5143295B1
Authority
JP
Japan
Prior art keywords
packet
program
buffer
content data
group
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
JP2012015564A
Other languages
English (en)
Other versions
JP2013157734A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012015564A priority Critical patent/JP5143295B1/ja
Priority to EP20120180976 priority patent/EP2621190A1/en
Priority to US13/611,277 priority patent/US8509598B1/en
Application granted granted Critical
Publication of JP5143295B1 publication Critical patent/JP5143295B1/ja
Publication of JP2013157734A publication Critical patent/JP2013157734A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/322Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier used signal is digitally coded
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4332Content storage operation, e.g. storage operation in response to a pause request, caching operations by placing content in organized collections, e.g. local EPG data repository
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop

Abstract

【課題】コンテンツデータを受信しながらそのコンテンツデータに対応するインデックス情報を作成できる電子機器を実現する。
【解決手段】実施形態によれば、電子機器は、1以上のプログラムを含むコンテンツデータのストリームを構成する第1パケット群をサーバから受信する。この電子機器は、前記第1パケット群の内の前記1以上のプログラムの構成に関するプログラム情報を含む第1パケットを検出し、前記第1パケット群の内のランダムアクセス可能なビデオフレームを運ぶための第2パケット群内の先頭の第2パケットを検出し、前記第2パケットから、又は前記第2パケットと同一のパケット識別子を有する他の受信されたパケットから、前記ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプを検出する。電子機器は、前記第1パケットが格納された前記バッファ内の位置と前記タイムスタンプとを示すインデックス情報を生成する。
【選択図】図4

Description

本発明の実施形態は、コンテンツデータを再生可能な電子機器及び該機器に適用されるインデックス生成方法に関する。
近年、パーソナルコンピュータ、PDA、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ネットワークを介してマルチメディアコンテンツデータを受信し、そのマルチメディアコンテンツデータを再生する再生機能を有している。
このような電子機器は、例えば、デジタル・リビング・ネットワーク・アライアンス(DLNA)に基づく機能を利用して、パーソナルビデオレコーダのようなデジタルメディアサーバ(DMS)に格納された映像コンテンツデータや音楽データ等を、ネットワークを介してダウンロードし、再生する。
特開2004−194215号公報
電子機器上で実行されるプレーヤソフトウェアは、シークバー(又はプログレッシブバー)と称されるユーザインタフェースを表示する。ユーザは、シークバーを操作することによって、マルチメディアコンテンツデータ内の再生位置を変更(シーク)することができる。
MPEGにおいて規格化されたMP4のようなファイルフォーマットを有するコンテンツデータは、シーク用のインデックス情報を含んでいる。
しかしながら、幾つかの種類のコンテンツデータ(例えば、MPEG−2 TS/TTSコンテンツデータ等)においては、シーク用のインデックス情報はそのコンテンツデータに包含されていない。このため、電子機器側では、MPEG−2 TS/TTSコンテンツデータのストリーム内のピクチャ構造等を解析することによってそのストリームに対応するインデックス情報を作成することが必要とされる。しかし、一般的に、ストリームのピクチャ構造を解析するためには、そのストリームをデコードする処理と同等の処理を実行することが必要とされる。このため、コンテンツデータを受信しながら、インデックス情報をリアルタイムに作成することは困難である。
本発明は、コンテンツデータを受信しながらそのコンテンツデータに対応するインデックス情報を作成することができる電子機器及びインデックス生成方法を提供することを目的とする。
実施形態によれば、電子機器は、1以上のプログラムを含むコンテンツデータのストリームを構成する第1パケット群をサーバから受信する。この電子機器は、バッファ、プログラム情報検出手段、ランダムアクセス情報検出手段、及びインデックス生成手段を具備する。バッファは、前記第1パケット群を格納する。プログラム情報検出手段は、前記第1パケット群の内の、前記1以上のプログラムの構成に関するプログラム情報を含む第1パケットを検出する。ランダムアクセス情報検出手段は、前記第1パケット群の内の、ランダムアクセス可能なビデオフレームを運ぶための第2パケット群内の先頭の第2パケットを検出し、前記第2パケットから、又は前記第2パケットと同一のパケット識別子を有する他の受信されたパケットから、前記ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプを検出する。インデックス生成手段は、前記第1パケットが格納された前記バッファ内の位置と前記タイムスタンプとを示すインデックス情報を生成する。
実施形態に係る電子機器の外観を示す斜視図。 同実施形態の電子機器によって実行されるプレーヤソフトウェアによって表示されるコンテンツ再生画面の例を示す図。 同実施形態の電子機器のシステム構成を示すブロック図。 同実施形態の電子機器によって実行されるプレーヤソフトウェアの構成を示すブロック図。 図4のプレーヤソフトウェアによってサーバから受信されるトランスポートストリーム(TS)パケット群を説明するための図。 図5のトランスポートストリーム(TS)パケットに付加されるランダムアクセスインジケータを説明するための図。 図4のプレーヤソフトウェアによって組み立てられるパケッタイズドエレメンタリーストリーム(PES)パケットヘッダを説明するための図。 図4のプレーヤソフトウェアによって用いられるプログラムアソシエーションテーブル(PAT)とプログラムマップテーブル(PMT)とを説明するための図。 図4のプレーヤソフトウェアによって使用されるバッファを説明するための図。 図4のプレーヤソフトウェアによって生成されるインデックス情報を説明するための図。 図4のプレーヤソフトウェアによって使用されるバッファを説明するための別の図。 図4のプレーヤソフトウェアによって生成されるインデックス情報を説明するための別の図。 図4のプレーヤソフトウェアによって使用されるバッファを説明するためのさらに別の図。 図4のプレーヤソフトウェアによって実行されるインデックス作成処理の手順を示すフローチャート。 図4のプレーヤソフトウェアによって実行されるインデックス作成処理の別の手順を示すフローチャート。 図4のプレーヤソフトウェアによって実行されるインデックス作成処理のさらに別の手順を示すフローチャート。
以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、スレート型パーソナルコンピュータ(PC)、ラップトップ型PC、スマートフォン、又はPDA等として実現され得る。以下では、この電子機器がスレート型パーソナルコンピュータ10として実現されている場合を想定する。スレート型パーソナルコンピュータ10は、図1に示すように、コンピュータ本体11とタッチスクリーンディスプレイ17とから構成される。
コンピュータ本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、液晶表示装置(LCD)及びタッチパネルが組み込まれている。タッチパネルは、LCDの画面を覆うように設けられる。タッチスクリーンディスプレイ17は、コンピュータ本体11の上面に重ね合わせるように取り付けられている。
コンピュータ10はコンテンツデータを再生するコンテンツ再生機能を有している。このコンテンツ再生機能では、コンテンツデータをストリーミングによって再生することもできる。また、このコンテンツ再生機能はコンピュータ10にインストールされたプレーヤソフトウェアによって実行される。プレーヤソフトウェアによるコンテンツ再生動作は、オペレーティングシステムによって提供されるマルチメディアフレームワークを利用して実行するようにしてもよい。コンピュータ10は有線又は無線のネットワークを介した通信を実行するための通信デバイスを内蔵している。コンピュータ10は、この通信デバイスを用いることにより、例えば無線ローカルエリアネットワーク(無線LAN)20を介して、コンテンツサーバ21との通信を実行する。
コンテンツデータは、例えば、ビデオデータとオーディオデータとが多重化されたデータストリームである。ビデオデータは圧縮符号化されていてもよく、またオーディオデータも圧縮符号化されていてもよい。コンテンツデータは、ビデオデータのみから構成されていてもよい。
プレーヤソフトウェアは無線LAN20のようなネットワークを介してコンテンツサーバ21からコンテンツデータ(マルチメディアコンテンツデータ)を受信する。プレーヤソフトウェアはマルチメディアコンテンツデータを受信しながら、そのマルチメディアコンテンツデータを再生するためのインデックスを作成する。また、プレーヤソフトウェアは、マルチメディアコンテンツデータを受信しながらそのマルチメディアコンテンツデータを再生することや、インデックス作成済みのマルチメディアコンテンツデータをSSD109のような記憶装置から読み出して再生することもできる。コンピュータ10においては、マルチメディアコンテンツデータ内の受信されたデータ部はバッファに格納される。バッファはコンピュータ10内のメモリの一部である。バッファに一定量のデータが蓄積された後に、プレーヤソフトウェアはマルチメディアコンテンツデータに対応するインデックスの作成を開始する。
マルチメディアコンテンツデータに対応するインデックス作成処理の間、プレーヤソフトウェアは、先読み処理を実行してもよい。先読み処理は、現在のインデックス作成位置よりも時間的に後のデータ部をコンテンツサーバ21から順次受信してバッファに格納するバッファリング処理である。また、マルチメディアコンテンツデータの再生処理においては、バッファに格納されたビデオデータ部及びオーディオデータ部の各々が再生される。
図2は、プレーヤソフトウェアによってディスプレイ17に表示されるコンテンツ再生画面の例である。コンテンツ再生画面はビデオ表示エリア31及びシークバー33を表示する。ビデオ表示エリア31は、マルチメディアコンテンツデータ内のビデオデータの画像(動画像)を表示するための表示領域である。シークバー33はマルチメディアコンテンツデータの再生位置をユーザに制御させるためのグラフィカルユーザインタフェースである。
シークバー33の左端及び右端は再生対象のマルチメディアコンテンツデータの先頭位置及び終端位置にそれぞれ対応する。マルチメディアコンテンツデータの再生期間中においては、マルチメディアコンテンツデータの再生位置は時間の経過に伴って自動的に更新される。再生位置を示す値としては、マルチメディアコンテンツデータの先頭位置を起点としたオフセット値を用いてもよい。ある再生位置に対応するオフセット値は、マルチメディアコンテンツデータの先頭位置からその再生位置までの再生時間を示す。
シークバー33はスライダ35を表示する。スライダ35はマルチメディアコンテンツデータ内の現在再生位置を示す。つまり、スライダ35はマルチメディアコンテンツデータの再生の進行状況を示す。ユーザは、ポインティングデバイスを用いてスライダ35を移動させることにより、マルチメディアコンテンツデータの再生位置を変更することができる。
図3は、本コンピュータ10のシステム構成を示す図である。
本コンピュータ10は、図3に示されるように、CPU101、ノースブリッジ102、主メモリ103、サウスブリッジ104、グラフィクスコントローラ105、サウンドコントローラ106、BIOS−ROM107、LANコントローラ108、ソリッドステートドライブ(SSD)109、無線LANコントローラ112、エンベデッドコントローラ(EC)113、EEPROM114、HDMI制御回路3等を備える。
CPU101は、コンピュータ10内の各部の動作を制御するプロセッサである。CPU101は、SSD109から主メモリ103にロードされる、オペレーティングシステム(OS)201、及び各種アプリケーションプログラムを実行する。アプリケーションプログラムには、プレーヤアプリケーションプログラム202が含まれている。このプレーヤアプリケーションプログラム202は上述のプレーヤソフトウェアであり、オペレーティングシステム(OS)201上で実行される。
また、CPU101は、BIOS−ROM107に格納されたBIOSも実行する。BIOSは、ハードウェア制御のためのプログラムである。
ノースブリッジ102は、CPU101のローカルバスとサウスブリッジ104との間を接続するブリッジデバイスである。ノースブリッジ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ102は、PCI EXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ105との通信を実行する機能も有している。
グラフィクスコントローラ105は、本コンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示コントローラである。このグラフィクスコントローラ105によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて映像を表示する。このLCD17A上にはタッチパネル17Bが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うためのポインティングデバイスである。ユーザは、タッチパネル17Bを用いて、LCD17Aの画面に表示されたグラフィカルユーザインタフェース(GUI)等を操作することができる。例えば、ユーザは、画面に表示されたボタンをタッチすることによって、当該ボタンに対応する機能の実行を指示することができる。
HDMI端子2は、外部ディスプレイ接続端子である。HDMI端子2は、非圧縮のデジタル映像信号とデジタルオーディオ信号とを1本のケーブルで外部ディスプレイ装置1に送出することができる。HDMI制御回路3は、HDMIモニタと称される外部ディスプレイ装置1にデジタル映像信号をHDMI端子2を介して送出するためのインタフェースである。つまり、コンピュータ10は、HDMI端子2等を介して、外部ディスプレイ装置1に接続可能である。
サウスブリッジ104は、PCI(Peripheral Component Interconnect)バス上の各デバイス及びLPC(Low Pin Count)バス上の各デバイスを制御する。また、サウスブリッジ104は、SSD109を制御するためのATAコントローラを内蔵している。
サウスブリッジ104は、各種USBデバイスを制御するためのUSBコントローラを内蔵している。さらに、サウスブリッジ104は、サウンドコントローラ106との通信を実行する機能も有している。サウンドコントローラ106は音源デバイスであり、再生対象のオーディオデータをスピーカ18A,18Bに出力する。LANコントローラ108は、例えばIEEE 802.3規格の有線通信を実行する有線通信デバイスである。無線LANコントローラ112は、例えばIEEE 802.11規格の無線通信を実行する無線通信デバイスである。
EC113は、電力管理のためのエンベデッドコントローラを含む1チップマイクロコンピュータである。EC113は、ユーザによるパワーボタンの操作に応じて本コンピュータ10を電源オン/電源オフする機能を有している。
次に、図4を参照して、プレーヤアプリケーションプログラム202の機能構成を説明する。以下では、説明を簡単にするため、プレーヤアプリケーションプログラム202が有する機能の内のインデックス作成機能について説明し、コンテンツデータを再生するための再生制御機能等については説明を省略する。プレーヤアプリケーションプログラム202には、デマルチプレクサ、ビデオデコーダ、オーディオデコーダ、レンダラ等(図示せず)が設けられ、コンテンツデータを再生することや、インデックス情報を用いてコンテンツデータの再生位置をシークすることができる。
プレーヤアプリケーションプログラム202は、データソース41とパケット解析部40とを備える。データソース41は、コンテンツサーバ21からマルチメディアコンテンツデータを受信するための処理を順次実行し、受信されたデータ部分それぞれをバッファ42に格納する(バッファリング)。データソース41は、例えば、ユーザによってコンテンツデータのダウンロードが要求され、コンテンツデータがコンテンツサーバ21によって送信されたことに応じて、コンテンツデータを受信する。
このバッファリングにおいては、データソース41は、1以上のプログラム(番組とも称する)を含むコンテンツデータのストリームを構成するパケット群(第1パケット群)をサーバ21から順次受信する。このプログラムは、番組を構成する映像や音声等のビットストリームを含む単位である。これら各パケットは、トランスポートストリーム(TS)パケットである。また、これら各パケットは、タイムスタンプドTSパケット(TTSパケット)であってもよい。TTSパケットはTSパケットの一種であり、TSパケットの先頭にタイムスタンプが付与されたパケットである。
TS/TTSパケットは、プログラムの構成に関するプログラム情報や、ビットストリーム等を運ぶためのパケットである。プログラム情報はセクションと呼ばれるデータ構造で多重化された後、TSパケットに多重化される。ビットストリームはパケッタイズドエレメンタリーストリーム(PES)パケットで多重化された後、TSパケットに多重化される。バッファ42は、受信されたTS/TTSパケット群、つまりコンテンツデータ内の一部のデータを格納する。
パケット解析部40は、受信されたTS/TTSパケット群を解析することによって、コンテンツデータのインデックスを作成する。パケット解析部40は、プログラム情報検出部43、ランダムアクセス情報検出部44、及びインデックス生成部45を備える。パケット解析部40は、例えば、コンテンツデータに対するシーク用のインデックス情報をバッファリング中にリアルタイムに生成する。
このインデックス情報の生成動作には、コンテンツデータに含まれるプログラム情報が用いられる。上述のように、1以上のプログラムを含むコンテンツデータのストリームを構成するTSパケット群(第1パケット群)には、当該1以上のプログラムの構成を示すプログラム情報を含むTSパケットが含まれる。プログラム情報は、セクションという単位で、TSパケットのペイロードに配置され、伝送される。プログラム情報には、例えば、プログラムアソシエーションテーブル(PAT)とプログラムマップテーブル(PMT)とがある。プログラムアソシエーションテーブル(PAT)には、1以上のプログラムと、プログラムマップテーブル(PMT)を含む1以上のパケットのパケット識別子(PID)との対応が記述される。そして、PATを含むTSパケットのパケット識別子(PID)には、“0”(0x0000)が設定されることが規定されている。つまり、PIDが“0”であるTSパケットを検出することによって、PATを含むTSパケット(第1パケット)を取得することができる。また、プログラムマップテーブルには、プログラム(1以上のプログラムの内の第1プログラム)を構成するエレメンタリーストリーム(ES)に対応するTSパケットのパケット識別子(PID)が記述される。したがって、PATとPMTとを参照することによって、受信したTSパケットから、あるプログラムを構成するTSパケットだけを取り出すことができる。そして、取り出されたTSパケットに含まれるエレメンタリーストリーム(ペイロード)をデコードすることによって、そのプログラムを再生することができる。
また、このインデックス情報の生成動作を支援するために、サーバ21は、コンテンツデータ内の各ランダムアクセスポイントに対応するTSパケットを送信する場合に、そのTSパケットのヘッダに“1”のランダムアクセスインジケータフラグ(random_access_indicator)を設定するように構成されている。なお、サーバ21は、TS/TTSパケットのヘッダ内の任意のフィールドに、ランダムアクセスポイントを示すフラグを設定することもできる。
ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケットは、ランダムアクセス可能なビデオフレームを運ぶための複数のTSパケット群(第2パケット群)内の先頭のTSパケット(第2パケット)である。あるビデオフレームを運ぶための一つのパケッタイズドエレメンタリーストリーム(PES)パケットは、同一のパケット識別子(PID)を持つ複数のTSパケットのペイロードに分割して伝送される。したがって、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケットは、ランダムアクセス可能なビデオフレームを運ぶためのPESパケットが分散される複数のTSパケット内の先頭TSパケットである。ランダムアクセス可能なビデオフレームは、他のビデオフレームを参照せずにデコード可能なビデオフレーム、例えばH.264のIDR(Instantaneous Decoder Refresh)フレーム、MPEG−2 VideoのI(Intra)フレーム、等である。
サーバ21は、ランダムアクセス可能なビデオフレームを格納するPESパケットが割り当てられた複数のTSパケットの内の先頭TSパケットのヘッダに存在するrandom_access_indicatorに“1”をセットする。
パケット解析部40に設けられたプログラム情報検出部43は、1以上のプログラムの構成に関するプログラム情報を含む第1パケットを検出する。具体的には、プログラム情報検出部43は、受信されたTSパケットのヘッダを参照して、受信されたTSパケットが、PATを含むTSパケットであるか否か、つまり、パケット識別子(PID)に“0”(0x0000)が設定されたTSパケットであるか否かを判定する。受信されたTSパケットがPATを含むTSパケット(第1パケット)である場合、プログラム情報検出部43は、このTSパケットが格納されるバッファ42内の位置を取得する。PATを含むTSパケットが格納されるバッファ42内の位置としては、例えば、そのTSパケットが格納されるバッファ42内のオフセット位置が用いられる。なお、プログラム情報検出部43は、PATが格納されるバッファ42内のオフセット位置を取得してもよい。プログラム情報検出部43は、取得されたバッファ42内の位置をランダムアクセス情報検出部44に出力する。
また、ランダムアクセス情報検出部44は、受信されたTSパケットのヘッダを参照して、受信されたTSパケットが、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケットであるか否か、つまり、random_access_indicatorに“1”がセットされたTSパケットであるか否かを判定する。なお、ランダムアクセス情報検出部44は、受信されたTSパケットがランダムアクセスポイントに対応するTSパケットであるか否かを、TSパケットのヘッダ内の任意のフィールドに設定されたフラグに基づいて判定してもよい。受信されたTSパケットがランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケット(第2パケット)である場合、ランダムアクセス情報検出部44は、このランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケットから、又はこのランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケットと同一のパケット識別子(PID)を有する他の受信されたTSパケットから、ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプを取得する。
この場合、ランダムアクセス情報検出部44は、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケットと、このランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケットと同一のパケット識別子を有する他の受信された1以上のTSパケットとを用いて、ランダムアクセス可能なビデオフレームを運ぶPESパケットのヘッダを組み立て、この組み立てたヘッダから、ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプ(プレゼンテーションタイムスタンプ:PTS)を取得してもよい。PESパケットのヘッダは幾つかのTSパケットに分散されている場合がある。したがって、上述のようにPESパケットのヘッダを組み立て、その組み立てられたヘッダからPTSを取得することにより、たとえPESパケットのヘッダが幾つかのTSパケットに分散されている場合であっても、ランダムアクセス可能なビデオフレームに対応するPTSをより正しく取得することができる。
ランダムアクセス情報検出部44は、取得された提示時刻(PTS)と、プログラム情報検出部43によって直近に出力された、PATを含むTSパケットが格納されるバッファ42内のオフセット位置(すなわち、トランスポートシーケンスにおいて、ランダムアクセスインジケータフラグが設定されたTSパケット以前且つ直近の、PATを含むTSパケットが格納されるバッファ42内のオフセット位置)とをインデックス生成部45に出力する。
そして、インデックス生成部45は、ランダムアクセス情報検出部44によって出力された提示時刻(PTS)と、PATを含むTSパケットが格納されるバッファ42内の位置とを示すインデックス情報を生成する。このインデックス情報はインデックス情報記憶部46に格納される。ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケット(第2パケット)が受信される度、ランダムアクセス可能な新たなビデオフレームに対応するインデックス情報が生成される。これによって、バッファ42に格納されたデータ内のランダムアクセス可能な箇所毎に、提示時刻とPTAのバッファ42内での格納位置(バッファ内オフセット)とのペアが、インデックス情報としてインデックス情報記憶部46に格納される。このインデックス情報記憶部46は、例えば、SSD109内の所定の記憶領域である。なお、インデックス生成部45は、提示時刻(PTS)とPATが格納されたバッファ42内のオフセット位置とを示すインデックス情報を生成してもよい。
また、インデックス生成部45は、受信したコンテンツデータの解析が完了したことに応じて、受信したデータ(すなわち、バッファ42に格納されているコンテンツデータ)をファイルに書き出し、そのファイルをコンテンツデータファイル記憶部47に格納する。このコンテンツデータファイル記憶部47は、例えば、SSD109内の所定の記憶領域である。このコンテンツデータのファイルと、上述のインデックス情報とは互いに関連付けて格納される。
このように、バッファリング中に簡易な処理でシークに使用するインデックス情報を作成しておくことで、コンテンツ再生時のシークの精度やレスポンスを向上させることができる。また、ランダムアクセス時に参照する必要があるPATのオフセットをインデックス情報に含めることによって、ストリーム中で、映像や音声のストリームが切り替わるようなコンテンツデータでも、精度よくシークを行うことができる。なお、上述のインデックス情報作成処理は、コンテンツデータのストリーミング再生中に並行して行うこともできる。
上述のように、あるコンテンツに対応するインデックス情報とコンテンツデータファイルとは、互いに関連付けて格納される。したがって、例えばユーザによるスライダ35の移動操作によって、コンテンツ再生位置が現在再生位置と異なる位置(変更先再生位置)に変更された場合、変更先再生位置に対応する提示時刻(シーク先時刻)が算出され、そのコンテンツに関連付けられたインデックス情報から、シーク先時刻に対応するPATのバッファ内オフセットが検出される。そして、バッファリングされたコンテンツデータファイル内のデータから、PATに対応するデータ部が検出される。このデータ部に格納されたPATに記述されたPMTのパケット識別子に基づいて、再生対象のプログラム(番組)のPMTが取得される。そして、取得されたPMTを参照することによって、当該プログラムを構成するエレメンタリーストリームを運ぶためのTSパケットのパケット識別子が取得される。取得されたパケット識別子を有するTSパケット(バッファ42内において、PATより後、且つ直近の、取得されたパケット識別子を有するTSパケット)に含まれるデータをデコードして再生することにより、コンテンツの再生位置を指示されたシーク位置に移動させることができる。
なお、パケット解析部40は、直近のPATと、ランダムアクセスインジケータフラグが設定されたTSパケットのPIDが記述されたPMTとを、ランダムアクセスインジケータフラグが設定されたTSパケットの直前に挿入して、インデックス情報を生成してもよい。
その場合、プログラム情報検出部43は、PATを含むTSパケット(第1パケット)を検出する。プログラム情報検出部43は、PATを含むTSパケットを組み立て、PATを取得する。そして、プログラム情報検出部43は、取得したPATをランダムアクセス情報検出部44に出力する。
また、プログラム情報検出部43は、取得したPATを参照して、プログラム毎のPMTのパケット識別子(PID)を検出する。プログラム情報検出部43は、検出されたPIDと同一のPIDを有するTSパケットを検出することによって、PMTを含むTSパケット(第3パケット)を取得する。プログラム情報検出部43は、PMTを含むTSパケットを組み立てたPMTを取得し、取得したPMTをランダムアクセス情報検出部44に出力する。
ランダムアクセス情報検出部44は、受信されたTSパケットのヘッダを参照して、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケット(第2パケット)を検出する。ランダムアクセス情報検出部44は、ランダムアクセスインジケータフラグが設定されたTSパケットが格納されるバッファ42内の位置を取得する。そして、ランダムアクセス情報検出部44は、このランダムアクセスインジケータフラグ)が設定されたTSパケットから、又はこのランダムアクセスインジケータフラグが設定されたTSパケットと同一のパケット識別子(PID)を有する他の受信されたTSパケットから、ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプを取得する。
ランダムアクセス情報検出部44は、プログラム情報検出部43によって出力されたPMTの内、ランダムアクセスインジケータフラグが設定されたTSパケットのPIDが記述されたPMTを検出する。そして、ランダムアクセス情報検出部44は、取得されたランダムアクセスインジケータフラグが設定されたTSパケットが格納されるバッファ42内の位置及び提示時刻(PTS)と、プログラム情報検出部43によって直近に出力されたPATと、検出されたPMTとをインデックス生成部45に出力する。
インデックス生成部45は、ランダムアクセス情報検出部44によって出力されたPAT及びPMT(PATを含むTSパケット及びPMTを含むTSパケット)を、バッファ42内において、ランダムアクセスインジケータフラグが設定されたTSパケットが格納された位置の直前に挿入する。そして、インデックス生成部45は、ランダムアクセス可能なビデオフレームの提示時刻(PTS)と、挿入されたPATが格納されるバッファ42内のオフセット位置とを示すインデックス情報を生成する。このインデックス情報はインデックス情報記憶部46に格納される。
また、インデックス生成部45は、受信したコンテンツデータの解析が完了したことに応じて、バッファ42内に格納されているコンテンツデータ(挿入されたPAT、PMTを含む)をファイルに書き出し、そのファイルをコンテンツデータファイル記憶部47に格納する。
このように、PAT及びPMTをランダムアクセスインジケータフラグが設定されたTSパケットの直前に挿入し、ランダムアクセス可能なビデオフレームの提示時刻(PTS)と、挿入されたPATが格納されるバッファ42内のオフセット位置とを示すインデックス情報を作成しておくことで、シーク時に読み込まれるデータ量を低減し、レスポンスを向上させることができる。
パケット解析部40はさらに、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケットよりも前に、PATを含むTSパケット及び/又はランダムアクセスインジケータフラグが設定されたTSパケットのPIDが記述されたPMTを含むTSパケットが受信されていない場合、PAT及び/又はPMTを新たに生成して、インデックス情報を生成することもできる。
その場合、ランダムアクセス情報検出部44は、受信されたTSパケットのヘッダを参照して、ランダムアクセスインジケータフラグが設定されたTSパケットを検出する。ランダムアクセス情報検出部44は、ランダムアクセスインジケータフラグが設定されたTSパケットが格納されるバッファ42内の位置を取得する。そして、ランダムアクセス情報検出部44は、このランダムアクセスインジケータフラグが設定されたTSパケットから、又はこのランダムアクセスインジケータフラグが設定されたTSパケットと同一のパケット識別子(PID)を有する他の受信されたTSパケットから、ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプを取得する。ランダムアクセス情報検出部44は、ランダムアクセスインジケータフラグが設定されたTSパケットのPIDと、当該TSパケットが格納されるバッファ42内の位置と、提示時刻(PTS)とをインデックス生成部45に出力する。
インデックス生成部45は、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケットが受信されたときに、PATを含むTSパケット及び/又はランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケットのPIDが記述されたPMTを含むTSパケットが未だ受信されていない場合、ランダムアクセスインジケータフラグが設定されたTSパケットがビデオストリームを含むTSパケットであるので、当該TSパケットより後であって、且つ直近に受信されたオーディオストリームを含むTSパケット(第4パケット)を検出する。インデックス生成部45は、例えば、PESパケットのヘッダ部分に含まれる、stream idのフィールド部に設定された値に基づいて、TSパケットがオーディオストリームを含むTSパケットであるか否かを判定することができる。
そして、インデックス生成部45は、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケット(すなわち、ビデオストリームを含むTSパケット)のPIDと、検出されたオーディオストリームを含むTSパケットのPIDとが記述されたPMT(PMTを含む第6パケット)を生成し、当該PMTのPIDが記述されたPAT(PATを含む第5パケット)を生成する。インデックス生成部45は、生成されたPATとPMTとを、バッファ42内において、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケットが格納された位置の直前に、PAT及びPMT(PATを含む第5パケット及びPMTを含む第6パケット)を挿入する。そして、インデックス生成部45は、ランダムアクセス可能なビデオフレームの提示時刻(PTS)と、挿入されたPAT(第5パケット)が格納されるバッファ42内のオフセット位置とを示すインデックス情報を生成する。このインデックス情報はインデックス情報記憶部46に格納される。
また、インデックス生成部45は、受信したコンテンツデータの解析が完了したことに応じて、バッファ42内に格納されているコンテンツデータ(挿入されたPAT、PMTを含む)をファイルに書き出し、そのファイルをコンテンツデータファイル記憶部47に格納する。
このように、ランダムアクセスインジケータフラグが設定されたTSパケットより前に、PAT及びPMTを含むTSパケットが受信されていない場合には、ランダムアクセスインジケータフラグが設定されたTSパケットに応じたPAT及びPMTを新たに生成し、生成されたPAT及びPMTをランダムアクセスインジケータフラグが設定されたTSパケットの直前に挿入してインデックス情報を作成しておくことで、シーク時に読み込まれるデータ量を低減し、レスポンスを向上させると共に、シークの精度を向上させることができる。
次いで、図5を参照して、プレーヤソフトウェア202によってサーバ21から受信されるTSパケット群について説明する。
トランスボートストリームは、TSパケット(又はTTSパケット)の列から構成される。各TSパケットは188バイト長の固定長パケットであり、ヘッダ(H)とペイロード(P)とを含む。コンテンツデータのビットストリームやコンテンツデータのプログラム情報はTSパケット群によって伝送される。このビットストリームは、ビデオストリームとオーディオストリームとを含む。
プログラム情報は、上述のように、例えば、プログラムアソシエーションテーブル(PAT)やプログラムマップテーブル(PMT)である。PATやPMTは、1以上のTSパケット内のペイロードに配置され、伝送される。例えば、PAT301は、PIDが0x0000である複数のTSパケット401,402に分割される。また、例えば、PMTは、同一のPID(ここでは、0x0010)を有するTSパケット403,404,…に分割される。PAT及びPMTは、TSパケット列に周期的(例えば、100ミリ秒毎)に挿入される。
ビデオストリームにおいては、複数のランダムアクセス可能な箇所(ランダムアクセスポイント)が設定されている。ランダムアクセスポイントは例えば0.5秒程度の間隔で設定される。ビデオストリーム内におけるランダムアクセス可能なビデオフレームそれぞれの位置がランダムアクセスポイントとなる。あるランダムアクセスポイントから次のランダムアクセスポイントまでの時間長は例えば0.5秒程度である。
ビデオストリームはPESパケット群によってパケット化される。各PESパケットのペイロード(P)は一つのアクセスユニット(一つのビデオフレーム)のデータを含む。各PESパケットのヘッダ(H)には、対応するビデオフレームのPTSが含まれている。一つのPESパケットは同一のPIDを有する複数のTSパケットのペイロードに分割して伝送される。
いま、PESパケット501のペイロードにランダムアクセス可能なビデオフレームが含まれている場合を想定する。PESパケット501は、同一のPID(ここでは、0x0100)を有する複数のTSパケット601,602,…に分割される。この場合、本実施形態では、先頭のTSパケット601のヘッダ内に存在するrandom_access_indicatorに“1”がセットされる。
さらに、PESパケット701のペイロードにランダムアクセス可能なビデオフレームが含まれている場合を想定する。PESパケット701は、同一のPID(ここでは、0x0300)を有する複数のTSパケット801,802,…に分割される。先頭のTSパケット801のヘッダ内に存在するrandom_access_indicatorには“1”がセットされる。
同様に、オーディオストリームもPESパケット群によってパケット化される。各PESパケットのペイロード(P)は一つのアクセスユニットのデータを含む。各PESパケットのヘッダ(H)には、対応するオーディオデータのPTSが含まれている。一つのPESパケットは同一のPIDを有する複数のTSパケットのペイロードに分割して伝送される。例えば、PESパケット502は、同一のPID(ここでは、0x0101)を有する複数のTSパケット603,604,…に分割される。
図6には、TS/TTSパケットの構成が示されている。TS/TTSパケットのヘッダには、PIDを格納するフィールド部、random_access_indicatorを格納するフィールド部、等が存在する。通常のシステムでは、random_access_indicatorを格納するフィールドは使用されないことが多い。なぜなら、デコーダにおいては、ピクチャ構造を解析することによって、ビデオフレーム毎に、そのフレームがランダムアクセス可能なビデオフレームであるか否かを判定することができるからである。しかし、ピクチャ構造を解析するために必要な処理量は多いため、もしバッファリング処理中にピクチャ構造を解析する処理を行うと、バッファリング処理の負荷が増大し、バッファリングの速度が低下する可能性がある。本実施形態では、random_access_indicatorに“1”がセットされたTSパケットが検出され、このTSパケットに対応するPESパケットのヘッダ内に存在するPTSが取得される。これにより、ピクチャ構造の解析を伴わない簡易な処理によってインデックス情報を作成することができる。なお、random_access_indicatorを格納するフィールド部に限らず、TS/TTSパケットのヘッダの任意のフィールドにフラグを設定することによって、ランダムアクセスポイントに対応する先頭のTS/TTSパケットを検出できるようにしてもよい。
図7には、PESパケットの構成が示されている。PESパケットのヘッダには、PTSを格納するフィールド部、等が存在する。
次いで、図8を参照して、PAT及びPMTに記述される内容の例について説明する。PAT301は、上述のように、PIDが0x0000である1以上のTSパケットを検出することによって得られる。PAT301には、コンテンツデータに含まれる1以上のプログラム(番組)に対応する1以上のPMTのPIDが記述されている。図8に示す例では、プログラム番号が1であるプログラムに対応するPMTのPIDが0x0010であることが分かる。そのため、PATに記述されたPMTのPID(ここでは、0x0010)に基づいて、PIDが0x0010である1以上のTSパケットを検出することによって、PMT302が得られる。
PMT302には、プログラムを構成するビデオストリームがパケット化されたTSパケットのPID(ここでは、0x0100)と、当該プログラムを構成するオーディオストリームがパケット化されたTSパケットのPID(ここでは、0x0101)とが記述されている。したがって、PMTに記述されたPIDに基づいて、PIDが0x0100であるTSパケットを検出することによって、ビデオストリームがパケット化されたTSパケットが得られ、PIDが0x0101であるTSパケットを検出することによって、オーディオストリームがパケット化されたTSパケットが得られる。
次に、図9及び図10を参照して、インデックス情報の例について説明する。
いま、図9に示すように、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケット601がバッファ42内の格納位置Aに格納され、ランダムアクセスインジケータフラグ(random_access_indicator)が設定された別のTSパケット801がバッファ42内の格納位置Bに格納されていることを想定する。そして、バッファ42内において、格納位置Aより前であり、且つ直近の第1のPATがバッファ42の先頭から160バイト目に格納され、また、バッファ42内において、格納位置Bより前であり、且つ直近の第2PATがバッファの先頭から11000バイト目に格納されていることを想定する。
この場合、TSパケット601のペイロード又はTSパケット602のペイロードにはPESパケット501のヘッダが含まれている。したがって、TSパケット601のペイロード又はTSパケット602のペイロードを参照することによって、PESパケット501に含まれるビデオフレームのPTSを取得し、取得されたPTSを、コンテンツの先頭を0とした際に、対応するランダムアクセス可能なビデオフレームを提示する時刻(再生時間)を示すタイムスタンプ(ここでは、1000ms)に変換することができる。
同様に、TSパケット801のペイロード又はTSパケット802のペイロードにはPESパケット701のヘッダが含まれている。したがって、TSパケット801のペイロード又はTSパケット802のペイロードを参照することによって、PESパケット701に含まれるビデオフレームのPTSを取得し、取得されたPTSを、コンテンツの先頭を0とした際に、対応するランダムアクセス可能なビデオフレームを提示する時刻(再生時間)を示すタイムスタンプ(ここでは、2000ms)に変換することができる。
図10はインデックス情報の例を示している。TSパケット601の受信時には、PATのバッファ内オフセット(=160)とタイムスタンプ(=1000)とのペアがインデックス情報として生成される。同様に、TSパケット801の受信時には、PATのバッファ内オフセット(=11000)とタイムスタンプ(=2000)とのペアがインデックス情報として生成される。
上述の図9及び図10の例においては、例えば、シーク操作による変更先再生位置に対応するシーク先時刻が950msであれば、例えば、そのシーク先時刻の直後のランダムアクセスポイント(タイムスタンプ=1000ms)がシーク先位置として決定される。そして、オフセット値=160バイトに対応する格納位置に格納されたPATを用いて、変更先再生位置に対応するコンテンツデータが再生される。
また、図11及び図12を参照して、インデックス情報の別の例について説明する。 いま、図11に示すように、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケット601がバッファ42の先頭から9000バイト目の格納位置Aに格納されていることを想定する。そして、バッファ42内において、格納位置Aより前であり、且つ直近のPATがバッファ42の先頭から160バイト目に格納され、また、PATに記述されたPIDに対応するPMTがバッファ42の先頭から500バイト目に格納されていることを想定する。なお、このPMTに記述されたビデオストリームのPIDと、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケット601のPIDとは同一である。
この場合、TSパケット601のペイロード又はTSパケット602のペイロードにはPESパケット501のヘッダが含まれている。したがって、TSパケット601のペイロード又はTSパケット602のペイロードを参照することによって、PESパケット501に含まれるビデオフレームのPTSを取得し、取得されたPTSを、コンテンツの先頭を0とした際に、対応するランダムアクセス可能なビデオフレームを提示する時刻(再生時間)を示すタイムスタンプ(ここでは、1000ms)に変換することができる。また、直近のPATとPMTとは、TSパケット601の直前(ここでは、バッファ42の先頭から9000バイト目)に挿入される。
図12はインデックス情報の例を示している。TSパケット601の受信時には、挿入されたPATのバッファ内オフセット(=9000)とタイムスタンプ(=1000)とのペアがインデックス情報として生成される。
上述の図11及び図12の例においては、例えば、シーク操作による変更先再生位置に対応するシーク先時刻が950msであれば、例えば、そのシーク先時刻の直後のランダムアクセスポイント(タイムスタンプ=1000ms)がシーク先位置として決定される。そして、オフセット値=9000バイトに対応する格納位置に格納されたデータ(PAT、PMT、及びTSパケット601等)を用いて、変更先再生位置に対応するコンテンツデータが再生される。
なお、図13に示すように、バッファ42内において、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTSパケット601よりも前に、PAT及び/又はPMTが格納されていない場合、PAT及び/又はPMTを生成して、TSパケット601の直前に挿入してもよい。
この場合、TSパケット601のペイロード又はTSパケット602のペイロードにはPESパケット501のヘッダが含まれている。したがって、TSパケット601のペイロード又はTSパケット602のペイロードを参照することによって、PESパケット501に含まれるビデオフレームのPTSを取得し、取得されたPTSを、コンテンツの先頭を0とした際に、対応するランダムアクセス可能なビデオフレームを提示する時刻(再生時間)を示すタイムスタンプ(ここでは、1000ms)に変換することができる。また、バッファ42内において、ビデオストリームを含むTSパケット601の後(直後)にあるオーディオストリームを含むTSパケット604が検出される。そして、TSパケット601のPIDとTSパケット604のPIDとを用いることにより、それらPIDが記述されたPMTと、当該PMTのPIDが記述されたPATとが新たに生成される。生成されたPATとPMTとは、TSパケット601の直前(ここでは、バッファ42の先頭から9000バイト目)に挿入される。
したがって、図13に示す例でも、図12に示すように、TSパケット601の受信時には、挿入されたPATのバッファ内オフセット(=9000)とタイムスタンプ(=1000)とのペアがインデックス情報として生成される。
次いで、図14から図16のフローチャートを参照して、プレーヤアプリケーションプログラム202によって実行されるインデックス作成処理の手順の例を説明する。
まず、図14に示すインデックス作成処理は、サーバ21からデータを順次受信するための受信処理のループ(ブロックB11〜B23)を含む。この受信処理のループ(ブロックB11〜B23)には、サーバ21から受信されるTTS/TSパケットを解析して上述のインデックス情報を生成するための解析処理のループ(ブロックB12〜B20)が含まれている。
まず、データソース41は、コンテンツデータのストリームを構成するTTS/TSパケット群をサーバ21から受信する(ブロックB11)。受信されたTTS/TSパケット群はバッファ42に格納される。一つのTTS/TSパケットが受信される度に、パケット解析部40は、以下の処理を実行する。
プログラム情報検出部43は、受信されたTTS/TSパケットのパケット識別子(PID)が“0”(0x0000)であるか否かを判定する(ブロックB13)。つまり、プログラム情報検出部43は、受信されたTTS/TSパケットが、プログラムアソシエーションテーブル(PAT)を含むTTS/TSパケット(第1パケット)であるか否かを判定する。PIDが0である場合(ブロックB13のYES)、プログラム情報検出部43は、PATが格納されているバッファ42内の位置(オフセット)を保存する(ブロックB14)。
PIDが0でない場合(ブロックB13のNO)、ランダムアクセス情報検出部44は、受信されたTTS/TSパケットが、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTTS/TSパケットであるか否かを判定する(ブロックB15)。つまり、ランダムアクセス情報検出部44は、受信されたTTS/TSパケットのヘッダに存在するランダムアクセスインジケータフラグ(random_access_indicator)が“1”であるか否かを判定する。なお、ランダムアクセス情報検出部44は、受信されたTTS/TSパケットがランダムアクセスポイントに対応するTTS/TSパケットであるか否かを、TTS/TSパケットのヘッダ内の所定のフィールドに設定されたフラグに基づいて判定してもよい。
受信されたTTS/TSパケットが、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTTS/TSパケットであるならば、つまり、ランダムアクセス可能なビデオフレームを運ぶためのTTS/TSパケット群内の先頭のTTS/TSパケットであるならば(ブロックB15のYES)、ランダムアクセス情報検出部44は、受信されたTTS/TSパケットに対応するPESパケットのヘッダ内に存在するタイムスタンプ(PTS)を取得するための処理を実行する(ブロックB16)。
ブロックB16では、ランダムアクセス情報検出部44は、受信されたTTS/TSパケットのペイロードから、又は受信されたTTS/TSパケットと同一のPIDを有する他の受信されたTTS/TSパケットのペイロードから、ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプ(PTS)を取得する。
あるいは、インデックス生成部45は、受信されたTTS/TSパケットと、この受信されたTTS/TSパケットと同一のPIDを有する他の受信された全てのTTS/TSパケットとを用いて、PESパケットを組み立て、このPESパケットのヘッダからタイムスタンプ(PTS)を取得してもよい。もちろん、必ずしもPESパケット全体を組み立てる必要は無い。データソース41は、受信されたTTS/TSパケットと、この受信されたTTS/TSパケットと同一のPIDを有する他の受信された1以上のTTS/TSパケットとを用いて、PESパケットのヘッダを組み立ててもよい。
次いで、ランダムアクセス情報検出部44は、取得されたPTSを、コンテンツの先頭を0とした際に、対応するランダムアクセス可能なビデオフレームを提示する時刻(再生時間)を示すタイムスタンプに変換する(ブロックB17)。以下では、上述のブロックB15〜B17の処理をタイムスタンプ取得処理とも称する。インデックス生成部45は、変換されたタイムスタンプと、PATが格納されているバッファ42内の位置(オフセット)とを示すインデックス情報を生成し、インデックス情報記憶部46に格納する(ブロックB18)。
インデックス生成部45は、サーバ21から取得された全てのTTS/TSパケットに対する解析処理が完了したか否かを判定する(ブロックB19)。取得された全てのTTS/TSパケットに対する解析処理が完了するまで、ブロックB12〜B20の解析処理が繰り返し実行される。
取得された全てのTTS/TSパケットに対する解析処理が完了した場合(ブロックB19のYES)、インデックス生成部45は、受信したコンテンツデータ(すなわち、バッファ42に格納されているコンテンツデータ)をファイルに書き出し、そのファイルをコンテンツデータファイル記憶部47に格納する(ブロックB21)。そして、データソース41は、コンテンツデータの受信が完了したか否かを判定する(ブロックB22)。コンテンツデータの受信が完了するまで、ブロックB11〜B23の受信処理が繰り返し実行される。コンテンツデータの受信が完了した場合(ブロックB22のYES)、インデックス生成処理が終了される(ブロックB24)。
また、図15に示すインデックス作成処理は、サーバ21からデータを順次受信するための受信処理のループ(ブロックB31〜B46)を含む。この受信処理のループ(ブロックB31〜B46)には、サーバ21から受信されるTTS/TSパケットを解析して上述のインデックス情報を生成するための解析処理のループ(ブロックB32〜B43)が含まれている。
まず、データソース41は、コンテンツデータのストリームを構成するTTS/TSパケット群をサーバ21から受信する(ブロックB31)。受信されたTTS/TSパケット群はバッファ42に格納される。一つのTTS/TSパケットが受信される度に、パケット解析部40は、以下の処理を実行する。
プログラム情報検出部43は、受信されたTTS/TSパケットのパケット識別子(PID)が“0”(0x0000)であるか否かを判定する(ブロックB33)。つまり、プログラム情報検出部43は、受信されたTTS/TSパケットが、プログラムアソシエーションテーブル(PAT)を含むTTS/TSパケット(第1パケット)であるか否かを判定する。PIDが0である場合(ブロックB33のYES)、プログラム情報検出部43は、PIDが0であるTTS/TSパケットを用いてPATに対応するセクションを組み立て(すなわち、パースし)、PATに記述されたプログラムマップテーブル(PMT)のパケット識別子(PID)を取得する(ブロックB34)。そして、プログラム情報検出部43は、PATを保存する(ブロックB35)。
PIDが0でない場合(ブロックB33のNO)、プログラム情報検出部43は、受信されたTTS/TSパケットのPIDが、ブロックB34で取得したPMTのPIDと同一であるか否かを判定する(ブロックB36)。つまり、プログラム情報検出部43は、受信されたTTS/TSパケットがPMTを含むTTS/TSパケット(第3パケット)であるか否かを判定する。
受信されたTTS/TSパケットのPIDがPMTのPIDと同一である場合(ブロックB36のYES)、プログラム情報検出部43は、PMTのPIDを有するTTS/TSパケットを用いてPMTに対応するセクションを組み立て(すなわち、パースし)、PMTに記述された映像エレメンタリーストリーム(映像ES)を含むTTS/TSパケットのPIDと、PMTとを保存する(ブロックB37)。
受信されたTTS/TSパケットのPIDがPMTのPIDと同一でない場合(ブロックB36のNO)、ランダムアクセス情報検出部44は、図14のブロックB15〜B17に示したタイムスタンプ取得処理を実行する(ブロックB38)。すなわち、ランダムアクセス情報検出部44は、受信されたTTS/TSパケットが、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTTS/TSパケットであるならば、受信されたTTS/TSパケットに対応するPESパケットのヘッダ内に存在するタイムスタンプ(PTS)を取得し、取得されたPTSを、コンテンツの先頭を0とした際に、対応するランダムアクセス可能なビデオフレームを提示する時刻を示すタイムスタンプに変換する。
次いで、インデックス生成部45は、PATが保存済みであり、且つブロックB38でタイムスタンプが取得されたTTS/TSパケットのPIDが記述されたPMTが保存済みであるか否かを判定する(ブロックB39)。インデックス生成部45は、ブロックB38でタイムスタンプが取得されたTTS/TSパケットのPIDが記述されたPMTが保存済みであるか否かを、例えば、ブロックB38でタイムスタンプが取得されたTTS/TSパケットのPIDと、ブロックB37で保存された映像ESのPIDとが同一であるか否かによって判定する。
PATが保存済みであり、且つブロックB38でタイムスタンプが取得されたTTS/TSパケットのPIDが記述されたPMTが保存済みである場合(ブロックB39のYES)、インデックス生成部45は、検出されたランダムアクセスポイントのバッファ42内での位置の直前に、当該PATとPMTとを挿入する(ブロックB40)。そして、インデックス生成部45は、変換されたタイムスタンプと、PATが格納されているバッファ42内の位置(オフセット)とを示すインデックス情報を生成し、インデックス情報記憶部46に格納し(ブロックB41)、ブロックB42に進む。一方、PATとブロックB38でタイムスタンプが取得されたTTS/TSパケットのPIDが記述されたPMTの少なくとも一方が保存済みでない場合(ブロックB39のNO)、ブロックB42に進む。
次いで、インデックス生成部45は、サーバ21から取得された全てのTTS/TSパケットに対する解析処理が完了したか否かを判定する(ブロックB42)。取得された全てのTTS/TSパケットに対する解析処理が完了するまで、ブロックB32〜B43の解析処理が繰り返し実行される。
取得された全てのTTS/TSパケットに対する解析処理が完了した場合(ブロックB42のYES)、インデックス生成部45は、受信したコンテンツデータ(すなわち、バッファ42に格納されているコンテンツデータ)をファイルに書き出し、そのファイルをコンテンツデータファイル記憶部47に格納する(ブロックB44)。そして、データソース41は、コンテンツデータの受信が完了したか否かを判定する(ブロックB45)。コンテンツデータの受信が完了するまで、ブロックB31〜B46の受信処理が繰り返し実行される。コンテンツデータの受信が完了した場合(ブロックB45のYES)、インデックス生成処理が終了される(ブロックB47)。
また、図16に示すインデックス作成処理も、図14及び図15に示した処理と同様に、サーバ21からデータを順次受信するための受信処理のループ(ブロックB51〜B67)を含む。この受信処理のループ(ブロックB51〜B67)には、サーバ21から受信されるTTS/TSパケットを解析して上述のインデックス情報を生成するための解析処理のループ(ブロックB52〜B64)が含まれている。
まず、データソース41は、コンテンツデータのストリームを構成するTTS/TSパケット群をサーバ21から受信する(ブロックB51)。受信されたTTS/TSパケット群はバッファ42に格納される。一つのTTS/TSパケットが受信される度に、パケット解析部40は、以下の処理を実行する。
プログラム情報検出部43は、受信されたTTS/TSパケットのパケット識別子(PID)が“0”(0x0000)であるか否かを判定する(ブロックB53)。つまり、プログラム情報検出部43は、受信されたTTS/TSパケットが、プログラムアソシエーションテーブル(PAT)を含むTTS/TSパケット(第1パケット)であるか否かを判定する。PIDが0である場合(ブロックB53のYES)、プログラム情報検出部43は、PIDが0であるTTS/TSパケットを用いてPATに対応するセクションを組み立て(すなわち、パースし)、PATに記述されたプログラムマップテーブル(PMT)のパケット識別子(PID)を取得する(ブロックB54)。そして、プログラム情報検出部43は、PATを保存し(ブロックB55)、ブロックB63に進む。
PIDが0でない場合(ブロックB53のNO)、プログラム情報検出部43は、受信されたTTS/TSパケットのPIDが、ブロックB54で取得したPMTのPIDと同一であるか否かを判定する(ブロックB56)。つまり、プログラム情報検出部43は、受信されたTTS/TSパケットがPMTを含むTTS/TSパケット(第3パケット)であるか否かを判定する。
受信されたTTS/TSパケットのPIDがPMTのPIDと同一である場合(ブロックB56のYES)、プログラム情報検出部43は、PMTのPIDを有するTTS/TSパケットを用いてPMTに対応するセクションを組み立て(すなわち、パースし)、PMTに記述された映像エレメンタリーストリーム(映像ES)を含むTTS/TSパケットのPIDと、PMTとを保存し(ブロックB57)、ブロックB63に進む。
受信されたTTS/TSパケットのPIDがPMTのPIDと同一でない場合(ブロックB56のNO)、ランダムアクセス情報検出部44は、図14のブロックB15〜B17に示したタイムスタンプ取得処理を実行する(ブロックB58)。すなわち、ランダムアクセス情報検出部44は、受信されたTTS/TSパケットが、ランダムアクセスインジケータフラグ(random_access_indicator)が設定されたTTS/TSパケット(すなわち、ランダムアクセスポイント)であるならば、受信されたTTS/TSパケットに対応するPESパケットのヘッダ内に存在するタイムスタンプ(PTS)を取得し、取得されたPTSを、コンテンツの先頭を0とした際に、対応するランダムアクセス可能なビデオフレームを提示する時刻を示すタイムスタンプに変換する。
次いで、インデックス生成部45は、PATが保存済みであり、且つブロックB58でタイムスタンプが取得されたTTS/TSパケットのPIDが記述されたPMTが保存済みであるか否かを判定する(ブロックB59)。インデックス生成部45は、ブロックB58でタイムスタンプが取得されたTTS/TSパケットのPIDが記述されたPMTが保存済みであるか否かを、例えば、ブロックB58でタイムスタンプが取得されたTTS/TSパケットのPIDと、ブロックB57で保存された映像ESのPIDとが同一であるか否かによって判定する。
PATと、ブロックB58でタイムスタンプが取得されたTTS/TSパケットのPIDが記述されたPMTの少なくとも一方が保存済みでない場合(ブロックB59のNO)、インデックス生成部45は、検出されたランダムアクセスポイントのTTS/TSパケット以降に配置された音声エレメンタリーストリーム(音声ES)を含むTTS/TSパケット(第4パケット)のPIDを検出し、ブロックB58でタイムスタンプが取得されたTTS/TSパケットのPID(すなわち、映像ESを含む第2パケットのPID)と、検出された音声ESを含む第4パケットPIDとを用いて、PATを含む第5パケットとPMTを含む第6パケットとを生成する(ブロックB60)。インデックス生成部45は、検出されたランダムアクセスポイントのバッファ42内での位置の直前に、生成された第5パケット(PAT)と第6パケット(PMT)とを挿入する(ブロックB61)。そして、インデックス生成部45は、変換されたタイムスタンプと、第5パケット(PAT)が格納されているバッファ42内の位置(オフセット)とを示すインデックス情報を生成し、インデックス情報記憶部46に格納し(ブロックB62)、ブロックB63に進む。
一方、PATと、ブロックB58でタイムスタンプが取得されたTTS/TSパケットのPIDが記述されたPMTとが保存済みである場合(ブロックB59のYES)、上述のブロックB61に進む。
次いで、インデックス生成部45は、サーバ21から取得された全てのTTS/TSパケットに対する解析処理が完了したか否かを判定する(ブロックB63)。取得された全てのTTS/TSパケットに対する解析処理が完了するまで、ブロックB52〜B64の解析処理が繰り返し実行される。
取得された全てのTTS/TSパケットに対する解析処理が完了した場合(ブロックB63のYES)、インデックス生成部45は、受信したコンテンツデータ(すなわち、バッファ42に格納されているコンテンツデータ)をファイルに書き出し、そのファイルをコンテンツデータファイル記憶部47に格納する(ブロックB65)。そして、データソース41は、コンテンツデータの受信が完了したか否かを判定する(ブロックB66)。コンテンツデータの受信が完了するまで、ブロックB51〜B67の受信処理が繰り返し実行される。コンテンツデータの受信が完了した場合(ブロックB66のYES)、インデックス生成処理が終了される(ブロックB68)。
以上説明したように、本実施形態によれば、コンテンツデータに対応するインデックス情報を作成するための処理量を低減し、インデックス情報を高速に作成することができる。本実施形態では、受信されたパケットから、PATを含む第1パケットが検出され、ランダムアクセス可能なビデオフレームを運ぶためのパケット群内の先頭のパケットであることを示すランダムアクセスインジケータフラグが設定された第2パケットが検出される。第2パケットが検出された場合、第2パケットから、又は第2パケットと同一のパケット識別子を有する他の受信されたパケットから、ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプ(PTS)が取得される。そして、取得された提示時刻と、第1パケットが格納されるバッファ42内の位置とを示すインデックス情報が生成される。インデックス情報はコンテンツデータの受信時に予め生成され、生成されたインデックス情報とコンテンツデータとは、互いに関連付けられて記憶装置等に格納される。つまり、記憶装置には、シーク操作の精度やレスポンスが高いコンテンツデータが格納されると云える。
プレーヤアプリケーションプログラム202は、インデックス情報に基づき、バッファ42上にバッファリングされたコンテンツデータから変更先再生位置(シーク位置)を再生するためのデータ部を決定することができる。つまり、コンテンツデータの現在再生位置を別の再生位置に変更するためのシーク処理をこのインデックス情報に基づいて実行することができる。これにより、シーク処理のレスポンスを向上させることができる。
なお、図14から図16のフローチャートで説明した本実施形態の処理手順は全てソフトウェアによって実行することができる。このため、この処理手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…コンピュータ、21…コンテンツサーバ、202…プレーヤアプリケーションプログラム、41…データソース、42…バッファ、43…プログラム情報検出部、44…ランダムアクセス情報検出部、45…インデックス生成部、46…インデックス情報記憶部、47…コンテンツデータファイル記憶部。

Claims (12)

  1. 1以上のプログラムを含むコンテンツデータのストリームを構成する第1パケット群をサーバから受信する電子機器であって、
    前記第1パケット群を格納するバッファと、
    前記第1パケット群の内の、前記1以上のプログラムの構成に関するプログラム情報を含む第1パケットを検出するプログラム情報検出手段と、
    前記第1パケット群の内の、ランダムアクセス可能なビデオフレームを運ぶための第2パケット群内の先頭の第2パケットを検出し、前記第2パケットから、又は前記第2パケットと同一のパケット識別子を有する他の受信されたパケットから、前記ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプを検出するランダムアクセス情報検出手段と、
    前記第1パケットが格納された前記バッファ内の位置と前記タイムスタンプとを示すインデックス情報を生成するインデックス生成手段とを具備する電子機器。
  2. 前記ランダムアクセス情報検出手段は、ランダムアクセス可能なビデオフレームを運ぶための第2パケット群内の先頭のパケットであることを示すフラグが設定されたパケットを、前記第2パケットとして検出する請求項1記載の電子機器。
  3. 前記プログラム情報検出手段は、プログラムアソシエーションテーブル(PAT)を運ぶためのパケットであることを示す、パケット識別子に0が設定されたパケットを、前記第1パケットとして検出する請求項1記載の電子機器。
  4. 前記プログラム情報は、前記1以上のプログラムと、プログラムマップテーブル(PMT)を含む1以上のパケットのパケット識別子との対応が記述されるプログラムアソシエーションテーブル(PAT)を含み、
    前記プログラムマップテーブルは、前記1以上のプログラムの内の第1プログラムを構成するエレメンタリーストリームに対応するパケットのパケット識別子が記述される請求項1記載の電子機器。
  5. 前記プログラム情報検出手段は、前記プログラムアソシエーションテーブルを含む前記第1パケットを検出し、当該検出されたプログラムアソシエーションテーブルを用いて、前記プログラムマップテーブルを含む第3パケットを検出し、
    前記インデックス生成手段は、前記プログラムマップテーブルに前記第2パケットのパケット識別子が記述されている場合、前記第1パケットと前記第3パケットとを、前記バッファ内に格納された前記第2パケットの直前に挿入し、前記挿入された第1パケットが格納された前記バッファ内の位置と、前記タイムスタンプとを示す前記インデックス情報を生成する請求項4記載の電子機器。
  6. 前記インデックス生成手段は、前記第2パケットが検出される前に、前記第1パケットと前記プログラムマップテーブルに前記第2パケットのパケット識別子が記述された前記第3パケットの少なくとも一方が検出されていない場合、前記第1パケット群の内、前記第2パケットの後に受信されたオーディオストリームを含む第4パケットを検出し、前記第2パケットのパケット識別子と前記第4パケットのパケット識別子とを用いて、プログラムアソシエーションテーブルを含む第5パケットとプログラムマップテーブルを含む第6パケットとを生成し、前記第5パケットと前記第6パケットとを前記前記バッファ内に格納された前記第2パケットの直前に挿入し、前記挿入された第5パケットが格納された前記バッファ内の位置と、前記タイムスタンプとを示す前記インデックス情報を生成する請求項4記載の電子機器。
  7. 前記プログラムマップテーブルは、前記第1プログラムを構成する映像ストリームに対応するパケットのパケット識別子と、前記第1プログラムを構成する音声ストリームに対応するパケットのパケット識別子とが記述される請求項4記載の電子機器。
  8. 前記ランダムアクセス情報検出手段は、前記第2パケットと、前記第2パケットと同一のパケット識別子を有する他の受信された1以上のパケットとを用いて、前記ランダムアクセス可能なビデオフレームを運ぶためのパケッタイズドエレメンタリーストリーム(PES)パケットのヘッダを組み立て、前記組み立てたヘッダから前記タイムスタンプを検出するように構成される請求項1記載の電子機器。
  9. 前記第1パケット群はトランスポートストリーム(TS)パケット群である請求項1記載の電子機器。
  10. 前記サーバは、前記第2パケットに前記フラグを設定するように構成される請求項2記載の電子機器。
  11. 1以上のプログラムを含むコンテンツデータのストリームを構成する第1パケット群をサーバから受信するインデックス生成方法であって、
    前記第1パケット群をバッファに格納し、
    前記第1パケット群の内の、前記1以上のプログラムの構成に関するプログラム情報を含む第1パケットを検出し、
    前記第1パケット群の内の、ランダムアクセス可能なビデオフレームを運ぶための第2パケット群内の先頭の第2パケットを検出し、前記第2パケットから、又は前記第2パケットと同一のパケット識別子を有する他の受信されたパケットから、前記ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプを検出し、
    前記第1パケットが格納された前記バッファ内の位置と前記タイムスタンプとを示すインデックス情報を生成するインデックス生成方法。
  12. コンピュータに、1以上のプログラムを含むコンテンツデータのストリームを構成する第1パケット群をサーバから受信させるプログラムであって、
    前記第1パケット群をバッファに格納する手順と、
    前記第1パケット群の内の、前記1以上のプログラムの構成に関するプログラム情報を含む第1パケットを検出する手順と、
    前記第1パケット群の内の、ランダムアクセス可能なビデオフレームを運ぶための第2パケット群内の先頭の第2パケットを検出し、前記第2パケットから、又は前記第2パケットと同一のパケット識別子を有する他の受信されたパケットから、前記ランダムアクセス可能なビデオフレームの提示時刻を示すタイムスタンプを検出する手順と、
    前記第1パケットが格納された前記バッファ内の位置と前記タイムスタンプとを示すインデックス情報を生成する手順とを前記コンピュータに実行させるプログラム。
JP2012015564A 2012-01-27 2012-01-27 電子機器及びインデックス生成方法 Active JP5143295B1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012015564A JP5143295B1 (ja) 2012-01-27 2012-01-27 電子機器及びインデックス生成方法
EP20120180976 EP2621190A1 (en) 2012-01-27 2012-08-20 Electronic apparatus and index generation method
US13/611,277 US8509598B1 (en) 2012-01-27 2012-09-12 Electronic apparatus and index generation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012015564A JP5143295B1 (ja) 2012-01-27 2012-01-27 電子機器及びインデックス生成方法

Publications (2)

Publication Number Publication Date
JP5143295B1 true JP5143295B1 (ja) 2013-02-13
JP2013157734A JP2013157734A (ja) 2013-08-15

Family

ID=47018743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012015564A Active JP5143295B1 (ja) 2012-01-27 2012-01-27 電子機器及びインデックス生成方法

Country Status (3)

Country Link
US (1) US8509598B1 (ja)
EP (1) EP2621190A1 (ja)
JP (1) JP5143295B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015023574A (ja) * 2013-07-22 2015-02-02 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 蓄積方法、再生方法、蓄積装置、および再生装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016002493A1 (ja) * 2014-06-30 2016-01-07 ソニー株式会社 ファイル生成装置および方法、並びにコンテンツ再生装置および方法
US9905271B2 (en) * 2015-06-15 2018-02-27 Sling Media Pvt Ltd Real-time positioning of current-playing-position marker on progress bar and index file generation for real-time content
US10169391B2 (en) * 2015-10-21 2019-01-01 International Business Machines Corporation Index management

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619337A (en) * 1995-01-27 1997-04-08 Matsushita Electric Corporation Of America MPEG transport encoding/decoding system for recording transport streams
US5909257A (en) * 1996-02-27 1999-06-01 Victor Company Of Japan, Ltd. Apparatus and method of receiving broadcasted digital signal
EP1073225B1 (en) * 1999-01-12 2007-08-01 Sony Corporation Information distribution system
JP4389365B2 (ja) * 1999-09-29 2009-12-24 ソニー株式会社 トランスポートストリーム記録装置および方法、トランスポートストリーム再生装置および方法、並びにプログラム記録媒体
US6804266B1 (en) * 2000-01-24 2004-10-12 Ati Technologies, Inc. Method and apparatus for handling private data from transport stream packets
JP4154825B2 (ja) 2000-02-01 2008-09-24 三菱電機株式会社 ディジタル放送受信システム
GB0007870D0 (en) * 2000-03-31 2000-05-17 Koninkl Philips Electronics Nv Methods and apparatus for making and replauing digital video recordings, and recordings made by such methods
US7895616B2 (en) * 2001-06-06 2011-02-22 Sony Corporation Reconstitution of program streams split across multiple packet identifiers
RU2334286C2 (ru) * 2002-06-28 2008-09-20 Эл Джи Электроникс Инк. Носитель записи со структурой данных для управления записью и воспроизведением записанных на нем данных нескольких каналов и способы и устройства записи и воспроизведения
JP2005534102A (ja) 2002-07-23 2005-11-10 サムスン エレクトロニクス カンパニー リミテッド メタデータのインデックス構造と記録媒体
KR20040010023A (ko) 2002-07-23 2004-01-31 삼성전자주식회사 디지털 컨텐츠 메타데이터의 복합 조건 검색을 위한인코딩된 멀티키 인덱스 정보 스트림 구조
EP1515247B1 (en) 2002-07-23 2007-06-27 Samsung Electronics Co., Ltd. Metadata searching method and apparatus using indices of metadata
JP2004194215A (ja) 2002-12-13 2004-07-08 Sony Corp コンテンツ受信装置とコンテンツ受信方法
JP4207639B2 (ja) * 2003-04-11 2009-01-14 パナソニック株式会社 データ多重化方法、データ多重化装置、送信装置および受信装置
KR100891397B1 (ko) * 2004-04-28 2009-04-02 파나소닉 주식회사 스트림 생성 장치, 스트림 생성 방법, 및 기록 매체
JP4541962B2 (ja) * 2005-04-25 2010-09-08 パナソニック株式会社 多重化装置、再生装置
WO2008123712A1 (en) * 2007-04-04 2008-10-16 Electronics And Telecommunications Research Institute Storage/playback method and apparatus for mpeg-2 transport stream based on iso base media file format
JP2008171566A (ja) * 2008-03-31 2008-07-24 Sony Corp データ再生装置及びデータ記録装置、並びにデータ再生方法及びデータ記録方法
JP2009272791A (ja) 2008-05-02 2009-11-19 Sony Corp 送信装置、情報送信方法、受信装置および情報処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015023574A (ja) * 2013-07-22 2015-02-02 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 蓄積方法、再生方法、蓄積装置、および再生装置
JP2019126081A (ja) * 2013-07-22 2019-07-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 蓄積方法、再生方法、蓄積装置、および再生装置

Also Published As

Publication number Publication date
US20130195424A1 (en) 2013-08-01
US8509598B1 (en) 2013-08-13
EP2621190A1 (en) 2013-07-31
JP2013157734A (ja) 2013-08-15

Similar Documents

Publication Publication Date Title
US10528631B1 (en) Media data presented with time-based metadata
US10580459B2 (en) Dynamic media interaction using time-based metadata
BR112013004857B1 (pt) Método implementado por computador e sistema para controlar, usando um dispositivo móvel, apresentação de conteúdo de mídia realizado por um cliente de mídia, e método implementado por computador para apresentar conteúdo de mídia a partir de um cliente de mídia em um dispositivo de exibição
JP5143295B1 (ja) 電子機器及びインデックス生成方法
KR20160039888A (ko) 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
EP3410290A1 (en) Audio processing method, server, user equipment, and system
JP2010232760A (ja) 画像供給装置、画像供給システム、画像供給方法、プログラム、及び記録媒体
US9055272B2 (en) Moving image reproduction apparatus, information processing apparatus, and moving image reproduction method
US9872054B2 (en) Presentation of a multi-frame segment of video content
US10027994B2 (en) Interactive audio metadata handling
JP5106671B1 (ja) 電子機器および再生制御方法
US20150189365A1 (en) Method and apparatus for generating a recording index
CN104023260A (zh) 硬件解码实现方法、装置及播放器
KR102547320B1 (ko) 전자 장치 및 전자 장치의 제어 방법
JP2011009949A (ja) 映像処理装置及び映像処理方法
JP5552650B2 (ja) 電子機器および再生制御方法
US10075325B2 (en) User terminal device and contents streaming method using the same
US20180107496A1 (en) Method of expanding function of android standard multimedia player and multimedia playing system
US20140013225A1 (en) Digital media controller and method for controlling a digital media system
US20120294584A1 (en) Reproducing device, method of reproducing stream file, and program
JP2013240108A (ja) コンテンツ視聴システム及び装置
JP5092028B2 (ja) 映像処理装置及び映像処理方法
JP5105960B2 (ja) Dvd再生装置
KR20190125967A (ko) 멀티미디어 시스템에서 신호를 송신 및 수신하는 장치 및 방법
EP2549772A2 (en) Electronic apparatus and playback control method

Legal Events

Date Code Title Description
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: 20121023

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121120

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5143295

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313121

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350