JPH05298131A - 誤り訂正復号装置 - Google Patents
誤り訂正復号装置Info
- Publication number
- JPH05298131A JPH05298131A JP3003148A JP314891A JPH05298131A JP H05298131 A JPH05298131 A JP H05298131A JP 3003148 A JP3003148 A JP 3003148A JP 314891 A JP314891 A JP 314891A JP H05298131 A JPH05298131 A JP H05298131A
- Authority
- JP
- Japan
- Prior art keywords
- error
- circuit
- output
- position detection
- shift register
- 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
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
正復号装置において、回路規模を小さくできるととも
に、逐次復号できる誤り訂正復号装置を得ることを目的
とする。 【構成】 nシンボルの受信語R=(rn-1、rn-2、・
・・、r1、r0)を記憶する遅延回路と、シンドローム
Sj(j=1、2、3、4)を計算するシンドローム生
成回路と、逐次的にαi(i=n−1、n−2・・・1、
0、αは原始多項式の根)を生成するシフトレジスタ回
路と、上記シンドローム生成回路とシフトレジスタの出
力から βj=αiSj+Sj+1(j=1、2、3)を計算
し、 β2 2+β1・β3の値から2重誤りが生起したとき
の誤り位置を検出する誤り位置検出回路と、上記誤り位
置検出回路で検出された誤り位置の誤り数値を計算する
誤り数値計算回路と、誤りを訂正するXOR回路を備え
た。
Description
ロモン符号(Reed-Solomon Code)に生じた誤りを訂正
する誤り訂正復号装置に関するものである。
たBCH符号復号器の改良」信学論.Vol.J67−
D PP.359〜366)に示された従来の誤り訂正
復号装置を示すブロック図であり、図において、101
は受信語の情報入力端子、102はnビットの受信語R
=(rn-1、rn-2、・・・、r1、r0)を記憶させておく
ためのRAM、103は受信語Rからシンドローム(Sy
ndrome)
3、4)を計算し、それぞれαを底とするガロア(Galo
is)体上の指数表現に変換するシンドローム生成回路、
104〜114は2重誤りが生起した際の誤り位置を求
めるためのROMのアドレスを計算するための演算回路
部であり、104〜107は加算器、108、109は
入力を2倍し出力する乗算器、110〜112はガロア
体上のビットパターン同志で加算を行なう加算器、11
3、114は減算器である。115は演算回路部104
〜114で計算された値から誤り位置の指数表現に変換
し出力するROM、116〜118は1重誤りが生起し
た際の誤り位置と誤り数値を計算する演算回路部であ
り、116は入力を2倍し出力する乗算器、117、1
18は減算器である。119から126は2重誤りが生
起した際の誤り数値を計算する演算回路部であり、11
9〜122は加算器、123、124はガロア体上のビ
ットパターン同志で加算を行なう加算器、125、12
6は減算器である。127は誤りの個数に応じて出力を
選択するセレクタ、128はαを底とする指数表現で表
されたガロア体上の元をベクトル表現に変換するRO
M、129は受信語の誤り訂正を行なう誤り訂正回路、
130は誤り個数により出力を変化させるAND回路、
131は情報出力端子である。
1よりnビットの受信語R=(rn- 1、rn-2、・・・、
r1、r0)がシンドローム生成回路103とRAM102
に入力される。シンドローム生成回路103では
の根)を計算し、Sjのそれぞれに対して、ガロア体上
でのビットパターンをアドレスとし、αを底とする指数
表現log Sjに変換し出力する。演算回路部104〜
114において
そして、ROM115において2重誤りが生起した際の
αを底とした指数表現の誤り位置logX1、logX2
を出力する。次に、誤り数値を計算する演算回路部11
6〜118において1重誤りが生起した際のαを底とし
た指数表現の誤り位置 logX1=log(S2/S1)
と誤り数値logY1=log(S1 2/S2)が計算さ
れ、セレクタ127に出力される。また、演算回路部1
19〜126において2重誤りが生起した際のαを底と
した指数表現の誤り数値、
セレクタ127では1重誤りが生起したとき、すなわ
ち、S2 2=S1S3かつS3 2=S2S4が成立したとき、A
ND回路130の出力に応じて、1重誤りが生起したと
きの誤り位置と誤り数値がセレクトされ、また、2重誤
りが生起したときAND回路130の出力に応じて、2
重誤りが生起したときの誤り位置と誤り数値がセレクト
され、ROM128において、ガロア体上の元をαを底
とする指数表現からベクトル表現に変換し、誤り訂正回
路129において誤り検出されたRAM102に記憶し
ている受信語の誤りを訂正し、情報出力端子131に出
力する。
置は以上のように構成されているので、ROMによる索
表をしなければならず、回路構成を大規模なものにする
ことが必要で、また、誤り訂正を複数ビットに対して同
時に行なうために、誤り訂正を行なう際の制御が複雑で
あるなどの問題点があった。
ためになされたもので、回路規模を小さくできるととも
に、逐次復号できる誤り訂正復号装置を得ることを目的
とする。
復号装置は、シフトレジスタにより逐次的にαi(i=n
−1、n−2、・・・、1、0)を生成し、シンドロー
ム生成回路で生成されたシンドロームSj(j=1、2、
3、4)との間に、ガロア体上の演算回路により(αi
S2+S3)2=(αiS1+S2)(αiS3+S4)が成り
立つかどうかを調べることにより受信語の誤り位置を特
定するものである。
還シフトレジスタによりαi(i=n−1、n−2、・・
・、1、0)を逐次的に生成させ、外部からの動作クロ
ックに同期して、受信語の1シンボル毎に対して誤りの
位置が確かめられので逐次的な誤り訂正が可能になる。
する。図1において1はnシンボルの受信語R=(r
n-1、rn-2、・・・、r1、r0)の入力端子、2は入力さ
れた受信語からのシンドローム
の根)を計算するシンドローム生成回路、3は受信語を
記憶するための遅延回路、4は上記シンドローム生成回
路2の出力から受信語の誤り個数が2シンボル以上であ
るとき制御信号を出力する誤り個数計算回路、5はαi
(i=n−1、n−2、・・・、1、0)を外部のクロ
ックに同期させて逐次的に発生させるシフトレジスタ回
路(αi生成回路ともいう)、6は上記シンドローム生成
回路2およびシフトレジスタ回路5の出力からβj=αi
Sj+Sj+1(j=1、2、3)を計算し、誤り個数が2
シンボル以上のときはβ2 2+β1・β3=0のとき、誤り
検出信号を出力し、誤り個数が1シンボル以下のときは
β1=β2=β3=0のとき誤り検出信号を出力する誤り
位置検出回路、7は誤りの大きさを計算する誤り数値計
算回路、8は誤り数値を上記の誤り位置検出信号12に
従って選択するセレクタ回路、9は誤り訂正を行うXO
R回路、10は情報出力端子である。
示した図であり11〜14はガロア体上の乗算回路、1
5、16はXOR回路、17はNOR回路である。
図であり18〜22はガロア体上の乗算回路、23〜2
6はXOR回路、27はOR回路、28はセレクタ回路
である。
図であり29〜31はガロア体上の除算回路、32、3
3はガロア体上の乗算回路、34、35はXOR回路、
36はセレクタ回路である。
りなしの場合の各回路の出力値を示した図であり、各回
路の動作説明をまとめたものである。
ルの符号語C=(cn-1、cn-2、・・・、c1、c0)が
他の装置より送信され、nシンボルの受信語 R=(r
n-1、rn-2、・・・、r1、r0) が情報入力端子1より
シンドローム生成回路2と遅延回路3に入力される。受
信語の先頭からn−j、n−k(0≦j、k≦n、j≠
k)シンボル目にそれぞれ、誤り数値がej、ek(≠
0)の2重誤りが生じたとき、シンドローム生成回路2
において、 S1=ejαj+ekαk S2=ejα2j+ekα2k S3=ejα3j+ekα3k S4=ejα4j+ekα4k が計算される。この実施例において、nシンボルの受信
語Rが入力されることになるが、ここでnは、符号語
(受信語)Rの長さであり符号長という。また、受信語
Rを構成する記号(rn-1、rn-2、・・・、r1、r0)の
種類がqであるときq元符号と呼ぶ。以下、ここでは便
宜上2元符号について説明を行なうが、一般のq元符号
でも基本的には同一である。
元符号)に対し、2を法とする加法と乗法を考える。 加法 0+1=1、0+0=0、1+1=0 乗法 0・0=0、0・1=0、1・1=1 このように、0と1の二つの元と、それに対して2を法
とする算法を代数学ではガロア(Galois)体(有限体)
GF(2)という。そして、上記加法、乗法をガロア体
上の演算という。さて、ここで送信元の符号語Cはn次
元のベクトル(cn-1、cn-2、・・・、c1、c0)を有
しており、これをn−1次以下の多項式で表現するとc
(X)=co+c1X+・・・+cn-1Xn-1となり、これ
を符号多項式という。この符号多項式c(X)を送り、
誤りパターンを示す多項式e(X)が加わり、受信多項
式r(X)=c(X)+e(X)が得られたとする。こ
のとき、符号の根 αiをr(X)に代入したSi=r
(αi)をシンドロームという。ここで c(αi)=0
という性質から、Si=c(αi)+e(αi)=e
(αi)となり、 Siは誤りパターンe(X)だけで定
まることになる。2元符号では、誤り位置がわかれば訂
正できることになる。また、第j番目(0≦j≦n−
1)の誤り位置を αjで表わす。以上のように、シンド
ローム生成回路2においては、S1、S2、S3、S4が生
成されるが、誤りがなければ(つまりe(X)=0なら
ば)、 S1=S2=S3=S4=0となる。しかし、なん
らかの誤りがあれば(つまりe(X)≠0ならば)、0
以外となりこの値を用いて誤りを訂正することになる。
以下に、2重誤りが生じたときの動作についてさらに続
けて説明する。
たS1、S2、S3、S4は誤り個数計算回路に入力され
る。誤り個数計算回路4においては、 A1=S1・S3+S2 2=ejekαjαk(α2j+α2k) A2=S2・S4+S3 2=ejekα2jα2k(α2j+α2k) が計算される。2重誤りの場合は、ej≠0、ek≠0、
j≠kよりA1≠0、A2≠0となりNOR回路17は制
御信号F1をLで出力する。後述する1重誤りの場合と
誤りなしの場合はF1はHとなることから、制御信号F
1=Lは2重誤りが生じたことを示す信号として用いる
ことができる。
号の根αiの初期値としてαn-1をセットしておき、外部
からのクロックに同期させることによりシフト操作を行
なわせ、αn-1、αn-2、・・・・、α1、α0を順次生成
させて出力する。ここでαi生成についてGF(23)の
上での演算を具体例として以下に説明する。c(X)=
Q(X)G(X)を考え、ここでQ(X)は任意の多項
式でありG(X)はXn-1を割り切るm次の多項式とす
る。m=3の場合を示すと、 G(X)=X3+X+1 となり、この根をαとすると、 α3+α+1=0 より α0=1 α=α α2=α2 α3=−(α+1)=α+1 α4=α3・α=(α+1)α=α2+α α5=α4・α=(α2+α)α=α3+α2=α2+α+1 α6=α5・α=α3+α2+α=α+1+α2+α=α2+1 α7=α6・α=(α2+1)α=α3+α=1 α8=α7・α=α α9=α8・α=α2 ・ ・ ・ したがってこれを行列にすると以下のようになる。 (以下α0〜α7の繰り返し)シフトレジスタ回路5は上
記αn-1〜α0の値を各クロックが入力されるたびにαi
として出力することになる。
=1、2、3、4)とシフトレジスタ回路5の出力αi
から誤り位置検出回路6において、 β1=αiS1+S2=ejαj(αi+αj)+ekαk(αj+αk) β2=αiS2+S3=ejα2j(αi+αj)+ekα2k(αj+αk) β3=αiS3+S4=ejα3j(αi+αj)+ekα3k(αj+αk) となり β2 2+β1・β3=ejekαjαk(α2j+α2k)(αi+αj)(αi+αk) が計算される。ここで、セレクタ回路28では、誤り個
数計算回路4の出力である制御信号F1がLのときは、
β2 2+β1・β3=0であるとき、OR回路27により、
この値をβ1とβ2とβ3の論理和をとったもの(後述の
1重誤りに使用するもの)に優先して誤り位置検出信号
F2としてセレクタ回路28より出力する。すなわち、
i=jまたはi=kのとき(αi+αj)=0または(α
i+αk)=0となりβ2 2+β1・β3=0となり誤り位置
検出信号F2はLを出力する。それ以外のときはβ2 2+
β1・β3≠0なのでHを出力する。これは、i番=j番
であるとき、あるいは、i番=k番であるときβ2 2+β
1・β3=0になることを利用している。iがjでもな
く、かつ、kでもないときはβ2 2+β1・β3≠0となる
ため、このときのi番目には誤まりがないことになる。
したがって、シフトレジスタ回路5により各クロックご
とに生成されるαiを用いて、誤り位置検出回路6でβ2
2+β1・β3の計算をし、結果がゼロのときは、このi
番を誤り位置と判定することができる訳である。2乗誤
りのときはi=jとi=kのときβ2 2+β1・β3=0と
なるため、i=j番目とi=k番目が誤り位置となる。
F2=Lは、この位置を示す信号である。したがって、
F2は、n−1〜0のnクロックの中でj番目とk番目
のクロックのときLとなり、その他のクロックのときは
Hとなる。
では、誤り個数計算回路4の出力である制御信号F1が
LのときはY=Y1を選択し、出力する。Y2は、1重誤
りのときに使用するので、ここでは説明しない。そし
て、セレクタ回路8において誤り位置検出信号F2がH
のときすなわちi≠j、i≠kのときはこの位置が誤り
なしの位置であるとして0を選択し、F2がLのとき、
すなわちi=jまたはi=kのときはこの位置が誤り位
置であるとしてYを選択し、出力する。このときi=j
ならば
によって誤り訂正され、情報出力端子10に出力する。
る。受信語の先頭からn−j(0≦j≦n)シンボル目
に誤り数値が ej(≠0)の単一誤りが生じたときシン
ドローム生成回路2において S1=ejαj S2=ejα2j S3=ejα3j S4=ejα4j が計算される。そして、誤り個数計算回路4において、 A1=S1S3+S2 2=0 A2=S2S4+S3 2=0 となりNOR回路17は制御信号F1をHで出力する。
ここで、F1=Hとなるのは、1重誤りの場合か、後述
する誤りなしの場合でありF1=Hにより、1重以下の
誤りしか発生していないことがわかる。
したとき、誤り位置検出回路6において β1=αiS1+S2=ejαj(αi+αj) β2=αiS2+S3=ejα2j(αi+αj) β3=αiS3+S4=ejα3j(αi+αj) が計算される。ここで、セレクタ回路28では、誤り個
数計算回路4の出力である制御信号F1がHのときは、
上記のβ1、β2、β3 に対しOR回路27で論理和をと
ったものを誤り位置検出信号F2として出力する。すな
わち、i=jのとき誤り位置検出信号F2はLを出力
し、それ以外のときはHを出力する。ここで、β1、
β2、β3の論理和をF2として出力するのは、αi=αj
のときのみβ1=β2=β3=0となり、αi≠αjのとき
はいずれもゼロにならないことを利用したものである。
タ回路36では誤り個数計算回路4の出力である制御信
号F1がHのときY=Y2=S1/αi を選択し、出力す
る。そして、セレクタ回路8において、誤り位置検出信
号F2がHのとき、すなわちi≠jのときは0を選択
し、F2がLのときすなわちi=jのときは Y=Y2=
ejαj/αj=ejを選択し、出力する。そして、XOR
回路9によって誤り訂正し、情報出力端子10に出力す
る。
する。受信語に誤りが生じなかったときS1=S2=S3
=S4=0となり、誤り個数計算回路4の出力である制
御信号F1はA1=A2=0よりHとなり、誤り位置検出
回路6の出力F2はβ1=β2=β3=0より常にLとな
るが、誤り数値計算回路7はY=Y2=S1/αi=0を
セレクタ回路36で選択し、Y=0が出力されるため、
受信語がそのまま情報出力端子10に出力される。
ル訂正リードソロモン符号の誤り訂正復号装置におい
て、nシンボルの受信語R=(rn-1、rn-2、・・・、
r1、r0)を記憶する遅延回路と、シンドローム
3、4)を計算するシンドローム生成回路と、逐次的に
αi(i=n−1、n−2、・・・・、1、0)を生成
するシフトレジスタ回路と、上記シンドローム生成回路
とシフトレジスタの出力から βj=αiSj+Sj+1(j=
1、2、3)を計算し、β2 2+β1・β3の値から2重誤
りが生起したときの誤り位置を検出する誤り位置検出回
路と、上記誤り位置検出回路で検出された誤り位置の誤
り数値を計算する誤り数値計算回路と、誤りを訂正する
XOR回路を備えたことを特徴とする誤り訂正復号装置
を説明した。
=0が成立するかどうかにより2重誤りが生起した際の
誤り位置検出を行っていたが、図3に示したガロア体上
の乗算回路21、22を図6に示すように除算回路2
9、37に置き換え β2/β1+β3/β2=0が成立する
かどうかを調べることにより2重誤りが生起した際の誤
り位置検出を行っても上記実施例と同様の効果が得られ
る。なお、ここで除算回路29は、もともと、誤り数値
計算回路7内で用いられていたものを援用して用いてい
るので、回路の単純化も図れる。この実施例はβ2 2+β
1・β3=0 の変形を示したものであり、これは、β2/
β1+β3/β2=0と同義である。また、β2 2=β1・β3
でも同義であり、このような変形はすべてβ2 2+β1・
β3=0と同一のものである。
り立ったとき、除算回路29の出力は、上記実施例でi
=jのときβ2/β1=αk となり、もう1つの誤り位置
となるため、図7に示すように除算回路29の出力をセ
レクタ回路38に入力させて、シフトレジスタ回路5の
出力とセレクトするようにすれば上記実施例と同様の効
果が得られる。
に誤り訂正できるように構成したので、高速に誤り訂正
復号ができ、メモリの領域の小さいものが得られる効果
がある。
示すブロック図。
の詳細を示すブロック図。
の詳細を示すブロック図。
の詳細を示すブロック図。
算回路 15〜16、23〜26、34〜35 XOR回路 17 NOR回路 27 OR回路 28、36、38 セレクタ回路 30、31、37 ガロア体上の除算回路
Claims (1)
- 【請求項1】 nシンボルの受信語R=(rn-1、
rn-2、・・・、r1、r0)を記憶する遅延回路とシンド
ロームSj(j=1、2、3、4)を計算するシンドロー
ム生成回路と、逐次的に αi(i=n−1、n−2、・
・・、1、0、αは原始多項式の根)を生成するシフト
レジスタ回路と上記シンドローム生成回路とシフトレジ
スタの出力からβj=αiSj+Sj+1(j=1、2、3)
を計算し、β2 2+β1・β3の値から2重誤りが生起した
ときの誤り位置を検出する誤り位置検出回路と上記誤り
位置検出回路で検出された誤り位置の誤り数値を計算す
る誤り数値計算回路と誤りを訂正する回路を備えたこと
を特徴とする誤り訂正復号装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00314891A JP3223513B2 (ja) | 1991-01-16 | 1991-01-16 | 誤り訂正復号装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00314891A JP3223513B2 (ja) | 1991-01-16 | 1991-01-16 | 誤り訂正復号装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05298131A true JPH05298131A (ja) | 1993-11-12 |
JP3223513B2 JP3223513B2 (ja) | 2001-10-29 |
Family
ID=11549270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP00314891A Expired - Lifetime JP3223513B2 (ja) | 1991-01-16 | 1991-01-16 | 誤り訂正復号装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3223513B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009211742A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | 誤り訂正装置および誤り訂正方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9467174B2 (en) | 2014-03-14 | 2016-10-11 | Samsung Electronics Co., Ltd. | Low complexity high-order syndrome calculator for block codes and method of calculating high-order syndrome |
-
1991
- 1991-01-16 JP JP00314891A patent/JP3223513B2/ja not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009211742A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | 誤り訂正装置および誤り訂正方法 |
JP4672743B2 (ja) * | 2008-03-01 | 2011-04-20 | 株式会社東芝 | 誤り訂正装置および誤り訂正方法 |
US8312348B2 (en) | 2008-03-01 | 2012-11-13 | Kabushiki Kaisha Toshiba | Error correcting device and error correcting method |
Also Published As
Publication number | Publication date |
---|---|
JP3223513B2 (ja) | 2001-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5805617A (en) | Apparatus for computing error correction syndromes | |
US4841300A (en) | Error correction encoder/decoder | |
JPH0728227B2 (ja) | Bch符号の復号装置 | |
US4592054A (en) | Decoder with code error correcting function | |
JP3279624B2 (ja) | Crc演算に基づく1ビット誤り訂正回路 | |
Babaie et al. | Double bits error correction using CRC method | |
JP3454962B2 (ja) | 誤り訂正符号の符号器及び復号器 | |
US5666369A (en) | Method and arrangement of determining error locations and the corresponding error patterns of received code words | |
JP3248098B2 (ja) | シンドローム計算装置 | |
JPH05298131A (ja) | 誤り訂正復号装置 | |
JP3812983B2 (ja) | エラー評価多項式係数計算装置 | |
JP2622957B2 (ja) | Bch符号の符号化及び復号化方法 | |
KR930011573B1 (ko) | 2중 오류정정이 가능한 bch 코덱(codec) | |
JPS6217256B2 (ja) | ||
KR0137354B1 (ko) | 무선 데이타 통신에서의 에러검출 및 정정방법 | |
JP2752510B2 (ja) | 誤り訂正復号器 | |
JP3099890B2 (ja) | Bch符号の誤り訂正装置 | |
JP3595271B2 (ja) | 誤り訂正復号方法および装置 | |
CA1082815A (en) | Table lookup direct decoder for double-error- correcting (dec) bch codes using general pair of syndromes | |
KR100212829B1 (ko) | 리드 솔로몬 복호기의 신드롬 계산장치 | |
JP3268926B2 (ja) | 誤り訂正回路 | |
JP2534563B2 (ja) | 許容誤り逐次訂正回路 | |
KR100246342B1 (ko) | 리드솔로몬오류수정장치 | |
KR100192803B1 (ko) | 에러 정정 신드롬 계산 장치 | |
KR100192792B1 (ko) | 리드 솔로몬 복호기의 다항식 평가 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070824 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080824 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080824 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090824 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090824 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100824 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110824 Year of fee payment: 10 |