JP2004320650A - Encoding device, decoding device, encoding program and decoding program - Google Patents
Encoding device, decoding device, encoding program and decoding program Download PDFInfo
- Publication number
- JP2004320650A JP2004320650A JP2003114797A JP2003114797A JP2004320650A JP 2004320650 A JP2004320650 A JP 2004320650A JP 2003114797 A JP2003114797 A JP 2003114797A JP 2003114797 A JP2003114797 A JP 2003114797A JP 2004320650 A JP2004320650 A JP 2004320650A
- Authority
- JP
- Japan
- Prior art keywords
- memory buffer
- external storage
- storage device
- block
- encoding
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/23—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
この発明は符号化技術及び復号化技術に係り、特に、デジタルデータを伝送するに際し、ブロック符号化及び畳み込み符号化による誤り訂正符号化を施す符号化技術と、このようにして符号化された伝送データに対して畳み込み復号化及びブロック復号化を施してデータを復元する技術に関する。
【0002】
【従来の技術】
デジタル通信における誤り訂正符号技術の1つとして、フォーワードエラーコレクション(FEC)がある。
これは、入力デジタルデータを所定のサイズに分割し、誤り訂正符号化をするブロック符号と、各ブロック符号化データを多重化する畳み込み符号との組み合わせで実現されるのが一般的である。
【0003】
畳み込み符号化は、時刻tにおける符号化シンボルを時刻t−k+1から時刻tまでのk個の情報を使って多重化する符号化方式であり、ここでkを拘束長、出力符号数をnとしたときのk/nを符号化率と呼ぶ。
畳み込み符号化において、入力となるそれぞれの符号化シンボルを別々の符号化ブロックに割り当てることにより、伝送パケットのバースト(局所集中的な)誤りに対応することができる。
【0004】
このようなブロック符号や畳み込み符号の方式としては種々の方法が知られており、リードソロモン符号やビタビ符号はその代表例である。
また、米国特許6373406に代表されるようなチェーンリアクション符号と呼ばれる方式では、少ない計算量で符号化範囲を広げることが可能であり、大きなブロックサイズを実現できる方式として知られている。
【0005】
【発明が解決しようとする課題】
しかしながら、従来の技術はいずれも、複数の符号化ブロックがプロセッサのレジスタ内またはメモリバッファ内に配置されていることを前提としており、メモリバッファ量を超える符号化ブロックの符号化および復号化をすることができない、という問題点がある。
例えば、畳み込み符号において拘束長kを別々の符号化ブロックから取得する場合、各符号化ブロックのサイズをbとすれば、(k*b)のメモリバッファが必要になる。
すなわちkを小さく設定しても、ブロック符号のブロックサイズが増大するにつれて、少ないメモリ実装の処理装置では畳み込み符号を処理することができない。
【0006】
この発明は、このような従来の問題点を解決するために案出されたものであり、メモリサイズに制約のある環境下においても、任意のブロックサイズの符号化シンボルを畳み込み符号化したり、ブロック復号化することが可能な技術を提供することを目的としている。
【0007】
【課題を解決するための手段】
上記の目的を達成するため、請求項1に記載した符号化装置は、入力データをブロック毎に符号化し、生成された符号化シンボルを外部記憶装置に蓄積する手段と、畳み込み符号化に必要な符号化シンボルを、上記外部記憶装置からメモリバッファに転送する手段と、メモリバッファ内に配置された符号化シンボルを、畳み込み符号化する手段とを備えたことを特徴としている。
また、請求項5に記載した符号化プログラムは、コンピュータを、入力データをブロック毎に符号化し、生成された符号化シンボルを外部記憶装置に蓄積する手段、畳み込み符号化に必要な符号化シンボルを、上記外部記憶装置からメモリバッファに転送する手段、メモリバッファ内に配置された符号化シンボルを、畳み込み符号化する手段として機能させることを特徴としている。
【0008】
このように、ブロック符号化されたデータ(チェーンリアクション符号化データを含む)を一時的に外部記憶装置内に蓄積した後、これらの中から伝送データを作成するために畳み込み演算が必要な入力シンボル部分のみを順次メモリに配置し、演算済み入力シンボルはメモリから削除することにより、メモリバッファ量を超えるブロック符号化データの畳み込み符号化が可能となる。
【0009】
なお、この発明は特定の畳み込み符号化方式に限定されるものではく、あらゆる畳み込み符号化方式を採用可能である(以下同様)。
また、この発明における「畳み込み符号化」は、冗長度を付加することなく単にブロック符号を接合させる場合(単純な順次出力方式)をも含む概念である(以下同様)。
【0010】
請求項2に記載した符号化装置は、入力データをブロック毎に符号化し、生成された符号化シンボルを外部記憶装置に蓄積する手段と、畳み込み符号化に必要な符号化シンボルを、上記外部記憶装置から最前段のメモリバッファに転送する手段と、各メモリバッファ内に配置された符号化シンボルを、次段のメモリバッファにシフトする手段と、最後段のメモリバッファ内に配置された符号化シンボルを、畳み込み符号化する手段とを備えたことを特徴としている。
また、請求項6に記載した符号化プログラムは、コンピュータを、入力データをブロック毎に符号化し、生成された符号化シンボルを外部記憶装置に蓄積する手段、畳み込み符号化に必要な符号化シンボルを、上記外部記憶装置から最前段のメモリバッファに転送する手段、各メモリバッファ内に配置された符号化シンボルを、次段のメモリバッファにシフトする手段、最後段のメモリバッファ内に配置された符号化シンボルを、畳み込み符号化する手段として機能させることを特徴としている。
【0011】
上記「最前段のメモリバッファ」とは、外部記憶装置から符号化シンボルが転送されるメモリバッファを意味し、「最後段のメモリバッファ」とは、畳み込み符号化手段に符号化シンボルを供給するためのメモリバッファを意味する。
ここで、メモリバッファが3つ以上設けられている場合には、外部記憶装置から最前段のメモリバッファに転送された符号化シンボルは、途中に介装されたメモリバッファを経由し、最後段のメモリバッファにシフトされる。その間に、最前段のメモリバッファには、次の畳み込み符号化に必要な符号化シンボルが外部記憶装置から転送される。
これに対し、メモリバッファの数が2つの場合には、第1のメモリバッファが「最前段のメモリバッファ」に、また第2のメモリバッファが「最後段のメモリバッファ」に該当し、第1のメモリバッファ内の符号化シンボルが第2のメモリバッファにシフトされることとなる。
【0012】
このように、外部記憶装置と畳み込み符号化手段との間に複数のメモリバッファを設け、外部記憶装置内の符号化シンボルを一のメモリバッファに一旦転送した後、他のメモリバッファに順次シフトさせ、最後段のメモリバッファから畳み込み符号化手段に符号化シンボルを供給することにより、メモリバッファ量を超えるブロック符号化データの畳み込み符号化が可能となると共に、外部記憶装置を介装させたことによるデータ転送速度の低下を補うことが可能となる。
【0013】
請求項3に記載した復号化装置は、入力データを畳み込み復号化し、ブロック単位の符号化シンボルを生成する手段と、各符号化シンボルを、ブロック毎に外部記憶装置の異なるチャネルに出力する手段と、上記外部記憶装置内の符号化シンボルを、ブロック単位で復号化する手段とを備えたことを特徴としている。
また、請求項7に記載した復号化プログラムは、コンピュータを、入力データを畳み込み復号化し、ブロック単位の符号化シンボルを生成する手段、各符号化シンボルを、ブロック毎に外部記憶装置の異なるチャネルに出力する手段、上記外部記憶装置内の符号化シンボルを、ブロック単位で復号化する手段として機能させることを特徴としている。
【0014】
このように、畳み込み符号化された伝送データを畳み込み復号化する際に、ディスク等の外部記憶装置に一旦出力した上で、ブロック復号化処理を順次行うことにより、メモリ量を超える符号化ブロック(チェーンリアクション符号化データを含む)の集合の復号化処理が可能となる。
【0015】
請求項4に記載した復号化装置は、入力データを畳み込み復号化し、ブロック単位の符号化シンボルを生成する手段と、各符号化シンボルを、ブロック毎にメモリバッファに出力する手段と、ブロック毎に所定数の符号化シンボルが上記メモリバッファ内に蓄積された時点で、各符号化シンボルを外部記憶装置の一つのチャネルに出力する手段と、上記外部記憶装置内の符号化シンボルを、ブロック単位で復号化する手段とを備えたことを特徴としている。
また、請求項8に記載した復号化プログラムは、コンピュータを、入力データを畳み込み復号化し、ブロック単位の符号化シンボルを生成する手段、各符号化シンボルをブロック毎にメモリバッファに出力する手段、ブロック毎に所定数の符号化シンボルが上記メモリバッファ内に蓄積された時点で、各符号化シンボルを外部記憶装置の一つのチャネルに出力する手段、上記外部記憶装置内の符号化シンボルを、ブロック単位で復号化する手段として機能させることを特徴としている。
【0016】
このように、畳み込み復号化された符号化シンボルをディスク等の外部記憶装置に蓄積するに際し、所定の出力メモリバッファを利用することにより、外部記憶装置へのアクセス回数および出力チャネル数を削減することが可能となり、復号化処理の高速化と外部記憶装置のチャネル数制約の回避が可能となる。
【0017】
【発明の実施の形態】
図1は、この発明に係る符号化装置10を示すブロック図である。この符号化装置10は、複数のブロック符号化手段12と、ハードディスク等の外部記憶装置14と、メモリ転送手段16と、メモリバッファ18と、畳み込み符号化手段20とを備えている。
【0018】
この場合、入力データは任意のv個のブロックに分割され、ブロック符号化手段12に入力される。畳み込み符号拘束長kのそれぞれのシンボルを、別々のブロック符号化シンボルに割り当てた場合を想定すれば、v=kとなる。
各ブロック符号化手段12は、出力シンボルを外部記憶装置14に書き出す。
メモリ転送手段16は、外部記憶装置14内に蓄積された各ブロックの符号化シンボルをbづつ取り出し、メモリバッファ18に転送する。
畳み込み符号化手段20は、伝送回路22から入力される伝送速度(r)に基づき、メモリバッファ18内の各符号化シンボルを順次畳み込み符号化し、伝送回路22へ出力する。
【0019】
メモリ転送手段16が以下で述べる要件を満たすことにより、図1の符号化装置10は、所定のメモリバッファ量で任意のブロック長で符号化されたシンボルを畳み込み符号化できる。
メモリ転送手段16に要求される要件は、ブロック毎の出力シンボル数bで示すことができる。
【0020】
ここで、1つのブロック符号化手段12に要求されるメモリ消費量をc、符号化装置10がブロック符号化に割り当てられるメモリサイズをmとすると、各ブロック符号化手段12が同時に動作できる数は m/c で示すことができる。
メモリバッファ18の大きさをMとすれば、シンボルサイズsのとき、bの最大値max(b)は(M/s)/vとなる。
一方で、一回の畳み込み符号化に必要なシンボルはメモリバッファ18内に配置されている必要があるため、bの最低必要量min(b)はk/vである。従ってbは、
k/v≦b≦(M/s)/v
を満たすことが要件となる。
【0021】
一般に、外部記憶装置14の入出力速度はメモリよりも遅いため、畳み込み符号手段20へのシンボル供給が遅延する可能性が考えられる。
この問題を回避するためには、外部記憶装置14と畳み込み符号化手段20との間に複数のメモリバッファを設けると共に、一のメモリバッファ内のデータを他のメモリバッファにシフトする手段を設けることが有効である。
図2はその一例を示すものであり、第1のメモリバッファ18aと、第2のメモリバッファ18bと、バッファシフト手段24とを備えている。
【0022】
この場合、メモリ転送手段16は、まずシンボルb個をvブロック分だけ第1のメモリバッファ18aに転送する。
つぎにメモリ転送手段16は、畳み込み符号化手段20からシンボル要求を受けた時点で、バッファシフト手段24を使用して第1のメモリバッファ18a内のシンボルをシフトして第2のメモリバッファ18b内に配置し、第1のメモリバッファ18aに再びシンボルb個をvブロック分転送する。
【0023】
畳み込み符号化手段20は、第2のメモリバッファ18b内の各符号化シンボルを順次畳み込み符号化し、全てのシンボルを符号化し終わると、メモリ転送手段16にシンボル要求を行う。
このとき、max(b)は{(M/2)/s}/v、min(b)はk/vとなり、bは、
k/v≦b≦{(M/2)/s}/v
を満たすことが要件となる。
【0024】
3つ以上のメモリバッファを用いることにより、符号化シンボルの供給効率をさらに向上させることができる。
図3の実施形態にあっては、q個(q≧3)のメモリバッファを外部記憶装置14と畳み込み符号化手段20との間に設けている。
この場合、メモリ転送手段16は、最前段に位置する第1のメモリバッファ18aにシンボルb個をvブロック分転送する。また、畳み込み符号化手段20からのシンボル要求に呼応し、バッファシフト手段24を通じて符号化シンボルを次段のメモリバッファに順次シフトさせる。
そして、畳み込み符号化手段20は、最後段に位置する第qのメモリバッファ18q内の符号化シンボルに対して畳み込み符号化処理を施す。
【0025】
畳み込み符号化手段20がメモリからシンボルを入力する速度Rは、伝送速度rと符号化率k/nからR=r*k/nとなる。
【0026】
図4は、この発明に係る第1の復号化装置30を示すブロック図である。この第1の復号化装置30は、畳み込み復号化手段32と、外部記憶装置34と、複数のブロック復号化手段36とを備えている。
この場合、伝送回路38から入力された誤り訂正符号化済みのデジタルデータは、畳み込み復号化手段32において復号化され、各ブロック毎の符号化シンボルが生成される。これらの符号化シンボルは、外部記憶装置34に出力される。
そして、外部記憶装置34内に所定数の符号化シンボルが蓄積された後、ブロック復号化手段36によって復号化処理が実行される。
この際、畳み込み復号化手段32は、外部記憶装置34にブロック毎の出力チャネルを作成する。ディスクファイルは、出力チャネルの実施形態の一例である。
【0027】
ディスクファイルの例で説明すると、畳み込み復号化手段32は、図1の入力ブロック数vに相当するディスクファイルを同時に作成し、拘束長kのシンボルを復号化する毎に、各ディスクファイルに該当シンボルを出力する。
各ディスクファイルに出力するシンボル数は、それぞれk/vである。
ブロック復号化手段36は、畳み込み復号化手段32からの通知または自己検出により、必要量の符号化シンボルがディスクファイルに蓄積されたことを受けて、復号処理を行う。
【0028】
1つのブロック復号化手段36に要求されるメモリ消費量をc、復号化装置30がブロック復号に割り当てられるメモリサイズをmとすると、各ブロック復号化手段36が同時に動作できる数は m/c で示すことができる。
したがって、当該復号化装置30がm≧cを満たしていれば、任意の拘束長kとブロック数を処理することが可能となる。
【0029】
ここで、ディスクファイル等の外部記憶装置34は、一般に性能面および機能面で下記の制約をうけることが多い。
▲1▼同時にオープンできるファイル数に上限がある。
▲2▼書き込み回数が多くなるほどシーク時間が増大し、性能が劣化する。
これに対処するため、図5に示すように、この発明に係る第2の復号化装置40は、畳み込み復号化手段32と外部記憶装置34との間に、メモリバッファ42と外部記憶出力手段44を設けている。
【0030】
この結果、畳み込み復号化手段32で復号された各ブロックの符号化シンボルは、メモリバッファ42に出力された後、外部記憶出力手段44によって適切なタイミングで外部記憶装置34に出力される。
ブロック復号化手段36は、外部記憶装置34に所定数の符号化シンボルが蓄積された後、復号化処理を実行する。
【0031】
つぎに、この場合におけるメモリバッファ42及び外部記憶装置34内のデータ構造の一例を説明する。
すなわち、図6に示すように、メモリバッファ42内には、それぞれp個の符号化シンボル46が配列されたシンボルセット48が、入力ブロック数に対応したv個分形成されている。
ここで、メモリバッファ42の許容量をMとすると、シンボルの配列数pはM/(v*シンボルサイズs)で与えられる。
【0032】
外部記憶出力手段44は、各シンボルセット48にp個のシンボルが配置されたことを受けて、このデータ構造を外部記憶装置34の1つの出力チャネルに順次書き出す。
出力チャネルがディスクファイルの場合、外部記憶出力手段44は1つのファイル50を外部記憶装置34に作成し、シンボルセット48の配列が完成する度にメモリバッファ42内のデータ構造を当該ファイル50に順次書き出す。
この結果、外部記憶装置34には、メモリバッファ42内に形成されたデータ構造全体の配列が形成される。
各ブロック復号化手段36(#1〜#v)は、ファイル50内の該当するシンボルセットを順次読み込み、ブロック復号化処理を実行する。
【0033】
このように、一旦メモリバッファ42内に所定数の符号化シンボルからなるデータ構造を形成した後、外部記憶出力手段44を介してまとめて外部記憶装置34に書き出すようにすることで、外部記憶装置34に対する書き込み回数を減らすことができ、全体の処理時間を短縮化することが可能となる。因みに、図6に示したデータ構造の例によれば、図4の実施形態のように畳み込み復号化手段32から外部記憶装置34に直接書き出す場合に比べ、書き込み回数は1/(p*v)回に減少する。
また、外部記憶装置34内に作成される出力ファイル数は、上記のように入力ブロック数にかかわらず1つで済むため、外部記憶装置34のファイル数制約を考慮する必要がなくなる。
【0034】
上記のブロック符号化手段12、メモリ転送手段16、畳み込み符号化手段20、バッファシフト手段24、畳み込み復号化手段32、ブロック復号化手段36、外部記憶出力手段44は、コンピュータのCPUが専用のアプリケーションプログラムを実行することによって実現される。
ただし、上記の各手段の機能を備えたICを用意し、符号化装置10、第1の復号化装置30及び第2の復号化装置40をハードウェア的に実現することも当然に可能である。
【0035】
【発明の効果】
以上説明したように、請求項1の符号化装置及び請求項5の符号化プログラムによれば、少ないメモリ実装量の符号化装置であっても、任意のサイズのデジタルデータを畳み込み符号化することが可能となる。
また、請求項2の符号化装置及び請求項6の符号化プログラムによれば、メモリバッファ量を超えるブロック符号化データの畳み込み符号化が可能となると共に、外部記憶装置を介装させたことによるデータ転送速度の低下を補うことが可能となる。
また、請求項3の復号化装置及び請求項7の復号化プログラムによれば、比較的少量のメモリ使用にて復号化処理が可能となる。
さらに、請求項4の復号化装置及び請求項8の復号化プログラムによれば、外部記憶装置へのアクセス回数を減らして性能向上の効果が期待できると共に、外部記憶装置に生成するファイル数を1つに減らすことが可能になり、処理装置のファイル数制約を回避することができる。
【図面の簡単な説明】
【図1】この発明に係る符号化装置を示すブロック図である。
【図2】上記符号化装置の変形例を示すブロック図である。
【図3】上記符号化装置の他の変形例を示すブロック図である。
【図4】この発明に係る第1の復号化装置を示すブロック図である。
【図5】この発明に係る第2の復号化装置を示すブロック図である。
【図6】第2の復号化装置におけるメモリバッファ及び外部記憶装置内のデータ構造を示す概念図である。
【符号の説明】
10 符号化装置
12 ブロック符号化手段
14 外部記憶装置
16 メモリ転送手段
18 メモリバッファ
18a 第1のメモリバッファ
18b 第2のメモリバッファ
18q 第qのメモリバッファ
20 畳み込み符号化手段
24 バッファシフト手段
30 第1の復号化装置
32 畳み込み復号化手段
34 外部記憶装置
36 ブロック復号化手段
40 第2の復号化装置
42 メモリバッファ
44 外部記憶出力手段
46 符号化シンボル
48 シンボルセット
50 ファイル[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an encoding technique and a decoding technique, and more particularly to an encoding technique for performing error correction encoding by block encoding and convolutional encoding when transmitting digital data, and a transmission technique encoded in this manner. The present invention relates to a technique for performing convolutional decoding and block decoding on data to restore the data.
[0002]
[Prior art]
One of error correction coding techniques in digital communication is forward error correction (FEC).
This is generally realized by a combination of a block code for dividing input digital data into a predetermined size and performing error correction coding and a convolutional code for multiplexing each block coded data.
[0003]
Convolutional coding is a coding method in which coded symbols at time t are multiplexed using k pieces of information from time t−k + 1 to time t, where k is a constraint length, and the number of output codes is n. K / n at this time is called a coding rate.
In convolutional coding, by assigning each input coded symbol to a separate coded block, it is possible to cope with a burst (locally concentrated) error of a transmission packet.
[0004]
Various methods are known as a method of such a block code or a convolutional code, and a Reed-Solomon code and a Viterbi code are typical examples.
Also, in a system called a chain reaction code represented by US Pat. No. 6,373,406, a coding range can be expanded with a small amount of calculation, and is known as a system capable of realizing a large block size.
[0005]
[Problems to be solved by the invention]
However, all of the conventional techniques assume that a plurality of coding blocks are arranged in a register of a processor or a memory buffer, and perform coding and decoding of a coding block exceeding the memory buffer amount. There is a problem that it is not possible.
For example, in a case where the constraint length k is obtained from different coding blocks in a convolutional code, a memory buffer of (k * b) is required if the size of each coding block is b.
That is, even if k is set to be small, as the block size of the block code increases, a processing device with a small amount of memory cannot process the convolutional code.
[0006]
The present invention has been devised in order to solve such a conventional problem. Even in an environment where the memory size is restricted, convolutional coding of an encoded symbol of an arbitrary block size or block encoding is performed. It is intended to provide a technique capable of decoding.
[0007]
[Means for Solving the Problems]
In order to achieve the above object, an encoding apparatus according to
The encoding program described in
[0008]
As described above, after temporarily storing the block-coded data (including the chain reaction-coded data) in the external storage device, an input symbol which requires a convolution operation to create transmission data from these is stored. By arranging only the portions in the memory sequentially and deleting the input symbol after the operation from the memory, convolutional coding of the block coded data exceeding the memory buffer amount becomes possible.
[0009]
It should be noted that the present invention is not limited to a specific convolutional coding method, and any convolutional coding method can be adopted (the same applies hereinafter).
Further, the "convolutional coding" in the present invention is a concept including a case where block codes are simply joined without adding redundancy (simple sequential output method) (the same applies hereinafter).
[0010]
An encoding apparatus according to
The encoding program described in claim 6 is a computer which encodes input data for each block, stores the generated encoded symbols in an external storage device, and encodes encoded symbols necessary for convolutional encoding. Means for transferring from the external storage device to the first memory buffer, means for shifting the coded symbols arranged in each memory buffer to the next memory buffer, codes arranged in the last memory buffer. This is characterized in that the coded symbol is made to function as means for performing convolutional coding.
[0011]
The above-mentioned "first-stage memory buffer" means a memory buffer to which encoded symbols are transferred from the external storage device, and the "last-stage memory buffer" is used to supply encoded symbols to the convolutional encoding means. Means a memory buffer.
Here, when three or more memory buffers are provided, the encoded symbols transferred from the external storage device to the first memory buffer pass through the memory buffer interposed in the middle, and Shifted to memory buffer. In the meantime, the coded symbols necessary for the next convolutional coding are transferred from the external storage device to the first memory buffer.
On the other hand, when the number of memory buffers is two, the first memory buffer corresponds to the “first memory buffer”, the second memory buffer corresponds to the “last memory buffer”, and the first memory buffer corresponds to the first memory buffer. Will be shifted to the second memory buffer.
[0012]
As described above, a plurality of memory buffers are provided between the external storage device and the convolutional coding means, and the encoded symbols in the external storage device are temporarily transferred to one memory buffer and then sequentially shifted to another memory buffer. By supplying encoded symbols from the last memory buffer to the convolutional encoding means, convolutional encoding of block encoded data exceeding the memory buffer amount becomes possible, and the external storage device is interposed. It is possible to compensate for a decrease in data transfer speed.
[0013]
The decoding device according to
Further, the decoding program according to claim 7 causes the computer to convolutionally decode the input data to generate coded symbols in block units, and to transfer each coded symbol to a different channel of the external storage device for each block. It is characterized in that it functions as output means and means for decoding the encoded symbols in the external storage device in block units.
[0014]
As described above, when the convolutionally coded transmission data is convolutionally decoded, the data is temporarily output to an external storage device such as a disk, and then the block decoding process is sequentially performed. (Including chain reaction encoded data) can be decoded.
[0015]
A decoding device according to claim 4, wherein convolutional decoding of the input data to generate coded symbols in block units, means for outputting each coded symbol to a memory buffer for each block, Means for outputting each coded symbol to one channel of the external storage device when a predetermined number of coded symbols are stored in the memory buffer; and coded symbols in the external storage device in block units. Decoding means.
The decoding program according to claim 8, further comprising: a computer configured to convolutionally decode the input data to generate encoded symbols in block units; a unit that outputs each encoded symbol to a memory buffer for each block; Means for outputting each coded symbol to one channel of the external storage device at the time when a predetermined number of coded symbols are stored in the memory buffer every time, This is characterized in that it functions as decoding means.
[0016]
As described above, when accumulating the convolutionally decoded encoded symbols in an external storage device such as a disk, the number of accesses to the external storage device and the number of output channels can be reduced by using a predetermined output memory buffer. Thus, it is possible to speed up the decoding process and avoid the limitation on the number of channels of the external storage device.
[0017]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 is a block diagram showing an
[0018]
In this case, the input data is divided into arbitrary v blocks and input to the
Each
The
The convolution encoding means 20 sequentially convolutionally encodes each encoded symbol in the
[0019]
When the
The requirement required for the memory transfer means 16 can be indicated by the number of output symbols b per block.
[0020]
Here, assuming that the memory consumption amount required for one
Assuming that the size of the
On the other hand, since the symbols required for one convolutional encoding need to be arranged in the
k / v ≦ b ≦ (M / s) / v
It is a requirement to satisfy
[0021]
In general, since the input / output speed of the
In order to avoid this problem, a plurality of memory buffers are provided between the
FIG. 2 shows an example thereof, and includes a
[0022]
In this case, the
Next, when receiving the symbol request from the
[0023]
The
At this time, max (b) is {(M / 2) / s} / v, min (b) is k / v, and b is
k / v ≦ b ≦ {(M / 2) / s} / v
It is a requirement to satisfy
[0024]
By using three or more memory buffers, the supply efficiency of encoded symbols can be further improved.
In the embodiment of FIG. 3, q (q ≧ 3) memory buffers are provided between the
In this case, the
Then, the
[0025]
The rate R at which the convolutional encoding means 20 inputs symbols from the memory is R = r * k / n based on the transmission rate r and the encoding rate k / n.
[0026]
FIG. 4 is a block diagram showing a
In this case, the error correction coded digital data input from the
Then, after a predetermined number of coded symbols are stored in the
At this time, the convolution decoding means 32 creates an output channel for each block in the
[0027]
To explain using an example of a disk file, the convolution decoding means 32 simultaneously creates disk files corresponding to the number of input blocks v in FIG. 1 and, each time a symbol having the constraint length k is decoded, the corresponding symbol is added to each disk file. Is output.
The number of symbols output to each disk file is k / v.
The block decoding means 36 performs a decoding process in response to the notification or self-detection from the convolution decoding means 32 that the required amount of encoded symbols has been accumulated in the disk file.
[0028]
Assuming that the memory consumption amount required for one
Therefore, if the
[0029]
Here, the
(1) There is an upper limit on the number of files that can be opened simultaneously.
{Circle around (2)} As the number of times of writing increases, the seek time increases, and the performance deteriorates.
To cope with this, as shown in FIG. 5, the
[0030]
As a result, the encoded symbols of each block decoded by the
After a predetermined number of encoded symbols are stored in the
[0031]
Next, an example of the data structure in the
That is, as shown in FIG. 6, in the
Here, assuming that the allowable amount of the
[0032]
The external storage output means 44 sequentially writes the data structure to one output channel of the
When the output channel is a disk file, the external storage output means 44 creates one
As a result, an array of the entire data structure formed in the
Each of the block decoding units 36 (# 1 to #v) sequentially reads the corresponding symbol set in the
[0033]
As described above, once a data structure including a predetermined number of coded symbols is formed in the
In addition, since the number of output files created in the
[0034]
The above-described block encoding means 12, memory transfer means 16, convolutional encoding means 20, buffer shift means 24, convolutional decoding means 32, block decoding means 36, and external storage output means 44 are provided by an application dedicated to a CPU of a computer. This is realized by executing a program.
However, it is of course possible to prepare an IC having the functions of the above-described units and implement the
[0035]
【The invention's effect】
As described above, according to the encoding device of the first aspect and the encoding program of the fifth aspect, even if the encoding device has a small amount of memory, the convolutional encoding of digital data of an arbitrary size can be performed. Becomes possible.
According to the encoding device of the second aspect and the encoding program of the sixth aspect, convolutional encoding of block-encoded data exceeding the memory buffer amount becomes possible, and an external storage device is interposed. It is possible to compensate for a decrease in data transfer speed.
According to the decoding device of the third aspect and the decoding program of the seventh aspect, the decoding process can be performed using a relatively small amount of memory.
Furthermore, according to the decoding device of the fourth aspect and the decoding program of the eighth aspect, the effect of improving the performance by reducing the number of accesses to the external storage device can be expected, and the number of files generated in the external storage device can be reduced by one. This makes it possible to reduce the number of files in the processing device.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an encoding device according to the present invention.
FIG. 2 is a block diagram showing a modification of the encoding device.
FIG. 3 is a block diagram showing another modification of the encoding device.
FIG. 4 is a block diagram showing a first decoding device according to the present invention.
FIG. 5 is a block diagram showing a second decoding device according to the present invention.
FIG. 6 is a conceptual diagram showing a data structure in a memory buffer and an external storage device in the second decoding device.
[Explanation of symbols]
Claims (8)
畳み込み符号化に必要な符号化シンボルを、上記外部記憶装置からメモリバッファに転送する手段と、
メモリバッファ内に配置された符号化シンボルを、畳み込み符号化する手段と、
を備えたことを特徴とする符号化装置。Means for encoding input data for each block and storing the generated encoded symbols in an external storage device;
Means for transferring encoded symbols required for convolutional encoding from the external storage device to a memory buffer;
Means for convolutionally coding the coded symbols arranged in the memory buffer;
An encoding device comprising:
畳み込み符号化に必要な符号化シンボルを、上記外部記憶装置から最前段のメモリバッファに転送する手段と、
各メモリバッファ内に配置された符号化シンボルを、次段のメモリバッファにシフトする手段と、
最後段のメモリバッファ内に配置された符号化シンボルを、畳み込み符号化する手段と、
を備えたことを特徴とする符号化装置。Means for encoding input data for each block and storing the generated encoded symbols in an external storage device;
Means for transferring coded symbols required for convolutional coding from the external storage device to a memory buffer at the forefront stage;
Means for shifting the coded symbols arranged in each memory buffer to the next memory buffer;
Means for convolutionally encoding the encoded symbol arranged in the memory buffer at the last stage;
An encoding device comprising:
各符号化シンボルを、ブロック毎に外部記憶装置の異なるチャネルに出力する手段と、
上記外部記憶装置内の符号化シンボルを、ブロック単位で復号化する手段と、
を備えたことを特徴とする復号化装置。Means for convolutionally decoding input data to generate coded symbols in block units;
Means for outputting each encoded symbol to a different channel of the external storage device for each block;
Means for decoding the encoded symbols in the external storage device in block units;
A decoding device comprising:
各符号化シンボルを、ブロック毎にメモリバッファに出力する手段と、
ブロック毎に所定数の符号化シンボルが上記メモリバッファ内に蓄積された時点で、各符号化シンボルを外部記憶装置の一つのチャネルに出力する手段と、
上記外部記憶装置内の符号化シンボルを、ブロック単位で復号化する手段と、
を備えたことを特徴とする復号化装置。Means for convolutionally decoding input data to generate coded symbols in block units;
Means for outputting each encoded symbol to a memory buffer for each block;
Means for outputting each coded symbol to one channel of the external storage device when a predetermined number of coded symbols are accumulated in the memory buffer for each block;
Means for decoding the encoded symbols in the external storage device in block units;
A decoding device comprising:
入力データをブロック毎に符号化し、生成された符号化シンボルを外部記憶装置に蓄積する手段、
畳み込み符号化に必要な符号化シンボルを、上記外部記憶装置からメモリバッファに転送する手段、
メモリバッファ内に配置された符号化シンボルを、畳み込み符号化する手段、
として機能させることを特徴とする符号化プログラム。Computer
Means for encoding input data for each block and storing the generated encoded symbols in an external storage device;
Means for transferring encoded symbols required for convolutional encoding from the external storage device to a memory buffer,
Means for convolutionally coding the coded symbols arranged in the memory buffer,
An encoding program characterized by functioning as:
入力データをブロック毎に符号化し、生成された符号化シンボルを外部記憶装置に蓄積する手段、
畳み込み符号化に必要な符号化シンボルを、上記外部記憶装置から最前段のメモリバッファに転送する手段、
各メモリバッファ内に配置された符号化シンボルを、次段のメモリバッファにシフトする手段、
最後段のメモリバッファ内に配置された符号化シンボルを、畳み込み符号化する手段、
として機能させることを特徴とする符号化プログラム。Computer
Means for encoding input data for each block and storing the generated encoded symbols in an external storage device;
Means for transferring encoded symbols required for convolutional encoding from the external storage device to a memory buffer at the forefront stage;
Means for shifting the coded symbols arranged in each memory buffer to the next memory buffer,
Means for convolutionally encoding the encoded symbols arranged in the last-stage memory buffer,
An encoding program characterized by functioning as:
入力データを畳み込み復号化し、ブロック単位の符号化シンボルを生成する手段、
各符号化シンボルを、ブロック毎に外部記憶装置の異なるチャネルに出力する手段、
上記外部記憶装置内の符号化シンボルを、ブロック単位で復号化する手段、
として機能させることを特徴とする復号化プログラム。Computer
Means for convolutionally decoding input data and generating encoded symbols in block units;
Means for outputting each encoded symbol to a different channel of the external storage device for each block,
Means for decoding the encoded symbols in the external storage device in block units;
A decryption program characterized by functioning as:
入力データを畳み込み復号化し、ブロック単位の符号化シンボルを生成する手段、
各符号化シンボルをブロック毎にメモリバッファに出力する手段、
ブロック毎に所定数の符号化シンボルが上記メモリバッファ内に蓄積された時点で、各符号化シンボルを外部記憶装置の一つのチャネルに出力する手段、
上記外部記憶装置内の符号化シンボルを、ブロック単位で復号化する手段、
として機能させることを特徴とする復号化プログラム。Computer
Means for convolutionally decoding input data and generating encoded symbols in block units;
Means for outputting each encoded symbol to a memory buffer for each block,
Means for outputting each coded symbol to one channel of the external storage device when a predetermined number of coded symbols are accumulated in the memory buffer for each block;
Means for decoding the encoded symbols in the external storage device in block units;
A decryption program characterized by functioning as:
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003114797A JP4317589B2 (en) | 2003-04-18 | 2003-04-18 | Encoding device, decoding device, encoding program, and decoding program |
| PCT/JP2004/004553 WO2004095712A1 (en) | 2003-04-18 | 2004-03-30 | Encoding apparatus, decoding apparatus, encoding program and decoding program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003114797A JP4317589B2 (en) | 2003-04-18 | 2003-04-18 | Encoding device, decoding device, encoding program, and decoding program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004320650A true JP2004320650A (en) | 2004-11-11 |
| JP4317589B2 JP4317589B2 (en) | 2009-08-19 |
Family
ID=33307939
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003114797A Expired - Fee Related JP4317589B2 (en) | 2003-04-18 | 2003-04-18 | Encoding device, decoding device, encoding program, and decoding program |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP4317589B2 (en) |
| WO (1) | WO2004095712A1 (en) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2247014B1 (en) * | 1997-05-30 | 2012-01-04 | Qualcomm Incorporated | Method and apparatus for providing error protection for over-the-air file transfer |
| JP3239870B2 (en) * | 1998-12-28 | 2001-12-17 | 日本電気株式会社 | Data error correction system |
| JP3515519B2 (en) * | 2000-12-28 | 2004-04-05 | 三洋電機株式会社 | Data receiving device |
-
2003
- 2003-04-18 JP JP2003114797A patent/JP4317589B2/en not_active Expired - Fee Related
-
2004
- 2004-03-30 WO PCT/JP2004/004553 patent/WO2004095712A1/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| JP4317589B2 (en) | 2009-08-19 |
| WO2004095712A1 (en) | 2004-11-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8533555B2 (en) | Efficient encoding and decoding methods for representing schedules and processing forward error correction codes | |
| KR101355761B1 (en) | Multiple-field based code generator and decoder for communications systems | |
| ES2673513T3 (en) | Procedures that use FEC codes with permanent inactivation of symbols for coding and decoding processes | |
| JP5791161B2 (en) | How to assign a redundancy version to a circular buffer | |
| CN101090305B (en) | Radio physical layer channel code chain processing method | |
| US20080092023A1 (en) | Parallel convolutional encoder | |
| JP2000068862A (en) | Error correction coding device | |
| JP2002171173A (en) | Reconstitutable architecture for decoding data communication signal transmitted according to one of plural decoding scheme and method for dealing with path metric of communication decoding device for decoding either superimposed code or turbo code | |
| US20150236723A1 (en) | Parallel VLSI architectures for constrained turbo block convolutional decoding | |
| JP4420924B2 (en) | Method and encoder for encoding an information bit sequence | |
| CN112286449B (en) | RS erasure processing equipment and distributed storage system | |
| US20020162074A1 (en) | Method and apparatus for path metric processing in telecommunications systems | |
| JP2002176366A (en) | Butterfly processor used when decoding communication | |
| KR20190111991A (en) | Method and apparatus for processing rate matching of polar code | |
| CN115793984A (en) | Data storage method and device, computer equipment and storage medium | |
| US20030188248A1 (en) | Apparatus for iterative hard-decision forward error correction decoding | |
| KR20110037953A (en) | Data decoding method, data interleave method, data decoding device, interleaver table generating device and data interleaving device | |
| CN100525120C (en) | Method and device for diversity error control coding and decoding | |
| JP2008005419A (en) | Information processing apparatus and information processing method | |
| KR100963463B1 (en) | Improved Turbo Code Interleaver for Low Frame Error Rate | |
| WO2008048944A2 (en) | Using sam in error correcting code encoder and decoder implementations | |
| JP4317589B2 (en) | Encoding device, decoding device, encoding program, and decoding program | |
| TWI520528B (en) | Supercharged codes | |
| CN111900999A (en) | High-performance polarization coding method and coder for satellite discontinuous communication | |
| JP3628013B2 (en) | Signal transmitting apparatus and encoding apparatus |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060411 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080826 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081027 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090512 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090523 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120529 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120529 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130529 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130529 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140529 Year of fee payment: 5 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |