まず、本実施例の動画像処理方法、動画像処理システムおよび動画像処理プログラムを詳述する前に、図1〜図14を参照して、動画像処理装置が適用される動画像処理システムの一例およびその動作、並びに、動画像処理方法、動画像処理システムおよび動画像処理プログラムの例およびその問題点を説明する。
図1は、動画像処理装置が適用される動画像処理システムの一例を模式的に示す図である。図1に示されるように、動画像処理システムは、WiFiチューナ1(送信装置),無線LAN(WiFi)2,タブレット等の端末装置3,ルータ4およびアンテナ5を含む。
前述したように、WiFiチューナ1は、例えば、アンテナ5を介してBS放送や地上デジタル放送等を受信し、スマートフォンやタブレット等の端末装置3に送信する。すなわち、WiFiチューナ1は、例えば、MPEG−2によりデジタルデータ化された放送を、より圧縮率の高いH.264等のデジタルデータにトランスコードし、WiFi等の無線LAN2を介して端末装置3に送信する。
また、WiFiチューナ1は、ルータ4を介してインターネット6に接続されており、例えば、YouTube(登録商標)やニコニコ動画(登録商標)等の動画サイトからも映像データをダウンロードして、端末装置3に送信できるようになっている。
ところで、WiFi等の無線LAN(無線回線)2は、通常、ベストエフォート型の回線(ネットワーク)であり、伝送帯域は保証されておらず、回線の状態によって、伝送能力(伝送帯域)は、大きく変化する。
図2は、図1に示す動画像処理システムの一例およびその動作を説明するための図であり、図2(a)は、動画像処理システムの全体構成を示す。また、図2(b)は、図2(a)に示す動画像処理システムにおいて、安定して伝送(送信)できている状態の動作を説明するためのものであり、図2(c)は、ネットワークの伝送能力が一時的に下がった状態の動作を説明するためのものである。
図2(a)に示されるように、動画像処理システムにおいて、WiFiチューナ1は、チューナ11,トランスコーダ12,送信バッファ13およびLAN(送信)14を含む。また、端末装置3は、LAN(受信)31,受信バッファ32,デコーダ33およびディスプレイ(表示装置)34を含む。
チューナ11は、例えば、アンテナ5を介してBS放送や地上デジタル放送等を受信し、例えば、MPEG−2によりデジタルデータ化された放送を再生してトランスコーダ12に出力する。
トランスコーダ12は、チューナ11からのMPEG−2のデジタルデータを、例えば、より圧縮率の高いH.264等のデジタルデータにトランスコードして送信バッファ13に出力する。
送信バッファ13は、無線LAN(ネットワーク)2の伝送能力が一時的に下がってトランスコーダ12から一定のビットレートで入力するデータを伝送しきれない場合に、ネットワーク2の伝送能力が回復するまでデータを一時的に溜めておくためのものである。
LAN(送信)14は、送信バッファ13からのデータを、ネットワーク2を介して端末装置3のLAN(受信)31に送信するためのもので、例えば、ルータ4を介してインターネット(6)からも映像データをダウンロードして送信できるようになっている。なお、LAN(受信)31は、例えば、送受信可能なWiFi等の無線LAN装置の受信機能をしようしてデータを受け取っている様子を示す。
受信バッファ32は、一定時間分のデータを溜めておくことができ、ネットワーク2の伝送能力が一時的に下がってデータが伝送されなくなった場合でも、一定時間は、映像および音声の再生が続けられるようにするためのものである。そして、この一定時間の間にネットワーク2の伝送能力が回復してデータが伝送さるようになれば、映像および音声が途切れることなく再生を継続することになる。
デコーダ33は、受信バッファ32からのデータ(例えば、H.264等のデジタルデータ)を受け取って映像および音声をデコードし、映像をディスプレイ34に表示させると共に、音声をスピーカ(図示しない)から出力させる。
ここで、受信バッファ32は、例えば、パーソナルコンピュータ(PC)でYouTube(登録商標)等の動画サイトからも映像データをダウンロードして視聴する場合、円滑に再生されるように、最初に一定のバッファリングを行うのと同様のものである。
ただし、ネットワークが十分な伝送能力を持たず、バッファリングしたデータを再生しきる間に次のデータの充填が間に合わない場合でも、動画サイト等であれば、バッファの再充填処理が行われて再生される。すなわち、バッファのデータが枯渇して再生が止まった場合でも、その停止した画像の続きから再生される。
これは、動画サイトによるサービスでは、コンテンツが予めサーバ側に蓄積されており、PC側へのデータ伝送が滞った場合、単に、サーバからのデータ伝送を止めておき、ネットワークが回復した段階で、続きからデータ伝送を再開するだけでよいからである。
これに対して、WiFiチューナ1のような用途では、データ伝送が滞った場合でも、チューナ11からのTV放送のデータは流れ込み続け、トランスコーダ12によるデータも生成され続ける。そのため、例えば、YouTube(登録商標)等の動画サイトのサービスのように、単に、データ伝送を止めるといった単純な対応では問題が生じることになる。
仮に、トランスコーダ12によるトランスコード処理を一時的に停止させて対応した場合、データ伝送が回復してトランスコード処理を再開しても、その間の実際の時間的な途切れが発生することになる。そのため、このような途切れの発生を極力回避するために、送信側(WiFiチューナ1)にも一定時間分のバッファ(送信バッファ13)が設けられている。
まず、図2(b)に示されるように、安定して伝送できている状態(通常の運用状態)において、例えば、チューナ11からのMPEG−2のデジタルデータは、トランスコーダ12によって、より圧縮率の高いH.264のデジタルデータにトランスコードされる。
さらに、トランスコーダ12からのデジタルデータ(H.264)は、送信バッファ13およびLAN(送信)14を介してネットワーク2に出力される。ここで、通常の運用状態において、送信バッファ13は、エンプティ(空)気味で動作している。
さらに、ネットワーク2からのデジタルデータ(H.264)は、LAN(受信)31および受信バッファ32を介してデコーダ33に入力され、デコードされた映像および音声がディスプレイ34等から出力される。ここで、通常の運用状態において、受信バッファ32は、フル(満)気味で動作している。
すなわち、図2(b)において、矢印のハッチング部分の幅が、データの伝送能力を示し、送信バッファ13および受信バッファ32におけるハッチング部分の領域が、バッファリング(格納)しているデータ量を示す。なお、送信バッファ13および受信バッファ32の全体(箱)の大きさが、データを格納できる最大バッファ量を示す。
これに対して、図2(c)に示されるように、ネットワーク2におけるデータ量およびLAN31から受信バッファ32へのデータ量が小さく(ハッチング部分の幅が細く)なる。このとき、送信バッファ13に格納されるデータは増加し、逆に、受信バッファ32に格納されるデータは減少する。
図3は、図2に示す動画像処理システムにおけるネットワーク2の伝送能力とデータ量の推移を説明するための図であり、横軸に時間を取り、縦軸にデータ量を取って、各部の入出力データ量およびバッファ内のデータ量の推移の一例を示すものである。
図3は、ネットワーク(無線LAN,回線)2が安定してデータを伝送できている状態(定常状態)の期間P11ら、期間P12でネットワークの伝送能力が一時的に下がった状態となり、その後、期間P13で元の安定状態(過渡状態)に戻る様子を示している。
すなわち、期間P11から期間P12になり、ネットワーク2の伝送能力が一時的に下がった状態になると、トランスコーダ12から単位時間あたりに出力されるデータ量よりもネットワークに送信できるデータ量(LAN(送信)14の送信データ量)が低くなる。
このとき、送信側(WiFiチューナ1側)では、送信しきれないデータは、一時的に送信バッファ13内に溜まっていくため、期間P12において、送信バッファ13内のデータ量は、徐々に増大する。
一方、受信側(端末装置3側)では、ネットワーク2から受信するデータ量(LAN(受信)31の受信データ量)が減るため、期間P12において、受信バッファ32内に溜められたデータ量は、徐々に減少する。
ここで、デコーダ33が単位時間あたりに受け取る入力データ量が受信バッファ32により維持されている間、デコーダ33は、途切れることなく動画像を再生することが可能である。
なお、図3の例は、送信バッファ13内のデータ量があふれ、或いは、受信バッファ32内のデータ量が枯渇する前に、ネットワーク2の伝送能力が定常状態戻る場合を示している。
そのため、期間P12から期間P13になると、ネットワーク2の伝送能力が一時的に下がって転送できなかったデータが通常より多くネットワーク2で伝送され、送信バッファ13内のデータ量は徐々に減少(受信バッファ32内のデータ量は徐々に増加)する。
ここで、ネットワーク2は、ベストエフォート型の回線であるため、期間P13におけるLAN(送信)14の送信データ量およびLAN(受信)31の受信データ量は、期間P11におけるデータ量よりも大きい状態でデータ伝送を行う。
そして、送信バッファ13および受信バッファ32のデータ量が本来の状態に戻れば、LAN(送信)14およびLAN(受信)31のデータ量も期間P11の定常状態に戻ることになる。
なお、ネットワーク2の伝送能力の低下が長く続いて、受信バッファ32のデータが枯渇した場合、デコーダ33にはデコートする入力データが与えられず、再生(動画像)が途切れることになる。また、送信バッファ13がフル(一定容量)になった場合も、トランスコーダ12の動作を一時停止するかデータを破棄することになり、やはり再生時に動画像が途切れることになる。
このような動画像の途切れを避けるためには、受信バッファ32および送信バッファ13の容量を大きく設定するのが好ましい。ネットワークのトラフィックは運用状況によっても変わるが、通常、受信バッファ32および送信バッファ13には、例えば、数秒〜十数秒程度の動画像データを保持することができる容量を持たせている。
さらに、例えば、平均的な伝送能力の低下が長時間に及ぶような場合、バッファの容量がいくらあっても対応が難しいため、伝送能力に合わせてトランスコーダ12の生成ビットレートを下げる等により対応することになる。
ただし、トランスコーダ12での各種処理でバッファリングしている関係上、生成ビットレートの変更指示に対して実際のデータが減少するのは、例えば、数秒程度の時間が掛かるため、送信バッファ13には、さらに、数秒程度以上の容量を持たせている。
ところで、近年、アナログTV(テレビ放送)からデジタルTVになって、チャンネル切り替えに時間が掛かるようになったのが問題視されている。また、端末装置3によりネットワーク2を介してWiFiチューナ1からの放送を再生する場合には、さらに、上述した受信バッファ32にデータが溜まるまで待たされることになる。
すなわち、端末装置3により第1チャンネルから第2チャンネルにチャンネルを切り替えた場合、例えば、受信バッファ32のデータ量が一定量になるまで、新たな第2チャンネルの画像は表示されず、さらに、長時間待たされることになる。
具体的に、WiFiチューナ1およびネットワーク2を介してデジタルTVを視聴する場合、端末装置3でチャンネルを切り替えると、例えば、通常のデジタルTVの切り替えに要する時間に加え、さらに、数秒〜十数秒程度の時間待たされることになる。
このチャンネル切り替え時に待たされる時間において、端末装置3のディスプレイ34には、例えば、黒画面か表示され、或いは、チャンネル切り替え前の最後の画面が残ることになる。
或いは、砂時計のアニメーション等と共に、チャンネル切り替え中の表示や別途取得した切り替え先の番組情報等を表示するなどして、チャンネル切り替えの指示を受け付けたことをユーザにフィードバックするための画面を出すことも考えられる。しかしながら、この場合も、チャンネル切り替え後の画面表示までには、数秒〜十数秒程度の時間が掛かることになる。
図4は、関連技術の動画像処理装置の一例におけるトランスコーダおよびストリームの一例を示す図である。すなわち、図4(a)は、トランスコーダ12の一例の詳細をチューナ11および送信バッファ13と共に示し、図4(b)は、トランスコーダ12から出力されるストリーム(トランスポートストリーム:TS(Transport Stream))の一例を示す。
図4(a)に示されるように、トランスコーダ12は、全体制御部(演算処理装置)121,デマルチプレクサ部(DEMUX)122,デコーダ部123,メモリ124,エンコーダ部125およびマルチプレクサ部(MUX)126を含む。
デマルチプレクサ部122は、PSI(Program Specific Information)解析部20を含み、デコーダ部123は、ビデオ処理部31'およびオーディオ処理部32'を含み、そして、エンコーダ部125は、ビデオ処理部51およびオーディオ処理部52を含む。
全体制御部121は、デマルチプレクサ部122およびデコーダ部123を制御し、例えば、チューナ11からのMPEG−2のデジタルデータから画像データおよび音声データを取り出してメモリ124に格納する。
また、全体制御部121は、エンコーダ部125およびマルチプレクサ部126を制御し、メモリ124から読み出した画像データおよび音声データを、例えば、MPEG−2よりも高圧縮率のH.264のデジタルデータに変換して送信バッファ13に出力する。
すなわち、トランスコーダ12は、例えば、チューナ11からのMPEG−2のデジタルデータを、WiFi等のネットワーク2でも伝送可能な、より高い圧縮率で圧縮したH.264等のデジタルデータに変換して、ネットワーク2に出力する。
図4(b)に示されるように、トランスコーダ12からのストリームは、例えば、PAT(Program Association Table),PMT(Program Map Table),PCR(Program Clock Reference),PAT,PMT,PCR,I-pic(Intra-coded Picture),…と配列される。
さらに、ストリームは、例えば、…,PCR,B-pic(Bidirectionally predictive-coded picture),B-pic,P-pic(Predictive-coded picture),B-pic,B-pic,…と配列される。
例えば、端末装置3が図4(b)に示されるデータを受け取る場合、先頭のI−ピクチャ(I-pic)が端末装置3のデコーダ33に渡るのは、例えば、端末装置3の受信バッファ32のサイズ(一定の容量)に相当するデータが伝送された後になる。
そのため、端末装置3によりチャンネルが切り替えられた場合、受信バッファ32のデータ量が一定量になるまで、新たなチャンネルの画像(I−ピクチャ)はデコーダ33に入力されず、新たなチャンネルの画像を表示するまで長時間待たされることになる。
ここで、例えば、第1チャンネルから第2チャンネルにチャンネルを切り替えたとき、受信バッファ32には、先頭のI−ピクチャが格納された後、例えば、トランスコーダ12により処理された第2チャンネルのデータが所定の転送レートで入力される。
すなわち、WiFiチューナ1から端末装置3に対して、ベストエフォート型のネットワーク(回線)2を介してデータ伝送する場合であっても、例えば、MPEG−2をH,264に変換するトランスコーダ12の出力に基づいたデータ量のデータが伝送される。
図5は、図4に示すトランスコーダにおけるマルチプレクサ部の一例を示すブロック図であり、マルチプレクサ部126を、エンコーダ部125と共に示すものである。図5に示されるように、マルチプレクサ部126は、FIFO(First-In First-Out)バッファ61,62、STC(System Time Clock)用カウンタ63、ビデオTS(Transport Stream)パケット生成部64およびオーディオTSパケット生成部65を含む。
さらに、マルチプレクサ部126は、PAT生成部66、PMT生成部67、PCR生成部68、ヌル(NULL)パケット生成部69、多重化対象決定部70および多重化対象選択部71を含む。
ビデオTSパケット生成部64は、ビデオTS用多重化時刻カウンタ640を含み、ビデオデータにおけるパケット分割,TSヘッダ付加および多重化時刻算出を行う。オーディオTSパケット生成部65は、オーディオTS用多重化時刻カウンタ650を含み、オーディオデータにおけるパケット分割,TSヘッダ付加および多重化時刻算出を行う。
PAT生成部66は、PAT用多重化時刻カウンタ660を含み、PMT生成部67は、PMT用多重化時刻カウンタ670を含む。また、PCR生成部68は、PCR用多重化時刻カウンタ680を含み、NULLパケット生成部69は、ヌルパケット用多重化時刻カウンタ690を含む。
STC用カウンタ63は、多重化マスタークロックCLKmmを受け取り、初期値の設定後、例えば、27MHzの多重化マスタークロックCLKmmでカウントアップするカウンタである。このSTC用カウンタ63の出力信号は、各生成部の多重化時刻カウンタ640,650,…,690に入力され、システム時刻が与えられることになる。
ビデオTSパケット生成部64は、FIFOバッファ61を介して入力されるエンコーダ125のビデオ処理部51からのビデオPES(Packetized Elementary Stream)データ(VD−PES)を受け取る。
ビデオTS用多重化時刻カウンタ640は、ビデオ処理部51から送られてくるビデオPES単位の多重化開始時刻情報を初期値として、ビデオPESをTSパケットに分解した際の、TSパケット毎の多重化開始時刻を管理する。これにより、ビデオTSパケット生成部64により生成されるビデオTS(VD−TS)は、カウントアップ量27MHzを基準にして、ビデオのビットレートに対応した値になる。
具体的に、ビデオのビットレートが20Mbpsならば、TSパケットのペイロードのデータ量は184byteなので、1秒間に、TSパケット数は、20M[bps]÷(184[byte]×8[bit])≒13586.9[個]となる。
すなわち、27MHz単位で見た場合の各TSパケットの周期は、27M[Hz]÷13586.9≒1987.2[cycle]となり、これが、カウントアップ量となる。実際には、少数点以下を扱うのは難しいため、例えば、分子と分母の形で管理してカウントアップするが、本実施例との関連が薄いので、その詳細については省略する。
オーディオTSパケット生成部65は、FIFOバッファ62を介して入力されるエンコーダ125のオーディオ処理部52からのオーディオPESデータ(AD−PES)を受け取る。
オーディオTS用多重化時刻カウンタ650は、オーディオ処理部52から送られてくるオーディオPES単位の多重化開始時刻情報を初期値として、オーディオPESをTSパケットに分解した際の、TSパケット毎の多重化開始時刻を管理する。これにより、オーディオTSパケット生成部65により生成されるオーディオTS(AD−TS)は、カウントアップ量27MHzを基準にして、オーディオのビットレートに対応した値になる。
なお、PAT用多重化時刻カウンタ660,PMT用多重化時刻カウンタ670およびPCR用多重化時刻カウンタ680は、初期値の設定後、各TSパケットの挿入周期(規格上は100msec以下)に応じた値がカウントアップ量となる。具体的に、99msecの周期ならば、99m[sec]÷(1/27M[Hz])≒2673000[cycle]ずつカウントアップすることになる。
また、ヌルパケット用多重化時刻カウンタ690は、初期値の設定後、TSのシステムレートに応じた値がカウントアップ量となる。具体的に、TSのシステムレートが25Mbpsならば、TSパケットのデータ量は188byteなので、27M[Hz]÷(25M[bps]÷(188[byte]×8[bit]))≒1624.32[cycle]ずつカウントアップすることになる。
そして、ビデオTSパケット生成部64,オーディオTSパケット生成部65,PAT生成部66,PMT生成部67,PCR生成部68およびNULLパケット生成部69は、それぞれのTSパケットを生成して多重化対象選択部71に出力する。
このとき、各生成部64〜69は、それぞれの多重化時刻カウンタ640〜690により、対応するTSパケットの多重化開始時刻を算出する。なお、算出した多重化開始時刻は、STC用カウンタ63から出力されるシステム時刻と比較され、システム時刻が多重化開始時刻以上になったら、多重化要求信号をバリッド(Valid:有効)にする。
多重化対象決定部70は、NULLパケット生成部69からの要求信号(多重化要求信号)がバリッドになる毎に、他の生成部(パケット生成部)64〜68からの要求信号をチェックする。
ここで、NULLパケット生成部69からのバリッドの要求信号以外に、複数の生成部64〜68からの要求信号がバリッドであった場合には、優先順位に従って、どれか1つの生成部を選択し、多重化対象選択信号SSmoにその生成部を選択するよう指定する。
なお、優先順位の一例としては、PCR生成部68が最優先で、以下、PMT生成部67,PAT生成部68等のPSI情報、そして、ビデオTSパケット生成部64,オーディオTSパケット生成部65の順番にすることが考えられる。
一方、NULLパケット生成部69からの要求信号だけがバリッドで、他の生成部64〜68からの要求信号が全てインバリッド(Invalid:無効)の場合には、NULLパケット挿入モードであれば、多重化対象選択信号SSmoとしてNULLパケットを選択する。また、NULLパケット挿入モードでなければ、何も多重化しないため、多重化対象選択信号SSmoとしてパケット無効を選択する。
そして、NULLパケット生成部69以外の生成部64〜68の要求信号がバリッドであれば、その生成部のパケット出力を選択する。ここで、NULLパケット挿入モードか否かは、例えば、NULLパケット生成部69に入力するNULLパケット挿入モード指定信号MSnpにより指定される。
多重化対象決定部70により選択した結果は、多重化対象選択信号SSmoとして多重化対象選択部71に出力すると共に、選択した生成部64〜68に対する多重化アクノリッジ信号(ACK)としてバリッドパルスを出力する。ただし、NULLパケット生成部69に対しては、NULLパケットを選択したか否かに関わらず、多重化アクノリッジ信号としてバリッドパルスを出力する。
各生成部64〜68は、多重化アクノリッジ信号のバリッドパルスを受け取ったら、多重化要求信号をインバリッドにすると共に、その生成部の内部に設けられた多重化時刻カウンタ640〜680をカウントアップする。
なお、PCR生成部68は、TSパケットのPCRフィールドに正確な時刻を入れるために、多重化アクノリッジ信号のバリッドパルスを受け付けた時点で、STC用カウンタ63からのシステム時刻の値を取り込み、TSパケットのPCRフィールドに書き込む。
図6および図7は、図4および図5に示すトランスコーダを適用した場合におけるチャンネル切り替え時の動作を説明するための図である。ここで、図6(a)は、端末装置(WiFiチューナの受信装置)3のユーザが定常状態で視聴している状況を説明するための図である。
また、図6(b)は、ユーザがチャンネルの切り替えを指示した状況を説明するための図であり、図6(c)は、ユーザがチャンネルの切り替えを指示した直後の状況を説明するための図である。
さらに、図7(a),図7(b)および図7(c)は、ユーザがチャンネルの切り替えを指示した直後の図6(c)に続く状況を説明するための図であり、図7(d)は、切り替え後のチャンネルにより、ユーザが定常状態で視聴している状況を説明するための図である。図6(a)〜図7(d)において、受信バッファ32中の参照符号F(n),F(n+1),F(n+2),F(n+3),…,F(m)は、符号化された各映像フレームに対応するデータを示す。
以下の説明では、映像表示の時間順序と対応する符号化されたデータの順番は同じものとしているが、実際の符号化では、例えば、リオーダ処理が行われ映像表示の順番とストリームの順番が変わることもある。
まず、図6(a)に示されるように、ユーザが端末装置3のディスプレイ34を介して、所定のチャンネル(第1チャンネル)のテレビ放送を視聴している場合、送信バッファ13はエンプティ気味で動作し、受信バッファ32は、フル気味で動作している。
すなわち、ディスプレイ34には、受信バッファ32から順に出力されてデコーダ33でデコードされた映像(動画像)が表示され、ユーザは、第1チャンネルのテレビ放送を視聴することになる。
次に、図6(b)に示されるように、ユーザが端末装置3を操作して視聴するチャンネルを第1チャンネルから第2チャンネルに切り替える場合、ユーザは、例えば、端末装置3の制御部35を介してチャンネル切り替えを指示する。
端末装置3において、制御部35は、LAN(受信)31,受信バッファ32およびディスプレイ34を制御すると共に、ネットワーク(回線:WiFi)2を介してWiFiチューナ1の制御部を制御する。
すなわち、制御部35は、端末装置3の各部に対するチャンネルの切り替え指示および受信バッファ32に対するクリア指示を行い、さらに、WiFiチューナ1の各部に対するチャンネル切り替えの指示および送信バッファ13に対するクリア指示を行う。これを受けて、WiFiチューナ1および端末装置3の各部は、第1チャンネルから第2チャンネルに切り替えた後のデータ処理の準備を開始する。
ここで、例えば、送信バッファ13および受信バッファ32のクリアを行わずに、チューナ11だけ制御してチャンネルを切り替えた場合、例えば、受信バッファ32中には、第1チャンネルに関する数秒〜数十秒分のデータが蓄えられている。
そのため、ユーザが第2チャンネルへの切り替えを指示したにも関わらず、切り替え前の第1チャンネルの放送が数秒〜数十秒程度ディスプレイに表示され、ユーザに対して切り替え指示が受け付けられなかったのではないかという心配を与えることになる。
そのため、ユーザが第1チャンネルから第2チャンネルへの切り替え指示を行った場合、送信バッファ13および受信バッファ32に格納されているデータを破棄し、新たなデータのバッファリングを行う。なお、ディスプレイ34には、第2チャンネルの動画が表示されるまで、例えば、黒画面や第1チャンネルの最後の画面が表示される。
その後、送信バッファ13および受信バッファ32がクリアされ、チューナ11によるチャンネル切り替えが行われると、新たな第2チャンネルに関するデータが処理され、送信バッファ13および受信バッファ32に格納される。
すなわち、図6(c)に示されるように、第2チャンネルに関するデータがチューナ11からトランスコーダ12に入力され、第2チャンネルのテレビ放送の最初の有効映像(画像)に対する符号化データF(1)がネットワーク2を介して受信バッファ32に送られる。
ただし、受信バッファ32は、この時点では空となっているため、符号化データF(1)が届いても、そのデータF(1)を直ちにデコーダ33に出力せず、一定のデータ量を格納(バッファリング)した後、データF(1)をデコーダ33に出力する。
すなわち、図7(a)〜図7(d)に示されるように、受信バッファ32には、データF(1)に続く、データF(2),F(3),…,F(m),…)が順に入力され、バッファリングされる。そして、受信バッファ32に有効なデータが一定容量(例えば、数秒〜数十秒分:F(2),F(3),…,F(m),F(m+1))だけ溜まると、データF(1)が押し出されて、デコーダ33に入力される。
その後、図7(d)(図6(a))と同様に、ディスプレイ34には、受信バッファ32に一時的に格納されたデータF(2),F(3),…が順に出力されてデコーダ33でデコードされ、ディスプレイ34には、第2チャンネルのテレビ放送の映像が表示されることになる。
なお、図6(a)および図7(d)に示されるように、ユーザが端末装置3のディスプレイ34を介して、所定のチャンネルのテレビ放送を視聴している場合、送信バッファ13はエンプティ気味で動作し、受信バッファ32は、フル気味で動作している。
図8は、図6および図7に示すチャンネル切り替え時におけるデータ量の推移を説明するための図であり、横軸に時間を取り、縦軸にデータ量を取って、各部の入出力データ量およびバッファ内のデータ量の推移の一例を示すものである。
すなわち、図8は、例えば、ユーザが端末装置3により第1チェンネルのテレビ放送を視聴している定常状態の期間P21から、期間P22で他の第2チャンネルに切り替えたときのデータ量の推移を示す。
ここで、図8における期間P21は、前述した図6(a)に相当し、期間P22は、図6(b)に相当し、期間P23は、図6(c)および図7(a)〜図7(d)に相当し、そして、期間P24は、図7(d)に相当する。
図8に示されるように、例えば、期間P22(期間P22の最初のタイミング)で、ユーザが端末装置3を操作して視聴するチャンネルを第1チャンネルから第2チャンネルに切り替えた場合、ユーザは、第2チャンネルの画像を直ちに確認することは困難である。
例えば、ユーザが第2チャンネルのテレビ放送を視聴できるようになるのは、チャンネル切り替えでバッファをクリアし、受信バッファ32に一定のデータが溜まる期間P23の後、期間P24でデコーダ33が動作を開始してからである。
例えば、チャンネルが切り替えられた場合、ある程度(数秒〜数十秒分)のデータが受信バッファ32に溜まるまで、待たされ、それから、デコーダ33にデータが入力されて動作が開始し、新たな第2チャンネルの内容がディスプレイ34に表示される。
そのため、例えば、端末装置3を介してWiFiチューナ1によるテレビ放送を視聴するユーザは、デジタル放送になってチャンネル切り替えのレスポンスが遅くなったのに加え、受信バッファ32等へのバッファリングのための時間だけ待たされることになる。
その結果、ユーザは、チャンネルの切り替え操作を行ってから、新たなチャンネルの放送を視聴できるまで、例えば、数秒〜数十秒程度待たされることになる。このような、ユーザの待たされ感を軽減するために、例えば、砂時計等のアイコンや、EPG(Electronic program guide:電子番組表)等の情報を表示することも考えられるが、根本的な解決策とはなっていない。
また、明確な視聴したい番組がなくていくつかのチャンネルを切り替える、或いは、視聴している番組があってもCM(Commercial Message)に切り替わった際に、他のチャンネルに興味を引く番組がないか確認するザッピングと呼ばれる行為がしばしば行われる。
このとき、チャンネル切り替えに要する時間が僅かであれば、次々にチャンネル切り替えを行って、軽快にザッピング等を行うことができる。しかしながら、上述したようなWiFiチューナによるテレビ放送の受信では、チャンネル切り替えのたびに数秒〜数十秒待たされることになる。
ところで、チャンネル切り替えの際に、切り替え先のチャンネルを視聴する意図が明確であれば、再生までにある程度の時間待たされても負担感は少ない。しかしながら、ザッピング等を行う場合、チャンネルの切り替えのたびに数秒〜数十秒待たされ、さらに、待たされた後のチャンネルでも興味のない内容が放送されていると、徒労感が大きく、ザッピングという行為自体が事実上困難となってしまう。
次に、図9〜図14を参照して、図4および図5に示すトランスコーダにおける各処理(全体制御処理,ビデオデコード処理,オーディオデコード処理,ビデオトランスコード処理,オーディオトランスコード処理および多重化処理)の一例を説明する。
図9は、図4および図5に示すトランスコーダの全体制御部による全体制御処理の一例を説明するためのフローチャートである。図9に示されるように、全体制御部121による全体制御処理が開始すると、ステップST10において、各部の内部状態初期化し、ステップST11に進んで、デマルチプレクサ部122が動作を開始(ストリームの取り込みを開始)する。
さらに、ステップST12に進んで、デマルチプレクサ部122のPSI解析処理部20によるPSI解析処理の完了を待ち、ステップST13に進んで、ビデオPID(パケット識別子)が確定したか否かを判定する。
ステップST13において、ビデオPIDが確定した(YES)と判定すると、ステップST17に進んで、デコーダ部123のビデオ処理部31'によるビデオ処理を開始すると共に、マルチプレクサ部126の処理を開始してステップST14に進む。また、ステップST13において、ビデオPIDが確定していない(NO)と判定すると、そのままステップST14に進んで、オーディオPIDが確定したか否かを判定する。
ステップST14において、オーディオPIDが確定した(YES)と判定すると、ステップST18に進んで、デコーダ部123のオーディオ処理部32'によるオーディオ処理を開始してステップST15に進む。また、ステップST14において、オーディオPIDが確定していない(NO)と判定すると、そのままステップST15に進んで、次のユーザによるアクションを待つ。
そして、ステップST16に進んで、ユーザによるアクションがチャンネルの切り替えか否かを判定し、チャンネルの切り替えである(YES)と判定すると、ステップST19に進んで、各処理部を強制的に停止し、ステップST10に戻って同様の処理を行う。なお、ステップST16において、ユーザによるアクションがチャンネルの切り替えではない(NO)と判定した場合、本実施例と関連が薄いので、その処理の説明は省略する。
図10は、図4および図5に示すトランスコーダのデコーダ部によるビデオデコード処理の一例を説明するためのフローチャートである。図10に示されるように、デコーダ部123(ビデオ処理部31')によるビデオデコード処理が開始すると、ステップST20において、ビデオ処理部31'を初期化して内部状態の初期化を行い、ステップST21に進む。
ステップST21では、デマルチプレクサ部122からのビデオストリームの取り込みをチェックし、ステップST22に進んで、1ピクチャ分のストリーム(データ)の取り込みが完了したか否かを判定する。
ステップST22において、1ピクチャ分のストリームの取り込みが完了していない(NO)と判定すると、ステップST21に戻ってチェックを行い、1ピクチャ分のストリームの取り込みが完了したと判定するまで、同様の処理を繰り返す。
また、ステップST22において、1ピクチャ分のストリームの取り込みが完了した(YES)と判定すると、ステップST23に進み、1ピクチャ分のストリームのデコード処理を実行する。さらに、ステップST24に進んで、デコードしたピクチャがI−ピクチャだったか否かを判定する。
ステップST24において、デコードしたピクチャがI−ピクチャではなかった(NO)と判定すると、ステップST20に戻って同様の処理を繰り返し、I−ピクチャであった(YES)と判定すると、ステップST25に進んで、ビデオ先頭発見フラグをセットする。
さらに、ステップST26において、先頭のI−ピクチャのデコードした画像データを、エンコーダ部125に送ってトランスコード処理を開始した後、ステップST27に進んで、ビデオストリームの取り込みチェックを行い、ステップST28に進む。
ステップST28では、前述したステップST22と同様に、1ピクチャ分のストリームの取り込みが完了したか否かを判定する。ステップST28において、1ピクチャ分のストリームの取り込みが完了していない(NO)と判定すると、ステップST27に戻って同様の処理を繰り返し、また、1ピクチャ分のストリームの取り込みが完了した(YES)と判定すると、ステップST29に進む。
ステップST29において、1ピクチャ分のストリームのデコード処理を実行し、ステップST30に進んで、デコードしたピクチャは、クローズドB−ピクチャ,I−ピクチャまたはP−ピクチャだったか否かを判定する。ここで、クローズドB−ピクチャ(Closed-B-Picture)は、前方に対する参照を行わないB−ピクチャである。
ステップST30において、デコードしたピクチャがクローズドB−ピクチャ,I−ピクチャおよびP−ピクチャの何れでもなかったと判定する(NO)と、ステップST31に進む。ステップST31において、先頭のI−ピクチャのデコードした画像データを、エンコーダ部125に送ってトランスコード処理を実行し、ステップST27に戻って同様の処理を繰り返す。
一方、ステップST30で、デコードしたピクチャがクローズドB−ピクチャ,I−ピクチャまたはP−ピクチャであった(YES)と判定すると、ステップST35に進む。ステップST35において、デコードした画像データを、エンコーダ部125に送ってトランスコード処理を実行した後、ステップST32に進んで、デマルチプレクサ部122からのビデオストリームの取り込みをチェックし、ステップST33に進む。
ステップST33において、1ピクチャ分のストリームの取り込みが完了していない(NO)と判定すると、ステップST32に戻り、1ピクチャ分のストリームの取り込みが完了したと判定するまで、同様の処理を繰り返す。
また、ステップST33において、1ピクチャ分のストリームの取り込みが完了した(YES)と判定すると、ステップST34に進み、1ピクチャ分のストリームのデコード処理を実行する。さらに、前述したステップST35に進んで同様の処理を繰り返し、ビデオデコード処理(ビデオトランスコード処理)を継続する。
図11は、図4および図5に示すトランスコーダのデコーダ部によるオーディオデコード処理の一例を説明するためのフローチャートである。図11に示されるように、デコーダ部123(オーディオ処理部32')によるオーディオデコード処理が開始すると、ステップST40において、オーディオ処理部32'を初期化して内部状態の初期化を行い、ステップST41に進む。
ステップST41では、デマルチプレクサ部122からのオーディオストリームの取り込みをチェックし、ステップST42に進んで、1AAU(Audio Access Unit:オーディオ復号単位)分のストリーム(データ)の取り込みが完了したか否かを判定する。
ステップST42において、1AAU分のストリームの取り込みが完了していない(NO)と判定すると、ステップST41に戻ってチェックを行い、1AAU分のストリームの取り込みが完了したと判定するまで、同様の処理を繰り返す。
また、ステップST42において、1AAU分のストリームの取り込みが完了した(YES)と判定すると、ステップST43に進み、ビデオ先頭発見フラグをチェックし、ステップST44に進んで、ビデオ先頭が発見済みか否かを判定する。
ステップST44において、ビデオ先頭が発見済みではない(NO)と判定すると、ステップST47に進み、取り込んだ1AAU分のデータを破棄して、ステップST41に戻り、ビデオ先頭が発見済みであると判定されるまで同様の処理を繰り返す。
一方、ステップST44で、ビデオ先頭が発見済みである(YES)と判定すると、ステップST45に進み、1AAU分のデコードを実行した後、ステップST46に進んで、デコードした音声データをエンコーダ部125に送ってトランスコード処理を開始する。
さらに、ステップST48に進んで、オーディオストリームの取り込みをチェックした後、ステップST49において、1AAU分のストリームの取り込みが完了したか否かを判定する。
ステップST49において、1AAU分のストリームの取り込みが完了していない(NO)と判定すると、ステップST48に戻ってチェックを行い、1AAU分のストリームの取り込みが完了したと判定するまで、同様の処理を繰り返す。
また、ステップST49において、1AAU分のストリームの取り込みが完了した(YES)と判定すると、ステップST50に進み、1AAU分のデコード処理を実行し、ステップST51に進む。
ステップST51では、デコードした音声データをエンコーダ部125に送ってトランスコード処理を実行し、さらに、前述したステップST48に戻って、オーディオデコード処理(オーディオトランスコード処理)を継続する。
図12は、図4および図5に示すトランスコーダのエンコーダ部によるビデオトランスコード処理の一例を説明するためのフローチャートである。図12に示されるように、エンコーダ部125(ビデオ処理部51)によるビデオトランスコード処理が開始すると、ステップST60において、ビデオ処理部51を初期化して内部状態の初期化を行い、ステップST61に進む。
ステップST61では、画像データをチェックし、ステップST62に進んで、画像データがあるか否かを判定する。ステップST62において、画像データがない(NO)と判定すると、ステップST61に戻ってチェックを行い、画像データがあると判定するまで、同様の処理を繰り返す。
一方、ステップST62において、画像データがある(YES)と判定すると、ステップST63に進んで、画像データのビデオエンコード(トランスコード)を実行し、さらに、ステップST64に進む。
ステップST64では、トランスコードしたビデオストリームをマルチプレクサ部126に送った後、ステップST61に戻って同様の処理を繰り返し、ビデオトランスコード処理を継続する。
図13は、図4および図5に示すトランスコーダのエンコーダ部によるオーディオトランスコード処理の一例を説明するためのフローチャートである。図13に示されるように、エンコーダ部125(オーディオ処理部52)によるオーディオトランスコード処理が開始すると、ステップST70において、オーディオ処理部52を初期化して内部状態の初期化を行い、ステップST71に進む。
ステップST71では、音声データをチェックし、ステップST72に進んで、音声データがあるか否かを判定する。ステップST72において、音声データがない(NO)と判定すると、ステップST71に戻ってチェックを行い、音声データがあると判定するまで、同様の処理を繰り返す。
一方、ステップST72において、音声データがある(YES)と判定すると、ステップST73に進んで、音声データのオーディオエンコード(トランスコード)を実行し、さらに、ステップST74に進む。
ステップST74では、トランスコードしたオーディオストリームをマルチプレクサ部126に送った後、ステップST71に戻って同様の処理を繰り返し、オーディオトランスコード処理を継続する。
図14は、図4および図5に示すトランスコーダにおけるマルチプレクサ部による多重化処理の一例を説明するためのフローチャートである。図14に示されるように、マルチプレクサ部126による多重化処理が開始すると、ステップST80において、ビデオ先頭発見フラグをチェックし、ステップST81に進んで、ビデオ先頭が発見済みか否かを判定する。
ステップST81において、ビデオ先頭が発見済みではない(NO)と判定すると、ステップST80に戻り、ビデオ先頭が発見済みであると判定されるまで同様の処理を繰り返す。そして、ステップST81において、ビデオ先頭が発見済みである(YES)と判定すると、ステップST82に進み、トランスコード済みのデータをチェックした後、ステップST83に進んで、データがあるか否かを判定する。
ステップST83において、データがない(NO)と判定すると、ステップST82に戻り、データがあると判定されるまで同様の処理を繰り返す。そして、ステップST83において、データがある(YES)と判定すると、ステップST84に進んで、ビデオのストリームデータか否かを判定する。
ステップST84において、ビデオのストリームデータではない(NO)と判定すると、ステップST87に進んで、トランスコード済みのデータを破棄した後、ステップST82に戻り、同様の処理を繰り返す。
一方、ステップST84で、ビデオのストリームデータである(YES)と判定すると、ステップST85に進んで、先頭ピクチャのPTS(Presentation Time Stamp)およびDTS(Decode Time Stamp)を取り込み、先頭ピクチャの多重化開始時刻を計算する。さらに、ステップST85において、計算された先頭ピクチャの多重化開始時刻をSTC(System Time Clock)にセットし、STC用カウンタ63のカウントを開始する。
そして、ステップST86に進んで、STCに従ってビデオストリーム,オーディオストリームおよびPSI(Program Specific Information)ストリームの多重化を開始する。なお、ステップST86以降の処理は、本実施例と関連が薄いので、その説明は省略する。
以下、動画像処理方法、動画像処理システムおよび動画像処理プログラムの実施例を、添付図面を参照して詳述する。図15は、本実施例に係る動画像処理システム(動画像処理装置)におけるトランスコーダおよびストリームの一例を示す図である。すなわち、図15(a)は、トランスコーダ12の一実施例の詳細をチューナ11および送信バッファ13と共に示し、図15(b)は、トランスコーダ12から出力されるストリーム(トランスポートストリーム)の一例を示す。
図15(a)と前述した図4(a)の比較から明らかなように、本実施例の動画像処理装置におけるトランスコーダ12は、マルチプレクサ部(MUX)126は、強制NULL生成部(ダミーデータ生成部)60を含む。
強制NULL生成部60は、例えば、チャンネルが切り替えられ、切り替え後のチャンネルの動画像データにおける先頭にI−ピクチャが生成された後、回線(ネットワーク)2の最大伝送能力に基づいてNULLデータ(ダミーデータ)を強制的に生成する。なお、詳細は、後に詳述する。
なお、全体制御部121,デマルチプレクサ部(DEMUX)122,デコーダ部123,メモリ124およびエンコーダ部125は、実質的に、それぞれ図4(a)を参照して説明したものに相当する。
すなわち、デマルチプレクサ部122は、PSI解析部20を含み、デコーダ部123は、ビデオ処理部31'およびオーディオ処理部32'を含み、そして、エンコーダ部125は、ビデオ処理部51およびオーディオ処理部52を含む。
全体制御部121は、デマルチプレクサ部122およびデコーダ部123を制御し、例えば、チューナ11からのMPEG−2のデジタルデータから画像データおよび音声データを取り出してメモリ124に格納する。
また、全体制御部121は、エンコーダ部125およびマルチプレクサ部126を制御し、メモリ124から読み出した画像データおよび音声データを、例えば、MPEG−2よりも高圧縮率のH.264のデジタルデータに変換して送信バッファ13に出力する。
すなわち、トランスコーダ12は、例えば、チューナ11からのMPEG−2のデジタルデータを、WiFi等のネットワーク2でも伝送可能な、より高い圧縮率で圧縮したH.264等のデジタルデータに変換して、ネットワーク2に出力する。
図15(b)に示されるように、トランスコーダ12からのストリームは、例えば、PAT,PMT,PCR,PAT,PMT,PCR,I-pic,PCR,P-pic,…,P-pic,NULL(ヌルデータ、ダミーデータ),I-pic,B-pic,B-pic,…と配列される。
本実施例の動画像処理装置(トランスコーダ12)は、例えば、マルチプレクサ部126に設けた強制NULL生成部60により、チャンネル切り替え後の先頭のI−ピクチャの後に、NULLパケット(ダミーデータ)を生成して出力する。
すなわち、図15(b)に示されるように、トランスコーダ12は、PAT,PMT,PCRを2回以上挿入して、受信側(端末装置3の(デコーダ33)でPID解析が正しく行われるようにしている。
ここで、トランスコーダ12は、先頭のI−ピクチャ(先頭I−pic)を、DTS=PTSとしてリオーダなしで再生されるようにして出力する。すなわち、リオーダ処理を行うことにより、圧縮率を高くしてデータ量を低減することが可能であるが、本実施例では、端末装置3において、先頭I−picの画像を直ちに再生できるように、リオーダ処理は行わない。具体的に、PCR(PTS)として、先頭I−picの後、再生開始時刻に到達するようにしている。
すなわち、例えば、H.264等の動画圧縮では、圧縮効率を上げるために双予測(MPEGでは、双方向予測と呼ばれる)技術が用いられる。そのため、各ピクチャは、圧縮率を向上させるためにリオーダ処理によって順番が入れ替えられ、その結果、圧縮データのピクチャの並び順と、表示の際のピクチャの並び順は必ずしも一致しない。
本実施例では、例えば、チャンネルを切り替えた後の先頭I-picによる画像を最短時間で表示させるため、多少の圧縮率が低下しても、リオーダ処理を適用せずに、デコーダ33が先頭I-picを受け取ったら直ちにデコードして画像を表示できるようにしている。
さらに、先頭I-picのデータの後に、I-picを前参照するだけのP−ピクチャ(P-pic)を複数枚数挿入する。この挿入するP-picの枚数は、例えば、1秒分(30ピクチャ)程度を目安として予め設定される。
なお、挿入するP-picの枚数は、例えば、そのシステムに適用される送信バッファ13および受信バッファ32の容量に応じて、容量が大きい場合には枚数を増加し、容量が小さい場合には枚数を減少するといった調整を行ってもよい。或いは、元ストリームのリオーダ枚数(B−ピクチャ(B-pic)の枚数)やPCRとI-picのPTSの差等に基づいて、挿入するP-picの枚数を調整することもできる。
そして、受信側(受信バッファ32)の容量に相当するデータ分のNULLパケットを挿入することで、に先頭I-picが受信バッファ32からデコーダ33速やかに渡るようにしている。
このように、図15(b)に示されるように、本実施例のトランスコーダ12では、トランスコードの開始時の先頭のI−ピクチャ(先頭I−pic)の後、前参照するだけのP−ピクチャを複数枚分挿入する。そして、強制NULL生成部60により生成されたNULLパケットが、回線(ネットワーク)の最大伝送能力に基づいて端末装置3に伝送(送信)される。
これにより、端末装置3における受信バッファ32は、NULLパケットにより埋められることになり、短時間で先頭のI−ピクチャのデータがデコーダ33に入力され、端末装置3のディスプレイ34には、短時間で画像が表示されることになる。
すなわち、例えば、図4(a)および図4(b)を参照して説明した動画像処理装置では、先頭のI−ピクチャ以後のデータ(ピクチャストリーム)は、設定ビットレートに従って生成される。
そのため、受信バッファ32がフル(一定容量)になって先頭I-picがデコーダに送られるまで、受信バッファのサイズ(数秒〜数十秒)の時間を要するが、本実施例によれば、NULLパケットにより、受信バッファ32を強制的にフル状態とすることができる。
これにより、先頭I-picが短時間でデコーダ33に送られ、速やかに先頭I-picの表示が実現される。すなわち、最初の画像が表示されるまでの待ち時間を短縮することができる。
なお、2番目のI-pic以降は、通常通りにトランスコードされたデータが受信バッファ32に溜まってからになる。そのため、2番目のI-pic以降の画像が表示されるまでには、受信バッファ32のサイズに対応した時間を要するが、先頭のピクチャの表示がされているため、待たされている感は大幅に緩和される。
ここで、ディスプレイ34に表示される画像は、例えば、切り替え後のチャンネルにおける放送の先頭I-pic(静止画)であるが、例えば、ザッピングを行う場合には、チャンネル切り替え後の静止画を確認すれば十分な場合が多いと考えられる。
さらに、本実施例の動画像処理装置(動画像処理システム)の適用は、端末装置3自体に対する新たな改良や変更を行わなくてもよいため、端末装置3は、そのまま使用することが可能となる。すなわち、本実施例によれば、端末装置の構成を変更することなく、最初の画像が表示されるまでの待ち時間を短縮することができる。
図16は、図15に示すトランスコーダにおけるマルチプレクサ部の一例を示すブロック図である。図16と前述した図5の比較から明らかなように、本実施例におけるトランスコーダ12は、オアゲート127を含む。
オアゲート127は、NULLパケット挿入モードか否かを指定するNULLパケット挿入モード指定信号MSnpと、NULLパケット強制挿入モードを指定するNULLパケット強制挿入モード指定信号MSicを受け取り、その論理和信号を出力する。
ここで、オアゲート127の出力信号は、ヌル(NULL)パケット生成部69に入力され、また、NULLパケット強制挿入モード指定信号MSicは、STC用カウンタ63'にも入力される。すなわち、STC用カウンタ63'は、後に詳述するように、NULLパケット強制挿入モード指定信号MSicに基づく高速モード機能を有している。
なお、FIFOバッファ61,62、ビデオTSパケット生成部64,オーディオTSパケット生成部65およびPAT生成部66の構成および動作は、図5を参照したのと同様であり,その説明は省略する。また、PMT生成部67,PCR生成部68,多重化対象決定部70および多重化対象選択部71の構成および動作も、図5を参照したのと同様であり,その説明は省略する。
本実施例のマルチプレクサ部126において、NULLパケット生成部69は、NULLパケット強制挿入モード指定信号MSicが入力された場合、NULLパケット挿入モード指定信号MSnpに関わらず、NULLパケットを強制挿入するようになっている。なお、NULLパケット生成部69の構成および動作自体は、図5を参照したのと同様である。
また、STC用カウンタ63'には、高速モード機能が付加されており、強制NULLパケット挿入モードが指定(信号MSicが入力)された場合、STC用カウンタ63'は、通常の動作よりも高速の動作が可能な高速モードとなる。
すなわち、本実施例におけるSTC用カウンタ63'には、例えば、1ずつカウントアップしてシステム時刻(STC:System Time Clock)を生成する通常モードと、予め設定された数(カウントアップ値)ずつカウントアップする高速モードを有している。
ここで、カウントアップ値の設定は、例えば、送信バッファ13および受信バッファ32の容量、並びに、先頭ピクチャおよび後続のスキップ(Skip-)P−ピクチャをどれくらいの時間で送り込むかに基づいて行われる。
具体的に、5秒分の時間に相当するデータを、1フレーム時間を33msecとして送信バッファ13および受信バッファ32に送り込む場合、5sec/33msec≒151.5とり、カウントアップ値は、例えば、151.5等に設定すればよいことになる。
以上において、図15および図16に示すトランスコーダは、単なる例を示すものであり、本実施例が適用されるトランスコーダは、図15および図16に示すものに限定されず、様々な変形および変更が可能なのはいうまでもない。
図17は、図15および図16に示すトランスコーダを適用した場合におけるチャンネル切り替え時の動作を説明するための図であり、前述した図7に相当するものである。なお、端末装置(WiFiチューナの受信装置)3のユーザが定常状態で視聴している状況は、図6(a)を参照して説明したのと同様である。
さらに、ユーザがチャンネルの切り替えを指示した状況、並びに、ユーザがチャンネルの切り替えを指示した直後の状況も、図6(b)並びに図6(c)を参照して説明したのと同様である。
すなわち、図17(a),図17(b)および図17(c)は、本実施例の動画像処理装置(トランスコーダ)により、ユーザがチャンネルの切り替えを指示した直後の図6(c)に続く状況を説明するためのものである。なお、切り替え後のチャンネルにより、ユーザが定常状態で視聴している状況は、図7(d)を参照して説明したのと同様である。
図17(a)〜図17(c)において、受信バッファ32中の参照符号F(1),F(2),F(3)は、符号化された各映像フレームに対応するデータを示し、NULLは、トランスポートストリームのヌルパケットを示す。
なお、F(1)は、例えば、ユーザが第1チャンネルから第2チャンネルへの切り替え指示を行った場合、切り替え後の第2チャンネルのテレビ放送の最初の有効映像(先頭のI−ピクチャ:先頭I-pic)に対する符号化データに対応する。
また、上述したように、本実施例では、切り替え後の第2チャンネルのテレビ放送の先頭I-picを、端末装置3のディスプレイ34に短時間で表示可能とするために、先頭I-picに対してはリオーダ処理を行わないようになっている。
まず、前述した図6(c)のように、例えば、第2チャンネルのテレビ放送の先頭I-picに対する符号化データF(1)がネットワーク2を介して受信バッファ32に送られる。その後、図17(a)に示されように、トランスコーダ12は、ヌルパケット(ダミーデータ)NULLを強制的に生成し、ネットワーク2を介して受信バッファ32に伝送する。
なお、図15(b)を参照して説明したように、トランスコーダ12は、先頭I-pic(データF(1))の後に、例えば、端末装置3に対して、先頭I-picによる静止画の表示を継続するための複数のP-picを生成して受信バッファ32に伝送している。
また、強制的に挿入するヌルパケットNULLと共に、例えば、タイムスタンプを調整した音声パケットを、ネットワーク2を介して受信バッファ32に伝送すれば、端末装置3(ディスプレイ34)に静止画を表示している間、音声を出力することもできる。
次に、図17(b)に示されるように、受信バッファ32が、ヌルパケットNULLにより満たされるようになると、先頭I-picのデータF(1)がデコーダ33に押し出されることになる。
そして、図17(c)に示されるように、例えば、デコーダ33により、データF(1)の処理が済めば、ディスプレイ34には、先頭I-picによる画像が表示され、ユーザは、その画像を確認することができる。なお、図17(a)〜図17(c)に示されるように、送信バッファ13は、エンプティ(空)気味で動作している。
ここで、ヌルパケットNULLの伝送量(送信量)は、例えば、ネットワーク2の最大伝送能力に基づいて設定される。すなわち、トランスコーダ12が生成するヌルパケットNULLは、通常通りにトランスコードされたデータよりもはるかに大きいため、受信バッファ32は、ネットワーク2の最大伝送能力に応じた短時間でフル(満)の状態になる。
また、2番目のI-picのデータF(2)以降の画像が表示されるまでには、受信バッファ32のサイズに対応した時間を要するが、先頭I-picによる画像(静止画)の表示がされているため、待たされている感は大幅に緩和される。
また、受信バッファ32に蓄えられたヌルパケットNULLは、デコーダ33に入力されることになるが、デコーダ33は、そのNULLデータを単純に破棄するだけで、何ら問題を生じることはない。
さらに、チャンネル切り替え後の内容が、例えば、CM等で希望のものでなかった場合、数秒〜数十秒も待つことなく、短時間の内に、先頭I-picによる静止画を確認することができるため、ザッピング等も軽快に行うことができる。
図18は、図17に示すチャンネル切り替え時におけるデータ量の推移を説明するための図であり、横軸に時間を取り、縦軸にデータ量を取って、各部の入出力データ量およびバッファ内のデータ量の推移の一例を示すものである。
すなわち、図18は、例えば、ユーザが端末装置3により第1チェンネルのテレビ放送を視聴している定常状態の期間P31から、期間P32で他の第2チャンネルに切り替えたときのデータ量の推移を示す。なお、図18において、クロスハッチングは、ヌルパケットNULL(ダミーデータ)を示す。
ここで、図18における期間P31は、前述した図6(a)に相当し、期間P32は、図6(b)に相当し、期間P33は、図6(c)に相当し、期間P34は、上述した図17(a)および図17(b)に相当し、そして、期間P35は、図17(c)に相当する。
図18に示されるように、例えば、期間P32(期間P32の最初のタイミング)で、ユーザが端末装置3を操作して視聴するチャンネルを第1チャンネルから第2チャンネルに切り替えた場合、ユーザは、第2チャンネルの画像を直ちに確認することは困難である。
例えば、ユーザが第2チャンネルのテレビ放送を視聴できるようになるのは、チャンネル切り替えでバッファをクリアし、受信バッファ32に一定のデータが溜まる期間P33,P34の後、期間P35でデコーダ33が動作を開始してからである。ここで、本実施例では、例えば、ヌルパケットNULLにより、ネットワーク2の最大伝送能力に基づいて伝送量で受信バッファ32にデータを溜めることができる。
すなわち、図8の例では、例えば、テレビ放送といった所定量で与えられるデータを、ピクチャ単位でトランスコードしてネットワーク2に出力するため、間欠的な動作となって受信バッファ32にデータが溜まるには、数秒〜数十秒程度の時間を要する。
これに対して、図18に示されるように、本実施例では、期間P33で、先頭I-picおよび複数のP-pic等によるデータ伝送を行った後、第2チャンネルのデータ量が少なくても、ヌルパケットNULLを使用して受信バッファ32にデータを溜めることができる。
例えば、ネットワーク2の最大伝送能力(データ量)TDmが、通常のストリームのデータ量の10倍であれば、その最大伝送能力に基づいたヌルパケットNULLを伝送することで、1/10の時間で受信バッファ32をフルとすることができる。
これにより、受信バッファ32から先頭I-picのデータF(1)がデコーダ押し出され、ユーザは、短い待ち時間で先頭I-picによる画像を確認することができる。すなわち、図18の期間P33,P34と、図8の期間P23の比較から明らかなように、本実施例によれば、受信バッファ32にデータが溜まるまでの時間を大幅に短縮することが可能なのが分かる。
以上において、本実施例におけるダミーデータとしては、トランスポートストリーム(TS)のNULLパケットを始め、デコード対象外のPIDを持ったTSパケット等のデコーダ33によるデコード処理に影響を与えず破棄されるものであれば、何でもよい。また、上述した説明では、TSパケットを使用しているが、デコーダ33側の処理に影響を与えることなく破棄されるデータであれば、TSパケットに限定されるものではない。
次に、図19〜図21を参照して、図16に示すトランスコーダにおける各処理(ビデオデコード処理,ビデオトランスコード処理および多重化処理)の一例を説明する。なお、トランスコーダ12における全体制御処理,デコーダ部123におけるオーディオデコード処理,エンコーダ部125におけるオーディオトランスコード処理は、それぞれ図9,図11および図13を参照して説明したのと同様であり、その説明は省略する。
図19は、図15および図16に示すトランスコーダのデコーダ部によるビデオデコード処理の一例を説明するためのフローチャートであり、前述した図10に対応するものである。
ここで、図19と前述した図10の比較から明らかなように、図19において、ステップST20〜ST24およびステップST27〜ST35は、図10と同様の処理を行うものである。
すなわち、図19に示されるように、ステップST24において、デコードしたピクチャがI−ピクチャであった(YES)と判定すると、図10におけるステップST25の代わりに、ステップST200に進む。
ステップST200において、ビデオ先頭発見フラグをセットし、先頭のI−ピクチャの本来のPTS,DTSを、内部レジスタorgPTS,orgDTSに退避し(PTS:=orgPTS,DTS:=orgDTS)、ステップST201に進む。
ステップST201では、先頭のI−ピクチャの本来のPTS,DTSを、PreTime分変更(タイムスタンプを変更)し、デコードした画像データをエンコーダ部125に送って、トランスコードを開始する(PTS:DTS:=orgPTS−PreTime)。
ここで、PreTimeの値は、例えば、受信バッファ32の容量から想定される遅延時間を考慮し、予めパラメータとしてレジスタに設定しておくのが好ましい。ただし、端末装置3から表示開始タイミング(先頭のI−ピクチャを表示するタイミング)を、WiFiチューナ1(送信装置:トランスコーダ12)へフィードバックするような仕組みを導入し、遅延量をキャリブレーションするようにしてもよい。
さらに、ステップST202に進んで、先頭のI−ピクチャのPTS,DTSを本来のPTS,DTSに戻し、デコードした画像データをエンコーダ部125に送って、トランスコードを実行し、ステップST27に進む。なお、ステップST27以降の処理は、図10を参照して説明したのと同様である。
図20は、図15および図16に示すトランスコーダのエンコーダ部によるビデオトランスコード処理の一例を説明するためのフローチャートであり、前述した図12に対応するものである。
ここで、図20と前述した図12の比較から明らかなように、図20において、ステップST60およびST61〜ST64(ST61'〜ST64')は、図12におけるステップST60およびST61〜ST64と同様の処理を行うものである。
すなわち、図20に示されるように、ステップST64において、トランスコードしたビデオストリームをマルチプレクサ部126に送った後、ステップST61に戻る代わりに、ステップST600に進む。
ステップST600では、PTS,DTSを、addTime:=33.3msec.として更新し(PTS:=DTS:=PTS+33.3msec.,count=33.3msec.)、ステップST601に進む。
ステップST601において、PTS,DTSを更新し(offsetTime:=offsetTime+addTime,PTS:=DTS:=PTS+offsetTime)、ステップST602に進む。
ステップST602では、offsetTime<PreTimeが成立するか否かを判定する。ステップST602において、offsetTime<PreTimeが成立する(YES)と判定すると、ステップST603に進む。
ステップST603において、更新したPTS,DTSにてskip-P−ピクチャのビデオストリームをマルチプレクサ部126に送った後、ステップST601に戻る。一方、ステップST602において、offsetTime<PreTimeが成立しない(NO)と判定すると、ステップST61'に進む。なお、ステップST61'〜ST64'の処理は、ステップST61〜ST64の処理と同様である。
すなわち、ステップST61'では、画像データをチェックし、ステップST62'に進んで、画像データがあるか否かを判定する。ステップST62'において、画像データがない(NO)と判定すると、ステップST61'に戻ってチェックを行い、画像データがあると判定するまで、同様の処理を繰り返す。
一方、ステップST62'において、画像データがある(YES)と判定すると、ステップST63'に進んで、画像データのビデオエンコード(トランスコード)を実行し、さらに、ステップST64'に進む。
ステップST64'では、トランスコードしたビデオストリームをマルチプレクサ部126に送った後、ステップST61'に戻って同様の処理を繰り返し、ビデオトランスコード処理を継続する。
図21は、図15および図16に示すトランスコーダにおけるマルチプレクサ部による多重化処理の一例を説明するためのフローチャートであり、前述した図14に対応するものである。ここで、図21と前述した図14の比較から明らかなように、図21において、ステップST80〜ST85およびST86は、図12と同様の処理を行うものである。
すなわち、図21に示されるように、ステップST85において、先頭ピクチャのPTSおよびDTSを取り込み、先頭ピクチャの多重化開始時刻を計算し、先頭ピクチャの多重化開始時刻をSTCにセットし、STC用カウンタ63のカウントを開始する。そして、図14におけるステップST86に進む代わりに、ステップST800に進む。
ステップST800では、NULL強制挿入モードを設定し、デオストリーム,オーディオストリームおよびPSIストリームの多重化を開始するし、ステップST801に進んで、ビデオ先頭およびskip-P−ピクチャの全多重化の完了をチェックする。
さらに、ステップST802に進んで、多重化が完了したか否かを判定する。ステップST802において、多重化が完了していない(NO)と判定すると、ステップST801に戻り、多重化が完了したと判定するまで処理を繰り返す。
また、ステップST802において、多重化が完了した(YES)と判定すると、ステップST803に進んで、送信バッファ13がチェックし、ステップST804に進んで、送信バッファ13がフルか否かを判定する。
ステップST804において、送信バッファ13がフルではない(NO)と判定すると、ステップST803に進んで戻り、送信バッファ13がフルになったと判定するまで処理を繰り返す。
そして、ステップST804において、送信バッファ13がフルになった(YES)と判定すると、ステップST805に進み、通常モードに設定し、ビデオストリーム,オーディオストリームおよびPSIストリームの通常の多重化を再開する。なお、ステップST805以降の処理は、本実施例と関連が薄いので、その説明は省略する。
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
送信装置が、動画像データに基づいて生成した第1画像データをベストエフォート型の回線を介して端末装置に送信し、
前記送信装置が、前記第1画像データを前記端末装置に送信した後でダミーデータを生成して前記端末装置に送信し、
前記端末装置が、前記送信装置から送信された前記第1画像データおよび前記ダミーデータを受信バッファに格納し、前記受信バッファに格納した順に表示装置に表示する、
ことを特徴とする動画像処理方法。
(付記2)
前記ダミーデータの送信量は、前記回線の最大伝送能力に基づいて規定される、
ことを特徴とする付記1に記載の動画像処理方法。
(付記3)
前記送信装置が、
前記第1画像データおよび前記ダミーデータを前記端末装置に送信した後、前記動画像データに基づいて前記第1画像データに続く第2画像データを生成し、前記端末装置に送信する、
ことを特徴とする付記1または付記2に記載の動画像処理方法。
(付記4)
前記表示装置は、
前記第2画像データによる動画像を表示するまで、前記第1画像データによる静止画を継続して表示する、
ことを特徴とする付記3に記載の動画像処理方法。
(付記5)
前記動画像データは、テレビ放送のビデオデータであり、
前記送信装置は、前記端末装置により、前記テレビ放送における第1チャンネルが第2チャンネルに切り替えられた場合に、前記第1画像データを前記端末装置に送信する、
ことを特徴とする付記1乃至付記4のいずれか1項に記載の動画像処理方法。
(付記6)
前記動画像データは、I−ピクチャ,P−ピクチャおよびB−ピクチャを含み、
前記送信装置は、前記第2チャンネルに関するビデオデータの先頭のI−ピクチャに基づいて前記第1画像データを生成する、
ことを特徴とする付記5に記載の動画像処理方法。
(付記7)
前記送信装置は、前記第1画像データを送信した後、前記先頭のI−ピクチャを参照する複数のP−ピクチャを前記端末装置に送信する、
ことを特徴とする付記6に記載の動画像処理方法。
(付記8)
前記送信装置は、前記第1チャンネルが前記第2チャンネルに切り替えられた場合に、前記第2チャンネルに関するビデオデータの先頭のI−ピクチャを受信したことに応じて前記第1画像データを生成する、
ことを特徴とする付記5または付記6に記載の動画像処理方法。
(付記9)
前記回線は、無線回線である、
ことを特徴とする付記1乃至付記8のいずれか1項に記載の動画像処理方法。
(付記10)
前記ダミーデータは、トランスポートストリームのヌルパケットである、
ことを特徴とする付記1乃至付記9のいずれか1項に記載の動画像処理方法。
(付記11)
動画像データに基づいて第1画像データを生成し、ベストエフォート型の回線を介して前記第1画像データを送信し、前記第1画像データを送信した後でダミーデータを生成して送信する送信装置と、
前記送信装置から送信された前記第1画像データおよび前記ダミーデータを受信バッファに格納し、前記受信バッファに格納したデータを格納した順に表示装置に表示する端末装置と、を含む、
ことを特徴とする動画像処理システム。
(付記12)
前記送信装置は、
前記動画像データに基づいて前記第1画像データを生成する画像生成部と、
前記ダミーデータを生成するダミーデータ生成部と、を含む、
ことを特徴とする付記11に記載の動画像処理システム。
(付記13)
前記端末装置は、
前記送信装置から送信された前記第1画像データおよび前記ダミーデータが格納される受信バッファと、
前記前記受信バッファに格納されたデータが格納された順に表示される表示装置と、を含む、
ことを特徴とする付記11または付記12に記載の動画像処理システム。
(付記14)
前記動画像データは、テレビ放送のビデオデータであり、
前記送信装置は、前記端末装置により、前記テレビ放送における第1チャンネルが第2チャンネルに切り替えられた場合に、前記第1画像データを前記端末装置に送信する、
ことを特徴とする付記11乃至付記13のいずれか1項に記載の動画像処理システム。
(付記15)
前記動画像データは、I−ピクチャ,P−ピクチャおよびB−ピクチャを含み、
前記送信装置は、前記第2チャンネルに関するビデオデータの先頭のI−ピクチャに基づいて前記第1画像データを生成する、
ことを特徴とする付記14に記載の動画像処理システム。
(付記16)
前記送信装置は、前記第1画像データを送信した後、前記先頭のI−ピクチャを参照する複数のP−ピクチャを前記端末装置に送信する、
ことを特徴とする付記15に記載の動画像処理システム。
(付記17)
前記送信装置は、前記第1チャンネルが前記第2チャンネルに切り替えられた場合に、前記第2チャンネルに関するビデオデータの先頭のI−ピクチャを受信したことに応じて前記第1画像データを生成する、
ことを特徴とする付記15または付記16に記載の動画像処理システム。
(付記18)
前記回線は、無線回線である、
ことを特徴とする付記11乃至付記17のいずれか1項に記載の動画像処理システム。
(付記19)
前記ダミーデータは、トランスポートストリームのヌルパケットである、
ことを特徴とする付記11乃至付記18のいずれか1項に記載の動画像処理システム。
(付記20)
演算処理装置に、
送信装置が、動画像データに基づいて生成した第1画像データをベストエフォート型の回線を介して端末装置に送信し、
前記送信装置が、前記第1画像データを前記端末装置に送信した後でダミーデータを生成して前記端末装置に送信し、
前記端末装置が、前記送信装置から送信された前記第1画像データおよび前記ダミーデータを受信バッファに格納し、前記受信バッファに格納した順に表示装置に表示する、のを実行させる、
ことを特徴とする動画像処理プログラム。