JP2004007544A - Interleaver, interleaving method, de-interleaver, and de-interleaving method - Google Patents
Interleaver, interleaving method, de-interleaver, and de-interleaving method Download PDFInfo
- Publication number
- JP2004007544A JP2004007544A JP2003100345A JP2003100345A JP2004007544A JP 2004007544 A JP2004007544 A JP 2004007544A JP 2003100345 A JP2003100345 A JP 2003100345A JP 2003100345 A JP2003100345 A JP 2003100345A JP 2004007544 A JP2004007544 A JP 2004007544A
- Authority
- JP
- Japan
- Prior art keywords
- data
- packet
- byte
- address
- convolutional
- 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
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、入力されたデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施すインターリーブ装置及びインターリーブ方法、並びに、これらのインターリーブ装置及びインターリーブ方法を用いて並べ替えられたデータの配列を元に戻すように、入力されたデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みデインターリーブを施すデインターリーブ装置及びデインターリーブ方法に関する。
【0002】
【従来の技術】
近年、例えば放送用又は業務用のビデオカメラを用いて構築される放送システム等のように、いわゆるHDTV(High Definition Television)方式の映像及び/又は音声信号を扱う技術が開発されている。このようなシステムにおいては、非圧縮の映像及び/又は音声信号をいわゆるMPEG(Moving Picture Experts Group)−2等の画像圧縮方式を用いて圧縮符号化する機能と、圧縮符号化された映像及び/又は音声信号を伸長復号する機能とを併有するトランスコーダと称される機器が用いられる。すなわち、このトランスコーダは、例えばHD−SDI(High Definition−Serial Digital Interface)に準拠したシリアルバス等を介して入力された非圧縮の映像及び/又は音声信号に対して、搭載される符号化器によってMPEG−2等の画像圧縮方式に基づく圧縮符号化を施し、複数個のトランスポートパケット(TS Packet)から構成されるトランスポートストリーム(Transport Stream)として送信する。また、トランスコーダは、所定の通信路を介して受信したトランスポートストリームに対して、搭載される復号器によって伸長復号を施し、非圧縮の映像及び/又は音声信号を再生することもできる。
【0003】
このようなトランスコーダによって送受信されるトランスポートストリームのように、所定のデータがパケットに格納されて送受信されるパケット通信においては、パケット毎にヘッダが付加されることから、サイズが大きいデータを1つのパケットに格納して伝送するほどオーバーヘッドを少なくすることができ、通信効率の観点から有効である。
【0004】
また、パケット通信としては、データをIP(Internet Protocol)上で伝送する場合も多く、データの形式等に応じた各種伝送プロトコルにしたがったパケットの送受信が行われる。通常、IP上で行われるパケット通信としては、例えばFTP(File Transfer Protocol)等のように、通信路の状況に応じてパケットの再送が行うことが可能な伝送プロトコルにしたがうものが多い。しかしながら、近年では、パケット通信として、映像及び/又は音声信号をストリーミング再生するための伝送プロトコルとして知られるRTP(Real−time Transport Protocol)等のように、パケットの再送が許されないリアルタイム通信のアプリケーションにも適用される場合が生じている。この場合、パケット通信を行う送信側は、通信路上で発生するノイズ等の影響によってパケットが欠落してしまうパケットロスを含む大きなバーストエラーを受信側で訂正可能とするために、強力な誤り訂正能力を必要とする。
【0005】
このような誤り訂正技術としては、パケットに対していわゆるリード・ソロモン符号(Reed−Solomon code)等の所定の誤り訂正符号を付加することが考えられる。
【0006】
ここで、誤り訂正符号としてリード・ソロモン符号を用いる場合の例を説明する。リード・ソロモン符号は、例えば188バイトからなるパケットに対して28バイトの誤り訂正符号を付加すると、1パケットあたりのエラーを含むバイト数が14バイト以下であれば完全にエラーを訂正することができるものである。すなわち、リード・ソロモン符号は、一般に、ランダムエラーにのみ対応することができる誤り訂正符号である。しかしながら、リード・ソロモン符号は、1パケットあたりのエラーを含むバイト数が14バイトを超える場合には、エラーを訂正することができない。そのため、リード・ソロモン符号は、パケットロスを含む大きなバーストエラーに対しては効果を得ることができないことになる。
【0007】
そこで、誤り訂正技術としては、パケットに対してリード・ソロモン符号のような所定の誤り訂正符号を付加した後、さらに、畳み込みインターリーブを施すことによってエラーの分散化を図ることが一般に行われている。
【0008】
すなわち、パケット通信においては、送信側によって畳み込みインターリーブが施されたパケットに対して通信路上で発生したバーストエラーが重畳された場合であっても、受信側によって対応する畳み込みデインターリーブが施されることにより、パケット毎ではランダムエラーとみなすことができ、リード・ソロモン符号のような誤り訂正符号の復号が行われることにより、バーストエラーであってもエラーを訂正することが可能となる。例えば、パケット通信においては、上述した188バイトからなるパケットに対して28バイトの誤り訂正符号が付加され216バイトからなるパケットに対して深さ18の畳み込みインターリーブを施した場合には、連続する18パケット中の1パケットが完全にエラーとなった場合であっても、受信側によって完全にエラーを訂正することができることになる。したがって、パケット通信においては、特にパケットロスが発生しやすい通信路を介したデータの送受信を行う際には、1パケット分の連続した情報が全て欠落してしまう場合があるが、このような誤り訂正技術を用いることにより、欠落したパケットを完全に復元することが可能となる。
【0009】
このように、パケット通信においては、パケットの再送が許されないリアルタイム通信のアプリケーションに適用される場合には、パケットに対して所定の誤り訂正符号を付加するとともに、得られたパケットに対して畳み込みインターリーブを施すことにより、パケットロスを含むバーストエラーに対する誤り訂正能力を向上させることができる。
【0010】
【発明が解決しようとする課題】
ところで、パケット通信においては、上述した誤り訂正符号と畳み込みインターリーブとを組み合わせた誤り訂正技術を用いてパケットロスを含む大きなバーストエラーを訂正するためには、パケットのサイズに応じた非常に大きな符号長からなる誤り訂正符号を用いることが必要となる。
【0011】
しかしながら、パケット通信においては、符号長が大きな誤り訂正符号を付加することにより、データに対するオーバーヘッドが増大し、通信効率の悪化を招来することになる。また、パケット通信においては、符号長が大きな誤り訂正符号を付加することにより、通信効率の悪化のみならず、誤り訂正符号の符号化器及び復号器の回路規模が肥大化することになる。
【0012】
したがって、パケット通信においては、誤り訂正符号の符号長を可能な限り小さくするのが望ましい。
【0013】
一方、パケット通信においては、誤り訂正符号の符号長を小さくした場合には、パケットロスを含む大きなバーストエラーを訂正するために、畳み込みインターリーブの深さを非常に深いものとする必要が生じる。
【0014】
畳み込みインターリーブの実装面においては、当該畳み込みインターリーブの深さと必要となるメモリ容量とが比例関係にある。そのため、パケット通信においては、畳み込みインターリーブの深さを非常に深いものとするために、必要となるメモリ容量が増大することになり、望ましくない。
【0015】
また、畳み込みインターリーブにおいては、メモリとして、例えばMPEG方式の場合にはバイト単位といったデータワード単位で、当該データワードに同期した1クロック程度のクロック毎に不連続なアドレスにアクセスすることが可能なもの、すなわち、ランダムアクセスが可能なデュアルポートRAM(Dual Port Random Access Memory;以下、DPRAMという。)を用いる必要がある。
【0016】
ここで、畳み込みインターリーブとしては、専用の集積回路として実装することもできるが、コストや取り扱いの簡便さ等の観点からは、いわゆるPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)といった汎用的なプログラマブルデバイスとして実装するのが有効である。しかしながら、畳み込みインターリーブにおいては、これらの汎用的なプログラマブルデバイスの内部に設けられるDPRAMの容量が小さいことから、誤り訂正符号の符号長の削減を補完してパケットロスを含む大きなバーストエラーを訂正するために必要となる十分な深さを得ることが困難である。また、畳み込みインターリーブにおいては、メモリの容量のみが問題なのであれば、例えばSDRAM(Synchronous Dynamic Random Access Memory)といったプログラマブルデバイスに対して外付けとされる汎用的なメモリを用いれば問題を解決することができるが、このような外付けのデバイスは、複数のデータワード単位のデータをバースト転送するのには有効であるものの、アクセスのためのコマンド信号の入力期間を必要とすることから、時間的に連続してデータワード単位でランダムなアドレスにアクセスすることはオーバーヘッドの増大及びスループットの低下を招来する観点からみて困難であり、また、このようなアクセスを実現するためにはメモリの周辺回路として非常に煩雑なものを設ける必要があることから、データワード単位での高速アクセスを目的として実装するのは困難である。
【0017】
このように、パケット通信においては、誤り訂正符号と畳み込みインターリーブとを組み合わせた誤り訂正技術を用いてパケットロスを含む大きなバーストエラーを訂正するためには、符号長が大きな誤り訂正符号を用いることによる通信効率の悪化と回路の肥大化とを招来したり、又は符号長が小さな誤り訂正符号を用いる代わりに、深い畳み込みインターリーブを実現することによるメモリ容量の増大化を招来したりするといった問題があった。
【0018】
本発明は、このような実情に鑑みてなされたものであり、畳み込みインターリーブを行うために必要となるメモリ容量を削減し、通常であれば、畳み込みインターリーブの深さと入力した1パケットあたりのデータワード数との積で表されるデータワード数の容量を有するメモリを用いて実装する必要があるところ、この容量よりも大幅に小さい容量を有するメモリを用いて、同様の畳み込みインターリーブを実現することができるインターリーブ装置及びインターリーブ方法、並びに、これらのインターリーブ装置及びインターリーブ方法を用いて畳み込みインターリーブが施されたデータの配列を受信側において元に戻すデインターリーブ装置及びデインターリーブ方法であって、インターリーブ装置及びインターリーブ方法と同様に、通常必要とされる容量よりも大幅に小さい容量を有するメモリを用いて、同様の畳み込みデインターリーブを実現することができるデインターリーブ装置及びデインターリーブ方法を提供することを目的とする。
【0019】
【課題を解決するための手段】
上述した目的を達成する本発明にかかるインターリーブ装置は、入力されたデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施すインターリーブ装置であって、データを記憶する記憶手段と、この記憶手段におけるデータの書き込み位置と読み出し位置を制御することで畳み込みインターリーブを施すとともに、読み出しが行われてインターリーブが完了したデータの記憶領域を次のデータの書き込み領域とするアドレス制御を行うための書き込みアドレス及び読み出しアドレスを生成するアドレス生成手段とを備えることを特徴としている。
【0020】
このような本発明にかかるインターリーブ装置は、アドレス生成手段によって生成される書き込みアドレス及び読み出しアドレスに基づいて、記憶手段におけるデータが読み出された領域に次のデータを即座に書き込むアドレス制御を行う。
【0021】
また、この本発明にかかるインターリーブ装置において、入力されたデータは、複数個のパケットから構成されており、アドレス生成手段は、任意のパケットを構成する各データワードについて、当該パケットに対する、畳み込みインターリーブが施されることによって当該データワードが格納されるパケットの遅延数である遅延パケット数が等しいデータワード群を遅延グループとしてまとめて分類し、遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しを行うように、書き込みアドレス及び読み出しアドレスを生成することを特徴としている。
【0022】
このような本発明にかかるインターリーブ装置は、アドレス生成手段によって遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しを行う。
【0023】
また、上述した目的を達成する本発明にかかるインターリーブ方法は、入力されたデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施すインターリーブ方法であって、データを入力する入力工程と、データを記憶する記憶手段におけるデータの書き込み位置と読み出し位置を制御することで畳み込みインターリーブを施すとともに、読み出しが行われてインターリーブが完了したデータの記憶領域を次のデータの書き込み領域とするアドレス制御を行うための書き込みアドレス及び読み出しアドレスを生成するアドレス生成工程とを備えることを特徴としている。
【0024】
このような本発明にかかるインターリーブ方法は、生成される書き込みアドレス及び読み出しアドレスに基づいて、記憶手段におけるデータが読み出された領域に次のデータを即座に書き込むアドレス制御を行う。
【0025】
また、この本発明にかかるインターリーブ方法において、入力されたデータは、複数個のパケットから構成されており、アドレス生成工程では、任意のパケットを構成する各データワードについて、当該パケットに対する、畳み込みインターリーブが施されることによって当該データワードが格納されるパケットの遅延数である遅延パケット数が等しいデータワード群が遅延グループとしてまとめられて分類され、遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しが行われるように、書き込みアドレス及び読み出しアドレスが生成されることを特徴としている。
【0026】
このような本発明にかかるインターリーブ方法は、遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しを行う。
【0027】
さらに、上述した目的を達成する本発明にかかるデインターリーブ装置は、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施すインターリーブ装置を用いて並べ替えられたデータの配列を元に戻すように、入力されたデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みデインターリーブを施すデインターリーブ装置であって、データを記憶する記憶手段と、この記憶手段におけるデータの書き込み位置と読み出し位置を制御することで畳み込みデインターリーブを施すとともに、読み出しが行われてデインターリーブが完了したデータの記憶領域を次のデータの書き込み領域とするアドレス制御を行うための書き込みアドレス及び読み出しアドレスを生成するアドレス生成手段とを備えることを特徴としている。
【0028】
このような本発明にかかるデインターリーブ装置は、インターリーブ装置による畳み込みインターリーブに対応した畳み込みデインターリーブを行う際に、アドレス生成手段によって生成される書き込みアドレス及び読み出しアドレスに基づいて、記憶手段におけるデータが読み出された領域に次のデータを即座に書き込むアドレス制御を行う。
【0029】
また、この本発明にかかるデインターリーブ装置において、入力されたデータは、複数個のパケットから構成されており、アドレス生成手段は、任意のパケットを構成する各データワードについて、当該パケットに対する、畳み込みデインターリーブが施されることによって当該データワードが格納されるパケットの遅延数である遅延パケット数が等しいデータワード群を遅延グループとしてまとめて分類し、遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しを行うように、書き込みアドレス及び読み出しアドレスを生成することを特徴としている。
【0030】
このような本発明にかかるデインターリーブ装置は、アドレス生成手段によって遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しを行う。
【0031】
さらにまた、上述した目的を達成する本発明にかかるデインターリーブ方法は、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施すインターリーブ方法を用いて並べ替えられたデータの配列を元に戻すように、入力されたデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みデインターリーブを施すデインターリーブ方法であって、データを入力する入力工程と、データを記憶する記憶手段におけるデータの書き込み位置と読み出し位置を制御することで上記畳み込みデインターリーブを施すとともに、読み出しが行われてデインターリーブが完了したデータの記憶領域を次のデータの書き込み領域とするアドレス制御を行うための書き込みアドレス及び読み出しアドレスを生成するアドレス生成工程とを備えることを特徴としている。
【0032】
このような本発明にかかるデインターリーブ方法は、インターリーブ方法による畳み込みインターリーブに対応した畳み込みデインターリーブを行う際に、生成される書き込みアドレス及び読み出しアドレスに基づいて、記憶手段におけるデータが読み出された領域に次のデータを即座に書き込むアドレス制御を行う。
【0033】
また、この本発明にかかるデインターリーブ方法において、入力されたデータは、複数個のパケットから構成されており、アドレス生成工程では、任意のパケットを構成する各データワードについて、当該パケットに対する、畳み込みデインターリーブが施されることによって当該データワードが格納されるパケットの遅延数である遅延パケット数が等しいデータワード群が遅延グループとしてまとめられて分類され、遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しが行われるように、書き込みアドレス及び読み出しアドレスが生成されることを特徴としている。
【0034】
このような本発明にかかるデインターリーブ方法は、遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しを行う。
【0035】
【発明の実施の形態】
以下、本発明を適用した具体的な実施の形態について図面を参照しながら詳細に説明する。
この実施の形態は、パケット化されたデータを入力し、各パケットに対して所定の誤り訂正符号を付加し、さらに、インターリーブを施して送信する符号化器と、この符号化器から所定の通信路を介して受信した受信データを復号する復号器とを備えるデータ送受信システムである。このデータ送受信システムにおいて、符号化器は、インターリーブとして、データワード単位又は複数の連続するデータワード単位の畳み込みインターリーブと、パケット単位のインターリーブとを行うことにより、小さい符号長からなる誤り訂正符号を用いてパケットロスを含む大きなバーストエラーを訂正することを可能とするものである。一方、データ送受信システムにおいて、復号器は、このような符号化器によって符号化がなされて送信され、所定の通信路を介して受信した受信データを復号し、パケットロスを含む大きなバーストエラーを完全に訂正することができるものである。
【0036】
特に、データ送受信システムにおいては、データワード単位又は複数の連続するデータワード単位の畳み込みインターリーブ及び畳み込みデインターリーブを実現するにあたって、通常であれば、畳み込みインターリーブ及び畳み込みデインターリーブの深さと入力した1パケットあたりのデータワード数との積で表されるデータワード数の容量を有するメモリを用いて実装する必要があるところ、この容量よりも大幅に小さい容量を有するメモリを用いて、同様の畳み込みインターリーブ及び畳み込みデインターリーブを実現することができるものである。
【0037】
なお、以下では、データ送受信システムにおける符号化器には、例えばHD−SDI(High Definition−Serial Digital Interface)に準拠したシリアルバス等を介して入力された非圧縮の映像及び/又は音声信号に対していわゆるMPEG(Moving Picture Experts Group)−2方式に基づく圧縮符号化を施して得られたトランスポートストリーム(Transport Stream)を構成する複数個のトランスポートパケット(TS Packet)が入力されるものとし、この符号化器によってトランスポートパケットに対して付加する誤り訂正符号として、いわゆるリード・ソロモン符号(Reed−Solomon code)を用いるものとして説明する。
【0038】
データ送受信システムは、例えば図1に示すように、複数個のトランスポートパケットTSPから構成されるトランスポートストリームTSを入力して符号化を施す符号化器10と、この符号化器10から所定の通信路を介して受信した受信データRDを復号してトランスポートストリームTSを復元する復号器20とを備える。
【0039】
まず、符号化器10について説明する。符号化器10は、例えば図1に示すように、トランスポートストリームTSを構成する各トランスポートパケットTSPに対してリード・ソロモン符号化を施すリード・ソロモン符号化部11と、このリード・ソロモン符号化部11によって誤り訂正符号が付加された複数個の符号化パケットEPから構成される符号化データEDに対してバイト単位あるいは複数の連続するバイト単位で畳み込みインターリーブを施すバイト・インターリーバ12と、このバイト・インターリーバ12によって畳み込みインターリーブが施された複数個のバイト・インターリーブパケットBIPから構成されるバイト・インターリーブデータBIDに対してパケット単位でインターリーブを施すパケット・インターリーバ13と、このパケット・インターリーバ13によってパケット単位でのインターリーブが施された複数個のパケット・インターリーブパケットPIPから構成されるパケット・インターリーブデータPIDのうち所定個ずつのパケット・インターリーブパケットPIPを連結して1つのパケットデータPDを生成するパケット化部14と、このパケット化部14によって生成された各パケットデータPDに対して所定のヘッダを付加して複数個の上位レイヤパケットULPから構成される送信データTDとして送信する送信部15とを有する。
【0040】
符号化器10においては、これらの各部のうち、少なくとも図1中破線枠で示すリード・ソロモン符号化部11、バイト・インターリーバ12、パケット・インターリーバ13におけるインターフェース部17、及びパケット化部14が、いわゆるPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)といったプログラマブルデバイスとして実装される。
【0041】
リード・ソロモン符号化部11は、情報系列として入力したトランスポートストリームTSを構成するトランスポートパケットTSPのそれぞれに対して、リード・ソロモン符号化を施し、複数個の符号化パケットEPから構成される符号化データEDを生成する。具体的には、リード・ソロモン符号化部11は、図2Aに示すように、トランスポートストリームTSを構成する188バイトからなるトランスポートパケットTSPのそれぞれに対して、図2Bに示すように、28バイトからなるパリティとしての誤り訂正符号(Error Correction Code;ECC)を付加し、1パケットあたりの符号長が216バイトからなる符号化パケットEPから構成される符号化データEDを生成する。なお、符号化パケットEPの先頭データは、それぞれ、MPEG−2方式に基づくトランスポートパケットTSPのパケットヘッダにおけるシンクバイトであり、その値は、”0x47”である。リード・ソロモン符号化部11は、生成した複数個の符号化パケットEPから構成される符号化データEDを後段のバイト・インターリーバ12に供給する。なお、この符号化データEDをそのまま出力した場合の誤り訂正能力は、1つの符号化パケットEPパケットあたり14バイトまでのエラーを完全に訂正できるものとなる。
【0042】
バイト・インターリーバ12は、リード・ソロモン符号化部11から供給された符号化データEDを構成する符号化パケットEPのそれぞれに対して、データワード単位あるいは複数の連続するデータワード単位、すなわち、MPEG方式であるためバイト単位あるいは複数の連続するバイト単位で所定の深さ及び周期の畳み込みインターリーブを施し、符号化パケットEPを構成する各バイトの順序を並べ替え、複数個のバイト・インターリーブパケットBIPから構成されるバイト・インターリーブデータBIDを生成する。具体的には、バイト・インターリーバ12は、図示しないが、バイト単位で、当該バイトに同期した1クロック程度のクロック毎に不連続なアドレスにアクセスすることが可能なデュアルポートRAM(Dual Port Random Access Memory;以下、DPRAMという。)やこのDPRAMに対するデータの書き込み及び読み出しを行うためのアドレス生成部等から構成される。バイト・インターリーバ12は、入力された符号化データEDを所定の書き込みアドレスにしたがって順次DPRAMに転送して書き込み、このDPRAMに書き込んだデータを書き込みアドレスとは異なる所定の読み出しアドレスにしたがって順次読み出すことにより、リード・ソロモン符号化部11によって生成された符号化データEDに対して、例えばバイト単位で深さ18及び周期12の畳み込みインターリーブ、あるいは連続する4バイトを1つの処理単位として、連続する4バイト単位で深さ18及び周期3の畳み込みインターリーブを施す。
【0043】
ここで、畳み込みインターリーブの深さとは、バイト単位でインターリーブを行うものとしたとき、第1のバイト数からなるパケットをこの値よりも小さい第2のバイト数毎に分割し、この第2のバイト数からなる分割単位を構成する各バイト1を互いに異なる分割単位に分散することを示し、周期とは、隣り合うバイトを分散させる分割単位の離隔量を示すものであって第1のバイト数と畳み込みインターリーブの深さとの商で表されるものである。また、複数の連続するバイト単位でインターリーブを行うものとしたとき、畳み込みインターリーブの深さとは、第1のバイト数からなるパケットをこの値よりも小さい第2のバイト数毎に分割し、この第2のバイト数からなる分割単位を構成する複数の連続するバイト(以下「ユニット」という)単位で互いに異なる分割単位に分散することを示し、周期とは、隣り合うユニットを分散させる分割単位の離隔量を示すものであって第1のバイト数と畳み込みインターリーブの深さとの商をさらにユニットで割った値で表されるものである。
【0044】
すなわち、バイト単位でインターリーブを行うものとしたとき、バイト・インターリーバ12は、図3Aに示すように、216バイトからなるある1つの符号化パケットEPを18バイト毎に分割して12個の分割単位を設けるものとし、図3Bに示すように最初の分割単位を構成する1バイト目については並べ替えず(このとき1バイト目は−1バイト遅延した位置とする)、次の2バイト目については18×12×1−1バイトだけ遅延した位置、すなわち、2個目のパケットの2バイト目に位置するように並べ替え、次の3バイト目については18×12×2−1バイトだけ遅延した位置、すなわち、3個目のパケットの3バイト目に位置するように並べ替える、といった深さ18及び周期12の畳み込みインターリーブを施し、複数個のバイト・インターリーブパケットBIPから構成されるバイト・インターリーブデータBIDを生成する。したがって、1つの符号化パケットEPに含まれる情報は、バイト・インターリーバ12による畳み込みインターリーブが施されることにより、連続する18個のバイト・インターリーブパケットBIPに12バイトずつ分散されることになる。
【0045】
また、トランスポートストリームTSのヘッダが4バイトであることから連続する4バイトを1ユニットとして、ユニット単位でインターリーブを行うものとしたとき、バイト・インターリーバ12は、図4Aに示すように、216バイトからなるある1つの符号化パケットEPを(4×18=72)バイト毎に分割して3個の分割単位を設けるものとし、図4Bに示すように最初の分割単位を構成する1ユニット目については並べ替えず(このとき最初の分割単位を構成する1ユニットの1バイト目は−1バイト遅延した位置とする)、次の2ユニット目については72×3×1−1バイトだけ遅延した位置、すなわち、2個目のパケットの2ユニット目に位置するように並べ替え、次の3ユニット目については72×3×2−1バイトだけ遅延した位置、すなわち、3個目のパケットの3ユニット目に位置するように並べ替える、といった深さ18及び周期3の畳み込みインターリーブを施し、複数個のバイト・インターリーブパケットBIPから構成されるバイト・インターリーブデータBIDを生成する。したがって、1つの符号化パケットEPに含まれる情報は、バイト・インターリーバ12による畳み込みインターリーブが施されることにより、連続する18個のバイト・インターリーブパケットBIPにユニット単位で12バイトずつ分散されることになる。
【0046】
これにより、バイト・インターリーバ12は、リード・ソロモン符号化部11による誤り訂正能力を強化するわけではないが、情報の分散配置によってパケットロスを含むバーストエラーをランダムエラー化することができる。具体的には、バイト・インターリーブデータBIDをそのまま出力した場合の誤り訂正能力は、連続する18個のバイト・インターリーブパケットBIPあたり1パケット、すなわち、216バイトが完全にエラーであっても、全てのビットを訂正できるものとなる。なお、バイト・インターリーブパケットBIPの先頭データは、それぞれ、符号化パケットEPと変わらず、MPEG−2方式に基づくトランスポートパケットTSPのパケットヘッダにおけるシンクバイトであり、その値は、”0x47”である。バイト・インターリーバ12は、生成した複数個のバイト・インターリーブパケットBIPから構成されるバイト・インターリーブデータBIDを後段のパケット・インターリーバ13に供給する。
【0047】
なお、このバイト・インターリーバ12は、所定のアドレス生成方式にしたがってアドレス制御を行うことにより、バイト単位あるいはユニット単位での畳み込みインターリーブを行うのに必要なメモリ、すなわち、DPRAMの容量の削減を図ることができるが、これについては、後述するものとする。
【0048】
パケット・インターリーバ13は、バイト・インターリーバ12から供給されたバイト・インターリーブデータBIDを構成するバイト・インターリーブパケットBIPのそれぞれに対して、パケット単位で所定の深さ及び周期のインターリーブを施し、各バイト・インターリーブパケットBIPの順序を並べ替え、複数個のパケット・インターリーブパケットPIPから構成されるパケット・インターリーブデータPIDを生成する。具体的には、パケット・インターリーバ13は、複数のバイト単位のデータをバースト転送するために、プログラマブルデバイスとして実装される各部に対して外付けとされるSDRAM(Synchronous Dynamic Random Access Memory)16と、このSDRAM16に対するデータの書き込み及び読み出しを行うためのアドレス生成やデータの授受等の処理を行うインターフェース部17とから構成される。パケット・インターリーバ13は、インターフェース部17に入力されたバイト・インターリーブデータBIDを所定の書き込みアドレスにしたがって順次SDRAM16に転送して書き込み、このSDRAM16に書き込んだデータを書き込みアドレスとは異なる所定の読み出しアドレスにしたがって順次読み出すことにより、バイト・インターリーバ12から供給されたバイト・インターリーブデータBIDに対して、バイト・インターリーブパケット単位で深さ6及び周期4の畳み込みインターリーブや、連続する108パケットのバイト・インターリーブパケットBIPで完結する深さ6のブロックインターリーブを施す。
【0049】
すなわち、畳み込みインターリーブを行うものとしたとき、パケット・インターリーバ13は、図5Aに示すように、連続する24個のバイト・インターリーブパケットBIPを1つのパケット(以下、一時的複合パケットCPTという。)とみなし、図5Bに示すように、ある1つの一時的複合パケットCPTにおける最初の6個のバイト・インターリーブパケットBIPからなる分割単位を構成する1個目のバイト・インターリーブパケットBIPについては並べ替えず、次の2個目のバイト・インターリーブパケットBIPについては6×4×1−1パケットだけ遅延した位置、すなわち、2個目の一時的複合パケットCPTにおける2パケット目に位置するように並べ替え、次の3個目のバイト・インターリーブパケットBIPについては6×4×2−1パケットだけ遅延した位置、すなわち、3個目の一時的複合パケットCPTの3パケット目に位置するように並べ替える、といった畳み込みインターリーブを施し、複数個のパケット・インターリーブパケットPIPから構成されるパケット・インターリーブデータPIDを生成する。したがって、1つの符号化パケットEPに含まれる情報は、パケット・インターリーバ13による畳み込みインターリーブが施されることにより、連続する6×4(=24)×6=144個のパケット・インターリーブパケットPIPに離散的に分散され、且つ、12バイトずつの情報が少なくとも6個のパケット・インターリーブパケットPIPの間隔を空けて分散されることになる。この場合、パケット・インターリーバ13を構成するSDRAM16の容量は、少なくとも144個のパケット・インターリーブパケットPIPを記憶できるものであれば足りる。
【0050】
また、ブロックインターリーブを行うものとしたとき、パケット・インターリーバ13は、図6Aに示すように、連続する108個のバイト・インターリーブパケットBIPを1つの一時的複合パケットCPTとみなし、この一時的複合パケットCPTを18個のバイト・インターリーブパケット毎に分割して6個のグループを設けるものとし、図6Bに示すように、最初のグループを構成するバイト・インターリーブパケットの1個目のバイト・インターリーブパケットBIPについては並べ替えず、次の2個目から18個目までのバイト・インターリーブパケットBIPについては、順次6バイト・インターリーブパケット分だけ遅延した位置に並べ替える。2個目のグループを構成するバイト・インターリーブパケットの1個目のバイト・インターリーブパケットBIPは、最初のグループにおける1個目のバイト・インターリーブパケットBIPの次の位置に並べ換える。また、2個目から18個目までのバイト・インターリーブパケットBIPについては、順次6バイト・インターリーブパケット分だけ遅延した位置に並べ替える。以下同様にして、6個目のグループを構成するバイト・インターリーブパケットの1個目のバイト・インターリーブパケットBIPは、最初のグループにおける6個目のバイト・インターリーブパケットBIPの次の位置に並べ換え、2個目から18個目までのバイト・インターリーブパケットBIPについては、順次6バイト・インターリーブパケット分だけ遅延した位置に並べ替えるといったブロックインターリーブを施し、複数個のパケット・インターリーブパケットPIPから構成されるパケット・インターリーブデータPIDを生成する。したがって、1つの符号化パケットEPに含まれる情報は、パケット・インターリーバ13によるブロックインターリーブが施されることにより、ブロックインターリーブが行われた連続する108個のパケット・インターリーブパケットPIPに離散的に分散され、且つ、パケット・インターリーブデータPIDを連続する6パケット・インターリーブパケット毎に分割してグループ化したとき、12バイトずつの情報が各グループに1つずつ分散されることになる。この場合、パケット・インターリーバ13を構成するSDRAM16の容量は、少なくとも216個のパケット・インターリーブパケットPIPを記憶できるものであれば足りる。
【0051】
これにより、パケット・インターリーバ13は、バイト・インターリーバ12と同様に、リード・ソロモン符号化部11による誤り訂正能力を強化するわけではないが、バイト・インターリーバ12よりも離散的に情報の分散配置を行うことによってパケットロスを含むより大きなバーストエラーをランダムエラー化することができる。具体的には、畳み込みインターリーブによって生成したパケット・インターリーブデータPIDをそのまま出力した場合の誤り訂正能力は、連続する144個のパケット・インターリーブパケットPIPのうち、連続する最大で6個のパケット・インターリーブパケットPIP、すなわち、1296バイトが完全にエラーであっても、全てのビットを訂正できるものとなる。また、ブロックインターリーブによって生成したパケット・インターリーブデータPIDをそのまま出力した場合の誤り訂正能力は、連続する108個のパケット・インターリーブパケットPIPのうち、連続する最大で6個のパケット・インターリーブパケットPIP、すなわち、1296バイトが完全にエラーであっても、全てのビットを訂正できるものとなる。さらに、畳み込みインターリーブを用いたときには、連続する144個のパケット・インターリーブパケットPIPのうち、連続する最大で6個のパケット・インターリーブパケットPIPのエラーを訂正できるが、ブロックインターリーブを用いるものとすれば、連続する108個のパケット・インターリーブパケットPIPのうち、連続する最大で6個のパケット・インターリーブパケットPIPのエラーを訂正できることとなり、訂正能力を向上させることができる。
【0052】
ここで、このようなパケット・インターリーバ13によってインターリーブが施されたパケット・インターリーブデータPIDは、このままでは先頭のパケットを受信側が把握できないものとなり、同期をとることが困難となる。そこで、パケット・インターリーバ13は、パケット・インターリーブデータPIDにおける先頭のパケットを受信側に通知するために、先頭のパケット・インターリーブパケットPIPの先頭データであるシンクバイトの値を置換する。すなわち、深さ6の畳み込みインターリーブをパケット・インターリーバ13で施したとき、パケット・インターリーブパケットPIPの先頭データを6パケット毎に反転し、”0x47”から”0xB8”に置き換えて、最終的に出力するパケット・インターリーブデータPIDを生成する。
【0053】
また、ブロックインターリーブが施されたとき、例えば連続する108個のパケット・インターリーブパケットPIPからなるインターリーブブロックの先頭パケットを受信側に通知するため、インターリーブブロックの先頭のパケット・インターリーブパケットPIPの先頭データであるシンクバイトの値を”0x47”から例えば”0xB7”に置き換える。さらに、残りのパケット・インターリーブパケットPIPについて、6パケット・インターリーブパケットPIP毎にシンクバイトの値の反転を行い、”0x47”から”0xB8”に置き換えておけば、受信側は”0xB8”を検出することでデインターリーブ処理を予め同期させておくことができ、”0xB7”を検出したとき、速やかにブロックデインターリーブ処理後の出力を得ることができる。
【0054】
パケット・インターリーバ13は、生成した複数個のパケット・インターリーブパケットPIPから構成されるパケット・インターリーブデータPIDを後段のパケット化部14に供給する。
【0055】
パケット化部14は、パケット・インターリーバ13から供給されたパケット・インターリーブデータPIDを構成するパケット・インターリーブパケットPIPを所定個ずつ連結して1つのパケットデータPDを生成する。具体的には、パケット化部14は、ストリーミング再生するための伝送プロトコルとして知られるRTP(Real−time Transport Protocol)にしたがって映像及び/又は音声信号を伝送するために、一連のパケット・インターリーブパケットPIPのうち、連続する6個のパケット・インターリーブパケットPIPを連結して上位レイヤとしてのRTPの1パケットに格納することにより、パケットデータPDを生成する。また、ブロックインターリーブを施してパケット・インターリーブデータPIDが生成されている場合、インターリーブブロックの先頭を示す位置すなわちシンクバイトの値が”0xB7”の位置からRTPパケットの生成を行う。6個のパケット・インターリーブパケットPIPを連結して上位レイヤとしてのRTPの1パケットに格納することにより、パケットデータPDを生成する。なお、シンクバイトの値の値が”0x47”から”0xB8”に置き換えられているときには、この値”0xB7”,”0xB8”を検出することで、6個のパケット・インターリーブパケットPIPを連結したパケットデータPDを容易に生成できる。
【0056】
ここで、このパケットデータPDとして連結された6個のパケット・インターリーブパケットPIPの中には、18×6=108個の符号化パケットEPのそれぞれから12バイトずつの情報が含まれることになる。図7A〜図7Dは、バイト・インターリーバ12でバイト単位(あるいはユニット単位)の畳み込みインターリーブ、パケット・インターリーバ13で畳み込みインターリーブを行ったときのパケットデータPDの生成の推移を説明するための図である。符号化器10は、符号化パケットEPのそれぞれの順序を、図7Aに示すように、・・・,100,101,・・・,136,・・・として表した場合、1つの符号化パケットEPに含まれる情報を、図7Bに示すように、連続する18個のバイト・インターリーブパケットBIPに12バイトずつ分散する。さらに、符号化器10は、図7Cにおける縦1列分の情報をまとめて1つのパケット・インターリーブパケットPIPを生成する。そして、符号化器10は、パケット化部14によって任意の連続する6個のパケット・インターリーブパケットPIPを連結することにより、図7Dに示すように、1つのパケットデータPDを生成する。したがって、パケットデータPDは、上述したように、18×6=108個の符号化パケットEPのそれぞれから12バイトずつの情報が含まれるものとなる。
【0057】
図8A〜図8Eは、バイト・インターリーバ12でユニット単位(あるいはバイト単位)の畳み込みインターリーブ、パケット・インターリーバ13でブロック・インターリーブを行ったときのパケットデータPDの生成の推移を説明するための図である。符号化器10は、符号化パケットEPのそれぞれの順序を、図8Aに示すように、・・・,100,101,・・・,136,・・・として表した場合、1つの符号化パケットEPに含まれる情報を、図8Bに示すように、連続する18個のバイト・インターリーブパケットBIPに12バイトずつ分散する。さらに、符号化器10は、図8Cにおける縦1列分の情報をまとめて1つのパケット・インターリーブパケットPIPを生成する。そして、符号化器10は、パケット化部14によって、インターリーブブロックの先頭のパケット・インターリーブパケットPIPから連続する6個のパケット・インターリーブパケットPIPを連結することにより、図8Dに示すように、1つのパケットデータPDを生成する。したがって、パケットデータPDは、上述したように、18×6=108個の符号化パケットEPのそれぞれから12バイトずつの情報が含まれるものとなる。
【0058】
このパケットデータPDは、図7D,図8Dに示すように、重複する番号が存在しないものである、すなわち、互いに異なる108個の符号化パケットEPからの情報によって構成されるものである。これは、1つのパケットデータPDに同じ番号が2つ存在する場合、例えば図8Eに示すように、パケットデータPD生成する際に、連結する6個のパケット・インターリーブパケットPIPが、図8Dに対して4パケット・インターリーブパケットPIP分だけ位相差を有して、番号155が2つ存在する場合、1つの符号化パケットEPから24バイトの情報が含まれるものとなることから、例えば、1つの上位レイヤパケットULPが通信路上で欠落した場合には、復号器20によって誤り訂正能力の限界を超える誤りデータ量を有する符号化パケットEP’が生成される事態が生じ、完全な訂正が不可能となることになるからである。
【0059】
したがって、パケット化部14は、一連のパケット・インターリーブパケットPIPのうち、同じ符号化パケットEPからの情報が含まれないように、連続する6個のパケット・インターリーブパケットPIPを連結し、パケットデータPDを生成する。なお、パケット・インターリーバ13で畳み込みインターリーブを行う場合、パケット化部14は、パケット・インターリーバ13によって値を反転したシンクバイトの位置には拘泥せずに、任意の連続する6個のパケット・インターリーブパケットPIPを連結すればよい。しかし、パケット・インターリーバ13でブロックインターリーブを行う場合、パケット化部14は、インターリーブブロックの先頭を示すシンクバイトの位置から、連続する6個のパケット・インターリーブパケットPIPを連結する。パケット化部14は、生成したパケットデータPDを後段の送信部15に供給する。
【0060】
送信部15は、パケット化部14から供給されたパケットデータPDを、RTPにしたがい、且つ、トランスポート層のプロトコルとしていわゆるUDP(User Datagram Protocol)を用いたTCP/IP(Transmission Control Protocol/Internet Protocol)にしたがって伝送するために、各パケットデータPDに対してRTP/UDP/IPパケットヘッダを付加して1つの上位レイヤパケットULPを生成し、複数個の上位レイヤパケットULPから構成される送信データTDとして送信する。また、送信部15はRTPのパケットを生成する際に、RTPヘッダにシーケンス番号を設定する。このようにシーケンス番号を設定することで、後述するように、シーケンス番号の連続性を受信側で検証してパケットの欠落を判別できることとなる。
【0061】
このような各部を有する符号化器10は、情報系列として入力したトランスポートストリームTSを送信データTDとして出力する。図9A〜図9Fは、パケット・インターリーバ13で畳み込みインターリーブを行うものとしたときの符号化器10におけるパケットフォーマットの推移を示している。また、図10A〜図10Eは、パケット・インターリーバ13でブロックインターリーブを行うものとしたときの符号化器10におけるパケットフォーマットの推移を示している。
【0062】
すなわち、符号化器10は、図9A(図10A)に示す複数個のトランスポートパケットTSPから構成されるトランスポートストリームTSを入力すると、これらのトランスポートパケットTSPのそれぞれに対して、リード・ソロモン符号化部11によってリード・ソロモン符号化を施し、図9B(図10B)に示す複数個の符号化パケットEPから構成される符号化データEDを生成する。このとき、図9B(図10B)における黒マスで示す1つの符号化パケットEPに含まれる情報量、より明確には、符号化パケットEPのうち付加された誤り訂正符号を除く情報量は、リード・ソロモン符号化部11によってトランスポートパケットTSPに対してリード・ソロモン符号化が施されても、図9A(図10B)における黒マスで示すように、トランスポートパケットTSPと同じ情報量であり、また、一連の符号化パケットEPの順序も、一連のトランスポートパケットTSPの順序と同じものであることはいうまでもない。
【0063】
そして、符号化器10は、符号化パケットEPのそれぞれに対して、図9C,(図10C)に示すように、バイト・インターリーバ12によってバイト単位あるいはユニット単位で畳み込みインターリーブを施すことにより、図9B(図10B)における黒マスで示す1つの符号化パケットEPに含まれる情報を、図9C(図10C)における斜線部に示すように、連続する18個のバイト・インターリーブパケットBIPにバイト単位あるいはユニット単位で12バイト分ずつ分散した複数個のバイト・インターリーブパケットBIPから構成されるバイト・インターリーブデータBIDを生成する。なお、図9C(図10C),図9Dにおける斜線部は、図9B(図10B)における黒マスで示す1つの符号化パケットEPの情報量が連続する18個のバイト・インターリーブパケットBIPに分散されている様子を示すものである。
【0064】
ここで、符号化器10は、バイト・インターリーブパケットBIPのそれぞれに対して、バイト・インターリーブパケット単位で深さ6及び周期4の畳み込みインターリーブを行い、図9Dに示すように24個のバイト・インターリーブパケットBIPの情報を、図9Eに示すように、連続する144個のパケット・インターリーブパケットPIPに離散的に分散し、且つ、12バイトずつの情報を少なくとも6個のパケット・インターリーブパケットPIPの間隔を空けて分散した複数個のパケット・インターリーブパケットPIPから構成されるパケット・インターリーブデータPIDを生成する。このため、図9Bにおける黒マスで示す1つの符号化パケットEPに含まれる情報は、図9Eの斜線部に示すように分散される。
【0065】
また符号化器10は、バイト・インターリーブパケットBIPのそれぞれに対して、連続する108パケットのバイト・インターリーブパケットBIPで完結する深さ6のブロックインターリーブを行い、図10Cに示すように、18個のバイト・インターリーブパケットBIPの情報を、図10Dに示すように、連続する108個のパケット・インターリーブパケットPIPに離散的に分散し、且つ、インターリーブブロックの先頭から連続する6パケット・インターリーブパケットPIP毎のグループに、12バイトずつの情報がそれぞれ1つずつ分散されているパケット・インターリーブデータPIDを生成する。このため、図10Bにおける黒マスで示す1つの符号化パケットEPに含まれる情報は、図10Dにおける斜線部に示すように分散される。
【0066】
そして、符号化器10は、図9F(図10E)に示すように、パケット化部14によって連続する6個のパケット・インターリーブパケットPIPを連結してパケットデータPDを生成し、さらに、送信部15によって各パケットデータPDに対してRTP/UDP/IPパケットヘッダを付加して複数個の上位レイヤパケットULPから構成される送信データTDとして送信する。
【0067】
このように、符号化器10は、リード・ソロモン符号を付加した符号化パケットEPに対して、バイト単位あるいはユニット単位で畳み込みインターリーブを施すとともに、パケット単位でインターリーブを施すことにより、小さな符号長からなるリード・ソロモン符号を用いてパケットロスを含む大きなバーストエラーを訂正することができる誤り訂正能力を有する送信データTDを送信することができる。すなわち、符号化器10は、1つの上位レイヤパケットULPが通信路上で欠落した場合といったように、最大で1つの上位レイヤパケットULPに含まれる情報にバーストエラーが発生した場合であっても、このパケットロスを含むバーストエラーを復号器20によって完全に訂正することができる誤り訂正能力を有する送信データTDを送信することができる。
【0068】
また、符号化器10は、パケットの先頭データの値が固定値であることを利用して、パケット単位でのインターリーブを施す際に、先頭のパケット・インターリーブパケットPIPの先頭データであるシンクバイトの値を置換することにより、パケット・インターリーブデータPIDにおける先頭のパケットやブロックインターリーブを行ったときのインターリーブブロックの先頭のパケットを受信側に通知することができる。
【0069】
さらに、符号化器10は、バイト・インターリーバ12をプログラマブルデバイスに内蔵される容量の小さなDPRAMを用いて実装するとともに、パケット・インターリーバ13をプログラマブルデバイスに外付けとされる比較的容量の大きなSDRAM16を用いて実装することにより、プログラマブルデバイスの内部に設けられるメモリ資源を節約することができるとともに、SDRAM16に対するバーストアクセスによる周辺回路の単純化を図ることができる。このように、符号化器10は、DPRAM及びSDRAM16を用いた2段階のインターリーブを行うことにより、これらのメモリの弱点を補完的に回避することができ、パケット単位でインターリーブを行う際に、プログラマブルデバイスに内蔵される容量が小さなDPRAMを用いるのではなく外付けとされるSDRAM16を用いることにより、コストの削減を図ることができ、SDRAM16に対してパケット単位でアクセスすることによって高速動作を行うこともできる。
【0070】
このような符号化器10によって送信された送信データTDは、所定の通信路を介して伝送され、複数個の上位レイヤパケットULPから構成される受信データRDとして復号器20によって受信されることになる。
【0071】
つぎに、データ送受信システムにおける復号器20について説明する。
復号器20は、例えば図1に示すように、複数個の上位レイヤパケットULP’から構成される受信データRDを受信して解析する受信部21と、この受信部21によって受信された受信データRDに付加されているヘッダに基づいて上位レイヤパケットULP’の連続性を検証するパケット連続性検証部22と、受信部21によって受信されてヘッダが除去されたパケットデータPD’をパケット・インターリーブパケットPIP’毎に分割するアンパケット化部23と、このアンパケット化部23によって分割された複数個のパケット・インターリーブパケットPIP’の順序を元のバイト・インターリーブデータBIDを構成するバイト・インターリーブパケットBIPの順序に戻すようにパケット・インターリーブデータPID’に対してパケット単位でデインターリーブを施すパケット・デインターリーバ24と、このパケット・デインターリーバ24によってデインターリーブが施された複数個のバイト・インターリーブパケットBIP’の順序を元の符号化データEDを構成する符号化パケットEPの順序に戻すようにバイト・インターリーブデータBID’に対して畳み込みデインターリーブを施すバイト・デインターリーバ25と、このバイト・デインターリーバ25によって畳み込みデインターリーブが施された符号化データED’を構成する各符号化パケットEP’に対してリード・ソロモン符号の復号を施して複数個のトランスポートパケットTSPから構成されるトランスポートストリームTSを出力するリード・ソロモン復号部26とを有する。
【0072】
復号器20においては、これらの各部のうち、少なくとも同図中破線枠で示すパケット連続性検証部22、アンパケット化部23、パケット・デインターリーバ24におけるインターフェース部28、バイト・デインターリーバ25、及びリード・ソロモン復号部26が、PLDやFPGAといったプログラマブルデバイスとして実装される。
【0073】
受信部21は、符号化器10における送信部15に対応して設けられるものであり、所定の通信路を介して受信データRDを受信すると、この受信データRDを構成する複数個の上位レイヤパケットULP’のそれぞれに付加されているRTP/UDP/IPパケットヘッダを解析する。具体的には、受信部21は、RTP/UDP/IPパケットヘッダにおけるRTPのシーケンス番号を解析する。受信部21は、解析したRTPのシーケンス番号を示す解析情報ANをパケット連続性検証部22に供給するとともに、上位レイヤパケットULP’のそれぞれからRTP/UDP/IPパケットヘッダを除去して生成したパケットデータPD’を後段のアンパケット化部23に供給する。
【0074】
パケット連続性検証部22は、受信部21から供給された解析情報AN、すなわち、RTPのシーケンス番号に基づいて、通信路上で上位レイヤパケットULP’の欠落等が発生しているか否かといった上位レイヤパケットULP’の連続性を検証する。パケット連続性検証部22は、検証結果を示す検証結果情報CKをパケット・デインターリーバ24におけるインターフェース部28に供給する。
【0075】
アンパケット化部23は、符号化器10におけるパケット化部14に対応して設けられるものであり、パケット化部14によって生成されたパケットデータPDを連結前のパケット・インターリーブパケットPIPに戻すように、受信部21から供給されたパケットデータPD’を分割し、パケット・インターリーブパケットPIP’を生成する。アンパケット化部23は、生成した複数個のパケット・インターリーブパケットPIP’から構成されるパケット・インターリーブデータPID’を後段のパケット・デインターリーバ24に供給する。
【0076】
パケット・デインターリーバ24は、符号化器10におけるパケット・インターリーバ13に対応して設けられるものであり、パケット・インターリーバ13によってインターリーブが施されたパケット・インターリーブデータPIDの順序を、それぞれ、元のバイト・インターリーブデータBIDを構成するバイト・インターリーブパケットBIPの順序に戻す処理を行う。ここで、アンパケット化部23から供給されたパケット・インターリーブデータPID’を構成するパケット・インターリーブパケットPIP’が、上述したようにバイト・インターリーブパケット単位で深さ6及び周期4の畳み込みインターリーブを行って生成されているとき、バイト・インターリーブパケット単位で深さ6及び周期4の畳み込みデインターリーブを施し、複数個のバイト・インターリーブパケットBIP’から構成されるバイト・インターリーブデータBID’を生成する。このとき、パケット・デインターリーバ24は、パケット・インターリーバ13によって値が置換されたシンクバイトに基づいて、アンパケット化部23から供給されたパケット・インターリーブデータPID’における先頭のパケットの同期をとり、バイト・インターリーブパケット単位で畳み込みデインターリーブを施す。
【0077】
また、パケット・インターリーブパケットPIP’が、上述したように108個のバイト・インターリーブパケットで完結する深さ6のブロックインターリーブを行って生成されているとき、108個のバイト・インターリーブパケットで完結する深さ6のブロックデインターリーブを施し、複数個のバイト・インターリーブパケットBIP’から構成されるバイト・インターリーブデータBID’を生成する。このとき、パケット・デインターリーバ24は、パケット・インターリーバ13によって値が置換されたシンクバイトに基づいて、アンパケット化部23から供給されたパケット・インターリーブデータPID’におけるインターリーブブロックの先頭の検出やパケットの同期をとり、バイト・インターリーブパケット単位でブロックデインターリーブを施す。
【0078】
具体的には、パケット・デインターリーバ24は、パケット・インターリーバ13と同様に、プログラマブルデバイスとして実装される各部に対して外付けとされるSDRAM27と、このSDRAM27に対するデータの書き込み及び読み出しを行うためのアドレス生成やデータの授受等の処理を行うインターフェース部28とから構成される。パケット・デインターリーバ24は、インターフェース部28に入力されたパケット・インターリーブデータPID’を所定の書き込みアドレスにしたがって順次SDRAM27に転送して書き込み、このSDRAM27に書き込んだデータを書き込みアドレスとは異なる所定の読み出しアドレスにしたがって順次読み出すことにより、アンパケット化部23から供給されたパケット・インターリーブデータPID’に対してデインターリーブを施す。
【0079】
このとき、パケット・デインターリーバ24は、パケット連続性検証部22から供給された検証結果情報CKに基づいて、パケット・インターリーブデータPID’が不連続である場合に対応することができる。例えば、パケット・デインターリーバ24は、検証結果情報CKに基づいて、通信路上で1つの上位レイヤパケットULP’が欠落していたことを把握した場合には、SDRAM27にデータを書き込む際に、1つの上位レイヤパケットULP’に相当する6個のパケット・インターリーブパケットPIP’を記憶するだけの領域をスキップしてデータを書き込む一方で、所定の読み出しアドレスにしたがった通常のデインターリーブ動作によってデータを読み出す。このような動作によってSDRAM27から読み出されたデータは、欠落したパケットに対応する部分が前タイムスロットに同じ読み出しアドレスから読み出されたデータ、すなわち、無効データに置換されたものとなる。
【0080】
パケット・デインターリーバ24は、このような動作を行って得られたデータのうち、パケット・インターリーバ13によって置換されたシンクバイトの値”0xB7,0xB8”を元の”0x47”に戻し、最終的に出力するバイト・インターリーブデータBID’を生成する。パケット・デインターリーバ24は、生成した複数個のバイト・インターリーブパケットBIP’から構成されるバイト・インターリーブデータBID’を後段のバイト・デインターリーバ25に供給する。なお、パケット・デインターリーバ24は、通信路上で発生するジッタの吸収等の目的を果たすために受信バッファとしての機能も兼ね備えることから、SDRAM27の容量は、少なくとも144個(深さ6及び周期4の畳み込みデインターリーブを行うの場合)あるいは216個(108個のバイト・インターリーブパケットで完結する深さ6のブロックデインターリーブを行う場合)のパケット・インターリーブパケットPIP’を記憶できる容量に加え、当該目的を果たすために必要な若干量を有するものであれば足りる。
【0081】
バイト・デインターリーバ25は、符号化器10におけるバイト・インターリーバ12に対応して設けられるものであり、バイト・インターリーバ12によって畳み込みインターリーブが施されたバイト・インターリーブデータBIDの順序を、それぞれ、元の符号化データEDを構成する符号化パケットEPの順序に戻すように、パケット・デインターリーバ24から供給されたバイト・インターリーブデータBID’を構成するバイト・インターリーブパケットBIP’のそれぞれに対して、デインターリーブを施し、複数個の符号化パケットEP’から構成される符号化データED’を生成する。例えばバイト・インターリーブデータBID’を構成するバイト・インターリーブパケットBIP’が、上述のようにバイト単位で深さ18及び周期12の畳み込みインターリーブを行って生成されているとき、バイト単位で深さ18及び周期12の畳み込みデインターリーブを施し、複数個の符号化パケットEP’から構成される符号化データED’を生成する。また、バイト・インターリーブデータBID’を構成するバイト・インターリーブパケットBIP’が、上述のように4バイト単位で深さ18及び周期3の畳み込みインターリーブを行って生成されているとき、4バイト単位で深さ18及び周期3の畳み込みデインターリーブを施し、複数個の符号化パケットEP’から構成される符号化データED’を生成する。
【0082】
具体的には、バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、バイト単位で高速にランダムアクセスすることが可能なDPRAMやこのDPRAMに対するデータの書き込み及び読み出しを行うためのアドレス生成部等から構成される。バイト・デインターリーバ25は、入力されたバイト・インターリーブデータBID’を所定の書き込みアドレスにしたがって順次DPRAMに転送して書き込み、このDPRAMに書き込んだデータを書き込みアドレスとは異なる所定の読み出しアドレスにしたがって順次読み出すことにより、パケット・デインターリーバ24から供給されたバイト・インターリーブデータBID’に対して畳み込みデインターリーブを施す。
【0083】
このようなバイト・デインターリーバ25は、生成した複数個の符号化パケットEP’から構成される符号化データED’を後段のリード・ソロモン復号部26に供給する。このバイト・デインターリーバ25によって畳み込みデインターリーブが施された符号化データED’は、例えば通信路上で1つの上位レイヤパケットULP’が欠落していた場合には、18×6=108個の符号化パケットEP’のそれぞれに対して12バイトずつのエラーデータが含まれた状態となる。
【0084】
なお、このバイト・デインターリーバ25は、バイト・インターリーバ12と同様に、所定のアドレス生成方式にしたがってアドレス制御を行うことにより、畳み込みデインターリーブを行うのに必要なメモリ、すなわち、DPRAMの容量の削減を図ることができるが、これについては、後述するものとする。
【0085】
リード・ソロモン復号部26は、符号化器10におけるリード・ソロモン
符号化部11に対応して設けられるものであり、バイト・デインターリーバ25から供給された符号化データED’を構成する符号化パケットEP’のそれぞれに対して、リード・ソロモン符号の復号を施し、複数個のトランスポートパケットTSPから構成されるトランスポートストリームTSを復元する。具体的には、リード・ソロモン復号部26は、216バイトからなる符号化パケットEP’のそれぞれに含まれる28バイトからなるパリティとしての誤り訂正符号を用いて誤り訂正を行い、188バイトからなるトランスポートパケットTSPから構成されるトランスポートストリームTSを復元して出力する。このリード・ソロモン復号部26は、例えば通信路上で1つの上位レイヤパケットULP’が欠落していた場合には、任意の符号化パケットEP’に含まれる最大のエラーバイト数が12バイトであり、誤り訂正限界バイト数である14バイト以下であることから、全てのビットを完全に訂正することができる。
【0086】
このような各部を有する復号器20は、所定の通信路を介して受信した受信データRDから、符号化器10に情報系列として入力されたトランスポートストリームTSを完全に復元して出力する。図11A〜図11Eは、パケット・インターリーバでパケット単位の畳み込みインターリーブ処理が行われたとき、復号器20が有する各部におけるパケットフォーマットの推移を説明するための図である。また、図12A〜図12Fは、パケット・インターリーバでパケット単位のブロックインターリーブ処理が行われたとき、復号器20が有する各部におけるパケットフォーマットの推移を説明するための図である。
【0087】
すなわち、復号器20は、受信部21によって受信データRDを受信して図11A(図12A)に示すパケットデータPD’を生成すると、これらのパケットデータPD’のそれぞれをアンパケット化部23によって分割し、図11B(図12B)に示す複数個のパケット・インターリーブパケットPIP’から構成されるパケット・インターリーブデータPID’を生成する。ここで、受信データRDは、通信路上で1つの上位レイヤパケットULP’の欠落が発生したものであるとし、この欠落した上位レイヤパケットULP’に対応するパケットデータPD’及びパケット・インターリーブパケットPIP’を図11A(図12A),図11B(図12B)における横線部で示すものとする。
【0088】
このとき、符号化器10において生成された1つの符号化パケットEPに含まれる情報は、パケット単位の畳み込みインターリーブ処理が行われたとき、図11A,図11Bにおける斜線部に示すように、連続する144個のパケット・インターリーブパケットPIP’に離散的に分散され、且つ、12バイトずつの情報が少なくとも6個のパケット・インターリーブパケットPIP’の間隔を空けて分散されている状態である。
【0089】
復号器20は、パケット・インターリーブパケットPIP’のそれぞれに対して、パケット・デインターリーバ24によってパケット単位で畳み込みデインターリーブを施すことにより、符号化器10において生成された1つの符号化パケットEPに含まれる情報を、図11Cの斜線部及び横線部に示す連続する18個のバイト・インターリーブパケットBIP’に12バイトずつ分散した複数個のバイト・インターリーブパケットBIP’から構成されるバイト・インターリーブデータBID’を生成する。このとき、復号器20は、パケット連続性検証部22による検証結果情報CKに基づいて、欠落した上位レイヤパケットULP’に対応するデータを無効データに置換し、図11Cにおける”?”が付された横線部で示すバイト・インターリーブパケットBIP’を含むバイト・インターリーブデータBID’を生成する。
【0090】
さらに、復号器20は、バイト・インターリーブパケットBIP’のそれぞれに対して、図11Dに示すように、バイト・デインターリーバ25によって畳み込みデインターリーブを施すことにより、複数個の符号化パケットEP’から構成される符号化データED’を生成する。これにより、欠落した1つの上位レイヤパケットULP’による216×6=1296バイトもの極めて大きなバーストエラーは、図11Dにおけるクロスハッチ部に示すように、各符号化パケットEP’に分散されたせいぜい12バイトのランダムエラーとして扱うことが可能となる。
【0091】
また、符号化器10において生成された1つの符号化パケットEPに含まれる情報は、パケット単位のブロックインターリーブ処理が行われたとき、図12A,図12Bにおける斜線部に示すように、連続する108個のパケット・インターリーブパケットPIP’に離散的に分散され、且つ、インターリーブブロックの先頭から連続する6パケット・インターリーブパケットPIP毎のグループに、12バイトずつの情報がそれぞれ1つずつ分散されている状態である。
【0092】
復号器20は、パケット・インターリーブパケットPIP’のそれぞれに対して、パケット・デインターリーバ24によってパケット単位でブロックデインターリーブを施す。ここで、パケット単位でブロックデインターリーブを施す際には、シンクバイトを利用して、パケット・インターリーブデータPID’におけるインターリーブブロックの先頭やRTPパケットを検出する。図12Bは、シンクバイトの検出結果を示しており、「B」がインターリーブブロックの開始を示しており、「P」がRTPパケットの先頭位置を示している。
【0093】
パケット・デインターリーバ24は、図12Cに示すように、検出されたインターリーブブロックの開始から108個のパケット・インターリーブパケットPIP’を用いてブロックデインターリーブを施すことにより、符号化器10において生成された1つの符号化パケットEPに含まれる情報を、図12Dの斜線部及び横線部に示すように、連続する18個のバイト・インターリーブパケットBIP’に12バイトずつ分散した複数個のバイト・インターリーブパケットBIP’から構成されるバイト・インターリーブデータBID’を生成する。このとき、復号器20は、パケット連続性検証部22による検証結果情報CKに基づいて、欠落した上位レイヤパケットULP’に対応するデータを無効データに置換し、図12Dにおける”?”が付された横線部で示すバイト・インターリーブパケットBIP’を含むバイト・インターリーブデータBID’を生成する。
【0094】
さらに、復号器20は、バイト・インターリーブパケットBIP’のそれぞれに対して、図12Dに示すように、バイト・デインターリーバ25によって畳み込みデインターリーブを施すことにより、複数個の符号化パケットEP’から構成される符号化データED’を生成する。これにより、欠落した1つの上位レイヤパケットULP’による216×6=1296バイトもの極めて大きなバーストエラーは、図12Eにおけるクロスハッチ部に示すように、各符号化パケットEP’に分散されたせいぜい12バイトのランダムエラーとして扱うことが可能となる。
【0095】
なお、図11A,図11Bの斜線部で示してきた分散された情報は、図11Eにおける黒マスで示すように、1つのトランスポートパケットTSPに集約されることになる。また、図12A,図12Bの斜線部で示してきた分散された情報は、図12Fにおける黒マスで示すように、1つのトランスポートパケットTSPに集約されることになる。
【0096】
そして、復号器20は、図11E,図12Fに示すように、リード・ソロモン復号部26によってリード・ソロモン符号の復号を施すことにより、完全にエラーが訂正された複数個のトランスポートパケットTSPから構成されるトランスポートストリームTSを生成する。
【0097】
このように、復号器20は、最大で1つの上位レイヤパケットULP’に含まれる情報にバーストエラーが発生した状態とされる受信データRDを受信した場合であっても、このバーストエラーを完全に訂正することができる。このとき、復号器20は、符号化器10によって生成された送信データTDにおける1つの上位レイヤパケットULPが通信路上で欠落した状態とされる複数個の上位レイヤパケットULP’から構成される受信データRDを受信した場合であっても、存在しない欠落したデータを無効データに置換することにより、バーストエラーとみなすことができ、欠落した上位レイヤパケットULP’に対応する情報を完全に復元することができる。
【0098】
また、復号器20は、符号化器10と同様に、バイト・デインターリーバ25をプログラマブルデバイスに内蔵される容量の小さなDPRAMを用いて実装するとともに、パケット・デインターリーバ24をプログラマブルデバイスに外付けとされる比較的容量の大きなSDRAM27を用いて実装することにより、プログラマブルデバイスの内部に設けられるメモリ資源を節約することができるとともに、SDRAM27に対するバーストアクセスによる周辺回路の単純化を図ることができる。このように、復号器20は、DPRAM及びSDRAM27を用いた2段階のデインターリーブを行うことにより、符号化器10と同様に、これらのメモリの弱点を補完的に回避することができ、パケット単位でデインターリーブを行う際に、プログラマブルデバイスに内蔵される容量が小さなDPRAMを用いるのではなく外付けとされるSDRAM27を用いることにより、コストの削減を図ることができ、SDRAM27に対してパケット単位でアクセスすることによって高速動作を行うこともできる。
【0099】
さて、符号化器10におけるバイト・インターリーバ12、及び復号器20におけるバイト・デインターリーバ25は、それぞれ、上述したように、所定のアドレス生成方式にしたがってアドレス制御を行うことにより、バイト単位あるいはユニット単位での畳み込みインターリーブ及び畳み込みデインターリーブを行うのに必要なメモリ容量を削減することができる。以下、これについて詳述する。
【0100】
メモリとしてDPRAMを用いてバイト単位あるいはユニット単位で畳み込みインターリーブ又は畳み込みデインターリーブを行う際には、DPRAMの書き込み側で畳み込みインターリーブ又は畳み込みデインターリーブを行うためのデータの並べ替えを行う一方で、読み出し側でDPRAMの先頭アドレスから順次1パケットずつ読み出すのが通常である。また、これとは逆に、書き込み側でDPRAMの先頭アドレスから順次1パケットずつ書き込む一方で、DPRAMの読み出し側で畳み込みインターリーブ又は畳み込みデインターリーブを行うためのデータの並べ替えを行うことにより、バイト単位あるいはユニット単位で畳み込みインターリーブ又は畳み込みデインターリーブを行うこともできる。したがって、DPRAMは、既に畳み込みインターリーブ又は畳み込みデインターリーブを行うために使用されてデータが読み出された領域があっても、データの読み出しの直後にこの領域を使用することがなく、畳み込みインターリーブ又は畳み込みデインターリーブを行うために確保した領域のうち約半分の領域が使用されない状態となる。
【0101】
そこで、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、DPRAMにおけるある領域からデータ読み出した場合には、次に書き込むデータをこの領域に対して書き込むことにより、畳み込みインターリーブ又は畳み込みデインターリーブを実現する。すなわち、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、DPRAMの領域のうち使用済みとされる無駄な領域をなくし、確保した領域に対して、今後畳み込みインターリーブ又は畳み込みデインターリーブを行うために使用される有意なデータのみを常に記憶しておくようにする。これにより、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、畳み込みインターリーブ又は畳み込みデインターリーブを行うために必要とするDPRAMの容量を最小限に抑制することができる。
【0102】
このようなDPRAMに対するデータの書き込み動作及び読み出し動作を実現するために、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、図13A乃至図24を用いて説明するアドレス生成方式にしたがったアドレス制御を行う。
【0103】
以下、バイト単位およびユニット単位でインターリーブおよびデインターリーブを行う場合について説明する。なお、説明を簡便化するために、バイト単位でインターリーブおよびデインターリーブを行う場合には、バイト・インターリーバ12によって12バイトからなる符号化パケットEPに対して深さ4及び周期3の畳み込みインターリーブを施し、12バイトからなるバイト・インターリーブデータBIDを生成するとともに、バイト・デインターリーバ25によってバイト・インターリーブデータBID’に対して深さ4及び周期3の畳み込みデインターリーブを施し、12バイトからなる符号化パケットEP’を生成するものとして説明する。また、ユニット単位でインターリーブおよびデインターリーブを行う場合には、バイト・インターリーバ12によって、24バイトからなる符号化パケットEPに対して2バイトを1ユニットとして、ユニット単位で深さ4及び周期3の畳み込みインターリーブを施し、24バイトからなるバイト・インターリーブデータBIDを生成するとともに、バイト・デインターリーバ25によってバイト・インターリーブデータBID’に対して深さ4及び周期3の畳み込みデインターリーブをユニット単位で施し、24バイトからなる符号化パケットEP’を生成するものとして説明する。
【0104】
ここで、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、通常であれば、畳み込みインターリーブ又は畳み込みデインターリーブの深さと入力した1パケットあたりのバイト数との積で表されるバイト数、例えば上述のように12バイトからなる符号化パケットEPに対して深さ4及び周期3の畳み込みインターリーブおよび畳み込みデインターリーブを行う場合、12×4=48バイトの容量を有するメモリを用いて実装する必要があるところ、この容量よりも小さい容量を有するメモリを用いて実装可能とするものである。
【0105】
まず、バイト単位で処理を行う場合の動作を説明する。バイト・インターリーバ12は、ある符号化パケットEPを構成する各バイトが、畳み込みインターリーブが施されることによって当該バイトが属するパケットからどれほど遅延したパケットに格納されるかに応じて各バイトを分類する。さらに、これらの分類されたバイトをまとめてDPRAMにおけるメモリマップ上で連続したアドレスに管理する。ここで、あるバイトが属するパケットからの遅延パケット数をディレイ(Delay)と称し、遅延パケット数が等しいバイト群をディレイ・グループ(Delay Group)と称するものとする。すなわち、バイト・インターリーバ12は、任意の符号化パケットEPを構成する各バイトについて、当該符号化パケットEPに対する、畳み込みインターリーブが施されることによって当該バイトが格納されるバイト・インターリーブパケットBIPの遅延数である遅延パケット数が等しいバイト群をディレイ・グループとしてまとめて分類する。さらに、このディレイ・グループ毎にDPRAMにおける連続するアドレスに対して書き込み及び読み出しを行うように書き込みアドレス及び読み出しアドレスを生成して、ディレイ・グループ毎にデータを扱う。
【0106】
ある符号化パケットEPを構成する各バイトをこのようなディレイ・グループに分類するために、バイト・インターリーバ12は、アドレス生成部として、図示しないが、DPRAMに対するデータの書き込み及び読み出しを行うのに用いる書き込みアドレス及び読み出しアドレスの算出を補助するための2つの補助カウンタを設ける。具体的には、図13Aに示すように、入力される12バイトからなる符号化パケットEPのそれぞれに対して0,1,2,3,・・・といったパケット番号を付すとともに、図13Bに示すように、各符号化パケットEPを構成する各バイトに対して0〜11のバイト番号を付すものとすると、バイト・インターリーバ12は、図13Cに示すように、バイト番号に対応して畳み込みインターリーブの深さ4に対応したカウント値cnt_del(0〜3)をインクリメントしてパケット毎に計数する第1のカウンタと、図13Dに示すように、第1のカウンタの周期に対応したカウント値cnt_block(0〜2)をインクリメントしてパケット毎に計数する第2のカウンタとを、補助カウンタとして設ける。
【0107】
ここで、第1のカウンタによって計数されるカウント値cnt_delは、上述した遅延パケット数、すなわち、ディレイを表すものであり、第2のカウンタによって計数されるカウント値cnt_blockは、第1のカウンタの周期を1ブロックとしたときのブロック数を表すものである。
【0108】
バイト・インターリーバ12は、このような第1のカウンタによって計数されるカウント値cnt_delと、第2のカウンタによって計数されるカウント値cnt_blockとを用いて、DPRAMに対するデータの書き込み及び読み出しを制御し、符号化パケットEPに対して畳み込みインターリーブを施す。このとき、バイト・インターリーバ12は、畳み込みインターリーブを施す符号化パケットEPを入力すると、即座にDPRAMに対するデータの書き込みを開始する一方、DPRAMからのデータの読み出しについては、データの書き込みと同時に開始するか、又は所定の固定クロック数だけ遅延して開始する。バイト・インターリーバ12は、ある符号化パケットEPを入力した場合には、DPRAMに書き込まれた有意なデータを読み出す前に、他のデータによって当該有意なデータが上書きされるのを回避するために、DPRAMに対するデータの書き込み後、次の符号化パケットEPが入力される前に、全てのデータの読み出しを完了する必要がある。
【0109】
具体的には、バイト・インターリーバ12は、例えば図14A〜図14Dに示すように、DPRAMに対するディレイ・グループ毎に分類されたバイト群の書き込み及び読み出しを行う。なお、ここでは、カウント値cnt_delが”0”であるときに対応する3バイトからなるパケット番号毎のバイト群をディレイ・グループdel0と称し、カウント値cnt_delが”1”であるときに対応する3バイトからなるパケット番号毎のバイト群をディレイ・グループdel1と称し、カウント値cnt_delが”2”であるときに対応する3バイトからなるパケット番号毎のバイト群をディレイ・グループdel2と称し、カウント値cnt_delが”3”であるときに対応する3バイトからなるパケット番号毎のバイト群をディレイ・グループdel3と称するものとする。また、図14B〜図14Dにおいては、パケット番号が”n”とされる符号化パケットEPにおけるディレイ・グループdel0,del1,del2,del3を、それぞれ、”n−0”,n−1”,”n−2”,”n−3”と記述するものとする。
【0110】
すなわち、バイト・インターリーバ12は、畳み込みインターリーブを施すための準備として、図14Bの左から1番目における太横線で示すように、第1のカウンタ及び第2のカウンタのリセット解除時におけるDPRAMのアドレスであって当該DPRAMに対してデータの書き込み及び読み出しを行う先頭を示す基準アドレスaddr_baseを”0”といった所定の初期値に設定する。その後、図14Aに示すパケットの番号の左から1番目に示すように、パケット番号が”0”とされる符号化パケットEPを入力すると、図14Bの左から1番目に示すように、この符号化パケットEPを構成する各バイトを、第1のカウンタによるカウント値cnt_delに基づいて、3バイトからなる4つのディレイ・グループdel0(0−0),del1(0−1),del2(0−2),del3(0−3)に分類する。すなわち、パケット番号「0」におけるバイト番号「0,4,8」のバイトはdel0(0−0)、バイト番号「1,5,9」のバイトはdel1(0−1),バイト番号「2,6,10」はdel2(0−2),バイト番号「3,7,11」のバイトはdel3(0−3)にそれぞれ分類されることとなる。
【0111】
そして、バイト・インターリーバ12は、図14Cの左から1番目に示すように、これらの4つのディレイ・グループdel0(0−0),del1(0−1),del2(0−2),del3(0−3)のうち、ディレイ・グループdel0(0−0)に属する各バイトについては、DPRAMに書き込まず、ディレイ・グループdel1(0−1)に属する各バイトについては、DPRAMにおける上述した基準アドレスaddr_baseの2ブロック後の領域w1に書き込み、ディレイ・グループdel2(0−2)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3)ブロック後の領域w2に書き込み、ディレイ・グループdel3(0−3)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3+4)ブロック後の領域、すなわち、先頭へと巡回した領域w3に書き込むように、書き込みアドレスを生成する。
【0112】
また、バイト・インターリーバ12は、このようなDPRAMに対する書き込み動作とともに、読み出し動作も行う。すなわち、バイト・インターリーバ12は、DPRAMに書き込まれている4つのディレイ・グループdel0,del1,del2,del3のうち、ディレイ・グループdel0に属する各バイトについては、DPRAMに書き込まれないのでそのまま用いる。また、ディレイ・グループdel1に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの1ブロック後の領域r1から読み出し、ディレイ・グループdel2に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2)ブロック後の領域r2から読み出し、ディレイ・グループdel3に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2+3)ブロック後の領域r3から読み出すように、読み出しアドレスを生成する。ただし、バイト・インターリーバ12は、ここでは、領域r1,r2,r3のいずれにもデータが書き込まれていない状態であることから、実際には、読み出すべきデータがないことになる。
【0113】
これにより、バイト・インターリーバ12は、図14Dの左から1番目に示すように、ディレイ・グループdel0(0−0)として分類された各バイトからなるデータを出力することになる。
【0114】
続いて、バイト・インターリーバ12は、次の符号化パケットEPを入力する準備として、図14Bの左から2番目における太横線で示すように、基準アドレスaddr_baseを1ブロック分だけ進めた上で、図14Aの左から2番目に示すように、パケット番号が”1”とされる次の符号化パケットEPを入力すると、図14Bの左から2番目に示すように、この符号化パケットEPを構成する各バイトを、第1のカウンタによるカウント値cnt_delに基づいて、3バイトからなる4つのディレイ・グループdel0(1−0),del1(1−1),del2(1−2),del3(1−3)に分類する。
【0115】
そして、バイト・インターリーバ12は、図14Cの左から2番目に示すように、これらの4つのディレイ・グループdel0(1−0),del1(1−1),del2(1−2),del3(1−3)のうち、ディレイ・グループdel0(1−0)に属する各バイトについては、DPRAMに書き込まず、ディレイ・グループdel1(1−1),del2(1−2),del3(1−3)に属する各バイトは、符号化パケットEPが入力される前に読み出しが行われた領域に書き込む。すなわち、ディレイ・グループdel1(1−1)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの2ブロック後の領域w1(=1つ前のパケットの番号における領域r2)に書き込み、ディレイ・グループdel2(1−2)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3)ブロック後の領域w2(=1つ前のパケットの番号における領域r3)に書き込み、ディレイ・グループdel3(1−3)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3+4)ブロック後の領域、すなわち、先頭へと巡回した領域w3(=1つ前のパケットの番号における領域r1)に書き込むように、書き込みアドレスを生成する。
【0116】
また、バイト・インターリーバ12は、DPRAMに書き込まれている4つのディレイ・グループdel0,del1,del2,del3のうち、ディレイ・グループdel0に属する各バイトについては、DPRAMに書き込まれないのでそのまま用いる。また、ディレイ・グループdel1に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの1ブロック後の領域r1から読み出し、ディレイ・グループdel2に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2)ブロック後の領域r2から読み出し、ディレイ・グループdel3に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2+3)ブロック後の領域r3から読み出すように、読み出しアドレスを生成する。ここで、バイト・インターリーバ12は、領域r2,r3にはデータが書き込まれていないが、領域r1はパケット番号が”0”の符号化パケットEPを入力したときにおける領域w1と同じ領域であり、ディレイ・グループdel1(0−1)が書き込まれていることから、実際には、このディレイ・グループdel1(0−1)のみを読み出すことになる。
【0117】
これにより、バイト・インターリーバ12は、図14Dの左から2番目に示すように、ディレイ・グループdel0(1−0),del1(0−1)として分類された各バイトからなるデータを出力することになる。
【0118】
続いて、バイト・インターリーバ12は、次の符号化パケットEPを入力する準備として、図14Bの左から3番目における太横線で示すように、基準アドレスaddr_baseをさらに1ブロック分だけ進めた上で、図14Aの左から3番目に示すように、パケット番号が”2”とされる次の符号化パケットEPを入力すると、図14Bの左から3番目に示すように、この符号化パケットEPを構成する各バイトを、第1のカウンタによるカウント値cnt_delに基づいて、3バイトからなる4つのディレイ・グループdel0(2−0),del1(2−1),del2(2−2),del3(2−3)に分類する。
【0119】
そして、バイト・インターリーバ12は、図14Cの左から3番目に示すように、これらの4つのディレイ・グループdel0(2−0),del1(2−1),del2(2−2),del3(2−3)のうち、ディレイ・グループdel0(2−0)に属する各バイトについては、DPRAMに書き込まず、ディレイ・グループdel1(2−1)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの2ブロック後の領域w1に書き込み、ディレイ・グループdel2(2−2)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3)ブロック後の領域w2に書き込み、ディレイ・グループdel3(2−3)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3+4)ブロック後の領域、すなわち、先頭へと巡回した領域w3に書き込むように、書き込みアドレスを生成する。
【0120】
また、バイト・インターリーバ12は、DPRAMに書き込まれている4つのディレイ・グループdel0,del1,del2,del3のうち、ディレイ・グループdel0に属する各バイトについては、DPRAMに書き込まれないのでそのまま用いる。また、ディレイ・グループdel1に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの1ブロック後の領域r1から読み出し、ディレイ・グループdel2に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2)ブロック後の領域r2から読み出し、ディレイ・グループdel3に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2+3)ブロック後の領域r3から読み出すように、読み出しアドレスを生成する。ここで、バイト・インターリーバ12は、領域r3にはデータが書き込まれていないが、領域r1はパケット番号が”1”の符号化パケットEPを入力したときにおける領域w1と同じ領域であり、さらに、領域r2はパケット番号が”0”の符号化パケットEPを入力したときにおける領域w2と同じ領域であり、ディレイ・グループdel1(1−1),del2(0−2)が書き込まれていることから、実際には、これらのディレイ・グループdel1(1−1),del2(0−2)のみを読み出すことになる。
【0121】
これにより、バイト・インターリーバ12は、図14Dの左から3番目に示すように、ディレイ・グループdel0(2−0),del1(1−1),del2(0−2)として分類された各バイトからなるデータを出力することになる。
【0122】
同様に、バイト・インターリーバ12は、次の符号化パケットEPを入力する準備として、図14Bの左から4番目における太横線で示すように、基準アドレスaddr_baseをさらに1ブロック分だけ進めた上で、図14Aの左から4番目に示すように、パケット番号が”3”とされる次の符号化パケットEPを入力すると、図14Bの左から4番目に示すように、この符号化パケットEPを構成する各バイトを、第1のカウンタによるカウント値cnt_delに基づいて、3バイトからなる4つのディレイ・グループdel0(3−0),del1(3−1),del2(3−2),del3(3−3)に分類する。
【0123】
そして、バイト・インターリーバ12は、図14Cの左から4番目に示すように、これらの4つのディレイ・グループdel0(3−0),del1(3−1),del2(3−2),del3(3−3)のうち、ディレイ・グループdel0(3−0)に属する各バイトについては、DPRAMに書き込まず、ディレイ・グループdel1(3−1)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの2ブロック後の領域w1に書き込み、ディレイ・グループdel2(3−2)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3)ブロック後の領域w2に書き込み、ディレイ・グループdel3(3−3)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3+4)ブロック後の領域、すなわち、先頭へと巡回した領域w3に書き込むように、書き込みアドレスを生成する。
【0124】
なお、この段階でのDPRAMにおける各アドレスにマッピングされたデータを詳細に示すと、図15に示すようになる。すなわち、バイト・インターリーバ12においては、アドレス0からアドレス2までの3バイト分のブロックを記憶可能な領域については、パケット番号が”0”であり且つ遅延パケット数が”3”であるディレイ・グループdel3(0−3)が記憶され、このうち、アドレス0の領域にはバイト番号が”3”のデータが記憶され、アドレス1の領域にはバイト番号が”7”のデータが記憶され、アドレス2の領域にはバイト番号が”11”のデータが記憶されるといったように、各ディレイ・グループに属する各バイトが、連続するアドレスに対してバイト番号が小さいものから書き込まれる。
【0125】
また、バイト・インターリーバ12は、図14Cの左から4番目に示すように、DPRAMに書き込まれている4つのディレイ・グループdel0,del1,del2,del3のうち、ディレイ・グループdel0に属する各バイトについては、DPRAMに書き込まれないのでそのまま読み出し、ディレイ・グループdel1に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの1ブロック後の領域r1から読み出し、ディレイ・グループdel2に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2)ブロック後の領域r2から読み出し、ディレイ・グループdel3に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2+3)ブロック後の領域r3から読み出すように、読み出しアドレスを生成する。ここで、バイト・インターリーバ12は、領域r1はパケット番号が”2”の符号化パケットEPを入力したときにおける領域w1と同じ領域であり、また、領域r2はパケット番号が”1”の符号化パケットEPを入力したときにおける領域w2と同じ領域であり、さらに、領域r3はパケット番号が”0”の符号化パケットEPを入力したときにおける領域w3と同じ領域であり、ディレイ・グループdel1(2−1),del2(1−2),del3(0−3)が書き込まれていることから、実際には、これらのディレイ・グループdel1(2−1),del2(1−2),del3(0−3)を読み出すことになる。
【0126】
これにより、バイト・インターリーバ12は、図14Dの左から4番目に示すように、ディレイ・グループdel0(3−0),del1(2−1),del2(1−2),del3(0−3)として分類された各バイトからなるデータを出力することになる。
【0127】
このように、バイト・インターリーバ12は、符号化パケットEPが入力される毎に各バイトをディレイ・グループに分類し、上述したアドレス生成方式にしたがった書き込みアドレス及び読み出しアドレスに基づいて、ディレイ・グループ毎にDPRAMにおけるメモリマップ上で連続したアドレスに管理された書き込み及び読み出しを行う。これにより、バイト・インターリーバ12は、読み出しが行われてインターリーブが完了したデータの記憶領域を次のデータの書き込み領域として、即座に次のデータを書き込むことができる。すなわち、DPRAMの領域のうち使用済みとされる無駄な領域(インターリーブが完了したデータが書き込まれたままとなっている領域)をなくすことができ、必要とするDPRAMの容量を最小限に抑制することができる。この場合、バイト・インターリーバ12は、通常であれば、畳み込みインターリーブの深さD=4と入力した1パケットあたりのバイト数N=12との積、すなわち、D×N=4×12=48バイトの容量を有するDPRAMを必要とするところ、上述したアドレス制御を行うことにより、図14Cに示すように、9個の3バイトからなる領域、すなわち、27バイトの容量を有するDPRAMを用いるのみで、同様の畳み込みインターリーブを行うことができる。また、バイト・インターリーバ12は、分類したディレイ・グループ毎に連続するアドレスに対して書き込み、また、この連続するアドレスに対して書き込まれたディレイ・グループ毎に読み出しを行うことにより、書き込みアドレス及び読み出しアドレスの算出を容易に行うことができる。
【0128】
つぎに、バイト・デインターリーバ25について説明する。
バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、あるバイト・インターリーブパケットBIP’を構成する各バイトをディレイ・グループに分類してこのディレイ・グループ毎にデータを扱い、バイト・インターリーバ12とは対称なアドレス制御を行うことにより、畳み込みデインターリーブを行う。
【0129】
すなわち、バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、アドレス生成部として、図示しないが、DPRAMに対するデータの書き込み及び読み出しを行うのに用いるアドレスの算出を補助するための2つの補助カウンタを設ける。具体的には、図16Aに示すように、入力される12バイトからなるバイト・インターリーブパケットBIP’のそれぞれに対して0,1,2,3,・・・といったパケット番号を付すとともに、図16Bに示すように、各バイト・インターリーブパケットBIP’を構成する各バイトに対して0〜11のバイト番号を付すものとすると、バイト・デインターリーバ25は、図16Cに示すように、バイト番号に対応して畳み込みデインターリーブの深さ4に対応したカウント値cnt_del(0〜3)をデクリメントしてパケット毎に計数する第1のカウンタと、図16Dに示すように、第1のカウンタの周期に対応したカウント値cnt_block(0〜2)をインクリメントしてパケット毎に計数する第2のカウンタとを、補助カウンタとして設ける。なお、バイト・インターリーバ12と異なる点は、第1のカウンタによって計数されるカウント値cnt_delが、インクリメントされるのではなく、デクリメントされることである。
【0130】
バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、このような第1のカウンタによって計数されるカウント値cnt_delと、第2のカウンタによって計数されるカウント値cnt_blockとを用いて、DPRAMに対するデータの書き込み及び読み出しを制御し、バイト・インターリーブパケットBIP’に対して畳み込みデインターリーブを施す。バイト・デインターリーバ25は、畳み込みデインターリーブを施すバイト・インターリーブパケットBIP’を入力すると、即座にDPRAMに対するデータの書き込みを開始する一方、DPRAMからのデータの読み出しについては、データの書き込みと同時に開始するか、又は所定の固定クロック数だけ遅延して開始する。バイト・デインターリーバ25は、あるバイト・インターリーブパケットBIP’を入力した場合には、DPRAMに書き込まれた有意なデータを読み出す前に、他のデータによって当該有意なデータが上書きされるのを回避するために、DPRAMに対するデータの書き込み後、次のバイト・インターリーブパケットBIP’が入力される前に、全てのデータの読み出しを完了する必要がある。
【0131】
具体的には、バイト・デインターリーバ25は、バイト・インターリーバ12から出力されるデータ配列からなるバイト・インターリーブパケットBIP’を入力するものとすると、例えば図17A〜図17Dに示すように、DPRAMに対するディレイ・グループ毎に分類されたバイト群の書き込み及び読み出しを行う。なお、ここでも、先に示した図14Bと同様に、カウント値cnt_delが”0”であるときに対応する3バイトからなるパケット番号毎のバイト群をディレイ・グループdel0と称し、カウント値cnt_delが”1”であるときに対応する3バイトからなるパケット番号毎のバイト群をディレイ・グループdel1と称し、カウント値cnt_delが”2”であるときに対応する3バイトからなるパケット番号毎のバイト群をディレイ・グループdel2と称し、カウント値cnt_delが”3”であるときに対応する3バイトからなるパケット番号毎のバイト群をディレイ・グループdel3と称するものとする。
【0132】
すなわち、バイト・デインターリーバ25は、畳み込みデインターリーブを施すための準備として、図17Bの左から1番目における太横線で示すように、第1のカウンタ及び第2のカウンタのリセット解除時におけるDPRAMのアドレスであって当該DPRAMに対してデータの書き込み及び読み出しを行う先頭を示す基準アドレスaddr_baseを”0”といった所定の初期値に設定する。その後、図17Aに示すパケットの番号の左から1番目に示すように、パケット番号が”0”とされるバイト・インターリーブパケットBIP’を入力すると、図17Bの左から1番目に示すように、このバイト・インターリーブパケットBIP’を構成する各バイトを、第1のカウンタによるカウント値cnt_delに基づいて、3バイトからなる4つのディレイ・グループdel0(0−3),del1(1−2),del2(2−1),del3(3−0)に分類する。
【0133】
なお、図17Bにおいては、先に示した図14Bと異なり、第1のカウンタによるカウント値cnt_delと、”n−m”と記述されるディレイ・グループの”m”の値とが一致しないが、これは、バイト・インターリーブパケットBIP’に対して畳み込みデインターリーブを施すことによって符号化パケットEPに対応する符号化パケットEP’が復元される様子を示すための便宜である。
【0134】
そして、バイト・デインターリーバ25は、図17Cの左から1番目に示すように、これらの4つのディレイ・グループdel0(0−3),del1(1−2),del2(2−1),del3(3−0)のうち、ディレイ・グループdel0(0−3)に属する各バイトについては、DPRAMに書き込まず、ディレイ・グループdel1(1−2)に属する各バイトについては、DPRAMにおける上述した基準アドレスaddr_baseの2ブロック後の領域w3に書き込み、ディレイ・グループdel2(2−1)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3)ブロック後の領域w2に書き込み、ディレイ・グループdel3(3−0)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3+4)ブロック後の領域、すなわち、先頭へと巡回した領域w1に書き込むように、書き込みアドレスを生成する。
【0135】
また、バイト・デインターリーバ25は、このようなDPRAMに対する書き込み動作とともに、読み出し動作も行う。すなわち、バイト・デインターリーバ25は、DPRAMに書き込まれている4つのディレイ・グループdel0,del1,del2,del3のうち、ディレイ・グループdel0に属する各バイトについては、DPRAMに書き込まれないのでそのまま用いる。また、ディレイ・グループdel1に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの1ブロック後の領域r3から読み出し、ディレイ・グループdel2に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2)ブロック後の領域r2から読み出し、ディレイ・グループdel3に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2+3)ブロック後の領域r1から読み出すように、読み出しアドレスを生成する。ただし、バイト・デインターリーバ25は、ここでは、領域r1,r2,r3のいずれにもデータが書き込まれていない状態であることから、実際には、読み出すべきデータがないことになる。
【0136】
これにより、バイト・デインターリーバ25は、図17Dの左から1番目に示すように、ディレイ・グループdel0(0−3)として分類された各バイトからなるデータを出力することになる。
【0137】
続いて、バイト・デインターリーバ25は、次のバイト・インターリーブパケットBIP’を入力する準備として、図17Bの左から2番目における太横線で示すように、基準アドレスaddr_baseを1ブロック分だけ進めた上で、図17Aの左から2番目に示すように、パケット番号が”1”とされる次のバイト・インターリーブパケットBIP’を入力すると、図17Bの左から2番目に示すように、このバイト・インターリーブパケットBIP’を構成する各バイトを、第1のカウンタによるカウント値cnt_delに基づいて、3バイトからなる4つのディレイ・グループdel0(1−3),del1(2−2),del2(3−1),del3(0−0)に分類する。
【0138】
そして、バイト・デインターリーバ25は、図17Cの左から2番目に示すように、これらの4つのディレイ・グループdel0(1−3),del1(2−2),del2(3−1),del3(0−0)のうち、ディレイ・グループdel0(1−3)に属する各バイトについては、DPRAMに書き込まず、del1(2−2),del2(3−1),del3(0−0)に属する各バイトは、符号化パケットEPが入力される前に読み出しが行われた領域に書き込む。すなわち、ディレイ・グループdel1(2−2)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの2ブロック後の領域w3(=1つ前のパケットの番号における領域r2)に書き込み、ディレイ・グループdel2(3−1)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3)ブロック後の領域w2(=1つ前のパケットの番号における領域r1)に書き込み、ディレイ・グループdel3(0−0)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3+4)ブロック後の領域、すなわち、先頭へと巡回した領域w1(=1つ前のパケットの番号における領域r3)に書き込むように、書き込みアドレスを生成する。
【0139】
また、バイト・デインターリーバ25は、DPRAMに書き込まれている4つのディレイ・グループdel0,del1,del2,del3のうち、ディレイ・グループdel0に属する各バイトについては、DPRAMに書き込まれないのでそのまま用いる。また、ディレイ・グループdel1に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの1ブロック後の領域r3から読み出し、ディレイ・グループdel2に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2)ブロック後の領域r2から読み出し、ディレイ・グループdel3に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2+3)ブロック後の領域r1から読み出すように、読み出しアドレスを生成する。ここで、バイト・デインターリーバ25は、領域r1,r2にはデータが書き込まれていないが、領域r3はパケット番号が”0”のバイト・インターリーブパケットBIP’を入力したときにおける領域w3と同じ領域であり、ディレイ・グループdel1(1−2)が書き込まれていることから、実際には、このディレイ・グループdel1(1−2)のみを読み出すことになる。
【0140】
これにより、バイト・デインターリーバ25は、図17Dの左から2番目に示すように、ディレイ・グループdel0(1−3),del1(1−2)として分類された各バイトからなるデータを出力することになる。
【0141】
続いて、バイト・デインターリーバ25は、次のバイト・インターリーブパケットBIP’を入力する準備として、図17Bの左から3番目における太横線で示すように、基準アドレスaddr_baseをさらに1ブロック分だけ進めた上で、図17Aの左から3番目に示すように、パケット番号が”2”とされる次のバイト・インターリーブパケットBIP’を入力すると、図17Bの左から3番目に示すように、このバイト・インターリーブパケットBIP’を構成する各バイトを、第1のカウンタによるカウント値cnt_delに基づいて、3バイトからなる4つのディレイ・グループdel0(2−3),del1(3−2),del2(0−1),del3(1−0)に分類する。
【0142】
そして、バイト・デインターリーバ25は、図17Cの左から3番目に示すように、これらの4つのディレイ・グループdel0(2−3),del1(3−2),del2(0−1),del3(1−0)のうち、ディレイ・グループdel0(2−3)に属する各バイトについては、DPRAMに書き込まず、ディレイ・グループdel1(3−2)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの2ブロック後の領域w3に書き込み、ディレイ・グループdel2(0−1)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3)ブロック後の領域w2に書き込み、ディレイ・グループdel3(1−0)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3+4)ブロック後の領域、すなわち、先頭へと巡回した領域w1に書き込むように、書き込みアドレスを生成する。
【0143】
また、バイト・デインターリーバ25は、DPRAMに書き込まれている4つのディレイ・グループdel0,del1,del2,del3のうち、ディレイ・グループdel0に属する各バイトについては、DPRAMに書き込まれないのでそのまま用いる。また、ディレイ・グループdel1に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの1ブロック後の領域r3から読み出し、ディレイ・グループdel2に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2)ブロック後の領域r2から読み出し、ディレイ・グループdel3に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2+3)ブロック後の領域r1から読み出すように、読み出しアドレスを生成する。ここで、バイト・デインターリーバ25は、領域r1にはデータが書き込まれていないが、領域r2はパケット番号が”0”のバイト・インターリーブパケットBIP’を入力したときにおける領域w2と同じ領域であり、さらに、領域r3はパケット番号が”1”のバイト・インターリーブパケットBIP’を入力したときにおける領域w3と同じ領域であり、ディレイ・グループdel2(2−1),del1(2−2)が書き込まれていることから、実際には、これらのディレイ・グループdel2(2−1),del1(2−2)のみを読み出すことになる。
【0144】
これにより、バイト・デインターリーバ25は、図17Dの左から3番目に示すように、ディレイ・グループdel0(2−3),del1(2−2),del2(2−1)として分類された各バイトからなるデータを出力することになる。
【0145】
同様に、バイト・デインターリーバ25は、次のバイト・インターリーブパケットBIP’を入力する準備として、図17Bの左から4番目における太横線で示すように、基準アドレスaddr_baseをさらに1ブロック分だけ進めた上で、図17Aの左から4番目に示すように、パケット番号が”3”とされる次のバイト・インターリーブパケットBIP’を入力すると、図17Bの左から4番目に示すように、このバイト・インターリーブパケットBIP’を構成する各バイトを、第1のカウンタによるカウント値cnt_delに基づいて、3バイトからなる4つのディレイ・グループdel0(3−3),del1(0−2),del2(1−1),del3(2−0)に分類する。
【0146】
そして、バイト・デインターリーバ25は、図17Cの左から4番目に示すように、これらの4つのディレイ・グループdel0(3−3),del1(0−2),del2(1−1),del3(2−0)のうち、ディレイ・グループdel0(3−3)に属する各バイトについては、DPRAMに書き込まず、ディレイ・グループdel1(0−2)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの2ブロック後の領域w3に書き込み、ディレイ・グループdel2(1−1)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3)ブロック後の領域w2に書き込み、ディレイ・グループdel3(2−0)に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(2+3+4)ブロック後の領域、すなわち、先頭へと巡回した領域w1に書き込むように、書き込みアドレスを生成する。
【0147】
なお、この段階でのDPRAMにおける各アドレスにマッピングされたデータを詳細に示すと、図18に示すようになる。すなわち、バイト・デインターリーバ25においては、アドレス0からアドレス2までの3バイト分のブロックを記憶可能な領域については、パケット番号が”3”であり且つ遅延パケット数が”3”であるディレイ・グループdel3(3−0)が記憶され、このうち、アドレス0の領域にはバイト番号が”0”のデータが記憶され、アドレス1の領域にはバイト番号が”4”のデータが記憶され、アドレス2の領域にはバイト番号が”8”のデータが記憶されるといったように、各ディレイ・グループに属する各バイトが、連続するアドレスに対してバイト番号が小さいものから書き込まれる。
【0148】
また、バイト・デインターリーバ25は、図17Cの左から4番目に示すように、DPRAMに書き込まれている4つのディレイ・グループdel0,del1,del2,del3のうち、ディレイ・グループdel0に属する各バイトについては、DPRAMに書き込まれないのでそのまま読み出し、ディレイ・グループdel1に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの1ブロック後の領域r3から読み出し、ディレイ・グループdel2に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2)ブロック後の領域r2から読み出し、ディレイ・グループdel3に属する各バイトについては、DPRAMにおける基準アドレスaddr_baseの(1+2+3)ブロック後の領域r1から読み出すように、読み出しアドレスを生成する。ここで、バイト・デインターリーバ25は、領域r1はパケット番号が”0”のバイト・インターリーブパケットBIP’を入力したときにおける領域w1と同じ領域であり、また、領域r2はパケット番号が”1”のバイト・インターリーブパケットBIP’を入力したときにおける領域w2と同じ領域であり、さらに、領域r3はパケット番号が”2”のバイト・インターリーブパケットBIP’を入力したときにおける領域w3と同じ領域であり、ディレイ・グループdel3(3−0),del2(3−1),del1(3−2)が書き込まれていることから、実際には、これらのディレイ・グループdel3(3−0),del2(3−1),del1(3−2)を読み出すことになる。
【0149】
これにより、バイト・デインターリーバ25は、図17Dの左から4番目に示すように、ディレイ・グループdel0(3−3),del1(3−2),del2(3−1),del3(3−0)として分類された各バイトからなるデータを出力することになる。
【0150】
このように、バイト・デインターリーバ25は、バイト・インターリーブパケットBIP’が入力される毎に各バイトを、図14Dに示すインターリーブ後の出力に対応させてディレイ・グループに分類し、上述したアドレス生成方式にしたがった書き込みアドレス及び読み出しアドレスに基づいて、ディレイ・グループ毎にDPRAMにおけるメモリマップ上で連続したアドレスに管理された書き込み及び読み出しを行う。これにより、バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、読み出しが行われてデインターリーブが完了したデータの記憶領域を次のデータの書き込み領域として、即座に次のデータを書き込むことができる。すなわち、DPRAMの領域のうち使用済みとされる無駄な領域(インターリーブが完了したデータが書き込まれたままとなっている領域)をなくすことができ、必要とするDPRAMの容量を最小限に抑制することができる。この場合、バイト・デインターリーバ25は、通常であれば、畳み込みデインターリーブの深さD=4と入力した1パケットあたりのバイト数N=12との積、すなわち、D×N=4×12=48バイトの容量を有するDPRAMを必要とするところ、上述したアドレス制御を行うことにより、図17Cに示すように、9個の3バイトからなる領域、すなわち、27バイトの容量を有するDPRAMを用いるのみで、同様の畳み込みデインターリーブを行うことができる。また、バイト・デインターリーバ25は、分類したディレイ・グループ毎に連続するアドレスに対して書き込み、また、この連続するアドレスに対して書き込まれたディレイ・グループ毎に読み出しを行うことにより、書き込みアドレス及び読み出しアドレスの算出を容易に行うことができる。
【0151】
以上のように、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれバイト単位で、12バイトからなるパケットを入力して深さ4及び周期3の畳み込みインターリーブ又は畳み込みデインターリーブを行う場合には、入力するパケットを構成する各バイトのバイト番号に対応して畳み込みインターリーブ又は畳み込みデインターリーブの深さ4に対応したカウント値cnt_del(0〜3)をパケット毎に計数する第1のカウンタと、この第1のカウンタの周期に対応したカウント値cnt_block(0〜2)をパケット毎に計数する第2のカウンタとを設け、ディレイ・グループ毎にデータを扱えばよい。
【0152】
次に、ユニット単位で処理を行う場合の動作を説明する。バイト・インターリーバ12は、バイト単位の場合と同様に、任意の符号化パケットEPを構成する各バイトについて、当該符号化パケットEPに対する、畳み込みインターリーブが施されることによって当該バイトがユニット単位で格納されるバイト・インターリーブパケットBIPの遅延数である遅延パケット数が等しいバイト群をディレイ・グループとしてまとめて分類する。さらに、このディレイ・グループ毎にDPRAMにおける連続するアドレスに対して書き込み及び読み出しを行うように書き込みアドレス及び読み出しアドレスを生成して、ディレイ・グループ毎にデータを扱う。
【0153】
ある符号化パケットEPを構成する各バイトをこのようなディレイ・グループに分類するために、バイト・インターリーバ12は、バイト単位で処理する場合と同様に、DPRAMに対するデータの書き込み及び読み出しを行うのに用いる書き込みアドレス及び読み出しアドレスの算出を補助するための2つの補助カウンタを設ける。さらに、1ユニットが複数の連続するバイト単位であることから、1ユニット内のバイトをカウントするための補助カウンタを設ける。
【0154】
具体的には、図19Aに示すように、入力される24バイトからなる符号化パケットEPのそれぞれに対して0,1,2,3,・・・といったパケット番号を付すとともに、図19Bに示すように、各符号化パケットEPを構成する各バイトに対して0〜23のバイト番号を付すものとすると、バイト・インターリーバ12は、図19Cに示すように、1ユニット内のバイト数に対応したカウント値cnt_byte(0〜1)をインクリメントしてパケット毎に計数する第3のカウンタと、図19Dに示すように、畳み込みインターリーブの深さ4に対応したカウント値cnt_del(0〜3)をインクリメントしてパケット毎に計数する第1のカウンタと、図19Eに示すように、第1のカウンタの周期に対応したカウント値cnt_block(0〜2)をインクリメントしてパケット毎に計数する第2のカウンタとを、補助カウンタとして設ける。
【0155】
バイト・インターリーバ12は、このような第1のカウンタによって計数されるカウント値cnt_delと、第2のカウンタによって計数されるカウント値cnt_block、さらに第3のカウンタによって計数されるカウント値cnt_byteとを用いて、DPRAMに対するデータの書き込み及び読み出しを制御し、符号化パケットEPに対して畳み込みインターリーブを施す。このとき、バイト・インターリーバ12は、畳み込みインターリーブを施す符号化パケットEPを入力すると、即座にDPRAMに対するデータの書き込みを開始する一方、DPRAMからのデータの読み出しについては、データの書き込みと同時に開始するか、又は所定の固定クロック数だけ遅延して開始する。バイト・インターリーバ12は、ある符号化パケットEPを入力した場合には、DPRAMに書き込まれた有意なデータを読み出す前に、他のデータによって当該有意なデータが上書きされるのを回避するために、DPRAMに対するデータの書き込み後、次の符号化パケットEPが入力される前に、全てのデータの読み出しを完了する必要がある。
【0156】
ここで、バイト・インターリーバ12は、ディレイ・グループ毎に分類されたバイト群の書き込み及び読み出しを、ユニット単位で行うものとすれば、上述の図14A〜図14Dに示す場合と同様にして、DPRAMに対するディレイ・グループ毎に分類されたバイト群の書き込み及び読み出しを行うことができる。なお、パケットの番号が”3”とされる符号化パケットEPを入力した段階でのDPRAMにおける各アドレスにマッピングされたデータは、バイト単位で処理したとき図15に示すものとなるが、ユニット単位で処理が行われたときには、1つの処理単位が1バイトから1ユニット(=2バイト)とされるため、図20に示すものとなる。すなわち、バイト・インターリーバ12においては、アドレス0からアドレス5までの3ユニット分を記憶可能な領域については、パケット番号が”0”であり且つ遅延パケット数が”3”であるディレイ・グループdel3(0−3)が記憶され、このうち、アドレス0,1の領域には4番目のユニットのデータ”6,7”が連続して記憶され、アドレス2,3の領域には8番目のユニットのデータ”14,15”が連続して記憶され、アドレス4,5の領域には12番目のユニットのデータ”22,23”が連続して記憶されるといったように、各ディレイ・グループに属する各ユニットの連続するバイトが、連続するアドレスに対してバイト番号が小さいものから書き込まれる。
【0157】
このように、バイト・インターリーバ12は、符号化パケットEPが入力される毎に各バイトをユニット単位でディレイ・グループに分類し、上述したアドレス生成方式にしたがった書き込みアドレス及び読み出しアドレスに基づいて、ディレイ・グループ毎にDPRAMにおけるメモリマップ上で連続したアドレスに管理された書き込み及び読み出しを行う。これにより、バイト・インターリーバ12は、読み出しが行われてインターリーブが完了したデータの記憶領域を次のデータの書き込み領域として、即座に次のデータを書き込むことができる。すなわち、DPRAMの領域のうち使用済みとされる無駄な領域をなくすことができ、必要とするDPRAMの容量を最小限に抑制することができる。
【0158】
この場合、バイト・インターリーバ12は、通常であれば、畳み込みインターリーブの深さD=4と入力した1パケットあたりのバイト数N=24との積、すなわち、D×N=4×24=96バイトの容量を有するDPRAMを必要とするところ、上述したアドレス制御を行うことにより、9個の6バイトからなる領域、すなわち、54バイトの容量を有するDPRAMを用いるのみで、同様の畳み込みインターリーブを行うことができる。また、バイト・インターリーバ12は、分類したディレイ・グループ毎に連続するアドレスに対して書き込み、また、この連続するアドレスに対して書き込まれたディレイ・グループ毎に読み出しを行うことにより、書き込みアドレス及び読み出しアドレスの算出を容易に行うことができる。
【0159】
つぎに、バイト・デインターリーバ25について説明する。バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、あるバイト・インターリーブパケットBIP’を構成する各バイトをディレイ・グループに分類してこのディレイ・グループ毎にデータを扱い、バイト・インターリーバ12とは対称なアドレス制御を行うことにより、畳み込みデインターリーブを行う。
【0160】
すなわち、バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、アドレス生成部として、図示しないが、DPRAMに対するデータの書き込み及び読み出しを行うのに用いるアドレスの算出を補助するための3つの補助カウンタを設ける。具体的には、図21Aに示すように、入力される24バイトからなるバイト・インターリーブパケットBIP’のそれぞれに対して0,1,2,3,・・・といったパケット番号を付すとともに、図21Bに示すように、各バイト・インターリーブパケットBIP’を構成する各バイトに対して0〜23のバイト番号を付すものとすると、バイト・デインターリーバ25は、図21Cに示すように、1ユニット内のバイト数に対応したカウント値cnt_byte(0〜1)をインクリメントしてパケット毎に計数する第3のカウンタと、図21Dに示すように、畳み込みインターリーブの深さ4に対応したカウント値cnt_del(0〜3)をデクリメントしてパケット毎に計数する第1のカウンタと、図21Eに示すように、第1のカウンタの周期に対応したカウント値cnt_block(0〜2)をインクリメントしてパケット毎に計数する第2のカウンタとを、補助カウンタとして設ける。
【0161】
なお、バイト・インターリーバ12と異なる点は、第1のカウンタによって計数されるカウント値cnt_delが、インクリメントされるのではなく、デクリメントされることである。
【0162】
バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、このような第1のカウンタによって計数されるカウント値cnt_delと、第2のカウンタによって計数されるカウント値cnt_blockと、第3のカウンタによって計数されるカウント値cnt_byteを用いて、DPRAMに対するデータの書き込み及び読み出しを制御し、バイト・インターリーブパケットBIP’に対して畳み込みデインターリーブを施す。バイト・デインターリーバ25は、畳み込みデインターリーブを施すバイト・インターリーブパケットBIP’を入力すると、即座にDPRAMに対するデータの書き込みを開始する一方、DPRAMからのデータの読み出しについては、データの書き込みと同時に開始するか、又は所定の固定クロック数だけ遅延して開始する。バイト・デインターリーバ25は、あるバイト・インターリーブパケットBIP’を入力した場合には、DPRAMに書き込まれた有意なデータを読み出す前に、他のデータによって当該有意なデータが上書きされるのを回避するために、DPRAMに対するデータの書き込み後、次のバイト・インターリーブパケットBIP’が入力される前に、全てのデータの読み出しを完了する必要がある。
【0163】
ここで、バイト・デインターリーバ25は、バイト・インターリーバ12から出力されるデータ配列からなるバイト・インターリーブパケットBIP’を入力するものとすると、DPRAMに対するディレイ・グループ毎に分類されたバイト群の書き込み及び読み出しをユニット単位で行うものとすれば、上述の図17A〜図17Dに示す場合と同様にして、DPRAMに対するディレイ・グループ毎に分類されたバイト群の書き込み及び読み出しを行うことができる。なお、パケット番号が”3”とされる符号化パケットEPを入力した段階でのDPRAMにおける各アドレスにマッピングされたデータは、バイト単位で処理したとき図18に示すものとなるが、ユニット単位で処理が行われたときには1つの処理単位が1バイトから1ユニット(=2バイト)とされるため、図22に示すものとなる。
【0164】
すなわち、バイト・インターリーバ12においては、アドレス0からアドレス5までの3ユニット分を記憶可能な領域については、パケット番号が”0”であり且つ遅延パケット数が”3”であるディレイ・グループdel3(0−3)が記憶され、このうち、アドレス0,1の領域には4番目のユニットのデータ”6,7”が連続して記憶され、アドレス2,3の領域には8番目のユニットのデータ”14,15”が連続して記憶され、アドレス4,5の領域には12番目のユニットのデータ”22,23”が連続して記憶されるといったように、各ディレイ・グループに属する各ユニットの連続するバイトが、連続するアドレスに対してバイト番号が小さいものから書き込まれる。
【0165】
すなわち、バイト・デインターリーバ25においては、アドレス0からアドレス5までの6バイト分が記憶可能な領域については、パケット番号が”3”であり且つ遅延パケット数が”3”であるディレイ・グループdel3(3−0)が記憶され、このうち、アドレス0,1の領域には最初のユニットのデータ”0,1”が連続して記憶され、アドレス2,3の領域には5番目のユニットのデータ”8,9”が連続して記憶され、アドレス4,5の領域には9番目のユニットのデータ”16,17”が連続して記憶されるといったように、各ディレイ・グループに属する各ユニットの連続するバイトが、連続するアドレスに対してバイト番号が小さいものから書き込まれる。
【0166】
このように、バイト・デインターリーバ25は、バイト・インターリーブパケットBIP’が入力される毎に各バイトをディレイ・グループに分類し、上述したアドレス生成方式にしたがった書き込みアドレス及び読み出しアドレスに基づいて、ディレイ・グループ毎にDPRAMにおけるメモリマップ上で連続したアドレスに管理された書き込み及び読み出しを行う。これにより、バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、読み出しが行われてデインターリーブが完了したデータの記憶領域を次のデータの書き込み領域として、即座に次のデータを書き込むことができる。すなわち、DPRAMの領域のうち使用済みとされる無駄な領域をなくすことができ、必要とするDPRAMの容量を最小限に抑制することができる。
【0167】
この場合、バイト・デインターリーバ25は、通常であれば、畳み込みデインターリーブの深さD=4と入力した1パケットあたりのバイト数N=24との積、すなわち、D×N=4×24=96バイトの容量を有するDPRAMを必要とするところ、上述したアドレス制御を行うことにより、図17Cに示すように、9個の6バイトからなる領域、すなわち、54バイトの容量を有するDPRAMを用いるのみで、同様の畳み込みデインターリーブを行うことができる。また、バイト・デインターリーバ25は、分類したディレイ・グループ毎に連続するアドレスに対して書き込み、また、この連続するアドレスに対して書き込まれたディレイ・グループ毎に読み出しを行うことにより、書き込みアドレス及び読み出しアドレスの算出を容易に行うことができる。
【0168】
以上のように、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、24バイトからなる符号化パケットEPに対して2バイトを1ユニットとして、ユニット単位で深さ4及び周期3の畳み込みインターリーブ又は畳み込みデインターリーブを行う場合には、入力するパケットを構成する各バイトのバイト番号に対応して畳み込みインターリーブ又は畳み込みデインターリーブの深さ4に対応したカウント値cnt_del(0〜3)をパケット毎に計数する第1のカウンタと、この第1のカウンタの周期に対応したカウント値cnt_block(0〜2)をパケット毎に計数する第2のカウンタ、および1ユニット内のバイト数に対応したカウント値cnt_byte(0〜1)をパケット毎に計数する第3のカウンタとを設け、ディレイ・グループ毎にデータを扱えばよい。
【0169】
したがって、このようなバイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、入力する1パケットあたりのバイト数をN、畳み込みインターリーブ又は畳み込みデインターリーブの深さをD、畳み込みインターリーブ又は畳み込みデインターリーブの周期をC、畳み込みインターリーブを施す際のユニット内のバイト数をUとすると、入力するパケットを構成する各バイトのバイト番号に対応して畳み込みインターリーブ又は畳み込みデインターリーブの深さDに対応したカウント値cnt_del(0〜D−1)をパケット毎に計数する第1のカウンタと、この第1のカウンタの周期に対応したカウント値cnt_block(0〜C−1)をパケット毎に計数する第2のカウンタと、1ユニット内のバイト数に対応したカウント値cnt_byte(0〜1)をパケット毎に計数する第3のカウンタとを設け、DPRAMに対するデータの書き込み及び読み出しを、ディレイ・グループ毎に行えばよい。すなわち、バイト・インターリーバ12及びバイト・デインターリーバ25によるアドレス生成方式は、以下のように一般化して表すことができる。
【0170】
まず、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、DPRAMに対してデータを書き込む際には、図23に示す一連の処理で示す規則にしたがってディレイ・グループ毎に応じた書き込みアドレスを生成し、DPRAMに対するデータの書き込みを制御する。
【0171】
すなわち、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、図23に示すように、ステップS1において、上述した基準アドレスaddr_baseを”0”に設定した上で、ステップS2において、畳み込みインターリーブ又は畳み込みデインターリーブを施すパケットの区切りであるか否かを判定する。
【0172】
ここで、パケットの区切りでないと判定した場合には、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、第1のカウンタ及び第2のカウンタと第3のカウンタを動作させ、第1のカウンタによるカウント値cnt_delに基づいて、DPRAMに対してディレイ・グループ毎に各バイトを書き込む。
【0173】
すなわち、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS3において、第1のカウンタによるカウント値cnt_delを”0”とした場合には、このときのバイトをディレイ・グループdel0に分類し、ステップS4において、書き込みアドレスを生成せずに、これらのディレイ・グループdel0に属する各バイトをDPRAMに書き込むことなくステップS2へと処理を移行する。
【0174】
また、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS3において、第1のカウンタによるカウント値cnt_delを”1”とした場合には、このときのバイトをディレイ・グループdel1に分類し、ステップS5において、書き込みアドレスとして、
(addr_base+C×U×2+cnt_block×U+cnt_byte)
を生成し、これらのディレイ・グループdel1に属する各バイトをこの書き込みアドレスが示す領域に書き込み、ステップS2へと処理を移行する。
【0175】
さらに、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS3において、第1のカウンタによるカウント値cnt_delを”2”とした場合には、このときのバイトをディレイ・グループdel2に分類し、ステップS6において、書き込みアドレスとして、
(addr_base+C×U×(2+3)+cnt_block×U+cnt_byte)
を生成し、これらのディレイ・グループdel2に属する各バイトをこの書き込みアドレスが示す領域に書き込み、ステップS2へと処理を移行する。
【0176】
さらにまた、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS3において、第1のカウンタによるカウント値cnt_delを”3”とした場合には、このときのバイトをディレイ・グループdel3に分類し、ステップS7において、書き込みアドレスとして、
(addr_base+C×U×(2+3+4)+cnt_block×U+cnt_byte)
を生成し、これらのディレイ・グループdel3に属する各バイトをこの書き込みアドレスが示す領域に書き込み、ステップS2へと処理を移行する。
【0177】
そして、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS3において、第1のカウンタによるカウント値cnt_delを”D−1”とした場合には、このときのバイトをディレイ・グループdel(D−1)に分類し、ステップS8において、書き込みアドレスとして、
(addr_base+C×U×(2+3+・・・+D)+cnt_block×U+cnt_byte)
を生成し、これらのディレイ・グループdel(D−1)に属する各バイトをこの書き込みアドレスが示す領域に書き込み、ステップS2へと処理を移行する。
【0178】
バイト・インターリーバ12は、カウント値cnt_delを”0”から”D−1”までインクリメントすることによってカウント値cnt_delが”D−1”となるまでこのような動作を行い、さらにこの動作を畳み込みインターリーブの周期Cの値だけ繰り返し行い、1パケットに含まれる全てのバイトについての処理を終了する。一方、バイト・デインターリーバ25は、カウント値cnt_delを”D−1”から”0”までデクリメントすることによってカウント値cnt_delが”0”となるまでこのような動作を行い、さらにこの動作を畳み込みデインターリーブの周期Cの値だけ繰り返し行い、1パケットに含まれる全てのバイトについての処理を終了する。
【0179】
このようにして、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、入力したパケットについての処理を終了し、ステップS2において、パケットの区切りであると判定した場合には、ステップS9へと処理を移行する。そして、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS9において、パケットの区切りで基準アドレスaddr_baseを「畳み込みインターリーブ又は畳み込みデインターリーブの周期C×ユニット内のバイト数U」の値だけ、すなわち、1ブロック領域分だけ増加させ、次のパケットの入力があるまで待機すべく、ステップS2へと再度処理を移行する。
【0180】
バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、このような規則にしたがってディレイ・グループ毎に応じた書き込みアドレスを生成することにより、DPRAMに対するデータの書き込みを制御することができる。なお、バイト単位で畳み込みインターリーブを行う際には、1ユニット内のバイト数は「1」であることから、上述の読み出しアドレスの一般式において、U=1,cnt_byte=0とすれば、バイト単位で畳み込みインターリーブや畳み込みデインターリーブを施す際の式となる。また、このとき第3のカウンタは不要となる。
【0181】
一方、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、DPRAMからデータを読み出す際には、図24に示す一連の処理で示す規則にしたがってディレイ・グループ毎に応じた読み出しアドレスを生成し、DPRAMからのデータの読み出しを制御する。
【0182】
すなわち、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、図24に示すように、ステップS11において、上述した基準アドレスaddr_baseを”0”に設定した上で、ステップS12において、畳み込みインターリーブ又は畳み込みデインターリーブを施すパケットの区切りであるか否かを判定する。
【0183】
ここで、パケットの区切りでないと判定した場合には、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、第1のカウンタ及び第2のカウンタを動作させ、第1のカウンタによるカウント値cnt_delに基づいて、DPRAMからディレイ・グループ毎に各バイトを読み出す。
【0184】
すなわち、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS13において、第1のカウンタによるカウント値cnt_delを”0”とした場合には、このときのバイトをディレイ・グループdel0に分類し、ステップS14において、読み出しアドレスを生成せずに、これらのディレイ・グループdel0に属する各バイトをDPRAMに書き込むことなくそのまま出力し、ステップS12へと処理を移行する。
【0185】
また、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS13において、第1のカウンタによるカウント値cnt_delを”1”とした場合には、ステップS15において、読み出しアドレスとして、
(addr_base+C×U×1+cnt_block×U+cnt_byte)
を生成し、この読み出しアドレスが示す領域に記憶されている各バイトをディレイ・グループdel1として読み出し、ステップS12へと処理を移行する。
【0186】
さらに、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS13において、第1のカウンタによるカウント値cnt_delを”2”とした場合には、ステップS16において、読み出しアドレスとして、
(addr_base+C×U×(1+2)+cnt_block×U+cnt_byte)
を生成し、この読み出しアドレスが示す領域に記憶されている各バイトをディレイ・グループdel2として読み出し、ステップS12へと処理を移行する。
【0187】
さらにまた、バイト・インターリーバ12及びバイト・デインターリーバ25、それぞれ、ステップS13において、第1のカウンタによるカウント値cnt_delを”3”とした場合には、ステップS17において、読み出しアドレスとして、
(addr_base+C×U×(1+2+3)+cnt_block×U+cnt_byte)
を生成し、この読み出しアドレスが示す領域に記憶されている各バイトをディレイ・グループdel3として読み出し、ステップS12へと処理を移行する。
【0188】
そして、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS13において、第1のカウンタによるカウント値cnt_delを”D−1”とした場合には、ステップS18において、読み出しアドレスとして、
(addr_base+C×U×(1+2+・・・+(D−1))+cnt_block×U+cnt_byte)
を生成し、この読み出しアドレスが示す領域に記憶されている各バイトをディレイ・グループdel(D−1)として読み出し、ステップS12へと処理を移行する。
【0189】
バイト・インターリーバ12は、カウント値cnt_delを”0”から”D−1”までインクリメントすることによってカウント値cnt_delが”D−1”となるまでこのような動作を行い、さらにこの動作を畳み込みインターリーブの周期Cの値だけ繰り返し行い、1パケットに含まれる全てのバイトについての処理を終了する。一方、バイト・デインターリーバ25は、カウント値cnt_delを”D−1”から”0”までデクリメントすることによってカウント値cnt_delが”0”となるまでこのような動作を行い、さらにこの動作を畳み込みデインターリーブの周期Cの値だけ繰り返し行い、1パケットに含まれる全てのバイトについての処理を終了する。
【0190】
このようにして、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、入力したパケットについての処理を終了し、ステップS12において、パケットの区切りであると判定した場合には、ステップS19へと処理を移行する。そして、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS19において、パケットの区切りに基準アドレスaddr_baseを「畳み込みインターリーブ又は畳み込みデインターリーブの周期C×ユニット内のバイト数U」の値だけ、すなわち、1ブロック領域分だけ増加させ、次のパケットの入力があるまで待機すべく、ステップS12へと再度処理を移行する。
【0191】
バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、このような規則にしたがってディレイ・グループ毎に応じた読み出しアドレスを生成することにより、DPRAMからのデータの読み出しを制御することができる。なお、バイト単位で畳み込みインターリーブを行う際には、1ユニット内のバイト数は「1」であることから、上述の読み出しアドレスの一般式において、U=1,cnt_byte=0とすれば、バイト単位で畳み込みインターリーブや畳み込みデインターリーブを施す際の式となる。また、このとき第3のカウンタは不要となる。
【0192】
バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、図23及び図24に示した規則にしたがって、DPRAMに対するデータの書き込み及び読み出しを行うことにより、Nバイトからなるパケットに対して、深さD及び周期Cの畳み込みインターリーブ又は畳み込みデインターリーブを施すことができる。このとき、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、通常であれば、D×Nバイトの容量を有するDPRAMを必要とするところ、C×(2+3+・・・+D)=C×((1+D)×D/2−1)の容量を有するDPRAMを用いるのみでよい。具体的には、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、図13A乃至図24に示した例のように、12バイトからなるパケットに対して、バイト単位で深さ4及び周期3の畳み込みインターリーブ又は畳み込みデインターリーブを施す場合には、上述したように、通常であれば、D×N=4×12=48バイトの容量を有するDPRAMを必要とするところ、C×(2+3+・・・+D)=C×((1+D)×D/2−1)=3×((1+4)×4/2−1)=27バイトの容量を有するDPRAMを用いるのみでよく、また、図2A乃至図12Fに示した例のように、216バイトからなるパケットに対して、深さ18及び周期12の畳み込みインターリーブ又は畳み込みデインターリーブを施す場合には、通常であれば、D×N=18×216=3888バイトの容量を有するDPRAMを必要とするところ、C×(2+3+・・・+D)=C×((1+D)×D/2−1)=12×((1+18)×18/2−1)=2040バイトの容量を有するDPRAMを用いるのみでよい。
【0193】
また、24バイトからなるパケットに対して、2バイトを1ユニットとしてユニット単位で深さ4及び周期3の畳み込みインターリーブ又は畳み込みデインターリーブを施す場合には、上述したように、通常であれば、D×N=4×24=96バイトの容量を有するDPRAMを必要とするところ、C×U×(2+3+・・・+D)=C×U×((1+D)×D/2−1)=3×2×((1+4)×4/2−1)=54バイトの容量を有するDPRAMを用いるのみでよく、また、図2A乃至図12Fに示した例のように、216バイトからなるパケットに対して、4バイトを1ユニットとしてユニット単位で深さ18及び周期3の畳み込みインターリーブ又は畳み込みデインターリーブを施す場合には、通常であれば、D×N=18×216=3888バイトの容量を有するDPRAMを必要とするところ、C×U×(2+3+・・・+D)=C×U×((1+D)×D/2−1)=3×4×((1+18)×18/2−1)=2040バイトの容量を有するDPRAMを用いるのみでよい。
【0194】
このように、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、通常必要とされるメモリ容量の約半分の容量を有するメモリを用いればよく、必要なメモリ容量を大幅に削減することができる。
【0195】
以上説明したように、本発明の実施の形態として示すデータ送受信システムにおいては、DPRAMを用いてバイト・インターリーバ12及びバイト・デインターリーバ25を実装し、読み出しが行われてインターリーブあるいはデインターリーブが完了したデータの記憶領域に、即座に次のデータを書き込む。すなわち、畳み込みインターリーブ及び畳み込みデインターリーブに使用済みのメモリ領域を即座に再利用するアドレス制御を行うことにより、通常であれば、畳み込みインターリーブ及び畳み込みデインターリーブの深さと入力した1パケットあたりのバイト数との積で表されるバイト数の容量を有するメモリを用いて実装する必要があるところ、この容量よりも大幅に小さい容量を有するメモリを用いて、同様の畳み込みインターリーブ及び畳み込みデインターリーブを実現することができる。
【0196】
また、データ送受信システムにおいては、畳み込みインターリーブ及び畳み込みデインターリーブが施されるデータのうち、遅延パケット数が等しいデータをディレイ・グループとしてまとめて分類し、ディレイ・グループ毎にDPRAMにおける連続するアドレスに対して書き込むことにより、畳み込みインターリーブ及び畳み込みデインターリーブに使用済みのメモリ領域を即座に利用するための書き込みアドレス及び読み出しアドレスの算出を容易に行うことができる。
【0197】
なお、本発明は、上述した実施の形態に限定されるものではない。例えば、上述した実施の形態では、バイト・インターリーバ12及びパケット・インターリーバ13を含む各部、又はパケット・デインターリーバ24及びバイト・デインターリーバ25を含む各部を、それぞれ、プログラマブルデバイスとして実装するものとして説明したが、本発明は、専用の集積回路として実装した場合であっても適用することができる。
【0198】
また、ユニット単位、例えば、符号化器10に対してMPEG−2方式に基づく圧縮符号化を施して得られたトランスポートストリームTSを入力し、復号器20によってこのトランスポートストリームTSを復元する場合、トランスポートストリームTSのヘッダが4バイトであることから、上述したように1ユニットを4バイトとして畳み込みインターリーブ及び畳み込みデインターリーブを行った場合には、ヘッダを構成する各バイトが並べ替えられることがなく、デバックが容易となる。
【0199】
さらに、上述した実施の形態では、符号化器10に対してMPEG−2方式に基づく圧縮符号化を施して得られたトランスポートストリームTSを入力し、復号器20によってこのトランスポートストリームTSを復元するものとして説明したが、本発明は、パケット単位での畳み込みインターリーブ及び畳み込みデインターリーブを行う際の同期生成に用いるためにパケットの先頭データワードが固定値であり、且つ、固定長パケットであることを条件とするパケット通信であればいかなるものでも適用することができる。
【0200】
さらにまた、上述した実施の形態では、誤り訂正符号としてリード・ソロモン符号を用いて説明したが、本発明は、任意の誤り訂正符号を用いた符号化及び復号に適用することができる。
【0201】
また、上述した実施の形態では、主にパケットロスが発生する場合における誤り訂正について例を示して説明したが、本発明は、パケットロスのみならず大きなバーストエラーが発生する場合にも有効であることは勿論である。なお、本発明は、通常のバーストエラーやランダムエラーの訂正については、従来と同様の処理によって行うことができるのはいうまでもない。
【0202】
さらに、上述した実施の形態では、パケット化されたデータに対して符号化を行う符号化器10と、この符号化器10によって符号化がなされたデータを復号する復号器20とを備えるデータ送受信システムについて説明したが、本発明は、畳み込みインターリーブ及び畳み込みデインターリーブを行うものであれば、このような符号化器及び復号器に限らず、任意の用途に適用することができる。
【0203】
このように、本発明は、その趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0204】
【発明の効果】
以上詳細に説明したように、本発明にかかるインターリーブ装置は、入力されたデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施すインターリーブ装置であって、データを記憶する記憶手段と、この記憶手段における上記データの書き込み位置と読み出し位置を制御することで上記畳み込みインターリーブを施すとともに、読み出しが行われてインターリーブが完了したデータの記憶領域を次のデータの書き込み領域とするアドレス制御を行うための書き込みアドレス及び読み出しアドレスを生成するアドレス生成手段とを備える備える。
【0205】
したがって、本発明にかかるインターリーブ装置は、アドレス生成手段によって生成される書き込みアドレス及び読み出しアドレスに基づいて、記憶手段におけるデータが読み出された領域に次のデータを即座に書き込むアドレス制御を行うことにより、必要とする記憶手段の容量を大幅に削減することができる。
【0206】
また、この本発明にかかるインターリーブ装置において、入力されたデータは、複数個のパケットから構成されており、アドレス生成手段は、任意のパケットを構成する各データワードについて、当該パケットに対する、畳み込みインターリーブが施されることによって当該データワードが格納されるパケットの遅延数である遅延パケット数が等しいデータワード群を遅延グループとしてまとめて分類し、遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しを行うように、書き込みアドレス及び読み出しアドレスを生成する。
【0207】
したがって、本発明にかかるインターリーブ装置は、アドレス生成手段によって遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しを行うことにより、畳み込みインターリーブに使用済みの記憶手段における領域を即座に利用するための書き込みアドレス及び読み出しアドレスの算出を容易に行うことができる。
【0208】
また、本発明にかかるインターリーブ方法は、入力されたデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施すインターリーブ方法であって、データを入力する入力工程と、データを記憶する記憶手段におけるデータの書き込み位置と読み出し位置を制御することで畳み込みインターリーブを施すとともに、読み出しが行われてインターリーブが完了したデータの記憶領域を次のデータの書き込み領域とするアドレス制御を行うための書き込みアドレス及び読み出しアドレスを生成するアドレス生成工程とを備える。
【0209】
したがって、本発明にかかるインターリーブ方法は、生成される書き込みアドレス及び読み出しアドレスに基づいて、記憶手段におけるデータが読み出された領域に次のデータを即座に書き込むアドレス制御を行うことにより、必要とする記憶手段の容量を大幅に削減することが可能となる。
【0210】
また、この本発明にかかるインターリーブ方法において、入力されたデータは、複数個のパケットから構成されており、アドレス生成工程では、任意のパケットを構成する各データワードについて、当該パケットに対する、畳み込みインターリーブが施されることによって当該データワードが格納されるパケットの遅延数である遅延パケット数が等しいデータワード群が遅延グループとしてまとめられて分類され、遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しが行われるように、書き込みアドレス及び読み出しアドレスが生成される。
【0211】
したがって、本発明にかかるインターリーブ方法は、遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しを行うことにより、畳み込みインターリーブに使用済みの記憶手段における領域を即座に利用するための書き込みアドレス及び読み出しアドレスの算出を容易に行うことが可能となる。
【0212】
さらに、本発明にかかるデインターリーブ装置は、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施すインターリーブ装置を用いて並べ替えられたデータの配列を元に戻すように、入力されたデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みデインターリーブを施すデインターリーブ装置であって、データを記憶する記憶手段と、この記憶手段におけるデータの書き込み位置と読み出し位置を制御することで畳み込みデインターリーブを施すとともに、読み出しが行われてデインターリーブが完了したデータの記憶領域を次のデータの書き込み領域とするアドレス制御を行うための書き込みアドレス及び読み出しアドレスを生成するアドレス生成手段とを備える。
【0213】
したがって、本発明にかかるデインターリーブ装置は、インターリーブ装置による畳み込みインターリーブに対応した畳み込みデインターリーブを行う際に、アドレス生成手段によって生成される書き込みアドレス及び読み出しアドレスに基づいて、記憶手段におけるデータが読み出された領域に次のデータを即座に書き込むアドレス制御を行うことにより、必要とする記憶手段の容量を大幅に削減することができる。
【0214】
また、この本発明にかかるデインターリーブ装置において、入力されたデータは、複数個のパケットから構成されており、アドレス生成手段は、任意のパケットを構成する各データワードについて、当該パケットに対する、畳み込みデインターリーブが施されることによって当該データワードが格納されるパケットの遅延数である遅延パケット数が等しいデータワード群を遅延グループとしてまとめて分類し、遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しを行うように、書き込みアドレス及び読み出しアドレスを生成する。
【0215】
したがって、本発明にかかるデインターリーブ装置は、アドレス生成手段によって遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しを行うことにより、畳み込みデインターリーブに使用済みの記憶手段における領域を即座に利用するための書き込みアドレス及び読み出しアドレスの算出を容易に行うことができる。
【0216】
さらにまた、本発明にかかるデインターリーブ方法は、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施すインターリーブ方法を用いて並べ替えられたデータの配列を元に戻すように、入力されたデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みデインターリーブを施すデインターリーブ方法であって、データを入力する入力工程と、データを記憶する記憶手段におけるデータの書き込み位置と読み出し位置を制御することで上記畳み込みデインターリーブを施すとともに、読み出しが行われてデインターリーブが完了したデータの記憶領域を次のデータの書き込み領域とするアドレス制御を行うための書き込みアドレス及び読み出しアドレスを生成するアドレス生成工程とを備える。
【0217】
したがって、本発明にかかるデインターリーブ方法は、インターリーブ方法による畳み込みインターリーブに対応した畳み込みデインターリーブを行う際に、生成される書き込みアドレス及び読み出しアドレスに基づいて、記憶手段におけるデータが読み出された領域に次のデータを即座に書き込むアドレス制御を行うことにより、必要とする記憶手段の容量を大幅に削減することが可能となる。
【0218】
また、この本発明にかかるデインターリーブ方法において、入力されたデータは、複数個のパケットから構成されており、アドレス生成工程では、任意のパケットを構成する各データワードについて、当該パケットに対する、畳み込みデインターリーブが施されることによって当該データワードが格納されるパケットの遅延数である遅延パケット数が等しいデータワード群が遅延グループとしてまとめられて分類され、遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しが行われるように、書き込みアドレス及び読み出しアドレスが生成される。
【0219】
したがって、本発明にかかるデインターリーブ方法は、遅延グループ毎に記憶手段における連続するアドレスに対して書き込み及び読み出しを行うことにより、畳み込みデインターリーブに使用済みの記憶手段における領域を即座に利用するための書き込みアドレス及び読み出しアドレスの算出を容易に行うことが可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態として示すデータ送受信システムの構成を説明するブロック図である。
【図2】データ送受信システムにおける符号化器が有するリード・ソロモン符号化部の処理を説明するための図である。
【図3】符号化器が有するバイト・インターリーバで行うバイト単位のインターリーブ処理を説明するための図である。
【図4】符号化器が有するバイト・インターリーバで行う複数の連続するバイト単位のインターリーブ処理を説明するための図である。
【図5】符号化器が有するパケット・インターリーバで行うパケット単位の畳み込みインターリーブ処理を説明するための図である。
【図6】符号化器が有するパケット・インターリーバで行うパケット単位のブロックインターリーブ処理を説明するための図である。
【図7】パケット・インターリーバでパケット単位の畳み込みインターリーブ処理を行うものとしたときの符号器側の各部におけるデータ内容の推移を具体的に説明するための図である。
【図8】パケット・インターリーバでパケット単位のブロックインターリーブ処理を行うものとしたときの符号器側の各部におけるデータ内容の推移を具体的に説明するための図である。
【図9】パケット・インターリーバでパケット単位の畳み込みインターリーブ処理を行うものとしたときの符号器側の各部におけるパケットフォーマットの推移を説明するための図である。
【図10】パケット・インターリーバでパケット単位のブロックインターリーブ処理を行うものとしたときの符号器側の各部におけるパケットフォーマットの推移を説明するための図である。
【図11】パケット・インターリーバでパケット単位の畳み込みインターリーブ処理を行ったときの復号器側の各部におけるパケットフォーマットの推移を説明するための図である。
【図12】パケット・インターリーバでパケット単位のブロックインターリーブ処理を行ったときの復号器側の各部におけるパケットフォーマットの推移を説明するための図である。
【図13】バイト・インターリーバでバイト単位の処理を行ったときのカウント値を説明するための図である。
【図14】バイト・インターリーバの処理において、DPRAMに対するデータの書き込みと読み出しを説明するための図である。
【図15】バイト・インターリーバに設けられたDPRAMのデータマッピング状態の一例を示す図である。
【図16】復号器が有するバイト・デインターリーバの処理におけるカウント値を説明するための図である。
【図17】バイト・デインターリーバの処理において、DPRAMに対するデータの書き込みと読み出しを説明するための図である。
【図18】バイト・デインターリーバに設けられたDPRAMのデータマッピング状態の一例を示す図である。
【図19】バイト・インターリーバで複数の連続するバイト単位の処理を行ったときのカウント値を説明するための図である。
【図20】バイト・インターリーバに設けられるDPRAMにおける各アドレスにデータがマッピングされている様子を示す図である。
【図21】バイト・デインターリーバで複数の連続するバイト単位の処理を行ったときのカウント値を説明するための図である。
【図22】バイト・デインターリーバに設けられるDPRAMにおける各アドレスにデータがマッピングされている様子を示す図である。
【図23】DPRAMにデータを書き込むための書き込みアドレスの生成動作を示すフローチャートである。
【図24】DPRAMからデータを読み出すための読み出しアドレスの生成動作を示すフローチャートである。
【符号の説明】
10 符号化器、 11 リード・ソロモン符号化部、 12 バイト・インターリーバ、 13 パケット・インターリーバ、 14 パケット化部、 15 送信部、 16,27 SDRAM、 17,28 インターフェース部、20 復号器、 21 受信部、 22 パケット連続性検証部、 23 アンパケット化部、 24 パケット・デインターリーバ、 25 バイト・デインターリーバ、 26 リード・ソロモン復号部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention provides an interleave device and an interleave method for performing convolutional interleaving on input data in data word units or a plurality of continuous data word units, and rearranged using these interleave devices and interleave methods. The present invention relates to a deinterleave device and a deinterleave method for performing convolutional deinterleave on input data in units of data words or in units of a plurality of consecutive data words so as to restore an arrangement of data.
[0002]
[Prior art]
2. Description of the Related Art In recent years, technologies for handling video and / or audio signals of the so-called HDTV (High Definition Television) system, such as a broadcast system constructed using a video camera for broadcasting or business use, have been developed. In such a system, a function of compressing and encoding an uncompressed video and / or audio signal using an image compression system such as a so-called MPEG (Moving Picture Experts Group) -2, Alternatively, a device called a transcoder having a function of expanding and decoding an audio signal is used. That is, the transcoder is provided with an encoder mounted on an uncompressed video and / or audio signal input via a serial bus or the like compliant with, for example, HD-SDI (High Definition-Serial Digital Interface). In this manner, compression encoding based on an image compression method such as MPEG-2 is performed, and transmitted as a transport stream (Transport Stream) composed of a plurality of transport packets (TS Packets). Further, the transcoder can also perform decompression decoding on a transport stream received via a predetermined communication path by using an on-board decoder to reproduce uncompressed video and / or audio signals.
[0003]
In a packet communication in which predetermined data is stored in a packet and transmitted and received, such as a transport stream transmitted and received by such a transcoder, a header is added for each packet, so that large-sized data is stored in one packet. The more packets are stored and transmitted, the lower the overhead can be, which is effective from the viewpoint of communication efficiency.
[0004]
In packet communication, data is often transmitted over IP (Internet Protocol), and packets are transmitted and received according to various transmission protocols according to the data format and the like. Normally, as packet communication performed over IP, there are many in accordance with a transmission protocol, such as FTP (File Transfer Protocol), capable of performing packet retransmission according to the state of a communication path. However, in recent years, as packet communication, such as real-time transport protocol (RTP), which is known as a transmission protocol for streaming and reproducing video and / or audio signals, is used for real-time communication applications in which packet retransmission is not allowed. May also apply. In this case, the transmitting side performing packet communication has a strong error correction capability in order to enable the receiving side to correct a large burst error including packet loss in which packets are lost due to the influence of noise or the like generated on the communication path. Need.
[0005]
As such an error correction technique, it is conceivable to add a predetermined error correction code such as a so-called Reed-Solomon code to a packet.
[0006]
Here, an example in which a Reed-Solomon code is used as an error correction code will be described. In a Reed-Solomon code, for example, if a 28-byte error correction code is added to a packet consisting of 188 bytes, the error can be completely corrected if the number of bytes including an error per packet is 14 bytes or less. Things. That is, the Reed-Solomon code is generally an error correction code that can cope only with random errors. However, the Reed-Solomon code cannot correct an error when the number of bytes including an error per packet exceeds 14 bytes. Therefore, the Reed-Solomon code cannot obtain an effect on a large burst error including a packet loss.
[0007]
Therefore, as an error correction technique, it is common practice to add a predetermined error correction code such as a Reed-Solomon code to a packet and then perform convolutional interleaving to disperse errors. .
[0008]
That is, in packet communication, even when a burst error generated on the communication path is superimposed on a packet subjected to convolutional interleaving by the transmitting side, the corresponding convolutional deinterleaving is performed by the receiving side. Accordingly, each packet can be regarded as a random error, and by decoding an error correction code such as a Reed-Solomon code, even a burst error can be corrected. For example, in the packet communication, if a 28-byte error correction code is added to the above-mentioned 188-byte packet and a 216-byte packet is subjected to convolutional interleaving with a depth of 18, the continuous 18 Even if one of the packets completely becomes an error, the error can be completely corrected by the receiving side. Therefore, in packet communication, especially when data is transmitted and received through a communication path in which packet loss is likely to occur, all pieces of continuous information for one packet may be lost. By using the correction technique, it is possible to completely recover the lost packet.
[0009]
As described above, in packet communication, when applied to a real-time communication application in which retransmission of a packet is not allowed, a predetermined error correction code is added to the packet, and convolutional interleaving is performed on the obtained packet. , It is possible to improve the error correction capability for burst errors including packet loss.
[0010]
[Problems to be solved by the invention]
By the way, in packet communication, in order to correct a large burst error including a packet loss using an error correction technique combining the above-described error correction code and convolutional interleaving, a very large code length corresponding to the packet size is required. It is necessary to use an error correction code consisting of
[0011]
However, in packet communication, the addition of an error correction code having a large code length increases the overhead for data, resulting in deterioration of communication efficiency. In packet communication, adding an error correction code having a large code length not only deteriorates communication efficiency but also enlarges the circuit scale of an encoder and a decoder of the error correction code.
[0012]
Therefore, in packet communication, it is desirable to make the code length of the error correction code as small as possible.
[0013]
On the other hand, in the packet communication, when the code length of the error correction code is reduced, it is necessary to make the depth of the convolutional interleave very large in order to correct a large burst error including a packet loss.
[0014]
On the mounting side of the convolutional interleave, the depth of the convolutional interleave is proportional to the required memory capacity. Therefore, in packet communication, the required memory capacity increases in order to make the convolutional interleave very deep, which is not desirable.
[0015]
In the convolutional interleave, a memory is capable of accessing a discontinuous address at every clock of about one clock synchronized with the data word in units of data words such as bytes in the case of the MPEG system. That is, it is necessary to use a dual port RAM (Dual Port Random Access Memory; hereinafter, referred to as DPRAM) that can be accessed randomly.
[0016]
Here, the convolutional interleave can be implemented as a dedicated integrated circuit, but from the viewpoint of cost, simplicity of handling, and the like, general-purpose such as a so-called PLD (Programmable Logic Device) and an FPGA (Field Programmable Gate Array). It is effective to implement it as a simple programmable device. However, in convolutional interleaving, since the capacity of the DPRAM provided inside these general-purpose programmable devices is small, it is necessary to compensate for a large burst error including packet loss by complementing the reduction of the code length of the error correction code. It is difficult to obtain a sufficient depth required for the above. In the convolutional interleaving, if only the capacity of the memory is a problem, the problem can be solved by using a general-purpose memory externally attached to a programmable device such as an SDRAM (Synchronous Dynamic Random Access Memory). Although such an external device is effective for burst-transferring data in units of a plurality of data words, such an external device requires an input signal input period for access. It is difficult to continuously access random addresses in data word units from the viewpoint of increasing the overhead and decreasing the throughput, and in order to realize such access, it is very necessary as a peripheral circuit of the memory. Complicated Therefore, it is difficult to implement for high-speed access in data word units.
[0017]
Thus, in packet communication, in order to correct a large burst error including a packet loss using an error correction technique that combines an error correction code and convolutional interleaving, an error correction code having a large code length is used. There are problems such as deterioration of communication efficiency and circuit enlargement, or increase in memory capacity by realizing deep convolutional interleaving instead of using an error correction code having a small code length. Was.
[0018]
The present invention has been made in view of such circumstances, and reduces the memory capacity required for performing convolutional interleaving. Usually, the depth of convolutional interleaving and the data word per input packet are reduced. A similar convolutional interleave can be realized using a memory having a capacity much smaller than this capacity, although it is necessary to use a memory having a capacity of the number of data words represented by the product of the numbers. A deinterleaving device and a deinterleaving method for restoring an array of data convolved and interleaved by using the interleaving device and the interleaving method on the receiving side, comprising the interleaving device and the interleaving method Like the method, Using a memory having a capacity significantly less than the capacitance that is normally required, and to provide a de-interleaver and de-interleaving process that can achieve similar convolutional deinterleaving.
[0019]
[Means for Solving the Problems]
The interleave device according to the present invention for achieving the above object is an interleave device for performing convolutional interleave on input data in units of data words or in units of a plurality of continuous data words, wherein the storage means for storing data Convolutional interleaving is performed by controlling the data write position and the read position in the storage means, and address control is performed so that the storage area of the data that has been read and interleaved is written to the next data. Address generating means for generating a write address and a read address for use.
[0020]
Such an interleave device according to the present invention performs address control for immediately writing the next data in the area from which data has been read in the storage means, based on the write address and the read address generated by the address generation means.
[0021]
Further, in the interleave device according to the present invention, the input data is composed of a plurality of packets, and the address generation means performs convolutional interleave for each data word constituting an arbitrary packet with respect to the packet. The data word group having the same number of delay packets, which is the number of delays of the packet in which the data word is stored, is collectively classified as a delay group. It is characterized in that a write address and a read address are generated so as to perform reading.
[0022]
In such an interleave device according to the present invention, the address generation means performs writing and reading on continuous addresses in the storage means for each delay group.
[0023]
Further, the interleave method according to the present invention for achieving the above object is an interleave method for performing convolutional interleaving on input data in data word units or a plurality of continuous data word units, and inputs data. The input step and the convolutional interleaving are performed by controlling the data write position and the read position in the storage means for storing data, and the storage area of the data that has been read and the interleave is completed is defined as the write area of the next data. And an address generation step of generating a write address and a read address for performing address control.
[0024]
Such an interleave method according to the present invention performs address control for immediately writing the next data in an area from which data has been read in the storage means, based on the generated write address and read address.
[0025]
In the interleaving method according to the present invention, the input data is composed of a plurality of packets, and in the address generation step, for each data word constituting an arbitrary packet, convolutional interleaving for the packet is performed. As a result, a group of data words having the same number of delay packets, which is the number of delays of the packet in which the data word is stored, are grouped and classified as a delay group, and each delay group is written to a continuous address in the storage means. A write address and a read address are generated so that reading and writing are performed.
[0026]
In such an interleave method according to the present invention, writing and reading are performed on continuous addresses in the storage means for each delay group.
[0027]
Furthermore, the deinterleave device according to the present invention that achieves the above-described object restores the array of data rearranged by using an interleave device that performs convolutional interleaving on a data word basis or on a plurality of consecutive data words. A deinterleaving device for performing convolutional deinterleaving on input data in units of data words or in units of a plurality of continuous data words, a storage unit for storing data, and a data writing position in the storage unit In addition to performing convolutional deinterleaving by controlling the read position and the read position, the write address and read address for performing the address control in which the storage area of the data that has been read and deinterleaved is the write area of the next data are set. Generated address raw It is characterized in that it comprises a means.
[0028]
Such a deinterleave device according to the present invention, when performing convolutional deinterleave corresponding to convolutional interleave by the interleave device, reads data in the storage unit based on the write address and the read address generated by the address generation unit. The address control for immediately writing the next data to the output area is performed.
[0029]
Further, in the deinterleave device according to the present invention, the input data is composed of a plurality of packets, and the address generating means performs, for each data word constituting an arbitrary packet, a convolutional data for the packet. A group of data words having the same number of delay packets, which is the number of delays of the packet in which the data word is stored by being subjected to the interleaving, are collectively classified as a delay group. It is characterized in that a write address and a read address are generated so as to perform writing and reading.
[0030]
In such a deinterleave device according to the present invention, the address generation means performs writing and reading on continuous addresses in the storage means for each delay group.
[0031]
Still further, the deinterleaving method according to the present invention that achieves the above-described object restores an array of data rearranged using an interleaving method that performs convolutional interleaving in units of data words or a plurality of consecutive data words. Thus, a deinterleaving method for performing convolutional deinterleaving on input data in data word units or a plurality of continuous data word units, comprising: an input step of inputting data; and a storage unit for storing data. The convolutional deinterleaving is performed by controlling the data write position and the data read position, and a write operation for performing an address control for setting the storage area of the read and deinterleaved data to the next data write area. Address and read address It is characterized in that it comprises a product to address generation process.
[0032]
Such a deinterleaving method according to the present invention is a method for performing convolutional deinterleaving corresponding to convolutional interleaving by an interleaving method, based on a generated write address and a read address, an area in which data is read from a storage unit. Address control for writing the next data immediately.
[0033]
Further, in the deinterleaving method according to the present invention, the input data is composed of a plurality of packets, and in the address generation step, for each data word constituting an arbitrary packet, the convolutional data for the packet is processed. A group of data words having the same number of delay packets, which is the number of delays of a packet in which the data word is stored by being subjected to interleaving, are grouped and classified as a delay group. A write address and a read address are generated such that writing and reading are performed.
[0034]
In such a deinterleaving method according to the present invention, writing and reading are performed on continuous addresses in the storage means for each delay group.
[0035]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, specific embodiments to which the present invention is applied will be described in detail with reference to the drawings.
In this embodiment, an encoder that inputs packetized data, adds a predetermined error correction code to each packet, and performs interleaving and transmission, and a predetermined communication from the encoder. And a decoder for decoding received data received via a channel. In this data transmission / reception system, the encoder uses an error correction code having a small code length by performing convolutional interleaving in units of data words or a plurality of continuous data words and interleaving in units of packets as interleaving. Thus, it is possible to correct a large burst error including packet loss. On the other hand, in a data transmission / reception system, a decoder decodes received data that has been encoded and transmitted by such an encoder and received via a predetermined communication path, and completely eliminates a large burst error including packet loss. Can be corrected.
[0036]
In particular, in a data transmission / reception system, in realizing convolutional interleaving and convolutional deinterleaving in units of data words or a plurality of consecutive data words, usually, the depth of convolutional interleaving and convolutional deinterleaving and per input packet It is necessary to implement using a memory having a capacity of the number of data words represented by a product of the number of data words of the same, but using a memory having a capacity much smaller than this capacity, a similar convolution interleave and convolution Deinterleaving can be realized.
[0037]
In the following, an encoder in a data transmission / reception system is provided with an uncompressed video and / or audio signal input via a serial bus or the like compliant with HD-SDI (High Definition-Serial Digital Interface), for example. A plurality of transport packets (TS Packets) constituting a transport stream (Transport Stream) obtained by performing compression encoding based on the so-called MPEG (Moving Picture Experts Group) -2 method are input. A description will be given on the assumption that a so-called Reed-Solomon code (Reed-Solomon code) is used as an error correction code added to a transport packet by this encoder.
[0038]
As shown in FIG. 1, for example, a data transmission / reception system includes an
[0039]
First, the
[0040]
In the
[0041]
The Reed-
[0042]
The
[0043]
Here, the depth of convolutional interleaving means that, when interleaving is performed in units of bytes, a packet consisting of a first number of bytes is divided for each second number of bytes smaller than this value. Indicates that each
[0044]
That is, when interleaving is performed in byte units, the
[0045]
In addition, since the header of the transport stream TS is 4 bytes, and the interleaving is performed in units of 4 consecutive bytes as one unit, as shown in FIG. 4A, the
[0046]
Thus, the
[0047]
The
[0048]
The
[0049]
That is, assuming that convolutional interleaving is performed, the
[0050]
Further, when performing block interleaving, the
[0051]
As a result, the
[0052]
Here, the packet interleaved data PID interleaved by the
[0053]
Also, when block interleaving is performed, for example, in order to notify the receiving side of the first packet of an interleaved block composed of 108 consecutive packets / interleaved packets PIP, the first packet of the interleaved block PIP The value of a certain sync byte is replaced from “0x47” to, for example, “0xB7”. Further, for the remaining packet interleaved packets PIP, the value of the sync byte is inverted for every six packets interleaved packets PIP, and if "0x47" is replaced with "0xB8", the receiving side detects "0xB8". Thus, the deinterleaving process can be synchronized in advance, and when "0xB7" is detected, an output after the block deinterleaving process can be obtained promptly.
[0054]
The
[0055]
The packetizing
[0056]
Here, the six packet interleaved packets PIP concatenated as the packet data PD include 12 bytes of information from each of 18 × 6 = 108 coded packets EP. FIGS. 7A to 7D are diagrams for explaining transition of generation of packet data PD when convolutional interleaving is performed by byte (or unit) by
[0057]
FIGS. 8A to 8E are diagrams for explaining transition of generation of packet data PD when convolutional interleaving in units of units (or bytes) in the
[0058]
As shown in FIGS. 7D and 8D, the packet data PD does not have a duplicate number, that is, is composed of information from 108 coded packets EP different from each other. This is because, when two identical numbers exist in one packet data PD, for example, as shown in FIG. 8E, when generating the packet data PD, the six packet interleaved packets PIP to be connected are different from those in FIG. If there are two
[0059]
Therefore, the packetizing
[0060]
The transmitting
[0061]
The
[0062]
That is, when the
[0063]
Then, the
[0064]
Here, the
[0065]
Also, the
[0066]
Then, as shown in FIG. 9F (FIG. 10E), the
[0067]
As described above, the
[0068]
Further, the
[0069]
Furthermore, the
[0070]
The transmission data TD transmitted by the
[0071]
Next, the
For example, as shown in FIG. 1, the
[0072]
In the
[0073]
The receiving
[0074]
Based on the analysis information AN supplied from the receiving
[0075]
The
[0076]
The
[0077]
Also, when the packet interleaved packet PIP ′ is generated by performing block interleaving with a depth of 6 that is completed with 108 byte interleaved packets as described above, the depth that is completed with 108 byte interleaved packets is The block deinterleaving of
[0078]
More specifically, the
[0079]
At this time, the
[0080]
The
[0081]
The
[0082]
Specifically, similarly to the
[0083]
The
[0084]
The
[0085]
The Reed-
It is provided corresponding to the
[0086]
The
[0087]
That is, when the receiving
[0088]
At this time, the information included in one encoded packet EP generated in the
[0089]
The
[0090]
Further, the
[0091]
In addition, when the block interleave processing in units of packets is performed, the information included in one encoded packet EP generated by the
[0092]
The
[0093]
The
[0094]
Further, the
[0095]
It should be noted that the distributed information indicated by the hatched portions in FIGS. 11A and 11B is aggregated into one transport packet TSP as indicated by the black cells in FIG. 11E. 12A and 12B, the dispersed information indicated by the hatched portions is aggregated into one transport packet TSP, as indicated by the black cells in FIG. 12F.
[0096]
Then, the
[0097]
As described above, even when the
[0098]
Also, the
[0099]
As described above, the
[0100]
When performing convolutional interleaving or convolutional deinterleaving on a byte or unit basis by using a DPRAM as a memory, while rearranging data for performing convolutional interleaving or convolutional deinterleaving on the write side of the DPRAM, It is usual to read out one packet at a time from the head address of the DPRAM. Conversely, while writing one packet at a time from the start address of the DPRAM on the writing side, and rearranging data for convolutional interleaving or convolutional deinterleaving on the reading side of the DPRAM, Alternatively, convolutional interleaving or convolutional deinterleaving can be performed on a unit basis. Therefore, even if there is an area from which data has been read out by using the DPRAM to perform convolutional interleaving or convolutional deinterleaving, the DPRAM does not use this area immediately after reading out the data, and convolutional interleaving or convolutionalization is performed. About half of the area secured for deinterleaving is not used.
[0101]
Therefore, when data is read from a certain area in the DPRAM, the
[0102]
In order to realize such a data write operation and a data read operation for the DPRAM, the
[0103]
Hereinafter, a case where interleaving and deinterleaving are performed in byte units and unit units will be described. In order to simplify the description, when interleaving and deinterleaving are performed in byte units, the
[0104]
Here, each of the
[0105]
First, the operation when processing is performed in byte units will be described. The
[0106]
In order to classify each byte constituting a certain encoded packet EP into such a delay group, the
[0107]
Here, the count value cnt_del counted by the first counter represents the number of delayed packets, that is, the delay, and the count value cnt_block counted by the second counter is determined by the period of the first counter. Is a block number.
[0108]
The
[0109]
More specifically, the
[0110]
That is, as preparation for performing convolutional interleaving, the
[0111]
Then, as shown in the first column from the left in FIG. 14C, the
[0112]
The
[0113]
As a result, the
[0114]
Subsequently, as preparation for inputting the next encoded packet EP, the
[0115]
Then, as shown in the second from the left in FIG. 14C, the
[0116]
In addition, the
[0117]
As a result, the
[0118]
Subsequently, as preparation for inputting the next encoded packet EP, the
[0119]
Then, as shown in the third from the left in FIG. 14C, the
[0120]
In addition, the
[0121]
As a result, the
[0122]
Similarly, in preparation for inputting the next encoded packet EP, the
[0123]
Then, as shown in the fourth from the left in FIG. 14C, the
[0124]
Note that the data mapped to each address in the DPRAM at this stage is shown in detail in FIG. That is, in the
[0125]
Further, as shown in the fourth from the left in FIG. 14C, the
[0126]
Thereby, the
[0127]
As described above, the
[0128]
Next, the
Similarly to the
[0129]
That is, the
[0130]
Like the
[0131]
Specifically, assuming that the
[0132]
That is, the
[0133]
In FIG. 17B, unlike the above-described FIG. 14B, the count value cnt_del by the first counter does not match the value of “m” of the delay group described as “nm”, This is a convenience to show how the coded packet EP ′ corresponding to the coded packet EP is restored by performing convolutional deinterleaving on the byte interleaved packet BIP ′.
[0134]
Then, as shown first from the left in FIG. 17C, the
[0135]
The
[0136]
As a result, the
[0137]
Subsequently, the
[0138]
Then, as shown in the second from the left in FIG. 17C, the
[0139]
The
[0140]
As a result, the
[0141]
Subsequently, the
[0142]
Then, as shown in the third from the left in FIG. 17C, the
[0143]
The
[0144]
Thereby, the
[0145]
Similarly, the
[0146]
Then, as shown in the fourth from the left in FIG. 17C, the
[0147]
The data mapped to each address in the DPRAM at this stage is shown in detail in FIG. That is, in the
[0148]
Further, as shown in the fourth from the left in FIG. 17C, the
[0149]
Accordingly, the
[0150]
In this manner, the
[0151]
As described above, the
[0152]
Next, an operation when processing is performed in units of units will be described. The
[0153]
In order to classify each byte constituting a certain encoded packet EP into such a delay group, the
[0154]
Specifically, as shown in FIG. 19A, packet numbers such as 0, 1, 2, 3,... Are assigned to each of the inputted 24-byte encoded packets EP, and as shown in FIG. 19B. As described above, if each byte constituting each encoded packet EP is assigned a byte number of 0 to 23, the
[0155]
The
[0156]
Here, assuming that the
[0157]
In this manner, the
[0158]
In this case, the
[0159]
Next, the
[0160]
That is, similarly to the
[0161]
The difference from the
[0162]
Similarly to the
[0163]
Here, assuming that the
[0164]
That is, in the
[0165]
That is, in the
[0166]
As described above, the
[0167]
In this case, the
[0168]
As described above, each of the
[0169]
Therefore, such a
[0170]
First, when writing data to the DPRAM, the
[0171]
That is, as shown in FIG. 23, the
[0172]
If it is determined that the packet is not a packet delimiter, the
[0173]
That is, when the count value cnt_del by the first counter is set to “0” in step S3, the
[0174]
When the count value cnt_del by the first counter is set to “1” in step S3, the
(Addr_base + C × U × 2 + cnt_block × U + cnt_byte)
Is generated, each byte belonging to the delay group del1 is written in the area indicated by the write address, and the process proceeds to step S2.
[0175]
Further, when the count value cnt_del by the first counter is set to “2” in step S3, the
(Addr_base + C × U × (2 + 3) + cnt_block × U + cnt_byte)
Is generated, each byte belonging to the delay group del2 is written in the area indicated by the write address, and the process proceeds to step S2.
[0176]
Furthermore, when the count value cnt_del by the first counter is set to “3” in step S3, the
(Addr_base + C × U × (2 + 3 + 4) + cnt_block × U + cnt_byte)
Is generated, each byte belonging to the delay group del3 is written in the area indicated by the write address, and the process proceeds to step S2.
[0177]
When the count value cnt_del by the first counter is set to “D−1” in step S3, the
(Addr_base + C × U × (2 + 3 +... + D) + cnt_block × U + cnt_byte)
Is generated, and each byte belonging to the delay group del (D-1) is written in the area indicated by the write address, and the process proceeds to step S2.
[0178]
The
[0179]
In this way, the
[0180]
The
[0181]
On the other hand, when reading data from the DPRAM, each of the
[0182]
That is, as shown in FIG. 24, the
[0183]
Here, when it is determined that the packet is not a packet delimiter, the
[0184]
That is, when the count value cnt_del by the first counter is set to “0” in step S13, the
[0185]
When the count value cnt_del by the first counter is set to “1” in step S13, the
(Addr_base + C × U × 1 + cnt_block × U + cnt_byte)
Is generated, each byte stored in the area indicated by the read address is read as a delay group del1, and the process proceeds to step S12.
[0186]
Further, when the count value cnt_del by the first counter is set to “2” in step S13, the
(Addr_base + C × U × (1 + 2) + cnt_block × U + cnt_byte)
Is generated, each byte stored in the area indicated by the read address is read as a delay group del2, and the process proceeds to step S12.
[0187]
Furthermore, when the count value cnt_del of the first counter is set to “3” in step S13, the
(Addr_base + C × U × (1 + 2 + 3) + cnt_block × U + cnt_byte)
Is generated, and each byte stored in the area indicated by the read address is read as a delay group del3, and the process proceeds to step S12.
[0188]
When the count value cnt_del by the first counter is set to “D−1” in step S13, the
(Addr_base + C × U × (1 + 2 +... + (D−1)) + cnt_block × U + cnt_byte)
Is generated, and each byte stored in the area indicated by the read address is read as a delay group del (D-1), and the process proceeds to step S12.
[0189]
The
[0190]
In this way, the
[0191]
The
[0192]
The
[0193]
When a convolutional interleave or a convolutional deinterleave with a depth of 4 and a period of 3 is performed in units of 2 bytes as a unit with respect to a packet consisting of 24 bytes, as described above, if normal, D When a DPRAM having a capacity of × N = 4 × 24 = 96 bytes is required, C × U × (2 + 3 +... + D) = C × U × ((1 + D) × D / 2-1) = 3 × It is only necessary to use a DPRAM having a capacity of 2 × ((1 + 4) × 4 / 2-1) = 54 bytes. Further, as shown in FIGS. 2A to 12F, for a packet consisting of 216 bytes, When convolutional interleaving or deinterleaving with a depth of 18 and a period of 3 is performed in units of 4 bytes as one unit, D × N = 18 × 216 = 38 When a DPRAM having a capacity of 8 bytes is required, C × U × (2 + 3 +... + D) = C × U × ((1 + D) × D / 2-1) = 3 × 4 × ((1 + 18) × 18 / 2-1) = It is only necessary to use a DPRAM having a capacity of 2040 bytes.
[0194]
As described above, each of the
[0195]
As described above, in the data transmission / reception system shown as the embodiment of the present invention, the
[0196]
In the data transmission / reception system, among the data subjected to convolutional interleaving and convolutional deinterleaving, data having the same number of delay packets are classified and classified as a delay group. In this case, it is possible to easily calculate a write address and a read address for immediately using a memory area used for convolutional interleaving and convolutional deinterleaving.
[0197]
Note that the present invention is not limited to the above-described embodiment. For example, in the above-described embodiment, each unit including the
[0198]
In addition, when a transport stream TS obtained by performing compression encoding based on the MPEG-2 method is input to the
[0199]
Further, in the above-described embodiment, the transport stream TS obtained by performing the compression encoding based on the MPEG-2 system is input to the
[0200]
Furthermore, in the above-described embodiment, the description has been made using the Reed-Solomon code as the error correction code. However, the present invention can be applied to encoding and decoding using an arbitrary error correction code.
[0201]
Further, in the above-described embodiment, an example has been described in which the error correction is mainly performed when a packet loss occurs. However, the present invention is also effective when a large burst error occurs as well as the packet loss. Of course. In the present invention, it goes without saying that correction of a normal burst error or a random error can be performed by the same processing as in the related art.
[0202]
Further, in the above-described embodiment, the data transmission / reception provided with the
[0203]
As described above, it goes without saying that the present invention can be appropriately changed without departing from the spirit of the present invention.
[0204]
【The invention's effect】
As described above in detail, the interleave device according to the present invention is an interleave device that performs convolutional interleaving on input data in units of data words or in units of a plurality of continuous data words, and stores data. The convolution interleaving is performed by controlling a storage unit and a data write position and a read position of the data in the storage unit, and a storage region of data that has been read and interleaved is set as a next data write region. Address generation means for generating a write address and a read address for performing address control.
[0205]
Therefore, the interleave device according to the present invention performs the address control for immediately writing the next data in the area from which the data has been read in the storage means, based on the write address and the read address generated by the address generation means. Therefore, the required capacity of the storage means can be significantly reduced.
[0206]
Further, in the interleave device according to the present invention, the input data is composed of a plurality of packets, and the address generation means performs convolutional interleave for each data word constituting an arbitrary packet with respect to the packet. The data word group having the same number of delay packets, which is the number of delays of the packet in which the data word is stored, is collectively classified as a delay group, and writing and writing to successive addresses in the storage unit are performed for each delay group. A write address and a read address are generated so as to perform reading.
[0207]
Therefore, the interleaving apparatus according to the present invention uses the area in the storage unit used for the convolutional interleave immediately by writing and reading the continuous address in the storage unit for each delay group by the address generation unit. Calculation of a write address and a read address can be easily performed.
[0208]
Further, the interleaving method according to the present invention is an interleaving method for performing convolutional interleaving on input data in data word units or a plurality of continuous data word units, wherein an input step of inputting data, and In order to perform convolutional interleaving by controlling the data write position and the read position in the storage means for storing, and to perform address control in which the storage area of the data that has been read and interleaved is set as the write area of the next data And an address generation step of generating a write address and a read address.
[0209]
Therefore, the interleave method according to the present invention is required by performing address control for immediately writing the next data in the area from which data has been read in the storage means, based on the generated write address and read address. The capacity of the storage means can be significantly reduced.
[0210]
In the interleaving method according to the present invention, the input data is composed of a plurality of packets, and in the address generation step, for each data word constituting an arbitrary packet, convolutional interleaving for the packet is performed. As a result, a group of data words having the same number of delay packets, which is the number of delays of the packet in which the data word is stored, are grouped and classified as a delay group, and each delay group is written to a continuous address in the storage means. A write address and a read address are generated so that the reading and the reading are performed.
[0211]
Therefore, the interleave method according to the present invention writes and reads data from and to consecutive addresses in the storage means for each delay group, so that a write address for immediately utilizing an area in the storage means used for convolutional interleaving is provided. In addition, the calculation of the read address can be easily performed.
[0212]
Further, the deinterleaving device according to the present invention may be configured such that an array of data rearranged using an interleaving device that performs convolutional interleaving in units of data words or a plurality of continuous data words is restored so that input data is restored. A deinterleaving device for performing convolutional deinterleaving in units of data words or in units of a plurality of consecutive data words, and controls a storage unit for storing data, and a data writing position and a reading position in the storage unit. Address generating means for generating a write address and a read address for performing convolutional deinterleaving, and performing address control for setting a storage area of data that has been read out and deinterleaved to a next data write area. Is provided.
[0213]
Therefore, the deinterleave device according to the present invention reads out data in the storage unit based on the write address and the read address generated by the address generation unit when performing the convolution deinterleave corresponding to the convolutional interleave by the interleave device. By performing address control for immediately writing the next data in the specified area, the required capacity of the storage unit can be significantly reduced.
[0214]
Further, in the deinterleave device according to the present invention, the input data is composed of a plurality of packets, and the address generating means performs, for each data word constituting an arbitrary packet, a convolutional data for the packet. A group of data words having the same number of delay packets, which is the number of delays of the packet in which the data word is stored by being subjected to the interleaving, are collectively classified as a delay group. A write address and a read address are generated so as to perform writing and reading.
[0215]
Therefore, the deinterleave device according to the present invention writes and reads consecutive addresses in the storage unit for each delay group by the address generation unit, so that the area in the storage unit used for the convolution deinterleave can be immediately performed. Calculation of a write address and a read address to be used can be easily performed.
[0216]
Still further, in the deinterleaving method according to the present invention, the input is performed so as to restore the arrangement of the data rearranged using the interleaving method of performing convolutional interleaving in units of data words or in units of a plurality of continuous data words. A deinterleaving method for performing convolution deinterleaving on data in units of a data word or a plurality of continuous data words, comprising: an input step of inputting data; and a data writing position and a reading position in a storage unit for storing data. The convolutional deinterleaving is performed by controlling the position, and a write address and a read address for performing address control in which a storage area of data that has been read out and deinterleaved is a write area of the next data are generated. Address generation And a degree.
[0219]
Therefore, the deinterleaving method according to the present invention, when performing convolution deinterleaving corresponding to convolutional interleaving by the interleaving method, based on the generated write address and read address, based on the generated data in the area where the data has been read in the storage means. By performing address control for immediately writing the next data, the required capacity of the storage means can be significantly reduced.
[0218]
Further, in the deinterleaving method according to the present invention, the input data is composed of a plurality of packets, and in the address generation step, for each data word constituting an arbitrary packet, the convolutional data for the packet is processed. A group of data words having the same number of delay packets, which is the number of delays of a packet in which the data word is stored by being subjected to interleaving, are grouped and classified as a delay group. A write address and a read address are generated so that writing and reading are performed.
[0219]
Therefore, the deinterleaving method according to the present invention performs writing and reading on consecutive addresses in the storage unit for each delay group, thereby immediately using the area in the storage unit used for the convolution deinterleaving. The calculation of the write address and the read address can be easily performed.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a data transmission / reception system shown as an embodiment of the present invention.
FIG. 2 is a diagram for explaining a process of a Reed-Solomon encoder included in an encoder in the data transmission / reception system.
FIG. 3 is a diagram for explaining a byte-by-byte interleaving process performed by a byte interleaver included in an encoder;
FIG. 4 is a diagram for explaining a plurality of consecutive byte-by-byte interleaving processes performed by a byte interleaver of the encoder;
FIG. 5 is a diagram for explaining a packet-based convolutional interleaving process performed by a packet interleaver included in an encoder.
FIG. 6 is a diagram for explaining packet-based block interleaving performed by a packet interleaver included in the encoder.
FIG. 7 is a diagram for specifically explaining a transition of data content in each section on the encoder side when a packet interleaver performs convolutional interleaving processing in packet units.
FIG. 8 is a diagram for specifically explaining a transition of data content in each unit on the encoder side when a packet interleaver performs block interleave processing in packet units.
FIG. 9 is a diagram for explaining a transition of a packet format in each unit on the encoder side when a packet interleaver performs convolutional interleaving processing in packet units.
FIG. 10 is a diagram for explaining a transition of a packet format in each unit on the encoder side when a packet interleaver performs block interleave processing in units of packets.
FIG. 11 is a diagram for explaining a transition of a packet format in each unit on the decoder side when a packet interleaver performs a convolutional interleaving process in packet units.
FIG. 12 is a diagram for explaining a transition of a packet format in each unit on the decoder side when a packet interleaver performs block interleave processing in units of packets.
FIG. 13 is a diagram for explaining a count value when a byte-by-byte process is performed by a byte interleaver.
FIG. 14 is a diagram for describing writing and reading of data to and from the DPRAM in the processing of the byte interleaver.
FIG. 15 is a diagram showing an example of a data mapping state of a DPRAM provided in a byte interleaver.
FIG. 16 is a diagram illustrating a count value in a process of a byte deinterleaver included in a decoder.
FIG. 17 is a diagram for describing writing and reading of data to and from the DPRAM in the processing of the byte deinterleaver.
FIG. 18 is a diagram illustrating an example of a data mapping state of a DPRAM provided in a byte deinterleaver.
FIG. 19 is a diagram for explaining a count value when a plurality of continuous byte-by-byte processes are performed by a byte interleaver.
FIG. 20 is a diagram showing how data is mapped to each address in a DPRAM provided in a byte interleaver.
FIG. 21 is a diagram for explaining a count value when a plurality of continuous byte-unit processes are performed by a byte deinterleaver.
FIG. 22 is a diagram showing how data is mapped to each address in a DPRAM provided in a byte deinterleaver.
FIG. 23 is a flowchart illustrating an operation of generating a write address for writing data to a DPRAM.
FIG. 24 is a flowchart illustrating an operation of generating a read address for reading data from a DPRAM.
[Explanation of symbols]
Claims (38)
データを記憶する記憶手段と、
上記記憶手段における上記データの書き込み位置と読み出し位置を制御することで上記畳み込みインターリーブを施すとともに、読み出しが行われてインターリーブが完了したデータの記憶領域を次のデータの書き込み領域とするアドレス制御を行うための書き込みアドレス及び読み出しアドレスを生成するアドレス生成手段とを備えること
を特徴とするインターリーブ装置。An interleaving apparatus that performs convolutional interleaving on input data in units of data words or in units of a plurality of continuous data words,
Storage means for storing data;
The convolutional interleaving is performed by controlling the write position and the read position of the data in the storage means, and the address control is performed such that the storage area of the data that has been read and the interleave is completed is the write area of the next data. An address generating means for generating a write address and a read address for use in the interleaving apparatus.
上記アドレス生成手段は、任意のパケットを構成する各データワードについて、当該パケットに対する、畳み込みインターリーブが施されることによって当該データワードが格納されるパケットの遅延数である遅延パケット数が等しいデータワード群を遅延グループとしてまとめて分類し、上記遅延グループ毎に上記記憶手段における連続するアドレスに対して書き込み及び読み出しを行うように、上記書き込みアドレス及び上記読み出しアドレスを生成すること
を特徴とする請求項1記載のインターリーブ装置。The input data is composed of a plurality of packets,
The above-mentioned address generation means is configured such that, for each data word constituting an arbitrary packet, a convolutional interleave is performed on the packet so that a data word group having the same number of delay packets as the number of delays of the packet storing the data word The write address and the read address are generated such that the write address and the read address are grouped into a delay group, and writing and reading are performed on continuous addresses in the storage unit for each of the delay groups. The interleaving device as described.
上記パケットのデータワード数と畳み込みインターリーブの深さとの商に対応したカウント値を上記パケット毎に計数する第1の計数手段と、
上記第1の計数手段の周期に対応したカウント値を上記パケット毎に計数する第2の計数手段と、
上記複数の連続するデータワード単位で畳み込みインターリーブを施す際に、上記データワード単位の数に対応したカウント値を上記パケット毎に計数する第3の計数手段とを有すること
を特徴とする請求項2記載のインターリーブ装置。The address generation means includes:
First counting means for counting, for each packet, a count value corresponding to the quotient of the number of data words of the packet and the convolutional interleave depth;
A second counting unit that counts a count value corresponding to a cycle of the first counting unit for each packet;
3. The apparatus according to claim 2, further comprising: third counting means for counting, for each packet, a count value corresponding to the number of the data word units when performing convolutional interleaving on the plurality of continuous data word units. The interleaving device as described.
上記第2の計数手段によって計数されるカウント値は、上記第1の計数手段の周期を1ブロックとしたブロック数を表すものであること
を特徴とする請求項3記載のインターリーブ装置。The count value counted by the first counting means represents the number of delayed packets,
4. The interleave apparatus according to claim 3, wherein the count value counted by said second counting means represents the number of blocks in which the cycle of said first counting means is one block.
を特徴とする請求項4記載のインターリーブ装置。
(addr_base+C×U×(2+3+・・・+D)+cnt_block×U+cnt_byte)・・・(1)
(addr_base+C×U×(1+2+・・・+(D−1))+cnt_block×U+cnt_byte)・・・(2)
(ただし、addr_baseは、上記記憶手段に対してデータの書き込み及び読み出しを行う先頭を示す基準アドレスであり、cnt_blockは、上記第2の計数手段によって計数されるカウント値であり、cnt_byteは、上記第3の計数手段によって計数されるカウント値である。)The address generating means is configured to calculate the count counted by the first counting means, assuming that the depth of the convolutional interleave is D, the period of the convolutional interleave is C, and the number of data word units when applying the convolutional interleave is U. When the value is 0, the data is output to the storage means without writing, and when the count value counted by the first counting means is a value D-1 other than 0, the following general formula ( The interleave apparatus according to claim 4, wherein the write address represented by 1) is generated and the read address represented by the following general formula (2) is generated.
(Addr_base + C × U × (2 + 3 +... + D) + cnt_block × U + cnt_byte) (1)
(Addr_base + C × U × (1 + 2 +... + (D−1)) + cnt_block × U + cnt_byte) (2)
(However, addr_base is a reference address indicating the head of writing and reading data to and from the storage unit, cnt_block is a count value counted by the second counting unit, and cnt_byte is the 3 is a count value counted by the counting means.)
を特徴とする請求項5記載のインターリーブ装置。When all the data words constituting an arbitrary packet are input, the address generating means converts the reference address addr_base into the convolutional interleave cycle C and the number U of the data word units in preparation for inputting the next packet. 6. The interleave device according to claim 5, wherein the value is increased by a multiplication value of:
を特徴とする請求項1記載のインターリーブ装置。2. The interleave device according to claim 1, wherein said storage means is a dual-port random access memory capable of accessing discontinuous addresses for each data word in units of clocks synchronized with the data word. .
を特徴とする請求項1記載のインターリーブ装置。2. The interleave device according to claim 1, wherein the input data is data to which a predetermined error correction code is added.
を特徴とする請求項8記載のインターリーブ装置。The input data is obtained by adding the error correction code to a transport stream obtained by subjecting predetermined data to compression encoding based on the MPEG-2 system. The interleaving device according to claim 8, wherein
を特徴とする請求項8記載のインターリーブ装置。The interleave apparatus according to claim 8, wherein the error correction code is a Reed-Solomon code.
を特徴とする請求項1記載のインターリーブ装置。2. The interleaving apparatus according to claim 1, wherein convolutional interleaving is performed in byte units or a plurality of consecutive byte units.
上記データを入力する入力工程と、
データを記憶する記憶手段における上記データの書き込み位置と読み出し位置を制御することで上記畳み込みインターリーブを施すとともに、読み出しが行われてインターリーブが完了したデータの記憶領域を次のデータの書き込み領域とするアドレス制御を行うための書き込みアドレス及び読み出しアドレスを生成するアドレス生成工程とを備えること
を特徴とするインターリーブ方法。An interleaving method for performing convolutional interleaving on input data on a data word basis or on a plurality of consecutive data words basis,
An input step of inputting the data,
The convolutional interleaving is performed by controlling the writing position and the reading position of the data in the storage means for storing the data, and the storage area of the data that has been read and the interleaving is completed is set as the writing area of the next data. An address generation step of generating a write address and a read address for performing control.
上記アドレス生成工程では、任意のパケットを構成する各データワードについて、当該パケットに対する、畳み込みインターリーブが施されることによって当該データワードが格納されるパケットの遅延数である遅延パケット数が等しいデータワード群が遅延グループとしてまとめられて分類され、上記遅延グループ毎に上記記憶手段における連続するアドレスに対して書き込み及び読み出しが行われるように、上記書き込みアドレス及び上記読み出しアドレスが生成されること
を特徴とする請求項12記載のインターリーブ方法。The input data is composed of a plurality of packets,
In the address generation step, for each data word constituting an arbitrary packet, a convolutional interleave is performed on the packet, and a data word group in which the number of delayed packets, which is the number of delays of the packet in which the data word is stored, is equal. Are grouped together as a delay group, and the write address and the read address are generated such that writing and reading are performed on successive addresses in the storage means for each of the delay groups. 13. The interleaving method according to claim 12.
を特徴とする請求項13記載のインターリーブ方法。In the address generation step, a count value corresponding to the quotient of the number of data words of the packet and the convolutional interleave depth is counted for each packet by the first counting means, and the count value corresponds to the cycle of the first counting means. A count value is counted for each packet by the second counting means, and when convolutional interleaving is performed on the plurality of continuous data words, a count value corresponding to the number of data words is calculated by the third counting means. 14. The interleaving method according to claim 13, wherein the counting is performed for each packet.
上記第2の計数手段によって計数されるカウント値は、上記第1の計数手段の周期を1ブロックとしたブロック数を表すものであること
を特徴とする請求項14記載のインターリーブ方法。The count value counted by the first counting means represents the number of delayed packets,
15. The interleaving method according to claim 14, wherein the count value counted by the second counting means represents the number of blocks in which the cycle of the first counting means is one block.
を特徴とする請求項15記載のインターリーブ方法。
(addr_base+C×U×(2+3+・・・+D)+cnt_block×U+cnt_byte)・・・(3)
(addr_base+C×U×(1+2+・・・+(D−1))+cnt_block×U+cnt_byte)・・・(4)
(ただし、addr_baseは、上記記憶手段に対してデータの書き込み及び読み出しを行う先頭を示す基準アドレスであり、cnt_blockは、上記第2の計数手段によって計数されるカウント値であり、cnt_byteは、上記第3の計数手段によって計数されるカウント値である。)In the address generation step, assuming that the depth of the convolutional interleave is D, the period of the convolutional interleave is C, and the number of data words in applying the convolutional interleave is U, the count counted by the first counting means When the value is 0, the data is output to the storage means without writing, and when the count value counted by the first counting means is a value D-1 other than 0, the following general formula ( 16. The interleaving method according to claim 15, wherein the write address represented by 3) is generated and the read address represented by the following general formula (4) is generated.
(Addr_base + C × U × (2 + 3 +... + D) + cnt_block × U + cnt_byte) (3)
(Addr_base + C × U × (1 + 2 +... + (D−1)) + cnt_block × U + cnt_byte) (4)
(However, addr_base is a reference address indicating the head of writing and reading data to and from the storage unit, cnt_block is a count value counted by the second counting unit, and cnt_byte is the 3 is a count value counted by the counting means.)
を特徴とする請求項16記載のインターリーブ方法。In the address generation step, when all data words constituting an arbitrary packet are input, the reference address addr_base is convoluted with the period C of interleaving and the number U of the data word units in preparation for inputting the next packet. 17. The interleaving method according to claim 16, wherein the multiplication value is increased by the multiplication value.
を特徴とする請求項12記載のインターリーブ方法。13. The interleave according to claim 12, wherein a dual-port random access memory capable of accessing a discontinuous address for each data word in units of clocks synchronized with the data word is used as the storage unit. Method.
を特徴とする請求項12記載のインターリーブ方法。13. The interleaving method according to claim 12, wherein the input data is data to which a predetermined error correction code is added.
を特徴とする請求項19記載のインターリーブ方法。The input data is obtained by adding the error correction code to a transport stream obtained by subjecting predetermined data to compression encoding based on the MPEG-2 system. 20. The interleaving method according to claim 19, wherein:
を特徴とする請求項19記載のインターリーブ方法。20. The interleaving method according to claim 19, wherein the error correction code is a Reed-Solomon code.
を特徴とする請求項12記載のインターリーブ方法。13. The interleaving method according to claim 12, wherein convolutional interleaving is performed in units of bytes or a plurality of consecutive bytes.
データを記憶する記憶手段と、
上記記憶手段における上記データの書き込み位置と読み出し位置を制御することで上記畳み込みデインターリーブを施すとともに、読み出しが行われてデインターリーブが完了したデータの記憶領域を次のデータの書き込み領域とするアドレス制御を行うための書き込みアドレス及び読み出しアドレスを生成するアドレス生成手段とを備えること
を特徴とするデインターリーブ装置。The input data is returned in units of data words or multiple consecutive words so as to restore the array of data rearranged using an interleave device that performs convolutional interleaving in units of data words or multiple consecutive data words. A deinterleaving device for performing convolutional deinterleaving on a data word basis,
Storage means for storing data;
The convolution deinterleaving is performed by controlling the data writing position and the reading position of the data in the storage means, and the address control is performed by setting the storage area of the data that has been read and deinterleaved to be the next data writing area. A deinterleaving device comprising: an address generating means for generating a write address and a read address for performing the operation.
上記アドレス生成手段は、任意のパケットを構成する各データワードについて、当該パケットに対する、畳み込みデインターリーブが施されることによって当該データワードが格納されるパケットの遅延数である遅延パケット数が等しいデータワード群を遅延グループとしてまとめて分類し、上記遅延グループ毎に上記記憶手段における連続するアドレスに対して書き込み及び読み出しを行うように、上記書き込みアドレス及び上記読み出しアドレスを生成すること
を特徴とする請求項23記載のデインターリーブ装置。The input data is composed of a plurality of packets,
The address generating means may be configured such that, for each data word constituting an arbitrary packet, a data word having the same number of delay packets, which is the number of delays of a packet in which the data word is stored by performing convolutional deinterleaving on the packet. The write address and the read address are generated such that groups are grouped together as a delay group, and writing and reading are performed on consecutive addresses in the storage means for each of the delay groups. 23. The deinterleave device according to 23.
上記パケットのデータワード数と畳み込みインターリーブの深さとの商に対応したカウント値を上記パケット毎に計数する第1の計数手段と、
上記第1の計数手段の周期に対応したカウント値を上記パケット毎に計数する第2の計数手段と、
上記複数の連続するデータワード単位で畳み込みデインターリーブを施す際に、上記データワード単位の数に対応したカウント値を上記パケット毎に計数する第3の計数手段とを有すること
を特徴とする請求項24記載のデインターリーブ装置。The address generation means includes:
First counting means for counting, for each packet, a count value corresponding to the quotient of the number of data words of the packet and the convolutional interleave depth;
A second counting unit that counts a count value corresponding to a cycle of the first counting unit for each packet;
And a third counting means for counting, for each packet, a count value corresponding to the number of the data word units when the convolution deinterleaving is performed in the plurality of continuous data word units. 25. The deinterleave device according to 24.
上記第2の計数手段によって計数されるカウント値は、上記第1の計数手段の周期を1ブロックとしたブロック数を表すものであること
を特徴とする請求項25記載のデインターリーブ装置。The count value counted by the first counting means represents the number of delayed packets,
26. The deinterleave device according to claim 25, wherein the count value counted by said second counting means represents the number of blocks in which the cycle of said first counting means is one block.
を特徴とする請求項26記載のデインターリーブ装置。
(addr_base+C×U×(2+3+・・・+D)+cnt_block×U+cnt_byte)・・・(5)
(addr_base+C×U×(1+2+・・・+(D−1))+cnt_block×U+cnt_byte)・・・(6)
(ただし、addr_baseは、上記記憶手段に対してデータの書き込み及び読み出しを行う先頭を示す基準アドレスであり、cnt_blockは、上記第2の計数手段によって計数されるカウント値であり、cnt_byteは、上記第3の計数手段によって計数されるカウント値である。)The address generating means is counted by the first counting means, assuming that the depth of the convolutional deinterleaving is D, the period of the convolutional deinterleaving is C, and the number of data word units at the time of performing the convolutional interleaving is U. When the count value is 0, the data is output to the storage means without writing the data. When the count value counted by the first counting means is a value other than 0, the following general formula is used. 27. The deinterleave device according to claim 26, wherein the write address represented by the formula (5) is generated, and the read address represented by the following general formula (6) is generated.
(Addr_base + C × U × (2 + 3 +... + D) + cnt_block × U + cnt_byte) (5)
(Addr_base + C × U × (1 + 2 +... + (D−1)) + cnt_block × U + cnt_byte) (6)
(However, addr_base is a reference address indicating the head of writing and reading data to and from the storage unit, cnt_block is a count value counted by the second counting unit, and cnt_byte is the 3 is a count value counted by the counting means.)
を特徴とする請求項27記載のデインターリーブ装置。When all the data words constituting an arbitrary packet have been input, the address generation means converts the reference address addr_base into a convolution deinterleave cycle C and the number U of the data word units in preparation for inputting the next packet. 28. The deinterleave device according to claim 27, wherein the value is increased by a multiplication value.
を特徴とする請求項23記載のデインターリーブ装置。24. The deinterleave according to claim 23, wherein said storage means is a dual-port random access memory capable of accessing a discontinuous address for each data word in units of clocks synchronized with the data word. apparatus.
を特徴とする請求項23記載のデインターリーブ装置。24. The deinterleaving apparatus according to claim 23, wherein convolutional deinterleaving is performed in byte units or a plurality of consecutive byte units.
上記データを入力する入力工程と、
データを記憶する記憶手段における上記データの書き込み位置と読み出し位置を制御することで上記畳み込みデインターリーブを施すとともに、読み出しが行われてデインターリーブが完了したデータの記憶領域を次のデータの書き込み領域とするアドレス制御を行うための書き込みアドレス及び読み出しアドレスを生成するアドレス生成工程とを備えること
を特徴とするデインターリーブ方法。To restore the array of data rearranged using the interleaving method of performing convolutional interleaving in units of data words or in units of continuous data words, the input data is processed in units of data words or in units of data words. A deinterleaving method for performing convolutional deinterleaving on a data word basis,
An input step of inputting the data,
The convolution deinterleaving is performed by controlling the data writing position and the reading position in the storage means for storing data, and the storage area of the data that has been read and deinterleaved is set as the next data writing area. An address generation step of generating a write address and a read address for performing address control to be performed.
上記アドレス生成工程では、任意のパケットを構成する各データワードについて、当該パケットに対する、畳み込みデインターリーブが施されることによって当該データワードが格納されるパケットの遅延数である遅延パケット数が等しいデータワード群が遅延グループとしてまとめられて分類され、上記遅延グループ毎に上記記憶手段における連続するアドレスに対して書き込み及び読み出しが行われるように、上記書き込みアドレス及び上記読み出しアドレスが生成されること
を特徴とする請求項31記載のデインターリーブ方法。The input data is composed of a plurality of packets,
In the address generation step, for each data word constituting an arbitrary packet, the convolutional deinterleaving is performed on the packet, and the data words having the same number of delay packets, which is the number of delays of the packet in which the data word is stored, are equal. The write addresses and the read addresses are generated so that groups are grouped and grouped as delay groups, and writing and reading are performed on consecutive addresses in the storage means for each of the delay groups. 32. The deinterleaving method according to claim 31, wherein:
を特徴とする請求項32記載のデインターリーブ方法。In the address generation step, a count value corresponding to the quotient of the number of data words of the packet and the convolutional interleave depth is counted for each packet by the first counting means, and the count value corresponds to the cycle of the first counting means. A count value is counted for each packet by the second counting means, and when convolutional deinterleaving is performed in units of the plurality of continuous data words, a count value corresponding to the number of the data word units is determined by the third counting means. 33. The deinterleaving method according to claim 32, wherein the counting is performed for each packet.
上記第2の計数手段によって計数されるカウント値は、上記第1の計数手段の周期を1ブロックとしたブロック数を表すものであること
を特徴とする請求項33記載のデインターリーブ方法。The count value counted by the first counting means represents the number of delayed packets,
34. The deinterleaving method according to claim 33, wherein the count value counted by said second counting means represents the number of blocks with one cycle of said first counting means as one block.
を特徴とする請求項34記載のデインターリーブ方法。
(addr_base+C×U×(2+3+・・・+D)+cnt_block×U+cnt_byte)・・・(7)
(addr_base+C×U×(1+2+・・・+(D−1))+cnt_block×U+cnt_byte)・・・(8)
(ただし、addr_baseは、上記記憶手段に対してデータの書き込み及び読み出しを行う先頭を示す基準アドレスであり、cnt_blockは、上記第2の計数手段によって計数されるカウント値であり、cnt_byteは、上記第3の計数手段によって計数されるカウント値である。)In the address generation step, assuming that the depth of the convolutional deinterleaving is D, the period of the convolutional deinterleaving is C, and the number of data word units at the time of performing the convolutional interleaving is U, the address is counted by the first counting means. When the count value is 0, the data is output to the storage means without writing the data. When the count value counted by the first counting means is a value other than 0, the following general formula is used. 35. The deinterleaving method according to claim 34, wherein the write address represented by the formula (7) is generated and the read address represented by the following general formula (8) is generated.
(Addr_base + C × U × (2 + 3 +... + D) + cnt_block × U + cnt_byte) (7)
(Addr_base + C × U × (1 + 2 +... + (D−1)) + cnt_block × U + cnt_byte) (8)
(However, addr_base is a reference address indicating the head of writing and reading data to and from the storage unit, cnt_block is a count value counted by the second counting unit, and cnt_byte is the 3 is a count value counted by the counting means.)
を特徴とする請求項35記載のデインターリーブ方法。In the address generation step, when all data words constituting an arbitrary packet are input, the reference address addr_base is convoluted with the period C of interleaving and the number U of the data word units in preparation for inputting the next packet. 36. The deinterleaving method according to claim 35, wherein the deinterleaving method is increased by an amount multiplied by:
を特徴とする請求項31記載のデインターリーブ方法。32. The data storage device according to claim 31, wherein a dual-port random access memory capable of accessing discontinuous addresses in units of a data word at each clock synchronized with the data word is used as the storage unit. Interleave method.
を特徴とする請求項31記載のデインターリーブ方法。32. The deinterleaving method according to claim 31, wherein convolutional deinterleaving is performed in byte units or a plurality of consecutive byte units.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003100345A JP2004007544A (en) | 2002-04-05 | 2003-04-03 | Interleaver, interleaving method, de-interleaver, and de-interleaving method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002104584 | 2002-04-05 | ||
JP2003100345A JP2004007544A (en) | 2002-04-05 | 2003-04-03 | Interleaver, interleaving method, de-interleaver, and de-interleaving method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004007544A true JP2004007544A (en) | 2004-01-08 |
Family
ID=30446727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003100345A Pending JP2004007544A (en) | 2002-04-05 | 2003-04-03 | Interleaver, interleaving method, de-interleaver, and de-interleaving method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004007544A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007004297A1 (en) * | 2005-07-06 | 2007-01-11 | Matsushita Electric Industrial Co., Ltd. | Transmitter and transmission method |
CN101467354A (en) * | 2006-06-09 | 2009-06-24 | 弗劳恩霍夫应用研究促进协会 | Interleaver apparatus and receiver for a signal produced by the interleaver apparatus |
KR100919420B1 (en) * | 2009-07-07 | 2009-09-29 | 양관모 | Led lamp with smoothing circuit |
JP2011514094A (en) * | 2008-03-03 | 2011-04-28 | サムスン エレクトロニクス カンパニー リミテッド | Method for encoding control information and method and apparatus for transmitting / receiving the control information in a wireless communication system |
-
2003
- 2003-04-03 JP JP2003100345A patent/JP2004007544A/en active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007004297A1 (en) * | 2005-07-06 | 2007-01-11 | Matsushita Electric Industrial Co., Ltd. | Transmitter and transmission method |
CN101467354A (en) * | 2006-06-09 | 2009-06-24 | 弗劳恩霍夫应用研究促进协会 | Interleaver apparatus and receiver for a signal produced by the interleaver apparatus |
JP2009540639A (en) * | 2006-06-09 | 2009-11-19 | フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン | Interleaver device and receiver for signals generated by interleaver device |
US8335962B2 (en) | 2006-06-09 | 2012-12-18 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Interleaver apparatus and receiver for a signal generated by the interleaver apparatus |
JP2011514094A (en) * | 2008-03-03 | 2011-04-28 | サムスン エレクトロニクス カンパニー リミテッド | Method for encoding control information and method and apparatus for transmitting / receiving the control information in a wireless communication system |
KR100919420B1 (en) * | 2009-07-07 | 2009-09-29 | 양관모 | Led lamp with smoothing circuit |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPWO2003085838A1 (en) | Interleaving apparatus and interleaving method, and deinterleaving apparatus and deinterleaving method | |
US7337386B2 (en) | Digital transmitter/receiver system having a robust error correction coding/decoding device and error correction coding/decoding method thereof | |
TW200926835A (en) | Method and apparatus for preserving deinterleaving erasure information of block interleaved coded signal | |
US20130100970A1 (en) | Jitter buffer | |
JPH08256336A (en) | Synchronization and error detection in packeted data stream | |
US7464319B2 (en) | Forward error correction with codeword cross-interleaving and key-based packet compression | |
US20150110135A1 (en) | Jitter Buffer | |
KR20130057937A (en) | Apparatus and method for transmitting and receiving packet in communication system | |
US8948213B2 (en) | Jitter buffer | |
JPH1032498A (en) | Variable rate viterbi decoder | |
US20050242973A1 (en) | Method and arrangement for encoding or decoding a sequence of digital data | |
JP3891568B2 (en) | Method and apparatus for decoding error correction code | |
KR101690661B1 (en) | Method for encoding and decoding broadcast signal to parallel process error correction, apparatus for sending and receiving the same and system thereof | |
JP2004007544A (en) | Interleaver, interleaving method, de-interleaver, and de-interleaving method | |
TW200833127A (en) | DVB-H system and method for performing forward error correction | |
KR20080112583A (en) | Reed solomon decorder and method thereof | |
JP2006229463A (en) | Device for applying real-time streaming transmission to high-efficiency coded time series information for reception and reproduction | |
TWI617187B (en) | Multimedia Processing System and Controlling Method Thereof | |
JP2010239433A (en) | Video coding apparatus, method and program | |
JP4437974B2 (en) | TS packet interleaver, TS packet converter, TS-IP converter and IP-TS converter | |
JP2005236739A (en) | Transmitter, receiver, and video distribution system | |
WO2006090450A1 (en) | Packet retransmission algorithm | |
JP2007335926A (en) | Method of generating parity for fec, and transmitter | |
JP4859989B2 (en) | Digital broadcast demodulator | |
JP2008263470A (en) | Digital broadcast demodulator |