JP2008283394A - 通信装置及び通信用集積回路 - Google Patents

通信装置及び通信用集積回路 Download PDF

Info

Publication number
JP2008283394A
JP2008283394A JP2007124921A JP2007124921A JP2008283394A JP 2008283394 A JP2008283394 A JP 2008283394A JP 2007124921 A JP2007124921 A JP 2007124921A JP 2007124921 A JP2007124921 A JP 2007124921A JP 2008283394 A JP2008283394 A JP 2008283394A
Authority
JP
Japan
Prior art keywords
data
area
unit
packet
stored
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.)
Pending
Application number
JP2007124921A
Other languages
English (en)
Inventor
Shinichiro Yamauchi
進一郎 山内
Toyoji Ishiwatari
豊史 石渡
Akio Takeuchi
昭夫 竹内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2007124921A priority Critical patent/JP2008283394A/ja
Priority to CNA2008100993061A priority patent/CN101304419A/zh
Priority to US12/118,189 priority patent/US8018931B2/en
Publication of JP2008283394A publication Critical patent/JP2008283394A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】製造のための初期コストを抑えつつ、高速なマルチメディアデータの送信処理を実現することができる通信装置を提供する。
【解決手段】分割データ格納部は、符号化データ領域301aに格納された符号化データを読み出し、所定サイズ毎にチェックサムを算出し、算出したチェックサムと対応する所定サイズの符号化データ(ブロックデータ)とを外部メモリ110の各パケットデータ領域310a、310b・・・の第1領域311に順次格納する。CPUは、プログラムを実行することにより、分割データ格納部が各パケットデータ領域の第1領域311にブロックデータとチェックサムとを格納すると、順次格納されたチェックサムを読み出し、読み出したチェックサムを含むヘッダ情報を生成してそのチェックサムが格納されたパケットデータ領域の第2領域312に格納する。
【選択図】図3

Description

本発明は、ネットワーク上での動画像データ、音声データ等の送信処理技術に関する。
近年、ネットワークを利用した動画像データや音声データなどのマルチメディアデータの授受が、比較的容易になされるようになり、例えば、カメラにより撮影された動画像データをネットワークに接続された端末に送出し、端末において受領された動画像データを再生するようなことが行われている。
カメラにより撮影された動画像データの送信処理は、一般的に、カメラが制御プログラムを実行することにより、以下のように行われる。
まず、動画像データを1フレーム毎にMPEG(Moving Picture Experts Group)等に圧縮符号化した符号化データがカメラ内のある記憶領域に格納されると、格納された符号化データを読み出し、符号化データが格納されていた記憶領域とは別の記憶領域にコピーする。
符号化データを別の記憶領域にコピーするのは、以降説明するパケットデータの送出処理と並行して、次の符号化データを格納できるようにするためである。
次に、別の記憶領域にコピーされた符号化データについて、所定サイズ毎にチェックサムを算出して算出したチェックサムを含むヘッダ情報を生成し、生成したヘッダ情報とチェックサムに対応する所定サイズの符号化データとからなるパケットデータを生成し、送出する。
このように、動画像データの送信処理では、記憶領域内で符号化データのコピーが行われるため、圧縮率等との関係により符号化データのサイズが増大するとコピー時間が増大し、1符号化データ当たりの送信処理時間が増大することとなる。
ところで、動画像データを送信する場合、予め規格等により定められたフレームレートに従って、各符号化データを所定時間内に送信する必要がある。各符号化データをフレームレートに従った所定時間内に送信することができない場合には、いわゆるフレーム落ちが発生し、受信側で、動画像を連続して再生することができなくなるためである。
上述したようにサイズの大きい符号化データの送信処理には時間を要し、フレーム落ちを発生させることなく動画像データを送信するためには、各符号化データの送信処理を高速化する必要がある。
送信処理を高速化する技術として、上述のように制御プログラム(ソフトウェア)により行われていた送信処理全体をハードウェアにより実現する方法が知られている(例えば、特許文献1)。
送信処理全体をハードウェアにより実現することによって、ソフトウェアにより送信処理を実現した場合に発生する処理のオーバーヘッドを抑えることができる。
特開2001−268159号公報
しかし、送信処理全体をハードウェアにより実現する場合、一般的に製造のための初期コストが増大してしまう。
そこで、本発明は係る問題に鑑みてなされたものであり、製造のための初期コストを抑えつつ、高速なマルチメディアデータの送信処理を実現することができるカメラ等に利用可能な通信装置を提供することを目的とする。
上記課題を解決するために、本発明に係る通信装置は、複数のブロックデータを含む各特定データをネットワークに順次送出する通信装置であって、前記特定データについて、第1所定サイズのデータであるブロックデータ毎に当該ブロックデータの内容を反映した検証用データを生成し、当該検証用データと当該検証用データに対応するブロックデータとを外部メモリの第2所定サイズの各領域に格納する格納回路と、CPUを含み、前記格納回路により前記外部メモリに格納された各ブロックデータについて、対応する検証用データを読み出し当該検証用データを含むヘッダ情報を生成し、当該ヘッダ情報と当該検証用データに対応するブロックデータとからなるパケットデータを送出するよう制御するためのプログラムを前記CPUに実行させるパケット制御部と、前記パケット制御部による制御に従い、各パケットデータを順次送出するネットワーク部とを備え、検証用データを生成し、当該検証用データと当該検証用データに対応するブロックデータとを格納する前記格納回路と、ヘッダ情報を生成し、パケットデータを送出するよう制御する前記CPUとが、並列して動作するよう構成したことを特徴とする。
また、上記課題を解決するために、通信装置に用いられる本発明にかかる通信用集積回路は、複数のブロックデータを含む各特定データをネットワークに順次送出する通信用集積回路であって、前記特定データについて、第1所定サイズのデータであるブロックデータ毎に当該ブロックデータの内容を反映した検証用データを生成し、当該検証用データと当該検証用データに対応するブロックデータとを外部メモリの第2所定サイズの各領域に格納する格納回路と、CPUを含み、前記格納回路により前記外部メモリに格納された各ブロックデータについて、対応する検証用データを読み出し当該検証用データを含むヘッダ情報を生成し、当該ヘッダ情報と当該検証用データに対応するブロックデータとからなるパケットデータを送出するよう制御するためのプログラムを前記CPUに実行させるパケット制御部と、前記パケット制御部による制御に従い、各パケットデータを順次送出するネットワーク部とを備え、検証用データを生成し、当該検証用データと当該検証用データに対応するブロックデータとを格納する前記格納回路と、ヘッダ情報を生成し、パケットデータを送出するよう制御する前記CPUとが、並列して動作するよう構成したことを特徴とする。
ここで、第2所定サイズの各領域とは、外部メモリにおいてアドレス値が連続する所定サイズの各格納領域をいう。
また、並列して動作するとは、格納回路による検証用データを生成し、当該検証用データと当該検証用データに対応するブロックデータとを格納する処理と、CPUによるヘッダ情報を生成し、パケットデータを送出するよう制御する処理との少なくとも一部が同時に実行されることをいう。
上述の構成を備える本発明に係る通信装置、及び、通信用集積回路は、CPUと別個のハードウェアである格納回路とを備え、格納回路は、特定データについてブロックデータ毎に対応する検証用データを生成し、生成した検証用データと対応するブロックデータとを外部メモリへ格納する。一方、CPUは、プログラムを実行することにより、格納回路が外部メモリに格納した各ブロックデータについて、対応する検証用データを含むヘッダ情報を生成し、パケットデータの送信のための制御を行う。この格納回路の動作とCPUの動作とが並行して行われるため、高速に各特定データの送信を行うことができる。
また、各特定データの送信処理の一部を、ハードウェアである格納回路に行わせるため、送信処理の全てをハードウェアにより実現する場合に比べ、通信装置の製造のための初期コストを抑えることができる。
また、前記外部メモリの第2所定サイズの各領域である各第1領域は、当該第2所定サイズに所定値を加えたアドレス値間隔になるよう配置されるものであり、前記プログラムは、各第1領域に格納された各ブロックデータについて、対応する検証用データを読み出し前記ヘッダ情報を生成すると、前記所定値のサイズ分の、第1領域と連続する領域である第2領域に当該ヘッダ情報を格納し、当該第2領域に格納されたヘッダ情報と当該第1領域に格納された検証用データに対応するブロックデータとからなるパケットデータを順次送出するよう制御するためのものであることとしてもよい。
これにより、各パケットデータを構成するヘッダ情報とブロックデータとが外部メモリ上の連続する領域に格納されるため、それぞれが外部メモリ上の離れた領域に格納される場合よりも、ネットワーク部は外部メモリからヘッダ情報とブロックデータとをより高速に読み出すことができ、各パケットデータの送出を高速に行うことができる。
また、前記通信装置は、更に前記外部メモリ上の空き領域から前記外部メモリの第2所定サイズの各領域である各第1領域について、当該第1領域と連続する所定のアドレス値分の領域である第2領域と当該第1領域とからなるパケットデータ領域を確保し、当該パケットデータ領域を示すアドレス値を指定するアドレス制御部を備え、前記格納回路は、前記アドレス制御部が指定する各アドレス値が示す各パケットデータ領域の各第1領域に各ブロックデータと当該ブロックデータに対応する検証用データとを格納し、前記プログラムは、前記アドレス制御部が指定する各アドレス値が示す各パケットデータ領域について、第1領域に格納されたブロックデータに対応する検証用データを読み出し前記ヘッダ情報を生成すると、当該ヘッダ情報を第2領域に格納し、当該パケットデータ領域に格納されたヘッダ情報とブロックデータとからなるパケットデータを順次送出するよう制御するためのものであることとしてもよい。
これにより、各パケットデータ領域は、アドレス制御部が指定する外部メモリ上の任意のアドレス値が示す領域に配置されるため、各パケットデータ領域を連続して配置するための物理的に連続する領域を外部メモリ上に確保することなく、各符号化データの送出を行うことができる。
また、前記通信装置は、更に前記外部メモリ上の空き領域から前記外部メモリの第2所定サイズの各領域である各第1領域について、当該第1領域と連続する所定のアドレス値分の領域である第2領域と当該第1領域とからなるパケットデータ領域を確保し、当該パケットデータ領域を示すアドレス値を指定するアドレス制御部と、前記アドレス制御部から指定された各アドレス値について、当該アドレス値が示すパケットデータ領域の第2領域に、当該アドレス値の次に指定されたアドレス値を格納するオフセット制御部を備え、前記格納回路は、各パケットデータ領域の各第2領域について、当該第2領域に格納されたアドレス値が示すパケットデータ領域の第1領域にブロックデータと当該ブロックデータに対応する検証用データとを格納し、前記プログラムは、各パケットデータ領域の各第2領域に格納された各アドレス値が示す各パケットデータ領域について、第1領域に格納された検証用データを読み出し、前記ヘッダ情報を生成すると、当該ヘッダ情報を第2領域に格納し、当該パケットデータ領域に格納されたヘッダ情報とブロックデータとからなるパケットデータを順次送出するよう制御するためのものであることとしてもよい。
これにより、オフセット制御部は、各パケットデータ領域の第2領域に次にアクセスすべきパケットデータ領域のアドレス値を格納するため、各パケットデータ領域が外部メモリ上の任意のアドレス値が示す領域に配置されていても、格納回路とCPUとは、第2領域に格納されたアドレス値を参照することにより、各パケットデータ領域にアクセスすることができる。
また、前記通信装置は、更に前記外部メモリ上の空き領域を示す物理アドレス値と対応付けて論理アドレス値を記憶し、当該論理アドレス値を指定した前記外部メモリへのアクセスがなされると、当該論理アドレス値と対応する前記物理アドレス値に変換するMMU(Memory Management Unit)を備え、前記格納回路は、論理アドレス値を指定して、各ブロックデータと当該ブロックデータに対応する検証用データとを各第2所定サイズの領域に格納し、前記プログラムは、論理アドレスを指定して、各第2所定サイズの領域から検証用データを読み出すためのものであることとしてもよい。
これにより、格納回路とCPUとが論理アドレス値を指定して各第2所定サイズの領域にアクセスすると、MMUが論理アドレス値に対応する物理アドレス値に変換するため、格納回路とCPUとは、外部メモリにおける各第2所定サイズの領域の物理的な配置を意識することなく、アクセスすることができる。
また、前記特定データは、順次入力される画像データまたは音声データを所定単位毎に圧縮符号化した符号化データであり、前記通信装置は、更に前記外部メモリに各符号化データを順次格納する符号化部と、前記符号化部により前記外部メモリに格納される符号化データのサイズを監視し、第1所定サイズ分格納される毎に第1所定サイズ分の符号化データの読出しを指示する読出指示信号を前記格納回路に送出するレングス監視部とを備え、前記ブロックデータは、前記格納回路が、前記レングス監視部から前記読出し指示信号を受領する毎に前記外部メモリから読み出した第1所定サイズ分の符号化データであることとしてもよい。
これにより、格納回路は、符号化部による符号化データ全体の格納完了を待つことなく、第1所定サイズ分の符号化データが格納される毎に、第1所定サイズ分の符号化データを1つのブロックデータとして処理することができるため、無駄な待ち時間を削減し、高速に各符号化データの送信を行うことができる。
また、前記特定データは、順次入力される画像データまたは音声データを所定単位毎に圧縮符号化した符号化データであり、前記通信装置は、更に前記符号化データを前記外部メモリに格納し、格納に際し、当該符号化データ中に所定のビットパターンを検出する毎に、所定のビットパターンを検出した旨の検出信号を前記格納回路に送出するパターン監視部を備え、前記格納回路は、前記パターン監視部から一の前記検出信号を受領した後、次の前記検出信号を受領するまでに前記外部メモリに格納された符号化データを読み出し、読み出した符号化データをブロックデータとして扱うこととしてもよい。
これにより、外部メモリに所定のビットパターンの符号化データが格納されると、パターン監視部がこれを検出するため、CPUに負荷を与えることなく所定のビットパターンを検出することができ、また、格納回路は検出信号を受領すると、その前に受領した検出信号以降に格納された所定のビットパターンを含む符号化データをブロックデータとして処理するため、例えば、MPEG−4 for RTP通信のように所定のビットパターン(再同期マーカ)毎にパケットデータを送信しなければならない場合に対応することができる。
また、前記パターン監視部は、前記符号化データ中に所定のビットパターンを検出すると、前記外部メモリ上の所定のアドレス境界を先頭とした領域に、検出したビットパターン以降の符号化データを格納することとしてもよい。
これにより、所定のバイト数境界が、例えば、4バイト境界であるとすると、パターン監視部は所定のビットパターンを検出すると、外部メモリ上の4バイト境界を先頭とした領域に所定のビットパターン以降の符号化データを格納するため、バイトアライメントを保証することができる。
また、前記通信装置は、前記パケット制御部に代えて、前記格納回路により前記外部メモリに格納された各ブロックデータについて、対応する検証用データを読み出し当該検証用データを含むヘッダ情報を生成するヘッダ付与回路と、CPUを含み、前記ヘッダ付与回路が生成した各ヘッダ情報について、当該ヘッダ情報と当該ヘッダ情報に含まれる検証用データに対応するブロックデータとからなるパケットデータを送出するよう制御するためのプログラムを前記CPUに実行させる送出制御部とを備えることとしてもよい。
これにより、ヘッダ情報はヘッダ付与回路により生成されるため、パケット制御部のCPUはヘッダ情報を生成する必要がなく、CPUの負荷を軽減することができる。
また、前記ヘッダ付与回路は、データ通信におけるプロトコル階層の層別に任意のヘッダを選択して前記ヘッダ情報を生成することとしてもよい。
これにより、ヘッダ付与回路は、レイヤー毎に任意のヘッダを選択してヘッダ情報を生成するため、記通信装置が使用するプロトコルに応じたヘッダ情報を生成することができる。
また、前記通信装置は、前記パケット制御部に代えて、前記格納回路により前記外部メモリに格納された各ブロックデータについて、前記検証用データを用いることなく生成可能なヘッダ情報の一部となる部分ヘッダ情報を生成するヘッダ付与回路と、CPUを含み、前記格納回路により前記外部メモリに格納された各ブロックデータについて、対応する検証用データを読み出し、当該検証用データと当該ブロックデータに対応する前記部分ヘッダ情報とからなるヘッダ情報を生成し、当該ヘッダ情報と前記検証用データに対応するブロックデータとからなるパケットデータを送出するよう制御するためのプログラムを前記CPUに実行させる送出制御部を備えることとしてもよい。
これにより、検出用データを用いることなく生成可能な部分ヘッダ情報が、ヘッダ付与回路により生成され、パケット制御部のCPUは、プログラムを実行することにより、ヘッダ付与回路により生成された部分ヘッダ情報を用いてヘッダ情報を生成するため、CPUの負荷を軽減することができる。
また、前記格納回路は、前記ブロックデータ毎に当該ブロックデータと当該ブロックデータに対応する前記部分ヘッダ情報との内容を反映して検証用データの前記生成を行うこととしてもよい。
また、前記特定データは、順次入力される画像データまたは音声データを所定単位毎に圧縮符号化した符号化データであり、前記通信装置は、更に各符号化データのデータサイズを指定する符号化設定部と、順次入力される前記画像データまたは前記音声データを所定単位毎に前記符号化設定部が指定するデータサイズに圧縮符号化し、圧縮符号化後の各符号化データを前記外部メモリに順次格納する符号化部を備えることとしてもよい。
これにより、符号化部は、画像データまたは音声データを所定単位毎に符号化設定部が指定するデータサイズに圧縮符号化するため、例えば、符号化設定部がネットワークの通信速度に応じたデータサイズを指定することにより、各符号化データを予め規格等により定められたフレームレートに従って送出できる可能性が高まり、いわゆるフレーム落ちの発生を抑えることができる。
また、前記外部メモリは論理的に分割された第1ネットワークデータ領域と第2ネットワークデータ領域とを有し、各第2所定サイズの領域は、特定データ毎に前記第1ネットワークデータ領域と前記第2ネットワークデータ領域とに交互に配置されるものであることとしてもよい。
これにより、1つの特定データについての各第2所定サイズの領域が第1パケット領域に配置されたとすると、次の特定データについての各第2所定サイズの領域は第2パケット領域に配置されるため、まだパケットデータとして送出されていないブロックデータを、次の特定データのブロックデータ及び対応する検証用データにより上書きしないようにするフロー制御を比較的容易にすることができる。
また、前記通信装置は、再送の可能性を前提とした通信を行うものであり、前記外部メモリは、再送が必要とされうる各パケットデータを構成する前記ブロックデータを格納する再送用領域を有し、前記パケット制御部は、各パケットデータについて、前記ネットワーク部が当該パケットデータを送出してから所定時間内に、当該パケットデータの送出先から当該パケットデータを受領した旨の応答を受領していない場合に、当該応答を受領していないパケットデータを構成する前記ブロックデータを前記再送用領域に移動させるプログラムを前記CPUに実行させることとしてもよい。
これにより、CPUはプログラムを実行することにより、各パケットデータについて、送出後所定時間内に送信先からパケットデータを受領した旨の応答を受領していない場合には、そのパケットデータ、即ち再送が必要とされうるパケットデータを構成するヘッダ情報とブロックデータとを外部メモリ上の再送用領域に移動させる。そのため、適切な所定時間を設定することにより、再送が必要とされうるパケットデータを構成するデータが格納されている領域を、格納回路が次の特定データを処理することによって上書きすることを防止することができる。
また、本発明に係る通信装置は、データをネットワークに送出する通信装置であって、前記データについて、所定サイズ毎に誤り検出用データを生成する検出部と、前記データを所定のメモリ領域に転送するデータ転送部と、前記データについて、前記データ転送部により前記メモリ領域に転送され終えた部分を所定サイズ毎に、当該所定サイズのデータに対応する誤り検出用データと共にパケットとして送出するよう制御するための制御プログラムを実行するCPUと、前記CPUによる制御に従い、各パケットをネットワークに送出するネットワーク部とを備え、前記検出部と前記データ転送部と前記CPUとが並列して動作するよう構成したことを特徴とする。
これにより、検出部とデータ転送部とCPUとが並列して処理するため、高速にパケットを送出することができる。
以下、本発明の実施の形態について、図面を参照しながら説明する。
≪実施の形態1≫
<概要>
実施の形態1に係る通信装置は、動画像データの送信処理全体をソフトウェアにより実現する通信装置を改良し、送信処理の一部をハードウェアにより実現することによって、送信処理の高速化を図るものである。
実施の形態1に係る通信装置においてなされる動画像データの送信処理を、データ処理とプロトコル処理と送出処理とに分けて説明する。
まず、データ処理とは、動画像データをフレーム毎に圧縮符号化した各符号化データについて、送出するパケットデータのペイロードサイズ毎にチェックサムを算出し、自装置の外部にあるメモリ(以下、「外部メモリ」という)上の所定サイズの各領域(以下、「第1領域」という)に、送出するパケットデータのペイロードサイズのデータ(以下、「ブロックデータ」という)と対応するチェックサムとを格納することをいう。
ここで、各第1領域は、所定値、例えば256に自領域のサイズを加えたアドレス値間隔で、つまり所定値分だけ間隔を空けて外部メモリ上に配置され、各第1領域へはブロックデータ、チェックサムの順でデータが格納される。
以下、所定値のサイズ分の領域を「第2領域」といい、第2領域と第2領域に連続する第1領域とからなる領域を「パケットデータ領域」という。
次に、プロトコル処理とは、外部メモリの各パケットデータ領域について、第1領域に格納されたチェックサムを読み出し、読み出したチェックサムを含むヘッダ情報を生成し、生成したヘッダ情報を第2領域に格納することをいう。
次に、送出処理とは、各パケットデータ領域について、第1領域に格納されたブロックデータと第2領域に格納されたヘッダ情報とを読み出し、これらのデータからなるパケットデータをネットワークに送出することをいう。なお、各第1領域に格納されたチェックサムは既にヘッダ情報に含まれているため、送出しない。
実施の形態1に係る通信装置は、動画像データの送信処理のうち、データ処理を専用のハードウェアである分割データ格納部に行わせ、プロトコル処理と送出処理についての制御とを制御プログラムを実行するCPU(Central Processing Unit)に行わせる。
従って、送信処理全体を専用のハードウェアで実現する場合と比較し、通信装置の製造にかかる初期コストを抑えることができる。
また、送信処理の一部であるデータ処理を分割データ格納部に行わせることにより、データ処理が済んだデータについては、その時点以降からCPUに順次プロトコル処理を行わせることができるため、送信処理の高速化を図ることができる。
また、分割データ格納部は、1つのブロックデータとそのチェックサムとを物理的に連続する第1領域に格納し、CPUは、その第1領域の前に配置され、第1領域と連続する第2領域にヘッダ情報を格納する。
そのため、最終的に送出する各パケットデータについて、これを生成するために必要なブロックデータとヘッダ情報とが外部メモリ上の連続する領域に格納されることとなり、外部メモリ上の離れた領域に両者がそれぞれ格納される場合よりも、一般的には高速なデータ読出しをプログラムによって実現でき、更に送出処理の高速化を図ることができる。
<構成>
以下、実施の形態1に係る通信装置100の構成について説明する。
図1は、実施の形態1に係る通信装置100の構成図である。
同図に示すとおり、通信装置100は、自装置の外部にある外部メモリ110と接続し、また、ネットワーク120を介して端末130と接続している。
なお、外部メモリ110は、通信装置100により処理された符号化データ、ブロックデータ、チェックサム、ヘッダ情報を格納するメモリであり、以下では、外部メモリ110の1アドレス分のサイズは1byteであり、外部メモリ110が1回に送出するデータのサイズ、即ち外部メモリ110のバス幅は4byteであるとして説明する。
また、ネットワーク120は、LAN(Local Area Network)またはWAN(Wide Area Network)であり、端末130は、通信装置100から送出されるパケットデータを受領し、動画像を再生するPC(Personal Computer)である。
通信装置100は、同図に示すとおり、MCU(Memory Control Unit)101、符号化部102、分割データ格納部103、CPU104、ネットワーク部105、内部バス106から構成される。
MCU101は、外部メモリ110へのアクセスが競合しないよう調停を行う一般的なアービタ回路であり、符号化部102、分割データ格納部103、CPU104、ネットワーク部105による外部メモリ110へのアクセスの調停を行う。
符号化部102は、通信装置100の外部から入力される動画像データをフレーム毎にMJPEG(Motion Joint Photographic Experts Group)、MPEG(Moving Picture Experts Group)、H.264等に変換する一般的な圧縮符号化回路であり、MCU101による調停結果に従って、圧縮符号化後の各符号化データを外部メモリ110の後述する符号化データ領域301a又は301bに格納し、格納が完了すると、分割データ格納部103に格納が完了した旨の通知を送出する。
なお、圧縮符号化の方法は問わないが、以下では、MPEGに符号化するものとして、説明する。
分割データ格納部103は、動画像データの送信処理のうちデータ処理を行う回路である。ここで、分割データ格納部103は、本発明における格納回路に相当し、各実施の形態及び変形例における分割データ格納部についても、同様である。
以下、分割データ格納部103について、図2を用いて詳細に説明する。
図2は、分割データ格納部103の構成を示す図である。
分割データ格納部103は、同図に示すとおり、バッファ201、チェックサム演算部202、DTC(Data Transfer Controller)206、制御部207から構成される。
バッファ201は、DTC206が外部メモリ110の後述する符号化データ領域301a又は301bから読み出した符号化データを格納するバッファである。
詳細には、符号化データは、外部メモリ110のバス幅に応じた所定サイズ(4byte)毎に送出されるため、バッファ201は、所定サイズ毎に符号化データを格納する。
また、バッファ201は、格納した符号化データを2byte毎にチェックサム演算部202へ送出する。
チェックサム演算部202は、内部に加算器を含み、2byteのデータの加算ができるように構成された回路であり、バッファ201から受領した2byteの符号化データを数値とみなした場合の全数値の合計値であるチェックサムを算出する。
なお、動画像データの送信処理開始時には、後述するCPU104により初期値として、チェックサムはゼロに設定される。
DTC206は、データの転送を行う回路であり、カウンタ203、レジスタ204、転送部205から構成される。
カウンタ203は、符号化データが格納された外部メモリ110の後述する符号化データ領域301a又は301b上のアドレス値(以下、「読み出し用アドレス値」という)と、ブロックデータ及びそのチェックサムを格納する外部メモリ110の後述するネットワークデータ領域302a又は302bの第1領域上のアドレス値(以下、「書き込み用アドレス値」という)とを保持する回路である。
動画像データの送信処理開始時に後述するCPU104により初期値として、読み出し用アドレス値には、後述する符号化データ領域301aの先頭アドレス値が設定され、書き込み用アドレス値には、最初にアクセスすべき後述するネットワークデータ領域302aの第1領域の先頭アドレス値が設定される。
読み出し用のアドレス値及び書き込み用のアドレス値は、データ転送の際に転送部205により更新される。また、符号化データ領域301a又は301bから1フレーム分の符号化データの読み出しが完了すると、制御部207によって読み出し用のアドレス値に他方の符号化データ領域、即ち符号化データ領域301aから1フレーム分の符号化データの読み出しが完了した場合には、符号化データ領域301bの、符号化データ領域301bから1フレーム分の符号化データの読み出しが完了した場合には、符号化データ領域301aの先頭アドレス値が設定される。
また、ネットワークデータ領域302a又は302bの各第1領域へブロックデータとそのチェックサムの格納が完了すると、制御部207によって書き込み用のアドレス値に他方のネットワークデータ領域、即ち、ネットワークデータ領域302aへの格納が完了した場合には、ネットワークデータ領域302b、ネットワークデータ領域302bへの格納が完了した場合には、ネットワークデータ領域302aにおいて最初にアクセスすべき第1領域の先頭アドレスが設定される。
レジスタ204は、第2領域のサイズ分のアドレス値と後述する符号化データ領域301a及び301bの先頭アドレス値と後述するネットワークデータ領域302a及び302bの最初にアクセスすべき第1領域の先頭アドレスとを保持する回路であり、これらのアドレス値は、動画像データの送信処理開始時に後述するCPU104により設定される。
転送部205は、外部メモリ110からの符号化データの読み出しと外部メモリ110へのブロックデータ及びチェックサムの格納を行う回路である。
具体的には、転送部205は、制御部207を介して符号化部102から、符号化データの格納が完了した旨の通知を受領すると、カウンタ203に設定された読み出し用アドレス値が示す外部メモリ110の後述する符号化データ領域301a又は301bから所定サイズ(4byte)毎に符号化データを読み出してバッファ201に格納し、所定サイズ(4byte)の符号化データを読み出す毎にカウンタ203に設定された読み出し用アドレス値を4つ増加させる。
また、転送部205は、バッファ201に格納された符号化データを、カウンタ203に設定された書き込み用アドレス値が示す外部メモリ110のネットワークデータ領域302a又は302bの第1領域に所定サイズ(4byte)毎に格納し、所定サイズ(4byte)の符号化データを格納する毎にカウンタ203に設定された書き込み用のアドレス値を4つ増加させる。
所定サイズ(4byte)毎に符号化データをネットワークデータ領域302a又は302bの第1領域に格納していった結果、ブロックデータサイズ分の符号化データの格納を完了すると、転送部205は、チェックサム演算部202からチェックサムを読み出し、カウンタ203に設定された書き込み用アドレス値が示す外部メモリ110の第1領域にチェックサムを格納する。
また、転送部205は、チェックサムの格納を完了する毎に制御部207にチェックサムの格納を完了した旨の通知を送出する。
なお、転送部205による外部メモリ110へのアクセスは、MCU101による調停結果に従って行う。
制御部207は、分割データ格納部103内の各部の制御を行う回路である。具体的には、制御部207は、符号化部102から符号化データの格納が完了した旨の通知を受領すると、転送部205に対し、その通知を転送する。
また、制御部207は、転送部205からチェックサムの格納を完了した旨の通知を受領すると、チェックサム演算部202のチェックサムの値はゼロにリセットし、CPU104にチェックサムの格納を完了した旨の通知を転送し、レジスタ204が保持する第2領域のサイズのアドレス値分、カウンタ203に設定された書き込み用のアドレス値を増加させる。
書き込み用のアドレス値を増加させるのは、各第1領域は、第2領域のサイズに自領域のサイズを加えたアドレス値間隔で外部メモリ上に配置されるため、第2領域として使用される領域を空けて次のブロックデータとそのチェックサムとの格納を行うためである。
また、制御部207は、符号化データ領域301a又は301bから1フレーム分の符号化データの読み出しが完了すると、読み出し用のアドレス値に他方の符号化データ領域の先頭アドレス値を設定し、また、ネットワークデータ領域302a又は302bの各第1領域へブロックデータとそのチェックサムの格納が完了すると、書き込み用のアドレス値に他方のネットワークデータ領域において最初にアクセスすべき第1領域の先頭アドレスを設定する。
CPU104は、通信装置100の内部にある図示しないメモリ(以下、「内部メモリ」という)に格納された制御プログラムを実行することにより、動画像データの送信処理のうちプロトコル処理と送出処理の制御を行う回路であり、CPU104及び内部メモリにより本発明におけるパケット制御部の機能を実現することができ、以下の各実施の形態及び変形例においても、同様である。
プロトコル処理について、具体的には、CPU104が制御プログラムを実行することにより、分割データ格納部103からチェックサムの格納が完了した旨の通知を受領すると、外部メモリ110の第1領域に格納されたチェックサムを読み出し、読み出したチェックサムを含むヘッダ情報を生成して、生成したヘッダ情報をそのチェックサムが格納された第1領域の前に配置された第2領域に格納する。ヘッダ情報の内容については後述する。
制御プログラムによる各第1領域に格納されたチェックサムの読出しと各第2領域へのヘッダ情報の格納については、例えばヘッダ情報を示す変数Hとブロックデータを示す変数Dとチェックサムを示す変数Cとをメンバとする構造体の変数Sと構造体の変数Sのアドレスを示すポインタ変数Aとを定義しておく方法により実現することができる。
その際、ポインタ変数Aに最初にアクセスすべきパケットデータ領域の先頭アドレスを初期値として設定し、変数Aが示すアドレスに格納された構造体変数Sのメンバ変数Cを指定すればチェックサムに、構造体変数Sのメンバ変数Hを指定すればヘッダ情報にアクセスすることが可能であり、変数Aを1ずつ増加させることによって、各パケットデータ領域に順次アクセスが可能となる。
また、送出処理の制御について、具体的には、CPU104が制御プログラムを実行することにより、生成したヘッダ情報を外部メモリ110の第2領域に格納すると、パケットデータ領域を示すアドレス値を指定して、第2領域に格納したヘッダ情報と第1領域に格納されているブロックデータとを含むパケットデータの送出指示通知をネットワーク部105に送出する。
なお、外部メモリ110へのアクセスは、MCU101による調停結果に従って行う。
また、CPU104は、制御プログラムを実行することにより、通信装置100全体の制御を行う機能を有し、具体的には、動画像データの送信処理開始時に分割データ格納部103のチェックサム演算部202、DTC206のカウンタ203及びレジスタ204に初期値の設定を行う。
ネットワーク部105は、一般的なネットワークインタフェースであり、CPU104により指定されたアドレス値が示すパケットデータ領域の第1領域に格納されたブロックデータと第2領域に格納されたヘッダ情報とを読み出して、パケットデータとしてネットワーク120を介して順次端末130に送出する回路である。パケットデータの内容については後述する。
なお、外部メモリ110へのアクセスは、MCU101による調停結果に従って行う。
内部バス106は、分割データ格納部103、CPU104、ネットワーク部105と外部メモリ110とのデータの授受を行うための一般的なアドレスバス及びデータバスである。
<データ>
以下、通信装置100で使用するデータについて説明する。
<外部メモリ110上のデータ配置>
まず、外部メモリ110に格納されるデータの配置について説明する。
図3は、外部メモリ110の格納領域を示す図である。
外部メモリ110の格納領域は、同図に示すように符号化データ領域301a、301bとネットワークデータ領域302a、302bとを含む領域である。
符号化データ領域301aは、符号化部102によりMPEGに圧縮符号化された1フレーム分の符号化データが格納される物理的に連続した領域である。
符号化データ領域301bは、基本的には符号化データ領域301aと同様の領域であるが、符号化部102により、符号化データ領域301aに格納された次のフレーム分の符号化データが格納される領域である。
即ち、符号化部102により圧縮符号化された各符号化データは、フレーム毎に符号化データ領域301aと301bとに交互に格納される。
ネットワークデータ領域302aは、符号化データ領域301aに格納された1フレーム分の符号化データについてネットワークに送出する際のパケットデータを構成するデータが格納される物理的に連続した領域であり、同図に示すように、更にパケットデータ領域310a、310b・・・に論理的に分割されている。
ネットワークデータ領域302bは、基本的にはネットワークデータ領域302aと同様の領域であるが、符号化データ領域301bに格納された1フレーム分の符号化データについてのパケットデータを構成するデータが格納される領域である。
パケットデータ領域310a、310b・・・は同様の構成を有するため、以下、パケットデータ領域310aについて、説明する。
パケットデータ領域310aは、1つのパケットデータを構成するデータが格納される物理的に連続した領域であり、パケットデータ領域310aは、第1領域311と第2領域312とに論理的に分割されている。
第1領域311は、1つのブロックデータとそのブロックデータについてのチェックサムとが格納される領域である。
ブロックデータは、パケットデータのペイロードサイズの符号化データであり、ブロックデータのサイズは、以下では、UDPにおける最大ペイロードサイズである1472byteであるとして説明する。
チェックサムは、ブロックデータを2byte毎に数値とみなした場合の全数値の合計値であり、チェックサムのサイズは2byteである。
第1領域311は、ブロックデータ(1472byte)とチェックサム(2byte)とが格納可能であればそのサイズは問わないが、以下では、2kbyteの領域であるとして説明する。
第2領域312は、第1領域311に格納されたチェックサムを含むヘッダ情報が格納される領域である。
第2領域312は、後述するヘッダ情報(後述する例では54byte)が格納可能であればそのサイズは問わないが、以下では256byteの領域であるとして説明する。
<ヘッダ情報>
次に、ヘッダ情報について説明する。
ヘッダ情報は、Ethernet(登録商標)フレームにおける各ヘッダ情報であり、分割データ格納部103により算出されたチェックサムを含むものである。
図4は、RTP(Real-time Transport Protocol)/UDPを用いて動画像データを送信する場合に、ネットワーク部105が送出するパケットデータ400のフレーム構造を示す図である。
パケットデータ400のフレーム構造は、IEEE 802.3規格及びUDPプロトコル、RTPプロトコルに準拠しており、同図に示すとおり、パケットデータ400には、MAC(Media Access Control) header410、Data420が含まれ、Data420には、更にIP(Internet Protocol) header421、UDP header422、RTP header423が含まれる。
ヘッダ情報は、上述したMAC header410、IP header421、UDP header422、RTP header423の各ヘッダからなる情報である。
各ヘッダの内容は、IEEE 802.3規格及びUDPプロトコル、RTPプロトコルにおける各ヘッダの内容と同様であるため説明は省略するが、第1領域311に格納されたチェックサムは、UDP header422におけるチェックサムとして使用される。また、上述した各ヘッダ以外の各領域についても、IEEE 802.3規格及びUDPプロトコル、RTPプロトコルに準拠したものであるので、説明は省略する。
<動作>
以下、上記構成を備え、上記データを取り扱う通信装置100の動作を説明する。
<分割データ格納部>
まず、分割データ格納部103の動作について説明する。
図5は、分割データ格納部103の動作を示すフローチャートである。
以下では、符号化データは、符号化データ領域301aに格納されているものとして説明する。
分割データ格納部103のDTC206の転送部205は、分割データ格納部103の制御部207を介して符号化部102から符号化データの格納が完了した旨の通知があったか確認する(ステップS501)。
符号化データの格納が完了した旨の通知がない場合には(ステップS501:N)、ステップS501に戻る。
所定時間以内に、符号化データの格納が完了した旨の通知がない場合には(ステップS501:タイムアウト)、処理を終了する。
符号化データの格納が完了した旨の通知があった場合には(ステップS501:Y)、転送部205は、符号化データ全体について転送処理が完了したかを確認する(ステップS502)。
符号化データ全体について転送処理が完了していない場合には(ステップS502:N)、転送部205は、ブロックデータ全体について第1領域311への格納を完了したかを確認する(ステップS503)。
ブロックデータ全体について第1領域311への格納を完了していない場合には(ステップS503:N)、転送部205は、分割データ格納部103のDTC206のカウンタ203の読み出し用アドレス値が示す符号化データ領域301aから所定サイズ(4byte)の符号化データを分割データ格納部103のバッファ201に読み出す(ステップS504)。
なお、転送部205は、所定サイズ(4byte)の符号化データを読み出すと、カウンタ203の読み出し用アドレス値を4つ増加させる。
バッファ201は、格納された符号化データを2byte毎にチェックサム演算部202へ送出し、チェックサム演算部202は、受領した2byteの符号化データを数値とみなし、チェックサムを算出する(ステップS505)。
転送部205は、バッファ201に格納された所定サイズ(4byte)の符号化データを、カウンタ203の書き込み用アドレス値が示すネットワークデータ領域302a内の第1領域311に格納し(ステップS506)、ステップ503に戻る。
なお、転送部205は、所定サイズ(4byte)の符号化データを第1領域311へ格納すると、カウンタ203の書き込み用アドレス値を4つ増加させる。
ブロックデータ全体について格納が完了した場合には(ステップS503:Y)、転送部205は、チェックサム演算部202からチェックサムを読み出し、カウンタ203の書き込み用アドレス値が示すネットワークデータ領域302a内の第1領域311に格納する(ステップS507)。
転送部205は、チェックサムとの格納が完了すると、制御部207を介してCPU104にチェックサムの格納が完了した旨の通知を送出する(ステップS508)。なお、制御部207は、チェックサム演算部202のチェックサムの値をゼロにリセットする。
制御部207は、分割データ格納部103のDTC206のレジスタ204に設定された第2領域312のサイズ分の値分、カウンタ203を増加させ(ステップS509)、ステップS502に戻る。
符号化データ全体について転送処理が完了した場合には(ステップS502:Y)、転送部205は、ステップS501に戻る。
以上により、1フレーム分の符号化データについて処理を完了する。
なお、次のフレームについての符号化データは符号化部102により外部メモリ110上の符号化データ領域301bに格納される。
そのため、制御部207は、カウンタ203の読み出し用アドレス値に、レジスタ204に格納された符号化データ領域301bの先頭アドレス値を設定し、カウンタ203の書き込み用アドレス値にレジスタ204に格納されたネットワークデータ領域302bにおいて最初にアクセスすべき第1領域311の先頭アドレス値を設定する。その結果、転送部205は、符号化データ領域301bから符号化データを読み出し、ネットワークデータ領域302bにブロックデータとそのチェックサムとを格納していくこととなる。
<CPU>
次に、CPU104の動作について説明する。
図6は、CPU104の動作を示すフローチャートである。
以下では、ブロックデータ及びチェックサムは、ネットワークデータ領域302aに格納されているものとして説明する。
CPU104は、制御プログラムを実行することにより、分割データ格納部103からチェックサムの格納が完了した旨の通知があったか確認する(ステップS601)。
チェックサムの格納が完了した旨の通知がない場合には(ステップS601:N)、ステップS601に戻る。
所定時間以内に、チェックサムの格納が完了した旨の通知がない場合には(ステップS601:タイムアウト)、処理を終了する。
チェックサムの格納が完了した旨の通知があった場合には(ステップS601:Y)、CPU104は制御プログラムを実行することにより、第1領域311に格納されたチェックサムを読み出す(ステップS602)。
CPU104は制御プログラムを実行することにより、読み出したチェックサムを含むヘッダ情報を生成する(ステップS603)。
CPU104は制御プログラムを実行することにより、読み出したチェックサムが含まれるパケットデータ領域の第2領域312に生成したヘッダ情報を格納する(ステップS604)。
CPU104は制御プログラムを実行することにより、ヘッダ情報が格納されたパケットデータ領域のアドレス値を指定して、指定したアドレス値が示すパケットデータ領域に格納されたヘッダ情報とブロックデータとからなるパケットデータの送出指示通知をネットワーク部105に送出し(ステップS605)、ステップ501に戻る。
以上により、1つのパケットデータについての処理を完了する。上記処理を繰り返すことにより、1フレーム分のパケットデータについて処理することができる。
なお、次のフレームについてのブロックデータとチェックサムとは、分割データ格納部103によりネットワークデータ領域302bに格納されるため、CPU104は制御プログラムを実行することにより、ネットワークデータ領域302bからチェックサムを読み出し、ネットワークデータ領域302bにヘッダ情報を格納していくこととなる。
<タイミングチャート>
次に、各部の動作のタイミングについて、図7を用いて説明する。
図7は、通信装置100の各部の動作を示すタイミングチャートである。
以下では、符号化部102は、1フレーム分の符号化データを符号化データ領域301aに格納し、分割データ格納部103は、ブロックデータ及びチェックサムをネットワークデータ領域302aに格納するものとして説明する。
T0は、符号化部102が処理を開始するタイミングである。
T0〜T1において、符号化部102は、通信装置100の外部から入力される1フレーム分の動画像データをMPEGに圧縮符号化した符号化データを外部メモリ110の符号化データ領域301aに格納する。
T1は、符号化部102が符号化データ領域301aへの符号化データの格納を完了し、分割データ格納部103が符号化部102から符号化データの格納が完了した旨の通知を受領し、処理を開始するタイミングである。
T1〜T5において、分割データ格納部103は、図5のフローチャートに従って1つの符号化データについて各ブロックデータと対応するチェックサムの格納を行う。
T2は、分割データ格納部103が1つ目のブロックデータとそのチェックサムについて、パケットデータ領域310aの第1領域311への格納を完了し、CPU104が、制御プログラムを実行することにより分割データ格納部103からチェックサムの格納が完了した旨の通知を受領し、処理を開始するタイミングである。
T2〜T7において、CPU104は、制御プログラムを実行することにより、図6のフローチャートに従って各ヘッダ情報の格納と各パケットデータの送出の制御を行う。
T3は、CPU104が制御プログラムを実行することにより、1つ目のヘッダ情報について、パケットデータ領域310aの第2領域312への格納を完了し、ネットワーク部105がCPU104からパケットデータの送出指示通知を受領し、処理を開始するタイミングである。
T3〜T4において、ネットワーク部105は、CPU104により指定されたアドレス値が示すパケットデータ領域310aの第1領域311に格納されたブロックデータと第2領域312に格納されたヘッダ情報とからなるパケットデータを、ネットワーク120を介して端末130に送出する。以降、参照するパケットデータ領域を変えながら、T8まで同様の処理を繰り返し行う。
以上により、通信装置100の外部から最初に入力された1フレーム分の動画像データについての送出処理が完了し、上記処理を繰り返すことにより、全てのフレーム分の動画像データを送信することができる。
なお、符号化データ領域301aと301b、ネットワークデータ領域302aと302bとは1フレーム分の動画像データの処理毎に交互に使用されるため、通信装置100の外部から次に入力された1フレーム分の動画像データは、T1〜T6において、符号化部102により圧縮符号化され、符号化データとして符号化データ領域301bに格納され、T6以降の各部の処理により、ブロックデータ、チェックサム及びヘッダ情報は、ネットワークデータ領域302bに格納されていく。
以上、通信装置100の動作タイミングについて説明したが、以下では、通信装置100においてデータ処理及びプロトコル処理に要する処理時間について説明する。
図7において、分割データ格納部103によるT1〜T2の処理時間を「a」とし、CPU104によるT2〜T3の処理時間を「b」とし、分割データ格納部103及びCPU104は、符号化データ毎にN回のデータ処理及びプロトコル処理をそれぞれ行うものとして説明する。
仮に1台のCPUにプログラムを実行させることによりデータ処理及びプロトコル処理を実現する場合、符号化データ毎に(a+b)×Nの処理時間がかかる。
一方、通信装置100における処理時間は、T1〜T2の部分を除き、データ処理とプロトコル処理とが並列に動作するため、a+bNとなる。
従って、1台のCPUにプログラムを実行させることによりデータ処理及びプロトコル処理実現する場合と比較し、通信装置100は、処理時間をa×(N−1)削減することができる。
≪実施の形態2≫
<概要>
実施の形態1に係る通信装置100は、外部メモリ110上に物理的に連続するネットワークデータ領域302a、302bを確保し、確保したネットワークデータ領域302a、302bに各パケットデータ領域を連続して配置していた。
しかし、実際にはフラグメンテーションの発生等により、外部メモリ110上に物理的に連続した領域を確保できない場合や、物理的に連続した領域を確保することによって、外部メモリ110の使用効率を低下させてしまう場合がある。
実施の形態2に係る通信装置は、各パケットデータ領域を示すアドレス値を管理し、各パケットデータ領域を外部メモリ110上に非連続に配置できるようにすることにより、外部メモリ110の格納領域を有効に活用できるようにしたものである。
<構成>
以下、実施の形態2に係る通信装置800の構成について説明する。
図8は、実施の形態2に係る通信装置800の構成図である。
同図に示すとおり、通信装置800は、実施の形態1に係る通信装置100と同様、自装置の外部にある外部メモリ110と接続し、また、ネットワーク120を介して端末130と接続している。
なお、以下では、実施の形態1と同様に、各パケットデータ領域は2304byte(256byte+2kbyte)の領域であり、外部メモリ110の1アドレス分のサイズは1byteであり、外部メモリ110が1回に送出するデータのサイズは4byteであるとして説明する。
通信装置800は、同図に示すとおり、MCU101、ネットワーク部105、内部バス106、符号化部801、アドレス制御部802、分割データ格納部803、CPU804から構成される。
MCU101、ネットワーク部105、内部バス106については、実施の形態1に係る通信装置100と同様であるため、説明は省略する。
符号化部801は、基本的には、実施の形態1における符号化部102と同様の回路であるが、圧縮符号化後の各符号化データについて、外部メモリ110への格納を開始する際に、アドレス制御部802に処理の開始を指示する旨の通知を送出する点で符号化部102と異なる。
アドレス制御部802は、内部にCPUを含み、通信装置800の内部メモリ(図示しない)に格納された制御プログラムをCPUに実行させることにより、外部メモリ110の空き領域のうち、各パケットデータ領域として使用可能な領域を確保し、確保した各パケットデータ領域を示すアドレス値を分割データ格納部803とCPU804とにそれぞれ指定する回路である。
ここで、各パケットデータ領域を示すアドレス値は、各パケットデータ領域の先頭アドレス値である。
分割データ格納部803は、基本的には、実施の形態1における分割データ格納部103と同様の回路であるが、分割データ格納部803は、アドレス制御部802から指定されたアドレス値が示すパケットデータ領域の第1領域311にブロックデータとそのブロックデータのチェックサムとを格納する点で、分割データ格納部103とは異なる。
以下、分割データ格納部803について具体的に説明する。
分割データ格納部803の構成は、図2に示す分割データ格納部103の構成と基本的には同様であるが、DTCのレジスタと制御部について相違点があるため、以下説明する。
分割データ格納部803のレジスタは、分割データ格納部103のDTC206のレジスタ204が保持する各アドレス値の他、アドレス制御部802から指定された各パケットデータ領域の先頭アドレス値をそれぞれ保持する。
分割データ格納部803の制御部は、基本的には分割データ格納部103の制御部207と同様の回路であるが、分割データ格納部803のレジスタに設定された各パケットデータ領域を示す各アドレス値について、そのアドレス値にCPU804により分割データ格納部803のレジスタに設定された第2領域312のサイズ分のアドレス値(256)を加えたアドレス値を第1領域311の先頭アドレス値として分割データ格納部803のカウンタ203に設定する点で分割データ格納部103の制御部207と異なる。
CPU804は、基本的には、実施の形態1におけるCPU104と同様の機能を有するが、プログラムを実行することにより、アドレス制御部802から指定されたアドレス値が示すパケットデータ領域の第1領域311からチェックサムを読み出し、読み出したチェックサムを含むパケットデータ領域の第2領域312に生成したヘッダ情報を格納する点で、CPU104とは異なる。
制御プログラムによる各第1領域311に格納されたチェックサムの読出しと各第2領域312へのヘッダ情報の格納とについては、基本的には実施の形態1におけるCPU104と同様の方法で実現できるが、本実施の形態では、構造体の変数Sのアドレスを示すポインタ変数Aに、順次アドレス制御部802から指定されたアドレス値を設定して、各パケットデータ領域にアクセスする必要がある。
<データ>
各パケットデータ領域の配置について説明する。
図9は、実施の形態2における外部メモリ110上のネットワークデータ領域302aを示す図である。なお、ここでは、ネットワークデータ領域302aについて説明するが、ネットワークデータ領域302bについても同様である。
同図に示すように、パケットデータ領域910a、910b・・・は、ネットワークデータ領域302a上に非連続に配置される。同図中の灰色に塗りつぶされている領域は、他のデータ等が格納されていることを示している。
パケットデータ領域910a、910b・・・は、実施の形態1のパケットデータ領域310a、310b・・・と同様の領域であるため、説明は省略する。
<動作>
以下、上記構成を備え、上記データを取り扱う通信装置800の動作を説明する。
<アドレス制御部>
まず、アドレス制御部802の動作について説明する。
図10は、アドレス制御部802の動作を示すフローチャートである。
アドレス制御部802のCPUは制御プログラムを実行することにより、符号化部801から処理の開始を指示する旨の通知があったかを確認する(ステップS1001)。
処理の開始を指示する旨の通知がない場合には(ステップS1001:N)、ステップS1001に戻る。
所定時間以内に処理の開始を指示する旨の通知がない場合には(ステップS1001:タイムアウト)、処理を終了する。
処理の開始を指示する旨の通知があった場合には(ステップS1001:Y)、アドレス制御部802のCPUは制御プログラムを実行することにより、1フレーム分のパケットデータ領域について確保済かを確認する(ステップS1002)。
1フレーム分のパケットデータ領域について確保済でない場合には(ステップS1002:N)、アドレス制御部802のCPUは制御プログラムを実行することにより、外部メモリ110の空き領域のうち、パケットデータ領域として使用する領域を確保する(ステップS1003)。
アドレス制御部802のCPUは制御プログラムを実行することにより、確保したパケットデータ領域を示すアドレス値を分割データ格納部803とCPU804とに指定して(ステップS1004)、ステップS1002に戻る。
1フレーム分のパケットデータ領域について確保済の場合には(ステップS1002:Y)、ステップ1001へ戻る。
<分割データ格納部>
次に、分割データ格納部803の動作について説明する。
図11は、分割データ格納部803の動作を示すフローチャートである。
ステップS1101〜ステップS1102、ステップS1104〜ステップS1109の処理は、図5に示す実施の形態1に係る分割データ格納部103のステップS501〜ステップS502、ステップS503〜ステップS508の処理とそれぞれ同様であるため説明は省略し、以下、ステップS1103の処理について説明する。
分割データ格納部803の制御部は、分割データ格納部803のレジスタに設定されているアドレス制御部802から指定されたアドレス値のうち、1つのアドレス値を読み出し、読み出したアドレス値に分割データ格納部803のレジスタに設定されている第2領域312のサイズ分のアドレス値を加えたアドレス値を分割データ格納部803のカウンタ203の書き込み用アドレス値に設定する(ステップS1103)。
<CPU>
次に、CPU804の動作について説明する。
CPU804の動作は、図6のフローチャートに示すCPU104の動作と基本的には同様であるが、ステップS602において、アドレス制御部802から指定されたアドレス値が示すパケット領域の第1領域311からチェックサムを読み出し、また、ステップS604において、アドレス制御部802から指定されたアドレス値が示すパケット領域の第2領域312にヘッダ情報を格納する点が異なる。
その他の動作はCPU104と同様であるため、説明は省略する。
<タイミングチャート>
次に、アドレス制御部802の動作のタイミングについて説明する。
図12は、通信装置800の各部の動作を示すタイミングチャートである。
なお、符号化部801、分割データ格納部803、CPU804、ネットワーク部105の動作タイミングは、図7のタイミングチャートに示す動作タイミングと同様であるため、説明は省略する。
T1は、アドレス制御部802のCPUが、符号化部801から処理の開始を指示する旨の通知を受領し、処理を開始するタイミングである。
T1〜T2において、アドレス制御部802のCPUは、図10のフローチャートに従って、1フレーム分のパケットデータ領域の確保と、各パケットデータ領域を示すアドレス値の指定を行う。
≪変形例1≫
<概要>
実施の形態2に係る通信装置800は、アドレス制御部802が各パケットデータ領域を示す各アドレス値を分割データ格納部803及びCPU804に指定することによって、各パケットデータ領域が非連続に配置される場合でも処理できるようにしたものである。
変形例1に係る通信装置は、各パケットデータ領域に、次に参照すべきパケットデータ領域のアドレス値を格納し、変形例1に係る分割データ格納部及びCPUはこれを参照することによって、通信装置800と同様に、各パケットデータ領域が非連続に配置される場合でも処理できるようにしたものである。
<構成>
以下、変形例1に係る通信装置1300の構成について説明する。
図13は、変形例1に係る通信装置1300の構成図である。
同図に示すとおり、通信装置1300は、実施の形態1に係る通信装置100と同様、自装置の外部にある外部メモリ110と接続し、また、ネットワーク120を介して端末130と接続している。
通信装置1300は、同図に示すとおり、MCU101、ネットワーク部105、内部バス106、符号化部801、アドレス制御部1301、オフセット制御部1302、分割データ格納部1303、CPU1304から構成される。
MCU101、ネットワーク部105、内部バス106は、実施の形態1に係る通信装置100と同様であり、符号化部801は、実施の形態2に係る通信装置800と同様であるため、説明は省略する。
アドレス制御部1301は、基本的には、実施の形態2におけるアドレス制御部802と同様の回路であるが、確保した各パケットデータ領域を示す各アドレス値をオフセット制御部1302に指定する点で、アドレス制御部802と異なる。
なお、アドレス制御部1301は、最初にアクセスすべきパケットデータ領域のアドレス値については、分割データ格納部1303とCPU1304とにも指定するものとする。
オフセット制御部1302は、内部にCPUを含み、通信装置1300の内部メモリ(図示しない)に格納された制御プログラムをCPUに実行させることにより、アドレス制御部1301から指定される各アドレス値について、そのアドレス値が示すパケットデータ領域の後述する第2領域1412に、その次に指定されたアドレス値を格納する回路である。
制御プログラムによる各第2領域1412へのアドレス値の格納については、実施の形態2のCPU804と同様に構造体を使用する方法により実現できるため、説明は省略する。
分割データ格納部1303は、基本的には、実施の形態1における分割データ格納部103と同様の回路であるが、各パケットデータ領域の後述する第2領域1412に格納されたアドレス値が示すパケットデータ領域の第1領域311にブロックデータとそのブロックデータのチェックサムとを格納する点で、分割データ格納部103とは異なる。
以下、分割データ格納部1303について具体的に説明する。
分割データ格納部1303の構成は、図2に示す分割データ格納部103の構成と基本的には同様であるが、DTCのレジスタと制御部とについて相違するため、以下、説明する。
分割データ格納部1303のレジスタは、分割データ格納部103のDTC206のレジスタ204と同様に各アドレス値を保持する他、アドレス制御部802から指定された最初に参照すべきパケットデータ領域の先頭アドレス値又は分割データ格納部1303の制御部が後述する第2領域1412から読み出した次にアクセスすべきパケットデータ領域のアドレス値を保持する。
分割データ格納部1303の制御部は、基本的には分割データ格納部103の制御部207と同様の回路であるが、分割データ格納部1303のDTCの転送部205が1つのブロックデータとそのチェックサムの格納を完了すると、分割データ格納部1303の制御部は、後述する第2領域1412から次にアクセスすべきパケットデータ領域のアドレス値を分割データ格納部1303のレジスタに読み出し、そのアドレス値に、CPU1304により分割データ格納部1303のレジスタに設定された第2領域312のサイズ分のアドレス値(256)を加えたアドレス値をカウンタ203の書き込み用アドレス値に設定する点で制御部207とは異なる。
CPU1304は、基本的には、実施の形態1におけるCPU104と同様の機能を有するが、各パケットデータ領域の後述する第2領域1412に格納されたアドレス値が示すパケットデータ領域の第1領域311からチェックサムを取得する点で、CPU104とは異なる。
制御プログラムによる各第1領域311に格納されたチェックサムの読出しと各第2領域312へのヘッダ情報の格納とについては、基本的には実施の形態1におけるCPU104と同様の方法で実現できるが、本実施の形態では、後述する第2領域1412には、次にアクセスすべきパケットデータ領域のアドレス値が格納されるため、構造体の変数Sのメンバに次のパケットデータ領域のアドレス値を示す変数Nを加え、構造体の変数Sのアドレスを示すポインタ変数Aに、変数Nの値を設定して、各パケットデータ領域にアクセスする必要がある。
<データ>
各パケットデータ領域の配置について説明する。
図14は、変形例1における外部メモリ110上のネットワークデータ領域302aを示す図である。
同図に示すように、パケットデータ領域1410a、1410b・・・は、ネットワークデータ領域302a上に非連続に配置される。同図中の灰色に塗りつぶされている領域は、他のデータ等が格納されていることを示している。
パケットデータ領域1410a、1410b・・・は、同様の領域であるため、以下では、パケットデータ領域1410aについて説明する。
パケットデータ領域1410aは、第1領域311と第2領域1412とに論理的に分割された領域である。第1領域311は、実施の形態1と同様の領域であるため、説明は省略する。
第2領域1412は、実施の形態1における第2領域312と同様にヘッダ情報が格納されると共に、この第2領域1412を含むパケットデータ領域1410aの次に参照すべきパケットデータ領域、即ちパケットデータ領域1410bを示すアドレス値が格納される領域である。
第2領域1412に、次に参照すべきパケットデータ領域を示すアドレス値が格納されることにより、各パケットデータ領域はいわゆる、線形リスト構造を有することとなる。
第2領域1412は、次に参照すべきパケットデータ領域のアドレス値(以下では、4byteであるとする)とヘッダ情報(54byte)が格納可能であればそのサイズは問わないが、以下では、実施の形態1と同様に256byteであるとして説明する。
また、本実施の形態では、ヘッダ情報は第2領域1412の先頭アドレス値から5byte目のアドレス値を先頭アドレス値として格納されるものとする。
<動作>
以下、上記構成を備え、上記データを取り扱う通信装置1300の動作を説明する。
<アドレス制御部>
まず、アドレス制御部1301の動作について、説明する。
アドレス制御部1301の動作は、図10のフローチャートに示すアドレス制御部802の動作と基本的には同様であるが、図10のステップS1004において確保したパケットデータ領域を示すアドレス値の指定先がオフセット制御部1302である点が異なる。
その他の動作はアドレス制御部802と同様であるため、説明は省略する。
<オフセット制御部>
次に、オフセット制御部1302の動作について、説明する。
図15は、オフセット制御部1302の動作を示すフローチャートである。
オフセット制御部1302のCPUは、制御プログラムを実行することにより、アドレス制御部1301からアドレス値の指定があったかを確認する(ステップS1501)。
アドレス値の指定がない場合には(ステップS1501:N)、ステップS1501に戻る。
所定時間以内にアドレス値の指定がない場合には(ステップS1501:タイムアウト)、処理を終了する。
アドレス値の指定があった場合には(ステップS1501:Y)、オフセット制御部1302のCPUは制御プログラムを実行することにより、指定されたアドレス値を保持する。具体的には、例えば配列変数を用いて実現したキュー(Queue)に指定されたアドレス値を追加していく。この際、配列変数には、通信装置1300の内部メモリ上の領域が割り当てられるものとする。
オフセット制御部1302のCPUは制御プログラムを実行することにより、保持するアドレス値が2つ以上であるかを確認する(ステップS1503)。
保持するアドレス値が2つ以上でない場合には(ステップS1503:N)、ステップS1501に戻る。
保持するアドレス値が2つ以上である場合には(ステップS1503:Y)、先に指定されたものから順に2つのアドレス値、即ちキューの先頭から順に2つのアドレス値について、先に指定されたアドレス値が示すパケットデータ領域の第2領域1412に、次に指定されたアドレス値を格納する(ステップS1504)。
保持していたアドレス値のうち、最も先に指定されたアドレス値の保持を解除、即ちキューの先頭のアドレス値を削除し(ステップS1505)、ステップS1503に戻る。
<分割データ格納部>
次に、分割データ格納部1303の動作について、説明する。
図16は、分割データ格納部1303の動作を示すフローチャートである。
なお、分割データ格納部1303のレジスタには、アドレス制御部802から指定された最初にアクセスすべきパケットデータ領域の先頭アドレス値が格納されており、分割データ格納部1303のカウンタ203の書き込み用アドレス値には、最初にアクセスすべき第1領域311のアドレス値が設定されているものとする。
ステップS1601〜ステップS1608の処理は、図5に示す実施の形態1に係る分割データ格納部103のステップS501〜ステップS508の処理と同様であるため、説明は省略する。
分割データ格納部1303の制御部は、分割データ格納部1303のレジスタに設定されているアドレス値(パケットデータ領域の先頭アドレス値)を読み出し、読み出したアドレス値が示すパケットデータ領域の第2領域1412に格納されている次にアクセスすべきパケットデータ領域のアドレス値を読み出す(ステップS1609)。
分割データ格納部1303の制御部は、読み出した次にアクセスすべきパケットデータ領域のアドレス値を分割データ格納部1303のレジスタに設定する(ステップS1610)。
分割データ格納部1303の制御部は、レジスタに格納された次に参照すべきパケットデータ領域の先頭アドレス値に、分割データ格納部1303のレジスタに設定されている第2領域1412のサイズ分のアドレス値を加えたアドレス値をカウンタ203の書き込み用アドレス値に設定し(ステップS1611)、ステップS1602に戻る。
<CPU>
次に、CPU1304の動作について説明する。
図17は、CPU1304の動作を示すフローチャートである。
ステップS1701の処理は、図6に示す実施の形態1に係るCPU104のステップS601の処理と同様であるため、説明は省略する。
CPU1304は制御プログラムを実行することにより、アドレス制御部1301から指定されたアドレス値が示すパケットデータ領域の第1領域311に格納されたチェックサムを読み出す(ステップS1702)。
ステップS1703〜ステップS1704の処理は、図6に示す実施の形態1に係るCPU104のステップS603〜ステップS604の処理と同様であるため、説明は省略する。
CPU1304は制御プログラムを実行することにより、アドレス制御部1301から指定されたアドレス値が示すパケットデータ領域の第2領域1412に格納された次にアクセスすべきパケットデータ領域を示すアドレス値を読み出す(ステップS1705)。
ステップS1706の処理は、図6に示す実施の形態1に係るCPU104のステップS605の処理と同様であるため、説明は省略する。
以上により、CPU1304は1つのヘッダ情報の格納とパケットデータの送出指示の処理を行うことができる。以降は、ステップS1702において、ステップS1705で読み出したアドレス値が示すパケットデータ領域の第1領域311に格納されたチェックサムを読み出すことによって、順次各パケットデータ領域について、第2領域1412にヘッダ情報を格納できる。
<タイミングチャート>
次に、オフセット制御部1302の動作のタイミングについて説明する。
図18は、通信装置1300の各部の動作を示すタイミングチャートである。
なお、符号化部801、アドレス制御部1301、分割データ格納部1303、CPU1304、ネットワーク部105の動作タイミングは、図12のタイミングチャートに示す動作タイミングと同様であるため、説明は省略する。
T1は、オフセット制御部1302のCPUが、アドレス制御部1301から受領して保持するアドレス値の数が2つ以上になり、処理を開始するタイミングである。
T1〜T2において、オフセット制御部1302のCPUは、図15のフローチャートに従って処理を行い、保持するアドレス値の数が2つ以上になる毎に、最も先に指定されたアドレス値が示すパケットデータ領域の第2領域1412に、その次に指定されたアドレス値を格納する処理を行う。
≪変形例2≫
<概要>
実施の形態2に係る通信装置800は、アドレス制御部802が各パケットデータ領域を示す物理アドレス値を、分割データ格納部803及びCPU804に指定することによって、各パケットデータ領域が非連続に配置される場合でも処理できるようにしたものである。
変形例2に係る通信装置は、各パケットデータ領域の物理アドレス値と対応付けて論理アドレス値を管理することにより、変形例2に係る分割データ格納部及びCPUは、実際の各パケットデータ領域の配置を意識することなく、論理アドレス値を指定して各パケットデータ領域にアクセスすることができるようにしたものである。
<構成>
以下、変形例2に係る通信装置1900の構成について説明する。
図19は、変形例2に係る通信装置1900の構成図である。
通信装置1900は、同図に示すとおり、MCU101、符号化部102、分割データ格納部103、CPU104、ネットワーク部105、内部バス106、MMU(Memory Management Unit)1901から構成される。
MMU1901以外については、実施の形態1に係る通信装置100と同様であるため、説明は省略する。
MMU1901は、一般的なMMUと同様の回路であり、外部メモリ110上の実際の物理アドレス値と論理アドレス値との対応を示すアドレス変換テーブルを内部のキャッシュメモリに記憶し、分割データ格納部103、CPU104、ネットワーク部105から論理アドレス値を指定した外部メモリ110へのアクセスがされると、指定された論理アドレス値を対応する物理アドレス値に変換する。
なお、アドレス変換テーブルの作成は、一般的なOS(Operating System)がページテーブルを作成するのと同様の方法により、CPU104が制御プログラムを実行することにより行うものとする。
<データ>
以下、MMU1901が記憶するアドレス変換テーブルについて説明する。
以下では、図9に示すように、ネットワークデータ領域302a上にパケットデータ領域910a、910b・・・が物理的に非連続に配置されているものとして説明する。
なお、実施の形態1と同様に、外部メモリ110の1アドレス分のサイズは1byteであり、第1領域311は2Kbyte、第2領域312は256byteの領域であるとする。
図20は、アドレス変換テーブルのデータ構成と内容例を示す図である。
同図に示すように、アドレス変換テーブル2000は、外部メモリ110上の1アドレス分の領域毎に、論理アドレス値2001と物理アドレス値2002とを対応付けて構成されている。
ここで、論理アドレス値2001は、分割データ格納部103、CPU104、ネットワーク部105が外部メモリ110にアクセスする際に使用するアドレス値(数字)であり、1から連番となるように割り振られている。
物理アドレス値2002は、外部メモリ110上の各領域を示す実際の物理上のアドレス値(数字)である。
同図は、図9におけるパケットデータ領域910aの第2領域312に対応する論理アドレス値2001は「1〜256」であり、物理アドレス値2002は「10001〜10256」であることを示している。
また、パケットデータ領域910aの第1領域311に対応する論理アドレス値2001は「257〜2304」であり、物理アドレス値2002は、「10257〜12304」であることを示している。
また、パケットデータ領域910bの第2領域312に対応する論理アドレス値2001は、「2305〜2560」であり、物理アドレス値2002は、「16001〜16256」であることを示している。
上述のように、パケットデータ領域910aとパケットデータ領域910bとは物理的に非連続に配置されているため、パケットデータ領域910aの第2領域312の最後の領域と対応する物理アドレス値2002は「12304」であり、パケットデータ領域910bの第2領域312の最初の領域と対応する物理アドレス値2002は「16001」であり、非連続のアドレス値となっている。
一方、論理アドレス値2001は、全領域を通じて「1〜2560」まで連続して割り振られている。
従って、分割データ格納部103、CPU104、ネットワーク部105は、実際には物理的に非連続な領域にアクセスしているにもかかわらず、論理アドレス値2001を指定することによって、あたかも物理的に連続する領域であるかのようにアクセスすることができる。
<動作>
以下、MMU1901の動作について、説明する。
図21は、MMU1901の動作を示すフローチャートである。
MMU1901は、分割データ格納部103、CPU104、ネットワーク部105から論理アドレス値を指定した外部メモリ110へのアクセスがあるかを確認する(ステップS2101)。
外部メモリ110へのアクセスがない場合には(ステップS2101:N)、ステップS2101へ戻る。
所定時間以内に外部メモリ110へのアクセスがない場合には(ステップS2101:タイムアウト)、処理を終了する。
外部メモリ110へのアクセスがあった場合には(ステップS2101:Y)、MMU1901は指定された論理アドレス値を物理アドレス値に変換して送出し(ステップS2102)、ステップS2101へ戻る。
なお、通信装置1900の各部の動作タイミングは、図7のタイミングチャートに示す動作タイミングと同様であるため、説明は省略する。
≪変形例3≫
<概要>
実施の形態1に係る通信装置100において、分割データ格納部103は、符号化部102による外部メモリ110の符号化データ領域301a、又は301bへの符号化データの格納が完了するのを待って、処理を開始するものであった。
変形例3に係る通信装置は、符号化部102により符号化データ領域301a、又は301bに格納されていく符号化データのサイズを監視し、ブロックデータのサイズ(1472byte)に達する毎に、変形例3に係る分割データ格納部に処理させるものである。
これにより、変形例3に係る分割データ格納部は、符号化部102による符号化データ領域301a、301bへの符号化データの格納完了を待たずに処理を開始することができ、無駄な待ち時間を削減することにより、更に高速な動画像データの送出処理が可能になる。
<構成>
以下、変形例3に係る通信装置2200の構成について説明する。
図22は、変形例3に係る通信装置2200の構成図である。
通信装置2200は、同図に示すとおり、MCU101、符号化部102、CPU104、ネットワーク部105、内部バス106、レングス監視部2201、分割データ格納部2202から構成される。
MCU101、符号化部102、CPU104、ネットワーク部105、内部バス106については、実施の形態1に係る通信装置100と同様であるため、説明は省略する。
なお、本実施の形態では、符号化部102は、外部メモリ110への符号化データの格納が完了しても、格納が完了した旨の通知を分割データ格納部2202に送出しないものとする。
レングス監視部2201は、内部にカウンタを有し、符号化部102により外部メモリ110の符号化データ領域301a、又は301bに格納されていく符号化データのサイズをカウントし、カウンタがブロックデータのサイズ(1472byte)に相当する値になる毎に分割データ格納部2202に通知を行う回路である。
符号化部102が外部メモリ110の符号化データ領域301a、又は301bに符号化データを格納する際、実際には、符号化部102と外部メモリ110との間のバス幅に応じた所定サイズ毎に送出していく。以下では、この所定サイズは、4byteであるとして説明する。
レングス監視部2201は、初期値としてゼロに設定されたカウンタの値を符号化部102が4byte送出する毎に4つずつ増加させ、カウンタの値がブロックデータのサイズに相当する値(1472)になると、分割データ格納部2202にブロックデータサイズ分の符号化データの格納が完了した旨の通知を送出し、カウンタをゼロにリセットする。
分割データ格納部2202は、基本的には、実施の形態1の分割データ格納部103と同様の回路であるが、符号化部102からの符号化データの格納が完了した旨の通知に代えて、レングス監視部2201からブロックデータサイズ分の符号化データの格納が完了した旨の通知を受領すると、外部メモリ110の符号化データ領域301a、又は301bに格納されたブロックデータサイズ分の符号化データの読み出しを開始する点で、実施の形態1の分割データ格納部103と異なる。
なお、分割データ格納部2202の構成は、図2に示す分割データ格納部103の構成と同様であるため説明は省略する。
<データ>
通信装置2200で使用するデータについては、実施の形態1に係る通信装置100と同様であるため、説明は省略する。
<動作>
以下、上記構成を備え、上記データを取り扱う通信装置2200の動作を説明する。
<レングス監視部>
まず、レングス監視部2201の動作について説明する。
図23は、レングス監視部2201の動作を示すフローチャートである。
レングス監視部2201は、内部のカウンタをゼロにリセットする(ステップS2301)。
レングス監視部2201は、符号化部102から所定サイズ(4byte)分の符号化データが送出されたかを確認する(ステップS2302)。
所定サイズ分の符号化データが送出されない場合には(ステップS2302:N)、ステップS2302に戻る。
所定時間以内に所定サイズ分の符号化データが送出されない場合には(ステップS2302:タイムアウト)、処理を終了する。
所定サイズ分の符号化データが送出された場合には(ステップS2302:Y)、レングス監視部2201は、カウンタを4つ増加させる(ステップS2303)。
レングス監視部2201は、カウンタの値がブロックデータのサイズに相当する値(1472)かを確認する(ステップS2304)。
カウンタの値がブロックデータのサイズに相当する値でない場合には(ステップS2304:N)、ステップS2302に戻る。
カウンタの値がブロックデータのサイズに相当する値である場合(ステップS2304:Y)には、レングス監視部2201は、分割データ格納部2202にブロックデータサイズ分の符号化データの格納が完了した旨の通知を送出し(ステップS2305)、ステップS2301に戻る。
<分割データ格納部>
次に、分割データ格納部2202の動作について、説明する。
図24は、分割データ格納部2202の動作を示すフローチャートである。
分割データ格納部2202の転送部205は、分割データ格納部103の制御部207を介してレングス監視部2201からブロックサイズ分の符号化データの格納が完了した旨の通知があったか確認する(ステップS2401)。
ブロックサイズ分の符号化データの格納が完了した旨の通知がない場合には(ステップS2401:N)、ステップS2401に戻る。
所定時間以内に、ブロックサイズ分の符号化データの格納が完了した旨の通知がない場合には(ステップS2401:タイムアウト)、処理を終了する。
ブロックサイズ分の符号化データの格納が完了した旨の通知があった場合には(ステップS2401:Y)、ステップS2402に進む。
ステップS2402〜ステップS2408の処理は、図5に示す実施の形態1に係る分割データ格納部103の処理におけるステップS503〜ステップS509と同様であるため、説明は省略する。
<タイミングチャート>
次に、分割データ格納部2202の動作のタイミングについて説明する。
図25は、通信装置2200の各部の動作を示すタイミングチャートである。
以下では、符号化部102は、1フレーム分の符号化データを符号化データ領域301aに格納するものとして説明する。
なお、符号化部102、CPU804、ネットワーク部105の動作タイミングは、図7のタイミングチャートに示す動作タイミングと同様であるため、説明は省略する。
T1は、レングス監視部2201のカウンタの値がブロックデータのサイズに相当する値(1472)となり、分割データ格納部2202がレングス監視部2201からブロックデータサイズ分の符号化データの格納が完了した旨の通知を受領し、処理を開始するタイミングである。
T1〜T2において、分割データ格納部2202は、図24のフローチャートに従って処理を行い、1つのブロックデータとそのチェックサムとの格納を行う。以降、同様の処理を繰り返すことにより、1フレーム分の符号化データについて処理することができる。
≪変形例4≫
<概要>
変形例4に係る通信装置は、符号化部102により外部メモリ110の符号化データ領域301a、又は301bに格納されていく符号化データのビットパターンを監視し、所定のビットパターンを検出する毎に変形例4に係る分割データ格納部に処理させるものである。
例えば、MPEG−4 for RTP通信では、MPEG4の符号化データを再同期マーカごとに送信するガイドラインが策定されている。所定のビットパターンとして再同期マーカを設定することにより、ガイドラインに従ったMPEG4の符号化データの送出が可能となる。
また、変形例4に係る通信装置は、所定のビットパターンを検出すると、所定のビットパターン以降の符号化データを外部メモリ110の符号化データ領域301a、又は301bにおける所定のバイト数境界、例えば、4バイト境界を先頭とした領域に格納していく。これにより、符号化データのバイトアライメントの保証が可能となる。
<構成>
図26は、変形例4に係る通信装置2600の構成図である。
通信装置2600は、同図に示すとおり、MCU101、符号化部102、CPU104、ネットワーク部105、内部バス106、パターン監視部2601、分割データ格納部2602から構成される。
MCU101、符号化部102、CPU104、ネットワーク部105、内部バス106については、実施の形態1に係る通信装置100と同様であるため、説明は省略する。
なお、本実施の形態では、符号化部102は、外部メモリ110への符号化データの格納が完了しても、格納が完了した旨の通知を分割データ格納部2602に送出しないものとする。
パターン監視部2601は、符号化部102により外部メモリ110の符号化データ領域301a、又は301bに格納されていく符号化データのビットパターンを監視し、通信装置2600のユーザ等により、予め設定された所定のビットパターン、例えばMPEG4の再同期マーカのビットパターンを検出すると、分割データ格納部2602に通知を行う回路である。
詳細には、パターン監視部2601は、内部にFIFOバッファとメモリと比較回路とを有し、メモリには検出する対象である所定ビットパターンのデータが記憶されている。
パターン監視部2601は、符号化部102により送出された所定サイズ(4byte)毎の符号化データをFIFOバッファに格納していき、FIFOバッファに格納された符号化データとメモリに記憶された所定ビットパターンのデータとの比較を順次行う。
比較の結果、所定のビットパターンを検出した場合には、分割データ格納部2602に所定のビットパターンを検出した旨の通知を送出する。
また、パターン監視部2601は、比較が済んだ所定サイズ(4byte)毎の符号化データをFIFOバッファから順次送出し、外部メモリ110の符号化データ格納部301a、又は301bの連続領域に格納し、分割データ格納部2602に所定サイズ(4byte)の符号化データを格納した旨の通知を送出する。
ただし、パターン監視部2601は、所定のビットパターンを検出した場合には、外部メモリ110の符号化データ格納部301a、又は301bの連続領域に格納するのではなく、所定のビットパターン以降の符号化データを所定のバイト数境界、例えば、4バイト境界を先頭とした領域に格納していく。
この際、所定のビットパターンの前までの符号化データと所定のビットパターン以降の符号化データとの間の空き領域には、所定のパディングデータとして、例えば、スタッフビット(最初のビットが0で以降のビットが1)を挿入する。
分割データ格納部2602は、基本的には、変形例3の分割データ格納部2202と同様の回路であるが、パターン監視部2601から所定サイズ(4byte)の符号化データを格納した旨の通知を受領する毎に、外部メモリ110の符号化データ領域301a、又は301bに格納された所定サイズ(4byte)の符号化データを読み出す点で分割データ格納部2202と異なる。
また、パターン監視部2601から所定のビットパターンを検出した旨の通知を受領する毎に、外部メモリ110の第1領域311にチェックサムを格納する点で分割データ格納部2202と異なる。
以下、分割データ格納部2602について具体的に説明する。
分割データ格納部2602の構成は、図2に示す分割データ格納部103の構成と基本的には同様であるが、DTCの転送部、及び制御部について相違するため、以下、説明する。
分割データ格納部2602の転送部は、分割データ格納部2602の制御部を介してパターン監視部2601から所定サイズ(4byte)の符号化データを格納した旨の通知を受領すると、外部メモリ110の符号化データ領域301a、又は301bから所定サイズ(4byte)の符号化データを分割データ格納部2602のバッファ201に読み出す点で、分割データ格納部2202の転送部205と異なる。
また、分割データ格納部2602の転送部は、分割データ格納部2602の制御部を介してパターン監視部2601から所定のビットパターンを検出した旨の通知を受領すると、チェックサム演算部202からチェックサムを読み出し、カウンタ203に設定された書き込み用アドレス値が示す外部メモリ110の第1領域311にチェックサムを格納する点で、分割データ格納部2202の転送部205と異なる。
分割データ格納部2602の制御部は、基本的には分割データ格納部2202の制御部207と同様の回路であるが、パターン監視部2601から所定サイズ(4byte)の符号化データを格納した旨の通知、又はパターン監視部2601から所定のビットパターンを検出した旨の通知を受領すると、その通知を、分割データ格納部2602の転送部に転送する。
<データ>
通信装置2600で使用するデータについては、実施の形態1に係る通信装置100と同様であるため、説明は省略する。
<動作>
以下、上記構成を備え、上記データを取り扱う通信装置2600の動作を説明する。
<分割データ格納部>
まず、分割データ格納部2602の動作について説明する。
図27は、分割データ格納部2602の動作を示すフローチャートである。
なお、以下では、所定のビットパターンのデータは、ブロックデータのサイズ(1472byte)よりも短い間隔で検出されるものとして説明する。
分割データ格納部2602の転送部は、分割データ格納部2602の制御部を介してパターン監視部2601から所定サイズ(4byte)の符号化データを格納した旨の通知を受領したかを確認する(ステップS2701)。
所定サイズの符号化データを格納した旨の通知を受領していない場合には(ステップS2701:N)、ステップS2701へ戻る。
所定時間以内に、符号化データの格納が完了した旨の通知がない場合には(ステップS2701:タイムアウト)、処理を終了する。
所定サイズの符号化データを格納した旨の通知を受領した場合には(ステップS2701:Y)、ステップS2702に進む。
ステップS2702〜S2704の処理は、図24に示す変形例3に係る分割データ格納部2202のステップS2403〜ステップS2405の処理と同様であるため、説明は省略する。
分割データ格納部2602の転送部は、分割データ格納部2602の制御部を介してパターン監視部2601から所定のビットパターンを検出した旨の通知を受領したかを確認する(ステップS2705)。
所定のビットパターンを検出した旨の通知を受領していない場合には(ステップS2705:N)、ステップS2701へ戻る。
所定のビットパターンを検出した旨の通知を受領した場合には(ステップS2705:Y)、ステップS2706へ進む。
ステップ2706〜S2708の処理は、図24に示す変形例3に係る分割データ格納部2202のステップS2406〜ステップS2408の処理と同様であるため、説明は省略する。
<タイミングチャート>
次に、分割データ格納部2602の動作のタイミングについて説明する。
図28は、通信装置2600の各部の動作を示すタイミングチャートである。
なお、符号化部102、CPU104、ネットワーク部105の動作タイミングは、図7のタイミングチャートに示す動作タイミングと同様であるため、説明は省略する。
T1は、分割データ格納部2602が、パターン監視部2601から所定サイズ(4byte)の符号化データを格納した旨の通知を受領し、処理を開始するタイミングである。
T1〜T2において、分割データ格納部2602は、図27のフローチャートに従って処理を行い、所定サイズ(4byte)の符号化データを格納した旨の通知を受領する毎に、所定サイズ(4byte)の符号化データを外部メモリ110の符号化データ領域301aからバッファ201に読み出し、チェックサムを算出し、所定サイズ(4byte)の符号化データを外部メモリ110の第1領域311に格納していく。
T2は、パターン監視部2601が所定のビットパターンを検出し、分割データ格納部2602がパターン監視部2601から所定のビットパターンを検出した旨の通知を受領し、チェックサムを外部メモリ110の第1領域311に格納したタイミングである。
変形例4では、所定のビットパターンを検出する毎に異なるパケット領域の第1領域311に符号化データを格納していくこととなり、最終的にはネットワーク部105は、異なるパケットデータとして送出することができる。
以降、T1〜T2の処理を繰り返すことにより、1フレーム分の符号化データについて処理することができる。
<補足>
以上、本発明に係る通信装置について、実施の形態に基づいて説明したが、以下のように変形することも可能であり、本発明は上述した実施の形態に示したとおりの通信装置に限られないことは勿論である。
(1)実施の形態1の符号化部102は、通信装置100の外部から入力される動画像データをフレーム毎に圧縮符号化して符号化データを生成する回路であるが、指定されたサイズの符号化データを生成できるようにしてもよい。具体的には、符号化データのサイズを指定する回路である符号化設定部を設け、この符号化設定部から符号化部102に符号化データのサイズを指定するようにし、符号化部102は符号化設定部から指定されたサイズの符号化データを生成する。
符号化設定部への符号化データのサイズの指定は、通信装置のユーザが行ってもよく、また、符号化設定部がネットワーク120における通信速度を検出し、これに基づいて設定するものとしてもよい。
(2)実施の形態1のネットワーク部105は、ネットワーク120が有線ネットワークである場合だけでなく、無線ネットワークである場合にも、パケットデータを送出できることとしてもよい。
(3)実施の形態1の各パケットデータ領域について、第2領域312の後に第1領域311を配置する構成としているが、第1領域311と第2領域312とが連続して配置されていればよく、第1領域311の後に第2領域312を配置する構成としてもよい。
(4)実施の形態1では、UDPを用いて動画像データを送信する場合を例に示したが、TCP(Transmission Control Protocol)を用いて動画像データを送信することも可能であり、その場合には、第1領域311に格納されたチェックサムは、TCP headerにおけるチェックサムとして使用される。
TCPによりパケットデータを送出する場合、パケットデータの送出先である端末130から、パケットデータ送出後所定時間(例えば、30s)以内に、パケットデータを受領した旨の応答(ACKパケット)を通信装置100が受領しないと、通信装置100のCPU104は、送出したパケットデータが端末130に受領されなかったものと判断し、そのパケットデータを再送することになる。
パケットデータの再送を可能とするため、通信装置100のCPU104は、再送対象となりうるパケットデータを構成するブロックデータを外部メモリ110のネットワークデータ領域302a又は302bから他のメモリ領域(以下、「再送用領域」という)に退避させ、パケットデータの再送は再送用領域に格納されたブロックデータを用いて行う。
これにより、パケットデータの再送が必要な場合でも、以降の処理において分割データ格納部103及びCPU104は、再送対象のパケットデータを構成するデータが格納されたパケットデータ領域を飛ばしてデータを格納する必要がなく、高速なパケットデータの送出処理を維持できる。
なお、上記では、TCPを用いて動画像データを送信した場合を例にパケットデータの再送のための処理について説明したが、パケットデータの再送を前提とした、TCP以外のプロトコルを用いて送信する場合や、アプリケーションによりパケットデータの再送を実現する場合も同様である。
また、上記では、CPU104がパケットデータの再送のための処理を行うものとして説明したが、専用のハードウェアにより処理することとしてもよい。
(5)実施の形態1では、DTC206の転送部205は、逐次、カウンタ203に設定された読み出し用アドレス値が示す符号化データ領域から符号化データを読み出し、読み出した符号化データをカウンタ203に設定された書き込み用アドレス値が示すネットワークデータ領域に格納するものとして説明したが、1回のアドレス値の指定で複数のデータをまとめて連続的に転送するいわゆるバースト転送が可能なものとしてもよい。
(6)実施の形態2のアドレス制御部802は、各パケットデータ領域の先頭アドレス値を指定することとしたが、分割データ格納部803には各パケットデータ領域の第1領域311を示すアドレス値を指定することとしてもよい。
これにより、分割データ格納部803は指定された各パケットデータ領域の先頭アドレス値から第1領域311を示すアドレス値を算出する必要がなくなり、更に高速に処理することができる。
(7)実施の形態2のアドレス制御部802は内部にCPUを有するとして説明したが、CPU804により、アドレス制御部802の機能を実現することとしてもよい。
(8)変形例1の各パケットデータ領域の第2領域1412においては、アドレス値の後にヘッダ情報を配置するものとして説明したが、この逆であってもよい。
(9)変形例1のオフセット制御部2201は内部にCPUを有するとして説明したが、CPU104により、オフセット制御部2201の機能を実現することとしてもよい。
(10)変形例4におけるパターン監視部2601は、1つのビットパターンを検出するとして説明したが、複数のビットパターンを検出できるようにしてもよい。
(11)変形例4においては、所定のビットパターンのデータは、ブロックデータのサイズ(1472byte)よりも短い間隔で検出されるものとして説明したが、ブロックデータのサイズを超える間隔で検出される場合には、分割データ格納部2602は、外部メモリ110の第1領域311へブロックデータの格納を完了する毎に、チェックサムを格納するようにしてもよい。
(12)実施の形態1においては、CPU104にプログラムを実行させることによりヘッダ情報400を生成することとしたが、ヘッダ情報400を生成する専用のハードウェア(以下、「ヘッダ付与回路」という)を設け、このハードウェアによりヘッダ情報を生成させるようにしてもよい。専用のハードウェアであるヘッダ付与回路にヘッダ情報400の生成を行わせることにより、CPU104の負荷を軽減できる。
また、ヘッダ付与回路が生成するヘッダ情報400に含まれる各ヘッダ(UDP header422等)は、レイヤー単位で任意に選択可能にしてもよい。これにより、通信装置100が使用するプロトコルに応じたヘッダ情報を生成できる。
そのために、例えば通信装置100内部のメモリに各プロトコルに対応したヘッダを記憶しておき、ヘッダ付与回路は、レイヤー毎にこの各プロトコルに対応したヘッダを選択し組み合わせることにより、最終的にパケットデータとして送出する際のヘッダ情報を生成する。
例えば、TCPによりパケットデータを送出する場合には、MACheaderとIPheaderとTCPheaderとを選択し組み合わせてヘッダ情報を生成する。
なお、通信装置100が使用するプロトコルについては、通信装置100のユーザ等が予め設定しておく場合のほか、例えばCPU104の負荷状況に応じて、使用するプロトコルを自動的に変更するような場合も考えられる。このような場合、ヘッダ付与回路はCPU104からプロトコルの変更を示す変更信号を受信し、その変更信号に従って生成するヘッダ情報の内容を変更する。
(13)実施の形態1におけるヘッダ情報400にはチェックサムが含まれるため、分割データ格納部103によりチェックサムが生成された後でなければヘッダ情報400全体を生成することはできない。そこで、ヘッダ情報400のうち、チェックサムを用いることなく予め生成することができる部分(以下、「部分ヘッダ情報」という)については、上記ヘッダ付与回路が生成するようにし、チェックサムを用いて生成する部分については、CPU104が生成するようにしてもよい。
即ち、例えばMAC headerには、「タイプ」、「送信元MACアドレス」、「あて先MACアドレス」などが含まれるが、これらの内容は、チェックサムの内容によらず事前に作成できるため、これを部分ヘッダ情報としてヘッダ付与回路が生成する。
これにより、CPU104はチェックサムを含むヘッダ情報400の一部のみを生成することとなるため、CPU104の負荷を軽減できる。また、CPU104によるヘッダ情報400の生成時間が短縮されることによって、さらに高速なパケットデータの送出が可能となる。
また、上記部分ヘッダ情報については、チェックサム等を含まず、事前に生成しておくことができるため、分割データ格納部103が生成するチェックサムは、この部分ヘッダ情報とブロックデータとの内容を反映したものとしてもよく、更に、部分ヘッダ情報のみに基づいてチェックサムを生成してもよい。即ち、チェックサムを生成する際のデータを選択することができるようにしてもよい。
(14)実施の形態1においては、分割データ格納部103、CPU104、ネットワーク部105からなるチップと、符号化部102からなるチップとで分けて構成してもよいし、1チップで構成してもよい。
(15)実施の形態1において、パケットデータ400のフレーム構造は、IEEE 802.3規格に準拠しているものとして説明したが、これに限られるものではなく、例えば無線LANにおいてはIEEE802.11a/b/gであってもよい。
(16)実施の形態1において、一例として外部メモリのバス幅は4byteであるとして説明したが、これに限られないのはもちろんである。また、分割データ格納部103のチェックサム演算部202の処理単位とバス幅との関係に別段の制限はない。
即ち、チェックサム演算部202は、2byteの符号化データを数値とみなした場合の全数値の合計値であるチェックサムを算出するとして説明し、またバス幅が4byteであるとして説明したが、バス幅がチェックサム演算部202の処理単位との2倍でなければならないといった制限はない。
(17)実施の形態1において、外部メモリ110の格納領域は、符号化データ領域とネットワークデータ領域とをそれぞれ2つずつ有するものとして説明したが、これに限定されるものではなく、それぞれ1つのみであるとしてもよい。
また、外部メモリ110の格納領域は、符号化データ領域301a、ネットワークデータ領域302a、符号化データ領域301bとネットワークデータ領域302bの順で配置されているとして説明したが、符号化データ領域301a、301b、ネットワークデータ領域302a、302bの順で配置されているとしてもよい。
これにより、符号化部102は、アドレス値が連続した領域に各符号化データを格納することができる。
(18)変形例4では、通信装置2600のパターン監視部2601は、パディングによりバイトアライメントを補正するものとして説明したが、パディングによらずデータコピーによりバイトアライメントを補正することとしてもよい。即ち、パターン監視部2601は、FIFOバッファに格納された符号化データを順次、外部メモリ110の符号化データ格納部301a、又は301bの連続領域に格納していき、所定のビットパターンを検出した際に、その前に所定のビットパターンを検出した以降に格納したデータが所定のアライメント境界を先頭とした領域に格納されていない場合には、そのデータを所定のアライメント境界を先頭とした領域にコピーする。
(19)各実施の形態において、分割データ格納部、CPU、アドレス制御部、オフセット制御部、レングス制御部の各動作は、一例としてタイムアウトにより終了する旨を説明したが、これに限られるものではなく、各実施の形態における通信装置の電源OFF、エラーの発生、ユーザによる所定の操作によって終了することとしてもよい。
(20)各実施の形態の通信装置は、特定データとして動画像データを圧縮符号化した符号化データを送出する例で説明したが、送出するデータはこれに限られないのはもちろんである。
(21)各実施の形態の通信装置は、一例として外部から受領した動画像データについて、ネットワーク120を介して端末130に送出するものとして説明したが、これに限られるものではない。例えば、本発明に係る通信装置の適用例として、図29に示すように、デジタルカメラ2900への適用が考えられる。
同図に示すように、デジタルカメラ2900には、SDカード2901が装着されており、デジタルカメラ2900は、クレイドル2902を介して有線又は無線のネットワーク2910に接続する。
デジタルカメラ2900は、一般的なデジタルカメラとしての機能の他、本発明における通信装置の機能を有するものであり、撮影した画像データをSDカード2901に格納し、SDカード2901に格納された画像データを、順次、プリンタ2920や端末2930に送出する。
デジタルカメラ2900は、本発明に係る機能によりSDカード2901に格納された画像データを送出するため、高速な送出処理を実現できる。
なお、上記説明では、デジタルカメラ2900にはSDカード2901が装着されているものとして説明したが、メモリスティック等の他の記憶媒体であってもよい。また、デジタルカメラ2900は、クレイドル2902を介して、ネットワーク2910に接続するものとして説明したが、これに限られず、ネットワークに接続するためのインタフェースであればよく、例えばデジタルカメラ2900とUSBにより接続可能なLANアダプタ等であってもよい。
本発明に係る通信装置は、動画像データ、音声データ等をネットワークに送出するために利用されるものである。
実施の形態1における通信装置100の構成図である。 分割データ格納部103の構成図である。 外部メモリ110の格納領域の説明図である。 パケットデータ400のフレーム構造の説明図である。 分割データ格納部103の処理のフローチャートである。 CPU104の処理のフローチャートである。 通信装置100の各部の処理のタイミングチャートである。 実施の形態2における通信装置800の構成図である。 ネットワークデータ領域302aの説明図である。 アドレス制御部802の処理のフローチャートである。 分割データ格納部803の処理のフローチャートである。 通信装置800の各部の処理のタイミングチャートである。 変形例1における通信装置1300の構成図である。 ネットワークデータ領域302aの説明図である。 オフセット制御部1302の処理のフローチャートである。 分割データ格納部1303の処理のフローチャートである。 CPU1304の処理のフローチャートである。 通信装置1300の各部の処理のタイミングチャートである。 変形例2における通信装置1900の構成図である。 アドレス変換テーブル2000のデータ構成と内容例を示す図である。 MMU1901の処理のフローチャートである。 変形例3における通信装置2200の構成図である。 レングス監視部2201の処理のフローチャートである。 分割データ格納部2202の処理のフローチャートである。 通信装置2200の各部の処理のタイミングチャートである。 変形例4における通信装置2600の構成図である。 分割データ格納部2602の処理のフローチャートである。 通信装置2600の各部の処理のタイミングチャートである。 本発明に係る通信装置の適用例の説明図である。
符号の説明
100、800、1300、1900、2200、2600 通信装置
101 MCU
102、801 符号化部
103、803、1303、2202、2602 分割データ格納部
104、804、1304 CPU
105 ネットワーク部
106 内部バス
110 外部メモリ
120、2910 ネットワーク
130、2930 端末
201 バッファ
202 チェックサム演算部
203 カウンタ
204 レジスタ
205 転送部
206 DTC
207 制御部
802、1301 アドレス制御部
1302 オフセット制御部
1901 MMU
2201 レングス監視部
2601 パターン監視部
2900 デジタルカメラ
2901 SDカード
2902 クレイドル
2920 プリンタ

Claims (17)

  1. 複数のブロックデータを含む各特定データをネットワークに順次送出する通信装置であって、
    前記特定データについて、第1所定サイズのデータであるブロックデータ毎に当該ブロックデータの内容を反映した検証用データを生成し、当該検証用データと当該検証用データに対応するブロックデータとを外部メモリの第2所定サイズの各領域に格納する格納回路と、
    CPUを含み、前記格納回路により前記外部メモリに格納された各ブロックデータについて、対応する検証用データを読み出し当該検証用データを含むヘッダ情報を生成し、当該ヘッダ情報と当該検証用データに対応するブロックデータとからなるパケットデータを送出するよう制御するためのプログラムを前記CPUに実行させるパケット制御部と、
    前記パケット制御部による制御に従い、各パケットデータを順次送出するネットワーク部とを備え、
    検証用データを生成し、当該検証用データと当該検証用データに対応するブロックデータとを格納する前記格納回路と、ヘッダ情報を生成し、パケットデータを送出するよう制御する前記CPUとが、並列して動作するよう構成した
    ことを特徴とする通信装置。
  2. 前記外部メモリの第2所定サイズの各領域である各第1領域は、当該第2所定サイズに所定値を加えたアドレス値間隔になるよう配置されるものであり、
    前記プログラムは、各第1領域に格納された各ブロックデータについて、対応する検証用データを読み出し前記ヘッダ情報を生成すると、前記所定値のサイズ分の、第1領域と連続する領域である第2領域に当該ヘッダ情報を格納し、当該第2領域に格納されたヘッダ情報と当該第1領域に格納された検証用データに対応するブロックデータとからなるパケットデータを順次送出するよう制御するためのものである
    ことを特徴とする請求項1記載の通信装置。
  3. 前記通信装置は、更に
    前記外部メモリ上の空き領域から前記外部メモリの第2所定サイズの各領域である各第1領域について、当該第1領域と連続する所定のアドレス値分の領域である第2領域と当該第1領域とからなるパケットデータ領域を確保し、当該パケットデータ領域を示すアドレス値を指定するアドレス制御部を備え、
    前記格納回路は、前記アドレス制御部が指定する各アドレス値が示す各パケットデータ領域の各第1領域に各ブロックデータと当該ブロックデータに対応する検証用データとを格納し、
    前記プログラムは、前記アドレス制御部が指定する各アドレス値が示す各パケットデータ領域について、第1領域に格納されたブロックデータに対応する検証用データを読み出し前記ヘッダ情報を生成すると、当該ヘッダ情報を第2領域に格納し、当該パケットデータ領域に格納されたヘッダ情報とブロックデータとからなるパケットデータを順次送出するよう制御するためのものである
    ことを特徴とする請求項1記載の通信装置。
  4. 前記通信装置は、更に
    前記外部メモリ上の空き領域から前記外部メモリの第2所定サイズの各領域である各第1領域について、当該第1領域と連続する所定のアドレス値分の領域である第2領域と当該第1領域とからなるパケットデータ領域を確保し、当該パケットデータ領域を示すアドレス値を指定するアドレス制御部と、
    前記アドレス制御部から指定された各アドレス値について、当該アドレス値が示すパケットデータ領域の第2領域に、当該アドレス値の次に指定されたアドレス値を格納するオフセット制御部を備え、
    前記格納回路は、各パケットデータ領域の各第2領域について、当該第2領域に格納されたアドレス値が示すパケットデータ領域の第1領域にブロックデータと当該ブロックデータに対応する検証用データとを格納し、
    前記プログラムは、各パケットデータ領域の各第2領域に格納された各アドレス値が示す各パケットデータ領域について、第1領域に格納された検証用データを読み出し、前記ヘッダ情報を生成すると、当該ヘッダ情報を第2領域に格納し、当該パケットデータ領域に格納されたヘッダ情報とブロックデータとからなるパケットデータを順次送出するよう制御するためのものである
    ことを特徴とする請求項1記載の通信装置。
  5. 前記通信装置は、更に
    前記外部メモリ上の空き領域を示す物理アドレス値と対応付けて論理アドレス値を記憶し、当該論理アドレス値を指定した前記外部メモリへのアクセスがなされると、当該論理アドレス値と対応する前記物理アドレス値に変換するMMU(Memory Management Unit)を備え、
    前記格納回路は、論理アドレス値を指定して、各ブロックデータと当該ブロックデータに対応する検証用データとを各第2所定サイズの領域に格納し、
    前記プログラムは、論理アドレスを指定して、各第2所定サイズの領域から検証用データを読み出すためのものである
    ことを特徴とする請求項1記載の通信装置。
  6. 前記特定データは、順次入力される画像データまたは音声データを所定単位毎に圧縮符号化した符号化データであり、
    前記通信装置は、更に
    前記外部メモリに各符号化データを順次格納する符号化部と、
    前記符号化部により前記外部メモリに格納される符号化データのサイズを監視し、第1所定サイズ分格納される毎に第1所定サイズ分の符号化データの読出しを指示する読出指示信号を前記格納回路に送出するレングス監視部とを備え、
    前記ブロックデータは、前記格納回路が、前記レングス監視部から前記読出し指示信号を受領する毎に前記外部メモリから読み出した第1所定サイズ分の符号化データである
    ことを特徴とする請求項1記載の通信装置。
  7. 前記特定データは、順次入力される画像データまたは音声データを所定単位毎に圧縮符号化した符号化データであり、
    前記通信装置は、更に
    前記符号化データを前記外部メモリに格納し、格納に際し、当該符号化データ中に所定のビットパターンを検出する毎に、所定のビットパターンを検出した旨の検出信号を前記格納回路に送出するパターン監視部を備え、
    前記格納回路は、前記パターン監視部から一の前記検出信号を受領した後、次の前記検出信号を受領するまでに前記外部メモリに格納された符号化データを読み出し、読み出した符号化データをブロックデータとして扱う
    ことを特徴とする請求項1記載の通信装置。
  8. 前記パターン監視部は、前記符号化データ中に所定のビットパターンを検出すると、前記外部メモリ上の所定のアドレス境界を先頭とした領域に、検出したビットパターン以降の符号化データを格納する
    ことを特徴とする請求項7記載の通信装置。
  9. 前記通信装置は、
    前記パケット制御部に代えて、前記格納回路により前記外部メモリに格納された各ブロックデータについて、対応する検証用データを読み出し当該検証用データを含むヘッダ情報を生成するヘッダ付与回路と、
    CPUを含み、前記ヘッダ付与回路が生成した各ヘッダ情報について、当該ヘッダ情報と当該ヘッダ情報に含まれる検証用データに対応するブロックデータとからなるパケットデータを送出するよう制御するためのプログラムを前記CPUに実行させる送出制御部とを備える
    ことを特徴とする請求項1記載の通信装置。
  10. 前記ヘッダ付与回路は、データ通信におけるプロトコル階層の層別に任意のヘッダを選択して前記ヘッダ情報を生成する
    ことを特徴とする請求項9記載の通信装置。
  11. 前記通信装置は、
    前記パケット制御部に代えて、前記格納回路により前記外部メモリに格納された各ブロックデータについて、前記検証用データを用いることなく生成可能なヘッダ情報の一部となる部分ヘッダ情報を生成するヘッダ付与回路と、
    CPUを含み、前記格納回路により前記外部メモリに格納された各ブロックデータについて、対応する検証用データを読み出し、当該検証用データと当該ブロックデータに対応する前記部分ヘッダ情報とからなるヘッダ情報を生成し、当該ヘッダ情報と前記検証用データに対応するブロックデータとからなるパケットデータを送出するよう制御するためのプログラムを前記CPUに実行させる送出制御部を備える
    ことを特徴とする請求項1記載の通信装置。
  12. 前記格納回路は、前記ブロックデータ毎に当該ブロックデータと当該ブロックデータに対応する前記部分ヘッダ情報との内容を反映して検証用データの前記生成を行う
    ことを特徴とする請求項11記載の通信装置。
  13. 前記特定データは、順次入力される画像データまたは音声データを所定単位毎に圧縮符号化した符号化データであり、
    前記通信装置は、更に
    各符号化データのデータサイズを指定する符号化設定部と、
    順次入力される前記画像データまたは前記音声データを所定単位毎に前記符号化設定部が指定するデータサイズに圧縮符号化し、圧縮符号化後の各符号化データを前記外部メモリに順次格納する符号化部を備える
    ことを特徴とする請求項1記載の通信装置。
  14. 前記外部メモリは論理的に分割された第1ネットワークデータ領域と第2ネットワークデータ領域とを有し、
    各第2所定サイズの領域は、特定データ毎に前記第1ネットワークデータ領域と前記第2ネットワークデータ領域とに交互に配置されるものである
    ことを特徴とする請求項1記載の通信装置。
  15. 前記通信装置は、再送の可能性を前提とした通信を行うものであり、
    前記外部メモリは、再送が必要とされうる各パケットデータを構成する前記ブロックデータを格納する再送用領域を有し、
    前記パケット制御部は、各パケットデータについて、前記ネットワーク部が当該パケットデータを送出してから所定時間内に、当該パケットデータの送出先から当該パケットデータを受領した旨の応答を受領していない場合に、当該応答を受領していないパケットデータを構成する前記ブロックデータを前記再送用領域に移動させるプログラムを前記CPUに実行させる
    ことを特徴とする請求項14記載の通信装置。
  16. 複数のブロックデータを含む各特定データをネットワークに順次送出する通信用集積回路であって、
    前記特定データについて、第1所定サイズのデータであるブロックデータ毎に当該ブロックデータの内容を反映した検証用データを生成し、当該検証用データと当該検証用データに対応するブロックデータとを外部メモリの第2所定サイズの各領域に格納する格納回路と、
    CPUを含み、前記格納回路により前記外部メモリに格納された各ブロックデータについて、対応する検証用データを読み出し当該検証用データを含むヘッダ情報を生成し、当該ヘッダ情報と当該検証用データに対応するブロックデータとからなるパケットデータを送出するよう制御するためのプログラムを前記CPUに実行させるパケット制御部と、
    前記パケット制御部による制御に従い、各パケットデータを順次送出するネットワーク部とを備え、
    検証用データを生成し、当該検証用データと当該検証用データに対応するブロックデータとを格納する前記格納回路と、ヘッダ情報を生成し、パケットデータを送出するよう制御する前記CPUとが、並列して動作するよう構成した
    ことを特徴とする通信用集積回路。
  17. データをネットワークに送出する通信装置であって、
    前記データについて、所定サイズ毎に誤り検出用データを生成する検出部と、
    前記データを所定のメモリ領域に転送するデータ転送部と、
    前記データについて、前記データ転送部により前記メモリ領域に転送され終えた部分を所定サイズ毎に、当該所定サイズのデータに対応する誤り検出用データと共にパケットとして送出するよう制御するための制御プログラムを実行するCPUと、
    前記CPUによる制御に従い、各パケットをネットワークに送出するネットワーク部とを備え、
    前記検出部と前記データ転送部と前記CPUとが並列して動作するよう構成した
    ことを特徴とする通信装置。
JP2007124921A 2007-05-09 2007-05-09 通信装置及び通信用集積回路 Pending JP2008283394A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007124921A JP2008283394A (ja) 2007-05-09 2007-05-09 通信装置及び通信用集積回路
CNA2008100993061A CN101304419A (zh) 2007-05-09 2008-05-09 用于通信的通信装置和集成电路
US12/118,189 US8018931B2 (en) 2007-05-09 2008-05-09 Communication apparatus and integrated circuit for communication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007124921A JP2008283394A (ja) 2007-05-09 2007-05-09 通信装置及び通信用集積回路

Publications (1)

Publication Number Publication Date
JP2008283394A true JP2008283394A (ja) 2008-11-20

Family

ID=40114127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007124921A Pending JP2008283394A (ja) 2007-05-09 2007-05-09 通信装置及び通信用集積回路

Country Status (3)

Country Link
US (1) US8018931B2 (ja)
JP (1) JP2008283394A (ja)
CN (1) CN101304419A (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991750B1 (en) * 2008-06-10 2011-08-02 Network Appliance, Inc. Application recovery from network-induced data corruption
US8244964B2 (en) * 2009-12-23 2012-08-14 Spansion Llc Read preamble for data capture optimization
JP2013051607A (ja) * 2011-08-31 2013-03-14 Canon Inc データ処理装置、方法および制御プログラム
US10013949B2 (en) * 2011-12-21 2018-07-03 Sony Mobile Communications Inc. Terminal device
GB2507127B (en) * 2012-10-22 2014-10-08 Gurulogic Microsystems Oy Encoder, decoder and method
RU2530210C2 (ru) * 2012-12-25 2014-10-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ выявления вредоносных программ, препятствующих штатному взаимодействию пользователя с интерфейсом операционной системы
US9426543B1 (en) * 2015-12-18 2016-08-23 Vuclip (Singapore) Pte. Ltd. Server-based video stitching
JP7155727B2 (ja) * 2018-08-07 2022-10-19 富士通株式会社 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム
US11470071B2 (en) * 2020-04-20 2022-10-11 Vmware, Inc. Authentication for logical overlay network traffic

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02130602A (ja) * 1988-11-11 1990-05-18 Toshiba Corp プロセス制御装置
JPH04248735A (ja) * 1991-02-05 1992-09-04 Hitachi Ltd 通信制御処理方式
JPH04352054A (ja) * 1991-05-29 1992-12-07 Toshiba Corp 通信制御装置
JPH04367138A (ja) * 1991-06-14 1992-12-18 Matsushita Electric Ind Co Ltd パケット送信装置
JPH0669957A (ja) * 1992-08-18 1994-03-11 Matsushita Electric Ind Co Ltd データ送信方法及びデータ送信装置
JP2001268159A (ja) * 2000-01-19 2001-09-28 Wiznot Corp Tcp/ipをハードウェア的に処理する装置及びその動作方法
JP2004153471A (ja) * 2002-10-29 2004-05-27 Sanyo Electric Co Ltd チェックサム算出方法、チェックサム記録方法、およびその方法を利用可能な通信装置
JP2004221795A (ja) * 2003-01-10 2004-08-05 Sanyo Electric Co Ltd パケット処理装置、パケット処理方法、およびその方法を利用可能な電話装置
JP2005102037A (ja) * 2003-09-26 2005-04-14 Renesas Technology Corp パケット通信装置
JP2005167965A (ja) * 2003-11-12 2005-06-23 Matsushita Electric Ind Co Ltd パケット処理方法および装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG82563A1 (en) * 1995-07-07 2001-08-21 Sun Microsystems Inc An apparatus and method for packetizing and segmenting mpeg packets
US6088360A (en) * 1996-05-31 2000-07-11 Broadband Networks Corporation Dynamic rate control technique for video multiplexer
WO2001082113A2 (en) * 2000-04-25 2001-11-01 Icplanet Acquisition Corporation System and method for proximity searching position information using a proximity parameter
US6963586B2 (en) * 2001-08-21 2005-11-08 Via Technologies, Inc. Method and apparatus for general-purpose packet reception processing
US7843968B2 (en) * 2002-09-30 2010-11-30 Sanyo Electric Co., Ltd. Communication apparatus and applications thereof
US20060251176A1 (en) * 2003-02-17 2006-11-09 Atsushi Hatabu Media-encoded data transmission method, apparatus and program
EP1913723B1 (en) * 2005-08-12 2019-05-01 Samsung Electronics Co., Ltd. Method and apparatus to transmit and/or receive data via wireless network and wireless device
US7835406B2 (en) * 2007-06-18 2010-11-16 Cisco Technology, Inc. Surrogate stream for monitoring realtime media

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02130602A (ja) * 1988-11-11 1990-05-18 Toshiba Corp プロセス制御装置
JPH04248735A (ja) * 1991-02-05 1992-09-04 Hitachi Ltd 通信制御処理方式
JPH04352054A (ja) * 1991-05-29 1992-12-07 Toshiba Corp 通信制御装置
JPH04367138A (ja) * 1991-06-14 1992-12-18 Matsushita Electric Ind Co Ltd パケット送信装置
JPH0669957A (ja) * 1992-08-18 1994-03-11 Matsushita Electric Ind Co Ltd データ送信方法及びデータ送信装置
JP2001268159A (ja) * 2000-01-19 2001-09-28 Wiznot Corp Tcp/ipをハードウェア的に処理する装置及びその動作方法
JP2004153471A (ja) * 2002-10-29 2004-05-27 Sanyo Electric Co Ltd チェックサム算出方法、チェックサム記録方法、およびその方法を利用可能な通信装置
JP2004221795A (ja) * 2003-01-10 2004-08-05 Sanyo Electric Co Ltd パケット処理装置、パケット処理方法、およびその方法を利用可能な電話装置
JP2005102037A (ja) * 2003-09-26 2005-04-14 Renesas Technology Corp パケット通信装置
JP2005167965A (ja) * 2003-11-12 2005-06-23 Matsushita Electric Ind Co Ltd パケット処理方法および装置

Also Published As

Publication number Publication date
US8018931B2 (en) 2011-09-13
CN101304419A (zh) 2008-11-12
US20080310411A1 (en) 2008-12-18

Similar Documents

Publication Publication Date Title
JP2008283394A (ja) 通信装置及び通信用集積回路
JP4198741B2 (ja) 通信機器、通信システム、通信方法、通信プログラム、通信回路
CN108965883A (zh) 使用虚拟帧内帧对视频内容进行编码的系统和方法
JP2008079150A (ja) 通信機器及びデータ転送方法
TW201811057A (zh) 影像訊框處理方法
US7711877B2 (en) Image sensing device
JP2018182447A (ja) 映像配信装置、映像配信方法及びプログラム
US9665422B2 (en) Information processing apparatus and method, and, program
US6678769B1 (en) Control apparatus and method for managing a logical connection between source and destination nodes
JP2007013697A (ja) 画像受信装置及び画像受信方法
JP2011248935A (ja) 監視映像記録システム
KR100299336B1 (ko) 메모리제어장치
JP2008079330A (ja) 通信機器、通信方法、通信プログラム、通信回路、携帯電話、表示装置、印刷装置、記録装置
US8081828B2 (en) Method for transmitting image bit stream and image encoder
JP2005260302A (ja) 動画情報伝送方法および装置
JP4037411B2 (ja) Ip画像伝送装置
JP2009069974A (ja) バスインターフェース回路および情報処理装置
US11539820B2 (en) Signaling and identifying picture boundary in video payload format over IP network
JP5004322B2 (ja) データ転送制御方法,装置および画像形成装置
JP2023020924A (ja) 高速ビデオを制御するためのシステム及び方法
US7908412B2 (en) Buffer passing mechanisms
JP2007110749A (ja) 時系列信号入力方法
JP2013090200A (ja) 通信装置におけるメモリ管理方法、通信装置及びプログラム
JPH0759053A (ja) 画像・音声パケット受信装置および送信装置とそれらを用いた画像・音声パケット伝送装置
JP2007006200A (ja) ストリーミング伝送処理方法及びネットワークカメラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100301

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110721

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111018