JP2012147293A - 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム - Google Patents

画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム Download PDF

Info

Publication number
JP2012147293A
JP2012147293A JP2011004649A JP2011004649A JP2012147293A JP 2012147293 A JP2012147293 A JP 2012147293A JP 2011004649 A JP2011004649 A JP 2011004649A JP 2011004649 A JP2011004649 A JP 2011004649A JP 2012147293 A JP2012147293 A JP 2012147293A
Authority
JP
Japan
Prior art keywords
block
data
image
coefficient data
divided
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011004649A
Other languages
English (en)
Inventor
Masaaki Kobayashi
正明 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2011004649A priority Critical patent/JP2012147293A/ja
Priority to PCT/JP2012/000149 priority patent/WO2012096179A1/en
Publication of JP2012147293A publication Critical patent/JP2012147293A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】 一つのブロック内に複数サイズの直交変換ブロックを持つストリームの復号において、復号器側でサイズの異なる直交変換ブロックの係数データを連続して入力する場合、処理方法が異なるブロックサイズの係数データを連続して処理する必要があり、効率的な並列処理が難しかった。
【解決手段】 復号器側で、ブロックサイズが同一の直交変換ブロックの係数データを連続して入力することが可能となり、処理方法が同一となる係数データが連続して入力されるため、効率的な並列処理が可能となる。
【選択図】 図1

Description

本発明は画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラムに関する。
動画像の圧縮記録方法として、MPEG−2 Video(以下、MPEG−2と略す。)H.264等の方式が知られている。さらに、H.264をベースとした改良技術が提案されている。
MPEG−2やH.264では、マクロブロックとよばれる画像を格子状に区切った縦横16×16の格子ブロックを一つの処理単位としている。直交変換するブロックサイズは、MPEG−2では8×8、H.264ではでは8×8または、4×4となる。つまり、一つのマクロブロックの中に、複数の直交変換ブロックが存在することになる。一方、H.264をベースとした改良技術では、画像を格子状に区切った格子ブロックをLCTB(Largest Coding Tree Block)、とよび、そのサイズは64×64となっている。LCTBは、領域四分木構造を使ってCTB(Conding Tree Block)とよばれるより小さいサイズに分割される。なお、木構造データを探索、または、入出力を行うためには走査順を特定する必要があり、ブロックデータを木構造の前順の走査順に入出力などの各処理を行っている。
さらに、CTBは、TU(Transform Unit)とよばれる直交変換ブロックを含み、このTUも領域四分木構造を使って、より小さいサイズに分割される。CTBやTUは、ヘッダー情報として分割フラグを持ち、分割フラグがTrueのブロックは、1/4サイズの4つの分割ブロックを内包する構造をとり、分割フラグがFalseとなるブロックは、分割ブロックを内包しない代わりにブロックの実データを持つことになる。例えば、非分割のTUのみが、画像ブロックを直交変換することにより得られる係数データを持つことになる。このように、一つのLCTB(格子ブロック)は、階層構造的に複数の異なるサイズの直交変換サイズのブロックを持つことになる。
領域四分木構造を用いて符号化されるCTBやTUは,シリアル化されてデコーダに伝送されるが、同時に分割フラグを伝送し、デコーダ側でその分割フラグ情報をパースすることにより、CTBやTUの領域四分木構造を再構築することができる。なお、ブロック分割構造を決定するには様々な方法が存在するが、例えば、ラグランジュ乗数を用いてブロックのコストを計算し、よりコストが低いブロックの分割パターンを選択することにより、分割構造を決定することができる。ラグランジュ乗数を用いたコスト計算については、特許文献1に記載されている。
一方、最近のCPUはSIMD(Single Instrucion Multiple Data)とよばれる並列処理命令をもっている。SIMD演算とは、複数のデータに対して同一命令を同時に実行する演算である。例えば、数値データを256ビットのレジスタに格納して演算を実行することが可能であり、1サンプルあたりのデータが16ビットであれば16サンプル同時に演算を実行できることになる。さらに、1ピクセル(サンプル)、16ビットとして画像ブロック処理に適用した場合、4×4ブロックの処理は4列(4サンプル)の処理を4行分行うことにより4ブロックの処理を同時に処理することができる。8×8ブロックの処理は8列(8サンプル)の処理を8行分行うことにより2ブロックを同時に処理することができる。ただし、4×4ブロックと8×8ブロックのようにデータの粒度が異なるブロックの処理は、行の処理回数や処理手順そのもの異なるため、それらを同時に混在させて演算することは難しい。
特開2005−191706号公報
ISO/IEC 13818−2:2000 Information technology −− Generic coding of moving pictures and associated audio information: Video ISO/IEC 14496−10;2004 Information technology −− Coding of audio−visual objects −− Part 10: Advanced Video Coding
複数サイズの直交変換ブロックが混在する画像の復号処理において、同一サイズの直交変換ブロックの係数データ復号処理は、同一サイズの直交変換ブロックの組を作って並列演算処理を容易に実行できる。しかし、同一サイズの直交変換ブロックの係数データが連続して入力されない場合には、同一サイズブロックの組を作ることが難しく、並列演算処理を実行することが難しかった。
したがって、本発明は上述した課題を解決するためになされたものであり、並列演算処理を容易に実行することを目的としている。
上述の問題点を解決するため、本発明の画像符号化装置は以下の構成を有する。すなわち、画像を構造的に異なるサイズの複数のブロックに分割し、分割ブロック単位ごとに変換と可変長符号化を伴う符号化処理を行う画像符号化装置であって、所定の構造単位に含まれる分割ブロックを対象分割ブロックとして構造順に取得する取得手段と、前記対象分割ブロックを変換し、可変長符号化して可変長符号化係数データを生成する生成手段と、
前記可変長符号化係数データを並び替える制御手段とを有する。
復号処理において、同一サイズの直交変換ブロックの可変長符号化係数データが連続して入力されるため、同一サイズブロックの組を作ることが容易となり、並列演算処理を容易に実行することが可能となる。
実施形態1における分割ブロックの可変長符号化係数データ生成を示すフローチャートである。 画像フレーム符号化方法を示すフローチャートである。 格子ブロック符号化方法を示すフローチャートである。 実施形態2における分割ブロック復号方法を示すフローチャートである。 画像フレーム復号方法を示すフローチャートである。 格子ブロック復号方法を示すフローチャートである。 格子ブロックの分割例を示す図である。 (a)〜(d)格子ブロックの分割階層ごとの分割フラグ状態の例を示す図である。 本符号化方法および復号方法が実行されるハードウェア構成例を示す図である。 本符号化方法が実行されるハードウェア構成の変形例を示す図である。 本復号方法が実行されるハードウェア構成の変形例を示す図である。 (a)〜(b)画像フレームのストリームデータ構造の例を示す図である。 (a)〜(b)格子ブロックのストリームデータ構造の例を示す図である。 (a)〜(b)係数データのSIMD演算を実行する組を示す図である。 実施形態3における分割ブロックの可変長符号化係数データ生成を示すフローチャートである。 実施形態4における分割ブロック復号方法を示すフローチャートである。 (a)〜(b)シーケンスヘッダー情報のデータ構造を示す図である。 再配置データの例を示す図である。
以下、添付の図面を参照して、本願発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<実施形態1>
画像の符号化方法について図1、図2、図3、図8、図9を参照して説明する。
図9は、本実施形態における符号化方法を含んだ符号化プログラムを実行するための構成を示している。本符号化プログラムはハードディスク装置(以下、HDDと略す)903に記録されており、RAM902にロードされ、以下で示される各ステップをCPU901が実行する符号化処理がなされる。テンポラリーバッファと出力バッファは、ソフトウェアとしてのメモリ領域としてRAM902内に生成される。入力画像データはHDD903から読みだされ、符号化データはRAM902内の出力バッファを介して、HDD903に記録されるものとする。このとき、符号化データが順に出力バッファへ出力されることにより、決められたデータ構造に従った符号化データの並びであるストリームが生成されることになる。
図2は、フレームを縦横64画素からなる格子で区切った格子ブロックをラスター順に処理し、フレーム全体を符号化するフレーム符号化方法を示すフローチャートである。なお、画像フレームの符号化にあたり、プロファイルやレベル、画像の幅や高さなどの画像の属性データを符号化したシーケンスヘッダー情報を符号化しておくものとする。また、画像が複数のフレームから構成される動画データの場合には、図2で説明される画像フレーム符号化処理が、複数のフレームに対して連続的に行われるものとする。S200は、フレームヘッダー情報を生成するステップである。S201は、ラスター順に処理対象の格子ブロック画像を取得するステップである。S202は、処理対象の格子ブロック画像に対し、格子ブロック符号化処理を実行するステップである。S203は、フレーム内の全格子ブロック処理の終了を判定するステップである。
以下、処理の流れを説明する。S200は、フレームヘッダー情報を生成する。フレームヘッダー情報は、イントラ・インターなどのフレームタイプなど、フレームの符号化ごとに変化する符号化属性データを符号化した符号の集合である。
S201では、ラスター順に処理対象の格子ブロック画像として64×64の画像を取得する。第一回目の処理は画像左上のブロックであり、S201が実行されるごとにラスター順に次のブロックが取得される。
S202は、S201で取得した処理対象の格子ブロック画像に対し、図3の説明で後述する格子ブロック符号化フローを実行するステップである。
S203は、フレーム内の全格子ブロックの処理を判定し、全ての格子ブロックの処理が終了していれば処理を終了し、終了していなければ、S201、S202を繰り返し実行する。これにより、フレームのストリームとして、図12(a)のように、フレームヘッダー情報の後に複数の格子ブロック符号化データが並ぶデータ構造を持つストリームが生成される。また、格子ブロック符号化データは、図13(a)のように格子ブロックヘッダー情報と可変長係数データからなる。図13についての詳細は後述する。
図3は、図2のS202で実行される格子ブロックの符号化フローを示すフローチャートである。S301は、対象格子ブロックの予測モードを決定し、対象格子ブロックのブロックデータ(残差データ)を生成するステップである。S302は、対象格子ブロック分割構造を決定するステップである。S303は、対象格子ブロックのヘッダ情報を生成するステップである。S304は、可変長符号化係数データ生成フローを実行するステップである。
以下、処理の流れを説明する。S301では、フレーム内予測、動き補償予測を実行して、対象格子ブロックの予測モードを決定し、同時に、格子ブロックのブロックデータ(残差データ)を生成する。本実施形態で、ブロックデータ(残差データ)とは、フレーム内予測や動き補償予測で作られる予測画像と原画のブロックごとの差分画像であり、ここでは、格子ブロックのブロックデータ(残差データ)は、64×64のデータとなる。
S302では、格子ブロックのブロックデータ(残差データ)の分割構造を決定する。本実施形態では、分割ブロックサイズは、64×64(分割なしであるが、便宜上分割ブロックとして表現するものとする)、32×32、16×16、8×8とする。ここでの分割構造の決定とは、格子ブロックを構造的に分割したサイズの異なる直交変換ブロックの最適な組み合わせを決めるということであり、様々なブロックの組み合わせのコストを算出し、もっともコストの低いものを選択することで分割構造を決定できる。その分割構造は、領域四分木構造で表現され、例えば、図7のように分割されることになる。
S303では、予測モード情報と分割構造情報を生成して、格子ブロックヘッダー情報として出力バッファへ出力する。予測モード情報は、予測モード(イントラブロックであるかインターブロックなど)とそれに付随するサブデータ(動きベクトルなど)を符号化したものである。本実施形態では、分割構造情報は1ビットのフラグの情報として表現される。例えば、格子ブロックが図7のように分割され、ブロックを分割の有無を示す分割フラグを分割する場合1、分割しない場合0と表現すると、各階層のブロックごとの分割フラグは、図8のように表現される。図8において、数値は分割フラグを示し、「−」はフラグが不要なことを示し、括弧内の数値は、構造順の順番を表す。本実施形態では、構造順とは、ブロック単位では左上、右上、左下、右下の順とし、階層単位では四分木構造を前順で走査する順番をあらわすものとする。この分割フラグを構造順に走査すると、64×64ブロックは分割されるため1、32×32の左上ブロックは分割されるため1、16×16の左上ブロックは分割されないため0、16×16の右上ブロックは分割されないため0などのように走査されることになる。よって、この分割フラグを構造順に走査して並べた分割構造情報は「1101000011000」と表現される。なお、8×8ブロックは、これ以上分割しないため、分割フラグを挿入しない。分割フラグが1のブロックは、内包する分割ブロックが係数データを持つため、それ自体は係数データを持たないことになる。
S304では、図1の説明で後述する可変長符号化係数データ生成フローを実行して、可変長符号化係数データを生成する。
図1は、分割ブロックデータ(残差データ)に対して、図3のS304で実行される可変長符号化係数データ生成フローを実行するフローチャートである。分割ブロックデータとは、格子ブロックのブロックデータ(残差データ)を図3のS302で決定した分割構造に基づいて、分割したブロックのデータのことである。S101は、処理対象の分割ブロックデータ(残差データ)を構造順に取得するステップである。S102は、処理対象の分割ブロックの可変長符号化係数データを生成するステップである。S103は、全ての分割ブロックが処理されたか否かを判定するステップである。S104は、全ての可変長符号化係数データをサイズ順に並び替えするステップである。
以下、処理の流れを説明する。S101では、処理対象の分割ブロックデータ(残差データ)を構造順に取得する。この分割ブロックデータ(残差データ)は、S302で決定された分割構造に基づいて、S301で生成した格子ブロックの残差データの矩形領域を切りだすことにより取得できる。
S102では、分割ブロックデータ(残差データ)に対し、直交変換・量子化・可変長符号化を実行して可変長符号化係数データを生成し、テンポラリーバッファへ出力する。
S103では、格子ブロック内の全ての分割ブロックが処理されたかを判定する。判定の結果、全ての分割ブロックが処理されていたらS104を実行し、分割ブロックが処理されていなければS101、S102を実行する。S101、S102は、全ての分割ブロックが処理されるまで、繰り返し実行される。
S104は、格子ブロック内の全ての可変長符号化係数データに対し、その可変長符号化係数データの元となる直交変換ブロックサイズの大きい順を第一ファクター、構造順を第二ファクターとして、順にテンポラリーバッファから取り出し、出力バッファへ出力する。つまり、テンポラリーバッファの可変長符号化係数データをサイズ順に並び替えながら出力バッファへコピーしていることになる。
格子ブロック内に存在する分割ブロックの可変長符号化係数データの生成後、直交変換ブロックサイズ順に並び替えるという処理を持つことにより、可変長符号化係数データがブロックサイズ順に並んだデータ構造を持つストリームを生成することができる。例えば、並び替えを実行せず、直接、構造順に可変長符号化係数データを出力した場合のストリームデータ構造は、図13の(a)のようになる。しかし、本実施形態におけるストリームデータ構造は、可変長符号化係数データが並び替えされるため、図13の(b)のように直交変換ブロックサイズ順に並ぶことになる。このストリームのデータ構造は、復号器へ同一サイズの直交変換ブロックの可変長符号化係数データを連続して入力することを可能とし、復号処理において同一サイズブロックの組を作ることが容易なため、逆量子化や逆直交変換など処理を並列に実行しやすくなる。
なお、本実施形態では、格子ブロックを予測単位とし、格子ブロックが複数の直交変換ブロック構造的に内包するように説明しているが、これに限定されない。例えば、格子ブロックを符号化単位ブロックにさらに分割し、分割された符号化単位ブロックが構造的に直交変換ブロックを持つ構成をとっても、本実施形態で示した効果は同様にえることができる。また、並び替えの単位を格子ブロックとして説明したが、スライスなど複数の格子ブロックの集合を単位として、その集合単位で可変長符号化係数データを並び替えたり、格子ブロックをさらに分割した分割ブロック単位ごとに並び替えをしてもよい。
また、可変長符号化係数データは、その元となる直交変換ブロックの大きさを第一ファクターとして並び替える形で説明したが、それに限定されず、小さい順などで並び替えてもよい。
また、本実施形態では、S102で直交変換・量子化・可変長符号化を実施する形で説明している。しかし、S301で、直交変換、量子化、可変長符号化、逆量子化、逆直交変換、可変長符号化を実行して、再構築画像を生成し、再構築画像と原画の差分と可変長符号化による符号量からラグランジュ乗数を用いたコスト計算を行う構成をとってもよい。その際に、可変長符号化により生成した可変長符号化係数データを保存しておき、S102では、分割ブロックデータ(残差データ)の符号化する代わりに該当ブロックに対応する可変長符号化係数データを取得して、出力バッファへ出力する構成をとっても同様の効果をえることができる。
さらに、本実施形態では符号化されたデータはHDD903に記録される例をとって説明したが、これに限定されず、通信インターフェース905を解して通信回路に送信したり、外部記録装置に接続し、可搬メディアに記録してももちろん構わない。
本実施形態における符号化方法は、図9の変代わりに、図10のように、直交変換器1003、量子化器1004、可変長符号化器1005といった専用のハードウェアを持った構成で行われてもよい。このとき、直交変換、量子化、可変長符号化ステップがCPU1001により実行されるのでなく、CPU1001が各処理をそれぞれのハードウェアに実行させること以外は、図1で示されるフローと同様である。
<実施形態2>
画像の復号方法について図4、図5、図6、図9を参照して説明する。
図9は、本実施形態における復号化方法を含んだ復号プログラムを実行するための構成を示しており、HDD903に記録されたプログラム、RAM902にロードされ、以下で示される各ステップをCPU901が実行することにより復号処理がなされる。なお、入力データはHDD903から読みだされ、生成された画像データは、VRAM904を介して、ディスプレーで出力されるものとする。また、CPU901は、512ビット幅のレジスタを持ったSIMD演算器を持ち、16ビットのデータを同時に32サンプル処理できる機能を持つものとする。
図5は、フレームを縦横64画素からなる格子で区切った格子ブロックをラスター順に復号し、画像フレーム符号化処理を示すフローである。なお、画像フレームを復号する前に、プロファイルやレベル、画像の幅や高さなどの画像の属性データを符号化したシーケンスヘッダー情報を復号しておくものとする。また、ストリームが複数のフレームから構成される動画データの場合には、図5で説明される画像フレーム復号処理が、複数のフレームに対して連続的に行われる。S500は、フレームヘッダー情報を復号するステップである。S501は、ラスター順に処理対象格子ブロックの符号化データを取得するステップである。S502は、処理対象格子ブロックの符号化データに対し、格子ブロック復号フローを実行するステップであるS503は、フレーム内の全格子ブロックの復号処理終了を判定するステップである。
以下、処理の流れを説明する。S500は、フレームヘッダー情報を復号し、フレームタイプを取得する。S501では、ラスター順に処理対象格子ブロックの符号化データを取得する。第一回目の処理は画像左上の格子ブロックの符号化データの取得であり、以下、S501が実行されるごとに、ラスター順に次の格子ブロック符号化データが取得される。
S502は、S501で取得した処理対象の格子ブロック符号化データに対し、図6の説明で後述する格子ブロックの復号フローを実行する。
S503は、フレーム内の全格子ブロックの処理の終了を判定し、全ての格子ブロックの処理が終了していれば処理を終了し、終了していなければ、S501、S502を実行する。このように、全格子ブロックの処理が終了するまで、S501、S502は繰り返し実行される。
図6は、図5のS502でから実行され、格子ブロックの復号画像を生成する格子ブロック復号処理を示すフローチャートである。格子ブロック符号化データは、図13のように、格子ブロックヘッダー情報と複数の可変長符号化係数データからなるデータである。S601は、格子ブロックヘッダー情報を復号するステップである。S602は、分割ブロック復号フローを実行し、格子ブロックの残差データを生成ステップである。S603は、格子ブロックの予測画像データを生成するステップである。S604は、予測画像データと残差データから復号画像を生成するステップである。
以下、処理の流れを説明する。S601は、格子ブロックのヘッダー情報を復号する。S602は、図4で説明される分割ブロック復号フローを実行し、残差データを生成する。
S603は、S601で生成したヘッダー情報から、格子ブロックの予測モードを取得し、その予測モードに従って、フレーム内予測や動き補償を実行し、予測画像データを生成する。S604は、予測画像データと残差データから復号画像を生成する。
図4は、図6のS604で示された、格子ブロックの残差データを生成する分割ブロック復号フローを示してものである。S401は、分割ブロックデータ(残差データ)の後述の再配置データを取得するステップである。S402は、処理対象の分割ブロックの可変長符号化係数データを入力順に取得するステップである。S403は、可変長符号化係数データから分割ブロックデータを生成するステップである。S404は、分割ブロックデータ(残差データ)を配置するステップである。S405は、全ての分割ブロックが処理されたかを判定するステップである。
以下、処理の流れを説明する。S401では、分割ブロックデータ(残差データ)の再配置データを分割ブロックごとに取得する。再配置データとは、サイズ順に並んだ可変長符号化係数データと、可変長符号化係数データに対応する分割ブロックデータ(残差データ)の領域四分木構造に基づいた格子ブロック内の位置とそのブロックサイズの対応関係を示す情報である。例えば、図7のように分割された場合、再配置データは図18のような、可変長符号化係数データに対応する分割ブロックデータ(残差データ)のブロック番号とブロックサイズ、格子ブロックデータ(残差データ)内の位置を座標で表現したものからなる。また、再配置データは、格子ブロックヘッダー情報に埋め込まれた分割構造情報をパースすることによってえられる。
図8を用いて分割構造情報のパースの仕方について説明する。図8は、図7の分割構造に対し、分割階層ごとの分割の状態を示してものである。分割構造情報は、本実施形態では「1101000011000」といったビット列で表現され、各ビットが分割フラグの状態を示している。図8の数値は分割フラグを示し、「−」はフラグが不要なことを示し、( )内の数値は、ブロック番号であり、分割構造情報のビットの順番に当たる。第0番ビットの値は1でありこれは0番ブロック(64×64)が分割されることを示す。0番ブロック(64×64)が分割されているため、第1番ビットは1番ブロック(32×32)の分割状態を示し1であるためこれも分割されている。1番ブロック(32×32)は分割されているため、第2番ビットは2番ブロック(16×16)の分割状態を示し、0であるため分割されていない。第3ビットは3番ブロック(16×16)の分割状態を示し、1であるため分割されている。このように処理を続けることにより、領域四分木構造を再構築することができる。次にサイズ順に並んだ可変長符号化係数データと領域四分木構造に基づいた各分割ブロックの対応関係について説明する。可変長符号化係数データは、大きい順に並び替えが行われた状態で、ストリームに格納されているとすると、図13(b)のように、格納されることになる。図7における32×32ブロックのうち構造順に第1のブロックは7番ブロックであり、図13(b)において格納順に第1の係数データは、7番ブロックの可変長符号化係数データ7にあたる。図7において32×32ブロックのうち構造順に第2のブロックは8番ブロックであり、図13(b)において格納順に第2の可変長符号化係数データは、8番ブロックの可変長符号化係数データにあたる。図7において構造順に第3のブロックは、16×16のブロックになり、構造順に第1番目の16×16ブロックは、0番ブロックであたり、図13(b)において格納順に第3の係数データ0は、0番ブロックの係数データにあたる。このように処理を続けることにより、可変長符号化係数データと、そのサイズと格子ブロック内での位置が特定され、再配置データが生成できる。
S402は、対象の分割ブロックの可変長符号化係数データを入力順に取得する。このとき、同時に並列処理可能な数の可変長符号化係数データを取得する。例えば、画像データの1サンプルが16ビットとすると、512ビットのSIMD演算器は、8サンプルのデータを同時に演算でき、64×64、32×32、16×16、8×8の直交変換ブロックを、それぞれ、1、1,2,4の数だけ並列に処理できる。ただし、64×64ブロックを処理する場合には、画像データ一行は64サンプルであり、SIMD演算レジスタが512ビットでは足らないため、2つのレジスタを使って、二回の計算を実施することになる。
S403では、S402で取得した複数の可変長符号化係数データに対して、可変長復号を行い、逆量子化、逆直交変換を行って、分割ブロックデータ(残差データ)を生成する。このとき、逆量子化、逆直交変換は、SIMD演算器を使って同時に実行する。
S404では、再配置データに基づいて、対象の分割ブロックデータ(残差データ)を格子ブロックの残差データとして配置していく。ここでの配置とは、格子ブロックの残差データ(64×64)を格納するメモリ領域の再配置データが示す位置に残差データを矩形としてコピーすることである。例えば、図7のような分割構造をもつ格子ブロックがブロックサイズの大きい順に配置されていくことになる。
S405では、全ての分割ブロック処理が終了したかを判定する。判定の結果、全ての分割ブロックが処理されていたら処理を終了し、分割ブロックが処理されていなければ処理が終わるまで、S402〜S404を実行する。処理が終了すると、格子ブロックの残差データ(64×64)が生成されることになる。
このような実施形態をとることにより、実施形態1で説明した符号化方法により生成したストリームを復号することができる。さらに、同一サイズの可変長符号化係数データが連続して入力されることにより、効率的にSIMD演算を実行することができる。例えば、図14の(a)および図14の(b)は、図7で示される分割構造において、逆直交変換の入力データとなる係数データを512ビット(32サンプル)ごとに組み合わせた例であり、上段が同時実行可能なサンプル数、下段が係数データの大きさを示している。図14の(a)のように係数が並び替えされていないブロックをSIMD演算する場合、係数データ(16×16)の処理は、同時に係数データ(16×16)を処理できる。しかし、2つの係数データ(16×16)の組が構成できないため、16サンプル同時演算となる個所が存在する。係数データを「−」で表現する個所は、ダミーデータを入力して演算を行うことになる。一方、図14の(b)は、同一サイズの係数データが連続するため、同一サイズの係数データの組を作りやすく、ダミーデータを使った無駄な演算が減り、SIMD演算の効率があがる。
本実施形態では符号化されたデータがHDD903に記録される例をとって説明したが、これに限定されず、通信インターフェース905を解して通信回路に受信したり、外部記録装置に接続し、可搬メディアから入力しても構わない。
本実施形態における復号方法は、図9の代わりに、図11のように、逆直交変換器1103、逆量子化器1104、逆可変長符号化器1105といった専用のハードウェアを持った構成状で行われてもよい。このとき、逆直交変換、逆量子化、可変長復号化ステップがCPU1101により実行されるのでなく、CPU1101が各処理をそれぞれのハードウェアに実行させること以外は、図2で示されるフローと同様である。このとき、逆直交変換器や逆量子化器は、内部に複数の演算ユニットを持つことにより、同時に複数のブロックデータを処理でき、スループットが向上する。
<実施形態3>
分割ブロックの可変長符号化係数データ生成に関して、図15を使って説明する。なお、とくに、記述がない場合、その構成および各ステップの動作は、実施形態1と同様とする。本実施形態では、可変長符号化係数データの並び替えを行うかどうかを示す情報を並び替え情報を定義する。
本実施形態では、分割ブロックの可変長符号化係数データ生成に先だって、図2のS200で生成するフレームヘッダー情報に含まれる並び替え情報符号を復号して並び替え情報を得る。並び替え情報は、本実施形態では、並び替える場合を実施する場合には1を、並び替えを実施しない場合には0となる1ビットの並び替え情報符号を挿入するものとするが、これに限定されない。つまり、フレームヘッダー情報は、図12(b)のようになる。
なお、並び替えを行うか否かの判断は、ユーザー指定により行われる。本符号化方法により生成されるストリームは、特にソフトウェアがSIMDを使って復号処理を実施する場合に、有効な技術である。そのため、ユーザーが復号のターゲットとしてSIMDを使うソフトウェアと判断した場合には、並び替え情報符号に1を、そうでない場合には0を挿入するといった形になる。
図15は、分割ブロックの可変長符号化係数データ生成するフローチャートである。本フローは、図3のS304において、図1で説明されるフローの代わりに実行される。S1501は、並び替え情報を取得するステップである。S1502は、可変長符号化係数データを並び替えるか否かを判定するステップである。S1503は、可変長符号化係数データをコピーするステップである。
以下、ステップの流れについて詳細に説明する。S1501では、並び替え情報の取得するステップである。本実施形態では、ユーザーがあらかじめ指定した情報を取得する。
S1502は、並び替え情報に従って可変長符号化係数データを並び替えるかを判定し、並び替えを行うと判断した場合にはS104を実行し、並び替えをしないと判断した場合には、S1503を実行する。
S1503は、格子ブロック内の全ての可変長符号化係数データを、その構造順に、テンポラリーバッファから取り出し、出力バッファへ順に出力する。つまり、単純にコピーする工程となる。
本実施形態では、フレームヘッダーに、並び替え情報を符号として埋め込んだがそれに限定されず、シーケンス、スライス、格子ブロックなどのヘッダーに並び替え情報を埋め込んでもよい。図17はシーケンスヘッダー情報の例であるが、図17(b)のようにシーケンスヘッダーに並び替え情報を埋め込んでもよい。また、並び替え情報符号そのものをストリームに挿入するのでなく、例えばソフトウェアデコーダ向けプロファイルを定義して、プロファイルに応じてそこから並び替え情報を生成してもよい。プロファイルは、図17(a)のように、シーケンスヘッダー情報にそのプロファイルIDが埋め込むことにより識別される。例えば、S1501では、符号化ストリームのプロファイルがソフトウェアデコーダ向けと設定された場合には、並び替えをするという並び替え情報を取得し、そうでない場合には並び替えをしないという並び替え情報を取得するという構成をとるといった構成である。
また、符号化に先立ち、復号側と通信を行い、復号側がSIMDを使ったソフトウェアであるか否かを問い合わせ、SIMDを使っている場合に本発明を適用しても良い。
本実施形態では、一旦処理対象の分割データを可変著符号化してからテンポラリーバッファに保持した後に並び替えを行う手法を用いて説明したが、これに限定されない。開始直後に並び替え情報を取得し、構造順に分割ブロックデータを符号化しつつ、並び替え情報によって出力先を変更しても良い。例えば、並び替え情報が“1”の時には、可変著符号化データはテンポラリーバッファで保持される。格子ブロック内の全ての分割ブロックデータの符号化が終了した後、出力バッファへのテンポラリーバッファからの読み出し順を変えることで並び替えを実現する。並び替え情報が“0”の時は出力バッファに直接出力しても構わない。この場合、コピーの動作が不要にできる。
<実施形態4>
図16は、格子ブロックの残差データを生成する分割ブロック復号フローを示してものである。本実施形態では、分割ブロックの可変長符号化係数データ生成に先だって、図5のS500で復号するフレームヘッダー情報に並び替え情報が含まれ、フレームヘッダーの復号時にその並び替え情報が復号されるものとして説明する。本実施形態では、並び替える場合を実施する場合には1を、並び替えを実施しない場合には0となる1ビットの並び替え情報符号が挿入されているとして説明するが、これに限定されない。例えば、フレームヘッダー情報は、図12(b)のようになっている。S1601は、並び替え情報を取得するステップである。S1602は、並び替え情報に従って、可変長符号化係数データを並び替えられているかを判定するステップである。
以降、処理の流れについて説明する。S1601では、フレームヘッダー情報に含まれていた並び替え情報を取得する。
S1602では、S1601で取得した並び替え情報に基づいて、可変長符号化係数データを並び替えられているかを判定する。並び替えられていると判定された場合にはS401を実行して再配置データを取得し、並び替えられていないと判定された場合には、S401を実行しない。
S404では、再配置データに基づいて、格子ブロック(64×64)の残差データとして、分割ブロックデータ(残差データ)配置する。並び替えがなされず再配置データが取得しない場合には、構造順に分割ブロックデータ(残差データ)を配置する。

Claims (2)

  1. 画像を構造的に異なるサイズの複数のブロックに分割し、分割ブロック単位ごとに変換と可変長符号化を伴う符号化処理を行う画像符号化装置であって、
    所定の構造単位に含まれる分割ブロックを対象分割ブロックとして構造順に取得する取得手段と、
    前記対象分割ブロックを変換し、可変長符号化して可変長符号化係数データを生成する生成手段と、
    前記可変長符号化係数データを並び替える制御手段とを有することを特徴とする画像符号化装置。
  2. 画像を構造的に異なるサイズの複数のブロックに分割し、分割ブロック単位ごとに変換と可変長符号化を伴う符号化処理を行う画像符号化装置における画像符号化方法であって、
    所定の構造単位に含まれる分割ブロックを対象分割ブロックとして構造順に取得する取得工程と、
    前記対象分割ブロックを変換し、可変長符号化して可変長符号化係数データを生成する生成工程と、
    前記可変長符号化係数データを並び替える制御工程とを有することを特徴とする画像符号化方法。
JP2011004649A 2011-01-13 2011-01-13 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム Pending JP2012147293A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011004649A JP2012147293A (ja) 2011-01-13 2011-01-13 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
PCT/JP2012/000149 WO2012096179A1 (en) 2011-01-13 2012-01-12 Image coding apparatus and image coding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011004649A JP2012147293A (ja) 2011-01-13 2011-01-13 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2012147293A true JP2012147293A (ja) 2012-08-02

Family

ID=46507085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011004649A Pending JP2012147293A (ja) 2011-01-13 2011-01-13 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Country Status (2)

Country Link
JP (1) JP2012147293A (ja)
WO (1) WO2012096179A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013128526A1 (ja) * 2012-02-28 2013-09-06 パナソニック株式会社 画像処理装置、及び、画像処理方法
WO2015146646A1 (ja) * 2014-03-28 2015-10-01 ソニー株式会社 画像復号装置および方法
WO2017073034A1 (ja) * 2015-10-28 2017-05-04 日本電気株式会社 動画像符号化装置、動画像符号化方法およびプログラム記録媒体

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09182073A (ja) * 1995-03-15 1997-07-11 Toshiba Corp 動画像符号化装置および復号装置
JPH09121350A (ja) * 1995-10-24 1997-05-06 Matsushita Electric Ind Co Ltd 可変長符号化における事象の配置・伝送方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013128526A1 (ja) * 2012-02-28 2013-09-06 パナソニック株式会社 画像処理装置、及び、画像処理方法
JPWO2013128526A1 (ja) * 2012-02-28 2015-07-30 パナソニックIpマネジメント株式会社 画像処理装置、及び、画像処理方法
US9723308B2 (en) 2012-02-28 2017-08-01 Panasonic Intellectual Property Management Co., Ltd. Image processing apparatus and image processing method
WO2015146646A1 (ja) * 2014-03-28 2015-10-01 ソニー株式会社 画像復号装置および方法
JPWO2015146646A1 (ja) * 2014-03-28 2017-04-13 ソニー株式会社 画像復号装置および方法
US10298927B2 (en) 2014-03-28 2019-05-21 Sony Corporation Image decoding device and method
WO2017073034A1 (ja) * 2015-10-28 2017-05-04 日本電気株式会社 動画像符号化装置、動画像符号化方法およびプログラム記録媒体
JPWO2017073034A1 (ja) * 2015-10-28 2018-08-23 日本電気株式会社 動画像符号化装置、動画像符号化方法、およびプログラム

Also Published As

Publication number Publication date
WO2012096179A1 (en) 2012-07-19

Similar Documents

Publication Publication Date Title
JP6080405B2 (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP6120490B2 (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP7085021B2 (ja) 動画の符号化並びに復号の方法、装置及びコンピュータプログラム
CN112383781B (zh) 参考块的位置决定其重构阶段的块匹配编解码方法和装置
JP2022514548A (ja) 点群解凍用方法、点群圧縮用方法及び装置
US11611775B2 (en) Method and apparatus for point cloud coding
CN109891892B (zh) 依赖于图像编译系统中的帧内预测的图像解码方法和装置
KR20120124058A (ko) 텍스처 패턴 적응형 파티션 블록 변환
CN116324912A (zh) 用于网格压缩的顶点重新排列
KR20240093534A (ko) 메시 압축을 위한 변위 코딩
CN116368526A (zh) 在用于网格压缩的顶点重新排序方法中编码连接性
CN113412626B (zh) 在图像编译系统中使用残差信息的图像解码方法及其装置
JP2014011726A (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
CN112019842A (zh) 点云压缩的方法、装置、计算机设备和存储介质
JP7141535B2 (ja) 点群圧縮の方法および装置
CN104365100A (zh) 用于并行处理的视频编码方法和装置以及视频解码方法和装置
KR101673186B1 (ko) 매크로블록의 연관관계를 고려하여 영상 데이터의 부호화 및 복호화를 병렬 처리하는 장치 및 방법
CN104205848A (zh) 使用用于并行处理的统一语法的视频编码方法和设备以及视频解码方法和设备
JP2012147293A (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP6187826B2 (ja) 動画像符号化装置及び動画像符号化方法
JP2014158076A (ja) 走査順生成装置、動画像符号化装置、動画像復号装置、走査順生成方法、およびプログラム
JP2013098735A (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP6490272B2 (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP6308409B2 (ja) 動画像符号化装置及び動画像符号化方法
CN118285096A (zh) 帧内预测融合的变换选择