本発明は、動画像の画像データを高能率に圧縮符号化する技術に関する。
近年、マルチメディアアプリケーションの発展に伴い、あらゆるメディアの情報(たとえば画像・音声・テキスト)をデジタルデータ化し、統一的に扱うことが一般的になってきた。このうち、たとえば画像、特に動画像のデジタルデータ(画像データ)のデータ量は非常に多くなるため、蓄積・伝送のためには動画像データを高能率に圧縮する圧縮技術が必要とされている。動画像の圧縮符号化のために開発された圧縮技術として、例えばISO(国際標準化機構)によって規格化されたMPEG−1/2/4等の圧縮方式が知られている。
これらの圧縮方式においては、画像データを直交変換して量子化する際に、量子化マトリクスが指定される。量子化マトリクスの各要素は直交変換係数の各周波数成分に対応して設けられており、その要素値を用いて直交変換係数が量子化される。量子化マトリクスの値をどのように規定するかによって周波数空間内でのビット割当特性を制御できるため、量子化マトリクスは量子化処理の特徴(量子化特性)を示しているといえる。
量子化マトリクスは、画面内(イントラ)符号化時と、画面間予測(インターまたはノン・イントラ)符号化のそれぞれに対して設定することができる。これにより予測方法ごとに異なる周波数ビット割当特性を持たせることが可能となっている。さらにMPEG−2規格では、輝度データおよび色差データについて、それぞれ異なる量子化マトリクスを設定することも可能である。
図1は、従来の動画像符号化装置100の構成を示す。動画像符号化装置100は、入力画像メモリ101と、減算部102と、直交変換部103と、量子化部104と、可変長符号化部105と、逆量子化部106と、逆直交変換部107と、加算部108と、参照画像メモリ109と、動き検出/動き補償部110と、レート制御部111を備える。
量子化マトリクスを用いた量子化演算は量子化部104において行われる。まず量子化部104は、量子化マトリクスの各係数値に量子化スケールを乗じて、量子化パラメータを算出する。量子化スケールは、圧縮符号化における目標ビットレート、および、可変長符号化部105で生成された符号化画像データの発生符号量に基づいて、レート制御部111によって生成される。
そして量子化部104は、直交変換部103から出力された直交変換係数の各周波数成分の値を、対応する量子化パラメータで量子化し、その結果を量子化値として出力する。量子化のための演算処理では、主として直交変換係数を量子化パラメータで除算する処理を含む。可変長符号化部105はその量子化値を圧縮符号化して出力する。この結果、符号化画像データが得られる。
MPEG−2規格では、標準的に用いられる量子化マトリクス(デフォルトマトリクス)が規定されている(図4(a)および(b))。たとえば図4(a)に示すイントラ符号化用の量子化マトリクスでは、右下の要素ほど、より大きい値(より重みがつけられた値)が設定されている。この結果、直交変換係数の高周波成分の量子化精度は粗い。一方、図4(b)に示すノン・イントラ符号化用のデフォルトマトリクスでは、すべての要素が同じ値であり、重み付けの程度に差はない。よって、直交変換係数の高周波成分の量子化精度は同じである。言い換えれば、イントラ符号化用マトリクスは、低周波成分に相対的に多くのビット量が割り当てられるような周波数ビット割当特性となっているのに対し、ノン・イントラ符号化用マトリクスは、各周波数成分に均等にビット量が割り当てられるような周波数ビット割当特性となっている。
従来は、上述の例とは異なる量子化マトリクスも利用されている(図5(a)および(b))。図5(a)および(b)に示すマトリクスはMPEG−2の規格化段階のテストモデルで利用され、「TM5の量子化マトリクス」と呼ばれている。図5(a)および(b)から明らかなように、いずれのマトリクスも、高周波成分の量子化精度を粗くするように係数値が重み付けされていることである。そのため、低周波成分に割り当てられるビット量は相対的に多くなる。
ノン・イントラ符号化時の量子化スケールが同じであるとすると、高周波成分に関し、TM5の量子化マトリクスを利用した量子化値は、MPEG−2のデフォルトマトリクスを利用した量子化値よりも小さくなる。よって発生符号量を抑えることができる。これは、前者の方が高周波成分の情報がより多く削減されているためである。
なお、MPEG−2規格では、2つのタイプの量子化スケールが規定されている。図2は、量子化スケールの割り当て表を示す。左欄の量子化スケールコード(quantiser_scale_code)1〜31のそれぞれに対して、タイプ0(qscale_type=0)およびタイプ1(qscale_type=1)が規定されており、いずれか一方の値が量子化スケールとして割り当てられる。
レート制御部111は、目標ビットレートおよび符号化画像データの発生符号量に基づいて量子化スケールの値を決定する。量子化スケールが同じであれば、周波数成分の量子化精度の粗さ、即ち周波数空間内でのビット割当特性は量子化マトリクスの係数値の大小によって決定される。
上述の説明から明らかなように、量子化マトリクスおよび量子化スケールは量子化値に大きく影響する。たとえば特許文献1は、量子化スケールに基づいて画面単位で量子化マトリクスを更新する技術を開示している。
日本国特開2001−78194号公報
しかしながら、上述したような重み付けの傾斜、すなわち量子化マトリクスの要素間の変化の程度が比較的緩い量子化マトリクスを択一的に用いると、種々の問題が生じる。
たとえば、上述の量子化マトリクスを用いると、所定の解像度の画像に対して低い目標ビットレートで圧縮符号化したときにブロックノイズ等が発生し、画質が劣化する。視覚への影響が大きい低周波成分の情報量までもが落とされるためである。より詳しくは、量子化マトリクスのみでは高周波成分の情報量を十分に落とすことができないため、量子化スケールを大きくして情報量をさらに落とす必要がある。しかし量子化スケールが大きくなると低周波成分の情報量も落ちる。
一方、上述の量子化マトリクスを用いて高い目標ビットレートで圧縮符号化したときにも、画質が劣化する。その理由は、量子化スケールが1だけ変化したときに生じる画質変動が大きく、この画質変動が画質劣化として現れるためである。目標ビットレートが高いと、レート制御の結果、量子化スケールを小さい値で推移させることが多くなり、量子化スケールが1だけ変化した場合でも周波数空間内での割当ビット量が大きく変化してしまうからである。
本発明の目的は、符号化の目標ビットレートの高低にかかわらず、常に良好な画質を維持する装置等を提供することにある。
本発明による符号化装置は、動画像を表示するための画像データを、所定の単位で複数の周波数成分の係数に変換する変換部と、前記動画像の解像度および予め指定された符号化の目標ビットレートに基づいて、周波数ビット割当特性を規定するためのマトリクスを決定する決定部と、決定されたマトリクスに基づいて前記係数の各々を量子化し、量子化値を生成する量子化部と、前記量子化値を符号化して、前記動画像の符号化データを生成する符号化部とを備えている。
前記量子化部は、複数種類のマトリクスを保持しており、前記決定部は、前記複数種類のマトリクスのうち、前記量子化処理に使用するマトリクスを決定してもよい。
前記量子化部は、前記複数種類のマトリクスにそれぞれ対応する回路を有しており、前記決定部は、前記量子化部に対して、前記量子化処理に使用するマトリクスに対応する回路に信号経路を切り替えさせてもよい。
前記決定部は、解像度および目標ビットレートに関する複数種類の組と、前記複数種類のマトリクスとの対応関係を規定した条件テーブルを保持しており、前記動画像の解像度および予め指定された符号化の目標ビットレートに基づいて前記条件テーブルを参照し、対応するマトリクスを決定してもよい。
前記決定部は、特定の数値および特定の数値範囲の少なくとも一方を前記目標ビットレートとして規定した条件テーブルを保持してもよい。
前記量子化部は、異なる2つの目標ビットレートにそれぞれ対応付けられた2種類のマトリクスを保持しており、前記決定部は、指定された目標ビットレートが前記2つの目標ビットレートとは異なるときは、少なくとも前記指定された目標ビットレート、および、前記2種類のマトリクスに基づいて演算を行い、前記量子化処理に使用するマトリクスを算出してもよい。
前記量子化部は、特定の目標ビットレートに対応付けられた1つのマトリクスを保持しており、前記決定部は、予め単位ビットレートあたりのステップ値を保持しており、指定された目標ビットレートが前記特定の目標ビットレートとは異なるときは、少なくとも前記指定された目標ビットレート、前記ステップ値、および、前記1つのマトリクスに基づいて演算を行い、前記量子化処理に使用するマトリクスを算出してもよい。
本発明による動画像記録システムは、動画像の映像信号を受信して、前記動画像を表示するための画像データを出力する映像信号受信部と、前記画像データに基づいて前記動画像の符号化データを出力する符号化装置と、前記符号化データを記録媒体に書き込む記録部とを有している。前記符号化装置は、前記画像データを、所定の単位で複数の周波数成分の係数に変換する変換部と、前記動画像の解像度および予め指定された符号化の目標ビットレートに基づいて、周波数ビット割当特性を規定するためのマトリクスを決定する決定部と、決定されたマトリクスに基づいて前記係数の各々を量子化し、量子化値を生成する量子化部と、前記量子化値を符号化して、前記動画像の符号化データを生成する符号化部とを備えている。
本発明によるコンピュータプログラムは、動画像の符号化データを出力するためのデータ処理装置またはシステムにおいて実行される。前記コンピュータプログラムは、前記コンピュータプログラムを実行した前記データ処理装置に、前記動画像を表示するための画像データを、所定の単位で複数の周波数成分の係数に変換するステップと、前記動画像の解像度および予め指定された符号化の目標ビットレートに基づいて、周波数ビット割当特性を規定するためのマトリクスを決定するステップと、決定されたマトリクスに基づいて前記係数の各々を量子化し、量子化値を生成するステップと、前記量子化値を符号化して、前記動画像の符号化データを生成するステップとを実行させる。
本発明の符号化装置によれば、圧縮符号化における目標ビットレートと解像度の情報に基づいて周波数空間内でのビット割当特性を決定し、目標とする画質ごとに適した量子化特性を用いて量子化する。これにより、常に良好な画質を維持することができる。
具体的には、所定の解像度の動画像に対して比較的低い目標ビットレートで圧縮符号化するときには、低周波成分に相対的に多くのビット量が割り当てられる。これにより、ブロックノイズ等の顕著な画質劣化を防ぐことができる。また、所定の解像度の画像に対して比較的高い目標ビットレートで圧縮符号化するときには、量子化スケールの変化に対して割当ビット量の変化幅を小さくする。これにより、細かいビット割当制御が可能となり、画質変動を抑えることができる。
従来の動画像符号化装置100の構成を示す図である。
量子化スケールの割り当て表を示す図である。
実施形態1によるレコーダ200の構成を示す図である。
MPEG−2規格のマトリクス群を示す図である。
テストモデルのマトリクス群を示す図である。
図4に示すマトリクス群のおよそ半分の要素値を有するマトリクス群を示す図である。
複数の符号化条件の例を示す図である。
目標ビットレートおよび動画像の解像度が異なるときの符号化条件を示す図である。
符号化装置210における符号化処理の手順を示すフローチャートである。
予め保持された2つの量子化マトリクスAおよびBを用いて、量子化マトリクスCを生成する方法を示す概念図である。
実施形態2による符号化装置300の構成を示す図である。
実施形態2による複数の符号化条件の例を示す図である。
TM5の量子化マトリクス(図5)よりさらに重み付けの傾斜が大きい量子化特性をもつ量子化マトリクスを示す図である。
決定部312において実行される、量子化マトリクスを切り替えるための制御手順の例を示すフローチャートである。
実施形態3によるレコーダ250の構成を示す図である。
符号化装置400の構成を示す図である。
符号の説明
100 従来の動画像の符号化装置
101 入力画像メモリ
102 減算部
103 直交変換部
104 量子化部
105 可変長符号化部
106 逆量子化部
107 逆直交変換部
108 加算部
109 参照画像メモリ
110 動き検出/動き補償部
111 レート制御部
200 レコーダ
204 量子化部
205 映像信号受信部
210 実施形態1による動画像の符号化装置
211 レート制御部
212、312、412 周波数ビット割当特性決定部
215−1、215−2 記録部
300 実施形態2による動画像の符号化装置
400 実施形態3による動画像の符号化装置
413 解像度変換部
500 実施形態3による動画像の復号化装置
以下、添付の図面を参照しながら、本発明によるデータ処理装置の実施形態を説明する。以下の説明においては、データ処理装置は動画像を録画するためのレコーダ、および/または、レコーダに含まれる動画像を圧縮符号化する符号化装置であるとする。
(実施形態1)
図3は、本実施形態によるレコーダ200の構成を示す。レコーダ200は、たとえばテレビ放送信号を受信してハードディスクや光ディスクに録画する番組の録画機として実現され、または、ユーザが被写体の映像/音声をハードディスクや光ディスクに記録するカムコーダとして実現される。
レコーダ200は、映像信号受信部205と、符号化装置210と、記録部215−1および215−2を有している。映像信号受信部205は、テレビ放送のアナログ信号を受信して、その信号をデジタル信号(デジタルデータ)に変換して出力するチューナである。または、映像信号受信部205は、被写体の映像をデジタルデータとして出力するCCD素子である。
符号化装置210は、動画像のデジタルデータを圧縮符号化して、符号化画像データを生成する。符号化装置210は、たとえば1つの基板上に実装されてエンコーダボードとして実現される。
記録部215−1は、たとえばハードディスクドライブである。また、記録部215−2は、たとえば光ディスクドライブである。ハードディスクドライブおよび光ディスクドライブは、それぞれ、ハードディスクおよび光ディスクに、符号化された画像データ(映像データストリーム)を書き込み、書き込まれたそのデータを読み出すことができる。なお、図面の簡単化のため、記録部215−2は光ディスクとして示されている。
符号化装置210は1つの筐体として実現することもできる。このときは、レコーダ200は、たとえばチューナとしての映像信号受信部205、符号化装置210および記録装置215−1/215−2から構成される記録システムとして捉えることができる。
次に、符号化装置210を詳細に説明する。符号化装置210は、入力画像メモリ101と、減算部102と、直交変換部103と、量子化部204と、可変長符号化部105と、逆量子化部106と、逆直交変換部107と、加算部108と、参照画像メモリ109と、動き検出/動き補償部110と、レート制御部211と、周波数ビット割当特性決定部212とを備えている。
符号化装置210は、動画像を構成する画像(ピクチャ)のデータを、2つの符号化方法のいずれかにより圧縮符号化する。すなわち、画面内(イントラ)符号化、および、画面間予測(インターまたはノン・イントラ)符号化である。以下に符号化装置210の機能を概説する。
まず符号化装置210は、入力画像メモリ101において受け取った画像データを、直交変換部103において周波数成分の係数に変換する。そして、周波数ビット割当特性決定部212(以下「決定部212」と記述する)は、動画像の解像度および予め指定された符号化の目標ビットレートに基づいて、符号化処理に利用する量子化マトリクスを決定する。
量子化部204は、決定されたマトリクスに基づいて周波数成分の係数の各々を量子化し、量子化値を生成する。そして可変長符号化部105はその量子化値を符号化して、動画像の符号化データを生成して出力する。
以下、符号化装置210の各構成要素を説明する。
入力画像メモリ101は、入力された各ピクチャの画像データを符号化時まで格納しておくためのメモリである。入力画像メモリ101は、符号化順序の変更による画像データの出力遅延に対して十分な記憶容量を有する。入力された各ピクチャの画像データは符号化時に複数のブロックに分割され、ブロック単位で符号化される。入力画像メモリ101は、ブロック単位で画像データを出力することができる。
なおMPEG規格では、16画素×16画素の集合をマクロブロックと呼ぶ。そして、それより小さい単位のブロック(たとえば8画素×8画素の集合)をサブマクロブロックと呼ぶ。ただし、符号化の処理によって単位が変わるため、以下では、マクロブロックおよびサブマクロブロックを総称して「ブロック」と呼ぶこととする。
減算部102は、入力画像メモリ101から出力されたブロック単位の入力画像データを正入力端子に入力する。動き補償予測を行わないイントラ符号化の場合は、正入力端子から入力された入力画像データをそのまま出力する。一方、動き補償予測を行うノン・イントラ符号化の場合は、動き検出/動き補償部110から出力されたブロック単位の動き補償画像データを負入力端子に入力して減算を行い、減算結果としてブロック単位の予測誤差画像データを出力する。
直交変換部103は、減算部102から出力されたブロック単位の画像データを、直交変換して周波数成分に変換する。直交変換として、たとえば離散コサイン変換が知られている。
レート制御部211は、圧縮符号化における目標ビットレート、可変長符号化部105で生成された前に処理された符号化画像データの発生符号量、および決定部212で決定された量子化マトリクスの情報に基づいて、量子化部204で使用する量子化スケールを決定する。量子化スケールタイプは一般的に固定されているが、固定されていなくてもよい。決定された量子化スケールは、図2のテーブルを参照して量子化スケールコード(quantiser_scale_code)に対応づけられる。この量子化スケールコードは、後述する可変長符号化部105において符号化される。
なお、目標ビットレートは、たとえばユーザによって録画開始前に直接設定される。または、ユーザによって目標ビットレートと対応付けられた録画モードが選択されることによって設定される。目標ビットレートは圧縮符号化の符号化条件である。
決定部212は、目標ビットレートと画像の解像度に基づいて周波数空間内でのビット割当特性を求め、量子化部204で使用する量子化マトリクスを決定する。量子化マトリクスは予め複数準備されている。たとえば図4から図6の各(a)および(b)には、決定部212によって決定される複数の量子化マトリクスの例が示されている。換言すれば、決定部212はこれらのマトリクスの中から、適切な量子化マトリクスを選択する。決定部212によって行われる処理の詳細は後述する。
図4から図6に示すマトリクス群を説明する。図4はMPEG−2規格のマトリクス群を示す。図5はテストモデルのマトリクス群を示す。図6は、図4に示すマトリクス群のおよそ半分の要素値を有するマトリクス群を示す。各図の(a)および(b)として示す各マトリクスは、それぞれイントラ符号化時およびノン・イントラ符号化に用いられる。図6の(a)に示すマトリクスの要素値は、(1,1)成分を除き、図4の(a)に示すマトリクスの要素値の約1/2である。また、図6(b)に示すマトリクスの要素値は、図4(b)に示すマトリクスの要素値の1/2である。
上述の図4から図6の各(a)および(b)として示す各マトリクスは、決定部212内、量子化部204内または図示しないROMまたはRAM内にマトリクスデータとして保持されてもよい。または、量子化部204内にハードウェア回路として実装されていてもよい。後者においては、決定部212はどのハードウェア回路を用いるかを決定し、量子化処理がそのハードウェア回路を利用して行われるように信号経路を切り替える指示を送るように機能すればよい。なお、後述の方法により、量子化マトリクスをリアルタイムに計算することもできる。
再び図3を参照する。
量子化部204は、決定部212で決定された量子化マトリクスの各要素値に、レート制御部211で決定された量子化スケールを乗じて量子化パラメータを算出する。量子化パラメータもまた、マトリクスとして得られる。そして量子化部204は、直交変換部103から出力された直交変換係数の各周波数成分の値を、対応する量子化パラメータ(対応するマトリクスの要素値)で量子化し、その結果を量子化値として出力する。この量子化処理は、主として直交変換係数を量子化パラメータで除算することによって行われる。
可変長符号化部105は、量子化部204から出力された量子化値を可変長符号化し、符号化画像データを出力する。ノン・イントラ符号化の場合には、可変長符号化部105はさらに動き検出/動き補償部110で求められた動きベクトル等の情報と共に量子化値を可変長符号化し、符号化画像データを出力する。
逆量子化部106は、量子化部204から出力された量子化値を、逆量子化して直交変換係数を生成する。このとき逆量子化に際しては、量子化部204で使用した量子化パラメータと同じ量子化パラメータが利用される。
逆直交変換部107は、逆量子化部106から出力された直交変換係数を逆直交変換して復号化画像データを生成する。このとき、減算部102においてイントラ符号化が選択された場合は、逆直交変換部107は、ブロック単位の入力画像データに対する復号化画像を生成する。一方、減算部102においてノン・イントラ符号化が選択された場合は、逆直交変換部107は、ブロック単位の予測誤差画像データに対する復号化画像を生成する。
加算部108は、予測誤差画像データの復号化画像と、動き検出/動き補償部110から出力されたブロック単位の動き補償画像データとを加算し、最終的な復号化画像データを生成する。
参照画像メモリ109は、符号化時に使用される参照画像データを格納し保持しておくための記憶容量を有している。参照画像メモリ109は、イントラ符号化時には逆直交変換部107で生成されたブロック単位の復号化画像データをそのまま格納する。一方参照画像メモリ109は、ノン・イントラ符号化時には加算部108で生成されたブロック単位の復号化画像データを格納する。参照画像メモリ109に格納された復号化画像データは、以降の入力画像に対して、動き補償による画面間予測符号化を行う際の参照画像として用いられる。
動き検出部/動き補償部110は、入力画像メモリ101から出力されたブロック単位の入力画像データに対して、参照画像メモリ109に格納されている参照画像データの指定された範囲から類似するブロック領域を検出し、その移動量に相当する動きベクトルを決定する。さらに、参照画像メモリ109に格納されている画面間予測符号化用の参照画像から、動き検出によって決定された動きベクトルを用いて、ブロック単位の動き補償画像データを生成する。
次に、決定部212の処理を詳細に説明する。
決定部212に入力される目標ビットレートと解像度はいずれもレコーダ200で用いられる符号化条件として、ユーザから指定されるパラメータである。図7は、複数の符号化条件の例を示す。目標ビットレートと解像度に応じて、符号化条件(1)〜(3)のいずれの条件に該当するかが決定され、それにより、採用すべき量子化マトリクスが決定される。なお、図7では、採用される量子化マトリクスが図番号によって示されているが、これは説明の便宜のためである。実際の処理では、対応する図番号の量子化マトリクスが採用される構成になっていればよく、実際に図7に示すテーブルが格納されていなくてもよい。後述する図8、図12についても同様である。
なお、イントラ符号化およびノン・イントラ符号化のいずれの符号化を行うかによって、決定部212は各図の(a)または(b)のいずれを選択するかを決定する。たとえばイントラ符号化処理が行われるとすると、決定部212は、符号化条件(1)〜(3)のいずれに該当するかを特定し、その後、図4、図5および図6の各(a)のうちから1つのマトリクスを選択する。
図7に示す例では、目標ビットレートに応じて符号化条件(1)〜(3)のうちの1つが特定される。解像度はいずれも「720x480」の標準解像度(Standard Difinition;SD)で固定されている。
符号化条件(1)は、解像度「720x480」に対して目標ビットレートは8Mbpsであり、比較的高い。MPEG−2規格のデフォルトマトリクス(図4)をそのまま用いるとレート制御で決定される量子化スケールが比較的小さい値で推移することが多くなるため、係数値の小さい量子化マトリクス(図6)を使用する。これにより、量子化スケールの値が入力画像に応じて大きく変動してもその変化に対する細かいビット割当制御が可能になり、画質変動を抑制できる。
符号化条件(2)は、「720x480」に対して目標ビットレートが符号化条件(1)よりも低い4Mbpsである。この条件はMPEG―2の圧縮方式において標準的な符号化条件であるため、MPEG−2規格のデフォルトマトリクス(図4)を使用する。
符号化条件(3)は「720x480」に対して目標ビットレートは2Mbpsであり、比較的低い。一般的には、目標ビットレートに適合させるために量子化スケールが比較的大きく設定され、ブロックノイズが顕著になる傾向にある。そこでこの条件に該当するときには、高周波成分に対する係数値が大きい量子化マトリクス(図5)を使用する。これにより、量子化スケールを比較的小さくして低周波成分(特に直流成分)の再現性を高めることができる。すなわちブロックノイズを低減できる。
ここで、符号化条件の特徴を説明する。符号化条件(1)〜(3)において、圧縮符号化後のデータサイズが同じであるとすると、目標ビットレートの比に基づいて入力された動画像のシーケンスの長さは1:2:4となる。言い換えれば、符号化条件(1)はデータサイズよりも画質を優先する用途に適しており、符号化条件(3)は画質よりもデータサイズを優先する用途に適している。そのため 符号化条件(1)は「ファインモード(画質優先モード)」、符号化条件(2)は「ノーマルモード(標準モード)」、符号化条件(3)は「エコノミーモード(容量優先モード)」のように、記録モードの差異として規定することもできる。
図7に示す量子化マトリクスの決定方法によれば、解像度が同じであっても用途に応じて異なる量子化マトリクスを採用することができる。すなわち高画質が要求される用途においては、量子化スケールの変化に対して割当ビット量の変化幅が小さくなる量子化マトリクスを選択することにより、画質変動に起因する画質劣化を抑えることができる。一方、データサイズが優先される用途においては、低周波成分に相対的に多くのビット量が割り当てられる量子化マトリクスを選択することにより、ブロックノイズ等の顕著な画質劣化を抑え安定した画質を得ることができる。よって、良好なビット割当特性を有する符号化装置210を提供できる。
なお、図7の例では、目標ビットレートとして複数の特定の数値(8.0Mbps、4.0Mbpsおよび2.0Mbps)を挙げたが、複数の数値範囲を利用してもよい。たとえば8.0Mbpsに代えて6.0〜10.0Mbps、4.0Mbpsに代えて4.0〜6.0Mbps、2.0Mbpsに代えて2.0〜4.0Mbpsなどのようにしてもよい。そして、ユーザから指定された目標ビットレートが属する範囲に対応させて、符号化条件を定めてもよい。
このように複数の記録モードを持つシステムにおいては、各記録モードによって求められる画質が異なってくるため、符号化ノイズや画質変動に起因する画質劣化を考慮しながら周波数空間のビット割り当て特性を決定する必要がある。本実施形態においては、ユーザが指定する記録モードによって符号化条件(目標ビットレートおよび解像度)が決まる、すなわち符号化の難しさに関する指標である圧縮利率が決まるので、圧縮率の情報を利用意することは高画質の実現に有効であるといえる。
図7に示す例では、目標ビットレートは異なるが、動画像の解像度が同じであるときの符号化条件を示した。しかし、動画像の解像度が異なっていてもよい。
たとえば図8は、目標ビットレートおよび動画像の解像度が異なるときの符号化条件を示す。図8に示す量子化マトリクスの決定方法によれば、解像度が「720x480」以外であっても対応できる。
図8のテーブルにおいて、符号化条件(4)〜(6)は図7の符号化条件(1)〜(3)と同じである。符号化条件(1)〜(3)は解像度が「1920x1080」の映像、即ち高品位(High Difinition;HD)の映像に関し、目標ビットレートに応じた量子化マトリクスを定めている。
図8に示す周波数ビット割当特性によれば、先の例と同様、目標ビットレートが高いほど量子化スケールの変化に対して割当ビット量の変化幅が小さくなり、目標ビットレートが低いほど低周波成分に相対的に多くのビット量が割り当てられる。また、符号化条件(7)および(8)は解像度「352x480」が指定された場合、例えば「720x480」を水平方向にダウンサンプリングしてから圧縮符号化するような場合に相当し、この場合も同様に目標ビットレートに応じて周波数ビット割当特性が決定される。
次に、符号化装置210の処理手順を説明する。あるピクチャについてイントラ符号化処理を行うときの処理を例に挙げる。
図9は、符号化装置210における符号化処理の手順を示す。ステップS91において、符号化装置210は動画像データを受け取って、入力画像メモリ101に格納する。次のステップS92において、入力画像メモリ101はピクチャの一部(ブロック)ごとの画像データを出力する。ステップS93において、直交変換部103は、そのブロックの画像データ(画素値)を直交変換して直交変換係数を生成する。
次に、ステップS94において、決定部212は、動画像の解像度および予め指定された目標ビットレートに基づいて量子化マトリクスを決定する。そしてステップS95において、量子化部204は決定されたマトリクスに基づいて係数の各々を量子化し、量子化値を生成する。ステップS96において、可変長符号化部105は、量子化値を圧縮符号化して符号化データを生成する。生成された符号化データは記録部215−1/215−2に出力される。
そしてステップS97において、そのピクチャのすべてのブロックを符号化したか否かが判定される。すべてのブロックを符号化していないときはステップ92からの処理を継続し、符号化が完了したときには処理は終了する。
図9を参照しながら符号化装置210の処理手順を説明したが、レコーダ200の処理手順は、図9に対して処理ステップを追加することによって容易に実現される。具体的には、まずステップS91の前に映像信号を受信するステップを追加する。次に、ステップS96の後に符号化データを記録部215−1/215−2に書き込むステップを追加する。そして、ステップS97からYesに進んだ後に、すべての動画像データの符号化が完了するまで処理を終了しないように、処理をループさせるステップを追加すればよい。
なお、ステップS94の処理はブロック単位で実行しているが、これに限らず、ピクチャ単位で実行してもよいし、録画開始時に一回だけ実行してもよい。
なお、本実施形態においては、符号化条件を表す目標ビットレートと解像度のいくつかの組み合わせについて説明したが、その他の組み合わせに対しても種々の量子化マトリクスを対応付けて決定することが可能である。
また、本実施形態においては、符号化条件を表す目標ビットレートと解像度の組み合わせに対して量子化マトリクスを対応付けているが、目標ビットレートあるいは解像度のいずれかのみを用いて量子化マトリクスを決定するようにしてもよい。
本実施形態においては、符号化条件を表す目標ビットレートと解像度の組み合わせに対して、図7および図8に規定するテーブルを参照して量子化マトリクスを決定するとした。しかし、目標ビットレートあるいは解像度の情報に基づいて量子化マトリクスを決定する限り、他の方法を採用してもよい。
本実施形態においては、予め保持された3つの量子化マトリクス(図4〜図6)のうちの1つを符号化処理に適用するマトリクスとして選択し、決定していた。しかし、決定部212または量子化部204が量子化マトリクスを1つまたは2つ保持し、それらを利用して他の量子化マトリクスをリアルタイムで生成してもよい。
以下、図10を参照しながら、量子化マトリクスを生成する処理を説明する。以下の処理は、たとえば決定部212がソフトウェアによって実現することができる。なお、量子化マトリクスが量子化部204において保持されているときには、決定部212が量子化部204からその量子化マトリクスを読み出して、処理を行えばよい。
図10は、予め保持された2つの量子化マトリクスAおよびBを用いて、量子化マトリクスCを生成する方法を概念的に示す。(a)に示す量子化マトリクスAは、目標ビットレートRA、動画像がHD品質のときに採用されるとする。また、(b)に示す量子化マトリクスBは、目標ビットレートRB、動画像がHD品質のときに採用されるとする。
以下の説明では、目標ビットレートRAは符号化装置210において処理可能な最低ビットレート、目標ビットレートRBは最高ビットレートとする。ただしこれは例であり、目標ビットレートRAおよびRBは、最高ビットレートと最低ビットレートとの間に存在すればよい。
量子化マトリクスCの(i,j)要素をCijなどと記述する。8画素×8画素のマクロブロック単位で符号化を行うときは、iおよびjは1から8までの自然数である。
要素cijは、量子化マトリクスAおよびBの対応する要素aijおよびbij、目標ビットレートRAおよびRBの関数として規定することができる。図10の(c)は、要素cijを求めるための関数Fのグラフを示している。横軸は目標ビットレート、縦軸は要素の値を示す。
たとえば関数Fは、始点を(RA,aij)および終点を(RB,bij)とする線分(一次関数)として規定される。そしてユーザによって指定された目標ビットレートRcに基づいて、要素cijを求めることができる。なお、関数は任意であり、各(i,j)要素ごとに任意の定めてもよい。
すべてのiおよびjの組について要素cijを求めることにより、量子化マトリクスCを得ることができる。図10の(d)は、目標ビットレートRc、動画像がHD品質のときに採用される量子化マトリックスCを示す。なお、量子化マトリクスCの要素を一括して求める必要はなく、量子化処理時に要素1ずつ求めてもよい。
上述の処理においては、2つの量子化マトリクスAおよびBを保持する必要があるが、1つの量子化マトリクスのみでも処理は可能である。たとえば上述の量子化マトリクスAと、単位ビットレートあたりの要素値のステップ値(増加幅)を規定し、たとえば決定部212が予め保持していればよい。これにより決定部212は、目標ビットレートRcが指定されると、目標ビットレートRAからの差に応じて要素値を増減させて量子化マトリクスCの要素を求めることができる。
(実施形態2)
図11は、実施形態2による符号化装置300の構成を示す。符号化装置300は、実施形態1において説明した符号化装置210に代えて、図3のレコーダ200の一部として実装されうる。
以下、符号化装置300を説明する。なお、符号化装置300の構成要素のうち、実施形態1による符号化装置210の構成要素と機能が共通するものに対しては同じ参照符号を付し、その説明は省略する。
符号化装置300は、入力画像メモリ101、減算部102、直交変換部103、量子化部204、可変長符号化部105、逆量子化部106、逆直交変換部107、加算部108、参照画像メモリ109、動き検出/動き補償部110、レート制御部211、周波数ビット割当特性決定部312を備える。
周波数ビット割当特性決定部312(以下、「決定部312」と記述する。)は、圧縮符号化の符号化条件として指定された目標ビットレートと解像度に基づいて周波数空間内でのビット割当特性を求め、量子化部204で使用する量子化マトリクスを決定する。さらに決定部312は、レート制御部211で決定された量子化スケールの情報に基づいてピクチャ単位で周波数ビット割当特性を補正し、量子化マトリクスを変更する。
以下、決定部312を詳細に説明する。
図12は、本実施形態による複数の符号化条件の例を示す。図12に示されるように、圧縮符号化の目標ビットレートと解像度の組み合わせに対して、2種類の量子化マトリクス(TYPE1およびTYPE2)が設定されている。
量子化マトリクス(TYPE1)は、図7のテーブルで定められている量子化マトリクスと同じ周波数ビット割当特性を持つ。符号化開始時にはこの量子化マトリクス(TYPE1)が使用される。
一方、量子化マトリクス(TYPE2)は、所定の条件下で発生符号量を低く抑えるために用いられる。具体的には、レート制御部211において、実際に発生した符号量から計算される実ビットレートを目標ビットレートに抑えられないとき、または、ブロックノイズによる画質劣化が顕著であると判断したときである。
ここで量子化マトリクスの切り替え例を説明する。いま、解像度「720x480」で目標ビットレートとして2Mbpsが指定されたとする。符号化開始時は、図5に示す量子化マトリクスが使用される。この量子化マトリクスは、重み付けの傾斜、すなわち量子化マトリクスの要素間の変化の程度が比較的緩い。
その後、動きが速い動画像などの圧縮符号化が困難な入力画像が続き、レート制御で目標ビットレートに抑えられないとき、または、量子化後の低周波成分の値が所定の閾値を平均して下回るときには、図13に示す量子化マトリクスを採用する。図13は、TM5の量子化マトリクス(図5)よりさらに重み付けの傾斜が大きい量子化特性をもつ量子化マトリクスを示す。(a)はイントラ符号化時に利用され、(b)はノン・イントラ符号化時に利用される。これにより、低周波成分へ割り当てられるビット量が相対的に多くなり、画質劣化を抑えられる。
図14は、決定部312において実行される、量子化マトリクスを切り替えるための制御手順の例を示す。処理の開始時は、量子化マトリクス(TYPE1)が設定されている。符号化開始後は、図14に示す処理を各ピクチャの符号化前に行う。
まずステップS141において、決定部312は量子化スケール(Qscale)が閾値(Qth1)よりも小さいか否かを判断する。小さいときはステップS142に進み、小さくないときはステップS143に進む。
ステップS142において、決定部312は、使用する量子化マトリクスをタイプ1(量子化マトリクス(TYPE1))に設定する。このときは、所望のレート制御が実現されている。
一方、ステップS143では、決定部312は、量子化スケール(Qscale)が閾値(Qth2)以上か否かを判断する。閾値(Qth2)以上のときはステップS144に進み、閾値(Qth2)以上でないときは、量子化マトリクスの変更に対してヒステリシスを持たせるために、直前のピクチャで用いていた量子化マトリクスをそのまま用いる。そして処理は終了する。
ステップS144において、決定部312は、使用する量子化マトリクスをタイプ1(量子化マトリクス(TYPE2))に設定する。このときは、レート制御が破綻する可能性がある、あるいはブロックノイズが顕著であることを意味する。
図14の説明から明らかなように、閾値Qth1およびQth2は、それぞれ量子化マトリクス(TYPE1)と量子化マトリクス(TYPE2)を切替えるための値である(Qth1≦Qth2とする)。一方、Qscaleはレート制御部においてピクチャ単位で決定される量子化スケールである。
上述の処理のように、レート制御で決定される量子化スケールが大きい場合、高周波成分をさらに粗く量子化するような量子化マトリクスに変更することによって量子化スケールを小さくすることができ、ブロックノイズによる画質劣化を抑えることができる。
なお、本実施形態においては、符号化開始時の量子化マトリクス(TYPE1)以外の量子化マトリクスとして1種類の量子化マトリクス(TYPE2)のみを設定しているが、2種類以上の量子化マトリクスを切替えてもかまわない。
また、本実施形態においては、量子化スケールを閾値処理して量子化マトリクスの変更に関する判定を行っているが、判定条件に用いる情報はレート制御の状態と相関のある情報であれば量子化スケールでなくてもよい。
本実施形態においては、テーブルを参照することにより、次の量子化マトリクスを決定しているが、レート制御の状態を示す情報に基づいて量子化マトリクスを決定する方法であれば他の方法でもかまわない。
(実施形態3)
図15は、本実施形態によるレコーダ250の構成を示す。レコーダ250は、符号化装置400と、復号化装置500と、記録部215−1/215−2とを備えている。
レコーダ250は、たとえばHD品質のデジタル放送番組の符号化画像データが記録部215−1/215−2に蓄積されているときにおいて、その符号化画像データをSD品質に変換(ダウンサンプリング)して再圧縮符号化する際に利用される。またはレコーダ250は、比較的高いビットレートで圧縮符号化された符号化画像データを、ダビングのために再圧縮符号化する際に利用される。再圧縮符号化に際して、復号化装置500は符号化画像データを一旦復号化し、符号化装置400は復号化された画像データを再度符号化する。なお、記録部215−1/215−2に蓄積されていない符号化画像データを利用することも可能である。
図15においては、レコーダ250は1つの機器として記載されている。しかし、符号化装置400、復号化装置500および記録部215−1/215−2を1つの機器として相互に接続することにより、動画像記録システムとして実現してもよい。
以下、まず復号化装置500を説明する。図15に示す復号化装置500は、あらかじめ圧縮符号化された符号化画像データを復号化して復号化画像データを生成する。そして復号化の過程において、復号化装置500は符号化画像データの周波数ビット割当特性、実ビットレート、その符号化画像データの解像度の情報(以下「解像度1の情報」と記述する。)を抽出する。
復号化装置500は、符号化処理と逆の処理を行うことができればよい。したがって、たとえば符号化装置210(図3)の可変長符号化部105の逆の処理を行う復号化部、逆量子化部106、逆直交変換部107、参照画像メモリ109および動き検出/動き補償部110を設けることにより、符号化画像データの復号化が可能になる。なお、動き検出/動き補償部110は動き補償に関する機能のために必要とされる。
次に符号化装置400を説明する。図16は、符号化装置400の構成を示す。符号化装置400の構成要素のうち、実施形態1の符号化装置210または実施形態2による符号化装置300の構成要素と機能が共通するものに対しては同じ参照符号を付し、その説明は省略する。
符号化装置400は、入力画像メモリ101、減算部102、直交変換部103、量子化部204、可変長符号化部105、逆量子化部106、逆直交変換部107、加算部108、参照画像メモリ109、動き検出/動き補償部110、レート制御部211、周波数ビット割当特性決定部412、解像度変換部413を備える。
まず解像度変換部413は、復号化装置500で復号化された復号化画像データに対し、復号化装置500における復号化の過程で抽出された解像度1の情報、および、再圧縮符号化の符号化条件としてユーザから指定された解像度の情報(以下「解像度2の情報」と記述する。)に基づいて解像度を変換し、再圧縮符号化に対する入力画像データを生成する。解像度変換を行わない場合は、復号化画像をそのまま再圧縮符号化の入力画像データとして出力すればよい。
周波数ビット割当特性決定部412(以下「決定部412」と記述する)は、復号化装置500から符号化画像データの周波数ビット割当特性、実ビットレート、解像度1の情報を取得する。さらに決定部412は、再圧縮符号化の符号化条件としてユーザから指定された目標ビットレートおよび解像度2の情報を受け取る。そして決定部412は、それらに基づいて、再圧縮符号化における周波数ビット割当特性を決定する。
決定部412において、周波数ビット割当特性を決定する算出式の例を数1に示す。
ここで、M1_ij、R1、H1、V1は、それぞれ復号化する前の符号化画像データが持つ周波数ビット割当特性、実ビットレート、水平解像度、垂直解像度を表す。また、M2_ij、R2、H2、V2は、それぞれ再圧縮符号化における周波数ビット割当特性、目標ビットレート、水平解像度、垂直解像度を表す。なお、ここでは周波数ビット割当特性は周波数空間座標(i,j)に対応する形のマトリクスとして示しており、量子化時に用いられる量子化マトリクスに対応している。このように再圧縮符号化処理を行う場合に、復号化前の符号化画像データが持つ周波数ビット割当特性を用いることにより、再圧縮符号化の過程で損なわれる周波数成分の情報量を少なくすることができる。
なお、本実施形態においてR1は実ビットレートとしているが、R1は復号化する前の符号化データに対して管理情報等に含まれるビットレート(例えば、過去の符号化時に用いた目標ビットレート)でもかまわない。
なお、数1は例であり、周波数ビット割当特性の算出式は他の数式を用いてもよい。たとえば、量子化マトリクスの直流成分の係数値を変えずに、高周波成分の係数値を変化させるようにしてもよい。
上述の復号化装置500および符号化装置400における処理によって、再符号化画像データが生成されると、記録部215−1/215−2によって記録媒体に書き込まれる。これにより、画像品質の変換、動画像を構成する各ピクチャの画素数の変換、ビットレートの変換等が行われる。
上述の符号化装置および復号化装置において実行される処理は、汎用コンピュータにおいてコンピュータプログラムを実行することによって実現できる。そのようなコンピュータプログラムは、例えば図9および図14に示すフローチャートに規定された処理を実行する命令を含んでいる。コンピュータプログラムは、光ディスクに代表される光記録媒体、SDメモリカード、EEPROMに代表される半導体記録媒体、フレキシブルディスクに代表される磁気記録媒体等の記録媒体に記録されて、製品として市場を流通する。またはコンピュータプログラムは、インターネットに代表される通信ネットワークを介して伝送される。
本発明にかかる動画像符号化装置は、動画像データを圧縮符号化する際の目標ビットレートの高低にかかわらず常に良好な画質を維持することができる。その実用的価値は非常に高い。このような動画像符号化装置は、1つの基板上に実装され、または、他の機器に組み込むことができるため、種々の動画像のデジタル記録機器への応用が可能である。
本発明は、動画像の画像データを高能率に圧縮符号化する技術に関する。
近年、マルチメディアアプリケーションの発展に伴い、あらゆるメディアの情報(たとえば画像・音声・テキスト)をデジタルデータ化し、統一的に扱うことが一般的になってきた。このうち、たとえば画像、特に動画像のデジタルデータ(画像データ)のデータ量は非常に多くなるため、蓄積・伝送のためには動画像データを高能率に圧縮する圧縮技術が必要とされている。動画像の圧縮符号化のために開発された圧縮技術として、例えばISO(国際標準化機構)によって規格化されたMPEG−1/2/4等の圧縮方式が知られている。
これらの圧縮方式においては、画像データを直交変換して量子化する際に、量子化マトリクスが指定される。量子化マトリクスの各要素は直交変換係数の各周波数成分に対応して設けられており、その要素値を用いて直交変換係数が量子化される。量子化マトリクスの値をどのように規定するかによって周波数空間内でのビット割当特性を制御できるため、量子化マトリクスは量子化処理の特徴(量子化特性)を示しているといえる。
量子化マトリクスは、画面内(イントラ)符号化時と、画面間予測(インターまたはノン・イントラ)符号化のそれぞれに対して設定することができる。これにより予測方法ごとに異なる周波数ビット割当特性を持たせることが可能となっている。さらにMPEG−2規格では、輝度データおよび色差データについて、それぞれ異なる量子化マトリクスを設定することも可能である。
図1は、従来の動画像符号化装置100の構成を示す。動画像符号化装置100は、入力画像メモリ101と、減算部102と、直交変換部103と、量子化部104と、可変長符号化部105と、逆量子化部106と、逆直交変換部107と、加算部108と、参照画像メモリ109と、動き検出/動き補償部110と、レート制御部111を備える。
量子化マトリクスを用いた量子化演算は量子化部104において行われる。まず量子化部104は、量子化マトリクスの各係数値に量子化スケールを乗じて、量子化パラメータを算出する。量子化スケールは、圧縮符号化における目標ビットレート、および、可変長符号化部105で生成された符号化画像データの発生符号量に基づいて、レート制御部111によって生成される。
そして量子化部104は、直交変換部103から出力された直交変換係数の各周波数成分の値を、対応する量子化パラメータで量子化し、その結果を量子化値として出力する。量子化のための演算処理では、主として直交変換係数を量子化パラメータで除算する処理を含む。可変長符号化部105はその量子化値を圧縮符号化して出力する。この結果、符号化画像データが得られる。
MPEG−2規格では、標準的に用いられる量子化マトリクス(デフォルトマトリクス)が規定されている(図4(a)および(b))。たとえば図4(a)に示すイントラ符号化用の量子化マトリクスでは、右下の要素ほど、より大きい値(より重みがつけられた値)が設定されている。この結果、直交変換係数の高周波成分の量子化精度は粗い。一方、図4(b)に示すノン・イントラ符号化用のデフォルトマトリクスでは、すべての要素が同じ値であり、重み付けの程度に差はない。よって、直交変換係数の高周波成分の量子化精度は同じである。言い換えれば、イントラ符号化用マトリクスは、低周波成分に相対的に多くのビット量が割り当てられるような周波数ビット割当特性となっているのに対し、ノン・イントラ符号化用マトリクスは、各周波数成分に均等にビット量が割り当てられるような周波数ビット割当特性となっている。
従来は、上述の例とは異なる量子化マトリクスも利用されている(図5(a)および(b))。図5(a)および(b)に示すマトリクスはMPEG−2の規格化段階のテストモデルで利用され、「TM5の量子化マトリクス」と呼ばれている。図5(a)および(b)から明らかなように、いずれのマトリクスも、高周波成分の量子化精度を粗くするように係数値が重み付けされていることである。そのため、低周波成分に割り当てられるビット量は相対的に多くなる。
ノン・イントラ符号化時の量子化スケールが同じであるとすると、高周波成分に関し、TM5の量子化マトリクスを利用した量子化値は、MPEG−2のデフォルトマトリクスを利用した量子化値よりも小さくなる。よって発生符号量を抑えることができる。これは、前者の方が高周波成分の情報がより多く削減されているためである。
なお、MPEG−2規格では、2つのタイプの量子化スケールが規定されている。図2は、量子化スケールの割り当て表を示す。左欄の量子化スケールコード(quantiser_scale_code)1〜31のそれぞれに対して、タイプ0(qscale_type=0)およびタイプ1(qscale_type=1)が規定されており、いずれか一方の値が量子化スケールとして割り当てられる。
レート制御部111は、目標ビットレートおよび符号化画像データの発生符号量に基づいて量子化スケールの値を決定する。量子化スケールが同じであれば、周波数成分の量子化精度の粗さ、即ち周波数空間内でのビット割当特性は量子化マトリクスの係数値の大小によって決定される。
上述の説明から明らかなように、量子化マトリクスおよび量子化スケールは量子化値に大きく影響する。たとえば特許文献1は、量子化スケールに基づいて画面単位で量子化マトリクスを更新する技術を開示している。
特開2001−78194号公報
しかしながら、上述したような重み付けの傾斜、すなわち量子化マトリクスの要素間の変化の程度が比較的緩い量子化マトリクスを択一的に用いると、種々の問題が生じる。
たとえば、上述の量子化マトリクスを用いると、所定の解像度の画像に対して低い目標ビットレートで圧縮符号化したときにブロックノイズ等が発生し、画質が劣化する。視覚への影響が大きい低周波成分の情報量までもが落とされるためである。より詳しくは、量子化マトリクスのみでは高周波成分の情報量を十分に落とすことができないため、量子化スケールを大きくして情報量をさらに落とす必要がある。しかし量子化スケールが大きくなると低周波成分の情報量も落ちる。
一方、上述の量子化マトリクスを用いて高い目標ビットレートで圧縮符号化したときにも、画質が劣化する。その理由は、量子化スケールが1だけ変化したときに生じる画質変動が大きく、この画質変動が画質劣化として現れるためである。目標ビットレートが高いと、レート制御の結果、量子化スケールを小さい値で推移させることが多くなり、量子化スケールが1だけ変化した場合でも周波数空間内での割当ビット量が大きく変化してしまうからである。
本発明の目的は、符号化の目標ビットレートの高低にかかわらず、常に良好な画質を維持する装置等を提供することにある。
本発明による符号化装置は、動画像を表示するための画像データを、所定の単位で複数の周波数成分の係数に変換する変換部と、前記動画像の解像度および予め指定された符号化の目標ビットレートに基づいて、周波数ビット割当特性を規定するためのマトリクスを決定する決定部と、決定されたマトリクスに基づいて前記係数の各々を量子化し、量子化値を生成する量子化部と、前記量子化値を符号化して、前記動画像の符号化データを生成する符号化部とを備えている。
前記量子化部は、複数種類のマトリクスを保持しており、前記決定部は、前記複数種類のマトリクスのうち、前記量子化処理に使用するマトリクスを決定してもよい。
前記量子化部は、前記複数種類のマトリクスにそれぞれ対応する回路を有しており、前記決定部は、前記量子化部に対して、前記量子化処理に使用するマトリクスに対応する回路に信号経路を切り替えさせてもよい。
前記決定部は、解像度および目標ビットレートに関する複数種類の組と、前記複数種類のマトリクスとの対応関係を規定した条件テーブルを保持しており、前記動画像の解像度および予め指定された符号化の目標ビットレートに基づいて前記条件テーブルを参照し、対応するマトリクスを決定してもよい。
前記決定部は、特定の数値および特定の数値範囲の少なくとも一方を前記目標ビットレートとして規定した条件テーブルを保持してもよい。
前記量子化部は、異なる2つの目標ビットレートにそれぞれ対応付けられた2種類のマトリクスを保持しており、前記決定部は、指定された目標ビットレートが前記2つの目標ビットレートとは異なるときは、少なくとも前記指定された目標ビットレート、および、前記2種類のマトリクスに基づいて演算を行い、前記量子化処理に使用するマトリクスを算出してもよい。
前記量子化部は、特定の目標ビットレートに対応付けられた1つのマトリクスを保持しており、前記決定部は、予め単位ビットレートあたりのステップ値を保持しており、指定された目標ビットレートが前記特定の目標ビットレートとは異なるときは、少なくとも前記指定された目標ビットレート、前記ステップ値、および、前記1つのマトリクスに基づいて演算を行い、前記量子化処理に使用するマトリクスを算出してもよい。
本発明による動画像記録システムは、動画像の映像信号を受信して、前記動画像を表示するための画像データを出力する映像信号受信部と、前記画像データに基づいて前記動画像の符号化データを出力する符号化装置と、前記符号化データを記録媒体に書き込む記録部とを有している。前記符号化装置は、前記画像データを、所定の単位で複数の周波数成分の係数に変換する変換部と、前記動画像の解像度および予め指定された符号化の目標ビットレートに基づいて、周波数ビット割当特性を規定するためのマトリクスを決定する決定部と、決定されたマトリクスに基づいて前記係数の各々を量子化し、量子化値を生成する量子化部と、前記量子化値を符号化して、前記動画像の符号化データを生成する符号化部とを備えている。
本発明によるコンピュータプログラムは、動画像の符号化データを出力するためのデータ処理装置またはシステムにおいて実行される。前記コンピュータプログラムは、前記コンピュータプログラムを実行した前記データ処理装置に、前記動画像を表示するための画像データを、所定の単位で複数の周波数成分の係数に変換するステップと、前記動画像の解像度および予め指定された符号化の目標ビットレートに基づいて、周波数ビット割当特性を規定するためのマトリクスを決定するステップと、決定されたマトリクスに基づいて前記係数の各々を量子化し、量子化値を生成するステップと、前記量子化値を符号化して、前記動画像の符号化データを生成するステップとを実行させる。
本発明の符号化装置によれば、圧縮符号化における目標ビットレートと解像度の情報に基づいて周波数空間内でのビット割当特性を決定し、目標とする画質ごとに適した量子化特性を用いて量子化する。これにより、常に良好な画質を維持することができる。
具体的には、所定の解像度の動画像に対して比較的低い目標ビットレートで圧縮符号化するときには、低周波成分に相対的に多くのビット量が割り当てられる。これにより、ブロックノイズ等の顕著な画質劣化を防ぐことができる。また、所定の解像度の画像に対して比較的高い目標ビットレートで圧縮符号化するときには、量子化スケールの変化に対して割当ビット量の変化幅を小さくする。これにより、細かいビット割当制御が可能となり、画質変動を抑えることができる。
以下、添付の図面を参照しながら、本発明によるデータ処理装置の実施形態を説明する。以下の説明においては、データ処理装置は動画像を録画するためのレコーダ、および/または、レコーダに含まれる動画像を圧縮符号化する符号化装置であるとする。
(実施形態1)
図3は、本実施形態によるレコーダ200の構成を示す。レコーダ200は、たとえばテレビ放送信号を受信してハードディスクや光ディスクに録画する番組の録画機として実現され、または、ユーザが被写体の映像/音声をハードディスクや光ディスクに記録するカムコーダとして実現される。
レコーダ200は、映像信号受信部205と、符号化装置210と、記録部215−1および215−2を有している。映像信号受信部205は、テレビ放送のアナログ信号を受信して、その信号をデジタル信号(デジタルデータ)に変換して出力するチューナである。または、映像信号受信部205は、被写体の映像をデジタルデータとして出力するCCD素子である。
符号化装置210は、動画像のデジタルデータを圧縮符号化して、符号化画像データを生成する。符号化装置210は、たとえば1つの基板上に実装されてエンコーダボードとして実現される。
記録部215−1は、たとえばハードディスクドライブである。また、記録部215−2は、たとえば光ディスクドライブである。ハードディスクドライブおよび光ディスクドライブは、それぞれ、ハードディスクおよび光ディスクに、符号化された画像データ(映像データストリーム)を書き込み、書き込まれたそのデータを読み出すことができる。なお、図面の簡単化のため、記録部215−2は光ディスクとして示されている。
符号化装置210は1つの筐体として実現することもできる。このときは、レコーダ200は、たとえばチューナとしての映像信号受信部205、符号化装置210および記録装置215−1/215−2から構成される記録システムとして捉えることができる。
次に、符号化装置210を詳細に説明する。符号化装置210は、入力画像メモリ101と、減算部102と、直交変換部103と、量子化部204と、可変長符号化部105と、逆量子化部106と、逆直交変換部107と、加算部108と、参照画像メモリ109と、動き検出/動き補償部110と、レート制御部211と、周波数ビット割当特性決定部212とを備えている。
符号化装置210は、動画像を構成する画像(ピクチャ)のデータを、2つの符号化方法のいずれかにより圧縮符号化する。すなわち、画面内(イントラ)符号化、および、画面間予測(インターまたはノン・イントラ)符号化である。以下に符号化装置210の機能を概説する。
まず符号化装置210は、入力画像メモリ101において受け取った画像データを、直交変換部103において周波数成分の係数に変換する。そして、周波数ビット割当特性決定部212(以下「決定部212」と記述する)は、動画像の解像度および予め指定された符号化の目標ビットレートに基づいて、符号化処理に利用する量子化マトリクスを決定する。
量子化部204は、決定されたマトリクスに基づいて周波数成分の係数の各々を量子化し、量子化値を生成する。そして可変長符号化部105はその量子化値を符号化して、動画像の符号化データを生成して出力する。
以下、符号化装置210の各構成要素を説明する。
入力画像メモリ101は、入力された各ピクチャの画像データを符号化時まで格納しておくためのメモリである。入力画像メモリ101は、符号化順序の変更による画像データの出力遅延に対して十分な記憶容量を有する。入力された各ピクチャの画像データは符号化時に複数のブロックに分割され、ブロック単位で符号化される。入力画像メモリ101は、ブロック単位で画像データを出力することができる。
なおMPEG規格では、16画素×16画素の集合をマクロブロックと呼ぶ。そして、それより小さい単位のブロック(たとえば8画素×8画素の集合)をサブマクロブロックと呼ぶ。ただし、符号化の処理によって単位が変わるため、以下では、マクロブロックおよびサブマクロブロックを総称して「ブロック」と呼ぶこととする。
減算部102は、入力画像メモリ101から出力されたブロック単位の入力画像データを正入力端子に入力する。動き補償予測を行わないイントラ符号化の場合は、正入力端子から入力された入力画像データをそのまま出力する。一方、動き補償予測を行うノン・イントラ符号化の場合は、動き検出/動き補償部110から出力されたブロック単位の動き補償画像データを負入力端子に入力して減算を行い、減算結果としてブロック単位の予測誤差画像データを出力する。
直交変換部103は、減算部102から出力されたブロック単位の画像データを、直交変換して周波数成分に変換する。直交変換として、たとえば離散コサイン変換が知られている。
レート制御部211は、圧縮符号化における目標ビットレート、可変長符号化部105で生成された前に処理された符号化画像データの発生符号量、および決定部212で決定された量子化マトリクスの情報に基づいて、量子化部204で使用する量子化スケールを決定する。量子化スケールタイプは一般的に固定されているが、固定されていなくてもよい。決定された量子化スケールは、図2のテーブルを参照して量子化スケールコード(quantiser_scale_code)に対応づけられる。この量子化スケールコードは、後述する可変長符号化部105において符号化される。
なお、目標ビットレートは、たとえばユーザによって録画開始前に直接設定される。または、ユーザによって目標ビットレートと対応付けられた録画モードが選択されることによって設定される。目標ビットレートは圧縮符号化の符号化条件である。
決定部212は、目標ビットレートと画像の解像度に基づいて周波数空間内でのビット割当特性を求め、量子化部204で使用する量子化マトリクスを決定する。量子化マトリクスは予め複数準備されている。たとえば図4から図6の各(a)および(b)には、決定部212によって決定される複数の量子化マトリクスの例が示されている。換言すれば、決定部212はこれらのマトリクスの中から、適切な量子化マトリクスを選択する。決定部212によって行われる処理の詳細は後述する。
図4から図6に示すマトリクス群を説明する。図4はMPEG−2規格のマトリクス群を示す。図5はテストモデルのマトリクス群を示す。図6は、図4に示すマトリクス群のおよそ半分の要素値を有するマトリクス群を示す。各図の(a)および(b)として示す各マトリクスは、それぞれイントラ符号化時およびノン・イントラ符号化に用いられる。図6の(a)に示すマトリクスの要素値は、(1,1)成分を除き、図4の(a)に示すマトリクスの要素値の約1/2である。また、図6(b)に示すマトリクスの要素値は、図4(b)に示すマトリクスの要素値の1/2である。
上述の図4から図6の各(a)および(b)として示す各マトリクスは、決定部212内、量子化部204内または図示しないROMまたはRAM内にマトリクスデータとして保持されてもよい。または、量子化部204内にハードウェア回路として実装されていてもよい。後者においては、決定部212はどのハードウェア回路を用いるかを決定し、量子化処理がそのハードウェア回路を利用して行われるように信号経路を切り替える指示を送るように機能すればよい。なお、後述の方法により、量子化マトリクスをリアルタイムに計算することもできる。
再び図3を参照する。
量子化部204は、決定部212で決定された量子化マトリクスの各要素値に、レート制御部211で決定された量子化スケールを乗じて量子化パラメータを算出する。量子化パラメータもまた、マトリクスとして得られる。そして量子化部204は、直交変換部103から出力された直交変換係数の各周波数成分の値を、対応する量子化パラメータ(対応するマトリクスの要素値)で量子化し、その結果を量子化値として出力する。この量子化処理は、主として直交変換係数を量子化パラメータで除算することによって行われる。
可変長符号化部105は、量子化部204から出力された量子化値を可変長符号化し、符号化画像データを出力する。ノン・イントラ符号化の場合には、可変長符号化部105はさらに動き検出/動き補償部110で求められた動きベクトル等の情報と共に量子化値を可変長符号化し、符号化画像データを出力する。
逆量子化部106は、量子化部204から出力された量子化値を、逆量子化して直交変換係数を生成する。このとき逆量子化に際しては、量子化部204で使用した量子化パラメータと同じ量子化パラメータが利用される。
逆直交変換部107は、逆量子化部106から出力された直交変換係数を逆直交変換して復号化画像データを生成する。このとき、減算部102においてイントラ符号化が選択された場合は、逆直交変換部107は、ブロック単位の入力画像データに対する復号化画像を生成する。一方、減算部102においてノン・イントラ符号化が選択された場合は、逆直交変換部107は、ブロック単位の予測誤差画像データに対する復号化画像を生成する。
加算部108は、予測誤差画像データの復号化画像と、動き検出/動き補償部110から出力されたブロック単位の動き補償画像データとを加算し、最終的な復号化画像データを生成する。
参照画像メモリ109は、符号化時に使用される参照画像データを格納し保持しておくための記憶容量を有している。参照画像メモリ109は、イントラ符号化時には逆直交変換部107で生成されたブロック単位の復号化画像データをそのまま格納する。一方参照画像メモリ109は、ノン・イントラ符号化時には加算部108で生成されたブロック単位の復号化画像データを格納する。参照画像メモリ109に格納された復号化画像データは、以降の入力画像に対して、動き補償による画面間予測符号化を行う際の参照画像として用いられる。
動き検出部/動き補償部110は、入力画像メモリ101から出力されたブロック単位の入力画像データに対して、参照画像メモリ109に格納されている参照画像データの指定された範囲から類似するブロック領域を検出し、その移動量に相当する動きベクトルを決定する。さらに、参照画像メモリ109に格納されている画面間予測符号化用の参照画像から、動き検出によって決定された動きベクトルを用いて、ブロック単位の動き補償画像データを生成する。
次に、決定部212の処理を詳細に説明する。
決定部212に入力される目標ビットレートと解像度はいずれもレコーダ200で用いられる符号化条件として、ユーザから指定されるパラメータである。図7は、複数の符号化条件の例を示す。目標ビットレートと解像度に応じて、符号化条件(1)〜(3)のいずれの条件に該当するかが決定され、それにより、採用すべき量子化マトリクスが決定される。なお、図7では、採用される量子化マトリクスが図番号によって示されているが、これは説明の便宜のためである。実際の処理では、対応する図番号の量子化マトリクスが採用される構成になっていればよく、実際に図7に示すテーブルが格納されていなくてもよい。後述する図8、図12についても同様である。
なお、イントラ符号化およびノン・イントラ符号化のいずれの符号化を行うかによって、決定部212は各図の(a)または(b)のいずれを選択するかを決定する。たとえばイントラ符号化処理が行われるとすると、決定部212は、符号化条件(1)〜(3)のいずれに該当するかを特定し、その後、図4、図5および図6の各(a)のうちから1つのマトリクスを選択する。
図7に示す例では、目標ビットレートに応じて符号化条件(1)〜(3)のうちの1つが特定される。解像度はいずれも「720x480」の標準解像度(Standard Difinition;SD)で固定されている。
符号化条件(1)は、解像度「720x480」に対して目標ビットレートは8Mbpsであり、比較的高い。MPEG−2規格のデフォルトマトリクス(図4)をそのまま用いるとレート制御で決定される量子化スケールが比較的小さい値で推移することが多くなるため、係数値の小さい量子化マトリクス(図6)を使用する。これにより、量子化スケールの値が入力画像に応じて大きく変動してもその変化に対する細かいビット割当制御が可能になり、画質変動を抑制できる。
符号化条件(2)は、「720x480」に対して目標ビットレートが符号化条件(1)よりも低い4Mbpsである。この条件はMPEG―2の圧縮方式において標準的な符号化条件であるため、MPEG−2規格のデフォルトマトリクス(図4)を使用する。
符号化条件(3)は「720x480」に対して目標ビットレートは2Mbpsであり、比較的低い。一般的には、目標ビットレートに適合させるために量子化スケールが比較的大きく設定され、ブロックノイズが顕著になる傾向にある。そこでこの条件に該当するときには、高周波成分に対する係数値が大きい量子化マトリクス(図5)を使用する。これにより、量子化スケールを比較的小さくして低周波成分(特に直流成分)の再現性を高めることができる。すなわちブロックノイズを低減できる。
ここで、符号化条件の特徴を説明する。符号化条件(1)〜(3)において、圧縮符号化後のデータサイズが同じであるとすると、目標ビットレートの比に基づいて入力された動画像のシーケンスの長さは1:2:4となる。言い換えれば、符号化条件(1)はデータサイズよりも画質を優先する用途に適しており、符号化条件(3)は画質よりもデータサイズを優先する用途に適している。そのため 符号化条件(1)は「ファインモード(画質優先モード)」、符号化条件(2)は「ノーマルモード(標準モード)」、符号化条件(3)は「エコノミーモード(容量優先モード)」のように、記録モードの差異として規定することもできる。
図7に示す量子化マトリクスの決定方法によれば、解像度が同じであっても用途に応じて異なる量子化マトリクスを採用することができる。すなわち高画質が要求される用途においては、量子化スケールの変化に対して割当ビット量の変化幅が小さくなる量子化マトリクスを選択することにより、画質変動に起因する画質劣化を抑えることができる。一方、データサイズが優先される用途においては、低周波成分に相対的に多くのビット量が割り当てられる量子化マトリクスを選択することにより、ブロックノイズ等の顕著な画質劣化を抑え安定した画質を得ることができる。よって、良好なビット割当特性を有する符号化装置210を提供できる。
なお、図7の例では、目標ビットレートとして複数の特定の数値(8.0Mbps、4.0Mbpsおよび2.0Mbps)を挙げたが、複数の数値範囲を利用してもよい。たとえば8.0Mbpsに代えて6.0〜10.0Mbps、4.0Mbpsに代えて4.0〜6.0Mbps、2.0Mbpsに代えて2.0〜4.0Mbpsなどのようにしてもよい。そして、ユーザから指定された目標ビットレートが属する範囲に対応させて、符号化条件を定めてもよい。
このように複数の記録モードを持つシステムにおいては、各記録モードによって求められる画質が異なってくるため、符号化ノイズや画質変動に起因する画質劣化を考慮しながら周波数空間のビット割り当て特性を決定する必要がある。本実施形態においては、ユーザが指定する記録モードによって符号化条件(目標ビットレートおよび解像度)が決まる、すなわち符号化の難しさに関する指標である圧縮利率が決まるので、圧縮率の情報を利用意することは高画質の実現に有効であるといえる。
図7に示す例では、目標ビットレートは異なるが、動画像の解像度が同じであるときの符号化条件を示した。しかし、動画像の解像度が異なっていてもよい。
たとえば図8は、目標ビットレートおよび動画像の解像度が異なるときの符号化条件を示す。図8に示す量子化マトリクスの決定方法によれば、解像度が「720x480」以外であっても対応できる。
図8のテーブルにおいて、符号化条件(4)〜(6)は図7の符号化条件(1)〜(3)と同じである。符号化条件(1)〜(3)は解像度が「1920x1080」の映像、即ち高品位(High Difinition;HD)の映像に関し、目標ビットレートに応じた量子化マトリクスを定めている。
図8に示す周波数ビット割当特性によれば、先の例と同様、目標ビットレートが高いほど量子化スケールの変化に対して割当ビット量の変化幅が小さくなり、目標ビットレートが低いほど低周波成分に相対的に多くのビット量が割り当てられる。また、符号化条件(7)および(8)は解像度「352x480」が指定された場合、例えば「720x480」を水平方向にダウンサンプリングしてから圧縮符号化するような場合に相当し、この場合も同様に目標ビットレートに応じて周波数ビット割当特性が決定される。
次に、符号化装置210の処理手順を説明する。あるピクチャについてイントラ符号化処理を行うときの処理を例に挙げる。
図9は、符号化装置210における符号化処理の手順を示す。ステップS91において、符号化装置210は動画像データを受け取って、入力画像メモリ101に格納する。次のステップS92において、入力画像メモリ101はピクチャの一部(ブロック)ごとの画像データを出力する。ステップS93において、直交変換部103は、そのブロックの画像データ(画素値)を直交変換して直交変換係数を生成する。
次に、ステップS94において、決定部212は、動画像の解像度および予め指定された目標ビットレートに基づいて量子化マトリクスを決定する。そしてステップS95において、量子化部204は決定されたマトリクスに基づいて係数の各々を量子化し、量子化値を生成する。ステップS96において、可変長符号化部105は、量子化値を圧縮符号化して符号化データを生成する。生成された符号化データは記録部215−1/215−2に出力される。
そしてステップS97において、そのピクチャのすべてのブロックを符号化したか否かが判定される。すべてのブロックを符号化していないときはステップ92からの処理を継続し、符号化が完了したときには処理は終了する。
図9を参照しながら符号化装置210の処理手順を説明したが、レコーダ200の処理手順は、図9に対して処理ステップを追加することによって容易に実現される。具体的には、まずステップS91の前に映像信号を受信するステップを追加する。次に、ステップS96の後に符号化データを記録部215−1/215−2に書き込むステップを追加する。そして、ステップS97からYesに進んだ後に、すべての動画像データの符号化が完了するまで処理を終了しないように、処理をループさせるステップを追加すればよい。
なお、ステップS94の処理はブロック単位で実行しているが、これに限らず、ピクチャ単位で実行してもよいし、録画開始時に一回だけ実行してもよい。
なお、本実施形態においては、符号化条件を表す目標ビットレートと解像度のいくつかの組み合わせについて説明したが、その他の組み合わせに対しても種々の量子化マトリクスを対応付けて決定することが可能である。
また、本実施形態においては、符号化条件を表す目標ビットレートと解像度の組み合わせに対して量子化マトリクスを対応付けているが、目標ビットレートあるいは解像度のいずれかのみを用いて量子化マトリクスを決定するようにしてもよい。
本実施形態においては、符号化条件を表す目標ビットレートと解像度の組み合わせに対して、図7および図8に規定するテーブルを参照して量子化マトリクスを決定するとした。しかし、目標ビットレートあるいは解像度の情報に基づいて量子化マトリクスを決定する限り、他の方法を採用してもよい。
本実施形態においては、予め保持された3つの量子化マトリクス(図4〜図6)のうちの1つを符号化処理に適用するマトリクスとして選択し、決定していた。しかし、決定部212または量子化部204が量子化マトリクスを1つまたは2つ保持し、それらを利用して他の量子化マトリクスをリアルタイムで生成してもよい。
以下、図10を参照しながら、量子化マトリクスを生成する処理を説明する。以下の処理は、たとえば決定部212がソフトウェアによって実現することができる。なお、量子化マトリクスが量子化部204において保持されているときには、決定部212が量子化部204からその量子化マトリクスを読み出して、処理を行えばよい。
図10は、予め保持された2つの量子化マトリクスAおよびBを用いて、量子化マトリクスCを生成する方法を概念的に示す。(a)に示す量子化マトリクスAは、目標ビットレートRA、動画像がHD品質のときに採用されるとする。また、(b)に示す量子化マトリクスBは、目標ビットレートRB、動画像がHD品質のときに採用されるとする。
以下の説明では、目標ビットレートRAは符号化装置210において処理可能な最低ビットレート、目標ビットレートRBは最高ビットレートとする。ただしこれは例であり、目標ビットレートRAおよびRBは、最高ビットレートと最低ビットレートとの間に存在すればよい。
量子化マトリクスCの(i,j)要素をcijなどと記述する。8画素×8画素のマクロブロック単位で符号化を行うときは、iおよびjは1から8までの自然数である。
要素cijは、量子化マトリクスAおよびBの対応する要素aijおよびbij、目標ビットレートRAおよびRBの関数として規定することができる。図10の(c)は、要素cijを求めるための関数Fのグラフを示している。横軸は目標ビットレート、縦軸は要素の値を示す。
たとえば関数Fは、始点を(RA,aij)および終点を(RB,bij)とする線分(一次関数)として規定される。そしてユーザによって指定された目標ビットレートRcに基づいて、要素cijを求めることができる。なお、関数は任意であり、各(i,j)要素ごとに任意の定めてもよい。
すべてのiおよびjの組について要素cijを求めることにより、量子化マトリクスCを得ることができる。図10の(d)は、目標ビットレートRc、動画像がHD品質のときに採用される量子化マトリックスCを示す。なお、量子化マトリクスCの要素を一括して求める必要はなく、量子化処理時に要素1ずつ求めてもよい。
上述の処理においては、2つの量子化マトリクスAおよびBを保持する必要があるが、1つの量子化マトリクスのみでも処理は可能である。たとえば上述の量子化マトリクスAと、単位ビットレートあたりの要素値のステップ値(増加幅)を規定し、たとえば決定部212が予め保持していればよい。これにより決定部212は、目標ビットレートRcが指定されると、目標ビットレートRAからの差に応じて要素値を増減させて量子化マトリクスCの要素を求めることができる。
(実施形態2)
図11は、実施形態2による符号化装置300の構成を示す。符号化装置300は、実施形態1において説明した符号化装置210に代えて、図3のレコーダ200の一部として実装されうる。
以下、符号化装置300を説明する。なお、符号化装置300の構成要素のうち、実施形態1による符号化装置210の構成要素と機能が共通するものに対しては同じ参照符号を付し、その説明は省略する。
符号化装置300は、入力画像メモリ101、減算部102、直交変換部103、量子化部204、可変長符号化部105、逆量子化部106、逆直交変換部107、加算部108、参照画像メモリ109、動き検出/動き補償部110、レート制御部211、周波数ビット割当特性決定部312を備える。
周波数ビット割当特性決定部312(以下、「決定部312」と記述する。)は、圧縮符号化の符号化条件として指定された目標ビットレートと解像度に基づいて周波数空間内でのビット割当特性を求め、量子化部204で使用する量子化マトリクスを決定する。さらに決定部312は、レート制御部211で決定された量子化スケールの情報に基づいてピクチャ単位で周波数ビット割当特性を補正し、量子化マトリクスを変更する。
以下、決定部312を詳細に説明する。
図12は、本実施形態による複数の符号化条件の例を示す。図12に示されるように、圧縮符号化の目標ビットレートと解像度の組み合わせに対して、2種類の量子化マトリクス(TYPE1およびTYPE2)が設定されている。
量子化マトリクス(TYPE1)は、図7のテーブルで定められている量子化マトリクスと同じ周波数ビット割当特性を持つ。符号化開始時にはこの量子化マトリクス(TYPE1)が使用される。
一方、量子化マトリクス(TYPE2)は、所定の条件下で発生符号量を低く抑えるために用いられる。具体的には、レート制御部211において、実際に発生した符号量から計算される実ビットレートを目標ビットレートに抑えられないとき、または、ブロックノイズによる画質劣化が顕著であると判断したときである。
ここで量子化マトリクスの切り替え例を説明する。いま、解像度「720x480」で目標ビットレートとして2Mbpsが指定されたとする。符号化開始時は、図5に示す量子化マトリクスが使用される。この量子化マトリクスは、重み付けの傾斜、すなわち量子化マトリクスの要素間の変化の程度が比較的緩い。
その後、動きが速い動画像などの圧縮符号化が困難な入力画像が続き、レート制御で目標ビットレートに抑えられないとき、または、量子化後の低周波成分の値が所定の閾値を平均して下回るときには、図13に示す量子化マトリクスを採用する。図13は、TM5の量子化マトリクス(図5)よりさらに重み付けの傾斜が大きい量子化特性をもつ量子化マトリクスを示す。(a)はイントラ符号化時に利用され、(b)はノン・イントラ符号化時に利用される。これにより、低周波成分へ割り当てられるビット量が相対的に多くなり、画質劣化を抑えられる。
図14は、決定部312において実行される、量子化マトリクスを切り替えるための制御手順の例を示す。処理の開始時は、量子化マトリクス(TYPE1)が設定されている。符号化開始後は、図14に示す処理を各ピクチャの符号化前に行う。
まずステップS141において、決定部312は量子化スケール(Qscale)が閾値(Qth1)よりも小さいか否かを判断する。小さいときはステップS142に進み、小さくないときはステップS143に進む。
ステップS142において、決定部312は、使用する量子化マトリクスをタイプ1(量子化マトリクス(TYPE1))に設定する。このときは、所望のレート制御が実現されている。
一方、ステップS143では、決定部312は、量子化スケール(Qscale)が閾値(Qth2)以上か否かを判断する。閾値(Qth2)以上のときはステップS144に進み、閾値(Qth2)以上でないときは、量子化マトリクスの変更に対してヒステリシスを持たせるために、直前のピクチャで用いていた量子化マトリクスをそのまま用いる。そして処理は終了する。
ステップS144において、決定部312は、使用する量子化マトリクスをタイプ1(量子化マトリクス(TYPE2))に設定する。このときは、レート制御が破綻する可能性がある、あるいはブロックノイズが顕著であることを意味する。
図14の説明から明らかなように、閾値Qth1およびQth2は、それぞれ量子化マトリクス(TYPE1)と量子化マトリクス(TYPE2)を切替えるための値である(Qth1≦Qth2とする)。一方、Qscaleはレート制御部においてピクチャ単位で決定される量子化スケールである。
上述の処理のように、レート制御で決定される量子化スケールが大きい場合、高周波成分をさらに粗く量子化するような量子化マトリクスに変更することによって量子化スケールを小さくすることができ、ブロックノイズによる画質劣化を抑えることができる。
なお、本実施形態においては、符号化開始時の量子化マトリクス(TYPE1)以外の量子化マトリクスとして1種類の量子化マトリクス(TYPE2)のみを設定しているが、2種類以上の量子化マトリクスを切替えてもかまわない。
また、本実施形態においては、量子化スケールを閾値処理して量子化マトリクスの変更に関する判定を行っているが、判定条件に用いる情報はレート制御の状態と相関のある情報であれば量子化スケールでなくてもよい。
本実施形態においては、テーブルを参照することにより、次の量子化マトリクスを決定しているが、レート制御の状態を示す情報に基づいて量子化マトリクスを決定する方法であれば他の方法でもかまわない。
(実施形態3)
図15は、本実施形態によるレコーダ250の構成を示す。レコーダ250は、符号化装置400と、復号化装置500と、記録部215−1/215−2とを備えている。
レコーダ250は、たとえばHD品質のデジタル放送番組の符号化画像データが記録部215−1/215−2に蓄積されているときにおいて、その符号化画像データをSD品質に変換(ダウンサンプリング)して再圧縮符号化する際に利用される。またはレコーダ250は、比較的高いビットレートで圧縮符号化された符号化画像データを、ダビングのために再圧縮符号化する際に利用される。再圧縮符号化に際して、復号化装置500は符号化画像データを一旦復号化し、符号化装置400は復号化された画像データを再度符号化する。なお、記録部215−1/215−2に蓄積されていない符号化画像データを利用することも可能である。
図15においては、レコーダ250は1つの機器として記載されている。しかし、符号化装置400、復号化装置500および記録部215−1/215−2を1つの機器として相互に接続することにより、動画像記録システムとして実現してもよい。
以下、まず復号化装置500を説明する。図15に示す復号化装置500は、あらかじめ圧縮符号化された符号化画像データを復号化して復号化画像データを生成する。そして復号化の過程において、復号化装置500は符号化画像データの周波数ビット割当特性、実ビットレート、その符号化画像データの解像度の情報(以下「解像度1の情報」と記述する。)を抽出する。
復号化装置500は、符号化処理と逆の処理を行うことができればよい。したがって、たとえば符号化装置210(図3)の可変長符号化部105の逆の処理を行う復号化部、逆量子化部106、逆直交変換部107、参照画像メモリ109および動き検出/動き補償部110を設けることにより、符号化画像データの復号化が可能になる。なお、動き検出/動き補償部110は動き補償に関する機能のために必要とされる。
次に符号化装置400を説明する。図16は、符号化装置400の構成を示す。符号化装置400の構成要素のうち、実施形態1の符号化装置210または実施形態2による符号化装置300の構成要素と機能が共通するものに対しては同じ参照符号を付し、その説明は省略する。
符号化装置400は、入力画像メモリ101、減算部102、直交変換部103、量子化部204、可変長符号化部105、逆量子化部106、逆直交変換部107、加算部108、参照画像メモリ109、動き検出/動き補償部110、レート制御部211、周波数ビット割当特性決定部412、解像度変換部413を備える。
まず解像度変換部413は、復号化装置500で復号化された復号化画像データに対し、復号化装置500における復号化の過程で抽出された解像度1の情報、および、再圧縮符号化の符号化条件としてユーザから指定された解像度の情報(以下「解像度2の情報」と記述する。)に基づいて解像度を変換し、再圧縮符号化に対する入力画像データを生成する。解像度変換を行わない場合は、復号化画像をそのまま再圧縮符号化の入力画像データとして出力すればよい。
周波数ビット割当特性決定部412(以下「決定部412」と記述する)は、復号化装置500から符号化画像データの周波数ビット割当特性、実ビットレート、解像度1の情報を取得する。さらに決定部412は、再圧縮符号化の符号化条件としてユーザから指定された目標ビットレートおよび解像度2の情報を受け取る。そして決定部412は、それらに基づいて、再圧縮符号化における周波数ビット割当特性を決定する。
決定部412において、周波数ビット割当特性を決定する算出式の例を数1に示す。
M2_ij=M1_ij*(R1*H2*V2)/(R2*H1*V1) (数1)
ここで、M1_ij、R1、H1、V1は、それぞれ復号化する前の符号化画像データが持つ周波数ビット割当特性、実ビットレート、水平解像度、垂直解像度を表す。また、M2_ij、R2、H2、V2は、それぞれ再圧縮符号化における周波数ビット割当特性、目標ビットレート、水平解像度、垂直解像度を表す。なお、ここでは周波数ビット割当特性は周波数空間座標(i,j)に対応する形のマトリクスとして示しており、量子化時に用いられる量子化マトリクスに対応している。このように再圧縮符号化処理を行う場合に、復号化前の符号化画像データが持つ周波数ビット割当特性を用いることにより、再圧縮符号化の過程で損なわれる周波数成分の情報量を少なくすることができる。
なお、本実施形態においてR1は実ビットレートとしているが、R1は復号化する前の符号化データに対して管理情報等に含まれるビットレート(例えば、過去の符号化時に用いた目標ビットレート)でもかまわない。
なお、数1は例であり、周波数ビット割当特性の算出式は他の数式を用いてもよい。たとえば、量子化マトリクスの直流成分の係数値を変えずに、高周波成分の係数値を変化させるようにしてもよい。
上述の復号化装置500および符号化装置400における処理によって、再符号化画像データが生成されると、記録部215−1/215−2によって記録媒体に書き込まれる。これにより、画像品質の変換、動画像を構成する各ピクチャの画素数の変換、ビットレートの変換等が行われる。
上述の符号化装置および復号化装置において実行される処理は、汎用コンピュータにおいてコンピュータプログラムを実行することによって実現できる。そのようなコンピュータプログラムは、例えば図9および図14に示すフローチャートに規定された処理を実行する命令を含んでいる。コンピュータプログラムは、光ディスクに代表される光記録媒体、SDメモリカード、EEPROMに代表される半導体記録媒体、フレキシブルディスクに代表される磁気記録媒体等の記録媒体に記録されて、製品として市場を流通する。またはコンピュータプログラムは、インターネットに代表される通信ネットワークを介して伝送される。
本発明にかかる動画像符号化装置は、動画像データを圧縮符号化する際の目標ビットレートの高低にかかわらず常に良好な画質を維持することができる。その実用的価値は非常に高い。このような動画像符号化装置は、1つの基板上に実装され、または、他の機器に組み込むことができるため、種々の動画像のデジタル記録機器への応用が可能である。
従来の動画像符号化装置100の構成を示す図である。
量子化スケールの割り当て表を示す図である。
実施形態1によるレコーダ200の構成を示す図である。
MPEG−2規格のマトリクス群を示す図である。
テストモデルのマトリクス群を示す図である。
図4に示すマトリクス群のおよそ半分の要素値を有するマトリクス群を示す図である。
複数の符号化条件の例を示す図である。
目標ビットレートおよび動画像の解像度が異なるときの符号化条件を示す図である。
符号化装置210における符号化処理の手順を示すフローチャートである。
予め保持された2つの量子化マトリクスAおよびBを用いて、量子化マトリクスCを生成する方法を示す概念図である。
実施形態2による符号化装置300の構成を示す図である。
実施形態2による複数の符号化条件の例を示す図である。
TM5の量子化マトリクス(図5)よりさらに重み付けの傾斜が大きい量子化特性をもつ量子化マトリクスを示す図である。
決定部312において実行される、量子化マトリクスを切り替えるための制御手順の例を示すフローチャートである。
実施形態3によるレコーダ250の構成を示す図である。
符号化装置400の構成を示す図である。
符号の説明
100 従来の動画像の符号化装置
101 入力画像メモリ
102 減算部
103 直交変換部
104 量子化部
105 可変長符号化部
106 逆量子化部
107 逆直交変換部
108 加算部
109 参照画像メモリ
110 動き検出/動き補償部
111 レート制御部
200 レコーダ
204 量子化部
205 映像信号受信部
210 実施形態1による動画像の符号化装置
211 レート制御部
212、312、412 周波数ビット割当特性決定部
215−1、215−2 記録部
300 実施形態2による動画像の符号化装置
400 実施形態3による動画像の符号化装置
413 解像度変換部
500 実施形態3による動画像の復号化装置