JP5537681B2 - 変換ユニット内の複数サインビット秘匿 - Google Patents

変換ユニット内の複数サインビット秘匿 Download PDF

Info

Publication number
JP5537681B2
JP5537681B2 JP2013006987A JP2013006987A JP5537681B2 JP 5537681 B2 JP5537681 B2 JP 5537681B2 JP 2013006987 A JP2013006987 A JP 2013006987A JP 2013006987 A JP2013006987 A JP 2013006987A JP 5537681 B2 JP5537681 B2 JP 5537681B2
Authority
JP
Japan
Prior art keywords
coefficients
coefficient
sign
zero
processor
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
JP2013006987A
Other languages
English (en)
Other versions
JP2013150323A (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.)
BlackBerry Ltd
Original Assignee
BlackBerry Ltd
Research in Motion Ltd
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 BlackBerry Ltd, Research in Motion Ltd filed Critical BlackBerry Ltd
Publication of JP2013150323A publication Critical patent/JP2013150323A/ja
Application granted granted Critical
Publication of JP5537681B2 publication Critical patent/JP5537681B2/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
    • 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
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data

Landscapes

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

Description

(著作権情報)
本文書および付随する題材の開示の一部分は、著作権の主張がなされる題材を含んでいる。著作権所有者は、特許文書または特許開示は特許商標庁のファイルまたは記録に現れているので、該特許文書または特許開示の何人による複製に対しても異議を有してはいないが、その他のすべての著作権については、どのようなものであっても留保している。
(分野)
本願は、概して、データ圧縮に関し、特に、残余ビデオデータをエンコードおよびデコードするときにサインビットを秘匿するための方法およびデバイスに関している。
(背景)
データ圧縮は、多くのコンテキストにおいて行われる。データ圧縮は、情報を効率的に格納、伝送、再生するために、通信およびコンピュータネットワーキングにおいて、非常に一般的に用いられている。データ圧縮は、イメージ、オーディオ、ビデオのエンコーディングにおいて、特定の用途を見出している。ビデオは、各ビデオフレームに対して必要な大量のデータと、エンコーディングおよびデコーディングを行うためにしばしば必要とされるスピードとを理由として、データ圧縮に対する重大な挑戦を提示している。ビデオエンコーディングに対する現在の技術水準は、ITU−T H.264/AVCビデオコーディング規格である。該規格は、メインプロファイル、ベースラインプロファイル等を含む、異なる用途に対する多くの異なるプロファイルを定義している。次世代のビデオエンコーディング規格は、High Efficienfy Video Coding(HEVC)といわれるMPEG−ITUの合同研究を通して現在開発中である。該研究は、最終的には、MPEG−Hと一般的に称されるビデオコーディング規格をもたらし得るものである。
ブロックベースのコーディングプロセスを用いるH.264を含む、イメージおよびビデオをエンコード/デコードするための多くの規格が存在する。これらのプロセスにおいて、イメージまたはフレームは、典型的には4×4または8×8であるブロックに分割され、該ブロックは、係数へとスペクトル的に変換され、量子化され、エントロピーエンコードされる。多くの場合においては、変換されるデータは、実際のピクセルデータではなく、予測オペレーションの後の残余データである。予測は、イントラフレーム、すなわちフレーム/イメージ内のブロックごとであり得、あるいはインターフレーム、すなわちフレームの間であり得る(動き予測とも称される)。MPEG−Hもまた、これらの特徴を有し得ることが期待されている。
残余データをスペクトル的に変換するときに、これらの規格のうちの多くは、離散コサイン変換(DCT)またはそれに対するなんらかの変形の使用を記述する。結果としてのDCT係数は、その後、量子化器を用いて量子化され、量子化された変換ドメイン係数または指標を生成する。
量子化された変換ドメイン係数のブロックまたは行列(「変換ユニット」と称される場合がある)は、その後、特定のコンテキストモデルを用いて、エントロピーエンコードされる。H.264/AVCにおいて、そして、MPEG−Hに対する現在開発中の仕事において、量子化された変換係数は、(a)変換ユニットにおける最終非ゼロ係数の位置を示す最終有意係数位置をエンコードすることと、(b)非ゼロ係数を含む変換ユニットにおける位置(最終有意係数位置以外)を示す有意マップをエンコードすることと、(c)非ゼロ係数の大きさをエンコードすることと、(d)非ゼロ係数のサイン(sign)をエンコードすることとにより、エンコードされる。量子化された変換係数のこのエンコーディングは、しばしば、ビットストリーム内のエンコードされたデータの30〜80%を占める。
変換ユニットは、典型的には、N×Nである。一般的なサイズは、4×4、8×8、16×16、32×32を含むが、その他のサイズも可能であり、いくつかの実施形態においては、例えば8×32または32×8等の非正方サイズを含む。ブロック内の各非ゼロ係数のサインは、各非ゼロ係数に対して1つのサインビットを用いてエンコードされる。
(概要)
本願は、サインビット秘匿を用いて残余ビデオデータをエンコードおよびデコードするための方法およびエンコーダ/デコーダを記載している。実施形態のうちのいくつかにおいては、エンコーダおよびデコーダは、有意係数フラグをエンコードするためにマルチレベル有意マップを用い得る。変換ユニット内の係数の各サブセットに対する少なくとも1つの係数のサインビットは、パリティ技術を用いて秘匿され得る。いくつかの場合においては、係数のサブセットは、例えば、有意マップエンコーディングおよびデコーディングにおいて用いられるマルチレベルマップにおいて用いられる係数グループに対応している。少なくとも1つの場合において、マルチレベルマップは、例えば16×16および32×32TUのような、より大きな変換ユニットと共に用いられる。いくつかの場合においては、マルチレベルマップは、8×8 TU、非正方TU、およびその他のサイズのTUとともに用いられる。サインビット秘匿技術は、非ゼロ係数の閾値数よりも多くを含む係数のサブセットに対して用いられ得る。いくつかの場合においては、サブセットベースのサインビット秘匿技術は、それらがマルチレベル有意マップエンコーディングを用いない場合でさえも、特に、TUの有意係数エンコーディングが、有意係数フラグのサブセットに対してモジュール式に実装される場合でさえも、TUとともに用いられ得る。
一局面において、本願は、変換ユニットに対する係数を再構成することによって、エンコードされたビデオのビットストリームをエンコードするための方法を記載しており、該ビットストリームは、変換ユニットに対するサインビットの2つ以上のセットをエンコードし、各セットは、変換ユニットに対する係数のそれぞれのセットに対応しており、各サインビットは、それぞれのセット内の対応する非ゼロ係数のサインを示す。方法は、サインビットの2つ以上のセットの各々に対して、サインビットの当該セットに対応するそれぞれのセットに対する係数の絶対値を合計して、パリティ値を取得することと、該パリティ値が奇数または偶数であるかどうかに基づいて、それぞれのセット内の係数のうちの1つにサインを割り当てることを含む。
別の局面において、本願は、変換ユニットに対する係数に対するサインビットをエンコードすることにより、ビデオのビットストリームをエンコードするための方法を記載している。方法は、変換ユニットに対する係数の2つ以上のセットの各々に対して、当該セットに対する係数の絶対値を合計して、パリティ値を取得することと、当該セット内の係数のうちの1つのサインが、パリティ値に対応しないことを決定することと、係数のうちの1つの係数のサインに対応するように、パリティ値を変化させるために、1によって当該セット内の係数のレベルを調整することとを含む。
さらなる局面において、本願は、エンコードおよびデコードするためのこのような方法を実装するように構成されたエンコーダおよびデコーダを記載している。
なおもさらなる局面において、本願は、実行されたときに、エンコードおよび/またはデコードするための記載された方法を実行するようにプロセッサを構成するコンピュータ実行可能なプログラム命令を格納している持続性のコンピュータ読み取り可能な媒体を記載している。
本願のその他の局面および特徴は、当業者によって、添付図面と関連して以下の例の記載を参照することから、理解され得る。
本発明は、例えば、以下を提供する。
(項目1)
変換ユニットに対する係数を再構成することによってエンコードされたビデオのビットストリームをデコードする方法であって、該ビットストリームは、該変換ユニットに対するサインビットの2つ以上のセットをエンコードし、サインビットの各セットは、該変換ユニットに対する係数のそれぞれのセットに対応しており、各サインビットは、該それぞれのセット内の対応する非ゼロ係数のサインを示しており、
該方法は、
サインビットの該2つ以上のセットの各々に対して、
サインビットの当該セットに対応する該それぞれのセットに対する係数の絶対値を合計して、パリティ値を取得することと、
該パリティ値が偶数または奇数であるかどうかに基づいて、該それぞれのセット内の該係数のうちの1つにサインを割り当てることと
を含む、方法。
(項目2)
係数の前記それぞれのセットの各々は、それぞれの4×4係数ブロックに対応している、上記項目に記載の方法。
(項目3)
係数の前記それぞれのセットの各々は、それぞれの4×4係数ブロックのグループに対応しており、該グループ内の各々における該係数ブロックは、ブロックレベルスキャン順序における連続ブロックである、上記項目のいずれか一項に記載の方法。
(項目4)
前記方法は、スキャン順序における第1非ゼロ係数と最終非ゼロ係数との間の係数の前記それぞれのセット内の係数の数が、閾値を超えていることを決定することをさらに含む、上記項目のいずれか一項に記載の方法。
(項目5)
割り当てることは、前記パリティ値が奇数の場合には、前記係数のうちの1つを負にし、前記パリティ値が偶数の場合には、前記係数のうちの1つを正のままにすることを含む、上記項目のいずれか一項に記載の方法。
(項目6)
変換ユニットに対する係数を再構成するようにエンコードされたデータのビットストリームをデコードするためのデコーダであって、
該デコーダは、
プロセッサと、
メモリと、
メモリ内に格納され、かつ上記項目のいずれか一項に記載の方法を実行するように該プロセッサを構成するための命令を含むデコーディングアプリケーションと
を含む、デコーダ。
(項目7)
変換ユニットに対する係数に対するサインビットをエンコードすることにより、ビデオのビットストリームをエンコードするための方法であって、
該方法は、
該変換ユニットに対する係数の2つ以上のセットの各々に対して、
当該セットに対する係数の絶対値を合計して、パリティ値を取得することと、
当該セット内の係数のうちの1つのサインが該パリティ値に対応していないことを決定することと、
該係数のうちの1つのサインに対応するように該パリティ値を変化させるために、当該セット内の係数のレベルを1だけ調整することと
を含む、方法。
(項目8)
係数の前記2つ以上のセットの各々に対して、該係数のうちの1つを除いて、当該セット内のすべての非ゼロ係数に対するサインビットをエンコードすることをさらに含む、上記に記載の方法。
(項目9)
係数の前記2つ以上のセットの各々は、それぞれの4×4係数ブロックを含む、上記項目のいずれか一項に記載の方法。
(項目10)
係数の前記セットの各々は、それぞれの4×4係数ブロックのグループに対応しており、該グループの各々における該係数ブロックは、ブロックレベルスキャン順序における連続ブロックである、上記項目のいずれか一項に記載の方法。
(項目11)
前記方法は、スキャン順序における第1非ゼロ係数と最終非ゼロ係数との間の係数のセット内の係数の数が閾値を超えていることを決定することをさらに含む、上記項目のいずれか一項に記載の方法。
(項目12)
レベルを調整することは、レート歪み最適化を用いて調整されるべき前記セット内の係数を選択することを含む、上記項目のいずれか一項に記載の方法。
(項目13)
前記レート歪み最適化は、レートコストを評価するために、予め定義されたコストメトリックを用いる、上記項目のいずれか一項に記載の方法。
(項目14)
変換ユニットに対する係数に対するサインデータをエンコードすることにより、ビデオのビットストリームをエンコードするためのエンコーダであって、
該エンコーダは、
プロセッサと、
メモリと、
メモリ内に格納され、かつ上記項目のいずれか一項に記載の方法を実行するように前記プロセッサを構成するための命令を含むエンコーディングアプリケーションと
を含む、エンコーダ。
(項目15)
プロセッサ実行可能な命令を格納している持続性のプロセッサ読み取り可能な媒体であって、該命令は、実行されたときに、上記項目のいずれか一項における方法を実行するように1つ以上のプロセッサを構成する、プロセッサ読み取り可能な媒体。
(摘要)
ビデオデータをエンコードおよびデコードするための方法が、変換ユニットに対するエンコーディング係数またはデコーディング係数に対して記載される。特に、非ゼロ係数に対するサインビットは、サインビット秘匿を用いてエンコードされる。係数の2つ以上のセットが、変換ユニットに対して定義され、サインビットは、各セットに対して秘匿され得、閾値テストを満たす対象となる。セットは、別様にマルチレベル有意マップエンコーディングおよびデコーディングにおいて用いられる係数グループに対応し得る。
ここで、例として、本願の例示的な実施形態を示す添付図面に対する参照がなされ得る。
図1は、ブロック図形式において、ビデオをエンコードするためのエンコーダを示している。 図2は、ブロック図形式において、ビデオをデコードするためのデコーダを示している。 図3は、16×16変換ユニットに対するマルチレベルスキャン順序の例を示している。 図4は、逆グループレベルスキャン順序において番号付けされた係数グループへと区画化される例示的な16×16変換ユニットを示している。 図5は、係数グループのうちの4つのグループがサインビット秘匿のために形成される変換ユニットの1つの例を示している。 図6は、サインビット秘匿のための係数グループのグルーピングの別の例を例示している。 図7は、サインビット秘匿のための係数グループのグルーピングのなおも別の例を示している。 図8は、サインビット秘匿のために係数のセットを動的に形成する例を例示している。 図9は、フローチャート形式において、サインビット秘匿のための例示的なプロセスを示している。 図10は、エンコーダの例示的な実施形態の簡略化されたブロック図を示している。 図11は、デコーダの例示的な実施形態の簡略化されたブロック図を示している。
異なる図面において用いられ得る類似した参照番号は、類似した構成要素を示している。
(例示的な実施形態の記載)
以下の記載においては、ビデオコーディングのためのH.264規格および/または開発中のMPEG−H規格に関連して、いくつかの実施形態が記載されている。当業者であれば、本願は、H.264/AVC規格および/またはMPEG−Hに限定されず、可能性のある将来の規格、マルチビューコーディング規格、スケーラブルビデオコーディング規格、および再構成可能ビデオコーディング規格を含む、その他のビデオコーディング/デコーディング規格に対して適用可能であり得ることを理解し得る。
以下の記載において、ビデオまたはイメージに言及するとき、フレーム、ピクチャ、スライス、タイル、および矩形スライスグループという用語は、いくぶん互換的に用いられ得る。当業者であれば、H.264規格の場合において、フレームは、1つ以上のスライスを含み得ることを理解し得る。また、適用可能なイメージまたはビデオコーディング規格の特定の要件または術語に依存して、特定のエンコーディング/デコーディングオペレーションが、フレームごとに実行されること、いくつかがスライスごとに実行されること、いくつかがピクチャごとに実行されること、いくつかがタイルごとに実行されること、およびいくつかが矩形スライスグループによることも、理解され得る。任意の特定の実施形態において、適用可能なイメージまたはビデオコーディング規格は、以下に記載されるオペレーションが、場合によって、フレームおよび/またはスライスおよび/またはピクチャおよび/またはタイルおよび/または矩形スライスグループに関連して実行されるかどうかを決定し得る。したがって、当業者であれば、本開示に照らして、本明細書中に記載されている特定のオペレーションまたはプロセス、ならびにフレーム、スライス、ピクチャ、タイル、矩形スライスグループに対する特定の言及が、所与の実施形態に対して、フレーム、スライス、ピクチャ、タイル、矩形スライスグループ、またはこれらのうちのいくつかまたはすべてに対して適用可能であるかどうかを理解し得る。また、これは、以下の記載に照らして明らかになり得るように、変換ユニット、コーディングユニット、コーディングユニットのグループ等に対しても当てはまる。
本願は、変換ユニットの非ゼロ係数に対してサインビットをエンコードおよびデコードするための例示的プロセスおよびデバイスを記載している。非ゼロ係数は、有意マップによって識別される。有意マップは、変換ユニットまたは係数の定義されたユニット(例えば、いくつかの変換ユニット、変換ユニットの一部分、またはコーディングユニット)にマップする、または該変換ユニットまたは係数の定義されたユニットに対応する、フラグのブロック、行列、グループまたはセットである。各フラグは、変換ユニットまたは特定のユニットにおける対応する位置が、非ゼロ係数を含むかどうかを示す。既存の規格においては、これらのフラグは、有意係数フラグと称され得る。既存の規格においては、スキャン順序において、DC係数から最終有意係数まで、係数ごとに1つのフラグが存在し、該フラグは、対応する係数がゼロである場合には、ゼロであるビットであり、対応する係数が非ゼロである場合には、1に設定される。本明細書中で用いられる際の用語「有意マップ」は、以下の記載から理解され得るような、変換ユニットに対する有意係数フラグの行列または順序付けられたセット、あるいは本願のコンテキストから明確であり得る、係数の定義されたユニットを意味することが意図されている。
以下の記載に照らして、マルチレベルエンコーディングおよびデコーディング構造が、特定の状況に対して適用可能であり得、これらの状況が、ビデオコンテンツタイプ等のサイド情報(シーケンス、ピクチャ、またはスライスヘッダ内で識別されるような自然なビデオまたはグラフィクス)から決定され得ることが、理解され得る。例えば、2つのレベルが自然なビデオに対して用いられ得、3つのレベルがグラフィクスに対して用いられ得る(これは、典型的には、遥かに希少である)。さらに別の可能性は、シーケンス、ピクチャ、またはスライスヘッダのうちの1つにおいてフラグを提供して、構造が1つ、2つ、または3つのレベルを有しているかどうかを示し、これにより、エンコーダに、現在のコンテンツに対する最も適切な構造を選択するフレキシビリティを可能にすることである。別の実施形態においては、フラグは、コンテンツタイプを表し得、これは、レベルの数に関連付けられ得る。例えば、コンテンツタイプ「グラフィック」は、3つのレベルを特徴とし得る。
ここで図1に対する参照がなされ、該図面は、ブロック図形式において、ビデオをエンコードするためのエンコーダ10を示している。また、図2に対する参照もなされ、該図面は、ビデオをデコードするためのデコーダ50のブロック図を示している。本明細書中に記載されているエンコーダ10およびデコーダ50が、それぞれ、1つ以上の処理要素およびメモリを含む、特定用途向けまたは汎用コンピューティングデバイス上に実装され得ることが理解され得る。エンコーダ10またはデコーダ50によって実行されるオペレーションは、場合によって、例えば、特定用途向け集積回路によって実装され得るか、あるいは汎用プロセッサによって実行可能な格納されたプログラム命令によって実装され得る。デバイスは、例えば、基本デバイス機能を制御するためのオペレーティングシステムを含む、付加的ソフトウェアを含み得る。その内部でエンコーダ10またはデコーダ50が実装され得るデバイスまたはプラットフォームの範囲は、以下の記載に接した当業者によって理解され得る。
エンコーダ10は、ビデオソース12を受信し、かつエンコードされたビットストリーム14を生成する。デコーダ50は、エンコードされたビットストリーム14を受信し、かつデコードされたビデオフレーム16を出力する。エンコーダ10およびデコーダ50は、多くのビデオ圧縮規格に準拠して動作するように構成され得る。例えば、エンコーダ10およびデコーダ50は、H.264/AVC準拠であり得る。その他の実施形態においては、デコーダ10およびエンコーダ50は、MPEG−H等のH.264/AVCの規格の進化型を含む、その他のビデオ圧縮規格に準拠し得る。
エンコーダ10は、空間予測器21、コーディングモード選択器20、変換プロセッサ22、量子化器24、およびエントロピーエンコーダ26を含む。当業者によって理解され得るように、コーディングモード選択器20は、例えば、対象フレーム/スライスがIタイプ、PタイプまたはOタイプであるかどうか、ならびにフレーム/スライス内の特定のコーディングユニット(例えば、マクロブロック、コーディングユニット等)が、インターコードまたはイントラコードされるかどうか等、ビデオソースに対する適切なコーディングモードを決定する。変換プロセッサ22は、空間ドメインデータに基づいて、変換を実行する。特に、変換プロセッサ22は、ブロックベースの変換を適用して、空間ドメインデータを空間成分に変換する。例えば、多くの実施形態においては、離散コサイン変換(DCT)が用いられる。例えば離散サイン変換等のその他の変換が、いくつかの場合においては、用いられ得る。ブロックベースの変換は、コーディングユニット上で、マクロブロックまたはサブブロックベースで、マクロブロックまたはコーディングユニットのサイズに依存して、実行される。H.264規格においては、例えば、典型的な16×16マクロブロックは、16個の4×4変換ブロックを含み、DCTプロセスが該4×4ブロックに対して実行される。いくつかの場合においては、変換ブロックは、8×8であり得、これは、マクロブロックごとに4つの変換ブロックが存在することを意味している。なおも他の場合においては、変換ブロックは、その他のサイズであり得る。いくつかの場合においては、16×16マクロブロックは、4×4および8×8マクロブロックの非重複組み合わせを含み得る。
ブロックベースの変換をピクセルデータのブロックに適用することは、変換ドメイン係数のセットをもたらす。このコンテキストにおける「セット」とは、係数が係数位置を有する順序付けられたセットのことである。いくつかの場合においては、変換ドメイン係数のセットは、係数の「ブロック」または行列として考慮され得る。本明細書中の記載において、フレーズ「変換ドメイン係数のセット」または「変換ドメイン係数のブロック」は、互換的に用いられており、かつ変換ドメイン係数の順序付けられたセットを示すことが意図されている。
変換ドメイン係数のセットは、量子化器24によって量子化される。量子化された係数および関連付けられた情報は、その後、エントロピーエンコーダ26によってエンコードされる。
量子化された変換ドメイン係数のブロックまたは行列は、本明細書中では、「変換ユニット」(TU)と称され得る。いくつかの場合においては、TUは、非正方であり得、例えば、non−squre quadrature transform(NSQT)であり得る。
イントラコードされたフレーム/スライス(すなわち、タイプI)は、その他のフレーム/スライスを参照せずに、エンコードされる。換言すると、これらは、時間的予測を採用していない。しかしながら、イントラコードされたフレームは、空間予測器21によって図1内に例示されているような、フレーム/スライス内の空間予測に依拠していない。すなわち、特定のブロックをエンコードするときに、ブロック内のデータは、そのフレーム/スライスに対して既にエンコードされているブロック内の近隣のピクセルのデータと比較され得る。予測アルゴリズムを用いることにより、ブロックのソースデータは、残余データに変換され得る。変換プロセッサ22は、その後、残余データをエンコードする。例えば、H.264は、4×4変換ブロックに対して9つの空間予測モードを記述する。いくつかの実施形態においては、9つのモードのそれぞれは、ブロックを独立的に処理するために用いられ得、レート歪み最適化が、その後、最良モードを選択するために用いられる。
また、H.264規格は、時間予測を活用するために、動き予測/補償の使用を記述している。したがって、エンコーダ10は、逆量子化器28、逆変換プロセッサ30、およびデブロッキングプロセッサ32を含むフィードバックループを有する。デブロッキングプロセッサ32は、デブロッキングプロセッサおよびフィルタリングプロセッサを含み得る。これらの要素は、フレーム/スライスを再生するために、デコーダ50によって実装されるデコーディングプロセスを反映している。フレーム格納34が、再生されたフレームを格納するために用いられる。このように、動き予測は、何がデコーダ50において再構成されるフレームであり得るかに基づいており、エンコーディング/デコーディング内に含まれる損失性のある圧縮に起因して再構成されたフレームとは異なり得るオリジナルフレームに基づいてはいない。動き予測器36は、類似したブロックを識別するという目的のために、現在のフレームに対する比較のためのソースフレーム/スライスとして、フレーム格納34に格納されるフレーム/スライスを用いる。したがって、それに対して動き予測が適用されるマクロブロックまたはコーディングユニットに対して、変換プロセッサ22がエンコードする「ソースデータ」は、動き予測プロセスに由来する残余データである。例えば、これは、基準フレーム、空間変位または「動きベクトル」、および基準ブロックと現在のブロックとの間の(もしあれば)相違を表す残余ピクセルデータに関する情報を含み得る。基準フレームおよび/または動きベクトルに関する情報は、変換プロセッサ22および/または量子化器24によって処理されないことがあり得るが、その代りに、量子化された係数とともに、ビットストリームの一部分としてエンコードするために、エントロピーエンコーダ26に供給され得る。
当業者であれば、ビデオエンコーダを実装するための詳細および可能性のある変形を理解し得る。
デコーダ50は、エントロピーデコーダ52、逆量子化器54、逆変換プロセッサ56、空間補償器57、およびデブロッキングプロセッサ60を含む。デブロッキングプロセッサ60は、デブロッキングおよびフィルタリングプロセッサを含み得る。フレームバッファ58は、動き補償を適用する際における、動き補償器62による使用のために、再構成されたフレームを供給する。空間補償器57は、既にデコードされたブロックから特定のイントラコードされたブロックに対するビデオデータを復元するオペレーションを表す。
ビットストリーム14は、エントロピーデコーダ52によって受信され、かつデコードされて、量子化された係数を復元する。また、サイド情報が、エントロピーデコーディングプロセスの間に復元され得、そのうちの一部は、(もしあれば)動き補償における使用のために、動き補償ループに供給され得る。例えば、エントロピーデコーダ52は、イントラコードされたマクロブロックに対して、動きベクトルおよび/または基準フレーム情報を復元し得る。
量子化された係数は、その後、逆量子化器54によって逆量子化されて、変換ドメイン係数を生成し、該係数は、その後、逆変換プロセッサ56による逆変換の対象となり、「ビデオデータ」を再形成する。理解され得るように、例えばイントラコードされたマクロブロックまたはコーディングユニットの場合等のいくつかの場合においては、再形成された「ビデオデータ」は、フレーム内の既にデコードされたブロックに対する空間補償における使用のための残余データである。空間補償器57は、既にデコードされたブロックからの残余データおよびピクセルデータからビデオデータを生成する。例えばイントラコードされたマクロブロックまたはコーディングユニット等のその他の場合においては、逆変換プロセッサ56からの再形成された「ビデオデータ」は、異なるフレームからの基準ブロックに対する動き補償における使用のための残余データデある。空間補償および動き補償の両方は、本明細書中では、「予測オペレーション」として称され得る。
動き補償器62は、特定のインターコードされたマクロブロックまたはコーディングユニットに対して特定されたフレームバッファ58内に基準ブロックを配置する。該補償器は、インターコードされたマクロブロックまたはコーディングユニットに対して特定された基準フレーム情報および動きベクトルに基づいて、これを行う。該補償器は、その後、残余データとの組み合わせのために、基準ブロックピクセルデータを供給して、コーディングユニット/マクロブロックに対する再構成されたビデオデータに到達する。
デブロッキングプロセッサ60によって示されているように、ブロッキング/フィルタリングプロセスが、その後、再構成されたフレーム/スライスに対して適用され得る。デブロッキング/フィルタリングの後、フレーム/スライスは、例えば、ディスプレイデバイス上の表示のために、デコードされたビデオフレーム16として出力される。例えばコンピュータ、セットトップボックス、DVDまたはブルーレイプレーヤー、および/またはモバイルハンドヘルドデバイス等のビデオ再生機は、出力デバイス上の表示の前にメモリ内にデコードされたフレームをバッファし得るということが理解され得る。
MPEG−H準拠エンコーダおよびデコーダは、これらと同じまたは類似した特徴の多くを有し得ることが期待されている。
(量子化された変換ドメイン係数のエンコーディングおよびデコーディング)
上述したように、量子化された変換ドメイン係数のブロックまたはセットのエントロピーコーディングは、量子化された変換ドメイン係数のブロックまたはセットに対する有意マップ(例えば、有意係数フラグのセット)をエンコードすることを含む。有意マップは、どの位置(DC位置から最終有意係数位置まで)に非ゼロ係数が現れるかを示すブロックのバイナリマッピングである。有意マップは、スキャン順序(該順序は、適用可能なコーディング規格によって記述されている垂直、水平、対角線、ジグザグ、またはその他の任意の順序であり得る)にしたがって、ベクトルに変換され得る。スキャンは、典型的には、「逆」順序で行われ、すなわち、最終有意係数から出発し、[0,0]における左上コーナーにおける有意係数フラグに到達するまで、逆方向に、有意マップを通って、逆行して機能する。本記載においては、用語「スキャン順序」は、(場合によって)フラグ、係数、またはグループが処理される順序を意味することが意図されており、口語的に「逆スキャン順序」として称される順序を含み得る。
各有意係数フラグは、その後、適用可能なコンテキスト適応コーディングスキームを用いてエントロピーエンコードされる。例えば、多くの用途においては、context−adaptive binary arithmetic coding(CABAC)スキームが用いられ得る。
16×16および32×32有意マップの場合、有意係数フラグに対するコンテキストは、隣接する有意係数フラグ値に(ほとんどの場合には)基づいている。16×16および32×32有意マップに対して用いられるコンテキストの中で,[0,0]におけるビット位置に対して専用である、そして(いくつかの例示的な実装においては)隣接するビット位置に対して専用である、特定のコンテキストが存在するが、有意係数フラグのうちのほとんどは、隣接する有意係数フラグの累積値に依存する4つまたは5つのコンテキストのうちの1つをとる。これらの場合においては、有意係数フラグに対する正確なコンテキストの決定は、隣接する位置(典型的には5つの位置であるが、いくつかの場合においては、より多くまたはより少ないことがあり得る)における有意係数フラグの値を決定し、かつ合計することに依存している。
これらの非ゼロ係数に対する有意係数レベルは、その後に、エンコードされ得る。1つの例示的な実装においては、レベルは、1よりも大きい絶対値を有するこれらの非ゼロ係数のマップを最初にエンコーディングすることにより、エンコードされ得る。別のマップは、その後に、2よりも大きいレベルを有するこれらの非ゼロ係数のエンコードされたものであり得る。2よりも大きい絶対値を有する係数のうちのいずれかの値またはレベルは、その後に、エンコードされる。いくつかの場合においては、エンコードされた値は、実際の値マイナス3であり得る。
非ゼロ係数のサインもまた、エンコードされる。各非ゼロ係数は、非ゼロ係数のレベルが負または正であるかどうかを示すサインビットを有している。変換ユニット内の第1係数に対するサインビットを秘匿するための提案がなされてきた(Clare,Gordon,et al.,“Sign Data Hiding”,JCTVC−G271,7th Meeting,Geneva,21−30 November,2011)。この提案のもとで、変換ユニット内の第1係数のサインは、変換ユニット内の量子化された係数の和のパリティを用いてエンコードされる。パリティが第1係数の実際のサインに対応しない場合には、エンコーダは、パリティを調整するために、係数のうちの1つのレベルを1だけ上下するように調整する必要がある。どの係数をどの方向に調整するかを決定するために、RDOOが用いられるべきである。
いくつかの以前の仕事は、マルチレベル有意マップを用いることに焦点を当てていた。ここで図3に対する参照がなされ、該図面は、例示されているマルチレベル対角線スキャン順序を用いる16×16変換ユニット100を示している。変換ユニット100は、16個の連続4×4係数グループまたは「有意係数フラグのセット」へと区画化される。各係数グループ内では、変換ユニット100の全体にわたってではなく、対角線スキャン順序が該グループ内に適用される。セットまたは係数グループ自体は、スキャン順序において処理され、該順序もまた、この例示的な実装においては、対角線スキャン順序である。この例におけるスキャン順序は、「逆」スキャン順序において例示されているということ、すなわち、スキャン順序は、右下係数グループから、左下向き対角線方向に、左上対角線グループに向けて進行して示されているということに留意されたい。いくつかの実装においては、同じスキャン順序が、その他の方向において定義され得、すなわち、エンコーディングの間に適用されるときに、右上向き対角線方向に進行し、あるいはデコーディングが「逆」スキャン順序において適用され得る。
マルチレベル有意マップの使用は、どの係数グループが非ゼロ有意係数フラグを含むと期待され得、かつどの係数グループがすべてのゼロ有意係数フラグを含むかを示す、L1またはより高レベルの有意マップのエンコーディングを含む。非ゼロ有意係数フラグを含むことが期待され得る係数グループは、それらの有意係数フラグをエンコードさせるが、その一方ですべてのゼロ有意係数フラグを含む係数グループは、(それらが少なくとも1つの非ゼロ有意係数フラグを含むと想定されることによる特別な場合の例外を理由としてエンコードされるグループであるときを除いて)エンコードされない。各係数グループは、(例えば最終有意係数を含むグループ、左上グループ等の、係数グループが想定値のフラグを有する特別な場合に該当するときを除いて)有意係数グループフラグを有する。
マルチレベル有意マップの使用は、エンコーディングおよびデコーディングのための残余データのモジュール式処理を容易にする。
より大きいTUは、複数サインビットを秘匿する機会を提示する。TUは、非ゼロ係数のセットへと分割または区画化され得、サインビットは、当該セット内の非ゼロ係数の和のパリティを用いて、非ゼロ係数の各セットに対して秘匿され得る。一実施形態において、非ゼロ係数のセットは、マルチレベル有意マップに対して定義された係数グループに対応させられ得る。
単一の閾値が、データタイプに関わらず、非ゼロ係数の特定のセットに対してサインビットを秘匿するかどうかを決定するために用いられ得る。一例においては、閾値テストは、セット内の第1非ゼロ係数と最終非ゼロ係数との間の係数の数に基づいている。すなわち、セット内の第1非ゼロ係数と最終非ゼロ係数との間に、少なくとも閾値数の係数が存在するかどうかに基づいている。別の例においては、テストは、セット内に少なくとも閾値数の非ゼロ係数が存在していることに基づき得る。なおも別の実施形態においては、テストは、閾値を超えるセット内の非ゼロ係数の絶対値の和に基づき得る。なおもさらなる実施形態においては、これらのテストの組み合わせが、適用され得る。すなわち、セット内には少なくとも最小数の係数が存在するはずであり、係数の累積絶対値は、閾値を超える必要がある。これらの閾値テストに対する変形もまた、採用され得る。
ここで図4に対する参照がなされ、該図面は、例示的な16×16変換ユニット120を示している。変換ユニット120は、4×4係数グループに分割される、すなわち、係数の16個のセットに分割される。係数グループは、例えば逆対角スキャン順序等の、それらが処理される順序において、1,2,3,…16に番号付けされる。
第1実施形態において、各係数グループは、サインビット秘匿という目的のための係数のセットである。すなわち、各係数グループは、係数グループがサインビット秘匿のために適切であるかどうかを決定するために、閾値に対してテストされる。上述したように、テストは、係数グループが、当該係数グループ内の第1非ゼロ係数と最終非ゼロ係数との間に少なくとも最小数の係数を含んでいるかどうかというものであり得る。
第2実施形態においては、サインビット秘匿のための係数のセットは、係数グループをグルーピングすることによって形成される。図5は、16×16 TU140を示しており、該図面においては、係数の4つのセットへの係数グループの例示的なグルーピングが例示されている。この例においては、サインビット秘匿という目的のための係数の各セットは、4つの係数グループを含む。各セットにおける4つの係数グループは、スキャン順序における連続グループである。例えば、係数の第1セット142は、係数グループ16、15、14、および13を含む。係数の第2セット144は、係数グループ12、11、10、および9を含む。係数の第3セット146は、係数グループ8、7、6、および5を含む。最後に、係数の第4セット148は、係数グループ4、3、2、および1を含む。この実施形態においては、サインビットは、係数の各セットに対して秘匿され得る。すなわち、4までのサインビットが、TU140ごとに秘匿され得る。
係数の各セット142、144、146、148に対して、第1非ゼロ係数と最終非ゼロ係数との間の係数の数(または非ゼロ係数の数、またはこれらの係数の累積合計値)は、当該セットに対してサインビットを秘匿するかどうかを決定するために、閾値に対してテストされる。セット内のこれらの係数の絶対値の和のパリティは、それを介してサインビットが秘匿される機構である。パリティが秘匿されるべきサインに対応しない場合には、パリティは、セット内の係数のうちの1つのレベルを調整することによって、調整される。
図6は、16×16 TU150の場合のサインビット秘匿のための係数のセットの第3実施形態を例示している。この実施形態においては、セットは、再度、係数グループに基づいて形成されるが、セットは、必ずしも同じ数の係数または係数グループを含むわけではない。例えば、この例示においては、係数の5つのセットが定義されている。第1セット152は、係数グループ1〜6を含む。第2セット154は、4つの係数グループ7、8、9、および10を含む。第3セット156は、係数グループ11、12、および13を含む。第4セット158は、係数グループ14および15を含む。第5セット159は、左上係数グループ16だけを含む。この実施形態は、それに対してより少ない非ゼロ係数が存在する可能性のある変換ユニット150の領域内に係数のより大きなセットを提供すること、ならびに、それにおいて非ゼロ係数がより一般的である変換ユニット150内の領域内に係数のより小さなセットを提供することが、理解され得る。上述した実施形態は、32×32またはより大きなTUサイズならびに8×8TUサイズに対しても当てはまり得、係数グループ構造が、これらのTUに対して適用されるということに留意されたい。
図7は、第4実施形態を例示しており、該図面においては、8×8変換ユニット160内のサインビット秘匿のための係数のセットが、係数グループ構造に固着することなく形成される。8×8変換ユニットは、有意マップエンコーディングの目的のための係数グループ区画化を有し得ることも、有しないこともあり得る。いずれの場合においても、この実施形態においては、変換ユニットベースの対角線スキャンが、サインビットのエンコーディングおよび秘匿のために係数を処理するために用いられる。この場合においては、係数のセットは、スキャン順序において、連続係数をグルーピングするために形成される。例えば、この例示においては、変換ユニット160は、係数の4つのセットにグルーピングされ、各セットは、スキャニング順序において、16個の連続係数を含んでいる。グループは、図7においては、162、164、166、および168にラベル付けされている。
なおも別の実施形態においては、係数のセットは、スキャン順序に固着しないものであり得る。すなわち、各セットは、変換ユニット内のより高い頻度位置からのいくつかの係数と、変換ユニット内のより低い頻度位置からのいくつかの係数とを含み得る。これらのセット内の全ての係数は、必ずしも、スキャン順序において隣接してはいないことがあり得る。
図8は、第5実施形態を示しており、該図面においては、16×16変換ユニット170内のサインビット秘匿のための係数のセットが、係数グループ構造およびスキャン順序を用いて、動的に形成される。この実施形態においては、係数の固定されたセットが変換ユニットサイズおよびスキャン順序に基づいて予め定義されているというよりもむしろ、スキャン順序をたどり、かつ閾値が満たされるまで閾値に対して何らかの量が測定されているかどうかを追跡することにより、エンコーダおよびデコーダが、セットを形成する。いったん閾値が満たされると、その後にエンコーダまたはデコーダが処理する係数グループに対して、サインビットが秘匿される。
例えば、図8は、係数グループ[2,2]内の最終有意係数を例示している。スキャン順序において、エンコーダおよびデコーダは、その後に、係数グループ[1,3],[3,0],および[2,1]へと順に移る。係数グループ[2,1]における係数を処理している間に、閾値が満たされる。したがって、係数グループ[2,1]において逆スキャン順序において処理されるべき最終非ゼロ係数に対するサインビット(グループ内の最も左上の非ゼロ係数)は、最終有意係数から、現在の係数グループ[2,1]におけるすべての係数までの、そして該現在の係数グループ[2,1]におけるすべての係数を含む、係数の累積絶対値のパリティ内に秘匿される。この例における閾値テストは、最小数の非ゼロ係数が存在すること、または係数の絶対値がなんらかの閾値を超えることに基づき得る。参照番号174は、特定の係数グループにおける「最終」または最も左上の係数に対するサインビット秘匿オペレーションを示している。
第6実施形態において、サインビット秘匿は、係数グループに基づいて行われ、係数グループがサインビット秘匿のために適切であるかどうかを決定するために用いられる基準は、既にデコードされた係数グループにしたがって動的に調整される。例として、そのすぐ右の係数グループまたはそのすぐ下の係数グループのいずれかが非ゼロ係数を有している場合には、現在の係数グループは、それが2つの非ゼロ係数の最小値を含んでいる限り、サインビット秘匿のために適切であると決定される。また、上述した実施形態のうちのいくつかにおいて記載されているように、係数グループは、それが、当該係数グループ内の第1非ゼロ係数と最終非ゼロ係数との間に少なくとも最小数の係数を含んでいる場合には、適切であると決定され得る。
上述した実施形態のうちのいくつかにおいて理解され得るように、サインビットは、別の係数グループにおける係数に依存するパリティ値に基づいて、1つの係数グループ内に秘匿され得る。換言すると、1つの係数グループ内の係数のサイン値は、別の係数グループにおける係数へのレベル変化により、パリティ内に秘匿され得る。
さらに、上述した実施形態のうちのいくつかにおいて理解され得るように、係数のセット内に秘匿されたサインビットは、動きベクトル相違フラグ(例えば、mvd_sign_flg)等の異なるシンタックス要素からのものであり得る。
エンコーダ側においては、パリティ値がサインに対応しない場合において、サインビットを秘匿するために、どの係数を調整するかに関する決定がなされる。パリティ値が調整される必要がある場合には、パリティを変化させるために、係数レベルが、1だけ増加または減少される必要がある。
一実施形態においては、係数レベルを調整するためのプロセスにおける第1ステップは、検索範囲を決定すること、すなわちスキャン順序における開始位置および終了位置を決定することである。この範囲内の係数は、その後に評価され、1つのものが、変化させられるように選択される。1つの例示的な実施形態においては、検索範囲は、スキャニング順序における、第1非ゼロ係数から最終係数までであり得る。
マルチレベル有意マップの使用により、サブセットに対する検索範囲に対する終了位置は、ブロックレベル情報を利用するために、変化させられ得る。特に、1つのサブセットが、全体のTU内のまさに最終の非ゼロ係数を含んでいる場合(大域的最終または最終有意係数と称される)には、検索範囲は、第1非ゼロ係数から最終非ゼロ係数までとして確立され得る。その他のサブセットに対しては、検索範囲は、第1非ゼロ係数から現在のサブブロックの終了までの範囲に拡張され得る。
一実施形態において、開始位置は、第1非ゼロ量子化係数よりも前の非量子化係数を条件的に含むように拡張され得る。特に、量子化の前のすべての係数を考慮する。秘匿されるべきサインと同じサインを有する非量子化係数は、検索内に含まれ得る。位置ゼロから第1非ゼロ量子化係数の位置までの非量子化係数に対して、量子化係数をゼロから1に変化させるコストが、検索において評価され、テストされ得る。
係数レベルを調整するためのプロセスにおける別の問題は、調整の影響を評価するために用いられるコスト計算を定義することである。計算複雑性が問題となる場合には、コストは、歪みに基づき得、レートは考慮に入れられないことがあり得、この場合においては、検索は、歪みを最小化するものである。一方で、計算複雑性が優先的な問題ではない場合には、コストは、レート歪みコストを最小化するために、レートおよび歪みの両方を含み得る。
RDOQが有効化された場合には、RDOQは、レベルを調整するために用いられ得る。しかしながら、多くの場合においては、RDOQの計算複雑性は、望ましくないことがあり得、RDOQは、有効化されないことがあり得る。したがって、いくつかの実施形態においては、サインビット秘匿を実装するために、簡略化されたレート歪み解析が、エンコーダにおいて適用され得る。
セット内の第1非ゼロ係数とセット内の最終非ゼロ係数との間の各係数は、係数を1だけ増大させることから、そして係数を1だけ減少させることから、歪みを大雑把に計算することによってテストされ得る。一般的にいうと、uの係数値は、u+δの実際値を有する。歪みは、(δq)によって与えられる。この係数uが1だけ増加してu+1に調整された場合には、結果としての歪みは、
(1−2δ)
と推定され得る。
係数uが1だけ減少してu−1に調整された場合には、結果としての歪みは、
(1+2δ)
と推定され得る。
インターコードされた場合に対して、量子化歪みδは、RDOQがオフの場合には、[−1/6から+5/6]の範囲に存在すると認識され得る。イントラコードされたブロックの場合には、量子化歪みδは、RDOQがオフの場合には、[−1/3から+2/3]の範囲に存在する。RDOQがオンの場合には、δの範囲は、変動し得る。しかしながら、歪み増加の上述した計算は、δの範囲に関わらず、依然として有効である。
また、エンコーダは、論理規則のセット、すなわち予め定義されたレートコストメトリックを用いて、様々な係数に対するレートコストに関する大雑把な評価を行い得る。例えは、予め定義されたレートコストメトリックは、一実施形態においては、
Figure 0005537681
を含み得る。
ここで、サインフラグのコストは、1ビットとして推定され、有意係数フラグのコストは、0.5ビットとして推定され、uからu+1までのコスト増加は、0.5ビットとして推定される。
その他の規則または推定が、その他の実施形態において用いられ得る。
ここで図9に対する参照がなされ、該図面は、係数グループベースのサインビット秘匿を用いてビデオデータをデコードするための例示的なプロセス200を示している。プロセス200は、上述した第2実施形態に基づいている。本記載を読んだ後には、記載されているその他の実施形態を実行するためのプロセス200に対する代替および改変が、当業者によって認識され得る。
閾値が、オペレーション202において設定される。いくつかの実施形態においては、この閾値は、デコーダ内で予め定義され得るか、または予め構成され得る。その他の実施形態においては、この値は、エンコードされたビデオデータのビットストリームから抽出され得る。例えば、閾値は、ピクチャヘッダにおいて、またはビットストリーム内の別の位置において存在し得る。
オペレーション204において、デコーダは、スキャン順序において、現在の係数グループ内の、すなわち係数のセット内の第1非ゼロ位置を識別し、そして現在の係数グループ内の最終非ゼロ位置を識別する。その後これは、係数グループ内の第1非ゼロ係数と最終非ゼロ係数との間において、スキャン順序において、係数の数を決定する。
オペレーション206において、デコーダは、ビットストリームからサインビットをデコードする。デコーダは、係数グループ内の最も左上の非ゼロ係数(逆スキャン順序における最終非ゼロ係数)を除いて、係数グループ内のすべての非ゼロ係数に対して、サインビットをデコードする。サインビットは、これらのそれぞれの非ゼロ係数に対して適用される。例えば、適用可能な規約が、ゼロのサインビットが正であり、かつ、1のサインビットが負であるというものである場合には、1に設定されたすべてのサインビットに対して、対応する係数レベルは、負にされる。
オペレーション208において、デコーダは、係数グループ内のスキャン順序における第1非ゼロ係数と最終非ゼロ係数との間の係数の数が、閾値を超えているかどうかを評価する。超えていない場合には、エンコーダにおいてサインビット秘匿は用いられないので、オペレーション210において、デコーダは、最も左上の非ゼロ係数(逆スキャン順序における最後)に対するサインビットをデコードし、かつそれを係数レベルに適用する。係数の数が閾値を満たさない場合には、オペレーション212において、デコーダは、係数グループ内の係数の和の絶対値が、偶数または奇数であるかどうか、すなわちそのパリティを見積もる。偶数である場合には、最も左上の非ゼロ係数のサインは、正であり、デコーダは、それを調整する必要はない。奇数の場合には、最も左上の非ゼロ係数のサインは、負であり、それゆえ、オペレーション214において、デコーダは、当該係数を負にする。
オペレーション216においては、デコーダは、係数グループを処理することが終了したかどうかを決定する。終了したと決定した場合には、プロセス200は終了する。そうでない場合には、デコーダは、オペレーション218において、グループスキャン順序において次の係数グループに移り、オペレーション204に戻る。
その他の実施形態においては、係数のセットのサイズは、単一の係数まで低減され得る。すなわち、サインビット秘匿は、単一係数ベースのサイン秘匿であり得る。この実施形態においては、各係数は、それのサイン情報が秘匿されているかどうかを見るためにテストされる。1つの例示的なテストは、係数レベルの大きさと所与の閾値とを比較することである。閾値よりも大きいレベルを有する係数は、それらのサインビットを秘匿させ、そうでない場合には、規約サインビットエンコーディング/デコーディングが用いられる。
単一係数の場合においてサインビット秘匿を適用するために、サイン情報は、係数レベルのパリティと比較される。一例として、偶数のパリティは、正のサインに対応し得、奇数は、負に対応し得る。エンコーダは、その後に、レベルがサインに対応していない場合には、レベルを調整する。この技術は、閾値よりも上方ではすべての負のレベルは奇数であり、すべての正のレベルは偶数であるということを示唆していることが理解され得る。ある意味で、これは、事実上、閾値よりも大きい大きさを有する係数に対する量子化ステップサイズの改変であると考えられ得る。
サインビット秘匿を実装するための例示的なシンタックスの例が、以下に提供される。この例示的なシンタックスは、1つの可能性のある実装にすぎない。この例において、サインビット秘匿は、係数グループベースで適用され、閾値テストは、係数グループ内の第1非ゼロ係数から係数グループ内の最終非ゼロ係数までの係数の数に基づいている。sign_data_hidingと記されたフラグは、サインビット秘匿がオンであるかどうかを示すために、ピクチャヘッダ内で送信される。これが有効な場合には、ヘッダはまた、パラメータtsigをも含み、これは、閾値である。例示的なシンタックスは、以下のように設定される。
Figure 0005537681
以下の擬似コードは、係数グループベースのサインビット秘匿の1つの例示的な実装を例示している。
Figure 0005537681
Figure 0005537681
ここで図10に対する参照がなされ、該図面は、エンコーダ900の例示的な実施形態の簡略化されたブロック図を示している。エンコーダ900は、プロセッサ902、メモリ904、およびエンコーディングアプリケーション906を含んでいる。エンコーディングアプリケーション906は、メモリ904内に格納され、本明細書中に記載されているようなオペレーションを実行するようにプロセッサ902を構成するための命令を含んでいる、コンピュータプログラムまたはアプリケーションを含み得る。例えば、エンコーディングアプリケーション906は、本明細書中に記載されているプロセスにしたがって、エンコードし、エンコードされたビットストリームを出力し得る。エンコーディングアプリケーション906は、例えばコンパクトディスク、フラッシュメモリデバイス、ランダムアクセスメモリ、ハードドライブ等のコンピュータ読み取り可能な媒体上に格納され得ることが理解され得る。
ここで図11に対する参照がなされ、該図面は、デコーダ1000の例示的な実施形態の簡略化されたブロック図を示している。デコーダ1000は、プロセッサ1002、メモリ1004、およびデコーディングアプリケーション1006を含む。デコーディングアプリケーション1006は、メモリ1004に格納され、本明細書中に記載されているようなオペレーションを実行するようにプロセッサ1002を構成するための命令を含んでいる、コンピュータプログラムまたはアプリケーションを含み得る。デコーディングアプリケーション1006は、少なくとも部分的に、本明細書中に記載されているように、有意係数フラグを再構成することに基づいて、残余を再構成するように構成されたエントロピーデコーダを含み得る。デコーディングアプリケーション1006は、例えばコンパクトディスク、フラッシュメモリデバイス、ランダムアクセスメモリ、ハードドライブ等のコンピュータ読み取り可能媒体上に格納され得るということが理解され得る。
本願にしたがうデコーダおよび/またはエンコーダは、サーバ、適切にプログラムされた汎用コンピュータ、オーディオ/ビデオエンコーディングおよび再生デバイス、セットトップテレビジョンボックス、テレビジョンブロードキャスト機器、およびモバイルデバイスを含むがこれらに限定されない、多くのコンピューティングデバイスにおいて実装され得るということが理解され得る。デコーダまたはエンコーダは、本明細書中に記載されている機能を実行するようにプロセッサを構成するための命令を含むソフトウェアによって実装され得る。ソフトウェア命令は、CD、RAM、ROM、フラッシュメモリ等を含む、任意の適切な持続性コンピュータ読み取り可能メモリ上に格納され得る。
本明細書中に記載されているエンコーダ、およびエンコーダを構成するための記載された方法/プロセスを実装するモジュール、ルーチン、プロセス、スレッド、またはその他のソフトウェアコンポーネントは、標準的なコンピュータプログラミング技術および言語を用いて実現され得る。本願は、特定のプロセッサ、コンピュータ言語、コンピュータプログラミング規約、データ構造、その他のこのような実装の詳細に限定されない。当業者は、記載されているプロセスが、特定用途向け集積チップ(ASIC)等の一部分として揮発性または不揮発性メモリに格納されたコンピュータ実行可能コードの一部分として実装され得ることを認識し得る。
記載された実施形態の特定の適応および改変がなされ得る。したがって、上述した実施形態は、例示的なものであり、限定的なものではないと考慮されるべきである。
10 エンコーダ
12 ビデオソース
14 ビットストリーム
20 コーディングモード選択器
21 空間予測器
22 変換プロセッサ
24 量子化器
26 エントロピーコーダ
28 逆量子化器
30 逆変換プロセッサ
32 デブロッキングプロセッサ
34 フレーム格納
36 動き予測器

Claims (15)

  1. 変換ユニットに対する係数を再構成することによってエンコードされたビデオのビットストリームをデコーダがデコードする方法であって、該ビットストリームは、該変換ユニットに対するサインビットの2つ以上のセットをエンコードし、サインビットの各セットは、該変換ユニットに対する係数のそれぞれのセットに対応しており、各サインビットは、該それぞれのセット内の対応する非ゼロ係数のサインを示しており、
    該方法は、
    サインビットの該2つ以上のセットの各々に対して、
    サインビットの当該セットに対応する該それぞれのセットに対する係数の絶対値を合計して、パリティ値を取得することと、
    該パリティ値が偶数であるか奇数であるかに基づいて、該それぞれのセット内の該係数のうちの1つにサインを割り当てることと
    を含む、方法。
  2. 係数の前記それぞれのセットの各々は、それぞれの4×4係数ブロックに対応している、請求項1に記載の方法。
  3. 係数の前記それぞれのセットの各々は、それぞれの4×4係数ブロックのグループに対応しており、該グループ各々における該係数ブロックは、ブロックレベルスキャン順序における連続ブロックである、請求項1に記載の方法。
  4. 前記方法は、スキャン順序における第1非ゼロ係数と最終非ゼロ係数との間の係数の前記それぞれのセット内の係数の数が、閾値を超えていることを決定することをさらに含む、請求項1〜3のいずれか一項に記載の方法。
  5. 割り当てることは、前記パリティ値が奇数の場合には、前記係数のうちの1つを負にし、前記パリティ値が偶数の場合には、前記係数のうちの1つを正のままにすることを含む、請求項1〜4のいずれか一項に記載の方法。
  6. 変換ユニットに対する係数を再構成するようにエンコードされたデータのビットストリームをデコードすデコーダであって、
    該デコーダは、
    プロセッサと、
    メモリと、
    メモリ内に格納され、かつ請求項1〜5のいずれか一項に記載の方法を実行するように該プロセッサを構成するための命令を含むデコーディングアプリケーションと
    を含む、デコーダ。
  7. 変換ユニットに対する係数に対するサインビットをエンコードすることによってビデオのビットストリームをエンコーダがエンコードす方法であって、
    該方法は、
    該変換ユニットに対する係数の2つ以上のセットの各々に対して、
    当該セットに対する係数の絶対値を合計して、パリティ値を取得することと、
    当該セット内の係数のうちの1つのサインが該パリティ値に対応していないことを決定することと、
    該係数のうちの1つのサインに対応するように該パリティ値を変化させるために、当該セット内の係数のレベルを1だけ調整することと
    を含む、方法。
  8. 係数の前記2つ以上のセットの各々に対して、該係数のうちの1つを除いて、当該セット内のすべての非ゼロ係数に対するサインビットをエンコードすることをさらに含む、請求項7に記載の方法。
  9. 係数の前記2つ以上のセットの各々は、それぞれの4×4係数ブロックを含む、請求項7または請求項8に記載の方法。
  10. 係数の前記セットの各々は、それぞれの4×4係数ブロックのグループに対応しており、該グループの各々における該係数ブロックは、ブロックレベルスキャン順序における連続ブロックである、請求項7または請求項8に記載の方法。
  11. 前記方法は、スキャン順序における第1非ゼロ係数と最終非ゼロ係数との間の係数のセット内の係数の数が閾値を超えていることを決定することをさらに含む、請求項7〜10のいずれか一項に記載の方法。
  12. レベルを調整することは、レート歪み最適化を用いて調整されるべき前記セット内の係数を選択することを含む、請求項7〜11のいずれか一項に記載の方法。
  13. 前記レート歪み最適化は、レートコストを評価するために、予め定義されたコストメトリックを用いる、請求項12に記載の方法。
  14. 変換ユニットに対する係数に対するサインデータをエンコードすることにより、ビデオのビットストリームをエンコードすエンコーダであって、
    該エンコーダは、
    プロセッサと、
    メモリと、
    メモリ内に格納され、かつ請求項7〜13のいずれか一項に記載の方法を実行するようにプロセッサを構成するための命令を含むエンコーディングアプリケーションと
    を含む、エンコーダ。
  15. プロセッサ実行可能な命令を格納していプロセッサ読み取り可能な記録媒体であって、該命令は、実行されたときに、請求項1〜5、7〜13のうちのいずれか一項における方法を1つ以上のプロセッサに実行させる、プロセッサ読み取り可能な記録媒体。
JP2013006987A 2012-01-20 2013-01-18 変換ユニット内の複数サインビット秘匿 Active JP5537681B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12151973.0A EP2618572B1 (en) 2012-01-20 2012-01-20 Multiple sign bit hiding within a transform unit
EP12151973.0 2012-01-20

Publications (2)

Publication Number Publication Date
JP2013150323A JP2013150323A (ja) 2013-08-01
JP5537681B2 true JP5537681B2 (ja) 2014-07-02

Family

ID=45491487

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013006987A Active JP5537681B2 (ja) 2012-01-20 2013-01-18 変換ユニット内の複数サインビット秘匿

Country Status (11)

Country Link
EP (6) EP3094094B1 (ja)
JP (1) JP5537681B2 (ja)
KR (1) KR101538837B1 (ja)
CN (2) CN105959697B (ja)
AU (1) AU2013200325B2 (ja)
BR (1) BR102013001124B1 (ja)
CA (1) CA2801767C (ja)
ES (1) ES2776925T3 (ja)
MX (1) MX2013000711A (ja)
SG (1) SG192360A1 (ja)
TW (1) TWI524780B (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2982446A1 (fr) 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR2982447A1 (fr) 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
EP3094094B1 (en) * 2012-01-20 2018-03-28 BlackBerry Limited Multiple sign bit hiding within a transform unit
WO2014190468A1 (en) 2013-05-27 2014-12-04 Microsoft Corporation Video encoder for images
US9264724B2 (en) * 2013-10-11 2016-02-16 Blackberry Limited Sign coding for blocks with transform skipped
US9456210B2 (en) * 2013-10-11 2016-09-27 Blackberry Limited Sign coding for blocks with transform skipped
KR102218196B1 (ko) * 2013-10-28 2021-02-23 삼성전자주식회사 인코더, 이의 동작 방법과, 상기 인코더를 포함하는 장치들
WO2015139165A1 (en) 2014-03-17 2015-09-24 Microsoft Technology Licensing, Llc Encoder-side decisions for screen content encoding
KR101953855B1 (ko) 2014-04-01 2019-03-04 후아웨이 테크놀러지 컴퍼니 리미티드 다중 계층 구조 부호화 유닛에서의 데이터 은닉을 위한 방법 및 장치
CN106416254B (zh) * 2015-02-06 2019-08-02 微软技术许可有限责任公司 在媒体编码期间跳过评估阶段
CN106162201B (zh) * 2015-03-26 2019-02-15 北京君正集成电路股份有限公司 一种基于符号位分组的图像数据压缩方法及装置
US10038917B2 (en) 2015-06-12 2018-07-31 Microsoft Technology Licensing, Llc Search strategies for intra-picture prediction modes
US10136132B2 (en) 2015-07-21 2018-11-20 Microsoft Technology Licensing, Llc Adaptive skip or zero block detection combined with transform size decision
EP3412028B1 (en) 2016-02-12 2024-04-03 Huawei Technologies Co., Ltd. Method and apparatus for scan order selection
RU2706228C1 (ru) 2016-02-12 2019-11-15 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство выбора порядка сканирования
CN105898300B (zh) * 2016-05-06 2019-03-26 西安电子科技大学 一种基于恢复变换系数的改进变换系数符号位隐藏方法
US10911773B2 (en) 2016-05-13 2021-02-02 Telefonaktiebolaget Lm Ericsson (Publ) Motion vector difference coding and decoding
CN114222138A (zh) * 2016-05-28 2022-03-22 世宗大学校产学协力团 视频信号的解码装置
WO2019127003A1 (zh) * 2017-12-26 2019-07-04 富士通株式会社 图像编码方法、装置以及电子设备
WO2019156469A1 (ko) * 2018-02-09 2019-08-15 삼성전자 주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
WO2019172798A1 (en) * 2018-03-07 2019-09-12 Huawei Technologies Co., Ltd. Method and apparatus for residual sign prediction in transform domain
EP3738309A1 (en) * 2018-03-07 2020-11-18 Huawei Technologies Co., Ltd. Method and apparatus for detecting blocks suitable for multiple sign bit hiding
JP7085009B2 (ja) * 2018-03-07 2022-06-15 華為技術有限公司 マルチ符号ビット隠蔽及び残差符号予測を和合する方法及び装置
SG11202102908YA (en) * 2018-09-21 2021-04-29 Guangdong Oppo Mobile Telecommunications Corp Ltd Image signal encoding/decoding method and apparatus therefor
AU2020201753B2 (en) * 2020-03-10 2022-09-08 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a block of video samples
US20240373051A1 (en) * 2021-07-01 2024-11-07 Industry Academy Cooperation Foundation Of Sejong University Video encoding and decoding method using code bit hiding
CN116600130B (zh) * 2022-01-19 2024-10-29 杭州海康威视数字技术股份有限公司 一种系数解码方法、装置、图像解码器及电子设备
WO2024008060A1 (en) * 2022-07-05 2024-01-11 Mediatek Inc. Method and apparatus of dependent quantization for video coding
WO2024060099A1 (zh) * 2022-09-21 2024-03-28 Oppo广东移动通信有限公司 编解码方法、码流、编码器、解码器以及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000031878A1 (en) * 1998-11-20 2000-06-02 Interval Research Corporation Low cost video compression using fast, modified z-coding of wavelet pyramids
JP2004503964A (ja) * 2000-06-14 2004-02-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ カラービデオ符号化及び復号方法
CN100496125C (zh) * 2003-06-25 2009-06-03 汤姆森许可贸易公司 在压缩视频比特流中插入水印的编码方法和设备
US7454076B2 (en) * 2004-06-15 2008-11-18 Cisco Technology, Inc. Hybrid variable length coding method for low bit rate video coding
CN1893663A (zh) * 2005-09-02 2007-01-10 华为技术有限公司 多媒体通信的传输保护方法
BR122015015910B1 (pt) * 2009-01-27 2022-05-10 Interdigital Vc Holdings, Inc Métodos e aparelhos para seleções de transformada em codificação e decodificação de vídeo
FR2982446A1 (fr) * 2011-11-07 2013-05-10 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
EP3094094B1 (en) * 2012-01-20 2018-03-28 BlackBerry Limited Multiple sign bit hiding within a transform unit

Also Published As

Publication number Publication date
EP3094094B1 (en) 2018-03-28
MX2013000711A (es) 2014-01-09
TWI524780B (zh) 2016-03-01
CA2801767C (en) 2016-05-17
EP4258663A2 (en) 2023-10-11
CN103220515B (zh) 2016-06-29
EP4447447A2 (en) 2024-10-16
CN105959697A (zh) 2016-09-21
CN105959697B (zh) 2019-04-05
ES2776925T3 (es) 2020-08-03
EP2618572A1 (en) 2013-07-24
EP3094094A1 (en) 2016-11-16
AU2013200325B2 (en) 2014-12-04
EP4258663B1 (en) 2024-10-02
EP3399753A1 (en) 2018-11-07
EP3399753B1 (en) 2019-12-11
EP3644611A1 (en) 2020-04-29
TW201340717A (zh) 2013-10-01
EP3644611B1 (en) 2023-09-06
BR102013001124B1 (pt) 2022-04-19
BR102013001124A2 (pt) 2018-07-31
SG192360A1 (en) 2013-08-30
EP4258663A3 (en) 2023-12-20
KR20130085977A (ko) 2013-07-30
KR101538837B1 (ko) 2015-07-22
CN103220515A (zh) 2013-07-24
CA2801767A1 (en) 2013-07-20
JP2013150323A (ja) 2013-08-01
EP2618572B1 (en) 2016-08-24

Similar Documents

Publication Publication Date Title
JP5537681B2 (ja) 変換ユニット内の複数サインビット秘匿
US11786596B2 (en) Multiple sign bit hiding within a transform unit
US9854235B2 (en) Methods and devices for entropy coding in scalable video compression
US9363512B2 (en) Motion vector sign bit hiding
CA2858629A1 (en) Methods and devices for context modeling to enable modular processing
JP2013098988A (ja) 符号化および復号のためのマルチレベル有効性写像
JP5526246B2 (ja) コンテキストセット選択のための方法およびデバイス
CA2801095C (en) Methods and devices for context modeling to enable modular processing
EP2680580B1 (en) Reduced worst-case context-coded bins in video compression with parity hiding

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140206

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140306

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: 20140328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140425

R150 Certificate of patent or registration of utility model

Ref document number: 5537681

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250