JP2923911B2 - 動き補償加算装置 - Google Patents

動き補償加算装置

Info

Publication number
JP2923911B2
JP2923911B2 JP27766296A JP27766296A JP2923911B2 JP 2923911 B2 JP2923911 B2 JP 2923911B2 JP 27766296 A JP27766296 A JP 27766296A JP 27766296 A JP27766296 A JP 27766296A JP 2923911 B2 JP2923911 B2 JP 2923911B2
Authority
JP
Japan
Prior art keywords
bit
register
value
pixel value
format
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP27766296A
Other languages
English (en)
Other versions
JPH10126790A (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
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP27766296A priority Critical patent/JP2923911B2/ja
Priority to US08/950,834 priority patent/US5907500A/en
Publication of JPH10126790A publication Critical patent/JPH10126790A/ja
Application granted granted Critical
Publication of JP2923911B2 publication Critical patent/JP2923911B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、圧縮された動画像
の伸長に用いられる動き補償加算装置に関する。
【0002】
【従来の技術】現在、パーソナル・コンピュータに代表
される情報機器のマルチメディア化が急速に進んでお
り、従来から存在する文字のみの情報を扱う機能に加
え、音声、オーディオ、静止画像、動画像を扱う機能が
付加されるようになりつつある。これら音声、オーディ
オ、静止画像、動画像などのいわゆるマルチメディア・
データは、そのデータ量が膨大であるため、いったんそ
れぞれの特性に応じた圧縮技術を用いて元データの数十
分の一程度にまで圧縮し、外部記憶装置に格納したり、
通信回線で転送したのち、マルチメディア情報機器上で
伸長処理を行うのが普通である。
【0003】例えば、動画像を圧縮、伸長する場合、い
わゆるMPEG(Moving Pictures E
xperts Group)−1ビデオ規格(ISO/
IEC JTC1 CD 11172,Informa
tion Technology−Coding of
Moving Pictures and Asso
ciated Audio for Digital
Storage Media up to 1.5Mb
it/s;Part2:Coding ofMovin
g Picture Information)に従う
ことが一般的である。MPEG−1ビデオ規格に従って
圧縮されたデータをリアルタイムに伸長し表示するに
は、毎秒数百万回もの演算処理が必要になるため、従来
はMPEG−1ビデオ伸長専用に設計されたカスタムL
SIを用いたり、ビデオ処理専用の特殊な信号処理プロ
セッサを用いたりしてきた。ところが、RISC(Re
duced Instruction Set Com
puter)に代表される新しいマイクロプロセッサ・
アーキテクチャの登場で汎用マイクロプロセッサの性能
が劇的に向上したこと、およびLSIプロセス技術の微
細化、高速化により、積和演算器などの信号処理用ハー
ドウェアを容易に集積できるようになったことにより、
従来から機器に搭載されている汎用マイクロプロセッサ
上のソフトウェアでMPEG−1ビデオ伸長処理も行
い、専用LSIあるいはビデオ信号処理プロセッサを不
要としマルチメディア機器を低価格化しようという流れ
がある。
【0004】このような汎用マイクロプロセッサ上のソ
フトウェアによるビデオ信号処理を目的としたプロセッ
サは、現在いくつか発表されているが、本明細書では、
日経エレクトロニクス第635号(1995年5月8
日)、111から121ページ、およびアイ・イー・イ
ー・イー・マイクロ誌(IEEE MICRO Mag
azine)第15巻、第6号(1995年12月)、
20から29ページに掲載されたNECの32ビット・
マイクロプロセッサV830を対象とし、この32ビッ
ト・マイクロプロセッサV830を用いて、MPEG−
1ビデオ伸長処理において最も演算量が多い動き補償処
理を高速化する方式を説明する。
【0005】以下、32ビット・マイクロプロセッサV
830のアーキテクチャおよび動き補償処理の原理、お
よび従来の動き補償処理について述べる。
【0006】最初に、信号処理機能を強化したマイクロ
プロセッサの例として、NECの32ビット・マイクロ
プロセッサV830のアーキテクチャと命令セットを概
説する。図7は、マイクロプロセッサV830を用いて
動き補償を行うシステムのブロック図である。このシス
テムは、演算処理を行うマイクロプロセッサ11と、プ
ログラム20およびデータ21を記憶するメイン・メモ
リ10とから構成される。マイクプロセッサ11は、メ
インメモリ10上のデータ21を最大32個記憶する3
2ビット長のレジスタ・ファイル12と、レジスタ・フ
ァイル12上のデータに対し演算処理を行う実行ユニッ
ト13とから構成される。実行ユニット13は、加減算
などの算術演算および論理和、論理積、排他的論理和な
どの論理演算を行う算術論理演算器28と、ビット・シ
フト演算を行うシフタ29と、乗算および積和演算を行
う積和演算器30を含む。
【0007】図8はマイクロプロセッサV830の命令
セットの一部を、ロード・ストア命令、算術論理演算命
令、シフト命令に区分して示す。以下、図8に示した命
令を説明する。
【0008】1d.b(Load Byte,バイト長
ロード)命令は、16ビット長即値imm16を32ビ
ット長まで符号拡張した値と、レジスタreg1の32
ビット長データを加算し、32ビット長アドレスを生成
し、生成されたアドレスが示すメイン・メモリ上の位置
から1バイト(8ビット)のデータを読み出し、32ビ
ット長まで符号拡張し、レジスタreg2に格納する。
【0009】1d.h(Load Halfword,
ハーフワード長ロード)命令は、16ビット長即値im
m16を32ビット長まで符号拡張した値と、レジスタ
reg1の32ビット長データを加算し、32ビット長
アドレスを生成し、生成されたアドレスが示すメイン・
メモリ上の位置から1ハーフワード(16ビット)のデ
ータを読み出し、32ビット長まで符号拡張し、レジス
タreg2に格納する。
【0010】1d.w(Load Word,ワード長
ロード)命令は、16ビット長即値imm16を32ビ
ット長まで符号拡張した値と、レジスタreg1の32
ビット長データを加算し、32ビット長アドレスを生成
し、生成されたアドレスが示すメイン・メモリ上の位置
から1ワード(32ビット)のデータを読み出し、レジ
スタreg2に格納する。
【0011】st.b(Store Byte,バイト
長ストア)命令は、16ビット長即値imm16を32
ビット長まで符号拡張した値と、レジスタreg1の3
2ビット長データを加算し、32ビット長アドレスを生
成し、生成されたアドレスが示すメイン・メモリ上の位
置に、レジスタreg2の最下位1バイト(8ビット)
のデータを格納する。
【0012】st.w(Store Word,ワード
長ストア)命令は、16ビット長即値imm16を32
ビット長まで符号拡張した値と、レジスタreg1の3
2ビット長データを加算し、32ビット長アドレスを生
成し、生成されたアドレスが示すメイン・メモリ上の位
置に、レジスタreg2が保持する1ワード(32ビッ
ト)のデータを格納する。
【0013】add(Addition,加算)命令
は、レジスタreg2が保持するワード(32ビット)
長データにレジスタreg1が保持するワード長データ
を加算し、加算結果をレジスタreg2に格納する。
【0014】addi(Add Immediate,
即値加算)命令は、16ビット長即値imm16を32
ビット長まで符号拡張した値をレジスタreg2に格納
する。
【0015】andi(And Immediate,
即値論理積)命令は、16ビット長即値imm16を3
2ビット長まで符号拡張した値とレジスタreg2が保
持するワード長データのビットごとの論理積をとり、そ
の結果をレジスタreg2に格納する。
【0016】mac(Multiply and Ac
cumulate,積和演算)命令は、レジスタreg
2が保持するワード(32ビット)長データにレジスタ
reg1が保持するワード長データを乗算し、この乗算
結果にレジスタreg3が保持するワード長データを加
算し、この加算結果に32ビット長のクリッピング処理
を施し、結果をレジスタreg3に格納する。クリッピ
ング処理とは、加算結果が0x7fffffffより大
きければ加算結果を0x7fffffffで置き換え、
加算結果が0x80000000より小さければ加算結
果を0x80000000で置き換え、加算結果が32
ビット長で表せずオーバフローする時の誤差を低減する
処理である。ここで0xは16進数表現を表す。
【0017】max(Maximum,最大値)命令
は、レジスタreg2が保持するワード(32ビット)
長データとレジスタreg1が保持するワード長データ
を符号つき整数として比較し、大きい方の値をレジスタ
reg3に格納する。
【0018】min(Minimum,最小値)命令
は、レジスタreg2が保持するワード(32ビット)
長データとレジスタreg1が保持するワード長データ
を符号つき整数として比較し、小さい方の値をレジスタ
reg3に格納する。
【0019】mov(move,移動)命令は、レジス
タreg1が保持するワード(32ビット)長データ
か、即値immをワード(32ビット)長まで符号拡張
した値を、レジスタreg2に格納する。
【0020】xor(Exclusive Or,排他
的論理和)命令は、レジスタreg2が保持するワード
(32ビット)長データとレジスタreg1が保持する
ワード長データのビットごとの排他的論理和をとり、そ
の結果をレジスタreg2に格納する。
【0021】shl(Shift Left,論理左シ
フト)命令は、レジスタreg1が保持するワード(3
2ビット)長データを、即値imm5で示されるビット
数だけ論理左シフトした結果の下位32ビットをレジス
タreg1に格納する。
【0022】shr(Shift Right,論理右
シフト)命令は、レジスタreg1が保持するワード
(32ビット)長データを、即値imm5で示されるビ
ット数だけ論理右シフトした結果をレジスタreg1に
格納する。
【0023】shrd3(Shift Right D
oubleword,ダブルワード左シフト)命令は、
レジスタreg3が保持するワード(32ビット)長デ
ータを上位ワード、レジスタreg2が保持するワード
長データを下位ワードとするダブルワード(64ビッ
ト)長データを、レジスタreg3の下位5ビットで示
されるビット数だけ右シフトした結果の下位32ビット
をレジスタreg2に格納する。
【0024】マイクロプロセッサV830はロード・ス
トア・アーキテクチャを採用しており、演算対象(オペ
ランド)はレジスタ・ファイル上に置かれたデータに限
られる。従って、メイン・メモリ上のデータに対して演
算を行うには、演算の前にロード命令によりメイン・メ
モリ上からレジスタ・ファイル上へデータを転送し、演
算を行い、レジスタ・ファイル上に置かれた演算結果を
ストア命令によりメイン・メモリ上に転送するという手
順が必要となる。メインメモリ10上に置かれたプログ
ラム20は、図8に示した命令セットを利用して記述さ
れ、マイクロプロセッサ11の動作を制御する。
【0025】次に、動き補償について、図7と図9を参
照しながら説明する。動き補償処理では、動きベクトル
が指定する符号なし数で表現された予測画像の画素値
と、符号つき数で表現された逆DCT(Discret
e Cosine Transform,離散コサイン
変換)された誤差値を加算し、新しい画像の画素を生成
する。
【0026】実際のシステムでは、図7に示すように、
動き補償処理の入力となる予測画像の画素値22と誤差
値23はメイン・メモリ10上に格納されており、それ
ぞれの場所はマイクロプロセッサ11のレジスタ・ファ
イル12上に置かれたポインタで指示されている。ま
た、動き補償処理の出力である生成画像の画素値24
は、またマイクロプロセッサ11のレジスタ・ファイル
12上に置かれた別のポインタで指示されたメイン・メ
モリ上の場所に格納される。
【0027】1画素分の動き補償処理の詳細を図9を参
照しながら説明する。動き補償処理を開始する前に、予
測画像の画素値へのポインタpp,誤差値へのポインタ
pe,生成画像の画素値へのポインタpcがレジスタ・
ファイル上に格納されているものとする。第1に、予測
画像の画素値へのポインタppを参照して8ビット符号
なし数で表現された予測画像の画素値pおよび、誤差値
へのポインタpcを参照して16ビット符号つき数で表
現された誤差値eをメイン・メモリ上から取得し、レジ
スタ・ファイル12に格納する(201)。第2に、予
測画像の画素値pを符号つき数に変換して誤差値eと加
算し、レジスタ・ファイル上に確保した一時変数tに格
納する(203)。第3に、一時変数tが8ビット符号
なし数で表せる0から255の範囲内に収まるようクリ
ッピング処理を行う(200)。具体的には一時変数t
を255と比較して(203)、一時変数tが255よ
り大きければ一時変数tに255を設定し(204)、
一時変数tを0と比較して(205)、一時変数tが0
より小さければtに0を設定する(206)。
【0028】第4に、一時変数tを生成画像の画素値へ
のポインタpcが示すメイン・メモリ上の場所へ格納す
る(207)。
【0029】最後に従来の動き補償処理方法を図10に
従って説明する。従来の動き補償処理では、メイン・メ
モリに納められた誤差値および予測画像の画素値を取り
出してレジスタに納めて加算したのち、加算とは別の命
令2個を用いクリッピング処理を行う。図10に示す例
では、手順213でレジスタr12に誤差値23(図9
中の誤差値eに相当)を、手順214でレジスタr13
に予測画像の画素値22(図9中の予測画像の画素値p
に相当)を納めて加算(215、図9中の202に相
当)およびクリッピング処理211を行い、r13上に
生成画像の画素値24(図9の生成画像の画素値cに相
当)を得ている。レジスタr13に画素値を納める際
(214)、画素値は8ビット符号なし数であるにもか
かわらず、マイクロプロセッサV830のバイト・ロー
ド(1d.b)命令はロードする数を8ビット符号つき
数とみなし24ビットの符号拡張を行うため、andi
命令により符号拡張部分を常にゼロとする必要がある。
クリッピング処理部211は、アイ・イー・イー・イー
・マイクロ誌(IEEE MICRO Magazin
e)第15巻、第6号(1995年12月)、25ペー
ジ図6(b)に掲載された方式と同様であり、予測画像
の画素値と誤差値の加算命令とは別にマイクロプロセッ
サV830が信号処理のために導入した最小値命令(m
in)および最大値命令(max)を用い、分岐を用い
ることなくクリッピング処理を実現している。すなわ
ち、生成画像の画素値を納めたレジスタr13と、初期
設定210で定数255をロードしたレジスタr10の
うち小さい方を取り(216)、続いて生成画像の画素
値を納めたレジスタr13と、常に0を保持するレジス
タr0のうち大きい方を取る(217)ことにより、生
成画像の画素値を0から255の間に制限するクリッピ
ング処理211を行う。クリッピング処理211が終了
した生成画像の画素値は、レジスタr8が指す位置へ格
納する(219)。
【0030】手順213から218に対する処理が図9
に示した1画素分の処理に相当する。実際にはポインタ
を更新しながら(220)、必要な画素数分の処理を連
続して行う(219)。
【0031】
【発明が解決しようとする課題】図10に示す動き補償
処理では、クリッピング処理のために予測画像の画素値
と誤差値の加算命令とは別に、最小値命令および最大値
命令を必要とするため、1回の動き補償処理に必要な演
算量が増えるという問題がある。動き補償処理は画素ご
とに行われるため、1回の処理は単純であるが非常に多
くの回数呼び出され、MPEGビデオ伸長処理全体のう
ち演算量の相当部分を占める。従って1回の動き補償処
理に必要な命令数がたとえ数命令でも増加することはM
PEGビデオ伸長処理性能を大幅に低下させる。
【0032】本発明の課題は、動き補償処理の高速化が
可能な動き補償加算装置を提供することにある。
【0033】
【課題を解決するための手段】本発明によれば、8ビッ
ト符号なし数で表現された予測画像の画素値を、−12
8オフセットつき8ビット符号つき数にフォーマット変
換する手段と、フォーマット変換後の予測画像の画素値
と符号つき数で表現された誤差値の加算および、加算結
果を8ビット符号付き数で表現可能な範囲へ制限するク
リッピング処理を1個のクリッピング機能つき積和演算
命令により行う手段と、クリッピング処理後の結果をふ
たたび8ビット符号なし数へ逆フォーマット変換する手
段とを有することを特徴とする動き補償加算装置が得ら
れる。
【0034】更に本発明によれば、8ビット符号なし数
で表現された予測画像の画素値を、1個のレジスタに複
数個格納し一括して−128オフセットつき8ビット符
号つき数へのフォーマット変換を行う手段と、フォーマ
ット変換後の予測画像の画素値と符号つき誤差値の加
算、および加算結果を8ビット符号付き数で表現可能な
範囲へ制限するクリッピング処理を、1個のクリッピン
グ機能つき積和演算命令により行う手段と、ふたたび1
個のレジスタにクリッピング処理後の結果を複数個格納
し、一括して8ビット符号なし数へ逆フォーマット変換
する手段とを有することを特徴とする動き補償加算装置
が得られる。
【0035】このように本発明では、クリッピング機能
つき積和演算命令1個を用いて動き補償処理のうち予測
画像の画素値と誤差値の加算およびクリッピング処理を
行う。クリッピング機能つき積和演算命令は、1命令で
乗算、乗算結果と積算値の加算および加算結果に対する
クリッピング処理を行うため、乗算を利用した誤差値と
予測画像の画素値の桁あわせ、乗算結果と積算値の加算
部分を利用した予測画像の画素値と誤差値の加算、加算
結果に対するクリッピング処理を利用した予測画像の画
素値と誤差値の加算値に対するクリッピング処理を1命
令で行え、動き補償処理を高速化する。
【0036】
【発明の実施の形態】次に図1〜図8を参照して、本発
明の実施例について詳細に説明する。
【0037】各実施例の詳細を述べる前に、実施例で用
いるフォーマット変換について説明する。図9に示した
ように予測画像の画素値および生成画像の画素値はとも
に8ビット符号なし数であり、0から255までの25
6種類の値をとる。ここで、8ビット符号なし数である
画素値に対し、最上位ビットを反転するというフォーマ
ット変換を施す。すると、図1に示すように、これらの
値は−128なるオフセットが付加された8ビット符号
つき数に変換され、−128から127までの同じく2
56種類の値をとる。また逆に、−128オフセットつ
き8ビット符号つき数に最上位ビットを反転するという
逆フォーマット変換を施すと、オフセットなし8ビット
符号なし数に変換できる。以後、オフセットを付加した
数では「オフセットつき」と明示することとし、オフセ
ットを付加しない数では特にオフセットの有無を明示し
ない場合がある。
【0038】次にフォーマット変換とクリッピング処理
の関係を考える。図9中に示したオフセットなし符号な
し数に対して、8ビットで表現できる0から255の間
に値を制限するクリッピング処理を行うことは、フォー
マット変換し−128オフセットつき符号つき数に対し
て8ビットで表現できる−128から127の間に値を
制限するクリッピング処理を行うことに対応する。従っ
て、8ビットオフセットなし符号なし数である画素値を
0から255までに制限するクリッピング処理と、画素
値の最上位ビットを反転し8ビット−128オフセット
つき数としてから値を−128から127までに制限す
るクリッピング処理を行い、再び最上位ビットを反転し
8ビットオフセットなし符号なし数に逆フォーマット変
換する処理は同等の結果を生成する。
【0039】図2は図7に示したV830を用いた動き
補償処理システム上で、本発明の第1の実施例を説明し
たものである。図2に示す動き補償処理を開始する前
に、レジスタr6は図9中の誤差値へのポインタpe
に、レジスタr7は予測画像の画素値へのポインタpp
に、レジスタr8は生成画像の画素値へのポインタpc
に相当する値を保持しているものとする。
【0040】まず、初期設定40として、レジスタr1
0およびr11に以後の処理で使う定数をロードする。
レジスタr10には32ビット長レジスタの最上位ビッ
トのみ1になった値をロードし(41)、レジスタr1
1には、2の24乗に等しい値をロードする(42)。
ここで、16進定数は先頭に0xを付加して表現してい
る。
【0041】次に画素ごとの動き補償処理を行う。第1
に、レジスタr6が示すアドレス(図9中のpeに相
当)から、16ビット符号つき数で表される誤差値(図
9中のeに相当)を取り出し、32ビット長に符号拡張
してレジスタr12に格納する(43)。
【0042】第2に、レジスタr7が示すアドレス(図
9中のppに相当)から、8ビット符号なし数で表され
る予測画像の画素値(図9中の予測画像の画素値pに相
当)をロードし、レジスタr13の最上位バイトに転送
する(44)。
【0043】第3に、レジスタr13の最上位ビット
を、レジスタr10上の定数との排他的論理和をとるこ
とで反転する(45)。この操作は、図3に示すよう
に、レジスタr13の最上位バイトに納められた予測画
像の画素値60に、図3に示したフォーマット変換を施
し、−128のオフセットを付加した8ビット符号つき
数62とする。あるいは、8ビット符号なし数である予
測画像の画素値60は、−128オフセットつき8ビッ
ト符号つき数にフォーマット変換され、24ビット左シ
フトされてレジスタr13に格納されている(62)と
みなしてもよい。
【0044】第4に、積和演算(mac)命令により、
いずれも符号つき数である誤差値と−128オフセット
つき予測画像の画素値を加算し、−128から127ま
での範囲にクリッピングを行う(46)。積和演算命令
には、被乗数としてr11に納めた定数0x01000
000、乗数としてレジスタr12に納めた誤差値、加
算値としてレジスタr13に納めた予測画像の画素値を
−128オフセットつき符号つき数にフォーマット変換
し、24ビット左シフトした値を与え、r11×r12
+r13を計算する。すると、図4に示すように、レジ
スタr11(71)との乗算により誤差値70が24ビ
ット左シフトされ(72)、フォーマット変換された予
測画像の画素値73と桁あわせされ加算される(7
4)。積和演算(mac)命令は、加算結果を32ビッ
ト符号つき数で表現できる範囲内、すなわち−(2の3
1乗)から(2の31乗)−1までの範囲内にクリッピ
ングするが(75)、このクリッピング操作は、24ビ
ット左シフトした値74に対しては、−128から12
7の範囲にクリッピングすることに等しい。すなわち積
和演算命令(mac)命令46の結果76は、誤差値と
フォーマット変換した予測画像の画素値を加算し、8ビ
ット符号つき数で表せる−128から127の範囲にク
リッピングした結果(これは生成画像の画素値をフォー
マット変換したもの)を24ビット左シフトした値と同
等である。
【0045】第5にレジスタr13の最上位バイトに納
められた−128オフセットつき符号つき数で表現され
た生成画像の画素値の最上位ビットを、レジスタr10
上の定数と排他的論理和をとることで反転する(4
7)。この操作により、レジスタr13の最上位バイト
に納められた−128オフセットつき符号つき数で表現
された生成画像の画素値は、オフセットなし符号なし数
で表現された生成画像の画素値に逆フォーマット変換さ
れる。
【0046】第6に、r13の最上位バイトに納められ
た生成画像の8ビット符号なし画素値をメインメモリに
格納するため、24ビット右シフトして最下位バイトに
転送し、バイト長ストア(s.t.b)命令を実行する
(48)。
【0047】以上の処理を、必要な画素数の処理が終了
するまで(49)、ポインタを更新(50)しながら繰
り返す。
【0048】以上説明した第1の実施例では、従来の技
術では、予測画像の画素値と誤差値の加算命令、加算結
果のクリッピング処理のため最小値命令および最大値命
令と3命令必要であった処理(図10中、手順215、
216、217)が、積和演算(mac)命令1命令
(図2中、手順46)に削減されている。
【0049】次に、図5に示した本発明の第2の実施例
を説明する。第2の実施例は、第1の実施例をより効率
よく実現する。
【0050】第1の実施例では、予測画像の画素値のレ
ジスタへのロード44、予測画像および生成画像の画素
値のフォーマット変換(45および47)、生成画像の
画素値のメインメモリへのストア48を1画素単位で行
っていた。それに対し、第2の実施例では、1ワード
(32ビット)長のレジスタに4画素をすきまなく詰め
たデータ形式(以下これをパック形式と呼ぶ)単位で予
測画像の画素値のレジスタへのロード、予測画像および
生成画像の画素値のフォーマット変換、生成画像の画素
値のメインメモリへのストアを行い、1画素あたりの演
算量を削減し、動き補償処理を高速化する。
【0051】第2の実施例を図5を用いて説明する。ま
ず、初期設定80とし、レジスタr10、r11および
r15に以後の処理で使う定数をロードする。レジスタ
r10には32ビット長レジスタの各バイトの最上位ビ
ットが1になった値(0x80808080)をロード
し(81)、レジスタr11には第1の実施例と同様に
2の24乗に等しい値をロードし(82)、レジスタr
15には定数8をロードする(83)。
【0052】次にパック形式のデータに対して動き補償
処理を行う。第1に、レジスタr7が示すアドレスか
ら、8ビット符号なし数で表される予測画像の画素値
(図9中のpに相当)を4画素分ロードし、レジスタr
13にパック形式で格納する(84)。
【0053】第2に、レジスタr13にパック形式で納
められた4個の予測画像の各画素値の最上位ビットを、
図6に示すように、レジスタr10上の定数との排他的
論理和をとることで反転する(85)。この操作は、レ
ジスタr13にパック形式で納められた4個の予測画像
の画素値に、図1に示したフォーマット変換を施し、そ
れぞれ−128のオフセットを付加した8ビット符号つ
き数とする。
【0054】第3に、レジスタr6が示すアドレスか
ら、16ビット符号つき数で表される誤差値(図9中の
eに相当)を取り出し、32ビット長に符号拡張してレ
ジスタr12に格納する(86)。
【0055】第4に、レジスタr14の最上位バイト
に、処理対象となる予測画像の画素値を転送する。レジ
スタr13にパック形式で納められた4画素分の画素値
のうち、まず最上位バイトに納められた第4の画素値を
演算対象とするため、レジスタR13をそのままr14
にコピーする(87)。
【0056】第5に、積和演算(mac)命令により、
いずれも符号つき数である誤差値と−128オフセット
つき予測画像の画素値を加算し、−128から127ま
での範囲にクリッピングを行う。積和演算命令には、被
乗数としてr11に納めた定数0x01000000、
乗数としてレジスタr12に納めた誤差値、加算値とし
てレジスタr14の最上位バイトに納めた、予測画像の
画素値を−128オフセットつき符号つき数にフォーマ
ット変換した値を与え、r11×r12+r14を計算
する。すると、図5に示すように、レジスタr11(7
1)との乗算により誤差値70が24ビット左シフトさ
れ72、レジスタr14の最上位バイトに格納したフォ
ーマット変換された予測画像の画素値73と桁あわせさ
れ加算される(74)。積和演算(mac)命令は、加
算結果を32ビット符号つき数で表現できる範囲内、す
なわち−(2の31乗)から(2の31乗)−1までの
範囲内にクリッピングするが、このクリッピング操作
は、24ビット左シフトした値74に対しては、−12
8から127の範囲にクリッピングすることに等しい。
すなわち積和演算命令(mac)命令の結果は、誤差値
とフォーマット変換した予測画像の画素値を加算し、8
ビット符号つき数で表せる−128から127の範囲に
クリッピングした結果(これは生成画像の画素値をフォ
ーマット変換したもの)を24ビット左シフトした値と
同等である。
【0057】第6に、ダブルワード左シフト(shrd
3)命令により、レジスタr14を下位ワード、レジス
タr13上位ワードとして連結した64ビット長の値を
1画素(8ビット)分左シフトし、上位ワードの値をレ
ジスタr13に格納する(89)。このときシフト量
は、レジスタr15にロードした定数82により指定さ
れる。これによりレジスタr13に納められた4個の予
測画像の画素値を1画素分左シフトするとともに、レジ
スタr14の最上位バイトに納められた−128オフセ
ットつき符号つき数の生成画像の画素値をレジスタr1
3の最下位バイトに格納する。
【0058】以上第3から第6の操作(手順86、8
7、88および89)を、レジスタr6を誤差値のサイ
ズ(2バイト)分ずつデクリメント91しながら4回繰
り返す(90)と、第1の操作84においてパック形式
でr13にロードした4画素分のデータに対する動き補
償処理が全て終了し、パック形式でレジスタr13に4
画素分の結果が得られる。ここでレジスタr13に得ら
れた結果は、−128オフセットつき符号つき数で表現
されているので、図1に示した逆フォーマット変換を、
一括して図6に示したようにパック形式のデータに対し
て行い、オフセットなし符号なし数に変換したのち9
2、メインメモリへパック形式のデータ単位でストアす
る(93)。
【0059】レジスタにパック形式で納められた4個の
画素値に対する処理(84から93)を画素値へのポイ
ンタを更新しながら(95)繰り返し(94)、必要な
画素すべてに対する処理を行う。
【0060】以上説明した第2の実施例では、画素ごと
の演算が4命令(86から89)、4画素パック形式デ
ータに対する演算が4命令(84、85、92、9
3)、すなわち1画素あたり5命令で動き補償処理が行
える。これは、従来の動き補償処理(図10)が、画素
あたり7命令必要としていたのに比べ、約40パーセン
ト高速である。動き補償処理は、ビデオ伸長処理におい
て最も多くの演算量を消費するため、本実施例で述べた
高速動き補償加算装置は、ビデオ伸長処理ソフトウェア
の性能向上に大きく貢献する。
【0061】さらに、第2の実施例では、パック形式で
4画素単位で画素値のロードおよびストアを行っている
ため、従来例のように画素ごとにロードおよびストアを
行う場合に比べてメインメモリのアクセス回数が大幅に
減る可能性がある。これは、V830のようなライトバ
ック形式のキャッシュ・メモリを持つマイクロプロセッ
サでは、さらなる高速化につながる。
【0062】なお、本実施例では、便宜上NECの32
ビット・マイクロプロセッサを例にとったが、本高速動
き補償加算装置の適用対象はV830に制限されるもの
ではない。V830以外の、マルチメディア処理対応あ
るいは信号処理対応とうたわれた積和演算命令を持つマ
イクロプロセッサでも同様の手法が適用可能である。マ
イクロプロセッサのレジスタ・ファイルや演算器のビッ
ト幅も、ここで説明した32ビットに制限されるもので
はなく、16ビット、あるいは64ビットのレジスタ・
ファイルあるいは演算器を持つマイクロプロセッサでも
同様の手法が適用可能である。さらに、V830のよう
なレジスタ・ファイル上のデータのみオペランドとする
ロード・ストア・アーキテクチャをとらず、レジスタ・
ファイルとメイン・メモリに置いたオペランド間で直接
演算可能なマイクロプロセッサでも本動き補償加算装置
が適用できる。
【0063】また、マルチメディア処理あるいは信号処
理に特化したSIMD(Single Instruc
tion Multi Data)命令を持つマイクロ
プロセッサ、あるいマルチメディア処理あるいは信号処
理専用に実行ユニットおよびレジスタ・ファイルを持つ
マイクロプロセッサでも本動き補償加算装置を適用でき
る。
【0064】
【発明の効果】本発明の効果は、動き補償に必要な演算
量を大幅に削減できる点にある。従来例では、加算20
2およびクリッピング処理200に3命令(215、2
16、217)必要としていたが、第1の実施例、第2
の実施例とも、これを積和演算命令1命令で置き換える
からである。
【図面の簡単な説明】
【図1】本発明を説明するためのフォーマット変換時の
入出力間の関係を示す図である。
【図2】本発明の第1の実施例を示すフロー・チャート
である。
【図3】本発明の第1の実施例におけるフォーマット変
換の適用範囲を説明するための図である。
【図4】本発明の第1の実施例における積和演算命令の
入出力のビット位置関係を説明するための図である。
【図5】本発明の第2の実施例を示すフロー・チャート
である。
【図6】本発明の第2の実施例におけるパック形式デー
タに対するフォーマット変換の適用範囲を説明するため
の図である。
【図7】本発明が用いる動き補償処理システムのブロッ
ク図である。
【図8】マイクロプロセッサV830の命令セットの一
部を示す図である。
【図9】動き補償処理の原理を説明するための図であ
る。
【図10】従来の動き補償処理を示すフロー・チャート
である。
【符号の説明】
10 メイン・メモリ 11 マイクロプロセッサ 12 レジスタ・ファイル 13 実行ユニット 20 プログラム 21 データ 22 予測画像の画素値 23 誤差値 24 生成画像の誤差値 25 予測画像の画素値へのポインタ 26 誤差値へのポインタ 27 生成画像の画素値へのポインタ 28 算術論理演算器 29 シフタ 30 積和演算器
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06T 1/00 - 1/20 G06T 9/00 H04N 7/32 - 7/46 H03M 7/30 - 7/50 G06F 7/42

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 8ビット符号なし数で表現された予測画
    像の画素値を、−128オフセットつき8ビット符号つ
    き数にフォーマット変換する手段と、フォーマット変換
    後の予測画像の画素値と符号つき数で表現された誤差値
    の加算および、加算結果を8ビット符号付き数で表現可
    能な範囲へ制限するクリッピング処理を1個のクリッピ
    ング機能つき積和演算命令により行う手段と、クリッピ
    ング処理後の結果をふたたび8ビット符号なし数へ逆フ
    ォーマット変換する手段とを有することを特徴とする動
    き補償加算装置。
  2. 【請求項2】 8ビット符号なし数で表現された予測画
    像の画素値を、1個のレジスタに複数個格納し一括して
    −128オフセットつき8ビット符号つき数へのフォー
    マット変換を行う手段と、フォーマット変換後の予測画
    像の画素値と符号つき誤差値の加算、および加算結果を
    8ビット符号付き数で表現可能な範囲へ制限するクリッ
    ピング処理を、1個のクリッピング機能つき積和演算命
    令により行う手段と、ふたたび1個のレジスタにクリッ
    ピング処理後の結果を複数個格納し、一括して8ビット
    符号なし数へ逆フォーマット変換する手段とを有するこ
    とを特徴とする動き補償加算装置。
  3. 【請求項3】 32ビット長レジスタに8ビット長の画
    素値を4画素分格納してフォーマット変換、フォーマッ
    ト逆変換を行うことを特徴とする請求項2に記載の動き
    補償加算装置。
  4. 【請求項4】 64ビット長レジスタに8ビット長の画
    素値を8画素分格納してフォーマット変換、フォーマッ
    ト逆変換を行うことを特徴とする請求項2に記載の動き
    補償加算装置。
JP27766296A 1996-10-21 1996-10-21 動き補償加算装置 Expired - Lifetime JP2923911B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP27766296A JP2923911B2 (ja) 1996-10-21 1996-10-21 動き補償加算装置
US08/950,834 US5907500A (en) 1996-10-21 1997-10-15 Motion compensation adder for decoding/decompressing compressed moving pictures

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27766296A JP2923911B2 (ja) 1996-10-21 1996-10-21 動き補償加算装置

Publications (2)

Publication Number Publication Date
JPH10126790A JPH10126790A (ja) 1998-05-15
JP2923911B2 true JP2923911B2 (ja) 1999-07-26

Family

ID=17586561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27766296A Expired - Lifetime JP2923911B2 (ja) 1996-10-21 1996-10-21 動き補償加算装置

Country Status (2)

Country Link
US (1) US5907500A (ja)
JP (1) JP2923911B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961063B1 (en) * 2000-06-30 2005-11-01 Intel Corporation Method and apparatus for improved memory management of video images
JP3779602B2 (ja) * 2001-11-28 2006-05-31 松下電器産業株式会社 Simd演算方法およびsimd演算装置
US7233963B2 (en) * 2002-03-20 2007-06-19 Microsoft Corporation Systems and methods for diffusing clipping error
US8090019B2 (en) * 2006-09-08 2012-01-03 Jiun-In Guo Intra prediction circuit device applied to the H.264 video coding standard
US8767823B2 (en) * 2011-03-30 2014-07-01 Industrial Technology Research Institute Method and apparatus for frame memory compression

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0129557B1 (ko) * 1992-10-07 1998-04-10 배순훈 움직임 보상을 이용한 동영상 신호처리기의 메모리 장치
US5737022A (en) * 1993-02-26 1998-04-07 Kabushiki Kaisha Toshiba Motion picture error concealment using simplified motion compensation
US5619256A (en) * 1995-05-26 1997-04-08 Lucent Technologies Inc. Digital 3D/stereoscopic video compression technique utilizing disparity and motion compensated predictions

Also Published As

Publication number Publication date
US5907500A (en) 1999-05-25
JPH10126790A (ja) 1998-05-15

Similar Documents

Publication Publication Date Title
US6014684A (en) Method and apparatus for performing N bit by 2*N-1 bit signed multiplication
US5859997A (en) Method for performing multiply-substrate operations on packed data
US8725787B2 (en) Processor for performing multiply-add operations on packed data
JP4064989B2 (ja) パック・データの乗加算演算を実行する装置
US5862067A (en) Method and apparatus for providing high numerical accuracy with packed multiply-add or multiply-subtract operations
US6546480B1 (en) Instructions for arithmetic operations on vectored data
US7395298B2 (en) Method and apparatus for performing multiply-add operations on packed data
JP3790619B2 (ja) 正値化処理及び飽和演算処理からなる丸め処理を好適に行うことができるプロセッサ
CA2190797C (en) High speed digital video decompression
US6629115B1 (en) Method and apparatus for manipulating vectored data
US20040073589A1 (en) Method and apparatus for performing multiply-add operations on packed byte data
US20100011042A1 (en) Method and Apparatus for Efficient Integer Transform
US5642306A (en) Method and apparatus for a single instruction multiple data early-out zero-skip multiplier
US6574651B1 (en) Method and apparatus for arithmetic operation on vectored data
JP3729540B2 (ja) 画像処理装置
WO1997023822A1 (en) A system for providing the absolute difference of unsigned values
US5742529A (en) Method and an apparatus for providing the absolute difference of unsigned values
JP2923911B2 (ja) 動き補償加算装置
US20030172254A1 (en) Instructions for manipulating vectored data
US6212627B1 (en) System for converting packed integer data into packed floating point data in reduced time
Bhaskaran et al. Multimedia Enhancements for General Purpose Processors

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990331