(57)【特許請求の範囲】
【請求項１】
ビットバッファの占有量が閾値を越えた場合には、前記ビットバッファから読み出されたピクチャをＭＰＥＧビデオデコードコア回路に転送することに先だってそのピクチャのタイプを判定し、その判定結果をもとに、前記ビットバッファから読み出されたピクチャのうちＢピクチャを優先してスキップすることを特徴としたＭＰＥＧビデオデコーダ。
【請求項２】
ビットバッファから読み出されたビデオストリームに含まれるピクチャのタイプを判定するピクチャタイプ判定部と、
各ピクチャをＭＰＥＧビデオパートに準拠してデコードするＭＰＥＧビデオデコードコアと、
前記ピクチャタイプ判定部による判定の結果に従って、前記ピクチャを前記ビデオデコードコアへ転送するか否かを決定するピクチャスキップ部と、
を備えたことを特徴とするＭＰＥＧビデオデコーダ。
【請求項３】
前記ピクチャタイプ判定部、前記ＭＰＥＧビデオデコードコア、および前記ピクチャスキップ部の各機能をＣＰＵおよびそれによって実行されるソフトウエアにて実現したことを特徴とする請求項２に記載のＭＰＥＧビデオデコーダ。
【請求項４】
前記ピクチャタイプ判定部、前記ＭＰＥＧビデオデコードコア、および前記ピクチャスキップ部の各回路を１チップのＬＳＩ上に実装したことを特徴とする請求項２に記載のＭＰＥＧビデオデコーダ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ  ）ビデオデコーダに関するものである。
【０００２】
【従来の技術】
ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）は高音質の音楽情報を提供するメディアとして全世界に普及しているが、近年、音楽情報だけでなく画像情報や音声情報を中心とするマルチメディアにおける利用が進められている。マルチメディアで利用される様々なＣＤは総括してＣＤファミリーと呼ばれる。ＣＤファミリーには、いわゆる音楽用ＣＤであるＣＤ−ＤＡ（ＣＤ−Ｄｉｇｉｔａｌ  Ａｕｄｉｏ）ファミリーのほかに、いわゆるデータ用ＣＤであるＣＤ−ＲＯＭ（ＣＤ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ  ）ファミリーなどがある。ＣＤ−ＲＯＭファミリーにはＣＤ−ＩＦＭＶ（ＣＤ−Ｉｎｔｅｒａｃｔｉｖｅ  Ｆｕｌｌ  ＭｏｔｉｏｎＶｉｄｅｏ）またはＣＤ−ＩＤＶ（ＣＤ−Ｉｎｔｅｒａｃｔｉｖｅ  Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ）などがある。ＣＤ−ＩＦＭＶにはビデオＣＤやカラオケＣＤなどがある。
【０００３】
マルチメディアで扱われる情報は、膨大な量で且つ多種多様であり、これらの情報を高速に処理することがマルチメディアの実用化を図る上で必要となってくる。情報を高速に処理するためには、データの圧縮・伸長技術が不可欠となる。そのようなデータの圧縮・伸長技術として「ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  ＥｘｐｅｒｔＧｒｏｕｐ  ）」方式が挙げられる。このＭＰＥＧ方式は、ＩＳＯ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ）／ＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  ＥｌｅｃｔｒｏｔｅｃｈｎｉｃａｌＣｏｍｍｉｓｓｉｏｎ  ）傘下のＭＰＥＧ委員会（ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１）によって標準化されつつある。ＭＰＥＧは３つのパートから構成されている。パート１の「ＭＰＥＧシステムパート」（ＩＳＯ／ＩＥＣ  ＩＳ  １１１７２  Ｐａｒｔ１：Ｓｙｓｔｅｍｓ）では、ビデオデータとオーディオデータの多重化構造（マルチプレクス・ストラクチャ）および同期方式が規定される。パート２の「ＭＰＥＧビデオパート」（ＩＳＯ／ＩＥＣ  ＩＳ  １１１７２Ｐａｒｔ２：Ｖｉｄｅｏ）では、ビデオデータの高能率符号化方式およびビデオデータのフォーマットが規定される。パート３の「ＭＰＥＧオーディオパート」（ＩＳＯ／ＩＥＣＩＳ  １１１７２  Ｐａｒｔ３：Ａｕｄｉｏ）では、オーディオデータの高能率符号化方式およびオーディオデータのフォーマットが規定される。
【０００４】
ＭＰＥＧ方式を利用することにより、ＣＤ−ＲＯＭファミリーにおいても動画再生が可能になる。カラオケＣＤは、ＣＤ−ＩＦＭＶフォーマットからＭＰＥＧ方式に関する部分だけを取り出し、動画再生だけを行わせるものである。ビデオＣＤは、動画再生に加え、静止画再生および静止画再生と動画再生を組み合わせた表現が可能になるＰＢＣ（Ｐｌａｙ  Ｂａｃｋ  Ｃｏｎｔｒｏｌ  ）と呼ばれるメニュー再生機能を付加したものである。従って、ビデオＣＤはＣＤ−ＩＦＭＶと互換性があり、ＣＤ−ＩＦＭＶプレーヤでビデオＣＤフォーマットのディスクを再生することができる。
【０００５】
尚、ＭＰＥＧには主にエンコードレートの違いにより、現在のところ、ＭＰＥＧ−１，ＭＰＥＧ−２の２つの方式がある。ＭＰＥＧ−１は主にＣＤ−ＲＯＭファミリーなどの蓄積メディアに対応しており、ＭＰＥＧ−２はＭＰＥＧ−１をも含む幅広い範囲のアプリケーションに対応している。
ＭＰＥＧビデオパートで取り扱われるビデオデータは動画に関するものであり、その動画は１秒間に数十個（例えば、３０個）のフレーム（画面）によって構成されている。ビデオデータは、シーケンス（Ｓｅｑｕｅｎｃｅ）、ＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅｓ  ）、ピクチャ、スライス（Ｓｌｉｃｅ）  、マクロブロック（Ｍａｃｒｏｂｌｏｃｋ）、ブロックの順に６層の階層構造から成る。ＭＰＥＧ−１においてフレームはピクチャに対応している。ＭＰＥＧ−２においては、フレームまたはフィールドをピクチャに対応させることもできる。フィールドは、２個で１つのフレームを構成している。ピクチャにフレームが対応している構造はフレーム構造と呼ばれ、ピクチャにフィールドが対応している構造はフィールド構造と呼ばれる。
【０００６】
ＭＰＥＧでは、フレーム間予測と呼ばれる圧縮技術を用いる。フレーム間予測は、フレーム間のデータを時間的な相関に基づいて圧縮する。フレーム間予測では、双方向予測が行われる。双方向予測とは、過去の再生画像（ピクチャ）から現在の再生画像を予測する順方向予測と、未来の再生画像から現在の再生画像を予測する逆方向予測とを併用することである。
【０００７】
この双方向予測は、Ｉピクチャ（Ｉｎｔｒａ−Ｐｉｃｔｕｒｅ  ），Ｐピクチャ（Ｐｒｅｄｉｃｔｉｖｅ−Ｐｉｃｔｕｒｅ），Ｂピクチャ（Ｂｉｄｉｒｅｃｔｉｏｎａｌｌｙ  ｐｒｅｄｉｃｔｉｖｅ−Ｐｉｃｔｕｒｅ）と呼ばれる３つのタイプのピクチャを規定している。Ｉピクチャは、過去や未来の再生画像とは無関係に、独立して生成される。Ｐピクチャは順方向予測（過去のＩピクチャまたはＰピクチャからの予測）により生成される。Ｂピクチャは双方向予測により生成される。双方向予測においてＢピクチャは、以下に示す３つの予測のうちいずれか１つにより生成される。▲１▼過去のＩピクチャまたはＰピクチャからの予測、▲２▼未来のＩピクチャまたはＰピクチャからの予測、▲３▼過去および未来のＩピクチャまたはＰピクチャからの予測。そして、これらＩ，Ｐ，Ｂピクチャがそれぞれエンコードされる。つまり、Ｉピクチャは過去や未来のピクチャが無くても生成される。これに対し、Ｐピクチャは過去のピクチャが無いと生成されず、Ｂピクチャは過去または未来のピクチャが無いと生成されない。
【０００８】
フレーム間予測では、まず、Ｉピクチャが周期的に生成される。次に、Ｉピクチャよりも数フレーム先のフレームがＰピクチャとして生成される。このＰピクチャは、過去から現在への一方向（順方向）の予測により生成される。続いて、Ｉピクチャの前、Ｐピクチャの後に位置するフレームがＢピクチャとして生成される。このＢピクチャを生成するとき、順方向予測，逆方向予測，双方向予測の３つの中から最適な予測方法が選択される。一般的に連続した動画では、現在の画像とその前後の画像とは良く似ており、異なっているのはその一部分に過ぎない。そこで、前のフレーム（例えば、Ｉピクチャ）と次のフレーム（例えば、Ｐピクチャ）とは同じであると仮定し、両フレーム間に変化があればその差分（Ｂピクチャのデータ）のみを抽出して圧縮する。これにより、フレーム間のデータを時間的な相関に基づいて圧縮することができる。
【０００９】
このようにＭＰＥＧビデオパートに準拠してエンコードされたビデオデータのデータ列（ビットストリーム）は、ＭＰＥＧビデオストリーム（以下、ビデオストリームと略す）と呼ばれる。
図５に、従来のＭＰＥＧビデオデコーダ１０１の要部ブロック回路を示す。ＭＰＥＧビデオデコーダ１０１は、ビットバッファ１０２、ピクチャヘッダ検出回路１０３、ＭＰＥＧビデオデコードコア回路（以下、デコードコア回路と略す）１０４、オーバーフロー検出回路１０５、ピクチャスキップ回路１０６から構成されている。
【００１０】
伝達メディア（図示略）から転送されてきたＭＰＥＧビデオストリーム（以下、ビデオストリームと略す）は、ビットバッファ１０２へ入力される。ビットバッファ１０２はＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）構成のＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）から成るリングバッファによって構成され、ビデオストリームを順次蓄積する。
【００１１】
尚、伝達メディアには、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの通信メディア、ビデオＣＤやＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｋ）およびＶＴＲ（Ｖｉｄｅｏ  Ｔａｐｅ  Ｒｅｃｏｒｄｅｒ）などの蓄積メディア、地上波放送や衛星放送およびＣＡＴＶ（Ｃｏｍｍｕｎｉｔｙ  Ａｎｔｅｎｎａ  Ｔｅｌｅｖｉｓｉｏｎ）などの放送メディアが含まれる。
ピクチャヘッダ検出回路１０３は、ビットバッファ１０２に蓄積されたビデオストリームからピクチャヘッダを検出する。そのピクチャヘッダ検出回路１０３の検出結果に基づいて、ビットバッファ１０２からは、一定の周期毎に１ピクチャ分のビデオストリームが読み出される。
【００１２】
ビットバッファ１０２から読み出された各ピクチャは、ピクチャスキップ回路１０６を介してデコードコア回路１０４へ転送される。
ピクチャスキップ回路１０６は２つのノード１０６ａ，１０６ｂを備えている。そして、ピクチャスキップ回路１０６は、ノード１０６ａ側に接続されると、ビットバッファ１０２から読み出された各ピクチャをそのままデコードコア回路１０４へ転送する。また、ノード１０６ｂ側に接続されると、ビットバッファ１０２から読み出された各ピクチャをデコードコア回路１０４へ転送せずにピクチャ単位でスキップする。このピクチャスキップ回路１０６の各ノード１０６ａ，１０６ｂの切り換え動作は、ピクチャヘッダ検出回路１０３およびオーバーフロー検出回路１０５によって制御される。
【００１３】
デコードコア回路１０４は、ピクチャスキップ回路１０６から転送されてくる各ピクチャをＭＰＥＧビデオパートに準拠してデコードすることで各ピクチャ毎のビデオ出力を生成し、そのビデオ出力を外部に設けられたディスプレイ（図示略）へ出力する。そして、ディスプレイにおいて、ビデオ出力に基づいた動画が再生される。
【００１４】
オーバーフロー検出回路１０５は、ビットバッファ１０２がオーバーフローを起こしているかどうかを検出する。そして、オーバーフロー検出回路１０５は、ビットバッファ１０２がオーバーフローしていることを検出すると、ピクチャスキップ回路１０６を制御してノード１０６ｂ側に接続を切り換え、ビットバッファ１０２がオーバーフローしなくなるまでビットバッファ１０２から読み出された各ピクチャをスキップさせる。その後、オーバーフロー検出回路１０５は、ビットバッファ１０２のオーバーフローが解除されたことを検出すると、ピクチャスキップ回路１０６を制御してノード１０６ａ側に接続を切り換え、ビットバッファ１０２から読み出された各ピクチャをデコードコア回路１０４へ転送させる。
【００１５】
ここで、伝達メディアから転送されてくるビデオストリームのビットレートＲＢ  は固定されている。そのため、１ピクチャ分のデータ量が多すぎたり少なすぎたりして、ビットバッファ１０２がオーバーフローしたりアンダーフローしたりしないように、ビットバッファ１０２の占有率を制御する必要がある。そこで、ＭＰＥＧビデオパートでは、仮想的なＭＰＥＧビデオデコーダが想定され、それに対する規定がなされている。
【００１６】
図６に、通常の再生時におけるビットバッファ１０２の占有量の変化を示す。ビットバッファ１０２の占有量Ｂｍ  はビットレートＲＢ  をグラフの傾きとして上昇する。ビットレートＲＢ  は、シーケンスの先頭に付くシーケンスヘッダのＢＲ（Ｂｉｔ  Ｒａｔｅ）に従って式（１）に示すように規定される。また、伝達メディアから転送されてくるビデオストリームのピクチャレートＲＰ  はシーケンスヘッダのＰＲ（Ｐｉｃｔｕｒｅ  Ｒａｔｅ）によって規定される。そして、ビットバッファ１０２の容量Ｂは、シーケンスヘッダのＶＢＶ（Ｖｂｖ［Ｖｉｄｅｏ  Ｂｕｆｆｅｒｉｎｇ  Ｖｅｒｉｆｉｅｒ］  ＢｕｆｆｅｒＳｉｚｅ）に従って式（２）に示すように規定される。そして、１フレーム期間毎に、デコードコア回路１０４がそのときデコードしようとする１ピクチャ分のビデオストリームが、ビットバッファ１０２から一気に読み出される。ここで、１フレーム期間に伝達メディアから転送されてビットバッファ１０２に入力されるビデオストリームのデータ量Ｘは、ビットレートＲＢ  およびピクチャレートＲＰに従って式（３）に示すように規定される。従って、ビットバッファ１０２から１ピクチャ分のビデオストリームが一気に読み出された直後のビットバッファ１０２の占有量Ｂｍ  （＝Ｂ０  〜Ｂ６  ）は、データ量Ｘとビットバッファ１０２の容量Ｂとに基づいて、式（４）に示す条件を満たすように規定される。
【００１７】
ＲＢ  ＝４００×ＢＲ                    ・・・（１）
Ｂ＝１６×１０２４×ＶＢＶ            ・・・（２）
Ｘ＝ＲＢ  ／ＲＰ                                              ・・・（３）
０＜Ｂｍ  ＜Ｂ−Ｘ＝Ｂ−（ＲＢ  ／ＲＰ  ）・・・（４）
式（４）に示す条件を満たすようにビットバッファ１０２の占有量Ｂｍ  が規定されていれば、ビットバッファ１０２がオーバーフローしたりアンダーフローしたりすることはない。逆に言えば、ビットバッファ１０２の占有量Ｂｍ  が閾値（Ｂ−Ｘ）を越えると、次の１フレーム期間にビットバッファ１０２に入力されるビデオストリームによってビットバッファ１０２がオーバーフローする可能性が極めて高くなる。
【００１８】
通常の再生時においては、式（４）が満たされるように、ビットレートＲＢ  、ピクチャレートＲＰ  、容量Ｂの各値が規定されている。従って、式（２）に示すようにビットバッファ１０２の容量Ｂを設定しておけば、ビットバッファ１０２がオーバーフローしたりアンダーフローしたりすることはないはずである。
しかし、上記のようにビットバッファ１０２の占有率（Ｂｍ  ／Ｂ）を制御していても、ビットバッファ１０２がオーバーフローすることがある。オーバーフロー検出回路１０５およびピクチャスキップ回路１０６が設けられているのはそのためである。
【００１９】
すなわち、ビットバッファ１０２がオーバーフローしているかどうかをオーバーフロー検出回路１０５によって検出し、オーバーフローしている場合には、ビットバッファ１０２から読み出された各ピクチャをピクチャスキップ回路１０６を介してスキップさせる。その結果、ビットバッファ１０２のオーバーフローは解除される。
【００２０】
【発明が解決しようとする課題】
ビットバッファ１０２はリングバッファによって構成されているため、オーバーフローすると、ビットバッファ１０２に既に蓄積されていたビデオストリームに対して、新たに入力されたビデオストリームが上書きされることになる。その結果、ビットバッファ１０２に既に蓄積されていたビデオストリームが破壊されて失われてしまう。
【００２１】
例えば、デコードコア回路１０４において任意のピクチャをデコードしている途中でビットバッファ１０２がオーバーフローすると、デコード処理中のピクチャのビットバッファ１０２に残っている部分に対して、新たに入力されたビデオストリームが上書きされる。その結果、デコード処理中のピクチャのビットバッファ１０２に残っている部分が破壊されて失われる。すると、デコードコア回路１０４では、そのピクチャのデコードを完了することが不可能になり、そのピクチャのビデオ出力を生成することができなくなる。
【００２２】
前記したように、Ｐピクチャは過去のピクチャ無しには生成することができず、Ｂピクチャは過去または未来のピクチャ無しには生成することができない。過去や未来のピクチャ無しに生成することができるのはＩピクチャだけである。そのため、ビットバッファ１０２がオーバーフローした時点でデコード処理中のピクチャがＩピクチャまたはＰピクチャの場合には、ビットバッファ１０２に蓄積されているビデオストリームの各ピクチャのうち、そのデコード処理中のピクチャから次に読み出されるＩピクチャまでの全てのＰピクチャおよびＢピクチャをデコードすることができなくなる。つまり、デコードコア回路１０４では、ビットバッファ１０２から次のＩピクチャが読み出されるまでデコード処理を再開することができなくなる。
【００２３】
このように、ビットバッファ１０２がオーバーフローすると、多数のピクチャがデコード不可能になるため、それらのピクチャの分だけ再生される動画にコマ落ちが生じる。その結果、動画の動きが滑らかにならずギクシャクしたものになって画質が劣化し見辛くなる。
ところで、ピクチャスキップ回路１０６は、ビットバッファ１０２から読み出されたピクチャをピクチャのタイプに関係なくスキップする。そのため、ピクチャスキップ回路１０６からスキップされたピクチャがＩピクチャやＰピクチャである場合もでてくる。その場合には、ビットバッファ１０２のオーバーフローが解除されてデコードコア回路１０４におけるデコード動作が再開されたとき、スキップされたピクチャに続く数ピクチャについてはデコード処理を行うことができず、ビデオ出力の生成がしばらく停止することになる。その結果、ディスプレイにおいて再生される動画にコマ落ちが生じ、動画の動きがギクシャクしたものになって画質が劣化し見辛くなる。
【００２４】
また、上記したようにビットバッファ１０２の占有率を制御していても、ビットバッファ１０２がアンダーフローすることがある。例えば、伝達メディアとしてビデオＣＤを用いた場合には、ディスクの傷や振動により、ディスクに記録されているビデオストリームを読み取ることができないことがある。その場合には、ビデオＣＤから新たなビデオストリームが転送されてきてビットバッファ１０２のアンダーフローが解除されるまでの間、デコードコア回路１０４におけるデコード動作は停止を余儀なくされ、ビデオ出力の生成も停止されることになる。その結果、ディスプレイにおいて再生される動画にコマ落ちが生じ、動画の動きがギクシャクしたものになって画質が劣化し見辛くなる。
【００２５】
本発明は上記問題点を解決するためになされたものであって、再生される動画に生じるコマ落ちを少なくして見易さを向上させることが可能なＭＰＥＧビデオデコーダを提供することをその目的とする。
【００２６】
【課題を解決するための手段】
本発明に係るＭＰＥＧビデオデコーダのある態様は、ビットバッファの占有量が閾値を越えた場合には、前記ビットバッファから読み出されたピクチャをＭＰＥＧビデオデコードコア回路に転送することに先だってそのピクチャのタイプを判定し、その判定結果をもとに、前記ビットバッファから読み出されたピクチャのうちＢピクチャを優先してスキップすることをその要旨とする。
【００２７】
本発明に係るＭＰＥＧビデオデコーダの別の態様は、ビットバッファから読み出されたビデオストリームに含まれるピクチャのタイプを判定するピクチャタイプ判定部と、各ピクチャをＭＰＥＧビデオパートに準拠してデコードするＭＰＥＧビデオデコードコアと、前記ピクチャタイプ判定部による判定の結果に従って、前記ピクチャを前記ビデオデコードコアへ転送するか否かを決定するピクチャスキップ部と、を備えたことをその要旨とする。
【００２８】
本発明に係るＭＰＥＧビデオデコーダのさらに別の態様は、ビットバッファから読み出されたビデオストリームに含まれるピクチャのタイプを判定するピクチャタイプ判定部と、各ピクチャをＭＰＥＧビデオパートに準拠してデコードするＭＰＥＧビデオデコードコアと、前記ピクチャタイプ判定部による判定の結果に従って、前記ピクチャを前記ビデオデコードコアへ転送するか否かを決定するピクチャスキップ部と、を備えたことをその要旨とする。
【００２９】
本発明に係るＭＰＥＧビデオデコーダのさらに別の態様は、前記ピクチャタイプ判定部、前記ＭＰＥＧビデオデコードコア、および前記ピクチャスキップ部の各回路を１チップのＬＳＩ上に実装したことをその要旨とする。
【００３０】
【発明の実施の形態】
（第１実施形態）
以下、本発明を具体化した第１実施形態を図１および図２に従って説明する。図１に、本実施形態のＭＰＥＧビデオデコーダ１の要部ブロック回路を示す。ＭＰＥＧビデオデコーダ１は、ビットバッファ２、ピクチャヘッダ検出回路３、ＭＰＥＧビデオデコードコア回路（以下、デコードコア回路と略す）４、オーバーフロー判定回路５、ピクチャスキップ回路６から構成されている。
【００３１】
伝達メディア（図示略）から転送されてきたＭＰＥＧビデオストリーム（以下、ビデオストリームと略す）は、ビットバッファ２へ入力される。
尚、伝達メディアには、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの通信メディア、ビデオＣＤやＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｋ）およびＶＴＲ（Ｖｉｄｅｏ  Ｔａｐｅ  Ｒｅｃｏｄｅｒ）などの蓄積メディア、地上波放送や衛星放送およびＣＡＴＶ（Ｃｏｍｍｕｎｉｔｙ  Ａｎｔｅｎｎａ  Ｔｅｌｅｖｉｓｉｏｎ）などの放送メディアが含まれる。
【００３２】
ビットバッファ２はＦＩＦＯ構成のＲＡＭから成るリングバッファによって構成され、ビデオストリームを順次蓄積する。ここで、ビットバッファ２の容量ＢＡは、式（２）で規定される容量Ｂに、式（３）で規定されるデータ量Ｘと、適宜な余裕分ΔＢとを加えた値に設定しておく（ＢＡ＝Ｂ＋Ｘ＋ΔＢ）。例えば、ビデオＣＤでは、容量Ｂが４６ｋバイト、データ量Ｘが６ｋバイトに規定されている。また、余裕分ΔＢは容量Ｂおよびデータ量Ｘに基づいて２ｋバイト程度に設定されている。従って、ビットバッファ２の容量ＢＡは、約５４ｋ（＝４６ｋ＋６ｋ＋２ｋ）バイトに設定される。
【００３３】
ピクチャヘッダ検出回路３は、ビットバッファ２に蓄積されたビデオストリームからピクチャヘッダを検出する。そのピクチャヘッダ検出回路３の検出結果に基づいて、ビットバッファ２からは、一定の周期毎に１ピクチャ分のビデオストリームが読み出される。また、ピクチャヘッダ検出回路３は、ピクチャヘッダに基づいてビットバッファ２から読み出されたピクチャのタイプを判定する。
【００３４】
ビットバッファ２から読み出された各ピクチャは、ピクチャスキップ回路６を介してデコードコア回路４へ転送される。
ピクチャスキップ回路６は２つのノード６ａ，６ｂを備えている。そして、ピクチャスキップ回路６は、ノード６ａ側に接続されると、ビットバッファ２から読み出された各ピクチャをそのままデコードコア回路４へ転送する。また、ノード６ｂ側に接続されると、ビットバッファ２から読み出された各ピクチャをデコードコア回路４へ転送せずにピクチャ単位でスキップする。このピクチャスキップ回路６の各ノード６ａ，６ｂの切り換え動作は、ピクチャヘッダ検出回路３およびオーバーフロー判定回路５によって制御される。
【００３５】
デコードコア回路４は、ピクチャスキップ回路６から転送されてくる各ピクチャをＭＰＥＧビデオパートに準拠してデコードすることで各ピクチャ毎のビデオ出力を生成し、そのビデオ出力を外部に設けられたディスプレイ（図示略）へ出力する。そして、ディスプレイにおいて、ビデオ出力に基づいた動画が再生される。
【００３６】
オーバーフロー判定回路５は、ビットバッファ２の占有量Ｂｍ  を検出し、その占有量Ｂｍ  と第１の閾値ＢＴＨ１  および第２の閾値ＢＴＨ２  とを比較する。ここで、第１の閾値ＢＴＨ１  は容量Ｂと同じ値に設定されている（ＢＴＨ１  ＝Ｂ）。また、第２の閾値ＢＴＨ２  は容量Ｂにデータ量Ｘを加えた値に設定されている（ＢＴＨ２  ＝Ｂ＋Ｘ）。つまり、ビットバッファ２の容量ＢＡは、第２の閾値ＢＴＨ２  に余裕分ΔＢを加えた値となる。
【００３７】
次に、ピクチャスキップ回路６の各ノード６ａ，６ｂの切り換え動作を、図２に示すフローチャートに従って説明する。
まず、ステップ（以下、Ｓという）１において、オーバーフロー判定回路５により、占有量Ｂｍ  が第１の閾値ＢＴＨ１  を越えていると判定された場合（Ｂｍ  ＞ＢＴＨ１  ）にはＳ２へ移行し、越えていないと判定された場合（Ｂｍ  ≦ＢＴＨ１  ）にはＳ３へ移行する。
【００３８】
Ｓ２において、オーバーフロー判定回路５により、占有量Ｂｍ  が第２の閾値ＢＴＨ２  を越えていると判定された場合（Ｂｍ  ＞ＢＴＨ２  ）にはＳ５へ移行し、越えていないと判定された場合（Ｂｍ  ≦ＢＴＨ２  ）にはＳ４へ移行する。
Ｓ４において、ピクチャヘッダ検出回路３により、ビットバッファ２から読み出されたピクチャのタイプを判定し、そのピクチャがＢピクチャの場合はＳ５へ移行し、ＩピクチャまたはＰピクチャの場合はＳ６へ移行する。
【００３９】
Ｓ５において、ピクチャスキップ回路６はノード６ｂ側に切り換えられ、ビットバッファ２から読み出されたピクチャはスキップされる。そして、Ｓ１へ戻る。
Ｓ３において、ピクチャスキップ回路６はノード６ａ側に切り換えられ、ビットバッファ２から読み出されたピクチャはデコードコア回路４へ転送される。そして、Ｓ１へ戻る。
【００４０】
このように、本実施形態によれば、以下の作用および効果を得ることができる。
▲１▼ビットバッファ２の占有量Ｂｍ  が第１の閾値ＢＴＨ１  を越えない場合、ビットバッファ２から読み出されたピクチャはタイプに関係なくデコードコア回路４へ転送される。また、占有量Ｂｍ  が第１の閾値ＢＴＨ１  と第２の閾値ＢＴＨ２  との間にある場合、ビットバッファ２からＩピクチャまたはＰピクチャが読み出されると当該ピクチャはデコードコア回路４へ転送され、Ｂピクチャが読み出されると当該ピクチャはスキップされる。そして、占有量Ｂｍ  が第２の閾値ＢＴＨ２  を越えた場合、ビットバッファ２から読み出されたピクチャはタイプに関係なくスキップされる。
【００４１】
▲２▼上記▲１▼より、占有量Ｂｍ  が第１の閾値ＢＴＨ１  と第２の閾値ＢＴＨ２  との間にある場合には、ビットバッファ２から読み出されたピクチャのうち、Ｂピクチャが優先してスキップされる。その結果、ビットバッファ２の占有量Ｂｍ  が低下してオーバーフローが起こり難くなる。ここで、前記したように、Ｂピクチャは双方向予測によって生成され、その重要度はＩピクチャやＰピクチャに比べて低い。
【００４２】
従って、ビットバッファ２から読み出されたＢピクチャをスキップしても、次にビットバッファ２から読み出されるピクチャについては、そのタイプに関係なく、デコードコア回路４においてデコード処理を行うことができる。
▲３▼上記▲１▼より、占有量Ｂｍ  が第２の閾値ＢＴＨ２  を越えた場合、ビットバッファ２から読み出されたピクチャはタイプに関係なくスキップされる。その結果、ビットバッファ２の占有量Ｂｍ  が低下してオーバーフローは起こらなくなる。
【００４３】
▲４▼ビットバッファ２の容量ＢＡに余裕分ΔＢが設けられているため、ビットバッファ２のオーバーフローがさらに起こり難くなる。ここで、余裕分ΔＢが大きいほどビットバッファ２のオーバーフローは起こり難くなるが、ビットバッファ２の容量ＢＡが大きくなるためコストが増大して経済効率が悪化する。従って、実際に様々なビデオストリームを処理する実験を行うことで、最適な余裕分ΔＢを定める必要がある。
【００４４】
▲５▼本実施形態においては、ビットバッファ２がオーバーフローを起こす前に、ビットバッファ２から読み出されたピクチャを、そのタイプと占有量Ｂｍ  とに基づいてスキップすることで、オーバーフローの発生を未然に防止している。それに対して、従来例では、ビットバッファ２がオーバーフローを起こした後に、ビットバッファ２から読み出されたピクチャを、そのタイプに関係なくスキップすることで、オーバーフローを解除している。従って、本実施形態によれば、ディスプレイにおいて再生される動画に生じるコマ落ちが従来例に比べて少なくなり、動画の動きは滑らかなものになって見易さを向上させることができる。
【００４５】
（第２実施形態）
以下、本発明を具体化した第２実施形態を図３および図４に従って説明する。図３に、本実施形態のＭＰＥＧビデオデコーダ１１の要部ブロック回路を示す。尚、本実施形態において、第１実施形態と同じ構成部材については符号を等しくしてその詳細な説明を省略する。
【００４６】
ＭＰＥＧビデオデコーダ１１は、ビットバッファ２、フレームバッファ２２、ピクチャヘッダ検出回路３、デコードコア回路４、アンダーフロー制御回路１２から構成されている。
デコードコア回路４で生成された各ピクチャのデコード結果（ビデオ出力）は、フレームバッファ２２の各領域２２ａ〜２２ｃへ転送される。また、フレームバッファ２２の各領域２２ａ〜２２ｃから読み出された各ピクチャのデコード結果は、デコードコア回路４へ転送される。
【００４７】
フレームバッファ２２はＲＡＭから成り、その内部は３つの領域（前方参照領域２２ａ、後方参照領域２２ｂ、Ｂピクチャ格納領域２２ｃ）に分けられている。前方参照領域２２ａには、デコードコア回路４において逆方向予測を行う際に用いられる未来のＩピクチャまたはＰピクチャのデコード結果（ビデオ出力）が格納される。後方参照領域２２ｂには、デコードコア回路４において順方向予測を行う際に用いられる過去のＩピクチャまたはＰピクチャのデコード結果が格納される。Ｂピクチャ格納領域２２ｃにはＢピクチャのデコード結果が格納される。そして、各領域２２ａ〜２２ｃのいずれか一つに格納されたビデオ出力が、ディスプレイ（図示略）へ出力される。
【００４８】
フレームバッファ２２とビットバッファ２とは、部品点数を少なくしてＭＰＥＧビデオデコーダ１１のコストを減少させるため、１つのＲＡＭ内に領域を分けて設けられている。ところで、前方参照領域２２ａおよび後方参照領域２２ｂに格納されるＩピクチャまたはＰピクチャは、順方向予測または逆方向予測を行うための基データとして使われるため、必要がなくなるまで、各領域２２ａ，２２ｂに格納し続けなければならない。Ｂピクチャについては基データとして扱われないため、ディスプレイ８へ出力されたら不用になる。尚、各領域２２ａ〜２２ｃはプレーンと呼ばれる。
【００４９】
尚、ＭＰＥＧビデオデコーダとＭＰＥＧオーディオデコーダとを１つのＬＳＩに搭載した場合には、ＭＰＥＧオーディオデコーダ用のビットバッファ（オーディオビットバッファ）についても、ＭＰＥＧビデオデコーダ用のフレームバッファ２２およびビットバッファ（ビデオビットバッファ）２と１つのＲＡＭ内に領域を分けて設けている。例えば、伝達メディアとしてビデオＣＤを用いた場合には、４ＭＤＲＡＭを用い、ビデオビットバッファ２の容量を５４ｋバイト、フレームバッファ２２の各領域２２ａ〜２２ｃの容量をそれぞれ１４８．５ｋバイト、オーディオビットバッファの容量を６．５ｋバイト、ユーザ用領域の容量を８ｋバイトに設定している。ちなみに、ユーザ用領域は、ビデオＣＤｖ２．０規格のセクタバッファなどに用いられる。
【００５０】
アンダーフロー制御回路１２は、ビットバッファ２の占有量Ｂｍ  と第３の閾値ＢＴＨ３  とを比較すると共に、ビットバッファ２がアンダーフローしているかどうかを検出する。ここで、第３の閾値ＢＴＨ３  はビットレートＲＢ  にＶＤ（Ｖｂｖ［Ｖｉｄｅｏ  Ｂｕｆｆｅｒｉｎｇ  Ｖｅｒｉｆｉｅｒ］  Ｄｅｌａｙ）を乗じた値に設定されている（ＢＴＨ３  ＝ＲＢ  ×ＶＤ）。尚、ＶＤはピクチャヘッダによって規定されている。そして、アンダーフロー制御回路１２は、ビットバッファ２から読み出されたピクチャのタイプと、前記比較結果および検出結果とに基づいて、デコードコア回路４のデコード動作とビットバッファ２からのピクチャの読み出し動作とを制御する。
【００５１】
次に、本実施形態の動作を図４に示すフローチャートに従って説明する。
まず、Ｓ１１において、アンダーフロー制御回路１２により、占有量Ｂｍ  が第３の閾値ＢＴＨ３  を下回っていると判定された場合（Ｂｍ  ＜ＢＴＨ３  ）にはＳ１２へ移行し、下回っていないと判定された場合（Ｂｍ  ≧ＢＴＨ３  ）にはＳ１３へ移行する。ここで、占有量Ｂｍ  が第３の閾値ＢＴＨ３  を下回っている場合、ビットバッファ２から次のピクチャが読み出されるとアンダーフローが発生する恐れが高いことになる。
【００５２】
Ｓ１２において、エラー処理が行われる。すなわち、アンダーフロー制御回路１２は、ビットバッファ２からのピクチャの読み出しを停止させる。それと同時に、アンダーフロー制御回路１２は、そのときに処理しているピクチャではなく、それ以前にビットバッファ２から読み出されたピクチャのデコード結果であるビデオ出力をデコードコア回路４から引き続き出力（リピート）させる。そして、Ｓ１１へ戻る。
【００５３】
Ｓ１３において、ビットバッファ２から次のピクチャが読み出される。そして、デコードコア回路４は、そのピクチャをデコードしてビデオ出力を生成する。そして、Ｓ１４へ移行する。
Ｓ１４において、アンダーフロー制御回路１２により、ビットバッファ２がアンダーフローしていないと判定された場合にはＳ１１へ戻り、アンダーフローを起こしていると判定された場合にはＳ１５へ移行する。すなわち、デコードコア回路４において、１つのピクチャのデコード処理が正常に終了した場合にはＳ１１へ戻り、１つのピクチャのデコード処理の途中でビットバッファ２がアンダーフローを起こした場合にはＳ１５へ移行する。
【００５４】
Ｓ１５において、Ｓ１２と同様のエラー処理が行われる。そして、Ｓ１６へ移行する。
Ｓ１６において、ピクチャヘッダ検出回路３により、ビットバッファ２から読み出されたピクチャのタイプを判定し、そのピクチャがＢピクチャの場合はＳ１７へ移行し、ＩピクチャまたはＰピクチャの場合はＳ１８へ移行する。
【００５５】
Ｓ１７において、デコードコア回路４において途中までデコード処理が行われたＢピクチャはスキップされる。そして、Ｓ１１へ戻る。
Ｓ１８において、アンダーフロー制御回路１２により、ビットバッファ２のアンダーフローが解除されたと判定された場合にはＳ１３へ戻る。すなわち、伝達メディアから新たなビデオストリームが転送されてきてビットバッファ２のアンダーフローが解除されるまで待った後でＳ１３へ戻る。
【００５６】
このように、本実施形態によれば、以下の作用および効果を得ることができる。
▲１▼ビットバッファ２の占有量Ｂｍ  が第３の閾値ＢＴＨ３  を下回った場合（すなわち、アンダーフローが発生する恐れが高い場合）に、エラー処理が行われる。その結果、ビットバッファ２の占有量Ｂｍ  が増大してアンダーフローが起こり難くなる。
【００５７】
▲２▼ビットバッファ２がアンダーフローを起こした場合にもエラー処理が行われる。その結果、ビットバッファ２がアンダーフローを起こした場合でも、デコードコア回路４からディスプレイへビデオ出力が中断することなく継続して出力され、ディスプレイにおける画面表示も継続して行われる。
▲３▼ビットバッファ２がアンダーフローを起こした場合、デコードコア回路４においてＢピクチャをデコード処理している途中であれば、そのＢピクチャはスキップされる。ここで、前記したように、Ｂピクチャは双方向予測によって生成され、その重要度はＩピクチャやＰピクチャに比べて低い。従って、ビットバッファ２から読み出されたＢピクチャをスキップしても、次にビットバッファ２から読み出されるピクチャについては、そのタイプに関係なく、デコードコア回路４においてデコード処理を行うことができる。
【００５８】
▲４▼ビットバッファ２がアンダーフローを起こした場合、デコードコア回路４においてＩピクチャまたはＰピクチャをデコード処理している途中であれば、ビットバッファ２のアンダーフローが解除されるまで待った後で、残りのデコード処理が続行される。そのため、重要度の高いＩピクチャおよびＰピクチャを有効に生かすことができる。
【００５９】
▲５▼上記▲１▼〜▲４▼より、ディスプレイにおいて再生される動画に生じるコマ落ちが従来例に比べて少なくなり、動画の動きは滑らかなものになって見易さを向上させることができる。
▲６▼本実施形態は、フレームバッファ２２に３つの領域２２ａ〜２２ｃしか設けられていない場合に適用することで上記効果を得ることができる。従って、フレームバッファ２２が３つの領域２２ａ〜２２ｃに加えて、ディスプレイへの出力専用の領域を備えている場合には、本実施例を適用する必要はない。
【００６０】
前記したように、フレームバッファ２２とビットバッファ２とを１つの４ＭＤＲＡＭ内に設けた場合、フレームバッファ２２としては３つの領域２２ａ〜２２ｃ分の容量しか確保することができない。
そのため、デコードコア回路４でＢピクチャ（以下、第２のＢピクチャという）をデコードし、そのデコード結果をＢピクチャ格納領域２２ｃへ転送しているときには、ディスプレイへはＢピクチャ格納領域２２ｃに既に格納されているＢピクチャ（以下、第１のＢピクチャという）が出力される。その結果、デコードコア回路４で第２のＢピクチャをデコードしているときには、Ｂピクチャ格納領域２２ｃに既に格納されている第１のＢピクチャに対して、新たにデコードコア回路４でデコードされた第２のＢピクチャが上書きされることになる。
【００６１】
つまり、ビットバッファ２がアンダーフローを起こしてデコードコア回路４におけるデコード動作が中断すると、Ｂピクチャ格納領域２２ｃにデコード途中の第２のＢピクチャと、上書きされていない残りの第１のＢピクチャとが共存し合うことになる。その結果、ディスプレイの表示画面が、前の画面とデコード途中の画面に２分割されてしまう。しかし、上記のようにデコード途中のＢピクチャをスキップすれば、このような画面の分割は回避される。
【００６２】
ところで、デコードコア回路４でＩピクチャまたはＰピクチャをデコードし、そのデコード結果を前方参照領域２２ａへ転送しているときには、ディスプレイへは後方参照領域２２ｂまたはＢピクチャ格納領域に既に格納されているピクチャが出力される。また、デコードコア回路４でＩピクチャまたはＰピクチャをデコードし、そのデコード結果を後方参照領域２２ｂへ転送しているときには、ディスプレイへは前方参照領域２２ａまたはＢピクチャ格納領域に既に格納されているピクチャが出力される。そのため、デコードコア回路４でＩピクチャまたはＰピクチャをデコードしているときには、Ｂピクチャの場合のような問題は起こらない。
【００６３】
従って、ビットバッファ２がアンダーフローを起こしても、伝達メディアから新たなビデオストリームが転送されてきてビットバッファ２のアンダーフローが解除されるまで待てば、ＩピクチャまたはＰピクチャを有効に生かすことができる。つまり、ビットバッファ２がアンダーフローを起こした時点でデコード途中のＩピクチャまたはＰピクチャは、アンダーフローが解除された後で、残りのデコード処理が引き続き行われる。その結果、前方参照領域２２ａまたは後方参照領域２２ｂは、デコードが完全に終了したＩピクチャまたはＰピクチャを格納することができる。
【００６４】
尚、上記各実施形態は以下のように変更してもよく、その場合でも同様の作用および効果を得ることができる。
（１）第１実施形態と第２実施形態とを併用する。この場合、両実施形態の効果を兼ね備えることができる。
（２）第１実施形態において、第２の閾値ＢＴＨ２  およびそれに関する動作を省く。この場合は、第１の閾値ＢＴＨ１  に関する作用および動作を得ることができる。
【００６５】
（３）第１および第２実施形態をＣＰＵを用いたソフトウェア的な処理に置き代える。すなわち、各回路（３〜６，１２）における信号処理をＣＰＵを用いたソフトウェア的な信号処理に置き代える。
以上、各実施形態について説明したが、各実施形態から把握できる請求項以外の技術的思想について、以下にそれらの効果と共に記載する。
【００６６】
（イ）請求項１〜４のいずれか１項に記載のＭＰＥＧビデオデコーダにおいて、ビットバッファはＦＩＦＯ構成のＲＡＭから成るＭＰＥＧビデオデコーダ。このようにすれば、ＭＰＥＧビデオストリームの書き込み及び読み出しを簡単に行うことができる。
（ロ）請求項１〜４のいずれか１項に記載のＭＰＥＧビデオデコーダにおいて、ビットバッファを除く回路が１チップ上に形成されたＭＰＥＧビデオデコーダ。
【００６７】
このようにすれば、ＭＰＥＧビデオデコーダを小型化することができる。ところで、本明細書において、発明の構成に係る部材は以下のように定義されるものとする。
（ａ）ビットバッファ制御手段はオーバーフロー判定回路５およびピクチャスキップ回路６から構成される。
【００６８】
（ｂ）外部とは伝達メディアを指し、伝達メディアには、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの通信メディア、ビデオＣＤやＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｋ）およびＶＴＲ（Ｖｉｄｅｏ  Ｔａｐｅ  Ｒｅｃｏｒｄｅｒ）などの蓄積メディア、地上波放送や衛星放送およびＣＡＴＶ（Ｃｏｍｍｕｎｉｔｙ  Ａｎｔｅｎｎａ  Ｔｅｌｅｖｉｓｉｏｎ）などの放送メディアが含まれる。
【００６９】
【発明の効果】
本発明によれば、再生される動画に生じるコマ落ちを少なくして見易さを向上させることが可能なＭＰＥＧビデオデコーダを提供することができる。
【図面の簡単な説明】
【図１】第１実施形態のブロック回路図。
【図２】第１実施形態の動作を説明するためのフローチャート。
【図３】第２実施形態のブロック回路図。
【図４】第２実施形態の動作を説明するためのフローチャート。
【図５】従来例のブロック回路図。
【図６】従来例を説明するためのグラフ。
【符号の説明】
２  ビットバッファ、  ３  ピクチャヘッダ検出回路、  ４  ＭＰＥＧビデオデコードコア回路、  ５  オーバーフロー判定回路、  ６  ピクチャスキップ回路、  １２  アンダーフロー制御回路。
【図１】
0003568503.tif 000002
【図２】
0003568503.tif 000003
【図３】
0003568503.tif 000004
【図４】
0003568503.tif 000005
【図５】
0003568503.tif 000006
【図６】
0003568503.tif 000007