〔実施の形態1〕
本発明の一実施形態について図1ないし図16に基づいて説明すると以下の通りである。
図2は、通信システム1についての概略構成図である。通信システム1は、同図に示すとおり、アンテナ2、送信装置3、テレビ4、および、外部映像機器5を備えている。また、送信装置3は、チューナ部3a、送信部3b、および符号化部3cを備えている。さらに、テレビ4は、受信機4aおよび映像復号化装置4bを備えている。
アンテナ2、チューナ部3a、符号化部3c、テレビ4、および、外部映像機器5は、それぞれ、図26に示した、アンテナ82、チューナ部83a、符号化部83c、テレビ84、および、外部映像機器85と同様の構成を有する。つまり、本実施の形態に係る通信システム1と図26の通信システム81とを比較すると、送信装置(3・83)における送信部(3b・83b)の構成が互いに異なっている。
図1は、送信部3bについての機能ブロック図である。送信部3bは、同図に示すとおり、分離部(取得手段)11、トランスコーダ12、映像バッファ(蓄積装置)13、音声バッファ14、基準時刻生成部15、多重化部16、MAC/PHY部(送信手段)17、帯域幅推定部18、レート制御部19、および、バッファ制御部20を備えている。また、バッファ制御部20は、データ圧縮部(圧縮手段)21、タイムスタンプ変更部(変更手段)22、および、データ蓄積量判断部(蓄積量判断手段)23を備えている。なお、送信部3bの構成は、一例であって、必ずしもこれに限定されるものではない。
また、分離部11、トランスコーダ12、映像バッファ13、音声バッファ14、基準時刻生成部15、多重化部16、MAC/PHY部17、帯域幅推定部18、および、レート制御部19は、それぞれに、背景技術および解決しようとする課題において説明した、分離部91、トランスコーダ92、映像バッファ93、音声バッファ94、基準時刻生成部95、多重化部96、MAC/PHY97、帯域幅推定部98、レート制御部99と基本的に同一の構成である。したがって、以下においては、上記各部材に関し、背景技術および解決しようとする課題において記載した内容については、基本的に説明を省略する。
アンテナ2では、デジタルテレビ放送等のリアルタイム性を有する符号化されたデータ(符号化データ)受信するものとする。チューナ部3aは、アンテナ2を介して上記符号化データを受信し、受信した符号化データを送信部3bに出力する。
以下では、上記符号化されたデータとして、MPEG−2 TS(MPEG-2 Transport Stream)パケット(以下、TSパケット)を例に挙げて説明する。ここで、TSパケットとは、放送等の映像や音声のリアルタイム伝送に適した伝送形態において利用される、リアルタイム性を有するデータである。そして、このTSパケットを用いることで、送信装置3では、一つのストリーム中に複数のプログラム(放送番組など)を多重化したり、あるいは、映像と音声を同期をとりながら多重化することができる。このように、本実施の形態では、送信装置3に対して、外部から逐次、リアルタイム性を有するデータが入力される。
分離部11は、上記TSパケットを、チューナ部3aあるいは符号化部3cより取得する。そして、分離部11は、上記TSパケットに含まれる映像データおよび音声データを、それぞれ別にパケット化したPES(Packetized Elementary Stream)と呼ばれるパケット(以下、PESパケット)に分離する。さらに、分離部11は、映像データのPESをトランスコーダ12に対して出力すると共に、音声データのPESパケットを音声バッファ14に出力する。
また、PESパケットには、映像と音声との同期をとるために、表示(再生)時刻を指定するタイムスタンプ(PTS:Presentation Time Stamp)と、復号化時刻を指定するタイムスタンプ(DTS:Decoding Time Stamp)とがパケットのヘッダ情報に含まれる場合がある。このPESパケットは可変長サイズのパケットであり、一般的に、映像データの場合は1枚分のピクチャを符号化したデータが一つのPESパケットに収められることが多い。そして、このような場合には、PTS(表示時刻情報)が全てのPESパケットに含まれることになる。一方、DTS(復号化時刻情報)は、復号化時刻と表示(再生)時刻が異なる場合に限ってヘッダ情報に付加される。
また、PESパケットは、ヘッダ情報、画像のみを示すデータであるピクチャデータ、ポインタ等から構成されている。それゆえ、このPESパケットに基づいて作成されるTSパケットも、ピクチャデータを含んでいる。また、以下では、ピクチャデータを送受信(あるいは入出力)することは、パケットを送受信(あるいは入出力)することを表すものとする。
トランスコーダ12は、分離部11から上記映像データのPESを受け付けると共に、レート制御部19からビットレート(1秒間に伝送するビット数)の設定指示を受け付ける。そして、トランスコーダ12は、上記設定指示されたビットレートとなるように、入力された映像データ(映像符号化データ)を再符号化する。さらに、トランスコーダ12は、該トランスコーダ12に入力されたフォーマットと同じフォーマットにて、変換後のビットレートを有するPESパケットを映像バッファ13に対して出力する。
より詳しくは、トランスコーダ12は、該トランスコーダ12内において映像データのPESパケットを分解して映像符号化データを抽出した後、ビットレート変換を行なう。また、上記PESパケットのヘッダ情報に含まれるタイムスタンプ等は、ビットレート変換前に保存される。そして、ビットレート変換されたデータに対して、変換前と同じ内容のものが再度付加されて、再びPESパケットとして構成される。その後、平均してピクチャフレーム(映像フレーム)の周期(1/30秒)で映像バッファ13に出力される。
なお、一般的にトランスコーダとは、符号化方式自体を変換する場合を指すことがあるが、ビットレート変換のみを行う場合にも用いられ、本実施の形態では後者を意味している。
映像バッファ13は、トランスコーダ12からのPESパケットを取得する。そして、映像バッファ13は、このPESパケット(映像データ)を蓄積可能な構成を有している。さらに、映像バッファ13は、多重化部16に対して、受け付けたPESパケットを送る。また、映像バッファ13に入力されたデータは、基本的には、入力された順に、多重化部16に対して出力される。つまり、映像バッファ13は、PESパケットがFIFO(First In First Out)方式で処理されるデータ構造(つまりキュー構造)を有する。さらに、映像バッファ13は、蓄積されるPESパケットをリスト構造で管理している。なお、映像バッファ13は、例えば、半導体メモリにて構成することができる。
ここで、テレビ4との間の通信状態が良好な場合は、テレビ4に対するピクチャデータの再送が不要である。したがって、MAC(つまり、MAC/PHY部17におけるMAC)内部のバッファがすぐに空になり、トランスコーダ12から映像バッファ13に入力されたピクチャデータは、多重化部16を経てMAC内部のバッファにすぐに入力される。そして、MAC内部のバッファに入力されたデータは、トランスコーダ12からの出力レートVsよりも速いレートVtで送信される。つまり、映像バッファ13からのデータの出力間隔が、映像バッファ13へのデータの入力間隔よりも短く設定されている。
このように、映像バッファ13の出力レートは入力レートよりも速いため、映像バッファ13内部にはデータが蓄積されない。したがって通信状態が良好な場合は、映像バッファ13が空となる一方、テレビ4側バッファは未処理のデータで満たされる。
なお、通信システム1では、上記レートの差により再送用の帯域が確保されており、伝送路上での空き時間が存在することにより送信側よりピクチャデータの再送を行うことができる。
一方、テレビ4との間の通信状態が悪化すると、上述したように、受信側からの情報により帯域幅推定部98は通信帯域幅が狭くなったことを認識し、通信帯域幅の変化に応じてレート制御部99がトランスコーダ92のビットレートを低く設定する。この結果、映像バッファ93を経て伝送されるピクチャあたりのデータ量は減り、狭くなった通信帯域幅に適応して送信を続けることができる。このため、映像バッファ13内部にはデータが蓄積されない。
また、テレビ4との間の通信が完全に遮断されると、受信側からのACKパケットが届かないため再送が繰り返えされる。このため、映像バッファ13内部にはデータが蓄積されることとなる。
音声バッファ14は、分離部11から、音声データのPESパケットを取得する。そして、音声バッファ14は、順次、上記PESパケットを多重化部16に送る。
基準時刻生成部15は、TSパケット中の断続的な時刻情報(PCR:Program Clock Reference)に基づいて、連続的な基準時刻を生成する。そして、基準時刻生成部15は、多重化部16において再びTSパケットが生成される際に、再生成した基準時刻の情報を所定のタイミングにて、送信用のPCRとしてTSパケットに挿入する。このように、TSパケットに対してはPCRを断続的に挿入することになっており、復号化側(つまり、受信側となるテレビ4)ではPCRによりシステムクロックを校正する。すなわち、上記通信システム1においては、PTSおよびDTSを生成するための基準時刻情報がPCRとして伝送されると共に、復号化(テレビ4)側でもPCRにより校正された時刻を基準にPTS・DTSを参照することになる。
ところで、上記のように、断続的な時刻情報から連続的な基準時刻を生成するには、図3に示すようなPLL(Phase Locked Loop)回路31を用いればよい。以下、PLL回路31について説明する。なお、元のPCR(図1において、左端より入力されるMPEG−2TSパケットに含まれているPCR)はTSパケットを構成する際に付けられたものである。
PLL回路31は、同図に示すとおり、減算器32、ループフィルタ33、VCO(Voltage Controlled Oscillator)34、カウンタ35、および、減算器36を備えている。
減算器32は、PLL回路31に入力されるPCRと、カウンタ35から出力されるカウンタ値との差分を求める。ここで、PCRよりもカウンタ値が小さい(つまり、カウンタ35の出力が遅れている)場合には、減算器32は、遅れた分に相当する値(電圧)をループフィルタ33に対して出力する。一方、PCRよりもカウンタ値が大きい(つまり、カウンタ35の出力が進んでいる)場合には、減算器32は、進んだ分に相当する値(電圧)をループフィルタ33に対して出力する。
ループフィルタ33は、減算器32から送られてくる電圧を平滑化する。さらに、ループフィルタ33は、平滑化した後の電圧を、VCO34に対して出力する。
VCO34は、ループフィルタ33から送られてきた電圧に応じて、該電圧の周波数を変化させる。ここで、PCRよりもカウンタ値が小さい場合には、VCO34により、上記電圧の周波数が高められる。一方、PCRよりもカウンタ値が大きい場合には、VCO34により、上記電圧の周波数が低められる。また、VCO34は、周波数を変化させた電圧を、カウンタ35に対して出力する。
カウンタ35は、VCO34から、上記周波数を変化させた電圧を取得する。そして、カウンタ35は、VCO34により周波数が高められた場合にはカウントの速度を早くする一方、VCO34により周波数が低められた場合にはカウントの速度を遅くする。また、カウンタ35は、カウント結果を、減算器32と減算器36とに出力する。このように、PLL回路31においては、断続的にPCRが入力される毎に、カウンタ35の出力は校正されることとなる。
減算器36は、カウンタ35の出力を取得し、この出力から定数Tdを差し引く。そして、減算器36は、上記定数Tdを差し引いた値を基準時刻(STC:System Time Clock)とした上で、この基準時刻が多重化部16において必要なタイミングでサンプリングされる。その後、サンプリングされた基準時刻が、送信用のPCRとしてTSパケットに挿入される。
なお、上記定数Tdは、後述するバッファにおける遅延時間(Td1)と、トランスコーダ12等における処理に伴う遅延時間とを合計した時間である。ここで、PCRに基づく基準時刻の情報は、トランスコーダ12、映像バッファ13、テレビ4のバッファを通さずに伝送されるのに対して、PCRを参照するPTSおよびDTSは、トランスコーダ12、映像バッファ13、および、テレビ4のバッファを通る。それゆえ、PTSおよびDTSは、トランスコーダ12での処理による遅延や、映像バッファ13およびテレビ4のバッファでの遅延のため、基準時刻に対して遅延分であるTdをPCRから差し引く必要がある。
多重化部16は、映像バッファ13から出力されたPESパケット(ピクチャデータ)、音声バッファ14から出力されたPESパケット、および、その他の制御用のデータを多重化してTSパケットを構成する。また、多重化部16は、TSパケットを構成する際に、基準時刻生成部15においてサンプリングされたPCRを、TSパケットのヘッダの中に挿入間隔が100ms以下となるように定期的に挿入する。さらに、多重化部16は、多重化されて構成されたTSパケットを、MAC/PHY部17に対して送る。
なお、受信側のテレビ4がTSパケットを受信して、MAC/PHY部17による送信が完了したときには、映像バッファ13と音声バッファ14とから次のPESパケットが出力され、多重化部16においてTSパケットが構成される。
MAC/PHY部17におけるMAC(Media Access Controller)は、テレビ4に対するTSパケットの再送を伴った通信制御を行い、MAC/PHY部17におけるPHY(Physical Layer Device)は、無線や電力線等の特定の物理層に対応してデータの送受信を行なう機能を有している。
ここで、MAC/PHY部17のMACにおける処理を、図4に基づいて説明する。なお、同図に示す処理は、MAC内部の制御部(図示せず)により独立して行われる。MAC内部には再送のためのバッファ(図示せず)が存在する。
まず、MACに対して、TSパケットの入力があるか否かが判断される(S1)。S1において、MACに対して1ピクチャ分のTSパケットが入力されると、このTSパケットがMAC内部のバッファに一時保存されると共に、MACの制御部により、該TSパケットがPHYを介してテレビ4に送信される(S2)。一方、S1において、MACに対してTSパケットが入力されなかった場合、再度、S1の処理に戻る。
S2の後は、テレビ4に送信したTSパケットに対する応答信号(ACKパケット)を、送信装置3側で受信したか否かが、MACの制御部により判断される(S3)。つまり、TSパケットがテレビ4に送信されて、さらに、テレビ4から、上記TSパケットを正常に受信できた旨の応答が送信装置3に対して行われたか否かが判断される。
ここで、S3において、上記応答信号が送信装置3に送られてきた場合には、再度、S1に戻る。なお、この場合には、TSパケットの再送の必要がなくなるため、MAC内部のバッファのデータは不要となる。そのため、MACの制御部が、このデータを消去し、バッファに空き領域を形成する。一方、上記応答信号が送信装置3に送られてこない場合、つまり、テレビ4が正常にTSパケットを受信できなかった場合には、再度、S2に戻る。すなわち、MACの制御部によりTSパケットがテレビ4に対して再送される(S2)。このように、上記TSパケットの再送は、応答信号が戻ってくるまで行われる。
なお、上記TSパケットの再送は、再送回数や再送処理を行う時間を予め規定しておき、この回数や時間を超えるまで再送処理を行う構成としてもよい。ただし、これらの構成を本実施の形態に適用する場合には、再送が、十分に長い時間連続して行われる構成としておく。
このように、本実施の形態においては、通信が遮断された場合には、テレビ4において正常に受信されていないTSパケットが、MACのバッファに保存されつづけることとなる。
次に、映像バッファ13からの出力処理について、図5に基づいて説明する。なお、同図に示す処理は、送信部3bのバッファ制御部20により行われる。
まず、バッファ制御部20が、映像バッファ13に、ピクチャデータ(PESパケット)が存在するか否かを判断する(S11)。S11において、PESパケットが映像バッファ13に存在しない場合、再度、S11に戻る。一方、S11において、PESパケットが映像バッファ13に存在する場合、バッファ制御部20は、MAC内部にTSパケットが存在するか否かを判断する(S12)。
S12において、MAC内部にTSパケットが存在する場合には、再度、S11に戻る。一方、S12において、MAC内部にTSパケットが存在しない場合には、映像バッファ13から1ピクチャ分のPESパケットが多重化部16に出力される。そして、多重化部16にてTSパケットに構成され、MAC内部のバッファに入力される(S13)。なお、S13に後は、S11に戻る。
なお、上記においては、MAC内部にTSパケットが存在するか否かの判断を、バッファ制御部20が行う構成としたが、必ずしもこれに限定されず、上記の判断を行う部材を別途設けてもよい。
一方、音声データに関しては、映像データに比べてデータ量が大変少ない。それゆえ、映像データに関するPESパケットが出力される毎に、音声バッファ14から音声データに関するPESパケットが出力されるわけではなく、映像データに関するPESパケットが複数回出力されるごとに1回出力される。なお、この音声データに関するPESパケットの出力は、音声バッファ14内において、次に出力されるPESパケットのPTSを、映像バッファ13から出力されるPESパケットのPTSと比較し、映像データのPTSが音声データのPTSを超えたことをトリガーとして行われる。
ところで、上記のような再送を前提とした通信システム1では、テレビ4は、通常、送信装置3の映像バッファ13の容量と音声バッファ14の容量とを合わせたものと同じ容量のバッファ部を備えている。ところで、TSパケットの再送が行われると、テレビ4にTSパケットが届く時間間隔が不均一になり、ジッタが発生する。しかしながら、テレビ4のバッファ部に一旦受信したTSパケットを溜めておき、かつ、均一なクロックで該TSパケットを読み出すことにより、ジッタを除去することができる。このように、テレビ4のバッファは、再送に伴うジッタを除去するために設けられる。
図6は、上記ジッタの除去を行う構成例(以下、ジッタ除去回路と称する)を示した図である。同図に示すとおり、ジッタ除去回路41は、バッファ部42、PCR検出器43、減算器44、ループフィルタ45、VCO46、カウンタ47、および、分周器48を備えている。
バッファ部42は、送信装置3から受信したTSパケットを一時的に蓄積するバッファである。PCR検出器43は、上記受信したTSパケットのヘッダに含まれるPCRを検出する。そして、PCR検出器43は、検出したPCRを減算器44に対して出力する。
ここで、減算器44、ループフィルタ45、VCO46、および、カウンタ47で構成される回路部は、図3に示した、減算器32、ループフィルタ33、VCO34、および、カウンタ35で構成される回路部と基本的に同じ構成および機能を有する。ただし、図6の場合には、VCO46からの出力が、分周器48に入力される。このように、PCRから均一な時間間隔のVCO出力を得るためのPLLの動作は、図3と同じである。このため、この回路部についての説明は省略する。
ここで、ループフィルタ45の時定数を大きく設定することにより、大きく設定した分だけTSパケットの受信時刻のばらつきを吸収することができる。また、VCO46から出力されるクロックは、バッファ部42からTSパケットを読み出す際には、バッファ部42に蓄積される際のデータ幅に従って、分周器48で最適な周波数に変換される。そして、変換後の周波数がバッファ部42からのTSパケット読み出しクロックとなり、バッファ部42では、均一な間隔でTSパケットが読み出される。そして、バッファ部42から、MPEG−2TS用の復号化器に対して出力される。また、カウンタ47からの出力も、復号化器に入力され、DTSやPTSの基準時刻であるSTCとなる。
このように、上記ジッタ除去回路41では、受信したTSパケットに含まれるPCRを使用し、PLL回路により均一な時間間隔のクロックを生成することにより、バッファ部42からジッタのないタイミングでTSパケットを読み出すことができる。
ところで、本実施の形態では、送信装置3に入力される前のPCRから、テレビ4のバッファ部42における遅延も含めた遅延量Tdを差し引くことにより、送信装置3でのPCRが作成される。このため、テレビ4では、STC(基準時刻)を生成する際には、バッファ部42における遅延量を差し引く必要はない。なお、送信装置3においてTdの半分だけを差し引き、テレビ4ではバッファ部42の遅延量に相当するTdの半分を差し引いくことにより、STCを生成してもよい。
送信装置3の映像バッファ13とテレビ4のバッファ部42とを合わせたデータの遅延量は、図29に示すとおり、一定値(Td1)となる。したがって、これら2つのバッファ部(13・42)によって、送信装置3のトランスコーダ12の出力から、テレビ4の映像復号化装置4bまで、常にジッタのない一定時間でデータが伝送されることとなる。
ここで、バッファ制御部20について説明する。バッファ制御部20は、映像バッファ13におけるPESパケットの入出力を制御する。また、バッファ制御部20のデータ圧縮部21は、映像バッファ13に蓄積されたPESパケットを、所定の条件の下、所定の手順で圧縮する。より詳しくは、映像バッファ13に蓄積されたPESパケットの一部を削除する(つまり、一部のPESパケットを間引く)ことにより、映像バッファ13に蓄積されたPESパケットを圧縮する。なお、上記所定の条件、および、所定の手順の具体的内容については、後述する。また、以下では、説明の便宜上、上記のPESパケットの圧縮を、ピクチャデータの圧縮として記載する。つまり、ピクチャデータを削除することは、このピクチャデータを含んだパケットを削除すること表すものとする。
バッファ制御部20のタイムスタンプ変更部22は、削除対象となったピクチャデータを削除する際に、所定のピクチャデータに関するタイムスタンプ(PTS・DTS)(つまり、該ピクチャデータを含むPESパケットにおけるヘッダ情報の一部)の値(表示時刻・復号化時刻)を変更する。なお、具体的な変更方法については、後述する。また、以下では、タイムスタンプ(PTS・DTS)の値を変更することを、単に、タイムスタンプ(PTS・DTS)を変更すると記載する。
データ蓄積量判断部23は、映像バッファ13に蓄積されたPESパケットの蓄積量を判断する。また、データ蓄積量判断部23は、上記蓄積量が所定の閾値を超えた場合に、データ圧縮部21に対して、ピクチャデータの圧縮を指示することを示す情報を送信する。
ところで、上述したように、映像バッファ13が蓄積されるPESパケットをリスト構造で管理しているため、ピクチャデータが削除されても残りのピクチャデータの移動が必要ない。このため、蓄積量が上記所定の閾値を越えたか否かは、映像バッファ13内のピクチャデータであって、かつ、映像バッファ13に最も遅く入力されたピクチャデータに関するアドレスでは判断できない。
そこで、本実施の形態では、映像バッファ13におけるPESパケットの蓄積量を表す変数を別途設ける。そして、映像バッファに対するPESパケットの入出力、および、PESパケットの削除を行う毎に、バッファ制御部20が上記変数を更新すると共に、データ蓄積量判断部23が、更新された変数が所定の閾値を超えたか否かを判断する構成とする。なお、上記変数の更新のために必要となる各PESパケットのデータ量は、PESパケットのヘッダ情報より求める。
また、本実施の形態においては、映像バッファ13で蓄積可能な容量より少し小さな値を、上記所定の閾値(閾値A(第1の閾値))としている。なお、PESパケットのサイズは、Iピクチャデータ(基本ピクチャデータ)、Pピクチャデータ(参照ピクチャデータ)、Bピクチャデータ(参照ピクチャデータ)ごとに異なり、Bピクチャデータが最も小さく、Iピクチャデータが最も大きい。このため、Iピクチャデータを含んだPESパケットが映像バッファ13に入力されても映像バッファ13が溢れないようにするため、映像バッファの蓄積可能な容量と、上記閾値Aとの差が、Iピクチャを含んだPESパケットの容量よりも大きくなるように、上記閾値Aを設定するのが好ましい。
映像バッファ13は、PESパケットがFIFO方式で処理されるデータ構造(つまりキュー構造)を有するが、映像バッファ13内のPESパケット(ピクチャデータ)の管理はリスト構造で行われている。
ここで、リストによるキューの構造を、図7(a)に示す。同図に示す構造では、リストの先頭(出力側であって一番古いピクチャデータ)とリストの末尾(入力側であって一番新しいピクチャデータ)とが、それぞれ、ポインタph、ポインタptにより指し示されて管理されている。さらに、上記構造は、各ピクチャデータには、次の新しいピクチャデータを指し示すためのポインタが対応付けられている。なお、同図においては、D1、D2、D3、および、D4がピクチャデータを表し、P1、P2、P3、および、P4が次の新しいデータを示すポインタを表している。このような構造により、各ピクチャデータはポインタによって管理される。このため、ピクチャデータは映像バッファ13内の何れの領域に配置されてもよい。なお、末尾のピクチャデータに対応づけられるポインタには、次にデータが存在しないことを示す”nil”という特別の値が設定される。
図7(b)には、映像バッファ13内の特定のピクチャデータを削除した場合における、キュー構造を示す図である。同図は、図7(a)の状態から、ピクチャデータD2を削除した場合である。ここでは、実際にはピクチャデータD1のポインタP1を、削除したポインタP2の値に変更するだけでよく、一般的なキュー構造で途中のピクチャデータを削除した場合のようにピクチャデータの移動を行なって空きスペースを詰める必要がない。この結果、ポインタP1がピクチャデータD3を指し示すことになり、ピクチャデータD2はどこからも指し示されなくなって実質的には削除されたことと同じになる。なお、指し示されなくなったピクチャデータD2については、実際に削除処理を行う構成としても、あるいは、このピクチャデータD2が記憶された領域に新たなピクチャデータを上書きする構成としてもよい。
また、出力するピクチャデータは、図7(a)(b)に示すとおり、ポインタphにより指し示されている。つまり、ピクチャデータD1が出力対象として指定されている。
図7(c)には、映像バッファ13の先頭(出力側)から1枚分(つまり、テレビ4で表示される一画面)のピクチャデータD1を出力した後の状態を示している。そして、出力後はピクチャデータD1の次の新しいピクチャデータがバッファ内の先頭データとなるため、phの値をP1の値に変更しておけばよい。
図7(d)には、映像バッファ13の末尾(入力側)に1枚分のピクチャデータD5が入力された後の状態を示している。ここで、ピクチャデータD5の入力の際には、まず、入力するピクチャデータD5を空き領域に書き込み、ポインタptの値をD5のアドレスに変更する。さらに、末尾のピクチャデータに対応づけられたポインタP4の値をD5のアドレスに変更すると共に、ピクチャデータD5に対応づけられたポインタP5の値をnilにする。
そして、上記のようなリスト構造においては、新しいピクチャデータを映像バッファ13に書き込む場合に、過去に削除や出力を行うことによって、どのポインタからも指定されなくなったピクチャデータの領域が実質的な空き領域となり、この領域に新たなピクチャデータを上書することができることとなる。また、映像バッファ13における一番古いピクチャデータの先頭のアドレスから、一番新しいピクチャデータの最後のポインタ(nilが入るポインタ)のアドレスまでが、映像バッファ13内で現在使用中の領域となるため、空き領域はこれらの領域を除いた領域として簡単に見つけることができる。
なお、本実施の形態では、ピクチャデータがI、P、およびBピクチャデータの何れであるかを識別するコード(ピクチャタイプ)に何度もアクセスすることになるため、ピクチャデータを映像バッファ13に入力する際に、ピクチャデータからピクチャタイプを読み出して、ピクチャデータの最初に付加しておくことが好ましい。同様に、PTSやDTSは、PESパケットのヘッダ情報に含まれているため、これらを読み出してピクチャデータの最初に付加しておいてもよい。なお、MPEG2符号のデータは階層構造を有しており、上記ピクチャタイプはピクチャ層と呼ばれる層に存在している。
ここでMPEG2符号化方式における、符号化および復号化の前後におけるピクチャデータの順序を、図8に基づいて説明する。同図中の一番上の行は、MPEG2符号化が行われる前のピクチャの順序を示している。この順序は、図29に示した順序と同じであり、この順序でピクチャデータが符号化器(図示せず)に入力される。
また、同図中の真ん中の行は、送信装置3への入力となるTSパケットに含まれているピクチャデータの順序を示したものである。送信装置3においては、この順序でピクチャデータがトランスコーダ12に入力され、かつ、この順序でトランスコーダ12より出力される。さらに、この順序で、テレビ4の映像復号化装置4bに入力される。つまり、上記真ん中の行では、ピクチャデータが復号化時刻の順に並んでいる。
さらに、同図中の一番下の行は、テレビ4にて復号化された後のピクチャデータの順序を示している。このように、一番下の行でのピクチャデータの順序は、一番上の行でのピクチャデータの順序と同じになる。つまり、一番下の行でのピクチャデータは、表示時刻の順に並んでいる。なお、復号化される順序は、テレビ4の映像復号化装置4bに入力される順序である。それゆえ、トランスコーダ12から出力された順序である、上記真ん中の行に示した順序にて、各ピクチャデータが映像バッファ13に入力される。
ところで、図8に示すBピクチャデータであるB1およびB2のそれぞれを、テレビ4の映像復号化装置4bにて復号化するためには、前後のPピクチャデータであるP1およびP2が既に復号化されている必要がある。このため、ピクチャデータB1が表示(再生)される時刻T1においては、ピクチャデータP1およびP2を既に復号化させておく。
また、PピクチャデータであるピクチャデータP2は、復号化時よりも遅れた時刻T2にて表示される。さらに、次に復号化されるピクチャデータB3、B4のために必要とされるピクチャデータP3が、ピクチャデータP3を含んだPESパケットにおけるヘッダ情報中のDTS(以下、ピクチャデータP3のDTSと称する)に従って、ピクチャデータP2の表示時刻と同時刻T2に復号化される。この例のように、ピクチャデータP3のDTSとピクチャデータP2のPTS(つまり、ピクチャデータP2を含んだPESパケットにおけるヘッダ情報中のPTS)とは一致しているのが一般的である。つまり、あるピクチャデータに対応付けられたDTSは、他のいずれかのピクチャデータに対応付けられたPTSと一致しているのが一般的である。
また、同図における上記真ん中の行および上記一番下の行との関係からわかるように、Bピクチャデータは、復号化時刻と表示時刻とが一致しており、DTSの代わりにPTSが復号化時刻も表している。このため、このようなGOP構成(図29参照)においては、Bピクチャデータを含むPESパケットにはDTSが存在しない。一方、1枚分のピクチャが一つのPESパケットに含まれる場合は、IピクチャデータまたはPピクチャデータを含むPESパケットにはDTSが含まれることになる。
次に、バッファ制御部20による映像バッファ13の制御について、図9に基づいて説明する。
まず、バッファ制御部20が、映像バッファ13に対してピクチャデータの入力があるか否かを判断する(S21)。S21において入力がない場合には、再度、S21に戻る。一方、S21において入力がある場合には、データ蓄積量判断部23が、PESパケットの蓄積量が上記閾値Aを超えたか否かを判断する(S22)。S22において閾値Aを超えていないと判断された場合、再度、S21に戻る。一方、S22において閾値Aを超えたと判断された場合には、データ圧縮部21により、特定のピクチャデータが削除される(S23)。S23の後は、再度、S22に戻る。
ここで、S23において蓄積量が閾値Aを超えた場合、データ圧縮部21により、映像バッファ13内における何れのピクチャデータを削除するかについて、図10および図11に基づいて説明する。
上述したように、Pピクチャデータを復号化するためには、過去のIピクチャデータまたは過去のPピクチャデータが必要となる。また、Bピクチャデータを復号化するためには、参照先である前後のIピクチャデータやPピクチャデータが必要となる。つまり、他のピクチャデータを参照する度合い(以下、参照度合)については、Bピクチャデータの方がPピクチャデータよりも高い。なお、Iピクチャデータについては、PピクチャデータやBピクチャデータが必要ない。
そこで、本実施の形態では、このようなピクチャデータの性質を用い、復号化時に他のピクチャデータへの参照度合の高いピクチャデータ(つまり、Bピクチャデータ)であって、かつ、映像バッファ13内におけるPTSの値が最も小さい(つまり表示時刻が最も古い)ピクチャデータから先に削除する。以下、このような処理の詳細を、図10に基づいて説明する。
まず、バッファ制御部20は、リストの先頭を示すポインタphから、ポインタを順にたどって、Bピクチャデータが存在するか否かを判断する(S31)。
S31においてBピクチャデータが複数存在していると判断された場合には、最もPTSの値が小さいBピクチャデータを削除する(S32)。なお、削除の具体的な方法については、図7に基づいて示したため、ここでは説明を省略する。また、S32の後は、タイムスタンプ変更部22により、タイムスタンプの変更が行われる(S33)。なお、タイムスタンプの変更の詳細については、後述する。
また、S33の後は、映像バッファ13に蓄積されたPESパケットのデータ量が閾値A未満であるか否かがデータ蓄積量判断部23により判断される(S34)。S34において閾値A未満であれば、ピクチャデータの削除処理を終了する。また、S34において閾値A以上であれば、再度、S31に戻る。
一方、S31においてBピクチャデータが存在していないと判断された場合には、つまり、ポインタが最終のnilに達した場合には、バッファ制御部20は、リストの先頭を示すポインタphからポインタを順にたどって、連続するPピクチャデータの集合が存在するか否かを判断する(S35)。
S35においてPピクチャデータの集合が存在していると判断された場合には、この検索において最初に見つかったPピクチャデータの集合が、映像バッファ13内で最も古いPピクチャデータの集合である。そこで、この集合の中、ポインタが一番進んだところのPピクチャデータを削除する(S36)。また、S36の後は、タイムスタンプ変更部22により、タイムスタンプの変更が行われる(S37)。
また、S37の後は、映像バッファ13に蓄積されたPESパケット(ピクチャデータ)が閾値A未満であるか否かがデータ蓄積量判断部23により判断される(S38)。S38において閾値A未満であれば、ピクチャデータの削除処理を終了する。一方、S38において閾値A以上であれば、再度、S31に戻る。
一方、S35において連続するPピクチャが存在していないと判断された場合には、つまり、ポインタが最終のnilに達した場合には、バッファ制御部20は、リストの先頭を示すポインタphからポインタを順にたどって、Pピクチャデータが存在するか否かを判断する(S39)。
S39においてPピクチャデータが存在していると判断された場合には、この検索において最初に見つかったPピクチャデータが、映像バッファ13内で最も古いPピクチャデータであるため、該Pピクチャデータを削除する(S40)。また、S40の後は、タイムスタンプ変更部22により、タイムスタンプの変更が行われる(S41)。
また、S41の後は、映像バッファ13に蓄積されたPESパケットが閾値A以下であるか否かがデータ蓄積量判断部23により判断される(S42)。S42において閾値A未満であれば、ピクチャデータの削除処理を終了する。一方、S42において閾値A以上であれば、再度、S31に戻る。
一方、S39においてPピクチャデータが存在していないと判断された場合には、つまり、ポインタが最終のnilに達した場合には、バッファ制御部20は、映像バッファ13内古いIピクチャデータを削除する(S43)。そして、S43の後は、タイムスタンプの変更を行う(S44)。さらに、S44の後は、映像バッファ13に蓄積されたPESパケットが閾値A未満であるか否かがデータ蓄積量判断部23により判断される(S45)。S45において閾値A未満であれば、ピクチャデータの削除処理を終了する。また、S45において閾値A以上であれば、再度、S31に戻る。
ところで、上記のように、Iピクチャデータを削除する場合には、映像バッファ13内は全てIピクチャデータで満たされた状態となっている。したがって、このような状態場合は、従来のように長期間連続したピクチャが欠落することを防ぐために、前回に削除したピクチャデータに対応づけられたポインタ(つまり、連続するIピクチャを指し示すポインタ)をバッファ制御部20が別途記憶しておく。そして、データ圧縮部21により、連続したIピクチャデータが削除されないように、例えば古い方から1ピクチャデータおきに削除する等の処理を行なうことが好ましい。
図11は、通信遮断中に映像バッファ13内で新しいピクチャデータが入力される毎に蓄積量が閾値Aを超え、ピクチャデータが削除されてゆく時間変化を順に示した図である。なお、同図では、一つの四角が一つのピクチャデータを表し、かつ、I、P、および、Bピクチャデータに対して、それぞれに種類の異なる模様を付している。
また、同図では、左側よりトランスコーダ12からのピクチャデータが入力される一方、右側では、MAC内部のバッファにデータが残っているために、映像バッファ13からデータが出力されない状態を示している。さらに、同図では、映像バッファ13にピクチャデータが入力されたことにより蓄積量が閾値Aを超え、その結果として削除されるピクチャデータを×印で示している。
ここで、図10に示したフローに従って処理を行うと、図11に示すように、最初の段階では、削除されても他のピクチャが表示可能なBピクチャが優先的に削除さる。そして、次の段階では、Pピクチャデータが、削除されても他のPピクチャが表示できるように、古いGOP内のPピクチャデータであって、かつ、このGOP内では新しいPピクチャデータから削除される(図中の状態A参照)。そして、他のピクチャデータがなくてもそれ自身で復号化が可能なIピクチャデータが残ることになる(図中の状態B参照)。また、上述したように、Iピクチャデータを削除する際には、Iピクチャデータに関して1ピクチャデータおきに削除する(図中の状態C参照)。
また、以上のように、映像バッファ13に入力された順序が基本的に古い順に、ピクチャデータを削除する理由は、後述するようにタイムスタンプの変更回数を減らすためである。
以上の処理により、通信遮断中のピクチャデータの一部を映像バッファ13内に残すことができる。しかしながら、従来技術においては本来削除されるはずであったにもかかわらず、上記の処理により選択的に残されたピクチャデータを通信回復後に表示するためには、その残されたピクチャデータを遅れた時間に表示する必要がある。このため、本来削除されるはずであったピクチャデータに対して、そのタイムスタンプ(PTSおよびDTS)を変更する必要がある。以下、タイムスタンプの変更処理を、図12および図13に基づいて説明する。なお、タイムスタンプの変更は、復号化のためにDTSを行い、表示のためにPTSを変更する。
タイムスタンプの変更処理は、映像バッファ13内でピクチャデータが一つ削除される毎に、タイムスタンプ変更部22が、削除されたピクチャデータより一つ古いピクチャデータから、一番古いピクチャデータに対して行う。
ここで、映像バッファ13内のピクチャデータを一つ削除すると、削除後は該ピクチャデータの復号化および表示の時刻が空く。したがって、例えば、そのピクチャデータよりも一つ古い(つまり過去の)ピクチャデータの復号化時刻および表示時刻を上記空いた時刻に割り当てることができる。また、そのピクチャデータよりも一つ古いピクチャデータの表示時刻が削除されたピクチャデータの表示時刻よりも新しい場合には、上記一つ古いピクチャデータの復号化時刻のみを上記空いた時刻に割り当てることもできる。
このため、上記一つ古いピクチャを、1ピクチャ分遅れて復号化および表示を行うこと、あるいは、1ピクチャ分遅れて復号化することができる。
さらに、このような復号化時刻および表示時刻(あるいは、復号化時刻)の割り当てのシフトを、映像バッファ13における一番古いピクチャデータまで繰り返すことにより、空いた復号化時刻および表示時刻を埋めると共に、全てのピクチャデータを1ピクチャ分遅らせて表示させることができるようになる。
以上の一連の処理を、ピクチャデータを一つ削除するごとに繰り返せば、特定のピクチャデータを複数ピクチャ分遅らせて表示することができる。そのため、通信回復後において、上記特定のピクチャデータをテレビ4で表示することができる。
なお、上記において、映像バッファ13内のピクチャデータを削除したときに、該削除したピクチャデータよりも古いDTSを持つピクチャデータが存在すれば、それらのピクチャデータのDTSを変更する。また、同様に、該削除したピクチャデータよりも古いPTSを持つピクチャデータが存在すれば、それらのピクチャデータのPTSを変更する。
ここで、DTSの変更処理について、図12に基づいて説明する。なお、同図は、図11の最初の部分を抽出した図である。また、図7中の×印は、新しく映像バッファ13にピクチャデータが入力されたことにより蓄積量が閾値Aを超えて、その結果削除対象となるピクチャデータを示している。
上から1段目は、映像バッファ13内で最も古いBピクチャが削除対象となった状態を示している。なお、このBピクチャデータは、映像バッファ13内でPTSが最も古いピクチャデータである。この場合は、従来と同様に映像バッファ13内で一番古いピクチャデータ(Bピクチャデータ)が削除される。また、削除されるピクチャデータのDTSも最も古い値であるため、映像バッファ13におけるDTSの変更は必要ない。
また、同図中の2段目は、一段目と同様に、最も古いBピクチャデータが削除対象となった状態を示している。しかしながら、この場合は、削除されたBピクチャデータよりも古いピクチャデータ(Iピクチャデータ)D9がバッファ内に存在する。ここで、このピクチャデータD1が通信回復後まで映像バッファ13に残って、かつ、受信側(つまりテレビ4)に届いて復号化される場合を考える。この場合には、ピクチャデータD1のDTSが通信遮断中の時刻となるため、このDTSを受信側の基準時刻であるSTCと比較すると過去の時刻となってしまう。したがって、このままでは、ピクチャデータD1を復号化することができない。
そこで、本実施の形態においては、映像バッファ13の一番古いピクチャデータから削除するピクチャデータまでのDTSの値を順に、1ピクチャ分ずつ古いピクチャデータの方向へ移動する。これにより、一番古いDTSの値は捨てられ、削除されたピクチャデータのDTSの値が、削除が行われる毎に、順に他のピクチャデータに引き継がれる。これにより、新しい復号化時刻を残すことができることとなり、通信回復後に映像バッファ13のピクチャデータに残ったピクチャデー全てを復号化できるようになる。
ここで、図12から明らかなように、映像バッファ13では、古いピクチャデータの方から削除したほうが新しいピクチャデータから削除するよりも、DTSの移動回数(変更回数)が少なくてすむ。このため、Bピクチャデータの削除は古い方から行なうことが好ましい。また、連続したPピクチャデータの集合を含むGOPが複数存在する場合には、GOPが古いものから行なう方が好ましく、かつ、このGOP内では、削除しても他のピクチャの復号化に影響しない最も新しいPピクチャデータから削除するのが好ましい。
さらに、連続しないPピクチャデータやIピクチャデータの場合も同様に、古いピクチャデータの方から削除を行うことにより、DTSの移動回数を削減できる。なお、BピクチャデータにはDTSが含まれないため、DTSを変更する必要はない。また、IピクチャデータあるいはPピクチャに移動するべきDTSを、Bピクチャから移動する場合は、DTSの代わりに、BピクチャデータにおいてDTSの意味を併せ持つPTSの値で代用する。
次に、PTSの変更処理について説明する。映像バッファ13のリスト構造では、ピクチャデータが図8の真ん中の行に示すとおり、復号化される順序で並んでいる。このため、DTSの処理については、隣のピクチャデータ間でのDTSの値の移動により行うことができた。
しかしながら、表示される順序は同図の一番下の行のような順序となり、PTSの値はリスト構造の順序どおりには並んでいない。このため、PTSの変更処理は別の方法で行う必要がある。そこで、まず、映像バッファ13において一番古いピクチャデータから、削除するピクチャデータの一つ前(一つ分古いピクチャデータ)までのピクチャデータのPTSを調べる。次に、調べた各PTSが、削除するピクチャデータのPTSよりも小さいかをバッファ制御部20が判断する。そして、タイムスタンプ変更部22は、削除するピクチャデータのPTSよりも小さい値(古い値)のピクチャデータに対してのみ、PTSの変更を行う。なお、PTSを調べている際に、削除するピクチャデータのPTSよりも大きなPTSを持つピクチャデータが存在した場合、ピクチャデータの表示順に関しては削除するピクチャデータの後であることを示すため、PTSの変更対象外となる。なお、上述したように、削除する際には、PTSの古いピクチャデータから順に削除する。
また、PTSの変更は、ピクチャデータが遅く表示されるように、1ピクチャ分の周期(1/29.97Hz)を加算することで行う。この加算値は、PTSの時間分解能が1/90kHzであるため、3003となる。
なお、上記DTSの変更においても、DTSの値をピクチャデータ間で移動する代わりに、一番古いピクチャデータから削除するピクチャデータの一つ前までのピクチャデータのDTSに、3003を加算することにより実現することもできる。
上記PTSの変更処理を、図13に基づいて説明する。まず、タイムスタンプ変更部22により、ピクチャデータを指し示すポインタ変数pにリストの先頭を示すポインタphの値を代入して初期化を行う(S51)。S51の後は、pが削除しようとするピクチャデータを指すRdと一致するかどうかを判断する(S52)。S52において一致する場合には、ポインタpが指すピクチャデータを削除する(S53)。これにより、ピクチャデータの削除が終了する。
一方、S52において一致しない場合には、pが指すピクチャデータにDTSが含まれているか否かがタイムスタンプ変更部22により判断される(S54)。S54においてDTSが含まれる場合には、このDTSに、次のピクチャデータに含まれるDTSを代入する(S55)。もし、次のピクチャデータがDTSを含まないピクチャデータの場合には、PTSで代用する。
なお、同図においては、pが指すDTSをDTS(p)と表現している。また、next(p)という関数により、次のピクチャデータのアドレスを示している。これは、例えば図7(a)においては、pがピクチャデータD2を指す場合、next(p)はD3を指す値となる。
そして、S55の後は、タイムスタンプ変更部22が、次にpが指すピクチャデータのPTSが、削除しようとするピクチャデータのPTSよりも大きいかどうかを判断する(S56)。一方、S54においてDTSが含まれない場合には、S55を経ずにS56に進む。
S56において、次にpが指すピクチャデータのPTSが、削除しようとするピクチャデータのPTSよりも小さい場合には、タイムスタンプ変更部22が、pが指すピクチャデータのPTSを、3003を加算することにより変更する(S57)。そして、S57の後は、pの値を次のピクチャデータのアドレスに変更する(S58)。一方、S56において、次にpが指すピクチャデータのPTSが、削除しようとするピクチャデータのPTSよりも大きい場合には、S57を経ずにS58に進む。なお、同図では、pが指すPTSをPTS(p)と表現している。
S58の後は、再度、S52に戻り、pが削除対象のピクチャデータに到達するまで以上の処理を繰り返す。
この結果、DTSに関しては、図7の太い矢印で示すようにDTSが順に移動する。なお、図7の一番下の段では、比較的新しいピクチャデータが削除されるため、この場合は一度に3個のDTSをシフトして書き換えることになる。
図14は、映像バッファ13の入出力における、ピクチャデータの時間遷移を示した図である。より詳しくは、上記の処理により、符号化されたピクチャデータが映像バッファ13に入力されて蓄積され、かつ、映像バッファ13からピクチャデータが出力されて、該出力されたピクチャデータがテレビ4で復号化および表示されるまでのピクチャデータの時間変化をピクチャデータ毎に示す図である。同図においては、一つの丸が一つのピクチャデータを表し、かつ、I、P、および、Bピクチャデータに対して、それぞれに種類の異なる模様を付している。なお、模様の種類は、図11および図12と同じである。また、同図では、多重化部16での処理時間や、MAC/PHY部17における処理時間はピクチャデータの符号化周期に比べて小さいため、図29と同様に、これらを無視して示している。
また、図29と図14とで示される相違点は、削除するピクチャデータが異なる点である。したがって、削除に関する点を除き、両図は同じ内容を示している。したがって、削除に関する点以外については、説明を省略する。
本実施の形態においては、図14に示すとおり、上述したピクチャデータ削除処理により、映像バッファ13において、D12、D14、D15、D17、D18、D20、および、D21のピクチャデータが削除される。なお、D11のピクチャデータに関しては、PTSが更新されず、結果として失われる。また、同図では、符号化される前(符号化入力)のピクチャデータであって、失われるピクチャデータに×印を付している
つまり、テレビ4との通信が遮断され。テレビ4より応答信号が送られてこない期間では、D13、D16、D19、および、D22が削除されずに残されて、表示されることとなる。
また、図14に示すとおり、通信システム1においては、送信装置3の映像バッファ13における遅延時間(Td1)と、テレビ4のバッファにおける遅延時間(Td1)を等しく設定している。
図15は、図14の映像停止期間(つまり、テレビ4側において一定間隔でピクチャデータの表示が行われない期間:t1からt2の間)に映像バッファ13において削除されずに残されたピクチャデータが、通信回復後にテレビ4で表示される場合における、表示時刻とピクチャデータとの関係を示す図である。また、図15においては、横軸は表示時刻を示し、縦軸はピクチャデータに付けられていた変更前のPTSの値を示している。なお、ピクチャデータは、それぞれのPTSに従って対応する基準時刻に表示される。
ところで、通信状態が良好の場合には、削除されるピクチャデータはないため、PTSは変更されない。この場合には、同図に示すように、時刻0からt1までは輪郭を太線で表した丸、t1からt3までは輪郭を細線で表した丸(ただし、ピクチャデータD13およびD22を含む)、および、t3以降は輪郭を太線で表した丸で示すように、ピクチャデータが直線状に並ぶ。しかしながら、通信が遮断されると、輪郭を太線で表した丸のピクチャデータのみがテレビ4で表示されることとなる。
つまり、t1からt2までは、ピクチャデータD13の表示のみが行われ、t2からt3の間で、D16、D19、および、D22のピクチャデータが表示されることとなる。例えばピクチャデータD16は、本来、ピクチャデータD20が表示される時刻に、ピクチャデータD20の代わりに表示される。また、ピクチャデータD19は、本来、ピクチャデータD21が表示される時刻に、ピクチャデータD21の代わりに表示される。
これは、映像バッファ13でタイムスタンプの変更を繰り返した結果、最終的にピクチャD16およびD19に付けられたPTSの値が、それぞれ、もともとピクチャD20およびD21に付けられていたPTSの値になったことを意味している。
この結果、図15の点線による折れ線のようにピクチャが表示される。つまり、映像停止期間の後は、映像バッファ内に残ったピクチャデータは間引かれているため早送りのように表示される。その後は、図14に示すように、映像バッファ13内のピクチャデータが前述のVtとVsの違いにより次第に減ることによって、映像バッファ13内で削除が行なわれなくなるとタイムスタンプの変更もなくなる。
そして、本来のタイムスタンプを持ったピクチャデータが映像バッファ13から出力され、該タイムスタンプで示される表示時刻(通常表示時刻)に表示されるようになる。なお、図15ではピクチャデータD22の表示時刻が上記通常表示時刻に相当し、この時点で通信遮断中のピクチャデータの表示が完了して、本来の表示時刻に追い付くことになる。ここで、本来の表示時刻に追い付く理由は、上述したピクチャデータの削除およびタイムスタンプの変更を行うと共に、上述したように、映像バッファ13における遅延時間(Td1)と、テレビ4におけるバッファの遅延時間(Td1)とを同じに設定しているためである。
なお、図15におけるD13のPピクチャデータは、図14において通信遮断の直前にテレビ4に送られ、かつ、復号化される。このため、該Pピクチャデータは、正しく表示される。しかしながら、図15のD13の直前の2つのBピクチャデータ(D11およびD12)は、通信が遮断された後に、テレビ4に送られるデータであるため最終的に再生されない。
以上のように、本実施形態においては、MPEG2符号化方式の3種類のピクチャデータの特性を利用することにより、図29と比較して、失われるピクチャデータが分散する。したがって、連続したピクチャデータの消失を避けることができ、通信回復後に通信遮断時の映像を断続的ではあるが万遍なく見ることができる。しかも、映像バッファ13で削除されずに残った全てのピクチャデータには、復号化のために必要な他のピクチャデータが存在することになる。
ところで、従来においては、図29の表示出力で示したように、ピクチャデータ100の直前における5ピクチャ分のピクチャデータは、テレビ4での復号化の際に各ピクチャデータが参照するピクチャデータが受信されない。このため、テレビ4では、これら5ピクチャ分のピクチャデータは受信されるものの、これらピクチャデータを復号化することができない。ところが、本実施の形態に係る通信システム1では、映像バッファ13内で削除されずに残った全てのデータには、復号化のために必要な他のピクチャデータが存在することになる。この結果、図29と図14とを比較すると分かるように、本実施の形態によれば、より多くのピクチャデータを表示させることができる。
図16は図15における映像停止期間がさらに長くなった場合における、表示時刻とピクチャデータとの関係を示した図である。つまり、図16は、通信遮断期間(受信応答がない期間)が長くなり、映像停止期間が一層長くなった場合を示した図である。この場合には、映像バッファ13内で削除されるピクチャデータが増加するため、通信回復直後の表示速度は図15の場合よりも速くなる。しかしながら、図15の場合と同様に、通信遮断中の画像の一部を断片的に見ることができる。
なお、音声データに関しては、本実施形態のようにデータを間引くと、音声が断続的になる。このため、かえって音声内容を把握することができない。このため、音声データは従来技術どおり遮断期間中のものが失われることになる。しかしながら、音声データは間引かれることはないため、通信回復後は連続的に再生される。それゆえ、通信回復直後は映像との同期はとれないものの、音声内容を把握することができる。
また、上記の説明においては、受信側の装置としてテレビ4を例に挙げたが、これに限定されるものではない。例えば、パーソナルコンピュータであってもよい。
また、上記においては、送信装置3がチューナ部3aを備えた構成を示したが、これに限定されるものではない。送信装置3がチューナ部3aを備えずに、送信装置3をチューナ部と接続可能な構成としてもよい。さらに、符号化部3cについても、チューナ部3aと同様である。
ところで、分離部11は、上記TSパケットを、チューナ部3aあるいは符号化部3cより取得した。したがって、送信装置3が、チューナ部3aあるいは符号化部3cを備えない構成も含めると、分離部11は、外部から逐次送信されるリアルタイム性を有するデータを取得する構成であると言える。
また、上記においては、外部から逐次送信されるリアルタイム性を有するデータを取得する分離部(取得手段)11と、上記取得したデータをテレビ(受信装置)4に逐次送信すると共に、テレビ4が上記データを受信できなかった場合に、テレビ4が受信できなかった送信済みのデータをテレビ4に再送信するMAC/PHY部(送信手段)17とを備えた構成の送信装置3を挙げて説明したが、これに限定されるものではない。例えば、上記のように外部から取得されるデータだけではなく、データを蓄積可能な蓄積媒体に蓄積されたリアルタイム性を有するデータであってもよい。
つまり、MPEG−2 TSフォーマットのデータは、放送局等より送信されてユーザの近くで受信される以外に、ユーザが保有するパーソナルコンピュータのハードディスク(蓄積媒体)等に記録されるものが存在する。例えば、放送局からのデータをパソコンで受信し、そのままのフォーマットでハードディスクに蓄積するような場合である。このデータにも、再生側の基準時刻を校正するPCRや、再生時刻を指定するPTSなどが全く同様に含まれている。
このように蓄積されたMPEG−2 TSのデータは、データの読み出しが開始された時点から、該データに含まれるPCRに基づいた時間軸に沿って、蓄積媒体から規則的に読み出される(つまり、蓄積媒体から再読み出しなどができない)。このため、上記読み出されるデータは、読み出し対象となる蓄積媒体を起源とするリアルタイム性を有することとなる。このようなパーソナルコンピュータに、図2の送信装置3のような機能を組み込むことも可能である。さらに、別の実現手段として、図2の送信装置3に、このような蓄積媒体の記録・再生装置を追加することもできる。
つまり、外部から送信されるリアルタイム性データのみならず、蓄積媒体より順次読み出されるリアルタイム性を有するデータであってもよい。なお、これは、後述する各実施の形態でも同様である。
以上のように、上記送信装置3は、リアルタイム性を有するデータをテレビ(受信装置)4に逐次送信すると共に、テレビ4が上記データを受信できなかった場合に、テレビ4が受信できなかった送信済みのデータをテレビ4に再送信するMAC/PHY部(送信手段)17とを備えた送信装置であって、テレビ4に対して未送信のデータを蓄積する映像バッファ(蓄積装置)13と、映像バッファ13に蓄積される未送信のデータを圧縮するデータ圧縮部(圧縮手段)21とを備え、MAC/PHY部17は、上記再送信したデータが上記テレビ4において受信可能となった場合に、上記映像バッファ13に蓄積された未送信のデータをテレビ4に送信する構成といえる。
この構成によれば、テレビ4との通信状態が不良となって、MAC/PHY部17が上記送信済みのデータを再送信している場合であっても、再送信を行っているデータに続いて送信すべきデータ、つまり未送信のデータを映像バッファ13に蓄積することができる。
ところで、上記未送信のデータの容量が映像バッファ13の容量を超えると、未送信のデータが映像バッファ13から溢れてしまう。このような場合、新しい未送信のデータが映像バッファ13から溢れてしまうことを防止するために、データの古い順に未送信のデータを映像バッファ13から逐次削除すると、データがリアルタイム性を有するものであるために、上記削除された未送信のデータが示す内容を推し量ることができなくなる。
しかしながら、データ圧縮部21により映像バッファ13に蓄積された未送信のデータを圧縮することで、圧縮対象となる未送信のデータが示す内容が完全に失われることがなくなる。また、通信状態が回復したときに、MAC/PHY部17により、上記映像バッファ13に蓄積された未送信のデータをテレビ4に送信できる。
したがって、テレビ4において、通信遮断中のデータが示す内容を推し量ることが可能となる。
なお、テレビ4に対してテレビ4が未受信のデータの再送は、テレビ4が前記データを受信したか否かを、テレビ4からの応答信号の受信の有無により判断し、前記応答信号を受信しなかった場合に行えばよい。
また、上記送信装置3は、映像バッファ13における未送信のデータの蓄積量を判断するデータ蓄積量判断部(蓄積量判断手段)23を備え、上記蓄積量が閾値A(所定の閾値)を超えた場合、データ圧縮部21は上記未送信のデータを圧縮する構成である。
この構成によれば、データ蓄積量判断部23により、映像バッファ13における未送信のデータの蓄積量が判断できる。また、データ圧縮部21は、蓄積量が所定の閾値Aを超えた場合、映像バッファ13に蓄積された未送信のデータを圧縮する。したがって、未送信のデータが映像バッファ13から溢れてしまう前に、圧縮処理を行うことができる。
このように、上記通信装置3は、映像バッファ13における未送信のデータの蓄積量が閾値Aを超えた場合には、通信回復後、MAC/PHY部17は圧縮された未送信のデータをテレビ4に送る構成である。また、通信装置3は、通信回復時に上記未送信のデータの蓄積量が閾値A以下の場合には、非圧縮のデータをテレビ4に送る構成でもある。
また、上記送信装置3は、上記外部から逐次送信されるリアルタイム性を有するデータは、映像バッファ(蓄積装置)13を介して、テレビ(受信装置)4に送信されるものであって、映像バッファ13からのデータの出力間隔が、映像バッファ13へのデータの入力間隔よりも短い構成である。
この構成によれば、外部から取得したデータは、映像バッファ13に入力される間隔もよりも短い間隔で、受信装置に出力(送信)される。それゆえ、通信遮断が生じた場合には、圧縮された未送信のデータは、映像バッファ13に新たに入力されるデータの入力間隔よりも、短い間隔で出力される。したがって、テレビ4に対し、圧縮したデータを速やかに送信することができる。さらに、通信状態が回復した場合には、所定の時間が経過すると、映像バッファ13に蓄積されるデータ量を略ゼロとすることができる。
〔実施の形態2〕
本発明の他の実施形態について、図17ないし図19に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、上記実施の形態1の図面に示した部材と同一の機能を有する部材については、同一の符号を付し、その説明を省略する。
本実施の形態においては、映像バッファ13内で削除されるピクチャデータの選び方が、上記実施の形態1の選び方と異なっている。つまり、バッファ制御部20内のデータ圧縮部21における、ピクチャデータの圧縮の仕方が上記実施の形態1とは異なっている。以下においては、実施の形態1と異なる点のみを説明する。
本実施の形態では、上記実施の形態1と同様に、映像バッファ13にピクチャデータが入力されて、映像バッファ13に蓄積されたピクチャデータの量が閾値Aを越えると、映像バッファ13内でデータ圧縮部21がピクチャデータの削除を行う。この際、本実施の形態においては、一つのGOP内で任意のPピクチャデータより後のデータを全て削除する。例えば、図17において、IピクチャデータD36から始まり、そのGOP内の任意のPピクチャデータで終わる連続したピクチャデータの単位(ピクチャ単位)が残るように、GOP内の他のピクチャデータを削除する。
このようにピクチャデータを削除することにより、映像バッファ13内に蓄積されるピクチャデータが、復号化の際に他のピクチャデータを参照する必要のあるピクチャデータ(PやBピクチャデータ(参照ピクチャデータ))であっても、映像バッファ13内には復号化のために必要なピクチャデータ(Iピクチャデータ(基本ピクチャデータ))が存在することになる。
また、図17は、映像停止期間に映像バッファ13において削除されずに残されたピクチャデータが、通信回復後にテレビ4で表示される場合における、表示時刻とピクチャデータとの関係を示す図である。また、同図においては、横軸は表示時刻を示し、縦軸はピクチャデータに付けられていた変更前のPTSの値を示している。なお、ピクチャデータは、それぞれのPTSに従って対応する基準時刻に表示される。なお、同図においても、図15と同様に、輪郭を太線で示した丸が、最終的に受信側であるテレビ4で表示(再生)されるデータとなる。
また、図17においては、同図における通信遮断がない場合のピクチャデータの並びを、図15における通信遮断がない場合のピクチャデータの並びと同じとした場合を示している。さらに、図17に示すように、本実施の形態では、映像バッファ13における遅延時間をTd2とし、かつ、該映像バッファ13における遅延時間(Td2)と、テレビ4におけるバッファの遅延時間とを同じに設定している。
以下、図17について、詳しく説明する。
本実施の形態においても、新しいピクチャデータが映像バッファ13に入力されて、ピクチャデータの蓄積量が閾値Aを越えるごとに、ピクチャデータの削除を行う。詳しくは、映像バッファ13内でPTSが一番古いIピクチャデータD36の直前まで、映像バッファ13内におけるPTSの古いピクチャデータより1ピクチャデータずつ削除する。削除が続けば、映像バッファ13内においてPTSが一番古いピクチャデータがIピクチャデータD36となる。同図においては、ピクチャデータD36より表示時刻が古いピクチャデータ(図中左下方向のピクチャデータである、D31、D32、D34、およびD35)が削除される。
なお、ピクチャデータD31に関しては、図15のD11と同様の理由で、結果として削除される。また、図15におけるD13のPピクチャデータ同様、既に受信側であるテレビ4に送られたデータD33は映像停止期間の途中でも再生されることになる。さらに、ピクチャデータを削除する際には、上記実施の形態1と同様に、PTSとDTSとの移動(変更)を行う。
このように最初のまとまったGOP以前のピクチャデータ(D31、D32、D34、およびD35)(端数ピクチャデータ)を削除する理由は、端数ピクチャデータが例えばBピクチャデータである場合、復号化する際に参照先のPピクチャデータやIピクチャデータが存在しない可能性があるためである。
図18は、表示出力が図17となる場合の映像バッファ13の入出力における、ピクチャデータの時間遷移を示した図である。より詳しくは、図18は、実施の形態1の図14に対応する図であると共に、符号化されたピクチャデータが映像バッファ13に入力されて蓄積され、かつ、映像バッファ13からピクチャデータが出力されて、該出力されたピクチャデータがテレビ4で復号化および表示されるまでの、ピクチャデータの時間変化をピクチャデータ毎に示す図である。
図18に示すとおり、映像バッファ13内において一番古いPTSを持つピクチャデータがIピクチャデータとなった状態で、蓄積量が閾値Aを越えた状態が続き、新しいIピクチャデータD45が映像バッファ13に入力された後、次の2ピクチャ分のBピクチャデータが入力された時点で、データ圧縮部21は一度に5ピクチャ分のピクチャデータ(D41〜D45)を削除する。これにより、図17にも示すとおり、D41からD45の5ピクチャデータが連続して再生されないことになる。
また、上記5ピクチャ分のピクチャデータの削除の際には、まとめてPTSとDTSとの移動(変更)を行なう。以下、PTSおよびDTSの移動について説明する。
まず、DTSの移動について説明する。図18にも示すとおり、IピクチャデータD36が映像バッファ13から出力されるまでに、映像バッファ13内でIピクチャデータD36よりも新しいDTSを有する7ピクチャ分のピクチャデータ(D34、D35、およびD40〜D44)が、データ圧縮部21により削除される。このため、IピクチャデータD36に関しては、7ピクチャ分のDTSの移動が行なわれる。つまり、3003×7の値をIピクチャデータD36のDTSに加算する。これにより、IピクチャデータD36は、受信側のテレビ4で7ピクチャ分だけ遅れて復号化される。
同様にD37からD39に関しては、これらのピクチャデータが映像バッファ13から出力されるまでに、新しいDTSを持つ他の5ピクチャ分のピクチャデータ(D40〜D44)が削除される。このため、ピクチャデータ(D37〜D39)の各DTSに3003×5の値を加算する。これにより、ピクチャデータ(D37〜D39)は、受信側のテレビ4で5ピクチャ分だけ遅れて復号化される。
次に、PTSについて説明する。ピクチャデータD36からD39が映像バッファ13から出力されるまでに、映像バッファ13内でこれら4ピクチャデータよりも新しいPTSを持つ他の5ピクチャ分のピクチャデータ(D40〜D44)がデータ圧縮部21により削除される。このため、上記ピクチャデータ(D36〜D39)については、5ピクチャ分のPTSの移動を行う。つまり、3003×7の値をこれら4ピクチャ分のピクチャデータ(D36〜D39)のPTSに加算する。この結果、図17にも示すように、ピクチャD36からD39は、受信側のテレビ4で5ピクチャ分だけ遅れて再生される。
図19は、映像停止期間が図17の映像停止期間よりも長くなった場合であって、かつ、映像停止期間に映像バッファ13において削除されずに残されたピクチャデータが、通信回復後にテレビ4で表示される場合における、表示時刻とピクチャデータとの関係を示す図である。
図19に示すとおり、テレビ4においては、連続した4つのピクチャデータが4つのピクチャデータを1単位として断続的に表示される。このため、断片的ではあるが等速でまとまった単位で表示が行われる。
また、図19に示した最後のピクチャデータDLが、通信遮断がない場合のピクチャデータの並びにおけるピクチャデータに重なる。このため、このピクチャデータのPTSで示された時刻において、通信が遮断されなかった場合の表示時刻に追いつくことになる。
さらに、本実施の形態では、通信遮断中の一部の映像を通信回復後に、断片的にではあるが早送りではなく通常の速度で再生することができる。
なお、GOP内部で削除するピクチャデータと削除しないピクチャデータとを分けずに、GOP単位で削除するGOPと残すGOPとを分けてもよい。この場合は、削除されるGOPが連続しないように、例えば1GOPおきに削除すると、長期間連続したピクチャデータが削除されるのを防ぐことができる。
以上のように、上記送信装置3は、ピクチャデータは、テレビ(受信装置)4における該ピクチャデータの表示時刻を指示する表示時刻情報(PTS)と関連付けられていると共に、上記BおよびPピクチャデータ(参照ピクチャデータ)は、テレビ4での復号化の際に、少なくとも、該参照ピクチャデータよりも表示時刻が古く、かつ、表示時刻が最も近いIピクチャデータ(基本ピクチャデータ)を直接的または間接的に参照するものであって、上記Iピクチャデータを一つ含み、かつ、上記Iピクチャデータから上記表示時刻順に連続する所定の個数のピクチャデータを、一つのセットピクチャデータとした場合、データ圧縮部(圧縮手段)21は、上記セットピクチャデータを構成するピクチャデータ以外のピクチャデータを削除する構成である。なお、Iピクチャデータを間接的に参照するとは、Iピクチャデータを参照して復号化されたピクチャデータ(Pピクチャデータ)を参照することである。
この構成によれば、データ圧縮部21は、上記セットピクチャデータを構成するピクチャデータ以外のピクチャデータを削除する。このため、セットピクチャデータは、削除されない。また、グループピクチャ内で表示時刻が最も古いのは、Iピクチャデータである。それゆえ、グループピクチャ内の全てのピクチャデータの復号化を行える。したがって、テレビ4において、断片的ではあるが連続した映像を見ることができる。なお、セットピクチャデータを、複数組設けた構成としてもよい。
また、セットピクチャのピクチャ数を、GOPを構成するピクチャ数と等しくなるように設定し、映像バッファ13から削除するセットピクチャと、映像バッファに残すセットピクチャとを、例えば交互に選択する構成としてもよい。
ここで、ピクチャデータD29よりも再生順序が一つ分および二つ分早いピクチャデータを、それぞれ、BピクチャデータD28およびIピクチャデータD27とし、ピクチャデータDL(D60)よりも再生順序が一つ分および二つ分遅いピクチャデータを、それぞれ、BピクチャデータD61およびBピクチャデータD62とする(図19参照。なお、ピクチャデータD27、D28、D61、および、D62は図示せず。)。
上記の構成の場合、例えば、ピクチャデータD36〜D44、および、ピクチャデータD54〜D62等のGOPを映像バッファ13に残し、かつ、ピクチャデータD27〜D35およびピクチャデータD45〜D53等のGOPを映像バッファ13から削除することになり、図19における連続した部分が残り、それに引き続く連続した部分が削除されるという状態が繰り返されることになる。
〔実施の形態3〕
本発明の他の実施形態について、図20ないし図23に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、上記実施の形態1の図面に示した部材と同一の機能を有する部材については、同一の符号を付し、その説明を省略する。
本実施の形態においては、映像バッファ13内で削除されるピクチャデータの選び方が、上記実施の形態1の選び方と異なっている。つまり、バッファ制御部20内のデータ圧縮部21における、ピクチャデータの圧縮の仕方が上記実施の形態1とは異なっている。さらに、本実施の形態においては、実施の形態1よりも映像バッファ13の容量(サイズ)をより大きくし、閾値Aを映像バッファの中ほどに設定している。以下においては、実施の形態1と異なる点のみを説明する。
図20は、映像バッファ13に対して行われる制御のフローを示すフローチャートである。以下では、この図に従って処理を説明する。なお、この処理はバッファ制御部20により行われる。
トランスコーダ12からピクチャデータが出力されたか否かが、バッファ制御部20により判断される(S61)。ここで、S61においてピクチャデータの出力がないと判断された場合には、再度、S61に戻る。一方、S61においてピクチャデータの出力あると判断された場合には、バッファ制御部20は、このピクチャデータについて、映像バッファ13に対する入力を受け付ける(S62)。
S62の後は、データ蓄積量判断部23によって、ピクチャデータの蓄積容量が閾値Aを超えたか否かが判断される(S63)。S63において、ピクチャデータの蓄積容量が閾値Aを超えていない場合には、最後に削除したピクチャデータを指していたポインタを記憶する変数Rdを、リストの先頭を指すphに初期化する(S68)。そして、S68の後は、再度、S61に戻る。一方、S63において、ピクチャデータの蓄積容量が閾値Aを超えた場合には、映像バッファ13内において、PTSが最も古いピクチャデータがIピクチャデータか否かが判断される(S64)。
S64において、PTSが最も古いピクチャデータがIピクチャデータである場合には、バッファ制御部20が、Rdの値を参照して、リスト上で前回削除されたピクチャデータからPTSの並び順で3個目のBピクチャデータが映像バッファ13内に存在するか否かを判断する(S65)。S65において上記Bピクチャデータが存在する場合、バッファ制御部20は、上記Bピクチャデータの先頭アドレスをRdに代入して、Rdを更新する(S66)。一方、S65において上記Bピクチャデータが存在しない場合には、再度、S61に戻る。
S66の後は、Rdを引数として上記Bピクチャデータ(PTSの並び順で3個目のBピクチャデータ)を削除すると共に、タイムスタンプを実施形態1と同様に変更する(S67)。そして、S67の後は、再度、S61に戻る。
一方、S64において、PTSが最も古いピクチャデータがIピクチャデータでない場合には、RTSが最も古いピクチャデータの先頭アドレスをRdに代入する(S69)。そして、S69の後は、S67に進み、上記Rdを引数として、上記RTSが最も古いピクチャデータの削除を行う。ここで、削除されるRTSが最も古いピクチャデータは、過去のGOPにおける最後のピクチャデータが映像バッファ13内に残ったものである。このようなピクチャデータの削除を行う理由は、通信遮断が続いてテレビ4のバッファが空になると、テレビ4では復号化時にピクチャデータが不連続になり参照先のピクチャデータがなくなるためである。つまり、そのような参照先を必要とするピクチャデータを優先的に削除しておくためである。なお、S69の処理は、蓄積量が閾値Aを越えている間は、映像バッファ13内において、PTSが一番古いピクチャデータがIピクチャになるまで繰り返される。
図21は、映像バッファ13内のピクチャデータの時間的な遷移状態を示す図である。より詳しくは、同図は、実施の形態1の図14に対応する図であると共に、符号化されたピクチャデータが映像バッファ13に入力されて蓄積され、かつ、映像バッファ13からピクチャデータが出力されて、該出力されたピクチャデータがテレビ4で復号化および表示されるまでの、ピクチャデータの時間変化をピクチャデータ毎に示す図である。
図21の場合、上記実施の形態1よりも映像バッファ13のバッファ容量を大きく設定しているため、映像バッファ13へのピクチャデータの入力時点から受信側のテレビ4でピクチャデータが復号化されるまでの遅延時間がTd1よりも大きな値(Td3)となっている。なお、該映像バッファ13における遅延時間(Td3)と、テレビ4におけるバッファの遅延時間とを同じに設定している。
同図の前半部(時間が古い方)では、通信が遮断されて送信部3bのMAC内部のバッファに再送用のピクチャデータが残ったままとなる。このため、映像バッファ13には徐々にトランスコーダ12から入力されるピクチャデータが蓄積されてゆき、閾値Aを越えた時点でPTSの並び順でBピクチャを3つおきに削除する処理が、データ圧縮部21により開始される。同図においても、映像バッファ13内で削除されるピクチャデータを黒い丸印を付けて示す。ここで、上記削除されるピクチャデータはBピクチャデータであるため、復号化の際には他のピクチャデータから参照されない。したがって、上記ピクチャデータを削除しても、他のピクチャデータの復号化は行える。
同図の後半(時間が新しい方)では、通信が回復し、映像バッファ13に蓄積されていたピクチャデータが映像バッファ13の入力レートよりも速い速度で映像バッファ13から出力される。このため、映像バッファ13のピクチャデータの蓄積量は減少し始める。さらに、通信回復直後においても、ピクチャデータの蓄積量が閾値Aを超えている期間では、引き続いて上記3つおきのピクチャデータの削除が行われる。
同図においては、最終的に受信側のテレビ4で復号化されずに失われるピクチャデータを、図の一番上のピクチャデータに対応させて×印で示している。これから明らかなように、本実施の形態においては、従来のように連続してピクチャデータが削除されることなく、Bピクチャが3つおきに削除される。
図22は、図21の映像停止期間に映像バッファ13において削除されずに残されたピクチャデータが、通信回復後にテレビ4で表示される場合における、表示時刻とピクチャデータとの関係を示す図である。また、図22においては、横軸は表示時刻を示し、縦軸はピクチャデータに付けられていた変更前のPTSの値を示している。なお、ピクチャデータは、それぞれのPTSに従って対応する基準時刻に表示される。
なお、同図においても、図15と同様に、輪郭を太線で示した丸が、最終的に受信側であるテレビ4で表示(再生)されるデータとなる。また、図22においては、同図における通信遮断がない場合のピクチャデータの並びを、図15における通信遮断がない場合のピクチャデータの並びと同じとした場合を示している。
上述したピクチャデータの削除を実施することにより、図22に示すように、映像停止期間が過ぎても、ゆっくりと本来の表示に追いつくように表示が行われる。このため、利用者に対して、通常の再生速度に近い速度で映像を提示できる。それゆえ、ピクチャデータを間引くことにより生じる、ユーザが抱く違和感を低減させることができる。
図23は、映像停止期間が図22の映像停止期間よりも長くなった場合であって、かつ、映像停止期間に映像バッファ13において削除されずに残されたピクチャデータが、通信回復後にテレビ4で表示される場合における、表示時刻とピクチャデータとの関係を示す図である。
ここで、図23における表示速度と、図22における表示速度とを比較すると、両者の表示速度が同じである。このように、本実施の形態では、映像停止期間によらず、表示速度は一定であり、かつ、ピクチャデータの間引き率が小さい。このため、通常の表示に近い状態で、通信遮断中の映像を通信回復後に見ることができる。
以上のように、上述した実施の形態1では、通信遮断期間が長くなるほど通信回復直後の表示速度が速くなるのに対して、本実施の形態では、通信遮断期間が長くなっても通信回復直後の表示速度を通常速度より僅かに早くしながら、かつ、一定速度に保ったままで本来の再生に追い付くことができる。
ところで、本実施の形態では、Bピクチャデータを3つおきに削除するように設定した例を挙げて説明したがこれに限定されるものではない。バッファ制御部20において、Bピクチャデータを何個おきに削除するかを設定(変更)可能する構成としておけばよい。例えば、この個数を大きくすれば通信回復直後の再生速度が通常の表示速度に近づく一方、該個数を小さくすれば早送りのように表示させることができる。このため、利用形態に応じて最適な値に設定することができる。
さらに、Bピクチャデータだけでなく、IピクチャデータおよびPピクチャデータも含めて、Bピクチャデータから3つ目のピクチャデータを判断し、該3つ目のピクチャデータがIピクチャデータまたはPピクチャデータであれば、そのピクチャデータの次に現れるBピクチャを削除する構成としてもよい。
以上のように、上記送信装置3は、ピクチャデータは、テレビ(受信装置)4における該ピクチャデータの表示時刻を指示する表示時刻情報(PTS)と関連付けられていると共に、データ圧縮部(圧縮手段)21は、Bピクチャデータ(参照度合の高いピクチャデータ)に関して、前記表示時刻順に一定数おきに、前記Bピクチャデータを削除する構成である。
この構成によれば、データ圧縮部21は、Bピクチャデータに関して、前記表示時刻順に一定数おきに、前記Bピクチャデータを削除する。それゆえ、バランスよく、Bピクチャデータを削除することができる。したがって、テレビ4において、視認性に優れた映像の早送り表示を行わせることが可能となる。
〔実施の形態4〕
本発明の他の実施形態について、図24に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、上記実施の形態1の図面に示した部材と同一の機能を有する部材については、同一の符号を付し、その説明を省略する。
本実施の形態においては、映像バッファ13内で削除されるピクチャデータの選び方が、上記実施の形態3の選び方と異なっている。つまり、バッファ制御部20内のデータ圧縮部21における、ピクチャデータの圧縮の仕方が上記実施の形態3とは異なっている。さらに、本実施の形態においては、実施の形態3で設定した閾値Aに加えて、映像バッファ13からピクチャデータが溢れることを防止するため閾値B(第2の閾値)を映像バッファ13の蓄積容量の上限近くに設定している。以下においては、実施の形態1および3と異なる点のみを説明する。
図24は、映像バッファ13に対して行われる制御のフローを示すフローチャートである。以下では、この図に従って処理を説明する。なお、この処理はバッファ制御部20により行われる。
同図のステップ(S71〜S73、S75〜S79、S82)は、それぞれ、図20のステップ(S61〜S69)と同一である。つまり、図23では、S74、S80、およびS81のステップが設けられている点において、図20と異なる。したがって、以下では、上記異なるステップについて説明し、ステップ(S71〜S73、S75〜S79、S82)については説明を省略する。
S73においてピクチャデータの蓄積容量が閾値Aを超えた場合には、データ蓄積量判断部23によって、ピクチャデータの蓄積容量が閾値Bを超えたか否かが判断される(S74)。S74においてピクチャデータの蓄積容量が閾値Bを超えていない場合には、S75に進む。一方、S74においてピクチャデータの蓄積容量が閾値Bを超えた場合には、映像バッファ13におけるピクチャデータの削除が、上記実施の形態1で示した手法で1ピクチャデータ毎に行われる(S80)。
そして、S80の後は、データ蓄積量判断部23によって、ピクチャデータの蓄積容量が、未だ閾値Bを超えているか否かが判断される(S81)。S81において、ピクチャデータの蓄積容量が、未だ閾値Bを超えている場合には、再度、S80に戻り、ピクチャデータの削除が続けられる。一方、ピクチャデータの蓄積容量が閾値B以下となった場合には、S71に戻る。
以上の処理を行うことにより、本実施の形態では、閾値Bを超えない間は上記実施の形態3と同様の効果を得ることができ、さらに、通信遮断期間が長引いて映像バッファ13からピクチャデータが溢れそうになった場合には、上記実施の形態1と同様の効果を得ることができる。
以上のように、上記送信装置3は、上記PおよびBピクチャデータ(参照ピクチャデータ)は、Iピクチャデータ(基本ピクチャデータ)に対する参照度合を有し、上記閾値A(第1の閾値)よりも大きな閾値を閾値B(第2の閾値)とすると、上記データ蓄積量判断部(蓄積量判断手段)23が、未送信のデータの蓄積量が上記閾値A以上かつ閾値B未満であると判断した場合には、データ圧縮部(圧縮手段)21は、Bピクチャデータ(参照度合の高い参照ピクチャデータ)に関して、上記表示時刻順に一定数おきに、上記Bピクチャデータを削除すると共に、データ蓄積量判断部23が、未送信のデータの蓄積量が上記閾値B以上であると判断した場合には、データ圧縮部21は、上記Bピクチャデータを先に削除する構成である。
この構成によれば、未送信のデータの蓄積量が上記閾値A以上かつ上記閾値B未満である場合には、バランスよくBピクチャデータを削除できる。それゆえ、テレビ4において、視認性に優れた映像の早送り表示を行わせることが可能となる。
ところで、上記のように、Bピクチャデータに関して、上記表示時刻順に一定数おきに、上記Bピクチャデータを削除すると、映像バッファ13においてピクチャデータが溢れてしまう可能性もある。したがって、未送信のデータの蓄積量が上記閾値B以上となる場合には、単に、上記Bピクチャデータを先に削除することにより、映像バッファ13においてピクチャデータが溢れてしまうことを防止できる。
また、映像バッファ13のピクチャデータの蓄積量が閾値B以上となった場合、上記実施の形態2において示した方法で、ピクチャデータの削除を行ってもよい。この場合も、実施の形態2で述べた効果に加えて、映像バッファ13においてピクチャデータが溢れてしまうことを防止できるという効果が得られる。
〔実施の形態5〕
本発明の他の実施形態について、図25および図26に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、上記実施の形態1の図面に示した部材と同一の機能を有する部材については、同一の符号を付し、その説明を省略する。
図25は、通信システム1′についての概略構成図である。通信システム1′は、同図に示すとおり、アンテナ2′、送信装置3′、テレビ4、および、外部映像機器5を備えている。また、送信装置3′は、チューナ部3aおよび送信部3b′を備えている。つまり、送信装置3′は、上述した送信装置3が備える符号化部3cを有しない構成である。
アンテナ2′は、テレビ放送局から送信される、アナログデータを受信する。送信装置3′のチューナ部3aは、アンテナ2′を介して受信したアナログデータを送信部3b′に送る。つまり、送信部3b′にはアナログデータが入力される。また、送信部3b′には、外部映像機器5からアナログデータが入力される。このように、本実施の形態では、送信部3b′にTSパケットが入力される構成ではなく、送信部3b′にアナログデータが入力される構成である。この点において、上記実施の形態1から4と本実施の形態とは異なっている。
図26は、送信部3b′についての機能ブロック図である。送信部3b′は、同図に示すとおり、映像バッファ13、音声バッファ14、多重化部16、MAC/PHY部17、帯域幅推定部18、レート制御部19、バッファ制御部20、A/D変換部51、A/D変換部52、局部基準時刻生成部53、および、エンコーダ54を備えている。なお、本実施の形態では、レート制御部19からの出力は、エンコーダに送られる。
A/D変換部51は、アナログデータのうち映像に関するデータ(映像データ)をデジタルデータ化し、該デジタルデータをエンコーダ54に送る。A/D変換部52は、アナログデータのうち音声に関するデータ(音声データ)をデジタル化し、該デジタルデータをエンコーダ54に送る。
局部基準時刻生成部53は、局部的に基準時刻STCを生成し、該生成した時刻をエンコーダ54および多重化部16に送る。より詳しくは、局部基準時刻生成部53は、発振器とタイマとを有しており、発振器が発する信号の周期に基づいて上記基準時刻STCを生成する。なお、多重化部16では、上記基準時刻STCを定期的にサンプリングし、該サンプリングした値を、受信側に対する送信用PCRとしてTSパケットに挿入する。
エンコーダ54は、各A/D変換部(31・32)から送られてきた、映像データおよび音声データを同時にMPEG2形式に符号化(MPEG2符号化)すると共に、レート制御部19からの制御により、映像データに関する符号化データのビットレートを、図1におけるトランスコーダ12と同様にダイナミックに変更する。さらに、エンコーダ54は、映像データおよび音声データを、それぞれPESパケット化すると共に、局部基準時刻生成部53からの出力である基準時刻STCを参照し、PTSとDTSをPESパケットのヘッダ情報に挿入する。そして、エンコーダ54は、上記PTSとDTSをヘッダ情報に挿入した、映像データに基づいたPESパケットを、映像バッファ13に送る。さらに、エンコーダ54は、上記PTSとDTSをヘッダ情報に挿入した、音声データに基づいたPESパケットを、音声バッファ14に送る。
ところで、上述した他の実施の形態1〜4の構成を示す図1においては、レート制御部19からの制御により、トランスコーダ12が、予めMPEG2符号化されている映像データに関する符号データのビットレートを変更すると共に、トランスコーダが、映像バッファ13に対して入力と同じMPEG2符号化データの形式で出力した。一方、本実施の形態ではエンコーダ54が、最初にMPEG2符号化を行なう時点において、レート制御部19からの制御により出力するデータのビットレートを変更する構成である。なお、エンコーダ54から出力後の映像データおよび音声データに関する符号化データに対する処理は、叙述した他の実施の形態と同じである。ここで、映像バッファ13内のピクチャデータの削除処理に関しては、上記実施の形態1〜4のそれぞれで説明した処理手法を用いることにより、上記実施の形態1〜4で示した各効果を得ることができる。
また、本実施の形態における送信部3b′は、単体でDVD再生機などの外部映像機器にアナログ接続可能な送信アダプタとして使用することができる。
さらに、送信装置3′の構成を、送信部3bと送信部3b′とを備える構成としてもよい。この場合には、アンテナ2′が符号化データとアナログデータとを受信可能な構成として(例えば、各データ毎にアンテナを設け)、符号化データを受信する場合には、送信部3bで処理を行い、アナログデータを受信する場合には、送信部3b′で処理を行う構成とすればよい。また、この場合、送信部3bと送信部3b′とで同一構成である部材(映像バッファ13、音声バッファ14、多重化部16、MAC/PHY部17、帯域幅推定部18、レート制御部19、および、バッファ制御部20)に関しては、共用する構成としてもよい。このように送信装置3′を構成することにより、部材点数の増加を防ぐことができると共に、コストの低減を図ることが可能となる。
ところで、上記各実施の形態では、符号化されたデータとして、MPEG−2TS(MPEG-2 Transport Stream)パケット(以下、TSパケット)を例に挙げて説明したが、これに限定されるものではない。MPEG1−TS、またはMPEG4−TSのように、ピクチャデータ間で予測を行う符号化方式であれば符号化形式は限定されない。
以上のように、上記送信装置(3・3′)により、放送チューナ(チューナ部)等からのリアルタイムの映像データを扱う場合であっても、家庭内等で送信機側から受信機(テレビ等)側に伝送する際に、受信機に特別な機能を備える必要がない。また、通信環境が悪化して通信が一時的に遮断されても、通信回復後に遮断中の映像の一部を受信機が受信して再生することができる。このため、通信遮断中の内容を推し量ることが可能となる。
また、送信装置(3・3′)は、ある局面(ある時間における状態)によれば、映像を含むデータを伝送する通信システムにおける送信装置であって、受信側からの正常受信確認応答がない場合に送信済みデータの再送を行う手段と、未送信のデータを蓄積する映像バッファと、自装置の特定の状態に起因して、前記映像バッファに蓄積された未送信のデータを所定のアルゴリズムに基づいて圧縮する圧縮機能と、前記圧縮されたデータを送信する手段とを備える構成であると言える。
この構成によれば、通信状況が悪くなると送信側からのデータが受信側に正しく届かないため、受信側は正常受信確認応答(ACKパケット)を送信側に返信しなくなり、再送が繰り返される。さらに、同時に、映像バッファからデータが出て行かないため、映像バッファが新しい映像データで溢れてくることになる。このような送信装置の状態のうち、特定の状態に起因して、映像バッファ内のデータを圧縮することにより、映像データの情報量は低下するものの、映像バッファには通信遮断中の一部の映像データが残る。そして、通信状況が回復したときには、映像バッファ内の一番古いデータから送信を行い、再送用に余分に確保されている帯域(時間)を使って映像バッファ内のデータを通常よりは速い速度で全て送信することにより、受信側では通常通り受信し再生を行えば、本来の再生時間に追い付くことができる。
また、上記特定の状態とは、前記映像バッファの蓄積量が所定の閾値を超えた状態であることが好ましい。
この構成によれば、所定の閾値を例えば映像バッファの上限近くに設定することにより、映像バッファを効率よく使用できると共に、データ圧縮することによりデータ蓄積量を減少させられる。これにより、映像バッファからデータが溢れることを避けることができる。
また、好ましくは、上記所定のアルゴリズムは、映像符号化および映像復号化の際に他のピクチャから参照される基本ピクチャと、基本ピクチャをもとに復元される従属ピクチャとを有するピクチャフレーム構造に基づいて、特定のピクチャデータを削除する。
この構成によれば、例えばMPEG2符号化方式において、基本ピクチャ(Iピクチャ)と従属ピクチャ(PピクチャおよびBピクチャ)とでは、符号化および復号化におけるデータの重要度が異なるため、重要度に適したピクチャデータの削除を行なうことができる。
また、ピクチャデータを削除する際に、映像バッファ内のピクチャデータのタイムスタンプを変更することが好ましい。
この構成によれば、通信遮断中のピクチャデータのタイムスタンプを、通信回復後の再生可能な時刻のタイムスタンプに変更することができる。それゆえ、通信が回復したときに受信側で再生を行なうことができる。
また、映像バッファ内の一番古いタイムスタンプを保持するピクチャデータから、削除するピクチャデータの一つ前のピクチャデータまでのタイムスタンプの値を変更することが好ましい。
この構成によれば、これらのピクチャデータのタイムスタンプだけを変更するだけで、通信が回復したときに受信側で表示させることができる。
また、タイムスタンプは、再生時刻を示すタイムスタンプであることが好ましい。
この構成によれば、送信装置の映像バッファに残ったピクチャデータの表示時刻を示すタイムスタンプの値を等間隔にすることができる。このため、通信遮断状態が回復したあとに、ピクチャデータを等間隔で連続して表示することができる。
また、タイムスタンプは、復号化時刻を示すタイムスタンプであることが好ましい。
上記の構成によれば、送信装置の映像バッファに残ったピクチャデータの復号化時刻を示すタイムスタンプの値を等間隔にすることができる。このため、通信遮断状態が回復したあとに、ピクチャデータを等間隔で連続して復号化することができる。
また、ピクチャデータを削除する際に、映像バッファ内の一番古いピクチャデータから、削除するピクチャデータに至るタイムスタンプの値を、古いピクチャデータの方向へ1ピクチャ分移動して書き換えることが好ましい。
この構成によれば、映像バッファ内で一番古いピクチャデータのタイムスタンプは本来古くなって再生できなくなるが、タイムスタンプを上記のように移動することにより削除されたピクチャデータが持っていた新しい時刻のタイムスタンプを引き継ぐことができる。これにより、通信が回復したときに受信側で表示させることができる。
また、ピクチャデータを削除する際に、映像バッファ内の一番古いピクチャデータから、削除するピクチャデータの一つ前のピクチャデータまでのタイムスタンプの値を、一定値を加算することにより書き換えることが好ましい。
この構成によれば、書き換える必要のあるピクチャデータのタイムスタンプに対して、定数の加算操作だけでタイムスタンプを新しい時刻に変更することができる。このため、結果的に通信が回復したときに受信側で再生を行なうことができる。
また、特定のピクチャデータを削除する方式は、他からの参照を必要としない独立した基本ピクチャに対して、参照度の最も深い従属ピクチャから、参照度の浅い従属ピクチャを経て基本ピクチャに至る順に、ピクチャデータを削除することが好ましい。
この構成によれば、例えばMPEG2符号化方式において、Bピクチャ、Pピクチャ、Iピクチャの順に削除することにより、他への参照がないピクチャデータから削除することができ、参照先のないピクチャデータつまり復号化できないピクチャデータが映像バッファに残らないようにすることができる。
また、削除するピクチャデータは、削除する時点で前記映像バッファ内に存在する参照度の最も深い従属ピクチャのうち、再生時刻を表すタイプスタンプの値が最も古いピクチャデータであることが好ましい。
この構成によれば、前述のタイムスタンプを移動する回数を最も減らすことができる。すなわち、タイムスタンプを移動する対象となる、映像バッファ内の一番古いピクチャデータから、削除するピクチャデータまでの数が最も少なくなる。
また、特定のピクチャデータを削除する方式は、他からの参照を必要としない独立した基本ピクチャから始まる連続したピクチャデータを残し、それに続く連続したピクチャデータを削除することが好ましい。
この構成によれば、断片的ではあるものの、映像の動きを連続してまとまった単位で通信回復後に受信側のテレビにおいて表示させることができる。
また、特定のピクチャデータを削除する方式は、他からの参照を必要としない独立した基本ピクチャに対して、参照度の最も深い従属ピクチャデータの再生時刻を示すタイムスタンプの値の順に計数したもののうち、一定数毎のピクチャデータを削除することが好ましい。
この構成によれば、例えばMPEG2符号化方式において、Bピクチャのみを削除対象とし、映像バッファ内の古いBピクチャから計数して一定数毎に削除することになる。この結果、通信遮断中のピクチャデータの多くの部分が通信回復後に再生され、最終的には本来の符号化データに追い付く。それゆえ、遮断中の映像が欠落した印象をユーザに感じさせないようにすることができる。
また、所定の閾値として第1および第2の閾値を設定し、前記映像バッファの蓄積量が前記第1の閾値から前記第2の閾値の間に存在する間は、他から参照されない基本ピクチャに対して、参照度の最も深い従属ピクチャデータが前記映像バッファに入力される毎に計数したもののうち、一定数毎のピクチャデータを削除し、前記映像バッファの蓄積量が前記第2の閾値を越えた場合には、他から参照されない基本ピクチャに対して、参照度の最も深い従属ピクチャから参照度の浅い従属ピクチャを経て基本ピクチャに至る順に、ピクチャデータを削除するか、または、他からの参照を必要としない独立した基本ピクチャから始まる連続したピクチャデータを残し、それに続く連続したピクチャデータを削除することが好ましい。
この構成によれば、映像バッファ容量の許す限りは、遮断中の映像が欠落した印象をユーザに感じさせないように受信側で再生することができ、映像バッファが溢れかけたら優先度の低いデータまたは連続したデータを削除することで、映像バッファを効率的に使用することができる。
また、映像バッファ内のデータはリスト構造により管理されることが好ましい。
この構成によれば、映像バッファ内の1枚のピクチャデータを削除するときに、削除したデータ以降のデータを移動して空きエリアを詰める必要がなく、削除に伴う処理を簡略化かつ高速化することができる。
また、映像バッファに入力するデータは、通信帯域幅に適応してビットレート変換を行う、エンコーダまたはトランスコーダからの出力であることが好ましい。
この構成によれば、通信帯域幅が減少した場合、トランスコーダによる映像データ圧縮の効果と、映像バッファ内でのピクチャデータ削除の効果とにより、通信ビットレートを削減することができる。また、トランスコーダによる通信帯域への適応には限度があり、完全に通信が遮断されたときであっても、その間の映像データの一部を受信側で再生することができる。
また、以下に、背景技術で挙げた特許文献1の構成と、上記通信システム(1・1′)との対比について記載する。
特許文献1では、MPEG2等の効率のよい映像符号化方式で符号化されたデータに対して、効率のよいピクチャデータの間引き方等の示唆もない。さらに、特許文献1では、受信側において電波が遮断されたことを検知する処理や、本来の時刻に追い付いたかどうかを判断する処理が必要となる。加えて、上記処理した内容を送信側に知らせることが必要となる。
特に、デジタル放送では、MPEG−2 TSパケット形式のデータを用いて放送されることが多い。なお、TSパケットは、上述したとおり、放送を含むリアルタイム伝送に適した一般的なフォーマットであり、映像の符号化時においてピクチャデータごとに本来表示されるべき時刻のタイムスタンプ(PTS)を含めてストリームを構成している。
ここで、特許文献1の構成において、TSパケットを用いた通信方式を適用しようとした場合、特許文献1の段落番号〔0046〕に示唆がある「放送時刻を示すデータ」をPTSとして使用し、中継局においてTSパケットを構成することが考えられる。
このPTSは、特許文献1に「放送局Bにより放送が行なわれた時刻」と記載があるため、中継局において、復号化の際にPTS用の基準時間を生成するような最適な基準時刻情報(PCR:Program Clock Reference)を生成して、TSパケットに該PCRを定期的に挿入すれば、本来表示されるべき時刻に正しく表示が行われる。
しかしながら、特許文献1に記載されているように早送りや所定期間の間引きを行うことを目的として特定のピクチャデータを削除したとしても、削除されずに残ったピクチャデータのPTSは本来の表示時刻を示す。それゆえ、その時刻に表示が行われることになり、TSパケットに対応した復号化システムにおいては早送りのようには表示されない。
すなわち、削除したピクチャデータおよび該ピクチャデータを参照するBピクチャなどが表示されるべき時刻にて、ピクチャデータが表示されないか、あるいは、前回に正しく表示されたピクチャデータを繰り返し表示(例えば削除前のピクチャデータを再表示する)することとなる。
このため、表示速度は通常速度と同じ結果となり、本来の放送に追い付くことはできない。このように、特許文献1ではTSパケットを扱うことはできない。
一方、本通信システム(1・1′)では、各実施の形態で示したように、TSパケットを取り扱うことができると共に、本来の放送に追い付くことができる。
ところで、本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
なお、上記実施形態の送信装置(3b・3b′)の各部(17から23)やこれらに関する各処理ステップは、CPUなどの演算手段が、ROM(Read Only Memory)やRAMなどの記憶手段に記憶されたプログラムを実行し、キーボードなどの入力手段、ディスプレイなどの出力手段、あるいは、インターフェース回路などの通信手段を制御することにより実現することができる。したがって、これらの手段を有するコンピュータが、上記プログラムを記録した記録媒体を読み取り、当該プログラムを実行するだけで、本実施形態の送信装置(3b・3b′)の各部(17から23)の各種機能および各種処理を実現することができる。また、上記プログラムをリムーバブルな記録媒体に記録することにより、任意のコンピュータ上で上記の各種機能および各種処理を実現することができる。
この記録媒体としては、マイクロコンピュータで処理を行うために図示しないメモリ、例えばROMのようなものがプログラムメディアであっても良いし、また、図示していないが外部記憶装置としてプログラム読取り装置が設けられ、そこに記録媒体を挿入することにより読取り可能なプログラムメディアであっても良い。
また、何れの場合でも、格納されているプログラムは、マイクロプロセッサがアクセスして実行される構成であることが好ましい。さらに、プログラムを読み出し、読み出されたプログラムは、マイクロコンピュータのプログラム記憶エリアにダウンロードされて、そのプログラムが実行される方式であることが好ましい。なお、このダウンロード用のプログラムは予め本体装置に格納されているものとする。
また、上記プログラムメディアとしては、本体と分離可能に構成される記録媒体であり、磁気テープやカセットテープ等のテープ系、フレキシブルディスクやハードディスク等の磁気ディスクやCD/MO/MD/DVD等のディスクのディスク系、ICカード(メモリカードを含む)等のカード系、あるいはマスクROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、フラッシュROM等による半導体メモリを含めた固定的にプログラムを担持する記録媒体等がある。
また、インターネットを含む通信ネットワークを接続可能なシステム構成であれば、通信ネットワークからプログラムをダウンロードするように流動的にプログラムを担持する記録媒体であることが好ましい。
さらに、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用のプログラムは予め本体装置に格納しておくか、あるいは別な記録媒体からインストールされるものであることが好ましい。