JP3568504B2 - Mpegビデオデコーダ - Google Patents
Mpegビデオデコーダ Download PDFInfo
- Publication number
- JP3568504B2 JP3568504B2 JP2001321239A JP2001321239A JP3568504B2 JP 3568504 B2 JP3568504 B2 JP 3568504B2 JP 2001321239 A JP2001321239 A JP 2001321239A JP 2001321239 A JP2001321239 A JP 2001321239A JP 3568504 B2 JP3568504 B2 JP 3568504B2
- Authority
- JP
- Japan
- Prior art keywords
- picture
- error
- macroblock
- slice
- error detection
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. discrete cosine transform
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Discrete Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
本発明はMPEG(Moving Picture Expert Group)ビデオデコーダに関するものである。
【0002】
【従来の技術】
マルチメディアで扱われる情報は、膨大な量で且つ多種多様であり、これらの情報を高速に処理することがマルチメディアの実用化を図る上で必要となってくる。情報を高速に処理するためには、データの圧縮・伸長技術が不可欠となる。そのようなデータの圧縮・伸長技術として「MPEG」方式が挙げられる。このMPEG方式は、ISO(International Organization for Standardization)/IEC(International Electrotechnical Commission)傘下のMPEG委員会(ISO/IEC JTC1/SC29/WG11)によって標準化されつつある。
【0003】
MPEGは3つのパートから構成されている。パート1の「MPEGシステムパート」(ISO/IEC IS 11172 Part1:Systems)では、ビデオデータとオーディオデータの多重化構造(マルチプレクス・ストラクチャ)および同期方式が規定される。パート2の「MPEGビデオパート」(ISO/IEC IS 11172 Part2:Video)では、ビデオデータの高能率符号化方式およびビデオデータのフォーマットが規定される。パート3の「MPEGオーディオパート」(ISO/IEC IS 11172 Part3:Audio)では、オーディオデータの高能率符号化方式およびオーディオデータのフォーマットが規定される。
【0004】
MPEGビデオパートで取り扱われるビデオデータは動画に関するものであり、その動画は1秒間に数十枚(例えば、30枚)のフレーム(静止画、コマ)によって構成されている。図8に示すように、ビデオデータは、シーケンス(Sequence)、GOP(Group Of Pictures)、ピクチャ(Picture)、スライス(Slice)、マクロブロック(Macroblock)、ブロック(Block)の順に6層の階層構造から成る。1枚のピクチャを構成するスライスの個数は一定ではなく、1個のスライスを構成するマクロブロックの個数も一定ではない。尚、図8では、マクロブロック層およびブロック層については省略してある。
【0005】
また、MPEGには主にエンコードレートの違いにより、現在のところ、MPEG−1,MPEG−2の2つの方式がある。MPEG−1においてフレームはピクチャに対応している。MPEG−2においては、フレームまたはフィールドをピクチャに対応させることもできる。フィールドは、2枚で1枚のフレームを構成している。ピクチャにフレームが対応している構造はフレーム構造と呼ばれ、ピクチャにフィールドが対応している構造はフィールド構造と呼ばれる。
【0006】
MPEGでは、フレーム間予測と呼ばれる圧縮技術を用いる。フレーム間予測は、フレーム間のデータを時間的な相関に基づいて圧縮する。フレーム間予測では双方向予測が行われる。双方向予測とは、過去の再生画像(または、ピクチャ)から現在の再生画像を予測する順方向予測と、未来の再生画像から現在の再生画像を予測する逆方向予測とを併用することである。
【0007】
この双方向予測は、Iピクチャ(Intra−Picture),Pピクチャ(Predictive−Picture),Bピクチャ(Bidirectionally predictive−Picture)と呼ばれる3つのタイプのピクチャを規定している。
【0008】
Iピクチャは、過去や未来の再生画像とは無関係に独立して生成される。ランダムアクセスを行うために、GOP内には最低1枚のIピクチャが必要である。Iピクチャ内の全てのマクロブロック・タイプは、フレーム内予測画面(Intra Frame)である。
【0009】
Pピクチャは順方向予測(過去のIピクチャまたはPピクチャからの予測)により生成される。Pピクチャ内のマクロブロック・タイプは、フレーム内予測画面と順方向予測画面(Forward Inter Frame)の両方を含む。
【0010】
Bピクチャは双方向予測により生成される。双方向予測においてBピクチャは、以下に示す3つの予測のうちいずれか1つにより生成される。▲1▼順方向予測;過去のIピクチャまたはPピクチャからの予測、▲2▼逆方向予測;未来のIピクチャまたはPピクチャからの予測、▲3▼双方向予測;過去および未来のIピクチャまたはPピクチャからの予測。Bピクチャ内のマクロブロック・タイプは、フレーム内予測画面、順方向予測画面、逆方向予測画面(Backward Inter Frame)、内挿的予測画面(Interpolative Inter Frame)の4つのタイプを含む。
【0011】
そして、これらI,P,Bピクチャがそれぞれエンコードされる。つまり、Iピクチャは過去や未来のピクチャが無くても生成される。これに対し、Pピクチャは過去のピクチャが無いと生成されず、Bピクチャは過去または未来のピクチャが無いと生成されない。但し、PピクチャやBピクチャでも、マクロブロック・タイプが内挿的予測画面の場合、そのマクロブロックは過去や未来のピクチャが無くても生成される。
【0012】
フレーム間予測では、まず、Iピクチャが周期的に生成される。次に、Iピクチャよりも数フレーム先のフレームがPピクチャとして生成される。このPピクチャは、過去から現在への一方向(順方向)の予測により生成される。続いて、Iピクチャの前、Pピクチャの後に位置するフレームがBピクチャとして生成される。このBピクチャを生成するとき、順方向予測,逆方向予測,双方向予測の3つの中から最適な予測方法が選択される。連続した動画では一般的に、現在の画像とその前後の画像とは良く似ており、異なっているのは、そのごく一部分に過ぎない。そこで、前のフレーム(例えば、Iピクチャ)と次のフレーム(例えば、Pピクチャ)とは同じであると仮定し、両フレーム間に変化があればその差分(Bピクチャのデータ)のみを抽出して圧縮する。これにより、フレーム間のデータを時間的な相関に基づいて圧縮することができる。
【0013】
このようにMPEGビデオパートに準拠してエンコードされたビデオデータのデータ列(ビットストリーム)は、MPEGビデオストリーム(以下、ビデオストリームと略す)と呼ばれる。
【0014】
ところで、MPEG−1は主に、ビデオCD(Compact Disc)やCD−ROM(CD−Read Only Memory)などの蓄積メディアに対応している。MPEG−2は、ビデオCD,CD−ROM,DVD(Digital Video Disk),VTR(Video Tape Recorder)などの蓄積メディアだけでなく、LAN(Local Area Network)などの通信メディア、地上波放送や衛星放送およびCATV(Community Antenna Television)などの放送メディアをも含む伝達メディア全般に対応している。
【0015】
MPEGビデオパートで用いられる技術の核となるのが、動き補償付予測(MC;Motion Compensated prediction)と離散コサイン変換(DCT:Discrete Cosine Transform)である。MCとDCTを併用した符号化技術は、ハイブリッド符号化技術と呼ばれる。MPEGビデオパートでは、エンコード時にDCT(別名FDCT;Forward DCT)を用い、画像(ビデオ信号)を周波数成分に分解して処理する。そして、デコード時にDCTの逆変換(離散コサイン逆変換;IDCT;Inverse DCT)を用い、周波数成分を再び画像(ビデオ信号)に戻す。
【0016】
図9に、従来のMPEGビデオデコーダ101のブロック回路を示す。
MPEGビデオデコーダ101は、ビットバッファ102、フレームバッファ103、ピクチャヘッダ検出回路104、スライスヘッダ検出回路105、可変長デコーダ106、逆量子化回路107、IDCT(Inverse Discrete Cosine Transform)回路108、MC(Motion Compensated prediction)回路109、ROM(Read Only Memory)110,111、制御コア回路112、ハフマンエラー検出回路113から構成されている。尚、各回路104〜113は1チップのLSIに搭載されている。
【0017】
制御コア回路112は各回路102〜111,113を制御する。
伝達メディア120から転送されてきたビデオストリームは、ビットバッファ102へ入力される。尚、伝達メディア120には、蓄積メディア(ビデオCD,CD−ROM,DVD,VTRなど)、通信メディア(LANなど)、放送メディア(地上波放送,衛星放送,CATVなど)などが含まれる。
【0018】
ビットバッファ102はFIFO(First−In−First−Out)構成のRAM(Random Access Memory)から成るリングバッファによって構成され、伝達メディア120から転送されてくるビデオストリームを順次蓄積する。
【0019】
ビットバッファ102が設けられているのは、I,P,Bの各ピクチャのデータ量が異なっているためである。Iピクチャのデータ量は約30kバイト、Pピクチャのデータ量は約10〜15kバイト、Bピクチャのデータ量は0〜約6kバイトである。それに対して、伝達メディア120から転送されてくるビデオストリームのビットレートは一定である。後記するように各回路106〜109は各ピクチャ毎に処理を行い、その処理時間は各ピクチャのデータ量によって異なる。そのため、伝達メディア120から転送されてきたビデオストリームを各回路106〜109へ直接転送すると、各回路106〜109において処理できないピクチャがでてくる。これを防止するため、伝達メディア120から転送されてくるビデオストリームに対するバッファメモリとしてのビットバッファ102を設けることで、I,P,Bの各ピクチャのデータ量の相違を吸収している。
【0020】
ピクチャヘッダ検出回路104は、ビットバッファ102に蓄積されたビデオストリームの各ピクチャの先頭に付くピクチャヘッダを検出し、その各ピクチャヘッダに規定されているピクチャのタイプ(I,P,B)を検出する。
【0021】
スライスヘッダ検出回路105は、ビットバッファ102に蓄積されたビデオストリームの各スライスの先頭に付くスライスヘッダを検出する。
制御コア回路112は、ピクチャヘッダ検出回路104の検出結果に基づいて、ビットバッファ102から1フレーム期間毎に1枚のピクチャ分ずつのビデオストリームを読み出す。
【0022】
可変長デコーダ106は、ビットバッファ102から読み出されたピクチャに対して、ROM110に記憶されたハフマンテーブルに格納されているハフマンコードに基づいた可変長デコードを行う。
【0023】
逆量子化回路107は、可変長デコーダ106のデコード結果に対して、ROM111に記憶された量子化テーブルに格納されている量子化閾値に基づいた逆量子化を行いDCT(Discrete Cosine Transform)係数を求める。
【0024】
IDCT回路108は、逆量子化回路107が求めたDCT係数に対してIDCTを行う。MC回路109は、IDCT回路108の処理結果に対してMC(Motion Compensated prediction)を行う。
【0025】
MC回路109の処理結果は、フレームバッファ103の各領域103a〜103cへ転送される。また、フレームバッファ103の各領域103a〜103cから読み出されたデータはMC回路109へ転送される。
【0026】
フレームバッファ103はRAMから成り、その内部は3つの領域(前方参照領域103a、後方参照領域103b、Bピクチャ格納領域103c)に分けられている。前方参照領域103aには、MC回路109において逆方向予測を行う際に用いられる未来のIピクチャまたはPピクチャが格納される。後方参照領域103bには、MC回路109において順方向予測を行う際に用いられる過去のIピクチャまたはPピクチャが格納される。Bピクチャ格納領域103cにはBピクチャが格納される。
【0027】
前方参照領域103aおよび後方参照領域103bに格納されるIピクチャまたはPピクチャは、順方向予測または逆方向予測を行うための基データとして使われるため、必要がなくなるまで、各領域103a,103bに格納し続けなければならない。Bピクチャ格納領域103cに格納されるBピクチャについては基データとして扱われないため、ディスプレイ121へ出力されたら不要になる。尚、各領域103a〜103cはプレーンと呼ばれる。
【0028】
そして、各領域103a〜103cのいずれか1つに格納されたピクチャのデータ(ビデオ信号)が、MC回路109を介して、MPEGビデオデコーダ101の外部に設けられたディスプレイ121へ出力される。
【0029】
例えば、図10(a)に示すように原画像の各ピクチャの順番が構成されている場合、MPEGビデオエンコーダでは図10(b)に示すように各ピクチャの順番が並べ替えられる。図10(c)に示すように、伝達メディア120では、MPEGビデオエンコーダで並べ替えられた順番のままで各ピクチャが転送される。そして、図10(d)(e)に示すように、MPEGビデオデコーダ101では、ディスプレイ121の再生画像の各ピクチャの順番が原画像のそれと同じになるように、各ピクチャの順番が並べ替えられる。
【0030】
フレームバッファ103は、このMPEGビデオデコーダ101における各ピクチャの順番の並べ替えを行うために設けられている。
すなわち、各回路106〜109でBピクチャB3を処理し、その処理結果をBピクチャ格納領域103cへ転送しているとき、ディスプレイ121へは後方参照領域103bに既に格納されているIピクチャI2が出力される。
【0031】
また、各回路106〜109でBピクチャB4を処理し、その処理結果をBピクチャ格納領域103cへ転送しているとき、ディスプレイ121へはBピクチャ格納領域103cに既に格納されているBピクチャB3が出力される。その結果、各回路106〜109でBピクチャB4を処理しているときには、Bピクチャ格納領域103cに既に格納されているBピクチャB3に対して、新たに処理されたBピクチャB4のデータが上書きされる。
【0032】
また、各回路106〜109でPピクチャP8を処理し、その処理結果を後方参照領域103bへ転送しているとき、ディスプレイ121へはBピクチャ格納領域103cに既に格納されているBピクチャB4が出力される。
【0033】
尚、フレームバッファ103とビットバッファ102とは、部品点数を少なくしてMPEGビデオデコーダ101の部品コストを減少させるため、1つのRAM内に領域を分けて設けられている。
【0034】
ハフマンエラー検出回路113は、可変長デコーダ106におけるデコード処理を監視することで、スライス毎にエラー検出を行う。すなわち、ハフマンエラー検出回路113は、スライスに対応するデータがハフマンテーブルに格納されていない場合や、スライスに対応するデータが過去のデコード結果と矛盾する場合、そのスライス内にエラーが含まれていると判定する。
【0035】
制御コア回路112は、ハフマンエラー検出回路16によってスライス内にエラーが含まれていると判定された場合、以下のエラー処理を行う。ここでは、図8に示すスライスS1内にエラーが含まれている場合を例にとって説明する。尚、スライスS1はn個のマクロブロックMB1〜MBnによって構成されているものとする。
【0036】
(1) エラーが含まれていると判定されたスライスS1に対する可変長デコーダ106のデコード処理を停止させ、そのスライスS1のデコード処理結果を無効にさせる。
【0037】
(2) スライスヘッダ検出回路105の検出結果に基づいて、ビットバッファ102からスライスS1の次のスライスS2を読み出す。そして、可変長デコーダ106にスライスS2の可変長デコードを行わせる。
【0038】
(3) MC回路109およびフレームバッファ103を制御して、フレームバッファ103に格納されるスライスS1を、そのスライスS1が含まれているピクチャの1つ前にディスプレイ121へ出力されるピクチャの対応するマクロブロックMB1′〜MBn′によって置き換える。この動作を、図10(d)(e)に示すように各ピクチャの順番が構成されている場合を例にとって説明する。
【0039】
(3)−[1] スライスS1を含むピクチャがBピクチャB3の場合;BピクチャB3の1つ前にディスプレイ121へ出力されるピクチャはIピクチャI2である。BピクチャB3をBピクチャ格納領域103cへ転送しているとき、IピクチャI2は既に後方参照領域103bに格納されている。
【0040】
図11に示すように、BピクチャB3のスライスS1に対応するIピクチャI2のマクロブロックMB1′〜MBn′を後方参照領域103bから読み出す。そして、IピクチャI2のマクロブロックMB1′〜MBn′をBピクチャ格納領域103cに書き込むことで、BピクチャB3のスライスS1をIピクチャI2のマクロブロックMB1′〜MBn′に置き換える。
【0041】
(3)−[2] スライスS1を含むピクチャがBピクチャB4の場合;BピクチャB4の1つ前にディスプレイ121へ出力されるピクチャはBピクチャB3である。BピクチャB3をBピクチャ格納領域103cへ転送しているとき、BピクチャB3は既にBピクチャ格納領域103cに格納されている。
【0042】
図12に示すように、Bピクチャ格納領域103cにおいて、BピクチャB4のスライスS1に対応するBピクチャB3のマクロブロックMB1′〜MBn′に対してはBピクチャB4のデータを上書きせず、BピクチャB3のマクロブロックMB1′〜MBn′をそのまま残す。その結果、BピクチャB4のスライスS1はBピクチャB3のマクロブロックMB1′〜MBn′に置き換えられる。
【0043】
(3)−[3] スライスS1を含むピクチャがPピクチャP5の場合;PピクチャP5の1つ前にディスプレイ121へ出力されるピクチャはBピクチャB4である。PピクチャP5は前方参照領域103aに格納され、BピクチャB4はBピクチャ格納領域103cに格納されている。
【0044】
図13に示すように、PピクチャB5のスライスS1に対応するBピクチャB4のマクロブロックMB1′〜MBn′をBピクチャ格納領域103cから読み出す。そして、BピクチャB4のマクロブロックMB1′〜MBn′を前方参照領域103aに書き込むことで、PピクチャP5のスライスS1をBピクチャB4のマクロブロックMB1′〜MBn′に置き換える。
【0045】
図14に、MC回路109の内部構成を示す。
MC回路109は、逆方向予測メモリ131、順方向予測メモリ132、平均回路133、加算回路134、スイッチSW1〜SW6から構成されている。
【0046】
スイッチSW6は2つの接点a,bをもち、接点aはIDCT回路108の出力に接続され、接点bはアースされ、各接点a,bのいずれか一方が加算回路134の入力に接続される。
【0047】
スイッチSW1は4つの接点a〜dをもち、接点aは逆方向予測メモリ131の出力に接続され、接点bは平均回路133の出力に接続され、接点cは順方向予測メモリ132の出力に接続され、接点dはアースされ、各接点a〜dのいずれか1つが加算回路134の入力に接続される。
【0048】
スイッチSW2は2つの接点a,bをもち、接点aは逆方向予測メモリ131の入力に接続され、接点bは順方向予測メモリ132の入力に接続され、各接点a,bのいずれか一方がスイッチSW3に接続される。
【0049】
スイッチSW3は3つの接点a〜cをもち、接点aはフレームバッファ103の前方参照領域103aの出力に接続されると共にスイッチSW5の接点aに接続され、接点bはフレームバッファ103の後方参照領域103bの出力に接続されると共にスイッチSW5の接点bに接続され、接点cはフレームバッファ103のBピクチャ格納領域103cの出力に接続されると共にスイッチSW5の接点cに接続される。
【0050】
スイッチSW5は3つの接点a〜cをもち、各接点a〜cのいずれか1つがディスプレイ121に接続される。
スイッチSW4は3つの接点a〜cをもち、接点aは前方参照領域103aの入力に接続され、接点bは後方参照領域103bの入力に接続され、接点cはBピクチャ格納領域103cの入力に接続され、各接点a〜dのいずれか1つが加算回路134の出力に接続される。
【0051】
逆方向予測メモリ131および順方向予測メモリ132はそれぞれ、1個のマクロブロック分のデータを格納する。
平均回路133は、逆方向予測メモリ131および順方向予測メモリ132から読み出されたデータを平均化する。
【0052】
このように構成されたMC回路109は以下の動作を行う。
▲1▼ハフマンエラー検出回路113がエラーを検出しない場合(通常動作);スイッチSW6を接点aに接続する。
【0053】
▲1▼−[1] IDCT回路108からIピクチャが出力された場合;スイッチSW1を接点dに接続し、スイッチSW4を接点aまたは接点bに接続する。スイッチSW5を、スイッチSW4の接続されている接点とは異なる接点a〜cに接続する。例えば、スイッチSW4が接点aに接続されている場合、スイッチSW5は接点bまたは接点cに接続する。スイッチSW2,SW3はどの接点に接続してもよい。その結果、加算回路134の出力はIDCT回路108の出力と同じになる。その加算回路134の出力は、スイッチSW4を介して、前方参照領域103aまたは後方参照領域103bへ転送される。
【0054】
▲1▼−[2] IDCT回路108からPピクチャが出力された場合;スイッチSW1をマクロブロック・タイプに対応した接点c,dに接続する。
▲1▼−[2]−<1> マクロブロック・タイプがフレーム内予測画面の場合;上記▲1▼−[1] と同じである。
【0055】
▲1▼−[2]−<2> マクロブロック・タイプが順方向予測画面の場合;スイッチSW2,SW3をそれぞれ接点bに接続し、後方参照領域103bから読み出した1個のマクロブロック分のデータを、順方向予測メモリ132に格納する。そして、スイッチSW1を接点cに接続し、スイッチSW4を接点aまたは接点bに接続する。スイッチSW5を、スイッチSW4の接続されている接点とは異なる接点a〜cに接続する。その結果、加算回路134は、順方向予測メモリ132から読み出されたマクロブロックのデータと、IDCT回路108の出力とを加算する。その加算回路134の出力は、スイッチSW4を介して、前方参照領域103aまたは後方参照領域103bへ転送される。
【0056】
▲1▼−[3] IDCT回路108からBピクチャが出力された場合;スイッチSW1をマクロブロック・タイプに対応した接点a〜dに接続し、スイッチSW4,SW5をそれぞれ接点cに接続する。その結果、加算回路134の出力は、スイッチSW4を介して、Bピクチャ格納領域103cへ転送される。
【0057】
▲1▼−[3]−<1> マクロブロック・タイプがフレーム内予測画面の場合;スイッチSW1を接点dに接続する。スイッチSW2,SW3はどの接点に接続してもよい。その結果、加算回路134の出力はIDCT回路108の出力と同じになる。
【0058】
▲1▼−[3]−<2> マクロブロック・タイプが順方向予測画面の場合;スイッチSW2,SW3をそれぞれ接点bに接続し、後方参照領域103bから読み出した1個のマクロブロック分のデータを、順方向予測メモリ132に格納する。そして、スイッチSW1を接点cに接続する。その結果、加算回路134は、順方向予測メモリ132から読み出されたマクロブロックのデータと、IDCT回路108の出力とを加算する。
【0059】
▲1▼−[3]−<3> マクロブロック・タイプが逆方向予測画面の場合;スイッチSW2,SW3をそれぞれ接点aに接続し、前方参照領域103aから読み出した1個のマクロブロック分のデータを、逆方向予測メモリ131に格納する。そして、スイッチSW1を接点aに接続する。その結果、加算回路134は、逆方向予測メモリ131から読み出されたマクロブロックのデータと、IDCT回路108の出力とを加算する。
【0060】
▲1▼−[3]−<4> マクロブロック・タイプが内挿的予測画面の場合;まず、スイッチSW2,SW3をそれぞれ接点bに接続し、後方参照領域103bから読み出した1個のマクロブロック分のデータを、順方向予測メモリ132に格納する。次に、スイッチSW2,SW3をそれぞれ接点aに接続し、前方参照領域103aから読み出した1個のマクロブロック分のデータを、逆方向予測メモリ131に格納する。平均回路133は、逆方向予測メモリ131および順方向予測メモリ132から読み出されたデータを平均化する。そして、スイッチSW1を接点bに接続する。その結果、加算回路134は、平均回路133の出力と、IDCT回路108の出力とを加算する。
【0061】
▲2▼ハフマンエラー検出回路113がエラーを検出した場合(エラー処理動作);スイッチSW6を接点bに接続し、スイッチSW2を接点aに接続する。スイッチSW4を、エラーが含まれているピクチャが格納される領域103a〜103cに対応する接点a〜cに接続する。スイッチSW3を、エラーが含まれているピクチャの1つ前にディスプレイ121へ出力されるピクチャが格納されている領域103a〜103cに対応する接点a〜cに接続する。そして、各領域103a〜103cのいずれか1つから読み出した1個のマクロブロック分のデータを、スイッチSW2,SW3を介して、逆方向予測メモリ131に格納する。続いて、スイッチSW1を接点aに接続する。その結果、加算回路134の出力は逆方向予測メモリ131から読み出されたマクロブロックのデータと同じになる。その加算回路134の出力は、スイッチSW4を介して、エラーが含まれているピクチャが格納される領域103a〜103cへ転送される。
【0062】
以上のエラー処理動作を、エラーが含まれていると判定されたスライス(前記スライスS1)が、そのスライスが含まれているピクチャの1つ前にディスプレイ121へ出力されるピクチャの対応するマクロブロック(前記マクロブロックMB1′〜MBn′)によって置き換えられるまで、マクロブロック毎に繰り返し行う。
【0063】
上記のエラー処理動作を、図8に示すスライスS1内にエラーが含まれていると判定され、図10(d)(e)に示すように各ピクチャの順番が構成されている場合を例にとって説明する。
【0064】
▲2▼−[1] スライスS1を含むピクチャがBピクチャB3の場合(図11参照);スイッチSW4を、BピクチャB3が格納されるBピクチャ格納領域103cに対応する接点cに接続する。スイッチSW3を、IピクチャI2が格納される後方参照領域103bに対応する接点bに接続する。そして、後方参照領域103bから読み出したマクロブロックMB1′のデータを、スイッチSW2,SW3を介して、逆方向予測メモリ131に格納する。続いて、逆方向予測メモリ131から読み出したマクロブロックMB1′のデータだけを、加算回路134を介してBピクチャ格納領域103cへ転送する。このエラー処理動作を、各マクロブロックMB2′〜MBn′について繰り返し行い、BピクチャB3のスライスS1をIピクチャI2のマクロブロックMB1′〜MBn′に置き換える。
【0065】
▲2▼−[2] スライスS1を含むピクチャがBピクチャB4の場合(図12参照);スイッチSW4を、BピクチャB4が格納されるBピクチャ格納領域103cに対応する接点cに接続する。スイッチSW3を、BピクチャB3が格納されるBピクチャ格納領域103cに対応する接点cに接続する。そして、Bピクチャ格納領域103cから読み出したマクロブロックMB1′のデータを、スイッチSW2,SW3を介して、逆方向予測メモリ131に格納する。続いて、逆方向予測メモリ131から読み出したマクロブロックMB1′のデータだけを、加算回路134を介してBピクチャ格納領域103cへ転送する。つまり、マクロブロックMB1′に対してはBピクチャB4のデータが上書きされず、マクロブロックMB1′はそのまま残ることになる。このエラー処理動作を、各マクロブロックMB2′〜MBn′について繰り返し行い、BピクチャB4のスライスS1をBピクチャB3のマクロブロックMB1′〜MBn′に置き換える。
【0066】
▲2▼−[3] スライスS1を含むピクチャがPピクチャP5の場合(図13参照);スイッチSW4を、PピクチャB5が格納される前方参照領域103aに対応する接点aに接続する。スイッチSW3を、BピクチャB4が格納されるBピクチャ格納領域103cに対応する接点cに接続する。そして、Bピクチャ格納領域103cから読み出したマクロブロックMB1′のデータを、スイッチSW2,SW3を介して、逆方向予測メモリ131に格納する。続いて、逆方向予測メモリ131から読み出したマクロブロックMB1′のデータだけを、加算回路134を介して前方参照領域103aへ転送する。このエラー処理動作を、各マクロブロックMB2′〜MBn′について繰り返し行い、PピクチャP5のスライスS1をBピクチャB4のマクロブロックMB1′〜MBn′に置き換える。
【0067】
このように、従来のMPEGビデオデコーダ101では、ハフマンエラー検出回路113によってスライス毎にエラー検出を行う。そして、スライスS1内にエラーが含まれている場合には、前記したエラー処理((1) 〜(3))を行う。
【0068】
【発明が解決しようとする課題】
近年、MPEGビデオデコーダに対して、エラー検出およびエラー処理の精度を高めてエラー耐性の強化を図ることが要求されている。
【0069】
本発明は上記要求を満足するためになされたものであって、その目的は、エラー耐性の強化を図ることが可能なMPEGビデオデコーダを提供することにある。
【0070】
【課題を解決するための手段】
本発明のMPEGビデオデコーダのある態様は、MPEGビデオストリームに含まれるエラーを検出するエラー検出手段を含む。該エラー検出手段は、マクロブロック毎に動きベクトルの復元を行う際に、動きベクトルの示す位置をもとにマクロブロック毎にエラー検出を行う。
【0071】
本発明のMPEGビデオデコーダの別の態様は、MPEGビデオストリームに含まれるエラーを検出するエラー検出手段を含む。このエラー検出手段は、ハフマンコードに基づいた可変長デコードを行ったとき、そのデコード処理の結果をもとにスライス毎にエラー検出を行う第1のエラー検出回路と、量子化閾値に基づいた逆量子化を行ったとき、その逆量子化処理の結果をもとにマクロブロック毎にエラー検出を行う第2のエラー検出回路と、マクロブロック毎に動きベクトルの復元を行ったとき、復元した動きベクトルの示す位置をもとにマクロブロック毎にエラー検出を行う第3のエラー検出回路とを備える。
【0072】
本発明のMPEGビデオデコーダの別の態様は、MPEGビデオストリームに含まれるエラーを検出するエラー検出手段を含む。
【0073】
当該エラー検出手段は、ハフマンテーブルに格納されているハフマンコードに基づいた可変長デコードを行う際に、スライスに対応するデータがハフマンテーブルに格納されていない場合や、スライスに対応するデータが過去のデコード結果と矛盾する場合、そのスライス内にエラーが含まれていると判定することで、スライス毎にエラー検出を行う第1のエラー検出回路と、量子化閾値に基づいた逆量子化を行う際に、離散コサイン変換係数のうち直流係数が所定値内に収まっているかどうかをマクロブロック毎に検出し、収まっていない場合、そのマクロブロック内にエラーが含まれていると判定する第2のエラー出回路と、マクロブロック毎に動きベクトルの復元を行う際に、動きベクトルがピクチャ内を示しているかどうかを検出し、ピクチャ外を示している場合、その動きベクトルを含むマクロブロック内にエラーが含まれていると判定する第3のエラー検出回路とを備える。
【0074】
【発明の実施の形態】
以下、本発明を具体化した一実施形態を図面に従って説明する。
図1に、本実施形態のMPEGビデオデコーダ1のブロック回路を示す。
【0075】
MPEGビデオデコーダ1は、ビットバッファ2、フレームバッファ3、ピクチャヘッダ検出回路4、スライスヘッダ検出回路5、可変長デコーダ6、逆量子化回路7、IDCT(Inverse Discrete Cosine Transform)回路8、MC(Motion Compensated prediction)回路9、ROM(Read Only Memory)10,11、制御コア回路12、ハフマンエラー検出回路13、DC(Direct Current)エラー検出回路41、動き領域エラー検出回路42から構成されている。尚、各回路4〜13,41,42は1チップのLSIに搭載されている。
【0076】
制御コア回路12は各回路2〜11,13,41,42を制御する。伝達メディア20から転送されてきたビデオストリームは、ビットバッファ2へ入力される。尚、伝達メディア20には、蓄積メディア(ビデオCD,CD−ROM,DVD,VTRなど)、通信メディア(LANなど)、放送メディア(地上波放送,衛星放送,CATVなど)などが含まれる。
【0077】
ビットバッファ2はFIFO(First−In−First−Out)構成のRAM(Random Access Memory)から成るリングバッファによって構成され、伝達メディア20から転送されてくるビデオストリームを順次蓄積する。
【0078】
ビットバッファ2が設けられているのは、I,P,Bの各ピクチャのデータ量が異なっているためである。Iピクチャのデータ量は約30kバイト、Pピクチャのデータ量は約10〜15kバイト、Bピクチャのデータ量は0〜約6kバイトである。それに対して、伝達メディア20から転送されてくるビデオストリームのビットレートは一定である。後記するように各回路6〜9は各ピクチャ毎に処理を行い、その処理時間は各ピクチャのデータ量によって異なる。そのため、伝達メディア20から転送されてきたビデオストリームを各回路6〜9へ直接転送すると、各回路6〜9において処理できないピクチャがでてくる。これを防止するため、伝達メディア20から転送されてくるビデオストリームに対するバッファメモリとしてのビットバッファ2を設けることで、I,P,Bの各ピクチャのデータ量の相違を吸収している。
【0079】
ピクチャヘッダ検出回路4は、ビットバッファ2に蓄積されたビデオストリームの各ピクチャの先頭に付くピクチャヘッダを検出し、その各ピクチャヘッダに規定されているピクチャのタイプ(I,P,B)を検出する。
【0080】
スライスヘッダ検出回路5は、ビットバッファ2に蓄積されたビデオストリームの各スライスの先頭に付くスライスヘッダを検出する。
制御コア回路12は、ピクチャヘッダ検出回路4の検出結果に基づいて、ビットバッファ2から1フレーム期間毎に1枚のピクチャ分ずつのビデオストリームを読み出す。
【0081】
可変長デコーダ6は、ビットバッファ2から読み出されたピクチャに対して、ROM10に記憶されたハフマンテーブルに格納されているハフマンコードに基づいた可変長デコードを行う。
【0082】
逆量子化回路7は、可変長デコーダ6のデコード結果に対して、ROM11に記憶された量子化テーブルに格納されている量子化閾値に基づいた逆量子化を行いDCT(Discrete Cosine Transform)係数を求める。
【0083】
IDCT回路8は、逆量子化回路7が求めたDCT係数に対してIDCTを行う。
MC回路9は、IDCT回路8の処理結果に対してMC(Motion Compensated
prediction)を行う。
【0084】
MC回路9の処理結果は、フレームバッファ3の各領域3a〜3cへ転送される。また、フレームバッファ3の各領域3a〜3cから読み出されたデータはMC回路9へ転送される。
【0085】
フレームバッファ3はRAMから成り、その内部は3つの領域(前方参照領域3a、後方参照領域3b、Bピクチャ格納領域3c)に分けられている。前方参照領域3aには、MC回路9において逆方向予測を行う際に用いられる未来のIピクチャまたはPピクチャが格納される。後方参照領域3bには、MC回路9において順方向予測を行う際に用いられる過去のIピクチャまたはPピクチャが格納される。Bピクチャ格納領域3cにはBピクチャが格納される。
【0086】
前方参照領域3aおよび後方参照領域3bに格納されるIピクチャまたはPピクチャは、順方向予測または逆方向予測を行うための基データとして使われるため、必要がなくなるまで、各領域3a,3bに格納し続けなければならない。Bピクチャ格納領域3cに格納されるBピクチャについては基データとして扱われないため、ディスプレイ21へ出力されたら不要になる。尚、各領域3a〜3cはプレーンと呼ばれる。
【0087】
そして、各領域3a〜3cのいずれか1つに格納されたピクチャのデータ(ビデオ信号)が、MC回路9を介して、MPEGビデオデコーダ1の外部に設けられたディスプレイ21へ出力される。
【0088】
例えば、図10(a)に示すように原画像の各ピクチャの順番が構成されている場合、MPEGビデオエンコーダでは図10(b)に示すように各ピクチャの順番が並べ替えられる。図10(c)に示すように、伝達メディア20では、MPEGビデオエンコーダで並べ替えられた順番のままで各ピクチャが転送される。そして、図10(d)(e)に示すように、MPEGビデオデコーダ1では、ディスプレイ21の再生画像の各ピクチャの順番が原画像のそれと同じになるように、各ピクチャの順番が並べ替えられる。
【0089】
フレームバッファ3は、このMPEGビデオデコーダ1における各ピクチャの順番の並べ替えを行うために設けられている。
すなわち、各回路6〜9でBピクチャB3を処理し、その処理結果をBピクチャ格納領域3cへ転送しているとき、ディスプレイ21へは後方参照領域3bに既に格納されているIピクチャI2が出力される。
【0090】
また、各回路6〜9でBピクチャB4を処理し、その処理結果をBピクチャ格納領域3cへ転送しているとき、ディスプレイ21へはBピクチャ格納領域3cに既に格納されているBピクチャB3が出力される。その結果、各回路6〜9でBピクチャB4を処理しているときには、Bピクチャ格納領域3cに既に格納されているBピクチャB3に対して、新たに処理されたBピクチャB4のデータが上書きされる。
【0091】
また、各回路6〜9でPピクチャP8を処理し、その処理結果を後方参照領域3bへ転送しているとき、ディスプレイ21へはBピクチャ格納領域3cに既に格納されているBピクチャB4が出力される。
【0092】
尚、フレームバッファ3とビットバッファ2とは、部品点数を少なくしてMPEGビデオデコーダ1の部品コストを減少させるため、1つのRAM内に領域を分けて設けられている。
【0093】
ハフマンエラー検出回路13は、可変長デコーダ6におけるデコード処理を監視することで、スライス毎にエラー検出を行う。すなわち、ハフマンエラー検出回路13は、スライスに対応するデータがハフマンテーブルに格納されていない場合や、スライスに対応するデータが過去のデコード結果と矛盾する場合、そのスライス内にエラーが含まれていると判定する。
【0094】
制御コア回路12は、ハフマンエラー検出回路16によってスライス内にエラーが含まれていると判定された場合、以下のエラー処理Aを行う。ここでは、図8に示すスライスS1内にエラーが含まれている場合を例にとって説明する。尚、スライスS1はn個のマクロブロックMB1〜MBnによって構成されているものとする。
【0095】
A−(1) エラーが含まれていると判定されたスライスS1に対する可変長デコーダ6のデコード処理を停止させ、そのスライスS1のデコード処理結果を無効にさせる。
【0096】
A−(2) スライスヘッダ検出回路5の検出結果に基づいて、ビットバッファ2からスライスS1の次のスライスS2を読み出す。そして、可変長デコーダ6にスライスS2の可変長デコードを行わせる。
【0097】
A−(3) MC回路9およびフレームバッファ3を制御して、フレームバッファ3に格納されるスライスS1を、そのスライスS1が含まれているピクチャの1つ前にディスプレイ21へ出力されるピクチャの対応するマクロブロックMB1′〜MBn′によって置き換える。この動作を、図10(d)(e)に示すように各ピクチャの順番が構成されている場合を例にとって説明する。
【0098】
A−(3)−[1] スライスS1を含むピクチャがBピクチャB3の場合;BピクチャB3の1つ前にディスプレイ21へ出力されるピクチャはIピクチャI2である。BピクチャB3をBピクチャ格納領域3cへ転送しているとき、IピクチャI2は既に後方参照領域3bに格納されている。
【0099】
図11に示すように、BピクチャB3のスライスS1に対応するIピクチャI2のマクロブロックMB1′〜MBn′を後方参照領域3bから読み出す。そして、IピクチャI2のマクロブロックMB1′〜MBn′をBピクチャ格納領域3cに書き込むことで、BピクチャB3のスライスS1をIピクチャI2のマクロブロックMB1′〜MBn′に置き換える。
【0100】
A−(3)−[2] スライスS1を含むピクチャがBピクチャB4の場合;BピクチャB4の1つ前にディスプレイ21へ出力されるピクチャはBピクチャB3である。BピクチャB3をBピクチャ格納領域3cへ転送しているとき、BピクチャB3は既にBピクチャ格納領域3cに格納されている。
【0101】
図12に示すように、Bピクチャ格納領域3cにおいて、BピクチャB4のスライスS1に対応するBピクチャB3のマクロブロックMB1′〜MBn′に対してはBピクチャB4のデータを上書きせず、BピクチャB3のマクロブロックMB1′〜MBn′をそのまま残す。その結果、BピクチャB4のスライスS1はBピクチャB3のマクロブロックMB1′〜MBn′に置き換えられる。
【0102】
A−(3)−[3] スライスS1を含むピクチャがPピクチャP5の場合;PピクチャP5の1つ前にディスプレイ21へ出力されるピクチャはBピクチャB4である。PピクチャP5は前方参照領域3aに格納され、BピクチャB4はBピクチャ格納領域3cに格納されている。
【0103】
図13に示すように、PピクチャB5のスライスS1に対応するBピクチャB4のマクロブロックMB1′〜MBn′をBピクチャ格納領域3cから読み出す。そして、BピクチャB4のマクロブロックMB1′〜MBn′を前方参照領域3aに書き込むことで、PピクチャP5のスライスS1をBピクチャB4のマクロブロックMB1′〜MBn′に置き換える。
【0104】
DCエラー検出回路41は、逆量子化回路7における逆量子化処理を監視することで、マクロブロック毎にエラー検出を行う。すなわち、DCエラー検出回路41は、逆量子化回路7の求めたDCT係数のうち直流(DC;Direct Current)係数が所定値内に納まっているかどうかをマクロブロック毎に検出し、納まっていない場合、そのマクロブロック内にエラーが含まれていると判定する。尚、DC係数はDCT係数の(0、0)成分である。
【0105】
動き領域エラー検出回路42は、MC回路9内の動きベクトル復元回路43が復元した動きベクトルを監視することで、マクロブロック毎にエラー検出を行う。例えば、図2に示すように、動きベクトル復元回路43は、ピクチャ51に含まれるスライスS3を構成する各マクロブロックMB11〜MB15について、それぞれ動きベクトル52〜56を復元する。動き領域エラー検出回路42は、各動きベクトル52〜56がピクチャ51内を示しているかどうかを検出し、ピクチャ51外を示している場合、その動きベクトルを含むマクロブロック内にエラーが含まれていると判定する。ここで、動きベクトル52〜55についてはピクチャ51内を示しているが、動きベクトル56はピクチャ51外を示している。従って、動き領域エラー検出回路42は、動きベクトル56を含むマクロブロックMB15内にエラーが含まれていると判定する。
【0106】
尚、DCエラー検出回路41または動き領域エラー検出回路42によって検出されたエラーの原因には、以下のものがある。
▲1▼伝達メディア20から転送されてきたビデオストリームのエンコードが元々、MPEGビデオパートの規格通りに行われていない場合。
【0107】
▲2▼伝達メディア20内で生じた何らかの事故により、伝達メディア20から転送されてきたビデオストリームの任意のビットに誤りがある場合。例えば、伝達メディア20としてビデオCDやDVDを用いた場合には、ディスクに付いた傷が原因で、ディスクから読み出されたビデオストリームの任意のビットに誤りが生じることがある。また、通信メディアや放送メディアでは、ノイズが原因で、伝送されるビデオストリームの任意のビットに誤りが生じることがある。
【0108】
制御コア回路12は、DCエラー検出回路41または動き領域エラー検出回路42によってマクロブロック内にエラーが含まれていると判定された場合、以下のエラー処理Bを行う。ここでは、図8に示すスライスS1内のマクロブロックMBm内にエラーが含まれている場合を例にとって説明する。
【0109】
B−(1) エラーが含まれていると判定されたスライスS1内のマクロブロックMBm以降の全てのマクロブロックMBm〜MBnに対する各回路6〜8の処理を停止させ、その各マクロブロックMBm〜MBnの処理結果を無効にさせる。
【0110】
B−(2) スライスヘッダ検出回路5の検出結果に基づいて、ビットバッファ2からスライスS1の次のスライスS2を読み出す。そして、各回路6〜8にスライスS2の処理を行わせる。
【0111】
B−(3) MC回路9およびフレームバッファ3を制御して、フレームバッファ3に格納される各マクロブロックMBm〜MBnを、そのマクロブロックMBm〜MBnが含まれているピクチャの1つ前にディスプレイ21へ出力されるピクチャの対応する各マクロブロックMBm′〜MBn′によって置き換える。この動作を、図10(d)(e)に示すように各ピクチャの順番が構成されている場合を例にとって説明する。
【0112】
B−(3)−[1] マクロブロックMBm〜MBnを含むピクチャがBピクチャB3の場合;図3に示すように、BピクチャB3のマクロブロックMBm〜MBnに対応するIピクチャI2のマクロブロックMBm′〜MBn′を後方参照領域3bから読み出す。そして、IピクチャI2のマクロブロックMBm′〜MBn′をBピクチャ格納領域3cに書き込むことで、BピクチャB3のマクロブロックMBm〜MBnをIピクチャI2のマクロブロックMBm′〜MBn′に置き換える。
【0113】
B−(3)−[2] マクロブロックMBm〜MBnを含むピクチャがBピクチャB4の場合;図4に示すように、Bピクチャ格納領域3cにおいて、BピクチャB4のマクロブロックMBm〜MBnに対応するBピクチャB3のマクロブロックMBm′〜MBn′に対してはBピクチャB4のデータを上書きせず、BピクチャB3のマクロブロックMBm′〜MBn′をそのまま残す。その結果、BピクチャB4のマクロブロックMBm〜MBnはBピクチャB3のマクロブロックMBm′〜MBn′に置き換えられる。
【0114】
B−(3)−[3] マクロブロックMBm〜MBnを含むピクチャがPピクチャP5の場合;図5に示すように、PピクチャB5のマクロブロックMBm〜MBnに対応するBピクチャB4のマクロブロックMBm′〜MBn′をBピクチャ格納領域3cから読み出す。そして、BピクチャB4のマクロブロックMBm′〜MBn′を前方参照領域3aに書き込むことで、PピクチャP5のマクロブロックMBm〜MBnをBピクチャB4のマクロブロックMBm′〜MBn′に置き換える。
【0115】
図6に、MC回路9の内部構成を示す。
MC回路9は、逆方向予測メモリ31、順方向予測メモリ32、平均回路33、加算回路34、スイッチSW1〜SW6、動きベクトル復元回路43から構成されている。
【0116】
スイッチSW6は2つの接点a,bをもち、接点aはIDCT回路8の出力に接続され、接点bはアースされ、各接点a,bのいずれか一方が加算回路34の入力に接続される。
【0117】
スイッチSW1は4つの接点a〜dをもち、接点aは逆方向予測メモリ31の出力に接続され、接点bは平均回路33の出力に接続され、接点cは順方向予測メモリ32の出力に接続され、接点dはアースされ、各接点a〜dのいずれか1つが加算回路34の入力に接続される。
【0118】
スイッチSW2は2つの接点a,bをもち、接点aは逆方向予測メモリ31の入力に接続され、接点bは順方向予測メモリ32の入力に接続され、各接点a,bのいずれか一方がスイッチSW3に接続される。
【0119】
スイッチSW3は3つの接点a〜cをもち、接点aはフレームバッファ3の前方参照領域3aの出力に接続されると共にスイッチSW5の接点aに接続され、接点bはフレームバッファ3の後方参照領域3bの出力に接続されると共にスイッチSW5の接点bに接続され、接点cはフレームバッファ3のBピクチャ格納領域3cの出力に接続されると共にスイッチSW5の接点cに接続される。
【0120】
スイッチSW5は3つの接点a〜cをもち、各接点a〜cのいずれか1つがディスプレイ21に接続される。
スイッチSW4は3つの接点a〜cをもち、接点aは前方参照領域3aの入力に接続され、接点bは後方参照領域3bの入力に接続され、接点cはBピクチャ格納領域3cの入力に接続され、各接点a〜cのいずれか1つが加算回路34の出力に接続される。
【0121】
逆方向予測メモリ31および順方向予測メモリ32はそれぞれ、1個のマクロブロック分のデータを格納する。
平均回路33は、逆方向予測メモリ31および順方向予測メモリ32から読み出されたデータを平均化する。
【0122】
動きベクトル復元回路43は、各領域3a〜3cのいずれか1つから読み出した1個のマクロブロック分のデータをスイッチSW3を介して入力し、そのマクロブロックの動きベクトルを復元する。
【0123】
このように構成されたMC回路9は以下の動作を行う。
▲1▼各エラー検出回路13,41,42がいずれもエラーを検出しない場合(通常動作);スイッチSW6を接点aに接続する。
【0124】
▲1▼−[1] IDCT回路8からIピクチャが出力された場合;スイッチSW1を接点dに接続し、スイッチSW4を接点aまたは接点bに接続する。スイッチSW5を、スイッチSW4の接続されている接点とは異なる接点a〜cに接続する。例えば、スイッチSW4が接点aに接続されている場合、スイッチSW5は接点bまたは接点cに接続する。スイッチSW2,SW3はどの接点に接続してもよい。その結果、加算回路34の出力はIDCT回路8の出力と同じになる。その加算回路34の出力は、スイッチSW4を介して、前方参照領域3aまたは後方参照領域3bへ転送される。
【0125】
▲1▼−[2] IDCT回路8からPピクチャが出力された場合;スイッチSW1をマクロブロック・タイプに対応した接点c,dに接続する。
【0126】
▲1▼−[2]−<1> マクロブロック・タイプがフレーム内予測画面の場合;上記▲1▼−[1] と同じである。
【0127】
▲1▼−[2]−<2> マクロブロック・タイプが順方向予測画面の場合;スイッチSW2,SW3をそれぞれ接点bに接続し、後方参照領域3bから読み出した1個のマクロブロック分のデータを、順方向予測メモリ32に格納する。そして、スイッチSW1を接点cに接続し、スイッチSW4を接点aまたは接点bに接続する。スイッチSW5を、スイッチSW4の接続されている接点とは異なる接点a〜cに接続する。その結果、加算回路34は、順方向予測メモリ32から読み出されたマクロブロックのデータと、IDCT回路8の出力とを加算する。その加算回路34の出力は、スイッチSW4を介して、前方参照領域3aまたは後方参照領域3bへ転送される。
【0128】
▲1▼−[3] IDCT回路8からBピクチャが出力された場合;スイッチSW1をマクロブロック・タイプに対応した接点a〜dに接続し、スイッチSW4,SW5をそれぞれ接点cに接続する。その結果、加算回路34の出力は、スイッチSW4を介して、Bピクチャ格納領域3cへ転送される。
【0129】
▲1▼−[3]−<1> マクロブロック・タイプがフレーム内予測画面の場合;スイッチSW1を接点dに接続する。スイッチSW2,SW3はどの接点に接続してもよい。その結果、加算回路34の出力はIDCT回路8の出力と同じになる。
【0130】
▲1▼−[3]−<2> マクロブロック・タイプが順方向予測画面の場合;スイッチSW2,SW3をそれぞれ接点bに接続し、後方参照領域3bから読み出した1個のマクロブロック分のデータを、順方向予測メモリ32に格納する。そして、スイッチSW1を接点cに接続する。その結果、加算回路34は、順方向予測メモリ32から読み出されたマクロブロックのデータと、IDCT回路8の出力とを加算する。
【0131】
▲1▼−[3]−<3> マクロブロック・タイプが逆方向予測画面の場合;スイッチSW2,SW3をそれぞれ接点aに接続し、前方参照領域3aから読み出した1個のマクロブロック分のデータを、逆方向予測メモリ31に格納する。そして、スイッチSW1を接点aに接続する。その結果、加算回路34は、逆方向予測メモリ31から読み出されたマクロブロックのデータと、IDCT回路8の出力とを加算する。
【0132】
▲1▼−[3]−<4> マクロブロック・タイプが内挿的予測画面の場合;まず、スイッチSW2,SW3をそれぞれ接点bに接続し、後方参照領域3bから読み出した1個のマクロブロック分のデータを、順方向予測メモリ32に格納する。次に、スイッチSW2,SW3をそれぞれ接点aに接続し、前方参照領域3aから読み出した1個のマクロブロック分のデータを、逆方向予測メモリ31に格納する。平均回路33は、逆方向予測メモリ31および順方向予測メモリ32から読み出されたデータを平均化する。そして、スイッチSW1を接点bに接続する。その結果、加算回路34は、平均回路33の出力と、IDCT回路8の出力とを加算する。
【0133】
▲2▼各エラー検出回路13,41,42のいずれか1つがエラーを検出した場合(エラー処理動作);スイッチSW6を接点bに接続し、スイッチSW2を接点aに接続する。スイッチSW4を、エラーが含まれているピクチャが格納される領域3a〜3cに対応する接点a〜cに接続する。スイッチSW3を、エラーが含まれているピクチャの1つ前にディスプレイ21へ出力されるピクチャが格納されている領域3a〜3cに対応する接点a〜cに接続する。そして、各領域3a〜3cのいずれか1つから読み出した1個のマクロブロック分のデータを、スイッチSW2,SW3を介して、逆方向予測メモリ31に格納する。続いて、スイッチSW1を接点aに接続する。その結果、加算回路34の出力は逆方向予測メモリ31から読み出されたマクロブロックのデータと同じになる。その加算回路34の出力は、スイッチSW4を介して、エラーが含まれているピクチャが格納される領域3a〜3cへ転送される。
【0134】
▲2▼−[1] ハフマンエラー検出回路13がエラーを検出した場合;上記のエラー処理動作を、エラーが含まれていると判定されたスライス(前記スライスS1)が、そのスライスが含まれているピクチャの1つ前にディスプレイ21へ出力されるピクチャの対応するマクロブロック(前記マクロブロックMB1′〜MBn′)によって置き換えられるまで、マクロブロック毎に繰り返し行う。
【0135】
上記のエラー処理動作を、図8に示すスライスS1内にエラーが含まれていると判定され、図10(d)(e)に示すように各ピクチャの順番が構成されている場合を例にとって説明する。
【0136】
▲2▼−[1]−<1> スライスS1を含むピクチャがBピクチャB3の場合(図11参照);スイッチSW4を、BピクチャB3が格納されるBピクチャ格納領域3cに対応する接点cに接続する。スイッチSW3を、IピクチャI2が格納される後方参照領域3bに対応する接点bに接続する。そして、後方参照領域3bから読み出したマクロブロックMB1′のデータを、スイッチSW2,SW3を介して、逆方向予測メモリ31に格納する。続いて、逆方向予測メモリ31から読み出したマクロブロックMB1′のデータだけを、加算回路34を介してBピクチャ格納領域3cへ転送する。このエラー処理動作を、各マクロブロックMB2′〜MBn′について繰り返し行い、BピクチャB3のスライスS1をIピクチャI2のマクロブロックMB1′〜MBn′に置き換える。
【0137】
▲2▼−[1]−<2> スライスS1を含むピクチャがBピクチャB4の場合(図12参照);スイッチSW4を、BピクチャB4が格納されるBピクチャ格納領域3cに対応する接点cに接続する。スイッチSW3を、BピクチャB3が格納されるBピクチャ格納領域3cに対応する接点cに接続する。そして、Bピクチャ格納領域3cから読み出したマクロブロックMB1′のデータを、スイッチSW2,SW3を介して、逆方向予測メモリ31に格納する。続いて、逆方向予測メモリ31から読み出したマクロブロックMB1′のデータだけを、加算回路34を介してBピクチャ格納領域3cへ転送する。つまり、マクロブロックMB1′に対してはBピクチャB4のデータが上書きされず、マクロブロックMB1′はそのまま残ることになる。このエラー処理動作を、各マクロブロックMB2′〜MBn′について繰り返し行い、BピクチャB4のスライスS1をBピクチャB3のマクロブロックMB1′〜MBn′に置き換える。
【0138】
▲2▼−[1]−<3> スライスS1を含むピクチャがPピクチャP5の場合(図13参照);スイッチSW4を、PピクチャB5が格納される前方参照領域3aに対応する接点aに接続する。スイッチSW3を、BピクチャB4が格納されるBピクチャ格納領域3cに対応する接点cに接続する。そして、Bピクチャ格納領域3cから読み出したマクロブロックMB1′のデータを、スイッチSW2,SW3を介して、逆方向予測メモリ31に格納する。続いて、逆方向予測メモリ31から読み出したマクロブロックMB1′のデータだけを、加算回路34を介して前方参照領域3aへ転送する。このエラー処理動作を、各マクロブロックMB2′〜MBn′について繰り返し行い、PピクチャP5のスライスS1をBピクチャB4のマクロブロックMB1′〜MBn′に置き換える。
【0139】
▲2▼−[2] DCエラー検出回路41または動き領域エラー検出回路42がエラーを検出した場合;上記のエラー処理動作を、エラーが含まれていると判定されたスライス(前記スライスS1)内のマクロブロック(前記マクロブロックMBm)以降の全てのマクロブロック(前記マクロブロックMBm〜MBn)が、そのマクロブロックが含まれているピクチャの1つ前にディスプレイ21へ出力されるピクチャの対応するマクロブロック(前記マクロブロックMBm′〜MBn′)によって置き換えられるまで、マクロブロック毎に繰り返し行う。
【0140】
上記のエラー処理動作を、図8に示すスライスS1内のマクロブロックMBmにエラーが含まれていると判定され、図10(d)(e)に示すように各ピクチャの順番が構成されている場合を例にとって説明する。
【0141】
▲2▼−[2]−<1> マクロブロックMBmを含むピクチャがBピクチャB3の場合(図3参照);スイッチSW4を、BピクチャB3が格納されるBピクチャ格納領域3cに対応する接点cに接続する。スイッチSW3を、IピクチャI2が格納される後方参照領域3bに対応する接点bに接続する。そして、後方参照領域3bから読み出したマクロブロックMBm′のデータを、スイッチSW2,SW3を介して、逆方向予測メモリ31に格納する。続いて、逆方向予測メモリ31から読み出したマクロブロックMBm′のデータだけを、加算回路34を介してBピクチャ格納領域3cへ転送する。このエラー処理動作を、各マクロブロックMBm+1′〜MBn′について繰り返し行い、BピクチャB3のマクロブロックMBm〜MBnをIピクチャI2のマクロブロックMBm′〜MBn′に置き換える。
【0142】
▲2▼−[2]−<2> マクロブロックMBmを含むピクチャがBピクチャB4の場合(図4参照);スイッチSW4を、BピクチャB4が格納されるBピクチャ格納領域3cに対応する接点cに接続する。スイッチSW3を、BピクチャB3が格納されるBピクチャ格納領域3cに対応する接点cに接続する。そして、Bピクチャ格納領域3cから読み出したマクロブロックMBm′のデータを、スイッチSW2,SW3を介して、逆方向予測メモリ31に格納する。続いて、逆方向予測メモリ31から読み出したマクロブロックMBm′のデータだけを、加算回路34を介してBピクチャ格納領域3cへ転送する。つまり、マクロブロックMBm′に対してはBピクチャB4のデータが上書きされず、マクロブロックMBm′はそのまま残ることになる。このエラー処理動作を、各マクロブロックMBm+1′〜MBn′について繰り返し行い、BピクチャB4のマクロブロックMBm〜MBnをBピクチャB3のマクロブロックMBm′〜MBn′に置き換える。
【0143】
▲2▼−[2]−<3> マクロブロックMBmを含むピクチャがPピクチャP5の場合(図5参照);スイッチSW4を、PピクチャB5が格納される前方参照領域3aに対応する接点aに接続する。スイッチSW3を、BピクチャB4が格納されるBピクチャ格納領域3cに対応する接点cに接続する。そして、Bピクチャ格納領域3cから読み出したマクロブロックMBm′のデータを、スイッチSW2,SW3を介して、逆方向予測メモリ31に格納する。続いて、逆方向予測メモリ31から読み出したマクロブロックMBm′のデータだけを、加算回路34を介して前方参照領域3aへ転送する。このエラー処理動作を、各マクロブロックMBm+1′〜MBn′について繰り返し行い、PピクチャP5のマクロブロックMBm〜MBnをBピクチャB4のマクロブロックMBm′〜MBn′に置き換える。
【0144】
このように、本実施形態によれば、以下の作用および効果を得ることができる。
(1)ハフマンエラー検出回路13によってスライス毎にエラー検出を行う。そして、あるスライスS1内にエラーが含まれている場合には、前記エラー処理Aを行う。
【0145】
(2)上記(1)により、フレームバッファ3に格納されるエラーを含むスライスS1を、そのスライスS1を含むピクチャの1つ前にディスプレイ21へ出力されるピクチャの対応するマクロブロックMB1′〜MBn′によって置き換えることができる。ディスプレイ21へ連続して出力される各ピクチャにおいて、あるピクチャと、その前後のピクチャとは良く似ており、異なっているのは、そのごく一部分に過ぎない。つまり、スライスS1とマクロブロックMB1′〜MBn′とは同じデータ内容である可能性が高い。従って、エラーを含むスライスS1をマクロブロックMB1′〜MBn′によって置き換えれば、ほとんどの場合にエラーを隠すことができる。
【0146】
(3)DCエラー検出回路41および動き領域エラー検出回路42によってマクロブロック毎にエラー検出を行う。そして、あるスライスS1内のあるマクロブロックMBm内にエラーが含まれている場合には、前記エラー処理Bを行う。
【0147】
(4)上記(3)により、フレームバッファ3に格納されるエラーを含むスライスS1内のマクロブロックMBm以降の全てのマクロブロックMBm〜MBnを、そのマクロブロックMBmを含むピクチャの1つ前にディスプレイ21へ出力されるピクチャの対応するマクロブロックMBm′〜MBn′によって置き換えることができる。マクロブロックMBm〜MBnとマクロブロックMBm′〜MBn′とは同じデータ内容である可能性が高い。従って、エラーを含むスライスS1内のマクロブロックMBm以降の全てのマクロブロックMBm〜MBnをマクロブロックMBm′〜MBn′によって置き換えれば、ほとんどの場合にエラーを隠すことができる。
【0148】
(5)図9に示す従来例では上記(1)(2)の作用および効果しか得られない。それに対して、本実施形態では、上記(1)(2)に加えて上記(3)(4)の作用および効果を得ることができる。従って、本実施形態によれば、従来例に比べて、エラー検出の精度を高めることが可能になり、エラー耐性の強化を図ることができる。
【0149】
(6)前記エラー処理Bにおいて、エラーが含まれるマクロブロックMBmだけでなく、スライスS1内のマクロブロックMBm以降の全てのマクロブロックMBm〜MBnについてエラー処理を行うのは以下の理由による。
【0150】
伝達メディア20内で生じた何らかの事故により、伝達メディア20から転送されてきたビデオストリームの任意のビットに誤りがある場合、スライスの途中でエラー状態が解除されることはほとんどない。
【0151】
例えば、図7に示すように、(a):「000100101101001…」というビデオストリームのコードが、(b):「000110101101001…」のように、先頭から5ビット目だけ1ビット誤った場合を例にとって説明する。ここで、ハフマンテーブルのハフマンコードを、「11」:A、「10」:B、「01」:C、「001」:D、「0001」:E、それ以外のコード:NGとする。すると、正しいビデオストリーム(a)はハフマンコードで「EDCBBC…」と表されるのに対し、誤ったビデオストリーム(b)は「EBBACD…」と表される。つまり、ビデオストリームのあるビットが誤っていても、そのビデオストリームはいずれかのハフマンコードと一致する。
【0152】
このような場合、ハフマンエラー検出回路13はエラーを検出することができず、可変長デコーダ6はでたらめなデコード結果を出力し続けることになる。可変長デコーダ6のデコード結果には、DC係数や動きベクトルに関する情報も含まれている。そのため、可変長デコーダ6のデコード結果が誤っていると、DCエラー検出回路41および動き領域エラー検出回路42もエラーを検出することができなくなる。
【0153】
つまり、各エラー検出回路41,42が、エラーが含まれるマクロブロックMBmの次のマクロブロックMBm+1についてはエラーを検出しない場合でも、マクロブロックMBm+1にエラーが含まれていることがある。従って、エラーが含まれるマクロブロックMBmだけでなく、スライスS1内のそれ以降の全てのマクロブロックMBm+1〜MBnについてもエラー処理を行うことにより、確実なエラー検出を可能にしている。
【0154】
尚、上記各実施形態は以下のように変更してもよく、その場合でも同様の作用および効果を得ることができる。
〔1〕各エラー検出回路13,41,42のうちいずれか1つを省く。また、ハフマンエラー検出回路13を省くと共に、各エラー検出回路41,42のうちいずれか1方だけを設ける。これらの場合には、上記実施形態に比べてエラー検出の精度およびエラー耐性は低下するものの、従来例に比べれば強化することができる。
【0155】
〔2〕前記エラー処理動作(▲2▼−[1] 、▲2▼−[2])において、スイッチSW2を接点bに接続する。そして、各領域3a〜3cのいずれか1つから読み出した1個のマクロブロック分のデータを、スイッチSW2,SW3を介して、順方向予測メモリ32に格納する。続いて、スイッチSW1を接点cに接続する。その結果、加算回路34の出力は順方向予測メモリ32から読み出されたマクロブロックのデータと同じになる。
【0156】
〔3〕上記実施形態をCPUを用いたソフトウェア的な処理に置き換える。すなわち、各回路(4〜9,12,13,41,42)における信号処理をCPUを用いたソフトウェア的な信号処理に置き換える。
【0157】
ところで、本明細書において、発明の構成に係る部材は以下のように定義されるものとする。
(a)エラー検出手段は、各エラー検出回路13,41,42のうち少なくともいずれか1つから構成される。
(b)エラー処理手段は、MC回路9および制御コア回路12から構成される。
【0158】
【発明の効果】
以上詳述したように本発明によれば、エラー耐性の強化を図ることが可能なMPEGビデオデコーダを提供することができる。
【図面の簡単な説明】
【図1】一実施形態のブロック回路図である。
【図2】一実施形態の作用を説明するための図である。
【図3】一実施形態の作用を説明するための図である。
【図4】一実施形態の作用を説明するための図である。
【図5】一実施形態の作用を説明するための図である。
【図6】一実施形態の要部ブロック回路図である。
【図7】一実施形態の作用を説明するための図である。
【図8】一実施形態および従来例の作用を説明するための図である。
【図9】従来例のブロック回路図である。
【図10】一実施形態および従来例の作用を説明するための図である。
【図11】一実施形態および従来例の作用を説明するための図である。
【図12】一実施形態および従来例の作用を説明するための図である。
【図13】一実施形態および従来例の作用を説明するための図である。
【図14】従来例の要部ブロック回路図である。
【符号の説明】
3…フレームバッファ
5…スライスヘッダ検出回路
6…可変長デコーダ
7…逆量子化回路
8…IDCT回路
9…MC回路
12…制御コア回路
13…ハフマンエラー検出回路
41…DCエラー検出回路
42…動き領域エラー検出回路
43…動きベクトル復元回路
Claims (8)
- MPEGビデオストリームに含まれるエラーを検出するエラー検出手段を含み、
当該エラー検出手段は、マクロブロック毎に動きベクトルの復元を行ったとき、復元した動きベクトルの示す位置をもとに、マクロブロック毎にエラー検出を行うことを特徴とするMPEGビデオデコーダ。 - MPEGビデオストリームに含まれるエラーを検出するエラー検出手段を含み、
当該エラー検出手段は、
ハフマンコードに基づいた可変長デコードを行ったとき、そのデコード処理の結果をもとにスライス毎にエラー検出を行う第1のエラー検出回路と、
量子化閾値に基づいた逆量子化を行ったとき、その逆量子化処理の結果をもとにマクロブロック毎にエラー検出を行う第2のエラー検出回路と、
マクロブロック毎に動きベクトルの復元を行ったとき、復元した動きベクトルの示す位置をもとにマクロブロック毎にエラー検出を行う第3のエラー検出回路と、
を備えたことを特徴とするMPEGビデオデコーダ。 - MPEGビデオストリームに含まれるエラーを検出するエラー検出手段を含み、
当該エラー検出手段は、
ハフマンコードに基づいた可変長デコードを行ったとき、そのデコード処理の結果をもとにスライス毎にエラー検出を行う信号処理部と、
マクロブロック毎に動きベクトルの復元を行ったとき、復元した動きベクトルの示す位置をもとにマクロブロック毎にエラー検出を行う信号処理部と、
を備えたことを特徴とするMPEGビデオデコーダ。 - 前記スライス毎にエラー検出を行う信号処理部は、可変長デコードの結果得られたスライスに対応するデータに注目してエラーを検出することを特徴とする請求項3に記載のMPEGビデオデコーダ。
- MPEGビデオストリームに含まれるエラーを検出するエラ ー検出手段を含み、
当該エラー検出手段は、
量子化閾値に基づいた逆量子化を行ったとき、その逆量子化処理の結果をもとにマクロブロック毎にエラー検出を行う信号処理部と、
マクロブロック毎に動きベクトルの復元を行ったとき、復元した動きベクトルの示す位置をもとにマクロブロック毎にエラー検出を行う信号処理部と、
を備えたことを特徴とするMPEGビデオデコーダ。 - 前記逆量子化処理の結果をもとにマクロブロック毎にエラー検出を行う信号処理部は、逆量子化によって得られた離散コサイン変換係数に注目してエラーを検出することを特徴とする請求項5に記載のMPEGビデオデコーダ。
- スライス内の第mマクロブロックにエラーが検出されたとき、前記マクロブロック毎のエラー検出を停止することにより、そのスライス内にて第mマクロブロック以降のすべてのマクロブロックに関するエラー検出結果を無効化することを特徴とする請求項3から6のいずれかに記載のMPEGビデオデコーダ。
- 前記第mマクロブロック以降のすべてのマクロブロックを、それらのマクロブロックが含まれるピクチャのひとつ前に表示されるピクチャにおいてそれぞれ対応するマクロブロックに置き換えることを特徴とする請求項7に記載のMPEGビデオデコーダ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001321239A JP3568504B2 (ja) | 1994-11-29 | 2001-10-18 | Mpegビデオデコーダ |
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP29501894 | 1994-11-29 | ||
| JP29712295 | 1995-11-15 | ||
| JP7-297122 | 1995-11-15 | ||
| JP6-295018 | 1995-11-15 | ||
| JP2001321239A JP3568504B2 (ja) | 1994-11-29 | 2001-10-18 | Mpegビデオデコーダ |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000347212A Division JP3322670B2 (ja) | 1994-11-29 | 2000-11-14 | Mpegビデオデコーダ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2002185963A JP2002185963A (ja) | 2002-06-28 |
| JP3568504B2 true JP3568504B2 (ja) | 2004-09-22 |
Family
ID=27337954
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001321239A Expired - Lifetime JP3568504B2 (ja) | 1994-11-29 | 2001-10-18 | Mpegビデオデコーダ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3568504B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108377359B (zh) * | 2018-03-14 | 2020-08-04 | 苏州科达科技股份有限公司 | 视频抗误码方法、装置、电子设备、存储介质 |
-
2001
- 2001-10-18 JP JP2001321239A patent/JP3568504B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2002185963A (ja) | 2002-06-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6078616A (en) | Methods and apparatus for error concealment utilizing temporal domain motion vector estimation | |
| KR100396971B1 (ko) | 인코드된비디오데이터의에러검출및처리기능을구비한비디오디코더 | |
| US20070058729A1 (en) | System method and apparatus for seamlessly splicing data | |
| US5786858A (en) | Method of encoding image signal, apparatus for encoding image signal, method of decoding image signal, apparatus for decoding image signal, and image signal recording medium | |
| KR100850810B1 (ko) | 디지털 비디오 부호화를 위한 가변 정확도 화상간 타이밍지정 방법 및 장치 | |
| JP3147792B2 (ja) | 高速再生のためのビデオデータの復号化方法及びその装置 | |
| KR100215428B1 (ko) | B픽처의에러은폐방법 | |
| JP2001346165A (ja) | 画像処理方法とこの方法を利用可能な画像処理装置およびテレビジョン受像機 | |
| JP4114210B2 (ja) | 映像データ圧縮装置およびその方法 | |
| US6373905B1 (en) | Decoding apparatus and decoding method | |
| KR20020065908A (ko) | 화상 재생 방법과 화상 처리 방법, 및 이들 방법을 이용가능한 화상 재생 장치, 화상 처리 장치, 텔레비전 수상기 | |
| JP3203172B2 (ja) | Mpegビデオデコーダ | |
| JP3568504B2 (ja) | Mpegビデオデコーダ | |
| JP3061125B2 (ja) | Mpeg画像再生装置およびmpeg画像再生方法 | |
| JP3322670B2 (ja) | Mpegビデオデコーダ | |
| US20040179032A1 (en) | Method of intelligent video stream modification | |
| CN1487738B (zh) | 数字视频信号的记录和重放设备及其记录和重放的方法 | |
| JP4032446B2 (ja) | 映像データ圧縮装置およびその方法 | |
| EP0634868A1 (en) | Image signal encoding method, image signal encoder, image signal decoding method, image signal decoder, and image signal recording medium | |
| WO1998042139A1 (en) | Video decoder with reduced size display buffer | |
| CN1925625B (zh) | 数字视频信号的记录和重放设备及其记录和重放的方法 | |
| JP3548167B2 (ja) | 画像処理装置 | |
| JP2001238167A (ja) | 画像再生方法とこの方法を利用可能な画像再生装置およびテレビジョン受像機 | |
| JP2001339726A (ja) | 画像処理方法とこの方法を利用可能な画像処理装置およびテレビジョン受像機 | |
| JP2001238166A (ja) | 画像再生方法とこの方法を利用可能な画像再生装置およびテレビジョン受像機 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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: 20040608 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040615 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080625 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100625 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130625 Year of fee payment: 9 |
|
| 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 |
|
| 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 |
|
| EXPY | Cancellation because of completion of term |