JP4658563B2 - 画像データ処理装置及び画像データ処理方法 - Google Patents

画像データ処理装置及び画像データ処理方法 Download PDF

Info

Publication number
JP4658563B2
JP4658563B2 JP2004298841A JP2004298841A JP4658563B2 JP 4658563 B2 JP4658563 B2 JP 4658563B2 JP 2004298841 A JP2004298841 A JP 2004298841A JP 2004298841 A JP2004298841 A JP 2004298841A JP 4658563 B2 JP4658563 B2 JP 4658563B2
Authority
JP
Japan
Prior art keywords
processing
pipeline
image data
activation
decoding
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
JP2004298841A
Other languages
English (en)
Other versions
JP2006115092A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2004298841A priority Critical patent/JP4658563B2/ja
Priority to PCT/JP2005/018596 priority patent/WO2006041018A1/en
Priority to EP20050790417 priority patent/EP1800489A1/en
Priority to US10/578,012 priority patent/US20090002378A1/en
Priority to CNA2005800131806A priority patent/CN1947425A/zh
Publication of JP2006115092A publication Critical patent/JP2006115092A/ja
Application granted granted Critical
Publication of JP4658563B2 publication Critical patent/JP4658563B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0733Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a data processing system embedded in an image processing device, e.g. printer, facsimile, scanner
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、画像データ処理装置に関し、特に、画像データの符号化および復号をパイプライン処理により、高速で効率的に実行できる画像データ処理装置及び画像データ処理方法に関するものである。
MPEG(Moving Picture Experts Group)規格に代表される画像データの符号化/復号処理は、一連の様々な符号化/復号処理過程から成る。例えば、MPEG方式の復号処理過程は、可変長復号処理、逆量子化処理、逆DCT処理(Inverse Descrete Cosine Transformation;逆離散コサイン変換)、動き補償処理を含み、MPEG方式の符号化処理は、可変長符号化処理、DCT処理、量子化処理、動き検出処理、動き補償処理、逆量子化処理、逆DCT処理を含む。
このような画像データの一連の符号化/復号処理を高速化する従来の技術として、特許文献1に開示された画像データ処理装置がある。
図17は、特許文献1に開示された従来の画像データ処理装置1のブロック図である。図17に示す画像データ処理装置1は、DCT処理と量子化処理を行うピクセルプロセシングユニット2、動き予測処理を行う動き予測ユニット3、可変長符号化を行う可変長プロセッサ6などの、複数の独立した符号化処理ユニットを備え、全体制御プロセッサ5が、これら符号化処理ユニットをパイプラインの各ステージとして並列に動作させるよう制御する。つまり、画像データ処理装置1は、独立に動作する複数の処理ユニットをパイプライン制御することによって、画像データの符号化/復号処理を高速化しようとするものである。
しかしながら、上述した従来の技術による符号化/復号処理を行う画像データ処理装置は、伝送路として無線環境を多用する携帯電話等など、伝送中に符号化データにデータ誤りがしばしば発生し得る環境でも利用される装置には、適用できない。これは、従来技術の画像データ処理装置は、伝送路でデータ誤りが発生した場合、そのデータ誤りに起因する復号画像の劣化を最小限に抑え、高画質を維持するという要件に応えることが出来ないためである。
つまり、従来技術の画像データ処理装置は、復号処理中の符号化データのデータ誤りによる復号エラー発生時や、復号エラー発生後の復号処理再開時などで、パイプライン処理の制御に乱れが生じた場合の対策を施していない。したがって、従来技術の画像データ処理装置では、復号処理中に復号エラーが発生した場合は、パイプライン処理中の全データを破棄し、一つ前の復号画像による誤り隠蔽処理を行うしか、対応のしようがなく、この結果、復号画像に著しい劣化を招くことになる。
特開平7―240844号公報
そこで本発明は、画像データの符号化及び復号をパイプライン処理により高速化するとともに、復号処理中に発生した復号エラーによるパイプライン制御の乱れを回避し、復号画像の劣化を最小限に抑えて、高画質化を実現する画像データ処理装置及び画像データ処理方法を提供することを目的とする。
第1の発明に係る画像データ処理装置は、入力される入力符号化データパイプライン処理により復号して、復号画像データを出力する画像復号部と、画像復号部のパイプライン処理を制御するためのパイプライン制御部と、入力符号化データと復号画像データを格納するメモリとを備える。
この構成によれば、パイプライン処理により高速に動作する、符号化データ復号のための画像データ処理装置を提供できる。
第2の発明に係る画像データ処理装置では、画像復号部は、パイプライン処理を行う複数段のデータ処理部を有し、複数段のデータ処理部は、入力符号化データを可変長復号して、量子化DCT係数と動きベクトルとを出力する可変長復号処理手段と、可変長復号処理手段が出力した量子化DCT係数を逆量子化して、逆量子化DCT係数を出力する逆量子化処理手段と、逆量子化処理手段が出力した逆量子化DCT係数を逆DCT処理して、DCT係数を出力する逆DCT処理手段と、逆DCT処理手段が出力したDCT係数と、可変長復号処理手段が出力した動きベクトルと、メモリに格納されている前フレームの復号画像データとを用いて、現フレームの復号画像データを生成する動き補償処理手段の内の少なくとも2つを有する。
この構成によれば、MPEG規格の符号化データをパイプライン処理により高速に復号する画像データ処理装置を提供できる。
第3の発明に係る画像データ処理装置では、パイプライン制御部は、画像復号部のパイプライン処理を制御するための起動情報が登録された、パイプライン起動テーブルを格納する起動テーブル記憶手段と、起動テーブル記憶手段に格納されたパイプライン起動テーブルを参照するための、オフセット値を決定するオフセット決定手段と、オフセット決定手段で決定されたオフセット値を基に、起動テーブル記憶手段に格納されているパイプライン起動テーブルから、画像復号部のパイプライン処理を制御するための起動情報を読み出し、画像復号部のパイプライン処理の起動方法を決定する起動ステージ決定手段と、オフセット決定手段と起動ステージ決定手段とを制御して、起動ステージ決定手段が決定した画像復号部のパイプライン処理の起動方法を基に、画像復号部のパイプライン処理を制御するパイプライン制御手段とを有する。
この構成によれば、復号処理時に復号エラーが発生し、画像復号部のパイプライン処理に乱れが発生した場合、パイプライン起動テーブルとそれを参照するためのオフセット値とを用いて、パイプライン処理を直ちに正常に戻すことができる。この結果、復号画像の復号エラーによる画質劣化を最小限に抑制できる。
第3の発明に係る画像データ処理装置では、画像データ処理装置は、誤り隠蔽処理手段をさらに備え、可変長復号処理手段は、入力符号化データの符号誤りを検出する符号誤り検出手段をさらに有し、符号誤り検出手段が、入力符号化データのマクロブロックに符号誤りを検出した場合、誤り隠蔽処理手段は、誤りが検出されたマクロブロック以降のマクロブロックに対して、メモリに格納されている過去の復号画像データを充当して、入力符号化データの符号誤りよる復号画像の表示の乱れを隠蔽する。
第4の発明に係る画像データ処理装置では、符号誤り検出手段が、入力符号化データのマクロブロックに符号誤りを検出した場合、誤り隠蔽処理手段は、誤りが検出されたマクロブロックから、画像復号部のパイプライン処理段数に等しい個数のマクロブロック以前のマクロブロックを、隠蔽の対象から除外する。
これらの構成によれば、復号処理時に復号エラーが発生し、画像復号部のパイプライン処理に乱れが発生した場合、復号処理中の全データを破棄する必要はなく、すでに復号処理が終わっているマクロブロックについては、復号した画像データを採用し、復号エラーのために復号処理が終わっていないマクロブロックについては、メモリに格納されている過去の復号画像データを充当して、復号画像の表示の乱れを隠蔽することができる。すなわち、復号エラーに対する隠蔽処理をマクロブロック単位で実行できるので、復号画像の復号エラーによる画質劣化を最小限に抑制できる。
第5の発明に係る画像データ処理装置は、入力される入力画像データをパイプライン処理により符号化して、符号化データを出力する画像符号化部と、画像符号化部のパイプライン処理を制御するためのパイプライン制御部と、入力画像データに対する再構築画像データと符号化データとを格納するメモリとを備える。
この構成によれば、パイプライン処理により高速に動作する、画像データ符号化のための画像データ処理装置を提供できる。
第6の発明に係る画像データ処理装置では、画像符号化部は、パイプライン処理を行う複数段のデータ処理部を有し、複数段のデータ処理部は、現フレームの入力画像データである入力画像データと、メモリに格納されている前フレームの再構築画像データとを用いて、現フレームの動きベクトルを検出する動き検出処理手段と、動き検出処理手段が検出した動きベクトルと、メモリに格納されている前フレームの再構築画像データとを用いて、現フレームに対する予測画像データを生成する動き補償処理手段と、動き補償処理手段が生成した予測画像データと、入力画像データとの差分をDCT処理して、DCT係数を出力するDCT処理手段と、DCT処理手段が出力したDCT係数を量子化して、量子化DCT係数を出力する量子化処理手段と、量子化処理手段が出力した量子化DCT係数を逆量子化して、逆量子化DCT係数を出力する逆量子化処理手段と、逆量子化処理手段が出力した逆量子化DCT係数を逆DCT処理して、再構築画像データを得るためのDCT係数を出力する逆DCT処理手段と、量子化処理手段が出力した量子化DCT係数と、動き検出処理手段が検出した動きベクトルとを可変長符号化して、符号化データを出力する可変長符号化処理手段の内の少なくとも2つを有する。
この構成によれば、パイプライン処理により画像データをMPEG規格の符号化データに高速に符号化する画像データ処理装置を提供できる。
第7の発明に係る画像データ処理装置では、パイプライン制御部は、画像符号化部のパイプライン処理を制御するための起動情報が登録されたパイプライン起動テーブルを格納する起動テーブル記憶手段と、起動テーブル記憶手段に格納されたパイプライン起動テーブルを参照するときのオフセット値を決定するオフセット決定手段と、オフセット決定手段で決定されたオフセット値を基に、起動テーブル記憶手段に格納されているパイプライン起動テーブルから、画像符号化部のパイプライン処理を制御するための起動情報を読み出し、画像符号化部のパイプライン処理の起動方法を決定する起動ステージ決定手段と、オフセット決定手段と起動ステージ決定手段とを制御して、起動ステージ決定手段が決定した画像符号化部のパイプライン処理の起動方法を基に、画像符号化部のパイプライン処理を制御するパイプライン制御手段とを有する。
この構成によれば、パイプライン起動テーブルとそれを参照するためのオフセット値とを用いて、パイプライン処理を行う各処理手段を容易に起動することができる。
本発明によれば、画像データの符号化および復号をパイプライン処理により、高速で効率的に実行できる画像データ処理装置及び画像データ処理方法を提供できる。
次に、図面を参照しながら、本発明の実施の形態を説明する。
(実施の形態1)
図1は、本発明の実施の形態1における画像データ処理装置100のブロック図である。本形態の画像データ処理装置100は、MPEG規格に代表される符号化データを、パイプライン処理により、高速に復号する。
図1に示すように、本形態の画像データ処理装置100は、可変長復号処理手段11と逆量子化処理手段12と逆DCT処理手段13と動き補償処理手段14とを有する画像復号部10、パイプライン制御手段21と起動ステージ決定手段22と起動テーブル記憶手段23とオフセット決定手段24とを有するパイプライン制御部20、メモリ30、及び、入出力インターフェイス40を備える。
可変長復号処理手段11、逆量子化処理手段12、逆DCT処理手段13、動き補償処理手段14、メモリ30、及び、入出力インターフェイス40は、データバス80に接続されている。また、可変長復号処理手段11、逆量子化処理手段12、逆DCT処理手段13、及び、動き補償処理手段14は、制御線81を介して、パイプライン制御手段21に接続されている。
可変長復号処理手段11、逆量子化処理手段12、及び、逆DCT処理手段13は、パイプラインの各段を構成しており、いわゆるパイプライン処理を行う。それらのパイプライン処理の制御は、制御線81を介して、パイプライン制御手段21によって、実行される。その詳細は後述する。
入出力ポート90から入出力インターフェイス40に入力された入力符号化データ(本形態では、可変長符号に符号化された入力符号化データ)は、メモリ30に一旦格納される。
可変長復号処理手段11は、メモリ30に格納されている入力符号化データを、可変長復号して、量子化DCT係数と動きベクトルを出力する。
逆量子化処理手段12は、可変長復号処理手段11が出力した量子化DCT係数を逆量子化して、逆量子化DCT係数を出力する。
逆DCT処理手段13は、逆量子化処理手段12が出力した逆量子化DCT係数を逆DCT処理して、DCT係数を出力する。
動き補償処理手段14は、可変長復号処理手段11が出力した動きベクトルと、逆DCT処理手段13が出力したDCT係数と、メモリ30に格納されている前フレームの復号画像データとを用いて、現フレームの復号画像データを生成し、メモリ30に格納する。
図2(a)は、本発明の実施の形態1における画像復号処理のダイヤグラムである。すなわち、図2(a)は、本形態の画像データ処理装置100で実行される画像復号処理の流れを示している。
メモリ30から読み込まれた符号化データD10は、可変長復号処理手段11によって可変長復号処理P11が施され、量子化DCT係数D11が出力される。
量子化DCT係数D11は、逆量子化処理手段12によって逆量子化処理P12が施され、逆量子化DCT係数D12が出力される。
逆量子化DCT係数D12は、逆DCT処理手段13によって逆DCT処理P13が施され、DCT係数D13が出力される。
DCT係数D13は、動き補償処理手段14によって動き補償処理P14が施され、現フレームの復号画像データD14が出力される。なお、動き補償処理P14では、可変長復号処理P11で出力された動きベクトルと、メモリ30に格納されている前フレームの復号画像データとが利用される。
図2(b)は、本発明の実施の形態1における復号画像400の画面図である。図2(a)に示した画像復号処理は、図2(b)に示す部分画像であるマクロブロック401(MB0、MB1、MB2、MB3、・・・、MB47)の画像単位で実行される。一般的に復号画像の左上マクロブロックMB0から右の方の順(MB0→MB1→MB2・・・)に復号処理が実行される。
図3は、本発明の実施の形態1におけるパイプライン処理のタイムチャートである。本形態のパイプライン処理は、図2(a)に示した本形態の画像復号処理のうち、可変長復号処理P11、逆量子化処理P12、及び、逆DCT処理P13に対して行われる。図3の横軸は、時間の経過を示し、縦軸は、画像復号処理におけるパイプライン処理ステージ(第1ステージ(S1)=可変長復号処理P11、第2ステージ(S2)=逆量子化処理P12、及び、第3ステージ(S3)=逆DCT処理P13の3ステージ)を示す。
なお、可変長復号処理P11、逆量子化処理P12、逆DCT処理P13、動き補償処理P14は、本発明の主張するところではないので、それらの詳細な説明を省略する。
以下に、図3に示す本実施の形態のパイプライン処理について説明する。
復号処理開始と共に、まず期間TP0において、フレームヘッダ情報VOPに対する第1ステージの可変長復号処理P11が行われる。フレームヘッダ情報VOPは、可変長符号データにおける各フレームの先頭に挿入され、フレーム内に含まれるマクロブロック数などの情報を含んでいる。
次に、期間TM0において、最初のマクロブロックであるMB0に対する第1ステージにおける可変長復号処理P11が行われる。
期間TM0におけるマクロブロックMB0に対する第1ステージにおける可変長復号処理P11が完了すると、期間TM1において、2番目のマクロブロックMB1に対する第1ステージにおける可変長復号処理P11と、マクロブロックMB0に対する第2ステージでの逆量子化処理P12とが並列に行われる。
次に、期間TV0において、パケットヘッダ情報VPの第1ステージにおける可変長復号処理P11が行われる。パケットヘッダ情報VPは、マクロブロックデータの間に適時挿入されるパケットヘッダに関する情報、すなわち、以降のマクロブロックのマクロブロック番号やマクロブロックにおける逆量子化処理で使用される量子化値などを含んでいる。
次に、期間TV0におけるパケットヘッダ情報VPに対する第1ステージでの可変長復号処理P11が完了すると、期間TM2において3番目のマクロブロックMB2に対する第1ステージにおける可変長復号処理P11と、マクロブロックMB1に対する第2ステージにおける逆量子化処理P12と、マクロブロックMB0に対する第3ステージにおける逆DCT処理P13とが並列に行われる。
次に、期間TM2における処理が完了すると、期間TM3において4番目のマクロブロックMB3に対する第1ステージでの可変長復号処理P11と、マクロブロックMB2に対する第2ステージでの逆量子化処理P12と、マクロブロックMB1に対する第3ステージでの逆DCT処理P13とが並列に行われる。
以降は、期間TP0におけるフレームヘッダ情報VOPを復号して得られたフレーム内マクロブロック数に基づく復号画像の最後のマクロブロックMB47に対する第1ステージでの可変長復号処理P11を行う期間TM47まで、処理対象のマクロブロックを進めながら同様の処理が繰り返される。
期間TM47における処理が完了すると、期間TM48においてマクロブロックMB47に対する第2ステージでの逆量子化処理P12及びマクロブロックMB46に対する第3ステージでの逆DCT処理P13が並列に行われる。
期間TM48における処理が完了すると、期間TM49においてマクロブロックMB47に対する第3ステージでの逆DCT処理P13が行われ、現フレームに対する復号のためのパイプライン処理が完了する。
次に、図1に示す本形態の画像データ処理装置100において、図3に示したパイプライン処理を実施するときの、パイプライン制御の方法について、図4〜図8に示すフローチャートに従って説明する。パイプライン制御は、図1に示すパイプライン制御部20が行う。
図4は、本発明の実施の形態1におけるパイプライン制御の前半のフローチャートである。図5は、本発明の実施の形態1におけるパイプライン制御の後半のフローチャートである。図4の丸囲み記号「A」「B」「C」は、図5の丸囲み記号「A」「B」「C」につながる。以下に、図4のフローチャートに従って、本形態のパイプライン制御について、図3に示す期間ごとに、説明する。
(期間TP0)
図4において、画像復号処理が開始されると、図1に示す画像データ処理装置100のパイプライン制御手段21が起動される。
ステップS11において、まず可変長復号処理手段11を用いて、可変長符号化データの各フレーム先頭に挿入されるフレームヘッダ情報VOPの可変長復号処理を行い、フレーム内マクロブロック数(MB_IN_VOP)を取得する。ここでは、
MB_IN_VOP=48
とする。
ステップS12において、マクロブロックカウンタ(MBA)の初期化を行い、
MBA=0
と設定する。
ステップS13において、フレーム内マクロブロック数の処理を完了したかどうかの判定として、
MBA>=MB_IN_VOP? (記号「>=」は、左辺が右辺以上であることを表す。)
の判定が行われる。ここでは、
MBA=0、
MB_IN_VOP=48
であり、ステップS13での判定結果は「No」(処理未完了)となり、ステップS14に進む。
(期間TM0)
まず、ステップS14において、パイプライン中断フラグ(PIPE_END)の初期化として、
PIPE_END=0
と設定する。
ステップS15において、後述するパイプライン立上げテーブルを参照するためのオフセット1(OFFSET1)の初期化として、
OFFSET1=0
と設定する。
ステップS16において、マクロブロック処理中フラグ(MB_PROC)の初期化として、
MB_PROC=1
と設定する。
ステップS17において、パイプライン処理は先頭の処理かを判定する。パイプライン処理が先頭の処理かどうかの判定は、
OFFSET1==0? (記号「==」は、「等号」を表す)
の判定によって行う。ここでは、
OFFSET1=0
であり、ステップS17での判定結果は「Yes」(先頭の処理である)となリ、ステップS19に進む。
ステップS19において、図1のオフセット決定手段24が起動されて、パイプライン起動テーブルオフセット決定処理が実施される。そして、後述するパイプライン起動テーブル(パイプライン立上げテーブルとパイプライン中断テーブル)を参照する時のオフセット値(OFFSET1、OFFSET2、OFFSET3)を決定する。
なお、オフセット決定手段24の起動時には、パイプライン中断フラグ(PIPE_END)、マクロブロック処理中フラグ(MB_PROC)、及び、パイプライン立上げテーブル(後述)用オフセット1(OFFSET1)が、パイプライン制御手段21よりオフセット決定手段24へ渡される。ここでは、
PIPE_END=0
MB_PROC=1
OFFSET1=0
が渡される。
図6は、本発明の実施の形態1におけるパイプライン起動テーブルオフセット決定処理の前半のフローチャートである。図7は、本発明の実施の形態1におけるパイプライン起動テーブルオフセット決定処理の後半のフローチャートである。図6の丸囲み記号「A」は、図7の丸囲み記号「A」につながる。
パイプライン起動テーブルオフセット決定処理が開始されると、図6のステップS41において、図1の起動テーブル記憶手段23が起動され、パイプライン処理の中断開始であるかどうかが判定される。すなわち、
PIPE_END!=0? (記号「!=」は、「不等号」を表す。)
の判定を行う。ここでは、
PIPE_END=0
であり、ステップS41での判定結果は、「No」(パイプライン処理の中断開始ではない)となり、ステップS42に進む。
ステップS42では、パイプライン立上げテーブル(後述)用オフセット1(OFFSET1)の初期化処理として、
OFFSET1=0
の設定を行う。
ステップS43では、パイプライン中断テーブル用オフセット2(OFFSET2)の初期化処理として、
OFFSET2=0
の設定を行う。
ステップS44では、パイプライン中断テーブル用オフセット3(OFFSET3)の初期化処理として、
OFFSET3=−32768
の設定を行う。以上のステップS42〜44の初期化処理を行って、パイプライン起動テーブルオフセット決定処理(図4のステップS19)を終了する。
この時、図1のオフセット決定手段24によって、
OFFSET1=0、
OFFSET2=0、
OFFSET3=−32768、
PIPE_END=0
が、それぞれ返される。
図4のステップS19のパイプライン起動テーブルオフセット決定処理を終了すると、ステップS20に進む。
ステップS20では、パイプライン処理の中断処理が無いかどうかの判定処理を、
OFFSET2==−32768?
の判定により行う。ここでは、パイプライン中断テーブル用オフセット2(OFFSET2)の値は、
OFFSET2=0
であり、ステップS20での判定結果は、「No」(パイプライン処理の中断処理あり)となり、ステップS21(図5)に進む。
ステップS21では、図1の起動ステージ決定手段22が起動され、パイプライン起動ステージ決定処理が実行される。すなわち、ステップS21のパイプライン起動ステージ決定処理では、可変長復号処理手段11による可変長復号処理P11、逆量子化処理手段12による逆量子化処理P12、及び、逆DCT処理手段13による逆DCT処理P13の各パイプラインステージを起動するための、パイプラインステージ起動パラメータ(PIPEKICK)が決定される。
なお、起動ステージ決定手段22の起動時には、パイプライン制御手段21より、パイプライン立上げテーブル用オフセットセット1(OFFSET1)、パイプライン中断テーブル用オフセット2(OFFSET2)、及び、パイプライン中断テーブル用オフセット3(OFFSET3)が渡される。ここでは、
OFFSET1=0、
OFFSET2=0、
OFFSET3=−32768
が渡される。
図8は、本発明の実施の形態1におけるパイプライン起動ステージ決定処理のフローチャートである。以下に、図8を参照して、パイプライン起動ステージ決定処理を説明する。
パイプライン起動ステージ決定処理が開始されると、図1の起動ステージ決定手段22が起動される。ステップS61において、まずパイプライン立上げ中かどうかの判定処理として、
OFFSET1<2?
の判定を行う。ここでは、
OFFSET1=0
であり、ステップS61での判定結果は、「Yes」(立上げ中)となり、ステップS62に進む。
ステップS62では、パイプラインステージ起動パラメータ(PIPEKICK)をパイプライン立上げテーブル(TABLE1)より取得する。すなわち、
PIPEKICK=TABLE1[OFFSET1]
の演算を行う。
ここで、パイプライン立上げテーブル(TABLE1)は、起動テーブル記憶手段23に格納されたテーブルであって、可変長復号処理手段11、逆量子化処理手段12、逆DCT処理手段13の各起動情報が記述されている。
図9(a)は、本発明の実施の形態1におけるパイプライン立上げテーブル(TABLE1)420の構成図である。図9(b)は、本発明の実施の形態1におけるパイプライン中断テーブル(TABLE2)421の構成図である。
パイプライン立上げテーブル(TABLE1)420は、要素「_S1」と要素「_S1|_S2」の2つの要素を持つテーブルである。要素「_S1」は、パイプライン処理の第1ステージ(S1)である可変長復号処理P11を起動することを示し、要素「_S1|_S2」は、パイプライン処理の第1ステージ(S1)である可変長復号処理P11とパイプライン処理の第2ステージ(S2)である逆量子化処理P12を並列に起動することを示す。
図8のステップS62では、
OFFSET1=0
であり、
PIPEKICK=_S1
を取得する。
次に、ステップS63では、パイプライン立上げテーブル用オフセット1のインクリメント処理として、
OFFSET1++ (記号「++」は、左辺の変数に値「1」を足すことを表す。)
を実行し、
OFFSET1=1
として、パイプライン起動ステージ決定処理を終了する。
起動ステージ決定手段22において、パイプライン起動ステージ決定処理が終了した時には、パイプライン立上げテーブル用オフセットセット1(OFFSET1)、パイプライン中断テーブル用オフセット2(OFFSET2)、パイプライン中断テーブル用オフセット3(OFFSET3)、パイプラインステージ起動パラメータ(PIPEKICK)が返される。ここでは、
OFFSET1=1、
OFFSET2=0、
OFFSET3=−32768、
PIPEKICK=_S1
が返される。
以上で、図5のステップS21におけるパイプライン起動ステージ決定処理が終了し、図5のステップS22に進む。
ステップS22において、パイプライン処理の起動を行う。ステップS22におけるパイプライン処理の起動は、ステップS21で決定したパイプラインステージ起動パラメータ(PIPEKICK)を用いて行う。すなわち、パイプラインステージ起動パラメータ(PIPEKICK)にセットされたパイプラインステージに対応する処理手段を起動する。ここでは、パイプラインステージ起動パラメータ(PIPEKICK)は、
PIPEKICK=_S1
であり、第1ステージ(S1)の可変長復号処理P11のための可変長復号処理手段11のみが起動される。
ステップS23では、ステップS22で起動された可変長復号処理P11の処理終了を待つ。処理が終了すると、ステップS24に進む。
ステップS24において、パイプライン処理が中断処理中であるかどうかの判定処理として、
OFFSET3!=−32768?
の判定を行う。ここでは、
OFFSET3=−32768
であり、ステップS24での判定結果は、「No」(パイプライン処理は中断処理中ではない)となり、ステップS25に進む。
ステップS25において、マクロブロックカウンタ(MBA)のインクリメント処理として、
MBA++
の演算を行い、
MBA=1
と設定する。
次に、ステップS26において、ヘッダ有りかどうかの判定処理を実行する。
可変長符号データにおいては、マクロブロックデータ間に挿入されるパケットヘッダ情報(VP)の先頭に、特有のビット列(「0x000001」など、記号「x」は、値「0」か「1」)から成る同期語が含まれており、これを検出することでヘッダ有り無しを判定する。
ここでは、ステップS26での判定結果は、「No」(ヘッダ無し)であり、ステップS29に進む。
ステップS29において、フレーム内マクロブロック数の処理が完了したかどうかの判定処理として、
MBA>=MB_IN_VOP?
の判定を行う。ここでは、
MBA=1、
MB_IN_VOP=48
であり、ステップS26での判定結果は、「No」(フレーム内マクロブロック数の処理は完了していない)となり、直接ステップS16(図4)へ戻り次の期間の処理を行う。
以上で、期間TM0の処理が終了する。
(期間TM1、TV0)
この期間の処理は、図4のステップS16から始まる。
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
MBA=1、
PIPE_END=0、
MB_PROC=1、
OFFSET1=1、
OFFSET2=0、
OFFSET3=−32768。
ステップS16において、マクロブロック処理中フラグ(MB_PROC)の初期化として、
MB_PROC=1
の設定を行う。
ステップS17において、パイプライン処理が先頭の処理かどうかの判定を、
OFFSET1==0?
の判定によって行う。ここでは、
OFFSET1=1
であり、ステップS17での判定結果は、「No」(先頭の処理ではない)となり、ステップS18に進む。
ステップS18において、パイプライン処理は中断開始かどうかの判定として、
PIPE_END!=0?
の判定を行う。ここでは、
PIPE_END=0
であり、ステップS18での判定結果は、「No」(中断開始ではない)となり、ステップS21(図5)に進む。
次に、ステップS21において起動ステージ決定手段22が起動される。このとき、
OFFSET1=1、
OFFSET2=0、
OFFSET3=−32768
が、パイプライン制御手段21から起動ステージ決定手段22へ渡され、図8に示すパイプライン起動ステージ決定処理が実行される。
図8のステップS61では、パイプライン立上げ中かどうかの判定処理として、
OFFSET1<2?
の判定が行われ、ここでは、
OFFSET1=1、
であり、ステップS61の判定結果は、「Yes」(立上げ中)となり、ステップS62に進む。
ステップS62では、
OFFSET1=1
を用いて、
PIPEKICK=TABLE1[OFFSET1]
の演算を行い、
PIPEKICK=_S1|_S2
を取得する。
ステップS63では、
OFFSET1++
の演算を行い、
OFFSET1=2
として、パイプライン起動ステージ決定処理を終了する。この結果、パイプライン起動ステージ決定処理を終了後に、
OFFSET1=2、
OFFSET2=0、
OFFSET3=−32768、
PIPEKICK=_S1|_S2
が返される。
次に、図5のステップS22において、パイプライン処理の起動を行う。ステップS22におけるパイプライン処理の起動は、パイプラインステージ起動パラメータ(PIPEKICK)にセットされた要素「_S1|_S2」にしたがって、第1ステージ(S1)の可変長復号処理P11と第2ステージ(S2)の逆量子化処理P12の両パイプライン処理ステージが並列に起動される。
ステップS23では、並列に起動された可変長復号処理P11と逆量子化処理P12の処理終了を待つ。
次に、ステップS24において、パイプライン処理が中断処理中がどうかの判定処理として、
OFFSET3!=−32768?
の判定を行う。ここで、
OFFSET3=−32768
であるから、ステップS24での判定結果は、「No」(中断処理中)となり、ステップS25に進む。
ステップS25では、
MBA++
の演算を行い、
MBA=2
となる。
次に、ステップS26において、ヘッダ有りかどうかの判定処理が行われ、ここでは、「Yes」(ヘッダ有り)と判定され、ステップS27に進む。
ステップS27では、マクロブロック処理中フラグ(MB_PROC)のリセット処理として、
MB_PROC=0
の設定を行い、ステップS28において、ヘッダ処理を行い、ステップS16(図4)へ戻り、次の期間の処理を行う。
以上で、期間TM1、TV0の処理が終了する。
(期間TM2)
この期間の処理は、図4のステップS16から始まる。
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
MBA=2、
PIPE_END=0、
MB_PROC=1、
OFFSET1=2、
OFFSET2=0、
OFFSET3=−32768。
ステップS16において、マクロブロック処理中フラグ(MB_PROC)の初期化として、
MB_PROC=1
の設定を行う。
ステップS17において、パイプライン処理は先頭の処理かを判定する。パイプライン処理が先頭の処理かどうかの判定は、
OFFSET1==0?
の判定によって行う。ここでは、
OFFSET1=2
であり、ステップS17での判定結果は、「No」となり、ステップS18に進む。
ステップS18において、パイプライン処理は中断開始かどうかの判定として、
PIPE_END!=0?
の判定を行う。ここでは、
PIPE_END=0
であり、ステップS18での判定結果は、「No」(中断開始ではない)となり、ステップS21(図5)に進む。
次に、ステップS21において起動ステージ決定手段22が起動される。このとき、
OFFSET1=2、
OFFSET2=0、
OFFSET3=−32768
が、パイプライン制御手段21から起動ステージ決定手段22へ渡され、図8に示すパイプライン起動ステージ決定処理が行われる。
図8のステップS61では、パイプライン立上げ中かどうかの判定処理として、
OFFSET1<2?
の判定が行われる。ここでは、
OFFSET1=2
であり、ステップS61での判定結果は、「No」(立上げ中ではない)となり、ステップS64に進む。
ステップS64では、パイプライン処理が中断処理中かどうかの判定処理として、
OFFSET3>=0?
の判定を行う。ここでは、
OFFSET3=−32768
であり、ステップS64での判定結果は、「No」(パイプライン処理は、中断処理中ではない)となり、ステップS67に進む。
ステップS67において、全パイプラインステージを起動するために、パイプラインステージ起動パラメータ(PIPEKICK)に、
PIPEKICK=_S1|_S2|_S3
の設定をする。この要素「_S1|_S2|_S3」は、パイプラインの第1ステージである可変長復号処理P11と、第2ステージである逆量子化処理P12と、第3ステージである逆DCT処理P13とを並列に起動することを示す。
ステップS68において、パイプライン立上げテーブル用オフセット1に正の最大値として、
OFFSET1=32767
を設定して、パイプライン起動ステージ決定処理を終了する。
起動ステージ決定手段22において、パイプライン起動ステージ決定処理が終了した時には、
OFFSET1=32767、
OFFSET2=0、
OFFSET3=−32768、
PIPEKICK=_S1|_S2|_S3
が返される。
次に、図5に戻り、ステップS22において、パイプライン処理の起動を行う。ステップS22におけるパイプライン処理の起動は、パイプラインステージ起動パラメータ(PIPEKICK)にセットされた要素「_S1|_S2|_S3」にしたがって、第1ステージ(S1)の可変長復号処理P11、第2ステージ(S2)の逆量子化処理P12、及び、第3ステージ(S3)の逆DCT処理P13の全パイプライン処理ステージが並列に起動される。
ステップS23では、並列に起動された可変長復号処理P11と逆量子化処理P12と逆DCT処理P13の処理終了を待つ。
次に、ステップS24において、パイプライン処理が中断処理中がどうかの判定処理として、
OFFSET3!=−32768?
の判定を行う。ここで、
OFFSET3=−32768
であるから、ステップS24での判定結果は、「No」(パイプライン処理は、中断処理中)となり、ステップS25に進む。
ステップS25において、
MBA++
の演算を行い、
MBA=3
とする。
次に、ステップS26において、ヘッダ有りかどうかの判定処理が行われ、ここでは、「No」(ヘッダ無し)と判定され、ステップS29に進む。
ステップS29において、フレーム内マクロブロック数の処理が完了したかどうかの判定処理として、
MBA>=MB_IN_VOP?
の判定を行う。ここでは、
MBA=3
MB_IN_VOP=48
であり、ステップS29での判定結果は「No」(処理が完了していない)となる。
以上で、期間TM1、TV0の処理が終了し、ステップS16へ戻り、次の期間の処理を行う。
(期間TM3〜TM46)
これらの期間の処理は、上述した期間TM2における処理と、基本的に同じであり、説明を省略する。
(期間TM47)
この期間の処理は、図4のステップS16から始まる。
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
MBA=47、
PIPE_END=0、
MB_PROC=1、
OFFSET1=32767、
OFFSET2=0、
OFFSET3=−32768。
ステップS16において、マクロブロック処理中フラグ(MB_PROC)の初期化として、
MB_PROC=1
の設定を行う。
ステップS17において、パイプライン処理は先頭の処理かを判定する。パイプライン処理が先頭の処理かどうかの判定は、
OFFSET1==0?
の判定によって行う。ここでは、
OFFSET1=32767
であり、ステップS17での判定結果は、「No」(先頭の処理ではない)となり、ステップS18に進む。
ステップS18において、パイプライン処理は中断開始かどうかの判定として、
PIPE_END!=0?
の判定を行う。ここでは、
PIPE_END=0
であり、ステップS18での判定結果は、「No」(中断開始ではない)となり、ステップS21(図5)に進む。
次に、ステップS21において起動ステージ決定手段22が起動される。このとき、
OFFSET1=32767、
OFFSET2=0、
OFFSET3=−32768
が、パイプライン制御手段21から起動ステージ決定手段22へ渡され、図8に示すパイプライン起動ステージ決定処理が行われる。
図8のステップS61では、パイプライン立上げ中かどうかの判定処理として、
OFFSET1<2?
の判定が行われ、ここでは、
OFFSET1=32767
であり、ステップS61の判定結果は、「No」(立上げ中ではない)となり、ステップS64に進む。
ステップS64では、パイプライン処理が中断処理中かどうかの判定処理として、
OFFSET3>=0?
の判定を行う。ここでは、
OFFSET3=−32768
であり、ステップS64での判定結果は、「No」(パイプライン処理は、中断処理中ではない)となり、ステップS67に進む。
ステップS67において、全パイプラインステージを起動するために、パイプラインステージ起動パラメータ(PIPEKICK)に、
PIPEKICK=_S1|_S2|_S3
の設定をする。
ステップS68において、パイプライン立上げテーブル用オフセット1に正の最大値として、
OFFSET1=32767
を設定して、パイプライン起動ステージ決定処理を終了する。
起動ステージ決定手段22において、パイプライン起動ステージ決定処理が終了した時には、
OFFSET1=32767
OFFSET2=0、
OFFSET3=−32768、
PIPEKICK=_S1|_S2|_S3
が返される。
次に、図5のステップS22において、パイプライン処理の起動を行う。ステップS22におけるパイプライン処理の起動は、パイプラインステージ起動パラメータ(PIPEKICK)にセットされた要素「_S1|_S2|_S3」にしたがって、第1ステージ(S1)の可変長復号処理P11、第2ステージ(S2)の逆量子化処理P12、及び、第3ステージ(S3)の逆DCT処理P13の全パイプライン処理ステージが並列に起動される。
ステップS23では、並列に起動された可変長復号処理P11と逆量子化処理P12と逆DCT処理P13の処理終了を待つ。
次に、ステップS24において、パイプライン処理が中断処理中かどうかの判定処理として、
OFFSET3!=−32768?
の判定を行う。ここで、
OFFSET3=−32768
であるから、ステップS24での判定結果は、「No」(パイプライン処理は中断処理中)となり、ステップS25に進む。
ステップS25において、
MBA++
の演算を行い、
MBA=48
とする。
次に、ステップS26において、ヘッダ有りかどうかの判定処理が行われ、ここでは、「No」(ヘッダ無し)と判定され、ステップS29に進む。
ステップS29において、フレーム内マクロブロック数の処理が完了したかの判定処理として、
MBA>=MB_IN_VOP?
の判定を行う。ここでは、
MBA=48
MB_IN_VOP=48
であり、ステップS29での判定結果は「Yes」(処理が完了)となリ、ステップS30に進む。
ステップS30では、パイプライン中断フラグセット(PIPE_END)の設定として
PIPE_END=1
の設定をする。
以上で、期間TM47の処理が終了し、ステップS16へ戻り、次の期間の処理を行う。
(期間TM48)
この期間の処理は、図4のステップS16から始まる。
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
MBA=48、
PIPE_END=1、
MB_PROC=1、
OFFSET1=32767、
OFFSET2=0、
OFFSET3=−32768。
ステップS16において、マクロブロック処理中フラグ(MB_PROC)の初期化として、
MB_PROC=1
の設定を行う。
ステップS17において、パイプライン処理は先頭の処理かどうかの判定として、
OFFSET1==0?
の判定によって行う。ここでは、
OFFSET1=32767
であり、ステップS17での判定結果は、「No」(先頭の処理ではない)となり、ステップS18に進む。
ステップS18において、パイプライン処理は中断開始かどうかの判定として、
PIPE_END!=0?
の判定を行う。ここでは、
PIPE_END=1
であり、ステップS18での判定結果は、「Yes」(パイプライン処理は中断開始)となり、ステップS19に進む。
ステップS19において、パイプライン起動テーブルオフセット決定処理が実行される。より具体的には、図6に示すパイプライン起動テーブルオフセット決定処理の前半のフローチャートと、図7に示すパイプライン起動テーブルオフセット決定処理の後半のフローチャートとに従った処理を行う。
この時、
PIPE_END=1、
MB_PROC=1、
OFFSET1=32767
が渡される。
図6に示すパイプライン起動テーブルオフセット決定処理が開始されると、ステップS41においてパイプライン処理の中断開始であるかどうかが判定される。すなわち、
PIPE_END!=0?
の判定を行う。ここでは、
PIPE_END=1
であり、ステップS41での判定結果が「Yes](パイプライン処理の中断開始である)となって、ステップS45に進む。
ステップS45では、パイプライン処理がパイプラインの先頭の処理かどうかの判定処理として、
OFFSET1==0?
の判定を行う。ここでは、
OFFSET1=32767
であり、ステップS45での判定結果が「No」(パイプライン先頭の処理ではない)となって、ステップS46に進む。
ステップS46では、パイプライン処理がパイプラインの2番目の処理かどうかの判定処理として、
OFFSET1==1?
の判定を行う。ここでは、
OFFSET1=32767
であり、ステップS46での判定結果が「No」(パイプライン2番目の処理ではない)となって、ステップS49に進む。
ステップS49では、パイプライン中断テーブル用オフセット2の設定として、
OFFSET2=MIN(OFFSET1,1)
の演算を行う。
上式において、関数MIN(x,y)は、変数「x」、「y」のうち、値が小さい方の変数の値を関数値とすることを意味する。
ここでは、
OFFSET1=32767
であり、演算結果は、
OFFSET2=1
となる。
続いて、ステップS50では、マクロブロック処理中かどうかの判定処理として、
MB_PROC!=0?
の判定を行う。ここでは、
MB_PROC=1
であり、テップS50での判定結果が「Yes」(マクロブロック処理中)となって、ステップS52(図7)に進む。
ステップS52では、パイプライン中断テーブル用オフセット3の設定として、
OFFSET3=1
の設定をして、ステップS53に進む。
ステップS53では、マクロブロック処理中かどうかの判定処理として、
MB_PROC!=0?
の判定を行う。ここでは、
MB_PROC=1
であり、ステップS53での判定結果は、「Yes」(マクロブロック処理中)となって、ステップS55に進む。
ステップS55では、パイプライン立上げテーブル用オフセット1の設定として、
OFFSET1=32767
の設定をして、ステップS56に進む。
ステップS56では、パイプライン中断フラグのリセット処理として、
PIPE_END=0
の設定をする。
以上の諸設定を終えて、パイプライン起動テーブルオフセット決定処理(図4のステップS19)を終了する。この時、図1のオフセット決定手段24によって、
OFFSET1=32767、
OFFSET2=1、
OFFSET3=1、
PIPE_END=0
が返される。
次に、図4のステップS20に進み、パイプライン処理の中断処理無し判定として、
OFFSET2==−32768?
の判定を行う。ここでは、
OFFSET2=1
であり、ステップS20の判定結果は、「No」(中断処理有り)となって、ステップS21(図5)に進む。
ステップS21において起動ステージ決定手段22が起動される。このとき、
OFFSET1=32767、
OFFSET2=1、
OFFSET3=1
が渡され、図8に示すパイプライン起動ステージ決定処理が行われる。
図8のステップS61では、パイプライン立上げ中かどうかの判定処理として、
OFFSET1<2?
の判定が行われる。ここでは、
OFFSET1=32767
であり、ステップS61の判定結果は、「No」(パイプライン立上げ中ではない)となり、ステップS64に進む。
ステップS64では、パイプライン処理が中断処理中かどうかの判定処理として、
OFFSET3>=0?
の判定を行う。ここでは、
OFFSET3=1
であり、ステップS64の判定結果は、「Yes」(パイプライン処理は、中断処理中)となり、ステップS65に進む。
ステップS65では、パイプラインステージ起動パラメータ
PIPEKICK=TABLE2[OFFSET2][OFFSET3]
の演算を行い、
PIPEKICK=_S2|_S3
を取得して、ステップS66に進む。
ステップS66では、パイプライン中断テーブル用オフセット3のデクリメント処理として、
OFFSET3−− (記号「−−」は、左辺の変数の値を値「1」だけ減ずることを表す。)
の演算を行い、
OFFSET3=0
として、パイプライン起動ステージ決定処理を終了する。この時、
OFFSET1=32767、
OFFSET2=1、
OFFSET3=0、
PIPEKICK=_S2|_S3
が返される。
次に、図5のステップS22に進み、パイプライン処理の起動が行なわれる。ステップS22におけるパイプライン処理の起動は、ステップS21で決定したパイプラインステージ起動パラメータ(PIPEKICK=_S2|_S3)を用いて行い、第2ステージ(S2)の逆量子化処理P12と第3ステージ(S3)の逆DCT処理P13とが並列に起動される。
次に、ステップS23において、逆量子化処理P12と逆DCT処理P13の終了を待つ。
ステップS24において、パイプライン処理は中断処理中であるかどうかの判定処理として、
OFFSET3!=−32768?
の判定を行う。ここでは、
OFFSET3=0
であり、ステップS24での判定結果は「Yes」(中断処理中)となって、ステップS31に進む。
ステップS31において、パイプライン処理の中断は終了したかどうかの判定として、
OFFSET3==−1?
の判定を行う。ここでは、
OFFSET3=0
であり、ステップS24での判定結果は、「No」(終了していない)となって、期間TM48の処理を終了し、ステップS16(図4)に戻る。
(期間TM49)
この期間の処理は、図4のステップS16から始まる。
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
MBA=48、
PIPE_END=0、
MB_PROC=1、
OFFSET1=32767、
OFFSET2=1、
OFFSET3=0。
ステップS16において、マクロブロック処理中フラグ(MB_PROC)の初期化として、
MB_PROC=1
の設定を行う。
ステップS17において、パイプライン処理は先頭の処理かどうかの判定として、
OFFSET1==0?
の判定によって行う。ここでは、
OFFSET1=32767
であり、ステップS17での判定結果は、「No」(先頭の処理ではない)となり、ステップS18に進む。
ステップS18において、パイプライン処理は中断開始かどうかの判定として、
PIPE_END!=0?
の判定を行う。ここでは、
PIPE_END=0
であり、ステップS18での判定結果は、「No」(中断開始ではない)となり、ステップS21(図5)に進む。
ステップS21において起動ステージ決定手段22が起動される。このとき、
OFFSET1=32767、
OFFSET2=1、
OFFSET3=0
が渡され、図8に示すパイプライン起動ステージ決定処理が行われる。
図8のステップS61では、パイプライン立上げ中かどうかの判定処理として、
OFFSET1<2?
の判定が行わる。ここでは、
OFFSET1=32767
であり、ステップS61の判定結果は、「No」(立上げ中ではない)となり、ステップS64に進む。
ステップS64では、パイプライン処理が中断処理中かどうかの判定処理として、
OFFSET3>=0?
の判定を行う。ここでは、
OFFSET3=0
であり、ステップS64の判定結果は、「Yes」(中断処理中)となり、ステップS65に進む。
ステップS65では、パイプラインステージ起動パラメータ
PIPEKICK=TABLE2[OFFSET2][OFFSET3]
の演算を行い、
PIPEKICK=_S3
を取得して、ステップS66に進む。
ステップS66では、パイプライン中断テーブル用オフセット3のデクリメント処理として、
OFFSET3−−
の演算を行い、
OFFSET3=−1
として、パイプライン起動ステージ決定処理を終了する。この時、
OFFSET1=32767、
OFFSET2=1、
OFFSET3=−1、
PIPEKICK=_S3
が返される。
次に、図5のステップS22に進み、パイプライン処理の起動が行なわれる。ステップS22におけるパイプライン処理の起動は、ステップS21で決定したパイプラインステージ起動パラメータ(PIPEKICK=_S3)を用いて行い、第3ステージ(S3)の逆DCT処理P13が起動される。
次に、ステップS23において、逆DCT処理P13の終了を待つ。
ステップS24において、パイプライン処理は中断処理中であるかどうかの判定処理として、
OFFSET3!=−32768?
の判定を行う。ここでは、
OFFSET3=−1
であり、ステップS24での判定結果は「Yes」(中断処理中)となって、ステップS31に進む。
ステップS31において、パイプライン処理の中断は終了したかどうかの判定として、
OFFSET3==−1?
の判定を行う。ここでは、
OFFSET3=−1
であり、ステップS31での判定結果は、「Yes」(中断終了)となって、ステップS13(図4)に戻る。
ステップS13において、フレーム内マクロブロック数の処理を完了したかどうかの判定として、
MBA>=MB_IN_VOP?
の判定が行われる。ここでは、
MBA=48、
MB_IN_VOP=48
であり、ステップS13での判定結果は「Yes」(処理を完了)となり、復号処理を終了する。
なお、本実施の形態において、画像復号処理における処理手段として、可変長復号処理手段11、逆量子化処理手段12、逆DCT処理手段13を設けたが、それ以外の処理手段を設けたり、複数の処理手段をまとめて一つの処理手段として構成し、その結果、パイプライン処理ステージ数が変わっても同様の効果が得られる。
(実施の形態2)
図10は、本発明の実施の形態2における画像データ処理装置200のブロック図である。本形態の画像データ処理装置200は、本発明の実施の形態1の画像データ処理装置100と同様に、MPEG規格に代表される符号化データを、パイプライン処理により、高速に復号する。さらに、本形態の画像データ処理装置200は、入力符号化データに符号誤りがある場合に、復号画像の表示の乱れを効率よく隠蔽する。
図10において、 図1と同様な構成要素については、同一の符号を付すことにより、説明を省略する。
図10に示す本形態の画像データ処理装置200は、画像復号部10、パイプライン制御部20、メモリ30、入出力インターフェイス40、及び、誤り隠蔽処理手段50を備る。
画像復号部10は、符号誤り検出手段15を有する可変長復号処理手段11、逆量子化処理手段12、逆DCT処理手段13、及び、動き補償処理手段14を有する。
パイプライン制御部20は、パイプライン制御手段21、起動ステージ決定手段22、起動テーブル記憶手段23、及び、オフセット決定手段24を有する。
誤り隠蔽処理手段50は、データバス80に接続されており、制御線81を介して、パイプライン制御部20に接続されている。
その他の構成要素の接続は、本発明の実施の形態1の画像データ処理装置100と同様であり、説明を省略する。
図11は、本発明の実施の形態2におけるパイプライン処理のタイムチャートである。
図11に示すように、本形態のパイプライン処理は、可変長復号処理P11、逆量子化処理P12、及び、逆DCT処理P13からなる。図11の横軸は時間の経過を示し、縦軸は、画像復号処理におけるパイプライン処理ステージ(第1ステージ(S1)=可変長復号処理P11、第2ステージ(S2)=逆量子化処理P12、及び、第3ステージ(S3)=逆DCT処理P13の3ステージ)を示す。
なお、可変長復号処理P11、逆量子化処理P12、逆DCT処理P13は、本発明の主張するところではないので、それらの詳細な説明を省略する。
図11に示すパイプライン処理のタイムチャートでは、期間TM2のマクロブロックMB2に対する可変長復号処理P11を実行中に、復号エラーが発生し、その後、誤り隠蔽処理を行う場合について示している。
期間TP0〜TV0については、図3に示す本発明の実施の形態1におけるパイプライン処理のタイムチャートと同様であり、詳細な説明を省略する。
期間TV0におけるパケットヘッダ情報(VP)に対する可変長復号処理P11が終了した後、期間TM2において、マクロブロックMB2に対する可変長復号処理P11、マクロブロックMB1に対する逆量子化処理P12、及び、マクロブロックMB0に対する逆DCT処理P13が並列に行われる。
ここで、マクロブロックMB2に対する可変長復号処理P11の途中で、可変長復号処理手段11の符号誤り検出手段15が可変長符号データに誤りを検出し、以降のマクロブロックMB2〜MB47に対する正常な復号処理が不可能となったと仮定している。データ誤りによる復号画像の乱れを抑えるために、この後誤り隠蔽処理を行うが、その前に、まず、パイプライン処理を実行中の全マクロブロックMB0〜MB2に対して、第3ステージの逆DCT処理P13まで終了させる。但し、マクロブロックMB2は、第1ステージでの可変長復号処理P11の過程でデータ誤りが発生し、以降の処理が出来ない状態にあるため、その後の逆量子化処理P12及び逆DCT処理P13は、実行する必要がない。
よって、期間TM2において、マクロブロックMB2に対する可変長復号処理P11(ただし、エラー検出とその後の処理まで)、マクロブロックMB1に対する逆量子化処理P12、及び、マクロブロックMB0に対する逆DCT処理P13の並列処理を終了させる。
期間TM3においては、マクロブロックMB1に対する逆DCT処理P13のみが行われる。
期間TM3における処理が終了後、期間TC0において、マクロブロックMB2〜MB47に対する誤り隠蔽処理が行われる。
誤り隠蔽処理の一手法として、保持しておいた過去(例えば一つ前)のフレームの復号画像による置き換えがあり、本形態の画像データ処理装置200では、正常な復号ができないマクロブロックMB2〜MB47を、同じ位置の一つ前のフレームの復号画像で置き換えることで復号画像を完成させる。
以下に、本形態の画像データ処理装置200において、図11に示すような復号エラーが発生した場合のパイプライン制御の方法について、本発明の実施の形態1で用いた図6〜図9、図12、及び、図13を参照しながら、説明する。
図12は、本発明の実施の形態2におけるパイプライン制御の前半のフローチャートであり、図13は、本発明の実施の形態2におけるパイプライン制御の後半のフローチャートである。
(期間TP0、TM0〜TM1、TV0)
本形態における期間TP0、TM0〜TM1、TV0での処理は、復号エラーの発生はないと仮定しているので、エラーフラグ初期化処理(図12のステップS78)でエラーフラグ(ERR)が
ERR=0
と設定され、エラー判定処理(同じく、ステップS73、ステップS79)において、いずれも「No」と判定される。その結果、これらの期間において、実際に実行されるパイプライン制御のフローは、本発明の実施の形態1における期間TP0、TM0〜TM1、TV0でのパイプライン制御のフローと同様である。従って、説明を省略する。
(期間TM2)
この期間の処理は、仮定により、パイプライン処理中に復号エラーの発生を検出するもので、図12のステップS79から始まる。
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
MBA=2、
PIPE_END=0、
MB_PROC=0、
OFFSET1=2、
OFFSET2=0、
OFFSET3=−32768、
ERR=0。
ステップS79において、エラー有りかどうかの判定処理として、
ERR!=0?
の判定を行う。ここで、エラー有りかどうかの判定に使用するエラーフラグ(ERR)は、可変長復号処理P11の過程において、可変長復号処理手段11の符号誤り検出手段15によって、可変長符号データにデータ誤りが検出された場合に、
ERR=1
とセットされる。
ここでは、エラーフラグ(ERR)は、
ERR=0
であり、ステップS79での判定結果は「No」(エラーなし)となって、ステップS81に進む。
ステップS81では、マクロブロック処理中フラグ(MB_PROC)の初期化処理として、
MB_PROC=1
の設定を行い、ステップS82(図13)に進む。
ステップS82において、パイプライン処理は先頭の処理かどうかを
OFFSET1==0?
の判定で行う。ここでは、
OFFSET1=2
であり、ステップS82での判定結果は、「No」(先頭の処理ではない)となり、ステップS83に進む。
ステップS83において、パイプライン処理は中断開始かどうかを
PIPE_END!=0?
の判定で行う。ここでは、
PIPE_END=0
であり、ステップS83の判定結果は、「No」(中断開始ではない)となり、ステップS86に進む。
次に、ステップS86においてパイプライン起動ステージ決定処理が開始される。この時、
OFFSET1=2、
OFFSET2=0、
OFFSET3=−32768
が、図10のパイプライン制御手段21より、起動ステージ決定手段22に渡される。
ステップS86においてパイプライン起動ステージ決定処理が開始され、図6と図7に示すフローチャートに従った処理が行われる。本形態のパイプライン起動ステージ決定処理は、本発明の実施の形態1で述べたものと同様であり、その説明を省略する。
ステップS86におけるパイプライン起動ステージ決定処理が終了すると、
OFFSET1=32767
OFFSET2=0、
OFFSET3=−32768、
PIPEKICK=_S1|_S2|_S3
が返される。
次に、ステップS87において、パイプライン処理の起動を行う。ステップS87におけるパイプライン処理の起動は、ステップS86で決定したパイプラインステージ起動パラメータ(PIPEKICK)にセットされた要素「_S1|_S2|_S3」に従って、第1ステージ(S1)の可変長復号処理P11、第2ステージ(S2)の逆量子化処理P12、及び、第3ステージ(S3)の逆DCT処理P13の全パイプライン処理ステージが並列に起動される。
ステップS88では、並列に起動された各処理の終了を待つ。図11に示したタイムチャートで仮定したマクロブロックMB2における可変長符号データのデータ誤り発生は、このステップにおいて検出される。すなわち、このステップにおいて、図10の可変長復号処理手段11が実行しているマクロブロックMB2に対する可変長復号処理P11の過程において、符号誤り検出手段15により可変長符号データにデータ誤りが検出され、エラーフラグ(ERR)が
ERR=1
にセットされる。
符号誤り検出手段15により可変長符号データにデータ誤りが検出される場合として、可変長復号処理手段11が可変長符号データの復号処理を可変長符号テーブルを参照して行っている時に、入力された可変長符号データが可変長符号テーブルに存在しないケースなどがある。
ステップS89において、パイプライン処理が中断処理中かどうかの判定処理として、
OFFSET3!=−32768?
の判定を行う。ここでは、
OFFSET3=−32768
であり、ステップS89での判定結果は「No」(パイプライン処理は中断処理中ではない)となり、ステップS91に進む。
ステップS91では、マクロブロックカウンタ(MBA)のインクリメント処理として、
MBA++
の演算を行い、
MBA=3
として、ステップS92に進む。
次に、ステップS92において、ヘッダ有りかどうかの判定処理が行われ、ここでは、「No」(ヘッダ無し)と判定され、ステップS95に進む。
ステップS95において、フレーム内マクロブロック数の処理が完了したかどうかの判定処理として、
MBA>=MB_IN_VOP?
の判定を行う。ここでは、
MBA=3
MB_IN_VOP=48
であり、ステップS95での判定結果は「No」(処理が完了していない)となリ、ステップS79(図12)に戻る。以上で、期間TM2の処理が終了する。
(期間TM3)
この期間の処理は、復号エラー発生後のパイプライン処理であり、ステップS79から始まる。
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
MBA=3、
PIPE_END=0、
MB_PROC=1、
OFFSET1=32767、
OFFSET2=0、
OFFSET3=−32768、
ERR=1。
ステップS79において、エラー有りかどうかの判定処理として、
ERR!=0?
の判定を行う。ここではエラーフラグ(ERR)は、
ERR=1
であり、ステップS79における判定結果は、「Yes」(エラー有り)となって、ステップS80に進む。
ステップS80において、パイプライン中断フラグ(PIPE_END)の設定として、
PIPE_END=1
の設定を行い、ステップS82(図13)に進む。
ステップS82において、パイプライン処理は先頭の処理かどうかを
OFFSET1==0?
の判定で行う。ここでは、
OFFSET1=32767
であり、ステップS82での判定結果は、「No」(先頭の処理ではない)となり、ステップS83に進む。
ステップS83において、パイプライン処理は中断開始かどうかを
PIPE_END!=0?
の判定で行う。ここでは、
PIPE_END=1
であり、ステップS83の判定結果は、「Yes」(中断開始)となり、ステップS84に進む。
ステップS84において、
PIPE_END=1、
MB_PROC=1、
OFFSET1=32767
が、図10のパイプライン制御手段21からオフセット決定手段24に渡され、パイプライン起動テーブルオフセット決定処理が起動される。そして、図10の起動テーブル記憶手段23に格納されたパイプライン起動テーブル(パイプライン立上げテーブル、パイプライン中断テーブル)を参照する時のオフセット値(OFFSET1、OFFSET2、OFFSET3)が決定される。
パイプライン起動テーブルオフセット決定処理の結果、
OFFSET1=32767、
OFFSET2=0、
OFFSET3=0、
PIPE_END=0
がオフセット決定手段24からパイプライン制御手段21に返され、ステップS85に進む。
ステップS85において、パイプライン処理の中断処理無しかどうかの判定処理として、
OFFSET2==−32768?
の判定を行う。ここでは、
OFFSET2=0
であり、ステップS85の判定結果は、「No」(パイプライン処理の中断処理有り)であり、ステップS86に進む。
ステップS86において、パイプライン起動ステージ決定処理が開始される。この時、
OFFSET1=32767、
OFFSET2=0、
OFFSET3=0
が、図10のパイプライン制御手段21より起動ステージ決定手段22に渡される。パイプライン起動ステージ決定処理が終了すると、
OFFSET1=32767、
OFFSET2=0、
OFFSET3=−1、
PIPEKICK=_S3
が、起動ステージ決定手段22より逆量子化処理手段12に返される。
次に、ステップS87において、パイプライン処理を起動する。ここでは、パイプラインステージ起動パラメータ(PIPEKICK)の要素「_S3」に対応して、第3ステージ(S3)の逆DCT処理P13が起動される。
ステップS88において、逆DCT処理P13の終了を待つ。
ステップS89において、パイプライン処理が中断処理中かどうかの判定処理として、
OFFSET3!=−32768?
の判定を行う。ここでは、
OFFSET3=−1
であり、ステップS89での判定結果は「Yes」(パイプライン処理は中断処理中である)となり、ステップS90に進む。
ステップS90において、パイプライン処理の中断処理が終了したかどうかの判定処理として、
OFFSET3==−1?
の判定を行う。ここでは、
OFFSET3=−1
であり、ステップS90の判定結果は、「Yes」(パイプライン処理の中断終了)となり、ステップS73(図12)に進む。
以上で、期間TM3の処理が終了する。
(期間TC0)
この期間は、誤り隠蔽処理の期間であり、ステップS73から始まる。
この期間の初めにおいて、主要なパラメータは以下のように設定されている。
MBA=3、
PIPE_END=0、
MB_PROC=1、
OFFSET1=32767、
OFFSET2=0、
OFFSET3=−1、
ERR=1。
ステップS73において、エラー有りかどうかの判定処理として、
ERR!=0?
の判定を行う。ここでは、
ERR=1
であり、ステップS73の判定結果は、「Yes」(エラー有り)となって、ステップS74に進む。
ステップS74において、誤り隠蔽処理が開始され、図10の誤り隠蔽処理手段50が起動される。この時、パイプライン制御手段21より誤り隠蔽処理手段50へ、
MBA=3、
MB_IN_VOP=48
が渡される。
以下に、図14を参照して、本形態の誤り隠蔽処理について述べる。
図14は、本発明の実施の形態2における誤り隠蔽処理のフローチャートである。
図12のステップS74において誤り隠蔽処理が開始され、図10の誤り隠蔽処理手段50が起動されると、図14の誤り隠蔽処理のフローチャートに従って誤り隠蔽処理が開始される。
図14のステップS97において、マクロブロックカウンタ(MBA)を、復号エラーが発生したマクロブロックに合わせるために、マクロブロックカウンタのデクリメント処理として、
MBA−−
を演算する。その結果、
MBA=2
となる。(MBA=2は、復号エラーが発生したマクロブロック。)
ステップS98において、誤り隠蔽処理が終了したかどうかの判定処理として、
MBA>=MB_IN_VOP?
の判定を行う。ここでは、
MBA=2
であり、ステップS98の判定結果は、「No」(誤り隠蔽処理は終了していない)となって、ステップS99に進む。
ステップS99において、図10のメモリ30に格納されている1つ前のフレームの復号画像における同一マクロブロック位置の復号画像を、現フレームの復号画像誤り隠蔽処理対象であるマクロブロックMB2にコピーして隠蔽処理を行い、ステップS100に進む。
ステップS100では、マクロブロックカウンタ(MBA)のインクリメント処理として、
MBA++
を実行し、
MBA=3
とする。そして、ステップS98に戻る。
以下、ステップS98からステップS100まで、マクロブロックカウンタ(MBA)が
MBA=48
になるまで、繰り返される。
次に、ステップS98において、誤り隠蔽処理が終了したかどうかの判定処理として、
MBA>=MB_IN_VOP?
の判定を行う。ここでは、
MBA=48
であり、ステップS98の判定結果は、「Yes」(誤り隠蔽処理は終了)となって、誤り隠蔽処理を終了する。以上の処理で、復号エラーが発生したマクロブロック(MB2)から最後のマクロブロック(MB47)までの誤り隠蔽処理が終了する。この時、誤り隠蔽処理手段50よりパイプライン制御手段21へ、
MBA=48、
MB_IN_VOP=48
が返される。
続いて、図12のステップS75に進み、フレーム内マクロブロック数の処理が終了したかどうかの判定処理として、
MBA>=MB_IN_VOP?
の判定を行う。
が行われる。ここでは、
MBA=48
MB_IN_VOP=48
であり、ステップS75の判定結果は、「Yes」(処理が終了)となって、誤り隠蔽処理を伴った一連の復号処理を終了する。
なお、本実施の形態において、画像復号処理における処理手段として、可変長復号処理手段11、逆量子化処理手段12、逆DCT処理手段13を設けたが、それ以外の処理手段を設けたり、複数の処理手段をまとめて一つの処理手段として構成し、その結果、パイプライン処理ステージ数が変わっても同様の効果が得られる。
(実施の形態3)
図15は、本発明の実施の形態3における画像データ処理装置300のブロック図である。本形態の画像データ処理装置300は、パイプライン処理により、画像データを、MPEG規格に代表される符号化データにマクロブロック単位で高速に符号化する。
図15において、 図1と同様な構成要素については、同一の符号を付すことにより、説明を省略する。
図15に示す本形態の画像データ処理装置300は、画像符号化部60、パイプライン制御部20、メモリ30、及び、入出力インターフェイス40を備える。
画像符号化部60は、可変長符号化処理手段61、DCT処理手段62、量子化処理手段63、動き検出処理手段64、動き補償処理手段65、逆量子化処理手段66、及び、逆DCT処理手段67を有する。
パイプライン制御部20は、パイプライン制御手段21、起動ステージ決定手段22、起動テーブル記憶手段23、及び、オフセット決定手段24を有する。
画像符号化部60の各構成要素61〜67とメモリ30と入出力インターフェイス40とは、データバス80に接続されている。また、画像符号化部60の各構成要素61〜67は、制御線81を介して、パイプライン制御部21に接続されている。
動き検出処理手段64は、現フレームの入力画像データである入力画像データと、メモリ30に格納されている前フレームの再構築画像データとを用いて、現フレームの動きベクトルを検出する。
動き補償処理手段65は、動き検出処理手段64が検出した動きベクトルと、メモリ30に格納されている前フレームの再構築画像データとを用いて、現フレームに対する予測画像データを生成する。
DCT処理手段62は、動き補償処理手段65が生成した予測画像データと、入力画像データとの差分をDCT処理して、DCT係数を出力する。
量子化処理手段63は、DCT処理手段62が出力したDCT係数を量子化して、量子化DCT係数を出力する。
逆量子化処理手段66は、量子化処理手段63が出力した量子化DCT係数を逆量子化して、逆量子化DCT係数を出力する。
逆DCT処理手段67は、逆量子化処理手段66が出力した逆量子化DCT係数を逆DCT処理して、再構築画像データを得るためのDCT係数を出力する。
そして、可変長符号化処理手段61は、量子化処理手段63が出力した量子化DCT係数と、動き検出処理手段64が検出した動きベクトルとを可変長符号化して、符号化データを出力する。
なお、以上説明した画像符号化部60の各構成要素61〜67は、本発明の主張するところではないので、更なる詳細な説明を省略する。
本形態の画像データ処理装置300では、パイプライン制御部20が、画像符号化部60におけるパイプライン処理による画像符号化処理の、パイプライン制御を行う。
図16は、本発明の実施の形態3におけるパイプライン処理のタイムチャートである。図16では、画像符号化部60が行う処理のうち、動き検出処理P21、動き補償処理P22、DCT処理P23、及び、量子化処理P24をパイプライン処理により、並列に処理する例を示している。以下にその概略を述べる。
期間TM0では、マクロブロックMB0の動き検出処理P21が行われる。
期間TM1では、マクロブロックMB1の動き検出処理P21とマクロブロックMB0の動き補償処理P22とが並列に行われる。
期間TM2では、マクロブロックMB2の動き検出処理P21とマクロブロックMB1の動き補償処理P22とマクロブロックMB0のDCT処理P23とが並列に行われる。
期間TM3では、マクロブロックMB3の動き検出処理P21とマクロブロックMB2の動き補償処理P22とマクロブロックMB1のDCT処理P23とマクロブロックMB0の量子化処理P24とが並列に行われる。
以下、期間TM47まで同様な並列処理が繰り返される。
期間TM48では、マクロブロックMB47の動き補償処理P22とマクロブロックMB46のDCT処理P23とマクロブロックMB45の量子化処理P24とが並列に行われる。
期間TM49では、マクロブロックMB47のDCT処理P23とマクロブロックMB46の量子化処理P24とが並列に行われる。
期間TM50では、マクロブロックMB47の量子化処理P24が行われる。
以上のパイプライン処理を、図15のパイプライン制御部20が制御する。
起動テーブル記憶手段23には、上述した並列処理P21〜P24をそれぞれ起動するためのパイプライン起動テーブル(パイプライン立上げテーブルとパイプライン中断テーブル)が用意されている。それらの構造は、図9(a)(b)に示すテーブルの構造と類似であり、詳細な説明を割愛する。
オフセット決定手段24は、起動テーブル記憶手段23のパイプライン立上げテーブルとパイプライン中断テーブルを参照する時のオフセット値を決定する。
起動ステージ決定手段22は、オフセット決定手段24が決定したオフセット値を基に、パイプライン各ステージの起動方法を決定する。
パイプライン制御手段21は、起動ステージ決定手段22が決定したパイプライン各ステージの起動方法を基に、画像符号化部60の対応するパイプラインステージの構成要素を起動させる。
本形態のパイプライン制御のフローチャートは、本発明の実施の形態1で述べたパイプライン制御のフローチャートから、容易に類推できるので、具体的記述を省略する。
なお、本形態の画像データ処理装置300では、動き検出処理P21、動き補償処理P22、DCT処理P23、及び、量子化処理P24をパイプラインの各ステージとして並列処理する例を述べたが、並列処理する処理の内容は、その他ものであっても良い。たとえば、動き検出処理手段64とメモリ30とのデータ転送がかなりの時間を要するならば、そのデータ転送を並列に処理しても良い。
以上説明したように、本発明の趣旨は、画像データの符号化および復号をパイプライン処理により、高速で効率的に実行できる画像データ処理装置を実現することにあるのであって、本発明の趣旨を逸脱しない限り、種々の適用が可能である。
本発明に係わる画像データ処理装置は、例えば、カメラつき携帯電話等、画像処理が必要な電子装置とその応用分野において利用できる。
本発明の実施の形態1における画像データ処理装置のブロック図 (a)本発明の実施の形態1における画像復号処理のダイヤグラム (b)本発明の実施の形態1における復号画像の画面図 本発明の実施の形態1におけるパイプライン処理のタイムチャート 本発明の実施の形態1におけるパイプライン制御の前半のフローチャート 本発明の実施の形態1におけるパイプライン制御の後半のフローチャート 本発明の実施の形態1におけるパイプライン起動テーブルオフセット決定処理の前半のフローチャート 本発明の実施の形態1におけるパイプライン起動テーブルオフセット決定処理の後半のフローチャート 本発明の実施の形態1におけるパイプライン起動ステージ決定処理のフローチャート (a)本発明の実施の形態1におけるパイプライン立上げテーブルの構成図 (b)本発明の実施の形態1におけるパイプライン中断テーブルの構成図 本発明の実施の形態2における画像データ処理装置のブロック図 本発明の実施の形態2におけるパイプライン処理のタイムチャート 本発明の実施の形態2におけるパイプライン制御の前半のフローチャート 本発明の実施の形態2におけるパイプライン制御の後半のフローチャート 本発明の実施の形態2における誤り隠蔽処理のフローチャート 本発明の実施の形態3における画像データ処理装置300のブロック図 本発明の実施の形態3におけるパイプライン処理のタイムチャート 従来の画像データ処理装置のブロック図
符号の説明
1 画像データ処理装置
2 ピクセルプロセシングユニット
3 動き予測ユニット
4 コントロールユニット
5 全体制御プロセッサ
6 可変長プロセッサ
7 フレームバッファメモリ
10 画像復号部
11 可変長復号処理手段
12 逆量子化処理手段
13 逆DCT処理手段
14 動き補償処理手段
15 符号誤り検出手段
20 パイプライン制御部
21 パイプライン制御手段
22 起動ステージ決定手段
23 起動テーブル記憶手段
24 オフセット決定手段
30 メモリ
40 入出力インターフェイス
50 誤り隠蔽処理手段
60 画像符号化部
61 可変長符号化処理手段
62 DCT処理手段
63 量子化処理手段
64 動き検出処理手段
65 動き補償処理手段
66 逆量子化処理手段
67 逆DCT処理手段
80 データバス
81 制御線
90 入出力ポート
100、200、300 画像データ処理装置
400 復号画像
401 マクロブロック
420 パイプライン立ち上げテーブル
421 パイプライン中断テーブル

Claims (7)

  1. 入力される入力符号化データをパイプライン処理により復号して、復号画像データを出力する画像復号部と、
    前記画像復号部のパイプライン処理を制御するためのパイプライン制御部と、
    前記入力符号化データと前記復号画像データを格納するメモリとを備え
    前記画像復号部は、一連の復号処理を複数の処理ステージに分割し、これら複数の処理ステージを独立してマクロブロック単位によりパイプライン処理を行う複数段のデータ処理部を有し、
    前記複数段のデータ処理部は、
    前記入力符号化データを可変長復号して、量子化DCT係数と動きベクトルとを出力する可変長復号処理手段と、
    前記可変長復号処理手段が出力した前記量子化DCT係数を逆量子化して、逆量子化DCT係数を出力する逆量子化処理手段と、
    前記逆量子化処理手段が出力した前記逆量子化DCT係数を逆DCT処理して、DCT係数を出力する逆DCT処理手段と、
    前記逆DCT処理手段が出力した前記DCT係数と、前記可変長復号処理手段が出力した前記動きベクトルと、前記メモリに格納されている前フレームの復号画像データとを用いて、現フレームの復号画像データを生成する動き補償処理手段の内の少なくとも2つを有し、
    前記パイプライン制御部は、
    前記画像復号部のパイプライン処理を制御するための起動情報が登録された、パイプライン起動テーブルを格納する起動テーブル記憶手段と、
    前記起動テーブル記憶手段に格納された前記パイプライン起動テーブルを参照するための、オフセット値を決定するオフセット決定手段と、
    前記オフセット決定手段で決定されたオフセット値を基に、前記起動テーブル記憶手段に格納されているパイプライン起動テーブルから、前記画像復号部のパイプライン処理を制御するための起動情報を読み出し、前記画像復号部のパイプライン処理の起動方法を決定する起動ステージ決定手段と、
    前記オフセット決定手段と前記起動ステージ決定手段とを制御して、前記起動ステージ決定手段が決定した前記画像復号部のパイプライン処理の起動方法を基に、前記画像復号部のパイプライン処理を制御するパイプライン制御手段とを有する、画像データ処理装置。
  2. 前記画像データ処理装置は、誤り隠蔽処理手段をさらに備え、
    前記可変長復号処理手段は、前記入力符号化データの符号誤りを検出する符号誤り検出手段をさらに有し、
    前記符号誤り検出手段が、前記入力符号化データのマクロブロックに符号誤りを検出した場合、
    前記誤り隠蔽処理手段は、誤りが検出されたマクロブロック以降のマクロブロックに対して、前記メモリに格納されている過去の復号画像データを充当して、前記入力符号化データの符号誤りよる復号画像の表示の乱れを隠蔽する請求項記載の画像データ処理装置。
  3. 前記符号誤り検出手段が、前記入力符号化データのマクロブロックに符号誤りを検出した場合、
    前記誤り隠蔽処理手段は、誤りが検出されたマクロブロックより前のマクロブロックについて、前記画像復号部のパイプライン処理を最終ステージまで継続した上で、前記隠蔽の対象から除外する請求項2記載の画像データ処理装置。
  4. 入力される入力画像データをパイプライン処理により符号化して、符号化データを出力する画像符号化部と、
    前記画像符号化部のパイプライン処理を制御するためのパイプライン制御部と、前記入力画像データに対する再構築画像データと前記符号化データとを格納するメモリとを備え
    前記画像符号化部は、一連の符号化処理を複数の処理ステージに分割し、これら複数の処理ステージを独立してマクロブロック単位によりパイプライン処理を行う複数段のデータ処理部を有し、
    前記複数段のデータ処理部は、
    現フレームの入力画像データである前記入力画像データと、前記メモリに格納されている前フレームの再構築画像データとを用いて、現フレームの動きベクトルを検出する動き検出処理手段と、
    前記動き検出処理手段が検出した前記動きベクトルと、前記メモリに格納されている前フレームの再構築画像データとを用いて、現フレームに対する予測画像データを生成する動き補償処理手段と、
    前記動き補償処理手段が生成した前記予測画像データと、前記入力画像データとの差分をDCT処理して、DCT係数を出力するDCT処理手段と、
    前記DCT処理手段が出力した前記DCT係数を量子化して、量子化DCT係数を出力する量子化処理手段と、
    前記量子化処理手段が出力した前記量子化DCT係数を逆量子化して、逆量子化DCT係数を出力する逆量子化処理手段と、
    前記逆量子化処理手段が出力した前記逆量子化DCT係数を逆DCT処理して、再構築画像データを得るためのDCT係数を出力する逆DCT処理手段と、
    前記量子化処理手段が出力した前記量子化DCT係数と、前記動き検出処理手段が検出した前記動きベクトルとを可変長符号化して、符号化データを出力する可変長符号化処理手段の内の少なくとも2つを有し、
    前記パイプライン制御部は、
    前記画像符号化部のパイプライン処理を制御するための起動情報が登録されたパイプライン起動テーブルを格納する起動テーブル記憶手段と、
    前記起動テーブル記憶手段に格納された前記パイプライン起動テーブルを参照するときのオフセット値を決定するオフセット決定手段と、
    前記オフセット決定手段で決定されたオフセット値を基に、前記起動テーブル記憶手段に格納されているパイプライン起動テーブルから、前記画像符号化部のパイプライン処理を制御するための起動情報を読み出し、前記画像符号化部のパイプライン処理の起動方法を決定する起動ステージ決定手段と、
    前記オフセット決定手段と前記起動ステージ決定手段とを制御して、前記起動ステージ決定手段が決定した前記画像符号化部のパイプライン処理の起動方法を基に、前記画像符号化部のパイプライン処理を制御するパイプライン制御手段とを有する、画像データ処理装置。
  5. 一連の復号処理を複数の処理ステージに分割し、これら複数の処理ステージを独立してマクロブロック単位によりパイプライン処理を行う複数段のデータ処理を行う画像データ処理ステップと、
    前記画像データ処理ステップにおいて処理した画像データを格納する画像データ格納ステップと、
    前記複数段のパイプラインを制御するパイプライン制御ステップとを含み、
    前記パイプライン制御ステップは、
    前記複数段のパイプラインの起動を制御するための起動情報が登録された、パイプライン起動テーブルを格納する起動テーブル格納ステップと、
    前記パイプライン起動テーブルを参照するためのオフセット値を決定するオフセット値決定ステップと、
    前記オフセット値決定ステップにおいて決定されたオフセット値を基に、前記パイプライン起動テーブルに登録されている前記起動情報を取得し、前記複数段のパイプラインの起動方法を決定する起動ステージ決定ステップと、
    前記起動ステージ決定ステップにおいて決定された起動方法に基づいて、前記複数段のパイプラインを制御するパイプライン制御ステップとを含む、画像データ処理方法。
  6. 前記画像データ処理ステップは、符号化データをマクロブロック単位で復号し、
    前記符号化データの復号誤りを検出する誤り検出ステップと、
    誤り隠蔽処理を行う誤り隠蔽ステップとをさらに含み、
    前記誤り検出ステップにおいて復号誤りが検出された場合、前記パイプライン制御ステップは、前記符号誤りが検出されたマクロブロック以降のマクロブロックに対して、前記画像データ処理ステップにおける復号処理を中断し、前記誤り隠蔽ステップにおける誤り隠蔽処理を実行する、請求項記載の画像データ処理方法。
  7. 前記誤り隠蔽ステップは、前記画像データ格納ステップにおいて格納されている、過去に処理した画像データを充当して、誤り隠蔽処理を実行する、請求項記載の画像データ処理方法。
JP2004298841A 2004-10-13 2004-10-13 画像データ処理装置及び画像データ処理方法 Expired - Fee Related JP4658563B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004298841A JP4658563B2 (ja) 2004-10-13 2004-10-13 画像データ処理装置及び画像データ処理方法
PCT/JP2005/018596 WO2006041018A1 (en) 2004-10-13 2005-09-30 Pipeline architecture for video encoder and decoder
EP20050790417 EP1800489A1 (en) 2004-10-13 2005-09-30 Pipeline architecture for video encoder and decoder
US10/578,012 US20090002378A1 (en) 2004-10-13 2005-09-30 Pipeline Architecture for Video Encoder and Decoder
CNA2005800131806A CN1947425A (zh) 2004-10-13 2005-09-30 视频编码器与解码器的流水线体系结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004298841A JP4658563B2 (ja) 2004-10-13 2004-10-13 画像データ処理装置及び画像データ処理方法

Publications (2)

Publication Number Publication Date
JP2006115092A JP2006115092A (ja) 2006-04-27
JP4658563B2 true JP4658563B2 (ja) 2011-03-23

Family

ID=35295519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004298841A Expired - Fee Related JP4658563B2 (ja) 2004-10-13 2004-10-13 画像データ処理装置及び画像データ処理方法

Country Status (5)

Country Link
US (1) US20090002378A1 (ja)
EP (1) EP1800489A1 (ja)
JP (1) JP4658563B2 (ja)
CN (1) CN1947425A (ja)
WO (1) WO2006041018A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8238415B2 (en) * 2006-02-14 2012-08-07 Broadcom Corporation Method and system for programmable breakpoints in an integrated embedded image and video accelerator
CN100466742C (zh) * 2006-08-07 2009-03-04 清华大学 熵解码和变换流水线阶段的联合处理方法
US8724708B2 (en) 2007-04-27 2014-05-13 Panasonic Corporation Image decoding device, image decoding system, image decoding method, and integrated circuit
KR20100071865A (ko) * 2008-12-19 2010-06-29 삼성전자주식회사 멀티 코어 프로세스 방식의 영상 신호 처리장치에서 영상 프레임 구성 및 복호화 방법과 그 영상 신호 처리장치
EP3468012B1 (en) 2009-07-30 2021-03-03 Mitsuba Corporation Motor with speed reduction mechanism
CN101888554B (zh) * 2010-07-09 2013-05-22 西安交通大学 并行流水运动补偿滤波器vlsi结构设计方法
WO2012035728A1 (ja) * 2010-09-16 2012-03-22 パナソニック株式会社 画像復号装置、画像符号化装置、それらの方法、プログラム、集積回路およびトランスコード装置
US9445363B2 (en) * 2012-02-15 2016-09-13 Acer Incorporated Method of handling transmission configuration of a communication device and related communication device
CN103813177A (zh) * 2012-11-07 2014-05-21 辉达公司 一种视频解码***和方法
CN103246499A (zh) * 2013-05-28 2013-08-14 西安电子科技大学 图像并行化处理装置和方法
CN106708472A (zh) * 2016-12-12 2017-05-24 中国航空工业集团公司西安航空计算技术研究所 一种非阻塞图形命令处理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11126161A (ja) * 1997-10-23 1999-05-11 Hitachi Ltd 制御記憶の障害回避方法
JPH11144064A (ja) * 1994-12-01 1999-05-28 Fujitsu Ltd 情報処理装置及び情報処理方法
WO1999067742A1 (en) * 1998-06-25 1999-12-29 Matsushita Electric Industrial Co., Ltd. Image processor
JP2003204556A (ja) * 2001-12-24 2003-07-18 Shienesu Technology:Kk マルチメディア信号処理のための映像復元プロセッサ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5289577A (en) * 1992-06-04 1994-02-22 International Business Machines Incorporated Process-pipeline architecture for image/video processing
US7095783B1 (en) * 1992-06-30 2006-08-22 Discovision Associates Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto
US6263422B1 (en) * 1992-06-30 2001-07-17 Discovision Associates Pipeline processing machine with interactive stages operable in response to tokens and system and methods relating thereto
AU2002249429A1 (en) * 2001-04-19 2002-11-05 Indigovision Limited Apparatus and method for processing video data
US7634776B2 (en) * 2004-05-13 2009-12-15 Ittiam Systems (P) Ltd. Multi-threaded processing design in architecture with multiple co-processors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11144064A (ja) * 1994-12-01 1999-05-28 Fujitsu Ltd 情報処理装置及び情報処理方法
JPH11126161A (ja) * 1997-10-23 1999-05-11 Hitachi Ltd 制御記憶の障害回避方法
WO1999067742A1 (en) * 1998-06-25 1999-12-29 Matsushita Electric Industrial Co., Ltd. Image processor
JP2003204556A (ja) * 2001-12-24 2003-07-18 Shienesu Technology:Kk マルチメディア信号処理のための映像復元プロセッサ

Also Published As

Publication number Publication date
CN1947425A (zh) 2007-04-11
US20090002378A1 (en) 2009-01-01
WO2006041018A1 (en) 2006-04-20
JP2006115092A (ja) 2006-04-27
EP1800489A1 (en) 2007-06-27

Similar Documents

Publication Publication Date Title
US20090002378A1 (en) Pipeline Architecture for Video Encoder and Decoder
KR100851859B1 (ko) 스케일가능 mpeg-2 비디오 디코더
US8121189B2 (en) Video decoding using created reference pictures
WO2016111950A1 (en) Parallel processing to identify marker sequences in video data
US20060015735A1 (en) Electronic watermarking method and storage medium for storing electronic watermarking program
JPWO2008139721A1 (ja) 復号化装置及び復号化方法
CN115134629B (zh) 视频传输方法、***、设备及存储介质
JP6985915B2 (ja) デコードエラー検出推定装置、映像復号装置、及びこれらのプログラム
JP2004514353A (ja) スケーラブルmpeg−2ビデオシステム
US20070288831A1 (en) Transcodec device
KR20090046812A (ko) 비디오 압축 방법
JP2006203598A (ja) ディジタル画像復号装置及び方法
JP2008109270A (ja) 手振れ補正機能付き動画再生装置
JP3416649B2 (ja) 可変長符号化装置
JP2006203597A (ja) ディジタル画像復号装置及び方法
JP2003189312A (ja) 動画像符号化装置及び動画像復号化装置
JP2000125295A (ja) 動画像符号化装置及び方法、動画像復号化装置及び方法並びに記憶媒体
JP2009094815A (ja) 動画像復号装置及び動画像復号方法
JP4779977B2 (ja) 画像符号化・復号化装置
KR102192980B1 (ko) 기계 학습 기반으로 파라미터를 학습하는 영상 처리 장치 및 동작 방법
JP4851270B2 (ja) 動画像復号装置、および復号方法。
US20230064790A1 (en) Prediction processing system using reference data buffer to achieve parallel non-inter and inter prediction and associated prediction processing method
JPH09154142A (ja) エラー処理装置
CN100486338C (zh) 利用多帧缓冲器在解码动态影像过程中的错误隐藏方法
KR20030033123A (ko) 주변 화소의 표본들을 이용한 에러 은닉 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101201

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101224

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees