(57)【要約】【課題】逆直交行列の作成に必要な処理量が、変換係数の並べ替えの処理量およびＩＤＣＴの処理量の削減効果を上回った場合、ＩＤＣＴ処理の高速化は期待できない。【解決手段】復号化装置は、ｍ×ｎ要素の変換係数行列、ＥＯＢ情報およびＺＲＬ情報を出力する復号化処理部と、２次元ＩＤＣＴ処理部を備える。２次元ＩＤＣＴ処理部は、ｍ×ｎ要素の変換係数行列、ＥＯＢ情報およびＺＲＬ情報に基づいて、ｍ×ｎ要素もしくはｐ×ｑ要素のＩＤＣＴ処理を選択するために必要な行方向および列方向の要素数を判定するＩＤＣＴ判定部と、ｍ×ｎ要素のＩＤＣＴ処理を行うｍ×ｎＩＤＣＴ処理部と、ｐ×ｑ要素のＩＤＣＴ処理を行うｐ×ｑＩＤＣＴ処理部と、を有する。ｍ×ｎＩＤＣＴ処理部およびｐ×ｑＩＤＣＴ処理部は、ＩＤＣＴ判定部の判定結果に基づいて、ｍ×ｎ要素もしくはｐ×ｑ要素のＩＤＣＴ処理を選択的に実行する。【選択図】図５
2020184702.tif 000002
【特許請求の範囲】
【請求項１】
ｍ×ｎ（ｍおよびｎは、２以上の自然数）画素のブロックの単位で離散コサイン変換（ＤＣＴ）処理されたｍ×ｎ画素の変換係数行列に対して、前記ｍ×ｎ要素の変換係数行列のうちのｍ×ｎ要素の全てを有効な要素とするｍ×ｎ要素の逆離散コサイン変換（ＩＤＣＴ）処理、もしくは、前記ｍ×ｎ要素の変換係数行列のうちの低周波側の領域に位置するｐ×ｑ（ｐおよびｑは２以上の自然数であり、ｍ＞ｐかつｎ≧ｑ、もしくは、ｍ≧ｐかつｎ＞ｑ）要素を有効な要素とするｐ×ｑ要素のＩＤＣＴ処理を行う復号化装置であって、
符号化された変換係数列を復号化し、復号化された前記変換係数列をジグザグスキャン行列の形式で並べ替えた前記ｍ×ｎ要素の変換係数行列と、前記ｍ×ｎ要素の変換係数行列の中で、最後の０ではない係数の位置を示すエンド・オブ・ブロック（ＥＯＢ）情報と、前記ｍ×ｎ要素の変換係数行列の中で、前記ＥＯＢ情報が示す０ではない最後の係数とその直前に位置する０ではない係数との間にある０の係数の個数を示すゼロ・ラン・レングス（ＺＲＬ）情報と、を出力する復号化処理部と、
前記ｍ×ｎ要素の変換係数行列に対して、前記ｍ×ｎ要素のＩＤＣＴ処理もしくは前記ｐ×ｑ要素のＩＤＣＴ処理を実行する２次元ＩＤＣＴ処理部と、を備え、
前記２次元ＩＤＣＴ処理部は、
前記ｍ×ｎ要素の変換係数行列、前記ＥＯＢ情報および前記ＺＲＬ情報に基づいて、前記ｍ×ｎ要素のＩＤＣＴ処理もしくは前記ｐ×ｑ要素のＩＤＣＴ処理を選択するために必要な行方向および列方向の要素数を判定するＩＤＣＴ判定部と、
前記ｍ×ｎ要素のＩＤＣＴ処理を行うｍ×ｎＩＤＣＴ処理部と、
前記ｐ×ｑ要素のＩＤＣＴ処理を行うｐ×ｑＩＤＣＴ処理部と、を有し、
前記ｍ×ｎＩＤＣＴ処理部および前記ｐ×ｑＩＤＣＴ処理部は、前記ＩＤＣＴ判定部の判定結果に基づいて、前記ｍ×ｎ要素の変換係数行列に対して、前記ｍ×ｎ要素のＩＤＣＴ処理もしくは前記ｐ×ｑ要素のＩＤＣＴ処理を選択的に実行し、ｍ×ｎ画素のブロック単位の画像データを復元する、
復号化装置。
【請求項２】
請求項１に記載の復号化装置であって、
前記ＩＤＣＴ判定部は、
前記ＥＯＢ情報に示されたスキャン番号が、前記ｐ×ｑ要素に含まれる係数のスキャン番号のうちの最大のスキャン番号である場合、前記ＺＲＬ情報に基づいて、前記最大のスキャン番号の係数と、前記最大のスキャン番号の係数の直前に位置し、前記ｐ×ｑ要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数の全てが、０であるか否かを判定し、
前記最大のスキャン番号の係数と、前記最大のスキャン番号の係数の直前に位置し、前記ｐ×ｑ要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数の全てが、０であると判定された場合、前記ｐ×ｑ要素のＩＤＣＴ処理を実行すべき処理として決定する、
復号化装置。
【請求項３】
請求項１に記載の復号化装置であって、
前記ＩＤＣＴ判定部は、
前記ＥＯＢ情報に示されたスキャン番号が、前記ｐ×ｑ要素に含まれる係数のスキャン番号のうちの最大のスキャン番号である場合、前記ＺＲＬ情報に基づいて、前記最大のスキャン番号の係数と、前記最大のスキャン番号の係数の直前に位置し、前記ｐ×ｑ要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数の全てが、０であるか否かを判定し、
前記最大のスキャン番号の係数と、前記最大のスキャン番号の係数の直前に位置し、前記ｐ×ｑ要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数の全てが、０ではないと判定された場合、前記ｍ×ｎ要素のＩＤＣＴ処理を実行すべき処理として決定する、
復号化装置。
【請求項４】
請求項１に記載の復号化装置であって、
前記ＩＤＣＴ判定部は、
前記ＥＯＢ情報に基づいて、前記ｍ×ｎ要素のＩＤＣＴ処理、前記ｐ×ｑ要素のＩＤＣＴ処理および０係数判定処理のいずれかを実行すべきかを判定して、ＥＯＢ判定結果を出力するＥＯＢ判定部と、
前記０係数判定処理を示す前記ＥＯＢ判定結果を受け取った場合、前記ｍ×ｎ要素の変換係数行列、前記ＥＯＢ情報および前記ＺＲＬ情報に基づいて、前記ｍ×ｎ要素のＩＤＣＴ処理および前記ｐ×ｑ要素のＩＤＣＴ処理のいずれかを実行すべきかを判定して、０係数判定結果を出力する０係数判定部と、
前記ｍ×ｎ要素のＩＤＣＴ処理を示すＥＯＢ判定結果、もしくは、前記ｍ×ｎ要素のＩＤＣＴ処理を示す前記０係数判定結果を受け取った場合、前記ｍ×ｎ要素のＩＤＣＴ処理を示す選択信号を生成し、前記ｐ×ｑ要素のＩＤＣＴ処理を示す前記ＥＯＢ判定結果、もしくは、前記ｐ×ｑ要素のＩＤＣＴ処理を示す前記０係数判定結果を受け取った場合、前記ｐ×ｑ要素のＩＤＣＴ処理を示す前記選択信号を生成するＩＤＣＴ処理選択部と、を備え、
前記ｍ×ｎＩＤＣＴ処理部および前記ｐ×ｑＩＤＣＴ処理部は、前記選択信号に基づいて、前記ｍ×ｎ要素の変換係数行列に対して、前記ｍ×ｎ要素のＩＤＣＴ処理もしくは前記ｐ×ｑ要素のＩＤＣＴ処理を選択的に実行する、
復号化装置。
【請求項５】
請求項４に記載の復号化装置であって、
前記０係数判定部は、
前記ＥＯＢ情報に示されたスキャン番号が、前記ｐ×ｑ要素に含まれる係数のスキャン番号のうちの最大のスキャン番号である場合、前記ＺＲＬ情報に基づいて、前記最大のスキャン番号の係数と、前記最大のスキャン番号の係数の直前に位置し、前記ｐ×ｑ要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数の全てが、０であるか否かを判定し、
前記最大のスキャン番号の係数と、前記最大のスキャン番号の係数の直前に位置し、前記ｐ×ｑ要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数の全てが、０であると判定された場合、前記ｐ×ｑ要素のＩＤＣＴ処理を実行すべき処理として決定する、
復号化装置。
【請求項６】
請求項４に記載の復号化装置であって、
前記０係数判定部は、
前記ＥＯＢ情報に示されたスキャン番号が、前記ｐ×ｑ要素に含まれる係数のスキャン番号のうちの最大のスキャン番号である場合、前記ＺＲＬ情報に基づいて、前記最大のスキャン番号の係数と、前記最大のスキャン番号の係数の直前に位置し、前記ｐ×ｑ要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数の全てが、０であるか否かを判定し、
前記最大のスキャン番号の係数と、前記最大のスキャン番号の係数の直前に位置し、前記ｐ×ｑ要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数の全てが、０ではないと判定された場合、前記ｍ×ｎ要素のＩＤＣＴ処理を実行すべき処理として決定する、
復号化装置。
【請求項７】
請求項４に記載の復号化装置であって、
前記ＥＯＢ判定部は、
前記ＥＯＢ情報に示されたスキャン番号が、前記ｐ×ｑ要素に含まれない係数のスキャン番号のうちの最小のスキャン番号よりも小さいか否かを判定し、
前記ＥＯＢ情報に示されたスキャン番号が、前記最小のスキャン番号よりも小さいと判定された場合、前記ｐ×ｑ要素のＩＤＣＴ処理を実行すべき処理として決定し、
前記ＥＯＢ情報に示されたスキャン番号が、前記ｐ×ｑ要素に含まれる係数のスキャン番号のうちの最大のスキャン番号よりも大きいか否かを判定し、
前記ＥＯＢ情報に示されたスキャン番号が、前記最大のスキャン番号よりも大きいと判定された場合、前記ｍ×ｎ要素のＩＤＣＴ処理を実行すべき処理として決定し、
前記ＥＯＢ情報に示された番号が、前記最小のスキャン番号以上で、かつ、前記最大のスキャン番号以下であるか否かを判定し、
前記ＥＯＢ情報に示されたスキャン番号が、前記最小のスキャン番号以上であり、かつ、前記最大のスキャン番号以下であると判定された場合、前記０係数判定処理を実行すべき処理として決定する、
復号化装置。
【請求項８】
請求項１に記載の復号化装置であって、
ｍ＝ｎ＝８およびｐ＝ｑ＝４である、
復号化装置。
【請求項９】
請求項８に記載の復号化装置であって、
前記ＩＤＣＴ判定部は、
前記ＥＯＢ情報に示されたスキャン番号が２４である場合、前記ＺＲＬ情報が５以上であるか否かを判定し、
前記ＺＲＬ情報が５以上であると判定された場合、８×８要素の変換係数行列のうちのスキャン番号１９〜２３の係数の全てが０であると判断して、４×４要素のＩＤＣＴ処理を実行すべき処理として決定する、
復号化装置。
【請求項１０】
請求項８に記載の復号化装置であって、
前記ＩＤＣＴ判定部は、
前記ＥＯＢ情報に示されたスキャン番号が２４である場合、前記ＺＲＬ情報が５以上であるか否かを判定し、
前記ＺＲＬ情報が５以上ではないと判定された場合、８×８要素の変換係数行列のうちのスキャン番号１９〜２３の係数に０ではない係数が存在すると判断して、前記８×８要素のＩＤＣＴ処理を実行すべき処理として決定する、
復号化装置。
【請求項１１】
請求項８に記載の復号化装置であって、
前記ＩＤＣＴ判定部は、
前記ＥＯＢ情報に基づいて、８×８要素のＩＤＣＴ処理、４×４要素のＩＤＣＴ処理および０係数判定処理のいずれかを実行すべきかを判定して、ＥＯＢ判定結果を出力するＥＯＢ判定部と、
前記０係数判定処理を示す前記ＥＯＢ判定結果を受け取った場合、前記８×８要素の変換係数行列、前記ＥＯＢ情報および前記ＺＲＬ情報に基づいて、前記８×８要素のＩＤＣＴ処理および前記４×４要素のＩＤＣＴ処理のいずれかを実行すべきかを判定して、０係数判定結果を出力する０係数判定部と、
前記８×８要素のＩＤＣＴ処理を示すＥＯＢ判定結果、もしくは、前記８×８要素のＩＤＣＴ処理を示す前記０係数判定結果を受け取った場合、前記８×８要素のＩＤＣＴ処理を示す選択信号を生成し、前記４×４要素のＩＤＣＴ処理を示す前記ＥＯＢ判定結果、もしくは、前記４×４要素のＩＤＣＴ処理を示す前記０係数判定結果を受け取った場合、前記４×４要素のＩＤＣＴ処理を示す前記選択信号を生成するＩＤＣＴ処理選択部と、を備え、
前記ｍ×ｎＩＤＣＴ処理部および前記ｐ×ｑＩＤＣＴ処理部は、前記選択信号に基づいて、前記８×８要素の変換係数行列に対して、前記８×８要素のＩＤＣＴ処理もしくは前記４×４要素のＩＤＣＴ処理を選択的に実行する、
復号化装置。
【請求項１２】
請求項１１に記載の復号化装置であって、
前記０係数判定部は、
前記ＥＯＢ情報に示されたスキャン番号が２４である場合、前記ＺＲＬ情報が５以上であるか否かを判定し、
前記ＺＲＬ情報が５以上であると判定された場合、前記８×８要素の変換係数行列のうちのスキャン番号１９〜２３の係数の全てが０であると判断して、前記４×４要素のＩＤＣＴ処理を実行すべき処理として決定する、
復号化装置。
【請求項１３】
請求項１１に記載の復号化装置であって、
前記０係数判定部は、
前記ＥＯＢ情報に示されたスキャン番号が２４である場合、前記ＺＲＬ情報が５以上であるか否かを判定し、
前記ＺＲＬ情報が５以上ではないと判定された場合、前記８×８要素の変換係数行列のうちのスキャン番号１９〜２３の係数に０ではない係数が存在すると判断して、前記８×８要素のＩＤＣＴ処理を実行すべき処理として決定する、
復号化装置。
【請求項１４】
請求項１１に記載の復号化装置であって、
前記ＥＯＢ判定部は、
前記ＥＯＢ情報に示されたスキャン番号が、１０よりも小さいか否かを判定し、
前記ＥＯＢ情報に示されたスキャン番号が、１０よりも小さいと判定された場合、前記４×４要素のＩＤＣＴ処理を実行すべき処理として決定し、
前記ＥＯＢ情報に示されたスキャン番号が、２４よりも大きいか否かを判定し、
前記ＥＯＢ情報に示されたスキャン番号が、２４よりも大きいと判定された場合、前記８×８要素のＩＤＣＴ処理を実行すべき処理として決定し、
前記ＥＯＢ情報に示されたスキャン番号が、１０以上であり、かつ、２４以下であるか否かを判定し、
前記ＥＯＢ情報に示されたスキャン番号が、１０以上であり、かつ、２４以下であると判定された場合、前記０係数判定処理を実行すべき処理として決定する、
復号化装置。
【請求項１５】
請求項１に記載の復号化装置であって、
前記復号化処理部は、
前記符号化された前記変換係数列を含む符号化データを復号化し、前記復号化された前記変換係数列と、前記符号化データの復号化によって得られた前記ＥＯＢ情報および前記ＺＲＬ情報を出力するエントロピー復号化部と、
前記復号化された前記変換係数列を前記ジグザグスキャン行列の形式で並べ替えた前記ｍ×ｎ要素の変換係数行列を生成するジグザグスキャン処理部と、
前記ｍ×ｎ要素の変換係数行列の各要素を、ｍ×ｎ要素の量子化行列の各要素で掛け算して逆量子化処理を行う逆量子化処理部と、を備え、
前記逆量子化処理部によって逆量子化された前記ｍ×ｎ要素の変換係数行列が、前記２次元ＩＤＣＴ処理部へ出力される、
復号化装置。
【請求項１６】
請求項１５に記載の復号化装置であって、
前記逆量子化処理部は、前記ｍ×ｎ要素の前記量子化行列の各要素の値の決定に使用された量子化係数値（Ｑ値）をＱ値情報として前記ＩＤＣＴ判定部へ出力し、
前記ＩＤＣＴ判定部は、
前記ＥＯＢ情報に基づいて、前記ｍ×ｎ要素のＩＤＣＴ処理、前記ｐ×ｑ要素のＩＤＣＴ処理および０係数判定処理のいずれかを実行すべきかを判定して、ＥＯＢ判定結果を出力するＥＯＢ判定部と、
Ｑ判定値を格納するＱ判定値レジスタを有し、前記０係数判定処理を示す前記ＥＯＢ判定結果を受け取った場合、前記Ｑ値情報から得られた前記Ｑ値及び前記Ｑ判定値レジスタに格納された前記Ｑ判定値に基づいて、前記ｍ×ｎ要素のＩＤＣＴ処理および前記０係数判定処理のいずれかを実行すべきかを判定して、Ｑ値判定結果を出力するＱ値判定部と、
前記０係数判定処理を示す前記Ｑ値判定結果を受け取った場合、前記ｍ×ｎ要素の変換係数行列、前記ＥＯＢ情報および前記ＺＲＬ情報に基づいて、前記ｍ×ｎ要素のＩＤＣＴ処理および前記ｐ×ｑ要素のＩＤＣＴ処理のいずれかを実行すべきかを判定して、０係数判定結果を出力する０係数判定部と、
前記ｍ×ｎ要素のＩＤＣＴ処理を示すＥＯＢ判定結果、前記ｍ×ｎ要素のＩＤＣＴ処理を示す前記Ｑ値判定結果、もしくは、前記ｍ×ｎ要素のＩＤＣＴ処理を示す前記０係数判定結果を受け取った場合、前記ｍ×ｎ要素のＩＤＣＴ処理を示す選択信号を生成し、前記ｐ×ｑ要素のＩＤＣＴ処理を示す前記ＥＯＢ判定結果、もしくは、前記ｐ×ｑ要素のＩＤＣＴ処理を示す前記０係数判定結果を受け取った場合、前記ｐ×ｑ要素のＩＤＣＴ処理を示す前記選択信号を生成するＩＤＣＴ処理選択部と、を備え、
前記ｍ×ｎＩＤＣＴ処理部および前記ｐ×ｑＩＤＣＴ処理部は、前記選択信号に基づいて、前記ｍ×ｎ要素の変換係数行列に対して、前記ｍ×ｎ要素のＩＤＣＴ処理もしくは前記ｐ×ｑ要素のＩＤＣＴ処理を選択的に実行する、
復号化装置。
【請求項１７】
請求項１５に記載の復号化装置であって、
前記エントロピー復号化部は、前記符号化データがイントラ符号化もしくはインター符号化のいずれかによって符号化されたのかを示す符号化タイプ情報を前記ＩＤＣＴ判定部へ出力し、
前記ＩＤＣＴ判定部は、
前記ＥＯＢ情報に基づいて、前記ｍ×ｎ要素のＩＤＣＴ処理、前記ｐ×ｑ要素のＩＤＣＴ処理および０係数判定処理のいずれかを実行すべきかを判定して、ＥＯＢ判定結果を出力するＥＯＢ判定部と、
前記０係数判定処理を示す前記ＥＯＢ判定結果を受け取った場合、前記符号化タイプ情報に基づいて、前記ｍ×ｎ要素のＩＤＣＴ処理および前記０係数判定処理のいずれかを実行すべきかを判定して、符号化タイプ判定結果を出力する符号化タイプ判定部と、
前記０係数判定処理を示す前記符号化タイプ判定結果を受け取った場合、前記ｍ×ｎ要素の変換係数行列、前記ＥＯＢ情報および前記ＺＲＬ情報に基づいて、前記ｍ×ｎ要素のＩＤＣＴ処理および前記ｐ×ｑ要素のＩＤＣＴ処理のいずれかを実行すべきかを判定して、０係数判定結果を出力する０係数判定部と、
前記ｍ×ｎ要素のＩＤＣＴ処理を示すＥＯＢ判定結果、前記ｍ×ｎ要素のＩＤＣＴ処理を示す前記符号化タイプ判定結果、もしくは、前記ｍ×ｎ要素のＩＤＣＴ処理を示す前記０係数判定結果を受け取った場合、前記ｍ×ｎ要素のＩＤＣＴ処理を示す選択信号を生成し、前記ｐ×ｑ要素のＩＤＣＴ処理を示す前記ＥＯＢ判定結果、もしくは、前記ｐ×ｑ要素のＩＤＣＴ処理を示す前記０係数判定結果を受け取った場合、前記ｐ×ｑ要素のＩＤＣＴ処理を示す前記選択信号を生成するＩＤＣＴ処理選択部と、を備え、
前記ｍ×ｎＩＤＣＴ処理部および前記ｐ×ｑＩＤＣＴ処理部は、前記選択信号に基づいて、前記ｍ×ｎ要素の変換係数行列に対して、前記ｍ×ｎ要素のＩＤＣＴ処理もしくは前記ｐ×ｑ要素のＩＤＣＴ処理を選択的に実行する、
復号化装置。
【請求項１８】
ｍ×ｎ（ｍおよびｎは、２以上の自然数）画素のブロックの単位で離散コサイン変換（ＤＣＴ）処理されたｍ×ｎ画素の変換係数行列に対して、前記ｍ×ｎ要素の変換係数行列のうちのｍ×ｎ要素の全てを有効な要素とするｍ×ｎ要素の逆離散コサイン変換（ＩＤＣＴ）処理、もしくは、前記ｍ×ｎ要素の変換係数行列のうちの低周波側の領域に位置するｐ×ｑ（ｐおよびｑは２以上の自然数であり、ｍ＞ｐかつｎ≧ｑ、もしくは、ｍ≧ｐかつｎ＞ｑ）要素を有効な要素とするｐ×ｑ要素のＩＤＣＴ処理を行う復号化装置の制御方法であって、
復号化処理部が、符号化された変換係数列を含む符号化データを復号化するステップと、
２次元ＩＤＣＴ処理部が、前記ｍ×ｎ要素の変換係数行列に対して、前記ｍ×ｎ要素のＩＤＣＴ処理もしくは前記ｐ×ｑ要素のＩＤＣＴ処理を実行するステップと、を備え、
前記復号化するステップは、
復号化された前記変換係数列をジグザグスキャン行列の形式で並べ替えた前記ｍ×ｎ要素の変換係数行列を出力するステップと、
前記ｍ×ｎ要素の変換係数行列の中で、最後の０ではない係数の位置を示すエンド・オブ・ブロック（ＥＯＢ）情報を出力するステップと、
前記ｍ×ｎ要素の変換係数行列の中で、前記ＥＯＢ情報が示す０ではない最後の係数とその直前に位置する０ではない係数との間にある０の係数の個数を示すゼロ・ラン・レングス（ＺＲＬ）情報を出力するステップと、を含み、
前記実行するステップは、
前記ｍ×ｎ要素の変換係数行列、前記ＥＯＢ情報および前記ＺＲＬ情報に基づいて、前記ｍ×ｎ要素のＩＤＣＴ処理もしくは前記ｐ×ｑ要素のＩＤＣＴ処理を選択するために必要な行方向および列方向の要素数を判定するステップと、
前記判定するステップの判定結果に基づいて、前記ｍ×ｎ要素の変換係数行列に対して、前記ｍ×ｎ要素のＩＤＣＴ処理もしくは前記ｐ×ｑ要素のＩＤＣＴ処理を選択的に実行して、ｍ×ｎ画素のブロック単位の画像データを復元するステップと、を含む、
復号化装置の制御方法。
【請求項１９】
請求項１８に記載の復号化装置の制御方法であって、
前記判定するステップは、
前記ＥＯＢ情報に示されたスキャン番号が、前記ｐ×ｑ要素に含まれる係数のスキャン番号のうちの最大のスキャン番号であるか否かを確認するステップと、
前記確認するステップにおいて、前記ＥＯＢ情報に示されたスキャン番号が、前記最大のスキャン番号であると確認された場合、前記ＺＲＬ情報に基づいて、前記最大のスキャン番号の係数と、前記最大のスキャン番号の係数の直前に位置し、前記ｐ×ｑ要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数の全てが、０であるか否かを判定するステップと、
前記０であるか否かを判定するステップにおいて、前記最大のスキャン番号の係数と、前記最大のスキャン番号の係数の直前に位置し、前記ｐ×ｑ要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数が、全て０であると判定された場合、前記ｐ×ｑ要素のＩＤＣＴ処理を実行すべき処理として決定するステップと、を含む、
復号化装置の制御方法。
【請求項２０】
請求項１８に記載の復号化装置の制御方法であって、
前記判定するステップは、
前記ＥＯＢ情報に示されたスキャン番号が、前記ｐ×ｑ要素に含まれる係数のスキャン番号のうちの最大のスキャン番号であるか否かを確認するステップと、
前記確認するステップにおいて、前記ＥＯＢ情報に示されたスキャン番号が、前記最大のスキャン番号であると確認された場合、前記ＺＲＬ情報に基づいて、前記最大のスキャン番号の係数と、前記最大のスキャン番号の係数の直前に位置し、前記ｐ×ｑ要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数の全てが、０であるか否かを判定するステップと、
前記０であるか否かを判定するステップにおいて、前記最大のスキャン番号の係数と、前記最大のスキャン番号の係数の直前に位置し、前記ｐ×ｑ要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数が、全て０ではないと判定された場合、前記ｍ×ｎ要素のＩＤＣＴ処理を実行すべき処理として決定するステップと、を含む、
復号化装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号化装置および復号化装置の制御方法に関する。
【背景技術】
【０００２】
画像データは情報量が多いため、圧縮符号化によって情報量が削減されてから、伝送や記録が行われる。画像データを圧縮符号化する方式としては、例えば、動画の圧縮符号化方式であるＭＰＥＧ（Moving Picture Experts Group）方式や、静止画の圧縮符号化方式であるＪＰＥＧ（Joint Photographic Experts Group）方式が知られている。
【０００３】
ＭＰＥＧ方式やＪＰＥＧ方式では、画像データが圧縮符号化される際に、離散コサイン変換の処理が行われる。また、圧縮符号化された画像データが元の画像データに復元される際に、逆離散コサイン変換の処理が行われる。以下、離散コサイン変換は、ＤＣＴ（Discrete Cosine Transformation）と称され、逆離散コサイン変換は、ＩＤＣＴ（Inverse Discrete Cosine Transformation）と称される。
【０００４】
特許文献１は、伝送されてくる変換係数の順番に列ベクトルを並べ替えた逆直交行列を利用してＩＤＣＴ処理を行う復号化方式を開示する。特許文献１の復号化方式では、変換係数の並べ替えの処理が不要となり、また、変換係数の数によってＩＤＣＴの行列演算の打ち切り制御を行うことにより、無駄な演算時間を減少させることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平３−１６６８２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１は、変換係数の並べ替えの処理量およびＩＤＣＴの処理量を削減できるものの、伝送されてくる変換係数の順番に列ベクトルを並べ替えた逆直交行列を作成する必要がある。この逆直交行列を作成するために必要な処理量が、変換係数の並べ替えの処理量およびＩＤＣＴの処理量の削減効果を上回った場合、ＩＤＣＴ処理の高速化は期待できない。
【０００７】
その他の課題および新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態に係る復号化装置は、復号化された変換係数列をジグザグスキャン行列の形式で並べ替えたｍ×ｎ要素の変換係数行列、ＥＯＢ情報およびＺＲＬ情報を出力する復号化処理部と、ｍ×ｎ要素の変換係数行列に対して、ｍ×ｎ要素のＩＤＣＴ処理もしくはｐ×ｑ要素のＩＤＣＴ処理を実行する２次元ＩＤＣＴ処理部を備える。２次元ＩＤＣＴ処理部は、ｍ×ｎ要素の変換係数行列、ＥＯＢ情報およびＺＲＬ情報に基づいて、ｍ×ｎ要素のＩＤＣＴ処理もしくはｐ×ｑ要素のＩＤＣＴ処理を選択するために必要な行方向および列方向の要素数を判定するＩＤＣＴ判定部と、ｍ×ｎ要素のＩＤＣＴ処理を行うｍ×ｎＩＤＣＴ処理部と、ｐ×ｑ要素のＩＤＣＴ処理を行うｐ×ｑＩＤＣＴ処理部と、を有する。ｍ×ｎＩＤＣＴ処理部およびｐ×ｑＩＤＣＴ処理部は、ＩＤＣＴ判定部の判定結果に基づいて、ｍ×ｎ要素のＩＤＣＴ処理もしくはｐ×ｑ要素のＩＤＣＴ処理を選択的に実行し、ｍ×ｎ画素のブロック単位の画像データを復元する。
【発明の効果】
【０００９】
一実施の形態に係る復号化装置では、係数０の判定処理の処理量を削減し、復号化処理の高速化を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、ジグザグスキャン行列のスキャン順序を説明するための図である。
【図２】図２は、変換係数行列の係数分布の一例を示す図である。
【図３】図３は、変換係数行列の係数分布の一例を示す図である。
【図４】図４は、０係数判定処理を説明するための図である。
【図５】図５は、一実施の形態に係る復号化装置の構成の一例を示すブロック図である。
【図６】図６は、一実施の形態に係る復号化処理部の構成の一例を示すブロック図である。
【図７】図７は、一実施の形態に係るＩＤＣＴ判定部の構成の一例を示すブロック図である。
【図８】図８は、一実施の形態に係るＥＯＢ判定部の処理フローの一例を示すフローチャートである。
【図９】図９は、一実施の形態に係る０係数判定部の処理フローの一例を示すフローチャートである。
【図１０】図１０は、０係数判定処理の複数の例を説明するための図である。
【図１１】図１１は、一実施の形態に係る復号化装置の構成の一例を示すブロック図である。
【図１２】図１２は、一実施の形態に係る復号化処理部の構成の一例を示すブロック図である。
【図１３】図１３は、一実施の形態に係るＩＤＣＴ判定部の構成の一例を示すブロック図である。
【図１４】図１４は、一実施の形態に係るＱ値判定部の処理フローの一例を示すフローチャートである。
【図１５】図１５は、一実施の形態に係る復号化装置の構成の一例を示すブロック図である。
【図１６】図１６は、一実施の形態に係る復号化処理部の構成の一例を示すブロック図である。
【図１７】図１７は、一実施の形態に係るＩＤＣＴ判定部の構成の一例を示すブロック図である。
【図１８】図１８は、一実施の形態に係る符号化タイプ判定部の処理フローの一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
実施の形態の説明に先立って、下記の実施の形態を想到するに至った経緯について説明する。本発明者は、特許文献１に記載された列ベクトルを並べ替えて逆直交行列を作成する方式を止め、復号化された変換係数行列に応じて、２種類のＩＤＣＴ処理部を切り替えてＩＤＣＴ処理を実行することにより、高速な復号化処理を実現する方式を検討した。
【００１２】
本発明者らが検討した復号化装置は、復号化処理部および２次元ＩＤＣＴ処理部を有する。復号化処理部は、８×８画素ブロックの単位で符号化された符号化データに対して復号化処理を行う。復号化処理部は、復号化処理によって得られた変換係数列をジグザグスキャン行列の形式を用いて２次元への並べ替えを行い、空間周波数データである変換係数行列を生成する。
【００１３】
図１は、ジグザグスキャン行列のスキャン順序を説明するための図である。図１には、８×８＝６４個の枡目によって、要素数６４個を有する８×８の行列が示されている。また、図１に示された０から６３の数字（スキャン番号）および矢印は、ジグザグスキャン行列のスキャン順序を示している。復号化処理部は、復号化処理によって得られた変換係数列を、図１のジグザグスキャン行列に示されたスキャン番号に従った位置に並べ替えることによって、８×８要素の変換係数行列を生成する。
【００１４】
また、復号化によって得られたデータには、ブロックの終了を示すエンド・オブ・ブロック（ＥＯＢ）情報が含まれている。ＥＯＢ情報は、図１に示されたジグザグスキャン行列の形式で並べ替えられた変換係数行列の中で、最後の０ではない係数、すなわち、最後の有効な係数の位置を示す情報であって、図１のスキャン番号によって示される。例えば、ＥＯＢ情報がスキャン番号２０を示していれば、スキャン番号２１以降の係数は全て０である。
【００１５】
２次元ＩＤＣＴ処理部は、復号化処理部から、８×８要素の変換係数行列およびＥＯＢ情報を受け取る。また、２次元ＩＤＣＴ処理部は、８×８ＩＤＣＴ処理部および４×４ＩＤＣＴ処理部を有し、受け取った変換係数行列に対して２種類のＩＤＣＴ処理を実行することができる。
【００１６】
８×８ＩＤＣＴ処理部は、受け取った８×８要素の変換係数行列の全ての要素を有効な要素として、ＩＤＣＴ処理を行う。以下、８×８要素の変換係数行列は、８×８変換係数行列とも称される。また、８×８要素を有効な要素として行なわれるＩＤＣＴ処理は、８×８ＩＤＣＴ処理とも称される。
【００１７】
一方、４×４ＩＤＣＴ処理部は、受け取った８×８要素の変換係数行列のうちの低周波側の領域に位置する４×４要素を有効な要素として、ＩＤＣＴ処理を行う。４×４要素が位置する低周波側の領域は、例えば、図１に示される４×４の領域に対応する。以下、４×４要素の変換係数行列は、４×４変換係数行列とも称される。また、４×４要素を有効な要素として行われるＩＤＣＴ処理は、４×４ＩＤＣＴ処理とも称される。
【００１８】
２次元ＩＤＣＴ処理部は、ＥＯＢ情報に基づいて、図１の４×４の領域の外側に０はではない係数があるか否かの判断を行い、その判断の結果に基づいて、８×８ＩＤＣＴ処理および４×４ＩＤＣＴ処理のいずれかを実行する。
【００１９】
具体的には、２次元ＩＤＣＴ処理部は、ＥＯＢ情報に示されたスキャン番号が１０よりも小さい場合、０ではない係数、すなわち、有効な係数の全てが、４×４の領域の内側にあるものと判断し、４×４ＩＤＣＴ処理部による４×４ＩＤＣＴ処理を実行する。一方、２次元ＩＤＣＴ処理部は、ＥＯＢ情報がスキャン番号１０以上を示す場合、０ではない係数、すなわち、有効な係数が、４×４の領域の外側にあるものと判断し、８×８ＩＤＣＴ処理部による８×８ＩＤＣＴ処理を実行する。
【００２０】
このように、２次元ＩＤＣＴ処理部は、ＥＯＢ情報に基づいて、８×８ＩＤＣＴ処理部および４×４ＩＤＣＴ処理部を切り替えて、ＩＤＣＴ処理を実行する。４×４ＩＤＣＴ処理は、８×８ＩＤＣＴ処理に比べて、演算量が半分以下に抑えられる。４×４の領域の外側の係数の全てが０であるならば、４×４ＩＤＣＴ処理の結果は、８×８ＩＤＣＴ処理の結果と同じになる。つまり、変換係数の分布状況に応じて、８×８ＩＤＣＴ処理の代わりに、４×４ＩＤＣＴ処理が行われることによって、復号化処理の高速化が図られ得る。
【００２１】
しかしながら、ＥＯＢ情報に基づいて、８×８ＩＤＣＴ処理部と４×４ＩＤＣＴ処理部を切り替えて実行する方式では、８×８変換係数行列の係数分布によっては、４×４ＩＤＣＴ処理による高速化のメリットを享受できない場合がある。
【００２２】
図２は、ＥＯＢ情報がスキャン番号９を示す場合の８×８変換係数行列の係数分布の一例を示す図である。図２中の“１（９）”は、スキャン番号９の係数１が、図２に示された８×８変換係数行列の中で最後の０ではない係数であることを示している。
【００２３】
図２に示される係数分布の例では、ＥＯＢ情報がスキャン番号９を示すため、４×４ＩＤＣＴ処理部が選択される。４×４の領域の外側の係数の全てが０であるため、４×４ＩＤＣＴ処理により、復号化処理の高速化が図られる。
【００２４】
一方、図３は、ＥＯＢ情報がスキャン番号２４を示す場合の８×８変換係数行列の係数分布の一例を示す図である。図３中の“１（２４）”は、スキャン番号２４の係数１が、図３に示された８×８変換係数行列の中で最後の０ではない係数であることを示している。
【００２５】
図３に示される係数分布の例では、ＥＯＢ情報がスキャン番号２４を示すため、８×８ＩＤＣＴ処理部が選択される。しかしながら、図３に示されるように、４×４の領域の外側の係数の全てが０であるため、本来は、４×４ＩＤＣＴ処理が適用されるべきである。すなわち、図３に示される係数分布の例では、ＥＯＢ情報のみによって、８×８ＩＤＣＴ処理部と４×４ＩＤＣＴ処理部の切り替えが行われるため、４×４ＩＤＣＴ処理による高速化のメリットを享受できていない。８×８ＩＤＣＴ処理部および４×４ＩＤＣＴ処理部の切り替えが適切に行われるためには、ＥＯＢ情報だけではなく、８×８変換係数行列の係数分布を正確に把握する必要がある。
【００２６】
図４は、ＥＯＢ情報がスキャン番号１１〜１３、１７、１８もしくは２４を示す場合の０係数判定処理を説明するための図である。図４に示されるように、ＥＯＢ情報が１１、１２および１３を示す場合には、２次元ＩＤＣＴ処理部は、４×４の領域の外側の係数であるスキャン番号１０の係数が０であるか否かを判定する。スキャン番号１０の係数が０であれば、２次元ＩＤＣＴ処理部は、４×４ＩＤＣＴ処理部を選択することができる。
【００２７】
ＥＯＢ情報が１７もしくは１８を示す場合には、２次元ＩＤＣＴ処理部は、４×４の領域の外側の係数であるスキャン番号１０および１４〜１６の係数の全てが０であるか否かを判定する。スキャン番号１０および１４〜１６の係数が全て０であれば、２次元ＩＤＣＴ処理部は、４×４ＩＤＣＴ処理部を選択することができる。
【００２８】
ＥＯＢ情報が２４を示す場合には、２次元ＩＤＣＴ処理部は、４×４の領域の外側の係数であるスキャン番号１０、１４〜１６および１９〜２３の係数の全てが０であるか否かを判定する。スキャン番号１０、１４〜１６および１９〜２３の係数が全て０であれば、２次元ＩＤＣＴ処理部は、４×４ＩＤＣＴ処理部を選択することができる。
【００２９】
このように、２次元ＩＤＣＴ処理部は、ＥＯＢ情報がスキャン番号１１〜１３、１７、１８もしくは２４を示す場合には、４×４の領域の外側の係数が０であるか否かを判定することによって、８×８変換係数行列の係数分布を正確に把握することができる。これにより、２次元ＩＤＣＴ処理部は、８×８ＩＤＣＴ処理部および４×４ＩＤＣＴ処理部の切り替えを適切に行うことができる。
【００３０】
しかしながら、４×４の領域の外側の係数が０であるか否かの０係数判定処理によって、処理量が増加する。特に、ＥＯＢ情報がスキャン番号２４を示す場合には、スキャン番号１０、１４〜１６および１９〜２３の９個の係数の０係数判定処理が必要になってしまい、処理量が著しく増大する。この場合、８×８ＩＤＣＴ処理部および４×４ＩＤＣＴ処理部の切り替えが適切に行うことができたとしても、０係数判定処理の処理量の増加により、４×４ＩＤＣＴ処理による高速化のメリットが相殺されてしまう恐れがある。さらには、処理対象となる画像データ次第では、４×４ＩＤＣＴ処理による高速化のメリットが相殺されるだけでなく、逆に復号化処理が遅くなる場合すらある。本発明者らは、４×４ＩＤＣＴ処理の利用率を改善しつつ、８×８変換係数行列の係数分布を正確に把握するための処理量を削減できる復号化装置について検討した結果、以下の実施の形態を想到するに至った。
【００３１】
以下、一実施の形態に係る復号化装置について、図面を参照して詳細に説明する。なお、明細書および図面において、同一の構成要素または対応する構成要素には、同一の符号を付し、重複する説明は省略する。また、図面では、説明の便宜上、構成を省略または簡略化している場合もある。また、実施の形態の各々は、他の実施の形態の少なくとも一部と任意に組み合わされてもよい。
【００３２】
［実施の形態１］
図５は、実施の形態１に係る復号化装置の構成の一例を示すブロック図である。図５に示されるように、復号化装置１００は、符号化装置によって８×８画素のブロック単位でＤＣＴ処理され、その後符号化処理された符号化データを受け取る。復号化装置１００は、受け取った符号化データに対して、復号化処理およびＩＤＣＴ処理を実行し、８×８画素ブロックの画像データを復元する。復号化装置１００は、復元した８×８画素ブロックの画像データを出力する。
【００３３】
復号化装置１００は、復号化処理部１１０および２次元ＩＤＣＴ処理部１２０を備える。復号化処理部１１０は、符号化データに対して復号化処理を実行し、復号化された変換係数列を生成する。復号化処理部１１０は、復号化された変換係数列を、図１のジグザグスキャン行列に示されたスキャン番号に従った位置に並べ替えを行い、空間周波数データである８×８変換係数行列を生成する。復号化処理部１１０は、２次元ＩＤＣＴ処理部１２０に接続され、生成した８×８変換係数行列を２次元ＩＤＣＴ処理部１２０へ出力する。
【００３４】
また、復号化処理部１１０は、ＥＯＢ情報およびゼロ・ラン・レングス（ＺＲＬ）情報を２次元ＩＤＣＴ処理部１２０へ出力する。ＥＯＢ情報およびＺＲＬ情報は、符号化データに対する復号化処理によって得られる情報である。ＥＯＢ情報は、前述の通り、ジグザグスキャン行列の形式で並べ替えられた変換係数行列の中で最後の０ではない係数、すなわち、最後の有効な係数の位置を示す情報であって、スキャン番号によって示される。
【００３５】
一方、ＺＲＬ情報は、ＥＯＢ情報が示す０ではない最後の係数とその直前に位置する０ではない係数との間にある０の係数の個数を示す情報である。例えば、図２に示された８×８変換係数行列の例では、ＥＯＢ情報はスキャン番号９を示し、その直前に位置する０ではない係数はスキャン番号８であるため、スキャン番号９の係数（１）とスキャン番号８の係数（２）との間に存在する０の係数は、０個となる。したがって、ＺＲＬ情報は、０となる。
【００３６】
また、図３に示された８×８変換係数行列の例では、ＥＯＢ情報はスキャン番号２４を示し、その直前に位置する０ではない係数はスキャン番号９であるため、スキャン番号２４の係数（１）とスキャン番号９の係数（１）との間に存在する０の係数は、１４個となる。したがって、ＺＲＬ情報は、１４となる。
【００３７】
２次元ＩＤＣＴ処理部１２０は、ＩＤＣＴ判定部１３０、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２を備える。ＩＤＣＴ判定部１３０は、復号化処理部１１０に接続され、８×８変換係数行列、ＥＯＢ情報およびＺＲＬ情報を受け取る。ＩＤＣＴ判定部１３０は、８×８変換係数行列、ＥＯＢ情報およびＺＲＬ情報に基づいて、８×８ＩＤＣＴ処理もしくは４×４ＩＤＣＴ処理を選択するために必要な行方向および列方向の要素数を判定する。ＩＤＣＴ判定部１３０は、判定の結果、判定した必要な行方向および列方向の要素数に基づいて、８×８ＩＤＣＴ処理および４×４ＩＤＣＴ処理のいずれかを選択するための選択信号を生成する。生成された選択信号は、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２に出力される。
【００３８】
８×８ＩＤＣＴ処理部１４１は、復号化処理部１１０およびＩＤＣＴ判定部１３０に接続される。８×８ＩＤＣＴ処理部１４１は、ＩＤＣＴ判定部１３０から８×８ＩＤＣＴ処理を示す選択信号を受け取った場合、復号化処理部１１０から受け取った８×８要素の変換係数行列の全ての要素を有効な要素として、ＩＤＣＴ処理を行う。８×８ＩＤＣＴ処理部１４１は、８×８変換係数行列に対して、８×８ＩＤＣＴ処理を実行することにより、８×８画素ブロックの画像データを復元する。
【００３９】
４×４ＩＤＣＴ処理部１４２は、復号化処理部１１０およびＩＤＣＴ判定部１３０に接続される。４×４ＩＤＣＴ処理部１４２は、ＩＤＣＴ判定部１３０から４×４ＩＤＣＴ処理を示す選択信号を受け取った場合、復号化処理部１１０から受け取った８×８要素の変換係数行列のうちの低周波側の領域に位置する４×４要素を有効な要素として、ＩＤＣＴ処理を行う。低周波側の領域は、例えば、図１に示される４×４の領域に対応する。４×４ＩＤＣＴ処理部１４２は、８×８変換係数行列に対して、４×４ＩＤＣＴ処理を実行することにより、８×８画素ブロックの画像データを復元する。
【００４０】
このように、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２は、ＩＤＣＴ判定部１３０の判定結果に基づいて、８×８変換係数行列に対して、８×８ＩＤＣＴ処理もしくは４×４ＩＤＣＴ処理を選択的に実行し、８×８画素ブロックの画像データを復元する。
【００４１】
図６は、実施の形態１に係る復号化処理部１１０の構成の一例を示すブロック図である。図６に示されるように、復号化処理部１１０は、エントロピー復号化部１１１、ジグザグスキャン処理部１１２および逆量子化処理部１１３を備える。
【００４２】
エントロピー復号化部１１１は、エントロピー符号化された符号化データであるエントロピー符号化列を受け取る。エントロピー符号化列は、例えば、エントロピー符号化の一種であるハフマン符号を用いて符号化されている。この場合、エントロピー復号化部１１１は、受け取ったエントロピー符号化列に対して、ハフマン符号の復号化処理を行う。エントロピー復号化部１１１は、ジグザグスキャン処理部１１２に接続され、復号化された変換係数列をジグザグスキャン処理部１１２へ出力する。また、エントロピー復号化部１１１は、符号化データの復号化処理によって得られたＥＯＢ情報およびＺＲＬ情報を２次元ＩＤＣＴ処理部１２０へ出力する。
【００４３】
ジグザグスキャン処理部１１２は、エントロピー復号化部１１１から復号化された変換係数列を受け取る。ジグザグスキャン処理部１１２は、復号化された変換係数列を、図１のジグザグスキャン行列に示されたスキャン番号に従った位置に並べ替えを行い、８×８変換係数行列を生成する。ジグザグスキャン処理部１１２は、逆量子化処理部１１３に接続され、生成した８×８変換係数行列を逆量子化処理部１１３へ出力する。
【００４４】
ＭＰＥＧ方式やＪＰＥＧ方式では、符号化装置は、ＤＣＴ処理後の変換係数行列の各要素を、量子化行列の各要素で割り算することによって、量子化処理を行っている。これにより、データ量の圧縮化が行われている。そのため、逆量子化処理部１１３では、符号化の際に用いられた量子化行列を用いて、逆量子化処理が行われる。
【００４５】
具体的には、逆量子化処理部１１３は、ジグザグスキャン処理部１１２から受け取った８×８変換係数行列の各要素を、８×８要素の量子化行列の各要素で掛け算して逆量子化処理を行い、逆量子化された空間周波数データである８×８変換係数行列を生成する。生成された８×８変換係数行列は、２次元ＩＤＣＴ処理部１２０へ出力される。
【００４６】
図７は、実施の形態１に係るＩＤＣＴ判定部１３０の構成の一例を示すブロック図である。図７に示されるように、ＩＤＣＴ判定部１３０は、ＥＯＢ判定部１３１、０係数判定部１３２およびＩＤＣＴ処理選択部１３３を備える。
【００４７】
ＥＯＢ判定部１３１は、復号化処理部１１０、０係数判定部１３２およびＩＤＣＴ処理選択部１３３に接続される。ＥＯＢ判定部１３１は、復号化処理部１１０から受け取ったＥＯＢ情報に基づいて、８×８ＩＤＣＴ処理、４×４ＩＤＣＴ処理および０係数判定処理のいずれかを実行すべきかを判定する。ＥＯＢ判定部１３１は、判定した結果をＥＯＢ判定結果として、０係数判定部１３２およびＩＤＣＴ処理選択部１３３へ出力する。
【００４８】
０係数判定部１３２は、復号化処理部１１０、ＥＯＢ判定部１３１およびＩＤＣＴ処理選択部１３３に接続される。０係数判定部１３２は、ＥＯＢ判定部１３１から０係数判定処理を示すＥＯＢ判定結果を受け取った場合、復号化処理部１１０から受け取った８×８変換係数行列、ＥＯＢ情報およびＺＲＬ情報に基づいて、８×８ＩＤＣＴ処理および４×４ＩＤＣＴ処理のいずれかを実行すべきかを判定する。０係数判定部１３２は、判定した結果を０係数判定結果として、ＩＤＣＴ処理選択部１３３へ出力する。
【００４９】
ＩＤＣＴ処理選択部１３３は、ＥＯＢ判定部１３１、０係数判定部１３２、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２に接続される。ＩＤＣＴ処理選択部１３３は、ＥＯＢ判定部１３１から８×８ＩＤＣＴ処理を示すＥＯＢ判定結果、もしくは、０係数判定部１３２から８×８ＩＤＣＴ処理を示す０係数判定結果を受け取った場合、８×８ＩＤＣＴ処理を示す選択信号を生成する。一方、ＩＤＣＴ処理選択部１３３は、ＥＯＢ判定部１３１から４×４ＩＤＣＴ処理を示すＥＯＢ判定結果、もしくは、０係数判定部１３２から４×４ＩＤＣＴ処理を示す０係数判定結果を受け取った場合、４×４ＩＤＣＴ処理を示す選択信号を生成する。生成された選択信号は、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２に出力される。
【００５０】
図８は、実施の形態１に係るＥＯＢ判定部１３１の処理フローの一例を示すフローチャートである。図８に示されるように、ステップＳ２０１において、ＥＯＢ判定部１３１は、復号化処理部１１０から受け取ったＥＯＢ情報を確認し、ＥＯＢ情報に示されたスキャン番号が１０よりも小さいか否かを判定する。ＥＯＢ情報に示されたスキャン番号が１０よりも小さいと判定された場合（ステップＳ２０１のＹＥＳ）、ステップＳ２０３へ進む。一方、ＥＯＢ情報に示されたスキャン番号が１０よりも小さくないと判定された場合（ステップＳ２０１のＮＯ）、ステップＳ２０２へ進む。
【００５１】
例えば、図４に示されるように、スキャン番号１０は、４×４の領域の外側にある、つまり、４×４要素に含まれない係数のスキャン番号のうちの最小のスキャン番号に該当する。したがって、ステップＳ２０１の処理は、ＥＯＢ番号に示されたスキャン番号が、４×４要素に含まれない係数のスキャン番号のうちの最小のスキャン番号よりも小さいか否かを判定する処理である。
【００５２】
ステップＳ２０２において、ＥＯＢ判定部１３１は、復号化処理部１１０から受け取ったＥＯＢ情報を確認し、ＥＯＢ情報に示されたスキャン番号が２４よりも大きいか否かを判定する。ＥＯＢ情報に示されたスキャン番号が２４よりも大きいと判定された場合（ステップＳ２０２のＹＥＳ）、ステップＳ２０４へ進む。一方、ＥＯＢ情報に示されたスキャン番号が２４よりも大きくないと判定された場合（ステップＳ２０２のＮＯ）、ステップＳ２０５へ進む。
【００５３】
例えば、図４に示されるように、スキャン番号２４は、４×４の領域の内側にある、つまり、４×４要素に含まれる係数のスキャン番号のうちの最大のスキャン番号に該当する。したがって、ステップＳ２０２の処理は、ＥＯＢ番号に示されたスキャン番号が、４×４要素に含まれる係数のスキャン番号のうちの最大のスキャン番号よりも大きいか否かを判定する処理である。
【００５４】
ステップＳ２０３において、ＥＯＢ判定部１３１は、実行すべき処理を４×４ＩＤＣＴ処理に決定する。例えば、図４において、ＥＯＢ情報に示されたスキャン番号が１０よりも小さい場合、０ではない係数は、４×４の領域の内側のみに存在し、４×４の領域の外側には存在しない。そのため、ＥＯＢ情報に示されたスキャン番号が１０よりも小さい場合には、実行すべき処理は、４×４ＩＤＣＴ処理に確定される。
【００５５】
ステップＳ２０４において、ＥＯＢ判定部１３１は、実行すべき処理を８×８ＩＤＣＴ処理に決定する。例えば、図４において、ＥＯＢ情報に示されたスキャン番号が２４よりも大きい場合、０ではない係数は、４×４の領域の内側だけではなく、４×４の領域の外側にも存在する。そのため、ＥＯＢ情報に示されたスキャン番号が２４よりも大きい場合には、実行すべき処理は、８×８ＩＤＣＴ処理に確定される。
【００５６】
ステップＳ２０５において、ＥＯＢ判定部１３１は、実行すべき処理を０係数判定処理に決定する。例えば、図４において、ＥＯＢ情報に示されたスキャン番号が１０〜２４のうちのいずれかである場合、０ではない係数が４×４の領域の外側に存在しているか否かを判定するためには、４×４の領域の外側にあるスキャン番号１０、１４〜１６および１９〜２３の係数が０であるか否かの判定が必要となる。すなわち、ＥＯＢ情報に示されたスキャン番号が１０〜２４のうちのいずれかである場合には、実行すべき処理が、８×８ＩＤＣＴ処理であるのか、それとも、４×４ＩＤＣＴ処理であるのか、をＥＯＢ情報だけでは確定させることができず、０係数判定処理が必要となる。
【００５７】
このように、図８に示されるＥＯＢ判定部１３１の処理フローでは、ＥＯＢ判定部１３１は、ＥＯＢ情報に示されたスキャン番号が、１０よりも小さいか否か、換言すれば、４×４要素に含まれない係数のスキャン番号のうちの最小のスキャン番号よりも小さいか否かを判定する。当該判定結果が、ＹＥＳであれば、ＥＯＢ判定部１３１は、４×４ＩＤＣＴ処理を実行すべき処理として決定する。また、ＥＯＢ判定部１３１は、ＥＯＢ情報に示されたスキャン番号が、２４よりも大きいか否か、換言すれば、４×４要素に含まれる係数のスキャン番号のうちの最大のスキャン番号よりも大きいか否かを判定する。当該判定結果が、ＹＥＳであれば、ＥＯＢ判定部１３１は、８×８ＩＤＣＴ処理を実行すべき処理として決定する。
【００５８】
これらの判定処理において、いずれの判定結果もＮＯである場合には、ＥＯＢ判定部１３１は、０係数判定処理を実行すべき処理として決定する。いずれの判定結果もＮＯである場合は、ＥＯＢ情報に示されたスキャン番号が、１０以上であり、かつ、２４以下であるか否か、換言すれば、４×４要素に含まれない最小のスキャン番号以上で、かつ、４×４要素に含まれる最大のスキャン番号以下であるか否かを判定した結果、ＹＥＳとなる場合と同等である。
【００５９】
図９は、実施の形態１に係る０係数判定部１３２の処理フローの一例を示すフローチャートである。図９に示されるように、ステップＳ３０１において、０係数判定部１３２は、復号化処理部１１０から受け取ったＥＯＢ情報を確認し、ＥＯＢ情報に示されたスキャン番号が１０、１４〜１６および１９〜２３のいずれかであるか否かを判定する。ＥＯＢ情報に示されたスキャン番号が１０、１４〜１６および１９〜２３のいずれかであると判定された場合（ステップＳ３０１のＹＥＳ）、ステップＳ３０８へ進む。一方、ＥＯＢ情報に示されたスキャン番号が１０、１４〜１６および１９〜２３のいずれでもないと判定された場合（ステップＳ３０１のＮＯ）、ステップＳ３０２へ進む。
【００６０】
ステップＳ３０８では、０係数判定部１３２は、実行すべき処理を８×８ＩＤＣＴ処理に決定する。ステップＳ３０１のＹＥＳの場合には、例えば、図４において、スキャン番号が１０、１４〜１６および１９〜２３のいずれかに０ではない係数が存在する、すなわち、４×４の領域の外側に０ではない係数が存在するため、実行すべき処理は、８×８ＩＤＣＴ処理に確定される。
【００６１】
ステップＳ３０２において、０係数判定部１３２は、スキャン番号１０の係数が０であるか否かを判定する。スキャン番号１０の係数が０であると判定された場合（ステップＳ３０２のＹＥＳ）、ステップＳ３０３へ進む。一方、スキャン番号１０の係数が０ではないと判定された場合（ステップＳ３０２のＮＯ）、ステップＳ３０８へ進む。
【００６２】
ステップＳ３０２のＮＯの場合には、例えば、図４において、４×４の領域の外側にあるスキャン番号１０に０ではない係数が存在するため、実行すべき処理は、８×８ＩＤＣＴ処理に確定される。
【００６３】
ステップＳ３０３において、０係数判定部１３２は、復号化処理部１１０から受け取ったＥＯＢ情報を確認し、ＥＯＢ情報に示されたスキャン番号が１３以下であるか否かを判定する。ＥＯＢ情報に示されたスキャン番号が１３以下であると判定された場合（ステップＳ３０３のＹＥＳ）、ステップＳ３０７へ進む。一方、ＥＯＢ情報に示されたスキャン番号が１３以下ではないと判定された場合（ステップＳ３０３のＮＯ）、ステップＳ３０４へ進む。
【００６４】
ステップＳ３０７では、０係数判定部１３２は、実行すべき処理を４×４ＩＤＣＴ処理に決定する。ステップＳ３０３のＹＥＳの場合には、例えば、図４において、ＥＯＢ情報に示されたスキャン番号が１１〜１３のいずれかであり、かつ、スキャン番号１０の係数は０である、すなわち、４×４の領域の外側に０ではない係数が存在しないため、実行すべき処理は、４×４ＩＤＣＴ処理に確定される。
【００６５】
ステップＳ３０４において、０係数判定部１３２は、スキャン番号１４〜１６の係数のいずれも０であるか否かを判定する。スキャン番号１４〜１６の係数のいずれも０であると判定された場合（ステップＳ３０４のＹＥＳ）、ステップＳ３０５へ進む。一方、スキャン番号１４〜１６の係数のいずれかが０ではないと判定された場合（ステップＳ３０４のＮＯ）、ステップＳ３０８へ進む。
【００６６】
ステップＳ３０４のＮＯの場合には、例えば、図４において、４×４の領域の外側にあるスキャン番号１４〜１６のいずれかに０ではない係数が存在するため、実行すべき処理は、８×８ＩＤＣＴ処理に確定される。
【００６７】
ステップＳ３０５において、０係数判定部１３２は、復号化処理部１１０から受け取ったＥＯＢ情報を確認し、ＥＯＢ情報に示されたスキャン番号が１８以下であるか否かを判定する。ＥＯＢ情報に示されたスキャン番号が１８以下であると判定された場合（ステップＳ３０５のＹＥＳ）、ステップＳ３０７へ進む。一方、ＥＯＢ情報に示されたスキャン番号が１８以下ではないと判定された場合（ステップＳ３０５のＮＯ）、ステップＳ３０６へ進む。
【００６８】
ステップＳ３０５のＹＥＳの場合には、例えば、図４において、ＥＯＢ情報に示されたスキャン番号が１７もしくは１８のいずれかであり、かつ、スキャン番号１０および１４〜１６の係数はいずれも０である、すなわち、４×４の領域の外側に０ではない係数が存在しないため、実行すべき処理は、４×４ＩＤＣＴ処理に確定される。
【００６９】
ステップＳ３０６において、０係数判定部１３２は、復号化処理部１１０から受け取ったＺＲＬ情報を確認し、ＺＲＬ情報が５以上であるか否かを判定する。ＺＲＬ情報が５以上であると判定された場合（ステップＳ３０６のＹＥＳ）、ステップＳ３０７へ進む。一方、ＺＲＬ情報が５以上ではないと判定された場合（ステップＳ３０６のＮＯ）、ステップＳ３０８へ進む。
【００７０】
ステップＳ３０６のＹＥＳの場合には、例えば、図４において、ＥＯＢ情報に示されたスキャン番号が２４であり、かつ、スキャン番号１０および１４〜１６の係数はいずれも０である。さらに、ＺＲＬ情報は５以上であるため、ＥＯＢ情報が示す０ではない最後の係数（スキャン番号２４の係数）とその直前に位置する０ではない係数との間に、５個以上の０の係数が連続することになる。つまり、０係数判定部１３２は、スキャン番号１９〜２３の係数の全てが０であると判断する。したがって、４×４の領域の外側に０ではない係数が存在しないため、実行すべき処理は、４×４ＩＤＣＴ処理に確定される。
【００７１】
一方、ステップＳ３０６のＮＯの場合には、例えば、図４において、ＥＯＢ情報に示されたスキャン番号が２４であり、かつ、スキャン番号１０および１４〜１６の係数はいずれも０である。しかし、ＺＲＬ情報は５以上ではないため、ＥＯＢ情報が示す０ではない最後の係数（スキャン番号２４の係数）とその直前に位置する０ではない係数との間に、５個以上の０の係数が連続しないことになる。つまり、０係数判定部１３２は、スキャン番号１９〜２３の係数に０ではない係数が存在すると判断する。したがって、４×４の領域の外側に０ではない係数が存在するため、実行すべき処理は、８×８ＩＤＣＴ処理に確定される。
【００７２】
このように、ＺＲＬ情報に基づく０係数判定処理は、ＥＯＢ情報がスキャン番号２４を示す場合に、スキャン番号１９〜２３の係数に対して行われる。例えば、図４に示されるように、スキャン番号２４は、４×４の領域の内側にある、つまり、４×４要素に含まれる係数のスキャン番号のうちの最大のスキャン番号に該当する。また、例えば、図４に示されるように、スキャン番号１９〜２３の係数は、スキャン番号２４の係数と、４×４の領域の内側にある、つまり、４×４要素に含まれるスキャン番号１８の係数と、の間に位置する。換言すれば、スキャン番号１９〜２３の係数は、４×４要素に含まれる最大のスキャン番号（２４）の係数と、その最大のスキャン番号の係数の直前に位置し、４×４要素に含まれるスキャン番号（１８）の係数と、の間に位置する。
【００７３】
したがって、０係数判定部１３２は、ＥＯＢ情報に示されたスキャン番号が、４×４要素に含まれるスキャン番号のうちの最大のスキャン番号である場合、ＺＲＬ情報に基づいて、最大のスキャン番号の係数と、最大のスキャン番号の係数の直前に位置し、４×４要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数の全てが、０であるか否かを判定する。
【００７４】
最大のスキャン番号の係数と、最大のスキャン番号の係数の直前に位置し、４×４要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数の全てが、０であると判定された場合、０係数判定部１３２は、４×４ＩＤＣＴ処理を実行すべき処理として決定する。
【００７５】
一方、最大のスキャン番号の係数と、最大のスキャン番号の係数の直前に位置し、４×４要素に含まれるスキャン番号の係数と、の間にあるスキャン番号の係数の全てが、０ではないと判定された場合、０係数判定部１３２は、８×８ＩＤＣＴ処理を実行すべき処理として決定する。
【００７６】
以上の通り、実施の形態１に係る復号化装置１００では、ＩＤＣＴ判定部１３０は、復号化処理部１１０から受け取った８×８変換係数行列、ＥＯＢ情報およびＺＲＬ情報に基づいて、８×８ＩＤＣＴ処理もしくは４×４ＩＤＣＴ処理を選択するために必要な行方向および列方向の要素数の判定を行う。８×８変換係数行列および４×４変換係数行列は、ＩＤＣＴ判定部１３０の判定結果に基づいて生成された選択信号に応じて、８×８変換係数行列に対して、８×８ＩＤＣＴ処理もしくは４×４ＩＤＣＴ処理を選択的に実行し、８×８画素のブロック単位の画像データを復元する。
【００７７】
８×８ＩＤＣＴ処理および４×４ＩＤＣＴ処理の選択が適切に行われるためには、８×８変換係数行列の係数分布が正確に把握されることが必要である。そのためには、４×４の領域の外側の係数が０であるか否かの判定処理、つまり、０係数判定処理を行うことが求められる。０係数判定処理は、係数が格納されている記憶領域にアクセスし、その記憶領域から係数を読み出し、読み出した係数を０と比較する、という複数のプロセスによって行われるため、処理量が増加する。特に、ＥＯＢ情報がスキャン番号２４を示す場合には、４×４の領域の外側となるスキャン番号１０、１４〜１６および１９〜２３の９個の係数に対して０係数判定処理が必要になり、処理量が著しく増加する。
【００７８】
しかしながら、実施の形態１に係る復号化装置１００では、スキャン番号１９〜２３の係数の０係数判定処理において、スキャン番号１９〜２３の係数に対して、個別に０係数判定処理を行わず、ＺＲＬ情報を用いることによって、一度の処理で簡単に０係数判定処理を実行することができる。すなわち、実施の形態１に係る復号化装置１００は、ＺＲＬ情報を用いることにより０係数判定処理の処理量を削減しつつも、８×８変換係数行列の分布状況を正確に把握することによって４×４ＩＤＣＴ処理の利用率を改善し、復号化処理の高速化を図ることができる。
【００７９】
なお、上述した実施の形態１では、８×８変換係数行列に対して、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２を用いて、８×８ＩＤＣＴ処理および４×４ＩＤＣＴ処理を選択的に実行する例が示されたが、これに限定されない。すなわち、ｍ×ｎ変換係数行列に対して、ｍ×ｎＩＤＣＴ処理部およびｐ×ｑＩＤＣＴ処理部を用いて、ｍ×ｎＩＤＣＴ処理およびｐ×ｑＩＤＣＴ処理を選択的に実行してもよい。ｍおよびｐは、行方向の要素数を示し、ｎおよびｑは、列方向の要素数を示す。ｍ、ｎ、ｐおよびｑの各変数は、２以上の自然数をとることができ、ｍ、ｎ、ｐおよびｑの変数の間には、ｍ＞ｐかつｎ≧ｑ、もしくは、ｍ≧ｐかつｎ＞ｑのいずれかの関係が成り立つ。
【００８０】
したがって、上述した実施の形態１は、ｍ＝ｎ＝８、ｐ＝ｑ＝４の場合に対応した例となる。また、ｍ＝ｎ＝１６、ｐ＝ｑ＝８とするならば、１６×１６画素ブロックの単位で符号化された符号化データに対して、１６×１６ＩＤＣＴ処理および８×８ＩＤＣＴ処理を選択的に実行して、１６×１６画素ブロックの画像データを復元する例に対応する。
【００８１】
図１０は、ｍ×ｎＩＤＣＴ処理およびｐ×ｑＩＤＣＴ処理の場合の０係数判定処理の複数の例を説明するための図である。図１０に示されるように、ｍ＝ｎ＝８、ｐ＝ｑ＝５の場合には、５×５の領域の外側に０ではない係数が存在するか否かを判定する必要がある。特に、ＥＯＢ情報がスキャン番号３９を示す場合、スキャン番号３３〜３８の係数に対して、ＺＲＬ情報に基づいた０係数判定処理が実行される。
【００８２】
また、図１０に示されるように、ｍ＝ｎ＝８、ｐ＝３、ｑ＝４の場合には、３×４の領域の外側に０ではない係数が存在するか否かを判定する必要がある。具体的には、ＥＯＢ情報がスキャン番号１８を示す場合、スキャン番号１３〜１７の係数に対して、ＺＲＬ情報に基づいた０係数判定処理が実行される。なお、図１０では、ｍ＝ｎ＝８の例が示されたが、例えば、６×８のようにｍ≠ｎであってもよい。
【００８３】
上述した実施の形態１では、ジグザグスキャンのスキャン順序は、図１に示される順序にて説明されたが、これに限定されない。例えば、図１では、スキャン順序が、行方向に０から１になっているが、列方向に０から１になってもよい。この場合には、図１のスキャン順序は、０→２→１→５→４→・・・のようになる。
【００８４】
また、上述した実施の形態１では、２次元ＩＤＣＴ処理部１２０は、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２を有し、８×８ＩＤＣＴ処理および４×４ＩＤＣＴ処理の２種類のＩＤＣＴ処理を実行可能であるが、これに限定されない。すなわち、３種類以上のＩＤＣＴ処理が実行可能な構成であってもよい。例えば、２次元ＩＤＣＴ処理部１２０は、８×８ＩＤＣＴ処理、６×６ＩＤＣＴ処理および４×４ＩＤＣＴ処理の３種類のＩＤＣＴ処理が実行可能なように、構成されてもよい。
【００８５】
［実施の形態２］
次いで、実施の形態２を説明する。実施の形態２において、実施の形態１と同一の機能を有する構成については、同一の符号を付し、その説明を省略する。
【００８６】
図１１は、実施の形態２に係る復号化装置１００ａの構成の一例を示すブロック図である。実施の形態２に係る復号化装置１００ａは、実施の形態１に係る復号化装置１００の別の形態となる。図１１に示されるように、復号化装置１００ａは、復号化処理部１１０ａおよび２次元ＩＤＣＴ処理部１２０ａを備える。
【００８７】
復号化処理部１１０ａは、８×８変換係数行列、ＥＯＢ情報およびＺＲＬ情報に加えて、量子化係数値（Ｑ値）情報を２次元ＩＤＣＴ処理部１２０ａへ出力する。
【００８８】
２次元ＩＤＣＴ処理部１２０ａは、ＩＤＣＴ判定部１３０ａ、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２を備える。ＩＤＣＴ判定部１３０ａは、復号化処理部１１０ａ、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２に接続される。ＩＤＣＴ判定部１３０ａは、復号化処理部１１０ａから、８×８変換係数行列、ＥＯＢ情報およびＺＲＬ情報に加えて、Ｑ値情報を受け取る。
【００８９】
図１２は、実施の形態２に係る復号化処理部１１０ａの構成の一例を示すブロック図である。図１２に示されるように、図６の逆量子化処理部１１３は、逆量子化処理部１１３ａに変更される。
【００９０】
量子化処理および逆量子化処理を行う際に使用される量子化行列の各要素は、変換係数のデータ量の圧縮率を調整するために、Ｑ値によって変更される。一般的に、Ｑ値が大きいほど圧縮率が高く、Ｑ値が低いほど圧縮率が低い。Ｑ値が大きい場合には、変換係数行列内の０係数が増える傾向になり、逆にＱ値が小さい場合には、変換係数行列内の０係数が減る傾向になる。すなわち、変換係数行列の０係数の分布は、Ｑ値に大きく依存する。
【００９１】
逆量子化処理部１１３ａは、逆量子化処理によって生成された８×８変換係数行列に加えて、逆量子化処理を実行する際に用いられたＱ値をＱ値情報として２次元ＩＤＣＴ処理部１２０ａへ出力する。
【００９２】
図１３は、実施の形態２に係るＩＤＣＴ判定部１３０ａの構成の一例を示すブロック図である。図１３に示されるように、図７の０係数判定部１３２およびＩＤＣＴ処理選択部１３３は、０係数判定部１３２ａおよびＩＤＣＴ処理選択部１３３ａにそれぞれ変更される。また、ＩＤＣＴ判定部１３０ａは、図７に示されたＩＤＣＴ判定部１３０の構成に加えて、Ｑ値判定部４０１を備える。
【００９３】
Ｑ値判定部４０１は、復号化処理部１１０ａ、ＥＯＢ判定部１３１、０係数判定部１３２ａおよびＩＤＣＴ処理選択部１３３ａに接続される。Ｑ値判定部４０１は、復号化処理部１１０ａから出力されたＱ値情報およびＥＯＢ判定部１３１から出力されたＥＯＢ判定結果を受け取る。
【００９４】
また、Ｑ値判定部４０１は、Ｑ判定値を格納するＱ判定値レジスタ４０２を備える。Ｑ値判定部４０１は、ＥＯＢ判定部１３１から０係数判定処理を示すＥＯＢ判定結果を受け取った場合、Ｑ値情報から得られたＱ値およびＱ判定値レジスタ４０２に格納されたＱ判定値に基づいて、８×８ＩＤＣＴ処理および０係数判定処理のいずれかを実行すべきかを判定する。Ｑ値判定部４０１は、判定した結果をＱ値判定結果として、０係数判定部１３２ａおよびＩＤＣＴ処理選択部１３３ａへ出力する。
【００９５】
０係数判定部１３２ａは、復号化処理部１１０ａ、Ｑ値判定部４０１およびＩＤＣＴ処理選択部１３３ａに接続される。０係数判定部１３２ａは、Ｑ値判定部４０１から０係数判定処理を示すＱ値判定結果を受け取った場合、復号化処理部１１０ａから受け取った８×８変換係数行列、ＥＯＢ情報およびＺＲＬ情報に基づいて、８×８ＩＤＣＴ処理および４×４ＩＤＣＴ処理のいずれかを実行すべきかを判定する。０係数判定部１３２ａは、判定した結果を０係数判定結果として、ＩＤＣＴ処理選択部１３３ａへ出力する。
【００９６】
ＩＤＣＴ処理選択部１３３ａは、ＥＯＢ判定部１３１、Ｑ値判定部４０１、０係数判定部１３２ａ、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２に接続される。ＩＤＣＴ処理選択部１３３ａは、ＥＯＢ判定部１３１から８×８ＩＤＣＴ処理を示すＥＯＢ判定結果、Ｑ値判定部４０１から８×８ＩＤＣＴ処理を示すＱ値判定結果、もしくは、０係数判定部１３２ａから８×８ＩＤＣＴ処理を示す０係数判定結果を受け取った場合、８×８ＩＤＣＴ処理を示す選択信号を生成する。一方、ＩＤＣＴ処理選択部１３３ａは、ＥＯＢ判定部１３１から４×４ＩＤＣＴ処理を示すＥＯＢ判定結果、もしくは、０係数判定部１３２ａから４×４ＩＤＣＴ処理を示す０係数判定結果を受け取った場合、４×４ＩＤＣＴ処理を示す選択信号を生成する。生成された選択信号は、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２に出力される。
【００９７】
図１４は、実施の形態２に係るＱ値判定部４０１の処理フローの一例を示すフローチャートである。図１４に示されるように、ステップＳ５０１において、Ｑ値判定部４０１は、Ｑ値情報から得られたＱ値とＱ判定値レジスタ４０２に格納されたＱ判定値とを比較し、Ｑ値がＱ判定値以上であるか否かを判定する。Ｑ値がＱ判定値以上であると判定された場合（ステップＳ５０１のＹＥＳ）、ステップＳ５０２へ進む。一方、Ｑ値がＱ判定値以上ではないと判定された場合（ステップＳ５０１のＮＯ）、ステップＳ５０３へ進む。
【００９８】
ステップＳ５０２において、Ｑ値判定部４０１は、実行すべき処理を０係数判定処理に決定する。Ｑ値がＱ判定値以上である場合には、８×８変換係数行列における低周波側の４×４の領域の内側に０ではない係数が集中する傾向が強くなる。そのため、０係数判定部１３２ａにおいて、４×４ＩＤＣＴ処理を示す０係数判定結果の出現頻度が高いと推測される。したがって、Ｑ値判定部４０１は、０係数判定処理が必要であると判断する。
【００９９】
ステップＳ５０３において、Ｑ値判定部４０１は、実行すべき処理を８×８ＩＤＣＴ処理に決定する。Ｑ値がＱ判定値以上ではない場合には、８×８変換係数行列における低周波側の４×４の領域の外側に０ではない係数が分散する傾向が強くなる。そのため、０係数判定部１３２ａにおいて、４×４ＩＤＣＴ処理を示す０係数判定結果の出現頻度が低いと推測される。したがって、Ｑ値判定部４０１は、０係数判定部１３２ａでの０係数判定処理の結果を経ずに、実行すべき処理を８×８ＩＤＣＴ処理に決定する。
【０１００】
実施の形態１では、ＺＲＬ情報に基づいた０係数判定処理を行うことにより、０係数判定処理全体の処理量を削減することができた。しかしながら、０係数判定処理自体が不要となったわけではない。特に、ＥＯＢ判定部１３１での判定処理の結果、０係数判定処理が実行されるべきとの判定がされたものの、０係数判定部１３２において、４×４ＩＤＣＴ処理が実行されるべきとの判定結果の出現頻度が低ければ、０係数判定処理の実行における効率が悪い。
【０１０１】
しかしながら、実施の形態２によれば、Ｑ値とＱ判定値との比較の結果に基づいて、変換係数行列の係数分布を推測することにより、０係数判定処理を実行するか否かが決定される。つまり、Ｑ値がＱ判定値以上であり、０係数判定部１３２ａにおいて、４×４ＩＤＣＴ処理が実行されるべきとの判定結果の出現頻度が高いと推測されるべきときのみ、０係数判定処理が実行される。一方、Ｑ値がＱ判定値よりも小さく、０係数判定部１３２ａにおいて、４×４ＩＤＣＴ処理が実行されるべきとの判定結果の出現頻度が低いと推測される場合には、０係数判定処理の実行を経ずに、８×８ＩＤＣＴ処理が決定される。これにより、不要な０係数判定処理の実行が行われる頻度が低減する。その結果、０係数判定処理に係る処理量が削減され、復号化処理の更なる高速化が図られる。
【０１０２】
実施の形態２の復号化装置１００ａは、Ｑ値が低く、８×８ＩＤＣＴ処理が実行される確率が高い画像データを復号化処理する場合には、実施の形態１の復号化装置１００に対して優位となる。
【０１０３】
また、実施の形態２では、Ｑ判定値は、任意に設定され得るため、様々な画像データに合わせて調整が可能という利点がある。Ｑ判定値に大きな値が設定されれば、０係数判定処理の処理量が減って、８×８ＩＤＣＴ処理の実行が多くなる。一方、Ｑ判定値に小さな値が設定されれば、実施の形態１と同様の動作になる。なお、Ｑ判定値については、複数のサンプル画像に対して、複数のＱ判定値を用いてテストが行われ、それらのテスト結果に基づいて、最適なＱ判定値が予め準備されてもよい。
【０１０４】
［実施の形態３］
次いで、実施の形態３を説明する。実施の形態３において、実施の形態１および２と同一の機能を有する構成については、同一の符号を付し、その説明を省略する。
【０１０５】
図１５は、実施の形態３に係る復号化装置１００ｂの構成の一例を示すブロック図である。実施の形態３に係る復号化装置１００ｂは、実施の形態１に係る復号化装置１００の別の形態となる。図１５に示されるように、復号化装置１００ｂは、復号化処理部１１０ｂおよび２次元ＩＤＣＴ処理部１２０ｂを備える。
【０１０６】
復号化処理部１１０ｂは、８×８変換係数行列、ＥＯＢ情報およびＺＲＬ情報に加えて、符号化タイプ情報を２次元ＩＤＣＴ処理部１２０ｂへ出力する。
【０１０７】
２次元ＩＤＣＴ処理部１２０ｂは、ＩＤＣＴ判定部１３０ｂ、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２を備える。ＩＤＣＴ判定部１３０ｂは、復号化処理部１１０ｂ、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２に接続される。ＩＤＣＴ判定部１３０ｂは、復号化処理部１１０ｂから、８×８変換係数行列、ＥＯＢ情報およびＺＲＬ情報に加えて、符号化タイプ情報を受け取る。
【０１０８】
図１６は、実施の形態３に係る復号化処理部１１０ｂの構成の一例を示すブロック図である。図１６に示されるように、図６のエントロピー復号化部１１１は、エントロピー復号化部１１１ｂに変更される。
【０１０９】
ＭＰＥＧ方式では、イントラ符号化およびインター符号化の２つの符号化処理が選択的に実行されている。イントラ符号化は、同一のフレーム内の画像データのみを用いて符号化を行う方法である。インター符号化は、複数のフレームの画像データを用いて符号化を行う方法である。符号化データは、８×８画素ブロックの画像データがイントラ符号化もしくはインター符号化のいずれによって符号化されたのかを示す情報である符号化タイプ情報を含む。
【０１１０】
イントラ符号化が用いられた場合、変換係数行列内の０ではない係数は、低周波側に集中する傾向がある。一方、インター符号化が用いられた場合、変換係数行列内の０ではない係数は、低周波側に集中せずに分散する傾向がある。すなわち、変換係数行列の０係数の分布は、符号化タイプに大きく依存する。なお、イントラ符号化の場合よりもインター符号化の場合に係数が分散する傾向が強くなるのは、インター符号化が差分画像を変換していることに起因する。
【０１１１】
エントロピー復号化部１１１ｂは、エントロピー符号化された符号化データであるエントロピー符号化列を受け取り、復号化処理を実行する。エントロピー復号化部１１１ｂは、ジグザグスキャン処理部１１２に接続され、復号化された変換係数列をジグザグスキャン処理部１１２へ出力する。また、エントロピー復号化部１１１ｂは、復号化処理によって得られたＥＯＢ情報、ＺＲＬ情報および符号化タイプ情報を２次元ＩＤＣＴ処理部１２０ｂへ出力する。
【０１１２】
図１７は、実施の形態３に係るＩＤＣＴ判定部１３０ｂの構成の一例を示すブロック図である。図１７に示されるように、図７の０係数判定部１３２およびＩＤＣＴ処理選択部１３３は、０係数判定部１３２ｂおよびＩＤＣＴ処理選択部１３３ｂにそれぞれ変更される。また、ＩＤＣＴ判定部１３０ｂは、図７に示されたＩＤＣＴ判定部１３０の構成に加えて、符号化タイプ判定部６０１を備える。
【０１１３】
符号化タイプ判定部６０１は、復号化処理部１１０ｂ、ＥＯＢ判定部１３１、０係数判定部１３２ｂおよびＩＤＣＴ処理選択部１３３ｂに接続される。符号化タイプ判定部６０１は、復号化処理部１１０ｂから出力された符号化タイプ情報およびＥＯＢ判定部１３１から出力されたＥＯＢ判定結果を受け取る。
【０１１４】
符号化タイプ判定部６０１は、ＥＯＢ判定部１３１から０係数判定処理を示すＥＯＢ判定結果を受け取った場合、符号化タイプ情報に基づいて、８×８ＩＤＣＴ処理および０係数判定処理のいずれかを実行すべきかを判定する。符号化タイプ判定部６０１は、判定した結果を符号化タイプ判定結果として、０係数判定部１３２ｂおよびＩＤＣＴ処理選択部１３３ｂへ出力する。
【０１１５】
０係数判定部１３２ｂは、復号化処理部１１０ｂ、符号化タイプ判定部６０１およびＩＤＣＴ処理選択部１３３ｂに接続される。０係数判定部１３２ｂは、符号化タイプ判定部６０１から０係数判定処理を示す符号化タイプ判定結果を受け取った場合、復号化処理部１１０ｂから受け取った８×８変換係数行列、ＥＯＢ情報およびＺＲＬ情報に基づいて、８×８ＩＤＣＴ処理および４×４ＩＤＣＴ処理のいずれかを実行すべきかを判定する。０係数判定部１３２ｂは、判定した結果を０係数判定結果として、ＩＤＣＴ処理選択部１３３ｂへ出力する。
【０１１６】
ＩＤＣＴ処理選択部１３３ｂは、ＥＯＢ判定部１３１、符号化タイプ判定部６０１、０係数判定部１３２ｂ、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２に接続される。ＩＤＣＴ処理選択部１３３ｂは、ＥＯＢ判定部１３１から８×８ＩＤＣＴ処理を示すＥＯＢ判定結果、符号化タイプ判定部６０１から８×８ＩＤＣＴ処理を示す符号化タイプ判定結果、もしくは、０係数判定部１３２ｂから８×８ＩＤＣＴ処理を示す０係数判定結果を受け取った場合、８×８ＩＤＣＴ処理を示す選択信号を生成する。一方、ＩＤＣＴ処理選択部１３３ｂは、ＥＯＢ判定部１３１から４×４ＩＤＣＴ処理を示すＥＯＢ判定結果、もしくは、０係数判定部１３２ｂから４×４ＩＤＣＴ処理を示す０係数判定結果を受け取った場合、４×４ＩＤＣＴ処理を示す選択信号を生成する。生成された選択信号は、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２に出力される。
【０１１７】
図１８は、実施の形態３に係る符号化タイプ判定部６０１の処理フローの一例を示すフローチャートである。図１８に示されるように、ステップＳ７０１において、符号化タイプ判定部６０１は、復号化処理部１１０ｂから受け取った符号化タイプ情報を確認し、符号化タイプがイントラ符号化であるか否かを判定する。符号化タイプがイントラ符号化であると判定された場合（ステップＳ７０１のＹＥＳ）、ステップＳ７０２へ進む。一方、符号化タイプがイントラ符号化ではない、すなわち、インター符号化であると判定された場合（ステップＳ７０１のＮＯ）、ステップＳ７０３へ進む。
【０１１８】
ステップＳ７０２において、符号化タイプ判定部６０１は、実行すべき処理を０係数判定処理に決定する。符号化タイプがイントラ符号化である場合には、８×８変換係数行列における低周波側の４×４の領域の内側に０ではない係数が集中する傾向が強くなる。そのため、０係数判定部１３２ｂにおいて、４×４ＩＤＣＴ処理を示す０係数判定結果の出現頻度が高いと推測される。その結果、符号化タイプ判定部６０１は、０係数判定処理が必要であると判断する。
【０１１９】
ステップＳ７０３において、符号化タイプ判定部６０１は、実行すべき処理を８×８ＩＤＣＴ処理に決定する。符号化タイプがイントラ符号化ではない、すなわち、インター符号化である場合には、８×８変換係数行列における低周波側の４×４の領域の外側に０ではない係数が分散する傾向が強くなる。そのため、０係数判定部１３２ｂにおいて、４×４ＩＤＣＴ処理を示す０係数判定結果の出現頻度が低いと推測される。したがって、符号化タイプ判定部６０１は、０係数判定部１３２ｂでの０係数判定処理の結果を経ずに、実行すべき処理を８×８ＩＤＣＴ処理に決定する。
【０１２０】
このように、実施の形態３によれば、符号化タイプに応じて、変換係数行列の係数分布を推測することにより、０係数判定処理を実行するか否かが決定される。つまり、符号化タイプがイントラ符号化であり、０係数判定部１３２ｂにおいて、４×４ＩＤＣＴ処理が実行されるべきとの判定結果の出現頻度が高いと推測されるべきときのみ、０係数判定処理が実行される。一方、符号化タイプがイントラ符号化であり、０係数判定部１３２ｂにおいて、４×４ＩＤＣＴ処理が実行されるべきとの判定結果の出現頻度が低いと推測される場合には、０係数判定処理の実行を経ずに、８×８ＩＤＣＴ処理が決定される。これにより、不要な０係数判定処理の実行が行われる頻度が低減する。したがって、０係数判定処理に係る処理量が削減され、復号化処理の更なる高速化が図られる。
【０１２１】
実施の形態３の復号化装置１００ｂは、インター符号化の割合が多く、８×８ＩＤＣＴ処理が実行される確率が高い画像データを復号化処理する場合には、実施の形態１の復号化装置１００に対して優位となる。
【０１２２】
また、実施の形態３では、符号化データに含まれている画像データがイントラ符号化もしくはインター符号化のいずれによって符号化されたのかを示す情報を使って、０係数判定処理を実行するか否かの判断をするため、復号化装置への実装が容易であるという利点がある。
【０１２３】
実施の形態１ないし３における復号化装置１００、１００ａおよび１００ｂは、１個または２個以上の半導体装置によって、構成されてもよい。また、その半導体装置は、１個または複数の半導体チップによって構成されてもよい。例えば、復号化処理部１１０および２次元ＩＤＣＴ処理部１２０が、１個の半導体チップ上に形成された１個の半導体装置であってもよく、復号化処理部１１０および２次元ＩＤＣＴ処理部１２０が、別々の半導体チップで形成された１個の半導体装置であってもよい。
【０１２４】
また、復号化装置１００、１００ａおよび１００ｂの各ブロックは、ハードウェア（Ｈ／Ｗ）のみ、もしくは、Ｈ／Ｗとソフトウェア（Ｓ／Ｗ）の連携によって構成されることができる。すなわち、図５〜７、１１〜１３および１５〜１７には、Ｈ／Ｗのみ、Ｓ／Ｗのみ、もしくは、Ｈ／ＷとＳ／Ｗの連携によって実現される機能ブロックが示されている。
【０１２５】
復号化装置１００、１００ａおよび１００ｂの各ブロックが、Ｈ／Ｗのみで構成される場合には、復号化装置１００、１００ａおよび１００ｂの各ブロックは、回路で構成される。一方、復号化装置１００、１００ａおよび１００ｂの各ブロックが、Ｈ／ＷとＳ／Ｗの連携によって構成される場合には、例えば、ＩＤＣＴ判定部１３０、１３０ａおよび１３０ｂは、プロセッサで構成され、プロセッサが不図示の記憶部に格納された所定のプログラムを読み出して実行することにより、ＩＤＣＴ判定部１３０、１３０ａおよび１３０ｂの機能が実現され得る。
【０１２６】
また、実施の形態１ないし３では、ＩＤＣＴ判定部１３０、１３０ａおよび１３０ｂは、復号化装置１００、１００ａおよび１００ｂに実装されると説明したが、符号化装置側にあってもよい。すなわち、符号化装置側であっても、変換係数行列、ＥＯＢ情報、ＺＲＬ情報、Ｑ値情報および符号化情報に基づいて、８×８ＩＤＣＴ処理および４×４ＩＤＣＴ処理のいずれかを示す選択信号を生成することができる。この場合には、復号化装置１００、１００ａおよび１００ｂは、符号化装置から出力された選択信号を受け取り、受け取った選択信号に基づいて、８×８ＩＤＣＴ処理部１４１および４×４ＩＤＣＴ処理部１４２を切り替え、２種類のＩＤＣＴ処理を実行する。例えば、１個の符号化装置に対して、複数の復号化装置を有するシステムでは、ＩＤＣＴ判定部１３０、１３０ａおよび１３０ｂが符号化装置側に実装された方が、システム全体の処理量を抑制することができる。
【０１２７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０１２８】
１００、１００ａ、１００ｂ：  復号化装置
１１０、１１０ａ、１１０ｂ：  復号化処理部
１１１、１１１ｂ：  エントロピー復号化部
１１２：  ジグザグスキャン処理部
１１３、１１３ａ：  逆量子化処理部
１２０、１２０ａ、１２０ｂ：  ２次元ＩＤＣＴ処理部
１３０、１３０ａ、１３０ｂ：  ＩＤＣＴ判定部
１３１：  ＥＯＢ判定部
１３２、１３２ａ、１３２ｂ：  ０係数判定部
１３３、１３３ａ、１３３ｂ：  ＩＤＣＴ処理選択部
１４１：  ８×８ＩＤＣＴ処理部
１４２：  ４×４ＩＤＣＴ処理部
４０１：  Ｑ値判定部
４０２：  Ｑ判定値レジスタ
６０１：  符号化タイプ判定部
【図１】
2020184702.tif 000003
【図２】
2020184702.tif 000004
【図３】
2020184702.tif 000005
【図４】
2020184702.tif 000006
【図５】
2020184702.tif 000007
【図６】
2020184702.tif 000008
【図７】
2020184702.tif 000009
【図８】
2020184702.tif 000010
【図９】
2020184702.tif 000011
【図１０】
2020184702.tif 000012
【図１１】
2020184702.tif 000013
【図１２】
2020184702.tif 000014
【図１３】
2020184702.tif 000015
【図１４】
2020184702.tif 000016
【図１５】
2020184702.tif 000017
【図１６】
2020184702.tif 000018
【図１７】
2020184702.tif 000019
【図１８】
2020184702.tif 000020