IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 杭州海康威視数字技術股▲フン▼有限公司の特許一覧

<>
  • 特表-ビデオ符号化復号方法及び装置 図1
  • 特表-ビデオ符号化復号方法及び装置 図2
  • 特表-ビデオ符号化復号方法及び装置 図3
  • 特表-ビデオ符号化復号方法及び装置 図4A
  • 特表-ビデオ符号化復号方法及び装置 図4B
  • 特表-ビデオ符号化復号方法及び装置 図5
  • 特表-ビデオ符号化復号方法及び装置 図6
  • 特表-ビデオ符号化復号方法及び装置 図7
  • 特表-ビデオ符号化復号方法及び装置 図8
  • 特表-ビデオ符号化復号方法及び装置 図9
  • 特表-ビデオ符号化復号方法及び装置 図10
  • 特表-ビデオ符号化復号方法及び装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-12
(54)【発明の名称】ビデオ符号化復号方法及び装置
(51)【国際特許分類】
   H04N 19/12 20140101AFI20241105BHJP
   H04N 19/129 20140101ALI20241105BHJP
   H04N 19/18 20140101ALI20241105BHJP
   H04N 19/46 20140101ALI20241105BHJP
【FI】
H04N19/12
H04N19/129
H04N19/18
H04N19/46
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024527664
(86)(22)【出願日】2022-11-09
(85)【翻訳文提出日】2024-07-10
(86)【国際出願番号】 CN2022130954
(87)【国際公開番号】W WO2023083225
(87)【国際公開日】2023-05-19
(31)【優先権主張番号】202111333832.1
(32)【優先日】2021-11-11
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】508219313
【氏名又は名称】杭州海康威視数字技術股▲フン▼有限公司
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】潘 冬萍
(72)【発明者】
【氏名】▲孫▼ ▲ユ▼程
(72)【発明者】
【氏名】▲陳▼ 方▲棟▼
(72)【発明者】
【氏名】曹 小▲強▼
(72)【発明者】
【氏名】魏 ▲亮▼
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MC11
5C159ME01
5C159PP04
5C159RC12
5C159TA17
5C159TA42
5C159TB14
5C159TC04
5C159UA02
5C159UA05
(57)【要約】

本発明は、画像処理の技術分野に関し、従来技術におけるビデオ符号化復号の性能が低い、又は符号化復号アルゴリズムの複雑度が高いという問題を解決するためのビデオ符号化復号方法及び装置を提供する。当該方法は、復号側が復号対象ユニットのビットストリームを得るステップと、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定するステップと、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップと、前記復号対象ユニットの前記スキャン方式に基づいて、各グループの前記係数ブロック内の係数を1つずつ復元して、前記復号対象ユニットに対応する再構成データブロックを得るステップと、を含む。
【特許請求の範囲】
【請求項1】
復号対象ユニットのビットストリームを得るステップと、
前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定するステップと、
各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップと、
前記復号対象ユニットの前記スキャン方式に基づいて、各グループの前記係数ブロック内の係数を1つずつ復元して、前記復号対象ユニットに対応する再構成データブロックを得るステップと、を含む、
ことを特徴とするビデオ符号化復号方法。
【請求項2】
前記グループ化方式は、固定長のグループ化方式と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記符号化方式は、トランケーテッド・ユーナリコードと、半固定長符号化とのうちの少なくとも1つを含む、
ことを特徴とする請求項1又は2に記載の方法。
【請求項4】
前記スキャン方式は、水平スキャンと、垂直スキャンとのうちの少なくとも1つを含む、
ことを特徴とする請求項1又は2に記載の方法。
【請求項5】
前記再構成データブロックは、復号対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである、
ことを特徴とする請求項1又は2に記載の方法。
【請求項6】
前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定するステップは、
前記ビットストリームに基づいて解析して、前記復号対象ユニットのグループ化方式を取得するステップ、又は、
前記復号対象ユニットの予測方式及び/又は変換方式に基づいて、前記グループ化方式を取得するステップを含む、
ことを特徴とする請求項1又は2に記載の方法。
【請求項7】
各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップは、
符号化アルゴリズムに従って復号して、各グループのグループパラメータを得るステップと、
各グループの前記グループパラメータに基づいて、半固定長符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るステップと、を含み、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む、
ことを特徴とする請求項1又は2に記載の方法。
【請求項8】
前記符号化アルゴリズムに従って復号して、各グループのグループパラメータを得るステップは、
トランケーテッド・ユーナリコードに対応する復号方式に基づいて復号して、各グループのグループパラメータを得るステップを含む、
ことを特徴とする請求項7に記載の方法。
【請求項9】
前記復号対象ユニットの復号方式がゴロム・ライス符号化又はk次指数ゴロム符号化のいずれかである場合、前記復号対象ユニットのグループ化方式を決定することは、、
前記復号対象ユニットの予測方式及び/又は変換方式に基づいて、前記復号対象ユニットのグループ化方式を取得することを含む、
ことを特徴とする請求項1又は2に記載の方法。
【請求項10】
元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得るステップと、
前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得るステップと、
各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るステップと、を含む、
ことを特徴とするビデオ符号化復号方法。
【請求項11】
請求項1~9のいずれか1項に記載の方法を実行するために用いられる、
ことを特徴とするビデオ復号装置。
【請求項12】
請求項10に記載の方法を実行するために用いられる、
ことを特徴とするビデオ符号化装置。
【請求項13】
請求項11に記載の装置と請求項12に記載の装置とを備える、
ことを特徴とするビデオ符号化復号システム。
【請求項14】
メモリに接続されるプロセッサを含むビデオ符号化復号装置であって、
前記メモリは、コンピュータプログラム又は命令を記憶するために用いられ、
前記プロセッサは、前記メモリに記憶されたコンピュータプログラム又は命令を実行して、前記装置に請求項1~9のいずれか1項に記載の方法、又は、請求項10に記載の方法を実行させるために用いられる、
ことを特徴とするビデオ符号化復号装置。
【請求項15】
プロセッサとコンピュータ可読記憶媒体とを含む電子機器であって、
前記コンピュータ可読記憶媒体には、前記プロセッサによって実行可能なコンピュータ実行可能命令が記憶され、
前記プロセッサは、前記コンピュータ実行可能命令を実行することで、
復号対象ユニットのビットストリームを取得し、
前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定し、
各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得、
前記復号対象ユニットの前記スキャン方式に基づいて、各グループの前記係数ブロック内の係数を1つずつ復元して、前記復号対象ユニットに対応する再構成データブロックを得るステップを実行するために用いられる、
ことを特徴とする電子機器。
【請求項16】
前記グループ化方式は、固定長のグループ化方式と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む、
ことを特徴とする請求項15に記載の電子機器。
【請求項17】
前記符号化方式は、トランケーテッド・ユーナリコードと、半固定長符号化とのうちの少なくとも1つを含む、
ことを特徴とする請求項15又は16に記載の電子機器。
【請求項18】
前記スキャン方式は、水平スキャンと、垂直スキャンとのうちの少なくとも1つを含む、
ことを特徴とする請求項15又は16に記載の電子機器。
【請求項19】
前記再構成データブロックは、復号対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである、
ことを特徴とする請求項15又は16に記載の電子機器。
【請求項20】
前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定するとき、前記プロセッサは、さらに、前記コンピュータ実行可能命令を実行することで、
前記ビットストリームに基づいて解析して、前記復号対象ユニットのグループ化方式を取得するステップ、又は、
前記復号対象ユニットの予測方式及び/又は変換方式に基づいて、前記グループ化方式を取得するステップを実行するために用いられる、
ことを特徴とする請求項15又は16に記載の電子機器。
【請求項21】
各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るとき、前記プロセッサは、さらに、前記コンピュータ実行可能命令を実行することで、
符号化アルゴリズムに従って復号して、各グループのグループパラメータを得、
各グループの前記グループパラメータに基づいて、半固定長符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るステップを実行するために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む、
ことを特徴とする請求項15又は16に記載の電子機器。
【請求項22】
前記符号化アルゴリズムに従って復号して、各グループのグループパラメータを得るとき、前記プロセッサは、さらに、前記コンピュータ実行可能命令を実行することで、
トランケーテッド・ユーナリコードに対応する復号方式に基づいて復号して、各グループのグループパラメータを得るステップを実行するために用いられる、
ことを特徴とする請求項21に記載の電子機器。
【請求項23】
前記復号対象ユニットの復号方式がゴロム・ライス符号化又はk次指数ゴロム符号化のいずれかである場合、前記復号対象ユニットのグループ化方式を決定するとき、前記プロセッサは、さらに、前記コンピュータ実行可能命令を実行することで、
前記復号対象ユニットの予測方式及び/又は変換方式に基づいて、前記復号対象ユニットのグループ化方式を取得することを実行するために用いられる、
ことを特徴とする請求項15又は16に記載の電子機器。
【請求項24】
プロセッサとコンピュータ可読記憶媒体とを含む電子機器であって、
前記コンピュータ可読記憶媒体には、前記プロセッサによって実行可能なコンピュータ実行可能命令が記憶され、
前記プロセッサは、前記コンピュータ実行可能命令を実行することで、
元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得、
前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得、
各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るステップを実行するために用いられる、
ことを特徴とする電子機器。
【請求項25】
プログラム又は命令を含む可読記憶媒体であって、前記プログラム又は命令がプロセッサによって実行されると、請求項1~9のいずれか1項に記載の方法、又は、請求項10に記載の方法が実行される、
ことを特徴とする可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理の技術分野に関し、特にビデオ符号化復号方法及び装置に関する。
【背景技術】
【0002】
コンピュータビジョンの分野において、ビデオを効果的に記憶・伝送するために、通常、ビデオ符号化により画像圧縮を行う必要がある。画像圧縮は、主に非可逆圧縮と可逆圧縮(ロスレス圧縮)を含む。このうち、可逆圧縮は、画像データの統計的冗長性を利用した画像圧縮であり、歪みを発生させることなく元の画像データを完全に復元することができる。また、再構成画像と元の画像との間に誤差があり、その誤差が一定の範囲内に制限される場合は、ニアロスレス圧縮(準可逆圧縮)と呼ばれる。ニアロスレス圧縮ではある程度の歪みが生じるが、視覚画像では無視できる程度であるため、ニアロスレス圧縮は可逆圧縮と考えてもよい。
【0003】
現在の可逆圧縮(ニアロスレス圧縮を含む)の符号化復号方式において、例えば、コンテキスト適応型2値算術符号化(Context-based Adaptive Binary Arithmetic Coding、CABAC)圧縮方式は、多くの確率モデル、コンテキストモデリング、2値算術符号化などのアルゴリズムに関連しており、処理プロセスが複雑である。また、ゴロム符号化に基づくGolomb-Rice符号化方式では、その符号化過程において冗長な計算が発生し、符号化復号性能が低い。そのため、符号化復号効率が高く、かつアルゴリズムの複雑度が低いビデオ符号化復号方法の提案が急務となっている。
【発明の概要】
【0004】
本発明は、従来技術におけるビデオ符号化復号の性能が低い、又は符号化復号アルゴリズムの複雑度が高いという問題を解決するためのビデオ符号化復号方法及び装置を提供する。
【0005】
上記目的を達成するために、本発明は以下の技術的解決策を採用する。
【0006】
第1の態様において、ビデオ符号化復号方法が提供され、当該方法は、
復号側が復号対象ユニットのビットストリームを得るステップと、
前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定するステップと、
各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップと、
前記復号対象ユニットの前記スキャン方式に基づいて、各グループの前記係数ブロック内の係数を1つずつ復元して、前記復号対象ユニットに対応する再構成データブロックを得るステップと、を含む。
【0007】
一実施形態において、グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。
【0008】
一実施形態において、符号化方式は、ユーナリ(unary)コード、トランケーテッド・ユーナリ(Truncated unary)コード、トランケーテッド・バイナリ(Truncated binary)コード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス(Truncated Rice)符号化、ハフマン(Huffman)符号化、及びゴロム・ライス(Golomb-Rice)符号化のうちの少なくとも1つを含む。
【0009】
一実施形態において、スキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン及びヒルベルトスキャンのうちの少なくとも1つを含む。
【0010】
一実施形態において、再構成データブロックは、復号対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである。
【0011】
一実施形態において、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定するステップは、
符号化側と復号側の事前合意又はコンテキスト情報に基づいて、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを決定するステップ、又は、
前記ビットストリームに基づいて解析して、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを取得するステップ、又は、
前記復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、前記グループ化方式を取得するステップを含む。
【0012】
一実施形態において、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップは、
符号化アルゴリズムに従って復号して、各グループのグループパラメータを得るステップと、
各グループの前記グループパラメータに基づいて、前記半固定長符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るステップと、を含み、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0013】
一実施形態において、前記符号化アルゴリズムに従って復号して、各グループのグループパラメータを得るステップは、
ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つの符号化方式に対応する復号方式に基づいて復号して、各グループのグループパラメータを得るステップを含む。
【0014】
一実施形態において、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップは、
固定長符号化アルゴリズムに従って復号して、各グループのグループライスパラメータを得、又は、コンテキストモデルに基づいて、各グループのグループライスパラメータを得るステップと、
各グループの前記グループライスパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るステップと、を含み、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0015】
一実施形態において、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップは、
コンテキストモデルに基づいて、各グループのグループライスパラメータを得るステップと、
固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得るステップと、
各グループの前記グループライスパラメータと前記グループパラメータ偏差とに基づいて、各グループのグループパラメータを得るステップと、
各グループの前記グループパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るステップと、を含み、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0016】
一実施形態において、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップは、
固定長符号化アルゴリズムに従って復号して、各グループの次数kを得、又は、コンテキストモデルに基づいて、各グループの次数kを得るステップと、
各グループの前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るステップと、を含み、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0017】
一実施形態において、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップは、
コンテキストモデルに基づいて、各グループの次数kを得るステップと、
固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得るステップと、
前記グループパラメータ偏差に基づいて各グループの次数kを更新するステップと、
各グループの更新後の前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るステップと、を含み、
前記復号対象ユニットに対応する係数ブロックは、各グループにおける複数の係数値を含む。
【0018】
一実施形態において、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップは、
復号によって得られた1つ以上のグループの係数、予測方式、量子化方式、及び変換方式のうちの少なくとも1つに基づいて、現在のグループの符号化方式を決定するステップと、
前記現在のグループの符号化方式に対応する復号方式に基づいて復号して、前記現在のグループの係数を得るステップと、を含み、
前記現在のグループの符号化方式は、ゴロム・ライス符号化、k次指数ゴロム符号化、及び半固定長符号化方式のうちのいくつかの組み合わせである。
【0019】
一実施形態において、符号化ユニットの複数のグループのうちの少なくとも2つのグループの符号化方式は異なる。
【0020】
一実施形態において、前記復号対象ユニットの復号方式がゴロム・ライス符号化又はk次指数ゴロム符号化のいずれかである場合、前記復号対象ユニットのグループ化方式を決定することは、、
前記復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、前記復号対象ユニットのグループ化方式を取得することを含む。
【0021】
本発明の上記実施形態によれば、復号側は、異なる予測方式に基づいて、異なるスキャン方式を導出するとともに、係数グループ化方式を導出することができ、このような係数グループ化は、予測された情報を結合し、グループ化された係数をより均一にすることができる。符号化側は、変化が小さい係数に対して、より小さい符号語(codeword)を割り当てて符号化することができ、それにより、符号化方式が柔軟であり、符号化性能を向上させることができる。また、複数の固定グループ化方式を設計することにより、半固定長符号化方式により適合させることができ、各符号化ブロックに対してよりよい2値化方法を柔軟に選択することができ、符号化アルゴリズムの複雑度が低い。
【0022】
第2の態様によれば、ビデオ符号化復号方法が提供され、当該方法は、
符号化側が元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得るステップと、
前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得るステップと、
各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るステップと、を含む。
【0023】
一実施形態において、グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。
【0024】
一実施形態において、符号化方式は、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つを含む。
【0025】
一実施形態において、スキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン及びヒルベルトスキャンのうちの少なくとも1つを含む。
【0026】
一実施形態において、符号化対象データブロックは、符号化対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである。
【0027】
第3の態様によれば、ビデオ復号装置が提供され、当該装置は、
復号対象ユニットのビットストリームを得るために用いられる送受信モジュールと、
前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定し、
各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得、
前記復号対象ユニットの前記スキャン方式に基づいて、各グループの前記係数ブロック内の係数を1つずつ復元して、前記復号対象ユニットに対応する再構成データブロックを得るために用いられる処理モジュールと、を含む。
【0028】
一実施形態において、グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。
【0029】
一実施形態において、符号化方式は、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つを含む。
【0030】
一実施形態において、スキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン及びヒルベルトスキャンのうちの少なくとも1つを含む。
【0031】
一実施形態において、再構成データブロックは、復号対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである。
【0032】
一実施形態において、処理モジュールは、具体的に、
符号化側と復号側の事前合意又はコンテキスト情報に基づいて、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを決定し、又は、
前記ビットストリームに基づいて解析して、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを取得し、又は、
前記復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、前記グループ化方式を取得するために用いられる。
【0033】
一実施形態において、処理モジュールは、具体的に、
符号化アルゴリズムに従って復号して、各グループのグループパラメータを得、
各グループの前記グループパラメータに基づいて、前記半固定長符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0034】
一実施形態において、処理モジュールは、具体的に、
ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つの符号化方式に対応する復号方式に基づいて復号して、各グループのグループパラメータを得るために用いられる。
【0035】
一実施形態において、処理モジュールは、具体的に、
固定長符号化アルゴリズムに従って復号して、各グループのグループライスパラメータを得、又は、コンテキストモデルに基づいて、各グループのグループライスパラメータを得、
各グループの前記グループライスパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0036】
一実施形態において、処理モジュールは、具体的に、
コンテキストモデルに基づいて、各グループのグループライスパラメータを得、
固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得、
各グループの前記グループライスパラメータと前記グループパラメータ偏差とに基づいて、各グループのグループパラメータを得、
各グループの前記グループパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0037】
一実施形態において、処理モジュールは、具体的に、
固定長符号化アルゴリズムに従って復号して、各グループの次数kを得、又は、コンテキストモデルに基づいて、各グループの次数kを得、
各グループの前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0038】
一実施形態において、処理モジュールは、具体的に、
コンテキストモデルに基づいて、各グループの次数kを得、
固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得、
前記グループパラメータ偏差に基づいて各グループの次数kを更新し、
各グループの更新後の前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、各グループにおける複数の係数値を含む。
【0039】
一実施形態において、処理モジュールは、具体的に、
復号によって得られた1つ以上のグループの係数、予測方式、量子化方式、及び変換方式のうちの少なくとも1つに基づいて、現在のグループの符号化方式を決定し、
前記現在のグループの符号化方式に対応する復号方式に基づいて復号して、前記現在のグループの係数を得るために用いられ、
前記現在のグループの符号化方式は、ゴロム・ライス符号化、k次指数ゴロム符号化、及び半固定長符号化方式のうちのいくつかの組み合わせである。
【0040】
一実施形態において、符号化ユニットの複数のグループのうちの少なくとも2つのグループの符号化方式は異なる。
【0041】
一実施形態において、前記復号対象ユニットの復号方式がゴロム・ライス符号化又はk次指数ゴロム符号化のいずれかである場合、処理モジュールは、具体的に、
前記復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、前記復号対象ユニットのグループ化方式を取得するために用いられる。
【0042】
第4の態様によれば、ビデオ符号化装置が提供され、当該装置は、送受信モジュール及び処理モジュールを含み、
処理モジュールは、元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得、前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得、各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るために用いられ、
送受信モジュールは、符号化済みビットストリームを復号側に送信するために用いられる。
【0043】
一実施形態において、グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。
【0044】
一実施形態において、符号化方式は、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つを含む。
【0045】
一実施形態において、スキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン及びヒルベルトスキャンのうちの少なくとも1つを含む。
【0046】
一実施形態において、符号化対象データブロックは、符号化対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである。
【0047】
第5の態様によれば、符号化復号システムが提供され、当該符号化復号システムは、第3の態様に記載の装置と、第4の態様に記載の装置とを備える。
【0048】
第6の態様によれば、ビデオ符号化復号装置が提供され、当該装置は、メモリに接続されるプロセッサを含み、メモリは、コンピュータプログラム又は命令を記憶するために用いられ、プロセッサは、メモリに記憶されたコンピュータプログラム又は命令を実行して、前記装置に第1の態様に記載の方法を実行させるために用いられる。
【0049】
第7の態様によれば、ビデオ符号化復号装置が提供され、当該装置は、メモリに接続されるプロセッサを含み、メモリは、コンピュータプログラム又は命令を記憶するために用いられ、プロセッサは、メモリに記憶されたコンピュータプログラム又は命令を実行して、前記装置に第2の態様に記載の方法を実行させるために用いられる。
【0050】
第8の態様によれば、第1の態様に記載の方法を実行するための電子機器が提供される。
【0051】
第9の態様によれば、第2の態様に記載の方法を実行するための電子機器が提供される。
【0052】
第10の態様によれば、プログラム又は命令を含む可読記憶媒体が提供され、前記プログラム又は命令がプロセッサによって実行されると、第1の態様に記載の方法が実行される。
【0053】
第11の態様によれば、プログラム又は命令を含む可読記憶媒体が提供され、前記プログラム又は命令がプロセッサによって実行されると、第2の態様に記載の方法が実行される。
【0054】
第12の態様によれば、第1の態様に記載の方法を実行するために用いられる回路が提供される。
【0055】
第13の態様によれば、第2の態様に記載の方法を実行するために用いられる回路が提供される。
【0056】
第14の態様によれば、コンピュータアプリケーションプログラムが提供され、前記コンピュータアプリケーションプログラムがコンピュータ又はプロセッサ上で実行されるとき、前記コンピュータ又は前記プロセッサは、第1の態様に記載の方法を実行する。
【0057】
第15の態様によれば、コンピュータアプリケーションプログラムが提供され、前記コンピュータアプリケーションプログラムがコンピュータ又はプロセッサ上で実行されるとき、前記コンピュータ又は前記プロセッサは、第2の態様に記載の方法を実行する。
【0058】
理解できるように、上記で提供されたビデオ符号化復号装置、ビデオ符号化復号システム、コンピュータ可読記憶媒体又はコンピュータプログラム製品は、いずれも上記で提供された対応する方法によって実施されることができるため、それによって達成できる有益な効果は、上記で提供された対応する方法における有益な効果を参照することができ、ここでは説明を省略する。
【図面の簡単な説明】
【0059】
図1】本発明の一実施形態に係る符号化復号システムのアーキテクチャ図である。
図2】本発明の一実施形態に係るエンコーダの内部アーキテクチャ図である。
図3】本発明の一実施形態に係るデコーダの内部アーキテクチャ図である。
図4A】本発明の一実施形態に係るビデオ符号化復号のフローチャートである。
図4B】本発明の一実施形態に係るビデオ符号化復号方法のフローチャートである。
図5】本発明の一実施形態に係るビデオ符号化復号方法における復号対象ユニットの概略図である。
図6】本発明の一実施形態に係るビデオ符号化復号方法におけるグループ化及びスキャンの概略図である。
図7】本発明の一実施形態に係るビデオ符号化復号方法における復号対象ユニットにおけるデータ部分の概略図である。
図8】本発明の一実施形態に係るビデオ符号化復号方法における復号対象ユニットのグループ化方式の概略図である。
図9】本発明の一実施形態に係るビデオ符号化復号方法における復号対象ユニットのグループ化方式の概略図である。
図10】本発明の一実施形態に係るビデオ符号化復号装置の概略構成図である。
図11】本発明の実施例に係る電子機器のハードウェア構成図である。
【発明を実施するための形態】
【0060】
以下において、「第1」及び「第2」という用語は、説明のためのものに過ぎず、相対的な重要度を示したり暗示したり、また、示された技術的特徴の数を暗示的に示したりするものとして理解されるべきではない。したがって、「第1」、「第2」に限定される特徴は、1つ又は複数の該特徴を明示的又は暗示的に含み得る。本実施例の説明において、特に断らない限り、「複数」とは2つ以上を意味する。
【0061】
なお、本発明において、「例示的な」又は「例えば」という用語は、例、例示又は説明を示すために用いられる。本発明において「例示的な」又は「例えば」と記載されている任意の実施形態又は設計ソリューションは、他の実施形態又は設計ソリューションよりも好ましい又は有利であると解釈されるべきではない。具体的に言えば、「例示的な」又は「例えば」という用語の使用は、関連する概念を具体的に提示することを意図する。
【0062】
以下、本発明の実施例における添付の図面を参照しながら、本発明の実施例における技術案を明確且つ完全に説明する。明らかに、説明された実施例は本発明の一部の実施例に過ぎず、すべての実施例ではない。本発明の実施例に基づいて、当業者が創造的な労働をせずに取得した他のすべての実施例は、本発明の保護範囲に属する。
【0063】
まず、本発明の実施例に関わる技術用語について説明する。
ビデオシーケンス/画像シーケンス:ビデオにおける完全な画像は一般的に「フレーム」と呼ばれ、時系列に並んだ複数のフレームからなるビデオは、ビデオシーケンス(Video Sequence)と呼ばれ、又は画像シーケンスと呼ばれてもよい。
【0064】
ビデオ符号化技術:ビデオシーケンスには、空間的冗長性、時間的冗長性、視覚的冗長性、情報エントロピー冗長性、構造的冗長性、知識冗長性、重要度冗長性などの一連の冗長情報がある。ビデオシーケンスにおける冗長な情報を可能な限り除去し、ビデオを表すデータ量を削減させるために、ビデオ符号化(Video Coding)技術が提案され、ストレージ容量の削減と伝送帯域幅の節約という効果を達成する。ビデオ符号化技術は、ビデオ圧縮技術とも呼ばれる。
【0065】
ビデオ符号化のプロセスは、通常、予測、変換、量子化、およびエントロピー符号化などのプロセスを含み、エントロピー符号化によって量子化された変換係数を符号化することができる。具体的なプロセスについては後述するため、ここでは説明を省略する。
【0066】
国際汎用範囲において、Motion Picture Experts Group(MPEG)によって策定されたMPEG 2及びMPEG 4規格におけるPart 10のAdvanced Video Coding(AVC)、国際電気通信連合の電気通信標準化部門(International Telecommunication Union-Telecommunication Standardization Sector、ITU-T)によって策定されたH.263、H.264及びH.265(High Efficiency Video Coding standard、HEVCとも呼ばれる)などのビデオ圧縮符号化規格がある。
【0067】
なお、ハイブリッド符号化アーキテクチャに基づく符号化アルゴリズムでは、上記の圧縮符号化方式が混在してもよい。
【0068】
残差:ビデオ符号化プロセスでは、予測処理を通じて空間領域及び時間領域の冗長性を除去する必要があり、エンコーダは、予測を通じて予測値を取得し、元の画素値から予測値を減算して残差値を取得する。残差ブロックは、変換、量子化、エントロピー符号化の基本単位である。
【0069】
変換:ビデオ符号化プロセスにおいて、変換とは、空間領域における画素形式で記述された画像を変換領域の画像に変換し、且つ変換係数の形式で表すことを指す。大多数の画像は、平坦な領域と緩やかに変化する領域が多く含まれ、適切な変換プロセスにより、画像エネルギーを空間領域での散乱分布から変換領域での比較的集中した分布に変換させ、信号間の周波数領域の相関を取り除き、量子化処理と合わせてビットストリームを効果的に圧縮することができる。変換処理は、時間領域の画素値を周波数領域に変換することができ、実際の残差ブロックでは低周波成分が大きな割合を占めている、変換によりエネルギーを低周波領域に集中させる。すなわち、変換後の低周波係数の値が大きく、高周波係数の値が小さい。
【0070】
変換係数:変換と量子化後の残差ブロックの係数は変換係数と呼ばれる。残差ブロック内の画素値を係数と呼び、残差が変換された後、左上のものは低周波係数であり、右下のものは高周波係数である。左上から右下に向かって、周波数が大きくなる。
【0071】
2値化:バイナリ化とも呼ばれ、符号化する必要がある符号又は係数を2値化し、2値化された符号又は係数がバイナリ文字列に変換される。異なる2値化方法で同じ係数を符号化して得られたバイナリ文字列は、異なるバイナリ確率モデル及び異なる文字列長さを有する可能性がある。
【0072】
コンテキスト:一般的に、異なるシンタクス要素間は完全に独立しておらず、同じシンタクス要素自体も一定の記憶性を有する。したがって、条件付きエントロピーの理論に基づいて、他の符号化されたシンタクス要素を用いて条件付き符号化を行うことにより、独立符号化や記憶なし符号化に比べて符号化性能をさらに向上させることができる。これらの条件として用いられる符号化されたシンボル情報はコンテキストと呼ばれる。
【0073】
コンテキストモデル:ビデオ符号化復号において、コンテキストに基づいてシンボル確率を更新するプロセスはコンテキストモデルと呼ばれる。特定の適用条件に応じて、同じシンタックス要素で複数のコンテキストモデルを使用して、現在の条件におけるシンボル確率を適応的に更新することにより、ビットレートをさらに圧縮することができる。
【0074】
エントロピー符号化:情報エントロピーの原理に係る可逆符号化方式を指し、ビデオ圧縮の最後の処理モジュールにあり、ビデオシーケンスを表すための一連の要素記号を、伝送又は記憶のためのバイナリビットストリームに変換し、エントロピー符号化モジュールの出力データは、元のビデオ圧縮後の最終ビットストリームである。エントロピー符号化は、これらのビデオ要素記号の統計的冗長性を効果的に除去することができ、ビデオ符号化圧縮効率を保証するための重要なツールの1つである。
【0075】
ラスタースキャン:2次元の矩形ラスターを1次元ラスターにマッピングすることを指す。1次元ラスターの入り口は2次元ラスターの1行目から始まり、その後、2行目、3行目...とスキャンしていく。ラスターの行は、左から右にスキャンされる。
【0076】
右上対角スキャン:係数ブロックの右下の最後の係数からスキャンを開始し、係数ブロックの左上の最初の係数で終了することを指す。各小ブロック内のスキャン順序はいずれも右下-右上-左下-左上の順序であり、他の小ブロックはこれと同じである。ブロック間のスキャン順序は係数間のスキャン順序と同じであり、右下-右上-左下-左上である。
【0077】
水平往復スキャン:2次元矩形を1次元列にマッピングすることを指す。1次元列の入り口は2次元矩形の開始行から始まり、2次元矩形全体を1行ずつスキャンする。開始行の行スキャン方向は左から右であり、開始行の隣接行の行スキャン方向は右から左であり、任意の2つの隣接行は反対の行スキャン方向を有する。
【0078】
逆水平スキャン:係数ブロックの右下の最後の係数からスキャンを開始し、係数ブロックの左上の最初の係数で終了することを指す。各係数ブロック内で右から左へ、下から上へスキャンし、ブロック間のスキャン順序は右下ブロック-右上ブロック-左下ブロック-左上ブロックの順序である。
【0079】
逆垂直スキャン:係数ブロックの右下の最後の係数からスキャンを開始し、係数ブロックの左上の最初の係数で終了することを指す。各小ブロック内で下から上へ、右から左へスキャンする。
【0080】
Z-スキャン:一辺の長さが偶数である任意の正方形について、左上、右上、左下、右下の順にスキャンすることを指す。
【0081】
ユーナリ(unary)コード:簡単な2値化方法である。具体的に、非負の整数Nについて、そのユーナリコードは、N個の1と1個の0で表される。
【0082】
トランケーテッド・ユーナリ(Truncated unary)コード:ユーナリコードのバリエーションである。具体的に、符号化対象シンボルの最大値がN_maxであることが既知である場合、現在の符号化対象シンボルが非負の整数Nであると仮定し、N<N_maxであれば、トランケーテッド・ユーナリコードはユーナリコードであり、N=N_maxであれば、トランケーテッド・ユーナリコードはN個の1である。
【0083】
トランケーテッド・バイナリ(Truncated binary)コード:valの相関変数(stage、num0、num1及びthdなど)を計算し、0~(thd-1)について、そのバイナリシンボル列の長さがstageの固定長符号であり、thd~valについて、そのバイナリシンボル列の長さが(stage+1)の固定長符号である。
【0084】
ランレングス符号化:各値の連続出現回数を符号値として記録する。例えば:0001110011010100001100、圧縮後の出力:33221111422。
【0085】
固定長符号化:固定符号長を用いて符号化対象係数を符号化する。例えば、8ビットの2進数を用いて符号化するASCIIコードである。
【0086】
半固定長符号化:符号化対象係数を予測方向と残差の大きさに応じてグループ化し、グループ化方式を符号化し、各グループは1つの符号長を符号化し、同じグループ内の係数は同じ固定長を用いて符号化されることを指す。
【0087】
k次指数ゴロム符号化:k次指数ゴロム符号化は、プレフィックス(prefix)とサフィックス(suffix)との2つの部分を含み、符号化方法は、数字Xをバイナリ形式で書いて、最下位k個のビットを除去し、1を加算して、Tを求めるステップ1)と、Tのビット数を計算し、その前にT-1個の0を追加する必要があるステップ2)と、除去された最下位k個のビットをビット列の末尾に追加するステップ3)と、を含む。
【0088】
トランケーテッド・ライス(Truncated Rice)符号化:トランケーテッド・ライス符号化は、プレフィックス(prefix)とサフィックス(suffix)との2つの部分を含み、最大上限値cMax、ライスパラメータcRiceが既知であり、符号化対象シンボルcValを符号化する。
【0089】
ハフマン符号化:すべての係数の出現頻度を統計し、ハフマン木を構築し、確率が大きい係数に短い符号語を割り当て、確率が小さい係数に長い符号語を割り当てる。
【0090】
ゴロム・ライス(Golomb-Rice)符号化:Golomb-RiceはGolomb符号化の1つのバリエーションであり、Golomb符号化との違いは、パラメータmの制限条件が、mが2のべき乗でなければならないことである。具体的に、パラメータmを初期化し、mは2のべき乗でなければならず、qとrを計算し、ここで、q=N/mであり、r=N(m-1)であり、ユーナリコードを用いてqを符号化し、rのバイナリビットの下位log2(m)ビットをrの符号語とする。
【0091】
以下、JPEG-LS符号化モデルと組み合わせてゴロム・ライス符号化アルゴリズムを紹介する。
【0092】
JPEG-LS符号化アルゴリズムにおいて、周囲の再構成画素値を用いてある方向の画素勾配を計算し、現在の画素の予測方向に基づいて1つの勾配値を計算し、又は経験に基づいて、水平方向の勾配値又は垂直方向の勾配値を計算し、勾配を量子化してもよい。
【0093】
JPEG-LSに従って、勾配の閾値パラメータT1、T2及びT3を計算する。
【数1】
【0094】
ここで、nは画像ビット幅であり、Nearは量子化歪みパラメータである。閾値パラメータT1、T2、T3に従って、勾配を以下のように量子化する。
【数2】
【0095】
ここで、Dは勾配計算値を表す。iは複数の方向を表す。量子化された勾配に基づいて、対応するコンテキスト・インデックス
【数3】
を得る。
【0096】
インデックス値Qの符号signと残差補正値C[Q](コンテキスト再構成画素の残差を累計計算することによって得られる)とに基づいて適応誤差補正を行う(SAOのように、予測値を補正する):
【数4】
【0097】
残差値Errvalの振幅をさらに小さくするために、ニアロスレス圧縮の量子化式は次のようになる。
【数5】
【0098】
ここで、signはインデックス値Qの符号signを表し、このときの予測誤差の値の範囲は±(range-1)である。
Range0=(2n-1)元の画素範囲、
Range0=±range予測残差範囲、
range1=-(range0-Near)/(2Near+1)量子化後の極小値、
range2=(range0+Near)/(2Near+1)量子化後の極大値、
range=range2+1。
【0099】
誤差値の範囲を再び圧縮するために、予測誤差Errvalが-range/2より小さい場合、予測誤差Errvalにrange値を加算する。この処理が完了した後、予測誤差Errvalが(1+range)/2以上である場合、予測誤差Errvalからrange値を減算する必要がある。この処理の後、すべての予測誤差Errvalの値の絶対値が(range+1)/2より大きくならない。モジュロ減算の式は以下の通りである。
【数6】
【0100】
最後に、コンテキストに基づいてゴロム符号化のk値を推定する。
【0101】
Aコンテキスト残差絶対値アキュムレータ(すなわち、最初のn個の符号化された残差値の絶対値の和)
【0102】
B+=Errval*(2Near+1)コンテキスト再構成値残差アキュムレータ(すなわち、最初のn個の符号化された再構成値の和)、予測誤差補正パラメータC[Q]を計算するために使用される。Nは、コンテキスト環境に対応するカウンタであり、当該コンテキスト環境の出現回数を記憶する。C[Q]の値は、B/Nの値(補正残差の平均値)が0.5以上増加する毎に1ずつ増加し、B/Nの値が0.5以上減少する毎に1ずつ減少する。一方、計算を局所特徴により一致させるために、閾値N0を設定することができ、NがN0より大きい場合、NとAの値が半分になり、同時にBとC[Q]の値も半分になる。
【0103】
ここで、Kは、現在の残差分布が幾何学的分布に適合するという仮定の下で導出された期待値として計算される。正の整数mをパラメータとして、nに対してゴロム符号化を行うことは、n%mのバイナリコードとn/mのユーナリコードとの2つの部分に分けられる。幾何学的分布の符号化される変数に対して、符号化後の平均符号長が最も短くなるように、1つのmが存在する。mの値が2^kであるときのゴロム符号化は、ゴロム・ライス符号化と呼ばれる。ここで、K=min{k1|2k1N>=A}である。
【0104】
残差の元の範囲は±(range+1)/2であり、それをマッピングする。
【数7】
【0105】
Merrvalに対してゴロム・ライス符号化を用いる。
【0106】
一方、平坦な領域、すなわちDi=0については、ランレングス符号化を直接に用いる。隣接画素a=b=c=dが検出された場合、すなわち、g1=g2=g3=0である場合、符号化が非常に平坦な領域まで進んだことを示し、ランレングス符号化モードに入る。ランレングスモードにおいて、現在の画素xの後の画素がxと等しいか否かを検出し続け(ニアロスレスモードでは、xとの差が許容範囲内にあるか否かを判断する)、それが満たされると、後に検出し続け、同じ値の数(xを含む)をランレングス(Run Length)として記録する。
【0107】
従来技術において、SRCC(Scan Region-based Coefficient Coding)符号化技術は、主に非可逆符号化において、残差値0が多い係数での符号化を対象としており、可逆符号化やニアロスレス符号化に適用できない。コンテキスト適応型2値算術符号化(Context-based Adaptive Binary Arithmetic Coding、CABAC)の技術プロセスは比較的複雑であり、符号化復号の複雑度が増し、ニアロスレス圧縮に使用することは好ましくない。既存のGolomb-Rice符号化及び半固定長符号化は、可逆符号化やニアロスレス符号化に比較的良い効果を有するが、Golomb符号化の符号長は、選定された次数kに依存し、kの値が不正確であると、2値化後の符号長が非常に長くなるため、一般的にk値を迅速に更新するポイント毎(Pointwise)符号化のみに適用する。半固定長符号化は、符号長を一定の範囲内に効果的に制御することができるが、各係数を符号化する前に、これらの係数の符号長を先に符号化する必要があるため、この方法は、一般的にグループ化符号化に適用される。グループ内の係数の数が少なすぎると、この方法は、平均符号長を増加させるが、符号化係数の数を増加させると、係数値の範囲の増加をもたらすことが多い。グループ内の各係数が同じ符号長を使用することにより、グループ内の最大値が大きくなると、平均符号長が長くなる。これらの2つの方式にはいずれもいくつかの不足があるため、これらの2つの符号化方式を組み合わせて、可逆符号化及びニアロスレス符号化に基づく係数符号化方式を提案する。
【0108】
次に、本発明の実施例の実施環境及び応用シーンについて簡単に説明する。本発明で提供されるビデオ符号化復号方法は、図1に示されるビデオ符号化復号システムに適用することができる。
【0109】
以下、本発明の実施例が適用されるシステムアーキテクチャについて説明する。図1は、本発明の一実施例が適用される符号化復号システム(符号化及び復号システムと呼ば得る)10のアーキテクチャの概略図である。図1に示すように、符号化復号システム10は、ソース機器11と、宛先機器12とを含み得る。ソース機器11は、画像を符号化するために用いられるため、ビデオ符号化装置と呼ばれてもよい。宛先機器12は、ソース機器11により生成された符号化画像データを復号するために用いられるため、ビデオ復号装置と呼ばれてもよい。
【0110】
ソース機器11及び宛先機器12は、例えば、デスクトップコンピュータ、モバイルコンピューティングデバイス、ラップトップ(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、携帯電話、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車載コンピュータ、無線通信デバイスなどの様々な装置を含んでもよい。
【0111】
任意選択で、図1のソース機器11及び宛先機器12は2つの別個の機器であってもよく、又は、ソース機器11及び宛先機器12は同じ機器であってもよく、すなわち、ソース機器11又は対応する機能、及び宛先機器12又は対応する機能は、同じ機器に統合されてもよい。
【0112】
ソース機器11と宛先機器12との間で通信を行うことができ、例えば、宛先機器12は、ソース機器11から符号化画像データを受信してもよい。一例では、ソース機器11と宛先機器12との間に1つ又は複数の通信媒体が含まれてもよく、1つ又は複数の通信媒体を介して符号化画像データを伝送する。当該1つ又は複数の通信媒体は、ルータ、スイッチ、基地局又はソース機器11から宛先機器12への通信を容易にする他の機器を含んでもよい。
【0113】
図1に示すように、ソース機器11はエンコーダ112を含み、オプションとして、ソース機器11は、画像プリプロセッサ111と、通信インタフェース113とをさらに含んでもよい。ここで、画像プリプロセッサ111は、受信した符号化対象画像に対して前処理を実行するために用いられる。例えば、画像プリプロセッサ111によって実行される前処理は、レタッチ(retouch)、色フォーマット変換(例えば、RGBフォーマットからYUVフォーマットへの変換)、色調整又はノイズ除去などを含み得る。エンコーダ112は、前処理された画像を受信し、相関予測モード(例えば、本明細書の各実施例における予測モード)を用いて前処理された画像を処理し、符号化画像データを提供するために用いられる。いくつかの実施形態では、エンコーダ112は、以下の実施形態における画像符号化プロセスを実行するために用いられてもよい。通信インタフェース113は、符号化画像データを宛先機器12又は任意の他の機器(例えば、メモリ)に伝送して、記憶又は直接再構成するために用いられてもよい。他の機器は、復号又は記憶のための任意の機器であってもよい。また、通信インタフェース113は、符号化画像データを適切なフォーマットにカプセル化してから伝送してもよい。
【0114】
任意選択で、上記の画像プリプロセッサ111、エンコーダ112、及び通信インタフェース113は、ソース機器11内のハードウェアコンポーネントであってもよく、又はソース機器11内のソフトウェアプログラムであってもよく、本発明の実施例は限定されない。
【0115】
引き続き図1に示すように、宛先機器12はデコーダ122を含み、オプションとして、宛先機器12は、通信インタフェース121と、画像ポストプロセッサ123とをさらに含んでもよい。ここで、通信インタフェース121は、ソース機器11又は任意の他のソース機器から符号化画像データを受信するために用いられてもよい。当該任意の他のソース機器は、例えば、記憶機器である。また、通信インタフェース121は、通信インタフェース113により伝送されたデータをデカプセル化して符号化画像データを取得してもよい。デコーダ122は、符号化画像データを受信し、復号画像データ(再構成された画像データ又は再構成済み画像データとも呼ばれる)を出力するために用いられる。いくつかの実施形態では、デコーダ122は、以下の実施形態で説明される復号プロセスを実行するために用いられてもよい。
【0116】
画像ポストプロセッサ123は、復号画像データに対して後処理を実行して、後処理された画像データを取得するために用いられる。画像ポストプロセッサ123によって実行される後処理は、色フォーマット変換(例えば、YUVフォーマットからRGBフォーマットへの変換)、色調整、レタッチ、又はリサンプリング、又は任意の他の処理を含んでもよく、また、後処理された画像データを表示機器に伝送して表示するために用いられてもよい。
【0117】
同様に、任意選択で、上記の通信インタフェース121、デコーダ122、及び画像ポストプロセッサ123は、宛先機器12内のハードウェアコンポーネントであってもよく、宛先機器12内のソフトウェアプログラムであってもよく、本発明の実施例は限定されない。
【0118】
以下、図1におけるエンコーダ及びデコーダの構成を簡単に説明する。
【0119】
図2を参照すると、図2は、本発明の一実施例を実施するためのンコーダ20の一例の概略ブロック図である。図2において、エンコーダは、予測処理部201と、残差演算部202と、変換処理部203と、量子化部204と、エントロピー符号化部205と、逆量子化部206と、逆変換処理部207と、再構成部208と、フィルタ部209とを含む。任意選択で、エンコーダ20は、バッファと、復号画像バッファとをさらに含み得る。バッファは、再構成部208によって出力された再構成画像ブロックをバッファリングするために用いられ、復号画像バッファは、フィルタ部209によって出力されたフィルタリングされた画像ブロックをバッファリングするために用いられる。
【0120】
エンコーダ20への入力は、画像(符号化対象画像と呼ばれてもよい)の画像ブロックであり、画像ブロックは、現在の画像ブロック又は符号化対象画像ブロックと呼ばれてもよい。エンコーダ20は、符号化対象画像を複数の画像ブロックに分割するために用いられる分割部(図2では図示せず)をさらに含んでもよい。エンコーダ20は、符号化対象画像の符号化を完了するためにブロック毎に(block-by-block)符号化するために用いられ、例えば、各画像ブロックに対して符号化プロセスを実行する。
【0121】
予測処理部201は、画像ブロック(現在の符号化対象画像の現在の符号化対象画像ブロック、又は、現在の画像ブロックと呼ばれてもよく、画像ブロックの真値として理解され得る)及び再構成済み画像データを受信又は取得し、再構成済み画像データ内の関連データに基づいて現在の画像ブロックを予測して、現在の画像ブロックの予測ブロックを取得するために用いられる。オプションとして、予測処理部201は、インター予測部、イントラ予測部、及びモード選択部を含んでもよい。モード選択部は、イントラ予測モード又はインター予測モードを選択するために用いられる。イントラ予測モードが選択される場合、イントラ予測部により予測処理を行う。インター予測モードが選択される場合、インター予測部により予測処理を行う。
【0122】
残差演算部202は、画像ブロックの真値と当該画像ブロックの予測ブロックとの間の残差を計算して、残差ブロックを取得するために用いられる。例えば、画素毎に画像ブロックの画素値から予測ブロックの画素値を減算する。
【0123】
変換処理部203は、残差ブロックに対して離散コサイン変換(discrete cosine transform、DCT)又は離散サイン変換(discrete sine transform、DST)などの変換を実行して、変換領域において変換係数を得るために用いられる。変換係数は、変換残差係数とも呼ばれ得る。当該変換残差係数は、変換領域において残差ブロックを表すことができる。
【0124】
量子化部204は、スカラ量子化又はベクトル量子化を適用することによって変換係数を量子化して、量子化された変換係数を得るために用いられる。量子化された変換係数は、量子化された残差係数と呼ばれてもよい。量子化処理により、変換係数の一部又は全部に関連するビット深度が低減される。例えば、nビットの変換係数は、量子化時にmビットの変換係数に切り捨てられてもよく、nはmより大きい。量子化の程度は、量子化パラメータ(quantization parameter、QP)を調整することによって変更され得る。例えば、スカラ量子化に対して、異なるスケールを適用して、より細かい量子化又はより粗い量子化を実現することができる。より小さい量子化ステップはより細かい量子化に対応し、より大きい量子化ステップはより粗い量子化に対応する。適切な量子化ステップは、量子化パラメータ(QP)によって示されてもよい。
【0125】
エントロピー符号化部205は、上記の量子化された残差係数に対してエントロピー符号化を行い、符号化ビットストリームの形で符号化画像データ(すなわち、現在の符号化対象画像ブロックの符号化結果)を出力し、次いで、符号化ビットストリームを、デコーダに伝送するか、又は後続のデコーダへの送信又は検索のために記憶するために用いられる。エントロピー符号化部205は、現在の画像ブロックの他のシンタックス要素をエントロピー符号化するようにさらに用いられてよく、例えば、予測モードをビットストリームにエントロピー符号化する。エントロピー符号化アルゴリズムは、可変長符号化(Variable Length Coding、VLC)アルゴリズム、コンテキスト適応VLC(Context Adaptive VLC、CAVLC)アルゴリズム、算術符号化アルゴリズム、コンテキスト適応型2値算術符号化(Context-based Adaptive Binary Arithmetic Coding、CABAC)アルゴリズム、シンタクスベースコンテキスト適応型2値算術符号化(Syntax-based Context-adaptive Binary Arithmetic Coding、SBAC)アルゴリズム、及び確率区間分割エントロピー(Probability Interval Partitioning Entropy、PIPE)アルゴリズムを含むが、これに限定されない。
【0126】
逆量子化部206は、上記の量子化係数を逆量子化して、逆量子化係数を得るために用いられる。当該逆量子化は、上記の量子化部204の逆適用であり、例えば、量子化部204と同じ量子化ステップに基づいて、又は、量子化部204と同じ量子化ステップを使用して、量子化部204によって適用される量子化方式の逆量子化方式を適用する。逆量子化係数は、逆量子化された残差係数と呼ばれてもよい。
【0127】
逆変換処理部207は、上記の逆量子化係数に対して逆変換を行うために用いられる。理解すべきものとして、当該逆変換は、上記の変換処理部203の逆適用であり、例えば、逆変換は、逆離散コサイン変換(discrete cosine transform、DCT)又は逆離散サイン変換(discrete sine transform、DST)を含み、画素領域(又はサンプル領域と呼ばれる)において逆変換ブロックを取得する。逆変換ブロックは、逆変換逆量子化されたブロック又は逆変換残差ブロックと呼ばれてもよい。
【0128】
再構成部208は、逆変換ブロック(すなわち、逆変換残差ブロック)を予測ブロックに追加して、サンプル領域において再構成ブロックを取得するために用いられる。再構成部208は、加算器であってもよい。例えば、残差ブロックのサンプル値(すなわち、画素値)と予測ブロックのサンプル値とを加算する。当該再構成部208によって出力された再構成ブロックは、その後、イントラ予測モードで使用されるなど、他の画像ブロックを予測するために使用されてもよい。
【0129】
フィルタ部209(又は「フィルタ」と略称する)は、画素変換を円滑に行い、又は画質を向上させるために、再構成ブロックをフィルタリングして、フィルタリングされたブロックを取得するために用いられる。フィルタ部は、1つ以上のループフィルタ、例えば、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset、SAO)フィルタ、又は、バイラテラルフィルタ、適応ループフィルタ(adaptive loop filter、ALF)、鮮鋭化フィルタ又は平滑化フィルタ、又は協調フィルタなどの他のフィルタを表すことを意図しているループフィルタ部であってもよい。任意選択で、当該フィルタ部209によって出力されたフィルタリングされたブロックは、その後、インター予測モードで使用されるなど、他の画像ブロックを予測するために使用されてもよい。
【0130】
具体的に、本発明の実施例では、エンコーダ20は、以下の実施例で説明されるビデオ符号化復号方法を実行するために用いられる。
【0131】
図3を参照すると、図3は、本発明の一実施例を実施するためのデコーダ30の一例の概略ブロック図である。ビデオデコーダ30は、例えば、エンコーダ20によって符号化された符号化画像データ(すなわち、符号化ビットストリーム、例えば、画像ブロックを含む符号化ビットストリーム及び関連するシンタックス要素)を受信して、復号画像を取得するために用いられる。デコーダ30は、エントロピー復号部301、逆量子化部302、逆変換処理部303、予測処理部304、再構成部305、及びフィルタ部306を含む。いくつかの例では、デコーダ30は、図2のエンコーダ20について説明された符号化パスと実質的に逆の復号パスを実行し得る。任意選択で、デコーダ30は、バッファと、復号画像バッファとをさらに含み得る。バッファは、再構成部305によって出力された再構成画像ブロックをバッファリングするために用いられ、復号画像バッファは、フィルタ部306によって出力されたフィルタリング画像ブロックをバッファリングするために用いられる。
【0132】
エントロピー復号部301は、符号化画像データに対してエントロピー復号を行い、量子化係数及び/又は復号された符号化パラメータ(例えば、復号パラメータは、インター予測パラメータ、イントラ予測パラメータ、フィルタパラメータ、及び/又は他のシンタックス要素のうちの任意の1つ又はすべてを含み得る)を得るために用いられる。エントロピー復号部301は、予測処理部が符号化パラメータに基づいて予測処理を行うために、上記の復号された符号化パラメータを予測処理部304に転送するためにさらに用いられる。
【0133】
逆量子化部302の機能は、エンコーダ20の逆量子化部206の機能と同じであってもよい。逆量子化部302は、エントロピー復号部301によって復号された量子化係数を逆量子化するために用いられる。
【0134】
逆変換処理部303の機能は、エンコーダ20の逆変換処理部207の機能と同じであってもよい。再構成部305(例えば、加算器)の機能は、エンコーダ20の再構成部208の機能と同じであってもよい。逆変換処理部303は、上記の量子化係数に対して逆変換(例えば、逆DCT、逆整数変換、又は概念的に類似する逆変換処理)を行い、逆変換ブロック(逆変換残差ブロックと呼ばれてもよい)を取得するために用いられる。当該逆変換ブロックは、画素領域における現在の画像ブロックの残差ブロックである。
【0135】
予測処理部304は、符号化画像データ(例えば、現在の画像ブロックの符号化ビットストリーム)及び再構成済み画像データを受信又は取得するために用いられる。予測処理部304は、例えば、エントロピー復号部302から予測関連パラメータ及び/又は選択された予測モードに関する情報(すなわち、復号された符号化パラメータ)を受信又は取得し、再構成済み画像データにおける関連データ及び復号された符号化パラメータに基づいて現在の画像ブロックを予測して、現在の画像ブロックの予測ブロックを取得してもよい。任意選択で、予測処理部304は、インター予測部、イントラ予測部、及びモード選択部を含んでもよい。モード選択部は、イントラ予測モード又はインター予測モードを選択するために用いられる。イントラ予測モードが選択される場合、イントラ予測部は、予測処理により行う。インター予測モードが選択される場合、インター予測部により予測処理を行う。
【0136】
再構成部305は、逆変換ブロック(すなわち、逆変換残差ブロック)を予測ブロックに追加して、サンプル領域において再構成ブロックを取得するために用いられる。例えば、逆変換残差ブロックのサンプル値と予測ブロックのサンプル値とを加算する。
【0137】
フィルタ部306は、再構成ブロックをフィルタリングして、フィルタリングされたブロックを取得するために用いられる。当該フィルタリングされたブロックは、復号された画像ブロックである。
【0138】
具体的に、本発明の実施例では、デコーダ30は、以下の実施例で説明されるビデオ復号方法を実行するために用いられる。
【0139】
なお、本発明の実施例におけるエンコーダ20及びデコーダ30では、ある部分の処理結果は、さらに処理された後に次の部分に出力されてもよい。例えば、補間フィルタリング、動きベクトル導出、又はフィルタリングなどの部分の後に、対応する部分の処理結果はClip又はシフトshiftなどの動作がさらに実行される。
【0140】
本発明の実施例で提供されるビデオ復号方法、ビデオ符号化方法は、任意の画像又はビデオ画像を圧縮符号化又は復号する機能を有する電子機器によって実行されてもよい。いくつかの実施例では、当該電子機器は、ノートパソコン、タブレットパソコン、デスクトップコンピュータ、ポータブルコンピュータ等であってもよく、本発明の実施例はこれに限定されない。
【0141】
以下では、図1図3に示すビデオ符号化復号システムに基づいて、本発明はビデオ符号化/復号の可能な実施形態を提供する。図4Aに示すように、図4Aは、本発明に係るビデオ符号化/復号のフローチャートであり、当該ビデオ符号化/復号の実施形態は、手順[1](1)から手順[5]を含み、手順[1]から手順[5]は、上記のエンコーダ20、デコーダ30、ソース機器11、又は宛先機器12のうちのいずれか1つ以上によって実行され得る。
【0142】
手順[1]:1フレームの画像を互いに重ならない1つ以上の並列符号化ユニット(Coding Unit、CU)に分割する。当該1つ以上の並列符号化ユニットは、図4Aに示す並列符号化ユニット1及び並列符号化ユニット2のように、互いに依存関係を持たず、完全に並列/独立して符号化及び復号することができる。
【0143】
手順[2]:各並列符号化ユニットについて、それを互いに重ならない1つ以上の独立符号化ユニットに分割してもよい。各独立符号化ユニットは、互いに依存しなくてもよいが、いくつかの並列符号化ユニットのヘッダ情報を共有してもよい。
【0144】
例えば、独立符号化ユニットの幅はw_lcuであり、高さはh_lcuである。並列符号化ユニットが1つの独立符号化ユニットに分割される場合、独立符号化ユニットのサイズは並列符号化ユニットと完全に同じである。そうでない場合、独立符号化ユニットの幅は高さよりも大きくなければならない(エッジ領域でない限り)。
【0145】
通常、独立符号化ユニットは、固定のw_lcu×h_lcuであってもよい。w_lcu及びh_lcuは、いずれも2のN乗(N≧0)である。例えば、独立符号化ユニットのサイズは、128×4、64×4、32×4、16×4、8×4、32×2、16×2又は8×2などである。
【0146】
可能な一例として、独立符号化ユニットは、固定の128×4であってもよい。並列符号化ユニットのサイズが256×8である場合、並列符号化ユニットは4つの独立符号化ユニットに均等に分割されてもよい。並列符号化ユニットのサイズが288×10である場合、並列符号化ユニットは、2つの128×4の独立符号化ユニット+1つの32×4の独立符号化ユニットの第1/第2行、2つの128×2の独立符号化ユニット+1つの32×2の独立符号化ユニットの第3行に分割される。
【0147】
なお、独立符号化ユニットは、輝度Y、色度Cb、色度Crの3つの成分、又は赤(red、R)、緑(green、G)、青(blue、B)の3つの成分を含んでもよいし、これらの成分のうちの1つのみを含んでもよい。独立符号化ユニットが3つの成分を含む場合、これら3つの成分のサイズは完全に同じであっても異なってもよく、具体的には画像の入力フォーマットに関連する。
【0148】
手順[3]:各独立符号化ユニットについて、それを互いに重ならない1つ以上の符号化ユニットに分割してもよい。独立符号化ユニット内の各符号化ユニットは互いに依存してもよく、例えば、複数の符号化ユニットはプリコーディング及びプリデコーディングのために互いに参照してもよい。
【0149】
符号化ユニットと独立符号化ユニットのサイズが同じである場合(すなわち、独立符号化ユニットが1つの符号化ユニットのみに分割される場合)、そのサイズは、手順[2]で説明されるすべてのサイズであってもよい。
【0150】
独立符号化ユニットが互いに重ならない複数の符号化ユニットに分割される場合、その実行可能な分割例として、水平均等分割(符号化ユニットの高さが独立符号化ユニットと同じであるが、幅が異なり、その1/2、1/4、1/8、1/16などであってもよい)、垂直均等分割(符号化ユニットの幅が独立符号化ユニットと同じであり、高さが異なり、その1/2、1/4、1/8、1/16などであってもよい)、水平及び垂直均等分割(四分木分割)などがあり、水平均等分割が好ましい。
【0151】
符号化ユニットの幅がw_cuであり、高さがh_cuである場合、その幅は高さよりも大きくなければならない(エッジ領域でない限り)。通常、符号化ユニットは、固定のw_cu×h_cuであってもよい。w_cu及びh_cuはいずれも2のN乗(Nは0以上)であってもよく、例えば、16×4、8×4、16×2、8×2、8×1、4×1などである。
【0152】
可能な一例として、符号化ユニットは、固定の16×4であってもよい。独立符号化ユニットのサイズが64×4である場合、独立符号化ユニットは4つの符号化ユニットに均等に分割されてもよい。独立符号化ユニットのサイズが72×4である場合、符号化ユニットは、4つの16×4の独立符号化ユニット+1つの8×4の独立符号化ユニットに分割される。
【0153】
なお、符号化ユニットは、輝度Y、色度Cb、色度Crの3つの成分(又は赤R、緑G、青Bの3つの成分)を含んでもよいし、これらの成分のうちの1つのみを含んでもよい。符号化ユニットが3つの成分を含む場合、これら3つの成分のサイズは完全に同じであっても異なってもよく、具体的には画像の入力フォーマットに関連する。
【0154】
なお、手順[3]は、ビデオ符号化復号方法における任意選択のステップであり、ビデオエンコーダ/デコーダは、手順[2]で得られる独立符号化ユニットの残差係数(又は残差値)を符号化/復号してもよい。
【0155】
手順[4]:符号化ユニットについて、それを互いに重ならない1つ以上の予測グループ(Prediction Group、PG)に分割してもよい。PGはGroupと略称されてもよい。各PGは、選択された予測モードに従って符号化復号を行い、PGの予測値を取得し、符号化ユニット全体の予測値を構成する。予測値と、符号化ユニットの元の値とに基づいて、符号化ユニットの残差値を取得する。
【0156】
手順[5]:符号化ユニットの残差値に基づいて、符号化ユニットをグループ化し、互いに重ならない1つ以上の残差小ブロック(residual block、RB)を取得し、各RBの残差係数を選択されたモードに従って符号化復号し、残差係数ストリームを形成する。具体的に、残差係数を変換する場合と変換しない場合の2種類に分けられる。
【0157】
ここで、手順[5]における残差係数の符号化復号方法の選択されたモードは、半固定長符号化方法、指数ゴロム(Golomb)符号化方法、Golomb-Rice符号化方法、トランケーテッド・ユーナリコード符号化方法、ランレングス符号化方法、元の残差値を直接符号化するなどのいずれかを含み得るが、これらに限定されない。
【0158】
例えば、ビデオエンコーダは、RB内の係数を直接に符号化してもよい。
【0159】
また、例えば、ビデオエンコーダは、残差ブロックに対してDCT、DST、Hadamard変換などの変換を行い、変換後の係数に対して符号化を行ってもよい。
【0160】
可能な一例として、RBが小さい場合、ビデオエンコーダは、RB内の各係数に対して統括的に量子化を直接行ってから、2値化符号化を行ってもよい。RBが大きい場合、RBはさらに複数の係数グループ(coefficient group、CG)に分割され、各CGを統括的に量子化し、その後、2値化符号化を行ってもよい。本発明のいくつかの実施例では、係数グループ(CG)と量子化グループ(QG)は同じであってもよい。
【0161】
以下、半固定長符号化方式で残差係数を符号化する部分を例示的に説明する。まず、1つのRBブロック内の残差絶対値の最大値を修正最大値(modified maximum、mm)と定義する。次に、当該RBブロック内の残差係数の符号化ビット数を決定する(同じRBブロック内の残差係数の符号化ビット数は一致する)。例えば、現在のRBブロックのクリティカル限界(critical limit、CL)が2であり、現在の残差係数が1である場合、残差係数1を符号化するのに2ビット必要であり、これを01と表記する。現在のRBブロックのCLが7である場合、8ビットの残差係数及び1ビットの符号ビットを符号化することを表す。CLの決定は、現在のサブブロックのすべての残差が[-2^(M-1)、2^(M-1)]の範囲内にあるという条件を満たす最小のM値を見つけることである。-2^(M-1)と2^(M-1)の2つの境界値が同時に存在する場合、Mを1増加させる必要があり、すなわち、現在のRBブロックのすべての残差を符号化するためにM+1ビットが必要とされる。-2^(M-1)と2^(M-1)の2つの境界値のうちの1つのみが存在する場合、当該境界値が-2^(M-1)であるか2^(M-1)であるかを決定するために1つのTrailingビットを符号化する必要がある。すべての残差が-2^(M-1)又は2^(M-1)でない場合、当該Trailingビットを符号化する必要がない。
【0162】
また、いくつかの特殊な場合、ビデオエンコーダは、残差値ではなく、画像の元の値を直接に符号化してもよい。
【0163】
前述した問題点に基づき、本発明は、ロスレス圧縮符号化フレームワーク及びニアロスレス圧縮符号化フレームワークのためのビデオ符号化復号方法を提供する。当該方法は、元の画素(量子化/非量子化)の値、予測後(量子化/非量子化)の残差係数、又は変換後(量子化/非量子化)の変換係数を以下のように符号化することができる。(1)元の画素、残差係数及び変換係数の間のデータ分布の違いを考慮して、異なるデータについて、その分布特徴に応じて異なる符号化方法を使用する。
【0164】
(2)同時に、データに対して異なるスキャン方式を設計することができ、スキャンの方式はデータの分布を考慮する必要があり、振幅が近い係数をできるだけ一緒に分布させる。
【0165】
(3)スキャンして得られたデータに対して、それをグループ化してもよく、グループ化方式は、データの分布に基づいて不規則グループ化を行ってもよく、直接に固定グループ化を行ってもよい。データの具体的なグループ化状況は、符号化復号の合意によって一致してもよく、コンテキストに基づいて導出してもよく(符号化済みデータに基づいて導出すること、予測係数に基づいて導出すること、符号化済みのパラメータに基づいて導出することを含む)、符号化側からパラメータを伝送することによって得られてもよい。
【0166】
(4)異なるデータ分布に対して、符号化対象データに基づいて直接に符号化を行ってもよく、コンテキストに基づいてパラメータ推定し、符号化対象係数の符号化範囲を推定するか、又は関連する符号化対象係数の値を直接に推定してもよい。その後、推定値の範囲に基づいて、1つのパラメータ補正値を算出し、推定したパラメータをより正確にするために、1つのパラメータ補正値をさらに伝送するか否かを選択してもよい。
【0167】
(5)異なるデータ分布について、コンテキストに基づいてパラメータ推定を行い、次のグループ(各グループの係数の数は1以上であってもよい)の符号化係数の数値範囲を推定し、推定値に基づいて次のグループの係数の符号化方式を選択してもよい。
【0168】
(6)異なるデータ分布について、コンテキストに基づいてパラメータ推定を行い、ビットストリームから1つのパラメータ補正値を解析して、次のグループの符号化パラメータの数値範囲を取得し、数値範囲に基づいて次のグループの係数の符号化方式を選択してもよい。係数の異なる範囲に基づいて、異なる符号化方式又は符号化方法を選択してもよい。
【0169】
(7)時間領域におけるデータ分布が周波数領域におけるデータ分布と異なり、時間領域におけるデータ分布が比較的均一であり、周波数領域におけるデータの大きいエネルギーが低周波数情報に分布するため、変換係数の符号化は、変換後の係数の位置を考慮して特殊にグループ化してもよい。
【0170】
(8)係数を符号化する場合、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、ランレングス符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ゴロム・ライス符号化、ハフマン符号化、算術符号化又は適応可変長符号化などを選択してもよい。係数は、これらの符号化方式の1つ又は組み合わせを使って符号化されてもよい。
【0171】
具体的な実施形態において、符号化係数に対するスキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復(水平/垂直)スキャン、対角(左上、右上、左下、右下)スキャン、逆対角線スキャン、逆水平スキャン、逆垂直スキャン又は1つの固定のスキャンテンプレートに基づくスキャンなどから選択してもよい。
【0172】
全体として、本発明の実施例で提供される全体的な符号化プロセスは、復号プロセスの手順と一致し、ビットストリームに書き込まれる必要があるパラメータは、符号化側におけるビットレート歪み最適化(rate distortion optimization、RDO)によって取得されてもよく、推定によって取得されてもよい。本発明の実施例で提供されるビデオ符号化復号プロセスは、主に、グループ化符号化プロセスと、グループ化符号化不要プロセスとを含む。
【0173】
1、グループ化符号化プロセス:まず、係数を1次元ベクトルに変更し、符号化対象領域が3次元画像である場合、3次元画像を1つ以上の2次元係数ブロックに分割し、符号化対象領域が2次元係数ブロックである場合、符号化対象ブロックを一定のスキャン順序でスキャンし、2次元係数ブロックを1次元係数ベクトルになるようにスキャンする。
【0174】
次に、係数ベクトルを係数の大きさに基づいてグループ化し、振幅が近い係数を同じグループに分ける。いくつかの固定のグループ化方式に基づいて、1次元係数をグループ化し、具体的なグループ化情報を符号化するか、又は、予測方式、変換方式に基づいて、1次元係数のグループ化方式を導出する。同じグループ内の符号化係数は、1つのパラメータ(group_param)を用いてもよく、このパラメータは、後のすべての係数の符号化をガイドすることができる。パラメータ(group_param)は、固定長符号で符号化されてもよく、ユーナリコード又はトランケーテッド・ユーナリコードで符号化されてもよい。そして、group_paramに基づいて、ある符号化方式でグループ内の各係数を符号化する。
【0175】
2、グループ化符号化不要プロセス:グループ化方式と同様に、グループ化方法を削除し、係数毎に符号化を行い、各符号化対象係数に対して、コンテキストに基づいて符号化対象係数の値の範囲を導出し、この範囲に基づいて1つの符号化方式を選択して符号化を行ってもよい。
【0176】
以下、本発明の実施例の全体的な復号プロセスを簡単に説明する。a)係数に対するスキャン方法を決定する。b)係数のタイプ(元の値、変換係数、予測後の残差係数)を決定する。c)係数の符号化方法を決定する。d)符号化方法に基づいて、ビットストリームから各係数又は各グループの係数に必要なパラメータを復号する。e)係数の符号化方法に基づいて、コンテキスト情報に基づいて予測パラメータを導出する必要があるか否かを決定する。f)予測パラメータが存在する場合、予測パラメータ及びビットストリームにおいて解析されたパラメータに基づいて、係数の符号化方式に基づいて対応する復号を行い、そうでない場合、コンテキスト情報に基づいて予測パラメータを導出する。g)グループが存在する場合、ビットストリームに基づいて、各グループ内の復号係数を元の係数位置に順次戻し、そうでない場合、直接に復号してすべての係数値を得る。
【0177】
復号側のステップa)、ステップb)、及びステップc)において決定される方式は、ビットストリームによって解析されてもよく、符号化側と復号側によって合意されてもよく、復号側によって導出されてもよい(現在のブロックのサイズ又は予測方式、変換方式などのパラメータに基づいて決定される)。
【0178】
1、グループ化復号プロセスは、主に次のことを含む。まず、当該ブロックのスキャン方式を決定し、次に、スキャン後の係数のグループ分け方式を決定し、そして、ある復号方式を用いて各グループのパラメータ(group_param)を復号し、group_paramに基づいて、ある復号方法を用いてグループ内の各係数値を復号し、最後に、スキャン方式に基づいて、符号化ブロック内の係数を元の配列に復元する。
【0179】
2、グループ化復号不要プロセスは、主に次のことを含む。まず、当該ブロックのスキャン方式を決定し、コンテキストに基づいて現在の符号化係数の範囲を予測し、係数の値の範囲に基づいて、1つの復号方法を選択して復号を行う。
【0180】
以下、図面を参照しながら、本発明の実施例で提供されるビデオ復号方法、ビデオ符号化方法を詳細に説明する。
【0181】
本発明は、ビデオ復号方法を提供する。図4Bは、本発明の実施例で提供されるビデオ符号化復号方法のフローチャートである。当該方法における符号化プロセスは、前述のエンコーダによって実行されてもよく、復号プロセスは、前述のデコーダによって実行されてもよい。当該方法は、以下のステップを含んでもよい。
【0182】
401において、符号化側は、元の画像データにおける符号化対象ユニットを第1のスキャン方式でスキャンして係数シーケンスを得る。
【0183】
一実施形態において、符号化側は、元のデータブロックをスキャンし、異なるスキャン方式に基づいて符号化対象係数を取得してもよい。具体的に、第1のスキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復(水平/垂直)スキャン、対角(左上、右上、左下、右下)スキャン、逆水平スキャン、逆垂直スキャン、ヒルベルトスキャン又は1つの固定のスキャンテンプレートに基づくスキャンなどのいずれか1つを含んでもよい。ここで、各スキャン方式の具体的なスキャンプロセスについては、関連技術の説明を参照することができ、本発明ではこれについて限定しない。
【0184】
符号化側は、現在の係数の予測方式や変換方式などに基づいて、1つ以上のスキャン方式を導出してもよい。あるいは、符号化側は、符号化側と復号側の事前合意に基づいて、すべての係数に対して1つのスキャン方式を選択してもよく、これにより、復号側は、事前合意に基づいて当該スキャン方式を決定してもよい。
【0185】
一実施形態において、本発明の実施例におけるビデオ符号化復号方式は、元の画素の符号化、元の画素値を予測して得られる残差値の符号化、元の画素値を予測して得られる残差値を量子化して得られる係数の符号化、予測した残差値を変換して得られる変換係数の符号化、又は予測した残差値を変換して得られる変換係数を量子化して得られる係数の符号化などに適用可能である。以上のいくつかのデータの符号化は、いずれも本発明で提供される実施形態により符号化圧縮されてもよい。
【0186】
すなわち、本発明の実施形態において言及される元のデータブロック、符号化対象ユニット、又は復号して得られる再構成データブロックは、符号化対象画像の元の画素値で構成されるデータブロックであってもよいし、元の画素値を予測して得られる残差値で構成されるデータブロックであってもよいし、前記残差値を量子化して得られる係数で構成されるデータブロックであってもよいし、前記残差値を変換して得られる変換係数で構成されるデータブロックであってもよいし、前記残差値を変換して得られる変換係数をさらに量子化して得られる係数で構成されるデータブロックであってもよい。以下の実施例ではこれについての説明は繰り返さない。
【0187】
一実施形態において、本発明の実施例における符号化対象のデータシーケンスは、様々なサイズの係数ブロックであってよく、例えば、m×nのデータブロックであってもよい。ここで、m及びnの両方は64以下であり、例えば、符号化対象ユニットは、16×4の係数ブロック、16×1の係数ブロック、8×4の係数ブロック、8×2の係数ブロック、又は4×2の係数ブロックである。
【0188】
402において、符号化側は、係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得る。
【0189】
一実施形態において、前記グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。ここで、複数グループの符号化対象サブシーケンスにおける係数の数は同じであってもよく、異なってもよい。以下、具体的なグループ化方式については、具体的な実施例に基づいて説明し、ここでは説明を省略する。
【0190】
403において、符号化側は、各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化ビットストリームを得る。
【0191】
一実施形態において、前記符号化方式は、前述のユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号、及びゴロム・ライス符号化などのうちの少なくとも1つを含み得る。また、上記の符号化方式における複数の符号化方式の組み合わせであってもよい。以下、具体的な実施例に基づいて説明し、ここでは説明を省略する。
【0192】
一実施形態において、符号化対象サブシーケンスに対して決定される符号化方式は同じであってもよく、異なってもよい。以下、具体的な符号化方式については、具体的な実施例に基づいて説明し、ここでは説明を省略する。
【0193】
404において、符号化側は、ビットストリームを1つずつ復号側に伝送する。
【0194】
405において、復号側は、ビットストリームを取得し、復号対象ユニットのスキャン方式、グループ分け方式、及び各グループに対応する符号化方式を決定する。
【0195】
復号側は、符号化されたビットストリームを取得し、セグメント毎に復号してもよい。ここで、復号対象ユニットは、符号化されたビットストリームにおける復号側が復号処理を行うデータユニットであってもよい。
【0196】
一実施形態において、復号側は、符号化側と復号側の事前合意又はコンテキスト情報に基づいて、当該復号対象ユニットが使用するスキャン方式、グループ分け方式、及び各グループに対応する符号化方式のうちの少なくとも1つを決定してもよい。あるいは、復号側は、ビットストリームに基づいて、当該復号対象ユニットが使用するスキャン方式、グループ分け方式、及び各グループに対応する符号化方式のうちの少なくとも1つを解析してもよい。あるいは、復号側は、当該復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、各グループに対応するグループ化方式を取得してもよい。以下、具体的な実施例に基づいて説明し、ここでは説明を省略する。
【0197】
406において、復号側は、各グループの符号化方式に基づいて1つずつ復号し、復号対象ユニットに対応する係数ブロックを得る。
【0198】
一実施形態において、復号プロセスは、具体的に、以下のステップを含み得る。1、復号側が、符号化アルゴリズムに従って復号して、各グループのグループパラメータを得る。一例では、一実施形態において、グループパラメータの復号方式は、具体的に、復号側が、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つの符号化方式に対応する復号方式に基づいて復号して、各グループのグループパラメータを得ることを含んでよい。
【0199】
2、復号側は、各グループの前記グループパラメータに基づいて、前記半固定長符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得る。前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0200】
一実施形態において、復号プロセスは、具体的に、以下のステップを含み得る。1、復号側が、固定長符号化アルゴリズムに従って復号して、各グループのグループライスパラメータを得、又は、コンテキストモデルに基づいて、各グループのグループライスパラメータを得る。2、復号側が、各グループの前記グループパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して各グループの複数の係数値を得る。前記復号対象ユニットに対応する係数ブロックは、前記各グループの複数の係数値を含む。
【0201】
一実施形態において、復号プロセスは、具体的に、以下のステップを含み得る。1、復号側が、コンテキストモデルに基づいて、各グループのグループライスパラメータを得る。2、復号側が、固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得、各グループのグループライスパラメータとグループパラメータ偏差とに基づいて、各グループのグループパラメータを得る。一例において、グループライスパラメータとグループパラメータ偏差とに基づいて更新して、各グループのグループパラメータを得てもよく、具体的に、グループパラメータ=グループライスパラメータ+グループパラメータ偏差である。
【0202】
3、復号側は、各グループのグループパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得る。復号対象ユニットに対応する係数ブロックは、各グループにおける複数の係数値を含む。
【0203】
一実施形態において、復号プロセスは、具体的に、以下のステップを含み得る。1、復号側が、固定長符号化アルゴリズムに従って復号して、各グループの次数kを得、又は、コンテキストモデルに基づいて、各グループの次数kを得る。2、復号側が、各グループの前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得る。復号対象ユニットに対応する係数ブロックは、各グループにおける複数の係数値を含む。
【0204】
一実施形態において、復号プロセスは、具体的に、以下のステップを含み得る。1、復号側が、コンテキストモデルに基づいて、各グループの次数kを得る。2、復号側が、固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得、グループパラメータ偏差に基づいて各グループの次数kを更新する。
【0205】
3、各グループの更新後の前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得る。前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0206】
一実施形態において、復号プロセスは、具体的に、以下のステップを含み得る。1、復号側が、復号によって得られた1つ以上のグループの係数、予測方式、量子化方式、及び変換方式のうちの少なくとも1つに基づいて、現在のグループの符号化方式を決定する。2、復号側が、現在のグループの符号化方式に対応する復号方式に基づいて復号して、現在のグループの係数を得る。現在のグループの符号化方式は、ゴロム・ライス符号化、k次指数ゴロム符号化、及び半固定長符号化方式のうちのいくつかの組み合わせであってもよい。以下、具体的な実施例に基づいて説明し、ここでは説明を省略する。
【0207】
一実施形態において、上記のいずれかの符号化復号方式において、符号化ユニットの複数のグループのうちの少なくとも2つのグループの符号化方式は異なる。
【0208】
407において、復号側は、復号対象ユニットのスキャン方式に基づいて、復号対象ユニットの係数ブロック内の係数を復元して再構成データブロックを得る。
【0209】
復号側は、各グループの係数ブロック内の係数を1つずつ復元して、復号対象ユニットに対応する再構成データブロックを得る。
【0210】
一実施形態において、本発明の実施例に適用可能なスキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン又はヒルベルトスキャンのうちの少なくとも1つを含み得る。
【0211】
本発明の上記実施形態によれば、復号側は、異なる予測方式に基づいて、異なるスキャン方式を導出するとともに、係数グループ化方式を導出することができ、このような係数グループ化は、予測された情報を結合し、グループ化された係数をより均一にすることができる。符号化側は、変化が小さい係数に対して、小さい符号語を割り当てて符号化することができ、それにより、符号化方式が柔軟であり、符号化性能を向上させることができる。また、複数の固定グループ化方式を設計することにより、半固定長符号化方式により適合させることができ、各符号化ブロックに対してよりよい2値化方法を柔軟に選択することができ、符号化アルゴリズムの複雑度が低い。
【0212】
以下、いくつかの具体的な実施例を参照して、本発明の実施例の技術的手段を説明する。
【0213】
実施例1:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0214】
ステップ2において、復号側は、符号化側と復号側によって予め設定されたn種類のグループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0215】
ここで、前記グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含み得る。
【0216】
具体的に、固定長のグループ化方式は、例えば、符号化対象ユニット全体を1つのグループとし、又は、復号対象ユニット全体における4つの係数毎に1つのグループとし、又は、符号化対象ユニット全体における3つの係数毎に1つのグループとする。例示的に、符号化対象ユニットは12行4列のデータユニットであり、すなわち12×4の符号化対象ユニットであり、4つの係数毎に1つのグループとするグループ化方式の場合、12×4の符号化対象ユニットを12グループに分けることができる。3つの係数毎に1つのグループとするグループ化方式の場合、12×4の符号化対象ユニットを16グループに分けることができる。符号化対象ユニット全体を1つのグループとするグループ化方式の場合、当該12×4の符号化対象ユニットをそのまま1つのグループとすることができる。
【0217】
一例では、グループ化方式は、係数の配列位置に基づいてグループ分けを行う方式であってもよい。具体的に、符号化対象ユニット全体の各係数は、配列位置に従って2つのグループ、3つのグループ、4つのグループなどに均等に分割されてもよい。例えば、比率に従って2つのグループに均等に分けられ、例示的に、12×4の符号化対象ユニットについて、復号対象ユニット全体の係数の数N=48であり、1:1の比率に従って2つのグループに均等に分けられると、12×4の符号化対象ユニットにおける最初の24個の係数が1つのグループとされ、残りの最後の24個の係数が他のグループとされる。
【0218】
一例において、符号化対象ユニット全体における係数は、位置に従って2つのグループ、3つのグループ、4つのグループなどに不均一に分割されてもよい。例示的には、3つのグループに不均一に分割され、且つ分割の割合が2:1:1であってもよい。すなわち、係数の配列位置に従って、12×4の符号化対象ユニットにおける1~24の係数をグループ1とし、25~36の係数をグループ2とし、37~48の係数をグループ3としてもよい。
【0219】
一例において、グループ化方式は、各グループの係数の数に基づいてグループ化してもよい。例えば、符号化対象ユニット全体における2つの隣接係数毎に1つのグループとし、又は、3つの隣接係数毎に1つのグループとし、又は、4つの隣接係数毎に1つのグループとする。
【0220】
一例において、グループ化方式は、符号化対象ユニット全体における係数の配列位置に基づいてa個の点を間隔ごとに1つのグループとして分けてもよい。例えば、aが1である場合、符号化対象ユニット全体における係数位置が1点おきの係数を1つのグループとして、2つのグループに分けてもよい。aが2である場合、符号化対象ユニット全体における係数位置が2点おきの係数を1つのグループとして、3つのグループに分けてもよい。
【0221】
一例において、グループ化方式は、符号化対象ユニットにおける係数値の大きさに基づいてグループ分けを行うことであってもよい。符号化対象ユニットにおける係数値の大きさが予測できないため、一般的に係数値の大きさに基づいてグループ分けを行った後の各グループにおける係数の数が異なるため、このような分割方式は、本発明において半固定長グループ化方式と呼ばれてもよい。
【0222】
例示的に、係数値の大きさによるグループ化は、符号化対象ユニットにおける各係数がnより大きいか否かを決定してもよい。n以上の係数を1つのグループとし、nより小さい係数を1つのグループとしてもよい。あるいは、nより大きい係数を1つのグループとし、n以下の係数を1つのグループとしてもよい。
【0223】
ここで、nの値は、符号化側と復号側によって事前に合意され、又は、情報のやり取りによって決定され、又は、ビットストリームによって復号して決定され得る。
【0224】
例えば、符号化側と復号側は、n=2のような値を事前に合意してもよい。あるいは、復号側は、復号された再構成値又は予測値に基づいて予測し、値nを決定してもよい。又は、復号側は、復号された係数値に基づいて予測し、値nを決定してもよい。
【0225】
例えば、復号側は、復号された再構成値又は予測値に基づいて予測し、値nを決定し、次に、ビットストリームから現在の復号対象ユニットの各グループ内の各係数値がこの予測値nより大きいかどうかを解析し、次いで、nより大きい係数を1つのグループとし、n以下の係数を1つのグループとしてもよい。
【0226】
さらに、上記の複数のグループ化方式において、符号化対象ユニットにおける係数をグループ化した後、あるグループ内の係数の数が多い場合、二次グループ化を行ってもよい。例えば、符号化対象ユニットにおけるnより大きい係数を1つのグループに分け、当該グループ内の係数の数が係数の予め設定された数より大きい場合、当該グループに対して二次グループ化を行ってもよい。具体的に、二次グループ化の方式は、上記のいずれか1つのグループ化方式又は複数のグループ化方式の組み合わせに基づいてグループ化を行ってもよい。
【0227】
一例では、符号化対象ユニットにおける係数が変換係数である場合、グループ化方式は、符号化対象ユニット全体における変換システムの直流成分DC係数を1つのグループとし、交流成分AC係数を上記のいずれか1つのグループ化方式又は複数のグループ化方式の組み合わせに従ってグループ化してもよい。
【0228】
ステップ3において、復号側は、固定長符号を用いて各グループのパラメータ(group_param)を復号し、その後、各グループのパラメータ(group_param)に基づいて、固定長符号を用いて各グループ内の各係数値を1つずつ復号し、復号対象ユニットに対応する係数ブロックを得る。
【0229】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0230】
一実施形態において、符号化側及び復号側は、上記のいくつかのグループ化方式のうちの1つ又は複数を事前に合意又は設定してもよく、ビデオ符号化復号のプロセスにおいて、符号化側は、符号化対象ユニットの係数状況に基づいて、1つ又は複数のグループ化方式を選択してグループ化符号化を行う。復号側は、ビットストリームによる解析、符号化側とのシグナリングインタラクション、又はコンテキスト予測、導出などの方式によってグループ化方式を決定し、決定されたグループ化方式に基づいてビットストリームに対してグループ化解析を行ってもよい。また、復号側は、復号対象ユニット内の異なる画素の予測方向、予測モード、又は変換モードなどに基づいて、現在の復号対象ユニットにおける係数のグループ化方式を導出してもよい。具体的な例については後述するので、ここでは繰り返さない。
【0231】
一実施形態において、実例1における固定長のグループ化符号化方式又は半固定長のグループ化符号化方式に基づいて、各グループのパラメータ(group_param)に対して符号化及び復号を、以下のいずれか1つの符号化方式、又は複数の符号化方式の組み合わせを用いて行ってもよい。
【0232】
1、ユーナリ(unary)コード:簡単な2値化方法である。具体的に、非負の整数Nについて、そのユーナリコードは、N個の1と1個の0で表される。
【0233】
2、トランケーテッド・ユーナリ(Truncated unary)コード:ユーナリコードのバリエーションである。具体的に、符号化対象シンボルの最大値がN_maxであることが既知である場合、現在の符号化対象シンボルが非負の整数Nであると仮定し、N<N_maxであれば、トランケーテッド・ユーナリコードはユーナリコードであり、N=N_maxであれば、トランケーテッド・ユーナリコードはN個の1である。
【0234】
3、トランケーテッド・バイナリ(Truncated binary)コード:valの相関変数(stage、num0、num1及びthdなど)を計算し、0~(thd-1)について、そのバイナリシンボル列の長さがstageの固定長符号であり、thd~valについて、そのバイナリシンボル列の長さが(stage+1)の固定長符号である。
【0235】
4、固定長符号化:固定符号長を用いて符号化対象係数を符号化する。例えば、8ビットの2進数を用いて符号化するASCIIコードである。
【0236】
5、k次指数ゴロム符号化:k次指数ゴロム符号化は、プレフィックス(prefix)とサフィックス(suffix)との2つの部分を含み、符号化方法は、数字Xをバイナリ形式で書いて、最下位k個のビットを除去し、1を加算して、Tを求めるステップ1)と、Tのビット数を計算し、その前にT-1個の0を追加する必要があるステップ2)と、除去された最下位k個のビットをビット列の末尾に追加するステップ3)と、を含む。
【0237】
6、トランケーテッド・ライス(Truncated Rice)符号化:トランケーテッド・ライス符号化は、プレフィックス(prefix)とサフィックス(suffix)との2つの部分を含み、最大上限値cMax、ライスパラメータcRiceが既知であり、符号化対象シンボルcValを符号化する。
【0238】
具体的な符号化プロセスは、以下のステップを含む。(1)prefixを計算し、prefix=cVal>>cRice、prefixに対して、cMax>>cRiceを上限としてトランケーテッド・ユーナリコードで2値化する。(2)suffixを計算し、cVal<cMaxの場合、suffix=cVal-prefix<<cRice。cVal>=cMaxの場合、サフィックス(suffix)なし。suffixは固定長符号で計算され、ビット数はcRiceである。計算プロセスから分かるように、cRice=0である場合、トランケーテッド・ライス符号化はトランケーテッド・ユーナリコードに等しい。ここで、記号>>は右シフト演算を表し、<<は左シフト演算を表す。
【0239】
7、ハフマン符号化:すべての係数の出現頻度を統計し、ハフマン木を構築し、確率が大きい係数に短い符号語を割り当て、確率が小さい係数に長い符号語を割り当てる。
【0240】
8、ゴロム・ライス(Golomb-Rice)符号化:Golomb-RiceはGolomb符号化の1つのバリエーションであり、Golomb符号化との違いは、パラメータmの制限条件が、mが2のべき乗でなければならないことである。具体的に、パラメータmを初期化し、mは2のべき乗でなければならず、qとrを計算し、ここで、q=N/mであり、r=N(m-1)であり、ユーナリコードを用いてqを符号化し、rのバイナリビットの下位log2(m)ビットをrの符号語とする。
【0241】
また、固定長符号化とトランケーテッド・ユーナリコードとを組み合わせて、以下のいくつかの組み合わせ復号方式を取得してもよい。
【0242】
方式1:トランケーテッド・ユーナリコードに似た方式を使用し、(N-1)>>1より大きいプレフィックスに対して、1で始まり0で終わるトランケーテッド・ユーナリコードで表し、(N-1)>>1より小さいプレフィックスに対して、0で始まり1で終わるトランケーテッド・ユーナリコードで表す。
【0243】
方式2:(N-1)>>1より大きいプレフィックスに対して、1で始まり0で終わるトランケーテッド・ユーナリコードで表し、(N-1)>>1より小さいプレフィックスに対して、0で始まる固定長符号で表す。
【0244】
方式3:(N-1)>>1より大きいプレフィックスに対して、1で始まる固定長符号で表し、(N-1)>>1より小さいプレフィックスに対して、0で始まり1で終わるトランケーテッド・ユーナリコードで表す。
【0245】
方式4:トランケーテッド・ユーナリコードに似た方式を使用し、(N-1)>>1より大きいプレフィックスに対して、0で始まり1で終わるトランケーテッド・ユーナリコードで表し、(N-1)>>1より小さいプレフィックスに対して、1で始まり0で終わるトランケーテッド・ユーナリコードで表す。
【0246】
方式5:(N-1)>>1より大きいプレフィックスに対して、0で始まり1で終わるトランケーテッド・ユーナリコードで表し、(N-1)>>1より小さいプレフィックスに対して、1で始まる固定長符号で表す。
【0247】
方式6:(N-1)>>1より大きいプレフィックスに対して、0で始まる固定長符号で表し、(N-1)>>1より小さいプレフィックスに対して、1で始まり0で終わるトランケーテッド・ユーナリコードで表す。
【0248】
また、一実施形態において、符号化側は、上記のいくつかの符号化方式に基づいて、グループ化方式を符号化してもよい。つまり、実施例1における複数の半固定長グループ化方式に基づいて、符号化側と復号側はn種類のグループ化方法を設定してもよく、その後、符号化側は設定に基づいてそのうちの1つの符号化方式を使用して符号化対象ユニットを符号化してもよく、復号側はビットストリームに基づいて復号対象ユニットが使用するグループ化方式を導出し、そのグループ化方式に基づいて復号を行ってもよい。
【0249】
一実施形態において、上記実施例1における半固定長グループ化復号に基づいて、コンテキストモデルと組み合わせて予測値を導出し、さらに復号してもよい。具体的に、復号対象ユニットにおける各グループのグループパラメータ(group_param)について、まず、コンテキストから予測値(group_param_pred)を導出し、次に、前述の実施形態における復号方式を用いて、実際のgroup_paramと予測されたgroup_param_predとの差(group_delta)を導出し、group_param=group_param_pred+group_deltaに基づいて、復号対象ユニットにおける各グループのグループパラメータ(group_param)を得る。次に、グループパラメータ及び復号アルゴリズムに基づいて復号して、各グループのすべての係数を得る。
【0250】
一実施形態において、半固定長符号化の係数に対して固定長符号化を行う必要がある場合、符号化側は、大きい係数に対して、固定長符号化で元の画素値を直接に符号化し、又は、固定長符号化で再構成画素値を直接に符号化してもよい。
【0251】
例示的に、元の画素値のビット幅が8である場合、係数グループの符号化ビット幅group_param>=6、又は、係数グループの符号化ビット幅group_param>=7であると、固定長符号を8として元の画素値を直接に符号化し、又は、再構成画素値を符号化してもよく、これにより、符号化復号の性能を向上させることができる。
【0252】
一実施形態において、復号側が復号対象ユニットのグループ化方式を決定することは、復号対象ユニット内の異なる画素の予測方向、予測モード、又は変換モードなどに基づいて、現在の復号対象ユニットにおける係数のグループ化方式を導出することであってもよい。
【0253】
具体的に、復号側は、予測モードに基づいて、復号対象ユニットにおける係数のグループ化方式及び符号化方式を導出してもよい。
【0254】
例えば、現在の1番目の列は1つの予測モードを使用し、その後のすべての列は水平予測モードを使用する。最初の点は、元の値を直接伝送するか、又は前のブロックの再構成値によって予測されてもよい。図5に示すように、16×4の復号対象ユニットを例として、現在の予測方式による残差を予測した後、以下の図5に示すように、1番目の列のすべての残差値を1つのグループとする。残りの係数ブロック15×4における各行の残差値を1つのグループとし、1番目のグループ内の係数の数が少なく、グループ化を継続せず、残りは各グループ内でより小さいグループ化を許容する。
【0255】
したがって、ブロック全体は次の順序でスキャンされる。まず、垂直スキャンして1番目のグループの係数を取得し、それを符号化し、水平スキャンして2番目のグループの係数を取得し、2番目のグループの係数を左から右へより小さい小グループに分割してもよく、各グループにおいて異なる符号化方式を使用してもよい。2番目のグループ内の1番目の小グループに対して半固定長を用いて符号化し、第1グループ内で使用されるプレフィックス値の大きさに基づいて、プレフィックスがある閾値より小さい場合、ゴロム・ライスを用いて後のグループの係数を符号化し、プレフィックスがある閾値より大きい場合、k次ゴロムを用いて後のグループの係数を符号化し、k値は前のグループの残差値から導出される。
【0256】
また、復号側は、変換モードに基づいて復号対象ユニットにおける係数のグループ化方式及び符号化方式を導出してもよい。
【0257】
例えば、符号化側は、DC係数の具体的な位置に基づいて、変換係数を符号化してもよい。すべてのDC係数を1つのグループに分け、すべてのAC係数を1つのグループに分けてもよい。DC係数の数が多い場合、DC係数グループをさらに二次グループ化してもよく、AC係数の数が多い場合、AC係数グループをさらに二次グループ化してもよい。
【0258】
具体的に、DC係数の値は、ほとんどの場合、係数が比較的大きいため、DC係数に対して比較的柔軟な符号化方式を使用してもよい。例えば、より細かいグループ化のk次指数ゴロム符号化を用いる。DC係数の振幅の値が近い場合、DC係数に対して係数予測を行い、k次指数ゴロムを使用して最初のDC係数を符号化し、残りのDC係数はDC係数の符号及び最初のDC係数との差を符号化すればよい。DC係数の差の符号化は、半固定長符号化を用いてもよい。
【0259】
具体的に、AC係数は、一般的に係数の値が小さいため、AC係数全体を1つのグループとして、半固定長を用いて符号化してもよく、又は、AC係数を2つのグループ(例えば、右上+左下を1つのグループとし、右下を1つのグループとする)に分け、各グループに対して半固定長を用いて符号化してもよい。しかし、AC係数の振幅が大きい場合、右上と左下のAC係数に対して2~3個の係数を1つのグループとし、ゴロム・ライスを用いて符号化し、右下に対して半固定長を用いて符号化してもよい。
【0260】
ここで、符号化対象ユニットに対するスキャン順序は、以下のようにであってもよい。まず、大ブロック全体をDC係数とAC係数に分けてもよい。図6に示すように、16×4の符号化対象ユニットを例として、変換後の係数分布は図6のようになる可能性がある。DC係数において、DC係数全体を1つのグループとして符号化する場合、DC係数に対してラスタースキャンを使用し、そうでない場合、ヒルベルトスキャンを使用し、距離が近い係数を一緒に符号化する。AC係数において、すべてのAC係数を1つのグループとすると、AC係数に対して直接ラスタースキャンを使用し、そうでない場合、まず右上、左下、右下の順にスキャンし、右上、左下、右下内の係数に対してラスタースキャン順序を使用してスキャンする。
【0261】
別の実施例において、16×4の符号化対象ユニットを例として、変換後の係数分布は図7のようになる可能性がある。係数を2つのブロックに分割し、各ブロック内で変換を行う。図7に示すように、2つのDC係数のみが存在する場合、次のようなグループ分けが存在する。1、2つのDC係数を1つのグループとし、すべてのAC係数を1つのグループに分ける。スキャン順序は、各8×4内でラスタースキャンを使用する。
【0262】
2、2つのDC係数を1つのグループとし、すべてのAC係数を2つのグループに分け、各8×4を1つのグループとする(DC係数を除く)。スキャン順序は各8×4内でラスタースキャンを使用する。
【0263】
3、2つのDC係数を1つのグループとし、すべてのAC係数を4つのグループに分け、各4×4を1つのグループとする(DC係数を除く)。各4×4内でラスタースキャンを使用する。
【0264】
4、2つのDC係数を1つのグループとし、すべてのAC係数を8つのグループに分け(8×4内、2列毎に1つのグループとする)、垂直スキャンを使用する。
【0265】
上記のいずれかのグループ化方式に基づいて、一実施例では、符号化側は、DC係数に対してk次指数ゴロム符号化を用い、AC係数に対して半固定長を用いて符号化してもよい。
【0266】
実施例2:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0267】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0268】
ステップ3において、復号側は、固定長符号を用いて各グループのライスパラメータCRiceを復号し、その後、ゴロム・ライスを用いてグループ内の各係数値を復号する。
【0269】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0270】
実施例3:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0271】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0272】
ステップ3において、復号側は、コンテキストに基づいて各グループのライスパラメータCRiceを推定し、その後、ゴロム・ライスを用いてグループ内の各係数値を復号する。
【0273】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0274】
実施例4:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0275】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0276】
ステップ3において、復号側は、コンテキストに基づいて各グループのライスパラメータCRiceを推定し、次いで、固定長符号を用いて各グループのパラメータ偏差Cを復号し、元のライスパラメータCRice+CをライスパラメータCRiceに更新し、すなわちCRice+=Cである。そして、ゴロム・ライスを用いてグループ内の各係数値を復号する。
【0277】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0278】
実施例5:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0279】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0280】
ステップ3において、復号側は、各グループのライスパラメータCRiceを決定し、その後、ゴロム・ライス符号化を用いてグループ内の各係数値を復号する。
【0281】
ここで、復号側は、ビットストリームに基づいてライスパラメータCRiceを導出することができ、その具体的な復号方法は、前述の実施例1のいずれか1つであってもよく、例えば、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、又はゴロム・ライス符号化などの復号処理である。復号側は、係数値の大きさに基づいて、固定長符号による復号とトランケーテッド・ユーナリコードとを組み合わせてビットストリームを復号し、各グループのグループパラメータを得てもよく、ここでは説明を省略する。
【0282】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0283】
実施例6:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0284】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0285】
ステップ3において、復号側は、コンテキストに基づいて各グループのライスパラメータCRiceを推定し、次いで、固定長符号を用いて各グループのパラメータ偏差Cを復号し、ライスパラメータCRice+=Cであり、ゴロム・ライス符号化を用いてグループ内の各係数値を復号する。
【0286】
ここで、パラメータ偏差Cの復号方式は、前述の実施例1のいずれか1つであってもよく、例えば、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、又はゴロム・ライス符号化などの復号処理である。復号側は、係数値の大きさに基づいて、固定長符号による復号とトランケーテッド・ユーナリコードとを組み合わせてビットストリームを復号し、各グループのグループパラメータを得てもよく、ここでは説明を省略する。
【0287】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0288】
実施例7:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0289】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0290】
ステップ3において、復号側は、固定長符号を用いて各グループの次数kを復号し、その後、k次指数ゴロムを用いてグループ内の各係数値を復号する。
【0291】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0292】
実施例8:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0293】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0294】
ステップ3において、復号側は、コンテキストに基づいて各グループの次数kを推定し、その後、k次指数ゴロムを用いてグループ内の各係数値を復号する。
【0295】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0296】
実施例9:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0297】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0298】
ステップ3において、復号側は、コンテキストに基づいて各グループの次数kを推定し、次いで、固定長符号を用いて各グループのパラメータ偏差Cを復号し、元の次数k+Cを次数kに更新し、すなわちk+=Cである。そして、k次指数ゴロムを用いてグループ内の各係数値を復号する。
【0299】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0300】
実施例10:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0301】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0302】
ステップ3において、復号側は、各グループの次数kを決定し、その後、k次指数ゴロムを用いてグループ内の各係数値を復号する。
【0303】
ここで、復号側は、ビットストリームに基づいて次数kを導出してもよく、その具体的な復号方法は、前述の実施例1のいずれか1つであってもよく、例えば、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、又はゴロム・ライス符号化などの復号処理である。復号側は、係数値の大きさに基づいて、固定長符号による復号とトランケーテッド・ユーナリコードとを組み合わせてビットストリームを復号し、各グループのグループパラメータを得てもよく、ここでは説明を省略する。
【0304】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0305】
実施例11:ステップ1において、復号側は、周囲の再構成画素値を用いてある方向の画素勾配を計算し、現在の画素の予測方向に基づいて1つの勾配値を計算し、又は経験に基づいて、水平方向の勾配値又は垂直方向の勾配値を計算し、勾配を量子化してもよい。
【0306】
ステップ2において、復号側は、コンテキストに基づいて現在の係数の値の範囲を推定し、値の範囲に基づいてゴロム・ライスのライス係数k値又は指数ゴロムの次数k値を推定する。
【0307】
実施例12:ステップ1において、符号化側は、コンテキストに基づいて現在の係数の値の範囲を推定し、値の範囲に基づいて1つの符号化方式を選択する。
【0308】
ステップ2において、符号化側は、対応するゴロム符号化方法で現在の係数を符号化する。
【0309】
例示的に、推定された係数の絶対値の範囲が2以上である場合、ゴロム・ライス符号化のk値を推定し、現在の係数をゴロム・ライス符号化で符号化する。推定された係数の絶対値の範囲が2未満である場合、指数ゴロムのk値を推定し、現在の係数を指数ゴロム符号化で符号化する。
【0310】
又は、一例において、推定された係数の絶対値の範囲が2より大きい場合、指数ゴロム符号化のk値を推定し、現在の係数を指数ゴロム符号化で符号化する。推定された係数の絶対値の範囲が2以下である場合、ゴロム・ライスのk値を推定し、現在の係数をゴロム・ライス符号化で符号化する。
【0311】
さらに、係数の値の範囲は、経験値に基づいて他の正の整数値を取ることもでき、本発明の実施例では特に限定されない。
【0312】
実施例13:ステップ1において、符号化側は、コンテキストに基づいて現在の符号化係数の値を推定する。
【0313】
例示的に、真の値が現在の推定値より大きい場合、1を符号化し、そうでない場合、0を符号化する。ここで、符号値0及び1は、それぞれ1つの符号化方式に対応する。
【0314】
ステップ2において、符号化側は、対応するゴロム符号化方法で現在の係数を符号化する。
【0315】
例示的に、1は指数ゴロム符号化に対応し、0はゴロム・ライス符号化に対応する。符号化値が1である場合、コンテキストに基づいて指数ゴロム符号化のk値を推定し、現在の係数を指数ゴロム符号化で符号化する。符号化値が0である場合、ゴロム・ライスのk値を推定し、現在の係数をゴロム・ライス符号化で符号化する。
【0316】
又は、一例では、符号化値が0である場合、コンテキストに基づいてゴロム・ライス符号化のk値を推定し、そうでない場合、指数ゴロムのk値を推定し、現在の係数を対応するゴロム符号化方法で符号化する。
【0317】
実施例14:ステップ1において、符号化側は、係数を符号化する場合、コンテキストに基づいて現在の符号化係数の1つの推定値nを導出し、ビットストリームから現在の符号化係数がnより小さいか否かを読み出す。
【0318】
ステップ2において、符号化側は、nより小さい係数に対して、固定長符号を用いて符号化を行い、nより大きい係数に対して、1つのk値を推定し、指数ゴロム又はゴロム・ライスを用いて復号し、復号後の値にnを加算する。
【0319】
実施例15:ステップ1において、符号化側は、残差係数をグループ化符号化する場合、コンテキストに基づいて1つの推定値nを導出し、推定値nに基づいて符号化対象係数を2つのグループに分ける。
【0320】
ステップ2において、nより小さい係数について、符号化側は、固定長符号を用いて復号し、nより大きい係数について、1つのk値を推定し、指数ゴロム又はゴロム・ライスを用いて復号し、復号後の値にnを加算する。
【0321】
又は、nより小さい係数について、1つのk値を推定し、指数ゴロムを用いて復号し、nより大きい係数について、1つのk値を推定し、ゴロム・ライスを用いて復号し、復号後の値にnを加算する。
【0322】
又は、nより小さい係数について、1つのk値を推定し、ゴロム・ライスを用いて復号し、nより大きい係数について、1つのk値を推定し、指数ゴロムを用いて復号し、復号後の値にnを加算する。
【0323】
実施例16:ステップ1において、符号化側は、残差係数をグループ化符号化する場合、コンテキストに基づいて1つの推定値nを導出し、ビットストリームにおいて使用されるトランケーテッド・ユーナリコードに基づいて1つの補正値deltaを読み出し、deltaに基づいてnの値をn+=deltaに更新する。nの値に基づいて、復号対象ユニットにおける係数を2つのグループに分ける。
【0324】
ステップ2において、nより小さい係数について、固定長符号を用いて復号し、nより大きい係数について、1つのk値を推定し、指数ゴロム又はゴロム・ライスを用いて復号し、復号後の値にnを加算する。
【0325】
又は、nより小さい係数について、1つのk値を推定し、指数ゴロムを用いて復号し、nより大きい係数について、1つのk値を推定し、ゴロム・ライスを用いて復号し、復号後の値にnを加算する。
【0326】
又は、nより小さい係数について、1つのk値を推定し、ゴロム・ライスを用いて復号し、nより大きい係数について、1つのk値を推定し、指数ゴロムを用いて復号し、復号後の値にnを加算する。
【0327】
実施例17:ステップ1において、符号化側は、コンテキスト情報に基づいて、ビットストリームからランレングス符号化モードをオンにするか否かを解析する。
【0328】
具体的に、符号化係数に基づいて、又は再構成データにおいて連続する複数の等しい値が存在する場合、ランレングス符号化モードをオンにし、そうでない場合、ランレングス符号化モードをオフにして、前述のいずれかの符号化方式を直接使用する。
【0329】
例示的に、コンテキスト情報は、a)復号された再構成画素値の各方向における勾配又は勾配の和の大きさ、b)隣接する予測画素値の各方向における勾配又は勾配の和の大きさ、c)復号された係数の各方向における勾配又は勾配の和の大きさ、d)a、b又はcのうちの2つの勾配の和の大きさを組み合わせて重み付け、e)a、b、又はcのうちの3つの勾配の和の大きさを組み合わせて重み付け、のうちの1つを含んでもよい。
【0330】
実施例18:半固定長符号化の符号長がグループ化方式及びグループ内の係数の数に関連するため、符号化側が異なる予測方式又は異なる画像コンテンツに基づいて符号化を行う圧縮率又は符号化性能に大きな差がある。そのため、比較的良いグループ化方法、例えば固定サイズのグループ化方式を事前に合意する必要がある。
【0331】
複数の固定ブロック分割を復号する場合、まず、現在の符号化ユニットのブロック分割方法を復号し、その後、固定分割方法に従って復号してもよい。以下、図面及び具体的な実施例を参照しながら説明する。
【0332】
例示的に、符号化対象ユニットを複数の2×2の小ブロックに分けて、1つの符号化グループとしてもよい。16×4の符号化対象ユニットを例として、グループ内で1つのCLを共有する。半固定長を用いて符号化し、最初のCL値に対して固定長を用いて符号化し、符号長は3又は4(画像ビット幅Nに関連する)である。2番目のCL値は、コンテキストに基づいて予測して得られたCLの差であり、トランケーテッド・ユーナリコードを用いて符号化する。トランケーテッド・ユーナリコードは最長でN-1である。
【0333】
図8に示すように、16×4の符号化対象ユニットを、2×2の小ブロックに固定的に分割するグループ化方式に従って、図8(1)に示16個の小ブロックにグループ化する。各2×2の小ブロックの間において、ヒルベルトスキャン方式でスキャンしてもよく、例示的に、符号化側が符号化対象ユニットをスキャンする順序は、図8(2)に示すように、番号順0~15でスキャンしてもよい。
【0334】
ここで、各CL内でラスタースキャンを行ってもよく、すなわち、各2×2の小ブロック内のスキャン順序は、図8(3)に示すように、番号順0~3でスキャンしてもよい。
【0335】
CL間は、コンテキスト予測を使用してもよく、CLは固定長符号を用いて直接に符号化し、CL=(CL-CL)であり、トランケーテッド・ユーナリコードを用いて符号化し、CL=(CL-(CLn-2+CLn-1*3>>2))であり、トランケーテッド・ユーナリコードを用いて符号化してもよい。
【0336】
CLn-2とCLn-1の再構成値を検出し、CLn-2とCLn-1の内部のすべての再構成値が等しいか、又はほぼ等しい場合、現在の2×2の小ブロックが前のCLn-2とCLn-1の内部の再構成値を直接多重化するかどうかを判断する。一例では、ランレングス符号化を用いて、現在の符号化ブロック内を符号化し、符号化された再構成値の2×2の小ブロックの数を直接使用してもよい。この数を符号化するために固定長符号を用いてもよい。現在の符号化ユニット内の符号化されていないCLの数に基づいて、固定長符号長を決定し、最大15個の未符号化ユニットであるため、固定長符号長は最大4ビット(bit)である。
【0337】
別の実施形態では、図9に示すように、符号化対象ユニットを複数の4×1の小ブロックに分割してもよい。16×4の符号化対象ユニットを例として、16×4の符号化対象ユニットを、4×1の小ブロックに固定的に分割するグループ化方式に従って、図9に示す16個の小ブロックにグループ化してもよい。
【0338】
なお、画像データの複数の成分(輝度値又は色度値)の符号化方法は、一致していてもよいし、一致していなくてもよい。
【0339】
一例において、符号化側による符号化対象ユニットに対する固定ブロック分割方式は、2×1、1×2、1×4、2×4、4×2、2×8、2×16、4×4、8×4、又は16×4などであってもよい。本発明は、分割方式を特に限定しない。
【0340】
例示的に、2×2固定ブロック分割復号を例として、復号側の復号プロセスは主に以下のステップを含む。
【0341】
1)現在のブロックが1番目のブロックである場合、固定長符号を用いて0番目のブロックのCL値を復号し、CL値に基づいて、固定長符号を用いて4つの係数値を復号し、4つの係数値の位置をラスタースキャン順で1番目の2×2の小ブロックに格納する。
【0342】
2)現在のブロックが1番目のブロックでない場合、前のいくつかのブロックの再構成値が等しいかどうか、又はCL値(最初の1つ又は2つのclが0であるかどうか)に基づいて、最初の2つのCL値が0である場合、1つのflag、すなわち、現在のブロックが前の係数値又は再構成値を直接使用するかどうかを解析する。現在のブロックが前の係数値又は再構成値を直接使用する場合、現在のブロックを解析せず、そうでない場合、ステップ3に進み、復号し続ける。
【0343】
3)現在のブロックが1番目のブロックでない場合、トランケーテッド・ユーナリコードを用いて、現在のブロックのCL値と前のブロックのCL値との間の残差値を復号し、現在のブロックのCL値を取得し、固定長符号を用いてブロック内の4つの係数値を復号する。ヒルビットスキャン順に従って、各2×2の小ブロックを順番に格納する。
【0344】
なお、16×4の符号化対象ユニットは、合計16個の2×2の小ブロックを解析する必要がある。現在のグループのCL値が画像ビット幅以上である場合、現在のグループは元の値又は再構成値を直接に符号化する。
【0345】
実施例19:非固定サイズのブロック分割方式で復号を行う場合について、以下、具体的な実施例を組み合わせて説明する。
【0346】
ステップ1において、現在のブロックの予測方式を導出し、現在のブロックにおける各画素の予測モードを取得し、予測モードに基づいてグループ化する。
【0347】
ステップ2において、現在のブロックが予測時に画素をグループ化する場合、予測グループ化方式に従って現在のブロックをグループ化する。そうでない場合、現在のブロックが予測時に点ごとに直接予測する場合、各点の予測方向に従って現在のブロックをグループ化してもよい。
【0348】
ステップ3において、予測順序に基づいて、各グループ内の係数を復号する。予測順序が左上から右下である場合、グループ化後の係数を同じ順序で復号し、予測順序が左から右である場合、グループ化後の係数も同じ順序で復号する。
【0349】
ステップ4において、各グループにおいて変換符号化が使用されるか否かを導出する。
【0350】
ステップ5において、現在のグループにおいて変換符号化が使用される場合、現在のグループが1番目のグループであれば、経験値又は前の符号化ブロックに基づいて次数kを導出し、DC係数に対してk次ゴロムを用いて復号し、現在のグループが1番目のグループでなければ、前のグループのDC係数の値に基づいて、現在のグループのDC係数kを推定し、k次ゴロムを用いて復号する。
【0351】
1)残りの係数について、DC係数の値が閾値より大きい場合、ビットストリームから現在のグループの最後の1/2係数(すなわち、高周波数部分の係数)がすべて0であるか否かを解析する。そうである場合、現在のグループの係数における、DC係数と0係数以外の残りの係数の数を、符号化される必要がある係数の数として決定する。
【0352】
2)係数の数が3未満である場合、残りの係数に対してゴロム・ライスを用いて符号化し、1番目に符号化された係数は量子化ステップとDC係数の値とに基づいてライス係数Cを導出し、ゴロム・ライスを用いて復号し、その後の係数は前の係数値の大きさに基づいてライス係数Cを導出し、ゴロム・ライスを用いて復号する。係数の数が3より大きい場合、半固定長を用いて符号化し、前のグループの後の1/2係数(すなわち、高周波数部分の係数)に0でない係数が存在すれば、2)に従って処理する。
【0353】
3)ビットストリームから現在のグループの最後の1/4係数(すなわち、高周波数部分の係数)がすべて0であるかどうかを解析し、現在のグループの最後の1/4係数がすべて0である場合、DC係数及び最後の1/4係数以外の係数を2)に従って処理し、そうでない場合、DC係数以外のすべての係数を2)に従って処理する。DC係数の値が閾値より小さい場合、3)に従って処理する。
【0354】
ステップ6において、現在のグループにおいて変換符号化が使用されていない場合、グループ内の係数について、現在のグループ内の係数の量子化ステップを導出し、量子化ステップと前のグループの時間領域における係数値とに基づいて復号を行う。
【0355】
1)まず、現在のグループ内の係数の絶対値の平均値を推定する。2)その後、現在のグループ内のすべての係数の絶対値と推定された平均値との比較結果を復号し、比較結果に基づいて二次グループ化を行い、平均値より大きいものを1つのグループとし、平均値以下のものをもう1つのグループとする。3)二次グループ化した後、グループ内の係数の数に基づいて、平均値より小さいグループの係数の数が4以上であれば、半固定長を用いて復号し、そうでなければ、平均値より小さいグループに対してゴロム・ライスを用いて復号する。
【0356】
平均値より大きいグループの係数について、係数の数が4より大きく、且つ推定された平均値が閾値より小さい場合、半固定長を用いて復号し、そうでない場合、k次指数ゴロムを用いて復号する。ここで、k値とC値は、推定された平均値に基づいて推定されてもよく、推定された平均値と復号側で解析された1つのパラメータとに基づいて得られてもよい。
【0357】
実施例20:ステップ1において、復号側は、グループ化方式を決定した後、現在のグループ内の係数の数xが閾値mより大きいか否かを決定する。例えば、m=30、x=32である場合、復号側は、現在のグループ内の係数の数xが閾値mより大きいと決定する。
【0358】
ステップ2において、復号側は、ビットストリームから最大n個の位置を解析し、このn個の位置は、現在のグループにおける、n個の異常値(グループ内の振幅が大きい係数)点の位置を表し(例えば、n=2)、位置符号化は固定長符号を用いて復号され、符号長はx値の大きさに関連する(x=32の場合、符号長は5である)。
【0359】
ステップ3において、復号側は、現在のグループの他の位置の係数値を復号する。
【0360】
ここで、現在のグループの他の位置の係数値を復号する方法は、前述の半固定長復号、指数ゴロム復号、ゴロム・ライス復号又はハフマン復号などであってもよい。
【0361】
ステップ4において、復号側は、k次指数ゴロム復号を用いて異常値を復号し、復号後の振幅に他の位置係数値における最大の振幅を加えたものを、当該異常点の振幅とする。
【0362】
実施例21:ステップ1において、復号側は、グループ化方式を決定した後、現在のグループ内の係数の数xが閾値mより大きいか否かを決定する。例えば、m=30、x=32である場合、復号側は、現在のグループ内の係数の数xが閾値mより大きいと決定する。
【0363】
ステップ2において、復号側は、固定長符号を用いて現在のグループ内の最大の振幅を復号し、最大の振幅の値に基づいて、固定長符号を用いて現在のグループ内の最小の振幅を復号する。最大の振幅と最小の振幅の値の範囲に基づいて、現在のグループ内のすべての係数を復号する。
【0364】
具体的に、最大の振幅が最小の振幅と等しい場合、グループ全体の係数は復号される必要がなく、最大の振幅と最小の振幅との間の差が1である場合、グループ全体の各係数は、復号されるために1ビットの固定長符号のみを必要とし、最大の振幅と最小の振幅との間の差がn(例えば、n=15)未満である場合、現在のグループ内の残りの位置の係数は、固定長符号を用いて復号されてもよい。例えば、n=15の場合、4ビットの固定長符号を用いて復号してもよい。
【0365】
最大の振幅と最小の振幅との間の差がnより大きい場合、差に基づいて適切な次数kを選択し、k次指数ゴロムを用いて現在のグループ内の係数を復号する。
【0366】
上述した本発明の実施例は、互いに組み合わせてもよく、例えば、実施例1における複数の異なるグループ化方式は、他の実施例に適用されてもよく、実施例2における異なる符号化復号アルゴリズムは、他の実施例に適用されてもよく、複数の異なる符号化復号アルゴリズムは、必要に応じて組み合わせて使用されてもよいことに留意されたい。
【0367】
以上の実施形態に基づいて、本発明は、ビデオ符号化装置及び対応するビデオ復号装置をさらに提供し、本発明はビデオ符号化復号装置と呼ばれる。前述の図1から図3を参照すると、図10に示すように、当該装置1000は、送受信モジュール1001及び処理モジュール1002を含み得る。
【0368】
送受信モジュール1001は、復号対象ユニットのビットストリームを得るために用いられてもよい。
【0369】
処理モジュール1002は、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定し、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得、前記復号対象ユニットの前記スキャン方式に基づいて、各グループの前記係数ブロック内の係数を1つずつ復元して、前記復号対象ユニットに対応する再構成データブロックを得るために用いられてもよい。
【0370】
一実施形態において、グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。
【0371】
一実施形態において、符号化方式は、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つを含む。
【0372】
一実施形態において、スキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン及びヒルベルトスキャンのうちの少なくとも1つを含む。
【0373】
一実施形態において、再構成データブロックは、復号対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである。
【0374】
一実施形態において、処理モジュール1002は、具体的に、
符号化側と復号側の事前合意又はコンテキスト情報に基づいて、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを決定し、又は、
前記ビットストリームに基づいて解析して、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを取得し、又は、
前記復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、前記グループ化方式を取得するために用いられる。
【0375】
一実施形態において、処理モジュール1002は、具体的に、
符号化アルゴリズムに従って復号して、各グループのグループパラメータを得、
各グループの前記グループパラメータに基づいて、前記半固定長符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0376】
一実施形態において、処理モジュール1002は、具体的に、
ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つの符号化方式に対応する復号方式に基づいて復号して、各グループのグループパラメータを得るために用いられる。
【0377】
一実施形態において、処理モジュール1002は、具体的に、
固定長符号化アルゴリズムに従って復号して、各グループのグループライスパラメータを得、又は、コンテキストモデルに基づいて、各グループのグループライスパラメータを得、
各グループの前記グループライスパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0378】
一実施形態において、処理モジュール1002は、具体的に、
コンテキストモデルに基づいて、各グループのグループライスパラメータを得、
固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得、
各グループの前記グループライスパラメータと前記グループパラメータ偏差とに基づいて、各グループのグループパラメータを得、
各グループの前記グループパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0379】
一実施形態において、処理モジュール1002は、具体的に、
固定長符号化アルゴリズムに従って復号して、各グループの次数kを得、又は、コンテキストモデルに基づいて、各グループの次数kを得、
各グループの前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0380】
一実施形態において、処理モジュール1002は、具体的に、
コンテキストモデルに基づいて、各グループの次数kを得、
固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得、
前記グループパラメータ偏差に基づいて各グループの次数kを更新し、
各グループの更新後の前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、各グループにおける複数の係数値を含む。
【0381】
一実施形態において、処理モジュール1002は、具体的に、
復号によって得られた1つ以上のグループの係数、予測方式、量子化方式、及び変換方式のうちの少なくとも1つに基づいて、現在のグループの符号化方式を決定し、
前記現在のグループの符号化方式に対応する復号方式に基づいて復号して、前記現在のグループの係数を得るために用いられ、
前記現在のグループの符号化方式は、ゴロム・ライス符号化、k次指数ゴロム符号化、及び半固定長符号化方式のうちのいくつかの組み合わせである。
【0382】
一実施形態において、符号化ユニットの複数のグループのうちの少なくとも2つのグループの符号化方式は異なる。
【0383】
一実施形態において、前記復号対象ユニットの復号方式がゴロム・ライス符号化又はk次指数ゴロム符号化のいずれかである場合、処理モジュール1002は、具体的に、
前記復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、前記復号対象ユニットのグループ化方式を取得するために用いられる。
【0384】
これに対応して、本発明はビデオ符号化装置を提供し、図10に示すように、当該装置1000は送受信モジュール1001及び処理モジュール1002を含む。
【0385】
ここで、処理モジュール1002は、元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得、前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得、各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るために用いられる。
【0386】
送受信モジュール1001は、符号化済みビットストリームを復号側に送信するために用いられる。
【0387】
一実施形態において、グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。
【0388】
一実施形態において、符号化方式は、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つを含む。
【0389】
一実施形態において、、スキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン及びヒルベルトスキャンのうちの少なくとも1つを含む。
【0390】
一実施形態において、符号化対象データブロックは、符号化対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである。
【0391】
具体的に、本発明において提供されるビデオ符号化復号装置は、図2及び図3に示すエンコーダ及びデコーダによって実現され、図1に示す符号化復号システムを形成してもよい。その装置内部の構造模式図は図1図3を参照し、ここでは説明を省略する。
【0392】
本発明の実施例で提供される電子機器は、ノートパソコン、タブレットパソコン、デスクトップコンピュータ、ポータブルコンピュータ等であってもよく、本発明の実施例はこれに限定されない。
【0393】
図11は、本発明の実施例で提供される電子機器のハードウェア構成図である。図11に示すように、当該電子機器は、プロセッサ111及びコンピュータ可読記憶媒体112を含む。コンピュータ可読記憶媒体112には、プロセッサ111によって実行可能なコンピュータ実行可能命令が記憶されており、プロセッサ111は、コンピュータ実行可能命令を実行して、本発明の上記のいずれかの実施例に開示された方法を実行する。
【0394】
例えば、プロセッサ111は、コンピュータ実行可能命令を実行して、
復号対象ユニットのビットストリームを得るステップと、
前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定するステップと、
各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップと、
前記復号対象ユニットの前記スキャン方式に基づいて、各グループの前記係数ブロック内の係数を1つずつ復元して、前記復号対象ユニットに対応する再構成データブロックを得るステップと、を実行するために用いられる。
【0395】
例えば、プロセッサ111は、コンピュータ実行可能命令を実行して、
元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得るステップと、
前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得るステップと、
各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るステップと、を実行するために用いられる。
【0396】
上記の実施例において、全部又は一部をソフトウェア、ハードウェア、ファームウェア又はそれらの任意の組み合わせによって実現することができる。ソフトウェアプログラムを用いて実現する場合、全部又は一部をコンピュータプログラム製品の形態で実現することができる。コンピュータプログラム製品は、1つ以上のコンピュータ命令を含む。当該コンピュータ命令がコンピュータ上でロード及び実行されるとき、本発明の実施形態に係る手順又は機能は、全部又は部分的に生成される。当該コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、又は他のプログラマブル装置であってもよい。当該コンピュータ命令は、コンピュータ可読記憶媒体に記憶されてもよく、あるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に送信されてもよい。例えば、当該コンピュータ命令は、有線(例えば、同軸ケーブル、光ファイバ、デジタル加入者線(digital subscriber line、DSL))方式、又は無線(例えば、赤外線、無線、マイクロ波など)方式で、ウェブサイト、コンピュータ、サーバ、又はデータセンタから別のウェブサイト、コンピュータ、サーバ、又はデータセンタに送信されてもよい。当該コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の利用可能な媒体、又は1つ以上の利用可能な媒体を統合したサーバ、データセンタなどのデータ記憶装置であってもよい。当該利用可能な媒体は、磁気媒体(例えば、フロッピーディスク、磁気ディスク、又は磁気テープ)、光媒体(例えば、デジタルビデオディスク(digital video disc、DVD))、半導体媒体(例えば、ソリッドステートドライブ(solid state drives、SSD))などであってもよい。
【0397】
以上の実施形態の説明により、当業者は、説明の便宜と簡潔さのために、上記の各機能モジュールの分割のみを例として説明し、実際の応用において、必要に応じて上記の機能を異なる機能モジュールに割り当てて完成させることができ、すなわち、装置の内部構造を異なる機能モジュールに分割して、以上に説明された全部又は一部の機能を完成させることは明らかである。上記のシステム、装置、及びユニットの具体的な動作プロセスについては、前述の方法の実施例における対応するプロセスを参照されたい。
【0398】
本発明で提供されるいくつかの実施例では、開示されたシステム、装置、及び方法が他の形態で実現され得ることは、理解されるべきであろう。前述の装置実施例は、単なる例示的なものに過ぎず、例えば、前述のモジュール又はユニットの分割は、単なる論理的な機能の分割に過ぎず、実際の実施時、他の分割方法が存在してもよく、例えば、複数のユニット又はコンポーネントが別のシステムに組み合わせ又は統合されてもよく、いくつかの特徴が無視され又は実行されなくてもよい。また、表示又は討論される相互結合又は直接結合又は通信接続は、いくつかのインタフェース、装置又はユニットを介した間接結合又は通信接続であってもよく、電気的、機械的又は他の形態であってもよい。
【0399】
分離部品として説明する前記ユニットは、物理的に分離したものであってもなくてもよく、ユニットとして表される部品は、物理ユニットであってもなくてもよく、すなわち、同一の箇所に位置しても、複数のネットワークユニットに配置されてもよい。本実施例に係る技術案の目的を実現するために、実際の必要に応じて前述のユニットから一部又は全部を選択することができる。
【0400】
また、本発明の各実施例における各機能ユニットについては、全てのユニットが1つの処理ユニットに統合されてもよいし、各ユニットが単独で物理的に存在してもよいし、2つ以上のユニットが1つのユニットに統合されてもよい。上記の統合されたユニットは、ハードウェアの形態で実現されてもよく、ソフトウェア機能ユニットの形態で実現されてもよい。
【0401】
上記の統合されたユニットは、ソフトウェア機能ユニットの形態で実現され、かつ独立した製品として販売又は使用される場合、コンピュータ可読記憶媒体に記憶され得る。このような理解に基づいて、本発明に係る技術案は本質的に、換言すれば従来技術に貢献する部分又は当該技術案の全部又は一部が、ソフトウェア製品の形態で具現化されてもよく、当該コンピュータソフトウェア製品は、1つの記憶媒体に格納され、1台のコンピュータデバイス(パーソナルコンピュータ、サーバ、又はネットワークデバイス等であってもよい)又はプロセッサに、本発明の各実施例で説明した方法におけるステップの全部又は一部を実行させるためのいくつかの命令を含む。前述の記憶媒体としては、フラッシュメモリ、リムーバブルハードディスク、読み取り専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、磁気ディスク又は光ディスクなどの、プログラムコードを記憶可能な様々な媒体が挙げられる。
【0402】
以上は、本発明の具体的な実施形態に過ぎず、本発明の保護範囲はこれに限定されない。本発明に開示された技術的範囲内における任意の変化又は置換は、本発明の保護範囲内に含まれるべきである。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に準ずるものとする。
図1
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11
【手続補正書】
【提出日】2024-07-10
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理の技術分野に関し、特にビデオ符号化復号方法及び装置に関する。
【背景技術】
【0002】
コンピュータビジョンの分野において、ビデオを効果的に記憶・伝送するために、通常、ビデオ符号化により画像圧縮を行う必要がある。画像圧縮は、主に非可逆圧縮と可逆圧縮(ロスレス圧縮)を含む。このうち、可逆圧縮は、画像データの統計的冗長性を利用した画像圧縮であり、歪みを発生させることなく元の画像データを完全に復元することができる。また、再構成画像と元の画像との間に誤差があり、その誤差が一定の範囲内に制限される場合は、ニアロスレス圧縮(準可逆圧縮)と呼ばれる。ニアロスレス圧縮ではある程度の歪みが生じるが、視覚画像では無視できる程度であるため、ニアロスレス圧縮は可逆圧縮と考えてもよい。
【0003】
現在の可逆圧縮(ニアロスレス圧縮を含む)の符号化復号方式において、例えば、コンテキスト適応型2値算術符号化(Context-based Adaptive Binary Arithmetic Coding、CABAC)圧縮方式は、多くの確率モデル、コンテキストモデリング、2値算術符号化などのアルゴリズムに関連しており、処理プロセスが複雑である。また、ゴロム符号化に基づくGolomb-Rice符号化方式では、その符号化過程において冗長な計算が発生し、符号化復号性能が低い。そのため、符号化復号効率が高く、かつアルゴリズムの複雑度が低いビデオ符号化復号方法の提案が急務となっている。
【発明の概要】
【0004】
本発明は、従来技術におけるビデオ符号化復号の性能が低い、又は符号化復号アルゴリズムの複雑度が高いという問題を解決するためのビデオ符号化復号方法及び装置を提供する。
【0005】
上記目的を達成するために、本発明は以下の技術的解決策を採用する。
【0006】
第1の態様において、ビデオ画像復号方法が提供され、当該方法は、
復号側が復号対象ユニットのビットストリームを得るステップと、
前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定するステップと、
各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップと、
前記復号対象ユニットの前記スキャン方式に基づいて、各グループの前記係数ブロック内の係数を1つずつ復元して、前記復号対象ユニットに対応する再構成データブロックを得るステップと、を含む。
【0007】
一実施形態において、グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。
【0008】
一実施形態において、符号化方式は、ユーナリ(unary)コード、トランケーテッド・ユーナリ(Truncated unary)コード、トランケーテッド・バイナリ(Truncated binary)コード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス(Truncated Rice)符号化、ハフマン(Huffman)符号化、及びゴロム・ライス(Golomb-Rice)符号化のうちの少なくとも1つを含む。
【0009】
一実施形態において、スキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン及びヒルベルトスキャンのうちの少なくとも1つを含む。
【0010】
一実施形態において、スキャン方式は、垂直スキャンを含む。
【0011】
一実施形態において、再構成データブロックは、復号対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである。
【0012】
一実施形態において、再構成データブロックは、復号対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数のうちの1つからなるデータブロックである。
【0013】
一実施形態において、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定するステップは、
符号化側と復号側の事前合意又はコンテキスト情報に基づいて、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを決定するステップ、又は、
前記ビットストリームに基づいて解析して、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを取得するステップ、又は、
前記復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、前記グループ化方式を取得するステップを含む。
【0014】
一実施形態において、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定するステップは、
符号化側と復号側の事前合意に基づいて、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを決定するステップ、又は、
前記ビットストリームに基づいて解析して、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを取得するステップ、又は、
前記符号化側と前記復号側の事前合意に基づいて、少なくとも1つのタイプの前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定し、前記少なくとも1つのタイプの前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式に基づいて、前記ビットストリームに基づいて解析して、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを取得するステップを含む。
【0015】
一実施形態において、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップは、
符号化アルゴリズムに従って復号して、各グループのグループパラメータを得るステップと、
各グループの前記グループパラメータに基づいて、前記半固定長符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るステップと、を含み、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0016】
一実施形態において、前記符号化アルゴリズムに従って復号して、各グループのグループパラメータを得るステップは、
ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つの符号化方式に対応する復号方式に基づいて復号して、各グループのグループパラメータを得るステップを含む。
【0017】
一実施形態において、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップは、
固定長符号化アルゴリズムに従って復号して、各グループのグループライスパラメータを得、又は、コンテキストモデルに基づいて、各グループのグループライスパラメータを得るステップと、
各グループの前記グループライスパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るステップと、を含み、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0018】
一実施形態において、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップは、
コンテキストモデルに基づいて、各グループのグループライスパラメータを得るステップと、
固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得るステップと、
各グループの前記グループライスパラメータと前記グループパラメータ偏差とに基づいて、各グループのグループパラメータを得るステップと、
各グループの前記グループパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るステップと、を含み、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0019】
一実施形態において、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップは、
固定長符号化アルゴリズムに従って復号して、各グループの次数kを得、又は、コンテキストモデルに基づいて、各グループの次数kを得るステップと、
各グループの前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るステップと、を含み、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0020】
一実施形態において、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップは、
コンテキストモデルに基づいて、各グループの次数kを得るステップと、
固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得るステップと、
前記グループパラメータ偏差に基づいて各グループの次数kを更新するステップと、
各グループの更新後の前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るステップと、を含み、
前記復号対象ユニットに対応する係数ブロックは、各グループにおける複数の係数値を含む。
【0021】
一実施形態において、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップは、
復号によって得られた1つ以上のグループの係数、予測方式、量子化方式、及び変換方式のうちの少なくとも1つに基づいて、現在のグループの符号化方式を決定するステップと、
前記現在のグループの符号化方式に対応する復号方式に基づいて復号して、前記現在のグループの係数を得るステップと、を含み、
前記現在のグループの符号化方式は、ゴロム・ライス符号化、k次指数ゴロム符号化、及び半固定長符号化方式のうちのいくつかの組み合わせである。
【0022】
一実施形態において、符号化ユニットの複数のグループのうちの少なくとも2つのグループの符号化方式は異なる。
【0023】
一実施形態において、前記復号対象ユニットの復号方式がゴロム・ライス符号化又はk次指数ゴロム符号化のいずれかである場合、前記復号対象ユニットのグループ化方式を決定することは、、
前記復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、前記復号対象ユニットのグループ化方式を取得することを含む。
【0024】
本発明の上記実施形態によれば、復号側は、異なる予測方式に基づいて、異なるスキャン方式を導出するとともに、係数グループ化方式を導出することができ、このような係数グループ化は、予測された情報を結合し、グループ化された係数をより均一にすることができる。符号化側は、変化が小さい係数に対して、より小さい符号語(codeword)を割り当てて符号化することができ、それにより、符号化方式が柔軟であり、符号化性能を向上させることができる。また、複数の固定グループ化方式を設計することにより、半固定長符号化方式により適合させることができ、各符号化ブロックに対してよりよい2値化方法を柔軟に選択することができ、符号化アルゴリズムの複雑度が低い。
【0025】
第2の態様によれば、ビデオ画像符号化方法が提供され、当該方法は、
符号化側が元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得るステップと、
前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得るステップと、
各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るステップと、を含む。
【0026】
一実施形態において、グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。
【0027】
一実施形態において、符号化方式は、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つを含む。
【0028】
一実施形態において、スキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン及びヒルベルトスキャンのうちの少なくとも1つを含む。
【0029】
一実施形態において、符号化対象データブロックは、符号化対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである。
【0030】
第3の態様によれば、ビデオ画像復号装置が提供され、当該装置は、
復号対象ユニットのビットストリームを得るために用いられる送受信モジュールと、
前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定し、
各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得、
前記復号対象ユニットの前記スキャン方式に基づいて、各グループの前記係数ブロック内の係数を1つずつ復元して、前記復号対象ユニットに対応する再構成データブロックを得るために用いられる処理モジュールと、を含む。
【0031】
一実施形態において、グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。
【0032】
一実施形態において、符号化方式は、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つを含む。
【0033】
一実施形態において、スキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン及びヒルベルトスキャンのうちの少なくとも1つを含む。
【0034】
一実施形態において、再構成データブロックは、復号対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである。
【0035】
一実施形態において、処理モジュールは、具体的に、
符号化側と復号側の事前合意又はコンテキスト情報に基づいて、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを決定し、又は、
前記ビットストリームに基づいて解析して、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを取得し、又は、
前記復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、前記グループ化方式を取得するために用いられる。
【0036】
一実施形態において、処理モジュールは、具体的に、
符号化アルゴリズムに従って復号して、各グループのグループパラメータを得、
各グループの前記グループパラメータに基づいて、前記半固定長符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0037】
一実施形態において、処理モジュールは、具体的に、
ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つの符号化方式に対応する復号方式に基づいて復号して、各グループのグループパラメータを得るために用いられる。
【0038】
一実施形態において、処理モジュールは、具体的に、
固定長符号化アルゴリズムに従って復号して、各グループのグループライスパラメータを得、又は、コンテキストモデルに基づいて、各グループのグループライスパラメータを得、
各グループの前記グループライスパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0039】
一実施形態において、処理モジュールは、具体的に、
コンテキストモデルに基づいて、各グループのグループライスパラメータを得、
固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得、
各グループの前記グループライスパラメータと前記グループパラメータ偏差とに基づいて、各グループのグループパラメータを得、
各グループの前記グループパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0040】
一実施形態において、処理モジュールは、具体的に、
固定長符号化アルゴリズムに従って復号して、各グループの次数kを得、又は、コンテキストモデルに基づいて、各グループの次数kを得、
各グループの前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0041】
一実施形態において、処理モジュールは、具体的に、
コンテキストモデルに基づいて、各グループの次数kを得、
固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得、
前記グループパラメータ偏差に基づいて各グループの次数kを更新し、
各グループの更新後の前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、各グループにおける複数の係数値を含む。
【0042】
一実施形態において、処理モジュールは、具体的に、
復号によって得られた1つ以上のグループの係数、予測方式、量子化方式、及び変換方式のうちの少なくとも1つに基づいて、現在のグループの符号化方式を決定し、
前記現在のグループの符号化方式に対応する復号方式に基づいて復号して、前記現在のグループの係数を得るために用いられ、
前記現在のグループの符号化方式は、ゴロム・ライス符号化、k次指数ゴロム符号化、及び半固定長符号化方式のうちのいくつかの組み合わせである。
【0043】
一実施形態において、符号化ユニットの複数のグループのうちの少なくとも2つのグループの符号化方式は異なる。
【0044】
一実施形態において、前記復号対象ユニットの復号方式がゴロム・ライス符号化又はk次指数ゴロム符号化のいずれかである場合、処理モジュールは、具体的に、
前記復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、前記復号対象ユニットのグループ化方式を取得するために用いられる。
【0045】
第4の態様によれば、ビデオ画像符号化装置が提供され、当該装置は、送受信モジュール及び処理モジュールを含み、
処理モジュールは、元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得、前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得、各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るために用いられ、
送受信モジュールは、符号化済みビットストリームを復号側に送信するために用いられる。
【0046】
一実施形態において、グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。
【0047】
一実施形態において、符号化方式は、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つを含む。
【0048】
一実施形態において、スキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン及びヒルベルトスキャンのうちの少なくとも1つを含む。
【0049】
一実施形態において、符号化対象データブロックは、符号化対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである。
【0050】
第5の態様によれば、符号化復号システムが提供され、当該符号化復号システムは、第3の態様に記載の装置と、第4の態様に記載の装置とを備える。
【0051】
第6の態様によれば、ビデオ画像復号装置が提供され、当該装置は、メモリに接続されるプロセッサを含み、メモリは、コンピュータプログラム又は命令を記憶するために用いられ、プロセッサは、メモリに記憶されたコンピュータプログラム又は命令を実行して、前記装置に第1の態様に記載の方法を実行させるために用いられる。
【0052】
第7の態様によれば、ビデオ画像符号化装置が提供され、当該装置は、メモリに接続されるプロセッサを含み、メモリは、コンピュータプログラム又は命令を記憶するために用いられ、プロセッサは、メモリに記憶されたコンピュータプログラム又は命令を実行して、前記装置に第2の態様に記載の方法を実行させるために用いられる。
【0053】
第8の態様によれば、第1の態様に記載の方法を実行するための電子機器が提供される。
【0054】
第9の態様によれば、第2の態様に記載の方法を実行するための電子機器が提供される。
【0055】
第10の態様によれば、プログラム又は命令を含む可読記憶媒体が提供され、前記プログラム又は命令がプロセッサによって実行されると、第1の態様に記載の方法が実行される。
【0056】
第11の態様によれば、プログラム又は命令を含む可読記憶媒体が提供され、前記プログラム又は命令がプロセッサによって実行されると、第2の態様に記載の方法が実行される。
【0057】
第12の態様によれば、第1の態様に記載の方法を実行するために用いられる回路が提供される。
【0058】
第13の態様によれば、第2の態様に記載の方法を実行するために用いられる回路が提供される。
【0059】
第14の態様によれば、コンピュータアプリケーションプログラムが提供され、前記コンピュータアプリケーションプログラムがコンピュータ又はプロセッサ上で実行されるとき、前記コンピュータ又は前記プロセッサは、第1の態様に記載の方法を実行する。
【0060】
第15の態様によれば、コンピュータアプリケーションプログラムが提供され、前記コンピュータアプリケーションプログラムがコンピュータ又はプロセッサ上で実行されるとき、前記コンピュータ又は前記プロセッサは、第2の態様に記載の方法を実行する。
【0061】
第16の態様によれば、ビデオ画像復号方法が提供され、当該方法は、
復号対象ユニットのビットストリームを得るステップと、
前記復号対象ユニットのスキャン方式を決定するステップと、
前記ビットストリームに基づいて、前記復号対象ユニットのグループ化方式を解析するステップと、
前記ビットストリームに基づいて復号し、各グループのグループパラメータを得るステップと、
各グループの前記グループパラメータに基づいて復号して、各グループにおける複数の係数値を得るステップと、を含み、
前記復号対象ユニットの前記スキャン方式に基づいて、前記復号対象ユニットに対応する前記係数ブロック内の係数を復元して、前記復号対象ユニットに対応する再構成データブロックを得るステップと、を含み、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0062】
一実施形態において、スキャン方式は、垂直スキャンを含む。
【0063】
一実施形態において、前記グループ化方式は、固定長のグループ化方式又は係数の配列位置に基づくグループ化方式を含み、前記固定長のグループ化方式は、復号対象ユニット全体を1つのグループとすること、又は、復号対象ユニット全体における4つの係数毎に1つのグループとすることを含み、前記係数の配列位置に基づくグループ化方式は、復号対象ユニット全体の係数を位置に応じて不均等にグループ化すること、又は、復号対象ユニット全体の係数を位置に応じて均等にグループ化することを含む。
【0064】
一実施形態において、前記ビットストリームに基づいて復号し、各グループのグループパラメータを得るステップは、
係数値の大きさに基づいて、固定長符号とトランケーテッド・ユーナリコードとを組み合わせて前記ビットストリームを復号し、各グループのグループパラメータを得るステップを含む。
【0065】
一実施形態において、各グループの前記グループパラメータに基づいて復号して、各グループにおける複数の係数値を得るステップは、
各グループの前記グループパラメータに基づいて、固定長符号を用いて復号して、各グループにおける複数の係数値を得るステップを含む。
【0066】
第17の態様によれば、ビデオ画像符号化方法が提供され、当該方法は、
元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得るステップと、
前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得るステップと、
各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るステップと、を含み、
前記第1のスキャン方式は、垂直スキャンを含み、前記第1のグループ化方式は、固定長のグループ化方式又は係数の配列位置に基づくグループ化方式を含み、前記固定長のグループ化方式は、符号化対象データブロック全体を1つのグループとすること、又は、符号化対象データブロック全体における4つの係数毎に1つのグループとすることを含み、前記係数の配列位置に基づくグループ化方式は、符号化対象データブロック全体の係数を位置に応じて不均等にグループ化すること、又は、符号化対象データブロック全体の係数を位置に応じて均等にグループ化することを含む。
【0067】
第18の態様によれば、ビデオ画像復号装置が提供され、当該装置は、
復号対象ユニットのビットストリームを得るために用いられる送受信モジュールと、
前記復号対象ユニットのスキャン方式を決定し、前記ビットストリームに基づいて、前記復号対象ユニットのグループ化方式を解析し、前記ビットストリームに基づいて復号し、各グループのグループパラメータを得、各グループの前記グループパラメータに基づいて復号して、各グループにおける複数の係数値を得、前記復号対象ユニットの前記スキャン方式に基づいて、前記復号対象ユニットに対応する前記係数ブロック内の係数を復元して、前記復号対象ユニットに対応する再構成データブロックを得るために用いられる処理モジュールと、を含み、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0068】
第19の態様によれば、ビデオ画像符号化装置が提供され、当該装置は、
元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得、前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得、各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るために用いられる処理モジュールと、
前記符号化済みビットストリームを復号側に送信するために用いられる送受信モジュールと、を含み、
前記第1のスキャン方式は、垂直スキャンを含み、前記第1のグループ化方式は、固定長のグループ化方式又は係数の配列位置に基づくグループ化方式を含み、前記固定長のグループ化方式は、符号化対象データブロック全体を1つのグループとすること、又は、符号化対象データブロック全体における4つの係数毎に1つのグループとすることを含み、前記係数の配列位置に基づくグループ化方式は、符号化対象データブロック全体の係数を位置に応じて不均等にグループ化すること、又は、符号化対象データブロック全体の係数を位置に応じて均等にグループ化することを含む。
【0069】
第20の態様によれば、プロセッサとメモリとを含む電子機器が提供され、
前記メモリは、コンピュータ命令を記憶するために用いられ、
前記プロセッサは、前記メモリから前記コンピュータ命令を呼び出して、第15の態様から第16の態様に記載の方法を実行するために用いられる。
【0070】
第21の態様によれば、コンピュータプログラム又は命令を記憶するコンピュータ可読記憶媒体が提供され、
前記コンピュータプログラム又は命令が電子機器によって実行されると、第15の態様から第16の態様に記載の方法が実行される。
【0071】
理解できるように、上記で提供されたビデオ符号化復号装置、ビデオ符号化復号システム、コンピュータ可読記憶媒体又はコンピュータプログラム製品は、いずれも上記で提供された対応する方法によって実施されることができるため、それによって達成できる有益な効果は、上記で提供された対応する方法における有益な効果を参照することができ、ここでは説明を省略する。
【図面の簡単な説明】
【0072】
図1】本発明の一実施形態に係る符号化復号システムのアーキテクチャ図である。
図2】本発明の一実施形態に係るエンコーダの内部アーキテクチャ図である。
図3】本発明の一実施形態に係るデコーダの内部アーキテクチャ図である。
図4A】本発明の一実施形態に係るビデオ符号化復号のフローチャートである。
図4B】本発明の一実施形態に係るビデオ符号化復号方法のフローチャートである。
図5】本発明の一実施形態に係るビデオ符号化復号方法における復号対象ユニットの概略図である。
図6】本発明の一実施形態に係るビデオ符号化復号方法におけるグループ化及びスキャンの概略図である。
図7】本発明の一実施形態に係るビデオ符号化復号方法における復号対象ユニットにおけるデータ部分の概略図である。
図8】本発明の一実施形態に係るビデオ符号化復号方法における復号対象ユニットのグループ化方式の概略図である。
図9】本発明の一実施形態に係るビデオ符号化復号方法における復号対象ユニットのグループ化方式の概略図である。
図10】本発明の一実施形態に係るビデオ符号化復号装置の概略構成図である。
図11】本発明の実施例に係る電子機器のハードウェア構成図である。
【発明を実施するための形態】
【0073】
以下において、「第1」及び「第2」という用語は、説明のためのものに過ぎず、相対的な重要度を示したり暗示したり、また、示された技術的特徴の数を暗示的に示したりするものとして理解されるべきではない。したがって、「第1」、「第2」に限定される特徴は、1つ又は複数の該特徴を明示的又は暗示的に含み得る。本実施例の説明において、特に断らない限り、「複数」とは2つ以上を意味する。
【0074】
なお、本発明において、「例示的な」又は「例えば」という用語は、例、例示又は説明を示すために用いられる。本発明において「例示的な」又は「例えば」と記載されている任意の実施形態又は設計ソリューションは、他の実施形態又は設計ソリューションよりも好ましい又は有利であると解釈されるべきではない。具体的に言えば、「例示的な」又は「例えば」という用語の使用は、関連する概念を具体的に提示することを意図する。
【0075】
以下、本発明の実施例における添付の図面を参照しながら、本発明の実施例における技術案を明確且つ完全に説明する。明らかに、説明された実施例は本発明の一部の実施例に過ぎず、すべての実施例ではない。本発明の実施例に基づいて、当業者が創造的な労働をせずに取得した他のすべての実施例は、本発明の保護範囲に属する。
【0076】
まず、本発明の実施例に関わる技術用語について説明する。
ビデオシーケンス/画像シーケンス:ビデオにおける完全な画像は一般的に「フレーム」と呼ばれ、時系列に並んだ複数のフレームからなるビデオは、ビデオシーケンス(Video Sequence)と呼ばれ、又は画像シーケンスと呼ばれてもよい。
【0077】
ビデオ符号化技術:ビデオシーケンスには、空間的冗長性、時間的冗長性、視覚的冗長性、情報エントロピー冗長性、構造的冗長性、知識冗長性、重要度冗長性などの一連の冗長情報がある。ビデオシーケンスにおける冗長な情報を可能な限り除去し、ビデオを表すデータ量を削減させるために、ビデオ符号化(Video Coding)技術が提案され、ストレージ容量の削減と伝送帯域幅の節約という効果を達成する。ビデオ符号化技術は、ビデオ圧縮技術とも呼ばれる。
【0078】
ビデオ符号化のプロセスは、通常、予測、変換、量子化、およびエントロピー符号化などのプロセスを含み、エントロピー符号化によって量子化された変換係数を符号化することができる。具体的なプロセスについては後述するため、ここでは説明を省略する。
【0079】
国際汎用範囲において、Motion Picture Experts Group(MPEG)によって策定されたMPEG 2及びMPEG 4規格におけるPart 10のAdvanced Video Coding(AVC)、国際電気通信連合の電気通信標準化部門(International Telecommunication Union-Telecommunication Standardization Sector、ITU-T)によって策定されたH.263、H.264及びH.265(High Efficiency Video Coding standard、HEVCとも呼ばれる)などのビデオ圧縮符号化規格がある。
【0080】
なお、ハイブリッド符号化アーキテクチャに基づく符号化アルゴリズムでは、上記の圧縮符号化方式が混在してもよい。
【0081】
残差:ビデオ符号化プロセスでは、予測処理を通じて空間領域及び時間領域の冗長性を除去する必要があり、エンコーダは、予測を通じて予測値を取得し、元の画素値から予測値を減算して残差値を取得する。残差ブロックは、変換、量子化、エントロピー符号化の基本単位である。
【0082】
変換:ビデオ符号化プロセスにおいて、変換とは、空間領域における画素形式で記述された画像を変換領域の画像に変換し、且つ変換係数の形式で表すことを指す。大多数の画像は、平坦な領域と緩やかに変化する領域が多く含まれ、適切な変換プロセスにより、画像エネルギーを空間領域での散乱分布から変換領域での比較的集中した分布に変換させ、信号間の周波数領域の相関を取り除き、量子化処理と合わせてビットストリームを効果的に圧縮することができる。変換処理は、時間領域の画素値を周波数領域に変換することができ、実際の残差ブロックでは低周波成分が大きな割合を占めている、変換によりエネルギーを低周波領域に集中させる。すなわち、変換後の低周波係数の値が大きく、高周波係数の値が小さい。
【0083】
変換係数:変換と量子化後の残差ブロックの係数は変換係数と呼ばれる。残差ブロック内の画素値を係数と呼び、残差が変換された後、左上のものは低周波係数であり、右下のものは高周波係数である。左上から右下に向かって、周波数が大きくなる。
【0084】
2値化:バイナリ化とも呼ばれ、符号化する必要がある符号又は係数を2値化し、2値化された符号又は係数がバイナリ文字列に変換される。異なる2値化方法で同じ係数を符号化して得られたバイナリ文字列は、異なるバイナリ確率モデル及び異なる文字列長さを有する可能性がある。
【0085】
コンテキスト:一般的に、異なるシンタクス要素間は完全に独立しておらず、同じシンタクス要素自体も一定の記憶性を有する。したがって、条件付きエントロピーの理論に基づいて、他の符号化されたシンタクス要素を用いて条件付き符号化を行うことにより、独立符号化や記憶なし符号化に比べて符号化性能をさらに向上させることができる。これらの条件として用いられる符号化されたシンボル情報はコンテキストと呼ばれる。
【0086】
コンテキストモデル:ビデオ符号化復号において、コンテキストに基づいてシンボル確率を更新するプロセスはコンテキストモデルと呼ばれる。特定の適用条件に応じて、同じシンタックス要素で複数のコンテキストモデルを使用して、現在の条件におけるシンボル確率を適応的に更新することにより、ビットレートをさらに圧縮することができる。
【0087】
エントロピー符号化:情報エントロピーの原理に係る可逆符号化方式を指し、ビデオ圧縮の最後の処理モジュールにあり、ビデオシーケンスを表すための一連の要素記号を、伝送又は記憶のためのバイナリビットストリームに変換し、エントロピー符号化モジュールの出力データは、元のビデオ圧縮後の最終ビットストリームである。エントロピー符号化は、これらのビデオ要素記号の統計的冗長性を効果的に除去することができ、ビデオ符号化圧縮効率を保証するための重要なツールの1つである。
【0088】
ラスタースキャン:2次元の矩形ラスターを1次元ラスターにマッピングすることを指す。1次元ラスターの入り口は2次元ラスターの1行目から始まり、その後、2行目、3行目...とスキャンしていく。ラスターの行は、左から右にスキャンされる。
【0089】
右上対角スキャン:係数ブロックの右下の最後の係数からスキャンを開始し、係数ブロックの左上の最初の係数で終了することを指す。各小ブロック内のスキャン順序はいずれも右下-右上-左下-左上の順序であり、他の小ブロックはこれと同じである。ブロック間のスキャン順序は係数間のスキャン順序と同じであり、右下-右上-左下-左上である。
【0090】
水平往復スキャン:2次元矩形を1次元列にマッピングすることを指す。1次元列の入り口は2次元矩形の開始行から始まり、2次元矩形全体を1行ずつスキャンする。開始行の行スキャン方向は左から右であり、開始行の隣接行の行スキャン方向は右から左であり、任意の2つの隣接行は反対の行スキャン方向を有する。
【0091】
逆水平スキャン:係数ブロックの右下の最後の係数からスキャンを開始し、係数ブロックの左上の最初の係数で終了することを指す。各係数ブロック内で右から左へ、下から上へスキャンし、ブロック間のスキャン順序は右下ブロック-右上ブロック-左下ブロック-左上ブロックの順序である。
【0092】
逆垂直スキャン:係数ブロックの右下の最後の係数からスキャンを開始し、係数ブロックの左上の最初の係数で終了することを指す。各小ブロック内で下から上へ、右から左へスキャンする。
【0093】
Z-スキャン:一辺の長さが偶数である任意の正方形について、左上、右上、左下、右下の順にスキャンすることを指す。
【0094】
ユーナリ(unary)コード:簡単な2値化方法である。具体的に、非負の整数Nについて、そのユーナリコードは、N個の1と1個の0で表される。
【0095】
トランケーテッド・ユーナリ(Truncated unary)コード:ユーナリコードのバリエーションである。具体的に、符号化対象シンボルの最大値がN_maxであることが既知である場合、現在の符号化対象シンボルが非負の整数Nであると仮定し、N<N_maxであれば、トランケーテッド・ユーナリコードはユーナリコードであり、N=N_maxであれば、トランケーテッド・ユーナリコードはN個の1である。
【0096】
トランケーテッド・バイナリ(Truncated binary)コード:valの相関変数(stage、num0、num1及びthdなど)を計算し、0~(thd-1)について、そのバイナリシンボル列の長さがstageの固定長符号であり、thd~valについて、そのバイナリシンボル列の長さが(stage+1)の固定長符号である。
【0097】
ランレングス符号化:各値の連続出現回数を符号値として記録する。例えば:0001110011010100001100、圧縮後の出力:33221111422。
【0098】
固定長符号化:固定符号長を用いて符号化対象係数を符号化する。例えば、8ビットの2進数を用いて符号化するASCIIコードである。
【0099】
半固定長符号化:符号化対象係数を予測方向と残差の大きさに応じてグループ化し、グループ化方式を符号化し、各グループは1つの符号長を符号化し、同じグループ内の係数は同じ固定長を用いて符号化されることを指す。
【0100】
k次指数ゴロム符号化:k次指数ゴロム符号化は、プレフィックス(prefix)とサフィックス(suffix)との2つの部分を含み、符号化方法は、数字Xをバイナリ形式で書いて、最下位k個のビットを除去し、1を加算して、Tを求めるステップ1)と、Tのビット数を計算し、その前にT-1個の0を追加する必要があるステップ2)と、除去された最下位k個のビットをビット列の末尾に追加するステップ3)と、を含む。
【0101】
トランケーテッド・ライス(Truncated Rice)符号化:トランケーテッド・ライス符号化は、プレフィックス(prefix)とサフィックス(suffix)との2つの部分を含み、最大上限値cMax、ライスパラメータcRiceが既知であり、符号化対象シンボルcValを符号化する。
【0102】
ハフマン符号化:すべての係数の出現頻度を統計し、ハフマン木を構築し、確率が大きい係数に短い符号語を割り当て、確率が小さい係数に長い符号語を割り当てる。
【0103】
ゴロム・ライス(Golomb-Rice)符号化:Golomb-RiceはGolomb符号化の1つのバリエーションであり、Golomb符号化との違いは、パラメータmの制限条件が、mが2のべき乗でなければならないことである。具体的に、パラメータmを初期化し、mは2のべき乗でなければならず、qとrを計算し、ここで、q=N/mであり、r=N(m-1)であり、ユーナリコードを用いてqを符号化し、rのバイナリビットの下位log2(m)ビットをrの符号語とする。
【0104】
以下、JPEG-LS符号化モデルと組み合わせてゴロム・ライス符号化アルゴリズムを紹介する。
【0105】
JPEG-LS符号化アルゴリズムにおいて、周囲の再構成画素値を用いてある方向の画素勾配を計算し、現在の画素の予測方向に基づいて1つの勾配値を計算し、又は経験に基づいて、水平方向の勾配値又は垂直方向の勾配値を計算し、勾配を量子化してもよい。
【0106】
JPEG-LSに従って、勾配の閾値パラメータT1、T2及びT3を計算する。
【数1】
【0107】
ここで、nは画像ビット幅であり、Nearは量子化歪みパラメータである。閾値パラメータT1、T2、T3に従って、勾配を以下のように量子化する。
【数2】
【0108】
ここで、Dは勾配計算値を表す。iは複数の方向を表す。量子化された勾配に基づいて、対応するコンテキスト・インデックス
【数3】
を得る。
【0109】
インデックス値Qの符号signと残差補正値C[Q](コンテキスト再構成画素の残差を累計計算することによって得られる)とに基づいて適応誤差補正を行う(SAOのように、予測値を補正する):
【数4】
【0110】
残差値Errvalの振幅をさらに小さくするために、ニアロスレス圧縮の量子化式は次のようになる。
【数5】
【0111】
ここで、signはインデックス値Qの符号signを表し、このときの予測誤差の値の範囲は±(range-1)である。
Range0=(2n-1)元の画素範囲、
Range0=±range予測残差範囲、
range1=-(range0-Near)/(2Near+1)量子化後の極小値、
range2=(range0+Near)/(2Near+1)量子化後の極大値、
range=range2+1。
【0112】
誤差値の範囲を再び圧縮するために、予測誤差Errvalが-range/2より小さい場合、予測誤差Errvalにrange値を加算する。この処理が完了した後、予測誤差Errvalが(1+range)/2以上である場合、予測誤差Errvalからrange値を減算する必要がある。この処理の後、すべての予測誤差Errvalの値の絶対値が(range+1)/2より大きくならない。モジュロ減算の式は以下の通りである。
【数6】
【0113】
最後に、コンテキストに基づいてゴロム符号化のk値を推定する。
【0114】
Aコンテキスト残差絶対値アキュムレータ(すなわち、最初のn個の符号化された残差値の絶対値の和)
【0115】
B+=Errval*(2Near+1)コンテキスト再構成値残差アキュムレータ(すなわち、最初のn個の符号化された再構成値の和)、予測誤差補正パラメータC[Q]を計算するために使用される。Nは、コンテキスト環境に対応するカウンタであり、当該コンテキスト環境の出現回数を記憶する。C[Q]の値は、B/Nの値(補正残差の平均値)が0.5以上増加する毎に1ずつ増加し、B/Nの値が0.5以上減少する毎に1ずつ減少する。一方、計算を局所特徴により一致させるために、閾値N0を設定することができ、NがN0より大きい場合、NとAの値が半分になり、同時にBとC[Q]の値も半分になる。
【0116】
ここで、Kは、現在の残差分布が幾何学的分布に適合するという仮定の下で導出された期待値として計算される。正の整数mをパラメータとして、nに対してゴロム符号化を行うことは、n%mのバイナリコードとn/mのユーナリコードとの2つの部分に分けられる。幾何学的分布の符号化される変数に対して、符号化後の平均符号長が最も短くなるように、1つのmが存在する。mの値が2^kであるときのゴロム符号化は、ゴロム・ライス符号化と呼ばれる。ここで、K=min{k1|2k1N>=A}である。
【0117】
残差の元の範囲は±(range+1)/2であり、それをマッピングする。
【数7】
【0118】
Merrvalに対してゴロム・ライス符号化を用いる。
【0119】
一方、平坦な領域、すなわちDi=0については、ランレングス符号化を直接に用いる。隣接画素a=b=c=dが検出された場合、すなわち、g1=g2=g3=0である場合、符号化が非常に平坦な領域まで進んだことを示し、ランレングス符号化モードに入る。ランレングスモードにおいて、現在の画素xの後の画素がxと等しいか否かを検出し続け(ニアロスレスモードでは、xとの差が許容範囲内にあるか否かを判断する)、それが満たされると、後に検出し続け、同じ値の数(xを含む)をランレングス(Run Length)として記録する。
【0120】
従来技術において、SRCC(Scan Region-based Coefficient Coding)符号化技術は、主に非可逆符号化において、残差値0が多い係数での符号化を対象としており、可逆符号化やニアロスレス符号化に適用できない。コンテキスト適応型2値算術符号化(Context-based Adaptive Binary Arithmetic Coding、CABAC)の技術プロセスは比較的複雑であり、符号化復号の複雑度が増し、ニアロスレス圧縮に使用することは好ましくない。既存のGolomb-Rice符号化及び半固定長符号化は、可逆符号化やニアロスレス符号化に比較的良い効果を有するが、Golomb符号化の符号長は、選定された次数kに依存し、kの値が不正確であると、2値化後の符号長が非常に長くなるため、一般的にk値を迅速に更新するポイント毎(Pointwise)符号化のみに適用する。半固定長符号化は、符号長を一定の範囲内に効果的に制御することができるが、各係数を符号化する前に、これらの係数の符号長を先に符号化する必要があるため、この方法は、一般的にグループ化符号化に適用される。グループ内の係数の数が少なすぎると、この方法は、平均符号長を増加させるが、符号化係数の数を増加させると、係数値の範囲の増加をもたらすことが多い。グループ内の各係数が同じ符号長を使用することにより、グループ内の最大値が大きくなると、平均符号長が長くなる。これらの2つの方式にはいずれもいくつかの不足があるため、これらの2つの符号化方式を組み合わせて、可逆符号化及びニアロスレス符号化に基づく係数符号化方式を提案する。
【0121】
次に、本発明の実施例の実施環境及び応用シーンについて簡単に説明する。本発明で提供されるビデオ符号化復号方法は、図1に示されるビデオ符号化復号システムに適用することができる。
【0122】
以下、本発明の実施例が適用されるシステムアーキテクチャについて説明する。図1は、本発明の一実施例が適用される符号化復号システム(符号化及び復号システムと呼ば得る)10のアーキテクチャの概略図である。図1に示すように、符号化復号システム10は、ソース機器11と、宛先機器12とを含み得る。ソース機器11は、画像を符号化するために用いられるため、ビデオ符号化装置と呼ばれてもよい。宛先機器12は、ソース機器11により生成された符号化画像データを復号するために用いられるため、ビデオ復号装置と呼ばれてもよい。
【0123】
ソース機器11及び宛先機器12は、例えば、デスクトップコンピュータ、モバイルコンピューティングデバイス、ラップトップ(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、携帯電話、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車載コンピュータ、無線通信デバイスなどの様々な装置を含んでもよい。
【0124】
任意選択で、図1のソース機器11及び宛先機器12は2つの別個の機器であってもよく、又は、ソース機器11及び宛先機器12は同じ機器であってもよく、すなわち、ソース機器11又は対応する機能、及び宛先機器12又は対応する機能は、同じ機器に統合されてもよい。
【0125】
ソース機器11と宛先機器12との間で通信を行うことができ、例えば、宛先機器12は、ソース機器11から符号化画像データを受信してもよい。一例では、ソース機器11と宛先機器12との間に1つ又は複数の通信媒体が含まれてもよく、1つ又は複数の通信媒体を介して符号化画像データを伝送する。当該1つ又は複数の通信媒体は、ルータ、スイッチ、基地局又はソース機器11から宛先機器12への通信を容易にする他の機器を含んでもよい。
【0126】
図1に示すように、ソース機器11はエンコーダ112を含み、オプションとして、ソース機器11は、画像プリプロセッサ111と、通信インタフェース113とをさらに含んでもよい。ここで、画像プリプロセッサ111は、受信した符号化対象画像に対して前処理を実行するために用いられる。例えば、画像プリプロセッサ111によって実行される前処理は、レタッチ(retouch)、色フォーマット変換(例えば、RGBフォーマットからYUVフォーマットへの変換)、色調整又はノイズ除去などを含み得る。エンコーダ112は、前処理された画像を受信し、相関予測モード(例えば、本明細書の各実施例における予測モード)を用いて前処理された画像を処理し、符号化画像データを提供するために用いられる。いくつかの実施形態では、エンコーダ112は、以下の実施形態における画像符号化プロセスを実行するために用いられてもよい。通信インタフェース113は、符号化画像データを宛先機器12又は任意の他の機器(例えば、メモリ)に伝送して、記憶又は直接再構成するために用いられてもよい。他の機器は、復号又は記憶のための任意の機器であってもよい。また、通信インタフェース113は、符号化画像データを適切なフォーマットにカプセル化してから伝送してもよい。
【0127】
任意選択で、上記の画像プリプロセッサ111、エンコーダ112、及び通信インタフェース113は、ソース機器11内のハードウェアコンポーネントであってもよく、又はソース機器11内のソフトウェアプログラムであってもよく、本発明の実施例は限定されない。
【0128】
引き続き図1に示すように、宛先機器12はデコーダ122を含み、オプションとして、宛先機器12は、通信インタフェース121と、画像ポストプロセッサ123とをさらに含んでもよい。ここで、通信インタフェース121は、ソース機器11又は任意の他のソース機器から符号化画像データを受信するために用いられてもよい。当該任意の他のソース機器は、例えば、記憶機器である。また、通信インタフェース121は、通信インタフェース113により伝送されたデータをデカプセル化して符号化画像データを取得してもよい。デコーダ122は、符号化画像データを受信し、復号画像データ(再構成された画像データ又は再構成済み画像データとも呼ばれる)を出力するために用いられる。いくつかの実施形態では、デコーダ122は、以下の実施形態で説明される復号プロセスを実行するために用いられてもよい。
【0129】
画像ポストプロセッサ123は、復号画像データに対して後処理を実行して、後処理された画像データを取得するために用いられる。画像ポストプロセッサ123によって実行される後処理は、色フォーマット変換(例えば、YUVフォーマットからRGBフォーマットへの変換)、色調整、レタッチ、又はリサンプリング、又は任意の他の処理を含んでもよく、また、後処理された画像データを表示機器に伝送して表示するために用いられてもよい。
【0130】
同様に、任意選択で、上記の通信インタフェース121、デコーダ122、及び画像ポストプロセッサ123は、宛先機器12内のハードウェアコンポーネントであってもよく、宛先機器12内のソフトウェアプログラムであってもよく、本発明の実施例は限定されない。
【0131】
以下、図1におけるエンコーダ及びデコーダの構成を簡単に説明する。
【0132】
図2を参照すると、図2は、本発明の一実施例を実施するためのンコーダ20の一例の概略ブロック図である。図2において、エンコーダは、予測処理部201と、残差演算部202と、変換処理部203と、量子化部204と、エントロピー符号化部205と、逆量子化部206と、逆変換処理部207と、再構成部208と、フィルタ部209とを含む。任意選択で、エンコーダ20は、バッファと、復号画像バッファとをさらに含み得る。バッファは、再構成部208によって出力された再構成画像ブロックをバッファリングするために用いられ、復号画像バッファは、フィルタ部209によって出力されたフィルタリングされた画像ブロックをバッファリングするために用いられる。
【0133】
エンコーダ20への入力は、画像(符号化対象画像と呼ばれてもよい)の画像ブロックであり、画像ブロックは、現在の画像ブロック又は符号化対象画像ブロックと呼ばれてもよい。エンコーダ20は、符号化対象画像を複数の画像ブロックに分割するために用いられる分割部(図2では図示せず)をさらに含んでもよい。エンコーダ20は、符号化対象画像の符号化を完了するためにブロック毎に(block-by-block)符号化するために用いられ、例えば、各画像ブロックに対して符号化プロセスを実行する。
【0134】
予測処理部201は、画像ブロック(現在の符号化対象画像の現在の符号化対象画像ブロック、又は、現在の画像ブロックと呼ばれてもよく、画像ブロックの真値として理解され得る)及び再構成済み画像データを受信又は取得し、再構成済み画像データ内の関連データに基づいて現在の画像ブロックを予測して、現在の画像ブロックの予測ブロックを取得するために用いられる。オプションとして、予測処理部201は、インター予測部、イントラ予測部、及びモード選択部を含んでもよい。モード選択部は、イントラ予測モード又はインター予測モードを選択するために用いられる。イントラ予測モードが選択される場合、イントラ予測部により予測処理を行う。インター予測モードが選択される場合、インター予測部により予測処理を行う。
【0135】
残差演算部202は、画像ブロックの真値と当該画像ブロックの予測ブロックとの間の残差を計算して、残差ブロックを取得するために用いられる。例えば、画素毎に画像ブロックの画素値から予測ブロックの画素値を減算する。
【0136】
変換処理部203は、残差ブロックに対して離散コサイン変換(discrete cosine transform、DCT)又は離散サイン変換(discrete sine transform、DST)などの変換を実行して、変換領域において変換係数を得るために用いられる。変換係数は、変換残差係数とも呼ばれ得る。当該変換残差係数は、変換領域において残差ブロックを表すことができる。
【0137】
量子化部204は、スカラ量子化又はベクトル量子化を適用することによって変換係数を量子化して、量子化された変換係数を得るために用いられる。量子化された変換係数は、量子化された残差係数と呼ばれてもよい。量子化処理により、変換係数の一部又は全部に関連するビット深度が低減される。例えば、nビットの変換係数は、量子化時にmビットの変換係数に切り捨てられてもよく、nはmより大きい。量子化の程度は、量子化パラメータ(quantization parameter、QP)を調整することによって変更され得る。例えば、スカラ量子化に対して、異なるスケールを適用して、より細かい量子化又はより粗い量子化を実現することができる。より小さい量子化ステップはより細かい量子化に対応し、より大きい量子化ステップはより粗い量子化に対応する。適切な量子化ステップは、量子化パラメータ(QP)によって示されてもよい。
【0138】
エントロピー符号化部205は、上記の量子化された残差係数に対してエントロピー符号化を行い、符号化ビットストリームの形で符号化画像データ(すなわち、現在の符号化対象画像ブロックの符号化結果)を出力し、次いで、符号化ビットストリームを、デコーダに伝送するか、又は後続のデコーダへの送信又は検索のために記憶するために用いられる。エントロピー符号化部205は、現在の画像ブロックの他のシンタックス要素をエントロピー符号化するようにさらに用いられてよく、例えば、予測モードをビットストリームにエントロピー符号化する。エントロピー符号化アルゴリズムは、可変長符号化(Variable Length Coding、VLC)アルゴリズム、コンテキスト適応VLC(Context Adaptive VLC、CAVLC)アルゴリズム、算術符号化アルゴリズム、コンテキスト適応型2値算術符号化(Context-based Adaptive Binary Arithmetic Coding、CABAC)アルゴリズム、シンタクスベースコンテキスト適応型2値算術符号化(Syntax-based Context-adaptive Binary Arithmetic Coding、SBAC)アルゴリズム、及び確率区間分割エントロピー(Probability Interval Partitioning Entropy、PIPE)アルゴリズムを含むが、これに限定されない。
【0139】
逆量子化部206は、上記の量子化係数を逆量子化して、逆量子化係数を得るために用いられる。当該逆量子化は、上記の量子化部204の逆適用であり、例えば、量子化部204と同じ量子化ステップに基づいて、又は、量子化部204と同じ量子化ステップを使用して、量子化部204によって適用される量子化方式の逆量子化方式を適用する。逆量子化係数は、逆量子化された残差係数と呼ばれてもよい。
【0140】
逆変換処理部207は、上記の逆量子化係数に対して逆変換を行うために用いられる。理解すべきものとして、当該逆変換は、上記の変換処理部203の逆適用であり、例えば、逆変換は、逆離散コサイン変換(discrete cosine transform、DCT)又は逆離散サイン変換(discrete sine transform、DST)を含み、画素領域(又はサンプル領域と呼ばれる)において逆変換ブロックを取得する。逆変換ブロックは、逆変換逆量子化されたブロック又は逆変換残差ブロックと呼ばれてもよい。
【0141】
再構成部208は、逆変換ブロック(すなわち、逆変換残差ブロック)を予測ブロックに追加して、サンプル領域において再構成ブロックを取得するために用いられる。再構成部208は、加算器であってもよい。例えば、残差ブロックのサンプル値(すなわち、画素値)と予測ブロックのサンプル値とを加算する。当該再構成部208によって出力された再構成ブロックは、その後、イントラ予測モードで使用されるなど、他の画像ブロックを予測するために使用されてもよい。
【0142】
フィルタ部209(又は「フィルタ」と略称する)は、画素変換を円滑に行い、又は画質を向上させるために、再構成ブロックをフィルタリングして、フィルタリングされたブロックを取得するために用いられる。フィルタ部は、1つ以上のループフィルタ、例えば、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset、SAO)フィルタ、又は、バイラテラルフィルタ、適応ループフィルタ(adaptive loop filter、ALF)、鮮鋭化フィルタ又は平滑化フィルタ、又は協調フィルタなどの他のフィルタを表すことを意図しているループフィルタ部であってもよい。任意選択で、当該フィルタ部209によって出力されたフィルタリングされたブロックは、その後、インター予測モードで使用されるなど、他の画像ブロックを予測するために使用されてもよい。
【0143】
具体的に、本発明の実施例では、エンコーダ20は、以下の実施例で説明されるビデオ符号化復号方法を実行するために用いられる。
【0144】
図3を参照すると、図3は、本発明の一実施例を実施するためのデコーダ30の一例の概略ブロック図である。ビデオデコーダ30は、例えば、エンコーダ20によって符号化された符号化画像データ(すなわち、符号化ビットストリーム、例えば、画像ブロックを含む符号化ビットストリーム及び関連するシンタックス要素)を受信して、復号画像を取得するために用いられる。デコーダ30は、エントロピー復号部301、逆量子化部302、逆変換処理部303、予測処理部304、再構成部305、及びフィルタ部306を含む。いくつかの例では、デコーダ30は、図2のエンコーダ20について説明された符号化パスと実質的に逆の復号パスを実行し得る。任意選択で、デコーダ30は、バッファと、復号画像バッファとをさらに含み得る。バッファは、再構成部305によって出力された再構成画像ブロックをバッファリングするために用いられ、復号画像バッファは、フィルタ部306によって出力されたフィルタリング画像ブロックをバッファリングするために用いられる。
【0145】
エントロピー復号部301は、符号化画像データに対してエントロピー復号を行い、量子化係数及び/又は復号された符号化パラメータ(例えば、復号パラメータは、インター予測パラメータ、イントラ予測パラメータ、フィルタパラメータ、及び/又は他のシンタックス要素のうちの任意の1つ又はすべてを含み得る)を得るために用いられる。エントロピー復号部301は、予測処理部が符号化パラメータに基づいて予測処理を行うために、上記の復号された符号化パラメータを予測処理部304に転送するためにさらに用いられる。
【0146】
逆量子化部302の機能は、エンコーダ20の逆量子化部206の機能と同じであってもよい。逆量子化部302は、エントロピー復号部301によって復号された量子化係数を逆量子化するために用いられる。
【0147】
逆変換処理部303の機能は、エンコーダ20の逆変換処理部207の機能と同じであってもよい。再構成部305(例えば、加算器)の機能は、エンコーダ20の再構成部208の機能と同じであってもよい。逆変換処理部303は、上記の量子化係数に対して逆変換(例えば、逆DCT、逆整数変換、又は概念的に類似する逆変換処理)を行い、逆変換ブロック(逆変換残差ブロックと呼ばれてもよい)を取得するために用いられる。当該逆変換ブロックは、画素領域における現在の画像ブロックの残差ブロックである。
【0148】
予測処理部304は、符号化画像データ(例えば、現在の画像ブロックの符号化ビットストリーム)及び再構成済み画像データを受信又は取得するために用いられる。予測処理部304は、例えば、エントロピー復号部302から予測関連パラメータ及び/又は選択された予測モードに関する情報(すなわち、復号された符号化パラメータ)を受信又は取得し、再構成済み画像データにおける関連データ及び復号された符号化パラメータに基づいて現在の画像ブロックを予測して、現在の画像ブロックの予測ブロックを取得してもよい。任意選択で、予測処理部304は、インター予測部、イントラ予測部、及びモード選択部を含んでもよい。モード選択部は、イントラ予測モード又はインター予測モードを選択するために用いられる。イントラ予測モードが選択される場合、イントラ予測部は、予測処理により行う。インター予測モードが選択される場合、インター予測部により予測処理を行う。
【0149】
再構成部305は、逆変換ブロック(すなわち、逆変換残差ブロック)を予測ブロックに追加して、サンプル領域において再構成ブロックを取得するために用いられる。例えば、逆変換残差ブロックのサンプル値と予測ブロックのサンプル値とを加算する。
【0150】
フィルタ部306は、再構成ブロックをフィルタリングして、フィルタリングされたブロックを取得するために用いられる。当該フィルタリングされたブロックは、復号された画像ブロックである。
【0151】
具体的に、本発明の実施例では、デコーダ30は、以下の実施例で説明されるビデオ復号方法を実行するために用いられる。
【0152】
なお、本発明の実施例におけるエンコーダ20及びデコーダ30では、ある部分の処理結果は、さらに処理された後に次の部分に出力されてもよい。例えば、補間フィルタリング、動きベクトル導出、又はフィルタリングなどの部分の後に、対応する部分の処理結果はClip又はシフトshiftなどの動作がさらに実行される。
【0153】
本発明の実施例で提供されるビデオ復号方法、ビデオ符号化方法は、任意の画像又はビデオ画像を圧縮符号化又は復号する機能を有する電子機器によって実行されてもよい。いくつかの実施例では、当該電子機器は、ノートパソコン、タブレットパソコン、デスクトップコンピュータ、ポータブルコンピュータ等であってもよく、本発明の実施例はこれに限定されない。
【0154】
以下では、図1図3に示すビデオ符号化復号システムに基づいて、本発明はビデオ符号化/復号の可能な実施形態を提供する。図4Aに示すように、図4Aは、本発明に係るビデオ符号化/復号のフローチャートであり、当該ビデオ符号化/復号の実施形態は、手順[1](1)から手順[5]を含み、手順[1]から手順[5]は、上記のエンコーダ20、デコーダ30、ソース機器11、又は宛先機器12のうちのいずれか1つ以上によって実行され得る。
【0155】
手順[1]:1フレームの画像を互いに重ならない1つ以上の並列符号化ユニット(Coding Unit、CU)に分割する。当該1つ以上の並列符号化ユニットは、図4Aに示す並列符号化ユニット1及び並列符号化ユニット2のように、互いに依存関係を持たず、完全に並列/独立して符号化及び復号することができる。
【0156】
手順[2]:各並列符号化ユニットについて、それを互いに重ならない1つ以上の独立符号化ユニットに分割してもよい。各独立符号化ユニットは、互いに依存しなくてもよいが、いくつかの並列符号化ユニットのヘッダ情報を共有してもよい。
【0157】
例えば、独立符号化ユニットの幅はw_lcuであり、高さはh_lcuである。並列符号化ユニットが1つの独立符号化ユニットに分割される場合、独立符号化ユニットのサイズは並列符号化ユニットと完全に同じである。そうでない場合、独立符号化ユニットの幅は高さよりも大きくなければならない(エッジ領域でない限り)。
【0158】
通常、独立符号化ユニットは、固定のw_lcu×h_lcuであってもよい。w_lcu及びh_lcuは、いずれも2のN乗(N≧0)である。例えば、独立符号化ユニットのサイズは、128×4、64×4、32×4、16×4、8×4、32×2、16×2又は8×2などである。
【0159】
可能な一例として、独立符号化ユニットは、固定の128×4であってもよい。並列符号化ユニットのサイズが256×8である場合、並列符号化ユニットは4つの独立符号化ユニットに均等に分割されてもよい。並列符号化ユニットのサイズが288×10である場合、並列符号化ユニットは、2つの128×4の独立符号化ユニット+1つの32×4の独立符号化ユニットの第1/第2行、2つの128×2の独立符号化ユニット+1つの32×2の独立符号化ユニットの第3行に分割される。
【0160】
なお、独立符号化ユニットは、輝度Y、色度Cb、色度Crの3つの成分、又は赤(red、R)、緑(green、G)、青(blue、B)の3つの成分を含んでもよいし、これらの成分のうちの1つのみを含んでもよい。独立符号化ユニットが3つの成分を含む場合、これら3つの成分のサイズは完全に同じであっても異なってもよく、具体的には画像の入力フォーマットに関連する。
【0161】
手順[3]:各独立符号化ユニットについて、それを互いに重ならない1つ以上の符号化ユニットに分割してもよい。独立符号化ユニット内の各符号化ユニットは互いに依存してもよく、例えば、複数の符号化ユニットはプリコーディング及びプリデコーディングのために互いに参照してもよい。
【0162】
符号化ユニットと独立符号化ユニットのサイズが同じである場合(すなわち、独立符号化ユニットが1つの符号化ユニットのみに分割される場合)、そのサイズは、手順[2]で説明されるすべてのサイズであってもよい。
【0163】
独立符号化ユニットが互いに重ならない複数の符号化ユニットに分割される場合、その実行可能な分割例として、水平均等分割(符号化ユニットの高さが独立符号化ユニットと同じであるが、幅が異なり、その1/2、1/4、1/8、1/16などであってもよい)、垂直均等分割(符号化ユニットの幅が独立符号化ユニットと同じであり、高さが異なり、その1/2、1/4、1/8、1/16などであってもよい)、水平及び垂直均等分割(四分木分割)などがあり、水平均等分割が好ましい。
【0164】
符号化ユニットの幅がw_cuであり、高さがh_cuである場合、その幅は高さよりも大きくなければならない(エッジ領域でない限り)。通常、符号化ユニットは、固定のw_cu×h_cuであってもよい。w_cu及びh_cuはいずれも2のN乗(Nは0以上)であってもよく、例えば、16×4、8×4、16×2、8×2、8×1、4×1などである。
【0165】
可能な一例として、符号化ユニットは、固定の16×4であってもよい。独立符号化ユニットのサイズが64×4である場合、独立符号化ユニットは4つの符号化ユニットに均等に分割されてもよい。独立符号化ユニットのサイズが72×4である場合、符号化ユニットは、4つの16×4の独立符号化ユニット+1つの8×4の独立符号化ユニットに分割される。
【0166】
なお、符号化ユニットは、輝度Y、色度Cb、色度Crの3つの成分(又は赤R、緑G、青Bの3つの成分)を含んでもよいし、これらの成分のうちの1つのみを含んでもよい。符号化ユニットが3つの成分を含む場合、これら3つの成分のサイズは完全に同じであっても異なってもよく、具体的には画像の入力フォーマットに関連する。
【0167】
なお、手順[3]は、ビデオ符号化復号方法における任意選択のステップであり、ビデオエンコーダ/デコーダは、手順[2]で得られる独立符号化ユニットの残差係数(又は残差値)を符号化/復号してもよい。
【0168】
手順[4]:符号化ユニットについて、それを互いに重ならない1つ以上の予測グループ(Prediction Group、PG)に分割してもよい。PGはGroupと略称されてもよい。各PGは、選択された予測モードに従って符号化復号を行い、PGの予測値を取得し、符号化ユニット全体の予測値を構成する。予測値と、符号化ユニットの元の値とに基づいて、符号化ユニットの残差値を取得する。
【0169】
手順[5]:符号化ユニットの残差値に基づいて、符号化ユニットをグループ化し、互いに重ならない1つ以上の残差小ブロック(residual block、RB)を取得し、各RBの残差係数を選択されたモードに従って符号化復号し、残差係数ストリームを形成する。具体的に、残差係数を変換する場合と変換しない場合の2種類に分けられる。
【0170】
ここで、手順[5]における残差係数の符号化復号方法の選択されたモードは、半固定長符号化方法、指数ゴロム(Golomb)符号化方法、Golomb-Rice符号化方法、トランケーテッド・ユーナリコード符号化方法、ランレングス符号化方法、元の残差値を直接符号化するなどのいずれかを含み得るが、これらに限定されない。
【0171】
例えば、ビデオエンコーダは、RB内の係数を直接に符号化してもよい。
【0172】
また、例えば、ビデオエンコーダは、残差ブロックに対してDCT、DST、Hadamard変換などの変換を行い、変換後の係数に対して符号化を行ってもよい。
【0173】
可能な一例として、RBが小さい場合、ビデオエンコーダは、RB内の各係数に対して統括的に量子化を直接行ってから、2値化符号化を行ってもよい。RBが大きい場合、RBはさらに複数の係数グループ(coefficient group、CG)に分割され、各CGを統括的に量子化し、その後、2値化符号化を行ってもよい。本発明のいくつかの実施例では、係数グループ(CG)と量子化グループ(QG)は同じであってもよい。
【0174】
以下、半固定長符号化方式で残差係数を符号化する部分を例示的に説明する。まず、1つのRBブロック内の残差絶対値の最大値を修正最大値(modified maximum、mm)と定義する。次に、当該RBブロック内の残差係数の符号化ビット数を決定する(同じRBブロック内の残差係数の符号化ビット数は一致する)。例えば、現在のRBブロックのクリティカル限界(critical limit、CL)が2であり、現在の残差係数が1である場合、残差係数1を符号化するのに2ビット必要であり、これを01と表記する。現在のRBブロックのCLが7である場合、8ビットの残差係数及び1ビットの符号ビットを符号化することを表す。CLの決定は、現在のサブブロックのすべての残差が[-2^(M-1)、2^(M-1)]の範囲内にあるという条件を満たす最小のM値を見つけることである。-2^(M-1)と2^(M-1)の2つの境界値が同時に存在する場合、Mを1増加させる必要があり、すなわち、現在のRBブロックのすべての残差を符号化するためにM+1ビットが必要とされる。-2^(M-1)と2^(M-1)の2つの境界値のうちの1つのみが存在する場合、当該境界値が-2^(M-1)であるか2^(M-1)であるかを決定するために1つのTrailingビットを符号化する必要がある。すべての残差が-2^(M-1)又は2^(M-1)でない場合、当該Trailingビットを符号化する必要がない。
【0175】
また、いくつかの特殊な場合、ビデオエンコーダは、残差値ではなく、画像の元の値を直接に符号化してもよい。
【0176】
前述した問題点に基づき、本発明は、ロスレス圧縮符号化フレームワーク及びニアロスレス圧縮符号化フレームワークのためのビデオ符号化復号方法を提供する。当該方法は、元の画素(量子化/非量子化)の値、予測後(量子化/非量子化)の残差係数、又は変換後(量子化/非量子化)の変換係数を以下のように符号化することができる。(1)元の画素、残差係数及び変換係数の間のデータ分布の違いを考慮して、異なるデータについて、その分布特徴に応じて異なる符号化方法を使用する。
【0177】
(2)同時に、データに対して異なるスキャン方式を設計することができ、スキャンの方式はデータの分布を考慮する必要があり、振幅が近い係数をできるだけ一緒に分布させる。
【0178】
(3)スキャンして得られたデータに対して、それをグループ化してもよく、グループ化方式は、データの分布に基づいて不規則グループ化を行ってもよく、直接に固定グループ化を行ってもよい。データの具体的なグループ化状況は、符号化復号の合意によって一致してもよく、コンテキストに基づいて導出してもよく(符号化済みデータに基づいて導出すること、予測係数に基づいて導出すること、符号化済みのパラメータに基づいて導出することを含む)、符号化側からパラメータを伝送することによって得られてもよい。
【0179】
(4)異なるデータ分布に対して、符号化対象データに基づいて直接に符号化を行ってもよく、コンテキストに基づいてパラメータ推定し、符号化対象係数の符号化範囲を推定するか、又は関連する符号化対象係数の値を直接に推定してもよい。その後、推定値の範囲に基づいて、1つのパラメータ補正値を算出し、推定したパラメータをより正確にするために、1つのパラメータ補正値をさらに伝送するか否かを選択してもよい。
【0180】
(5)異なるデータ分布について、コンテキストに基づいてパラメータ推定を行い、次のグループ(各グループの係数の数は1以上であってもよい)の符号化係数の数値範囲を推定し、推定値に基づいて次のグループの係数の符号化方式を選択してもよい。
【0181】
(6)異なるデータ分布について、コンテキストに基づいてパラメータ推定を行い、ビットストリームから1つのパラメータ補正値を解析して、次のグループの符号化パラメータの数値範囲を取得し、数値範囲に基づいて次のグループの係数の符号化方式を選択してもよい。係数の異なる範囲に基づいて、異なる符号化方式又は符号化方法を選択してもよい。
【0182】
(7)時間領域におけるデータ分布が周波数領域におけるデータ分布と異なり、時間領域におけるデータ分布が比較的均一であり、周波数領域におけるデータの大きいエネルギーが低周波数情報に分布するため、変換係数の符号化は、変換後の係数の位置を考慮して特殊にグループ化してもよい。
【0183】
(8)係数を符号化する場合、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、ランレングス符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ゴロム・ライス符号化、ハフマン符号化、算術符号化又は適応可変長符号化などを選択してもよい。係数は、これらの符号化方式の1つ又は組み合わせを使って符号化されてもよい。
【0184】
具体的な実施形態において、符号化係数に対するスキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復(水平/垂直)スキャン、対角(左上、右上、左下、右下)スキャン、逆対角線スキャン、逆水平スキャン、逆垂直スキャン又は1つの固定のスキャンテンプレートに基づくスキャンなどから選択してもよい。
【0185】
全体として、本発明の実施例で提供される全体的な符号化プロセスは、復号プロセスの手順と一致し、ビットストリームに書き込まれる必要があるパラメータは、符号化側におけるビットレート歪み最適化(rate distortion optimization、RDO)によって取得されてもよく、推定によって取得されてもよい。本発明の実施例で提供されるビデオ符号化復号プロセスは、主に、グループ化符号化プロセスと、グループ化符号化不要プロセスとを含む。
【0186】
1、グループ化符号化プロセス:まず、係数を1次元ベクトルに変更し、符号化対象領域が3次元画像である場合、3次元画像を1つ以上の2次元係数ブロックに分割し、符号化対象領域が2次元係数ブロックである場合、符号化対象ブロックを一定のスキャン順序でスキャンし、2次元係数ブロックを1次元係数ベクトルになるようにスキャンする。
【0187】
次に、係数ベクトルを係数の大きさに基づいてグループ化し、振幅が近い係数を同じグループに分ける。いくつかの固定のグループ化方式に基づいて、1次元係数をグループ化し、具体的なグループ化情報を符号化するか、又は、予測方式、変換方式に基づいて、1次元係数のグループ化方式を導出する。同じグループ内の符号化係数は、1つのパラメータ(group_param)を用いてもよく、このパラメータは、後のすべての係数の符号化をガイドすることができる。パラメータ(group_param)は、固定長符号で符号化されてもよく、ユーナリコード又はトランケーテッド・ユーナリコードで符号化されてもよい。そして、group_paramに基づいて、ある符号化方式でグループ内の各係数を符号化する。
【0188】
2、グループ化符号化不要プロセス:グループ化方式と同様に、グループ化方法を削除し、係数毎に符号化を行い、各符号化対象係数に対して、コンテキストに基づいて符号化対象係数の値の範囲を導出し、この範囲に基づいて1つの符号化方式を選択して符号化を行ってもよい。
【0189】
以下、本発明の実施例の全体的な復号プロセスを簡単に説明する。a)係数に対するスキャン方法を決定する。b)係数のタイプ(元の値、変換係数、予測後の残差係数)を決定する。c)係数の符号化方法を決定する。d)符号化方法に基づいて、ビットストリームから各係数又は各グループの係数に必要なパラメータを復号する。e)係数の符号化方法に基づいて、コンテキスト情報に基づいて予測パラメータを導出する必要があるか否かを決定する。f)予測パラメータが存在する場合、予測パラメータ及びビットストリームにおいて解析されたパラメータに基づいて、係数の符号化方式に基づいて対応する復号を行い、そうでない場合、コンテキスト情報に基づいて予測パラメータを導出する。g)グループが存在する場合、ビットストリームに基づいて、各グループ内の復号係数を元の係数位置に順次戻し、そうでない場合、直接に復号してすべての係数値を得る。
【0190】
復号側のステップa)、ステップb)、及びステップc)において決定される方式は、ビットストリームによって解析されてもよく、符号化側と復号側によって合意されてもよく、復号側によって導出されてもよい(現在のブロックのサイズ又は予測方式、変換方式などのパラメータに基づいて決定される)。
【0191】
1、グループ化復号プロセスは、主に次のことを含む。まず、当該ブロックのスキャン方式を決定し、次に、スキャン後の係数のグループ分け方式を決定し、そして、ある復号方式を用いて各グループのパラメータ(group_param)を復号し、group_paramに基づいて、ある復号方法を用いてグループ内の各係数値を復号し、最後に、スキャン方式に基づいて、符号化ブロック内の係数を元の配列に復元する。
【0192】
2、グループ化復号不要プロセスは、主に次のことを含む。まず、当該ブロックのスキャン方式を決定し、コンテキストに基づいて現在の符号化係数の範囲を予測し、係数の値の範囲に基づいて、1つの復号方法を選択して復号を行う。
【0193】
以下、図面を参照しながら、本発明の実施例で提供されるビデオ復号方法、ビデオ符号化方法を詳細に説明する。
【0194】
本発明は、ビデオ復号方法を提供する。図4Bは、本発明の実施例で提供されるビデオ符号化復号方法のフローチャートである。当該方法における符号化プロセスは、前述のエンコーダによって実行されてもよく、復号プロセスは、前述のデコーダによって実行されてもよい。当該方法は、以下のステップを含んでもよい。
【0195】
401において、符号化側は、元の画像データにおける符号化対象ユニットを第1のスキャン方式でスキャンして係数シーケンスを得る。
【0196】
一実施形態において、符号化側は、元のデータブロックをスキャンし、異なるスキャン方式に基づいて符号化対象係数を取得してもよい。具体的に、第1のスキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復(水平/垂直)スキャン、対角(左上、右上、左下、右下)スキャン、逆水平スキャン、逆垂直スキャン、ヒルベルトスキャン又は1つの固定のスキャンテンプレートに基づくスキャンなどのいずれか1つを含んでもよい。ここで、各スキャン方式の具体的なスキャンプロセスについては、関連技術の説明を参照することができ、本発明ではこれについて限定しない。
【0197】
符号化側は、現在の係数の予測方式や変換方式などに基づいて、1つ以上のスキャン方式を導出してもよい。あるいは、符号化側は、符号化側と復号側の事前合意に基づいて、すべての係数に対して1つのスキャン方式を選択してもよく、これにより、復号側は、事前合意に基づいて当該スキャン方式を決定してもよい。
【0198】
一実施形態において、本発明の実施例におけるビデオ符号化復号方式は、元の画素の符号化、元の画素値を予測して得られる残差値の符号化、元の画素値を予測して得られる残差値を量子化して得られる係数の符号化、予測した残差値を変換して得られる変換係数の符号化、又は予測した残差値を変換して得られる変換係数を量子化して得られる係数の符号化などに適用可能である。以上のいくつかのデータの符号化は、いずれも本発明で提供される実施形態により符号化圧縮されてもよい。
【0199】
すなわち、本発明の実施形態において言及される元のデータブロック、符号化対象ユニット、又は復号して得られる再構成データブロックは、符号化対象画像の元の画素値で構成されるデータブロックであってもよいし、元の画素値を予測して得られる残差値で構成されるデータブロックであってもよいし、前記残差値を量子化して得られる係数で構成されるデータブロックであってもよいし、前記残差値を変換して得られる変換係数で構成されるデータブロックであってもよいし、前記残差値を変換して得られる変換係数をさらに量子化して得られる係数で構成されるデータブロックであってもよい。以下の実施例ではこれについての説明は繰り返さない。
【0200】
一実施形態において、本発明の実施例における符号化対象のデータシーケンスは、様々なサイズの係数ブロックであってよく、例えば、m×nのデータブロックであってもよい。ここで、m及びnの両方は64以下であり、例えば、符号化対象ユニットは、16×4の係数ブロック、16×1の係数ブロック、8×4の係数ブロック、8×2の係数ブロック、又は4×2の係数ブロックである。
【0201】
402において、符号化側は、係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得る。
【0202】
一実施形態において、前記グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。ここで、複数グループの符号化対象サブシーケンスにおける係数の数は同じであってもよく、異なってもよい。以下、具体的なグループ化方式については、具体的な実施例に基づいて説明し、ここでは説明を省略する。
【0203】
403において、符号化側は、各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化ビットストリームを得る。
【0204】
一実施形態において、前記符号化方式は、前述のユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号、及びゴロム・ライス符号化などのうちの少なくとも1つを含み得る。また、上記の符号化方式における複数の符号化方式の組み合わせであってもよい。以下、具体的な実施例に基づいて説明し、ここでは説明を省略する。
【0205】
一実施形態において、符号化対象サブシーケンスに対して決定される符号化方式は同じであってもよく、異なってもよい。以下、具体的な符号化方式については、具体的な実施例に基づいて説明し、ここでは説明を省略する。
【0206】
404において、符号化側は、ビットストリームを1つずつ復号側に伝送する。
【0207】
405において、復号側は、ビットストリームを取得し、復号対象ユニットのスキャン方式、グループ分け方式、及び各グループに対応する符号化方式を決定する。
【0208】
復号側は、符号化されたビットストリームを取得し、セグメント毎に復号してもよい。ここで、復号対象ユニットは、符号化されたビットストリームにおける復号側が復号処理を行うデータユニットであってもよい。
【0209】
一実施形態において、復号側は、符号化側と復号側の事前合意又はコンテキスト情報に基づいて、当該復号対象ユニットが使用するスキャン方式、グループ分け方式、及び各グループに対応する符号化方式のうちの少なくとも1つを決定してもよい。あるいは、復号側は、ビットストリームに基づいて、当該復号対象ユニットが使用するスキャン方式、グループ分け方式、及び各グループに対応する符号化方式のうちの少なくとも1つを解析してもよい。あるいは、復号側は、当該復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、各グループに対応するグループ化方式を取得してもよい。以下、具体的な実施例に基づいて説明し、ここでは説明を省略する。
【0210】
406において、復号側は、各グループの符号化方式に基づいて1つずつ復号し、復号対象ユニットに対応する係数ブロックを得る。
【0211】
一実施形態において、復号プロセスは、具体的に、以下のステップを含み得る。1、復号側が、符号化アルゴリズムに従って復号して、各グループのグループパラメータを得る。一例では、一実施形態において、グループパラメータの復号方式は、具体的に、復号側が、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つの符号化方式に対応する復号方式に基づいて復号して、各グループのグループパラメータを得ることを含んでよい。
【0212】
2、復号側は、各グループの前記グループパラメータに基づいて、前記半固定長符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得る。前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0213】
一実施形態において、復号プロセスは、具体的に、以下のステップを含み得る。1、復号側が、固定長符号化アルゴリズムに従って復号して、各グループのグループライスパラメータを得、又は、コンテキストモデルに基づいて、各グループのグループライスパラメータを得る。2、復号側が、各グループの前記グループパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して各グループの複数の係数値を得る。前記復号対象ユニットに対応する係数ブロックは、前記各グループの複数の係数値を含む。
【0214】
一実施形態において、復号プロセスは、具体的に、以下のステップを含み得る。1、復号側が、コンテキストモデルに基づいて、各グループのグループライスパラメータを得る。2、復号側が、固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得、各グループのグループライスパラメータとグループパラメータ偏差とに基づいて、各グループのグループパラメータを得る。一例において、グループライスパラメータとグループパラメータ偏差とに基づいて更新して、各グループのグループパラメータを得てもよく、具体的に、グループパラメータ=グループライスパラメータ+グループパラメータ偏差である。
【0215】
3、復号側は、各グループのグループパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得る。復号対象ユニットに対応する係数ブロックは、各グループにおける複数の係数値を含む。
【0216】
一実施形態において、復号プロセスは、具体的に、以下のステップを含み得る。1、復号側が、固定長符号化アルゴリズムに従って復号して、各グループの次数kを得、又は、コンテキストモデルに基づいて、各グループの次数kを得る。2、復号側が、各グループの前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得る。復号対象ユニットに対応する係数ブロックは、各グループにおける複数の係数値を含む。
【0217】
一実施形態において、復号プロセスは、具体的に、以下のステップを含み得る。1、復号側が、コンテキストモデルに基づいて、各グループの次数kを得る。2、復号側が、固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得、グループパラメータ偏差に基づいて各グループの次数kを更新する。
【0218】
3、各グループの更新後の前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得る。前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0219】
一実施形態において、復号プロセスは、具体的に、以下のステップを含み得る。1、復号側が、復号によって得られた1つ以上のグループの係数、予測方式、量子化方式、及び変換方式のうちの少なくとも1つに基づいて、現在のグループの符号化方式を決定する。2、復号側が、現在のグループの符号化方式に対応する復号方式に基づいて復号して、現在のグループの係数を得る。現在のグループの符号化方式は、ゴロム・ライス符号化、k次指数ゴロム符号化、及び半固定長符号化方式のうちのいくつかの組み合わせであってもよい。以下、具体的な実施例に基づいて説明し、ここでは説明を省略する。
【0220】
一実施形態において、上記のいずれかの符号化復号方式において、符号化ユニットの複数のグループのうちの少なくとも2つのグループの符号化方式は異なる。
【0221】
407において、復号側は、復号対象ユニットのスキャン方式に基づいて、復号対象ユニットの係数ブロック内の係数を復元して再構成データブロックを得る。
【0222】
復号側は、各グループの係数ブロック内の係数を1つずつ復元して、復号対象ユニットに対応する再構成データブロックを得る。
【0223】
一実施形態において、本発明の実施例に適用可能なスキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン又はヒルベルトスキャンのうちの少なくとも1つを含み得る。
【0224】
本発明の上記実施形態によれば、復号側は、異なる予測方式に基づいて、異なるスキャン方式を導出するとともに、係数グループ化方式を導出することができ、このような係数グループ化は、予測された情報を結合し、グループ化された係数をより均一にすることができる。符号化側は、変化が小さい係数に対して、小さい符号語を割り当てて符号化することができ、それにより、符号化方式が柔軟であり、符号化性能を向上させることができる。また、複数の固定グループ化方式を設計することにより、半固定長符号化方式により適合させることができ、各符号化ブロックに対してよりよい2値化方法を柔軟に選択することができ、符号化アルゴリズムの複雑度が低い。
【0225】
以下、いくつかの具体的な実施例を参照して、本発明の実施例の技術的手段を説明する。
【0226】
実施例1:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0227】
ステップ2において、復号側は、符号化側と復号側によって予め設定されたn種類のグループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0228】
ここで、前記グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含み得る。
【0229】
具体的に、固定長のグループ化方式は、例えば、符号化対象ユニット全体を1つのグループとし、又は、復号対象ユニット全体における4つの係数毎に1つのグループとし、又は、符号化対象ユニット全体における3つの係数毎に1つのグループとする。例示的に、符号化対象ユニットは12行4列のデータユニットであり、すなわち12×4の符号化対象ユニットであり、4つの係数毎に1つのグループとするグループ化方式の場合、12×4の符号化対象ユニットを12グループに分けることができる。3つの係数毎に1つのグループとするグループ化方式の場合、12×4の符号化対象ユニットを16グループに分けることができる。符号化対象ユニット全体を1つのグループとするグループ化方式の場合、当該12×4の符号化対象ユニットをそのまま1つのグループとすることができる。
【0230】
一例では、グループ化方式は、係数の配列位置に基づいてグループ分けを行う方式であってもよい。具体的に、符号化対象ユニット全体の各係数は、配列位置に従って2つのグループ、3つのグループ、4つのグループなどに均等に分割されてもよい。例えば、比率に従って2つのグループに均等に分けられ、例示的に、12×4の符号化対象ユニットについて、復号対象ユニット全体の係数の数N=48であり、1:1の比率に従って2つのグループに均等に分けられると、12×4の符号化対象ユニットにおける最初の24個の係数が1つのグループとされ、残りの最後の24個の係数が他のグループとされる。
【0231】
一例において、符号化対象ユニット全体における係数は、位置に従って2つのグループ、3つのグループ、4つのグループなどに不均一に分割されてもよい。例示的には、3つのグループに不均一に分割され、且つ分割の割合が2:1:1であってもよい。すなわち、係数の配列位置に従って、12×4の符号化対象ユニットにおける1~24の係数をグループ1とし、25~36の係数をグループ2とし、37~48の係数をグループ3としてもよい。
【0232】
一例において、グループ化方式は、各グループの係数の数に基づいてグループ化してもよい。例えば、符号化対象ユニット全体における2つの隣接係数毎に1つのグループとし、又は、3つの隣接係数毎に1つのグループとし、又は、4つの隣接係数毎に1つのグループとする。
【0233】
一例において、グループ化方式は、符号化対象ユニット全体における係数の配列位置に基づいてa個の点を間隔ごとに1つのグループとして分けてもよい。例えば、aが1である場合、符号化対象ユニット全体における係数位置が1点おきの係数を1つのグループとして、2つのグループに分けてもよい。aが2である場合、符号化対象ユニット全体における係数位置が2点おきの係数を1つのグループとして、3つのグループに分けてもよい。
【0234】
一例において、グループ化方式は、符号化対象ユニットにおける係数値の大きさに基づいてグループ分けを行うことであってもよい。符号化対象ユニットにおける係数値の大きさが予測できないため、一般的に係数値の大きさに基づいてグループ分けを行った後の各グループにおける係数の数が異なるため、このような分割方式は、本発明において半固定長グループ化方式と呼ばれてもよい。
【0235】
例示的に、係数値の大きさによるグループ化は、符号化対象ユニットにおける各係数がnより大きいか否かを決定してもよい。n以上の係数を1つのグループとし、nより小さい係数を1つのグループとしてもよい。あるいは、nより大きい係数を1つのグループとし、n以下の係数を1つのグループとしてもよい。
【0236】
ここで、nの値は、符号化側と復号側によって事前に合意され、又は、情報のやり取りによって決定され、又は、ビットストリームによって復号して決定され得る。
【0237】
例えば、符号化側と復号側は、n=2のような値を事前に合意してもよい。あるいは、復号側は、復号された再構成値又は予測値に基づいて予測し、値nを決定してもよい。又は、復号側は、復号された係数値に基づいて予測し、値nを決定してもよい。
【0238】
例えば、復号側は、復号された再構成値又は予測値に基づいて予測し、値nを決定し、次に、ビットストリームから現在の復号対象ユニットの各グループ内の各係数値がこの予測値nより大きいかどうかを解析し、次いで、nより大きい係数を1つのグループとし、n以下の係数を1つのグループとしてもよい。
【0239】
さらに、上記の複数のグループ化方式において、符号化対象ユニットにおける係数をグループ化した後、あるグループ内の係数の数が多い場合、二次グループ化を行ってもよい。例えば、符号化対象ユニットにおけるnより大きい係数を1つのグループに分け、当該グループ内の係数の数が係数の予め設定された数より大きい場合、当該グループに対して二次グループ化を行ってもよい。具体的に、二次グループ化の方式は、上記のいずれか1つのグループ化方式又は複数のグループ化方式の組み合わせに基づいてグループ化を行ってもよい。
【0240】
一例では、符号化対象ユニットにおける係数が変換係数である場合、グループ化方式は、符号化対象ユニット全体における変換システムの直流成分DC係数を1つのグループとし、交流成分AC係数を上記のいずれか1つのグループ化方式又は複数のグループ化方式の組み合わせに従ってグループ化してもよい。
【0241】
ステップ3において、復号側は、固定長符号を用いて各グループのパラメータ(group_param)を復号し、その後、各グループのパラメータ(group_param)に基づいて、固定長符号を用いて各グループ内の各係数値を1つずつ復号し、復号対象ユニットに対応する係数ブロックを得る。
【0242】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0243】
一実施形態において、符号化側及び復号側は、上記のいくつかのグループ化方式のうちの1つ又は複数を事前に合意又は設定してもよく、ビデオ符号化復号のプロセスにおいて、符号化側は、符号化対象ユニットの係数状況に基づいて、1つ又は複数のグループ化方式を選択してグループ化符号化を行う。復号側は、ビットストリームによる解析、符号化側とのシグナリングインタラクション、又はコンテキスト予測、導出などの方式によってグループ化方式を決定し、決定されたグループ化方式に基づいてビットストリームに対してグループ化解析を行ってもよい。また、復号側は、復号対象ユニット内の異なる画素の予測方向、予測モード、又は変換モードなどに基づいて、現在の復号対象ユニットにおける係数のグループ化方式を導出してもよい。具体的な例については後述するので、ここでは繰り返さない。
【0244】
一実施形態において、実例1における固定長のグループ化符号化方式又は半固定長のグループ化符号化方式に基づいて、各グループのパラメータ(group_param)に対して符号化及び復号を、以下のいずれか1つの符号化方式、又は複数の符号化方式の組み合わせを用いて行ってもよい。
【0245】
1、ユーナリ(unary)コード:簡単な2値化方法である。具体的に、非負の整数Nについて、そのユーナリコードは、N個の1と1個の0で表される。
【0246】
2、トランケーテッド・ユーナリ(Truncated unary)コード:ユーナリコードのバリエーションである。具体的に、符号化対象シンボルの最大値がN_maxであることが既知である場合、現在の符号化対象シンボルが非負の整数Nであると仮定し、N<N_maxであれば、トランケーテッド・ユーナリコードはユーナリコードであり、N=N_maxであれば、トランケーテッド・ユーナリコードはN個の1である。
【0247】
3、トランケーテッド・バイナリ(Truncated binary)コード:valの相関変数(stage、num0、num1及びthdなど)を計算し、0~(thd-1)について、そのバイナリシンボル列の長さがstageの固定長符号であり、thd~valについて、そのバイナリシンボル列の長さが(stage+1)の固定長符号である。
【0248】
4、固定長符号化:固定符号長を用いて符号化対象係数を符号化する。例えば、8ビットの2進数を用いて符号化するASCIIコードである。
【0249】
5、k次指数ゴロム符号化:k次指数ゴロム符号化は、プレフィックス(prefix)とサフィックス(suffix)との2つの部分を含み、符号化方法は、数字Xをバイナリ形式で書いて、最下位k個のビットを除去し、1を加算して、Tを求めるステップ1)と、Tのビット数を計算し、その前にT-1個の0を追加する必要があるステップ2)と、除去された最下位k個のビットをビット列の末尾に追加するステップ3)と、を含む。
【0250】
6、トランケーテッド・ライス(Truncated Rice)符号化:トランケーテッド・ライス符号化は、プレフィックス(prefix)とサフィックス(suffix)との2つの部分を含み、最大上限値cMax、ライスパラメータcRiceが既知であり、符号化対象シンボルcValを符号化する。
【0251】
具体的な符号化プロセスは、以下のステップを含む。(1)prefixを計算し、prefix=cVal>>cRice、prefixに対して、cMax>>cRiceを上限としてトランケーテッド・ユーナリコードで2値化する。(2)suffixを計算し、cVal<cMaxの場合、suffix=cVal-prefix<<cRice。cVal>=cMaxの場合、サフィックス(suffix)なし。suffixは固定長符号で計算され、ビット数はcRiceである。計算プロセスから分かるように、cRice=0である場合、トランケーテッド・ライス符号化はトランケーテッド・ユーナリコードに等しい。ここで、記号>>は右シフト演算を表し、<<は左シフト演算を表す。
【0252】
7、ハフマン符号化:すべての係数の出現頻度を統計し、ハフマン木を構築し、確率が大きい係数に短い符号語を割り当て、確率が小さい係数に長い符号語を割り当てる。
【0253】
8、ゴロム・ライス(Golomb-Rice)符号化:Golomb-RiceはGolomb符号化の1つのバリエーションであり、Golomb符号化との違いは、パラメータmの制限条件が、mが2のべき乗でなければならないことである。具体的に、パラメータmを初期化し、mは2のべき乗でなければならず、qとrを計算し、ここで、q=N/mであり、r=N(m-1)であり、ユーナリコードを用いてqを符号化し、rのバイナリビットの下位log2(m)ビットをrの符号語とする。
【0254】
また、固定長符号化とトランケーテッド・ユーナリコードとを組み合わせて、以下のいくつかの組み合わせ復号方式を取得してもよい。
【0255】
方式1:トランケーテッド・ユーナリコードに似た方式を使用し、(N-1)>>1より大きいプレフィックスに対して、1で始まり0で終わるトランケーテッド・ユーナリコードで表し、(N-1)>>1より小さいプレフィックスに対して、0で始まり1で終わるトランケーテッド・ユーナリコードで表す。
【0256】
方式2:(N-1)>>1より大きいプレフィックスに対して、1で始まり0で終わるトランケーテッド・ユーナリコードで表し、(N-1)>>1より小さいプレフィックスに対して、0で始まる固定長符号で表す。
【0257】
方式3:(N-1)>>1より大きいプレフィックスに対して、1で始まる固定長符号で表し、(N-1)>>1より小さいプレフィックスに対して、0で始まり1で終わるトランケーテッド・ユーナリコードで表す。
【0258】
方式4:トランケーテッド・ユーナリコードに似た方式を使用し、(N-1)>>1より大きいプレフィックスに対して、0で始まり1で終わるトランケーテッド・ユーナリコードで表し、(N-1)>>1より小さいプレフィックスに対して、1で始まり0で終わるトランケーテッド・ユーナリコードで表す。
【0259】
方式5:(N-1)>>1より大きいプレフィックスに対して、0で始まり1で終わるトランケーテッド・ユーナリコードで表し、(N-1)>>1より小さいプレフィックスに対して、1で始まる固定長符号で表す。
【0260】
方式6:(N-1)>>1より大きいプレフィックスに対して、0で始まる固定長符号で表し、(N-1)>>1より小さいプレフィックスに対して、1で始まり0で終わるトランケーテッド・ユーナリコードで表す。
【0261】
また、一実施形態において、符号化側は、上記のいくつかの符号化方式に基づいて、グループ化方式を符号化してもよい。つまり、実施例1における複数の半固定長グループ化方式に基づいて、符号化側と復号側はn種類のグループ化方法を設定してもよく、その後、符号化側は設定に基づいてそのうちの1つの符号化方式を使用して符号化対象ユニットを符号化してもよく、復号側はビットストリームに基づいて復号対象ユニットが使用するグループ化方式を導出し、そのグループ化方式に基づいて復号を行ってもよい。
【0262】
一実施形態において、上記実施例1における半固定長グループ化復号に基づいて、コンテキストモデルと組み合わせて予測値を導出し、さらに復号してもよい。具体的に、復号対象ユニットにおける各グループのグループパラメータ(group_param)について、まず、コンテキストから予測値(group_param_pred)を導出し、次に、前述の実施形態における復号方式を用いて、実際のgroup_paramと予測されたgroup_param_predとの差(group_delta)を導出し、group_param=group_param_pred+group_deltaに基づいて、復号対象ユニットにおける各グループのグループパラメータ(group_param)を得る。次に、グループパラメータ及び復号アルゴリズムに基づいて復号して、各グループのすべての係数を得る。
【0263】
一実施形態において、半固定長符号化の係数に対して固定長符号化を行う必要がある場合、符号化側は、大きい係数に対して、固定長符号化で元の画素値を直接に符号化し、又は、固定長符号化で再構成画素値を直接に符号化してもよい。
【0264】
例示的に、元の画素値のビット幅が8である場合、係数グループの符号化ビット幅group_param>=6、又は、係数グループの符号化ビット幅group_param>=7であると、固定長符号を8として元の画素値を直接に符号化し、又は、再構成画素値を符号化してもよく、これにより、符号化復号の性能を向上させることができる。
【0265】
一実施形態において、復号側が復号対象ユニットのグループ化方式を決定することは、復号対象ユニット内の異なる画素の予測方向、予測モード、又は変換モードなどに基づいて、現在の復号対象ユニットにおける係数のグループ化方式を導出することであってもよい。
【0266】
具体的に、復号側は、予測モードに基づいて、復号対象ユニットにおける係数のグループ化方式及び符号化方式を導出してもよい。
【0267】
例えば、現在の1番目の列は1つの予測モードを使用し、その後のすべての列は水平予測モードを使用する。最初の点は、元の値を直接伝送するか、又は前のブロックの再構成値によって予測されてもよい。図5に示すように、16×4の復号対象ユニットを例として、現在の予測方式による残差を予測した後、以下の図5に示すように、1番目の列のすべての残差値を1つのグループとする。残りの係数ブロック15×4における各行の残差値を1つのグループとし、1番目のグループ内の係数の数が少なく、グループ化を継続せず、残りは各グループ内でより小さいグループ化を許容する。
【0268】
したがって、ブロック全体は次の順序でスキャンされる。まず、垂直スキャンして1番目のグループの係数を取得し、それを符号化し、水平スキャンして2番目のグループの係数を取得し、2番目のグループの係数を左から右へより小さい小グループに分割してもよく、各グループにおいて異なる符号化方式を使用してもよい。2番目のグループ内の1番目の小グループに対して半固定長を用いて符号化し、第1グループ内で使用されるプレフィックス値の大きさに基づいて、プレフィックスがある閾値より小さい場合、ゴロム・ライスを用いて後のグループの係数を符号化し、プレフィックスがある閾値より大きい場合、k次ゴロムを用いて後のグループの係数を符号化し、k値は前のグループの残差値から導出される。
【0269】
また、復号側は、変換モードに基づいて復号対象ユニットにおける係数のグループ化方式及び符号化方式を導出してもよい。
【0270】
例えば、符号化側は、DC係数の具体的な位置に基づいて、変換係数を符号化してもよい。すべてのDC係数を1つのグループに分け、すべてのAC係数を1つのグループに分けてもよい。DC係数の数が多い場合、DC係数グループをさらに二次グループ化してもよく、AC係数の数が多い場合、AC係数グループをさらに二次グループ化してもよい。
【0271】
具体的に、DC係数の値は、ほとんどの場合、係数が比較的大きいため、DC係数に対して比較的柔軟な符号化方式を使用してもよい。例えば、より細かいグループ化のk次指数ゴロム符号化を用いる。DC係数の振幅の値が近い場合、DC係数に対して係数予測を行い、k次指数ゴロムを使用して最初のDC係数を符号化し、残りのDC係数はDC係数の符号及び最初のDC係数との差を符号化すればよい。DC係数の差の符号化は、半固定長符号化を用いてもよい。
【0272】
具体的に、AC係数は、一般的に係数の値が小さいため、AC係数全体を1つのグループとして、半固定長を用いて符号化してもよく、又は、AC係数を2つのグループ(例えば、右上+左下を1つのグループとし、右下を1つのグループとする)に分け、各グループに対して半固定長を用いて符号化してもよい。しかし、AC係数の振幅が大きい場合、右上と左下のAC係数に対して2~3個の係数を1つのグループとし、ゴロム・ライスを用いて符号化し、右下に対して半固定長を用いて符号化してもよい。
【0273】
ここで、符号化対象ユニットに対するスキャン順序は、以下のようにであってもよい。まず、大ブロック全体をDC係数とAC係数に分けてもよい。図6に示すように、16×4の符号化対象ユニットを例として、変換後の係数分布は図6のようになる可能性がある。DC係数において、DC係数全体を1つのグループとして符号化する場合、DC係数に対してラスタースキャンを使用し、そうでない場合、ヒルベルトスキャンを使用し、距離が近い係数を一緒に符号化する。AC係数において、すべてのAC係数を1つのグループとすると、AC係数に対して直接ラスタースキャンを使用し、そうでない場合、まず右上、左下、右下の順にスキャンし、右上、左下、右下内の係数に対してラスタースキャン順序を使用してスキャンする。
【0274】
別の実施例において、16×4の符号化対象ユニットを例として、変換後の係数分布は図7のようになる可能性がある。係数を2つのブロックに分割し、各ブロック内で変換を行う。図7に示すように、2つのDC係数のみが存在する場合、次のようなグループ分けが存在する。1、2つのDC係数を1つのグループとし、すべてのAC係数を1つのグループに分ける。スキャン順序は、各8×4内でラスタースキャンを使用する。
【0275】
2、2つのDC係数を1つのグループとし、すべてのAC係数を2つのグループに分け、各8×4を1つのグループとする(DC係数を除く)。スキャン順序は各8×4内でラスタースキャンを使用する。
【0276】
3、2つのDC係数を1つのグループとし、すべてのAC係数を4つのグループに分け、各4×4を1つのグループとする(DC係数を除く)。各4×4内でラスタースキャンを使用する。
【0277】
4、2つのDC係数を1つのグループとし、すべてのAC係数を8つのグループに分け(8×4内、2列毎に1つのグループとする)、垂直スキャンを使用する。
【0278】
上記のいずれかのグループ化方式に基づいて、一実施例では、符号化側は、DC係数に対してk次指数ゴロム符号化を用い、AC係数に対して半固定長を用いて符号化してもよい。
【0279】
実施例2:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0280】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0281】
ステップ3において、復号側は、固定長符号を用いて各グループのライスパラメータCRiceを復号し、その後、ゴロム・ライスを用いてグループ内の各係数値を復号する。
【0282】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0283】
実施例3:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0284】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0285】
ステップ3において、復号側は、コンテキストに基づいて各グループのライスパラメータCRiceを推定し、その後、ゴロム・ライスを用いてグループ内の各係数値を復号する。
【0286】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0287】
実施例4:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0288】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0289】
ステップ3において、復号側は、コンテキストに基づいて各グループのライスパラメータCRiceを推定し、次いで、固定長符号を用いて各グループのパラメータ偏差Cを復号し、元のライスパラメータCRice+CをライスパラメータCRiceに更新し、すなわちCRice+=Cである。そして、ゴロム・ライスを用いてグループ内の各係数値を復号する。
【0290】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0291】
実施例5:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0292】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0293】
ステップ3において、復号側は、各グループのライスパラメータCRiceを決定し、その後、ゴロム・ライス符号化を用いてグループ内の各係数値を復号する。
【0294】
ここで、復号側は、ビットストリームに基づいてライスパラメータCRiceを導出することができ、その具体的な復号方法は、前述の実施例1のいずれか1つであってもよく、例えば、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、又はゴロム・ライス符号化などの復号処理である。復号側は、係数値の大きさに基づいて、固定長符号による復号とトランケーテッド・ユーナリコードとを組み合わせてビットストリームを復号し、各グループのグループパラメータを得てもよく、ここでは説明を省略する。
【0295】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0296】
実施例6:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0297】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0298】
ステップ3において、復号側は、コンテキストに基づいて各グループのライスパラメータCRiceを推定し、次いで、固定長符号を用いて各グループのパラメータ偏差Cを復号し、ライスパラメータCRice+=Cであり、ゴロム・ライス符号化を用いてグループ内の各係数値を復号する。
【0299】
ここで、パラメータ偏差Cの復号方式は、前述の実施例1のいずれか1つであってもよく、例えば、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、又はゴロム・ライス符号化などの復号処理である。復号側は、係数値の大きさに基づいて、固定長符号による復号とトランケーテッド・ユーナリコードとを組み合わせてビットストリームを復号し、各グループのグループパラメータを得てもよく、ここでは説明を省略する。
【0300】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0301】
実施例7:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0302】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0303】
ステップ3において、復号側は、固定長符号を用いて各グループの次数kを復号し、その後、k次指数ゴロムを用いてグループ内の各係数値を復号する。
【0304】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0305】
実施例8:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0306】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0307】
ステップ3において、復号側は、コンテキストに基づいて各グループの次数kを推定し、その後、k次指数ゴロムを用いてグループ内の各係数値を復号する。
【0308】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0309】
実施例9:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0310】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0311】
ステップ3において、復号側は、コンテキストに基づいて各グループの次数kを推定し、次いで、固定長符号を用いて各グループのパラメータ偏差Cを復号し、元の次数k+Cを次数kに更新し、すなわちk+=Cである。そして、k次指数ゴロムを用いてグループ内の各係数値を復号する。
【0312】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0313】
実施例10:ステップ1において、復号側は、復号対象ユニットのスキャン方式を決定する。
【0314】
ステップ2において、復号側は、符号化と復号側によって予め設定されたn種類の固定グループ化方式に基づいて、又はビットストリームに基づいて、復号対象ユニットのグループ化方式を解析する。
【0315】
ステップ3において、復号側は、各グループの次数kを決定し、その後、k次指数ゴロムを用いてグループ内の各係数値を復号する。
【0316】
ここで、復号側は、ビットストリームに基づいて次数kを導出してもよく、その具体的な復号方法は、前述の実施例1のいずれか1つであってもよく、例えば、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、又はゴロム・ライス符号化などの復号処理である。復号側は、係数値の大きさに基づいて、固定長符号による復号とトランケーテッド・ユーナリコードとを組み合わせてビットストリームを復号し、各グループのグループパラメータを得てもよく、ここでは説明を省略する。
【0317】
ステップ4において、復号側は、復号対象ユニットのスキャン方式に基づいて、当該係数ブロック内の係数を復元して、元のデータブロックを得る。
【0318】
実施例11:ステップ1において、復号側は、周囲の再構成画素値を用いてある方向の画素勾配を計算し、現在の画素の予測方向に基づいて1つの勾配値を計算し、又は経験に基づいて、水平方向の勾配値又は垂直方向の勾配値を計算し、勾配を量子化してもよい。
【0319】
ステップ2において、復号側は、コンテキストに基づいて現在の係数の値の範囲を推定し、値の範囲に基づいてゴロム・ライスのライス係数k値又は指数ゴロムの次数k値を推定する。
【0320】
実施例12:ステップ1において、符号化側は、コンテキストに基づいて現在の係数の値の範囲を推定し、値の範囲に基づいて1つの符号化方式を選択する。
【0321】
ステップ2において、符号化側は、対応するゴロム符号化方法で現在の係数を符号化する。
【0322】
例示的に、推定された係数の絶対値の範囲が2以上である場合、ゴロム・ライス符号化のk値を推定し、現在の係数をゴロム・ライス符号化で符号化する。推定された係数の絶対値の範囲が2未満である場合、指数ゴロムのk値を推定し、現在の係数を指数ゴロム符号化で符号化する。
【0323】
又は、一例において、推定された係数の絶対値の範囲が2より大きい場合、指数ゴロム符号化のk値を推定し、現在の係数を指数ゴロム符号化で符号化する。推定された係数の絶対値の範囲が2以下である場合、ゴロム・ライスのk値を推定し、現在の係数をゴロム・ライス符号化で符号化する。
【0324】
さらに、係数の値の範囲は、経験値に基づいて他の正の整数値を取ることもでき、本発明の実施例では特に限定されない。
【0325】
実施例13:ステップ1において、符号化側は、コンテキストに基づいて現在の符号化係数の値を推定する。
【0326】
例示的に、真の値が現在の推定値より大きい場合、1を符号化し、そうでない場合、0を符号化する。ここで、符号値0及び1は、それぞれ1つの符号化方式に対応する。
【0327】
ステップ2において、符号化側は、対応するゴロム符号化方法で現在の係数を符号化する。
【0328】
例示的に、1は指数ゴロム符号化に対応し、0はゴロム・ライス符号化に対応する。符号化値が1である場合、コンテキストに基づいて指数ゴロム符号化のk値を推定し、現在の係数を指数ゴロム符号化で符号化する。符号化値が0である場合、ゴロム・ライスのk値を推定し、現在の係数をゴロム・ライス符号化で符号化する。
【0329】
又は、一例では、符号化値が0である場合、コンテキストに基づいてゴロム・ライス符号化のk値を推定し、そうでない場合、指数ゴロムのk値を推定し、現在の係数を対応するゴロム符号化方法で符号化する。
【0330】
実施例14:ステップ1において、符号化側は、係数を符号化する場合、コンテキストに基づいて現在の符号化係数の1つの推定値nを導出し、ビットストリームから現在の符号化係数がnより小さいか否かを読み出す。
【0331】
ステップ2において、符号化側は、nより小さい係数に対して、固定長符号を用いて符号化を行い、nより大きい係数に対して、1つのk値を推定し、指数ゴロム又はゴロム・ライスを用いて復号し、復号後の値にnを加算する。
【0332】
実施例15:ステップ1において、符号化側は、残差係数をグループ化符号化する場合、コンテキストに基づいて1つの推定値nを導出し、推定値nに基づいて符号化対象係数を2つのグループに分ける。
【0333】
ステップ2において、nより小さい係数について、符号化側は、固定長符号を用いて復号し、nより大きい係数について、1つのk値を推定し、指数ゴロム又はゴロム・ライスを用いて復号し、復号後の値にnを加算する。
【0334】
又は、nより小さい係数について、1つのk値を推定し、指数ゴロムを用いて復号し、nより大きい係数について、1つのk値を推定し、ゴロム・ライスを用いて復号し、復号後の値にnを加算する。
【0335】
又は、nより小さい係数について、1つのk値を推定し、ゴロム・ライスを用いて復号し、nより大きい係数について、1つのk値を推定し、指数ゴロムを用いて復号し、復号後の値にnを加算する。
【0336】
実施例16:ステップ1において、符号化側は、残差係数をグループ化符号化する場合、コンテキストに基づいて1つの推定値nを導出し、ビットストリームにおいて使用されるトランケーテッド・ユーナリコードに基づいて1つの補正値deltaを読み出し、deltaに基づいてnの値をn+=deltaに更新する。nの値に基づいて、復号対象ユニットにおける係数を2つのグループに分ける。
【0337】
ステップ2において、nより小さい係数について、固定長符号を用いて復号し、nより大きい係数について、1つのk値を推定し、指数ゴロム又はゴロム・ライスを用いて復号し、復号後の値にnを加算する。
【0338】
又は、nより小さい係数について、1つのk値を推定し、指数ゴロムを用いて復号し、nより大きい係数について、1つのk値を推定し、ゴロム・ライスを用いて復号し、復号後の値にnを加算する。
【0339】
又は、nより小さい係数について、1つのk値を推定し、ゴロム・ライスを用いて復号し、nより大きい係数について、1つのk値を推定し、指数ゴロムを用いて復号し、復号後の値にnを加算する。
【0340】
実施例17:ステップ1において、符号化側は、コンテキスト情報に基づいて、ビットストリームからランレングス符号化モードをオンにするか否かを解析する。
【0341】
具体的に、符号化係数に基づいて、又は再構成データにおいて連続する複数の等しい値が存在する場合、ランレングス符号化モードをオンにし、そうでない場合、ランレングス符号化モードをオフにして、前述のいずれかの符号化方式を直接使用する。
【0342】
例示的に、コンテキスト情報は、a)復号された再構成画素値の各方向における勾配又は勾配の和の大きさ、b)隣接する予測画素値の各方向における勾配又は勾配の和の大きさ、c)復号された係数の各方向における勾配又は勾配の和の大きさ、d)a、b又はcのうちの2つの勾配の和の大きさを組み合わせて重み付け、e)a、b、又はcのうちの3つの勾配の和の大きさを組み合わせて重み付け、のうちの1つを含んでもよい。
【0343】
実施例18:半固定長符号化の符号長がグループ化方式及びグループ内の係数の数に関連するため、符号化側が異なる予測方式又は異なる画像コンテンツに基づいて符号化を行う圧縮率又は符号化性能に大きな差がある。そのため、比較的良いグループ化方法、例えば固定サイズのグループ化方式を事前に合意する必要がある。
【0344】
複数の固定ブロック分割を復号する場合、まず、現在の符号化ユニットのブロック分割方法を復号し、その後、固定分割方法に従って復号してもよい。以下、図面及び具体的な実施例を参照しながら説明する。
【0345】
例示的に、符号化対象ユニットを複数の2×2の小ブロックに分けて、1つの符号化グループとしてもよい。16×4の符号化対象ユニットを例として、グループ内で1つのCLを共有する。半固定長を用いて符号化し、最初のCL値に対して固定長を用いて符号化し、符号長は3又は4(画像ビット幅Nに関連する)である。2番目のCL値は、コンテキストに基づいて予測して得られたCLの差であり、トランケーテッド・ユーナリコードを用いて符号化する。トランケーテッド・ユーナリコードは最長でN-1である。
【0346】
図8に示すように、16×4の符号化対象ユニットを、2×2の小ブロックに固定的に分割するグループ化方式に従って、図8(1)に示16個の小ブロックにグループ化する。各2×2の小ブロックの間において、ヒルベルトスキャン方式でスキャンしてもよく、例示的に、符号化側が符号化対象ユニットをスキャンする順序は、図8(2)に示すように、番号順0~15でスキャンしてもよい。
【0347】
ここで、各CL内でラスタースキャンを行ってもよく、すなわち、各2×2の小ブロック内のスキャン順序は、図8(3)に示すように、番号順0~3でスキャンしてもよい。
【0348】
CL間は、コンテキスト予測を使用してもよく、CLは固定長符号を用いて直接に符号化し、CL=(CL-CL)であり、トランケーテッド・ユーナリコードを用いて符号化し、CL=(CL-(CLn-2+CLn-1*3>>2))であり、トランケーテッド・ユーナリコードを用いて符号化してもよい。
【0349】
CLn-2とCLn-1の再構成値を検出し、CLn-2とCLn-1の内部のすべての再構成値が等しいか、又はほぼ等しい場合、現在の2×2の小ブロックが前のCLn-2とCLn-1の内部の再構成値を直接多重化するかどうかを判断する。一例では、ランレングス符号化を用いて、現在の符号化ブロック内を符号化し、符号化された再構成値の2×2の小ブロックの数を直接使用してもよい。この数を符号化するために固定長符号を用いてもよい。現在の符号化ユニット内の符号化されていないCLの数に基づいて、固定長符号長を決定し、最大15個の未符号化ユニットであるため、固定長符号長は最大4ビット(bit)である。
【0350】
別の実施形態では、図9に示すように、符号化対象ユニットを複数の4×1の小ブロックに分割してもよい。16×4の符号化対象ユニットを例として、16×4の符号化対象ユニットを、4×1の小ブロックに固定的に分割するグループ化方式に従って、図9に示す16個の小ブロックにグループ化してもよい。
【0351】
なお、画像データの複数の成分(輝度値又は色度値)の符号化方法は、一致していてもよいし、一致していなくてもよい。
【0352】
一例において、符号化側による符号化対象ユニットに対する固定ブロック分割方式は、2×1、1×2、1×4、2×4、4×2、2×8、2×16、4×4、8×4、又は16×4などであってもよい。本発明は、分割方式を特に限定しない。
【0353】
例示的に、2×2固定ブロック分割復号を例として、復号側の復号プロセスは主に以下のステップを含む。
【0354】
1)現在のブロックが1番目のブロックである場合、固定長符号を用いて0番目のブロックのCL値を復号し、CL値に基づいて、固定長符号を用いて4つの係数値を復号し、4つの係数値の位置をラスタースキャン順で1番目の2×2の小ブロックに格納する。
【0355】
2)現在のブロックが1番目のブロックでない場合、前のいくつかのブロックの再構成値が等しいかどうか、又はCL値(最初の1つ又は2つのclが0であるかどうか)に基づいて、最初の2つのCL値が0である場合、1つのflag、すなわち、現在のブロックが前の係数値又は再構成値を直接使用するかどうかを解析する。現在のブロックが前の係数値又は再構成値を直接使用する場合、現在のブロックを解析せず、そうでない場合、ステップ3に進み、復号し続ける。
【0356】
3)現在のブロックが1番目のブロックでない場合、トランケーテッド・ユーナリコードを用いて、現在のブロックのCL値と前のブロックのCL値との間の残差値を復号し、現在のブロックのCL値を取得し、固定長符号を用いてブロック内の4つの係数値を復号する。ヒルビットスキャン順に従って、各2×2の小ブロックを順番に格納する。
【0357】
なお、16×4の符号化対象ユニットは、合計16個の2×2の小ブロックを解析する必要がある。現在のグループのCL値が画像ビット幅以上である場合、現在のグループは元の値又は再構成値を直接に符号化する。
【0358】
実施例19:非固定サイズのブロック分割方式で復号を行う場合について、以下、具体的な実施例を組み合わせて説明する。
【0359】
ステップ1において、現在のブロックの予測方式を導出し、現在のブロックにおける各画素の予測モードを取得し、予測モードに基づいてグループ化する。
【0360】
ステップ2において、現在のブロックが予測時に画素をグループ化する場合、予測グループ化方式に従って現在のブロックをグループ化する。そうでない場合、現在のブロックが予測時に点ごとに直接予測する場合、各点の予測方向に従って現在のブロックをグループ化してもよい。
【0361】
ステップ3において、予測順序に基づいて、各グループ内の係数を復号する。予測順序が左上から右下である場合、グループ化後の係数を同じ順序で復号し、予測順序が左から右である場合、グループ化後の係数も同じ順序で復号する。
【0362】
ステップ4において、各グループにおいて変換符号化が使用されるか否かを導出する。
【0363】
ステップ5において、現在のグループにおいて変換符号化が使用される場合、現在のグループが1番目のグループであれば、経験値又は前の符号化ブロックに基づいて次数kを導出し、DC係数に対してk次ゴロムを用いて復号し、現在のグループが1番目のグループでなければ、前のグループのDC係数の値に基づいて、現在のグループのDC係数kを推定し、k次ゴロムを用いて復号する。
【0364】
1)残りの係数について、DC係数の値が閾値より大きい場合、ビットストリームから現在のグループの最後の1/2係数(すなわち、高周波数部分の係数)がすべて0であるか否かを解析する。そうである場合、現在のグループの係数における、DC係数と0係数以外の残りの係数の数を、符号化される必要がある係数の数として決定する。
【0365】
2)係数の数が3未満である場合、残りの係数に対してゴロム・ライスを用いて符号化し、1番目に符号化された係数は量子化ステップとDC係数の値とに基づいてライス係数Cを導出し、ゴロム・ライスを用いて復号し、その後の係数は前の係数値の大きさに基づいてライス係数Cを導出し、ゴロム・ライスを用いて復号する。係数の数が3より大きい場合、半固定長を用いて符号化し、前のグループの後の1/2係数(すなわち、高周波数部分の係数)に0でない係数が存在すれば、2)に従って処理する。
【0366】
3)ビットストリームから現在のグループの最後の1/4係数(すなわち、高周波数部分の係数)がすべて0であるかどうかを解析し、現在のグループの最後の1/4係数がすべて0である場合、DC係数及び最後の1/4係数以外の係数を2)に従って処理し、そうでない場合、DC係数以外のすべての係数を2)に従って処理する。DC係数の値が閾値より小さい場合、3)に従って処理する。
【0367】
ステップ6において、現在のグループにおいて変換符号化が使用されていない場合、グループ内の係数について、現在のグループ内の係数の量子化ステップを導出し、量子化ステップと前のグループの時間領域における係数値とに基づいて復号を行う。
【0368】
1)まず、現在のグループ内の係数の絶対値の平均値を推定する。2)その後、現在のグループ内のすべての係数の絶対値と推定された平均値との比較結果を復号し、比較結果に基づいて二次グループ化を行い、平均値より大きいものを1つのグループとし、平均値以下のものをもう1つのグループとする。3)二次グループ化した後、グループ内の係数の数に基づいて、平均値より小さいグループの係数の数が4以上であれば、半固定長を用いて復号し、そうでなければ、平均値より小さいグループに対してゴロム・ライスを用いて復号する。
【0369】
平均値より大きいグループの係数について、係数の数が4より大きく、且つ推定された平均値が閾値より小さい場合、半固定長を用いて復号し、そうでない場合、k次指数ゴロムを用いて復号する。ここで、k値とC値は、推定された平均値に基づいて推定されてもよく、推定された平均値と復号側で解析された1つのパラメータとに基づいて得られてもよい。
【0370】
実施例20:ステップ1において、復号側は、グループ化方式を決定した後、現在のグループ内の係数の数xが閾値mより大きいか否かを決定する。例えば、m=30、x=32である場合、復号側は、現在のグループ内の係数の数xが閾値mより大きいと決定する。
【0371】
ステップ2において、復号側は、ビットストリームから最大n個の位置を解析し、このn個の位置は、現在のグループにおける、n個の異常値(グループ内の振幅が大きい係数)点の位置を表し(例えば、n=2)、位置符号化は固定長符号を用いて復号され、符号長はx値の大きさに関連する(x=32の場合、符号長は5である)。
【0372】
ステップ3において、復号側は、現在のグループの他の位置の係数値を復号する。
【0373】
ここで、現在のグループの他の位置の係数値を復号する方法は、前述の半固定長復号、指数ゴロム復号、ゴロム・ライス復号又はハフマン復号などであってもよい。
【0374】
ステップ4において、復号側は、k次指数ゴロム復号を用いて異常値を復号し、復号後の振幅に他の位置係数値における最大の振幅を加えたものを、当該異常点の振幅とする。
【0375】
実施例21:ステップ1において、復号側は、グループ化方式を決定した後、現在のグループ内の係数の数xが閾値mより大きいか否かを決定する。例えば、m=30、x=32である場合、復号側は、現在のグループ内の係数の数xが閾値mより大きいと決定する。
【0376】
ステップ2において、復号側は、固定長符号を用いて現在のグループ内の最大の振幅を復号し、最大の振幅の値に基づいて、固定長符号を用いて現在のグループ内の最小の振幅を復号する。最大の振幅と最小の振幅の値の範囲に基づいて、現在のグループ内のすべての係数を復号する。
【0377】
具体的に、最大の振幅が最小の振幅と等しい場合、グループ全体の係数は復号される必要がなく、最大の振幅と最小の振幅との間の差が1である場合、グループ全体の各係数は、復号されるために1ビットの固定長符号のみを必要とし、最大の振幅と最小の振幅との間の差がn(例えば、n=15)未満である場合、現在のグループ内の残りの位置の係数は、固定長符号を用いて復号されてもよい。例えば、n=15の場合、4ビットの固定長符号を用いて復号してもよい。
【0378】
最大の振幅と最小の振幅との間の差がnより大きい場合、差に基づいて適切な次数kを選択し、k次指数ゴロムを用いて現在のグループ内の係数を復号する。
【0379】
上述した本発明の実施例は、互いに組み合わせてもよく、例えば、実施例1における複数の異なるグループ化方式は、他の実施例に適用されてもよく、実施例2における異なる符号化復号アルゴリズムは、他の実施例に適用されてもよく、複数の異なる符号化復号アルゴリズムは、必要に応じて組み合わせて使用されてもよいことに留意されたい。
【0380】
以上の実施形態に基づいて、本発明は、ビデオ符号化装置及び対応するビデオ復号装置をさらに提供し、本発明はビデオ符号化復号装置と呼ばれる。前述の図1から図3を参照すると、図10に示すように、当該装置1000は、送受信モジュール1001及び処理モジュール1002を含み得る。
【0381】
送受信モジュール1001は、復号対象ユニットのビットストリームを得るために用いられてもよい。
【0382】
処理モジュール1002は、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定し、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得、前記復号対象ユニットの前記スキャン方式に基づいて、各グループの前記係数ブロック内の係数を1つずつ復元して、前記復号対象ユニットに対応する再構成データブロックを得るために用いられてもよい。
【0383】
一実施形態において、グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。
【0384】
一実施形態において、符号化方式は、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つを含む。
【0385】
一実施形態において、スキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン及びヒルベルトスキャンのうちの少なくとも1つを含む。
【0386】
一実施形態において、再構成データブロックは、復号対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである。
【0387】
一実施形態において、処理モジュール1002は、具体的に、
符号化側と復号側の事前合意又はコンテキスト情報に基づいて、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを決定し、又は、
前記ビットストリームに基づいて解析して、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを取得し、又は、
前記復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、前記グループ化方式を取得するために用いられる。
【0388】
一実施形態において、処理モジュール1002は、具体的に、
符号化アルゴリズムに従って復号して、各グループのグループパラメータを得、
各グループの前記グループパラメータに基づいて、前記半固定長符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0389】
一実施形態において、処理モジュール1002は、具体的に、
ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つの符号化方式に対応する復号方式に基づいて復号して、各グループのグループパラメータを得るために用いられる。
【0390】
一実施形態において、処理モジュール1002は、具体的に、
固定長符号化アルゴリズムに従って復号して、各グループのグループライスパラメータを得、又は、コンテキストモデルに基づいて、各グループのグループライスパラメータを得、
各グループの前記グループライスパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0391】
一実施形態において、処理モジュール1002は、具体的に、
コンテキストモデルに基づいて、各グループのグループライスパラメータを得、
固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得、
各グループの前記グループライスパラメータと前記グループパラメータ偏差とに基づいて、各グループのグループパラメータを得、
各グループの前記グループパラメータに基づいて、ゴロム・ライス符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0392】
一実施形態において、処理モジュール1002は、具体的に、
固定長符号化アルゴリズムに従って復号して、各グループの次数kを得、又は、コンテキストモデルに基づいて、各グループの次数kを得、
各グループの前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、前記各グループにおける複数の係数値を含む。
【0393】
一実施形態において、処理モジュール1002は、具体的に、
コンテキストモデルに基づいて、各グループの次数kを得、
固定長符号化アルゴリズム又はトランケーテッド・ユーナリコードに従って復号して、各グループのグループパラメータ偏差を得、
前記グループパラメータ偏差に基づいて各グループの次数kを更新し、
各グループの更新後の前記次数kに基づいて、k次指数ゴロム符号化アルゴリズムに従って復号して、各グループにおける複数の係数値を得るために用いられ、
前記復号対象ユニットに対応する係数ブロックは、各グループにおける複数の係数値を含む。
【0394】
一実施形態において、処理モジュール1002は、具体的に、
復号によって得られた1つ以上のグループの係数、予測方式、量子化方式、及び変換方式のうちの少なくとも1つに基づいて、現在のグループの符号化方式を決定し、
前記現在のグループの符号化方式に対応する復号方式に基づいて復号して、前記現在のグループの係数を得るために用いられ、
前記現在のグループの符号化方式は、ゴロム・ライス符号化、k次指数ゴロム符号化、及び半固定長符号化方式のうちのいくつかの組み合わせである。
【0395】
一実施形態において、符号化ユニットの複数のグループのうちの少なくとも2つのグループの符号化方式は異なる。
【0396】
一実施形態において、前記復号対象ユニットの復号方式がゴロム・ライス符号化又はk次指数ゴロム符号化のいずれかである場合、処理モジュール1002は、具体的に、
前記復号対象ユニットの予測方式、量子化方式及び/又は変換方式に基づいて、前記復号対象ユニットのグループ化方式を取得するために用いられる。
【0397】
これに対応して、本発明はビデオ符号化装置を提供し、図10に示すように、当該装置1000は送受信モジュール1001及び処理モジュール1002を含む。
【0398】
ここで、処理モジュール1002は、元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得、前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得、各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るために用いられる。
【0399】
送受信モジュール1001は、符号化済みビットストリームを復号側に送信するために用いられる。
【0400】
一実施形態において、グループ化方式は、固定長のグループ化方式と、係数値の大きさに基づいてグループ分けを行う半固定長グループ化と、係数の配列位置に基づくグループ分けとのうちの少なくとも1つを含む。
【0401】
一実施形態において、符号化方式は、ユーナリコード、トランケーテッド・ユーナリコード、トランケーテッド・バイナリコード、固定長符号化、半固定長符号化、k次指数ゴロム符号化、トランケーテッド・ライス符号化、ハフマン符号化、及びゴロム・ライス符号化のうちの少なくとも1つを含む。
【0402】
一実施形態において、、スキャン方式は、ラスタースキャン、ブロックスキャン、水平スキャン、垂直スキャン、往復スキャン、対角スキャン、逆水平スキャン、逆垂直スキャン及びヒルベルトスキャンのうちの少なくとも1つを含む。
【0403】
一実施形態において、符号化対象データブロックは、符号化対象画像の元の画素値、前記元の画素値を予測して得られる残差値、前記残差値を量子化して得られる係数、又は前記残差値を変換して得られる変換係数のうちの1つからなるデータブロックである。
【0404】
具体的に、本発明において提供されるビデオ符号化復号装置は、図2及び図3に示すエンコーダ及びデコーダによって実現され、図1に示す符号化復号システムを形成してもよい。その装置内部の構造模式図は図1図3を参照し、ここでは説明を省略する。
【0405】
本発明の実施例で提供される電子機器は、ノートパソコン、タブレットパソコン、デスクトップコンピュータ、ポータブルコンピュータ等であってもよく、本発明の実施例はこれに限定されない。
【0406】
図11は、本発明の実施例で提供される電子機器のハードウェア構成図である。図11に示すように、当該電子機器は、プロセッサ111及びコンピュータ可読記憶媒体112を含む。コンピュータ可読記憶媒体112には、プロセッサ111によって実行可能なコンピュータ実行可能命令が記憶されており、プロセッサ111は、コンピュータ実行可能命令を実行して、本発明の上記のいずれかの実施例に開示された方法を実行する。
【0407】
例えば、プロセッサ111は、コンピュータ実行可能命令を実行して、
復号対象ユニットのビットストリームを得るステップと、
前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定するステップと、
各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップと、
前記復号対象ユニットの前記スキャン方式に基づいて、各グループの前記係数ブロック内の係数を1つずつ復元して、前記復号対象ユニットに対応する再構成データブロックを得るステップと、を実行するために用いられる。
【0408】
例えば、プロセッサ111は、コンピュータ実行可能命令を実行して、
元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得るステップと、
前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得るステップと、
各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るステップと、を実行するために用いられる。
【0409】
上記の実施例において、全部又は一部をソフトウェア、ハードウェア、ファームウェア又はそれらの任意の組み合わせによって実現することができる。ソフトウェアプログラムを用いて実現する場合、全部又は一部をコンピュータプログラム製品の形態で実現することができる。コンピュータプログラム製品は、1つ以上のコンピュータ命令を含む。当該コンピュータ命令がコンピュータ上でロード及び実行されるとき、本発明の実施形態に係る手順又は機能は、全部又は部分的に生成される。当該コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、又は他のプログラマブル装置であってもよい。当該コンピュータ命令は、コンピュータ可読記憶媒体に記憶されてもよく、あるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に送信されてもよい。例えば、当該コンピュータ命令は、有線(例えば、同軸ケーブル、光ファイバ、デジタル加入者線(digital subscriber line、DSL))方式、又は無線(例えば、赤外線、無線、マイクロ波など)方式で、ウェブサイト、コンピュータ、サーバ、又はデータセンタから別のウェブサイト、コンピュータ、サーバ、又はデータセンタに送信されてもよい。当該コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の利用可能な媒体、又は1つ以上の利用可能な媒体を統合したサーバ、データセンタなどのデータ記憶装置であってもよい。当該利用可能な媒体は、磁気媒体(例えば、フロッピーディスク、磁気ディスク、又は磁気テープ)、光媒体(例えば、デジタルビデオディスク(digital video disc、DVD))、半導体媒体(例えば、ソリッドステートドライブ(solid state drives、SSD))などであってもよい。
【0410】
以上の実施形態の説明により、当業者は、説明の便宜と簡潔さのために、上記の各機能モジュールの分割のみを例として説明し、実際の応用において、必要に応じて上記の機能を異なる機能モジュールに割り当てて完成させることができ、すなわち、装置の内部構造を異なる機能モジュールに分割して、以上に説明された全部又は一部の機能を完成させることは明らかである。上記のシステム、装置、及びユニットの具体的な動作プロセスについては、前述の方法の実施例における対応するプロセスを参照されたい。
【0411】
本発明で提供されるいくつかの実施例では、開示されたシステム、装置、及び方法が他の形態で実現され得ることは、理解されるべきであろう。前述の装置実施例は、単なる例示的なものに過ぎず、例えば、前述のモジュール又はユニットの分割は、単なる論理的な機能の分割に過ぎず、実際の実施時、他の分割方法が存在してもよく、例えば、複数のユニット又はコンポーネントが別のシステムに組み合わせ又は統合されてもよく、いくつかの特徴が無視され又は実行されなくてもよい。また、表示又は討論される相互結合又は直接結合又は通信接続は、いくつかのインタフェース、装置又はユニットを介した間接結合又は通信接続であってもよく、電気的、機械的又は他の形態であってもよい。
【0412】
分離部品として説明する前記ユニットは、物理的に分離したものであってもなくてもよく、ユニットとして表される部品は、物理ユニットであってもなくてもよく、すなわち、同一の箇所に位置しても、複数のネットワークユニットに配置されてもよい。本実施例に係る技術案の目的を実現するために、実際の必要に応じて前述のユニットから一部又は全部を選択することができる。
【0413】
また、本発明の各実施例における各機能ユニットについては、全てのユニットが1つの処理ユニットに統合されてもよいし、各ユニットが単独で物理的に存在してもよいし、2つ以上のユニットが1つのユニットに統合されてもよい。上記の統合されたユニットは、ハードウェアの形態で実現されてもよく、ソフトウェア機能ユニットの形態で実現されてもよい。
【0414】
上記の統合されたユニットは、ソフトウェア機能ユニットの形態で実現され、かつ独立した製品として販売又は使用される場合、コンピュータ可読記憶媒体に記憶され得る。このような理解に基づいて、本発明に係る技術案は本質的に、換言すれば従来技術に貢献する部分又は当該技術案の全部又は一部が、ソフトウェア製品の形態で具現化されてもよく、当該コンピュータソフトウェア製品は、1つの記憶媒体に格納され、1台のコンピュータデバイス(パーソナルコンピュータ、サーバ、又はネットワークデバイス等であってもよい)又はプロセッサに、本発明の各実施例で説明した方法におけるステップの全部又は一部を実行させるためのいくつかの命令を含む。前述の記憶媒体としては、フラッシュメモリ、リムーバブルハードディスク、読み取り専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、磁気ディスク又は光ディスクなどの、プログラムコードを記憶可能な様々な媒体が挙げられる。
【0415】
以上は、本発明の具体的な実施形態に過ぎず、本発明の保護範囲はこれに限定されない。本発明に開示された技術的範囲内における任意の変化又は置換は、本発明の保護範囲内に含まれるべきである。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に準ずるものとする。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
復号対象ユニットのビットストリームを得るステップと、
前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定するステップと、
各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得るステップと、
前記復号対象ユニットの前記スキャン方式に基づいて、各グループの前記係数ブロック内の係数を1つずつ復元して、前記復号対象ユニットに対応する再構成データブロックを得るステップと、を含む、
ことを特徴とするビデオ画像復号方法。
【請求項2】
前記スキャン方式は、垂直スキャンを含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記再構成データブロックは、復号対象画像の元の画素値、前記元の画素値を予測して得られる残差値、又は前記残差値を量子化して得られる係数のうちの1つからなるデータブロックである、
ことを特徴とする請求項1に記載の方法。
【請求項4】
前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定するステップは、
符号化側と復号側の事前合意に基づいて、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを決定するステップ、又は、
前記ビットストリームに基づいて解析して、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを取得するステップ、又は、
前記符号化側と前記復号側の事前合意に基づいて、少なくとも1つのタイプの前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定し、前記少なくとも1つのタイプの前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式に基づいて、前記ビットストリームに基づいて解析して、前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式のうちのの少なくとも1つを取得するステップを含む、
ことを特徴とする請求項1に記載の方法。
【請求項5】
元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得るステップと、
前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得るステップと、
各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るステップと、を含む、
ことを特徴とするビデオ画像符号化方法。
【請求項6】
復号対象ユニットのビットストリームを得るために用いられる送受信モジュールと、
前記復号対象ユニットのスキャン方式、グループ化方式、及び各グループに対応する符号化方式を決定し、各グループの符号化方式に基づいて復号し、前記復号対象ユニットに対応する係数ブロックを得、前記復号対象ユニットの前記スキャン方式に基づいて、各グループの前記係数ブロック内の係数を1つずつ復元して、前記復号対象ユニットに対応する再構成データブロックを得るために用いられる処理モジュールと、を含む、
ことを特徴とするビデオ画像復号装置。
【請求項7】
元の画像における符号化対象データブロックを第1のスキャン方式でスキャンして、係数シーケンスを得、前記係数シーケンスを第1のグループ化方式でグループ化して、複数グループの符号化対象サブシーケンスを得、各グループの符号化対象サブシーケンスに対応する係数符号化方式を決定し、1つずつ符号化して符号化済みビットストリームを得るために用いられる処理モジュールを含む、
ことを特徴とするビデオ画像符号化装置。
【請求項8】
請求項に記載の装置と請求項に記載の装置とを備える、
ことを特徴とするビデオ符号化復号システム。
【請求項9】
メモリに接続されるプロセッサを含むビデオ符号化復号装置であって、
前記メモリは、コンピュータプログラム又は命令を記憶するために用いられ、
前記プロセッサは、前記メモリに記憶されたコンピュータプログラム又は命令を実行して、前記装置に請求項1~のいずれか1項に記載の方法を実行させるために用いられる、
ことを特徴とするビデオ符号化復号装置。
【請求項10】
請求項1~5のいずれか1項に記載の方法を実行するために用いられる、
ことを特徴とする電子機器。
【請求項11】
プログラム又は命令を含む可読記憶媒体であって、前記プログラム又は命令がプロセッサによって実行されると、請求項1~のいずれか1項に記載の方法が実行される、
ことを特徴とする可読記憶媒体。
【国際調査報告】