JP2004007544A - Interleaver, interleaving method, de-interleaver, and de-interleaving method - Google Patents

Interleaver, interleaving method, de-interleaver, and de-interleaving method Download PDF

Info

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
Application number
JP2003100345A
Other languages
Japanese (ja)
Inventor
Mototsugu Takamura
高村 元嗣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2003100345A priority Critical patent/JP2004007544A/en
Publication of JP2004007544A publication Critical patent/JP2004007544A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To remarkably reduce the capacity of a memory used for performing convolution interleaving. <P>SOLUTION: A byte interleaver applying convolution interleaving to a received encoded packet performs address control to immediately write succeeding data to an area of a DPRAM from which the preceding data are read. In this case, the byte interleaver classifies altogether a group of bytes indicating an equal number of delayed packets being the number of delayed byte interleaved packets storing a concerned byte resulting from applying the convolution interleaving to each byte configuring an optional encoded packet, and generates a write address and a read address so as to apply write and read to consecutive addresses in the DPRAM by each delay group. <P>COPYRIGHT: (C)2004,JPO

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 encoder 10 for inputting and encoding a transport stream TS composed of a plurality of transport packets TSP, and a predetermined stream from the encoder 10. A decoder 20 that decodes the received data RD received via the communication path to restore the transport stream TS.
[0039]
First, the encoder 10 will be described. The encoder 10 includes, for example, as shown in FIG. 1, a Reed-Solomon encoding unit 11 that performs Reed-Solomon encoding on each transport packet TSP that constitutes the transport stream TS, and a Reed-Solomon code. A byte interleaver 12 for performing convolutional interleaving on the coded data ED composed of a plurality of coded packets EP to which an error correction code has been added by the converting unit 11 in byte units or a plurality of continuous byte units; A packet interleaver 13 for interleaving byte interleave data BID composed of a plurality of byte interleave packets BIP convolved and interleaved by the byte interleaver 12 on a packet basis; A predetermined number of packet interleaved packets PIP among a plurality of packet interleaved data PIDs composed of a plurality of packets interleaved packets PIP interleaved in packet units by the packet 13 are connected to form one packet data PD. A packetizing unit 14 to be generated, and a transmitting unit that adds a predetermined header to each packet data PD generated by the packetizing unit 14 and transmits the packet data PD as transmission data TD including a plurality of upper layer packets ULP. 15.
[0040]
In the encoder 10, at least the Reed-Solomon encoding unit 11, the byte interleaver 12, the interface unit 17 in the packet interleaver 13, and the packetizing unit 14 shown by broken lines in FIG. Is implemented as a programmable device such as a so-called PLD (Programmable Logic Device) or an FPGA (Field Programmable Gate Array).
[0041]
The Reed-Solomon encoding unit 11 performs Reed-Solomon encoding on each of the transport packets TSP constituting the transport stream TS input as the information sequence, and includes a plurality of encoded packets EP. Generate the encoded data ED. Specifically, as shown in FIG. 2A, the Reed-Solomon encoding unit 11 converts each of the 188-byte transport packets TSP constituting the transport stream TS into 28 bits as shown in FIG. 2B. An error correction code (ECC) as a parity composed of bytes is added to generate encoded data ED composed of an encoded packet EP having a code length of 216 bytes per packet. Note that the head data of the encoded packet EP is a sync byte in the packet header of the transport packet TSP based on the MPEG-2 system, and its value is “0x47”. The Reed-Solomon encoding unit 11 supplies the encoded data ED composed of the generated encoded packets EP to the subsequent byte interleaver 12. The error correction capability when the encoded data ED is output as it is can completely correct an error of up to 14 bytes per one encoded packet EP packet.
[0042]
The byte interleaver 12 converts each of the encoded packets EP constituting the encoded data ED supplied from the Reed-Solomon encoder 11 into a data word unit or a plurality of continuous data word units, that is, MPEG data. Because of the system, convolutional interleaving of a predetermined depth and period is performed in units of bytes or a plurality of consecutive bytes, and the order of each byte constituting the encoded packet EP is rearranged. Generate byte interleaved data BID to be configured. Specifically, although not shown, the byte interleaver 12 is a dual-port RAM (Dual Port Random) that can access a discontinuous address in units of one clock every one clock synchronized with the byte. Access Memory; hereinafter, referred to as DPRAM) and an address generation unit for writing and reading data to and from the DPRAM. The byte interleaver 12 sequentially transfers the input encoded data ED to a DPRAM according to a predetermined write address and writes the data, and sequentially reads the data written to the DPRAM according to a predetermined read address different from the write address. Thus, for the encoded data ED generated by the Reed-Solomon encoding unit 11, for example, convolutional interleaving with a depth of 18 and a period of 12 in units of bytes or four consecutive bytes as one processing unit is used. Convolutional interleaving with a depth of 18 and a period of 3 is performed in byte units.
[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 byte 1 constituting a division unit composed of a number is divided into division units different from each other, and the period indicates a separation amount of the division unit for distributing adjacent bytes, and the first byte number and It is expressed by the quotient of the convolutional interleave depth. Further, when interleaving is performed in units of a plurality of consecutive bytes, the convolutional interleave depth is obtained by dividing a packet consisting of a first number of bytes into a second number of bytes smaller than this value. A plurality of consecutive bytes (hereinafter, referred to as “units”) constituting a division unit having the number of 2 bytes are distributed into different division units, and the term “period” refers to the separation of the division units that disperse adjacent units. A quantity indicating the quotient of the first number of bytes and the convolutional interleave depth divided by a unit.
[0044]
That is, when interleaving is performed in byte units, the byte interleaver 12 divides one 216-byte coded packet EP into 18-byte units as shown in FIG. As shown in FIG. 3B, the first byte constituting the first division unit is not rearranged (at this time, the first byte is a position delayed by −1 byte), and the next second byte is set. Is rearranged so as to be located at the position delayed by 18 × 12 × 1-1 bytes, that is, the second byte of the second packet, and the next third byte is delayed by 18 × 12 × 2-1 bytes. Convolutional interleaving with a depth of 18 and a period of 12 such that the packets are rearranged so as to be positioned at the third byte of the third packet. To generate the byte interleave data BID consists of byte interleave packet BIP. Therefore, information included in one encoded packet EP is subjected to convolutional interleaving by the byte interleaver 12, so that 12 bytes are distributed to 18 consecutive byte interleave packets BIP.
[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 byte interleaver 12 One encoded packet EP consisting of bytes is divided every (4 × 18 = 72) bytes to provide three division units, and the first unit constituting the first division unit as shown in FIG. 4B Is not rearranged (at this time, the first byte of one unit constituting the first division unit is a position delayed by -1 byte), and the next second unit is delayed by 72 × 3 × 1-1 bytes. Rearranged so as to be located at the position, that is, the second unit of the second packet, and the next third unit is delayed by 72 × 3 × 2-1 bytes. A convolutional interleave with a depth of 18 and a period of 3 is performed, such as rearrangement so as to be positioned at the extended position, that is, the third unit of the third packet, and a byte composed of a plurality of byte interleaved packets BIP Generate interleave data BID. Therefore, the information included in one encoded packet EP is subjected to convolutional interleaving by the byte interleaver 12, whereby the information is dispersed into 18 consecutive byte interleave packets BIP in units of 12 bytes. become.
[0046]
Thus, the byte interleaver 12 does not enhance the error correction capability of the Reed-Solomon encoder 11, but can make a burst error including a packet loss into a random error by distributing information. Specifically, the error correction capability when the byte-interleaved data BID is output as it is is one packet per 18 consecutive byte-interleaved packets BIP, that is, even if 216 bytes are completely in error, The bits can be corrected. Note that the head data of the byte interleaved packet BIP is a sync byte in the packet header of the transport packet TSP based on the MPEG-2 system, which is the same as the encoded packet EP, and its value is “0x47”. . The byte interleaver 12 supplies the byte interleave data BID composed of the generated plurality of byte interleave packets BIP to the subsequent packet interleaver 13.
[0047]
The byte interleaver 12 performs address control in accordance with a predetermined address generation method to reduce the memory required for performing convolutional interleaving in byte units or unit units, that is, to reduce the capacity of the DPRAM. However, this will be described later.
[0048]
The packet interleaver 13 interleaves the byte interleaved packets BIP constituting the byte interleaved data BID supplied from the byte interleaver 12 at a predetermined depth and period in packet units. The order of the byte interleaved packets BIP is rearranged to generate packet interleaved data PID composed of a plurality of packet interleaved packets PIP. Specifically, the packet interleaver 13 includes an SDRAM (Synchronous Dynamic Random Access Memory) 16 which is externally attached to each unit implemented as a programmable device in order to burst-transfer a plurality of bytes of data. And an interface unit 17 for performing processing such as address generation and data transfer for writing and reading data to and from the SDRAM 16. The packet interleaver 13 sequentially transfers the byte interleaved data BID input to the interface unit 17 to the SDRAM 16 according to a predetermined write address and writes the data, and writes the data written in the SDRAM 16 to a predetermined read address different from the write address. To the byte interleaved data BID supplied from the byte interleaver 12, convolutional interleaving with a depth of 6 and a period of 4 in byte interleaved packet units and byte interleaving of 108 consecutive packets A block interleave with a depth of 6 completed by the packet BIP is performed.
[0049]
That is, assuming that convolutional interleaving is performed, the packet interleaver 13 converts 24 consecutive byte interleaved packets BIP into one packet (hereinafter, referred to as a temporary composite packet CPT), as shown in FIG. 5A. As shown in FIG. 5B, the first byte interleaved packet BIP constituting the division unit consisting of the first six byte interleaved packets BIP in one temporary composite packet CPT is not rearranged. The next second byte interleaved packet BIP is rearranged so as to be located at a position delayed by 6 × 4 × 1-1 packets, that is, at the second packet in the second temporary composite packet CPT. About the next third byte interleaved packet BIP Convolutional interleaving such that the packet is rearranged so as to be positioned at a position delayed by 6 × 4 × 2-1 packets, that is, the third packet of the third temporary composite packet CPT, and a plurality of packet interleaves are performed. It generates packet interleaved data PID composed of packet PIP. Therefore, the information included in one encoded packet EP is subjected to convolutional interleaving by the packet interleaver 13 so as to be converted into continuous 6 × 4 (= 24) × 6 = 144 packet interleaved packets PIP. Information that is discretely distributed and 12 bytes each is distributed with an interval of at least six packet interleaved packets PIP. In this case, the capacity of the SDRAM 16 forming the packet interleaver 13 is sufficient as long as it can store at least 144 packet interleaved packets PIP.
[0050]
Further, when performing block interleaving, the packet interleaver 13 regards 108 consecutive byte interleaved packets BIP as one temporary composite packet CPT as shown in FIG. The packet CPT is divided every 18 byte interleaved packets to provide six groups, and as shown in FIG. 6B, the first byte interleaved packet of the byte interleaved packet constituting the first group The BIP is not rearranged, and the second to 18th byte interleaved packets BIP are rearranged at positions sequentially delayed by 6 byte interleaved packets. The first byte interleaved packet BIP of the byte interleaved packets forming the second group is rearranged to the position next to the first byte interleaved packet BIP in the first group. The second to eighteenth byte interleaved packets BIP are sequentially rearranged at positions delayed by six byte interleaved packets. Similarly, the first byte interleave packet BIP of the byte interleave packet forming the sixth group is rearranged to the position next to the sixth byte interleave packet BIP in the first group, and The packet interleaved packets BIP from the 18th to the 18th are subjected to block interleaving such that they are sequentially rearranged at positions delayed by 6-byte interleaved packets, and are composed of a plurality of packet interleaved packets PIP. Generate interleave data PID. Accordingly, the information included in one encoded packet EP is subjected to block interleaving by the packet interleaver 13 so as to be discretely dispersed into 108 consecutive packet interleaved packets PIP subjected to block interleaving. When the packet interleaved data PID is divided into groups of six consecutive interleaved packets and grouped, 12-byte information is distributed one by one to each group. In this case, the capacity of the SDRAM 16 forming the packet interleaver 13 is sufficient as long as it can store at least 216 packet interleaved packets PIP.
[0051]
As a result, the packet interleaver 13 does not enhance the error correction capability of the Reed-Solomon encoding unit 11 like the byte interleaver 12, but it is more discrete than the byte interleaver 12. By performing the distributed arrangement, a larger burst error including a packet loss can be randomized. Specifically, when the packet interleave data PID generated by the convolutional interleave is output as it is, the error correction capability is a maximum of six consecutive packet interleave packets among 144 consecutive packet interleave packets PIP. PIP, that is, all bits can be corrected even if 1296 bytes are completely in error. The error correction capability when the packet interleaved data PID generated by block interleaving is output as it is is a maximum of six consecutive packet interleaved packets PIP of 108 consecutive packet interleaved packets PIP, that is, , 1296 bytes are completely erroneous, but all bits can be corrected. Furthermore, when convolutional interleaving is used, errors of up to six consecutive packet interleaved packets PIP among 144 consecutive interleaved packets PIP can be corrected, but if block interleaving is used, It is possible to correct errors of a maximum of six consecutive packet interleaved packets PIP out of the 108 consecutive packet interleaved packets PIP, thereby improving the correction capability.
[0052]
Here, the packet interleaved data PID interleaved by the packet interleaver 13 cannot be recognized by the receiving side as it is at the beginning, and it becomes difficult to synchronize. Therefore, the packet interleaver 13 replaces the value of the sync byte, which is the head data of the head packet interleaved packet PIP, in order to notify the receiving side of the head packet in the packet interleave data PID. That is, when convolutional interleaving with a depth of 6 is performed by the packet interleaver 13, the head data of the packet interleaved packet PIP is inverted every six packets, replaced from "0x47" to "0xB8", and finally output. The packet interleave data PID to be generated is generated.
[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 packet interleaver 13 supplies the packet interleave data PID composed of the plurality of generated packet interleave packets PIP to the packetizer 14 at the subsequent stage.
[0055]
The packetizing unit 14 generates a single packet data PD by connecting a predetermined number of packet interleaved packets PIP constituting the packet interleaved data PID supplied from the packet interleaver 13. Specifically, the packetizer 14 transmits a series of packet interleaved packets PIP in order to transmit a video and / or audio signal according to RTP (Real-time Transport Protocol) known as a transmission protocol for streaming reproduction. Among these, packet data PD is generated by connecting six consecutive packet interleaved packets PIP and storing them in one RTP packet as an upper layer. When the packet interleave data PID is generated by performing block interleaving, the RTP packet is generated from the position indicating the head of the interleaved block, that is, the position where the value of the sync byte is “0xB7”. The packet data PD is generated by concatenating the six packet interleaved packets PIP and storing them in one RTP packet as an upper layer. When the value of the sync byte is replaced from “0x47” to “0xB8”, by detecting these values “0xB7” and “0xB8”, the packet obtained by connecting the six packet interleaved packets PIP Data PD can be easily generated.
[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 byte interleaver 12 and convolutional interleaving by packet interleaver 13. It is. 7A, the encoder 10 expresses one order of the encoded packets EP as..., 100, 101,. As shown in FIG. 7B, the information contained in the EP is distributed into 18 consecutive byte interleaved packets BIP, 12 bytes each. Further, the encoder 10 generates one packet interleaved packet PIP by combining the information of one column in FIG. 7C. Then, the encoder 10 generates one packet data PD as shown in FIG. 7D by connecting arbitrary six consecutive packet interleaved packets PIP by the packetizing unit 14. Therefore, as described above, the packet data PD includes 12 bytes of information from each of the 18 × 6 = 108 coded packets EP.
[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 byte interleaver 12 and block interleaving in the packet interleaver 13 are performed. FIG. When the encoder 10 represents the order of each of the encoded packets EP as..., 100, 101,. As shown in FIG. 8B, the information included in the EP is distributed into 18 consecutive byte interleaved packets BIP, 12 bytes each. Further, the encoder 10 generates one packet interleaved packet PIP by combining the information of one column in FIG. 8C. Then, the encoder 10 connects the six consecutive interleaved packets PIP from the first packet interleaved packet PIP of the interleaved block by the packetizer 14, thereby forming one packet as shown in FIG. 8D. Generate packet data PD. Therefore, as described above, the packet data PD includes 12 bytes of information from each of the 18 × 6 = 108 coded packets EP.
[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 numbers 155 having a phase difference of 4 packets and an interleave packet PIP and the number of 155 exists, one coded packet EP contains 24 bytes of information. If the layer packet ULP is lost on the communication path, a situation occurs in which the coded packet EP ′ having an error data amount exceeding the limit of the error correction capability is generated by the decoder 20, and complete correction becomes impossible. Because it will be.
[0059]
Therefore, the packetizing unit 14 concatenates six consecutive packet interleaved packets PIP so that the information from the same encoded packet EP is not included in the series of packet interleaved packets PIP, and the packet data PD Generate Note that when performing convolutional interleaving by the packet interleaver 13, the packetizing unit 14 does not care about the position of the sync byte whose value has been inverted by the packet interleaver 13, and outputs any six consecutive packets. The interleaved packets PIP may be connected. However, when performing block interleaving by the packet interleaver 13, the packetizer 14 concatenates six consecutive packet interleaved packets PIP from the position of the sync byte indicating the head of the interleaved block. The packetizing unit 14 supplies the generated packet data PD to the transmission unit 15 at the subsequent stage.
[0060]
The transmitting unit 15 converts the packet data PD supplied from the packetizing unit 14 into a TCP / IP (Transmission Control Protocol / Internet Protocol) using a so-called UDP (User Datagram Protocol) as a transport layer protocol according to the RTP. ), An RTP / UDP / IP packet header is added to each packet data PD to generate one upper layer packet ULP, and transmission data TD composed of a plurality of upper layer packets ULP Send as Further, when generating the RTP packet, the transmitting unit 15 sets a sequence number in the RTP header. By setting the sequence numbers in this way, as described later, the continuity of the sequence numbers can be verified on the receiving side to determine the loss of a packet.
[0061]
The encoder 10 having such units outputs the transport stream TS input as an information sequence as transmission data TD. FIGS. 9A to 9F show the transition of the packet format in the encoder 10 when convolutional interleaving is performed by the packet interleaver 13. FIGS. 10A to 10E show the transition of the packet format in the encoder 10 when the packet interleaver 13 performs block interleaving.
[0062]
That is, when the encoder 10 receives the transport stream TS composed of a plurality of transport packets TSP shown in FIG. 9A (FIG. 10A), the encoder 10 applies Reed-Solomon to each of these transport packets TSP. The encoding unit 11 performs Reed-Solomon encoding to generate encoded data ED composed of a plurality of encoded packets EP shown in FIG. 9B (FIG. 10B). At this time, the information amount included in one encoded packet EP indicated by a black cell in FIG. 9B (FIG. 10B), more specifically, the information amount excluding the added error correction code in the encoded packet EP is read. Even if the Reed-Solomon encoding is performed on the transport packet TSP by the Solomon encoding unit 11, the information amount is the same as that of the transport packet TSP, as indicated by the black cells in FIG. 9A (FIG. 10B). Needless to say, the order of the series of encoded packets EP is the same as the order of the series of transport packets TSP.
[0063]
Then, the encoder 10 performs convolutional interleaving on each of the encoded packets EP by the byte interleaver 12 on a byte-by-byte or unit-by-byte basis as shown in FIGS. 9B (FIG. 10B), the information contained in one encoded packet EP indicated by a black cell is converted into 18 consecutive byte interleaved packets BIP in byte units or as indicated by the hatched portions in FIG. 9C (FIG. 10C). It generates byte interleaved data BID composed of a plurality of byte interleaved packets BIP distributed in units of 12 bytes. 9C (FIG. 10C) and FIG. 9D, the hatched portions in FIG. 9B (FIG. 10B) disperse the information amount of one encoded packet EP indicated by a black cell into 18 consecutive byte interleaved packets BIP. It shows how it is.
[0064]
Here, the encoder 10 performs convolutional interleaving with a depth of 6 and a period of 4 on a byte interleaved packet basis for each byte interleaved packet BIP, and as shown in FIG. As shown in FIG. 9E, the information of the packet BIP is discretely dispersed into 144 consecutive packet interleaved packets PIP, and the information of 12 bytes is divided into at least six packet interleaved packets PIP at intervals of at least six packet interleaved packets PIP. It generates packet interleaved data PID composed of a plurality of packet interleaved packets PIP spaced and dispersed. For this reason, information included in one encoded packet EP indicated by a black cell in FIG. 9B is dispersed as indicated by a hatched portion in FIG. 9E.
[0065]
Also, the encoder 10 performs a block interleave with a depth of 6 completed with byte interleave packets BIP of 108 consecutive packets for each of the byte interleave packets BIP, and as shown in FIG. As shown in FIG. 10D, the information of the byte interleaved packet BIP is discretely dispersed into 108 consecutive packet interleaved packets PIP, and each of the six consecutive packets interleaved packets PIP from the head of the interleaved block. Packet interleaved data PID in which one group of 12-byte information is distributed to each group is generated. For this reason, information included in one encoded packet EP indicated by a black cell in FIG. 10B is dispersed as indicated by a hatched portion in FIG. 10D.
[0066]
Then, as shown in FIG. 9F (FIG. 10E), the encoder 10 connects the six consecutive packet interleaved packets PIP by the packetizer 14 to generate the packet data PD, and furthermore, the transmitter 15 Then, an RTP / UDP / IP packet header is added to each packet data PD and transmitted as transmission data TD composed of a plurality of upper layer packets ULP.
[0067]
As described above, the encoder 10 performs convolutional interleaving in units of bytes or units on the coded packet EP to which the Reed-Solomon code has been added, and performs interleaving in units of packets to reduce the small code length. By using the Reed-Solomon code, transmission data TD having an error correction capability of correcting a large burst error including a packet loss can be transmitted. That is, even when a burst error occurs in information included in at most one upper layer packet ULP, such as when one upper layer packet ULP is lost on the communication path, It is possible to transmit the transmission data TD having an error correction capability that enables the decoder 20 to completely correct the burst error including the packet loss.
[0068]
Further, the encoder 10 uses the fact that the value of the head data of the packet is a fixed value, and performs the interleaving in units of packets, when performing the interleaving in units of packets, the sync byte of the head data of the head interleaved packet PIP. By replacing the value, it is possible to notify the receiving side of the first packet in the packet interleaved data PID or the first packet of the interleaved block when block interleaving is performed.
[0069]
Furthermore, the encoder 10 implements the byte interleaver 12 using a small-capacity DPRAM built in the programmable device, and the packet interleaver 13 has a relatively large capacity external to the programmable device. By mounting using the SDRAM 16, memory resources provided inside the programmable device can be saved, and peripheral circuits can be simplified by burst access to the SDRAM 16. As described above, the encoder 10 can complementarily avoid the weak points of these memories by performing the two-stage interleaving using the DPRAM and the SDRAM 16, and perform programmable interleaving in units of packets. By using an external SDRAM 16 instead of using a DPRAM with a small capacity built into the device, cost can be reduced, and high-speed operation can be performed by accessing the SDRAM 16 in packet units. You can also.
[0070]
The transmission data TD transmitted by the encoder 10 is transmitted via a predetermined communication channel and received by the decoder 20 as reception data RD composed of a plurality of upper layer packets ULP. Become.
[0071]
Next, the decoder 20 in the data transmission / reception system will be described.
For example, as shown in FIG. 1, the decoder 20 receives a reception data RD composed of a plurality of upper layer packets ULP ′ and analyzes the reception data RD, and receives the reception data RD received by the reception unit 21. A packet continuity verification unit 22 for verifying the continuity of the upper layer packet ULP ′ based on the header added to the packet data PD ′ received by the reception unit 21 and having the header removed. And the order of the plurality of packet interleaved packets PIP divided by the unpacketizing unit 23 is determined based on the byte interleaved packet BIP constituting the original byte interleaved data BID. The packet interleaved data PID 'is returned to the A packet deinterleaver 24 that performs deinterleaving on a packet basis and a plurality of byte interleaved packets BIP ′ deinterleaved by the packet deinterleaver 24 constitute the original encoded data ED. Deinterleaver 25 for performing convolutional deinterleaving on the byte interleaved data BID 'so as to return to the order of the encoded packets EP to be encoded, and encoding performed with convolutional deinterleaving by the byte deinterleaver 25 A Reed-Solomon decoding unit 26 that performs Reed-Solomon code decoding on each of the encoded packets EP ′ constituting the data ED ′ and outputs a transport stream TS composed of a plurality of transport packets TSP. Have.
[0072]
In the decoder 20, among these units, at least the packet continuity verifying unit 22, unpacketizing unit 23, interface unit 28 in the packet deinterleaver 24, and byte deinterleaver 25 , And Reed-Solomon decoding unit 26 are implemented as programmable devices such as PLDs and FPGAs.
[0073]
The receiving unit 21 is provided corresponding to the transmitting unit 15 in the encoder 10. When receiving the reception data RD via a predetermined communication path, the reception unit 21 receives a plurality of upper layer packets constituting the reception data RD. The RTP / UDP / IP packet header added to each ULP 'is analyzed. Specifically, the receiving unit 21 analyzes the RTP sequence number in the RTP / UDP / IP packet header. The reception unit 21 supplies the analysis information AN indicating the analyzed RTP sequence number to the packet continuity verification unit 22 and removes the RTP / UDP / IP packet header from each of the upper layer packets ULP ′ to generate the packet. The data PD 'is supplied to the subsequent unpacketizing unit 23.
[0074]
Based on the analysis information AN supplied from the receiving unit 21, that is, the RTP sequence number, the packet continuity verifying unit 22 determines whether an upper layer packet ULP ′ is missing or the like on the communication path. Verify the continuity of the packet ULP '. The packet continuity verification unit 22 supplies verification result information CK indicating the verification result to the interface unit 28 in the packet deinterleaver 24.
[0075]
The unpacketizing unit 23 is provided corresponding to the packetizing unit 14 in the encoder 10 and returns the packet data PD generated by the packetizing unit 14 to the packet interleaved packet PIP before connection. , And divides the packet data PD ′ supplied from the receiving unit 21 to generate a packet interleaved packet PIP ′. The unpacketizing section 23 supplies the packet interleaved data PID ′ composed of the generated plurality of packet interleaved packets PIP ′ to the subsequent packet deinterleaver 24.
[0076]
The packet deinterleaver 24 is provided corresponding to the packet interleaver 13 in the encoder 10. The packet deinterleaver 24 changes the order of the packet interleave data PID interleaved by the packet interleaver 13, A process is performed to restore the order of the byte interleaved packets BIP constituting the original byte interleaved data BID. Here, the packet interleaved packet PIP 'constituting the packet interleaved data PID' supplied from the unpacketizing unit 23 performs convolutional interleaving with a depth of 6 and a period of 4 on a byte interleaved packet basis as described above. When it is generated, the convolutional deinterleaving with a depth of 6 and a period of 4 is performed in units of byte interleaved packets to generate byte interleaved data BID 'composed of a plurality of byte interleaved packets BIP'. At this time, the packet deinterleaver 24 synchronizes the first packet in the packet interleave data PID ′ supplied from the unpacketizer 23, based on the sync byte whose value has been replaced by the packet interleaver 13. Then, convolutional deinterleaving is performed on a byte interleaved packet basis.
[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 step 6 is performed to generate byte interleaved data BID 'composed of a plurality of byte interleaved packets BIP'. At this time, the packet deinterleaver 24 detects the start of the interleave block in the packet interleave data PID ′ supplied from the unpacketizer 23 based on the sync byte whose value has been replaced by the packet interleaver 13. And packets are synchronized, and block deinterleaving is performed in byte-interleaved packet units.
[0078]
More specifically, the packet deinterleaver 24, like the packet interleaver 13, performs an SDRAM 27 external to each unit mounted as a programmable device, and writes and reads data to and from the SDRAM 27. And an interface unit 28 for performing processing such as address generation and data transmission and reception. The packet deinterleaver 24 sequentially transfers the packet interleave data PID ′ input to the interface unit 28 to the SDRAM 27 according to a predetermined write address and writes the data, and writes the data written to the SDRAM 27 to a predetermined address different from the write address. The packet interleave data PID ′ supplied from the unpacketizing unit 23 is deinterleaved by sequentially reading according to the read address.
[0079]
At this time, the packet deinterleaver 24 can cope with the case where the packet interleave data PID 'is discontinuous based on the verification result information CK supplied from the packet continuity verification unit 22. For example, when the packet deinterleaver 24 recognizes that one upper layer packet ULP ′ has been lost on the communication path based on the verification result information CK, it writes 1 to the SDRAM 27 when writing data. Data is written by skipping an area only for storing six packet interleaved packets PIP 'corresponding to one upper layer packet ULP' and reading data by a normal deinterleaving operation according to a predetermined read address. . The data read from the SDRAM 27 by such an operation is data in which a portion corresponding to the missing packet is read from the same read address in the previous time slot, that is, replaced with invalid data.
[0080]
The packet deinterleaver 24 returns the value of the sync byte “0xB7, 0xB8” replaced by the packet interleaver 13 to the original “0x47” among the data obtained by performing such an operation, Byte interleaved data BID ′ to be output is generated. The packet deinterleaver 24 supplies byte interleave data BID ′ composed of a plurality of generated byte interleave packets BIP ′ to the subsequent byte deinterleaver 25. Since the packet deinterleaver 24 also has a function as a reception buffer in order to absorb the jitter generated on the communication path and the like, the capacity of the SDRAM 27 is at least 144 (depth 6 and period 4). In addition to the capacity for storing the convolutional deinterleaving packet PIP ′) or 216 (when performing block deinterleaving with a depth of 6 completed with 108 byte interleaving packets), It is sufficient if it has a slight amount necessary to achieve the above.
[0081]
The byte deinterleaver 25 is provided corresponding to the byte interleaver 12 in the encoder 10. The byte deinterleaver 25 converts the order of the byte interleave data BID convolutionally interleaved by the byte interleaver 12 into In order to return to the order of the encoded packets EP constituting the original encoded data ED, the byte interleaved packets BIP 'constituting the byte interleaved data BID' supplied from the packet deinterleaver 24 are Then, deinterleaving is performed to generate coded data ED ′ composed of a plurality of coded packets EP ′. For example, when the byte interleaved packet BIP 'constituting the byte interleaved data BID' is generated by performing the convolutional interleaving of the depth 18 and the cycle 12 in the byte unit as described above, the depth 18 and the byte 18 The convolutional deinterleaving of period 12 is performed to generate coded data ED 'composed of a plurality of coded packets EP'. Further, when the byte interleaved packet BIP 'forming the byte interleaved data BID' is generated by performing convolutional interleaving with a depth of 18 and a period of 3 in units of 4 bytes as described above, the depth is increased in units of 4 bytes. The coded data ED 'composed of a plurality of coded packets EP' is generated by performing the convolution deinterleave of the length 18 and the period 3.
[0082]
Specifically, similarly to the byte interleaver 12, the byte deinterleaver 25 includes a DPRAM capable of random access at a high speed in units of bytes, and an address generation for writing and reading data to and from the DPRAM. It is composed of parts. The byte deinterleaver 25 sequentially transfers the input byte interleaved data BID 'to a DPRAM in accordance with a predetermined write address and writes the data, and writes the data written in the DPRAM in accordance with a predetermined read address different from the write address. By sequentially reading, the convolutional deinterleaving is performed on the byte interleaved data BID 'supplied from the packet deinterleaver 24.
[0083]
The byte deinterleaver 25 supplies the encoded data ED ′ composed of the generated encoded packets EP ′ to the subsequent Reed-Solomon decoding unit 26. The encoded data ED 'convolved and deinterleaved by the byte deinterleaver 25 has 18 * 6 = 108 codes if, for example, one upper layer packet ULP' is missing on the communication path. Each packetized packet EP ′ contains 12 bytes of error data.
[0084]
The byte deinterleaver 25 controls the address in accordance with a predetermined address generation method, similarly to the byte interleaver 12, to obtain a memory required for performing the convolutional deinterleave, that is, the capacity of the DPRAM. Can be reduced, which will be described later.
[0085]
The Reed-Solomon decoding unit 26 controls the Reed-Solomon decoding in the encoder 10.
It is provided corresponding to the encoding unit 11 and performs decoding of Reed-Solomon code on each of the encoded packets EP ′ constituting the encoded data ED ′ supplied from the byte deinterleaver 25. Then, the transport stream TS composed of a plurality of transport packets TSP is restored. Specifically, the Reed-Solomon decoding unit 26 performs error correction using the 28-byte parity error correction code included in each of the 216-byte coded packets EP ′, and performs a 188-byte transformer. The transport stream TS composed of the port packet TSP is restored and output. For example, when one upper layer packet ULP ′ is missing on the communication path, the Reed-Solomon decoding unit 26 has a maximum error byte number of 12 bytes included in an arbitrary encoded packet EP ′, Since the error correction limit is 14 bytes or less, all bits can be completely corrected.
[0086]
The decoder 20 having such units completely restores the transport stream TS input as an information sequence to the encoder 10 from the received data RD received via a predetermined communication path and outputs the transport stream TS. FIGS. 11A to 11E are diagrams for explaining the transition of the packet format in each unit included in the decoder 20 when the packet interleaver performs the convolutional interleaving process in packet units. FIGS. 12A to 12F are diagrams for explaining the transition of the packet format in each unit included in the decoder 20 when the packet interleaver performs the block interleave processing in packet units.
[0087]
That is, when the receiving unit 21 receives the reception data RD and generates the packet data PD ′ shown in FIG. 11A (FIG. 12A), the decoder 20 divides each of these packet data PD ′ by the unpacketizing unit 23. Then, it generates packet interleaved data PID 'composed of a plurality of packet interleaved packets PIP' shown in FIG. 11B (FIG. 12B). Here, it is assumed that the reception data RD is one in which one upper layer packet ULP 'has been lost on the communication path, and the packet data PD' and the packet interleaved packet PIP 'corresponding to the lost upper layer packet ULP' 11A (FIG. 12A) and FIG. 11B (FIG. 12B) are indicated by horizontal lines.
[0088]
At this time, the information included in one encoded packet EP generated in the encoder 10 is continuous when the convolutional interleave processing in packet units is performed, as indicated by the hatched portions in FIGS. 11A and 11B. This is a state in which the information is discretely distributed into 144 packet interleaved packets PIP ', and information of 12 bytes is distributed at intervals of at least six packet interleaved packets PIP'.
[0089]
The decoder 20 performs convolutional deinterleaving on each of the packet interleaved packets PIP ′ in packet units by the packet deinterleaver 24 to thereby generate one encoded packet EP generated by the encoder 10. Byte interleaved data BID composed of a plurality of byte interleaved packets BIP 'in which the included information is distributed by 12 bytes into 18 consecutive byte interleaved packets BIP' indicated by oblique lines and horizontal lines in FIG. 11C 'Is generated. At this time, the decoder 20 replaces the data corresponding to the missing upper layer packet ULP ′ with invalid data based on the verification result information CK by the packet continuity verification unit 22, and attaches “?” In FIG. 11C. Byte interleaved data BID 'including a byte interleaved packet BIP' indicated by a horizontal line is generated.
[0090]
Further, the decoder 20 performs convolutional deinterleaving by the byte deinterleaver 25 on each of the byte interleaved packets BIP ′ as shown in FIG. The coded data ED ′ to be constructed is generated. As a result, a very large burst error of 216 × 6 = 1296 bytes due to one missing upper layer packet ULP ′ can be distributed to each encoded packet EP ′ at most 12 bytes as shown in the cross hatch portion in FIG. 11D. Can be treated as a random error.
[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 encoder 10 is continuous 108 as shown by the hatched portions in FIGS. 12A and 12B. A state in which 12-byte information is dispersed in a group of six consecutive interleaved packets PIP that are discretely distributed into a plurality of packet interleaved packets PIP ′ and are distributed from the head of the interleaved block. It is.
[0092]
The decoder 20 performs block deinterleaving on each of the packet interleaved packets PIP ′ by the packet deinterleaver 24 in packet units. Here, when performing block deinterleaving on a packet-by-packet basis, the head of an interleaved block or an RTP packet in packet interleaved data PID ′ is detected using a sync byte. FIG. 12B shows a detection result of the sync byte, where “B” indicates the start of the interleave block and “P” indicates the start position of the RTP packet.
[0093]
The packet deinterleaver 24 is generated in the encoder 10 by performing block deinterleaving by using 108 packet interleaved packets PIP 'from the start of the detected interleaved block, as shown in FIG. 12C. 12D, a plurality of byte interleaved packets dispersed in 18 consecutive byte interleaved packets BIP 'by 12 bytes as shown by the hatched portion and the horizontal line portion in FIG. 12D. It generates byte interleaved data BID 'composed of BIP'. At this time, the decoder 20 replaces the data corresponding to the missing upper layer packet ULP ′ with invalid data based on the verification result information CK from the packet continuity verification unit 22, and attaches “?” In FIG. 12D. Byte interleaved data BID 'including a byte interleaved packet BIP' indicated by a horizontal line is generated.
[0094]
Further, the decoder 20 performs convolutional deinterleaving by the byte deinterleaver 25 on each of the byte interleaved packets BIP 'as shown in FIG. The coded data ED ′ to be constructed is generated. As a result, an extremely large burst error of 216 × 6 = 1296 bytes due to one missing upper layer packet ULP ′ can be distributed to at most 12 bytes in each encoded packet EP ′ as shown in a cross hatch portion in FIG. 12E. Can be treated as a random error.
[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 decoder 20 decodes the Reed-Solomon code by the Reed-Solomon decoding unit 26, as shown in FIGS. 11E and 12F, from the plurality of transport packets TSP whose errors have been completely corrected. A transport stream TS to be configured is generated.
[0097]
As described above, even when the decoder 20 receives the reception data RD in which a burst error has occurred in the information included in at most one upper layer packet ULP ′, the decoder 20 completely removes the burst error. Can be corrected. At this time, the decoder 20 receives the received data composed of a plurality of upper layer packets ULP ′ in which one upper layer packet ULP in the transmission data TD generated by the encoder 10 is missing on the communication path. Even when the RD is received, by replacing the missing data that does not exist with the invalid data, it can be regarded as a burst error, and the information corresponding to the missing upper layer packet ULP ′ can be completely restored. it can.
[0098]
Also, the decoder 20 implements the byte deinterleaver 25 using a small-capacity DPRAM built in the programmable device, and removes the packet deinterleaver 24 from the programmable device, similarly to the encoder 10. By mounting using a relatively large capacity SDRAM 27 attached, memory resources provided inside the programmable device can be saved and peripheral circuits can be simplified by burst access to the SDRAM 27. . As described above, the decoder 20 can complementarily avoid the weak points of these memories by performing the two-stage deinterleaving using the DPRAM and the SDRAM 27 in the same manner as the encoder 10. When deinterleaving is performed, the cost can be reduced by using the external SDRAM 27 instead of using the DPRAM having a small capacity built in the programmable device, and the SDRAM 27 can be de-interleaved in packet units. High-speed operation can be performed by accessing.
[0099]
As described above, the byte interleaver 12 in the encoder 10 and the byte deinterleaver 25 in the decoder 20 perform address control according to a predetermined address generation method, as described above, so that the byte The memory capacity required for performing convolutional interleaving and convolutional deinterleaving on a unit basis can be reduced. Hereinafter, this will be described in detail.
[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 byte interleaver 12 and the byte deinterleaver 25 respectively write the next data to be written in this area, thereby performing convolutional interleaving or convolutional deinterleaving. To achieve. That is, each of the byte interleaver 12 and the byte deinterleaver 25 eliminates a useless area of the DPRAM area which is regarded as used, and performs convolutional interleaving or convolutional deinterleaving on the reserved area in the future. Always keep only the significant data used for Accordingly, the byte interleaver 12 and the byte deinterleaver 25 can minimize the capacity of the DPRAM required for performing convolutional interleaving or convolutional deinterleaving, respectively.
[0102]
In order to realize such a data write operation and a data read operation for the DPRAM, the byte interleaver 12 and the byte deinterleaver 25 follow the address generation method described with reference to FIGS. 13A to 24, respectively. Performs address control.
[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 byte interleaver 12 performs convolutional interleaving with a depth of 4 and a period of 3 on a 12-byte coded packet EP. To generate byte interleaved data BID of 12 bytes, and perform byte-interleaved data BID 'by the byte deinterleaver 25 to perform convolution deinterleaving with a depth of 4 and a period of 3 to form a code of 12 bytes. The description will be made assuming that the encrypted packet EP ′ is generated. When interleaving and deinterleaving are performed in units of units, the byte interleaver 12 sets 2 bytes as one unit for an encoded packet EP consisting of 24 bytes, and has a depth of 4 and a period of 3 in units of units. Convolutional interleaving is performed to generate byte interleaved data BID of 24 bytes, and byte deinterleaving unit 25 performs convolutional deinterleaving of byte interleaved data BID ′ with a depth of 4 and a period of 3 on a unit basis. , An encoded packet EP ′ composed of 24 bytes will be described.
[0104]
Here, each of the byte interleaver 12 and the byte deinterleaver 25 normally has the number of bytes represented by the product of the convolutional interleave or the convolutional deinterleave depth and the number of bytes per input packet. For example, when performing convolutional interleaving and convolutional deinterleaving with a depth of 4 and a period of 3 on an encoded packet EP of 12 bytes as described above, the implementation is performed using a memory having a capacity of 12 × 4 = 48 bytes. Where necessary, it can be implemented using a memory having a capacity smaller than this capacity.
[0105]
First, the operation when processing is performed in byte units will be described. The byte interleaver 12 classifies each byte constituting a coded packet EP according to how much each byte constituting the coded packet EP is stored in a packet delayed from the packet to which the byte belongs by being subjected to convolutional interleaving. . Further, these classified bytes are collectively managed at consecutive addresses on a memory map in the DPRAM. Here, the number of delayed packets from a packet to which a certain byte belongs is referred to as a delay, and a group of bytes having the same number of delayed packets is referred to as a delay group. That is, the byte interleaver 12 delays the byte interleave packet BIP in which each byte constituting an arbitrary encoded packet EP is stored by performing convolutional interleaving on the encoded packet EP. Byte groups having the same number of delay packets, which are numbers, are collectively classified as delay groups. Further, a write address and a read address are generated so that writing and reading are performed with respect to a continuous address in the DPRAM for each delay group, and data is handled for each delay group.
[0106]
In order to classify each byte constituting a certain encoded packet EP into such a delay group, the byte interleaver 12 serves as an address generation unit, not shown, for writing and reading data to and from the DPRAM. Two auxiliary counters are provided to assist the calculation of the write address and the read address to be used. More specifically, as shown in FIG. 13A, packet numbers such as 0, 1, 2, 3,... As described above, when each byte constituting each encoded packet EP is assigned a byte number of 0 to 11, the byte interleaver 12 performs convolutional interleaving corresponding to the byte number as shown in FIG. 13C. A first counter that increments a count value cnt_del (0 to 3) corresponding to a depth of 4 and counts each packet, and a count value cnt_block (corresponding to a cycle of the first counter, as shown in FIG. 13D. A second counter that increments 0 to 2) and counts each packet is provided as an auxiliary counter.
[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 byte interleaver 12 controls writing and reading of data to and from the DPRAM using the count value cnt_del counted by the first counter and the count value cnt_block counted by the second counter, Convolutional interleaving is performed on the encoded packet EP. At this time, when the byte interleaver 12 receives the encoded packet EP to be subjected to convolutional interleaving, the byte interleaver 12 immediately starts writing data to the DPRAM, while reading data from the DPRAM starts at the same time as writing data. Or, it is started with a delay of a predetermined fixed clock number. When a certain encoded packet EP is input, the byte interleaver 12 avoids overwriting the significant data by other data before reading the significant data written in the DPRAM. , After writing the data to the DPRAM and before the next encoded packet EP is input, it is necessary to complete the reading of all the data.
[0109]
More specifically, the byte interleaver 12 performs writing and reading of a byte group classified for each delay group with respect to the DPRAM as shown in FIGS. 14A to 14D, for example. Note that, here, a byte group for each packet number consisting of 3 bytes corresponding to a case where the count value cnt_del is “0” is referred to as a delay group del0, and corresponds to a case where the count value cnt_del is “1”. A byte group for each packet number consisting of bytes is referred to as a delay group del1, and a byte group for each packet number consisting of three bytes corresponding to a count value cnt_del of "2" is referred to as a delay group del2. When cnt_del is "3", a byte group for each packet number consisting of 3 bytes corresponding to "3" is referred to as a delay group del3. In FIGS. 14B to 14D, delay groups del0, del1, del2, and del3 in the coded packet EP having the packet number “n” are respectively “n-0”, n−1 ”,” n-2 "and" n-3 ".
[0110]
That is, as preparation for performing convolutional interleaving, the byte interleaver 12 sets the address of the DPRAM at the time of reset release of the first counter and the second counter as shown by the bold horizontal line in the first from the left in FIG. 14B. Then, the reference address addr_base indicating the head of writing and reading data to and from the DPRAM is set to a predetermined initial value such as “0”. Thereafter, as shown in the first packet from the left of the packet number shown in FIG. 14A, when an encoded packet EP whose packet number is “0” is input, as shown in the first packet from the left in FIG. Each byte constituting the packetized packet EP is converted into four delay groups del0 (0-0), del1 (0-1), del2 (0-2) consisting of three bytes based on the count value cnt_del by the first counter. ), Del3 (0-3). That is, the byte of the byte number “0, 4, 8” in the packet number “0” is del0 (0-0), the byte of the byte number “1, 5, 9” is del1 (0-1), and the byte number “2” , 6,10 "is classified as del2 (0-2), and the byte with the byte number" 3, 7, 11 "is classified as del3 (0-3).
[0111]
Then, as shown in the first column from the left in FIG. 14C, the byte interleaver 12 outputs these four delay groups del0 (0-0), del1 (0-1), del2 (0-2), and del3. Of (0-3), each byte belonging to the delay group del0 (0-0) is not written to the DPRAM, and each byte belonging to the delay group del1 (0-1) is referred to in the DPRAM as described above. The data is written in the area w1 two blocks after the address addr_base, and each byte belonging to the delay group del2 (0-2) is written in the area w2 in the DPRAM after (2 + 3) blocks of the reference address addr_base, and the delay group del3 ( For each byte belonging to 0-3), DPRAM Definitive reference address of addr_base (2 + 3 + 4) area after block, i.e., to write to region w3 where visited and to the top, it generates a write address.
[0112]
The byte interleaver 12 performs a read operation as well as a write operation to such a DPRAM. In other words, the byte interleaver 12 uses the bytes belonging to the delay group del0 among the four delay groups del0, del1, del2, and del3 written in the DPRAM, so that they are not written in the DPRAM and are used as they are. In addition, each byte belonging to the delay group del1 is read from the area r1 one block after the reference address addr_base in the DPRAM, and each byte belonging to the delay group del2 is read (1 + 2) blocks after the reference address addr_base in the DPRAM. For each byte belonging to the delay group del3, a read address is generated so as to read from the area r3 (1 + 2 + 3) blocks after the reference address addr_base in the DPRAM. However, since the byte interleaver 12 is in a state where no data is written in any of the areas r1, r2, and r3, there is actually no data to be read.
[0113]
As a result, the byte interleaver 12 outputs data consisting of each byte classified as the delay group del0 (0-0), as shown first from the left in FIG. 14D.
[0114]
Subsequently, as preparation for inputting the next encoded packet EP, the byte interleaver 12 advances the reference address addr_base by one block as shown by the bold horizontal line at the second from the left in FIG. As shown in the second from the left in FIG. 14A, when the next encoded packet EP having the packet number “1” is input, the encoded packet EP is configured as shown in the second from the left in FIG. 14B. Each byte to be processed is divided into four delay groups del0 (1-0), del1 (1-1), del2 (1-2), del3 (1) consisting of three bytes based on the count value cnt_del by the first counter. -3).
[0115]
Then, as shown in the second from the left in FIG. 14C, the byte interleaver 12 outputs these four delay groups del0 (1-0), del1 (1-1), del2 (1-2), and del3. Of (1-3), each byte belonging to the delay group del0 (1-0) is not written into the DPRAM, and the delay groups del1 (1-1), del2 (1-2), del3 (1- Each byte belonging to 3) is written in an area that was read before the encoded packet EP was input. That is, each byte belonging to the delay group del1 (1-1) is written into an area w1 (= area r2 in the packet number of the immediately preceding packet) two blocks after the reference address addr_base in the DPRAM, and the delay group del2 Each byte belonging to (1-2) is written in the area w2 (= area r3 in the packet number of the immediately preceding packet) after (2 + 3) blocks of the reference address addr_base in the DPRAM, and the delay group del3 (1-3) ) Is written so as to write to the area after (2 + 3 + 4) blocks of the reference address addr_base in the DPRAM, that is, the area w3 (= the area r1 in the number of the previous packet) circulated to the head. Generate address That.
[0116]
In addition, the byte interleaver 12 uses the bytes belonging to the delay group del0 among the four delay groups del0, del1, del2, and del3 written in the DPRAM, so that the bytes are not written in the DPRAM and are used as they are. In addition, each byte belonging to the delay group del1 is read from the area r1 one block after the reference address addr_base in the DPRAM, and each byte belonging to the delay group del2 is read (1 + 2) blocks after the reference address addr_base in the DPRAM. For each byte belonging to the delay group del3, a read address is generated so as to read from the area r3 (1 + 2 + 3) blocks after the reference address addr_base in the DPRAM. Here, in the byte interleaver 12, no data is written in the areas r2 and r3, but the area r1 is the same as the area w1 when the encoded packet EP with the packet number “0” is input. Since the delay group del1 (0-1) has been written, only the delay group del1 (0-1) is actually read.
[0117]
As a result, the byte interleaver 12 outputs data including each byte classified as the delay groups del0 (1-0) and del1 (0-1) as shown in the second from the left in FIG. 14D. Will be.
[0118]
Subsequently, as preparation for inputting the next encoded packet EP, the byte interleaver 12 further advances the reference address addr_base by one block as shown by the bold horizontal line at the third from the left in FIG. 14B. When the next coded packet EP whose packet number is “2” is input as shown in the third from the left in FIG. 14A, this coded packet EP is converted as shown in the third from the left in FIG. 14B. Based on the count value cnt_del of the first counter, each of the constituent bytes is divided into four delay groups del0 (2-0), del1 (2-1), del2 (2-2), del3 (del3) composed of three bytes. It is classified into 2-3).
[0119]
Then, as shown in the third from the left in FIG. 14C, the byte interleaver 12 outputs these four delay groups del0 (2-0), del1 (2-1), del2 (2-2), and del3. Of (2-3), each byte belonging to the delay group del0 (2-0) is not written to the DPRAM, and each byte belonging to the delay group del1 (2-1) is referenced to the reference address addr_base in the DPRAM. Is written to the area w1 two blocks after, and each byte belonging to the delay group del2 (2-2) is written to the area w2 after (2 + 3) blocks of the reference address addr_base in the DPRAM, and the delay group del3 (2- For each byte belonging to 3), Quasi address addr_base of (2 + 3 + 4) area after block, i.e., to write to region w3 where visited and to the top, it generates a write address.
[0120]
In addition, the byte interleaver 12 uses the bytes belonging to the delay group del0 among the four delay groups del0, del1, del2, and del3 written in the DPRAM, so that the bytes are not written in the DPRAM and are used as they are. In addition, each byte belonging to the delay group del1 is read from the area r1 one block after the reference address addr_base in the DPRAM, and each byte belonging to the delay group del2 is read (1 + 2) blocks after the reference address addr_base in the DPRAM. For each byte belonging to the delay group del3, a read address is generated so as to read from the area r3 (1 + 2 + 3) blocks after the reference address addr_base in the DPRAM. Here, the byte interleaver 12 has no data written in the area r3, but the area r1 is the same as the area w1 when the encoded packet EP having the packet number “1” is input. , The region r2 is the same region as the region w2 when the encoded packet EP having the packet number “0” is input, and the delay groups del1 (1-1) and del2 (0-2) are written. Therefore, only the delay groups del1 (1-1) and del2 (0-2) are actually read.
[0121]
As a result, the byte interleaver 12 is classified as delay groups del0 (2-0), del1 (1-1), and del2 (0-2) as shown in the third column from the left in FIG. 14D. It will output data consisting of bytes.
[0122]
Similarly, in preparation for inputting the next encoded packet EP, the byte interleaver 12 further advances the reference address addr_base by one block as shown by the bold horizontal line at the fourth position from the left in FIG. 14B. As shown in the fourth from the left in FIG. 14A, when the next encoded packet EP whose packet number is “3” is input, as shown in the fourth from the left in FIG. Based on the count value cnt_del of the first counter, each of the constituent bytes is divided into four delay groups del0 (3-0), del1 (3-1), del2 (3-2), del3 ( Classify in 3-3).
[0123]
Then, as shown in the fourth from the left in FIG. 14C, the byte interleaver 12 outputs these four delay groups del0 (3-0), del1 (3-1), del2 (3-2), and del3. Of (3-3), each byte belonging to the delay group del0 (3-0) is not written to the DPRAM, and each byte belonging to the delay group del1 (3-1) is referenced to the reference address addr_base in the DPRAM. Is written to the area w1 two blocks after, and each byte belonging to the delay group del2 (3-2) is written to the area w2 after (2 + 3) blocks of the reference address addr_base in the DPRAM, and the delay group del3 (3- For each byte belonging to 3), Quasi address addr_base of (2 + 3 + 4) area after block, i.e., to write to region w3 where visited and to the top, it generates a write address.
[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 byte interleaver 12, for an area in which a block of 3 bytes from address 0 to address 2 can be stored, a delay packet having a packet number of "0" and a delay packet number of "3" is used. Group del3 (0-3) is stored, of which the data of byte number "3" is stored in the area of address 0, the data of byte number "7" is stored in the area of address 1, In the area of the address 2, each byte belonging to each delay group is written starting from the one with the smaller byte number with respect to the continuous address, such as storing data with the byte number "11".
[0125]
Further, as shown in the fourth from the left in FIG. 14C, the byte interleaver 12 is configured to store each byte belonging to the delay group del0 among the four delay groups del0, del1, del2, del3 written in the DPRAM. Is not written in the DPRAM and is read as it is. Each byte belonging to the delay group del1 is read from the area r1 one block after the reference address addr_base in the DPRAM, and each byte belonging to the delay group del2 is read from the DPRAM. Is read from the area r2 after (1 + 2) blocks of the reference address addr_base, and for each byte belonging to the delay group del3, the reference address addr_base in the DPRAM is + 2 + 3) to read from the area r3 after block, it generates a read address. Here, in the byte interleaver 12, the region r1 is the same region as the region w1 when the encoded packet EP with the packet number “2” is input, and the region r2 is the code with the packet number “1”. The area r3 is the same as the area w3 when the coded packet EP having the packet number “0” is input, and the area r3 is the same as the area w3 when the coded packet EP is input. 2-1), del2 (1-2), and del3 (0-3) are actually written, so that these delay groups del1 (2-1), del2 (1-2), and del3 are actually written. (0-3) will be read.
[0126]
Thereby, the byte interleaver 12 sets the delay groups del0 (3-0), del1 (2-1), del2 (1-2), del3 (0- Data consisting of each byte classified as 3) will be output.
[0127]
As described above, the byte interleaver 12 classifies each byte into a delay group each time the encoded packet EP is input, and based on the write address and the read address according to the above-described address generation method, the delay interleaver 12. Writing and reading managed at consecutive addresses on the memory map in the DPRAM are performed for each group. As a result, the byte interleaver 12 can immediately write the next data using the storage area of the data that has been read and interleaved as the next data write area. In other words, it is possible to eliminate a useless area (an area in which interleaved data is still written) in the DPRAM area, and to minimize the required capacity of the DPRAM. be able to. In this case, the byte interleaver 12 normally calculates the product of the convolutional interleave depth D = 4 and the number of bytes per input packet N = 12, that is, D × N = 4 × 12 = 48. Although a DPRAM having a byte capacity is required, the address control described above is performed to use only a 9-byte area consisting of three bytes, that is, a DPRAM having a capacity of 27 bytes, as shown in FIG. 14C. , A similar convolutional interleave can be performed. Further, the byte interleaver 12 writes data to a continuous address for each of the classified delay groups, and reads data for each of the delay groups written to the continuous addresses, thereby obtaining a write address and a write address. It is possible to easily calculate the read address.
[0128]
Next, the byte deinterleaver 25 will be described.
Similarly to the byte interleaver 12, the byte deinterleaver 25 classifies each byte constituting a certain byte interleaved packet BIP 'into a delay group, handles data for each delay group, and Convolutional deinterleaving is performed by performing address control symmetrical to that of the leaver 12.
[0129]
That is, the byte deinterleaver 25, like the byte interleaver 12, serves as an address generation unit, not shown, for assisting calculation of addresses used for writing and reading data to and from the DPRAM. An auxiliary counter is provided. Specifically, as shown in FIG. 16A, packet numbers such as 0, 1, 2, 3,... Are assigned to each of the input 12-byte byte interleaved packets BIP ′, and FIG. As shown in FIG. 16C, if each byte constituting each byte interleaved packet BIP ′ is assigned a byte number of 0 to 11, the byte deinterleaver 25 will add the byte number to the byte number as shown in FIG. 16C. Correspondingly, a first counter for decrementing the count value cnt_del (0 to 3) corresponding to the convolutional deinterleave depth 4 and counting for each packet, and a period of the first counter as shown in FIG. A second counter that increments the corresponding count value cnt_block (0 to 2) and counts each packet. It provided as data. The difference from the byte interleaver 12 is that the count value cnt_del counted by the first counter is decremented instead of incremented.
[0130]
Like the byte interleaver 12, the byte deinterleaver 25 uses the count value cnt_del counted by the first counter and the count value cnt_block counted by the second counter to generate a DPRAM. , And performs convolutional deinterleaving on the byte interleaved packet BIP ′. When the byte deinterleaver 25 inputs the byte interleave packet BIP 'to be subjected to convolutional deinterleaving, the byte deinterleaver 25 immediately starts writing data to the DPRAM, while reading data from the DPRAM starts simultaneously with the data writing. Or with a delay of a predetermined fixed number of clocks. When a certain byte interleave packet BIP 'is input, the byte deinterleaver 25 avoids overwriting the significant data with other data before reading the significant data written in the DPRAM. Therefore, after writing data to the DPRAM, it is necessary to complete reading of all data before the next byte interleave packet BIP 'is input.
[0131]
Specifically, assuming that the byte deinterleaver 25 receives a byte interleave packet BIP ′ composed of a data array output from the byte interleaver 12, as shown in FIGS. 17A to 17D, for example, Writing and reading of a byte group classified into each delay group with respect to the DPRAM are performed. Note that, similarly to FIG. 14B described above, when the count value cnt_del is “0”, a byte group for each packet number including three bytes corresponding to each packet number is called a delay group del0, and the count value cnt_del is A byte group for each packet number consisting of 3 bytes corresponding to "1" is called a delay group del1, and a byte group for each packet number consisting of 3 bytes corresponding to a count value cnt_del of "2". Is referred to as a delay group del2, and a byte group for each packet number consisting of 3 bytes corresponding to a case where the count value cnt_del is “3” is referred to as a delay group del3.
[0132]
That is, the byte deinterleaver 25 prepares the DPRAM at the time of reset release of the first counter and the second counter, as shown by the bold horizontal line at the first from the left in FIG. 17B, in preparation for performing the convolution deinterleave. And a reference address addr_base indicating the beginning of writing and reading data to and from the DPRAM is set to a predetermined initial value such as “0”. Thereafter, as shown in the first from the left of the packet number shown in FIG. 17A, when a byte interleaved packet BIP ′ having a packet number of “0” is input, as shown in the first from the left in FIG. 17B, Each byte constituting the byte interleaved packet BIP 'is converted into four delay groups del0 (0-3), del1 (1-2), del2 consisting of three bytes based on the count value cnt_del by the first counter. (2-1), and classified into del3 (3-0).
[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 byte deinterleaver 25 outputs these four delay groups del0 (0-3), del1 (1-2), del2 (2-1), Of the del3 (3-0), each byte belonging to the delay group del0 (0-3) is not written to the DPRAM, and each byte belonging to the delay group del1 (1-2) is described above in the DPRAM. The data is written in the area w3 two blocks after the reference address addr_base, and each byte belonging to the delay group del2 (2-1) is written in the area w2 in the DPRAM after the block (2 + 3) of the reference address addr_base, and the delay group del3 is written. For each byte belonging to (3-0), DPRA Reference address of addr_base (2 + 3 + 4) area after blocks in, i.e., to write to region w1 where visited and to the top, generates a write address.
[0135]
The byte deinterleaver 25 performs a read operation as well as a write operation to such a DPRAM. That is, the byte deinterleaver 25 uses the bytes belonging to the delay group del0 among the four delay groups del0, del1, del2, and del3 written in the DPRAM, so that the bytes are not written in the DPRAM and are used as they are. . Each byte belonging to the delay group del1 is read from the area r3 one block after the reference address addr_base in the DPRAM, and each byte belonging to the delay group del2 is read (1 + 2) blocks after the reference address addr_base in the DPRAM. A read address is generated such that each byte belonging to the delay group del3 is read from the area r1 after (1 + 2 + 3) blocks of the reference address addr_base in the DPRAM. However, the byte deinterleaver 25 has no data written in any of the areas r1, r2, and r3 here, so that there is actually no data to be read.
[0136]
As a result, the byte deinterleaver 25 outputs data consisting of each byte classified as the delay group del0 (0-3), as shown first from the left in FIG. 17D.
[0137]
Subsequently, the byte deinterleaver 25 advanced the reference address addr_base by one block as shown by the second horizontal line from the left in FIG. 17B in preparation for inputting the next byte interleave packet BIP ′. When the next byte interleaved packet BIP ′ having the packet number “1” is input as shown in the second from the left in FIG. 17A, as shown in the second from the left in FIG. Each byte constituting the interleaved packet BIP 'is converted into four delay groups del0 (1-3), del1 (2-2), del2 (3) consisting of three bytes based on the count value cnt_del by the first counter. -1), del3 (0-0).
[0138]
Then, as shown in the second from the left in FIG. 17C, the byte deinterleaver 25 outputs these four delay groups del0 (1-3), del1 (2-2), del2 (3-1), Of the bytes of del3 (0-0), each byte belonging to the delay group del0 (1-3) is not written to the DPRAM, but is stored in del1 (2-2), del2 (3-1), del3 (0-0). Are written in an area that was read before the encoded packet EP was input. That is, each byte belonging to the delay group del1 (2-2) is written in the area w3 (= area r2 in the number of the previous packet) two blocks after the reference address addr_base in the DPRAM, and the delay group del2 Each byte belonging to (3-1) is written in the area w2 (= area r1 in the packet number of the immediately preceding packet) after (2 + 3) blocks of the reference address addr_base in the DPRAM, and the delay group del3 (0-0) ) Is written so as to write to the area after (2 + 3 + 4) blocks of the reference address addr_base in the DPRAM, that is, the area w1 (= the area r3 in the number of the previous packet) circulated to the head. Generate address That.
[0139]
The byte deinterleaver 25 uses the bytes belonging to the delay group del0 among the four delay groups del0, del1, del2, and del3 written in the DPRAM, so that the bytes are not written in the DPRAM and are used as they are. . Each byte belonging to the delay group del1 is read from the area r3 one block after the reference address addr_base in the DPRAM, and each byte belonging to the delay group del2 is read (1 + 2) blocks after the reference address addr_base in the DPRAM. A read address is generated such that each byte belonging to the delay group del3 is read from the area r1 after (1 + 2 + 3) blocks of the reference address addr_base in the DPRAM. Here, no data is written in the areas r1 and r2 in the byte deinterleaver 25, but the area r3 is the same as the area w3 when the byte interleave packet BIP ′ with the packet number “0” is input. Since this is an area and the delay group del1 (1-2) is written, only the delay group del1 (1-2) is actually read.
[0140]
As a result, the byte deinterleaver 25 outputs data including each byte classified as the delay groups del0 (1-3) and del1 (1-2) as shown in the second from the left in FIG. 17D. Will do.
[0141]
Subsequently, the byte deinterleaver 25 advances the reference address addr_base by one block as shown by the bold horizontal line in the third from the left in FIG. 17B in preparation for inputting the next byte interleave packet BIP ′. Then, as shown in the third from the left in FIG. 17A, when the next byte interleaved packet BIP ′ having the packet number “2” is input, as shown in the third from the left in FIG. Each byte forming the byte interleaved packet BIP 'is converted into four delay groups del0 (2-3), del1 (3-2), del2 (3) consisting of three bytes based on the count value cnt_del by the first counter. 0-1) and del3 (1-0).
[0142]
Then, as shown in the third from the left in FIG. 17C, the byte deinterleaver 25 outputs these four delay groups del0 (2-3), del1 (3-2), del2 (0-1), Of the del3 (1-0), each byte belonging to the delay group del0 (2-3) is not written to the DPRAM, and each byte belonging to the delay group del1 (3-2) is a reference address in the DPRAM. Write to the area w3 two blocks after the addr_base, and write each byte belonging to the delay group del2 (0-1) to the area w2 after the (2 + 3) block of the reference address addr_base in the DPRAM, and write the delay group del3 (1 −0), each byte in DPRAM Reference address addr_base of (2 + 3 + 4) area after block, i.e., to write to region w1 where visited and to the top, it generates a write address.
[0143]
The byte deinterleaver 25 uses the bytes belonging to the delay group del0 among the four delay groups del0, del1, del2, and del3 written in the DPRAM, so that the bytes are not written in the DPRAM and are used as they are. . Each byte belonging to the delay group del1 is read from the area r3 one block after the reference address addr_base in the DPRAM, and each byte belonging to the delay group del2 is read (1 + 2) blocks after the reference address addr_base in the DPRAM. A read address is generated such that each byte belonging to the delay group del3 is read from the area r1 after (1 + 2 + 3) blocks of the reference address addr_base in the DPRAM. Here, the byte deinterleaver 25 has no data written in the area r1, but the area r2 is the same area as the area w2 when the byte interleave packet BIP ′ with the packet number “0” is input. The region r3 is the same region as the region w3 when the byte interleaved packet BIP 'having the packet number "1" is input, and the delay groups del2 (2-1) and del1 (2-2) are included. Since they are written, actually, only these delay groups del2 (2-1) and del1 (2-2) are read.
[0144]
Thereby, the byte deinterleaver 25 is classified as the delay groups del0 (2-3), del1 (2-2), and del2 (2-1) as shown in the third from the left in FIG. 17D. Data consisting of each byte will be output.
[0145]
Similarly, the byte deinterleaver 25 advances the reference address addr_base by one block as shown by the bold horizontal line at the fourth from the left in FIG. 17B in preparation for inputting the next byte interleave packet BIP ′. Then, as shown in the fourth from the left in FIG. 17A, when the next byte interleaved packet BIP ′ having the packet number “3” is input, as shown in the fourth from the left in FIG. Each byte forming the byte interleaved packet BIP ′ is converted into four delay groups del0 (3-3), del1 (0-2), del2 (3) consisting of 3 bytes based on the count value cnt_del by the first counter. 1-1) and del3 (2-0).
[0146]
Then, as shown in the fourth from the left in FIG. 17C, the byte deinterleaver 25 outputs these four delay groups del0 (3-3), del1 (0-2), del2 (1-1), Of the del3 (2-0), each byte belonging to the delay group del0 (3-3) is not written to the DPRAM, and each byte belonging to the delay group del1 (0-2) is a reference address in the DPRAM. Write to the area w3 two blocks after the addr_base, and write each byte belonging to the delay group del2 (1-1) to the area w2 after the (2 + 3) block of the reference address addr_base in the DPRAM, and write the delay group del3 (2 −0), each byte in DPRAM Reference address addr_base of (2 + 3 + 4) area after block, i.e., to write to region w1 where visited and to the top, it generates a write address.
[0147]
The data mapped to each address in the DPRAM at this stage is shown in detail in FIG. That is, in the byte deinterleaver 25, for an area capable of storing a block of 3 bytes from address 0 to address 2, the delay of which packet number is "3" and the number of delayed packets is "3" Group del3 (3-0) is stored, of which data of byte number "0" is stored in the area of address 0 and data of byte number "4" is stored in the area of address 1 Each byte belonging to each delay group is written in the area of the address 2 in such a manner that the byte number is smaller than that of the consecutive addresses.
[0148]
Further, as shown in the fourth from the left in FIG. 17C, the byte deinterleaver 25 includes, among the four delay groups del0, del1, del2, del3 written in the DPRAM, each belonging to the delay group del0. Since the bytes are not written to the DPRAM, they are read as they are. Each byte belonging to the delay group del1 is read from the area r3 one block after the reference address addr_base in the DPRAM, and each byte belonging to the delay group del2 is Read from the area r2 after (1 + 2) blocks of the reference address addr_base in the DPRAM, and for each byte belonging to the delay group del3, read the reference address addr_base in the DPRAM. 1 + 2 + 3) to read from the area r1 after block, it generates a read address. Here, in the byte deinterleaver 25, the area r1 is the same area as the area w1 when the byte interleave packet BIP ′ with the packet number “0” is input, and the area r2 is the packet number “1”. "Is the same area as the area w2 when the byte interleaved packet BIP 'of" 2 "is input, and the area r3 is the same area as the area w3 when the byte interleaved packet BIP' of the packet number" 2 "is input. Since the delay groups del3 (3-0), del2 (3-1), and del1 (3-2) have been written, these delay groups del3 (3-0), del2 (del2) are actually written. (3-1), del1 (3-2) will be read.
[0149]
Accordingly, the byte deinterleaver 25 outputs the delay groups del0 (3-3), del1 (3-2), del2 (3-1), and del3 (3) as shown in the fourth from the left in FIG. 17D. −0) will be output as data consisting of each byte.
[0150]
In this manner, the byte deinterleaver 25 classifies each byte into a delay group in correspondence with the output after interleaving shown in FIG. Based on the write address and the read address according to the generation method, the write and read are managed in a continuous address on the memory map in the DPRAM for each delay group. As a result, the byte deinterleaver 25 immediately writes the next data, using the storage area of the data that has been read and deinterleaved as the next data write area, similarly to the byte interleaver 12. be able to. In other words, it is possible to eliminate a useless area (an area in which interleaved data is still written) in the DPRAM area, and to minimize the required capacity of the DPRAM. be able to. In this case, the byte deinterleaver 25 normally calculates the product of the convolutional deinterleave depth D = 4 and the number of bytes per input packet N = 12, that is, D × N = 4 × 12. In the case where a DPRAM having a capacity of = 48 bytes is required, by performing the above-described address control, as shown in FIG. 17C, an area consisting of nine 3 bytes, that is, a DPRAM having a capacity of 27 bytes is used. The same convolutional deinterleaving can be performed only with the above. Further, the byte deinterleaver 25 writes data to a continuous address for each of the classified delay groups, and reads data for each of the delay groups written to the continuous addresses, thereby obtaining a write address. In addition, the calculation of the read address can be easily performed.
[0151]
As described above, the byte interleaver 12 and the byte deinterleaver 25 perform the convolutional interleaving or the convolutional deinterleaving at the depth 4 and the cycle 3 by inputting a packet consisting of 12 bytes in units of bytes. A first counter for counting, for each packet, a count value cnt_del (0 to 3) corresponding to a convolutional interleave or convolutional deinterleave depth of 4 corresponding to the byte number of each byte constituting an input packet; A second counter for counting the count value cnt_block (0 to 2) corresponding to the cycle of the first counter for each packet may be provided, and data may be handled for each delay group.
[0152]
Next, an operation when processing is performed in units of units will be described. The byte interleaver 12 stores the bytes in units of units by performing convolutional interleaving on each of the bytes constituting the arbitrary encoded packet EP, as in the case of the byte unit. Bytes having the same number of delay packets, which are the number of delays of the byte interleaved packet BIP, are classified as a delay group. Further, a write address and a read address are generated so that writing and reading are performed with respect to a continuous address in the DPRAM for each delay group, and data is handled for each delay group.
[0153]
In order to classify each byte constituting a certain encoded packet EP into such a delay group, the byte interleaver 12 writes and reads data to and from the DPRAM as in the case of processing on a byte basis. There are provided two auxiliary counters for assisting the calculation of the write address and the read address used for. Further, since one unit is a plurality of continuous byte units, an auxiliary counter for counting bytes in one unit is provided.
[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 byte interleaver 12 corresponds to the number of bytes in one unit as shown in FIG. 19C. A third counter that increments the calculated count value cnt_byte (0 to 1) and counts for each packet, and increments the count value cnt_del (0 to 3) corresponding to the convolutional interleave depth 4 as shown in FIG. 19D. 19E, and a count value cnt_corresponding to a cycle of the first counter as shown in FIG. 19E. It is incremented lock (0 to 2) and a second counter for counting for each packet, provided as an auxiliary counter.
[0155]
The byte interleaver 12 uses the count value cnt_del counted by the first counter, the count value cnt_block counted by the second counter, and the count value cnt_byte counted by the third counter. Thus, the writing and reading of data to and from the DPRAM are controlled, and convolutional interleaving is performed on the encoded packet EP. At this time, when the byte interleaver 12 receives the encoded packet EP to be subjected to convolutional interleaving, the byte interleaver 12 immediately starts writing data to the DPRAM, while reading data from the DPRAM starts at the same time as writing data. Or, it is started with a delay of a predetermined fixed clock number. When a certain encoded packet EP is input, the byte interleaver 12 avoids overwriting the significant data by other data before reading the significant data written in the DPRAM. , After writing the data to the DPRAM and before the next encoded packet EP is input, it is necessary to complete the reading of all the data.
[0156]
Here, assuming that the byte interleaver 12 performs writing and reading of the byte group classified for each delay group on a unit basis, the byte interleaver 12 performs the same operation as the case shown in FIGS. 14A to 14D described above. Writing and reading of a byte group classified for each delay group with respect to the DPRAM can be performed. Note that the data mapped to each address in the DPRAM at the stage when the encoded packet EP whose packet number is “3” is processed as shown in FIG. When the processing is performed in (1), one processing unit is changed from 1 byte to 1 unit (= 2 bytes), and therefore, the processing is as shown in FIG. That is, in the byte interleaver 12, for an area capable of storing three units from address 0 to address 5, the delay group del3 having a packet number of "0" and a delay packet number of "3" (0-3) are stored. Of these, the data "6, 7" of the fourth unit is continuously stored in the area of addresses 0 and 1, and the eighth unit is stored in the area of addresses 2 and 3. Data "14, 15" are successively stored, and data "22, 23" of the twelfth unit are continuously stored in the areas of addresses 4 and 5, so that they belong to each delay group. Consecutive bytes in each unit are written starting from the one with the smallest byte number for successive addresses.
[0157]
In this manner, the byte interleaver 12 classifies each byte into a delay group in units of each time the encoded packet EP is input, and based on the write address and the read address according to the above-described address generation method. , Writing and reading managed at consecutive addresses on a memory map in the DPRAM for each delay group. As a result, the byte interleaver 12 can immediately write the next data using the storage area of the data that has been read and interleaved as the next data write area. That is, it is possible to eliminate a useless area that is used in the DPRAM area, and it is possible to minimize the required capacity of the DPRAM.
[0158]
In this case, the byte interleaver 12 normally calculates the product of the convolutional interleave depth D = 4 and the number of bytes per input packet N = 24, that is, D × N = 4 × 24 = 96. In the case where a DPRAM having a byte capacity is required, the same convolutional interleaving is performed by using the above-described address control and only using an area consisting of nine 6 bytes, that is, a DPRAM having a capacity of 54 bytes. be able to. Further, the byte interleaver 12 writes data to a continuous address for each of the classified delay groups, and reads data for each of the delay groups written to the continuous addresses, thereby obtaining a write address and a write address. It is possible to easily calculate the read address.
[0159]
Next, the byte deinterleaver 25 will be described. Similarly to the byte interleaver 12, the byte deinterleaver 25 classifies each byte constituting a certain byte interleaved packet BIP 'into a delay group, handles data for each delay group, and Convolutional deinterleaving is performed by performing address control symmetrical to that of the leaver 12.
[0160]
That is, similarly to the byte interleaver 12, the byte deinterleaver 25 serves as an address generation unit, not shown, for assisting calculation of addresses used for writing and reading data to and from the DPRAM. An auxiliary counter is provided. Specifically, as shown in FIG. 21A, packet numbers such as 0, 1, 2, 3,... Are given to each of the input 24 byte interleaved packets BIP ′, and FIG. As shown in FIG. 21B, if each byte constituting each byte interleaved packet BIP ′ is assigned a byte number of 0 to 23, the byte deinterleaver 25 includes, as shown in FIG. 21D, a third counter that increments a count value cnt_byte (0 to 1) corresponding to the number of bytes and counts each packet, and a count value cnt_del (0) corresponding to a convolutional interleave depth 4 as shown in FIG. 21D. To 3) are decremented and counted for each packet, and as shown in FIG. Increments the count value cnt_block (0~2) corresponding to the period of the data and a second counter for counting for each packet, provided as an auxiliary counter.
[0161]
The difference from the byte interleaver 12 is that the count value cnt_del counted by the first counter is decremented instead of incremented.
[0162]
Similarly to the byte interleaver 12, the byte deinterleaver 25 includes a count value cnt_del counted by the first counter, a count value cnt_block counted by the second counter, and a third counter By using the count value cnt_byte counted by, the writing and reading of data to and from the DPRAM are controlled, and convolutional deinterleaving is performed on the byte interleaved packet BIP ′. When the byte deinterleaver 25 inputs the byte interleave packet BIP 'to be subjected to convolutional deinterleaving, the byte deinterleaver 25 immediately starts writing data to the DPRAM, while reading data from the DPRAM starts simultaneously with the data writing. Or with a delay of a predetermined fixed number of clocks. When a certain byte interleave packet BIP 'is input, the byte deinterleaver 25 avoids overwriting the significant data with other data before reading the significant data written in the DPRAM. Therefore, after writing data to the DPRAM, it is necessary to complete reading of all data before the next byte interleave packet BIP 'is input.
[0163]
Here, assuming that the byte deinterleaver 25 receives a byte interleave packet BIP ′ composed of a data array output from the byte interleaver 12, it is assumed that the byte deinterleaver 25 has a byte group classified by delay group for the DPRAM. If writing and reading are performed on a unit basis, it is possible to write and read a byte group classified for each delay group in the DPRAM in the same manner as in the case shown in FIGS. 17A to 17D described above. The data mapped to each address in the DPRAM at the stage when the encoded packet EP having the packet number “3” is input is as shown in FIG. 18 when processed in units of bytes. When the processing is performed, one processing unit is changed from one byte to one unit (= 2 bytes), so that the processing is as shown in FIG.
[0164]
That is, in the byte interleaver 12, for an area capable of storing three units from address 0 to address 5, the delay group del3 having a packet number of "0" and a delay packet number of "3" (0-3) are stored. Of these, the data "6, 7" of the fourth unit is continuously stored in the area of addresses 0 and 1, and the eighth unit is stored in the area of addresses 2 and 3. Data "14, 15" are successively stored, and data "22, 23" of the twelfth unit are continuously stored in the areas of addresses 4 and 5, so that they belong to each delay group. Consecutive bytes in each unit are written starting from the one with the smallest byte number for successive addresses.
[0165]
That is, in the byte deinterleaver 25, for an area in which 6 bytes from address 0 to address 5 can be stored, a delay group having a packet number of "3" and a delay packet number of "3" del3 (3-0) is stored. Of these, data "0,1" of the first unit is continuously stored in the area of address 0,1 and the fifth unit is stored in the area of address 2,3. Data "8, 9" are successively stored, and the data "16, 17" of the ninth unit are continuously stored in the areas of addresses 4 and 5, so that they belong to each delay group. Consecutive bytes in each unit are written starting from the one with the smallest byte number for successive addresses.
[0166]
As described above, the byte deinterleaver 25 classifies each byte into a delay group each time the byte interleave packet BIP 'is input, and based on the write address and the read address according to the above-described address generation method. , Writing and reading managed at consecutive addresses on a memory map in the DPRAM for each delay group. As a result, the byte deinterleaver 25 immediately writes the next data, using the storage area of the data that has been read and deinterleaved as the next data write area, similarly to the byte interleaver 12. be able to. That is, it is possible to eliminate a useless area that is used in the DPRAM area, and it is possible to minimize the required capacity of the DPRAM.
[0167]
In this case, the byte deinterleaver 25 normally calculates the product of the convolutional deinterleave depth D = 4 and the number of bytes per input packet N = 24, that is, D × N = 4 × 24. In the case where a DPRAM having a capacity of 96 bytes is required, by performing the above-described address control, as shown in FIG. 17C, a region consisting of nine 6 bytes, that is, a DPRAM having a capacity of 54 bytes is used. The same convolutional deinterleaving can be performed only with the above. Further, the byte deinterleaver 25 writes data to a continuous address for each of the classified delay groups, and reads data for each of the delay groups written to the continuous addresses, thereby obtaining a write address. In addition, the calculation of the read address can be easily performed.
[0168]
As described above, each of the byte interleaver 12 and the byte deinterleaver 25 performs convolution with a depth of 4 and a period of 3 in units of 2 bytes as one unit for an encoded packet EP of 24 bytes. When interleaving or convolutional deinterleaving is performed, a count value cnt_del (0 to 3) corresponding to the convolutional interleaving or convolutional deinterleaving depth 4 corresponding to the byte number of each byte constituting the input packet is set for each packet. Counter, a second counter for counting a count value cnt_block (0-2) corresponding to the cycle of the first counter for each packet, and a count value corresponding to the number of bytes in one unit. Third to count cnt_byte (0 to 1) for each packet And the counter is provided, it may be able to handle data for each delay group.
[0169]
Therefore, such a byte interleaver 12 and a byte deinterleaver 25 respectively set the number of bytes per input packet to N, the convolutional interleave or the convolutional deinterleave depth to D, the convolutional interleave or the convolutional deinterleave. Is the cycle of C and the number of bytes in the unit at the time of performing convolutional interleaving is U, the count corresponding to the depth D of convolutional interleaving or convolutional deinterleaving corresponding to the byte number of each byte constituting the input packet A first counter that counts a value cnt_del (0 to D-1) for each packet, and a second counter that counts a count value cnt_block (0 to C-1) corresponding to the cycle of the first counter for each packet. Counter and the number of bytes in one unit A third counter for counting the response count value cnt_byte (0~1) for each packet is provided, writing and reading data to DPRAM, it may be performed for each delay group. That is, the address generation method by the byte interleaver 12 and the byte deinterleaver 25 can be generalized as follows.
[0170]
First, when writing data to the DPRAM, the byte interleaver 12 and the byte deinterleaver 25 write addresses corresponding to each delay group according to a rule shown in a series of processes shown in FIG. And controls the writing of data to the DPRAM.
[0171]
That is, as shown in FIG. 23, the byte interleaver 12 and the byte deinterleaver 25 each set the above-mentioned reference address addr_base to “0” in step S1, and then perform convolutional interleaving in step S2. Alternatively, it is determined whether or not the packet is a delimiter of a packet to be subjected to convolution deinterleaving.
[0172]
If it is determined that the packet is not a packet delimiter, the byte interleaver 12 and the byte deinterleaver 25 operate the first counter, the second counter, and the third counter, respectively, and Write each byte to the DPRAM for each delay group based on the count value cnt_del by the counter of (1).
[0173]
That is, when the count value cnt_del by the first counter is set to “0” in step S3, the byte interleaver 12 and the byte deinterleaver 25 each add the byte at this time to the delay group del0. Then, in step S4, the process shifts to step S2 without generating a write address and without writing each byte belonging to the delay group del0 to the DPRAM.
[0174]
When the count value cnt_del by the first counter is set to “1” in step S3, the byte interleaver 12 and the byte deinterleaver 25 respectively add the byte at this time to the delay group del1. In step S5, as a write address,
(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 byte interleaver 12 and the byte deinterleaver 25 respectively add the byte at this time to the delay group del2. In step S6, as a write address,
(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 byte interleaver 12 and the byte deinterleaver 25 each add the byte at this time to the delay group del3. And in step S7, as a write address,
(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 byte interleaver 12 and the byte deinterleaver 25 respectively add the byte at this time to the delay group. del (D-1), and in step S8, as a write address,
(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 byte interleaver 12 performs such an operation until the count value cnt_del becomes "D-1" by incrementing the count value cnt_del from "0" to "D-1", and further convolutionally interleaves this operation. Is repeated by the value of the cycle C, and the processing for all bytes included in one packet is completed. On the other hand, the byte deinterleaver 25 performs such an operation until the count value cnt_del becomes “0” by decrementing the count value cnt_del from “D−1” to “0”, and further convolves this operation. The process is repeated by the value of the deinterleave cycle C, and the process for all bytes included in one packet is completed.
[0179]
In this way, the byte interleaver 12 and the byte deinterleaver 25 complete the processing on the input packet, respectively. If it is determined in step S2 that the packet is a packet delimiter, the process proceeds to step S9. And transfer processing. Then, in step S9, the byte interleaver 12 and the byte deinterleaver 25 each set the reference address addr_base at the packet delimiter to the value of “convolution interleave or convolution deinterleave cycle C × byte number U in unit”. In other words, the processing is again shifted to step S2 in order to increase by one block area and wait until the next packet is input.
[0180]
The byte interleaver 12 and the byte deinterleaver 25 can control the writing of data to the DPRAM by generating a write address corresponding to each delay group according to such a rule. When performing convolutional interleaving in byte units, since the number of bytes in one unit is “1”, if U = 1 and cnt_byte = 0 in the above general formula of the read address, the byte unit Is a formula for performing convolutional interleaving and convolutional deinterleaving. At this time, the third counter is not required.
[0181]
On the other hand, when reading data from the DPRAM, each of the byte interleaver 12 and the byte deinterleaver 25 generates a read address corresponding to each delay group according to a rule shown in a series of processes shown in FIG. Then, reading of data from the DPRAM is controlled.
[0182]
That is, as shown in FIG. 24, the byte interleaver 12 and the byte deinterleaver 25 each set the above-mentioned reference address addr_base to “0” in step S11 and then perform convolutional interleaving in step S12. Alternatively, it is determined whether or not the packet is a delimiter of a packet to be subjected to convolution deinterleaving.
[0183]
Here, when it is determined that the packet is not a packet delimiter, the byte interleaver 12 and the byte deinterleaver 25 operate the first counter and the second counter, respectively, and count values by the first counter. Each byte is read from the DPRAM for each delay group based on cnt_del.
[0184]
That is, when the count value cnt_del by the first counter is set to “0” in step S13, the byte interleaver 12 and the byte deinterleaver 25 each add the byte at this time to the delay group del0. Then, in step S14, without generating a read address, each byte belonging to the delay group del0 is output without being written to the DPRAM, and the process proceeds to step S12.
[0185]
When the count value cnt_del by the first counter is set to “1” in step S13, the byte interleaver 12 and the byte deinterleaver 25 respectively set the read address in step S15 as a read address.
(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 byte interleaver 12 and the byte deinterleaver 25 each set the read address as a read address in step S16.
(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 byte interleaver 12 and the byte deinterleaver 25 are set as read addresses in step S17.
(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 byte interleaver 12 and the byte deinterleaver 25 respectively set the read address in step S18 as the read address.
(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 byte interleaver 12 performs such an operation until the count value cnt_del becomes "D-1" by incrementing the count value cnt_del from "0" to "D-1", and further convolutionally interleaves this operation. Is repeated by the value of the cycle C, and the processing for all bytes included in one packet is completed. On the other hand, the byte deinterleaver 25 performs such an operation until the count value cnt_del becomes “0” by decrementing the count value cnt_del from “D−1” to “0”, and further convolves this operation. The process is repeated by the value of the deinterleave cycle C, and the process for all bytes included in one packet is completed.
[0190]
In this way, the byte interleaver 12 and the byte deinterleaver 25 complete the processing for the input packet, respectively. If it is determined in step S12 that the packet is a packet delimiter, the process proceeds to step S19. And transfer processing. Then, in step S19, the byte interleaver 12 and the byte deinterleaver 25 each add the reference address addr_base to the packet delimiter at the value of “convolution interleave or convolution deinterleave cycle C × number of bytes U in unit”. In other words, the processing is again shifted to step S12 in order to increase by one block area and wait until the next packet is input.
[0191]
The byte interleaver 12 and the byte deinterleaver 25 can control the reading of data from the DPRAM by generating a read address corresponding to each delay group according to such a rule. When performing convolutional interleaving in byte units, since the number of bytes in one unit is “1”, if U = 1 and cnt_byte = 0 in the above general formula of the read address, the byte unit Is a formula for performing convolutional interleaving and convolutional deinterleaving. At this time, the third counter is not required.
[0192]
The byte interleaver 12 and the byte deinterleaver 25 write and read data to and from the DPRAM in accordance with the rules shown in FIGS. A convolutional interleaving or convolutional deinterleaving of length D and period C can be performed. At this time, the byte interleaver 12 and the byte deinterleaver 25 normally require a DPRAM having a capacity of D × N bytes, and C × (2 + 3 +... + D) = C It is only necessary to use a DPRAM having a capacity of × ((1 + D) × D / 2-1). More specifically, the byte interleaver 12 and the byte deinterleaver 25 respectively have a depth of 4 and a byte unit of a 12-byte packet as shown in FIGS. 13A to 24. When convolutional interleaving or convolutional deinterleaving with a period of 3 is performed, as described above, normally, a DPRAM having a capacity of D × N = 4 × 12 = 48 bytes is required, but C × (2 + 3 + .. + D) = C × ((1 + D) × D / 2-1) = 3 × ((1 + 4) × 4 / 2-1) = Only a DPRAM having a capacity of 27 bytes may be used. When performing convolutional interleaving or convolutional deinterleaving with a depth of 18 and a period of 12 on a packet consisting of 216 bytes as in the example shown in FIGS. 2A to 12F, Normally, a DPRAM having a capacity of D × N = 18 × 216 = 3888 bytes is required, but C × (2 + 3 +... + D) = C × ((1 + D) × D / 2-1) = It is only necessary to use a DPRAM having a capacity of 12 × ((1 + 18) × 18 / 2-1) = 2040 bytes.
[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 byte interleaver 12 and the byte deinterleaver 25 may use a memory having a memory capacity that is about half of the memory capacity that is normally required, and the required memory capacity can be greatly reduced. Can be.
[0195]
As described above, in the data transmission / reception system shown as the embodiment of the present invention, the byte interleaver 12 and the byte deinterleaver 25 are mounted using the DPRAM, and the reading is performed and the interleaving or deinterleaving is performed. The next data is immediately written to the storage area of the completed data. That is, by performing address control for immediately reusing the memory area used for convolutional interleaving and convolutional deinterleaving, the depth of convolutional interleaving and convolutional deinterleaving, the number of bytes per input packet, and It is necessary to implement the same convolutional interleaving and convolutional deinterleaving by using a memory having a capacity much smaller than this capacity when it is necessary to use a memory having a capacity of the number of bytes represented by the product of Can be.
[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 byte interleaver 12 and the packet interleaver 13 or each unit including the packet deinterleaver 24 and the byte deinterleaver 25 is implemented as a programmable device. However, the present invention can be applied to a case where the present invention is implemented as a dedicated integrated circuit.
[0198]
In addition, when a transport stream TS obtained by performing compression encoding based on the MPEG-2 method is input to the encoder 10 for each unit, and the transport stream TS is restored by the decoder 20, Since the header of the transport stream TS is 4 bytes, if convolutional interleaving and convolutional deinterleaving are performed with one unit being 4 bytes as described above, each byte constituting the header may be rearranged. In addition, debugging becomes easy.
[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 encoder 10, and the transport stream TS is restored by the decoder 20. However, according to the present invention, the first data word of a packet is a fixed value and a fixed length packet to be used for synchronous generation when performing convolutional interleaving and convolutional deinterleaving in packet units. Any packet communication can be applied as long as the packet communication is performed under the condition.
[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 encoder 10 for encoding the packetized data and the decoder 20 for decoding the data encoded by the encoder 10 Although the system has been described, the present invention is not limited to such an encoder and decoder as long as it performs convolutional interleaving and convolutional deinterleaving, and can be applied to any application.
[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]
Reference Signs List 10 encoder, 11 Reed-Solomon encoder, 12 byte interleaver, 13 packet interleaver, 14 packetizer, 15 transmitter, 16, 27 SDRAM, 17, 28 interface, 20 decoder, 21 Receiving unit, 22 packet continuity verification unit, 23 unpacketizing unit, 24 packet deinterleaver, 25 byte deinterleaver, 26 Reed-Solomon decoding unit

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.
上記第1の計数手段によって計数されるカウント値は、上記遅延パケット数を表すものであり、
上記第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.
上記アドレス生成手段は、畳み込みインターリーブの深さをDとし、畳み込みインターリーブの周期をCとし、畳み込みインターリーブを施す際のデータワード単位の数をUとすると、上記第1の計数手段によって計数されるカウント値が0であるときには、上記記憶手段に対してデータを書き込まずに出力させるとともに、上記第1の計数手段によって計数されるカウント値が0以外の値D−1であるときには、下記一般式(1)で表される上記書き込みアドレスを生成するとともに、下記一般式(2)で表される上記読み出しアドレスを生成すること
を特徴とする請求項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.)
上記アドレス生成手段は、任意のパケットを構成する全てのデータワードを入力すると、次のパケットを入力する準備として、上記基準アドレスaddr_baseを、上記畳み込みインターリーブの周期Cと上記データワード単位の数Uとの乗算値分だけ増加させること
を特徴とする請求項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.
上記入力されたデータは、所定のデータに対してMPEG−2方式に基づく圧縮符号化を施して得られたトランスポートストリームに対して、上記誤り訂正符号が付加されたものであること
を特徴とする請求項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.
上記アドレス生成工程では、上記パケットのデータワード数と畳み込みインターリーブの深さとの商に対応したカウント値が第1の計数手段によって上記パケット毎に計数され、上記第1の計数手段の周期に対応したカウント値が第2の計数手段によって上記パケット毎に計数され、上記複数の連続するデータワード単位で畳み込みインターリーブを施す際に、上記データワード単位の数に対応したカウント値が第3の計数手段によって上記パケット毎に計数されること
を特徴とする請求項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.
上記第1の計数手段によって計数されるカウント値は、上記遅延パケット数を表すものであり、
上記第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.
上記アドレス生成工程では、畳み込みインターリーブの深さをDとし、畳み込みインターリーブの周期をCとし、畳み込みインターリーブを施す際のデータワード単位の数をUとすると、上記第1の計数手段によって計数されるカウント値が0であるときには、上記記憶手段に対してデータを書き込まずに出力させるとともに、上記第1の計数手段によって計数されるカウント値が0以外の値D−1であるときには、下記一般式(3)で表される上記書き込みアドレスが生成されるとともに、下記一般式(4)で表される上記読み出しアドレスが生成されること
を特徴とする請求項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.)
上記アドレス生成工程では、任意のパケットを構成する全てのデータワードが入力されると、次のパケットを入力する準備として、上記基準アドレスaddr_baseを畳み込みインターリーブの周期Cと上記データワード単位の数Uとの乗算値分だけ増加させること
を特徴とする請求項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.
上記入力されたデータは、所定のデータに対してMPEG−2方式に基づく圧縮符号化を施して得られたトランスポートストリームに対して、上記誤り訂正符号が付加されたものであること
を特徴とする請求項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.
上記第1の計数手段によって計数されるカウント値は、上記遅延パケット数を表すものであり、
上記第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.
上記アドレス生成手段は、畳み込みデインターリーブの深さをDとし、畳み込みデインターリーブの周期をCとし、畳み込みインターリーブを施す際のデータワード単位の数をUとすると、上記第1の計数手段によって計数されるカウント値が0であるときには、上記記憶手段に対してデータを書き込まずに出力させるとともに、上記第1の計数手段によって計数されるカウント値が0以外の値D−1であるときには、下記一般式(5)で表される上記書き込みアドレスを生成するとともに、下記一般式(6)で表される上記読みしアドレスを生成すること
を特徴とする請求項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.)
上記アドレス生成手段は、任意のパケットを構成する全てのデータワードを入力すると、次のパケットを入力する準備として、上記基準アドレスaddr_baseを畳み込みデインターリーブの周期Cと上記データワード単位の数Uとの乗算値分だけ増加させること
を特徴とする請求項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:
上記アドレス生成工程では、上記パケットのデータワード数と畳み込みインターリーブの深さとの商に対応したカウント値が第1の計数手段によって上記パケット毎に計数され、上記第1の計数手段の周期に対応したカウント値が第2の計数手段によって上記パケット毎に計数され、上記複数の連続するデータワード単位で畳み込みデインターリーブを施す際に、上記データワード単位の数に対応したカウント値が第3の計数手段によって上記パケット毎に計数されること
を特徴とする請求項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.
上記第1の計数手段によって計数されるカウント値は、上記遅延パケット数を表すものであり、
上記第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.
上記アドレス生成工程では、畳み込みデインターリーブの深さをDとし、畳み込みデインターリーブの周期をCとし、畳み込みインターリーブを施す際のデータワード単位の数をUとすると、上記第1の計数手段によって計数されるカウント値が0であるときには、上記記憶手段に対してデータを書き込まずに出力させるとともに、上記第1の計数手段によって計数されるカウント値が0以外の値D−1であるときには、下記一般式(7)で表される上記書き込みアドレスが生成されるとともに、下記一般式(8)で表される上記読み出しアドレスが生成されること
を特徴とする請求項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.)
上記アドレス生成工程では、任意のパケットを構成する全てのデータワードが入力されると、次のパケットを入力する準備として、上記基準アドレスaddr_baseを畳み込みインターリーブの周期Cと上記データワード単位の数Uとの乗算値分だけ増加させること
を特徴とする請求項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.
JP2003100345A 2002-04-05 2003-04-03 Interleaver, interleaving method, de-interleaver, and de-interleaving method Pending JP2004007544A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (6)

* Cited by examiner, † Cited by third party
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