JPH06139346A - ハフマン復号化回路およびハフマン復号化方法 - Google Patents
ハフマン復号化回路およびハフマン復号化方法Info
- Publication number
- JPH06139346A JPH06139346A JP28486292A JP28486292A JPH06139346A JP H06139346 A JPH06139346 A JP H06139346A JP 28486292 A JP28486292 A JP 28486292A JP 28486292 A JP28486292 A JP 28486292A JP H06139346 A JPH06139346 A JP H06139346A
- Authority
- JP
- Japan
- Prior art keywords
- huffman
- decoding
- bit
- code
- data
- 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
- 238000000034 method Methods 0.000 title claims description 21
- 230000003068 static effect Effects 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 37
- 238000013139 quantization Methods 0.000 description 17
- 230000004044 response Effects 0.000 description 15
- 230000001186 cumulative effect Effects 0.000 description 13
- 238000000605 extraction Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000013144 data compression Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000013329 compounding Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- RRLHMJHRFMHVNM-BQVXCWBNSA-N [(2s,3r,6r)-6-[5-[5-hydroxy-3-(4-hydroxyphenyl)-4-oxochromen-7-yl]oxypentoxy]-2-methyl-3,6-dihydro-2h-pyran-3-yl] acetate Chemical compound C1=C[C@@H](OC(C)=O)[C@H](C)O[C@H]1OCCCCCOC1=CC(O)=C2C(=O)C(C=3C=CC(O)=CC=3)=COC2=C1 RRLHMJHRFMHVNM-BQVXCWBNSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Abstract
マン復号化回路を提供することである。 【構成】 複数のハフマン符号を符号長に基づいて3つ
のグループに分類する。6ビット以下のハフマン符号は
ロジック回路からなるデコード回路51によりデコード
する。7ビット以上12ビット以下のハフマン符号は、
スタティックRAMからなるメモリテーブル52により
デコードする。13ビット以上16ビット以下のハフマ
ン符号は、スタティックRAMからなるメモリテーブル
53によりデコードする。メモリテーブル52,53の
各々から出力されるトータルビット長データTBLから
付加ビット長データABLを減算することにより、ハフ
マン符号長データHCLが算出される。
Description
により符号化されたハフマン符号を復号するためのハフ
マン復号化回路およびハフマン復号化方法に関する。
でいる。そのため、画像データをそのままの形で処理す
るのは、メモリ容量および通信速度の点で実用的ではな
い。そこで、画像データ圧縮技術が重要となる。
PEG(Joint Photographic Expert Group )がある。
JPEGでは、非可逆符号化を行なうDCT(離散コサ
イン変換)方式と、二次元空間でDPCM(Differenti
alPCM)を行なう可逆符号化方式が採用されている。
以下、DCT方式の画像データ圧縮を説明する。
構成を示すブロック図である。
される原画像データにDCT変換を行ない、DCT係数
を出力する。量子化器200は、量子化テーブル400
を参照してDCT係数に量子化処理を行ない、量子化さ
れたDCT係数(以下、量子化DCT係数と呼ぶ)を出
力する。エントロピー符号化器300は、符号化テーブ
ル500を参照して量子化DCT係数にエントロピー符
号化処理を行ない、圧縮データを出力する。エントロピ
ー符号化の方式としてハフマン符号化方式が用いられ
る。
が、符号化テーブル500を参照して圧縮データにエン
トロピー復号化処理を行ない、量子化DCT係数を出力
する。逆量子化器700は、量子化テーブル400を参
照して量子化DCT係数に逆量子化処理を行ない、DC
T係数を出力する。逆DCT装置800は、DCT係数
に逆DCT変換を行ない、再生画像データを出力する。
に、画像データを複数の8×8画素ブロックに分割す
る。図12に示すように、1つの8×8画素ブロック内
の各画素データの値をPX Y (X,Y=0,…,7)で
示す。ここで、X,Yがブロック内の画素データの位置
を表わしている。
次式による二次元DCT変換を行なう。
U,VはDCT係数の位置を表わす。U=V=0の場合
にはCU =CV =1/√2となり、その他の場合にはC
U =C V =1となる。さらに、画素データPX Y のビッ
ト精度が8ビットの場合にはL S =128となり、画素
データPX Y のビット精度が12ビットの場合にはLS
=2048となる。
U V が得られる。DCT係数S0 0はDC係数と呼ば
れ、残りの63個のDCT係数はAC係数と呼ばれる。
流成分)を示している。式(1)に示されるように、各
画素データPX Y よりLS を引くことにより、DC係数
の期待値を0にレベルシフトしている。
ロックの左上および右下がそれぞれDCT係数S0 0 ,
S7 7 に対応している。DCT変換されたブロックの左
から右に進むにつれて高周波の水平周波数成分を多く含
み、上から下に進むにつれて高周波の垂直周波数成分を
多く含むことになる。
T係数SU V から64個の画素データPX Y (X,Y=
0,…,7)を得ることができる。
にLS を加えることにより、レベルシフト分を元に戻し
ている。
びその画素ブロックをDCT変換した結果を示す。図1
3からわかるように、DC係数および低周波成分のAC
係数の絶対値が大きくなっている。たとえば、DC係数
S0 0 は260、AC係数S 0 1 は49、AC係数S
1 0 は−79である。
ルQU V を用いて次式により線形量子化され、量子化D
CT係数rU V が得られる。
14に、量子化DCT係数rU V 、DCT係数SU V お
よび量子化テーブルQU V の関係が示される。
述のハフマン復号化で得られた量子化DCT係数をr
U V とすると、次式により逆量子化を行なう。
を制御することができる。量子化テーブルQU V の値を
小さく設定すると、量子化DCT係数rU V の値が大き
くなり、画質のよい画像を符号化することができる。逆
に、量子化テーブルQU V の値を大きく設定すると、量
子化DCT係数rU V の値が小さくなり、符号化情報量
は減少するが、画質は劣化する。
変えることにより、画質および符号化情報量を自由に制
御することができる。
般に、人間の視覚はローパスフィルタの特性を持ってい
るといわれており、高周波成分には鈍感である。したが
って、高周波成分に対応するDCT係数には荒い量子化
を行なってもその影響があまり目立たない。そのため、
図15に示すように、量子化テーブルの高周波成分には
大きな値が設定されている。
対して図15に示される量子化テーブルを用いて量子化
を行なった結果を示す。たとえば、S0 0 =260,Q
0 0=16であるので、r0 0 =round(260/
16)=16となる。また、S0 1 =49,Q0 1 =1
1であるので、r0 1 =round(49/11)=4
となる。さらに、S1 0 =−79,Q1 0 =12である
ので、r1 0 =round(49/12)=−7とな
る。
縮データが出力される。以下に示すように、DC係数と
AC係数とで符号化方法が異なる。
す。DC係数のハフマン符号化では、1つ前のブロック
のDC係数Di - 1 と現在のブロックのDC係数Di と
の差分の値(DC差分値)ΔDCi を符号化する。上述
したように、DC係数は8×8画素ブロックの画素デー
タの平均値を示している。したがって、コンピュータグ
ラフィック画像のような特殊な画像を除いて、隣接する
ブロックのDCT係数が大きく変化することはあまりな
い。そのため、DC差分値は0の近傍に集中する。DC
差分値を符号化することにより高能率な符号化が期待で
きる。
って16のグループに分類される。すなわち、図19の
テーブルに従って、求められたDC差分値がどのグルー
プに属するかを求める。たとえば、DC差分値0のグル
ープ番号SSSSは“0”であり、DC差分値−1,1
のグループ番号SSSSは“1”である。また、DC差
分値−3,−2,2,3のグループ番号SSSSは
“2”であり、DC差分値−7〜−4,4〜7のグルー
プ番号SSSSは“3”である。
テーブルを用いてハフマン符号に符号化される。たとえ
ば、グループ番号SSSSが“2”であるDC差分値に
はハフマン符号“011”が割当てられ、グループ番号
SSSSが“3”であるDC差分値にはハフマン符号
“100”が割当てられている。
DC差分値−7〜−4,4〜7が含まれるので、3ビッ
トの付加ビットにより8個のDC差分値のうち1つが特
定される。付加ビットはDC差分値の小さい方から順に
小さい値が割当てられる。たとえば、グループ番号
“2”の場合には、DC差分値−7に付加ビット“00
0”を割当て、DC差分値−6に付加ビット“001”
を割当て、DC差分値7に“111”を割当てる。
在のブロックのDC係数が16であるとすれば、DC差
分値は−9となる。図19のテーブルより、DC差分値
−9のグループ番号SSSSは“4”である。したがっ
て、図20のハフマン符号テーブルにより、グループ番
号“4”のハフマン符号は“101”となる。DC差分
値−9はグループ番号“4”に属するDC差分値のうち
小さい方から7番目であるため、図20に示すように、
付加ビットは“0110”となる。
す。AC係数のハフマン符号化では、図23に示すよう
に、AC係数が、まずジグザグスキャンによって一次元
に配列される。この一次元に配列されたAC係数は、以
下に説明するように、連続する“0”の係数(無効係
数)の長さを示すラン長と“0”以外の係数(有効係
数)の値とを用いて符号化される。すなわち、無効係数
のラン長NNNNと有効係数のグループ番号SSSSと
を用いてハフマン符号化される。
てグループ分けされる。図24に示すように、グループ
番号SSSSは有効係数が属するグループを限定するだ
けである。1つのグループに属する有効係数のうちの1
つを特定するために、付加ビットが用いられる。AC係
数のハフマン符号化では、ラン長NNNNとグループ番
号SSSSとの組合せに対してハフマン符号が割当てら
れる。図25に、AC係数のためのハフマン符号テーブ
ルを示す。そのハフマン符号テーブルを用いて、ラン長
/グループ番号がハフマン符号に符号化される。
は、最後の有効係数に対応するハフマン符号の直後に
“EOB”(End of Block)を付け、その
ブロックのハフマン符号化を終了する。ただし、ブロッ
ク内の最後のAC係数が0以外のときには、“EOB”
は付けない。また、無効係数のラン長が“15”を越え
る場合には、16の無効係数ごとに無効係数のラン長1
6を表わす“ZRL”を残りのラン長が15以下になる
まで続けて付けた後、残りのラン長をNNNNとしてハ
フマン符号化する。
フマン符号化を説明する。まず、最初のAC係数の有効
係数はr0 1 =4である。図24のテーブルより、グル
ープ番号SSSSは“3”となる。また、無効係数のラ
ン長NNNNは0である。したがって、図25のハフマ
ン符号テーブルより、ハフマン符号は“100”とな
る。図26に示すように、有効係数4はグループ番号
“3”に属するAC係数のうち小さい方から5番目であ
るので、付加ビットは“100”となる。よって、有効
係数r0 1 は“100100”と符号化される。
ープ番号SSSSは“3”であり、無効係数のラン長N
NNNは0である。図26に示すように、有効係数−7
はグループ番号“3”に属するAC係数のうち最も小さ
いので、付加ビットは“000”となる。よって、有効
係数r1 0 は“100000”と符号化される。
はr1 1 =3である。図24のテーブルよりグループ番
号SSSSは“2”となる。この場合、AC係数r2 0
が0であるので、ラン長NNNNは1となる。したがっ
て、図25のハフマン符号テーブルよりハフマン符号は
“11011”となる。図26に示すように、有効係数
3はグループ番号“2”に属するAC係数のうち最も大
きいので、付加ビットは“11”となる。よって、AC
係数r2 0 ,r1 1 は“1101111”と符号化され
る。
図27に示すように、8×8画素ブロックの64個の画
素データを、連続する符号化データ(圧縮データ)に符
号化することができる。
長のハフマン符号および可変長の付加ビットからなる。
ハフマン符号の長さをハフマン符号長と呼び、付加ビッ
トの長さを付加ビット長と呼ぶ。また、ハフマン符号長
と付加ビット長との合計をトータルビット長と呼ぶ。ハ
フマン符号長および付加ビット長は各圧縮データによっ
て異なる。
示すブロック図である。
2ビットが、ラッチイネーブル機能を有する32ビット
のレジスタ1に並列に与えられる。レジスタ1の出力デ
ータは、同様にラッチイネーブル機能を有する32ビッ
トのレジスタ2に与えられる。レジスタ2の出力データ
およびレジスタ1の出力データは、64ビットのバレル
シフタ3に並列に与えられる。バレルシフタ3は、与え
られたデータを最大32ビットまでビットシフトする機
能を有する。
の16ビットは、メモリテーブル12に与えられる。メ
モリテーブル12は、与えられた16ビットのデータに
基づいて、トータルビット長データTBL、エンドオブ
ブロック符号EOB、ラン長データRL、付加ビット長
データABLおよびハフマン符号長データHCLを出力
する。
2から与えられるトータルビット長データTBLを累積
加算してバレルシフタ3のシフト量を算出する。加算器
6は、累積加算結果が32以上になるとキャリー信号C
Rを出力する。5ビットのレジスタ7は、加算器6の出
力データをラッチする。デコーダ8は、レジスタ7の出
力データをデコードしてバレルシフタ3のシフト量を制
御する。
から出力されるエンドオブブロック符号EOB、ラン長
データRL、付加ビット長データABLおよびハフマン
符号長データHCLならびにバレルシフタ3に保持され
る先頭の32ビットのデータをラッチする。付加ビット
抽出回路10は、レジスタ9から出力される付加ビット
長データABLおよびハフマン符号長データHCLに基
づいて32ビットのデータから付加ビットABを抽出す
る。
キャリー信号CRを受け、レジスタ1,2にラッチイネ
ーブル信号LE1を与え、レジスタ7,9にラッチイネ
ーブル信号LE2を与える。また、コントロール回路1
3は、メモリテーブル12の読出動作を制御する制御信
号CNTを発生する。
ル回路13にはクロック信号CKが与えられ、レジスタ
7およびコントロール回路13にはリセット信号RST
が与えられる。
を説明する。まず、リセット信号RSTによりコントロ
ール回路13がリセットされ、かつレジスタ7の内容が
0にクリアされる。それにより、デコーダ8から出力さ
れるバレルシフタ3のシフト量が0に設定される。
するハフマン符号)がデコードされる。コントロール回
路13からのイネーブル信号LE1によりレジスタ2に
圧縮データの最初の32ビットがラッチされ、レジスタ
1に圧縮データの次の32ビットがラッチされる。それ
により、バレルシフタ3にレジスタ2から出力される最
初の32ビットの圧縮データおよびレジスタ1から出力
される次の32ビットの圧縮データが与えられる。
16ビットが、アドレス信号としてメモリテーブル12
に与えられる。コントロール回路13からの制御信号C
NTに応答してメモリテーブル12の読出動作が行なわ
れる。それにより、先頭の16ビットのデータに含まれ
るDCハフマン符号に対応するハフマン符号長データH
CL、付加ビット長データABLおよびトータルビット
長データTBLが出力される。トータルビット長データ
TBLは、加算器6に与えられ、累積加算される。
7,9にラッチイネーブル信号LE2を与える。レジス
タ7は、ラッチイネーブル信号LE2に応答して加算器
6の累積加算結果をラッチしてデコーダ8に与える。デ
コーダ8は、レジスタ7からの累積加算結果をデコード
してバレルシフタ3にシフト量を示すシフト信号を与え
る。バレルシフタ3は、圧縮データを累積加算結果分ビ
ットシフトする。
2に応答して、メモリテーブル12から読出されたハフ
マン符号長データHCLおよび付加ビット長データAB
Lならびにバレルシフタ3から出力される32ビットの
データをラッチして出力する。付加ビット抽出回路10
は、ハフマン符号長データHCLおよび付加ビット長デ
ータABLに基づいて、32ビットのデータから付加ビ
ットABを抽出する。このようにして、DCハフマン符
号のデコードが終了する。
に対応するハフマン符号)がデコードされる。ACハフ
マン符号のデコード時には、メモリテーブル12から、
ハフマン符号長データHCL、付加ビット長データAB
L、ラン長データRLおよびトータルビット長データT
BLが出力される。
上になると、加算器6からキャリー信号CRが出力され
る。コントロール回路13は、キャリー信号CRに応答
して、レジスタ1にラッチイネーブル信号LE1を与え
る。それにより、バレルシフタ3の後半の32ビットに
新たな32ビットの圧縮データが与えられる。
エンドオブブロック符号EOBが読出されるまで、AC
ハフマン符号のデコードが続けられる。
およびラン長データRLに基づいて量子化DCT係数を
得ることができる。
回路において、ハフマン符号化の速度は、バレルシフタ
3、加算器6、デコーダ8およびメモリテーブル12を
構成するハードウェアの動作速度により決定される。こ
れらのうち、メモリテーブル12のアクセス時間が、ハ
フマン符号化処理の高速化の妨げとなっている。
符号の最大符号長に等しい16ビットの圧縮データがア
ドレス信号として与えられる。そのため、メモリテーブ
ル12のアドレス空間は21 6 ワードとなる。このよう
に、メモリテーブル12の容量が非常に大きくなる。
後半のビットでメモリテーブルを分割することにより必
要なメモリ容量を減らすことが行なわれている。しか
し、それでも、ハフマン符号の数の約5〜6倍のメモリ
容量が必要となる。このように、依然としてハフマン復
号化回路の回路規模は大きい。
にハフマン復号化処理を行なうことができるハフマン復
号化回路およびハフマン復号化方法を提供することであ
る。
ン復号化回路は、複数のデコード手段および選択手段を
備える。複数のハフマン符号は符号長に基づいて複数の
グループに分類される。複数のデコード手段は、複数の
グループに対応して設けられかつ各々が対応するグルー
プ内のハフマン符号をデコードする。選択手段は、与え
られたハフマン符号の先頭ビットから連続する同一値の
ビット数に基づいて複数のデコード手段の1つを選択し
て活性化する。
る第1のデコード手段およびロジック回路からなる第2
のデコード手段を含んでもよい。第1のデコード手段は
長い符号長のハフマン符号を含むグループに割当てら
れ、第2のデコード手段は短い符号長のハフマン符号を
含むグループに割当てられる。
長およびトータルビット長を出力する。付加ビット長お
よびトータルビット長からハフマン符号長を算出する演
算手段をさらに含んでもよい。
ステップを含む。複数のハフマン符号を符号長に基づい
て複数のグループに分類する。与えられたハフマン符号
をデコードする複数のデコード手段を複数のグループに
それぞれ割当てる。与えられたハフマン符号の先頭ビッ
トから連続する同一値のビット数に基づいて複数のデコ
ード手段の1つを選択して活性化する。
る第1のデコード手段およびロジック回路からなる第2
のデコード手段を含んでもよい。第1のデコード手段を
長い符号長のハフマン符号を含むグループに割当て、第
2のデコード手段を短い符号長のハフマン符号を含むグ
ループに割当てる。
マン復号化方法においては、複数のハフマン符号が符号
長に基づいて複数のグループに分類され、複数のグルー
プに複数のデコード手段がそれぞれ割当てられる。それ
により、デコード手段の全体の容量および回路規模が小
さくなる。
号長のハフマン符号では先頭ビットからあるビットまで
同一値が連続し、短い符号長のハフマン符号では先頭ビ
ットからあるビットまでに異なる値が混在する。
続する同一値のビット数に基づいて、与えられたハフマ
ン符号がどのグループに属するかを判別することがで
き、そのグループに割当てられたデコード手段を選択す
ることができる。
の高いデータには短い符号長のハフマン符号が割当てら
れ、出現頻度の低いデータには長い符号長のハフマン符
号が割当てられる。
ード手段は、動作速度は速いが回路規模が比較的大きく
なる。それに対して、メモリ素子により構成されるデコ
ード手段は、動作速度は速くないが、回路規模は比較的
小さくなる。
ハフマン符号を高速動作が可能なロジック回路によりデ
コードし、出現頻度の低い長い符号長のハフマン符号を
回路規模が小さいメモリ素子によりデコードすると、全
体として、高速動作が可能でかつ回路規模が小さい復号
化回路が得られる。
長からハフマン符号長を算出する演算手段をさらに設け
れば、各デコード手段が付加ビット長、トータルビット
長およびハフマン符号長を出力する場合に比べて、各デ
コード手段の回路規模が小さくなる。
号化回路およびハフマン復号化装置を図面を参照しなが
ら詳細に説明する。
フマン復号化方法では、図1に示すようにハフマン符号
がハフマン符号長に基づいて3つのグループG1,G
2,G3に分類される。
符号はグループG1に割当てられ、ハフマン符号長が7
ビット以上12ビット以下のハフマン符号はグループG
2に割当てられ、ハフマン符号長が13ビット以上16
ビット以下のハフマン符号はグループG3に割当てられ
る。
る。6ビット以下のハフマン符号では、先頭ビットから
第4ビットまでに少なくとも1つの“0”が存在する。
また、7ビット以上12ビット以下のハフマン符号で
は、先頭ビットから第4ビットまでがすべて“1”であ
りかつ第5ビットから最終ビットまでに少なくとも1つ
の“0”が存在する。さらに、13ビット以上16ビッ
ト以下のハフマン符号では、先頭ビットから第9ビット
までがすべて“1”となっている。
られたハフマン符号がグループG1,G2,G3のいず
れに属するかを判別することができる。
のロジック回路からなるデコード回路によりデコードさ
れ、グループG2,G3に属するハフマン符号はRAM
(ランダムアクセスメモリ)からなるメモリテーブルに
よりデコードされる。
ループG1のハフマン符号を含む圧縮データの先頭ビッ
トから第6ビットまでが入力される。
頭ビットから第4ビットまでがすべて“1”であるの
で、第5ビットから第12ビットまでを用いて1つのハ
フマン符号を特定することができる。そのため、メモリ
テーブルには、グループG2のハフマン符号を含む圧縮
データの第5ビットから第12ビットまでがアドレス信
号として与えられる。
頭ビットから第9ビットまでがすべて“1”であるの
で、第10ビットから第16ビットまでを用いて1つの
ハフマン符号を特定することができる。そのため、メモ
リテーブルには、グループG3のハフマン符号を含む圧
縮データの第10ビットから第16ビットまでがアドレ
ス信号として与えられる。
て、デコード回路の回路規模が小さくなり、かつ各メモ
リテーブルに必要なメモリ容量が小さくなる。
マン符号を高速のロジック回路によりデコードすること
によって、ハフマン復号化回路の全体の処理速度が高速
化する。なお、シミュレーションによれば、6ビット以
下のハフマン符号の出現頻度は約85%である。
回路の主要部の構成を示すブロック図である。
マン復号化回路と異なるのは、メモリテーブル12の代
わりにデコーダ4およびデコーダブロック5が設けら
れ、コントロール回路13の代わりにコントロール回路
11が設けられている点である。
は、ラッチイネーブル機能を有する32ビットのレジス
タ1に並列に与えられる。レジスタ1の出力データは、
同様にラッチイネーブル機能を有する32ビットのレジ
スタ2に与えられる。レジスタ2の出力データおよびレ
ジスタ1の出力データは、64ビットのバレルシフタ3
に並列に与えられる。バレルシフタ3は、与えられたデ
ータを最大32ビットまでビットシフトする機能を有す
る。
の16ビットは、デコーダ4およびデコーダブロック5
に与えられる。デコーダ4は、バレルシフタ3から与え
られる16ビットのデータに基づいて、与えられたデー
タが6ビット以下のハフマン符号(グループG1)を含
むか、7ビット以上12ビット以下のハフマン符号(グ
ループG2)を含むかあるいは13ビット以上16ビッ
ト以下のハフマン符号(グループG3)を含むかを検出
し、デコーダ選択信号DS1,DS2,DS3を発生す
る。
11から与えられるDC符号選択信号DCSLがアクテ
ィブ状態のときには、デコーダ選択信号DS1,DS
2,DS3を出力しない。
DC1,DC2,DC3に応答して、バレルシフタ3か
ら与えられる16ビットのデータをデコードし、トータ
ルビット長データTBL、エンドオブブロック符号EO
B、ラン長データRL、付加ビット長データABLおよ
びハフマン符号長データHCLを発生する。
5から与えられるトータルビット長データTBLを累積
加算してバレルシフタ3のシフト量を算出する。加算器
6は、累積加算結果が32以上になると、キャリー信号
CRを出力する。5ビットのレジスタ7は、加算器6の
出力データをラッチする。デコーダ8は、レジスタ7の
出力データをデコードしてバレルシフタ3のシフト量を
制御する。
から出力されるエンドオブブロック符号EOB、ラン長
データRL、付加ビット長データABLおよびハフマン
符号長データHCLならびにバレルシフタ3から出力さ
れる先頭の32ビットのデータをラッチする。付加ビッ
ト抽出回路10は、レジスタ9から出力される付加ビッ
ト長データABLおよびハフマン符号長データHCLに
基づいて、バレルシフタ3から出力される32ビットの
データから付加ビットABを抽出する。
り発生されるデコーダ選択信号DC1および加算器6か
ら出力されるキャリー信号CRを受け、レジスタ1,2
にラッチイネーブル信号LE1を与え、レジスタ7,9
にラッチイネーブル信号LE2を与える。
ル回路11にはクロック信号CKが与えられ、レジスタ
7およびコントロール回路11にはリセット信号RST
が与えられる。
を示すブロック図である。デコーダブロック5は、デコ
ード回路51、メモリテーブル52、メモリテーブル5
3、デコード回路54、減算器55、3ステートバッフ
ァ56およびゲート回路57を含む。
なロジック回路により構成され、メモリテーブル52,
53はRAMにより構成される。
データの先頭ビットから第6ビットまでが与えられる。
メモリテーブル52には、16ビット圧縮データの第5
ビットから第12ビットまでが与えられる。メモリテー
ブル53には、16ビットの圧縮データの第10ビット
から第16ビットまでが与えられる。デコード回路54
には、16ビットの圧縮データの先頭ビットから第9ビ
ットまでが与えられる。
S1に応答して活性化され、6ビット以下のACハフマ
ン符号をデコードして、ハフマン符号長データHCL、
ラン長データRL、付加ビット長データABL、トータ
ルビット長データTBLおよびエンドオブブロック符号
EOBを出力する。メモリテーブル52は、デコーダ選
択信号DC2に応答して活性化され、7ビット以上12
ビット以下のACハフマン符号をデコードして、ラン長
データRL、付加ビット長データABLおよびトータル
ビット長データTBLを出力する。メモリテーブル53
は、デコーダ選択信号DS3に応答して活性化され、1
3ビット以上16ビット以下のACハフマン符号をデコ
ードして、ラン長データRL、付加ビット長データAB
Lおよびトータルビット長データTBLを出力する。
CSLに応答して活性化され、DCハフマン符号をデコ
ードして、ハフマン符号長データHCL、付加ビット長
データABLおよびトータルビット長データTBLを出
力する。
から出力されるトータルビット長データTBLから付加
ビット長データABLを減算し、ハフマン符号長データ
HCLを出力する。減算器55から出力されるハフマン
符号長データHCLは3ステートバッファ56に与えら
れる。一方、ゲート回路57の一方の入力端子にはデコ
ーダ選択信号DC2が与えられ、他方の入力端子にはデ
コーダ選択信号DS3が与えられる。3ステートバッフ
ァ56はゲート回路57の出力信号により制御される。
かがアクティブ状態になると、3ステートバッファ56
は同通状態となり、デコーダ選択信号DC2,DC3の
両方が非アクティブ状態になると、3ステートバッファ
56は高インピーダンス状態になる。
復号化回路の動作を説明する。まず、リセット信号RS
Tによりコントロール回路11がリセットされ、かつレ
ジスタ7の内容が0にクリアされる。それにより、デコ
ーダ8から出力されるバレルシフタ3のシフト量が0に
設定される。
る。コントロール回路11は、DC符号選択信号CDS
Lをアクティブ状態にする。このとき、デコーダ4から
発生されるデコーダ選択信号DC1,DC2,DC3は
すべて非アクティブ状態となっている。それにより、デ
コーダブロック5内のデコード回路54が活性状態にな
り、デコード回路51およびメモリテーブル52,53
が非活性状態になる。
イネーブル信号LE1によりレジスタ2に圧縮データの
最初の32ビットがラッチされ、レジスタ1に圧縮デー
タの次の32ビットがラッチされる。それにより、バレ
ルシフタ3に、レジスタ2から出力される最初の32ビ
ットの圧縮データおよびレジスタ1から出力される次の
32ビットの圧縮データが与えられる。
16ビットはデコーダ4およびデコーダブロック5に与
えられる。デコーダブロック5内のデコード回路51に
より16ビットの圧縮データに含まれるDCハフマン符
号がデコードされ、ハフマン符号長データHCL、付加
ビット長データABLおよびトータルビット長データT
BLが出力される。トータルビット長データTBLは加
算器6に与えられ、累積加算される。
出力されるデコード終了信号(図示せず)に応答してラ
ッチイネーブル信号LE1,LE2のタイミングを制御
する。コントロール回路11は、デコーダ4からデコー
ド終了信号を受けると、直ちにレジスタ7,9にラッチ
イネーブル信号LE2を与える。
2に応答して、加算器6の累積加算結果をラッチしてデ
コーダ8に与える。デコーダ8は、レジスタ7からの累
積加算結果をデコードして、バレルシフタ3にシフト量
を示すシフト信号を与える。バレルシフタ3は、圧縮デ
ータを累積加算結果分ビットシフトする。
2に応答して、デコーダブロック5から出力されるハフ
マン符号長データHCLおよび付加ビット長データAB
Lならびにバレルシフタ3から出力される32ビットの
圧縮データをラッチして出力する。付加ビット抽出回路
10は、レジスタ9から与えられるハフマン符号長デー
タHCLおよび付加ビット長データABLに基づいて、
32ビットの圧縮データから付加ビットABを抽出して
出力する。
と、コントロール回路11は、DC符号選択信号DCS
Lを非アクティブ状態にする。それにより、デコーダ4
は、バレルシフタ3から与えられる16ビットの圧縮デ
ータに基づいて、デコーダ選択信号DS1,DS2,D
S3の1つをアクティブ状態にする。
になると、デコーダブロック5内のデコード回路51に
より圧縮データに含まれるACハフマン符号がデコード
され、ハフマン符号長データHCL、ラン長データR
L、付加ビット長データABLおよびトータルビット長
データTBLが出力される。
になると、デコーダブロック5内のメモリテーブル52
から、圧縮データに含まれるACハフマン符号に対応す
るラン長データRL、付加ビット長データABLおよび
トータルビット長データTBLが読出される。
になると、デコーダブロック5内のメモリテーブル53
から、圧縮データに含まれるACハフマン符号に対応す
るラン長データRL、付加ビット長データABLおよび
トータルビット長データTBLが読出される。
ィブ状態のときには、コントロール回路11から減算器
55に与えられるイネーブル信号SEがアクティブ状態
になり、減算器55が活性化される。減算器55は、ト
ータルビット長データTBLから付加ビット長データA
BLを減算し、ハフマン符号長データHCLを3ステー
トバッファ56に与える。このとき、ゲート回路57の
出力信号はアクティブ状態となっているので、3ステー
トバッファ56は同通状態となる。したがって、ハフマ
ン符号長データHCLが3ステートバッファ56から出
力される。減算器55の演算は加算器6の演算と並列に
行なわれるので、減算器55の演算により処理時間が増
大することはない。このように減算器55を用いてハフ
マン符号長データHCLを算出することによりメモリテ
ーブル52,53のメモリ容量を削減することが可能と
なる。
デコード終了信号を受けると、レジスタ7,9にラッチ
イネーブル信号LE2を与える。レジスタ7は、ラッチ
イネーブル信号LE2に応答して、加算器6の累積加算
結果をラッチしてデコーダ8に与える。デコーダ8は、
レジスタ7から与えられる累積加算結果をデコードし
て、バレルシフタ3にシフト量を示すシフト信号を与え
る。バレルシフタ3は、圧縮データを累積加算結果分ビ
ットシフトする。
2に応答して、デコーダブロック5から出力されるハフ
マン符号長データHCL、付加ビット長データABLお
よびラン長データRLならびにバレルシフタ3から出力
される32ビットの圧縮データをラッチして出力する。
付加ビット抽出回路10は、レジスタ9から出力される
ハフマン符号長データHCLおよび付加ビット長データ
ABLに基づいて、32ビットの圧縮データから付加ビ
ット長ABを抽出して出力する。
上になると、加算器6からキャリー信号CRが出力され
る。コントロール回路11は、キャリー信号CRに応答
して、レジスタ1にラッチイネーブル信号LE1を与え
る。これにより、バレルシフタ3の後半の32ビットに
新たな32ビットの圧縮データが与えられる。
デコード回路51からエンドオブブロック符号EOBが
出力されるまで、ACハフマン符号のデコードが続けら
れる。
ある。デコーダ4は、4入力ANDゲート41、6入力
NANDゲート42および2入力NANDゲート43を
含む。
16ビットの圧縮データの先頭ビットから第4ビットま
でが与えられる。ANDゲート41の出力端子からデコ
ーダ選択信号DS1が出力される。NANDゲート42
の1つの入力端子にはANDゲート41の出力信号が与
えられ、残りの5つの入力端子には16ビットの圧縮デ
ータの第5ビットから第9ビットまでが与えられる。N
ANDゲート42の出力端子からデコーダ選択信号DS
3が出力される。NANDゲート43の一方の入力端子
にはNANDゲート42の出力信号が与えられ、他方の
入力端子にはANDゲート41の出力信号が与えられ
る。NANDゲート43の出力端子からデコーダ選択信
号DS2が出力される。
第4ビットまでの少なくとも1つが“0”であれば、A
NDゲート41から出力されるデコーダ選択信号DS1
がローレベル(アクティブ状態)となる。このとき、N
ANDゲート42から出力されるデコーダ選択信号DS
3およびNANDゲート43から出力されるデコーダ選
択信号DS2はハイレベル(非アクティブ状態)とな
る。
第4ビットまでがすべて“1”であれば、ANDゲート
41から出力されるデコーダ選択信号DS1はハイレベ
ルとなる。このとき、16ビットの圧縮データの第5ビ
ットから第9ビットまでの少なくとも1つが“0”であ
れば、NANDゲート42から出力されるデコーダ選択
信号DS3がハイレベルとなり、NANDゲート43か
ら出力されるデコーダ選択信号DS2がローレベル(ア
クティブ状態)となる。
第9ビットまでがすべて“1”であれば、ANDゲート
41から出力されるデコーダ選択信号DS1がハイレベ
ルとなり、NANDゲート42から出力されるデコーダ
選択信号DS3がローレベル(アクティブ状態)とな
る。このとき、NANDゲート43から出力されるデコ
ーダ選択信号DS2をハイレベルとなる。
ロック図である。デコーダ回路51は、組合せ回路51
1、および6ビット以下のハフマン符号の数と同じ数の
19ビットのレジスタ512を含む。
データの先頭ビットから第6ビットまでが与えられる。
各レジスタ512には、ACハフマン符号に対応するハ
フマン符号長データHCL、ラン長データRL、付加ビ
ット長データABLおよびトータルビット長データTB
Lが予め記憶される。また、エンドオブブロック符号E
OBが、該当するレジスタ512に予め記憶される。
って、複数のレジスタ512の1つが選択され、選択さ
れたレジスタ512からハフマン符号長データHCL、
ラン長データRL、付加ビット長データABLおよびト
ータルビット長データTBLが出力される。選択された
レジスタ512にエンドオブブロック符号EOBが記憶
されている場合には、エンドオブブロック符号EOBも
出力される。
ブロック図である。メモリテーブル52はスタティック
RAM521からなる。
22には、16ビットの圧縮データの第5ビットから第
12ビットまでがアドレス信号として与えられる。
は8ビットであるので、スタティックRAM521のア
ドレス空間は28 ワードとなる。スタティックRAM5
21の各アドレスには、ハフマンAC符号に対応するラ
ン長データRL、付加ビット長データABLおよびトー
タルビット長データTBLが予め記憶される。
22に与えられるデータに従って、データ線523を介
してラン長データRL、付加ビット長データABLおよ
びトータルビット長データTBLが読出される。
ブロック図である。メモリテーブル53はスタティック
RAM531からなる。
32には、16ビットの圧縮データの第10ビットから
第16ビットまでがアドレス信号として与えられる。
ドレス信号は7ビットであるので、スタティックRAM
531のアドレス空間は27 ワードとなる。スタティッ
クRAM531の各アドレスには、ACハフマン符号に
対応するラン長データRL、付加ビット長データABL
およびトータルビット長データTBLが予め記憶され
る。
32に与えられるデータに従って、データ線533を介
してラン長データRL、付加ビット長データABLおよ
びトータルビット長データTBLが読出される。
ロック図である。デコード回路54は、組合せ回路54
1、およびDCハフマン符号の数と等しい数の14ビッ
トのレジスタ542を含む。
データの先頭ビットから第9ビットまでが与えられる。
各レジスタ542には、DCハフマン符号に対応するハ
フマン符号長データHCL、付加ビット長データABL
およびトータルビット長データTBLが予め記憶され
る。
って、複数のレジスタ542の1つが選択され、選択さ
れたレジスタ542からハフマン符号長データHCL、
付加ビット長データABLおよびトータルビット長デー
タTBLが出力される。
9に示されるデコード回路54の動作速度は、図7に示
されるメモリテーブル52および図8に示されるメモリ
テーブル53の動作速度よりも1桁速い。上記実施例の
ように、デコードブロック5を構成することによって、
ハフマン復号化回路の処理速度が高速になり、かつ回路
規模が小さくなる。
ハフマン符号を符号長に基づいて複数のグループに分類
し、複数のグループに複数のデコード手段をそれぞれ割
当てることにより、デコード手段の全体の容量および回
路規模が小さくなる。
ン符号を高速動作が可能なロジック回路によりデコード
し、かつ出現頻度の低い長い符号長のハフマン符号を回
路規模が小さいメモリ素子によりデコードすることによ
り、全体として、高速動作が可能でかつ回路規模が小さ
いハフマン復号化回路が得られる。
ト長からハフマン符号長を算出する演算手段をさらに設
けることによって、各デコード手段の回路規模をさらに
縮小することが可能となる。
ハフマン復号化方法におけるハフマン符号のグループ化
を示す図である。
際にデコード回路またはメモリテーブルに与えられるビ
ットを示す図である。
部の構成を示すブロック図である。
ブロックの詳細な構成を示すブロック図である。
の詳細な構成を示す回路図である。
路の構成を示すブロック図である。
ブルの構成を示すブロック図である。
ブルの構成を示すブロック図である。
路の構成を示すブロック図である。
構成を示すブロック図である。
ブロックを示す図である。
を示す図である。
テーブルの関係を示す図である。
ある。
示す図である。
る。
ある。
る。
す図である。
る。
示すブロック図である。
Claims (5)
- 【請求項1】 複数のハフマン符号が符号長に基づいて
複数のグループに分類され、前記複数のグループに対応
して設けられかつ各々が対応するハフマン符号をデコー
ドするための複数のデコード手段と、 与えられたハフマン符号の先頭ビットから連続する同一
値のビット数に基づいて前記複数のデコード手段の1つ
を選択して活性化する選択手段とを備えた、ハフマン復
号化回路。 - 【請求項2】 前記複数のデコード手段は、メモリ素子
からなる第1のデコード手段およびロジック回路からな
る第2のデコード手段を含み、 前記第1のデコード手段は長い符号長のハフマン符号を
含むグループに割当てられ、前記第2のデコード手段は
短い符号長のハフマン符号を含むグループに割当てられ
る、請求項1記載のハフマン復号化回路。 - 【請求項3】 前記複数のデコード手段の各々は、付加
ビット長およびトータルビット長を含む復号化情報を出
力し、 前記付加ビット長および前記トータルビット長からハフ
マン符号長を算出する演算手段をさらに含む、請求項1
記載のハフマン復号化回路。 - 【請求項4】 複数のハフマン符号を符号長に基づいて
複数のグループに分類し、 与えられたハフマン符号をデコードする複数のデコード
手段を前記複数のグループにそれぞれ割当て、 与えられたハフマン符号の先頭ビットから連続する同一
値のビット数に基づいて前記複数のデコード手段の1つ
を選択して活性化する、ハフマン復号化方法。 - 【請求項5】 前記複数のデコード手段はメモリ素子か
らなる第1のデコード手段およびロジック回路からなる
第2のデコード手段を含み、 前記第1のデコード手段を長い符号長のハフマン符号を
含むグループに割当て、前記第2のデコード手段を短い
符号長のハフマン符号を含むグループに割当てる、請求
の範囲4記載のハフマン復号化方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28486292A JP3076461B2 (ja) | 1992-10-23 | 1992-10-23 | ハフマン復号化回路およびハフマン復号化方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP28486292A JP3076461B2 (ja) | 1992-10-23 | 1992-10-23 | ハフマン復号化回路およびハフマン復号化方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH06139346A true JPH06139346A (ja) | 1994-05-20 |
| JP3076461B2 JP3076461B2 (ja) | 2000-08-14 |
Family
ID=17683995
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP28486292A Expired - Lifetime JP3076461B2 (ja) | 1992-10-23 | 1992-10-23 | ハフマン復号化回路およびハフマン復号化方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3076461B2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002344327A (ja) * | 2001-05-15 | 2002-11-29 | Matsushita Electric Ind Co Ltd | 可変長符号伸長方法および装置並びに可変長符号圧縮伸長方法および装置 |
| US6961474B1 (en) | 1998-02-27 | 2005-11-01 | Shikino High-Tech Co., Ltd. | Huffman encoder for encoding/decoding DCT coefficients |
| JP2007158698A (ja) * | 2005-12-05 | 2007-06-21 | Matsushita Electric Ind Co Ltd | 画像復号装置及び画像復号方法 |
-
1992
- 1992-10-23 JP JP28486292A patent/JP3076461B2/ja not_active Expired - Lifetime
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6961474B1 (en) | 1998-02-27 | 2005-11-01 | Shikino High-Tech Co., Ltd. | Huffman encoder for encoding/decoding DCT coefficients |
| JP2002344327A (ja) * | 2001-05-15 | 2002-11-29 | Matsushita Electric Ind Co Ltd | 可変長符号伸長方法および装置並びに可変長符号圧縮伸長方法および装置 |
| JP2007158698A (ja) * | 2005-12-05 | 2007-06-21 | Matsushita Electric Ind Co Ltd | 画像復号装置及び画像復号方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3076461B2 (ja) | 2000-08-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112640448B (zh) | 编码转换系数的熵编解码方法与装置 | |
| RU2679784C2 (ru) | Кодирование и декодирование данных | |
| KR102293126B1 (ko) | 변환 계수 코딩 | |
| JP4792257B2 (ja) | 適応算術復号化方法及び適応算術復号化装置 | |
| KR20030060172A (ko) | 정지영상 및 동영상을 부호화/복호화하기 위한변환계수들의 최적주사방법 | |
| JPWO2003043346A1 (ja) | 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、プログラム、コンピュータデータ信号、及び画像伝送システム | |
| CN101502123A (zh) | 编码装置 | |
| JPH099261A (ja) | 信号圧縮装置 | |
| Hu et al. | A new lossless compression scheme based on Huffman coding scheme for image compression | |
| JP3235555B2 (ja) | 信号復号装置及び信号復号方法並びに信号復号処理をコンピュータに行わせるためのプログラムを記録した記録媒体 | |
| JP4181887B2 (ja) | 可変長符号化装置、及びその方法 | |
| Amer et al. | Towards MPEG-4 part 10 system on chip: a VLSI prototype for context-based adaptive variable length coding (CAVLC) | |
| JP3278948B2 (ja) | 可変長符号化方法 | |
| KR940009117B1 (ko) | 화상데이타 복원방법 및 장치 | |
| JP2001217721A (ja) | ハフマン符号化装置、ハフマン符号化方法およびハフマン符号化処理プログラムを記録した記録媒体 | |
| JP3076461B2 (ja) | ハフマン復号化回路およびハフマン復号化方法 | |
| US6577251B1 (en) | Accessing sub-blocks of symbols from memory | |
| US20010030615A1 (en) | Variable length decoding system and method | |
| CN100399833C (zh) | 使用最后非零检测电路的高速图像压缩设备 | |
| Kim et al. | Parallel decoding of context-based adaptive binary arithmetic codes based on most probable symbol prediction | |
| JP2003174365A (ja) | 復号化装置及びその方法 | |
| KR100255062B1 (ko) | Run-level 세트의 제로-런 전개 회로 및 제로-런 전개 방법 | |
| JP4447903B2 (ja) | 信号処理装置、信号処理方法、記録媒体及びプログラム | |
| KR20120038355A (ko) | 계층 구조의 영상 처리를 위한 엔트로피 인코딩/디코딩 방법 및 장치와 이를 위한 심볼 인코딩/디코딩 방법 및 장치 | |
| KR100195715B1 (ko) | 가변 길이 복호기 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19991109 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20000530 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080609 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090609 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100609 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100609 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110609 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120609 Year of fee payment: 12 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130609 Year of fee payment: 13 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130609 Year of fee payment: 13 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| EXPY | Cancellation because of completion of term | ||
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130609 Year of fee payment: 13 |