(57)【要約】【課題】VCXOなどの高価な部品を使うことなく、ＰＷＭ制御等を行わずに、しかもデータの欠損なしに映像や音声を再生可能にするバッファ制御装置及び受信装置を提供することである。【解決手段】バッファ制御装置は、ニアリーフロー検出部２６１と、垂直周期制御部２６２と、垂直同期信号生成部２６３とを備えている。ニアリーフロー検出部２６１は、バッファのデータ蓄積量と、予め定めてある閾値との比較を行い、比較結果をニアリーオーバーフロー或いはニアリーアンダーフローとして検出する。垂直周期制御部２６２は、ニアリーフロー検出部２６１の比較結果に応じて、垂直同期周期の長さを調整する。垂直同期信号生成部２６３は、垂直周期制御部２６２の調整結果から新たな垂直同期信号を生成する。【選択図】図１
2009200938.tif 000002
【特許請求の範囲】
【請求項１】
バッファのデータ蓄積量と、予め定めてある閾値との比較を行い、比較結果をニアリーオーバーフロー或いはニアリーアンダーフローとして検出するニアリーフロー検出部と、
前記ニアリーフロー検出部の比較結果に応じて、垂直同期周期の長さを調整する垂直周期制御部と、
前記垂直同期制御部の調整結果から新たな垂直同期信号を生成する垂直同期信号生成部と、
を具備することを特徴とするバッファ制御装置。  
【請求項２】
前記ニアリーフロー検出部は、閾値をバッファ開始ポインタからのデータ量とし、データ蓄積量が閾値以上又は閾値より大きい場合をニアリーオーバーフローとして、データ蓄積量が閾値以下又は閾値より小さい場合をニアリーアンダーフローとして、それぞれ検出することを特徴とする請求項１記載のバッファ制御装置。
【請求項３】
前記垂直周期制御部は、垂直同期周期内のブランキング期間のみを調整することを特徴とする請求項１又は２記載のバッファ制御装置。
【請求項４】
前記垂直同期信号生成部は、前記垂直周期制御部からブランキング期間を通知する信号を受け取り、この信号の変化点を新たな垂直同期信号とすることを特徴とする請求項１乃至３のいずれか１つに記載のバッファ制御装置。
【請求項５】
放送番組が符号化されたデータとしてパケット単位にて伝送され、これを受信する受信装置において、
請求項１乃至４のいずれか１つに記載のバッファ制御装置と、
入力するパケットから所定の識別子又はデータパターンを有するパケットを識別して出力するシステムデコーダと、
前記システムデコーダから出力されたデータのうち、映像データを復号化する映像デコーダと、
前記システムデコーダから出力されたデータのうち、音声データを復号化する音声デコーダと、
前記システムデコーダから出力されたデータのうち、放送番組の受信に必要となる前記各デコーダ及び前記バッファ制御装置の設定を少なくとも行うホストプロセッサと、
を具備することを特徴とする受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、放送番組を再生可能とするためのバッファ制御装置及び受信装置に関するものである。
【背景技術】
【０００２】
デジタル放送受信装置（以下、受信装置）において、その放送ストリーム（Transport Stream、以下TS）に適応されているMPEG2（Moving Picture Expert Group 2）規格にある通り、通常、送信側より伝送されてくるPCR（Program Clock Reference）を基に27MHzを復元し、これを基準に映像、音声データを復号することで、放送番組を再生できる。なお、復元された27MHz、或いは、このクロックで動作するカウンタの値をSTC（System Time Clock）などと呼ぶ。復元された27MHzをカウンタ値と明確に区別するために、STCクロックなどと表現する場合もある。
【０００３】
また、TSは188バイトのパケット（以下、TSパケット）の集合体として構成されており、TSのそれぞれのパケットに識別子PID（Packet Identifier）を持たせ、映像や音声など様々なパケットデータを多重伝送できるようになっている。  
受信装置ではSTCにて動作するSTCカウンタを搭載しており、PCRを受信した時のSTCの値と、そのときのPCRの値との差分から27MHzの周波数を微調整、或いは、制御している。具体的には、差分に対応したデューティ比(信号のハイレベル期間とローレベル期間の比)の矩形波信号(ＰＷＭ制御信号)を生成し、これを平滑化してその平均電圧をＰＷＭ制御電圧として基準クロック発振器を構成するVCXO（電圧制御水晶発振器：Voltage Controlled Xtal Oscillator）に供給し、前述の差分が０となるように基準クロックの周波数を制御する。このような制御をPWM（Pulse Width Modulation）制御などと呼ぶ。
【０００４】
例えば、PCRの値とSTCの値について、PCR＞STCであれば、27MHzの周波数を若干高くし、PCR＜STCであれば、27MHzの周波数を若干低くする。  
PWMにて周波数を高くするべきか、低くするべきかの判定ができたなら、これを制御用電圧に変換してVCXOに供給することで、VCXOの出力が復元（微調整）された27MHzとなる。
【０００５】
PCRは数十msごとに送られてくる離散的なカウンタ値であることから、受信装置ではこのPWM制御を定期的に繰り返すことで、27MHzの微調整を継続的に行っていることになる。これら技術は、特許文献１などにも記載されている。  
しかしながら、従来の受信装置では、送信側からデータストリームと共に送信されてくくるPCR値に基づいて27MHzの基準クロックを再生(復元)するのにVCXOなどの高価な部品を用いたＰＷＭ制御などを行って、送信側の本来のSTCクロックに合わせ込むことが行われていた。
【０００６】
一方、VCXOなどを用いたＰＷＭ制御などを行わずに基準クロック発振器を動作させると(フリーランなどと呼ぶ)、映像又は音声のデコード用に用いられるバッファがバッファオーバーフローしたり、或いはバッファアンダーフローして、データの欠損が生じ、正しい映像や音声を再生できなくなる問題点がある。
【特許文献１】特開２００２−９７４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、本発明は上記の問題に鑑み、VCXOなどの高価な部品を使うことなく、ＰＷＭ制御等を行わずに、しかもデータの欠損なしに映像や音声を再生可能にするバッファ制御装置及び受信装置を提供することを目的とするものである。
【課題を解決するための手段】
【０００８】
本願発明の一態様によれば、バッファのデータ蓄積量と予め定めてある閾値との比較を行い、比較結果をニアリーオーバーフロー或いはニアリーアンダーフローとして検出するニアリーフロー検出部と、前記ニアリーフロー検出部の比較結果に応じて、垂直同期周期の長さを調整する垂直周期制御部と、前記垂直同期制御部の調整結果から新たな垂直同期信号を生成する垂直同期信号生成部と、を具備することを特徴とするバッファ制御装置が提供される。
【発明の効果】
【０００９】
本発明によれば、VCXOなどの高価な部品を使うことなく、ＰＷＭ制御等を行わずに、しかもデータの欠損なしに映像や音声を再生可能にするバッファ制御装置及び受信装置を提供することができる。
【発明を実施するための最良の形態】
【００１０】
発明の実施の形態について図面を参照して説明する。  
図１乃至図５を参照して本発明の実施形態を説明する前に、図６及び図７を用いて本発明の関連技術について説明する。  
前述したように、受信装置ではSTCにて動作するSTCカウンタを搭載しており、PCRを受信した時のSTCの値と、そのPCRの値との差分から27MHzの周波数を微調整、或いは、制御している。
【００１１】
例えば、PCR＞STCであれば、27MHzの周波数を若干高くし、PCR＜STCであれば、27MHzの周波数を若干低くするように、例えばＰＷＭ制御する。  
PWM制御にて周波数を高くするべきか、低くするべきかの判定ができたなら、これを制御用電圧に変換してVCXOに供給することで、VCXOの出力が復元（微調整）された27MHzとなる。  
PCRは数十msごとに送られてくる離散的なカウンタ値であることから、受信装置ではこのPWM制御を定期的に繰り返すことで、27MHzの微調整を継続的に行っていることになる。
【００１２】
それでは、27MHzを微調整しない場合にどのような問題があるかを以下に、説明する。
【００１３】
図６、図７は、受信装置にて、最初に受信したPCRを用いてSTCカウンタを初期化した後は、27MHzの微調整をしない場合（フリーランさせるなどと呼ぶ）の問題点を説明する図であり、図６はフリーランさせている27MHzがPCRをカウントしている27MHzより低い場合を、図７は高い場合を、それぞれ示している。
【００１４】
まず、図６を説明する。  
時間t0にてPCR0を受信し、その後27MHzをフリーラン（PWM制御なし）にてSTCを復元すると、STCがPCRよりも遅くカウントされていることになる。この様子を図６(a)に示す。
【００１５】
図６(a)の「本来STC」のように本来PCRと同じ傾きを持って復元されなければならないところ、PCRよりも遅い27MHzがフリーランしていると、図６(b)の「復元STC」のように傾きが本来より小さくなる。  
受信装置では、STCクロックを基準として、デコード、或いは、表示タイミングとなる同期信号：VSYNCを復元することになる。VSYNCの周期は通常、60Hz、或いは、50Hzであり、27MHzでのカウント数に換算すると、450,000、或いは、540,000となる。この様子を図６(b)に示す。
【００１６】
図６(b)の「本来VSYNC」のように本来復元されなければならないところ、PCRよりも遅い27MHzがフリーランでしていると、「復元VSYNC」のように周期が本来より伸張された状態で復元されてしまう。  
MPEG2の理想的なデコード動作として、あるVSYNC期間にSTD（System Target Decoder）バッファに蓄えられたデータを、それ以降のVSYNCのタイミングで使用（復号、或いは、再生）することで、バッファのオーバーフローやアンダーフロー、言い換えればデータの欠損、を発生させることなく行われなければならない。なお、映像データ向けのSTDバッファを、VBV（Video Buffering Verifier）バッファなどと呼ぶ場合もある。この様子を図６(c)に示す。
【００１７】
図６(c)の「本来データ遷移」(細い実線にて示す)のようにバッファ内のデータが推移しなければならないところ、PCRよりも遅い27MHzがフリーランしていると、図６(c)の「復元データ遷移」(太い実線にて示す)のようにデータがバッファの残容量(以下単に残量という)を越える状態であるバッファオーバーフローを誘発してしまう。つまり、データの欠損が起こり、正しい映像や音声を再生できなくなる。
【００１８】
次に、図７を説明する。  
図６との違いは、STCがPCRよりも速い27MHzでカウントされている例であるということである。PCRよりも速い27MHzがフリーランしていると、図７(a)のように「復元STC」の傾きが、「本来STC」の傾きよりも大きくなる。  
よって、図７(b)のように「復元VSYNC」の周期が「本来VSYNC」より短縮された状態で復元されてしまう。
【００１９】
この結果、図７(c)の「復元データ遷移」(太い実線にて示す)のようにデータがバッファに無い状態(データ蓄積量を越える読み出しが行われた状態)であるバッファアンダーフローを誘発してしまう。つまり、データの欠損が起こり、正しい映像や音声を再生できなくなる。  
そこで、本発明の実施形態では、VCXOなどの高価な部品を使わない、言い換えれば、PWM制御等を行わない場合に、STD（System Target Decoder）バッファのデータ遷移の制御を工夫することでデータの欠損なしに再生が行える、バッファ制御装置及びこれを用いた受信装置を提案するものである。
【００２０】
図１は本発明の一実施形態のバッファ制御装置が適用される受信装置のブロック図を示している。  
図１に示す受信装置２０は、アンテナ２１と、チューナ２２と、復調器２３と、システムデコーダ２４と、ホストプロセッサ２５と、再生同期制御部２６と、ビデオデコーダ２７と、オーディオデコーダ２８と、データバス２９と、メモリ３１と、バック・エンド・プロセッサ(以下、BEPという)３２と、表示部３３と、スピーカ３４とを備えている。  
システムデコーダ２４と、ホストプロセッサ２５と、ビデオデコーダ２７と、オーディオデコーダ２８と、データバス２９にて、MPEGデコーダ３０を構成している。
【００２１】
図１に示すように、無線周波数によるストリームデータがアンテナ２１を介してチューナ２２に入力される。チューナ２２は、入力された無線周波数の信号をベースバンド信号に変換して復調器２３に出力する。復調器２３は、入力されたベースバンド信号を復調処理してTSを復元し、これをシステムデコーダ２４に出力する。復調器２３による復調処理には、例えば、アナログ信号からデジタル信号への変換、受信信号が多重変調されている場合は多重復調、その他誤り訂正処理等の少なくともいずれかが含まれる。なお、２つのチューナ（ダブルチューナなどと呼ばれる）、或いは、それ以上のチューナを搭載する受信装置においては、それらのチューナにも同様にアンテナ２１、或いは、図示を省略する別のアンテナが接続されているものとする。
【００２２】
また、ダブルチューナなどの場合、復調器２３もチューナの数にあわせて必要となるが、１つで２つ以上のベースバンド信号に対応できるマルチ復調器と呼ばれるものも存在する。よって、図１の復調器は論理的に必要な個数として、チューナに１つずつ記載しているものとする。  
システムデコーダ２４は、予めホストプロセッサ２５から設定されているフィルタ条件を満たす、例えば、設定されているPIDを有しているTSパケットを選別し、必要なデータ（情報）をその中から抽出し、予めホストプロセッサ２５から設定されているメモリ３１内のバッファにデータバス２９を経由して出力する（或いは、書き込む）。バッファはメモリ３１内にバッファ領域として設定される。システムデコーダ２４によって映像データと音声データとに選別される。
【００２３】
映像データはメモリ３１内のビデオ向けSTDバッファに、音声データはメモリ３１内のオーディオ向けSTDバッファに、それぞれ出力される。そして、システムデコーダ２４にて選別された映像及び音声データはそれぞれ、メモリ３１に設けられた専用のバッファを介して、ビデオデコーダ２７、オーディオデコーダ２８に供給される。  
ビデオデコーダ２７はメモリ３１から供給された（或いは読み込んだ）ビデオデータを再生同期制御部２６から供給される垂直同期信号(以下、VSYNCという)に合わせてデコードし、その結果得られる映像情報をＢＥＰ３２に出力する。ＢＥＰ３２は、この映像情報に色補正などの各種画像処理を施して表示部３３にて表示させる。なお、表示部３３は、例えば、液晶ディスプレイ（LCD：Liquid Crystal Display）、プラズマディスプレイ（PDP：Plasma Display Panel）、ブラウン管（CRT：Cathode Ray Tube）などの様々なディスプレイ装置のいずれかに対応する。
【００２４】
オーディオデコーダ２８はメモリ３１から供給された（或いは、読み込んだ）オーディオデータをデコードし、その結果得られる音声情報をスピーカ３４に音声出力する。なお、オーディオのデコードタイミングの生成方法については、本発明では限定しない。例えば、ビデオデコーダ２７のように同期信号VSYNCに合わせることも可能であり、ビデオの現在デコードしている、或いは、表示しようとしている映像データの時間情報（PTS：Presentation Time Stamp）を渡し、この時間情報PTSにあわせてデコードさせることも可能であり、本実施形態はいずれの場合にも適応可能であり、その方法を限定しない。
【００２５】
なお、文字データなどの映像補助データが伝送されてくる場合には、システムデコーダ２４は、これをプライベートデータとして選別し、メモリ３１を経由して、ホストプロセッサ２５に供給することも可能である。ホストプロセッサ２５は、これらを文字情報などとしてデコードし、ビデオデコーダ２７を経由して、映像情報に重ね合わせ出力させることもできる。
【００２６】
図２は再生同期制御部２６の内部ブロック図を示している。  
図２に示す再生同期制御部２６は、ニアリーフロー検出部２６１と、垂直同期制御部としてのＶブランキング制御部２６２と、垂直同期信号生成部としてのVSYNC生成部２６３と、電圧制御を要しない自走の単周波数の図示しない水晶発振器（Xtal）とを備えている。ここで使われる水晶発振器は表示のために必要なクロックが生成できる周波数であればよく、STCのための27MHzに限らない。また、必要とするクロックさえあればよいのであって、ここでは水晶発振器としているが、外部からのクロック入力でかまわない。ただし、27MHzでない場合はSTCのための27MHzが別途必要となる。
【００２７】
ニアリーフロー検出部２６１は、バッファのデータ蓄積量と、予め定めてある閾値との比較を行い、比較結果をニアリーオーバーフロー或いはニアリーアンダーフローとして検出する。ニアリーフロー検出部２６１は、閾値をバッファ開始ポインタからのデータ量とし、データ蓄積量が閾値以上又は閾値より大きい場合をニアリーオーバーフローとして、データ蓄積量が閾値以下又は閾値より小さい場合をニアリーアンダーフローとして、それぞれ検出する。
【００２８】
Ｖブランキング制御部２６２は、水晶発振器（Xtal）からのクロックが入力され、ニアリーフロー検出部２６１の比較結果に応じて、垂直同期周期の長さを調整する。垂直周期制御部２６２は、例えば、垂直同期周期内のブランキング期間のみを調整する。  
VSYNC生成部２６３は、垂直同期制御部２６２の調整結果から新たな垂直同期信号を生成する。
【００２９】
ニアリーフロー検出部２６１には、データバス２９、或いは、図示を省略する経路にて、予めホストプロセッサ２５から閾値が与えられており、この閾値とバッファのデータ蓄積量(以下、バッファ蓄積量)、或いは、バッファのデータ残量(以下、バッファ残量)とを定期的に比較し、閾値との上下（大小）関係に応じて、ニアリーオーバーフロー（オーバーフローが発生しかけている）、或いは、ニアリーアンダーフロー（アンダーフローが発生しかけている）状態として検出し、これをＶブランキング制御部２６２に通知する。なお、ニアリーオーバーフローを検出する際に用いる閾値をニアリーオーバーフロー閾値、ニアリーアンダーフローを検出する際に用いる閾値をニアリーアンダーフロー閾値と、それぞれ呼ぶ。
【００３０】
また、閾値と比較するタイミングは、例えば、ニアリーオーバーフローであれば、システムデコーダ２４がバッファにデータを書き込む時、ニアリーアンダーフローであれば、ビデオデコーダ２７、オーディオデコーダ２８がバッファからデータを読み込む時などが考えられるが、本実施形態はこの比較タイミングについては限定しない。  
なお、ニアリーオーバーフロー閾値、及び、ニアリーアンダーフロー閾値は通常は異なる値となるが、ニアリーオーバーフロー閾値、及び、ニアリーアンダーフロー閾値として、１つの同じ閾値を兼用することも可能である。
【００３１】
データ蓄積量と比較する場合、データバス２９、或いは、図示を省略する経路にて、システムデコーダ２４からバッファ内のどこまでデータを書き込んだのかを示すライトポインタWPと、ビデオデコーダ２７からバッファ内のどこまでのデータを読み込んだのかを示すリードポインタRPを受け取ることで行える。バッファは、リングバッファとして用いられる。
【００３２】
ホストプロセッサ２５が設定したバッファ領域のスタートポインタをＳＰ、エンドポインタをＥＰとすると、データ蓄積量は次のように計算できる。ＳＰとＥＰは、メモリ３１上でどこにとるかは任意に設定できるから、ＳＰとＥＰ間に形成されるバッファ領域をメモリ上で例えばアドレス４Ｆ８〜ＡＢＣの領域として設定することが可能である。
【００３３】
図３はリングバッファの動作を示している。ＳＰとＥＰ間において、斜線部分はデータ蓄積量を表しており、白色部分はデータの書き込まれていない空き部分(バッファ残量)を表している。  
図３において、(a)はＳＰとＥＰ間のバッファ領域にＳＰからＷＰまでデータを書き込んだ後、ＳＰからＲＰまでデータを読み出した状態(ＷＰ＞ＲＰの状態)を示している。(b)は(a)の状態からデータをＥＰまで書き込みＳＰに戻ってＳＰからＷＰまでデータを書き込んだ後、ＲＰの位置までデータを読み出した状態(ＷＰ＜ＲＰの状態)を示している。
【００３４】
WP ＞RP なら、データ蓄積量 ＝ WP−RP、
WP ＜RPなら、データ蓄積量 ＝（EP−RP）＋（WP−SP）
閾値をSPからのデータ量とすることで、
データ蓄積量＞ニアリーオーバーフロー閾値 ならニアリーオーバーフロー として、
データ蓄積量＜ニアリーアンダーフロー閾値 ならニアリーアンダーフロー として、
次段のＶブランキング制御部２６２へそれぞれ通知できる。
【００３５】
バッファ残量と比較する場合、上記同様にWP、RPを受け取り、次のように計算できる。
【００３６】
WP ＞RP なら、バッファ残量 ＝（EP−WP）＋（RP−SP）、
WP ＜RPなら、バッファ残量 ＝ RP−WP
閾値をEPからのデータ量とすることで、
バッファ残量＜ニアリーオーバーフロー閾値 ならニアリーオーバーフロー として、
バッファ残量＞ニアリーアンダーフロー閾値 ならニアリーアンダーフロー として、
次段のＶブランキング制御部２６２へそれぞれ通知できる。
【００３７】
なお、SP、EP、WP、RPは、上記のようにそれぞれを更新するブロックから受け取ることも可能であるが、システムデコーダ２４、ビデオデコーダ２７、オーディオデコーダ２８、又は、ホストプロセッサ２５が共通のものを参照できることが望ましい。例えば、メモリ３１、再生同期制御部２６、或いは、図示を省略するブロックにこれら値を保持する機構（メモリやレジスタなどの記憶素子）を持たせることも可能であり、本実施形態はこれを含む。
【００３８】
以下では、説明を簡潔に、理解を容易とする目的で、比較にデータ蓄積量を用いる場合を例として図４及び図５を参照して説明する。  
Ｖブランキング制御部２６２では、映像情報を表示する必要のないVSYNCの前後の期間をＶブランキング期間(時間)として検出し、このＶブランキング期間をニアリーフロー検出部２６１から通知される信号に応じて、短縮、或いは、伸張する。
【００３９】
図４はニアリーオーバーフローにおける調整の様子を示し、図５はニアリーアンダーフローにおける調整の様子を示している。  
まず、図４のオーバーフローを防止するための調整例を説明する。  
ニアリーフロー検出部２６１からニアリーオーバーフローが通知された場合、図４(a)のように、STDバッファのデータ蓄積量がニアリーオーバーフロー閾値を上回った状態を示している。
【００４０】
Ｖブランキング制御部２６２では、このようにニアリーオーバーフローが通知された場合、Ｖブランキング期間の長さを調整（圧縮又は伸張）する。  
例えば、60Hzの映像を例にすると、通常、１周期（１フィールド）の映像は水平262．5ラインから構成されており、このうち240ラインが映像情報表示期間に相当し、22．5ラインがＶブランキング期間に相当する。
【００４１】
調整すべき長さ（ライン数、又は、27MHzでのサイクル数）とその方向（短縮、又は、伸張）は、ニアリーオーバーフローが通知されてからＶブランキングが開始されるまでの時間、通知された回数、過去に通知された回数、通知された時のライン数又は番号、通知された時のデータ蓄積量又はバッファ残量（閾値からの差分量含む）、Ｖブランキング開始時のデータ蓄積量又はバッファ残量（閾値からの差分量含む）、データ蓄積又は消費スピード（データ入力又は出力のレート）の少なくともいずれか１つを用いて決定する。
【００４２】
図４(a)及び 図４(b)において、「本来VSYNC」は一定の垂直周期(１フィールド)ごとの期間を示しており、この本来のVSYNCの一定期間ごとの検出ポイント(図示ｂ1，ｂ2，ｂ3，ｂ4…)で復元データ遷移(太線で示しているバッファのデータ蓄積量)の値を検出している。「本来VSYNC」はPCRに同期した27MHzのクロックから生成されるであろうVSYNCを意味している。
【００４３】
図４(a)で、デコードすべきデータをバッファへ書き込んでいくと、バッファのデータ蓄積量は直線的に徐々に増えていき、検出ポイントb1で検出されたデータ蓄積量に基づいて決まる復元VSYNC(c1)時にバッファからデータが瞬時に読み出され、その結果として瞬間的にバッファ蓄積量が減少した後、再びバッファへのデータ書き込みがなされてバッファ蓄積量は直線的に徐々に増え、検出ポイントb2で検出されたデータ蓄積量に基づいて決まる次の復元VSYNC(c2)時にバッファからデータが瞬時に読み出される、……といった動作が繰り返される。ここで、本来VSYNC(b0，b1，b2，b3…)の各点間の時間は一定であるが、復元VSYNC(c0，c1，c2，c3…)の各点間の時間(A1，A2，A3…)、即ち垂直同期周期の長さは自動的に調整されていて一定ではない。
【００４４】
言い換えれば、図４のオーバーフローを抑止する調整例では、バッファ蓄積量の本来データ遷移の鋸波状の波形(細線で示している本来VSYNCの周期で変化すると仮定した場合の波形)のピークに相当する復元データ値を検出している。図示の最初の復元データ遷移の期間(最初の復元VSYNC(c0〜c1)の期間A1)におけるデータ蓄積量の増加の過程においては、本来VSYNCに基づく最初の検出ポイントb1においてニアリーオーバーフロー閾値を越えていないからそのニアリーオーバーフロー閾値に達するまでは映像情報表示期間(所定ライン数例えば２４０ライン数の期間)経過後に始まるＶブランキング状態を維持する。
【００４５】
ニアリーオーバーフローが1回通知されたことを受け、本来VSYNCに基づく次の検出ポイントb2におけるＶブランキング開始時のバッファ蓄積量とニアリーオーバーフロー閾値との差分量(図４(a)におけるニアリーオーバーフロー閾値のライン上に↑にて示している)に応じて、そのVSYNC期間内のＶブランキング期間を調整する。差分量（＝バッファ蓄積量−ニアリーオーバーフロー閾値）が大きければＶブランキング期間を短縮し、差分量が小さければＶブランキング期間を伸張するように調整する。  
調整されたブランキング期間は、Ｖブランキング制御部２６２から出力されるＶブランキング通知信号(図４(b)参照)のハイレベル期間の長短にて知ることができる。
【００４６】
図４の例ではＶブランキング通知信号を、映像情報表示期間（映像情報を表示する必要のある期間）を“L”、Ｖブランキング期間（或いは、映像情報の表示が不要な期間）を“H”とする信号としている。  
なお、本実施形態はＶブランキング通知信号のフォーマットを上記に限定するものではない。例えば、映像情報表示期間は“H”、Ｖブランキング期間は“L”とする信号とすることも、映像情報表示期間の開始タイミングで“L”“H”トグルする信号とすることも、2ビット以上の信号とすることも、単純にブランキング期間を長くする、短くするという意味の信号とすることも、ブランキング期間の長さを数値で表す信号とすることもそれぞれ可能であり、本実施形態はこれら全て含む。
【００４７】
また、本実施形態では上記の通り、調整期間を映像情報が表示されないＶブランキング期間に限定している。これは、表示部３３に表示される映像情報に与える悪影響（ライン単位での映像ずれ、色ずれなど）を抑制するためである。
【００４８】
さらに、理解を容易とするため、１VSYNC当たり何十ラインにも相当する長さのＶブランキングの調整（短縮又は伸張）がなされるように描いてあるが、基準クロックとしての27MHzの精度はMPEG2規格で±81Hzに規定されている。実際に多少の誤差が含まれるとしてもせいぜい±100Hz程度と予想できる。つまり、27MHzをフリーランさせた場合、本来STCと最大200Hzの差をもって復元STCがカウントされることになるが、１VSYNC（60Hz或いは50Hz）当たり3〜4カウント相当の傾き差にしかならない。よって、実際にはＶブランキングの調整は数VSYNCおきに、多くとも1ライン相当の長さにとどまるものと予想される。
【００４９】
図４(b)の制御の結果、ビデオデコーダ２７、又は、表示部３３は図４(c)に示す「復元STC」を参照して、デコード、又は、表示の開始タイミングを計っていることと等価となる。本実施形態では、開始タイミングはバッファのデータ消費タイミングになっており、このタイミング（データ遷移が垂直方向に変化する時）において「本来STC」とほぼ同じ値を「復元STC」が遷移していることから、「本来STC」を参照しているのと同等な映像再生が行える。
【００５０】
次に、図５のアンダーフローを抑止する調整例を説明する。  
ニアリーフロー検出部２６１からニアリーアンダーフローが通知された場合、図５(a)のように、STDバッファのデータ蓄積量がニアリーアンダーフロー閾値を下回った状態を示している。  
Ｖブランキング制御部２６２では、このようにニアリーアンダーフローが通知された場合にも、Ｖブランキング期間の長さを調整する。
【００５１】
調整すべき長さ（ライン数、又は、27MHzでのサイクル数）とその方向（短縮、又は、伸張）は、Ｖブランキング開始からニアリーアンダーフローが通知されるまでの時間、通知された回数、過去に通知された回数、通知された時のライン数又は番号、通知された時のデータ蓄積量又はバッファ残量（閾値からの差分量含む）、Ｖブランキング終了時のデータ蓄積量又はバッファ残量（閾値からの差分量含む）、データ蓄積又は消費スピード（データ入力又は出力のレート）の少なくともいずれか１つを用いて決定する。
【００５２】
図５(a)及び図５(b)において、「本来VSYNC」は一定垂直周期(フィールド)ごとの期間を示しており、「復元VSYNC」は太線にて示す復元データ遷移のブランキング終了時のタイミング(バッファ読み出しタイミング)に相当している。図５の例では、復元VSYNC(符号d0，d1，d2，d3…)は表示のVSYNCと同じであり、このときのタイミングでバッファ蓄積量の値を検出している。ここでは、本来VSYNC(符号b0，b1，b2，b3…)は参考までに図示している。本来VSYNC(b0，b1，b2，b3…)の各点間の時間は一定であるが、復元VSYNC(d0，d1，d2，d3…)の各点間の時間(B1，B2，B3…)、即ち垂直同期周期の長さは自動的に調整されていて一定ではない。
【００５３】
言い換えれば、図５のアンダーフローを防止するための調整例では、復元VSYNC(d0，d1，d2，d3…)即ちブランキング終了時は表示のタイミングと同等である。図示の最初の復元データ遷移の期間(最初の復元VSYNC(d0〜d1)の期間B1)におけるデータ蓄積量の増加の過程においては、デコードすべきデータをバッファへ書き込んでいくと、バッファのデータ蓄積量は直線的に徐々に増えていき、所定の映像情報表示期間を経過した適宜のタイミング(予め決めておけばよい)でバッファに蓄積されたデータが瞬時に読み出され、その結果としてバッファ蓄積量が瞬間的に減少するがその減少したときにどれだけ減少したか、即ち通常であれば減少するとは言っても最低限保有しておかなければならないデータ量が決められているので、アンダーフロー閾値を下回ることはないはずなのに下回っていれば、その閾値を下回った分(差分量)に応じて次の垂直周期(フィールド)期間におけるＶブランキング期間の長さを調整する。
【００５４】
ニアリーアンダーフローが１回通知されたことを受けて、Ｖブランキング終了時のデータ蓄積量とニアリーアンダーフロー閾値との差分量(図５(a)におけるニアリーアンダーフロー閾値のライン下に↓にて示している)に応じて、次の復元VSYNC期間内のＶブランキング期間を調整する。例えば、読み出し時のタイミングd1で検出された復元データ遷移の値(バッファ蓄積量)のニアリーアンダーフロー閾値との差分量に基づいて次の復元VSYNC期間B2内のＶブランキング期間の長さが決定され、その結果として瞬間的にバッファ蓄積量が減少した後、再びバッファへのデータ書き込みがなされてバッファ蓄積量は直線的に徐々に増え、先に決定されたＶブランキング期間の長さに基づき再び読み出し時のタイミングd2で検出が行われ、検出された復元データ遷移の値(バッファ蓄積量)のニアリーアンダーフロー閾値との差分量に基づいて次の復元VSYNC期間B3内のＶブランキング期間の長さが決定される、……といった動作が繰り返される。差分量（＝ニアリーアンダーフロー閾値−データ蓄積量）が大きければＶブランキング期間を伸張し、差分量が小さければＶブランキング期間を短縮するように調整する。
【００５５】
図４同様、調整されたブランキング期間は、Ｖブランキング制御部２６２から出力されるＶブランキング通知信号(図５(b)参照)のハイレベル期間の長短にて知ることができる。
【００５６】
また、図５(b)の制御の結果、ビデオデコーダ２７、又は、表示部３３は図５(c)に示す「復元STC」を参照して、デコード、又は、表示の開始タイミングを計っていることと等価となる。本実施形態では、開始タイミングはバッファのデータ消費タイミングになっており、このタイミング（データ遷移が垂直方向に変化する時）において「本来STC」とほぼ同じ値を「復元STC」が遷移していることから、「本来STC」を参照しているのと同等な映像再生が図４と同様に行える。
【００５７】
ところで、上記図４及び図５の例ではニアリーオーバーフロー、或いは、ニアリーアンダーフローが通知されたVSYNC期間、或いは、次のVSYNC期間のＶブランキング期間を調整（短縮又は伸張）することを例に説明しているが、本発明はこれに限定されない。例えば、通知されたVSYNC期間の２つ以上先のVSYNC期間に対して調整しても良く、通知されたVSYNC期間のＶブランキングだけではなく、連続的に又は周期的にある回数のVSYNC期間に対して調整しても良く、本実施形態はこれら全て含む。
【００５８】
VSYNC生成部２６３では、Ｖブランキング通知信号の変化点を検出することで、VSYNCを生成する。この様子は、図４(b)、図５(b)に「復元VSYNC」としてＶブランキング通知信号と共に記載してある。本実施形態ではＶブランキング通知信号の変化点としてその立ち下りを検出することでVSYNCが生成できる。
【００５９】
なお、VSYNCとＶブランキング通知信号の変化点との間には固定的な時間差（遅延時間）が存在することも可能であり、本発明はこれを含む。例えば、Ｖブランキング通知信号の立ち下がりから27MHzで100サイクル遅延をもってVSYNCを発生（アクティブ）させても良い。
【００６０】
さらに、VSYNCの極性は“H”アクティブではなく、“L”アクティブとすることも可能であり、また、そのアクティブ時間を27MHzや水平ラインの１周期分とするのではなく、２周期分以上の期間を持たせることも可能であり、本実施形態はこれら全て含む。  
なお、パケットデータに含まれて放送局より送られてくるPCRに基づいて受信側で生成されるSTCは、図１の受信装置では、ビデオデコーダ２７やオーディオデコーダ２８では必要であるが、再生同期制御部２６では必要としない。
【００６１】
本発明の実施形態によれば、バッファのデータ蓄積量と、予め定めてある閾値との比較を行い、その比較結果に応じて、垂直同期周期の長さを調整し、その調整結果から新たな垂直同期信号を生成するようにしたので、バッファにおけるオーバーフローやアンダーフローが起きないように垂直同期周期の長さは自動的に調整される結果、VCXOなどの高価な部品を使うことなく、ＰＷＭ制御等を行わずに、しかもデータの欠損なしに映像や音声を再生することが可能となる。
【００６２】
以上のように、本実施形態によれば、PWM制御なしにSTDバッファのオーバーフロー及びアンダーフローを抑制することで、データの欠損なしに映像再生が行える。
【００６３】
PWM制御が必要なくなることから、VCXOのような高価な部品ではなく、電圧制御を要しない単周波数の安価な水晶発振器（Xtal）により、受信装置を構成できる。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態のバッファ制御装置が適用される受信装置のブロック図。
【図２】図１における再生同期制御部の内部ブロック図。
【図３】リングバッファの動作を示す説明図。
【図４】ニアリーオーバーフローにおける調整例を示す説明図。
【図５】ニアリーアンダーフローにおける調整例を示す説明図。
【図６】本発明の関連技術における、ＰＷＭ制御なしとした場合における問題点(オーバーフロー例)を示す説明図。
【図７】本発明の関連技術における、ＰＷＭ制御なしとした場合における問題点(アンダーフロー例)を示す説明図。
【符号の説明】
【００６５】
２０…受信装置
２４…システムデコーダ
２６…再生同期制御部
２７…ビデオデコーダ
２８…オーディオデコーダ
３１…メモリ(バッファを含む)
【図１】
2009200938.tif 000003
【図２】
2009200938.tif 000004
【図３】
2009200938.tif 000005
【図４】
2009200938.tif 000006
【図５】
2009200938.tif 000007
【図６】
2009200938.tif 000008
【図７】
2009200938.tif 000009