JP3123496B2 - 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体 - Google Patents

動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体

Info

Publication number
JP3123496B2
JP3123496B2 JP1471498A JP1471498A JP3123496B2 JP 3123496 B2 JP3123496 B2 JP 3123496B2 JP 1471498 A JP1471498 A JP 1471498A JP 1471498 A JP1471498 A JP 1471498A JP 3123496 B2 JP3123496 B2 JP 3123496B2
Authority
JP
Japan
Prior art keywords
data
area
motion compensation
motion
reference area
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
Application number
JP1471498A
Other languages
English (en)
Other versions
JPH11215509A (ja
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP1471498A priority Critical patent/JP3123496B2/ja
Publication of JPH11215509A publication Critical patent/JPH11215509A/ja
Application granted granted Critical
Publication of JP3123496B2 publication Critical patent/JP3123496B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は動き補償処理方法及
び動き補償処理システム並びにコンピュータによって、
動き推定を用いて圧縮されたビデオの伸長時の動きを補
償する動き補償処理プログラムを記録した記録媒体に関
し、特に圧縮されたビデオ信号の伸長に用いられる動き
補償処理方法及び動き補償処理システム並びにコンピュ
ータによって、動き推定を用いて圧縮されたビデオの伸
長時の動きを補償する動き補償処理プログラムを記録し
た記録媒体に関する。
【0002】
【従来の技術】現在、音声、オーディオ、静止画像、ビ
デオ等をディジタルデータ化し、ハードディスク、磁気
テープ、CD―ROM、DVD―ROM等に記録した
り、ネットワークを通じて転送したり、衛星等により放
送した後、再生することが一般的に行われている。これ
らいわゆる「マルチメディアデータ」は膨大であるた
め、圧縮技術を用いてデータ量を削減して記録、転送を
行い、再生時に圧縮されたデータを伸長することが行わ
れる。
【0003】マルチメディアデータの圧縮時には、圧縮
後のデータの互換性を考慮し、国際標準規格に従ったデ
ータ形式に圧縮することが多い。例えば、単位時間あた
りのデータ量が特に多いビデオの場合、ITU―T勧告
H.261,H.262,H.263あるいはMPEG
(Moving Picture ExpertsGr
oup)に従ったビットストリームデータ形式が採用さ
れることが多い。現在、正式に制定されているMPEG
規格には、VHSビデオ品質の動画像再生が可能なMP
EG―1 Video(ISO/IEC11172−
2,“Information Technology
― Coding of Moving Pictu
res and Associated Audio
forDigital Storage Media
up to 1.5Mbit/s”)、及び放送品質の
動画再生が可能なMPEG―2Video(ISO/I
EC13818―2、“Information Te
chnology―Generic Coding o
f Moving Pictures andAsso
ciated Audio”)がある。
【0004】これらのビデオ圧縮方式は、動き推定(M
otion Estimation;以下MEと呼
ぶ)、離散コサイン変換(Discrete Cosi
ne Transform;以下DCTと呼ぶ)、量子
化(Quantization)、可変長符号化(Va
riable Length Coding)等の操作
により、ビデオのデータ量を数十分の一に圧縮する。圧
縮されたビデオ信号を伸長するときには、これらの逆操
作、すなわち可変長復号(Variable Leng
th Decoding)、逆量子化(Inverse
Quantization)、逆離散コサイン変換
(Inverse Discrete Cosine
Transform;以下IDCTと呼ぶ)、動き補償
(MotionCompensation;以下MCと
呼ぶ)を行う。
【0005】これらのビデオ圧縮規格に従ったビデオの
リアルタイム圧縮及び伸長は、多大な演算量を要求する
ため、従来は専用LSIによって処理されてきた。とこ
ろが最近では、ビデオの伸長処理なら、汎用プロセッサ
上のソフトウェアのみで行えるようになってきている。
これは、RISC(Reduced Instruct
ion Set Computer)技術やスーパース
ケーラ技術等のアーキテクチャ上の工夫や、LSI製造
プロセスの微細化により、汎用プロセッサの基本性能が
上がっていること、及びマルチメディアデータの普及に
伴い、汎用プロセッサの命令セットにマルチメディア演
算に特化した専用命令が取り入れられるようになったこ
とによる。このようなマルチメディア専用命令を備えた
汎用プロセッサを採用した機器、例えばマルチメディア
パーソナルコンピュータでは、伸長ソフトウェアをイン
ストールするだけで圧縮されたビデオ信号のリアルタイ
ム再生(伸長及び表示)が可能になり、ビデオ伸長LS
Iを搭載しなくてもよいため、機器の低価格化を図るこ
とができる。
【0006】一方、家庭用のテレビゲーム機、車載ナビ
ゲーションシステム、インターネット端末等の低価格マ
ルチメディア機器では、現在のところMPEG―1クラ
スのビデオのソフトウェアによる伸長は達成されてい
る。しかし、これらの組込機器に用いられるプロセッサ
及びメモリシステムの性能の低さから、MPEG―2ク
ラスのビデオの完全なソフトウェア伸長は達成されてい
ない。したがって、これらの機器でMPEG―2クラス
のビデオのリアルタイム再生を行うには、処理の一部を
専用ハードウェアで代替せざるをえない。
【0007】特に、ビデオ伸長処理で最も処理量を要す
るMC処理では、プロセッサ外部のメモリシステムを頻
繁にアクセスする。頻繁にアクセスが行われるので、低
価格システムでは外部メモリシステムが遅いため、性能
向上のネックとなる。
【0008】すなわち、パーソナルコンピュータのよう
な高性能システムでは、汎用プロセッサと主記憶である
大容量DRAM(Dynamic Random Ac
cess Memory)の間に2ないし3段の高速な
小容量のバッファメモリ(キャッシュメモリ)を設け、
プロセッサとキャッシュとの間及びキャッシュとDRA
Mとの間を64〜128ビット幅の広いバスで結ぶこと
で、比較的高速かつ大容量のメモリシステムを構成でき
る。しかし、組込機器では、せいぜい1段のキャッシュ
メモリを設け、プロセッサとキャッシュとの間及びキャ
ッシュとDRAMとの間も16〜32ビット幅のバスで
結ぶのみであり、低速なメモリシステムしか得られない
ためである。特に、キャッシュミス発生時、DRAM上
のデータをキャッシュメモリへ転送するための時間が長
く、キャッシュミスペナルティが大きいことが問題とな
る。
【0009】ここで、MC処理についてMPEGビデオ
の例を用いて説明する。MPEGビデオでは、Barr
y G.Haskellらによる“Digital V
ideo: An Introduction to
MPEG―2”,Chapman & Hall,19
97,ISBN0―412―08411―2,第8章
(pp.146―155)に示されているように、動画
を構成する夫々の画像(ピクチャ;Picture)
を、3種類の符号化タイプのうちのいずれかで取扱い圧
縮する。その3種類の符号化タイプとは、Iピクチャ
(Intra Coded Picture)、Pピク
チャ(Predictive Coded Pictu
re)、Bピクチャ(Bidirectionally
Predictive Coded Pictur
e)である。
【0010】これらのうち、Pピクチャ及びBピクチャ
では、MC処理を行って時間的な冗長性を削減すること
ができ、Iピクチャより高い圧縮効率を達成している。
MPEGビデオでは、1枚の画像(ピクチャ)をマクロ
ブロック(Macroblock)と呼ばれる縦16画
素、横16画素の矩形領域に分割して圧縮処理又は伸長
処理を行う。Pピクチャ又はBピクチャ中、MCを行う
かの否かはマクロブロック単位に選択できる。Pピクチ
ャ又はBピクチャの伸長処理において、MCを使用する
マクロブロックを伸長するには、マクロブロックごとに
付加された動きベクトル(Motion Vecto
r)が指し示す参照領域のデータを取得する必要があ
る。
【0011】次に、MPEG―1ビデオ、もしくはMP
EG―2ビデオフレーム構造フレーム予測におけるMC
の例について図7及び図8を使って説明する。
【0012】図7は、1個の動きベクトルを使ったPピ
クチャにおける順方向予測の例である。同図を参照する
と、主記憶60に現在、伸長処理を行っているPピクチ
ャ(現在のピクチャ61)と、MCに用いる参照ピクチ
ャ62が格納されている。参照ピクチャ62には、現在
デコード中のピクチャ61より早く表示するピクチャの
うち、最も近い伸長済みのIピクチャ又はPピクチャを
用いる。現在のピクチャ61の中で、斜線部のマクロブ
ロックの伸長処理を行うものとする。これを現在のマク
ロブロック63とする。このマクロブロック63の動き
ベクトルが圧縮されたビットストリーム中でMV1(6
5)のように与えられた場合、動き補償処理の前半で、
参照ピクチャ62中斜線部で示した縦16画素、横16
画素の矩形領域(参照領域64)のデータを取得し、動
き補償処理の後半の演算に用いる。
【0013】なお、ビットストリーム上は動きベクトル
の差分が記録されている。このため、前回伸長処理を行
ったマクロブロックの動きベクトルと差分から、処理す
るマクロブロックの動きベクトル(MV1)65を復元
する必要がある。
【0014】図8は、2個の動きベクトルを使ったBピ
クチャにおける双方向予測の例である。同図を参照する
と、主記憶60に現在、伸長処理を行っているBピクチ
ャ(現在のピクチャ71)と、MCに用いる第2の参照
ピクチャ72と、第3の参照ピクチャ73とが格納され
ている。
【0015】第2の参照ピクチャ72は、現在デコード
中である現在ピクチャ71より早く表示するピクチャの
うち最も近い伸長済みのIピクチャ又はPピクチャであ
る、また、第3の参照ピクチャ73は、現在デコード中
のピクチャ71の後に表示するピクチャのうち最も近い
伸長済みのIピクチャ又はPピクチャである。
【0016】ここでは、現在のピクチャ71の中で、斜
線部のマクロブロックの伸長処理を行うものとする。こ
れを現在のマクロブロック74とする。このマクロブロ
ック74の動きベクトルが圧縮されたビットストリーム
中で第2の動きベクトル(MV2)77、第3の動きベ
クトル(MV3)78のように与えられた場合、動き補
償処理の前半で、第2の参照ピクチャ72、第3の参照
ピクチャ73中、夫々第2の参照領域75、第3の参照
領域76として斜線部で示した縦16画素、横16画素
の矩形領域のデータを取得して平均し、動き補償処理後
半の演算に用いる。
【0017】動き補償演算の後半では、ビットストリー
ム上で動きベクトルの次に含まれるDCT及び量子化さ
れた誤差情報の係数群を取得し、逆量子化及び逆DCT
演算を行った後、参照領域のデータと加算する。これら
の演算は、縦8画素、横8画素の「ブロック」単位で行
う。現在最もよく用いられている4:2:0フォーマッ
トの場合、1マクロブロックは輝度信号4ブロック、色
差信号2ブロックの計6ブロックから構成される。
【0018】図7、図8のいずれの例でも、参照ピクチ
ャ及び伸長処理中のピクチャは、1枚あたり数百キロバ
イトの大きさがあるため、基本的に主記憶であるDRA
M上に格納され、必要に応じて一部分がデータキャッシ
ュに保持されることになる。MC処理では、すでに説明
したように、頻繁に伸長済みのピクチャへの読出しアク
セスを行うため、データキャッシュミスが頻繁に発生
し、データがキャッシュにロードされるまで汎用プロセ
ッサの処理が中断するため、MPEGビデオの伸長処理
の速度が低下する。特に、汎用プロセッサの性能にくら
べメモリシステムの性能が相対的に低い組込システムで
この性能低下が顕著である。
【0019】組込機器向けプロセッサの中には、低速な
メモリシステムでも充分なメモリアクセス性能が得られ
るような機構を組込んだものがある。例えば第9回IE
EEHot Chipsシンポジウムで発表された日本
電気製のV830R/AVプロセッサ (Tomohi
sa Arai他、“Embedded Multim
edia Superscalar RISC Pro
cessor with Rambus Interf
ace,”IEEE Hot ChipsSympos
ium IX, Aug.1997)は、「プリロー
ド」命令を持ち、将来必要になることがわかっているデ
ータのアドレスをレジスタファイルからデータキャッシ
ュコントローラに与えている。こうすることで、そのデ
ータがデータキャッシュ上になくても、予め主記憶上か
らデータキャッシュ上にデータをロードしておくことが
できるようになっている。
【0020】プリロード動作は、プロセッサの演算命令
の実行と並列に動作するため、データロードに必要な時
間を演算時間の裏に隠すことができ、見かけ上のデータ
ロード時間を短縮できる。言い替えれば、将来のデータ
ロード時に起きるはずのデータキャッシュミスを、事前
に「プリロード」命令が発生させ、データキャッシュミ
スからの回復処理を演算命令と並列に行うことで、デー
タキャッシュミスペナルティを削減できる。
【0021】上述したV830R/AVプロセッサの場
合、1回のキャッシュミス処理で1キャッシュライン分
64バイトのデータを取得するのに、200MHzシス
テムクロック換算で約100クロックもかかる。このた
め、データキャッシュミスペナルティの削減が、全体の
速度向上に貢献する割合は大きい。MPEGビデオ伸長
処理では、メモリアクセスが多いために時間がかかって
いるMC部がプリロード命令により高速化できるため、
MPEGビデオ伸長処理全体も高速化できると期待され
る。
【0022】なお、特開平7−23389号公報にも、
動き補償に関する技術が記載されている。
【0023】
【発明が解決しようとする課題】しかしながら、MPE
Gビデオ伸長処理の特性により、プリロード命令はその
ままではMCの高速化に有効ではない。このことについ
て、以下説明する。
【0024】図7及び図8で示したように、MCで必要
となる参照領域は動きベクトルにより示される。このた
め、参照領域の画素データを読出すためには動きベクト
ルの値が判明している必要がある。ところが、MPEG
ビデオのビットストリーム上において、符号化された動
きベクトルの差分値とDCT係数等のブロック層のデー
タは近接している。したがって、動きベクトルが得られ
てから、動きベクトルが指す参照領域のデータと逆DC
T結果の演算を始めるまでの時間間隔は短い。よって、
動きベクトルが指す参照領域のデータをキャッシュへプ
リロードするための充分な時間がない。このため、プリ
ロード命令はそのままではMCの高速化に有効ではない
のである。
【0025】ところで、あるマクロブロックのMCに必
要なデータを主記憶上から取得するには、最低でも千数
百クロック必要である。例えば、あるマクロブロックの
輝度成分のMC処理のために、図9に示されているよう
に主記憶に割り付けられた縦横16画素の参照領域を読
出すものとする。図9においては、主記憶60中に伸長
処理中の現在のピクチャ81と参照ピクチャ82とが格
納されている。
【0026】同図において、現在のピクチャ81のう
ち、あるマクロブロックである第iのマクロブロック8
3をMC処理している最中において、第iのマクロブロ
ック83の動きベクトル(第iの動きベクトル85)
が、参照ピクチャ82中の斜線で示されている正方形領
域(第iの参照領域84)を指しているものとする。キ
ャッシュライン86の大きさは例えば64バイトであ
り、第iの参照領域84の各行は別のキャッシュライン
に位置している。この例では、参照領域は主記憶上で1
6キャッシュライン相当の領域にわたっている。
【0027】1キャッシュラインの主記憶からキャッシ
ュへのプリロードに100クロックかかるとすると、こ
の参照領域全体の取得には1600クロック必要であ
る。実際には輝度成分のほかに色差成分の取得も必要で
あり、双方向予測の場合には2個の参照領域を取得しな
ければならないため、さらに多数のクロックが必要であ
る。一方、あるマクロブロックの動きベクトルが判明し
てから、そのマクロブロックのMC演算の開始までの時
間は数十クロックでしかない。
【0028】図10に、C言語に似た擬似プログラミン
グ言語で記述された、MPEG―2ビデオのマクロブロ
ック層のシンタックスの一部をISO/IEC1381
8−2から抜き出したものを示す。動きベクトルの伸長
処理motion_vectors()と、DCT係数
の伸長処理等を行うブロック層の処理block()と
の間には、1ビットの固定ビット(マーカビット)の読
み捨て処理marker_bitと符号化ブロックパタ
ーン3から9ビット(4:2:0フォーマットの場合)
の伸長処理coded_block_patter
n()とがあるのみで、これらの処理に必要な時間は通
常数十クロックである。
【0029】ここで、図11に示されているように、あ
るマクロブロック(第iのマクロブロックとする)に対
してMC処理を行う場合を考える。この場合、MC処理
が開始されると(ステップ90)、まず第iのマクロブ
ロックの動きベクトルMV(i)を伸長する(ステップ
91)。この動きベクトル判明後にこの参照領域のアド
レスに対してプリロード命令を発行し(ステップ9
2)、主記憶上にあるこの参照領域のデータをデータキ
ャッシュにロードする動作を他の演算動作と並列に行わ
せても、すぐに参照領域のデータをロード(ステップ9
3)し、それを用いて演算する(ステップ94)。この
ため、プリロード動作と演算が並列に動作するのは、た
かだかこの数十クロックの時間でしかない。よって、最
悪の場合、このマクロブロックの伸長処理に必要な参照
領域の主記憶からの読出しに数千クロックを費やさなけ
ればならない可能性がある点はほとんど改善されないと
いう欠点がある。
【0030】なお、上述した特開平7−23389号公
報においては、キャッシュメモリを用いておらず、上記
欠点を解決することができない。
【0031】本発明は上述した従来技術の欠点を解決す
るためになされたものであり、その目的はMPEGビデ
オの伸長処理で最も処理量の多いMCに必要な時間を短
縮し、MPEGビデオ伸長処理を高速化することのでき
る動き補償処理方法及び動き補償処理システム並びに動
き補償処理プログラムを記録した記録媒体を提供するこ
とである。
【0032】
【課題を解決するための手段】本発明による動き補償処
理方法は、動き推定を用いて圧縮されたビデオの伸長時
の動きを補償する動き補償処理方法であって、マクロブ
ロックの動きベクトル伸長処理後に該動きベクトルが指
す参照領域の次に処理対象となる次処理領域に相当する
データを該データが記憶されている主記憶から読出して
キャッシュメモリに格納する格納ステップと、この格納
ステップと並行して前記参照領域のデータに対する演算
を行う演算ステップとを含むことを特徴とする。
【0033】本発明による動き補償処理システムは、動
き推定を用いて圧縮されたビデオの伸長時の動きを補償
する動き補償処理システムであって、マクロブロックの
動きベクトル伸長処理後に該動きベクトルが指す参照領
域の次に処理対象となる次処理領域に相当するデータを
該データが記憶されている主記憶から読出してキャッシ
ュメモリに格納する格納手段と、この格納ステップと並
行して前記参照領域のデータに対する演算を行う演算手
段とを含むことを特徴とする。
【0034】本発明による記録媒体は、コンピュータに
よって、動き推定を用いて圧縮されたビデオの伸長時の
動きを補償する動き補償処理プログラムを記録した記録
媒体であって、コンピュータを、マクロブロックの動き
ベクトル伸長処理後に該動きベクトルが指す参照領域の
次に処理対象となる次処理領域に相当するデータを該デ
ータが記憶されている主記憶から読出してキャッシュメ
モリに格納する格納手段、この格納ステップと並行して
前記参照領域のデータに対する演算を行う演算手段、と
して機能させるためのプログラムを記録したことを特徴
とする。
【0035】要するに本発明では、プリロード機構を備
えた汎用プロセッサにおいて、MC演算のための主記憶
からのデータ読出し処理をMC処理の演算と並列に行う
ために、そのデータをキャッシュメモリにプリロードす
る。このため、MPEGビデオの伸長処理で最も処理量
の多いMCに必要な時間を短縮し、MPEGビデオ伸長
処理を高速化できるのである。
【0036】すなわち、主記憶中のビットストリームか
ら、あるマクロブロックの動きベクトルを伸長したら、
主記憶中の参照ピクチャ中、その動きベクトルが指す参
照領域(例えば、縦16画素、横16画素)に隣接する
領域のアドレスをデータキャッシュコントローラに与
え、そこのデータをデータキャッシュへプリロードす
る。このマクロブロックの動きベクトルと、次に処理す
るマクロブロックの動きベクトルの差は小さいと仮定す
ると、このプリロードにより、伸長に必要な参照領域の
データが、データキャッシュに存在する確率が高くな
り、データキャッシュミスペナルティを削減できる。
【0037】
【発明の実施の形態】次に、本発明の実施の一形態につ
いて図面を参照して説明する。
【0038】図1は本発明による動き補償処理システム
の実施の一形態を示すブロック図である。同図において
は、本システムを実現するための典型的な組込コンピュ
ータシステムのデータパス系が示されている。
【0039】同図に示されているシステムは、圧縮後の
ビットストリーム、参照ピクチャ及び伸長対象である現
在のピクチャを格納する主記憶12と、汎用プロセッサ
11とから構成されている。
【0040】汎用プロセッサ11は、動き補償演算のた
めのデータすなわち操作対象となるデータを格納するレ
ジスタファイル15と、原則としてレジスタファイル1
5上のデータに対して演算処理を行う演算器16と、主
記憶12の一部のコピーを保持し高速にレジスタファイ
ル15へデータを供給するバッファとして動作するデー
タキャッシュ13と、主記憶12の一部をデータキャッ
シュ13に反映する制御を行うデータキャッシュコント
ローラ14とを含んで構成されている。なお、データキ
ャッシュコントローラ14は、レジスタファイルからア
ドレスを与えることで、主記憶からデータキャッシュへ
データをプリロードできる機能を有するものとする。
【0041】実際のシステムでは、図1に示されている
ブロックの他に、命令実行系の構成ブロックが設けられ
ている。そのブロックは主記憶12上のプログラムを読
出し解読しデータパス系へ指示を与えている。しかし同
ブロックは、簡単化のため省略されている。
【0042】また、実際のシステムでは、キーボードや
ディスプレイコントローラ等各種の入出力機器が設けら
れる。しかしこれらの機器も、簡単化のため省略されて
いる。
【0043】MPEGビデオ伸長では、主記憶12に伸
長ソフトウェア、圧縮されたビットストリーム、伸長さ
れたピクチャ並びに伸長作業に必要な中間データが納め
られる。伸長作業は、必要なデータを主記憶12からレ
ジスタファイル15にロードし、演算器16で適当な演
算を施すことで行う。主記憶12とレジスタファイル1
5の間にはデータキャッシュ13を配置し、主記憶12
とレジスタファイル15間のバッファとして動作させ、
データロードを高速化する。主記憶上12のどのデータ
を、容量が限られたデータキャッシュ13に格納するか
はデータキャッシュコントローラ14が判断する。この
判断は、基本的には自動であるが、後述するプリロード
機構により、ソフトウェアから明示的に指示することも
できる。
【0044】ソフトウェアが主記憶12中のあるアドレ
スのデータをレジスタファイル15にロードしようとし
た場合、そのデータがデータキャッシュ13中に存在す
れば(キャッシュヒット)、オーバーヘッドなしにその
データが高速転送できる。しかし、そのデータがデータ
キャッシュ13中に存在しない場合(キャッシュミ
ス)、主記憶12からデータキャッシュ13への転送が
必要になり、転送が終わるまで汎用プロセッサ11の命
令実行パイプラインの動作が停止するというペナルティ
が発生する。ペナルティの量はプロセッサの種類、主記
憶に使用するメモリの種類ほか多種の要因に依存する。
例えば、Concurrent Rambusメモリを
主記憶に使用する日本電気製V830R/AVプロセッ
サの場合、200MHzシステムクロック換算で約10
0クロックである。
【0045】図1に示す汎用プロセッサ11は、データ
キャッシュミスペナルティを軽減するため、プリロード
機構を備えるものとする。これは、データアクセスを行
う時よりも充分前に、プリロード命令を実行し、レジス
タファイル15からデータキャッシュコントローラ14
にアクセス予定のアドレスを与えれば、データキャッシ
ュ13中にそのアドレスのデータが存在しないとき、す
なわち、そのアドレスへのデータロード命令がデータキ
ャッシュミスを引起こすと予想されるとき、データキャ
ッシュコントローラ14が主記憶からデータキャッシュ
へのデータロードを予め行う機構である。これにより、
データキャッシュミスの発生を減らす、あるいは、デー
タキャッシュミスペナルティの量を減らすことができ、
ソフトウェアの実行を高速化できる。ただし、このプリ
ロード機構が有効に働くためには、プリロード命令から
データアクセス命令までの間にプリロード作業が完了で
きる充分な時間間隔があることが必要である。
【0046】図2には、プリロード機構を有効に用いた
動き補償方法のフローチャートが示されている。同図に
おいて、まず、あるマクロブロック(第iのマクロブロ
ックとする)に対するMC処理を開始する(ステップ2
0)。最初に、第iのマクロブロックに対する動きベク
トルMV(i)を伸長する(ステップ21)。その後、
第iのマクロブロックのMC処理を続ける前に、MV
(i)が示す第iの参照領域そのものではなく、MV
(i)が示す参照領域の右側に隣接する縦16画素、横
16画素の領域に対するプリロード命令を発行する(ス
テップ22)。
【0047】ここで、画素のX座標が増える方向を図中
右方向とした。そして、プリロード命令発行後、第iの
マクロブロックのMC処理を再開する。具体的には第i
の参照領域のデータをレジスタファイル15にロードし
(ステップ23)、MC演算を行う(ステップ24)。
【0048】ピクチャは多数のマクロブロックから構成
されているため、あるマクロブロックの伸長終了後、引
続き右側に隣接するマクロブロックの伸長を行う確率が
高い。そこで、第iのマクロブロックの伸長後、第iの
マクロブロックの右側に隣接する第(i+1)のマクロ
ブロックの伸長を行うと仮定する。
【0049】第(i+1)番目のマクロブロック伸長時
も(ステップ26)、最初に第(i+1)番目のマクロ
ブロックに対する動きベクトルMV(i+1)を伸長す
る(ステップ27)。その後、第(i+1)のマクロブ
ロックのMC処理を続ける前に、MV(i+1)が示す
参照領域そのものではなく、MV(i+1)が示す参照
領域に隣接する縦16画素、横16画素の領域に対する
プリロード命令を発行する。そして、プリロード命令発
行後、第(i+1)のマクロブロックのMC処理を再開
する。具体的には参照領域(i+1)のデータをレジス
タにロードし(ステップ29)、MC演算を行う(ステ
ップ30)。
【0050】本発明の実施例について、図3を参照しな
がら詳細に説明する。
【0051】図3は、図1の主記憶12中に格納された
2枚のピクチャにおいて、マクロブロック、参照領域と
キャッシュラインの関係を示したものである。主記憶1
2中に現在伸長処理を行っているピクチャ41と、その
参照ピクチャ42として用いられているピクチャが確保
されている。現在処理中のピクチャ41のうち、第iの
マクロブロック43と、その右側に隣接する第(i+
1)のマクロブロック44の伸長を連続して行うものと
する。つまり、現在のマクロブロックの右側に、次のマ
クロブロックが位置しているのである。
【0052】第iのマクロブロック43の動きベクトル
MV(i)48は、参照ピクチャ42上のある参照領域
(第iの参照領域45)を指しているものとする。第i
の参照領域45の右に隣接する縦16画素、横16画素
の領域46は、キャッシュライン47の境界をまたいで
いるものとする。
【0053】本発明の実施例の動作について、図2及び
図3を参照しながら詳細に説明する。図2において、最
初に、第iのマクロブロック43の伸長を開始する(ス
テップ20)。まず、動きベクトルMV(i)48のデ
コードを行い(ステップ21)、動きベクトルMV
(i)48が指す参照領域45に隣接する縦16画素、
横16画素の領域46に対し、プリロード命令を発行す
る(ステップ22)。次に、動きベクトルMV(i)4
8が指す参照領域45のデータをレジスタファイル15
にロードし(ステップ23)、演算器16を用いてMC
処理を行う(ステップ24)。
【0054】次に、第iのマクロブロック43の右側に
隣接する第(i+1)のマクロブロック44の伸長処理
を開始する(ステップ26)。まず、動きベクトルMV
(i+1)49のデコードを行い、動きベクトルMV
(i+1)49が指す第(i+1)の参照領域50に隣
接する縦16画素、横16画素の領域に対し、プリロー
ド命令を発行する。次に、動きベクトルMV(i+1)
49が指す第(i+1)の参照領域50のデータをレジ
スタファイル15にロードし(ステップ29)、演算器
16を用いてMC処理を行う(ステップ30)。
【0055】以上のような動作により、第(i+1)の
参照領域50のデータを効率よくデータキャッシュ13
にプリロードし、第(i+1)の参照領域50のデータ
をレジスタファイル15にロードするときのデータキャ
ッシュミス数を大幅に削減することができる。
【0056】自然画像の特性から、空間的に近接したマ
クロブロック間の動きベクトルはよく似ていると期待で
きる。言い替えれば、第iのマクロブロック43の動き
ベクトル48と、第(i+1)のマクロブロック44の
動きベクトル49は同じか非常に近いと期待できる。し
たがって、第iのマクロブロック43の動きベクトル4
8の伸長が完了し、第iのマクロブロック43の伸長処
理で参照される参照領域が45であると判明した時点
で、隣接する第(i+1)のマクロブロック44の伸長
処理で参照される参照領域が46であると仮定してさし
つかえない。
【0057】第(i+1)のマクロブロック44の伸長
処理で、この仮定通り第iの参照領域に隣接する領域4
6のデータが用いられると、この領域のデータはすでに
第iのマクロブロック43の動きベクトル48が判明し
た直後に発行したプリロード命令によって、データキャ
ッシュ13にロードされているため、データキャッシュ
13は必ずヒットし、データキャッシュミスペナルティ
が削減できることになる。
【0058】第iのマクロブロックの動きベクトルの伸
長21と、第(i+1)のマクロブロックのMC演算に
用いるデータのロード29の間には、1マクロブロック
のMC処理が入るため、通常4〜5000クロックの時
間がある。従って、第iのマクロブロックの動きベクト
ルの伸長21の直後に発行した第(i+1)のマクロブ
ロックの参照領域と期待される領域へのプリロード命令
は(22)、第iのマクロブロックのMC処理(23、
24)と並列に動作し、効率よく第(i+1)番目のマ
クロブロックのMC処理(29、30)で用いられると
期待される参照領域のデータをデータキャッシュ13に
格納できる。
【0059】次に、発明の他の実施の形態について図4
を参照して説明する。同図は、参照領域のデータのプリ
ロードのために発行できるプリロード命令の数が比較的
限られる場合のプリロード手法を示したものである。
【0060】プリロード命令の数が限られる場合には、
以下の場合が考えられる。すなわち、データキャッシュ
コントローラ14の設計上の制限から同時に扱えるプリ
ロード命令の数が限られる場合、汎用プロセッサ11が
演算器16として複数のデータを一括して扱える強力な
マルチメディア専用演算器等を搭載しておりMC演算処
理が比較的短時間で終わる場合、汎用プロセッサ11が
搭載するメモリインターフェースが低速でMC演算処理
中にすべての参照領域がプリロードできない場合等であ
る。
【0061】同図では、第iのマクロブロック43の伸
長時に発行するプリロード命令の対象を、第iのマクロ
ブロックの端部を除く中央部分付近のキャッシュライン
に限定している。これは、同時に発行できるプリロード
命令の数が少ないときに、以後第(i+1)のマクロブ
ロック44のMC処理で用いられる可能性が少しでも高
いデータをデータキャッシュ13にプリロードするため
である。
【0062】図5、図6に示されているように、隣接す
るマクロブロック間で動きベクトルが完全に同じではな
くてわずかに変化した場合を考える。図5は、第(i+
1)のマクロブロックの動きベクトルMV(i+1)4
9が、第iのマクロブロック43の動きベクトルMV
(i)48よりわずかに上方を指していた場合を示す図
である。一方、図6は、第(i+1)のマクロブロック
の動きベクトルMV(i+1)49が、第iのマクロブ
ロック43の動きベクトルMV(i)48よりわずかに
下方を指していた場合を示す図である。
【0063】第iのマクロブロック43に隣接する領域
のうち、中央線51をプリロード対象の領域52とすれ
ば、この領域は第(i+1)のマクロブロックのMC処
理で用いられる。しかし、その上下の部分は参照領域と
して用いられなくなる。このため、プリロード命令の対
象を、第iのマクロブロックの端部を除く中央部分付近
のキャッシュラインに限定することができるのである。
【0064】以上のようにプリロードを行えば、MPE
Gビデオ伸長処理で最も処理量が多いMC処理時の参照
領域のデータ読出しを、効率よくMC処理の演算と並列
化でき、MPEGビデオ伸長処理を高速化できる。その
結果、MPEGビデオ伸長専用LSIを用いなくても、
汎用プロセッサと本発明を用いたソフトウェアの組合せ
で、MPEGビデオ伸長処理が実現でき、機器の低価格
化、低電力化、小型化が図れる。
【0065】なお、以上説明した図2〜図6の処理を実
現するためのプログラムを記録した記録媒体を用意し、
これを用いて図1の各部を制御すれば、上述と同様のM
PEGビデオ伸長処理を行うことができることは明白で
ある。この記録媒体には、図1中に示されていない半導
体メモリ、磁気ディスク装置の他、種々の記録媒体を用
いることができる。
【0066】また、同記録媒体に記録されているプログ
ラムによってコンピュータを制御すれば、上述と同様に
MPEGビデオ伸長処理を行うことができることは明白
である。この記録媒体には、半導体メモリ、磁気ディス
ク装置の他、種々の記録媒体を用いることができる。
【0067】請求項の記載に関連して本発明は更に次の
態様をとりうる。
【0068】(1)前記参照領域は、1辺が16画素か
らなる正方形の領域であることを特徴とする請求項1〜
5のいずれかに記載の動き補償処理方法。
【0069】(2)前記参照領域は、1辺が16画素か
らなる正方形の領域であることを特徴とする請求項6〜
10のいずれかに記載の動き補償処理システム。
【0070】(3)前記参照領域は、1辺が16画素か
らなる正方形の領域であることを特徴とする請求項11
〜15のいずれかに記載の記録媒体。
【0071】
【発明の効果】以上説明したように本発明は、MPEG
ビデオ伸長処理で最も処理量が多いMC処理時の参照領
域のデータ読出しを、効率よくMC処理の演算と並列化
し、MPEGビデオ伸長処理を高速化することにより、
MPEGビデオ伸長専用LSIを用いなくても、汎用プ
ロセッサと本発明を用いたソフトウェアの組合せで、M
PEGビデオ伸長処理が実現でき、機器の低価格化、低
電力化、小型化が図れるという効果がある。
【図面の簡単な説明】
【図1】本発明による動き補償処理システムの実施の一
形態の構成を表すブロック図である。
【図2】本発明の動き補償処理方法の実施の一形態にお
けるプリロード手法を示すフローチャートである。
【図3】本発明の動き補償処理方法におけるプリロード
領域を示す図である。
【図4】本発明の動き補償処理方法の実施の他の形態に
おけるプリロード手法を示すフローチャートである。
【図5】図4のプリロード手法による効果を示す図であ
る。
【図6】図4のプリロード手法による効果を示す他の図
である。
【図7】順方向動き補償を説明するための図である。
【図8】双方向動き補償を説明するための図である。
【図9】MPEG−2ビデオマクロブロック層の伸長手
順を示す図である。
【図10】主記憶上での参照領域とキャッシュラインと
の関係を示す図である。
【図11】従来のプリロード手法を示すフローチャート
である。
【符号の説明】
11 汎用プロセッサ 12,60 主記憶 13 データキャッシュ 14 データキャッシュコントローラ 15 レジスタファイル 16 演算器 41,61 現在のピクチャ 42,62,72,73,82 参照ピクチャ 43,83 第iのマクロブロック 44 第(i+1)のマクロブロック 45,84 第iの参照領域 46 第iの参照領域に隣接する領域 47 キャッシュライン 48 動きベクトルMV(i) 49 動きベクトルMV(i+1) 50 第(i+1)の参照領域 51 中央線 52 プリロード領域 63,74 現在のマクロブロック 64,75,76 参照領域 65,77,78 動きベクトル 71、81 現在のピクチャ 85 第iの動きベクトル 86 キャッシュライン
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) H04N 7/24 - 7/68

Claims (15)

    (57)【特許請求の範囲】
  1. 【請求項1】 動き推定を用いて圧縮されたビデオの伸
    長時の動きを補償する動き補償処理方法であって、マク
    ロブロックの動きベクトル伸長処理後に該動きベクトル
    が指す参照領域の次に処理対象となる次処理領域に相当
    するデータを該データが記憶されている主記憶から読出
    してキャッシュメモリに格納する格納ステップと、この
    格納ステップと並行して前記参照領域のデータに対する
    演算を行う演算ステップとを含むことを特徴とする動き
    補償処理方法。
  2. 【請求項2】 前記格納ステップにおいては、前記次処
    理領域に相当するデータについて前記主記憶から前記キ
    ャッシュへのデータのプリロード命令を発行することを
    特徴とする請求項1記載の動き補償処理方法。
  3. 【請求項3】 前記次処理領域は、前記参照領域のデー
    タ量と等しいデータ量を有することを特徴とする請求項
    1又は2記載の動き補償処理方法。
  4. 【請求項4】 前記次処理領域は、前記参照領域のデー
    タ量より小なるデータ量を有することを特徴とする請求
    項1又は2記載の動き補償処理方法。
  5. 【請求項5】 前記次処理領域は、前記参照領域に隣接
    する領域のうち端部を除く中央部分の領域であることを
    特徴とする請求項4記載の動き補償処理方法。
  6. 【請求項6】 動き推定を用いて圧縮されたビデオの伸
    長時の動きを補償する動き補償処理システムであって、
    マクロブロックの動きベクトル伸長処理後に該動きベク
    トルが指す参照領域の次に処理対象となる次処理領域に
    相当するデータを該データが記憶されている主記憶から
    読出してキャッシュメモリに格納する格納手段と、この
    格納ステップと並行して前記参照領域のデータに対する
    演算を行う演算手段とを含むことを特徴とする動き補償
    処理システム。
  7. 【請求項7】 前記格納手段は、前記次処理領域に相当
    するデータについて前記主記憶から前記キャッシュへの
    データのプリロード命令を発行することを特徴とする請
    求項6記載の動き補償処理システム。
  8. 【請求項8】 前記次処理領域は、前記参照領域のデー
    タ量と等しいデータ量を有することを特徴とする請求項
    6又は7記載の動き補償処理システム。
  9. 【請求項9】 前記次処理領域は、前記参照領域のデー
    タ量より小なるデータ量を有することを特徴とする請求
    項6又は7記載の動き補償処理システム。
  10. 【請求項10】 前記次処理領域は、前記参照領域に隣
    接する領域のうち端部を除く中央部分の領域であること
    を特徴とする請求項9記載の動き補償処理システム。
  11. 【請求項11】 コンピュータによって、動き推定を用
    いて圧縮されたビデオの伸長時の動きを補償する動き補
    償処理プログラムを記録した記録媒体であって、コンピ
    ュータを、マクロブロックの動きベクトル伸長処理後に
    該動きベクトルが指す参照領域の次に処理対象となる次
    処理領域に相当するデータを該データが記憶されている
    主記憶から読出してキャッシュメモリに格納する格納手
    段、この格納ステップと並行して前記参照領域のデータ
    に対する演算を行う演算手段、として機能させるための
    プログラムを記録したことを特徴とする記録媒体。
  12. 【請求項12】 前記格納手段は、前記次処理領域に相
    当するデータについて前記主記憶から前記キャッシュへ
    のデータのプリロード命令を発行することを特徴とする
    請求項11記載の記録媒体。
  13. 【請求項13】 前記次処理領域は、前記参照領域のデ
    ータ量と等しいデータ量を有することを特徴とする請求
    項11又は12記載の記録媒体。
  14. 【請求項14】 前記次処理領域は、前記参照領域のデ
    ータ量より小なるデータ量を有することを特徴とする請
    求項11又は12記載の記録媒体。
  15. 【請求項15】 前記次処理領域は、前記参照領域に隣
    接する領域のうち端部を除く中央部分の領域であること
    を特徴とする請求項14記載の記録媒体。
JP1471498A 1998-01-28 1998-01-28 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体 Expired - Fee Related JP3123496B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1471498A JP3123496B2 (ja) 1998-01-28 1998-01-28 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1471498A JP3123496B2 (ja) 1998-01-28 1998-01-28 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体

Publications (2)

Publication Number Publication Date
JPH11215509A JPH11215509A (ja) 1999-08-06
JP3123496B2 true JP3123496B2 (ja) 2001-01-09

Family

ID=11868827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1471498A Expired - Fee Related JP3123496B2 (ja) 1998-01-28 1998-01-28 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体

Country Status (1)

Country Link
JP (1) JP3123496B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05184786A (ja) * 1992-01-10 1993-07-27 Rinnai Corp 衣類乾燥機

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031480A (ja) * 2004-07-16 2006-02-02 Sony Corp 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP4180547B2 (ja) 2004-07-27 2008-11-12 富士通株式会社 動画像データ復号装置、および復号プログラム
US20060050976A1 (en) * 2004-09-09 2006-03-09 Stephen Molloy Caching method and apparatus for video motion compensation
JP4535047B2 (ja) 2006-09-06 2010-09-01 ソニー株式会社 画像データ処理方法、画像データ処理方法のプログラム、画像データ処理方法のプログラムを記録した記録媒体及び画像データ処理装置
WO2008102446A1 (ja) * 2007-02-22 2008-08-28 Fujitsu Limited 動画像符号化装置および動画像符号化方法
JP5115549B2 (ja) * 2007-03-20 2013-01-09 富士通株式会社 デコード方法、デコーダ及びデコード装置
JP5468604B2 (ja) * 2009-05-13 2014-04-09 パナソニック株式会社 画像復号装置、集積回路、画像復号方法及び画像復号システム
JP6438777B2 (ja) 2015-01-30 2018-12-19 ルネサスエレクトロニクス株式会社 画像処理装置および半導体装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05184786A (ja) * 1992-01-10 1993-07-27 Rinnai Corp 衣類乾燥機

Also Published As

Publication number Publication date
JPH11215509A (ja) 1999-08-06

Similar Documents

Publication Publication Date Title
EP0919953B1 (en) Audio-video decoding system
KR100881539B1 (ko) 메모리 직접 접근 방식의 이미지 데이터 구조
US20050152451A1 (en) Video coding system
US20020041626A1 (en) Media processing apparatus which operates at high efficiency
JPH05268590A (ja) 動画像符号化復号化回路
US20070071099A1 (en) External memory device, method of storing image data for the same, and image processor using the method
US7885336B2 (en) Programmable shader-based motion compensation apparatus and method
US7447266B2 (en) Decoding device and decoding program for video image data
US20060133512A1 (en) Video decoder and associated methods of operation
JPH11316708A (ja) データシーケンスの圧縮及び伸長におけるメモリ帯域幅を最小とさせるためのピクチャメモリマッピング
JP2000295616A (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法及びプログラム記録媒体
JP3123496B2 (ja) 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体
EP1147671B1 (en) Method and apparatus for performing motion compensation in a texture mapping engine
JPH10108199A (ja) 画像符号化装置
JP2002218474A (ja) 画像データ符号化装置
JP3322233B2 (ja) 動画像伸長方法及びそれを実行するプログラムを記録した記録媒体
JP5182285B2 (ja) デコード方法及びデコード装置
JP2002112268A (ja) 圧縮画像データ復号装置
JPH1196138A (ja) 逆コサイン変換方法及び逆コサイン変換器
JP3061125B2 (ja) Mpeg画像再生装置およびmpeg画像再生方法
US6873735B1 (en) System for improved efficiency in motion compensated video processing and method thereof
JP3410669B2 (ja) 映像音声処理装置
JPH10145237A (ja) 圧縮データ復号装置
US8948263B2 (en) Read/write separation in video request manager
JPH10111792A (ja) 画像処理装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees