JP4486755B2 - Video memory management for MPEG video decoding and display system - Google Patents
Video memory management for MPEG video decoding and display system Download PDFInfo
- Publication number
- JP4486755B2 JP4486755B2 JP2000591813A JP2000591813A JP4486755B2 JP 4486755 B2 JP4486755 B2 JP 4486755B2 JP 2000591813 A JP2000591813 A JP 2000591813A JP 2000591813 A JP2000591813 A JP 2000591813A JP 4486755 B2 JP4486755 B2 JP 4486755B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- video
- video memory
- memory
- memory manager
- 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
- 238000009792 diffusion process Methods 0.000 claims description 26
- 238000007726 management method Methods 0.000 claims description 18
- 238000013144 data compression Methods 0.000 claims description 11
- 230000002457 bidirectional effect Effects 0.000 claims description 9
- 230000008520 organization Effects 0.000 claims description 7
- 238000003860 storage Methods 0.000 claims description 4
- 241000868066 Myadestes myadestinus Species 0.000 claims 6
- 238000011084 recovery Methods 0.000 claims 2
- 238000000034 method Methods 0.000 description 41
- 238000013461 design Methods 0.000 description 35
- 238000007906 compression Methods 0.000 description 31
- 230000006835 compression Effects 0.000 description 30
- 230000006837 decompression Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 11
- 230000008901 benefit Effects 0.000 description 8
- 230000015556 catabolic process Effects 0.000 description 5
- 238000006731 degradation reaction Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000000750 progressive effect Effects 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 230000001364 causal effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、MPEG("Moving Picture Experts Groups")復号・表示システムに関し、より詳細には、ビデオイメージの復号・表示用のMPEG復号・表示システムで必要とされるビデオメモリサイズの減少に関する。
【0002】
【従来の技術】
1980年代末期、モーションビデオおよびそれに関連する音声を第1世代CD−ROM上に1.4Mビット/秒で載せる必要が生じた。この目的のため、1980年代末期および1990年代初頭、ISO(「国際標準化機構」)MPEG委員会は、ビデオおよび2チャンネルステレオ音声のためのデジタル圧縮規格を開発した。この規格は、通称MPEG−1、公式にはISO11172として知られている。
【0003】
MPEG−1に続き、衛星、カセットテープ、放送およびCATVなどの伝送媒体用のエンターテインメントテレビを圧縮する必要が生じた。従って、フル解像度の標準解像度テレビ(SDTV)画像または高品位テレビ(HDTV)画像用のデジタル圧縮方法を利用可能にするため、ISOは通称MPEG−2、公式にはISO13818として知られる第2の規格を開発した。MPEG−2を最適化するために選ばれたビットレートは、SDTVについては4Mビット/秒および9Mビット/秒、HDTVについては20Mビット/秒であった。
【0004】
MPEG−1規格もMPEG−2規格も、どの符号化方法を使用するか、符号化プロセス、または符号器の詳細について規定していない。これらの規格は、復号器へのデータ入力を表現するためのフォーマット、およびこれらのデータを解釈するためのルールセットを規定しているのみである。データを表すためのこれらのフォーマットは、構文と呼ばれ、ビットストリームと称される種々の有効なデータストリームを構築するのに用いることができる。データを解釈するためのルールは、復号意味論と呼ばれる。復号意味論の順序集合は、復号プロセスと呼ばれる。
【0005】
MPEG構文は、空間的冗長性と時間的冗長性の両方を利用する種々の符号化方法をサポートしている。空間的冗長性は、8×8画素ブロックのブロックベースの離散コサイン変換(「DCT」)符号化を用いて利用され、その後に量子化、ジグザグスキャン、および0量子化されたインデックスおよびこれらインデックスの振幅の可変長符号化が行なわれる。DCT係数の知覚的重み付け量子化を可能にする量子化行列は、知覚的に無関係の情報を捨てるために用いることができ、従って、符号化効率がさらに向上する。一方、時間的冗長性は、動き補償予測、順方向予測、逆方向予測および双方向予測を用いて利用される。
【0006】
MPEGは2タイプのビデオデータ圧縮方法、すなわちフレーム内符号化およびフレーム間符号化を提供する。
【0007】
フレーム内符号化は、空間的冗長性を利用するためのものである。対話的要件の多くは、フレーム内符号化のみで満たし得る。しかしながら、低ビットレートのいくつかのビデオ信号においては、フレーム内符号化のみで達成できる画像品質は十分ではない。
【0008】
従って、時間的冗長は、予測エラーと呼ばれるフレーム間差信号を計算するMPEGアルゴリズムにより利用される。予測エラーの計算において、動き補償の技術は、動きについての予測を補正するために使用される。H.261におけるように、マクロブロック(MB)アプローチは、MPEGにおける動き補償に採用されている。前方向予測と呼ばれる一方向の運動評価において、符号化しようとするピクチャ内の目標MBは、参照ピクチャと呼ばれる過去のピクチャ内の同サイズの移動されたマクロブロックのセットと突き合わせられる。H.261におけるように、目標マクロブロックに最もよく一致する参照ピクチャ内のマクロブロックが予測MBとして用いられる。予測エラーは、次に目標マクロブロックと予測マクロブロックとの差として計算される。
【0009】
I.ピクチャバッファサイズ
(1)2つの参照フレーム
要約すれば、MPEG−2はビデオピクチャを3タイプのピクチャ(すなわち、イントラ「I」、予測「P」および双方向予測「B」)に分割する。定義により、Iピクチャ内のすべてのマクロブロックは、(ベースラインJPEGピクチャのように)符号化イントラでなければならない。さらに、Pピクチャ内のマクロブロックはイントラあるいは非イントラとして符号化し得る。Pピクチャの非イントラ符号化の間に、Pピクチャは、前に再構築されたピクチャから一時的に予測され、それにより直前のIまたはPピクチャについて符号化される。最後に、B(すなわち双方向的予測)ピクチャ内のマクロブロックは、独立して、イントラあるいは順方向予測、逆方向予測または順方向および逆方向(補間)予測などの非イントラとして選択され得る。Bピクチャの非イントラ符号化の間に、ピクチャは、直後のIまたはPピクチャだけでなく、直前のIまたはPピクチャを基準として符号化される。符号化順序については、Pピクチャは因果的であるのに対し、Bピクチャは因果的ではなく、予測用に偶然に符号化された2つの包囲するピクチャを使う。圧縮効率については、Iピクチャは効率が最も低く、Pピクチャは多少よく、Bピクチャは最も効率的である。
【0010】
すべてのマクロブロックヘッダーは、マクロブロックタイプと呼ばれる要素を含み、これはスイッチのようにこれらのモードをオンおよびオフにできる。マクロブロック(または、MPEG−2におけるようなモーションタイプ)タイプは、ことによると、ビデオ構文全体の中で単独で最も強力な要素である。ピクチャタイプ(I、PおよびB)は、単に、意味論の範囲を広げてマクロブロックモードを可能にする。
【0011】
ピクチャのシーケンスは、I、PおよびBピクチャのほとんどどのようなパターンからでも成り得る。固定パターン(例えば、IBBPBBPBBPBBPBB)を持つことは工業的には一般的であるけれども、より進化した符号器は、よりグローバルな特徴の文脈中のローカルなシーケンスの特徴に従って3つのピクチャタイプの配置を最適化することを試みるであろう。
【0012】
上記で説明したように、Bピクチャを再構築するためには復号器は2つの参照フレーム(すなわち、2つのPフレーム、PおよびIフレーム各1つ、または2つのIフレーム)を必要とするので、ビデオ復号・表示システムは、2つの参照フレームを格納するために、ビデオメモリの少なくとも2つのフレームを割り当てなければならない。
【0013】
(2)2つの半フレーム
(I)インターレースビデオ
さらに、MPEG−2は、フレームがプログレッシブに符号化、またはインターレースされ「プログレッシブフレーム」変数により信号で伝えられ得ることを定義する。
【0014】
プログレッシブフレームは、フィルムから組織されたビデオ材料のための論理選択であり、そこではすべての「画素」が統合、すなわちほとんど同じ瞬間にキャプチャされる。ピクチャ上の場面の光学的イメージは、1度に1ラインが、左から右そして上から下へ走査される。垂直方向に表し得る細部は、走査線数により制限される。従って、ラスタ走査低下の結果として、垂直解像度の細部のいくらかが失われる。同様に、各走査線のサンプリングのため、水平方向の細部のいくらかが失われる。
【0015】
走査線の選択は、帯域幅、フリッカおよび解像度の矛盾した要件間のトレードオフを伴う。インターレースフレーム走査は、異なる時間にサンプリングされた2つのフィールドのラインで構成されたフレームを用いてこれらのトレードオフを達成しようとし、2つのフィールドのラインはインターリーブされており、それにより、フレームの2つの連続するラインは交互のフィールドに属する。これは空間的および時間的解像度における垂直−時間的トレードオフである。
【0016】
インターレースされたピクチャのために、MPEG−2は2つの「ピクチャ構造」の選択を提供する。「フィールドピクチャ」では、各々がマクロブロックに分割されて、かつ別々に符号化される個々のフィールドから構成される。他方、「フレームピクチャ」で、各インターレースされたフィールドペアは、1つのフレームに共にインターリーブされ、そのフレームは次にマクロブロックに分割され、符号化される。MPEG−2は、インターレースされたビデオが交互のトップおよびボトムフィールドとして表示されることを必要とする。しかしながら、フレーム内では、トップまたはボトムフィールドの一方が、一時的に最初に符号化され、フレームの第1フィールドピクチャとして送られる。フレーム構造の選択は、MPEG−2パラメータの1つにより示される。
【0017】
インターレースされたフレームピクチャを処理する従来の復号・表示システムにおいては、たとえトップフィールドおよびボトムフィールドのために再構築された両方のデータが復号器により同時に生成されたとしても、ボトムフィールドはトップフィールドの表示完了後にやっと表示されるか、あるいは逆の場合も同じである。ボトムフィールド表示においては、この遅延のため、遅延したものについてボトムフィールドを格納するために、1フィールド(半フレーム)サイズのバッファが必要である。付加的な1フィールド(半フレーム)のこの付加的なビデオメモリ要件が、2つの参照フレーム(すなわち、Iおよび/またはPフレーム)を格納するために必要な2つのフレームの上述の要件に加えられることに留意されたい。
【0018】
(ii)3:2プルダウン
リピート・ファースト・フィールドは、現在のフレームからのフィールドまたはフレームが、フレームレート変換の目的のために繰り返されるべきである(30Hz表示対24Hz符号化の下記例のように)ことを信号で伝えるために、MPEG−2に導入された。平均して、24フレーム/秒符号化シーケンスにおいて、1つおきの符号化されたフレームは、リピート・ファースト・フィールドフラッグを信号で伝えるであろう。従って、24フレーム/秒(または48フィールド/秒)符号化シーケンスは、30フレーム/秒(60フィールド/秒)表示シーケンスになるであろう。このプロセスは数十年来、3:2プルダウンとして知られている。テレビ出現以来、NTSCディスプレイ上で見られたほとんどの映画は、この方法で表示されてきた。MPEG−2フォーマットにおいては、リピート・ファースト・フィールドフラッグはあらゆるフレーム構造化ピクチャにおいて独立して決定されるので、実際のパターンは不規則となり得る(それは、文字どおり1つ置きのフレームである必要はない)。
【0019】
MPEG−2ビデオについては、ビデオディスプレイおよびメモリコントローラは、復号されたビデオデータと共に来るフラッグをチェックすることにより、いつ3:2プルダウンを実行するかを自身で決定しなければならない。MPEG−2は、フレームまたはフィールドが繰り返されるべきかどうかを明示的に記述する2つのフラッグ(リピート・ファースト・フィールドおよびトップ・フィールド・ファースト)を提供する。プログレッシブシーケンスにおいては、フレームは2ないし3回繰り返され得る。一方、シンプルおよびメインプロファイルは、繰り返されたフィールドにのみ限定される。さらに、リピート・ファースト・フィールドは、プログレッシブフレーム構造化ピクチャにおいてのみ信号で伝えられ得る(値=1)ということは一般的な構文上の制限である。
【0020】
例えば、最も一般的なシナリオでは、1つのフィルムシーケンスは毎秒24フレームを含む。しかしながら、シーケンスヘッダー中のフレームレートエレメントは、30フレーム/秒を示すであろう。平均して、1つおきの符号化されたフレームは、フレームレートを24Hzから30Hzまで水増しするために、リピートフィールド(リピート・ファースト・フィールド=1)の信号を送る。すなわち、(24符号化フレーム/秒)*(2フィールド/符号化フレーム)*(5表示フィールド/4符号化フィールド)=60表示フィールド/秒=30表示フレーム/秒。
【0021】
3:2プルダウン能力を有するシステムについては、ビデオメモリの別の余分な1フィールド(半フレーム)が、最初に表示されたフィールドを後に繰り返す目的で格納するために必要とされる(3:2プルダウンプロトコルによる)。なぜならば、最初に表示されたフィールドは、第2フィールドの表示終了後に表示用に再度必要とされるからである。この要件を説明すると、復号中にトップフィールドが表示されると、次にボトムフィールドはトップフィールドの表示完了に続いて表示されるであろう。しかしながら、このトップフィールドは、システムがボトムフィールド表示を終了した後に再び表示用に必要とされるであろう(すなわち、3:2プルダウン)。トップフィールドは、2つの異なる瞬間(すなわち、ボトムフィールド表示の前後)に表示用に必要とされるので、トップフィールドを格納するためにビデオメモリの別の半フレーム(1フィールド)が必要になる。2つの参照フレームを格納するのに必要な上記の2.5フレームに、インターレースされたピクチャを表示するためにの半フレームを加えて、MPEG−2ビデオピクチャを表示するために、従来システムは合計3フレームのビデオメモリを必要とする。
【0022】
(iii)静止フレーム
いくつかの新設計のMPEG−2ビデオ復号・表示システムでは、現在表示中のフレームを利用者が静止させることもできる。「静止フレーム」条件下では、ビデオ復号・表示システムは、利用者からさらに指示があるまで現在表示中のピクチャを繰り返し表示する。停止中はそれ以上の復号および3:2プルダウンが必要とされないので、上述の2つの半フレーム(すなわち、インターレースされたピクチャの表示と3:2プルダウン用)は要求されない。しかしながら、もし表示中のフリーズされたフレームがプログレッシブBフレームであれば、Bフレーム全体がビデオシステム中に格納される必要があるので、現在表示中のBフレームを格納するために、ビデオメモリの余分なフレームが必要である。フリーズされたフレームがIまたはPフレームであれば、余分なビデオメモリが全く必要とされないことは真実である。なぜなら、これら2つの参照フレームはすでにビデオメモリ中に(順方向予測フレームおよび逆方向予測フレームとして)格納されているからである。しかしながら、通常Bフレームは参照用にビデオメモリ中に格納されないので、ビデオメモリの余分なフレームがBフレーム表示用に必要である。従って、Bフレームピクチャの正確なイメージを表示するためには、参照フレームを格納するために必要な2つのフレームに加え、ビデオメモリの別のフルフレームが必要である。
【0023】
II.従来のビデオ復号・表示システムが直面する問題
MPEG−2メインプロファイル・メインレベルシステムは、CCIR601パラメータにおいてサンプリング限界(NTSCについては720×480×30Hz、PALについては720×576×24Hz)を有すると規定されている。用語「プロファイル」は、MPEGにおいて使われる構文(すなわち、アルゴリズム)を限定するために用いられ、用語「レベル」は、符号化パラメータ(サンプルレート、フレーム寸法、符号化されたビットレート等)を限定するために用いられる。それと共に、ビデオメインプロファイル・メインレベルは、複雑さを1994VLSI技術の実現可能な制限で標準化し、それでもやはり大半のアプリケーションの要求を満たす。
【0024】
CCIR601レートビデオについては、PAL/SECAM復号・表示システムに必要な3フレームが、復号器のビデオメモリ要件を、通常の16Mビット(2Mバイト)限界を越えて、32−Mビットの次のレベルのメモリデザインへと押しやる。このメモリ制約は、アメリカ特許第5,646,693号(1997年7月8日、Cismasに対し発行され、本出願と同じ譲受人に譲渡された)中で論じられている。Cismas引例はこれにより、参照により完全に含まれる。従来技術においてよく立証されてきたように、ビデオメモリを16−Mビット以上に増大させると、メモリコントローラのデザインを複雑にし、また別の16Mビットビデオメモリの製造費用が加わることになるであろう。
【0025】
【発明が解決しようとする課題】
Cismasは、サイズが通常のビデオメモリ要件よりも小さい(すなわち、メモリの3フレーム)フレームバッファを用いて、MPEGビデオの復号・表示を行なうシステムおよび方法を開示している。復号・表示の間、Cismasのシステムは、完全な第2のフィールドを格納する代わりに、第1のフィールドが表示されつつある時は、第2のフィールドの一部のみを格納する。表示のために第2のフィールドが必要になると、復号器は、第2のフィールドの足りない部分を再度復号して、第2のフィールド表示用の残りのデータを生成する。第2のフィールドを表示するために、最初に表示されたフィールドについて割り当てられた同じ格納場所を再度利用することによって、復号・表示システムは、メモリの半フレームまでの節約をする(パーティションの数による)。しかしながら、表示中のビデオメモリ不足の問題をCismasシステムがたとえ解決したとしても、Cismasシステムは、第2のフィールドの足りない部分を2度目に復号するための付加的な復号パワーを必要とする。従って、ビデオメモリの要件を低減する一方で、第2の復号段階を無くすというCismasと同じ目的を達成できる新しいビデオメモリ管理システムが望まれている。
【0026】
本発明の付加的な目的および利点は、以下の説明中で述べられ、またその説明からある程度明らかになるか、あるいは本発明の実施により学ばれ得る。本発明の目的および利点は、特に特許請求の範囲において指摘される手段および組合せによって実現および達成され得る。
【0027】
【発明の要約】
本発明は、圧縮されたビデオデータのビットストリームの復号・表示に用いられるビデオメモリを取り扱うための改良されたビデオメモリコントロールシステムに向けられている。詳細には、本発明は、圧縮されたビデオデータのビットストリームの受信、圧縮されたビデオデータの復号、およびその中に含まれているイメージの表示のためのビデオメモリ管理システムに向けられている。
【0028】
このメモリ管理システムの1つの側面は、ビデオメモリ管理を取り扱うためのモジュール式メモリ管理システムまたは装置を提供することである。より詳細には、本発明のビデオ復号・表示システムは、2つの別個のメモリマネージャを有する分割メモリマネージャから成る。これらのメモリマネージャの各々は、特定のメモリ管理機能を取り扱う。メモリ管理機能を種々のメモリマネージャ間で分けることにより、ビデオデータの復号・表示はより効率的に実行できる。
【0029】
本発明の別の側面は、ビデオメモリの斬新な処理および取り扱方法を提供することで、これによりMPEG−2データストリームの効率的な取り扱い方法が提供される。特に、セグメント化された再利用可能なビデオメモリ管理システムが開示されている。
【0030】
本発明の別の側面は、ビデオ復号・表示システムに必要とされるビデオメモリのサイズをさらに減らすことが可能なフレーム内ビデオデータ圧縮システムを提供することである。
【0031】
添付図面は、本明細書中に含まれかつその一部を構成しており、本発明の好ましい実施態様を例示するもので、上述の全般的説明および以下に示される好ましい実施態様の詳細な説明と共に、本発明の原理の説明を助けるものである。
【0032】
【発明の実施の形態】
本発明は、いくつかの好ましい実施態様について説明される。好ましい実施態様は、ビデオデータの取り扱いおよび処理のための装置および方法である。以下の本発明の3つの側面が詳細に論じられる。すなわち、(1)分割ビデオメモリマネージャ、(2)セグメント化再利用可能メモリデザイン(本発明者により「ローリングメモリデザイン」と名付けられている)、および(3)方法および用途を考慮しないシンプル固定低ビットレート補助圧縮技術(本発明者により「FlexiRam」と名付けられている)である。本発明のこれら3つの側面すべては、ビデオメモリデータの効率的取り扱いについて開示され、単独のビデオ復号・表示システムにおいて実行できる。
【0033】
1.分割ビデオメモリマネージャ
図1は、従来のビデオ復号・表示システムを示すもので、復号器110、メモリマネージャ120、ビデオメモリ130、および表示サブシステム140から成っている。符号化されたビデオデータの連続したビットストリームは、復号および表示のため復号器110に供給される。ビデオデータの連続したビットストリームは、全体的なシステムデザインに応じて、一定または可変ビットレートで供給される。復号器110はビットストリームを復元し、次に復元されたデータをメモリマネージャ120に供給する。メモリマネージャ120は、復元されたビデオデータをビデオメモリ130中に格納し、そのビデオデータを表示サブシステム140に供給する役割を果たしている。
【0034】
ビデオメモリ130は基本的に、2つの主要な機能を果たしている。すなわち、第1に、これはビデオデータの入り来るビットストリームの復号と復号されたビデオイメージの表示との間で異なる処理測度を緩衝するためのビデオデータバッファとして働く。ビデオイメージ表示のいかなる中断も防止するため、復号器110は、表示サブシステム140からの要求よりも速くビデオデータを復元することが一般に要求される。第2に、ビデオメモリ130は、参照フレームデータ(すなわち、IおよびPフレーム)を格納し、データの入り来るビットストリームからビデオイメージを再構築するために復号器110に提供することが必要である。従って、図1に示すように、復号器110とメモリマネージャ120との間のデータバスは双方向であり、それにより復元されたデータは、メモリマネージャ120へおよびそこから流れている。
【0035】
図2は、本発明により開示される斬新な分割メモリマネージャデザインを説明するものである。図1に示すような従来のシングルメモリマネージャデザインの代わりに、本発明のメモリマネージャは2つの別個のメモリマネージャから成っている。すなわち、第1メモリマネージャ210と第2メモリマネージャ220である。各メモリマネージャはビデオメモリ(すなわち、第1メモリ230および第2メモリ240)に連結されている。
【0036】
前の段落で論じたように、基本的に、ビデオメモリに格納される2つのビデオデータグループがある。参照フレームデータ(すなわち、IおよびPフレーム)と、双方向フレームデータ(すなわち、Bフレーム)である。ビデオデータのこれら2つのグループは、復号および表示両方において異なって処理されるので、ビデオデータのこれら2つのグループ間のビデオメモリの取り扱いはまったく異なる。
【0037】
本発明の好ましい実施態様において、第1メモリマネージャ210および結合第1メモリ230は、参照フレーム(すなわち、IおよびPフレーム)を取り扱いかつ格納するために割り当てられるのに対し、第2メモリマネージャ220および結合第2メモリ240は、双方向フレーム(すなわち、Bフレーム)データを取り扱いかつ格納するために割り当てられる。ビデオメモリコントローラを2つの分離された別個のメモリコントローラに分割することにより、各種類のビデオデータを取り扱うのに最も効率的なメモリ管理および/または圧縮方法を実行するために、2つのコントローラの各々を特別にデザインできる。従来のメモリマネージャを2つの別個のマネージャに分割することにより、従来のビデオ復号・表示システムに優る、ビデオデータをより効率的に取り扱うことができる一方で、単純なシステムデザインを有するという利点が本発明によりもたらされる。
【0038】
例えば、Cismasが開示したビデオメモリ管理システムにおいては、メモリ管理方法はBフレームに向けられる。分割メモリマネージャデザインを用いた好ましい実施態様においては、第1メモリマネージャ210または310および付属する第1メモリ230または330が従来のビデオメモリ管理機能を実行するのに対して、第2メモリマネージャ220または320および付属する第2メモリ240または340のみがCismasのメモリ管理技術を実行するようにデザインすることができる。従って、個々の種類のビデオデータ用に特定のビデオメモリ管理技術をカスタマイズできるという本発明の能力は、従来デザインに優るより大きなデザイン柔軟性をビデオシステム設計者にもたらす。
【0039】
さらに、別の好ましい実施態様においては、本発明は3つのメモリマネージャから成る。第1メモリマネージャはIフレームを取り扱う。第2マネージャはPフレームを取り扱う。さらに、第3メモリマネージャはBフレームのみを取り扱う。
【0040】
別の好ましい実施態様においては、本発明は3つメモリマネージャから成る。3つのメモリマネージャの各々は、3つの色成分(例えば、Y、U、およびV)の1つを取り扱う。
【0041】
多数のメモリマネージャを有するさらなる好ましい実施態様においては、メモリマネージャの各々は、ビデオデータのタイプ(例えば、色成分)および/またはグループ(例えば、参照フレームまたは双方向フレーム)の異なる組合せを取り扱うことができる。例えば、好ましい実施態様においては、ビデオ復号・表示システムは、Iピクチャ用のYクロマ成分を取り扱うための第1メモリマネージャ、Bピクチャ用のUおよびVクロマ成分を取り扱うための第2メモリマネージャ、IおよびPピクチャ用のUおよびVクロマ成分を取り扱うための第3メモリマネージャ、および残りのビデオデータを取り扱うための第4メモリマネージャから成る。4つのメモリマネージャの各々は、異なるメモリ管理技術を利用できる。
【0042】
本発明の分割メモリマネージャデザインによりもたらされるデザイン柔軟性はほとんど無制限なので、ビデオデータの特定の種類または定義に適合するように、個々のメモリマネージャをカスタマイズし得る。
【0043】
図3は、本発明の別の好ましい実施態様を示すものである。MPEG−2のメインプロファイル・メインレベルの定義の下では、リピート・ファースト・フィールドは、PAL規格についてのBフレームについては許されない。従って、MPEG−2メインプロファイル・メインレベルPALシステムについてデザインされた好ましい実施態様においては、リピート・ファースト・フィールドは第2メモリマネージャ320に供給される必要はない。なぜならば、第2メモリマネージャ320はBフレームピクチャのみを処理するからである。しかしながら、トップ・フィールド・ファースト信号は、インターレースされたピクチャを取り扱うための第1メモリマネージャ310および第2メモリマネージャ320の両方にとり依然として必要である。
【0044】
2.セグメント化された再利用可能なビデオメモリデザイン
本発明の別の側面は、フィールドピクチャおよびフレームピクチャ両方を取り扱うことができるビデオ復号・表示システムのためのビデオメモリ割り当てを取り扱う方法に向けられている。
【0045】
前に説明したように、MPEG−2は、インターレースされたピクチャに対し2つのピクチャ構造の選択を提供する。フィールドピクチャは、各々がマクロブロックに分割され、個別に符号化された個々のフィールドから成る。一方、フレームピクチャでは、インターレースされた各フィールドペアは一緒に1つのフレームにインターリーブされ、そのフレームは次にマクロブロックに分割され、符号化される。MPEG−2は、インターレースされたビデオが交互のトップおよびボトムフィールドとして表示されることを必要とする。しかしながら、フレーム内では、トップまたはボトムフィールドの一方が一時的に先に符号化され、あらかじめ定められた定義に従ってフレームの第1フィールドピクチャとして送られ得る。2つのピクチャ構造についての復号されたデータのシーケンスにおける違いのため、これらの2つのフォーマットにより定義されたビデオデータの読み取りおよび書き込みは、異なる2つの順番で実行される。
【0046】
図4は、本発明の好ましい実施態様を説明するものである。図に示されるように、ビデオメモリ410は多数のメモリセグメントに区切られている。メモリセグメントの各々は、2つのフィールドのうちの1つのビデオデータの8本の連続するラインを格納することができる。メモリマネージャは、2つのリスト、MS(メモリセグメント)420およびDS(表示セグメント)430を作り出しかつ維持する。各メモリセグメントは、メモリセグメントリスト420のエントリを介して、表示セグメントリスト430のエントリにより間接的にアドレス指定される。MSリスト420は、ビデオメモリセグメントと同数のエントリを有し、MSリストの各エントリは1つのメモリセグメントに対応している。好ましい実施態様においては、MSリスト420は、48個のメモリセグメントをビデオメモリ410中にアドレスするための48個のエントリを有している。PALのケースについては、ビデオメモリ中の48個のメモリセグメントがフレームの2/3に対応している。MSリスト420の各エントリは、ビデオメモリ410中のメモリセグメントの第1セルアドレスを定義する20ビットアドレスを含んでいる。これらのアドレスは、システム設計に応じて、静的または動的とし得る。例えば、MPEG−2ビデオデータの復号・表示用に特にデザインされた専用システムにおいては、システムオーバーヘッドを減らすため、アドレスは、好ましくは静的であって動的ではない。しかしながら、MPEG−1およびMPEG−2ビデオデータ両方を表示可能なシステムのような多目的デジタル式復号・表示システムにおいては、これらのアドレスは、種々のビデオメモリ管理方法に対処できるように、好ましくは動的に維持される。
【0047】
図4に示されるような好ましい実施態様においては、DSリスト430は、表示スクリーンへビデオメモリ410をマッピングする。表示スクリーンは多数のセグメントに論理的に分割されており、DSリスト430の各エントリは表示スクリーンの1つのセグメントに対応している。好ましい実施態様においては、DSリスト430は72個のエントリを含み、1つが各表示セグメントに対応している。72という数が選ばれたのは、PALフォーマットにおいては、576本のラインが表示され、かつ各セグメントなビデオデータの8本のラインを含んでいるからである。従って、数72=576/8が選択される。
【0048】
図4と図5に示されるように、MSリスト420の各エントリは、ビデオメモリの特定のメモリセグメントがビジーであるかどうかを示すために、1つの付加的なビジービット510(「ビジービット」)を含んでいる。具体的には、あるメモリセグメントに書き込まれてそれが表示されなければ、それはビジーとして示される。同様に、ビジーでないメモリセグメントとは、そのメモリセグメントが表示されたが、新しいデータはなんらその中に含まれていないことを意味する。本発明にとり、ビジービット510を用いることは非常に重要である。なぜならば、MSリスト420中の各エントリ上のビジービット510のスイッチングは、ビデオメモリ410中の論理的スライディングウインドウを定義することと特徴付け得るからである。データがビデオメモリセグメントに書き込みされおよびそこから読み出された時にビジービット510を「オン」および「オフ」に設定することにより、論理的スライディングウインドウは、ビジービットが「オン」のMSリスト中の対応するエントリを有するすべてのメモリセグメントとして定義される。さらに、論理的スライディングウインドウは、図7に示されるように、2つのDS書き込みポインタ(すなわち、710および720、または730および740)および読み取りポインタ(すなわち、750または760)のインクリメントおよび更新によっても維持される。
【0049】
ビデオメモリ410中のメモリセグメントおよびMSリスト420中のエントリの物理的位置が、DSリスト430中のエントリのように連続して割り当てられなくても、論理的スライディングウインドウは、DSリスト430中の連続しているエントリにより定義される。ビデオメモリ410中のメモリセグメントにより多くの復号データが格納された後に論理的スライディングウインドウはサイズが増大するのに対し、ビデオメモリ410中のメモリセグメントから復号データが読み出された後では、サイズが減少する。さらに、ビデオデータがビデオメモリから読み出されおよびそれに書き込まれると、論理的スライディングウインドウは位置がシフトする(すなわち、DSリスト430下方へ)。本発明のキーコンセプトは、表示スクリーンの一部に対応する論理的に連続するメモリスペースを定義できることあり、対応する復号されたビデオデータは、たとえそのビデオデータが物理的ビデオメモリにランダムに格納されることがあったとしても、現在ビデオメモリに書き込まれており、かつ表示されていない。本発明の利点は、物理的ビデオメモリのサイズをフルピクチャより小さくできることである。理論上は、物理的メモリサイズはフルピクチャの格納に必要なサイズの半分(すなわち、フレームの半分)まで小さくし得る。
【0050】
図4は、本発明の好ましい実施態様により用いられる間接的アドレッシングスキームを示すものである。DSリスト430の各エントリは、MSリスト420の1つのエントリを指すインデックスを格納するのに対し、MSリスト420の各エントリは、ビデオメモリ410のメモリセグメントのアドレスを格納する。
【0051】
好ましい実施態様において、本発明のビデオ復号・表示システムは、フレームピクチャフォーマットおよびフィールドピクチャフォーマット両方におけるインターレースされたピクチャを取り扱う。従って、図6に示されるように、DSリスト430は、論理的に2つの部分に区切られる。すなわち、トップフィールドに対応するトップポーション610およびボトムフィールドに対応するボトムポーション620である。0から35まで索引を付けられたエントリはトップフィールドに属し、36から71まで索引を付けられたエントリはボトムフィールドに属する。DSリスト430を対応するビデオメモリセグメント420に一致させるため、DSリスト430の各エントリは、MSリスト420への6ビットインデックス(0から47)を含む。従って、DSリスト430の各エントリはMSリスト420のエントリを参照し、かつビデオメモリの1つのセグメントに間接的にアドレスする(図4参照)。
【0052】
図7に示されるように、好ましい実施態様において、DSリスト430用に3つのポインタが維持される。すなわち、読み取り・表示用の読み取りポインタ(すなわち、750または760)1つ、およびビデオメモリ書き込み用の書き込みポインタ(すなわち、710、720または730、740)2つである。
【0053】
フィールドピクチャおよびフレームピクチャについては、これら3つのDSポインタは異なる位置に割り当てられる。
【0054】
図7(a)は、ビデオシステムがフレームピクチャを取り扱っている時のこれら3つのポインタの位置を示すものである。データが2つのフィールド間でインターリーブ的に復号される、フレームピクチャ用ビデオデータのビットストリームを取り扱うため、2つの書き込みポインタ710、720は、間に36のインタバルを有する2つのDSエントリを指すように設定され、それにより、2つの書き込みポインタの各々は、異なるフィールド中の同じオフセット位置にあるエントリを指している(すなわち、トップフィールドおよびボトムフィールド)。さらに、読み取りポインタ750は、次に表示されるべきDSリスト430のエントリを指している。フレームピクチャのトップフィールドおよびボトムフィールド両方に対応するため、論理的スライディングウインドウは、論理的トップウインドウおよび論理的ボトムウインドウからさらに成っている。論理的トップウインドウは、トップウインドウ内にスライディングウインドウを定義し、これはビデオメモリ中のメモリセグメントに間接的にアドレッシングしているDSリストのトップポーション中の連続するエントリにより示され、このメモリセグメントは書き込まれたがまだ表示されていないものである。同様に、論理的ボトムウインドウは、スライディングウインドウをボトムフィールド中に定義し、これはビデオメモリ中のメモリセグメントに間接的にアドレッシングしているDSリストのボトムポーション中の連続するエントリにより示され、このメモリセグメントは書き込まれたがまだ表示されていないものである。
【0055】
図7(b)は、ビデオ復号・表示システムがフィールドピクチャを取り扱っている時のこれらのポインタの位置を示すものである。フィールドピクチャのビデオデータは復号器により逐次復号および供給されるので、2つの書き込みポインタは730、740は、それらの間に1の固定インタバルを有するように設定されている。さらに、読み取りポインタ760は、次に表示されるべきDSリスト430のエントリを指している。フィールドピクチャ中では、ビデオデータは逐次復号および供給され、フレームピクチャにおけるように、論理的スライディングウインドウを論理的トップおよびボトムウインドウにさらに分割する必要は全く無い。従って、前の段落において論じられたような論理的スライディングウインドウが維持される。
【0056】
図8は本発明のためのフローチャートを示すものである。
【0057】
最初に、ビデオ復号・表示システムの初期化中に、MSエントリのすべてのビジービットは、メモリマネージャによりNOTビジー(すなわち、MSエントリの全ビジービットを論理0にセットする)初期化される(段階810)。
【0058】
メモリマネージャが、符号化されたビデオデータの入り来るストリーム中に新しいピクチャを検出すると、図9に示されるように、メモリマネージャはDSリスト430を初期化する(段階820)。
【0059】
図9は、各ピクチャについてDSリスト430を初期化する段階を詳しく示すものである(段階820)。最初に、メモリコントローラが入り来るビットストリーム中のピクチャのフォーマットをチェックし、ピクチャ構造パラメータ値をチェックすることによりそのピクチャがフィールドピクチャかフレームピクチャかを決定する(段階910)。
【0060】
もしビデオデータがフレームピクチャフォーマットであれば、メモリコントローラは次にトップ・フィールド・ファースト変数をチェックしてフラッグが立てられているどうかを決定する(段階930)。もしトップフィールドが最初に復号される必要があれば、DS読み取りポインタ750は36に初期化され、第1DS書き込みポインタ710は0にセットされ、第2DS書き込みポインタ720は36にセットされる(段階960)。一方、もしボトムフィールドが最初に復号される必要があれば、DS読み取りポインタ750は0にセットされ、第1DS書き込みポインタ710は0にセットされ、第2DS書き込みポインタ720は36にセットされる(段階970)。
【0061】
図9に示されるように、もしビデオデータがフィールドピクチャフォーマットであれば、メモリコントローラはピクチャ構造パラメータをチェックして、入り来るビデオデータがトップフィールドピクチャかボトムフィールドピクチャかを決定する(段階920)。もしトップフィールドが復号される必要があれば、3つのDSポインタは以下の通りセットされる。すなわち、DS読み取りポインタ760は36にセットされ、第1DS書き込みポインタ730は0にセットされ、第2DS書き込みポインタ740は1にセットされる(段階940)。一方、もしボトムフィールドが復号される必要があれば、DS読み取りポインタ760は0にセットされ、第1DS書き込みポインタ730は36にセットされ、第2DS書き込みポインタ740は37にセットされる(段階950)。
【0062】
図8に示されるように、DSリストが初期化された後、メモリマネージャは、MSリスト420をスキャンして、MSリスト420のエントリのビジービット510をチェックすることにより、ビデオメモリ410中の利用可能なスペースを調べる(段階830)。メモリマネージャは、MSリスト420をインデックス0からインデックス47まで順番にスキャンし、ビジービット510がセットされていない最初の2つのエントリを見つける。もしそのような「ビジーでない」セグメントが全く無いか、あるいはそのようなセグメントが1つしか無いのであれば、条件が満たされるまで復号は停止される。復号器はそれにより、2つの「ビジーでない」ビデオメモリセグメントを待つ待機ステージに入る。ビデオメモリセグメント中のデータが読み出されかつ表示されると、メモリマネージャは、メモリセグメントの対応するビジービット510を論理0にセットすることにより、新たに復号されたビデオデータを格納するためにメモリセグメントを解放する。
【0063】
2つのビジーでないメモリセグメントが見つかった時は、第1DS書き込みポインタ(すなわち、710または720)により指し示されるDSリスト430に、第1の利用可能メモリセグメントのMSインデックス420(すなわち、0、1、2、…または47)が書き込まれ、第2DS書き込みポインタ(すなわち、720または740)により指し示されるDSエントリに第2の利用可能メモリセグメントが書き込まれる、それにより2つのDS書き込みポインタは、ビデオメモリ410中の2つの「ビジーでない」メモリセグメントに間接的にアドレスしている。
【0064】
DSエントリが更新された後、復号器はビデオデータの16本のラインを含む新しいマクロブロック行を復号する(段階830)。
【0065】
ビデオデータのマクロブロック行が復号された後、メモリマネージャは、復号されたビデオデータを段階840においてビデオメモリに保存する。図10は段階840の詳細を示すものである。
【0066】
図10に示されるように、ピクチャがフィールドピクチャであれば、メモリマネージャは、各マクロブロック行のトップ8ラインのビデオデータを、第1DS書き込みポインタ730により間接的にアドレスされたMSセグメントのエントリによりアドレスされたメモリセグメントに書き込む(段階1030)。次にメモリマネージャは、各マクロブロック行のボトム8ラインのビデオデータを、第2DS書き込みポインタ740により間接的にアドレスされたMSセグメントのエントリによりアドレスされたメモリセグメントへ書き込む(段階1030)。
【0067】
一方、もしピクチャがフレームピクチャであれば、復号器が入り来るビットストリームのビデオデータのライン16本(すなわち、1マクロブロック行)を復号した後、メモリマネージャは、現在復号しているフレームのトップフィールドに対応するビデオデータのライン8本を、第1DS書き込みポインタ710により間接的にアドレスされた第1MSセグメントのエントリによりアドレスされたメモリセグメントへ書き込む。次にメモリマネージャは、現在復号中のフレームのボトムフィールドに対応するビデオデータのライン8本を、第2DS書き込みポインタ720により間接的にアドレスされた第2MSセグメントのエントリによりアドレスされたメモリセグメントへ書き込む(段階1020)。
【0068】
図8に示されるように、対応するメモリセグメントへのビデオデータの書き込みに続き、DSポインタ(すなわち、710、720、および750または730、740、および760)が次に、図11に示されるような段階(段階860)により更新される。
【0069】
図11は、DSポインタ(すなわち、710、720、および750または730、740、および760)の更新操作(段階860)の詳細を示すものである。メモリマネージャは最初に、ビデオデータがフィールドピクチャフォーマットであるかフレームピクチャフォーマットであるかをチェックし(段階1110)、次にそれに応じてメモリマネージャが2つのDS書き込みポインタを更新する(段階1120および1130)。
【0070】
もしビデオデータがフレームピクチャフォーマットであれば、2つのDS書き込みポインタ710、720のどちらも1進められる(段階1120)。一方、もしビデオデータがフィールドピクチャフォーマットであれば、2つのDS書き込みポインタ730、740のどちらも2進められる(段階1130)。
【0071】
DSポインタが更新された後、メモリマネージャは、現在のピクチャ用にそれ以上入り来るビデオデータがあるかどうかをチェックする。もし入り来るビデオビットストリームがまだあるなら、その操作は、図8に示されるようなMSリストスキャニング段階に戻る(段階870)。
【0072】
もし現在のピクチャ用の入り来るビットストリームが終結すれば、次にビデオシステムは、さらに復号・表示されるピクチャがさらにあるかどうかをチェックする(段階880)。もし復号・表示のために入り来るピクチャがさらにあれば、全体の操作は段階820に戻る。全体の操作は、表示用に入り来るピクチャがもはやなくなれば完了する(段階890)。
【0073】
システムが表示用に付加的なビデオデータを必要とする時は、データの次のライン8本が、DS読み取りポインタ(すなわち、750または760)によりアドレスされたMSインデックスを用いて、ビデオメモリ410のメモリセグメントから取り出される。MSリストエントリ中に格納されているアドレスは、ビデオメモリ410から次に表示されるメモリセグメントの位置を特定するのに用いられる。表示用に特定のメモリセグメントが読み出された後、そのMSエントリ420のビジービット510は非ビジーにセットされ、DS読み出しポインタは次に1増大される(72を法として)。ポインタが71に達した後、DS読み取りポインタは「0」位置にリセットされる。
【0074】
本発明の1実施態様において、もしメモリコントローラが、上記の「間接的アドレッシング」スキームを処理するのに十分な速度を有していなければ、DSリスト430のエントリは6ビットから26ビットに増大され、それにより、メモリセグメントのアドレスがMSエントリ中で選択されると、それはMSリスト420インデックスと共にDSエントリにコピーされる。メモリセグメントのアドレスをMSリスト420エントリと共にDSリストに書き込むことにより、アドレッシングおよびMSリスト420からのデータ取り出しの余分な段階が回避できる。
【0075】
3.FLEXIRAMデザイン
本発明の別の側面は、フレーム内ビデオメモリ圧縮/復元方法に向けられている。
【0076】
本発明においては、ビデオデータは、ビデオメモリに格納される前に、損失性または非損失性に圧縮され、圧縮されたデータは、それがビデオメモリから読み出される時に復元される。このビデオデータ圧縮・復元装置は、本発明者らにより「FlexiRam」と名付けられている。
【0077】
図12は、本発明の3つの異なる実施態様を示す。
【0078】
図12(a)に示されるような好ましい実施態様において、本発明のFlexiRam1220aは、メモリマネージャ1210aに組み込まれており、ビデオデータのすべての圧縮および復元はメモリマネージャ1210a内で実行される。この実施態様の利点は、ビデオメモリ1230aのための特別なハードウェア要件が全く無いことおよびビデオデータの圧縮および復元のどちらもビデオメモリ1230aに対してトランスペアレントであることである。
【0079】
図12(b)は本発明の別の好ましい実施態様を示すもので、FlexiRam1220bは、メモリマネージャ1210bおよびビデオメモリ1230bの両方から分離されている。この実施態様の利点は、ビデオ復号・表示システム全体の実質的な修正なしで本発明の実行が可能なことである。
【0080】
図12(c)は本発明の別の実施態様を示すもので、FlexiRam1220cはビデオメモリ1230cに組み入れられている。この実施態様の利点は、データ圧縮および復元の操作全体がメモリマネージャ1210cに対してトランスペアレントであり、メモリマネージャ1210cに対しオーバーヘッドが全く付加されないことである。
【0081】
本発明がすべてのピクチャタイプ(I、PおよびB)で作用し、かつどのようなタイプのピクチャに対しても限定されないことは留意すべきである。従って、もし所望されれば、本発明は、分割メモリマネージャデザインにおいて、(a)第2メモリマネージャ240、あるいは(b)第1メモリマネージャ230と第2メモリマネージャ240両方を用いて実行し得る(図2参照)。
【0082】
図13a、13bおよび13cは、FlexiRamデザインと分割メモリマネージャデザインとを組み合せた、本発明の3つの異なる実施態様を示すものである。図13aは、本発明の2つの好ましい実施態様の1つを示す。この実施態様においては、2つのFlexiRam圧縮器/復号器が用いられる。第1FlexiRam1370aは、第1メモリマネージャ1310aと第1メモリ1330aとの間に置かれている。第2FlexiRam1380aは、第2メモリマネージャ1320aと第2メモリ1340aとの間に置かれ、FlexiRam技術を用いて、格納されたすべてのビデオメモリデータが圧縮・復元される。図13bは、本発明の別の実施態様を示すものである。FlexiRam1370bは、第2メモリマネージャ1320bと第2メモリ1340bとの間に置かれ、双方向フレーム(すなわち、B)のためのビデオデータのみが、ビデオメモリに格納される時に圧縮される。最後に、図13cは本発明のさらに別の実施態様を示すものである。FlexiRam1370cは、第1メモリマネージャ1310cと第1メモリ1330cとの間に置かれ、予測フレーム(すなわち、2I;1Iおよび1P;または2P)用ビデオデータのみが、ビデオメモリに格納される時に圧縮される。本発明はメモリマネージャの数を2または3に限定するものではないことに留意すべきである。メモリマネージャは、ビデオデータの種々のタイプおよび/またはグループを処理するため、多数(すなわち、3を超える)の別個のメモリマネージャに分割し得る。
【0083】
特定のシステムについてどの実施態様を実施すべきかを考慮する場合に最も重要な因子は、利用可能なビデオメモリ量、利用可能な処理速度、および所望の画質等である
【0084】
例えば、上記の実施態様に加え、FlexiRamデザインは、3つの色成分すべて、あるいは2つのクロマ色成分のみの圧縮および復元に適用できる。
【0085】
デザインは、上記で開示されたすべての実施態様および側面を組み合せることによりさらに改善し得る。例えば、1つの実施態様においては、Bピクチャ中のUおよびV色成分のみがFlexiRamデザインにより圧縮される。あるいは、別の実施態様においては、2つのピクチャグループ(すなわち、参照フレーム、または双方向フレーム)すべてについての3つの色成分すべてが、FlexiRamデザインにより圧縮される。
【0086】
分割メモリマネージャ、FlexiRam、および原色の分割を組み合せる上での本発明のデザイン柔軟性により、種々のビデオシステム要件、ビデオメモリサイズ、および所望の画質等に応じて、システムデザイナーが最も適切かつ効果的な組み合わせを選択できるようになるという、デザイン自由度におけるたいへんな利点がもたらされる。
【0087】
図14は、FlexiRamデザインの好ましい実施態様の概要を示すものである。図に示されるように、データ圧縮は2つの段階から成る。すなわち、(1)エラー拡散(段階1410)、および(2)カルテットあたり1画素切り捨て(段階1420)である。
【0088】
最初、ビデオデータがエラー拡散アルゴリズムに従って圧縮される(段階1410)。好ましい実施態様においては、基本的圧縮単位は、4つの連続した水平画素を含む「カルテット」と定義される。エラー拡散圧縮段階(段階1410)は、カルテットの各画素を個別に圧縮する。1ビットエラー拡散アルゴリズムを用いることにより、本来32ビット(4画素*8ビット/画素)を有する画素のカルテットは、28ビットに圧縮される(4画素*7ビット/画素)。本発明は1ビットエラー拡散アルゴリズムに限定されるものではなく、多ビットエラー拡散アルゴリズムも同様に、ただし知覚可能な画質低下のトレードオフを伴って実施し得ることに留意すべきである。
【0089】
ビデオデータ圧縮の第2段階は、「カルテットあたり1画素切り捨て」である(段階1420)。カルテットあたり1画素切り捨てアルゴリズムは、4つの7ビット画素のカルテットを24ビットカルテットに圧縮するものである。データ圧縮器は、切り捨てされるカルテットの最良の画素を計算し、再構築記述子(「RD」)としてカルテットの最後の3ビットに再構築方法を格納する。この圧縮段階の後、画素の圧縮されたカルテットは24ビットを有する(3画素*7ビット/画素+3ビットRD)。このカルテットあたり1画素切り捨ての詳細なアルゴリズムは後述する。
【0090】
ビデオデータがビデオメモリから必要とされる時は、FlexiRamは、メモリから読み出された圧縮データに復元を実行する。復元段階は、図14に示される圧縮段階の逆である。
【0091】
最初に、1つの画素が、カルテットあたり1画素再構築アルゴリズムにより24ビットカルテットに加え戻されるが、このアルゴリズムはカルテットあたり1画素切り捨てアルゴリズムの逆である(段階1430)。この復元段階は、カルテットを表す24ビットの最後の3ビットとして格納されたRDにより供給された再構築方法に従って、7ビットの切り捨てられた画素を再構築する。この復元段階(段階1430)の後、カルテットは再形成されて、4つの7ビット画素を持つ。好ましい再構築アルゴリズムは後に詳述する。
【0092】
次に、各7ビット画素に「0」が連接され、圧縮前の4つの8ビット画素カルテットに戻る(段階1440)。この復元段階(段階1440)は、すべての画素に最も有意でないビットとして「0」を1つ連接して4つの8ビット画素を再形成する。
【0093】
図15は、圧縮・復元段階における種々のプロセス中のビデオデータのカルテット(すなわち、4つの8ビット画素)のデータフォーマットを示すものである。
【0094】
最初、カルテット1510の各8ビット画素が、エラー拡散アルゴリズム1520を用いて個別に圧縮される。中間的な圧縮データは、4つの7ビット画素1530から成る。次に、これら4つの7ビット画素1530は、カルテットあたり1画素切り捨てアルゴリズム1540によりさらに圧縮される。最終的な圧縮データは、3つの7ビット画素1551と1つの3ビットRD1552とから成る。圧縮されたデータの全長は24ビットである。
【0095】
ビデオデータがビデオメモリから必要とされる時は、圧縮されたデータは以下の2つの連続的段階により復元される。
【0096】
最初、1つの付加的画素が、カルテットあたり1画素再構築アルゴリズム1560に従って生成される。このアルゴリズムは、24ビット圧縮データ1550の3ビットRD1552に基づくカルテットあたり1画素切り捨てアルゴリズム1540の逆である。中間的な復元データ1570は4つの7ビット画素から成る。次に、4つの7ビット画素の各々が、最も有意でないビット1580としての「0」と連接され、圧縮前の4つの8ビット画素が再形成される。
【0097】
エラー拡散およびカルテットあたり1画素切り捨てアルゴリズムの詳細は以下で説明する。
【0098】
A.エラー拡散
この圧縮段階に様々なエラー拡散アルゴリズムが使用し得ることは留意すべきである。以下に開示される好ましい実施態様は、1ビットエラー拡散アルゴリズムを利用している。しかしながら、本発明は、エラー拡散処理に用いられるどのような特定のアルゴリズムにも限定されない。さらに、前に論じたように、もしより多くの画質劣化が許されるならば、複数のビット(1を超える)がエラー拡散アルゴリズムにより除去され得る。従って、以下の特定の1ビットエラー拡散アルゴリズムは、説明目的だけのために開示されている。
【0099】
本発明のこの好ましい実施態様においては、エラー拡散(ED)アルゴリズムはピクチャ中のすべてのラインに独立して作用する。ラインの最初では、「e」と表示された1ビットレジスターが1にセットされる。「e」は、現在走っているエラーを格納し、画素ベースで更新される。1ビットEDアルゴリズムは、以下の2つの方程式により説明される。
Iout (j)=2*floor[(Iin(j)+e(j))/2]
ただし、Iin(j)=255およびe(j)=1であれば、Iout(j)=255
e(j+1)=Iin(j)+e(j)+Iout (j)
式中、
j:行中の現在の画素のインデックス
Iin(j):画素の本来の値
Iout (j):画素の新しい値(ED後)
e(j):画素jの時間におけるエラーアキュムレータ
floor(x):x以下で最も近い整数
【0100】
Iout (j)が計算された後、Iout (j)の最も有意でないビットが切り捨てられ、このアルゴリズムにより8ビット画素が7ビット画素へ量子化される一方で、擬似的輪郭効果が除去される。
【0101】
このアルゴリズムは例えば以下のように説明し得る。すなわち、1つのケースにおいて、Iin(j)が182、2進数10010111であり、e(j)が1であると仮定すると、
Iout (j)=2*floor((10010111+1/2)
=2*floor(10011000/2)
=2*floor01001100
=1001100
e(j+1) =10010111+1−1001100
=0
【0102】
最も有意でないビットを切り捨てることにより、格納された量子化画素は=100110である。
【0103】
「e」値は次に、ラインの終わりに伝播される。本発明のEDアルゴリズムがラスタ構造に作用し、ピクチャがブロック構造のメモリに書き込まれるので、e(j)をブロックラインの終わりに格納することが必要である。この値は、EDが同じライン(これは次のブロックに属している)中の次の画素と続いている時に、使われる。従って、8ビットラッチが、すべての「中断」ブロックに使用されなければならない。(eは0または1にしかなれないので、すべての中断ラインあたり1ビットで十分である)。
【0104】
復元段階1580は、上記の圧縮段階の逆である。好ましい実施態様においては、データは、「0」と共にあらゆる画素に連接され、4つの8ビット画素を再形成する。
【0105】
各7ビット画素は次に最も有意でないビットとして「0」が連接される。例えば、「1101101」は「11011010」に再形成される。従って、結果として得られるデータは、オリジナルな未圧縮データと同様に4つの8ビット画素である。
【0106】
データが、1ビットエラー拡散アルゴリズムを用いて圧縮された後、4ビットが切り捨てられ、それにより4つの8ビット画素を有するカルテットが4つの7ビット画素に圧縮される。4つの8ビット画素を有するカルテットを4つの6ビット画素に圧縮できる「2」ビットエラー拡散アルゴリズムを実行することにより、より高い圧縮率が達成できることは真実である。2ビットエラー拡散アルゴリズムを用いた時の圧縮率は、24/32×100%(すなわち、75%)である。しかしながら、2ビットエラー拡散技術を用いた圧縮および復元後に知覚可能な画質劣化があることが見出される。従って、2ビットエラー圧縮技術を用いる代わりに、本発明では2段階の圧縮/復元プロセス、すなわち(1)1ビットエラー拡散、および(2)カルテットあたり1画素切り捨てを開示している。たとえ2つの技術の圧縮率が同一(すなわち、75%)であっても、本発明として開示される2段階圧縮/復元プロセスの結果得られる画質は、2ビットエラー拡散技術に対し知覚可能な改善をもたらす。
【0107】
B.1カルテットあたり1画素切り捨て
本発明の好ましい実施態様の第2圧縮段階は、カルテットあたり1画素切り捨てである。カルテットあたり1画素切り捨てアルゴリズム1540は、4つの7ビット画素を3つの7ビット画素プラス3ビット再構築記述子(「RD」)(すなわち、総計で24ビット)に圧縮するものである。
【0108】
ビデオメモリ中に格納される画素数を減らすため、種々の画素切り捨てアルゴリズムが使用し得ることに留意すべきである。本発明は、圧縮および復元プロセス中に用いられるどのような特定の画素切り捨てアルゴリズムおよび方程式にも限定されない。さらに、多画素(1を超える)は、画質劣化とのトレードオフで切り捨てられ得る。以下のカルテットあたり1画素切り捨ては、メモリ節約と画質への知覚可能な影響がほとんど無いという最良のバランスを備えた、本発明の好ましい実施態様として開示される。
【0109】
好ましい実施態様において、カルテットの4画素は各々P0、P1、P2、またはP3と連続的に名付けられる。画素P1およびP2は、切り捨てられる2つの候補である。このアルゴリズムは、(1)どちらの画素が切捨てにより適しているか、および(2)切り捨てられた画素を推定するために、復元においてどのような再構築方法を用いるべきかを予測する。各候補について5つの再構築方法が考えらえる。すなわち、
1.左隣りのものをコピーする。
2.右隣りのものをコピーする。
3.左隣りのものと右隣りのものを平均する。
4.左隣りのものの1/4と右隣りのものの3/4を合計する。
5.左隣りのものの3/4と右隣りのものの1/4を合計する。
【0110】
理論的には、P1を切り捨ててP2のコピーによりそれを推定することと、P2を切り捨ててP1のコピーによりそれを推定することとは等価である。従って2つの候補(すなわち、P1およびP2)については、考えられる推定量は9つ(10ではない)しかない。さらに、カルテットから1画素を切り捨てた後、残る3画素を表すために21ビットが残されることになる。好ましい実施態様においては、各カルテットについての最終的な圧縮データの目標サイズは24ビットである(25%圧縮)。このことは、選択され推定量を記述するために3ビットのみが割り当てられ得ることを意味し、従って、実際は8つの推定量のみが考慮し得る。考慮から省略される推定量は、左隣りのものの3/4と右隣りのものの1/4によりP2を再構築することである。この特定の推定量を省略する理由は、MPEGピクチャの統計学により、これが最善のものとして選ばれることが最も少ないとことが示されるからである(4つの1/4、3/4推定量の中で選択は恣意的である)。
【0111】
最初に、8つの推定量が計算される。
P0 1=P0(P k j はk法を用いたPiの推定量を表す)
P0 1=P2
P2 1=0.5P0+0.5P2
P3 1=0.25P0+0.75P2
P4 1=0.75P0+0.25P2
P1 2=P3
P2 2=0.5P1+0.5P3
P3 2=0.25P1+0.75P3
【0112】
すべての推定量について、推定誤差の絶対値は、Ek i = |Pk i - Pi|と定義される。最小誤差は、mini,k {Ek l }である。1を超える最小誤差があれば、選択は恣意的である。(決定は実行のために未決のままにされる)。最後に、最小誤差に従って、Pjiminが切り捨てられ、3ビットの再構築記述子(RD)が設定されて選択された推定量、Pkmin iminが示される。3ビットRDは、残る3つの7ビット画素に連接され、一緒になって24ビットの圧縮されたカルテットを形成する。連接方法は実行のために未決のままにされる。
【0113】
圧縮されたデータの復元は、単純に圧縮アルゴリズムの逆である。欠けている7ビットの切り捨てられた画素は、(1)再構築にどの画素(すなわち、P1またはP2)を、および(2)再構築にどの再構築方法を選択するかのために各カルテットの最後にあるRDを用いて再構築される。
【0114】
図15に示されるように、データ圧縮器は、RDの3ビットにより提供される再構築方法を得る。次に、再構築のための画素(P1またはP2)が決定され、上記の8つの方程式の逆に従って、画素再構築が実行される。
【0115】
本発明は(1)エラー拡散、および(2)画素切り捨てのビデオデータ圧縮段階において用いられるどのような特定の方法および方程式にも限定されないことは指摘されるべきである。本発明として開示されたFlexiRamデザインの重要な特徴は、これら2つのデータ圧縮/復元段階の特定のシーケンスである。すなわち、ビデオデータは最初に、エラー拡散アルゴリズムを用いて画素あたりのビット数を減らして圧縮される。次に、中間的な圧縮ビデオデータは、特定の画素グループから1つの画素を切り捨てる画素切り捨てアルゴリズムを用いてさらに圧縮される。前に論じたように、復元プロセスはまさに圧縮プロセスの逆である。
【0116】
本発明が上記で好ましい特定の実施態様と共にされる一方で、説明および実施例は例示を意図するものであって、かつ本発明の範囲を限定するものではなく、それは添付の特許請求の範囲により規定されるものであるということは理解されるべきである。
【図面の簡単な説明】
【図1】 従来のビデオ復号・表示システムを示す。
【図2】 本発明の分割メモリマネージャデザインの好ましい実施態様を示す。
【図3】 本発明の分割メモリマネージャデザインの別の好ましい実施態様を示す。
【図4】、表示セグメントリストとメモリセグメントリストとを用いた、ビデオメモリを間接的にアドレスする方法を示す。
【図5】 メモリセグメントリストの詳細を示す。
【図6】 表示セグメントリストの詳細を示す。
【図7】 (a)フレームピクチャフォーマットおよび(b)フィールドピクチャフォーマットのための表示セグメントリスト上の2つの書き込みポインタおよび読み取りポインタの位置決めを示す。
【図8】 セグメント化された再利用可能なビデオメモリデザインの詳細を示すブロック図である(本発明者によりローリングメモリデザインと名付けられている)。
【図9】 各ピクチャについての表示セグメントリストの初期化の詳細を示す。
【図10】 各マクロブロック行の復号されたビデオデータのビデオメモリへの書き込みを示す。
【図11】 表示セグメントリストの更新の詳細を示す。
【図12】 FlexiRamデザインの3つの好ましい実施態様を示す。
【図13a】 FlexiRamデザインの別の3つの好ましい実施態様を示す。
【図13b】 FlexiRamデザインの別の3つの好ましい実施態様を示す。
【図13c】 FlexiRamデザインの別の3つの好ましい実施態様を示す。
【図14】 ビデオデータ圧縮・復元の段階を示すブロック図である。
【図15】 圧縮および復元の種々の段階の間のカルテットのビデオデータフォーマットを示す。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an MPEG ("Moving Picture Experts Groups") decoding and display system, and more particularly to a reduction in video memory size required in an MPEG decoding and display system for decoding and displaying video images.
[0002]
[Prior art]
In the late 1980's, it became necessary to load motion video and related audio on a first generation CD-ROM at 1.4 Mbit / s. To this end, in the late 1980s and early 1990s, the ISO (“International Organization for Standardization”) MPEG committee developed a digital compression standard for video and two-channel stereo audio. This standard is commonly known as MPEG-1, officially known as ISO11172.
[0003]
Following MPEG-1, there has been a need to compress entertainment television for transmission media such as satellite, cassette tape, broadcast and CATV. Therefore, in order to make available a digital compression method for full resolution standard definition television (SDTV) or high definition television (HDTV) images, ISO is a second standard known as MPEG-2, officially known as ISO 13818. Developed. The bit rates chosen to optimize MPEG-2 were 4 Mbit / sec and 9 Mbit / sec for SDTV and 20 Mbit / sec for HDTV.
[0004]
Neither the MPEG-1 nor the MPEG-2 standard defines which encoding method to use, the encoding process, or details of the encoder. These standards only specify a format for representing the data input to the decoder and a rule set for interpreting these data. These formats for representing data are called syntaxes and can be used to construct various valid data streams called bitstreams. The rules for interpreting the data are called decoding semantics. The ordered set of decoding semantics is called the decoding process.
[0005]
The MPEG syntax supports a variety of encoding methods that utilize both spatial and temporal redundancy. Spatial redundancy is exploited using block-based discrete cosine transform (“DCT”) coding of 8 × 8 pixel blocks, followed by quantization, zigzag scanning, and zero-quantized indices and their indices. A variable length encoding of the amplitude is performed. A quantization matrix that allows perceptual weighted quantization of DCT coefficients can be used to discard perceptually irrelevant information, thus further improving coding efficiency. On the other hand, temporal redundancy is used by using motion compensation prediction, forward prediction, backward prediction, and bidirectional prediction.
[0006]
MPEG provides two types of video data compression methods: intraframe coding and interframe coding.
[0007]
Intraframe coding is for using spatial redundancy. Many of the interactive requirements can be met with intraframe coding alone. However, for some video signals with low bit rates, the image quality that can be achieved with only intra-frame coding is not sufficient.
[0008]
Therefore, temporal redundancy is utilized by the MPEG algorithm that calculates the interframe difference signal called the prediction error. In calculating prediction errors, motion compensation techniques are used to correct predictions for motion. As in H.261, the macroblock (MB) approach has been adopted for motion compensation in MPEG. In a one-way motion estimation called forward prediction, the target MB in the picture to be encoded is matched with a set of moved macroblocks of the same size in past pictures called reference pictures. As in H.261, the macroblock in the reference picture that best matches the target macroblock is used as the prediction MB. The prediction error is then calculated as the difference between the target macroblock and the prediction macroblock.
[0009]
I. Picture buffer size
(1) Two reference frames
In summary, MPEG-2 divides a video picture into three types of pictures (ie, intra “I”, prediction “P”, and bi-directional prediction “B”). By definition, all macroblocks in an I picture must be coded intra (like a baseline JPEG picture). Furthermore, the macroblocks in the P picture can be encoded as intra or non-intra. During non-intra coding of a P picture, the P picture is temporarily predicted from a previously reconstructed picture, thereby coding for the immediately preceding I or P picture. Finally, macroblocks within a B (ie bi-directional prediction) picture may be independently selected as non-intra, such as intra or forward prediction, reverse prediction or forward and reverse (interpolated) prediction. During non-intra coding of a B picture, the picture is coded with reference to the immediately preceding I or P picture as well as the immediately following I or P picture. In terms of coding order, P pictures are causal, while B pictures are not causal and use two surrounding pictures that have been coded by chance for prediction. Regarding the compression efficiency, the I picture has the lowest efficiency, the P picture is somewhat better, and the B picture is the most efficient.
[0010]
Every macroblock header contains an element called a macroblock type, which can turn these modes on and off like a switch. The macroblock (or motion type as in MPEG-2) type is perhaps the single most powerful element in the overall video syntax. Picture types (I, P and B) simply extend the scope of semantics to allow macroblock mode.
[0011]
A sequence of pictures can consist of almost any pattern of I, P and B pictures. Although having a fixed pattern (eg, IBBPBBPBBPBBPBB) is common in the industry, more advanced encoders optimize the placement of three picture types according to local sequence features in the context of more global features Will try to make it.
[0012]
As explained above, in order to reconstruct a B picture, the decoder needs two reference frames (ie, two P frames, one P and I frame each, or two I frames). The video decoding and display system must allocate at least two frames of video memory in order to store two reference frames.
[0013]
(2) Two half frames
(I) Interlace video
In addition, MPEG-2 defines that frames can be progressively encoded or interlaced and signaled by a “progressive frame” variable.
[0014]
Progressive frames are a logical choice for video material organized from film, where all “pixels” are integrated, that is, captured almost at the same moment. The optical image of the scene on the picture is scanned one line at a time, left to right and top to bottom. The details that can be represented in the vertical direction are limited by the number of scan lines. Thus, some of the details of the vertical resolution are lost as a result of raster scan degradation. Similarly, because of the sampling of each scan line, some of the horizontal details are lost.
[0015]
Scan line selection involves a trade-off between inconsistent requirements of bandwidth, flicker and resolution. Interlaced frame scans attempt to achieve these trade-offs using frames composed of two field lines sampled at different times, and the two field lines are interleaved, so that Two consecutive lines belong to alternating fields. This is a vertical-temporal tradeoff in spatial and temporal resolution.
[0016]
For interlaced pictures, MPEG-2 offers a choice of two “picture structures”. A “field picture” is made up of individual fields that are each divided into macroblocks and encoded separately. On the other hand, in a “frame picture”, each interlaced field pair is interleaved together into one frame, which is then divided into macroblocks and encoded. MPEG-2 requires interlaced video to be displayed as alternating top and bottom fields. However, within a frame, one of the top or bottom fields is temporarily encoded first and sent as the first field picture of the frame. The selection of the frame structure is indicated by one of the MPEG-2 parameters.
[0017]
In conventional decoding and display systems that process interlaced frame pictures, the bottom field is the top field even if both data reconstructed for the top field and the bottom field are generated simultaneously by the decoder. It is the same when it is finally displayed after the display is completed, or vice versa. In the bottom field display, because of this delay, a buffer of one field (half frame) size is required to store the bottom field for the delayed one. This additional video memory requirement of an additional field (half frame) is in addition to the above requirement of two frames required to store two reference frames (ie I and / or P frames) Please note that.
[0018]
(Ii) 3: 2 pulldown
The repeat first field signals that the field or frame from the current frame should be repeated for frame rate conversion purposes (as in the example below for 30 Hz display vs. 24 Hz encoding). Introduced into MPEG-2. On average, every other encoded frame in a 24 frame / second encoding sequence will signal a repeat first field flag. Thus, a 24 frame / second (or 48 field / second) encoded sequence would be a 30 frame / second (60 field / second) display sequence. This process has been known as 3: 2 pulldown for decades. Since the advent of television, most movies seen on NTSC displays have been displayed this way. In the MPEG-2 format, the repeat first field flag is determined independently in every frame-structured picture, so the actual pattern can be irregular (it doesn't have to be every other frame literally ).
[0019]
For MPEG-2 video, the video display and memory controller must determine by itself when to perform 3: 2 pulldown by checking the flag that comes with the decoded video data. MPEG-2 provides two flags (repeat first field and top field first) that explicitly describe whether a frame or field should be repeated. In a progressive sequence, a frame can be repeated two to three times. On the other hand, simple and main profiles are limited to repeated fields only. Furthermore, it is a general syntactic limitation that the repeat first field can be signaled only in progressive frame structured pictures (value = 1).
[0020]
For example, in the most common scenario, one film sequence includes 24 frames per second. However, the frame rate element in the sequence header will indicate 30 frames / second. On average, every other encoded frame sends a repeat field (repeat first field = 1) signal to pad the frame rate from 24 Hz to 30 Hz. That is, (24 encoded frames / second) * (2 fields / encoded frames) * (5 display fields / 4 encoded fields) = 60 display fields / second = 30 display frames / second.
[0021]
For systems with 3: 2 pull-down capability, another extra field (half frame) of video memory is needed to store the first displayed field for later repetition (3: 2 pull-down). Depending on the protocol). This is because the first displayed field is needed again for display after the second field is displayed. To explain this requirement, if a top field is displayed during decoding, then the bottom field will be displayed following the completion of the display of the top field. However, this top field will be needed for display again after the system finishes the bottom field display (ie, 3: 2 pulldown). Since the top field is required for display at two different moments (ie before and after the bottom field display), another half frame (one field) of video memory is required to store the top field. In order to display MPEG-2 video pictures, the conventional system adds up to the above 2.5 frames required to store two reference frames plus a half frame to display interlaced pictures. Requires 3 frames of video memory.
[0022]
(Iii) Still frame
Some newly designed MPEG-2 video decoding and display systems also allow the user to freeze the currently displayed frame. Under the “still frame” condition, the video decoding / display system repeatedly displays the currently displayed picture until further instruction from the user. Since no further decoding and 3: 2 pulldown are required during the pause, the two half-frames described above (ie, display of interlaced pictures and 3: 2 pulldown) are not required. However, if the frozen frame being displayed is a progressive B frame, the entire B frame needs to be stored in the video system, so extra video memory is needed to store the currently displayed B frame. Frame is necessary. It is true that no extra video memory is required if the frozen frame is an I or P frame. This is because these two reference frames are already stored in the video memory (as a forward prediction frame and a backward prediction frame). However, normally B frames are not stored in the video memory for reference, so an extra frame of video memory is needed for B frame display. Thus, in order to display an accurate image of a B-frame picture, in addition to the two frames required to store the reference frame, another full frame of video memory is required.
[0023]
II. Problems faced by traditional video decoding and display systems
The MPEG-2 main profile main level system is defined as having a sampling limit (720 × 480 × 30 Hz for NTSC and 720 × 576 × 24 Hz for PAL) in the CCIR601 parameters. The term “profile” is used to limit the syntax (ie, algorithm) used in MPEG, and the term “level” limits the encoding parameters (sample rate, frame size, encoded bit rate, etc.). Used to do. Along with that, the video main profile main level standardizes complexity with the feasible limitations of 1994 VLSI technology and still meets the requirements of most applications.
[0024]
For CCIR 601 rate video, the 3 frames required for the PAL / SECAM decoding and display system exceed the decoder's video memory requirements beyond the normal 16 Mbit (2 Mbyte) limit, and the next level of 32-Mbit. Push to memory design. This memory constraint is discussed in US Pat. No. 5,646,693 (issued July 8, 1997 to Cismas and assigned to the same assignee as the present application). The Cismas reference is hereby fully incorporated by reference. As has been well documented in the prior art, increasing video memory beyond 16-Mbit would complicate the design of the memory controller and add to the manufacturing cost of another 16Mbit video memory. .
[0025]
[Problems to be solved by the invention]
Cismas discloses a system and method for decoding and displaying MPEG video using a frame buffer that is smaller in size than normal video memory requirements (ie, three frames of memory). During decoding and display, the Cismas system stores only a portion of the second field when the first field is being displayed, instead of storing the complete second field. When the second field is required for display, the decoder again decodes the missing portion of the second field to generate the remaining data for the second field display. By reusing the same storage location allocated for the first displayed field to display the second field, the decoding and display system saves up to half a frame of memory (depending on the number of partitions). ). However, even if the Cismas system solves the problem of lack of video memory during display, the Cismas system requires additional decoding power to decode the missing portion of the second field a second time. Therefore, a new video memory management system is desired that can achieve the same objective as Cismas of reducing the video memory requirements while eliminating the second decoding stage.
[0026]
Additional objects and advantages of the invention will be set forth in the description which follows, and in part will be apparent from the description, or may be learned by practice of the invention. The objects and advantages of the invention may be realized and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims.
[0027]
SUMMARY OF THE INVENTION
The present invention is directed to an improved video memory control system for handling video memory used for decoding and displaying a bit stream of compressed video data. In particular, the present invention is directed to a video memory management system for receiving a bitstream of compressed video data, decoding the compressed video data, and displaying the images contained therein. .
[0028]
One aspect of this memory management system is to provide a modular memory management system or apparatus for handling video memory management. More particularly, the video decoding and display system of the present invention consists of a split memory manager having two separate memory managers. Each of these memory managers handles a specific memory management function. By dividing the memory management function among the various memory managers, decoding and display of video data can be performed more efficiently.
[0029]
Another aspect of the present invention provides a novel method for processing and handling video memory, thereby providing an efficient method for handling MPEG-2 data streams. In particular, a segmented reusable video memory management system is disclosed.
[0030]
Another aspect of the present invention is to provide an intra-frame video data compression system that can further reduce the size of video memory required for video decoding and display systems.
[0031]
The accompanying drawings are included in and constitute a part of this specification and exemplify the preferred embodiments of the present invention, the general description given above and the detailed description of the preferred embodiments given below. At the same time, it helps to explain the principle of the present invention.
[0032]
DETAILED DESCRIPTION OF THE INVENTION
The invention will be described with reference to several preferred embodiments. The preferred embodiment is an apparatus and method for handling and processing video data. The following three aspects of the present invention are discussed in detail. (2) segmented reusable memory design (named by the inventor as “rolling memory design”), and (3) simple fixed low without considering method and application. Bit rate assisted compression technology (named "FlexiRam" by the inventor). All three aspects of the present invention are disclosed for efficient handling of video memory data and can be implemented in a single video decoding and display system.
[0033]
1. Split video memory manager
FIG. 1 shows a conventional video decoding / display system, which comprises a
[0034]
The
[0035]
FIG. 2 illustrates the novel partitioned memory manager design disclosed by the present invention. Instead of the conventional single memory manager design as shown in FIG. 1, the memory manager of the present invention consists of two separate memory managers. That is, the
[0036]
As discussed in the previous paragraph, there are basically two groups of video data stored in video memory. Reference frame data (ie, I and P frames) and bidirectional frame data (ie, B frames). Since these two groups of video data are handled differently in both decoding and display, the handling of video memory between these two groups of video data is quite different.
[0037]
In a preferred embodiment of the present invention, the
[0038]
For example, in the video memory management system disclosed by Cismas, the memory management method is directed to B frames. In a preferred embodiment using a split memory manager design, the
[0039]
Furthermore, in another preferred embodiment, the present invention comprises three memory managers. The first memory manager handles I frames. The second manager handles P frames. Furthermore, the third memory manager handles only B frames.
[0040]
In another preferred embodiment, the present invention comprises three memory managers. Each of the three memory managers handles one of the three color components (eg, Y, U, and V).
[0041]
In a further preferred embodiment having multiple memory managers, each of the memory managers handles different combinations of video data types (eg, color components) and / or groups (eg, reference frames or bi-directional frames). it can. For example, in a preferred embodiment, the video decoding and display system includes a first memory manager for handling Y chroma components for I pictures, a second memory manager for handling U and V chroma components for B pictures, I And a third memory manager for handling U and V chroma components for P pictures and a fourth memory manager for handling the remaining video data. Each of the four memory managers can utilize a different memory management technique.
[0042]
Since the design flexibility provided by the split memory manager design of the present invention is almost unlimited, individual memory managers can be customized to suit a particular type or definition of video data.
[0043]
FIG. 3 shows another preferred embodiment of the present invention. Under the MPEG-2 main profile main level definition, the repeat first field is not allowed for B frames for the PAL standard. Thus, in the preferred embodiment designed for the MPEG-2 main profile main level PAL system, the repeat first field need not be provided to the
[0044]
2. Segmented reusable video memory design
Another aspect of the invention is directed to a method of handling video memory allocation for a video decoding and display system that can handle both field pictures and frame pictures.
[0045]
As previously described, MPEG-2 provides a choice of two picture structures for interlaced pictures. A field picture consists of individual fields, each divided into macroblocks and individually encoded. On the other hand, in a frame picture, each interlaced field pair is interleaved together into one frame, which is then divided into macroblocks and encoded. MPEG-2 requires interlaced video to be displayed as alternating top and bottom fields. However, within a frame, one of the top or bottom fields can be temporarily encoded first and sent as the first field picture of the frame according to a predefined definition. Due to differences in the sequence of decoded data for the two picture structures, the reading and writing of the video data defined by these two formats is performed in two different orders.
[0046]
FIG. 4 illustrates a preferred embodiment of the present invention. As shown, the video memory 410 is partitioned into a number of memory segments. Each of the memory segments can store eight consecutive lines of video data in one of two fields. The memory manager creates and maintains two lists, MS (memory segment) 420 and DS (display segment) 430. Each memory segment is indirectly addressed by an entry in the
[0047]
In the preferred embodiment as shown in FIG. 4,
[0048]
As shown in FIGS. 4 and 5, each entry in the
[0049]
Even though the memory segment in the video memory 410 and the physical location of the entries in the
[0050]
FIG. 4 illustrates the indirect addressing scheme used by the preferred embodiment of the present invention. Each entry in the
[0051]
In a preferred embodiment, the video decoding and display system of the present invention handles interlaced pictures in both frame picture format and field picture format. Accordingly, as shown in FIG. 6, the
[0052]
As shown in FIG. 7, in the preferred embodiment, three pointers are maintained for the
[0053]
For field pictures and frame pictures, these three DS pointers are assigned to different positions.
[0054]
FIG. 7 (a) shows the positions of these three pointers when the video system is handling frame pictures. To handle a bitstream of video data for frame picture where data is interleaved between two fields, the two
[0055]
FIG. 7B shows the positions of these pointers when the video decoding / display system is handling field pictures. Since the video data of the field picture is sequentially decoded and supplied by the decoder, the two
[0056]
FIG. 8 shows a flowchart for the present invention.
[0057]
First, during initialization of the video decoding and display system, all busy bits of the MS entry are initialized by the memory manager to NOT busy (ie, set all busy bits of the MS entry to logic 0) (stage). 810).
[0058]
When the memory manager detects a new picture in the incoming stream of encoded video data, the memory manager initializes the
[0059]
FIG. 9 shows in detail the step of initializing the
[0060]
If the video data is in frame picture format, the memory controller then checks the top field first variable to determine if the flag is set (step 930). If the top field needs to be decoded first, the DS read
[0061]
As shown in FIG. 9, if the video data is in a field picture format, the memory controller checks the picture structure parameter to determine whether the incoming video data is a top field picture or a bottom field picture (step 920). . If the top field needs to be decoded, the three DS pointers are set as follows: That is, the DS read pointer 760 is set to 36, the first
[0062]
As shown in FIG. 8, after the DS list is initialized, the memory manager scans the
[0063]
When two non-busy memory segments are found, the
[0064]
After the DS entry has been updated, the decoder decodes a new macroblock row containing 16 lines of video data (stage 830).
[0065]
After the macroblock row of video data is decoded, the memory manager stores the decoded video data in video memory at
[0066]
As shown in FIG. 10, if the picture is a field picture, the memory manager uses the MS segment entry indirectly addressed by the first
[0067]
On the other hand, if the picture is a frame picture, after the decoder decodes the 16 lines of video data of the incoming bitstream (ie, one macroblock row), the memory manager will return the top of the currently decoded frame. Eight lines of video data corresponding to the field are written to the memory segment addressed by the first MS segment entry indirectly addressed by the first
[0068]
As shown in FIG. 8, following the writing of the video data to the corresponding memory segment, the DS pointers (ie, 710, 720, and 750 or 730, 740, and 760) are then as shown in FIG. It is updated by a different stage (stage 860).
[0069]
FIG. 11 shows details of the update operation (stage 860) of the DS pointer (ie, 710, 720, and 750 or 730, 740, and 760). The memory manager first checks whether the video data is in field picture format or frame picture format (stage 1110), and then the memory manager updates the two DS write pointers accordingly (
[0070]
If the video data is a frame picture format, both of the two
[0071]
After the DS pointer is updated, the memory manager checks whether there is more incoming video data for the current picture. If there is still an incoming video bitstream, the operation returns to the MS list scanning stage as shown in FIG. 8 (stage 870).
[0072]
If the incoming bitstream for the current picture ends, the video system then checks whether there are more pictures to be decoded and displayed (step 880). If there are more incoming pictures for decoding and display, the overall operation returns to step 820. The entire operation is completed when there are no more incoming pictures for display (step 890).
[0073]
When the system needs additional video data for display, the next 8 lines of data are stored in the video memory 410 using the MS index addressed by the DS read pointer (ie, 750 or 760). Retrieved from memory segment. The address stored in the MS list entry is used to locate the next memory segment to be displayed from the video memory 410. After a particular memory segment is read for display, the busy bit 510 of that
[0074]
In one embodiment of the invention, if the memory controller is not fast enough to handle the “indirect addressing” scheme described above, the
[0075]
3. FLEXIRAM design
Another aspect of the present invention is directed to an intra-frame video memory compression / decompression method.
[0076]
In the present invention, the video data is compressed lossy or lossless before being stored in the video memory, and the compressed data is decompressed when it is read from the video memory. This video data compression / decompression apparatus is named “FlexiRam” by the present inventors.
[0077]
FIG. 12 shows three different embodiments of the present invention.
[0078]
In a preferred embodiment as shown in FIG. 12 (a), the
[0079]
FIG. 12 (b) illustrates another preferred embodiment of the present invention, where
[0080]
FIG. 12 (c) shows another embodiment of the present invention, where the
[0081]
It should be noted that the present invention works with all picture types (I, P and B) and is not limited to any type of picture. Thus, if desired, the present invention can be implemented in a split memory manager design using (a) the
[0082]
Figures 13a, 13b and 13c illustrate three different embodiments of the present invention combining a FlexiRam design and a split memory manager design. FIG. 13a shows one of two preferred embodiments of the present invention. In this embodiment, two FlexiRam compressor / decoders are used. The
[0083]
The most important factors when considering which implementation to implement for a particular system are the amount of video memory available, available processing speed, desired image quality, etc.
[0084]
For example, in addition to the embodiments described above, the FlexiRam design can be applied to compression and decompression of all three color components or only two chroma color components.
[0085]
The design can be further improved by combining all the embodiments and aspects disclosed above. For example, in one embodiment, only the U and V color components in a B picture are compressed with the FlexiRam design. Alternatively, in another embodiment, all three color components for all two picture groups (ie, reference frames or bi-directional frames) are compressed by the FlexiRam design.
[0086]
The design flexibility of the present invention in combining split memory manager, FlexiRam, and primary color splits makes system designers most appropriate and effective according to various video system requirements, video memory size, desired image quality, etc. This gives you a great advantage in design freedom, allowing you to choose the right combination.
[0087]
FIG. 14 outlines a preferred embodiment of the FlexiRam design. As shown in the figure, data compression consists of two stages. That is, (1) error diffusion (stage 1410) and (2) truncation of one pixel per quartet (stage 1420).
[0088]
Initially, the video data is compressed according to an error diffusion algorithm (stage 1410). In the preferred embodiment, a basic compression unit is defined as a “quartet” that includes four consecutive horizontal pixels. The error diffusion compression stage (stage 1410) compresses each pixel of the quartet individually. By using the 1-bit error diffusion algorithm, the quartet of pixels originally having 32 bits (4 pixels * 8 bits / pixel) is compressed to 28 bits (4 pixels * 7 bits / pixel). It should be noted that the present invention is not limited to a 1-bit error diffusion algorithm and that a multi-bit error diffusion algorithm can be implemented as well, but with a perceptible image quality degradation tradeoff.
[0089]
The second stage of video data compression is “1 pixel truncation per quartet” (stage 1420). The one-pixel truncation algorithm per quartet compresses four 7-bit pixel quartets into a 24-bit quartet. The data compressor calculates the best pixel of the quartet to be truncated and stores the reconstruction method in the last 3 bits of the quartet as a reconstruction descriptor (“RD”). After this compression stage, the compressed quartet of pixels has 24 bits (3 pixels * 7 bits / pixel + 3 bits RD). A detailed algorithm for truncating one pixel per quartet will be described later.
[0090]
When video data is needed from the video memory, FlexiRam performs decompression on the compressed data read from the memory. The decompression stage is the reverse of the compression stage shown in FIG.
[0091]
Initially, one pixel is added back to the 24-bit quartet by the 1-pixel reconstruction algorithm per quartet, which is the inverse of the 1-pixel truncation algorithm per quartet (stage 1430). This restoration phase reconstructs the 7-bit truncated pixel according to the reconstruction method supplied by the RD stored as the last 3 bits of 24 bits representing the quartet. After this restoration stage (stage 1430), the quartet is reshaped and has four 7-bit pixels. A preferred reconstruction algorithm will be described in detail later.
[0092]
Next, “0” is connected to each 7-bit pixel, and the process returns to the four 8-bit pixel quartets before compression (step 1440). This restoration step (step 1440) reconstructs four 8-bit pixels by concatenating one “0” as the least significant bit for all pixels.
[0093]
FIG. 15 shows the data format of the quartet of video data (ie, four 8-bit pixels) during various processes in the compression / decompression stage.
[0094]
Initially, each 8-bit pixel of
[0095]
When video data is needed from the video memory, the compressed data is decompressed in two successive stages:
[0096]
Initially, one additional pixel is generated according to a one
[0097]
Details of the error diffusion and truncation of one pixel per quartet algorithm are described below.
[0098]
A. Error diffusion
It should be noted that various error diffusion algorithms can be used for this compression stage. The preferred embodiment disclosed below utilizes a 1-bit error diffusion algorithm. However, the present invention is not limited to any particular algorithm used for error diffusion processing. Further, as discussed previously, if more image quality degradation is allowed, multiple bits (greater than 1) can be removed by an error diffusion algorithm. Accordingly, the following specific 1-bit error diffusion algorithms are disclosed for illustrative purposes only.
[0099]
In this preferred embodiment of the present invention, the error diffusion (ED) algorithm operates independently on every line in the picture. At the beginning of the line, a 1-bit register labeled “e” is set to 1. “E” stores the currently running error and is updated on a pixel basis. The 1-bit ED algorithm is described by the following two equations.
Iout (J) = 2 * floor [(Iin(J) + e (j)) / 2]
However, IinIf (j) = 255 and e (j) = 1, Iout (j) = 255
e (j + 1) = Iin(J) + e (j) + Iout (J)
Where
j: Index of the current pixel in the row
Iin(J): Original value of the pixel
Iout (J): New value of pixel (after ED)
e (j): error accumulator at time of pixel j
floor (x): closest integer less than or equal to x
[0100]
Iout After (j) is calculated, Iout The least significant bit of (j) is truncated, and this algorithm quantizes 8-bit pixels to 7-bit pixels while removing pseudo contour effects.
[0101]
This algorithm can be described, for example, as follows. That is, in one case IinAssuming that (j) is 182 and binary 10010111 and e (j) is 1,
Iout (J) = 2 * floor ((10010111 + 1/2)
= 2 * floor (10011000/2)
= 2 * floor01001100
= 1001100
e (j + 1) = 10010111 + 1-1001100
= 0
[0102]
By truncating the least significant bit, the stored quantized pixel is = 100110.
[0103]
The “e” value is then propagated to the end of the line. Since the ED algorithm of the present invention operates on the raster structure and the picture is written into the block structure memory, it is necessary to store e (j) at the end of the block line. This value is used when the ED continues with the next pixel in the same line (which belongs to the next block). Therefore, an 8-bit latch must be used for all “interrupt” blocks. (Because e can only be 0 or 1, 1 bit is sufficient for every break line).
[0104]
The
[0105]
Each 7-bit pixel is then concatenated with “0” as the least significant bit. For example, “1101101” is reformed to “11011010”. Thus, the resulting data is four 8-bit pixels, similar to the original uncompressed data.
[0106]
After the data is compressed using a 1-bit error diffusion algorithm, 4 bits are truncated, thereby compressing a quartet having 4 8-bit pixels into 4 7-bit pixels. It is true that a higher compression ratio can be achieved by executing a “2” bit error diffusion algorithm that can compress a quartet having four 8-bit pixels into four 6-bit pixels. The compression ratio when using the 2-bit error diffusion algorithm is 24/32 × 100% (ie, 75%). However, it is found that there is perceptible image quality degradation after compression and decompression using a 2-bit error diffusion technique. Thus, instead of using a 2-bit error compression technique, the present invention discloses a two-stage compression / decompression process: (1) 1-bit error diffusion, and (2) 1 pixel truncation per quartet. Even if the two techniques have the same compression ratio (ie, 75%), the resulting image quality of the two-stage compression / decompression process disclosed in the present invention is a perceptible improvement over the two-bit error diffusion technique. Bring.
[0107]
B. 1 pixel rounded down per quartet
The second compression stage of the preferred embodiment of the present invention is truncation of one pixel per quartet. The one
[0108]
It should be noted that various pixel truncation algorithms can be used to reduce the number of pixels stored in the video memory. The present invention is not limited to any particular pixel truncation algorithm and equation used during the compression and decompression process. Furthermore, multiple pixels (greater than 1) can be truncated at a trade-off with image quality degradation. The following truncation of one pixel per quartet is disclosed as a preferred embodiment of the present invention with the best balance of memory savings and little perceptible impact on image quality.
[0109]
In the preferred embodiment, the four pixels of the quartet are each named consecutively as P0, P1, P2, or P3. Pixels P1 and P2 are two candidates to be truncated. The algorithm predicts (1) which pixels are more suitable for truncation, and (2) what reconstruction method should be used in reconstruction to estimate the truncated pixels. There are five possible reconstruction methods for each candidate. That is,
1. Copy the one on the left.
2. Copy the right neighbor.
3. Average the left neighbor and the right neighbor.
4). Add 1/4 of the left neighbor and 3/4 of the right neighbor.
5. Add 3/4 of the left neighbor and 1/4 of the right neighbor.
[0110]
Theoretically, truncating P1 and estimating it with a copy of P2 is equivalent to truncating P2 and estimating it with a copy of P1. Thus, for the two candidates (ie, P1 and P2), there are only 9 (not 10) possible estimators. Further, after truncating one pixel from the quartet, 21 bits are left to represent the remaining three pixels. In the preferred embodiment, the final compressed data target size for each quartet is 24 bits (25% compression). This means that only 3 bits can be assigned to describe the estimator that is selected, so in practice only 8 estimators can be considered. The estimator omitted from consideration is to reconstruct P2 by 3/4 of the left neighbor and 1/4 of the right neighbor. The reason for omitting this particular estimator is that the statistics of the MPEG picture show that it is least likely to be chosen as the best (four quarter, three quarter estimators). The choice is arbitrary.)
[0111]
Initially, eight estimators are calculated.
P0 1= P0 (Pk j Represents the estimated amount of Pi using the k method)
P0 1= P2
P2 1= 0.5P0 + 0.5P2
PThree 1= 0.25P0 + 0.75P2
PFour 1= 0.75P0 + 0.25P2
P1 2= P3
P2 2= 0.5P1 + 0.5P3
PThree 2= 0.25P1 + 0.75P3
[0112]
For all estimators, the absolute value of the estimation error is Ek i = | Pk i -Pi |. The minimum error is mini, k {Ek l }. If there is a minimum error greater than 1, the selection is arbitrary. (The decision is left pending for execution). Finally, according to the minimum error, Pjimin, The estimator selected with the 3-bit reconstruction descriptor (RD) set and truncated, Pkmin iminIs shown. The 3-bit RD is concatenated with the remaining three 7-bit pixels and together forms a 24-bit compressed quartet. The articulation method is left pending for execution.
[0113]
The decompression of compressed data is simply the reverse of the compression algorithm. The missing 7-bit truncated pixels are: (1) which pixel (ie, P1 or P2) to reconstruct, and (2) which reconstruction method to select for reconstruction. It is reconstructed using the last RD.
[0114]
As shown in FIG. 15, the data compressor obtains the reconstruction method provided by 3 bits of RD. Next, the pixel for reconstruction (P1 or P2) is determined and pixel reconstruction is performed according to the inverse of the above eight equations.
[0115]
It should be pointed out that the present invention is not limited to any particular method and equation used in the video data compression stage of (1) error diffusion and (2) pixel truncation. An important feature of the FlexiRam design disclosed as the present invention is the specific sequence of these two data compression / decompression stages. That is, the video data is first compressed using an error diffusion algorithm with a reduced number of bits per pixel. The intermediate compressed video data is then further compressed using a pixel truncation algorithm that truncates one pixel from a particular group of pixels. As discussed previously, the decompression process is just the opposite of the compression process.
[0116]
While the invention has been described in conjunction with the preferred embodiments described above, the description and examples are intended to be illustrative and not limiting the scope of the invention, which is defined by the appended claims. It should be understood that it is specified.
[Brief description of the drawings]
FIG. 1 shows a conventional video decoding / display system.
FIG. 2 illustrates a preferred embodiment of the split memory manager design of the present invention.
FIG. 3 illustrates another preferred embodiment of the split memory manager design of the present invention.
FIG. 4 illustrates a method of indirectly addressing video memory using a display segment list and a memory segment list.
FIG. 5 shows details of a memory segment list.
FIG. 6 shows details of a display segment list.
FIG. 7 shows the positioning of two write and read pointers on the display segment list for (a) frame picture format and (b) field picture format.
FIG. 8 is a block diagram showing details of a segmented reusable video memory design (named rolling memory design by the inventor).
FIG. 9 shows details of initialization of a display segment list for each picture.
FIG. 10 shows the writing of the decoded video data of each macroblock row to the video memory.
FIG. 11 shows details of updating the display segment list.
FIG. 12 shows three preferred embodiments of the FlexiRam design.
FIG. 13a shows another three preferred embodiments of the FlexiRam design.
FIG. 13b shows another three preferred embodiments of the FlexiRam design.
FIG. 13c shows another three preferred embodiments of the FlexiRam design.
FIG. 14 is a block diagram showing stages of video data compression / decompression.
FIG. 15 shows the quartet video data format during various stages of compression and decompression.
Claims (13)
前記ビデオデータのビットストリームを復号する復号器と、
前記復号器に連結された多数のビデオメモリマネージャであって、前記多数のメモリマネージャの各々は、参照フレームデータおよび双方向フレームデータからなる復号されたビデオデータグループ毎にカスタマイズされたメモリ管理のポリシーを使用して前記復号されたビデオデータの異なるグループを取り扱い、そして前記多数のビデオメモリマネージャは、前記復号されたビデオデータの参照フレームデータを取り扱う第1メモリマネージャと、前記復号されたビデオデータの双方向フレームデータを取り扱う第2メモリマネージャとからなる、ビデオメモリマネージャと、
対応する多数のビデオメモリであって、前記多数のビデオメモリの各々は、前記多数のビデオメモリマネージャに対応するようにそれぞれ連結され、これにより前記復号されたビデオデータグループ毎に異なるメモリ管理を行い、そして前記対応する多数のビデオメモリは、前記参照フレームデータを格納するために、前記第1ビデオメモリマネージャに連結された第1ビデオメモリと、前記双方向フレームデータを格納するために、前記第2ビデオメモリマネージャに連結された第2ビデオメモリとからなり、前記第1ビデオメモリの記憶容量は、2つの完全なフレーム用の復号されたビデオイメージ情報を格納するのに十分であり、前記第2ビデオメモリの記憶容量は、1つの完全なフレーム用の復号されたビデオイメージ情報を格納するのに十分な記憶容量よりも小さい、対応する多数のビデオメモリと、
前記ビデオイメージを表示するために、前記多数のビデオメモリマネージャに連結された表示サブシステムと、
からなるシステム。A system for decoding and displaying a bit stream of video data representing an encoded video image,
A decoder for decoding the bit stream of the video data,
A large number of video memory manager coupled to the decoder, wherein each of the plurality of memory manager, the reference frame data and bidirectional frames comprising data decoded customized memory management for each video data group handling different groups of video data the decoded using a policy, and the number of video memory manager includes a first memory manager for handling reference frame data of said decoded video data, which is the decoded and a second memory manager for handling bidirectional frame data of the video data, and a video memory manager,
A corresponding number of video memory, each of said plurality of video memory, the number of the respectively connected so as to correspond to the video memory manager, thereby a different memory management for each of the decoded video data groups performed, and the corresponding number of video memory is to store the reference frame data, a first video memory coupled to the first video memory manager, for storing the bidirectional frame data a, it consists of a second video memory connected to said second video memory manager, the storage capacity of the first video memory is to store the decoded video image information for two complete frames to be sufficient, the storage capacity of the second video memory is to store the decoded video image information for one complete frame Less than sufficient storage capacity for a corresponding number of video memory,
To display the video image, and a display subsystem coupled to the plurality of video memory manager,
A system consisting of
前記第1ビデオメモリマネージャにトップ・フィールド・ファースト信号およびリピート・トップ・フィールド信号が供給されることを特徴とするシステム。The system of claim 1, wherein
System characterized in that the top field first signal and repeat the top field signal is supplied to the first video memory manager.
前記第2ビデオメモリマネージャに前記トップ・フィールド・ファースト信号を供給するシステム。The system of claim 1, wherein
System for supplying said top field first signal to said second video memory manager.
前記第1ビデオメモリマネージャにトップ・フィールド・ファースト信号およびリピート・トップ・フィールド信号を供給し、前記第2ビデオメモリマネージャに前記トップ・フィールド・ファースト信号を供給するシステム。The system of claim 1, wherein
Wherein the first video memory manager to supply the top field first signal and repeat the top field signal, the system supplies the top field first signal to said second video memory manager.
前記第2ビデオメモリマネージャおよび前記第2ビデオメモリに連結されたデータ圧縮器であって、前記第2ビデオメモリ中に格納されるべき前記双方向フレームデータを圧縮する、データ圧縮器と、
前記第2ビデオメモリマネージャおよび前記第2ビデオメモリに連結されたデータ復元器であって、前記第2ビデオメモリから読み出された前記圧縮された双方向フレームデータを復元する、データ復元器と、
からさらになるシステム。The system of claim 1, wherein
A concatenated data compressor to said second video memory manager Contact and the second video memory, compressing the bidirectional frame data to be stored in the second video memory, the data compressor And
A concatenated data decompressor to the second video memory manager Contact and the second video memory, and restores the bidirectional frame data the compressed read the second video memory or al, and data recovery unit,
A system that further consists of.
前記データ圧縮器は、前記ビデオデータを圧縮するエラー拡散機構および画素切り捨て機構からなり、前記データ復元器は、前記第2ビデオメモリ中に格納されている前記圧縮されたビデオデータを復元する画素再構築機構およびビット連接機構からなるシステム。The system of claim 5, wherein
Said data compressor, said video data compression for error diffusion unit Kamao and pixel truncated Organization or Rannahli, said data decompressor, said second video Note the compressed video data stored in the Li pixel reconstruction unit restores the Kamao and bit concatenation Organization or Ranaru system.
前記第1ビデオメモリマネージャおよび前記第1ビデオメモリに連結されたデータ圧縮器であって、前記第1ビデオメモリ中に格納されるべき前記参照フレームデータを圧縮する、データ圧縮器と、
前記第1ビデオメモリマネージャおよび前記第1ビデオメモリに連結されたデータ復元器であって、前記第1ビデオメモリから読み出された前記圧縮された参照フレームデータを復元する、データ復元器と、
からさらになるシステム。The system of claim 1, wherein
A concatenated data compressor in the first video memory manager Contact and the first video memory, compressing said reference frame data to be stored in the first video memory, a data compressor ,
The first a video memory manager Contact and concatenated data decompressor in the first video memory, to restore the reference frame data to which the compressed read the first video memory or al, data and restorer,
A system that further consists of.
前記第1ビデオメモリマネージャおよび前記第1ビデオメモリに連結された第1データ圧縮器であって、前記第1ビデオメモリ中に格納されるべき前記参照フレームデータを圧縮する、第1データ圧縮器と、
前記第1ビデオメモリマネージャおよび前記第1ビデオメモリに連結された第1データ復元器であって、前記第1ビデオメモリから読み出された前記圧縮された参照フレームデータを復元する、第1データ復元器と、
前記第2ビデオメモリマネージャおよび前記第2ビデオメモリに連結された第2データ圧縮器であって、前記第2ビデオメモリ中に格納されるべき前記双方向フレームデータを圧縮する、第2データ圧縮器と、
前記第2ビデオメモリマネージャおよび前記第2ビデオメモリに連結された第2データ復元器であって、前記第2ビデオメモリから読み出された前記圧縮された双方向フレームデータを復元する、第2データ復元器と、
からさらになるシステム。The system of claim 1, wherein
A first data compressor coupled to the first video memory manager Contact and the first video memory, compressing said reference frame data to be stored in the first video memory, first and the data compressor,
A first data decompressor coupled to the first video memory manager Contact and the first video memory, to restore the reference frame data to which the compressed read the first video memory or al a first data recovery device,
A second data compressor coupled to said second video memory manager Contact and the second video memory, compressing the bidirectional frame data to be stored in the second video memory, the and 2 data compressor,
A second data decompressor coupled to the second video memory manager Contact and the second video memory, restores the bidirectional frame data the compressed read the second video memory or al to a second data restorer,
A system that further consists of.
前記データ圧縮器は、前記ビデオデータを圧縮するエラー拡散機構および画素切り捨て機構からなり、前記データ復元器は、前記第1ビデオメモリ中に格納されている前記圧縮されたビデオデータを復元する画素再構築機構およびビット連接機構からなるシステム。The system of claim 7, wherein
Said data compressor, said video data compression for error diffusion unit Kamao and pixel truncated Organization or Rannahli, said data decompressor, said first video Note the compressed video data stored in the Li pixel reconstruction unit restores the Kamao and bit concatenation Organization or Ranaru system.
前記多数のビデオメモリマネージャのうちの少なくとも1つのビデオメモリマネージャおよびそれと対応する連結されているビデオメモリに連結された少なくとも1つのデータ圧縮器であって、前記対応する連結されているビデオメモリ中に格納されるべき復号されたビデオデータを圧縮する、少なくとも1つのデータ圧縮器と、
前記多数のビデオメモリマネージャのうちの少なくとも1つのビデオメモリマネージャおよびそれと対応する連結されているビデオメモリに連結された少なくとも1つのデータ復元器であって、前記対応する連結されているビデオメモリから読み出されたビデオデータを復元する、少なくとも1つのデータ復元器と、
からさらになるシステム。The system of claim 1, wherein
At least one data compressor coupled to at least one video memory manager of the plurality of video memory managers and a corresponding associated video memory, wherein the at least one data compressor is in the corresponding associated video memory. compressing the decoded video data to be stored, and at least one data compressor,
And at least one video memory manager, and at least one data decompressor coupled to video memory it as being corresponding connecting one of the plurality of video memory manager, read from the video memory being connected the corresponding restores the video data issued, and at least one data restorer,
A system that further consists of.
少なくとも1つのデータ圧縮器は、損失性であるシステム。The system of claim 10 , wherein
At least one data compressor is a lossy system.
少なくとも1つのデータ圧縮器は、非損失性であるシステム。The system of claim 10 , wherein
The system in which at least one data compressor is lossless.
前記少なくとも1つのデータ圧縮器は、前記ビデオデータを圧縮するエラー拡散機構および画素切り捨て機構からなり、前記少なくとも1つのデータ復元器は、前記対応する連結されているビデオメモリ中に格納されている前記圧縮されたビデオデータを復元する画素再構築機構およびビット接合機構からなるシステム。The system of claim 10 , wherein
Storing said at least one data compressor, said Kamao error diffusion apparatus for compressing video data and pixel truncated Organization or Rannahli, wherein the at least one data decompressor is in video memory is coupled the corresponding It is the compressed pixel reconstruction unit restores the video data are Kamao and bit joining Organization or Ranaru system.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US1998/027479 WO2000040033A1 (en) | 1998-12-23 | 1998-12-23 | Video memory management for mpeg video decode and display system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009075365A Division JP2009177833A (en) | 2009-03-26 | 2009-03-26 | Video memory management for mpeg video decoding/display system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002534865A JP2002534865A (en) | 2002-10-15 |
JP4486755B2 true JP4486755B2 (en) | 2010-06-23 |
Family
ID=22268546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000591813A Expired - Fee Related JP4486755B2 (en) | 1998-12-23 | 1998-12-23 | Video memory management for MPEG video decoding and display system |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1142345A1 (en) |
JP (1) | JP4486755B2 (en) |
WO (1) | WO2000040033A1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001011459A1 (en) * | 1999-08-06 | 2001-02-15 | Intergraph Corporation | System and method for pre-processing a video signal |
KR100750096B1 (en) * | 2001-04-19 | 2007-08-21 | 삼성전자주식회사 | Video pre-processing/post-processing method for processing video efficiently and pre-processing/post-processing apparatus thereof |
KR100997166B1 (en) * | 2002-06-20 | 2010-11-29 | 소니 주식회사 | Decoding device and decoding method |
GB2429593A (en) | 2005-08-26 | 2007-02-28 | Electrosonic Ltd | Data compressing using a wavelet compression scheme |
US9992252B2 (en) | 2015-09-29 | 2018-06-05 | Rgb Systems, Inc. | Method and apparatus for adaptively compressing streaming video |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5614952A (en) * | 1994-10-11 | 1997-03-25 | Hitachi America, Ltd. | Digital video decoder for decoding digital high definition and/or digital standard definition television signals |
FR2703535A1 (en) * | 1993-03-31 | 1994-10-07 | Philips Electronique Lab | Method and apparatus for decoding compressed images |
JP2611637B2 (en) * | 1993-11-22 | 1997-05-21 | 日本電気株式会社 | Image compression / decompression device |
EP0778709B1 (en) * | 1995-12-04 | 2001-05-23 | STMicroelectronics S.r.l. | MPEG-2 decoding with a reduced RAM requisite by ADPCM recompression before storing MPEG decompressed data |
JP3575508B2 (en) * | 1996-03-04 | 2004-10-13 | Kddi株式会社 | Encoded video playback device |
DE69731342T2 (en) * | 1996-08-22 | 2005-03-17 | Matsushita Electric Industrial Co., Ltd., Kadoma | Image processing device |
US5870087A (en) * | 1996-11-13 | 1999-02-09 | Lsi Logic Corporation | MPEG decoder system and method having a unified memory for transport decode and system controller functions |
-
1998
- 1998-12-23 WO PCT/US1998/027479 patent/WO2000040033A1/en active Application Filing
- 1998-12-23 JP JP2000591813A patent/JP4486755B2/en not_active Expired - Fee Related
- 1998-12-23 EP EP98966072A patent/EP1142345A1/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
JP2002534865A (en) | 2002-10-15 |
EP1142345A1 (en) | 2001-10-10 |
WO2000040033A1 (en) | 2000-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6198773B1 (en) | Video memory management for MPEG video decode and display system | |
JP4083832B2 (en) | MPEG compatible decoder in a system for processing information representing an image | |
EP0843485B1 (en) | Video decoder with unified memory | |
JP3462208B2 (en) | Video signal decompressor for independently compressed even and odd field data | |
KR100598467B1 (en) | Image Information Processing System | |
US6473558B1 (en) | System and method for MPEG reverse play through dynamic assignment of anchor frames | |
US6301304B1 (en) | Architecture and method for inverse quantization of discrete cosine transform coefficients in MPEG decoders | |
US20070030911A1 (en) | Method and apparatus for skipping pictures | |
US6256348B1 (en) | Reduced memory MPEG video decoder circuits and methods | |
JP2000224591A (en) | Overall video decoding system, frame buffer, coding stream processing method, frame buffer assignment method and storage medium | |
US8811493B2 (en) | Method of decoding a digital video sequence and related apparatus | |
US6480542B1 (en) | Method for decoding compressed video data with a reduced memory requirement | |
JP5508024B2 (en) | Method and system for encoding a video signal, encoded video signal, and method and system for decoding a video signal | |
US5761423A (en) | Scalable picture storage access architecture for video decoding | |
US7436889B2 (en) | Methods and systems for reducing requantization-originated generational error in predictive video streams using motion compensation | |
JP4486755B2 (en) | Video memory management for MPEG video decoding and display system | |
JPH10191341A (en) | Image expansion device | |
JP4010617B2 (en) | Image decoding apparatus and image decoding method | |
US20040057522A1 (en) | MPEG video bitstream decoder system and method | |
JP2001103521A (en) | Method for recognizing progressive or interlace contents in video sequence | |
US6144323A (en) | Method and apparatus for decoding video data | |
JP2009177833A (en) | Video memory management for mpeg video decoding/display system | |
JP4264811B2 (en) | Image decoding apparatus and image decoding method | |
EP1758403A2 (en) | Video memory management for MPEG video decode and display system | |
JP2820631B2 (en) | Image decoding method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051004 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081216 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090313 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090323 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090326 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090421 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090717 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091124 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100205 |
|
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: 20100302 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100329 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130402 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |