(57)【特許請求の範囲】
【請求項１】
画像データを圧縮して該圧縮した画像データをパケット化して転送する画像データ転送装置において、
前記画像データの１フレームのライン数と、単位時間内に前記１フレームを転送するように定められている前記画像データの数を示す転送レートとを乗算し、単位時間に転送するライン数を求め、前記ライン数と１つの前記パケットを転送するために定められた一定の時間を単位時間で除算した値とを乗算し、前記定められた一定の時間である１サイクルで転送されるライン数を示す１サイクル転送ライン数を求め、前記画像データの１ラインのピクセル数と、１ピクセル当りのバイト数と、圧縮率と、前記１サイクル転送ライン数とを乗算し、１サイクル転送バイト数を求める１サイクル転送量算出部と、
可変長符号化によって圧縮処理された１サイクルで転送されるべきデータを格納するバッファ部と、
前記１サイクル転送バイト数に対応するデータ量より、前記バッファ部に格納されたデータ量が小さいとき、前記１サイクル転送バイト数に対応するデータ量と前記バッファ部に格納されたデータ量との差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加部と、
前記バッファ部に格納されたデータに無効なデータを追加したデータを用いて、当該データを含むパケットを生成して伝送路に送信するパケット生成部と、
を備えることを特徴とする画像データ転送装置。
【請求項２】
画像データを圧縮して該圧縮した画像データをパケット化して転送する画像データ転送装置において、
前記画像データの１フレームのライン数と、単位時間内に前記１フレームを転送するように定められている前記画像データの数を示す転送レートとを乗算し、単位時間に転送するライン数を求め、前記ライン数と１つの前記パケットを転送するために定められた一定の時間を単位時間で除算した値とを乗算し、前記定められた一定の時間である１サイクルで転送されるライン数を示す１サイクル転送ライン数を求め、前記１サイクル転送ライン数を固定長とし、前記画像データの１ラインのピクセル数と、１ピクセル当りのバイト数と、圧縮率と、前記１サイクル転送ライン数とを乗算し、１サイクル転送バイト数を求める１サイクル転送量算出部と、
可変長符号化によって圧縮処理された１サイクルで転送されるべき前記データ量を格納するバッファ部と、
前記１サイクル転送バイト数に対応するデータ量より、前記バッファ部に格納されたデータ量が小さいとき、前記１サイクル転送バイト数に対応するデータ量と前記バッファ部に格納されたデータ量との差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加部と、
前記無効データが追加されたデータを受信した回数をカウントし、前記回数がその１サイクルで転送しなければならないライン数に達した場合に、前記ライン数だけ受信したデータを連結して実データを生成し、前記実データにヘッダ部を追加してアイソクロナスパケットを生成して伝送路に送出するパケット生成部と、
を備えることを特徴とする画像データ転送装置。
【請求項３】
前記画像データが持つ冗長性を、前処理を行うことによって削減する前処理部と、
前記前処理の結果に対して量子化を行う量子化部と、
前記量子化部で量子化されたデータに対して可変長符号化を行う符号化部と、
前記前処理の結果を基に、処理する画像データに対応する画像処理装置に割り振られたチャンネルを基に量子化テーブルを選択する量子化テーブル作成部と、
前記量子化の結果を基に、処理する画像データに対応する前記チャンネルを基に符号化テーブルを選択する符号化テーブル作成部と、
をさらに備えることを特徴とする請求項１または２記載の画像データ転送装置。
【請求項４】
コンピュータによって実行される画像データを圧縮して転送する画像データ転送方法であって、
前記画像データの１フレームのライン数と、単位時間内に前記１フレームを転送するように定められている前記画像データの数を示す転送レートとを乗算し、単位時間に転送するライン数を求め、
前記ライン数と１つの前記パケットを転送するために定められた一定の時間を単位時間で除算した値とを乗算し、前記定められた一定の時間である１サイクルで転送されるライン数を示す１サイクル転送ライン数を求め、
前記画像データの１ラインのピクセル数と、１ピクセル当りのバイト数と、圧縮率と、前記１サイクル転送ライン数とを乗算し、１サイクル転送バイト数を求め、
可変長符号化によって圧縮処理された１サイクルで転送されるべきデータをバッファ部に格納し、
前記１サイクル転送バイト数に対応するデータ量より、前記バッファ部に格納されたデータ量が小さいとき、前記１サイクル転送バイト数に対応するデータ量と前記バッファ部に格納されたデータ量との差だけ、前記バッファ部に格納されたデータに無効なデータを追加し、
前記バッファ部に格納されたデータに無効なデータを追加したデータを用いて、当該データを含むパケットを生成して伝送路に送信する、
ことを特徴とする画像データ転送方法。
【請求項５】
コンピュータによって実行される画像データを圧縮して転送する画像データ転送方法であって、
前記画像データの１フレームのライン数と、単位時間内に前記１フレームを転送するように定められている前記画像データの数を示す転送レートとを乗算し、単位時間に転送するライン数を求め、
前記ライン数と１つの前記パケットを転送するために定められた一定の時間を単位時間で除算した値とを乗算し、前記定められた一定の時間である１サイクルで転送されるライン数を示す１サイクル転送ライン数を求め、前記１サイクル転送ライン数を固定長とし、
前記画像データの１ラインのピクセル数と、１ピクセル当りのバイト数と、圧縮率と、前記１サイクル転送ライン数とを乗算し、１サイクル転送バイト数を求め、
可変長符号化によって圧縮処理された１サイクルで転送されるべき前記データ量をバッファ部に格納し、
前記１サイクル転送バイト数に対応するデータ量より、前記バッファ部に格納されたデータ量が小さいとき、前記１サイクル転送バイト数に対応するデータ量と前記バッファ部に格納されたデータ量との差だけ、前記バッファ部に格納されたデータに無効なデータを追加し、
前記無効データが追加されたデータを受信した回数をカウントし、前記回数がその１サイクルで転送しなければならないライン数に達した場合に、前記ライン数だけ受信したデータを連結して実データを生成し、前記実データにヘッダ部を追加してアイソクロナスパケットを生成して伝送路に送出する、
ことを特徴とする画像データ転送方法。
【請求項６】
前記画像データが持つ冗長性を、前処理を行うことによって削減し、
前記前処理の結果に対して量子化し、
前記量子化されたデータに対して可変長符号化し、
前記前処理の結果を基に、処理する画像データに対応する画像処理装置に割り振られたチャンネルを基に量子化テーブルを選択し、
前記量子化の結果を基に、処理する画像データに対応する前記チャンネルを基に符号化テーブルを選択する、
ことを特徴とする請求項４または５記載の画像データ転送方法。
【請求項７】
画像データを圧縮して転送する画像データ転送装置のコンピュータに、
前記画像データの１フレームのライン数と、単位時間内に前記１フレームを転送するように定められている前記画像データの数を示す転送レートとを乗算し、単位時間に転送するライン数を求め、
前記ライン数と１つの前記パケットを転送するために定められた一定の時間を単位時間で除算した値とを乗算し、前記定められた一定の時間である１サイクルで転送されるライン数を示す１サイクル転送ライン数を求め、
前記画像データの１ラインのピクセル数と、１ピクセル当りのバイト数と、圧縮率と、前記１サイクル転送ライン数とを乗算し、１サイクル転送バイト数を求め、
可変長符号化によって圧縮処理された１サイクルで転送されるべきデータを格納し、
前記１サイクル転送バイト数に対応するデータ量より、前記格納されたデータ量が小さいとき、前記１サイクル転送バイト数に対応するデータ量と前記格納されたデータ量との差だけ、前記格納されたデータに無効なデータを追加し、
前記格納されたデータに無効なデータを追加したデータを用いて、当該データを含むパケットを生成して伝送路に送信する、
処理を実行させるプログラム。
【請求項８】
画像データを圧縮して転送する画像データ転送装置のコンピュータに、
前記画像データの１フレームのライン数と、単位時間内に前記１フレームを転送するように定められている前記画像データの数を示す転送レートとを乗算し、単位時間に転送するライン数を求め、
前記ライン数と１つの前記パケットを転送するために定められた一定の時間を単位時間で除算した値とを乗算し、前記定められた一定の時間である１サイクルで転送されるライン数を示す１サイクル転送ライン数を求め、前記１サイクル転送ライン数を固定長とし、
前記画像データの１ラインのピクセル数と、１ピクセル当りのバイト数と、圧縮率と、前記１サイクル転送ライン数とを乗算し、１サイクル転送バイト数を求め、
可変長符号化によって圧縮処理された１サイクルで転送されるべき前記データ量をバッファ部に格納し、
前記１サイクル転送バイト数に対応するデータ量より、前記バッファ部に格納されたデータ量が小さいとき、前記１サイクル転送バイト数に対応するデータ量と前記バッファ部に格納されたデータ量との差だけ、前記バッファ部に格納されたデータに無効なデータを追加し、
前記無効データが追加されたデータを受信した回数をカウントし、前記回数がその１サイクルで転送しなければならないライン数に達した場合に、前記ライン数だけ受信したデータを連結して実データを生成し、前記実データにヘッダ部を追加してアイソクロナスパケットを生成して伝送路に送出する、
処理を実行させるプログラム。
【請求項９】
前記画像データの１フレームのライン数と、単位時間内に前記１フレームを転送するように定められている前記画像データの数を示す転送レートとを乗算し、単位時間に転送するライン数を求め、前記ライン数と１つの前記パケットを転送するために定められた一定の時間を単位時間で除算した値とを乗算し、前記定められた一定の時間である１サイクルで転送されるライン数を示す１サイクル転送ライン数を求め、前記画像データの１ラインのピクセル数と、１ピクセル当りのバイト数と、前記１サイクル転送ライン数とを乗算し、処理単位数を求める１サイクル転送量算出部と、
前記画像データのうち、１サイクルで転送されるべき前記データ量を格納するバッファ部と、
前記処理単位数に対応するデータ量と、前記バッファ部に格納されているデータ量との差を求め、前記差の量だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加部と、
前記バッファ部に格納されたデータに無効なデータを追加したデータを用いて、当該データを含むパケットを生成して伝送路に送信するパケット生成部と、
を備えることを特徴とする画像データ転送装置。
【請求項１０】
前記画像データ転送装置は更に、前記画像データを圧縮する圧縮処理部を備え、前記バッファ部は、前記圧縮処理部が圧縮した前記処理単位数分のデータを格納することを特徴とする請求項９に記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを圧縮して転送するデータ転送装置に関する。
【背景技術】
【０００２】
画像データは、通常、ＭＰＥＧ（Moving Picture Experts Group）２等の圧縮方式を用いて圧縮して転送される。ＭＰＥＧ２方式でデータを転送する場合、ＭＰＥＧ２−ＴＳ形式がしばしば用いられている。この形式では、転送される実データを各種制御データとともに１８８バイトの固定長内に入れてカプセル化している。【０００３】
動画像の送信などリアルタイム性が要求される環境をこのＭＰＥＧ２方式で実現しようとした場合、時間同期を避けるためのタイムスタンプ等の情報をヘッダ部に格納するとともに、そのヘッダ部の後に、画像データ、音声、番組情報、等のメタデータを入れて、複数のストリームを重畳させる。この結果、回路が複雑化するとともに、回路規模が大型化し、システムの実現にコストがかかる。【０００４】
例えば、ＭＰＥＧ２に関する符号量制御に関する技術が特許文献１および２に開示されている。
【特許文献１】特開２００１−２８７５３号公報「動画像符号化装置及びその方法」
【特許文献２】特開２００１−２３８２１５号公報「動画像符号化装置及びその方法」
【発明の開示】
【０００５】
本発明の課題は、簡素な構成でリアルタイムにデータを転送することを可能としたデータ転送装置およびデータ転送方法を提供することである。
本発明の第１態様は、入力データの種類を基に、１サイクルにおいて転送されるべき前記入力データの処理単位数およびその処理単位数に対応するデータ量を算出する１サイクル転送量算出部と、前記入力データのうち、前記処理単位数分のデータを格納することが可能なバッファ部と、前記算出された処理単位数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加部と、
前記無効なデータが追加されたデータを基に、パケットを生成して送信するパケット生成部を備えるデータ転送装置である。
【０００６】
本発明の第２態様の画像データ転送装置は、画像データを圧縮して転送する画像データ転送装置において、前記画像データの種類を基に、１サイクルにおいて転送される前記画像データのライン数およびそのライン数に対応するデータ量を算出する１サイクル転送量算出部と、可変長符号化によって処理された前記画像データのうち、前記ライン数分のデータを格納することが可能なバッファ部と、前記算出されたライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加部と、前記無効なデータが追加されたデータを基に、パケットを生成して送信するパケット生成部を備えることを特徴とする画像データ転送装置である。
【０００７】
ここで、１サイクル転送量算出部によって、１サイクルにおいて転送されるライン数およびそのライン数に対応するデータ量が算出されるとともに、バッファ部に格納されたそのライン数に対応するデータに対して、そのデータ量が、算出されたデータ量に一致するように、無効データ追加部によって無効なデータが追加される。これにより、可変長符号化によって処理されたデータに対しても、パケットサイズを固定長とすることが可能となり、例えば、ＩＥＥＥ１３９４インターフェイス等の安価なシステムでアイソクロナス転送を行う場合に要求される固定ビットレートの規定が満たされることとなり、簡素な構成でリアルタイムに画像データを転送することができる。
【０００８】
本発明の第２態様の画像データ転送装置は、画像データを圧縮して転送する画像データ転送装置において、前記画像データの種類を基に、１サイクルにおいて転送される前記画像データのライン数、固定長にするライン数、および、その固定長にするライン数に対応するデータ量を算出する１サイクル転送量算出部と、可変長符号化によって処理された前記画像データのうち、前記固定長にするライン数分のデータを格納することが可能なバッファ部と、前記算出された固定長にするライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加部と、前記無効なデータが追加されたデータを先頭から前記１サイクルにおいて転送される前記画像データのライン数に対応するデータ量ずつ切り出して、その切り出したデータ量毎にパケットを生成して送信するパケット生成部を備えることを特徴とする画像データ転送装置である。
【０００９】
第３態様の画像データ転送装置においては、例えば、前記固定長にするライン数を、前記１サイクルにおいて転送される前記画像データのライン数以上に設定することで、より多いライン数に対してそのデータ長が固定長になるようすればよく、システム内の符号化量監視部による符号化量の監視が一層容易に行える。
【００１０】
本発明の第３態様の画像データ転送方法は、画像データを圧縮して転送する画像データ転送方法において、前記画像データの種類を基に、１サイクルにおいて転送される前記画像データのライン数およびそのライン数に対応するデータ量を算出する１サイクル転送量算出ステップと、可変長符号化によって処理された前記画像データのうち、前記ライン数分のデータをバッファ部に格納するステップと、前記算出されたライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加ステップと、前記無効なデータが追加されたデータを基に、パケットを生成して送信するステップを備えることを特徴とする画像データ転送方法である。
【００１１】
本発明の画像データ転送方法は、画像データを圧縮して転送する画像データ転送方法において、前記画像データの種類を基に、１サイクルにおいて転送される前記画像データのライン数、固定長にするライン数、および、その固定長にするライン数に対応するデータ量を算出する１サイクル転送量算出ステップと、可変長符号化によって処理された前記画像データのうち、前記固定長にするライン数分のデータをバッファ部に格納するステップと、前記算出された固定長にするライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加ステップと、前記無効なデータが追加されたデータを先頭から前記１サイクルにおいて転送される前記画像データのライン数に対応するデータ量ずつ切り出して、その切り出したデータ量毎にパケットを生成して送信するステップを備えることを特徴とする画像データ転送方法である。
【００１２】
本発明によれば、可変長符号化によって処理されたデータに対しても、パケットサイズを固定長とすることが可能となり、アイソクロナス転送を行う場合に要求される固定ビットレートの規定が満たされることとなり、簡素な構成でリアルタイムにデータを転送することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の適用例としての車載用の画像データの転送システムを示す図である。
【図２】本発明の一実施形態のデータ転送装置の構成を示すブロック図である。
【図３】装置（チャネル）毎の画像データのサイズ、転送レート、圧縮率、１サイクル転送量を示した図である。
【図４】図２の変形例（その１）を示す図である。
【図５】１サイクル転送量算出部が保持する表の一例である。
【図６Ａ】可変長符号化としてハフマン符号化を採用した場合において、ピクセルをＲＧＢで表現した場合の符号化テーブルを示す図である。
【図６Ｂ】可変長符号化としてハフマン符号化を採用した場合において、ピクセルをＹＵＶで表現した場合の符号化テーブルを示す図である。
【図７】無効なデータをデータ内に分散させて、そのデータを固定長にする場合の例を説明する図である。
【図８】無効なデータを末尾に追加して、そのデータを固定長にする場合の例を説明する図である。
【図９】本発明の原理を示す図である。
【図１０】データのイメージを示す図である。
【図１１】パケット構成を示す図である。
【図１２】圧縮処理を行う場合の構成を示すブロック図である。
【図１３】実施例７のタームチャートを示した図である。
【図１４】実施例７のフローを示す図である。
【図１５】実施例８、９のタームチャートを示した図である。
【図１６】実施例８のフローを示す図である。
【図１７】実施例９のフローを示す図である。
【図１８】実施例１０のタームチャートを示した図である。
【図１９】実施例１０のフローを示す図である。
【図２０】ＬＳＩの送受信の構成を示した図である。
【図２１】実施例１１の受信フローを示す図であ。
【図２２】本発明のフローを示す図である。
【図２３】本発明のフローを示した図である。
【図２４】制御プログラムをコンピュータで読み取ることの可能な記録媒体の構成例を示す図である。
【図２５】Isochronousパケットの詳細な構成図である。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
（原理説明）
図９に本発明の原理図を示す。図９に示すシステムは、前処理部９１、前処理後バッファ９２、固定長パケット生成処理部９３から構成されている。【００１５】
前処理部９１は、入力データを取得し決められた処理を行い前処理後バッファ９２に処理されたデータを格納する。入力データは可変長のデータでも固定長のデータであってもかまわない。前処理部９１は、所定の値(例えば４)に示される単位(画像の場合はライン)に基づいて処理を行う。所定の値とは後述する固定長パケット生成処理部９３の１サイクル転送量算出処理部９４で算出され、周期的に出力される固定長の１パケットの１サイクルに重畳させることができるデータ転送量に基づいて求められる値であり、「１サイクルあたりのデータ転送量÷前処理後バッファ(または入力データ)に格納される単位(画像の場合はライン)毎の平均データ量」により求められる商に基づいた値とする。【００１６】
１サイクルあたりに転送可能なデータ量に基づいて、前処理部９１での処理単位を設定することで、前処理部での処理と転送レイヤとの処理との親和性を高めることが可能になる。【００１７】
なお、所定の値は、１サイクル転送量算出処理部９４により算出されるものではなく、予め設定された値を用いることもできる。【００１８】
また、前処理においては、運用されるシステム上で必要とされる処理を適宜適用することが可能であり、前処理部９１は無くてもよい。その場合は、データ読出部９５では入力データを直接読み出すことになる。【００１９】
前処理後バッファ９２には、ある塊に分けられる可変長のデータ(画像でいえば１ライン毎のデータ)が格納される。例えば、図１０に示すように７２０×４８０の画像の１ライン分を１塊として、前記所定の値（この例では４）ごとにまとめて格納する。【００２０】
固定長パケット生成処理部９３は、１サイクル転送量算出処理部９４、データ読出部９５、パケット生成部９６、転送量テーブル９７から構成されている。
データ読出部９５により前処理後バッファ９２に格納されたデータを取得する。１サイクル転送量算出処理部９４では、転送量テーブル９７からパケット転送時に必要な情報（例えば複数の画像処理装置（入力データを生成する装置）がある場合は装置番号等）を取得したり、入力データに応じて求められる、１サイクル（１パケット）で転送すべきデータ量や、該データ量に応じた前述の所定の値を算出したりする。この際、転送量テーブル９７を利用せずに、処理に必要なデータの入力を処理の都度受けて算出することも可能である。処理高速化のためには、転送量テーブル９７に予め入力データの種別とそれに応じた１サイクル転送量などを設定しておくことが望ましい。【００２１】
パケット生成部９６は、例えば図１０であれば４ライン分のデータ（Ａ〜Ｄ）の後に、図１１に示すようにＥＯＦ（End Of File）と無効なデータ（例えば「０」詰め）を付加して固定長データにして転送する。【００２２】
次に、画像処理装置のデータ送信部として本発明を適用した場合であって、前処理部９１を圧縮処理部１２１とした例を図１２に示す。画像データが圧縮処理部１２１に入力され、量子化処理部１２２、符号化処理部１２３、符号量監視部１２４などにより圧縮データが生成される。その後圧縮後データ用バッファ１２５に図１２に示すように、例えば前述の所定の値が４であれば、ライン１圧縮データ〜ライン４圧縮データを１塊として格納する。その後図９の転送レイヤにおける動作と同様にライン１圧縮データ〜ライン４圧縮データにＥＯＦと「０」を付加して固定長のパケットデータを出力する。【００２３】
本処理がソフトウェアで実現された場合、前処理部９１または圧縮処理部１２１と固定長パケット生成処理部９３とは、同一のコンピュータ上に搭載されても、異なるコンピュータに分散して搭載されてもかまわない。【００２４】
なお、本発明の処理対象は画像データのみでなく、例えば、音声データ等であってもよい。以下の実施例は画像データを処理対象として述べているので、処理単位の説明としてラインを使用しているが、音声データであれば、例えば単位時間あたりのデータ（例えば１秒分の音声データ）を処理単位として扱うことができる。【００２５】
（実施例１）
（構成説明）
本発明は、画像データの転送に対してリアルタイム性が要求される場合に、その要求を簡素な構成で安価に実現するシステム（データ転送装置）を提供するものである。【００２６】
このようなシステムとしては、図１に示すような車載用の画像データの転送システムがある。
図１において、カメラ１１は、道路の脇や後方等の運転者の視野の死角となりやすい場所の画像を取り込んで、メインディスプレイ装置１５及びそのメインディスプレイ装置１５とバス１６を介して接続された後席のディスプレイ装置１７に出力する。【００２７】
ＤＶＤ（Digital Versatile Disk）プレーヤー１２は、ＤＶＤを再生する。地上波ディジタル放送用チューナー１３は、地上波を選局して映像信号に変換するとともに、その映像信号をディジタルの画像データに変換してメインディスプレイ装置１５及び後席のディスプレイ装置１７に出力する。カーナビゲーション装置１４は、車の現在位置を示す情報を所定の間隔で更新してメインディスプレイ装置１５及び後席のディスプレイ装置１７に出力する。【００２８】
本実施形態においては、上記説明したカメラ１１、ＤＶＤプレーヤー１２、地上波ディジタル放送用チューナー１３、カーナビゲーション装置１４等の画像処理装置と、メインディスプレイ装置１５及び後席のディスプレイ装置１７等の画像処理装置を接続するために安価にリアルタイムな転送を実現できるインターフェイスとしてＩＥＥＥ（Institute of Electrical and Electronics Engineers）１３９４インターフェイスを用い説明をする。ここで、ＩＥＥＥ１３９４規格では、パケットの転送プロセスとして、アイソクロナス（Isochronous）転送とアシンクロナス（Asynchronous）転送を規定している。アイソクロナス転送では、画像データがリアルタイムに送信されることを優先させ、転送時にパケットに含まれる実データのエラーチェックを省略する。アイソクロナスパケットの実データ領域には、各チャネル（各装置）の画像データの一部が含まれる。一方、アシンクロナス転送は、制御プロトコルの一種であり、転送先からのアクノリッジ（応答）を必要とするものである。ＩＥＥＥ１３９４規格では、例えば、アイソクロナスパケットのパケットサイズは固定長である必要がある。これは、それぞれのノードがアービタ（調停回路）にアイソクロナス転送を開始してよいかを問い合わせる際に、その問い合わせの中にビットレート（固定値）を入れておくことが規定されているためである。【００２９】
なお、ＩＥＥＥ１３９４規格におけるデータ転送の１サイクルは１２５μｓｅｃであり、その１サイクル内で、各チャネル（各装置）のアイソクロナスパケット、アシンクロナスパケットの順にデータを転送できる。１サイクルで転送可能なアイソクロナスパケット内の実データのバイト数は、ＩＥＥＥ１３９４規格のより細かい規定に応じて異なる。すなわち、各チャネルのアイソクロナスパケットに含まれる実データの和が、Ｓ１００、Ｓ２００、Ｓ４００、Ｓ８００という規定に対して、それぞれ、１Ｋバイト、２Ｋバイト、４Ｋバイト、８Ｋバイト以下であれば、それらの各チャネルのアイソクロナスパケットは１サイクルで転送可能である。【００３０】
なお、本実施例ではＩＥＥＥ１３９４を用いて説明をするが、当然アイソクロナス転送と同等の機能を有するデータ転送方式を備えた装置であれば限定するものではない。例えばＵＳＢ（Universal Serial Bus）などでもよい。また、画像処理装置に限らず装置に可変長または固定長のデータ（例えばデータとして画像データ、音声データ等）を入力し、固定長データを出力する装置であれば特に限定をするものではない。【００３１】
次に、図２は本発明の一実施形態のデータ転送装置の構成を示すブロック図である。図２に示すブロック図は、図１で説明したカメラ１１、ＤＶＤプレーヤー１２、地上波ディジタル放送用チューナー１３、カーナビゲーション装置１４等の各画像処理装置の送信部（圧縮部（圧縮レイヤ）、転送部（転送レイヤ）から構成される。以下、送信部をデータ転送装置２０とする）を示している。なお、データ転送装置２０から送信データ（本例では画像データ）を受信して表示するメインディスプレイ装置１５及び後席のディスプレイ装置１７等の受信部については後述する。【００３２】
図２においてデータ転送装置２０は、前処理部２１、量子化部２２、符号化部２３、量子化テーブル作成部２４、量子化テーブル２５ａ，２５ｂ，２５ｃ、符号化テーブル作成部２６、符号化テーブル２７ａ、２７ｂ、２７ｃ、第１バッファ２８、第２バッファ２９、スイッチ部３４、３５、等から構成される圧縮部と、アクセス制御部３１、書き込み先切替タイミング生成部３２、１サイクル転送量算出部３３、１ライン平均データ量・読み出しデータ量算出部３７、無効データ追加部３８、パケット生成部３９等から構成される転送部から構成されている。【００３３】
圧縮部について説明する。
前処理部２１は、画像データが持つ冗長性を２次元予測差分パルス符号変調（２次元予測ＤＰＣＭ（Differential Pulse Code Modulation））、１次元予測ＤＰＣＭ、１次元離散コサイン変換（１次元ＤＣＴ（Discrete Cosine Transform））等の前処理を行うことによって削減する。【００３４】
量子化部２２は、前処理の結果に対して、さらに粗い量子化を行う。、符号化部２３は、さらに粗く量子化されたデータに対して可変長符号化（Wyle符号化、Golomb符号化、Huffman符号化、Run Length符号化、等）を行う。【００３５】
量子化テーブル作成部２４は、前処理の結果として出力されやすいビット列（出力されるビット列の傾向）を画像処理装置（１１〜１４：チャネル）ごとに保持するとともに、処理する画像データのチャネルを基に、適合しそうな量子化テーブルを数テーブル（図では量子化テーブル２５ａ，２５ｂ，２５ｃが作成されている）作成する。ここで通常、上記量子化テーブル２５ａ，２５ｂ，２５ｃは動作開始前に生成されている。しかし、画像処理装置の運用時に動的に量子化テーブル２５ａ，２５ｂ，２５ｃを運用に問題ないように量子化テーブル作成部２４によって生成することは可能である。【００３６】
符号化テーブル作成部２６は、さらに粗い量子化の結果として出力されやすいビット列（出力されるビット列の傾向）を画像処理装置（チャネル）ごとに保持するとともに、処理する画像データのチャネルを基に、適合しそうな符号化テーブルを数テーブル（図では符号化テーブル２７ａ、２７ｂ、２７ｃが作成されている）作成する。ここで、上記符号化テーブル２７ａ、２７ｂ、２７ｃにおいても動作開始前に符号化テーブル作成部２６によって生成されている。しかし、画像処理装置の運用時に動的に符号化テーブル２７ａ、２７ｂ、２７ｃを運用に問題ないように生成することは可能である。【００３７】
第１バッファ２８、第２バッファ２９は、例えばＦＩＦＯ（First-In First-Out）で構成され、符号化部２３からのデータを保存する。
符号化量監視部３６は、第１バッファ２８または第２バッファ２９内に順次格納される符号化データの全体の符号量を監視し、符号量が大きすぎる場合は、その符号量を平均的に短くする符号化テーブルまたは量子化テーブルを選択する指示をスイッチ部３４または３５に出力し、符号量が少なすぎる場合は、その符号量を増やす符号化テーブルまたは量子化テーブルを選択する指示をスイッチ部３４または３５に出力する。【００３８】
上記圧縮部（前処理部を含んでも良い）は、図９の前処理部９１または図１２の圧縮レイヤに相当する。また、第１バッファ２８、第２バッファ２９は、図９の前処理後バッファ９２または図１２の圧縮後データ用バッファ１２５に相当する。【００３９】
次に、転送部について説明する。
アクセス制御部３１は、第１バッファ２８および第２バッファ２９に対する符号化部２３からのデータのアクセス（読み書き）を制御する。ここで、本実施例ではバッファは２段バッファ構造であるが１つのバッファであってもよい。２段バッファの場合、書き込み先切替タイミング生成部３２により、符号化部２３からのデータ書き込みを許可するバッファを第１バッファ２８から第２バッファ２９へ、または、第２バッファ２９から第１バッファ２８へ切り替えるタイミングを示す切替信号（例えばクロック信号）を生成する。なお、ひとつのバッファの場合においてもデータページを区切るなどすることで切替をすることはできる。【００４０】
１サイクル転送量算出部３３は、１サイクルで転送する必要があるライン数を算出するとともに、そのライン数に対応するバイト数を算出する。
１ライン平均データ量・読み出しデータ量算出部３７は、第１バッファ２８または第２バッファ２９に今回バッファリングされたデータ量を取得して、無効なデータを分散させる目安としての１ライン平均バイト数、および、第１バッファ２８または第２バッファ２９から読み出すデータのバイト数を算出する。【００４１】
無効データ追加部３８は、第１バッファ２８または第２バッファ２９から出力されるデータに対して必要に応じて、無効なデータをＥＯＦ（End of File）の後に追加する。パディングとして無効ビット（例えば「０」）、スタッフビット）を追加する（詰める）。【００４２】
パケット生成部３９は、無効なデータが追加されたデータ、または、第１バッファ２８、第２バッファ２９から出力されたデータを基に、アイソクロナスパケットを生成する。
上記転送部は、図９または図１２の転送レイヤに相当する。【００４３】
本発明では、符号化部２３による可変長符号化の結果として、入力された画像データの各ラインの符号化結果のデータ長にばらつきが生じるが、無効データを追加することで、複数のラインで符号化結果が固定長になるようにしている。これにより、それぞれのサイクルで、転送されるデータに固定長を要求するような規格を満たすことができ、簡素な構成にてリアルタイムな転送を実現できる。【００４４】
なお、符号化部２３によって可変長符号化されたデータは、第１バッファ２８および第２バッファ２９に対して出力される。しかし、アクセス制御部３１は、書き込み先切替タイミング生成部３２からの信号を基に、第１バッファ２８および第２バッファ２９については、いずれか一方にデータが書き込めるように制御している。このため、可変長符号化されたデータは、第１バッファ２８および第２バッファ２９のいずれか一方に書き込まれる。【００４５】
（動作説明）
以下では、転送部（符号化部２３の後段）の処理について詳細に説明する。【００４６】
図２に示す１サイクル転送量算出部３３の１サイクルの転送量を算出する方法について説明する。
図３は、画像処理装置（カメラ１１、ＤＶＤプレーヤー１２、地上波ディジタル放送用チューナー１３、カーナビゲーション装置１４等：チャネル）毎の画像データのサイズ、転送レート、圧縮率、１サイクル転送量を示した図である。【００４７】
図３において、項番は、装置種別に対応している。例えば、項番「１」は、カーナビゲーション装置からの画像データ、項番「２」は、ＤＶＤプレーヤーからの画像データに対応している。各装置はいずれかのチャネルに割り当てられることを考慮すると、項番はチャネル番号に対応しているということもできる。【００４８】
また、横サイズは、画像データの１ラインのピクセル数、バイト／ピクセルは、１ピクセル当たりのバイト数、縦サイズは、画像データのライン数、転送レートは、１秒間に転送しなければならない画像データ（フレーム）数、圧縮率は、前処理から可変長符号化までの処理によって達成されることが保障される圧縮率（所望とする圧縮率）である。【００４９】
また、１サイクル転送ライン数は、各チャネルの画像データが、転送レートの条件等の仕様を満たすために、ＩＥＥＥ１３９４の１サイクル（１２５μｓｅｃ）で転送しなければならないライン数（整数値に切り上げた値を示している。括弧内は切り上げを行わない場合の値である）を示している。１サイクル転送バイト数は、このライン数に対応するバイト数である。【００５０】
以下に、項番「１」（カーナビゲーション装置）の場合を例にとり、１サイクル転送ライン数、１サイクル転送バイト数の算出方法を説明する。
まず、項番「１」では、転送レートは６０（フレーム／ｓｅｃ）であり、１フレーム内には、４８０ラインが含まれている。よって、１秒間に転送しなければならないライン数は、６０（フレーム／ｓｅｃ）×４８０（ライン／フレーム）である。【００５１】
このライン数を各サイクルに等分すると、
６０（フレーム／ｓｅｃ）×４８０（ライン／フレーム）×（１２５μｓｅｃ／１ｓｅｃ）＝３．６ライン
となる。すなわち、１サイクルに３．６ラインが平均して転送されるようにすれば、転送レートの条件を満たすことができる。例えば、１サイクルで、複数のラインを区切りよく転送する場合は（その必要は必ずしもないが）、４ラインをこの場合、転送することになる。【００５２】
項番「１」で４ラインを転送する場合においては、１ラインが８００バイト、各ピクセルが３バイト（１画素：Ｒ、Ｇ、Ｂ）、圧縮率が（１／３）であるので、この４ラインに対応するバイト数は、
８００（バイトライン）×４（ライン）×３×（１／３）＝３２００バイトとなる。【００５３】
すなわち、上述のＳ１００〜Ｓ１６００のうちどの規定を使用するか、１サイクルで何チャネルのデータのアイソクロナスパケットを転送するかに応じて、様々な組み合わせが可能である。【００５４】
例えば、Ｓ４００規定は、各チャネルの和に対する１サイクルの転送バイト数の上限が４Ｋバイトである。このＳ４００規定を使用して、カーナビゲーション装置（項番「１」）とＤＶＤプレーヤー（項番「２」）からの画像データをともに１つのサイクルで転送する場合、１サイクルで転送する必要があるバイト数は、それぞれ３２００バイト、９６０バイトであるので、その和は、３２００＋９６０＝４１６０バイトとなり、４Ｋ（４０９６）バイトを超えてしまう。【００５５】
このような場合、アービタ（調停回路）によって、使用する規定に対応した１サイクルでの転送バイト数の上限が満たされるように、バスの使用権が各ノードに与えられる。
また、１サイクル転送量算出部３３は、装置種別（カーナビゲーション装置、地上波ディジタル放送用チューナー、ＤＶＤプレーヤー等）またはチャネル番号を入力して、その装置種別またはチャネル番号に対応する、１サイクルで転送する必要があるライン数およびバイト数を算出（取得）する。【００５６】
なお、このバイト数は、例えば、上述の計算では、３．６ラインに相当するバイト数（２８８０バイト）であるが、本実施形態では、例えば、区切りがよい４ラインに相当するバイト数（３２００バイト）を転送する必要があるバイト数として用いる。【００５７】
次に、書き込み先切替タイミング生成部３２は、１サイクル転送量算出部３３によって生成されたライン数を信号線（１）を介して入力するとともに、それぞれのラインの先頭位置を示す信号（例えばクロック）であるＨＳＹＮＣ(水平同期信号)信号を入力して、そのＨＳＹＮＣ(水平同期信号)信号をそのライン数に達するまでカウントアップする。そのライン数まで達した位置を示す信号（切替タイミングを示すクロック）が信号線（２）を介して、アクセス制御部３１に出力される。【００５８】
アクセス制御部３１は、そのクロック信号を基に、符号化部２３からのデータ書き込みを許可するバッファを切り替える。
１ライン平均データ量・読み出しデータ量算出部３７は、１サイクル転送量算出部３３によって算出された１サイクルで転送しなければならないライン数およびバイト数を信号線（３）を介して入力するとともに、書き込み先切替タイミング生成部３２によって算出された切替タイミングを示すクロックを信号線（２）を介して入力する。【００５９】
切替タイミングを示すクロックが、１ライン平均データ量・読み出しデータ量算出部３７に入力されると、１ライン平均データ量・読み出しデータ量算出部３７は、その切替タイミングによって符号化部２３からのデータ書き込みが無効となったバッファ（第１バッファ２８、第２バッファ２９のいずれか一方のバッファ）に格納された、今回のサイクルで転送するデータのバイト数を取得する。【００６０】
そして、１ライン平均データ量・読み出しデータ量算出部３７は、１サイクル転送量算出部３３より、１サイクルで転送しなければならないライン数分のデータをもらい、１ライン当たりの平均バイト数を算出する。また、複数サイクルで固定長の複数ライン分のデータを転送する場合、バッファから読み出すデータサイズに余りが生じる場合（複数サイクルで固定長の場合）、その分に無効なデータをいれる必要があるので、その余りのビット数を計算する。無効なデータの入れ方にはいくつかのパターンが考えられる。後述の図１５のデータ１では、最後のサイクルに無効なデータを挿入し、データ２では、複数サイクルで均等に無効なデータを分散させる。【００６１】
また、１サイクルで固定長の複数ライン分のデータが入る場合もある（図１８）。この場合は、１サイクル中に複数の無効なデータが入る。【００６２】
バッファから読み出すデータ量（バイト数）を信号線（４）を介して入力したアクセス制御部３１は、その時点では符号化部２３からの書き込みが許可されていないバッファ、すなわち、今回転送するデータがバッファリングされたバッファ（第１バッファ２８、第２バッファ２９のいずれか）に対し、その先頭からそのバイト数だけデータを出力するように指示する。【００６３】
その指示にしたがって、バッファからそのバイト数のデータが出力されると、そのデータは無効データ追加部３８に入力される。また、無効データ追加部３８は、１ライン当たりの平均バイト数を信号線（５）を介して入力している。【００６４】
無効データ追加部３８は、圧縮レイヤで固定長にすべきデータ量に対して、バッファからの規定のライン数分のデータを入れて余りが生じた分だけ、無効データ（そのピクセルの値が有効でないことを示す符号が含まれるデータ、すなわち無効なデータ）を追加する。そして、無効データが追加されたデータをパケット生成部３９に出力する。  パケット生成部３９は、１サイクル転送量算出部３３によって算出された、１サイクルに転送しなければならないライン数を信号線（６）を介して入力している。【００６５】
パケット生成部３９は、無効データが追加されたデータを無効データ追加部３８から受信した回数をカウントアップし、その回数がその１サイクルに転送しなければならないライン数に達した場合に、そのライン数だけ受信したデータを連結して実データを生成するとともに、その実データにヘッダ部を追加してアイソクロナスパケットを生成して伝送路に送出する。【００６６】
次に、コンピュータなどで処理する場合についてフロー図２２、２３を用いて説明する。【００６７】
図２２の処理では、１サイクルにおいて転送されるべきライン数と１パケットに含めるライン数が等しい場合の処理を説明する。１サイクルにおいて転送されるべきライン数と１パケットに含めるライン数（固定長にするライン数）は等しくなくても良く、等しくない場合の処理を図２３に示す。【００６８】
図２２のフロー図は、１サイクルにおいて転送されるべきライン数と１パケットに含めるライン数が等しい場合の処理を説明する。図１３に対応する。ステップＳ２２１では、画像データの種類を基に、１サイクルにおいて転送されるべき画像データのライン数およびそのライン数に対応するデータ量（１サイクルにおいて転送されるべきデータ量）を算出する。【００６９】
ステップＳ２２２では、可変長符号化（もしくは他の前処理）によって処理された画像データのうち、１サイクルにおいて転送されるべきライン数分のデータをバッファ部（メモリ）に格納する。【００７０】
ステップＳ２２３では、算出されたライン数に対応するデータ量と、バッファ部に格納されたデータとの差を算出するとともに、バッファ部に格納されたデータの方が小さい場合にはその差だけ、バッファ部に格納されたデータに無効なデータを追加する。なお、バッファ部に格納されたデータの方が大きい場合は、図２３の場合となる。【００７１】
ステップＳ２２４では、無効データが追加されたデータを基に、パケットを生成して送信する。
なお、ステップＳ２２２でバッファに格納するデータは、１サイクルにおいて転送されるべきライン数ではなく、予め設定された他の値のライン数分とすることも可能である。図２３に示すフロー図は、１サイクル転送ライン数より固定長にするライン数のほうが大きい場合を示している。図１５のデータ１、データ２に対応する。まずは、データ１について説明する。【００７２】
図２３に示すフロー図のステップＳ２３１では、画像データの種類を基に、１サイクルにおいて転送されるべき画像データのライン数、固定長にするライン数(１パケットに含めるライン数)、および、その固定長にするライン数に対応するデータ量を算出する。【００７３】
ステップＳ２３２では、可変長符号化（もしくは他の前処理）によって処理された画像データのうち、固定長にするライン数分のデータをバッファ部（メモリ）に格納する。
ステップＳ２３３では、算出された固定長にするライン数に対応するデータ量と、バッファ部に格納されたデータとの差を算出するとともに、その差だけ、バッファ部に格納されたデータに無効なデータを追加する。【００７４】
ステップＳ２３４では、無効データが追加されたデータを先頭から１サイクルにおいて転送される画像データのライン数に対応するデータ量ずつ切り出して、その切り出したデータ量毎にパケットを生成して送信する。【００７５】
データ２では、Ｓ２３３とＳ２３４が若干異なる。
ステップＳ２３１では、画像データの種類を基に、１サイクルにおいて転送されるべき画像データのライン数、固定長にするライン数(１パケットに含めるライン数)、および、その固定長にするライン数に対応するデータ量を算出する。【００７６】
ステップＳ２３２では、可変長符号化（もしくは他の前処理）によって処理された画像データのうち、固定長にするライン数分のデータをバッファ部（メモリ）に格納する。
ステップＳ２３３では、算出された固定長にするライン数に対応するデータ量と、バッファ部に格納されたデータとの差を算出するとともに、その差だけ、バッファ部に格納されたデータに無効なデータを、複数サイクルで無効データを均等に配置できるように、データ量を計算しておく。【００７７】
ステップＳ２３４では、バッファから１サイクル毎において転送される画像データのライン数に対応するデータ量ずつ切り出して、その切り出したデータ量毎に均等に配置する無効データを付加してパケットを複数個分生成して送信する。フローは省略する。【００７８】
（実施例２）
次に、実施例２の説明をする。実施例２は実施例１の変形例である。【００７９】
上記実施例１のヘッダ部には、画像データの各ラインの読み出しタイミングを決めるＨＳＹＮＣ(水平同期信号)信号の位置を示す情報、画像データのサイズ（ライン数、１ライン当たりのピクセル数）等が含まれる。【００８０】
受信側のノードで、データを復号する場合、無効データが常に一定の割合で含まれていることが好ましい。このため、以上の説明では、無効データがアイソクロナスパケットの実データ内に適度に分散される場合を扱った。【００８１】
しかし、無効データのアイソクロナスパケットの実データの末尾や先頭の１箇所に追加することも可能である。
その場合、図４に示すように、図２と比較して、１ライン平均データ量・読み出しデータ量算出部３７が、無効データ書き込み部４１と、読み出し指示部４２に置き換わり、無効データ追加部３８がなくなる。【００８２】
図４の無効データ書き込み部４１は、信号線（２）を介して書き込み先のバッファが切り替わるタイミングを受け取るとともに、信号線（７）を介して１サイクルに転送しなければならないバイト数を受け取る。そして、無効データ書き込み部４１は、符号化部２３からの書き込みが不可となったバッファに格納されているデータのバイト数を取得し、１サイクルに転送しなければならないバイト数と、その取得したバイト数との差をとり、その差だけ、無効なデータ（無効バイト）をバッファに格納されているデータの末尾に追加する。【００８３】
読み出し指示部４２は、１サイクル転送量算出部３３によって算出された１サイクルで転送しなければならないバイト数を信号線（７）を介して入力する。
そして、無効データ書き込み部による無効データのバッファへの書き込みが終了すると、読み出し指示部４２は、符号化部２３からの書き込みが無効となっているバッファ（第１バッファ２８、第２バッファ２９のいずれか一方のバッファ）に格納された、今回のサイクルで転送するデータを、先頭から、その１サイクルで転送しなければならないバイト数だけ読み出す指示をアクセス制御部３１に出力する。【００８４】
パケット生成部４３は、前段のバッファからデータを受信する毎に、そのデータを実データに持つアイソクロナスパケットを生成して、伝送路に送出する。
なお、以上では、１サイクルで最低限転送しなければならないライン数（バイト数）で固定長にする場合を説明した。しかし、一般には、ライン数が多ければ多いほど、より長いバイト数で固定長にすればよくなり、符号量監視部３６による制御が一層容易になる。【００８５】
（実施例３）
以下では、１サイクルで転送しなければならないライン数を超えたライン数で固定長にする場合を扱う。この場合も、上記の説明同様、無効データをアイソクロナスパケットの実データ領域に適度に分散する場合と、無効データをアイソクロナスパケットの実データ領域の先頭または末尾に追加する場合を考える。【００８６】
まず、１サイクルで転送しなければならないライン数を超えたライン数で固定長にする場合において、無効データを適度に分散する場合、図２の１サイクル転送量算出部３３は、装置種別またはチャネル番号を入力すると、その装置種別またはチャネル番号に対応する、１サイクルで転送しなければならないライン数、固定長にするライン数、固定長にするライン数に対応するバイト数を算出（取得）する。【００８７】
図２の書き込み先切替タイミング生成部３２は、固定長にするライン数と、ＨＳＹＮＣ(水平同期信号)信号を入力して、符号化部２３からのデータ書き込みを許可するバッファ（第１バッファ２８、第２バッファ２９のいずれか）を切り替える。すなわち、この場合、第１バッファ２８および第２バッファ２９はいずれも、固定長にするライン数に対応するバイト数分の可変長符号化されたデータを格納可能なＦＩＦＯとなる。【００８８】
１ライン平均データ量・読み出しデータ量算出部３７は、１サイクル転送量算出部３３によって算出された固定長にするライン数およびそのライン数に対応するバイト数を信号線（３）を介して入力するとともに、書き込み先切替タイミング生成部３２によって算出された切替タイミングを示すクロックを信号線（２）を介して入力する。【００８９】
切替タイミングを示すクロックが、１ライン平均データ量・読み出しデータ量算出部３７に入力されると、１ライン平均データ量・読み出しデータ量算出部３７は、その切替タイミングによって符号化部２３からのデータ書き込みが無効となったバッファ（第１バッファ２８、第２バッファ２９のいずれか一方のバッファ）に格納された、今回のサイクルで転送するデータのバイト数を取得する。【００９０】
そして、１ライン平均データ量・読み出しデータ量算出部３７は、今回バッファから取得したバイト数を、固定長にするライン数で割ることによって、バッファから１回に読み出すデータ量を算出する。【００９１】
また、１ライン平均データ量・読み出しデータ量算出部３７は、固定長にするライン数に対応するバイト数を、その固定長にするライン数で割ることによって、無効データを今回バッファから取得したバイト数中に分散させる場合に目安として用いる、１ライン当たりの平均バイト数を算出する。【００９２】
バッファから読み出すデータ量（バイト数）を信号線（４）を介して入力したアクセス制御部３１は、その時点では符号化部２３からの書き込みが許可されていないバッファ、すなわち、今回転送するデータがバッファリングされたバッファ（第１バッファ２８、第２バッファ２９のいずれか）に対し、その先頭からそのバイト数だけデータを出力するように指示する。【００９３】
その指示にしたがって、バッファからそのバイト数のデータが出力されると、そのデータは無効データ追加部３８に入力される。また、無効データ追加部３８は、１ライン当たりの平均バイト数を信号線（５）を介して入力している。【００９４】
無効データ追加部３８は、１ライン当たりの平均バイト数と、バッファから取得したデータのバイト数との差をとり、その差だけ、無効データ（そのピクセルの値が有効でないことを示す符号が含まれるデータ）を追加する。そして、無効データが追加されたデータをパケット生成部３９に出力する。【００９５】
パケット生成部３９は、１サイクル転送量算出部３３によって算出された、１サイクルに転送しなければならないライン数を信号線（６）を介して入力している。
パケット生成部３９は、無効データが追加されたデータを無効データ追加部３８から受信した回数をカウントアップし、その回数がその１サイクルに転送しなければならないライン数に達した場合に、そのライン数だけ受信したデータを連結して実データを生成するとともに、その実データにヘッダ部を追加してアイソクロナスパケットを生成する。【００９６】
（実施例４）
続いて、１サイクルで転送しなければならないライン数を超えたライン数で固定長にする場合において、無効データを先頭または末尾に追加する場合を説明する。【００９７】
その場合、図４の無効データ書き込み部４１は、信号線（２）を介して符号化部２３からのデータ書き込み先のバッファが切り替わるタイミングを受け取るとともに、信号線（７）を介して固定長にするライン数に対応するバイト数を受け取る。そして、無効データ書き込み部４１は、符号化部２３からの書き込みが不可となったバッファに格納されているデータのバイト数を取得し、固定長にするライン数に対応するバイト数と、その取得したバイト数との差をとり、その差だけ、無効なデータ（無効バイト）をバッファに格納されているデータの末尾に追加する。【００９８】
読み出し指示部４２は、１サイクル転送量算出部３３によって算出された１サイクルで転送しなければならないライン数に対応するバイト数を信号線（７）を介して入力する。
そして、無効データ書き込み部４１による無効データのバッファへの書き込みが終了すると、読み出し指示部４２は、符号化部２３からの書き込みが無効となっているバッファ（第１バッファ２８、第２バッファ２９のいずれか一方のバッファ）に格納された、今回のサイクルで転送するデータを、先頭から、その１サイクルで転送しなければならないバイト数ずつ、読み出す指示をアクセス制御部３１に出力する。【００９９】
パケット生成部４３は、前段のバッファからデータを受信する毎に、そのデータを実データに持つアイソクロナスパケットを生成して、伝送路に送出する。  なお、以上の説明では、固定長にするライン数が１サイクルで転送しなければならないライン数と一致する場合と、固定長にするライン数が１サイクルで転送しなければならないライン数を超えた場合を扱った。しかし、固定長にするライン数が１サイクルで転送しなければならないライン数を超えるかどうかは装置（チャネル）によって変わるのが一般的である。その意味では、１サイクル転送量算出部３３は、通常、図５に示すような表を保持していて、その表に基づいて、１サイクルで転送する必要があるライン数、固定長にするライン数、固定長にするライン数に対応するバイト数を取得している。【０１００】
例えば、図５の項番「２」は、図３の項番「２」（ＤＶＤプレーヤーからの画像データ）に対応しているが、この項番では、１サイクルに転送しなければならないライン数＝２ラインであるため、そのライン数をそのまま固定長にするライン数に設定すると、符号量制御部３６による符号量制御がそれほど容易には行えなくなる。２ライン×４＝８ラインを固定長にするライン数に設定することで、符号量制御を容易に行えるようにしている。【０１０１】
以下に、可変長符号化としてハフマン（Huffman）符号化を採用した場合において、ピクセルをＲＧＢで表現した場合とＹＵＶで表現した場合の符号化テーブルを図６Ａおよび図６Ｂに示す。【０１０２】
図６Ａは、ピクセルをＲＧＢで表現した場合の、ハフマン方式の符号化テーブルを示す図である。
図６Ａに示すように、Ｒ成分に対応するＲ成分用符号化テーブル内に、有効でないデータ（無効データ）の出現確率ＰＫが示されている。無効データは、その出現確率に応じた冗長性を持つ符号に対応させられることになる。【０１０３】
受信側でアイソクロナスパケットの実データを復号する場合、Ｒ成分を参照して、それが無効データかどうかが判定される。
図６Ｂは、ピクセルをＹＵＶで表現した場合の、ハフマン方式の符号化テーブルを示す図である。【０１０４】
図６Ｂに示すように、輝度成分Ｙに対応する輝度成分Ｙ用符号化テーブル内に、有効でないデータ（無効データ）の出現確率ＰＫが示されている。無効データは、その出現確率に応じた冗長性を持つ符号に対応させられることになる。【０１０５】
受信側でアイソクロナスパケットの実データを復号する場合、輝度成分Ｙを参照して、それが無効データかどうかが判定される。【０１０６】
（実施例５）
図７では、無効データをデータ内に分散させて、そのデータを固定長にする場合が想定されている。この例では、１サイクルで転送しなければならないライン数＝固定長にするライン数＝４ラインに設定されている。図２の１サイクル転送量算出部３３は、４ラインの長さを３２００バイト（＝８００バイト×４）と算出している。【０１０７】
そのサイクルで、実際に可変長符号化の結果としてバッファに格納されたデータは、１ライン目が１２００バイト、２ライン目が６００バイト、３ライン目が７００バイト、４ライン目が６６０バイトである。その和は、３１６０バイトであり、固定長として設定した３２００バイトからは４０バイト不足している。【０１０８】
図２の１ライン平均データ量・読み出しデータ量算出部３７は、バッファから取得したデータのバイト数（３１６０バイト）をライン数（４ライン）で割ることで、１回にバッファから読み出すデータ量（７９０バイト）を算出する。【０１０９】
また、１ライン平均データ量・読み出しデータ量算出部３７は、１サイクルで転送しなければならないバイト数（３２００バイト）を、１サイクルで転送しなければならないライン数（４ライン）で割ることによって、無効データを今回バッファから取得したバイト数中に分散させる場合に目安として用いる、１ライン当たりの平均バイト数（８００バイト）を算出する。【０１１０】
無効データ追加部３８は、１ライン当たりの平均バイト数（８００バイト）と、前段のバッファから入力されたデータのバイト数（７９０バイト）との差をとり、その差だけ無効データをそのバッファから入力されたデータに追加して、パケット生成部３９に出力する。【０１１１】
（実施例６）
図８では、無効データを末尾に追加して、そのデータを固定長にする場合が想定されている。この例では、１サイクルで転送しなければならないライン数＝固定長にするライン数＝４ラインに設定されている。図４の１サイクル転送量算出部３３は、４ラインの長さを３２００バイト（＝８００バイト×４）と算出している。【０１１２】
そのサイクルで、実際に可変長符号化の結果としてバッファに格納されたデータは、１ライン目が１２００バイト、２ライン目が６００バイト、３ライン目が７００バイト、４ライン目が６６０バイトである。その和は、３１６０バイトであり、固定長として設定した３２００バイトからは４０バイト不足している。【０１１３】
図４の無効データ書き込み部４１は、バッファから取得したデータのバイト数（３１６０バイト）と、１サイクル転送量算出部３３から取得した４ラインの長さ（３２００バイト）との差をとり、その差（４０バイト）だけ、無効データをバッファ内のデータの末尾に追加する。【０１１４】
図４の読み出し指示部４２は、無効データ書き込み部４１による無効データの書き込みが終了すると、１サイクル転送量算出部３３によって算出された１サイクルで転送しなければならないライン数に対応するバイト数（３２００バイト）を、バッファから読み出す指示をアクセス制御部３１に出力する。【０１１５】
バッファから読み出されたデータは、図４のパケット生成部４３に出力される。
なお、以上の説明では、送信するアイソクロナスパケットのヘッダ部に、ラインの読み出しタイミングを決めるＨＳＹＮＣ信号の位置を示す情報を挿入して、受信側で、ラインの切れ目を判定するようにしていたが、他の方法を用いて、ラインの切れ目を判定することもできる。例えば、ラインの終わりを示すラインエンド信号を符号化したものを各ラインの最後に入れるようにしてもよい。この場合、そのラインエンド信号は、その出現確率に応じた冗長性を持つ符号に対応させられることになる。【０１１６】
また、以上では、１サイクル転送量算出部３３によって算出されたライン数が整数値である場合を説明したが、このライン数は端数（非整数値）であってもよい。【０１１７】
（実施例７）
実施例７では空パケットの転送について説明する。図１３はＩＥＥＥ１３９４の１サイクル時間１２５μｓｅｃにおいてデータ転送行うタイミングを示している。転送するライン数は、各チャネルの画像データが転送レートの条件等の仕様を満たすために１サイクル内で転送しなければならない。【０１１８】
例えば、カーナビゲーション装置の場合の、１サイクルで転送するライン数、バイト数を算出する。カーナビゲーション装置の１フレームは８００×４８０である。そして１秒間に転送するフレームのレートは６０（フレーム／ｓｅｃ）である。また、１フレーム内には、４８０ラインが含まれている。よって、１秒間に転送しなければならないライン数は、６０（フレーム／ｓｅｃ）×４８０（ライン／フレーム）である。このライン数を各サイクルに等分すると、６０（フレーム／ｓｅｃ）×４８０（ライン／フレーム）×（１２５μｓｅｃ／１ｓｅｃ）＝３．６ラインとなる。すなわち、１サイクルに３．６ラインが平均して転送されるようにすれば、転送レートの条件を満たすことができる。しかし、１サイクルで、複数のラインを区切りよく転送する場合は（その必要は必ずしもないが）、４ラインをこの場合、転送することになる。ここで、映像のブランク期間を考慮して、６０（フレーム／ｓｅｃ）×４８０（ライン／フレーム）×（１２５μｓｅｃ／１ｓｅｃ）×０．９とし、１割ほど余裕をみておく方法もある。【０１１９】
４ラインを転送する場合において、１ラインが８００バイト、各ピクセルが３バイト（１画素：Ｒ、Ｇ、Ｂ等）、圧縮率が（１／３）であるので、この４ラインに対応するバイト数は、８００（バイトライン）×４（ライン）×３×（１／３）＝３２００バイトとなる。【０１２０】
ところが、４ライン−３．６ライン＝０．４ライン分が不要となる。１フレームで考えると４８０ライン／４ライン＝１２０回の転送データのうち１２０回×０．４ライン＝４８ラインが１フレーム転送時の送りすぎるライン数になる。よって４８ライン／４＝１２回は空パケットを転送しなければならない。【０１２１】
図１３の（ａ）に空パケットの転送方法（１）を示す。この例では最後にまとめて１２回空パケットを転送している。しかし、最後にまとめて空パケットを転送すると、出力された空パケットを受けた側のメモリサイズをその分用意しておかなければならないなどの問題がある。【０１２２】
そこで、図１３に示す空パケットを分散する（ｂ）空パケットの転送方法（２）を用いることで問題を解決する。例えば、本例では１２回送る空パケットを分散させて転送する。【０１２３】
図１４に１フレームにおける空パケットの分散転送のフロー図を示す。
ステップＳ１４１では、１サイクル（例えば１２５μｓｅｃ）にどれくらいのデータ量を転送するべきかを計算する。上記カーナビの例では６０（フレーム／ｓｅｃ）×４８０（ライン／フレーム）×（１２５μｓｅｃ／１）＝３．６ラインとなる。【０１２４】
ステップＳ１４２では、１フレームあたりの転送パケット数を計算する。例えば、Ｘ＝（（４８０ライン／４ライン）＝１２０回を算出する（１フレームあたりの総パケット数：Ｘ）。【０１２５】
ステップＳ１４３では、その計算結果に基づいて端数（４ライン−３．６ライン＝０．４ライン）を計算する。その後空パケットの転送回数を算出する。例えば、Ｙ＝（（４８０ライン／４ライン）×（４ライン−３．６ライン））＝１２回を算出する（１フレームあたりの空パケット数：Ｙ）。【０１２６】
ステップＳ１４４では、転送回数ｉおよび空パケット挿入回数ｎをクリア（ｎ＝１）する。
ステップＳ１４５では、１サイクル分のデータを転送ごとにｉをインクリメントする（ｉ＝ｉ＋１）。【０１２７】
ステップＳ１４６ではｉ＝Ｘであるかを判断する。異なる場合はまだ１フレーム分のデータが転送さていないため空パケットを挿入するかを判断するステップＳ１４７に移行する。同じであれば１フレーム分のデータ転送が完了したと判断しこの処理を終了し、次のフレームの転送を開始する（このフローには示していない）。次のフレームに移行する場合はＶＳＹＮＣ信号（垂直同期信号）により同期を取り移行する。【０１２８】
ステップＳ１４７では、ｉ＝（Ｘ／Ｙ）×ｎであるかを判断する。つまり等間隔で空パケットを挿入するため、ｉが本例では１０回データを転送するたびに１つの空パケットを挿入する。またｎはＹより大きい値にはならない。同じであれば空パケットを挿入するためにステップＳ１４８に移行する。そうでなければＳ１４５に移行する。【０１２９】
ステップＳ１４８では、空パケットを挿入する指示をし、ｎの値をインクリメント（ｎ＝ｎ＋１）してＳ１４５に移行する。つまり、この指示により実データパケットを何回か送るごとに空パケットを送ることができる。【０１３０】
また、上記説明した処理を図２に示したシステムで行う場合について説明する。
図２に示す１サイクル転送量算出部３３で、１サイクル（１２５μｓｅｃ）にどれくらいのデータ量転送することができるか計算する。【０１３１】
次に、ステップＳ１４２〜Ｓ１４８に示した空パケットの挿入タイミング計算を１サイクル転送量算出部３３または、専用の処理部を別に設けて行う。
パケット生成部３９は、１サイクル転送量算出部３３によって算出された、１サイクルに転送しなければならないライン数情報と空パケット挿入情報を信号線（６）を介して入力する。別に処理部を設けた場合は別の信号線が必要である。【０１３２】
そして、パケット生成部３９は無効データが追加されたデータを無効データ追加部３８から受信した回数をカウントアップする。その回数がその１サイクルに転送しなければならないライン数に達した場合に、そのライン数だけ受信したデータを連結して実データを生成する。それとともに、その実データを追加してアイソクロナスパケットを生成して伝送路に送出する。このときに空パケット挿入情報がイネーブルであればパケット生成部３９は空パケットを伝送路に送出し、ディセーブルであれば実データのパケットを伝送路に送出する。【０１３３】
（実施例８）
実施例８では、実施例７のように１サイクルで転送するデータ（ライン数）と圧縮部で生成したバッファ内のデータ（ライン数）に親和性がある場合でなく、つまり１サイクル転送ライン数とバッファ内のライン数が同じでない場合（転送レイヤでの処理単位と圧縮レイヤでの処理単位が等しくない場合）について説明する。【０１３４】
親和性がない場合の例を図１５に示す。実施例７同様１サイクルが１２５μｓｅｃのアイソクロナスパケット等を想定して説明する。１サイクル転送ライン数が例えば４ラインであるときに、バッファ内のライン数が８ラインであるような場合、すなわち転送レイヤでの処理単位＜圧縮レイヤでの処理単位である場合は、図１５のデータ１のように制御を行う。【０１３５】
図１６について説明をする。図１６は実施例８の動作を示したフロー図である。
ステップＳ１６１ではデータを取得する。例えば、画像データの1フレームの１ライン分のデータを画像処理装置から取得する。ステップＳ１６２〜Ｓ１６４では圧縮処理（符号量制御や暗号化処理を含んでもよい）を行う。ステップＳ１６２では予測符号化を行い予測量を算出し、ステップＳ１６３では量子化を行い。ステップＳ１６４では符号化を行う。【０１３６】
ステップＳ１６５では、例えば圧縮後のデータ１ライン分をバッファへ書き込む。ここで、バッファは図９で示した前処理バッファ９２や図１２で示した圧縮後データ用バッファ１２５である。また図２で示した第１バッファ、第２バッファである。このＳ１６２〜Ｓ１６５については上記で説明した図１２の圧縮部（圧縮レイヤ）で行う処理と略同じであるので詳細な説明はしない。【０１３７】
ステップＳ１６６では、所定ライン分の転送データが格納されているかを判断する。所定ライン分格納されていればステップＳ１６７に移行する。格納されていなければステップＳ１６８に移行する。ここで、所定ラインは転送レイヤでの処理単位を示し、１サイクルで転送する分のライン数が溜まったかを判断している。このステップは図２に示す構成において実施する場合は１ライン平均データ量・読み出しデータ量算出部３７で行う。【０１３８】
ステップＳ１６７では、パディングを挿入するべきであるかを判断する。本例では圧縮ライン数が８ラインで、１サイクルで転送するライン数が４であるので８ライン目であればステップＳ１６８に移行する。そうでない場合、データにＥＯＦを付加した４ライン分だけのデータを生成してステップＳ１６９に移行する。このステップは図２に示す構成において実施する場合は１ライン平均データ量・読み出しデータ量算出部３７にこの機能を追加する。【０１３９】
なお、４ライン分の圧縮データが、１パケットデータ量よりも多い場合は、データ量よりはみ出た分は後続パケットの先頭へ回すことになる。
ステップＳ１６８では、所定ライン分の圧縮データとＥＯＦと「０」詰めをして所定のデータ量（８ライン）を形成しＳ１６９に移行する。このステップは図２に示す構成において実施する場合は無効データ追加部３８にこの機能を追加する。【０１４０】
ステップＳ１６９では、転送路の規格に合わせたパケットを形成して転送をする。このステップは図２に示す構成において実施する場合はパケット生成部３９で行う。
なお、上記ステップでは所定ライン分溜まってからパディングの挿入の可否を判断しているが、１ライン分ごとにパディングの挿入の可否を判断し、その後に所定ライン分格納されたかを判断してもかまわない。ここでのパディングの判断はカウンタなどにより１ラインごとにカウントし、そのカウント値により挿入の判断を行う。
上記説明した処理を図２に示したシステムで行う場合について説明する。【０１４１】
１ライン平均データ量・読み出しデータ量算出部３７によりステップＳ１６６、Ｓ１６７に示したパディングの挿入タイミング（パディング挿入情報）を計算する。ここで、この計算は専用の処理部を別に設けて行う。【０１４２】
バッファから読み出すデータ量（バイト数、可変長符号化なので、正確にはビット数）を信号線（４）を介して入力したアクセス制御部３１は、その時点では符号化部２３からの書き込みが許可されていないバッファ、すなわち、今回転送するデータがバッファリングされたバッファ（第１バッファ２８、第２バッファ２９のいずれか）に対し、その先頭からそのバイト数だけデータを出力するように指示する。アクセス制御部３１からの指示にしたがって、バッファからそのバイト数のデータが出力されると、そのデータは無効データ追加部３８に入力される。【０１４３】
無効データ追加部３８は、１ライン平均データ量・読み出しデータ量算出部３７から１ライン当たりの平均バイト数、バッファから取得したデータのバイト数との差をとり、その差だけ、無効データを追加する。そのとき、パディング挿入情報がイネーブルであれば無効データが追加され、ディセーブルであればパディングを追加しないデータをパケット生成部３９に出力する。別に処理部を設けた場合は他に信号線が必要である。【０１４４】
パケット生成部３９は、１サイクル転送量算出部３３によって算出された、１サイクルに転送しなければならないライン数情報を信号線（６）を介して入力する。
そして、パケット生成部３９は無効データが追加されたデータを無効データ追加部３８から受信した回数をカウントアップする。その回数がその１サイクルに転送しなければならないライン数に達した場合に、そのライン数だけ受信したデータを連結して実データを生成する。それとともに、その実データを追加してアイソクロナスパケットを生成して伝送路に送出する。【０１４５】
（実施例９）
実施例８の場合、１サイクル転送ライン数が例えば４ラインであるときに、バッファ内のライン数が８ラインであると次のような問題が発生する。すなわち、圧縮部（圧縮レイヤ）のバッファサイズを最低限に押さえ込めない。また、図１７のように最後のパケットにだけＥＯＦと「０」詰めをするようにすると、符号量を制御すると最後にしわ寄せがくる場合がある。【０１４６】
そこで、図１５のデータ１にある「０」詰め部分（ＡやＢ）を最初のパケットに分割して付加する。つまり、データ２にあるように「０」詰め部分をＡ／２やＢ／２にしてそれぞれのパケットのＥＯＦの後段に付加する。【０１４７】
図１７について説明をする。図１７は実施例９の動作を示したフロー図である。
ステップＳ１７１ではデータを取得する。例えば、画像データの1フレームの１ライン分のデータを画像処理装置から取得する。ステップＳ１７２〜Ｓ１７５では圧縮処理（符号量制御や暗号化処理を含んでもよい）を行う。ステップＳ１７２では予測符号化を行い予測量を算出し、ステップＳ１７３では量子化を行い。ステップＳ１７４では符号化を行う。【０１４８】
ステップＳ１７５では、例えば圧縮後のデータ１ライン分をバッファへ書き込む。ここで、バッファは図９で示した前処理バッファ９２や図１２で示した圧縮後データ用バッファ１２５である。また図２で示した第１バッファ２８、第２バッファ２９である。このＳ１７２〜Ｓ１７５については上記で説明した圧縮部（圧縮レイヤ）で行う処理と略同じであるので詳細な説明はしない。【０１４９】
ステップＳ１７６では、所定ライン分の転送データが格納されているかを判断する。所定ライン分格納されていればステップＳ１７７に移行する。格納されていなければステップＳ１７１に移行する。実施例８と同様に１サイクルで転送するライン数が４で、圧縮ライン数が８の場合、２サイクルで転送レイヤでの制約と圧縮レイヤとの制約が一致するので、転送サイクルの２サイクル分で、８ライン分の圧縮データが送られればよい。あるいは、バッファ内のライン数８を２分割して４ラインを所定ラインとしてもよい。前者の場合は、１サイクル内で、圧縮データが、必ずしも４ラインでなくてもよく、３ラインとか、５ラインとか、端数の４．５ラインでもよい。要は、２サイクル目で８ライン分伝送できていれば問題ない。後者の場合は、平均的に伝送するために、４ラインとして制御する。【０１５０】
このステップは図２に示す構成において実施する場合は１ライン平均データ量・読み出しデータ量算出部３７にこの機能を追加する。
ステップＳ１７７では、パディングの量を計算する。上記のように、１サイクル転送ライン数が例えば４ラインであるときに、バッファ内のライン数が８ラインであるような場合、実施例８で算出した「０」詰め部分ＡまたはＢ（パディングの量）を算出しておく。そして、８ライン／４ライン＝２であるのでＡとＢを２分割する。つまり、データ２に示す１パケットのデータとＥＯＦの後に、Ａ／２やＢ／２の「０」詰めの量（パディングの量）を算出しステップＳ１７９に移行する。このステップは図２に示す構成において実施する場合は１ライン平均データ量・読み出しデータ量算出部３７にこの機能を追加する。【０１５１】
ステップＳ１７８では、所定ライン分圧縮データとＥＯＦと「０」詰めをし（４ラインのデータは、データ＋ＥＯＦ＋算出した分（Ａ／２またはＢ／２）の「０」詰め）、Ｓ１７９に移行する。このステップは図２に示す構成において実施する場合は無効データ追加部３８にこの機能を追加する。【０１５２】
ステップＳ１７９では、転送路の規格に合わせたパケット形成して転送をする。このステップは図２に示す構成において実施する場合はパケット生成部３９で行う。
なお、上記ステップでは所定ライン分溜まってからパディングの挿入の可否を判断しているが、１ライン分ごとにパディング挿入の可否の判断をしてもよい。その後に所定ライン分格納されたかを判断し、所定ラインになったときにステップＳ１７８の処理をしてもかまわない。ここでのパディングの判断はカウンタなどにより１ラインごとにカウントし、そのカウント値により挿入の判断を行う。【０１５３】
なお、パディング量の算出は毎回行わなくてもよく、変更がなければ算出をしなくてもよい。
上記説明した処理を図２に示したシステムで行う場合について説明する。
１ライン平均データ量・読み出しデータ量算出部３７によりステップＳ１７６、Ｓ１７７に示したパディング量（パディング量情報）を計算する。ここで、この計算は専用の処理部を別に設けて行う。【０１５４】
アクセス制御部３１からの指示にしたがって、バッファからそのバイト数のデータが出力されると、そのデータは無効データ追加部３８に入力される。
無効データ追加部３８は、１ライン平均データ量・読み出しデータ量算出部３７から１ライン当たりの平均バイト数、バッファから取得したデータのバイト（正確ににはビット数）数との差とパディング量情報により、ステップＳ１７８に示すように無効データ（Ａ／２、Ｂ／２分）を追加する。そのとき、パディング量情報に従ってパディングをデータをパケット生成部３９に出力する。別に処理部を設けた場合は他に信号線が必要である。【０１５５】
パケット生成部３９は、１サイクル転送量算出部３３によって算出された、１サイクルに転送しなければならないライン数情報を信号線（６）を介して入力する。
そして、パケット生成部３９は無効データが追加されたデータを無効データ追加部３８から受信した回数をカウントアップする。その回数がその１サイクルに転送しなければならないライン数に達した場合に、そのライン数だけ受信したデータを連結して実データを生成する。それとともに、その実データを追加してアイソクロナスパケットを生成して伝送路に送出する。【０１５６】
（実施例１０）
実施例１０では、１サイクルで転送するデータ（ライン数）と圧縮部で生成するバッファ内のデータ（ライン数）に親和性がなく、１サイクル転送ライン数が８で、バッファ内のライン数が４のような場合、すなわち転送レイヤでの処理単位＞圧縮レイヤでの処理単位である場合について説明する。１サイクルを１２５μｓｅｃのアイソクロナスパケット等を想定して説明する。１サイクル転送ライン数が例えば８ラインであるときに、バッファ内のライン数が４ラインであるような場合は、図１８のデータ３のように制御を行う。【０１５７】
図１９は実施例１０の動作を示したフロー図である。
ステップＳ１９１ではデータを取得する。例えば、画像データの1フレームの１ライン分のデータを画像処理装置から取得する。ステップＳ１９２〜Ｓ１９５では圧縮処理（符号量制御や暗号化処理を含んでもよい）を行う。ステップＳ１９２では予測符号化を行い予測量を算出し、ステップＳ１９３では量子化を行い。ステップＳ１９４では符号化を行う。【０１５８】
ステップＳ１９５では、例えば圧縮後のデータ１ライン分をバッファへ書き込む。ここで、バッファは図９で示した前処理バッファ９２や図１２で示した圧縮後データ用バッファ１２５である。また図２で示した第１バッファ２８、第２バッファ２９である。このＳ１９２〜Ｓ１９５については上記で説明した圧縮部（圧縮レイヤ）で行う処理と略同じであるので詳細な説明はしない。【０１５９】
ステップＳ１９６では、所定ライン分の転送データが格納されているかを判断する。所定ライン分格納されていればステップＳ１９７に移行する。格納されていなければステップＳ１９１に移行する。ここで、所定ライン分とは圧縮レイヤでの処理単位を示し、例えば、１サイクルで転送する８ラインのうち最初４ライン分のデータが溜まったかを判断している。このステップは図２に示す構成において実施する場合は１ライン平均データ量・読み出しデータ量算出部３７で行う。【０１６０】
ステップＳ１９７では、最初の所定ライン分（第１の所定ライン値：Ｃ）の圧縮データとＥＯＦと「０」詰めをして所定のデータ量（４ライン）を形成しＳ１９８に移行する。このステップは図２に示す構成において実施する場合は無効データ追加部３８にこの機能を追加する。【０１６１】
ステップＳ１９８では、１サイクルの転送分のライン数（第２の所定ライン値：Ｄ）の転送データが格納されているかを判断する。１サイクルの転送ライン分格納されていればステップＳ１９９に移行する。格納されていなければステップＳ１９１に移行する。ここでは、１サイクルで転送する８ラインのうち残りの４ライン分のデータが溜まったかを判断している。このステップは図２に示す構成において実施する場合は１ライン平均データ量・読み出しデータ量算出部３７にこの機能を追加する。【０１６２】
ステップＳ１９９では、最初の所定ライン分の圧縮データとＥＯＦと「０」詰めをして所定のデータ量（８ライン）を形成しＳ１９１０に移行する。
ステップＳ１９１０では、転送路の規格に合わせたパケットを形成して転送をする。このステップは図２に示す構成において実施する場合はパケット生成部３９で行う。【０１６３】
なお、上記ステップでは所定ライン分（圧縮レイヤの処理単位）溜まってからパディングの挿入の可否を判断しているが、１ライン分ごとにパディングの挿入の可否を判断し、その後に所定ライン分格納されたかを判断してもかまわない。ここでのパディングの判断はカウンタなどにより１ラインごとにカウントし、そのカウント値により挿入の判断を行う。【０１６４】
上記説明した処理を図２に示したシステムで行う場合について説明する。
１ライン平均データ量・読み出しデータ量算出部３７によりステップＳ１９６、Ｓ１９８に示したパディング挿入タイミング（パディング挿入位置情報）を計算する。ここで、この計算は専用の処理部を別に設けて行う。【０１６５】
アクセス制御部３１からの指示にしたがって、バッファからそのバイト数のデータが出力されると、そのデータは無効データ追加部３８に入力される。
無効データ追加部３８は、１ライン平均データ量・読み出しデータ量算出部３７から１ライン当たりの平均バイト数、バッファから取得したデータのバイト数との差をとり、その差だけ、無効データを追加する。そのとき、パディング挿入位置情報がイネーブルであれば無効データを挿入指示されたラインにイネーブルの間挿入される。ディセーブルであれば無効データを追加しない。その後、生成されたデータをパケット生成部３９に出力する。別に処理部を設けた場合は他に信号線が必要である。【０１６６】
そのとき、パディング挿入位置情報に従ってパディングをデータをパケット生成部３９に出力する。別に処理部を設けた場合は他に信号線が必要である。
パケット生成部３９は、１サイクル転送量算出部３３によって算出された、１サイクルに転送しなければならないライン数情報を信号線（６）を介して入力する。【０１６７】
そして、パケット生成部３９は無効データが追加されたデータを無効データ追加部３８から受信した回数をカウントアップする。その回数がその１サイクルに転送しなければならないライン数に達した場合に、そのライン数だけ受信したデータを連結して実データを生成する。それとともに、その実データを追加してアイソクロナスパケットを生成して伝送路に送出する。【０１６８】
（実施例１１）
上記までは送信について述べたが、実施例１１では上記発明の送信パケットを受信した場合の復号について説明する。図２０に示すＬＳＩ２００は画像処理とデータの送受信処理を行うものである。送信部は上記で説明したように画像処理装置（例えばＤＶＤプレーヤー、カーナビゲーションシステム、地上ディジタル）などから送信されデータをＶＩＦ部２０１（Video Interface）が受信する。そのＶＩＦ部２０１の出力を、エンコード部２０２でエンコードし、その結果を例えばＩＥＥＥ１３９４規格の転送部２０６により出力する。【０１６９】
受信部は、例えばＩＥＥＥ１３９４の規格で送信されたデータを受信部２０４で受信し、その結果をデコード部２０５でデコードする。デコードされたデータをＶＩＦ部２０３を介してＬＣＤパネルなどの表示装置に転送する。【０１７０】
なお、図２０では、ＬＳＩ２００に対する入力データ及び出力データは１３９４規格により転送を行う例を示しているので、転送部２０６は１３９４規格用のブロック化（パケット生成）を行ない、受信部２０４は１３９４規格用のブロックを受信する例となっているが、当然ながら他規格によりデータを転送する場合には、他規格に合わせた転送および受信を行う構成となる。【０１７１】
また、当然ながら、エンコード部２０２で行う圧縮処理（暗号化処理を含んでも構わない）と、デコード部２０５で行う復元処理（暗号の復号処理を含んでも構わない）とは、それぞれ対応した処理内容である。【０１７２】
図２１は受信時の動作について示したものである。
ステップＳ２１１ではパケットを受信する。
ステップＳ２１２では、上記実施例で形成されたデータとＥＯＦと「０」から構成されるパケット内より、ＥＯＦより前の実データを取り出す。【０１７３】
ステップＳ２１３では復号処理し、ステップＳ２１４では復号後のデータをバッファなどに格納する。
なお上記各実施例ではＥＯＦの後に「０」詰めを行っているが、「０」に限定するものではない。【０１７４】
ところで、前述したようなフローチャートの処理を標準的なコンピュータのＣＰＵに行わせるための制御プログラムを作成してコンピュータ読み取り可能な記録媒体に記録させておき、そのプログラムを記録媒体からコンピュータに読み込ませてＣＰＵで実行させるようにしても、本発明の実施は可能である。【０１７５】
記録させた制御プログラムをコンピュータシステムで読み取ることの可能な記録媒体の例を図２４に示す。このような記録媒体としては、例えば、コンピュータシステム２４０に内蔵若しくは外付けの付属装置として備えられるＲＯＭやハードディスク装置などの記憶装置２４１、コンピュータシステム２４０に備えられる媒体駆動装置２４２へ挿入することによって記録された制御プログラムを読み出すことのできるフレキシブルディスク、ＭＯ（光磁気ディスク）、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどといった携帯可能記録媒体２４３等が利用できる。【０１７６】
また、記録媒体は通信回線２４４を介してコンピュータシステム２４０と接続される、プログラムサーバ２４５として機能するコンピュータシステムが備えている記憶装置２４６であってもよい。この場合には、制御プログラムを表現するデータ信号で搬送波を変調して得られる伝送信号を、プログラムサーバ２４５から伝送媒体である通信回線２４４を通じてコンピュータシステム２４０へ伝送するようにし、コンピュータシステム２４０では受信した伝送信号を復調して制御プログラムを再生することでこの制御プログラムをコンピュータシステム２４０のＣＰＵで実行できるようになる。【０１７７】
図２５は、アイソクロナスパケットの詳細な構成図の一例を示している。アイソクロナスパケットは、ヘッダが４バイト、ヘッダＣＲＣが４バイト、それにデータ、そしてデータＣＲＣが４バイトの構成となっている。データはさらに右図のように細かく分かれており、ＣＩＰヘッダのほかに、ソースパケットヘッダと圧縮データの組み合わせのソースパケットが複数個繰り返された形となっている。たとえば、圧縮データの部分のみ暗号化される場合もある。このような構成とすることで、アイソクロナスパケットは、ソースパケットのＮ倍となるようにデータを丸められるようなこともある。【０１７８】
また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。
【図２】
0004825265.tif 000002
【図３】
0004825265.tif 000003
【図４】
0004825265.tif 000004
【図５】
0004825265.tif 000005
【図６Ａ】
0004825265.tif 000006
【図６Ｂ】
0004825265.tif 000007
【図７】
0004825265.tif 000008
【図８】
0004825265.tif 000009
【図９】
0004825265.tif 000010
【図１１】
0004825265.tif 000011
【図１２】
0004825265.tif 000012
【図１３】
0004825265.tif 000013
【図１４】
0004825265.tif 000014
【図１５】
0004825265.tif 000015
【図１６】
0004825265.tif 000016
【図１７】
0004825265.tif 000017
【図１８】
0004825265.tif 000018
【図１９】
0004825265.tif 000019
【図２０】
0004825265.tif 000020
【図２１】
0004825265.tif 000021
【図２２】
0004825265.tif 000022
【図２３】
0004825265.tif 000023
【図２４】
0004825265.tif 000024
【図２５】
0004825265.tif 000025
【図１】
0004825265.tif 000026
【図１０】
0004825265.tif 000027