JP2001332980A - インタリーブ装置及びインタリーブ方法 - Google Patents

インタリーブ装置及びインタリーブ方法

Info

Publication number
JP2001332980A
JP2001332980A JP2000149121A JP2000149121A JP2001332980A JP 2001332980 A JP2001332980 A JP 2001332980A JP 2000149121 A JP2000149121 A JP 2000149121A JP 2000149121 A JP2000149121 A JP 2000149121A JP 2001332980 A JP2001332980 A JP 2001332980A
Authority
JP
Japan
Prior art keywords
data
address
block
interleave
output
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.)
Withdrawn
Application number
JP2000149121A
Other languages
English (en)
Inventor
Kazuhisa Funamoto
一久 舟本
Tamotsu Ikeda
保 池田
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 JP2000149121A priority Critical patent/JP2001332980A/ja
Publication of JP2001332980A publication Critical patent/JP2001332980A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

(57)【要約】 【課題】 1インタリーブ分のメモリ容量でブロックイ
ンタリーブを行う。 【解決手段】 本発明のインタリーバは、m×nのデー
タ単位でブロックインタリーブを行う。インタリーバ
は、インタリーブメモリに対して0〜(m×n−1)ま
での論理アドレスを設定し、あるインタリーブブロック
のi番目のデータが読み出された論理アドレスに、次の
スーパーフレームのi番目のデータを書き込む。インタ
リーバは、k番目のインタリーブブロックのi番目に出
力されるデータの論理アドレスを関数fk(i)=f
(fk-1(i))に基づき算出する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ系列に対し
てブロックインタリーブを行うインタリーブ装置及びイ
ンタリーブ方法に関するものである。
【0002】
【従来の技術】インタリーバ及びデインタリーバについ
て説明をする。
【0003】デジタル信号を伝送する場合、Bit Error
Rate(以下BER)特性を確保するため、通常、送信する
信号に対して誤り訂正符号化処理がされる。このような
誤り訂正処理の手法として、複数の誤り訂正符号を組み
合わせて使う連接符号と呼ばれる手法が知られている。
【0004】この連接符号について説明するための概念
図を、図19に示す。
【0005】この連接符号は、送信側では、情報系列に
対してある符号化方式Aにより符号化し、さらにそれに
対して別の符号化方式Bで符号化して送信する。そして
受信側では、受信系列を、まず符号化方式Bに対応する
復号方式で復号し、さらにそれに対して符号化方式Aに
対応する復号方式で復号することで情報系列を得るもの
である。このような連接符号を用いることにより、いず
れか一つの誤り訂正方式を用いる場合よりも、優れたB
ER特性を得ることができる。
【0006】例えばBSデジタル放送等の場合、図20
に示すように、送信側では、情報系列に対して、まずRe
ed-Solomon符号化器で符号化し、さらにそれに対して畳
み込み符号化器で符号化する。そして受信側では、受信
系列を、まず例えばビタビ復号器により畳み込み符号の
復号を行い、されにそれに対してReed-Solomon復号器で
復号することで情報系列を得る。
【0007】ところで、畳み込み符号に対してビタビ復
号を行った場合、符号雑音比(以下CNR)の低いデータ
系列に連続的に誤訂正(以下バースト誤り)が発生しやす
い。
【0008】そのため、例えばBSデジタル放送等のデ
ータ伝送システムでは、図21に示すように、RS符号
化器と畳み込み符号化器との間にインタリーバを設け、
さらに、ビタビ復号器とRS復号器との間にデインタリ
ーバを設けている。
【0009】ここで、インタリーバとは入力系列をある
規則に従って並べ換える装置であり、デインタリーバと
はインタリーバとは逆の規則に従って入力系列を並べ換
える装置である。このように、インタリーバ及びデイン
タリーバを設けることによって、図22に示すように、
ビタビ復号を行うことによって発生するバースト誤りを
分散させて、誤り訂正能力を向上させている。
【0010】一般的なインタリーバ、デインタリーバの
論理的な動作を説明する。なお、インタリーバとデイン
タリーバは、データの並び替えの規則が逆であるだけ
で、入力系列をある規則に従って並べ替えるという動作
は同一であるため、ここでは、インタリーバの動作に関
してのみ説明を行う。また、インタリーバは、データの
並び替え規則によってブロックインタリーバと畳み込み
インタリーバとの大きく2つの種類に分けられるが、こ
こでは、一定数のデータ群からなるブロックにデータス
トリームを分割し、そのブロック内でインタリーブ処理
が完結されているブロックインタリーバについての動作
に関してのみ説明を行う。また、以下、単にインタリー
バと称した場合には、ブロックインタリーバのことを表
すものとする。
【0011】インタリーバは、m行×n列で構成される
データ配列を用い、このデータ配列に対するデータの書
き込み順序と読み出し順序とを換えることによって、デ
ータの並べ替えを行うもの、と説明することができる。
このm×nのデータ配列のことを、以下インタリーブブ
ロック或いは単にブロックと呼ぶ。
【0012】インタリーバは、まず、図23(a)に示
すように、1次元のデータ入力系列を、行方向に順番に
配列していき、m×nの2次元のデータ配列をメモリ上
に構成する。続いて、図23(b)に示すように、この
データ配列からデータを列方向に順番にメモリ上から読
み出していき、1次元のデータ出力系列を送出する。
【0013】例えば、2×3のブロックを用いるインタ
リーバに対して、0,1,2,3,4,5・・・という
入力系列を与えると、図24(a)に示すように、行方
向に各データがメモリ上に書き込まれる。これに対し
て、インタリーバは、読み出し時には、図24(b)に
示すように、2×3で構成されるデータ配列から列方向
にデータをメモリ上から読み出し、0,3,1,4,
2,5・・・という出力系列を送出する。
【0014】以上がインタリーバの論理的な動作であ
る。このようなインタリーバを用いることにより、BS
デジタル放送等のデータ伝送システムでは、ビタビ復号
等によって生じたバースト誤りを、ランダム誤りに変換
することができる。
【0015】以上説明したインタリーバは、1ブロック
分のデータの出力が全て完了した後に、次のブロックの
データの入力が行われており、ブロック毎に完結した動
作を行っている。従って、このインタリーバに対して入
出力されるデータは、ブロック単位で間欠的にメモリ上
から入出力される。しかしながら、アプリケーションに
よっては、インタリーバに対して連続的にデータの入出
力を行わなければならない場合がある。
【0016】このような要求に応えることができるイン
タリーバとして、いわゆるダブルバッファ方式を採用し
たインタリーバが知られている。ダブルバッファ方式の
インタリーバの回路構成の概略を図25に示す。
【0017】ダブルバッファ方式のインタリーバは、1
ブロック分のデータ容量を有する2つのメモリと、これ
ら2つのメモリに対する入出力信号(例えば、書き込み
データ、書き込みアドレス、読み出しデータ、読み出し
アドレス、制御信号)を切り替える入力セレクタ及び出
力セレクタとを備えて構成される。
【0018】入力セレクタ及び出力セレクタは、1ブロ
ック処理するごとに選択するメモリを切り換える。また
入力セレクタと出力セレクタは、常に互いに異なるメモ
リを選択する。例えば、インタリーバに入力された順序
で第k番目のブロックを処理する場合、入力セレクタが
メモリAを選択していれば、出力セレクタはメモリBを
選択する。また、第(k+1)番目のブロックを処理する
ときには、選択するメモリが切り換えられ、入力セレク
タはメモリBを選択し、出力セレクタはメモリAを選択
する。入力データは、入力セレクタによって選択された
メモリに書き込まれ、出力データは出力セレクタによっ
て選択されたメモリから読み出される。このため、常に
いずれか一方のメモリに対してデータが入力され、ま
た、常に他方のメモリからデータが出力される。従っ
て、このダブルバッファ方式のインタリーバでは、連続
的にデータの入出力を行いながらインタリーブ処理をす
ることができる。
【0019】
【発明が解決しようとする課題】ところで、ブロックイ
ンタリーブを行うには、上述したようなダブルバッファ
方式のインタリーバを適用しなければならず、インタリ
ーブ用のメモリ容量がインタリーブブロックの2倍の容
量を必要としてしまっていた。そのため、インタリーバ
を集積化した場合、インタリーブ用のメモリにかかるコ
ストが非常に大きくなってしまっていた。
【0020】本発明は、このような実情を鑑みてなされ
たものであり、インタリーブ及びデインタリーブのため
に用いられるメモリの容量を削減することができるイン
タリーブ装置及びインタリーブ方法を提供することを目
的とする。
【0021】
【課題を解決するための手段】本発明にかかるインタリ
ーブ装置は、m×n個のデータからなるインタリーブブ
ロック単位でブロックインタリーブを行うインタリーブ
装置であって、0〜(m×n−1)までの論理アドレス
が設定され、1インタリーブブロック分のデータを格納
可能なインタリーブメモリと、入力されたデータを上記
インタリーブメモリに書き込み、上記インタリーブメモ
リに書き込まれているデータを所定のインタリーブ規則
に従い読み出すメモリ制御部とを備え、上記メモリ制御
部は、k番目のインタリーブブロックのi番目に出力さ
れるデータの論理アドレスを関数fk(i)=f(fk-1
(i))に基づき算出し、この論理アドレスと同一のア
ドレスにk+1番目のインタリーブブロックのi番目に
入力されるデータを書き込むことを特徴とする。
【0022】ここで、f(i)=n×(i%m)+(i
/m)とし、このf(i)に対してfk(i)は以下の
ような関係を有する。 f2(i)=f(f(i)) f3(i)=f(f2(i)) f4(i)=f(f3(i)) ・ ・ ・ fk-1(i)=f(fk-2(i)) fk(i)=f(fk-1(i)) m,nは、1以上の整数であり、(x%y)とはxをy
で割った余りを表し、(x/y)とは、xをyで割った
商の整数部分を表す。
【0023】また、本発明にかかるインタリーブ装置
は、f(i)を演算するf(i)発生回路と、0〜(m
×n−1)までのテーブルアドレスが設定され、上記テ
ーブルアドレス順に配列{fk-1(i)}を格納する第
1のテーブルと、0〜(m×n−1)までのテーブルア
ドレスが設定され、上記テーブルアドレス順に配列{f
k(i)}を格納する第2のテーブルとを有し、f
k-1(f(i))を演算することにより、k番目のイン
タリーブブロックのi番目に出力されるデータの論理ア
ドレスであるfk(i)を算出するメモリ制御を備え
る。
【0024】また、本発明にかかるインタリーブ装置
は、f(i)を演算するf(i)発生回路と、0〜(m
×n−1)までのテーブルアドレスが設定され、上記テ
ーブルアドレス順に配列{fk-1(i)}を格納する第
3のテーブルとを有し、f(fk -1(i))を演算する
ことにより、k番目のインタリーブブロックのi番目に
出力されるデータの論理アドレスであるfk(i)を算
出するめもり制御部を備える。
【0025】また、本発明にかかるインタリーブ装置
は、f(i)を演算するf(i)発生回路と、g(i)
=i%(m・n)+i/(m・n)を算出するg(i)
発生回路と、fk(i−1)を格納する第1のレジスタ
と、fk(1)を格納する第2のレジスタとを有し、g
(fk(i−1)+fk(1))を演算することにより、
k番目のインタリーブブロックのi番目に出力されるデ
ータの論理アドレスであるfk(i)を算出する上記メ
モリ制御部を備える。
【0026】本発明にかかるインタリーブ方法は、m×
n個のデータからなるインタリーブブロック単位でブロ
ックインタリーブを行うインタリーブ方法であって、上
記インタリーブメモリには、0〜(m×n−1)までの
論理アドレスが設定され、入力されたデータをインタリ
ーブメモリに書き込み、このインタリーブメモリに書き
込まれているデータを所定のインタリーブ規則に従い読
み出すときに、k番目のインタリーブブロックのi番目
に出力されるデータの論理アドレスを関数fk(i)=
f(fk-1(i))に基づき算出し、この論理アドレスと
同一のアドレスにk+1番目のインタリーブブロックの
i番目に入力されるデータを書き込むことを特徴とす
る。
【0027】ここで、f(i)=n×(i%m)+(i
/m)とし、このf(i)に対してfk(i)は以下の
ような関係を有する。 f2(i)=f(f(i)) f3(i)=f(f2(i)) f4(i)=f(f3(i)) ・ ・ ・ fk-1(i)=f(fk-2(i)) fk(i)=f(fk-1(i)) m,nは、1以上の整数であり、(x%y)とはxをy
で割った余りを表し、(x/y)とは、xをyで割った
商の整数部分を表す。
【0028】また、本発明にかかるインタリーブ方法
は、fk-1(f(i))を演算することにより、k番目
のインタリーブブロックのi番目に出力されるデータの
論理アドレスであるfk(i)を算出する。
【0029】また、本発明にかかるインタリーブ方法
は、f(fk-1(i))を演算することにより、k番目
のインタリーブブロックのi番目に出力されるデータの
論理アドレスであるfk(i)を算出する。
【0030】また、本発明にかかるインタリーブ方法
は、g(fk(i−1)+fk(1))を演算することに
より、k番目のインタリーブブロックのi番目に出力さ
れるデータの論理アドレスであるfk(i)を算出す
る。
【0031】
【発明の実施の形態】以下、本発明の実施の形態とし
て、本発明を適用したインタリーバついて説明を行う。
【0032】インタリーバの動作原理 まず最初に、具体的なインタリーバを説明する前に、こ
のインタリーバに用いられるインタリーバの動作原理
を、m×nのインタリーブブロックに対するインタリー
バの動作に対応させて、一般的に説明をする。
【0033】まず、m×nのブロックインタリーバに対
する入力ブロックと出力ブロックとの間にある規則を一
般化する。入力ブロックを{DI0,DI1,DI2,・
・・DIi,・・・DImn-2,DImn-1}とし、出力ブ
ロックを{DO0,DO1,DO2,・・・DOi,・・・
DOmn-2,DOmn-1}とすると、入力ブロックと出力ブ
ロックとの間の規則は、図1に示すように、DOi=D
f(i)で表される。
【0034】ここで、iは、任意のデータのブロック内
における位置を示す。このiは、0≦i≦(m×n−
1)の範囲の整数値である。なお、ブロック内における
データ位置のことを、以下インデックスと呼ぶ。また、
f(i)=n×(i%m)+(i/m) である。m,
nは、それぞれ自然数を示す。mは、インタリーブの深
さを示す。a%bは、aをbで割った余りを示す。a/
bは、aをbで割った商(整数部分)を示す。
【0035】本発明の実施の形態のインタリーバは、こ
のように示される入力ブロックと出力ブロックとの関係
(すなわち、インタリーブ規則)に基づき以下のような
動作を行う。
【0036】インタリーバは、図2に示すような、m×
n個のデータが格納可能なインタリーブメモリを有す
る。インタリーブメモリには、各セルに対して、#0〜
#(n×m−1)の論理アドレスが付けられている。
【0037】このようなインタリーバには、インデック
ス順にデータが連続的に入力される。インタリーバは、
その入力されたデータをメモリに連続的に格納し、上述
したインタリーブ規則に従ってデータを入れ替えながら
データをメモリから連続的に出力していく。
【0038】ここで、インタリーバは、ある任意のデー
タを読み出す際に、一つの論理アドレスを指定し、指定
した論理アドレスからそのデータを読み出す。そのと
き、インタリーバは、読み出した論理アドレスに、同時
に、次のデータの書き込みも行う。すなわち、インタリ
ーバは、同一アドレスを指定することによって、読み出
し及び書き込みを同時に行う。そして、このとき書き込
まれるデータは、読み出しているブロックの次のブロッ
クのデータであって、読み出しているデータのインデッ
クスと同一のインデックスのデータである。
【0039】具体的には、インタリーバは、図3に示す
ように、論理アドレスxに対して、k番目のインタリー
ブブロックのインデックスiのデータを読み出すととも
に、k+1番目のインタリーブブロックのインデックス
iのデータを書き込むようにする。ここで、kは、自然
数であり、インタリーバに入力された(或いは出力され
る)ブロックの入力番号(或いは出力順番)を示してい
る。
【0040】そして、任意のインタリーブブロックの任
意のインデックスiのデータに対する論理アドレスは、
以下の式に基づき算出される。 fk(i)=f(fk-1(i)) ここで、f(i)は、n×(i%m)+(i/m) と
なる。このf(i)は、上述したブロックインタリーバ
の入出力ブロックの関係を示す際に用いた関数である。
また、fk(i)は、このf(i)に対して以下のよう
な関係を有する。 f2(i)=f(f(i)) f3(i)=f(f2(i)) f4(i)=f(f3(i)) ・ ・ ・ fk-1(i)=f(fk-2(i)) fk(i)=f(fk-1(i))
【0041】以上のように本発明を適用したインタリー
バは、入出力ブロックのインタリーブ規則を表す関数f
(i)と、過去に求めたインタリーブメモリに対する論
理アドレスとに基づき、k番目のブロックのi番目に出
力すべきデータが格納されている論理アドレスを求め
る。そして、このインタリーバは、この論理アドレスに
対してアクセスを行い、格納されているk番目のブロッ
クのi番目に出力すべきデータを読み出すとともに、k
+1番目のブロックのi番目に入力されるデータを格納
する。
【0042】このようなインタリーバの動作をブロック
順に具体的に説明をしていくと以下のようになる。
【0043】インタリーブメモリには論理アドレスが#
0〜#(mn−1)まで付けられており、初期状態で
は、各アドレスに有効なデータは存在していないものと
する。また、インタリーブブロックのデータ数は、m×
nである。
【0044】最初の1ブロック分のデータはインデック
ス順に入力される。インタリーバは、インデックス順に
入力されたデータを、インタリーブメモリの論理アドレ
ス順に書き込んでいく。すなわち,i番目の入力データ
は、論理アドレス#iに書き込まれる。
【0045】続いて、インタリーバは、最初のブロック
のデータを読み出しながら、2ブロック目のデータをイ
ンタリーブメモリに書き込む動作を行う。最初のブロッ
クのi番目に出力すべきデータは、f(i)=n×(i
%m)+(i/m)番目に入力されたデータである。最
初のブロックのf(i)=n×(i%m)+(i/m)
番目に入力されたデータは、論理アドレス#f(i)に
書き込まれている。従って、インタリーバは、最初のブ
ロックのインデックスiのデータを論理アドレス#f
(i)から読み出す。また、インタリーバは、これと同
時に2ブロック目のi番目に入力されたデータをこの論
理アドレス#f(i)に書き込む。
【0046】次に、インタリーバは、2ブロック目のデ
ータを読み出しながら、3ブロック目のデータをインタ
リーブメモリに書き込む動作を行う。前の場合と同様に
2ブロック目のi番目に出力すべきデータは、f(i)
=n×(i%m)+(i/m)番目に入力されたデータ
である。ここで、2ブロック目でi番目に入力されたデ
ータは、前の動作で論理アドレス#f(i)に書き込ま
れている。従って、インタリーバは、2ブロック目のイ
ンデックスiのデータを論理アドレス#f(f(i))
から読み出す。また、インタリーバは、これと同時に3
ブロック目のi番目に入力されたデータをこの論理アド
レス#f(f(i))に書き込む。なお、このf(f
(i))は、以下f2(i)と表記する。
【0047】以下同様に、インタリーバは、3ブロック
目のデータを読み出しながら、4ブロック目のデータを
インタリーブメモリに書き込む場合には、3ブロック目
のインデックスiのデータを論理アドレス#f(f(f
(i)))から読み出し、これと同時に4ブロック目の
i番目に入力されたデータをこの論理アドレス#f(f
(f(i)))に書き込む。なお、このf(f(f
(i)))は、以下f3(i)と表記する。
【0048】そして、一般化して、kブロック目のデー
タを読み出しながら、(k+1)ブロック目のデータを
メモリに書き込む場合には、kブロック目のインデック
スiのデータを論理アドレス#fk(i)から読み出
し、これと同時に(k+1)ブロック目のi番目に入力
されたデータをこの論理アドレス#fk(i)に書き込
む。
【0049】さらに具体的に、2×3のブロックインタ
リーブを行うインタリーバに、0,1,2,3,4,
5,6,7,・・・といったデータを入力する場合につ
いて図4を用いて説明をする。
【0050】インタリーブメモリには、図4(a)に示
すように、#0から#5までの論理アドレスが付けられ
ているものとする。
【0051】まず、インタリーバは、図4(b)に示す
ように、第1ブロック(0,1,2,3,4,5)を、
論理アドレス順に書き込んでいく。
【0052】続いて、インタリーバは、図4(c)に示
すように、第1ブロックの読み出し、及び、第2ブロッ
ク(6,7,8,9,10,11)の書き込みを行う。
このとき第1ブロックの読み出し順序は、f(i)=3
×(i%2)+(i/2)に従うので、インタリーブメ
モリに対するアクセス順序は、図中点線で示すように、
#0→#3→#1→#4→#2→#5といった順序にな
る。従って、アドレス#0のデータ1が読み出されると
このアドレス#0に対してデータ6が書き込まれ、アド
レス#3のデータ3が読み出されるとこのアドレス#3
に対してデータ7が書き込まれ、アドレス#1のデータ
1が読み出されるとこのアドレス#1に対してデータ8
が書き込まれ、アドレス#4のデータ4が読み出される
とこのアドレス#4に対してデータ9が書き込まれ、ア
ドレス#2のデータ2が読み出されるとこのアドレス#
2に対してデータ10が書き込まれ、アドレス#6のデ
ータ5が読み出されるとこのアドレス#6に対してデー
タ11が書き込まれる。
【0053】続いて、インタリーバは、図4(d)に示
すように、第2ブロックの読み出し、及び、第3ブロッ
ク(12,13,14,15,16,17)の書き込み
を行う。このとき第2ブロックの読み出し順序は、f2
(i)に従うので、インタリーブメモリに対するアクセ
ス順序は、図中点線で示すように、#0→#4→#3→
#2→#1→#5といった順序になる。従って、アドレ
ス#0のデータ6が読み出されるとこのアドレス#0に
対してデータ12が書き込まれ、アドレス#4のデータ
9が読み出されるとこのアドレス#4に対してデータ1
3が書き込まれ、アドレス#3のデータ7が読み出され
るとこのアドレス#3に対してデータ14が書き込ま
れ、アドレス#2のデータ10が読み出されるとこのア
ドレス#2に対してデータ15が書き込まれ、アドレス
#1のデータ8が読み出されるとこのアドレス#1に対
してデータ16が書き込まれ、アドレス#6のデータ1
1が読み出されるとこのアドレス#6に対してデータ1
7書き込まれる。
【0054】なお、以上用いたf(i)及びf2(i)
の具体的な値を、図5に示す。
【0055】以上のように、本発明の実施の形態のイン
タリーバでは、kブロック目のi番目のデータの読み出
しを行う際に、その読み出しアドレスをfk(i)に基
づき算出するので、1インタリーブブロック分のデータ
容量を有するメモリにより、連続的にデータの入出力を
しながらインタリーブを行うことができる。
【0056】なお、インタリーバとデインタリーバは、
データの並び替えの規則が逆であるだけで、入力系列を
ある規則に従って並べ替えるという動作は同一であり、
以上の処理をデインタリーバに適用することも可能であ
る。
【0057】(インタリーバの構成及び動作)つぎに、
インタリーバの具体的な構成について説明する。
【0058】インタリーバ1は、図6に示すように、ア
ドレス生成回路11と、インタリーブメモリ12とから
構成される。
【0059】アドレス生成回路11は、インタリーブメ
モリ14に対する読み書き用アドレス(実アドレス)を
発生する。このアドレス生成回路11では、上述したイ
ンタリーブブロックに対するインタリーブ規則を表す関
数f(i)と、過去に求めたインタリーブメモリに対す
る論理アドレスとに基づき、k番目のブロックのi番目
に出力すべきデータが格納されている読み書き用アドレ
スを算出している。インタリーブメモリ12は、そのア
ドレスに対して、このk番目のブロックのi番目に出力
すべきデータを読み出して出力し、それとともに、k+
1番目のブロックのi番目に入力されるデータを書き込
みむ。
【0060】このような構成のインタリーバ1は、アド
レス生成回路11の内部で生成するタイミングパルスに
基づき動作する。アドレス生成回路11は、内部で生成
したタイミング毎にインタリーブメモリ12をアクセス
するための読み書き用アドレスを生成する。
【0061】(アドレス生成回路の構成及び動作)つぎ
に、アドレス生成回路11について、さらに詳細に説明
をする。
【0062】アドレス生成回路11では、インタリーブ
メモリ12に対する論理アドレスであるfk(i)の算
出を、fk(i)=fk-1(f(i))という関係を利用
して行っている。
【0063】具体的には、配列A{fk(i){0≦i
<m×n}}を記憶するメモリテーブルと、配列B{f
k-1(i)}を記憶するメモリテーブルと、f(i)を
演算する演算回路とを用いて、fk(i)を算出する。
この2つのメモリテーブルは、0〜(m×n−1)まで
のアドレスが設定されている。このアドレスは、配列内
を構成する各データの配置順序を指定するものである。
配列A及び配列Bを構成するデータ群は、i{0≦i<
m×n}で初期化されている。
【0064】(k)ブロック目のi番目のデータに対す
る論理アドレスを出力する場合、まず、f(i)が算出
され、このf(i)が配列Bを記憶するメモリテーブル
のアドレスとして供給され、この配列Bから値が読み出
される。そして、この配列Bから読み出された値が、配
列Aを記憶するメモリテーブルのアドレスiに書き込ま
れる。そして、この配列Aのアドレスiに格納される値
が(k)ブロック目のi番目の論理アドレスとなる。続
いて、次のブロックに対する処理を行う場合には、配列
Aの値を配列Bにそのまま代入して更新すればよい。例
えば、配列Bを記憶するメモリテーブルと、配列Aを記
憶するメモリテーブルと1ブロック毎に交代すればよ
い。
【0065】なお、配列Bに対するアクセス順序をイン
デックス順序に従う方が回路規模が簡単になるという観
点から、配列Aの値を配列Bにそのまま代入して更新す
るのではなく、配列A{fk(f-1(i))}を配列B
に代入して更新するようにしてもよい。f-1(i)は、
f(i)の逆関数である。
【0066】具体的に、このような演算を行うことがで
きるアドレス生成回路11の回路構成を図7に示す。
【0067】アドレス生成回路11は、この図7に示す
ように、タイミング制御部21と、フラグD発生回路2
2と、フラグE発生回路23と、インデックスカウンタ
24と、第1のアドレス用テーブル25と、第2のアド
レス用テーブル26と、f′(i)発生回路27と、第
1のセレクタ28と、第2のセレクタ29と、第3のセ
レクタ30と、第4のセレクタ31と、第5のセレクタ
32と、論理アドレス/実アドレス変換回路34とを有
している。
【0068】タイミング制御部21は、アドレス生成回
路11全体の動作クロックとなるタイミングパルスを生
成する。また、タイミング制御部21は、このタイミン
グパルスに同期したインタリーブ動作の開始命令である
スタート信号、及び、インタリーブブロックの開始位置
を示すブロック開始位置信号を生成し、出力する。
【0069】フラグD発生回路22は、0又は1を示す
フラグであるフラグDを発生する回路である。フラグD
発生回路22には、タイミング制御部21からのスター
ト信号が供給される。スタート信号は、アドレス生成回
路11に対する動作開始或いはアドレス生成回路11を
再起動する場合に発行される命令であり、外部のシステ
ムコントローラ等から発行される。フラグD発生回路2
2は、このスタート信号によりフラグDが0に初期化さ
れ、リセット後の最初のインタリーブブロックのデータ
の処理が完了した時点(すなわち、スタート信号の後、
ブロック開始位置を示すブロック開始位置信号を2回受
けた時点)で、フラグDが1にセットされる。そして、
以後、処理が停止するまで、このフラグDを1に保持し
たままにしておく。
【0070】フラグE発生回路23は、0又は1を示す
フラグであるフラグEを発生する回路である。フラグE
発生回路23には、ブロック開始位置信号が供給され
る。フラグE発生回路26は、このブロック開始位置信
号によりフラグEが0に初期化される。また、フラグE
発生回路26は、このブロック開始位置を示すパルスを
受け取る毎に、フラグEの値を反転させる。
【0071】インデックスカウンタ24は、タイミング
制御部21から供給されるタイミングパルスをインクリ
メントして、インデックス値iを発生する。このインデ
ックス値iは、スタート信号及びブロック開始位置信号
が供給されると、0に初期化される。インデックスカウ
ンタ24は、このインデックス値iを、f′(i)発生
回路27及び第1及び第2のアドレス用テーブル25、
26に供給する。
【0072】第1のアドレス用テーブル25及び第2の
アドレス用テーブル26は、1インタリーブブロック分
のブロックアドレスのデータを格納することができるテ
ーブルである。第1のアドレス用テーブル25及び第2
のアドレス用テーブル26には、内部セルに、それぞれ
#0から#(m×n−1)までのテーブルアドレスが設
定されている。第1のアドレス用テーブル25及び第2
のアドレス用テーブル26に対して、このアドレスを指
定することにより、そのテーブルアドレスに対してのデ
ータの書き込み及び読み出しをすることができる。ま
た、第1のアドレス用テーブル25及び第2のアドレス
用テーブル26には、アウトプット端子ODT、インプ
ット端子IDT、アドレス端子ADRが設けられてい
る。
【0073】f′(i)発生回路27は、インデックス
カウンタ24から出力されたインデックスiが入力され
る。f′(i)は、入力されたインデックス値iに対し
て、上述したf′(i)を演算する回路である。具体的
な回路構成は、図8に示すように、入力されたインデッ
クスiに対するmの剰余を演算する剰余回路41と、剰
余回路41の出力にnを乗算する乗算回路42と、入力
されたインデックスiをmで割ったときの商(整数値)
を演算する除算回路43と、乗算回路42の出力と除算
回路43の出力とを加算する加算回路44とから構成さ
れる。
【0074】第1のセレクタ28は、フラグEに応じ
て、第1のアドレス用テーブル25からの出力と第2の
アドレス用テーブル26からの出力とを切り換えて、い
ずれか一方の出力データを選択して第2のセレクタ29
に出力する。第1のセレクタ28は、フラグEが0であ
れば第1のアドレス用テーブル25を選択し、フラグE
が1であれば第2のアドレス用テーブル26を選択す
る。
【0075】第2のセレクタ29は、フラグDに応じ
て、インデックスカウンタ24からの出力と第1のセレ
クタ28からの出力とを切り換えて、いずれか一方の出
力データを選択して論理アドレス/実アドレス変換回路
34に出力する。第2のセレクタ29は、フラグDが0
であればインデックスカウンタ24を選択し、フラグD
が1であれば第1のセレクタ28を選択する。
【0076】第3のセレクタ30は、フラグEに応じ
て、f′(i)発生回路27の出力とインクリメントカ
ウンタ23の出力とを切り換えて、いずれか一方からの
出力データを選択して、第1のアドレス用テーブル25
のアドレス端子に出力する。第3のセレクタ30は、フ
ラグEが0であればインデックスカウンタ24を選択
し、フラグEが1であればf′(i)発生回路27を選
択する。
【0077】第4のセレクタ31は、フラグEに応じ
て、f′(i)発生回路27の出力とインクリメントカ
ウンタ23の出力とを切り換えて、いずれか一方からの
出力データを選択して、第2のアドレス用テーブル26
のアドレス端子に出力する。第4のセレクタ31は、フ
ラグEが0であればf′(i)発生回路27を選択し、
フラグEが1であればインデックスカウンタ24を選択
する。
【0078】第5のセレクタ32は、フラグEに応じ
て、第1のアドレス用テーブル25又は第2のアドレス
用テーブル26を切り換えて、いずれか一方のインプッ
ト端子IDTに、第2のセレクタ29からの出力を入力
する。第5のセレクタ32は、フラグEが0の場合には
第2のアドレス用テーブル26を選択し、フラグEが1
の場合には第1のアドレス用テーブル25を選択する。
【0079】論理アドレス/実アドレス変換回路34
は、第2のセレクタ29から出力される値を論理アドレ
スfk(i)を、インタリーブメモリ12に供給する実
アドレスに変換する。
【0080】次に、このような構成のアドレス生成回路
11の論理アドレスの出力動作及びアドレス用テーブル
の更新動作について説明をする。
【0081】フラグDが0の場合(最初のインタリーブ
ブロックに対する処理の場合)、第2のセレクタ29が
インデックスカウンタ24を選択し、インデックスカウ
ンタ24から出力されるインデックス値iがそのまま論
理アドレスとして出力される。
【0082】フラグDが1で且つフラグEが0の場合
(2番目以降のインタリーブブロックに対する処理の場
合)、第3のセレクタ30がインデックスカウンタ24
を選択して、インデックスカウンタ24から出力される
インデックス値iが第1のアドレス用テーブル25のテ
ーブルアドレスとして与えられる。そして、第1のセレ
クタ28が第1のアドレス用テーブル25を選択し、イ
ンデックスカウンタ24から与えられたテーブルアドレ
ス(インデックス値i)により指定されたアドレスに格
納されているデータが、論理アドレスとして出力され
る。
【0083】フラグDが1で且つフラグEが1の場合
(2番目以降のインタリーブブロックに対する処理の場
合)、第4のセレクタ31がインデックスカウンタ24
を選択して、インデックスカウンタ24から出力される
インデックス値iが第2のアドレス用テーブル26のテ
ーブルアドレスとして与えられる。そして、第1のセレ
クタ28が第2のアドレス用テーブル26を選択し、イ
ンデックスカウンタ24から与えられたテーブルアドレ
ス(インデックス値i)により指定されたアドレスに格
納されているデータが、論理アドレスとして出力され
る。
【0084】また、フラグEが0の場合、第5のセレク
タ32が第2のアドレス用テーブル26を選択し、第2
のセレクタ29から出力される論理アドレスが第2のア
ドレス用テーブル26に格納される。すなわち、第1の
アドレス用テーブル25から出力された論理アドレス値
が、第2のアドレス用テーブル26に格納される。この
とき、入力データされるデータの格納アドレスは、第4
のセレクタ31がf′(i)発生回路27を選択するこ
とから、このf′(i)発生回路27から出力される値
により指定される。
【0085】フラグEが1の場合、第5のセレクタ32
が第1のアドレス用テーブル25を選択し、第2のセレ
クタ29から出力される論理アドレス値が第1のアドレ
ス用テーブル25に格納される。すなわち、第2のアド
レス用テーブル26から出力された論理アドレス値が、
第1のアドレス用テーブル25に格納される。このと
き、入力データされるデータの格納アドレスは、第3の
セレクタ30がf′(i)発生回路27を選択すること
から、このf′(i)発生回路27から出力される値に
より指定される。
【0086】このような動作が行われることによりアド
レス生成回路11では、配列A{f k(i){0≦i<
m×n}}を記憶するアドレス用テーブルと、配列B
{fk-1(i)}を記憶するアドレス用テーブルと、関
数f′(i)を発生する演算回路を用意して、f
k-1(f(i))を演算し、k番目のインタリーブブロ
ックのi番目に出力されるデータの論理アドレスである
k(i)を算出することができる。
【0087】つぎに、アドレス生成回路11の動作を図
9のタイミングチャートを用いて説明をする。
【0088】この図9に示すタイミングチャートは、一
例として、2×3のブロックインタリーバに適用した場
合について示している。
【0089】図9中、(a)はブロック開始位置信号、
(b)はインデックスカウンタ24から出力されるイン
デックス値i、(c)はフラグD、(d)はフラグE、
(e)は第1のアドレス用テーブル25の出力値、
(f)は第2のアドレス用テーブル26の出力値、
(g)は出力される論理アドレス値、(h)は第1のア
ドレス用テーブル25に入力されるアドレス値、(i)
は第2のアドレス用テーブルに入力されるアドレス値を
それぞれ示している。
【0090】アドレス生成回路11は、スタート信号に
よって動作を開始し、タイミングパルスを基準に処理を
行っていく。
【0091】インデックスカウンタ24は、タイミング
パルスをインクリメントし、インデックス値iを更新し
ていく。インデックス値iは、ブロック開始位置信号の
発生タイミングで、その値が0に初期化する。すなわ
ち、2×3ブロックの場合には、0〜5までをカウント
すると、次に0に初期化される。
【0092】フラグDは、スタート直後の最初のブロッ
クに対してのみhighとされ、以後はlowとされ
る。フラグEは、ブロック毎に交互にhighとlow
が切り替えられる。
【0093】論理アドレス出力は、フラグDがhigh
となっている最初のブロックでは、その値がインデック
ス値iとなる。以後論理アドレス出力は、フラグEがl
owとなっているときは第1のアドレス用テーブル25
の出力値となり、フラグEがhighとなっているとき
は第2のアドレス用テーブル26の出力値となる。ま
た、第1のアドレス用テーブル25に与えられるアドレ
ス値は、フラグEがlowのときにはインデックス値i
とされ、フラグEがhighのときにはf′(i)とさ
れる。また、第2のアドレス用テーブルに与えられるア
ドレス値は、フラグEがhighのときにはインデック
ス値iとされ、フラグEがlowのときにはf′(i)
とされる。
【0094】以上のように本発明を適用したインタリー
バ1によれば、1インタリーブブロック分の1つのイン
タリーブメモリを用いてブロックインタリーブを行うこ
とができ、メモリ容量を削減することができる。
【0095】アドレス生成回路の変形例 つぎに、上述したインタリーバ1内のアドレス生成回路
11の変形例について説明する。なお、以下の説明する
第1から第3の変形例の説明において、図7に示したア
ドレス生成回路11に用いられている同一の構成要素に
は、図面に同一の符号を付け、その詳細な説明を省略す
る。
【0096】(第1の変形例)第1の変形例のアドレス
生成回路は、インタリーブメモリ12に対する論理アド
レスであるfk(i)の算出を、fk(i)=f(fk-1
(i))という関係を利用して行っている。
【0097】具体的には、配列C{fk-1(i) {0
≦i<m×n}}を記憶するメモリテーブルと、f
(i)を演算する演算回路とを用いて、fk(i)を算
出する。このメモリテーブルは、0〜(m×n−1)ま
でのアドレスが設定されている。このアドレスは、配列
内を構成する各データの配置順序を指定するものであ
る。配列A及び配列Bを構成するデータ群は、i{0≦
i<m×n}で初期化されている。
【0098】kブロック目のi番目のデータに対する論
理アドレスを出力する場合、インデックスiが配列Cを
記憶するメモリテーブルのアドレスとして供給され、こ
の配列Cから値が読み出される。そして、読み出された
値が演算回路に供給されf(fk-1(i))が算出され
る。この演算回路により算出された値が論理アドレスと
して出力される。そして、この演算回路により算出され
た値が、メモリテーブルのアドレスiに格納され、次の
ブロックの処理に用いられる。
【0099】このような演算を行うことができる第1の
変形例のアドレス生成回路80を図10に示す。
【0100】アドレス生成回路80は、この図10に示
すように、タイミング制御部21と、フラグD発生回路
22と、インデックスカウンタ24と、アドレス用テー
ブル81と、f(i)発生回路82と、第2のセレクタ
29と、論理アドレス/実アドレス変換回路34とを有
している。
【0101】アドレス用テーブル81は、1インタリー
ブブロック分のブロックアドレスのデータを格納するこ
とができるテーブルである。アドレス用テーブル81に
は、内部セルに、それぞれ#0から#(n×m−1)ま
でのテーブルアドレスが設定されており、このアドレス
を指定することにより、所定のテーブルアドレスに対し
てのデータの書き込み及び読み出しをすることができ
る。また、アドレス用テーブル81には、アウトプット
端子ODT、インプット端子IDT、アドレス端子AD
Rが設けられている。インプット端子IDTには、イン
デックスカウンタ24からのインデックス値iが入力さ
れる。インプット端子IDTには、f(i)発生回路8
2から出力される値が入力される。アウトプット端子O
DTは、第2のセレクタ29に接続される。
【0102】f(i)発生回路82は、インデックスカ
ウンタ24から出力されたインデックス値iに対して、
上述したf(i)を演算する回路である。具体的な回路
構成は、図11に示すように、入力されたインデックス
iに対するnの剰余を演算する剰余回路83と、剰余回
路83の出力にmを乗算する乗算回路84と、入力され
たインデックスiをmで割ったときの商(整数値)を演
算する除算回路85と、乗算回路84の出力と除算回路
85の出力とを加算する加算回路86とから構成され
る。
【0103】第2のセレクタ29は、フラグDに応じ
て、インデックスカウンタ24からの出力とアドレス用
テーブル81からの出力とを切り換えて、いずれか一方
の出力データを選択して論理アドレス/実アドレス変換
回路34に出力する。第2のセレクタ29は、フラグD
が0であればインデックスカウンタ24を選択し、フラ
グDが1であればアドレス用テーブル81を選択する。
【0104】次に、このような構成の第1の変形例のア
ドレス生成回路80のブロックアドレスの出力動作及び
アドレス用テーブルの更新動作について説明をする。
【0105】フラグDが0の場合(最初のインタリーブ
ブロックに対する処理の場合)、第2のセレクタ29が
インデックスカウンタ24を選択し、インデックスカウ
ンタ24から出力されるインデックス値iがそのまま論
理アドレスとして出力される。インデックスカウンタ2
4から与えられたテーブルアドレス(インデックス値
i)により指定されたアドレスに、f(i)発生回路8
2から出力される値が格納されていく。
【0106】また、フラグDが0の場合(2番目以降の
インタリーブブロックに対する処理の場合)、第2のセ
レクタ29がアドレス用テーブル81を選択する。そし
て、インデックスカウンタ24から与えられたテーブル
アドレス(インデックス値i)により指定されたアドレ
スに格納されているデータが、論理アドレスとして出力
される。それとともに、データが出力されるテーブルア
ドレスにf(i)発生回路82から出力される値が格納
されていく。
【0107】以上のような動作が行われることにより第
1の変形例のアドレス生成回路80では、メモリ用テー
ブル81に配列C{fk-1(i)}を記憶させ、kブロ
ック目のi番目のデータの処理をする場合、この配列C
を論理アドレスとして出力していくとともに、この配列
Cをf(C{fk-1(i)})で更新していくようにす
ることができる。
【0108】つぎに、第1の変形例のアドレス生成回路
80の動作を図12のタイミングチャートを用いて説明
をする。この図12に示すタイミングチャートは、一例
として、2×3のブロックインタリーバに適用した場合
について示している。
【0109】図12中、(a)はブロック開始位置信
号、(b)はインデックスカウンタ24から出力される
インデックス値i、(c)はフラグD、(d)はアドレ
ス用テーブル81の出力値、(e)は出力される論理ア
ドレス値、(f)はf(i)発生回路82から発生され
る値をそれぞれ示している。
【0110】アドレス生成回路11は、スタート信号に
よって動作を開始し、タイミングパルスを基準に処理を
行っていく。
【0111】インデックスカウンタ24は、タイミング
パルスをインクリメントし、インデックス値iを更新し
ていく。インデックス値iは、ブロック開始位置信号の
発生タイミングで、その値が0に初期化する。すなわ
ち、2×3ブロックの場合には、0〜5までをカウント
すると、次に0に初期化される。
【0112】フラグDは、スタート直後の最初のブロッ
クに対してのみhighとされ、以後はlowとされ
る。
【0113】論理アドレス出力は、フラグDがhigh
となっている最初のブロックでは、その値がインデック
ス値iとなる。以後論理アドレス出力は、アドレス用テ
ーブル81の出力値となる。また、アドレス用テーブル
81に与えられるアドレス値は、f(i)発生回路82
から発生される値である。
【0114】(第2の変形例)第2の変形例のアドレス
生成回路は、fk(i)とfk(i−1)との間にある
“fk(i)=g(fk(i−1)+fk(1)”という
関係を利用して、インタリーブメモリ12に対する論理
アドレスであるfk(i)の算出を行っている。ここ
で、g(i)=i%(m・n)+i/(m・n) であ
る。また、fk(0)=0である。
【0115】具体的には、fk(i−1)の値を格納す
るアドレスレジスタ(cur)と、fk(1)を格納す
るオフセットレジスタ(offset)と、g(i)を
演算する回路と、f(i)を演算する回路とを用いて、
k(i)の算出を行う。その動作アルゴリズムは、以
下のようになる。
【0116】 なお、Y←Xは、Yレジスタに、Xレジスタの値を代入
することを示している。
【0117】具体的に、このようなアルゴリズムを実現
できる第2の変形例のアドレス生成回路90を図13に
示す。
【0118】アドレス生成回路90は、この図13に示
すように、タイミング制御部21と、Dフリップフロッ
プ91と、アドレスレジスタ92と、オフセットレジス
タ93と、加算回路94と、g(i)発生回路95と、
f(i)発生回路96と、セレクタ99と、論理アドレ
ス/実アドレス変換回路34とを有している。
【0119】アドレスレジスタ92には、入力端子ID
T、出力端子Q、イネーブル端子EN、クリア端子CL
R、リセット端子RSTが設けられている。アドレスレ
ジスタ92は、タイミング制御回路21により生成され
たタイミングパルスがイネーブル端子ENに入力され、
このタイミングパルスが供給されているときに、入力端
子IDTに入力されてきたデータを受け付けて1クロッ
ク分保持し、その保持しているデータを出力端子Qから
出力する。入力データは、g(i)発生回路95から供
給される。出力データは、論理アドレスとして論理アド
レス/実アドレス変換回路34及び加算回路94に供給
される。また、アドレスレジスタ92には、タイミング
制御回路21により生成されたブロック開始位置信号が
CLR端子に入力される。このクリア端子CLRにブロ
ック開始位置信号が供給されると、保持しているデータ
をクリアする。また、アドレスレジスタ92には、タイ
ミング制御回路21からスタート信号がリセット端子R
STに入力される。このリセット端子RSTにスタート
信号が供給されると、保持しているデータをリセットす
る。
【0120】オフセットレジスタ93には、入力端子
D、出力端子Q、イネーブル端子EN、リセット端子R
STが設けられている。オフセットレジスタ93は、タ
イミング制御回路21により生成されたブロック開始位
置信号がイネーブル端子ENに入力され、このブロック
開始位置信号が供給されているときに、入力端子IDT
に入力されてきたデータを受け付けそのデータを保持
し、その保持しているデータを出力する。入力データ
は、セレクタ99から供給される。出力データは、加算
回路94及びf(i)発生回路96に供給される。ま
た、オフセットレジスタ93には、タイミング制御回路
21からスタート信号がリセット端子RSTに入力され
る。このリセット端子RSTにスタート信号が供給され
ると、保持しているデータをリセットする。
【0121】加算回路94は、アドレスレジスタ92の
出力とオフセットレジスタ93の出力とを加算する。
【0122】g(i)発生回路95は、加算回路94の
加算結果iに対して、上述したg(i)=i%(m・
n)+i/(m・n)を演算する回路である。具体的な
回路構成は、図14に示すように、入力された加算値i
に対する(m・m)の剰余を演算する剰余回路101
と、入力された加算値iを(n・m)で割ったときの商
(整数値)を演算する除算回路102と、剰余回路10
1の出力と除算回路102の出力とを加算する加算回路
103とから構成される。このg(i)発生回路95に
より演算された値は、アドレスレジスタ92の入力端子
IDTに供給される。
【0123】f(i)発生回路96は、オフセットカウ
ンタ93から出力された値に対して、上述したf(i)
を演算する回路である。具体的な回路構成は、図11に
示した回路構成と同一である。このf(i)発生回路9
6により演算された値は、セレクタ99に供給される。
【0124】セレクタ99には、値1と、f(i)発生
回路96の出力値とが入力される。セレクタ99は、フ
ラグD発生回路22から出力されるフラグDに応じて、
値1又はf(i)発生回路96の出力値のいずれか一方
を、オフセットレジスタ93の入力データとして供給す
る。なお、フラグD発生回路22は、スタート信号によ
りフラグDを0に初期化し、リセット後の最初のインタ
リーブブロックのデータの処理が完了した時点(すなわ
ち、スタート信号の後、ブロック開始位置を示すブロッ
ク開始位置信号を2回受けた時点)で、フラグDを1に
セットする。そして、以後、処理が停止するまで、この
フラグDを1に保持したままにしておく。セレクタ99
は、フラグDが0のときには値1をオフセットレジスタ
93に供給し、フラグDが1のときにはf(i)発生回
路96の出力値をオフセットレジスタ93に供給する。
【0125】Dフリップフロップ91には、タイミング
パルスが入力され、このタイミングパルスを1クロック
分遅延させて、出力データのイネーブル信号を生成し、
出力する。
【0126】以下、各レジスタの動作について説明をす
る。
【0127】アドレスレジスタ92は、以下のように動
作をする。 (1)スタート信号が供給されると、内部に格納してい
る値を必ず0にクリア (2)インタリーブブロックの先頭タイミングで、内部
に格納している値を0にクリア(3)インタリーブブロ
ックの先頭以外のタイミングで、g(i)発生回路95
からの出力値が入力され、内部に格納している値を更新 オフセットレジスタ93は、以下のように動作をする。 (1)スタート信号が供給されると、内部に格納してい
る値を1にセットする (2)インタリーブブロックの先頭タイミングで、f
(i)発生回路96からの出力値が入力され、内部に格
納している値を更新
【0128】つぎに、第2の変形例のアドレス生成回路
90の動作を図15のタイミングチャートを用いて説明
をする。この図15に示すタイミングチャートは、一例
として、2×3のブロックインタリーバに適用した場合
について示している。
【0129】図15中、(a)はブロック開始位置信
号、(b)はインデックス値i、(c)はフラグD、
(d)は出力される論理アドレス値、(e)はオフセッ
トレジスタ96から出力されるオフセット値をそれぞれ
示している。
【0130】アドレス生成回路90は、スタート信号に
よって動作を開始し、タイミングパルスを基準に処理を
行っていく。インデックス値iは、ブロック開始位置信
号の発生タイミングで、その値が0に初期化される。す
なわち、2×3ブロックの場合には、0〜5までをカウ
ントすると、次に0に初期化される。
【0131】フラグDは、スタート直後の最初のブロッ
クに対してのみhighとされ、以後はlowとされ
る。
【0132】論理アドレス出力は、フラグDがhigh
となっている最初のブロックでは、その値がインデック
ス値iとなる。以後論理アドレス出力は、アドレスレジ
スタ92の出力値となる。また、オフセットレジスタ9
6に与えられるアドレス値は、f(i)発生回路82か
ら発生される値である。
【0133】(第3の変形例)第3の変形例は、発生す
る論理アドレスの値を、一定のブロック周期毎にリセッ
トするリセット機能を設けたアドレス生成回路である。
【0134】図7に示したアドレス生成回路11、図1
0に示した第1の変形例のアドレス生成回路80、及
び、図13に示した第2の変形例のアドレス生成回路9
0では、動作開始時後の最初のインタリーブロックをイ
ンタリーブメモリ12に書き込む場合、インデックスi
をそのまま論理アドレスとして出力している。すなわ
ち、論理アドレスの初期値としてiを与えている。ここ
で、各アドレス生成回路は、k番目のインタリーブブロ
ックに対する論理アドレスとして、fk(i)を出力す
るが、このfk(i)は、一定の周期性を有している。
すなわち、fk(i)=iとなる場合が周期的に現れ
る。この第3の変形例は、処理を行ったインタリーブブ
ロックの数をカウントし、そのカウント値が一定の値と
なったときに、強制的に論理アドレスを初期値にリセッ
トする。このように一定の周期毎に強制的に発生する論
理アドレスを初期値にリセットすることによって、例え
ば、信号処理を行っている最中に何らかの原因でエラー
が発生し、正確な論理アドレスが算出できなくなった場
合であっても、そのエラー伝搬がその周期以上は続かな
いようにすることができる。
【0135】関数fk(i)が周期性を持つことの証明
の概要を示す。
【0136】まず、関数fk(i)は、次の2つの性質
を持つ。 (1)fk(i)=fk(j) (i≠j)となるi、j、
kは存在しない。
【0137】存在するとインタリーブ処理においてデー
タを書き潰してしまうことから明らかである。 (2)fk(i)=fl(i)となるk、l、iが存在す
る。fk、flの定義域、値域は有限のため、必ずfk
(i)=fl(i)となるk、l、iが存在する。
【0138】(1)により0≦i,j<m×nをnodeと
して、j←i(j=fk(i)が成立するとき )を有向
branchとする有向graphにおいて、合流するpathが存在
しないことが言える。また(2)により先の有向graph
における有向branchは必ず有限個の閉loopを形成するこ
とが分かる。
【0139】以上によりfk(i)は、各々の閉loopの
要素数の最小公倍数を周期とする周期性を持つことが言
える。
【0140】次に、周期pを求めるためのアルゴリズム
例を示す。 (ステップS1)サイズm×nのテーブルTを用意し、
T[i]=iとなるようにリセットする。 (ステップS2)k← 1 (ステップS3)for(i=0;i<m;i++)T
[i]=f(T[i]); (ステップS4)全てのiについてT[i]=iならば
kが求める周期p0になっていなければ、k←k+1を
して、(ステップS3)に戻る。
【0141】以上のようなステップS1〜ステップS4
までの処理を行うことによって周期pが求められる。ま
た、周期pを求めるための他のアルゴリズム例を示す。 (ステップS11)サイズm×nのテーブルTを用意
し、全てのエントリを0にリセットする。 (ステップS12)サイズm×nテーブルLを用意し、
全てのエントリを1にリセットする。 (ステップS13)k←0; (ステップS14)T[i]==0となる最小のi(0
≦i<m×n)に対して、以下の処理を行う。 (ステップS15)T[i]←1 (ステップS16)i←f(i) (ステップS17)k++ (ステップS18)T[i]==0ならばステップS1
5へ戻り、T[i]==1ならばL[i]==kとして
ステップS13に戻る。 (ステップS19)全てのi(0≦i<m×n)に対し
てT[i]==1となったときのL[i]の最小公倍数
を求める。この最小公倍数が周期pとなる。
【0142】このようなリセット機能を具体的に適用し
た回路構成例を図16〜図18に示す。
【0143】図16は、図7に示したアドレス生成回路
11にリセット機能を設けた回路例である。この場合、
インタリーブブロックの開始位置を示すパルスを1周期
分カウントする周期カウンタ110を設ける。そして、
この周期カウンタ110から出力されるパルスを、フラ
グD生成回路22に供給する。フラグD生成回路22
は、周期カウンタ110からパルスが供給されると、フ
ラグDを1とする。このように動作することによって、
1周期毎に、第2のセレクタ29がインデックスカウン
タ24から出力されたインデックス値iがそのまま論理
アドレスとして出力される。インデックス値iがそのま
ま論理アドレスとして出力されることによって、各回路
に以後起動時と同様の動作を行わせることができる。
【0144】図17は、図10に示した第1の変形例の
アドレス生成回路80にリセット機能を設けた回路例で
ある。
【0145】この場合も同様に、インタリーブブロック
の開始位置を示すパルスを1周期分カウントする周期カ
ウンタ110を設ける。そして、この周期カウンタ11
0から出力されるパルスを、フラグD生成回路22に供
給する。フラグD生成回路22は、周期カウンタ110
からパルスが供給されると、フラグDを1とする。この
ようにすることによって、1周期毎に、第2のセレクタ
29がインデックスカウンタ24から出力されたインデ
ックス値iがそのまま論理アドレスとして出力される。
インデックス値iがそのまま論理アドレスとして出力さ
れることによって、各回路に以後起動時と同様の動作を
行わせることができる。
【0146】図18は、図13に示した第2の変形例の
アドレス生成回路90にリセット機能を設けた回路例で
ある。
【0147】この場合、インタリーブブロックの開始位
置を示すパルスを1周期分カウントする周期カウンタ1
10を設ける。そして、この周期カウンタ110からパ
ルスが出力されたタイミングで、ベアドレスレジスタ9
2及びオフセットレジスタ93を以下のように制御す
る。
【0148】 このようにすることによって、1周期毎に、第2のセレ
クタ29がインデックスカウンタ24から出力されたイ
ンデックス値iがそのまま論理アドレスとして出力され
る。インデックス値iがそのまま論理アドレスとして出
力されることによって、各回路に以後起動時と同様の動
作を行わせることができる。
【0149】
【発明の効果】本発明にかかるインタリーブ装置及びイ
ンタリーブ方法では、k−1番目以前のインタリーブブ
ロックのi番目に配置されたデータが格納されていたア
ドレスに基づき、k番目のインタリーブブロックのi番
目に読み出されるデータのアドレスを算出し、算出した
このアドレスからk番目に出力されるインタリーブブロ
ックのi番目のデータを読み出すとともに、k+1番目
に入力されるインタリーブブロックのi番目のデータを
算出した上記アドレスに書き込む。
【0150】このことにより本発明では、インタリーブ
を行う際に用いられるインタリーブメモリを削減するこ
とができる。
【図面の簡単な説明】
【図1】ブロックインタリーバにおけるインタリーブ規
則について説明をする図である。
【図2】m×n個のデータが格納可能なインタリーブメ
モリに付けられた論理アドレスについて説明をするため
の図である
【図3】1つの論理アドレスに対して、データの読み出
し及び書き込みを同時に行うことを説明するための図で
ある。
【図4】2×3のブロックインタリーブを行うインタリ
ーバの動作を説明するための図である
【図5】上記2×3のブロックインタリーブを行ったと
きに用いられるアドレスを示す図である。
【図6】インタリーバの構成図である。
【図7】アドレス生成回路の構成図である。
【図8】f-1(i)発生回路の構成図である。
【図9】アドレス生成回路の動作を示すタイミングチャ
ートである。。
【図10】第1の変形例のアドレス生成回路の構成図で
ある。
【図11】f(i)発生回路の構成図である。
【図12】上記第1の変形例のアドレス生成回路の動作
を示すタイミングチャートである。
【図13】第2の変形例のアドレス生成回路の構成図で
ある。
【図14】g(i)発生回路の構成図である。
【図15】上記第2の変形例のアドレス生成回路の動作
を示すタイミングチャートである。
【図16】図7で示したアドレス生成回路にリセット機
能を設けた第3の変形例のアドレス生成回路の構成図で
ある。
【図17】図10で示した第1の変形例のアドレス生成
回路にリセット機能を設けた第3の変形例のアドレス生
成回路の構成図である。
【図18】図10で示した第1の変形例のアドレス生成
回路にリセット機能を設けた第3の変形例のアドレス生
成回路の構成図である。
【図19】連接符号について説明するための概念図であ
る。
【図20】デジタル衛星放送で用いられるエラー訂正処
理を説明するための図である。
【図21】デジタル衛星放送で用いられるインタリーバ
について説明するための図である。
【図22】インタリーバによるバースエラーの分散につ
いて説明するための図である。
【図23】インタリーブメモリに対するアクセス順序に
ついて説明をするための図である。
【図24】2×3のブロックを用いるインタリーバのイ
ンタリーブメモリに対するアクセス順序について説明を
するための図である。
【図25】ダブルバッファ方式のインタリーバの構成図
である。
【符号の説明】
1 インタリーバ、11,80,90 アドレス生成回
路、12 入力バッファ、13 ダミーデータセレク
タ、14 インタリーブメモリ
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B001 AB02 AC05 AD06 AE04 5J065 AA03 AB01 AC02 AE06 AF03 AG06 AH02 AH03 AH04 AH06 AH17 5K014 AA01 BA00 FA16 GA02

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 m×n個のデータからなるインタリーブ
    ブロック単位でブロックインタリーブを行うインタリー
    ブ装置において、 0〜(m×n−1)までの論理アドレスが設定され、1
    インタリーブブロック分のデータを格納可能なインタリ
    ーブメモリと、 入力されたデータを上記インタリーブメモリに書き込
    み、上記インタリーブメモリに書き込まれているデータ
    を所定のインタリーブ規則に従い読み出すメモリ制御部
    とを備え、 上記メモリ制御部は、 k番目のインタリーブブロックのi番目に出力されるデ
    ータの論理アドレスを関数fk(i)=f(f
    k-1(i))に基づき算出し、この論理アドレスと同一の
    アドレスにk+1番目のインタリーブブロックのi番目
    に入力されるデータを書き込むことを特徴とするインタ
    リーブ装置。ここで、f(i)=n×(i%m)+(i
    /m)とし、このf(i)に対してf k(i)は以下の
    ような関係を有する。 f2(i)=f(f(i)) f3(i)=f(f2(i)) f4(i)=f(f3(i)) ・ ・ ・ fk-1(i)=f(fk-2(i)) fk(i)=f(fk-1(i)) また、m,nは、1以上の整数であり、(x%y)とは
    xをyで割った余りを表し、(x/y)とは、xをyで
    割った商の整数部分を表す。
  2. 【請求項2】 上記メモリ制御部は、 f(i)を演算するf(i)発生回路と、 0〜(m×n−1)までのテーブルアドレスが設定さ
    れ、上記テーブルアドレス順に配列{fk-1(i)}を
    格納する第1のテーブルと、 0〜(m×n−1)までのテーブルアドレスが設定さ
    れ、上記テーブルアドレス順に配列{fk(i)}を格
    納する第2のテーブルとを有し、 fk-1(f(i))を演算することにより、k番目のイ
    ンタリーブブロックのi番目に出力されるデータの論理
    アドレスであるfk(i)を算出することを特徴とする
    請求項1記載のインタリーブ装置。
  3. 【請求項3】 上記メモリ制御部は、 f(i)を演算するf(i)発生回路と、 0〜(m×n−1)までのテーブルアドレスが設定さ
    れ、上記テーブルアドレス順に配列{fk-1(i)}を
    格納する第3のテーブルとを有し、 f(fk-1(i))を演算することにより、k番目のイ
    ンタリーブブロックのi番目に出力されるデータの論理
    アドレスであるfk(i)を算出することを特徴とする
    請求項1記載のインタリーブ装置。
  4. 【請求項4】 上記メモリ制御部は、 f(i)を演算するf(i)発生回路と、 g(i)=i%(m・n)+i/(m・n)を算出する
    g(i)発生回路と、 fk(i−1)を格納する第1のレジスタと、 fk(1)を格納する第2のレジスタとを有し、 g(fk(i−1)+fk(1))を演算することによ
    り、k番目のインタリーブブロックのi番目に出力され
    るデータの論理アドレスであるfk(i)を算出するこ
    とを特徴とする請求項1記載のインタリーブ装置。
  5. 【請求項5】 1番目のインタリーブブロックのi番目
    にインタリーブメモリに入力される論理アドレスの初期
    値を設定しておくことを特徴とする請求項1記載のイン
    タリーブ装置。
  6. 【請求項6】 1番目のインタリーブブロックのi番目
    にインタリーブメモリに入力される論理アドレスをiと
    することを特徴とする請求項5記載のインタリーブ装
    置。
  7. 【請求項7】 一定数のインタリーブブロック毎に、論
    理アドレスを上記初期値にリセットすることを特徴とす
    る請求項5記載のインタリーブ装置。
  8. 【請求項8】 m×n個のデータからなるインタリーブ
    ブロック単位でブロックインタリーブを行うインタリー
    ブ方法において、 上記インタリーブメモリには、0〜(m×n−1)まで
    の論理アドレスが設定され、 入力されたデータをインタリーブメモリに書き込み、こ
    のインタリーブメモリに書き込まれているデータを所定
    のインタリーブ規則に従い読み出すときに、 k番目のインタリーブブロックのi番目に出力されるデ
    ータの論理アドレスを関数fk(i)=f(f
    k-1(i))に基づき算出し、この論理アドレスと同一の
    アドレスにk+1番目のインタリーブブロックのi番目
    に入力されるデータを書き込むことを特徴とするインタ
    リーブ方法。ここで、f(i)=n×(i%m)+(i
    /m)とし、このf(i)に対してf k(i)は以下の
    ような関係を有する。 f2(i)=f(f(i)) f3(i)=f(f2(i)) f4(i)=f(f3(i)) ・ ・ ・ fk-1(i)=f(fk-2(i)) fk(i)=f(fk-1(i)) また、m,nは、1以上の整数であり、(x%y)とは
    xをyで割った余りを表し、(x/y)とは、xをyで
    割った商の整数部分を表す。
  9. 【請求項9】 fk-1(f(i))を演算することによ
    り、k番目のインタリーブブロックのi番目に出力され
    るデータの論理アドレスであるfk(i)を算出するこ
    とを特徴とする請求項8記載のインタリーブ方法。
  10. 【請求項10】 f(fk-1(i))を演算することに
    より、k番目のインタリーブブロックのi番目に出力さ
    れるデータの論理アドレスであるfk(i)を算出する
    ことを特徴とする請求項8記載のインタリーブ方法。
  11. 【請求項11】 g(fk(i−1)+fk(1))を演
    算することにより、k番目のインタリーブブロックのi
    番目に出力されるデータの論理アドレスであるf
    k(i)を算出することを特徴とする請求項8記載のイ
    ンタリーブ方法。
  12. 【請求項12】 1番目のインタリーブブロックのi番
    目にインタリーブメモリに入力されるデータ対する論理
    アドレスの初期値を設定しておくことを特徴とする請求
    項8記載のインタリーブ方法。
  13. 【請求項13】 1番目のインタリーブブロックのi番
    目にインタリーブメモリに入力される論理アドレスをi
    とすることを特徴とする請求項12記載のインタリーブ
    方法。
  14. 【請求項14】 一定数のインタリーブブロック毎に、
    論理アドレスを上記初期値にリセットすることを特徴と
    する請求項12記載のインタリーブ方法。
JP2000149121A 2000-05-19 2000-05-19 インタリーブ装置及びインタリーブ方法 Withdrawn JP2001332980A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000149121A JP2001332980A (ja) 2000-05-19 2000-05-19 インタリーブ装置及びインタリーブ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000149121A JP2001332980A (ja) 2000-05-19 2000-05-19 インタリーブ装置及びインタリーブ方法

Publications (1)

Publication Number Publication Date
JP2001332980A true JP2001332980A (ja) 2001-11-30

Family

ID=18655027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000149121A Withdrawn JP2001332980A (ja) 2000-05-19 2000-05-19 インタリーブ装置及びインタリーブ方法

Country Status (1)

Country Link
JP (1) JP2001332980A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006180092A (ja) * 2004-12-21 2006-07-06 Matsushita Electric Ind Co Ltd インタリーブ装置およびインタリーブ方法
US7200792B2 (en) 2001-12-21 2007-04-03 Samsung Electronics Co., Ltd. Interleaving apparatus and method for symbol mapping in an HSDPA mobile communication system
KR100762134B1 (ko) 2004-10-07 2007-10-02 엘지전자 주식회사 블록 인터리빙을 위한 읽기 주소 발생 방법
KR100764011B1 (ko) 2005-12-10 2007-10-08 한국전자통신연구원 인터리빙 및 디인터리빙을 수행하는 저장 장치 및 그의제어 방법
WO2011001863A1 (ja) * 2009-06-30 2011-01-06 ソニー株式会社 データ処理装置、データ処理方法、及び、プログラム
JP2015159582A (ja) * 2001-12-14 2015-09-03 クゥアルコム・インコーポレイテッドQualcomm Incorporated データビットを並列に符号化する方法および装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015159582A (ja) * 2001-12-14 2015-09-03 クゥアルコム・インコーポレイテッドQualcomm Incorporated データビットを並列に符号化する方法および装置
US7200792B2 (en) 2001-12-21 2007-04-03 Samsung Electronics Co., Ltd. Interleaving apparatus and method for symbol mapping in an HSDPA mobile communication system
KR100762134B1 (ko) 2004-10-07 2007-10-02 엘지전자 주식회사 블록 인터리빙을 위한 읽기 주소 발생 방법
JP2006180092A (ja) * 2004-12-21 2006-07-06 Matsushita Electric Ind Co Ltd インタリーブ装置およびインタリーブ方法
JP4624095B2 (ja) * 2004-12-21 2011-02-02 パナソニック株式会社 インタリーブ装置およびインタリーブ方法
US7969957B2 (en) 2004-12-21 2011-06-28 Panasonic Corporation Interleave apparatus and interleave method
KR100764011B1 (ko) 2005-12-10 2007-10-08 한국전자통신연구원 인터리빙 및 디인터리빙을 수행하는 저장 장치 및 그의제어 방법
WO2011001863A1 (ja) * 2009-06-30 2011-01-06 ソニー株式会社 データ処理装置、データ処理方法、及び、プログラム
US8938002B2 (en) 2009-06-30 2015-01-20 Sony Corporation Data processing apparatus, data processing method, and program

Similar Documents

Publication Publication Date Title
GB2369215A (en) Memory device and Reed Solomon decoder including the memory device
US6049903A (en) Digital data error detection and correction system
JP3064338B2 (ja) データ単位群のバッファ装置
US5978883A (en) Block interleaving and deinterleaving method and device therefor
WO2011024033A1 (en) Encoding module, apparatus and method for determining a position of a data bit within an interleaved data stream
JP2004510380A (ja) 線形ブロック符号の符号化のための方法および装置
KR20030032304A (ko) 고속 파이프라인 리드-솔로몬 디코더에 적용하기 위한메모리 장치와 메모리 액세스 방법 및 그 메모리 장치를구비한 리드-솔로몬 디코더
US5257263A (en) Circuit for decoding convolutional codes for executing the survivor path storage and reverse scanning stage of a Viterbi algorithm
US5712880A (en) Traceback-performing apparatus in viterbi decoder
JP2001332980A (ja) インタリーブ装置及びインタリーブ方法
WO2010053152A1 (ja) 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置
KR100215566B1 (ko) 정적 램을 이용한 길쌈 인터리버/디인터리버 및정적 램의 주소 생성 방법
US6385258B1 (en) Viterbi decoder for use in a mobile communication system
JPH09261081A (ja) デパンクチャード回路
US6346896B1 (en) Decoding apparatus and method for deinterleaving data
EP0986182A2 (en) Encoding apparatus and method, decoding apparatus and method and providing medium
US6714606B1 (en) Integrated services digital broadcasting deinterleaver architecture
JPH0656695B2 (ja) インタ−リ−ブ回路
KR0155516B1 (ko) 비터비 복호기에서 한개의 메모리를 사용한 상태 매트릭 메모리 운용방법 및 그 장치
JP3348069B2 (ja) ビタビ復号装置および方法
JP2827978B2 (ja) インターリーブ装置
JP3305152B2 (ja) データ伝送方法
KR0123088B1 (ko) 메모리를 이용한 길쌈 디인터리버
KR0183171B1 (ko) 인터리버 및 디인터리버와 그 방법
JP4487385B2 (ja) デジタル衛星放送受信装置、デインタリーブ方法及び逆エネルギー拡散処理方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070807