(57)【要約】【課題】破綻なく円滑なパケット送信を行うことができる通信装置を提供することを課題とする。【解決手段】送信するパケットを記憶するためのメモリ（３１４，３１６，３１８）と、送信可能タイミング毎に、前記メモリに記憶されたパケットを予め設定された最大パケット連結数以下で送信する送信手段とを有し、前記送信手段は、前記メモリに記憶されたパケットが前記最大パケット連結数未満であるときもそのパケットを送信することを特徴とする通信装置が提供される。【選択図】図３
2008066817.tif 000002
【特許請求の範囲】
【請求項１】
送信するパケットを記憶するためのメモリと、
送信可能タイミング毎に、前記メモリに記憶されたパケットを予め設定された最大パケット連結数以下で送信する送信手段とを有し、
前記送信手段は、前記メモリに記憶されたパケットが前記最大パケット連結数未満であるときもそのパケットを送信することを特徴とする通信装置。
【請求項２】
前記送信手段は、前記メモリの残容量に応じて、送信するパケット連結数を予め設定されたパケット連結数と前記最大パケット連結数との間で変化させることを特徴とする請求項１記載の通信装置。
【請求項３】
前記送信手段は、転送レートに応じて、送信するパケット連結数を予め設定されたパケット連結数と前記最大パケット連結数との間で変化させることを特徴とする請求項１記載の通信装置。
【請求項４】
前記送信手段は、前記メモリの残容量及び転送レートに応じて、送信するパケット連結数を予め設定されたパケット連結数と前記最大パケット連結数との間で変化させることを特徴とする請求項１記載の通信装置。
【請求項５】
前記送信手段は、前記パケットをシリアル送信することを特徴とする請求項１〜４のいずれか１項に記載の通信装置。
【請求項６】
送信するパケットをメモリに記憶させる記憶ステップと、
送信可能タイミング毎に、前記メモリに記憶されたパケットを予め設定された最大パケット連結数以下で送信する送信ステップとを有し、
前記送信ステップは、前記メモリに記憶されたパケットが前記最大パケット連結数未満であるときもそのパケットを送信することを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種データ、例えばデジタル画像・音声・システムデータ等の通信を行うための通信装置及び通信方法に関する。
【背景技術】
【０００２】
従来から、膨大なデータ量の各種データを符号化することによりデータ量を削減して比較的低い伝送レートで伝送し得るようにするための各種装置が開発されている。
【０００３】
例えば、画像データを磁気テープ等の記録媒体に記録するデジタルＶＴＲにおいても１２４Ｍｂｐｓ程度の入力画像データを５分の１の２５Ｍｂｐｓ程度に圧縮して磁気テープ上に記録し、再生するための規格（以下、ＳＤ規格と称する。）が制定されている。
【０００４】
このような規格に基づくデジタルＶＴＲにおいては、入力データをＤＣＴ変換した後に量子化し、この量子化データを可変長符号化することによってデータの圧縮を行っている。さらに量子化する際の量子化ステップを各種のパラメータに基づいて可変したり、可変長符号化された後のデータ量が一定となるようにレート制御が行われる。
【０００５】
また、デジタルＶＴＲ等の分野ではＭＰＥＧ２等の符号化手段により可変長符号化されたデジタルデータを記録再生すると共に、高速のシリアルデータとして送受信する装置が開発されている。
【０００６】
図２は、従来のＭＰＥＧ２−ＴＳパケットの送信方法を示したものである。１つのＴＳパケットのソースパケット構造は、図５に示すような構成５００となっていて、例えば、その５つのＴＳパケットを連結して送信することになる。このパケットの連結数は、入力されるデータレートから予め固定されているものである。この例において、各送信タイミング２００、２０２の時点では、図示せずもパケット蓄積用メモリの状態が、メモリ状態２１０では３つのＴＳパケットしか蓄積されず、また、状態２１２では、４つのＴＳパケットしか蓄積されていない。従って、送信タイミング２００、２０２では送信されない事になる。次の送信タイミング２０４においては、メモリ状態２１４で５個のＴＳパケット以上がメモリに蓄積されているため、５つのＴＳパケットを連結し１つの連結されたパケット２０８としてバス上に送信される。この場合、送信タイミング２０４の時点で例えばタイミング２００の時間において既に蓄積されているパケットのタイムスタンプが送信タイミング２０４の時点の時間に対して現在時刻よりも過去の時間を示す事になり、送信されずに破棄されてしまう事が有り得る。
【０００７】
その結果、送信データの欠落が発生し、受信側において良好な画像・音声を再生する事ができない場合がある。なお、特許文献１には、入力されるストリームパケットを入力レートに応じてあらかじめ設定された合成数に基づいて合成してシリアルインタフェースバスに送出する構成が開示されている。
【０００８】
また、予め設定される連結数を超えるＴＳパケットがメモリに蓄積されている場合、従来例では、全てを連結して送信する様に動作する。そのため、受信側の機器によっては、バッファがオーバーフローしてしまう事が考えられる。
【０００９】
更に、パケットデータ蓄積用メモリの残容量とエンコーダからの転送レート、パケット連結数の条件によっては、メモリへの上書きが発生し、画像データが破綻する事が有り得る。
【００１０】
【特許文献１】特開平１１−６８８０１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述のようなデジタルデータ送受信装置において、ＭＰＥＧ２−ＴＳのパケットデータを固定した連結数で送信する場合、各送信タイミング時点で、その設定された連結数に満たない場合に送信タイミングが次回以降に遅延される。
【００１２】
その結果、次回以降の送信タイミングにおいて、パケット毎に設定された時間情報が現在の時刻に対して古くなり、ある許容値以上古いと判断されるとそのパケットは送信されずに破棄される事になる。また、パケット連結数、メモリの残容量、ＴＳエンコーダからの転送レートにより、メモリのライト／リード動作が破綻する場合がある。
【００１３】
本発明の目的は、破綻なく円滑なパケット送信を行うことができる通信装置及び通信方法を提供することである。
【課題を解決するための手段】
【００１４】
本発明の通信装置は、送信するパケットを記憶するためのメモリと、送信可能タイミング毎に、前記メモリに記憶されたパケットを予め設定された最大パケット連結数以下で送信する送信手段とを有し、前記送信手段は、前記メモリに記憶されたパケットが前記最大パケット連結数未満であるときもそのパケットを送信することを特徴とする。
【００１５】
また、本発明の通信方法は、送信するパケットをメモリに記憶させる記憶ステップと、送信可能タイミング毎に、前記メモリに記憶されたパケットを予め設定された最大パケット連結数以下で送信する送信ステップとを有し、前記送信ステップは、前記メモリに記憶されたパケットが前記最大パケット連結数未満であるときもそのパケットを送信することを特徴とする。
【発明の効果】
【００１６】
送信するパケット連結数を適切な数に変化させることができるので、破綻なく円滑なパケット送信を行うことができる。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明の一実施形態におけるデジタル信号送受信装置の基本構成ブロック図を示したものである。１００は、ＭＰＥＧ２−ＴＳフォーマットに準拠して、画像データを符号化するためのＴＳエンコーダであり、エンコードしたデータをＲＡＭ１０２に供給する。１０４は、ＩＥＥＥ１３９４バスにデータを送信するためのパケッタイズを行うパケット化処理部（ブロック）であり、ＲＡＭ１０２から所定のデータを読み出しつつ処理する。１０６は、パケット化処理部１０４から供給されたパケット化されたデータをＩＥＥＥ１３９４バス（シリアルバス）に送信する送信部であり、ＩＥＥＥ１３９４規格における物理層に当たる。送信部１０６は、パケットをシリアル送信する。１０８はシステムの制御を司るＭＰＵであり、ＲＡＭ１０２へのリード／ライト制御、及び、ＲＡＭの蓄積状況の検出を含めたシステム全体の制御を行う。
【００１８】
次に図３を用いて、本実施形態におけるパケット送信部１０６を説明する。３００、３０４、３０８、３１２は、１２５μｓ毎に発生する送信タイミング(以降、ＣＳＰと記す)である。３００、３０４、３０８、３１２は、図示せずも、機器間をＩＥＥＥ１３９４バスで接続した時点で決まる親子関係で通常はルート(親)ノードになった機器、又は、ルートノードでなくとも、サイクルマスタになった機器が基準となってハード的に発生する。３０２、３０６、３１０はバス上に連結送信されたＭＰＥＧ２−ＴＳパケット(以降、ＴＳと記す)である。３１４、３１６、３１８はパケット蓄積用のメモリ（ＦＩＦＯ）であり、各送信タイミング毎のＲＡＭ１０２内の状態を示したものである。メモリ３１４は３個のＴＳ及び、蓄積途中のＴＳデータが蓄積されている事を示し、メモリ３１６は１個のＴＳが蓄積されている事を示し、そしてメモリ３１８は６個のＴＳが蓄積されている事を示す。
【００１９】
次に、図１、図３、図４を用いて、パケットの連結送信の方法を説明する。図４は、ＭＰＵ１０８に設けられたレジスタであり、連結モード、分割モードを設定する。本実施形態は連結送信に係るものであるため、分割送信については説明を割愛する。
【００２０】
ここで、ＳＰＱは３ビットのレジスタであり、ここに設定する値によって、最大パケット連結数が決まる。本実施形態では、５が設定されていると仮定して説明する。従って、送信時の最大パケット連結数は、５個となる。ＭＰＵ１０８は、ＲＡＭ１０２への書込みアドレス（ライトポインタ）及び読み出しアドレス（リードポインタ）を監視する事により、メモリへのパケット蓄積状況を把握する。それにより、前述した送信タイミングに於いて、メモリへの書込み途中であった場合でも、確実に送信できるパケットの個数をメモリへの書込みアドレスから検出し、可能な連結数に従って送信命令をパケット化ブロック１０４及び、送信部１０６に送る。図３の送信タイミング３００の時点では、メモリ３１４には、３個のＴＳ、及び、次のデータが書込み途中である。この場合、ＭＰＵは３個のＴＳパケットをパケット化して送信するように制御する。実際には、メモリの読み出しアドレスがパケット長の整数倍の単位で制御され、バス上に３連結されたパケット３０２が送出される。書込み途中のパケットに関しては、次の送信タイミングまで待たされる事になる。送信タイミング３０４では、前回の残りの１個のＴＳが蓄積完了しているため、この場合は、１個のＴＳパケット３０６としてバス上に送出されるように制御される。送信タイミング３０８では、メモリ３１８に示すように６個のＴＳが蓄積されている。この場合は、最大連結数が５という設定になっているため、ＭＰＵ１０８は、蓄積された時間的に古い順から５個のＴＳパケットをパケット化して送信するように制御する事で、バス上に５連結されたパケット３１０が送出される。例えば、最大連結数が３に設定されていれば３個のパケットが連結されて送出される事になる。
【００２１】
ここで、ＴＳのソースパケット構造を図５に示す。ソースパケット５００の長さは、１９２バイトで構成される。その内訳として、ソースパケットヘッダー（以降、ＳＰＨと記す）５０２が４バイト、ＴＳパケット５０６が１８８バイトであり、そのうち１バイトがシンクブロックバイト５０４である。
【００２２】
図６は、ＳＰＨ５０２の構造を示したものである。６００はリザーブ領域である。６０２は、タイムスタンプ領域で２５ビットが確保されている。その内訳として、サイクルカウント６０４が１３ビット、サイクルオフセット６０６が１２ビット確保されている。このタイムスタンプ領域６０２は、システムとして内蔵しているサイクルタイマーレジスタの値が反映され、最大１秒が計数される事になる。
【００２３】
図９、図１０を用いて、図３における本実施形態の詳細な動作を示す。図９は、本実施形態を実現するブロック図であり、図１のＭＰＵブロック１０８を具体化した図である。ここで、９１０は、ＭＰＵのコアブロックである。９００は図１のＴＳエンコーダ１００から供給される書込み（ライト）イネーブル信号Ｗｅｎによってその「Ｌ（ロー）」レベルから「Ｈ（ハイ）」レベルへの立上がり時に計数されるライトポイントカウンタである。この出力は、同様にライトイネーブル信号Ｗｅｎの「Ｌ」レベルから「Ｈ」レベルへの立上がり時に、ライトポイントレジスタ（以降、Ｗｐｒｅｇと記す)９０２にセットされる。
【００２４】
９０４は、図１のパケット化ブロック１０４から供給されるリードイネーブル信号Ｒｅｎが「Ｌ」レベル期間中、計数するように動作するリードポイントカウンタである。その出力は、デコーダ回路９０６に供給される。デコーダ回路９０６は、１９２バイト毎に１ずつインクリメントしてリードポイントレジスタ（以降、Ｒｐｒｅｇと記す）９０８に供給し、Ｒｐｒｅｇ９０８は、リードイネーブル信号Ｒｅｎの「Ｌ」レベルから「Ｈ」レベルへの立上がり時にセットされる。ＭＰＵ９１０は、それらのセットされたライトポインタＷｐ及び、リードポインタＲｐをＣＰＵバスを介し、送信部１０４から供給される送信タイミング(以降、ＣＳＰと記す)を割込み処理する事によってＷｐｒｅｇ９０２及びＲｐｒｅｇ９０８の値をリードする。その値からパケット化ブロック１０４に対して、パケット連結数をレジスタ設定により指示する。パケット化ブロック１０４は、その設定に基づき、リードイネーブル信号Ｒｅｎを生成し、メモリ及び、Ｒｐカウンタ９０４、Ｒｐｒｅｇ９０８へ供給する。
【００２５】
Ｗｐカウンタ９００は、メモリの容量により異なるが、本実施形態では、４ｋバイトの容量を仮定し、従って、２１パケットを蓄積できため、０から２０までの繰り返しカウントをするように構成する。
【００２６】
Ｒｐカウンタ９０４は、最大５連結送信を仮定し、５パケット分のデータ数を計数できるように構成される。従って、０から９５９までの繰り返しカウントを行う。
【００２７】
但し、このカウンタ構成は、諸処の条件により変わり得るものであり、この構成に固定されたものではない。
【００２８】
図１０は、上記ハードウエア構成における、本実施形態のタイミングチャートであり、図３の動作を説明するものである。１０００はライトイネーブル信号Ｗｅｎ、１００２はライトポインタＷｐ、１００４はリードポインタＲｐ、１００６はリードイネーブル信号Ｒｅｎである。３００、３０４、３０８は、図３に示した送信タイミングである。以降、送信タイミング３００、３０４、３０８を、夫々、ＣＳＰｔ０、ＣＳＰｔ１、ＣＳＰｔ２と記す。ここで、ライトイネーブル信号Ｗｅｎは１９２バイト期間において、「Ｌ」レベルを保持し、メモリにデータを書き込む。ライトポインタＷｐは、前述したように、供給されたライトイネーブル信号Ｗｅｎが「Ｌ」レベルから「Ｈ」レベルへの立上がり時に計数される。なお、この例では、パケット連結数の設定は、５と設定されているものと仮定する。
【００２９】
その条件で、例えば、送信タイミングＣＳＰｔ０に於いて、ＭＰＵ９１０は、ライトポインタＷｐの値から、現時点で連結できるパケット数は、３である事がわかる。従って、ＭＰＵ９１０は、パケット化ブロック１０４に対して、図示せずも３連結読み出しをパケット化ブロック１０４内部に搭載されているレジスタに設定する。パケット化ブロック１０４は、その指示に従い、信号１００８のようにリードイネーブル信号Ｒｅｎを３パケット分アサートする。この時、Ｒｐカウンタ９０４は、リードイネーブル信号Ｒｅｎが「Ｌ」期間に於いて、バイト単位のカウントを行ない、その結果をデコーダ回路９０６に供給する。デコーダ回路９０６は、１９２バイト毎にインクリメントするように動作し、その結果をリードイネーブル信号Ｒｅｎの「Ｌ」レベルから「Ｈ」レベルへの立上がり時に、Ｒｐｒｅｇ９０８に設定する。
【００３０】
次に、送信タイミングＣＳＰｔ１において、ＭＰＵ９１０は、Ｗｐｒｅｇ９０２及びＲｐｒｅｇ９０８の値によって１つのパケットのみ送出可能である事を認識できる。ＭＰＵ９１０は、パケット化ブロック１０４に対して、図示せずも１パケット読み出しをパケット化ブロック１０４内部に搭載されているレジスタに設定する。パケット化ブロック１０４は、その指示に従い、信号１０１０のようにリードイネーブル信号Ｒｅｎを1パケット分アサートする。その後の処理は、上記と同様である。
【００３１】
次に、送信タイミングＣＳＰｔ２において、ＭＰＵ９１０は、Ｗｐｒｅｇ９０２及びＲｐｒｅｇ９０８の値によって６個のパケットを送出可能である事を認識できる。この場合、最大パケット連結数が５であるため、ＭＰＵ９１０は、図示せずも、５連結読み出しをパケット化ブロック１０４内部に搭載されているレジスタに設定する。パケット化ブロック１０４は、その指示に従い、信号１０１２のようにリードイネーブル信号Ｒｅｎを５パケット分アサートする。その後の処理は、上記と同様である。
【００３２】
次に、本実施形態における、パケット蓄積用メモリの破綻防止に関して、以下に図７、図８を用いて詳細に説明する。図７、図８はパケット蓄積用のメモリを示す。ここで、本実施形態では、４ｋバイトのメモリを例に説明する。この場合、図５のソースパケットの容量は、前述したように１９２バイトであるため、最大（以降、ＭＡＸｂｕｆｆと記す。）２１個のソースパケットを蓄積可能となる。例えば、図７のようにライトポインタＷｐが１１番目の位置にいて、リードポインタＲｐが２番目の位置にいる場合、バッファ余裕Ｂｍは以下の式で求まる。
【００３３】
Ｂｍ＝ＭＡＸｂｕｆｆ−Ｗｐ＋Ｒｐ    （１）
【００３４】
また、図示せずも、ライトポインタＷｐとリードポインタＲｐの位置が逆転している場合は、下記の式で求まる。
【００３５】
Ｂｍ＝Ｒｐ−Ｗｐ                    （２）
【００３６】
上記式から、図７に於けるバッファ余裕Ｂｍは１２となり、図８に於けるバッファ余裕Ｂｍは３となる。一方、ソースパケットの伝送レートは、規格により、１．５３６Ｍｂｐｓから、最大６１．４４Ｍｂｐｓと決められている。１．５３６Ｍｂｐｓの場合、図３に示した１つの転送サイクル（１２５μｓ）内に転送されるデータ量は、２４バイトとなり、パケット数に換算すると、０．１２５パケットに当たる。転送レートが最大の６１．４４Ｍｂｐｓの場合は、１つの転送サイクル（１２５μｓ）内に転送されるデータ量は、９６０バイトとなり、パケット数に換算すると、５パケットに当たる。
【００３７】
従って、転送レートにより、１サイクル期間に於いて、０．１２５パケットから最大５パケットのメモリへの蓄積が発生する事になる。この時の１サイクル期間に於ける最大転送パケット数をＭＡＸｐｋｔと表現する。この、最大転送パケット数ＭＡＸｐｋｔは、ＭＰＵ９１０が随時、メモリへの書込みレートを監視する事で随時計算されている。具体的には、図９の構成において、Ｗｐｒｅｇ９０２の値と、ＭＰＵ９１０の内部タイマーを利用する事により、容易に計算する事ができる。
【００３８】
ここで、最大パケット連結数が５未満、例えば３に設定されていた時の動作において、システム上の理由から、ライトポインタＷｐとリードポインタＲｐの位置関係が図８のようになった場合を想定する。更に、ＴＳエンコードされる絵柄の状況により、エンコードしたデータ量が増大し、転送レートが最大の６１．４４Ｍｂｐｓになった場合を想定する。この状況において、このまま、初期設定通りの最大パケット連結数を３で動作を続けた場合、バッファ余裕Ｂｍ値が３に対して、次の転送タイミングまでに５パケット分のデータが転送され、メモリに対して書込みが発するためにオーバーライトが発生する。
【００３９】
本実施形態では、ＭＰＵ９１０が、このバッファ余裕Ｂｍ値と転送レートを図示せずも監視し、最大転送パケット数ＭＡＸｐｋｔとの比較を行ない、下記の条件を満たしている間は、最大パケット連結数の初期設定に拠らず、一律５パケット連結に固定する。
【００４０】
条件：Ｂｍ  ≦  ＭＡＸｐｋｔ          （３）
【００４１】
また、条件を満たさなくなった場合において、最大パケット連結数を初期設定に戻すように動作する。
【００４２】
なお、本実施形態は、例えばデジタルビデオカメラにのみ適用されるものではなく、ＩＥＥＥ１３９４規格に準拠した高速シリアル通信のポートを有する全てのシステムに同様の処理が適用可能である事は明白である。
【００４３】
以上のように、本実施形態によれば、送信するパケットを記憶するためのメモリと、送信可能タイミング毎に、前記メモリに記憶されたパケットを予め設定された最大パケット連結数以下で送信する送信手段とを有する。前記送信手段は、前記メモリに記憶されたパケットが前記最大パケット連結数未満であるときもそのパケットを送信する。
【００４４】
本実施形態は、各送信タイミングにおいて、メモリに蓄積された複数のパケットを、各送信タイミング毎に、予め設定された最大パケット連結数以下で、かつ、パケット化可能な少なくとも１つ以上のデータをパケット化して送信することができる。また、メモリの上書きが発生しないように、パケット連結数、メモリの残容量、ＴＳエンコーダからの転送レートにより、送信するパケット連結数を予め設定されたパケット連結数と最大パケット連結数との間で自動的に変更することができる。具体的には、メモリの残容量及び、入力データレートを検出する手段を有し、メモリの蓄積状況を推測することにより、送信するパケット連結数を予め設定されたパケット連結数と最大パケット連結数との間で動的に変化させることができる。
【００４５】
各送信タイミングにおいて、メモリへのデータ蓄積量が最大パケット連結数以下の場合であっても、パケットとして構成可能な蓄積データを連結送信する。また、メモリの残容量、ＴＳエンコーダからの転送レートにより、送信するパケット連結数を予め設定されたパケット連結数と最大パケット連結数との間で自動的に最適化し、破綻無くパケットデータを送信する事により問題を解決することができる。
【００４６】
本実施形態は、ＩＥＥＥ１３９４ポートを持つ全ての機器、特にＭＰＥＧ２−ＴＳプロトコルを実装した機器において、各送信タイミングにおいてメモリへのデータ蓄積量が最大パケット連結数以下の場合であっても可能な限りのパケットを連結送信できる。また、メモリの残容量、ＴＳエンコーダからの転送レートによりパケット連結数を最適化する事により破綻無くパケットデータを送信することができる。
【００４７】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態におけるデジタル信号送受信装置の構成例を表す図である。
【図２】従来の転送方法を表す図である。
【図３】本実施形態の転送方法を表す図である。
【図４】本実施形態のＭＰＵのレジスタ構成例を示す図である。
【図５】ＩＥＥＥ１３９４規格によるソースパケット構造例を示す図である。
【図６】ＩＥＥＥ１３９４規格によるソースパケットヘッダー構造例を示す図である。
【図７】本実施形態のパケットデータ蓄積用メモリを示す図である。
【図８】本実施形態のパケットデータ蓄積用メモリを示す図である。
【図９】本実施形態のパケット連結をするためのブロック図である。
【図１０】本実施形態のパケット連結をするためのタイミングチャートである。
【符号の説明】
【００４９】
１００  ＴＳエンコーダ
１０２  メモリ
１０４  パケット化回路
１０６  パケット送信部
１０８  ＭＰＵ
９００  ライトポインタカウンタ
９０２  ライトポインタレジスタ
９０４  リードポインタカウンタ
９０６  デコーダ
９０８  リードポインタレジスタ
９１０  ＭＰＵコア
【図１】
2008066817.tif 000003
【図２】
2008066817.tif 000004
【図３】
2008066817.tif 000005
【図４】
2008066817.tif 000006
【図５】
2008066817.tif 000007
【図６】
2008066817.tif 000008
【図７】
2008066817.tif 000009
【図８】
2008066817.tif 000010
【図９】
2008066817.tif 000011
【図１０】
2008066817.tif 000012