JPWO2003085838A1 - インターリーブ装置及びインターリーブ方法、並びにデインターリーブ装置及びデインターリーブ方法 - Google Patents
インターリーブ装置及びインターリーブ方法、並びにデインターリーブ装置及びデインターリーブ方法 Download PDFInfo
- Publication number
- JPWO2003085838A1 JPWO2003085838A1 JP2003582909A JP2003582909A JPWO2003085838A1 JP WO2003085838 A1 JPWO2003085838 A1 JP WO2003085838A1 JP 2003582909 A JP2003582909 A JP 2003582909A JP 2003582909 A JP2003582909 A JP 2003582909A JP WO2003085838 A1 JPWO2003085838 A1 JP WO2003085838A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- packet
- byte
- interleaving
- deinterleaving
- 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
- 238000000034 method Methods 0.000 title claims description 80
- 238000012937 correction Methods 0.000 claims abstract description 66
- 230000001360 synchronised effect Effects 0.000 claims description 15
- 238000012546 transfer Methods 0.000 claims description 11
- 230000009977 dual effect Effects 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 abstract description 36
- 101100170173 Caenorhabditis elegans del-1 gene Proteins 0.000 description 67
- 238000004891 communication Methods 0.000 description 46
- 238000012545 processing Methods 0.000 description 35
- 238000001824 photoionisation detection Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 24
- 230000003111 delayed effect Effects 0.000 description 18
- 238000012795 verification Methods 0.000 description 14
- 230000007704 transition Effects 0.000 description 12
- 230000005236 sound signal Effects 0.000 description 8
- 239000002131 composite material Substances 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013506 data mapping Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 231100000741 direct peptid reactivity assay Toxicity 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2703—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
- H03M13/2707—Simple row-column interleaver, i.e. pure block interleaving
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2703—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
- H03M13/271—Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/276—Interleaving address generation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2792—Interleaver wherein interleaving is performed jointly with another technique such as puncturing, multiplexing or routing
- H03M13/2796—Two or more interleaving operations are performed jointly, e.g. the first and second interleaving operations defined for 3GPP UMTS are performed jointly in a single interleaving operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
Description
本発明は、インターリーブ装置及びインターリーブ方法、並びにデインターリーブ装置及びデインターリーブ方法に関する。
背景技術
近年、例えば放送用又は業務用のビデオカメラを用いて構築される放送システム等のように、いわゆるHDTV(High Definition TeleVision)方式の映像及び/又は音声信号を扱う技術が開発されている。このようなシステムにおいては、非圧縮の映像及び/又は音声信号をいわゆるMPEG(Moving Picture Experts Group)−2等の画像圧縮方式を用いて圧縮符号化する機能と、圧縮符号化された映像及び/又は音声信号を伸長復号する機能とを併有するトランスコーダと称される機器が用いられる。すなわち、このトランスコーダは、例えばHD−SDI(High Definition−Serial Digital Interface)に準拠したシリアルバス等を介して入力された非圧縮の映像及び/又は音声信号に対して、搭載される符号化器によってMPEG−2等の画像圧縮方式に基づく圧縮符号化を施し、複数個のトランスポートパケット(TS Packet)から構成されるトランスポートストリーム(Transport Stream)として送信する。また、トランスコーダは、所定の通信路を介して受信したトランスポートストリームに対して、搭載される復号器によって伸長復号を施し、非圧縮の映像及び/又は音声信号を再生することもできる。
このようなトランスコーダによって送受信されるトランスポートストリームのように、所定のデータがパケットに格納されて送受信されるパケット通信においては、パケット毎にヘッダが付加されることから、サイズが大きいデータを1つのパケットに格納して伝送するほどオーバーヘッドを少なくすることができ、通信効率の観点から有効である。
また、パケット通信としては、データをIP(Internet Protocol)上で伝送する場合も多く、データの形式等に応じた各種伝送プロトコルにしたがったパケットの送受信が行われる。通常、IP上で行われるパケット通信としては、例えばFTP(File Transfer Protocol)等のように、通信路の状況に応じてパケットの再送が行うことが可能な伝送プロトコルにしたがうものが多い。しかしながら、近年では、パケット通信として、映像及び/又は音声信号をストリーミング再生するための伝送プロトコルとして知られるRTP(Real−time Transport Protocol)等のように、パケットの再送が許されないリアルタイム通信のアプリケーションにも適用される場合が生じている。この場合、パケット通信を行う送信側は、通信路上で発生するノイズ等の影響によってパケットが欠落してしまうパケットロスを含む大きなバーストエラーを受信側で訂正可能とするために、強力な誤り訂正能力を必要とする。
このような誤り訂正技術としては、パケットに対していわゆるリード・ソロモン符号(Reed−Solomon code)等の所定の誤り訂正符号を付加することが考えられる。
ここで、誤り訂正符号としてリード・ソロモン符号を用いる場合の例を説明する。リード・ソロモン符号は、例えば188バイトからなるパケットに対して28バイトの誤り訂正符号を付加すると、1パケットあたりのエラーを含むバイト数が14バイト以下であれば完全にエラーを訂正することができるものである。すなわち、リード・ソロモン符号は、一般に、ランダムエラーにのみ対応することができる誤り訂正符号である。しかしながら、リード・ソロモン符号は、1パケットあたりのエラーを含むバイト数が14バイトを超える場合には、エラーを訂正することができない。そのため、リード・ソロモン符号は、パケットロスを含む大きなバーストエラーに対しては効果を得ることができないことになる。
そこで、誤り訂正技術としては、パケットに対してリード・ソロモン符号のような所定の誤り訂正符号を付加した後、さらに、畳み込みインターリーブを施すことによってエラーの分散化を図ることが一般に行われている。
すなわち、パケット通信においては、送信側によって畳み込みインターリーブが施されたパケットに対して通信路上で発生したバーストエラーが重畳された場合であっても、受信側によって対応する畳み込みデインターリーブが施されることにより、パケット毎ではランダムエラーとみなすことができ、リード・ソロモン符号のような誤り訂正符号の復号が行われることにより、バーストエラーであってもエラーを訂正することが可能となる。例えば、パケット通信においては、上述した188バイトからなるパケットに対して28バイトの誤り訂正符号が付加され216バイトからなるパケットに対して深さ18の畳み込みインターリーブを施した場合には、連続する18パケット中の1パケットが完全にエラーとなった場合であっても、受信側によって完全にエラーを訂正することができることになる。したがって、パケット通信においては、特にパケットロスが発生しやすい通信路を介したデータの送受信を行う際には、1パケット分の連続した情報が全て欠落してしまう場合があるが、このような誤り訂正技術を用いることにより、欠落したパケットを完全に復元することが可能となる。
このように、パケット通信においては、パケットの再送が許されないリアルタイム通信のアプリケーションに適用される場合には、パケットに対して所定の誤り訂正符号を付加するとともに、得られたパケットに対して畳み込みインターリーブを施すことにより、パケットロスを含むバーストエラーに対する誤り訂正能力を向上させることができる。
ところで、パケット通信においては、上述した誤り訂正符号と畳み込みインターリーブとを組み合わせた誤り訂正技術を用いてパケットロスを含む大きなバーストエラーを訂正するためには、パケットのサイズに応じた非常に大きな符号長からなる誤り訂正符号を用いることが必要となる。
しかしながら、パケット通信においては、符号長が大きな誤り訂正符号を付加することにより、データに対するオーバーヘッドが増大し、通信効率の悪化を招来することになる。また、パケット通信においては、符号長が大きな誤り訂正符号を付加することにより、通信効率の悪化のみならず、誤り訂正符号の符号化器及び復号器の回路規模が肥大化することになる。
したがって、パケット通信においては、誤り訂正符号の符号長を可能な限り小さくするのが望ましい。
一方、パケット通信においては、誤り訂正符号の符号長を小さくした場合には、パケットロスを含む大きなバーストエラーを訂正するために、畳み込みインターリーブの深さを非常に深いものとする必要が生じる。
畳み込みインターリーブの実装面においては、当該畳み込みインターリーブの深さと必要となるメモリ容量とが比例関係にある。そのため、パケット通信においては、畳み込みインターリーブの深さを非常に深いものとするために、必要となるメモリ容量が増大することになり、望ましくない。
また、畳み込みインターリーブにおいては、メモリとして、例えばMPEG方式の場合にはバイト単位といったデータワード単位で、当該データワードに同期した1クロック程度のクロック毎に不連続なアドレスにアクセスすることが可能なもの、すなわち、ランダムアクセスが可能なデュアルポートRAM(Dual Port Random Access Memory;以下、DPRAMという。)を用いる必要がある。
ここで、畳み込みインターリーブとしては、専用の集積回路として実装することもできるが、コストや取り扱いの簡便さ等の観点からは、いわゆるPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)といった汎用的なプログラマブルデバイスとして実装するのが有効である。しかしながら、畳み込みインターリーブにおいては、これらの汎用的なプログラマブルデバイスの内部に設けられるDPRAMの容量が小さいことから、誤り訂正符号の符号長の削減を補完してパケットロスを含む大きなバーストエラーを訂正するために必要となる十分な深さを得ることが困難である。また、畳み込みインターリーブにおいては、メモリの容量のみが問題なのであれば、例えばSDRAM(Synchronous Dynamic Random Access Memory)といったプログラマブルデバイスに対して外付けとされる汎用的なメモリを用いれば問題を解決することができるが、このような外付けのデバイスは、複数のデータワード単位のデータをバースト転送するのには有効であるものの、アクセスのためのコマンド信号の入力期間を必要とすることから、時間的に連続してデータワード単位でランダムなアドレスにアクセスすることはオーバーヘッドの増大及びスループットの低下を招来する観点からみて困難であり、また、このようなアクセスを実現するためにはメモリの周辺回路として非常に煩雑なものを設ける必要があることから、データワード単位での高速アクセスを目的として実装するのは困難である。
このように、パケット通信においては、誤り訂正符号と畳み込みインターリーブとを組み合わせた誤り訂正技術を用いてパケットロスを含む大きなバーストエラーを訂正するためには、符号長が大きな誤り訂正符号を用いることによる通信効率の悪化と回路の肥大化とを招来したり、又は符号長が小さな誤り訂正符号を用いる代わりに、深い畳み込みインターリーブを実現することによるメモリ容量の増大化を招来したりするといった問題があった。
発明の開示
本発明の目的は、このような実情に鑑みてなされたものであり、パケット通信を行う送信側において小さい符号長からなる誤り訂正符号を用いてパケットロスを含む大きなバーストエラーを訂正することを可能とするインターリーブを実現することができるインターリーブ装置及びインターリーブ方法、並びに、これらのインターリーブ装置及びインターリーブ方法を用いてインターリーブが施されたデータの配列を受信側において元に戻すことができるデインターリーブ装置及びデインターリーブ方法を提供することにある。
本発明の目的は、入力されたデータの順序を所定のアドレスにしたがって並べ替えて出力するインターリーブ装置であって、入力された複数個のパケットから構成される第1のデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施す第1のインターリーブ手段と、この第1のインターリーブ手段によって生成された複数個のパケットから構成される第2のデータに対して、パケット単位でインターリーブを施す第2のインターリーブ手段とを備えるインターリーブ装置を提供することによって達成される。
また、入力されたデータの順序を所定のアドレスにしたがって並べ替えて出力するインターリーブ方法であって、入力された複数個のパケットから構成される第1のデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施す第1のインターリーブ工程と、この第1のインターリーブ工程にて生成された複数個のパケットから構成される第2のデータに対して、パケット単位でインターリーブを施す第2のインターリーブ工程とを備えるインターリーブ方法を提供することによって達成される。
さらに、入力された複数個のパケットから構成される第1のデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施す第1のインターリーブ手段と、この第1のインターリーブ手段によって生成された複数個のパケットから構成される第2のデータに対して、パケット単位でインターリーブを施す第2のインターリーブ手段とを備えるインターリーブ装置を用いて並べ替えられたデータの配列を元に戻すように、入力されたデータの順序を所定のアドレスにしたがって並べ替えて出力するデインターリーブ装置であって、第2のインターリーブ手段によってインターリーブが施されたデータを構成するパケットの順序を、それぞれ、第2のデータを構成するパケットの順序に戻すように、入力された複数個のパケットから構成される第3のデータに対して、パケット単位でデインターリーブを施す第1のデインターリーブ手段と、第1のインターリーブ手段によってインターリーブが施された第2のデータを構成するパケットの順序を、それぞれ、第1のデータを構成するパケットの順序に戻すように、第1のデインターリーブ手段によって生成された複数個のパケットから構成される第4のデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みデインターリーブを施す第2のデインターリーブ手段とを備えるデインターリーブ装置を提供することで達成される。
さらにまた、入力された複数個のパケットから構成される第1のデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施す第1のインターリーブ工程と、この第1のインターリーブ工程にて生成された複数個のパケットから構成される第2のデータに対して、パケット単位でインターリーブを施す第2のインターリーブ工程とを備えるインターリーブ方法を用いて並べ替えられたデータの配列を元に戻すように、入力されたデータの順序を所定のアドレスにしたがって並べ替えて出力するデインターリーブ方法であって、第2のインターリーブ工程にてインターリーブが施されたデータを構成するパケットの順序を、それぞれ、第2のデータを構成するパケットの順序に戻すように、入力された複数個のパケットから構成される第3のデータに対して、パケット単位でデインターリーブを施す第1のデインターリーブ工程と、第1のインターリーブ工程にてインターリーブが施された第2のデータを構成するパケットの順序を、それぞれ、第1のデータを構成するパケットの順序に戻すように、第1のデインターリーブ工程にて生成された複数個のパケットから構成される第4のデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みデインターリーブを施す第2のデインターリーブ工程とを備えるデインターリーブ方法を提供することによって達成される。
発明を実施するための最良の形態
以下、本発明をより詳細に説述するために、添付の図面を用いてこれを説明する。
この最良の形態は、パケット化されたデータを入力し、各パケットに対して所定の誤り訂正符号を付加し、さらに、インターリーブを施して送信する符号化器と、この符号化器から所定の通信路を介して受信した受信データを復号する復号器とを備えるデータ送受信システムである。このデータ送受信システムにおいて、符号化器は、インターリーブとして、データワード単位又は複数の連続するデータワード単位の畳み込みインターリーブと、パケット単位のインターリーブとを行うことにより、小さい符号長からなる誤り訂正符号を用いてパケットロスを含む大きなバーストエラーを訂正することを可能とするものである。一方、データ送受信システムにおいて、復号器は、このような符号化器によって符号化がなされて送信され、所定の通信路を介して受信した受信データを復号し、パケットロスを含む大きなバーストエラーを完全に訂正することができるものである。
特に、データ送受信システムにおいては、データワード単位又は複数の連続するデータワード単位の畳み込みインターリーブ及び畳み込みデインターリーブを実現するにあたって、通常であれば、畳み込みインターリーブ及び畳み込みデインターリーブの深さと入力した1パケットあたりのデータワード数との積で表されるデータワード数の容量を有するメモリを用いて実装する必要があるところ、この容量よりも大幅に小さい容量を有するメモリを用いて、同様の畳み込みインターリーブ及び畳み込みデインターリーブを実現することができるものである。
なお、以下では、データ送受信システムにおける符号化器には、例えばHD−SDI(High Definition−Serial Digital Interface)に準拠したシリアルバス等を介して入力された非圧縮の映像及び/又は音声信号に対していわゆるMPEG(Moving Picture Experts Group)−2方式に基づく圧縮符号化を施して得られたトランスポートストリーム(Transport Stream)を構成する複数個のトランスポートパケット(TS Packet)が入力されるものとし、この符号化器によってトランスポートパケットに対して付加する誤り訂正符号として、いわゆるリード・ソロモン符号(Reed−Solomon code)を用いるものとして説明する。
データ送受信システムは、例えば図1に示すように、複数個のトランスポートパケットTSPから構成されるトランスポートストリームTSを入力して符号化を施す符号化器10と、この符号化器10から所定の通信路を介して受信した受信データRDを復号してトランスポートストリームTSを復元する復号器20とを備える。
まず、符号化器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とを有する。
符号化器10においては、これらの各部のうち、少なくとも図1中破線枠で示すリード・ソロモン符号化部11、バイト・インターリーバ12、パケット・インターリーバ13におけるインターフェース部17、及びパケット化部14が、いわゆるPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)といったプログラマブルデバイスとして実装される。
リード・ソロモン符号化部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バイトまでのエラーを完全に訂正できるものとなる。
バイト・インターリーバ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の畳み込みインターリーブを施す。
ここで、畳み込みインターリーブの深さとは、バイト単位でインター・リーブを行うものとしたとき、第1のバイト数からなるパケットをこの値よりも小さい第2のバイト数毎に分割し、この第2のバイト数からなる分割単位を構成する各バイト1を互いに異なる分割単位に分散することを示し、周期とは、隣り合うバイトを分散させる分割単位の離隔量を示すものであって第1のバイト数と畳み込みインターリーブの深さとの商で表されるものである。また、複数の連続するバイト単位でインターリーブを行うものとしたとき、畳み込みインターリーブの深さとは、第1のバイト数からなるパケットをこの値よりも小さい第2のバイト数毎に分割し、この第2のバイト数からなる分割単位を構成する複数の連続するバイト(以下「ユニット」という)単位で互いに異なる分割単位に分散することを示し、周期とは、隣り合うユニットを分散させる分割単位の離隔量を示すものであって第1のバイト数と畳み込みインターリーブの深さとの商をさらにユニットで割った値で表されるものである。
すなわち、バイト単位でインターリーブを行うものとしたとき、バイト・インターリーバ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バイトずつ分散されることになる。
また、トランスポートストリーム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バイトずつ分散されることになる。
これにより、バイト・インターリーバ12は、リード・ソロモン符号化部11による誤り訂正能力を強化するわけではないが、情報の分散配置によってパケットロスを含むバーストエラーをランダムエラー化することができる。具体的には、バイト・インターリーブデータBIDをそのまま出力した場合の誤り訂正能力は、連続する18個のバイト・インターリーブパケットBIPあたり1パケット、すなわち、216バイトが完全にエラーであっても、全てのビットを訂正できるものとなる。なお、バイト・インターリーブパケットBIPの先頭データは、それぞれ、符号化パケットEPと変わらず、MPEG−2方式に基づくトランスポートパケットTSPのパケットヘッダにおけるシンクバイトであり、その値は、″0x47″である。バイト・インターリーバ12は、生成した複数個のバイト・インターリーブパケットBIPから構成されるバイト・インターリーブデータBIDを後段のパケット・インターリーバ13に供給する。
なお、このバイト・インターリーバ12は、所定のアドレス生成方式にしたがってアドレス制御を行うことにより、バイト単位あるいはユニット単位での畳み込みインターリーブを行うのに必要なメモリ、すなわち、DPRAMの容量の削減を図ることができるが、これについては、後述するものとする。
パケット・インターリーバ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のブロックインターリーブを施す。
すなわち、畳み込みインターリーブを行うものとしたとき、パケット・インターリーバ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を記憶できるものであれば足りる。
また、ブロックインターリーブを行うものとしたとき、パケット・インターリーバ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を記憶できるものであれば足りる。
これにより、パケット・インターリーバ13は、バイト・インターリーバ12と同様に、リード・ソロモン符号化部11による誤り訂正能力を強化するわけではないが、バイト・インターリーバ12よりも離散的に情報の分散配置を行うことによってパケットロスを含むより大きなバーストエラーをランダムエラー化することができる。具体的には、畳み込みインターリーブによって生成したパケット・インターリーブデータPIDをそのまま出力した場合の誤り訂正能力は、連続する144個のパケット・インターリーブパケットPIPのうち、連続する最大で6個のパケット・インターリーブパケットPIP、すなわち、1296バイトが完全にエラーであっても、全てのビットを訂正できるものとなる。また、ブロックインターリーブによって生成したパケット・インターリーブデータPIDをそのまま出力した場合の誤り訂正能力は、連続する108個のパケット・インターリーブパケットPIPのうち、連続する最大で6個のパケット・インターリーブパケットPIP、すなわち、1296バイトが完全にエラーであっても、全てのビットを訂正できるものとなる。さらに、畳み込みインターリーブを用いたときには、連続する144個のパケット・インターリーブパケットPIPのうち、連続する最大で6個のパケット・インターリーブパケットPIPのエラーを訂正できるが、ブロックインターリーブを用いるものとすれば、連続する108個のパケット・インターリーブパケットPIPのうち、連続する最大で6個のパケット・インターリーブパケットPIPのエラーを訂正できることとなり、訂正能力を向上させることができる。
ここで、このようなパケット・インターリーバ13によってインターリーブが施されたパケット・インターリーブデータPIDは、このままでは先頭のパケットを受信側が把握できないものとなり、同期をとることが困難となる。そこで、パケット・インターリーバ13は、パケット・インターリーブデータPIDにおける先頭のパケットを受信側に通知するために、先頭のパケット・インターリーブパケットPIPの先頭データであるシンクバイトの値を置換する。すなわち、深さ6の畳み込みインターリーブをパケット・インターリーバ13で施したとき、パケット・インターリーブパケットPIPの先頭データを6パケット毎に反転し、″0x47″から″0xB8″に置き換えて、最終的に出力するパケット・インターリーブデータPIDを生成する。
また、ブロックインターリーブが施されたとき、例えば連続する108個のパケット・インターリーブパケットPIPからなるインターリーブブロックの先頭パケットを受信側に通知するため、インターリーブブロックの先頭のパケット・インターリーブパケットPIPの先頭データであるシンクバイトの値を″0x47″から例えば″0xB7″に置き換える。さらに、残りのパケット・インターリーブパケットPIPについて、6パケット・インターリーブパケットPIP毎にシンクバイトの値の反転を行い、″0x47″から″0xB8″に置き換えておけば、受信側は″0xB8″を検出することでデインターリーブ処理を予め同期させておくことができ、″0xB7″を検出したとき、速やかにブロックデインターリーブ処理後の出力を得ることができる。
パケット・インターリーバ13は、生成した複数個のパケット・インターリーブパケットPIPから構成されるパケット・インターリーブデータPIDを後段のパケット化部14に供給する。
パケット化部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を容易に生成できる。
ここで、このパケットデータ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バイトずつの情報が含まれるものとなる。
図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バイトずつの情報が含まれるものとなる。
このパケットデータPDは、図7D,図8Dに示すように、重複する番号が存在しないものである、すなわち、互いに異なる108個の符号化パケットEPからの情報によって構成されるものである。これは、1つのパケットデータPDに同じ番号が2つ存在する場合、例えば図8Eに示すように、パケットデータPD生成する際に、連結する6個のパケット・インターリーブパケットPIPが、図8Dに対して4パケット・インターリーブパケットPIP分だけ位相差を有して、番号155が2つ存在する場合、1つの符号化パケットEPから24バイトの情報が含まれるものとなることから、例えば、1つの上位レイヤパケットULPが通信路上で欠落した場合には、復号器20によって誤り訂正能力の限界を超える誤りデータ量を有する符号化パケットEP’が生成される事態が生じ、完全な訂正が不可能となることになるからである。
したがって、パケット化部14は、一連のパケット・インターリーブパケットPIPのうち、同じ符号化パケットEPからの情報が含まれないように、連続する6個のパケット・インターリーブパケットPIPを連結し、パケットデータPDを生成する。なお、パケット・インターリーバ13で畳み込みインターリーブを行う場合、パケット化部14は、パケット・インターリーバ13によって値を反転したシンクバイトの位置には拘泥せずに、任意の連続する6個のパケット・インターリーブパケットPIPを連結すればよい。しかし、パケット・インターリーバ13でブロックインターリーブを行う場合、パケット化部14は、インターリーブブロックの先頭を示すシンクバイトの位置から、連続する6個のパケット・インターリーブパケットPIPを連結する。パケット化部14は、生成したパケットデータPDを後段の送信部15に供給する。
送信部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ヘッダにシーケンス番号を設定する。このようにシーケンス番号を設定することで、後述するように、シーケンス番号の連続性を受信側で検証してパケットの欠落を判別できることとなる。
このような各部を有する符号化器10は、情報系列として入力したトランスポートストリームTSを送信データTDとして出力する。図9A〜図9Fは、パケット・インターリーバ13で畳み込みインターリーブを行うものとしたときの符号化器10におけるパケットフォーマットの推移を示している。また、図10A〜図10Eは、パケット・インターリーバ13でブロックインターリーブを行うものとしたときの符号化器10におけるパケットフォーマットの推移を示している。
すなわち、符号化器10は、図9A(図10A)に示す複数個のトランスポートパケットTSPから構成されるトランスポートストリームTSを入力すると、これらのトランスポートパケットTSPのそれぞれに対して、リード・ソロモン符号化部11によってリード・ソロモン符号化を施し、図9B(図10B)に示す複数個の符号化パケットEPから構成される符号化データEDを生成する。このとき、図9B(図10B)における黒マスで示す1つの符号化パケットEPに含まれる情報量、より明確には、符号化パケットEPのうち付加された誤り訂正符号を除く情報量は、リード・ソロモン符号化部11によってトランスポートパケットTSPに対してリード・ソロモン符号化が施されても、図9A(図10B)における黒マスで示すように、トランスポートパケットTSPと同じ情報量であり、また、一連の符号化パケットEPの順序も、一連のトランスポートパケットTSPの順序と同じものであることはいうまでもない。
そして、符号化器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に分散されている様子を示すものである。
ここで、符号化器10は、バイト・インターリーブパケットBIPのそれぞれに対して、バイト・インターリーブパケット単位で深さ6及び周期4の畳み込みインターリーブを行い、図9Dに示すように24個のバイト・インターリーブパケットBIPの情報を、図9Eに示すように、連続する144個のパケット・インターリーブパケットPIPに離散的に分散し、且つ、12バイトずつの情報を少なくとも6個のパケット・インターリーブパケットPIPの間隔を空けて分散した複数個のパケット・インターリーブパケットPIPから構成されるパケット・インターリーブデータPIDを生成する。このため、図9Bにおける黒マスで示す1つの符号化パケットEPに含まれる情報は、図9Eの斜線部に示すように分散される。
また符号化器10は、バイト・インターリーブパケットBIPのそれぞれに対して、連続する108パケットのバイト・インターリーブパケットBIPで完結する深さ6のブロックインターリーブを行い、図10Cに示すように、18個のバイト・インターリーブパケットBIPの情報を、図10Dに示すように、連続する108個のパケット・インターリーブパケットPIPに離散的に分散し、且つ、インターリーブブロックの先頭から連続する6パケット・インターリーブパケットPIP毎のグループに、12バイトずつの情報がそれぞれ1つずつ分散されているパケット・インターリーブデータPIDを生成する。このため、図10Bにおける黒マスで示す1つの符号化パケットEPに含まれる情報は、図10Dにおける斜線部に示すように分散される。
そして、符号化器10は、図9F(図10E)に示すように、パケット化部14によって連続する6個のパケット・インターリーブパケットPIPを連結してパケットデータPDを生成し、さらに、送信部15によって各パケットデータPDに対してRTP/UDP/IPパケットヘッダを付加して複数個の上位レイヤパケットULPから構成される送信データTDとして送信する。
このように、符号化器10は、リード・ソロモン符号を付加した符号化パケットEPに対して、バイト単位あるいはユニット単位で畳み込みインターリーブを施すとともに、パケット単位でインターリーブを施すことにより、小さな符号長からなるリード・ソロモン符号を用いてパケットロスを含む大きなバーストエラーを訂正することができる誤り訂正能力を有する送信データTDを送信することができる。すなわち、符号化器10は、1つの上位レイヤパケットULPが通信路上で欠落した場合といったように、最大で1つの上位レイヤパケットULPに含まれる情報にバーストエラーが発生した場合であっても、このパケットロスを含むバーストエラーを復号器20によって完全に訂正することができる誤り訂正能力を有する送信データTDを送信することができる。
また、符号化器10は、パケットの先頭データの値が固定値であることを利用して、パケット単位でのインターリーブを施す際に、先頭のパケット・インターリーブパケットPIPの先頭データであるシンクバイトの値を置換することにより、パケット・インターリーブデータPIDにおける先頭のパケットやブロックインターリーブを行ったときのインターリーブブロックの先頭のパケットを受信側に通知することができる。
さらに、符号化器10は、バイト・インターリーバ12をプログラマブルデバイスに内蔵される容量の小さなDPRAMを用いて実装するとともに、パケット・インターリーバ13をプログラマブルデバイスに外付けとされる比較的容量の大きなSDRAM16を用いて実装することにより、プログラマブルデバイスの内部に設けられるメモリ資源を節約することができるとともに、SDRAM16に対するバーストアクセスによる周辺回路の単純化を図ることができる。このように、符号化器10は、DPRAM及びSDRAM16を用いた2段階のインターリーブを行うことにより、これらのメモリの弱点を補完的に回避することができ、パケット単位でインターリーブを行う際に、プログラマブルデバイスに内蔵される容量が小さなDPRAMを用いるのではなく外付けとされるSDRAM16を用いることにより、コストの削減を図ることができ、SDRAM16に対してパケット単位でアクセスすることによって高速動作を行うこともできる。
このような符号化器10によって送信された送信データTDは、所定の通信路を介して伝送され、複数個の上位レイヤパケットULPから構成される受信データRDとして復号器20によって受信されることになる。
つぎに、データ送受信システムにおける復号器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とを有する。
復号器20においては、これらの各部のうち、少なくとも同図中破線枠で示すパケット連続性検証部22、アンパケット化部23、パケット・デインターリーバ24におけるインターフェース部28、バイト・デインターリーバ25、及びリード・ソロモン復号部26が、PLDやFPGAといったプログラマブルデバイスとして実装される。
受信部21は、符号化器10における送信部15に対応して設けられるものであり、所定の通信路を介して受信データRDを受信すると、この受信データRDを構成する複数個の上位レイヤパケットULP’のそれぞれに付加されているRTP/UDP/IPパケットヘッダを解析する。具体的には、受信部21は、RTP/UDP/IPパケットヘッダにおけるRTPのシーケンス番号を解析する。受信部21は、解析したRTPのシーケンス番号を示す解析情報ANをパケット連続性検証部22に供給するとともに、上位レイヤパケットULP’のそれぞれからRTP/UDP/IPパケットヘッダを除去して生成したパケットデータPD’を後段のアンパケット化部23に供給する。
パケット連続性検証部22は、受信部21から供給された解析情報AN、すなわち、RTPのシーケンス番号に基づいて、通信路上で上位レイヤパケットULP’の欠落等が発生しているか否かといった上位レイヤパケットULP’の連続性を検証する。パケット連続性検証部22は、検証結果を示す検証結果情報CKをパケット・デインターリーバ24におけるインターフェース部28に供給する。
アンパケット化部23は、符号化器10におけるパケット化部14に対応して設けられるものであり、パケット化部14によって生成されたパケットデータPDを連結前のパケット・インターリーブパケットPIPに戻すように、受信部21から供給されたパケットデータPD’を分割し、パケット・インターリーブパケットPIP’を生成する。アンパケット化部23は、生成した複数個のパケット・インターリーブパケットPIP’から構成されるパケット・インターリーブデータPID’を後段のパケット・デインターリーバ24に供給する。
パケット・デインターリーバ24は、符号化器10におけるパケット・インターリーバ13に対応して設けられるものであり、パケット・インターリーバ13によってインターリーブが施されたパケット・インターリーブデータPIDの順序を、それぞれ、元のバイト・インターリーブデータBIDを構成するバイト・インターリーブパケットBIPの順序に戻す処理を行う。ここで、アンパケット化部23から供給されたパケット・インターリーブデータPID’を構成するパケット・インターリーブパケットPIP’が、上述したようにバイト・インターリーブパケット単位で深さ6及び周期4の畳み込みインターリーブを行って生成されているとき、バイト・インターリーブパケット単位で深さ6及び周期4の畳み込みデインターリーブを施し、複数個のバイト・インターリーブパケットBIP’から構成されるバイト・インターリーブデータBID’を生成する。このとき、パケット・デインターリーバ24は、パケット・インターリーバ13によって値が置換されたシンクバイトに基づいて、アンパケット化部23から供給されたパケット・インターリーブデータPID’における先頭のパケットの同期をとり、バイト・インターリーブパケット単位で畳み込みデインターリーブを施す。
また、パケット・インターリーブパケットPIP’が、上述したように108個のバイト・インターリーブパケットで完結する深さ6のブロックインターリーブを行って生成されているとき、108個のバイト・インターリーブパケットで完結する深さ6のブロックデインターリーブを施し、複数個のバイト・インターリーブパケットBIP’から構成されるバイト・インターリーブデータBID’を生成する。このとき、パケット・デインターリーバ24は、パケット・インターリーバ13によって値が置換されたシンクバイトに基づいて、アンパケット化部23から供給されたパケット・インターリーブデータPID’におけるインターリーブブロックの先頭の検出やパケットの同期をとり、バイト・インターリーブパケット単位でブロックデインターリーブを施す。
具体的には、パケット・デインターリーバ24は、パケット・インターリーバ13と同様に、プログラマブルデバイスとして実装される各部に対して外付けとされるSDRAM27と、このSDRAM27に対するデータの書き込み及び読み出しを行うためのアドレス生成やデータの授受等の処理を行うインターフェース部28とから構成される。パケット・デインターリーバ24は、インターフェース部28に入力されたパケット・インターリーブデータPID’を所定の書き込みアドレスにしたがって順次SDRAM27に転送して書き込み、このSDRAM27に書き込んだデータを書き込みアドレスとは異なる所定の読み出しアドレスにしたがって順次読み出すことにより、アンパケット化部23から供給されたパケット・インターリーブデータPID’に対してデインターリーブを施す。
このとき、パケット・デインターリーバ24は、パケット連続性検証部22から供給された検証結果情報CKに基づいて、パケット・インターリーブデータPID’が不連続である場合に対応することができる。例えば、パケット・デインターリーバ24は、検証結果情報CKに基づいて、通信路上で1つの上位レイヤパケットULP’が欠落していたことを把握した場合には、SDRAM27にデータを書き込む際に、1つの上位レイヤパケットULP’に相当する6個のパケット・インターリーブパケットPIP’を記憶するだけの領域をスキップしてデータを書き込む一方で、所定の読み出しアドレスにしたがった通常のデインターリーブ動作によってデータを読み出す。このような動作によってSDRAM27から読み出されたデータは、欠落したパケットに対応する部分が前タイムスロットに同じ読み出しアドレスから読み出されたデータ、すなわち、無効データに置換されたものとなる。
パケット・デインターリーバ24は、このような動作を行って得られたデータのうち、パケット・インターリーバ13によって置換されたシンクバイトの値″0xB7,0xB8″を元の″0x47″に戻し、最終的に出力するバイト・インターリーブデータBID’を生成する。パケット・デインターリーバ24は、生成した複数個のバイト・インターリーブパケットBIP’から構成されるバイト・インターリーブデータBID’を後段のバイト・デインターリーバ25に供給する。なお、パケット・デインターリーバ24は、通信路上で発生するジッタの吸収等の目的を果たすために受信バッファとしての機能も兼ね備えることから、SDRAM27の容量は、少なくとも144個(深さ6及び周期4の畳み込みデインターリーブを行うの場合)あるいは216個(108個のバイト・インターリーブパケットで完結する深さ6のブロックデインターリーブを行う場合)のパケット・インターリーブパケットPIP’を記憶できる容量に加え、当該目的を果たすために必要な若干量を有するものであれば足りる。
バイト・デインターリーバ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’を生成する。
具体的には、バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、バイト単位で高速にランダムアクセスすることが可能なDPRAMやこのDPRAMに対するデータの書き込み及び読み出しを行うためのアドレス生成部等から構成される。バイト・デインターリーバ25は、入力されたバイト・インターリーブデータBID’を所定の書き込みアドレスにしたがって順次DPRAMに転送して書き込み、このDPRAMに書き込んだデータを書き込みアドレスとは異なる所定の読み出しアドレスにしたがって順次読み出すことにより、パケット・デインターリーバ24から供給されたバイト・インターリーブデータBID’に対して畳み込みデインターリーブを施す。
このようなバイト・デインターリーバ25は、生成した複数個の符号化パケットEP’から構成される符号化データED’を後段のリード・ソロモン復号部26に供給する。このバイト・デインターリーバ25によって畳み込みデインターリーブが施された符号化データED’は、例えば通信路上で1つの上位レイヤパケットULP’が欠落していた場合には、18×6=108個の符号化パケットEP’のそれぞれに対して12バイトずつのエラーデータが含まれた状態となる。
なお、このバイト・デインターリーバ25は、バイト・インターリーバ12と同様に、所定のアドレス生成方式にしたがってアドレス制御を行うことにより、畳み込みデインターリーブを行うのに必要なメモリ、すなわち、DPRAMの容量の削減を図ることができるが、これについては、後述するものとする。
リード・ソロモン復号部26は、符号化器10におけるリード・ソロモン符号化部11に対応して設けられるものであり、バイト・デインターリーバ25から供給された符号化データED’を構成する符号化パケットEP’のそれぞれに対して、リード・ソロモン符号の復号を施し、複数個のトランスポートパケットTSPから構成されるトランスポートストリームTSを復元する。具体的には、リード・ソロモン復号部26は、216バイトからなる符号化パケットEP’のそれぞれに含まれる28バイトからなるパリティとしての誤り訂正符号を用いて誤り訂正を行い、188バイトからなるトランスポートパケットTSPから構成されるトランスポートストリームTSを復元して出力する。このリード・ソロモン復号部26は、例えば通信路上で1つの上位レイヤパケットULP’が欠落していた場合には、任意の符号化パケットEP’に含まれる最大のエラーバイト数が12バイトであり、誤り訂正限界バイト数である14バイト以下であることから、全てのビットを完全に訂正することができる。
このような各部を有する復号器20は、所定の通信路を介して受信した受信データRDから、符号化器10に情報系列として入力されたトランスポートストリームTSを完全に復元して出力する。図11A〜図11Eは、パケット・インターリーバでパケット単位の畳み込みインターリーブ処理が行われたとき、復号器20が有する各部におけるパケットフォーマットの推移を説明するための図である。また、図12A〜図12Fは、パケット・インターリーバでパケット単位のブロックインターリーブ処理が行われたとき、復号器20が有する各部におけるパケットフォーマットの推移を説明するための図である。
すなわち、復号器20は、受信部21によって受信データRDを受信して図11A(図12A)に示すパケットデータPD’を生成すると、これらのパケットデータPD’のそれぞれをアンパケット化部23によって分割し、図11B(図12B)に示す複数個のパケット・インターリーブパケットPIP’から構成されるパケット・インターリーブデータPID’を生成する。ここで、受信データRDは、通信路上で1つの上位レイヤパケットULP’の欠落が発生したものであるとし、この欠落した上位レイヤパケットULP’に対応するパケットデータPD’及びパケット・インターリーブパケットPIP’を図11A(図12A),図11B(図12B)における横線部で示すものとする。
このとき、符号化器10において生成された1つの符号化パケットEPに含まれる情報は、パケット単位の畳み込みインターリーブ処理が行われたとき、図11A,図11Bにおける斜線部に示すように、連続する144個のパケット・インターリーブパケットPIP’に離散的に分散され、且つ、12バイトずつの情報が少なくとも6個のパケット・インターリーブパケットPIP’の間隔を空けて分散されている状態である。
復号器20は、パケット・インターリーブパケットPIP’のそれぞれに対して、パケット・デインターリーバ24によってパケット単位で畳み込みデインターリーブを施すことにより、符号化器10において生成された1つの符号化パケットEPに含まれる情報を、図11Cの斜線部及び横線部に示す連続する18個のバイト・インターリーブパケットBIP’に12バイトずつ分散した複数個のバイト・インターリーブパケットBIP’から構成されるバイト・インターリーブデータBID’を生成する。このとき、復号器20は、パケット連続性検証部22による検証結果情報CKに基づいて、欠落した上位レイヤパケットULP’に対応するデータを無効データに置換し、図11Cにおける″?″が付された横線部で示すバイト・インターリーブパケットBIP’を含むバイト・インターリーブデータBID’を生成する。
さらに、復号器20は、バイト・インターリーブパケットBIP’のそれぞれに対して、図11Dに示すように、バイト・デインターリーバ25によって畳み込みデインターリーブを施すことにより、複数個の符号化パケットEP’から構成される符号化データED’を生成する。これにより、欠落した1つの上位レイヤパケットULP’による216×6=1296バイトもの極めて大きなバーストエラーは、図11Dにおけるクロスハッチ部に示すように、各符号化パケットEP’に分散されたせいぜい12バイトのランダムエラーとして扱うことが可能となる。
また、符号化器10において生成された1つの符号化パケットEPに含まれる情報は、パケット単位のブロックインターリーブ処理が行われたとき、図12A,図12Bにおける斜線部に示すように、連続する108個のパケット・インターリーブパケットPIP’に離散的に分散され、且つ、インターリーブブロックの先頭から連続する6パケット・インターリーブパケットPIP毎のグループに、12バイトずつの情報がそれぞれ1つずつ分散されている状態である。
復号器20は、パケット・インターリーブパケットPIP’のそれぞれに対して、パケット・デインターリーバ24によってパケット単位でブロックデインターリーブを施す。ここで、パケット単位でブロックデインターリーブを施す際には、シンクバイトを利用して、パケット・インターリーブデータPID’におけるインターリーブブロックの先頭やRTPパケットを検出する。図12Bは、シンクバイトの検出結果を示しており、「B」がインターリーブブロックの開始を示しており、「P」がRTPパケットの先頭位置を示している。
パケット・デインターリーバ24は、図12Cに示すように、検出されたインターリーブブロックの開始から108個のパケット・インターリーブパケットPIP’を用いてブロックデインターリーブを施すことにより、符号化器10において生成された1つの符号化パケットEPに含まれる情報を、図12Dの斜線部及び横線部に示すように、連続する18個のバイト・インターリーブパケットBIP’に12バイトずつ分散した複数個のバイト・インターリーブパケットBIP’から構成されるバイト・インターリーブデータBID’を生成する。このとき、復号器20は、パケット連続性検証部22による検証結果情報CKに基づいて、欠落した上位レイヤパケットULP’に対応するデータを無効データに置換し、図12Dにおける″?″が付された横線部で示すバイト・インターリーブパケットBIP’を含むバイト・インターリーブデータBID’を生成する。
さらに、復号器20は、バイト・インターリーブパケットBIP’のそれぞれに対して、図12Dに示すように、バイト・デインターリーバ25によって畳み込みデインターリーブを施すことにより、複数個の符号化パケットEP’から構成される符号化データED’を生成する。これにより、欠落した1つの上位レイヤパケットULP’による216×6=1296バイトもの極めて大きなバーストエラーは、図12Eにおけるクロスハッチ部に示すように、各符号化パケットEP’に分散されたせいぜい12バイトのランダムエラーとして扱うことが可能となる。
なお、図11A,図11Bの斜線部で示してきた分散された情報は、図11Eにおける黒マスで示すように、1つのトランスポートパケットTSPに集約されることになる。また、図12A,図12Bの斜線部で示してきた分散された情報は、図12Fにおける黒マスで示すように、1つのトランスポートパケットTSPに集約されることになる。
そして、復号器20は、図11E,図12Fに示すように、リード・ソロモン復号部26によってリード・ソロモン符号の復号を施すことにより、完全にエラーが訂正された複数個のトランスポートパケットTSPから構成されるトランスポートストリームTSを生成する。
このように、復号器20は、最大で1つの上位レイヤパケットULP’に含まれる情報にバーストエラーが発生した状態とされる受信データRDを受信した場合であっても、このバーストエラーを完全に訂正することができる。このとき、復号器20は、符号化器10によって生成された送信データTDにおける1つの上位レイヤパケットULPが通信路上で欠落した状態とされる複数個の上位レイヤパケットULP’から構成される受信データRDを受信した場合であっても、存在しない欠落したデータを無効データに置換することにより、バーストエラーとみなすことができ、欠落した上位レイヤパケットULP’に対応する情報を完全に復元することができる。
また、復号器20は、符号化器10と同様に、バイト・デインターリーバ25をプログラマブルデバイスに内蔵される容量の小さなDPRAMを用いて実装するとともに、パケット・デインターリーバ24をプログラマブルデバイスに外付けとされる比較的容量の大きなSDRAM27を用いて実装することにより、プログラマブルデバイスの内部に設けられるメモリ資源を節約することができるとともに、SDRAM27に対するバーストアクセスによる周辺回路の単純化を図ることができる。このように、復号器20は、DPRAM及びSDRAM27を用いた2段階のデインターリーブを行うことにより、符号化器10と同様に、これらのメモリの弱点を補完的に回避することができ、パケット単位でデインターリーブを行う際に、プログラマブルデバイスに内蔵される容量が小さなDPRAMを用いるのではなく外付けとされるSDRAM27を用いることにより、コストの削減を図ることができ、SDRAM27に対してパケット単位でアクセスすることによって高速動作を行うこともできる。
さて、符号化器10におけるバイト・インターリーバ12、及び復号器20におけるバイト・デインターリーバ25は、それぞれ、上述したように、所定のアドレス生成方式にしたがってアドレス制御を行うことにより、バイト単位あるいはユニット単位での畳み込みインターリーブ及び畳み込みデインターリーブを行うのに必要なメモリ容量を削減することができる。以下、これについて詳述する。
メモリとしてDPRAMを用いてバイト単位あるいはユニット単位で畳み込みインターリーブ又は畳み込みデインターリーブを行う際には、DPRAMの書き込み側で畳み込みインターリーブ又は畳み込みデインターリーブを行うためのデータの並べ替えを行う一方で、読み出し側でDPRAMの先頭アドレスから順次1パケットずつ読み出すのが通常である。また、これとは逆に、書き込み側でDPRAMの先頭アドレスから順次1パケットずつ書き込む一方で、DPRAMの読み出し側で畳み込みインターリーブ又は畳み込みデインターリーブを行うためのデータの並べ替えを行うことにより、バイト単位あるいはユニット単位で畳み込みインターリーブ又は畳み込みデインターリーブを行うこともできる。したがって、DPRAMは、既に畳み込みインターリーブ又は畳み込みデインターリーブを行うために使用されてデータが読み出された領域があっても、データの読み出しの直後にこの領域を使用することがなく、畳み込みインターリーブ又は畳み込みデインターリーブを行うために確保した領域のうち約半分の領域が使用されない状態となる。
そこで、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、DPRAMにおけるある領域からデータ読み出した場合には、次に書き込むデータをこの領域に対して書き込むことにより、畳み込みインターリーブ又は畳み込みデインターリーブを実現する。すなわち、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、DPRAMの領域のうち使用済みとされる無駄な領域をなくし、確保した領域に対して、今後畳み込みインターリーブ又は畳み込みデインターリーブを行うために使用される有意なデータのみを常に記憶しておくようにする。これにより、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、畳み込みインターリーブ又は畳み込みデインターリーブを行うために必要とするDPRAMの容量を最小限に抑制することができる。
このようなDPRAMに対するデータの書き込み動作及び読み出し動作を実現するために、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、図13A乃至図24を用いて説明するアドレス生成方式にしたがったアドレス制御を行う。
以下、バイト単位およびユニット単位でインターリーブおよびデインターリーブを行う場合について説明する。なお、説明を簡便化するために、バイト単位でインターリーブおよびデインターリーブを行う場合には、バイト・インターリーバ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’を生成するものとして説明する。
ここで、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、通常であれば、畳み込みインターリーブ又は畳み込みデインターリーブの深さと入力した1パケットあたりのバイト数との積で表されるバイト数、例えば上述のように12バイトからなる符号化パケットEPに対して深さ4及び周期3の畳み込みインターリーブおよび畳み込みデインターリーブを行う場合、12×4=48バイトの容量を有するメモリを用いて実装する必要があるところ、この容量よりも小さい容量を有するメモリを用いて実装可能とするものである。
まず、バイト単位で処理を行う場合の動作を説明する。バイト・インターリーバ12は、ある符号化パケットEPを構成する各バイトが、畳み込みインターリーブが施されることによって当該バイトが属するパケットからどれほど遅延したパケットに格納されるかに応じて各バイトを分類する。さらに、これらの分類されたバイトをまとめてDPRAMにおけるメモリマップ上で連続したアドレスに管理する。ここで、あるバイトが属するパケットからの遅延パケット数をディレイ(Delay)と称し、遅延パケット数が等しいバイト群をディレイ・グループ(Delay Group)と称するものとする。すなわち、バイト・インターリーバ12は、任意の符号化パケットEPを構成する各バイトについて、当該符号化パケットEPに対する、畳み込みインターリーブが施されることによって当該バイトが格納されるバイト・インターリーブパケットBIPの遅延数である遅延パケット数が等しいバイト群をディレイ・グループとしてまとめて分類する。さらに、このディレイ・グループ毎にDPRAMにおける連続するアドレスに対して書き込み及び読み出しを行うように書き込みアドレス及び読み出しアドレスを生成して、ディレイ・グループ毎にデータを扱う。
ある符号化パケット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のカウンタとを、補助カウンタとして設ける。
ここで、第1のカウンタによって計数されるカウント値cnt_delは、上述した遅延パケット数、すなわち、ディレイを表すものであり、第2のカウンタによって計数されるカウント値cnt_blockは、第1のカウンタの周期を1ブロックとしたときのブロック数を表すものである。
バイト・インターリーバ12は、このような第1のカウンタによって計数されるカウント値cnt_delと、第2のカウンタによって計数されるカウント値cnt_blockとを用いて、DPRAMに対するデータの書き込み及び読み出しを制御し、符号化パケットEPに対して畳み込みインターリーブを施す。このとき、バイト・インターリーバ12は、畳み込みインターリーブを施す符号化パケットEPを入力すると、即座にDPRAMに対するデータの書き込みを開始する一方、DPRAMからのデータの読み出しについては、データの書き込みと同時に開始するか、又は所定の固定クロック数だけ遅延して開始する。バイト・インターリーバ12は、ある符号化パケットEPを入力した場合には、DPRAMに書き込まれた有意なデータを読み出す前に、他のデータによって当該有意なデータが上書きされるのを回避するために、DPRAMに対するデータの書き込み後、次の符号化パケットEPが入力される前に、全てのデータの読み出しを完了する必要がある。
具体的には、バイト・インターリーバ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″と記述するものとする。
すなわち、バイト・インターリーバ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)にそれぞれ分類されることとなる。
そして、バイト・インターリーバ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に書き込むように、書き込みアドレスを生成する。
また、バイト・インターリーバ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のいずれにもデータが書き込まれていない状態であることから、実際には、読み出すべきデータがないことになる。
これにより、バイト・インターリーバ12は、図14Dの左から1番目に示すように、ディレイ・グループdel0(0−0)として分類された各バイトからなるデータを出力することになる。
続いて、バイト・インターリーバ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)に分類する。
そして、バイト・インターリーバ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)に書き込むように、書き込みアドレスを生成する。
また、バイト・インターリーバ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)のみを読み出すことになる。
これにより、バイト・インターリーバ12は、図14Dの左から2番目に示すように、ディレイ・グループdel0(1−0),del1(0−1)として分類された各バイトからなるデータを出力することになる。
続いて、バイト・インターリーバ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)に分類する。
そして、バイト・インターリーバ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に書き込むように、書き込みアドレスを生成する。
また、バイト・インターリーバ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)のみを読み出すことになる。
これにより、バイト・インターリーバ12は、図14Dの左から3番目に示すように、ディレイ・グループdel0(2−0),del1(1−1),del2(0−2)として分類された各バイトからなるデータを出力することになる。
同様に、バイト・インターリーバ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)に分類する。
そして、バイト・インターリーバ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に書き込むように、書き込みアドレスを生成する。
なお、この段階でのDPRAMにおける各アドレスにマッピングされたデータを詳細に示すと、図15に示すようになる。すなわち、バイト・インターリーバ12においては、アドレス0からアドレス2までの3バイト分のブロックを記憶可能な領域については、パケット番号が″0″であり且つ遅延パケット数が″3″であるディレイ・グループdel3(0−3)が記憶され、このうち、アドレス0の領域にはバイト番号が″3″のデータが記憶され、アドレス1の領域にはバイト番号が″7″のデータが記憶され、アドレス2の領域にはバイト番号が″11″のデータが記憶されるといったように、各ディレイ・グループに属する各バイトが、連続するアドレスに対してバイト番号が小さいものから書き込まれる。
また、バイト・インターリーバ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)を読み出すことになる。
これにより、バイト・インターリーバ12は、図14Dの左から4番目に示すように、ディレイ・グループdel0(3−0),del1(2−1),del2(1−2),del3(0−3)として分類された各バイトからなるデータを出力することになる。
このように、バイト・インターリーバ12は、符号化パケットEPが入力される毎に各バイトをディレイ・グループに分類し、上述したアドレス生成方式にしたがった書き込みアドレス及び読み出しアドレスに基づいて、ディレイ・グループ毎にDPRAMにおけるメモリマップ上で連続したアドレスに管理された書き込み及び読み出しを行う。これにより、バイト・インターリーバ12は、読み出しが行われてインターリーブが完了したデータの記憶領域を次のデータの書き込み領域として、即座に次のデータを書き込むことができる。すなわち、DPRAMの領域のうち使用済みとされる無駄な領域(インターリーブが完了したデータが書き込まれたままとなっている領域)をなくすことができ、必要とするDPRAMの容量を最小限に抑制することができる。この場合、バイト・インターリーバ12は、通常であれば、畳み込みインターリーブの深さD=4と入力した1パケットあたりのバイト数N=12との積、すなわち、D×N=4×12=48バイトの容量を有するDPRAMを必要とするところ、上述したアドレス制御を行うことにより、図14Cに示すように、9個の3バイトからなる領域、すなわち、27バイトの容量を有するDPRAMを用いるのみで、同様の畳み込みインターリーブを行うことができる。また、バイト・インターリーバ12は、分類したディレイ・グループ毎に連続するアドレスに対して書き込み、また、この連続するアドレスに対して書き込まれたディレイ・グループ毎に読み出しを行うことにより、書き込みアドレス及び読み出しアドレスの算出を容易に行うことができる。
つぎに、バイト・デインターリーバ25について説明する。
バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、あるバイト・インターリーブパケットBIP’を構成する各バイトをディレイ・グループに分類してこのディレイ・グループ毎にデータを扱い、バイト・インターリーバ12とは対称なアドレス制御を行うことにより、畳み込みデインターリーブを行う。
すなわち、バイト・デインターリーバ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が、インクリメントされるのではなく、デクリメントされることである。
バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、このような第1のカウンタによって計数されるカウント値cnt_delと、第2のカウンタによって計数されるカウント値cnt_blockとを用いて、DPRAMに対するデータの書き込み及び読み出しを制御し、バイト・インターリーブパケットBIP’に対して畳み込みデインターリーブを施す。バイト・デインターリーバ25は、畳み込みデインターリーブを施すバイト・インターリーブパケットBIP’を入力すると、即座にDPRAMに対するデータの書き込みを開始する一方、DPRAMからのデータの読み出しについては、データの書き込みと同時に開始するか、又は所定の固定クロック数だけ遅延して開始する。バイト・デインターリーバ25は、あるバイト・インターリーブパケットBIP’を入力した場合には、DPRAMに書き込まれた有意なデータを読み出す前に、他のデータによって当該有意なデータが上書きされるのを回避するために、DPRAMに対するデータの書き込み後、次のバイト・インターリーブパケットBIP’が入力される前に、全てのデータの読み出しを完了する必要がある。
具体的には、バイト・デインターリーバ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と称するものとする。
すなわち、バイト・デインターリーバ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)に分類する。
なお、図17Bにおいては、先に示した図14Bと異なり、第1のカウンタによるカウント値cnt_delと、″n−m″と記述されるディレイ・グループの″m″の値とが一致しないが、これは、バイト・インターリーブパケットBIP’に対して畳み込みデインターリーブを施すことによって符号化パケットEPに対応する符号化パケットEP’が復元される様子を示すための便宜である。
そして、バイト・デインターリーバ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に書き込むように、書き込みアドレスを生成する。
また、バイト・デインターリーバ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のいずれにもデータが書き込まれていない状態であることから、実際には、読み出すべきデータがないことになる。
これにより、バイト・デインターリーバ25は、図17Dの左から1番目に示すように、ディレイ・グループdel0(0−3)として分類された各バイトからなるデータを出力することになる。
続いて、バイト・デインターリーバ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)に分類する。
そして、バイト・デインターリーバ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)に書き込むように、書き込みアドレスを生成する。
また、バイト・デインターリーバ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)のみを読み出すことになる。
これにより、バイト・デインターリーバ25は、図17Dの左から2番目に示すように、ディレイ・グループdel0(1−3),del1(1−2)として分類された各バイトからなるデータを出力することになる。
続いて、バイト・デインターリーバ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)に分類する。
そして、バイト・デインターリーバ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に書き込むように、書き込みアドレスを生成する。
また、バイト・デインターリーバ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)のみを読み出すことになる。
これにより、バイト・デインターリーバ25は、図17Dの左から3番目に示すように、ディレイ・グループdel0(2−3),del1(2−2),del2(2−1)として分類された各バイトからなるデータを出力することになる。
同様に、バイト・デインターリーバ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)に分類する。
そして、バイト・デインターリーバ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に書き込むように、書き込みアドレスを生成する。
なお、この段階でのDPRAMにおける各アドレスにマッピングされたデータを詳細に示すと、図18に示すようになる。すなわち、バイト・デインターリーバ25においては、アドレス0からアドレス2までの3バイト分のブロックを記憶可能な領域については、パケット番号が″3″であり且つ遅延パケット数が″3″であるディレイ・グループdel3(3−0)が記憶され、このうち、アドレス0の領域にはバイト番号が″0″のデータが記憶され、アドレス1の領域にはバイト番号が″4″のデータが記憶され、アドレス2の領域にはバイト番号が″8″のデータが記憶されるといったように、各ディレイ・グループに属する各バイトが、連続するアドレスに対してバイト番号が小さいものから書き込まれる。
また、バイト・デインターリーバ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)を読み出すことになる。
これにより、バイト・デインターリーバ25は、図17Dの左から4番目に示すように、ディレイ・グループdel0(3−3),del1(3−2),del2(3−1),del3(3−0)として分類された各バイトからなるデータを出力することになる。
このように、バイト・デインターリーバ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は、分類したディレイ・グループ毎に連続するアドレスに対して書き込み、また、この連続するアドレスに対して書き込まれたディレイ・グループ毎に読み出しを行うことにより、書き込みアドレス及び読み出しアドレスの算出を容易に行うことができる。
以上のように、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれバイト単位で、12バイトからなるパケットを入力して深さ4及び周期3の畳み込みインターリーブ又は畳み込みデインターリーブを行う場合には、入力するパケットを構成する各バイトのバイト番号に対応して畳み込みインターリーブ又は畳み込みデインターリーブの深さ4に対応したカウント値cnt_del(0〜3)をパケット毎に計数する第1のカウンタと、この第1のカウンタの周期に対応したカウント値cnt_block(0〜2)をパケット毎に計数する第2のカウンタとを設け、ディレイ・グループ毎にデータを扱えばよい。
次に、ユニット単位で処理を行う場合の動作を説明する。バイト・インターリーバ12は、バイト単位の場合と同様に、任意の符号化パケットEPを構成する各バイトについて、当該符号化パケットEPに対する、畳み込みインターリーブが施されることによって当該バイトがユニット単位で格納されるバイト・インターリーブパケットBIPの遅延数である遅延パケット数が等しいバイト群をディレイ・グループとしてまとめて分類する。さらに、このディレイ・グループ毎にDPRAMにおける連続するアドレスに対して書き込み及び読み出しを行うように書き込みアドレス及び読み出しアドレスを生成して、ディレイ・グループ毎にデータを扱う。
ある符号化パケットEPを構成する各バイトをこのようなディレイ・グループに分類するために、バイト・インターリーバ12は、バイト単位で処理する場合と同様に、DPRAMに対するデータの書き込み及び読み出しを行うのに用いる書き込みアドレス及び読み出しアドレスの算出を補助するための2つの補助カウンタを設ける。さらに、1ユニットが複数の連続するバイト単位であることから、1ユニット内のバイトをカウントするための補助カウンタを設ける。
具体的には、図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のカウンタとを、補助カウンタとして設ける。
バイト・インターリーバ12は、このような第1のカウンタによって計数されるカウント値cnt_delと、第2のカウンタによって計数されるカウント値cnt_block、さらに第3のカウンタによって計数されるカウント値cnt_byteとを用いて、DPRAMに対するデータの書き込み及び読み出しを制御し、符号化パケットEPに対して畳み込みインターリーブを施す。このとき、バイト・インターリーバ12は、畳み込みインターリーブを施す符号化パケットEPを入力すると、即座にDPRAMに対するデータの書き込みを開始する一方、DPRAMからのデータの読み出しについては、データの書き込みと同時に開始するか、又は所定の固定クロック数だけ遅延して開始する。バイト・インターリーバ12は、ある符号化パケットEPを入力した場合には、DPRAMに書き込まれた有意なデータを読み出す前に、他のデータによって当該有意なデータが上書きされるのを回避するために、DPRAMに対するデータの書き込み後、次の符号化パケットEPが入力される前に、全てのデータの読み出しを完了する必要がある。
ここで、バイト・インターリーバ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″が連続して記憶されるといったように、各ディレイ・グループに属する各ユニットの連続するバイトが、連続するアドレスに対してバイト番号が小さいものから書き込まれる。
このように、バイト・インターリーバ12は、符号化パケットEPが入力される毎に各バイトをユニット単位でディレイ・グループに分類し、上述したアドレス生成方式にしたがった書き込みアドレス及び読み出しアドレスに基づいて、ディレイ・グループ毎にDPRAMにおけるメモリマップ上で連続したアドレスに管理された書き込み及び読み出しを行う。これにより、バイト・インターリーバ12は、読み出しが行われてインターリーブが完了したデータの記憶領域を次のデータの書き込み領域として、即座に次のデータを書き込むことができる。すなわち、DPRAMの領域のうち使用済みとされる無駄な領域をなくすことができ、必要とするDPRAMの容量を最小限に抑制することができる。
この場合、バイト・インターリーバ12は、通常であれば、畳み込みインターリーブの深さD=4と入力した1パケットあたりのバイト数N=24との積、すなわち、D×N=4×24=96バイトの容量を有するDPRAMを必要とするところ、上述したアドレス制御を行うことにより、9個の6バイトからなる領域、すなわち、54バイトの容量を有するDPRAMを用いるのみで、同様の畳み込みインターリーブを行うことができる。また、バイト・インターリーバ12は、分類したディレイ・グループ毎に連続するアドレスに対して書き込み、また、この連続するアドレスに対して書き込まれたディレイ・グループ毎に読み出しを行うことにより、書き込みアドレス及び読み出しアドレスの算出を容易に行うことができる。
つぎに、バイト・デインターリーバ25について説明する。バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、あるバイト・インターリーブパケットBIP’を構成する各バイトをディレイ・グループに分類してこのディレイ・グループ毎にデータを扱い、バイト・インターリーバ12とは対称なアドレス制御を行うことにより、畳み込みデインターリーブを行う。
すなわち、バイト・デインターリーバ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のカウンタとを、補助カウンタとして設ける。
なお、バイト・インターリーバ12と異なる点は、第1のカウンタによって計数されるカウント値cnt_delが、インクリメントされるのではなく、デクリメントされることである。
バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、このような第1のカウンタによって計数されるカウント値cnt_delと、第2のカウンタによって計数されるカウント値cnt_blockと、第3のカウンタによって計数されるカウント値cnt_byteを用いて、DPRAMに対するデータの書き込み及び読み出しを制御し、バイト・インターリーブパケットBIP’に対して畳み込みデインターリーブを施す。バイト・デインターリーバ25は、畳み込みデインターリーブを施すバイト・インターリーブパケットBIP’を入力すると、即座にDPRAMに対するデータの書き込みを開始する一方、DPRAMからのデータの読み出しについては、データの書き込みと同時に開始するか、又は所定の固定クロック数だけ遅延して開始する。バイト・デインターリーバ25は、あるバイト・インターリーブパケットBIP’を入力した場合には、DPRAMに書き込まれた有意なデータを読み出す前に、他のデータによって当該有意なデータが上書きされるのを回避するために、DPRAMに対するデータの書き込み後、次のバイト・インターリーブパケットBIP’が入力される前に、全てのデータの読み出しを完了する必要がある。
ここで、バイト・デインターリーバ25は、バイト・インターリーバ12から出力されるデータ配列からなるバイト・インターリーブパケットBIP’を入力するものとすると、DPRAMに対するディレイ・グループ毎に分類されたバイト群の書き込み及び読み出しをユニット単位で行うものとすれば、上述の図17A〜図17Dに示す場合と同様にして、DPRAMに対するディレイ・グループ毎に分類されたバイト群の書き込み及び読み出しを行うことができる。なお、パケット番号が″3″とされる符号化パケットEPを入力した段階でのDPRAMにおける各アドレスにマッピングされたデータは、バイト単位で処理したとき図18に示すものとなるが、ユニット単位で処理が行われたときには1つの処理単位が1バイトから1ユニット(=2バイト)とされるため、図22に示すものとなる。
すなわち、バイト・インターリーバ12においては、アドレス0からアドレス5までの3ユニット分を記憶可能な領域については、パケット番号が″0″であり且つ遅延パケット数が″3″であるディレイ・グループdel3(0−3)が記憶され、このうち、アドレス0,1の領域には4番目のユニットのデータ″6,7″が連続して記憶され、アドレス2,3の領域には8番目のユニットのデータ″14,15″が連続して記憶され、アドレス4,5の領域には12番目のユニットのデータ″22,23″が連続して記憶されるといったように、各ディレイ・グループに属する各ユニットの連続するバイトが、連続するアドレスに対してバイト番号が小さいものから書き込まれる。
すなわち、バイト・デインターリーバ25においては、アドレス0からアドレス5までの6バイト分が記憶可能な領域については、パケット番号が″3″であり且つ遅延パケット数が″3″であるディレイ・グループdel3(3−0)が記憶され、このうち、アドレス0,1の領域には最初のユニットのデータ″0,1″が連続して記憶され、アドレス2,3の領域には5番目のユニットのデータ″8,9″が連続して記憶され、アドレス4,5の領域には9番目のユニットのデータ″16,17″が連続して記憶されるといったように、各ディレイ・グループに属する各ユニットの連続するバイトが、連続するアドレスに対してバイト番号が小さいものから書き込まれる。
このように、バイト・デインターリーバ25は、バイト・インターリーブパケットBIP’が入力される毎に各バイトをディレイ・グループに分類し、上述したアドレス生成方式にしたがった書き込みアドレス及び読み出しアドレスに基づいて、ディレイ・グループ毎にDPRAMにおけるメモリマップ上で連続したアドレスに管理された書き込み及び読み出しを行う。これにより、バイト・デインターリーバ25は、バイト・インターリーバ12と同様に、読み出しが行われてデインターリーブが完了したデータの記憶領域を次のデータの書き込み領域として、即座に次のデータを書き込むことができる。すなわち、DPRAMの領域のうち使用済みとされる無駄な領域をなくすことができ、必要とするDPRAMの容量を最小限に抑制することができる。
この場合、バイト・デインターリーバ25は、通常であれば、畳み込みデインターリーブの深さD=4と入力した1パケットあたりのバイト数N=24との積、すなわち、D×N=4×24=96バイトの容量を有するDPRAMを必要とするところ、上述したアドレス制御を行うことにより、図17Cに示すように、9個の6バイトからなる領域、すなわち、54バイトの容量を有するDPRAMを用いるのみで、同様の畳み込みデインターリーブを行うことができる。また、バイト・デインターリーバ25は、分類したディレイ・グループ毎に連続するアドレスに対して書き込み、また、この連続するアドレスに対して書き込まれたディレイ・グループ毎に読み出しを行うことにより、書き込みアドレス及び読み出しアドレスの算出を容易に行うことができる。
以上のように、バイト・インターリーバ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のカウンタとを設け、ディレイ・グループ毎にデータを扱えばよい。
したがって、このようなバイト・インターリーバ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によるアドレス生成方式は、以下のように一般化して表すことができる。
まず、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、DPRAMに対してデータを書き込む際には、図23に示す一連の処理で示す規則にしたがってディレイ・グループ毎に応じた書き込みアドレスを生成し、DPRAMに対するデータの書き込みを制御する。
すなわち、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、図23に示すように、ステップS1において、上述した基準アドレスaddr_baseを″0″に設定した上で、ステップS2において、畳み込みインターリーブ又は畳み込みデインターリーブを施すパケットの区切りであるか否かを判定する。
ここで、パケットの区切りでないと判定した場合には、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、第1のカウンタ及び第2のカウンタと第3のカウンタを動作させ、第1のカウンタによるカウント値cnt_delに基づいて、DPRAMに対してディレイ・グループ毎に各バイトを書き込む。
すなわち、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS3において、第1のカウンタによるカウント値cnt_delを″0″とした場合には、このときのバイトをディレイ・グループdel0に分類し、ステップS4において、書き込みアドレスを生成せずに、これらのディレイ・グループdel0に属する各バイトをDPRAMに書き込むことなくステップS2へと処理を移行する。
また、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS3において、第1のカウンタによるカウント値cnt_delを″1″とした場合には、このときのバイトをディレイ・グループdel1に分類し、ステップS5において、書き込みアドレスとして、
を生成し、これらのディレイ・グループdel1に属する各バイトをこの書き込みアドレスが示す領域に書き込み、ステップS2へと処理を移行する。
さらに、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS3において、第1のカウンタによるカウント値cnt_delを″2″とした場合には、このときのバイトをディレイ・グループdel2に分類し、ステップS6において、書き込みアドレスとして、
を生成し、これらのディレイ・グループdel2に属する各バイトをこの書き込みアドレスが示す領域に書き込み、ステップS2へと処理を移行する。
さらにまた、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS3において、第1のカウンタによるカウント値cnt_delを″3″とした場合には、このときのバイトをディレイ・グループdel3に分類し、ステップS7において、書き込みアドレスとして、
を生成し、これらのディレイ・グループdel3に属する各バイトをこの書き込みアドレスが示す領域に書き込み、ステップS2へと処理を移行する。
そして、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS3において、第1のカウンタによるカウント値cnt_delを″D−1″とした場合には、このときのバイトをディレイ・グループdel(D−1)に分類し、ステップS8において、書き込みアドレスとして、
を生成し、これらのディレイ・グループdel(D−1)に属する各バイトをこの書き込みアドレスが示す領域に書き込み、ステップS2へと処理を移行する。
バイト・インターリーバ12は、カウント値cnt_delを″0″から″D−1″までインクリメントすることによってカウント値cnt_delが″D−1″となるまでこのような動作を行い、さらにこの動作を畳み込みインターリーブの周期Cの値だけ繰り返し行い、1パケットに含まれる全てのバイトについての処理を終了する。一方、バイト・デインターリーバ25は、カウント値cnt_delを″D−1″から″0″までデクリメントすることによってカウント値cnt_delが″0″となるまでこのような動作を行い、さらにこの動作を畳み込みデインターリーブの周期Cの値だけ繰り返し行い、1パケットに含まれる全てのバイトについての処理を終了する。
このようにして、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、入力したパケットについての処理を終了し、ステップS2において、パケットの区切りであると判定した場合には、ステップS9へと処理を移行する。そして、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS9において、パケットの区切りで基準アドレスaddr_baseを「畳み込みインターリーブ又は畳み込みデインターリーブの周期C×ユニット内のバイト数U」の値だけ、すなわち、1ブロック領域分だけ増加させ、次のパケットの入力があるまで待機すべく、ステップS2へと再度処理を移行する。
バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、このような規則にしたがってディレイ・グループ毎に応じた書き込みアドレスを生成することにより、DPRAMに対するデータの書き込みを制御することができる。なお、バイト単位で畳み込みインターリーブを行う際には、1ユニット内のバイト数は「1」であることから、上述の読み出しアドレスの一般式において、U=1,cnt_byte=0とすれば、バイト単位で畳み込みインターリーブや畳み込みデインターリーブを施す際の式となる。また、このとき第3のカウンタは不要となる。
一方、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、DPRAMからデータを読み出す際には、図24に示す一連の処理で示す規則にしたがってディレイ・グループ毎に応じた読み出しアドレスを生成し、DPRAMからのデータの読み出しを制御する。
すなわち、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、図24に示すように、ステップS11において、上述した基準アドレスaddr_baseを″0″に設定した上で、ステップS12において、畳み込みインターリーブ又は畳み込みデインターリーブを施すパケットの区切りであるか否かを判定する。
ここで、パケットの区切りでないと判定した場合には、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、第1のカウンタ及び第2のカウンタを動作させ、第1のカウンタによるカウント値cnt_delに基づいて、DPRAMからディレイ・グループ毎に各バイトを読み出す。
すなわち、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS13において、第1のカウンタによるカウント値cnt_delを″0″とした場合には、このときのバイトをディレイ・グループdel0に分類し、ステップS14において、読み出しアドレスを生成せずに、これらのディレイ・グループdel0に属する各バイトをDPRAMに書き込むことなくそのまま出力し、ステップS12へと処理を移行する。
また、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS13において、第1のカウンタによるカウント値cnt_delを″1″とした場合には、ステップS15において、読み出しアドレスとして、
を生成し、この読み出しアドレスが示す領域に記憶されている各バイトをディレイ・グループdel1として読み出し、ステップS12へと処理を移行する。
さらに、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS13において、第1のカウンタによるカウント値cnt_delを″2″とした場合には、ステップS16において、読み出しアドレスとして、
を生成し、この読み出しアドレスが示す領域に記憶されている各バイトをディレイ・グループdel2として読み出し、ステップS12へと処理を移行する。
さらにまた、バイト・インターリーバ12及びバイト・デインターリーバ25、それぞれ、ステップS13において、第1のカウンタによるカウント値cnt_delを″3″とした場合には、ステップS17において、読み出しアドレスとして、
を生成し、この読み出しアドレスが示す領域に記憶されている各バイトをディレイ・グループdel3として読み出し、ステップS12へと処理を移行する。
そして、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS13において、第1のカウンタによるカウント値cnt_delを″D−1″とした場合には、ステップS18において、読み出しアドレスとして、
を生成し、この読み出しアドレスが示す領域に記憶されている各バイトをディレイ・グループdel(D−1)として読み出し、ステップS12へと処理を移行する。
バイト・インターリーバ12は、カウント値cnt_delを″0″から″D−1″までインクリメントすることによってカウント値cnt_delが″D−1″となるまでこのような動作を行い、さらにこの動作を畳み込みインターリーブの周期Cの値だけ繰り返し行い、1パケットに含まれる全てのバイトについての処理を終了する。一方、バイト・デインターリーバ25は、カウント値cnt_delを″D−1″から″0″までデクリメントすることによってカウント値cnt_delが″0″となるまでこのような動作を行い、さらにこの動作を畳み込みデインターリーブの周期Cの値だけ繰り返し行い、1パケットに含まれる全てのバイトについての処理を終了する。
このようにして、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、入力したパケットについての処理を終了し、ステップS12において、パケットの区切りであると判定した場合には、ステップS19へと処理を移行する。そして、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、ステップS19において、パケットの区切りに基準アドレスaddr_baseを「畳み込みインターリーブ又は畳み込みデインターリーブの周期C×ユニット内のバイト数U」の値だけ、すなわち、1ブロック領域分だけ増加させ、次のパケットの入力があるまで待機すべく、ステップS12へと再度処理を移行する。
バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、このような規則にしたがってディレイ・グループ毎に応じた読み出しアドレスを生成することにより、DPRAMからのデータの読み出しを制御することができる。なお、バイト単位で畳み込みインターリーブを行う際には、1ユニット内のバイト数は「1」であることから、上述の読み出しアドレスの一般式において、U=1,cnt_byte=0とすれば、バイト単位で畳み込みインターリーブや畳み込みデインターリーブを施す際の式となる。また、このとき第3のカウンタは不要となる。
バイト・インターリーバ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を用いるのみでよい。
また、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を用いるのみでよい。
このように、バイト・インターリーバ12及びバイト・デインターリーバ25は、それぞれ、通常必要とされるメモリ容量の約半分の容量を有するメモリを用いればよく、必要なメモリ容量を大幅に削減することができる。
以上説明したように、最良の形態として示すデータ送受信システムにおいて、符号化器10は、バイト単位あるいはユニット単位の畳み込みインターリーブとパケット単位のインターリーブとを行うことにより、容量の小さなメモリを用いてインターリーブの深さをかせぐことができ、小さい符号長からなる誤り訂正符号であってもパケットロスを含む大きなバーストエラーを訂正することを可能とする送信データTDを送信することができる。一方、データ送受信システムにおいて、復号器20は、このような符号化器10から受信した受信データRDに対して、符号化器10に対応するパケット単位のデインターリーブとバイト単位あるいはユニット単位の畳み込みデインターリーブとを施すことにより、パケットロスを含む大きなバーストエラーを完全に訂正することができる。
なお、本発明は、上述した形態に限定されるものではない。例えば、上述の形態では、バイト・インターリーバ12及びパケット・インターリーバ13を含む各部、又はパケット・デインターリーバ24及びバイト・デインターリーバ25を含む各部を、それぞれ、プログラマブルデバイスとして実装するものとして説明したが、本発明は、専用の集積回路として実装した場合であっても適用することができる。
さらに、上述の形態では、符号化器10に対してMPEG−2方式に基づく圧縮符号化を施して得られたトランスポートストリームTSを入力し、復号器20によってこのトランスポートストリームTSを復元するものとして説明したが、本発明は、パケット単位でのインターリーブ及びデインターリーブを行う際の同期生成に用いるためにパケットの先頭データワードが固定値であり、且つ、固定長パケットであることを条件とするパケット通信であればいかなるものでも適用することができる。
さらにまた、上述の形態では、誤り訂正符号としてリード・ソロモン符号を用いて説明したが、本発明は、任意の誤り訂正符号を用いた符号化及び復号に適用することができる。
また、上述の形態では、主にパケットロスが発生する場合における誤り訂正について例を示して説明したが、本発明は、パケットロスのみならず大きなバーストエラーが発生する場合にも有効であることは勿論である。なお、本発明は、通常のバーストエラーやランダムエラーの訂正については、従来と同様の処理によって行うことができるのはいうまでもない。
さらに、上述の形態では、パケット化されたデータに対して符号化を行う符号化器10と、この符号化器10によって符号化がなされたデータを復号する復号器20とを備えるデータ送受信システムについて説明したが、本発明は、インターリーブ及びデインターリーブを行うものであれば、このような符号化器及び復号器に限らず、任意の用途に適用することができる。
このように、本発明は、その趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
産業上の利用可能性
以上のように、本発明に係るインターリーブ装置及びインターリーブ方法、並びにデインターリーブ装置及びデインターリーブ方法は、パケット通信を行う際に、小さい符号長からなる誤り訂正符号を用いてパケットロスを含む大きなバーストエラーを訂正することを可能とするために有用であり、例えば映像及び/又は音声のストリーミング再生のように、パケットの再送が許されないリアルタイム通信等に好適である。
【図面の簡単な説明】
図1は、データ送受信システムの構成を説明するブロック図である。
図2A,図2Bは、データ送受信システムにおける符号化器が有するリード・ソロモン符号化部の処理を説明するための図である。
図3A,図3Bは、符号化器が有するバイト・インターリーバで行うバイト単位のインターリーブ処理を説明するための図である。
図4A,図4Bは、符号化器が有するバイト・インターリーバで行う複数の連続するバイト単位のインターリーブ処理を説明するための図である。
図5A,図5Bは、符号化器が有するパケット・インターリーバで行うパケット単位の畳み込みインターリーブ処理を説明するための図である。
図6A,図6Bは、符号化器が有するパケット・インターリーバで行うパケット単位のブロックインターリーブ処理を説明するための図である。
図7A〜図7Dは、パケット・インターリーバでパケット単位の畳み込みインターリーブ処理を行うものとしたときの符号器側の各部におけるデータ内容の推移を具体的に説明するための図である。
図8A〜図8Eは、パケット・インターリーバでパケット単位のブロックインターリーブ処理を行うものとしたときの符号器側の各部におけるデータ内容の推移を具体的に説明するための図である。
図9A〜図9Fは、パケット・インターリーバでパケット単位の畳み込みインターリーブ処理を行うものとしたときの符号器側の各部におけるパケットフォーマットの推移を説明するための図である。
図10A〜図10Eは、パケット・インターリーバでパケット単位のブロックインータリーブ処理を行うものとしたときの符号器側の各部におけるパケットフォーマットの推移を説明するための図である。
図11A〜図11Eは、パケット・インターリーバでパケット単位の畳み込みインターリーブ処理が行われたときの復号器側の各部におけるパケットフォーマットの推移を説明するための図である。
図12A〜図12Fは、パケット・インターリーバでパケット単位のブロックインターリーブ処理が行われたときの復号器側の各部におけるパケットフォーマットの推移を説明するための図である。
図13A〜図13Dは、バイト・インターリーバでバイト単位の処理を行ったときのカウント値を説明するための図である。
図14A〜図14Dは、バイト・インターリーバの処理におけるDPRAMに対するデータの書き込みと読み出しを説明するための図である。
図15は、バイト・インターリーバに設けられたDPRAMのデータマッピング状態の一例を示す図である。
図16A〜図16Dは、バイト・デインターリーバでバイト単位の処理を行ったときのカウント値を説明するための図である。
図17A〜図17Dは、バイト・デインターリーバの処理において、DPRAMに対するデータの書き込みと読み出しを説明するための図である。
図18は、バイト・デインターリーバに設けられたDPRAMのデータマッピング状態の一例を示す図である。
図19A〜図19Eは、バイト・インターリーバで複数の連続するバイト単位の処理を行ったときのカウント値を説明するための図である。
図20は、バイト・インターリーバに設けられるDPRAMにおける各アドレスにデータがマッピングされている様子を示す図である。
図21A〜図21Eは、バイト・デインターリーバで複数の連続するバイト単位の処理を行ったときのカウント値を説明するための図である。
図22は、バイト・デインターリーバに設けられるDPRAMにおける各アドレスにデータがマッピングされている様子を示す図である。
図23は、DPRAMにデータを書き込むための書き込みアドレスの生成動作を示すフローチャートである。
図24は、DPRAMからデータを読み出すための読み出しアドレスの生成動作を示すフローチャートである。
Claims (50)
- 入力された複数個のパケットから構成される第1のデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施す第1のインターリーブ手段と、
上記第1のインターリーブ手段によって生成された複数個のパケットから構成される第2のデータに対して、パケット単位でインターリーブを施す第2のインターリーブ手段とを備える、
インターリーブ装置。 - 上記第2のインターリーブ手段は、パケット単位のインターリーブの先頭のパケットにおける先頭データの値を置換する、
請求の範囲第1項記載のインターリーブ装置。 - 上記先頭データは、上記第1のデータを構成するパケットのヘッダにおけるシンクバイトである、
請求の範囲第2項記載のインターリーブ装置。 - 上記第1のインターリーブ手段は、プログラマブルデバイスに内蔵される第1の記憶手段を用いて実装され、
上記第2のインターリーブ手段は、上記プログラマブルデバイスに対して外付けとされる第2の記憶手段を用いて実装される、
請求の範囲第1項記載のインターリーブ装置。 - 上記第1の記憶手段は、データワード単位で、当該データワードに同期したクロック毎に不連続なアドレスにアクセスすることが可能なデュアルポートのランダムアクセスメモリである、
請求の範囲第4項記載のインターリーブ装置。 - 上記第2の記憶手段は、複数のデータワード単位のデータをバースト転送するのに適したランダムアクセスメモリである、
請求の範囲第4項記載のインターリーブ装置。 - 上記第2の記憶手段は、シンクロナス・ダイナミック・ランダムアクセスメモリである、
請求の範囲第6項記載のインターリーブ装置。 - 上記第1のデータを構成するパケットは、それぞれ、誤り訂正符号が付加されたものである、
請求の範囲第1項記載のインターリーブ装置。 - 上記第1のデータを構成するパケットは、それぞれ、所定のデータに対してMPEG−2方式に基づく圧縮符号化を施して得られたトランスポートストリームを構成する複数個のトランスポートパケットに対して、上記誤り訂正符号が付加されたものである、
請求の範囲第8項記載のインターリーブ装置。 - 上記誤り訂正符号は、リード・ソロモン符号である、
請求の範囲第8項記載のインターリーブ装置。 - 上記第1のインターリーブ手段は、バイト単位又は複数の連続するバイト単位で上記第1のデータに対して畳み込みインターリーブを施す、
請求の範囲第1項記載のインターリーブ装置。 - 入力された複数個のパケットから構成される第1のデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブを施す第1のインターリーブ工程と、
上記第1のインターリーブ工程にて生成された複数個のパケットから構成される第2のデータに対して、パケット単位でインターリーブを施す第2のインターリーブ工程とを備える、
インターリーブ方法。 - 上記第2のインターリーブ工程では、パケット単位のインターリーブの先頭のパケットにおける先頭データの値が置換される、
請求の範囲第12項記載のインターリーブ方法。 - 上記先頭データは、上記第1のデータを構成するパケットのヘッダにおけるシンクバイトである、
請求の範囲第13項記載のインターリーブ方法。 - 上記第1のインターリーブ工程は、プログラマブルデバイスに内蔵される第1の記憶手段を用いて行われ、
上記第2のインターリーブ工程は、上記プログラマブルデバイスに対して外付けとされる第2の記憶手段を用いて行われる、
請求の範囲第12項記載のインターリーブ方法。 - 上記第1の記憶手段として、データワード単位で、当該データワードに同期したクロック毎に不連続なアドレスにアクセスすることが可能なデュアルポートのランダムアクセスメモリが用いられる、
請求の範囲第15項記載のインターリーブ方法。 - 上記第2の記憶手段として、複数のデータワード単位のデータをバースト転送するのに適したランダムアクセスメモリが用いられる、
請求の範囲第15項記載のインターリーブ方法。 - 上記第2の記憶手段として、シンクロナス・ダイナミック・ランダムアクセスメモリが用いられる、
請求の範囲第17項記載のインターリーブ方法。 - 上記第1のデータを構成するパケットは、それぞれ、誤り訂正符号が付加されたものである、
請求の範囲第12項記載のインターリーブ方法。 - 上記第1のデータを構成するパケットは、それぞれ、所定のデータに対してMPEG−2方式に基づく圧縮符号化を施して得られたトランスポートストリームを構成する複数個のトランスポートパケットに対して、上記誤り訂正符号が付加されたものである、
請求の範囲第19項記載のインターリーブ方法。 - 上記誤り訂正符号は、リード・ソロモン符号である、
請求の範囲第19項記載のインターリーブ方法。 - 上記第1のインターリーブ工程では、バイト単位又は複数の連続するバイト単位で上記第1のデータに対して畳み込みインターリーブが施される、
請求の範囲第12項記載のインターリーブ方法。 - 入力された複数個のパケットから構成される第1のデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブである第1のインターリーブを施し、上記第1のインターリーブによって生成された複数個のパケットから構成される第2のデータに対して、パケット単位で第2のインターリーブを施すことで生成されたデータを構成するパケットの順序を、それぞれ、上記第2のデータを構成するパケットの順序に戻すように、入力された複数個のパケットから構成される第3のデータに対して、パケット単位でデインターリーブを施す第1のデインターリーブ手段と、
上記第2のデータを構成するパケットの順序を、それぞれ、上記第1のデータを構成するパケットの順序に戻すように、上記第1のデインターリーブ手段によって生成された複数個のパケットから構成される第4のデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みデインターリーブを施す第2のデインターリーブ手段とを備える、
デインターリーブ装置。 - 上記第2のインターリーブによってパケット単位のインターリーブの先頭のパケットにおける先頭データの値が置換されており、
上記第1のデインターリーブ手段は、上記第2のインターリーブによって値が置換された先頭データに基づいて、上記第3のデータにおける先頭のパケットの同期をとる、
請求の範囲第23項記載のデインターリーブ装置。 - 上記先頭データは、上記第1のデータを構成するパケットのヘッダにおけるシンクバイトである、
請求の範囲第24項記載のデインターリーブ装置。 - 上記第1のデインターリーブ手段は、置換された上記先頭データの値を元に戻し、上記第4のデータを生成する、
請求の範囲第24項記載のデインターリーブ装置。 - 上記第1のデインターリーブ手段は、上記第3のデータを構成するパケットの連続性を示す情報に基づいて、パケットが欠落しているか否かを把握する、
請求の範囲第23項記載のデインターリーブ装置。 - 上記第1のデインターリーブ手段は、パケットが欠落していることを把握した場合には、欠落したパケットに対応するデータを無効データに置換して上記第4のデータを生成する、
請求の範囲第27項記載のデインターリーブ装置。 - 上記第1のデインターリーブ手段は、プログラマブルデバイスに対して外付けとされる第1の記憶手段を用いて実装され、
上記第2のデインターリーブ手段は、上記プログラマブルデバイスに内蔵される第2の記憶手段を用いて実装される、
請求の範囲第23項記載のデインターリーブ装置。 - 上記第1の記憶手段は、複数のデータワード単位のデータをバースト転送するのに適したランダムアクセスメモリである、
請求の範囲第29項記載のデインターリーブ装置。 - 上記第1の記憶手段は、シンクロナス・ダイナミック・ランダムアクセスメモリである、
請求の範囲第30項記載のデインターリーブ装置。 - 上記第2の記憶手段は、データワード単位で、当該データワードに同期したクロック毎に不連続なアドレスにアクセスすることが可能なデュアルポートのランダムアクセスメモリである、
請求の範囲第29項記載のデインターリーブ装置。 - 上記第1のデータを構成するパケットは、それぞれ、所定の誤り訂正符号が付加されたものである、
請求の範囲第23項記載のデインターリーブ装置。 - 上記第1のデータを構成するパケットは、それぞれ、所定のデータに対してMPEG−2方式に基づく圧縮符号化を施して得られたトランスポートストリームを構成する複数個のトランスポートパケットに対して、上記誤り訂正符号が付加されたものである、
請求の範囲第33項記載のデインターリーブ装置。 - 上記誤り訂正符号は、リード・ソロモン符号である、
請求の範囲第33項記載のデインターリーブ装置。 - 上記第1のインターリーブは、バイト単位又は複数の連続するバイト単位での畳み込みインターリーブを施すものであり、
上記第2のデインターリーブは、バイト単位又は複数の連続するバイト単位での畳み込みデインターリーブである、
請求の範囲第23項記載のデインターリーブ装置。 - 入力された複数個のパケットから構成される第1のデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みインターリーブである第1のインターリーブを施し、上記第1のインターリーブによって生成された複数個のパケットから構成される第2のデータに対して、パケット単位第2のインターリーブを施すことで生成されたデータを構成するパケットの順序を、それぞれ、上記第2のデータを構成するパケットの順序に戻すように、入力された複数個のパケットから構成される第3のデータに対して、パケット単位でデインターリーブを施す第1のデインターリーブ工程と、
上記第2のデータを構成するパケットの順序を、それぞれ、上記第1のデータを構成するパケットの順序に戻すように、上記第1のデインターリーブ工程にて生成された複数個のパケットから構成される第4のデータに対して、データワード単位又は複数の連続するデータワード単位で畳み込みデインターリーブを施す第2のデインターリーブ工程とを備える、
デインターリーブ方法。 - 上記第2のインターリーブによってパケット単位のインターリーブの先頭のパケットにおける先頭データの値が置換されており、
上記第1のデインターリーブ工程では、上記第2のインターリーブ工程にて値が置換された先頭データに基づいて、上記第3のデータにおける先頭のパケットの同期がとられる、
請求の範囲第37項記載のデインターリーブ方法。 - 上記先頭データは、上記第1のデータを構成するパケットのヘッダにおけるシンクバイトである、
請求の範囲第38項記載のデインターリーブ方法。 - 上記第1のデインターリーブ工程では、置換された上記先頭データの値が元に戻され、上記第4のデータが生成される、
請求の範囲第38項記載のデインターリーブ方法。 - 上記第1のデインターリーブ工程では、上記第3のデータを構成するパケットの連続性を示す情報に基づいて、パケットが欠落しているか否かが把握される、
請求の範囲第37項記載のデインターリーブ方法。 - 上記第1のデインターリーブ工程では、パケットが欠落していることを把握した場合には、欠落したパケットに対応するデータを無効データに置換して上記第4のデータが生成される、
請求の範囲第41項記載のデインターリーブ方法。 - 上記第1のデインターリーブ工程は、プログラマブルデバイスに対して外付けとされる第1の記憶手段を用いて行われ、
上記第2のデインターリーブ工程は、上記プログラマブルデバイスに内蔵される第2の記憶手段を用いて行われる、
請求の範囲第37項記載のデインターリーブ方法。 - 上記第1の記憶手段として、複数のデータワード単位のデータをバースト転送するのに適したランダムアクセスメモリが用いられる、
請求の範囲第43項記載のデインターリーブ方法。 - 上記第1の記憶手段として、シンクロナス・ダイナミック・ランダムアクセスメモリが用いられる、
請求の範囲第44項記載のデインターリーブ方法。 - 上記第2の記憶手段として、データワード単位で、当該データワードに同期したクロック毎に不連続なアドレスにアクセスすることが可能なデュアルポートのランダムアクセスメモリが用いられる、
請求の範囲第43項記載のデインターリーブ方法。 - 上記第1のデータを構成するパケットは、それぞれ、所定の誤り訂正符号が付加されたものである、
請求の範囲第37項記載のデインターリーブ方法。 - 上記第1のデータを構成するパケットは、それぞれ、所定のデータに対してMPEG−2方式に基づく圧縮符号化を施して得られたトランスポートストリームを構成する複数個のトランスポートパケットに対して、上記誤り訂正符号が付加されたものである、
請求の範囲第47項記載のデインターリーブ方法。 - 上記誤り訂正符号は、リード・ソロモン符号である、
請求の範囲第47項記載のデインターリーブ方法。 - 上記第1のインターリーブは、バイト単位又は複数の連続するバイト単位での畳み込みインターリーブであり、
上記第2のデインターリーブは、バイト単位又は複数の連続するバイト単位での畳み込みデインターリーブである、
請求項37記載のデインターリーブ方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002104581 | 2002-04-05 | ||
JP2002104581 | 2002-04-05 | ||
PCT/JP2003/004279 WO2003085838A1 (fr) | 2002-04-05 | 2003-04-03 | Dispositif et procede d'entrelacement, dispositif et procede de desentrelacement |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2003085838A1 true JPWO2003085838A1 (ja) | 2005-08-18 |
Family
ID=28786342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003582909A Pending JPWO2003085838A1 (ja) | 2002-04-05 | 2003-04-03 | インターリーブ装置及びインターリーブ方法、並びにデインターリーブ装置及びデインターリーブ方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7793191B2 (ja) |
JP (1) | JPWO2003085838A1 (ja) |
WO (1) | WO2003085838A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006044227A1 (en) | 2004-10-12 | 2006-04-27 | Aware, Inc. | Resource sharing in a telecommunications environment |
CN101080875B (zh) * | 2005-09-01 | 2012-07-04 | 日本电信电话株式会社 | 纠错方法以及装置 |
KR101208509B1 (ko) * | 2006-01-20 | 2012-12-05 | 엘지전자 주식회사 | 디지털 방송 시스템 및 처리 방법 |
BRPI0709871B1 (pt) | 2006-04-12 | 2019-10-15 | Tq Delta, Llc. | Retransmissão de pacote e compartilhamento de memória |
US20080298345A1 (en) * | 2007-05-30 | 2008-12-04 | Llija Hadzic | Cross-connect for emulated circuit-base communications |
FR2918238B1 (fr) * | 2007-06-26 | 2009-08-21 | Alcatel Lucent Sas | Entrelaceur perfectionne et dispositif de selection de services, pour un reseau de communication radio a long entrelacement temporel au niveau de la couche physique |
US8276049B2 (en) * | 2007-09-04 | 2012-09-25 | Ricoh Company Limited | Information processing device and method |
US8799750B1 (en) * | 2011-05-09 | 2014-08-05 | Xilinx, Inc. | Convolutional interleaver for bursty memory access |
GB2497154B (en) | 2012-08-30 | 2013-10-16 | Imagination Tech Ltd | Tile based interleaving and de-interleaving for digital signal processing |
GB2505446B (en) | 2012-08-30 | 2014-08-13 | Imagination Tech Ltd | Memory address generation for digital signal processing |
US9183838B2 (en) * | 2013-10-09 | 2015-11-10 | Summit Semiconductor Llc | Digital audio transmitter and receiver |
WO2015072005A1 (ja) * | 2013-11-15 | 2015-05-21 | 株式会社日立製作所 | 通信装置及びシステム及び方法 |
KR102392821B1 (ko) | 2015-03-16 | 2022-05-02 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR102471492B1 (ko) * | 2017-12-27 | 2022-11-28 | 삼성전자 주식회사 | 디스플레이장치 및 그 제어방법 |
KR102457566B1 (ko) * | 2018-02-22 | 2022-10-21 | 한국전자통신연구원 | 데이터 패킷의 버스트의 길이에 기초하여 변복조를 수행하는 변복조기 및 상기 복조기가 수행하는 방법 |
CN111629215B (zh) | 2020-07-30 | 2020-11-10 | 晶晨半导体(上海)股份有限公司 | 检测视频静态标识的方法及电子设备和存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01106336A (ja) | 1987-10-20 | 1989-04-24 | Konica Corp | 磁気テープ裁断装置 |
US5140596A (en) * | 1990-02-20 | 1992-08-18 | Eastman Kodak Company | High speed encoder for non-systematic codes |
JP3249280B2 (ja) | 1994-01-11 | 2002-01-21 | 富士通株式会社 | インターリーブ回路 |
JPH08315515A (ja) * | 1995-05-18 | 1996-11-29 | Sony Corp | データ記録/再生装置および方法、並びにデータ記録媒体 |
MY116522A (en) * | 1995-05-31 | 2004-02-28 | Sony Corp | Data recording/reproducing apparatus, method thereof, and data recording medium |
EP1416678A3 (en) * | 1997-05-13 | 2004-05-26 | Matsushita Electric Industrial Co., Ltd. | Packet transmitter |
JP3849896B2 (ja) | 1997-12-09 | 2006-11-22 | ソニー株式会社 | 受信装置および受信方法、並びに伝送媒体 |
GB9814960D0 (en) | 1998-07-10 | 1998-09-09 | Koninkl Philips Electronics Nv | Coding device and communication system using the same |
EP1083660A1 (en) | 1999-02-09 | 2001-03-14 | Sony Corporation | Data transmission system, data receiver, and data transmitting method |
JP2001127796A (ja) | 1999-10-28 | 2001-05-11 | Toshiba Corp | マルチメディア情報多重化伝送システムとその多重化装置及び分離装置 |
JP2001266501A (ja) | 2000-03-23 | 2001-09-28 | Sony Corp | データ記録装置及びデータ記録方法、データ再生装置及びデータ再生方法、並びに、データ記録再生装置及びデータ記録再生方法 |
CA2404984A1 (en) | 2000-04-04 | 2001-10-11 | Comtech Telecommunications Corp. | Enhanced turbo product code decoder system |
US6851076B1 (en) * | 2000-09-28 | 2005-02-01 | Agilent Technologies, Inc. | Memory tester has memory sets configurable for use as error catch RAM, Tag RAM's, buffer memories and stimulus log RAM |
US6834364B2 (en) * | 2001-04-19 | 2004-12-21 | Agilent Technologies, Inc. | Algorithmically programmable memory tester with breakpoint trigger, error jamming and 'scope mode that memorizes target sequences |
US6954832B2 (en) * | 2002-05-31 | 2005-10-11 | Broadcom Corporation | Interleaver for iterative decoder |
-
2003
- 2003-04-03 WO PCT/JP2003/004279 patent/WO2003085838A1/ja active Application Filing
- 2003-04-03 JP JP2003582909A patent/JPWO2003085838A1/ja active Pending
- 2003-04-03 US US10/510,118 patent/US7793191B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7793191B2 (en) | 2010-09-07 |
WO2003085838A1 (fr) | 2003-10-16 |
US20050251726A1 (en) | 2005-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPWO2003085838A1 (ja) | インターリーブ装置及びインターリーブ方法、並びにデインターリーブ装置及びデインターリーブ方法 | |
US7861144B2 (en) | Method and system for encoding or decoding a sequence of digital data | |
US20060291475A1 (en) | Selective forward error correction | |
US20130136193A1 (en) | Apparatus and method of transmitting/receiving broadcast data | |
KR20130057937A (ko) | 통신 시스템에서 패킷 송수신 장치 및 방법 | |
JPH03141752A (ja) | 画像信号伝送方法 | |
CN101345605A (zh) | 发送设备和发送方法、接收设备、错误校正系统及其方法 | |
JP2016519527A (ja) | パケットヘッダを圧縮する方法及び装置 | |
JP4559126B2 (ja) | 映像送信方法、映像送信装置、映像送信用プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
TW200926835A (en) | Method and apparatus for preserving deinterleaving erasure information of block interleaved coded signal | |
JP4332267B2 (ja) | エンコーダ及びデコーダ | |
JP4041137B2 (ja) | 映像符号化・送信装置,映像符号化・送信方法,映像符号化・送信プログラムおよびその記録媒体 | |
JP5553663B2 (ja) | 映像送信装置、映像受信装置、映像伝送システム | |
US20080310411A1 (en) | Communication apparatus and integrated circuit for communication | |
JP2008053872A (ja) | Ipストリーム送受信システム、ipストリーム受信装置及びそれらに用いる受信処理タイミング同期化方法 | |
EP2842253B1 (en) | Apparatus and method for transmitting a packet in a communication system | |
KR101690661B1 (ko) | 오류 정정의 병렬 처리를 위한 방송 신호 부호화 및 복호화 방법, 이를 위한 방송 신호 송수신 장치 및 이를 위한 시스템 | |
JP3722265B2 (ja) | ビデオ伝送方法および装置 | |
JP3927443B2 (ja) | 動画像送受信システムおよび動画像送受信方法 | |
JP2004007544A (ja) | インターリーブ装置及びインターリーブ方法、並びにデインターリーブ装置及びデインターリーブ方法 | |
TWI364993B (en) | Dvb-h system and method for performing forward error correction | |
JP2007324876A (ja) | データ送信装置、データ受信装置、データ送信方法、データ受信方法、及びプログラム | |
JP2010239433A (ja) | 映像符号化装置、方法及びプログラム | |
JP3856135B2 (ja) | ストリーム変換/送出装置 | |
TWI617187B (zh) | 多媒體處理系統與其控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060316 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060316 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060412 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080826 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081020 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081209 |