(57)【特許請求の範囲】
【請求項１】
画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化装置であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化手段と
を有し、
前記取得手段は、前記処理対象ブロックに対する分割状態に関する情報に基づいて、当該処理対象ブロックのブロックサイズに関する情報を取得する
ことを特徴とする画像符号化装置。
【請求項２】
画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化装置であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化手段と、
前記処理対象ブロックのブロックサイズが前記所定のブロックサイズ以上のサイズである場合に、前記処理対象ブロックの量子化を制御する量子化パラメータを用いて前記処理対象ブロックを量子化し、
前記処理対象ブロックのブロックサイズが前記所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内の複数のブロックの量子化を制御する量子化パラメータが符号化されている場合に、前記処理対象ブロックの前のブロックの量子化に用いた前記量子化パラメータを用いて前記処理対象ブロックを量子化する量子化手段と
を有することを特徴とする画像符号化装置。
【請求項３】
画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化装置であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化手段と
を有し、
前記取得手段は、符号化の対象である前記処理対象ブロックの水平方向の画素数と垂直方向の画素数とを示すブロックサイズの情報を取得し、
前記符号化手段は、前記取得手段で得られた前記ブロックサイズの情報に応じて、前記処理対象ブロックの符号化に用いる量子化パラメータの符号化を行う
ことを特徴とする画像符号化装置。
【請求項４】
前記ブロックサイズを示す情報は、ブロックサイズと対応したインデックスであることを特徴とする請求項３に記載の画像符号化装置。
【請求項５】
画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化装置であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化手段と、
前記処理対象ブロックが分割されているか否かの状態を判定する判定手段と
を有し、
前記符号化手段は、前記処理対象ブロックが分割されていないと判定された場合であって、かつ、前記処理対象ブロックのブロックサイズが所定ブロックサイズ以上であると判断された場合に、前記処理対象ブロックの量子化を制御する前記量子化パラメータを符号化する
ことを特徴とする画像符号化装置。
【請求項６】
画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化装置であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化手段と
を有し、
前記取得手段は、前記処理対象ブロックのブロックサイズと対応したインデックスを取得し、
前記取得手段で得られた前記インデックスに基づいて、前記処理対象ブロックのブロックサイズと、前記所定のブロックサイズとを比較する比較手段を有し、
前記符号化手段は、前記比較手段による比較結果に基づいて、前記処理対象ブロックの符号化に用いる量子化パラメータの符号化を行う
ことを特徴とする画像符号化装置。
【請求項７】
前記符号化手段は、前記比較手段による比較結果に基づいて、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御するために用いられる量子化パラメータであって前記処理対象ブロックの他のブロックの量子化のための量子化パラメータが符号化済みでない場合に、前記処理対象ブロックの符号化に用いる量子化パラメータの符号化を行うことを特徴とする請求項６に記載の画像符号化装置。
【請求項８】
前記符号化手段は、前記比較手段による比較結果に基づいて、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズ以上である場合に、前記処理対象ブロックの量子化を制御するのに用いる量子化パラメータの符号化を行うことを特徴とする請求項６または請求項７に記載の画像符号化装置。
【請求項９】
前記符号化手段は、前記比較手段による比較結果に基づいて、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズより小さいサイズであって、かつ、前記処理対象のブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化済みである場合に、前記処理対象ブロックの他のブロックの量子化に用いられた量子化パラメータを用いて前記処理対象ブロックを量子化することを特徴とする請求項６乃至請求項８のいずれか一項に記載の画像符号化装置。
【請求項１０】
前記所定のブロックサイズは、前記画像の量子化を制御するブロックのブロックサイズであることを特徴とする請求項１乃至請求項８のいずれか一項に記載の画像符号化装置。
【請求項１１】
前記符号化手段は、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されている場合に、前記処理対象ブロックに対する前記量子化制御ブロック内の複数のブロックの量子化を制御する量子化パラメータの符号化を行わないことを特徴とする請求項１乃至請求項１０のいずれか一項に記載の画像符号化装置。
【請求項１２】
前記符号化手段は、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズ以上のサイズである場合に、前記処理対象ブロックの量子化を制御する量子化パラメータを符号化することを特徴とする請求項１乃至請求項１１のいずれか一項に記載の画像符号化装置。
【請求項１３】
さらに、前記画像を符号化する画像符号化手段を有することを特徴とする請求項１乃至請求項１２のいずれか一項に記載の画像符号化装置。
【請求項１４】
前記所定のサイズは、前記画像の量子化を制御する最小のブロックのブロックサイズであることを特徴とする請求項１乃至請求項１３のいずれか一項に記載の画像符号化装置。
【請求項１５】
画像を複数のサイズのブロックに分割し、分割されたブロックごとにパラメータ値に従って画質の制御を行うことにより符号化する画像符号化装置であって、
符号化の対象となる符号化対象ブロックのブロックサイズを取得する手段と、
前記パラメータ値の制御を行う最小ブロックサイズを取得する手段と、
前記パラメータ値を取得する手段と、
前記符号化対象ブロックのブロックサイズが前記最小ブロックサイズ以上であるか否かを判定する手段と、
取得した前記パラメータ値を符号化する手段と
を有することを特徴とする画像符号化装置。
【請求項１６】
複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号装置であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号手段と
を有し、
前記取得手段は、前記処理対象ブロックに対する分割状態に関する情報に基づいて、当該処理対象ブロックのブロックサイズに関する情報を取得する
ことを特徴とする画像復号装置。
【請求項１７】
複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号装置であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号手段と、
前記処理対象ブロックのブロックサイズが前記所定のブロックサイズ以上のサイズである場合に、前記処理対象ブロックの量子化を制御する量子化パラメータを用いて前記処理対象ブロックを逆量子化し、
前記処理対象ブロックのブロックサイズが前記所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内の複数のブロックの量子化を制御する量子化パラメータが復号されている場合に、前記対象ブロックの前のブロックの逆量子化に用いた前記量子化パラメータを用いて前記処理対象ブロックを逆量子化する逆量子化手段と
を有することを特徴とする画像復号装置。
【請求項１８】
複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号装置であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号手段と
を有し、
前記復号手段は、前記取得手段で得られた前記ブロックサイズの情報に応じて、前記処理対象ブロックの復号に用いる量子化パラメータの復号を行う
ことを特徴とする画像復号装置。
【請求項１９】
前記複数のブロックサイズを示す情報は、ブロックサイズと対応したインデックスであることを特徴とする請求項１８に記載の画像復号装置。
【請求項２０】
複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号装置であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号手段と、
前記処理対象ブロックが分割されているか否かの状態を判定する判定手段と
を有し、
前記復号手段は、前記処理対象ブロックが分割されていないと判断された場合であって、かつ、前記処理対象ブロックのブロックサイズが所定ブロックサイズ以上であると判断された場合に、前記処理対象ブロックの量子化を制御する前記量子化パラメータを復号する
ことを特徴とする画像復号装置。
【請求項２１】
複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号装置であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号手段と
を有し、
前記取得手段は、前記処理対象ブロックのブロックサイズと対応したインデックスを取得し、
前記取得手段で得られた前記インデックスに基づいて、前記処理対象ブロックのブロックサイズと、前記所定のブロックサイズとを比較する比較手段を有し、
前記復号手段は、前記比較手段による比較結果に基づいて、前記処理対象ブロックの復号に用いる量子化パラメータの復号を行う
ことを特徴とする画像復号装置。
【請求項２２】
前記復号手段は、前記比較手段による比較結果に基づいて、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御するために用いられる量子化パラメータであって前記処理対象ブロックの他のブロックの量子化のための量子化パラメータが復号済みでない場合に、前記処理対象ブロックの復号に用いる量子化パラメータの復号を行うことを特徴とする請求項２１に記載の画像復号装置。
【請求項２３】
前記復号手段は、前記比較手段による比較結果に基づいて、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズ以上である場合に、前記処理対象ブロックの量子化を制御するのに用いる量子化パラメータの復号を行うことを特徴とする請求項２１または請求項２２に記載の画像復号装置。
【請求項２４】
前記復号手段は、前記比較手段による比較結果に基づいて、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号済みである場合に、前記処理対象のブロックの他のブロックの量子化に用いられた量子化パラメータを用いて前記処理対象ブロックを量子化することを特徴とする請求項２１乃至請求項２３のいずれか一項に記載の画像復号装置。
【請求項２５】
前記比較手段は、前記対象ブロックのブロックサイズが前記所定のブロックサイズ以上であるか否かを判定することを特徴とする請求項２１乃至請求項２４のいずれか一項に記載の画像復号装置。
【請求項２６】
前記所定のブロックサイズは、前記画像の量子化を制御するブロックのブロックサイズであることを特徴とする請求項１８乃至請求項２５のいずれか一項に記載の画像復号装置。
【請求項２７】
前記復号手段は、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されている場合には、前記処理対象ブロックに対する量子化制御ブロック内の複数のブロックの量子化を制御する量子化パラメータの復号を行わないことを特徴とする請求項１８乃至請求項２６のいずれか一項に記載の画像復号装置。
【請求項２８】
前記復号手段は、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズ以上のサイズである場合に、前記処理対象ブロックの量子化を制御する量子化パラメータを復号することを特徴とする請求項１８乃至請求項２７のいずれか一項に記載の画像復号装置。
【請求項２９】
さらに、前記画像を符号化した符号化データを復号する画像復号手段を有することを特徴とする請求項１８乃至請求項２８のいずれか一項に記載の画像復号装置。
【請求項３０】
前記所定のブロックサイズは、前記画像の量子化を制御する最小のブロックのブロックサイズであることを特徴とする請求項１８乃至請求項２９のいずれか一項に記載の画像復号装置。
【請求項３１】
複数のブロックに分割された画像を当該ブロックごとにパラメータ値に従って画質の制御を行うことにより符号化して得られる符号化データを復号する画像復号装置であって、
復号の対象となる復号対象ブロックのブロックサイズを取得する手段と、
前記パラメータ値の制御を行う最小ブロックサイズを取得する手段と、
前記パラメータ値を取得する手段と、
前記復号対象ブロックのブロックサイズが前記最小ブロックサイズ以上であるか否かを判定する手段と、
取得した前記パラメータ値を復号する手段と
を有することを特徴とする画像復号装置。
【請求項３２】
画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化方法であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得工程と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化工程と
を有し、
前記取得工程において、前記処理対象ブロックに対する分割状態に関する情報に基づいて、当該処理対象ブロックのブロックサイズに関する情報を取得する
ことを特徴とする画像符号化方法。
【請求項３３】
画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化方法であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得工程と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化工程と、
前記処理対象ブロックのブロックサイズが前記所定のブロックサイズ以上のサイズである場合に、前記処理対象ブロックの量子化を制御する量子化パラメータを用いて前記処理対象ブロックを量子化し、
前記処理対象ブロックのブロックサイズが前記所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内の複数のブロックの量子化を制御する量子化パラメータが符号化されている場合に、前記処理対象ブロックの前のブロックの量子化に用いた前記量子化パラメータを用いて前記処理対象ブロックを量子化する量子化工程と
を有することを特徴とする画像符号化方法。
【請求項３４】
画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化方法であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得工程と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化工程と
を有し、
前記取得工程において、符号化の対象である前記処理対象ブロックの水平方向の画素数と垂直方向の画素数とを示すブロックサイズの情報を取得し、
前記符号化工程において、前記取得工程において得られた前記ブロックサイズの情報に応じて、前記処理対象ブロックの符号化に用いる量子化パラメータの符号化を行う
ことを特徴とする画像符号化方法。
【請求項３５】
画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化方法であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得工程と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化工程と、
前記処理対象ブロックが分割されているか否かの状態を判定する判定工程と
を有し、
前記符号化工程において、前記処理対象ブロックが分割されていないと判定された場合であって、かつ、前記処理対象ブロックのブロックサイズが所定ブロックサイズ以上であると判断された場合に、前記処理対象ブロックの量子化を制御する前記量子化パラメータを符号化する
ことを特徴とする画像符号化方法。
【請求項３６】
画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化方法であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得工程と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化工程と
を有し、
前記取得工程において、前記処理対象ブロックのブロックサイズと対応したインデックスを取得し、
前記取得工程で得られた前記インデックスに基づいて、前記処理対象ブロックのブロックサイズと、前記所定のブロックサイズとを比較する比較工程を有し、
前記符号化工程において、前記比較工程における比較結果に基づいて、前記処理対象ブロックの符号化に用いる量子化パラメータの符号化を行う
ことを特徴とする画像符号化方法。
【請求項３７】
複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号方法であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得工程と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号工程と
を有し、
前記取得工程において、前記処理対象ブロックに対する分割状態に関する情報に基づいて、当該処理対象ブロックのブロックサイズに関する情報を取得することを特徴とする画像復号方法。
【請求項３８】
複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号方法であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得工程と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号工程と、
前記処理対象ブロックのブロックサイズが前記所定のブロックサイズ以上のサイズである場合に、前記処理対象ブロックの量子化を制御する量子化パラメータを用いて前記処理対象ブロックを逆量子化し、
前記処理対象ブロックのブロックサイズが前記所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内の複数のブロックの量子化を制御する量子化パラメータが復号されている場合に、前記対象ブロックの前のブロックの逆量子化に用いた前記量子化パラメータを用いて前記処理対象ブロックを逆量子化する逆量子化工程と
を有することを特徴とする画像復号方法。
【請求項３９】
複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号方法であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得工程と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号工程と
を有し、
前記復号工程においは、前記取得工程で得られた前記ブロックサイズの情報に応じて、前記処理対象ブロックの復号に用いる量子化パラメータの復号を行う
ことを特徴とする画像復号方法。
【請求項４０】
複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号方法であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得工程と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号工程と、
前記処理対象ブロックが分割されているか否かの状態を判定する判定工程と
を有し、
前記復号工程において、前記処理対象ブロックが分割されていないと判断された場合であって、かつ、前記処理対象ブロックのブロックサイズが所定ブロックサイズ以上であると判断された場合に、前記処理対象ブロックの量子化を制御する前記量子化パラメータを復号する
ことを特徴とする画像復号方法。
【請求項４１】
複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号方法であって、
前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得工程と、
前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号工程と
を有し、
前記取得工程において、前記処理対象ブロックのブロックサイズと対応したインデックスを取得し、
前記取得工程で得られた前記インデックスに基づいて、前記処理対象ブロックのブロックサイズと、前記所定のブロックサイズとを比較する比較工程を有し、
前記復号工程において、前記比較工程における比較結果に基づいて、前記処理対象ブロックの復号に用いる量子化パラメータの復号を行う
ことを特徴とする画像復号方法。
【請求項４２】
コンピュータを、請求項１乃至請求項１５のいずれか一項に記載の画像符号化装置の各手段として機能させるためのプログラム。
【請求項４３】
コンピュータを、請求項１６乃至請求項３１のいずれか一項に記載の画像復号装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラムに関し、特に画像の符号化における画質パラメータの算出、符号挿入に関する画質パラメータ符号化方法および復号方法に関する。
【背景技術】
【０００２】
動画像の圧縮記録方法として、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ（以下Ｈ．２６４）が知られている。Ｈ．２６４は１セグメント地上波デジタル放送などで広く使われている。Ｈ．２６４の特徴は、従来の符号化方式に加えて４×４画素単位で整数変換を用い、イントラ予測が複数用意されている点にある。
【０００３】
ＭＥＰＧ−２、Ｈ．２６４に代表される直交変換と量子化を使った符号化方式では、所定のブロック画像を直交変換・量子化することにより量子化係数データを生成している。このとき、量子化パラメータと呼ばれる画質制御パラメータを使って量子化することにより画質を制御する。具体的には、小さい量子化パラメータ値を使って量子化した場合、画質は向上するが符号量が大きくなり、大きい量子化パラメータ値を使って量子化した場合、画質は低下するが符号量が減ることになる。符号化は、目標符号量に応じて、最適な量子化パラメータ値を選択しながら符号化することになる。これはレート制御とよばれ、ＴＭ−５など様々な方式が提案されている。量子化後、量子化係数データは可変長符号化により符号化係数データが生成される。
【０００４】
また、量子化パラメータも符号化され、量子化パラメータ符号が生成される。例えば、Ｈ．２６４においては、対象ブロックを処理する前のブロックの量子化に用いた量子化パラメータと対象ブロックの量子化に用いた量子化パラメータとの差分値を用いる。本差分値は（ＱＰ＿ＤＥＬＴＡ：Ｑｕａｎｔｉｚａｔｉｏｎ  Ｐａｒａｍｅｔｅｒ  Ｄｅｌｔａ）と呼ばれる。これを計算し、Ｇｏｌｏｍｂ符号化や算術符号化を行うことにより得られるＱＰ＿ＤＥＬＴＡ符号が用いられる。このＱＰ＿ＤＥＬＴＡ符号を、例えば、Ｇｏｌｏｍｂ符号化する場合、差分値が０であっても１ビットの符号が発生する。このようにして生成された符号化係数データと量子化パラメータ符号は復号器に伝送される。復号器は符号化係数データと量子化パラメータ符号を復号して量子化係数データと量子化パラメータを生成し、量子化パラメータを用いて量子化係数データを逆量子化・逆直交変換することによって復号画像を生成する。
【０００５】
ＭＰＥＧ−２やＨ．２６４では、マクロブロックとよばれる画像を格子状に区切った１６×１６の格子ブロックを一つの処理単位としている。直交変換するブロックのサイズを画素単位で表現すると、ＭＰＥＧ−２では８×８、Ｈ．２６４では８×８または、４×４となる。つまり、一つのマクロブロックの中に、複数の直交変換ブロックが存在することになる。ＭＰＥＧ−２やＨ．２６４では、マクロブロック単位で量子化パラメータを制御（レート制御）することができる。つまり、同一のマクロブロックに含まれる直交変換ブロックは、同じ量子化パラメータで、量子化されることになる。一方、Ｈ．２６４の改良技術においては、画像を格子状に区切った格子ブロックをＬＣＴＢ（Ｌａｒｇｅｓｔ  Ｃｏｄｉｎｇ  Ｔｒｅｅ  Ｂｌｏｃｋ）、とよび、そのサイズは６４×６４となっている。ＬＣＴＢは、領域四分木構造を使ってＣＴＢ（Ｃｏｎｄｉｎｇ  Ｔｒｅｅ  Ｂｌｏｃｋ）とよばれるより小さいサイズに分割される。木構造のデータを探索、または、入出力を行うためには走査順を特定する必要がある。さらに、ＣＴＢは、ＴＵ（Ｔｒａｎｓｆｏｒｍ  Ｕｎｉｔ）とよばれる直交変換ブロックを含み、このＴＵも領域四分木構造を使って、より小さいサイズに分割される。それぞれのユニットは、分割フラグを持ち、分割フラグがＴｒｕｅのブロックは、縦横を１／２サイズとする４つの分割ブロックを内包する構造をとり、分割フラグがＦａｌｓｅとなるブロックは、分割ブロックを内包しない代わりにブロックの実データを持つことになる。つまり、非分割のＴＵのみが、画像ブロックの係数データを持つことになり、一つのＬＣＴＢ（格子ブロック）は、階層構造的に複数の異なるサイズの直交変換サイズのブロックを持つことになる。なお、ブロックを分割するかの判定は様々な方法が存在するが、一つの判定方法としては、ラグランジュ乗数を用いてブロックのコストを計算し、よりコストが低いブロックの分割方法を選択するというものがある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１９１７０６号公報
【非特許文献】
【０００７】
【非特許文献１】ＩＳＯ／ＩＥＣ１４４９６−１０：２００４Ｉｎｆｏｒｍａｔｉｏｎ  ｔｅｃｈｎｏｌｏｇｙ−−Ｃｏｄｉｎｇ  ｏｆ  ａｕｄｉｏ−ｖｉｓｕａｌ  ｏｂｊｅｃｔｓ−−Ｐａｒｔ１０：Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ
【非特許文献２】ＩＴＵ−Ｔ  Ｈ．２６４  Ａｄｖａｎｃｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ
【発明の概要】
【発明が解決しようとする課題】
【０００８】
画像を格子状に区切った格子ブロック単位で符号化する画像符号化方法において、格子ブロックサイズが大きく、格子ブロック単位で画質制御をする場合、画質の異なるブロックの境界が目立ってしまうことがあった。
【０００９】
また、格子ブロックをさらに小さい単位に分割して画質を制御する場合、画質パラメータの変化の有無に関係なく画質パラメータを符号化して送るため、画質パラメータの符号がオーバーヘッドになるという問題も生じている。
【００１０】
したがって、本発明は上述した課題を解決するためになされたものであり、適正なブロック単位で画質の制御が可能となり、ブロックの境界を小さくすることによってその境界が目立ちにくい画像を生成することを目的としている。
【課題を解決するための手段】
【００１１】
本発明の画像符号化装置は以下の構成を有する。即ち、  画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化装置であって、前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化手段とを有し、前記取得手段は、前記処理対象ブロックに対する分割状態に関する情報に基づいて、当該処理対象ブロックのブロックサイズに関する情報を取得する。
また、本発明の画像符号化装置は以下の構成を有する。即ち、画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化装置であって、前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化手段と、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズ以上のサイズである場合に、前記処理対象ブロックの量子化を制御する量子化パラメータを用いて前記処理対象ブロックを量子化し、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内の複数のブロックの量子化を制御する量子化パラメータが符号化されている場合に、前記処理対象ブロックの前のブロックの量子化に用いた前記量子化パラメータを用いて前記処理対象ブロックを量子化する量子化手段とを有する。
また、本発明の画像符号化装置は以下の構成を有する。即ち、画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化装置であって、前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化手段とを有し、前記取得手段は、符号化の対象である前記処理対象ブロックの水平方向の画素数と垂直方向の画素数とを示すブロックサイズの情報を取得し、前記符号化手段は、前記取得手段で得られた前記ブロックサイズの情報に応じて、前記処理対象ブロックの符号化に用いる量子化パラメータの符号化を行う。
また、本発明の画像符号化装置は以下の構成を有する。即ち、画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化装置であって、前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化手段と、前記処理対象ブロックが分割されているか否かの状態を判定する判定手段とを有し、前記符号化手段は、前記処理対象ブロックが分割されていないと判定された場合であって、かつ、前記処理対象ブロックのブロックサイズが所定ブロックサイズ以上であると判断された場合に、前記処理対象ブロックの量子化を制御する前記量子化パラメータを符号化する。
本発明の画像符号化装置は以下の構成を有する。即ち、画像を複数のブロックに分割し、分割されたブロックのブロックサイズに基づいて前記画像を符号化する画像符号化装置であって、前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが符号化されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを符号化する符号化手段とを有し、前記取得手段は、前記処理対象ブロックのブロックサイズと対応したインデックスを取得し、前記取得手段で得られた前記インデックスに基づいて、前記処理対象ブロックのブロックサイズと、前記所定のブロックサイズとを比較する比較手段を有し、前記符号化手段は、前記比較手段による比較結果に基づいて、前記処理対象ブロックの符号化に用いる量子化パラメータの符号化を行う。
また、本発明の画像復号装置は以下の構成を備える。即ち、複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号装置であって、前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号手段とを有し、前記取得手段は、前記処理対象ブロックに対する分割状態に関する情報に基づいて、当該処理対象ブロックのブロックサイズに関する情報を取得する。
また、本発明の画像復号装置は以下の構成を備える。即ち、複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号装置であって、前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号手段と、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズ以上のサイズである場合に、前記処理対象ブロックの量子化を制御する量子化パラメータを用いて前記処理対象ブロックを逆量子化し、前記処理対象ブロックのブロックサイズが前記所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内の複数のブロックの量子化を制御する量子化パラメータが復号されている場合に、前記対象ブロックの前のブロックの逆量子化に用いた前記量子化パラメータを用いて前記処理対象ブロックを逆量子化する逆量子化手段とを有する。
また、本発明の画像復号装置は以下の構成を備える。即ち、複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号装置であって、前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号手段とを有し、前記復号手段は、前記取得手段で得られた前記ブロックサイズの情報に応じて、前記処理対象ブロックの復号に用いる量子化パラメータの復号を行う。
また、本発明の画像復号装置は以下の構成を備える。即ち、複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号装置であって、前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号手段と、前記処理対象ブロックが分割されているか否かの状態を判定する判定手段とを有し、前記復号手段は、前記処理対象ブロックが分割されていないと判断された場合であって、かつ、前記処理対象ブロックのブロックサイズが所定ブロックサイズ以上であると判断された場合に、前記処理対象ブロックの量子化を制御する前記量子化パラメータを復号する。
また、本発明の画像復号装置は以下の構成を備える。即ち、複数のブロックに分割された画像を当該ブロックのブロックサイズに基づいて符号化することにより得られる符号化データを復号する画像復号装置であって、前記複数のブロックのうち、処理の対象である処理対象ブロックのブロックサイズに関する情報を取得する取得手段と、前記処理対象ブロックのブロックサイズが所定のブロックサイズより小さいサイズであって、かつ、前記処理対象ブロックが含まれる量子化制御ブロック内のブロックの量子化を制御する量子化パラメータが復号されていない場合に、前記量子化制御ブロック内のブロックの量子化を制御する量子化パラメータを復号し出力する復号手段とを有し、前記取得手段は、前記処理対象ブロックのブロックサイズと対応したインデックスを取得し、前記取得手段で得られた前記インデックスに基づいて、前記処理対象ブロックのブロックサイズと、前記所定のブロックサイズとを比較する比較手段を有し、前記復号手段は、前記比較手段による比較結果に基づいて、前記処理対象ブロックの復号に用いる量子化パラメータの復号を行う。
【発明の効果】
【００１２】
本発明により、適正なブロック単位で画質の制御が可能となり、ブロックの境界を小さくすることによってその境界が目立ちにくい画像の生成が可能となる。また、全ての直交変換ブロックに対して画質制御パラメータ符号を挿入する必要がないため、量子化パラメータ符号の符号量も必要以上に発生しない。
【図面の簡単な説明】
【００１３】
【図１】実施形態１として説明する画像パラメータの符号化方法を示すフローチャートである。
【図２】実施形態２として説明する画像パラメータの復号方法を示すフローチャートである。
【図３】実施形態３として説明する画像パラメータの符号化方法を示すフローチャートである。
【図４】実施形態４として説明する画像パラメータの復号方法を示すフローチャートである。
【図５】実施形態５として説明する画像パラメータの符号化方法を示すフローチャートである。
【図６】実施形態６として説明する画像パラメータの復号方法を示すフローチャートである。
【図７】格子ブロックの分割例を示す図である。
【図８】（ａ）〜（ｄ）格子ブロックの分割状態と分割フラグの例を示す図である。
【図９】本符号化方法および復号方法が実行されるハードウェア構成例を示す図である。
【図１０】本符号化方法が実行されるハードウェア構成の変形例を示す図である。
【図１１】本復号方法が実行されるハードウェア構成の変形例を示す図である。
【図１２】分割ブロックの画質制御の例を示す図である。
【図１３】フレームの符号化処理方法を示すフローチャートである。
【図１４】フレームの復号処理方法を示すフローチャートである。
【図１５】符号化フレームのデータ構造を示す図である。
【図１６】格子ブロック符号化データのデータ構造を示す図である。
【図１７】分割ブロックの符号化方法の詳細を示すフロー図である。
【図１８】分割ブロックの復号方法の詳細を示すフローチャートである。
【図１９】実施形態１として説明する画質パラメータ算出方法を示すフローチャートである。
【図２０】符号化パラメータを付随させる分割ブロックを示す図である。
【図２１】プロファイル・レベルと画質制御最小ブロックサイズの関係を示す図である。
【図２２】画質制御最小ブロックサイズを算出するフローチャートである。
【図２３】（ａ）（ｂ）シーケンスの符号化データの構造を示す図である。
【図２４】実施形態７として説明する画像の符号化方法を示すフローチャートである。
【図２５】実施形態８として説明する画像の復号方法を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、添付の図面を参照して、本願発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１５】
＜実施形態１＞
分割ブロックの符号化方法について図１、図９、図１３、図１７、図１９を参照して説明する。
【００１６】
図９は、本実施形態における符号化方法を含んだ符号化プログラムを実行するための構成を示している。本符号化プログラムはハードディスク装置（以下、ＨＤＤと略す）９０３に記録されており、符号化プログラムの起動とともにＲＡＭ９０２にロードされ、以下で示される各ステップをＣＰＵ９０１が実行して画像符号化処理がなされる。なお、本実施形態では入力画像データはＨＤＤ９０３に格納されており、そこから読みだされ、出力データは、ＨＤＤ９０３に記録されるものとする。
【００１７】
以上の構成において、符号化を行う動作について説明する。図１３は、フレーム全体を符号化するフローを説明したフローチャートである。本実施形態では画面を縦横６４画素からなる格子に区切った格子ブロックで画面ごとに逐次処理する場合を例にとって説明する。各格子ブロックは、画面内でラスタースキャン順に処理が行われるものとする。なお、格子ブロックのサイズは６４に限定されない。
【００１８】
Ｓ１３０１は、画質制御最小ブロックサイズを設定するステップである。Ｓ１３０２は、画質制御最小ブロックサイズを符号化するステップである。Ｓ１３０３は、フレームヘッダー情報を符号化するステップである。Ｓ１３０４は、画面左上の第一の格子ブロックを対象格子ブロックに設定するステップである。Ｓ１３０５は、対象格子ブロックに対して、予測処理を実行し、残差成分生成するステップである。Ｓ１３０６は、対象格子ブロックに対して、残差データを符号化するフローを実行するステップである。Ｓ１３０７は、フレーム内の格子ブロックが全て処理されたかを判定するステップである。Ｓ１３０８は、次に格子ブロックを対象格子ブロックに設定するステップである。
【００１９】
以降、このステップの流れについて説明する。Ｓ１３０１では、画質制御最小ブロックサイズと呼ばれるパラメータを設定する。本実施形態において、画質の制御は直交変換係数を量子化する際に使用する量子化パラメータによって制御されるものとして説明する。また、画質制御最小ブロックサイズは、１６×１６ブロックであるとし、画質制御最小ブロックサイズ情報はその値を１６として説明する。この値は、１６に限定されるものでなく、プログラムの開発者がプログラム内で固定値としたり、ユーザがプログラムのユーザインターフェースを介して指定したり、また、プログラム自身が最適値を算出して設定しても構わない。例えば、入力画像が６４０×４８０よりも大きい場合には画質制御最小ブロックサイズを大きめの値である１６と設定し、解像度が６４０×４８０よりも等しいか小さい場合には質制御最小ブロックサイズを小さめの値である８に設定するなどのように入力画像に応じて、プログラム自身が最適値を算出することもの可能である。
【００２０】
Ｓ１３０２では、ステップＳ１３０１にて設定した画質制御最小ブロックサイズを符号化して画質制御最小ブロックサイズ符号を生成する。例えば画質制御最小ブロックサイズ情報が６４を”０”、以下、画質制御最小ブロックサイズ情報が３２を”１”、１６を”２”、８を”３”とインデックスを付け、これを表す固定長の符号でもよい。
【００２１】
Ｓ１３０３では、フレームヘッダー情報を生成する。また、フレームヘッダー情報の一部として、Ｓ１３０２で生成した画質制御最小ブロックサイズ符号が組み込まれる。なお、本実施例では、画質制御最小ブロックサイズ符号がフレームヘッダーに組み込まれるものとして説明しているが、これに限定はない。シーケンス、ピクチャ、スライス、階層構造上の最上位のブロックに組み込んでもよい。
【００２２】
Ｓ１３０４では、最初の処理の対象となる対象格子ブロックに画面左上の格子ブロックを設定する。
【００２３】
Ｓ１３０５では、対象格子ブロックの周辺を参照することによって予測画像を生成するフレーム内予測や、他のフレームの画素を参照することによって予測画像を生成する動き補償予測を使って予測画像を生成し、対象格子ブロックの画素から残差データを生成する。例えば、前述のＨ．２６４符号化方式で採用されている、イントラ予測や動き補償予測などである。生成されたフレーム内予測モードや動きベクトルなどを符号化し、格子ブロックヘッダ情報符号として出力バッファへ出力する。
【００２４】
Ｓ１３０６では、対象格子ブロックをその対象ブロックとし、図１７で説明するブロック内の残差データの符号化フローを実行する。図１７の詳細は後述する。
【００２５】
Ｓ１３０７で、フレーム内の格子ブロックが全て処理されたかを判定された場合、フレーム全体の符号化処理を終了する。格子ブロックの全ての処理が終わっていない場合にはＳ１３０８を実行する。
【００２６】
Ｓ１３０８では、ラスタースキャン順に次の格子ブロックを対象格子ブロックに設定し、ステップＳ１３０５に戻る。
【００２７】
図１７は、ステップＳ１３０６の詳細なフローチャートであり、階層構造的に複数の異なるサイズ直交変換ブロックを符号化し、画質制御パラメータ符号を含む符号化データを生成する。具体的には、画質制御最小ブロックサイズ、ブロックサイズデータとブロックの残差データから、ブロック分割、直交変換・量子化を行う。さらに、ブロック分割フラグ符号、符号化係数データ、画質パラメータの更新に関するＱＰ＿ＤＥＬＴＡ符号を生成する分割ブロックの符号化の処理を示している。本実施形態において、この階層構造は領域四分木構造をとり、その階層の最上位ブロックは６４×６４の格子ブロックである。分割処理により、その階層が深くなるにしたがい、３２×３２、１６×１６、８×８までのブロックが処理されるものとする。領域四分木構造のおけるブロック分割の構造は、ブロック分割フラグをストリームに埋め込むことにより、復号側に伝送される。
【００２８】
Ｓ１７００は、対象ブロックを分割する場合としない場合のコストを算出するステップである。Ｓ１７０１は、対象ブロックを分割するかを判定するステップである。
【００２９】
Ｓ１７０２は、分割ブロックフラグをｆａｌｓｅとして符号化して、出力するステップである。Ｓ１７０３は、画質パラメータを算出するフローを実行するステップである。Ｓ１７０４は、直交変換・量子化・可変長復号を実行するステップである。Ｓ１７０５は、画質パラメータを符号化するフローを実行するステップである。Ｓ１７０６は、符号化データをソートし、出力バッファへ出力するステップである。Ｓ１７０７は、分割ブロックフラグをｔｒｕｅとして符号化して、出力するステップである。Ｓ１７０８は、画質パラメータを算出するフローを実行するステップである。Ｓ１７０９は、画質パラメータを符号化するフローを実行するステップである。Ｓ１７１０は、内包する分割ブロックの処理を実行するステップである。
【００３０】
以降、このステップの流れについて説明する。Ｓ１７００では、ブロックを分割した場合と分割しない場合のコストを算出する。コストに関しては前述のラグランジュ乗数を用いたコスト計算のほか、画像の特性やその統計量、予測される符号長による算出などである。
【００３１】
Ｓ１７０１では、Ｓ１７００で算出された分割する場合のコストと分割しない場合のコストを比較し、ブロックを分割した場合のコストが分割しない場合より低ければ真と、そうでなければ偽と判定する。Ｓ１７０１の判定結果が偽の場合には、Ｓ１７０２〜Ｓ１７０６が実行され、Ｓ１７０１の判定結果が真の場合には、Ｓ１７０７からＳ１７１０が実行される。
【００３２】
まず、ブロック分割を行わない方のコストが小さい場合について説明する。Ｓ１７０２では、分割ブロックフラグをｆａｌｓｅとして符号化する。１ビットの値０を割り当てて符号化することが一般的であるが、これに限定されない。
【００３３】
Ｓ１７０３では、図１９に示される画質パラメータ算出フローを実行して、画質パラメータを算出する。図１９の詳細は後述する。
【００３４】
Ｓ１７０４では、残差データの直交変換・量子化・可変長符号化を実行し、符号化係数データを生成する。直交変換はＤＣＴ変換等で実現され、量子化は、Ｓ１７０３で算出した画質パラメータを利用して行う。なお、後述する図１９に示される画質パラメータ算出フローにおいて、新しい画質パラメータが算出されなかった場合には、前に量子化で利用した画質パラメータ値をそのまま利用して、量子化を行う。可変長符号化に関してはハフマン符号化、算術符号化等を用いることができる。これらについては前述のＨ．２６４と同様な方式を用いることで実現できる。
【００３５】
Ｓ１７０５では、画質パラメータ符号化フローを実行するステップである。その詳細については図１を用いて後述する。
【００３６】
Ｓ１７０６は、分割フラグ符号、ＱＰ＿ＤＥＬＴＡ符号、符号化係数データを並び替え、この順に出力バッファへ出力するステップである。ただし、出力すべき符号化データが存在しない場合には、存在する符号化データだけを並び替え、出力する。図１６にその符号順の一例が示されている。
【００３７】
続いて、ブロック分割を行う方のコストが小さい場合について説明する。Ｓ１７０７では、分割ブロックフラグをｔｒｕｅとして符号化する。１ビットの値１を割り当てて符号化することが一般的であるが、これに限定されない。
【００３８】
Ｓ１７０８は、後述する図１９に示される画質パラメータの算出フローを実行して、画質パラメータを算出する。
【００３９】
Ｓ１７０９は、Ｓ１７０５と同様に画質パラメータ符号化フローを実行するステップである。その詳細については図１を用いて後述する。
【００４０】
Ｓ１７１０は、内包する全ての分割ブロックに対して、階層的に下の階層に内包される４つの分割ブロック（左上、右上、左下、右下）を対象に、対象ブロックの縦横１／２のサイズとなる分割ブロックを対象ブロックとして本フローを再帰的に実行する。すなわち、分割されることにより、対象ブロックサイズは徐々に小さくなる。この再帰処理は例えばもっとも多くても最小のブロックサイズが８×８になるまで行われるものとする。この再帰処理により、格子ブロックは領域四分木構造的に、分割されていく。例えば、格子ブロックが図７のように分割され、ブロックを分割の有無を示す分割フラグを分割する場合１、分割しない場合０と表現すると、分割ブロックごとに分割フラグは、図８のように表現される。図８の（ａ），（ｂ），（ｃ），（ｄ）は、それぞれ、６４×６４、３２×３２、１６×１６、８×８の階層とそのブロックを示している。数値は分割フラグを、「−」はフラグが不要なことを、（  ）内の数値は、構造順の順番を表している。本実施形態では、構造順とは、ブロック単位では左上、右上、左下、右下の順とし、階層単位では領域四分木構造を前順で走査する順番を指す。分割フラグ符号、ＱＰ＿ＤＥＬＴＡ＿符号、符号化係数データはそれを組として、構造順に格納される。なお、８×８ブロックは、これ以上分割しないため、分割フラグは挿入されない。また、分割フラグが１のブロックは、さらに小さいサイズに分割された分割ブロックが係数データを持つため、それ自体は、係数データは存在しない。また、ストリームは、後述される図１６で示されるように、各分割ブロックの分割フラグ符号、ＱＰ＿ＤＥＬＴＡ符号、係数データを組とした分割ブロックの符号化情報が、構造順にならんだデータ構造を持つことになる。
【００４１】
図１は、ステップＳ１７０５、Ｓ１７０９で実行される画質パラメータ符号化の詳細なフローチャートである。Ｓ１０１は、対象ブロックサイズを取得するステップである。Ｓ１０２は、画質制御最小ブロックサイズを取得するステップである。Ｓ１０３は、ブロックの分割状態を取得するステップである。Ｓ１０４は、対象ブロックサイズが分割されているかを判定するステップである。Ｓ１０５は、対象ブロックサイズが画質制御最小ブロックサイズより大きいか等しいかを判定するステップである。Ｓ１０６は、対象ブロックサイズと画質制御最小ブロックサイズが等しいかを判定するステップである。Ｓ１０７は、画質パラメータを取得するステップである。Ｓ１０８は、画質パラメータを符号化するステップである。
【００４２】
以降、このステップの流れについて説明する。Ｓ１０１では、対象ブロックサイズを取得する。図１７のフローから呼び出された直後は、処理対象ブロックは格子ブロックそのものであり、対象ブロックサイズの値は６４となる。以降、再帰的な呼び出しにより、領域四分木構造の階層が深くなるごとに、そのサイズ値は、３２、１６、８となる。
【００４３】
Ｓ１０２では、外部からの設定等で設定された画質制御最小ブロックサイズを取得する。本実施形態ではこの値は１６である。Ｓ１０３では、符号化する対象ブロックが、図１７のＳ１７００、Ｓ１７０１によって分割されているか否かが決定されており、その分割判定の結果である分割状態情報を取得する。
【００４４】
Ｓ１０４では、取得した対象ブロックの分割状態を参照して、対象ブロックが分割されていると判定された場合にはＳ１０６を実行し、対象ブロックが分割されていないと判定された場合にはＳ１０５を実行する。
【００４５】
Ｓ１０５では、対象ブロックサイズが画質制御最小ブロックサイズより大きいか、または、等しいかを判定する。大きいかまたは等しいと判定された場合にはＳ１０７以降を実行し、そうではないと判定された場合には、画質パラメータの符号化処理を終了する。
【００４６】
Ｓ１０６では、対象ブロックサイズと画質制御最小ブロックサイズが等しいか否かを判定する。等しいと判定された場合にはＳ１０７、Ｓ１０８を実行し、そうでないと判定された場合には、画質パラメータの符号化処理を終了する。
【００４７】
Ｓ１０７では、画質パラメータを取得する。この画質パラメータは、図１７のＳ１７０３またはＳ１７０８で決定されたものである。Ｓ１０８では、画質パラメータを符号化する。本実施形態では、前のブロックの符号化に使用した画質パラメータと、Ｓ１０７で取得された画質パラメータの差分値をＱＰ＿ＤＥＬＴＡ値として求める。求められたＱＰ＿ＤＥＬＴＡ値をＧｏｌｏｍｂ符号化したＱＰ＿ＤＥＬＴＡ符号が画質パラメータ符号となる。また、この画質パラメータは、次にＱＰ＿ＤＥＬＴＡ値を算出するために使用される。
【００４８】
なお、本実実施例では、ＱＰ＿ＤＥＬＴＡ符号をＧｏｌｏｍｂ符号により、符号化する例を説明しているが、これに限定されない。算術符号化や他の可変長符号化を行ってもよい。
【００４９】
図１９は、ステップＳ１７０３、Ｓ１７０８で実行される画質パラメータ算出の詳細なフローチャートである。
Ｓ１９０１は、対象ブロックサイズを取得するステップである。Ｓ１９０２は、画質制御最小ブロックサイズを取得するステップである。Ｓ１９０３は、ブロックの分割状態を取得するステップである。Ｓ１９０４は、対象ブロックが分割されているかを判定するステップである。Ｓ１９０５は、対象ブロックサイズが画質制御最小ブロックサイズより大きいか等しいかを判定するステップである。Ｓ１９０６は、対象ブロックサイズと画質制御最小ブロックサイズが等しいかを判定するステップである。Ｓ１９０７は、画質パラメータを算出するステップである。
【００５０】
以降、このステップの流れについて説明する。Ｓ１９０１では、対象ブロックサイズを取得する。図１７のフローから呼び出された直後は、処理対象ブロックは格子ブロックそのものであり、対象ブロックサイズの値は６４となる。以降、再帰的な呼び出しにより、領域四分木構造の階層が深くなるごとに、そのサイズ値は、３２、１６、８となる。
【００５１】
Ｓ１９０２では、外部からの設定等で設定された画質制御最小ブロックサイズを取得する。本実施形態ではこの値は１６である。
Ｓ１９０３では、符号化する対象ブロックが、図１７のＳ１７００、Ｓ１７０１によって分割されているか否かが決定されており、その分割判定の結果である分割状態情報を取得する。
【００５２】
Ｓ１９０４では、取得した対象ブロックの分割を参照して、対象ブロックが分割されていると判定された場合にはＳ１９０６を実行し、対象ブロックが分割されていないと判定された場合にはＳ１９０５を実行する。
Ｓ１９０５では、対象ブロックサイズが画質制御最小ブロックサイズより大きいか、または、等しいかを判定する。大きいかまたは等しいと判定された場合にはＳ１９０７を実行し、そうでないと判定された場合には、画質パラメータの符号化処理を終了する。
【００５３】
Ｓ１９０６では、対象ブロックサイズと画質制御最小ブロックサイズが等しいか否かを判定し、等しいと判定された場合にはＳ１９０７以降を実行し、そうでないと判定された場合には、画質パラメータの符号化処理を終了する。
Ｓ１９０７では、レート制御処理により、対象ブロックを符号化するための画質パラメータ算出を行う。例えば、ＴＭ５のように、対象ブロックの符号量を予測して、最適な量子化パラメータを算出する。対象ブロックが分割される場合には、内包される分割ブロック全てがレート制御の対象となり、内包される分割ブロックは同一の画質パラメータで符号化されることになる。
【００５４】
本実施形態における符号化方法を用いることにより、図１５および図１６で示されるデータ構造をもったデータが出力される。図１５において、図１３のＳ１３０３でフレームヘッダー情報に画質制御最小ブロックサイズの符号が埋め込まれており、フレーム内のすべての格子ブロックにその制御が行われる。また、図１６において、格子ブロックである６４×６４のブロックの分割フラグに続き、１つ下の階層である３２×３２ブロックの左上のブロックに対する分割フラグが続く。分割が行われなかった場合、続いて当該３２×３２ブロックの画質パラメータ符号であるＱＰ＿ＤＥＬＴＡ符号が続き、３２×３２の残差に関する係数データの符号が続く。続いて、右上の３２×３２ブロックに対する分割フラグが続く。以下、繰り返しになるが、３２×３２ブロックが分割されて１６×１６ブロックとなる場合は分割フラグが分割する状態を表す。それ以上の分割がない場合は、ＱＰ＿ＤＥＬＴＡ符号と係数データの符号が続く。画質制御最小ブロックサイズは１６であるから、１６×１６以下の分割が起こる場合、それより小さなブロックでのＱＰ＿ＤＥＬＴＡ符号の付与は無く、分割フラグと係数データの符号が続くことになる。
【００５５】
このように対象ブロックサイズと画質制御最小ブロックサイズとを比較し、その比較判定結果に応じて、ＱＰ＿ＤＥＬＴＡ符号の符号化の有無を制御する仕組みをもつことにより、画像を格子状に区切ったブロック単位で画質の制御を行えるようになる。ＱＰ＿ＤＥＬＴＡ符号を格子ブロック単位で埋め込む従来の場合（図１２（ａ））に比べて、より細かい単位で画質制御すること（図１２（ｃ））が可能になる。そのため、画質の異なるブロックの境界も狭まり、画質の差を目立ちにくくすることができる。また、直交変換ブロック単位で画質制御を行い、ＱＰ＿ＤＥＬＴＡ符号を埋め込む従来の場合（図１２（ｂ））に比べると、画質制御の単位を選択することができ、全ての直交変換ブロックにＱＰ＿ＤＥＬＴＡ符号を埋め込む必要がないため、必要以上の符号量を増加させることもない。また、画質パラメータを挿入する条件と、同一の条件が成立する場合にのみ、画質パラメータ算出フローが実行されるため、画質パラメータ算出する演算も、必要以上に増加しない。
【００５６】
本実施形態ではブロックを正方形のブロックとして定義したが、例えば８×４のような長方形のブロックでももちろん構わない。また、領域四分木構造を走査するために再帰処理を用いて走査しているが、ループ構造を用いて、走査する実装形態をとることも可能である。
【００５７】
本実施形態における符号化方法は、図１０のように、直交変換器１００３、量子化器１００４、可変長符号化器１００５といった専用のハードウェアを持った構成で行われてもよい。このとき、直交変換、量子化、可変長符号化ステップがＣＰＵにより実行されるのでなく、ＣＰＵが各処理をそれぞれのハードウェアに実行させること以外は、図１７で示されるフローと同様である。
【００５８】
さらに、本実施形態では符号化されたデータはＨＤＤ９０３に記録される例をとって説明したが、これに限定されず、ハードディスク装置以外の記録媒体に記録されても構わないし、通信インターフェース９０５を解して通信回路に送信したり、外部記録装置に接続し、可搬メディアに記録してももちろん構わない。
【００５９】
さらに、本実施形態ではソフトウェアはハードディスク装置に記録される例をとって説明したが、これに限定されず、ＲＯＭ等のハードウェアに記録されていても構わないし、メモリカードやディスク等の可搬メディアに記録されていてももちろん構わない。
【００６０】
さらに、本実施形態では画質パラメータ制御最小ブロックのサイズを表す符号として、分割の回数を符号化したが、これに限定されず、最大のブロックサイズは格子ブロックであることから、画質パラメータ制御最小ブロックのサイズを表すのに６ビットの固定長の符号で表しても良い。さらに、画質パラメータ制御最小ブロックは、正方形に限定されず、縦横個別に設定しても構わない。例えば、縦または、横に方向に並ぶブロックを組にして、その組にしたブロック単位で、画質パラメータを制御することも可能であり、その場合は、画質パラメータ制御最小ブロックのサイズを縦横個別に設定することも有効である。
【００６１】
＜実施形態２＞
画像の復号方法について図２、図９、図１４、図１８を参照して説明する。
図９は、本実施形態における復号方法を含んだ復号プログラムを実行するための構成を示しており、ＨＤＤ９０３に記録された復号プログラムを、ＲＡＭ９０２にロードし、後述するフローの各ステップをＣＰＵ９０１が実行することにより復号処理がなされる。なお、入力符号データはＨＤＤ９０３から読みだされ、復号画像はＶＲＡＭ９０４内の画像出力バッファを介して、ディスプレイに出力されるものとする。なお、復号処理はブロックごとに行われるが、各ブロックを復号することにより得られたブロックの復号画像は、画像出力バッファに出力される際に、フレームの適正な位置にコピーされ、１フレーム分のブロックの復号処理が終了した時点で、出力バッファに１フレームの画像が生成されるものとする。
【００６２】
入力される符号化データは実施形態１で生成された符号化データとして説明する。
図１４は、入力された符号化データを復号処理するフローを示したものである。各格子ブロックは、ラスタースキャン順に復号される。Ｓ１４０１は、フレームヘッダー情報を復号して取得するステップである。Ｓ１４０２は、画質制御最小ブロックサイズを復号して取得するステップである。Ｓ１４０３は、符号化データの復号結果を最初に第一の対象格子ブロック格納するように設定するステップである。Ｓ１４０４は、対象格子ブロックの予測モードを復号し、予測モードに従って、予測画像を生成するステップである。Ｓ１４０５は、対象格子ブロックをその対象ブロックとして分割ブロック復号フローを実行するステップである。Ｓ１４０６は、対象格子ブロックの予測画像データと残差データを加算し、画像出力バッファへ出力するステップである。Ｓ１４０７は、フレーム内の格子ブロックが全て処理されたかを判定するステップである。Ｓ１４０８は、次に格子ブロックを対象格子ブロックに設定するステップである。
【００６３】
以降、このステップの流れについて説明する。
Ｓ１４０１では、画質制御最小ブロックサイズと呼ばれるパラメータを、フレームのヘッダ情報から取得する。本実施例では、画質制御最小ブロックサイズは、フレームのヘッダ情報に含まれるものとして説明しているが、これに限定はない。あらかじめ決められているデータフォーマットに従って、画質制御最小ブロックサイズを、シーケンス、ピクチャ、スライス、階層構造上の最上位のブロックのヘッダ情報から取得する構成をよってもよい。
【００６４】
Ｓ１４０２では、画質制御最小ブロックサイズを復号して取得する。実施形態１によれば、画質制御最小ブロックサイズはインデックスとして符号化されており、そのサイズは１６である。Ｓ１４０３では、対象格子ブロックとして画面左上の格子ブロックを設定する。
【００６５】
Ｓ１４０４では、対象格子ブロックの符号化データの復号を行う。復号によって、実施形態１で生成されたフレーム内予測のモードや動きベクトルなどを復号する。イントラ符号化の場合は、復号されたフレーム内予測モードに基づいて、周囲の復号済みの画素を参照して予測画像データを生成する。インター符号化の場合は動きベクトルに基づいて動き補償を行って予測画像データを生成する。
【００６６】
Ｓ１４０５では、格子ブロックをその対象ブロックとして図１８の説明で後述する分割ブロックの復号フローを実行する。分割ブロックの復号は階層化されているため、ブロックの分割フラグを復号し、分割されたブロックの状態を判定しながら、復号を行い、画質パラメータ及び予測との残差データを生成する。
【００６７】
Ｓ１４０６では、ステップＳ１４０４で生成された予測画像データとステップＳ１４０５で残差データを加算し、対象格子ブロック復号画像を生成して、画像出力バッファへ出力する。
【００６８】
Ｓ１４０７では、フレーム内の格子ブロックが全て復号処理されたかを判定する。例えば、復号された格子ブロックの個数等を計数することで実現される。もし、全ての復号処理されていなければ、ステップＳ１４０８に進む。全ての格子ブロックが復号されたのであれば、フレームの復号処理を終了する。
Ｓ１４０８では、ラスタースキャン順に次の復号結果を次の対象格子ブロックとする。
【００６９】
図１８は、ステップＳ１４０５の詳細なフローチャートであり、階層構造的に複数の異なるサイズ直交変換ブロックを復号するフローである。具体的には、ブロック分割フラグ符号、ＱＰ＿ＤＥＬＴＡ符号から、可変長符号化係数データを、可変長復号、逆直交変換・逆量子化を行って、残差データを生成するフローを示している。本実施形態において、この階層構造は領域四分木構造をとり、その階層の最上位ブロック（第一の処理対象ブロック）は６４×６４の格子ブロックである。
【００７０】
Ｓ１８０１は、対象ブロックのブロック分割フラグを復号するステップである。Ｓ１８０２は、画質パラメータ復号フローを実行するステップである。Ｓ１８０３は、復号する対象ブロックが分割されているかを判定するステップであるＳ１８０４は、可変長復号・逆量子化・逆直交変換を実行するステップである。Ｓ１８０５は、内包する分割ブロックの復号処理を再帰的に実行するステップである。
【００７１】
以降、このステップの流れについて説明する。１８０１では、図１６に示されるような分割ブロックフラグを復号して、対象となっているブロックが再分割されているかどうかの情報を取得する。復号は四分木の階層構造に従って行われる。これにより、各ブロックの分割状況を得ることができる。
【００７２】
Ｓ１８０２では、図２の説明で後述する画質パラメータ復号フローを実行する。対象ブロックを復号するために逆量子化で用いる画質パラメータを復号する。
Ｓ１８０３では、復号された分割ブロックフラグを参照して、対象ブロックが分割されているか否かを判定し、判定結果が分割されていないとされた場合にはＳ１８０４を実行し、分割されたとされた場合にはＳ１８０５を実行する。
【００７３】
Ｓ１８０４では、対象ブロックの符号化係数データに対して、可変長復号、逆量子化、逆直交変換を実施して残差データを生成する。可変長復号に関しては実施形態１で用いられた符号化方式に従って復号を行い、ブロックに含まれている量子化された係数データを取得する。逆量子化には、Ｓ１８０２で復号した画質パラメータが用いられるが、Ｓ１８０２で画質パラメータを新たに復号しない場合には、前の復号した画質パラメータをそのまま用いて、逆量子化がなされる。逆量子化によって得られた係数データは逆直交変換によって、残差データを生成する。
【００７４】
Ｓ１８０５は、復号されたブロック分割フラグが階層的に下の階層の存在を示した時、ステップＳ１８０１からステップＳ１８０５までを再帰的に処理を行い、分割の最小のブロックサイズに至るまでの残差データを復元する。
【００７５】
画質パラメータ復号するステップＳ１８０２の詳細を図２を用いて説明する。
【００７６】
図２は、階層構造的に複数の異なるサイズの直交変換ブロックの画質パラメータを復号するフローである。Ｓ２０１は、対象ブロックサイズを取得するステップである。Ｓ２０２は、画質制御最小ブロックサイズを取得するステップである。Ｓ２０３は、ブロック分割状態を取得するステップである。Ｓ２０４は、対象ブロックが分割されているかを判定するステップである。Ｓ２０５は、対象ブロックサイズが画質制御最小ブロックサイズよりも大きいか等しいかを判定するステップである。Ｓ２０６は、対象ブロックサイズが画質制御最小ブロックサイズと等しいかを判定するステップである。Ｓ２０７は、画質パラメ―タを復号するステップである。
【００７７】
以降、このステップの流れについて説明する。Ｓ２０１では、対象ブロックサイズを取得する。図１８のフローから呼び出された直後は、処理対象ブロックは格子ブロックそのものであり、対象ブロックサイズの値は６４となる。以降、分割フラグを復号し、その状態によって、そのサイズ値は、３２、１６、８となる。
【００７８】
Ｓ２０２では、画質制御最小ブロックサイズを取得するステップである。本実施形態では、図１４のステップＳ１４０２で復号された画質制御最小ブロックサイズを取得する。
Ｓ２０３は、ブロック分割状態を取得する。本実施形態では、図１８でのＳ１８０１で復号した分割ブロックフラグの値を取得する。
【００７９】
Ｓ２０４は、ブロック分割フラグの値を判定する。実施形態１で示したものと同様の符号割り当てを用いれば、分割されていないことを表す“０”であればＳ２０５を実行し、分割されていることを表す“１”であればＳ２０６を実行する。
【００８０】
Ｓ２０５は、対象ブロックサイズがステップ画質制御最小ブロックサイズよりも大きいまたは等しいか否かを判定する。対象ブロックサイズが画質制御最小ブロックサイズよりも大きいまたは等しい場合はＳ２０７を実行し、そうでなければ、処理を終了する。
【００８１】
Ｓ２０６は、対象ブロックサイズが画質制御最小ブロックサイズよりも等しいか否かを判定する。対象ブロックサイズが画質制御最小ブロックサイズよりも等しい場合はＳ２０７を実行し、そうでなければ、処理を終了する。
【００８２】
Ｓ２０７は、画質パラメ―タ符号を復号する。本実施形態では、ＱＰ＿ＤＥＬＴＡ符号をＧｏｌｏｍｂ復号し、ＱＰ＿ＤＥＬＴＡ符号生成後、前のブロックの符号化に使用した画質パラメータにＱＰ＿ＤＥＬＴＡ値を加算して、画質パラメータを生成する。
【００８３】
本実施形態では、画質パラメータを符号化した対象ブロックサイズと画質制御最小ブロックサイズとの比較条件と同じ条件で、画質パラメータの復号の有無を制御している。このようにして、実施形態１で示した符号化方法で生成したストリームを復号することが可能となる。なお、本実施例では、ＱＰ＿ＤＥＬＴＡ符号をＧｏｌｏｍｂ符号により、復号する例を説明しているが、これに限定されない。データ形式によっては、算出復号や他の可変長復号を行う構成もとりうる。
【００８４】
本実施形態における復号方法は、図９の代わりに、図１１のように、逆直交変換器１１０３、逆量子化器１１０４、可変長復号器１１０５といった専用のハードウェアを持った構成状で行われてもよい。このとき、逆直交変換、逆量子化、可変長復号化ステップがＣＰＵ１１０１により実行されるのでなく、ＣＰＵ１１０１が各処理をそれぞれのハードウェアに実行させること以外は、図１８で示されるフローと同様である。
【００８５】
さらに、本実施形態では符号化されたデータがハードディスク装置に記録される例をとって説明したが、これに限定されず、通信インターフェース１００６を解して通信回路から受信したり、外部記録装置に接続し、可搬メディアから入力しても構わない。
【００８６】
さらに、本実施形態ではソフトウェアはハードディスク装置に記録される例をとって説明したが、これに限定されず、ＲＯＭ等のハードウェアに記録されていても構わないし、メモリカードやディスク等の可搬メディアに記録されていてももちろん構わない。
【００８７】
＜実施形態３＞
画質パラメータの符号化方法について図３を参照して説明する。なお、特に記述がない場合、その構成および各ステップの動作は、実施形態１と同様とする。本実施形態では、対象ブロックを内包し、かつ、画質制御最小ブロックサイズと同一のサイズであるブロックを画質制御最小ブロックと定義する。また、画質制御最小ブロック内に画質パラメータが符号化されているかを示す情報を画質パラメータ符号化状態情報と定義する。画質パラメータ符号化状態情報は、画質制御最小ブロック内で、第一の分割ブロックに対して、画質パラメータの符号化がなされてかを示す情報と同義である。
【００８８】
図３は、画質パラメータの符号化フローを説明したものである。図３は、図１７のステップＳ１７０４、Ｓ１７０９で実行される画質パラメータ符号化の詳細なフローチャートであり、図１で示される画質パラメータの符号化フローの代わりに実行される。Ｓ３０１は、画質パラメータ符号化状態情報を取得するステップである。Ｓ３０２は、画質パラメータ符号化状態情報を参照して、画質制御最小ブロック内にすでに画質パラメータが符号化されているか否かを判定するステップである。
【００８９】
以降、このステップの流れについて説明する。Ｓ１０４では、実施形態１と同様に、取得した対象ブロックの分割状態、すなわちこれ以上四分木による分割がされているか否かを参照する。対象ブロックが分割されていると判定された場合には、実施形態１とは異なり、処理を終了する。対象ブロックが分割されていないと判定された場合には実施形態１と同様にＳ１０５を実行する。
【００９０】
Ｓ１０５では、実施形態１と同様に、対象ブロックサイズが画質制御最小ブロックサイズより大きいか、または、等しいかを判定する。大きいかまたは等しいと判定された場合には実施形態１と同様にＳ１０７、Ｓ１０８を実行し、そうではないと判定された場合には、Ｓ３０１とＳ３０２の処理を実行する。
【００９１】
Ｓ３０１では、画質パラメータ符号化状態情報を取得する。本実施形態では画質制御最小ブロックサイズは１６であるため、対象ブロックが８ｘ８左上ブロックならば、画質パラメータが符号化されていないという情報を取得する。対象ブロックが８ｘ８右上、８ｘ８左下、８ｘ８右下ならば、８ｘ８左上ブロックですでに画質パラメータ符号化されているので、画質パラメータは符号化されているという情報を取得することになる。
【００９２】
Ｓ３０２では、画質パラメータ符号化状態情報を参照して、画質制御最小ブロック内ですでに符号化パラメータが符号化されているか否かを判定する。判定結果が符号化されていなければＳ１０７とＳ１０８を実行し、符号化されていれば画質パラメータの符号化処理を終了する。
【００９３】
本実施形態と実施形態１との違いについて説明する。実施形態１は、「対象ブロックが分割され、かつ、対象ブロックサイズと画質制御最小ブロックサイズが等しい場合」に、対象ブロック（分割ブロックの集合）に付随するデータとして、ＱＰ＿ＤＥＬＴＡ符号を埋め込んでいた。本実施形態では、「対象ブロックが分割され、かつ、対象ブロックサイズと画質制御最小ブロックサイズが等しい場合」に、対象ブロック内の第一ブロックである左上のブロックにＱＰ＿ＤＥＬＴＡ符号を付加する形となる。本実施形態では、画質制御最小ブロックサイズは１６である。そのため、図２０のように分割されたブロックをストリームを構成する場合には、網掛けで示したブロック０，１，７，５，６，８，９，１３，１４，１５番のブロックに対応する可変長符号化係数データの直前に、ＱＰ＿ＤＥＬＴＡ符号が挿入されることになる。つまり、１６×１６以上のブロック、または、１６×１６ブロックが分割されている場合には、１６×１６ブロックを分割した第一のブロックにあたる左上の８×８のブロックに対してＱＰ＿ＤＥＬＴＡ符号が付随することになる。
【００９４】
このように、フローやデータ構造の考え方に違いはあるものの、実施形態１と同様の効果を得ることができる。また、量子化係数に０以外の値が存在しない場合は画質パラメータを符号化しないと構成をとってもよい。このときは、前記対象ブロック内の左上のブロックに、量子化係数に０以外の値が存在しない場合は、構造順に次の量子化係数に０以外の値が存在する第一の分割ブロックに対して、画質パラメータを付随させることになる。本実施形態のＳ３０１では、符号化対象ブロックの大きさと位置から、画質パラメータ符号化状態情報を算出し、取得するという構成をとっているが、これに限定されない。例えば、画質制御最小ブロックサイズ内で符号化パラメータが符号化されたかを示すフラグを設定し、画質制御最小ブロックの分割処理を実行するごとにフラグをリセット、符号化パラメータを符号化すごとにフラグをセットするようにしてもよい。画質パラメータ符号化状態情報を取得する際に、フラグがリセットされていれば符号化されていないという情報を取得し、フラグがセットされていれば符号化パラメータは符号化されているという情報を取得するという構成になる。
【００９５】
＜実施形態４＞
画質パラメータの復号方法について図４を参照して説明する。なお、とくに、記述がない場合、その構成および各ステップの動作は、実施形態２と同様とする。本実施形態では、対象ブロックを内包し、かつ、画質制御最小ブロックサイズと同一のサイズであるブロックを画質制御最小ブロックと定義する。また、画質制御最小ブロック内に画質パラメータが復号されているかを示す情報を画質パラメータ復号状態情報と定義する。
【００９６】
図４は、画質パラメータの復号フローを説明したものである。図４は、図１８のステップＳ１８０２で実行される画質パラメータ復号の詳細なフローチャートであり、図２で示される画質パラメータの復号フローの代わりに実行される。Ｓ４０１は、画質パラメータ復号状態情報を取得するステップである。Ｓ４０２は、画質パラメータ復号状態情報を参照して、画質制御最小ブロック内にすでに画質パラメータが復号されているか否かを判定するステップである。
【００９７】
以降、このステップの流れについて説明する。Ｓ２０４は、ブロック分割フラグの値を判定する。分割されていないことを表す“０”であれば実施形態２と同様にＳ２０５を実行し、分割されていることを表す“１”であれば実施形態２とは異なり、画質パラメータの復号処理を終了する。
【００９８】
Ｓ２０５では、実施形態２と同様に対象ブロックサイズが画質制御最小ブロックサイズより大きいか、または、等しいかを判定する。大きいか、または、等しいと判定された場合にはステップＳ２０７に進み、実施形態２と同様に画質パラメ―タ符号を復号する。そうでないと判定された場合には、Ｓ４０１とＳ４０２を実行する。
【００９９】
Ｓ４０１は、画質パラメータ復号状態情報を取得する。本実施形態では、画質制御最小ブロックサイズは１６であるため、対象ブロックが８ｘ８左上ブロックならば画質パラメータが復号されていないという情報を取得する。対象ブロックが８ｘ８右上、８ｘ８左下、８ｘ８右下ならば、８ｘ８左上ブロックですでに画質パラメータ復号されているので、画質パラメータは復号されているという情報を取得することになる。
【０１００】
Ｓ４０２は、画質パラメータ復号状態情報を参照して、画質制御最小ブロック内にすでに画質パラメータが復号されているか否かを判定する。復号されていなければＳ２０７を実行し、復号されていれば画質パラメータの復号処理を終了する。
【０１０１】
本実施形態では、画質パラメータを符号化した対象ブロックサイズと画質制御最小ブロックサイズとの比較条件、画質制御最小ブロック内にすでに画質パラメータが復号されているか否かを判定する判定条件で、実際に画質パラメータの復号を実行するかを制御している。このような形態をとることにより、実施形態３で示した符号化方法で生成したストリームを復号することが可能となる。また、量子化係数に０以外の値が存在しない場合は画質パラメータを符号化しない構成を符号化方法が採用した場合には、同じく復号方法でもこの方法を採用することができる。このときは、前記対象ブロック内の左上のブロックに、量子化係数に０以外の値が存在しない場合は、構造順に次の量子化係数に０以外の値が存在する第一の分割ブロックで画質パラメータを復号することになる。
【０１０２】
本実施形態の図４のＳ４０１では、符号化対象ブロックの大きさと位置から、画質パラメータ復号状態情報を算出し、取得するという構成をとっているが、これに限定されない。例えば、画質制御最小ブロックサイズ内で画質パラメータが復号されたかを示すフラグを設定し、画質制御最小ブロックの分割処理を実行するごとにフラグをリセット、画質パラメータを復号するごとにフラグをセットする。このとき、画質パラメータ復号状態情報を取得する際に、フラグがリセットされていれば復号されていないという情報を取得し、フラグがセットされていれば画質パラメータは復号されているという情報を取得するという構成をとってもよい。
【０１０３】
＜実施形態５＞
画質パラメータの符号化方法のブロック内の残差データの符号化フローについて図５を参照して説明する。なお、とくに記述がない場合、その構成および各ステップの動作は、実施形態１と同様とする。
【０１０４】
図５は、画質パラメータの符号化及び残差データの符号化のフローを説明したものであり、図１７および図１で示される処理を実行する。このフローは、図１３のＳ１３０６から呼び出される。Ｓ５０１は、対象ブロックサイズを取得するステップである。Ｓ５０２は、画質制御最小ブロックサイズを取得するステップである。Ｓ５０３は、対象ブロックを分割する場合としない場合のコストをそれぞれ算出するステップである。Ｓ５０４は、対象ブロックが分割されるか否かを判定するステップである。Ｓ５０５は、分割ブロックフラグをｆａｌｓｅとして出力ステップである。Ｓ５０６は、対象ブロックサイズが画質制御最小ブロックサイズより大きいか等しいかを判定するステップである。Ｓ５０７は、画質パラメータ算出するステップである。Ｓ５０８は、画質パラメータを符号化するフローを実行するステップである。Ｓ５０９は、予測を行い、残差データを直交変換・量子化・可変長復号を実行するステップである。Ｓ５１０は、分割ブロックフラグをｔｒｕｅとして出力ステップである。Ｓ５１１は、対象ブロックサイズと画質制御最小ブロックサイズが等しいかを判定するＳ５１２は、画質パラメータ算出するステップである。Ｓ５１３は、画質パラメータを符号化するステップである。Ｓ５１４は、内包する分割ブロックの処理を実行するステップである。
【０１０５】
以下処理の流れを具体的に説明する。
Ｓ５０１では、対象ブロックサイズを取得する。図１３のフローから呼び出された直後は、処理対象ブロックは格子ブロックそのものであり、本実施形態では対象ブロックサイズの値は６４とするが、これに限定されない。以降、再帰的な呼び出しにより、四分木構造の階層が小さくなるごとに、そのサイズ値は、３２、１６、８となる。ただし、階層数はこれに限定されない。
【０１０６】
Ｓ５０２では、外部からの設定等で設定された画質制御最小ブロックサイズを取得する。本実施形態ではこの値は１６とするが、これに限定されない。
【０１０７】
Ｓ５０３では、ブロックを分割した場合と分割しない場合のそれぞれのコストを算出する。コストに関しては前述のラグランジュ乗数を用いたコスト計算のほか、画像の特性やその統計量、予測される符号長によって算出する。
【０１０８】
Ｓ５０４では、Ｓ５０３で算出された分割する場合のコストと分割しない場合のコストを比較する。ブロックを分割した場合のコストが分割しない場合より低ければＳ５１０〜Ｓ５１４が実行される。そうでなければＳ５０５〜Ｓ５０９が実行される。
【０１０９】
Ｓ５０５では、分割ブロックフラグをｆａｌｓｅとして出力する。Ｓ５０６では、対象ブロックサイズが画質制御最小ブロックサイズより大きいか、または、等しいかを判定する。大きい場合または等しい場合にはＳ５０７〜Ｓ５０９を実行し、そうでない場合にはＳ５０７、Ｓ５０８を実行せずに、Ｓ５０９を実行する。
【０１１０】
Ｓ５０７では、対象ブロックに対して、レート制御を行い、画質パラメータを算出する。Ｓ５０８では、Ｓ５０７で決定した画質パラメータ符号化する。本実施形態では、前のブロックで使用した画質パラメータと、Ｓ５０７で算出した画質パラメータの差分値をＱＰ＿ＤＥＬＴＡ値として求める。求められたＱＰ＿ＤＥＬＴＡ値をＧｏｌｏｍｂ符号化したＱＰ＿ＤＥＬＴＡ符号が画質パラメータ符号となる。
【０１１１】
Ｓ５０９では、残差データの直交変換・量子化・可変長符号化を実行し、符号化係数データを生成する。量子化においては、Ｓ５０７で算出した画質パラメータを用いて量子化する。なお、Ｓ５０６の判定において、対象ブロックサイズが画質制御最小ブロックサイズより小さいと判定された場合は、画質パラメータは、前に量子化に使った画質パラメータと同一のものとなる。
【０１１２】
Ｓ５１０では、分割ブロックフラグをｔｒｕｅとして符号化する。Ｓ５１１では、対象ブロックサイズと画質制御最小ブロックサイズが等しいか否かを判定し、等しい場合にはＳ５１２〜Ｓ５１４を実行する。そうでない場合には、Ｓ５１２、Ｓ５１３を実行せずに、Ｓ５１４を実行する。
【０１１３】
Ｓ５１２では、レート制御処理により、対象ブロックを符号化するための画質パラメータ算出を行う。このとき、内包される分割ブロック全てがレート制御の対象となり、内包される分割ブロックは同一の画質パラメータで符号化されることになる。
【０１１４】
Ｓ５１３では、Ｓ５０８と同様の動作を行い、Ｓ５１２で決定した画質パラメータ符号化する。Ｓ５１４は、階層的に下の階層に内包される４つの分割ブロック（左上、右上、左下、右下）を対象に、対象ブロックの縦横１／２のサイズとなる分割ブロックを対象ブロックとして本フローを再帰的に実行する。すなわち、分割されることにより、対象ブロックサイズは徐々に小さくなる。この再帰処理は例えばもっとも多くてもブロックサイズが８×８になるまで行われるものとする。この再帰処理により、図１６で示されるように、各分割ブロックの分割フラグ符号、ＱＰ＿ＤＥＬＴＡ符号、係数データが、構造順にストリームとして出力される。
【０１１５】
このようにレート制御処理と画質パラメータ符号化処理が一体化した構成においても、実施形態３で示した画質パラメータ符号化方法と同様により細かい単位で画質制御することが可能になる。
【０１１６】
＜実施形態６＞
画質パラメータの復号方法について図６を参照して説明する。
図６は、画質パラメータの復号フローを説明したものである。このフローは、図１４のＳ１４０５に適用される。Ｓ６０１は、復号する対象ブロックサイズを取得するステップである。Ｓ６０２は、画質制御最小ブロックサイズを取得するステップである。Ｓ６０３は、ブロック分割フラグを復号するステップである。Ｓ６０４は、復号する対象ブロックが分割されているかを判定するステップである。Ｓ６０５は、対象ブロックサイズが画質制御最小ブロックサイズよりも大きいか等しいかを判定するステップである。Ｓ６０６は、画質パラメ―タを復号するステップである。Ｓ６０７は、可変長復号・逆量子化・逆直交変換を実行するステップである。Ｓ６０８は、対象ブロックサイズが画質制御最小ブロックサイズと等しいかを判定するステップである。Ｓ６０９は、画質パラメ―タを復号するステップである。Ｓ６１０は、内包される分割されたブロックを対象ブロックとして本フローを再帰的に呼び出し、復号するステップである。
【０１１７】
以降、このステップの流れについて具体的に説明する。Ｓ６０１では、復号の対象となる対象ブロックサイズを取得する。図１４のフローから呼び出された直後は、処理対象ブロックは格子ブロックそのものである。本実施形態では格子ブロックのサイズ値は６４とするがこれに限定されない。以降、再帰的な呼び出しにより、四分木構造の階層が小さくなるごとに、そのサイズ値は、３２、１６、８となる。ただし、階層数はこれに限定されない。
【０１１８】
Ｓ６０２では、画質制御最小ブロックサイズを取得するステップである。本実施形態では、フレームヘッダー情報に組み込まれていた画質制御最小ブロックサイズを取得する。
【０１１９】
Ｓ６０３では、ブロック分割状態を取得する。本実施形態では、図１８のステップＳ１８０１で復号したブロック分割フラグの値が参照される。
【０１２０】
Ｓ６０４では、ブロック分割フラグのｔｒｕｅ／ｆａｌｓｅを判定し、ｆａｌｓｅであればＳ６０５〜Ｓ６０６を実行し、ｔｒｕｅであればＳ６０７〜Ｓ６０９のステップを実行する。
【０１２１】
Ｓ６０５では、対象ブロックサイズが画質制御最小ブロックサイズよりも大きいまたは等しいか否かを判定する。対象ブロックサイズが画質制御最小ブロックサイズよりも大きいまたは等しい場合はＳ６０６、Ｓ６０７を実行する。そうでない場合には、Ｓ６０６を実行せずに、Ｓ６０７を実行する。
【０１２２】
Ｓ６０６では、画質パラメ―タ符号を復号する。本実施形態では、ＱＰ＿ＤＥＬＴＡ符号をＧｏｌｏｍｂ復号し、ＱＰ＿ＤＥＬＴＡ値を生成後、前の量子化で使用した画質パラメータにＱＰ＿ＤＥＬＴＡ値を加算することにで、画質パラメータを生成する。
【０１２３】
Ｓ６０７では、可変長復号・逆量子化・逆直交変換を実行するステップである。逆量子化には、Ｓ６０６で復号した画質パラメータを用いる。ただし、対象ブロックサイズが画質制御最小ブロックサイズよりも小さい場合は前の対象ブロックの逆量子化で使われた画質パラメータを使用する。その後、対象ブロックの復号を終了する。
【０１２４】
Ｓ６０８では、対象ブロックサイズが画質制御最小ブロックサイズよりも等しいか否かを判定する。等しい場合はＳ６０９を実行し、等しくない場合にはＳ６０９を実行せずに、ステップＳ６１０に進む。
【０１２５】
Ｓ６０９では、Ｓ６０６と同様に、画質パラメ―タを復号する。Ｓ６１０では、階層的に下の階に内包される４つの分割ブロック（左上、右上、左下、右下）を対象に、対象ブロックの縦横１／２のサイズとなる分割ブロックを対象ブロックとして本フローを再帰的に実行する。すなわち、分割されることにより、対象ブロックサイズは徐々に小さくなる。この再帰処理により、図１６で示されるよう入力されるに、分割フラグ符号、ＱＰ＿ＤＥＬＴＡ符号、係数データを、領域四分木構造順に復号する。
【０１２６】
このように領域四分木構造を走査する再帰処理と画質パラメータ復号処理が一体化された構成においても、実施形態１または実施形態５の符号化方法で符号化したストリームを復号することができる。
【０１２７】
＜実施形態７＞
本実施形態において、分割ブロック符号化方法について説明する。本実施形態において、符号化方法を実現する構成については図９を用いる。
【０１２８】
符号化に先立ち、本実施形態で生成されるストリーム特性を表すプロファイルとデコーダの処理性能ごとに許容しうるパラメータのセットであるレベルを設定する。レベルはその処理性能が主に画像サイズに起因することから主に画像サイズ毎に規定されている。但し、画像サイズに限定されない。例えば、処理性能は、処理を行う格子ブロック数に依存するため、その数に応じてレベルを設定しても構わない。本実施形態において、画質最小ブロックサイズはレベルごとにその最小値を設定する。図２１は、プロファイル・レベルごとに制限された画質制御最小ブロックサイズを規定した表である。
【０１２９】
本実施形態において、プロファイルとして、基本的なツールのみを用いるベースラインプロファイルとより多くのツールを用いるメインプロファイルを用いて説明する。但し、これらに限定されない。
【０１３０】
図２１（ａ）は、ベースラインプロファイルのレベルと画質制御最小ブロックサイズの制限を示した表である。図２１（ｂ）は、メインプロファイルのレベルと画質制御最小ブロックサイズの制限を示した表である。
【０１３１】
本実施形態では、レベルは、１フレームに含まれる最大の格子ブロック（６４×６４）の数により分類されるものとする。具体的には、レベル０は６４０×４８０などを対象とする比較的小さい画像、レベル１が１９２０ｘ１０８０を対象とする中程度の大きさの画像、レベル２は４０９６×２１６０を対象とする大きい画像を対象となる。なお、レベルの数、および、分け方は、この特許の本質を限定するものではない。
【０１３２】
図２１（ａ）で説明されるベースラインプロファイルの場合、レベル０では、最小画質制御ブロックサイズの最小値を８とし８〜６４の範囲で、最小画質制御ブロックサイズを設定できることを表している。レベル１では、最小画質制御ブロックサイズの最小値を１６とし１６〜６４の範囲で、最小画質制御ブロックサイズを設定できることを表している。レベル２では、最小画質制御ブロックサイズの最小値を３２とし１６〜６４の範囲で、最小画質制御ブロックサイズを設定できることを表している。図２１（ｂ）で説明されるメインプロファイルの場合、レベルに関係なく画質制御最小ブロックサイズが、８〜６４の範囲で制御されることを示す。
【０１３３】
本プロファイル・レベルは符号化方法または装置のツールやメモリ容量などの条件に寄って決定されたり、復号方法または装置の条件を考慮して決定したりするが、特に方法は限定されない。不図示のユーザが設定しても構わない。決定されたプロファイル・レベルは符号化されて動画全体の情報を表すシーケンスヘッダ等に含めて通信インターフェース９０５から出力されたり、ＨＤＤ９０３に記録されたりする。
【０１３４】
続いて、各フレームの符号化処理について説明する。第１の実施形態と同様に、まず、図１３のＳ１３０１にて、画質制御最小ブロックサイズのパラメータを設定する。図２２は、画質制御最小ブロックサイズの算出方法について説明したフローチャートである。Ｓ２２０１では、プロファイルの種類を判定する。プロファイルの種類がベースラインプロファイルである場合には、Ｓ２２０４以降が実行され、プロファイルの種類がメインプロファイルである場合には、Ｓ２２０３以降が実行される。
【０１３５】
まず、メインプロファイルの場合について述べる。Ｓ２２０３では、画質制御最小ブロックサイズを８に設定して処理を終了する。続いて、ベースラインプロファイルの場合について述べる。Ｓ２２０４では、レベル値を取得する。本実施形態では、このレベル値は、入力画像サイズに応じて、入力画像サイズのストリームがデコードできることを示す最小のレベルを算出するものとする。
【０１３６】
Ｓ２２０５では、レベル値が１であるかを判定する。結果が真と判定された場合にはＳ２２０６を実行し、偽と判定された場合にはＳ２２０７を実行する。Ｓ２２０６では、画質制御最小ブロックサイズを８に設定する。Ｓ２２０７では、レベル値が２であるかを判定する。結果が真と判定された場合にはＳ２２０８を実行し、偽と判定された場合にはＳ２２０９を実行する。Ｓ２２０８では、呼び出し元に算出した画質制御最小ブロックサイズとして１６を返す。Ｓ２２０９では、画質制御最小ブロックサイズを３２に設定する。
【０１３７】
以下、図１３に戻り、実施形態１と同様に、Ｓ１３０２にて、画質制御最小ブロックサイズを符号化し、Ｓ１３０３にて符号データを含むフレームヘッダー情報を生成する。図２３（ａ）に生成されたビットストリームを示す。シーケンスヘッダにプロファイル・レベルを符号化したデータがあり、画像の大きさを表す符号が続く。各フレームデータのフレームヘッダーには画質制御最小ブロックサイズ符号が含まれており、そのサイズは図２２に規定される画質制御最小ブロックサイズの最小値より大きく設定されている。
【０１３８】
全体の流れを図２４のフローチャートに示す。Ｓ２４０１では、符号化対象の画像のサイズを入力する。Ｓ２４０２では、プロファイルを選択し、図２１に従って、レベルを選択する。Ｓ２４０３では、選択されたレベルに従って、画質制御最小ブロックサイズの最小値を取得する。Ｓ２４０４では選択されたプロファイル・レベルを符号化する。Ｓ２４０５ではプロファイル・レベルの符号データを含めたシーケンスヘッダを生成する。Ｓ２４０６では、各フレーム単位の符号化を行う。この際に、各フレームでは設定できる画質制御最小ブロックのサイズは前述の画質制御最小ブロックサイズの最小値以上となる。Ｓ２４０７で全フレームの符号化を終了したか否かを判定し、終了していなければＳ２４０６に進み、次のフレームを符号化する。終了していれば、符号化処理を終了する。
【０１３９】
このように、プロファイル・レベルを設け、画質制御最小ブロックサイズを限定することにより、画像の大きさに依存して画質制御最小ブロックサイズを決定することで、画質を落とすことなく、より小さいブロックでの演算を省略して画像を符号化することができる。これによって、機器に応じた最適な回路設計や消費電力を一定に抑えた構成を設計可能とすることができるようになる。例えば、ベースラインプロファイルはモバイル通信向けとし、バッテリー持続時間などの観点から符号化の演算負荷制限を厳しくすることができる。一方で、メインプロファイルはバッテリー不要の据え置き型の機器向けとし、演算負荷制限がゆるいものにすることができる。また、ソフトウェアにおいても画質制御最小ブロックサイズよりも小さいブロックでの量子化制御のための演算時間を省略でき高速化を図ることができる。
【０１４０】
なお、本実施形態のようにプロファイル・レベルを設ける符号化方法を実施形態３、ないし５に適用しいてももちろん構わない。
【０１４１】
さらに、図２２に記載したレベル単位で決定した画質制御最小ブロックサイズの最小値を当該レベルで必ず使用することで、各フレームに含まれる画質制御最小ブロックサイズ符号を省略することができる。図２３（ｂ）にそのビットストリームを示す。図２３（ａ）のビットストリームとは各フレームヘッダーに画質制御最小ブロックサイズ符号が含まれないことが異なる。当該のシーケンスの内部では必ずプロファイル・レベルで規定した画質制御最小ブロックサイズの最小値を画質制御最小ブロックサイズとして使用する。これにより、冗長な符号を削除し、符号化効率を向上させる効果がある。また、画質制御最小ブロックサイズ以下の量子化マトリクスを保持するメモリ容量やそれを更新する処理も省略することができる。
【０１４２】
＜実施形態８＞
本実施形態では、実施形態７で生成されたビットストリームを復号する画像の復号方法について説明する。本実施形態において、復号方法を実現する構成については図９を用いる。
【０１４３】
各フレームの復号に先立ち、シーケンスヘッダを入力し、復号する。図２３（ａ）に従って、プロファイル・レベルに関する符号を復号する。また、画像の幅や高さといった符号も復号する。復号したプロファイルがベースラインプロファイルであった場合、図２１（ａ）を参照する。さらにレベルに該当する画質制御最小ブロックサイズを選択して決定する。また、メインプロファイル出会った場合、図２１（ｂ）を参照し、画質制御最小ブロックサイズを８とする。
【０１４４】
この時点でＲＡＭ９０２の上に必要なバッファ等のメモリを確保する。例えば、ベースライン、レベル２であれば、ブロックサイズ８×８での画質制御を行うことは無いので、８×８や４×４ブロック単位で保持しておく必要のある画質制御パラメータのメモリ領域を省略することができる。
【０１４５】
各フレームの復号については実施形態２で説明した図１４に従って行う。Ｓ１４０２でフレームヘッダーに含まれる画質制御最小ブロックサイズを復号する。Ｓ１４０５では、格子ブロックをその対象ブロックとして階層的に復号を行う。実施形態２で説明した図１８のＳ１８０５はその階層に従って、再帰的に処理を行って、画質制御最小ブロックサイズのブロックまで画質制御パラメータの復号を行う。
【０１４６】
全体の流れを図２５のフローチャートに示す。Ｓ２５０１では、シーケンスヘッダを入力する。Ｓ２５０２では、プロファイル・レベルの符号データを復号し、プロファイル・レベルを取得する。Ｓ２５０３では、選択されたレベルに従って、画質制御最小ブロックサイズの最小値を取得する。Ｓ２４０４では、各フレーム単位の復号を行う。この際に、各フレームでは復号される画質制御最小ブロックのサイズは前述の画質制御最小ブロックサイズの最小値以上となることが補償される。Ｓ２４０５で全フレームの復号を終了したか否かを判定し、終了していなければＳ２４０４に進み、次のフレームを復号する。終了していれば、符号化処理を終了する。
【０１４７】
このように、プロファイル・レベルを設け、画質制御最小ブロックサイズを限定することにより、画像の大きさに依存して画質制御最小ブロックサイズを決定されることで、画質を落とすことなく、より小さいブロックでの演算を省略して画像を復号することができる。画質制御最小ブロックサイズを決定することで、再帰的な処理の回数を減じることができ、格子ブロック単位の復号に係る時間の変動を抑えることができる。
【０１４８】
これによって、機器に応じた最適な回路設計や消費電力を一定に抑えた構成を設計可能とすることができるようになる。例えば、ベースラインプロファイルはモバイル通信向けとし、バッテリー持続時間などの観点から符号化の演算負荷制限を厳しくすることができる。一方で、メインプロファイルはバッテリー不要の据え置き型の機器向けとし、演算負荷制限がゆるいものにすることができる。また、ソフトウェアにおいても画質制御最小ブロックサイズよりも小さいブロックでの量子化制御のための演算時間を省略でき高速化を図ることができる。
【０１４９】
また、図２３（ｂ）に従って、プロファイル・レベルに関する符号を復号することももちろん可能である。上記で説明したようにシーケンスヘッダを入力し、復号する。前述の通り、プロファイル・レベルに従って、画質制御最小ブロックサイズを決定する。各フレームの復号についてはステップＳ１４０２を省略し、この画質制御最小ブロックサイズを使用する。
【０１５０】
このようにプロファイル・レベルで画質制御最小ブロックサイズを一意に決定することで、各フレームヘッダーに画質制御最小ブロックサイズ符号の符号が無くても画像の復号を行うことができる。また、復号した画質制御最小ブロックサイズとプロファイル・レベルで決定した画質制御最小ブロックサイズを比較し、後者が前者より大きい場合、ビットストリームにエラーがあるとしてこれを検出してももちろん構わない。
【図１】
0005963446.tif 000002
【図２】
0005963446.tif 000003
【図３】
0005963446.tif 000004
【図４】
0005963446.tif 000005
【図５】
0005963446.tif 000006
【図６】
0005963446.tif 000007
【図７】
0005963446.tif 000008
【図８】
0005963446.tif 000009
【図９】
0005963446.tif 000010
【図１０】
0005963446.tif 000011
【図１１】
0005963446.tif 000012
【図１２】
0005963446.tif 000013
【図１３】
0005963446.tif 000014
【図１４】
0005963446.tif 000015
【図１５】
0005963446.tif 000016
【図１６】
0005963446.tif 000017
【図１７】
0005963446.tif 000018
【図１８】
0005963446.tif 000019
【図１９】
0005963446.tif 000020
【図２０】
0005963446.tif 000021
【図２１】
0005963446.tif 000022
【図２２】
0005963446.tif 000023
【図２３】
0005963446.tif 000024
【図２４】
0005963446.tif 000025
【図２５】
0005963446.tif 000026