JP3715664B2 - 画像処理方法 - Google Patents
画像処理方法 Download PDFInfo
- Publication number
- JP3715664B2 JP3715664B2 JP20781294A JP20781294A JP3715664B2 JP 3715664 B2 JP3715664 B2 JP 3715664B2 JP 20781294 A JP20781294 A JP 20781294A JP 20781294 A JP20781294 A JP 20781294A JP 3715664 B2 JP3715664 B2 JP 3715664B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- frame
- code
- macroblock
- latch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【産業上の利用分野】
本発明は、動画像の処理を行う画像処理方法に関するものである。
【0002】
【従来の技術】
近年、画像データの符号化技術の国際標準化が盛んに行われている。カラー多値画像の符号化方式として、JPEG(カラー静止画符号化)方式が国際標準となった。この方式は入力されたカラー多値画像をブロックに分割し、DCT変換を施した後、係数を量子化し、量子化結果にハフマン符号を割り当て、符号化する方式である。なお、詳細は「カラー静止画像符号化国際標準方式(JPEG)の概説(その1)(技術解説)」[画像電子学会誌第20巻第1号]に掲載されている。
【0003】
また、動画像に関しても国際標準化が進められている。TV会議を用途としたH.261(通信用動画符号化)方式や、蓄積メディアを用途としたMPEG(蓄積用動画像符号化)方式が標準となった。これらの符号化方式は基本となるフレームをフレーム内符号化し、その他のフレームを動き補償によって符号化する方式である。フレーム内符号化の基本はJPEG方式と同様にブロック分割とDCT変換である。また、動き補償においてもブロック単位に動きベクトルを算出し、その対象ブロックとの差分を求め、差分ブロックをDCT変換し、係数を量子化し、量子化結果にハフマン符号を割り当て、符号化する方式である。なお、詳細は「マルチメディア符号化の国際標準」[丸善(株)]に掲載されている。
【0004】
これらの標準化が進む一方で、これらの技術のLSI化が急速に実現しつつある。標準化の進められた順に、最初にJPEG方式のLSIが発表された。その後、JPEG方式の符号化を行うLSIが安価かつ大量に供給された。これにより、動画像の符号化方式であるMPEG方式が標準化される前に、動画像の各フレームをJPEG方式で符号化して磁気ディスク等に格納するアプリケーションが普及した。以下、動画像をJPEG方式により符号化したデータをMotionJPEGデータと称する。
【0005】
これらのアプリケーションでは、MPEG方式と比較してフレーム単位での編集が容易であり、取扱いが容易であるという特徴がある。一方、MPEG方式は、フレーム間符号化を採用しているために符号化効率が高いという特徴がある。
【0006】
また、これらのデータを処理するに際して、MotionJPEGデータをMPEGデータに変換する技術も必要となる。
【0007】
【発明が解決しようとする課題】
しかしながら、上述した例では、MotionJPEGデータをMPEGデータに変換する際に、MotionJPEGデータを復号化して画像データに一旦戻し、その復号化された画像データをMPEGデータに再符号化するため、次のような欠点があった。
【0008】
すなわち、JPEG方式の復号化とMPEG方式の符号化とを同時に実施するために装置の制御が複雑であり、処理量も大きくなる。例えば、JPEG復号器やMPEG符号化部をソフトウェアで実現すると、処理を行うのに非常に多くの時間がかかってしまう。また、MPEG方式で符号化する際に参照フレームを格納しておく作業用のフレームメモリが必要であり、装置全体のコストを下げる際の障害となる等の問題があった。
【0009】
そこで、本発明の目的は、JPEGデータのようなフレーム内符号化データをMPEGデータのようなフレーム間相関による符号化データに変換する際に、画像データに復号化するフレーム内符号化データを減らして効率よくデータの変換を行うことのできる画像処理方法を提供することにある。
【0010】
【課題を解決するための手段】
上記目的を達成するため、本発明の画像処理方法は、ブロック毎に第1の符号化方式でフレーム内符号化された第1のフレーム内符号化データを入力する入力工程と、前記第1のフレーム内符号化データを、復号することなくルックアップテーブルによって前記第1の符号化方式とは異なる第2の符号化方式で第2のフレーム内符号化データに、前記ブロックを複数集めたマクロブロック単位で変換する第1のデータ変換工程と、前記第1のフレーム内符号化データを復号化し、その復号された画像データを前記第2の符号化方式のフレーム間相関によるフレーム間符号化データに、前記マクロブロック単位で変換する第2のデータ変換工程と、前記第1のフレーム内符号化データを復号することによって得られた第1の直交変換係数データと、前フレーム又は後フレームの第2の直交変換係数データとを、前記マクロブロック単位で比較する比較工程と、前記比較工程での比較結果に応じて、前記第2のフレーム内符号化データ及び該第2のフレーム内符号化データの前にスキップするマクロブロック数を示すマクロブロックアドレスインクリメント符号を出力する第1の処理と、前記フレーム間符号化データ及び該フレーム間符号化データの前にスキップするマクロブロック数を示すマクロブロックアドレスインクリメント符号を出力する第2の処理と、前記符号化データを出力しない第3の処理とを選択する選択工程とを有し、前記選択工程では、前記比較工程での比較結果に応じて、データ差が第1所定値より大きい場合に前記第1の処理を選択し、前記データ差が前記第1所定値以下で第2所定値より大きい場合に前記第2の処理を選択し、前記データ差が前記第2所定値以下の場合に前記第3の処理を選択することを特徴とする。
【0022】
【実施例】
以下、本発明の第1の実施例による画像符号化データ変換装置を図面を参照しながら説明する。図1は、本発明の一実施例による画像符号化データ変換装置の構成を示すブロック図である。
【0023】
以下の説明では、フレーム内符号化データを、JPEG方式で符号化されたMotionJPEGデータとし、フレーム間相関を用いた符号化データを、MPEG方式で符号化したデータとする。
【0024】
図1において、1は、MotionJPEGデータを格納する記憶装置であり、2は、JPEG方式の復号化を行うJPEG復号器である。3は、動画像のフレーム画像を格納するフレームメモリである。4は、フレームメモリ3に格納された画像データを表示するディスプレイである。5は、MotionJPEGデータをMPEG方式で符号化したデータに変換するデータ変換部である。6は、装置外部との通信を制御する通信インターフェースである。7は、コンピュータネットワークや公衆回線(例えばISDN回線)で構成される通信回線である。8は、MPEG方式で符号化されたMPEGデータを格納する記憶装置である。9は、装置全体を制御統括するCPUである。10は、ユーザが動画像表示の要求や指定をする入力装置である。
【0025】
JPEGデータのMPEGデータへの変換は以下の手順で行われる。すなわち、MotionJPEGデータは、記憶装置1からデータ変換部5に入力される。データ変換部5は、入力されたMotionJPEGデータをMPEGデータに変換する。
【0026】
図2にデータ変換部5のブロック図を示す。同図において、101は、MPEG方式の符号化単位分のMotionJPEGデータを格納するコードバッファである。ここで、MPEG方式の符号化単位をMPEG方式のマクロブロックとする。なお、マクロブロックは、左右及び上下に隣合った4つの輝度ブロックY0 、Y1 、Y2 、Y3 と画像上では同じ位置にあたる2つの色差ブロックCb、Crとの全部で6つのブロックで構成される。102は、1フレーム分のMotionJPEGデータを格納するコードメモリである。103は、MotionJPEGデータを入力してDCT係数を復号する復号器である。104、105、106は、量子化係数を格納するラッチである。107、108は、MPEG方式の1マクロブロック分の復号化されたDCT係数を格納するラッチである。
【0027】
109は、ブロック単位でDCT係数の絶対値差分を求め、各差分値をあらかじめ設定した閾値と比較して判定結果を出力する差分比較器である。110は、復号データからMPEGデータを生成する符号化器である。111は、MotionJPEGデータの符号化データをMPEGデータに変換するデータ変換器である。112は、差分比較器109の出力を元にMPEGデータを生成する符号化器である。113は、MPEGヘッダデータを生成する符号化器である。114は、差分比較器109の出力結果に基づき入力を選択して出力するセレクタである。115は、セレクタ114の出力を格納しておくコードバッファである。116は、MotionJPEGデータの各ヘッダデータを解析するヘッダ解析器である。117は、差分出力器109の出力を1マクロブロック分格納するラッチである。
【0028】
ここで、説明を容易にするために入力されるMotionJPEGデータは4:1:1のサブサンプリング比であるとする。また、MPEG方式のGOP(Group of Picture)の構成をフレーム内符号化(Intra )フレーム(以下Iフレームと略す)と時間的に前のフレームを参照する動き補償符号化(Predictive)フレーム(以下Pフレームと略す)とで構成されるものとする。
【0029】
MPEG方式のGOPの構成は、IフレームとPフレームとで構成されるものとし、1GOPの構成を15フレームとし、各フレームの符号化モードを、
I、P、P、P、P、P、P、P、P、P、P、P、P、P、P
とする。
【0030】
以下、図2における各構成部の動作について詳細に述べる。
まず、MotionJPEGデータからMPEGデータへの変換に先立ち、図1のCPU9によって図2に示す各構成部の初期化が実施される。
【0031】
次に、MotionJPEGデータの最初のフレームのヘッダデータが、コードバッファ101を経由してヘッダ解析器116に入力される。ヘッダ解析器116は、MotionJPEGデータのヘッダデータを解析し、画像サイズ等の画像の属性を得る。この結果は、符号化器113に入力される。符号化器113は、これらの属性と併せてCPU9から動画像としての属性、フレームレートや符号化レート等が入力され、これらに基づいてMPEGヘッダデータを生成する。生成されたMPEGヘッダデータは、セレクタ114を介してコードバッファ115に出力する。ここで生成されるMPEGヘッダデータは、シーケンススタートコード(SSC)で始まるシーケンスヘッダデータやGOPスタートコード(GSC)で始まるGOPヘッダデータなどから成る。また、ヘッダ解析器116はJPEG方式で用いた量子化テーブルから予め決められたデフォルト量子化テーブルを用いて量子化係数Q1を求める。求められた量子化係数Q1はラッチ105に入力される。デフォルト量子化テーブルは符号化して上記シーケンスヘッダデータに入れる。
【0032】
以下に、MotionJPEGデータからIフレームのMPEGデータへの変換について述べる。フレーム内符号化に先立ち、CPU9は、MPEG方式における符号化制御のために量子化係数Q2をラッチ106に格納する。また、符号化器113でフレームのヘッダデータ(ピクチャヘッダ)を生成する。ここで、符号化したフレームがIフレームであることが示されている。
【0033】
MPEG方式の符号化単位分のMotionJPEGデータが順に図1の記憶装置1から読み出され、コードバッファ101に入力される。フレーム内の位置関係は、JPEG符号化方式のマクロブロックとMPEG符号化方式のマクロブロックとは一致する。従って、1マクロブロックには輝度ブロックが4ブロックと色差ブロックが2ブロック含まれる。コードバッファ101に格納されたMotionJPEGデータは、コードメモリ102とデータ変換器111に入力される。コードメモリ102は、FIFOメモリ等で構成される。
【0034】
続いて、マクロブロックデータの処理を行う。もし、入力されたマクロブロックのデータがフレームの左端であれば、符号化器113は、スライスヘッダを生成し、セレクタ114を介してコードバッファ115に出力し格納する。スライスヘッダを生成する時に量子化係数Q2をラッチ106から読み出し、符号化してスライスヘッダに入れる。
【0035】
データ変換器111のブロック図を図3に示す。150は、量子化係数Q1、Q2を入力し、量子化倍数P1を求める演算器である。151は、入力された符号化データを選択信号に従って出力先を変えるセレクタである。152は、ROM等で構成されるマクロブロックヘッダ生成器である。153は、符号化データ等をアドレスとするROM等で構成される、DCT係数の直流成分の符号化データを変換するDC変換器である。154は、符号化データ等をアドレスとするROM等で構成される、DCT係数の交流成分の符号化データを変換するAC変換器である。155は、選択信号に従って、入力先を変えるセレクタである。
【0036】
最初に、データ変換器111は、マクロブロックのヘッダデータを出力する。このヘッダデータは、符号化するマクロブロックがフレーム内符号化すなわち Intraモードで符号化されることを表すヘッダデータである。CPU9は、セレクタ155の入力にマクロブロックヘッダ生成器152の出力を選択させ、マクロブロックヘッダデータをマクロブロックヘッダ生成器152から読み出し、出力する。
【0037】
続いて、データ変換器111は、ブロック単位でJPEGデータを入力する他にラッチ105とラッチ106から量子化係数Q1、Q2を入力する。最初に、ラッチ105から入力された量子化係数Q1とラッチ106から入力された量子化係数Q2とから量子化倍数P1を演算器150で、次式に従って求める。
P1=Q2/Q1 …… (1)
【0038】
続いて、各ブロックの処理を行う。
JPEGデータにおけるブロック単位の符号化データはDCT直流成分のDPCM結果と交流成分の量子化された結果と0ラン長のハフマン符号とで構成される。
【0039】
まず、直流成分の符号の変換について述べる。サブサンプリング比が4:1:1のJPEG方式とMPEG方式では同じ順でZ字でDPCMがかかる。従って、量子化倍数P1を用いて直流成分の変換を行う。例えば、入力された輝度成分の差分値D1が33であった場合、そのハフマン符号は“1110100001”である。ここで量子化倍数P1が3であれば、出力する差分値D2は、
D2=D1/P1 …… (2)
で求められる。
【0040】
この場合の差分値D2は11であり、従って、このハフマン符号は“1011011”と変換される。実際には、予めDC変換器153に量子化倍数P1の値とハフマン符号をアドレスとして変換結果を格納しておき、DC変換器153のROMから読み出して変換を行う。
【0041】
次に、交流成分の符号の変換について述べる。例えば、輝度成分のハフマン符号“11111111100010011000”は、0ラン長が2で量子化結果R1が16であることを示す。量子化倍数P1が3であれば出力する量子化結果R2は、
R2=R1/P1 …… (3)
から5となり、0ラン長が2で量子化結果が5を表すハフマン符号“1111110111101”に変換される。
【0042】
実際には、予めAC変換器154に量子化倍数P1の値とハフマン符号をアドレスとして変換結果を格納しておき、AC変換器154のLUTとしてのROMから読み出して変換を行う。
このように変換して得られたMPEGデータは、コードバッファ115に格納される。
【0043】
以下、マクロブロック単位の処理を行い、1フレームの処理が終了したら、コードバッファ115の内容を送出し、図1の記憶装置8に格納したり、通信インターフェース6を介して通信回線7に出力したりする。また、送出した符号長をCPU9に通報する。その後、コードバッファ115をクリアする。
【0044】
以上述べたように、本実施例によれば、MotionJPEGデータをIフレームのMPEGデータへ変換する場合に、従来のようにMotionJPEGデータを復号化して画像データに戻すことなく、MotionJPEGデータと量子化係数とから一次変換によって直接MPEGデータへ変換を行っているので、変換時間の短縮化が可能になる。
【0045】
次に、MotionJPEGデータからPフレームのMPEGデータへの変換について述べる。
動き補償符号化に先立ち、CPU9は、前フレームにかかった符号長から符号化制御のための量子化係数Q2を求め、ラッチ106に格納する。また、ラッチ105の量子化係数Q1′をラッチ104に移動させる。そして、JPEG方式で用いた量子化テーブルから予め決められたデフォルト量子化テーブルを用いて量子化係数Q1を求める。求められた量子化係数Q1はラッチ105に入力される。符号化器113でフレームのピクチャヘッダを生成する。ここで、符号化したフレームがPフレームであることが示されている。
【0046】
1マクロブロック分のMotionJPEGデータが順に記憶装置1から読み出され、コードバッファ101に入力される。コードバッファ101に格納されたJPEGデータは、コードメモリ102、復号器103、データ変換器111に入力される。そして、復号器103に入力されたJPEGデータを復号し、ラッチ105の量子化係数Q1を用いて各ブロック毎にDCT係数の直流成分と交流成分を生成し、ラッチ107に格納する。続いて、コードメモリ102から前フレームの同一位置のマクロブロックのJPEGデータを読み出し、復号器103でJPEGデータを復号してラッチ104の量子化係数Q1′を用いて各ブロック毎にDCT係数の直流成分と交流成分を生成し、ラッチ108に格納する。
【0047】
その後、差分比較器109は、ラッチ107とラッチ108とから各ブロック毎にDCT係数を読み出し、各DCT係数毎に差分を求めて絶対値を加算する。各ブロックの加算値A1からA6を求めた後、もし、全ての加算値が0であり、ラッチ117の内容が“10”または“00”であれば、比較差分器109はコード“10”を生成する。
【0048】
それ以外の場合、加算値A1からA6と予め決定された閾値T1とを比較し、全ての加算値で、
T1>Ai≧0 (i=1〜6)… (4)
であれば、差分比較器109はコード“00”を生成する。
また、1つでも(4)式の条件を満たさない場合はコード“01”を生成する。生成したコードは、セレクタ114に出力される。
【0049】
同時に、符号化器110は、マクロブロックのヘッダデータを生成する。すなわち、動きベクトルを(0、0)として動きベクトルの符号を生成する。また、符号化器110は、符号化するマクロブロックが動き補償符号化、すなわちPredictiveモードで符号化されることを表すヘッダデータを生成し、動きベクトル符号を挿入しておく。
【0050】
符号化器110は、ラッチ107から符号化するマクロブロックのDCT係数を読み込むとともに、ラッチ108から符号化するマクロブロックと前フレームの同一位置のマクロブロックのDCT係数を読み込み、ラッチ106から量子化係数Q2を読み込む。そして、符号化器110は、ラッチ107のマクロブロックの各ブロックのDCT係数を逆DCT変換して画素値を再生する。続いて、ラッチ108のマクロブロックの各ブロックのDCT係数を逆DCT変換して画素値を再生する。その後、各画素値の差分を求める。求めた差分値にDCT変換を施し、量子化係数Q2で量子化し、量子化結果を得る。直流成分に関しては、直前のマクロブロックの差分比較器109の出力コードが“00”であれば続いてDPCMし、そうでなければ新たにDPCMを初期化して始める。交流成分の量子化結果はMPEG方式に従って符号を割り当てておく。
【0052】
差分比較器109の出力コードが“00”であった場合、ラッチ117の内容が“10”であれば、セレクタ114は符号化器112の内容を出力した後、符号化器110の出力を入力してコードバッファ115に出力し、格納する。
【0053】
差分比較器109の出力コードが“01”であった場合、ラッチ117の内容が“10”であれば、セレクタ114は符号化器112の内容を出力した後、セレクタ114はデータ変換器111の出力を入力してコードバッファ115に出力し、格納する。
【0054】
差分比較器109の出力コードが“10”であった場合、その結果は符号化器112に入力される。このコードが発生したときは、MPEG符号化データは生成されず、符号化器112では連続して発生したコード“10”の回数をカウントし、その数を表現する符号(マクロブロックアドレスインクリメント符号)を生成する。
【0055】
マクロブロックの処理が終了したら、ラッチ107の内容を差分比較器109の出力に置き換える。
【0056】
以下、マクロブロック単位の処理を行い、1フレームの処理が終了したら、コードバッファ115の内容を送出し、図1の記憶装置8に格納したり、通信インターフェース6を介して通信回線7に出力したりする。また、送出した符号長をCPU9に通報する。その後、コードバッファ115をクリアする。
【0057】
以下、各フレームを予め決められた順にIフレームまたはPフレームとして符号化し、所望のフレーム数のMPEGデータを得る。その後、MPEG方式で決められたシーケンスエンドコード等の終了符号を符号化器113で生成し、セレクタ114を介してコードバッファ115を経て送出し、全ての動作を終了する。
【0058】
以上説明したように、本実施例によれば、フレーム内符号化のみで符号化された動画から動き補償符号化を用いる符号化データへの変換に際して、回路規模が大きく、処理に時間がかかる動きベクトル探索をすることなく、符号化データの変換が瞬時に行える効果がある。
【0059】
また、MPEG方式で符号化する際に参照フレームを格納しておく作業用のフレームメモリが不要であり、装置全体のコストを下げる効果がある。
【0060】
さらに、処理に時間がかかる直交変換を省略できるので処理時間を短縮できる効果がある。また、符号化データの変換をLUTで行うことにより、高速な変換が可能となる。
【0061】
なお、本実施例ではMPEG符号化方式を例にとって説明したが、H.261符号化方式であっても本実施例の構成をH.261の符号に適したものに置き換えることによって本発明を適用できる。
【0062】
次に、本発明の第2の実施例による画像符号化データ変換装置を図面を参照しながら説明する。
図4は、MotionJPEGデータを両方向動き補償符号化(Bidirectionaj Predictive)フレーム(以下、Bフレームと略す)を導入したMPEGデータに変換する場合の図1に示すデータ変換部5のブロック図である。
【0063】
データ変換部5は、入力されたMotionJPEGデータをMPEGデータに変換する。すなわち、図4において、201は、MPEG方式の1マクロブロック分のMotionJPEGデータを格納するコードバッファである。202、203は、1フレーム分のMotionJPEGデータを格納するコードメモリである。204、205、206は、MotionJPEGデータを入力してDCT係数に復号する復号器である。207は、MotionJPEGデータの各ヘッダデータを解析するヘッダ解析器である。208、209、210、211は、量子化係数を格納するラッチである。212、213、214は、マクロブロック分の復号化されたDCT係数を格納するラッチである。
【0064】
215は、ブロック単位でDCT係数の絶対値差分を求め、各差分値をあらかじめ設定した閾値と比較して判定結果を出力する差分比較器である。216は、差分比較器215の出力を1マクロブロック分格納するラッチである。217、218、219は、復号データからMPEGデータを生成する符号化器である。220は、JPEGデータの符号化データをMPEGデータに変換するデータ変換器である。221は、MPEGヘッダデータを生成する符号化器である。222は、差分比較器215の出力を元にMPEGデータを生成する符号化器である。223は、差分比較器215の出力結果に基づき入力を選択して出力するセレクタである。224は、セレクタ223の出力を格納しておくコードバッファである。
【0065】
ここで、説明を容易にするために入力されるMotionJPEGデータは4:1:1のサブサンプリング比であるとする。また、MPEG方式のGOPの構成は、1フレームとPフレームとBフレームで構成されるものとし、1GOPの構成を15フレームとし、各フレームの符号化モードを、
I、B、B、P、B、B、P、B、B、P、B、B、P、B、B
とする。
【0066】
以下、図4の各構成部の動作について詳細に述べる。
まず、MotionJPEGデータからMPEGデータへの変換に先立ち、CPU9によって図4の各構成部の初期化が実施される。
【0067】
次に、MotionJPEGデータの最初のフレームのヘッダデータが、コードバッファ201を経由してヘッダ解析器207に入力される。ヘッダ解析器207は、MotionJPEGデータのヘッダデータを解析し、画像サイズ等の画像の属性を得る。この結果は符号化器221に入力される。符号化器221は、これらの属性と併せてCPU9から動画像としての属性、フレームレートや符号化レート等が入力され、MPEGヘッダデータを生成し、セレクタ223を介してコードバッファ224に出力する。ここで生成されるヘッダデータは、シーケンススタートコードで始まるシーケンスヘッダとGOPスタートコードで始まるGOPヘッダデータである。また、JPEG方式で用いた量子化テーブルから予め決められたデフォルト量子化テーブルを用いて量子化係数Q3を求める。求められた量子化係数Q3はラッチ208に入力される。デフォルト量子化テーブルは、符号化してシーケンスヘッダデータに入れる。
【0068】
以下に、MotionJPEGデータからIフレームのMPEGデータへの変換について述べる。フレーム内符号化に先立ち、CPU9は、符号制御のために量子化係数Q4をラッチ211に格納する。また、符号化器221でピクチャヘッダを生成する。ここで、符号化したフレームがIフレームであることが示されている。
【0069】
まず、1マクロブロック分のMotionJPEGデータが順に記憶装置1から読み出され、コードバッファ201に入力される。コードバッファ201に格納されたJPEGデータは、コードメモリ202とデータ変換器220に入力される。入力されたJPEGデータは、コードメモリ202に格納される。同様に、コードメモリ202から入力されたのと同一位置のマクロブロックのMotionJPEGデータがコードメモリ203に格納される。コードメモリ202、203は、FIFOメモリで構成される。データ変換器220の構成は、第1の実施例のデータ変換器111と同様にLUTで構成されている。
【0070】
続いて、マクロブロックデータの処理を行う。もし、入力されたマクロブロックのデータがフレームの左端であれば、符号化器221はスライスヘッダを生成し、セレクタ223を介してコードバッファ224に出力し、格納する。また、スライスヘッダを生成する時に量子化係数Q4をラッチ211から読み出し、符号化してスライスヘッダに入れる。
【0071】
データ変換器220は、マクロブロックのヘッダデータを生成する。すなわち、データ変換器220は、Intra モードで符号化されたマクロブロックであることを表すヘッダデータを生成する。
【0072】
また、データ変換器220は、ブロック単位でJPEGデータを入力する他にラッチ208とラッチ211とから量子化係数Q3、Q4を入力する。最初にラッチ208から入力された量子化係数Q3とラッチ211から入力された量子化係数Q4とから量子化倍数P2を次式に従って求める。
P2=Q4/Q3 ……(5)
【0073】
続いて、各ブロックの処理を行う。
まず、直流成分の符号の変換について述べる。この場合、量子化倍数P2を用いて直流成分の変換を行う。例えば、入力された輝度成分の差分値D3が33であった場合、量子化倍数Pが1.5であれば、出力する差分値D4は、
【0074】
D4=D3/P2 ……(6)
で求められ、この場合の差分値D4は22である。従って、このハフマン符号は“11010110”と変換される。
【0075】
次に、交流成分の符号の変換について述べる。例えば、輝度成分のハフマン符号“11111111100010011000”は0ラン長が2で量子化結果R3が16であることを示す。量子化倍数P2が1.5であれば出力する量子化結果R4は、
R4=R3/P2 ……(7)
から10.6となり、四捨五入して0ラン長が2で量子化結果が11を表すハフマン符号“1111111101001011”に変換される。
【0076】
これらの変換は、ROM等で構成されるLUT(Look Up Table )を参照することによって行う。
このように変換して得られたMPEGデータは、コードバッファ224に格納される。
【0077】
以下、マクロブロック単位の処理を行い、1フレームの処理が終了したら、コードバッファ224の内容を送出し、図1の記憶装置8に格納したり、通信インターフェース6を介して通信回線7に出力したりする。また、送出した符号長をCPU9に通報する。その後、コードバッファ224をクリアする。
【0078】
次に、MotionJPEGデータからPフレームのMPEGデータへの変換について述べる。
Pフレームの符号化に先立ち、CPU9は、前フレームにかかった符号長から符号化制御のための量子化係数Q4を求め、ラッチ211に格納する。また、ラッチ209の量子化係数Q3′′をラッチ210に移動させるとともにラッチ208の量子化係数Q3′をラッチ209に移動させる。そして、JPEG方式で用いた量子化テーブルから予め決められたデフォルト量子化テーブルを用いて量子化係数Q3を求める。求められた量子化係数Q3はラッチ208に入力される。符号化器221でフレームのピクチャヘッダを生成する。ここで、符号化したフレームがPフレームであることが示されている。
【0079】
1マクロブロック分の Motion JPEGデータが順に記憶装置1から読み出され、コードバッファ201に入力される。コードバッファ201に格納されたJPEGデータはコードメモリ202、復号器204、データ変換器220に入力される。復号器204は、入力されたJPEGデータを復号し、ラッチ208の量子化係数Q3を用いて各ブロック毎にDCT係数の直流成分と交流成分を生成し、ラッチ212に格納する。同時に、コードメモリ202から前のIフレームまたはPフレームの同一位置のマクロブロックのJPEGデータを読み出し、復号器205で復号してラッチ209の量子化係数Q3′を用いて各ブロック毎にDCT係数の直流成分と交流成分を生成し、ラッチ213に格納する。また、読み出したJPEGデータはコードメモリ203にも入力される。
【0080】
その後、差分比較器215は、ラッチ212とラッチ213から各ブロック毎にDCT係数を読み出し、各DCT係数毎に差分を求めて絶対値を加算する。各ブロックの加算値A1からA6を求めた後、もし、全ての加算値が0であり、ラッチ216の内容が“110”または“000”であれば、比較差分器215はコード“110”を生成する。
【0081】
それ以外の場合、加算値A1からA6と予め決定された閾値T2と比較し、全ての加算値で、
T2>Ai≧0 (i=1〜6)……(8)
であれば、差分比較器215は、コード“000”を生成する。
【0082】
また、1つでも(8)式の条件を満たさない場合は、コード“100”を生成する。生成したコードは、セレクタ223に出力される。
【0083】
これと並行して、符号化器217とデータ変換器220が以下の動作を実行する。符号化器221は、マクロブロックのヘッダデータを生成する。すなわち、動きベクトルを(0、0)として動きベクトルの符号を生成する。また、符号化器221は、符号化するマクロブロックが Predictive モードで符号化されることを表すヘッダデータを生成し、動きベクトル符号を挿入しておく。
【0084】
符号化器217はまず、ラッチ212から符号化するマクロブロックのDCT係数を読み込むとともに、ラッチ214から符号化するマクロブロックと前のIフレームまたはPフレームの同一位置のマクロブロックのDCT係数を読み込み、ラッチ211から量子化係数Q4を読み込む。そして、ラッチ212のマクロブロックの各ブロックDCT係数を逆DCT変換して画素値を再生する。続いて、ラッチ214のマクロブロックの各ブロックのDCT係数を逆DCT変換して画素値を再生する。その後、各画素値の差分を求め、求めた差分値にDCT変換を施し、量子化係数Q4で量子化し、量子化結果を得る。直流成分に関しては、直前のマクロブロックの差分比較器215の出力コードが“000”であれば続いてDPCMし、そうでなければ新たにDPCMを初期化して始める。交流成分の量子化結果は、MPEG方式に従って符号を割り当てておく。
【0085】
データ変化器220に入力されたJPEGデータはIntra フレームのマクロブロックと同様にJPEGデータからMPEGデータへと変換される。
【0086】
差分比較器215の出力コードが“000”であった場合、ラッチ216の内容が“110”であれば、セレクタ223は符号化器222の内容を出力した後、符号化器218の出力を入力してコードバッファ224に出力し、格納する。
【0087】
差分比較器215の出力コードが“100”であった場合、ラッチ216の内容が“110”であれば、セレクタ223は符号化器222の内容を出力した後、セレクタ223はデータ変換器220の出力を入力してコードバッファ224に出力し、格納する。
【0088】
差分比較器215の出力コードが“110”であった場合、その結果は符号化器222に入力される。このコードが発生したときは、MPEG符号化データは生成されず、符号化器222では連続して発生したコード“110”の回数をカウントし、マクロブロックアドレスインクリメント符号を生成する。
【0089】
マクロブロックの処理が終了したら、ラッチ216の内容を差分比較器215の出力に置き換える。
【0090】
以下、マクロブロック単位の処理を行い、1フレームの処理が終了したら、コードバッファ224の内容を送出し、図1の記憶装置8に格納したり、通信インターフェース6を介して通信回線7に出力したりする。また、送出した符号長をCPU9に通報する。その後、コードバッファ224をクリアする。
【0091】
最後に、MotionJPEGデータからBフレームのMPEGデータへの変換について述べる。
Bフレームの符号化に先立ち、CPU9は、前フレームにかかった符号長から符号化制御のための量子化係数Q4を求め、ラッチ211に格納する。また、ラッチ209の量子化係数Q3′′をラッチ210に移動させるとともにラッチ208の量子化係数Q3′をラッチ209に移動させる。そして、JPEG方式で用いた量子化テーブルから予め決められたデフォルト量子化テーブルを用いて量子化係数Q3を求める。求められた量子化係数Q3はラッチ208に入力される。また、符号化器221でフレームのピクチャヘッダを生成する。ここで、符号化したフレームがBフレームであることが示されている。
【0092】
1マクロブロック分のMotionJPEGデータが順に記憶装置1から読み出され、コードバッファ201に入力される。コードバッファ201に格納されたJPEGデータは、復号器204、データ変換器220に入力される。復号器204は、入力されたJPEGデータを復号し、ラッチ208の量子化係数Q3を用いて各ブロック毎にDCT係数の直流成分と交流成分を生成し、ラッチ212に格納する。同時に、コードメモリ202から後のIフレームまたはPフレームの同一位置のマクロブロックのJPEGデータを読み出し、コードメモリ203から前のIフレームまたはPフレームの同一位置のマクロブロックのJPEGデータを読み出す。コードメモリ202から読み出されたJPEGデータは、復号器205で復号してラッチ209の量子化係数Q3′を用いて各ブロック毎にDCTの直流成分と交流成分を生成し、ラッチ213に格納する。コードメモリ203から読み出されたJPEGデータは、復号器206で復号してラッチ210の量子化係数Q3′′を用いて各ブロック毎にDCTの直流成分と交流成分を生成し、ラッチ214に格納する。
【0093】
その後、差分比較器215は、ラッチ212、213、214から各ブロック毎にDCT係数を読み出し、各DCT係数毎に差分を求めて絶対値を加算する。すなわち、差分比較器215は、ラッチ212とラッチ213の各ブロックのDCT係数毎の差分の絶対値の加算値BA1からBA6を求める。また、ラッチ212とラッチ214の各ブロックのDCT係数毎の差分の絶対値の加算値FA1からFA6を求める。さらに、ラッチ213と214の各ブロックのDCT係数毎の平均値を求め、ラッチ212の各係数との差分の絶対値の加算値MA1からMA6を求める。
【0094】
もし、加算値FA1〜6の全ての加算値が0であった場合、ラッチ216の内容が“101”または“000”であれば、比較差分器215はコード“101”を生成する。
また、加算値BA1〜6の全ての加算値が0であった場合、ラッチ216の内容が“110”または“001”であれば、比較差分器215はコード“110”を生成する。
また、加算値MA1〜6の全ての加算値が0であった場合、ラッチ216の内容が“111”または“010”であれば、比較差分器215はコード“111”を生成する。
【0095】
それ以外の場合、加算値FA1〜6を全て加えた加算値FA、加算値BA1〜6を全て加えた加算値BA、加算値MA1〜6を全て加えた加算値MAの内、最小値SAを選択する。すなわち、最小値SAは、
SA=min(FA、BA、MA) …… (9)
と表される。
【0096】
その後、最小値SAと予め決定された閾値T5と比較し、最小値SAが、
T5>SA …… (10)
であって、加算値FAが最小であれば、差分比較器215はコード“000”を生成する。加算値BAが最小であれば、差分比較器215はコード“001”を生成する。加算値MAが最小であれば、差分比較器215はコード“010”を生成する。
【0097】
また、1つも(10)式の条件を満たさない場合は、差分比較器215はコード“011”を生成する。生成したコードは、セレクタ223に出力される。
【0098】
同時に、符号化器217、符号化器218、符号化器219、データ変換器220、符号化器221が、以下の動作を実行する。
【0099】
まず、符号化器221は、マクロブロックのヘッダデータを生成する。すなわち、時間的に前のフレームからの動きベクトルを(0、0)として動きベクトルの符号を生成する。この時、符号化器221は、符号化するマクロブロックがForward Predictiveモードで符号化されることを表すヘッダデータを生成し、動きベクトル符号を挿入しておく。
【0100】
そして、符号化器217はまず、ラッチ212から符号化するマクロブロックのDCT係数を、ラッチ214から符号化するマクロブロックと時間的に前のIフレームまたはPフレームの同一位置のマクロブロックのDCT係数を、ラッチ211から量子化係数Q4を読み込む。符号化器217はさらに、ラッチ212のマクロブロックの各ブロックのDCT係数を逆DCT変換して画素値を再生する。続いて、ラッチ214のマクロブロックの各ブロックのDCT係数を逆DCT変換して画素値を再生する。その後、各画素値の差分を求め、求めた差分値にDCT変換を施し、量子化係数Q4で量子化し、量子化結果を得る。直流成分に関しては、直前のマクロブロックの差分比較器215の出力コードが“000”であれば、続いてDPCMし、そうでなければ新たにDPCMを初期化して始める。交流成分の量子化結果は、MPEG方式に従って符号を割り当てておく。
【0101】
また、符号化器221は、マクロブロックのヘッダデータを生成する。すなわち、時間的に後のフレームからの動きベクトルを(0、0)として動きブクトルの符号を生成する。この時、符号化器221は、符号化するマクロブロックがBackword Predictive モードで符号化されることを表すヘッダデータを生成し、動きベクトル符号を挿入しておく。
【0102】
そして、符号化器218はまず、ラッチ212から符号化するマクロブロックのDCT係数を読み込むとともに、ラッチ213から符号化するマクロブロックと時間的に後のIフレームまたはPフレームの同一位置のマクロブロックのDCT係数を読み込み、ラッチ211から量子化係数Q4を読み込む。符号化器218はさらに、ラッチ212のマクロブロックの各ブロックのDCT係数を逆DCT変換して画素値を再生する。続いて、ラッチ213のマクロブロックの各ブロックのDCT係数を逆DCT変換して画素値を再生する。その後、各画素値の差分を求め、求めた差分値にDCT変換を施し、量子化係数Q4で量子化し、量子化結果を得る。直流成分に関しては、直前のマクロブロックの差分比較器215の出力コードが“001”であれば、続いてDPCMし、そうでなければ新たにDPCMを初期化して始める。交流成分の量子化結果は、MPEG方式に従って符号を割り当てておく。
【0103】
さらに、符号化器221は、マクロブロックのヘッダデータを生成する。すなわち、時間的に前後のフレームからの各動きベクトルを(0、0)として動きベクトルの符号を生成する。この時、符号化器221は、符号化するマクロブロックがBidirectional Predictiveモードで符号化されることを表すヘッダデータを生成し、両動きベクトル符号を挿入しておく。
【0104】
そして、符号化器219はまず、ラッチ212から符号化するマクロブロックのDCT係数を読み込むとともに、ラッチ213から符号化するマクロブロックと時間的に後のIフレームまたはPフレームの同一位置のマクロブロックのDCT係数を読み込み、ラッチ214から符号化するマクロブロックと時間的に前のIフレームまたはPフレームの同一位置のマクロブロックのDCT係数を読み込み、ラッチ211から量子化係数Q4を読み込む。符号化器219はさらに、ラッチ213のマクロブロックの各ブロックのDCT係数を逆DCT変換して画素値を再生し、ラッチ214のマクロブロックの各ブロックのDCT係数を逆DCT変換して画素値を再生する。各画素値で平均を求めておく。続いて、ラッチ212のマクロブロックの各ブロックのDCT係数を逆DCT変換して画素値を再生する。その後、画素毎に画素値と平均値の差分を求め、求めた差分値にDCT変換を施し、量子化係数Q4で量子化し、量子化結果を得る。直流成分に関しては、直前のマクロブロックの差分比較器215の出力コードが“010”であれば続いてDPCMし、そうでなければ新たにDPCMを初期化して始める。交流成分の量子化結果は、MPEG方式に従って符号を割り当てておく。
【0105】
データ変換器220に入力されたJPEGデータは、Intra フレームのマクロブロックと同様にJPEGデータからMPEGデータへと変換される。
【0106】
差分比較器215の出力コードが“000”であった場合、ラッチ216の内容が“101”または“110”または“111”であれば、セレクタ223は符号化器222の内容を出力した後、符号化器217の出力を入力してコードバッファ224に出力し、格納する。
【0107】
差分比較器215の出力コードが“001”であった場合、ラッチ216の内容が“101”または“110”または“111”であれば、セレクタ223は符号化器222の内容を出力した後、符号化器218の出力を入力してコードバッファ224に出力し、格納する。
【0108】
差分比較器215の出力コードが“010”であった場合、ラッチ216の内容が“101”または“110”または“111”であれば、セレクタ223は符号化器222の内容を出力した後、符号化器219の出力を入力してコードバッファ224に出力し、格納する。
【0109】
差分比較器215の出力コードが“011”であった場合、ラッチ216の内容が“101”または“110”または“111”であれば、セレクタ223は符号化器222の内容を出力した後、セレクタ223はデータ変換器220の出力を入力してコードバッファ224に出力し、格納する。
【0110】
差分比較器215の出力コードが“101”であった場合、その結果は符号化器222に入力される。このコードが発生したときは、MPEG符号化データは生成されず、符号化器222では連続して発生したコード“101”の回数をカウントし、マクロブロックアドレスインクリメント符号を生成する。
【0111】
差分比較器215の出力コードが“110”であった場合、その結果は符号化器222に入力される。このコードが発生したときは、MPEG符号化データは生成されず、符号化器222では連続して発生したコード“110”の回数をカウントし、マクロブロックアドレスインクリメント符号を生成する。
【0112】
差分比較器215の出力コードが“111”であった場合、その結果は符号化器222に入力される。このコードが発生したときは、MPEG符号化データは生成されず、符号化器222では連続して発生したコード“111”の回数をカウントし、マクロブロックアドレスインクリメント符号を生成する。
【0113】
マクロブロックの処理が終了したら、ラッチ216の内容を差分比較器215の出力に置き換える。
【0114】
以下、マクロブロック単位の処理を行い、1フレームの処理が終了したら、コードバッファ224の内容を送出し、図1の記憶装置8に格納したり、通信インターフェス6を介して通信回線7に出力したりする。また、送出した符号長をCPU9に通報する。その後、コードバッファ224をクリアする。
【0115】
以下、各フレームを予め決められた順にIフレームまたはPフレームとして符号化し、所望のフレーム数のMPEGデータを得る。その後、MPEG方式で決められたシーケンスエンドコード等の終了符号を符号化器221で生成し、セレクタ223を介してコードバッファ224を経て送出し、全ての動作を終了する。
【0116】
次に、本発明の第3の実施例による画像符号化データ変換装置について図5を参照しながら説明する。
本発明の第3の実施例は、演算装置でソフトウェアを用いてデータ処理する場合を示したもので、図5は、本発明の第3の実施例による画像符号化データ変換装置の構成を示すブロック図であり、図6〜図14は、本発明の第3実施例による画像符号化データ変換の手順を表すフローチャートである。なお、図5において、図1と同一の構成のものには同一の符号を付して説明を省略した。
【0117】
図5で、301は、装置全体を制御統括し、MotionJPEGデータをMPEGデータに変換するCPUである。302は、データ処理をするためのソフトウェアを格納しておくプログラムメモリであり、303は、処理をするための作業領域を確保するための作業メモリである。
【0118】
説明を容易にするため、入力されるMotionJPEGデータは4:1:1のサブサンプリング比であるとする。また、MPEG方式のGOPは、IフレームとPフレームとで構成されるものとする。
【0119】
まず、図6のステップS01に示すように、CPU301は、プログラムメモリ302からMotionJPEGデータ/MPEGデータ変換のためのプログラムを読み込み、実行を開始する。
【0120】
次に、ステップS02に示すように、量子化倍数P3の値と直流成分のハフマン符号とをアドレスとする変換結果のLUT(直流成分変換LUT)を作業メモリ303に格納する。
【0121】
次に、ステップS03に示すように、量子化倍数P3の値と交流成分のハフマン符号とをアドレスとする変換結果のLUT(交流成分変換LUT)を作業メモリ303に格納する。
【0122】
次に、ステップS04に示すように、MotionJPEGデータのフレームのヘッダデータを読み込み、JPEGデータのヘッダデータを解析し、画像サイズ等の画像の属性を得る。
【0123】
次に、ステップS05に示すように、各属性、デフォルト量子化テーブルと併せて動画像としての属性を加え、MPEGデータのシーケンスヘッダとGOPヘッダデータを生成し、出力する。
【0124】
以下に、Iフレームの変換について述べる。
まず、ステップS09に示すように、生成するフレームがIフレームかPフレームかを判定し、Iフレームを生成する場合はステップS10に移る。
【0125】
次に、ステップS10に示すように、JPEG符号化データの量子化テーブルから、JPEG方式デフォルト量子化テーブルを用いて量子化係数Q8を求める。
【0126】
次に、ステップS11に示すように、MPEG方式における符号化制御のために量子化係数Q9を決定する。
【0127】
次に、図7のステップS12に示すように、Iフレームであることを示すピクチャヘッダを生成する。
【0128】
次に、ステップS14に示すように、1マクロブロック分のMotionJPEGデータが順に記憶装置1から読み出される。読み出されたMotionJPEGデータは、マクロブロック単位で作業メモリ303に格納される。
【0129】
もし、ステップS15に示すように、入力されたマクロブロックのデータがフレームの左端であれば、ステップS16に示すように、量子化係数Q9を読み出し、スライスヘッダを生成し、出力する。
【0130】
次に、ステップS17に示すように、マクロブロックの処理に先立ち、Intra モードで符号化することを表すマクロブロックのヘッダデータを生成し、出力する。
【0131】
次に、ステップS18に示すように、ブロック単位でJPEGデータを処理する。量子化係数Q8と量子化係数Q9とから量子化倍数P3を次式に従って求める。
P3=Q8/Q9…(11)
【0132】
次に、図8のステップS20に示すように、量子化倍数P3とハフマン符号から作業メモリ303の直流成分変換LUTを参照して、直流成分におけるJPEGデータからMPEGデータへの変換を行う。変換して得られた符号化データは出力される。
【0133】
例えば、輝度成分の直流成分のJPEGデータの差分値D5が20であった場合、そのハフマン符号は“11010100”である。ここで量子化倍数P3が2.5であれば、出力するMPEGデータの差分値D6は、
D6=D5/P3…(12)
で求められる。
【0134】
この場合は、差分値D6は4であり、従って、このハフマン符号は“100100”と変換される。変換して得られた符号化データは、作業メモリ303に一時格納する。
【0135】
次に、ステップS22に示すように、交流成分におけるJPEGデータからMPEGデータへの変換を、同様に量子化倍数P3とハフマン符号から作業メモリ303の交流成分変換LUTを参照して行う。変換して得られた符号化データは出力される。
【0136】
入力されたJPEGデータの量子化結果R5と量子化倍数P3とから変換後のMPEGデータの量子化結果R6は、
R6=R5/P3…(13)
で求められる。
【0137】
例えば、量子化倍数P3が7であって、0ラン長が5で量子化結果R5が3であることを示すハフマン符号“1111111011111”が入力されたとする。このときの量子化結果R6は、1以下になってしまうが、切り上げて1とする。従って、0ラン長が5で量子化結果が1を表すハフマン符号“11110101”に変換される。
【0138】
以上のような交流成分の変換を、ステップS21に示すように、全ての交流成分が終了するまで続け、終了したらステップS19に戻る。
【0139】
以下、ステップS19に示すように、マクロブロック単位の処理を行い、1フレームの処理が終了したら、図7のステップS13に示すように、次のフレームの処理に移る。
【0140】
図5において、もし、ステップS06に示すように、次のフレームがない場合には、動画像が終了したので、ステップS07に示すように、シーケンスの終了コードを生成して出力し、ステップS08に示すように、処理を終了する。
【0141】
次に、Pフレームのデータへの変換について述べる。
まず、ステップS09に示すように、生成するフレームがIフレームかPフレームかを判定し、Pフレームを生成する場合はステップS23に移る。
【0142】
次に、ステップS23に示すように、JPEG符号化データの量子化テーブルから、JPEG方式デフォルト量子化デーブルを用いて量子化係数Q10を求める。
【0143】
次に、ステップS24に示すように、前フレームのJPEGデータの量子化係数(前フレームがIフレームであれば前述の量子化係数Q8、Pフレームであれば前フレームの量子化係数Q10)を量子化係数Q11として保持しておく。
【0144】
次に、図9のステップS25に示すように、符号化制御のために量子化係数Q12を決定する。
【0145】
次に、ステップS26に示すように、Pフレームであることを示すピクチャヘッダを生成する。
【0146】
次に、ステップS28に示すように、1マクロブロック分のMotionJPEGデータが、順に記憶装置1から読み出される。読み出されたMotionJPEGデータは、マクロブロック単位で作業メモリ303に格納される。
【0147】
もし、ステップS29に示すように、入力されたマクロブロックのデータがフレームの左端であれば、ステップS30に示すように、量子化係数Q12を読み出し、スライスヘッダを生成し、出力する。
【0148】
続いて、マクロブロック単位でJPEGデータを処理する。
すなわち、図10のステップS32に示すように、JPEGデータを復号し、量子化係数Q10とJPEG方式デフォルト量子化テーブルを用いて各ブロックのDCTの直流成分と交流成分を生成する。
【0149】
次に、ステップS33に示すように、前フレームの同一位置のマクロブロックのJPEGデータを作業メモリ303から読み出して復号し、量子化係数Q11とJPEG方式デフォルト量子化テーブルを用いて各ブロックのDCT係数の直流成分と交流成分を生成する。
【0150】
次に、ステップS34に示すように、各ブロック毎にDCT係数毎の差分を求めて絶対値を加算する。これらの処理を6つのブロック全てについて行い、終了したらステップS35に移る。なお、加算の結果をブロックの順にAA1からAA6とする。
【0151】
もし、ステップS35に示すように、全ての加算値AA1〜6が0、すなわち、
AAi=0(i=1〜6) …(14)
であれば、動きベクトル(0,0)で符号が発生しないマクロブロックであることを示している。
【0152】
この場合は、もし、ステップS36に示すように、直前のマクロブロックの符号化モードがPredictiveモードであれば、スキップの処理を実施する。
【0153】
すなわち、ステップS37に示すように、スキップのマクロブロックを計数しておく。
【0154】
もし、ステップS36に示すように、直前のマクロブロックの符号化モードがPredictiveモードでなければ、図13のステップS53に示すように、動きベクトル(0,0)のPredictiveモードで符号化されることを表すマクロブロックヘッダを出力する。
【0155】
さらに、ステップS54に示すように、スキップするマクロブロックの計数値を0とする。
【0156】
もし、図10のステップS35に示すように、ブロックの加算値AA1〜6が全て0でなければ、図11のステップS38に示すように、加算値AA1からAA6と予め決定された閾値T3と比較し、全ての加算値で、
T3>AAi>0 (i=1〜6)… (15)
であれば、Predictiveモードの符号を生成する。
【0157】
次に、ステップS39に示すように、Predictiveモードで符号化されることを表すマクロブロックのヘッダデータを生成する。このヘッダデータには、動きベクトル(0,0)の符号と、加算値AA1〜6が0でないブロックの位置を表す符号を生成し、マクロブロックヘッダに入れて出力する。
【0158】
次に、ステップS41に示すように、符号化するフレームの加算値AAi(i=1〜6)が0でないブロックのDCT係数を逆DCT変換して画素値を再生する。
【0159】
次に、ステップS42に示すように、符号化する直前のフレームの同一位置のブロックの、加算値AAi(i=1〜6)が0でないブロックのDCT係数を逆DCT変換して画素値を再生する。
【0160】
その後、ステップS43に示すように、各画素値の差分を求める。
【0161】
次に、ステップS44に示すように、求めた差分値にDCT変換を施し、量子化係数Q12で量子化し、量子化結果を得る。以上の処理をステップS40に示すように、全てのブロックについて行い、終了したらステップS45に移る。
【0162】
もし、図12のステップS45に示すように、直流成分に関しては、直前のマクロブロックがPredictiveモードで符号化されていれば、ステップS46に示すように、DPCMを行い、MPEG方式の符号で符号化し、出力する。また、直前のマクロブロックのモードIntra モードであったり、左端のマクロブロックであれば、ステップS47に示すように、新たにDPCMを初期化して、ステップS48に示すように、直流成分の符号化を行う。
【0163】
次に、ステップS49に示すように、交流成分の量子化結果は、MPEG方式に従って符号を割り当て、出力する。
【0164】
次に、ステップS50に示すように、全てのブロックについてステップS51の直流成分の符号化及びステップS52の交流成分の符号化を行い、終了したらステップS27に戻る。
【0165】
また、図11のステップS38に示すように、1つでも(15)式の条件を満たさない場合は、Intra モードの符号に変換して出力する。
【0166】
変換に先立ち、直前のマクロブロックがスキップ処理がされていれば、ステップS55に示すように、計数値に見合ったマクロブロックアドレスインクリメント符号として出力する。
【0167】
変換の詳細は、図14のステップS56〜61のIフレームのマクロブロックの変換処理と同様の処理を実施する。
【0168】
以下、マクロブロック単位の処理を行い、図6のステップS06に示すように、1フレームの処理が終了したら、次のフレームの処理に移る。
【0169】
もし、次のフレームがない場合には動画像が終了したので、ステップS07に示すように、シーケンスの終了コードを生成して出力し、ステップS08に示すように、処理を終了する。
【0170】
なお、本実施例ではMPEG符号化方式を例にとって説明したが、H.261符号化方式であっても本実施例の構成をH.261の符号に適したものに置き換えることによって本発明を適用できる。また、MPEG方式のGOPがIフレームとPフレームとで構成される場合について説明したが、Bフレームを導入したMPEG方式への変換に本発明を適用してもよい。また、本実施例においては、Iフレームのマクロブロックの変換処理を行うに際しては、図14のステップS56〜61を用いたが、これに限らず他の処理としてもよい。
【0171】
また、動画像の符号化の例としてMPEG方式やH.261方式を例にとったが、動画像の符号化方式はこれに限定されず、動き補償をする符号化であれば良い。さらに、画像のサンプリングで4:1:1を例にとって説明したが、4:4:4や4:2:2を入力とした場合でも色度成分のみを再生してサブサンプリングした後符号化すれば良い。
【0172】
【発明の効果】
以上説明したように、本発明によれば、第1の符号化方式でフレーム内符号化された第1のフレーム内符号化データを、第2の符号化方式の第2のフレーム内及びフレーム間符号化データに効率よく変換することができ、データ量も大幅に削減することができる。
【図面の簡単な説明】
【図1】本発明の一実施例による画像符号化データ変換装置の構成を示すブロック図である。
【図2】本発明の第1実施例によるデータ変換部の構成を示すブロック図である。
【図3】本発明の一実施例によるデータ変換器の構成を示すブロック図である。
【図4】本発明の第2実施例によるデータ変換部の構成を示すブロック図である。
【図5】本発明の第3実施例による画像符号化データ変換装置の構成を示すブロック図である。
【図6】本発明の第3実施例による画像符号化データ変換の手順を表すフローチャートである。
【図7】本発明の第3実施例による画像符号化データ変換の手順を表すフローチャートである。
【図8】本発明の第3実施例による画像符号化データ変換の手順を表すフローチャートである。
【図9】本発明の第3実施例による画像符号化データ変換の手順を表すフローチャートである。
【図10】本発明の第3実施例による画像符号化データ変換の手順を表すフローチャートである。
【図11】本発明の第3実施例による画像符号化データ変換の手順を表すフローチャートである。
【図12】本発明の第3実施例による画像符号化データ変換の手順を表すフローチャートである。
【図13】本発明の第3実施例による画像符号化データ変換の手順を表すフローチャートである。
【図14】本発明の第3実施例による画像符号化データ変換の手順を表すフローチャートである。
【符号の説明】
1、8 記憶装置
2 JPEG復号器
3 フレームメモリ
4 ディスプレイ
5 データ変換部
6 通信インターフェイス
7 通信回線
9、301 CPU
10 入力装置
101、115、201、224 コードバッファ
102、202、203 コードメモリ
103、204、205、206 復号器
104、105、106、107、108、117、208、209、210、211、212、213、214、216 ラッチ
109、215 差分比較器
110、112、113、217、218、219、221、222 符号化器
111、220 データ変換器
114、151、155、223 セレクタ
116、207 ヘッダ解析器
150 演算器
152 マクロブロックヘッダ生成器
153 DC変換器
154 AC変換器
302 プログラムメモリ
303 作業メモリ
Claims (1)
- ブロック毎に第1の符号化方式でフレーム内符号化された第1のフレーム内符号化データを入力する入力工程と、
前記第1のフレーム内符号化データを、復号することなくルックアップテーブルによって前記第1の符号化方式とは異なる第2の符号化方式で第2のフレーム内符号化データに、前記ブロックを複数集めたマクロブロック単位で変換する第1のデータ変換工程と、
前記第1のフレーム内符号化データを復号化し、その復号された画像データを前記第2の符号化方式のフレーム間相関によるフレーム間符号化データに、前記マクロブロック単位で変換する第2のデータ変換工程と、
前記第1のフレーム内符号化データを復号することによって得られた第1の直交変換係数データと、前フレーム又は後フレームの第2の直交変換係数データとを、前記マクロブロック単位で比較する比較工程と、
前記比較工程での比較結果に応じて、前記第2のフレーム内符号化データ及び該第2のフレーム内符号化データの前にスキップするマクロブロック数を示すマクロブロックアドレスインクリメント符号を出力する第1の処理と、前記フレーム間符号化データ及び該フレーム間符号化データの前にスキップするマクロブロック数を示すマクロブロックアドレスインクリメント符号を出力する第2の処理と、前記符号化データを出力しない第3の処理とを選択する選択工程とを有し、
前記選択工程では、前記比較工程での比較結果に応じて、データ差が第1所定値より大きい場合に前記第1の処理を選択し、前記データ差が前記第1所定値以下で第2所定値より大きい場合に前記第2の処理を選択し、前記データ差が前記第2所定値以下の場合に前記第3の処理を選択することを特徴とする画像処理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20781294A JP3715664B2 (ja) | 1994-08-31 | 1994-08-31 | 画像処理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20781294A JP3715664B2 (ja) | 1994-08-31 | 1994-08-31 | 画像処理方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0879741A JPH0879741A (ja) | 1996-03-22 |
| JP3715664B2 true JP3715664B2 (ja) | 2005-11-09 |
Family
ID=16545916
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP20781294A Expired - Fee Related JP3715664B2 (ja) | 1994-08-31 | 1994-08-31 | 画像処理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3715664B2 (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008118693A (ja) * | 1997-11-05 | 2008-05-22 | Sony Corp | ディジタル信号変換方法およびディジタル信号変換装置 |
| JP4672594B2 (ja) * | 2006-05-11 | 2011-04-20 | 日本電信電話株式会社 | 符号化ストリーム再符号化方法、符号化ストリーム再符号化装置、符号化ストリーム復元方法、符号化ストリーム復元装置、符号化ストリーム再符号化プログラム、符号化ストリーム復元プログラムおよびそれらのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
| JP2008153771A (ja) * | 2006-12-14 | 2008-07-03 | Mitsubishi Electric Corp | 画像符号化方式変換装置 |
| JP5226089B2 (ja) * | 2011-01-06 | 2013-07-03 | 三菱電機株式会社 | 画像符号化方式変換装置 |
-
1994
- 1994-08-31 JP JP20781294A patent/JP3715664B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0879741A (ja) | 1996-03-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4376302B1 (ja) | 動画像復号化方法及び装置 | |
| KR101473278B1 (ko) | 화상 예측 부호화 장치, 화상 예측 복호 장치, 화상 예측 부호화 방법, 화상 예측 복호 방법, 화상 예측 부호화 프로그램, 및 화상 예측 복호 프로그램 | |
| US20030095603A1 (en) | Reduced-complexity video decoding using larger pixel-grid motion compensation | |
| KR101090586B1 (ko) | 부호화 장치/복호화 장치, 부호화 방법/복호화 방법 및 기록 매체 | |
| JP2002532029A (ja) | ビデオ圧縮のための効率的マクロブロックヘッダ符号化 | |
| JP3651941B2 (ja) | 画像再生装置 | |
| US20040013399A1 (en) | Information processing method and apparatus | |
| JP2004128749A (ja) | 動画像符号化方法及び復号化方法 | |
| JPH10322696A (ja) | 信号符号化装置、信号符号化方法、信号記録媒体及び信号伝送方法 | |
| JPH0818979A (ja) | 画像処理装置 | |
| US7346108B2 (en) | Encoded-data converting apparatus and method for the same | |
| US7933335B2 (en) | Moving picture conversion apparatus | |
| JP3715664B2 (ja) | 画像処理方法 | |
| WO2025157062A1 (zh) | 参考块的搜索方法、电路、芯片及设备 | |
| JP3257052B2 (ja) | 画像信号の高能率符号化装置及びその方法 | |
| JP2002344973A (ja) | 画像符号化データのサイズ変換方法、画像符号化データ伝送方法、及び画像符号化データサイズ変換装置 | |
| JP3141149B2 (ja) | 画像符号化装置 | |
| JP3690259B2 (ja) | 動画像高速符号化装置及び動画像高速符号化方法 | |
| JP3240737B2 (ja) | 画像信号符号化方法、装置、復号化方法及び装置 | |
| JPH0984011A (ja) | 動画符号化方式変換装置 | |
| JP4100067B2 (ja) | 画像情報変換方法及び画像情報変換装置 | |
| JPH11155147A (ja) | 画像再生方法、画像符号化装置及び画像符号化方法 | |
| JP5533885B2 (ja) | 動画像符号化装置および動画像復号装置 | |
| JP3428549B2 (ja) | 動画像圧縮装置 | |
| JP3188081B2 (ja) | 画像符号化方法および画像符号化装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050719 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050826 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090902 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090902 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100902 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110902 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110902 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120902 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120902 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130902 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |