以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
本発明は、例えば図1に示すように構成された画像処理システム1に適用される。
図1に示す画像処理システム1は、デコーダ10とエンコーダ30とをカスケードに接続してなり、外部からエンコードされたMPEG2規格に準拠したビットストリームが入力されるデコーダ10と、デコーダ10でデコードされた画像データを再エンコードして外部にビットストリームとして出力するエンコーダ30とからなる。
デコーダ10は、外部からMPEG2方式で符号化されたビットストリームが入力されるバッファ11を備える。このバッファ11は、ビットストリームを一旦記憶して、可変長復号部(VLD:Variable Length Decoder)12に出力する。
可変長復号部12は、バッファ11からの可変長符号のビットストリームに例えばマクロブロック(MB)単位で可変長復号処理を施すことで量子化係数や動きベクトルを求めて、逆量子化部(Inverse Quantization:IQ)14に出力する。
また、この可変長復号部12は、上述のように可変長復号処理を行うとともに、各MB層について付加された符号化パラメータ(以下、MBパラメータ(MB_parameters)と呼ぶ。)を検出してメモリ13に出力する。更に、可変長復号部12は、ピクチャ層以上の符号化パラメータ(Sequence_GOP_Picure_parameters)を検出するとともに、ピクチャ層の符号化パラメータ及びMBパラメータが有効か否かを示すパラメータ判定情報(picture_mb_parameters_valid)を生成して、後述の制御部41に出力する。
上記Sequence_GOP_Picure_parametersには、MPEG2規格において定義されている以下のパラメータを含む。すなわち可変長復号部12に入力されるビットストリームには、シーケンスヘッダ(Sequence_header)の直後配置されるシーケンス拡張部(Sequence_extension)、シーケンスディスプレイ機能拡張部(Sequence_display_extension)、シーケンス・スケーラブル機能拡張部(Sequence_scalable_extension)が含まれ、これらの拡張部に続いてGOPヘッダ(group_of_pictures_header)が付加される。
更に、ビットストリームには、I(Inter)ピクチャ(フレーム内符号化画像)、P(Predictive)ピクチャ(フレーム間順方向予測符号化画像)及びB(Bidirectionally Predictive)ピクチャ(双方向予測符号化画像)のピクチャ毎に関する情報を格納したピクチャヘッダ(picture_header)、ピクチャ符号化機能拡張部(picture_coding_extension)、量子化マトリクス機能拡張部(quant_matrix_extension)、ピクチャディスプレイ機能拡張部(picture_display_extension)等の拡張部が含まれる。
更にまた、ピクチャ層以上の符号化パラメータは、画像サイズ(horizontal_size、vertical_size)、piture_coding_type、top_field_first、repeat_first_field等のパラメータをも含む。
上記MBパラメータは、MB層の符号化パラメータであり、MPEG2規格において定義されている以下のパラメータを含む。すなわち、MB層には、マクロブロックアドレス、量子化ステップ・サイズを示す量子化スケール、この量子化スケールが有効であることを示すフラグ(MBがスキップMB又はnot coded MBのとき、“0”とされる。)、DCTがフレームモードかフィールドモードかを示すDCTタイプ、フレームモード、フィールドモード又はデュアルプライムモードで動き補償を行うことを示す動き補償タイプ、前方向、後方向又は両方向で動き予測を行うことを示すMBモード、動きベクトル、フィールド動きベクトルの参照フィールド、デュアルプライムの補助ベクトルが含まれる。
可変長復号部12は、復号するマクロブロックが“not coded MB”であるとき、すなわちイントラMB以外でcoded_block_patternが存在しないマクロブロックのとき、上記DCTタイプをフレームモードとする。
また、可変長復号部12は、スキップMBのとき、上記DCTタイプをフレームモードとし、上記動き補償タイプをフレーム予測とし、上記MBモードをPピクチャのとき前方向予測、Bピクチャのとき直前のMBからの予測とし、上記動きベクトルをPピクチャのとき0、Bピクチャのとき直前のMBと同じ値とする。
更に、可変長復号部12は、上述したように、シーケンス層、GOP層、ピクチャ層、MB層における種々の符号化パラメータを出力するとともに、下記の表1に示すように、2ビットのフラグ、すなわちピクチャ層の符号化パラメータが有効か否かを示す1ビットのフラグと、MBパラメータが有効か否かを示す1ビットのフラグで表現されるパラメータ判定情報を生成する。
すなわち、可変長復号部12は、ピクチャ層の符号化パラメータ及びMBパラメータにエラー(invalid)を含んでいるときにはフラグを“00”とし、ピクチャ層の符号化パラメータにはエラーを含んでない(valid)がMBパラメータにエラーを含んでいるときにはフラグを“10”とし、ピクチャ層の符号化パラメータ及びMBパラメータにエラーを含んでないときにはフラグを“11”としてパラメータ判定情報を生成して制御部41に出力する。
ピクチャ層の符号化パラメータにエラーが含まれるときとしては、例えば、デコーダ10の可変長復号部12における復号処理中においてビットストリームにエラーが発生したときが挙げられる。このとき、次のGOPヘッダを検出してエラーリカバリーをするまでの間にデコーダ10からエラーコンシールによって出力した画像データはpicture_coding_typeを持たないので、ピクチャ層の符号化パラメータにエラーを含むことになり、ピクチャ層の符号化パラメータが後述の制御部41で無効と判定される。
また、MBパラメータにエラーが含まれるときとしては、例えば、復号したピクチャ内にMB層のビットストリームエラーがあったときが挙げられる。このとき、MBパラメータにエラーを含むことになり、MBパラメータが後述の制御部41で無効と判定される。
更に、この可変長復号部12は、スイッチ部21を介してエンコーダ30に出力されるフィールド画像列の画像データの中でスイッチ部31に入力されるフィールド画像と、エンコーダ30から出力するときのフィールド画像とが同じ画像としてエンコーダ30側でエンコードを行わせるため、top_field_first及びrepeat_first_fieldを制御部41に出力する。
ここで、上記top_field_firstはインタレース画像において、フレーム構造のピクチャのトップフィールドとボトムフィールドとのいずれかを時間的に先に表示するか否かを示すフラグであり、上記repeat_first_fieldはフレーム構造のピクチャを表示するときに一番目に表示するフィールドを2番目に表示するフィールドの後に繰り返して表示するか否かを示すフラグである。
メモリ13は、可変長復号部12からのMBパラメータが入力され、エンコーダ30側の処理タイミングに応じて、後述する所定のピクチャ時間のディレイが制御部41により制御されて出力する。
逆量子化部14は、可変長復号部12からの量子化係数からなる画像データについて例えば8×8画素ブロックごとに逆量子化を行う。このとき、逆量子化部14は、画像データに量子化ステップを乗算することでDCT変換係数とする逆量子化処理を行って、画像データを逆DCT(Inverse Discrete Cosine Transform:IDCT)部15に出力する。
逆DCT部15は、逆量子化部14からの画像データについて例えば8×8画素ブロック単位で離散コサイン変換の逆変換を行う。これにより、逆DCT部15は、8×8画素ブロック毎にそれぞれの画素値(輝度、色差)を算出する。そして、この逆DCT部15は、逆変換を施して生成した画素値からなる画像データを加算器16に出力する。
加算器16は、逆DCT部15からの画像データと、動き補償部18からの画像データとを加算処理して制御部17に出力する。
動き補償(Motion Compensation:MC)部18は、時間的に前及び後に位置する画像データを格納するフレームメモリ(FM)を備え、動きベクトルに基づいて当該フレームメモリから予測する画像データをピクチャタイプ毎に読み出して加算器16で加算処理をさせることで動き補償をする。
制御部17は、加算器16から復号順序でフレームが配列されてなるフレーム画像シーケンスを、表示順序でフレームが配列されてなるフレーム画像シーケンスとするように、フレームの順序を変更して画像処理部19に出力する。
画像処理部19は、後段のエンコーダ30で行う再エンコードを画像サイズを変更して行うとき、制御部17から入力される画像データS10について、画像サイズを変更する処理を行う。この画像処理部19は、例えば720ピクセル×480ピクセルの画像を352ピクセル×480ピクセルの画像データS30としてスイッチ部21に出力する。
また、この画像処理部19は、制御部17からの画像データを構成する各ピクチャについて、ピクチャ内の垂直方向及び水平方向の画素を補間して、制御部17から入力されたときよりも解像度が高いピクチャとするアップサンプリング処理を行う。
また、画像処理部19は、各ピクチャのピクチャヘッダに付加されているトップ・フィールド・ファースト(top_field_first)及びリピート・ファースト・フィールド(repeat_first_field)に基づいて、入力されたビットストリームを構成する各ピクチャをフレーム画像からインタレース画像とする。
更に、この画像処理部19は、各ピクチャについて輝度信号、色差信号Cb、Crの比を示す輝度色差フォーマットを変換する処理を行う。すなわち、この画像処理部19は、ピクチャ毎に水平方向及び垂直方向において色情報を半分に削減した輝度色差フォーマットを示す4:2:0から、水平方向において色情報を半分に削減した輝度色差フォーマットを示す4:2:2に切り換える処理を行う。
そして、この画像処理部19は、画像サイズを変更する処理、上述したアップサンプリング処理、ピクチャヘッダを書き換えてフレーム画像からフィールド画像に変換する処理、輝度色差フォーマットを変換する処理を行った画像データS30をスイッチ部21を介してエンコーダ30に出力する。
ダミーデータ付加部20は、後段のエンコーダ30で行う再エンコードを画像サイズを変更しないで行うとき、制御部17から入力される画像データについて、図2に示すように、例えば水平方向におけるサイズx×垂直方向におけるサイズyの画像データ(図2(a))にダミーデータを付加する処理を行って(図2(b))、ダミーデータを付加した画像データS20をスイッチ部21を介してエンコーダ30に出力する。
このとき、ダミーデータ付加部20は、制御部17からの画像データS10のピクチャ単位の画像サイズが720ピクセル×480又は576ピクセルよりも小さいと判定したときにはダミーデータを付加して、720ピクセル×480又は576ピクセルの画像データとする処理を行う。すなわち、ダミーデータ付加部20は、制御部17からの画像データS10のピクチャ単位の画像サイズが720ピクセル×480又は576ピクセルよりも小さいと判定したときには、画像データが示すピクチャの水平方向において(720−x)ピクセル×480又は576ピクセルのダミーデータを付加し、ピクチャの垂直方向においてxピクセル×(480−y)又は(567−y)ピクセルのダミーデータを付加する処理を行う。
スイッチ部21は、後述の制御部41からの制御信号にしたがって開閉動作し、端子aが接続されることでダミーデータ付加部20からの画像データS20をエンコーダ30に出力するとともに、端子bが接続されることで画像処理部19からの画像データS30をエンコーダ30に出力する。
制御部41は、可変長復号部12からピクチャ層以上の符号化パラメータ(Sequence_GOP_Picure_parameters)が入力され、Sequence_parameters、GOP_parameters、Picure_parametersをエンコーダ30に出力する。また、この制御部41には、可変長復号部12から上述の表1を用いて説明したパラメータ判定情報が入力される。制御部41は、入力した符号化パラメータ及びパラメータ判定情報をメモリ42に格納する処理を行う。
制御部41は、デコーダ10及びエンコーダ30の処理タイミングを制御するため、スイッチ部21、スイッチ部31及びスイッチ部37に制御信号を出力して、各スイッチ部21、31、37の開閉タイミングを制御する。このとき、制御部41は、上記パラメータ判定情報を参照することで、ピクチャ層の符号化パラメータが有効か否かを判定するとともに、MBパラメータが有効か否かを判定して、スイッチ部37を開閉動作させるための制御信号等を生成する。このとき、制御部41は、作業用メモリとして機能するメモリ42に上記各パラメータを格納して上述の処理を行う。
エンコーダ30は、上記スイッチ部21から画像データS20又は画像データS30が入力されるスイッチ部31を備える。
スイッチ部31は、制御部41からの制御信号にしたがって開閉動作し、端子aが接続されることでデコーダ10からの画像データS20を入力してダミーデータ除去部32に画像データS21を出力するとともに、端子bが接続されることでデコーダ10からの画像データS30を入力して画像処理部33に画像データS31を出力する。
ダミーデータ除去部32は、スイッチ部31からの画像データS21について図2(c)に示すように、ダミーデータを除去する処理を行って画像データS40を動き推定部34に出力する。すなわち、このダミーデータ除去部32は、デコーダ10からのダミーデータが付加された画像データS20(図2(b))に付加されているダミーデータを除去する処理を行ってダミーデータが付加される前の画像データとする。
画像処理部33は、スイッチ部31からの画像データS31について、上述の画像処理部19で変更された画像サイズを変更するとき、スイッチ部31から入力される画像データS31について、画像サイズを変更する処理等を行って画像データS40を動き推定部34に出力する。この画像処理部33は、例えば352ピクセル×480ピクセルの画像を720ピクセル×480ピクセルの画像として動き推定(ME:Motion Estimation)部34に出力する。
また、この画像処理部33は、画像データS31について2−3プルダウン処理を行う。すなわち、この画像処理部33は、例えば24ピクチャ/秒のフィルム映像を、30フレーム/秒の画像データに変換する処理を行う。
更に、この画像処理部33は、画像データS31を構成する各ピクチャについて、ピクチャ内の垂直方向及び水平方向の画素を間引いて、スイッチ部31から入力されたときよりも解像度が低いピクチャとするダウンサンプリング処理を行う。
更にまた、画像処理部33は、各ピクチャのピクチャ層のヘッダに付加されているトップ・フィールド・ファースト(top_field_first)及びリピート・ファースト・フィールド(repeat_first_field)に基づいて、入力されたビットストリームを構成する各ピクチャをインタレース画像からフレーム画像とする。
更に、この画像処理部33は、各ピクチャについて輝度信号、色差信号Cb、Crの比を示す輝度色差フォーマットを変換する処理を行う。すなわち、この画像処理部33は、水平方向において色情報を半分に削減した輝度色差フォーマットを示す4:2:2から、ピクチャ毎に水平方向及び垂直方向において色情報を半分に削減した輝度色差フォーマットを示す4:2:0に切り換える処理を行う。
そして、この画像処理部33は、画像サイズを変更する処理、上述した2−3プルダウン処理、ダウンサンプリング処理、ピクチャヘッダを書き換えてインタレース画像からフレーム画像に変換する処理、輝度色差フォーマットを変換する処理を行った画像データS40を動き推定部34に出力する。
動き推定部34は、スイッチ部31又はダミーデータ除去部32からの画像データS40を、MB単位で動きベクトルを算出する処理を行う。ここで、動き推定部34は、過去の画像から予測を行う順方向予測、未来の画像から予測を行う逆方向予測及び過去及び未来の画像から予測を行う双方向予測を行って動きベクトルを算出する処理を行う。そして、この動き推定部34は、算出した動きベクトル及びMB単位の画像データを制御部35及びMBパラメータ計算部36に出力する。
制御部35は、動き推定部34からの表示順序でフレームが配列されてなるフレーム画像シーケンスを、符号化順序でフレームが配列されてなるフレーム画像シーケンスとするように、フレームの順序を変更してエンコード部38に出力する。
MBパラメータ計算部36は、動き推定部34からのMB単位の動きベクトル及びMB単位の画像データを用いて、MBパラメータを生成してスイッチ部37に出力する処理を行う。
スイッチ部37は、制御部41からの制御信号にしたがって開閉動作し、端子aが接続されることでMBパラメータ計算部36で計算されたMBパラメータを入力してエンコード部38に出力するとともに、端子bが接続されることでデコーダ10からのMBパラメータを入力してエンコード部38に出力する。
エンコード部38は、制御部35からのMB単位の画像データが入力される加算器51と、加算器51からのMB単位の画像データについて離散コサイン変換処理を施してDCT変換係数からなる画像データとするDCT処理部(DCT)52と、このDCT処理部52からの画像データを構成するDCT変換係数について量子化を行う量子化処理部(Q)53と、逆量子化処理部(IQ)と、逆DCT処理部(IDCT)55と、加算器56と、フレームメモリ(FM)57a及び動き補償部(MC)57bとからなる。
ここで、動き補償部(MC)57bは、時間的に前及び後に位置する画像データを格納するフレームメモリ(FM)を備え、動きベクトルに基づいて当該フレームメモリから予測する画像データを読み出して加算器51及び加算器56で加算処理をさせることで動き補償をする。
このようなエンコード部38は、上述したように構成されることで、MB単位で画像データのエンコードを行うことで、MPEG2規格に準拠してIピクチャ、Pピクチャ及びBピクチャが配列されてなる画像データを生成して可変長符号化部39に出力する。
可変長符号化部39は、エンコード部38からの量子化係数からなるMB単位の画像データについてハフマン符号化を用いることで可変長圧縮を行ってビットストリームとしバッファ40に出力する。
バッファ40は、可変長符号化部39からのビットストリームを一旦格納し、再エンコードしたビットストリームを外部に出力する。
次に、上述したように構成された画像処理システム1において、エンコードデコーダ10からピクチャ層の符号化パラメータ、パラメータ判定情報等がエンコーダ30に入力されるときのタイミングチャート図3を参照して説明する。
この図3によれば、先ず、図3(a)に示すように、デコーダ10には、ピクチャ時間t1〜t6に亘って、ピクチャI2,B0,B1,P5,B3,B4の順に配されてなるビットストリームがバッファ11に入力される。
ここで、バッファ11にビットストリームがピクチャ時間t1〜t6に亘って入力されることと同じタイミングで、図3(c)に示すように、可変長復号部12は、ピクチャ層以上の符号化パラメータ(Sequence_GOP_Picure_parameters)をピクチャI2,B0,B1,P5,B3,B4の順に検出して制御部41に出力する。
また、デコーダ10の可変長復号部12では、パラメータ判定情報(picture_mb_parameters_valid)をピクチャの可変長復号するごとに生成し、図3(d)に示すように、図3(a)に示すバッファ11へのビットストリームの入力タイミングに対して1ピクチャ時間だけ遅延して出力する。ここで、可変長復号部12は、ピクチャI2,B0,B1,P5,B3,B4についてのパラメータ判定情報をピクチャ時間t2〜t7に亘って制御部41に出力する。
更に、デコーダ10のスイッチ部21からは、画像処理部19又はダミーデータ付加部20で上述した処理を施した画像データを図3(b)に示すように、バッファ11にビットストリームの入力タイミングに対して1ピクチャ時間だけ遅延してピクチャ時間t2〜t7に亘ってエンコーダ30にピクチャB0,B1,I2,B3,B4,P5の順に出力する。
図3(a)〜(d)に示したデコーダ10側の処理に対し、エンコーダ30では、図3(e)に示すように、図3(b)に示すデコーダ10からの画像データの出力タイミングに対して遅延なしでピクチャ時間t2〜t7に亘りピクチャB0,B1,I2,B3,B4,P5の順に画像データが入力される。
また、エンコーダ30では、図3(f)に示すように、デコーダ10からのピクチャI2,B0,B1,P5,B3,B4の順にピクチャ層以上の符号化パラメータ(Sequence_GOP_Picure_parameters)が、図3(c)に示す可変長復号部12からの出力タイミングから遅延なしで制御部41を介して入力される。
更に、エンコーダ30では、図3(g)に示すように、デコーダ10からのピクチャI2,B0,B1,P5,B3,B4の順にパラメータ判定情報が可変長復号部12から遅延なしで入力される。このとき、エンコーダ30には、可変長復号部12からのピクチャI2,B0,B1,P5,B3,B4についてのパラメータ判定情報をピクチャ時間t2〜t7に亘って制御部41を介して入力される。
更にまた、エンコーダ30では、図3(h)に示すように、M=3のGOPの画像データをエンコードするのに要する遅延タイミングとして、図3(e)の画像データの入力タイミングから3ピクチャ時間の遅延タイミングでピクチャ時間t5〜t10に亘りバッファ40からビットストリームを出力する。このとき、エンコーダ30からは、ピクチャI2,B0,B1,P5,B3,B4の順に出力する。
ここで、エンコーダ30側ではエンコードするのに要するピクチャ時間分だけピクチャ層の符号化パラメータをメモリ42でバッファリングする必要がある。そして、本例において、制御部41は、MPEG2規格に準拠してM=3のGOPから構成されるビットストリームを出力するとき、4ピクチャ時間分(t1〜t4)だけ符号化パラメータのバッファリングを行わせることで、符号化パラメータが付加されエンコードしたビットストリームを出力させる処理を行うように制御する。
次に、上述の画像処理システム1において、デコーダ10からMBパラメータ等がエンコーダ30に入力されるときのタイミングチャートを図4を参照して説明する。
デコーダ10では、図4(a)に示すように、ピクチャ時間t1〜t6に亘って、ピクチャI2,B0,B1,P5,B3,B4の順にピクチャが配されてなるビットストリームがバッファ11に入力される。
また、デコーダ10の可変長復号部12では、図4(c)に示すように、ピクチャ時間t1〜t6に亘るビットストリームのバッファ11への入力タイミングに対して遅延なく同じタイミングでMBパラメータ(MB_parameters)をデコードして生成する。このとき、可変長復号部12は、ピクチャI2,B0,B1,P5,B3,B4ついてのMBパラメータを順に生成する。
そして、デコーダ10の可変長復号部12では、上述の図4(c)に示すタイミングで生成したMBパラメータを、図4(d)に示すように、4ピクチャ時間分だけ遅延させてピクチャ時間t5〜t10に亘って、ピクチャI2,B0,B1,P5,B3,B4ついてのMBパラメータを順に出力する。
ここで、制御部41は、GOPのM=3であるときには4ピクチャ時間分(4フレーム分)のMBパラメータをメモリ13にバッファリングさせてエンコーダ30に出力するように制御する。
更にまた、デコーダ10は、図4(b)に示すように、ビットストリームの入力タイミングに対して1ピクチャ時間だけ遅延してピクチャ時間t2〜t7に亘ってエンコーダ30にピクチャB0,B1,I2,B3,B4,P5の順に画像データを出力する。
図4(a)〜(d)に示したデコーダ10側の処理に対し、エンコーダ30では、図4(e)に示すように、デコーダ10から画像データが図4(b)に示す出力タイミングに対して遅延なしでピクチャ時間t2〜t7に亘りピクチャB0,B1,I2,B3,B4,P5の順に画像データが入力される。
また、エンコーダ30では、図4(d)に示すMBパラメータの出力タイミングに対して遅延なしでピクチャ時間t5〜t10に亘りピクチャI2,B0,B1,P5,B3,B4ついてのMBパラメータが順に入力される。
更に、エンコーダ30では、図4(g)の入力タイミングで入力されたMBパラメータを用いてエンコード部38でエンコード等をすることで生成したビットストリームを、図4(f)に示すように、図4(e)に示すエンコーダ30への画像データ入力の入力タイミングに対して3ピクチャ時間遅延してピクチャ時間t5〜t10に亘りピクチャI2,B0,B1,P5,B3,B4の順に出力する。
ここで、エンコーダ30側ではエンコードするのに要するピクチャ時間分だけピクチャ層の符号化パラメータをメモリ42でバッファリングする必要がある。そして、本例において、制御部41は、M=3のGOPで構成されるビットストリームを出力するとき、画像データの入力タイミングに対して3ピクチャ時間分(t2〜t4)だけ遅延させて出力するように制御する。
次に、上述の画像処理システム1において、デコーダ10からのパラメータ判定情報に応じた処理について説明する。
画像処理システム1は、可変長復号部12で生成されたパラメータ判定情報に基づいてピクチャ層以上の符号化パラメータ及びMBパラメータが有効か無効かを制御部41で判定させ、制御部41によりエンコーダ30側でエンコードを行うときに用いる符号化パラメータを選択する処理を行わせる。
具体的には、制御部41は、可変長復号部12からのパラメータ判定情報に基づいて、ピクチャ層以上の符号化パラメータ及びMBパラメータにエラーを含んでおらず有効であることを示すフラグを検出したときには、デコーダ10に入力されたビットストリームに付加された符号化パラメータと同じ符号化パラメータを用いてデコーダ10から入力される画像データをエンコーダ30でエンコードさせる。
また、制御部41は、エンコーダ30でエンコードを行うことでビットレートを下げる場合には、量子化スケールを示す符号化パラメータのみをエンコーダ30で変更してエンコードを行い、他の符号化パラメータについてはデコーダ10に入力されたビットストリームに付加された符号化パラメータを用いてエンコードするように制御する。
更に、制御部41は、エンコーダ30で画像サイズを変更してエンコードを行う場合には、ピクチャ層以上の符号化パラメータのみを用いてエンコードを行わせる。このとき、制御部41は、少なくともpicture_coding_type、top_field_first、repeat_first_fieldについて、エンコードを行うときの符号化パラメータとデコーダ10に入力されるビットストリームに付加された符号化パラメータとを同じくするように制御する。また、制御部41は、可変長復号部12からのMBパラメータを無効とし、MBパラメータ計算部36で計算されたMB層の全ての符号化パラメータを用いてエンコード部38でエンコードを行うようにスイッチ部37を制御する。
一方、上述の画像処理システム1おいて、可変長復号部12からのパラメータ判定情報に基づいて、ピクチャ層以上の符号化パラメータ及びMBパラメータにエラーを含んでおり無効であることを示すフラグを検出したときには、エンコーダ30のMBパラメータ計算部36で計算したMBパラメータを用いてエンコードを行う。以下に、符号化パラメータが無効であるときの処理について図5に示すタイミングチャートを参照して説明する。
この図5に示すタイミングチャートによれば、図5(a)に示すようにピクチャ時間t1〜t12に亘りピクチャI2,B0,B1,P5,B3,B4,P8,B6,B7,I2,B0,B1の順にピクチャが配されてなるビットストリームがデコーダ10のバッファ11に入力される。
これに応じて、デコーダ10の可変長復号部12では、図5(c)に示すように、ビットストリームの入力タイミングと同じタイミングでピクチャ時間t1〜t12に亘りピクチャI2,B0,B1,P5,B3,B4,P8,B6,B7,I2,B0,B1の順でMBパラメータのデコードを行う。
ここで、図5(d)に示すように、ピクチャ時間t4において、ピクチャP5についてのMB層のシンタクスエラーが発生すると、可変長復号部12は、図5(e)に示すように、パラメータ判定情報(mb_parameters_valid)のMB層についての1ビットのフラグを“0”とする。そして、可変長復号部12は、ピクチャP5の次のピクチャB3のスタートコードでエラーリカバリーを行う。
また、可変長復号部12は、ピクチャ時間t1〜t3及びt5〜t12においてはMB層にエラーが発生せずに、パラメータ判定情報のMB層についての1ビットのフラグを“1”とする。
また、デコーダ10は、図5(f)に示すように、可変長復号部12でデコードして生成したMBパラメータをメモリ13にバッファリングして制御部41からの制御によりビットストリームの入力タイミングに対して4ピクチャ時間だけ遅延させてピクチャ時間t5〜t16に亘りピクチャI2,B0,B1,P5,B3,B4,P8,B6,B7,I2,B0,B1の順でMBパラメータを30に出力する。
更に、デコーダ10は、図5(b)に示すように、ビットストリームの入力タイミングに対して1ピクチャ時間だけ遅延してピクチャ時間t2〜t13に亘ってピクチャB0,B1,I2,B3,B4,P5,B6,B7,P8,B0,B1,I2の順に画像データをエンコーダ30に出力する。
図5(a)〜(f)に示したデコーダ10側の処理に対し、エンコーダ30では、図5(g)に示すように、デコーダ10から画像データが図5(b)に示す出力タイミングに対して遅延なしでピクチャ時間t2〜t10に亘りピクチャB0,B1,I2,B3,B4,P5,B6,B7,P8の順に画像データが入力される。
また、エンコーダ30には、図5(h)に示すように、図5(f)に示すMBパラメータの出力タイミングに対して遅延なしでピクチャ時間t5〜t16に亘りピクチャI2,B0,B1,P5,B3,B4,P8,B6,B7,I2,B0,B1ついてのMBパラメータが入力される。
そして、図5(i)に示すように、図5(h)に示したMBパラメータの入力タイミングと同じタイミングで、制御部41では、可変長復号部12からのパラメータ判定情報に基づいて、可変長復号部12からのMBパラメータが有効か否かの判定を行う。ここで、図5(i)においては、制御部41によりMBパラメータを有効と判定したときには“1”と表記し、制御部41によりMBパラメータを無効と判定したときには“0”と表記している。
図5(d)に示したようにピクチャ時間t4においてピクチャP5についてのMBパラメータにエラーを含んでいる旨のパラメータ判定情報に応じて、制御部41は、ピクチャP5がエラーコンシールにより生成された画像データであることを認識する。そして、制御部41は、ピクチャP5を用いて予測符号化がなされて生成されたピクチャB3,B4,P8,B6,B7についてのMBパラメータも無効とする。そして、制御部41は、ピクチャP5を用いないで生成されるピクチャI2から再びMBパラメータが有効と判定する。すなわち、制御部41は、ピクチャ時間t5〜t7に入力されるピクチャI2,B0,B1についてのMBパラメータ及びピクチャ時間t14〜t16に入力されるピクチャI2,B0,B1についてのMBパラメータを有効と判定し、ピクチャ時間t8〜t13に入力されるピクチャP5,B3,B4,P8,B6,B7についてのMBパラメータを無効と判定する。
図5(i)に示したように、MBパラメータが有効と判定されたピクチャI2,B0,B1については、制御部41は、スイッチ部37が端子bと接続するように制御し、可変長復号部12からスイッチ部37に入力されたMBパラメータを用いてエンコード部38で動きベクトルの予測等の処理を行ってエンコードを行うように制御する。
一方、図5(i)に示したように、MBパラメータが無効と判定されたピクチャP5,B3,B4,P8,B6,B7については、制御部41は、スイッチ部37が端子aと接続するように制御し、可変長復号部12で生成されエンコーダ30に入力されたMBパラメータを用いず、MBパラメータ計算部36で計算したMBパラメータを用いてエンコード部38で動きベクトルの予測等の処理を行ってエンコードを行うように制御する。
そして、エンコーダ30は、エンコード部38でエンコード等をすることで生成したビットストリームを、図5(j)に示すように、図5(g)に示す画像データ入力の入力タイミングに対して3ピクチャ時間分遅延してピクチャ時間t5〜t16に亘りピクチャI2,B0,B1,P5,B3,B4,P8,B6,B7,I2,B0,B1の順に出力する。
ここで、エンコーダ30側ではエンコードするのに要するピクチャ時間分だけピクチャ層の符号化パラメータをメモリ42でバッファリングする必要がある。そして、本例において、制御部41は、M=3のGOPで構成されるビットストリームを出力するとき、画像データの入力タイミングに対して3ピクチャ時間分(t2〜t4)だけ遅延させて出力するように制御する。
このように構成された画像処理システム1は、デコーダ10の可変長復号部12でピクチャ層の符号化パラメータ、MBパラメータにエラーが発生していることを示すパラメータ判定情報を生成して、エンコーダ30で用いる符号化パラメータを制御部41により制御することができる。したがって、この画像処理システム1によれば、例えば符号化パラメータが無効であるときには、当該符号化パラメータを用いないでエンコーダ30で計算して生成した符号化パラメータを用いて再エンコードを行うことで、正確に再エンコードを行うことができる。
具体的には、画像処理システム1によれば、図5(d)に示すように、MB層のエラーが発生したときには、デコーダ10の可変長復号部12で生成したMBパラメータを用いないで、MBパラメータ計算部36で計算したMBパラメータを用いてエンコード部38で再エンコードを行うことで、間違いのある符号化パラメータを用いて再エンコードすることを防止することができる。
上述の図3〜図5を用いて説明した動作を行う画像処理システム1に備えられるエンコーダ30は、Iピクチャ又はPピクチャの間隔が3(M=3)以下のGOPで構成される画像データについてエンコードを行うものであり、Mが3以上(M>3)のGOPで構成される画像データが入力されたときには、Mが3以下(M≦3)の画像データに変更する処理を制御部41により行って再エンコードを行う。
例えば、エンコーダ30にピクチャI0,B1,B2,B3,B4,P5が順に表示される画像データについては、制御部41は、ピクチャB3をピクチャP3と変更する処理を行ってピクチャI0,B1,B2,P3,B4,P5が順に表示される画像データとする。これにより、制御部41は、M=5のGOPの画像データを、M=3とM=2のGOPの画像データとする。
制御部41は、上述のように、Mを変更するとき、ピクチャの表示順に従ってエンコーダ30に入力されるピクチャパラメータのpicture_coding_typeを参照して、連続して入力されるBピクチャの数をカウントし、当該カウント数が3となったときのBピクチャをPピクチャに変更するように符号化パラメータを生成して再エンコードを行うように制御する。
このような処理を行う画像処理システム1について図6のタイミングチャートを参照して説明する。
この図6に示すタイミングチャートによれば、先ず、図6(a)に示すように、ピクチャ時間t1〜t14に亘りピクチャI2,B0,B1,P5,B3,B4,Pa,B6,B7,B8,B9,Pd,Bb,Bcの順にピクチャが配されてなるビットストリームがデコーダ10のバッファ11に入力される。
ここで、デコーダ10に入力されたビットストリームについてのMは、あるピクチャ時間のIピクチャ又はPピクチャから後のピクチャ時間に出現するIピクチャ又はPピクチャまでのピクチャ数を検出することにより得られ、図6(b)に示すように、ピクチャI2,B0,B1で3となり、ピクチャP5,B3,B4で“3”となり、ピクチャPa,B6,B7,B8,B9で“5”となり、ピクチャPd,Bb,Bcで“3”となる。
図6(a)に示すビットストリームの入力タイミングと同じタイミングで、デコーダ10の可変長復号部12では、図6(d)に示すように、ピクチャ時間t1〜t14に亘りピクチャI2,B0,B1,P5,B3,B4,Pa,B6,B7,B8,B9,Pd,Bb,Bcの順で各ピクチャについてのMBパラメータのデコードを行う。
そして、デコーダ10は、図6(e)に示すように、可変長復号部12で生成したMBパラメータをメモリ13にバッファリングして制御部41からの制御によりビットストリームの入力タイミングに対して4ピクチャ時間だけ遅延させてピクチャ時間t5〜t16に亘りピクチャI2,B0,B1,P5,B3,B4,P8,B6,B7,I2,B0,B1の順で各ピクチャについてのMBパラメータをエンコーダ30に出力する。
更に、デコーダ10は、図6(c)に示すように、ビットストリームの入力タイミングに対して1ピクチャ時間だけ遅延しピクチャ時間t2〜t15に亘ってピクチャB0,B1,I2,B3,B4,P5,B6,B7,B8,B9,Pa,Bb,Bc,Pdの順に画像データをエンコーダ30に出力する。
これに対し、エンコーダ30には、図6(f)に示すように、図6(c)に示すデコーダ10からの画像データの出力タイミングと同じタイミングで、ピクチャ時間t2〜t15に亘ってピクチャB0,B1,I2,B3,B4,P5,B6,B7,B8,B9,Pa,Bb,Bc,Pdの順に画像データが入力される。
ここで、制御部41は、図6(g)に示すように、図6(f)に示す画像データの入力タイミングに基づいて、エンコーダ30に時間的に連続して入力されるBピクチャの数をカウントして、カウント数を得る。制御部41は、Iピクチャ又はPピクチャがエンコーダ30に入力されたとき、又はカウント数が“3”となったときに、カウント数を“0”にリセットする。
すなわち、制御部41は、図6(f)に示すように入力された画像データに対し、1,2,0,1,2,0,1,2,3,1,0,1,2,0とピクチャに対応したカウント数を得る。
そして、制御部41は、図6(g)に示すカウント数に基づいて、画像データのMを変更するか否かを判定を行う。すなわち、制御部41は、カウンタ数が“3”となったときに画像データのMを変更する旨の判定をし、図6(h)に示すように、ピクチャ時間t10においてカウンタ数が“3”におけるピクチャB8をPピクチャに変更して、Mを変更する。
このようにBピクチャをPピクチャに変更した場合において、制御部41は、図6(i)に示すように、図6(g)に示すカウンタ数に基づいて、各ピクチャについてのピクチャタイプ(picture_coding_type)を決定する。本例において、制御部41は、ピクチャ時間t10におけるピクチャB8をPピクチャに変更することにより、図6(f)のピクチャタイプをBピクチャからPピクチャに変更する処理を行う。
ここで、制御部41は、デコーダ10からエンコーダ30に入力されるMBパラメータに関わらず、カウント数に基づいて決定したピクチャタイプに従ってエンコード部38で再エンコードを行うように制御する。
また、エンコーダ30には、図6(j)に示すように、図6(e)に示すMBパラメータの出力タイミングに対して遅延なしでピクチャ時間t5〜t18に亘りピクチャI2,B0,B1,P5,B3,B4,Pa,B6,B7,B8,B9,Pd,Bb,BcついてのMBパラメータが順に入力される。
そして、図6(k)に示すように、図6(j)に示したMBパラメータの入力タイミングと同じタイミングで、制御部41では、可変長復号部12からのパラメータ判定情報に基づいて、可変長復号部12からのMBパラメータが有効か否かの判定を行う。ここで、図6(k)においては、制御部41によりMBパラメータを有効と判定したときには“1”と表記し、制御部41によりMBパラメータを無効と判定したときには“0”と表記している。
ここで、制御部41は、上述の図6(i)に示すようにピクチャ時間t10におけるピクチャをBピクチャからPピクチャに変更した場合において、変更した時におけるBピクチャと時間的に連続するBピクチャから、時間的に後のPピクチャまでにおける各ピクチャについてのMBパラメータ(例えば動きベクトル等)を無効と判定する。
すなわち、制御部41は、カウンタ数が3であるときのピクチャB8と当該ピクチャB8と時間的に連続するピクチャB6,B7,B9から、時間的に後のピクチャPaまでのMBパラメータを無効と判定し、それ以外のピクチャについてのMBパラメータを有効と判定する。
そして、制御部41は、無効と判定されたMBパラメータに対応するピクチャについてはMBパラメータ計算部36で計算して得たMBパラメータを用いてエンコード部38で再エンコードを行い、有効と判定されたMBパラメータに対応するピクチャについてはデコーダ10からのMBパラメータを用いてエンコード部38で再エンコードを行う。
すなわち、制御部41は、デコーダ10から入力されたMBパラメータが無効であるピクチャB6〜Paまでについてはスイッチ部37が端子aと接続するように制御し、可変長復号部12で生成されエンコーダ30に入力されたMBパラメータを用いず、MBパラメータ計算部36で計算したMBパラメータ(picture_coding_type)を用いてエンコード部38で動きベクトルの予測等の処理を行ってエンコードを行うようにスイッチ部37を制御する。
一方、制御部41は、デコーダ10から入力されたMBパラメータが有効であるピクチャについては、可変長復号部12からスイッチ部37に入力されたMBパラメータを用いてエンコード部38で動きベクトルの予測等の処理を行ってエンコードを行うように制御する。
そして、エンコーダ30は、エンコード部38でエンコード等をすることで生成したビットストリームを、図6(l)に示すように、図6(f)に示す画像データ入力の入力タイミングに対して3ピクチャ時間遅延してピクチャ時間t5〜t18に亘りピクチャI2,B0,B1,P5,B3,B4,P8,B6,B7,Pa,B9,Pd,Bb,Bcの順に出力する。
ここで、エンコーダ30側ではエンコードするのに要するピクチャ時間分だけピクチャ層の符号化パラメータをメモリ42でバッファリングする必要がある。そして、本例において、制御部41は、M=3のGOPで構成されるビットストリームを出力するとき、画像データの入力タイミングに対して3ピクチャ時間分(t2〜t4)だけ遅延させて出力するように制御する。
このような処理を行う画像処理システム1によれば、Mが3以下のGOPの画像データに対応したエンコーダ30において、Mが3以上のGOPの画像データがデコーダ10から入力されたときにはBピクチャをPピクチャに変更してMが3以下のGOPの画像データに変更しても、デコーダ10からの符号化パラメータに代えてMBパラメータ計算部36で計算した符号化パラメータを用いることにより正確に再エンコードを行うことができる。
すなわち、この画像処理システム1によれば、デコーダ10から入力する符号化パラメータがエンコーダ30で符号化することができる範囲外であっても、MBパラメータ計算部36で計算した符号化パラメータを用いることにより、符号化パラメータを変更して再エンコードを行うことができる。
また、エンコーダ30は、デコーダ10から入力されたMBパラメータのうち量子化スケールを使用して再エンコードを行った場合であっても、エンコード部38で再エンコードした各ピクチャについての平均量子化スケールを計算する処理を行う。このとき、エンコーダ30では、MBパラメータのうち、量子化スケールが有効であることを示すフラグを検出し、エラーフラグのない有効な量子化スケールのみを用いて各ピクチャについての量子化スケールを計算する処理を行う。このように計算した平均量子化スケールは、レートコントロールに応じて可変長符号化部39で行う符号化の符号化難易度を学習するときに用いられる。これにより、エンコーダ30は、デコーダ10から入力される量子化スケールでエンコードを行う処理モードから、MBパラメータ計算部36で量子化スケールを計算してエンコードを行う処理モードに変更したとき、上述のように計算した平均量子化スケールを用いた学習を可変長符号化部39で再符号化を行うときのレートコントロールに生かすことができる。
なお、本発明を適用した画像処理システム1の説明においては、可変長復号部12で生成するパラメータ判定情報をピクチャ層以上の階層及びMB層について生成するときの一例について説明したが、これに限らず、例えばMPEG規格に準拠したGOP層やスライス層等の他の階層(レイヤー)についてパラメータ判定情報を生成しても良い。これにより、画像処理システム1は、エンコーダ30で再エンコードを行うとき、上記各階層に対応したパラメータ判定情報を参照して、デコーダ10からの符号化パラメータを用いて再エンコードを行うか、各階層における符号化パラメータをMBパラメータ計算部36で生成して再エンコードを行うかを制御部41により判定して、正確な再エンコードを行うことができる。
更に、本発明を適用した画像処理システム1においては、パラメータ判定情報を可変長復号部12で生成して制御部41に出力する一例について説明したが、これに限らず、画像データ中のブランキング区間やクロマ信号のLSB(LeastSignificant Bit)等の有効な画像データでない信号部分に書き込んでデコーダ10からエンコーダ30に入力しても良い。このとき、可変長復号部12は、パラメータ判定情報のみならず、ピクチャ層以上の符号化パラメータ及びMBパラメータも画像データ中の有効な部分以外に書き込んであることが望ましい。
つぎに、本発明を適用した他の画像処理システム100について説明する。この画像処理システムは、入力されるビットストリームを画像データにまでは復号しないで、その途中の符号化情報まで復号して、当該符号化情報を用いて再エンコードを行う。
この画像処理システム100は、図7に示すように、入力端子101を介してビットストリームS51が入力されるバッファ102と、バッファ102からのビットストリームS51について可変長復号を行って量子化DCT係数からなる画像データとする可変長復号部103と、可変長復号部103からの画像データS52を逆量子化部105に出力するとともに及び画像データS52以外の情報S53を遅延処理部109に出力するスイッチ部104と、スイッチ部104からの画像データS52に逆量子化処理を行ってDCT係数からなる画像データとする逆量子化部105と、逆量子化部105からの画像データについて量子化処理を行って量子化DCT係数からなる画像データS54とする量子化部106と、可変長復号部103からの量子化パラメータに基づいて量子化部106の量子化処理を制御する量子化コントロール部107と、可変長復号部103からのパラメータ判定情報に基づいて符号化パラメータを生成するパラメータ発生部108と、スイッチ部104から量子化DCT係数以外の情報S53が入力される遅延処理部109と、量子化部106からの画像データS54、遅延処理部109で遅延処理がなされた情報S53、パラメータ発生部108で生成した符号化パラメータのいずれかを出力するように制御されるスイッチ部110と、スイッチ部110からの画像データについて可変長符号化処理を施してビットストリームS55を生成する可変長符号化部111と、バッファ11からのビットストリームを一旦格納して出力端子113を介して外部に出力するバッファ112とを備える。
このように構成された画像処理システム100において、可変長復号部103は、上述した可変長復号部12と同様の処理を行い、バッファ102からのビットストリームに例えばマクロブロック(MB)単位で可変長復号処理を施すことで量子化DCT変換係数からなる画像データを求めてスイッチ部104に出力する。
また、この可変長復号部103は、上述のように可変長復号処理を行うとともに、各MB層について付加されたMBパラメータ(MB_parameters)及びピクチャ層以上の符号化パラメータ(Sequence_GOP_Picure_parameters)を検出してスイッチ部104に出力する。更に、可変長復号部102は、ピクチャ層の符号化パラメータ及びMBパラメータが有効か否かを示すパラメータ判定情報(picture_mb_parameters_valid)を生成してパラメータ発生部108及びスイッチ部104に出力する。
スイッチ部104は、図示しない制御部から制御信号が入力されることで端子A又は端子Bと接続されるように制御されて動作する。このスイッチ部104は、端子Aと接続することで可変長復号部103からの画像データを逆量子化部105に出力するとともに、端子Bと接続することで可変長復号部103からの符号化パラメータを遅延処理部109に出力する。
逆量子化部105は、スイッチ部104からの量子化DCT変換係数からなる画像データについて例えば8×8画素ブロックごとに逆量子化を行う。このとき、逆量子化部14は、画像データに量子化ステップを乗算することでDCT変換係数とする逆量子化処理を行って量子化部106に出力する。
量子化部106は、逆量子化部105からのDCT変換係数からなる画像データについて量子化を行うことで量子化DCT変換係数からなる画像データS54にしてスイッチ部110に出力する。
遅延処理部109は、逆量子化部105及び量子化部106における処理に要する時間だけスイッチ部110への入力タイミングを遅延させてスイッチ部110に符号化パラメータS53を出力する。
量子化コントロール部107は、可変長復号部103からの量子化パラメータに基づいて、バッファ112のビット占有量を計算し、バッファ112から所定のビットレート以下のビットストリームS55が出力されるように、量子化部106で行う量子化処理における量子化スケールを指定する量子化制御信号を生成する。
なお、この量子化コントロール部107は、エンコード及びデコードするときに原理上発生してしまう再生画像の動き補償によるビットストリームS55のミスマッチエラーが目立たないように量子化スケールを制御することが望ましい。
パラメータ発生部108は、可変長復号部103からパラメータ判定情報に基づいて符号化パラメータを生成する。すなわち、このパラメータ発生部108は、パラメータ判定情報により、エラーが発生している階層における符号化パラメータを生成してスイッチ部110に出力する。
スイッチ部110は、可変長復号部103からのパラメータ判定情報及び図示しない制御部から制御信号が入力されることで端子A、端子B又は端子Cと接続され出力タイミングが制御されて動作する。このスイッチ部110は、パラメータ判定情報により可変長復号部103で生成した符号化パラメータが有効と判定したときには遅延処理部109からの符号化パラメータを可変長符号化部111に出力するように端子Bと接続され、パラメータ判定情報により可変長復号部103で生成した符号化パラメータが無効と判定したときにはパラメータ発生部108からの符号化パラメータを可変長符号化部111に出力するように端子Cと接続される。
可変長符号化部111は、スイッチ部110からの画像データを可変長符号化してビットストリームS55を生成してバッファ112に出力し、目的とするビットレートで出力端子113を介してビットストリームを出力する。
このように構成された画像処理システム100において、入力端子101から入力されたビットストリームにシンタクスエラーが発生しないときの動作について説明する。
このとき、可変長復号部103で生成されるパラメータ判定情報のフラグは、表1を参照して明らかなように“11”となる。すなわち、可変長復号部103で可変長復号されたビットストリームのピクチャ層及びMBパラメータにはエラーが発生しておらず有効である。したがって、この場合においては、可変長復号部103で生成した符号化パラメータを用いて可変長符号化部111で可変長符号化を行うことでビットレートを変換するように再エンコードをしてビットストリームS55を生成する。
次に、入力端子101から入力されたビットストリームにシンタクスエラーが発生した場合の画像処理システム100の動作について説明する。
入力されたビットストリームにシンタクスエラーが発生すると、可変長復号部103は、パラメータ判定情報のフラグが“00”又は“10”となる。このとき、パラメータ発生部108は、エラーがIピクチャ又はPピクチャの位置で発生したときには、Pピクチャのピクチャヘッダを出力し、スキップマクロブロックとする旨のMBパラメータをスイッチ部110に出力する。
また、パラメータ発生部108は、エラーがBピクチャの位置で発生したときにはBピクチャのピクチャヘッダを出力し、動きベクトルが“0”でありDCT係数を持たないことを示すMBパラメータをスイッチ部110に出力する。そして、スイッチ部110では、パラメータ判定情報に基づいて、端子Cに入力された符号化パラメータとともに、端子Aに入力された符号化パラメータを可変長符号化部111に出力し、ビットレートを変換するように再エンコードをしてビットストリームS55を生成する。
次に、入力端子101から入力されたビットストリームにMB層のシンタクスエラーが発生した場合の画像処理システム100の動作について説明する。
この画像処理システム100において、パラメータ判定情報により、MB層のエラーがIピクチャの中で発生したときには、パラメータ発生部108は、エラーが発生したマクロブロックと隣接するマクロブロックについての符号化パラメータをエラーが発生したマクロブロックの符号化パラメータとしてスイッチ部110に出力する。
また、エラーがPピクチャの中で発生した場合には、パラメータ発生部108は、スキップマクロブロックとする旨のMBパラメータをスイッチ部110に出力する。
更に、エラーがBピクチの中で発生したときには、パラメータ発生部108は、動きベクトルが“0”であり、DCT係数を持たないことを示すMBパラメータをスイッチ部110に出力する。そして、スイッチ部110では、パラメータ判定情報に基づいて、端子Cに入力された符号化パラメータとともに、端子Aに入力された符号化パラメータを可変長符号化部111に出力し、ビットレートを変換するように再エンコードをしてビットストリームS55を生成する。
このように構成された画像処理システム100は、入力されたビットストリームにシンタクスエラーが発生する場合に置いても、可変長復号部103で生成したパラメータ判定情報に基づいて、パラメータ発生部108でピクチャ層及びMBパラメータを生成するので、シンタクスエラーを修正したビットストリームを生成するように再エンコードして出力端子113から出力することができる。