本発明は、ビタビ復号に係るパスメトリックの加算及び比較、及びパス選択を行うACS回路に関し、特に、メトリック差分に基づいてパス選択を行うACS回路に関する。
ビタビ復号は、ある特定の畳み込み演算によって符号化されたデータ系列を受信し、当該畳み込み演算の規則に基づいて、もっとも適当と思われるデータ系列を予測し、復号する技術である。畳み込み演算の規則は状態遷移図として記述することができる。さらに、この状態遷移図に時間概念を加味すると、トレリス線図を記述することができる。
図9は、ギガビットイーサネット(イーサネット:登録商標)で一般的に用いられる畳み込み符号化器の構成を示す。当該畳み込み符号化器は、入力した値を1クロック遅延させて出力する遅延素子101、102及び103と、加算器104及び105とを備えた、2ビット入力8ステートの畳み込み符号化器である。加算器104は、遅延素子101の出力と入力上位ビットとを加算する。遅延素子102は、加算器104の加算結果を入力する。加算器105は、遅延素子102の出力と入力下位ビットとを加算する。遅延素子103は、加算器105の加算結果を入力する。そして、遅延素子101は、遅延素子103の出力を入力する。これにより、遅延素子101〜103は、3ビットのステート、すなわち、8ステートを表す。
図10は、上記畳み込み符号化器に係るトレリス線図である。当該トレリス線図は、ステートS0,S1,S2,S3,S4,S5,S6,S7及びS8に関して、時刻(k−1)から時刻kへの遷移と、時刻kから時刻(k+1)の遷移とを示している。各ステート間を結ぶ線はブランチと呼ばれる。各ブランチは、あるステートとそのステートの遷移先のステートとを接続している。
ビタビ復号では、各ステートからの遷移の尤度、すなわち、確からしさを評価するために、各ブランチについて評価関数を用いて「ブランチメトリック」を計算する。通常、ブランチメトリックの計算は、理想値と実際に受信した値との二乗誤差で求められる。一方、復号を開始して以来、各ステートに関して、そのステートに至るブランチのうちのもっとも確からしいブランチのブランチメトリックを累積加算した値が記憶されている。これを「パスメトリック」という。ビタビ復号では、時刻(k−1)におけるパスメトリックと時刻kでのブランチメトリックとを加算した結果が最小となるブランチをもっとも確からしいブランチであると判断する。すなわち、ACS回路とは、もっとも確からしいブランチを決定するために、時刻(k−1)におけるパスメトリックと時刻kでのブランチメトリックとの加算を行い、その結果を比較し、もっとも確からしいブランチを選択するAdd−Compare−Select回路のことである。
各時刻で得られたもっとも確からしいブランチを連結したパスを「生き残りパス」と呼ぶ。トレリス線図中、各ステートはそれぞれの生き残りパスを持っているが、復号処理が進むにつれてすべてのステートが持つ生き残りパスは一つに収束する。このようにして得られた一つの生き残りパスがビタビ復号による最終的な復号結果となる。
従来のACS回路は、ブランチメトリックの算出に二乗計算を用いる。このため、回路が複雑化し、また、パスメトリックがブランチメトリックの累積であるためオーバーフローが発生するという問題があった。このうち、パスメトリックのオーバーフローを解消する対策として、パスメトリックの値を随時監視し、オーバーフローが発生しそうになった時点で各ステートのパスメトリック値から同じ値を減算するという手法が知られている。しかし、この手法では、通常のACS回路の処理の後に、さらにオーバーフローの判定及び減算処理が必要となるため、処理速度が低下するという問題がある。そこで、ブランチメトリックどうしの差である差分ブランチメトリック(以下、「DBM」と称する。)を用いて、ブランチメトリックの計算に係る二乗の項を消去して演算を容易化するとともに、パスメトリックどうしの差である差分パスメトリック(以下、「DPM」と称する。)を用いて、パスメトリックの計算に係るオーバーフローを回避するという手法が考案されている(例えば、特許文献1参照)。
上述したように、メトリック差分に基づいてパス選択を行う従来のACS回路については回路規模の増大が問題となる。ここで、2入力8ステートの畳み込み符号化器によって生成されたデータ系列を復号するACS回路について、DPMを用いる場合と用いない場合とで回路規模を比較してみる。前者は、8個のパスメトリックを保持するための保持回路、及び各パスメトリックと各ブランチメトリックとの加算を行う32個の加算器を必要とする。加算器の個数は、8個の各ステートに1時刻前の4個のステートからの4本のブランチが接続されることに基づいている。さらに、前者は、これ以外にオーバーフロー対策用の回路を必要とする。これに対し、後者は、28個のDPMを保持するための保持回路、及び各DPMと各DBMとの加算を行う400個の加算器を必要とする。加算器の個数は、28個の各DPMに16個のDBMが関連することに基づいている。なお、入力するDPMが“0”となる加算器の数(合計48個)は除いている。
このように、メトリック差分に基づいてパス選択を行う従来のACS回路については、処理速度は比較的速いが、回路規模が極端に大きくなってしまうという欠点がある。回路規模の増大は、消費電力増さらには製造コスト増の要因となるため好ましくない。
上記問題に鑑み、本発明は、ビタビ復号に用いられるACS回路について、回路規模の増大を極力抑制しつつ、ビタビ復号に係るパスメトリックのオーバーフロー対策を講じることを課題とする。
上記課題を解決するために本発明が講じた手段は、ビタビ復号に係る任意の二つのブランチ間の差分ブランチメトリック(DBM)を入力し、当該入力したDBMを任意の二つのステート間の差分パスメトリック(DPM)に加算し、当該加算後のDPMどうしを比較して最尤パスを選択するACS回路であって、前記DPMのうち、基準となるステートに係るパスメトリックと他のステートに係るパスメトリックとの間のDPMである基本DPMを保持し、当該基本DPMに基づいて最尤パスを選択するものとする。
これによると、すべてのDPMではなくその一部である基本DPMを保持すればよくなるため、DPMを保持するための回路の規模は比較的小さくて済む。また、当該ACS回路は、メトリック差分に基づいて最尤パスを選択するため、処理速度を低下させることなくパスメトリックのオーバーフローが解消される。
具体的には、上記のACS回路は、前記基本DPMを保持する基本DPM保持部と、前記基本DPMを算出する基本DPM演算部と、前記基本DPM演算部による基本DPMの算出に必要なDPMであって基本DPM以外のDPMである参照DPMを算出する参照DPM演算部と、前記DBMのうち、前記基本DPM演算部による基本DPMの算出に必要なDBMである基本DBMを算出する基本DBM演算部と、前記基本DPM保持部に保持された基本DPM、前記参照DPM演算部によって算出された参照DPM及び前記基本DBM演算部によって算出された基本DBMに基づいて、ビタビ復号に係る最尤パスを選択するパス選択部とを備えている。そして、前記基本DPM演算部は、前記基本DPM保持部に保持された基本DPM、前記参照DPM演算部によって算出された参照DPM、前記基本DBM演算部によって算出された基本DBM及び前記パス選択部による最尤パスの選択結果に基づいて、新たな基本DPMを算出するものとする。
これによると、DBMは、基本DPMの算出に必要なDBMである基本DBMのみを算出すればよくなる。また、DPMは、基本DPM以外に、基本DPMの算出に必要なDPMである参照DPMのみを算出すればよくなる。
好ましくは、前記基本DBM演算部による基本DBMの算出及び前記参照DPM演算部による参照DPMの算出は、並列処理されるものとする。
また、好ましくは、前記参照DPM演算部は、前記基本DPM保持部に保持された基本DPMのうちのいずれかから他を減算して参照DPMを算出するものとする。
そして、具体的には、前記基本DPM演算部は、前記パス選択部による最尤パスの選択結果に基づいて、前記基本DPM保持部に保持された基本DPM、前記参照DPM演算部によって算出された参照DPM及び前記基本DBM演算部によって算出された基本DBMの中から前記新たな基本DPMの算出の元となる基本DPM及び基本DBMを選択し、当該選択した基本DPM及び基本DBMを加算して前記新たな基本DPMを算出するものとする。
また、具体的には、前記基本DPM演算部は、前記基本DPM保持部に保持された基本DPM及び前記参照DPM演算部によって算出された参照DPMと、前記基本DBM演算部によって算出された基本DBMとをそれぞれ加算して、前記新たな基本DPMの候補を算出し、前記パス選択部による最尤パスの選択結果に基づいて、当該候補の中から前記新たな基本DPMを選択するものとする。
また、具体的には、前記パス選択部は、ビタビ復号における各ステートへの遷移に係るブランチに互いに異なるパス選択番号を割り当て、最尤パスの選択結果として、当該パス選択番号を示すパス選択信号を出力するものとする。
以上のように本発明によると、メトリック差分に基づいてパス選択を行うACS回路において、DPMを保持する回路の規模が小さくなる。また、必要最小限のDBM(基本DBM)及びDPM(基本DPM及び参照DPM)のみを算出すればよいため、ACS回路において備えるべき加算器などの演算器の個数が比較的少なくて済む。したがって、ACS回路全体としての回路規模が小さくなり、消費電力が低減するとともに、製造コストもまた低減する。
図1は、本発明の最良の実施形態に係るACS回路の構成図である。
図2は、基本DPM演算部の内部構成図である。
図3は、参照DPM演算部の内部構成図である。
図4は、パス選択部の内部構成図である。
図5は、パス選択部におけるSPN0出力部の内部構成図である。
図6は、基本DPMの生成規則を示した表である。
図7は、基本DPM演算部におけるDPM01演算部の内部構成図である。
図8は、基本DPM演算部におけるDPM01演算部の内部構成図である。
図9は、ギガビットイーサネット(イーサネット:登録商標)で一般的に用いられる畳み込み符号化器の構成図である。
図10は、図9の畳み込み符号化器に係るトレリス線図である。
符号の説明
11 基本DPM保持部
12 基本DPM演算部
13 参照DPM演算部
14 基本DBM演算部
15 パス選択部
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。なお、便宜上、図10のトレリス線図を前提としたビタビ復号を想定して説明する。なお、本発明は、当該トレリス線図を前提としたビタビ復号に限定されるものではない。
まず、以後の説明で使用する表記の説明を行う。ブランチメトリックはbijと表記し、これはステートSiからステートSjに遷移するブランチを意味する。例えば、b02はステートS0からステートS2に遷移するブランチである。また、DBMは差分ブランチメトリック全般を意味する。DPMijはステートSjに係るパスメトリックとステートSiに係るパスメトリックとの間のDPMを示す。例えば、ステートS0に係るパスメトリックをPM0、ステートS2に係るパスメトリックをPM2とした場合、
DPM02=PM2−PM0
となる。また、単にDPMと記述した場合は差分パスメトリック全般を意味する。
図1は、本発明の最良の実施形態に係るACS回路の構成を示す。本実施形態に係るACS回路は、基準となるステートに係るパスメトリックと他のステートに係るパスメトリックとの間の差分パスメトリックである基本DPMを保持する基本DPM保持部11と、基本DPMを算出する基本DPM演算部12と、基本DPMの算出に必要なDPMである参照DPMを算出する参照DPM演算部13と、基本DPMの算出に必要なDBMである基本DBMを算出する基本DBM演算部14と、ビタビ復号に係る最尤パスを選択するパス選択部15とを備えている。
基本DPM保持部11は、基本DPMとして、DPM01,DPM02,DPM03,DPM04,DPM05,DPM06及びDPM07を保持する。すなわち、基本DPM保持部11は、ステートS0を基準のステートとしたときの、当該基準ステートと他のステートとの間のDPMを基本DPMとして保持する。
基本DPM演算部12は、基本DPMを新たに算出し、基本DPM保持部11に出力する。図2は、基本DPM演算部12の内部構成を示す。基本DPM演算部12は、基本DBM演算部14によって算出された基本DBM、基本DPM保持部11に保持された基本DPM及び参照DPM演算部によって算出された参照DPMに基づいて、基本DPMの一つであるDPM01を算出するDPM01演算部121、DPM02を算出するDPM02演算部122、DPM03を算出するDPM03演算部123、DPM04を算出するDPM04演算部124、DPM05を算出するDPM05演算部125、DPM06を算出するDPM06演算部126及びDPM07を算出するDPM07演算部127を備えている。これら演算部の構成については後ほど詳細に説明する。
参照DPM演算部13は、基本DPM保持部11に保持された基本DPMから参照DPMを算出する。図3は、参照DPM演算部13の内部構成を示す。参照DPM演算部13は、参照DPMの一つであるDPM12を算出するDPM12演算部301、DPM14を算出するDPM14演算部302、DPM16を算出するDPM16演算部303、DPM23を算出するDPM23演算部304、DPM24を算出するDPM24演算部305、DPM25を算出するDPM25演算部306、DPM26を算出するDPM26演算部307、DPM27を算出するDPM27演算部308、DPM34を算出するDPM34演算部309、DPM36を算出するDPM36演算部310、DPM45を算出するDPM45演算部311、DPM46を算出するDPM46演算部312、DPM47を算出するDPM47演算部313、DPM56を算出するDPM56演算部314及びDPM67を算出するDPM67演算部315を備えている。ここで、参照DPMは、基本DPMどうしの差分として得られる。すなわち、参照DPMであるDPMijは、
DPMij=DPM0j−DPM0i
として表される。すなわち、参照DPMは、特に複雑な計算を行うことなく算出することができる。なお、基本DPMの算出に必要な参照DPMについては後ほど詳細に説明する。
基本DBM演算部14は、畳み込み符号化されたデータ系列を受信し、特定の組み合わせのブランチメトリックどうしの差分を出力する。一般に、ブランチメトリックは入力データと理想値との間の二乗誤差である。すなわち、Dを入力データ、Yijを理想値とすると、ブランチメトリックは、
bij=(D−Yij)2
となる。これに対し、DBMは、
DBM=bij−bkl=(D−Yij)2−(D−Ykl)2=(Ykl−Yij)(−Ykl−Yij+2・D)
となる。すなわち、DBMを用いることによって、ブランチメトリックの計算式に現れる二乗の項が消去される。ここで、Ykl及びYijは定数であるため、C0及びC1を固定値として、
DBM=C0+C1・D
となる。このように、基本DBM演算部14は、入力データに対して乗算及び加算をそれぞれ1回行って基本DBMを算出するため、比較的簡単な回路構成で実現される。なお、基本DPMの算出に必要な基本DBMについては後ほど詳細に説明する。
パス選択部15は、基本DBM、基本DPM及び参照DPMを入力し、各ステートについてもっとも確からしいブランチがいずれであるかを示すパス選択信号を出力する。図4は、パス選択部15の内部構成を示す。パス選択部15は、パス選択信号出力部として、ステートS0に対応するパス選択信号SPN0を出力するSPN0出力部150、ステートS1に対応するパス選択信号SPN1を出力するSPN1出力部151、ステートS2に対応するパス選択信号SPN2を出力するSPN2出力部152、ステートS3に対応するパス選択信号SPN3を出力するSPN3出力部153、ステートS4に対応するパス選択信号SPN4を出力するSPN4出力部154、ステートS5に対応するパス選択信号SPN5を出力するSPN0出力部155、ステートS6に対応するパス選択信号SPN6を出力するSPN0出力部156及びステートS7に対応するパス選択信号SPN7を出力するSPN7出力部157を備えている。図10のトレリス線図では、8個の各ステートに1時刻前の4個のステートからの計4本のブランチが接続されている。パス選択部15は、各ステートについて、当該ステートに接続された4本のブランチの中からもっとも確からしいものを選択し、当該選択したブランチを示すパス選択信号を出力する。以下、パス選択信号出力部の例として、SPN0出力部150について説明する。なお、これ以外のパス選択信号出力部についてもSPN0出力部150と同様に構成される。
図5は、SPN0出力部150の内部構成を示す。SPN0出力部150は、ステートS0への遷移に係る4本のブランチに、遷移元のステート番号の昇順に2ビットのパス選択番号を割り当て、このパス選択番号をステートS0に対応するパス選択信号SPN0として出力する。具体的には、パス選択番号は、選択ブランチがb00のとき“0”、選択ブランチがb20のとき“1”、選択ブランチがb40のとき“3”、そして、選択ブランチがb60のとき“3”である。
加算器51は、基本DPMであるDPM02と基本DBMである(b20−b00)とを加算する。すなわち、加算器51は、パス選択番号が“1”のブランチが選択された場合のパスメトリックから、パス選択番号が“0”のブランチが選択された場合のパスメトリックを引いた結果を出力する。符号判定器52は、加算器51の加算結果を入力し、当該結果が負の場合は“1”、それ以外の場合は“0”となる信号sig1を出力する。同様に、加算器53は、パス選択番号が“3”のブランチが選択された場合のパスメトリックから、パス選択番号が“2”のブランチが選択された場合のパスメトリックを引いた結果を出力する。符号判定器54は、加算器53の加算結果を入力し、当該結果が負の場合は“1”、それ以外の場合は“0”となる信号sig2を出力する。
セレクタ55は、信号sig1及びsig2のいずれもが“0”の場合、パス選択番号が“2”のブランチのブランチメトリックからパス選択番号が“0”のブランチのブランチメトリックを引いた結果を出力し、信号sig1が“0”かつ信号sig2が“1”の場合、パス選択番号が“3”のブランチのブランチメトリックからパス選択番号が“0”のブランチのブランチメトリックを引いた結果を出力し、信号sig1が“1”かつ信号sig2が“0”の場合、パス選択番号が“3”のブランチのブランチメトリックからパス選択番号が“1”のブランチのブランチメトリックを引いた結果を出力し、そして、信号sig1及びsig2のいずれもが“1”の場合、パス選択番号が“3”のブランチのブランチメトリックからパス選択番号が“1”のブランチのブランチメトリックを引いた結果を出力する。
セレクタ56は、信号sig1及びsig2のいずれもが“0”の場合、パス選択番号が“2”のブランチの始点であるステートS4のパスメトリックからパス選択番号が“0”のブランチの始点であるステートS0のパスメトリックを引いたDPM(基本DPM04)を出力し、信号sig1が“0”かつ信号sig2が“1”の場合、パス選択番号が“3”のブランチの始点であるステートS6のパスメトリックからパス選択番号が“0”のブランチの始点であるステートS0のパスメトリックを引いたDPM(基本DPM06)を出力し、信号sig1が“1”かつ信号sig2が“0”の場合、パス選択番号が“2”のブランチの始点であるステートS4のパスメトリックからパス選択番号が“1”のブランチの始点であるステートS2のパスメトリックを引いたDPM(参照DPM24)を出力し、信号sig1及びsig2のいずれもが“1”の場合、パス選択番号が“3”のブランチの始点であるステートS6のパスメトリックからパス選択番号が“1”のブランチの始点であるステートS2のパスメトリックを引いたDPM(参照DPM26)を出力する。
加算器57は、セレクタ55からの出力とセレクタ56からの出力を加算する。符号判定器58は、加算器57の加算結果を入力し、当該結果が負の場合は“1”、それ以外の場合は“0”となる信号sig3を出力する。セレクタ69は、信号sig3が“0”の場合、信号sig1を出力し、信号sig3が“1”の場合、信号sig2を出力する。そして、セレクタ59からの出力がパス選択信号SPN0の下位ビット(SPN0[0])となり、信号sig3が上位ビット(SPN0[1])となる。
なお、本実施形態では、各ステートに接続されたブランチに、遷移元のステート番号の昇順にパス選択番号を割り当てているが、パス選択信号は必ずしも当該規則に従って生成しなくてもよい。
次に、基本DPM演算部12における、各基本DPMを算出するDPM0m(mは1から7までの整数)演算部の例として、PDM01演算部121について説明する。なお、これ以外のDPM0m演算部についてもDPM01演算部と同様に構成される。
まず、DPM01演算部121の具体的な構成を説明する前に、DPM01の生成について説明する。図6は、時刻kにおける各種基本DPMの生成規則を示す。このうち、図6(a)は、時刻kにおけるDPM01の生成規則を示す。時刻kにおけるDPM01であるDPM01(k)は、パス選択信号SPN0及びSPN1によって選択されるDBM及びDPM(k−1)の和として算出される。例えば、パス選択信号SPN0及びSPN1が、それぞれ、“0”及び“1”の場合、
DPM01(k)=(b21−b00)+DPM02(k−1)
となる。なお、DPM(k−1)は、時刻kの1時刻前である時刻(k−1)におけるDPMを表す。DPM01以外の基本DPMであるDPM02、DPM03、DPM04、DPM05、DPM06及びDPM07は、それぞれ、図6(b)、(c)、(d)、(e)、(f)及び(g)に示した規則に従って生成される。
すでに述べたように、本実施形態に係るACS回路が保持するDPMは7個の基本DPMのみである。しかし、図6に示した生成規則によると、基本DPMの算出に、基本DPM以外のDPMが必要となる。そして、基本DPM以外のDPMを算出するのが、参照DPM演算部13である。参照DPMは、基本DPMどうしの差分として容易に算出されることはすでに述べたとおりである。しかも、基本DPMの算出に必要となる参照DPMは、当該基本DPM算出の1時刻前のものでよい。すなわち、新たな基本DPMの算出には、基本DBM演算部14によって算出された基本DBMと、基本DPM保持部11に保持された1時刻前の基本DPMと、参照DPM演算部13によって1時刻前の基本DPMどうしの差分として得られる参照DPMとを用いればよい。
参照DPMとして、基本DPM以外のすべてのDPMを算出する必要はない。図10のトレリス線図の場合、全部で28個あるDPMのうち基本DPMが7個であり、残りの21個のDPMが参照DPMとなり得る。このうち、実際に必要な参照DPMは、図3に示した15個である。したがって、残り6個のDPMについては、算出する必要がない。また、DBMは、基本DPMの算出に必要なものだけ、すなわち、基本DBMのみを算出すればよい。
次に、DPM01演算部121の具体的な構成について説明する。図7は、DPM01演算部121の内部構成を示す。当該DPM01演算部121は、図6に示した生成規則に従って、DPM01の候補となり得る値をすべて算出しておき、パス選択信号SPN0及びSPN1に基づいて当該算出結果からいずれか一つを選択し、出力する。図8は、図7とは異なる構成のDPM01演算部121の内部構成を示す。当該DPM01演算部121は、パス選択信号SPN0及びSPN1に基づいてDPM01の算出に必要なDBM及びDPMを選択し、当該選択したDBMとDPMとを加算し、出力する。
以上、本実施形態によると、基本DPMのみを保持すればよいため、保持回路の規模は従来よりも小さくなる。さらに、DPMについては、基本DPM及び参照DPMのみを算出すればよいため、DPM算出に必要な加算器の個数は従来よりも少なくなる。具体的には、図10のトレリス線図の場合、従来のACS回路では、28個のDPMを保持する必要があるのに対して、本実施形態に係るACS回路では、7個のDPM(基本DPM)を保持するだけでよい。また、従来のACS回路では、DPMの算出に400個の加算器が必要となるが、本実施形態に係るACS回路で必要となる加算器(減算器を含む)の個数は、基本DPMの算出用の100個の加算器と参照DPMの算出用の15個の減算器とを合わせた115個である。さらに、図8に示したDPM0m演算部を採用することによって、加算器の個数は25個にまで低減する。
なお、従来のACS回路と比較して、本実施形態に係るACS回路は、基本DPMを算出してから参照DPMを算出するため、参照DPMを算出する分だけ処理時間が長くなると想像されるかもしれない。しかし、時刻kにおける基本DPM(k)及び参照DPM(k)が実際に必要となるのは、時刻(k+1)における新たな基本DPMの算出のときであるから、時刻(k+1)における基本DBMの算出と同時に時刻kにおける参照DPMを演算すればよい。すなわち、基本DBM演算部14と参照DPM演算部13とを並列に動作させればよい。このようにすることで、参照DPM算出に伴って処理時間が増加することがない。
また、上記説明ではステートS0を基準のステートとして説明したが、これ以外のステートを基準としてもよいことは言うまでもない。
以上のように、本発明に係るACS回路は、比較的小さな回路規模及び比較的高速な処理速度で、ビタビ復号に係るパスメトリックのオーバーフロー対策を講じることができ、通信、光ディスク、磁気ディスクのリードチャネルシステムにおける誤り訂正技術に適用するものとして有用である。
本発明は、ビタビ復号に係るパスメトリックの加算及び比較、及びパス選択を行うACS回路に関し、特に、メトリック差分に基づいてパス選択を行うACS回路に関する。
ビタビ復号は、ある特定の畳み込み演算によって符号化されたデータ系列を受信し、当該畳み込み演算の規則に基づいて、もっとも適当と思われるデータ系列を予測し、復号する技術である。畳み込み演算の規則は状態遷移図として記述することができる。さらに、この状態遷移図に時間概念を加味すると、トレリス線図を記述することができる。
図9は、ギガビットイーサネット(イーサネット:登録商標)で一般的に用いられる畳み込み符号化器の構成を示す。当該畳み込み符号化器は、入力した値を1クロック遅延させて出力する遅延素子101、102及び103と、加算器104及び105とを備えた、2ビット入力8ステートの畳み込み符号化器である。加算器104は、遅延素子101の出力と入力上位ビットとを加算する。遅延素子102は、加算器104の加算結果を入力する。加算器105は、遅延素子102の出力と入力下位ビットとを加算する。遅延素子103は、加算器105の加算結果を入力する。そして、遅延素子101は、遅延素子103の出力を入力する。これにより、遅延素子101〜103は、3ビットのステート、すなわち、8ステートを表す。
図10は、上記畳み込み符号化器に係るトレリス線図である。当該トレリス線図は、ステートS0,S1,S2,S3,S4,S5,S6及びS7に関して、時刻(k−1)から時刻kへの遷移と、時刻kから時刻(k+1)の遷移とを示している。各ステート間を結ぶ線はブランチと呼ばれる。各ブランチは、あるステートとそのステートの遷移先のステートとを接続している。
ビタビ復号では、各ステートからの遷移の尤度、すなわち、確からしさを評価するために、各ブランチについて評価関数を用いて「ブランチメトリック」を計算する。通常、ブランチメトリックの計算は、理想値と実際に受信した値との二乗誤差で求められる。一方、復号を開始して以来、各ステートに関して、そのステートに至るブランチのうちのもっとも確からしいブランチのブランチメトリックを累積加算した値が記憶されている。これを「パスメトリック」という。ビタビ復号では、時刻(k−1)におけるパスメトリックと時刻kでのブランチメトリックとを加算した結果が最小となるブランチをもっとも確からしいブランチであると判断する。すなわち、ACS回路とは、もっとも確からしいブランチを決定するために、時刻(k−1)におけるパスメトリックと時刻kでのブランチメトリックとの加算を行い、その結果を比較し、もっとも確からしいブランチを選択するAdd−Compare−Select回路のことである。
各時刻で得られたもっとも確からしいブランチを連結したパスを「生き残りパス」と呼ぶ。トレリス線図中、各ステートはそれぞれの生き残りパスを持っているが、復号処理が進むにつれてすべてのステートが持つ生き残りパスは一つに収束する。このようにして得られた一つの生き残りパスがビタビ復号による最終的な復号結果となる。
従来のACS回路は、ブランチメトリックの算出に二乗計算を用いる。このため、回路が複雑化し、また、パスメトリックがブランチメトリックの累積であるためオーバーフローが発生するという問題があった。このうち、パスメトリックのオーバーフローを解消する対策として、パスメトリックの値を随時監視し、オーバーフローが発生しそうになった時点で各ステートのパスメトリック値から同じ値を減算するという手法が知られている。しかし、この手法では、通常のACS回路の処理の後に、さらにオーバーフローの判定及び減算処理が必要となるため、処理速度が低下するという問題がある。そこで、ブランチメトリックどうしの差である差分ブランチメトリック(以下、「DBM」と称する。)を用いて、ブランチメトリックの計算に係る二乗の項を消去して演算を容易化するとともに、パスメトリックどうしの差である差分パスメトリック(以下、「DPM」と称する。)を用いて、パスメトリックの計算に係るオーバーフローを回避するという手法が考案されている(例えば、特許文献1参照)。
上述したように、メトリック差分に基づいてパス選択を行う従来のACS回路については回路規模の増大が問題となる。ここで、2入力8ステートの畳み込み符号化器によって生成されたデータ系列を復号するACS回路について、DPMを用いる場合と用いない場合とで回路規模を比較してみる。前者は、8個のパスメトリックを保持するための保持回路、及び各パスメトリックと各ブランチメトリックとの加算を行う32個の加算器を必要とする。加算器の個数は、8個の各ステートに1時刻前の4個のステートからの4本のブランチが接続されることに基づいている。さらに、前者は、これ以外にオーバーフロー対策用の回路を必要とする。これに対し、後者は、28個のDPMを保持するための保持回路、及び各DPMと各DBMとの加算を行う400個の加算器を必要とする。加算器の個数は、28個の各DPMに16個のDBMが関連することに基づいている。なお、入力するDPMが“0”となる加算器の数(合計48個)は除いている。
このように、メトリック差分に基づいてパス選択を行う従来のACS回路については、処理速度は比較的速いが、回路規模が極端に大きくなってしまうという欠点がある。回路規模の増大は、消費電力増さらには製造コスト増の要因となるため好ましくない。
上記問題に鑑み、本発明は、ビタビ復号に用いられるACS回路について、回路規模の増大を極力抑制しつつ、ビタビ復号に係るパスメトリックのオーバーフロー対策を講じることを課題とする。
上記課題を解決するために本発明が講じた手段は、ビタビ復号に係る任意の二つのブランチ間の差分ブランチメトリック(DBM)を入力し、当該入力したDBMを任意の二つのステート間の差分パスメトリック(DPM)に加算し、当該加算後のDPMどうしを比較して最尤パスを選択するACS回路であって、前記DPMのうち、基準となるステートに係るパスメトリックと他のステートに係るパスメトリックとの間のDPMである基本DPMを保持し、当該基本DPMに基づいて最尤パスを選択するものとする。
これによると、すべてのDPMではなくその一部である基本DPMを保持すればよくなるため、DPMを保持するための回路の規模は比較的小さくて済む。また、当該ACS回路は、メトリック差分に基づいて最尤パスを選択するため、処理速度を低下させることなくパスメトリックのオーバーフローが解消される。
具体的には、上記のACS回路は、前記基本DPMを保持する基本DPM保持部と、前記基本DPMを算出する基本DPM演算部と、前記基本DPM演算部による基本DPMの算出に必要なDPMであって基本DPM以外のDPMである参照DPMを算出する参照DPM演算部と、前記DBMのうち、前記基本DPM演算部による基本DPMの算出に必要なDBMである基本DBMを算出する基本DBM演算部と、前記基本DPM保持部に保持された基本DPM、前記参照DPM演算部によって算出された参照DPM及び前記基本DBM演算部によって算出された基本DBMに基づいて、ビタビ復号に係る最尤パスを選択するパス選択部とを備えている。そして、前記基本DPM演算部は、前記基本DPM保持部に保持された基本DPM、前記参照DPM演算部によって算出された参照DPM、前記基本DBM演算部によって算出された基本DBM及び前記パス選択部による最尤パスの選択結果に基づいて、新たな基本DPMを算出するものとする。
これによると、DBMは、基本DPMの算出に必要なDBMである基本DBMのみを算出すればよくなる。また、DPMは、基本DPM以外に、基本DPMの算出に必要なDPMである参照DPMのみを算出すればよくなる。
好ましくは、前記基本DBM演算部による基本DBMの算出及び前記参照DPM演算部による参照DPMの算出は、並列処理されるものとする。
また、好ましくは、前記参照DPM演算部は、前記基本DPM保持部に保持された基本DPMのうちのいずれかから他を減算して参照DPMを算出するものとする。
そして、具体的には、前記基本DPM演算部は、前記パス選択部による最尤パスの選択結果に基づいて、前記基本DPM保持部に保持された基本DPM、前記参照DPM演算部によって算出された参照DPM及び前記基本DBM演算部によって算出された基本DBMの中から前記新たな基本DPMの算出の元となる基本DPM及び基本DBMを選択し、当該選択した基本DPM及び基本DBMを加算して前記新たな基本DPMを算出するものとする。
また、具体的には、前記基本DPM演算部は、前記基本DPM保持部に保持された基本DPM及び前記参照DPM演算部によって算出された参照DPMと、前記基本DBM演算部によって算出された基本DBMとをそれぞれ加算して、前記新たな基本DPMの候補を算出し、前記パス選択部による最尤パスの選択結果に基づいて、当該候補の中から前記新たな基本DPMを選択するものとする。
また、具体的には、前記パス選択部は、ビタビ復号における各ステートへの遷移に係るブランチに互いに異なるパス選択番号を割り当て、最尤パスの選択結果として、当該パス選択番号を示すパス選択信号を出力するものとする。
以上のように本発明によると、メトリック差分に基づいてパス選択を行うACS回路において、DPMを保持する回路の規模が小さくなる。また、必要最小限のDBM(基本DBM)及びDPM(基本DPM及び参照DPM)のみを算出すればよいため、ACS回路において備えるべき加算器などの演算器の個数が比較的少なくて済む。したがって、ACS回路全体としての回路規模が小さくなり、消費電力が低減するとともに、製造コストもまた低減する。
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。なお、便宜上、図10のトレリス線図を前提としたビタビ復号を想定して説明する。なお、本発明は、当該トレリス線図を前提としたビタビ復号に限定されるものではない。
まず、以後の説明で使用する表記の説明を行う。ブランチメトリックはbijと表記し、これはステートSiからステートSjに遷移するブランチを意味する。例えば、b02はステートS0からステートS2に遷移するブランチである。また、DBMは差分ブランチメトリック全般を意味する。DPMijはステートSjに係るパスメトリックとステートSiに係るパスメトリックとの間のDPMを示す。例えば、ステートS0に係るパスメトリックをPM0、ステートS2に係るパスメトリックをPM2とした場合、
DPM02=PM2−PM0
となる。また、単にDPMと記述した場合は差分パスメトリック全般を意味する。
図1は、本発明の最良の実施形態に係るACS回路の構成を示す。本実施形態に係るACS回路は、基準となるステートに係るパスメトリックと他のステートに係るパスメトリックとの間の差分パスメトリックである基本DPMを保持する基本DPM保持部11と、基本DPMを算出する基本DPM演算部12と、基本DPMの算出に必要なDPMである参照DPMを算出する参照DPM演算部13と、基本DPMの算出に必要なDBMである基本DBMを算出する基本DBM演算部14と、ビタビ復号に係る最尤パスを選択するパス選択部15とを備えている。
基本DPM保持部11は、基本DPMとして、DPM01,DPM02,DPM03,DPM04,DPM05,DPM06及びDPM07を保持する。すなわち、基本DPM保持部11は、ステートS0を基準のステートとしたときの、当該基準ステートと他のステートとの間のDPMを基本DPMとして保持する。
基本DPM演算部12は、基本DPMを新たに算出し、基本DPM保持部11に出力する。図2は、基本DPM演算部12の内部構成を示す。基本DPM演算部12は、基本DBM演算部14によって算出された基本DBM、基本DPM保持部11に保持された基本DPM及び参照DPM演算部によって算出された参照DPMに基づいて、基本DPMの一つであるDPM01を算出するDPM01演算部121、DPM02を算出するDPM02演算部122、DPM03を算出するDPM03演算部123、DPM04を算出するDPM04演算部124、DPM05を算出するDPM05演算部125、DPM06を算出するDPM06演算部126及びDPM07を算出するDPM07演算部127を備えている。これら演算部の構成については後ほど詳細に説明する。
参照DPM演算部13は、基本DPM保持部11に保持された基本DPMから参照DPMを算出する。図3は、参照DPM演算部13の内部構成を示す。参照DPM演算部13は、参照DPMの一つであるDPM12を算出するDPM12演算部301、DPM14を算出するDPM14演算部302、DPM16を算出するDPM16演算部303、DPM23を算出するDPM23演算部304、DPM24を算出するDPM24演算部305、DPM25を算出するDPM25演算部306、DPM26を算出するDPM26演算部307、DPM27を算出するDPM27演算部308、DPM34を算出するDPM34演算部309、DPM36を算出するDPM36演算部310、DPM45を算出するDPM45演算部311、DPM46を算出するDPM46演算部312、DPM47を算出するDPM47演算部313、DPM56を算出するDPM56演算部314及びDPM67を算出するDPM67演算部315を備えている。ここで、参照DPMは、基本DPMどうしの差分として得られる。すなわち、参照DPMであるDPMijは、
DPMij=DPM0j−DPM0i
として表される。すなわち、参照DPMは、特に複雑な計算を行うことなく算出することができる。なお、基本DPMの算出に必要な参照DPMについては後ほど詳細に説明する。
基本DBM演算部14は、畳み込み符号化されたデータ系列を受信し、特定の組み合わせのブランチメトリックどうしの差分を出力する。一般に、ブランチメトリックは入力データと理想値との間の二乗誤差である。すなわち、Dを入力データ、Yijを理想値とすると、ブランチメトリックは、
bij=(D−Yij)2
となる。これに対し、DBMは、
DBM=bij−bkl=(D−Yij)2−(D−Ykl)2=(Ykl−Yij)(−Ykl−Yij+2・D)
となる。すなわち、DBMを用いることによって、ブランチメトリックの計算式に現れる二乗の項が消去される。ここで、Ykl及びYijは定数であるため、C0及びC1を固定値として、
DBM=C0+C1・D
となる。このように、基本DBM演算部14は、入力データに対して乗算及び加算をそれぞれ1回行って基本DBMを算出するため、比較的簡単な回路構成で実現される。なお、基本DPMの算出に必要な基本DBMについては後ほど詳細に説明する。
パス選択部15は、基本DBM、基本DPM及び参照DPMを入力し、各ステートについてもっとも確からしいブランチがいずれであるかを示すパス選択信号を出力する。図4は、パス選択部15の内部構成を示す。パス選択部15は、パス選択信号出力部として、ステートS0に対応するパス選択信号SPN0を出力するSPN0出力部150、ステートS1に対応するパス選択信号SPN1を出力するSPN1出力部151、ステートS2に対応するパス選択信号SPN2を出力するSPN2出力部152、ステートS3に対応するパス選択信号SPN3を出力するSPN3出力部153、ステートS4に対応するパス選択信号SPN4を出力するSPN4出力部154、ステートS5に対応するパス選択信号SPN5を出力するSPN5出力部155、ステートS6に対応するパス選択信号SPN6を出力するSPN6出力部156及びステートS7に対応するパス選択信号SPN7を出力するSPN7出力部157を備えている。図10のトレリス線図では、8個の各ステートに1時刻前の4個のステートからの計4本のブランチが接続されている。パス選択部15は、各ステートについて、当該ステートに接続された4本のブランチの中からもっとも確からしいものを選択し、当該選択したブランチを示すパス選択信号を出力する。以下、パス選択信号出力部の例として、SPN0出力部150について説明する。なお、これ以外のパス選択信号出力部についてもSPN0出力部150と同様に構成される。
図5は、SPN0出力部150の内部構成を示す。SPN0出力部150は、ステートS0への遷移に係る4本のブランチに、遷移元のステート番号の昇順に2ビットのパス選択番号を割り当て、このパス選択番号をステートS0に対応するパス選択信号SPN0として出力する。具体的には、パス選択番号は、選択ブランチがb00のとき“0”、選択ブランチがb20のとき“1”、選択ブランチがb40のとき“2”、そして、選択ブランチがb60のとき“3”である。
加算器51は、基本DPMであるDPM02と基本DBMである(b20−b00)とを加算する。すなわち、加算器51は、パス選択番号が“1”のブランチが選択された場合のパスメトリックから、パス選択番号が“0”のブランチが選択された場合のパスメトリックを引いた結果を出力する。符号判定器52は、加算器51の加算結果を入力し、当該結果が負の場合は“1”、それ以外の場合は“0”となる信号sig1を出力する。同様に、加算器53は、パス選択番号が“3”のブランチが選択された場合のパスメトリックから、パス選択番号が“2”のブランチが選択された場合のパスメトリックを引いた結果を出力する。符号判定器54は、加算器53の加算結果を入力し、当該結果が負の場合は“1”、それ以外の場合は“0”となる信号sig2を出力する。
セレクタ55は、信号sig1及びsig2のいずれもが“0”の場合、パス選択番号が“2”のブランチのブランチメトリックからパス選択番号が“0”のブランチのブランチメトリックを引いた結果を出力し、信号sig1が“0”かつ信号sig2が“1”の場合、パス選択番号が“3”のブランチのブランチメトリックからパス選択番号が“0”のブランチのブランチメトリックを引いた結果を出力し、信号sig1が“1”かつ信号sig2が“0”の場合、パス選択番号が“3”のブランチのブランチメトリックからパス選択番号が“1”のブランチのブランチメトリックを引いた結果を出力し、そして、信号sig1及びsig2のいずれもが“1”の場合、パス選択番号が“3”のブランチのブランチメトリックからパス選択番号が“1”のブランチのブランチメトリックを引いた結果を出力する。
セレクタ56は、信号sig1及びsig2のいずれもが“0”の場合、パス選択番号が“2”のブランチの始点であるステートS4のパスメトリックからパス選択番号が“0”のブランチの始点であるステートS0のパスメトリックを引いたDPM(基本DPM04)を出力し、信号sig1が“0”かつ信号sig2が“1”の場合、パス選択番号が“3”のブランチの始点であるステートS6のパスメトリックからパス選択番号が“0”のブランチの始点であるステートS0のパスメトリックを引いたDPM(基本DPM06)を出力し、信号sig1が“1”かつ信号sig2が“0”の場合、パス選択番号が“2”のブランチの始点であるステートS4のパスメトリックからパス選択番号が“1”のブランチの始点であるステートS2のパスメトリックを引いたDPM(参照DPM24)を出力し、信号sig1及びsig2のいずれもが“1”の場合、パス選択番号が“3”のブランチの始点であるステートS6のパスメトリックからパス選択番号が“1”のブランチの始点であるステートS2のパスメトリックを引いたDPM(参照DPM26)を出力する。
加算器57は、セレクタ55からの出力とセレクタ56からの出力を加算する。符号判定器58は、加算器57の加算結果を入力し、当該結果が負の場合は“1”、それ以外の場合は“0”となる信号sig3を出力する。セレクタ59は、信号sig3が“0”の場合、信号sig1を出力し、信号sig3が“1”の場合、信号sig2を出力する。そして、セレクタ59からの出力がパス選択信号SPN0の下位ビット(SPN0[0])となり、信号sig3が上位ビット(SPN0[1])となる。
なお、本実施形態では、各ステートに接続されたブランチに、遷移元のステート番号の昇順にパス選択番号を割り当てているが、パス選択信号は必ずしも当該規則に従って生成しなくてもよい。
次に、基本DPM演算部12における、各基本DPMを算出するDPM0m(mは1から7までの整数)演算部の例として、DPM01演算部121について説明する。なお、これ以外のDPM0m演算部についてもDPM01演算部と同様に構成される。
まず、DPM01演算部121の具体的な構成を説明する前に、DPM01の生成について説明する。図6は、時刻kにおける各種基本DPMの生成規則を示す。このうち、図6(a)は、時刻kにおけるDPM01の生成規則を示す。時刻kにおけるDPM01であるDPM01(k)は、パス選択信号SPN0及びSPN1によって選択されるDBM及びDPM(k−1)の和として算出される。例えば、パス選択信号SPN0及びSPN1が、それぞれ、“0”及び“1”の場合、
DPM01(k)=(b21−b00)+DPM02(k−1)
となる。なお、DPM(k−1)は、時刻kの1時刻前である時刻(k−1)におけるDPMを表す。DPM01以外の基本DPMであるDPM02、DPM03、DPM04、DPM05、DPM06及びDPM07は、それぞれ、図6(b)、(c)、(d)、(e)、(f)及び(g)に示した規則に従って生成される。
すでに述べたように、本実施形態に係るACS回路が保持するDPMは7個の基本DPMのみである。しかし、図6に示した生成規則によると、基本DPMの算出に、基本DPM以外のDPMが必要となる。そして、基本DPM以外のDPMを算出するのが、参照DPM演算部13である。参照DPMは、基本DPMどうしの差分として容易に算出されることはすでに述べたとおりである。しかも、基本DPMの算出に必要となる参照DPMは、当該基本DPM算出の1時刻前のものでよい。すなわち、新たな基本DPMの算出には、基本DBM演算部14によって算出された基本DBMと、基本DPM保持部11に保持された1時刻前の基本DPMと、参照DPM演算部13によって1時刻前の基本DPMどうしの差分として得られる参照DPMとを用いればよい。
参照DPMとして、基本DPM以外のすべてのDPMを算出する必要はない。図10のトレリス線図の場合、全部で28個あるDPMのうち基本DPMが7個であり、残りの21個のDPMが参照DPMとなり得る。このうち、実際に必要な参照DPMは、図3に示した15個である。したがって、残り6個のDPMについては、算出する必要がない。また、DBMは、基本DPMの算出に必要なものだけ、すなわち、基本DBMのみを算出すればよい。
次に、DPM01演算部121の具体的な構成について説明する。図7は、DPM01演算部121の内部構成を示す。当該DPM01演算部121は、図6に示した生成規則に従って、DPM01の候補となり得る値をすべて算出しておき、パス選択信号SPN0及びSPN1に基づいて当該算出結果からいずれか一つを選択し、出力する。図8は、図7とは異なる構成のDPM01演算部121の内部構成を示す。当該DPM01演算部121は、パス選択信号SPN0及びSPN1に基づいてDPM01の算出に必要なDBM及びDPMを選択し、当該選択したDBMとDPMとを加算し、出力する。
以上、本実施形態によると、基本DPMのみを保持すればよいため、保持回路の規模は従来よりも小さくなる。さらに、DPMについては、基本DPM及び参照DPMのみを算出すればよいため、DPM算出に必要な加算器の個数は従来よりも少なくなる。具体的には、図10のトレリス線図の場合、従来のACS回路では、28個のDPMを保持する必要があるのに対して、本実施形態に係るACS回路では、7個のDPM(基本DPM)を保持するだけでよい。また、従来のACS回路では、DPMの算出に400個の加算器が必要となるが、本実施形態に係るACS回路で必要となる加算器(減算器を含む)の個数は、基本DPMの算出用の100個の加算器と参照DPMの算出用の15個の減算器とを合わせた115個である。さらに、図8に示したDPM0m演算部を採用することによって、加算器の個数は25個にまで低減する。
なお、従来のACS回路と比較して、本実施形態に係るACS回路は、基本DPMを算出してから参照DPMを算出するため、参照DPMを算出する分だけ処理時間が長くなると想像されるかもしれない。しかし、時刻kにおける基本DPM(k)及び参照DPM(k)が実際に必要となるのは、時刻(k+1)における新たな基本DPMの算出のときであるから、時刻(k+1)における基本DBMの算出と同時に時刻kにおける参照DPMを演算すればよい。すなわち、基本DBM演算部14と参照DPM演算部13とを並列に動作させればよい。このようにすることで、参照DPM算出に伴って処理時間が増加することがない。
また、上記説明ではステートS0を基準のステートとして説明したが、これ以外のステートを基準としてもよいことは言うまでもない。
以上のように、本発明に係るACS回路は、比較的小さな回路規模及び比較的高速な処理速度で、ビタビ復号に係るパスメトリックのオーバーフロー対策を講じることができ、通信、光ディスク、磁気ディスクのリードチャネルシステムにおける誤り訂正技術に適用するものとして有用である。
本発明の最良の実施形態に係るACS回路の構成図である。
基本DPM演算部の内部構成図である。
参照DPM演算部の内部構成図である。
パス選択部の内部構成図である。
パス選択部におけるSPN0出力部の内部構成図である。
基本DPMの生成規則を示した表である。
基本DPM演算部におけるDPM01演算部の内部構成図である。
基本DPM演算部におけるDPM01演算部の内部構成図である。
ギガビットイーサネット(イーサネット:登録商標)で一般的に用いられる畳み込み符号化器の構成図である。
図9の畳み込み符号化器に係るトレリス線図である。
符号の説明
11 基本DPM保持部
12 基本DPM演算部
13 参照DPM演算部
14 基本DBM演算部
15 パス選択部