JP2018517317A - ビデオコーディングシステムにおける残差変換及び逆変換方法 - Google Patents

ビデオコーディングシステムにおける残差変換及び逆変換方法 Download PDF

Info

Publication number
JP2018517317A
JP2018517317A JP2017550886A JP2017550886A JP2018517317A JP 2018517317 A JP2018517317 A JP 2018517317A JP 2017550886 A JP2017550886 A JP 2017550886A JP 2017550886 A JP2017550886 A JP 2017550886A JP 2018517317 A JP2018517317 A JP 2018517317A
Authority
JP
Japan
Prior art keywords
transform
block size
block
horizontal
vertical
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.)
Granted
Application number
JP2017550886A
Other languages
English (en)
Other versions
JP6704932B2 (ja
Inventor
チャ−ヤン ツァイ
チャ−ヤン ツァイ
ウェンペン ディン
ウェンペン ディン
ガン ウー
ガン ウー
Original Assignee
リアルネットワークス,インコーポレーテッド
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 リアルネットワークス,インコーポレーテッド filed Critical リアルネットワークス,インコーポレーテッド
Publication of JP2018517317A publication Critical patent/JP2018517317A/ja
Application granted granted Critical
Publication of JP6704932B2 publication Critical patent/JP6704932B2/ja
Expired - Fee Related 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/115Selection of the code volume for a coding unit prior to 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/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/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/182Methods 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 pixel
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • 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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

【課題】未符号化ビデオフレームのための、最大符号化ブロックサイズ及び最大変換ブロックサイズを求める変換ブロック処理手順を提供する。【解決手段】未符号化ビデオフレームは第1のコード化ブロックを含む複数のコード化ブロックに分けられ、そして、第1のコード化ブロックは少なくとも一つの予測ブロック及び複数の変換ブロックに分けられる。変換ブロックのサイズは、少なくとも部分的に、符号化ブロック及び対応する予測ブロックのサイズに依存する。それから変換ブロックは符号化され、それによって、符号化されたビットストリームの動画像データペイロードを生成する。最大符号化ブロックサイズフラグ及び最大変換ブロックサイズフラグを含む、符号化されたビットストリームのフレームヘッダが生成される。【選択図】図6

Description

本発明は、動画像データ信号の符号化及び復号化に関し、より詳しくは、劣化を補償する、コードブックを利用したアダプティブフィルタによる符号化及び復号化に関する。
デジタル画像、音声/オーディオ、グラフィクス、及びビデオ(動画像)等のデジタルマルチメディアの登場により、コンテンツの信頼性の高い格納、通信(communication)、送信(transmission)、検索及びアクセスが比較的容易にできるようになったので、様々なアプリケーションの性能が顕著に向上し、また、新しいアプリケーションが作成された。
一般的に、デジタルマルチメディアのアプリケーションは数多くあり、娯楽、情報、医学、及びセキュリティを含む幅広い分野を網羅しており、数多くの方法で社会に貢献している。
カメラやマイクロホンのようなセンサにより取得されるマルチメディアはアナログである場合も多く、パルス符号変調(PCM)方式によるデジタル化プロセスによりデジタル化される。しかし、デジタル化の直後のデータ量は、スピーカ及び/またはTVディスプレイで必要となるアナログ表示を再形成するために必要であるので、非常に大きくなる。したがって、大容量のデジタルマルチメディコンテンツを効率を良く通信、蓄積(格納)、または送信するためには、生のPCM形式から圧縮された表現形式に変換する必要がある。このように、マルチメディア(コンテンツ)の圧縮のために数多くの技術が発明されてきた。
近年、動画像データの圧縮技術は、圧縮されていないデジタル動画像に匹敵するほどの高い心理視覚品質(psycho−visual quality)を維持しつつ、多くの場合は高い圧縮率(10〜100)を達成するほど極めて高性能となっている。
数多くの標準機関による動画像符号化規格(例えばMPEG―1、MPEG―2、H.263、MPEG−4 part2、MPEG―4 AVC/H.264、MPEG―4 SVC及びMVC)、産業界主導のデファクト・スタンダード(例えばWindows Media Video、RealVideo、On2 VP等)に代表されるように、動画像圧縮技術において今日まで驚異的な進歩が見られるが、さらに高品質な、より高い解像度の、今では三次元(立体)の動画像をいつでもどこでも見たいという、さらに高まる消費者の欲求により、幅広いクライアント・デバイス(PC/ラップトップ、TV、セットトップボックス、ゲームコンソール、携帯メディアプレーヤ/デバイス、スマートフォン及びウェアラブルなコンピューター等)に、DVD/BDを介して、あるいは無線放送、ケーブル/衛星、有線及びモバイルネットワークを通じて等、さまざまな手段により動画像を配信する必要があり、さらに高いレベルの動画像圧縮が求められている。
このことは、標準化団体による規格において、ISO MPEGによる、High Efficiency Video Coding(HEVC)の近年始まった取り組みからも明らかであり、そして、ITU−T規格委員会によるH.265の動画像圧縮に対する長年の調査研究の技術をベースに新たな技術が組み合わせられることが期待されている。
上述した規格は全て、動画像のフレーム間の動きを補償することにより時間的冗長性を削減する、一般的なフレーム間予測符号化の枠組みを採用する。基礎概念は、ブロックマッチング法を用いて隣接した動画像間の時間的依存を取り除くことである。
符号化プロセスの開始時に、未符号化動画像シーケンスで各フレームは、3つのカテゴリ(Iタイプフレーム、Pタイプフレーム、Bタイプフレーム)のうちの1つに分類される。Iタイプフレームはイントラコード化される。すなわち、動画像の符号化のためにフレームそのものからの情報だけを用い、フレーム間動き補償技術は使用されない(フレーム内動き補償技術を適用できるにもかかわらず)。
その他、2つのタイプのフレーム(Pタイプ及びBタイプ)は、フレーム間の動き補償技術を使用して符号化される。PフレームピクチャとBフレームピクチャの違いは、動き補償のために使用する参照動画像の時間的方向である。Pフレームピクチャは過去の動画像(表示順序)からの情報を利用するが、Bフレームピクチャは過去及び未来両方の動画像(表示順序)からの情報を利用することができる。
フレーム予測タイプがPタイプ及びBタイプの場合、各フレームは各画素の輝度成分と色度成分の係数により表現される画素ブロックに分けられ、ブロックごとに一つ以上の動きベクトルが得られる。(なぜなら、Bフレームピクチャは、未来と過去の符号化フレーム両方からの情報を利用することができるので、2つの動きベクトルがそれぞれのブロックごとに符号化できるからである。)
動きベクトル(MV)は、現ブロックの位置から、もう一方の過去に符号化されたフレーム(表示順序においての過去または未来のフレームでもよい)の類似のブロックの位置までの空間変位を表す。そしてそれぞれ、参照ブロック及び参照フレームと呼ばれる。参照ブロックと現ブロックとの差が求められ(もしあれば)、そしてそこから残差(「残差信号」とも呼ばれる)が得られる。従って、ブロックの全コンテンツではなく、残差及び動きベクトルだけを、インター符号化フレームのブロックごとに符号化することが必要とされる。動画像シーケンスのフレーム間のこの種の時間的冗長性を取り除くことにより、動画像シーケンスを圧縮することができる。
動画像データを更に圧縮するために、フレーム間予測またはフレーム内予測技術を適用した後、残差信号の係数は大抵の場合は空間領域から周波数領域へ変換される(例えば離散型コサイン変換(「DCT」)または離散サイン変換(「DST」)を使用して)。普通の動画像(人間が認識できる通常の動画像シーケンスを構成するタイプの動画像)では、常に高周波成分より低周波成分の方が強い。
従って、残差信号のエネルギー圧縮は、空間領域でするよりも周波数領域でする方が効率がよい。順方向変換の後、係数及び動きベクトルは、パケット化の前、または、例えばインターネットのようなネットワークを介した伝送のための処理前に、量子化及びエントロピー符号化され得る。
復号化装置側では、空間残差信号を復元させるために逆量子化及び逆変換が適用される。これらは、多くの動画像圧縮規格において、典型的な変換/量子化プロセスである。それから、最初の未符号化動画像シーケンスの再形成されたバージョンを生成するために、逆予測処理を行うことができる。
従前の規格では、符号化で使用されるブロックは、通常16×16画素であった(多くの動画像符号化規格においてマクロブロックと呼ばれる)。しかし、これらの規格の開発により、フレームサイズは更に大きくなり、そして多くのデバイスに、「高解像度」(または「HD」)フレームサイズ(例えば2048×1530画素)より高度な高解像度で表示する機能が備わった。
このように、これらのフレームサイズ(例えば64×64画素)のための動きベクトルを効率的に符号化するために、より大きいブロックを有することは望ましいと言える。空間領域から周波数領域へ変換される残差信号のブロックのサイズを増大させることも望ましいこととなる。
一実施例に従う、典型的な動画像符号化/復号化システムを図示する。 一実施例に従う、典型的な符号化デバイスのいくつかのコンポーネントを図示する。 一実施例に従う、典型的な復号化デバイスのいくつかのコンポーネントを図示する。 少なくとも一つの実施例に従う、典型的なビデオエンコーダーのブロック図を図示する 少なくとも一つの実施例に従う、典型的な動画像復号化装置のブロック図を図示する。 少なくとも一つの実施例に従う、変換ブロック処理ルーチンを図示する。 少なくとも一つの実施例に従う、変換ブロックサイズ選択サブルーチンを図示する。 少なくとも一つの実施例に従う、順方向整数変換サブルーチンを図示する。 少なくとも一つの実施例に従う、二重変換サブルーチンを図示する。 少なくとも一つの実施例に従う、変換ブロック復元ルーチンを図示する。 少なくとも一つの実施例に従う、逆整数変換サブルーチンを図示する。
続く詳細な説明は、主に、プロセッサと、プロセッサ用のメモリ記憶デバイスと、被接続ディスプレイ装置と、入力装置とを含む従来のコンピューター・コンポーネントによるプロセスと演算の記号表現とにより表現される。さらにまた、これらのプロセス及び演算では、リモート・ファイルサーバーと、サーバーコンピューターと、メモリ記憶デバイスとを含む、異機種分散コンピューター環境において従来のコンピューター構成要素を利用することができる。これらの従来の各分散コンピューター構成要素は、ネットワークを介してプロセッサにアクセス可能である。
フレーズ「一実施例において」、「少なくとも一つの実施例において」、「各種実施形態において」、「いくつかの実施例において」等が、繰り返し本願明細書において使用され得る。この種のフレーズは同じ実施例を必ず示すというわけではない。
文脈から判断して明らかにそうでないと分かる以外は、用語「備える」、「有する」、及び「含む」は同義である。動画像間/動画像内予測及び変換符号化を使用するという点で、一般的に上記した典型的な「複合型」動画像符号化アプローチにおいて各種実施形態が記載される。
これより、図面にて図示したような発明を実施するための形態が詳細に参照される。実施例が図面及び図面に関する説明に関連して記載される一方、本開示内容の要旨を逸脱しない範囲で、明示的に図示及び/または記載されているか否かを問わず、すべての代替物、変形例、均等物を含み、代替及び/または等価な実施態様が、図を用いて記載される特定の実施例と置換されることができると当業者により認められる。さまざまな別の実施例において、本願明細書にて開示される実施例の範囲を制限せずに、補助装置または図示のデバイスの組合せが、追加または組み合わせられ得る。
[典型的な動画像符号化/復号化システム]
図1は、少なくとも一つの実施例に従う、典型的な動画像符号化/復号化システム100を図示する。
復号化デバイス200(図2にて図示・後述)及び復号化デバイス300(図3にて図示・後述)は、ネットワーク104を介してデータ通信する。
符号化デバイス200は、ストレージ・エリア・ネットワーク(「SAN」)、高速シリアルバス、または他の適切な通信技術といった直接のデータ接続を介してか、またはネットワーク104(図1の破線により示される)を介して、未符号化動画像ソース108とデータ通信し得る。同様に、符号化デバイス300は、記憶領域ネットワーク(「SAN」)、高速シリアルバス、または他の適切な通信技術といった直接のデータ接続を介してか、またはネットワーク104(図1の破線によって示される)を介して、任意の符号化動画像ソース112とデータ通信し得る。
いくつかの実施例において、符号化デバイス200、復号化デバイス300、符号化動画像ソース112及び/または未符号化動画像ソース108は、一つ以上の複製及び/または配信された、物理的または論理的なデバイスを備えることができる。多くの実施例において、図示されるより多くの符号化デバイス200、復号化デバイス300、未符号化動画像ソース108及び/または符号化動画像ソース112があってもよい。
各種実施形態において、符号化デバイス200は通常、ネットワーク104を介して、例えば復号化デバイス300から要求を受け、それに応答できるネットワークに接続されたコンピューターであってもよい。
各種実施形態において、復号化デバイス300は、ネットワークに接続されたフォームファクタを有するコンピューター(例えば携帯電話;腕時計、ハンズアップディスプレイまたは他の着用できるコンピューター;専用のメディアプレーヤ;タブレット型コンピューター;自動車両ヘッドユニット;オーディオビデオオンデマンド(AVOD)システム;専用のメディアコンソール;ゲームデバイス;「セットトップボックス」;デジタルビデオテープレコーダ;テレビ;汎用コンピューター)であってもよい。
各種実施形態において、ネットワーク104は、インターネット、一つ以上のローカルエリアネットワーク(「LAN」)、一つ以上の広域ネットワーク(「WAN」)、セルラーデータネットワーク及び/または他のデータネットワークを含むことができる。ネットワーク104は、さまざまな点で、有線でも無線ネットワークでもよい。
[典型的な符号化デバイス]
図2には、典型的な符号化デバイス200のいくつかのコンポーネントが図示される。いくつかの実施例において、符号化デバイスは、図2に示されるより多くのコンポーネントを含むことができる。しかしながら、実施例を開示するために、これら通常の従来コンポーネント全てを示す必要はない。
図2に示すように典型的な符号化デバイス200は、ネットワーク(例えばネットワーク104)に接続するためのネットワークインターフェース204を含む。典型的な符号化デバイス200はまた、処理ユニット208と、メモリ212と、任意のユーザー入力214(例えば英数字キーボード、キーパッド、マウスまたは他のポインティングデバイス、タッチスクリーン及び/またはマイクロホン)と、任意のディスプレイ216とを含む。そして、全てがバス220を介してネットワークインターフェース204に相互接続される。メモリ212は通常、RAMと、ROMと、大容量永久(不揮発性)記録装置(例えばディスクドライブ、フラッシュメモリ等)とを備える。
典型的な符号化デバイス200のメモリ212は、多くのソフトウェアサービスのためのプログラムコードだけでなく、オペレーティングシステム224も格納する。例えばソフトウエアサービスは、変換ブロック処理ルーチン600(図6を参照し後述)を実行するための指示を備える、ソフトウェア実装のフレーム間ビデオエンコーダー400(図4を参照し後述)である。メモリ212は、音声/視覚のメディア作品(例えば、映画及び/またはテレビエピソード)の符号化されていないコピーを表現することができる動画像データファイル(図示せず)を保存することもできる。
これらの、そしてまた他の、ソフトウェアコンポーネントを、非一時的なコンピューター読み取り可能な記録媒体232(例えばフロッピーディスク、テープ、DVD/CD―ROMドライブ、USBドライブ、メモリーカード等)と連動するドライブメカニズム(図示せず)を用いて、符号化デバイス200のメモリ212へロードすることができる。
運用においてオペレーティングシステム224は、符号化デバイス200のハードウェア及び他のソフトウェアリソースを管理して、そして、ソフトウエア実装のフレーム間ビデオエンコーダー400といった、ソフトウェアアプリケーションに共通のサービスを提供する。
様々なソフトウェアアプリケーション(例えばソフトウエア実装のフレーム間ビデオエンコーダー400)のための、ネットワークインターフェース204を介したネットワーク通信、入力214を介したデータの受信、任意のディスプレイ216を介したデータの出力、及びメモリ212の割り当て等といった、ハードウェア機能のために、オペレーティングシステム224は符号化デバイスで実行されているソフトウェアと、ハードウェアとの間で仲介役として機能する。
いくつかの実施例において符号化デバイス200は、未符号化動画像ソース108と通信を行うための特殊な未符号化ビデオインターフェース236(例えば高速シリアルバス等)を更に備えることができる。いくつかの実施例において、符号化デバイス200は、ネットワークインターフェース204を介して未符号化動画像ソース108と通信することができる。他の実施態様においては、未符号化動画像ソース108を、メモリ212またはコンピューター読み取り可能な記録媒体232に常駐させることができる。
典型的な符号化デバイス200は、従来の汎用コンピューターに通常適合すると記載されているが、符号化デバイス200は、各種実施形態に従って動画像を符号化するための指示を実行することができる多くのデバイスのいずれかでもよい(例えば典型的なソフトウエア実装のビデオエンコーダー400及び変換ブロック処理ルーチン600)。そして例えば、ビデオ録画装置、ビデオ・コプロセッサ及び/またはアクセラレータ、パーソナルコンピューター、ゲーム機、セットトップボックス、携帯またはウェアラブルなコンピューター、スマートフォン、または他のいかなる好適な装置でもよい。
一つの例として、符号化デバイス200をオンデマンドのメディアサービス(図示せず)を促進するために作動させることができる。少なくとも一つの典型的な実施形態において、オンデマンドのメディアサービスは、メディア作品(例えば動画像コンテンツ)のデジタルコピーを作品ごと及び/または購読料ベースでユーザーに提供するオンラインオンデマンドのメディアストアを促進するために、符号化デバイス200を作動させることができる。オンデマンドのメディアサービスは、未符号化動画像ソース108からこの種のメディア作品のデジタルコピーを得ることができる。
[典型的な復号化デバイス]
図3には、典型的な復号化デバイス300のいくつかのコンポーネントが図示される。いくつかの実施例において復号化デバイスは、図3に示されるより多くのコンポーネントを含むことができる。しかしながら、通常これらの従来のコンポーネント全てを、実施例を開示するために示す必要はない。
図3に示すように、典型的な復号化デバイス300は、ネットワーク(例えばネットワーク104)に接続するためのネットワークインターフェース304を含む。典型的な復号化デバイス300はまた、処理ユニット308と、メモリ312と、任意のユーザー入力314(例えば英数字キーボード、キーパッド、マウスまたは他のポインティングデバイス、タッチスクリーン及び/またはマイクロホン)と、任意のディスプレイ316と、任意のスピーカ318とを含む。そして、全てがバス320を介してネットワークインターフェース304に相互接続される。メモリ312は通常、RAMと、ROMと、大容量永久記録装置(例えばディスクドライブ、フラッシュメモリ等)とを備える。
典型的な復号化デバイス300のメモリ312は、多くのソフトウェアサービスのためのプログラムコードだけでなく、オペレーティングシステム324も格納することができる。ソフトウェアサービスは例えば変換ブロック復元ルーチン1000(図10を参照して後述)を実行するための指示を備えたソフトウエア実装の動画像復号化装置500(図5を参照して後述)である。
メモリ312は、例えば映画及び/またはテレビエピソードといった音声/視覚のメディア作品を符号化したコピーといった動画像データファイル(図示せず)を格納することもできる。これらの、そしてまた他の、ソフトウェアコンポーネントは、非一時的なコンピューター読み取り可能な記録媒体332(例えば、フロッピーディスク、テープ、DVD/CDROMドライブ、メモリーカード等)を伴う駆動機構(図示せず)を用いた復号化デバイス300のメモリ312へロードされる。
運用においてオペレーティングシステム324は、復号化デバイス300のハードウェア及び他のソフトウェアリソースを管理して、そして、例えばソフトウエア実装の動画像復号化装置500といった、ソフトウェアアプリケーションのための共通のサービスを提供する。例えばネットワークインターフェース304を介するネットワーク通信、入力314を介したデータの受信、任意のディスプレイ316及び/または任意のスピーカ318を介した出力データの出力、及びメモリ312の割り当て等といった、ハードウェア機能のために、オペレーティングシステム324は、符号化デバイスで実行されるソフトウェアと、ハードウェアとの間で仲介役として動作する。
いくつかの実施例において、例えば符号化動画像ソース116と通信するために、復号化デバイス300は、高速シリアルバス等のような、任意の符号化ビデオインターフェース336を更に備えることができる。いくつかの実施例において復号化デバイス300は、ネットワークインターフェース304を介して符号化動画像ソース(例えば符号化動画像ソース116)と通信することができる。他の実施態様において、符号化動画像ソース116は、メモリ312またはコンピューター読み取り可能な記録媒体332内に常駐させてもよい。
復号化デバイス300の典型例として、従来の汎用コンピューターを示しているが、典型的なソフトウエア実装の動画像復号化装置500及び変換ブロック復元ルーチン1000といった、各種実施形態に従う動画像データを復号化するためのプログラムを実行できる多くのデバイスであれば、いずれのものでもよい。例えば、ビデオ録画装置、ビデオ・コプロセッサ及び/またはアクセラレータ、パーソナルコンピューター、ゲーム機、セットトップボックス、携帯またはウェアラブルなコンピューター、スマートフォンまたはその他のいかなる好適な装置であってもよい。
例えば、復号化デバイス300はオンデマンドのメディアサービスと協同して動作させることができる。少なくとも一つの典型的な実施形態において、オンデマンドのメディアサービスは、復号化デバイス300を操作するユーザーに、作品ごと及び/または購読料ベースでメディア作品(例えば動画像コンテンツ)のデジタルコピーを提供することができる。復号化デバイスは、未符号化動画像ソース108から、例えば、ネットワーク104を介した符号化デバイス200を介して、この種のメディア作品のデジタルコピーを得ることができる。
[ソフトウエア実装のフレーム間ビデオエンコーダー]
図4は、少なくとも一つの実施例に従う残差変換技術を採用するソフトウエア実装のフレーム間ビデオエンコーダー400(以降「符号化装置400」)の一般的な機能ブロック図を示す。表示順にある動画像シーケンスの一つ以上の未符号化ビデオフレーム(vidfrms)を、シーケンサ404に提供することができる。
シーケンサ404は、予測符号化(predictive coding)のピクチャタイプ(例えばI、PまたはB)を各未符号化ビデオフレームに割り当てると共に、動き予測のためフレームシーケンスまたはフレームシーケンス・グループを符号化順に並べ替えることができる(例えばIタイプフレームにPタイプフレームが続き、更にBタイプフレームが続くというように)。並べ替えられた未符号化ビデオフレーム(seqfrms)は、その後ブロックインデクサ408に符号化順に入力されることができる。
各々の並べられた未符号化ビデオフレーム(seqfrms)のためにブロックインデクサ408は、現フレーム(例えば64×64画素)の最大符号化ブロックサイズ(「LCB」)を求めることができ、そして、その未符号化ビデオフレームを符号化ブロック(blks)の配列に分けることができる。与えられたフレームの範囲内の個々の符号化ブロックは、例えば4×4画素から現フレームのLCBサイズまで、サイズが変化し得る。
各符号化ブロックは、それから一つずつ差分器412に入力され、そして、先に符号化された符号化ブロックから生成された、対応する予測信号ブロック(pred)を用いて、各符号化ブロックの差分が算出され得る。符号化ブロック(cblks)は、予測ブロック(pred)を生成するために、動き推定器416にも送られる。
差分器412で差分を算出した後、得られた残差ブロック(res)は変換器420(後述)により、周波数領域表現に順方向変換され得る。そして、変換係数(tcof)のブロックとなる。変換係数(tcof)のブロックはそれから量子化器424に送られ得る。そして、変換係数(tcof)のブロックは、エントロピー符号化器428と局部復号化ループ430と両方に送られることができる量子化係数(qcf)のブロックとなる。
局部復号化ループ430の先頭で、変換係数(tcof´)のブロックは、逆量子化器432により逆量子化され、そして逆量子化された残差ブロック(res´)を生成するために、逆量子化した変換係数(tcof´)のブロックを逆変換器436に渡すことができる。
局部復号ブロック(rec)を生成するために、動き補償予測器442からの予測ブロック(pred)を、加算器440で、逆量子化された残差ブロック(res´)に追加することができる。それから局部復号ブロック(rec)は、フレームアセンブラ及びデブロックフィルタリングプロセッサ444に送られ得る。そして、そこではブロックノイズが低減され、復元フレーム(recd)が組み立てられる。そしてその復元フレーム(recd)は、動き推定器416及び動き補償予測器442のための参照フレームとして使用され得る。
エントロピー符号化器428は、量子化変換係数(qcf)、差分動きベクトル(dmv)、及び他のデータを符号化し、そして、符号化された動画像ビットストリーム448を生成する。符号化された動画像ビットストリーム448は未符号化動画像シーケンスのフレームごとに、符号化動画像データ(例えば、符号化量子化変換係数(qcf)及び差分動きベクトル(dmv))及び、符号化フレームヘッダ(例えば、現フレームのLCBサイズといった構文情報)を含むことができる。
[順方向整数変換手順]
変換器420の機能についていうと、変換器は、各符号化ブロックの輝度値及び色度値のための残差値のブロックを受け取り、残差値のブロックを一つ以上の輝度変換ブロック及び色度変換ブロックに分ける。
少なくとも一つの実施例において、符号化ブロックは、現符号化ブロックサイズならびに、符号化ブロックの動き予測のために使用される予測ブロックのサイズに従いサイズ設定される変換ブロックに分けられる。例えば、変換ブロックサイズは、以下のテーブル1に示される組合せに従い割り当てられることができる。変換器420は、最大変換ブロックサイズフラグを現フレームのピクチャヘッダにセットすることもできる。
[テーブル1]
Figure 2018517317
符号化ブロックが変換ブロックに分割されたあと、変換ブロックの残差値は空間領域から周波数領域へ、例えば順方向DCT変換演算により変換される。少なくとも一つの実施例において、符号化効率を高めるために、変換ブロックの残差値の整数の相当値が求められ、そして、順方向整数DCT変換演算を行うことができる。更に符号化効率を高めるために、動画像符号化プロセスの単一命令多重データ(SIMD)命令アーキテクチャを利用することは、有利であってもよい。
しかし、最も一般的なSIMD命令アーキテクチャの実装には、16ビットのビット幅が必要である。従って少なくとも一つの実施例では、16ビット整数で残差値及び変換係数を表すことができるのを確実にするために、いくつかの順方向変換演算後の残差値に対して、ビットシフト演算を行うことができる(そして、復号化装置側では、いくつかの逆変換演算後の変換係数に対して行うことができる)。
少なくとも一つの実施例において変換器420は、4×4変換ブロックに対して、以下の方程式に従い順方向整数DCT変換演算を行うことができる。
Figure 2018517317
Figure 2018517317
少なくとも一つの実施例において変換器420は、8×8変換ブロックの場合、以下の方程式に従い順方向整数DCT変換演算を行うことができる。
Figure 2018517317
Figure 2018517317
8×8順方向整数DCT変換演算の後、16ビット演算を確実にするために変換器420は、変換係数の値を2ビット右にビットシフトさせることができる。
少なくとも一つの実施例において変換器420は、16×16変換ブロックの場合、以下の方程式に従い順方向整数DCT変換演算を実行することができる。
Figure 2018517317
Figure 2018517317
式中、t,t,t…t14,t15は、以下のテーブル2で定義される。
16×16順方向整数DCT変換演算の後、16ビット演算を確実にするために、変換器420は、変換係数の値を2ビット右にビットシフトさせることができる。
[テーブル2]
Figure 2018517317
符号化ブロック当たりの変換ブロックの数に応じて、各変換ブロックのDC係数に対して付加的な変換演算を行うことにより、更に符号化効率を高めることができるかもしれない。DC係数は例えば上記の順方向整数DCT変換演算の1つに従い、DC整数変換ブロックに集められ、再び変換される。このプロセスは、二重変換と呼ばれている。
[ソフトウエア実装のフレーム間復号化装置]
図5は、少なくとも一つの実施例に従い、対応するソフトウエア実装のフレーム間動画像復号化装置500(以降「復号化装置500」)逆残差変換技術の通常の機能ブロック図を示す。そして、復号化デバイス(例えば復号化デバイス300)での使用に適している。復号化装置500は、符号化装置400での局部復号化ループ455と同じように機能することができる。
具体的には、符号化された動画像ビットストリーム504を、エントロピー復号化装置508に供給することができる。そしてエントロピー復号化装置508は、量子化係数のブロック(qcf)、差分動きベクトル(dmv)、付随的なメッセージデータパケット(msg―データ)、及び他のデータを復号化することができる。それから量子化係数ブロック(qcf)は、逆量子化器512によって逆量子化されることができ、結果、逆量子化係数(tcof´)となる。それから、逆量子化係数(tcof´)は逆変換器516(後述)によって周波数領域から逆変換されることができ、結果、復号化残差ブロック(res´)となる。
加算器520は、対応する動きベクトル(mv)を用いて、得られた、運動補償予測ブロック(pred)を追加することができる。得られた復号化動画像(dv)には、フレームアセンブラ及びデブロックフィルタリングプロセッサ524においてデブロックフィルタをかけられることができる。
フレームアセンブラ及びデブロックフィルタリングプロセッサ528の出力のブロック(recd)は、動画像シーケンスの再構成されたフレームを形成する。そして、それは復号化装置500から出力されることができ、また、次の符号化ブロックを復号化するための動き補償予測器530のための参照フレームとして使用されることもできる。
[逆整数変換手順]
逆変換器516の機能性については、逆変換器は、逆量子化器512から、逆量子化された16ビット整数変換係数のブロックを得る。変換器420(上記)によって行われる順方向整数DCT変換演算を逆にし、残差値を復元させるために、逆変換器516は逆量子化器512から得られる変換係数に対して逆整数DCT変換演算を行う。
現符号化ブロックの変換係数が二重変換された場合、後述のように、逆変換器は逆二重変換手順を行う。DC変換係数が逆変換されて、その対応する変換ブロックに挿入されたあと、逆変換器は、逆整数DCT変換演算の実行に進む。
例えば少なくとも一つの実施例で、4×4変換ブロックに対応する16ビット整数変換係数のブロックでは、逆変換器516は、以下の方程式に従い逆整数DCT変換演算を行うことができる.

Figure 2018517317
Figure 2018517317
4×4逆整数DCT変換演算の後、16ビット演算を確実にするために、逆変換器は、得られた残差値の値を5ビット右にビットシフトさせることができる。
少なくとも一つの実施例において、8×8変換ブロックに対応する16ビット整数変換係数のブロックでは、逆変換器516は、以下の方程式に従い逆整数DCT変換演算を行うことができる。
Figure 2018517317
8×8逆整数DCT変換演算の後、16ビット演算を確実にするために、逆変換器は、得られた残差値の値を7ビット右にビットシフトさせることができる。
少なくとも一つの実施例において、16×16変換ブロックに対応する16ビット整数変換係数のブロックでは、逆変換器516は、以下の方程式に従い逆整数DCT変換演算を行うことができる。
Figure 2018517317
16×16逆整数DCT変換演算の後、16ビット演算を確実にするために、逆変換器は、得られた残差値の値を7ビット右にビットシフトさせることができる。
[変換ブロック処理ルーチン]
図6は、少なくとも一つの実施例(例えば符号化装置400)での使用に適した変換ブロック処理ルーチン600を図示する。当業者が認識するように、符号化プロセスのすべてのイベントが図6に図示されるというわけではない。むしろ明確にするため、例示の実施例を説明するのに合理的に関連するステップだけが示される。
変換ブロック処理ルーチン600は実行ブロック604で、符号化されている現フレームの整数残差値の符号化ブロックを得る。
それから変換ブロック処理ルーチン600は、変換ブロックサイズ選択サブルーチン700(図7を参照し後述)に、現符号化ブロックのサイズと、動き予測で使用される対応する予測ブロックのサイズと、を提供する。そして、現符号化ブロックサイズ及び予測ブロックサイズの現組合せに対する、適切な色度及び輝度の変換ブロックサイズを返す。
それから変換ブロック処理ルーチン600は実行ブロック608で、現符号化ブロックを、変換ブロックサイズ選択サブルーチン700(上記)が返す色度及び輝度変換ブロックサイズに従う、16ビット整数の残差値の一つ以上の変換ブロックに分ける。
現符号化ブロックの各変換ブロックは開始ループブロック612で、順番に処理される。
判断ブロック616において現変換ブロックの各々の残差値がゼロ値を有する場合、変換ブロック処理ルーチン600は実行ブロック620で、対応する変換ブロックパターンフラグを現変換ブロックの変換ブロックヘッダにセットする。
そうでなければ判断ブロック616において、現変換ブロックの残差値の一つ以上がゼロ以外の値を有する場合、変換ブロック処理ルーチン600は順方向整数変換サブルーチン800(図8を参照し後述)を呼び出す。そして、順方向整数変換サブルーチン800は対応ブロックの16ビット整数変換係数を返す。
変換ブロック処理ルーチン600は終了ループブロック624で、現符号化ブロック次の変換ブロックを処理するために(もしあれば)、開始ループブロック612へ戻って繰り返す。
判断ブロック628において現符号化ブロックの変換ブロックが二重変換され得る(例えば、16または64変換ブロックが、現符号化ブロックにある)場合、変換ブロック処理ルーチン600は、現符号化ブロックの変換ブロックのDC整数変換係数に対して付加的な変換演算を行い、16ビット整数変換係数の対応する二重変換されたブロックを返す二重変換サブルーチン900(図9を参照して後述)を呼び出すことができる。
二重変換サブルーチン900が16ビット整数変換係数の二重変換されたブロックを返したあとか、または、判断ブロック628を再度参照して、現符号化ブロックが二重変換ができない場合、変換ブロック処理ルーチン600は、終端ブロック699で現符号化ブロックの終了とする。
[変換ブロックサイズ選択サブルーチン]
図7は、少なくとも一つの実施例(例えば変換ブロック処理ルーチン600)での使用に適した変換ブロックサイズ選択サブルーチン700を図示する。
変換ブロックサイズ判定サブルーチン700は実行ブロック704で、符号化ブロックサイズと、現符号化ブロックの動き予測プロセスで使用される予測ブロックサイズとを得る。
判断ブロック712において現符号化ブロックの符号化ブロックサイズが8×8画素である場合、変換ブロックサイズ判定サブルーチン700は判断ブロック716へ進む。
判断ブロック716において現符号化ブロックの予測ブロックサイズが8×8画素である場合、変換ブロックサイズ判定サブルーチン700は実行ブロック720で、8×8輝度変換係数に対する現符号化ブロックの輝度変換ブロックサイズをセットし、そして実行ブロック724で変換ブロックサイズ判定サブルーチンは4×4色度変換係数に対する現符号化ブロックの色度変換ブロックサイズをセットする。
それから変換ブロックサイズ判定サブルーチンは戻りブロック799で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
判断ブロック716を再度参照する。現符号化ブロックのための予測ブロックサイズが8×8画素でない場合、変換ブロックサイズ判定サブルーチン700は実行ブロック728で、4×4輝度変換係数に対する現符号化ブロックの輝度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチン700は、実行ブロック724へと進む。
上述のように、変換ブロックサイズ判定サブルーチンは実行ブロック724で、4×4色度変換係数に対する現符号化ブロックの色度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチンは戻りブロック799で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
判断ブロック712を再度参照する。現符号化ブロックの符号化ブロックサイズが8×8画素でない場合、変換ブロックサイズ判定サブルーチン700は判断ブロック736へと進む。
判断ブロック736において、現符号化ブロックの符号化ブロックサイズが16×16画素である場合、変換ブロックサイズ判定サブルーチン700は判断ブロック740へ進む。
判断ブロック740において、現符号化ブロックのための予測ブロックサイズが16×16画素である場合、変換ブロックサイズ判定サブルーチン700は実行ブロック744で、16×16輝度変換係数に対する現符号化ブロックの輝度変換ブロックサイズをセットし、それから、実行ブロック748で変換ブロックサイズ判定サブルーチンは、8×8色度変換係数に対する現符号化ブロックの色度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチンは、戻りブロック799で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
判断ブロック740を再度参照する。現符号化ブロックの予測ブロックサイズが16×16画素でない場合、変換ブロックサイズ判定サブルーチン700は、実行ブロック728へ進む。
上述のように、変換ブロックサイズ判定サブルーチン700は実行ブロック728で、4×4輝度変換係数に対する現符号化ブロックの輝度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチン700は、実行ブロック724へ進む。
上述のように、変換ブロックサイズ判定サブルーチンは実行ブロック724で、4×4色度変換係数に対する現符号化ブロックの色度変換ブロックサイズをにセットする。それから、変換ブロックサイズ判定サブルーチンは、戻りブロック799で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
判断ブロック736を再度参照する。現符号化ブロックの符号化ブロックサイズが16×16画素でない場合、変換ブロックサイズ判定サブルーチン700は実行ブロック744へ進む。
上述のように、変換ブロックサイズ判定サブルーチン700は実行ブロック744で、16×16輝度変換係数に対する現符号化ブロックの輝度変換ブロックサイズをセットし、それから、実行ブロック748で、変換ブロックサイズ判定サブルーチンは、8×8色度変換係数に対する現符号化ブロックの色度変換ブロックサイズをセットする。それから変換ブロックサイズ判定サブルーチンは、戻りブロック799で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
[順方向整数変換サブルーチン]
図8は、図9を参照して後述するが、少なくとも一つの実施例(例えば変換ブロック処理ルーチン600または二重変換サブルーチン900)での使用に適した順方向整数変換サブルーチン800を図示する。
順方向整数変換サブルーチンは実行ブロック804で、例えば変換ブロック処理ルーチン600から変換ブロックを得る。
判断ブロック808において、現変換ブロックが整数変換係数の4×4ブロックである場合、順方向整数変換サブルーチン800は実行ブロック812で、4×4順方向変換(例えば上記の4×4順方向整数変換演算)を行う。それから順方向整数変換サブルーチン800は、戻りブロック899で4×4整数変換で得た変換係数を返す。
判断ブロック808を再度参照する。現変換ブロックが整数変換係数の4×4ブロックでない(例えば整数変換係数の8×8、16×16、32×32または64×64ブロックである)場合、順方向整数変換サブルーチン800は判断ブロック816へ進む。
判断ブロック816において、現変換ブロックが整数変換係数の8×8ブロックである場合、順方向整数変換サブルーチン800は実行ブロック820で、8×8順方向変換(例えば上記の8×8順方向整数変換演算)を行う。順方向整数変換サブルーチン800は実行ブロック824で、実行ブロック820で8×8整数変換を介して得られた変換係数を処理し、変換係数が16ビット以下となることを確実にするために変換係数を右に二回ビットシフトさせる。順方向整数変換サブルーチン800は、戻りブロック899でビットシフトさせられた変換係数を返す。
判断ブロック816を再度参照する。現変換ブロックが8×8ブロックの整数変換係数でない場合(例えば、16×16、32×32または64×64ブロックの整数変換係数である場合)、順方向整数変換サブルーチン800は判断ブロック826へ進む。
判断ブロック826において、現変換ブロックが16×16ブロックの整数変換係数である場合、順方向整数変換サブルーチン800は実行ブロック828で、16×16順方向変換(例えば上記の16×16順方向整数変換演算)を行う。それから順方向整数変換サブルーチン800は、実行ブロック824へ進む。
上述のように、順方向整数変換サブルーチン800は実行ブロック824で、実行ブロック820で8×8整数変換を介して得られた変換係数を処理し、変換係数が16ビット以下となることを確実にするために変換係数を右に二回ビットシフトさせる。順方向整数変換サブルーチン800は、戻りブロック899でビットシフトさせられた変換係数を返す。
判断ブロック826を再度参照する。現変換ブロックが16×16ブロックの整数変換係数より大きい(例えば32×32または64×64ブロックの整数変換係数である)場合、順方向整数変換サブルーチン800は実行ブロック832で、大きな変換手順を行う。順方向整数変換サブルーチン800は、戻りブロック899で大きな整数変換手順の結果を戻す。
[二重変換サブルーチン]
図9は、少なくとも一つの実施例(例えば変換ブロック処理ルーチン600)で使用するのに適した二重変換サブルーチン900を図示する。
二重変換サブルーチン900は実行ブロック904で、現符号化ブロックのための中間整数変換係数の変換ブロックを得る。
二重変換サブルーチン900は実行ブロック908で、中間の整数変換係数の各ブロックから中間のDC係数を抽出する。
二重変換サブルーチン900は実行ブロック912で、中間のDC係数の変換ブロックを生成する。
それから二重変換サブルーチン900は、順方向変換サブルーチン800に中間のDC係数を渡し、そして、順方向変換サブルーチン800は、(たった今、二重変換された)ブロックの16ビット整数変換係数を返す。
二重変換サブルーチン900は、戻りブロック999で、二重変換された変換ブロックを返す。
[変換ブロック復元ルーチン]
図10は、少なくとも一つの実施例(例えば復号化装置500)で使用するのに適した変換ブロック復元ルーチン1000を図示する。
当業者によって認識されるように、復号プロセスのすべてのイベントが図10に図示されるというわけではない。
むしろ明確にするため、変換ブロック復元ルーチン1000を説明するのに、合理的に関連するステップだけが示される。
変換ブロック復元ルーチン1000は実行ブロック1004で、例えば逆量子化器512から、逆量子化された変換係数のブロックを得る。
変換ブロック復元ルーチン1000は実行ブロック1005で、現符号化ブロックのサイズを求める。
変換ブロック復元ルーチン1000は実行ブロック1006で、現符号化ブロックのための、動き予測用の予測ブロックのサイズを求める。
変換ブロック復元ルーチン1000は実行ブロック1007で、現符号化ブロックサイズと、現符号化ブロックの動き予測用の予測ブロックのサイズと、の対応する組合せの予測ブロックのサイズを検索する。
変換ブロック復元ルーチン1000はそれから実行ブロック1008で、実行ブロック1007(上記)で得た変換ブロックサイズに従い、逆量子化された変換係数を組み立て、16ビット整数変換係数の一つ以上の変換ブロックとする。
判断ブロック1028において、現符号化ブロックの変換ブロックが二重変換されていない場合、変換ブロック復元ルーチン1000は開始ループブロック1032へ進む(後述)。
現符号化ブロックの変換ブロックが二重変換されている(例えば16ビット整数DC変換係数の二重変換されたブロックを含む)場合、変換ブロック復元ルーチン1000は、逆整数変換サブルーチン1100(図11を参照して後述)を呼び出す。そして逆整数変換サブルーチン1100は、現符号化ブロックの変換ブロックの16ビット整数変換係数の二重変換されたブロックに対して最初の逆変換演算を行い、中間の16ビット整数DC変換係数の対応するブロックを返す
変換ブロック復元ルーチン1000は実行ブロック1030で、適切な16ビット整数DC変換係数を16ビット整数変換係数の対応ブロックに挿入して、開始ループブロック1032へ進む(後述)。
開始ループブロック1032を開始し、変換ブロック復元ルーチン1000は、順番に16ビット整数変換係数の各変換ブロックを処理する。
判断ブロック1036で、対応する変換ブロックのための変換ブロックパターンフラグが変換ブロックヘッダにセットされる場合、変換ブロック復元ルーチン1000は終了ループブロック1040で、現符号化ブロックの16ビット整数変換係数の次のブロック(あれば)を処理するために、開始ループブロック1032に戻り繰り返す。
判断ブロック1036で、対応する変換ブロックのための変換ブロックパターンフラグが変換ブロックヘッダにセットされない場合、変換ブロック復元ルーチン1000は、復元された残差値のブロックを返す逆変換サブルーチン1100(図11を参照し後述)を呼び出す。
変換ブロック復元ルーチン1000は終了ループブロック1040で、現符号化ブロックの次の変換ブロック(あれば)を処理するために、開始ループブロック1032に戻り、繰り返す
変換ブロック復元ルーチン1000は、終端ブロック1099で終了する。
[逆整数変換サブルーチン]
図11は、少なくとも一つの実施例(例えば変換ブロック復元ルーチン1000)で使用するのに適した逆整数変換サブルーチン1100を図示する。
逆整数変換サブルーチン1100は実行ブロック1104で、例えば変換ブロック復元ルーチン1000から、変換ブロックを得る。
判断ブロック1108において、変換ブロックが4×4変換ブロックである場合、逆整数変換サブルーチン1100は実行ブロック1110で、4×4逆整数変換(例えば上記の4×4逆整数変換)を実行する。逆整数変換サブルーチン1100は実行ブロック1112で、得られた整数変換係数を5ビット右にビットシフトさせる。
逆整数変換サブルーチン1100は、戻りブロック1199でビットシフトされた整数変換係数を返す。
判断ブロック1108を再度参照する。変換ブロックが4×4変換ブロックでない場合、逆整数変換サブルーチン1100は判断ブロック1116へ進む。
判断ブロック1116において、変換ブロックが8×8変換ブロックである場合、逆整数変換サブルーチン1100は実行ブロック1118で、8×8逆整数変換(例えば上記の8×8逆の整数変換)を実行する。逆整数変換サブルーチン1100は実行ブロック1120で、得られた整数変換係数を7ビット右にビットシフトさせる。
逆整数変換サブルーチン1100は、戻りブロック1199でビットシフトさせられた整数変換係数を返す。
判断ブロック1116を再度参照する。変換ブロックが8×8変換ブロックでない場合、逆整数変換サブルーチン1100は判断ブロック1126へ進む。
判断ブロック1126で、変換ブロックが16×16変換ブロックである場合、逆整数変換サブルーチン1100は実行ブロック1127で、16×16逆整数変換(例えば上記の16×16逆整数変換)を実行する。逆整数変換サブルーチン1100は実行ブロック1128で、得られた整数変換係数を7ビット右にビットシフトさせる。
逆整数変換サブルーチン1100は、戻りブロック1199でビットシフトさせられた整数変換係数を返す。
判断ブロック1126を再度参照する。変換ブロックが16×16変換ブロック(例えば32×32または64×64変換ブロック)より大きい場合、逆整数変換サブルーチン1100は実行ブロック1132で、大きな逆変換手順を実行する。
戻りブロック1199で、逆整数変換サブルーチン1100は、大きな整数変換手順の結果を戻す。
特定の実施例が図示され、本願明細書において記載されたが、当業者によって、本開示内容の要旨を逸脱しない範囲で、図を用いて記載される特定実施例は、別の及び/または等価な実施態様と置換されることができると認められる。本出願は、本願明細書において記載される実施例のいずれの改作または変形例も含めむことを意図する。
本発明は、動画像データ信号の符号化及び復号化に関し、より詳しくは、劣化を補償する、コードブックを利用したアダプティブフィルタによる符号化及び復号化に関する。
デジタル画像、音声/オーディオ、グラフィクス、及びビデオ(動画像)等のデジタルマルチメディアの登場により、コンテンツの信頼性の高い格納、通信(communication)、送信(transmission)、検索及びアクセスが比較的容易にできるようになったので、様々なアプリケーションの性能が顕著に向上し、また、新しいアプリケーションが作成された。
一般的に、デジタルマルチメディアのアプリケーションは数多くあり、娯楽、情報、医学、及びセキュリティを含む幅広い分野を網羅しており、数多くの方法で社会に貢献している。
カメラやマイクロホンのようなセンサにより取得されるマルチメディアはアナログである場合も多く、パルス符号変調(PCM)方式によるデジタル化プロセスによりデジタル化される。しかし、デジタル化の直後のデータ量は、スピーカ及び/またはTVディスプレイで必要となるアナログ表示を再形成するために必要であるので、非常に大きくなる。したがって、大容量のデジタルマルチメディアコンテンツを効率を良く通信、蓄積(格納)、または送信するためには、生のPCM形式から圧縮された表現形式に変換する必要がある。このように、マルチメディア(コンテンツ)の圧縮のために数多くの技術が発明されてきた。
近年、動画像データの圧縮技術は、圧縮されていないデジタル動画像に匹敵するほどの高い心理視覚品質(psycho−visual quality)を維持しつつ、多くの場合は高い圧縮率(10〜100)を達成するほど極めて高性能となっている。
数多くの標準機関による動画像符号化規格(例えばMPEG―1、MPEG―2、H.263、MPEG−4 part2、MPEG―4 AVC/H.264、MPEG―4 SVC及びMVC)、産業界主導のデファクト・スタンダード(例えばWindows Media Video、RealVideo、On2 VP等)に代表されるように、動画像圧縮技術において今日まで驚異的な進歩が見られるが、さらに高品質な、より高い解像度の、今では三次元(立体)の動画像をいつでもどこでも見たいという、さらに高まる消費者の欲求により、幅広いクライアント・デバイス(PC/ラップトップ、TV、セットトップボックス、ゲームコンソール、携帯メディアプレーヤ/デバイス、スマートフォン及びウェアラブルなコンピューター等)に、DVD/BDを介して、あるいは無線放送、ケーブル/衛星、有線及びモバイルネットワークを通じて等、さまざまな手段により動画像を配信する必要があり、さらに高いレベルの動画像圧縮が求められている。
このことは、標準化団体による規格において、ISO MPEGによる、High Efficiency Video Coding(HEVC)の近年始まった取り組みからも明らかであり、そして、ITU−T規格委員会によるH.265の動画像圧縮に対する長年の調査研究の技術をベースに新たな技術が組み合わせられることが期待されている。
上述した規格は全て、動画像のフレーム間の動きを補償することにより時間的冗長性を削減する、一般的なフレーム間予測符号化の枠組みを採用する。基礎概念は、ブロックマッチング法を用いて隣接した動画像間の時間的依存を取り除くことである。
符号化プロセスの開始時に、未符号化動画像シーケンスで各フレームは、3つのカテゴリ(Iタイプフレーム、Pタイプフレーム、Bタイプフレーム)のうちの1つに分類される。Iタイプフレームはイントラコード化される。すなわち、動画像の符号化のためにフレームそのものからの情報だけを用い、フレーム間動き補償技術は使用されない(フレーム内動き補償技術を適用できるにもかかわらず)。
その他、2つのタイプのフレーム(Pタイプ及びBタイプ)は、フレーム間の動き補償技術を使用して符号化される。PフレームピクチャとBフレームピクチャの違いは、動き補償のために使用する参照動画像の時間的方向である。Pフレームピクチャは過去の動画像(表示順序)からの情報を利用するが、Bフレームピクチャは過去及び未来両方の動画像(表示順序)からの情報を利用することができる。
フレーム予測タイプがPタイプ及びBタイプの場合、各フレームは各画素の輝度成分と色度成分の係数により表現される画素ブロックに分けられ、ブロックごとに一つ以上の動きベクトルが得られる。(なぜなら、Bフレームピクチャは、未来と過去の符号化フレーム両方からの情報を利用することができるので、2つの動きベクトルがそれぞれのブロックごとに符号化できるからである。)
動きベクトル(MV)は、現ブロックの位置から、もう一方の過去に符号化されたフレーム(表示順序においての過去または未来のフレームでもよい)の類似のブロックの位置までの空間変位を表す。そしてそれぞれ、参照ブロック及び参照フレームと呼ばれる。参照ブロックと現ブロックとの差が求められ(もしあれば)、そしてそこから残差(「残差信号」とも呼ばれる)が得られる。従って、ブロックの全コンテンツではなく、残差及び動きベクトルだけを、インター符号化フレームのブロックごとに符号化することが必要とされる。動画像シーケンスのフレーム間のこの種の時間的冗長性を取り除くことにより、動画像シーケンスを圧縮することができる。
動画像データを更に圧縮するために、フレーム間予測またはフレーム内予測技術を適用した後、残差信号の係数は大抵の場合は空間領域から周波数領域へ変換される(例えば離散型コサイン変換(「DCT」)または離散サイン変換(「DST」)を使用して)。普通の動画像(人間が認識できる通常の動画像シーケンスを構成するタイプの動画像)では、常に高周波成分より低周波成分の方が強い。
従って、残差信号のエネルギー圧縮は、空間領域でするよりも周波数領域でする方が効率がよい。順方向変換の後、係数及び動きベクトルは、パケット化の前、または、例えばインターネットのようなネットワークを介した伝送のための処理前に、量子化及びエントロピー符号化され得る。
復号化装置側では、空間残差信号を復元させるために逆量子化及び逆変換が適用される。これらは、多くの動画像圧縮規格において、典型的な変換/量子化プロセスである。それから、最初の未符号化動画像シーケンスの再形成されたバージョンを生成するために、逆予測処理を行うことができる。
従前の規格では、符号化で使用されるブロックは、通常16×16画素であった(多くの動画像符号化規格においてマクロブロックと呼ばれる)。しかし、これらの規格の開発により、フレームサイズは更に大きくなり、そして多くのデバイスに、「高解像度」(または「HD」)フレームサイズ(例えば2048×1530画素)より高度な高解像度で表示する機能が備わった。
このように、これらのフレームサイズ(例えば64×64画素)のための動きベクトルを効率的に符号化するために、より大きいブロックを有することは望ましいと言える。空間領域から周波数領域へ変換される残差信号のブロックのサイズを増大させることも望ましいこととなる。
一実施例に従う、典型的な動画像符号化/復号化システムを図示する。 一実施例に従う、典型的な符号化デバイスのいくつかのコンポーネントを図示する。 一実施例に従う、典型的な復号化デバイスのいくつかのコンポーネントを図示する。 少なくとも一つの実施例に従う、典型的なビデオエンコーダーのブロック図を図示する 少なくとも一つの実施例に従う、典型的な動画像復号化装置のブロック図を図示する。 少なくとも一つの実施例に従う、変換ブロック処理ルーチンを図示する。 少なくとも一つの実施例に従う、変換ブロックサイズ選択サブルーチンを図示する。 少なくとも一つの実施例に従う、順方向整数変換サブルーチンを図示する。 少なくとも一つの実施例に従う、二重変換サブルーチンを図示する。 少なくとも一つの実施例に従う、変換ブロック復元ルーチンを図示する。 少なくとも一つの実施例に従う、逆整数変換サブルーチンを図示する。
続く詳細な説明は、主に、プロセッサと、プロセッサ用のメモリ記憶デバイスと、被接続ディスプレイ装置と、入力装置とを含む従来のコンピューター・コンポーネントによるプロセスと演算の記号表現とにより表現される。さらにまた、これらのプロセス及び演算では、リモート・ファイルサーバーと、サーバーコンピューターと、メモリ記憶デバイスとを含む、異機種分散コンピューター環境において従来のコンピューター構成要素を利用することができる。これらの従来の各分散コンピューター構成要素は、ネットワークを介してプロセッサにアクセス可能である。
フレーズ「一実施例において」、「少なくとも一つの実施例において」、「各種実施形態において」、「いくつかの実施例において」等が、繰り返し本願明細書において使用され得る。この種のフレーズは同じ実施例を必ず示すというわけではない。
文脈から判断して明らかにそうでないと分かる以外は、用語「備える」、「有する」、及び「含む」は同義である。動画像間/動画像内予測及び変換符号化を使用するという点で、一般的に上記した典型的な「複合型」動画像符号化アプローチにおいて各種実施形態が記載される。
これより、図面にて図示したような発明を実施するための形態が詳細に参照される。実施例が図面及び図面に関する説明に関連して記載される一方、本開示内容の要旨を逸脱しない範囲で、明示的に図示及び/または記載されているか否かを問わず、すべての代替物、変形例、均等物を含み、代替及び/または等価な実施態様が、図を用いて記載される特定の実施例と置換されることができると当業者により認められる。さまざまな別の実施例において、本願明細書にて開示される実施例の範囲を制限せずに、補助装置または図示のデバイスの組合せが、追加または組み合わせられ得る。
[典型的な動画像符号化/復号化システム]
図1は、少なくとも一つの実施例に従う、典型的な動画像符号化/復号化システム100を図示する。
符号化デバイス200(図2にて図示・後述)及び復号化デバイス300(図3にて図示・後述)は、ネットワーク104を介してデータ通信する。
号化デバイス200は、ストレージ・エリア・ネットワーク(「SAN」)、高速シリアルバス、または他の適切な通信技術といった直接のデータ接続を介してか、またはネットワーク104(図1の破線により示される)を介して、未符号化動画像ソース108とデータ通信し得る。同様に、号化デバイス300は、記憶領域ネットワーク(「SAN」)、高速シリアルバス、または他の適切な通信技術といった直接のデータ接続を介してか、またはネットワーク104(図1の破線によって示される)を介して、任意の符号化動画像ソース112とデータ通信し得る。
いくつかの実施例において、符号化デバイス200、復号化デバイス300、符号化動画像ソース112及び/または未符号化動画像ソース108は、一つ以上の複製及び/または配信された、物理的または論理的なデバイスを備えることができる。多くの実施例において、図示されるより多くの符号化デバイス200、復号化デバイス300、未符号化動画像ソース108及び/または符号化動画像ソース112があってもよい。
各種実施形態において、符号化デバイス200は通常、ネットワーク104を介して、例えば復号化デバイス300から要求を受け、それに応答できるネットワークに接続されたコンピューターであってもよい。
各種実施形態において、復号化デバイス300は、ネットワークに接続されたフォームファクタを有するコンピューター(例えば携帯電話;腕時計、ハンズアップディスプレイまたは他の着用できるコンピューター;専用のメディアプレーヤ;タブレット型コンピューター;自動車両ヘッドユニット;オーディオビデオオンデマンド(AVOD)システム;専用のメディアコンソール;ゲームデバイス;「セットトップボックス」;デジタルビデオテープレコーダ;テレビ;汎用コンピューター)であってもよい。
各種実施形態において、ネットワーク104は、インターネット、一つ以上のローカルエリアネットワーク(「LAN」)、一つ以上の広域ネットワーク(「WAN」)、セルラーデータネットワーク及び/または他のデータネットワークを含むことができる。ネットワーク104は、さまざまな点で、有線でも無線ネットワークでもよい。
[典型的な符号化デバイス]
図2には、典型的な符号化デバイス200のいくつかのコンポーネントが図示される。いくつかの実施例において、符号化デバイスは、図2に示されるより多くのコンポーネントを含むことができる。しかしながら、実施例を開示するために、これら通常の従来コンポーネント全てを示す必要はない。
図2に示すように典型的な符号化デバイス200は、ネットワーク(例えばネットワーク104)に接続するためのネットワークインターフェース204を含む。典型的な符号化デバイス200はまた、処理ユニット208と、メモリ212と、任意のユーザー入力214(例えば英数字キーボード、キーパッド、マウスまたは他のポインティングデバイス、タッチスクリーン及び/またはマイクロホン)と、任意のディスプレイ216とを含む。そして、全てがバス220を介してネットワークインターフェース204に相互接続される。メモリ212は通常、RAMと、ROMと、大容量永久(不揮発性)記録装置(例えばディスクドライブ、フラッシュメモリ等)とを備える。
典型的な符号化デバイス200のメモリ212は、多くのソフトウェアサービスのためのプログラムコードだけでなく、オペレーティングシステム224も格納する。例えばソフトウエアサービスは、変換ブロック処理ルーチン600(図6を参照し後述)を実行するための指示を備える、ソフトウェア実装のフレーム間ビデオエンコーダー400(図4を参照し後述)である。メモリ212は、音声/視覚のメディア作品(例えば、映画及び/またはテレビエピソード)の符号化されていないコピーを表現することができる動画像データファイル(図示せず)を保存することもできる。
これらの、そしてまた他の、ソフトウェアコンポーネントを、非一時的なコンピューター読み取り可能な記録媒体232(例えばフロッピーディスク、テープ、DVD/CD―ROMドライブ、USBドライブ、メモリーカード等)と連動するドライブメカニズム(図示せず)を用いて、符号化デバイス200のメモリ212へロードすることができる。
運用においてオペレーティングシステム224は、符号化デバイス200のハードウェア及び他のソフトウェアリソースを管理して、そして、ソフトウエア実装のフレーム間ビデオエンコーダー400といった、ソフトウェアアプリケーションに共通のサービスを提供する。
様々なソフトウェアアプリケーション(例えばソフトウエア実装のフレーム間ビデオエンコーダー400)のための、ネットワークインターフェース204を介したネットワーク通信、入力214を介したデータの受信、任意のディスプレイ216を介したデータの出力、及びメモリ212の割り当て等といった、ハードウェア機能のために、オペレーティングシステム224は符号化デバイスで実行されているソフトウェアと、ハードウェアとの間で仲介役として機能する。
いくつかの実施例において符号化デバイス200は、未符号化動画像ソース108と通信を行うための特殊な未符号化ビデオインターフェース236(例えば高速シリアルバス等)を更に備えることができる。いくつかの実施例において、符号化デバイス200は、ネットワークインターフェース204を介して未符号化動画像ソース108と通信することができる。他の実施態様においては、未符号化動画像ソース108を、メモリ212またはコンピューター読み取り可能な記録媒体232に常駐させることができる。
典型的な符号化デバイス200は、従来の汎用コンピューターに通常適合すると記載されているが、符号化デバイス200は、各種実施形態に従って動画像を符号化するための指示を実行することができる多くのデバイスのいずれかでもよい(例えば典型的なソフトウエア実装のビデオエンコーダー400及び変換ブロック処理ルーチン600)。そして例えば、ビデオ録画装置、ビデオ・コプロセッサ及び/またはアクセラレータ、パーソナルコンピューター、ゲーム機、セットトップボックス、携帯またはウェアラブルなコンピューター、スマートフォン、または他のいかなる好適な装置でもよい。
一つの例として、符号化デバイス200をオンデマンドのメディアサービス(図示せず)を促進するために作動させることができる。少なくとも一つの典型的な実施形態において、オンデマンドのメディアサービスは、メディア作品(例えば動画像コンテンツ)のデジタルコピーを作品ごと及び/または購読料ベースでユーザーに提供するオンラインオンデマンドのメディアストアを促進するために、符号化デバイス200を作動させることができる。オンデマンドのメディアサービスは、未符号化動画像ソース108からこの種のメディア作品のデジタルコピーを得ることができる。
[典型的な復号化デバイス]
図3には、典型的な復号化デバイス300のいくつかのコンポーネントが図示される。いくつかの実施例において復号化デバイスは、図3に示されるより多くのコンポーネントを含むことができる。しかしながら、通常これらの従来のコンポーネント全てを、実施例を開示するために示す必要はない。
図3に示すように、典型的な復号化デバイス300は、ネットワーク(例えばネットワーク104)に接続するためのネットワークインターフェース304を含む。典型的な復号化デバイス300はまた、処理ユニット308と、メモリ312と、任意のユーザー入力314(例えば英数字キーボード、キーパッド、マウスまたは他のポインティングデバイス、タッチスクリーン及び/またはマイクロホン)と、任意のディスプレイ316と、任意のスピーカ318とを含む。そして、全てがバス320を介してネットワークインターフェース304に相互接続される。メモリ312は通常、RAMと、ROMと、大容量永久記録装置(例えばディスクドライブ、フラッシュメモリ等)とを備える。
典型的な復号化デバイス300のメモリ312は、多くのソフトウェアサービスのためのプログラムコードだけでなく、オペレーティングシステム324も格納することができる。ソフトウェアサービスは例えば変換ブロック復元ルーチン1000(図10を参照して後述)を実行するための指示を備えたソフトウエア実装の動画像復号化装置500(図5を参照して後述)である。
メモリ312は、例えば映画及び/またはテレビエピソードといった音声/視覚のメディア作品を符号化したコピーといった動画像データファイル(図示せず)を格納することもできる。これらの、そしてまた他の、ソフトウェアコンポーネントは、非一時的なコンピューター読み取り可能な記録媒体332(例えば、フロッピーディスク、テープ、DVD/CDROMドライブ、メモリーカード等)を伴う駆動機構(図示せず)を用いた復号化デバイス300のメモリ312へロードされる。
運用においてオペレーティングシステム324は、復号化デバイス300のハードウェア及び他のソフトウェアリソースを管理して、そして、例えばソフトウエア実装の動画像復号化装置500といった、ソフトウェアアプリケーションのための共通のサービスを提供する。例えばネットワークインターフェース304を介するネットワーク通信、入力314を介したデータの受信、任意のディスプレイ316及び/または任意のスピーカ318を介した出力データの出力、及びメモリ312の割り当て等といった、ハードウェア機能のために、オペレーティングシステム324は、符号化デバイスで実行されるソフトウェアと、ハードウェアとの間で仲介役として動作する。
いくつかの実施例において、例えば符号化動画像ソース11と通信するために、復号化デバイス300は、高速シリアルバス等のような、任意の符号化ビデオインターフェース336を更に備えることができる。いくつかの実施例において復号化デバイス300は、ネットワークインターフェース304を介して符号化動画像ソース(例えば符号化動画像ソース11)と通信することができる。他の実施態様において、符号化動画像ソース11は、メモリ312またはコンピューター読み取り可能な記録媒体332内に常駐させてもよい。
復号化デバイス300の典型例として、従来の汎用コンピューターを示しているが、典型的なソフトウエア実装の動画像復号化装置500及び変換ブロック復元ルーチン00といった、各種実施形態に従う動画像データを復号化するためのプログラムを実行できる多くのデバイスであれば、いずれのものでもよい。例えば、ビデオ録画装置、ビデオ・コプロセッサ及び/またはアクセラレータ、パーソナルコンピューター、ゲーム機、セットトップボックス、携帯またはウェアラブルなコンピューター、スマートフォンまたはその他のいかなる好適な装置であってもよい。
例えば、復号化デバイス300はオンデマンドのメディアサービスと協同して動作させることができる。少なくとも一つの典型的な実施形態において、オンデマンドのメディアサービスは、復号化デバイス300を操作するユーザーに、作品ごと及び/または購読料ベースでメディア作品(例えば動画像コンテンツ)のデジタルコピーを提供することができる。復号化デバイスは、未符号化動画像ソース108から、例えば、ネットワーク104を介した符号化デバイス200を介して、この種のメディア作品のデジタルコピーを得ることができる。
[ソフトウエア実装のフレーム間ビデオエンコーダー]
図4は、少なくとも一つの実施例に従う残差変換技術を採用するソフトウエア実装のフレーム間ビデオエンコーダー400(以降「符号化装置400」)の一般的な機能ブロック図を示す。表示順にある動画像シーケンスの一つ以上の未符号化ビデオフレーム(vidfrms)を、シーケンサ404に提供することができる。
シーケンサ404は、予測符号化(predictive coding)のピクチャタイプ(例えばI、PまたはB)を各未符号化ビデオフレームに割り当てると共に、動き予測のためフレームシーケンスまたはフレームシーケンス・グループを符号化順に並べ替えることができる(例えばIタイプフレームにPタイプフレームが続き、更にBタイプフレームが続くというように)。並べ替えられた未符号化ビデオフレーム(seqfrms)は、その後ブロックインデクサ408に符号化順に入力されることができる。
各々の並べられた未符号化ビデオフレーム(seqfrms)のためにブロックインデクサ408は、現フレーム(例えば64×64画素)の最大符号化ブロックサイズ(「LCB」)を求めることができ、そして、その未符号化ビデオフレームを符号化ブロック(blks)の配列に分けることができる。与えられたフレームの範囲内の個々の符号化ブロックは、例えば4×4画素から現フレームのLCBサイズまで、サイズが変化し得る。
各符号化ブロックは、それから一つずつ差分器412に入力され、そして、先に符号化された符号化ブロックから生成された、対応する予測信号ブロック(pred)を用いて、各符号化ブロックの差分が算出され得る。符号化ブロック(cblks)は、予測ブロック(pred)を生成するために、動き推定器416にも送られる。
差分器412で差分を算出した後、得られた残差ブロック(res)は変換器420(後述)により、周波数領域表現に順方向変換され得る。そして、変換係数(tcof)のブロックとなる。変換係数(tcof)のブロックはそれから量子化器424に送られ得る。そして、変換係数(tcof)のブロックは、エントロピー符号化器428と局部復号化ループ430と両方に送られることができる量子化係数(qcf)のブロックとなる。
局部復号化ループ430の先頭で、変換係数(tcof´)のブロックは、逆量子化器432により逆量子化され、そして逆量子化された残差ブロック(res´)を生成するために、逆量子化した変換係数(tcof´)のブロックを逆変換器436に渡すことができる。
局部復号ブロック(rec)を生成するために、動き補償予測器442からの予測ブロック(pred)を、加算器440で、逆量子化された残差ブロック(res´)に追加することができる。それから局部復号ブロック(rec)は、フレームアセンブラ及びデブロックフィルタリングプロセッサ444に送られ得る。そして、そこではブロックノイズが低減され、復元フレーム(recd)が組み立てられる。そしてその復元フレーム(recd)は、動き推定器416及び動き補償予測器442のための参照フレームとして使用され得る。
エントロピー符号化器428は、量子化変換係数(qcf)、差分動きベクトル(dmv)、及び他のデータを符号化し、そして、符号化された動画像ビットストリーム448を生成する。符号化された動画像ビットストリーム448は未符号化動画像シーケンスのフレームごとに、符号化動画像データ(例えば、符号化量子化変換係数(qcf)及び差分動きベクトル(dmv))及び、符号化フレームヘッダ(例えば、現フレームのLCBサイズといった構文情報)を含むことができる。
[順方向整数変換手順]
変換器420の機能についていうと、変換器は、各符号化ブロックの輝度値及び色度値のための残差値のブロックを受け取り、残差値のブロックを一つ以上の輝度変換ブロック及び色度変換ブロックに分ける。
少なくとも一つの実施例において、符号化ブロックは、現符号化ブロックサイズならびに、符号化ブロックの動き予測のために使用される予測ブロックのサイズに従いサイズ設定される変換ブロックに分けられる。例えば、変換ブロックサイズは、以下のテーブル1に示される組合せに従い割り当てられることができる。変換器420は、最大変換ブロックサイズフラグを現フレームのピクチャヘッダにセットすることもできる。
[テーブル1]
Figure 2018517317
符号化ブロックが変換ブロックに分割されたあと、変換ブロックの残差値は空間領域から周波数領域へ、例えば順方向DCT変換演算により変換される。少なくとも一つの実施例において、符号化効率を高めるために、変換ブロックの残差値の整数の相当値が求められ、そして、順方向整数DCT変換演算を行うことができる。更に符号化効率を高めるために、動画像符号化プロセスの単一命令多重データ(SIMD)命令アーキテクチャを利用することは、有利であってもよい。
しかし、最も一般的なSIMD命令アーキテクチャの実装には、16ビットのビット幅が必要である。従って少なくとも一つの実施例では、16ビット整数で残差値及び変換係数を表すことができるのを確実にするために、いくつかの順方向変換演算後の残差値に対して、ビットシフト演算を行うことができる(そして、復号化装置側では、いくつかの逆変換演算後の変換係数に対して行うことができる)。
少なくとも一つの実施例において変換器420は、4×4変換ブロックに対して、以下の方程式に従い順方向整数DCT変換演算を行うことができる。
Figure 2018517317
Figure 2018517317
少なくとも一つの実施例において変換器420は、8×8変換ブロックの場合、以下の方程式に従い順方向整数DCT変換演算を行うことができる。
Figure 2018517317
Figure 2018517317
8×8順方向整数DCT変換演算の後、16ビット演算を確実にするために変換器420は、変換係数の値を2ビット右にビットシフトさせることができる。
少なくとも一つの実施例において変換器420は、16×16変換ブロックの場合、以下の方程式に従い順方向整数DCT変換演算を実行することができる。
Figure 2018517317
Figure 2018517317
式中、t,t,t…t14,t15は、以下のテーブル2で定義される。
16×16順方向整数DCT変換演算の後、16ビット演算を確実にするために、変換器420は、変換係数の値を2ビット右にビットシフトさせることができる。
[テーブル2]
Figure 2018517317
符号化ブロック当たりの変換ブロックの数に応じて、各変換ブロックのDC係数に対して付加的な変換演算を行うことにより、更に符号化効率を高めることができるかもしれない。DC係数は例えば上記の順方向整数DCT変換演算の1つに従い、DC整数変換ブロックに集められ、再び変換される。このプロセスは、二重変換と呼ばれている。
[ソフトウエア実装のフレーム間復号化装置]
図5は、少なくとも一つの実施例に従い、対応するソフトウエア実装のフレーム間動画像復号化装置500(以降「復号化装置500」)逆残差変換技術の通常の機能ブロック図を示す。そして、復号化デバイス(例えば復号化デバイス300)での使用に適している。復号化装置500は、符号化装置400での局部復号化ループ430と同じように機能することができる。
具体的には、符号化された動画像ビットストリーム504を、エントロピー復号化装置508に供給することができる。そしてエントロピー復号化装置508は、量子化係数のブロック(qcf)、差分動きベクトル(dmv)、付随的なメッセージデータパケット(msg―データ)、及び他のデータを復号化することができる。それから量子化係数ブロック(qcf)は、逆量子化器512によって逆量子化されることができ、結果、逆量子化係数(tcof´)となる。それから、逆量子化係数(tcof´)は逆変換器516(後述)によって周波数領域から逆変換されることができ、結果、復号化残差ブロック(res´)となる。
加算器520は、対応する動きベクトル(mv)を用いて、得られた、運動補償予測ブロック(pred)を追加することができる。得られた復号化動画像(dv)には、フレームアセンブラ及びデブロックフィルタリングプロセッサ524においてデブロックフィルタをかけられることができる。
フレームアセンブラ及びデブロックフィルタリングプロセッサ52の出力のブロック(recd)は、動画像シーケンスの再構成されたフレームを形成する。そして、それは復号化装置500から出力されることができ、また、次の符号化ブロックを復号化するための動き補償予測器530のための参照フレームとして使用されることもできる。
[逆整数変換手順]
逆変換器516の機能性については、逆変換器は、逆量子化器512から、逆量子化された16ビット整数変換係数のブロックを得る。変換器420(上記)によって行われる順方向整数DCT変換演算を逆にし、残差値を復元させるために、逆変換器516は逆量子化器512から得られる変換係数に対して逆整数DCT変換演算を行う。
現符号化ブロックの変換係数が二重変換された場合、後述のように、逆変換器は逆二重変換手順を行う。DC変換係数が逆変換されて、その対応する変換ブロックに挿入されたあと、逆変換器は、逆整数DCT変換演算の実行に進む。
例えば少なくとも一つの実施例で、4×4変換ブロックに対応する16ビット整数変換係数のブロックでは、逆変換器516は、以下の方程式に従い逆整数DCT変換演算を行うことができる.

Figure 2018517317
Figure 2018517317
4×4逆整数DCT変換演算の後、16ビット演算を確実にするために、逆変換器は、得られた残差値の値を5ビット右にビットシフトさせることができる。
少なくとも一つの実施例において、8×8変換ブロックに対応する16ビット整数変換係数のブロックでは、逆変換器516は、以下の方程式に従い逆整数DCT変換演算を行うことができる。
Figure 2018517317
8×8逆整数DCT変換演算の後、16ビット演算を確実にするために、逆変換器は、得られた残差値の値を7ビット右にビットシフトさせることができる。
少なくとも一つの実施例において、16×16変換ブロックに対応する16ビット整数変換係数のブロックでは、逆変換器516は、以下の方程式に従い逆整数DCT変換演算を行うことができる。
Figure 2018517317
16×16逆整数DCT変換演算の後、16ビット演算を確実にするために、逆変換器は、得られた残差値の値を7ビット右にビットシフトさせることができる。
[変換ブロック処理ルーチン]
図6は、少なくとも一つの実施例(例えば符号化装置00)での使用に適した変換ブロック処理ルーチン600を図示する。当業者が認識するように、符号化プロセスのすべてのイベントが図6に図示されるというわけではない。むしろ明確にするため、例示の実施例を説明するのに合理的に関連するステップだけが示される。
変換ブロック処理ルーチン600は実行ブロック604で、符号化されている現フレームの整数残差値の符号化ブロックを得る。
それから変換ブロック処理ルーチン600は、変換ブロックサイズ選択サブルーチン700(図7を参照し後述)に、現符号化ブロックのサイズと、動き予測で使用される対応する予測ブロックのサイズと、を提供する。そして、現符号化ブロックサイズ及び予測ブロックサイズの現組合せに対する、適切な色度及び輝度の変換ブロックサイズを返す。
それから変換ブロック処理ルーチン600は実行ブロック608で、現符号化ブロックを、変換ブロックサイズ選択サブルーチン700(上記)が返す色度及び輝度変換ブロックサイズに従う、16ビット整数の残差値の一つ以上の変換ブロックに分ける。
現符号化ブロックの各変換ブロックは開始ループブロック612で、順番に処理される。
判断ブロック616において現変換ブロックの各々の残差値がゼロ値を有する場合、変換ブロック処理ルーチン600は実行ブロック620で、対応する変換ブロックパターンフラグを現変換ブロックの変換ブロックヘッダにセットする。
そうでなければ判断ブロック616において、現変換ブロックの残差値の一つ以上がゼロ以外の値を有する場合、変換ブロック処理ルーチン600は順方向整数変換サブルーチン800(図8を参照し後述)を呼び出す。そして、順方向整数変換サブルーチン800は対応ブロックの16ビット整数変換係数を返す。
変換ブロック処理ルーチン600は終了ループブロック624で、現符号化ブロック次の変換ブロックを処理するために(もしあれば)、開始ループブロック612へ戻って繰り返す。
判断ブロック628において現符号化ブロックの変換ブロックが二重変換され得る(例えば、16または64変換ブロックが、現符号化ブロックにある)場合、変換ブロック処理ルーチン600は、現符号化ブロックの変換ブロックのDC整数変換係数に対して付加的な変換演算を行い、16ビット整数変換係数の対応する二重変換されたブロックを返す二重変換サブルーチン900(図9を参照して後述)を呼び出すことができる。
二重変換サブルーチン900が16ビット整数変換係数の二重変換されたブロックを返したあとか、または、判断ブロック628を再度参照して、現符号化ブロックが二重変換ができない場合、変換ブロック処理ルーチン600は、終端ブロック699で現符号化ブロックの終了とする。
[変換ブロックサイズ選択サブルーチン]
図7は、少なくとも一つの実施例(例えば変換ブロック処理ルーチン600)での使用に適した変換ブロックサイズ選択サブルーチン700を図示する。
変換ブロックサイズ判定サブルーチン700は実行ブロック704で、符号化ブロックサイズと、現符号化ブロックの動き予測プロセスで使用される予測ブロックサイズとを得る。
判断ブロック712において現符号化ブロックの符号化ブロックサイズが8×8画素である場合、変換ブロックサイズ判定サブルーチン700は判断ブロック716へ進む。
判断ブロック716において現符号化ブロックの予測ブロックサイズが8×8画素である場合、変換ブロックサイズ判定サブルーチン700は実行ブロック720で、8×8輝度変換係数に対する現符号化ブロックの輝度変換ブロックサイズをセットし、そして実行ブロック724で変換ブロックサイズ判定サブルーチンは4×4色度変換係数に対する現符号化ブロックの色度変換ブロックサイズをセットする。
それから変換ブロックサイズ判定サブルーチンは戻りブロック799で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
判断ブロック716を再度参照する。現符号化ブロックのための予測ブロックサイズが8×8画素でない場合、変換ブロックサイズ判定サブルーチン700は実行ブロック728で、4×4輝度変換係数に対する現符号化ブロックの輝度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチン700は、実行ブロック724へと進む。
上述のように、変換ブロックサイズ判定サブルーチンは実行ブロック724で、4×4色度変換係数に対する現符号化ブロックの色度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチンは戻りブロック799で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
判断ブロック712を再度参照する。現符号化ブロックの符号化ブロックサイズが8×8画素でない場合、変換ブロックサイズ判定サブルーチン700は判断ブロック736へと進む。
判断ブロック736において、現符号化ブロックの符号化ブロックサイズが16×16画素である場合、変換ブロックサイズ判定サブルーチン700は判断ブロック740へ進む。
判断ブロック740において、現符号化ブロックのための予測ブロックサイズが16×16画素である場合、変換ブロックサイズ判定サブルーチン700は実行ブロック744で、16×16輝度変換係数に対する現符号化ブロックの輝度変換ブロックサイズをセットし、それから、実行ブロック748で変換ブロックサイズ判定サブルーチンは、8×8色度変換係数に対する現符号化ブロックの色度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチンは、戻りブロック799で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
判断ブロック740を再度参照する。現符号化ブロックの予測ブロックサイズが16×16画素でない場合、変換ブロックサイズ判定サブルーチン700は、実行ブロック728へ進む。
上述のように、変換ブロックサイズ判定サブルーチン700は実行ブロック728で、4×4輝度変換係数に対する現符号化ブロックの輝度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチン700は、実行ブロック724へ進む。
上述のように、変換ブロックサイズ判定サブルーチンは実行ブロック724で、4×4色度変換係数に対する現符号化ブロックの色度変換ブロックサイズをセットする。それから、変換ブロックサイズ判定サブルーチンは、戻りブロック799で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
判断ブロック736を再度参照する。現符号化ブロックの符号化ブロックサイズが16×16画素でない場合、変換ブロックサイズ判定サブルーチン700は実行ブロック744へ進む。
上述のように、変換ブロックサイズ判定サブルーチン700は実行ブロック744で、16×16輝度変換係数に対する現符号化ブロックの輝度変換ブロックサイズをセットし、それから、実行ブロック748で、変換ブロックサイズ判定サブルーチンは、8×8色度変換係数に対する現符号化ブロックの色度変換ブロックサイズをセットする。それから変換ブロックサイズ判定サブルーチンは、戻りブロック799で、現符号化ブロックの輝度変換ブロックサイズ及び色度変換ブロックサイズを返す。
[順方向整数変換サブルーチン]
図8は、図9を参照して後述するが、少なくとも一つの実施例(例えば変換ブロック処理ルーチン600または二重変換サブルーチン900)での使用に適した順方向整数変換サブルーチン800を図示する。
順方向整数変換サブルーチンは実行ブロック804で、例えば変換ブロック処理ルーチン600から変換ブロックを得る。
判断ブロック808において、現変換ブロックが整数変換係数の4×4ブロックである場合、順方向整数変換サブルーチン800は実行ブロック812で、4×4順方向変換(例えば上記の4×4順方向整数変換演算)を行う。それから順方向整数変換サブルーチン800は、戻りブロック899で4×4整数変換で得た変換係数を返す。
判断ブロック808を再度参照する。現変換ブロックが整数変換係数の4×4ブロックでない(例えば整数変換係数の8×8、16×16、32×32または64×64ブロックである)場合、順方向整数変換サブルーチン800は判断ブロック816へ進む。
判断ブロック816において、現変換ブロックが整数変換係数の8×8ブロックである場合、順方向整数変換サブルーチン800は実行ブロック820で、8×8順方向変換(例えば上記の8×8順方向整数変換演算)を行う。順方向整数変換サブルーチン800は実行ブロック824で、実行ブロック820で8×8整数変換を介して得られた変換係数を処理し、変換係数が16ビット以下となることを確実にするために変換係数を右に二回ビットシフトさせる。順方向整数変換サブルーチン800は、戻りブロック899でビットシフトさせられた変換係数を返す。
判断ブロック816を再度参照する。現変換ブロックが8×8ブロックの整数変換係数でない場合(例えば、16×16、32×32または64×64ブロックの整数変換係数である場合)、順方向整数変換サブルーチン800は判断ブロック826へ進む。
判断ブロック826において、現変換ブロックが16×16ブロックの整数変換係数である場合、順方向整数変換サブルーチン800は実行ブロック828で、16×16順方向変換(例えば上記の16×16順方向整数変換演算)を行う。それから順方向整数変換サブルーチン800は、実行ブロック824へ進む。
上述のように、順方向整数変換サブルーチン800は実行ブロック824で、実行ブロック820で8×8整数変換を介して得られた変換係数を処理し、変換係数が16ビット以下となることを確実にするために変換係数を右に二回ビットシフトさせる。順方向整数変換サブルーチン800は、戻りブロック899でビットシフトさせられた変換係数を返す。
判断ブロック826を再度参照する。現変換ブロックが16×16ブロックの整数変換係数より大きい(例えば32×32または64×64ブロックの整数変換係数である)場合、順方向整数変換サブルーチン800は実行ブロック832で、大きな変換手順を行う。順方向整数変換サブルーチン800は、戻りブロック899で大きな整数変換手順の結果を戻す。
[二重変換サブルーチン]
図9は、少なくとも一つの実施例(例えば変換ブロック処理ルーチン600)で使用するのに適した二重変換サブルーチン900を図示する。
二重変換サブルーチン900は実行ブロック904で、現符号化ブロックのための中間整数変換係数の変換ブロックを得る。
二重変換サブルーチン900は実行ブロック908で、中間の整数変換係数の各ブロックから中間のDC係数を抽出する。
二重変換サブルーチン900は実行ブロック912で、中間のDC係数の変換ブロックを生成する。
それから二重変換サブルーチン900は、順方向変換サブルーチン800に中間のDC係数を渡し、そして、順方向変換サブルーチン800は、(たった今、二重変換された)ブロックの16ビット整数変換係数を返す。
二重変換サブルーチン900は、戻りブロック999で、二重変換された変換ブロックを返す。
[変換ブロック復元ルーチン]
図10は、少なくとも一つの実施例(例えば復号化装置500)で使用するのに適した変換ブロック復元ルーチン1000を図示する。
当業者によって認識されるように、復号プロセスのすべてのイベントが図10に図示されるというわけではない。
むしろ明確にするため、変換ブロック復元ルーチン1000を説明するのに、合理的に関連するステップだけが示される。
変換ブロック復元ルーチン1000は実行ブロック1004で、例えば逆量子化器512から、逆量子化された変換係数のブロックを得る。
変換ブロック復元ルーチン1000は実行ブロック1005で、現符号化ブロックのサイズを求める。
変換ブロック復元ルーチン1000は実行ブロック1006で、現符号化ブロックのための、動き予測用の予測ブロックのサイズを求める。
変換ブロック復元ルーチン1000は実行ブロック1007で、現符号化ブロックサイズと、現符号化ブロックの動き予測用の予測ブロックのサイズと、の対応する組合せの予測ブロックのサイズを検索する。
変換ブロック復元ルーチン1000はそれから実行ブロック1008で、実行ブロック1007(上記)で得た変換ブロックサイズに従い、逆量子化された変換係数を組み立て、16ビット整数変換係数の一つ以上の変換ブロックとする。
判断ブロック1028において、現符号化ブロックの変換ブロックが二重変換されていない場合、変換ブロック復元ルーチン1000は開始ループブロック1032へ進む(後述)。
現符号化ブロックの変換ブロックが二重変換されている(例えば16ビット整数DC変換係数の二重変換されたブロックを含む)場合、変換ブロック復元ルーチン1000は、逆整数変換サブルーチン1100(図11を参照して後述)を呼び出す。そして逆整数変換サブルーチン1100は、現符号化ブロックの変換ブロックの16ビット整数変換係数の二重変換されたブロックに対して最初の逆変換演算を行い、中間の16ビット整数DC変換係数の対応するブロックを返す
変換ブロック復元ルーチン1000は実行ブロック1030で、適切な16ビット整数DC変換係数を16ビット整数変換係数の対応ブロックに挿入して、開始ループブロック1032へ進む(後述)。
開始ループブロック1032を開始し、変換ブロック復元ルーチン1000は、順番に16ビット整数変換係数の各変換ブロックを処理する。
判断ブロック1036で、対応する変換ブロックのための変換ブロックパターンフラグが変換ブロックヘッダにセットされる場合、変換ブロック復元ルーチン1000は終了ループブロック1040で、現符号化ブロックの16ビット整数変換係数の次のブロック(あれば)を処理するために、開始ループブロック1032に戻り繰り返す。
判断ブロック1036で、対応する変換ブロックのための変換ブロックパターンフラグが変換ブロックヘッダにセットされない場合、変換ブロック復元ルーチン1000は、復元された残差値のブロックを返す逆整数変換サブルーチン1100(図11を参照し後述)を呼び出す。
変換ブロック復元ルーチン1000は終了ループブロック1040で、現符号化ブロックの次の変換ブロック(あれば)を処理するために、開始ループブロック1032に戻り、繰り返す
変換ブロック復元ルーチン1000は、終端ブロック1099で終了する。
[逆整数変換サブルーチン]
図11は、少なくとも一つの実施例(例えば変換ブロック復元ルーチン1000)で使用するのに適した逆整数変換サブルーチン1100を図示する。
逆整数変換サブルーチン1100は実行ブロック1104で、例えば変換ブロック復元ルーチン1000から、変換ブロックを得る。
判断ブロック1108において、変換ブロックが4×4変換ブロックである場合、逆整数変換サブルーチン1100は実行ブロック1110で、4×4逆整数変換(例えば上記の4×4逆整数変換)を実行する。逆整数変換サブルーチン1100は実行ブロック1112で、得られた整数変換係数を5ビット右にビットシフトさせる。
逆整数変換サブルーチン1100は、戻りブロック1199でビットシフトされた整数変換係数を返す。
判断ブロック1108を再度参照する。変換ブロックが4×4変換ブロックでない場合、逆整数変換サブルーチン1100は判断ブロック1116へ進む。
判断ブロック1116において、変換ブロックが8×8変換ブロックである場合、逆整数変換サブルーチン1100は実行ブロック1118で、8×8逆整数変換(例えば上記の8×8逆の整数変換)を実行する。逆整数変換サブルーチン1100は実行ブロック1120で、得られた整数変換係数を7ビット右にビットシフトさせる。
逆整数変換サブルーチン1100は、戻りブロック1199でビットシフトさせられた整数変換係数を返す。
判断ブロック1116を再度参照する。変換ブロックが8×8変換ブロックでない場合、逆整数変換サブルーチン1100は判断ブロック1126へ進む。
判断ブロック1126で、変換ブロックが16×16変換ブロックである場合、逆整数変換サブルーチン1100は実行ブロック1127で、16×16逆整数変換(例えば上記の16×16逆整数変換)を実行する。逆整数変換サブルーチン1100は実行ブロック1128で、得られた整数変換係数を7ビット右にビットシフトさせる。
逆整数変換サブルーチン1100は、戻りブロック1199でビットシフトさせられた整数変換係数を返す。
判断ブロック1126を再度参照する。変換ブロックが16×16変換ブロック(例えば32×32または64×64変換ブロック)より大きい場合、逆整数変換サブルーチン1100は実行ブロック1132で、大きな逆変換手順を実行する。
戻りブロック1199で、逆整数変換サブルーチン1100は、大きな整数変換手順の結果を戻す。
特定の実施例が図示され、本願明細書において記載されたが、当業者によって、本開示内容の要旨を逸脱しない範囲で、図を用いて記載される特定実施例は、別の及び/または等価な実施態様と置換されることができると認められる。本出願は、本願明細書において記載される実施例のいずれの改作または変形例も含めることを意図する。

Claims (18)

  1. ビデオエンコーダ―により実装される方法であって、
    前記方法により未符号化ビデオフレームは、前記未符号化ビデオフレームを表現する符号化ビットストリームを生成するために符号化され、
    前記符号化ビットストリームは、少なくとも一つのフレームヘッダと、映像データのペイロードと、を含み、
    前記方法は、
    前記未符号化ビデオフレームの最大符号化ブロック寸法を求めることを備え、
    前記最大符号化ブロック寸法は、最大水平符号化ブロック寸法および最大垂直符号化ブロック寸法により定義され、
    前記未符号化ビデオフレームの最大変換ブロック寸法を求めることを備え、
    前記最大変換ブロック寸法は、最大水平予測ブロック寸法および最大垂直予測ブロック寸法により定義され、
    前記未符号化ビデオフレームを符号化し、それにより、前記符号化ビットストリームの前記映像データのペイロードを生成することと、
    前記符号化ビットストリームの前記フレームヘッダを生成することと、を備え、
    前記フレームヘッダは、最大符号化ブロックサイズフラグおよび最大変換ブロックサイズフラグを含み、
    前記最大水平符号化ブロック寸法および前記最大垂直符号化ブロック寸法の両方ともが64画素に等しい倍を除き、前記最大符号化ブロックサイズフラグはゼロにセットされ、そして、
    前記最大水平予測ブロック寸法および前記最大垂直予測ブロック寸法の両方ともが16画素より大きい場合を除き、前記最大変換ブロックサイズフラグはゼロにセットされることを特徴とする、ビデオエンコーダ―により実装される方法。
  2. ビデオエンコーダ―により実装される方法であって、
    前記未符号化ビデオフレームを符号化する前に、
    前記未符号化ビデオフレームを、第1の符号化ブロックを含む複数の符号化ブロックに分けることを備え、
    前記第1の符号化ブロックは、前記最大水平符号化ブロック寸法以下の水平符号化ブロック寸法と、前記最大垂直符号化ブロック寸法以下の垂直符号化ブロック寸法とを有し、
    前記第1の符号化ブロックを、少なくとも一つの予測ブロックに分けることを備え、
    前記少なくとも一つの予測ブロック各々は、水平予測ブロック寸法および垂直予測ブロック寸法を有し、
    前記第1の符号化ブロックを、第1の変換ブロックを含む複数の変換ブロックに、分けることを備え、
    前記第1の変換ブロックは、前記最大水平予測ブロック寸法以下の水平変換ブロック寸法と、前記最大垂直予測ブロック寸法以下の垂直変換ブロック寸法とを有し、
    前記水平変換ブロック寸法および前記垂直変換ブロック寸法は、少なくとも一部、前記水平符号化ブロック寸法と、前記垂直符号化ブロック寸法と、前記水平予測ブロック寸法と、前記垂直予測ブロック寸法とに依存することを特徴とする、請求項1記載のビデオエンコーダ―により実装される方法。
  3. ビデオエンコーダ―により実装される方法であって、
    前記複数の変換ブロックの各々は、一組の変換係数を含み、そして、
    前記方法は更に、
    前記複数の変換ブロックの各々のために、対応する変換ブロックパターンフラグを変換ブロックヘッダにセットすることを備え、
    前記一組の変換係数が、ゼロ以外の値を有する少なくとも一つの変換係数を含む場合、
    前記対応する変換ブロックパターンフラグには、第1のフラグ値が与えられ、それ以外は前記対応する変換ブロックパターンフラグには、第2のフラグ値が与えられることを特徴とする、請求項2記載のビデオエンコーダ―により実装される方法。
  4. 前記複数の変換ブロックの各変換ブロックのための前記対応する変換ブロックパターンフラグは、前記変換ブロックヘッダにラスタースキャン順にリストされることを特徴とする、請求項3記載のビデオエンコーダ―により実装される方法。
  5. 前記未符号化ビデオフレームの符号化の間、前記水平変換ブロック寸法および前記垂直変換ブロック寸法各々が4画素に等しいと判定することと、その結果として、
    第1の変換により、前記第1の変換ブロックから第1の一組の変換係数を得ることと、
    前記第1の一組の変換係数の各々を右へ5ビットシフトさせることにより、前記第1の一組の変換係数から第2の一組の変換係数を得ることと、
    2回目の変換により、前記第2の一組の変換係数から第3の一組の変換係数を得ること、とを更に含むことを特徴とする、請求項2記載のビデオエンコーダ―により実装される方法。
  6. ビデオエンコーダ―により実装される方法であって、前記方法は更に、
    前記未符号化ビデオフレームの符号化の間、前記水平変換ブロック寸法および前記垂直変換ブロック寸法各々が8画素に等しいと判定することと、その結果として、
    第1の変換により、前記第1の変換ブロックから第1の一組の変換係数を得ることと、
    前記第1の一組の変換係数各々を右へ2ビットシフトさせることにより、前記第1の一組の変換係数から第2の一組の変換係数を得ることと、
    第2の変換により、前記第2の一組の変換係数から第3の一組の変換係数を得ることと、
    前記第3の一組の変換係数各々を右へ2ビットシフトさせることにより、前記第3の一組の変換係数から第4の一組の変換係数を得ること、とを更に含むことを特徴とする、請求項2記載のビデオエンコーダ―により実装される方法。
  7. 請求項6記載のビデオエンコーダ―により実装される方法であって、
    前記第1の変換および前記第2の変換は、方程式y = T_8x8*xによって表され、そして、T_8x8は、以下によって表されることを特徴とする。
    Figure 2018517317
  8. ビデオエンコーダ―により実装される方法であって、前記方法は更に、
    前記未符号化ビデオフレームの符号化の間、前記水平変換ブロック寸法および前記垂直変換ブロック寸法各々が16画素に等しいと判定することと、その結果として、
    第1の変換により、前記第1変換ブロックから第1の一組の変換係数を得ることと、
    前記第1の一組の変換係数各々を右へ2ビットシフトさせることにより、前記第1の一組の変換係数から第2の一組の変換係数を得ることと、
    第2の変換により、前記第2の一組の変換係数から第3のセットの変換係数を得ることと、
    前記第3の一組の変換係数各々を右へ2ビットシフトさせることにより、前記第3の一組の変換係数から第4の一組の変換係数を得ること、とを更に備えることを特徴とする、請求項2記載のビデオエンコーダ―により実装される方法。
  9. 請求項8記載のビデオエンコーダ―により実装される方法であって、
    前記第1および前記第2の変換は、方程式y = T_16x16*xによって表され、そして、T_16x16は、係数t0 … t15を有する行列であり、
    式中、t0…t15は以下により定義されることを特徴とする。
    Figure 2018517317
  10. 前記第1の変換ブロックは一組の変換係数を含み、各前記変換係数は前記未符号化ビデオフレームの画素の輝度特性に関係しており、そして、
    前記水平符号化ブロック寸法と、前記垂直符号化ブロック寸法と、前記水平予測ブロック寸法と、前記垂直予測ブロック寸法と、が8画素に各々等しい場合、
    前記ビデオエンコーダ―により実装される方法は、各々8画素に等しいよう、前記横変換ブロック寸法および前記縦変換ブロック寸法をセットすることを更に備えることを特徴とする、請求項2記載のビデオエンコーダ―により実装される方法。
  11. 前記第1の変換ブロックは一組の変換係数を含み、各前記変換係数は前記未符号化ビデオフレームの画素の輝度特性に関係しており、そして、
    前記水平符号化ブロック寸法および前記垂直符号化ブロック寸法が各々8画素に等しく、そして、前記水平予測ブロック寸法および前記垂直予測ブロック寸法が各々8画素に等しくない場合、
    前記ビデオエンコーダ―により実装される方法は、各々4画素に等しいように、前記横変換ブロック寸法および前記垂直変換ブロック寸法をセットすることを更に備えることを特徴とする、請求項2記載のビデオエンコーダ―により実装される方法。
  12. 前記第1の変換ブロックは1組の変換係数を含み、各変換係数は前記未符号化ビデオフレームの画素の輝度特性に関係しており、そして、
    前記水平符号化ブロック寸法と、前記垂直符号化ブロック寸法と、前記水平予測ブロック寸法と、前記垂直予測ブロック寸法とが各々16画素に等しい場合、
    前記ビデオエンコーダ―により実装される方法は、各々16画素に等しいように、前記水平変換ブロック寸法および前記垂直変換ブロック寸法をセットすることを更に備えることを特徴とする、請求項2記載のビデオエンコーダ―により実装される方法。
  13. 前記第1の変換ブロックは一組の変換係数を含み、各前記変換係数は前記未符号化ビデオフレームの画素の輝度特性に関係しており、そして、
    前記水平符号化ブロック寸法および前記垂直符号化ブロック寸法が16画素に各々等しく、そして、前記水平予測ブロック寸法および前記垂直予測ブロック寸法が16画素に各々等しくない場合、
    前記ビデオエンコーダ―により実装される方法は、各々4画素に等しいように、前記横変換ブロック寸法および前記垂直変換ブロック寸法をセットすることを更に備えることを特徴とする、請求項2のビデオエンコーダ―により実装される方法。
  14. 前記第1の変換ブロックは一組の変換係数を含み、各前記変換係数は前記未符号化ビデオフレームの画素の輝度特性に関係しており、そして、
    前記水平符号化ブロック寸法および前記垂直符号化ブロック寸法が各々31画素を超える場合、
    前記ビデオエンコーダ―により実装される方法は、各々16画素に等しいように、前記水平変換ブロック寸法および前記垂直変換ブロック寸法をセットすることを更に備えることを特徴とする、請求項2記載のビデオエンコーダ―により実装される方法。
  15. 前記第1の変換ブロックは一組の変換係数を含み、各前記変換係数は前記未符号化ビデオフレームの画素の色度特性に関係しており、そして、
    前記水平符号化ブロック寸法および前記垂直符号化ブロック寸法が各々8画素に等しい場合、
    前記ビデオエンコーダ―により実装される方法は、各々4画素に等しいように、前記水平変換ブロック寸法および前記垂直変換ブロック寸法をセットすることを更に備えることを特徴とする、請求項2記載のビデオエンコーダ―により実装される方法。
  16. 前記第1の変換ブロックは一組の変換係数を含み、各前記変換係数は前記未符号化ビデオフレームの画素の色度特性に関係しており、そして、
    前記水平符号化ブロック寸法と、前記垂直符号化ブロック寸法と、前記水平予測ブロック寸法と、前記垂直予測ブロック寸法とが各々16画素に等しい場合、
    前記ビデオエンコーダ―により実装される方法は、各々8画素に等しいように、前記水平変換ブロック寸法および前記垂直変換ブロック寸法をセットすることを更に備えることを特徴とする、請求項2記載のビデオエンコーダ―により実装される方法。
  17. 前記第1の変換ブロックは一組の変換係数を含み、各前記変換係数は、前記符号化ビデオフレームの画素の色度特性に関係しており、そして、
    前記水平符号化ブロック寸法および前記垂直符号化ブロック寸法が16画素に各々等しく、そして、前記水平予測ブロック寸法および前記垂直予測ブロック寸法が16画素に各々等しくない場合、
    前記ビデオエンコーダ―により実装される方法は、各々4画素に等しいように、前記水平変換ブロック寸法および前記垂直変換ブロック寸法をセットすることを更に備えることを特徴とする、請求項2記載のビデオエンコーダ―により実装される方法。
  18. 前記第1の変換ブロックは一組の変換係数を含み、
    各前記変換係数は前記未符号化ビデオフレームの画素の色度特性に関係しており、そして、
    前記水平符号化ブロック寸法および前記垂直符号化ブロック寸法が各々31画素を超える場合、
    前記ビデオエンコーダ―置により実装される方法は、各々8画素に等しいように、前記横変換ブロック寸法および前記垂直変換ブロック寸法をセットすることを更に含むことを特徴とする、請求項2記載のビデオエンコーダ―により実装される方法。
JP2017550886A 2015-03-31 2015-03-31 ビデオコーディングシステムにおける残差変換及び逆変換方法 Expired - Fee Related JP6704932B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/075597 WO2016154928A1 (en) 2015-03-31 2015-03-31 Residual transformation and inverse transformation in video coding systems and methods

Publications (2)

Publication Number Publication Date
JP2018517317A true JP2018517317A (ja) 2018-06-28
JP6704932B2 JP6704932B2 (ja) 2020-06-03

Family

ID=57006504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017550886A Expired - Fee Related JP6704932B2 (ja) 2015-03-31 2015-03-31 ビデオコーディングシステムにおける残差変換及び逆変換方法

Country Status (6)

Country Link
US (2) US10218974B2 (ja)
EP (1) EP3289762A4 (ja)
JP (1) JP6704932B2 (ja)
KR (1) KR20180019510A (ja)
CN (1) CN107637078B (ja)
WO (1) WO2016154928A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020130705A1 (ko) * 2018-12-20 2020-06-25 엘지전자 주식회사 변환 계수들의 변환 계수 레벨을 코딩하는 방법 및 장치

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180019510A (ko) * 2015-03-31 2018-02-26 리얼네트웍스 인코포레이티드 비디오 코딩시 오차 변환 및 역 변환 시스템들 및 방법들
WO2017054194A1 (en) 2015-09-30 2017-04-06 Realnetworks, Inc. Layered deblocking filtering in video processing systems and methods
EP3586508A4 (en) * 2017-02-23 2020-08-12 RealNetworks, Inc. RESIDUAL TRANSFORMATION AND INVERSE TRANSFORMATION IN VIDEO ENCODING SYSTEMS AND METHODS
EP3590259A4 (en) * 2017-02-23 2020-08-19 RealNetworks, Inc. STRUCTURE AND SYNTAX OF CODING BLOCK BINARY FLOWS IN VIDEO CODING SYSTEMS AND METHODS
WO2019212230A1 (ko) * 2018-05-03 2019-11-07 엘지전자 주식회사 영상 코딩 시스템에서 블록 사이즈에 따른 변환을 사용하는 영상 디코딩 방법 및 그 장치
US10893286B2 (en) * 2018-10-09 2021-01-12 Tencent America LLC Methods and apparatus for low-complexity MTS
WO2020185036A1 (ko) * 2019-03-13 2020-09-17 엘지전자 주식회사 비디오 신호를 처리하기 위한 방법 및 장치
CN114145014A (zh) * 2019-07-19 2022-03-04 韦勒斯标准与技术协会公司 处理视频信号的方法和设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000165805A (ja) * 1998-11-30 2000-06-16 Sony Corp 付随情報付加装置および方法、付随情報検出装置および方法、ならびに不正利用防止システム
US6816616B2 (en) * 2001-05-31 2004-11-09 Webex Communications, Inc. Header compression for image data stream
KR100525785B1 (ko) * 2001-06-15 2005-11-03 엘지전자 주식회사 이미지 화소 필터링 방법
US9445128B2 (en) 2006-12-08 2016-09-13 Freescale Semiconductor, Inc. System and method of determining deblocking control flag of scalable video system for indicating presentation of deblocking parameters for multiple layers
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
BRPI0818444A2 (pt) * 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
KR101512643B1 (ko) * 2008-10-22 2015-04-16 에스케이 텔레콤주식회사 동영상 부호화 장치 및 이를 위한 영상 신호의 2차원 정렬 변환 장치 및 방법, 및 이를 위한 기록 매체
KR101700358B1 (ko) 2009-12-09 2017-01-26 삼성전자주식회사 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
US20110317762A1 (en) * 2010-06-29 2011-12-29 Texas Instruments Incorporated Video encoder and packetizer with improved bandwidth utilization
US9788019B2 (en) 2011-03-09 2017-10-10 Hfi Innovation Inc. Method and apparatus of transform unit partition with reduced complexity
US9185404B2 (en) * 2011-10-07 2015-11-10 Qualcomm Incorporated Performing transform dependent de-blocking filtering
KR20130050404A (ko) 2011-11-07 2013-05-16 오수미 인터 모드에서의 복원 블록 생성 방법
US9462275B2 (en) 2012-01-30 2016-10-04 Qualcomm Incorporated Residual quad tree (RQT) coding for video coding
US20130272390A1 (en) 2012-04-16 2013-10-17 Qualcomm Incorporated Uniform granularity for quantization matrix in video coding
US9749645B2 (en) * 2012-06-22 2017-08-29 Microsoft Technology Licensing, Llc Coded-block-flag coding and derivation
US20140079135A1 (en) * 2012-09-14 2014-03-20 Qualcomm Incoporated Performing quantization to facilitate deblocking filtering
US9219915B1 (en) * 2013-01-17 2015-12-22 Google Inc. Selection of transform size in video coding
CN103220529B (zh) * 2013-04-15 2016-02-24 北京大学 一种视频编解码环路滤波的实现方法
US10645399B2 (en) * 2013-07-23 2020-05-05 Intellectual Discovery Co., Ltd. Method and apparatus for encoding/decoding image
CN105284110B (zh) * 2013-07-31 2019-04-23 太阳专利托管公司 图像编码方法及图像编码装置
KR102355224B1 (ko) * 2014-03-16 2022-01-25 브이아이디 스케일, 인크. 무손실 비디오 코딩의 시그널링을 위한 방법 및 장치
KR20180019510A (ko) * 2015-03-31 2018-02-26 리얼네트웍스 인코포레이티드 비디오 코딩시 오차 변환 및 역 변환 시스템들 및 방법들

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020130705A1 (ko) * 2018-12-20 2020-06-25 엘지전자 주식회사 변환 계수들의 변환 계수 레벨을 코딩하는 방법 및 장치

Also Published As

Publication number Publication date
US20190110050A1 (en) 2019-04-11
EP3289762A4 (en) 2018-12-19
EP3289762A1 (en) 2018-03-07
CN107637078B (zh) 2020-05-26
US10218974B2 (en) 2019-02-26
CN107637078A (zh) 2018-01-26
JP6704932B2 (ja) 2020-06-03
US20180109793A1 (en) 2018-04-19
WO2016154928A1 (en) 2016-10-06
WO2016154928A8 (en) 2017-12-14
KR20180019510A (ko) 2018-02-26
US10531086B2 (en) 2020-01-07

Similar Documents

Publication Publication Date Title
JP6704932B2 (ja) ビデオコーディングシステムにおける残差変換及び逆変換方法
US10735729B2 (en) Residual transformation and inverse transformation in video coding systems and methods
US20190268619A1 (en) Motion vector selection and prediction in video coding systems and methods
US10659779B2 (en) Layered deblocking filtering in video processing systems and methods
US20190379890A1 (en) Residual transformation and inverse transformation in video coding systems and methods
US10887589B2 (en) Block size determination for video coding systems and methods
WO2017107072A1 (en) Motion vector selection and prediction in video coding systems and methods
US20210250579A1 (en) Intra-picture prediction in video coding systems and methods
JP6748657B2 (ja) 圧縮ビデオビットストリームに付属メッセージデータを含めるシステムおよび方法
WO2020248099A1 (en) Perceptual adaptive quantization and rounding offset with piece-wise mapping function

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190426

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190717

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200326

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200513

R150 Certificate of patent or registration of utility model

Ref document number: 6704932

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees