(57)【要約】【課題】ＨＤ  Ｐｈｏｔｏにおけるシンボル生成処理の高速化と、シンボル生成処理に使用する記憶容量の縮小化を実現することを課題とする。【解決手段】シンボル生成部１５は、量子化データのデータ列をシリアルに入力する。非零係数の量子化データを入力すると、非零係数の絶対値、零ラン、符号の情報をレジスタに格納する。次の非零係数の量子化データを入力すると、レジスタに格納されている絶対値、零ラン、符号の情報を更新する。このとき、直前まで格納されていたレジスタの内容を１つ前の非零係数のシンボルデータとして出力する。【選択図】図１
2010130053.tif 000002
【特許請求の範囲】
【請求項１】
画像データを周波数変換して周波数変換データを生成する周波数変換部と、
周波数変換データを量子化して量子化データを生成する量子化部と、
量子化データをシンボル化してシンボルデータを生成するシンボル生成部と、
シンボルデータを符号化して符号化データを生成する符号化部と、
を備え、
前記シンボル生成部は、
複数のブロックで構成される量子化データのデータ列をシリアルに入力する量子化データ入力部と、
１つの非零係数の量子化データの絶対値、符号、および、零ラン情報を記憶可能な量子化データ情報記憶部と、
前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、前記量子化データ情報記憶部に記憶されている１つ前の非零係数の量子化データの絶対値、符号、および、零ラン情報をシンボルデータとして出力するシンボルデータ出力部と、
を有することを特徴とする画像圧縮装置。
【請求項２】
請求項１に記載の画像圧縮装置において、
前記量子化データ情報記憶部は、
前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、入力した非零係数の直前に入力した零係数の連続数により記憶内容が更新される第１記憶部と、
前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、入力した非零係数の絶対値により記憶内容が更新される第２記憶部と、
前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、入力した非零係数の符号により記憶内容が更新される第３記憶部と、
を含み、
前記シンボルデータ出力部は、前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、更新前の前記第１、第２および第３記憶部の記憶内容を１つ前の非零係数のシンボルデータとして出力することを特徴とする画像圧縮装置。
【請求項３】
請求項２に記載の画像圧縮装置において、
前記第１記憶部は、
前記量子化データ入力部が入力した処理対象の量子化データが零係数である場合、ブロック内で連続する零係数のカウント数をインクリメントして更新する第１．１記憶部と、
前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、前記第１．１記憶部に格納されている零係数のカウント数により記憶内容が更新される第１．２記憶部と、
を含むことを特徴とする画像圧縮装置。
【請求項４】
請求項２または請求項３に記載の画像圧縮装置において、
前記シンボル生成部は、さらに、
前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、１つ前の非零係数の量子化データに関するインデックスデータを生成するインデックス生成部、
を有し、
前記シンボルデータ出力部は、
更新前の前記第１、第２および第３記憶部の記憶内容とあわせてインデックスデータを出力するインデックス出力部、
を含み、
インデックスデータは、
更新前の前記第２記憶部に記憶されている絶対値と１との関係を示す絶対値情報と、
ブロック内の次の量子化データが零係数であるか非零係数であるか、あるいはブロック内の後続の量子化データが全て零係数であるかを示す後続情報と、
を含むことを特徴とする画像圧縮装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載の画像圧縮装置において、
前記周波数変換部は、
入力した画像データを周波数変換し、第１直流成分と第１交流成分とを出力する第１周波数変換部と、
前記第１直流成分を入力して周波数変換し、第２直流成分と第２交流成分とを出力する第２周波数変換部と、
を有し、
量子化データのデータ列は、最初に第２直流成分に対応するブロック、次に第２交流成分に対応する複数のブロック、最後に第１交流成分に対応する複数のブロックの順序で１つのマクロブロックを構成するとともに、前記順序で構成されるマクロブロックが繰り返し出現するデータ列であり、
各ブロックにおいて最後の非零係数の量子化データに対応するシンボルデータは、次のブロックの最初の非零係数の量子化データの出現時に出力されることを特徴とする画像圧縮装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、静止画像データを圧縮する画像圧縮装置に関する。
【背景技術】
【０００２】
静止画像データを圧縮するフォーマットとして、従来からＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）形式が広く用いられている。また、ＪＰＥＧ形式より画像の劣化を防ぐことができ、圧縮率の高いＨＤ  Ｐｈｏｔｏ形式が策定されている。ＨＤ  Ｐｈｏｔｏ形式の詳細については、非特許文献１、２に開示されている。
【０００３】
ＨＤ  Ｐｈｏｔｏに基づく画像圧縮装置（以下、単に「画像圧縮装置」という）は、静止画像データをマクロブロック単位で周波数変換し、直流成分データと、二つの交流成分データとを生成する。二つの交流成分の一方は、「ＬｏｗＰａｓｓ」と呼ばれる低域成分データであり、他方は、「ＨｉｇｈＰａｓｓ」と呼ばれる高域成分データである。画像圧縮装置は、上述の各成分データに対して量子化および予測符号化を実行する。そして、各成分の量子化データは、エントロピー符号化され、ストリームとして出力される。
【０００４】
図９は、従来の画像圧縮装置１００を示すブロック図である。画像圧縮装置１００は、静止画像データをＨＤ  Ｐｈｏｔｏ形式の圧縮画像データに変換する装置である。画像圧縮装置１００は、第１周波数変換部１０１、第２周波数変換部１０２、量子化部１０３、予測処理部１０４、シンボル生成部１０５、エントロピー符号化部１０６を備える。
【０００５】
第１周波数変換部１０１は、画像圧縮装置１００が入力した静止画像データに対して、第１階層の周波数変換を実行し、第１階層の直流成分データと、第１階層の交流成分データとを出力する。
【０００６】
第２周波数変換部１０２は、第１周波数変換部１０１が出力した第１階層の直流成分データに対してさらに周波数変換を実行し、第２階層の直流成分データと、第２階層の交流成分データとを出力する。
【０００７】
以下では、第１階層の交流成分データを高域成分データと呼ぶ。また、第２階層の直流成分データを単に直流成分データと呼び、第２階層の交流成分データを低域成分データと呼ぶ。
【０００８】
低域成分データと高域成分データとは、それぞれ１５個の変換係数データを有している。具体的には、低域成分データは、１５個の変換係数データからなるブロックをＹＵＶ３チャンネル分保有する。高域成分データは、１５個の変換係数データからなるブロックを１６ブロック有し、さらに、それら１６ブロックが、それぞれＹＵＶ３チャンネル分の変換係数データを保有している。これに対して、直流成分データは、ＹＵＶ各チャンネルについてそれぞれ１個の変換係数データを保有している。
【０００９】
量子化部１０３は、直流成分データ、低域成分データ、高域成分データに対する量子化処理を実行し、予測処理部１０４は、量子化データについて予測符号化処理を実行する。シンボル生成部１０５は、予測符号化された量子化データのビット列からシンボル列を生成し、エントロピー符号化部１０６は、シンボル化された量子化データに対するエントロピー符号化処理を実行し、圧縮画像データを生成する。
【００１０】
【非特許文献１】“ＨＤ  Ｐｈｏｔｏ−Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｓｔｉｌｌ  Ｉｍａｇｅ  Ｆｉｌｅ  Ｆｏｒｍａｔ”、[online]、平成１８年１１月７日、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ、［平成２０年４月１４日検索］、インターネット＜ＵＲＬ：http://www.microsoft.com/whdc/xps/hdphotodpk.mspx＞
【非特許文献２】“Ｃｏｄｉｎｇ  ｏｆ  Ｓｔｉｌｌ  Ｐｉｃｔｕｒｅｓ”、[online]、平成１９年１２月１９日、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｓａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｓａｔｉｏｎ  ａｎｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｏｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ、[平成２０年４月１４日検索]、インターネット＜ＵＲＬ：http://www.itscj.ipsj.or.jp/sc29/open/29view/29n9026t.doc＞
【発明の開示】
【発明が解決しようとする課題】
【００１１】
図９に示すように、シンボル生成部１０５には、第１バッファ１１１と第２バッファ１１２とが接続されている。シンボル生成部１０５は、予測処理部１０４から出力された１ブロック分の量子化データを第１バッファ１１１に格納するタイミングで、第２バッファ１１２から１ブロック分の量子化データを取り出してシンボルデータを出力する。また、予測処理部１０４から出力された１ブロック分の量子化データを第２バッファ１１２に格納しているタイミングで、第１バッファ１１１から１ブロック分の量子化データを取り出してシンボルデータを出力する。このように、２つのバッファの入出力を切り替えることで処理の高速化を図っている。
【００１２】
図１０は、第１バッファ１１１あるいは第２バッファ１１２に格納される量子化データの格納形式を示す図である。ここでは、図に示すように、１５個の量子化データからなる１ブロックのデータ列｛０，０，３，０，０，３，１０，０，０，０、−１，０，２，０，０｝が、第１バッファ１１１に記憶される場合を例に説明する。
【００１３】
まず、１番目と２番目の量子化データは、零係数であるので、第１バッファ１１１には量子化データは格納されない。３番目の量子化データは３であり、非零係数であるので、絶対値（ＡＢＳ）＝３、零ラン（ＺＥＲＯ＿ＲＵＮ）＝２、符号（ＳＩＧＮ）＝０が第１バッファ１１１に格納される。零ランは、ブロック内で非零係数の前に存在する零係数の連続する数である。符号は０が正、１が負を示している。なお、シンボル生成部１０５は、零ランをカウントするためのレジスタを有している。
【００１４】
続いて、４番目と５番目の量子化データも零係数であるので、第１バッファ１１１には量子化データは格納されない。６番目の量子化データは３であり、非零係数であるので、｛ＡＢＳ，ＺＥＲＯ＿ＲＵＮ，ＳＩＧＮ｝＝｛３，２，０｝が第１バッファ１１１に格納される。さらに、７番目の量子化データは１０であり、非零係数であるので、｛ＡＢＳ，ＺＥＲＯ＿ＲＵＮ，ＳＩＧＮ｝＝｛１０，０，０｝が第１バッファ１１１に格納される。
【００１５】
続いて、８番目、９番目、１０番目は零係数であり、第１バッファ１１１に量子化データは格納されない。１１番目については、｛ＡＢＳ，ＺＥＲＯ＿ＲＵＮ，ＳＩＧＮ｝＝｛１，３，１｝が、１３番目については、｛２，１，０｝がそれぞれ格納される。そして、最後の零係数については、例外的に、｛０，２，０｝が格納される。
【００１６】
このように第１バッファ１１１に１ブロック分の量子化データのデータ列がシンボル化された状態で格納される。そして、次に、第２バッファ１１２に次のブロックの量子化データが格納されるタイミングで、第１バッファ１１１に格納されている量子化データがシンボルデータとして出力される。このとき、あわせてインデックスが生成され、シンボルデータの一部として出力される。
【００１７】
図１１は、シンボルデータの出力内容を示す図である。図１１は、図１０で示した量子化データのデータ列から生成されるシンボルデータを示している。図中、二重線の上は、シンボル生成部１０５が入力する量子化データの内容を示し、二重線より下は、シンボル生成部１０５より出力されるシンボルデータの内容を示している。シンボルデータにおいて、ＡＢＳ，ＺＥＲＯ＿ＲＵＮ，ＳＩＧＮは、第１バッファ１１１に格納されているＡＢＳ，ＺＥＲＯ＿ＲＵＮ，ＳＩＧＮと同様である。ただし、ＡＢＳは、ＨＤ  ｐｈｏｔｏの仕様により１が減算されたものがシンボルデータとして出力される。
【００１８】
シンボルデータ中のＩＮＤＥＸは、本願発明の実施の形態の中で詳しく説明するが、ここでは詳しい説明を省略する。ＩＮＤＥＸは、非零係数の絶対値と１との関係を示す情報や、非零係数に後続する量子化データの情報を含んでいる。
【００１９】
このように、シンボルデータは、零係数に対応するタイミングでは出力されず、非零係数に対応するタイミングで間欠的に出力される。１ブロックの量子化データの数は１５個であるので、第１バッファ１１１あるいは第２バッファ１１２からシンボルデータを出力するには１５個分のデータ出力タイミングが必要である。一方、第１バッファ１１１あるいは第２バッファ１１２に量子化データを格納するタイミングも１５個分のデータ入力タイミングが必要である。このようにして、２つのバッファのうち一方のバッファへの量子化データの入力タイミングと他方のバッファからのシンボルデータの出力タイミングが同期され、効率よく、高速にシンボルを生成することが可能となっている。
【００２０】
しかし、このタイミングがずれる場合が存在する。上述したように、高域成分データと低域成分データとは、１５個の量子化データからなるブロックの集合であるが、直流成分データは、ＹＵＶあわせて３個の量子化データのみからなる。
【００２１】
高域成分データから直流成分データへの切り替えタイミングに注目すると、第１バッファ１１１に対しては直流成分データが３データ分の期間を費やして入力されることになるが、第２バッファ１１２からは１５データ分の期間を費やしてシンボルデータが出力される。このため第１バッファ１１１への入力タイミングに空き時間が生じることになる。
【００２２】
また、直流成分データから低域成分データへの切り替えタイミングに注目すると、第１バッファ１１１からは３データ分の期間を費やしてシンボルデータが出力されることになるが、第２バッファ１１２に対しては低域成分データが１５データ分の期間を費やして入力されることになる。このため、シンボルデータの出力タイミングに空き時間が生じることになる。
【００２３】
このように、２つのバッファを利用して高速化を図っているものの、１マクロブロックごとに１２データ分の入出力の空き時間が２回発生することになり、さらなる高速化が望まれている。
【００２４】
また、第１バッファ１１１あるいは第２バッファ１１２には、最大で、ＡＢＳとして量子化データのビット長×１５のデータサイズが必要であり、ＺＥＲＯ＿ＲＵＮとして４ビット×１５のデータサイズが必要であり、ＳＩＧＮとして１ビット×１５のデータサイズが必要である。したがって、２つのバッファをあわせると、量子化データのビット長を３２ビットとすれば、（３２＋４＋１）×１５×２ビットのサイズが必要である。ＨＤ  Ｐｈｏｔｏが搭載される電子機器には小型化および省電力化に対する高い要求が存在することを考慮すると、バッファサイズも極力小さくすることが望まれる。
【００２５】
そこで、本発明は前記問題点に鑑み、ＨＤ  Ｐｈｏｔｏにおけるシンボル生成処理の高速化と、シンボル生成処理に使用する記憶容量の縮小化を実現することを目的とする。
【課題を解決するための手段】
【００２６】
上記課題を解決するため、請求項１記載の画像圧縮装置は、画像データを周波数変換して周波数変換データを生成する周波数変換部と、周波数変換データを量子化して量子化データを生成する量子化部と、量子化データをシンボル化してシンボルデータを生成するシンボル生成部と、シンボルデータを符号化して符号化データを生成する符号化部と、を備え、前記シンボル生成部は、複数のブロックで構成される量子化データのデータ列をシリアルに入力する量子化データ入力部と、１つの非零係数の量子化データの絶対値、符号、および、零ラン情報を記憶可能な量子化データ情報記憶部と、前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、前記量子化データ情報記憶部に記憶されている１つ前の非零係数の量子化データの絶対値、符号、および、零ラン情報をシンボルデータとして出力するシンボルデータ出力部と、を有することを特徴とする。
【００２７】
請求項２記載の発明は、請求項１に記載の画像圧縮装置において、前記量子化データ情報記憶部は、前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、入力した非零係数の直前に入力した零係数の連続数により記憶内容が更新される第１記憶部と、前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、入力した非零係数の絶対値により記憶内容が更新される第２記憶部と、前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、入力した非零係数の符号により記憶内容が更新される第３記憶部と、を含み、前記シンボルデータ出力部は、前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、更新前の前記第１、第２および第３記憶部の記憶内容を１つ前の非零係数のシンボルデータとして出力することを特徴とする。
【００２８】
請求項３記載の発明は、請求項２に記載の画像圧縮装置において、前記第１記憶部は、前記量子化データ入力部が入力した処理対象の量子化データが零係数である場合、ブロック内で連続する零係数のカウント数をインクリメントして更新する第１．１記憶部と、前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、前記第１．１記憶部に格納されている零係数のカウント数により記憶内容が更新される第１．２記憶部と、を含むことを特徴とする。
【００２９】
請求項４記載の発明は、請求項２または請求項３に記載の画像圧縮装置において、前記シンボル生成部は、さらに、前記量子化データ入力部が入力した処理対象の量子化データが非零係数である場合、１つ前の非零係数の量子化データに関するインデックスデータを生成するインデックス生成部、を有し、前記シンボルデータ出力部は、更新前の前記第１、第２および第３記憶部の記憶内容とあわせてインデックスデータを出力するインデックス出力部、を含み、インデックスデータは、更新前の前記第２記憶部に記憶されている絶対値と１との関係を示す絶対値情報と、ブロック内の次の量子化データが零係数であるか非零係数であるか、あるいはブロック内の後続の量子化データが全て零係数であるかを示す後続情報と、を含むことを特徴とする。
【００３０】
請求項５記載の発明は、請求項１ないし請求項４のいずれかに記載の画像圧縮装置において、前記周波数変換部は、入力した画像データを周波数変換し、第１直流成分と第１交流成分とを出力する第１周波数変換部と、前記第１直流成分を入力して周波数変換し、第２直流成分と第２交流成分とを出力する第２周波数変換部と、を有し、量子化データのデータ列は、最初に第２直流成分に対応するブロック、次に第２交流成分に対応する複数のブロック、最後に第１交流成分に対応する複数のブロックの順序で１つのマクロブロックを構成するとともに、前記順序で構成されるマクロブロックが繰り返し出現するデータ列であり、各ブロックにおいて最後の非零係数の量子化データに対応するシンボルデータは、次のブロックの最初の非零係数の量子化データの出現時に出力されることを特徴とする。
【発明の効果】
【００３１】
本発明の画像圧縮装置は、量子化データ情報記憶部において１つの非零係数の量子化データの絶対値、符号、および、零ラン情報を記憶し、入力した処理対象の量子化データが非零係数である場合、量子化データ情報記憶部に記憶されている１つ前の非零係数の量子化データの絶対値、符号、および、零ラン情報をシンボルデータとして出力する。これにより、ブロック内の全ての非零係数の量子化データを一旦バッファに格納するという処理が不要になり、処理に必要な記憶容量のサイズを小さくすることができる。
【００３２】
また、直流成分データ、低域成分データ、高域成分データの切り替わりタイミングにおいても、処理時間に無駄な空き時間を生じさせることがなく、処理速度が向上する。
【００３３】
また、直流成分データ、低域成分データ、高域成分データで、処理を共通化させることが可能である。
【発明を実施するための最良の形態】
【００３４】
＜１．画像圧縮装置の構成とＨＤ  ｐｈｏｔｏの処理の流れ＞
以下、図面を参照しつつ本発明の実施の形態について説明する。図１は、本実施の形態に係る画像圧縮装置１０の構成を示すブロック図である。図１に示す画像圧縮装置１０は、静止画像データをＨＤ  Ｐｈｏｔｏ形式の圧縮画像データに変換する装置である。
【００３５】
画像圧縮装置１０は、第１周波数変換部１１、第２周波数変換部１２、量子化部１３、予測処理部１４、シンボル生成部１５、エントロピー符号化部１６を備える。
【００３６】
画像圧縮装置１０に入力される静止画像データは、図示しない前処理部において、色変換処理、フィルタ処理などが行われる。たとえばＲＧＢ形式の静止画像データは、色変換によりＹＵＶ４４４形式に変換される。そして、フィルタ処理後の静止画像データが、第１周波数変換部１１に入力される。
【００３７】
画像圧縮装置１０は、マクロブロック単位で画像に対する圧縮処理を実行する。図２は、マクロブロックの構成を示す図である。図２に示すように、１ブロックは、４×４の画素（１６画素）で構成される。１マクロブロックは、４×４のブロック（１６ブロック）で構成される。つまり、１マクロブロックは、１６×１６の画素（２５６画素）で構成される。図２において、マクロブロックを構成する各ブロックを、左上から右方向に順に、ブロックＢ０１、Ｂ０２・・・Ｂ１６とする。
【００３８】
このような構成のマクロブロックが、ＹＵＶのチャンネルごとに存在しており、ＹＵＶ各チャンネルのマクロブロックが画像圧縮装置１０において処理される。以下に説明する各処理は、各色チャンネルで共通の処理である。
【００３９】
第１周波数変換部１１は、画像圧縮装置１０が入力した静止画像データに対して、第１階層の周波数変換を実行し、第１階層の直流成分データＤａ０１〜Ｄａ１６と、第１階層の交流成分データＨＰ０１〜ＨＰ１６とを出力する。第１階層の交流成分データＨＰ０１〜ＨＰ１６は、ＨＤ  Ｐｈｏｔｏ形式における「Ｈｉｇｈｐａｓｓ（ＨＰ）」成分に対応する。以下では、第１階層の交流成分データＨＰ０１〜ＨＰ１６を高域成分データＨＰ０１〜ＨＰ１６と呼ぶ。
【００４０】
図３は、第１階層の直流成分データＤａ０１〜Ｄａ１６と高域成分データＨＰ０１〜ＨＰ１６とを示す概念図である。図３に示すように、ブロックごとに第１階層の直流成分データＤａ０１〜Ｄａ１６と、高域成分データＨＰ０１〜ＨＰ１６が生成されている。高域成分データＨＰ０１〜ＨＰ１６は、ブロックＢ０１〜Ｂ１６にそれぞれ対応する。第１階層の直流成分データＤａ０１〜Ｄａ１６は、それぞれ１個の変換係数データを有している。高域成分データＨＰ０１〜ＨＰ１６は、それぞれ１５個の変換係数データを有している。
【００４１】
第２周波数変換部１２は、第１周波数変換部１１が出力した第１階層の直流成分データＤａ０１〜Ｄａ１６に対して周波数変換を実行し、第２階層の直流成分データＤｂと、第２階層の交流成分データＬＰとを出力する。第２階層の直流成分データＤｂは、ＨＤ  Ｐｈｏｔｏ形式における直流成分に対応する。第２階層の交流成分データＬＰは、ＨＤ  Ｐｈｏｔｏ形式における「Ｌｏｗｐａｓｓ（ＬＰ）」成分に対応する。以下では、第２階層の直流成分データＤｂを単に直流成分データＤｂと呼び、第２階層の交流成分データＬＰを低域成分データＬＰと呼ぶ。
【００４２】
図４は、第２階層の周波数変換に伴うデータの変化を示す図である。第２階層の周波数変換により、直流成分データＤｂと、低域成分データＬＰとが生成される。直流成分データＤｂは、１個の変換係数データを有しており、低域成分データＬＰは、１５個の変換係数データを有している。
【００４３】
このように、静止画像データに対して第１階層の周波数変換が実行され、さらに第１階層の直流成分データＤａ０１〜Ｄａ１６に対して第２階層の周波数変換が実行される。画像圧縮装置１０は、静止画像データに対する周波数変換をマクロブロック単位で階層的に実行して、直流成分データＤｂ、低域成分データＬＰ、高域成分データＨＰ０１〜ＨＰ１６を生成する。
【００４４】
このようにして生成された低域成分データＬＰと高域成分データＨＰ０１〜ＨＰ１６は、それぞれ１５個の変換係数データを有している。具体的には、低域成分データＬＰは、１５個の変換係数データからなるブロックをＹＵＶ３チャンネル分保有する。高域成分データＨＰ０１〜ＨＰ１６は、１５個の変換係数データからなるブロックを１６ブロック有し、さらに、それら１６ブロックが、それぞれＹＵＶ３チャンネル分の変換係数データを保有している。これに対して、直流成分データＤｂは、ＹＵＶ各チャンネルについてそれぞれ１個の変換係数データを保有している。
【００４５】
量子化部１３は、直流成分データＤｂ、低域成分データＬＰ、高域成分データＨＰ０１〜ＨＰ１６に対する量子化処理を実行して量子化データを生成する。予測処理部１４は、量子化データについて予測符号化処理を実行する。予測符号化された量子化データは、シンボル生成部１５に入力される。
【００４６】
シンボル生成部１５は、予測符号化された量子化データのビット列からシンボル列を生成する。シンボル生成部１５の処理内容は本発明の特徴部分であり、その詳しい処理内容は後で説明する。シンボル生成部１５は、生成したシンボル列をエントロピー符号化部１６に出力する。
【００４７】
エントロピー符号化部１６は、シンボル化された量子化データに対するエントロピー符号化処理を実行し、圧縮画像データを生成する。圧縮画像データは、１マクロブロック単位のビットストリームとして出力される。
【００４８】
＜２．シンボルのデータ構成＞
次に、シンボル生成部１５において生成されるシンボルデータのデータ構成について説明する。図５は、シンボルデータのデータ構成を示す図である。ＨＤ  Ｐｈｏｔｏにおけるシンボルデータは、絶対値（ＡＢＳ）、インデックス（ＩＮＤＥＸ）、符号（ＳＩＧＮ）、零ラン（ＺＥＲＯ＿ＲＵＮ）、フレックスビット長（ＦＬＥＸＢＩＴ）から構成される。
【００４９】
絶対値（ＡＢＳ）は、非零係数の絶対値から１を減算した値が設定される。符号（ＳＩＧＮ）は、非零係数の符号がプラスの場合は０、マイナスの場合は１が設定される。零ラン（ＺＥＲＯ＿ＲＵＮ）には、ブロック内において非零係数の直前に存在する連続する零係数の数が設定される。フレックスビット長（ＦＬＥＸＢＩＴ）には、量子化データの下位ビットのうちフレックスビットに割り当てられるビット幅が設定される。
【００５０】
インデックス（ＩＮＤＥＸ）には、ＦＩＲＳＴ＿ＩＮＤＥＸとＮＥＸＴ＿ＩＮＤＥＸとが存在する。ＦＩＲＳＴ＿ＩＮＤＥＸは、ブロック内の最初の非零係数に対して設定されるＩＮＤＥＸであり、ＮＥＸＴ＿ＩＮＤＥＸは、２番目以降の全ての非零係数に対して設定されるＩＮＤＥＸである。
【００５１】
ＦＩＲＳＴ＿ＩＮＤＥＸの最下位ビット［０］には、最初の非零係数の前に零ランがあるか否かが設定される。零ランがある場合には０が、ない場合には１が設定される。
【００５２】
ＦＩＲＳＴ＿ＩＮＤＥＸの第１ビット［１］には、対応する非零係数の絶対値が１であるか否かが設定される。絶対値が１である場合には０、絶対値が１でない場合には１が設定される。
【００５３】
ＦＩＲＳＴ＿ＩＮＤＥＸの第２、第３ビット［３：２］には、対応する非零係数より後続の量子化データの情報が設定される。対応する非零係数より以降の量子化データが、全て零係数であれば、ＥＯＢ（Ｅｎｄ  Ｏｆ  Ｂｌｏｃｋ）であることを示す００が設定される。対応する非零係数の直後に非零係数が存在すれば０１が、直後に零係数が存在すれば１０が設定される。
【００５４】
ＮＥＸＴ＿ＩＮＤＥＸの最下位ビット［０］には、対応する非零係数の絶対値が１であるか否かが設定される。絶対値が１である場合には０、絶対値が１でない場合には１が設定される。
【００５５】
ＮＥＸＴ＿ＩＮＤＥＸの第１、第２ビット［２：１］には、対応する非零係数より後続の量子化データの情報が設定される。対応する非零係数より以降の量子化データが、全て零係数であれば、ＥＯＢであることを示す００が設定される。対応する非零係数の直後に非零係数が存在すれば０１が、直後に零係数が存在すれば１０が設定される。
【００５６】
＜３．シンボル生成部が備えるレジスタの種類＞
図１に示すように、シンボル生成部１５は、第１レジスタ５１、第２レジスタ５２、第３レジスタ５３、第４レジスタ５４、第５レジスタ５５、第６レジスタ５６を備えている。
【００５７】
第１レジスタ５１は、零ランをカウントするための零カウントレジスタである。１ブロック内の量子化データのデータ数は１５であるので、第１レジスタ５１は、４ビットの記憶容量を備えている。
【００５８】
第２レジスタ５２は、シンボルデータとして出力するための零ランを格納する零ランレジスタである。第２レジスタ５２も４ビットの記憶容量を備えている。
【００５９】
第３レジスタ５３は、シンボルデータとして出力するための非零係数の絶対値を格納するためのＡＢＳレジスタである。本実施の形態においては、量子化データのデータ幅は３２ビットとする。したがって、第３レジスタ５３は３２ビットの記憶容量を備えている。ただし、第３レジスタ５３には、非零係数の絶対値がそのままの値で格納される。シンボルデータとして出力されるときには、１を減算した値が出力される。
【００６０】
第４レジスタ５４は、シンボルデータとして出力するための非零係数の符号を格納するためのＳＩＧＮレジスタである。符号は、上述したように０か１の情報が記録されるので、第４レジスタ５４は１ビットの記憶容量を備えている。
【００６１】
第５レジスタ５５は、ファーストフラグを設定する１ｓｔフラグレジスタである。第５レジスタ５５にはブロック内の最初の非零係数が出現するまでは１が設定され、非零係数が出現した後は０が設定される。第５レジスタ５５は、１ビットの記憶容量を備えている。
【００６２】
第６レジスタ５６は、ポジションデータ設定するＰＯＳレジスタである。ポジションデータは、現在の処理対象の量子化データが、ブロック内で何番目のデータであるかを示すデータである。ポジションデータは、非零係数が入力される直前に格納されていた情報と零カウント情報とから決定することができる。
【００６３】
＜４．シンボル生成処理＞
上記のような構成のシンボル生成部１５により、シンボルデータが生成される処理の流れについて説明する。
【００６４】
図６は、量子化データとしてデータ列｛０，０，３，０，０，３，１０，０，０，０，−１，０，２，０，０｝が入力された場合に、シンボル生成部１５の各レジスタに設定される値を示している。シンボル生成部１５は、量子化データのデータ列を先頭から順にシリアルに入力する。
【００６５】
まず、シンボル生成部１５は、先頭の０番目のデータ｛０｝を入力する。このタイミングで、零カウントが１インクリメントされ、零カウントレジスタ（第１レジスタ５１）に１が設定される。また、｛０｝は零係数であるので、ＡＢＳレジスタ（第３レジスタ５３）、ＳＩＧＮレジスタ（第４レジスタ５４）は不定である。また、零ランレジスタ（第２レジスタ５２）とＰＯＳレジスタ（第６レジスタ５６）には０が設定される。１ｓｔフラグレジスタ（第５レジスタ５５）には、初期値として１が設定される。
【００６６】
次の１番目のデータ｛０｝が入力されると、零カウントレジスタ（第１レジスタ５１）が１インクリメントされ２が設定される。その他のレジスタはデータが更新されることはない。
【００６７】
続いて２番目のデータ｛３｝が入力されると、｛３｝は非零係数であるので、ＡＢＳレジスタ（第３レジスタ５３）に３が設定され、ＳＩＧＮレジスタ（第４レジスタ５４）に符号プラスを示す０が設定される。また、零ランレジスタ（第２レジスタ５２）には、零カウントレジスタ（第１レジスタ５１）に格納されている直前の零カウント数２が設定され、零カウントレジスタ（第１レジスタ５１）は０に初期化される。また、非零係数が出現したので、ＰＯＳレジスタ（第６レジスタ５６）には、２が設定される。
【００６８】
このように、シンボル生成部１５に、２番目のデータとして最初の非零係数が入力されると、ＡＢＳ，ＳＩＧＮ，零ラン等の２番目のデータの情報がレジスタ内に格納される。この時点では、２番目のデータはシンボルデータとして出力されるのではなく、レジスタ内に保持されることになる。
【００６９】
３番目および４番目のデータも｛０｝である。したがって、第２、第３、第４、第６レジスタのデータは更新されない。零カウントレジスタ（第１レジスタ５１）は、１、２と順にインクリメントされる。１ｓｔフラグレジスタ（第５レジスタ５５）は、最初の非零係数が出現した後は、０で固定される。
【００７０】
シンボル生成部１５が、３番目および４番目のデータを入力している間も、第２、第３、第４レジスタ５２，５３，５４は、２番目のデータのＡＢＳ，ＳＩＧＮ，零ランの情報を保持している。
【００７１】
５番目のデータ｛３｝が入力されると、｛３｝は非零係数であるので、ＡＢＳレジスタ（第３レジスタ５３）に、３が設定され、ＳＩＧＮレジスタ（第４レジスタ５４）に符号プラスを示す０が設定される。また、零ランレジスタ（第２レジスタ５２）には、零カウントレジスタ（第１レジスタ５１）に格納されている直前の零カウント数２が設定され、零カウントレジスタ（第１レジスタ５１）は０に初期化される。また、非零係数が出現したので、ＰＯＳレジスタ（第６レジスタ５６）には、５が設定される。
【００７２】
シンボル生成部１５が５番目のデータ｛３｝を入力すると、このように、第２、第３、第４レジスタ５２，５３，５４が更新される。したがって、シンボル生成部１５は、５番目のデータによって第２、第３、第４レジスタ５２，５３，５４の内容が更新される前に、第２、第３、第４レジスタ５２，５３，５４に格納されているデータを２番目のデータのシンボルデータとして出力するのである。つまり、新たな非零係数が出現した時点でレジスタに格納されている１つ前の非零係数のシンボルデータを出力し、レジスタには新たに出現した非零係数の情報を保持するのである。ただし、ＡＢＳについては１を減算した値がシンボルデータとして使用される。
【００７３】
図７に、シンボル生成部１５から出力されるシンボルデータの内容を示す。図７は、図６に示すデータ列｛０，０，３，０，０，３，１０，０，０，０，−１，０，２，０，０｝がブロックＮｏ．４０として入力されている場合を示している。
【００７４】
図７において、二重線より上は、シンボル生成部１５が入力する量子化データの情報を示し、二重線より下は、シンボル生成部１５より出力されるシンボルデータの内容を示している。
【００７５】
図７に示すように、５番目のデータ｛３｝が入力されるタイミングで、２番目のデータ｛３｝のシンボルデータが出力されている。つまり、ＡＢＳとして２、ＦＩＲＳＴ＿ＩＮＤＥＸとして１０１０、ＺＥＲＯ＿ＲＵＮとして２、ＳＩＧＮとして０がシンボルデータとして出力されている。なお、ＦＩＲＳＴ＿ＩＮＤＥＸは５番目の量子化データを入力したタイミングでシンボル生成部１５により生成される。
【００７６】
また、ブロックＮｏ．４０の２番目の量子化データを入力するタイミングで出力されているシンボルデータは、ブロックＮｏ．３９の最後の非零係数に対応するシンボルデータである。
【００７７】
再び、図６を参照する。６番目のデータ｛１０｝が入力されると、｛１０｝は非零係数であるので、ＡＢＳレジスタ（第３レジスタ５３）に、１０が設定され、ＳＩＧＮレジスタ（第４レジスタ５４）に符号プラスを示す０が設定される。また、零ランレジスタ（第２レジスタ５２）には、直前の零カウント数０が設定され、零カウントレジスタ（第１レジスタ５１）は０に初期化される。また、非零係数が出現したので、ＰＯＳレジスタ（第６レジスタ５６）には、６が設定される。
【００７８】
シンボル生成部１５が、６番目のデータを入力すると、このように、第２、第３、第４レジスタ５２，５３，５４が更新される。したがって、シンボル生成部１５は、６番目のデータによって第２、第３、第４レジスタ５２，５３，５４の内容が更新される前に、第２、第３、第４レジスタ５２，５３，５４に格納されているデータを５番目のデータのシンボルデータとして出力するのである。ただし、ＡＢＳについては１を減算した値がシンボルデータとして使用される。
【００７９】
再び、図７を参照する。６番目のデータ｛１０｝が入力されるタイミングで、５番目のデータ｛３｝のシンボルデータが出力されている。つまり、ＡＢＳとして２、ＮＥＸＴ＿ＩＮＤＥＸとして０１１、ＺＥＲＯ＿ＲＵＮとして２、ＳＩＧＮとして０がシンボルデータとして出力されている。なお、ＮＥＸＴ＿ＩＮＤＥＸは６番目の量子化データが入力されるタイミングでシンボル生成部１５により生成される。
【００８０】
このように本実施の形態のシンボル生成部１５は、単一の量子化データの情報を記憶するレジスタを備える構成としながら、ＨＤ  Ｐｈｏｔｏに準拠したシンボルデータを生成し、出力可能である。
【００８１】
従来技術で説明した図９に示すタイプの画像圧縮装置であれば、ブロック内の全ての非零係数の情報を一旦、バッファに格納する必要があった。しかも、処理を高速化するために、そのようなバッファが２面必要であった。これに対して、本実施の形態のシンボル生成部１５は、ブロック内の１つの非零係数の情報のみを保持する構成であるので、シンボル生成部１５が利用する記憶装置の容量を格段に減少させることができる。
【００８２】
たとえば、上記の実施の形態であれば、各レジスタに必要な記憶容量は、第１レジスタ５１で４ビット、第２レジスタ５２で４ビット、第３レジスタ５３で３２ビット、第４レジスタ５４で１ビット、第５レジスタ５５で１ビット、第６レジスタ５６で４ビットである。つまり、合計で、４６ビットの記憶容量があれば足りる。上述した従来の構成では、２枚のバッファ全体で（３２＋４＋１）×１５×２ビットのサイズが必要であったので、大幅に記憶サイズを小さくすることができる。
【００８３】
また、本実施の形態のシンボル生成部１５の処理内容によれば、従来の構成で説明したように、直流成分データから低域成分データへの切り替わり、高域成分データから直流成分データへの切り替わりで空き時間が発生することはない。したがって、シンボルデータの生成処理の速度を向上させることができる。
【００８４】
さらに、本実施の形態の方法であれば、直流成分データ、低域成分データ、高域成分データによって処理の区別をする必要はない。非零係数の情報を一旦レジスタに保持し、次の非零係数の出現時に、保持している直前の非零係数の情報に基づいてシンボルデータを出力するというルールを全ての成分のデータに共通して適用できる。
【００８５】
一般的には、第Ｎ番目のブロックの最後の非零係数に関するシンボルデータは、第Ｎ＋１番目のブロックの最初の非零係数の出現時に出力される。
【００８６】
図８は、高域成分データ、直流成分データ、低域成分データの切り替わり部分で出力されるシンボルデータの出力例を示す図である。直流成分データのブロック（ブロックＮｏ．５３）の最後の非零係数｛４０｝に関するシンボルデータは、低域成分データの最初のブロック（ブロックＮｏ．５４）の最初の非零係数の出現時に出力されている。なお、直流成分データについては、シンボルデータとしてＡＢＳとＳＩＧＮだけが出力される。また、直流成分データについては、ＡＢＳとして量子化データの絶対値がそのまま（１を減算しない値）が設定される。
【００８７】
また、高域成分データの最後のブロック（ブロックＮｏ．５２）の最後の非零係数｛１｝に関するシンボルデータは、直流成分データの最初の非零係数の出現時に出力されている。
【００８８】
また、低域成分データの最後のブロックの最後の非零係数に関するシンボルデータは、高域成分データの最初のブロックの最初の非零係数の出現時に出力される。
【００８９】
このように、直流成分データ、低域成分データ、高域成分データにわたって処理方式を統一することができるので、処理回路の大部分を共通化させることが可能である。あるいはソフトウェア処理を行うのであれば、アルゴリズムの大部分を共通化させることが可能である。
【図面の簡単な説明】
【００９０】
【図１】本実施の形態に係る画像圧縮装置のブロック図である。
【図２】マクロブロックの構成を示す図である。
【図３】第１階層の周波数変換の概念図である。
【図４】第２階層の周波数変換の概念図である。
【図５】シンボルデータのデータ構成を示す図である。
【図６】シンボル生成部のレジスタに格納されるデータの遷移図である。
【図７】シンボルデータの出力タイミングとデータの内容を示す図である。
【図８】ブロックの切り替わりタイミングにおいて出力されるシンボルデータの内容を示す図である。
【図９】従来の画像圧縮装置のブロック図である。
【図１０】従来の画像圧縮装置においてバッファに格納される量子化データのデータ形式を示す図である。
【図１１】従来の画像圧縮装置においてシンボルデータの出力タイミングとデータの内容を示す図である。
【符号の説明】
【００９１】
１０    画像圧縮装置
１１    第１周波数変換部
１２    第２周波数変換部
１３    量子化部
１５    シンボル生成部
５１〜５６    第１〜第６レジスタ
【図１】
2010130053.tif 000003
【図２】
2010130053.tif 000004
【図３】
2010130053.tif 000005
【図４】
2010130053.tif 000006
【図５】
2010130053.tif 000007
【図６】
2010130053.tif 000008
【図７】
2010130053.tif 000009
【図８】
2010130053.tif 000010
【図９】
2010130053.tif 000011
【図１０】
2010130053.tif 000012
【図１１】
2010130053.tif 000013