画像処理装置
【課題】符号化部におけるTrim Bitsの削除処理に起因する誤差を低減することにより、画質の向上を図ることが可能な、画像処理装置を得る。
【解決手段】復号化部(36)は、部分データ(S7HP1)に対して復号化処理を実行することにより、部分データ(S8HPU)を生成する、処理部(36HP2)と、部分データ(S8HPLU)の下位に、データ値が「0」ではない部分データ(S8HPLL)を付加することにより、部分データ(S8HPL)を生成する、処理部(36HP3)と、部分データ(S8HPU)の下位に部分データ(S8HPL)を付加することにより、データ(S8HP)を生成して出力する、処理部(36HP1)とを有する。
【解決手段】復号化部(36)は、部分データ(S7HP1)に対して復号化処理を実行することにより、部分データ(S8HPU)を生成する、処理部(36HP2)と、部分データ(S8HPLU)の下位に、データ値が「0」ではない部分データ(S8HPLL)を付加することにより、部分データ(S8HPL)を生成する、処理部(36HP3)と、部分データ(S8HPU)の下位に部分データ(S8HPL)を付加することにより、データ(S8HP)を生成して出力する、処理部(36HP1)とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置に関し、特に、HD Photoにおけるデコーダに関する。
【背景技術】
【0002】
近年、JPEGよりも高画質で、JPEG2000よりも回路構成及び演算処理が簡素化された静止画ファイルフォーマットとして、マイクロソフト社よりHD Photo(又はJPEG XR)が提案されている。
【0003】
HD Photoにおけるエンコーダは、色変換部、プレフィルタ、周波数変換部、量子化部、予測部、及び符号化部を備えて構成されている。
【0004】
周波数変換部は、入力された画素信号に対して所定の周波数変換処理(PCT)を実行することにより、ハイパス成分、ローパス成分、及び直流成分の周波数データを出力する。
【0005】
量子化部は、周波数変換部から入力された各成分の周波数データのうち、量子化係数で規定される桁数に相当する下位データをそれぞれ削除することにより、量子化後の周波数データ(ハイパス成分、ローパス成分、及び直流成分)を出力する。
【0006】
符号化部は、ビット分割処理部、符号化処理部、及びFLEX_REF生成処理部を有している。ビット分割処理部は、予測部から入力された各成分の周波数データを、上位側の桁範囲内の上位データ(Normal Bit)と、下位側の桁範囲内の下位データ(Flex Bit)とに分割する。符号化処理部は、ビット分割処理部から入力された各成分の上位データに対して、エントロピー符号化処理をそれぞれ実行して出力する。FLEX_REF生成処理部は、ビット分割処理部から入力されたハイパス成分の下位データのうち、上位側の桁範囲内のデータ(FLEX_REF)を、符号化することなく出力する。また、FLEX_REF生成処理部は、ビット分割処理部から入力されたハイパス成分の下位データのうち、下位側の桁範囲内のデータ(Trim Bits)を削除する。一方、FLEX_REF生成処理部は、ビット分割処理部から入力されたローパス成分及び直流成分の各下位データに対しては、Trim Bitsの削除処理を実行しない。
【0007】
なお、HD Photoの詳細については、例えば下記非特許文献1に開示されており、JPEG XRの詳細については、例えば下記非特許文献2に開示されている。
【0008】
【非特許文献1】"HD Photo -Photographic Still Image File Format", [online], 2006年11月7日, Microsoft Corporation, [2007年10月10日検索], インターネット<URL: http://www.microsoft.com/whdc/xps/hdphotodpk.mspx>
【非特許文献2】"Coding of Still Pictures -JBIG JPEG", [online], 19 December 2007, ISO/IEC JTC 1/SC 29/WG1 N 4392, [2008年3月4日検索], インターネット<URL: http://www.itscj.ipsj.or.jp/sc29/open/29view/29n9026t.doc>
【発明の開示】
【発明が解決しようとする課題】
【0009】
このようにHD Photoにおけるエンコーダでは、ハイパス成分、ローパス成分、及び直流成分のそれぞれに関して、エンコーダに入力される原画像と、デコーダから出力されるデコード画像との間に、量子化部における下位データの削除処理に起因する誤差が発生する。また、ハイパス成分に関しては、符号化部におけるTrim Bitsの削除処理に起因する誤差が発生する。これらの誤差は、デコード画像の画質劣化の原因となり得る。
【0010】
本発明はかかる事情に鑑みて成されたものであり、量子化部における下位データの削除処理に起因する誤差、及び符号化部におけるTrim Bitsの削除処理に起因する誤差を低減することにより、画質の向上を図ることが可能な、画像処理装置を得ることを目的とする。
【課題を解決するための手段】
【0011】
本発明の第1の態様に係る画像処理装置は、符号化部と復号化部とを備え、前記符号化部は、入力された第1のデータを、上位側の桁範囲内の上位データと、下位側の桁範囲内の下位データとに分割する第1の処理部と、前記上位データに対して符号化処理を実行することにより、第1の部分データを生成して出力する、第2の処理部と、前記下位データのうち上位側の桁範囲内の第2の部分データを、符号化することなく出力するとともに、前記下位データのうち下位側の桁範囲内の第3の部分データを削除する、第3の処理部とを有し、前記復号化部は、前記第1の部分データに対して復号化処理を実行することにより、第4の部分データを生成する、第4の処理部と、前記第2の部分データの下位に、データ値が「0」ではない第5の部分データを付加することにより、第6の部分データを生成する、第5の処理部と、前記第4の部分データの下位に前記第6の部分データを付加することにより、第2のデータを生成して出力する、第6の処理部とを有することを特徴とするものである。
【0012】
本発明の第1の態様に係る画像処理装置によれば、第5の処理部は、第2の部分データの下位に、データ値が「0」ではない第5の部分データを付加することにより、第6の部分データを生成する。従って、第2の部分データの下位にデータ値が「0」の部分データを付加することにより第6の部分データを生成する場合と比較すると、統計的に、第2のデータのデータ値を第1のデータのデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0013】
本発明の第2の態様に係る画像処理装置は、第1の態様に係る画像処理装置において特に、前記第2のデータに対して逆量子化処理を実行することにより、第3のデータを生成して出力する逆量子化部をさらに備え、前記逆量子化部は、第7の処理部を有し、前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第7の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記第3のデータをその最下位桁から順に削除することを特徴とするものである。
【0014】
本発明の第2の態様に係る画像処理装置によれば、削除された第3の部分データの桁数よりも、付加される第5の部分データの桁数のほうが多い場合であっても、第5の処理部は、所望のデータ値の第5の部分データを用いて、第6の部分データを生成することが可能となる。
【0015】
本発明の第3の態様に係る画像処理装置は、第1の態様に係る画像処理装置において特に、前記符号化部よりも前段に配置された量子化部と、前記復号化部よりも後段に配置された逆量子化部とをさらに備え、前記量子化部は、入力された第3のデータから、量子化係数で規定される桁数に相当する第7の部分データを削除することにより、前記第1のデータを生成して出力し、前記逆量子化部は、前記第2のデータの下位に、データ値が「0」ではない第8の部分データを付加することにより、第4のデータを生成する、第7の処理部と、前記第4のデータを、前記量子化係数で規定される桁数だけ、その上位側に向けてビットシフトすることにより、第5のデータを生成して出力する、第8の処理部とを有することを特徴とするものである。
【0016】
本発明の第3の態様に係る画像処理装置によれば、第7の処理部は、第2のデータの下位に、データ値が「0」ではない第8の部分データを付加することにより、第4のデータを生成する。従って、第2のデータの下位にデータ値が「0」の部分データを付加することにより第4のデータを生成する場合と比較すると、統計的に、第5のデータのデータ値を第3のデータのデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0017】
本発明の第4の態様に係る画像処理装置は、第3の態様に係る画像処理装置において特に、前記逆量子化部は、第9の処理部をさらに有し、前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記第9の処理部は、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数だけ、前記第5のデータをその最下位桁から順に削除することを特徴とするものである。
【0018】
本発明の第4の態様に係る画像処理装置によれば、削除された第7の部分データの桁数よりも、付加される第8の部分データの桁数のほうが多い場合であっても、第7の処理部は、所望のデータ値の第8の部分データを用いて、第4のデータを生成することが可能となる。
【0019】
本発明の第5の態様に係る画像処理装置は、第3の態様に係る画像処理装置において特に、前記逆量子化部は、第9の処理部をさらに有し、前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多く、かつ、前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記9の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数と、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数との合計の桁数だけ、前記第5のデータをその最下位桁から順に削除することを特徴とするものである。
【0020】
本発明の第5の態様に係る画像処理装置によれば、削除された第3の部分データの桁数よりも、付加される第5の部分データの桁数のほうが多い場合であっても、第5の処理部は、所望のデータ値の第5の部分データを用いて、第6の部分データを生成することが可能となる。また、削除された第7の部分データの桁数よりも、付加される第8の部分データの桁数のほうが多い場合であっても、第7の処理部は、所望のデータ値の第8の部分データを用いて、第4のデータを生成することが可能となる。
【0021】
本発明の第6の態様に係る画像処理装置は、第3〜第5のいずれか一つの態様に係る画像処理装置において特に、前記第8の部分データの値は、前記第7の部分データが削除されることに起因する誤差に対する所望の補正量に基づいて定められることを特徴とするものである。
【0022】
本発明の第6の態様に係る画像処理装置によれば、第3の部分データが削除されることに起因する誤差に対する補正量と、第7の部分データが削除されることに起因する誤差に対する補正量とを、別個独立に規定することが可能となる。
【0023】
本発明の第7の態様に係る画像処理装置は、第3〜第5のいずれか一つの態様に係る画像処理装置において特に、前記第8の部分データの値は、前記第3の部分データが削除されることに起因する誤差に対する所望の補正量と、前記第5の部分データの値とに基づいて定められることを特徴とするものである。
【0024】
本発明の第7の態様に係る画像処理装置によれば、第3の部分データが削除されることに起因する誤差に対する所望の補正量が、第5の部分データの桁数によっては実現できない場合であっても、不足分の桁数を第8の部分データによって補うことができる。その結果、第3の部分データが削除されることに起因する誤差に対する所望の補正量を、第5の部分データと第8の部分データとによって確実に実現することが可能となる。
【0025】
本発明の第8の態様に係る画像処理装置は、第1の態様に係る画像処理装置において特に、前記第2のデータに対して予測値データを加算することにより、第3のデータを生成して出力する逆予測部と、前記第3のデータに対して逆量子化処理を実行することにより、第4のデータを生成して出力する逆量子化部とをさらに備え、前記逆予測部は、第7の処理部を有し、前記逆量子化部は、第8の処理部を有し、前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第7の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記予測値データの下位に、ビット値が「0」である桁を追加し、前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第8の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記第4のデータをその最下位桁から順に削除することを特徴とするものである。
【0026】
本発明の第8の態様に係る画像処理装置によれば、削除された第3の部分データの桁数よりも、付加される第5の部分データの桁数のほうが多い場合であっても、第5の処理部は、所望のデータ値の第5の部分データを用いて、第6の部分データを生成することが可能となる。しかも、第7の処理部は、第3の部分データの桁数と第5の部分データの桁数との差に相当する桁数だけ、予測値データの下位に、ビット値が「0」である桁を追加する。従って、第2のデータと予測値データとの加算において、互いに加算し合うべき桁がずれることを回避することができる。
【0027】
本発明の第9の態様に係る画像処理装置は、第1の態様に係る画像処理装置において特に、入力された第3のデータと、予測値データとの差分値を、前記第1のデータとして出力する予測部と、前記予測部よりも前段に配置された量子化部と、前記第2のデータに対して前記予測値データを加算することにより、第4のデータを生成して出力する逆予測部と、前記逆予測部よりも後段に配置された逆量子化部とをさらに備え、前記量子化部は、入力された第5のデータから、量子化係数で規定される桁数に相当する第7の部分データを削除することにより、前記第3のデータを生成して出力し、前記逆量子化部は、前記第4のデータの下位に、データ値が「0」ではない第8の部分データを付加することにより、第6のデータを生成する、第7の処理部と、前記第6のデータを、前記量子化係数で規定される桁数だけ、その上位側に向けてビットシフトすることにより、第7のデータを生成して出力する、第8の処理部とを有することを特徴とするものである。
【0028】
本発明の第9の態様に係る画像処理装置によれば、第7の処理部は、第4のデータの下位に、データ値が「0」ではない第8の部分データを付加することにより、第6のデータを生成する。従って、第4のデータの下位にデータ値が「0」の部分データを付加することにより第6のデータを生成する場合と比較すると、統計的に、第7のデータのデータ値を第5のデータのデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0029】
本発明の第10の態様に係る画像処理装置は、第9の態様に係る画像処理装置において特に、前記逆量子化部は、第9の処理部をさらに有し、前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記第9の処理部は、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数だけ、前記第7のデータをその最下位桁から順に削除することを特徴とするものである。
【0030】
本発明の第10の態様に係る画像処理装置によれば、削除された第7の部分データの桁数よりも、付加される第8の部分データの桁数のほうが多い場合であっても、第7の処理部は、所望のデータ値の第8の部分データを用いて、第6のデータを生成することが可能となる。
【0031】
本発明の第11の態様に係る画像処理装置は、第9の態様に係る画像処理装置において特に、前記逆予測部は、第9の処理部を有し、前記逆量子化部は、第10の処理部をさらに有し、前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第9の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記予測値データの下位に、ビット値が「0」である桁を追加し、前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多く、かつ、前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記10の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数と、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数との合計の桁数だけ、前記第7のデータをその最下位桁から順に削除することを特徴とするものである。
【0032】
本発明の第11の態様に係る画像処理装置によれば、削除された第3の部分データの桁数よりも、付加される第5の部分データの桁数のほうが多い場合であっても、第5の処理部は、所望のデータ値の第5の部分データを用いて、第6の部分データを生成することが可能となる。また、削除された第7の部分データの桁数よりも、付加される第8の部分データの桁数のほうが多い場合であっても、第7の処理部は、所望のデータ値の第8の部分データを用いて、第6のデータを生成することが可能となる。
【0033】
本発明の第12の態様に係る画像処理装置は、第9〜第11のいずれか一つの態様に係る画像処理装置において特に、前記第8の部分データの値は、前記第7の部分データが削除されることに起因する誤差に対する所望の補正量に基づいて定められることを特徴とするものである。
【0034】
本発明の第12の態様に係る画像処理装置によれば、第3の部分データが削除されることに起因する誤差に対する補正量と、第7の部分データが削除されることに起因する誤差に対する補正量とを、別個独立に規定することが可能となる。
【0035】
本発明の第13の態様に係る画像処理装置は、第1〜第12のいずれか一つの態様に係る画像処理装置において特に、前記第1のデータは、HD Photoにおけるハイパス成分の周波数データであることを特徴とするものである。
【0036】
本発明の第13の態様に係る画像処理装置によれば、HD Photoにおけるハイパス成分の周波数データに関して、Trim Bits(第3の部分データ)が削除されることに起因する誤差を補正することが可能となる。
【0037】
本発明の第14の態様に係る画像処理装置は、量子化部と逆量子化部とを備え、前記量子化部は、入力された第1のデータから、量子化係数で規定される桁数に相当する第1の部分データを削除することにより、第2のデータを生成して出力し、前記逆量子化部は、前記第2のデータの下位に、データ値が「0」ではない第2の部分データを付加することにより、第3のデータを生成する、第1の処理部と、前記第3のデータを、前記量子化係数で規定される桁数だけ、その上位側に向けてビットシフトすることにより、第4のデータを生成して出力する、第2の処理部とを有することを特徴とするものである。
【0038】
本発明の第14の態様に係る画像処理装置によれば、第1の処理部は、第2のデータの下位に、データ値が「0」ではない第2の部分データを付加することにより、第3のデータを生成する。従って、第2のデータの下位にデータ値が「0」の部分データを付加することにより第3のデータを生成する場合と比較すると、統計的に、第4のデータのデータ値を第1のデータのデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0039】
本発明の第15の態様に係る画像処理装置は、第14の態様に係る画像処理装置において特に、前記逆量子化部は、第3の処理部をさらに有し、前記第1の部分データの桁数よりも前記第2の部分データの桁数のほうが多い場合、前記第3の処理部は、前記第1の部分データの桁数と前記第2の部分データの桁数との差に相当する桁数だけ、前記第4のデータをその最下位桁から順に削除することを特徴とするものである。
【0040】
本発明の第15の態様に係る画像処理装置によれば、削除された第1の部分データの桁数よりも、付加される第2の部分データの桁数のほうが多い場合であっても、第1の処理部は、所望のデータ値の第2の部分データを用いて、第3のデータを生成することが可能となる。
【0041】
本発明の第16の態様に係る画像処理装置は、第14又は第15の態様に係る画像処理装置において特に、前記第1のデータは、HD Photoにおける、ハイパス成分、ローパス成分、又は直流成分の周波数データであることを特徴とするものである。
【0042】
本発明の第16の態様に係る画像処理装置によれば、HD Photoにおけるハイパス成分、ローパス成分、又は直流成分の周波数データに関して、量子化によって下位データ(第1の部分データ)が削除されることに起因する誤差(量子化誤差)を補正することが可能となる。
【発明の効果】
【0043】
本発明によれば、画質の向上を図ることが可能となる。
【発明を実施するための最良の形態】
【0044】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0045】
<全体構成>
図1は、本発明の実施の形態に係る画像処理装置1の全体構成を示すブロック図である。画像処理装置1は、エンコーダ2とデコーダ3とを備えて構成されている。エンコーダ2は、色変換部21、プレフィルタ22、周波数変換部23、量子化部24、予測部25、及び符号化部26を有して構成されている。デコーダ3は、色逆変換部31、ポストフィルタ32、周波数逆変換部33、逆量子化部34、逆予測部35、及び復号化部36を有して構成されている。
【0046】
<色変換部21>
色変換部21には、例えば、Bayer配列の3色のカラーフィルタが配置された、CCD又はCMOSイメージセンサ等の撮像素子から、RGB色空間の画素信号S1が入力される。色変換部21は、RGB色空間の画素信号S1を、例えばYUV色空間の画素信号S2に変換して出力する。
【0047】
<プレフィルタ22及び周波数変換部23>
プレフィルタ22には、色変換部21から画素信号S2が入力される。プレフィルタ22は、画素信号S2に対して所定のプレフィルタ処理を選択的に実行することにより、画素信号S3を生成して出力する。HD Photoでは、プレフィルタ22にプレフィルタ処理を実行させるか否かを、Overlap係数の設定によって任意に選択することができる。
【0048】
周波数変換部23には、プレフィルタ22から画素信号S3が入力される。周波数変換部23は、画素信号S3に対して所定の周波数変換処理(HD Photo Core Transform:PCT)を実行することにより、周波数データS4を生成して出力する。
【0049】
図2は、図1に示したプレフィルタ22及び周波数変換部23の具体的な構成を示すブロック図である。図2に示すように、HD Photoにおけるエンコーダ2は、第1階層のプレフィルタ221及び周波数変換部231と、第2階層のプレフィルタ222及び周波数変換部232とを備えている。
【0050】
プレフィルタ221には、画素信号S21が入力される。プレフィルタ221は、画素信号S21に対してプレフィルタ処理を実行することにより、画素信号S31を生成して出力する。画素信号S31は、周波数変換部231に入力される。周波数変換部231は、画素信号S31に対して周波数変換処理(PCT)を実行することにより、ハイパス成分の周波数データS4HPと、第1階層における直流成分のデータS22とを生成して出力する。データS22は、プレフィルタ222に入力される。プレフィルタ222は、データS22に対してプレフィルタ処理を実行することにより、データS32を生成して出力する。データS32は、周波数変換部232に入力される。周波数変換部232は、データS32に対して周波数変換処理(PCT)を実行することにより、ローパス成分の周波数データS4LPと、直流成分の周波数データS4DCとを生成して出力する。
【0051】
このようにHD Photoにおいては、第1階層の周波数変換部231からハイパス成分の周波数データS4HPが出力され、第2階層の周波数変換部232からローパス成分の周波数データS4LPと直流成分の周波数データS4DCとが出力される。図1に示した周波数データS4には、周波数データS4HP,S4LP,S4DCが含まれる。
【0052】
図3は、画素平面内の一つのマクロブロックMBを示す図である。マクロブロックMBは、縦16画素×横16画素の、合計256個の画素で構成されている。マクロブロックMB内には、縦4個×横4個の、合計16個の画素ブロックRAが規定されている。各画素ブロックRAは、縦4画素×横4画素の、合計16個の画素で構成されている。周波数変換部23は、各画素ブロックRAを処理単位領域として、周波数変換処理を実行する。
【0053】
また、マクロブロックMBよりも上下左右の各方向に2画素ずつ広い、縦20画素×横20画素の画素ブロックOBが規定されている。画素ブロックOB内には、縦5個×横5個の、合計25個の画素ブロックRBが規定されている。各画素ブロックRBは、縦4画素×横4画素の、合計16個の画素で構成されている。プレフィルタ22は、各画素ブロックRBを処理単位領域として、プレフィルタ処理を実行する。但し、画素平面の周縁においては、縦4画素×横4画素の処理単位領域が確保されず、縦4画素×横2画素、縦2画素×横4画素、又は縦2画素×横2画素の画素ブロックが、プレフィルタ22の処理単位領域となる。
【0054】
図3に示すように、プレフィルタ22の処理単位領域である画素ブロックRB1(斜線ハッチングを付している)は、周波数変換部23の処理単位領域である4個の画素ブロックRA1〜RA4(砂地ハッチングを付している)にオーバーラップしている。このように、プレフィルタ22は、周波数変換部23の複数の処理単位領域にオーバーラップする領域を処理単位領域として、プレフィルタ処理を実行する。その結果、ブロック歪みが低減される。
【0055】
<量子化部24>
図4は、図1に示した量子化部24の具体的な構成を示すブロック図である。量子化部24は、ハイパス成分に関する処理部24HPと、ローパス成分に関する処理部24LPと、直流成分に関する処理部24DCとを有して構成されている。
【0056】
処理部24HPには、図2に示した周波数変換部231から、ハイパス成分の周波数データS4HPが入力される。処理部24HPは、周波数データS4HPを量子化係数で除算することにより、周波数データS5HPを生成して出力する。具体的に、処理部24HPは、周波数データS4HPのうち、量子化係数で規定される桁数に相当する下位データを削除することにより、周波数データS5HPを生成する。
【0057】
同様に、処理部24LPには、図2に示した周波数変換部232から、ローパス成分の周波数データS4LPが入力される。処理部24LPは、周波数データS4LPを量子化係数で除算することにより、周波数データS5LPを生成して出力する。具体的に、処理部24LPは、周波数データS4LPのうち、量子化係数で規定される桁数に相当する下位データを削除することにより、周波数データS5LPを生成する。
【0058】
同様に、処理部24DCには、図2に示した周波数変換部232から、直流成分の周波数データS4DCが入力される。処理部24DCは、周波数データS4DCを量子化係数で除算することにより、周波数データS5DCを生成して出力する。具体的に、処理部24DCは、周波数データS4DCのうち、量子化係数で規定される桁数に相当する下位データを削除することにより、周波数データS5DCを生成する。
【0059】
図1に示した周波数データS5には、周波数データS5HP,S5LP,S5DCが含まれる。
【0060】
<予測部25>
図5は、図1に示した予測部25の具体的な構成を示すブロック図である。予測部25は、ハイパス成分に関する処理部25HPと、ローパス成分に関する処理部25LPと、直流成分に関する処理部25DCとを有して構成されている。処理部25HPには、図4に示した処理部24HPから、ハイパス成分の周波数データS5HPが入力される。処理部25LPには、図4に示した処理部24LPから、ローパス成分の周波数データS5LPが入力される。処理部25DCには、図4に示した処理部24DCから、直流成分の周波数データS5DCが入力される。
【0061】
図6は、処理部25DCにおける予測処理を説明するための図である。図6には、4つのマクロブロックMB1〜MB4に対応する4つの直流成分の周波数データ101〜104を示している。現在の処理対象の周波数データは、右下のマクロブロックMB4の周波数データ104であるとする。
【0062】
周波数データ104と周波数データ102との間にエッジがなく、かつ、周波数データ104と周波数データ103との間にもエッジがない場合は、周波数データ102と周波数データ103との平均値が、周波数データ104に関する予測値データとして採用される。つまり、予測方向は上方向及び左方向となる。なお、エッジの存在の有無は、輝度情報及び色差情報を用いて判定することができる。
【0063】
周波数データ104と周波数データ102との間にエッジがなく、かつ、周波数データ104と周波数データ103との間にエッジがある場合は、周波数データ102が、周波数データ104に関する予測値データとして採用される。つまり、予測方向は上方向となる。
【0064】
周波数データ104と周波数データ102との間にエッジがあり、かつ、周波数データ104と周波数データ103との間にエッジがない場合は、周波数データ103が、周波数データ104に関する予測値データとして採用される。つまり、予測方向は左方向となる。
【0065】
周波数データ101〜103が存在しない場合は、周波数データ104に関する予測処理は実行されない。換言すれば、データ値が「0」であるデータが、予測値データとして採用される。
【0066】
なお、画素平面の左上角に位置するマクロブロックに関しては、上方向に隣接するマクロブロック及び左方向に隣接するマクロブロックが存在しないため、予測処理は実行されない。また、画素平面の左端に位置するマクロブロックに関しては、左方向に隣接するマクロブロックが存在しないため、予測方向が上方向となるか、あるいは予測処理は実行されない。また、画素平面の上端に位置するマクロブロックに関しては、上方向に隣接するマクロブロックが存在しないため、予測方向が左方向となるか、あるいは予測処理は実行されない。
【0067】
図5を参照して、予測処理を実行する場合、処理部25DCは、処理部24DCから入力された周波数データS5DCの値と、予測値データの値との差分値を求め、周波数データS6DCとして出力する。一方、予測処理を実行しない場合、処理部25DCは、処理部24DCから入力された周波数データS5DCを、周波数データS6DCとして出力する。
【0068】
図7は、処理部25LPにおける予測処理を説明するための図である。図7には、図6に対応させて、4つのマクロブロックMB1〜MB4に対応する、合計60個のローパス成分の周波数データを示している。現在の処理対象の周波数データは、右下のマクロブロックMB4の周波数データであるとする。
【0069】
マクロブロックMB4の直流成分の周波数データ104(図6参照)に関する予測方向が上方向であり、かつ、ローパス成分に関する量子化係数がマクロブロックMB4とマクロブロックMB2とで等しい場合は、予測方向は上方向となる。この場合、周波数データ201,202,203が、周波数データ207,208,209に関する予測値データとしてそれぞれ採用される。また、この場合、マクロブロックMB4内のその他の周波数データに関しては、予測処理は実行されない。
【0070】
マクロブロックMB4の直流成分の周波数データ104に関する予測方向が左方向であり、かつ、ローパス成分に関する量子化係数がマクロブロックMB4とマクロブロックMB3とで等しい場合は、予測方向は左方向となる。この場合、周波数データ204,205,206が、周波数データ210,211,212に関する予測値データとしてそれぞれ採用される。また、この場合、マクロブロックMB4内のその他の周波数データに関しては、予測処理は実行されない。
【0071】
上記の条件をいずれも満たさない場合は、マクロブロックMB4内のいずれの周波数データに関しても、予測処理は実行されない。
【0072】
図5を参照して、予測処理を実行する場合、処理部25LPは、処理部24LPから入力された周波数データS5LPの値と、予測値データの値との差分値を求め、周波数データS6LPとして出力する。一方、予測処理を実行しない場合、処理部25LPは、処理部24LPから入力された周波数データS5LPを、周波数データS6LPとして出力する。
【0073】
図8は、処理部25HPにおける予測処理を説明するための図である。図8には、1つのマクロブロックMB4に対応する、合計240個のハイパス成分の周波数データを示している。現在の処理対象の周波数データは、左から2列目かつ上から2行目の処理単位領域に含まれる周波数データであるとする。
【0074】
周波数データ301,302,303と周波数データ307,308,309との間にエッジがなく、かつ、周波数データ304,305,306と周波数データ310,311,312との間にエッジがある場合は、周波数データ301,302,303が、周波数データ307,308,309に関する予測値データとしてそれぞれ採用される。つまり、予測方向は上方向となる。また、この場合、周波数データ307,308,309以外の周波数データに関しては、予測処理は実行されない。
【0075】
周波数データ301,302,303と周波数データ307,308,309との間にエッジがあり、かつ、周波数データ304,305,306と周波数データ310,311,312との間にエッジがない場合は、周波数データ304,305,306が、周波数データ310,311,312に関する予測値データとしてそれぞれ採用される。つまり、予測方向は左方向となる。また、この場合、周波数データ310,311,312以外の周波数データに関しては、予測処理は実行されない。
【0076】
上記の条件をいずれも満たさない場合は、現在の処理対象である処理単位領域内のいずれの周波数データに関しても、予測処理は実行されない。
【0077】
図5を参照して、予測処理を実行する場合、処理部25HPは、処理部24HPから入力された周波数データS5HPの値と、予測値データの値との差分値を求め、周波数データS6HPとして出力する。一方、予測処理を実行しない場合、処理部25HPは、処理部24HPから入力された周波数データS5HPを、周波数データS6HPとして出力する。
【0078】
図1に示した周波数データS6には、周波数データS6HP,S6LP,S6DCが含まれる。
【0079】
<符号化部26>
図9は、図1に示した符号化部26の具体的な構成を示すブロック図である。符号化部26は、ハイパス成分に関する処理部26HP1〜26HP4と、ローパス成分に関する処理部26LP1〜26LP4と、直流成分に関する処理部26DC1〜26DC4とを有して構成されている。
【0080】
図10は、図9から処理部26HP1〜26HP4を抜き出して示すブロック図である。処理部26HP1には、図5に示した処理部25HPから、ハイパス成分の周波数データS6HPが入力される。
【0081】
図11は、周波数データS6HPを示す図である。処理部26HP1は、周波数データS6HPの絶対値部を、上位側の桁範囲R1内の部分データS6HPU(上位データ)と、下位側の桁範囲R2内の部分データS6HPL(下位データ)とに分割する。桁範囲R1は、HD PhotoにおけるNormal Bitに相当し、桁範囲R2は、HD PhotoにおけるFlex Bitに相当する。桁範囲R1のビット幅をNとし、桁範囲R2のビット幅(Model Bits)をMとし、桁範囲R2の最下位桁を第0桁とすると、桁範囲R2の最上位桁は第(M−1)桁となり、桁範囲R1の最下位桁は第M桁となり、桁範囲R1の最上位桁は第(N+M−1)桁となる。HD Photoにおいては、ビット幅Mは適応的に可変である。
【0082】
図10を参照して、処理部26HP2には、処理部26HP1から、部分データS6HPUが入力される。処理部26HP2は、部分データS6HPUをエントロピー符号化することにより、部分データS7HP1を生成して出力する。
【0083】
また、図10を参照して、処理部26HP3には、処理部26HP1から、部分データS6HPLが入力される。
【0084】
図12は、部分データS6HPLを示す図である。処理部26HP3は、部分データS6HPLのうち、Trim Bitsで示される下位ビットを切り捨て、残余の上位ビットをFLEX_REFとして出力する。具体的に、処理部26HP3は、部分データS6HPL(桁範囲R2)のうち、下位側の桁範囲R2L内の部分データS6HPLLを削除するとともに、上位側の桁範囲R2U内の部分データS6HPLUを、エントロピー符号化することなく部分データS7HP2(図10参照)として出力する。桁範囲R2Lのビット幅をTとし、桁範囲R2Uの最下位桁を第0桁とすると、桁範囲R2Uの最上位桁は第(M−T−1)桁となる。HD Photoにおいては、ビット幅Tは適応的に可変である。なお、桁範囲R2のビット幅Mが桁範囲R2Lのビット幅T以下である場合は、処理部26HP3は部分データS7HP2を出力しない。
【0085】
図10を参照して、処理部26HP4には、図5に示した処理部25HPから、周波数データS6HPが入力される。処理部26HP4は、周波数データS6HPの符号部(正又は負)を抽出し、符号データS7HP3として出力する。図11に示した部分データS6HPUのデータ値が「0」でない場合は、符号データS7HP3は、処理部26HP2によって部分データS6HPUがエントロピー符号化される際に、併せて符号化される。一方、図11に示した部分データS6HPUのデータ値が「0」であり、かつ、図12に示した部分データS6HPLUのデータ値が「0」でない場合は、符号データS7HP3は、対応する部分データS7HP2に付属して符号化部26から出力される。
【0086】
ハイパス成分に関して、図1に示したデータS7には、部分データS7HP1,S7HP2及び符号データS7HP3が含まれる。
【0087】
なお、以上ではハイパス成分に関する符号化部26の処理内容について説明したが、ローパス成分及び直流成分に関しても、基本的にはハイパス成分に関する処理と同様の処理がそれぞれ実行される。但し、ハイパス成分に関する処理とは異なり、ローパス成分及び直流成分に関しては、Flex BitにおけるTrim Bitsの切り捨て処理は実行されない。
【0088】
<量子化部24、予測部25、及び符号化部26における処理の例>
図13は、ハイパス成分に関して、量子化部24、予測部25、及び符号化部26における処理の例を示す図である。図13の(A)を参照して、量子化部24の処理部24HP(図4参照)には、「100110111101」なる周波数データS4HPが入力される。ここで、量子化係数Qは「8」に設定されているものとする。この場合、処理部24HPは、周波数データS4HPを3ビットだけ右方向にビットシフトするとともに、下位3ビットを削除する。その結果、図13の(B)に示すように、処理部24HPからは、「100110111」なる周波数データS5HPが出力される。
【0089】
周波数データS5HPは、予測部25の処理部25HP(図5参照)に入力される。ここで、処理部25HPは、予測処理を実行しないものとする。この場合、図13の(C)に示すように、処理部25HPからは、周波数データS5HPに等しい「100110111」なる周波数データS6HPが出力される。
【0090】
周波数データS6HPは、符号化部26の処理部26HP1(図10参照)に入力される。ここで、Model Bitsのビット幅Mが「6」に設定されているものとする。この場合、図13の(D)及び(E)に示すように、処理部26HP1は、周波数データS6HPを、周波数データS6HPの第6桁以上の桁範囲に属する「100」なる部分データS6HPUと、周波数データS6HPの下位6ビットに相当する「110111」なる部分データS6HPLとに分割して出力する。
【0091】
図10を参照して、部分データS6HPUは、処理部26HP2によってエントロピー符号化されることにより、部分データS7HP1として処理部26HP2から出力される。
【0092】
部分データS6HPLは、処理部26HP3に入力される。ここで、Trim Bitsのビット幅Tが「2」に設定されているものとする。この場合、図13の(F)及び(G)に示すように、処理部26HP3は、部分データS6HPLを、部分データS6HPLの第2桁以上の桁範囲に属する「1101」なる部分データS6HPLUと、部分データS6HPLの下位2ビットに相当する「11」なる部分データS6HPLLとに分割する。そして、処理部26HP3は、部分データS6HPLUを部分データS7HP2(図10参照)として出力するとともに、部分データS6HPLLを削除する。
【0093】
図14は、図1に示したメモリ4の記憶内容を示す図である。メモリ4には、図10に示した処理部26HP2から入力されたエントロピー符号(部分データS7HP1)と、処理部26HP3から入力されたFLEX_REF(部分データS7HP2)と、処理部26HP4から入力された符号(符号データS7HP3)とが記憶されている。なお、図14では、全てのFLEX_REFが符号とそれぞれ対を成しているが、符号データS7HP3が部分データS7HP1とともにエントロピー符号化される場合には、FLEX_REFと対を成す符号は存在しないこととなる。
【0094】
<復号化部36>
図15は、図1に示した復号化部36の具体的な構成を示すブロック図である。復号化部36は、ハイパス成分に関する処理部36HP1〜36HP4と、ローパス成分に関する処理部36LP1〜36LP4と、直流成分に関する処理部36DC1〜36DC4とを有して構成されている。
【0095】
図16は、図15から処理部36HP1〜36HP4を抜き出して示すブロック図である。処理部36HP2には、図1,14に示したメモリ4から、部分データS7HP1(エントロピー符号)が入力される。処理部36HP2は、部分データS7HP1をエントロピー復号化することにより、図10,11に示した部分データS6HPUに相当する部分データS8HPU(Normal Bit)を生成して出力する。
【0096】
処理部36HP3には、メモリ4から、部分データS7HP2(FLEX_REF。後述する部分データS8HPLUに等しい。)が入力される。処理部36HP3は、部分データS7HP2の下位に、データ値が「0」ではない部分データ(後述する部分データS8HPLLに等しい。以下「補正データ」と称す。)を付加することにより、部分データS8HPLを生成して出力する。
【0097】
処理部36HP1には、処理部36HP2から部分データS8HPUが入力されるとともに、処理部36HP3から部分データS8HPLが入力される。処理部36HP1は、部分データS8HPUの下位に部分データS8HPLを付加することにより、周波数データS8HPの絶対値部を生成して出力する。
【0098】
処理部36HP4には、メモリ4から、符号データS7HP3が入力される。部分データS8HPUのデータ値が「0」でない場合は、符号データS7HP3は、対応する部分データS7HP1に付属している。一方、部分データS8HPUのデータ値が「0」であり、かつ、部分データS8HPLUのデータ値が「0」でない場合は、符号データS7HP3は、対応する部分データS7HP2に付属している。処理部36HP4は、処理部36HP1から出力された周波数データS8HPの絶対値部に、符号データS7HP3に基づいて符号部(符号ビット)を付加する。これにより、絶対値部と符号部とを有する周波数データS8HPが、復号化部36から出力される。
【0099】
なお、以上ではハイパス成分に関する復号化部36の処理内容について説明したが、ローパス成分及び直流成分に関しても、基本的にはハイパス成分に関する処理と同様の処理がそれぞれ実行される。但し、ハイパス成分に関する処理とは異なり、ローパス成分及び直流成分に関しては、符号化部26によってFlex BitにおけるTrim Bitsの切り捨て処理は実行されないため、復号化部36によってFlex Bitにおける補正データS8HPLLの付加処理は実行されない。
【0100】
図1に示した周波数データS8には、周波数データS8HP,S8LP,S8DCが含まれる。
【0101】
<逆予測部35>
図17は、図1に示した逆予測部35の具体的な構成を示すブロック図である。逆予測部35は、ハイパス成分に関する処理部35HPと、ローパス成分に関する処理部35LPと、直流成分に関する処理部35DCとを有して構成されている。処理部35HPには、図15に示した処理部36HP1から、ハイパス成分の周波数データS8HPが入力される。処理部35LPには、図15に示した処理部36LP1から、ローパス成分の周波数データS8LPが入力される。処理部35DCには、図15に示した処理部36DC1から、直流成分の周波数データS8DCが入力される。
【0102】
直流成分に関し、処理部35DCは、図5に示した処理部25DCと同様の手法により、逆予測処理の実行の要否を決定する。また、逆予測処理を実行する場合には、処理部35DCは、処理部25DCと同様の手法により、予測値データを決定する。逆予測処理を実行する場合、処理部35DCは、処理部36DC1から入力された周波数データS8DCの値に、予測値データの値を加算することにより、周波数データS9DCを生成して出力する。一方、逆予測処理を実行しない場合、処理部35DCは、処理部36DC1から入力された周波数データS8DCを、周波数データS9DCとして出力する。
【0103】
ローパス成分に関し、処理部35LPは、図5に示した処理部25LPと同様の手法により、逆予測処理の実行の要否を決定する。また、逆予測処理を実行する場合には、処理部35LPは、処理部25LPと同様の手法により、予測値データを決定する。逆予測処理を実行する場合、処理部35LPは、処理部36LP1から入力された周波数データS8LPの値に、予測値データの値を加算することにより、周波数データS9LPを生成して出力する。一方、逆予測処理を実行しない場合、処理部35LPは、処理部36LP1から入力された周波数データS8LPを、周波数データS9LPとして出力する。
【0104】
ハイパス成分に関し、処理部35HPは、図5に示した処理部25HPと同様の手法により、逆予測処理の実行の要否を決定する。また、逆予測処理を実行する場合には、処理部35HPは、処理部25HPと同様の手法により、予測値データを決定する。逆予測処理を実行する場合、処理部35HPは、処理部36HP1から入力された周波数データS8HPの値に、予測値データの値を加算することにより、周波数データS9HPを生成して出力する。一方、逆予測処理を実行しない場合、処理部35HPは、処理部36HP1から入力された周波数データS8HPを、周波数データS9HPとして出力する。
【0105】
図1に示した周波数データS9には、周波数データS9HP,S9LP,S9DCが含まれる。
【0106】
<逆量子化部34>
図18は、図1に示した逆量子化部34の具体的な構成を示すブロック図である。逆量子化部34は、ハイパス成分に関する処理部341HP,342HPと、ローパス成分に関する処理部341LP,342LPと、直流成分に関する処理部341DC,342DCとを有して構成されている。
【0107】
処理部341HPには、図17に示した処理部35HPから、ハイパス成分の周波数データS9HPが入力される。処理部341HP,342HPは、周波数データS9HPに量子化係数を乗算することにより、周波数データS10HPを生成して出力する。具体的に、処理部341HPは、周波数データS9HPの下位に、量子化係数で規定される桁数に相当する部分データ(データ値は「0」)を付加して出力する。処理部342HPは、処理部341HPから入力された周波数データを、量子化係数で規定される桁数だけ、その上位側(左方向)に向けてビットシフトすることにより、周波数データS10HPを生成して出力する。
【0108】
同様に、処理部341LPには、図17に示した処理部35LPから、ローパス成分の周波数データS9LPが入力される。処理部341LP,342LPは、周波数データS9LPに量子化係数を乗算することにより、周波数データS10LPを生成して出力する。具体的に、処理部341LPは、周波数データS9LPの下位に、量子化係数で規定される桁数に相当する部分データ(データ値は「0」)を付加して出力する。処理部342LPは、処理部341LPから入力された周波数データを、量子化係数で規定される桁数だけ、その上位側(左方向)に向けてビットシフトすることにより、周波数データS10LPを生成して出力する。
【0109】
同様に、処理部341DCには、図17に示した処理部35DCから、直流成分の周波数データS9DCが入力される。処理部341DC,342DCは、周波数データS9DCに量子化係数を乗算することにより、周波数データS10DCを生成して出力する。具体的に、処理部341DCは、周波数データS9DCの下位に、量子化係数で規定される桁数に相当する部分データ(データ値は「0」)を付加して出力する。処理部342DCは、処理部341DCから入力された周波数データを、量子化係数で規定される桁数だけ、その上位側(左方向)に向けてビットシフトすることにより、周波数データS10DCを生成して出力する。
【0110】
図1に示した周波数データS10には、周波数データS10HP,S10LP,S10DCが含まれる。
【0111】
<ポストフィルタ32及び周波数逆変換部33>
図1を参照して、周波数逆変換部33には、逆量子化部34から周波数データS10が入力される。周波数逆変換部33は、周波数データS10に対して、上記の周波数変換処理(PCT)に対応する周波数逆変換処理を実行することにより、画素信号S11を生成して出力する。
【0112】
ポストフィルタ32には、周波数逆変換部33から画素信号S11が入力される。ポストフィルタ32は、画素信号S11に対して、上記のプレフィルタ処理に対応するポストフィルタ処理を実行することにより、画素信号S12を生成して出力する。HD Photoでは、ポストフィルタ32にポストフィルタ処理を実行させるか否かを、Overlap係数の設定によって任意に選択することができる。
【0113】
図19は、図1に示したポストフィルタ32及び周波数逆変換部33の具体的な構成を示すブロック図である。図19に示すように、HD Photoにおけるデコーダ3は、第1階層のポストフィルタ321及び周波数逆変換部331と、第2階層のポストフィルタ322及び周波数逆変換部332とを備えている。
【0114】
周波数逆変換部331には、図18に示した処理部342HPから、ハイパス成分の周波数データS10HPが入力される。周波数逆変換部332には、図18に示した処理部342LP,342DCから、ローパス成分及び直流成分の周波数データS10LP,S10DCがそれぞれ入力される。周波数逆変換部332は、周波数データS10LP,S10DCに対して周波数逆変換処理を実行することにより、第1階層の直流成分に相当する周波数データS112を生成して出力する。ポストフィルタ322は、周波数データS112に対してポストフィルタ処理を実行することにより、周波数データS122を生成して出力する。周波数データS122は、周波数逆変換部331に入力される。
【0115】
周波数逆変換部331は、周波数データS10HP,S122に対して周波数逆変換処理を実行することにより、画素信号S111を生成して出力する。ポストフィルタ321は、画素信号S111に対してポストフィルタ処理を実行することにより、画素信号S121を生成して出力する。
【0116】
図3を参照して、周波数逆変換部33は、各画素ブロックRAを処理単位領域として、周波数逆変換処理を実行する。また、ポストフィルタ32は、各画素ブロックRBを処理単位領域として、ポストフィルタ処理を実行する。図3に示すように、ポストフィルタ32の処理単位領域である画素ブロックRB1(斜線ハッチングを付している)は、周波数逆変換部33の処理単位領域である4個の画素ブロックRA1〜RA4(砂地ハッチングを付している)にオーバーラップしている。このように、ポストフィルタ32は、周波数逆変換部33の複数の処理単位領域にオーバーラップする領域を処理単位領域として、ポストフィルタ処理を実行する。
【0117】
<色逆変換部31>
図1を参照して、色逆変換部31には、ポストフィルタ32から、例えばYUV色空間の画素信号S12が入力される。色逆変換部31は、YUV色空間の画素信号S12を、例えばRGB色空間の画素信号S13に変換して出力する。
【0118】
<復号化部36、逆予測部35、及び逆量子化部34における処理の例>
図20は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図20の(A)を参照して、復号化部36の処理部36HP1(図16参照)には、「100」なる部分データS8HPUが入力される。
【0119】
図20の(B)を参照して、復号化部36の処理部36HP3には、「1101」なる部分データS8HPLU(部分データS7HP2に等しい)が入力される。ここで、図16に示したように、処理部36HP3はレジスタ41を有している。レジスタ41には、図20の(C)に示すように、「10」なる補正データS8HPLLが格納されている。但し、補正データS8HPLLの値は、「10」(10進数で0.5)に限らず、「01」(10進数で0.25)、「011」(10進数で0.375)、「101」(10進数で0.625)、又はランダム値であっても良い。
【0120】
図20の(D)に示すように、処理部36HP3は、部分データS8HPLUの下位に補正データS8HPLLを付加することにより、「110110」なる部分データS8HPLを生成して出力する。具体的に、処理部36HP3は、部分データS8HPLUの小数部に補正データS8HPLLを付加した後、Trim Bitsのビット幅Tに相当するビット数(この例の場合は2ビット)だけ、左方向にビットシフトすることにより、部分データS8HPLを生成する。
【0121】
部分データS8HPLは、処理部36HP1に入力される。図20の(E)に示すように、処理部36HP1は、部分データS8HPUの下位に部分データS8HPLを付加することにより、「100110110」なる周波数データS8HPを生成して出力する。具体的に、処理部36HP1は、部分データS8HPUの小数部に部分データS8HPLを付加した後、Model Bitsのビット幅Mに相当するビット数(この例の場合は6ビット)だけ、左方向にビットシフトすることにより、周波数データS8HPを生成する。
【0122】
周波数データS8HPは、逆予測部35の処理部35HP(図17参照)に入力される。ここで、処理部35HPは、逆予測処理を実行しないものとする。この場合、図20の(F)に示すように、処理部35HPからは、周波数データS8HPに等しい「100110110」なる周波数データS9HPが出力される。
【0123】
周波数データS9HPは、逆量子化部34の処理部341HP(図18参照)に入力される。ここで、量子化係数Qは「8」に設定されている。従って、図20の(G)に示すように、処理部341HPは、周波数データS9HPの小数部に、「000」なる部分データを付加して出力する。その後、図20の(H)に示すように、処理部342HPは、処理部341HPから入力された周波数データを、量子化係数で規定される桁数(この例の場合は3ビット)だけ、左方向にビットシフトすることにより、周波数データS10HPを生成して出力する。
【0124】
<画像処理装置1による効果>
本実施の形態に係る画像処理装置1によれば、復号化部36の処理部36HP3(図16参照)は、部分データS8HPLUの下位に、データ値が「0」ではない補正データS8HPLLを付加することにより、部分データS8HPLを生成する。つまり、本実施の形態に係る画像処理装置1は、エンコーダ2において削除されたTrim Bitsを、デコーダ3において、データ値が「0」の部分データによって補うのではなく、データ値が「0」ではない補正データS8HPLLによって補う。従って、部分データS8HPLUの下位にデータ値が「0」の部分データが付加される場合と比較すると、統計的に、復号化後の周波数データS8HPのデータ値を、符号化前の周波数データS6HP(図5参照)のデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0125】
<第1の変形例>
上記実施の形態では、符号化部26において削除されるTrim Bits(図13の(G)に示した部分データS6HPLL)のビット幅Tと、復号化部36において付加される補正データS8HPLL(図20の(C)参照)のビット幅とが、互いに等しい場合について説明した。第1の変形例では、Trim Bitsのビット幅Tよりも補正データS8HPLLのビット幅のほうが大きい場合の対応について説明する。
【0126】
図21は、第1の変形例に関して、図1に示した逆量子化部34の具体的な構成を示すブロック図である。処理部342HPの後段に、処理部42が追加されている。その他の構成は、図18に示した構成と同様である。
【0127】
図22は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図22の(A)を参照して、復号化部36の処理部36HP1(図16参照)には、「100」なる部分データS8HPUが入力される。
【0128】
図22の(B)を参照して、復号化部36の処理部36HP3には、「1101」なる部分データS8HPLU(部分データS7HP2に等しい)が入力される。ここで、図16に示したように、処理部36HP3はレジスタ41を有している。レジスタ41には、図22の(C)に示すように、「011」なる補正データS8HPLLが格納されている。この例ではTrim Bitsのビット幅Tは2ビットであるため、補正データS8HPLLのビット幅は、Trim Bitsのビット幅Tよりも1ビットだけ大きい。
【0129】
図22の(D)に示すように、処理部36HP3は、部分データS8HPLUの下位に補正データS8HPLLを付加することにより、「1101011」なる部分データS8HPLを生成して出力する。具体的に、処理部36HP3は、部分データS8HPLUの小数部に補正データS8HPLLを付加した後、Trim Bitsのビット幅Tに相当するビット数(この例の場合は2ビット)だけ、左方向にビットシフトすることにより、部分データS8HPLを生成する。
【0130】
部分データS8HPLは、処理部36HP1に入力される。図22の(E)に示すように、処理部36HP1は、部分データS8HPUの下位に部分データS8HPLを付加することにより、「1001101011」なる周波数データS8HPを生成して出力する。具体的に、処理部36HP1は、部分データS8HPUの小数部に部分データS8HPLを付加した後、Model Bitsのビット幅Mに相当するビット数(この例の場合は6ビット)だけ、左方向にビットシフトすることにより、周波数データS8HPを生成する。
【0131】
周波数データS8HPは、逆予測部35の処理部35HP(図17参照)に入力される。ここで、処理部35HPは、逆予測処理を実行しないものとする。この場合、図22の(F)に示すように、処理部35HPからは、周波数データS8HPに等しい「1001101011」なる周波数データS9HPが出力される。
【0132】
周波数データS9HPは、逆量子化部34の処理部341HP(図21参照)に入力される。ここで、量子化係数Qは「8」に設定されている。従って、図22の(G)に示すように、処理部341HPは、周波数データS9HPの下位に、「000」なる部分データを付加して出力する。その後、図22の(H)に示すように、処理部342HPは、処理部341HPから入力された周波数データを、量子化係数で規定される桁数(この例の場合は3ビット)だけ、左方向にビットシフトすることにより、「1001101011000」なる周波数データS10HP0を生成して出力する。
【0133】
周波数データS10HP0は、処理部42に入力される。処理部42は、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差に相当する桁数だけ、周波数データS10HP0をその最下位桁から順に削除する。この例の場合は、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差は1ビットであるため、処理部42は、図22の(I)に示すように、周波数データS10HP0の最下位桁を削除することにより、「100110101100」なる周波数データS10HPを生成して出力する。
【0134】
第1の変形例に係る画像処理装置1によれば、削除されたTrim Bitsの桁数よりも、付加される補正データS8HPLLの桁数のほうが多い場合であっても、復号化部36の処理部36HP3(図16参照)は、Trim Bitsの桁数に制約を受けることなく、所望のデータ値の補正データS8HPLLを用いて、部分データS8HPLを生成することが可能となる。
【0135】
<第2の変形例>
上記実施の形態では、図20の(G)に示したように、逆量子化部34の処理部341HP(図18参照)は、周波数データS9HPの下位に、データ値が「0」の部分データを付加して出力する例について説明した。ここで、図13の(A)及び(B)に示したように、上記の例では、量子化部24の処理部24HP(図4参照)は、周波数データS4HPの下位3ビットに相当する「101」なる部分データを削除する。従って、量子化処理において削除される部分データ「101」と、逆量子化処理において付加される部分データ「000」との差に起因して、量子化誤差が発生する。第2の変形例では、量子化誤差を抑制するための対策について説明する。
【0136】
図23は、第2の変形例に関して、図1に示した逆量子化部34の具体的な構成を示すブロック図である。処理部341HP,341LP,341DCは、レジスタ43HP,43LP,43DCをそれぞれ有している。その他の構成は、図18に示した構成と同様である。
【0137】
図24は、ハイパス成分に関して、逆量子化部34における処理の例を示す図である。図24の(A)に示すように、逆量子化部34の処理部341HPには、「100110110」なる周波数データS9HPが入力される。また、処理部341HPのレジスタ43HPには、図24の(B)に示すように、「011」なるデータ(以下「補正データ」と称す)S9HPLが格納されている。但し、補正データS9HPLの値は、「011」(10進数で0.375)に限らず、「01」(10進数で0.25)、「10」(10進数で0.5)、「101」(10進数で0.625)、又はランダム値であっても良い。
【0138】
図24の(C)に示すように、処理部341HPは、周波数データS9HPの小数部に補正データS9HPLを付加することにより、周波数データS9HP0を生成して出力する。その後、図24の(D)に示すように、処理部342HPは、処理部341HPから入力された周波数データS9HP0を、量子化係数で規定される桁数(この例の場合は3ビット)だけ、左方向にビットシフトすることにより、「100110110011」なる周波数データS10HPを生成して出力する。
【0139】
図25は、ハイパス成分に関して、逆量子化部34における逆量子化処理を一般化して表した数式を示す図である。この数式において、「W」は補正データS9HPLのビット幅を示しており、「M」は量子化係数Qの仮数部の値を示しており、「E」は量子化係数Qの指数部の値を示している。上記の例では、W=3、M=1、E=3となる。また、数式中の「<<」なる記号は、左方向へのビットシフトを意味している。この数式によると、周波数データS9HPを左方向にWビットだけビットシフトした後に、補正データS9HPLを加算しているが、図24に示したように、周波数データS9HPの下位に補正データS9HPLを加算した後に、周波数データS9HP0の全体を左方向にWビットだけビットシフトしてもよい。
【0140】
第2の変形例に係る画像処理装置1によれば、処理部341HPは、周波数データS9HPの下位に、データ値が「0」ではない補正データS9HPLを付加することにより、周波数データS9HP0を生成する。つまり、第2の変形例に係る画像処理装置1は、エンコーダ2の量子化処理において削除された部分データを、デコーダ3の逆量子化処理において、データ値が「0」の部分データによって補うのではなく、データ値が「0」ではない補正データS9HPLによって補う。従って、周波数データS9HPの下位にデータ値が「0」の部分データが付加される場合(図20)と比較すると、統計的に、逆量子化後の周波数データS10HPのデータ値を、量子化前の周波数データS4HP(図4参照)のデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0141】
なお、以上の説明ではハイパス成分に関する逆量子化部34の処理について説明したが、ローパス成分及び直流成分に関しては、処理部341LP,341DCが、処理部341HPと同様の処理をそれぞれ実行する。
【0142】
また、以上で説明した量子化誤差の補正処理は、Trim Bitsの削除に起因する誤差に対する補正処理が実行される画像処理装置1のみならず、Trim Bitsの削除に起因する誤差に対する補正処理が実行されない画像処理装置にも適用することが可能である。なお、HD Photoにおいては、ハイパス成分に関してのみTrim Bitsが存在し、ローパス成分及び直流成分に関してはTrim Bitsは存在しない。
【0143】
<第3の変形例>
上記第2の変形例では、量子化部24の量子化処理において削除される部分データのビット幅と、逆量子化部34の処理部341HPにおいて付加される補正データS9HPL(図24の(B)参照)のビット幅とが、互いに等しい場合について説明した。第3の変形例では、量子化処理において削除される部分データのビット幅よりも、補正データS9HPLのビット幅のほうが大きい場合の対応について説明する。
【0144】
図26は、第3の変形例に関して、図1に示した逆量子化部34の具体的な構成を示すブロック図である。処理部342HP,342LP,342DCの後段に、処理部44HP,44LP,44DCがそれぞれ追加されている。その他の構成は、図23に示した構成と同様である。
【0145】
図27は、ハイパス成分に関して、逆量子化部34における処理の例を示す図である。図27の(A)に示すように、逆量子化部34の処理部341HPには、「100110110」なる周波数データS9HPが入力される。また、処理部341HPのレジスタ43HPには、図27の(B)に示すように、「011」なる補正データS9HPLが格納されている。
【0146】
図27の(C)に示すように、処理部341HPは、周波数データS9HPの小数部に補正データS9HPLを付加することにより、周波数データS9HP0を生成して出力する。その後、図27の(D)に示すように、処理部342HPは、処理部341HPから入力された周波数データS9HP0を、量子化係数Qで規定される桁数だけ左方向にビットシフトすることにより、周波数データS10HP1を生成して出力する。ここで、図1に示した量子化部24において、量子化係数Qが「4」に設定されているものとする。この場合、図27の(C)及び(D)に示すように、周波数データS10HP1は、周波数データS9HP0を2ビットだけ左方向にビットシフトしたものとなる。なお、この例では、補正データS9HPLのビット幅は、量子化処理によって削除された部分データのビット幅よりも1ビットだけ大きい。
【0147】
周波数データS10HP1は、処理部44HPに入力される。処理部44HPは、量子化処理によって削除された部分データのビット幅(つまり、量子化係数Qの指数部の値に相当するビット幅)と、補正データS9HPLのビット幅との差に相当する桁数だけ、周波数データS10HP1をその最下位桁から順に削除する。この例の場合は、量子化処理によって削除された部分データのビット幅と補正データS9HPLのビット幅との差は1ビットであるため、処理部44HPは、図27の(E)に示すように、周波数データS10HP1の最下位桁を削除することにより、「10011011001」なる周波数データS10HPを生成して出力する。
【0148】
図28は、ハイパス成分に関して、逆量子化部34における処理の他の例を示す図である。図28では、量子化係数Qが2の累乗でない場合の例について説明する。ここでは、量子化係数Qが一例として「15」に設定されているものとする。この場合、量子化係数Qの仮数部の値Mは「15」(2進数で「1111」)となり、指数部の値Eは「0」となる。
【0149】
上記の通り、量子化部24の処理部24HP(図4参照)は、周波数データS4HPを量子化することにより、周波数データS5HPを生成する。量子化係数Qが2の累乗でない場合は、処理部24HPは、周波数データS4HPのうち量子化係数Qで規定される桁数に相当する下位データを削除するのではなく、周波数データS4HPを量子化係数Q(この例の場合は2進数で「1111」)で実際に除算することにより、周波数データS5HPを求める。
【0150】
図28を参照して、図28の(A)〜(C)の処理は、図27の(A)〜(C)の処理と同一である。
【0151】
図28の(C)に引き続き、処理部342HPは、処理部341HPから入力された周波数データS9HP0に対して量子化係数Qを乗算することにより、周波数データS10HP1を生成して出力する。この例の場合は、「100110110011」なる周波数データS9HP0に対して、「1111」なる量子化係数Qが乗算されるため、図28の(D)に示すように、「1001000101111101」なる周波数データS10HP1(但し下位3桁は小数)が得られる。
【0152】
周波数データS10HP1は、処理部44HPに入力される。処理部44HPは、量子化係数Qの指数部の値Eに相当するビット幅と、補正データS9HPLのビット幅Wとの差に相当する桁数だけ、周波数データS10HP1をその最下位桁から順に削除することにより、周波数データS10HP1を生成して出力する。この例の場合は、量子化係数Qの指数部の値Eは「0」であり、補正データS9HPLのビット幅Wは「3」である。従って、処理部44HPは、図28の(E)に示すように、周波数データS10HP1の下位3桁を削除することにより、「1001000101111」なる周波数データS10HPを生成して出力する。
【0153】
図28に示した例では、量子化係数Qの仮数部の値Mは「15」であり、指数部の値Eは「0」であり、補正データS9HPLのビット幅Wは「3」である。従って、図25に示した数式において、E−Wの値は「−3」となる。E−Wの値が負である場合は、数式中の「<<(E−W)」は、右方向へのビットシフトを意味する。E−Wの値が「−3」である場合は、右方向への3ビットのビットシフトを意味する。
【0154】
図28の例と同じ仮定の処理をこの数式を用いて説明する。まず、「100110110」なる周波数データS9HPを左方向に3ビットだけビットシフトすることにより、「100110110000」なる周波数データを得る。次に、この周波数データに「011」なる補正データS9HPLを加算することにより、「100110110011」なる周波数データS9HP0を得る。次に、この周波数データS9HP0に、量子化係数Qの仮数部の値Mである「1111」を乗算することにより、「1001000101111101」なる周波数データS10HP1を得る。次に、この周波数データS10HP1を、右方向へ3ビットだけビットシフトした後、小数部である下位3桁を削除することにより、「1001000101111」なる周波数データS10HPが得られる。
【0155】
なお、説明の簡単化のため記載は省略するが、実施の形態及び他の全ての変形例においても、上記と同様に、量子化係数Qが2の累乗でない場合の対応が可能である。
【0156】
第3の変形例に係る画像処理装置1によれば、量子化処理によって削除された部分データの桁数よりも、付加される補正データS9HPLの桁数のほうが多い場合であっても、逆量子化部34の処理部341HP(図26参照)は、量子化処理によって削除された部分データの桁数に制約を受けることなく、所望のデータ値の補正データS9HPLを用いて、周波数データS9HP0を生成することが可能となる。
【0157】
なお、以上の説明ではハイパス成分に関する逆量子化部34の処理について説明したが、ローパス成分及び直流成分に関しては、処理部341LP,341DCが、処理部341HPと同様の処理をそれぞれ実行する。また、処理部44LP,44DCが、処理部44HPと同様の処理をそれぞれ実行する。
【0158】
また、以上で説明した量子化誤差の補正処理は、Trim Bitsの削除に起因する誤差に対する補正処理が実行される画像処理装置1のみならず、Trim Bitsの削除に起因する誤差に対する補正処理が実行されない画像処理装置にも適用することが可能である。なお、HD Photoにおいては、ハイパス成分に関してのみTrim Bitsが存在し、ローパス成分及び直流成分に関してはTrim Bitsは存在しない。
【0159】
<第4の変形例>
第4の変形例では、上記第1の変形例と上記第3の変形例との組合せについて説明する。つまり、Trim Bitsのビット幅Tよりも補正データS8HPLLのビット幅のほうが大きく、かつ、量子化処理において削除される部分データのビット幅よりも、補正データS9HPLのビット幅のほうが大きい場合の対応について説明する。第4の変形例に係る逆量子化部34の構成は、図26に示した構成と同様である。
【0160】
図29は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図29の(A)を参照して、復号化部36の処理部36HP1(図16参照)には、「100」なる部分データS8HPUが入力される。
【0161】
図29の(B)を参照して、復号化部36の処理部36HP3には、「1101」なる部分データS8HPLU(部分データS7HP2に等しい)が入力される。ここで、図16に示したように、処理部36HP3はレジスタ41を有している。レジスタ41には、図29の(C)に示すように、「011」なる補正データS8HPLLが格納されている。この例ではTrim Bitsのビット幅Tは2ビットであるため、補正データS8HPLLのビット幅は、Trim Bitsのビット幅Tよりも1ビットだけ大きい。
【0162】
図29の(D)に示すように、処理部36HP3は、部分データS8HPLUの下位に補正データS8HPLLを付加することにより、「1101011」なる部分データS8HPLを生成して出力する。具体的に、処理部36HP3は、部分データS8HPLUの小数部に補正データS8HPLLを付加した後、Trim Bitsのビット幅Tに相当するビット数(この例の場合は2ビット)だけ、左方向にビットシフトすることにより、部分データS8HPLを生成する。
【0163】
部分データS8HPLは、処理部36HP1に入力される。図29の(E)に示すように、処理部36HP1は、部分データS8HPUの下位に部分データS8HPLを付加することにより、「1001101011」なる周波数データS8HPを生成して出力する。具体的に、処理部36HP1は、部分データS8HPUの小数部に部分データS8HPLを付加した後、Model Bitsのビット幅Mに相当するビット数(この例の場合は6ビット)だけ、左方向にビットシフトすることにより、周波数データS8HPを生成する。
【0164】
周波数データS8HPは、逆予測部35の処理部35HP(図17参照)に入力される。ここで、処理部35HPは、逆予測処理を実行しないものとする。この場合、図29の(F)に示すように、処理部35HPからは、周波数データS8HPに等しい「1001101011」なる周波数データS9HPが出力される。
【0165】
周波数データS9HPは、逆量子化部34の処理部341HP(図26参照)に入力される。また、処理部341HPのレジスタ43HPには、図29の(G)に示すように、「011」なる補正データS9HPLが格納されている。
【0166】
図29の(H)に示すように、処理部341HPは、周波数データS9HPの下位に補正データS9HPLを付加することにより、「1001101011011」なる周波数データS9HP0を生成して出力する。その後、図29の(I)に示すように、処理部342HPは、処理部341HPから入力された周波数データS9HP0を、量子化係数Qで規定される桁数だけ左方向にビットシフトすることにより、周波数データS10HP1を生成して出力する。ここで、図1に示した量子化部24において、量子化係数Qが「4」に設定されているものとする。この場合、図29の(H)及び(I)に示すように、周波数データS10HP1は、周波数データS9HP0を2ビットだけ左方向にビットシフトしたものとなる。なお、この例では、補正データS9HPLのビット幅は、量子化処理によって削除された部分データのビット幅よりも1ビットだけ大きい。
【0167】
周波数データS10HP1は、処理部44HPに入力される。処理部44HPは、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差に相当する第1の桁数と、量子化処理によって削除された部分データのビット幅と、補正データS9HPLのビット幅との差に相当する第2の桁数との合計の桁数だけ、周波数データS10HP1をその最下位桁から順に削除する。この例の場合は、第1の桁数及び第2の桁数がともに「1」であるため、合計の桁数は「2」となる。従って、処理部44HPは、図29の(J)に示すように、周波数データS10HP1の下位2ビットを削除することにより、「10011010110」なる周波数データS10HPを生成して出力する。
【0168】
第4の変形例に係る画像処理装置1によれば、削除されたTrim Bitsの桁数よりも、付加される補正データS8HPLLの桁数のほうが多い場合であっても、復号化部36の処理部36HP3(図16参照)は、Trim Bitsの桁数に制約を受けることなく、所望のデータ値の補正データS8HPLLを用いて、部分データS8HPLを生成することが可能となる。
【0169】
また、第4の変形例に係る画像処理装置1によれば、量子化処理によって削除された部分データの桁数よりも、付加される補正データS9HPLの桁数のほうが多い場合であっても、逆量子化部34の処理部341HP(図26参照)は、量子化処理によって削除された部分データの桁数に制約を受けることなく、所望のデータ値の補正データS9HPLを用いて、周波数データS9HP0を生成することが可能となる。
【0170】
<第5の変形例>
上記第4の変形例では、補正データS9HPLのデータ値は、量子化誤差を抑制するための所望の補正量に基づいて定められた。つまり、量子化誤差を抑制するための所望の補正量に等しい値が、補正データS9HPLのデータ値として用いられていた。第5の変形例では、補正データS9HPLのデータ値の決定手法に関して、上記第4の変形例とは異なる手法について説明する。第5の変形例に係る逆量子化部34の構成は、図26に示した構成と同様である。
【0171】
図30は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図30の(A)を参照して、復号化部36の処理部36HP1(図16参照)には、「100」なる部分データS8HPUが入力される。
【0172】
図30の(B)を参照して、復号化部36の処理部36HP3には、「1101」なる部分データS8HPLU(部分データS7HP2に等しい)が入力される。ここで、図16に示したように、処理部36HP3はレジスタ41を有している。レジスタ41には、図30の(C)に示すように、「01」なる補正データS8HPLLが格納されている。但し、第5の変形例において、Trim Bitsの削除に起因する誤差を抑制するための所望の補正量は、「011」であるものとする。つまり、この所望の補正量「011」のうち、Trim Bitsのビット幅T(この例の場合は2ビット)に相当する上位ビット「01」が、補正データS8HPLLとして採用される。
【0173】
図30の(D)に示すように、処理部36HP3は、部分データS8HPLUの下位に補正データS8HPLLを付加することにより、「110101」なる部分データS8HPLを生成して出力する。具体的に、処理部36HP3は、部分データS8HPLUの小数部に補正データS8HPLLを付加した後、Trim Bitsのビット幅Tに相当するビット数(この例の場合は2ビット)だけ、左方向にビットシフトすることにより、部分データS8HPLを生成する。
【0174】
部分データS8HPLは、処理部36HP1に入力される。図30の(E)に示すように、処理部36HP1は、部分データS8HPUの下位に部分データS8HPLを付加することにより、「100110101」なる周波数データS8HPを生成して出力する。具体的に、処理部36HP1は、部分データS8HPUの小数部に部分データS8HPLを付加した後、Model Bitsのビット幅Mに相当するビット数(この例の場合は6ビット)だけ、左方向にビットシフトすることにより、周波数データS8HPを生成する。
【0175】
周波数データS8HPは、逆予測部35の処理部35HP(図17参照)に入力される。ここで、処理部35HPは、逆予測処理を実行しないものとする。この場合、図30の(F)に示すように、処理部35HPからは、周波数データS8HPに等しい「100110101」なる周波数データS9HPが出力される。
【0176】
周波数データS9HPは、逆量子化部34の処理部341HP(図26参照)に入力される。また、処理部341HPのレジスタ43HPには、図30の(G)に示すように、「100」なる補正データS9HPLが格納されている。
【0177】
第5の変形例において、補正データS9HPLのデータ値は、Trim Bitsの削除に起因する誤差を抑制するための所望の補正量と、補正データS8HPLLのデータ値とに基づいて定められる。この例の場合、所望の補正量が「011」であり、補正データS8HPLLのデータ値が「01」であるため、補正データS8HPLLのデータ値は所望の補正量よりも「001」だけ小さい。第5の変形例において、補正データS9HPLのデータ値は、この差「001」を補う値に設定される。つまり、補正データS8HPLLと補正データS9HPLとによって所望の補正量「011」が実現されるように、補正データS9HPLのデータ値が決定される。
【0178】
図30の(H)に示すように、処理部341HPは、周波数データS9HPの下位に補正データS9HPLを付加することにより、「100110101100」なる周波数データS9HP0を生成して出力する。周波数データS9HPの下位2ビットである「01」と、補正データS9HPLの最上位ビットである「1」とによって、所望の補正量「011」が実現されていることが分かる。
【0179】
その後、図30の(I)に示すように、処理部342HPは、処理部341HPから入力された周波数データS9HP0を、量子化係数Qで規定される桁数だけ左方向にビットシフトすることにより、周波数データS10HP1を生成して出力する。ここで、図1に示した量子化部24において、量子化係数Qが「4」に設定されているものとする。この場合、図30の(H)及び(I)に示すように、周波数データS10HP1は、周波数データS9HP0を2ビットだけ左方向にビットシフトしたものとなる。なお、この例では、補正データS9HPLのビット幅は、量子化処理によって削除された部分データのビット幅よりも1ビットだけ大きい。
【0180】
周波数データS10HP1は、処理部44HPに入力される。処理部44HPは、量子化処理によって削除された部分データのビット幅と、補正データS9HPLのビット幅との差に相当する桁数だけ、周波数データS10HP1をその最下位桁から順に削除する。この例の場合、処理部44HPは、図30の(J)に示すように、周波数データS10HP1の最下位ビットを削除することにより、「10011010110」なる周波数データS10HPを生成して出力する。
【0181】
第5の変形例に係る画像処理装置1によれば、Trim Bitsが削除されることに起因する誤差に対する所望の補正量が、補正データS8HPLLの桁数によっては実現できない場合であっても、不足分の桁数を補正データS9HPLによって補うことができる。その結果、Trim Bitsが削除されることに起因する誤差に対する所望の補正量を、補正データS8HPLLと補正データS9HPLとによって確実に実現することが可能となる。
【0182】
第5の変形例に係る画像処理装置1では、補正データS9HPLの上位ビットは、補正データS8HPLLの不足分の桁数を補うために使用される。従って、図30の(J)を参照して、補正データS9HPLの最上位ビット「1」は、補正データS8HPLLの最下位ビットとして捉えることができる。この例の場合、補正データS9HPLの最下位ビットは「0」であるため、図30に示した例では、結果として、補正データS9HPLによっては量子化誤差は抑制されていないこととなる。
【0183】
しかし、予測部25が予測処理を実行しない場合、復号化部36から出力される周波数データS8は、予測誤差を含んでいない正確な周波数データである。そのため、正確な周波数データS8に対して、Trim Bitsの削除に起因する誤差を抑制するための第1の補正処理と、量子化誤差を抑制するための第2の補正処理との双方を実行するよりは、第1の補正処理のみを実行して第2の補正処理を実行しないほうが、周波数データS10HP内において第1の補正処理に関する補正値を明確にするという観点からは、都合が良い。しかも、補正データS9HPLは補正データS8HPLLよりも下位の部分データであるため、補正データS9HPLが周波数データS10HPの全体のデータ値に及ぼす影響は小さい。従って、図30に示した例のように第2の補正処理が実行されない結果となっても、特に不都合はない。
【0184】
<第6の変形例>
上記第1の変形例では、予測部25が予測処理を実行しない場合の例について説明した。第6の変形例では、予測部25が予測処理を実行する場合の対応について説明する。上述したように、予測部25は、直流成分、ローパス成分、及びハイパス成分の各々ごとに、所定の条件を満たす場合に予測処理を実行する。図5を参照して、ハイパス成分に関して予測処理を実行する場合、処理部25HPは、処理部24HP(図4参照)から入力された周波数データS5HPの値と、予測値データの値との差分値を求め、周波数データS6HPとして出力する。
【0185】
図31は、図17に示した逆予測部35の処理部35HPの具体的な構成を示すブロック図である。処理部35HPは、処理部351HP〜353HPを有して構成されている。処理部351HPは、上述した条件に従って予測方向を特定することにより、予測値データS50を求めて出力する。
【0186】
予測値データS50は、処理部352HPに入力される。処理部352HPは、予測値データS50に対して、後述する桁合わせの処理を実行することにより、予測値データS51を生成して出力する。
【0187】
予測値データS51は、処理部353HPに入力される。また、処理部353HPには、復号化部36の処理部36HP1(図15参照)から、周波数データS8HPが入力されている。処理部353HPは、周波数データS8HPの値に、予測値データS51の値を加算することにより、周波数データS9HPを生成して出力する。
【0188】
図32は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図32の(A)を参照して、復号化部36の処理部36HP1(図16参照)には、「100」なる部分データS8HPUが入力される。
【0189】
図32の(B)を参照して、復号化部36の処理部36HP3には、「1101」なる部分データS8HPLU(部分データS7HP2に等しい)が入力される。ここで、図16に示したように、処理部36HP3はレジスタ41を有している。レジスタ41には、図32の(C)に示すように、「011」なる補正データS8HPLLが格納されている。この例ではTrim Bitsのビット幅Tは2ビットであるため、補正データS8HPLLのビット幅は、Trim Bitsのビット幅Tよりも1ビットだけ大きい。
【0190】
図32の(D)に示すように、処理部36HP3は、部分データS8HPLUの下位に補正データS8HPLLを付加することにより、「1101011」なる部分データS8HPLを生成して出力する。具体的に、処理部36HP3は、部分データS8HPLUの小数部に補正データS8HPLLを付加した後、Trim Bitsのビット幅Tに相当するビット数(この例の場合は2ビット)だけ、左方向にビットシフトすることにより、部分データS8HPLを生成する。
【0191】
部分データS8HPLは、処理部36HP1に入力される。図32の(E)に示すように、処理部36HP1は、部分データS8HPUの下位に部分データS8HPLを付加することにより、「1001101011」なる周波数データS8HPを生成して出力する。具体的に、処理部36HP1は、部分データS8HPUの小数部に部分データS8HPLを付加した後、Model Bitsのビット幅Mに相当するビット数(この例の場合は6ビット)だけ、左方向にビットシフトすることにより、周波数データS8HPを生成する。周波数データS8HPは、逆予測部35の処理部353HP(図31参照)に入力される。
【0192】
図32の(F)に示すように、逆予測部35の処理部352HP(図31参照)には、例えば「001001001」なる予測値データS50が入力されている。処理部352HPは、補正データS8HPLLのビット幅とTrim Bitsのビット幅Tとの差に相当する桁数だけ、予測値データS50の小数部に、ビット値が「0」のビットを付加することにより、予測値データS51を生成して出力する。これにより、周波数データS8HPと予測値データとの桁合わせが行われる。この例の場合、図32の(G)に示すように、処理部352HPは、予測値データS50の小数部に、ビット値が「0」のビットS52を1ビットだけ付加することにより、桁合わせが成された予測値データS51を生成する。予測値データS51は、逆予測部35の処理部353HP(図31参照)に入力される。
【0193】
図32の(H)に示すように、処理部353HPは、周波数データS8HPと予測値データS51とを加算することにより、「1011111101」なる周波数データS9HPを生成して出力する。
【0194】
周波数データS9HPは、逆量子化部34の処理部341HP(図21参照)に入力される。ここで、量子化係数Qは「8」に設定されている。従って、図32の(I)に示すように、処理部341HPは、周波数データS9HPの下位に、「000」なる部分データを付加して出力する。その後、図32の(J)に示すように、処理部342HPは、処理部341HPから入力された周波数データを、量子化係数Qで規定される桁数(この例の場合は3ビット)だけ、左方向にビットシフトすることにより、「1011111101000」なる周波数データS10HP0を生成して出力する。
【0195】
周波数データS10HP0は、処理部42(図21参照)に入力される。処理部42は、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差に相当する桁数だけ、周波数データS10HP0をその最下位桁から順に削除する。この例の場合は、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差は1ビットであるため、処理部42は、図32の(K)に示すように、周波数データS10HP0の最下位桁を削除することにより、「101111110100」なる周波数データS10HPを生成して出力する。
【0196】
第6の変形例に係る画像処理装置1によれば、上記第1の変形例と同様に、削除されたTrim Bitsの桁数よりも、付加される補正データS8HPLLの桁数のほうが多い場合であっても、復号化部36の処理部36HP3(図16参照)は、Trim Bitsの桁数に制約を受けることなく、所望のデータ値の補正データS8HPLLを用いて、部分データS8HPLを生成することが可能となる。
【0197】
しかも、第6の変形例に係る画像処理装置1によれば、逆予測部35の処理部352HP(図31参照)は、Trim Bitsの桁数と補正データS8HPLLの桁数との差に相当する桁数だけ、予測値データS50の下位に、ビット値が「0」のビットS52を追加することにより、予測値データS51を生成する。従って、周波数データS8HPと予測値データS51との加算において、互いに加算し合うべき桁がずれることを回避することができる。
【0198】
<第7の変形例>
上記第6の変形例では、図32の(I)に示したように、周波数データS9HPの下位に、データ値が「0」の部分データが付加される例について説明した。この場合、量子化処理において削除される部分データと、逆量子化処理において付加される部分データとの差に起因して、量子化誤差が発生する。第7の変形例では、量子化誤差を抑制するための対策について説明する。
【0199】
図33は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図33の(A)〜(H)における処理は、図32の(A)〜(H)における処理と同様である。
【0200】
図33の(H)に示すように、逆量子化部34の処理部341HP(図26参照)には、「1011111101」なる周波数データS9HPが入力される。また、処理部341HPのレジスタ43HPには、「101」なる補正データS9HPLが格納されている。但し、補正データS9HPLの値は、「101」(10進数で0.625)に限らず、「01」(10進数で0.25)、「011」(10進数で「0.375)、「10」(10進数で0.5)、又はランダム値であっても良い。
【0201】
図33の(I)に示すように、処理部341HPは、周波数データS9HPの下位に補正データS9HPLを付加することにより、「1011111101101」なる周波数データS9HP1を生成して出力する。その後、図33の(J)に示すように、処理部342HP(図26参照)は、処理部341HPから入力された周波数データS9HP1を、量子化係数Qで規定される桁数(この例の場合は3ビット)だけ、左方向にビットシフトすることにより、周波数データS10HP1を生成して出力する。
【0202】
周波数データS10HP1は、処理部44HP(図26参照)に入力される。処理部44HPは、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差に相当する桁数だけ、周波数データS10HP1をその最下位桁から順に削除する。この例の場合は、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差は1ビットであるため、処理部44HPは、図33の(K)に示すように、周波数データS10HP1の最下位桁を削除することにより、「101111110110」なる周波数データS10HPを生成して出力する。
【0203】
第7の変形例に係る画像処理装置1によれば、処理部341HPは、周波数データS9HPの下位に、データ値が「0」ではない補正データS9HPLを付加することにより、周波数データS9HP1を生成する。つまり、第7の変形例に係る画像処理装置1は、エンコーダ2の量子化処理において削除された部分データを、デコーダ3の逆量子化処理において、データ値が「0」の部分データによって補うのではなく、データ値が「0」ではない補正データS9HPLによって補う。従って、周波数データS9HPの下位にデータ値が「0」の部分データが付加される場合(図32)と比較すると、統計的に、逆量子化後の周波数データS10HPのデータ値を、量子化前の周波数データS4HP(図4参照)のデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0204】
<第8の変形例>
上記第7の変形例では、量子化部24の量子化処理において削除される部分データのビット幅と、逆量子化部34の処理部341HPにおいて付加される補正データS9HPL(図33の(I)参照)のビット幅とが、互いに等しい場合について説明した。第8の変形例では、量子化処理において削除される部分データのビット幅よりも、補正データS9HPLのビット幅のほうが大きい場合の対応について説明する。
【0205】
図34は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図34の(A)〜(I)における処理は、図33の(A)〜(I)における処理と同様である。
【0206】
図34の(I)に示すように、処理部341HP(図26参照)は、周波数データS9HPの下位に補正データS9HPLを付加することにより、「1011111101101」なる周波数データS9HP1を生成して出力する。その後、図34の(J)に示すように、処理部342HP(図26参照)は、処理部341HPから入力された周波数データS9HP1を、量子化係数Qで規定される桁数だけ左方向にビットシフトすることにより、周波数データS10HP1を生成して出力する。ここで、図1に示した量子化部24において、量子化係数Qが「4」に設定されているものとする。この場合、図34の(I)及び(J)に示すように、周波数データS10HP1は、周波数データS9HP1を2ビットだけ左方向にビットシフトしたものとなる。なお、この例では、補正データS9HPLのビット幅は、量子化処理によって削除された部分データのビット幅よりも1ビットだけ大きい。
【0207】
周波数データS10HP1は、処理部44HP(図26参照)に入力される。処理部44HPは、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差に相当する第1の桁数と、量子化処理によって削除された部分データのビット幅と、補正データS9HPLのビット幅との差に相当する第2の桁数との合計の桁数だけ、周波数データS10HP1をその最下位桁から順に削除する。この例の場合は、第1の桁数及び第2の桁数がともに「1」であるため、合計の桁数は「2」となる。従って、処理部44HPは、図34の(K)に示すように、周波数データS10HP1の下位2ビットを削除することにより、「10111111011」なる周波数データS10HPを生成して出力する。
【0208】
第8の変形例に係る画像処理装置1によれば、削除されたTrim Bitsの桁数よりも、付加される補正データS8HPLLの桁数のほうが多い場合であっても、復号化部36の処理部36HP3(図16参照)は、Trim Bitsの桁数に制約を受けることなく、所望のデータ値の補正データS8HPLLを用いて、部分データS8HPLを生成することが可能となる。
【0209】
また、第8の変形例に係る画像処理装置1によれば、量子化処理によって削除された部分データの桁数よりも、付加される補正データS9HPLの桁数のほうが多い場合であっても、逆量子化部34の処理部341HP(図26参照)は、量子化処理によって削除された部分データの桁数に制約を受けることなく、所望のデータ値の補正データS9HPLを用いて、周波数データS9HP1を生成することが可能となる。
【図面の簡単な説明】
【0210】
【図1】本発明の実施の形態に係る画像処理装置の全体構成を示すブロック図である。
【図2】図1に示したプレフィルタ及び周波数変換部の具体的な構成を示すブロック図である。
【図3】画素平面内の一つのマクロブロックを示す図である。
【図4】図1に示した量子化部の具体的な構成を示すブロック図である。
【図5】図1に示した予測部の具体的な構成を示すブロック図である。
【図6】直流成分に関する予測処理を説明するための図である。
【図7】ローパス成分に関する予測処理を説明するための図である。
【図8】ハイパス成分に関する予測処理を説明するための図である。
【図9】図1に示した符号化部の具体的な構成を示すブロック図である。
【図10】図9から一部の処理部を抜き出して示すブロック図である。
【図11】周波数データを示す図である。
【図12】部分データを示す図である。
【図13】ハイパス成分に関して、量子化部、予測部、及び符号化部における処理の例を示す図である。
【図14】図1に示したメモリの記憶内容を示す図である。
【図15】図1に示した復号化部の具体的な構成を示すブロック図である。
【図16】図15から一部の処理部を抜き出して示すブロック図である。
【図17】図1に示した逆予測部の具体的な構成を示すブロック図である。
【図18】図1に示した逆量子化部の具体的な構成を示すブロック図である。
【図19】図1に示したポストフィルタ及び周波数逆変換部の具体的な構成を示すブロック図である。
【図20】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【図21】第1の変形例に関して、図1に示した逆量子化部の具体的な構成を示すブロック図である。
【図22】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【図23】第2の変形例に関して、図1に示した逆量子化部の具体的な構成を示すブロック図である。
【図24】ハイパス成分に関して、逆量子化部における処理の例を示す図である。
【図25】ハイパス成分に関して、逆量子化部における逆量子化処理を一般化して表した数式を示す図である。
【図26】第3の変形例に関して、図1に示した逆量子化部の具体的な構成を示すブロック図である。
【図27】ハイパス成分に関して、逆量子化部における処理の例を示す図である。
【図28】ハイパス成分に関して、逆量子化部における処理の他の例を示す図である。
【図29】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【図30】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【図31】図17に示した処理部の具体的な構成を示すブロック図である。
【図32】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【図33】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【図34】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【符号の説明】
【0211】
1 画像処理装置
2 エンコーダ
3 デコーダ
24 量子化部
25 予測部
26 符号化部
34 逆量子化部
35 逆予測部
36 復号化部
41,43HP,43LP,43DC レジスタ
24HP,24LP,24DC,25HP,25LP,25DC,26HP1〜26HP4,26LP1〜26LP4,26DC1〜26DC4,341HP,341LP,341DC,342HP,342LP,342DC,35HP,35LP,35DC,351HP,352HP,353HP,36HP1〜36HP4,36LP1〜36LP4,36DC1〜36DC4,42,44HP,44LP,44DC 処理部
【技術分野】
【0001】
本発明は、画像処理装置に関し、特に、HD Photoにおけるデコーダに関する。
【背景技術】
【0002】
近年、JPEGよりも高画質で、JPEG2000よりも回路構成及び演算処理が簡素化された静止画ファイルフォーマットとして、マイクロソフト社よりHD Photo(又はJPEG XR)が提案されている。
【0003】
HD Photoにおけるエンコーダは、色変換部、プレフィルタ、周波数変換部、量子化部、予測部、及び符号化部を備えて構成されている。
【0004】
周波数変換部は、入力された画素信号に対して所定の周波数変換処理(PCT)を実行することにより、ハイパス成分、ローパス成分、及び直流成分の周波数データを出力する。
【0005】
量子化部は、周波数変換部から入力された各成分の周波数データのうち、量子化係数で規定される桁数に相当する下位データをそれぞれ削除することにより、量子化後の周波数データ(ハイパス成分、ローパス成分、及び直流成分)を出力する。
【0006】
符号化部は、ビット分割処理部、符号化処理部、及びFLEX_REF生成処理部を有している。ビット分割処理部は、予測部から入力された各成分の周波数データを、上位側の桁範囲内の上位データ(Normal Bit)と、下位側の桁範囲内の下位データ(Flex Bit)とに分割する。符号化処理部は、ビット分割処理部から入力された各成分の上位データに対して、エントロピー符号化処理をそれぞれ実行して出力する。FLEX_REF生成処理部は、ビット分割処理部から入力されたハイパス成分の下位データのうち、上位側の桁範囲内のデータ(FLEX_REF)を、符号化することなく出力する。また、FLEX_REF生成処理部は、ビット分割処理部から入力されたハイパス成分の下位データのうち、下位側の桁範囲内のデータ(Trim Bits)を削除する。一方、FLEX_REF生成処理部は、ビット分割処理部から入力されたローパス成分及び直流成分の各下位データに対しては、Trim Bitsの削除処理を実行しない。
【0007】
なお、HD Photoの詳細については、例えば下記非特許文献1に開示されており、JPEG XRの詳細については、例えば下記非特許文献2に開示されている。
【0008】
【非特許文献1】"HD Photo -Photographic Still Image File Format", [online], 2006年11月7日, Microsoft Corporation, [2007年10月10日検索], インターネット<URL: http://www.microsoft.com/whdc/xps/hdphotodpk.mspx>
【非特許文献2】"Coding of Still Pictures -JBIG JPEG", [online], 19 December 2007, ISO/IEC JTC 1/SC 29/WG1 N 4392, [2008年3月4日検索], インターネット<URL: http://www.itscj.ipsj.or.jp/sc29/open/29view/29n9026t.doc>
【発明の開示】
【発明が解決しようとする課題】
【0009】
このようにHD Photoにおけるエンコーダでは、ハイパス成分、ローパス成分、及び直流成分のそれぞれに関して、エンコーダに入力される原画像と、デコーダから出力されるデコード画像との間に、量子化部における下位データの削除処理に起因する誤差が発生する。また、ハイパス成分に関しては、符号化部におけるTrim Bitsの削除処理に起因する誤差が発生する。これらの誤差は、デコード画像の画質劣化の原因となり得る。
【0010】
本発明はかかる事情に鑑みて成されたものであり、量子化部における下位データの削除処理に起因する誤差、及び符号化部におけるTrim Bitsの削除処理に起因する誤差を低減することにより、画質の向上を図ることが可能な、画像処理装置を得ることを目的とする。
【課題を解決するための手段】
【0011】
本発明の第1の態様に係る画像処理装置は、符号化部と復号化部とを備え、前記符号化部は、入力された第1のデータを、上位側の桁範囲内の上位データと、下位側の桁範囲内の下位データとに分割する第1の処理部と、前記上位データに対して符号化処理を実行することにより、第1の部分データを生成して出力する、第2の処理部と、前記下位データのうち上位側の桁範囲内の第2の部分データを、符号化することなく出力するとともに、前記下位データのうち下位側の桁範囲内の第3の部分データを削除する、第3の処理部とを有し、前記復号化部は、前記第1の部分データに対して復号化処理を実行することにより、第4の部分データを生成する、第4の処理部と、前記第2の部分データの下位に、データ値が「0」ではない第5の部分データを付加することにより、第6の部分データを生成する、第5の処理部と、前記第4の部分データの下位に前記第6の部分データを付加することにより、第2のデータを生成して出力する、第6の処理部とを有することを特徴とするものである。
【0012】
本発明の第1の態様に係る画像処理装置によれば、第5の処理部は、第2の部分データの下位に、データ値が「0」ではない第5の部分データを付加することにより、第6の部分データを生成する。従って、第2の部分データの下位にデータ値が「0」の部分データを付加することにより第6の部分データを生成する場合と比較すると、統計的に、第2のデータのデータ値を第1のデータのデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0013】
本発明の第2の態様に係る画像処理装置は、第1の態様に係る画像処理装置において特に、前記第2のデータに対して逆量子化処理を実行することにより、第3のデータを生成して出力する逆量子化部をさらに備え、前記逆量子化部は、第7の処理部を有し、前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第7の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記第3のデータをその最下位桁から順に削除することを特徴とするものである。
【0014】
本発明の第2の態様に係る画像処理装置によれば、削除された第3の部分データの桁数よりも、付加される第5の部分データの桁数のほうが多い場合であっても、第5の処理部は、所望のデータ値の第5の部分データを用いて、第6の部分データを生成することが可能となる。
【0015】
本発明の第3の態様に係る画像処理装置は、第1の態様に係る画像処理装置において特に、前記符号化部よりも前段に配置された量子化部と、前記復号化部よりも後段に配置された逆量子化部とをさらに備え、前記量子化部は、入力された第3のデータから、量子化係数で規定される桁数に相当する第7の部分データを削除することにより、前記第1のデータを生成して出力し、前記逆量子化部は、前記第2のデータの下位に、データ値が「0」ではない第8の部分データを付加することにより、第4のデータを生成する、第7の処理部と、前記第4のデータを、前記量子化係数で規定される桁数だけ、その上位側に向けてビットシフトすることにより、第5のデータを生成して出力する、第8の処理部とを有することを特徴とするものである。
【0016】
本発明の第3の態様に係る画像処理装置によれば、第7の処理部は、第2のデータの下位に、データ値が「0」ではない第8の部分データを付加することにより、第4のデータを生成する。従って、第2のデータの下位にデータ値が「0」の部分データを付加することにより第4のデータを生成する場合と比較すると、統計的に、第5のデータのデータ値を第3のデータのデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0017】
本発明の第4の態様に係る画像処理装置は、第3の態様に係る画像処理装置において特に、前記逆量子化部は、第9の処理部をさらに有し、前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記第9の処理部は、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数だけ、前記第5のデータをその最下位桁から順に削除することを特徴とするものである。
【0018】
本発明の第4の態様に係る画像処理装置によれば、削除された第7の部分データの桁数よりも、付加される第8の部分データの桁数のほうが多い場合であっても、第7の処理部は、所望のデータ値の第8の部分データを用いて、第4のデータを生成することが可能となる。
【0019】
本発明の第5の態様に係る画像処理装置は、第3の態様に係る画像処理装置において特に、前記逆量子化部は、第9の処理部をさらに有し、前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多く、かつ、前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記9の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数と、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数との合計の桁数だけ、前記第5のデータをその最下位桁から順に削除することを特徴とするものである。
【0020】
本発明の第5の態様に係る画像処理装置によれば、削除された第3の部分データの桁数よりも、付加される第5の部分データの桁数のほうが多い場合であっても、第5の処理部は、所望のデータ値の第5の部分データを用いて、第6の部分データを生成することが可能となる。また、削除された第7の部分データの桁数よりも、付加される第8の部分データの桁数のほうが多い場合であっても、第7の処理部は、所望のデータ値の第8の部分データを用いて、第4のデータを生成することが可能となる。
【0021】
本発明の第6の態様に係る画像処理装置は、第3〜第5のいずれか一つの態様に係る画像処理装置において特に、前記第8の部分データの値は、前記第7の部分データが削除されることに起因する誤差に対する所望の補正量に基づいて定められることを特徴とするものである。
【0022】
本発明の第6の態様に係る画像処理装置によれば、第3の部分データが削除されることに起因する誤差に対する補正量と、第7の部分データが削除されることに起因する誤差に対する補正量とを、別個独立に規定することが可能となる。
【0023】
本発明の第7の態様に係る画像処理装置は、第3〜第5のいずれか一つの態様に係る画像処理装置において特に、前記第8の部分データの値は、前記第3の部分データが削除されることに起因する誤差に対する所望の補正量と、前記第5の部分データの値とに基づいて定められることを特徴とするものである。
【0024】
本発明の第7の態様に係る画像処理装置によれば、第3の部分データが削除されることに起因する誤差に対する所望の補正量が、第5の部分データの桁数によっては実現できない場合であっても、不足分の桁数を第8の部分データによって補うことができる。その結果、第3の部分データが削除されることに起因する誤差に対する所望の補正量を、第5の部分データと第8の部分データとによって確実に実現することが可能となる。
【0025】
本発明の第8の態様に係る画像処理装置は、第1の態様に係る画像処理装置において特に、前記第2のデータに対して予測値データを加算することにより、第3のデータを生成して出力する逆予測部と、前記第3のデータに対して逆量子化処理を実行することにより、第4のデータを生成して出力する逆量子化部とをさらに備え、前記逆予測部は、第7の処理部を有し、前記逆量子化部は、第8の処理部を有し、前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第7の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記予測値データの下位に、ビット値が「0」である桁を追加し、前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第8の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記第4のデータをその最下位桁から順に削除することを特徴とするものである。
【0026】
本発明の第8の態様に係る画像処理装置によれば、削除された第3の部分データの桁数よりも、付加される第5の部分データの桁数のほうが多い場合であっても、第5の処理部は、所望のデータ値の第5の部分データを用いて、第6の部分データを生成することが可能となる。しかも、第7の処理部は、第3の部分データの桁数と第5の部分データの桁数との差に相当する桁数だけ、予測値データの下位に、ビット値が「0」である桁を追加する。従って、第2のデータと予測値データとの加算において、互いに加算し合うべき桁がずれることを回避することができる。
【0027】
本発明の第9の態様に係る画像処理装置は、第1の態様に係る画像処理装置において特に、入力された第3のデータと、予測値データとの差分値を、前記第1のデータとして出力する予測部と、前記予測部よりも前段に配置された量子化部と、前記第2のデータに対して前記予測値データを加算することにより、第4のデータを生成して出力する逆予測部と、前記逆予測部よりも後段に配置された逆量子化部とをさらに備え、前記量子化部は、入力された第5のデータから、量子化係数で規定される桁数に相当する第7の部分データを削除することにより、前記第3のデータを生成して出力し、前記逆量子化部は、前記第4のデータの下位に、データ値が「0」ではない第8の部分データを付加することにより、第6のデータを生成する、第7の処理部と、前記第6のデータを、前記量子化係数で規定される桁数だけ、その上位側に向けてビットシフトすることにより、第7のデータを生成して出力する、第8の処理部とを有することを特徴とするものである。
【0028】
本発明の第9の態様に係る画像処理装置によれば、第7の処理部は、第4のデータの下位に、データ値が「0」ではない第8の部分データを付加することにより、第6のデータを生成する。従って、第4のデータの下位にデータ値が「0」の部分データを付加することにより第6のデータを生成する場合と比較すると、統計的に、第7のデータのデータ値を第5のデータのデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0029】
本発明の第10の態様に係る画像処理装置は、第9の態様に係る画像処理装置において特に、前記逆量子化部は、第9の処理部をさらに有し、前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記第9の処理部は、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数だけ、前記第7のデータをその最下位桁から順に削除することを特徴とするものである。
【0030】
本発明の第10の態様に係る画像処理装置によれば、削除された第7の部分データの桁数よりも、付加される第8の部分データの桁数のほうが多い場合であっても、第7の処理部は、所望のデータ値の第8の部分データを用いて、第6のデータを生成することが可能となる。
【0031】
本発明の第11の態様に係る画像処理装置は、第9の態様に係る画像処理装置において特に、前記逆予測部は、第9の処理部を有し、前記逆量子化部は、第10の処理部をさらに有し、前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第9の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記予測値データの下位に、ビット値が「0」である桁を追加し、前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多く、かつ、前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記10の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数と、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数との合計の桁数だけ、前記第7のデータをその最下位桁から順に削除することを特徴とするものである。
【0032】
本発明の第11の態様に係る画像処理装置によれば、削除された第3の部分データの桁数よりも、付加される第5の部分データの桁数のほうが多い場合であっても、第5の処理部は、所望のデータ値の第5の部分データを用いて、第6の部分データを生成することが可能となる。また、削除された第7の部分データの桁数よりも、付加される第8の部分データの桁数のほうが多い場合であっても、第7の処理部は、所望のデータ値の第8の部分データを用いて、第6のデータを生成することが可能となる。
【0033】
本発明の第12の態様に係る画像処理装置は、第9〜第11のいずれか一つの態様に係る画像処理装置において特に、前記第8の部分データの値は、前記第7の部分データが削除されることに起因する誤差に対する所望の補正量に基づいて定められることを特徴とするものである。
【0034】
本発明の第12の態様に係る画像処理装置によれば、第3の部分データが削除されることに起因する誤差に対する補正量と、第7の部分データが削除されることに起因する誤差に対する補正量とを、別個独立に規定することが可能となる。
【0035】
本発明の第13の態様に係る画像処理装置は、第1〜第12のいずれか一つの態様に係る画像処理装置において特に、前記第1のデータは、HD Photoにおけるハイパス成分の周波数データであることを特徴とするものである。
【0036】
本発明の第13の態様に係る画像処理装置によれば、HD Photoにおけるハイパス成分の周波数データに関して、Trim Bits(第3の部分データ)が削除されることに起因する誤差を補正することが可能となる。
【0037】
本発明の第14の態様に係る画像処理装置は、量子化部と逆量子化部とを備え、前記量子化部は、入力された第1のデータから、量子化係数で規定される桁数に相当する第1の部分データを削除することにより、第2のデータを生成して出力し、前記逆量子化部は、前記第2のデータの下位に、データ値が「0」ではない第2の部分データを付加することにより、第3のデータを生成する、第1の処理部と、前記第3のデータを、前記量子化係数で規定される桁数だけ、その上位側に向けてビットシフトすることにより、第4のデータを生成して出力する、第2の処理部とを有することを特徴とするものである。
【0038】
本発明の第14の態様に係る画像処理装置によれば、第1の処理部は、第2のデータの下位に、データ値が「0」ではない第2の部分データを付加することにより、第3のデータを生成する。従って、第2のデータの下位にデータ値が「0」の部分データを付加することにより第3のデータを生成する場合と比較すると、統計的に、第4のデータのデータ値を第1のデータのデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0039】
本発明の第15の態様に係る画像処理装置は、第14の態様に係る画像処理装置において特に、前記逆量子化部は、第3の処理部をさらに有し、前記第1の部分データの桁数よりも前記第2の部分データの桁数のほうが多い場合、前記第3の処理部は、前記第1の部分データの桁数と前記第2の部分データの桁数との差に相当する桁数だけ、前記第4のデータをその最下位桁から順に削除することを特徴とするものである。
【0040】
本発明の第15の態様に係る画像処理装置によれば、削除された第1の部分データの桁数よりも、付加される第2の部分データの桁数のほうが多い場合であっても、第1の処理部は、所望のデータ値の第2の部分データを用いて、第3のデータを生成することが可能となる。
【0041】
本発明の第16の態様に係る画像処理装置は、第14又は第15の態様に係る画像処理装置において特に、前記第1のデータは、HD Photoにおける、ハイパス成分、ローパス成分、又は直流成分の周波数データであることを特徴とするものである。
【0042】
本発明の第16の態様に係る画像処理装置によれば、HD Photoにおけるハイパス成分、ローパス成分、又は直流成分の周波数データに関して、量子化によって下位データ(第1の部分データ)が削除されることに起因する誤差(量子化誤差)を補正することが可能となる。
【発明の効果】
【0043】
本発明によれば、画質の向上を図ることが可能となる。
【発明を実施するための最良の形態】
【0044】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0045】
<全体構成>
図1は、本発明の実施の形態に係る画像処理装置1の全体構成を示すブロック図である。画像処理装置1は、エンコーダ2とデコーダ3とを備えて構成されている。エンコーダ2は、色変換部21、プレフィルタ22、周波数変換部23、量子化部24、予測部25、及び符号化部26を有して構成されている。デコーダ3は、色逆変換部31、ポストフィルタ32、周波数逆変換部33、逆量子化部34、逆予測部35、及び復号化部36を有して構成されている。
【0046】
<色変換部21>
色変換部21には、例えば、Bayer配列の3色のカラーフィルタが配置された、CCD又はCMOSイメージセンサ等の撮像素子から、RGB色空間の画素信号S1が入力される。色変換部21は、RGB色空間の画素信号S1を、例えばYUV色空間の画素信号S2に変換して出力する。
【0047】
<プレフィルタ22及び周波数変換部23>
プレフィルタ22には、色変換部21から画素信号S2が入力される。プレフィルタ22は、画素信号S2に対して所定のプレフィルタ処理を選択的に実行することにより、画素信号S3を生成して出力する。HD Photoでは、プレフィルタ22にプレフィルタ処理を実行させるか否かを、Overlap係数の設定によって任意に選択することができる。
【0048】
周波数変換部23には、プレフィルタ22から画素信号S3が入力される。周波数変換部23は、画素信号S3に対して所定の周波数変換処理(HD Photo Core Transform:PCT)を実行することにより、周波数データS4を生成して出力する。
【0049】
図2は、図1に示したプレフィルタ22及び周波数変換部23の具体的な構成を示すブロック図である。図2に示すように、HD Photoにおけるエンコーダ2は、第1階層のプレフィルタ221及び周波数変換部231と、第2階層のプレフィルタ222及び周波数変換部232とを備えている。
【0050】
プレフィルタ221には、画素信号S21が入力される。プレフィルタ221は、画素信号S21に対してプレフィルタ処理を実行することにより、画素信号S31を生成して出力する。画素信号S31は、周波数変換部231に入力される。周波数変換部231は、画素信号S31に対して周波数変換処理(PCT)を実行することにより、ハイパス成分の周波数データS4HPと、第1階層における直流成分のデータS22とを生成して出力する。データS22は、プレフィルタ222に入力される。プレフィルタ222は、データS22に対してプレフィルタ処理を実行することにより、データS32を生成して出力する。データS32は、周波数変換部232に入力される。周波数変換部232は、データS32に対して周波数変換処理(PCT)を実行することにより、ローパス成分の周波数データS4LPと、直流成分の周波数データS4DCとを生成して出力する。
【0051】
このようにHD Photoにおいては、第1階層の周波数変換部231からハイパス成分の周波数データS4HPが出力され、第2階層の周波数変換部232からローパス成分の周波数データS4LPと直流成分の周波数データS4DCとが出力される。図1に示した周波数データS4には、周波数データS4HP,S4LP,S4DCが含まれる。
【0052】
図3は、画素平面内の一つのマクロブロックMBを示す図である。マクロブロックMBは、縦16画素×横16画素の、合計256個の画素で構成されている。マクロブロックMB内には、縦4個×横4個の、合計16個の画素ブロックRAが規定されている。各画素ブロックRAは、縦4画素×横4画素の、合計16個の画素で構成されている。周波数変換部23は、各画素ブロックRAを処理単位領域として、周波数変換処理を実行する。
【0053】
また、マクロブロックMBよりも上下左右の各方向に2画素ずつ広い、縦20画素×横20画素の画素ブロックOBが規定されている。画素ブロックOB内には、縦5個×横5個の、合計25個の画素ブロックRBが規定されている。各画素ブロックRBは、縦4画素×横4画素の、合計16個の画素で構成されている。プレフィルタ22は、各画素ブロックRBを処理単位領域として、プレフィルタ処理を実行する。但し、画素平面の周縁においては、縦4画素×横4画素の処理単位領域が確保されず、縦4画素×横2画素、縦2画素×横4画素、又は縦2画素×横2画素の画素ブロックが、プレフィルタ22の処理単位領域となる。
【0054】
図3に示すように、プレフィルタ22の処理単位領域である画素ブロックRB1(斜線ハッチングを付している)は、周波数変換部23の処理単位領域である4個の画素ブロックRA1〜RA4(砂地ハッチングを付している)にオーバーラップしている。このように、プレフィルタ22は、周波数変換部23の複数の処理単位領域にオーバーラップする領域を処理単位領域として、プレフィルタ処理を実行する。その結果、ブロック歪みが低減される。
【0055】
<量子化部24>
図4は、図1に示した量子化部24の具体的な構成を示すブロック図である。量子化部24は、ハイパス成分に関する処理部24HPと、ローパス成分に関する処理部24LPと、直流成分に関する処理部24DCとを有して構成されている。
【0056】
処理部24HPには、図2に示した周波数変換部231から、ハイパス成分の周波数データS4HPが入力される。処理部24HPは、周波数データS4HPを量子化係数で除算することにより、周波数データS5HPを生成して出力する。具体的に、処理部24HPは、周波数データS4HPのうち、量子化係数で規定される桁数に相当する下位データを削除することにより、周波数データS5HPを生成する。
【0057】
同様に、処理部24LPには、図2に示した周波数変換部232から、ローパス成分の周波数データS4LPが入力される。処理部24LPは、周波数データS4LPを量子化係数で除算することにより、周波数データS5LPを生成して出力する。具体的に、処理部24LPは、周波数データS4LPのうち、量子化係数で規定される桁数に相当する下位データを削除することにより、周波数データS5LPを生成する。
【0058】
同様に、処理部24DCには、図2に示した周波数変換部232から、直流成分の周波数データS4DCが入力される。処理部24DCは、周波数データS4DCを量子化係数で除算することにより、周波数データS5DCを生成して出力する。具体的に、処理部24DCは、周波数データS4DCのうち、量子化係数で規定される桁数に相当する下位データを削除することにより、周波数データS5DCを生成する。
【0059】
図1に示した周波数データS5には、周波数データS5HP,S5LP,S5DCが含まれる。
【0060】
<予測部25>
図5は、図1に示した予測部25の具体的な構成を示すブロック図である。予測部25は、ハイパス成分に関する処理部25HPと、ローパス成分に関する処理部25LPと、直流成分に関する処理部25DCとを有して構成されている。処理部25HPには、図4に示した処理部24HPから、ハイパス成分の周波数データS5HPが入力される。処理部25LPには、図4に示した処理部24LPから、ローパス成分の周波数データS5LPが入力される。処理部25DCには、図4に示した処理部24DCから、直流成分の周波数データS5DCが入力される。
【0061】
図6は、処理部25DCにおける予測処理を説明するための図である。図6には、4つのマクロブロックMB1〜MB4に対応する4つの直流成分の周波数データ101〜104を示している。現在の処理対象の周波数データは、右下のマクロブロックMB4の周波数データ104であるとする。
【0062】
周波数データ104と周波数データ102との間にエッジがなく、かつ、周波数データ104と周波数データ103との間にもエッジがない場合は、周波数データ102と周波数データ103との平均値が、周波数データ104に関する予測値データとして採用される。つまり、予測方向は上方向及び左方向となる。なお、エッジの存在の有無は、輝度情報及び色差情報を用いて判定することができる。
【0063】
周波数データ104と周波数データ102との間にエッジがなく、かつ、周波数データ104と周波数データ103との間にエッジがある場合は、周波数データ102が、周波数データ104に関する予測値データとして採用される。つまり、予測方向は上方向となる。
【0064】
周波数データ104と周波数データ102との間にエッジがあり、かつ、周波数データ104と周波数データ103との間にエッジがない場合は、周波数データ103が、周波数データ104に関する予測値データとして採用される。つまり、予測方向は左方向となる。
【0065】
周波数データ101〜103が存在しない場合は、周波数データ104に関する予測処理は実行されない。換言すれば、データ値が「0」であるデータが、予測値データとして採用される。
【0066】
なお、画素平面の左上角に位置するマクロブロックに関しては、上方向に隣接するマクロブロック及び左方向に隣接するマクロブロックが存在しないため、予測処理は実行されない。また、画素平面の左端に位置するマクロブロックに関しては、左方向に隣接するマクロブロックが存在しないため、予測方向が上方向となるか、あるいは予測処理は実行されない。また、画素平面の上端に位置するマクロブロックに関しては、上方向に隣接するマクロブロックが存在しないため、予測方向が左方向となるか、あるいは予測処理は実行されない。
【0067】
図5を参照して、予測処理を実行する場合、処理部25DCは、処理部24DCから入力された周波数データS5DCの値と、予測値データの値との差分値を求め、周波数データS6DCとして出力する。一方、予測処理を実行しない場合、処理部25DCは、処理部24DCから入力された周波数データS5DCを、周波数データS6DCとして出力する。
【0068】
図7は、処理部25LPにおける予測処理を説明するための図である。図7には、図6に対応させて、4つのマクロブロックMB1〜MB4に対応する、合計60個のローパス成分の周波数データを示している。現在の処理対象の周波数データは、右下のマクロブロックMB4の周波数データであるとする。
【0069】
マクロブロックMB4の直流成分の周波数データ104(図6参照)に関する予測方向が上方向であり、かつ、ローパス成分に関する量子化係数がマクロブロックMB4とマクロブロックMB2とで等しい場合は、予測方向は上方向となる。この場合、周波数データ201,202,203が、周波数データ207,208,209に関する予測値データとしてそれぞれ採用される。また、この場合、マクロブロックMB4内のその他の周波数データに関しては、予測処理は実行されない。
【0070】
マクロブロックMB4の直流成分の周波数データ104に関する予測方向が左方向であり、かつ、ローパス成分に関する量子化係数がマクロブロックMB4とマクロブロックMB3とで等しい場合は、予測方向は左方向となる。この場合、周波数データ204,205,206が、周波数データ210,211,212に関する予測値データとしてそれぞれ採用される。また、この場合、マクロブロックMB4内のその他の周波数データに関しては、予測処理は実行されない。
【0071】
上記の条件をいずれも満たさない場合は、マクロブロックMB4内のいずれの周波数データに関しても、予測処理は実行されない。
【0072】
図5を参照して、予測処理を実行する場合、処理部25LPは、処理部24LPから入力された周波数データS5LPの値と、予測値データの値との差分値を求め、周波数データS6LPとして出力する。一方、予測処理を実行しない場合、処理部25LPは、処理部24LPから入力された周波数データS5LPを、周波数データS6LPとして出力する。
【0073】
図8は、処理部25HPにおける予測処理を説明するための図である。図8には、1つのマクロブロックMB4に対応する、合計240個のハイパス成分の周波数データを示している。現在の処理対象の周波数データは、左から2列目かつ上から2行目の処理単位領域に含まれる周波数データであるとする。
【0074】
周波数データ301,302,303と周波数データ307,308,309との間にエッジがなく、かつ、周波数データ304,305,306と周波数データ310,311,312との間にエッジがある場合は、周波数データ301,302,303が、周波数データ307,308,309に関する予測値データとしてそれぞれ採用される。つまり、予測方向は上方向となる。また、この場合、周波数データ307,308,309以外の周波数データに関しては、予測処理は実行されない。
【0075】
周波数データ301,302,303と周波数データ307,308,309との間にエッジがあり、かつ、周波数データ304,305,306と周波数データ310,311,312との間にエッジがない場合は、周波数データ304,305,306が、周波数データ310,311,312に関する予測値データとしてそれぞれ採用される。つまり、予測方向は左方向となる。また、この場合、周波数データ310,311,312以外の周波数データに関しては、予測処理は実行されない。
【0076】
上記の条件をいずれも満たさない場合は、現在の処理対象である処理単位領域内のいずれの周波数データに関しても、予測処理は実行されない。
【0077】
図5を参照して、予測処理を実行する場合、処理部25HPは、処理部24HPから入力された周波数データS5HPの値と、予測値データの値との差分値を求め、周波数データS6HPとして出力する。一方、予測処理を実行しない場合、処理部25HPは、処理部24HPから入力された周波数データS5HPを、周波数データS6HPとして出力する。
【0078】
図1に示した周波数データS6には、周波数データS6HP,S6LP,S6DCが含まれる。
【0079】
<符号化部26>
図9は、図1に示した符号化部26の具体的な構成を示すブロック図である。符号化部26は、ハイパス成分に関する処理部26HP1〜26HP4と、ローパス成分に関する処理部26LP1〜26LP4と、直流成分に関する処理部26DC1〜26DC4とを有して構成されている。
【0080】
図10は、図9から処理部26HP1〜26HP4を抜き出して示すブロック図である。処理部26HP1には、図5に示した処理部25HPから、ハイパス成分の周波数データS6HPが入力される。
【0081】
図11は、周波数データS6HPを示す図である。処理部26HP1は、周波数データS6HPの絶対値部を、上位側の桁範囲R1内の部分データS6HPU(上位データ)と、下位側の桁範囲R2内の部分データS6HPL(下位データ)とに分割する。桁範囲R1は、HD PhotoにおけるNormal Bitに相当し、桁範囲R2は、HD PhotoにおけるFlex Bitに相当する。桁範囲R1のビット幅をNとし、桁範囲R2のビット幅(Model Bits)をMとし、桁範囲R2の最下位桁を第0桁とすると、桁範囲R2の最上位桁は第(M−1)桁となり、桁範囲R1の最下位桁は第M桁となり、桁範囲R1の最上位桁は第(N+M−1)桁となる。HD Photoにおいては、ビット幅Mは適応的に可変である。
【0082】
図10を参照して、処理部26HP2には、処理部26HP1から、部分データS6HPUが入力される。処理部26HP2は、部分データS6HPUをエントロピー符号化することにより、部分データS7HP1を生成して出力する。
【0083】
また、図10を参照して、処理部26HP3には、処理部26HP1から、部分データS6HPLが入力される。
【0084】
図12は、部分データS6HPLを示す図である。処理部26HP3は、部分データS6HPLのうち、Trim Bitsで示される下位ビットを切り捨て、残余の上位ビットをFLEX_REFとして出力する。具体的に、処理部26HP3は、部分データS6HPL(桁範囲R2)のうち、下位側の桁範囲R2L内の部分データS6HPLLを削除するとともに、上位側の桁範囲R2U内の部分データS6HPLUを、エントロピー符号化することなく部分データS7HP2(図10参照)として出力する。桁範囲R2Lのビット幅をTとし、桁範囲R2Uの最下位桁を第0桁とすると、桁範囲R2Uの最上位桁は第(M−T−1)桁となる。HD Photoにおいては、ビット幅Tは適応的に可変である。なお、桁範囲R2のビット幅Mが桁範囲R2Lのビット幅T以下である場合は、処理部26HP3は部分データS7HP2を出力しない。
【0085】
図10を参照して、処理部26HP4には、図5に示した処理部25HPから、周波数データS6HPが入力される。処理部26HP4は、周波数データS6HPの符号部(正又は負)を抽出し、符号データS7HP3として出力する。図11に示した部分データS6HPUのデータ値が「0」でない場合は、符号データS7HP3は、処理部26HP2によって部分データS6HPUがエントロピー符号化される際に、併せて符号化される。一方、図11に示した部分データS6HPUのデータ値が「0」であり、かつ、図12に示した部分データS6HPLUのデータ値が「0」でない場合は、符号データS7HP3は、対応する部分データS7HP2に付属して符号化部26から出力される。
【0086】
ハイパス成分に関して、図1に示したデータS7には、部分データS7HP1,S7HP2及び符号データS7HP3が含まれる。
【0087】
なお、以上ではハイパス成分に関する符号化部26の処理内容について説明したが、ローパス成分及び直流成分に関しても、基本的にはハイパス成分に関する処理と同様の処理がそれぞれ実行される。但し、ハイパス成分に関する処理とは異なり、ローパス成分及び直流成分に関しては、Flex BitにおけるTrim Bitsの切り捨て処理は実行されない。
【0088】
<量子化部24、予測部25、及び符号化部26における処理の例>
図13は、ハイパス成分に関して、量子化部24、予測部25、及び符号化部26における処理の例を示す図である。図13の(A)を参照して、量子化部24の処理部24HP(図4参照)には、「100110111101」なる周波数データS4HPが入力される。ここで、量子化係数Qは「8」に設定されているものとする。この場合、処理部24HPは、周波数データS4HPを3ビットだけ右方向にビットシフトするとともに、下位3ビットを削除する。その結果、図13の(B)に示すように、処理部24HPからは、「100110111」なる周波数データS5HPが出力される。
【0089】
周波数データS5HPは、予測部25の処理部25HP(図5参照)に入力される。ここで、処理部25HPは、予測処理を実行しないものとする。この場合、図13の(C)に示すように、処理部25HPからは、周波数データS5HPに等しい「100110111」なる周波数データS6HPが出力される。
【0090】
周波数データS6HPは、符号化部26の処理部26HP1(図10参照)に入力される。ここで、Model Bitsのビット幅Mが「6」に設定されているものとする。この場合、図13の(D)及び(E)に示すように、処理部26HP1は、周波数データS6HPを、周波数データS6HPの第6桁以上の桁範囲に属する「100」なる部分データS6HPUと、周波数データS6HPの下位6ビットに相当する「110111」なる部分データS6HPLとに分割して出力する。
【0091】
図10を参照して、部分データS6HPUは、処理部26HP2によってエントロピー符号化されることにより、部分データS7HP1として処理部26HP2から出力される。
【0092】
部分データS6HPLは、処理部26HP3に入力される。ここで、Trim Bitsのビット幅Tが「2」に設定されているものとする。この場合、図13の(F)及び(G)に示すように、処理部26HP3は、部分データS6HPLを、部分データS6HPLの第2桁以上の桁範囲に属する「1101」なる部分データS6HPLUと、部分データS6HPLの下位2ビットに相当する「11」なる部分データS6HPLLとに分割する。そして、処理部26HP3は、部分データS6HPLUを部分データS7HP2(図10参照)として出力するとともに、部分データS6HPLLを削除する。
【0093】
図14は、図1に示したメモリ4の記憶内容を示す図である。メモリ4には、図10に示した処理部26HP2から入力されたエントロピー符号(部分データS7HP1)と、処理部26HP3から入力されたFLEX_REF(部分データS7HP2)と、処理部26HP4から入力された符号(符号データS7HP3)とが記憶されている。なお、図14では、全てのFLEX_REFが符号とそれぞれ対を成しているが、符号データS7HP3が部分データS7HP1とともにエントロピー符号化される場合には、FLEX_REFと対を成す符号は存在しないこととなる。
【0094】
<復号化部36>
図15は、図1に示した復号化部36の具体的な構成を示すブロック図である。復号化部36は、ハイパス成分に関する処理部36HP1〜36HP4と、ローパス成分に関する処理部36LP1〜36LP4と、直流成分に関する処理部36DC1〜36DC4とを有して構成されている。
【0095】
図16は、図15から処理部36HP1〜36HP4を抜き出して示すブロック図である。処理部36HP2には、図1,14に示したメモリ4から、部分データS7HP1(エントロピー符号)が入力される。処理部36HP2は、部分データS7HP1をエントロピー復号化することにより、図10,11に示した部分データS6HPUに相当する部分データS8HPU(Normal Bit)を生成して出力する。
【0096】
処理部36HP3には、メモリ4から、部分データS7HP2(FLEX_REF。後述する部分データS8HPLUに等しい。)が入力される。処理部36HP3は、部分データS7HP2の下位に、データ値が「0」ではない部分データ(後述する部分データS8HPLLに等しい。以下「補正データ」と称す。)を付加することにより、部分データS8HPLを生成して出力する。
【0097】
処理部36HP1には、処理部36HP2から部分データS8HPUが入力されるとともに、処理部36HP3から部分データS8HPLが入力される。処理部36HP1は、部分データS8HPUの下位に部分データS8HPLを付加することにより、周波数データS8HPの絶対値部を生成して出力する。
【0098】
処理部36HP4には、メモリ4から、符号データS7HP3が入力される。部分データS8HPUのデータ値が「0」でない場合は、符号データS7HP3は、対応する部分データS7HP1に付属している。一方、部分データS8HPUのデータ値が「0」であり、かつ、部分データS8HPLUのデータ値が「0」でない場合は、符号データS7HP3は、対応する部分データS7HP2に付属している。処理部36HP4は、処理部36HP1から出力された周波数データS8HPの絶対値部に、符号データS7HP3に基づいて符号部(符号ビット)を付加する。これにより、絶対値部と符号部とを有する周波数データS8HPが、復号化部36から出力される。
【0099】
なお、以上ではハイパス成分に関する復号化部36の処理内容について説明したが、ローパス成分及び直流成分に関しても、基本的にはハイパス成分に関する処理と同様の処理がそれぞれ実行される。但し、ハイパス成分に関する処理とは異なり、ローパス成分及び直流成分に関しては、符号化部26によってFlex BitにおけるTrim Bitsの切り捨て処理は実行されないため、復号化部36によってFlex Bitにおける補正データS8HPLLの付加処理は実行されない。
【0100】
図1に示した周波数データS8には、周波数データS8HP,S8LP,S8DCが含まれる。
【0101】
<逆予測部35>
図17は、図1に示した逆予測部35の具体的な構成を示すブロック図である。逆予測部35は、ハイパス成分に関する処理部35HPと、ローパス成分に関する処理部35LPと、直流成分に関する処理部35DCとを有して構成されている。処理部35HPには、図15に示した処理部36HP1から、ハイパス成分の周波数データS8HPが入力される。処理部35LPには、図15に示した処理部36LP1から、ローパス成分の周波数データS8LPが入力される。処理部35DCには、図15に示した処理部36DC1から、直流成分の周波数データS8DCが入力される。
【0102】
直流成分に関し、処理部35DCは、図5に示した処理部25DCと同様の手法により、逆予測処理の実行の要否を決定する。また、逆予測処理を実行する場合には、処理部35DCは、処理部25DCと同様の手法により、予測値データを決定する。逆予測処理を実行する場合、処理部35DCは、処理部36DC1から入力された周波数データS8DCの値に、予測値データの値を加算することにより、周波数データS9DCを生成して出力する。一方、逆予測処理を実行しない場合、処理部35DCは、処理部36DC1から入力された周波数データS8DCを、周波数データS9DCとして出力する。
【0103】
ローパス成分に関し、処理部35LPは、図5に示した処理部25LPと同様の手法により、逆予測処理の実行の要否を決定する。また、逆予測処理を実行する場合には、処理部35LPは、処理部25LPと同様の手法により、予測値データを決定する。逆予測処理を実行する場合、処理部35LPは、処理部36LP1から入力された周波数データS8LPの値に、予測値データの値を加算することにより、周波数データS9LPを生成して出力する。一方、逆予測処理を実行しない場合、処理部35LPは、処理部36LP1から入力された周波数データS8LPを、周波数データS9LPとして出力する。
【0104】
ハイパス成分に関し、処理部35HPは、図5に示した処理部25HPと同様の手法により、逆予測処理の実行の要否を決定する。また、逆予測処理を実行する場合には、処理部35HPは、処理部25HPと同様の手法により、予測値データを決定する。逆予測処理を実行する場合、処理部35HPは、処理部36HP1から入力された周波数データS8HPの値に、予測値データの値を加算することにより、周波数データS9HPを生成して出力する。一方、逆予測処理を実行しない場合、処理部35HPは、処理部36HP1から入力された周波数データS8HPを、周波数データS9HPとして出力する。
【0105】
図1に示した周波数データS9には、周波数データS9HP,S9LP,S9DCが含まれる。
【0106】
<逆量子化部34>
図18は、図1に示した逆量子化部34の具体的な構成を示すブロック図である。逆量子化部34は、ハイパス成分に関する処理部341HP,342HPと、ローパス成分に関する処理部341LP,342LPと、直流成分に関する処理部341DC,342DCとを有して構成されている。
【0107】
処理部341HPには、図17に示した処理部35HPから、ハイパス成分の周波数データS9HPが入力される。処理部341HP,342HPは、周波数データS9HPに量子化係数を乗算することにより、周波数データS10HPを生成して出力する。具体的に、処理部341HPは、周波数データS9HPの下位に、量子化係数で規定される桁数に相当する部分データ(データ値は「0」)を付加して出力する。処理部342HPは、処理部341HPから入力された周波数データを、量子化係数で規定される桁数だけ、その上位側(左方向)に向けてビットシフトすることにより、周波数データS10HPを生成して出力する。
【0108】
同様に、処理部341LPには、図17に示した処理部35LPから、ローパス成分の周波数データS9LPが入力される。処理部341LP,342LPは、周波数データS9LPに量子化係数を乗算することにより、周波数データS10LPを生成して出力する。具体的に、処理部341LPは、周波数データS9LPの下位に、量子化係数で規定される桁数に相当する部分データ(データ値は「0」)を付加して出力する。処理部342LPは、処理部341LPから入力された周波数データを、量子化係数で規定される桁数だけ、その上位側(左方向)に向けてビットシフトすることにより、周波数データS10LPを生成して出力する。
【0109】
同様に、処理部341DCには、図17に示した処理部35DCから、直流成分の周波数データS9DCが入力される。処理部341DC,342DCは、周波数データS9DCに量子化係数を乗算することにより、周波数データS10DCを生成して出力する。具体的に、処理部341DCは、周波数データS9DCの下位に、量子化係数で規定される桁数に相当する部分データ(データ値は「0」)を付加して出力する。処理部342DCは、処理部341DCから入力された周波数データを、量子化係数で規定される桁数だけ、その上位側(左方向)に向けてビットシフトすることにより、周波数データS10DCを生成して出力する。
【0110】
図1に示した周波数データS10には、周波数データS10HP,S10LP,S10DCが含まれる。
【0111】
<ポストフィルタ32及び周波数逆変換部33>
図1を参照して、周波数逆変換部33には、逆量子化部34から周波数データS10が入力される。周波数逆変換部33は、周波数データS10に対して、上記の周波数変換処理(PCT)に対応する周波数逆変換処理を実行することにより、画素信号S11を生成して出力する。
【0112】
ポストフィルタ32には、周波数逆変換部33から画素信号S11が入力される。ポストフィルタ32は、画素信号S11に対して、上記のプレフィルタ処理に対応するポストフィルタ処理を実行することにより、画素信号S12を生成して出力する。HD Photoでは、ポストフィルタ32にポストフィルタ処理を実行させるか否かを、Overlap係数の設定によって任意に選択することができる。
【0113】
図19は、図1に示したポストフィルタ32及び周波数逆変換部33の具体的な構成を示すブロック図である。図19に示すように、HD Photoにおけるデコーダ3は、第1階層のポストフィルタ321及び周波数逆変換部331と、第2階層のポストフィルタ322及び周波数逆変換部332とを備えている。
【0114】
周波数逆変換部331には、図18に示した処理部342HPから、ハイパス成分の周波数データS10HPが入力される。周波数逆変換部332には、図18に示した処理部342LP,342DCから、ローパス成分及び直流成分の周波数データS10LP,S10DCがそれぞれ入力される。周波数逆変換部332は、周波数データS10LP,S10DCに対して周波数逆変換処理を実行することにより、第1階層の直流成分に相当する周波数データS112を生成して出力する。ポストフィルタ322は、周波数データS112に対してポストフィルタ処理を実行することにより、周波数データS122を生成して出力する。周波数データS122は、周波数逆変換部331に入力される。
【0115】
周波数逆変換部331は、周波数データS10HP,S122に対して周波数逆変換処理を実行することにより、画素信号S111を生成して出力する。ポストフィルタ321は、画素信号S111に対してポストフィルタ処理を実行することにより、画素信号S121を生成して出力する。
【0116】
図3を参照して、周波数逆変換部33は、各画素ブロックRAを処理単位領域として、周波数逆変換処理を実行する。また、ポストフィルタ32は、各画素ブロックRBを処理単位領域として、ポストフィルタ処理を実行する。図3に示すように、ポストフィルタ32の処理単位領域である画素ブロックRB1(斜線ハッチングを付している)は、周波数逆変換部33の処理単位領域である4個の画素ブロックRA1〜RA4(砂地ハッチングを付している)にオーバーラップしている。このように、ポストフィルタ32は、周波数逆変換部33の複数の処理単位領域にオーバーラップする領域を処理単位領域として、ポストフィルタ処理を実行する。
【0117】
<色逆変換部31>
図1を参照して、色逆変換部31には、ポストフィルタ32から、例えばYUV色空間の画素信号S12が入力される。色逆変換部31は、YUV色空間の画素信号S12を、例えばRGB色空間の画素信号S13に変換して出力する。
【0118】
<復号化部36、逆予測部35、及び逆量子化部34における処理の例>
図20は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図20の(A)を参照して、復号化部36の処理部36HP1(図16参照)には、「100」なる部分データS8HPUが入力される。
【0119】
図20の(B)を参照して、復号化部36の処理部36HP3には、「1101」なる部分データS8HPLU(部分データS7HP2に等しい)が入力される。ここで、図16に示したように、処理部36HP3はレジスタ41を有している。レジスタ41には、図20の(C)に示すように、「10」なる補正データS8HPLLが格納されている。但し、補正データS8HPLLの値は、「10」(10進数で0.5)に限らず、「01」(10進数で0.25)、「011」(10進数で0.375)、「101」(10進数で0.625)、又はランダム値であっても良い。
【0120】
図20の(D)に示すように、処理部36HP3は、部分データS8HPLUの下位に補正データS8HPLLを付加することにより、「110110」なる部分データS8HPLを生成して出力する。具体的に、処理部36HP3は、部分データS8HPLUの小数部に補正データS8HPLLを付加した後、Trim Bitsのビット幅Tに相当するビット数(この例の場合は2ビット)だけ、左方向にビットシフトすることにより、部分データS8HPLを生成する。
【0121】
部分データS8HPLは、処理部36HP1に入力される。図20の(E)に示すように、処理部36HP1は、部分データS8HPUの下位に部分データS8HPLを付加することにより、「100110110」なる周波数データS8HPを生成して出力する。具体的に、処理部36HP1は、部分データS8HPUの小数部に部分データS8HPLを付加した後、Model Bitsのビット幅Mに相当するビット数(この例の場合は6ビット)だけ、左方向にビットシフトすることにより、周波数データS8HPを生成する。
【0122】
周波数データS8HPは、逆予測部35の処理部35HP(図17参照)に入力される。ここで、処理部35HPは、逆予測処理を実行しないものとする。この場合、図20の(F)に示すように、処理部35HPからは、周波数データS8HPに等しい「100110110」なる周波数データS9HPが出力される。
【0123】
周波数データS9HPは、逆量子化部34の処理部341HP(図18参照)に入力される。ここで、量子化係数Qは「8」に設定されている。従って、図20の(G)に示すように、処理部341HPは、周波数データS9HPの小数部に、「000」なる部分データを付加して出力する。その後、図20の(H)に示すように、処理部342HPは、処理部341HPから入力された周波数データを、量子化係数で規定される桁数(この例の場合は3ビット)だけ、左方向にビットシフトすることにより、周波数データS10HPを生成して出力する。
【0124】
<画像処理装置1による効果>
本実施の形態に係る画像処理装置1によれば、復号化部36の処理部36HP3(図16参照)は、部分データS8HPLUの下位に、データ値が「0」ではない補正データS8HPLLを付加することにより、部分データS8HPLを生成する。つまり、本実施の形態に係る画像処理装置1は、エンコーダ2において削除されたTrim Bitsを、デコーダ3において、データ値が「0」の部分データによって補うのではなく、データ値が「0」ではない補正データS8HPLLによって補う。従って、部分データS8HPLUの下位にデータ値が「0」の部分データが付加される場合と比較すると、統計的に、復号化後の周波数データS8HPのデータ値を、符号化前の周波数データS6HP(図5参照)のデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0125】
<第1の変形例>
上記実施の形態では、符号化部26において削除されるTrim Bits(図13の(G)に示した部分データS6HPLL)のビット幅Tと、復号化部36において付加される補正データS8HPLL(図20の(C)参照)のビット幅とが、互いに等しい場合について説明した。第1の変形例では、Trim Bitsのビット幅Tよりも補正データS8HPLLのビット幅のほうが大きい場合の対応について説明する。
【0126】
図21は、第1の変形例に関して、図1に示した逆量子化部34の具体的な構成を示すブロック図である。処理部342HPの後段に、処理部42が追加されている。その他の構成は、図18に示した構成と同様である。
【0127】
図22は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図22の(A)を参照して、復号化部36の処理部36HP1(図16参照)には、「100」なる部分データS8HPUが入力される。
【0128】
図22の(B)を参照して、復号化部36の処理部36HP3には、「1101」なる部分データS8HPLU(部分データS7HP2に等しい)が入力される。ここで、図16に示したように、処理部36HP3はレジスタ41を有している。レジスタ41には、図22の(C)に示すように、「011」なる補正データS8HPLLが格納されている。この例ではTrim Bitsのビット幅Tは2ビットであるため、補正データS8HPLLのビット幅は、Trim Bitsのビット幅Tよりも1ビットだけ大きい。
【0129】
図22の(D)に示すように、処理部36HP3は、部分データS8HPLUの下位に補正データS8HPLLを付加することにより、「1101011」なる部分データS8HPLを生成して出力する。具体的に、処理部36HP3は、部分データS8HPLUの小数部に補正データS8HPLLを付加した後、Trim Bitsのビット幅Tに相当するビット数(この例の場合は2ビット)だけ、左方向にビットシフトすることにより、部分データS8HPLを生成する。
【0130】
部分データS8HPLは、処理部36HP1に入力される。図22の(E)に示すように、処理部36HP1は、部分データS8HPUの下位に部分データS8HPLを付加することにより、「1001101011」なる周波数データS8HPを生成して出力する。具体的に、処理部36HP1は、部分データS8HPUの小数部に部分データS8HPLを付加した後、Model Bitsのビット幅Mに相当するビット数(この例の場合は6ビット)だけ、左方向にビットシフトすることにより、周波数データS8HPを生成する。
【0131】
周波数データS8HPは、逆予測部35の処理部35HP(図17参照)に入力される。ここで、処理部35HPは、逆予測処理を実行しないものとする。この場合、図22の(F)に示すように、処理部35HPからは、周波数データS8HPに等しい「1001101011」なる周波数データS9HPが出力される。
【0132】
周波数データS9HPは、逆量子化部34の処理部341HP(図21参照)に入力される。ここで、量子化係数Qは「8」に設定されている。従って、図22の(G)に示すように、処理部341HPは、周波数データS9HPの下位に、「000」なる部分データを付加して出力する。その後、図22の(H)に示すように、処理部342HPは、処理部341HPから入力された周波数データを、量子化係数で規定される桁数(この例の場合は3ビット)だけ、左方向にビットシフトすることにより、「1001101011000」なる周波数データS10HP0を生成して出力する。
【0133】
周波数データS10HP0は、処理部42に入力される。処理部42は、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差に相当する桁数だけ、周波数データS10HP0をその最下位桁から順に削除する。この例の場合は、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差は1ビットであるため、処理部42は、図22の(I)に示すように、周波数データS10HP0の最下位桁を削除することにより、「100110101100」なる周波数データS10HPを生成して出力する。
【0134】
第1の変形例に係る画像処理装置1によれば、削除されたTrim Bitsの桁数よりも、付加される補正データS8HPLLの桁数のほうが多い場合であっても、復号化部36の処理部36HP3(図16参照)は、Trim Bitsの桁数に制約を受けることなく、所望のデータ値の補正データS8HPLLを用いて、部分データS8HPLを生成することが可能となる。
【0135】
<第2の変形例>
上記実施の形態では、図20の(G)に示したように、逆量子化部34の処理部341HP(図18参照)は、周波数データS9HPの下位に、データ値が「0」の部分データを付加して出力する例について説明した。ここで、図13の(A)及び(B)に示したように、上記の例では、量子化部24の処理部24HP(図4参照)は、周波数データS4HPの下位3ビットに相当する「101」なる部分データを削除する。従って、量子化処理において削除される部分データ「101」と、逆量子化処理において付加される部分データ「000」との差に起因して、量子化誤差が発生する。第2の変形例では、量子化誤差を抑制するための対策について説明する。
【0136】
図23は、第2の変形例に関して、図1に示した逆量子化部34の具体的な構成を示すブロック図である。処理部341HP,341LP,341DCは、レジスタ43HP,43LP,43DCをそれぞれ有している。その他の構成は、図18に示した構成と同様である。
【0137】
図24は、ハイパス成分に関して、逆量子化部34における処理の例を示す図である。図24の(A)に示すように、逆量子化部34の処理部341HPには、「100110110」なる周波数データS9HPが入力される。また、処理部341HPのレジスタ43HPには、図24の(B)に示すように、「011」なるデータ(以下「補正データ」と称す)S9HPLが格納されている。但し、補正データS9HPLの値は、「011」(10進数で0.375)に限らず、「01」(10進数で0.25)、「10」(10進数で0.5)、「101」(10進数で0.625)、又はランダム値であっても良い。
【0138】
図24の(C)に示すように、処理部341HPは、周波数データS9HPの小数部に補正データS9HPLを付加することにより、周波数データS9HP0を生成して出力する。その後、図24の(D)に示すように、処理部342HPは、処理部341HPから入力された周波数データS9HP0を、量子化係数で規定される桁数(この例の場合は3ビット)だけ、左方向にビットシフトすることにより、「100110110011」なる周波数データS10HPを生成して出力する。
【0139】
図25は、ハイパス成分に関して、逆量子化部34における逆量子化処理を一般化して表した数式を示す図である。この数式において、「W」は補正データS9HPLのビット幅を示しており、「M」は量子化係数Qの仮数部の値を示しており、「E」は量子化係数Qの指数部の値を示している。上記の例では、W=3、M=1、E=3となる。また、数式中の「<<」なる記号は、左方向へのビットシフトを意味している。この数式によると、周波数データS9HPを左方向にWビットだけビットシフトした後に、補正データS9HPLを加算しているが、図24に示したように、周波数データS9HPの下位に補正データS9HPLを加算した後に、周波数データS9HP0の全体を左方向にWビットだけビットシフトしてもよい。
【0140】
第2の変形例に係る画像処理装置1によれば、処理部341HPは、周波数データS9HPの下位に、データ値が「0」ではない補正データS9HPLを付加することにより、周波数データS9HP0を生成する。つまり、第2の変形例に係る画像処理装置1は、エンコーダ2の量子化処理において削除された部分データを、デコーダ3の逆量子化処理において、データ値が「0」の部分データによって補うのではなく、データ値が「0」ではない補正データS9HPLによって補う。従って、周波数データS9HPの下位にデータ値が「0」の部分データが付加される場合(図20)と比較すると、統計的に、逆量子化後の周波数データS10HPのデータ値を、量子化前の周波数データS4HP(図4参照)のデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0141】
なお、以上の説明ではハイパス成分に関する逆量子化部34の処理について説明したが、ローパス成分及び直流成分に関しては、処理部341LP,341DCが、処理部341HPと同様の処理をそれぞれ実行する。
【0142】
また、以上で説明した量子化誤差の補正処理は、Trim Bitsの削除に起因する誤差に対する補正処理が実行される画像処理装置1のみならず、Trim Bitsの削除に起因する誤差に対する補正処理が実行されない画像処理装置にも適用することが可能である。なお、HD Photoにおいては、ハイパス成分に関してのみTrim Bitsが存在し、ローパス成分及び直流成分に関してはTrim Bitsは存在しない。
【0143】
<第3の変形例>
上記第2の変形例では、量子化部24の量子化処理において削除される部分データのビット幅と、逆量子化部34の処理部341HPにおいて付加される補正データS9HPL(図24の(B)参照)のビット幅とが、互いに等しい場合について説明した。第3の変形例では、量子化処理において削除される部分データのビット幅よりも、補正データS9HPLのビット幅のほうが大きい場合の対応について説明する。
【0144】
図26は、第3の変形例に関して、図1に示した逆量子化部34の具体的な構成を示すブロック図である。処理部342HP,342LP,342DCの後段に、処理部44HP,44LP,44DCがそれぞれ追加されている。その他の構成は、図23に示した構成と同様である。
【0145】
図27は、ハイパス成分に関して、逆量子化部34における処理の例を示す図である。図27の(A)に示すように、逆量子化部34の処理部341HPには、「100110110」なる周波数データS9HPが入力される。また、処理部341HPのレジスタ43HPには、図27の(B)に示すように、「011」なる補正データS9HPLが格納されている。
【0146】
図27の(C)に示すように、処理部341HPは、周波数データS9HPの小数部に補正データS9HPLを付加することにより、周波数データS9HP0を生成して出力する。その後、図27の(D)に示すように、処理部342HPは、処理部341HPから入力された周波数データS9HP0を、量子化係数Qで規定される桁数だけ左方向にビットシフトすることにより、周波数データS10HP1を生成して出力する。ここで、図1に示した量子化部24において、量子化係数Qが「4」に設定されているものとする。この場合、図27の(C)及び(D)に示すように、周波数データS10HP1は、周波数データS9HP0を2ビットだけ左方向にビットシフトしたものとなる。なお、この例では、補正データS9HPLのビット幅は、量子化処理によって削除された部分データのビット幅よりも1ビットだけ大きい。
【0147】
周波数データS10HP1は、処理部44HPに入力される。処理部44HPは、量子化処理によって削除された部分データのビット幅(つまり、量子化係数Qの指数部の値に相当するビット幅)と、補正データS9HPLのビット幅との差に相当する桁数だけ、周波数データS10HP1をその最下位桁から順に削除する。この例の場合は、量子化処理によって削除された部分データのビット幅と補正データS9HPLのビット幅との差は1ビットであるため、処理部44HPは、図27の(E)に示すように、周波数データS10HP1の最下位桁を削除することにより、「10011011001」なる周波数データS10HPを生成して出力する。
【0148】
図28は、ハイパス成分に関して、逆量子化部34における処理の他の例を示す図である。図28では、量子化係数Qが2の累乗でない場合の例について説明する。ここでは、量子化係数Qが一例として「15」に設定されているものとする。この場合、量子化係数Qの仮数部の値Mは「15」(2進数で「1111」)となり、指数部の値Eは「0」となる。
【0149】
上記の通り、量子化部24の処理部24HP(図4参照)は、周波数データS4HPを量子化することにより、周波数データS5HPを生成する。量子化係数Qが2の累乗でない場合は、処理部24HPは、周波数データS4HPのうち量子化係数Qで規定される桁数に相当する下位データを削除するのではなく、周波数データS4HPを量子化係数Q(この例の場合は2進数で「1111」)で実際に除算することにより、周波数データS5HPを求める。
【0150】
図28を参照して、図28の(A)〜(C)の処理は、図27の(A)〜(C)の処理と同一である。
【0151】
図28の(C)に引き続き、処理部342HPは、処理部341HPから入力された周波数データS9HP0に対して量子化係数Qを乗算することにより、周波数データS10HP1を生成して出力する。この例の場合は、「100110110011」なる周波数データS9HP0に対して、「1111」なる量子化係数Qが乗算されるため、図28の(D)に示すように、「1001000101111101」なる周波数データS10HP1(但し下位3桁は小数)が得られる。
【0152】
周波数データS10HP1は、処理部44HPに入力される。処理部44HPは、量子化係数Qの指数部の値Eに相当するビット幅と、補正データS9HPLのビット幅Wとの差に相当する桁数だけ、周波数データS10HP1をその最下位桁から順に削除することにより、周波数データS10HP1を生成して出力する。この例の場合は、量子化係数Qの指数部の値Eは「0」であり、補正データS9HPLのビット幅Wは「3」である。従って、処理部44HPは、図28の(E)に示すように、周波数データS10HP1の下位3桁を削除することにより、「1001000101111」なる周波数データS10HPを生成して出力する。
【0153】
図28に示した例では、量子化係数Qの仮数部の値Mは「15」であり、指数部の値Eは「0」であり、補正データS9HPLのビット幅Wは「3」である。従って、図25に示した数式において、E−Wの値は「−3」となる。E−Wの値が負である場合は、数式中の「<<(E−W)」は、右方向へのビットシフトを意味する。E−Wの値が「−3」である場合は、右方向への3ビットのビットシフトを意味する。
【0154】
図28の例と同じ仮定の処理をこの数式を用いて説明する。まず、「100110110」なる周波数データS9HPを左方向に3ビットだけビットシフトすることにより、「100110110000」なる周波数データを得る。次に、この周波数データに「011」なる補正データS9HPLを加算することにより、「100110110011」なる周波数データS9HP0を得る。次に、この周波数データS9HP0に、量子化係数Qの仮数部の値Mである「1111」を乗算することにより、「1001000101111101」なる周波数データS10HP1を得る。次に、この周波数データS10HP1を、右方向へ3ビットだけビットシフトした後、小数部である下位3桁を削除することにより、「1001000101111」なる周波数データS10HPが得られる。
【0155】
なお、説明の簡単化のため記載は省略するが、実施の形態及び他の全ての変形例においても、上記と同様に、量子化係数Qが2の累乗でない場合の対応が可能である。
【0156】
第3の変形例に係る画像処理装置1によれば、量子化処理によって削除された部分データの桁数よりも、付加される補正データS9HPLの桁数のほうが多い場合であっても、逆量子化部34の処理部341HP(図26参照)は、量子化処理によって削除された部分データの桁数に制約を受けることなく、所望のデータ値の補正データS9HPLを用いて、周波数データS9HP0を生成することが可能となる。
【0157】
なお、以上の説明ではハイパス成分に関する逆量子化部34の処理について説明したが、ローパス成分及び直流成分に関しては、処理部341LP,341DCが、処理部341HPと同様の処理をそれぞれ実行する。また、処理部44LP,44DCが、処理部44HPと同様の処理をそれぞれ実行する。
【0158】
また、以上で説明した量子化誤差の補正処理は、Trim Bitsの削除に起因する誤差に対する補正処理が実行される画像処理装置1のみならず、Trim Bitsの削除に起因する誤差に対する補正処理が実行されない画像処理装置にも適用することが可能である。なお、HD Photoにおいては、ハイパス成分に関してのみTrim Bitsが存在し、ローパス成分及び直流成分に関してはTrim Bitsは存在しない。
【0159】
<第4の変形例>
第4の変形例では、上記第1の変形例と上記第3の変形例との組合せについて説明する。つまり、Trim Bitsのビット幅Tよりも補正データS8HPLLのビット幅のほうが大きく、かつ、量子化処理において削除される部分データのビット幅よりも、補正データS9HPLのビット幅のほうが大きい場合の対応について説明する。第4の変形例に係る逆量子化部34の構成は、図26に示した構成と同様である。
【0160】
図29は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図29の(A)を参照して、復号化部36の処理部36HP1(図16参照)には、「100」なる部分データS8HPUが入力される。
【0161】
図29の(B)を参照して、復号化部36の処理部36HP3には、「1101」なる部分データS8HPLU(部分データS7HP2に等しい)が入力される。ここで、図16に示したように、処理部36HP3はレジスタ41を有している。レジスタ41には、図29の(C)に示すように、「011」なる補正データS8HPLLが格納されている。この例ではTrim Bitsのビット幅Tは2ビットであるため、補正データS8HPLLのビット幅は、Trim Bitsのビット幅Tよりも1ビットだけ大きい。
【0162】
図29の(D)に示すように、処理部36HP3は、部分データS8HPLUの下位に補正データS8HPLLを付加することにより、「1101011」なる部分データS8HPLを生成して出力する。具体的に、処理部36HP3は、部分データS8HPLUの小数部に補正データS8HPLLを付加した後、Trim Bitsのビット幅Tに相当するビット数(この例の場合は2ビット)だけ、左方向にビットシフトすることにより、部分データS8HPLを生成する。
【0163】
部分データS8HPLは、処理部36HP1に入力される。図29の(E)に示すように、処理部36HP1は、部分データS8HPUの下位に部分データS8HPLを付加することにより、「1001101011」なる周波数データS8HPを生成して出力する。具体的に、処理部36HP1は、部分データS8HPUの小数部に部分データS8HPLを付加した後、Model Bitsのビット幅Mに相当するビット数(この例の場合は6ビット)だけ、左方向にビットシフトすることにより、周波数データS8HPを生成する。
【0164】
周波数データS8HPは、逆予測部35の処理部35HP(図17参照)に入力される。ここで、処理部35HPは、逆予測処理を実行しないものとする。この場合、図29の(F)に示すように、処理部35HPからは、周波数データS8HPに等しい「1001101011」なる周波数データS9HPが出力される。
【0165】
周波数データS9HPは、逆量子化部34の処理部341HP(図26参照)に入力される。また、処理部341HPのレジスタ43HPには、図29の(G)に示すように、「011」なる補正データS9HPLが格納されている。
【0166】
図29の(H)に示すように、処理部341HPは、周波数データS9HPの下位に補正データS9HPLを付加することにより、「1001101011011」なる周波数データS9HP0を生成して出力する。その後、図29の(I)に示すように、処理部342HPは、処理部341HPから入力された周波数データS9HP0を、量子化係数Qで規定される桁数だけ左方向にビットシフトすることにより、周波数データS10HP1を生成して出力する。ここで、図1に示した量子化部24において、量子化係数Qが「4」に設定されているものとする。この場合、図29の(H)及び(I)に示すように、周波数データS10HP1は、周波数データS9HP0を2ビットだけ左方向にビットシフトしたものとなる。なお、この例では、補正データS9HPLのビット幅は、量子化処理によって削除された部分データのビット幅よりも1ビットだけ大きい。
【0167】
周波数データS10HP1は、処理部44HPに入力される。処理部44HPは、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差に相当する第1の桁数と、量子化処理によって削除された部分データのビット幅と、補正データS9HPLのビット幅との差に相当する第2の桁数との合計の桁数だけ、周波数データS10HP1をその最下位桁から順に削除する。この例の場合は、第1の桁数及び第2の桁数がともに「1」であるため、合計の桁数は「2」となる。従って、処理部44HPは、図29の(J)に示すように、周波数データS10HP1の下位2ビットを削除することにより、「10011010110」なる周波数データS10HPを生成して出力する。
【0168】
第4の変形例に係る画像処理装置1によれば、削除されたTrim Bitsの桁数よりも、付加される補正データS8HPLLの桁数のほうが多い場合であっても、復号化部36の処理部36HP3(図16参照)は、Trim Bitsの桁数に制約を受けることなく、所望のデータ値の補正データS8HPLLを用いて、部分データS8HPLを生成することが可能となる。
【0169】
また、第4の変形例に係る画像処理装置1によれば、量子化処理によって削除された部分データの桁数よりも、付加される補正データS9HPLの桁数のほうが多い場合であっても、逆量子化部34の処理部341HP(図26参照)は、量子化処理によって削除された部分データの桁数に制約を受けることなく、所望のデータ値の補正データS9HPLを用いて、周波数データS9HP0を生成することが可能となる。
【0170】
<第5の変形例>
上記第4の変形例では、補正データS9HPLのデータ値は、量子化誤差を抑制するための所望の補正量に基づいて定められた。つまり、量子化誤差を抑制するための所望の補正量に等しい値が、補正データS9HPLのデータ値として用いられていた。第5の変形例では、補正データS9HPLのデータ値の決定手法に関して、上記第4の変形例とは異なる手法について説明する。第5の変形例に係る逆量子化部34の構成は、図26に示した構成と同様である。
【0171】
図30は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図30の(A)を参照して、復号化部36の処理部36HP1(図16参照)には、「100」なる部分データS8HPUが入力される。
【0172】
図30の(B)を参照して、復号化部36の処理部36HP3には、「1101」なる部分データS8HPLU(部分データS7HP2に等しい)が入力される。ここで、図16に示したように、処理部36HP3はレジスタ41を有している。レジスタ41には、図30の(C)に示すように、「01」なる補正データS8HPLLが格納されている。但し、第5の変形例において、Trim Bitsの削除に起因する誤差を抑制するための所望の補正量は、「011」であるものとする。つまり、この所望の補正量「011」のうち、Trim Bitsのビット幅T(この例の場合は2ビット)に相当する上位ビット「01」が、補正データS8HPLLとして採用される。
【0173】
図30の(D)に示すように、処理部36HP3は、部分データS8HPLUの下位に補正データS8HPLLを付加することにより、「110101」なる部分データS8HPLを生成して出力する。具体的に、処理部36HP3は、部分データS8HPLUの小数部に補正データS8HPLLを付加した後、Trim Bitsのビット幅Tに相当するビット数(この例の場合は2ビット)だけ、左方向にビットシフトすることにより、部分データS8HPLを生成する。
【0174】
部分データS8HPLは、処理部36HP1に入力される。図30の(E)に示すように、処理部36HP1は、部分データS8HPUの下位に部分データS8HPLを付加することにより、「100110101」なる周波数データS8HPを生成して出力する。具体的に、処理部36HP1は、部分データS8HPUの小数部に部分データS8HPLを付加した後、Model Bitsのビット幅Mに相当するビット数(この例の場合は6ビット)だけ、左方向にビットシフトすることにより、周波数データS8HPを生成する。
【0175】
周波数データS8HPは、逆予測部35の処理部35HP(図17参照)に入力される。ここで、処理部35HPは、逆予測処理を実行しないものとする。この場合、図30の(F)に示すように、処理部35HPからは、周波数データS8HPに等しい「100110101」なる周波数データS9HPが出力される。
【0176】
周波数データS9HPは、逆量子化部34の処理部341HP(図26参照)に入力される。また、処理部341HPのレジスタ43HPには、図30の(G)に示すように、「100」なる補正データS9HPLが格納されている。
【0177】
第5の変形例において、補正データS9HPLのデータ値は、Trim Bitsの削除に起因する誤差を抑制するための所望の補正量と、補正データS8HPLLのデータ値とに基づいて定められる。この例の場合、所望の補正量が「011」であり、補正データS8HPLLのデータ値が「01」であるため、補正データS8HPLLのデータ値は所望の補正量よりも「001」だけ小さい。第5の変形例において、補正データS9HPLのデータ値は、この差「001」を補う値に設定される。つまり、補正データS8HPLLと補正データS9HPLとによって所望の補正量「011」が実現されるように、補正データS9HPLのデータ値が決定される。
【0178】
図30の(H)に示すように、処理部341HPは、周波数データS9HPの下位に補正データS9HPLを付加することにより、「100110101100」なる周波数データS9HP0を生成して出力する。周波数データS9HPの下位2ビットである「01」と、補正データS9HPLの最上位ビットである「1」とによって、所望の補正量「011」が実現されていることが分かる。
【0179】
その後、図30の(I)に示すように、処理部342HPは、処理部341HPから入力された周波数データS9HP0を、量子化係数Qで規定される桁数だけ左方向にビットシフトすることにより、周波数データS10HP1を生成して出力する。ここで、図1に示した量子化部24において、量子化係数Qが「4」に設定されているものとする。この場合、図30の(H)及び(I)に示すように、周波数データS10HP1は、周波数データS9HP0を2ビットだけ左方向にビットシフトしたものとなる。なお、この例では、補正データS9HPLのビット幅は、量子化処理によって削除された部分データのビット幅よりも1ビットだけ大きい。
【0180】
周波数データS10HP1は、処理部44HPに入力される。処理部44HPは、量子化処理によって削除された部分データのビット幅と、補正データS9HPLのビット幅との差に相当する桁数だけ、周波数データS10HP1をその最下位桁から順に削除する。この例の場合、処理部44HPは、図30の(J)に示すように、周波数データS10HP1の最下位ビットを削除することにより、「10011010110」なる周波数データS10HPを生成して出力する。
【0181】
第5の変形例に係る画像処理装置1によれば、Trim Bitsが削除されることに起因する誤差に対する所望の補正量が、補正データS8HPLLの桁数によっては実現できない場合であっても、不足分の桁数を補正データS9HPLによって補うことができる。その結果、Trim Bitsが削除されることに起因する誤差に対する所望の補正量を、補正データS8HPLLと補正データS9HPLとによって確実に実現することが可能となる。
【0182】
第5の変形例に係る画像処理装置1では、補正データS9HPLの上位ビットは、補正データS8HPLLの不足分の桁数を補うために使用される。従って、図30の(J)を参照して、補正データS9HPLの最上位ビット「1」は、補正データS8HPLLの最下位ビットとして捉えることができる。この例の場合、補正データS9HPLの最下位ビットは「0」であるため、図30に示した例では、結果として、補正データS9HPLによっては量子化誤差は抑制されていないこととなる。
【0183】
しかし、予測部25が予測処理を実行しない場合、復号化部36から出力される周波数データS8は、予測誤差を含んでいない正確な周波数データである。そのため、正確な周波数データS8に対して、Trim Bitsの削除に起因する誤差を抑制するための第1の補正処理と、量子化誤差を抑制するための第2の補正処理との双方を実行するよりは、第1の補正処理のみを実行して第2の補正処理を実行しないほうが、周波数データS10HP内において第1の補正処理に関する補正値を明確にするという観点からは、都合が良い。しかも、補正データS9HPLは補正データS8HPLLよりも下位の部分データであるため、補正データS9HPLが周波数データS10HPの全体のデータ値に及ぼす影響は小さい。従って、図30に示した例のように第2の補正処理が実行されない結果となっても、特に不都合はない。
【0184】
<第6の変形例>
上記第1の変形例では、予測部25が予測処理を実行しない場合の例について説明した。第6の変形例では、予測部25が予測処理を実行する場合の対応について説明する。上述したように、予測部25は、直流成分、ローパス成分、及びハイパス成分の各々ごとに、所定の条件を満たす場合に予測処理を実行する。図5を参照して、ハイパス成分に関して予測処理を実行する場合、処理部25HPは、処理部24HP(図4参照)から入力された周波数データS5HPの値と、予測値データの値との差分値を求め、周波数データS6HPとして出力する。
【0185】
図31は、図17に示した逆予測部35の処理部35HPの具体的な構成を示すブロック図である。処理部35HPは、処理部351HP〜353HPを有して構成されている。処理部351HPは、上述した条件に従って予測方向を特定することにより、予測値データS50を求めて出力する。
【0186】
予測値データS50は、処理部352HPに入力される。処理部352HPは、予測値データS50に対して、後述する桁合わせの処理を実行することにより、予測値データS51を生成して出力する。
【0187】
予測値データS51は、処理部353HPに入力される。また、処理部353HPには、復号化部36の処理部36HP1(図15参照)から、周波数データS8HPが入力されている。処理部353HPは、周波数データS8HPの値に、予測値データS51の値を加算することにより、周波数データS9HPを生成して出力する。
【0188】
図32は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図32の(A)を参照して、復号化部36の処理部36HP1(図16参照)には、「100」なる部分データS8HPUが入力される。
【0189】
図32の(B)を参照して、復号化部36の処理部36HP3には、「1101」なる部分データS8HPLU(部分データS7HP2に等しい)が入力される。ここで、図16に示したように、処理部36HP3はレジスタ41を有している。レジスタ41には、図32の(C)に示すように、「011」なる補正データS8HPLLが格納されている。この例ではTrim Bitsのビット幅Tは2ビットであるため、補正データS8HPLLのビット幅は、Trim Bitsのビット幅Tよりも1ビットだけ大きい。
【0190】
図32の(D)に示すように、処理部36HP3は、部分データS8HPLUの下位に補正データS8HPLLを付加することにより、「1101011」なる部分データS8HPLを生成して出力する。具体的に、処理部36HP3は、部分データS8HPLUの小数部に補正データS8HPLLを付加した後、Trim Bitsのビット幅Tに相当するビット数(この例の場合は2ビット)だけ、左方向にビットシフトすることにより、部分データS8HPLを生成する。
【0191】
部分データS8HPLは、処理部36HP1に入力される。図32の(E)に示すように、処理部36HP1は、部分データS8HPUの下位に部分データS8HPLを付加することにより、「1001101011」なる周波数データS8HPを生成して出力する。具体的に、処理部36HP1は、部分データS8HPUの小数部に部分データS8HPLを付加した後、Model Bitsのビット幅Mに相当するビット数(この例の場合は6ビット)だけ、左方向にビットシフトすることにより、周波数データS8HPを生成する。周波数データS8HPは、逆予測部35の処理部353HP(図31参照)に入力される。
【0192】
図32の(F)に示すように、逆予測部35の処理部352HP(図31参照)には、例えば「001001001」なる予測値データS50が入力されている。処理部352HPは、補正データS8HPLLのビット幅とTrim Bitsのビット幅Tとの差に相当する桁数だけ、予測値データS50の小数部に、ビット値が「0」のビットを付加することにより、予測値データS51を生成して出力する。これにより、周波数データS8HPと予測値データとの桁合わせが行われる。この例の場合、図32の(G)に示すように、処理部352HPは、予測値データS50の小数部に、ビット値が「0」のビットS52を1ビットだけ付加することにより、桁合わせが成された予測値データS51を生成する。予測値データS51は、逆予測部35の処理部353HP(図31参照)に入力される。
【0193】
図32の(H)に示すように、処理部353HPは、周波数データS8HPと予測値データS51とを加算することにより、「1011111101」なる周波数データS9HPを生成して出力する。
【0194】
周波数データS9HPは、逆量子化部34の処理部341HP(図21参照)に入力される。ここで、量子化係数Qは「8」に設定されている。従って、図32の(I)に示すように、処理部341HPは、周波数データS9HPの下位に、「000」なる部分データを付加して出力する。その後、図32の(J)に示すように、処理部342HPは、処理部341HPから入力された周波数データを、量子化係数Qで規定される桁数(この例の場合は3ビット)だけ、左方向にビットシフトすることにより、「1011111101000」なる周波数データS10HP0を生成して出力する。
【0195】
周波数データS10HP0は、処理部42(図21参照)に入力される。処理部42は、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差に相当する桁数だけ、周波数データS10HP0をその最下位桁から順に削除する。この例の場合は、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差は1ビットであるため、処理部42は、図32の(K)に示すように、周波数データS10HP0の最下位桁を削除することにより、「101111110100」なる周波数データS10HPを生成して出力する。
【0196】
第6の変形例に係る画像処理装置1によれば、上記第1の変形例と同様に、削除されたTrim Bitsの桁数よりも、付加される補正データS8HPLLの桁数のほうが多い場合であっても、復号化部36の処理部36HP3(図16参照)は、Trim Bitsの桁数に制約を受けることなく、所望のデータ値の補正データS8HPLLを用いて、部分データS8HPLを生成することが可能となる。
【0197】
しかも、第6の変形例に係る画像処理装置1によれば、逆予測部35の処理部352HP(図31参照)は、Trim Bitsの桁数と補正データS8HPLLの桁数との差に相当する桁数だけ、予測値データS50の下位に、ビット値が「0」のビットS52を追加することにより、予測値データS51を生成する。従って、周波数データS8HPと予測値データS51との加算において、互いに加算し合うべき桁がずれることを回避することができる。
【0198】
<第7の変形例>
上記第6の変形例では、図32の(I)に示したように、周波数データS9HPの下位に、データ値が「0」の部分データが付加される例について説明した。この場合、量子化処理において削除される部分データと、逆量子化処理において付加される部分データとの差に起因して、量子化誤差が発生する。第7の変形例では、量子化誤差を抑制するための対策について説明する。
【0199】
図33は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図33の(A)〜(H)における処理は、図32の(A)〜(H)における処理と同様である。
【0200】
図33の(H)に示すように、逆量子化部34の処理部341HP(図26参照)には、「1011111101」なる周波数データS9HPが入力される。また、処理部341HPのレジスタ43HPには、「101」なる補正データS9HPLが格納されている。但し、補正データS9HPLの値は、「101」(10進数で0.625)に限らず、「01」(10進数で0.25)、「011」(10進数で「0.375)、「10」(10進数で0.5)、又はランダム値であっても良い。
【0201】
図33の(I)に示すように、処理部341HPは、周波数データS9HPの下位に補正データS9HPLを付加することにより、「1011111101101」なる周波数データS9HP1を生成して出力する。その後、図33の(J)に示すように、処理部342HP(図26参照)は、処理部341HPから入力された周波数データS9HP1を、量子化係数Qで規定される桁数(この例の場合は3ビット)だけ、左方向にビットシフトすることにより、周波数データS10HP1を生成して出力する。
【0202】
周波数データS10HP1は、処理部44HP(図26参照)に入力される。処理部44HPは、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差に相当する桁数だけ、周波数データS10HP1をその最下位桁から順に削除する。この例の場合は、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差は1ビットであるため、処理部44HPは、図33の(K)に示すように、周波数データS10HP1の最下位桁を削除することにより、「101111110110」なる周波数データS10HPを生成して出力する。
【0203】
第7の変形例に係る画像処理装置1によれば、処理部341HPは、周波数データS9HPの下位に、データ値が「0」ではない補正データS9HPLを付加することにより、周波数データS9HP1を生成する。つまり、第7の変形例に係る画像処理装置1は、エンコーダ2の量子化処理において削除された部分データを、デコーダ3の逆量子化処理において、データ値が「0」の部分データによって補うのではなく、データ値が「0」ではない補正データS9HPLによって補う。従って、周波数データS9HPの下位にデータ値が「0」の部分データが付加される場合(図32)と比較すると、統計的に、逆量子化後の周波数データS10HPのデータ値を、量子化前の周波数データS4HP(図4参照)のデータ値に近付けることができる。その結果、デコード画像の画質の向上を図ることが可能となる。
【0204】
<第8の変形例>
上記第7の変形例では、量子化部24の量子化処理において削除される部分データのビット幅と、逆量子化部34の処理部341HPにおいて付加される補正データS9HPL(図33の(I)参照)のビット幅とが、互いに等しい場合について説明した。第8の変形例では、量子化処理において削除される部分データのビット幅よりも、補正データS9HPLのビット幅のほうが大きい場合の対応について説明する。
【0205】
図34は、ハイパス成分に関して、復号化部36、逆予測部35、及び逆量子化部34における処理の例を示す図である。図34の(A)〜(I)における処理は、図33の(A)〜(I)における処理と同様である。
【0206】
図34の(I)に示すように、処理部341HP(図26参照)は、周波数データS9HPの下位に補正データS9HPLを付加することにより、「1011111101101」なる周波数データS9HP1を生成して出力する。その後、図34の(J)に示すように、処理部342HP(図26参照)は、処理部341HPから入力された周波数データS9HP1を、量子化係数Qで規定される桁数だけ左方向にビットシフトすることにより、周波数データS10HP1を生成して出力する。ここで、図1に示した量子化部24において、量子化係数Qが「4」に設定されているものとする。この場合、図34の(I)及び(J)に示すように、周波数データS10HP1は、周波数データS9HP1を2ビットだけ左方向にビットシフトしたものとなる。なお、この例では、補正データS9HPLのビット幅は、量子化処理によって削除された部分データのビット幅よりも1ビットだけ大きい。
【0207】
周波数データS10HP1は、処理部44HP(図26参照)に入力される。処理部44HPは、Trim Bitsのビット幅Tと補正データS8HPLLのビット幅との差に相当する第1の桁数と、量子化処理によって削除された部分データのビット幅と、補正データS9HPLのビット幅との差に相当する第2の桁数との合計の桁数だけ、周波数データS10HP1をその最下位桁から順に削除する。この例の場合は、第1の桁数及び第2の桁数がともに「1」であるため、合計の桁数は「2」となる。従って、処理部44HPは、図34の(K)に示すように、周波数データS10HP1の下位2ビットを削除することにより、「10111111011」なる周波数データS10HPを生成して出力する。
【0208】
第8の変形例に係る画像処理装置1によれば、削除されたTrim Bitsの桁数よりも、付加される補正データS8HPLLの桁数のほうが多い場合であっても、復号化部36の処理部36HP3(図16参照)は、Trim Bitsの桁数に制約を受けることなく、所望のデータ値の補正データS8HPLLを用いて、部分データS8HPLを生成することが可能となる。
【0209】
また、第8の変形例に係る画像処理装置1によれば、量子化処理によって削除された部分データの桁数よりも、付加される補正データS9HPLの桁数のほうが多い場合であっても、逆量子化部34の処理部341HP(図26参照)は、量子化処理によって削除された部分データの桁数に制約を受けることなく、所望のデータ値の補正データS9HPLを用いて、周波数データS9HP1を生成することが可能となる。
【図面の簡単な説明】
【0210】
【図1】本発明の実施の形態に係る画像処理装置の全体構成を示すブロック図である。
【図2】図1に示したプレフィルタ及び周波数変換部の具体的な構成を示すブロック図である。
【図3】画素平面内の一つのマクロブロックを示す図である。
【図4】図1に示した量子化部の具体的な構成を示すブロック図である。
【図5】図1に示した予測部の具体的な構成を示すブロック図である。
【図6】直流成分に関する予測処理を説明するための図である。
【図7】ローパス成分に関する予測処理を説明するための図である。
【図8】ハイパス成分に関する予測処理を説明するための図である。
【図9】図1に示した符号化部の具体的な構成を示すブロック図である。
【図10】図9から一部の処理部を抜き出して示すブロック図である。
【図11】周波数データを示す図である。
【図12】部分データを示す図である。
【図13】ハイパス成分に関して、量子化部、予測部、及び符号化部における処理の例を示す図である。
【図14】図1に示したメモリの記憶内容を示す図である。
【図15】図1に示した復号化部の具体的な構成を示すブロック図である。
【図16】図15から一部の処理部を抜き出して示すブロック図である。
【図17】図1に示した逆予測部の具体的な構成を示すブロック図である。
【図18】図1に示した逆量子化部の具体的な構成を示すブロック図である。
【図19】図1に示したポストフィルタ及び周波数逆変換部の具体的な構成を示すブロック図である。
【図20】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【図21】第1の変形例に関して、図1に示した逆量子化部の具体的な構成を示すブロック図である。
【図22】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【図23】第2の変形例に関して、図1に示した逆量子化部の具体的な構成を示すブロック図である。
【図24】ハイパス成分に関して、逆量子化部における処理の例を示す図である。
【図25】ハイパス成分に関して、逆量子化部における逆量子化処理を一般化して表した数式を示す図である。
【図26】第3の変形例に関して、図1に示した逆量子化部の具体的な構成を示すブロック図である。
【図27】ハイパス成分に関して、逆量子化部における処理の例を示す図である。
【図28】ハイパス成分に関して、逆量子化部における処理の他の例を示す図である。
【図29】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【図30】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【図31】図17に示した処理部の具体的な構成を示すブロック図である。
【図32】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【図33】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【図34】ハイパス成分に関して、復号化部、逆予測部、及び逆量子化部における処理の例を示す図である。
【符号の説明】
【0211】
1 画像処理装置
2 エンコーダ
3 デコーダ
24 量子化部
25 予測部
26 符号化部
34 逆量子化部
35 逆予測部
36 復号化部
41,43HP,43LP,43DC レジスタ
24HP,24LP,24DC,25HP,25LP,25DC,26HP1〜26HP4,26LP1〜26LP4,26DC1〜26DC4,341HP,341LP,341DC,342HP,342LP,342DC,35HP,35LP,35DC,351HP,352HP,353HP,36HP1〜36HP4,36LP1〜36LP4,36DC1〜36DC4,42,44HP,44LP,44DC 処理部
【特許請求の範囲】
【請求項1】
符号化部と復号化部とを備え、
前記符号化部は、
入力された第1のデータを、上位側の桁範囲内の上位データと、下位側の桁範囲内の下位データとに分割する第1の処理部と、
前記上位データに対して符号化処理を実行することにより、第1の部分データを生成して出力する、第2の処理部と、
前記下位データのうち上位側の桁範囲内の第2の部分データを、符号化することなく出力するとともに、前記下位データのうち下位側の桁範囲内の第3の部分データを削除する、第3の処理部と
を有し、
前記復号化部は、
前記第1の部分データに対して復号化処理を実行することにより、第4の部分データを生成する、第4の処理部と、
前記第2の部分データの下位に、データ値が「0」ではない第5の部分データを付加することにより、第6の部分データを生成する、第5の処理部と、
前記第4の部分データの下位に前記第6の部分データを付加することにより、第2のデータを生成して出力する、第6の処理部と
を有する、画像処理装置。
【請求項2】
前記第2のデータに対して逆量子化処理を実行することにより、第3のデータを生成して出力する逆量子化部をさらに備え、
前記逆量子化部は、第7の処理部を有し、
前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第7の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記第3のデータをその最下位桁から順に削除する、請求項1に記載の画像処理装置。
【請求項3】
前記符号化部よりも前段に配置された量子化部と、
前記復号化部よりも後段に配置された逆量子化部と
をさらに備え、
前記量子化部は、入力された第3のデータから、量子化係数で規定される桁数に相当する第7の部分データを削除することにより、前記第1のデータを生成して出力し、
前記逆量子化部は、
前記第2のデータの下位に、データ値が「0」ではない第8の部分データを付加することにより、第4のデータを生成する、第7の処理部と、
前記第4のデータを、前記量子化係数で規定される桁数だけ、その上位側に向けてビットシフトすることにより、第5のデータを生成して出力する、第8の処理部と
を有する、請求項1に記載の画像処理装置。
【請求項4】
前記逆量子化部は、第9の処理部をさらに有し、
前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記第9の処理部は、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数だけ、前記第5のデータをその最下位桁から順に削除する、請求項3に記載の画像処理装置。
【請求項5】
前記逆量子化部は、第9の処理部をさらに有し、
前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多く、かつ、前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記9の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数と、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数との合計の桁数だけ、前記第5のデータをその最下位桁から順に削除する、請求項3に記載の画像処理装置。
【請求項6】
前記第8の部分データの値は、前記第7の部分データが削除されることに起因する誤差に対する所望の補正量に基づいて定められる、請求項3〜5のいずれか一つに記載の画像処理装置。
【請求項7】
前記第8の部分データの値は、前記第3の部分データが削除されることに起因する誤差に対する所望の補正量と、前記第5の部分データの値とに基づいて定められる、請求項3〜5のいずれか一つに記載の画像処理装置。
【請求項8】
前記第2のデータに対して予測値データを加算することにより、第3のデータを生成して出力する逆予測部と、
前記第3のデータに対して逆量子化処理を実行することにより、第4のデータを生成して出力する逆量子化部と
をさらに備え、
前記逆予測部は、第7の処理部を有し、
前記逆量子化部は、第8の処理部を有し、
前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第7の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記予測値データの下位に、ビット値が「0」である桁を追加し、
前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第8の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記第4のデータをその最下位桁から順に削除する、請求項1に記載の画像処理装置。
【請求項9】
入力された第3のデータと、予測値データとの差分値を、前記第1のデータとして出力する予測部と、
前記予測部よりも前段に配置された量子化部と、
前記第2のデータに対して前記予測値データを加算することにより、第4のデータを生成して出力する逆予測部と、
前記逆予測部よりも後段に配置された逆量子化部と
をさらに備え、
前記量子化部は、入力された第5のデータから、量子化係数で規定される桁数に相当する第7の部分データを削除することにより、前記第3のデータを生成して出力し、
前記逆量子化部は、
前記第4のデータの下位に、データ値が「0」ではない第8の部分データを付加することにより、第6のデータを生成する、第7の処理部と、
前記第6のデータを、前記量子化係数で規定される桁数だけ、その上位側に向けてビットシフトすることにより、第7のデータを生成して出力する、第8の処理部と
を有する、請求項1に記載の画像処理装置。
【請求項10】
前記逆量子化部は、第9の処理部をさらに有し、
前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記第9の処理部は、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数だけ、前記第7のデータをその最下位桁から順に削除する、請求項9に記載の画像処理装置。
【請求項11】
前記逆予測部は、第9の処理部を有し、
前記逆量子化部は、第10の処理部をさらに有し、
前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第9の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記予測値データの下位に、ビット値が「0」である桁を追加し、
前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多く、かつ、前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記10の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数と、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数との合計の桁数だけ、前記第7のデータをその最下位桁から順に削除する、請求項9に記載の画像処理装置。
【請求項12】
前記第8の部分データの値は、前記第7の部分データが削除されることに起因する誤差に対する所望の補正量に基づいて定められる、請求項9〜11のいずれか一つに記載の画像処理装置。
【請求項13】
前記第1のデータは、HD Photoにおけるハイパス成分の周波数データである、請求項1〜12のいずれか一つに記載の画像処理装置。
【請求項14】
量子化部と逆量子化部とを備え、
前記量子化部は、入力された第1のデータから、量子化係数で規定される桁数に相当する第1の部分データを削除することにより、第2のデータを生成して出力し、
前記逆量子化部は、
前記第2のデータの下位に、データ値が「0」ではない第2の部分データを付加することにより、第3のデータを生成する、第1の処理部と、
前記第3のデータを、前記量子化係数で規定される桁数だけ、その上位側に向けてビットシフトすることにより、第4のデータを生成して出力する、第2の処理部と
を有する、画像処理装置。
【請求項15】
前記逆量子化部は、第3の処理部をさらに有し、
前記第1の部分データの桁数よりも前記第2の部分データの桁数のほうが多い場合、前記第3の処理部は、前記第1の部分データの桁数と前記第2の部分データの桁数との差に相当する桁数だけ、前記第4のデータをその最下位桁から順に削除する、請求項14に記載の画像処理装置。
【請求項16】
前記第1のデータは、HD Photoにおける、ハイパス成分、ローパス成分、又は直流成分の周波数データである、請求項14又は15に記載の画像処理装置。
【請求項1】
符号化部と復号化部とを備え、
前記符号化部は、
入力された第1のデータを、上位側の桁範囲内の上位データと、下位側の桁範囲内の下位データとに分割する第1の処理部と、
前記上位データに対して符号化処理を実行することにより、第1の部分データを生成して出力する、第2の処理部と、
前記下位データのうち上位側の桁範囲内の第2の部分データを、符号化することなく出力するとともに、前記下位データのうち下位側の桁範囲内の第3の部分データを削除する、第3の処理部と
を有し、
前記復号化部は、
前記第1の部分データに対して復号化処理を実行することにより、第4の部分データを生成する、第4の処理部と、
前記第2の部分データの下位に、データ値が「0」ではない第5の部分データを付加することにより、第6の部分データを生成する、第5の処理部と、
前記第4の部分データの下位に前記第6の部分データを付加することにより、第2のデータを生成して出力する、第6の処理部と
を有する、画像処理装置。
【請求項2】
前記第2のデータに対して逆量子化処理を実行することにより、第3のデータを生成して出力する逆量子化部をさらに備え、
前記逆量子化部は、第7の処理部を有し、
前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第7の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記第3のデータをその最下位桁から順に削除する、請求項1に記載の画像処理装置。
【請求項3】
前記符号化部よりも前段に配置された量子化部と、
前記復号化部よりも後段に配置された逆量子化部と
をさらに備え、
前記量子化部は、入力された第3のデータから、量子化係数で規定される桁数に相当する第7の部分データを削除することにより、前記第1のデータを生成して出力し、
前記逆量子化部は、
前記第2のデータの下位に、データ値が「0」ではない第8の部分データを付加することにより、第4のデータを生成する、第7の処理部と、
前記第4のデータを、前記量子化係数で規定される桁数だけ、その上位側に向けてビットシフトすることにより、第5のデータを生成して出力する、第8の処理部と
を有する、請求項1に記載の画像処理装置。
【請求項4】
前記逆量子化部は、第9の処理部をさらに有し、
前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記第9の処理部は、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数だけ、前記第5のデータをその最下位桁から順に削除する、請求項3に記載の画像処理装置。
【請求項5】
前記逆量子化部は、第9の処理部をさらに有し、
前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多く、かつ、前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記9の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数と、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数との合計の桁数だけ、前記第5のデータをその最下位桁から順に削除する、請求項3に記載の画像処理装置。
【請求項6】
前記第8の部分データの値は、前記第7の部分データが削除されることに起因する誤差に対する所望の補正量に基づいて定められる、請求項3〜5のいずれか一つに記載の画像処理装置。
【請求項7】
前記第8の部分データの値は、前記第3の部分データが削除されることに起因する誤差に対する所望の補正量と、前記第5の部分データの値とに基づいて定められる、請求項3〜5のいずれか一つに記載の画像処理装置。
【請求項8】
前記第2のデータに対して予測値データを加算することにより、第3のデータを生成して出力する逆予測部と、
前記第3のデータに対して逆量子化処理を実行することにより、第4のデータを生成して出力する逆量子化部と
をさらに備え、
前記逆予測部は、第7の処理部を有し、
前記逆量子化部は、第8の処理部を有し、
前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第7の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記予測値データの下位に、ビット値が「0」である桁を追加し、
前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第8の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記第4のデータをその最下位桁から順に削除する、請求項1に記載の画像処理装置。
【請求項9】
入力された第3のデータと、予測値データとの差分値を、前記第1のデータとして出力する予測部と、
前記予測部よりも前段に配置された量子化部と、
前記第2のデータに対して前記予測値データを加算することにより、第4のデータを生成して出力する逆予測部と、
前記逆予測部よりも後段に配置された逆量子化部と
をさらに備え、
前記量子化部は、入力された第5のデータから、量子化係数で規定される桁数に相当する第7の部分データを削除することにより、前記第3のデータを生成して出力し、
前記逆量子化部は、
前記第4のデータの下位に、データ値が「0」ではない第8の部分データを付加することにより、第6のデータを生成する、第7の処理部と、
前記第6のデータを、前記量子化係数で規定される桁数だけ、その上位側に向けてビットシフトすることにより、第7のデータを生成して出力する、第8の処理部と
を有する、請求項1に記載の画像処理装置。
【請求項10】
前記逆量子化部は、第9の処理部をさらに有し、
前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記第9の処理部は、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数だけ、前記第7のデータをその最下位桁から順に削除する、請求項9に記載の画像処理装置。
【請求項11】
前記逆予測部は、第9の処理部を有し、
前記逆量子化部は、第10の処理部をさらに有し、
前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多い場合、前記第9の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数だけ、前記予測値データの下位に、ビット値が「0」である桁を追加し、
前記第3の部分データの桁数よりも前記第5の部分データの桁数のほうが多く、かつ、前記第7の部分データの桁数よりも前記第8の部分データの桁数のほうが多い場合、前記10の処理部は、前記第3の部分データの桁数と前記第5の部分データの桁数との差に相当する桁数と、前記第7の部分データの桁数と前記第8の部分データの桁数との差に相当する桁数との合計の桁数だけ、前記第7のデータをその最下位桁から順に削除する、請求項9に記載の画像処理装置。
【請求項12】
前記第8の部分データの値は、前記第7の部分データが削除されることに起因する誤差に対する所望の補正量に基づいて定められる、請求項9〜11のいずれか一つに記載の画像処理装置。
【請求項13】
前記第1のデータは、HD Photoにおけるハイパス成分の周波数データである、請求項1〜12のいずれか一つに記載の画像処理装置。
【請求項14】
量子化部と逆量子化部とを備え、
前記量子化部は、入力された第1のデータから、量子化係数で規定される桁数に相当する第1の部分データを削除することにより、第2のデータを生成して出力し、
前記逆量子化部は、
前記第2のデータの下位に、データ値が「0」ではない第2の部分データを付加することにより、第3のデータを生成する、第1の処理部と、
前記第3のデータを、前記量子化係数で規定される桁数だけ、その上位側に向けてビットシフトすることにより、第4のデータを生成して出力する、第2の処理部と
を有する、画像処理装置。
【請求項15】
前記逆量子化部は、第3の処理部をさらに有し、
前記第1の部分データの桁数よりも前記第2の部分データの桁数のほうが多い場合、前記第3の処理部は、前記第1の部分データの桁数と前記第2の部分データの桁数との差に相当する桁数だけ、前記第4のデータをその最下位桁から順に削除する、請求項14に記載の画像処理装置。
【請求項16】
前記第1のデータは、HD Photoにおける、ハイパス成分、ローパス成分、又は直流成分の周波数データである、請求項14又は15に記載の画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【公開番号】特開2009−278195(P2009−278195A)
【公開日】平成21年11月26日(2009.11.26)
【国際特許分類】
【出願番号】特願2008−125187(P2008−125187)
【出願日】平成20年5月12日(2008.5.12)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】
【公開日】平成21年11月26日(2009.11.26)
【国際特許分類】
【出願日】平成20年5月12日(2008.5.12)
【出願人】(591128453)株式会社メガチップス (322)
【Fターム(参考)】
[ Back to top ]