JP2004088758A - デジタルストリーム変換装置および方法 - Google Patents

デジタルストリーム変換装置および方法 Download PDF

Info

Publication number
JP2004088758A
JP2004088758A JP2003189732A JP2003189732A JP2004088758A JP 2004088758 A JP2004088758 A JP 2004088758A JP 2003189732 A JP2003189732 A JP 2003189732A JP 2003189732 A JP2003189732 A JP 2003189732A JP 2004088758 A JP2004088758 A JP 2004088758A
Authority
JP
Japan
Prior art keywords
packet
time stamp
stream
digital stream
deleted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003189732A
Other languages
English (en)
Other versions
JP4167946B2 (ja
Inventor
Koichi Kita
喜多 浩一
Shoichi Goto
後藤 昌一
Mikihiko Yamada
山田 幹彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003189732A priority Critical patent/JP4167946B2/ja
Publication of JP2004088758A publication Critical patent/JP2004088758A/ja
Application granted granted Critical
Publication of JP4167946B2 publication Critical patent/JP4167946B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Time-Division Multiplex Systems (AREA)
  • Communication Control (AREA)
  • Television Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】デジタルストリームを入力時よりも遅い速度で出力する処理を、特別な回路を用いることなく、かつ正確に行う。
【解決手段】ストリーム変換装置10には、入力ストリーム21として、MPEG2トランスポートストリームが入力される。タイムスタンプ付加部11は、このストリームに含まれるパケットに、各パケットの入力時刻をタイムスタンプとして付加する。パケット間引き部12は、このストリームに所定の繰り返しパターンで含まれるNULLパケットを削除する。タイムスタンプ付け替え部13は、NULLパケットが含まれる割合に基づき、パケット間引き部12で削除されなかったパケットに付加されたタイムスタンプを付け替える。タイムスタンプ付け替え後のパケットは、バッファ14に一時的に蓄積され、パケット読み出し部15と出力部16とよって、各パケットに付加されたタイムスタンプの時刻に出力される。
【選択図】    図1

Description

【0001】
【発明の属する技術分野】
本発明は、デジタルストリーム変換装置および方法に関し、より特定的には、パケット形式を有するデジタルストリームを入力時よりも遅い速度で出力するデジタルストリーム変換装置および方法に関する。
【0002】
【従来の技術】
MPEG2(Moving Picture Experts Group 2)規格に準拠したトランスポートストリームなど、各種のデジタルストリームを処理するときに、入力されたデジタルストリームを入力時よりも遅い速度で出力する処理を行う場合がある。以下では、デジタルストリームの速度変換処理と、これに伴いデジタルストリームに含まれるデータの一部を変更する処理とを合わせて、ストリーム変換処理という。また、ストリーム変換処理を行う装置をストリーム変換装置という。
【0003】
ストリーム変換装置については、従来から例えば、特許文献1に記載されたMPEG2トランスポートストリーム伝送レート変換装置が知られている(図13を参照)。この装置には、入力ストリーム91として、所定長のパケットからなるMPEG2トランスポートストリームが入力される。MPEG2トランスポートストリームには、無効なデータのみを含んだパケット(以下、NULLパケットという)や、MPEG2システム規格で規定されたプログラム時刻基準参照値(Program Clock Reference :以下、PCRという)を含んだパケットが含まれる。入力ストリーム91に含まれる各パケットには、パケットの種類を識別するために、パケット識別子が付される。
【0004】
入力ストリーム91は、同期検出部81に入力される。同期検出部81は、入力ストリーム91の同期を検出する。パケット識別部82は、各パケットに付されたパケット識別子に基づき、パケットを識別する。より詳細には、パケット識別部82は、入力ストリーム91に含まれるNULLパケットを削除し、NULLパケット以外のパケット(以下、非NULLパケットという)をバッファ89に書き込む。バッファ89は、非NULLパケットを一時的に蓄積する。
【0005】
PCR抽出部83は、パケット識別部82から非NULLパケットが出力されたときに、バッファ89に対する書き込み制御信号92を生成するとともに、PCRを含む非NULLパケットからPCR93を抽出する。PLL(Phase Locked Loop )回路84は、PCR抽出部83で抽出されたPCR93に基づき27MHzのシステムクロックを生成し、PLL後のPCR94をPCR付け替え部87に出力する。
【0006】
一方、パケット読み出し部85は、外部から供給された出力タイミング信号95に同期して、バッファ89に蓄積されたパケットを読み出す。読み出されたパケットのうち、PCRを含まないパケットは出力部88に、PCRを含むパケットはPCR付け替え部87に供給される。PCR付け替え部87は、バッファ89から読み出されたパケットに含まれるPCRを、PLL回路84から出力されたPLL後のPCR94に付け替え、この処理を施した後のパケットを出力部88に供給する。NULLパケット生成部86は、パケット読み出し部85から出力された制御信号96に応じて、NULLパケットを生成する。
【0007】
出力部88は、バッファ89から読み出されたパケット(PCR付け替え部87を経由するパケットを含む)と、NULLパケット生成部86で生成されたNULLパケットとを、出力ストリーム97として装置の外部に出力する。
【0008】
なお、図13に示す装置がNULLパケット生成部86を備える理由は、出力ストリーム97の連続性を保証するためである。例えば、入力ストリーム91に異常が発生したときには、バッファ89に蓄積されたパケットがなくなり、出力ストリーム97が不連続となる可能性がある。図13に示す装置では、このようにパケットが不足するときでも、必要に応じてNULLパケットが生成され、生成されたNULLパケットが出力ストリーム97として出力される。これにより、出力ストリーム97の連続性が保証される。
【0009】
【特許文献1】
特開平11−205789号公報
【0010】
【発明が解決しようとする課題】
しかしながら、上記のような従来のストリーム変換装置には、以下のような問題点がある。まず、このストリーム変換装置は、PLL回路とPCR付け替え部とを用いてPCRの付け替えを行うので、この処理のためにPLL回路を備える必要がある。また、パケットに含まれるPCRが不連続になったときなど、PCR抽出部におけるPCR抽出タイミングによっては、PLL回路の動作が不安定になることがある。PLL回路の動作が不安定になると、PCRの付け替えに誤りが生じ、出力ストリームが正しく出力されなくなることがある。さらに、入力ストリームに複数系統のPCRが含まれる場合には、PCRの付け替えを正しく行えないことがある。
【0011】
それ故に、本発明は、上記課題を解決するストリーム変換装置および方法を提供することを目的とする。
【0012】
【課題を解決するための手段および発明の効果】
第1の発明は、パケット形式を有するデジタルストリームを入力時よりも遅い速度で出力するデジタルストリーム変換装置であって、入力されたデジタルストリームに含まれるパケットに、各パケットの入力時刻をタイムスタンプとして付加するタイムスタンプ付加部と、デジタルストリームに所定の繰り返しパターンで含まれる削除対象パケットを削除し、残余のパケットを出力するパケット間引き部と、デジタルストリームに含まれる削除対象パケットの割合に基づき、パケット間引き部から出力されたパケットに付加されたタイムスタンプを付け替えるタイムスタンプ付け替え部と、タイムスタンプ付け替え部から出力されたパケットを、各パケットに付加されたタイムスタンプの時刻に出力するパケット出力部とを備える。これにより、PLL回路などの特別な回路を使用することなく、安定的かつ正確に、ストリーム変換処理を行うことができる。例えば、このようなストリーム変換装置を情報機器や映像機器などのメインバスとインターフェイス回路との間に設けることにより、メインバスを有効かつ効率的に利用することができる。
【0013】
この場合、パケット間引き部は、タイムスタンプ付加部から出力されたパケットに含まれる削除対象パケットの位置を求めるまでの処理として、削除対象パケットとは異なる種類のパケットの直後に、削除対象パケットと同じ種類のパケットが入力された場合には、当該パケットを削除し、削除対象パケットと同じ種類のパケットが連続して入力された場合には、当該連続したパケットのうち、奇数番目に位置するパケットを削除し、偶数番目に位置するパケットを出力することとしてもよい。これにより、削除対象パケットの位置を求めるまでの間に、削除対象パケットと同じ種類のパケットが、出力ストリームからすべて削除されることを防止することができる。
【0014】
あるいは、パケット間引き部は、タイムスタンプ付加部から出力されたパケットに含まれる削除対象パケットの位置を求めた後の処理として、求めた位置にあるパケットを削除し、残余のパケットについては、削除対象パケットと同じ種類のパケットであっても、これを出力することとしてもよい。これにより、削除対象パケットの位置を求めた後に、削除対象パケットと同じ種類のパケットが、出力ストリームからすべて削除されることを防止することができる。
【0015】
また、デジタルストリームにα(0<α<1)の割合で削除対象パケットが含まれる場合には、タイムスタンプ付け替え部は、削除対象パケットの直後のパケットについては、タイムスタンプの付け替えを行わず、それ以外のパケットについては、直前のパケットに付加されたタイムスタンプとの差が従前のβ倍(ただし、1<β<1/(1−α))となるように、タイムスタンプの付け替えを行うこととしてもよい。これにより、パケットが出力される時間帯が重なることを防止できるので、タイムスタンプの付け替え処理を施したパケットを、各パケットに付加されたタイムスタンプの時刻に出力した場合に、ストリームを正しく出力することができる。
【0016】
また、タイムスタンプ付加部およびパケット出力部で使用される時刻は、所定の周波数を有するクロック信号を数えたカウント値であってもよい。これにより、タイムスタンプ付加部およびパケット出力部で使用される時刻を簡単に求めることができる。
【0017】
また、デジタルストリームが、MPEG2システム規格に準拠したトランスポートストリームである場合には、パケット間引き部は、トランスポートストリームに所定の繰り返しパターンで含まれるヌルパケットを、削除対象パケットとして扱うこととしてもよい。これにより、MPEG2トランスポートストリームについてストリーム変換処理を行うことができる。
【0018】
より好ましくは、タイムスタンプ付加部およびパケット出力部で使用される時刻は、27MHzの周波数で更新されるカウント値であり、タイムスタンプ付け替え部は、パケット間引き部から出力されたパケットにプログラム時刻基準参照値が含まれる場合には、当該パケットに付加されたタイムスタンプの付け替え前の値と付け替え後の値との差を、当該パケットに含まれるプログラム時刻基準参照値に加算することとしてもよい。これにより、従来のストリーム変換装置で必要とされていた、特別なPCR付け替え回路が不要となる。また、タイムスタンプ付け替え部は、タイムスタンプの付け替えで求めた値を用いてPCRの付け替えを行うことにより、PCRの付け替えを簡単な処理で行うことができる。さらに、PCRはデジタル数値演算に基づき更新されるので、計算の過程で誤差が生じたり、回路が不安定で計算不能となったり、計算結果を間違えたりすることを防止することができる。
【0019】
また、この装置に入力されるデジタルストリームは、符号化率が8分の7、6分の5、4分の3、3分の2、および2分の1のいずれかであるQPSK方式で変調されたアナログ信号を復調して得られたストリームであってもよく、符号化率が2分の1であるBPSK方式で変調されたアナログ信号を復調して得られたストリームであってもよい。これにより、デジタルテレビジョン放送信号に基づくデジタルストリームから無効なデータを削除し、デジタルストリームのデータ量を削減することができる。
【0020】
第2の発明は、パケット形式を有するデジタルストリームを入力時よりも遅い速度で出力するデジタルストリーム変換方法であって、入力されたデジタルストリームに含まれるパケットに、各パケットの入力時刻をタイムスタンプとして付加するステップと、デジタルストリームに所定の繰り返しパターンで含まれる削除対象パケットを削除し、残余のパケットを次段ステップに出力するステップと、デジタルストリームに含まれる削除対象パケットの割合に基づき、削除対象パケットを削除した後のパケットに付加されたタイムスタンプを付け替えるステップと、タイムスタンプの付け替え処理を施したパケットを、各パケットに付加されたタイムスタンプの時刻に出力するステップとを備える。これにより、PLL回路などの特別な回路を使用することなく、安定的かつ正確に、ストリーム変換処理を行うことができる。例えば、このようなストリーム変換装置を情報機器や映像機器などのメインバスとインターフェイス回路との間に設けることにより、メインバスを有効かつ効率的に利用することができる。
【0021】
第3の発明は、コンピュータに第2の発明に係るストリーム変換方法を実行させるためのプログラムである。第4の発明は、コンピュータに第2の発明に係るストリーム変換方法を実行させるためのプログラムを記録した、コンピュータ読み取り可能な記憶媒体である。
【0022】
【発明の実施の形態】
(第1の実施形態)
図1は、本発明の第1の実施形態に係るストリーム変換装置の構成を示すブロック図である。図1に示すストリーム変換装置10は、タイムスタンプ付加部11、パケット間引き部12、タイムスタンプ付け替え部13、バッファ14、パケット読み出し部15、出力部16、および時刻カウント部17を備える。ストリーム変換装置10は、入力ストリーム21を入力時よりも遅い速度で出力するストリーム変換処理を行う。
【0023】
ストリーム変換装置10の詳細な構成を説明するに先立ち、図2を参照して、ストリーム変換装置10の使用形態の一例を説明する。図2は、ストリーム変換装置10を含んだビデオ機器の構成の一部を示すブロック図である。図2において、共通バス31は、ビデオ機器のメインバスである。共通バス31には、ハードディスクドライブ32、SDRAM(Synchronous DRAM)33、およびストリーム変換装置10が接続されている。また、ストリーム変換装置10には、IDE(Integrated Drive Electronics)インターフェイス部34、トランスポートストリームデコーダ35、IEEE1394インターフェイス部36、グラフィックスインターフェイス部37などのインターフェイス回路38が接続されている。このように図2に示すビデオ機器では、ストリーム変換装置10は、共通バス31とインターフェイス回路38とに接続された状態で使用される。
【0024】
インターフェイス回路38は、各種のデジタルストリームを出力する。インターフェイス回路38から出力されるストリームには、例えば、MPEG2トランスポートストリーム、MPEG2ビデオストリーム、MPEG2以外のビデオストリーム、オーディオストリーム、データストリームなどがある。インターフェイス回路38から出力されたストリームは、ストリーム変換装置10と共通バス31とを経由して、ハードディスクドライブ32やSDRAM33などに書き込まれる。
【0025】
インターフェイス回路38から出力されたストリームの中には、パケット形式を有し、かつ、所定長の無効なパケットを含むものがある。例えば、インターフェイス回路38から出力されたストリームが、QPSK(Quadrature Phase Shift Keying )方式やBPSK(Binary Phase Shift Keying )方式で変調されたアナログ信号を復調して得られたMPEG2トランスポートストリームである場合には、このストリームの中には、無効なデータのみを含んだNULLパケットが所定の繰り返しパターンで含まれる。
【0026】
図2に示すビデオ機器では、共通バス31の伝送能力を有効に活用し、共通バス31を用いたアクセスを高速化するために、ストリーム変換装置10は、インターフェイス回路38から出力されたストリームから無効なパケットを削除する。例えば、インターフェイス回路38から出力されたストリームが、上記MPEG2トランスポートストリームである場合には、ストリーム変換装置10は、このストリームからNULLパケットを削除し、残余のパケットを入力時よりも遅い速度で出力する。このようなストリーム変換装置10を用いることにより、共通バス31に出力されるデジタルストリームのデータ量を削減し、共通バス31の伝送帯域を実質的に拡大することができる。
【0027】
なお、共通バス31には、図2に示した要素以外にも、例えば、CPU、DSP、RAM、ROM、その他の機器などが接続されていてもよい。また、ストリーム変換装置10には、図2に示した以外のインターフェイス回路(例えば、ビデオストリーム、オーディオストリーム、データストリームなどを扱う機器)が接続されていてもよい。また、ストリーム変換装置10は、共通バス31に接続された回路あるいは装置からインターフェイス回路38に向かうストリームに対して、ストリーム変換処理を行ってもよい。また、ストリーム変換装置10の使用形態は、図2に示す形態に限定されない。すなわち、ストリーム変換装置10は、ストリーム変換処理に適した任意の形態で使用される。
【0028】
以下、再び図1を参照して、ストリーム変換装置10の詳細を説明する。ストリーム変換装置10には、所定の速度で入力ストリーム21が入力される。入力ストリーム21は、例えば、符号化率(所定の繰り返しパターンで含まれるNULLパケット以外のパケットの割合)が4分の3であるQPSK方式で変調されたアナログ信号を復調して得られたMPEG2トランスポートストリームである。このMPEG2トランスポートストリームでは、mを0以上3以下のいずれかの整数としたときに、先頭から(4n−m)番目(ただし、nは自然数。以下、同じ)のパケットは、必ずNULLパケットとなる。なお、本実施形態では、入力ストリーム21には、所定の繰り返しパターンで含まれるNULLパケット以外に、NULLパケットは含まれていないものとする。
【0029】
ストリーム変換装置10は、入力ストリーム21からNULLパケットを削除し、NULLパケットを削除した後のストリームを出力ストリーム23として出力する。このため、ストリーム変換装置10に含まれる各構成要素は、以下のように動作する。なお、以下では、入力ストリーム21に所定の繰り返しパターンで含まれるNULLパケットの割合を、α(0<α<1)とする。
【0030】
時刻カウント部17は、所定の周波数で更新されるカウント値を出力する。時刻カウント部17は、例えば、27MHzの周波数を有するクロック信号を数えるカウンタを用いて構成される。時刻カウント部17は、タイムスタンプ付加部11とパケット読み出し部15とに対して、上記カウント値を出力する。このカウント値は、タイムスタンプ付加部11ではタイムスタンプの基準時刻として、パケット読み出し部15では出力タイミングの基準時刻として使用される。
【0031】
タイムスタンプ付加部11は、入力ストリーム21に含まれるパケットにタイムスタンプを付加する。より詳細には、タイムスタンプ付加部11は、入力ストリーム21に含まれるパケットに、各パケットがタイムスタンプ付加部11に入力された時点で時刻カウント部17から出力されているカウント値を、タイムスタンプとして付加する。
【0032】
パケットはタイムスタンプ付加部11に逐次的に入力されるので、各パケットには異なる値を有するタイムスタンプが付加される。ここで、連続した2個のパケットに付加されるタイムスタンプの差ΔTSは、次式(1)によって与えられる。
ΔTS=CF×PL/Sin …(1)
ただし、上式(1)において、CFは時刻カウント部17におけるカウント値が更新される周波数を、PLは入力ストリーム21に含まれる各パケットの長さを、Sinは入力ストリーム21の入力速度を表す。
【0033】
パケット間引き部12は、タイムスタンプ付加部11から出力されたパケットから、入力ストリーム21に所定の繰り返しパターンで含まれるNULLパケットを削除し、残余のパケット(本実施形態では、必ず非NULLパケットである)を出力する。パケット間引き部12は、入力ストリーム21からα(0<α<1)の割合でNULLパケットを削除するので、パケット間引き部12からは、入力ストリーム21の(1−α)倍のパケットが出力される。
【0034】
タイムスタンプ付け替え部13は、上記割合αに基づき、パケット間引き部12から出力されたパケットに付加されたタイムスタンプを付け替える。入力ストリーム21に含まれるパケットの一部がパケット間引き部12によって削除されるので、出力ストリーム23を出力するときには、同じ時間内に、入力時よりも少ないパケットを出力すれば済む。そこで、タイムスタンプ付け替え部13は、以下に示すように、連続した2個のパケットに付加されたタイムスタンプの差を広げる処理を行う。
【0035】
タイムスタンプ付け替え部13は、削除されたパケットの直後のパケットについては、タイムスタンプの付け替えを行わず、それ以外のパケットについては、直前のパケットに付加されたタイムスタンプとの差が従前のβ倍(ただし、1<β<1/(1−α))となるように、タイムスタンプの付け替えを行う。すなわち、タイムスタンプ付け替え部13は、NULLパケットの直後のパケットについては、タイムスタンプの付け替えを行わない。これに対して、タイムスタンプ付け替え部13は、非NULLパケットの直後のパケットについては、当該パケットに付加されたタイムスタンプを、次式(2)を用いて算出された値TSnew に付け替える。
TSnew =TSprev+ΔTS×β …(2)
ただし、上式(2)において、TSprevは処理対象のパケットの直前のパケットに付加されたタイムスタンプの付け替え後の値、ΔTSは上式(1)を用いて算出された値を表す。また、入力ストリーム21の入力速度をSin、出力ストリーム23の出力速度の最大値をSout としたとき、βはSinをSout で割った値Sin/Sout を表す。
【0036】
ストリーム変換装置10の内部では、種々の処理がゼロより大きい所定の時間で実行されるので、出力ストリーム23は、入力ストリーム21よりもある時間以上遅れて出力される。そこで、出力ストリーム23の出力時刻を入力ストリーム21の入力時刻よりも遅らせるために、タイムスタンプ付け替え部13は、上述したタイムスタンプ付け替え処理に加えて、パケット間引き部12から出力されたパケットに付加されたタイムスタンプに一律に所定値TDを加算する。所定値TDは、入力ストリーム21が入力されてから出力ストリーム23が出力されるまでの遅延時間の最小値に相当する。
【0037】
バッファ14、パケット読み出し部15、および出力部16は、タイムスタンプ付け替え部13から出力されたパケットを、各パケットに付加されたタイムスタンプの時刻に出力するパケット出力部として機能する。より詳細には、バッファ14は、タイムスタンプ付け替え部13から出力されたパケットを一時的に蓄積する。パケット読み出し部15は、時刻カウント部17からカウント値の供給を受け、このカウント値とバッファ14に蓄積されたパケットに付加されたタイムスタンプとを比較し、両者が一致したときに、当該パケットをバッファ14から読み出す。出力部16は、出力タイミング信号22の供給を受け、パケット読み出し部15によって読み出されたパケットを、出力タイミング信号22に同期して出力する。出力部16から出力されたストリームが、ストリーム変換装置10から出力される出力ストリーム23となる。
【0038】
出力タイミング信号22の周波数は、出力ストリーム23の出力速度の最大値Sout が入力ストリーム21の入力速度Sinよりも遅く、かつ、パケット間引き部12からのストリーム出力速度((1−α)×Sin)よりも速くなるように決定される。すなわち、出力タイミング信号22の周波数は、次式(3)を満たすように決定される。
(1−α)×Sin<Sout <Sin …(3)
なお、Sin/Sout がβであることを考慮すると、上式(3)は、次式(4)のように書き替えることもできる。
1<β <1/(1−α) …(4)
【0039】
以下、図3を参照して、ストリーム変換装置10における処理の具体例を説明する。図3は、ストリーム変換装置10における処理の一例を示す図である。図3には、ストリーム変換装置10が以下の条件で動作した場合の処理が描かれている。その条件とは、まず、入力ストリーム21は、符号化率が4分の3であるQPSK方式で変調されたアナログ信号を復調して得られたMPEG2トランスポートストリームであるとする。また、入力ストリーム21の入力速度は52.17Mビット/秒、出力ストリーム23の出力速度はその4分の3(すなわち、39.1275Mビット/秒)であり、出力タイミング信号22は、出力ストリーム23の出力速度の最大値が40.205Mビット/秒となるようなクロック信号であるとする。また、入力ストリーム21に含まれる各パケットの長さは188バイトであり、時刻カウント部17は、27MHzの周波数でカウント値を更新するとする。また、第1および第5パケットがNULLパケットであり、ストリーム変換装置10は、入力ストリーム21に含まれるNULLパケットの位置を既に認識しているとする。さらに、説明の便宜上、タイムスタンプ付け替え部13では、パケット間引き部12から出力されたパケットに付加されたタイムスタンプに、上記所定値TDとして値ゼロが加算されるとする。
【0040】
この例では、CFは27MHz、PLは188バイト(すなわち、1504ビット)、Sinは52.17Mビット/秒である。したがって、連続した2個のパケットに付加されたタイムスタンプの差ΔTSは、上式(1)を用いて、次のように計算される。
ΔTS=(27×10)×1504/(52.17×10)≒779
よって、タイムスタンプ付加部11は、入力ストリーム21に含まれるパケットに、779ずつ増加するタイムスタンプを付加する。これにより、図2の2段目に示すように、第1から第8パケットには、順に0、779、1558、2337、3116、3895、4674、および5453が、タイムスタンプとして付加される。
【0041】
ストリーム変換装置10は、第1および第5パケットの位置がNULLパケットの位置であることを既に認識している。このため、パケット間引き部12は、図3の3段目に示すように、第1から第8パケットのうち、第1および第5パケットを削除し、残余の6個のパケットを出力する。
【0042】
また、Sout は40.205Mビット/秒であるので、上式(2)に含まれるΔTS×βは、次のように計算される。
Figure 2004088758
【0043】
この例では、第1および第5パケットがNULLパケットであるから、第2および第6パケットは、NULLパケットの直後のパケットとなる。したがって、タイムスタンプ付け替え部13は、第2および第6パケットに対して、タイムスタンプの付け替えを行わない。このため、第2および第6パケットは、タイムスタンプ付加部11によって付加されたタイムスタンプ(779および3895)が付加された状態で、バッファ14に蓄積される。
【0044】
これに対して、第2パケットは非NULLパケットであるから、第3パケットは、NULLパケットの直後のパケットではない。したがって、第3パケットのタイムスタンプは、上式(2)を用いて、直前のパケットに付加されたタイムスタンプ(すなわち、第2パケットに付加されたタイムスタンプ779)に1010を加算した1789に書き換えられる。同様に、第4、第7および第8パケットのタイムスタンプは、それぞれ、2799、4905および5915に書き換えられる(図3の3段目を参照)。タイムスタンプの付け替え処理を施したパケットは、バッファ14に蓄積される。
【0045】
バッファ14に蓄積されたパケットは、当該パケットに付加されたタイムスタンプの時刻に読み出される。バッファ14に蓄積された第2パケットに付加されたタイムスタンプの値は、779である。したがって、図2の4段目および5段目に示すように、時刻カウント部17から出力されたカウント値が779となったときに、パケット読み出し部15は、第2パケットをバッファ14から読み出す。このように第2パケットは、バッファ14に書き込まれると、直ちにパケット読み出し部15によって読み出される。
【0046】
これに対して、バッファ14に蓄積された第3パケットに付加されたタイムスタンプの値は、1558ではなく、1789である。したがって、時刻カウント部17から出力されたカウント値が1789となったときに、パケット読み出し部15は、第3パケットをバッファ14から読み出す。このように第3パケットは、時刻カウント部17から出力されたカウント値が1558から1789に変化するまでの間、バッファ14に蓄積される。
【0047】
出力部16は、出力ストリーム23の出力速度の最大値が40.205Mビット/秒となる出力タイミング信号22の供給を受け、パケット読み出し部15によって読み出されたパケットを出力ストリーム23として出力する。バッファ14に蓄積されたパケットのタイムスタンプは、直前のパケットに付加されたタイムスタンプとの差が従前の1倍より大きく、3分の4倍より小さくなるように付け替えられている。このため、バッファ14に蓄積されたパケットが出力される時間帯が重なることがない。したがって、上記特性を有する出力タイミング信号22に同期して、バッファ14に蓄積されたパケットを順次出力することにより、出力ストリーム23を正しく出力することができる。
【0048】
以上に示すように、本実施形態に係るストリーム変換装置は、1)入力ストリームに含まれるパケットに、各パケットの入力時刻をタイムスタンプとして付加し、2)入力ストリームに所定の繰り返しパターンで含まれるNULLパケットを削除し、3)NULLパケットが含まれる割合に基づき、NULLパケットを削除した後のパケットに付加されたタイムスタンプを付け替え、4)付け替え処理を施したパケットを、各パケットに付加されたタイムスタンプの時刻に出力する。これにより、PLL回路などの特別な回路を使用することなく、安定的かつ正確に、ストリーム変換処理を行うことができる。例えば、このようなストリーム変換装置を情報機器や映像機器などのメインバスとインターフェイス回路との間に設けることにより、メインバスを有効かつ効率的に利用することができる。
【0049】
(第2の実施形態)
第2の実施形態では、第1の実施形態とは符号化率が異なる入力ストリームに対してストリーム変換処理を行う、ストリーム変換装置について説明する。本実施形態では、第1例から第4例までの4種類のストリーム変換装置について説明する。これら4種類のストリーム変換装置は、いずれも、第1の実施形態に係るストリーム変換装置と同じ構成を備え(図1を参照)、第1の実施形態に係るストリーム変換装置と同様の形態で(例えば、図2に示すようにビデオ機器に内蔵した状態で)使用される。なお、これらの点は、後述する他の実施形態についても同様である。
【0050】
第1例のストリーム変換装置には、入力ストリーム21として、符号化率が2分の1であるQPSK方式(あるいはBPSK方式)で変調されたアナログ信号を復調して得られた、MPEG2トランスポートストリームが入力される。第2例のストリーム変換装置には、入力ストリーム21として、符号化率が3分の2であるQPSK方式で変調されたアナログ信号を復調して得られた、MPEG2トランスポートストリームが入力される。第3例および第4例のストリーム変換装置に入力される入力ストリーム21は、第2例のストリーム変換装置に入力される入力ストリームと、その符号化率のみが相違する。すなわち、第3例および第4例のストリーム変換装置に入力される入力ストリーム21の符号化率は、それぞれ、6分の5、および8分の7である。
【0051】
図4から図7は、それぞれ、第1例から第4例のストリーム変換装置における処理を、図3と同じ条件で描いたものである。ただし、出力ストリーム23の出力速度の最大値や出力タイミング信号22の周波数は、各図の間で互いに相違する。第1例から第4例のストリーム変換装置では、第1の実施形態に係るストリーム変換装置と同様に、第1から第8パケットには、順に0、779、1558、2337、3116、3895、4674、および5453が、タイムスタンプとして付加される(図4から図7の2段目を参照)。
【0052】
第1例のストリーム変換装置(図4を参照)では、入力ストリーム21の符号化率は2分の1である。そこで、上式(3)を満たすように、出力ストリーム23の出力速度の最大値Sout を28Mビット/秒とする。また、このストリームでは、mを0または1のいずれかとしたときに、先頭から(2n−m)番目のパケットは、必ずNULLパケットとなる。ここでは、第(2n−1)パケット(第1、第3、第5パケットなど)がNULLパケットであるとする。
【0053】
このストリーム変換装置では、パケット間引き部12は、第(2n−1)パケットのみを削除する。また、タイムスタンプ付け替え部13は、第2nパケットに対して、タイムスタンプの付け替えを行わない。このため、第2nパケットは、タイムスタンプ付加部11によって付加されたタイムスタンプ(779、2337、3895など)が付加された状態で、バッファ14に蓄積される。バッファ14に蓄積されたパケットは、時刻カウント部17から出力されたカウント値が当該パケットに付加されたタイムスタンプと一致したときに、パケット読み出し部15によって読み出される。出力部16は、パケット読み出し部15によって読み出されたパケットを、外部から供給された出力タイミング信号22に同期して出力する。
【0054】
第2例のストリーム変換装置(図5を参照)では、入力ストリーム21の符号化率は3分の2である。そこで、上式(3)を満たすように、出力ストリーム23の出力速度の最大値Sout を36Mビット/秒とする。また、このストリームでは、mを0、1または2のいずれかとしたときに、先頭から(3n−m)番目のパケットは、必ずNULLパケットとなる。ここでは、第(3n−2)パケット(第1、第4、第7パケットなど)がNULLパケットであるとする。
【0055】
このストリーム変換装置では、パケット間引き部12は、第(3n−2)パケットのみを削除する。また、タイムスタンプ付け替え部13は、第(3n−1)パケットに対して、タイムスタンプの付け替えを行わない。このため、第(3n−1)パケットは、タイムスタンプ付加部11によって付加されたタイムスタンプ(779、3116、5453など)が付加された状態で、バッファ14に蓄積される。
【0056】
一方、タイムスタンプ付け替え部13は、第3nパケットに対して、上式(2)を用いて、タイムスタンプの付け替えを行う。この場合、上式(2)に含まれるΔTS×βは、1128である。したがって、第3nパケットに付加されたタイムスタンプは、直前のパケットとのタイムスタンプの差が1128となるように付け替えられる。例を挙げると、第3パケットのタイムスタンプは1558から1907に、第6パケットのタイムスタンプは3895から4222にそれぞれ付け替えられる。このようなタイムスタンプ付け替え処理を施した第3nパケットは、バッファ14に蓄積される。その後の処理は、第1例のストリーム変換装置と同じである。
【0057】
第3例のストリーム変換装置(図6を参照)では、入力ストリーム21の符号化率は6分の5である。そこで、上式(3)を満たすように、出力ストリーム23の出力速度の最大値Sout を45Mビット/秒とする。また、このストリームでは、mを0以上5以下のいずれかの整数としたときに、先頭から(6n−m)番目のパケットは、必ずNULLパケットとなる。ここでは、第(6n−5)パケット(第1、第7、第13パケットなど)がNULLパケットであるとする。
【0058】
このストリーム変換装置では、パケット間引き部12は、第(6n−5)パケットのみを削除する。また、タイムスタンプ付け替え部13は、第(6n−4)パケットに対して、タイムスタンプの付け替えを行わない。このため、第(6n−4)パケットは、タイムスタンプ付加部11によって付加されたタイムスタンプ(779、5453など)が付加された状態で、バッファ14に蓄積される。
【0059】
一方、タイムスタンプ付け替え部13は、第(6n−m’)(ただし、m’は0以上3以下の整数)に対して、上式(2)を用いて、タイムスタンプの付け替えを行う。この場合、上式(2)に含まれるΔTS×βは、903である。したがって、第(6n−m’)(ただし、m’は上記と同じ)に付加されたタイムスタンプは、直前のパケットとのタイムスタンプの差が903となるように付け替えられる。例を挙げると、第3パケットのタイムスタンプは1558から1682に、第4パケットのタイムスタンプは2337から2585にそれぞれ付け替えられる。このようなタイムスタンプ付け替え処理を施した第(6n−m’)(ただし、m’は上記と同じ)パケットは、バッファ14に蓄積される。その後の処理は、第1例のストリーム変換装置と同じである。
【0060】
第4例のストリーム変換装置(図7を参照)では、入力ストリーム21の符号化率は8分の7である。そこで、上式(3)を満たすように、出力ストリーム23の出力速度の最大値Sout を47Mビット/秒とする。また、このストリームでは、mを0以上7以下のいずれかの整数としたときに、先頭から(8n−m)番目のパケットは、必ずNULLパケットとなる。ここでは、第(8n−7)パケット(第1、第9、第17パケットなど)がNULLパケットであるとする。
【0061】
このストリーム変換装置では、パケット間引き部12は、第(8n−7)パケットのみを削除する。また、タイムスタンプ付け替え部13は、第(8n−6)パケットに対して、タイムスタンプの付け替えを行わない。このため、第(8n−6)パケットは、タイムスタンプ付加部11によって付加されたタイムスタンプ(779、6232など)が付加された状態で、バッファ14に蓄積される。
【0062】
一方、タイムスタンプ付け替え部13は、第(8n−m’)(ただし、m’は0以上5以下の整数)に対して、上式(2)を用いて、タイムスタンプの付け替えを行う。この場合、上式(2)に含まれるΔTS×βは、864である。したがって、第(8n−m’)(ただし、m’は上記と同じ)に付加されたタイムスタンプは、直前のパケットとのタイムスタンプの差が864となるように付け替えられる。例を挙げると、第3パケットのタイムスタンプは1558から1643に、第4パケットのタイムスタンプは2337から2507に付け替えられる。このようなタイムスタンプ付け替え処理を施した第(8n−m’)(ただし、m’は上記と同じ)パケットは、バッファ14に蓄積される。その後の処理は、第1例のストリーム変換装置と同じである。
【0063】
以上に示すように、本実施形態に係るストリーム変換装置によれば、第1の実施形態に係るストリーム変換装置と同じ原理で、第1の実施形態とは符号化率が異なる入力ストリームに対してストリーム変換処理を行うことができる。したがって、第1の実施形態に係るストリーム変換装置と同様の効果を奏することができる。
【0064】
なお、入力ストリーム21の入力速度、出力ストリーム23の出力速度、出力タイミング信号22の周波数、時刻カウント部17におけるカウント値が更新される周波数などは、上述した値に限定されない。
【0065】
(第3の実施形態)
第3の実施形態では、所定の繰り返しパターンで含まれるNULLパケット(以下、削除対象のNULLパケットという)以外のNULLパケット(以下、削除対象でないNULLパケットという)を含む入力ストリームに対して、ストリーム変換処理を行うストリーム変換装置について説明する。
【0066】
本実施形態に係るストリーム変換装置には、入力ストリーム21として、第1の実施形態と同様に、符号化率が4分の3であるQPSK方式で変調されたアナログ信号を復調して得られた、MPEG2トランスポートストリームが入力されるとする。このMPEG2トランスポートストリームでは、mを0以上3以下のいずれかの整数としたときに、先頭から(4n−m)番目のパケットは、必ずNULLパケットとなる。先頭から(4n−m)番目にあるNULLパケットは、削除対象のNULLパケットとして扱われる。また、本実施形態では、入力ストリーム21には、これら削除対象のNULLパケット以外に、削除対象でないNULLパケットが含まれているものとする。
【0067】
本実施形態に係るストリーム変換装置は、入力ストリーム21に含まれる削除対象のNULLパケットの位置を認識した状態(以下、同期確立状態という)と、その位置を認識していない状態(以下、同期非確立状態という)とを有し、2つの状態間で状態遷移を行う。具体的には、このストリーム変換装置は、同期確立状態において、削除対象のパケットが入力されるべきときに非NULLパケットが入力された場合には、同期非確立状態に遷移する。これとは逆に、このストリーム変換装置は、同期非確立状態において、連続して入力された非NULLパケットの個数がその最大値(例えば、上記MPEG2トランスポートストリームの場合は3)となったときに、同期確立状態に遷移する。
【0068】
また、本実施形態に係るストリーム変換装置は、同期確立状態では、第1の実施形態に係るストリーム変換装置と同様に動作する。ただし、パケット間引き部12は、同期確立状態において削除対象でないNULLパケットが入力されたときには、当該パケットを削除することなく、タイムスタンプ付け替え部13に出力する。
【0069】
さらに、このストリーム変換装置は、同期非確立状態において非NULLパケットが入力されたときには、当該パケットに対して、同期確立状態において入力された非NULLパケットと同様の処理を行う。また、このストリーム変換装置は、同期非確立状態において非NULLパケットの直後にNULLパケットが入力された場合には、当該パケットを削除し、NULLパケットが連続して入力された場合には、当該連続したNULLパケットのうち、奇数番目に位置するパケットを削除し、偶数番目に位置するパケットを出力する。
【0070】
以下、図8から図10を参照して、本実施形態に係るストリーム変換装置の動作を具体的に説明する。図8から図10は、それぞれ、本実施形態に係るストリーム変換装置における処理を、図3と同じ条件で描いたものである。
【0071】
図8には、同期非確立状態において、2個のNULLパケットが連続して入力された場合の処理が描かれている。この例では、第1および第5パケットが削除対象のNULLパケットであり、第2パケットは削除対象でないNULLパケットである。また、第1および第2パケットは、連続して入力されたNULLパケットである。
【0072】
上述したように、本実施形態に係るストリーム変換装置は、同期非確立状態においてNULLパケットが連続して入力された場合には、当該連続したNULLパケットのうち、奇数番目に位置するパケットを削除し、偶数番目に位置するパケットを出力する。この場合、第1パケットは連続したNULLパケットの奇数番目に位置するので、パケット間引き部12によって削除される。これに対して、同じNULLパケットであっても、第2パケットは連続したNULLパケットの偶数番目に位置するので、パケット間引き部12によって削除されず、パケット間引き部12からタイムスタンプ付け替え部13に出力される。
【0073】
タイムスタンプ付け替え部13は、同期非確立状態においてNULLパケットが入力されたときには、特別なタイムスタンプの付け替えを行う。すなわち、タイムスタンプ付け替え部13は、同期非確立状態において入力されたNULLパケットについては、当該パケットに付加されたタイムスタンプを、次式(5)を用いて算出された値TSnew に付け替える。
TSnew =TScur −ΔTS×(β−1) …(5)
ただし、上式(5)において、TScur は処理対象のパケットに付加されたタイムスタンプの付け替え前の値、ΔTSおよびβは上式(2)で定義したものと同じである。
【0074】
図8に示す例では、第2パケットに付加されたタイムスタンプの付け替え前の値TScur は、779である。したがって、第2パケットに付加されたタイムスタンプは、次のように計算された値548に付け替えられる。
Figure 2004088758
なお、ここでは説明の便宜上、タイムスタンプ付け替え部13では上記所定値TDとして値ゼロが加算されるとしているため、図8では、第2のパケットに付加されたタイムスタンプの値はタイムスタンプ付け替え部13の作用によって減少し、第2のパケットの出力時刻はあたかも第2のパケットの入力時刻より前であるかのように描かれている。しかし、実際には、各パケットに付加されたタイムスタンプの値はタイムスタンプ付け替え部13の作用によって増加するように、所定値TDには十分に大きな値が使用されるので、各パケットの出力時刻は、必ず当該パケットの入力時刻の後になる。
【0075】
第3パケット以降のパケットに対する処理は、以下のとおりである。第3パケットは、非NULLパケットであるため、パケット間引き部12では削除されない。また、第3パケットに対しては、出力タイミングを変更する必要がないので、タイムスタンプ付け替え部13は、第3パケットに対してタイムスタンプの付け替えを行わない。このため、第3パケットは、タイムスタンプ付加部11で付加されたタイムスタンプ(1558)が付加された状態で、バッファ14に蓄積される。
【0076】
第4パケットは、非NULLパケットあるため、パケット間引き部12では削除されない。また、直前の第3パケットが非NULLパケットであるため、タイムスタンプ付け替え部13は、第4パケットに対して、上式(2)を用いたタイムスタンプの付け替えを行う。このため、第4のパケットに付加されたタイムスタンプは、2337から2568に付け替えられる。このようなタイムスタンプの付け替え処理を施した第4パケットが、バッファ14に蓄積される。
【0077】
第5パケットは、非NULLパケットの直後のNULLパケットであるので、パケット間引き部12によって削除される。第6および第7パケットは、非NULLパケットであるため、パケット間引き部12では削除されない。また、タイムスタンプ付け替え部13は、第6パケットに対しては、パケットの付け替えを行わず、第7パケットに対しては、上式(2)を用いたパケットの付け替えを行う。このため、第6パケットのタイムスタンプは、タイムスタンプ付加部11で付加された3895のままであるが、第7パケットのタイムスタンプは、4674から4905に付け替えられる。このようなタイムスタンプの付け替え処理を施した第6および第7パケットが、バッファ14に蓄積される。その後の処理については、図3に示す処理と同じである。
【0078】
なお、図8において、第1および第2パケットに加えて、第3パケットもNULLパケットであったと仮定する。この場合、第3パケットは、連続したNULLパケットの奇数番目(3番目)に位置するので、パケット間引き部12によって削除される。さらに、第4パケットもNULLパケットであったと仮定する。この場合、第4パケットは、連続したNULLパケットの偶数番目(4番目)に位置するので、パケット間引き部12によって削除されない。また、タイムスタンプ付け替え部13は、第4パケットに対して、第2パケットと同様に、上式(5)を用いたタイムスタンプの付け替えを行う。また、第4パケットが非NULLパケットである場合も、第4パケットは、パケット間引き部12によって削除されない。この場合、タイムスタンプ付け替え部13は、第4パケットに対して、図8に示す第3パケットと同様に、タイムスタンプの付け替えを行わない。
【0079】
図9には、同期確立状態において、2個のNULLパケットが連続して入力された場合の処理が描かれている。この例では、第1および第5パケットが削除対象のNULLパケットであり、第2パケットは削除対象でないNULLパケットである。また、第1および第2パケットは、連続して入力されたNULLパケットである。ただし、ストリーム変換装置は、第(4n−3)パケットが削除対象のNULLパケットであることを既に認識しているとする。
【0080】
上述したように、本実施形態に係るストリーム変換装置では、同期確立状態において削除対象でないNULLパケットが入力されたときには、パケット間引き部12は、当該パケットを削除することなく、タイムスタンプ付け替え部13に出力する。図9に示す例では、第2パケットは、同期確立状態において入力された、削除対象でないNULLパケットである。したがって、第2パケットは、パケット間引き部12によって削除されることなく、非NULLパケットと同様に扱われる。また、第2パケットは、削除対象のNULLパケット(第1パケット)の直後のパケットである。したがって、タイムスタンプ付け替え部13は、第2パケットに対して、タイムスタンプの付け替えを行わない。このため、第2パケットは、タイムスタンプ付加部11で付加されたタイムスタンプ(779)が付加された状態で、バッファ14に蓄積される。その後の処理については、図3に示す処理と同じである。
【0081】
図10には、同期確立状態において、2個のNULLパケットが連続して入力された場合の処理が描かれている。この例では、第1および第5パケットが削除対象のNULLパケットであり、第4パケットは削除対象でないNULLパケットである。また、第4および第5パケットは、連続して入力されたNULLパケットである。ただし、ストリーム変換装置は、第(4n−3)パケットが削除対象のNULLパケットであることを既に認識しているとする。
【0082】
第4パケットは、削除対象でないNULLパケットであるので、パケット間引き部12によって削除されることなく、非NULLパケットと同様に扱われる。また、第4パケットは、非NULLパケット(第3パケット)の直後のパケットである。したがって、タイムスタンプ付け替え部13は、第4パケットに対して、上式(2)を用いたタイムスタンプの付け替えを行う。これにより、第4パケットのタイムスタンプは、2337から2799に付け替えられる。このようなタイムスタンプの付け替え処理を施した第4パケットが、バッファ14に蓄積される。その後の処理については、図3に示す処理と同じである。
【0083】
以下、図11に示すフローチャートを参照して、本実施形態に係るストリーム変換装置における処理を別の角度から説明する。図11は、本実施形態に係るストリーム変換装置における処理を示すフローチャートである。図11に示す処理は、入力ストリーム21に含まれる各パケットに対して実行される。図11に示す処理では、4つの値N、I、JおよびTが使用される。このうちNは、入力ストリーム21に含まれる所定の繰り返しパターンの長さ(例えば、符号化率が4分の3であるときは4)を表す。Iは、入力されたパケットが入力ストリーム21に含まれる所定の繰り返しパターンの何番目に位置するかを表す。また、Jは、同期非確立状態においてNULLパケットが連続して入力された個数を表す。また、Tは、直前に出力されたパケットに付加されたタイムスタンプを表す。
【0084】
図11に示す処理は、入力ストリーム21に含まれる1個のパケットがタイムスタンプ付加部11に入力されたときに開始される(ステップS101)。タイムスタンプ付加部11は、入力されたパケットに、当該パケットの入力時刻をタイムスタンプとして付加する(ステップS102)。次に、同期確立状態か否かが判断され(ステップS103)、同期確立状態である場合にはステップS111以降の処理が、同期非確立状態である場合にはステップS121以降の処理が実行される。
【0085】
同期確立状態では(ステップS103のYES)、Iに1を加算した結果をN(繰り返しパターンの長さ)で割った余りがIに代入される(ステップS111)。ステップS111で求めたIの値により、その後の処理は3とおりに分かれる(ステップS112)。ステップS111で求めたIが1である場合には、入力されたパケットは削除すべきNULLパケットの位置にあると判断され、ストリーム変換装置による処理は、ステップS113へ進む。この場合、入力されたパケットが実際にNULLパケットであるか否かが判断され(ステップS113)、当該パケットがNULLパケットでない場合には、ストリーム変換装置は、同期非確立状態に遷移する(ステップS114)。また、ステップS113における判断結果に関わらず、削除すべきNULLパケットの位置にあるパケットは、パケット間引き部12によって削除される(ステップS131)。
【0086】
ステップS111で求めたIが2である場合には、入力されたパケットは削除すべきNULLパケットの直後に位置すると判断され、ストリーム変換装置による処理は、ステップS132へ進む。この場合、タイムスタンプ付け替え部13は、このパケットに対して、タイムスタンプの付け替えを行わない。
【0087】
ステップS111で求めたIが1でも2でもない場合には、入力されたパケットは、削除されないパケットの直後に位置すると判断され、ストリーム変換装置による処理は、ステップS115へ進む。この場合、タイムスタンプ付け替え部13は、上式(2)を用いて、タイムスタンプの付け替えを行う(ステップS115)。上式(2)を用いた計算では、Tに格納されている、直前に出力されたパケットに付加されたタイムスタンプが参照される。次に、ストリーム変換装置による処理は、ステップS132へ進む。
【0088】
ステップS132では、次に入力されるパケットに対する処理で参照するために、入力されたパケットにその時点で付加されているタイムスタンプが、Tに格納される。次に、タイムスタンプ付け替え部13は、出力ストリーム23の出力時刻を入力ストリーム21の入力時刻よりも遅くするために、入力されたパケットにその時点で付加されているタイムスタンプに、所定値TDを加算する(ステップS133)。次に、ステップS101で入力されたパケットが出力される(ステップS134)。ここで、ステップS134におけるパケットの出力とは、タイムスタンプ付け替え部13から出力されたパケットが、バッファ14、パケット読み出し部15、および出力部16によって、当該パケットに付加されたタイムスタンプの時刻に出力されることをいう。
【0089】
一方、同期非確立状態では(ステップS103のNO)、入力されたパケットがNULLパケットであるか否かが判断され(ステップS121)、この判断結果により、その後の処理は2とおりに分かれる。入力されたパケットがNULLパケットである場合には(ステップS121のYES)、Iは1に初期化され、Jには1が加算され(ステップS122)、続いて、Jが奇数か偶数かが判断される(ステップS123)。
【0090】
ステップS122で求めたJが奇数である場合には(ステップS123のYES)、入力されたパケットは、同期非確立状態において、連続したNULLパケットのうち奇数番目の位置にあると判断される。この場合、ストリーム変換装置による処理は、ステップS131へ進み、入力されたパケットは、パケット間引き部12によって削除される(ステップS131)。
【0091】
これに対して、ステップS122で求めたJが偶数である場合には(ステップS123のNO)、入力されたパケットは、同期非確立状態において、連続したNULLパケットの偶数番目の位置にあると判断される。この場合、タイムスタンプ付け替え部13は、入力されたパケットに対して、上式(5)を用いた特別なタイムスタンプの付け替えを行う(ステップS124)。
【0092】
また、入力されたパケットが非NULLパケットである場合には(ステップS121のNO)、Jは0に初期化され、Iには1が加算される(ステップS125)。次に、ステップS125で求めたIの値により、その後の処理は3とおりに分かれる(ステップS126)。ステップS125で求めたIがN(繰り返しパターンの長さ)である場合には、ストリーム変換装置は、同期確立状態に遷移する(ステップS127)。また、ステップS125で求めたIが2以外である場合には、タイムスタンプ付け替え部13が、入力されたパケットに対して、上式(2)を用いたタイムスタンプの付け替えを行う(ステップS128)。
【0093】
ステップS124またはS128の実行後、あるいは、ステップS126でIが2であると判断した場合には直ちに、ストリーム変換装置による処理は、ステップS132へ進む。ステップS132以降の処理では、入力されたパケットにその時点で付加されているタイムスタンプがTに格納され、当該タイムスタンプに値TDが加算され、その後、ステップS101で入力されたパケットがバッファ14、パケット読み出し部15、および出力部16の作用によって装置の外部に出力される。
【0094】
以上に示すように、本実施形態に係るストリーム変換装置によれば、第1の実施形態に係るストリーム変換装置に同期非確立状態における処理を追加することにより、削除対象のNULLパケット以外にNULLパケットを含む入力ストリームに対してストリーム変換処理を行うことができる。したがって、第1の実施形態に係るストリーム変換装置と同様の効果を奏することができる。
【0095】
(第4の実施形態)
第4の実施形態では、タイムスタンプの付け替えとともに、入力ストリームに含まれるPCRを付け替えるストリーム変換装置について説明する。入力ストリーム21に含まれるパケットは、ビデオストリームやオーディオストリームの復号器の時刻基準となる値を校正するための情報として、PCRを含むことがある。例えば、MPEG2トランスポートストリームに含まれるトランスポートパケットは、そのアダプテーションフィールドにPCRを含んでいる。このPCRは、トランスポートストリームの復号器における時刻基準(STC(System Time Clock )と呼ばれる)を、符号器が意図した値に調整するために使用される。
【0096】
本実施形態に係るストリーム変換装置では、タイムスタンプ付け替え部13が、タイムスタンプの付け替えと同じ計算でPCRの付け替えを行う。より詳細には、本実施形態では、時刻カウント部17は、27MHzの周波数で更新されるカウント値を出力する。このような時刻カウント部17は、例えば、27MHzの周波数を有するクロック信号を数えるカウンタを用いて構成される。また、タイムスタンプ付け替え部13は、パケット間引き部12から出力されたパケットにPCRが含まれる場合には、当該パケットに付加されたタイムスタンプの付け替え前の値と付け替え後との差を、当該パケットに含まれるPCRに加算する。これにより、特別な回路を使用することなく、簡単な構成でPCRの付け替えを行うことができる。
【0097】
図12は、本実施形態に係るストリーム変換装置における処理の一例を示す図である。図12は、本実施形態に係るストリーム変換装置における処理を、図3と同じ条件で描いたものである。ただし、このストリーム変換装置に入力される入力ストリームに含まれるパケットには、PCRが含まれる場合があるとする。図12の第1段目には、第1から第8パケットに、それぞれ、PCR1からPCR8のPCRが含まれることが示されている。
【0098】
この例では、図12に示す8個のパケットのうち、第1および第5パケットは、NULLパケットであるので、パケット間引き部12によって削除される。また、残余の6個のパケットは、非NULLパケットであるので、パケット間引き部12によって削除されることなく、パケット間引き部12からタイムスタンプ付け替え部13に出力される。
【0099】
タイムスタンプ付け替え部13は、削除されたパケットの直後のパケットについては、タイムスタンプの付け替えを行わず、それ以外のパケットについては、上式(2)を用いたタイムスタンプの付け替えを行う。これにより、第2および第6のパケットに付加されたタイムスタンプは変化しないが、第3および第7パケットに付加されたタイムスタンプはいずれも231増加し、第4および第8パケットに付加されたタイムスタンプはいずれも462増加する。
【0100】
タイムスタンプ付け替え部13は、上記タイムスタンプの増加分を、パケットに含まれるPCRにも加算する。これにより、第2および第6のパケットに含まれるPCRは変化しないが、第3および第7パケットに含まれるPCRはいずれも231増加し、第4および第8パケットに含まれるPCRはいずれも462増加する。このようにして、タイムスタンプの付け替えとともにPCRの付け替えを施したパケットが、バッファ14に蓄積される。その後の処理は、図3に示した処理と同じである。
【0101】
以上に示すように、本実施形態に係るストリーム変換装置では、タイムスタンプ付け替え部が、タイムスタンプの付け替えと同じ計算でPCRの付け替えを行う。したがって、従来のストリーム変換装置で必要とされていた、特別なPCR付け替え回路が不要となる。また、タイムスタンプ付け替え部は、タイムスタンプの付け替えで求めた値を用いてPCRの付け替えを行うので、PCRの付け替えを簡単な計算で行うことができる。さらに、PCRはデジタル数値演算に基づき更新されるので、計算の過程で誤差が生じたり、回路が不安定で計算不能となったり、計算結果を間違えたりすることを防止することができる。
【0102】
なお、第1ないし第4の実施形態に係るストリーム変換装置では、整数のタイムスタンプを使用することとしたが、各装置で使用されるタイムスタンプは所定の桁数の小数部を有していてもよい。小数部を有するタイムスタンプを使用することにより、ストリーム変換装置における出力タイミングの精度を高めることができる。
【0103】
また、第1ないし第4の実施形態に係るストリーム変換装置では、出力ストリーム23の出力時刻を入力ストリーム21の入力時刻より遅くするために、タイムスタンプ付け替え部13が、パケット間引き部12から出力されたパケットに付加されているタイムスタンプに、一律に所定値TDを加算することとしたが、この加算処理をタイムスタンプ付加部11が行ってもよい。あるいは、タイムスタンプ付加部11もタイムスタンプ付け替え部13もこの加算処理を行うことなく、パケット読み出し部15が、バッファ14に蓄積されたパケットに付加されたタイムスタンプおよび上記所定値TDの和と、時刻カウント部17から供給されたカウント値とが一致したときに、当該パケットをバッファ14から読み出すこととしてもよい。
【0104】
上記の説明では、第3の実施形態に係るストリーム変換装置における処理だけを、フローチャート(図11)を用いて説明したが、他の実施形態に係るストリーム変換装置における処理も、このフローチャートを用いて説明することができる。すなわち、図11において常に同期確立状態であるとした場合の処理が、第1および第2の実施形態に係るストリーム変換装置における処理に相当する。また、図11に示すステップS115、S124およびS128に、タイムスタンプの付け替えと同じ計算でPCRの付け替えを行う処理を追加すると、第4の実施形態に係るストリーム変換装置における処理となる。
【0105】
また、コンピュータに、第1ないし第4の実施形態に係るストリーム変換装置で行われるストリーム変換方法を実行させるためのプログラムを作成し、コンピュータと作成したプログラムとを用いて、各実施形態に係るストリーム変換装置を構成してもよい。この場合、作成したプログラムをコンピュータに読み取り可能な記録媒体に記録し、コンピュータに、記録媒体に記録されたプログラムを実行させることにより、各実施形態に係るストリーム変換装置を構成してもよい。
【図面の簡単な説明】
【図1】本発明の第1ないし第4の各実施形態に係るストリーム変換装置の構成を示すブロック図
【図2】図1に示すストリーム変換装置を含んだビデオ機器の構成を示すブロック図
【図3】本発明の第1の実施形態に係るストリーム変換装置における処理を示す図
【図4】本発明の第2の実施形態に係るストリーム変換装置における処理(符号化率が2分の1である場合の処理)を示す図
【図5】本発明の第2の実施形態に係るストリーム変換装置における処理(符号化率が3分の2である場合の処理)を示す図
【図6】本発明の第2の実施形態に係るストリーム変換装置における処理(符号化率が6分の5である場合の処理)を示す図
【図7】本発明の第2の実施形態に係るストリーム変換装置における処理(符号化率が8分の7である場合の処理)を示す図
【図8】本発明の第3の実施形態に係るストリーム変換装置における処理(同期非確立状態における処理)を示す図
【図9】本発明の第3の実施形態に係るストリーム変換装置における処理(同期確立状態における処理)を示す図
【図10】本発明の第3の実施形態に係るストリーム変換装置における処理(同期確立状態における処理)を示す図
【図11】本発明の第3の実施形態に係るストリーム変換装置における処理を示すフローチャート
【図12】本発明の第4の実施形態に係るストリーム変換装置における処理を示す図
【図13】従来のストリーム変換装置の構成を示すブロック図
【符号の説明】
10…ストリーム変換装置
11…タイムスタンプ付加部
12…パケット間引き部
13…タイムスタンプ付け替え部
14…バッファ
15…パケット読み出し部
16…出力部
17…時刻カウント部
21…入力ストリーム
22…出力タイミング信号
23…出力ストリーム

Claims (12)

  1. パケット形式を有するデジタルストリームを入力時よりも遅い速度で出力するデジタルストリーム変換装置であって、
    入力されたデジタルストリームに含まれるパケットに、各パケットの入力時刻をタイムスタンプとして付加するタイムスタンプ付加部と、
    前記デジタルストリームに所定の繰り返しパターンで含まれる削除対象パケットを削除し、残余のパケットを出力するパケット間引き部と、
    前記デジタルストリームに含まれる削除対象パケットの割合に基づき、前記パケット間引き部から出力されたパケットに付加されたタイムスタンプを付け替えるタイムスタンプ付け替え部と、
    前記タイムスタンプ付け替え部から出力されたパケットを、各パケットに付加されたタイムスタンプの時刻に出力するパケット出力部とを備えた、デジタルストリーム変換装置。
  2. 前記パケット間引き部は、前記タイムスタンプ付加部から出力されたパケットに含まれる削除対象パケットの位置を求めるまでの処理として、削除対象パケットとは異なる種類のパケットの直後に、削除対象パケットと同じ種類のパケットが入力された場合には、当該パケットを削除し、削除対象パケットと同じ種類のパケットが連続して入力された場合には、当該連続したパケットのうち、奇数番目に位置するパケットを削除し、偶数番目に位置するパケットを出力することを特徴とする、請求項1に記載のデジタルストリーム変換装置。
  3. 前記パケット間引き部は、前記タイムスタンプ付加部から出力されたパケットに含まれる削除対象パケットの位置を求めた後の処理として、求めた位置にあるパケットを削除し、残余のパケットについては、削除対象パケットと同じ種類のパケットであっても、これを出力することを特徴とする、請求項1に記載のデジタルストリーム変換装置。
  4. 前記デジタルストリームにはα(0<α<1)の割合で削除対象パケットが含まれており、
    前記タイムスタンプ付け替え部は、削除対象パケットの直後のパケットについては、タイムスタンプの付け替えを行わず、それ以外のパケットについては、直前のパケットに付加されたタイムスタンプとの差が従前のβ倍(ただし、1<β<1/(1−α))となるように、タイムスタンプの付け替えを行うことを特徴とする、請求項1に記載のデジタルストリーム変換装置。
  5. 前記タイムスタンプ付加部および前記パケット出力部で使用される時刻は、所定の周波数を有するクロック信号を数えたカウント値であることを特徴とする、請求項1に記載のデジタルストリーム変換装置。
  6. 前記デジタルストリームは、MPEG2システム規格に準拠したトランスポートストリームであり、
    前記パケット間引き部は、前記トランスポートストリームに所定の繰り返しパターンで含まれるヌルパケットを、削除対象パケットとして扱うことを特徴とする、請求項1に記載のデジタルストリーム変換装置。
  7. 前記タイムスタンプ付加部および前記パケット出力部で使用される時刻は、27MHzの周波数で更新されるカウント値であり、
    前記タイムスタンプ付け替え部は、前記パケット間引き部から出力されたパケットにプログラム時刻基準参照値が含まれる場合には、当該パケットに付加されたタイムスタンプの付け替え前の値と付け替え後の値との差を、当該パケットに含まれるプログラム時刻基準参照値に加算することを特徴とする、請求項6に記載のデジタルストリーム変換装置。
  8. 前記デジタルストリームは、符号化率が8分の7、6分の5、4分の3、3分の2、および2分の1のいずれかであるQPSK方式で変調されたアナログ信号を復調して得られたストリームであることを特徴とする、請求項1に記載のデジタルストリーム変換装置。
  9. 前記デジタルストリームは、符号化率が2分の1であるBPSK方式で変調されたアナログ信号を復調して得られたストリームであることを特徴とする、請求項1に記載のデジタルストリーム変換装置。
  10. パケット形式を有するデジタルストリームを入力時よりも遅い速度で出力するデジタルストリーム変換方法であって、
    入力されたデジタルストリームに含まれるパケットに、各パケットの入力時刻をタイムスタンプとして付加するステップと、
    前記デジタルストリームに所定の繰り返しパターンで含まれる削除対象パケットを削除し、残余のパケットを次段ステップに出力するステップと、
    前記デジタルストリームに含まれる削除対象パケットの割合に基づき、削除対象パケットを削除した後のパケットに付加されたタイムスタンプを付け替えるステップと、
    タイムスタンプの付け替え処理を施したパケットを、各パケットに付加されたタイムスタンプの時刻に出力するステップとを備えた、デジタルストリーム変換方法。
  11. コンピュータに、パケット形式を有するデジタルストリームを入力時よりも遅い速度で出力するデジタルストリーム変換方法を実行させるためのプログラムであって、
    入力されたデジタルストリームに含まれるパケットに、各パケットの入力時刻をタイムスタンプとして付加するステップと、
    前記デジタルストリームに所定の繰り返しパターンで含まれる削除対象パケットを削除し、残余のパケットを次段ステップに出力するステップと、
    前記デジタルストリームに含まれる削除対象パケットの割合に基づき、削除対象パケットを削除した後のパケットに付加されたタイムスタンプを付け替えるステップと、
    タイムスタンプの付け替え処理を施したパケットを、各パケットに付加されたタイムスタンプの時刻に出力するステップとを備えた、デジタルストリーム変換方法をコンピュータに実行させるための、プログラム。
  12. コンピュータに、パケット形式を有するデジタルストリームを入力時よりも遅い速度で出力するデジタルストリーム変換方法を実行させるためのプログラムを記録した、コンピュータ読み取り可能な記録媒体であって、入力されたデジタルストリームに含まれるパケットに、各パケットの入力時刻をタイムスタンプとして付加するステップと、
    前記デジタルストリームに所定の繰り返しパターンで含まれる削除対象パケットを削除し、残余のパケットを次段ステップに出力するステップと、
    前記デジタルストリームに含まれる削除対象パケットの割合に基づき、削除対象パケットを削除した後のパケットに付加されたタイムスタンプを付け替えるステップと、
    タイムスタンプの付け替え処理を施したパケットを、各パケットに付加されたタイムスタンプの時刻に出力するステップとを備えた、デジタルストリーム変換方法をコンピュータに実行させるためのプログラムを記録した、記録媒体。
JP2003189732A 2002-07-04 2003-07-01 デジタルストリーム変換装置および方法 Expired - Fee Related JP4167946B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003189732A JP4167946B2 (ja) 2002-07-04 2003-07-01 デジタルストリーム変換装置および方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002195503 2002-07-04
JP2003189732A JP4167946B2 (ja) 2002-07-04 2003-07-01 デジタルストリーム変換装置および方法

Publications (2)

Publication Number Publication Date
JP2004088758A true JP2004088758A (ja) 2004-03-18
JP4167946B2 JP4167946B2 (ja) 2008-10-22

Family

ID=32071977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003189732A Expired - Fee Related JP4167946B2 (ja) 2002-07-04 2003-07-01 デジタルストリーム変換装置および方法

Country Status (1)

Country Link
JP (1) JP4167946B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008236399A (ja) * 2007-03-20 2008-10-02 Kddi Corp 放送tsパケット送信装置および放送tsパケット受信装置
WO2009130875A1 (ja) * 2008-04-21 2009-10-29 パナソニック株式会社 デジタル放送送受信装置
JP2010118897A (ja) * 2008-11-13 2010-05-27 Sumitomo Electric Ind Ltd 映像信号送信装置及び映像信号通信システム
WO2015072767A1 (en) * 2013-11-13 2015-05-21 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
US9240916B2 (en) 2013-11-13 2016-01-19 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
KR20170137728A (ko) * 2015-04-13 2017-12-13 소니 세미컨덕터 솔루션즈 가부시키가이샤 수신 장치, 수신 방법, 및 프로그램

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008236399A (ja) * 2007-03-20 2008-10-02 Kddi Corp 放送tsパケット送信装置および放送tsパケット受信装置
WO2009130875A1 (ja) * 2008-04-21 2009-10-29 パナソニック株式会社 デジタル放送送受信装置
JP5146530B2 (ja) * 2008-04-21 2013-02-20 パナソニック株式会社 デジタル放送送受信装置
JP2010118897A (ja) * 2008-11-13 2010-05-27 Sumitomo Electric Ind Ltd 映像信号送信装置及び映像信号通信システム
US9264476B2 (en) 2013-11-13 2016-02-16 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
US9240916B2 (en) 2013-11-13 2016-01-19 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
WO2015072767A1 (en) * 2013-11-13 2015-05-21 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
US9537696B2 (en) 2013-11-13 2017-01-03 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
US9559885B2 (en) 2013-11-13 2017-01-31 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
US9729373B2 (en) 2013-11-13 2017-08-08 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
US9780981B2 (en) 2013-11-13 2017-10-03 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
KR20170137728A (ko) * 2015-04-13 2017-12-13 소니 세미컨덕터 솔루션즈 가부시키가이샤 수신 장치, 수신 방법, 및 프로그램
KR102484022B1 (ko) 2015-04-13 2023-01-03 소니 세미컨덕터 솔루션즈 가부시키가이샤 수신 장치, 수신 방법, 및 프로그램

Also Published As

Publication number Publication date
JP4167946B2 (ja) 2008-10-22

Similar Documents

Publication Publication Date Title
JP4275746B2 (ja) 符号化ビデオシーケンスの切り替え方法及びこれに対応する装置
US6678243B2 (en) Variable codec frame length
WO2002017568A1 (fr) Dispositif et procede de traitement de flux de donnees, et support de memorisation de programme
WO2000003510A1 (en) Variable codec frame length for multistream applications
JP2937529B2 (ja) クロック再生回路
JP2004088758A (ja) デジタルストリーム変換装置および方法
US8867900B2 (en) Emulation prevention byte removers for video decoder
KR100915771B1 (ko) Pcr 보정 회로
US8873641B2 (en) Moving picture coding apparatus
US8041183B2 (en) Device for recording and playing stream data
JP4386079B2 (ja) サンプリング周波数変換装置
JP3969776B2 (ja) 伝送画像復号装置
WO2015083542A1 (ja) データ処理装置、及び、データ処理方法
EP1199890A2 (en) Coded data transfer control method and storage and reproduction system
JP2009206673A (ja) 位相同期回路および位相同期方法ならびにデコーダ装置
JP4320390B2 (ja) 出力レートを変更する方法及び装置
JP4374107B2 (ja) Ts多重化送信装置および受信装置並びに伝送システム
JP4553897B2 (ja) 非同期ジッタ削減手法
US6557109B1 (en) Synchronizing device and method that adjusts readout speed according to remaining quantity of data in memory while operating decoder on fixed frequency system clock
JPH08265713A (ja) 非同期データをディジタル信号に挿入する方法及び装置
KR100279582B1 (ko) 디지탈 영상압축신호의 편집장치
TWI543597B (zh) 訊號取樣方法、資料加解密方法、以及使用這些方法的電子裝置
JP2005318029A (ja) 補正pcr値算出方法及びその回路
WO2015083540A1 (ja) データ処理装置、及び、データ処理方法
JP3632577B2 (ja) データ伝送装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080703

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080711

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080804

R150 Certificate of patent or registration of utility model

Ref document number: 4167946

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110808

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110808

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120808

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130808

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees