(57)【要約】【課題】  ターボ符号の復号を行う誤り訂正復号器に関して，復号演算精度を低下させることなく，演算処理量を削減した信号処理方式の提供を図る。【解決手段】  SOVA復号器は，ターボ復号器のタップの状態遷移をトレースバックするトレースバック処理部を有し，前記トレースバック処理部は，最も確からしい状態遷移を表す最尤パスであるかどうかを示す最尤パスフラグと，次に確からしい状態遷移を表す競合パスであるかどうかを示す競合パスフラグと，最尤パスと競合パスとの確からしさの差分に相当する尤度情報とを計算して，１ビットトレースバックする毎に硬判定値と軟判定値を確定する。【選択図】  図１
2005102274.tif 000002
【特許請求の範囲】
【請求項１】
タップの状態が複数あり，信号が１ビット入力される毎に前記タップの状態が変化するターボ復号器で符号化されたデータを軟判定ビタビアルゴリズム（SOVA）復号を行う復号器を有する誤り訂正復号器であって，
前記SOVA復号器は，前記ターボ復号器のタップの状態遷移をトレースバックするトレースバック処理部を有し，前記トレースバック処理部は，最も確からしい状態遷移を表す最尤パスであるかどうかを示す最尤パスフラグと，次に確からしい状態遷移を表す競合パスであるかどうかを示す競合パスフラグと，最尤パスと競合パスとの確からしさの差分に相当する尤度情報とを計算して，１ビットトレースバックする毎に硬判定値と軟判定値を確定する誤り訂正復号器。
【請求項２】
請求項１に記載の誤り訂正復号器であって，
前記トレースバック処理部は，１ビットトレースバックする毎に最尤パスから最尤パスに遷移する際に前記ターボ符号器に入力された符号を硬判定値として出力し，競合パスの集合を求め，これらの競合パスの内で前記尤度情報の最小値を軟判定値として出力することを特徴とする誤り訂正復号器。
【請求項３】
請求項１又は２の何れかに記載の誤り訂正復号器であって，
前記トレースバック処理部は，前記タップの状態数分のトレースバック計算モジュールを有し，各計算モジュールは，前記最尤パスフラグと，前記競合パスフラグと，前記尤度情報とを計算することを特徴とする誤り訂正復号器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，受信した符号化データの伝送誤りを訂正して復号する誤り訂正復号器に関し，特にターボ符号方式の誤り訂正復号器に関する。
【背景技術】
【０００２】
通信システムにおいて，データの伝送誤りを救済するために様々な誤り訂正符号化方式が採用されている。例えば，山口，他１名，“シャノン限界に迫る新しい符号化方式「ターボ符号」，日経エレクトロニクス, 1998年7月13, No.721, pp.163-177に記されているように誤り訂正能力の高い符号化方式としてターボ符号化方式が知られている。図２に示す通信システムでは，ターボ符号器201に再帰的組織畳込み符号器を二つ用意し，一つ目の畳込み符号器204では情報源の信号を入力順に符号化する。二つ目の畳込み符号器206に入力する前に，情報源の信号を一度メモリに蓄え，これをあるパターンに従った順番で取り出すインターリーバ205によってデータ順序を攪拌し，畳込み符号器206によって符号化する。
前記，二つの符号化出力より符号化データU,Y1,Y2が通信路202に送出される。この通信路202を介した符号化データU',Y1',Y2'が，ターボ復号器203に入力され，ターボ符号の復号処理を行って復号データU''を復元する。
【０００３】
ターボ復号器203は，復号器(D1,D2)207,209と，インタリーバ208,211とデインタリーバ210を含む。復号器(D1)207には，送信データU,Y1に相当するU',Y1'を入力して軟判定復号を行う。また，Y2'は原信号Xをインタリーブして畳込み符号化した送信データY2に相当し，復号器(D1)207の復号データをインタリーバ208により，Y2'に対応するようにインタリーブして復号器(D2)209に入力し，軟判定復号を行う。復号結果出力は，元のデータ順になるようにデインタリーバ210によってデインタリーブして復号出力U''を得る。この復号出力U''を受信データU'として再度復号器(D1)207に入力し，前述と同一の動作を繰り返す。この復号処理を複数回繰り返すことによって，ランダム発生するランダム誤りやバースト発生するバースト誤りを訂正することが可能となる。
【０００４】
復号器（D1，D2）の復号方式としては，例えばMAP(最大事後確率)復号化方式とSOVA（軟判定ビタビアルゴリズム）復号化方式があげられる。前者のMAP復号化方式は，受信データの移行確率を用いて前方用確率aと後方用確率bとを算出し，各時間（ビット）について前方用確率aと後方用確率bとを用いて“１”であるか又は“０”であるかの確率の大きい方（硬判定復号データ）とその差（軟判定値）とを求めるものである。
【０００５】
前記MAP復号化方式と比較して，SOVA復号化方式は誤り訂正の特性は劣化するものの演算量は少なくて済むことが知られている。
【０００６】
SOVA復号方式は，Claude Berrou et al, ”A Low Complexity Soft-Output Viterbi Decoder Architecture”, Proc.IEEE, 1993に示されている。図３にSOVA復号方式の動作概要の説明図を示す。畳込み符号器301は，符号器に信号が入力されるとタップの状態が遷移し，拘束長をKとすると2^(k-1)通りの状態が存在する。図３は，拘束長K=4の畳込み符号器301を示している。図３のタップの状態が，000，001，010，011，100，101，110，111となっているとき，それぞれ，State 0，State 1，State 2，State 3，State 4，State 5，State 6，State 7と定義する。State 6の状態で入力信号0が入力されると，次の状態はState 7となる。
このState 6の時点をBit=(-1)，State 7の時点をBit=0とすると，入力信号0によって，State 6からState 7へ状態が遷移したことになる。この状態遷移を逆にたどることによって，入力信号系列を求めることができる。状態遷移を逆にたどるトレースバックと呼ぶ。図３では，Bit=0でState 7，Bit=(-1)でState 6，Bit=(-2)でState 4というように，復号器に入力された信号からBit=(-63)までの信号系列に対して，状態遷移の可能性を調べ，最も確からしい最尤パスを追跡することによって，Bit=(-63)からBit=(-62)に状態遷移する際に入力された信号を硬判定値として出力する。
【０００７】
また，図３において，Bit=(-2)からBit=(-1)での入力信号が誤っていた場合を想定すると，別の状態遷移の可能性があるため，最尤パスの追跡の他に，Bit=(-1)からBit=(-2)で別の状態遷移について調べ，これを競合パスとして追跡する。
【０００８】
図３において，Bit=(-63)時点で前記最尤パスと競合パスに関して，それぞれのパスの確からしさの差分に相当する尤度情報を軟判定値として求める。
【０００９】
SOVA復号化方式において，誤り訂正能力の特性を発揮するためにトレースバックするビット数L（トレースバック長）は，拘束長Kの数倍程度必要であることが知られている。図４に，１ビットの復号結果を得るために，最低限必要なトレースバック長の値をL_min=64とした場合を示す。従来の技術では，Bit=0からBit=(-63)までのトレースバックを１回行うと，Bit=(-63)時点における１ビット分の硬判定値と軟判定値が得られる。１ビット分の硬判定値と軟判定値を得るために，１回のトレースバックでL_minに相当する演算量が必要で，復号する情報ビット数をNとすると，L_min×Nの演算量が必要となる。
【００１０】
【非特許文献１】“シャノン限界に迫る新しい符号化方式「ターボ符号」，日経エレクトロニクス, 1998年7月13, No.721, pp.163-177
【発明の開示】
【発明が解決しようとする課題】
【００１１】
従来の技術では，１回のSOVA復号結果を得るのに情報ビット数Nとトレースバック長L_minに比例して演算時間が大きくなるという問題がある。特に，ターボ復号処理では，復号出力を再度復号器に入力する繰り返し復号処理を行うため，伝送路の誤りが多い場合は，高い誤り訂正能力を実現するために繰り返し回数が多く必要とされる。繰り返し回数をITとするとトータルの演算量はIT×L_min×Nとなり，繰り返し回数が大きいほど演算時間が長くなり，信号処理に高い動作周波数が必要とされる。例えば，従来の技術によるハードウェア実装を行うと，伝送レート384kbit/secのターボ復号処理に必要な動作周波数は，繰り返し回数IT=16とすると，100MHzにもなる。移動端末の場合は特に低消費電力化が重要な課題であるため，動作周波数を低減させることが必要となる。
【００１２】
そこで，本発明では，SOVA復号化方式におけるトレースバック処理の演算時間を削減することを目的とする。
【課題を解決するための手段】
【００１３】
前記問題を解決するために，１回のトレースバックにおいて複数ビットの硬判定出力と軟判定値を求めるトレースバック処理方式を提供する。本発明のトレースバック回路の一実施例では，図５に示すように，トレースバックにおいて，最尤パスをたどる際に１ビットごとに最尤パス方向と反対に遷移するパスを競合パスとして記憶する。これにより，１回のトレースバックで競合パス全部について調べることができるため，各ビットにおける軟判定値を求めることが可能となる。従来の技術では，１回のトレースバックをLビット実行して軟判定値１ビット分を求めるが，本発明によればトレースバック開始点からの深さをMビットとすると，トレースバックをMビット実行して軟判定値１ビット分が求まる。トレースバック長が拘束長Kの数倍程度の最小値L_minを満たしていれば特性が保たれることになる。１回のトレースバックでLビット実行するとM>=L_minを満たすビットについて軟判定値が定まるため，L-L_minビット分の硬判定出力と軟判定値が１回のトレースバックで得られる。これにより，１回のトレースバックで複数ビットの復号結果が求められるため，情報長Nビット全部の復号結果を求めるためのトレースバック回数をN回からN/(L-L_min)回に減らすことが可能となり，演算時間を削減できる。
【発明の効果】
【００１４】
本発明によれば，情報長Nビットの復号を行う場合のトレースバックの演算量は，次式（２）のようにあらわすことができる。
[(N+L-L_min-1)/(L-L_min)]×L×S （２）
ただし，[x]はxを超えない最大の整数を表すものとする。Lは１回のトレースバックを行うビット数で，L_minはSOVA復号結果の軟判定値の信頼性を確保するために最低限必要なトレースバックのビット数を表す。また，Sは状態数を表し，トレース部の個数に相当する。従来の技術によるトレースバックの演算量は，次式（３）で表される。
N×L_min×2 （３）
ここで，最尤パスと競合パスの二つに対する演算量を考慮して，2倍している。
【００１５】
図１４に従来の技術と本発明の演算量比較を，N=512, L=64, L_min=32の場合を例として示す。状態数が32よりも小さい範囲では，本発明は従来の技術に比べて演算量が少なくて済むことがわかる。拘束長Kが小さく，状態数が少ない場合に，本発明が有効であると言える。
【００１６】
本発明により，拘束長Kが小さく状態数が少ないターボ符号において，ターボ復号器におけるSOVA復号の演算量が低減され，信号処理に必要とされるディジタル信号処理の動作周波数が低減できるという効果がある。例えば，従来の技術に比べて約1.4倍の49kGateのハードウェア実装で，伝送レート384kbit/secのターボ復号処理に必要な動作周波数は繰り返し回数IT=16として，12MHz程度となり，従来の技術の約1/8程度に抑えることができる。
【発明を実施するための最良の形態】
【００１７】
図６に本発明の復号器の一実施例を示す。この復号器は，復号器の入力として受信ターボ符号データを情報長分蓄える入力信号メモリ601と，軟判定ビタビアルゴリズムによるSOVA復号器602と，前記SOVA復号化による硬判定出力と軟判定値の復号結果を出力として格納する復号結果メモリ603と，前記復号データと軟判定情報を所定回数繰り返し演算させるときにインターリーブパターンによってアドレス制御を行う制御部604と，インタリーブパターンを格納したインタリーブパターンメモリ605とを備えている。インターリーブパターンによってアドレス制御を行う制御部604によって，繰り返し復号回数に応じてデータの流れが制御される。
【００１８】
図７により，データの流れを説明する。繰り返し復号奇数回目の処理では，通信路を通って受信されたターボ符号化データを格納した入力信号メモリ601より，U'をアドレス順に読み出した値をSOVA復号器602入力のC0として，Y1'をアドレス順に読み出した値をC1として使用する。SOVA復号器602の出力L(U')_nは，事前尤度情報Le(U')_(n-1)と通信路値U'を減算した後，外部情報尤度Le(U')_n=β×{L(U')_n  U'  Le(U')_(n-1)}として復号結果メモリ603にアドレス順に書き込まれる。繰り返し復号の初回は，事前尤度情報Le(U')_(n-1)を0とする。ここでβは軟判定値に対する信頼度を重み付けする係数であり，誤り訂正能力の特性に影響を与える。このβは，誤り訂正能力のビットエラーレートから通信路のノイズ状態を測定し，適応的に制御することが可能なものである。なお，このβで重み付けする箇所は図６では省略されている。次に，繰り返し復号偶数回目の処理では，入力信号メモリ601より，インタリーバ701によってインタリーブパタンに従って読み出した値をSOVA復号器入力のC0として，Y2'をアドレス順に読み出した値をC1として使用する。ここでインタリーバ701の機能は，図６のインタリーブパタンメモリ605から制御部604によってインタリーブパタンを読み出すことによって，入力信号メモリ601に対するアドレスを生成することにより実現する。事前尤度情報Le(U')_(n-1)は，前回の復号で得られた外部情報尤度を復号結果メモリ603からインタリーバ702によってインタリーブパタンに従って読み出した値を使用する。インタリーバ702の機能もインタリーバ701と同様にして実現される。
SOVA復号器602の出力L(U')_nは，事前尤度情報Le(U')_(n-1)と通信路値U'を減算した後，外部情報尤度Le(U')_n=β×{L(U')_n  U'  Le(U')_(n-1)}としてデインタリーバ703によって復号結果メモリ603にインタリーブパタンに従ったアドレスで書き込む。ここで，デインタリーバ703の機能も，インタリーバ701・702と同様にして実現される。つまり，図７におけるインタリーバ701・702とデインタリーバ703は，図６において制御部604とインタリーブパタンメモリ605で表されていることになる。遅延器606は，SOVA復号器602入力のC0とC2を加算したものを，SOVA復号器602の出力L(U')_nが求まるまで遅延させる回路であり，繰り返し復号最終回には０固定とする。
【００１９】
次にインタリーバ701・702，デインタリーバ703の機能の実現方法に関して，図６の制御部604とインタリーブパタンメモリ605の繰り返し復号実行時の動作を，図８を用いて説明する。繰り返し復号奇数回時は，入力信号メモリの読み出しアドレス，復号結果メモリの読み出しアドレス，書き込みアドレスは１ずつインクリメントするアドレス順となるため，制御部604は信号処理のタイミングにあわせてアドレス生成を行う。繰り返し復号偶数回時は，インタリーブパタンメモリのアドレス順にインタリーブパタンを読み出した値を，入力信号メモリの読み出しアドレス，復号結果メモリの読み出しアドレス，書き込みアドレスとして使用する。制御部604で各メモリに対する信号処理タイミングにあわせてアドレスを生成する。
【００２０】
次に，図６のSOVA復号器602について説明する。SOVA復号器602では，すべての状態遷移について遷移の確からしさ（メトリック値）と，遷移情報（パス値）と，ある状態に至るまでの遷移の確からしさの差分に相当する尤度情報（尤度値）とを求めるACS（Add-Compare-Select）回路607と，ACS回路607で求めたメトリック値を記憶するメトリックメモリ608と，パス値を記憶するパスメモリ102と，尤度値を記憶する尤度メモリ103と，パス値から最も確からしい遷移の軌跡を追跡するトレースバック回路101とを備えている。
【００２１】
まずACS回路607における実施の形態の例を図９に示す。ACS回路607では，状態遷移の基本構造（バタフライ）に対し，遷移ブランチ毎にブランチの確からしさb_metをSOVA復号器入力のC0,C1,C2の関数として求める。この関数は，符号器の構成に応じた関数となる。例えば，3GPP Release'99のターボ符号器の仕様を例とした場合，次式（１）で表される。
b_met = C0+C1+C2  : (State[0]^State[1]=0)
= -C0+C1-C2 : (State[0]^State[1]=1)    （1）
ここで，状態Stateを二進数表記し，LSB(Least Significant Bit)の1 bit目をState[0]，2 bit目をState[1]とし，^は排他論理を表すものとする。
【００２２】
図６のメトリック値を格納したメトリックメモリ608より，メトリック値MET_P0，MET_P1をロードし，それぞれACS回路における入力側の二つの状態に対するメトリック値とする。ここで，メトリック値MET_P0，MET_P1は１ビット前にACS回路で計算されてメトリックメモリ608に格納されたメトリック値の内，ACS回路の入力側に対応する二つの状態に対応するメトリック値が選択されるものとする。
図９では，状態0に対して入力信号0が入力された場合は状態0に遷移し，状態１に対して入力信号１が入力された場合は状態0に遷移する様子を表している。このとき，状態0に遷移する可能性としては，状態0から状態0への遷移と，状態１から状態0への遷移の二つの場合がある。状態0から状態0への遷移の確からしさAは，A=MET_P0+b_metで表され，状態1から状態0への遷移の確からしさBは，B=MET_P1-b_metで表される。この二つの遷移に対して遷移の確からしさを比較し，図９の例ではBの方がAよりも大きいため，状態１から状態0への遷移が確からしいことになる。同様にして状態４に対して遷移する可能性について調べると，図９では状態１から状態４への遷移が確からしいことになる。このように，図９では状態の遷移が確からしい道筋を太線で示してある。図９の場合，遷移の確からしさBの方がAよりも大きいため，パス値を１として定義する。逆にAの方が大きい場合は，パス値を0とする。同様にして，遷移の確からしさCとDを比較して，状態4に遷移するパス値をCがDよりも大きい場合は0とし，CがDより小さい場合は1とする。また，遷移の確からしさAとBの差分の絶対値を２で割った値を状態0の尤度値とし，同様にCとDの差分の絶対値を２で割った値を状態4の尤度値とする。ACS回路ですべての状態に対してメトリック値，パス値，尤度値を求め，それぞれメトリックメモリ608，パスメモリ102，尤度メモリ103に格納する。メトリック値の飽和を避けるため，１ビット前のACS回路処理で最大値をもつメトリック値を記憶しておき，各メトリック値から記憶したメトリック値を減算してからメトリックメモリ608に格納するようにするようにしてもよい。
【００２３】
図１にトレースバック回路の実施例の説明図を示す。トレースバック回路101は，トレースバック開始信号TR_LDをトリガとしてトレースバック開始時状態TR_STを初期状態とし，パスメモリ102から読み出したパス値と尤度メモリ103の尤度値を使って，硬判定値SIGNと軟判定値WGTを求めるものである。ただし，ここでP[0]からP[7]は，それぞれ状態0から状態7までに対するパス値を表すものとする。
【００２４】
トレースバック回路101は，状態数分のトレース部104と出力選択部105から構成される。トレース部104は，最も確からしい遷移を表す最尤パスフラグSFと，次に確からしい遷移を表す競合パスフラグCFと，最尤パスと競合パスの確からしさの差分を表す尤度情報Wを各状態について求める回路である。各トレース部104で求められた情報は，１ビット前の情報としてトレース部104にトレリス状態遷移に従ってフィードバックをかける構造になっている。例えば，図１ではBit=0の時点において，トレース部７で最尤パスフラグSF=1を求めている。この結果をBit=-1の時点においてトレース部７とトレース部６の入力としてフィードバックすることにより，トレース部７は競合パスフラグCF=1を，トレース部6は最尤パスフラグSF=1を求めている。このようにして，他のトレース部も同様な働きをすることによって，トレースバック処理が行われる。出力選択部105では，各状態のトレース部104の出力結果から，硬判定値SIGNと軟判定値WGTを計算する。
【００２５】
図１０にトレースバック回路のトレース部における最尤パスフラグSFを決定するアルゴリズムを示す。トレースバック開始時は，ACS回路で最もメトリック値の大きい状態をトレースバック開始時状態TR_STとし，状態TR_STに対応するトレース部の最尤パスフラグSFが１となるようにフラグを設定する。トレースバック処理中においては，１ビット前時点で最尤パスフラグSFが１であった状態から自状態に遷移してくるパスが，パスメモリから読み出したパス値と比べて正しい遷移を示していれば，自状態が最尤パスとして継承され，最尤パスフラグSFが１となる。
【００２６】
図１１にトレースバック回路のトレース部における競合パスフラグCFを決定するアルゴリズムを示す。トレースバック開始時は，全状態について競合パスは存在しないため，競合パスフラグCFを0にリセットする。また，自状態が最尤パスである場合には，競合パスとなり得ないので競合パスフラグCFは0になる。競合パスになる条件として，１ビット前において最尤パスであった状態から自状態に遷移するパスについて，パスメモリから読み出したパス値と比べて正しくない場合に，競合パスフラグCFが１となる。また，１ビット前において競合パスであった状態から自状態に遷移するパスについて，パスメモリから読み出したパス値と比べて正しい場合に，競合パスが継承されることになり，競合パスフラグCFが１となる。
【００２７】
図１２にトレースバック回路のトレース部における尤度情報Wを決定するアルゴリズムを示す。まずトレースバック開始時は，尤度情報を最大値に設定する。
また，自状態が最尤パスである場合も尤度情報を最大値に設定する。１ビット前において最尤パスであった状態から自状態に遷移するパスが，パスメモリから読み出したパス値と比べて正しくない場合には，最尤パスであった状態の尤度メモリから読み出した尤度値DELTAを尤度情報の候補W_1=DELTAとして保持する。１ビット前において競合パスであった状態から自状態に遷移するパスが，パスメモリから読み出したパス値と比べて正しい場合は，競合パスの状態における１ビット前の尤度情報W(1bit前)を尤度情報の候補W_2=W(1bit前)として保持する。尤度情報の候補W_1,W_2を比較して小さい値を自状態における尤度情報W=Min(W_1,W_2)として出力する。
【００２８】
図１３にトレースバック回路の出力選択部のアルゴリズムを示す。硬判定値SIGNを求めるためには，最尤パスフラグSF=1である状態STを選択し，１ビット前の最尤パスの状態から状態STに遷移する際に符号器で入力された符号を硬判定SIGNとして出力する。パス値を符号器で入力された符号とすれば，状態STにおけるパス値が硬判定値SIGNとして出力される。次に軟判定値WGTを求めるために，競合パスフラグCF=1である状態の集合Uを求める。集合Uに属するトレース部の尤度情報Wの最小値を軟判定値WGTとして出力する。
【図面の簡単な説明】
【００２９】
【図１】本発明におけるターボ復号方式実施例のトレースバック回路の説明図。
【図２】ターボ符号を用いた通信システムの説明図。
【図３】ターボ復号におけるトレースバックの説明図。
【図４】従来技術におけるトレースバックの問題点の説明図。
【図５】本発明におけるトレースバック方式の説明図。
【図６】本発明におけるターボ復号器の構成図。
【図７】本発明におけるターボ繰り返し復号時の動作説明図。
【図８】本発明におけるターボ復号器制御部の動作説明図。
【図９】本発明におけるターボ復号器ACS回路の説明図。
【図１０】トレースバック回路における最尤パスフラグ決定アルゴリズム。
【図１１】トレースバック回路における競合パスフラグ決定アルゴリズム。
【図１２】トレースバック回路における尤度情報決定アルゴリズム。
【図１３】トレースバック回路における硬判定値・軟判定値決定アルゴリズム。
【図１４】従来の復号処理と本発明の復号処理との演算量を比較したグラフ。
【符号の説明】
【００３０】
１０１…トレースバック回路，１０２…パスメモリ，１０３…尤度メモリ，１０４…トレース部，１０５…出力選択部，２０１…ターボ符号器，２０２…通信路，２０３…ターボ復号器，２０４，２０６…再帰的組織畳込み符号器，２０５，２０８，２１１…インタリーバ，２０７，２０９…復号器，２１０…デインタリーバ，３０１…畳込み符号器，６０１…入力信号メモリ，６０２…SOVA復号器，６０３…復号結果メモリ，６０４…制御部，６０５…インタリーブパタンメモリ，６０６…遅延器，６０７…ACS回路，６０８…メトリックメモリ3，７０１，７０２…インタリーバ，７０３…デインタリーバ。
【図１】
2005102274.tif 000003
【図２】
2005102274.tif 000004
【図３】
2005102274.tif 000005
【図４】
2005102274.tif 000006
【図５】
2005102274.tif 000007
【図６】
2005102274.tif 000008
【図７】
2005102274.tif 000009
【図８】
2005102274.tif 000010
【図９】
2005102274.tif 000011
【図１０】
2005102274.tif 000012
【図１１】
2005102274.tif 000013
【図１２】
2005102274.tif 000014
【図１３】
2005102274.tif 000015
【図１４】
2005102274.tif 000016