JPWO2007116539A1 - データ転送装置およびデータ転送方法 - Google Patents

データ転送装置およびデータ転送方法 Download PDF

Info

Publication number
JPWO2007116539A1
JPWO2007116539A1 JP2008509681A JP2008509681A JPWO2007116539A1 JP WO2007116539 A1 JPWO2007116539 A1 JP WO2007116539A1 JP 2008509681 A JP2008509681 A JP 2008509681A JP 2008509681 A JP2008509681 A JP 2008509681A JP WO2007116539 A1 JPWO2007116539 A1 JP WO2007116539A1
Authority
JP
Japan
Prior art keywords
data
lines
image data
cycle
unit
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
JP2008509681A
Other languages
English (en)
Other versions
JP4825265B2 (ja
Inventor
泰彦 中野
泰彦 中野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008509681A priority Critical patent/JP4825265B2/ja
Publication of JPWO2007116539A1 publication Critical patent/JPWO2007116539A1/ja
Application granted granted Critical
Publication of JP4825265B2 publication Critical patent/JP4825265B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41422Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance located in transportation means, e.g. personal vehicle
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44227Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44231Monitoring of peripheral device or external card, e.g. to detect processing problems in a handheld device or the failure of an external recording device

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

簡素な構成でリアルタイムに画像データを転送することを可能とした画像データ転送装置を提供することである。本発明の画像データ転送装置は、画像データの種類を基に、1サイクルにおいて転送される画像データのライン数およびそのライン数に対応するデータ量を算出する1サイクル転送量算出部33と、可変長符号化によって処理された前記画像データのうち、前記ライン数分のデータを格納することが可能なバッファ部(28、29)と、算出されたライン数に対応するデータ量と、バッファ部(28、29)に格納されたデータとの差を算出するとともに、その差だけ、バッファ部(28、29)に格納されたデータに無効なデータを追加する無効データ追加部38と、無効なデータが追加されたデータを基に、パケットを生成して送信するパケット生成部39を備える。

Description

本発明は、データを圧縮して転送するデータ転送装置に関する。
画像データは、通常、MPEG(Moving Picture Experts Group)2等の圧縮方式を用いて圧縮して転送される。MPEG2方式でデータを転送する場合、MPEG2−TS形式がしばしば用いられている。この形式では、転送される実データを各種制御データとともに188バイトの固定長内に入れてカプセル化している。
動画像の送信などリアルタイム性が要求される環境をこのMPEG2方式で実現しようとした場合、時間同期を避けるためのタイムスタンプ等の情報をヘッダ部に格納するとともに、そのヘッダ部の後に、画像データ、音声、番組情報、等のメタデータを入れて、複数のストリームを重畳させる。この結果、回路が複雑化するとともに、回路規模が大型化し、システムの実現にコストがかかる。
例えば、MPEG2に関する符号量制御に関する技術が特許文献1および2に開示されている。
特開2001−28753号公報「動画像符号化装置及びその方法」 特開2001−238215号公報「動画像符号化装置及びその方法」
本発明の課題は、簡素な構成でリアルタイムにデータを転送することを可能としたデータ転送装置およびデータ転送方法を提供することである。
本発明の第1態様は、入力データの種類を基に、1サイクルにおいて転送されるべき前記入力データの処理単位数およびその処理単位数に対応するデータ量を算出する1サイクル転送量算出部と、前記入力データのうち、前記処理単位数分のデータを格納することが可能なバッファ部と、前記算出された処理単位数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加部と、
前記無効なデータが追加されたデータを基に、パケットを生成して送信するパケット生成部を備えるデータ転送装置である。
本発明の第2態様の画像データ転送装置は、画像データを圧縮して転送する画像データ転送装置において、前記画像データの種類を基に、1サイクルにおいて転送される前記画像データのライン数およびそのライン数に対応するデータ量を算出する1サイクル転送量算出部と、可変長符号化によって処理された前記画像データのうち、前記ライン数分のデータを格納することが可能なバッファ部と、前記算出されたライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加部と、前記無効なデータが追加されたデータを基に、パケットを生成して送信するパケット生成部を備えることを特徴とする画像データ転送装置である。
ここで、1サイクル転送量算出部によって、1サイクルにおいて転送されるライン数およびそのライン数に対応するデータ量が算出されるとともに、バッファ部に格納されたそのライン数に対応するデータに対して、そのデータ量が、算出されたデータ量に一致するように、無効データ追加部によって無効なデータが追加される。これにより、可変長符号化によって処理されたデータに対しても、パケットサイズを固定長とすることが可能となり、例えば、IEEE1394インターフェイス等の安価なシステムでアイソクロナス転送を行う場合に要求される固定ビットレートの規定が満たされることとなり、簡素な構成でリアルタイムに画像データを転送することができる。
本発明の第2態様の画像データ転送装置は、画像データを圧縮して転送する画像データ転送装置において、前記画像データの種類を基に、1サイクルにおいて転送される前記画像データのライン数、固定長にするライン数、および、その固定長にするライン数に対応するデータ量を算出する1サイクル転送量算出部と、可変長符号化によって処理された前記画像データのうち、前記固定長にするライン数分のデータを格納することが可能なバッファ部と、前記算出された固定長にするライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加部と、前記無効なデータが追加されたデータを先頭から前記1サイクルにおいて転送される前記画像データのライン数に対応するデータ量ずつ切り出して、その切り出したデータ量毎にパケットを生成して送信するパケット生成部を備えることを特徴とする画像データ転送装置である。
第3態様の画像データ転送装置においては、例えば、前記固定長にするライン数を、前記1サイクルにおいて転送される前記画像データのライン数以上に設定することで、より多いライン数に対してそのデータ長が固定長になるようすればよく、システム内の符号化量監視部による符号化量の監視が一層容易に行える。
本発明の第3態様の画像データ転送方法は、画像データを圧縮して転送する画像データ転送方法において、前記画像データの種類を基に、1サイクルにおいて転送される前記画像データのライン数およびそのライン数に対応するデータ量を算出する1サイクル転送量算出ステップと、可変長符号化によって処理された前記画像データのうち、前記ライン数分のデータをバッファ部に格納するステップと、前記算出されたライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加ステップと、前記無効なデータが追加されたデータを基に、パケットを生成して送信するステップを備えることを特徴とする画像データ転送方法である。
本発明の画像データ転送方法は、画像データを圧縮して転送する画像データ転送方法において、前記画像データの種類を基に、1サイクルにおいて転送される前記画像データのライン数、固定長にするライン数、および、その固定長にするライン数に対応するデータ量を算出する1サイクル転送量算出ステップと、可変長符号化によって処理された前記画像データのうち、前記固定長にするライン数分のデータをバッファ部に格納するステップと、前記算出された固定長にするライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加ステップと、前記無効なデータが追加されたデータを先頭から前記1サイクルにおいて転送される前記画像データのライン数に対応するデータ量ずつ切り出して、その切り出したデータ量毎にパケットを生成して送信するステップを備えることを特徴とする画像データ転送方法である。
本発明によれば、可変長符号化によって処理されたデータに対しても、パケットサイズを固定長とすることが可能となり、アイソクロナス転送を行う場合に要求される固定ビットレートの規定が満たされることとなり、簡素な構成でリアルタイムにデータを転送することができる。
本発明の適用例としての車載用の画像データの転送システムを示す図である。 本発明の一実施形態のデータ転送装置の構成を示すブロック図である。 装置(チャネル)毎の画像データのサイズ、転送レート、圧縮率、1サイクル転送量を示した図である。 図2の変形例(その1)を示す図である。 1サイクル転送量算出部が保持する表の一例である。 可変長符号化としてハフマン符号化を採用した場合において、ピクセルをRGBで表現した場合の符号化テーブルを示す図である。 可変長符号化としてハフマン符号化を採用した場合において、ピクセルをYUVで表現した場合の符号化テーブルを示す図である。 無効なデータをデータ内に分散させて、そのデータを固定長にする場合の例を説明する図である。 無効なデータを末尾に追加して、そのデータを固定長にする場合の例を説明する図である。 本発明の原理を示す図である。 データのイメージを示す図である。 パケット構成を示す図である。 圧縮処理を行う場合の構成を示すブロック図である。 実施例7のタームチャートを示した図である。 実施例7のフローを示す図である。 実施例8、9のタームチャートを示した図である。 実施例8のフローを示す図である。 実施例9のフローを示す図である。 実施例10のタームチャートを示した図である。 実施例10のフローを示す図である。 LSIの送受信の構成を示した図である。 実施例11の受信フローを示す図であ。 本発明のフローを示す図である。 本発明のフローを示した図である。 制御プログラムをコンピュータで読み取ることの可能な記録媒体の構成例を示す図である。 Isochronousパケットの詳細な構成図である。
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
(原理説明)
図9に本発明の原理図を示す。図9に示すシステムは、前処理部91、前処理後バッファ92、固定長パケット生成処理部93から構成されている。
前処理部91は、入力データを取得し決められた処理を行い前処理後バッファ92に処理されたデータを格納する。入力データは可変長のデータでも固定長のデータであってもかまわない。前処理部91は、所定の値(例えば4)に示される単位(画像の場合はライン)に基づいて処理を行う。所定の値とは後述する固定長パケット生成処理部93の1サイクル転送量算出処理部94で算出され、周期的に出力される固定長の1パケットの1サイクルに重畳させることができるデータ転送量に基づいて求められる値であり、「1サイクルあたりのデータ転送量÷前処理後バッファ(または入力データ)に格納される単位(画像の場合はライン)毎の平均データ量」により求められる商に基づいた値とする。
1サイクルあたりに転送可能なデータ量に基づいて、前処理部91での処理単位を設定することで、前処理部での処理と転送レイヤとの処理との親和性を高めることが可能になる。
なお、所定の値は、1サイクル転送量算出処理部94により算出されるものではなく、予め設定された値を用いることもできる。
また、前処理においては、運用されるシステム上で必要とされる処理を適宜適用することが可能であり、前処理部91は無くてもよい。その場合は、データ読出部95では入力データを直接読み出すことになる。
前処理後バッファ92には、ある塊に分けられる可変長のデータ(画像でいえば1ライン毎のデータ)が格納される。例えば、図10に示すように720×480の画像の1ライン分を1塊として、前記所定の値(この例では4)ごとにまとめて格納する。
固定長パケット生成処理部93は、1サイクル転送量算出処理部94、データ読出部95、パケット生成部96、転送量テーブル97から構成されている。
データ読出部95により前処理後バッファ92に格納されたデータを取得する。1サイクル転送量算出処理部94では、転送量テーブル97からパケット転送時に必要な情報(例えば複数の画像処理装置(入力データを生成する装置)がある場合は装置番号等)を取得したり、入力データに応じて求められる、1サイクル(1パケット)で転送すべきデータ量や、該データ量に応じた前述の所定の値を算出したりする。この際、転送量テーブル97を利用せずに、処理に必要なデータの入力を処理の都度受けて算出することも可能である。処理高速化のためには、転送量テーブル97に予め入力データの種別とそれに応じた1サイクル転送量などを設定しておくことが望ましい。
パケット生成部96は、例えば図10であれば4ライン分のデータ(A〜D)の後に、図11に示すようにEOF(End Of File)と無効なデータ(例えば「0」詰め)を付加して固定長データにして転送する。
次に、画像処理装置のデータ送信部として本発明を適用した場合であって、前処理部91を圧縮処理部121とした例を図12に示す。画像データが圧縮処理部121に入力され、量子化処理部122、符号化処理部123、符号量監視部124などにより圧縮データが生成される。その後圧縮後データ用バッファ125に図12に示すように、例えば前述の所定の値が4であれば、ライン1圧縮データ〜ライン4圧縮データを1塊として格納する。その後図9の転送レイヤにおける動作と同様にライン1圧縮データ〜ライン4圧縮データにEOFと「0」を付加して固定長のパケットデータを出力する。
本処理がソフトウェアで実現された場合、前処理部91または圧縮処理部121と固定長パケット生成処理部93とは、同一のコンピュータ上に搭載されても、異なるコンピュータに分散して搭載されてもかまわない。
なお、本発明の処理対象は画像データのみでなく、例えば、音声データ等であってもよい。以下の実施例は画像データを処理対象として述べているので、処理単位の説明としてラインを使用しているが、音声データであれば、例えば単位時間あたりのデータ(例えば1秒分の音声データ)を処理単位として扱うことができる。
(実施例1)
(構成説明)
本発明は、画像データの転送に対してリアルタイム性が要求される場合に、その要求を簡素な構成で安価に実現するシステム(データ転送装置)を提供するものである。
このようなシステムとしては、図1に示すような車載用の画像データの転送システムがある。
図1において、カメラ11は、道路の脇や後方等の運転者の視野の死角となりやすい場所の画像を取り込んで、メインディスプレイ装置15及びそのメインディスプレイ装置15とバス16を介して接続された後席のディスプレイ装置17に出力する。
DVD(Digital Versatile Disk)プレーヤー12は、DVDを再生する。地上波ディジタル放送用チューナー13は、地上波を選局して映像信号に変換するとともに、その映像信号をディジタルの画像データに変換してメインディスプレイ装置15及び後席のディスプレイ装置17に出力する。カーナビゲーション装置14は、車の現在位置を示す情報を所定の間隔で更新してメインディスプレイ装置15及び後席のディスプレイ装置17に出力する。
本実施形態においては、上記説明したカメラ11、DVDプレーヤー12、地上波ディジタル放送用チューナー13、カーナビゲーション装置14等の画像処理装置と、メインディスプレイ装置15及び後席のディスプレイ装置17等の画像処理装置を接続するために安価にリアルタイムな転送を実現できるインターフェイスとしてIEEE(Institute of Electrical and Electronics Engineers)1394インターフェイスを用い説明をする。ここで、IEEE1394規格では、パケットの転送プロセスとして、アイソクロナス(Isochronous)転送とアシンクロナス(Asynchronous)転送を規定している。アイソクロナス転送では、画像データがリアルタイムに送信されることを優先させ、転送時にパケットに含まれる実データのエラーチェックを省略する。アイソクロナスパケットの実データ領域には、各チャネル(各装置)の画像データの一部が含まれる。一方、アシンクロナス転送は、制御プロトコルの一種であり、転送先からのアクノリッジ(応答)を必要とするものである。IEEE1394規格では、例えば、アイソクロナスパケットのパケットサイズは固定長である必要がある。これは、それぞれのノードがアービタ(調停回路)にアイソクロナス転送を開始してよいかを問い合わせる際に、その問い合わせの中にビットレート(固定値)を入れておくことが規定されているためである。
なお、IEEE1394規格におけるデータ転送の1サイクルは125μsecであり、その1サイクル内で、各チャネル(各装置)のアイソクロナスパケット、アシンクロナスパケットの順にデータを転送できる。1サイクルで転送可能なアイソクロナスパケット内の実データのバイト数は、IEEE1394規格のより細かい規定に応じて異なる。すなわち、各チャネルのアイソクロナスパケットに含まれる実データの和が、S100、S200、S400、S800という規定に対して、それぞれ、1Kバイト、2Kバイト、4Kバイト、8Kバイト以下であれば、それらの各チャネルのアイソクロナスパケットは1サイクルで転送可能である。
なお、本実施例ではIEEE1394を用いて説明をするが、当然アイソクロナス転送と同等の機能を有するデータ転送方式を備えた装置であれば限定するものではない。例えばUSB(Universal Serial Bus)などでもよい。また、画像処理装置に限らず装置に可変長または固定長のデータ(例えばデータとして画像データ、音声データ等)を入力し、固定長データを出力する装置であれば特に限定をするものではない。
次に、図2は本発明の一実施形態のデータ転送装置の構成を示すブロック図である。図2に示すブロック図は、図1で説明したカメラ11、DVDプレーヤー12、地上波ディジタル放送用チューナー13、カーナビゲーション装置14等の各画像処理装置の送信部(圧縮部(圧縮レイヤ)、転送部(転送レイヤ)から構成される。以下、送信部をデータ転送装置20とする)を示している。なお、データ転送装置20から送信データ(本例では画像データ)を受信して表示するメインディスプレイ装置15及び後席のディスプレイ装置17等の受信部については後述する。
図2においてデータ転送装置20は、前処理部21、量子化部22、符号化部23、量子化テーブル作成部24、量子化テーブル25a,25b,25c、符号化テーブル作成部26、符号化テーブル27a、27b、27c、第1バッファ28、第2バッファ29、スイッチ部34、35、等から構成される圧縮部と、アクセス制御部31、書き込み先切替タイミング生成部32、1サイクル転送量算出部33、1ライン平均データ量・読み出しデータ量算出部37、無効データ追加部38、パケット生成部39等から構成される転送部から構成されている。
圧縮部について説明する。
前処理部21は、画像データが持つ冗長性を2次元予測差分パルス符号変調(2次元予測DPCM(Differential Pulse Code Modulation))、1次元予測DPCM、1次元離散コサイン変換(1次元DCT(Discrete Cosine Transform))等の前処理を行うことによって削減する。
量子化部22は、前処理の結果に対して、さらに粗い量子化を行う。、符号化部23は、さらに粗く量子化されたデータに対して可変長符号化(Wyle符号化、Golomb符号化、Huffman符号化、Run Length符号化、等)を行う。
量子化テーブル作成部24は、前処理の結果として出力されやすいビット列(出力されるビット列の傾向)を画像処理装置(11〜14:チャネル)ごとに保持するとともに、処理する画像データのチャネルを基に、適合しそうな量子化テーブルを数テーブル(図では量子化テーブル25a,25b,25cが作成されている)作成する。ここで通常、上記量子化テーブル25a,25b,25cは動作開始前に生成されている。しかし、画像処理装置の運用時に動的に量子化テーブル25a,25b,25cを運用に問題ないように量子化テーブル作成部24によって生成することは可能である。
符号化テーブル作成部26は、さらに粗い量子化の結果として出力されやすいビット列(出力されるビット列の傾向)を画像処理装置(チャネル)ごとに保持するとともに、処理する画像データのチャネルを基に、適合しそうな符号化テーブルを数テーブル(図では符号化テーブル27a、27b、27cが作成されている)作成する。ここで、上記符号化テーブル27a、27b、27cにおいても動作開始前に符号化テーブル作成部26によって生成されている。しかし、画像処理装置の運用時に動的に符号化テーブル27a、27b、27cを運用に問題ないように生成することは可能である。
第1バッファ28、第2バッファ29は、例えばFIFO(First-In First-Out)で構成され、符号化部23からのデータを保存する。
符号化量監視部36は、第1バッファ28または第2バッファ29内に順次格納される符号化データの全体の符号量を監視し、符号量が大きすぎる場合は、その符号量を平均的に短くする符号化テーブルまたは量子化テーブルを選択する指示をスイッチ部34または35に出力し、符号量が少なすぎる場合は、その符号量を増やす符号化テーブルまたは量子化テーブルを選択する指示をスイッチ部34または35に出力する。
上記圧縮部(前処理部を含んでも良い)は、図9の前処理部91または図12の圧縮レイヤに相当する。また、第1バッファ28、第2バッファ29は、図9の前処理後バッファ92または図12の圧縮後データ用バッファ125に相当する。
次に、転送部について説明する。
アクセス制御部31は、第1バッファ28および第2バッファ29に対する符号化部23からのデータのアクセス(読み書き)を制御する。ここで、本実施例ではバッファは2段バッファ構造であるが1つのバッファであってもよい。2段バッファの場合、書き込み先切替タイミング生成部32により、符号化部23からのデータ書き込みを許可するバッファを第1バッファ28から第2バッファ29へ、または、第2バッファ29から第1バッファ28へ切り替えるタイミングを示す切替信号(例えばクロック信号)を生成する。なお、ひとつのバッファの場合においてもデータページを区切るなどすることで切替をすることはできる。
1サイクル転送量算出部33は、1サイクルで転送する必要があるライン数を算出するとともに、そのライン数に対応するバイト数を算出する。
1ライン平均データ量・読み出しデータ量算出部37は、第1バッファ28または第2バッファ29に今回バッファリングされたデータ量を取得して、無効なデータを分散させる目安としての1ライン平均バイト数、および、第1バッファ28または第2バッファ29から読み出すデータのバイト数を算出する。
無効データ追加部38は、第1バッファ28または第2バッファ29から出力されるデータに対して必要に応じて、無効なデータをEOF(End of File)の後に追加する。パディングとして無効ビット(例えば「0」)、スタッフビット)を追加する(詰める)。
パケット生成部39は、無効なデータが追加されたデータ、または、第1バッファ28、第2バッファ29から出力されたデータを基に、アイソクロナスパケットを生成する。
上記転送部は、図9または図12の転送レイヤに相当する。
本発明では、符号化部23による可変長符号化の結果として、入力された画像データの各ラインの符号化結果のデータ長にばらつきが生じるが、無効データを追加することで、複数のラインで符号化結果が固定長になるようにしている。これにより、それぞれのサイクルで、転送されるデータに固定長を要求するような規格を満たすことができ、簡素な構成にてリアルタイムな転送を実現できる。
なお、符号化部23によって可変長符号化されたデータは、第1バッファ28および第2バッファ29に対して出力される。しかし、アクセス制御部31は、書き込み先切替タイミング生成部32からの信号を基に、第1バッファ28および第2バッファ29については、いずれか一方にデータが書き込めるように制御している。このため、可変長符号化されたデータは、第1バッファ28および第2バッファ29のいずれか一方に書き込まれる。
(動作説明)
以下では、転送部(符号化部23の後段)の処理について詳細に説明する。
図2に示す1サイクル転送量算出部33の1サイクルの転送量を算出する方法について説明する。
図3は、画像処理装置(カメラ11、DVDプレーヤー12、地上波ディジタル放送用チューナー13、カーナビゲーション装置14等:チャネル)毎の画像データのサイズ、転送レート、圧縮率、1サイクル転送量を示した図である。
図3において、項番は、装置種別に対応している。例えば、項番「1」は、カーナビゲーション装置からの画像データ、項番「2」は、DVDプレーヤーからの画像データに対応している。各装置はいずれかのチャネルに割り当てられることを考慮すると、項番はチャネル番号に対応しているということもできる。
また、横サイズは、画像データの1ラインのピクセル数、バイト/ピクセルは、1ピクセル当たりのバイト数、縦サイズは、画像データのライン数、転送レートは、1秒間に転送しなければならない画像データ(フレーム)数、圧縮率は、前処理から可変長符号化までの処理によって達成されることが保障される圧縮率(所望とする圧縮率)である。
また、1サイクル転送ライン数は、各チャネルの画像データが、転送レートの条件等の仕様を満たすために、IEEE1394の1サイクル(125μsec)で転送しなければならないライン数(整数値に切り上げた値を示している。括弧内は切り上げを行わない場合の値である)を示している。1サイクル転送バイト数は、このライン数に対応するバイト数である。
以下に、項番「1」(カーナビゲーション装置)の場合を例にとり、1サイクル転送ライン数、1サイクル転送バイト数の算出方法を説明する。
まず、項番「1」では、転送レートは60(フレーム/sec)であり、1フレーム内には、480ラインが含まれている。よって、1秒間に転送しなければならないライン数は、60(フレーム/sec)×480(ライン/フレーム)である。
このライン数を各サイクルに等分すると、
60(フレーム/sec)×480(ライン/フレーム)×(125μsec/1sec)=3.6ライン
となる。すなわち、1サイクルに3.6ラインが平均して転送されるようにすれば、転送レートの条件を満たすことができる。例えば、1サイクルで、複数のラインを区切りよく転送する場合は(その必要は必ずしもないが)、4ラインをこの場合、転送することになる。
項番「1」で4ラインを転送する場合においては、1ラインが800バイト、各ピクセルが3バイト(1画素:R、G、B)、圧縮率が(1/3)であるので、この4ラインに対応するバイト数は、
800(バイトライン)×4(ライン)×3×(1/3)=3200バイトとなる。
すなわち、上述のS100〜S1600のうちどの規定を使用するか、1サイクルで何チャネルのデータのアイソクロナスパケットを転送するかに応じて、様々な組み合わせが可能である。
例えば、S400規定は、各チャネルの和に対する1サイクルの転送バイト数の上限が4Kバイトである。このS400規定を使用して、カーナビゲーション装置(項番「1」)とDVDプレーヤー(項番「2」)からの画像データをともに1つのサイクルで転送する場合、1サイクルで転送する必要があるバイト数は、それぞれ3200バイト、960バイトであるので、その和は、3200+960=4160バイトとなり、4K(4096)バイトを超えてしまう。
このような場合、アービタ(調停回路)によって、使用する規定に対応した1サイクルでの転送バイト数の上限が満たされるように、バスの使用権が各ノードに与えられる。
また、1サイクル転送量算出部33は、装置種別(カーナビゲーション装置、地上波ディジタル放送用チューナー、DVDプレーヤー等)またはチャネル番号を入力して、その装置種別またはチャネル番号に対応する、1サイクルで転送する必要があるライン数およびバイト数を算出(取得)する。
なお、このバイト数は、例えば、上述の計算では、3.6ラインに相当するバイト数(2880バイト)であるが、本実施形態では、例えば、区切りがよい4ラインに相当するバイト数(3200バイト)を転送する必要があるバイト数として用いる。
次に、書き込み先切替タイミング生成部32は、1サイクル転送量算出部33によって生成されたライン数を信号線(1)を介して入力するとともに、それぞれのラインの先頭位置を示す信号(例えばクロック)であるHSYNC(水平同期信号)信号を入力して、そのHSYNC(水平同期信号)信号をそのライン数に達するまでカウントアップする。そのライン数まで達した位置を示す信号(切替タイミングを示すクロック)が信号線(2)を介して、アクセス制御部31に出力される。
アクセス制御部31は、そのクロック信号を基に、符号化部23からのデータ書き込みを許可するバッファを切り替える。
1ライン平均データ量・読み出しデータ量算出部37は、1サイクル転送量算出部33によって算出された1サイクルで転送しなければならないライン数およびバイト数を信号線(3)を介して入力するとともに、書き込み先切替タイミング生成部32によって算出された切替タイミングを示すクロックを信号線(2)を介して入力する。
切替タイミングを示すクロックが、1ライン平均データ量・読み出しデータ量算出部37に入力されると、1ライン平均データ量・読み出しデータ量算出部37は、その切替タイミングによって符号化部23からのデータ書き込みが無効となったバッファ(第1バッファ28、第2バッファ29のいずれか一方のバッファ)に格納された、今回のサイクルで転送するデータのバイト数を取得する。
そして、1ライン平均データ量・読み出しデータ量算出部37は、1サイクル転送量算出部33より、1サイクルで転送しなければならないライン数分のデータをもらい、1ライン当たりの平均バイト数を算出する。また、複数サイクルで固定長の複数ライン分のデータを転送する場合、バッファから読み出すデータサイズに余りが生じる場合(複数サイクルで固定長の場合)、その分に無効なデータをいれる必要があるので、その余りのビット数を計算する。無効なデータの入れ方にはいくつかのパターンが考えられる。後述の図15のデータ1では、最後のサイクルに無効なデータを挿入し、データ2では、複数サイクルで均等に無効なデータを分散させる。
また、1サイクルで固定長の複数ライン分のデータが入る場合もある(図18)。この場合は、1サイクル中に複数の無効なデータが入る。
バッファから読み出すデータ量(バイト数)を信号線(4)を介して入力したアクセス制御部31は、その時点では符号化部23からの書き込みが許可されていないバッファ、すなわち、今回転送するデータがバッファリングされたバッファ(第1バッファ28、第2バッファ29のいずれか)に対し、その先頭からそのバイト数だけデータを出力するように指示する。
その指示にしたがって、バッファからそのバイト数のデータが出力されると、そのデータは無効データ追加部38に入力される。また、無効データ追加部38は、1ライン当たりの平均バイト数を信号線(5)を介して入力している。
無効データ追加部38は、圧縮レイヤで固定長にすべきデータ量に対して、バッファからの規定のライン数分のデータを入れて余りが生じた分だけ、無効データ(そのピクセルの値が有効でないことを示す符号が含まれるデータ、すなわち無効なデータ)を追加する。そして、無効データが追加されたデータをパケット生成部39に出力する。 パケット生成部39は、1サイクル転送量算出部33によって算出された、1サイクルに転送しなければならないライン数を信号線(6)を介して入力している。
パケット生成部39は、無効データが追加されたデータを無効データ追加部38から受信した回数をカウントアップし、その回数がその1サイクルに転送しなければならないライン数に達した場合に、そのライン数だけ受信したデータを連結して実データを生成するとともに、その実データにヘッダ部を追加してアイソクロナスパケットを生成して伝送路に送出する。
次に、コンピュータなどで処理する場合についてフロー図22、23を用いて説明する。
図22の処理では、1サイクルにおいて転送されるべきライン数と1パケットに含めるライン数が等しい場合の処理を説明する。1サイクルにおいて転送されるべきライン数と1パケットに含めるライン数(固定長にするライン数)は等しくなくても良く、等しくない場合の処理を図23に示す。
図22のフロー図は、1サイクルにおいて転送されるべきライン数と1パケットに含めるライン数が等しい場合の処理を説明する。図13に対応する。ステップS221では、画像データの種類を基に、1サイクルにおいて転送されるべき画像データのライン数およびそのライン数に対応するデータ量(1サイクルにおいて転送されるべきデータ量)を算出する。
ステップS222では、可変長符号化(もしくは他の前処理)によって処理された画像データのうち、1サイクルにおいて転送されるべきライン数分のデータをバッファ部(メモリ)に格納する。
ステップS223では、算出されたライン数に対応するデータ量と、バッファ部に格納されたデータとの差を算出するとともに、バッファ部に格納されたデータの方が小さい場合にはその差だけ、バッファ部に格納されたデータに無効なデータを追加する。なお、バッファ部に格納されたデータの方が大きい場合は、図23の場合となる。
ステップS224では、無効データが追加されたデータを基に、パケットを生成して送信する。
なお、ステップS222でバッファに格納するデータは、1サイクルにおいて転送されるべきライン数ではなく、予め設定された他の値のライン数分とすることも可能である。図23に示すフロー図は、1サイクル転送ライン数より固定長にするライン数のほうが大きい場合を示している。図15のデータ1、データ2に対応する。まずは、データ1について説明する。
図23に示すフロー図のステップS231では、画像データの種類を基に、1サイクルにおいて転送されるべき画像データのライン数、固定長にするライン数(1パケットに含めるライン数)、および、その固定長にするライン数に対応するデータ量を算出する。
ステップS232では、可変長符号化(もしくは他の前処理)によって処理された画像データのうち、固定長にするライン数分のデータをバッファ部(メモリ)に格納する。
ステップS233では、算出された固定長にするライン数に対応するデータ量と、バッファ部に格納されたデータとの差を算出するとともに、その差だけ、バッファ部に格納されたデータに無効なデータを追加する。
ステップS234では、無効データが追加されたデータを先頭から1サイクルにおいて転送される画像データのライン数に対応するデータ量ずつ切り出して、その切り出したデータ量毎にパケットを生成して送信する。
データ2では、S233とS234が若干異なる。
ステップS231では、画像データの種類を基に、1サイクルにおいて転送されるべき画像データのライン数、固定長にするライン数(1パケットに含めるライン数)、および、その固定長にするライン数に対応するデータ量を算出する。
ステップS232では、可変長符号化(もしくは他の前処理)によって処理された画像データのうち、固定長にするライン数分のデータをバッファ部(メモリ)に格納する。
ステップS233では、算出された固定長にするライン数に対応するデータ量と、バッファ部に格納されたデータとの差を算出するとともに、その差だけ、バッファ部に格納されたデータに無効なデータを、複数サイクルで無効データを均等に配置できるように、データ量を計算しておく。
ステップS234では、バッファから1サイクル毎において転送される画像データのライン数に対応するデータ量ずつ切り出して、その切り出したデータ量毎に均等に配置する無効データを付加してパケットを複数個分生成して送信する。フローは省略する。
(実施例2)
次に、実施例2の説明をする。実施例2は実施例1の変形例である。
上記実施例1のヘッダ部には、画像データの各ラインの読み出しタイミングを決めるHSYNC(水平同期信号)信号の位置を示す情報、画像データのサイズ(ライン数、1ライン当たりのピクセル数)等が含まれる。
受信側のノードで、データを復号する場合、無効データが常に一定の割合で含まれていることが好ましい。このため、以上の説明では、無効データがアイソクロナスパケットの実データ内に適度に分散される場合を扱った。
しかし、無効データのアイソクロナスパケットの実データの末尾や先頭の1箇所に追加することも可能である。
その場合、図4に示すように、図2と比較して、1ライン平均データ量・読み出しデータ量算出部37が、無効データ書き込み部41と、読み出し指示部42に置き換わり、無効データ追加部38がなくなる。
図4の無効データ書き込み部41は、信号線(2)を介して書き込み先のバッファが切り替わるタイミングを受け取るとともに、信号線(7)を介して1サイクルに転送しなければならないバイト数を受け取る。そして、無効データ書き込み部41は、符号化部23からの書き込みが不可となったバッファに格納されているデータのバイト数を取得し、1サイクルに転送しなければならないバイト数と、その取得したバイト数との差をとり、その差だけ、無効なデータ(無効バイト)をバッファに格納されているデータの末尾に追加する。
読み出し指示部42は、1サイクル転送量算出部33によって算出された1サイクルで転送しなければならないバイト数を信号線(7)を介して入力する。
そして、無効データ書き込み部による無効データのバッファへの書き込みが終了すると、読み出し指示部42は、符号化部23からの書き込みが無効となっているバッファ(第1バッファ28、第2バッファ29のいずれか一方のバッファ)に格納された、今回のサイクルで転送するデータを、先頭から、その1サイクルで転送しなければならないバイト数だけ読み出す指示をアクセス制御部31に出力する。
パケット生成部43は、前段のバッファからデータを受信する毎に、そのデータを実データに持つアイソクロナスパケットを生成して、伝送路に送出する。
なお、以上では、1サイクルで最低限転送しなければならないライン数(バイト数)で固定長にする場合を説明した。しかし、一般には、ライン数が多ければ多いほど、より長いバイト数で固定長にすればよくなり、符号量監視部36による制御が一層容易になる。
(実施例3)
以下では、1サイクルで転送しなければならないライン数を超えたライン数で固定長にする場合を扱う。この場合も、上記の説明同様、無効データをアイソクロナスパケットの実データ領域に適度に分散する場合と、無効データをアイソクロナスパケットの実データ領域の先頭または末尾に追加する場合を考える。
まず、1サイクルで転送しなければならないライン数を超えたライン数で固定長にする場合において、無効データを適度に分散する場合、図2の1サイクル転送量算出部33は、装置種別またはチャネル番号を入力すると、その装置種別またはチャネル番号に対応する、1サイクルで転送しなければならないライン数、固定長にするライン数、固定長にするライン数に対応するバイト数を算出(取得)する。
図2の書き込み先切替タイミング生成部32は、固定長にするライン数と、HSYNC(水平同期信号)信号を入力して、符号化部23からのデータ書き込みを許可するバッファ(第1バッファ28、第2バッファ29のいずれか)を切り替える。すなわち、この場合、第1バッファ28および第2バッファ29はいずれも、固定長にするライン数に対応するバイト数分の可変長符号化されたデータを格納可能なFIFOとなる。
1ライン平均データ量・読み出しデータ量算出部37は、1サイクル転送量算出部33によって算出された固定長にするライン数およびそのライン数に対応するバイト数を信号線(3)を介して入力するとともに、書き込み先切替タイミング生成部32によって算出された切替タイミングを示すクロックを信号線(2)を介して入力する。
切替タイミングを示すクロックが、1ライン平均データ量・読み出しデータ量算出部37に入力されると、1ライン平均データ量・読み出しデータ量算出部37は、その切替タイミングによって符号化部23からのデータ書き込みが無効となったバッファ(第1バッファ28、第2バッファ29のいずれか一方のバッファ)に格納された、今回のサイクルで転送するデータのバイト数を取得する。
そして、1ライン平均データ量・読み出しデータ量算出部37は、今回バッファから取得したバイト数を、固定長にするライン数で割ることによって、バッファから1回に読み出すデータ量を算出する。
また、1ライン平均データ量・読み出しデータ量算出部37は、固定長にするライン数に対応するバイト数を、その固定長にするライン数で割ることによって、無効データを今回バッファから取得したバイト数中に分散させる場合に目安として用いる、1ライン当たりの平均バイト数を算出する。
バッファから読み出すデータ量(バイト数)を信号線(4)を介して入力したアクセス制御部31は、その時点では符号化部23からの書き込みが許可されていないバッファ、すなわち、今回転送するデータがバッファリングされたバッファ(第1バッファ28、第2バッファ29のいずれか)に対し、その先頭からそのバイト数だけデータを出力するように指示する。
その指示にしたがって、バッファからそのバイト数のデータが出力されると、そのデータは無効データ追加部38に入力される。また、無効データ追加部38は、1ライン当たりの平均バイト数を信号線(5)を介して入力している。
無効データ追加部38は、1ライン当たりの平均バイト数と、バッファから取得したデータのバイト数との差をとり、その差だけ、無効データ(そのピクセルの値が有効でないことを示す符号が含まれるデータ)を追加する。そして、無効データが追加されたデータをパケット生成部39に出力する。
パケット生成部39は、1サイクル転送量算出部33によって算出された、1サイクルに転送しなければならないライン数を信号線(6)を介して入力している。
パケット生成部39は、無効データが追加されたデータを無効データ追加部38から受信した回数をカウントアップし、その回数がその1サイクルに転送しなければならないライン数に達した場合に、そのライン数だけ受信したデータを連結して実データを生成するとともに、その実データにヘッダ部を追加してアイソクロナスパケットを生成する。
(実施例4)
続いて、1サイクルで転送しなければならないライン数を超えたライン数で固定長にする場合において、無効データを先頭または末尾に追加する場合を説明する。
その場合、図4の無効データ書き込み部41は、信号線(2)を介して符号化部23からのデータ書き込み先のバッファが切り替わるタイミングを受け取るとともに、信号線(7)を介して固定長にするライン数に対応するバイト数を受け取る。そして、無効データ書き込み部41は、符号化部23からの書き込みが不可となったバッファに格納されているデータのバイト数を取得し、固定長にするライン数に対応するバイト数と、その取得したバイト数との差をとり、その差だけ、無効なデータ(無効バイト)をバッファに格納されているデータの末尾に追加する。
読み出し指示部42は、1サイクル転送量算出部33によって算出された1サイクルで転送しなければならないライン数に対応するバイト数を信号線(7)を介して入力する。
そして、無効データ書き込み部41による無効データのバッファへの書き込みが終了すると、読み出し指示部42は、符号化部23からの書き込みが無効となっているバッファ(第1バッファ28、第2バッファ29のいずれか一方のバッファ)に格納された、今回のサイクルで転送するデータを、先頭から、その1サイクルで転送しなければならないバイト数ずつ、読み出す指示をアクセス制御部31に出力する。
パケット生成部43は、前段のバッファからデータを受信する毎に、そのデータを実データに持つアイソクロナスパケットを生成して、伝送路に送出する。 なお、以上の説明では、固定長にするライン数が1サイクルで転送しなければならないライン数と一致する場合と、固定長にするライン数が1サイクルで転送しなければならないライン数を超えた場合を扱った。しかし、固定長にするライン数が1サイクルで転送しなければならないライン数を超えるかどうかは装置(チャネル)によって変わるのが一般的である。その意味では、1サイクル転送量算出部33は、通常、図5に示すような表を保持していて、その表に基づいて、1サイクルで転送する必要があるライン数、固定長にするライン数、固定長にするライン数に対応するバイト数を取得している。
例えば、図5の項番「2」は、図3の項番「2」(DVDプレーヤーからの画像データ)に対応しているが、この項番では、1サイクルに転送しなければならないライン数=2ラインであるため、そのライン数をそのまま固定長にするライン数に設定すると、符号量制御部36による符号量制御がそれほど容易には行えなくなる。2ライン×4=8ラインを固定長にするライン数に設定することで、符号量制御を容易に行えるようにしている。
以下に、可変長符号化としてハフマン(Huffman)符号化を採用した場合において、ピクセルをRGBで表現した場合とYUVで表現した場合の符号化テーブルを図6Aおよび図6Bに示す。
図6Aは、ピクセルをRGBで表現した場合の、ハフマン方式の符号化テーブルを示す図である。
図6Aに示すように、R成分に対応するR成分用符号化テーブル内に、有効でないデータ(無効データ)の出現確率Pが示されている。無効データは、その出現確率に応じた冗長性を持つ符号に対応させられることになる。
受信側でアイソクロナスパケットの実データを復号する場合、R成分を参照して、それが無効データかどうかが判定される。
図6Bは、ピクセルをYUVで表現した場合の、ハフマン方式の符号化テーブルを示す図である。
図6Bに示すように、輝度成分Yに対応する輝度成分Y用符号化テーブル内に、有効でないデータ(無効データ)の出現確率Pが示されている。無効データは、その出現確率に応じた冗長性を持つ符号に対応させられることになる。
受信側でアイソクロナスパケットの実データを復号する場合、輝度成分Yを参照して、それが無効データかどうかが判定される。
(実施例5)
図7では、無効データをデータ内に分散させて、そのデータを固定長にする場合が想定されている。この例では、1サイクルで転送しなければならないライン数=固定長にするライン数=4ラインに設定されている。図2の1サイクル転送量算出部33は、4ラインの長さを3200バイト(=800バイト×4)と算出している。
そのサイクルで、実際に可変長符号化の結果としてバッファに格納されたデータは、1ライン目が1200バイト、2ライン目が600バイト、3ライン目が700バイト、4ライン目が660バイトである。その和は、3160バイトであり、固定長として設定した3200バイトからは40バイト不足している。
図2の1ライン平均データ量・読み出しデータ量算出部37は、バッファから取得したデータのバイト数(3160バイト)をライン数(4ライン)で割ることで、1回にバッファから読み出すデータ量(790バイト)を算出する。
また、1ライン平均データ量・読み出しデータ量算出部37は、1サイクルで転送しなければならないバイト数(3200バイト)を、1サイクルで転送しなければならないライン数(4ライン)で割ることによって、無効データを今回バッファから取得したバイト数中に分散させる場合に目安として用いる、1ライン当たりの平均バイト数(800バイト)を算出する。
無効データ追加部38は、1ライン当たりの平均バイト数(800バイト)と、前段のバッファから入力されたデータのバイト数(790バイト)との差をとり、その差だけ無効データをそのバッファから入力されたデータに追加して、パケット生成部39に出力する。
(実施例6)
図8では、無効データを末尾に追加して、そのデータを固定長にする場合が想定されている。この例では、1サイクルで転送しなければならないライン数=固定長にするライン数=4ラインに設定されている。図4の1サイクル転送量算出部33は、4ラインの長さを3200バイト(=800バイト×4)と算出している。
そのサイクルで、実際に可変長符号化の結果としてバッファに格納されたデータは、1ライン目が1200バイト、2ライン目が600バイト、3ライン目が700バイト、4ライン目が660バイトである。その和は、3160バイトであり、固定長として設定した3200バイトからは40バイト不足している。
図4の無効データ書き込み部41は、バッファから取得したデータのバイト数(3160バイト)と、1サイクル転送量算出部33から取得した4ラインの長さ(3200バイト)との差をとり、その差(40バイト)だけ、無効データをバッファ内のデータの末尾に追加する。
図4の読み出し指示部42は、無効データ書き込み部41による無効データの書き込みが終了すると、1サイクル転送量算出部33によって算出された1サイクルで転送しなければならないライン数に対応するバイト数(3200バイト)を、バッファから読み出す指示をアクセス制御部31に出力する。
バッファから読み出されたデータは、図4のパケット生成部43に出力される。
なお、以上の説明では、送信するアイソクロナスパケットのヘッダ部に、ラインの読み出しタイミングを決めるHSYNC信号の位置を示す情報を挿入して、受信側で、ラインの切れ目を判定するようにしていたが、他の方法を用いて、ラインの切れ目を判定することもできる。例えば、ラインの終わりを示すラインエンド信号を符号化したものを各ラインの最後に入れるようにしてもよい。この場合、そのラインエンド信号は、その出現確率に応じた冗長性を持つ符号に対応させられることになる。
また、以上では、1サイクル転送量算出部33によって算出されたライン数が整数値である場合を説明したが、このライン数は端数(非整数値)であってもよい。
(実施例7)
実施例7では空パケットの転送について説明する。図13はIEEE1394の1サイクル時間125μsecにおいてデータ転送行うタイミングを示している。転送するライン数は、各チャネルの画像データが転送レートの条件等の仕様を満たすために1サイクル内で転送しなければならない。
例えば、カーナビゲーション装置の場合の、1サイクルで転送するライン数、バイト数を算出する。カーナビゲーション装置の1フレームは800×480である。そして1秒間に転送するフレームのレートは60(フレーム/sec)である。また、1フレーム内には、480ラインが含まれている。よって、1秒間に転送しなければならないライン数は、60(フレーム/sec)×480(ライン/フレーム)である。このライン数を各サイクルに等分すると、60(フレーム/sec)×480(ライン/フレーム)×(125μsec/1sec)=3.6ラインとなる。すなわち、1サイクルに3.6ラインが平均して転送されるようにすれば、転送レートの条件を満たすことができる。しかし、1サイクルで、複数のラインを区切りよく転送する場合は(その必要は必ずしもないが)、4ラインをこの場合、転送することになる。ここで、映像のブランク期間を考慮して、60(フレーム/sec)×480(ライン/フレーム)×(125μsec/1sec)×0.9とし、1割ほど余裕をみておく方法もある。
4ラインを転送する場合において、1ラインが800バイト、各ピクセルが3バイト(1画素:R、G、B等)、圧縮率が(1/3)であるので、この4ラインに対応するバイト数は、800(バイトライン)×4(ライン)×3×(1/3)=3200バイトとなる。
ところが、4ライン−3.6ライン=0.4ライン分が不要となる。1フレームで考えると480ライン/4ライン=120回の転送データのうち120回×0.4ライン=48ラインが1フレーム転送時の送りすぎるライン数になる。よって48ライン/4=12回は空パケットを転送しなければならない。
図13の(a)に空パケットの転送方法(1)を示す。この例では最後にまとめて12回空パケットを転送している。しかし、最後にまとめて空パケットを転送すると、出力された空パケットを受けた側のメモリサイズをその分用意しておかなければならないなどの問題がある。
そこで、図13に示す空パケットを分散する(b)空パケットの転送方法(2)を用いることで問題を解決する。例えば、本例では12回送る空パケットを分散させて転送する。
図14に1フレームにおける空パケットの分散転送のフロー図を示す。
ステップS141では、1サイクル(例えば125μsec)にどれくらいのデータ量を転送するべきかを計算する。上記カーナビの例では60(フレーム/sec)×480(ライン/フレーム)×(125μsec/1)=3.6ラインとなる。
ステップS142では、1フレームあたりの転送パケット数を計算する。例えば、X=((480ライン/4ライン)=120回を算出する(1フレームあたりの総パケット数:X)。
ステップS143では、その計算結果に基づいて端数(4ライン−3.6ライン=0.4ライン)を計算する。その後空パケットの転送回数を算出する。例えば、Y=((480ライン/4ライン)×(4ライン−3.6ライン))=12回を算出する(1フレームあたりの空パケット数:Y)。
ステップS144では、転送回数iおよび空パケット挿入回数nをクリア(n=1)する。
ステップS145では、1サイクル分のデータを転送ごとにiをインクリメントする(i=i+1)。
ステップS146ではi=Xであるかを判断する。異なる場合はまだ1フレーム分のデータが転送さていないため空パケットを挿入するかを判断するステップS147に移行する。同じであれば1フレーム分のデータ転送が完了したと判断しこの処理を終了し、次のフレームの転送を開始する(このフローには示していない)。次のフレームに移行する場合はVSYNC信号(垂直同期信号)により同期を取り移行する。
ステップS147では、i=(X/Y)×nであるかを判断する。つまり等間隔で空パケットを挿入するため、iが本例では10回データを転送するたびに1つの空パケットを挿入する。またnはYより大きい値にはならない。同じであれば空パケットを挿入するためにステップS148に移行する。そうでなければS145に移行する。
ステップS148では、空パケットを挿入する指示をし、nの値をインクリメント(n=n+1)してS145に移行する。つまり、この指示により実データパケットを何回か送るごとに空パケットを送ることができる。
また、上記説明した処理を図2に示したシステムで行う場合について説明する。
図2に示す1サイクル転送量算出部33で、1サイクル(125μsec)にどれくらいのデータ量転送することができるか計算する。
次に、ステップS142〜S148に示した空パケットの挿入タイミング計算を1サイクル転送量算出部33または、専用の処理部を別に設けて行う。
パケット生成部39は、1サイクル転送量算出部33によって算出された、1サイクルに転送しなければならないライン数情報と空パケット挿入情報を信号線(6)を介して入力する。別に処理部を設けた場合は別の信号線が必要である。
そして、パケット生成部39は無効データが追加されたデータを無効データ追加部38から受信した回数をカウントアップする。その回数がその1サイクルに転送しなければならないライン数に達した場合に、そのライン数だけ受信したデータを連結して実データを生成する。それとともに、その実データを追加してアイソクロナスパケットを生成して伝送路に送出する。このときに空パケット挿入情報がイネーブルであればパケット生成部39は空パケットを伝送路に送出し、ディセーブルであれば実データのパケットを伝送路に送出する。
(実施例8)
実施例8では、実施例7のように1サイクルで転送するデータ(ライン数)と圧縮部で生成したバッファ内のデータ(ライン数)に親和性がある場合でなく、つまり1サイクル転送ライン数とバッファ内のライン数が同じでない場合(転送レイヤでの処理単位と圧縮レイヤでの処理単位が等しくない場合)について説明する。
親和性がない場合の例を図15に示す。実施例7同様1サイクルが125μsecのアイソクロナスパケット等を想定して説明する。1サイクル転送ライン数が例えば4ラインであるときに、バッファ内のライン数が8ラインであるような場合、すなわち転送レイヤでの処理単位<圧縮レイヤでの処理単位である場合は、図15のデータ1のように制御を行う。
図16について説明をする。図16は実施例8の動作を示したフロー図である。
ステップS161ではデータを取得する。例えば、画像データの1フレームの1ライン分のデータを画像処理装置から取得する。ステップS162〜S164では圧縮処理(符号量制御や暗号化処理を含んでもよい)を行う。ステップS162では予測符号化を行い予測量を算出し、ステップS163では量子化を行い。ステップS164では符号化を行う。
ステップS165では、例えば圧縮後のデータ1ライン分をバッファへ書き込む。ここで、バッファは図9で示した前処理バッファ92や図12で示した圧縮後データ用バッファ125である。また図2で示した第1バッファ、第2バッファである。このS162〜S165については上記で説明した図12の圧縮部(圧縮レイヤ)で行う処理と略同じであるので詳細な説明はしない。
ステップS166では、所定ライン分の転送データが格納されているかを判断する。所定ライン分格納されていればステップS167に移行する。格納されていなければステップS168に移行する。ここで、所定ラインは転送レイヤでの処理単位を示し、1サイクルで転送する分のライン数が溜まったかを判断している。このステップは図2に示す構成において実施する場合は1ライン平均データ量・読み出しデータ量算出部37で行う。
ステップS167では、パディングを挿入するべきであるかを判断する。本例では圧縮ライン数が8ラインで、1サイクルで転送するライン数が4であるので8ライン目であればステップS168に移行する。そうでない場合、データにEOFを付加した4ライン分だけのデータを生成してステップS169に移行する。このステップは図2に示す構成において実施する場合は1ライン平均データ量・読み出しデータ量算出部37にこの機能を追加する。
なお、4ライン分の圧縮データが、1パケットデータ量よりも多い場合は、データ量よりはみ出た分は後続パケットの先頭へ回すことになる。
ステップS168では、所定ライン分の圧縮データとEOFと「0」詰めをして所定のデータ量(8ライン)を形成しS169に移行する。このステップは図2に示す構成において実施する場合は無効データ追加部38にこの機能を追加する。
ステップS169では、転送路の規格に合わせたパケットを形成して転送をする。このステップは図2に示す構成において実施する場合はパケット生成部39で行う。
なお、上記ステップでは所定ライン分溜まってからパディングの挿入の可否を判断しているが、1ライン分ごとにパディングの挿入の可否を判断し、その後に所定ライン分格納されたかを判断してもかまわない。ここでのパディングの判断はカウンタなどにより1ラインごとにカウントし、そのカウント値により挿入の判断を行う。
上記説明した処理を図2に示したシステムで行う場合について説明する。
1ライン平均データ量・読み出しデータ量算出部37によりステップS166、S167に示したパディングの挿入タイミング(パディング挿入情報)を計算する。ここで、この計算は専用の処理部を別に設けて行う。
バッファから読み出すデータ量(バイト数、可変長符号化なので、正確にはビット数)を信号線(4)を介して入力したアクセス制御部31は、その時点では符号化部23からの書き込みが許可されていないバッファ、すなわち、今回転送するデータがバッファリングされたバッファ(第1バッファ28、第2バッファ29のいずれか)に対し、その先頭からそのバイト数だけデータを出力するように指示する。アクセス制御部31からの指示にしたがって、バッファからそのバイト数のデータが出力されると、そのデータは無効データ追加部38に入力される。
無効データ追加部38は、1ライン平均データ量・読み出しデータ量算出部37から1ライン当たりの平均バイト数、バッファから取得したデータのバイト数との差をとり、その差だけ、無効データを追加する。そのとき、パディング挿入情報がイネーブルであれば無効データが追加され、ディセーブルであればパディングを追加しないデータをパケット生成部39に出力する。別に処理部を設けた場合は他に信号線が必要である。
パケット生成部39は、1サイクル転送量算出部33によって算出された、1サイクルに転送しなければならないライン数情報を信号線(6)を介して入力する。
そして、パケット生成部39は無効データが追加されたデータを無効データ追加部38から受信した回数をカウントアップする。その回数がその1サイクルに転送しなければならないライン数に達した場合に、そのライン数だけ受信したデータを連結して実データを生成する。それとともに、その実データを追加してアイソクロナスパケットを生成して伝送路に送出する。
(実施例9)
実施例8の場合、1サイクル転送ライン数が例えば4ラインであるときに、バッファ内のライン数が8ラインであると次のような問題が発生する。すなわち、圧縮部(圧縮レイヤ)のバッファサイズを最低限に押さえ込めない。また、図17のように最後のパケットにだけEOFと「0」詰めをするようにすると、符号量を制御すると最後にしわ寄せがくる場合がある。
そこで、図15のデータ1にある「0」詰め部分(AやB)を最初のパケットに分割して付加する。つまり、データ2にあるように「0」詰め部分をA/2やB/2にしてそれぞれのパケットのEOFの後段に付加する。
図17について説明をする。図17は実施例9の動作を示したフロー図である。
ステップS171ではデータを取得する。例えば、画像データの1フレームの1ライン分のデータを画像処理装置から取得する。ステップS172〜S175では圧縮処理(符号量制御や暗号化処理を含んでもよい)を行う。ステップS172では予測符号化を行い予測量を算出し、ステップS173では量子化を行い。ステップS174では符号化を行う。
ステップS175では、例えば圧縮後のデータ1ライン分をバッファへ書き込む。ここで、バッファは図9で示した前処理バッファ92や図12で示した圧縮後データ用バッファ125である。また図2で示した第1バッファ28、第2バッファ29である。このS172〜S175については上記で説明した圧縮部(圧縮レイヤ)で行う処理と略同じであるので詳細な説明はしない。
ステップS176では、所定ライン分の転送データが格納されているかを判断する。所定ライン分格納されていればステップS177に移行する。格納されていなければステップS171に移行する。実施例8と同様に1サイクルで転送するライン数が4で、圧縮ライン数が8の場合、2サイクルで転送レイヤでの制約と圧縮レイヤとの制約が一致するので、転送サイクルの2サイクル分で、8ライン分の圧縮データが送られればよい。あるいは、バッファ内のライン数8を2分割して4ラインを所定ラインとしてもよい。前者の場合は、1サイクル内で、圧縮データが、必ずしも4ラインでなくてもよく、3ラインとか、5ラインとか、端数の4.5ラインでもよい。要は、2サイクル目で8ライン分伝送できていれば問題ない。後者の場合は、平均的に伝送するために、4ラインとして制御する。
このステップは図2に示す構成において実施する場合は1ライン平均データ量・読み出しデータ量算出部37にこの機能を追加する。
ステップS177では、パディングの量を計算する。上記のように、1サイクル転送ライン数が例えば4ラインであるときに、バッファ内のライン数が8ラインであるような場合、実施例8で算出した「0」詰め部分AまたはB(パディングの量)を算出しておく。そして、8ライン/4ライン=2であるのでAとBを2分割する。つまり、データ2に示す1パケットのデータとEOFの後に、A/2やB/2の「0」詰めの量(パディングの量)を算出しステップS179に移行する。このステップは図2に示す構成において実施する場合は1ライン平均データ量・読み出しデータ量算出部37にこの機能を追加する。
ステップS178では、所定ライン分圧縮データとEOFと「0」詰めをし(4ラインのデータは、データ+EOF+算出した分(A/2またはB/2)の「0」詰め)、S179に移行する。このステップは図2に示す構成において実施する場合は無効データ追加部38にこの機能を追加する。
ステップS179では、転送路の規格に合わせたパケット形成して転送をする。このステップは図2に示す構成において実施する場合はパケット生成部39で行う。
なお、上記ステップでは所定ライン分溜まってからパディングの挿入の可否を判断しているが、1ライン分ごとにパディング挿入の可否の判断をしてもよい。その後に所定ライン分格納されたかを判断し、所定ラインになったときにステップS178の処理をしてもかまわない。ここでのパディングの判断はカウンタなどにより1ラインごとにカウントし、そのカウント値により挿入の判断を行う。
なお、パディング量の算出は毎回行わなくてもよく、変更がなければ算出をしなくてもよい。
上記説明した処理を図2に示したシステムで行う場合について説明する。
1ライン平均データ量・読み出しデータ量算出部37によりステップS176、S177に示したパディング量(パディング量情報)を計算する。ここで、この計算は専用の処理部を別に設けて行う。
アクセス制御部31からの指示にしたがって、バッファからそのバイト数のデータが出力されると、そのデータは無効データ追加部38に入力される。
無効データ追加部38は、1ライン平均データ量・読み出しデータ量算出部37から1ライン当たりの平均バイト数、バッファから取得したデータのバイト(正確ににはビット数)数との差とパディング量情報により、ステップS178に示すように無効データ(A/2、B/2分)を追加する。そのとき、パディング量情報に従ってパディングをデータをパケット生成部39に出力する。別に処理部を設けた場合は他に信号線が必要である。
パケット生成部39は、1サイクル転送量算出部33によって算出された、1サイクルに転送しなければならないライン数情報を信号線(6)を介して入力する。
そして、パケット生成部39は無効データが追加されたデータを無効データ追加部38から受信した回数をカウントアップする。その回数がその1サイクルに転送しなければならないライン数に達した場合に、そのライン数だけ受信したデータを連結して実データを生成する。それとともに、その実データを追加してアイソクロナスパケットを生成して伝送路に送出する。
(実施例10)
実施例10では、1サイクルで転送するデータ(ライン数)と圧縮部で生成するバッファ内のデータ(ライン数)に親和性がなく、1サイクル転送ライン数が8で、バッファ内のライン数が4のような場合、すなわち転送レイヤでの処理単位>圧縮レイヤでの処理単位である場合について説明する。1サイクルを125μsecのアイソクロナスパケット等を想定して説明する。1サイクル転送ライン数が例えば8ラインであるときに、バッファ内のライン数が4ラインであるような場合は、図18のデータ3のように制御を行う。
図19は実施例10の動作を示したフロー図である。
ステップS191ではデータを取得する。例えば、画像データの1フレームの1ライン分のデータを画像処理装置から取得する。ステップS192〜S195では圧縮処理(符号量制御や暗号化処理を含んでもよい)を行う。ステップS192では予測符号化を行い予測量を算出し、ステップS193では量子化を行い。ステップS194では符号化を行う。
ステップS195では、例えば圧縮後のデータ1ライン分をバッファへ書き込む。ここで、バッファは図9で示した前処理バッファ92や図12で示した圧縮後データ用バッファ125である。また図2で示した第1バッファ28、第2バッファ29である。このS192〜S195については上記で説明した圧縮部(圧縮レイヤ)で行う処理と略同じであるので詳細な説明はしない。
ステップS196では、所定ライン分の転送データが格納されているかを判断する。所定ライン分格納されていればステップS197に移行する。格納されていなければステップS191に移行する。ここで、所定ライン分とは圧縮レイヤでの処理単位を示し、例えば、1サイクルで転送する8ラインのうち最初4ライン分のデータが溜まったかを判断している。このステップは図2に示す構成において実施する場合は1ライン平均データ量・読み出しデータ量算出部37で行う。
ステップS197では、最初の所定ライン分(第1の所定ライン値:C)の圧縮データとEOFと「0」詰めをして所定のデータ量(4ライン)を形成しS198に移行する。このステップは図2に示す構成において実施する場合は無効データ追加部38にこの機能を追加する。
ステップS198では、1サイクルの転送分のライン数(第2の所定ライン値:D)の転送データが格納されているかを判断する。1サイクルの転送ライン分格納されていればステップS199に移行する。格納されていなければステップS191に移行する。ここでは、1サイクルで転送する8ラインのうち残りの4ライン分のデータが溜まったかを判断している。このステップは図2に示す構成において実施する場合は1ライン平均データ量・読み出しデータ量算出部37にこの機能を追加する。
ステップS199では、最初の所定ライン分の圧縮データとEOFと「0」詰めをして所定のデータ量(8ライン)を形成しS1910に移行する。
ステップS1910では、転送路の規格に合わせたパケットを形成して転送をする。このステップは図2に示す構成において実施する場合はパケット生成部39で行う。
なお、上記ステップでは所定ライン分(圧縮レイヤの処理単位)溜まってからパディングの挿入の可否を判断しているが、1ライン分ごとにパディングの挿入の可否を判断し、その後に所定ライン分格納されたかを判断してもかまわない。ここでのパディングの判断はカウンタなどにより1ラインごとにカウントし、そのカウント値により挿入の判断を行う。
上記説明した処理を図2に示したシステムで行う場合について説明する。
1ライン平均データ量・読み出しデータ量算出部37によりステップS196、S198に示したパディング挿入タイミング(パディング挿入位置情報)を計算する。ここで、この計算は専用の処理部を別に設けて行う。
アクセス制御部31からの指示にしたがって、バッファからそのバイト数のデータが出力されると、そのデータは無効データ追加部38に入力される。
無効データ追加部38は、1ライン平均データ量・読み出しデータ量算出部37から1ライン当たりの平均バイト数、バッファから取得したデータのバイト数との差をとり、その差だけ、無効データを追加する。そのとき、パディング挿入位置情報がイネーブルであれば無効データを挿入指示されたラインにイネーブルの間挿入される。ディセーブルであれば無効データを追加しない。その後、生成されたデータをパケット生成部39に出力する。別に処理部を設けた場合は他に信号線が必要である。
そのとき、パディング挿入位置情報に従ってパディングをデータをパケット生成部39に出力する。別に処理部を設けた場合は他に信号線が必要である。
パケット生成部39は、1サイクル転送量算出部33によって算出された、1サイクルに転送しなければならないライン数情報を信号線(6)を介して入力する。
そして、パケット生成部39は無効データが追加されたデータを無効データ追加部38から受信した回数をカウントアップする。その回数がその1サイクルに転送しなければならないライン数に達した場合に、そのライン数だけ受信したデータを連結して実データを生成する。それとともに、その実データを追加してアイソクロナスパケットを生成して伝送路に送出する。
(実施例11)
上記までは送信について述べたが、実施例11では上記発明の送信パケットを受信した場合の復号について説明する。図20に示すLSI200は画像処理とデータの送受信処理を行うものである。送信部は上記で説明したように画像処理装置(例えばDVDプレーヤー、カーナビゲーションシステム、地上ディジタル)などから送信されデータをVIF部201(Video Interface)が受信する。そのVIF部201の出力を、エンコード部202でエンコードし、その結果を例えばIEEE1394規格の転送部206により出力する。
受信部は、例えばIEEE1394の規格で送信されたデータを受信部204で受信し、その結果をデコード部205でデコードする。デコードされたデータをVIF部203を介してLCDパネルなどの表示装置に転送する。
なお、図20では、LSI200に対する入力データ及び出力データは1394規格により転送を行う例を示しているので、転送部206は1394規格用のブロック化(パケット生成)を行ない、受信部204は1394規格用のブロックを受信する例となっているが、当然ながら他規格によりデータを転送する場合には、他規格に合わせた転送および受信を行う構成となる。
また、当然ながら、エンコード部202で行う圧縮処理(暗号化処理を含んでも構わない)と、デコード部205で行う復元処理(暗号の復号処理を含んでも構わない)とは、それぞれ対応した処理内容である。
図21は受信時の動作について示したものである。
ステップS211ではパケットを受信する。
ステップS212では、上記実施例で形成されたデータとEOFと「0」から構成されるパケット内より、EOFより前の実データを取り出す。
ステップS213では復号処理し、ステップS214では復号後のデータをバッファなどに格納する。
なお上記各実施例ではEOFの後に「0」詰めを行っているが、「0」に限定するものではない。
ところで、前述したようなフローチャートの処理を標準的なコンピュータのCPUに行わせるための制御プログラムを作成してコンピュータ読み取り可能な記録媒体に記録させておき、そのプログラムを記録媒体からコンピュータに読み込ませてCPUで実行させるようにしても、本発明の実施は可能である。
記録させた制御プログラムをコンピュータシステムで読み取ることの可能な記録媒体の例を図24に示す。このような記録媒体としては、例えば、コンピュータシステム240に内蔵若しくは外付けの付属装置として備えられるROMやハードディスク装置などの記憶装置241、コンピュータシステム240に備えられる媒体駆動装置242へ挿入することによって記録された制御プログラムを読み出すことのできるフレキシブルディスク、MO(光磁気ディスク)、CD−ROM、DVD−ROMなどといった携帯可能記録媒体243等が利用できる。
また、記録媒体は通信回線244を介してコンピュータシステム240と接続される、プログラムサーバ245として機能するコンピュータシステムが備えている記憶装置246であってもよい。この場合には、制御プログラムを表現するデータ信号で搬送波を変調して得られる伝送信号を、プログラムサーバ245から伝送媒体である通信回線244を通じてコンピュータシステム240へ伝送するようにし、コンピュータシステム240では受信した伝送信号を復調して制御プログラムを再生することでこの制御プログラムをコンピュータシステム240のCPUで実行できるようになる。
図25は、アイソクロナスパケットの詳細な構成図の一例を示している。アイソクロナスパケットは、ヘッダが4バイト、ヘッダCRCが4バイト、それにデータ、そしてデータCRCが4バイトの構成となっている。データはさらに右図のように細かく分かれており、CIPヘッダのほかに、ソースパケットヘッダと圧縮データの組み合わせのソースパケットが複数個繰り返された形となっている。たとえば、圧縮データの部分のみ暗号化される場合もある。このような構成とすることで、アイソクロナスパケットは、ソースパケットのN倍となるようにデータを丸められるようなこともある。
また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。

Claims (14)

  1. 画像データを圧縮して転送する画像データ転送装置において、
    前記画像データの種類を基に、1サイクルにおいて転送される前記画像データのライン数およびそのライン数に対応するデータ量を算出する1サイクル転送量算出部と、
    可変長符号化によって処理された前記画像データのうち、前記ライン数分のデータを格納することが可能なバッファ部と、
    前記算出されたライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加部と、
    前記無効データが追加されたデータを基に、パケットを生成して送信するパケット生成部を備えることを特徴とする画像データ転送装置。
  2. 画像データを圧縮して転送する画像データ転送装置において、
    前記画像データの種類を基に、1サイクルにおいて転送される前記画像データのライン数、固定長にするライン数、および、その固定長にするライン数に対応するデータ量を算出する1サイクル転送量算出部と、
    可変長符号化によって処理された前記画像データのうち、前記固定長にするライン数分のデータを格納することが可能なバッファ部と、
    前記算出された固定長にするライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加部と、
    前記無効データが追加されたデータを先頭から前記1サイクルにおいて転送される前記画像データのライン数に対応するデータ量ずつ切り出して、その切り出したデータ量毎にパケットを生成して送信するパケット生成部を備えることを特徴とする画像データ転送装置。
  3. 前記固定長にするライン数は、前記1サイクルにおいて転送される前記画像データのライン数以上であることを特徴とする請求項2記載の画像データ転送装置。
  4. 前記画像データが持つ冗長性を、前処理を行うことによって削減する前処理部と、
    前処理の結果に対して、さらに粗い量子化を行う量子化部と、
    前記さらに粗く量子化されたデータに対して可変長符号化を行う符号化部と、
    前記前処理の結果を基に、処理する画像データに適合しそうな量子化テーブルを作成または選択する量子化テーブル作成部と、
    前記さらに粗い量子化の結果を基に、処理する画像データに適合しそうな符号化テーブルを作成または選択する符号化テーブル作成部、をさらに備えることを特徴とする請求項1または2記載の画像データ転送装置。
  5. 画像データを圧縮して転送する画像データ転送方法において、
    前記画像データの種類を基に、1サイクルにおいて転送される前記画像データのライン数およびそのライン数に対応するデータ量を算出する1サイクル転送量算出ステップと、
    可変長符号化によって処理された前記画像データのうち、前記ライン数分のデータをバッファ部に格納するステップと、
    前記算出されたライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加ステップと、
    前記無効データが追加されたデータを基に、パケットを生成して送信するステップを備えることを特徴とする画像データ転送方法。
  6. 画像データを圧縮して転送する画像データ転送方法において、
    前記画像データの種類を基に、1サイクルにおいて転送される前記画像データのライン数、固定長にするライン数、および、その固定長にするライン数に対応するデータ量を算出する1サイクル転送量算出ステップと、
    可変長符号化によって処理された前記画像データのうち、前記固定長にするライン数分のデータをバッファ部に格納するステップと、
    前記算出された固定長にするライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加ステップと、
    前記無効データが追加されたデータを先頭から前記1サイクルにおいて転送される前記画像データのライン数に対応するデータ量ずつ切り出して、その切り出したデータ量毎にパケットを生成して送信するステップを備えることを特徴とする画像データ転送方法。
  7. 前記固定長にするライン数は、前記1サイクルにおいて転送される前記画像データのライン数以上であることを特徴とする請求項6記載の画像データ転送装置。
  8. 前記画像データが持つ冗長性を、前処理を行うことによって削減する前処理ステップと、
    前処理の結果に対して、さらに粗い量子化を行う量子化ステップと、
    前記さらに粗く量子化されたデータに対して可変長符号化を行う符号化ステップと、
    前記前処理の結果を基に、処理する画像データに適合しそうな量子化テーブルを作成または選択する量子化テーブル作成ステップと、
    前記さらに粗い量子化の結果を基に、処理する画像データに適合しそうな符号化テーブルを作成または選択する符号化テーブル作成ステップ、をさらに備えることを特徴とする請求項5または6記載の画像データ転送方法。
  9. 画像データを圧縮して転送する画像データ転送装置のコンピュータに、
    前記画像データの種類を基に、1サイクルにおいて転送される前記画像データのライン数およびそのライン数に対応するデータ量を算出する1サイクル転送量算出処理と、
    可変長符号化によって処理された前記画像データのうち、前記ライン数分のデータをバッファ部に格納する処理と、
    前記算出されたライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加処理と、
    前記無効データが追加されたデータを基に、パケットを生成して送信する処理と、
    を実行させるためのプログラム。
  10. 画像データを圧縮して転送する画像データ転送装置のコンピュータに、
    前記画像データの種類を基に、1サイクルにおいて転送される前記画像データのライン数、固定長にするライン数、および、その固定長にするライン数に対応するデータ量を算出する1サイクル転送量算出処理と、
    可変長符号化によって処理された前記画像データのうち、前記固定長にするライン数分のデータをバッファ部に格納する処理と、
    前記算出された固定長にするライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加処理と、
    前記無効データが追加されたデータを先頭から前記1サイクルにおいて転送される前記画像データのライン数に対応するデータ量ずつ切り出して、その切り出したデータ量毎にパケットを生成して送信する処理と、
    を実行させるためのプログラム。
  11. 画像データを圧縮して転送する画像データ転送装置のコンピュータに実行させるプログラムが記録されており、当該コンピュータによって当該プログラムを読み出すことのできる記録媒体であって、
    前記画像データの種類を基に、1サイクルにおいて転送される前記画像データのライン数およびそのライン数に対応するデータ量を算出する1サイクル転送量算出処理と、
    可変長符号化によって処理された前記画像データのうち、前記ライン数分のデータをバッファ部に格納する処理と、
    前記算出されたライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加処理と、
    前記無効データが追加されたデータを基に、パケットを生成して送信する処理と、
    を当該コンピュータに行わせる。
  12. 画像データを圧縮して転送する画像データ転送装置のコンピュータに実行させるプログラムが記録されており、当該コンピュータによって当該プログラムを読み出すことのできる記録媒体であって、
    前記画像データの種類を基に、1サイクルにおいて転送される前記画像データのライン数、固定長にするライン数、および、その固定長にするライン数に対応するデータ量を算出する1サイクル転送量算出処理と、
    可変長符号化によって処理された前記画像データのうち、前記固定長にするライン数分のデータをバッファ部に格納する処理と、
    前記算出された固定長にするライン数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加処理と、
    前記無効データが追加されたデータを先頭から前記1サイクルにおいて転送される前記画像データのライン数に対応するデータ量ずつ切り出して、その切り出したデータ量毎にパケットを生成して送信する処理と、
    を当該コンピュータに行わせる。
  13. 入力データの種類を基に、1サイクルにおいて転送されるべき前記入力データの処理単位数およびその処理単位数に対応するデータ量を算出する1サイクル転送量算出部と、
    前記入力データのうち、前記処理単位数分のデータを格納することが可能なバッファ部と、
    前記算出された処理単位数に対応するデータ量と、前記バッファ部に格納されたデータとの差を算出するとともに、その差だけ、前記バッファ部に格納されたデータに無効なデータを追加する無効データ追加部と、
    前記無効なデータが追加されたデータを基に、パケットを生成して送信するパケット生成部を備えることを特徴とするデータ転送装置。
  14. 前記データ転送装置は更に、前記入力データを圧縮する圧縮処理部を備え、
    前記バッファ部は、前記圧縮処理部が圧縮した前記処理単位数分のデータを格納することを特徴とする請求項13に記載のデータ転送装置。
JP2008509681A 2006-03-30 2006-07-28 データ転送装置およびデータ転送方法 Expired - Fee Related JP4825265B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008509681A JP4825265B2 (ja) 2006-03-30 2006-07-28 データ転送装置およびデータ転送方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006096035 2006-03-30
JP2006096035 2006-03-30
PCT/JP2006/315053 WO2007116539A1 (ja) 2006-03-30 2006-07-28 データ転送装置およびデータ転送方法
JP2008509681A JP4825265B2 (ja) 2006-03-30 2006-07-28 データ転送装置およびデータ転送方法

Publications (2)

Publication Number Publication Date
JPWO2007116539A1 true JPWO2007116539A1 (ja) 2009-08-20
JP4825265B2 JP4825265B2 (ja) 2011-11-30

Family

ID=38580844

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008509681A Expired - Fee Related JP4825265B2 (ja) 2006-03-30 2006-07-28 データ転送装置およびデータ転送方法

Country Status (4)

Country Link
US (1) US20090010342A1 (ja)
EP (1) EP2003892A4 (ja)
JP (1) JP4825265B2 (ja)
WO (1) WO2007116539A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6467923B2 (ja) * 2015-01-06 2019-02-13 日本電気株式会社 Tsデータ読出し装置及びtsデータ読出し方法
EP3099005B1 (en) * 2015-05-26 2019-12-25 Alcatel Lucent Provisioning of new broadband communication services using reverse power feeding
US10324865B2 (en) 2016-09-06 2019-06-18 Apple Inc. Maintaining ordering requirements while converting protocols in a communications fabric
JP2018105958A (ja) 2016-12-26 2018-07-05 ルネサスエレクトロニクス株式会社 データ転送装置およびデータ転送方法
JP7022947B2 (ja) 2017-09-01 2022-02-21 パナソニックIpマネジメント株式会社 コンテンツ記録装置、コンテンツ編集装置、コンテンツ再生装置、コンテンツ記録方法、コンテンツ編集方法、および、コンテンツ再生方法
US10255218B1 (en) * 2018-06-25 2019-04-09 Apple Inc. Systems and methods for maintaining specific ordering in bus traffic

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11167630A (ja) * 1997-12-04 1999-06-22 Canon Inc 情報処理方法及びシステム並びに記憶媒体
JP2004061877A (ja) * 2002-07-29 2004-02-26 Sumitomo Electric Ind Ltd 表示システム、表示装置、及びデータ生成装置
JP2004207891A (ja) * 2002-12-24 2004-07-22 Matsushita Electric Ind Co Ltd データ通信装置、データ通信方法、データ通信プログラム及びデータ通信プログラムを記録した記録媒体

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5528317A (en) * 1994-01-27 1996-06-18 Texas Instruments Incorporated Timing circuit for video display having a spatial light modulator
US5737024A (en) * 1995-03-23 1998-04-07 Storage Technology Corporation System for storing computer data using a video tape recorder
JPH09298728A (ja) * 1996-05-02 1997-11-18 Victor Co Of Japan Ltd Mpeg再生装置
JPH10327415A (ja) * 1997-05-22 1998-12-08 Mitsubishi Electric Corp 動きベクトル検出装置
GB9821518D0 (en) * 1998-10-02 1998-11-25 Sony Uk Ltd Digital signal processing and signal format
JP4362795B2 (ja) 1999-07-13 2009-11-11 日本ビクター株式会社 動画像符号化装置及びその方法
JP3812267B2 (ja) 2000-02-21 2006-08-23 日本ビクター株式会社 動画像符号化装置及びその方法
EP1175047B1 (de) * 2000-07-14 2007-05-02 Siemens Aktiengesellschaft Verfahren und Anordnung zum Schutz gegen Paketverlusten bei einer paketorientierten Datenübertragung
JP3748376B2 (ja) * 2000-08-22 2006-02-22 松下電器産業株式会社 送信装置、ソースパケット生成装置、パケット形態決定方法、及び記録媒体
US20020097678A1 (en) * 2001-01-23 2002-07-25 Bisher James A. Method and apparatus for bandwidth management associated with misbehaving sessions
US7075993B2 (en) * 2001-06-12 2006-07-11 Digital Interactive Streams, Inc. Correction system and method for enhancing digital video
AU2004241602B2 (en) * 2003-05-20 2008-05-08 Syndiant, Inc. Digital backplane
EP1790170A2 (en) * 2004-09-14 2007-05-30 Gary Demos High quality wide-range multi-layer compression coding system
US7649938B2 (en) * 2004-10-21 2010-01-19 Cisco Technology, Inc. Method and apparatus of controlling a plurality of video surveillance cameras
US20060126726A1 (en) * 2004-12-10 2006-06-15 Lin Teng C Digital signal processing structure for decoding multiple video standards

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11167630A (ja) * 1997-12-04 1999-06-22 Canon Inc 情報処理方法及びシステム並びに記憶媒体
JP2004061877A (ja) * 2002-07-29 2004-02-26 Sumitomo Electric Ind Ltd 表示システム、表示装置、及びデータ生成装置
JP2004207891A (ja) * 2002-12-24 2004-07-22 Matsushita Electric Ind Co Ltd データ通信装置、データ通信方法、データ通信プログラム及びデータ通信プログラムを記録した記録媒体

Also Published As

Publication number Publication date
US20090010342A1 (en) 2009-01-08
WO2007116539A1 (ja) 2007-10-18
JP4825265B2 (ja) 2011-11-30
EP2003892A4 (en) 2010-10-06
EP2003892A1 (en) 2008-12-17

Similar Documents

Publication Publication Date Title
JP4935817B2 (ja) 多チャンネルデータ転送装置およびその方法
JP4825265B2 (ja) データ転送装置およびデータ転送方法
JP4038996B2 (ja) 信号処理装置および信号処理方法
JP3193947B2 (ja) データ送信システム及びデータ送信方法
KR101336243B1 (ko) 부가 정보가 삽입된 영상 데이터의 전송 스트림 구조,송수신 방법 및 장치
JP5156655B2 (ja) 画像処理装置
EP1845690B1 (en) Information-transmission apparatus and information-transmission method
US20060291468A1 (en) Selective re-transmission of lost multi-media data packets
JP2012510737A (ja) デジタル画像ストリームのフレームの符号化と復号化の方法およびシステム
US20100095114A1 (en) Method and system for encrypting and decrypting data streams
JP5064305B2 (ja) ビットレート変換装置及び変換方法
JPH08237650A (ja) データバッファの同期システム
US20060104350A1 (en) Multimedia encoder
KR20030031803A (ko) 수신된 멀티미디어 데이터를 저장하는 버퍼의 용량을가변할 수 있는 멀티미디어 데이터 복원장치
US20080101409A1 (en) Packetization
EP1605466A1 (en) Transcoding closed captioning data from broadcast DTV onto DVD
JP2006295645A (ja) 特殊再生データ生成方法、配信装置及びビデオ再生システム
JP4274653B2 (ja) 動画像合成装置および動画像合成方法
US20040091159A1 (en) Image compression device and method for performing a frame skipping process
JP4491918B2 (ja) データ配信装置及び方法、データ配信システム
US7787624B2 (en) Method for inserting synchronization markers into a video stream, compatible with a block cipher
JP3547210B2 (ja) 音声付き動画データ作成装置
US20010019311A1 (en) Method of data transmission over a bus system
JP2006339980A (ja) 映像再生装置
JP2008016939A (ja) プログラム、情報記憶媒体、データ伝送装置およびデータ伝送システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110812

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: 20110906

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: 20110909

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140916

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees