JP2007512749A - ビデオ復号化装置 - Google Patents

ビデオ復号化装置 Download PDF

Info

Publication number
JP2007512749A
JP2007512749A JP2006540599A JP2006540599A JP2007512749A JP 2007512749 A JP2007512749 A JP 2007512749A JP 2006540599 A JP2006540599 A JP 2006540599A JP 2006540599 A JP2006540599 A JP 2006540599A JP 2007512749 A JP2007512749 A JP 2007512749A
Authority
JP
Japan
Prior art keywords
signal
video data
data
data processor
video
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.)
Pending
Application number
JP2006540599A
Other languages
English (en)
Inventor
マーティン、ボルトン
ミケーレ、カラーノ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMICROELECTRONICS Ltd
Original Assignee
STMICROELECTRONICS Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by STMICROELECTRONICS Ltd filed Critical STMICROELECTRONICS Ltd
Publication of JP2007512749A publication Critical patent/JP2007512749A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

ビデオ復号化回路は、第1のビデオデータプロセッサ、第2のビデオデータプロセッサ、および、第1のビデオデータプロセッサと第2のビデオデータプロセッサを接続するコネクションを備え、第1のビデオデータプロセッサが符号化されたビデオデータを含む第1の信号を受信し、第2の信号を供給するため第1の信号を処理し、上記第2の信号を出力するように構成される。第1のビデオデータプロセッサは受信された第1の信号の少なくとも一部分に依存して第1の信号を処理するように構成される。第2のビデオデータプロセッサは、第2の信号の少なくとも一部分を受信し、第3の信号を供給するため第2の信号の少なくとも一部分を処理し、第3の信号を出力するように構成され、第2の信号および第3の信号は復号化されたビデオ画像ストリームを含む。第2のビデオデータプロセッサは、第2の信号の少なくとも一部分のうちの少なくとも一部分に依存して第2の信号の少なくとも一部分を処理するように構成される。

Description

本発明は、ビデオ復号化装置、特に、動画像専門家グループ(MPEG)符号化ビデオタイプおよび付随した符号化ビデオタイプを復号化するビデオ復号化装置に関係するが、これらに限られない。
デジタルビデオ圧縮は多種多様な環境で使用され、多種多様な状況における第1の選択肢となっている。このような3個の環境は、放送およびDVB(デジタルビデオ放送)の標準規格、ビデオデータおよびDVD(デジタル多用途ディスク)蓄積の標準規格、ならびに、MPEG−4符号化のような標準規格を使用するインターネットのノード対ノード通信である。
伝統的に、これらの環境と関連したコーダおよびデコーダ(コーデック)の殆どは、一般的にMPEG2として知られている、当初のMPEG(動画像専門家グループ−国際標準化機構/国際電気標準会議のビデオ復号化および符号化方法)標準規格に基づいている。コーデックと、コーデックのパワーを引き出す符号化/復号化アルゴリズムは、当初のアルゴリズムが標準規格として定められて以来改良されている。これらの改良は、MPEG標準規格ではなく、MPEGタイプのセグメンテーションステップおよび圧縮ステップを使用し続ける一連のコーデックに組み込まれている。
MPEGコーデックおよびMPEGタイプのコーデックは、ピクチャとして知られている画像からなる一連の画像により構成されたビデオデータを取り扱う。フレームピクチャとフィールドピクチャの2タイプのピクチャがある。フレームピクチャは1対のフィールドにさらに細分され、各フィールドが走査画像の交互の行を備える。フィールドピクチャは単一フィールドからの画像データの行を格納する。各ピクチャは、参照ピクチャとして、または、非参照ピクチャとして、コーデックによって取り扱われる。
これらのMPEGタイプのスキームのすべては、フレームまたはフィールドピクチャ、特に、特定の参照ピクチャまたは複数の参照ピクチャを参照して符号化および復号化を行う。最も基本的な形式において、このことは、初期参照ピクチャの符号化の後に一連の非参照ピクチャを符号化することを必要とする。しかし、実際には、参照ピクチャと非参照ピクチャの区別はそれほど簡単ではない。参照ピクチャは、イントラ(I)ピクチャ、および/または、Pピクチャの両方である。Iピクチャは、他のピクチャを参照することなく符号化されるピクチャである。しかしながら、PピクチャとBピクチャの両方は、1個以上の他のピクチャからのデータを使用して符号化される。Bピクチャは他のピクチャを符号化するため使用されない。
Iピクチャは一連のマクロブロック(MB)に分解される。ブロックはその後に処理される。BピクチャおよびPピクチャは、BピクチャおよびPピクチャ内のマクロブロックと類似したブロックを見つけるため、PピクチャおよびIピクチャからのマクロブロックを探索する。BピクチャおよびPピクチャは、内容とさらに位置の点でIピクチャおよびPピクチャのマクロブロックと異なるマクロブロックに関してその後に符号化される。
復号化スキームは符号化スキームの逆を実行し、すなわち、元のPピクチャおよびIピクチャを再現し、その後に、元のPピクチャおよびBピクチャを再構成するためIピクチャおよびPピクチャと余分なPピクチャおよびBピクチャデータを使用する。
現在の市販されているビデオ復号化チップソリューションは、主として、MPEG2で符号化されたビデオストリームを復号化するため設計されている。これらの市販されているソリューションは、したがって、MPEG2に最適化され、他の標準規格を使用して符号化されたビデオストリームを復号化するため修正することが容易ではない。
従来のフレキシブルデコーダは利用可能であるが、パーソナルコンピュータ内で使用されるような汎用処理ユニット(GPU)に基づいている。これらのフレキシブルデコーダは、プロセッサの外部にあるメモリに格納され、復号化のため必要とされるビデオ標準規格に依存して選択されロードされた命令を使用して、完全な復号化プロセスを実行する。これらのGPUはビデオ復号化を実行するためには最適化されず、以前のMPEG2方式ビデオ処理ユニットが使用される場合よりも大量の電力を消費し、大量の熱を生じる。GPUソリューションは、以前に使用されたMPEG2方式ビデオ処理ユニットより高価でもあるので、フレキシブルビデオ復号化システムの製造コストを上昇させる。
本発明の実施形態の目的は上記の問題のうちの一つ以上を取り扱い、或いは、少なくとも部分的に緩和することである。
本発明の実施形態は、様々な標準規格を復号化するため十分にフレキシブルになる能力をもつ単一装置を提供することである。
本発明によれば、第1のビデオデータプロセッサ、第2のビデオデータプロセッサ、および、上記第1のビデオデータプロセッサと上記第2のビデオデータプロセッサを接続するコネクションを備え、上記第1のビデオデータプロセッサが符号化されたビデオデータを含む第1の信号を受信し、第2の信号を供給するため第1の信号を処理し、上記第2の信号を出力するように構成され、上記第1のビデオデータプロセッサが上記受信された第1の信号の少なくとも一部分に依存して上記第1の信号を処理するように構成され、上記第2のビデオデータプロセッサが、上記第2の信号の少なくとも一部分を受信し、第3の信号を供給するため上記第2の信号の上記少なくとも一部分を処理し、上記第3の信号を出力するように構成され、上記第2の信号および上記第3の信号が復号化されたビデオ画像ストリームを構成し、上記第2のビデオデータプロセッサが、上記第2の信号の少なくとも一部分のうちの少なくとも一部分に依存して上記第2の信号の少なくとも一部分を処理するように構成される、ビデオ復号化回路が提供される。
第1のビデオデータプロセッサが復号化された第1の信号を生成するため上記受信された第1の信号を可変長復号化するように構成される。
第1のビデオデータプロセッサが上記第1の信号データを少なくとも第1の部分および第2の部分に分離するように構成され、上記第1の部分が画素データと残留データのうちの少なくとも一方を含み、上記第2の部分が動きベクトルデータを含む。
第1のビデオデータプロセッサが上記第1の信号の上記第1の部分を逆量子化するように構成される。
第1のビデオデータプロセッサが上記第1の信号の上記第1の部分を空間領域変換するように構成される。
第1のビデオデータプロセッサが上記第1の信号の空間領域変換および/または逆量子化された上記第1の部分を上記第1の信号の上記第2の部分と組み合わせるように構成される。
第2のビデオデータプロセッサが上記第2の信号の少なくとも第1の部分を補間するように構成される。
第2のビデオデータプロセッサが水平補間と垂直補間の一方を使用して上記第2の信号の少なくとも第1の部分を補間するように構成される。
この回路はメモリをさらに備え、上記第2のビデオデータプロセッサが上記第2の信号の上記補間された部分を上記メモリに格納するように構成される。
第2のビデオデータプロセッサが、水平補間と垂直補間のもう一方を使用して、上記第2の信号の、上記補間され格納された第1の部分を補間するように構成される。
第2のビデオデータプロセッサが上記第2の信号の上記補間された部分と上記第2の信号のさらなる部分を組み合わせるように構成され、上記第2の信号の上記補間された部分が推定されたマクロブロックを含み、上記第2の信号の上記さらなる部分が残留誤差データを含む。
第2のビデオデータプロセッサが上記第2の信号の上記少なくとも一部分と上記第3の信号とのうちの少なくとも一方をフィルタ処理するように構成される。
上記フィルタがデリンギングフィルタとデブロッキングフィルタのうちの少なくとも一方を備える。
コネクションが上記第1のビデオデータプロセッサと上記第2のビデオデータプロセッサを接続するバスを備える。
この回路は上記バスに接続される可能性もあるメモリ装置をさらに備える。
第1のビデオデータプロセッサが上記第2の信号を、上記バスを介して、上記メモリ装置へ出力する出力を有する。
第2のビデオデータプロセッサが上記バスを介して上記メモリ装置から上記第2の信号の上記部分を受信する入力を有する。
コネクションが上記第1のビデオデータプロセッサと上記第2のビデオデータプロセッサを直接的に接続する可能性もあるデータ相互接続を備える。
第1のビデオデータプロセッサが上記第2の信号を上記データ相互接続へ出力する出力を有する。
第2のビデオデータプロセッサが上記データ相互接続から上記第2の信号の上記部分を受信する入力を有する。
第2のビデオデータプロセッサが、上記データ相互接続から上記第2の信号の上記部分の一部分を受信し、上記バスから上記第2の信号の上記部分の一部分を受信する。
第1の信号が、MPEG2方式で符号化されたビデオストリームと、H.263方式で符号化されたビデオストリーム、RealVideo9方式で符号化されたビデオストリーム、Windows Media Player方式で符号化されたビデオストリーム、H.264方式で符号化されたビデオストリームのうちの少なくとも一つである。
第2の信号が、バッファベースアドレスワード、ピクチャレベルパラメータヘッダワード、ピクチャレベルパラメータワード、マクロブロックヘッダワード、スライスパラメータワード、動きベクトル水平ルマワード、動きベクトル垂直ルマワード、動きベクトル水平クロマワード、動きベクトル垂直クロマワード、画素データ参照ワード、および、画素データ残留ワードのうちの少なくとも一つを含む。
第1のビデオデータプロセッサがデータパッカーを備える。
第2のビデオデータプロセッサがデータパッカーを備える。
データパッカーが、データワードを含む上記第2の信号を受信するように構成された入力と、上記データワードを順序付ける手段と、順序付けられたデータワードを含むデータパケットを送信するように構成された出力とを備える。
集積回路が上記の回路を備える。
第1のビデオデータプロセッサが超長命令語プロセッサを備える。
超長命令語プロセッサがメモリに格納された命令のセットにさらに依存して上記第1の信号を処理するために適する。
第2のビデオデータプロセッサがプログラマブルプロセッサを備える。
本発明の第2の態様によれば、符号化されたビデオデータを含む第1の信号を第1のビデオデータプロセッサで受信するステップと、上記第1の信号の少なくとも一部分に依存して第2の信号を供給するため上記第1の信号を処理するステップと、上記第2の信号を出力するステップと、第2のビデオデータプロセッサで上記第2の信号の少なくとも一部分を受信するステップと、上記第2の信号の少なくとも一部分に依存して第3の信号を供給するため上記第2の信号の上記少なくとも一部分を処理するステップと、上記第3の信号を出力するステップと、を備え、上記第2の信号と上記第3の信号が復号化されたビデオ画像ストリームを含む、ビデオ復号化方法が提供される。
上記第1の信号を処理するステップが上記第1の信号を可変長復号化するステップを備える。
上記第1の信号を処理するステップが上記第1の信号を少なくとも第1の部分と第2の部分に分離するステップを備え、上記第1の部分が画素データと残留データのうちの少なくとも一方を含み、上記第2の部分が動きベクトルデータを含む。
上記第1の信号を処理するステップが上記第1の信号の上記第1の部分を逆量子化するステップをさらに備える。
上記第1の信号を処理するステップが上記第1の信号の上記第1の部分を空間領域変換するステップをさらに備える。
上記第1の信号を処理するステップが上記第1の信号の空間領域変換および/または逆量子化された上記第1の部分を上記第1の信号の上記第2の部分と組み合わせるステップをさらに備える。
上記第2の信号の少なくとも一部分を処理するステップが上記第2の少なくとも第1の部分を補間するステップをさらに備える。
上記第2の信号の少なくとも第1の部分を補間するステップが水平補間と垂直補間の一方を使用して上記第2の信号の少なくとも第1の部分を補間するステップを備える。
補間するステップが上記第2の信号の上記補間された部分を格納するステップをさらに備える。
補間するステップが水平補間と垂直補間のもう一方を使用して上記第2の信号の上記補間された部分を補間するステップをさらに備える。
上記第2の信号の少なくとも一部分を処理するステップが上記第2の信号の上記補間された部分と上記第2の信号のさらなる部分を組み合わせるステップをさらに備え、上記第2の信号の上記補間された部分が推定されたマクロブロックを含み、上記第2の信号の上記さらなる部分が残留誤差データを含む。
上記第2の信号の少なくとも一部分を処理するステップがフィルタ処理するステップをさらに備え、上記フィルタ処理するステップがデリンギングフィルタ処理するステップとデブロッキングフィルタ処理するステップのうちの少なくとも一方を備える。
上記第2の信号を出力するステップが上記第2の信号をメモリに格納するステップをさらに備える。
上記第2の信号の少なくとも一部分を受信するステップが上記第1のビデオデータプロセッサから直接的に上記第2の信号の上記少なくとも一部分を受信するステップを備える。
上記第2の信号の少なくとも一部分を受信するステップが上記第1のビデオデータプロセッサから直接的に上記第2の信号の上記少なくとも一部分のうちの第1の部分を受信し、上記メモリから上記第2の信号の上記少なくとも一部分のうちの第2の部分を受信するステップを備える。
上記第1の信号を処理するステップが上記第2の信号をパケット化するステップをさらに備える。
上記第2の信号を処理するステップが、上記第2の信号の上記少なくとも一部分をパケット化するステップと、上記第2の信号の上記少なくとも一部分をメモリに格納するステップと、上記メモリから上記格納された第2の信号の上記少なくとも一部分を受信するステップとをさらに備える。
本発明と本発明がいかにして実施されるかをより良く理解するため、ここからほんの一例として添付図面が参照される。
MPEGタイプの符号化システムを明らかにする一対のフレームピクチャを示す図1を参照する。既に説明したように、汎用MPEGタイプ圧縮システムは、一連のピクチャ101、103としてビデオをサンプリングする必要がある。これらのフレームピクチャは、本発明の実施形態では、フィールドピクチャ150、152にさらに分割される。本実施形態では、フレームピクチャは2枚のフィールドピクチャを有し、各フィールドピクチャはフレームピクチャの交互の行により構成される。
ピクチャは一連のマクロブロック(MB)にさらに分割され、一連のマクロブロックのうちの1個のマクロブロック105が示されている。マクロブロックは、サンプリングされたルマ(輝度)およびクロマ(色度)のデータを含む。典型的に、クロマデータはサブサンプリングされる。よって、マクロブロックが16×16画素の大きさである実施形態では、256個のルマサンプルと、より個数の少ないクロマサンプルが存在する。マクロブロックはより小さいブロックにさらに分解され、より小さいブロックの個数および構造は使用されるコーデックのタイプに依存する。たとえば、MPEG−2方式符号化では、各マクロブロックは6個のブロックに細分される。それぞれが8×8画素の大きさである4個のブロックはルマデータを収容する。2個のさらなるブロックは、同様に8×8画素の大きさであり、サブサンプリングされたクロマデータを収容する。その他の符号化標準規格は、たとえば、8×4画素の大きさ、または、4×8画素の大きさのブロックを使用する。したがって、720×480画素(NTSC 米国テレビジョンシステム委員会)または720×576画素(PAL 位相反転ライン)のフルスクリーン画像ピクチャでは、ピクチャ毎に符号化されるべき多数のマクロブロックが存在する。
図2を参照すると、MPEGタイプ圧縮システムのステップが発明をより良く理解するためさらに詳述される。MPEGタイプのコーダは、ブロックエンコーダ201、周波数領域エンコーダ203、量子化器205、および、可変長エンコーダ207の要素を備える。
データのフローは、画像データが最初にブロックエンコーダ201へ送られるようなものである。ブロックエンコーダ201による処理後、データは周波数領域エンコーダ203へ送られる。周波数符号化203の後、データは次に量子化器205へ送られる。量子化後、データは次に可変長エンコーダ207へ送られる。可変長エンコーダ207の出力はMPEGタイプのビデオデータ符号である。
Iピクチャ101とP、Bピクチャ103は、それらの符号化方法において僅かに異なるプロセスを辿る。
ブロック201は、Iピクチャを符号化する際に、技術的に知られているようにルマ値およびクロマ値の各マクロブロック(MB)をサンプリングする。このサンプリングされたデータは周波数領域エンコーダ203へ送られる。サンプリングされたIピクチャデータのコピーは同様にPまたはBピクチャ符号化のため保存される。
ブロックエンコーダ201は、PまたはBピクチャを処理する際に、保存されたIまたはPピクチャデータを使用する。PまたはBピクチャの一連のマクロブロックサンプルは、IまたはPピクチャマクロブロックと対照して探索される。IまたはPピクチャ内のマクロブロックがPまたはBピクチャ内のマクロブロックと類似しているならば、「マッチ」が検出される。マッチしたマクロブロックは二つの情報を使用して符号化される。
第1の情報は残留データとして知られている。残留データは、PまたはBピクチャ内のマクロブロックとIまたはPピクチャ内のマッチしたマクロブロックである2個のマクロブロック(107,105)の間のルマとクロマの差である。
作成される第2の情報は、動きベクトルとしても知られているブロック動き予測子である。図1に概略的に示されるような動きベクトル109は、マッチしたマクロブロック間の空間差である。動きベクトル109を説明するため、PまたはBピクチャのマクロブロック107がIまたはPピクチャにマップされる。マップされたマクロブロックは111によって参照される。動きベクトル109は、マップされたマクロブロック111とIまたはPマクロブロック105との間の位置の差を表す。これは単に例示の目的のためのものである。
Iピクチャデータは周波数領域エンコーダ203へ送られる。BまたはP残留データは同様に周波数領域エンコーダ203へ送られるが、動きベクトルデータは可変長エンコーダ207へ直接的に送られる。
周波数領域エンコーダ203は、マクロブロック内の各ブロックのデータを空間領域から周波数領域へ変化させる変換を適用する。技術的に知られているように、このような変換は離散コサイン変換(DCT)であるが、その他の知られている周波数領域変換でもよい。周波数領域エンコーダ203からの周波数領域出力は次に量子化器205へ送られる。
量子化器205は、マクロブロックからブロックデータの周波数領域情報の再サンプリングを実行する。これは、最下位ビット値のいくつかを除去するため周波数領域エンコーダの結果を所定の数によって割り算することにより達成される。
量子化された周波数領域データストリームは次に可変長エンコーダ207へ送られ、そのために、予測されたマクロブロックデータが動きベクトルデータと再結合される。
可変長エンコーダ207は、0または1の系列を検出し、それらのより効率的な形式に符号化することによりビットストリームから冗長性を除去するプロセスを適用する。ホフマンまたはハフマン符号化系列のような可変長符号化系列は、技術的に知られているその他の符号化系列とともに使用される。
図3を参照すると、符号化プロセスの逆、すなわち、MPEGタイプビデオストリームを復号化するプロセスが示されている。MPEGタイプのデコーダは、データ入力300、可変長デコーダ301、逆量子化器303、空間領域エンコーダ305、加算器307、マクロブロック参照画像選択器309、ループ内フィルタ351、後処理フィルタ353、および、画像出力311を備える。
デコーダは、デコーダの種々のコンポーネントを一つに接続する一連の相互接続313、315、317、319、321、323、325および327をさらに備える。
相互接続313は可変長デコーダ301を逆量子化器303に接続する。相互接続319は逆量子化器303を空間領域エンコーダ305に接続する。相互接続321は空間領域エンコーダ305を加算器307に接続する。相互接続315は可変長デコーダをマクロブロック参照画像選択器309に接続する。相互接続317はマクロブロック参照画像選択器309を加算器307に接続する。相互接続325は加算器307の出力をループ内フィルタ351に接続する。相互接続323は内部ループフィルタの出力をマクロブロック選択器309に接続する。相互接続327はループ内フィルタの出力を後処理フィルタ353の入力に接続する。
MPEGタイプの圧縮された信号は可変長デコーダ301へ入力300される。
可変長デコーダ(VLD)は初期データストリームに二つの機能を実行する。第1の機能は可変長符号化アルゴリズムの逆をデータストリームに適用する。
可変長デコーダ301はピクチャタイプを、換言すれば、信号がIピクチャであるか、Pピクチャであるか、または、Bピクチャであるかをさらに決定する。
現在のピクチャがIピクチャであるならば、データのすべてが相互接続313を介して逆量子化器303へ送られる。現在のピクチャがPまたはBピクチャであるならば、残留データが相互接続313を介して逆量子化器303へ送られ、動きベクトルおよびマクロブロックの予測モードが相互接続315を介してマクロブロック選択器309へ送られる。
逆量子化器303は、量子化ユニットに対し逆の手続きを実行し、換言すれば、データストリームは受信された値に使用された所定の数を乗算することにより元のビット長に戻される。量子化プロセス中に最下位ビットから失われた値は復元されない。このデータは相互接続319を介して空間領域変換器305へ送られる。
空間領域エンコーダ305はデータに周波数領域から空間領域への変換を実行し、よって、データを最初に符号化された空間領域へ戻す。知られている空間領域変換には、逆離散コサイン変換が含まれる。
空間領域エンコーダ305からの出力は、最初に符号化されたようなマクロブロックのルマおよびクロマ情報であるが、最初に実行された量子化の値に依存した一部のデータ損失を伴う。イントラ(Iピクチャ)値の場合、データは絶対ルマおよびクロマ値であり、PまたはBピクチャ値の場合、データは相対ルマおよびクロマ値である。
これらの値は相互接続321を介して加算器307の第1の入力へ出力される。
並列データフローパスでは、予測された動きベクトル情報がマクロブロック選択器309へ送られる。このデータは、前に復号化されたIまたはPピクチャに保存されたマッチした要素を特定するため使用される。このマッチした要素は次に相互接続317を介して加算器307の第2の入力へ送られる。
Iピクチャマクロブロックの加算器307は、空間領域変換器305からその加算器へ送られたデータだけを出力する。PまたはBピクチャの加算器307は、選択された予測マクロブロック要素と空間領域変換器305によって出力された残留データの合成された値を出力する。
二つのタイプのフィルタが図3に示された復号化実施形態に表されている。第1のタイプはループ内フィルタ351である。ループ内フィルタはMPEGストリームのタイプによって規定される。よって、たとえば、ある種の標準規格H.263、WMV、Real VideoおよびH.264は、復号化の一部として実施されるデブロッキングフィルタを有する。
一部の標準規格では、ループ内フィルタリングは必要とされず、その場合に、ループ内フィルタはデータバッファとして機能する。
第2のタイプのフィルタは後処理フィルタ353である。後処理フィルタ353はいずれか一つの標準規格によって規定されるのではなく、画質を改善するため様々なフィルタリング機能を実行し得る。これらのフィルタは、デブロッキングフィルタ、デリンギングフィルタ、または、その他の画像強調フィルタ若しくは雑音除去フィルタである。さらに、これらのフィルタは、使用されると、画像蓄積ループの外部に適用される。
技術的に知られているようなデブロッキングフィルタは、ループ内フィルタと後処理フィルタの両方として使用される。フィルタは空間領域で動作する。フィルタは、マクロブロック間の画質が非常に異なるかどうかを決定するため、マクロブロック間の境界を検査する。マクロブロック間の量子化の差はブロック間に境界を生成し、そのため、同じ特徴またはラインがマクロブロック間で連続しない。デブロッキングフィルタは、非連続的な特徴が低周波数または高周波数成分を有するかどうかを検査することによって画像を改良しようとする。その特徴がゆっくり移動し、したがって、低周波数である場合、ライン間の差を平滑化し、マクロブロック間にあまり目に見えないアーティファクトを生成することが可能である。しかし、急速に移動する特徴は、特徴のぼけを生成するので平滑化されない。
デリンギングフィルタは、粗い量子化の影響を低減しようとするさらなる適応フィルタである。このタイプのフィルタは後処理フィルタだけによって使用される。マクロブロックの粗い量子化は大量の高周波情報を除去する。視覚的に、この高周波情報は、明確にされた特徴の付近に中心があるアーティファクトのリングの外観内に見られる。このタイプのアーティファクトは技術的にモスキートノイズとして知られている。このタイプのノイズは、現在のマクロブロックを既に計算されたマクロブロックと比較するデリンギングフィルタの適用によって緩和される。デリンギングフィルタは、ノイズを緩和しようとするため現在のマクロブロック内の画素値をさらに検査する。
よって、イントラピクチャデータと予測ピクチャデータの両方に対し、合成されたときに全体ピクチャを形成する一連のマクロブロックは、加算器307から出力される。イントラピクチャおよびPピクチャは、その後に、保存のため相互接続323を介して送り戻され、引き続く予測ピクチャ再構成のため使用される。
上記の検討から分かるように、データが可変長復号化されると、データパスの間には潜在的なアルゴリズムの分割が存在する。動きベクトル情報と残留データは、加算器/合成器307によって受信されるまでPピクチャおよびBピクチャの再構成の際に相互に作用しない。したがって、データが二つの処理段の間で転送されることを必要とすることなく、これらの二つのデータパスの処理を分離することが可能である。
この動きベクトルと残留復号化の分離は、補間の動作が導入されると、より明らかにされる。動きベクトルは正確な画素値を示さないが、完全な行または列の値から離れる画素値の半分または四分の一のような端数位置を示すので、マクロブロック選択器は画像データの補間または再サンプリングを実行するために必要とされる。この補間プロセスを実行するため、IピクチャまたはPピクチャデータがインポートされ、補間は各補間画像を計算すべく多数の数値計算を実行するために必要とされる。テストでは、汎用プロセッサユニット上でMPEGデータストリームの復号化の動き補償プロセス部分を実行するため使用された時間の割合は全実行時間の40%にまで達する。
二つのタイプのビデオデコーダが本発明に関して記載される。両方のタイプは設定可能なビデオデコーダであり、したがって、様々な符号化されたビデオデータストリームを符号化するため十分にフレキシブルである。
第一に、2個の主要プロセスの分離が2台の別個のデータプロセッサによって実行される。第二に、2台の別個のプロセッサが2台の間の相互接続によって接続される。
図4aを参照すると、第1のタイプのフレキシブルビデオデコーダ499が示されている。第1のタイプは、フレキシブルビデオデコーダ499においてフレキシビリティを可能にするためビデオコプロセッサの挿入を表現する。ビデオデコーダプロセッサとビデオコプロセッサとの間の通信は共通データバスを用いる。
フレキシブルビデオデコーダは、ビデオデコーダプロセッサ(VDP)509、ビデオコプロセッサ(VCP)519、共有メモリ501、共有データバス503、および、一連の相互接続505、507、517を備える。
共有データバス503は、相互接続505を介する共有メモリ501と、相互接続507を介するビデオデコーダプロセッサ(VDP)509と、相互接続517を介するビデオコプロセッサ(VCP)519を相互に接続する。
記載されたすべてのコンポーネントは単一集積回路上に作成される。本発明の一部の実施形態では、しかし、外部入力/出力装置およびデータコントローラのようなさらなるコンポーネントがフレキシブルビデオデコーダに接続されるか、または、フレキシブルビデオデコーダの一部として実施される。
フレキシブルビデオデコーダシステムは共有データバス503上の圧縮されたビデオデータを受信する。データは、図示されない入力/出力装置を介して外部ソースから、または、共有メモリ501からフレキシブルビデオデコーダ499によって受信される。
このデータはビデオデコーダプロセッサ(VDP)509へ送られる。
図5aおよび6aを参照すると、発明を具現化するビデオ復号化プロセッサおよびビデオコプロセッサが示されている。図5aは、図4aに示されたようなビデオ復号化プロセッサVDPの概略図をさらに詳細に示す。ビデオ復号化プロセッサ509は、メモリ管理ユニット403、可変長デコーダ407、逆量子化器411、空間領域エンコーダ415、内部データ相互接続417、外部データ相互接続401、および、相互接続405、409、413を備える。
本発明の一部の実施形態では、ビデオ復号化プロセッサは超長命令語(VLIW)プロセッサ上で実施されることが理解される。このような実施では、上記のデータ相互接続はソフトウェアで制御され実施される。
外部データバス401は外部相互接続507をメモリ管理ユニット403へ接続する。メモリ管理ユニットは相互接続405を介して可変長デコーダ407へさらに接続される。可変長デコーダ407は相互接続409を介して逆量子化器411へ接続される。逆量子化器411は相互接続413を介して空間領域エンコーダ415へ接続される。内部データ相互接続417は可変長デコーダの出力および空間領域エンコーダの出力をメモリ管理ユニット403へ接続する。
メモリ管理ユニット403は、データをバッファリングし、共有データバス503にアクセスするため、バスルーティングおよびアドレッシングシステムとメモリキャッシュとを備える。よって、メモリ管理ユニット403により受信されたデータは処理される前に最初にバッファリングされる。
ビデオ復号化プロセッサがVLIWプロセッサ上で実施される本発明の実施形態では、メモリ管理ユニットは、VLIWプロセッサに属するメモリ管理ユニットであり、命令およびデータキャッシュを格納する。
メモリ管理ユニット403は、ビデオデータのフォーマットを決定するためにビデオ復号化プロセッサ509によって受信されたビデオデータを検出するように構成され、ビデオデータのフォーマットに依存してVDPを設定する。
ビデオ復号化プロセッサがVLIWプロセッサ上で実施される本発明のさらなる実施形態では、受信された圧縮ビデオデータの検出は、VLIWプロセッサ上で動くソフトウェアプロセスによって実行される。VLIWプロセッサはその後にコプロセッサを設定するためにコマンドをビデオコプロセッサへ送信するように構成される。
受信されたデータはその後に可変長復号化のための可変長デコーダ407へ送信される。可変長デコーダ407は、上記されたような方法で符号化されたデータストリームを復号するように構成される。
可変長デコーダは、データタイプおよび符号化フォーマットに依存してデータをセグメント化するようにさらに構成される。復号化されたデータがイントラピクチャの一部であるならば、データは相互接続409を介して逆量子化器へ送られる。復号化されたデータがPまたはBピクチャであるならば、データはその残留データおよび動きベクトルデータ成分にセグメント化される。動きベクトルデータ成分は内部データ相互接続417に出力され、残留データは相互接続409を介して逆量子化器411へ送られる。
逆量子化器411は受信されたデータに逆量子化を実行するように構成される。逆量子化器411は残留データ成分、または、復号化されたマクロブロックデータを受信し、符号化されたデータのフォーマットに依存して逆量子化を実行する。データはその後に相互接続413を介して空間領域エンコーダ415へ送られる。
空間領域エンコーダは空間領域符号化、換言すると、周波数領域から空間領域への変換を実行するように構成される。よって、空間領域エンコーダは受信されたデータのフォーマットに依存して周波数領域から空間領域への変換を実行する。処理されたデータはその後に内部データ相互接続417へ出力される。
したがって、動きベクトルと、PまたはBピクチャの残留データおよびIピクチャの参照データとの両方が内部データ相互接続417を介してメモリ管理ユニット403へ送られ、データは相互接続507および共有データバス503を介して共有メモリ501へ送信される前にバッファリングされる。
データがイントラピクチャであるならば、符号化されたデータは、他のPピクチャおよびBピクチャによって参照されるべきIピクチャの一つとしてメモリに格納される。同様に、データがPピクチャであるならば、符号化された動きベクトルおよび残留データは、Pピクチャとしてメモリに格納され、他のBピクチャまたはPピクチャによって参照される。しかし、データが真の画像を再構成するためにBピクチャの一部であるならば、マクロブロックおよび残留誤差が動きベクトルおよび残留データ値から作成されるべきである。
ビデオコプロセッサ(VCP)519はデータを受信し画像構成を実行するように構成される。図6aは図4aに示されるようなビデオコプロセッサ519の実施形態の概略図である。
ビデオコプロセッサは、メモリ管理ユニット453、予測子コンストラクタ459、外部データ相互接続451、および、内部データ相互接続455を備える。
外部データ相互接続451は相互接続517をメモリ管理ユニット453へ接続する。メモリ管理ユニットは内部データ相互接続を介して予測子コンストラクタ459へ接続される。
メモリ管理ユニット453は、データをバッファリングし、相互接続517を介して共有メモリ501との間でデータを送受信するように構成される。この情報は次に予測子コントラクタによる使用のため内部データ接続455に置かれる。
本発明の一実施形態では、ビデオコプロセッサ519はプログラマブルプロセッサ上で実施される。このような実施形態では、メモリ管理ユニットはプログラマブルプロセッサによって制御される。
メモリ管理ユニット453は受信されたビデオデータのフォーマットを検出するようにさらに構成される。メモリ管理ユニット453は受信されたデータのフォーマットに依存して予測子コンストラクタ459を設定するようにさらに構成される。
予測子コンストラクタ459は内部データ相互接続455からデータを受信し、受信されたデータのフォーマットに依存して動きベクトルデータを処理するように構成される。予測子コンストラクタは、したがって、所要の参照マクロブロックを作成するため、参照データを要求し、受信された参照データに補間を実行することが可能である。
予測子コンストラクタ459は完全予測子マクロブロックを生成するため、残留データと参照データを合成するようにさらに構成される。
図7を参照すると、予測子コンストラクタの概略図が示されている。予測子コンストラクタ459は、アンパッカー683、予測子誤差記憶装置685、加算器/合成器687、予測子フェッチ681、および、予測子補間器689を備える。予測子コンストラクタ459は、入力/出力相互接続671、予測子相互接続673、および、相互接続672、677、675をさらに備える。
ビデオコプロセッサ519がプログラマブルプロセッサ上で実施される本発明の実施形態では、図7を参照して説明したプロセスは、一連のソフトウェア命令または一連のソフトウェア命令とハードウェア実施との組み合わせによって実施される。ソフトウェアプロセスを伴うこのような実施では、用語「相互接続」は、ソフトウェアプロセス間、および、レジスタおよび/または内部メモリ間のデータの転送を組み入れる。
入力/出力相互接続671は、ビデオコプロセッサ内部データ相互接続455を加算器/合成器687、予測子フェッチ681、および、アンパッカー683に接続する。予測子相互接続673はアンパッカーを予測子補間器689および予測子誤差記憶装置685に接続する。相互接続672は予測子フェッチ687を予測子補間器689に接続する。相互接続677は予測子補間器689を加算器/合成器687に接続する。相互接続675は予測子誤差記憶装置685を加算器/合成器687に接続する。
アンパッカー683は、内部データ接続455を介してメモリ管理ユニット453からデータを受信し、残留誤差データから動きベクトルデータを分離するように構成される。残留データは相互接続673を介して予測子誤差記憶装置685へ送られ、動きベクトル予測子データは相互接続673を介して予測子補間器689へ送られる。
予測子補間器689は予測子動きベクトルを受信し、所要の参照マクロブロックデータを計算する。予測子補間器689はその後に相互接続672を介して予測子フェッチ681からこのデータを要求する。
予測子フェッチ681は、共有メモリ501から所要のIまたはPピクチャマクロブロックを要求し、IまたはPピクチャマクロブロックを取り出し、予測子補間器689へ送る。
予測子補間器はビデオデータのフォーマットに依存したコンフィギュレーション情報に基づいて補間を実行するように構成される。処理されたビデオデータは次に相互接続677を介して加算器/合成器687へ送られる。
図12には補間器の実施形態が示されている。補間器は、デュプリケータ1202、水平補間器1203、メモリアレイ、および、垂直補間器を備える。補間器は、入力1201および出力1209と、相互接続1204、1209、1211、1213および1215をさらに備える。
入力1201は相互接続1204を介してデュプリケータ1202に接続される。デュプリケータ1202は相互接続1209を介して水平補間器1203に接続される。水平補間器1203は相互接続1211を介してメモリアレイ1205に接続される。メモリアレイは相互接続1213を介して垂直補間器1207に接続される。垂直補間器は相互接続1215を介して出力に接続される。
入力は補間することが要求される画素データを受信する。この画素情報は水平行毎に補間器へ入力され、画素は各行において最も左側から最も右側へ入力される。画素はその後にデュプリケータへ送られる。
デュプリケータは使用される参照マクロブロックが一部に限り利用可能である場合に使用される。たとえば、一部のビデオ符号化標準規格では、現在のマクロブロックに最も近い参照マクロブロックは参照画像に格納されているような完全マクロブロックではない。たとえば、ピクチャの隅に表示された特徴が後のピクチャまたは前のピクチャ内の画像の中心へ向かって移動するならば、最も近い参照画像は部分特徴を含む参照画像である。このような状況では、完全マクロブロックは部分的に取り出されたマクロブロックから再構成されることが必要である。この再構成は、ビデオ符号化フォーマットに応じて直前の部分マクロブロック画素値を繰り返すデュプリケータによって実行される。
マクロブロックが共有メモリから完全に取り出される場合、デュプリケータは画素データを水平補間器1203へ送る。
水平補間器は画素データを受信し、補間の程度およびビデオストリームのフォーマットに依存して水平補間を実行する。たとえば、半画素補間が必要とされる場合、この半画素補間はサンプル遅延および加算器を使用して実行される。画素データは、サンプル遅延と、加算器の入力の一方との両方に送られる。加算器の第2の入力はサンプル遅延の出力に接続される。よって加算器の出力は現在の画素と前の画素の合計である。2による割り算がその後に平均値を、すなわち、2個の画素の間で補間された値を生成するため実行される。水平方向に補間されたデータは次に、画素が補間された値の行のアレイを形成するようにメモリアレイへ送られる。
メモリアレイが満杯状態になると、すなわち、すべての画素が水平方向に補間されると、メモリアレイは垂直補間器1207へ垂直方向に読み出される。
垂直補間器は垂直面内で補間を実行する能力がある。垂直補間は、たとえば、簡単な半画素補間でもよく、値を作成し平均化するため、水平補間と類似した装置、すなわち、加算器、除算器、および、簡単な遅延素子を備える。
垂直補間器の出力は次に、本発明の実施形態では加算器/合成器687の出力である出力1209へ送られる。
本発明のさらなる実施形態では、水平補間器および垂直補間器は、水平度または垂直度のいずれにおいても補間が必要とされないならば、バイパスされる。補間器のさらなる実施形態は、最終補間段の後に一つの除算段だけを有する。本発明のさらなる実施形態は、最初に垂直方向に画素情報を読み出し、水平補間を実行する前に画素データに垂直補間を実行する。本発明のさらなる実施形態は一つの補間段だけを使用する。このような実施形態では、データは、所要の水平補間または垂直補間を実行するため、1番目の順番の補間段に読み込まれる。補間段はデータをメモリアレイへ出力する。データは次にメモリアレイから読み出され、他の所要の補間を実施するため2番目の異なる順番の同じ補間段へ戻される。
予測子誤差記憶装置685は、予測子誤差データとしても知られるような残留データを格納するように構成され、一方、予測子補間器は動きベクトルデータに補間を実行する。予測子誤差記憶装置は予測子誤差データを相互接続675へ送信する。
加算器/合成器687は、相互接続677および675から、それぞれ、補間された予測子マクロブロックを含む入力および予測子誤差データを含む入力を受信し、完成されたビデオ画像データを生成するためこれらの入力を合成する。画像データはデータ相互接続679を介して内部データ相互接続へ出力される。データは共有メモリへ送られるようにメモリ管理ユニット453へ送られる。
本発明のさらなる実施形態では、ビデオコプロセッサ519はループ内フィルタ461をさらに備える。ループ内フィルタは内部データ相互接続465を介してメモリ管理ユニット453および予測子コンストラクタ459へ接続される。
ループ内フィルタ461は、受信されたビデオデータに関して既に説明されたようなデブロッキングフィルタリングのようなループ内フィルタリングを実行するように構成される。
ループ内フィルタ461はビデオデータフォーマットに依存して設定される。ループ内フィルタは、メモリ管理ユニット453または予測子コンストラクタ459のいずれかから画像データを受信する。ループ内フィルタは、参照画像データと非参照画像データの両方を処理する能力をもつ。ビデオデータフォーマットがループ内フィルタリングの使用を明示的に許可しない場合、インループフィルタリングへ送信された画像データは、フィルタリングの前と後の両方で格納されるので、フィルタリング前のデータがさらなる参照のため使用されるが、フィルタリング後のデータは改良された表示画像のため使用される。
図5bおよび6aを参照すると、本発明の第2の実施形態の概略図が示されている。
ビデオ復号化プロセッサ509は、メモリ管理ユニット403、可変長デコーダ407、逆量子化器411、空間領域エンコーダ415、データパッカー419、内部データ相互接続417、外部データ相互接続401、および、相互接続405、409、413を備える。
メモリ管理ユニット403、可変長デコーダ407、逆量子化器411、および、空間領域エンコーダ415は接続され、図5aに関連して説明したように動作する。内部データ相互接続417は、データパッカー419をメモリ管理ユニット403、可変長デコーダ407および空間領域エンコーダ415へさらに接続する。
データパッカー419は、可変長デコーダ407および空間領域デコーダ415によって出力されたデータを受信し、標準化されたビデオデータパケットを生成するようにデータを処理する。このようなデータパッキングの目的は、ビデオ復号化プロセッサからデータを転送する際に必要とされるメモリ帯域幅を削減することである。後で詳述されるように、予測誤差データとしても知られる残留ピクチャデータは9ビット長である。したがって、7個の残留ピクチャデータ要素を一つの64ビットワードにパックすることが可能である。さらに、ビデオ復号化プロセッサ509がVLIWプロセッサで実施される本発明の実施形態では、データパッカーはソフトウェアプロセスによって実施される。
データパッカーの役目を理解するために、VDP509によって生成され、データパッカー419によって受信されるデータワードについて説明される。このことは図9に示されている。
画像毎にVDPによって生成される第1のワードは、図9aに示されるようにバッファベースアドレス(BBA)ワード901である。バッファベースアドレスワードは、後に続く画像データを収容するベースメモリロケーションを定義する。本発明の実施形態は、(最大で232(4,294,967,296)個のアドレス指定可能なロケーションを提供する)全32ビットワードを使用するか、または、より少ないビット数を使用してアドレス指定可能であるより少ない個数のアドレス指定可能なロケーションを使用する。
バッファベースアドレスワード901に続いて、VDP503はピクチャレベルパラメータヘッダワード(PLPH)903を生成する。ピクチャレベルパラメータヘッダ903は、符号化標準規格ニブル905、ピクチャレベルパラメータビット907、および、パラメータワード長バイト909をさらに含む。
符号化標準規格ニブル905は復号化されている現在のビデオ標準規格を指定する。本発明の一実施形態では、ニブル0000(ここで符号bは参照される数が2進数であることを示す)は、MPEG2ストリームを指示し、ニブル0001はMPEG4ストリーム(動画像専門家グループによって提案され、参照によってここに引用され、DivX符号化方法を含む標準規格)を指定する。ニブル0010は、Real Networksによって提案された独自の符号化システムであるRealVideo9信号を指定する。ニブル0011は、低ビットレート通信上のビデオ符号化のためのH.263ストリームを指定する(H.263は、参照によってここに引用される国際電気通信連合−電気通信ITU−T標準勧告である)。ニブル0100は、ビデオストリームが、参照によってここに引用された、Microsoftによって作成された独自の標準規格であるMicrosoft WindowsMedia Video 9であることを指定する。1000のニブルは、ビデオストリームがH.264標準規格ストリームであることを指定する(H.264は、参照によってここに引用されたITU−T委員会による通信システム勧告上のさらなるビデオ符号化である)。
異なるMPEGタイプの符号化システムはマクロブロックデータに収容されるデータのタイプに変動があるので、符号化標準規格情報が必要とされる。よって、この理由のため、DivXタイプおよびMPEG4タイプは、これらの二つの標準規格のマクロブロックの記法が同一であるので、一つにグループ分けされる。
ピクチャレベルパラメータビット907は、ピクチャレベルパラメータワード911内のあるタイプのデータの有無を予め指定する。
ピクチャレベルパラメータワード長バイト909は、ピクチャレベルパラメータヘッダワード903の後に続くパラメータワードの個数を定義する。ピクチャレベルパラメータワード長がとり得る最大値は2−1(255)である。
よって、ピクチャレベルパラメータヘッダワード903の後に続くのは、いくらかの個数のピクチャレベルパラメータワードであり、そのうちの1個が、たとえば、図9(c)に911によって示されている。ピクチャレベルパラメータは、ピクチャレベルパラメータビット907によって予め指定された変数を定義する。これらの変数は、ピクチャタイプ、ピクチャサイズ、補間モード、フィルタリングタイプ、および、フィルタ変数のような項目を定義する。
ピクチャレベルパラメータが特定の画像に対してセットされると、VDU509によってデータパッカー419へ送られた後に続くデータワードは、画像を構成するため進む多数のマクロブロックを定義する。本発明の実施形態では、データは同時に、そして、以下に説明する順序でマクロブロックを通される。
各マクロブロックを定義する最初のワードはマクロブロックヘッダ第1ワード913である。図9(d)を参照すると、マクロブロックヘッダ第1ワードがさらに詳細に記載されている。
マクロブロックヘッダ第1ワード913は、標準規格固有マクロワード915、E(エンド)フラグ917、L(新スライス)フラグ919、S(スキップされたマクロブロック)フラグ921、I(イントラマクロブロック)フラグ923、および、動きベクトル長ワード925を含む。
標準規格固有パラメータワード915は、(マクロブロック第1ヘッダワードの直ぐ後に続き、図9(e)に関連して示されているような)マクロブロックヘッダ第2ワード927の全体と一緒に、標準規格固有マクロブロック予測モードに関係する情報を構成する。
換言すると、標準規格固有パラメータワード915とマクロブロックヘッダ第2ワード927の両方は、復号化されるマクロブロックのタイプのようなパラメータと、現在のフレーム/フィールドを再構成するために使用する参照画像の個数および方向とを含む。
たとえば、以下の表は、MPEG2方式で符号化されたストリームにおける種々のマクロブロックタイプを表現する種々の予測子符号値を示す。これらの値は符号化方法毎に意味が異なる。
Figure 2007512749
よって、第1のタイプのマクロブロックに対し、処理されるマクロブロックはイントラブロックである。第2および第3のタイプのマクロブロックは、現在処理されているフレームの前または後のいずれかに保存されたフレームを参照させられるフレームベースピクチャを定義する。第4および第5のタイプのマクロブロックは、現在ベースとされるフィールドの前または後のいずれかに保存されフィールドを参照させられるフィールドベースピクチャを定義する。第6のタイプのマクロブロックは、現在処理されているフレームの前と後の両方のフレームを参照させられるフレームベースピクチャを定義する。最後に、第7の画像は現在処理されているフィールドの前と後の両方を参照させられるフィールドベースピクチャを定義する。
4個のフラグビット、すなわち、Iフラグ923、Sフラグ921、Lフラグ919、および、Eフラグ917は、パケットがパッキングプロセスをより効率的に実行することを可能にさせるためマクロブロックヘッダワードに挿入される。
Iフラグ923は、現在のマクロブロックがイントラマクロブロックの一部であるかどうかを指定する。
Sフラグ921は、現在のマクロブロックが符号化中にスキップされたかどうかを指定する。
Sフラグ921は、Iフラグ923がアサートされていないときに限りアサートされ、換言すると、イントラマクロブロックはスキップされないので、2個のフラグは相互に排他的である。
Lフラグ919は、現在のマクロブロックがスライスの最初のマクロブロックであるかどうかを指定する。
Eフラグ917は、現在のマクロブロックが現在のピクチャの最後のマクロブロックであるかどうかを指定する。
動きベクトル長ワード925は、現在のマクロブロック内の動きベクトルの個数を定義する。完成したマクロブロックを生成するため必要とされる動きベクトルの個数は、(動きベクトル長ワードの値)+1に一致する。よって、00000の動きベクトル長ワードは処理すべき1個の動きベクトルが存在することを示し、11111の動きベクトル長ワードは処理すべき32個の動きベクトルが存在することを示す。
マクロブロック内に0個の動きベクトルが存在するという状況は、現在のマクロブロックがイントラ符号化されているので、動きベクトルがないということを示すIフラグ923のアサートによって与えられる。
PまたはBピクチャマクロブロック内の動きベクトルワードの個数は、使用される符号化のタイプに依存する。
たとえば、一例としてMPEG2方式符号化を使用すると、後続の表は、必要とされる動きベクトルの個数を示す。
Figure 2007512749
Lフラグ919がアサートされるならば、マクロブロックヘッダワード913および927の後に続いて送信されたワードはスライスパラメータワードであり、そのうちの1個が図9(f)の929を参照して表示される。Lマクロブロックフラグ1027がアサートされないならば、スライスパラメータは送信されず、パッカーはその代わりに次のデータワードのタイプを出力する。
よって、換言すると、ビデオストリームがH.264方式で符号化されたストリームではなく、復号化されるマクロブロックがストリームの最初のマクロブロックではないならば、スライスパラメータワード929は存在しない。
スライスパラメータワードは、H.264方式で復号化されたストリームの処理に使用される変数を定義する。
アサートされているマクロブロックヘッダ第1ワード913内のIフラグ923によって指定されるように、現在のマクロブロックがイントラマクロブロックであるならば、マクロブロックを再構築するために動きベクトル情報は必要とされず、パッカーは順番に送信するため次の一連のワードへ移動する。現在のマクロブロックがイントラマクロブロックではないならば、VDP509はデータパッカー513に動きベクトル情報を定義する一連のワードを送る。既に検討したように、マクロブロック毎の動きベクトルワードの組成および個数は、使用された符号化スキームのタイプおよび変形に依存する。
水平軸および垂直軸上でマクロブロックを見つけるため、各動きベクトルは水平成分および垂直成分を記述する。さらに、すべての符号化方法において、ルマ動きベクトルとクロマ動きベクトルが別々に送信される。よって、動きベクトル当たり、したがって、(非参照フレーム/フィールドの)マクロブロック当たりの動きベクトルワードの最小個数は、水平ルマ、垂直ルマ、水平クロマ、垂直クロマの4個である。
本発明の実施形態で使用されるような単一の動きベクトルを表現する4個1組の動きベクトルワードは、図9(d)−(j)に示されている。これらの4個の動きベクトルワードは、たとえば、前向き予測タイプまたは後向き予測タイプのマクロブロックが復号化されるMPEG2方式で符号化されたデータストリームで使用される基本的な4個の動きベクトルワードを表現する。
本実施例では、VDPが動きベクトルワードを送る順序は、水平ルマワード、垂直ルマワード、水平クロマワード、垂直クロマワードの順序である。他の実施形態では、その他の組み合わせが可能であり、後述される。
図9(g)を参照して、動きベクトル水平ルマワード931が示されている。動きベクトル水平ルマワード931は、参照ピクチャインデックス値933および水平ルマ成分935を含む。
参照ピクチャインデックス値933は、最大で16個の保存されたピクチャのうちで基本画像を形成するピクチャを指定する4ビット数である。
水平ルマ成分935は、半画素精度において−1024から1023.5までの範囲、または、精度が4分の1画素である場合に−512から511.75までの範囲のオフセットを表現する能力をもつ12ビット数である。したがって、水平ルマ成分は、現在のマクロブロックおよびイントラまたはPマクロブロックからのこれらの数の間のある水平オフセットを記述する。
図9(h)を参照して、動きベクトル垂直ルマワード937が示されている。動きベクトル垂直ルマワード937は、フィールドインジケータビット939および垂直ルマ成分941を含む。
フィールドインジケータビット939は、現在のマクロブロックが1対のフィールドのうちの上側フィールドと下側フィールドのどちらであるかを指定する。現在のマクロブロックがフレームベースである場合、フィールドインジケータは定義されず、0または1である。現在のマクロブロックがフィールドベースである場合、上側フィールドマクロブロックを定義する動きベクトルは第1の値を取り、下側フィールドを定義する動きベクトルは第2の、反対の値を取る。
垂直ルマ成分941は、半画素精度において−1024から1023.5までの範囲、または、精度が4分の1画素である場合に−512から511.75までの範囲のオフセットを表現する能力をもつ12ビット数である。したがって、垂直ルマ成分は、現在のマクロブロックおよびイントラまたはPマクロブロックからのこれらの数の間のある垂直オフセットを記述する。
図9(i)を参照して、動きベクトル水平クロマワード943が示されている。動きベクトル水平クロマワード943は水平クロマ成分945を含む。
水平クロマ成分945は、半画素精度において−1024から1023.5までの範囲、または、精度が4分の1画素である場合に−512から511.75までの範囲のオフセットを表現する能力をもつ12ビット数である。したがって、水平クロマ成分は、現在のマクロブロックおよびイントラまたはPマクロブロックからのこれらの数の間のある水平クロマオフセットを記述する。
図9(j)を参照して、動きベクトル垂直クロマワード947が示されている。動きベクトル垂直クロマワード947は垂直クロマ成分947を含む。
垂直クロマ成分947は、半画素精度において−1024から1023.5までの範囲、または、精度が4分の1画素である場合に−512から511.75までの範囲のオフセットを表現する能力をもつ12ビット数である。したがって、垂直クロマ成分は、現在のマクロブロックおよびイントラまたはPマクロブロックからのこれらの数の間のある垂直クロマオフセットを記述する。
本発明のさらなる実施形態では、参照値およびフィールドインジケータは、4個1組の動きベクトルワードの組毎に2回以上保存される。
既に説明したように、4個1組の動きベクトルワードは、双方向符号化の場合には2個以上のピクチャに対し、同様にインターレース方式画像符号化の場合には2個以上のフレーム/フィールドに対し、推定されたマクロブロックロケーションを決定するためにマクロブロック毎に2組以上必要とされる。
同様に既に記載され、マクロブロックヘッダ第1ワード913および動きベクトル長925によって決定されたように、最大で32個の動きベクトルが単一のマクロブロックに定義される。よって、たとえば、H.264方式では32個の動きベクトルが必要とされるので、128個の動きベクトルワードが単一のマクロブロックのため必要とされる。
マクロブロック毎に2個以上の動きベクトルを定義すべきである場合、本発明の実施形態は、クロマ動きベクトルワードのすべてを出力する前にVDP509がルマ動きベクトルワードのすべてを出力するように構成される。本発明のその他の実施形態は、VDP509が同時に4個1組の各動きベクトルの1組ずつを出力するように構成される。
VDPによって復号化されているマクロブロックがイントラマクロブロックであるならば、VDPによって出力される次のデータワードのタイプは画素データ参照ワードである。図9(k)を参照すると、画素データ参照ワード951がより詳細に記載されている。画素データ参照ワード951は画素参照バイト953を含む。画素参照バイトは、8ビット値としてイントラマクロブロック復号化された画素データである。よって、画素は0から255までの範囲内の値を有する。
VDPによって復号化されているマクロブロックが予測マクロブロックの一部分であるならば、VDPによって出力される次のデータワードのタイプは画素データ残留ワードである。図9(l)を参照すると、画素データ残留ワード955がより詳細に記載されている。画素データ残留ワード955は画素残留値957を含む。画素残留値は既知参照値を基準とする画素残留値である。9ビット値は−256から255までの範囲の相対シフトを与える。
マクロブロックヘッダ第1ワード913内のSフラグ921によって指定されるように、現在のマクロブロックがスキップされないならば、VDP509は、画素データ残留ワード955または画素データ参照ワード951からなる384個のワードを出力する。これは、6個の8×8ブロックを定義し、4個のブロックがルマ値を定義し、2個のブロックがクロマ値を定義する。これらのブロックのそれぞれの画素ワードの順序は1行ずつであり、すなわち、完全な第1の行は、第2の行が左から右へ再び開始するまえに左から右へ出力される。
H.264を除くすべての標準規格によるフレーム画像、および、H.264方式適応フィールド/フレームピクチャ内で符号化されたフレームマクロブロックにおいて、行の順序は、インターレース型パターンを使用して常に送信され、すなわち、最初に画素データの奇数行がVDPによって送信され、次に、画素データの偶数行が送信される。この順序付けは行をデータパッカーへ送信する前にVDPによって実行される。
MPEG2方式またはH.264方式のフィールドピクチャ、および、適応フィールド/フレームピクチャにおけるH.264方式のフィールドマクロブロックでは、各ブロックは1フィールドだけからのデータを収容する。
第2の実施形態で実施されるような図6aを参照すると、ビデオコプロセッサ519は、本発明の第1の実施形態で実施されたビデオコプロセッサ519と同じ構成要素を備える。図7に示されるような第2の実施形態の予測子コンストラクタ459は、予測子コンストラクタ459のアンパッカー683がデータを残留および動きベクトル成分にセグメント化する前にビデオデータパケットをアンパッキングするように構成される点を除いて、第1の実施形態において実施された予測子コンストラクタと同じである。
第2の実施形態の予測子補間器は、既に説明され、図12に示されているように補間エンジンをさらに備える。
したがって、第1のタイプの実施は図4aに示され、最初の二つの実施形態において詳述され、第1の実施形態は図5aと6aの組み合わせによって示され、第2の実施家位置亜は図5bと6aの組み合わせによって示され、図7〜12によってさらに詳述されている。この第1のタイプは、GPUまたは現在のビデオ復号化システムよりフレキシブルであり、かつ、費用効率の高いソリューションを表現する。
しかし、VDPからメモリと、その後のメモリからVCPへの情報のすべての通過に対する依存は、効率的なメモリ帯域幅利用に関して本発明の一部の実施形態にVDP問題を生じさせる。第2の実施形態において詳述されるようなデータパッカーの追加は、VDPへおよびVDPからのメモリ帯域幅の使用の効率を高sめるが、ビデオデータと、場合によってはオーディオデータの処理に関してVDPの使用が非効率的になることを犠牲にしてメモリ帯域幅の使用の効率を高めている。
したがって、図4bを参照して、第2のタイプのフレキシブルビデオデコーダの概略図が示されている。この実施形態は、上記の実施形態の問題の一部を改良することを試みる。
要素は、第2のタイプおよびその実施形態において、図4aに示されるような第1のタイプおよびその実施形態と実質的に同じタスクを実行し、参照図は同じである。
フレキシブルビデオデコーダ509は、ビデオデコーダプロセッサ(VDP)509、ビデオコプロセッサ(VCP)519、共有メモリ501、共有データバス503、および、一連の相互接続505、507、517を備える。フレキシブルビデオデコーダはデータ相互接続511をさらに備える。
共有データバス503は、相互接続505を介して共有メモリ501と、相互接続507を介してビデオデコーダプロセッサ(VDP)509と、相互接続517を介してビデオコプロセッサ(VCP)519と相互接続する。データ相互接続511は、ビデオ復号化プロセッサ509をビデオコプロセッサ519に接続する。
よって、本発明のこの実施形態では、ビデオ復号化プロセッサ509とビデオコプロセッサ519との間に直接接続がある。
この直接接続は「同期型」データ接続または「非同期型」データ接続の使用によって活用される。
図13は、「同期型」データ接続と「非同期型」データ接続との間の相異の概略図である。「同期型」データ接続は、図13aに示されるように、ビデオ復号化プロセッサによって処理されるデータがビデオコプロセッサに送られ、受信されると直ぐに処理されるデータ接続である。これは、ピクチャn、n+1、および、n+2が時刻t、t、および、tにVDPで受信されることによって分かる。各ピクチャは、できるだけ早く、復号化され1351、1355、1359、復号化された情報がVCPへ送られ、ピクチャが再構成される。各ピクチャの再構成は、復号化段より長い時間を要するので、VCPは、VDP1367のストール時間として示されているように、VDP内の処理を遅らせることを直ちに開始し、このストール時間はさらに領域1363および1365によって示されているようにVCPを各ピクチャの再構成の際にオーバーランさせる。よって、換言すると、VDPおよびVCPは、新しいピクチャがピクチャリフレッシュ周期内で表示されるようにデータがVDPとVCPのペアを滑らかに通過するために、同期させられなければならない。
図13bに示されているように「非同期」データ接続では、データは直接データ接続を介して送られるが、ビデオコプロセッサは、ビデオ復号化プロセッサ時間フレーム内のデータを受信し保存することだけが必要とされるので、よりフレキシブルな時間周期に亘ってデータを処理することが可能である。図13bに示されているように、VDPにおける符号化されたデータの受信とピクチャの復号化1301、1307および1315から、VCPにおけるピクチャの再構成1303、1309および1313までに1時間周期の有効な遅延が存在するが、VDPがVCPによる前のピクチャ再構成のクリアを待つようなVDPのストールは存在しない。さらに、VDPはストール状態に保持されないので、周期1305および1311によって示されているように、受信されたピクチャを復号化していない時間周期の間に他のタスクを実行することが可能である。これらのタスクには、オーディオ復号化、または、サブタイトル表示のようなその他のデータに関連したイメージングが含まれる。
図5cおよび図6bを参照して、「同期」データコネクションを利用する本発明の第3の実施形態の概略図が説明される。
図5cに示されるようなVDP509は、メモリ管理ユニット403、可変長デコーダ407、逆量子化器411、空間領域エンコーダ415、内部データ相互接続417、外部データ相互接続401、および、相互接続405、409、413を備える。
外部データバス401は外部相互接続507をメモリ管理ユニット403へ接続する。メモリ管理ユニットは相互接続405を介して可変長デコーダ407へさらに接続される。可変長デコーダ407は相互接続409を介して逆量子化器411へ接続される。逆量子化器411は相互接続413を介して空間領域エンコーダ415へ接続される。
第3の実施形態における内部データ相互接続417は、可変長デコーダの出力および空間領域エンコーダの出力がメモリ管理ユニット403に接続されるのではなく、可変長デコーダおよび空間領域エンコーダの出力を相互接続511へ接続するので、前の実施形態において説明された内部相互接続と相異する。
したがって、VDPは、可変長デコーダ407および空間領域エンコーダ415からの出力がメモリ管理ユニット403へ戻されるのではなく、相互接続511を介してビデオコプロセッサ519へ送られる点を除いて、最初の二つの実施形態において説明されたVDPと同様に機能する。
第3の実施形態のVCP519の概略図は図6bに示されている。第3の実施形態のVCP519は、メモリ管理ユニット453、予測子コンストラクタ459、外部データ相互接続451、ループ内フィルタ619、および、内部データ相互接続455を備える。VCP519のさらなる実施形態はループ内フィルタ619を必要としないことが理解される。
外部データ相互接続451は相互接続517をメモリ管理ユニット453に接続する。メモリ管理ユニットは内部データ相互接続を介して予測子コンストラクタ459およびループ内フィルタ619に接続される。図6bに示されるような第3の実施形態は、内部データ相互接続455がデータ相互接続511に接続され、よって、VDP509をVCP519のコンポーネントに接続するので、第1および第2の実施形態のVCPとは相異する。
図6bに示されるようなVCPが図5cに示されるようなVDPからデータを受信する方法は別として、VCPの機能性は第1の実施形態に記載されたVCPにおいて詳述された機能性と実質的に類似する。したがって、上述され、図7に示されるような予測子コンストラクタと、図12に示されるような補間エンジンは共に第3の実施形態に適用可能である。
このような「同期」データ接続では、VDP509およびVCP519は、マスタ・スレーブ接続として知られているシステムに一緒に接続される。よって、VDP509から送られるデータはVCP519によって受信され、受信されると直ぐに処理される。
本発明の第4の実施形態は、図4bに示されているような実施に組み込まれるような図5dに示されているようなVDPと図6bに示されているようなVCPとの組み合わせによって示されている。
この第4の実施形態では、VDPは、本発明の第2の実施形態において前に詳述された方法と同様に、可変長デコーダ409および空間領域エンコーダ415から送られたデータをデータパケットフォーマットに処理する。VDP509のこのような実施形態の概略図は図5dに示されている。本発明の第4の実施形態で実施されたVDPは、第2の実施形態において前に詳述されたデータパッカーと類似したデータパッカー419が内部データ相互接続417とデータ相互接続511との間に挿入されているので、第3の実施形態で実施されたVDPとは相異する。同様に、VCP予測子コンストラクタ459はアンパッカー683を備える。したがって、図6bに示されるようなVCPは、第2の実施形態において上記されたVCPと同様に、データパッカーによって処理されるようなパケットを受信し、処理されたデータをアンパッキングする。第4の実施形態は、したがって、VDPとVCPとの間にある直接リンクをうまく利用し、このリンクを使用してデータを効率的にパッキングする。
「同期」データ接続の実施形態、すなわち、第3および第4の実施形態は、様々なタイプのビデオデータを復号化するフレキシビリティを持ち続けるが、行単位で符号化されたデータを受信するためでもあり、さらに部分的に処理されたビデオデータを送信するために、VDP509のメモリ管理ユニット403を使用することによって生じる効率の悪さを伴わない。「同期」データ接続の実施形態は、VDP509とVCP519を直接リンクすることにより、比較的厳密なタイミング同期を必要とする。VDPとVCPが両方ともにデータを効率的に処理するため、VDPとVCPの両方は同じレートで各ピクチャを復号化する。もしこの同期が保たれないならば、VDPはVCPが処理を終了し、VDPに追いつくのを待機するか、または、VCPはVDPがマクロブロック若しくはデータパケットを処理し終えるのを待機する。データの内部バッファリングは遅延の一部を回避する。
VDPが受信されたデータストリームのビデオ復号化にとどまらないことを実行することが要求されるならば、「同期」データ接続は、VCPが効率的に使用されないことを意味する。VCPはこの時間中、使用されていない状態のままにされる。
本発明の第5および第6の実施形態によって示されるような「非同期」データ接続の実施形態は、VDP509にさらなる要求を課すことなく、「同期」データ接続によって要求される潜在的な効率の悪さおよび厳しいデータ同期を緩和することを目的とする。
本発明の第5の実施形態は、第2のタイプにおいて示されるような「非同期」データ接続を利用するVDP509およびVCP519の概略図を示す図4b、5cおよび6cを参照して説明される。
第5の実施形態で実施されるようなVDPは、データが可変長デコーダ407および空間領域エンコーダ415の出力から相互接続511へ送られる本発明の第3の実施形態で実施されるVDPと類似している。送られるデータはアンパッキングされ、相互接続を介してVCPへ送信される。
図6cの概略図に示されるようなVCP519は、メモリ管理ユニット453、予測子コンストラクタ459、外部データ相互接続451、ループ内フィルタ619および内部データ相互接続455を備える。VCP519のさらなる実施形態はループ内フィルタ619を必要としないことが理解される。本発明の第5の実施形態に示されるようなVCP519は、VCPがデータパッカーユニット457をさらに備えるので、すべての上記の実施形態のVCP実施において記載されたVCPと相異する。
外部データ相互接続451は相互接続517をメモリ管理ユニット453へ接続する。メモリ管理ユニットは内部データ相互接続を介して予測子コンストラクタ459、ループ内フィルタ619、および、データ相互接続511へ接続される。図6cに示されるような実施形態は、データパッカーユニット457に接続された内部データ相互接続455をさらに有する。
図8を参照して、データパッカー457およびデータパッカーの応用がさらに詳細に説明される。データパッカーは、パケットパッカー801とメモリバッファユニット803と相互接続851、853および855とを備える。第1の相互接続851はデータ相互接続511をパケットパッカー801の入力に接続する。第2の相互接続853はパケットパッカー801の出力をメモリバッファユニット803の入力に接続する。第3の相互接続855はメモリバッファユニット803の出力をデータ相互接続515に接続する。
パケットパッカー801およびメモリバッファユニットの機能性は単一ユニットに結合してもよいことが理解される。
上記のデータワードはデータパッカー457によって受信される。これらのワードは相互接続851を介してパケットパッカー801へ転送される。
パケットパッカー801は、ワードのそれぞれを検査し、検査されたワードに依存してメモリバッファユニット803を制御する。パケットパッカー801およびメモリバッファユニットは、一緒に動作して、VDP509の要素によって作成されたワードを、各パケットが単一ピクチャ(フレームまたはフィールドのいずれか)を復元するために要求されるデータを収容する、一連のデータの自己完結型パケットに変換する。
図10を参照して、データパッカーがVDP509の要素によって作成されたワードを処理するプロセスがさらに詳述される。左側の奇数番号が付されたステップはパケットパッカー801によって実行されるステップであり、右側の偶数番号が付されたステップはメモリバッファユニット803によって実行されるステップである。
別個の画像毎に、画像ループが開始される。パケットパッカー(PP)801によって実行される第1のステップ1001はバッファベースアドレスワード901を読み出す。このバッファベースアドレスワードはメモリバッファユニット(MBU)803へ送られ、後で使用するためステップ1002でMBUに格納される。
次のステップ1003は、パケットパッカー801がピクチャレベルパラメータヘッダワード911を読み込む。このピクチャレベルパラメータヘッダワードは、後続のワードをピクチャレベルパラメータワードとして読むため、残りのピクチャレベルパラメータカウンタをパケットパッカー801にセットするために使用される。ピクチャレベルパラメータワードは、ピクチャレベルパラメータワードのためのメモリアロケーションに関してMBUをセットアップし、マクロブロック内のピクチャレベル符号化標準規格の変動にMBUをセットするためにも使用される。ピクチャレベルパラメータヘッダワードは、さらにMBUに送られ、ステップ1004において格納される。
次のステップ1005は、残りのピクチャレベルパラメータワードカウンタがゼロに達するまで後続のワードを読み込む。これらのワードはMBU803へ送られ、ステップ1006において格納される。
次のステップ1007はマクロブロックループのスタートを形成する。マクロブロックループは、当該画像のための最後のマクロブロックが受信されるまでマクロブロック毎に繰り返される。マクロブロックヘッダワード913、927が最初に読まれる。パケットパッカー801はフラグ設定値917、919、921、923、標準規格固有パラメータワード915、および、動きベクトル長925をコピーし、これらの値に依存して、そのマクロブロックのためのメモリをMBU803に割り当てる。さらに、マクロブロックヘッダワードはMBUへ送られ、ステップ1008においてMBUに格納される。
次のステップ1009は、L(スライス)フラグ919がアサートされたかどうかを決定し、Lフラグがアサートされているならば、パケットパッカー801はスライスパラメータワードを読み込む。これらのワードはその後にMBU803へ送られ、ステップ1010でMBUに格納される。
次のステップ1011は、I(イントラ)フラグ923がアサートされていないかどうかを判定し、Iフラグ923がアサートされていないならば、パケットパッカー801は動きベクトルワード931、937、943、947を読む。読まれるべき動きベクトルワードの個数は、標準規格固有パラメータワード915の値、および、マクロブロックヘッダワード913、927から集められた、上述されているような動きベクトル長値925によって決定される。動きベクトルワードはMBUへ送られ、ステップ1212でMBUに格納される。したがって、このステップは、復号化されているマクロブロックが予測マクロブロックの一部である場合に行われる。
次のステップ1013は、Iフラグ923およびS(スキップ)フラグ921が両方ともにアサートされていないかどうかを決定する。IフラグおよびSフラグが両方ともにアサートされていないならば、パケットパッカー801は画素データ残留ワード955を読む。マクロブロック当たりのワード数は当分野で周知であり、既に説明されている。画素データ残留ワード955はMBUへ送られ、ステップ1214でMBUに格納される。したがって、このステップは、復号化されているマクロブロックが、予測マクロブロックの一部と、さらにスキップされていないマクロブロックの一部の両方である場合に行われる。
次のステップ1015は、Iフラグがアサートされているかどうかを検査する。Iフラグがアサートされているならば、換言すると、マクロブロックがイントラマクロブロックの一部であるならば、パケットパッカー801は画素データ参照ワード951を読む。マクロブロック当たりのワード数は当分野で周知であり、既に説明されている。画素データ参照ワード951はMBUへ送られ、ステップ1216でMBUに格納される。
次のステップ1017は、E(エンド)フラグがアサートされているかどうかを検査する。Eフラグがアサートされていないならば、パケットパッカーはマクロブロックループのこの時点で終了し、プロセスをステップ1007、かつ、次のマクロブロックループのスタートへ戻し、次のマクロブロックからのデータを待つ。
Eフラグがアサートされるならば、ステップ1019が実行される。ステップ1019は画像ループのこの時点で終了し、プロセスをステップ1001、かつ、次のピクチャパケットのスタートへ戻す。同時に、パケットパッカー801は、MBUにステップ1020を実行するよう命令する。このステップは、MBUにメモリ割り込み要求を発行させる。この要求が許可されると、メモリバッファユニットは格納されたパケットをメモリ管理ユニット403へ送り、パケットをバッファベースメモリアドレス901によって供給されたロケーションに格納する共有メモリ501への転送を待つ。最後に、MBUは、次の画像からのデータを待機する初期状態へ復帰する。
図11を参照して、データの最終的なパケットのデータ構造がさらに詳述される。パケット1101は、ピクチャレベルパラメータヘッダワード903と、(ピクチャレベルパラメータワード911を含む)ピクチャレベルパラメータブロック1103と、マクロブロックデータブロック1105とを含む。
マクロブロックデータブロックは、一連のマクロブロックデータ要素1105a〜1105nを含み、各マクロブロックデータ要素が、それぞれ、マクロブロックMB(0)〜MB(N−1)を定義する。マクロブロックデータ要素は図11にもさらに詳細に示されている。
典型的なデータ要素1105nは、記憶の順番に、マクロブロックヘッダ第1ワード913、マクロブロックヘッダ第2ワード927、スライスパラメータブロック1111、動きベクトルブロック1113、および、画素データブロック1115を含む。
スライスパラメータブロック1111は、ステップ1010によって存在するとき、同じブロックに一緒に格納されたスライスパラメータワード929を含む。
動きベクトルブロック1113は、ステップ1012によって存在するとき、動きベクトルワード931、937、943、947を含む。上記のこれらのワードの配置は、ルマ動きベクトルワード931、937が動きベクトルブロック1113の前半部分に現れ、クロマ動きベクトルワード943、947が動きベクトルブロック1113の後半部分に現れるような配置である。
画素データブロック1115は、ステップ1014または1016によって存在するとき、(マクロブロックがイントラマクロブロックの一部の場合に)画素データ参照ワード951、または、(マクロブロックが予測マクロブロックの一部であり、かつ、マクロブロックがスキップされていない場合に)画素データ残留ワード955のいずれかを含む。
データパケットはその後に内部データ相互接続455へ出力される。
「同期」データ接続の実施形態では、本発明の第3および第4の実施形態によって詳述されるように、ビデオデータは、受信されると直ぐに(メモリ管理ユニット453によって、または、アンパッカー683に一時的にバッファリングされる可能性がある)、予測子コンストラクタ459によって処理されるが、「非同期」データ接続の実施形態は、共有メモリ501に格納されるように、処理されたパケットをメモリ管理ユニット453へ送る。
第5の実施形態では、メモリ管理ユニットは、その結果、データパケット457からパケットデータを受信し、データパケットをデータパケットによって指定されるようなメモリロケーションで共有メモリ501へ送信する。
これらのデータパケットは、その後に、VCP519が予測マクロブロックを復元可能であるときに共有メモリ501から読み出される。ピクチャの復元と、必要に応じてその後に続くピクチャのフィルタリングは、本発明の第1の実施形態において既に詳述されたパケット化されたデータの取り扱いと同様に実行される。
よって、このような実施形態は、VDPが共有メモリに格納された一連のピクチャ復号を実行することを可能にさせ、一方、VCPは、前に復号化されフェッチされたピクチャに関して、予測ピクチャ再構成と、可能なループ内フィルタリングとを実行する。したがって、VCPは復号化されたピクチャの処理に「追従」するので、VDPは、オーディオ復号化のようなその他の処理タスクを実行するように設定される。
本発明の第6の実施形態は図4bを参照してさらに説明され、実施されたVDPが図5cによって概略的に示され、実施されたVCPが図6bによって概略的に示される。この第6の実施形態では、VCP519はVDP509からデータを受信し、最初にデータをパケット化することなくデータを共有メモリ501へ送信する。よって、VCPは、VDPで処理されたデータを格納するタスクを実行するが、そのデータをパケット化しない。VCOはさらに、本発明の第1の実施形態において既に説明したようにVDPで処理されたデータをその後に要求する。
よって、第5および第6の実施形態の利点は、VDPとVCPが、他の共有コンポーネントからアクセスできない直接相互接続によってリンクされているので、共有データ転送システムの性能に影響を与える範囲内で、データが直接的に送られることである。直接的に接続されているが、VDPとVCPはピクチャ生成が同期させられたレートでデータを処理するため同期させられないので、ピクチャデータは共有メモリによってバッファリングされる。これは、VCPとVDPの両方に、データをバッチ処理し、複数のピクチャを保存し、その後、VCPの都合のよい時点で予測ピクチャを再構成する能力といった処理能力の点である程度のフレキシビリティを与える。
上記の発明の実施形態の種々な態様を組み合わせる発明のさらなる実施形態が提供されることが理解されるべきである。
本発明の実施形態はMPEGとの関連で記載されている。しかし、本発明の実施例は他のタイプのビデオデータと共に使用され得ることが理解されるべきである。
動画像を形成する一連の画像からの一対のフレームを表す図である。 MPEGタイプのエンコーダの概略図である。 本発明の実施形態が実施されるMPEGタイプのデコーダの概略図である。 ビデオ復号化システムの実施形態の概略図である。 ビデオ復号化システムのさらなる実施形態の概略図である。 図4aおよび4bに示されるようなビデオ復号化プロセッサの第1の配置の概略図である。 図4aおよび4bに示されるようなビデオ復号化プロセッサの第2の配置の概略図である。 図4aおよび4bに示されるようなビデオ復号化プロセッサの第3の配置の概略図である。 図4aおよび4bに示されるようなビデオ復号化プロセッサの第4の配置の概略図である。 図4aおよび4bに示されるようなビデオコプロセッサの第1の配置の概略図である。 図4aおよび4bに示されるようなビデオコプロセッサの第2の配置の概略図である。 図4aおよび4bに示されるようなビデオコプロセッサの第3の配置の概略図である。 図6a、6bおよび6cに示されるような予測子コンストラクタの概略図である。 図5b、5dおよび6cに示されるようなデータパッカーの概略図である。 図8に示されるようなパッカーユニットへ送られる復号化されたデータワードを示す図である。 図8に示されるようなパッカーユニットへ送られる復号化されたデータワードを示す図である。 図8に示されるようなデータパッカーのプロセスを詳述するブロック図である。 図8に示されるようなデータパッカーから出力される画像データのデータ構造を示す図である。 図7に示されるような予測子補間器で使用されるような補間エンジンの概略図である。 図4bに示されるようなビデオ復号化プロセッサとビデオコプロセッサとの間の「同期」接続の実施形態および「非同期」接続の実施形態を説明するタイミングチャートである。

Claims (49)

  1. 第1のビデオデータプロセッサと、
    第2のビデオデータプロセッサと、
    前記第1のビデオデータプロセッサと前記第2のビデオデータプロセッサを接続するコネクションとを備え、
    前記第1のビデオデータプロセッサが符号化されたビデオデータを含む第1の信号を受信し、第2の信号を供給するため第1の信号を処理し、前記第2の信号を出力するように構成され、
    前記第1のビデオデータプロセッサが前記受信された第1の信号の少なくとも一部分に依存して前記第1の信号を処理するように構成され、
    前記第2のビデオデータプロセッサが、前記第2の信号の少なくとも一部分を受信し、第3の信号を供給するため前記第2の信号の前記少なくとも一部分を処理し、前記第3の信号を出力するように構成され、
    前記第2の信号および前記第3の信号が復号化されたビデオ画像ストリームを含み、
    前記第2のビデオデータプロセッサが、前記第2の信号の少なくとも一部分のうちの少なくとも一部分に依存して前記第2の信号の少なくとも一部分を処理するように構成される、
    ビデオ復号化回路。
  2. 前記第1のビデオデータプロセッサが復号化された第1の信号を生成するため前記受信された第1の信号を可変長復号化するように構成される、請求項1に記載の回路。
  3. 前記第1のビデオデータプロセッサが前記第1の信号データを少なくとも第1の部分および第2の部分に分離するように構成され、
    前記第1の部分が画素データと、
    残留データのうちの少なくとも一方を含み、
    前記第2の部分が動きベクトルデータを含む、
    請求項2に記載の回路。
  4. 前記第1のビデオデータプロセッサが前記第1の信号の前記第1の部分を逆量子化するように構成される、請求項3に記載の回路。
  5. 前記第1のビデオデータプロセッサが前記第1の信号の前記第1の部分を空間領域変換するように構成される、請求項3または4に記載の回路。
  6. 前記第1のビデオデータプロセッサが前記第1の信号の空間領域変換および/または逆量子化された前記第1の部分を前記第1の信号の前記第2の部分と組み合わせるように構成される、請求項4または5に記載の回路。
  7. 前記第2のビデオデータプロセッサが前記第2の信号の少なくとも第1の部分を補間するように構成される、請求項1から6のいずれか一項に記載の回路。
  8. 前記第2のビデオデータプロセッサが水平補間と垂直補間のうちの一方を使用して前記第2の信号の少なくとも第1の部分を補間するように構成される、請求項7に記載の回路。
  9. メモリをさらに備え、前記第2のビデオデータプロセッサが前記第2の信号の前記補間された部分を前記メモリに格納するように構成される、請求項8に記載の回路。
  10. 前記第2のビデオデータプロセッサが、水平補間と垂直補間のうちのもう一方を使用して、前記第2の信号の、前記補間され格納された第1の部分を補間するように構成される、請求項8または9に記載の回路。
  11. 前記第2のビデオデータプロセッサが前記第2の信号の前記補間された部分と前記第2の信号のさらなる部分を組み合わせるように構成され、
    前記第2の信号の前記補間された部分が推定されたマクロブロックを含み、前記第2の信号の前記さらなる部分が残留誤差データを含む、
    請求項7から10に記載の回路。
  12. 前記第2のビデオデータプロセッサが前記第2の信号の前記少なくとも一部分と前記第3の信号とのうちの少なくとも一方をフィルタ処理するように構成される、請求項1から11のいずれか一項に記載の回路。
  13. 前記フィルタ処理がデリンギングフィルタとデブロッキングフィルタのうちの少なくとも一方を備える、請求項12に記載の回路。
  14. 前記コネクションが前記第1のビデオデータプロセッサと前記第2のビデオデータプロセッサを接続するバスを備える、請求項1から13のいずれか一項に記載の回路。
  15. 前記バスに接続されたメモリ装置をさらに備える、請求項14に記載の回路。
  16. 前記第1のビデオデータプロセッサが前記バスを介して前記メモリ装置へ前記第2の信号を出力する出力を有する、請求項15に記載の回路。
  17. 前記第2のビデオデータプロセッサが前記バスを介して前記メモリ装置から前記第2の信号の前記部分を受信する入力を有する、請求項16に記載の回路。
  18. 前記コネクションが前記第1のビデオデータプロセッサと前記第2のビデオデータプロセッサを直接的に接続するデータ相互接続を備える、請求項1から17に記載の回路。
  19. 前記第1のビデオデータプロセッサが前記第2の信号を前記データ相互接続へ出力する出力を有する、請求項18に記載の回路。
  20. 前記第2のビデオデータプロセッサが前記データ相互接続から前記第2の信号の前記部分を受信する入力を有する、請求項18および19に記載の回路。
  21. 前記第2のビデオデータプロセッサが、前記データ相互接続から前記第2の信号の前記部分の一部分を受信し、前記バスから前記第2の信号の前記部分の一部分を受信する、請求項15に従属する請求項20に記載の回路。
  22. 前記第1の信号が、
    MPEG2方式で符号化されたビデオストリームと、
    H.263方式で符号化されたビデオストリームと、
    RealVideo9方式で符号化されたビデオストリームと、
    Windows Media Player方式で符号化されたビデオストリームと、
    H.264方式で符号化されたビデオストリームと
    のうちの少なくとも一つである、
    請求項1から21のいずれか一項に記載の回路。
  23. 前記第2の信号が、
    バッファベースアドレスワードと、
    ピクチャレベルパラメータヘッダワードと、
    ピクチャレベルパラメータワードと、
    マクロブロックヘッダワードと、
    スライスパラメータワードと、
    動きベクトル水平ルマワードと、
    動きベクトル垂直ルマワードと、
    動きベクトル水平クロマワードと、
    動きベクトル垂直クロマワードと、
    画素データ参照ワードと、
    画素データ残留ワードと
    のうちの少なくとも一つを含む、
    請求項1から22のいずれか一項に記載の回路。
  24. 前記第1のビデオデータプロセッサがデータパッカーを備える、請求項1から23のいずれか一項に記載の回路。
  25. 前記第2のビデオデータプロセッサがデータパッカーを備える、請求項1から23に記載の回路。
  26. 前記データパッカーが、
    データワードを含む前記第2の信号を受信するように構成された入力と、
    前記データワードを順序付ける手段と、
    順序付けられたデータワードを含むデータパケットを送信するように構成された出力と、
    を備える、
    請求項24または25に記載の回路。
  27. 請求項1から26のいずれか一項に記載の回路を備える、集積回路。
  28. 前記第1のビデオデータプロセッサが超長命令語プロセッサを備える、請求項1から26に記載の回路。
  29. 前記超長命令語プロセッサがメモリに格納された命令のセットにさらに依存して前記第1の信号を処理するために適する、請求項28に記載の回路。
  30. 前記第2のビデオデータプロセッサがプログラマブルプロセッサを備える、請求項1から29に記載の回路。
  31. 符号化されたビデオデータを含む第1の信号を第1のビデオデータプロセッサで受信するステップと、
    前記第1の信号の少なくとも一部分に依存して第2の信号を供給するため前記第1の信号を処理するステップと、
    前記第2の信号を出力するステップと、
    第2のビデオデータプロセッサで前記第2の信号の少なくとも一部分を受信するステップと、
    前記第2の信号の少なくとも一部分に依存して第3の信号を供給するため前記第2の信号の前記少なくとも一部分を処理するステップと、
    前記第3の信号を出力するステップと、
    を備え、
    前記第2の信号と前記第3の信号が復号化されたビデオ画像ストリームを含む、
    ビデオ復号化方法。
  32. 前記第1の信号を処理するステップが前記第1の信号を可変長復号化するステップを備える、請求項31に記載の方法。
  33. 前記第1の信号を処理するステップが前記第1の信号を少なくとも第1の部分と第2の部分に分離するステップを備え、
    前記第1の部分が
    画素データと、
    残留データと
    のうちの少なくとも一方を含み、
    前記第2の部分が動きベクトルデータを含む、
    請求項31および32に記載の方法。
  34. 前記第1の信号を処理するステップが前記第1の信号の前記第1の部分を逆量子化するステップをさらに備える、請求項33に記載の方法。
  35. 前記第1の信号を処理するステップが前記第1の信号の前記第1の部分を空間領域変換するステップをさらに備える、請求項33および34に記載の方法。
  36. 前記第1の信号を処理するステップが前記第1の信号の空間領域変換および/または逆量子化された前記第1の部分を前記第1の信号の前記第2の部分と組み合わせるステップをさらに備える、請求項34または35に記載の方法。
  37. 前記第2の信号の少なくとも一部分を処理するステップが前記第2の信号の少なくとも第1の部分を補間するステップをさらに備える、請求項31から36に記載の方法。
  38. 前記第2の信号の少なくとも第1の部分を補間するステップが水平補間と垂直補間のうちの一方を使用して前記第2の信号の少なくとも第1の部分を補間するステップをさらに備える、請求項37に記載の方法。
  39. 前記補間するステップが前記第2の信号の前記補間された部分を格納するステップをさらに備える、請求項38に記載の方法。
  40. 前記補間するステップが水平補間と垂直補間のうちのもう一方を使用して前記第2の信号の前記補間された部分を補間するステップをさらに備える、請求項38および39に記載の方法。
  41. 前記第2の信号の少なくとも一部分を処理するステップが前記第2の信号の前記補間された部分と前記第2の信号のさらなる部分を組み合わせるステップをさらに備え、
    前記第2の信号の前記補間された部分が推定されたマクロブロックを含み、前記第2の信号の前記さらなる部分が残留誤差データを含む、
    請求項37から40に記載の方法。
  42. 前記第2の信号の少なくとも一部分を処理するステップがフィルタ処理するステップをさらに備え、
    前記フィルタ処理するステップがデリンギングフィルタ処理するステップとデブロッキングフィルタ処理するステップのうちの少なくとも一方を備える、
    請求項31から41に記載の方法。
  43. 前記第2の信号を出力するステップが前記第2の信号をメモリに格納するステップをさらに備える、請求項31から42に記載の方法。
  44. 前記第2の信号の少なくとも一部分を受信するステップが前記第1のビデオデータプロセッサから直接的に前記第2の信号の前記少なくとも一部分を受信するステップを備える、請求項31から43に記載の方法。
  45. 前記第2の信号の少なくとも一部分を受信するステップが前記第1のビデオデータプロセッサから直接的に前記第2の信号の前記少なくとも一部分のうちの第1の部分を受信し、前記メモリから前記第2の信号の前記少なくとも一部分のうちの第2の部分を受信するステップを備える、請求項40に従属する請求項44に記載の方法。
  46. 前記第1の信号を処理するステップが前記第2の信号をパケット化するステップをさらに備える、請求項31から45に記載の方法。
  47. 前記第2の信号を処理するステップが、
    前記第2の信号の前記少なくとも一部分をパケット化するステップと、
    前記第2の信号の前記少なくとも一部分をメモリに格納するステップと、
    前記メモリから前記格納された第2の信号の前記少なくとも一部分を受信するステップと
    をさらに備える、請求項31から45に記載の方法。
  48. 第1のビデオデータプロセッサ(509)と、
    第2のビデオデータプロセッサ(519)と、
    前記第1のビデオデータプロセッサと前記第2のビデオデータプロセッサを接続するコネクションとを備え、
    前記第1のビデオデータプロセッサ(509)が符号化されたビデオデータを含む第1の信号を受信し、第2の信号を供給するため第1の信号を処理し、前記第2の信号を出力するように構成され、
    前記第1のビデオデータプロセッサ(509)が前記受信された第1の信号の少なくとも一部分に依存して前記第1の信号を処理するように構成され、
    前記第2のビデオデータプロセッサ(519)が予測子コンストラクタ419を備え、
    前記第2のビデオデータプロセッサ(519)が、前記第2の信号の少なくとも一部分を受信し、第3の信号を供給するため前記第2の信号の前記少なくとも一部分を処理し、前記第3の信号を出力するように構成され、
    前記第2の信号および前記第3の信号が復号化されたビデオ画像ストリームを含む、
    ビデオ復号化回路であって、
    前記第2の信号の一部分がデータのタイプの変動を定める符号化標準規格情報を含むピクチャレベルパラメータワードを備え、
    前記第2のビデオデータプロセッサ(519)の予測子コンストラクタ(459)が受信されたデータのフォーマットに依存して前記第2の信号の前記少なくとも一部分を処理するように構成されることを特徴とする、
    ビデオ復号化回路。
  49. 符号化されたビデオデータを含む第1の信号を第1のビデオデータプロセッサ(509)で受信するステップと、
    前記第1の信号の少なくとも一部分に依存して第2の信号を供給するため前記第1の信号を処理するステップと、
    前記第2の信号を出力するステップと、
    第2のビデオデータプロセッサ(519)で前記第2の信号の少なくとも一部分を受信するステップと、
    第3の信号を供給するため前記第2のビデオプロセッサ(519)の予測子コンストラクタ(459)内で前記第2の信号の前記少なくとも一部分を処理するステップと、
    前記第3の信号を出力するステップと、
    を備え、
    前記第2の信号と前記第3の信号が復号化されたビデオ画像ストリームを含む、
    ビデオ復号化方法であって、前記第2の信号を出力するステップがデータのタイプの変動を定める符号化標準規格情報を出力するステップを備え、前記第2の信号の前記少なくとも一部分を処理するステップが受信されたビデオデータのフォーマットに依存することを特徴とする、
    ビデオ復号化方法。
JP2006540599A 2003-11-26 2004-11-23 ビデオ復号化装置 Pending JP2007512749A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP03257455A EP1536647A1 (en) 2003-11-26 2003-11-26 A video decoding device
EP03257455.0 2003-11-26
PCT/GB2004/004924 WO2005055611A1 (en) 2003-11-26 2004-11-23 A video decoding device

Publications (1)

Publication Number Publication Date
JP2007512749A true JP2007512749A (ja) 2007-05-17

Family

ID=34443076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006540599A Pending JP2007512749A (ja) 2003-11-26 2004-11-23 ビデオ復号化装置

Country Status (5)

Country Link
US (1) US8902966B2 (ja)
EP (1) EP1536647A1 (ja)
JP (1) JP2007512749A (ja)
CN (1) CN1934866B (ja)
WO (1) WO2005055611A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010150465A1 (ja) * 2009-06-25 2010-12-29 パナソニック株式会社 AV(Audio Visual)データ再生回路、AVデータ再生装置、集積回路およびAVデータ再生方法
KR20170030302A (ko) * 2015-09-09 2017-03-17 삼성전자주식회사 보간 필터의 연산 복잡도를 조절할 수 있는 영상 처리 장치, 영상 보간 방법 및 영상 부호화 방법

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060215754A1 (en) * 2005-03-24 2006-09-28 Intel Corporation Method and apparatus for performing video decoding in a multi-thread environment
US8422546B2 (en) * 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
KR100718135B1 (ko) * 2005-08-24 2007-05-14 삼성전자주식회사 멀티 포맷 코덱을 위한 영상 예측 장치 및 방법과 이를이용한 영상 부호화/복호화 장치 및 방법
US7725516B2 (en) * 2005-10-05 2010-05-25 Qualcomm Incorporated Fast DCT algorithm for DSP with VLIW architecture
US8503536B2 (en) 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US8059721B2 (en) * 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US8130828B2 (en) * 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US8411734B2 (en) 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
US8238424B2 (en) 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
US20080240257A1 (en) * 2007-03-26 2008-10-02 Microsoft Corporation Using quantization bias that accounts for relations between transform bins and quantization bins
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
US8442337B2 (en) 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
US8331438B2 (en) * 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8189933B2 (en) 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US8571347B2 (en) * 2008-09-09 2013-10-29 Marvell World Trade Ltd. Reducing digital image noise
US8611435B2 (en) * 2008-12-22 2013-12-17 Qualcomm, Incorporated Combined scheme for interpolation filtering, in-loop filtering and post-loop filtering in video coding
EP2368337A4 (en) * 2008-12-24 2016-12-28 Commonwealth Australia DIGITAL VIDEO PROTECTION
US8424099B2 (en) 2010-03-04 2013-04-16 Comcast Cable Communications, Llc PC secure video path
CN103026708B (zh) 2010-07-28 2018-01-26 马维尔国际有限公司 数字视频信号中的块压缩赝像检测
KR101763113B1 (ko) * 2010-12-06 2017-08-01 에스케이 텔레콤주식회사 노이즈성분을 위한 공간영역에서의 영상 부호화/복호화 방법 및 장치
US9706214B2 (en) 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
US9635382B2 (en) * 2011-01-07 2017-04-25 Texas Instruments Incorporated Method, system and computer program product for determining a motion vector
US8731067B2 (en) 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
US9762899B2 (en) * 2011-10-04 2017-09-12 Texas Instruments Incorporated Virtual memory access bandwidth verification (VMBV) in video coding
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07177523A (ja) * 1993-08-13 1995-07-14 Texas Instr Inc <Ti> ビデオデータデコーダのアーキテクチャ
JP2003152546A (ja) * 2001-11-15 2003-05-23 Matsushita Electric Ind Co Ltd マルチフォーマットストリーム復号化装置及びマルチフォーマットストリーム送出装置
US20030185306A1 (en) * 2002-04-01 2003-10-02 Macinnis Alexander G. Video decoding system supporting multiple standards
JP2003296724A (ja) * 2002-04-05 2003-10-17 Hitachi Ltd 画像処理システム及びその方式

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5744205A (en) * 1992-02-06 1998-04-28 Toyo Seikan Kaisha, Ltd. Semi-sealed or sealed package for preserving produce composed of resin covered paper
US5699460A (en) 1993-04-27 1997-12-16 Array Microsystems Image compression coprocessor with data flow control and multiple processing units
US5448310A (en) 1993-04-27 1995-09-05 Array Microsystems, Inc. Motion estimation coprocessor
US5812791A (en) 1995-05-10 1998-09-22 Cagent Technologies, Inc. Multiple sequence MPEG decoder
US5774206A (en) 1995-05-10 1998-06-30 Cagent Technologies, Inc. Process for controlling an MPEG decoder
WO1996036178A1 (en) * 1995-05-10 1996-11-14 Cagent Technologies, Inc. Multiple sequence mpeg decoder and process for controlling same
US6415345B1 (en) * 1998-08-03 2002-07-02 Ati Technologies Bus mastering interface control system for transferring multistream data over a host bus
US6263019B1 (en) * 1998-10-09 2001-07-17 Matsushita Electric Industrial Co., Ltd. Variable rate MPEG-2 video syntax processor
US6573846B1 (en) * 2001-12-31 2003-06-03 Apple Computer, Inc. Method and apparatus for variable length decoding and encoding of video streams
US7277587B2 (en) * 2002-04-26 2007-10-02 Sharp Laboratories Of America, Inc. System and method for lossless video coding
US6907079B2 (en) * 2002-05-01 2005-06-14 Thomson Licensing S.A. Deblocking filter conditioned on pixel brightness
AU2003237289A1 (en) * 2002-05-29 2003-12-19 Pixonics, Inc. Maintaining a plurality of codebooks related to a video signal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07177523A (ja) * 1993-08-13 1995-07-14 Texas Instr Inc <Ti> ビデオデータデコーダのアーキテクチャ
JP2003152546A (ja) * 2001-11-15 2003-05-23 Matsushita Electric Ind Co Ltd マルチフォーマットストリーム復号化装置及びマルチフォーマットストリーム送出装置
US20030185306A1 (en) * 2002-04-01 2003-10-02 Macinnis Alexander G. Video decoding system supporting multiple standards
JP2003296724A (ja) * 2002-04-05 2003-10-17 Hitachi Ltd 画像処理システム及びその方式

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010150465A1 (ja) * 2009-06-25 2010-12-29 パナソニック株式会社 AV(Audio Visual)データ再生回路、AVデータ再生装置、集積回路およびAVデータ再生方法
KR20170030302A (ko) * 2015-09-09 2017-03-17 삼성전자주식회사 보간 필터의 연산 복잡도를 조절할 수 있는 영상 처리 장치, 영상 보간 방법 및 영상 부호화 방법
KR102402671B1 (ko) * 2015-09-09 2022-05-26 삼성전자주식회사 보간 필터의 연산 복잡도를 조절할 수 있는 영상 처리 장치, 영상 보간 방법 및 영상 부호화 방법

Also Published As

Publication number Publication date
CN1934866A (zh) 2007-03-21
US8902966B2 (en) 2014-12-02
WO2005055611A1 (en) 2005-06-16
CN1934866B (zh) 2010-11-17
US20070160151A1 (en) 2007-07-12
EP1536647A1 (en) 2005-06-01

Similar Documents

Publication Publication Date Title
US8902966B2 (en) Video decoding device
JP5467141B2 (ja) 下層のフィルタリングを備えたスケーラブルビデオ符号化
US7590059B2 (en) Multistandard video decoder
JP4030591B2 (ja) メモリ管理システムのためのイメージ要素プロセッサ
JPH06326996A (ja) 圧縮されたビデオデータをデコードする方法及び装置
EP1509044A2 (en) Digital video signal processing apparatus
JPH06326615A (ja) 可変長コードのコードストリームをデコードする方法及び装置
US20120263236A1 (en) Image information encoding method and encoder, and image information decoding method and decoder
JPH09214972A (ja) デコーダ回路、mpegビデオストリーム復号化方法およびコンピュータ
AU9761898A (en) Method for converting digital signal and apparatus for converting digital signal
JP2011147189A (ja) トランスコード装置及びトランスコード方法
WO2020263499A1 (en) Adaptive resolution change in video processing
EP1056296A2 (en) Decoding apparatus, decoding method, encoding apparatus, encoding method, image processing system and image processing method
JP2001285863A (ja) 画像情報変換装置及び方法
JP2004336451A (ja) 画像復号ユニットとそれを用いた画像符号化装置及び符号化方法並びに画像復号装置及び復号方法
EP1599049A2 (en) Multistandard video decoder
JPH10271516A (ja) 圧縮符号化装置、符号化方法、復号化装置および復号化方法
JP4010024B2 (ja) 圧縮動画像信号のデコード装置
KR101392349B1 (ko) 비디오 디코딩 방법 및 장치
JP2002218474A (ja) 画像データ符号化装置
JP4201839B2 (ja) メモリを有効利用する画像処理システムのオーバーヘッド・データプロセッサ
US8588305B2 (en) Two-dimensional interpolation architecture for motion compensation in multiple video standards
JP2008136187A (ja) トランスコード装置及びトランスコード方法
US9326004B2 (en) Reduced memory mode video decode
JP2000050272A (ja) 復号化装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110729

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111031

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111108

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120406