JP3737352B2 - スタートコード検索回路 - Google Patents
スタートコード検索回路 Download PDFInfo
- Publication number
- JP3737352B2 JP3737352B2 JP2000290289A JP2000290289A JP3737352B2 JP 3737352 B2 JP3737352 B2 JP 3737352B2 JP 2000290289 A JP2000290289 A JP 2000290289A JP 2000290289 A JP2000290289 A JP 2000290289A JP 3737352 B2 JP3737352 B2 JP 3737352B2
- Authority
- JP
- Japan
- Prior art keywords
- start code
- bit stream
- circuit
- shift amount
- bit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【発明の属する技術分野】
この発明は、ビットストリームを検索してビットストリームに含まれるスタートコードを検出するスタートコード検索回路に関する。
【0002】
【従来の技術】
例えば、情報の圧縮規格の一つであるMPEGに準拠した圧縮画像データ(以下、ビットストリームと呼ぶ)をデコードするデコード装置としては、例えば図5に示すようなものがある。図5において、デコード装置は、可変長符号デコーダ回路B1、RLD回路B2、逆量子化回路B3、逆DCT回路B4、動き補償・フレーム予測回路B5ならびにフレームメモリM1を備えて構成されている。
【0003】
このようなデコード装置において、ビットストリームは例えば外部、例えば衛星電波受信機やDVDなどから入力される。入力されたビットストリームから、ビットストリーム内の目印であるスタートコードが可変長符号デコード回路B1で検索される。検索において、順次ビットストリームから画像のDCT係数のランレベル情報や、動きベクトル及びその他のヘッダ情報が復号される。復号されたDCT係数のランレベル情報はRLD回路B2でDCT係数へ変換され、更に逆量子化回路B3で量子化特性と量子化マトリクスによって決定される値で逆量子化される。そして、逆DCT回路B4で逆離散コサイン変換され、復号画像として動き補償・フレーム予測回路B5に入力される。動き補償・フレーム予測回路B5では、Iピクチャの場合は復号画像を復号信号として出力する。P、Bピクチャの場合は、各画像タイプに従って適時フレームメモリM1に格納された画像情報から動きベクトルを用いて予測画像を生成し、復号画像と予測画像を足し合わせたものを復号信号として出力する。
【0004】
図6は、従来のスタートコード検索機能付可変長符号デコード回路の構成を示す図である。図6において、スタートコード検索機能付可変長符号デコード回路は、レジスタR1〜R5、加算器A1、シフタ回路S1、ビットストリームからDCT係数のランレベル形式等に変換する変換テーブルT1、ビットストリームの先頭にある符号語から符号長を出力する符号長出力テーブルT2、ならびにスタートコードを検出する判定回路C1を備えて構成されている。なお、MPEGではスタートコードは32ビット長であり、最上位ビットから23ビット目までが“0”で、24ビット目が“1”という特徴を有している。また、スタートコードは、ビットストリーム内でバイトアラインされているものとする。
【0005】
図6において、FIFOに構成されたレジスタR2、R3、R4にビットストリームが先頭から順に格納される。レジスタR2〜R4に格納されたビットストリームの先頭ビット位置をレジスタR1に保持する。この状態で1サイクル分クロックを進めると、レジスタR2〜R4から出力されたビットストリームからシフタ回路S1によって頭出しが行われ、レジスタR5に格納される。これを初期状態とする。
【0006】
次に、判定回路C1をレジスタR5の値で参照することにより、頭出しされてレジスタR5に格納されたデータがスタートコードか否かが判定される。スタートコードであると判定されるまで、8ビット分ビットストリームを先頭から切り捨てる。すなわち、以下の処理を行う。
【0007】
1.レジスタR1の値と“8”を加算器A1で加えた値(これをnとする)が、新たなビットストリーム先頭の位置となる。この値nの下位5ビットを、レジスタR1に格納する。
【0008】
2.FIFO(レジスタR2、R3、R4)からの出力を、シフタ回路S1を用いてnビットシフトさせ、頭出ししたビットストリームをレジスタR5に格納する。
【0009】
3.nが32以上の値であった場合は、FIFOを32ビット分更新する。
【0010】
このような検索処理を行うことにより、与えられたビットストリームからスタートコードが検出され、検出されたスタートコードがレジスタR5に格納される。
【0011】
【発明が解決しようとする課題】
以上説明したように、ビットストリームからスタートコードを検索する従来の検索回路においては、ビットストリームから32ビットのスタートコードを検出する場合には、一連のビットストリームの先頭から1サイクル当たり8ビット(=スタートコードのバイト間隔)ずつ検索を進めていた。このため、ビットストリームからスタートコードを検出するためには、多大な検索時間が必要になるといった不具合を招いていた。
【0012】
そこで、この発明は、上記に鑑みてなされたものであり、その目的とするところは、ビットストリームを検索してスタートコードを検出する検出時間を短縮したスタートコード検索回路を提供することにある。
【0014】
【課題を解決するための手段】
上記目的を達成するために、課題を解決するための第1の手段は、与えられたシフト量にしたがって入力された圧縮データ(ビットストリーム)をシフトし、シフトしたビットストリームからスタートコードと同じビット数の単位ビットストリームを出力するシフタ回路と、前記シフタ回路から出力された単位ビットストリームがスタートコードであるか否かを判定する判定回路とを具備し、前記シフタ回路により一連のビットストリームをシフトしながら順次検索して、一連のビットストリームの中からスタートコードを検出するスタートコード検索回路において、前記シフタ回路から出力された単位ビットストリームを受けて、単位ビットストリームと、スタートコードのビット配列に応じて予め用意された複数の比較情報とを比較し、比較結果に応じて前記シフタ回路のシフト量を与えるシフト量出力テーブルを具備し、前記シフト量出力テーブルは、比較情報(ビットストリーム)と、該比較情報に対応するシフト量(切り捨て量)との関係が、
【0015】
【表3】
であることを特徴とする。
【0016】
第2の手段は、与えられたシフト量にしたがって入力された圧縮データ(ビットストリーム)をシフトし、シフトしたビットストリームからスタートコードと同じビット数の単位ビットストリームを出力するシフタ回路と、前記シフタ回路から出力された単位ビットストリームがスタートコードであるか否かを判定する判定回路とを具備し、前記シフタ回路により一連のビットストリームをシフトしながら順次検索して、一連のビットストリームの中からスタートコードを検出するスタートコード検索回路において、前記シフタ回路から出力された単位ビットストリームを受けて、単位ビットストリームと、スタートコードのビット配列に応じて予め用意された複数の比較情報とを比較し、比較結果に応じて前記シフタ回路のシフト量を与えるシフト量出力テーブルを具備し、前記シフト量出力テーブルは、比較情報(ビットストリーム)と、該比較情報に対応するシフト量(切り捨て量)との関係が、
【0017】
【表4】
であることを特徴とする。
【0018】
【発明の実施の形態】
以下、図面を用いてこの発明の実施形態を説明する。
【0019】
図1はこの発明の一実施形態に係るスタートコード検索回路の構成を示す図である。図1において、この実施形態のスタートコード検索回路は、図6に示す構成に加えて、シフト量出力テーブルT3を備えて構成され、図6に示す回路と同様にビットストリームから可変長符号をデコードする機能(この発明の特徴となるものではない)も備えており、図6に示すと同様の変換テーブルT1ならびに符号長出力テーブルT2は、専らビットストリームから可変長符号をデコードする際に使用される構成要素である。また、レジスタR1〜R5、加算器A1、シフタ回路S1は、ビットストリームからスタートコードを検出する際に用いられるとともに、ビットストリームから可変長符号をデコードする際にも使用されるものである。なお、この実施形態では、スタートコードは、従来と同様なビット構成とし、ビットストリーム内でバイトアラインされているものとする。
【0020】
シフト量出力テーブルT3は、レジスタR5に格納された32ビットのビットストリームと、図2に示す32ビットの4つの比較情報とを比較し、比較結果に応じて切り捨て量(シフト量)mを出力する。32ビットの比較情報は、図2に示すように、
【表5】
(1) 00000000_00000000_00000001_XXXXXXXX
(2) XXXXXXXX_00000000_00000000_00000001
(3) XXXXXXXX_XXXXXXXX_00000000_00000000
(4) XXXXXXXX_XXXXXXXX_XXXXXXXX_00000000
となる。レジスタR5に格納された32ビットのビットストリームと、上記(1)に示す比較情報との比較において両者が一致した場合には、レジスタR5に格納されたビットストリームは、スタートコードであり、判定回路C1によりスタートコードであると検出される。したがって、切り捨ては行われず、切り捨て量mとしては“0”となる。次に、レジスタR5に格納された32ビットのビットストリームと、上記(2)に示す比較情報との比較において両者が一致した場合には、シフト量出力テーブルT3は、切り捨て量mとして“8”を出力する。レジスタR5に格納された32ビットのビットストリームと、上記(3)に示す比較情報との比較において両者が一致した場合には、シフト量出力テーブルT3は、切り捨て量mとして“16”を出力する。レジスタR5に格納された32ビットのビットストリームと、上記(4)に示す比較情報との比較において両者が一致した場合には、シフト量出力テーブルT3は、切り捨て量mとして“24”を出力する。レジスタR5に格納された32ビットのビットストリームが、シフト量出力テーブルのいずれの値とも一致(マッチ)しなかった場合には、シフト量出力テーブルT3は、切り捨て量mとして“32”を出力する。このようなシフト量出力テーブルT3は、例えば論理ゲートやメモリのRAM、ROM等により構成される。
【0021】
このような構成において、まずFIFO(レジスタR2、R3、R4)にビットストリームが先頭から順に格納される。FIFOに格納されたビットストリームの先頭ビット位置をレジスタR1に保持する。この状態で1サイクル分クロックを進めると、FIFOから出力されたビットストリームからシフタ回路S1によって32ビットのビットストリームが出力されて頭出しが行われ、レジスタR5に格納される。これを初期状態とする。
【0022】
このような初期状態において、判定回路C1をレジスタR5の値で参照することにより、レジスタR5に格納された値がスタートコードであるか否かを判定する。スタートコードと判定されるまで、mビット分ビットストリームを先頭から順次切り捨てる。切り捨て量mの値は、レジスタR5の値をシフト量出力テーブルT3の図2に示す値と先頭から順次比較して、マッチあるいはマッチしないときのシフト量出力テーブルT3の値となる。レジスタR5の下位24ビットの値が、「00000000_00000000_00000001」にマッチするか否かが判定され、マッチした場合はm=8とする。レジスタR5の下位16ビットの値が、「00000000_00000000 」にマッチするか否かが判定され、マッチした場合はm=16とする。レジスタR5の下位8ビットの値が、「00000000」にマッチするか否かが判定され、マッチした場合はm=24とする。いずれでもない場合には、m=32とする。
【0023】
このようにして、切り捨て量mがシフト量出力テーブルT3から出力されると、この切り捨て量に基づいてFIFO(レジスタR2、R3、R4)からシフタ回路S1に与えられるビットストリームがシフタ回路S1でシフトされて切り捨てが行われる。切り捨て処理は、従来と同様に行われて、シフト量出力テーブルT3から出力された切り捨て量mとレジスタR1に格納された値とを加算器A1で加算し、加算結果のシフト量としてFIFO(レジスタR2、R3、R4)からシフタ回路S1に与えられてビットストリームがシフタ回路S1でシフトされる。
【0024】
このような検索処理をビットストリームからスタートコードが検出されるまで順次行われる。したがって、上記実施形態においては、シフト量出力テーブルT3を備えることによって、1サイクル当たり最大で32ビットずつビットストリームの検索を進めることが可能となる。これにより、ビットストリームからスタートコードを検出するまでの時間を従来に比べて短縮することができるようになる。
【0025】
図3はこの発明の他の実施形態に係るスタートコード検索回路の構成を示す図である。図3において、この実施形態の特徴とするところは、スタートコードが、ビットストリーム内でバイトアラインされていないものに適用できることを特徴とし、図1に示すシフト量出力テーブルT3に代えてシフト量出力テーブルT4を備え、他の構成は図1と同様である。なお、図3において、図1と同符号のものは同様な構成であり、その説明は省略する。
【0026】
シフト量出力テーブルT4は、レジスタR5に格納された32ビットのビットストリームと、図4に示す32ビットの比較情報とを比較し、比較結果に応じて切り捨て量(シフト量)mを出力する。32ビットの比較情報は、図4に示すように、「00000000_00000000_00000001_XXXXXXXX」〜 「XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXX0 」となり、切り捨て量mは、それぞれの比較情報に対応して図4に示すようにm=0〜31となり、いずれにもマッチしない場合には、m=32となる。
【0027】
このようなシフト量出力テーブルT4を用い、先の実施形態と全く同様にしてシフト量出力テーブルT4から出力された切り捨て量mに基づいてシフタ回路S1でシフトを行い、ビットストリームを検索してビットストリームからスタートコードを検出する。したがって、このような実施形態においては、スタートコードが、ビットストリーム内でバイトアラインされていない場合であっても、先の実施形態と同様の効果を得ることができる。
【0028】
【発明の効果】
以上説明したように、この発明によれば、ビットストリームをシフトするシフタ回路のシフト出力とシフト量出力テーブルの比較情報との比較結果に応じて、シフタ回路のシフト量を与えるようにしたので、ビットストリームを検索してスタートコードを検出するようにしたので、スタートコードを検出する時間を従来に比べて短縮することができる。
【図面の簡単な説明】
【図1】この発明の一実施形態に係るスタートコード検索回路の構成を示す図である。
【図2】図1に示すシフト量出力テーブルT3の内容を示す図である。
【図3】この発明の他の実施形態に係るスタートコード検索回路の構成を示す図である。
【図4】図3に示すシフト量出力テーブルT4の内容を示す図である。
【図5】圧縮画像データをデコードする従来の装置の構成を示す図である。
【図6】スタートコード検索機能を有する従来の可変長符号デコード回路の構成を示す図である。
【符号の説明】
R1,R2,R3,R4,R5 レジスタ
A1 加算器
S1 シフタ回路
C1 判定回路
T1 変換テーブル
T2 符号長出力テーブル
T3,T4 シフト量出力テーブル
Claims (2)
- 与えられたシフト量にしたがって入力された圧縮データ(ビットストリーム)をシフトし、シフトしたビットストリームからスタートコードと同じビット数の単位ビットストリームを出力するシフタ回路と、
前記シフタ回路から出力された単位ビットストリームがスタートコードであるか否かを判定する判定回路とを具備し、
前記シフタ回路により一連のビットストリームをシフトしながら順次検索して、一連のビットストリームの中からスタートコードを検出するスタートコード検索回路において、
前記シフタ回路から出力された単位ビットストリームを受けて、単位ビットストリームと、スタートコードのビット配列に応じて予め用意された複数の比較情報とを比較し、比較結果に応じて前記シフタ回路のシフト量を与えるシフト量出力テーブルを具備し、
前記シフト量出力テーブルは、比較情報(ビットストリーム)と、該比較情報に対応するシフト量(切り捨て量)との関係が、
- 与えられたシフト量にしたがって入力された圧縮データ(ビットストリーム)をシフトし、シフトしたビットストリームからスタートコードと同じビット数の単位ビットストリームを出力するシフタ回路と、
前記シフタ回路から出力された単位ビットストリームがスタートコードであるか否かを判定する判定回路とを具備し、
前記シフタ回路により一連のビットストリームをシフトしながら順次検索して、一連のビットストリームの中からスタートコードを検出するスタートコード検索回路において、
前記シフタ回路から出力された単位ビットストリームを受けて、単位ビットストリームと、スタートコードのビット配列に応じて予め用意された複数の比較情報とを比較し、比較結果に応じて前記シフタ回路のシフト量を与えるシフト量出力テーブルを具備し、
前記シフト量出力テーブルは、比較情報(ビットストリーム)と、該比較情報に対応するシフト量(切り捨て量)との関係が、
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000290289A JP3737352B2 (ja) | 2000-09-25 | 2000-09-25 | スタートコード検索回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000290289A JP3737352B2 (ja) | 2000-09-25 | 2000-09-25 | スタートコード検索回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002099407A JP2002099407A (ja) | 2002-04-05 |
JP3737352B2 true JP3737352B2 (ja) | 2006-01-18 |
Family
ID=18773536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000290289A Expired - Fee Related JP3737352B2 (ja) | 2000-09-25 | 2000-09-25 | スタートコード検索回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3737352B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002080566A1 (fr) * | 2001-03-29 | 2002-10-10 | Matsushita Electric Industrial Co., Ltd. | Dispositif et procede de traitement de donnees, dispositif et procede de reproduction de donnees, dispositif et procede de transmission de donnees et support d'enregistrement |
DE60310368T2 (de) | 2002-01-22 | 2007-03-29 | Microsoft Corp., Redmond | Verfahren zur verhinderung von startkode-emulation und stopfdaten |
JP3807379B2 (ja) * | 2003-02-21 | 2006-08-09 | ソニー株式会社 | パターン検出回路 |
US10271069B2 (en) | 2016-08-31 | 2019-04-23 | Microsoft Technology Licensing, Llc | Selective use of start code emulation prevention |
-
2000
- 2000-09-25 JP JP2000290289A patent/JP3737352B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002099407A (ja) | 2002-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6587057B2 (en) | High performance memory efficient variable-length coding decoder | |
US7132963B2 (en) | Methods and apparatus for processing variable length coded data | |
US6842124B2 (en) | Variable length decoder | |
JP4422833B2 (ja) | 可変長符号語を復号する復号器及び方法 | |
US7804903B2 (en) | Hardware-based CABAC decoder | |
US8462841B2 (en) | System, method and device to encode and decode video data having multiple video data formats | |
US6043765A (en) | Method and apparatus for performing a parallel speculative Huffman decoding using both partial and full decoders | |
US6285789B1 (en) | Variable length code decoder for MPEG | |
US7880647B1 (en) | Huffman decoding method | |
JP3737352B2 (ja) | スタートコード検索回路 | |
US20050174270A1 (en) | Programmable variable length decoder including interface of cpu processor | |
US6020835A (en) | Code decoding apparatus | |
US8228214B2 (en) | Variable-length code decoding apparatus and method | |
US6798365B2 (en) | JPEG Huffman table decoder and method thereof based on binary search technique | |
US6512852B1 (en) | Method and apparatus for concatenating bits of odd-length words | |
US7142603B2 (en) | Method and system for predictive table look-up code length of variable length code | |
US7702021B2 (en) | Decoding of digital video standard material during variable length decoding | |
JP2638424B2 (ja) | 可変長復号化装置 | |
JP2003529252A (ja) | 奇数長ワードのビットを連結する方法および装置 | |
KR0122326B1 (ko) | 비디오 비트열 디코더 | |
JP2000244752A (ja) | 復号化装置 | |
JP2006041659A (ja) | 可変長デコーダ | |
KR19990049273A (ko) | 디지털 브이씨알의 가변길이 복호화 장치 | |
KR20030080377A (ko) | 디지털 방송 수신기에서의 pts 관리 방법 | |
KR19980054423A (ko) | 고선명 티브이의 코드디멀티플렉서 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050607 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050803 |
|
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: 20051018 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051026 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081104 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091104 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101104 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101104 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111104 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121104 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |