JP2010141659A - 情報処理装置および方法 - Google Patents

情報処理装置および方法 Download PDF

Info

Publication number
JP2010141659A
JP2010141659A JP2008316719A JP2008316719A JP2010141659A JP 2010141659 A JP2010141659 A JP 2010141659A JP 2008316719 A JP2008316719 A JP 2008316719A JP 2008316719 A JP2008316719 A JP 2008316719A JP 2010141659 A JP2010141659 A JP 2010141659A
Authority
JP
Japan
Prior art keywords
data
redundant
encoding
redundancy
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
JP2008316719A
Other languages
English (en)
Other versions
JP4883076B2 (ja
Inventor
Yoshinobu Kure
嘉伸 久礼
Takahiro Fukuhara
隆浩 福原
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2008316719A priority Critical patent/JP4883076B2/ja
Priority to US12/613,056 priority patent/US8311122B2/en
Priority to CN2009102583846A priority patent/CN101754026B/zh
Publication of JP2010141659A publication Critical patent/JP2010141659A/ja
Application granted granted Critical
Publication of JP4883076B2 publication Critical patent/JP4883076B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/007Unequal error protection
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/353Adaptation to the channel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6547TCP, UDP, IP and associated protocols, e.g. RTP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0086Unequal error protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]

Abstract

【課題】不要な遅延の増大を抑制しながら、バーストパケット損失耐性を向上させることができるようにする。
【解決手段】冗長符号化制御部121は、圧縮符号化の階層数および階層間の依存情報を取得する。FECブロックサイズ決定部201は、取得された情報に基づいて、各階層のFECブロックサイズを求める。冗長度決定部202は、取得された情報に基づいて、各階層の冗長度を求める。冗長符号化制御部121は決定されたFECブロックサイズおよび冗長度を、冗長符号化部123の要求に応じて、冗長符号化部123に提供する。本発明は、例えば、送信装置に適用することができる。
【選択図】図16

Description

本発明は、情報処理装置および方法に関し、特に、データ伝送において、不要な遅延の増大を抑制しながら、バーストパケット損失耐性を向上させることができるようにした情報処理装置および方法に関する。
近年、インターネット若しくはその他の伝送路を経由して、マルチメディアデータを低遅延に伝送するという需要が高まっている。例えば、遠隔地2地点の医療拠点をインターネット等で接続し、一方の遠隔手術室から手術風景を動画像伝送し、他方からその映像を見ながら遠隔手術室の手術器具を操作するといった、所謂遠隔手術用アプリケーションがある。このようなアプリケーションでは、数フレーム間隔以下の遅延での動画像伝送が要求される。
このような要求に対して、動画像の各ピクチャの数ライン毎を1つの圧縮符号化ブロックとしてウェーブレット変換による圧縮符号化を行う方式が提案された(例えば、特許文献参照)。この方式の場合、符号化装置は、ピクチャ内のデータ全てが入力される前に圧縮符号化を開始することができる。また、圧縮データをネットワーク経由で伝送し、受信側でその圧縮データを復号する場合、復号装置は、ピクチャ内の全てのデータを受信する前に復号処理を開始することができる。したがって、ネットワーク伝播遅延が十分小さければ、フレーム間隔以下の遅延でのリアルタイム動画像伝送が可能となる。
このようなリアルタイム伝送に適したインターネット技術に,IETF(Internet Engineering Task Force)のRFC(Request for Comments)3550で規定されているRTP(Realtime Transport Protocol)がある。RTPによるデータ転送では、時間情報としてパケットにタイムスタンプを付加しておき、これによって送信側と受信側の時間的関係を把握する。このようにすることにより、パケット転送の遅延ゆらぎ(ジッタ)などの影響を受けずに同期をとった再生が可能になる。
なお、RTPは、実時間のデータ転送を保証しているものではない。パケット配送の優先度や設定、管理などはRTPが提供するトランスポートサービスの範疇ではない。したがって、RTPパケットも、他のプロトコルのパケットと同様に、配送遅延やパケット損失がおきる可能性がある。
ただし、多少のデータ損失があったとしても、品質が低下するだけで、受信側は、期待する時間内に到着したパケットだけを利用してデータを再生することができる。なお、遅延配送されたパケットやエラーの発生したパケットは、受信側でそのまま破棄される。
このように、ネットワーク伝送を行う場合、高品質なデータを配信しても、パケット損失やエラーにより、受信側で十分に再生されない恐れがある。一般的に、エラーの発生確率は、有線区間で10-5、無線区間で10-3以上とされる。したがって、RTPをそのまま利用するのでは、配信するメディアの品質を十分に保つことができない。
その他のプロトコルを使用する方法として、例えば、データ転送に信頼性が高いTCP(Transmission Control Protocol)を利用する方法が考えられる。しかしながら、TCPは、エラーには強いが、スループットが低く、遅延が大きいので低遅延のデータ伝送には不向きである。例えば、エラー発生時に受信側がパケットの再送要求を行っても、その再送パケットの到着が再生時間には間に合わない恐れがあった。
そこで、RTPを用いてデータ転送の信頼性を向上させる手法として、データの冗長符号化を行うことで信頼性の向上を図る、前方誤り訂正符号化方式、所謂FEC(Forward Error Correction)方式という手法がある(例えば、非特許文献参照)。FEC方式では、複数個のパケットを1つのFECブロックとして、リードソロモン(RS(Reed-Solomon))符号等の誤り訂正符号を用いて冗長符号化を行う。例えば(n,k)RS符号を用いる場合、元パケットをk個とするとn−k個の冗長パケットを生成することができる(n>k)。この場合、送信装置が合計n個のパケットを送信することにより、受信装置は、n個のパケット中k個のパケットを受信すれば、RS復号処理によりk個の元パケットを復元することができる。例えば、非特許文献には、優先度に応じた冗長符号化方式が記載されている。
FEC方式を用いて冗長符号化した場合、パケット損失に対する回復性能は、FECブロックサイズと冗長パケット数(n−k)に依存する。特に、ネットワークを介したデータ伝送中に起こるデータ系列上連続するパケットの損失、所謂バーストパケット損失に対する回復性能は、FECブロックサイズと関係が深い。一般的に、FECブロックサイズを大きくとればとるほど、バーストパケット損失に対する回復性能は向上する。
特開2007−311924号公報 Alexander E. Mohr, Student Member, IEEE, Eve A. Riskin, Senior Member, IEEE, and Richard E. Ladner, Member, IEEE, "Unequal Loss Protection: Graceful Degradation of Image Quality over Packet Erasure Channels Through Forward Error Correction" IEEE JOUNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL.18, NO.6, pp819-828, JUNE2000.
しかしながら、FEC方式の場合、FEC符号化処理や復号処理を行うためにブロックサイズ分のデータを蓄積する時間が必要になる。したがって、FECブロックサイズを大きく取ると、遅延時間が大幅に増大してしまう恐れがあった。換言すれば、低遅延が要求されるデータ伝送においては、FEC方式ではバーストパケット損失に対する回復性能を十分に向上させることができない恐れがあった。
本発明はこのような問題を解決するためのものであり、動画像の圧縮データの入力データに対する関連範囲に応じて、FECブロックサイズを調整することにより、バーストパケット損失に対する回復性能を維持しながら、FEC処理のよる遅延を最低限とするものである。
本発明の一側面は、画像データを解像度に関して重要度の高いデータから順に階層化された階層化データを生成し、階層毎に符号化する符号化手段と、前記符号化手段により生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて前記階層毎に決められたサイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記階層化データの冗長データを生成する冗長符号化を行う冗長符号化手段とを備える情報処理装置である。
前記符号化手段により生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて、前記ブロックのサイズを前記階層毎に決定するブロックサイズ決定手段をさらに備え、前記冗長符号化手段は、前記ブロックサイズ決定手段により決定された前記サイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記階層化データの冗長データを生成する冗長符号化を行うことができる。
前記ブロックサイズ決定手段は、前記階層間の依存関係において、依存する範囲が広い階層ほど、前記ブロックのサイズを大きく設定するようにすることができる。
前記符号化手段により生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて、前記冗長符号化の冗長度を前記階層毎に決定する冗長度決定手段をさらに備え、前記冗長符号化手段は、前記ブロックサイズ決定手段により決定された前記サイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記冗長度決定手段により決定された冗長度で前記階層化データの冗長データを生成する冗長符号化を行うことができる。
前記冗長符号化手段により冗長符号化された前記階層化データのパケット、および前記冗長データのパケットを、ネットワークを介して他の情報処理装置に送信する送信手段と、前記ネットワークの伝播遅延の所定時間の平均値を算出する伝播遅延算出手段とをさらに備え、前記ブロックサイズ決定手段は、前記階層間の依存関係の他に、さらに、前記伝播遅延算出手段により算出された前記伝播遅延の所定時間の前記平均値に基づいて、前記ブロックのサイズを前記階層毎に決定することができる。
前記冗長符号化手段により冗長符号化された前記階層化データのパケット、および前記冗長データのパケットを、ネットワークを介して他の情報処理装置に送信する送信手段と、前記ネットワークの伝播遅延の所定時間の最大値を算出する最大伝播遅延算出手段とをさらに備え、前記ブロックサイズ決定手段は、前記階層間の依存関係の他に、さらに、前記最大伝播遅延算出手段により算出された前記伝播遅延の所定時間の前記最大値に基づいて、前記ブロックのサイズを前記階層毎に決定することができる。
前記符号化手段は、SNR(Signal to Noise Ratio)、空間解像度、または時間方向の解像度に関して重要度の高いデータから順に階層化された前記階層化データを生成し、階層毎に符号化することができる。
前記符号化手段は、前記画像データまたは前記階層化データを複数のサブバンドに分割する処理を再帰的に繰り返すことにより、階層化された複数の前記サブバンド毎の前記階層化データを生成し、階層毎に符号化することができる。
本発明の一側面は、また、解像度に関して重要度の高いデータから順に階層化された階層化データを生成し、階層毎に符号化し、冗長符号化手段は、生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて前記階層毎に決められたサイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記階層化データの冗長データを生成する冗長符号化を行うステップを含む。
本発明の一側面においては、解像度に関して重要度の高いデータから順に階層化された階層化データが生成され、階層毎に符号化され、生成された階層化データ同士、または、階層化データと画像データの、階層間の依存関係に基づいて階層毎に決められたサイズで、階層化データが階層毎にブロック化され、ブロック毎に、階層化データの冗長データが生成される。
本発明によれば、データ伝送を行うことができる。特に、不要な遅延の増大を抑制しながら、バーストパケット損失耐性を向上させるように、データを伝送させることができる。
以下、発明を実施するための最良の形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(ネットワークシステム:FECブロックサイズおよび冗長度を、階層に応じて制御する例)
2.第2の実施の形態(送信装置:階層別のFECブロックサイズおよび冗長度を予め記憶する例)
3.第3の実施の形態(送信装置:目標FECブロック損失率を階層毎に設定する例)
4.第4の実施の形態(ネットワークシステム:RTCPを用いてネットワーク状況情報を、FECブロックサイズおよび冗長度の設定に反映させる例)
5.第5の実施の形態(送信装置:最大往復伝播遅延を算出する例)
6.第6の実施の形態(送信装置:FEC符号化制御方法を選択する例)
<1.第1の実施の形態>
[ネットワークシステムの構成例]
図1は、本発明を適用したネットワークシステムの構成例を示すブロック図である。図1において、ネットワークシステム100は、ネットワーク110を介して送信装置101および受信装置102が接続されるシステムである。ネットワークシステム100は、画像データ(動画像または静止画像のデータ)を、ネットワーク110を介して、送信装置101から受信装置102に伝送するシステムである。以下においては説明の便宜上動画像データを伝送する場合について説明するが、以下の説明は静止画像データの伝送にも適用することができる。動画像はフレーム画像またはフィールド画像の集合、すなわち、静止画像の集合と考えることができる。したがって、ネットワークシステム100は、いかに説明する動画像データ伝送の場合と基本的に同様に処理を行うことにより、静止画像データの伝送を行うことができる。
送信装置101は、入力された動画像データ(ビデオIN)を符号化してパケット化し、そのパケットを、ネットワーク110を介して受信装置102に送信する。図1に示されるように、送信装置101は、冗長符号化制御部121、動画像圧縮符号化部122、冗長符号化部123、およびRTP送信部124を有する。
冗長符号化制御部121は、冗長符号化部123により行われる冗長符号化のブロックサイズや冗長度を決定する。動画像圧縮符号化部122は、送信装置101に入力される動画像データ(ビデオIN)を圧縮符号化し、生成した符号化データを冗長符号化部123に供給する。
冗長符号化部123は、動画像圧縮符号化部122より供給された符号化データに対して冗長符号化を行う。冗長符号化部123は、冗長符号化制御部121において決定されたブロックサイズで符号化データをブロック化する。冗長符号化部123は、そのブロック毎の符号化データをRTPパケット化する。冗長符号化部123は、そのブロック毎のRTPパケット群に対して、冗長符号化制御部121において決定された冗長度で冗長データ(冗長パケット)を生成する。冗長符号化部123は、生成されたRTPパケットをRTP送信部124に供給する。
RTP送信部124は、供給されたRTPパケットを、ネットワーク110を介して受信装置102に送信する。
受信装置102は、ネットワーク110を介して送信装置101より送信されたRTPパケットを受信し、デパケタイズして冗長復号や伸長復号を行うことにより動画像データを生成して出力する。図1に示されるように、受信装置102は、RTP受信部131、冗長復号部132、および動画像伸長復号部133を有する。
RTP受信部131は、ネットワークを介して受信装置102に送信されるRTPパケットを受信し、冗長復号部132に供給する。冗長復号部132は、供給されたRTPパケットを、冗長符号化部123の冗長符号化方法に対応する復号方法で冗長復号し、ロスがある場合は冗長データを使って元のパケットを復元し、符号化データを抽出する。冗長復号部132は、得られた符号化データを動画像伸長復号部133に供給する。動画像伸長復号部133は、符号化データを、動画像圧縮符号化部122の圧縮符号化方法に対応する方法で伸長復号し、ベースバンドの動画像データを生成する。動画像伸長復号部133は、生成した動画像データを受信装置102より出力する。
[動画像圧縮符号化・伸長復号の説明]
次に、動画像圧縮符号化部122と動画像伸長復号部133による動画像圧縮符号化・伸長復号の例について説明する。
図2は、動画像圧縮符号化部122の詳細な構成例を示すブロック図である。動画像圧縮符号化部122は、画像データを解像度に関して重要度の高いデータから順に階層化し、その階層毎に符号化する階層符号化を行う。例えば、動画像圧縮符号化部122は、空間解像度に関して重要度の高いデータから順に階層化された階層化データを生成する。また、例えば、動画像圧縮符号化部122は、時間方向の解像度に関して重要度の高いデータから順に階層化された階層化データを生成する。さらに、例えば、動画像圧縮符号化部122は、SNR(Signal to Noise Ratio)に関して重要度の高いデータから順に階層化された階層化データを生成する。動画像圧縮符号化部122は、このように生成した階層化データを、その階層毎に符号化する。
このような階層符号化として、例えば、動画像データの各ピクチャをウェーブレット変換し、エントロピ符号化するJPEG(Joint Photographic Experts Group)2000方式がある。階層符号化方法は任意であるが、以下においては、動画像圧縮符号化部122が、動画像データを複数ライン毎にウェーブレット変換し、エントロピ符号化する場合について説明する。
図2に示されるように、動画像圧縮符号化部122は、ウェーブレット変換部151、量子化部152、エントロピ符号化部153、およびレート制御部154を有する。ウェーブレット変換部151は、動画像の各ピクチャを、複数ライン毎にウェーブレット変換する。
ウェーブレット変換は、入力データを低域成分と高域成分に分割する分析フィルタ処理を画面水平方向および画面垂直方向の両方に対して行う処理である。つまり、ウェーブレット変換処理により入力データは、水平方向および垂直方向に低域な成分(LL成分)、水平方向に高域で垂直方向に低域な成分(HL成分)、水平方向に低域で垂直方向に高域な成分(LH成分)、および、水平方向および垂直方向に高域な成分(HH成分)の4つの成分(サブバンド)に分割される。
ウェーブレット変換部151は、このようなウェーブレット変換処理を、所定回数、分析フィルタ処理により得られる水平方向および垂直方向に低域な成分(LL成分)に対して再帰的に繰り返す。つまり、ウェーブレット変換処理により、動画像データの各ピクチャは、階層化された複数のサブバンド(周波数成分)に分割される(階層化データが生成される)。エントロピ符号化部153は、このサブバンド毎に符号化を行う。
動画像の各ピクチャの画像データは、画像の上から下に向かう順に1ラインずつウェーブレット変換部151に入力される。また各ラインの画像データは、画像左から右に向かう順に1サンプル(1コラム)ずつ入力される。
ウェーブレット変換部151は、そのように入力される画像データに対して、分析フィルタリングを実行可能なサンプル数のデータを入手する毎に(入手次第)、画像水平方向の分析フィルタリング(水平分析フィルタリング)を実行する。例えば、ウェーブレット変換部151は、図3の左に示されるベースバンドの画像データ161に対して、Mコラム入力される毎に水平分析フィルタリングを行い、1ラインずつ水平方向に低域な成分(L)と高域な成分(H)に分割する。図3の右に示される水平分析フィルタ処理結果162は、ウェーブレット変換部151により分割されたNライン分の水平方向に低域な成分(L)と高域な成分(H)を示す。
次に、ウェーブレット変換部151は、その水平分析フィルタ処理結果162の各成分に対して、垂直方向に分析フィルタリング(垂直分析フィルタリング)を行う。ウェーブレット変換部151は、水平分析フィルタリングにより、垂直分析フィルタリングに必要な垂直ライン分の係数が生成されると、その垂直分析フィルタリングに必要な垂直ライン分の係数に対して、コラム毎に垂直分析フィルタリングを行う。
その結果、水平分析フィルタ処理結果162は、図4の左に示されるように、水平方向および垂直方向の両方に低域な成分(LL成分)、水平方向に高域で垂直方向に低域な成分(HL成分)、水平方向に低域で垂直方向に高域な成分(LH成分)、および、水平方向および垂直方向の両方に高域な成分(HH成分)の4つの成分のウェーブレット変換係数(以下、係数と称する)に分割される(階層化データ163)。
所定の階層(分割レベル)の係数が得られるまで、得られた分析フィルタリングの結果のうち、HL成分、LH成分、HH成分は外部に出力される。残りのLL成分は、ウェーブレット変換部151により、再度分析フィルタリングが行われる。つまり、例えば、図4の左に示される階層化データ163は、図4の右に示される階層化データ164に変換される。階層化データ164では、LL成分から、LLLL成分、LLHL成分、LLLH成分、およびLLHH成分の4つの成分が生成されている。
ウェーブレット変換部151は、このような分析フィルタリングを所定回数再帰的に行い、動画像データを所望の分割レベルまで階層化された階層化データを生成する。図5は、分割レベル3(3階層)まで階層化された階層化データの例を示す図である。図5において、分割レベル3まで分割された階層化データ165は、分割レベル1(階層番号3)の3HL成分、3LH成分、および3HH成分、分割レベル2(階層番号2)の2HL成分、2LH成分、および2HH成分、並びに、分割レベル3(階層番号1)の1LL成分、1HL成分、1LH成分、および1HH成分の各サブバンドにより構成される。
ウェーブレット変換処理では、フィルタリング処理を繰り返す毎に(階層が1つ下位になる毎に)、生成されるライン数は2のべき乗分の1の大きさで小さくなっていく。最終分割レベル(階層番号1)の係数を1ライン生成するために必要なベースバンドのライン数は、そのフィルタリング処理を何回繰り返すか(最終分割レベルの階層数)によって決められる。通常、この階層数は予め定められる。
この、最終分割レベルの係数を1ライン生成するために必要なベースバンドの画像データ(複数ライン分の画像データ)、または、各階層の係数をまとめてプレシンクト(またはラインブロック)と称する。
図5において斜線で示される部分が1プレシンクトを構成する係数である。図5に示されるように、プレシンクトは、階層番号1の各成分の1ライン分の係数、階層番号2の各成分の2ライン分の係数、並びに、階層番号3の各成分の4ライン分の係数により構成される。なお、これらに相当する分析フィルタリング前の画像データ、すなわち、この例では8ライン分の画像データのこともプレシンクト(またはラインブロック)と称する。
次に、上述した分析フィルタリングにおける演算方法について具体的に説明する。分析フィルタリングにおける演算方法で最も一般的な演算方法は、畳み込み演算と呼ばれる方法である。この畳み込み演算は、デジタルフィルタの最も基本的な実現手段であり、フィルタのタップ係数に、実際の入力データを畳み込み乗算するものである。しかしながら、この畳み込み演算では、タップ長が長いとその分、計算負荷が増えてしまう場合もある。
これに対応する方法として、論文「W.Swelden,“The lifting scheme :A custom-design construction of Biorthogonal wavelets”, Applied and Computational Harmonic Analysis, vol3, no.2, pp.186-200, 1996」で紹介されたウェーブレット変換のリフティング技術が知られている。
図6は、JPEG2000規格でも採用されている9×7分析フィルタのリフティング構成を示している。この9×7分析フィルタに対してリフティング技術を適用したときの分析フィルタリングについて説明する。
図6の例において、1段目(最上段)は、入力画像のサンプル群(画素列)を示し、2,3段目は、それぞれステップA1およびステップA2の処理で生成される成分(係数)を示す。また、4段目は、ステップA3の処理で生成される高域成分出力を示し、5段目は、ステップA4の処理で生成される低域成分出力を示している。最上段部は、入力画像のサンプル群に限らず、前の分析フィルタリングで得られた係数であってもよい。ここでは、最上段部が入力画像のサンプル群であるものとし、四角印(■)が偶数番目のサンプルまたはライン、丸印(●)が奇数番目のサンプルまたはラインとする。
9×7分析フィルタに対してリフティング技術を適用した分析フィルタリングにおいては、ステップA3の処理で高域成分が得られ、ステップA4の処理で低域成分が得られる。なお、ステップA1乃至ステップA4の処理は、次の式(1)乃至式(4)で表される。
stepA1:di 1=di 0+α(si 0+si+1 0) ・・・(1)
stepA2:si 1=si 0+β(di-1 1+di 1) ・・・(2)
stepA3:di 2=di 1+γ(si 1+si+1 1) ・・・(3)
stepA4:si 2=si 1+δ(di-1 2+di 2) ・・・(4)
(α=-1.586134342,β=-0.0529801185,γ=0.8829110755,δ=0.4435068520)
このように、リフティング技術を適用した分析フィルタリングにおいては、ステップA1およびA2の処理が行われ、ステップA3で、高域成分の係数が生成された後に、ステップA4で、低域成分の係数が生成される。この際に用いられるフィルタバンクは、式(1)乃至式(4)に示されるように、加算とシフト演算のみで実現できる。したがって、計算量を大幅に低減することができる。そこで、次に説明するように、水平分析フィルタリングおよび垂直分析フィルタリングに、このリフティング技術を適用する。
まず、水平分析フィルタリングの処理について具体的に説明する。図7は、水平分析フィルタリングを、図6のリフティング構成により実行する場合の例を示している。
図7の例においては、入力される水平方向の係数に対して、図6で上述した4つのステップ(ステップA1乃至A4)の処理を経て、高域成分の係数(以下、高域係数とも称する)と低域成分の係数(以下、低域係数とも称する)が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。また、水平方向の係数の上に示される数字は、列(コラム)番号を示している。
さらに、上から1段目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、2段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
以下、動作について上から順に説明する。図7の上段には、水平方向にコラム番号4乃至6の3コラムの係数が入力されて、水平方向のリフティング構成による演算(以下、水平リフティング演算と称する)が行われる場合の例が示されている。
この水平リフティング演算のステップA3において1番目の高域係数を求め、ステップA4において1番目の低域係数を求めるためには、コラム番号0乃至4の4コラムの係数の入力が必要である。
その後、2番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号5および6の2コラムの係数が必要であり、さらに、ステップA2のP1が示される係数を算出するためには、丸数字で示されるコラム番号4の係数も必要である。
太線実線で示される3つの係数は、1番目の高域係数および低域係数を求めるための水平リフティング演算(以下、1番目の水平リフティング演算とも称する)の過程で生成される係数のうちの一部である。
すなわち、2番目の高域係数と低域係数を求めるためには、結局、丸数字で示されるコラム番号4乃至6の3コラムの係数の入力が必要であり、さらに、1番目の水平リフティング演算の過程において生成される太線実線で示される3つの係数を、途中演算用の係数として、ラッチしておく必要がある。実際には、高々3つの係数であるので、フリップフロップ等の小容量の記憶領域を用いることで対応することができる。
したがって、1番目の水平リフティング演算においてラッチされていた太線実線で示される3つの係数と、入力されたコラム番号4乃至6の3コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、2番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が生成される。これらのうち、一点鎖線で示される3つの係数は、3番目の高域係数と低域係数を求めるために必要な係数であるので、途中演算用の係数として、内蔵されるフリップフロップにラッチされる。
コラム番号6の係数の入力の後、水平方向に2コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号6乃至8の3コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図7の下段に示されている。
2番目の場合と同様に、3番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号7および8の2コラムの係数が必要であり、さらに、ステップA2のP2が示される係数を算出するためには、丸数字で示されるコラム番号6の係数も必要であることがわかる。
なお、下段の太線実線で示される3つの係数は、上段の一点鎖線で示されるように、2番目の水平リフティング演算でフリップフロップにラッチされている。
したがって、2番目の水平リフティング演算でラッチされていた太線実線で示される3つの係数と、入力されたコラム番号6乃至8の3コラムの係数が用いられて水平リフティング演算が行われることにより、3番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が生成される。これらのうち、一点鎖線で示される3つの係数は、4番目の高域係数と低域係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
以上のようにして、3コラム分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の分析フィルタリングが完了される。
なお、以上においては、リフティング構成による1ライン分の水平分析フィルタリングの例を説明したが、上述した動作によって、係数のラインを上から下方向に順次入力しながら、リフティング構成により水平分析フィルタリングを行う動作を、図8を参照して説明する。なお、図8において、図6および図7と対応する係数については同様に図示されており、その詳細な説明は繰り返しになるので省略する。
図8の左側には、各入力ラインに対して、水平リフティング演算が行われる例が示されており、右側には、上から下の垂直方向に順に展開されていく各入力ラインの水平リフティング演算の結果の係数に対して、垂直リフティング演算が行われる例が概念的に示されている。
図中左から順に説明すると、先頭の入力ライン0における係数に対して、4つのステップからなる水平リフティング演算を経て1乃至11の数字が付されている低域係数および高域係数が生成されている。このうち、奇数番目の数字(1,3,5,7,9,11)が付されている係数は低域係数で、偶数番目の数字(2,4,6,8,10)が付されている係数は高域係数である。
入力ライン1しか図示されていないが、入力ライン1乃至入力ラインnに関しても同様である。すなわち、先頭の入力ライン1における係数に対して、4つのステップからなる水平リフティング演算を経て1乃至11の数字が付されている低域係数および高域係数が生成されており、このうち、奇数番目の数字(1,3,5,7,9,11)が付されている係数は低域係数で、偶数番目の数字(2,4,6,8,10)が付されている係数は高域係数である。
そして、図8の右側に示すように、入力ライン0の水平フィルタリングの結果の1乃至11が付された係数は、上から1段目に、手前から奥への水平方向に並べて展開される。入力ライン1の水平フィルタリングの結果の1乃至11が付された係数は、上から2段目に、手前から奥への水平方向に並べて展開される。入力ライン2の水平フィルタリングの結果の係数は、上から3段目に、手前から奥への水平方向に並べて展開される。
以上のように、各入力ライン0乃至入力ラインnに対しての水平フィルタリングの結果の係数が、図8の右側に示すように、上から下の垂直方向に順番に展開されていく。なお、実際には、各入力ラインの水平フィルタリングの結果の1乃至11が付された係数は、手前から奥への水平方向に低域と高域が交互に並んでいる。
そして、垂直方向の係数が所定数集まり次第、すなわち、所定ライン数集まり次第、右側のリフティングのステップの方向に示されるように、左から右へと、垂直方向のリフティング構成による演算(すなわち、垂直リフティング演算)が行われる。
次に、垂直分析フィルタリングについて具体的に説明する。図9は、垂直方向の分析フィルタリングを、図6のリフティング構成により実行する場合の例を示している。
なお、この図は、図8の右側に概念的に示した水平方向に展開されて並ぶ係数1つに着目したものであり、実際の2次元のウェーブレット変換では、ウェーブレット変換の過程で生成される周波数成分(サブバンド)の水平方向の係数の個数だけ、垂直方向の分析フィルタリングの計算が必要になることは自明である。
図9の例においては、垂直方向の係数に対して、図6で上述した4つのステップ(ステップA1乃至A4)の処理を経て、高域係数と低域係数が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。また、垂直方向の係数の左に示される数字は、ライン番号を示している。
さらに、左から1列目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、2列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
以下、動作について左から順に説明する。図9の左側には、垂直方向にライン番号4乃至6の3ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が示されている。
この垂直リフティング演算のステップA3において1番目の高域係数を求め、ステップA4において1番目の低域係数を求めるためには、ライン番号0乃至4の4ラインの係数が必要である。
その後、2番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号5および6の2ラインの係数が必要であり、さらに、ステップA2のP1が示される係数を算出するためには、丸数字で示されるライン番号4の係数も必要である。
太線実線で示される3つの係数は、1番目の高域係数および低域係数を求めるための垂直リフティング演算(以下、1番目の垂直リフティング演算と称する)の過程で生成される係数のうちの一部である。
すなわち、2番目の高域係数と低域係数を求めるためには、結局、丸数字で示されるライン番号4乃至6の3ラインの係数の入力が必要である。さらに、1番目の垂直リフティング演算の過程において生成される太線実線で示される3つの係数が必要である。ウェーブレット変換部151は、この3つの係数を途中演算用の係数として記憶する。
したがって、1番目の垂直リフティング演算で記憶されていた太線実線で示される3つの係数と、対応するレベルのバッファから読み出され入力されるライン番号4乃至6の3ラインの係数が用いられて垂直リフティング演算が行われることにより、2番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が得られる。これらのうち、一点鎖線で示される3つの係数は、3番目の高域係数と低域係数を求めるために必要な係数であるので記憶される。
ライン番号6の係数の読み出しの後、2ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号6乃至8の3ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図9の右側に示されている。
2番目の場合と同様に、3番目の高域係数と低域係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号7および8の2ラインの係数が必要であり、さらに、ステップA2のP2が示される係数を算出するためには、丸数字で示されるライン番号6の係数も必要であることがわかる。
なお、右側の太線実線で示される3つの係数は、左側の一点鎖線で示されるように、2番目の垂直リフティング演算で記憶されている。したがって、2番目の垂直リフティング演算で記憶されていた太線実線で示される3つの係数と、対応するレベルのバッファから読み出されて入力されるライン番号6乃至8の3ラインの係数が用いられて垂直リフティング演算が行われることにより、3番目の高域係数と低域係数を含めた4つの係数(太線点線で示される)が得られる。これらのうち、一点鎖線で示される3つの係数は、4番目の高域係数と低域係数を求めるために必要な係数であるので記憶される。
以上のようにして、3ライン分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の分析フィルタリングが完了される。
図2に戻り、量子化部152は、ウェーブレット変換部151により生成される各成分の係数を、例えば量子化ステップサイズで除算することにより量子化し、量子化係数を生成する。この際、量子化部152は、プレシンクト(ラインブロック)毎に量子化ステップサイズを設定することができる。このプレシンクトは、ある画像領域のすべての周波数成分(図5の場合、1LL乃至3HHまでの10個の周波数成分)の係数を包含しているため、プレシンクト毎に量子化を行えば、ウェーブレット変換の特徴である多重解像度分析の利点を活かすことができる。また、全画面でプレシンクト数だけを決めればよいため、量子化の負荷も小さくて済む。
さらに、画像信号のエネルギは一般的に低域成分に集中しており、また、人間の視覚上、低域成分の劣化が目立ちやすいという特性があるため、量子化に際しては、低域成分のサブバンドでの量子化ステップサイズが結果的に小さな値になるように、重み付けを行うことが有効である。この重み付けにより、低域成分には相対的に多くの情報量が割り当てられるようになり、全体の主観的な画質が向上する。
エントロピ符号化部153は、量子化部152で生成された量子化係数を情報源符号化し、圧縮された符号化コードストリームを生成する。情報源符号化としては、例えばJPEG方式やMPEG(Moving Picture Experts Group)方式で用いられているハフマン符号化や、JPEG2000方式で用いられているさらに高精度な算術符号化を用いることができる。
ここで、エントロピ符号化をどの範囲の係数に対して行うかは、圧縮効率に直接関係する非常に重要な要素になる。例えば、JPEG方式やMPEG方式では、8×8のブロックに対してDCT(Discrete Cosine Transform)変換を施し、生成された64個のDCT変換係数に対してハフマン符号化を行うことで、情報を圧縮している。すなわち、64個のDCT変換係数がエントロピ符号化の範囲になる。
ウェーブレット変換部151では、8×8ブロックに対するDCT変換とは異なり、ライン単位でウェーブレット変換を施しているため、エントロピ符号化部153では、周波数帯域(サブバンド)毎に独立に、且つ各周波数帯域内をPライン毎に情報源符号化する。
Pは1ラインが最低であるが、ライン数が少ない場合には参照情報が少なくて済み、メモリ容量を減らすことができる。逆に、ライン数が多い場合には情報量がその分増えるため、符号化効率が向上させることができる。しかしながら、Pが各周波数帯域内のラインブロックのライン数を超えた値になると、次のラインブロックのラインまで必要になる。このため、このラインブロックの量子化係数データがウェーブレット変換及び量子化によって生成されるまで待たなければならず、この時間が遅延時間となってしまう。
したがって、低遅延のためには、Pはラインブロックのライン数以下である必要がある。例えば、図5の例では、1LL,1HL,1LH,1HHの周波数帯域については、ラインブロックのライン数=1ラインであるためP=1となる。また、2HL,2LH,2HHのサブバンドについては、ラインブロックのライン数=2ラインであるためP=1または2となる。
レート制御部154は、最終的に目標のビットレート又は圧縮率に合わせるための制御を行い、レート制御後の符号化コードストリームを外部に出力する。例えば、このレート制御部154は、ビットレートを上げる場合には量子化ステップサイズを小さくし、ビットレートを下げる場合には量子化ステップサイズを大きくするように、量子化部152に対して制御信号を送信する。
次に、以上のように圧縮符号化された符号化データを伸長復号する方法について説明する。図10は、伸長復号を行う動画像伸長復号部133の構成例を示すブロック図である。図10において、動画像伸長復号部133は、エントロピ復号部171、逆量子化部172、およびウェーブレット逆変換部173を有する。
エントロピ復号部171は、入力した符号化データを情報源復号し、量子化係数データを生成する。情報源復号としては、動画像圧縮符号化部122の情報源符号化に対応して、ハフマン復号や、高効率な算術復号などを用いることができる。なお、動画像圧縮符号化部122においてPラインごとに情報源符号化されている場合、エントロピ復号部171においても同様に、各サブバンドが独立に、かつ各サブバンド内がPライン毎に情報源復号される。
逆量子化部172は、量子化係数データに量子化ステップサイズを乗算することにより逆量子化し、係数データを生成する。この量子化ステップサイズは、通常、符号化コードストリームのヘッダなどに記述されている。なお、動画像圧縮符号化部122において、ラインブロック毎に量子化ステップサイズが設定されている場合には、逆量子化部172においても同様に、ラインブロック毎に逆量子化ステップサイズが設定されて、逆量子化される。
ウェーブレット逆変換部173は、ウェーブレット変換部151の逆処理を行う。つまり、ウェーブレット逆変換部173は、ウェーブレット変換部151により複数の周波数帯域に分割された係数データに対して、低域成分と高域成分を合成するフィルタ処理(合成フィルタ処理)を水平方向と垂直方向の両方に対して行う。
上述したリフティング技術を適用したときの分析フィルタリングに対応して、効率的にフィルタリングを実行することができることから、ウェーブレット逆変換の合成フィルタリングにおいても、同様にリフティング技術を用いることが好ましい。
図11は、JPEG2000規格でも採用されている9×7分析フィルタのリフティング構成を示している。この9×7分析フィルタに対してリフティング技術を適用したときの合成フィルタリングについて説明する。
図11の例において、1段目(最上段)は、ウェーブレット変換により生成された係数であり、丸印(●)が高域成分の係数を示し、四角印(■)が低域成分の係数を示す。2,3段目は、それぞれステップB1およびステップB2の処理で生成される成分(係数)を示す。また、4段目は、ステップB3の処理で生成される偶数成分出力を示し、5段目は、ステップB4の処理で生成される奇数成分出力を示している。
9×7分析フィルタに対してリフティング技術を適用した合成フィルタリングにおいては、ステップB3の処理で偶数成分が得られ、ステップB4の処理で奇数成分が得られる。なお、ステップB1乃至ステップB4の処理は、次の式(5)乃至式(8)で表される。
stepB1:si 1=si 2−δ(di-1 2+di 2) ・・・(5)
stepB2:di 1=di 3−γ(si 1+si+1 1) ・・・(6)
stepB3:si 0=si 1−β(di-1 1+di 1) ・・・(7)
stepB4:di 0=di 1−α(si 0+si+1 0) ・・・(8)
(α=-1.586134342,β=-0.0529801185,γ=0.8829110755,δ=0.4435068520)
このように、リフティング技術を適用した合成フィルタリングにおいては、ステップB1およびB2の処理が行われ、ステップB3で、偶数成分の係数が生成された後に、ステップB4で、奇数成分の係数が生成される。この際に用いられるフィルタバンクは、式(5)乃至式(8)に示されるように、除算とシフト演算のみで実現できる。したがって、計算量を大幅に低減することができる。
そこで、次に説明するように、ウェーブレット逆変換部173においても、画像垂直方向に合成フィルタリング(垂直合成フィルタリング)および水平合成フィルタリング(水平合成フィルタリング)に、このリフティング技術を適用する。なお、用いる式が異なるだけであり、垂直合成フィルタリングは、図6を参照して上述した垂直分析フィルタリングと基本的に同様な動作を行い、水平合成フィルタリングは、図7を参照して上述した水平分析フィルタリングと基本的に同様な動作を行う。
まず、垂直合成フィルタリングの処理について具体的に説明する。図12は、垂直方向の係数群に対しての垂直合成フィルタリングを、図11のリフティング構成により実行する場合の例を示している。
図12の例においては、垂直方向の係数に対して、図11で上述した4つのステップ(ステップB1乃至B4)の処理を経て、偶数番目の係数(以下、偶数係数とも称する)と奇数番目の係数(以下、奇数係数とも称する)が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。
また、垂直方向の係数の左側に示される数字は、ライン番号を示しており、左から1列目のハッチが付された丸および四角は、それぞれ、高域入力および低域入力を表している。さらに、2列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である奇数係数および偶数係数を表している。
以下、動作について左から順に説明する。図12の左側には、垂直方向にライン番号4乃至6の3ラインの係数が入力されて、垂直方向のリフティング構成による演算(すなわち、垂直リフティング演算)が行われる場合の例が示されている。なお、いまの場合、最上段の偶数係数は、奇数係数と組みになっていないのでその説明を省略する。
この垂直リフティング演算のステップB3において1番目の偶数係数を求め、ステップB4において1番目の奇数係数を求めるためには、ライン番号0乃至5の6ラインの係数が必要である。
その後、2番目の偶数係数と奇数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号6および7の2ラインの係数が必要であり、さらに、ステップB2のQ1が示される係数を算出するためには、丸数字で示されるライン番号5の係数も必要である。
太線実線で示される3つの係数は、1番目の偶数係数および奇数係数を求めるための垂直リフティング演算(以下、1番目の垂直リフティング演算と称する)の過程で生成される係数のうちの一部である。
したがって、2番目の偶数係数と奇数係数を求めるためには、結局、丸数字で示されるライン番号5乃至7の3ラインの係数の入力が必要であり、さらに、1番目の偶数係数と奇数係数を求めるための垂直リフティング演算の過程において生成される太線実線で示される3つの係数を記憶しておく必要がある。なお、このとき、垂直方向の3ラインの係数は、レベル毎に読み出される。
したがって、1番目の垂直リフティング演算でバッファに記憶されていた太線実線で示される3つの係数と、入力されるライン番号5乃至7の3ラインの係数が用いられて垂直リフティング演算が行われることにより、2番目の偶数係数と奇数係数を含めた4つの係数(太線点線で示される)が得られる。このうち、一点鎖線で示される3つの係数は、3番目の偶数係数と奇数係数を求めるために必要な係数であるので記憶される。
ライン番号7の係数の読み出しの後、2ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号7乃至9の3ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図12の右側に示されている。
2番目の場合と同様に、3番目の偶数係数と奇数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるライン番号8および9の2ラインの係数が必要であり、さらに、ステップB2のQ2が示される係数を算出するためには、丸数字で示されるライン番号7の係数も必要である。
なお、右側の太線実線で示される3つの係数は、左側の一点鎖線で示されるように、2番目の垂直リフティング演算で係数バッファ66に記憶されている。
したがって、2番目の垂直リフティング演算で記憶されていた太線実線で示される3つの係数と、入力されるライン番号7乃至9の3ラインの係数が用いられて垂直リフティング演算が行われることにより、3番目の偶数係数と奇数係数を含めた4つの係数(太線点線で示される)が得られる。このうち、一点鎖線で示される3つの係数は、3番目の偶数係数と奇数係数を求めるために必要な係数であるので記憶される。
以上のようにして、3ライン分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の合成フィルタリングが完了される。
次に、水平合成フィルタリングについて具体的に説明する。図13は、垂直方向の合成フィルタリングの結果を水平方向に並べて、水平合成フィルタリングを、図11のリフティング構成により実行する場合の例を示している。
図13の例においては、水平方向の係数に対して、図11で上述した4つのステップ(ステップB1乃至B4)の処理を経て、奇数係数と偶数係数が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。
また、水平方向の係数の上に示される数字は、列(コラム)番号を示しており、上から1段目のハッチが付された丸および四角は、それぞれ、高域入力および低域入力を表しており、2段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である奇数係数および偶数係数を表している。
以下、動作について上から順に説明する。図13の上段には、水平方向にコラム番号5乃至7の3コラムの係数が入力されて水平方向のリフティング構成による演算(以下、水平リフティング演算と称する)が行われる場合の例が示されている。なお、いまの場合、最左側の偶数係数は奇数係数と組みになっていないのでその説明を省略する。
この水平リフティング演算のステップB3において1番目の偶数係数を求め、ステップB4において1番目の奇数係数を求めるためには、コラム番号0乃至5の6コラムの係数が必要である。
その後、2番目の奇数係数と偶数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号6および7の2コラムの係数が必要であり、さらに、ステップB2のQ1が示される係数を算出するためには、丸数字で示されるコラム番号5の係数も必要である。
太線実線で示される3つの係数は、1番目の奇数係数および偶数係数を求めるための水平リフティング演算(以下、1番目の水平リフティング演算とも称する)の過程で生成される係数のうちの一部である。
すなわち、2番目の奇数係数と偶数係数を求めるためには、結局、丸数字で示されるコラム番号5乃至7の3コラムの係数の入力が必要であり、さらに、1番目の水平リフティング演算の過程において生成される太線実線で示される3つの係数を、ラッチしておく必要がある。実際には、高々3つの係数であるので、フリップフロップのような小容量の記憶領域を用いることで対応することができる。
したがって、1番目の水平リフティング演算でラッチされていた太線実線で示される3つの係数と、入力されたコラム番号5乃至7の3コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、2番目の奇数係数と偶数係数を含めた4つの係数(太線点線で示される)が得られる。このうち、一点鎖線で示される3つの係数は、3番目の奇数係数と偶数係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
コラム番号7の係数の入力の後、水平方向に2コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号7乃至9の3コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図13の下段に示されている。
2番目の場合と同様に、3番目の奇数係数と偶数係数を求めるためには、太線実線で示される3つの係数と、丸数字で示されるコラム番号8および9の2コラムの係数が必要であり、さらに、ステップB2のQ2が示される係数を算出するためには、丸数字で示されるコラム番号7の係数も必要である。
なお、下段の太線実線で示される3つの係数は、上段の一点鎖線で示されるように、2番目の水平リフティング演算でラッチされている。
したがって、2番目の水平リフティング演算でラッチされていた太線実線で示される3つの係数と、新たに入力されるコラム番号7乃至9の3コラムの係数が用いられて水平リフティング演算が行われることにより、3番目の奇数係数と偶数係数を含めた4つの係数(太線点線で示される)が得られる。このうち、一点鎖線で示される3つの係数は、4番目の奇数係数と偶数係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
以上のようにして、3コラム分の係数を順次入力しながら、途中演算用の3つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の合成フィルタリングが完了される。
以上のように、垂直合成フィルタリングおよび水平合成フィルタリングにおいても、9×7ウェーブレット変換フィルタのリフティング構成が用いられることで、図10を参照して上述したように、対応する分割レベルのバッファには、3ライン分の係数を記憶する各ラインの係数用のバッファが必要となり、さらに、図12のQ1およびQ2の係数を求めるため、垂直リフティング演算の際、すでに使用したラインの係数も、次の垂直リフティング演算に必要になる。
したがって、対応するレベルのバッファの内部では、1つのラインのバッファに記憶されている係数を、隣接するラインのバッファに、次々と転送していく構成となる。
以上のように動画像データは、送信装置101において圧縮符号化され、符号化データとして送受信され、受信装置102において伸長復号される。
図14は、その圧縮符号化と伸長復号の各処理を模式的に示すものである。図14に示される圧縮符号化処理181が送信装置101において実行され、伸長復号処理182が受信装置102において実行される。
図14に示されるように、圧縮符号化処理181においては、1ピクチャ分の非圧縮の画像データは、複数ライン(プレシンクト)毎にウェーブレット変換され、階層化された複数のサブバンドに分割される。図14の非圧縮データブロック1乃至非圧縮データブロックNは、それぞれ、プレシンクト単位の画像データである。非圧縮データブロック1乃至非圧縮データブロックNのそれぞれが入力される毎にウェーブレット変換され、3階層のサブバンドに分割される。各サブバンドは、それぞれエントロピ符号化される。
図14のL(i,n)は、各階層のサブバンドの圧縮符号化データを示す。ここで、iは、階層番号を示す。また、nは、符号化前の非圧縮データブロックの番号(プレシンクト番号)を示す。図14の例の場合、i=1,2,3、n=1,2,・・・,Nである。
階層番号1の圧縮符号化データL(1,n)は、最下位層のLL成分、HL成分、LH成分、およびHH成分の4つの成分が符号化されたものであり、階層番号2以上の階層の圧縮符号化データL(i,n)(i≧2)は、その階層のHL成分、LH成分、HH成分の3つの成分が符号化されたものである。
上述したように、分析フィルタリングは、リフティング演算を用いて行われる。したがって、垂直分析フィルタリングにより、圧縮符号化データL(i,n)は、非圧縮データブロックnだけでなく、その他のブロックのデータも使用して生成される。つまり、他のブロックにも依存する。図14の非圧縮データブロックnや圧縮符号化データL(i,n)の間の矢印は、この依存関係を示す。
例えば、階層番号1の圧縮符号化データL(1,5)は、階層番号2の圧縮符号化データL(2,3)、L(2,4)、およびL(2,5)、階層番号3の圧縮符号化データL(3,2)、L(3,3)、L(3,4)、およびL(3,5)、並びに、非圧縮データの非圧縮データブロック1、非圧縮データブロック2、非圧縮データブロック3、非圧縮データブロック4、および非圧縮データブロック5に依存性がある。また、例えば、階層番号2の圧縮符号化データL(2,3)は、階層番号3の圧縮符号化データL(3,2)およびL(3,3)、並びに、非圧縮データの非圧縮データブロック1乃至非圧縮データブロック3に依存性がある。
このように、圧縮符号化データの階層毎に、依存性のある非圧縮データブロック数(依存性の範囲)が異なる。入力動画像データは、例えば、HD-SDI(High Definition Serial Digital Interface)規格のインタフェース等を経由し、ピクチャデータの水平ラインを上から順に入力される。そのため、それぞれの圧縮符号化データは、依存性のある非圧縮データブロックが入力されるまで、生成出来ない(サブバンドが生成されない)。
図14に示されるように、各圧縮符号化データL(i,n)はnの小さい順に生成されるので、同順に受信装置102へ伝送される。
伸長復号処理182は、図14に示されるように、圧縮符号化処理181と対称な処理により実現される。依存性の関係も同様である。このため、非圧縮データブロック1は、階層番号3の圧縮符号化データL(3,1)およびL(3,2)、階層番号2の圧縮符号化データL(2,1)、L(2,2)、およびL(2,3)、階層番号1の圧縮符号化データL(1,1)、L(1,2)、L(1,3)、L(1,4)、およびL(1,5)と依存性があり、これら全ての圧縮符号化データが受信されるまで、復号されない(生成されない)。
このため、図14の例のように階層数が3の場合、伸長復号処理182において、非圧縮データブロックnを復号するためには、少なくとも、圧縮符号化処理181において非圧縮データブロック(n+4)までが符号化されている必要がある。したがって、伝送遅延など除く、アルゴリズムにより発生する遅延である原理遅延は、非圧縮データブロックnの入力時間をあわせると、非圧縮データブロック5ブロックの入力時間分となる。
[システム全体の処理の説明]
次に、圧縮符号化・伸長復号処理以外の処理について説明する。図15は、図1のネットワークシステムにより実行される処理の大まかな流れの例を示す図である。
例えば、ビデオカメラ等を経由しビデオ入力インタフェースより送信装置101に入力されたビデオデータ(ビデオIN)は、動画像圧縮符号化部122により、上述したように階層圧縮符号化される。ビデオデータの各ピクチャは、矢印191に示されるようにブロック毎にウェーブレット変換され、複数階層のサブバンド毎に符号化された符号化データに変換される。
各圧縮符号化データは、冗長符号化部123により、FEC(Forward Error Correction)符号化処理が施される。冗長符号化部123は、矢印192に示されるように、圧縮符号化データをFECブロック化し、矢印193に示されるように、そのFECブロック毎に、RTPパケット化(元データRTPパケット)して冗長データ(冗長データRTPパケット)を生成する。
RTP送信部124は、各RTPパケットを、矢印194に示されるように、ネットワーク110を介して受信装置102に送信する。受信装置102のRTP受信部131は、そのRTPパケットを受信する。
冗長復号部132は、受信したRTPパケットに対して、矢印195に示されるように、FEC復号処理を行い、さらにデパケタイズし、各ブロックの各階層の符号化データを抽出する。
動画像伸長復号部133は、矢印196に示されるように、復号処理に必要な各ブロックの各階層の符号化データを用意し、矢印197に示されるように伸長復号し、逆ウェーブレット変換する。このようにして各非圧縮データブロックがブロック番号1から順に生成され、出力される。
なお、圧縮符号化(ウェーブレット変換)の処理単位は、任意であり、例えばピクチャ単位で行うようにしてもよい。ただし、遅延時間低減のためには、上述したようにプレシンクト単位で行うのが望ましい。また、以上においては、圧縮符号化方法として、ウェーブレット変換を用いる方法を説明したが、符号化データを複数の解像度で復号可能な符号化方法(スケーラブルコーデック)であり、符号化(階層化)処理単位の符号化データを生成するために元画像の他の部分のデータが必要な(符号化(階層化)処理単位間で依存性のある)方法であれば、どのような方法を適用するようにしてもよい。例えば、ITU-T(International Telecommunication Union Telecommunication Standardization Sector)H.264/SVC(Scalable Video Codec)等であってもよい。
以上のようなデータ伝送処理において、遅延時間を増大させずに、データの冗長度を向上させて復元性能を向上させる(より正確なデータ伝送を実現させる)ために、送信装置101の冗長符号化制御部121は、FECブロックサイズや冗長度の制御を行う。以下に、その送信装置101について説明する。
[送信装置の構成例]
図16は、送信装置101の主な構成例を示すブロック図である。冗長符号化制御部121は、動画像圧縮符号化部122における圧縮符号化処理(ウェーブレット変換処理)の階層数や、各ブロックの各階層の符号化データについて、その符号化データが依存する範囲(階層やブロック)を示す依存情報を取得する。
ここでいう「依存」とは、上述したように、その符号化データを生成するのに必要なデータのことを示す。つまり、依存情報は、各ブロックの非圧縮データが階層化されて符号化された、ブロックおよび階層毎の各符号化データの、その符号化データを生成するのに、どのブロックのどの階層のデータが必要であるかを示す情報である。
もちろん、これらの内容を直接的または間接的に示す情報であればどのような情報であってもよい。例えば、データの依存関係は、分析フィルタリングに用いられるフィルタの種類によって決定される。したがって、冗長符号化制御部121が、例えば、このフィルタの種類を示す情報を依存情報として取得するようにしてもよい。また、各情報の形式も任意である。
冗長符号化制御部121は、それらの情報から冗長符号化処理を行うデータ単位であるFECブロックサイズや、各FECブロックにおいて生成する冗長データの量を示す冗長度を決定する。
冗長符号化制御部121は、FECブロックサイズ決定部201および冗長度決定部202を有する。FECブロックサイズ決定部201は、動画像圧縮符号化部122より供給される階層や依存情報に基づいて、冗長符号化の処理単位である冗長符号化ブロック(以下、FECブロックと称する)のサイズ(FECブロックサイズ)を決定する。FECブロックサイズ決定部201は、FECブロックサイズ算出式211を予め有しており、その算出式を用いてFECブロックサイズを決定する。
冗長度決定部202は、動画像圧縮符号化部122より供給される階層や依存情報に基づいて、各FECブロックの冗長度を決定する。冗長度決定部202は、冗長度算出式212を予め有しており、その算出式を用いて冗長度を決定する。
冗長符号化制御部121は、冗長度を、(元データパケット数,冗長パケット数)という形式で指定する。以下においては、この(元データパケット数,冗長パケット数)の組を1つの冗長符号単位、所謂FECブロックとする。例えば、冗長符号化制御部121により、(元データパケット数,冗長パケット数)=(10,5)と指定される場合、冗長符号化部123は、元データパケット数10個より冗長パケット数5個を生成する。つまり、RTP送信部124は、このFECブロックにおいて合計15個のパケットを送信する。受信装置102(冗長復号部132)は、このFECブロックの15個のパケットのうち、10個以上のパケットを受信すれば、FEC復号処理により元データを復号することができる。
冗長符号化制御部121は、決定したそれらの情報を、冗長符号化部123に供給する。
冗長符号化部123は、冗長符号化制御部121より供給されるFECブロックサイズおよび冗長度を用いて、動画像圧縮符号化部122より供給される符号化データの冗長符号化を行う。
冗長符号化部123は、FECブロック化部221、パケット化部222、およびFEC符号化部223を有する。
FECブロック化部221は、動画像圧縮符号化部122より供給される、ブロックおよび階層毎の符号化データを、FECブロックとして分類する。図15に示されるように、FECブロックは、1つの符号化データ、または、互いに同一の階層の複数の符号化データにより構成される。FECブロック化部221は、冗長符号化制御部121により指定されたFECブロックサイズとなるように各符号化データをまとめることにより、FECブロック化する。
パケット化部222は、FECブロック毎の符号化データを、パケット化し、複数のRTPパケットを生成する。FEC符号化部223は、パケタイズ化したRTPパケットを単位として、FEC符号化を行う。FEC符号化部223は、例えば、リードソロモン(Reed-Solomon)符号等の消失誤り訂正符号を用い冗長符号化を行う。
冗長符号化部123は、生成したRTPパケット(冗長データも含む)を、RTP送信部124に供給し、送信させる。
[FECブロックサイズ]
次に、FECブロックサイズについて説明する。上述したように、動画像圧縮符号化部122による圧縮符号化方式では、階層毎に、依存する非圧縮データブロックや圧縮符号化データの範囲(データ数)が異なり、圧縮符号化時と伸長復号時とで、圧縮符号化データの処理順が異なる場合がある。必要なデータが揃うまで伸長復号されないので、圧縮符号化データが送信装置101から受信装置102に伝送された後、復号されるまでに時間的余裕がある場合がある。
この時間的余裕の長さは、依存関係によって決まるが、階層毎に異なる。FECブロックサイズ決定部201は、この階層毎の時間的余裕の差に応じて、遅延目標指標を満たす範囲で出来るだけサイズが大きくなるように、FECブロックサイズを、階層毎に調整する。
このようにすることにより、冗長符号化部123は、遅延目標指標を満たしながら、バーストパケット損失回復性能をより向上させるように冗長符号化を行うことができる。つまり、送信装置101は、遅延時間を不要に増大させずに、より正確にデータを伝送することができる。
図15の例を用いて説明する。すなわち、圧縮符号化処理の階層数は3であり、階層間のデータ依存関係は、図15に示されるとおりである。
非圧縮データブロックの1ブロック分の入力時間をDとし、FEC処理時間と伝送遅延の合計時間をαとする。この例における圧縮符号化処理および伸長復号処理における原理遅延(以下、コーデック原理遅延と称する)は5Dとなる。
任意の非圧縮データブロックnの伸長復号には、図15に示される依存関係から、階層番号1の圧縮符号化データL(1,n)、L(1,n+1)、L(1,n+2)、L(1,n+3)、およびL(1,n+4)、階層番号2の圧縮符号化データL(2,n)、L(2,n+1)、およびL(2,n+2)、並びに、階層番号3の圧縮符号化データL(3,n)およびL(3,n+1)が必要になる。つまり、これらの圧縮符号化データが、受信されたか、若しくは、FEC復号処理による損失パケット回復されている必要がある。
遅延目標指標が、例えば、5D+αとすると、動画像伸長復号部133は、送信装置101に動画像データが入力されてから遅延目標指標5D+α時間待機したのち、伸長復号処理を開始する。そのため、非圧縮データブロックnを生成するための伸長復号処理の開始時刻には、圧縮符号化データL(i,k)(i=1,2,3)(k=1,2,・・・,n+4)が用意されている(受信または回復されている)必要がある。
つまり、非圧縮データブロックnを生成する伸長復号処理のために、階層番号1の圧縮符号化データは、伸長復号処理開始時刻の直前に受信したL(1,n+4)までのデータが必要だが、階層番号2の圧縮符号化データは、L(2,n+2)まで用意されていればよい。同様に、階層番号3の圧縮符号化データは、L(3,n+1)までしか必要でない。
換言するに、階層番号1の圧縮符号化データは、受信が開始されてから伸長復号処理が開始されるまでに時間Dの時間的余裕がある。同様に、階層番号2の圧縮符号化データは、受信が開始されてから伸長復号処理が開始されるまでに時間3Dの時間的余裕がある。さらに同様に、階層番号3の圧縮符号化データは、受信が開始されてから伸長復号処理が開始されるまでに時間4Dの時間的余裕がある。
FECによる損失パケット回復は、FECブロック内の全ての損失パケット以外のパケットが揃わないと実行できない。そのため、k個の圧縮符号化データ毎にFECブロックを生成する場合、損失したパケットを受信してから最大(k−1)D時間待たなければ、損失パケットを回復することが出来ない。
そこで、FECブロックサイズ決定部201は、例えば、下記のように階層毎の圧縮符号化データの受信開始から伸長復号処理開始までの時間余裕に応じて、FECブロックサイズを調整する。
階層番号1:圧縮符号化データ1個(圧縮符号化データ1個にFECブロックを生成する。
階層番号2:圧縮符号化データ3個(圧縮符号化データ3個にFECブロックを生成する。
階層番号3:圧縮符号化データ4個(圧縮符号化データ4個にFECブロックを生成する。
(各圧縮符号化データは、複数のRTPパケットに分割され、パケタイズ化される)
この例のようにFECブロックを構成した場合、パケット損失が生じた場合でも、時間余裕以内に届いたパケットと冗長パケットが届いた時点でFEC復号が可能である。したがって、冗長パケットが十分な量生成されていれば、損失パケットの回復が可能となる。
このようなFECブロックサイズの決定アルゴリズムを一般化すると、各階層のFECブロックサイズ(1個の非圧縮データブロックを圧縮符号化したときに生成される各階層の圧縮符号化データを単位とする)B(i)(階層番号i=1,2,・・・)は、以下の式(9)で表わすことができる。
Figure 2010141659
・・・(9)
ここで,d(i)は階層iの圧縮符号化データの階層(i+1)の圧縮符号化データに対する依存する圧縮符号化データ数(iが最下位層(例では階層3)を示す場合は依存する非圧縮符号化データ数)を示す。例えば、図15の例では、d(3)=2,d(2)=2,d(1)=3である。また、Tは、上述した原理遅延以外に許容できる遅延時間をブロック数で示す許容遅延延長ブロック数を示し、T=0の場合、上記の例とFECブロックサイズが一致する。
例えば、目標遅延指標を、コーデック原理遅延、伝送遅延、およびFEC遅延等の合計とする場合、FECブロックサイズ決定部201は、許容遅延延長ブロック数T=0とすればよい。これに対して、遅延が伸びてもバーストパケット損失回復性能を向上させたい場合、FECブロックサイズ決定部201は、許容遅延延長ブロック数Tを大きくすればよい。許容遅延延長ブロック数Tを大きくとることにより、FECブロックサイズを大きくすることができる。FECブロックサイズが大きい程、バーストパケット損失回復性能は向上する。ただし、遅延は増大する。
つまり、この式(9)は、FECブロックサイズ算出式211の一例を示す。
[冗長度]
冗長度決定部202は、FECブロックサイズ決定部201により決定されたFECブロックサイズ毎(階層毎)に、パケット損失回復性能指標を満たすように、冗長度を決定する。
例えば、想定されるパケット損失率をpとし、FECブロック内のパケット数をnとし、元データパケット数をkとし、冗長パケット数を(n−k)とする。このとき、目標FECブロック損失率をPtとすると、目標FECブロック損失率を満たすには下記の式(10)を満たせば良い。
Figure 2010141659
・・・(10)
冗長度決定部202は、この式(10)を満たすように、元データパケット数kおよび冗長パケット数(n−k)を決定する。つまり、この式(10)は、冗長度算出式212の一例を示す。
なお、冗長度の決定方式は任意であり、上述した以外の方法が用いられるようにしてもよい。例えば、階層毎のFECブロックサイズが異なるが、全ての階層において同一の指定された冗長度になるようにしてもよい。つまり、冗長度決定部202は省略することもできる。ただし、冗長度決定部202がFECブロックサイズに応じて冗長度を決定するようにする方が、冗長符号化制御部121は、バーストパケット損失に対する回復性能をより向上させることができる。
[処理の流れの説明]
次に、以上に説明した各処理の流れについて説明する。最初に、送信装置101による、動画像データを圧縮符号化して送信する送信処理の流れの例を、図17のフローチャートを参照して説明する。
送信処理が開始されると、ステップS101において、冗長符号化制御部121は、FECブロックサイズおよび冗長度を決定する。ステップS102において、動画像圧縮符号化部122は、入力された動画像データに対してプレシンクト毎に圧縮符号化を行う。ステップS103において、冗長符号化部123は、生成された符号化データに対して冗長符号化を行う。ステップS104において、RTP送信部124は、生成されたRTPパケットを、ネットワーク110を介して受信装置102に送信する。
ステップS105において、動画像圧縮符号化部122は、送信処理を終了するか否かを判定する。未送信の動画像データが存在し、送信処理を終了しないと判定された場合、処理は、ステップS102に戻り、それ以降の処理が繰り返される。ステップS105において、全ての動画像データが送信され、送信処理を終了すると判定された場合、送信処理が終了される。
次に、図17のステップS101において実行されるブロックサイズ・冗長度決定処理の流れの例を、図18のフローチャートを参照して説明する。
ブロックサイズ・冗長度決定処理が開始されると、冗長符号化制御部121は、ステップS121において、圧縮符号化の階層数および階層間の依存情報を取得する。
ステップS122において、FECブロックサイズ決定部201は、ステップS121の処理により取得された情報に基づいて、各階層のFECブロックサイズを求める。ステップS123において、冗長度決定部202は、ステップS121の処理により取得された情報に基づいて、各階層の冗長度を求める。
ステップS124において、冗長符号化制御部121は、ステップS122の処理により決定されたFECブロックサイズ、ステップS123の処理により決定された冗長度を、要求に応じて冗長符号化部123に提供する。なお、ステップS124の処理は、それ以降、継続的に行われる。
ステップS124においてFECブロックサイズおよび冗長度の提供の準備が整うと、ブロックサイズ・冗長度決定処理が終了され、処理は図17のステップS101に戻り、ステップS102以降の処理が実行される。
次に、図17のステップS103において実行される冗長符号化処理の流れの例について、図19のフローチャートを参照して説明する。ステップS141において、冗長符号化部123は、初期化処理を行う。ステップS142において、冗長符号化部123は、冗長符号化処理を終了するか否かを判定する。未処理の符号化データが存在し、冗長符号化処理を終了しないと判定された場合、処理はステップS143に進む。
ステップS143において、冗長符号化部123は、動画像圧縮符号化部122より、処理対象階層の圧縮符号化データを取得する。ステップS144において、冗長符号化部123は、冗長符号化制御部121より、処理対象階層のFECブロックサイズおよび冗長度を取得する。ステップS145において、冗長符号化部123は、圧縮符号化データを必要分取得したか否かを判定する。
冗長符号化に必要な分の圧縮符号化データを全て取得していないと判定された場合、処理はステップS142に戻り、それ以降の処理が繰り返される。
また、ステップS145において、処理対象FECブロックの圧縮符号化データを全て取得し、冗長符号化に必要な分の圧縮符号化データを全て取得したと判定された場合、処理はステップS146に進む。ステップS146において、冗長符号化部123は、FEC符号化を行い、RTPパケット化し、冗長データを生成する。ステップS146の処理が終了されると処理はステップS142に戻り、それ以降の処理が繰り返される。
ステップS142において、全ての圧縮符号化データが冗長符号化され、冗長符号化処理を終了すると判定された場合、冗長符号化処理は終了され、処理は、図17のステップS103に戻り、ステップS104以降の処理が実行される。
以上のように、冗長符号化制御部121が、圧縮符号化処理の階層数や依存関係により決定される受信側の時間的余裕の長さに応じて、FECブロックサイズを階層毎に独立して決定することにより、遅延時間を不要に増大させないように、FECブロックサイズをできるだけ大きくするようにすることができる。つまり、遅延時間を不要に増大させずに、バーストパケット損失に対する回復性能を向上させることができる。
また、冗長符号化制御部121は、このFECブロックサイズ(パケット数)に応じて、冗長度を決定することができる。従って、冗長符号化制御部121は、遅延時間を不要に増大させないように、冗長データをより多く生成させるようにすることができ、さらに、バーストパケット損失に対する回復性能を向上させることができる。
このように冗長符号化されたデータを、冗長復号する冗長復号部132により実行される冗長復号処理の流れの例を図20のフローチャートを参照して説明する。
冗長復号処理が開始されると、冗長復号部132は、ステップS161において、初期化処理を行い、ステップS162において、冗長復号処理を終了するか否かを判定する。受信された未処理の圧縮符号化データが存在し、冗長復号処理を終了しないと判定された場合、処理はステップS163に進む。
ステップS163において、冗長復号部132は、RTP受信部131において受信されたRTPパケットを取得する。ステップS164において、冗長復号部132は、ステップS163において取得したRTPパケットが属するFECブロックを復号可能であるか否かを判定する。処理対象FECブロックのRTPパケットを十分な数取得しておらず、復号不可能であると判定された場合、処理は、ステップS162に戻り、それ以降の処理が繰り返される。また、ステップS164において、処理対象FECブロックのRTPパケットを十分な数取得しており、復号可能であると判定された場合、処理は、ステップS165に進む。
ステップS165において、冗長復号部132は、FEC復号を行い、パケットの損失が発生した場合、符号化データを復元する。以上のように処理された符号化データは、動画像伸長復号部133に供給され、伸長復号される。ステップS165の処理が終了すると、処理は、ステップS162に戻り、それ以降の処理が繰り返される。
ステップS162において、冗長復号処理を終了すると判定された場合、冗長復号処理は終了される。
<2.第2の実施の形態>
[送信装置の構成例]
なお、以上においては、冗長符号化制御部121が、動画像圧縮符号化部122より取得した、圧縮符号化の階層数や階層間の依存情報等の情報に基づいて、冗長符号化のFECブロックサイズや冗長度を決定するように説明した。上述したように階層間の依存関係は、圧縮符号化に使用されるフィルタの種類によって決定される。圧縮符号化に使用されるフィルタの種類および圧縮符号化の階層数は、動画像圧縮符号化部122の仕様でもあり、予め定められている場合が多い。
例えば、動画像圧縮符号化部122が複数種類のフィルタを予め用意しており、いずれかを選択して使用するような場合、使用されるフィルタによって依存関係が変化する場合があるので、冗長符号化制御部121は、フィルタに応じて冗長符号化のFECブロックサイズや冗長度を決定するのが望ましい。また、圧縮符号化の階層数が可変の場合、冗長符号化制御部121は、その階層数に応じて冗長符号化のFECブロックサイズや冗長度を決定するのが望ましい。
しかしながら、動画像圧縮符号化部122が1種類の方法でしか圧縮符号化を行うことができない場合、圧縮符号化に使用されるフィルタの種類および圧縮符号化の階層数は、予め定められている。したがって、冗長符号化制御部121が、その予め既知の、圧縮符号化の階層数や階層間に適した、FECブロックサイズおよび冗長度を予め算出し、その算出結果を保持し、提供するようにしてもよい。
図21は、その場合の送信装置101の主な構成例を示すブロック図である。図21に示されるように、この場合の冗長符号化制御部121は、予め算出されたFECブロックサイズ241および冗長度242を保持する記憶部231を有する。記憶部231は、任意の記憶媒体で構成される記憶領域である。
FECブロックサイズ241は、動画像圧縮符号化部122において実行される圧縮符号化処理の階層数、および、階層間の依存関係に応じて、遅延時間を不要に増大させないように決定された各階層のFECブロックサイズである。なお、このFECブロックサイズの決定方法は、図16のFECブロックサイズ決定部201による決定方法と同様である。
冗長度242は、動画像圧縮符号化部122において実行される圧縮符号化処理の階層数、および、階層間の依存関係に応じて、遅延時間を不要に増大させないように決定された各FECブロックの冗長度である。なお、この冗長度の決定方法は、図16の冗長度決定部202による決定方法と同様である。
したがって、この場合、冗長符号化部123に提供されるFECブロックサイズおよび冗長度は予め用意されているので、図18に示されるブロックサイズ・冗長度決定処理のうち、ステップS121乃至ステップS123の処理を省略することができ、冗長符号化の制御をより容易に行うことができる。
<3.第3の実施の形態>
[送信装置の構成例]
また、冗長度の算出において、圧縮符号化データの階層毎の優先度を考慮するようにしてもよい。
動画像の圧縮符号化方式に階層符号化を用い、例えば、上述したウェーブレット変換処理のように、画像の周波数成分毎に階層が分かれている場合、低周波成分を含む階層ほど損失した場合の復号後の画像への影響度が大きい。つまり、データは階層毎にその重要度が異なる。したがって、その重要度に応じて、階層毎に優先度を設定するようにしてもよい。例えば、階層番号が小さいほど、優先度が高いデータとし、その優先度の高いデータほど、データ伝送の信頼性をより向上させるようにしてもよい。
データ伝送の信頼性を向上させるために、冗長符号化制御部121は、冗長度を優先度に応じて調整する。つまり、冗長符号化制御部121は、目標FECブロック損失率Ptを、優先度に応じて階層毎に調整する。
図22は、この場合の送信装置101の主な構成例を示すブロック図である。図22に示されるように、冗長符号化制御部121は、FECブロックサイズ決定部201および冗長度決定部202の他に、目標FECブロック損失率設定部251を有する。
目標FECブロック損失率設定部251は、データ伝送の信頼性を向上させるために、目標FECブロック損失率Ptを、優先度に応じて階層毎に、例えば以下のように調整する。
階層番号=1:Pt=10-8
階層番号=2:Pt=10-5
階層番号=3:Pt=10-3
目標FECブロック損失率設定部251により、目標FECブロック損失率Ptが設定されると、冗長度決定部202は、その目標FECブロック損失率Ptを用いて冗長度を算出する。
[処理の流れの説明]
この場合の、ブロックサイズ・冗長度決定処理の流れの例を図23のフローチャートを参照して説明する。なお、このフローチャートは、図18のフローチャートに対応する。
ブロックサイズ・冗長度決定処理が開始されると、ステップS181およびステップS182の各処理が、図18のステップS121およびステップS123の各処理の場合と同様に実行される。
ステップS183において、目標FECブロック損失率設定部251は、階層の優先度に応じて、目標FECブロック損失率Ptを設定する。ステップS184において、冗長度決定部202は、ステップS183において設定された目標FECブロック損失率Ptを用いて冗長度を求める。
ステップS185の処理は、図18のステップS124の処理の場合と同様に実行される。
FECブロックサイズおよび冗長度の提供の準備が整うと、ブロックサイズ・冗長度決定処理が終了され、処理は、図17のステップS101に戻り、ステップS102以降の処理が繰り返される。
以上のように、冗長符号化制御部121は、階層毎のデータの優先度に応じて冗長度を決定することにより、不要な遅延時間を増大させずに、送信装置101によるデータ伝送の信頼性をより向上させることができる。
<4.第4の実施の形態>
[ネットワークシステムの構成例]
なお、冗長符号化制御部121が、FECブロックサイズや冗長度の制御を、初期状態だけでなく、適宜行うようにしてもよい。例えば、冗長符号化制御部121が、データを伝送させるネットワーク110の状況等に基づいて、FECブロックサイズや冗長度の制御を適宜行うようにしてもよい。
図24は、その場合のネットワークシステム100の主な構成例を示すブロック図である。図24に示される例の場合、送信装置101は、図1の構成の他に、さらに、RTCP通信部301を有する。また、受信装置102は、図1の構成の他に、さらに、RTCP通信部302を有する。
RTCP通信部301およびRTCP通信部302は、ネットワーク110の状況を示す情報(ネットワーク状況情報)を、例えば、IETF RFC 3550記載のRTCP(RTP Control Protocol) Sender Report(SR)パケットおよびRTCP Receiver Report(RR)パケットを送受信することにより授受する。ネットワーク状況情報としては、例えば、往復伝送遅延を示す所謂RTT(Round Trip Time)や、パケット損失率が考えられる。
往復伝送遅延(RTT)は、RTCP通信部301およびRTCP通信部302間でパケットを送受信(往復)させることにより求めることができる。パケット損失率は、受信装置102のRTP受信部131が求め、RTCP通信部302を介してRTCP通信部301に提供される。もちろん、これらの情報を間接的に示す情報であっても良い、情報の形式も任意である。また、これら以外にも、任意のパラメータが適用可能である。
冗長符号化制御部121は、RTCP通信部301において取得されたネットワーク状況情報を、FECブロックサイズや冗長度の決定に反映させる。このようにすることにより、例えばインターネットのように、ネットワーク110が、帯域の変動し易い通信経路であっても、冗長符号化制御部121は、その通信状況に応じて適切にFECブロックサイズや冗長度を決定することができ、不要な遅延時間を増大させずに、送信装置101によるデータ伝送の信頼性をより向上させることができる。
[送信装置の構成例]
図25は、図24の例の場合の送信装置101の主な構成例を示すブロック図である。図25に示されるように、この場合の送信装置101は、図16に示される構成の他に、RTCP通信部301を有する。また、この場合の冗長符号化制御部121は、図16に示される構成の他に、往復伝播遅延算出部311およびパケット損失率算出部312を有する。
往復伝播遅延算出部311は、RTCP通信部301において取得されるネットワーク接続情報に基づいて、ネットワーク110を介して送信装置101と受信装置102の間でパケットを往復させたときの遅延時間を示す往復伝播遅延(RTT)の、所定時間の平均値を算出する。
FECブロックサイズ決定部201は、動画像圧縮符号化部122より取得する階層数や依存情報の他に、この往復伝播遅延(RTT)(往復伝播遅延の所定時間の平均値)を用いて、例えば、以下の式(11)により、FECブロックサイズを決定する。
Figure 2010141659
・・・(11)
式(11)において、βは正数係数であり、RTTは往復伝播遅延(所定時間の平均値)を示す。式(11)に示されるように、冗長符号化制御部121は、伝播遅延が増加する程、FECブロックサイズが小さくなるようにFECブロックサイズの決定を行う。このようにすることにより、伝播遅延の増大分を、FECブロックサイズの縮小によりカバーさせることができ、冗長符号化制御部121は、原理遅延の他にネットワーク110の伝播遅延も含む全体遅延の変動を抑制することができる。
なお、往復伝播遅延の平均値を求める時間の長さは任意である。例えば、FECブロックサイズの更新間隔としてもよい。また、例えば、往復伝播遅延の平均値を用いる代わりに、最新の往復伝播遅延の値をそのままFECブロックサイズの決定に用いるようにしてもよい。
パケット損失率算出部312は、RTCP通信部301において取得されるネットワーク接続情報に基づいて、受信装置102側で発生するパケット損失率の所定時間の平均値を算出する。冗長度決定部202は、動画像圧縮符号化部122より取得する階層数や依存情報の他に、このパケット損失率の所定時間の平均値を用いて、冗長度を決定する。このとき、冗長度決定部202は、上述した場合と同様に、式(10)の冗長度算出式212を用いて冗長度を算出する。ただし、以上においては式(10)のpをパケット損失率の想定値としたが、ここでは、式(10)のpを、パケット損失率算出部312により算出されたパケット損失率の所定時間の平均値とする。
つまり、冗長符号化制御部121は、受信側のパケット損失率の変化(平均値)を、冗長度に反映させる。このようにすることにより、冗長符号化制御部121は、伝送中にネットワーク状況に応じて必要最小限の冗長度でパケットを伝送させるようにすることができる。
なお、パケット損失率の平均値を求める時間の長さは任意である。例えば、冗長度の更新間隔としてもよい。また、例えば、パケット損失率の平均値を用いる代わりに、最新のパケット損失率の値をそのまま冗長度の決定に用いるようにしてもよい。
[処理の流れの説明]
次に、この場合の各種処理の流れの例について説明する。この場合の、送信装置101による送信処理の流れの例を、図26のフローチャートを参照して説明する。
図26のフローチャートは、図17のフローチャートに対応するものである。送信処理が開始されると、RTCP通信部301は、ステップS201において、往復伝播遅延やパケット損失率等の情報を含むネットワーク状況情報を取得する。ネットワーク状況情報が取得されると、ステップS202乃至ステップS206の各処理が、図17のフローチャートのステップS101乃至ステップS105の各処理と同様に実行される。ただし、ステップS206において終了しないと判定された場合、処理は、ステップS201に戻りそれ以降の処理を繰り返す。
つまり、図26の場合、FECブロックサイズおよび冗長度の決定(更新)を繰り返し実行する。このようにすることにより、冗長符号化制御部121は、FECブロックサイズおよび冗長度を動的に制御することができる。
次に、図27のフローチャートを参照して、図26のステップS202において実行されるブロックサイズ・冗長度決定処理の流れの例を説明する。このフローチャートは、図18のフローチャートに対応する。
ステップS221の処理は、図18のステップS121と同様に実行される。ステップS222において、往復伝播遅延算出部311は、往復伝播遅延の所定時間の平均値を算出する。ステップS223において、FECブロックサイズ決定部201は、ステップS221およびステップS222において得られた情報を用いて、各階層のFECブロックサイズを求める。
ステップS224において、パケット損失率算出部312は、パケット損失率の平均値を算出する。ステップS225において、冗長度決定部202は、ステップS221およびステップS224において得られた情報を用いて、各階層の冗長度を求める。ステップS226の処理は、図18のステップS124と同様に実行される。
このように制御することにより、冗長符号化制御部121は、FECブロックサイズや冗長度を、往復伝播遅延やパケット損失率等のネットワーク接続状況に応じて、動的に制御することができる。
なお、FECブロックサイズのみ動的に制御されるようにし、冗長度は予め定められた固定値とするようにしてもよい。また、FECブロックサイズのみ動的に制御されるようにし、冗長度は、例えば図16や図22を参照して説明したように静的に制御される(送信処理の初期状態においてのみ制御される)ようにしてもよい。
<5.第5の実施の形態>
[送信装置の構成例]
なお、以上においては、冗長符号化制御部121が、往復伝播遅延の所定時間の平均値を用いてFECブロックサイズを決定するように説明したが、その他にも、例えば往復伝播遅延の所定時間内の最大値を用いてFECブロックサイズを決定するようにしてもよい。図28は、その場合の送信装置101の構成例を示すブロック図である。
図28において、送信装置101の構成は、図25に示される構成例と基本的に同様であるが、冗長符号化制御部121は、図25の往復伝播遅延算出部311の代わりに、最大往復伝播遅延算出部321を有する。
最大往復伝播遅延算出部321は、RTCP通信部301において取得されるネットワーク接続情報に基づいて、ネットワーク110を介して送信装置101と受信装置102の間でパケットを往復させたときの遅延時間を示す往復伝播遅延(RTT)の、所定時間内の最大値(最大往復伝播遅延)を算出する。
FECブロックサイズ決定部201は、動画像圧縮符号化部122より取得する階層数や依存情報の他に、この最大往復伝播遅延を用いて、例えば、以下の式(12)により、FECブロックサイズを決定する。
Figure 2010141659
・・・(12)
式(12)において、βおよびγはそれぞれ正数係数であり、RTTは往復伝播遅延の所定時間の平均値を示し、Nは往復伝播遅延のジッタを示す。つまり、式(12)において、所定時間の平均値にジッタを加算した(βRTT+γN)が最大往復伝播遅延である。式(12)に示されるように、冗長符号化制御部121は、最大伝播遅延が増加する程、FECブロックサイズが小さくなるようにFECブロックサイズの決定を行う。このようにすることにより、冗長符号化制御部121は、伝播遅延の最大値を基準としてFECブロックサイズを決定することができ、瞬間的に伝播遅延が増大する場合も不要な遅延時間が増大しないようにすることができる。つまり、冗長符号化制御部121は、原理遅延の他にネットワーク110の伝播遅延も含む全体遅延の変動を抑制することができる。
なお、最大往復伝播遅延を求める時間の長さは任意である。例えば、FECブロックサイズの更新間隔としてもよい。
[処理の流れの説明]
次に、この場合の各種処理の流れの例について説明する。この場合の、送信装置101による送信処理の流れは、図26を参照して説明した場合と同様であるので、その説明は省略する。
図29のフローチャートを参照して、図26のステップS202において実行されるブロックサイズ・冗長度決定処理の流れの例を説明する。このフローチャートは、図27のフローチャートに対応し、基本的に同様に実行される。
つまり、ステップS241の処理は、図27のステップS221と同様に実行される。ステップS242において、最大往復伝播遅延算出部321は、往復伝播遅延の所定時間内の最大値(最大往復伝播遅延)を算出する。ステップS243において、FECブロックサイズ決定部201は、ステップS241およびステップS242において得られた情報を用いて、各階層のFECブロックサイズを求める。
ステップS244乃至ステップS246の各処理は、図27のステップS224乃至ステップS226と同様に実行される。
このように制御することにより、冗長符号化制御部121は、FECブロックサイズや冗長度を、往復伝播遅延やパケット損失率等のネットワーク接続状況に応じて、動的に制御することができる。
この場合も、FECブロックサイズのみ動的に制御されるようにし、冗長度は予め定められた固定値とするようにしてもよい。また、FECブロックサイズのみ動的に制御されるようにし、冗長度は、例えば図16や図22を参照して説明したように静的に制御される(送信処理の初期状態においてのみ制御される)ようにしてもよい。
<6.第6の実施の形態>
[送信装置の構成例]
以上においては、FECブロックサイズや冗長度が、動的または静的に制御されるように説明したが、冗長符号化制御部121が、例えばネットワーク接続情報に基づいて、FECブロックサイズや冗長度を動的に制御するか、静的に制御するかを選択するようにしてもよい。
図30は、その場合の送信装置101の主な構成例を示すブロック図である。図30の例において、RTCP通信部301は、RTP送信部124に接続されるネットワーク110がどのような通信経路であるかを示すネットワーク情報を含むネットワーク接続情報を取得する。ネットワーク情報は、ネットワーク110が、例えば、イントラネットワーク、LAN(Local Area Network)、インターネット等、どのような通信経路であるかを示す情報である。このネットワーク情報は、ネットワーク110を構成する通信経路の種類を直接的または間接的に示す情報であれば、どのような情報であっても良い。また、ネットワーク情報の形式は任意である。
冗長符号化制御部121は、制御方法選択部401、静的制御部402、および動的制御部403を備える。制御方法選択部401は、RTCP通信部301により取得されるネットワーク情報に基づいて、FECブロックサイズや冗長度の制御のために、静的制御部402または動的制御部403のいずれか一方を選択し駆動させる。
静的制御部402は、記憶部231を有する。すなわち、静的制御部402は、図21を参照して説明した場合の冗長符号化制御部121と同様の構成を有し、同様の処理を行う。つまり、静的制御部402は、送信処理の初期状態において、FECブロックサイズや冗長度の決定を静的に行う。
動的制御部403は、往復伝播遅延算出部311、FECブロックサイズ決定部201、パケット損失率算出部312、および冗長度決定部202を有する。すなわち、動的制御部403は、図25を参照して説明した場合の冗長符号化制御部121と同様の構成を有し、同様の処理を行う。つまり、動的制御部403は、FECブロックサイズや冗長度の決定を、ネットワーク接続情報に基づいて動的に行う。
例えば、制御方法選択部401は、送信装置101が接続されるネットワーク110がイントラネットやLANのように比較的安定した通信経路である場合、静的制御部402を選択し、静的制御部402を駆動させ、FECブロックサイズや冗長度を決定させる。
また、例えば、制御方法選択部401は、送信装置101が接続されるネットワーク110がインターネットのように比較的不安定な通信経路である場合、動的制御部403を選択し、動的制御部403を駆動させ、FECブロックサイズや冗長度を決定させる。
[処理の流れの説明]
この場合の送信装置101による送信処理の流れの例を図31のフローチャートを参照して説明する。送信処理が開始されると、RTCP通信部301は、ステップS261において、ネットワーク情報を取得する。ステップS262において、冗長符号化制御部121の制御方法選択部401は、ネットワーク情報に基づいて、ネットワーク110の特性の変動性に応じて、制御方法を選択する。つまり、制御方法選択部401は、ネットワーク110の特性の変動性が比較的小さい場合、静的制御部402を制御し駆動させる。また、ネットワーク110の特性の変動性が比較的大きい場合、制御方法選択部401は、動的制御部403を制御し駆動させる。
ステップS263において、制御方法選択部401は、静的方法を選択したか否かを判定する。静的方法が選択されたと判定された場合、処理はステップS264に進む。ステップS264において、静的制御部402は、冗長符号化を静的に制御し、データ送信を行わせる。ステップS264の処理が終了すると、送信処理が終了される。
また、ステップS263において、動的方法が選択されたと判定された場合、処理はステップS265に進む。ステップS265において、動的制御部403は、冗長符号化を動的に制御し、データ送信を行わせる。ステップS265の処理が終了すると、送信処理が終了される。
このようにすることにより、冗長符号化制御部121は、送信装置101が接続されるネットワーク110の特性に応じて、適切な制御方法を選択し、その選択した制御方法により冗長符号化を制御する(FECブロックサイズや冗長度を決定する)ことができる。つまり、冗長符号化制御部121は、不要な遅延の増大を抑制しながら、バーストパケット損失耐性をより向上させるように、データを伝送させることができる。
なお、制御方法選択部401は、この切替制御を静的に行うようにしてもよいが、動的に行うようにしてもよい。また、静的制御部402は、例えば、図16に示される冗長符号化制御部121と同様の構成を有し、同様の処理を行うようにしてもよい。また、静的制御部402が、例えば、図22に示される冗長符号化制御部121と同様の構成を有し、同様の処理を行うようにしてもよい。さらに、FECブロックサイズや冗長度を静的に制御するものであれば、どのような構成であってもよい。
また、動的制御部403は、例えば、図25に示される冗長符号化制御部121と同様の構成を有し、同様の処理を行うようにしてもよい。また、静的制御部402が、例えば、図28に示される冗長符号化制御部121と同様の構成を有し、同様の処理を行うようにしてもよい。さらに、FECブロックサイズや冗長度を静的に制御するものであれば、どのような構成であってもよい。
以上のように、本発明によれば、動画像圧縮符号化方式に階層符号化を用いた場合のマルチメディアストリーミング、リアルタイムコミュニケーションにおいて、遅延の増加を最小限に抑制しながら、出来る限りバーストパケット損失耐性を高めるようにした冗長符号化伝送が可能となる。
特に、動画像符号化方式の処理遅延が小さい場合、冗長符号化による遅延を最小限と出来るため、動画像符号化方式の利点で低遅延性を最大限生かした高品質伝送が可能となる。
また、遅延要求とデータ損失耐性要求の強さに応じて、パラメータ調整を行うことにより、低遅延(処理速度)を優先させたり、バーストパケット損失耐性を優先させたり、調整することができる。
以上のように、本発明によれば、階層符号化による圧縮符号化された動画像データをパケット損失回復用に冗長符号化を行うことができる。また、本発明によれば、低遅延なリアルタイム伝送を行う場合に、冗長符号化のために遅延を著しく増加させることなく、バースト損失耐性を高めた伝送を行うことができる。さらに階層毎に独立した冗長符号化ブロックを生成し、冗長符号化ブロックサイズを階層毎の依存する入力動画像データ範囲の大きさに応じて調整することにより、遅延の著しい増加を抑制することができる。また、本発明によれば、冗長符号化ブロックサイズに応じて階層毎に冗長度を調整し、全ての階層で同一の回復性能が得られるようにすることもできる。さらに本発明によれば、階層毎のデータ優先度に応じて目標とする回復性能を調整し、その値に応じて冗長度を更に調整することもできる。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図32に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
図32において、パーソナルコンピュータ700のCPU(Central Processing Unit)701は、ROM(Read Only Memory)702に記憶されているプログラム、または記憶部713からRAM(Random Access Memory)703にロードされたプログラムに従って各種の処理を実行する。RAM703にはまた、CPU701が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU701、ROM702、およびRAM703は、バス704を介して相互に接続されている。このバス704にはまた、入出力インタフェース710も接続されている。
入出力インタフェース710には、キーボードやマウスなどよりなる入力部711、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、有機ELディスプレイ(Organic ElectroLuminescence Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部712、ハードディスクやSSD(Solid State Drive)などより構成される記憶部713、モデム、LAN(Local Area Network)インタフェース、USB(Universal Serial Bus)インタフェース、IEEE(Institute of Electrical and Electronic Engineers)1394インタフェース、ブルートゥースインタフェース、または無線LANインタフェースなどより構成される通信部714が接続されている。通信部714は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース710にはまた、必要に応じてドライブ715が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア721が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部713にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図32に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア721により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM702や、記憶部713に含まれるハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表わすものである。
なお、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
本発明を適用したネットワークシステムの主な構成例を示すブロック図である。 動画像圧縮符号化部の構成例を示すブロック図である。 分析フィルタリングの概要を説明する図である。 分析フィルタリングの概要を説明する図3に続く図である。 ラインブロックを説明する図である。 9×7フィルタの例を示す図である。 リフティング演算例を説明する図である。 リフティング演算例を説明する図である。 リフティング演算例を説明する図である。 動画像伸長復号部の構成例を示すブロック図である。 9×7フィルタの例を示す図である。 リフティング演算例を説明する図である。 リフティング演算例を説明する図である。 圧縮符号化処理・伸長復号処理の様子を説明する図である。 ネットワークシステムの各部において実行される処理の概要を説明する図である。 送信装置の主な構成例を示すブロック図である。 送信処理の流れの例を説明するフローチャートである。 ブロックサイズ・冗長度決定処理の流れの例を説明するフローチャートである。 冗長符号化処理の流れの例を説明するフローチャートである。 冗長復号処理の流れの例を説明するフローチャートである。 送信装置の主な構成例を示すブロック図である。 送信装置の主な構成例を示すブロック図である。 ブロックサイズ・冗長度決定処理の流れの例を説明するフローチャートである。 本発明を適用したネットワークシステムの主な構成例を示すブロック図である。 送信装置の主な構成例を示すブロック図である。 送信処理の流れの例を説明するフローチャートである。 ブロックサイズ・冗長度決定処理の流れの例を説明するフローチャートである。 送信装置の主な構成例を示すブロック図である。 ブロックサイズ・冗長度決定処理の流れの例を説明するフローチャートである。 送信装置の主な構成例を示すブロック図である。 送信処理の流れの例を説明するフローチャートである。 本発明を適用したパーソナルコンピュータの主な構成例を示すブロック図である。
符号の説明
100 ネットワークシステム, 101 送信装置, 121 冗長符号化制御部, 122 動画像圧縮符号化部, 123 冗長符号化部, 124 RTP送信部, 201 FECブロックサイズ決定部, 202 冗長度決定部, 231 記憶部, 251 目標FECブロック損失率設定部, 301 RTCP通信部, 311 往復伝播遅延算出部, 312 パケット損失率算出部, 321 最大往復伝播遅延算出部, 401 制御方法選択部, 402 静的制御部, 403 動的制御部

Claims (15)

  1. 画像データを解像度に関して重要度の高いデータから順に階層化された階層化データを生成し、階層毎に符号化する符号化手段と、
    前記符号化手段により生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて前記階層毎に決められたサイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記階層化データの冗長データを生成する冗長符号化を行う冗長符号化手段と
    を備える情報処理装置。
  2. 前記符号化手段により生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて、前記ブロックのサイズを前記階層毎に決定するブロックサイズ決定手段をさらに備え、
    前記冗長符号化手段は、前記ブロックサイズ決定手段により決定された前記サイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記階層化データの冗長データを生成する冗長符号化を行う
    請求項1に記載の情報処理装置。
  3. 前記ブロックサイズ決定手段は、前記階層間の依存関係において、依存する範囲が広い階層ほど、前記ブロックのサイズを大きく設定する
    請求項2に記載の情報処理装置。
  4. 前記ブロックサイズ決定手段は、Tを許容遅延延長ブロック数とし、d(k)を階層kの依存する範囲とし、以下の式を用いて階層iの前記ブロックのサイズB(i)を決定する
    Figure 2010141659
    請求項2に記載の情報処理装置。
  5. 前記符号化手段により生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて、前記冗長符号化の冗長度を前記階層毎に決定する冗長度決定手段をさらに備え、
    前記冗長符号化手段は、前記ブロックサイズ決定手段により決定された前記サイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記冗長度決定手段により決定された冗長度で前記階層化データの冗長データを生成する冗長符号化を行う
    請求項2に記載の情報処理装置。
  6. 前記冗長度決定手段は、想定されるパケット損失率をpとし、前記ブロック内のパケット数をnとし、前記係数のパケット数をkとし、前記ブロック損失率の目標値をPtとし、以下の式を用いて、前記ブロック損失率の目標値Ptを満たすように、前記階層化データのパケット数kおよび前記冗長データのパケット数n−kを決定する
    Figure 2010141659
    請求項5に記載の情報処理装置。
  7. 前記冗長度決定手段は、前記ブロック損失率の目標値Ptを階層毎に独立して設定する
    請求項6に記載の情報処理装置。
  8. 前記冗長符号化手段により冗長符号化された前記階層化データのパケット、および前記冗長データのパケットを、ネットワークを介して他の情報処理装置に送信する送信手段と、
    前記他の情報処理装置における前記パケットの損失率の所定時間の平均値を算出するパケット損失率算出手段と
    をさらに備え、
    前記冗長度決定手段は、前記パケット損失率算出手段により算出された前記パケットの損失率の所定時間の前記平均値をpとし、前記階層化データのパケット数kおよび前記冗長データのパケット数n−kを決定する
    請求項6に記載の情報処理装置。
  9. 前記冗長符号化手段により冗長符号化された前記階層化データのパケット、および前記冗長データのパケットを、ネットワークを介して他の情報処理装置に送信する送信手段と、
    前記ネットワークの伝播遅延の所定時間の平均値を算出する伝播遅延算出手段と
    をさらに備え、
    前記ブロックサイズ決定手段は、前記階層間の依存関係の他に、さらに、前記伝播遅延算出手段により算出された前記伝播遅延の所定時間の前記平均値に基づいて、前記ブロックのサイズを前記階層毎に決定する
    請求項2に記載の情報処理装置。
  10. 前記ブロックサイズ決定手段は、Tを許容遅延延長ブロック数とし、d(k)を階層kの依存する範囲とし、前記伝播遅延の所定時間の前記平均値をRTTとし、βを正数係数とし、以下の式を用いて階層iの前記ブロックのサイズB(i)を決定する
    Figure 2010141659
    請求項9に記載の情報処理装置。
  11. 前記冗長符号化手段により冗長符号化された前記階層化データのパケット、および前記冗長データのパケットを、ネットワークを介して他の情報処理装置に送信する送信手段と、
    前記ネットワークの伝播遅延の所定時間の最大値を算出する最大伝播遅延算出手段と
    をさらに備え、
    前記ブロックサイズ決定手段は、前記階層間の依存関係の他に、さらに、前記最大伝播遅延算出手段により算出された前記伝播遅延の所定時間の前記最大値に基づいて、前記ブロックのサイズを前記階層毎に決定する
    請求項2に記載の情報処理装置。
  12. 前記ブロックサイズ決定手段は、Tを許容遅延延長ブロック数とし、d(k)を階層kの依存する範囲とし、前記伝播遅延の所定時間の前記平均値をRTTとし、前記伝播遅延のジッタをNとし、βおよびγを正数係数とし、以下の式を用いて階層iの前記ブロックのサイズB(i)を決定する
    Figure 2010141659
    請求項11に記載の情報処理装置。
  13. 前記符号化手段は、SNR(Signal to Noise Ratio)、空間解像度、または時間方向の解像度に関して重要度の高いデータから順に階層化された前記階層化データを生成し、階層毎に符号化する
    請求項1に記載の情報処理装置。
  14. 前記符号化手段は、前記画像データまたは前記階層化データを複数のサブバンドに分割する処理を再帰的に繰り返すことにより、階層化された複数の前記サブバンド毎の前記階層化データを生成し、階層毎に符号化する
    請求項1に記載の情報処理装置。
  15. 画像データを処理する情報処理装置の情報処理方法であって、
    符号化手段は、前記画像データを解像度に関して重要度の高いデータから順に階層化された階層化データを生成し、階層毎に符号化し、
    冗長符号化手段は、生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて前記階層毎に決められたサイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記階層化データの冗長データを生成する冗長符号化を行う
    ステップを含む情報処理方法。
JP2008316719A 2008-12-12 2008-12-12 情報処理装置および方法 Expired - Fee Related JP4883076B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008316719A JP4883076B2 (ja) 2008-12-12 2008-12-12 情報処理装置および方法
US12/613,056 US8311122B2 (en) 2008-12-12 2009-11-05 Information processing apparatus and method
CN2009102583846A CN101754026B (zh) 2008-12-12 2009-12-14 信息处理设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008316719A JP4883076B2 (ja) 2008-12-12 2008-12-12 情報処理装置および方法

Publications (2)

Publication Number Publication Date
JP2010141659A true JP2010141659A (ja) 2010-06-24
JP4883076B2 JP4883076B2 (ja) 2012-02-22

Family

ID=42240492

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008316719A Expired - Fee Related JP4883076B2 (ja) 2008-12-12 2008-12-12 情報処理装置および方法

Country Status (3)

Country Link
US (1) US8311122B2 (ja)
JP (1) JP4883076B2 (ja)
CN (1) CN101754026B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013225761A (ja) * 2012-04-20 2013-10-31 Hitachi Ltd 符号化装置、復号装置、通信システム及び通信制御方法
WO2014155471A1 (ja) * 2013-03-25 2014-10-02 日立マクセル株式会社 符号化方法および符号化装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008307184A (ja) * 2007-06-13 2008-12-25 Fujifilm Corp 画像処理装置および画像処理プログラム
JP5724879B2 (ja) * 2009-11-24 2015-05-27 日本電気株式会社 品質制御装置、動画送信システム、品質制御方法および記録媒体
JP4929393B1 (ja) * 2010-11-19 2012-05-09 株式会社東芝 受信装置、受信方法および受信プログラム
CN104009819B (zh) * 2013-02-22 2018-08-07 南京中兴软件有限责任公司 基于分层编码的抗丢包实时通信方法、系统及相关设备
WO2014157857A1 (en) 2013-03-25 2014-10-02 Samsung Electronics Co., Ltd. Data communication method and apparatus using forward error correction
US9432144B2 (en) * 2014-09-12 2016-08-30 Ciena Corporation Precision time transfer systems and methods in optical networks
US10470000B2 (en) * 2016-02-12 2019-11-05 Samsung Electronics Co., Ltd. Methods and apparatus for enhanced MBMS content provisioning and content ingestion
WO2018042885A1 (ja) * 2016-08-30 2018-03-08 日本電気株式会社 送信端末、送信方法および送信プログラム
CN108880754B (zh) * 2018-06-25 2020-04-10 西安电子科技大学 基于分级冗余机制的低时延信令、数据无线传输方法
US10594395B2 (en) 2018-07-23 2020-03-17 Ciena Corporation Systems and methods for compensating coherent optics delay asymmetry in a packet optical network
US10931516B2 (en) * 2018-09-26 2021-02-23 Hewlett Packard Enterprise Development Lp Network link failure detection
CN111464262B (zh) * 2020-03-18 2022-03-25 腾讯科技(深圳)有限公司 数据处理方法、装置、介质及电子设备
US11552722B2 (en) 2020-12-10 2023-01-10 Ciena Corporation Precision time protocol using a coherent optical DSP frame

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0787483A (ja) * 1993-09-17 1995-03-31 Canon Inc 画像符号化復号化装置、画像符号化装置及び画像復号化装置
JPH11127138A (ja) * 1997-10-24 1999-05-11 Sony Corp 誤り訂正符号化方法及びその装置並びにデータ伝送方法
JP2001016584A (ja) * 1999-06-30 2001-01-19 Kdd Corp ビデオ伝送方法および装置
JP2003087225A (ja) * 2001-09-12 2003-03-20 Nippon Telegr & Teleph Corp <Ntt> データ転送方法、データ転送システム、端末装置、データ転送プログラム、および記録媒体
JP2003152752A (ja) * 2001-08-29 2003-05-23 Matsushita Electric Ind Co Ltd データ送受信方法
JP2006339775A (ja) * 2005-05-31 2006-12-14 Kddi R & D Laboratories Inc スケーラブル動画像伝送システム
JP2008160499A (ja) * 2006-12-25 2008-07-10 Sony Corp データ通信システム、データ送信装置、データ送信方法、並びにパケットサイズおよび冗長度の決定方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5477272A (en) * 1993-07-22 1995-12-19 Gte Laboratories Incorporated Variable-block size multi-resolution motion estimation scheme for pyramid coding
JP4549610B2 (ja) * 2001-11-08 2010-09-22 ソニー株式会社 通信システム、通信方法、送信装置および方法、受信装置および方法、並びにプログラム
JP2003152544A (ja) * 2001-11-12 2003-05-23 Sony Corp データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
TW200727598A (en) * 2005-11-18 2007-07-16 Sony Corp Encoding/decoding device/method and the transmission system
JP4371120B2 (ja) * 2006-05-16 2009-11-25 ソニー株式会社 画像処理装置及び画像処理方法、プログラム及び記録媒体
JP4682914B2 (ja) * 2006-05-17 2011-05-11 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
JP4129694B2 (ja) * 2006-07-19 2008-08-06 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
JP4240331B2 (ja) * 2006-11-02 2009-03-18 ソニー株式会社 送信装置および方法、プログラム、並びに通信システム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0787483A (ja) * 1993-09-17 1995-03-31 Canon Inc 画像符号化復号化装置、画像符号化装置及び画像復号化装置
JPH11127138A (ja) * 1997-10-24 1999-05-11 Sony Corp 誤り訂正符号化方法及びその装置並びにデータ伝送方法
JP2001016584A (ja) * 1999-06-30 2001-01-19 Kdd Corp ビデオ伝送方法および装置
JP2003152752A (ja) * 2001-08-29 2003-05-23 Matsushita Electric Ind Co Ltd データ送受信方法
JP2003087225A (ja) * 2001-09-12 2003-03-20 Nippon Telegr & Teleph Corp <Ntt> データ転送方法、データ転送システム、端末装置、データ転送プログラム、および記録媒体
JP2006339775A (ja) * 2005-05-31 2006-12-14 Kddi R & D Laboratories Inc スケーラブル動画像伝送システム
JP2008160499A (ja) * 2006-12-25 2008-07-10 Sony Corp データ通信システム、データ送信装置、データ送信方法、並びにパケットサイズおよび冗長度の決定方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013225761A (ja) * 2012-04-20 2013-10-31 Hitachi Ltd 符号化装置、復号装置、通信システム及び通信制御方法
WO2014155471A1 (ja) * 2013-03-25 2014-10-02 日立マクセル株式会社 符号化方法および符号化装置
JPWO2014155471A1 (ja) * 2013-03-25 2017-02-16 日立マクセル株式会社 符号化方法および符号化装置

Also Published As

Publication number Publication date
US20100150243A1 (en) 2010-06-17
JP4883076B2 (ja) 2012-02-22
CN101754026B (zh) 2013-09-04
CN101754026A (zh) 2010-06-23
US8311122B2 (en) 2012-11-13

Similar Documents

Publication Publication Date Title
JP4883076B2 (ja) 情報処理装置および方法
JP5397700B2 (ja) 情報処理装置および方法
JP5672840B2 (ja) 情報処理装置および方法、並びにプログラム
JP5598155B2 (ja) 情報処理装置および方法、並びに送受信システム
JP4656190B2 (ja) 情報処理装置および方法
JP5493471B2 (ja) 情報処理装置および方法
EP2337306B1 (en) Transmitting apparatus and method, and receiving apparatus and method
JP4760902B2 (ja) 情報処理装置および方法
US20080259796A1 (en) Method and apparatus for network-adaptive video coding
JP4880222B2 (ja) 前方エラー訂正符号を用いる映像のドリフトのない一部の複数記述チャネル符号化のシステム及び方法
WO2011037049A1 (ja) 画像処理装置および方法
JP4604851B2 (ja) 送信装置、受信装置、送信処理方法、受信処理方法、それらのプログラム
WO2013154024A1 (ja) 情報処理装置および方法、並びに、プログラム
US9232225B2 (en) Low complexity and memory efficient image CODEC
JP2011147050A (ja) 画像処理装置および方法
JP2011071649A (ja) 画像処理装置および方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110907

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

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

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

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4883076

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees