JP6860053B2 - サブブロックに基づく精緻化ビット割り当てのための埋め込みコーデック回路 - Google Patents

サブブロックに基づく精緻化ビット割り当てのための埋め込みコーデック回路 Download PDF

Info

Publication number
JP6860053B2
JP6860053B2 JP2019187650A JP2019187650A JP6860053B2 JP 6860053 B2 JP6860053 B2 JP 6860053B2 JP 2019187650 A JP2019187650 A JP 2019187650A JP 2019187650 A JP2019187650 A JP 2019187650A JP 6860053 B2 JP6860053 B2 JP 6860053B2
Authority
JP
Japan
Prior art keywords
subblock
subblocks
quantization conversion
coded
category
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.)
Active
Application number
JP2019187650A
Other languages
English (en)
Other versions
JP2020141394A (ja
Inventor
ゴーラム サーヴァー モハメッド
ゴーラム サーヴァー モハメッド
タバタバイ アリ
タバタバイ アリ
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of JP2020141394A publication Critical patent/JP2020141394A/ja
Application granted granted Critical
Publication of JP6860053B2 publication Critical patent/JP6860053B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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/124Quantisation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • 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
    • 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/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

〔関連出願との相互参照/引用による組み入れ〕
なし。
本開示の様々な実施形態は、画像及びビデオの圧縮又は解凍のための埋め込みコーデックに関する。具体的には、本開示の様々な実施形態は、サブブロックに基づく精緻化ビット割り当てのための埋め込みコーデック回路に関する。
最近のイメージング技術の進歩と共に、(例えば、低解像度画像/ビデオから高解像度画像/ビデオに至るまでの)様々な画像解像度の異なる画像又はビデオの圧縮及び記憶に対処できる画像取り込み及び表示装置内のオンチップコーデックの需要が高まっている。現在では、画像又はビデオに、例えば変換符号化、残差予測、量子化、エントロピー符号化などの複数の符号化法を適用して所望の圧縮を達成することができる。通常、エントロピー符号化後には、符号化画像ブロックのビット配分内でビットプレーンにおいて利用できる未だ符号化されていない非符号化ビットが存在することがある。シナリオによっては、各符号化画像ブロック内で等しい数の精緻化ビットを所定の順序で割り当てることによって、これらの非符号化ビットを精緻化することができる。このようなシナリオでは、各符号化画像ブロック内で等しい数の精緻化ビットを割り当てると、特にオンチップメモリの使用量を最小限に抑えながらスループットに対する面積効率を達成することが望ましいオンチップコーデックにおいて目に見える画像アーチファクトが生じるだけでなく、圧縮が非効率的になってメモリ使用率が最適でなくなることもある。
当業者には、説明したシステムと、本出願の残り部分において図面を参照しながら示す本開示のいくつかの態様とを比較することにより、従来の慣習的方法のさらなる制限及び不利点が明らかになるであろう。
少なくとも1つの図に実質的に示し、及び/又はこれらの図に関連して説明し、特許請求の範囲にさらに完全に示す、サブブロックに基づく精緻化ビット割り当てのための埋め込みコーデック(EBC)回路及び方法を提供する。
全体を通じて同じ要素を同じ参照符号によって示す添付図面を参照しながら本開示の以下の詳細な説明を検討することにより、本開示のこれらの及びその他の特徴及び利点を理解することができる。
本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための埋め込みコーデック(EBC)回路及びその他の回路を含む例示的なメディア装置を示すブロック図である。 本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための様々な周辺コンポーネントを含む図1のEBC回路を示すブロック図である。 本開示の実施形態による、図2のEBC回路による量子化変換残差レベルに基づくサブブロックの分類を示す。 本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための、図2のEBC回路による1D画像ブロックへの例示的な逐次符号化スキームの適用を示す図である。 本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための例示的な方法を示すフローチャートである。 本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための例示的な方法を示すフローチャートである。
本開示の様々な実施形態は、サブブロックに基づく精緻化ビット割り当てのための方法及び埋め込みコーデック(EBC)回路において見出すことができる。EBC回路は、1D画像ブロックの符号化ビットストリームの生成に対処するメモリ及びエンコーダ回路を含むことができる。開示するEBC回路は、1D画像ブロックの異なるサブブロックを、異なるサブブロックの複雑度及び平坦度に基づいて異なるサブブロックカテゴリに分類する。さらに、開示するEBC回路は、対応する1Dサブブロックに関連するサブブロックカテゴリに基づいて、非符号化ビット位置においてサブブロックレベルで精緻化ビットを割り当てる。さらに、サブブロックレベルでの差別化により、サブブロックへの精緻化ビットの割り当てを、サブブロックレベルで表される複雑度に基づいて適応的に低減する機会をもたらす。例えば、平坦なサブブロック、すなわち全てのAC係数がゼロである1Dサブブロックは、全ての非符号化ビット位置を精緻化する必要がないのに対し、複雑なサブブロック、すなわちさらに大きな値(例えば、−2、−1、0、1、2などのゼロよりも大きい又はゼロに近い値)のAC係数を有する1Dサブブロックは、全ての非符号化ビット位置を精緻化する必要があり得る。精緻化ビットをサブブロックレベルで選択的に割り当てると、より大きなAC係数値を表すためにより多くのビット数を必要とする画像サブブロック(複雑なレベルのサブブロック)に最大数の精緻化ビットが割り当てられるので、画質が改善される。このように精緻化ビットをサブブロックレベルで選択的に割り当てた結果、符号化画像の品質に悪影響を与えることなく圧縮効率が大幅に改善される。さらに、開示するEBC回路のスループットに対する面積効率が向上してオンチップメモリの使用率が最適化される。
図1は、本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための埋め込みコーデック(EBC)回路及びその他の回路を含む例示的なメディア装置を示すブロック図である。図1に示すメディア装置102は、プロセッサ106と、埋め込みコーデック(EBC)回路108と、外部メモリ110をと含む。いくつかの実施形態では、プロセッサ106、EBC回路108及び外部メモリ110にイメージセンサ104を通信可能に結合することができる。さらに、イメージセンサ104、プロセッサ106、EBC回路及び外部メモリ110を相互接続するシステムバス112も示す。
メディア装置102は、未圧縮のRAW画像及び/又はビデオを符号化(すなわち、圧縮)画像及び/又はビデオとして外部メモリ110に記憶するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。メディア装置102は、メディアコンテンツ(例えば、符号化画像及び/又はビデオ)の符号化及び復号を管理するとともに、メディア装置102における復号メディアコンテンツの再生を管理するようにさらに構成することができる。メディア装置102は、画像/ビデオの(インターネット/ネットワークを必要としない)オフライン処理及び圧縮/解凍のための(EBC回路108などの)専用オンチップコーデックを含むことができる。いくつかの実施形態では、メディア装置102が、未圧縮ファイルフォーマットであるRAW画像ファイルフォーマットで画像を取り込む(イメージセンサ104などの)1又は2以上のイメージセンサを含むこともできる。このような場合には、メディア装置102のEBC回路108が取り込み画像を符号化することができる。メディア装置102の例としては、以下に限定するわけではないが、デジタルカメラ、ポータブル通信装置(例えば、ラップトップ、スマートホン、タブレット、ファブレット、スマートウォッチ、スマートグラスなど)、メディアサーバ、ワークステーション、デスクトップコンピュータ、拡張現実/仮想現実/混合現実(AR/VR/MR)装置を挙げることができる。
図1には示していないが、メディア装置102は、通信ネットワーク(やはり図示せず)を介した符号化及び/又は未圧縮RAW画像及び/又はビデオの他の周辺装置又はピア接続装置との共有を管理するように構成できるネットワークインターフェイスを含むこともできる。ネットワークインターフェイス及び通信ネットワークの詳細な説明は、簡潔にするために本開示から省いている。
イメージセンサ104は、イメージセンサ104の視野(FOV)内のシーンの1つ又は一連の未圧縮RAW画像を取り込むように構成できる好適なロジック、回路及びインターフェイスを含むことができる。イメージセンサ104は、相補型金属酸化物半導体(CMOS)センサなどのアクティブピクセルセンサとして実装することができる。このような実装では、イメージセンサ104を、CMOSセンサのセンサコア上で画素の各行又は列(一次元(1D)画素配列又は1D画像ブロック)を(一行ずつ)逐次走査するように構成することができる。逐次走査は、垂直(列方向)走査又は水平(行方向)走査とすることができる。いくつかの実施形態では、イメージセンサ104を、アクティブピクセルセンサの代わりに、(電荷結合素子(CCD)センサなどの)パッシブピクセルセンサ、オーバーサンプルドバイナリイメージセンサ(oversampled binary image sensor)、平坦フーリエキャプチャアレイ(planar Fourier capture array:PFCA)、及び裏面照射型(BSI又はBI)センサなどのうちの1つとして実装することもできる。図示してはいないが、イメージセンサ104は、イメージセンサ104からの画像データに従って動作するように構成された専用マイクロプロセッサ(又はマイクロコントローラ)、フレームバッファに記憶された画像を処理するための画像処理装置(GPU)、及び/又はイメージセンサ104と一体化されたメモリを含むこともできる。
プロセッサ106は、専用メモリ(例えば、外部メモリ110、又はEBC回路108内のオンチップメモリ)に記憶された命令セットを実行するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。プロセッサ106は、当業で周知の複数のプロセッサ技術に基づいて実装することができる。プロセッサ106の例としては、以下に限定するわけではないが、画像処理装置(GPU)、プロセッサのための(専用画像コプロセッサなどの)コプロセッサ、専用デジタルシグナルプロセッサ、中央処理装置(CPU)、x86ベースのプロセッサ、x64ベースのプロセッサ、縮小命令セットコンピューティング(RISC)プロセッサ、特定用途向け集積回路(ASIC)プロセッサ、複合命令セットコンピューティング(CISC)プロセッサを挙げることができる。
EBC回路108は、特定の圧縮係数に従って1D画像ブロック(例えば、16×1又は8×1の画像ブロック)を符号化するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。EBC回路108は、EBC回路108において受け取られた命令に応答して、符号化1D画像ブロックを精緻化するようにさらに構成することができる。いくつかの実施形態では、1D画像ブロックを、入力画像(すなわち、未圧縮RAW画像)の一部、或いはイメージセンサ104による行方向また又は列方向の走査後にイメージセンサ104の読み出しレジスタから直接取り出される画素配列(行又は列)とすることができる。EBC回路108は、符号化1D画像ブロックのビットストリームの外部メモリ110への記憶、或いは専用通信ネットワークを介した他のメディア装置への転送をさらに管理することができる。
EBC回路108は、メディア装置102の他の計算回路と連動する専用ハードウェアエンコーダ/デコーダとして実装することができる。このような実装では、EBC回路108が、特定の計算回路上の特定のフォームファクタに関連することができる。特定の計算回路の例としては、以下に限定するわけではないが、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジック装置(PLD)、特定用途向け集積回路(ASIC)、プログラマブルASIC(PL−ASIC)、特定用途向け集積部品(ASSP)、及び標準的なマイクロプロセッサ(MPU)又はデジタルシグナルプロセッサ(DSP)に基づくシステムオンチップ(SOC)を挙げることができる。別の実施形態によれば、EBC回路108は、画像処理装置(GPU)と連動してEBC回路108の動作を並列化することもできる。さらに別の実施形態によれば、EBC回路108は、メモリに記憶されたプログラム可能命令と、メディア装置102のハードウェア回路上の論理装置(又はプログラマブル論理装置)との組み合わせとして実装することもできる。
外部メモリ110は、1つ又は一連の入力画像(未圧縮RAW画像又は符号化画像)を記憶するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。外部メモリ110は、イメージセンサ104から直接取り出された未圧縮1D RAW画像ブロックを記憶するイメージバッファとして機能するようにさらに構成することができる。また、外部メモリ110は、EBC回路108が符号化1D画像ブロックのビットストリームを生成するために適用できる逐次符号化/復号スキームに関連する命令を記憶することもできる。例示的な実施形態では、外部メモリ110を、EBC回路108と外部的に連動できる永続的ストレージメモリ又はダイナミックランダムアクセスメモリ(DRAM)とすることができる。別の例示的な実施形態では、外部メモリ110を、EBC回路108と外部的に連動できるスタティックランダムアクセスメモリ(SRAM)回路とすることができる。外部メモリ110のさらなる実装例としては、以下に限定するわけではないが、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電気的消去可能でプログラム可能なリードオンリメモリ(EEPROM)、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、CPUキャッシュ、又はセキュアデジタル(SD)カードを挙げることができる。
いくつかの実施形態では、EBC回路108が、アドバンストビデオコーデック(AVC)/メディアエキスパートグループ(MPEG−4/AVC)又はH.264、MPEG−4/HEVC又はH.265などを含むことができる他の異なるコーデック規格(例えば、後方互換性)をサポートすることもできる。また、ビデオコーデックは、FFmpeg、Xvid、DIVx、VP1−9、Windows Media Codec、FFavsなどを含むことができる他のコーデックライブラリによってサポートすることもできる。
システムバス112は、メディア装置102の異なるコンポーネントへの一連のデータチャネル(又は導電経路)を含むことができるハードウェアバスとすることができる。換言すれば、システムバス112は、メディア装置102の異なるコンポーネントの少なくともデータポート、アドレスポート及び制御信号ポートを相互接続することができる。例えば、システムバス112は、イメージセンサ104、プロセッサ106、EBC回路108、外部メモリ110及びその他の回路を相互接続することができる。システムバス112は、メディア装置102に搭載された異なるコンポーネント間の直列データ通信又は並列データ通信を容易にするように構成することができる。システムバス112の例としては、8ビットパラレルシングルシステムバス、16ビットパラレルシングルシステムバス、32ビットパラレルシングルシステムバス、64ビットパラレルシングルシステムバス、シリアルデータバスなどを挙げることができる。
動作時には、メディア装置102が、1つ又は一連の1D画像ブロックを受け取ることができる。いくつかの実施形態では、1つ又は一連の1D画像ブロックを、(イメージセンサ104などの)オンチップイメージセンサの読み出しレジスタから、又はメディア装置102と連動するカメラ装置から直接取り出すことができる。他の実施形態では、1つ又は一連の1D画像ブロックを、メディア装置102の外部メモリ110などの永続的ストレージに記憶された未圧縮RAW入力画像から取り出し、或いはカメラ、データサーバなどの他のメディア記憶装置から外部的に受け取ることができる。
EBC回路108は、1つ又は一連の1D画像ブロックを外部メモリ110から、又はイメージセンサ104の読み出しレジスタから直接取り出すように構成することができる。EBC回路108は、これらの1D画像ブロックに対して逐次符号化スキームを実行して、符号化1D画像ブロックのビットストリームを生成するように構成することができる。符号化1D画像ブロックのビットストリームは、この符号化1D画像ブロックのビットストリームを取得するために1D画像ブロックの符号化において適用された逐次符号化スキームを示すことができるヘッダ情報を含むことができる。1つの実装では、逐次符号化スキームが、1D変換の後に、量子化、残差予測及びエントロピー符号化スキームを逐次適用することを含むことができる。
逐次符号化スキームでは、EBC回路108を、例えば「16×1」の画像ブロックなどの1D画像ブロックを複数の1D画像サブブロックに分割するように構成することができる。複数の1D画像サブブロックは、1D画像ブロックをエッジにおいて画素値が急激に変化する領域に論理分割したものに対応することができる。例えば、「16×1」画像ブロックは、4つの「4×1」1D画像サブブロックに分割することができ、各「4×1」1D画像サブブロックは強エッジを含むことができ、すなわち2つの連続する「4×1」1D画像サブブロックのエッジでは画素値が大きく異なる。
EBC回路108は、複数の1D画像サブブロックの各1D画像サブブロックに個別に1D順方向変換を適用して複数の1D変換係数を生成するようにさらに構成することができる。ある実施形態によれば、この1D順方向変換が、(正規直交基底群又は固有ベクトル群を含む)正弦波ユニタリ変換群に基づくことができる。1D順方向変換の例としては、以下に限定するわけではないが、タイプI−VIII離散コサイン変換(DCT)、タイプI−VIII離散サイン変換(DST)、離散ウェーブレット変換(DWT)、及びデュアルツリー複素ウェーブレット変換(DCST)を挙げることができる。
例えば、「16×1」画像ブロックの各「4×1」画像サブブロックには、「4×1」1D DCT変換を適用することができる。同様に、「16×1」画像ブロックの各「8×1」画像サブブロックには、「8×1」1D DCT変換を適用することができる。従って、結果として1D画像ブロックに適用される1D変換のタイプは、1D画像ブロックの各1D画像サブブロックのサイズに基づくことができる。複数の1D画像サブブロックの各1D画像サブブロックのサイズは、1D画像ブロックの符号化前に指定することができる。
EBC回路108は、各1D画像サブブロックの複数の1D変換係数を量子化して複数の量子化変換レベルを生成するようにさらに構成することができる。複数の量子化変換レベルは、複数の離散化された量子化ビンによって互いに分離することができる。さらに、これらの複数の量子化ビンの刻み幅を適応的に又は均一に選択して、変換係数の1Dサブブロックを複数の量子化変換レベルに効率的に量子化することもできる。各量子化変換レベルは、量子化ビンの上限及び下限からの中央値とすることができ、例えば「(155、175)」の量子化ビンは、「(155+175)/2」、すなわち「165」という量子化変換レベルを含むことができる。EBC回路108は、量子化を使用して、変換領域データ(すなわち、複数の1Dサブブロックの各1Dサブブロックの複数の変換係数)から、視覚的に顕著な品質低下を伴わずに冗長な係数情報を削除することができる。
複数の量子化ビンは、メディアコンテンツを符号化又は復号する適応的量子化スキームに従う規定の割合によって変化し得る量子化パラメータ(QP)に基づいて決定することができる。QPは、0から符号化1D画像ブロックのビットストリームのビット深度まで変化することができる。例えば、圧縮1D画像ブロックの8ビットのビットストリームのQPを、変換係数の第1の1Dサブブロックについて「7」として選択し、変換係数の第2のブロックについて「0」として選択することにより、変換係数の第1の1Dサブブロックを第2のブロックと比べて細かい刻み幅で量子化することができ、第2のブロックを全く量子化しないことができる旨を示すことができる。いくつかの実施形態では、複数の1Dサブブロックの各1Dサブブロックの複数の変換係数に対して実行される量子化スキームが、ビットプレーン量子化スキームである。
EBC回路108は、それぞれが複数の量子化変換レベルを含むことができる量子化変換レベルの複数の1Dサブブロックに残差予測スキームを適用するようにさらに構成することができる。残差予測スキームの適用後には、量子化変換レベルの複数の1Dサブブロックから、量子化変換残差レベルの複数の1Dサブブロックを取得することができる。1D画像ブロックの量子化変換残差レベルの複数の1Dサブブロックは、外部メモリ110、又はEBC回路108内のオンチップメモリ(例えば、専用SRAM又はオンチップキャッシュ)などのメモリに記憶することができる。残差予測スキームの例としては、以下に限定するわけではないが、パルス符号化変調(PCM)スキーム、差分パルス符号変調(DPCM)スキーム、又は適応的DPCM(ADPCM)スキームを挙げることができる。DPCM及びADPCMスキームでは、各量子化変換レベルを利用する代わりに基準量子化レベルから残差を予測する。
例えば「4×1」サブブロックなどの各1Dサブブロックは、DC量子化変換残差レベル及び複数のAC量子化変換残差レベルをさらに含むことができる複数の量子化変換残差レベルを含むことができる。ここでの「DC」は、画像ブロック又はサブブロックの第1の項である直流(DC)項を表し、従ってゼロ周波数を示し、残りの要素は、非ゼロの周波数を示す交流(AC)項(AC値又はAC係数とも呼ばれる)として知られている。従って、AC量子化変換残差レベルは、AC係数(値)の量子化変換残差レベルに対応する。
EBC回路108は、エントロピー符号化スキームを適用することによって量子化変換残差レベルの複数の1Dサブブロックを符号化するようにさらに構成することができる。この結果、複数のビットプレーンを含む複数の符号化1Dサブブロックを取得することができる。複数のビットプレーンは、符号化ビット位置と、精緻化ビットを割り当てることによって精緻化できる非符号化ビット位置とを含むことができる。エントロピー符号化スキームは、以下に限定するわけではないが、ハフマン符号化スキーム、指数ゴロム符号化スキーム、プログレッシブゴロム符号化スキーム、ゴロムライス符号化スキーム、及びハフマン符号化スキームと指数ゴロム符号化スキームとの組み合わせを含むことができる。
EBC回路108は、符号化1Dサブブロックにおいて精緻化ビットを割り当てるために、エントロピー符号化前に各1Dサブブロックの平坦度又は複雑度の尺度を推定するようにさらに構成することができる。平坦度又は複雑度の尺度は、複数の1Dサブブロックの各1DサブブロックにおけるAC量子化変換残差レベルの絶対値に基づいて定めることができる。従って、EBC回路108は、各1Dサブブロックを複数のサブブロックカテゴリのうちの1つのサブブロックカテゴリに分類するように構成することができる。例えば、3つのサブブロックカテゴリ、すなわち第1のサブブロックカテゴリ、第2のサブブロックカテゴリ及び第3のサブブロックカテゴリが存在することができる。第1のサブブロックカテゴリは、低複雑度のAC量子化変換残差レベルを表すことができる。第2のサブブロックカテゴリは、中複雑度のAC量子化変換残差レベルを表すことができる。第3のサブブロックカテゴリは、高複雑度のAC量子化変換残差レベルを表すことができる。
複数の1Dサブブロックのうちの1つの1Dサブブロックのサブブロックカテゴリへの分類は、この1Dサブブロックへの一連のシグナリングビットの割り当てに基づくことができる。従って、EBC回路108は、複数の1Dサブブロックの各1Dサブブロックに、対応する1Dサブブロックの複雑度又は平坦度の尺度に従って一連のシグナリングビットを割り当てるように構成することができる。例えば、第1のサブブロックカテゴリに関連する1Dサブブロックの一連のシグナリングビットを「0」とすることができる。EBC回路108は、量子化変換残差レベルの異なる1Dサブブロックに割り当てられた一連のシグナリングビットに基づいて、複数の精緻化ビットを選択して異なる符号化1Dサブブロックに割り当てるように構成することができる。EBC回路108は、割り当てられた一連のシグナリングビットを精緻化段階で利用して、特定のサブブロックカテゴリの符号化1Dサブブロックにおいて割り当てるべき複数の精緻化ビットを決定することができる。
EBC回路108は、符号化1D画像ブロックのビットストリームを生成するようにさらに構成することができる。生成されるビットストリームは、符号化ビットと、割り当てられる精緻化ビットとを含むことができる。割り当てられる精緻化ビットの数は、利用可能なビット配分と、圧縮後の符号化ビット数とに依存する。例えば、10ビット深度を有する16サンプルの入力画像ブロックでは、5ビット深度の出力を有することが望ましいと考えられる。符号化スキームの適用後には、出力が74ビットしか占めないのに対し、ビット配分は16×5=80ビットであることが分かる。存在する6つの非符号化ビットを使用して好適な精緻化方法で6つの精緻化ビットを割り当てることによって画質を高めることができる。
別の実施形態によれば、EBC回路108のEBCデコーダ回路(図1には図示せず)を、異なる符号化テーブル(例えば、ハフマン符号化スキーム、指数ゴロム符号化スキームのためのカスタム符号化テーブル、又はシグナリングビットテーブル)及び量子化テーブルを予め記憶しておくように構成することができる。従って、符号化1D画像ブロックのビットストリームが異なる符号化テーブル及び量子化テーブルを含まなくてもよくすることができる。
ある実施形態によれば、EBC回路108は、異なる復号スキームを利用して符号化1D画像ブロックのビットストリームを復号できる異なる外部デコーダによって復号できるような符号化1D画像ブロックのビットストリームを生成するように構成することができる。このような場合には、EBC回路108を、符号化1D画像ブロックのビットストリームに関連するヘッダ情報又は異なるメタストリームに異なる符号化テーブル(例えば、ハフマン符号化スキーム、指数ゴロム符号化スキームのためのカスタム符号化テーブル、又はシグナリングビットテーブル)及び量子化テーブルを追加するように構成することができる。ビットストリームにおいてこのようなカスタムテーブル及び量子化テーブルを追加することにより、他のデコーダ回路がEBC回路108の出力を復号できるようになる。
ある実施形態によれば、符号化1D画像ブロックのビットストリームは、外部メモリ110などのメモリ、又はEBC回路108内のオンチップメモリに(2D画像などの)入力画像の一部、完全な画像又はビデオ部分として記憶することができる。1つの実装では、プロセッサ106を、メディア装置102のシステムバス112と通信可能に連動する表示回路(例えば、ビデオカード)のフレームバッファ(又はフレームストア)にシステムバス112を介して符号化1D画像ブロックのビットストリームを転送するように構成することができる。このフレームバッファは、表示回路のための圧縮フレームバッファとして機能することができる。表示回路(図1には図示せず)は、1D画像ブロックの符号化ビットストリームのビットストリームを復号し、これをさらに利用してメディア装置102において画像パッチ(patch of image)を表示することができる。別の実装では、プロセッサ106を、メディア装置102内のビデオデコーダのデコーダピクチャバッファ(DPB)などのデコーダバッファ、画像デコーダのバッファメモリ、又はビデオコーデックの符号化ピクチャバッファ(CPB)にシステムバス112を介して符号化1D画像ブロックのビットストリームを転送するように構成することができる。
例示的な実装では、メディア装置102を、デジタルビデオカメラ又はデジタル画像カメラなどのカメラとすることができ、符号化1D画像ブロックのビットストリームは、カメラ内のCMOSセンサの読み出しレジスタから直接受け取られる画素値の1D配列に対応することができる。例示的な実施形態では、EBC回路108をCMOSセンサ回路内に実装することができる。
図2は、本開示の実施形態による、サブブロックに基づく量子化変換残差レベルのエントロピー符号化のための様々な周辺コンポーネントを含む埋め込みコーデック(EBC)回路を示すブロック図である。図2の説明は、図1の要素に関連して行う。図2には、EBC回路108のブロック図200を示す。EBC回路108は、入力/出力(I/O)インターフェイス202と、オンチップメモリ204と、エンコーダ回路206と、デコーダ回路208とを含むことができる。ブロック図200には、システムバス112を介してEBC回路108に通信可能に結合されたイメージセンサ104、プロセッサ106及び外部メモリ110も示す。いくつかの実施形態では、本開示の範囲から逸脱することなく、プロセッサ106及び外部メモリ110をEBC回路108内に実装することができる。
I/Oインターフェイス202は、複数のI/Oポートを管理して、例えば外部メモリ110、プロセッサ106又はイメージセンサ104などの他の周辺回路からのシステムバス112を介した通信データの交換を容易にするように構成できる好適なロジック、回路及びインターフェイスを含むことができる。この通信データは、符号化1D画像ブロックのビットストリーム、制御信号及びCPU命令などを含むことができる。I/Oポートの構成は、例えばASIC、FPGA又はSoCチップ内の物理I/OピンなどのEBC回路108の仕様に依存することができる。
オンチップメモリ204は、EBC回路108の異なるコンポーネントが1D画像ブロックを符号化するために利用できる異なる動作データ(例えば、変換領域データ、残差レベル、量子化レベル、エントロピー符号化ビットなど)を記憶するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。オンチップメモリ204に記憶される動作データの例としては、以下に限定するわけではないが、符号化1D画像ブロックのビットストリーム、変換領域データ、量子化変換レベル、量子化変換残差レベル、計算変数、一時的処理データ、及び1D/2D画像ブロックを挙げることができる。オンチップメモリ204は、読み出し/書き込み速度、メモリサイズ及び製造因子などの規定のメモリ仕様を用いて設計された特定のメモリとして実装することができる。オンチップメモリ204の例としては、以下に限定するわけではないが、スタティックランダムアクセスメモリ(SRAM)、ダイナミックアクセスメモリ(DRAM)、及びスタティックダイナミックRAM(SD−RAM)を挙げることができる。
エンコーダ回路206は、オンチップメモリ204又は外部メモリ110などのメモリに記憶された1D画像ブロックに逐次符号化スキームを適用した後に精緻化を行うことによって符号化1D画像ブロックのビットストリームを生成するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。エンコーダ回路206は、(量子化変換残差レベルの)異なる1Dサブブロックを異なるサブブロックカテゴリに分類し、この異なるサブブロックカテゴリに基づいて符号化1Dサブブロックに精緻化ビットを割り当てることもできる。一部のサブブロック(複雑レベル)は、他のサブブロック(比較的平坦なレベル)に比べて多くの細部を必要とするので、エンコーダ回路206は、サブブロックカテゴリに基づいて1Dサブブロックに精緻化ビットを割り当てることができる。複雑なレベルのサブブロックに平坦なレベルのサブブロックと比べて多くの数の精緻化ビットを割り当てることにより、複雑なレベルのサブブロックに対応する符号化画像の領域の細部を改善することができる。いくつかの実施形態では、エンコーダ回路206を、ASIC、プログラマブルロジック装置(PLD)、SOC、FPGA、デジタルシグナルプロセッサ(DSP)、又はその他の専用回路のうちの1つに基づいて実装できるハードウェアエンコーダチップとすることができる。他の実施形態では、エンコーダ回路206を、ハードウェアと、オンチップメモリ204に記憶された命令セット(例えば、VHDL又はHDLロジックに基づく命令)との組み合わせとして実装することができる。
デコーダ回路208は、(符号化1D画像ブロックに関連する)複数の1Dサブブロックの各1Dサブブロックに割り当てられた一連のシグナリングビットを含むヘッダ情報に基づいて符号化1D画像ブロックのビットストリームを復号するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。いくつかの実施形態では、デコーダ回路208が、符号化1D画像ブロックのビットストリームを復号するための基準として機能できる予め記憶された量子化テーブル及び符号化テーブルを有することができる。いくつかの実施形態では、デコーダ回路208を、ASIC、プログラマブルロジック装置(PLD)、SOC、FPGA、デジタルシグナルプロセッサ(DSP)、又はその他の専用回路のうちの1つに基づいて実装できるハードウェアエンコーダチップとすることができる。いくつかの実施形態では、デコーダ回路208を、ハードウェアと、オンチップメモリ204内のプログラム命令(例えば、VHDL又はHDLロジックに基づく命令)との組み合わせとして実装することができる。
動作時には、1D画像ブロックの量子化変換残差レベルの複数の1Dサブブロックを外部メモリ110又はオンチップメモリ204などのメモリに記憶することができる。量子化変換残差レベルの複数の1Dサブブロックは、これらを記憶する前に、1D画像ブロックの複数の1D画像サブブロックの1D順方向変換の後に、量子化及び残差予測を逐次適用することに基づいて生成することができる。例えば、「16×1」画像ブロックには4つの「4×1」画像サブブロックが存在することができる。エンコーダ回路206は、各「4×1」サブブロックに対する「4×1」DCT−II変換、「7」の量子化パラメータのビットプレーン量子化、及び4つの「4×1」サブブロックの各「4×1」サブブロックにおけるDPCM符号化スキームの逐次適用に基づいて、量子化変換残差レベルの4つの「4×1」サブブロックを生成するように構成することができる。
エンコーダ回路206は、量子化変換残差レベルの複数の1Dサブブロックをエントロピー符号化するために、外部メモリ110又はオンチップメモリ204などのメモリから、記憶された量子化変換残差レベルの複数の1Dサブブロックを取り出すように構成することができる。各1Dサブブロックは、DC量子化変換残差レベル及び複数のAC量子化変換残差レベルとすることができ、例えば4×1サブブロックは、1つのDC量子化変換残差レベルと3つのAC量子化変換残差レベルとを有することができる。
各1Dサブブロック内のDC及びAC量子化変換残差レベルの位置は、1D順方向変換を適用するために選択される方向(例えば、1Dブロック又はサブブロックの左から右へ又は右から左への走査順)に基づくことができる。例えば、1D行DCT変換を適用すると、1Dサブブロックの行内の最初の位置にDC変換係数を生成し、後続の位置に残りのAC変換係数を生成することができる。同様に、1D列DCT変換を適用すると、1Dサブブロックの列内の最初の位置にDC変換係数を生成し、後続の位置に残りのAC変換係数を生成することができる。
量子化変換残差レベルの複数の1Dサブブロックにおける異なる1Dサブブロックは、異なる複雑度(又は平坦度)を示すことができる。これらの複雑度又は平坦度は、1Dサブブロックにおける連続する画素値の差分に対応することができる。例えば、画素値の大きな変動が見られる1Dサブブロックは複雑なサブブロックとみなすことができ、画素値が比較的似通ったサブブロックは平坦なサブブロックとみなすことができる。平坦なサブブロックは、各画素値が結果としての出力画像に大きな影響を与える複雑なサブブロックに比べて少数のビットを用いて表すことができる冗長画素値を含むことができる。
エンコーダ回路206は、複数のサブブロックカテゴリのうちの1つのサブブロックカテゴリに従って、1D画像ブロックの量子化変換残差レベルの複数の1Dサブブロックを分類するように構成することができる。一連のサブブロックカテゴリは、第1のサブブロックカテゴリ、第2のサブブロックカテゴリ及び第3のサブブロックカテゴリを含むことができる。一連のサブブロックカテゴリの各サブブロックカテゴリは、複数の1Dサブブロックのうちの対応する1Dサブブロックの異なる平坦度及び複雑度を示すことができる。具体的に言えば、第1のサブブロックカテゴリ、第2のサブブロックカテゴリ及び第3のサブブロックカテゴリは、複数の1Dサブブロックの各1DサブブロックにおけるAC量子化変換残差レベルの(値の範囲などの)特定の変動を示すことができる。
エンコーダ回路206は、1Dサブブロックの精緻化時に、対応する1Dサブブロックのサブブロックカテゴリを識別するために、複数の1Dサブブロックの各1Dサブブロックに一連のシグナリングビットを割り当てるように構成することができる。一連のシグナリングビットは、複数の1Dサブブロックの各1Dサブブロックにおける複数のAC量子化変換残差レベルからのAC量子化変換残差レベルの最大値に基づいて割り当てることができる。割り当てられる一連のシグナリングビットは、複数の1Dサブブロックの各1Dサブブロックの一連のサブブロックカテゴリからの1つのサブブロックカテゴリを表すことができる。
ある実施形態によれば、エンコーダ回路206は、複数の1Dサブブロックの各1Dサブブロックの複数のAC量子化変換残差レベルからのAC量子化変換残差レベルの最大値を第1の基準値及び第2の基準値と比較するように構成することができる。この最大値は、0以上の絶対最大値とすることができ、この比較により、複数の1Dサブブロックの各1Dサブブロックの最大値が第1の基準値又は第2の基準値に等しいか、それとも第2の基準値よりも大きいかを判定することができる。
ある実施形態によれば、複数の1Dサブブロックのうちの1つの1Dサブブロックの複数のAC量子化変換残差レベルの最大値が「0」などの第1の基準値に等しい場合、割り当てられる一連のシグナリングビットは、この1Dサブブロックの第1のサブブロックカテゴリを表すことができる。同様に、複数の1Dサブブロックのうちの1つの1Dサブブロックの複数のAC量子化変換残差レベルの最大値が「1」などの第2の基準値に等しい場合、割り当てられる一連のシグナリングビットは、この1Dサブブロックの第2のサブブロックカテゴリを表すことができる。複数の1Dサブブロックのうちの1つの1Dサブブロックの複数のAC量子化変換残差レベルの最大値が「1」などの第2の基準値よりも大きい場合、割り当てられる一連のシグナリングビットは、この1Dサブブロックの第3のサブブロックカテゴリを表すことができる。割り当てられる一連のシグナリングビットにおける第1のサブブロックカテゴリを表すシグナリングビットの数は、「1」ビットとすることができる。一連のシグナリングビットにおける第2のサブブロックカテゴリ及び第3のサブブロックカテゴリを表すシグナリングビットの数は、「2」ビットとすることができる。
いくつかの実施形態では、第1の基準値が「0」であり、第2の基準値が「1」である。従って、エンコーダ回路206は、各1DサブブロックにおけるAC量子化変換残差レベルが「0」又は「1」に等しいか、それとも「1」よりも大きいかをチェックするように構成することができる。ある例では、量子化変換残差レベルの第1の「4×1」サブブロック(SB1)、第2の「4×1」サブブロック(SB2)及び第3の「4×1」サブブロック(SB3)を以下のように与えることができる。
SB1=[−13 0 0 0]
SB2=[−13 1 1 0]
SB3=[−7 6 0 −2]
ここでは、サブブロックSB1の全てのAC量子化変換残差レベルが「0」であり、従ってサブブロックSB1におけるAC量子化変換残差レベルの絶対最大値は「0」である。サブブロックSB2は、「1」のAC量子化変換残差レベルを2つ有し、「0」のAC量子化変換残差レベルを1つ有することができる。従って、サブブロックSB2におけるAC量子化変換残差レベルの絶対最大値は「1」である。サブブロックSB3では、AC量子化変換残差レベルが「6」、「0」及び「−2」である。サブブロックSB3におけるAC量子化変換残差レベルの絶対最大値は「6」である。この例では、サブブロックSB1におけるAC量子化変換残差レベルの絶対最大値が「0」に等しく、この値は「0」という第1の基準値に等しい。従って、サブブロックSB1には、一連のシグナリングビットの割り当ての一部として、サブブロックSB1が(実質的な平坦度を表す)第1のサブブロックカテゴリによって識別されることを示すことができる「0」などの1つのシグナリングビット割り当てることができる。サブブロックSB2におけるAC量子化変換残差レベルの絶対最大値は「1」に等しく、この値は「1」という第2の基準値に等しい。従って、サブブロックSB2には、一連のシグナリングビットの割り当ての一部として、サブブロックSB2が(中程度の平坦度を表す)第2のサブブロックカテゴリによって識別されることを示すことができる「10」などの2つのシグナリングビットを割り当てることができる。サブブロックSB3におけるAC量子化変換残差レベルの絶対最大値は「6」に等しく、この値は「0」という第1の基準値よりも大きく、「1」という第2の基準値よりも大きい。従って、サブブロックSB3には、一連のシグナリングビットの割り当ての一部として、サブブロックSB3が(低平坦度又は高複雑度を表す)第3のサブブロックカテゴリによって識別されることを示すことができる「11」などの2つのシグナリングビットを割り当てることができる。
エンコーダ回路206は、エントロピー符号化スキームの適用によって複数の1Dサブブロックの各1Dサブブロック符号化して複数の符号化1Dサブブロックを生成するように構成することができる。エントロピー符号化スキームは、以下に限定するわけではないが、ハフマン符号化スキーム、指数ゴロム符号化スキーム、プログレッシブゴロム符号化スキーム、ゴロムライス符号化スキーム、又はハフマン符号化スキームと指数ゴロム符号化スキームとの組み合わせとすることができる。
複数の符号化1Dサブブロックは、複数の1Dサブブロックの量子化変換残差レベルに対応する符号化量子化変換残差レベル(encoded quantized−transformed residual levels)を含むことができる。符号化量子化変換残差レベルは、ビットプレーンの複数のビットによって表される。ビットプレーンの数は、符号化前に指定されるビット深度に等しくすることができる。例えば、10ビット深度の入力画像データでは、出力画像データの指定ビット深度を5ビット深度とすることができる。ここでの10ビット深度及び5ビット深度は、入力画像データ及び出力画像データにおけるビットプレーンの数にそれぞれ対応する。エントロピー符号化後には、各符号化量子化変換残差レベルが5ビットを不要とすることができる。従って、ビットプレーン内の空きビット位置に精緻化ビットを割り当てて出力画像の品質を高めることができる。
ある実施形態によれば、エンコーダ回路206は、指定ビット深度と、符号化量子化変換残差レベルが占めるビットの数とに基づいて、割り当てるべき精緻化ビットの数を決定するように構成することができる。例えば、16×1画像ブロックでは、指定ビット深度を5に等しくすることができる。符号化画像ブロックにおける総ビット数は「16×5=80ビット」になるが、エントロピー符号化後には、符号化量子化変換残差レベルが70ビットしか占めないことができる。従って、エンコーダ回路206は、精緻化ビットの数を、総ビット数と実際に占められているビット数との差分である「80−70=10ビット」として決定することができる。
エンコーダ回路206は、複数の1Dサブブロックの各1Dサブブロックのサブカテゴリに基づいて、複数の1Dサブブロックの1又は2以上のビットプレーンに決定された数の精緻化ビットを割り当てるように構成することができる。複数の1Dサブブロックのうちの1つの1Dサブブロックに割り当てられる精緻化ビットの数は、この1Dサブブロックのサブブロックカテゴリに依存することができる。割り当てられた一連のシグナリングビットは、対応する1Dサブブロックに割り当てられる精緻化ビットの数を決定するための決定因子として使用することができる。具体的に言えば、割り当てられた一連のシグナリングビットは、1Dサブブロックの複雑度又は平坦度をエンコーダ回路206に伝え、エンコーダ回路206は、精緻化ビットの数と、対応する1Dサブブロックの精緻化ビットの位置とを指定できる決定テーブル又は命令を記憶することができる。
ある実施形態によれば、第1のサブブロックカテゴリに関連する1Dサブブロックでは、DC量子化変換残差レベル及びAC量子化変換残差レベルに対応するビット位置に「2つ」の精緻化ビットを割り当てることができる。第2のサブブロックカテゴリに関連する1Dサブブロックでは、DC量子化変換残差レベル、第1のAC量子化変換残差レベル及び第2のAC量子化変換残差レベルに対応するビット位置に「3つ」の精緻化ビットを割り当てることができる。第3のサブブロックカテゴリに関連する1Dサブブロックでは、精緻化ビットの数を、1DサブブロックにおけるDC量子化変換残差レベル及びAC量子化変換残差レベルの数に等しくすることができる。換言すれば、精緻化ビットは、DC量子化変換残差レベル及び各AC量子化変換残差レベルに対応するビット位置において割り当てることができる。なお、ここでの第1のサブカテゴリ及び第2のサブブロックカテゴリの精緻化ビットの数は、「2」及び「3」に限定されるものではない。各サブブロックカテゴリの精緻化ビットの数は、入力画像ブロックの画素値の分布解析、及び/又は実験に基づいて決定することができ、閾値は、サブブロックカテゴリ毎に設定することができる。しかしながら、第2のサブブロックカテゴリ(中程度に複雑なサブブロック)の精緻化ビットの数を第1のサブブロックカテゴリ(平坦なサブブロック)の精緻化ビットの数よりも少なくすることはできない。
例えば、B1=[−13 0 0 0]によって与えられる「4×1」サブブロック(B1)では、全てのAC量子化変換残差レベルが「0」であり、「4×1」サブブロック「B1」は、第1のサブブロックカテゴリに関連することができる。従って、「B1」では、DC量子化変換残差レベル(−13)に対応する位置及び第1のAC量子化変換残差レベル(0)に対応する位置において「2つ」の精緻化ビットを割り当てることができる。B2=[−13 1 1 0]によって与えられる「4×1」サブブロック(B2)では、AC量子化変換残差レベルからの絶対最大値が全て「1」(−13はDC成分)であり、「B2」は、第2のサブブロックカテゴリに関連することができる。従って、「B2」では、DC量子化変換残差レベル(−13)及び最初の2つのAC量子化変換残差レベル(最初の2つの0)に対応する位置において「3つ」の精緻化ビットを割り当てることができる。B3=[−7 6 0 −2]によって与えられる「4×1」サブブロック(B3)では、AC量子化変換残差レベルからの絶対最大値が全て「6」であり、「B3」は、第3のサブブロックカテゴリに関連することができる。従って、「B3」では、DC量子化変換残差レベル(−7)及び全てのAC量子化変換残差レベル(6、0、−2)に対応する位置において「4つ」の精緻化ビットを割り当てることができる。
別の実施形態によれば、エンコーダ回路206は、複数の1Dサブブロックの各1Dサブブロックのサブカテゴリに基づいて精緻化順を決定するように構成することができる。精緻化順は、複数のビットプレーン(非符号化ビット位置を含むことができるビットプレーン)のうちの1つのビットプレーンにおける一連の位置に対応することができる。例えば、精緻化順[1、2、5、6、7、9、10、11、12]は、精緻化ビットの割り当てが第1のビット位置から開始して第2のビット位置に進み、第12のビット位置まで順番をたどることができる旨を定めることができる。精緻化順は、各1Dサブブロックのサブブロックカテゴリに対応する量子化変換残差レベルの位置として決定することができる。エンコーダ回路206は、決定された精緻化順に基づいて精緻化ビットを割り当てるようにさらに構成することができる。
ある実施形態によれば、最初の精緻化段階後にも依然として精緻化ビットを利用することができる。例えば、割り当てるべき合計「10」個の精緻化ビットが存在するが、最初の精緻化段階(すなわち、サブブロックカテゴリに基づいて精緻化ビットを割り当てた)後に依然として「2つ」の精緻化ビットの割り当てが残っていることがある。このようなシナリオでは、エンコーダ回路206を、最初の精緻化段階で精緻化ビットが割り当てられていない可能性があるAC量子化変換残差レベルに対応する位置において残りの精緻化ビットを割り当てるようにさらに構成することができる。
従来の精緻化方法では、最初に各1Dサブブロック内のDC量子化変換残差レベルに対応する位置において精緻化ビットを割り当てることができる。最初の精緻化段階では、DC量子化変換残差レベルに対応する位置において1Dサブブロック当たり「1つ」の精緻化ビットしか割り当てられないものとすることができる。最初の段階後に依然として精緻化ビットを利用できる場合には、AC量子化変換残差レベルに対応する位置において残りの精緻化ビットを割り当てることができる。このような場合、1D画像ブロックがその平坦度又は複雑度に基づいて分類されず、これにより他のサブブロックに比べて多くの数の精緻化ビットを必要とするサブブロックに精緻化ビットが最適に割り当てられないことがある。例えば、割り当てるべき精緻化ビットが「4」であり、非符号化ビットを有するサブブロックの数も「4」とすることができる。従来の精緻化方法を使用した場合、最初の段階で各サブブロックに「1つ」の精緻化ビットしか割り当てられないことがある。これでは、(高複雑度を有する)サブブロックに(比較的平坦なレベルを有する)別のサブブロックと同じ数の精緻化ビットが割り当てられてしまうので、最適な精緻化ビットの利用ではない可能性がある。従って、本開示の実施形態による精緻化ビットの割り当ては、(高複雑度を有する)サブブロックに(比較的平坦なレベルを有する)サブブロックに比べて多くの数の精緻化ビットを割り当てることによって最適な精緻化ビットの利用を確実にすることができる。このような精緻化ビットの割り当ては、符号化画像の品質に悪影響を与えることなく圧縮効率を大幅に高める。さらに、複雑なサブブロックに多くの数の精緻化ビットが割り当てられるので、符号化アーチファクトも抑えられる。
図3に、本開示の実施形態による、図2のEBC回路による量子化変換残差レベルに基づくサブブロックの分類を示す。図3の説明は、図1及び図2の要素に関連して行う。図3にはフロー図300を示す。フロー図300には、(複数の1D画像サブブロックに分割された)1D画像ブロックに1D順方向変換、量子化及び残差予測を逐次適用した後に取得される量子化変換残差レベルの複数の1Dサブブロックを符号化している間にエンコーダ回路206が実行するいくつかの動作を示す。サブブロック302A、サブブロック302B、サブブロック302C及びサブブロック302Dなどの一連の1Dサブブロックを示す。エンコーダ回路206は、サブブロック302Aなどのサブブロックを逐次(又は並行して)選択し、例えば「簡単」、「中間」又は「複雑」などの、選択されたサブブロックのサブブロックカテゴリを決定するように構成することができる。
304において、エンコーダ回路206は、サブブロック302Aの最大AC量子化変換残差レベル値を推定するように構成することができる。サブブロック302Aでは、AC量子化変換残差レベルが、A1、A2及びA3である。エンコーダ回路206は、A1、A2及びA3から最大値を推定するように構成することができ、例えばA1を最大値とすることができる。
306において、エンコーダ回路206は、最大AC量子化変換残差レベルが「0」よりも大きいかどうかを判定するように構成することができる。サブブロック302Aの最大AC量子化変換残差レベルが「0」よりも大きい場合には、最大AC量子化変換残差レベルが「1」に等しいか、それとも「1」よりも大きいかに基づいて、サブブロック302Aを「中間」サブブロックカテゴリ、又は「複雑」サブブロックカテゴリのいずれかに分類することができる。「中間」サブブロックカテゴリは、第2のサブブロックカテゴリに対応することができ、「複雑」サブブロックカテゴリは、第3のサブブロックカテゴリに対応することができる。最大AC量子化変換残差レベルが「0」よりも大きい場合、制御は308に進む。それ以外の場合、制御は310に進む。
308において、エンコーダ回路206は、最大AC量子化変換残差レベルが「1」に等しいかどうかを判定するように構成することができる。この段階で、エンコーダ回路206は、サブブロック302Aを「中間」サブブロックカテゴリ、又は「複雑」サブブロックカテゴリのいずれかに分類するように構成することができる。最大AC量子化変換残差レベルが「1」に等しい場合、制御は312に進む。それ以外の場合、制御は314に進む。
310において、エンコーダ回路206は、最大AC量子化変換残差レベルが「0」に等しいことに基づいて、サブブロック302Aのサブブロックカテゴリを「簡単」サブブロックカテゴリとして決定するように構成することができる。エンコーダ回路206は、「簡単」サブブロックカテゴリに対応する「0」としてのシグナリングビットを割り当てるようにさらに構成することができる。制御は、サブブロック302Aの分類後、サブブロック302Bなどの次のサブブロックに進むことができる。
312において、エンコーダ回路206は、最大AC量子化変換残差レベルが「1」に等しいことに基づいて、サブブロック302Aのサブブロックカテゴリを「中間」サブブロックカテゴリとして決定するように構成することができる。エンコーダ回路206は、「中間」サブブロックカテゴリに対応する「10」としてのシグナリングビットを割り当てるようにさらに構成することができる。制御は、サブブロック302Aの分類後、サブブロック302Bなどの次のサブブロックに進むことができる。
314において、エンコーダ回路206は、最大AC量子化変換残差レベルが「1」よりも大きいことに基づいて、サブブロック302Aのサブブロックカテゴリを「複雑」サブブロックカテゴリとして決定するように構成することができる。エンコーダ回路206は、「複雑」サブブロックカテゴリに対応する「11」としてのシグナリングビットを割り当てるようにさらに構成することができる。制御は、サブブロック302Aの分類後、サブブロック302Bなどの次のサブブロックに進むことができる。同様に、サブブロック302B、302C及び302Dなどの全てのサブブロックを処理することができる。いくつかの実施形態では、サブブロック302A〜302Dの処理を同時に実行することができる。また、サブブロックカテゴリは、「簡単」、「中間」及び「複雑」サブブロックカテゴリに限定されるものではない。いくつかの実施形態では、例えば「簡単」、「中間1」、「中間2」及び「複雑」などの2又は3以上のサブブロックカテゴリが存在することができる。一例として、高画質の優先度が高い医療用途における画像/ビデオ圧縮では、ストレージ容量の優先度が高い用途における画像/ビデオ圧縮よりもサブブロックカテゴリの数を多くすることができる。換言すれば、複数のサブカテゴリを定めるためのルールは、用途又は最終目的に従って規定することができる。
図4に、本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための、図2のEBC回路による1D画像ブロックへの例示的な逐次符号化スキームの適用を示す。図4の説明は、図1、図2及び図3の要素に関連して行う。図4には、16×1画像ブロックに逐次エントロピー符号化スキームを適用した後に精緻化ビットを割り当てる間のエンコーダ回路206の異なる段階における出力を示す図400を示す。
最初に、エンコーダ回路206は、4つの画像サブブロックに分割できる16×1画像ブロックを取り出すように構成することができる。例えば、1つの例では、第1のサブブロックIB1が、4つのピクセル値P0、P1、P2及びP3を含むことができる。同様に、IB2=[P4、P5、P6、P7]であり、IB3=[P8、P9、P10、P11]であり、IB4=[P12、P13、P14、P15]である。エンコーダ回路206は、IB1、IB2、IB3及びIB4の各々に1D順方向変換を適用した後に、量子化スキーム及び残差予測スキームを適用して、量子化変換残差レベルの4つのサブブロックを取得するように構成することができる。例えば、1つの例では、第1のサブブロックIB1から取得されたサブブロックRB1が、DC量子化変換残差レベルDC0と、AC量子化変換残差レベルA1、A2及びA3とを含むことができる。同様に、RB2=[DC1、A4、A5、A6]であり、RB3=[DC2、A7、A8、A9]であり、RB4=[DC3、A10、A11、A12]である。その後、エンコーダ回路206は、量子化変換残差レベルの各サブブロック「RB1、RB2、RB3及びRB4」を複数のサブブロックカテゴリ402のうちの1つのサブブロックカテゴリに分類するように構成することができ、これらのサブブロックカテゴリは、RB1、RB2、RB3及びRB4についてそれぞれ「簡単」、「中間」、「複雑」及び「簡単」などとして示すことができる。量子化変換残差レベルの第1及び第4のサブブロック「RB1」及び「RB4」は、最大量子化変換残差レベル値として「0」を有することができ、従って「RB1」及び「RB4」のサブブロックカテゴリは「簡単」として決定することができる。量子化変換残差レベルの第2のサブブロック「RB2」は、最大量子化変換残差レベル値として「1」を有することができ、従ってRB2のサブブロックカテゴリは「中間」として決定することができる。量子化変換残差レベルの第3のサブブロック「RB3」は、「1」よりも大きな最大量子化変換残差レベル値を有することができ、従ってRB3のサブブロックカテゴリは「複雑」として決定することができる。
エンコーダ回路206は、RB1、RB2、RB3及びRB4の各々にエントロピー符号化スキームを適用して4つの符号化サブブロックを取得するように構成することができる。例えば、1つの例では、サブブロックRB1から取得された符号化サブブロックEB1が、符号化量子化変換残差レベルC0、C1、C2及びC3を含むことができる。同様に、EB2=[C4、C5、C6、C7]であり、EB3=[C8、C9、C10、C11]であり、EB4=[C12、C13、C14、C15]である。C0、C1、C2、...、C15の各々は、DC0、A1、A2、A3、DC1、A4、...、DC3、A10、A11、A12に対応するビットプレーン内の一連のビット、すなわちBP1、BP2、BP3、BP4及びBP5として表すことができる。ビットプレーンの数は、符号化演算前に指定されたビット深度(この場合は「5」)に等しくすることができる。図示のように、一例として、ビットプレーンBP1、BP2、BP3及びBP4は符号化ビット404を含むことができ、ビットプレーンBP5は、精緻化ビットを割り当てることができる空き位置とすることができる非符号化ビット406を含むことができる。
エンコーダ回路206は、指定されたビット深度及び符号化ビット404の数に基づいて、割り当てるべき精緻化ビットの数を決定するように構成することができる。例えば、「16」個の入力ピクセル値に指定されたビット深度は「5」であり、総ビット数は「16×5」、すなわち80ビットに等しくすることができる。符号化ビットを含むのはビットプレーンBP1、BP2、BP3及びBP4のみ(16×4=64ビット)であるため、精緻化ビットの数は「80−64」、すなわち16ビットとして決定することができる。別のシナリオでは、ビットプレーンBP5も符号化ビット(例えば、「6」ビット)を含むことができ、この時の精緻化ビットの数は「10」ビットに減少することができる。
図示のように、一例として、第5のビットプレーンBP5は、全ての非符号化ビット404を含む。エンコーダ回路206は、第5のビットプレーンBP5において精緻化ビットを、すなわちR1、R2、R3、...、R16を割り当てるように構成することができる。しかしながら、第1の精緻化段階408では、精緻化ビットR1、R2、R3、...、R11をサブブロックの数(この場合は「4」)及びサブブロックカテゴリに基づいて逐次割り当てることができる。第1の精緻化段階408後に依然として精緻化ビットを利用できる場合には、エンコーダ回路206を、第2の精緻化段階410においてビットプレーン内の残りの位置に残りの精緻化ビットを割り当てるように構成することができる。ここでは、精緻化ビットの数が「16」として決定され、第1の精緻化段階408後には「11」個の精緻化ビットが割り当てられている。従って、第2の精緻化段階410では、残りの「5つ」の精緻化ビットR12、R13、...、R16を割り当てることができる。
第1の精緻化段階408では、エンコーダ回路206を、符号化サブブロックEB1、EB2、EB3及びEB4の各々のビットプレーンBP5にサブブロックカテゴリに基づいて精緻化ビットを逐次割り当てるように構成することができる。符号化サブブロックEB1は「簡単」サブブロックカテゴリに属するので、DC0及びA1に対応する位置において「2つ」の精緻化ビット、すなわちR1及びR2を割り当てることができる。符号化サブブロックEB2は「中間」サブブロックカテゴリに属するので、DC1、A4及びA5に対応する位置において「3つ」の精緻化ビット、すなわちR3、R4及びR5を割り当てることができる。符号化サブブロックEB3は「複雑」サブブロックカテゴリに属するので、DC2、A7、A8及びA9に対応する位置において(複雑なサブブロック内の各利用可能な位置において)「4つ」の精緻化ビット、すなわちR6、R7、R8及びR9を割り当てることができる。符号化サブブロックEB4は「簡単」サブブロックカテゴリに属するので、DC3及びA10に対応する位置において「2つ」の精緻化ビット、すなわちR10及びR11を割り当てることができる。最初の精緻化段階で精緻化ビットを割り当てることができるビットプレーンBP5の位置は、高優先度の位置に対応することができる。高優先度は、これらの位置における精緻化ビットの割り当てが他の位置における割り当てに比べて画質に大きな影響を与える旨を指定することができる。
第2の精緻化段階410では、エンコーダ回路206を、ビットプレーンBP5の残りのAC量子化変換残差レベルに対応する位置において残りの精緻化ビットを割り当てるようにさらに構成することができる。符号化サブブロックEB1、EB2及びEB4は、A2、A3、A6、A11及びA12に対応する位置を含むので、これらの位置において残りの精緻化ビット(R12、R13、...、R16)を逐次割り当てることができる。A2、A3、A6、A11及びA12に対応する位置は、低優先度の位置に対応することができる。低優先度は、これらの位置における精緻化ビットの割り当てが高優先度の位置における割り当てに比べて画質に与える影響が小さい旨を指定することができる。
図5A及び図5Bに、本開示の実施形態による、サブブロックに基づく精緻化ビット割り当てのための例示的な方法を示すフローチャートを集合的に示す。図5A及び図5Bの説明は、図1、図2、図3及び図4の要素に関連して行う。図5A及び図5Bには、EBC回路108において実行されるフローチャート500を示す。この方法は、502から開始して504に進む。
504において、1D画像ブロックを複数の1D画像サブブロックに分割することができる。エンコーダ回路206は、例えば「16×1」画像ブロックなどの1D画像ブロックを複数の1D画像サブブロックに分割するように構成することができる。
506において、複数の1D画像サブブロックに対して1D変換の後に量子化、残差予測を逐次適用して、量子化変換残差レベルの複数の1Dサブブロックを生成することができる。エンコーダ回路206は、複数の1D画像サブブロックに対して1D変換の後に量子化、残差予測を逐次適用して、量子化変換残差レベルの複数の1Dサブブロックを生成するように構成することができる。
508において、1D画像ブロックの量子化変換残差レベルの複数の1Dサブブロックを記憶することができる。オンチップメモリ204又は外部メモリ110などのメモリは、1D画像ブロックの量子化変換残差レベルの複数の1Dサブブロックを記憶するように構成することができる。
510において、複数の1Dサブブロックの各1Dサブブロックの複数のAC量子化変換残差レベルからのAC量子化変換残差レベルの最大値を第1の基準値及び第2の基準値と比較することができる。エンコーダ回路206は、複数の1Dサブブロックの各1Dサブブロックについて複数のAC量子化変換残差レベルからのAC量子化変換残差レベルの最大値を第1の基準値と比較するように構成することができる。
512において、この比較に基づいて、複数の1Dサブブロックの各1Dサブブロックについて複数のサブカテゴリのうちの1つのサブブロックカテゴリを決定することができる。エンコーダ回路206は、この比較に基づいて、複数の1Dサブブロックの各1Dサブブロックについて複数のサブカテゴリのうちの1つのサブブロックカテゴリを決定するように構成することができる。
514において、複数の1Dサブブロックの各1Dサブブロックの対応するサブブロックカテゴリに基づいて、複数の1Dサブブロックの各1Dサブブロックに一連のシグナリングビットを割り当てることができる。エンコーダ回路206は、複数の1Dサブブロックの各1Dサブブロックの対応するサブブロックカテゴリに基づいて、複数の1Dサブブロックの各1Dサブブロックに一連のシグナリングビットを割り当てるように構成することができる。
516において、エントロピー符号化スキームを適用することにより、複数の1Dサブブロックの各1DサブブロックのDC及びAC量子化変換残差レベルを符号化して複数の符号化サブブロックを生成することができる。複数の符号化サブブロックは、複数のビットプレーンの複数の符号化ビットを含むことができる。エンコーダ回路206は、エントロピー符号化スキームを適用することにより、複数の1Dサブブロックの各1Dサブブロックを符号化して複数の符号化サブブロックを生成するように構成することができる。
518において、指定されたビット深度と、複数のビットプレーン内の複数のビットプレーンに対応する符号化ビット数とに基づいて、精緻化ビットの数を決定することができる。エンコーダ回路206は、指定されたビット深度と、複数のビットプレーン内の符号化ビット数とに基づいて、精緻化ビットの数を決定するように構成することができる。
520において、複数の1Dサブブロックの各1Dサブブロックに対応する割り当てられた一連のシグナリングビットに基づいて、複数の符号化サブブロックの非符号化ビット位置において精緻化ビットを割り当てることができる。エンコーダ回路206は、複数の1Dサブブロックの各1Dサブブロックに対応する割り当てられた一連のシグナリングビットに基づいて、複数のビットプレーンの非符号化ビット位置において精緻化ビットを割り当てるように構成することができる。
522において、決定された数の精緻化ビットのうちのいずれかの精緻化ビットを依然として割り当てに利用できるかどうかを判定することができる。エンコーダ回路206は、決定された数の精緻化ビットのうちのいずれかの精緻化ビットを依然として割り当てに利用できるかどうかを判定するように構成することができる。決定された数の精緻化ビットのうちのいずれかの精緻化ビットを依然として割り当てに利用できる場合、制御は524に進み、利用できなければ終了に進む。
524において、依然として割り当てに利用できる精緻化ビットを複数のビットプレーンの残りの非符号化ビット位置において逐次割り当てることができる。エンコーダ回路206は、依然として割り当てに利用できる精緻化ビットを複数のビットプレーンの残りの非符号化ビット位置において逐次割り当てるように構成することができる。制御は、終了に進むことができる。
本開示のいくつかの実施形態は、埋め込みコーデック(EBC)回路(例えば、EBC回路108(図1))において見出すことができる。本開示の様々な実施形態は、メモリ(例えば、オンチップメモリ204(図2))と、メモリに通信可能に結合されたエンコーダ回路(例えば、エンコーダ回路206(図2))とを含むことができるEBC回路を提供することができる。メモリは、一次元(1D)画像ブロックの量子化変換残差レベルの複数の1Dサブブロック(例えば、サブブロック302A、302B、302C及び302D(図3))を記憶するように構成することができる。エンコーダ回路は、複数の1Dサブブロックの各1Dサブブロックについて、一連のサブブロックカテゴリ(例えば、サブブロックカテゴリ402(図4))から1つのサブブロックカテゴリを決定するように構成することができる。サブブロックカテゴリは、複数の1Dサブブロックの各1Dサブブロックにおける複数のAC量子化変換残差レベルからのAC量子化変換残差レベルの最大値に基づいて決定することができる。一連のサブブロックカテゴリの各サブブロックカテゴリは、複数の1Dサブブロックのうちの対応する1Dサブブロックの異なる平坦度及び複雑度を示すことができる。エンコーダ回路は、エントロピー符号化スキームの適用によって複数の1Dサブブロックを符号化して複数の符号化1Dサブブロック(例えば、符号化サブブロックEB1、EB2、EB3及びEB4(図4))を生成するようにさらに構成することができる。エンコーダ回路は、複数の符号化1Dサブブロックのうちの1つの符号化1Dサブブロックにおける一連の符号化量子化変換残差レベルに対応する一連のビットプレーンのビット位置において複数の精緻化ビット(例えば、精緻化ビットR1、R2、R3、...、R16(図4))を割り当てるようにさらに構成することができる。複数の精緻化ビットは、複数の1Dサブブロックのうちの符号化1Dサブブロックに対応する1Dサブブロックのサブブロックカテゴリに基づいて割り当てることができる。
ある実施形態によれば、エンコーダ回路は、逐次符号化スキームによって1D画像ブロックを符号化して複数の符号化1Dサブブロックを生成するようにさらに構成することができる。逐次符号化スキームは、1D変換の後に、量子化、残差予測及びエントロピー符号化スキームを逐次適用することを含むことができる。
ある実施形態によれば、エンコーダ回路は、1D画像ブロックに1D変換を適用して複数の1Dサブブロックを生成するようにさらに構成することができる。複数の1Dサブブロックの各1Dサブブロックは、DC量子化変換残差レベルと複数のAC量子化変換残差レベルとを含むことができる。1D画像ブロックに適用される1D変換のタイプは、複数の1Dサブブロックの各1Dサブブロックのサイズに基づくことができる。複数の1Dサブブロックの各1Dサブブロックのサイズは、1D画像ブロックの符号化前に指定することができる。複数の符号化1Dサブブロックの各符号化1Dサブブロックは、複数の符号化量子化変換残差レベル(例えば、符号化量子化変換残差レベルC0、C1、C2、...、C15(図4))を含むことができる。複数の符号化量子化変換残差レベルの各符号化量子化変換残差レベルは、規定のビット深度に対応する一連のビット(例えば、符号化ビット404(図4))を含むことができる。複数の精緻化ビットを割り当てるための精緻化ビットの数は、規定のビット深度及び一連のビットに基づくことができる。複数の符号化量子化変換残差レベルは、DC量子化変換残差レベルに対応するDC量子化変換残差符号化レベルと、複数のAC量子化変換残差レベルに対応する複数のAC量子化変換残差符号化レベルとを含むことができる。一連の符号化量子化変換残差レベルは、DC量子化変換残差符号化レベルと、複数のAC量子化変換残差符号化レベルのうちの少なくとも1つとを含むことができる。
ある実施形態によれば、エンコーダ回路は、複数の1Dサブブロックの各1Dサブブロックのサブブロックカテゴリに基づいて、複数の1Dサブブロックの各1Dサブブロックに一連のシグナリングビットを割り当てるようにさらに構成することができる。エンコーダ回路は、符号化1Dサブブロックに対応する第1の1Dサブブロックに割り当てられた一連のシグナリングビットに基づいて、符号化1Dサブブロックの一連の符号化量子化変換残差レベルを選択するようにさらに構成することができる。
ある実施形態によれば、一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの数は、第1の符号化1Dサブブロックに対応する第1の1Dサブブロックの決定されたサブブロックカテゴリに依存することができる。
ある実施形態によれば、一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの数は、一連のサブブロックカテゴリのサブブロックカテゴリ毎に異なることができる。
ある実施形態によれば、エンコーダ回路は、複数の1Dサブブロックの各1DサブブロックのAC量子化変換残差レベルの最大値を第1の基準値及び第2の基準値と比較するようにさらに構成することができる。この最大値は、0以上の絶対最大値とすることができる。いくつかの実施形態では、第1の基準値が0であり、第2の基準値が1である。一連のサブブロックカテゴリは、第1のサブブロックカテゴリ、第2のサブブロックカテゴリ及び第3のサブブロックカテゴリを含むことができる。1つの例では、複数の1Dサブブロックのうちの1つのサブブロックの複数のAC量子化変換残差レベルの最大値が第1の基準値に等しい場合、この1Dサブブロックのサブブロックカテゴリを第1のサブブロックカテゴリとして決定することができる。第2の例では、複数の1Dサブブロックのうちの1つのサブブロックの複数のAC量子化変換残差レベルの最大値が第2の基準値に等しい場合、この1Dサブブロックのサブブロックカテゴリを第2のサブブロックカテゴリとして決定することができる。第3の例では、複数の1Dサブブロックのうちの1つのサブブロックの複数のAC量子化変換残差レベルの最大値が第2の基準値よりも大きい場合、この1Dサブブロックのサブブロックカテゴリを第3のサブブロックカテゴリとして決定することができる。いくつかの実施形態では、第2のサブブロックカテゴリの一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの第1の数を、第1のサブブロックカテゴリの一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの第2の数以上とすることができる。第3のサブブロックカテゴリの一連の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの第3の数は、第1の数よりも多く、第2の数よりも少なくすることができる。
ある実施形態によれば、エンコーダ回路は、第1の1Dサブブロックのサブブロックカテゴリに基づいて、第1の符号化1Dサブブロックの精緻化順を決定するように構成することができる。精緻化順は、一連のビットプレーン内のビット位置において複数の精緻化ビットを割り当てる順番を定めることができる。エンコーダ回路は、一連の符号化量子化変換残差レベルに対応する一連のビットプレーンの第1のビット位置において複数の精緻化ビットのうちの第1の精緻化ビットを割り当てた後に、一連のビットプレーンの後続の位置において複数の精緻化ビットのうちの後続の精緻化ビットを割り当てるようにさらに構成することができる。複数の精緻化ビットの割り当ては、決定された精緻化順に基づくことができる。第1のビット位置は、一連の符号化量子化変換残差レベルにおける第1の符号化量子化変換残差レベルに対応することができる。
本開示は、ハードウェアで実現することも、又はハードウェアとソフトウェアの組み合わせで実現することもできる。本開示は、少なくとも1つのコンピュータシステム内で集中方式で実現することも、又は異なる要素を複数の相互接続されたコンピュータシステムにわたって分散できる分散方式で実現することもできる。本明細書で説明した方法を実行するように適合されたコンピュータシステム又はその他の装置が適することができる。ハードウェアとソフトウェアの組み合わせは、ロードされて実行された時に本明細書で説明した方法を実行するようにコンピュータシステムを制御することができるコンピュータプログラムを含む汎用コンピュータシステムとすることができる。本開示は、他の機能を実行する集積回路の一部分を含むハードウェアで具現化することができる。
本開示は、本明細書で説明した方法の実装を可能にする全ての特徴を含み、コンピュータシステムにロードされた時にこれらの方法を実行できるコンピュータプログラム製品に組み込むこともできる。本文脈におけるコンピュータプログラムとは、情報処理能力を有するシステムに、特定の機能を直接的に、或いはa)別の言語、コード又は表記法への変換、b)異なる内容形態での複製、のいずれか又は両方を行った後に実行させるように意図された命令セットの、あらゆる言語、コード又は表記法におけるあらゆる表現を意味する。
いくつかの実施形態を参照しながら本開示を説明したが、当業者であれば、本開示の範囲から逸脱することなく様々な変更を行うことができ、同等物を代用することもできると理解するであろう。また、本開示の範囲から逸脱することなく、特定の状況又は内容を本開示の教示に適合させるように多くの修正を行うこともできる。従って、本開示は、開示した特定の実施形態に限定されるものではなく、添付の特許請求の範囲に該当する全ての実施形態を含むように意図されている。

Claims (21)

  1. 埋め込みコーデック(EBC)回路であって、
    1D画像ブロックの量子化変換残差レベルの複数の一次元(1D)サブブロックを記憶するように構成されたメモリと、
    エンコーダ回路と、
    を備え、前記エンコーダ回路は、
    前記複数の1Dサブブロックの各1Dサブブロックにおける複数のAC量子化変換残差レベルからのAC量子化変換残差レベルの最大値に基づいて、前記複数の1Dサブブロックの各1Dサブブロックについて、各サブブロックカテゴリが前記複数の1Dサブブロックのうちの対応する1Dサブブロックの異なる平坦度及び複雑度を示す一組のサブブロックカテゴリから1つのサブブロックカテゴリを決定し、
    エントロピー符号化スキームの適用によって前記複数の1Dサブブロックを符号化して複数の符号化1Dサブブロックを生成し、
    前記複数の1Dサブブロックのうちの第1の1Dサブブロックの前記サブブロックカテゴリに基づいて、前記複数の符号化1Dサブブロックのうちの前記第1の符号化1Dサブブロックにおける一組の符号化量子化変換残差レベルに対応する一組のビットプレーンのビット位置に、複数の精緻化ビットを割り当て、ここで、前記第1の1Dサブブロックは第1の符号化1Dサブブロックに対応するものであり、
    ように構成される、ことを特徴とするEBC回路。
  2. 前記エンコーダ回路は、逐次符号化スキームによって前記1D画像ブロックを符号化して前記複数の符号化1Dサブブロックを生成するようにさらに構成され、
    前記逐次符号化スキームは、1D変換の後に量子化、残差予測及びエントロピー符号化スキームを逐次適用することを含む、
    請求項1に記載のEBC回路。
  3. 前記エンコーダ回路は、前記1D画像ブロックに1D変換を適用して前記複数の1Dサブブロックを生成するようにさらに構成され、前記複数の1Dサブブロックの各1Dサブブロックは、DC量子化変換残差レベルと、前記複数のAC量子化変換残差レベルとを含む、
    請求項1に記載のEBC回路。
  4. 前記1D変換のタイプは、前記複数の1Dサブブロックの各1Dサブブロックのサイズに基づき、
    前記複数の1Dサブブロックの各1Dサブブロックの前記サイズは、前記1D画像ブロックの符号化前に指定される、
    請求項3に記載のEBC回路。
  5. 前記複数の符号化1Dサブブロックの各符号化1Dサブブロックは、複数の符号化量子化変換残差レベルを含む、
    請求項3に記載のEBC回路。
  6. 前記複数の符号化量子化変換残差レベルの各符号化量子化変換残差レベルは、規定のビット深度に対応する一組のビットを含み、前記複数の精緻化ビットを割り当てるための精緻化ビットの数は、前記規定のビット深度及び前記一組のビットに基づく、
    請求項5に記載のEBC回路。
  7. 前記複数の符号化量子化変換残差レベルは、前記DC量子化変換残差レベルに対応するDC量子化変換残差符号化レベルと、前記複数のAC量子化変換残差レベルに対応する複数のAC量子化変換残差符号化レベルとを含み、
    前記一組の符号化量子化変換残差レベルは、前記DC量子化変換残差符号化レベルと、前記複数のAC量子化変換残差符号化レベルのうちの少なくとも1つとを含む、
    請求項5に記載のEBC回路。
  8. 前記エンコーダ回路は、前記複数の1Dサブブロックの各1Dサブブロックの前記サブブロックカテゴリに基づいて前記複数の1Dサブブロックの各1Dサブブロックに一組のシグナリングビットを割り当てるようにさらに構成される、
    請求項1に記載のEBC回路。
  9. 前記エンコーダ回路は、前記第1の符号化1Dサブブロックに対応する前記第1の1Dサブブロックに割り当てられた前記一組のシグナリングビットに基づいて、前記第1の符号化1Dサブブロックにおける前記一組の符号化量子化変換残差レベルを選択するようにさらに構成される、
    請求項8に記載のEBC回路。
  10. 前記一組の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの数は、前記第1の符号化1Dサブブロックに対応する前記第1の1Dサブブロックの前記決定されたサブブロックカテゴリに依存する、
    請求項1に記載のEBC回路。
  11. 前記一組の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの数は、前記一組のサブブロックカテゴリのサブブロックカテゴリ毎に異なる、
    請求項1に記載のEBC回路。
  12. 前記エンコーダ回路は、前記複数の1Dサブブロックの各1Dサブブロックの前記AC量子化変換残差レベルの前記最大値を第1の基準値及び第2の基準値と比較するようにさらに構成され、
    前記AC量子化変換残差レベルの前記最大値は、0以上の絶対最大値である、
    請求項1に記載のEBC回路。
  13. 前記第1の基準値は0であり、前記第2の基準値は1である、
    請求項12に記載のEBC回路。
  14. 前記一組のサブブロックカテゴリは、第1のサブブロックカテゴリ、第2のサブブロックカテゴリ及び第3のサブブロックカテゴリを含む、
    請求項12に記載のEBC回路。
  15. 前記エンコーダ回路は、前記比較に基づいて、前記第1の1Dサブブロックの前記サブブロックカテゴリを前記第1のサブブロックカテゴリとして決定するようにさらに構成され、前記第1の1Dサブブロックにおける前記AC量子化変換残差レベルの前記最大値は、前記第1の基準値に等しい、
    請求項14に記載のEBC回路。
  16. 前記エンコーダ回路は、前記比較に基づいて、前記第1の1Dサブブロックの前記サブブロックカテゴリを前記第2のサブブロックカテゴリとして決定するようにさらに構成され、前記第1の1Dサブブロックにおける前記AC量子化変換残差レベルの前記最大値は、前記第2の基準値に等しい、
    請求項14に記載のEBC回路。
  17. 前記エンコーダ回路は、前記比較に基づいて、前記第1の1Dサブブロックの前記サブブロックカテゴリを前記第3のサブブロックカテゴリとして決定するようにさらに構成され、前記第1の1Dサブブロックにおける前記AC量子化変換残差レベルの前記最大値は、前記第2の基準値よりも大きい、
    請求項14に記載のEBC回路。
  18. 前記第2のサブブロックカテゴリの前記一組の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの第1の数は、前記第1のサブブロックカテゴリの前記一組の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの第2の数以上であり、
    前記第3のサブブロックカテゴリの前記一組の符号化量子化変換残差レベルにおける符号化量子化変換残差レベルの第3の数は、前記第1の数及び前記第2の数よりも大きい、
    請求項14に記載のEBC回路。
  19. 前記エンコーダ回路は、前記第1の1Dサブブロックの前記サブブロックカテゴリに基づいて前記第1の符号化1Dサブブロックにおける精緻化順を決定するようにさらに構成され、
    前記精緻化順は、前記一連のビットプレーン内の前記ビット位置における前記複数の精緻化ビットの割り当て順を定める、
    請求項1に記載のEBC回路。
  20. 前記エンコーダ回路は、前記一連の符号化量子化変換残差レベルに対応する前記一連のビットプレーン内の第1のビット位置において前記複数の精緻化ビットのうちの第1の精緻化ビットを割り当てた後に、前記一連のビットプレーン内の後続の位置において前記複数の精緻化ビットのうちの後続の精緻化ビットを割り当てるようにさらに構成され、
    前記割り当ては、前記決定された精緻化順に基づき、前記第1のビット位置は、前記一連の符号化量子化変換残差レベルにおける第1の符号化量子化変換残差レベルに対応する、
    請求項19に記載のEBC回路。
  21. メモリとエンコーダ回路とを備えた埋め込みコーデック(EBC)回路において、
    前記メモリが、1D入力画像ブロックの量子化変換残差レベルの複数の一次元(1D)サブブロックを記憶するステップと、
    前記エンコーダ回路が、前記複数の1Dサブブロックの各1Dサブブロックにおける複数のAC量子化変換残差レベルからのAC量子化変換残差レベルの最大値に基づいて、前記複数の1Dサブブロックの各1Dサブブロックについて、各サブブロックカテゴリが前記複数の1Dサブブロックのうちの対応する1Dサブブロックの異なる平坦度及び複雑度を示す一組のサブブロックカテゴリから1つのサブブロックカテゴリを決定するステップと、
    前記エンコーダ回路が、エントロピー符号化スキームの適用によって前記複数の1Dサブブロックを符号化して複数の符号化1Dサブブロックを生成するステップと、
    前記エンコーダ回路が、前記複数の1Dサブブロックのうちの第1の1Dサブブロックの前記サブブロックカテゴリに基づいて、前記複数の符号化1Dサブブロックのうちの前記第1の符号化1Dサブブロックにおける一組の符号化量子化変換残差レベルに対応する一組のビットプレーンのビット位置に、複数の精緻化ビットを割り当てるステップと、ここで、前記第1の1Dサブブロックは前記第1の符号化1Dサブブロックに対応するものであり、
    を含むことを特徴とする方法。
JP2019187650A 2019-03-01 2019-10-11 サブブロックに基づく精緻化ビット割り当てのための埋め込みコーデック回路 Active JP6860053B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/289,873 2019-03-01
US16/289,873 US10939107B2 (en) 2019-03-01 2019-03-01 Embedded codec circuitry for sub-block based allocation of refinement bits

Publications (2)

Publication Number Publication Date
JP2020141394A JP2020141394A (ja) 2020-09-03
JP6860053B2 true JP6860053B2 (ja) 2021-04-14

Family

ID=72236939

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019187650A Active JP6860053B2 (ja) 2019-03-01 2019-10-11 サブブロックに基づく精緻化ビット割り当てのための埋め込みコーデック回路

Country Status (4)

Country Link
US (1) US10939107B2 (ja)
JP (1) JP6860053B2 (ja)
KR (1) KR102267322B1 (ja)
CN (1) CN111641833B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020182207A1 (en) 2019-03-13 2020-09-17 Beijing Bytedance Network Technology Co., Ltd. Partitions on sub-block transform mode

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060153294A1 (en) * 2005-01-12 2006-07-13 Nokia Corporation Inter-layer coefficient coding for scalable video coding
US8422546B2 (en) 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
KR100728031B1 (ko) 2006-01-23 2007-06-14 삼성전자주식회사 가변 블록 크기 움직임 예측을 위한 부호화 모드 결정 방법및 장치
CN100551060C (zh) * 2006-05-30 2009-10-14 华为技术有限公司 一种视频编解码方法
WO2010052833A1 (ja) 2008-11-07 2010-05-14 三菱電機株式会社 画像符号化装置及び画像復号装置
US9391635B2 (en) * 2009-05-15 2016-07-12 Texas Instruments Incorporated Block scanner and run-level encoder from AC to DC values
US8457425B2 (en) 2009-06-09 2013-06-04 Sony Corporation Embedded graphics coding for images with sparse histograms
US8817884B2 (en) 2009-11-20 2014-08-26 Texas Instruments Incorporated Techniques for perceptual encoding of video frames
EP3101897B1 (en) 2010-04-09 2021-10-20 Xylene Holding S.A. Moving image encoding device and method, moving image decoding device and method, bitstream
IL311563A (en) * 2011-06-16 2024-05-01 Ge Video Compression Llc Entropy coding of motion vector differences
JPWO2013065702A1 (ja) 2011-11-04 2015-04-02 シャープ株式会社 算術復号装置、画像復号装置、算術符号化装置、画像符号化装置、および、算術復号方法
CN108900839B (zh) 2011-12-28 2022-05-31 夏普株式会社 图像解码装置及方法、图像编码装置及方法
ES2746961T3 (es) * 2012-04-13 2020-03-09 Canon Kk Procedimiento, aparato y sistema para codificar y descodificar un subconjunto de unidades de transformación de datos de vídeo codificados
JP2014082639A (ja) 2012-10-16 2014-05-08 Canon Inc 画像符号化装置およびその方法
US9161040B2 (en) 2014-01-10 2015-10-13 Sony Corporation Adaptive block partitioning with shared bit-budget
US10085027B2 (en) 2015-03-06 2018-09-25 Qualcomm Incorporated Adaptive mode checking order for video encoding
US10097829B2 (en) * 2015-10-23 2018-10-09 Sony Corporation System and method for compression of digital content
US10791340B2 (en) * 2016-11-15 2020-09-29 Sony Corporation Method and system to refine coding of P-phase data
US10728557B2 (en) * 2018-10-24 2020-07-28 Sony Corporation Embedded codec circuitry for sub-block based entropy coding of quantized-transformed residual levels

Also Published As

Publication number Publication date
CN111641833B (zh) 2023-08-08
US20200280720A1 (en) 2020-09-03
US10939107B2 (en) 2021-03-02
CN111641833A (zh) 2020-09-08
KR20200105739A (ko) 2020-09-09
JP2020141394A (ja) 2020-09-03
KR102267322B1 (ko) 2021-06-22

Similar Documents

Publication Publication Date Title
US10645386B1 (en) Embedded codec circuitry for multiple reconstruction points based quantization
JP2022523925A (ja) 映像コンテンツを処理するための方法及びシステム
US6301392B1 (en) Efficient methodology to select the quantization threshold parameters in a DWT-based image compression scheme in order to score a predefined minimum number of images into a fixed size secondary storage
JP4895400B2 (ja) 画像フレームの非フレームエッジブロックの表現における改良された圧縮
US10728557B2 (en) Embedded codec circuitry for sub-block based entropy coding of quantized-transformed residual levels
JP7020466B2 (ja) 残留レベルデータの位置依存エントロピ符号化のための組込みコーディク(ebc)回路
JP6860053B2 (ja) サブブロックに基づく精緻化ビット割り当てのための埋め込みコーデック回路
CN111491163B (zh) 基于对图像块的像素域预处理操作的图像块编码
JP2020127188A5 (ja)
US10750182B2 (en) Embedded codec circuitry for visual quality based allocation of refinement bits
US10798419B2 (en) Embedded codec circuitry for sub-block based encoding of quantized prediction residual levels
CN115836525A (zh) 用于从多个交叉分量进行预测的方法和系统
US10931954B2 (en) Image coding modes selection for an embedded codec circuitry
US10652543B2 (en) Embedded codec circuitry and method for frequency-dependent coding of transform coefficients
US10666985B1 (en) Sub-block based entropy coding for image coding
US10778990B2 (en) Embedded codec circuitry for randomized refinement of uncoded-bits
TW202437758A (zh) 為了在位元流中傳輸所進行熵編碼資料之動態佇列

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210309

R151 Written notification of patent or utility model registration

Ref document number: 6860053

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151