(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-08-02
(54)【発明の名称】整数値のシーケンスの符号化および復号するための装置、整数値のシーケンスの符号化および復号するための方法、およびこれらの方法を実施するためのコンピュータプログラム
(51)【国際特許分類】
H03M 7/36 20060101AFI20230726BHJP
H03M 7/40 20060101ALI20230726BHJP
G06N 3/0495 20230101ALI20230726BHJP
【FI】
H03M7/36
H03M7/40
G06N3/0495
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022580206
(86)(22)【出願日】2021-06-23
(85)【翻訳文提出日】2023-02-22
(86)【国際出願番号】 EP2021067217
(87)【国際公開番号】W WO2021260046
(87)【国際公開日】2021-12-30
(32)【優先日】2020-06-23
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】500242786
【氏名又は名称】フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】パウル・ハーゼ
(72)【発明者】
【氏名】カーステン・ミュラー
(72)【発明者】
【氏名】ハイナー・キルヒホーファー
(72)【発明者】
【氏名】デトレフ・マルペ
(72)【発明者】
【氏名】ハイコ・シュヴァルツ
(72)【発明者】
【氏名】トーマス・ヴィーガント
【テーマコード(参考)】
5J064
【Fターム(参考)】
5J064BA01
5J064BA09
5J064BA10
5J064BB01
5J064BC02
(57)【要約】
本発明は、具体的にはまず所定の位置における値を符号化し、次いで隣接する値間の差分を連続的に算出して符号化することを用いて、整数値のシーケンスを符号化するための符号化方式について説明する。それぞれの復号方式も提供される。これらの符号化および復号方式は、より効率的な符号化概念を提供する。
【特許請求の範囲】
【請求項1】
厳密に単調に順序付けられた整数値のシーケンスをデータストリームに符号化するための装置であって、
前記整数値のシーケンスの所定の位置(z)に配置された所定の整数値(C[z])を前記データストリームに符号化し(104)、
前記整数値のシーケンスにおける前記所定の位置(z)の前の各位置について、
前記それぞれの位置のすぐ後に存在する整数値と前記それぞれの位置における前記整数値から1を引いた値との間の第1の差分を算出し(105)、
前記第1の差分を前記データストリームに符号化し(106)、
前記整数値のシーケンスにおける前記所定の位置の後に配置された各位置について、
前記それぞれの位置における前記整数値と前記それぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分を算出し(107)、
前記第2の差分を前記データストリームに符号化するように構成された装置。
【請求項2】
前記整数値のシーケンスの整数値の数を前記データストリームに符号化する(101)ように構成された、請求項1に記載の装置。
【請求項3】
第1の可変長符号[A1]を使用することによって前記整数値のシーケンスの整数値の数を前記データストリームに符号化するように構成された、請求項2に記載の装置。
【請求項4】
指数ゴロム符号を使用することによって前記整数値のシーケンスの整数値の数を前記データストリームに符号化するように構成された、請求項2に記載の装置。
【請求項5】
前記指数ゴロム符号用の指数ゴロム符号パラメータを前記データストリームに符号化するように構成された、請求項4に記載の装置。
【請求項6】
前記指数ゴロム符号用の指数ゴロム符号パラメータは値が2である、請求項4に記載の装置。
【請求項7】
第1の2値化符号を使用して前記整数値のシーケンスの整数値の数を1つまたは複数の第1のビンの第1の2進列に2値化し、前記1つまたは複数の第1のビンをコンテキスト適応2進算術コーディングすることによって、前記数を前記データストリームに符号化するように構成された、請求項2から6のいずれか一項に記載の装置。
【請求項8】
所定の位置を示す情報を前記データストリームに符号化するように構成された、請求項1から7のいずれか一項に記載の装置。
【請求項9】
前記整数値のシーケンス内のいくつかの位置のうちの所定の位置を選択し、前記いくつかの位置のうちで所定の基準を満たす位置を、所定の位置として選択するように構成された、請求項1から8のいずれか一項に記載の装置。
【請求項10】
前記所定の基準は、前記整数値のシーケンスを前記データストリームに符号化するための最低ビットレートである、請求項9に記載の装置。
【請求項11】
前記所定の位置のランクと前記整数値の数を整数に四捨五入した値との間の第3の差分を算出し(102)、
前記第3の差分を前記データストリームに符号化する(103)ように構成された、請求項1から10のいずれか一項に記載の装置。
【請求項12】
第2の可変長符号[A2]を使用することによって前記第3の差分を前記データストリームに符号化するように構成された、請求項11に記載の装置。
【請求項13】
指数ゴロム符号を使用することによって前記第3の差分を前記データストリームに符号化するように構成された、請求項11に記載の装置。
【請求項14】
前記指数ゴロム符号用の指数ゴロム符号パラメータを前記データストリームに符号化するように構成された、請求項13に記載の装置。
【請求項15】
規定のマッピング規則に従って第1の符号なし整数上に前記第3の差分をマッピングし、
第3の可変長符号[A6]を使用して前記第1の符号なし整数を符号化することによって前記第3の差分を前記データストリームに符号化するように構成された、請求項11に記載の装置。
【請求項16】
指数ゴロム符号を使用することによって前記符号なし整数を前記データストリームに符号化するように構成された、請求項15に記載の装置。
【請求項17】
前記指数ゴロム符号用の指数ゴロム符号パラメータを前記データストリームに符号化するように構成された、請求項16に記載の装置。
【請求項18】
前記指数ゴロム符号用の指数ゴロム符号パラメータは値が2である、請求項16に記載の装置。
【請求項19】
前記マッピング規則では、0よりも小さい符号付き整数および0よりも大きい符号付き整数がそれぞれ、偶数符号なし整数および奇数符号なし整数のうちの別々の符号なし整数上にマッピングされ、ゼロの上にゼロがマッピングされ、かつ各符号なし整数について、前記それぞれの符号なし整数上にマッピングされる第1の符号付き整数の大きさが、前記それぞれの符号なし整数の後続の符号なし整数上にマッピングされる第2の符号付き整数以上になるように、符号付き整数を符号なし整数にマッピングする、請求項15から18のいずれか一項に記載の装置。
【請求項20】
前記マッピング規則は、次式
Is≦0の場合→ Iu = -Is * 2、
Is>0の場合→ Iu = Is * 2 - 1
に従って符号付き整数Isを符号なし整数Iuにマッピングする、請求項15から18のいずれか一項に記載の装置。
【請求項21】
第2の2値化符号を使用して前記数を1つまたは複数の第2のビンの第2の2進列に2値化し、前記1つまたは複数の第2のビンをコンテキスト適応2進算術コーディングすることによって、前記第3の差分を前記データストリームに符号化するように構成された、請求項11から20のいずれか一項に記載の装置。
【請求項22】
第4の可変長符号[A3]を使用することによって前記所定の整数値を前記データストリームに符号化するように構成された、請求項1から21のいずれか一項に記載の装置。
【請求項23】
指数ゴロム符号を使用することによって前記所定の整数値を前記データストリームに符号化するように構成された、請求項1から22のいずれか一項に記載の装置。
【請求項24】
前記指数ゴロム符号用の指数ゴロム符号パラメータを前記データストリームに符号化するように構成された、請求項23に記載の装置。
【請求項25】
さらなる規定のマッピング規則に従って第2の符号なし整数上に前記所定の整数値をマッピングし、
第5の可変長符号[A7]を使用して前記第2の符号なし整数を符号化することによって前記所定の整数値を前記データストリームに符号化するように構成された、請求項1から24のいずれか一項に記載の装置。
【請求項26】
指数ゴロム符号を使用することによって前記符号なし整数を前記データストリームに符号化するように構成された、請求項25に記載の装置。
【請求項27】
前記指数ゴロム符号用の指数ゴロム符号パラメータを前記データストリームに符号化するように構成された、請求項26に記載の装置。
【請求項28】
前記指数ゴロム符号用の指数ゴロム符号パラメータは値が7である、請求項26に記載の装置。
【請求項29】
前記マッピング規則では、0よりも小さい符号付き整数および0よりも大きい符号付き整数がそれぞれ、偶数符号なし整数および奇数符号なし整数のうちの別々の符号なし整数上にマッピングされ、ゼロの上にゼロがマッピングされ、かつ各符号なし整数について、前記それぞれの符号なし整数上にマッピングされる第1の符号付き整数の大きさが、前記それぞれの符号なし整数の後続の符号なし整数上にマッピングされる第2の符号付き整数以上になるように、符号付き整数を符号なし整数にマッピングする、請求項25から28のいずれか一項に記載の装置。
【請求項30】
前記マッピング規則は、次式
Is≦0の場合→ Iu = -Is * 2、
Is>0の場合→ Iu = Is * 2 - 1
に従って符号付き整数Isを符号なし整数Iuにマッピングする、請求項25から28のいずれか一項に記載の装置。
【請求項31】
第3の2値化符号を使用して前記数を1つまたは複数の第3のビンの第3の2進列に2値化し、前記1つまたは複数の第3のビンをコンテキスト適応2進算術コーディングすることによって、前記所定の整数値を前記データストリームに符号化するように構成された、請求項1から24のいずれか一項に記載の装置。
【請求項32】
第6の可変長符号[A4]を使用することによって前記第1の差分を前記データストリームに符号化するように構成された、請求項1から31のいずれか一項に記載の装置。
【請求項33】
指数ゴロム符号を使用することによって前記第1の差分を前記データストリームに符号化するように構成された、請求項1から32のいずれか一項に記載の装置。
【請求項34】
前記指数ゴロム符号用の指数ゴロム符号パラメータを前記データストリームに符号化するように構成された、請求項33に記載の装置。
【請求項35】
前記指数ゴロム符号パラメータは、0~15の範囲における値のうちの1つであり、前記データストリームに4ビット符号なし整数として符号化される、請求項34に記載の装置。
【請求項36】
前記指数ゴロム符号用の指数ゴロム符号パラメータは値が7である、請求項33から35のいずれか一項に記載の装置。
【請求項37】
第2の2値化符号を使用して前記数を1つまたは複数の第4のビンの第4の2進列に2値化し、前記1つまたは複数の第4のビンをコンテキスト適応2進算術コーディングすることによって、前記第1の差分を前記データストリームに符号化するように構成された、請求項1から36のいずれか一項に記載の装置。
【請求項38】
第7の可変長符号[A5]を使用することによって前記第2の差分を前記データストリームに符号化するように構成される、請求項1から37のいずれか一項に記載の装置。
【請求項39】
指数ゴロム符号を使用することによって前記第2の差分を前記データストリームに符号化するように構成された、請求項1から38のいずれか一項に記載の装置。
【請求項40】
前記指数ゴロム符号用の指数ゴロム符号パラメータを前記データストリームに符号化するように構成された、請求項39に記載の装置。
【請求項41】
前記指数ゴロム符号パラメータは、0~15の範囲における値のうちの1つであり、前記データストリームに4ビット符号なし整数として符号化される、請求項40に記載の装置。
【請求項42】
前記指数ゴロム符号用の指数ゴロム符号パラメータは値が7である、請求項39に記載の装置。
【請求項43】
前記第2の差分を符号化するための前記指数ゴロム符号用の前記指数ゴロム符号パラメータは、前記第1の差分を符号化するための前記指数ゴロム符号用の前記指数ゴロム符号パラメータと同じである、請求項39に記載の装置。
【請求項44】
前記第1の差分および前記第2の差分を符号化するための前記指数ゴロム符号用の前記指数ゴロム符号パラメータは、前記所定の整数値を前記データストリームに符号化するための前記指数ゴロム符号用の前記指数ゴロム符号パラメータと同じである、請求項43に記載の装置。
【請求項45】
第2の2値化符号を使用して前記数を1つまたは複数の第5のビンの第5の2進列に2値化し、前記1つまたは複数の第5のビンをコンテキスト適応2進算術コーディングすることによって、前記第2の差分を前記データストリームに符号化するように構成される、請求項1から44のいずれか一項に記載の装置。
【請求項46】
クラスタリングアルゴリズムを介して前記整数値のシーケンスを取得するように構成された、請求項1から45のいずれか一項に記載の装置。
【請求項47】
前記整数値のシーケンスは、ニューラルネットワークのパラメータに関連付けられたコードブックである、請求項1から46のいずれか一項に記載の装置。
【請求項48】
前記パラメータは、前記ニューラルネットワークの重み、バイアス、およびバッチノームパラメータのうちの1つまたは複数を含む、請求項47に記載の装置。
【請求項49】
前記整数値のシーケンスおよび浮動小数点量子化パラメータによって定義される量子化レベルのセット上に複数の浮動小数点値を量子化することによって、前記整数値のシーケンスを取得するように構成された、請求項1から48のいずれか一項に記載の装置。
【請求項50】
前記複数の浮動小数点値の各々について、前記浮動小数点量子化パラメータに従って、前記それぞれの浮動小数点値が量子化される量子化レベルに関連付けられた前記整数値のシーケンス内の前記関連する整数値を指し示す量子化インデックスを前記データストリームに符号化するように構成された、請求項49に記載の装置。
【請求項51】
前記浮動小数点量子化パラメータは、第1の符号付き整数量子化パラメータおよび第2の符号なし整数量子化パラメータを含む、請求項49および50のいずれか一項に記載の装置。
【請求項52】
前記第1の符号付き整数量子化パラメータを前記データストリームに符号化するように構成され、前記第2の符号なし整数パラメータは固定値であり、または前記装置は、整数値の別のシーケンスもしくは整数値のシーケンスのセットから前記第2の符号なし整数パラメータを継承するように構成される、請求項51に記載の装置。
【請求項53】
前記第1の符号付き整数量子化パラメータおよび前記第2の符号なし整数パラメータを前記データストリームに符号化するように構成された、請求項51に記載の装置。
【請求項54】
前記量子化インデックスを、前記整数値のシーケンス内の前記関連する整数値の前記位置の第1のランクと前記所定の位置のランクとのランク差の形で前記データストリームに符号化するように構成される、請求項49に記載の装置。
【請求項55】
第8の可変長符号を使用することによって前記ランク差を前記データストリームに符号化するように構成された、請求項54に記載の装置。
【請求項56】
指数ゴロム符号を使用することによって前記ランク差を前記データストリームに符号化するように構成される、請求項54に記載の装置。
【請求項57】
2値化符号を使用して前記数を1つまたは複数のビンの2進列に2値化し、前記1つまたは複数のビンをコンテキスト適応2進算術コーディングすることによって、前記ランク差を前記データストリームに符号化するように構成された、請求項54から56のいずれか一項に記載の装置。
【請求項58】
浮動小数点量子化パラメータを前記データストリームに符号化し、前記浮動小数点量子化パラメータを適用することによって前記整数値のシーケンスから量子化レベルを取得するように構成された、請求項1から57のいずれか一項に記載の装置。
【請求項59】
前記浮動小数点量子化パラメータは、前記量子化レベル間の量子化ステップサイズを定義する、請求項58に記載の装置。
【請求項60】
データストリームから、厳密に単調に順序付けされた整数値のシーケンスを復号するための装置であって、
前記整数値のシーケンスの所定の位置(z)に配置された所定の整数値(C[z])を前記データストリームから復号し(204)、
前記整数値のシーケンスにおける前記所定の位置の前の各位置について、
前記それぞれの位置のすぐ後に存在する整数値と前記それぞれの位置における前記整数値から1を引いた値との間の第1の差分を前記データストリームから復号し(205)、
前記整数値のシーケンスにおける前記所定の位置の後に配置された各位置について、
前記それぞれの位置における前記整数値と前記それぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分を前記データストリームから復号する(207)ように構成された装置。
【請求項61】
前記データストリームから前記整数値のシーケンスの整数値の数を復号する(201)ように構成された、請求項60に記載の装置。
【請求項62】
第1の可変長符号[A1]を使用することによって前記データストリームから前記整数値のシーケンスの整数値の数を復号するように構成された、請求項61に記載の装置。
【請求項63】
指数ゴロム符号を使用することによって前記データストリームから前記整数値のシーケンスの整数値の数を復号するように構成された、請求項61に記載の装置。
【請求項64】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求項63に記載の装置。
【請求項65】
前記指数ゴロム符号用の指数ゴロム符号パラメータは値が2である、請求項63に記載の装置。
【請求項66】
1つまたは複数の第1のビンにおける第1の2進列からの第1の2値化符号を介して前記整数値のシーケンスの整数値の数を多値化し、前記データストリームから前記1つまたは複数の第1のビンをコンテキスト適応2進算術復号することによって前記データストリームから前記数を復号するように構成された、請求項61から63のいずれか一項に記載の装置。
【請求項67】
前記データストリームから前記所定の位置を示す情報を復号するように構成された、請求項60に記載の装置。
【請求項68】
前記所定の位置の前の前記位置のシーケンスにおける各位置について、
前記第1の差分、前記それぞれの位置のすぐ後に存在する前記整数値、および1を線形に組み合わせることによって前記それぞれの位置における前記整数値を算出し(206)、
前記所定の位置の後に配置された前記位置のシーケンスにおける各位置について、
前記第2の差分、前記それぞれの位置のすぐ前に存在する前記整数値、および1を線形に組み合わせることによって前記それぞれの位置における前記整数値を算出する(208)ように構成された、請求項60から67のいずれか一項に記載の装置。
【請求項69】
前記データストリームから前記所定の位置のランクと前記整数値の数を整数に四捨五入した値との間の第3の差分を復号し(202)、
前記第3の差分および前記整数値の数に基づいて前記所定の位置を算出する(203)ように構成された、請求項60から68のいずれか一項に記載の装置。
【請求項70】
第2の可変長符号[A2]を介して前記データストリームから前記第3の差分を復号するように構成された、請求項69に記載の装置。
【請求項71】
指数ゴロム符号を介して前記データストリームから前記第3の差分を復号するように構成された、請求項69に記載の装置。
【請求項72】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求項71に記載の装置。
【請求項73】
第3の可変長符号[A6]を使用して第1の符号なし整数を復号し、
所定の逆マッピング規則に従って前記第1の符号なし整数から逆マッピングすることによって前記第3の差分を取り出すことによって、前記データストリームから前記第3の差分を復号するように構成された、請求項69に記載の装置。
【請求項74】
指数ゴロム符号を使用することによって前記データストリームから前記符号なし整数を復号するように構成された、請求項73に記載の装置。
【請求項75】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求項74に記載の装置。
【請求項76】
指数ゴロム符号用の指数ゴロム符号パラメータは値が2である、請求項74に記載の装置。
【請求項77】
前記逆マッピング規則では、偶数符号なし整数および奇数符号なし整数がそれぞれ、0よりも小さい符号付き整数および0よりも大きい符号付き整数のうちの別々の符号付き整数上にマッピングされ、ゼロの上にゼロがマッピングされ、かつ各符号付き整数について、前記それぞれの符号なし整数上にマッピングされる第1の符号付き整数の大きさが、前記それぞれの符号なし整数の後続の符号なし整数上にマッピングされる第2の符号付き整数以上になるように、符号なし整数を符号付き整数にマッピングする、請求項73に記載の装置。
【請求項78】
前記逆マッピング規則では、次式
【数1】
に従って符号なし整数Iuが符号付き整数Isにマッピングされる、請求項77に記載の装置。
【請求項79】
第2の2値化符号を介して1つまたは複数の第2のビンの第2の2進列から前記数を多値化し、前記1つまたは複数の第2のビンをコンテキスト適応2進算術復号することによって、前記データストリームから前記第3の差分を復号するように構成された、請求項69から78のいずれか一項に記載の装置。
【請求項80】
第4の可変長符号[A3]を介して前記データストリームから前記所定の整数値を復号するように構成された、請求項60から79のいずれか一項に記載の装置。
【請求項81】
指数ゴロム符号を介して前記データストリームから前記所定の整数値を復号するように構成された、請求項60から80のいずれか一項に記載の装置。
【請求項82】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求項81に記載の装置。
【請求項83】
第5の可変長符号[A7]を介して第2の符号なし整数を復号し、
さらなる規定の逆マッピング規則に従った前記第2の符号なし整数からの逆マッピングによって前記所定の整数値を取り出すことによって、前記データストリームから前記所定の整数値を復号するように構成された、請求項60から82のいずれか一項に記載の装置。
【請求項84】
指数ゴロム符号を使用することによって前記データストリームから前記符号なし整数を復号するように構成された、請求項83に記載の装置。
【請求項85】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求項84に記載の装置。
【請求項86】
前記指数ゴロム符号用の指数ゴロム符号パラメータは値が7である、請求項84に記載の装置。
【請求項87】
前記逆マッピング規則では、偶数符号なし整数および奇数符号なし整数がそれぞれ、0よりも小さい符号付き整数および0よりも大きい符号付き整数のうちの別々の符号付き整数上にマッピングされ、ゼロの上にゼロがマッピングされ、かつ各符号付き整数について、前記それぞれの符号なし整数上にマッピングされる第1の符号付き整数の大きさが、前記それぞれの符号なし整数の後続の符号なし整数上にマッピングされる第2の符号付き整数以上になるように、符号なし整数を符号付き整数にマッピングする、請求項83から86のいずれか一項に記載の装置。
【請求項88】
前記逆マッピング規則では、次式
【数2】
に従って符号なし整数Iuが符号付き整数Isにマッピングされる、請求項83から86のいずれか一項に記載の装置。
【請求項89】
第3の2値化符号を使用して1つまたは複数の第3のビンの第3の2進列から前記数を多値化し、前記1つまたは複数の第3のビンをコンテキスト適応2進算術復号することによって、前記データストリームから前記所定の整数値を復号するように構成された、請求項60から81のいずれか一項に記載の装置。
【請求項90】
第6の可変長符号[A4]を使用することによって前記第1の差分を前記データストリームに符号化するように構成された、請求項60から89のいずれか一項に記載の装置。
【請求項91】
指数ゴロム符号を介して前記データストリームから前記第1の差分を復号するように構成された、請求項60から90のいずれか一項に記載の装置。
【請求項92】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求項91に記載の装置。
【請求項93】
前記指数ゴロム符号パラメータは、0~15の範囲における値のうちの1つであり、前記データストリームに4ビット符号なし整数として符号化される、請求項92に記載の装置。
【請求項94】
前記指数ゴロム符号用の指数ゴロム符号パラメータは値が7である、請求項91に記載の装置。
【請求項95】
第2の2値化符号を使用して1つまたは複数の第4のビンの第4の2進列から前記数を多値化し、前記1つまたは複数の第4のビンをコンテキスト適応2進算術復号することによって、前記データストリームから前記第1の差分を復号するように構成された、請求項60から94のいずれか一項に記載の装置。
【請求項96】
第7の可変長符号[A5]を介して前記データストリームから前記第2の差分を復号するように構成された、請求項60から95のいずれか一項に記載の装置。
【請求項97】
指数ゴロム符号を介して前記データストリームから前記第2の差分を復号するように構成された、請求項60から96のいずれか一項に記載の装置。
【請求項98】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求項97に記載の装置。
【請求項99】
前記指数ゴロム符号パラメータは、0~15の範囲における値のうちの1つであり、前記データストリームに4ビット符号なし整数として符号化される、請求項98に記載の装置。
【請求項100】
前記指数ゴロム符号用の指数ゴロム符号パラメータは値が7である、請求項97に記載の装置。
【請求項101】
前記第2の差分を復号するための前記指数ゴロム符号用の前記指数ゴロム符号パラメータは、前記第1の差分を復号するための前記指数ゴロム符号用の前記指数ゴロム符号パラメータと同じである、請求項98から100のいずれか一項に記載の装置。
【請求項102】
前記第1の差分および前記第2の差分を復号するための前記指数ゴロム符号用の前記指数ゴロム符号パラメータは、前記データストリームから前記所定の整数値を復号するための前記指数ゴロム符号用の前記指数ゴロム符号パラメータと同じである、請求項101に記載の装置。
【請求項103】
第2の2値化符号を介して1つまたは複数の第5のビンの第5の2進列から前記数を多値化し、前記1つまたは複数の第5のビンをコンテキスト適応2進算術復号することによって、前記データストリームから前記第2の差分を復号するように構成された、請求項60から102のいずれか一項に記載の装置。
【請求項104】
前記復号された整数値のシーケンスにデクラスタリングアルゴリズムを適用するように構成された、請求項60から103のいずれか一項に記載の装置。
【請求項105】
前記整数値のシーケンスは、ニューラルネットワークのパラメータに関連付けられたコードブックである、請求項60から104のいずれか一項に記載の装置。
【請求項106】
前記パラメータは、前記ニューラルネットワークの重み、バイアス、およびバッチノームパラメータのうちの1つまたは複数を含む、請求項105に記載の装置。
【請求項107】
前記整数値のシーケンスおよび浮動小数点量子化パラメータによって定義される量子化レベルのセットから、前記復号された整数値のシーケンスを複数の浮動小数点値に再構成するように構成された、請求項60から106のいずれか一項に記載の装置。
【請求項108】
前記複数の浮動小数点値の各々について、前記浮動小数点量子化パラメータに従って、前記それぞれの浮動小数点値が量子化された量子化レベルに関連付けられた前記整数値のシーケンス内の前記関連する整数値を指し示す量子化インデックスを前記データストリームから復号するように構成された、請求項107に記載の装置。
【請求項109】
前記浮動小数点量子化パラメータは、第1の符号付き整数量子化パラメータおよび第2の符号なし整数パラメータを含む、請求項107および108のいずれか一項に記載の装置。
【請求項110】
前記第1の符号付き整数量子化パラメータを前記データストリームに符号化するように構成され、前記第2の符号なし整数パラメータは固定値であり、または前記装置は、整数値の別のシーケンスもしくは整数値のシーケンスのセットから前記第2の符号なし整数パラメータを継承するように構成される、請求項109に記載の装置。
【請求項111】
前記第1の符号付き整数量子化パラメータおよび前記第2の符号なし整数パラメータを前記データストリームに符号化するように構成された、請求項109に記載の装置。
【請求項112】
前記整数値のシーケンス内の前記関連する整数値の前記位置の第1のランクと前記所定の位置のランクとのランク差に基づいて、前記データストリームから前記量子化インデックスを復号するように構成された、請求項108に記載の装置。
【請求項113】
第8の可変長符号を介して前記データストリームから前記ランク差を復号するように構成された、請求項108に記載の装置。
【請求項114】
指数ゴロム符号を介して前記データストリームから前記ランク差を復号するように構成された、請求項108に記載の装置。
【請求項115】
2値化符号を使用して1つまたは複数のビンの2進列から前記数を多値化し、前記1つまたは複数のビンをコンテキスト適応2進算術復号することによって、前記データストリームから前記ランク差を復号するように構成された、請求項108から113のいずれか一項に記載の装置。
【請求項116】
前記データストリームから浮動小数点量子化パラメータを復号し、前記浮動小数点量子化パラメータを適用することによって量子化レベルから前記整数値のシーケンスを再構成するように構成された、請求項60から115のいずれか一項に記載の装置。
【請求項117】
前記浮動小数点量子化パラメータは、前記量子化レベル間の量子化ステップサイズを定義する、請求項116に記載の装置。
【請求項118】
厳密に単調に順序付けられた整数値のシーケンスをデータストリームに符号化するための方法であって、
前記整数値のシーケンスの所定の位置(z)に配置された所定の整数値(C[z])を前記データストリームに符号化するステップと、
前記整数値のシーケンスにおける前記所定の位置(z)の前の各位置について、
前記それぞれの位置のすぐ後に存在する整数値と前記それぞれの位置における前記整数値から1を引いた値との間の第1の差分を算出するステップと、
前記第1の差分を前記データストリームに符号化するステップと、
前記整数値のシーケンスにおける前記所定の位置の後に配置された各位置について、
前記それぞれの位置における前記整数値と前記それぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分を算出するステップと、
前記第2の差分を前記データストリームに符号化するステップとを含む方法。
【請求項119】
データストリームから、厳密に単調に順序付けされた整数値のシーケンスを復号するための方法であって、
前記整数値のシーケンスの所定の位置(z)に配置された所定の整数値(C[z])を前記データストリームから復号するステップと、
前記整数値のシーケンスにおける前記所定の位置の前の各位置について、
前記それぞれの位置のすぐ後に存在する整数値と前記それぞれの位置における前記整数値から1を引いた値との間の第1の差分を前記データストリームから復号するステップと、
前記整数値のシーケンスにおける前記所定の位置の後に配置された各位置について、
前記それぞれの位置における前記整数値と前記それぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分を前記データストリームから復号するステップとを含む方法。
【請求項120】
コンピュータ上で実行されたときに、請求項118から119のいずれか一項に記載の方法を実行するためのプログラムコードを有するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、整数値のシーケンスを符号化すること、詳細には、まず所定の位置における値を符号化し、次いで隣接する値間の差分を連続的に算出し符号化することを用いて、整数値のシーケンスの符号化することに関する。
【0002】
本発明による実施形態は、整数値のシーケンスを符号化するための装置に関する。
【0003】
本発明によるさらなる実施形態は、整数値のシーケンスを復号するための装置に関する。
【0004】
本発明によるさらなる実施形態は、整数値のシーケンスを符号化するための方法に関する。
【0005】
本発明によるさらなる実施形態は、整数値のシーケンスを復号するための方法に関する。
【0006】
本発明によるさらなる実施形態は、整数値のシーケンスを符号化および復号するための方法を実行するためのコンピュータプログラムに関する。
【0007】
本発明は、たとえば、ニューラルネットワークのパラメータの圧縮のような整数値のシグナリングを含む任意のデータ圧縮アプリケーションに適用することができる。
【背景技術】
【0008】
現在、値シーケンスを符号化および復号するための多数のデバイスおよび方法が公知である。
【0009】
しかし、公知のデバイスおよび方法は、符号の長さに起因してかなりのビットストリーム帯域幅を必要とし、シーケンスの要素の間に生じる異なる値が少数であるとき以外は効率的ではない。
【0010】
上記のことを考慮すると、圧縮性能を向上させて、コーディング効率を改善するコーディング概念を作成することが望ましい。
【発明の概要】
【発明が解決しようとする課題】
【0011】
したがって、本発明の目的は、より効率的な符号化概念を提供することである。この目的は、係属中の独立請求項の主題によって実現される。
【0012】
さらなる有利な態様は、従属請求項の主題である。
【課題を解決するための手段】
【0013】
本発明による一実施形態は、厳密に単調に順序付けられた整数値のシーケンス、たとえばコードブックを、データストリーム、たとえばビットストリームに符号化するための装置を作製する。この装置は、整数値のシーケンスの所定の位置(z)に配置された所定の整数値、たとえばC[z]をデータストリームに符号化し、整数値のシーケンスにおける所定の位置、たとえばzの前の各位置について、それぞれの位置のすぐ後に存在する整数値とそれぞれの位置における整数値から1を引いた値との間の第1の差分を算出し、第1の差分をデータストリームに符号化し、整数値のシーケンスにおける所定の位置の後に配置された各位置について、それぞれの位置における整数値とそれぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分を算出し、第2の差分をデータストリームに符号化するように構成される。
【0014】
この実施形態は、まずシーケンスの所定の位置に配置されたシーケンスの所定の整数値を符号化し、次いでその後、隣接する値間の差分のみをシグナリングすると、圧縮性能が向上するという所見に基づく。
【0015】
本明細書において教示されるように整数値のシーケンスをコーディングすると、シーケンスは、一方が所定の位置に先行し、他方がシーケンスに沿って所定の位置に後続する2つの部分に分割されることに注目すべきである。ニューラルネットワークパラメータなどのパラメータの量子化レベルのコードブックなどのコーディングすべき多数のシーケンスは、かなり小さい値であり、所定の位置における所定の整数値を形成するために使用され得るある整数値を中心とする値の分布を示し、その中心の周りに高密度の整数値が生じ、中心からより遠く離れた連続する整数値間に大きい間隔が実現される。このことは、シーケンスの第1の整数値または最後の整数値をコーディングし、次いでこの第1の整数値または最後の整数値に対する差分に応じてすべての他の値をコーディングすることと比較して、所定の整数値を別個にコーディングし、次いで他の整数値についてすぐ隣接する整数値の対に対する差分(1を引いた値)をコーディングすると、1つの大きい整数値をコーディングすることを不要にするうえで役立つことを意味する。これに対応する節約は、データストリームにおける所定の位置に関する情報をコーディングする場合の追加のオーバーヘッドを場合によっては過補償する。
【0016】
さらに、多くのアプリケーションでは、ニューラルネットワークパラメータなどのパラメータのある集合を量子化するために使用されるインデックスは、インデックスが指し示すコードブックの整数値間に分布を有し、コードブック自体は、シーケンスの整数値の重心が配置された所定の位置またはその近傍の位置を中心とする。これによって、所定の位置に関する情報がデータストリームにコーディングされる場合に、所定の位置に関する情報を、シーケンス/コードブック内を指し示すすべてのパラメータについて量子化インデックスをコーディングするためのオフセットとして効率的に再使用することが可能になり、すなわち、インデックスマイナス所定の位置(z)が、直接シーケンスまたはコードブック内の整数値のランク位置の代わりに各パラメータについてコーディング/復号されてもよい。再使用ならびに量子化インデックスのシーケンス/コードブックへの対応する差分/オフセットコーディングは、ニューラルネットワーク、NN、パラメータなどのパラメータのコーディングをより効率的にする。
【0017】
一実施形態によれば、装置は、整数値のシーケンスの整数値の数、たとえば、コードブックのサイズ、たとえばL(C)、またはコードブックの長さをデータストリーム、たとえばビットストリームに符号化するように構成される。これによって、コードブックのサイズの情報を再使用することが可能になる。データストリームへの符号化された整数値のシーケンスを使用してコードブックの所定の位置および中心のランクを判定することができる。一実施形態によれば、装置は、第1の可変長符号、たとえばA1を使用することによって整数値のシーケンスの整数値の数をデータストリームに符号化するように構成される。第1の可変長符号は、たとえば、より小さい整数により短い符号語を割り当ててもよい。第1の可変長符号は、たとえば、符号なし整数値用の符号であってもよい。
【0018】
一実施形態によれば、装置は、指数ゴロム符号を使用することによって整数値のシーケンスの整数値の数をデータストリームに符号化するように構成される。指数ゴロム符号のパラメータ、たとえばkは、たとえば、それぞれの異なる大きさの符号化済み値への符号長割り当てを制御してもよい。指数ゴロム符号を使用すると、より効率的なコーディング手法が実現される。
【0019】
一実施形態によれば、装置は、指数ゴロム符号用の指数ゴロム符号パラメータをデータストリームに符号化するように構成される。したがって、コーディング効率が向上する。
【0020】
一実施形態によれば、指数ゴロム符号用の指数ゴロム符号パラメータは値が2である。整数値のシーケンス、たとえばコードブック当たりに1つの値しか符号化されないので、第1の可変長符号用の所定の指数ゴロム符号パラメータを使用するとより効率的である。
【0021】
一実施形態によれば、装置は、第1の2値化符号を使用して整数値のシーケンスの整数値の数を1つまたは複数の第1のビンの第1の2進列に2値化し、1つまたは複数の第1のビンをコンテキスト適応2進算術コーディングすることによって、上記の数をデータストリームに符号化するように構成される。ロスレス2進コーディングに起因してコーディング効率は低下しない。
【0022】
一実施形態によれば、装置は、所定の位置、たとえばzを示す情報をデータストリームに符号化するように構成される。これによって、所定の位置に関する情報を再使用することが可能になる。
【0023】
一実施形態によれば、整数値のシーケンス内のいくつかの位置のうちの所定の位置を選択し、いくつかの位置のうちで、所定の基準を満たす位置を所定の位置として選択するように構成される。たとえば、整数値のシーケンスの整数値がゼロを中心とする値であるとき、所定の位置、たとえばzは、好ましくは小さい値を指し示し、効率的なコーディング手法を実現する。
【0024】
一実施形態によれば、所定の基準は、整数値のシーケンスをデータストリームに符号化するための最低ビットレートである。
【0025】
一実施形態によれば、装置は、所定の位置のランクと整数値の数を整数に四捨五入した値との間の第3の差分を算出し、第3の差分をデータストリームに符号化するように構成される。たとえば、第3の差分は次式のように算出される。
【0026】
【0027】
変数yは、たとえば、zがシーケンスの中央に近い位置を指し示すときは小さい。したがって、効率的なコーディング手法が実現される。
【0028】
一実施形態によれば、装置は、第2の可変長符号、たとえばA2を使用することによって第3の差分をデータストリームに符号化するように構成される。第2の可変長符号は、たとえば符号付き整数値用の符号である。
【0029】
一実施形態によれば、装置は、指数ゴロム符号を使用することによって第3の差分をデータストリームに符号化するように構成される。指数ゴロム符号のパラメータ、たとえばkは、たとえば、それぞれに異なる大きさの符号化済み値への符号長割り当てを制御してもよい。指数ゴロム符号を使用すると、より効率的なコーディング手法が実現される。
【0030】
一実施形態によれば、装置は、指数ゴロム符号用の指数ゴロム符号パラメータをデータストリームに符号化するように構成される。したがって、コーディング効率が向上する。
【0031】
一実施形態によれば、装置は、規定のマッピング規則に従って第1の符号なし整数上に第3の差分をマッピングし、第3の可変長符号、たとえばA6を使用して第1の符号なし整数を符号化することによって第3の差分をデータストリームに符号化するように構成される。
【0032】
一実施形態によれば、装置は、指数ゴロム符号を使用することによって符号なし整数をデータストリームに符号化するように構成される。指数ゴロム符号を使用すると、より効率的なコーディング手法が実現される。
【0033】
一実施形態によれば、装置は、指数ゴロム符号用の指数ゴロム符号パラメータをデータストリームに符号化するように構成される。したがって、コーディング効率が向上する。
【0034】
一実施形態によれば、指数ゴロム符号用の指数ゴロム符号パラメータは値が2である。所定の指数ゴロム符号パラメータを使用するとより効率的になることができる。
【0035】
一実施形態によれば、マッピング規則では、0よりも小さい符号付き整数および0よりも大きい符号付き整数がそれぞれ、偶数符号なし整数および奇数符号なし整数のうちの別々の符号なし整数上にマッピングされ、ゼロの上にゼロがマッピングされ、かつ各符号なし整数について、それぞれの符号なし整数上にマッピングされる第1の符号付き整数の大きさが、それぞれの符号なし整数の後続の符号なし整数上にマッピングされる第2の符号付き整数以上になるように、符号付き整数を符号なし整数にマッピングする。
【0036】
一実施形態によれば、マッピング規則は、次式に従って符号付き整数Isを符号なし整数Iuにマッピングする。
Is≦0の場合→ Iu = -Is * 2
Is>0の場合→ Iu = Is * 2 - 1
【0037】
一実施形態によれば、装置は、第2の2値化符号を使用して上記の数を1つまたは複数の第2のビンの第2の2進列に2値化し、1つまたは複数の第2のビンをコンテキスト適応2進算術コーディングすることによって、第3の差分をデータストリームに符号化するように構成される。
【0038】
一実施形態によれば、装置は、第4の可変長符号、たとえばA3を使用することによって所定の整数値をデータストリームに符号化するように構成される。第4の可変長符号は、たとえば符号付き整数値用の符号であってもよい。
【0039】
一実施形態によれば、装置は、指数ゴロム符号を使用することによって所定の整数値をデータストリームに符号化するように構成される。指数ゴロム符号のパラメータ、たとえばkは、それぞれに異なる大きさの符号化済み値への符号長割り当てを制御してもよい。指数ゴロム符号を使用すると、より効率的なコーディング手法が実現される。
【0040】
一実施形態によれば、装置は、指数ゴロム符号用の指数ゴロム符号パラメータをデータストリームに符号化するように構成される。したがって、コーディング効率が向上する。
【0041】
一実施形態によれば、さらなる規定のマッピング規則に従って第2の符号なし整数上に所定の整数値をマッピングし、第5の可変長符号、たとえばA7を使用して第2の符号なし整数を符号化することによって所定の整数値をデータストリームに符号化するように構成される。
【0042】
一実施形態によれば、装置は、指数ゴロム符号を使用することによって符号なし整数をデータストリームに符号化するように構成される。指数ゴロム符号を使用すると、より効率的なコーディング手法が実現される。
【0043】
一実施形態によれば、装置は、指数ゴロム符号用の指数ゴロム符号パラメータをデータストリームに符号化するように構成される。したがって、コーディング効率が向上する。
【0044】
一実施形態によれば、指数ゴロム符号用の指数ゴロム符号パラメータは値が7である。所定の指数ゴロム符号パラメータを使用するとより効率的になることができる。
【0045】
一実施形態によれば、マッピング規則では、0よりも小さい符号付き整数および0よりも大きい符号付き整数がそれぞれ、偶数符号なし整数および奇数符号なし整数のうちの別々の符号なし整数上にマッピングされ、ゼロの上にゼロがマッピングされ、かつ各符号なし整数について、それぞれの符号なし整数上にマッピングされる第1の符号付き整数の大きさが、それぞれの符号なし整数の後続の符号なし整数上にマッピングされる第2の符号付き整数以上になるように、符号付き整数を符号なし整数にマッピングする。
【0046】
一実施形態によれば、マッピング規則は、次式に従って符号付き整数Isを符号なし整数Iuにマッピングする。
Is≦0の場合→ Iu = -Is * 2
Is>0の場合→ Iu = Is * 2 - 1
【0047】
一実施形態によれば、装置は、第3の2値化符号を使用して上記の数を1つまたは複数の第3のビンの第3の2進列に2値化し、1つまたは複数の第3のビンをコンテキスト適応2進算術コーディングすることによって、所定の整数値をデータストリームに符号化するように構成される。ロスレス2値化コーディングに起因してコーディング効率が低下することはない。
【0048】
一実施形態によれば、装置は、第6の可変長符号、たとえばA4を使用することによって第1の差分をデータストリームに符号化するように構成される。第6の可変長符号は、たとえば符号なし整数値用の符号であってもよい。
【0049】
一実施形態によれば、装置は、指数ゴロム符号を使用することによって第1の差分をデータストリームに符号化するように構成される。指数ゴロム符号のパラメータ、たとえばkは、それぞれに異なる大きさの符号化済み値への符号長割り当てを制御してもよい。指数ゴロム符号を使用すると、より効率的なコーディング手法が実現される。
【0050】
一実施形態によれば、装置は、指数ゴロム符号用の指数ゴロム符号パラメータをデータストリームに符号化するように構成される。このことは、整数値の2つ以上のシーケンス、たとえば2つ以上のコードブックがデータストリームに符号化され、すべてのシーケンスについて1つの指数ゴロム符号パラメータのみがデータストリームに符号化されるときに特に効率的である。より大きいコードブックの場合、第6の可変長符号用の指数ゴロムパラメータをシグナリングして、符号長を符号化される値の分布に最適化すると有利であることがある。したがって、コーディング効率が向上する。
【0051】
一実施形態によれば、指数ゴロム符号パラメータは、0~15の範囲における値のうちの1つであり、データストリームに4ビット符号なし整数として符号化される。
【0052】
一実施形態によれば、指数ゴロム符号用の指数ゴロム符号パラメータは値が7である。所定の指数ゴロム符号パラメータを使用するとより効率的になることができる。
【0053】
一実施形態によれば、装置は、第2の2値化符号を使用して上記の数を1つまたは複数の第4のビンの第4の2進列に2値化し、1つまたは複数の第4のビンをコンテキスト適応2進算術コーディングすることによって、第1の差分をデータストリームに符号化するように構成される。ロスレス2値化コーディングに起因してコーディング効率が低下することはない。
【0054】
一実施形態によれば、装置は、第7の可変長符号、たとえばA5を使用することによって第2の差分をデータストリームに符号化するように構成される。第7の可変長符号は、たとえば符号なし整数値用の符号であってもよい。
【0055】
一実施形態によれば、装置は、指数ゴロム符号を使用することによって第2の差分をデータストリームに符号化するように構成される。指数ゴロム符号のパラメータ、たとえばkは、それぞれに異なる大きさの符号化された値への符号長割り当てを制御してもよい。指数ゴロム符号を使用すると、より効率的なコーディング手法が実現される。
【0056】
一実施形態によれば、装置は、指数ゴロム符号用の指数ゴロム符号パラメータをデータストリームに符号化するように構成される。このことは、整数値の2つ以上のシーケンス、たとえば2つ以上のコードブックがデータストリームに符号化され、すべてのシーケンスについて1つの指数ゴロム符号パラメータのみがデータストリームに符号化されるときに特に効率的である。より大きいコードブックの場合、第6の可変長符号用の指数ゴロムパラメータをシグナリングして、符号長を符号化される値の分布に最適化すると有利であることがある。したがって、コーディング効率が向上する。
【0057】
一実施形態によれば、指数ゴロム符号パラメータは、0~15の範囲における値のうちの1つであり、データストリームに4ビット符号なし整数として符号化される。
【0058】
一実施形態によれば、指数ゴロム符号用の指数ゴロム符号パラメータは値が7である。所定の指数ゴロム符号パラメータを使用するとより効率的になることができる。
【0059】
一実施形態によれば、第2の差分を符号化するための指数ゴロム符号用の指数ゴロム符号パラメータは、第1の差分を符号化するための指数ゴロム符号用の指数ゴロム符号パラメータと同じである。
【0060】
一実施形態によれば、第1の差分および第2の差分を符号化するための指数ゴロム符号用の指数ゴロム符号パラメータは、所定の整数値をデータストリームに符号化するための指数ゴロム符号用の指数ゴロム符号パラメータと同じである。
【0061】
一実施形態によれば、装置は、第2の2値化符号を使用して上記の数を1つまたは複数の第5のビンの第5の2進列に2値化し、1つまたは複数の第5のビンをコンテキスト適応2進算術コーディングすることによって、第2の差分をデータストリームに符号化するように構成される。ロスレス2値化コーディングに起因してコーディング効率が低下することはない。
【0062】
一実施形態によれば、装置は、クラスタリングアルゴリズムを介して整数値のシーケンスを取得するように構成される。
【0063】
一実施形態によれば、整数値のシーケンスは、ニューラルネットワークのパラメータに関連付けられたコードブックである。所定の位置に関する情報がデータストリームにコーディングされる場合に、所定の位置に関する情報を、シーケンス/コードブック内を指し示すすべてのパラメータについて量子化インデックスをコーディングするためのオフセットとして再使用し、ならびに量子化インデックスのシーケンス/コードブック内への対応する差分/オフセットコーディングを行うことによって、ニューラルネットワーク、NN、パラメータのコーディングがより効率的になる。
【0064】
一実施形態によれば、パラメータは、ニューラルネットワークの重み、バイアス、およびバッチノームパラメータのうちの1つまたは複数を含む。
【0065】
一実施形態によれば、装置は、整数値のシーケンスおよび浮動小数点量子化パラメータによって定義される量子化レベルのセット上に複数の浮動小数点値を量子化することによって、整数値のシーケンスを取得するように構成される。
【0066】
一実施形態によれば、装置は、複数の浮動小数点値の各々について、浮動小数点量子化パラメータに従って、それぞれの浮動小数点値が量子化される量子化レベルに関連付けられた整数値のシーケンス内の関連する整数値を指し示す量子化インデックスをデータストリームに符号化するように構成される。
【0067】
一実施形態によれば、浮動小数点量子化パラメータは、第1の符号付き整数量子化パラメータおよび第2の符号なし整数量子化パラメータを含む。
【0068】
一実施形態によれば、装置は、第1の符号付き整数量子化パラメータをデータストリームに符号化するように構成され、第2の符号なし整数パラメータは固定値であり、または装置は、整数値の別のシーケンスもしくは整数値のシーケンスのセットから第2の符号なし整数パラメータを継承するように構成される。
【0069】
一実施形態によれば、装置は、第1の符号付き整数量子化パラメータおよび第2の符号なし整数パラメータをデータストリームに符号化するように構成される。
【0070】
一実施形態によれば、装置は、量子化インデックスを、整数値のシーケンス内の関連する整数値の位置の第1のランクと所定の位置のランクとのランク差の形でデータストリームに符号化するように構成される。
【0071】
一実施形態によれば、装置は、第8の可変長符号を使用することによってランク差をデータストリームに符号化するように構成される。
【0072】
一実施形態によれば、装置は、指数ゴロム符号を使用することによってランク差をデータストリームに符号化するように構成される。指数ゴロム符号のパラメータ、たとえばkは、それぞれに異なる大きさの符号化された値への符号長割り当てを制御してもよい。指数ゴロム符号を使用すると、より効率的なコーディング手法が実現される。
【0073】
一実施形態によれば、装置は、2値化符号を使用して上記の数を1つまたは複数のビンの2進列に2値化し、1つまたは複数のビンをコンテキスト適応2進算術コーディングすることによって、ランク差をデータストリームに符号化するように構成される。ロスレス2値化コーディングに起因してコーディング効率が低下することはない。
【0074】
一実施形態によれば、装置は、浮動小数点量子化パラメータをデータストリームに符号化し、浮動小数点量子化パラメータを適用することによって整数値のシーケンスから量子化レベルを取得するように構成される。
【0075】
一実施形態によれば、浮動小数点量子化パラメータは、量子化レベル間の量子化ステップサイズを定義する。
【0076】
本発明による一実施形態は、データストリーム、たとえばビットストリームから、厳密に単調に順序付けされた整数値のシーケンス、たとえばコードブックを復号するための装置を作製する。この装置は、整数値のシーケンスの所定の位置、たとえばzに配置された所定の整数値、たとえばC[z]をデータストリームから復号し、整数値のシーケンスにおける所定の位置の前の各位置について、それぞれの位置のすぐ後に存在する整数値とそれぞれの位置における整数値から1を引いた値との間の第1の差分をデータストリームから復号し、整数値のシーケンスにおける所定の位置の後に配置された各位置について、それぞれの位置における整数値とそれぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分をデータストリームから復号するように構成される。
【0077】
この実施形態および以下で説明する実施形態による復号のための装置は、上記で説明した符号化のための装置と同じ要件に基づく。
【0078】
一実施形態によれば、装置は、データストリームから整数値のシーケンスの整数値の数、たとえばコードブックのサイズ、たとえば、L(C)、またはたとえばコードブックの長さを復号するように構成される。
【0079】
一実施形態によれば、装置は、第1の可変長符号、たとえばA1を使用することによってデータストリームから整数値のシーケンスの整数値の数を復号するように構成される。
【0080】
一実施形態によれば、装置は、指数ゴロム符号を使用することによってデータストリームから整数値のシーケンスの整数値の数を復号するように構成される。
【0081】
一実施形態によれば、装置は、データストリームから指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成される。
【0082】
一実施形態によれば、指数ゴロム符号用の指数ゴロム符号パラメータは値が2である。一実施形態によれば、装置は、1つまたは複数の第1のビンにおける第1の2進列から得た第1の2値化符号を介して整数値のシーケンスの整数値の数を多値化し、データストリームから1つまたは複数の第1のビンをコンテキスト適応2進算術復号することによってデータストリームから上記の数を復号するように構成される。
【0083】
一実施形態によれば、装置は、データストリームから所定の位置を示す情報を復号するように構成される。
【0084】
一実施形態によれば、装置は、所定の位置の前の位置のシーケンスにおける各位置について、第1の差分、それぞれの位置のすぐ後に存在する整数値、および1を線形に組み合わせることによってそれぞれの位置における整数値を算出し(206)、所定の位置の後に配置された位置のシーケンスにおける各位置について、第2の差分、それぞれの位置のすぐ前に存在する整数値、および1を線形に組み合わせることによってそれぞれの位置における整数値を算出する(208)ように構成される。
【0085】
一実施形態によれば、装置は、データストリームから所定の位置のランクと整数値の数を整数に四捨五入した値との間の第3の差分を復号し、第3の差分および整数値の数に基づいて所定の位置を算出するように構成される。
【0086】
一実施形態によれば、装置は、第2の可変長符号、たとえばA2を介してデータストリームから第3の差分を復号するように構成される。
【0087】
一実施形態によれば、装置は、指数ゴロム符号を介してデータストリームから第3の差分を復号するように構成される。
【0088】
一実施形態によれば、装置は、データストリームから指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成される。
【0089】
一実施形態によれば、装置は、第3の可変長符号、たとえばA6を使用して第1の符号なし整数を復号し、所定の逆マッピング規則に従って第1の符号なし整数から逆マッピングすることによって第3の差分を取り出すように構成される。
【0090】
一実施形態によれば、装置は、指数ゴロム符号を介してデータストリームから符号なし整数を復号するように構成される。
【0091】
一実施形態によれば、装置は、データストリームから指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成される。
【0092】
一実施形態によれば、指数ゴロム符号用の指数ゴロム符号パラメータは値が2である。
【0093】
一実施形態によれば、逆マッピング規則では、偶数符号なし整数および奇数符号なし整数がそれぞれ、0よりも小さい符号付き整数および0よりも大きい符号付き整数のうちの別々の符号付き整数上にマッピングされ、ゼロの上にゼロがマッピングされ、かつ各符号付き整数について、それぞれの符号なし整数上にマッピングされる第1の符号付き整数の大きさが、それぞれの符号なし整数の後続の符号なし整数上にマッピングされる第2の符号付き整数以上になるように、符号なし整数を符号付き整数にマッピングする。
【0094】
一実施形態によれば、逆マッピング規則では、次式に従って符号なし整数Iuが符号付き整数Isにマッピングされる。
【0095】
【0096】
一実施形態によれば、装置は、第2の2値化符号を介して1つまたは複数の第2のビンの第2の2進列から上記の数を多値化し、1つまたは複数の第2のビンをコンテキスト適応2進算術復号することによって、データストリームから第3の差分を復号するように構成される。
【0097】
一実施形態によれば、装置は、第4の可変長符号、たとえばA3を介してデータストリームから所定の整数値を復号するように構成される。
【0098】
一実施形態によれば、装置は、指数ゴロム符号を介してデータストリームから所定の整数値を復号するように構成される。
【0099】
一実施形態によれば、装置は、第5の可変長符号、たとえばA7を介して第2の符号なし整数を復号し、さらなる規定の逆マッピング規則に従った第2の符号なし整数からの逆マッピングによって所定の整数値を取り出すことによって、データストリームから所定の整数値を復号するように構成される。
【0100】
一実施形態によれば、装置は、指数ゴロム符号を介してデータストリームから符号なし整数を復号するように構成される。
【0101】
一実施形態によれば、装置は、データストリームから指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成される。
【0102】
一実施形態によれば、指数ゴロム符号用の指数ゴロム符号パラメータは値が7である。
【0103】
一実施形態によれば、逆マッピング規則では、偶数符号なし整数および奇数符号なし整数がそれぞれ、0よりも小さい符号付き整数および0よりも大きい符号付き整数のうちの別々の符号付き整数上にマッピングされ、ゼロの上にゼロがマッピングされ、かつ各符号付き整数について、それぞれの符号なし整数上にマッピングされる第1の符号付き整数の大きさが、それぞれの符号なし整数の後続の符号なし整数上にマッピングされる第2の符号付き整数以上になるように、符号なし整数を符号付き整数にマッピングする。
【0104】
一実施形態によれば、逆マッピング規則では、次式に従って符号なし整数Iuが符号付き整数Isにマッピングされる。
【0105】
【0106】
一実施形態によれば、装置は、第3の2値化符号を使用して1つまたは複数の第3のビンの第3の2進列から上記の数を多値化し、1つまたは複数の第3のビンをコンテキスト適応2進算術復号することによって、データストリームから所定の整数値を復号するように構成される。
【0107】
一実施形態によれば、装置は、第6の可変長符号、たとえばA4を使用することによって第1の差分をデータストリームに符号化するように構成される。
【0108】
一実施形態によれば、装置は、指数ゴロム符号を介してデータストリームから第1の差分を復号するように構成される。
【0109】
一実施形態によれば、装置は、データストリームから指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成される。このことは、整数値の2つ以上のシーケンス、たとえば2つ以上のコードブックが、データストリームから復号されるときに特に効率的である。
【0110】
一実施形態によれば、指数ゴロム符号パラメータは、0~15の範囲における値のうちの1つであり、データストリームに4ビット符号なし整数として符号化される。
【0111】
一実施形態によれば、指数ゴロム符号用の指数ゴロム符号パラメータは値が7である。
【0112】
一実施形態によれば、装置は、第2の2値化符号を使用して1つまたは複数の第4のビンの第4の2進列から上記の数を多値化し、1つまたは複数の第4のビンをコンテキスト適応2進算術復号することによって、データストリームから第1の差分を復号するように構成される。
【0113】
一実施形態によれば、装置は、第7の可変長符号、たとえばA5を介してデータストリームから第2の差分を復号するように構成される。
【0114】
一実施形態によれば、装置は、指数ゴロム符号を介してデータストリームから第2の差分を復号するように構成される。
【0115】
一実施形態によれば、装置は、データストリームから指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成される。このことは、整数値の2つ以上のシーケンス、たとえば2つ以上のコードブックが、データストリームから復号されるときに特に効率的である。
【0116】
一実施形態によれば、指数ゴロム符号パラメータは、0~15の範囲における値のうちの1つであり、データストリームに4ビット符号なし整数として符号化される。
【0117】
一実施形態によれば、指数ゴロム符号用の指数ゴロム符号パラメータは値が7である。
【0118】
一実施形態によれば、第2の差分を復号するための指数ゴロム符号用の指数ゴロム符号パラメータは、第1の差分を復号するための指数ゴロム符号用の指数ゴロム符号パラメータと同じである。
【0119】
一実施形態によれば、第1の差分および第2の差分を復号するための指数ゴロム符号用の指数ゴロム符号パラメータは、データストリームから所定の整数値を復号するための指数ゴロム符号用の指数ゴロム符号パラメータと同じである。
【0120】
一実施形態によれば、装置は、第2の2値化符号を介して1つまたは複数の第5のビンの第5の2進列から上記の数を多値化し、1つまたは複数の第5のビンをコンテキスト適応2進算術復号することによって、データストリームから第2の差分を復号するように構成される。
【0121】
一実施形態によれば、装置は、復号された整数値のシーケンスにデクラスタリングアルゴリズムを適用するように構成される。
【0122】
一実施形態によれば、整数値のシーケンスは、ニューラルネットワークのパラメータに関連付けられたコードブックである。
【0123】
一実施形態によれば、パラメータは、ニューラルネットワークの重み、バイアス、およびバッチノームパラメータのうちの1つまたは複数を含む。
【0124】
一実施形態によれば、装置は、整数値のシーケンスおよび浮動小数点量子化パラメータによって定義される量子化レベルのセットから、復号された整数値のシーケンスを複数の浮動小数点値に再構成するように構成される。
【0125】
一実施形態によれば、装置は、複数の浮動小数点値の各々について、浮動小数点量子化パラメータに従って、それぞれの浮動小数点値が量子化された量子化レベルに関連付けられた整数値のシーケンス内の関連する整数値を指し示す量子化インデックスをデータストリームから復号するように構成される。
【0126】
一実施形態によれば、浮動小数点量子化パラメータは、第1の符号付き整数量子化パラメータおよび第2の符号なし整数パラメータを含む。
【0127】
一実施形態によれば、装置は、第1の符号付き整数量子化パラメータをデータストリームに符号化するように構成され、第2の符号なし整数パラメータは固定値であり、または装置は、整数値の別のシーケンスもしくは整数値のシーケンスのセットから第2の符号なし整数パラメータを継承するように構成される。
【0128】
一実施形態によれば、装置は、第1の符号付き整数量子化パラメータおよび第2の符号なし整数パラメータをデータストリームに符号化するように構成される。
【0129】
一実施形態によれば、装置は、整数値のシーケンス内の関連する整数値の位置の第1のランクと所定の位置のランクとのランク差に基づいて、データストリームから量子化インデックスを復号するように構成される。
【0130】
一実施形態によれば、装置は、第8の可変長符号を介してデータストリームからランク差を復号するように構成される。
【0131】
一実施形態によれば、装置は、指数ゴロム符号を介してデータストリームからランク差を復号するように構成される。
【0132】
一実施形態によれば、装置は、2値化符号を使用して1つまたは複数のビンの2進列から上記の数を多値化し、1つまたは複数のビンをコンテキスト適応2進算術復号することによって、データストリームからランク差を復号するように構成される。
【0133】
一実施形態によれば、装置は、データストリームから浮動小数点量子化パラメータを復号し、浮動小数点量子化パラメータを適用することによって量子化レベルから整数値のシーケンスを再構成するように構成される。
【0134】
一実施形態によれば、浮動小数点量子化パラメータは、量子化レベル間の量子化ステップサイズを定義する。
【0135】
本発明による一実施形態は、厳密に単調に順序付けられた整数値のシーケンスをデータストリームに符号化するための方法であって、整数値のシーケンスの所定の位置、たとえばzに配置された所定の整数値、たとえばC[z]をデータストリームに符号化するステップと、整数値のシーケンスにおける所定の位置の前の各位置について、それぞれの位置のすぐ後に存在する整数値とそれぞれの位置における整数値から1を引いた値との間の第1の差分を算出するステップと、第1の差分をデータストリームに符号化するステップと、整数値のシーケンスにおける所定の位置の後に配置された各位置について、それぞれの位置における整数値とそれぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分を算出するステップと、第2の差分をデータストリームに符号化するステップとを含む方法を作成する。
【0136】
この実施形態による方法は、上記で説明した符号化のための装置と同じ要件に基づく。さらに、この開示される実施形態は、場合によっては、符号化のための装置に関連して本明細書で開示される任意の他の特徴、機能、および詳細のいずれかによって個別に補完されるとともにそれらの特徴、機能、および詳細を組み合わせて補完されてもよい。
【0137】
本発明による一実施形態は、データストリームから、厳密に単調に順序付けされた整数値のシーケンスを復号するための方法であって、整数値のシーケンスの所定の位置、たとえばzに配置された所定の整数値、たとえばC[z]をデータストリームから復号するステップと、整数値のシーケンスにおける所定の位置の前の各位置について、それぞれの位置のすぐ後に存在する整数値とそれぞれの位置における整数値から1を引いた値との間の第1の差分をデータストリームから復号するステップと、整数値のシーケンスにおける所定の位置の後に配置された各位置について、それぞれの位置における整数値とそれぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分をデータストリームから復号するステップとを含む方法を作成する。
【0138】
この実施形態による方法は、上記で説明した復号のための装置と同じ要件に基づく。さらに、この開示される実施形態は、場合によっては、復号のための装置に関連して本明細書で開示される任意の他の特徴、機能、および詳細のいずれかによって個別に補完されるとともにそれらの特徴、機能、および詳細を組み合わせて補完されてもよい。
【0139】
本発明による一実施形態は、コンピュータ上で実行されたときに、上記で説明した実施形態のうちのいずれかによる方法を実行するためのプログラムコードを有するコンピュータプログラムを作成する。
【0140】
符号化のための装置、符号化のための方法、復号のための装置、復号のための方法、およびこれらの方法を実施するためのコンピュータプログラムは、場合によっては、本明細書で(文献全体において)開示される特徴、機能、および詳細のいずれかによって個別に補完されるとともにそれらの特徴、機能、および詳細を組み合わせて補完されてもよい。
【0141】
本出願の好ましい実施形態は、以下に図に基づいて記載されている。
【図面の簡単な説明】
【0142】
【
図1】一実施形態による符号化のための方法100のフローチャートである。
【
図2】一実施形態による復号のための方法200のフローチャートである。
【
図3】一実施形態による符号化手順および復号手順の概略図である。
【発明を実施するための形態】
【0143】
一実施形態による整数値のシーケンスを符号化するための方法100が
図1に提示されている。
【0144】
方法100は、ステップ101において、符号化される整数値のシーケンスの整数値の数を符号化することと、ステップ102において、所定の位置のランクと整数値の数を整数に四捨五入した値との間の差分を算出することと、ステップ103において、この差分をデータストリームに符号化することとを含む。方法100は、ステップ104において、整数値のシーケンスの所定の位置zに配置された所定の整数値C[z]を符号化することをさらに含む。
【0145】
方法100は、整数値のシーケンスにおける所定の位置zの前の各位置について以下の符号化ステップ、すなわち、ステップ105において、それぞれの位置のすぐ後に存在する整数値とそれぞれの位置における整数値から1を引いた値との間の差分を算出することと、ステップ106において、この差分をデータストリームに符号化することとを実行することをさらに含む。
【0146】
方法100は、整数値のシーケンスにおける所定の位置zの後に配置された各位置について以下の符号化ステップ、すなわち、ステップ107において、それぞれの位置における整数値とそれぞれの位置のすぐ前に存在する整数値から1を引いた値との間の差分を算出することと、ステップ108において、この差分をデータストリームに符号化することとを実行することをさらに含む。
【0147】
しかし、方法100は、場合によっては、本明細書で開示される特徴、機能、および詳細のいずれかによって個別に補完されるとともにそれらの特徴、機能、および詳細を組み合わせて補完されてもよいことに留意されたい。
【0148】
一実施形態による整数値のシーケンスを復号するための方法200が
図2に提示されている。
【0149】
方法200は、ステップ201において、復号される整数値のシーケンスL(C)の整数値の数をデータストリームから復号することを含む。
【0150】
方法200は、ステップ202において、所定の位置のランクと整数値の数を整数に四捨五入した値との間の差分yをデータストリームから復号することと、ステップ203において、差分yおよび整数値の数に基づいて所定の位置zを算出することとをさらに含む。
【0151】
方法200は、ステップ204において、整数値のシーケンスの算出された所定の位置zに配置された所定の整数値、たとえばC[z]をデータストリームから復号することを含む。
【0152】
方法200は、整数値のシーケンスにおける所定の位置の前の各位置について以下の復号ステップ、すなわち、ステップ205において、それぞれの位置のすぐ後に存在する整数値とそれぞれの位置における整数値との間の差分d1から1を引いた値をデータストリームから復号することと、ステップ206において、第1の差分、それぞれの位置のすぐ後に存在する整数値、および1を線形に組み合わせることによってそれぞれの位置における整数値を算出することとを実行することをさらに含む。
【0153】
方法200は、整数値のシーケンスにおける所定の位置の後に配置された各位置について以下の復号ステップ、すなわち、ステップ207において、それぞれの位置における整数値とそれぞれの位置のすぐ前に存在する整数値との間の差分d2から1を引いた値をデータストリームから復号することと、ステップ208において、第2の差分、それぞれの位置のすぐ前に存在する整数値、および1を線形に組み合わせることによってそれぞれの位置における整数値を算出することとを実行することをさらに含む。
【0154】
しかし、方法200は、場合によっては、本明細書で開示される特徴、機能、および詳細のいずれかによって個別に補完されるとともにそれらの特徴、機能、および詳細を組み合わせて補完されてもよいことに留意されたい。
【0155】
以下では、整数値12のシーケンス10をどのようにデータストリーム14にコーディングするかに関していくつかの実施形態について説明する。整数値のシーケンス10は、通常のネットワークパラメータについての量子化レベルのコードブックであってもよい。シーケンス10において、整数値12は、厳密に単調に順序付けられてもよい。すなわち、整数値12は、昇順16に順序付けられてもよく、または降順18に順序付けられてもよく、整数値がシーケンス10内に2回以上出現することはない。
【0156】
整数値12は、以下のようにデータストリーム14にコーディングされる。
図3においてハッチングによって示されており、以下の実施形態ではzと示される所定の位置に配置された所定の整数値12は、たとえば、以下の実施形態ではA3と呼ばれる可変長符号を使用することによってデータストリーム14にコーディングされる。したがって、所定の整数値について、データストリーム14に符号語20が含まれる。位置zは、デフォルトで既知であってもよく、または以下の実施形態において概略的に説明するように、別の可変長符号A2を使用することによってデータストリーム14にコーディングされ、それによって、符号語22に符号化されてもよい。同様に、シーケンス10のサイズ、すなわち、シーケンス10内の整数値12の数は、デフォルトで既知であってもよく、または以下の実施形態において概略的に説明するように、以下ではA1と呼ばれる別の可変長符号を使用することなどによってデータストリーム14にコーディングされ、それによって、符号語24に符号化されてもよい。
【0157】
さらに、所定の整数値12を除く残りの整数値12がデータストリーム14にコーディングされる。この後者の整数値12は、差分によってデータストリーム14にコーディングされる。たとえば、所定の位置の上流側に配置された整数値12は、一方ではこれらの後続の整数値12の各々の差分、他方ではそれぞれの整数値のすぐ前の整数値の差分によってデータストリーム14にコーディングされる。差分は、1引かれ、別の可変長符号A5を使用することによってデータストリーム14にコーディングされ、それによって、所定の整数値12に後続する整数値12の各々について1つの符号語26にコーディングされてもよい。同様に、所定の整数値に先行する各整数値は、それぞれの整数値とそれぞれの整数値のすぐ後の整数値との間の差分の形でデータストリーム14にコーディングされる。以下により詳細に説明するように、整数値がシーケンス10内で厳密に単調に順序付けられ、各差分が別の可変長符号A4を使用してデータストリーム14にコーディングされ、それによって、シーケンス10内の所定の整数値に先行するこれらの整数値の各々について符号語28にコーディングされるように差分は1引かれる。
【0158】
所定の整数値の上流側の整数値12および下流側の整数値12が計算される際に使用される差分をどのように算出するかに関して様々な可能性が存在する。以下の実施形態において説明するように、所定の整数値に先行する整数値12がコーディングされる際の基準となる差分30の被減数は、差分30の減数の後に位置してもよく、同じことが、所定の位置の後の整数値12がデータストリーム14にコーディングされる際に使用される差分32に当てはまってもよく、すなわち、非減数が減数の後に位置してもよい。しかし、これは一例にすぎず、減数と非減数の順序を差分30と差分32の両方について切り替えてもよく、または所定の位置の一方の側のみで切り替えてもよい。
【0159】
図3に示すように、概略的に説明した符号化手順によって得られる符号語は、データストリーム14に以下の順序でコーディングされてもよく、すなわち、まずシーケンス10のサイズがコーディングされ、次いで所定の整数値の位置セットがコーディングされ、その後所定の整数値がコーディングされ、次いで、所定の位置の前の整数値12がコーディングされ、場合によってはその後、所定の位置の後の整数値12の符号語26がコーディングされる。しかし、これは1つの可能性に過ぎず、符号語28および26はたとえば、互いに対してインターリーブされるようにデータストリームにコーディングすることができる。
【0160】
図3に示すように、デコーダは、
図3に関して概略的に説明したコーディング手順を反転させる。この詳細は他の実施形態に記載される。
【0161】
以下では、整数値のシーケンスのデータストリーム、たとえばビットストリーム、たとえば符号化済みニューラルネットワークデータを含むビットストリーム、たとえばNNRビットストリームへのコーディングに関する実施形態について説明する。符号化された整数値のシーケンスの構造を擬似コード符号化の形でTable 1(表1)に示す。
【0162】
【0163】
Table 1(表1)を見るとわかるように、符号化される整数値のシーケンスは、ベクトルintegerCodebookに含められ、このベクトル内で、整数値は厳密に単調に順序付けられる。符号化の場合、エンコーダは、整数値のシーケンスの所定の位置cbZeroOffsetに配置された所定の整数値codebook_zero_valueをデータストリームに符号化する。まず、整数値のシーケンスにおける所定の位置cbZeroOffsetの前の位置が第1のforループにおいてコーディングされる。詳細には、各々のそのような位置jについて、ここでは、forループが整数値のシーケンスの開始位置に向かってこれらの位置を横切るときにpreviousValueに記憶される、それぞれの位置のすぐ後に存在する整数値と、それぞれの位置における整数値integerCodebook[j]から1を引いた値との間の第1の差分が算出され、第1の差分がデータストリームにコーディングされ、すなわち、codebook_delta_left = previousValue - integerCodebook[j] - 1となる。次いで、まず、整数値のシーケンスにおける所定の位置の後に配置された位置が第2のforループにおいてコーディングされる。整数値のシーケンスの各々のそのような位置について、それぞれの位置における整数値integerCodebook[j]と、ここでは、forループが整数値のシーケンスの終了位置に向かってこれらの位置を横切るときにpreviousValueに記憶され、第2のforループの直前に所定の整数値codebook_zero_valueによって初期設定される、それぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分が算出され、第2の差分がデータストリームにコーディングされ、すなわち、codebook_delta_right = integerCodebook[j] - previousValue - 1となる。前述のように、差分のコーディング間の順序を切り替えることができ、または場合によってはインターリーブすることができる。整数値のシーケンスを復号する場合、整数値のシーケンスの所定の位置cbZeroOffsetに配置された所定の整数値codebook_zero_valueがデータストリームから復号される。次いで、整数値のシーケンスにおける所定の位置の前の各位置について、それぞれの位置のすぐ後に存在する整数値と、それぞれの位置における整数値から1を引いた値との間の第1の差分が、データストリームから復号され、すなわち、codebook_delta_left = previousValue - integerCodebook[j] - 1となり、かつ整数値のシーケンスにおける所定の位置の後に配置された各位置について、それぞれの位置における整数値と、それぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分がデータストリームから復号され、すなわち、codebook_delta_right = integerCodebook[j] - previousValue - 1となる。
【0164】
より詳細には、整数値のシーケンスの整数値の数もデータストリームにコーディングされ、すなわち、codebook_sizeとなる。このことは、可変長符号、すなわち、2次Exp-Golomb符号を使用して行われる。
【0165】
整数値の符号化されたシーケンスの所定の位置codebook_centre_offsetに関する情報も、データストリームにコーディングされてもよい。このコーディングは、シーケンスの中央位置に対する差分に応じて行われる。すなわち、cbZeroOffset-(codebook_size>>1)=codebook_centre_offsetがコーディングされ、すなわち、所定の位置のランクcbZeroOffsetと整数値の数を整数に四捨五入した値、ここでは四捨五入された値との差分が得られ、すなわち、codebook_size>>1となる。このことは、可変長符号、すなわち、2次Exp-Golomb符号を使用して行われる。
【0166】
所定の整数値codebook_zero_valueは、7次Exp-Golomb符号を使用してコーディングされる。
【0167】
第1および第2の差分は、k次Exp-Golomb符号を使用してコーディングされ、kは、データストリームにcodebook_egkとしてコーディングされる。kは、4ビット符号なし整数としてコーディングされる。
【0168】
符号化された整数値のシーケンス、たとえばコードブック(integer_codebook)は、変数cbZeroOffsetおよびintegerCodebook、すなわち、整数値のシーケンスの所定の位置、たとえばzおよび所定の位置に配置された所定の整数値、たとえばC(z)によって定義される。
【0169】
シーケンス、たとえばコードブックを定義するパラメータは、指数ゴロム符号パラメータ、たとえばExp-Golomb符号パラメータ、たとえばk,(codebook_egk)、および整数値のシーケンスの整数値の数、たとえばコードブック内の要素の数、(codebook_size)を含む。これらのパラメータは、データストリーム、たとえばビットストリームから復号され、決定された整数値のシーケンスを作成する際に使用される。
【0170】
所定の位置(cbZeroOffset)は、所定の位置のランクと整数値の数を整数に四捨五入した値との差分(codebook_centre_offset)を使用して算出された変数(codebook_centre_offset)であり、差分はビットストリームに符号化される。変数codebook_centre_offsetは、一実施形態では第3の差分、たとえばyとして定義される。変数codebook_centre_offsetは、シーケンス、たとえばシーケンスの中心に対する、コードブック内の要素、たとえばコードブックにアクセスするためのオフセットを指定する。差分(codebook_centre_offset)は、データストリーム、たとえば、ビットストリームから復号され、決定された整数値のシーケンスを作成する際に使用される。
【0171】
符号化されたシーケンス、たとえばコードブックを定義するパラメータcodebook_zero_valueは、所定の位置(cbZeroOffset)に配置された所定の整数値(integerCodebook)、たとえば、位置CbZeroOffsetにおけるコードブックの値を指定する。このパラメータは、復号された整数値のシーケンス、たとえば変数Codebook(コードブックを表すアレイ)を作成する際に使用される。
【0172】
復号されたシーケンスを作成する際、第1の差分(codebook_delta_left)および第2の差分(codebook_delta_right)が、データストリーム、たとえばビットストリームから復号される。
【0173】
第1の差分(codebook_delta_left)は、整数値のシーケンスにおける所定の位置(cbZeroOffset)の前の各位置について、それぞれの位置のすぐ後に存在する整数値とそれぞれの位置における整数値から1を引いた値との間の差分、たとえば、中心位置の左側の値についてコードブック値とその右隣の値から1を引いた値との間の差分を指定する。第1の差分(codebook_delta_left)は、復号された整数値のシーケンス、たとえば、Table 1(表1)に示すように変数Codebook(コードブックを表すアレイ)を作成する際に使用される。整数値のシーケンスにおける所定の位置(cbZeroOffset)の前の各位置について、それぞれの位置における整数値は、第1の差分(codebook_delta_left)、それぞれの位置のすぐ後に存在する整数値(previousValue = integerCodebook[j+1])、および1を線形に組み合わせることによって算出され、次式が成立する。
integerCodebook[j] = previousValue - codebook_delta_left - 1
【0174】
第2の差分(codebook_delta_right)は、整数値のシーケンスにおける所定の位置(cbZeroOffset)の後に配置された各位置について、それぞれの位置における整数値とそれぞれの位置のすぐ前に存在する整数値から1を引いた値との差分、たとえば、中心位置の右側の値について、コードブック値とその左隣の値から1を引いた値との間の差分を指定する。第2の差分は、復号された整数値のシーケンス、たとえば、Table 1(表1)に示すように変数Codebook(コードブックを表すアレイ)を作成する際に使用される。整数値のシーケンスにおける所定の位置(cbZeroOffset)の後に配置された各位置について、それぞれの位置における整数値は、第2の差分(codebook_delta_right)、それぞれの位置のすぐ前に存在する整数値(previousValue = integerCodebook[j-1])、および1を線形に組み合わせることによって算出され、次式が成立する。
integerCodebook[j] = previousValue + codebook_delta_right + 1
【0175】
指数ゴロム符号パラメータ(codebook_egk)は、第1の差分を定義するシンタックス要素codebook_delta_leftおよび第2の差分を定義するシンタックス要素codebook_delta_rightの復号に使用される。
【0176】
しかし、Table 1(表1)を参照しながら説明した整数値のシーケンスのコーディングは、場合によっては、本明細書で開示される特徴、機能、および詳細のいずれかによって個別に補完されるかまたはそれらの特徴、機能、および詳細を組み合わせて補完されてもよいことに留意されたい。
【0177】
結論として、本発明による実施形態は、圧縮性能を向上させ、コーディング効率を改善する。
【0178】
4.さらなる実施形態および態様
以下では、本発明によるさらなる態様および実施形態について説明する。これらの態様および実施形態は、個別に使用することもでき、または本明細書で開示する任意の他の実施形態と組み合わせて使用することもできる。
【0179】
さらに、本節で開示する実施形態は、場合によっては、本明細書で開示される任意の他の特徴、機能、および詳細によって個別に補完されるとともにそれらの特徴、機能、および詳細を組み合わせて補完されてもよい。
【0180】
本発明の一実施形態によるデータ圧縮のためのコードブックのシグナリングに関する改良された概念についてさらに説明する。
【0181】
本発明によるこの実施形態は、たとえば、従来技術と比較して圧縮効率の点で改善を実現し得るコードブックの符号化および復号のための手法について説明する。本発明による実施形態は、たとえばニューラルネットワークのパラメータの圧縮のような整数値のシグナリングを含む任意のデータ圧縮アプリケーションに適用することができる。
【0182】
コードブックを使用することによって効率的に符号化される整数値のシーケンスWを考える。このことは、Wの要素間で少数の差分値しか生じないときに特に効率的にすることができる。たとえば、そのような特性を有するWは、公知のk平均アルゴリズムとそれに続くクラスタ中心の量子化の出力とすることができる。この場合、クラスタ中心はコードブックCを含む。
【0183】
コードブックCは、特定の整数値がせいぜい一度出現し得る昇順の整数値のシーケンスとするものとする。さらに、zを、たとえばゼロに等しいかまたはゼロに近いコードブック値へのオフセットとして理解することができるコードブックのz番目の要素を指し示す整数オフセットとする。
【0184】
コードブックを使用するために、Wは、Wの要素w_iが位置z+v_iにおけるコードブック要素に等しくなるようにコードブックインデックスのシーケンスVに変換される。ここでv_iは位置iにおけるVの要素である(第1の位置はi=0である)。
【0185】
実施例
C=[-20, -5, 3, 17]、z=2、およびV=[-2, -2, 1, 0, -1]とする。すると、WはC、z、およびVから再構成することができ、シーケンス[-20, -20, 17, 3, -5]が得られる。
【0186】
以下では、本発明による実施形態について説明する。
【0187】
たとえば、厳密に単調に順序付けられた整数値のシーケンスとして表されるコードブックの符号化および復号を行うための効率的な手法を提示する。この手法は、コードブックの要素、たとえば整数値のシーケンスの整数値がゼロを中心として配置され、z、たとえば所定の位置が好ましくは、小さい値を指し示すときに特に効率的になる場合がある。しかし、この手法はこれらの仮定が適用されないときでも作用する。基本的な考えとしては、まず位置z、たとえば所定の位置における要素をシグナリングし、次いで以下のように隣接する値間の差分のみを連続的にシグナリングする。
【0188】
1.符号なし整数値に符号A1、たとえば、第1の可変長符号を使用して、コードブックのサイズL(C)、たとえば整数値のシーケンスの整数値の数を符号化する。
【0189】
2.variable y=z-floor(L(C)2)、たとえば、所定の位置のランクと整数値の数を整数に四捨五入した値との間の第3の差分を算出し、符号付き整数値に符号A2、たとえば第2の可変長符号を使用してy、たとえば第3の差分を符号化する。yは、zがコードブックの中央に近い位置を指し示すときに小さくなることに留意されたい。
【0190】
3.符号付き整数値に符号A3、たとえば第4の可変長符号を使用して、C[z]、たとえば所定の整数値を符号化する。
【0191】
4.位置i = z-1, i = z-2, ... i = 0の各々について、たとえば所定の位置の前の整数値のシーケンスの位置について、以下のことを行う。
【0192】
a.差分d=C[i+1]-C[i]-1を計算し、たとえば、C[i+1]とC[i]から1を引いた値(コードブック内の隣接する値は大きさが少なくとも1異なるので)との間の第1の差分を算出する。
【0193】
b.符号なし整数値に符号A4、たとえば第6の可変長符号を使用して、d、たとえば第1の差分を符号化する。
【0194】
5.位置i = z+1, i = z+2, ... i = L(C)-1までにおいて、L(C)はコードブックの長さであり、たとえば、整数値のシーケンスの位置が所定の位置の後に続く、各位置について以下のことを行う。
【0195】
a.差分d=C[i]-C[i-1]-1を計算し、たとえばC[i]とC[i-1]から1を引いた値(コードブック内の隣接する値は大きさが少なくとも1異なるので)との間の第2の差分を算出する。
【0196】
b.符号なし整数値に符号A5、たとえば第7の可変長符号を使用して、d、たとえば第2の差分を符号化する。
【0197】
対応する復号方法は以下のように与えられる。
【0198】
1.符号なし整数値に符号A1、たとえば第1の可変長符号を使用して、変数l、たとえば整数値の数を復号し、空のコードブック、たとえば長さlの整数値の数Iを有する整数値のシーケンスを初期設定し、すなわち、コードブックL(C)の長さはlに等しい。
【0199】
2.符号付き整数値に符号A2、たとえば第2の可変長符号を使用して、変数y、たとえば第3の差分を復号し、z、たとえば所定の位置をfloor(L(C)/2)+yに設定する。
【0200】
3.符号付き整数値に符号A3、たとえば第4の可変長符号を使用して、C[z]の値、たとえば所定の位置に配置された所定の整数値を復号する。
【0201】
4.位置i = z-1、i = z-2、i = 0、たとえば整数値のシーケンスにおける所定の位置の前の位置の各々について、以下のことを行う。
【0202】
a.符号なし整数値に符号A4、たとえば第6の可変長符号を使用して、値d、たとえば第1の差分を復号する。
【0203】
b.C[i]をC[i+1]-d-1に設定する。
【0204】
5.位置i = z+1, i = z+2, ... i = L(C)-1までにおいて、L(C)、たとえば、整数値のシーケンスにおける所定の位置の後の位置は、コードブックの長さである、各位置について以下のことを行う。
【0205】
a.符号なし整数値に符号A5、たとえば第7の可変長符号を使用して、値d、たとえば第2の差分を復号する。
【0206】
b.C[i]をC[i-1]+d+1に設定する。
【0207】
符号A1~A5はたとえば、固定長符号、またはより小さい整数により短い符号語を割り当てる符号とすることができる。上記の符号化方法および復号方法の利点は、符号A1~A5によって符号化された値は小さく、したがってビットストリームが短くなることである。
【0208】
たとえば、公知の指数ゴロム符号をこの目的に使用することができ、その場合、関連する指数ゴロムパラメータkは、それぞれに異なる大きさの符号化済み値への符号長割り当てを制御する。この場合、パラメータkは、所定の値であるか、またはビットストリーム内でシグナリングされる。より大きいコードブックの場合、符号A4およびA5に指数ゴロムパラメータをシグナリングすると、符号化される値の分布に対して符号長を最適化する上で価値がある場合がある。一方、符号A1、A2、およびA3に所定の指数ゴロムパラメータkを使用すると、コードブック当たりに符号化される値は1つだけなのでより効率的になる場合がある。
【0209】
たとえば、符号A4およびA5用の指数ゴロムパラメータkである0から15の間の整数を示す4ビット値をビットストリームに書き込むことができる。
【0210】
別の例では、符号付き整数の符号化用の公知のDeepCABAC方式を符号A1~A5のいずれに使用してもよい。場合によっては、符号なし符号の場合、DeepCabacのsign_flagは符号化されない。その代わり、sign_flagはエンコーダおよびデコーダにおいて常に0である(正の値を示す)と仮定される。
【0211】
例示的な構成
例示的な構成では、本発明による実施形態は、ニューラルネットワークのパラメータに関連付けられたコードブックの符号化に適用される。
【0212】
エンコーダでは、コードブックはたとえば、k平均のようなクラスタリングアルゴリズムによって生成される。その場合、コードブック内の値は、ステップサイズパラメータ(たとえば、浮動小数点値)を含む均一な再構成量子化を使用して整数に量子化される。
【0213】
次に、量子化されたコードブック値が昇順にソートされ、潜在的な重複値が除去される。
【0214】
次に、本発明によるこの実施形態の方式を使用することによって、量子化されたコードブックが符号化され、首尾よく整数オフセットzが選択される。
【0215】
次に、パラメータ(符号化される)がコードブックインデックスに変換され、このようなコードブックインデックスが公知のDeepCABAC方式を用いて符号化される。
【0216】
整数オフセットzが首尾よく選択されるのは、たとえば、コードブックおよび関連するDeepCABAC符号化済みコードブックインデックスの符号化によって生成されるビットの和が最小化される結果であってもよいことに留意されたい。
【0217】
ステップサイズは、たとえば、第1の符号付き整数量子化パラメータQPおよび第2の符号なし整数パラメータqp_densityから導出される浮動小数点値であってもよく、この場合、QPおよび/またはqp_densityは所定の値であるか、またはビットストリーム内でシグナリングされる。
【0218】
ステップサイズ"stepSize"は、たとえば以下の数式によって算出されてもよい。
mul=(1<<qp_density)+(QP&((1<<qp_density)-1))
shift=QP>>qp_density
stepSize=mul*2shift-qp_density
【0219】
デコーダでは、コードブックおよびコードブックインデックスはビットストリームから復号される。復号されたコードブックインデックスはまず、(コードブックを整数オフセットzを含むルックアップテーブルとして使用して)量子化されたコードブック要素に再構成され、次いで量子化されたコードブック要素は、ステップサイズを使用して(たとえば、浮動小数点値に)再構成され、再構成されたニューラルネットワークパラメータが得られる。
【0220】
ニューラルネットワークパラメータはたとえば、重み、バイアス、バッチノームパラメータなどとすることができる。
【0221】
好ましい実施形態
好ましい実施形態では、符号A1~A5は可変長符号であり、より小さい整数により短い符号語を割り当てる。
【0222】
別の好ましい実施形態では、符号A2または符号A3は、まずマッピング規則Mに従って符号付き整数sを符号なし整数uにマッピングし、次いでそれぞれ符号A6またはA7を使用して符号なし整数uを符号化する符号である。
【0223】
別の好ましい実施形態では、マッピング規則Mは、以下の数式に従って符号付き整数sを符号なし整数uにマッピングする。
s<=0である場合:u=-s*2、
そうでない場合(s>0):u=s*2-1
【0224】
対応する逆マッピング(デコーダにおいて使用される)は次式のように与えられる。
uが偶数である場合((u&1)==0):s=-u/2、
そうでない場合((u&1)!=0):s=(u+1)/2
【0225】
別の好ましい実施形態では、符号A4と符号A5は同じである。
【0226】
別の好ましい実施形態では、符号A1または符号A4または符号A5または符号A6または符号A7は、次数kの指数ゴロム符号である。
【0227】
符号なし整数uを符号化するための次数kの指数ゴロム符号が以下のように与えられることに留意されたい。
while u>=(1<<k)
{
writeBits(1, 0)
u-=1<<k
k+=1
}
writeBits(1, 1)
writeBits(k, u)
【0228】
関数writeBits(n,x)は、符号なし整数xのn個の最下位ビットをビットストリームに書き込む。
【0229】
別の好ましい実施形態では、いくつかまたはすべての関連する指数ゴロム符号のパラメータkがビットストリーム内でシグナリングされる。
【0230】
別の好ましい実施形態では、符号A1~A7のうちの1つまたは複数が算術コーディングを使用する。
【0231】
別の好ましい実施形態では、符号A1、A6、およびA7はそれぞれ、次数2、2、および7の指数ゴロム符号である。
【0232】
前述の好ましい実施形態による別の好ましい実施形態では、符号A4およびA5は、同じ次数kの指数ゴロム符号であり、kは、ビットストリーム内で4ビット符号なし整数としてシグナリングされ、値0<=k<16が可能になる。
【0233】
別の好ましい実施形態では、符号A4およびA5は次数7の指数ゴロム符号である。
【0234】
結論として、本発明による実施形態は、圧縮性能と見栄えおよび低符号化レイテンシとのトレードオフを向上させ、コーディング効率を改善する。いくつかの実施形態はまた、追加のコーディング効率を実現する。
【0235】
たとえば、“Introduction"、"Sample Adaptive Offset"、"Classification for PSAO"、“Decoder"、“Encoder"、および“Some Comments"の各章においてそれぞれに異なる本発明の実施形態および態様が記載され、"Sample Adaptive Offset"の章からの特徴、機能、および詳細は場合によっては、他の実施形態のいずれかに導入されてもよい。
【0236】
しかし、任意の他の章に記載された特徴、機能、および詳細を、場合によっては、本発明による実施形態に導入することもできる。
【0237】
また、上述の章に記載された実施形態を個別に使用することができ、また、別の章における特徴、機能、および詳細によって補完することもできる。
【0238】
また、本明細書で説明する個々の態様を個別に使用することもまたは組み合わせて使用することもできることに留意されたい。したがって、詳細を前記個々の態様の各々に追加することができ、一方、前記態様のうちの別の態様には追加しないことが可能である。
【0239】
特に、実施形態は特許請求の範囲にも記載されている。特許請求の範囲に記載された実施形態は、場合によっては、本明細書で説明される特徴、機能、および詳細のいずれかによって個別に補完されるとともにそれらの特徴、機能、および詳細を組み合わせて補完されてもよい。
【0240】
本開示がビデオエンコーダ(入力ビデオ信号の符号化された表現を提供するための装置)およびビデオデコーダ(ビデオ信号の符号化された表現に基づいてビデオ信号の復号された表現を提供するための装置)において使用できる特徴について明示的または暗黙的に説明していることにも留意されたい。したがって、本明細書で説明する特徴のいずれかをビデオエンコーダの文脈およびビデオデコーダの文脈で使用することができる。
【0241】
さらに、方法に関して本明細書で開示された特徴および機能を(そのような機能を実行するように構成された)装置において使用することもできる。さらに、装置に関して本明細書で開示された任意の特徴および機能を対応する方法において使用することもできる。言い換えれば、本明細書で開示された方法は、装置に関して説明した特徴および機能のいずれかによって補完することができる。
【0242】
また、「代替実施形態」節で説明するように、本明細書で説明する特徴および機能のいずれかをハードウェアもしくはソフトウェアにおいて実装するか、またはハードウェアとソフトウェアの組合せを使用して実装することもできる。
【0243】
代替実施形態
いくつかの態様について装置の文脈で説明したが、これらの態様がまた、対応する方法の説明を表し、ブロックまたはデバイスが、方法ステップまたは方法ステップの特徴に相当することは明らかである。同様に、方法ステップの文脈において説明した態様はまた、対応する装置の対応するブロックまたは品目または特徴の記載を表す。方法ステップのいくつかまたはすべてが、たとえば、マイクロプロセッサ、プログラマブルコンピュータ、または電子回路のようなハードウェア装置によって(またはハードウェア装置を使用して)実行されてもよい。いくつかの実施形態では、最も重要な方法ステップのうちの1つまたは複数がそのような装置によって実行されてもよい。
【0244】
いくつかの実装要件に応じて、本発明の実施形態をハードウェアにおいて実装することもまたはソフトウェアにおいて実装することもできる。実装は、デジタル記憶媒体、たとえば、フロッピィディスク、DVD、Blue-Ray、CD、ROM、PROM、EPROM、EEPROM、またはFLASH(登録商標)メモリを使用して行うことができ、デジタル記憶媒体には、電子的に読み取り可能な制御信号が記憶されており、電子的に読み取り可能な制御信号は、それぞれの方法が実行されるようにプログラマブルコンピュータシステムと協働する(または協働することができる)。したがって、デジタル記憶媒体はコンピュータ読み取り可能であってもよい。
【0245】
本発明によるいくつかの実施形態は、電子的に読み取り可能な制御信号を有するデータキャリアを備え、電子的に読み取り可能な制御信号は、プログラム可能なコンピュータシステムと協働することができ、それによって、本明細書で説明する方法のうちの1つが実行される。
【0246】
概して、本発明の実施形態は、プログラムコードを含むコンピュータプログラム製品として実装することができ、プログラムコードは、コンピュータ上でコンピュータプログラム製品が実行されたときに方法のうちの1つを実行するように動作可能である。プログラムコードは、たとえば機械読み取り可能キャリア上に記憶されてもよい。
【0247】
他の実施形態は、本明細書で説明した方法のうちの1つを実行するためのコンピュータプログラムを備え、コンピュータプログラムは、機械読み取り可能なキャリア上に記憶される。
【0248】
したがって、言い換えれば、本発明の方法の実施形態は、コンピュータプログラムがコンピュータ上で実行されるときに、本明細書で説明した方法のうちの1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0249】
本発明の方法のさらなる実施形態は、本明細書で説明した方法のうちの1つを実行するためのコンピュータプログラムが記録されたデータキャリア(またはデジタル記憶媒体またはコンピュータ可読媒体)である。データキャリア、デジタル記憶媒体、または記録媒体は一般に、有形でありならびに/または非一時的である。
【0250】
したがって、本発明の方法のさらなる実施形態は、本明細書で説明した方法のうちの1つを実行するためのコンピュータプログラムを表すデータストリームまたは信号のシーケンスである。データストリームまたは信号のシーケンスはたとえば、データ通信接続、たとえばインターネットを介して転送されるように構成されてもよい。
【0251】
さらなる実施形態は、本明細書で説明する方法のうちの1つを実行するように構成されるかまたは適応されている処理手段、たとえばコンピュータまたはプログラマブル論理デバイスを備える。
【0252】
さらなる実施形態は、本明細書で説明する方法のうちの1つを実行するためのコンピュータプログラムがインストールされたコンピュータを備える。
【0253】
本発明によるさらなる実施形態は、本明細書で説明した方法のうちの1つを実行するためのコンピュータプログラムを(たとえば、電子的または光学的に)受信機に転送するように構成された装置またはシステムを備える。受信機は、たとえば、コンピュータ、モバイルデバイス、メモリデバイスなどであってもよい。装置またはシステムは、たとえば、コンピュータプログラムを受信機に転送するためのファイルサーバを備えてもよい。
【0254】
いくつかの実施形態では、プログラマブル論理デバイス(たとえば、フィールドプログラマブルゲートアレイ)を使用して本明細書で説明する方法の機能のいくつかまたはすべてを実行してもよい。いくつかの実施形態では、フィールドプログラマブルゲートアレイは、マイクロプロセッサと協働して本明細書で説明した方法のうちの1つを実行してもよい。概して、方法は好ましくは、任意のハードウェア装置によって実行される。
【0255】
本明細書で説明した装置は、ハードウェア装置を使用して実装されても、またはコンピュータを使用して実装されても、またはハードウェア装置とコンピュータの組合せを使用して実装されてもよい。
【0256】
本明細書で説明した装置、または本明細書で説明した装置の任意の構成要素は、少なくとも部分的にハードウェアおよび/またはソフトウェアにおいて実装されてもよい。
【0257】
本明細書で説明した方法は、ハードウェア装置を使用して実行されても、またはコンピュータを使用して実行されても、またはハードウェア装置とコンピュータの組合せを使用して実行されてもよい。
【0258】
本明細書で説明した方法、または本明細書で説明した装置の任意の構成要素は、少なくとも部分的にハードウェアおよび/またはソフトウェアによって実行されてもよい。
【0259】
本明細書で説明した実施形態は、本発明の原則を例示するものに過ぎない。当業者には、本明細書で説明した構成および詳細の修正実施形態および変形実施形態が明らかであろうことを理解されたい。したがって、係属中の特許請求の範囲によってのみ限定されることが意図され、本明細書の実施形態の説明を介して提示される特定の詳細事項によって限定されることは意図されない。
【符号の説明】
【0260】
10 シーケンス
12 整数値
14 データストリーム
16 昇順
18 降順
22、24、26、28 符号語
30、32 差分
100 方法
200 方法
A1、A2、A3、A4、A5、A6、A7 可変長符号
C[z] 所定の整数値
d1、d2 差分
z 所定の位置
【手続補正書】
【提出日】2023-02-22
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データストリームから、厳密に単調に順序付けされた整数値のシーケンスを復号するための装置であって、
前記整数値のシーケンスの所定の位置(z)に配置された所定の整数値(C[z])を前記データストリームから復号し(204)、
前記整数値のシーケンスにおける前記所定の位置の前の各位置について、
前記それぞれの位置のすぐ後に存在する整数値と前記それぞれの位置における前記整数値から1を引いた値との間の第1の差分を前記データストリームから復号し(205)、
前記整数値のシーケンスにおける前記所定の位置の後に配置された各位置について、
前記それぞれの位置における前記整数値と前記それぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分を前記データストリームから復号する(207)ように構成された装置。
【請求項2】
前記データストリームから前記整数値のシーケンスの整数値の数を復号する(201)ように構成された、請求
項1に記載の装置。
【請求項3】
第1の可変長符号[A1]を使用することによって前記データストリームから前記整数値のシーケンスの整数値の数を復号するように構成された、請求
項2に記載の装置。
【請求項4】
指数ゴロム符号を使用することによって前記データストリームから前記整数値のシーケンスの整数値の数を復号するように構成された、請求
項2に記載の装置。
【請求項5】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求
項4に記載の装置。
【請求項6】
前記指数ゴロム符号用の指数ゴロム符号パラメータは値が2である、請求
項4に記載の装置。
【請求項7】
1つまたは複数の第1のビンにおける第1の2進列からの第1の2値化符号を介して前記整数値のシーケンスの整数値の数を多値化し、前記データストリームから前記1つまたは複数の第1のビンをコンテキスト適応2進算術復号することによって前記データストリームから前記数を復号するように構成された、請求
項2から4のいずれか一項に記載の装置。
【請求項8】
前記データストリームから前記所定の位置を示す情報を復号するように構成された、請求
項1に記載の装置。
【請求項9】
前記所定の位置の前の前記位置のシーケンスにおける各位置について、
前記第1の差分、前記それぞれの位置のすぐ後に存在する前記整数値、および1を線形に組み合わせることによって前記それぞれの位置における前記整数値を算出し(206)、
前記所定の位置の後に配置された前記位置のシーケンスにおける各位置について、
前記第2の差分、前記それぞれの位置のすぐ前に存在する前記整数値、および1を線形に組み合わせることによって前記それぞれの位置における前記整数値を算出する(208)ように構成された、請求
項1から8のいずれか一項に記載の装置。
【請求項10】
前記データストリームから前記所定の位置のランクと前記整数値の数を整数に四捨五入した値との間の第3の差分を復号し(202)、
前記第3の差分および前記整数値の数に基づいて前記所定の位置を算出する(203)ように構成された、請求
項1から9のいずれか一項に記載の装置。
【請求項11】
第2の可変長符号[A2]を介して前記データストリームから前記第3の差分を復号するように構成された、請求
項10に記載の装置。
【請求項12】
指数ゴロム符号を介して前記データストリームから前記第3の差分を復号するように構成された、請求
項10に記載の装置。
【請求項13】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求
項12に記載の装置。
【請求項14】
第3の可変長符号[A6]を使用して第1の符号なし整数を復号し、
所定の逆マッピング規則に従って前記第1の符号なし整数から逆マッピングすることによって前記第3の差分を取り出すことによって、前記データストリームから前記第3の差分を復号するように構成された、請求
項10に記載の装置。
【請求項15】
指数ゴロム符号を使用することによって前記データストリームから前記符号なし整数を復号するように構成された、請求
項14に記載の装置。
【請求項16】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求
項15に記載の装置。
【請求項17】
指数ゴロム符号用の指数ゴロム符号パラメータは値が2である、請求
項15に記載の装置。
【請求項18】
前記逆マッピング規則では、偶数符号なし整数および奇数符号なし整数がそれぞれ、0よりも小さい符号付き整数および0よりも大きい符号付き整数のうちの別々の符号付き整数上にマッピングされ、ゼロの上にゼロがマッピングされ、かつ各符号付き整数について、前記それぞれの符号なし整数上にマッピングされる第1の符号付き整数の大きさが、前記それぞれの符号なし整数の後続の符号なし整数上にマッピングされる第2の符号付き整数以上になるように、符号なし整数を符号付き整数にマッピングする、請求
項14に記載の装置。
【請求項19】
前記逆マッピング規則では、次式
【数1】
に従って符号なし整数Iuが符号付き整数Isにマッピングされる、請求
項18に記載の装置。
【請求項20】
第2の2値化符号を介して1つまたは複数の第2のビンの第2の2進列から前記数を多値化し、前記1つまたは複数の第2のビンをコンテキスト適応2進算術復号することによって、前記データストリームから前記第3の差分を復号するように構成された、請求
項10から19のいずれか一項に記載の装置。
【請求項21】
第4の可変長符号[A3]を介して前記データストリームから前記所定の整数値を復号するように構成された、請求
項1から20のいずれか一項に記載の装置。
【請求項22】
指数ゴロム符号を介して前記データストリームから前記所定の整数値を復号するように構成された、請求
項1から21のいずれか一項に記載の装置。
【請求項23】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求
項22に記載の装置。
【請求項24】
第5の可変長符号[A7]を介して第2の符号なし整数を復号し、
さらなる規定の逆マッピング規則に従った前記第2の符号なし整数からの逆マッピングによって前記所定の整数値を取り出すことによって、前記データストリームから前記所定の整数値を復号するように構成された、請求
項1から23のいずれか一項に記載の装置。
【請求項25】
指数ゴロム符号を使用することによって前記データストリームから前記符号なし整数を復号するように構成された、請求
項24に記載の装置。
【請求項26】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求
項25に記載の装置。
【請求項27】
前記指数ゴロム符号用の指数ゴロム符号パラメータは値が7である、請求
項25に記載の装置。
【請求項28】
前記逆マッピング規則では、偶数符号なし整数および奇数符号なし整数がそれぞれ、0よりも小さい符号付き整数および0よりも大きい符号付き整数のうちの別々の符号付き整数上にマッピングされ、ゼロの上にゼロがマッピングされ、かつ各符号付き整数について、前記それぞれの符号なし整数上にマッピングされる第1の符号付き整数の大きさが、前記それぞれの符号なし整数の後続の符号なし整数上にマッピングされる第2の符号付き整数以上になるように、符号なし整数を符号付き整数にマッピングする、請求
項24から27のいずれか一項に記載の装置。
【請求項29】
前記逆マッピング規則では、次式
【数2】
に従って符号なし整数Iuが符号付き整数Isにマッピングされる、請求
項24から27のいずれか一項に記載の装置。
【請求項30】
第3の2値化符号を使用して1つまたは複数の第3のビンの第3の2進列から前記数を多値化し、前記1つまたは複数の第3のビンをコンテキスト適応2進算術復号することによって、前記データストリームから前記所定の整数値を復号するように構成された、請求
項1から22のいずれか一項に記載の装置。
【請求項31】
第6の可変長符号[A4]を使用することによって前記第1の差分を前記データストリームに符号化するように構成された、請求
項1から30のいずれか一項に記載の装置。
【請求項32】
指数ゴロム符号を介して前記データストリームから前記第1の差分を復号するように構成された、請求
項1から31のいずれか一項に記載の装置。
【請求項33】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求
項32に記載の装置。
【請求項34】
前記指数ゴロム符号パラメータは、0~15の範囲における値のうちの1つであり、前記データストリームに4ビット符号なし整数として符号化される、請求
項33に記載の装置。
【請求項35】
前記指数ゴロム符号用の指数ゴロム符号パラメータは値が7である、請求
項32に記載の装置。
【請求項36】
第2の2値化符号を使用して1つまたは複数の第4のビンの第4の2進列から前記数を多値化し、前記1つまたは複数の第4のビンをコンテキスト適応2進算術復号することによって、前記データストリームから前記第1の差分を復号するように構成された、請求
項1から35のいずれか一項に記載の装置。
【請求項37】
第7の可変長符号[A5]を介して前記データストリームから前記第2の差分を復号するように構成された、請求
項1から36のいずれか一項に記載の装置。
【請求項38】
指数ゴロム符号を介して前記データストリームから前記第2の差分を復号するように構成された、請求
項1から37のいずれか一項に記載の装置。
【請求項39】
前記データストリームから前記指数ゴロム符号用の指数ゴロム符号パラメータを復号するように構成された、請求
項38に記載の装置。
【請求項40】
前記指数ゴロム符号パラメータは、0~15の範囲における値のうちの1つであり、前記データストリームに4ビット符号なし整数として符号化される、請求
項39に記載の装置。
【請求項41】
前記指数ゴロム符号用の指数ゴロム符号パラメータは値が7である、請求
項38に記載の装置。
【請求項42】
前記第2の差分を復号するための前記指数ゴロム符号用の前記指数ゴロム符号パラメータは、前記第1の差分を復号するための前記指数ゴロム符号用の前記指数ゴロム符号パラメータと同じである、請求
項39から41のいずれか一項に記載の装置。
【請求項43】
前記第1の差分および前記第2の差分を復号するための前記指数ゴロム符号用の前記指数ゴロム符号パラメータは、前記データストリームから前記所定の整数値を復号するための前記指数ゴロム符号用の前記指数ゴロム符号パラメータと同じである、請求
項42に記載の装置。
【請求項44】
第2の2値化符号を介して1つまたは複数の第5のビンの第5の2進列から前記数を多値化し、前記1つまたは複数の第5のビンをコンテキスト適応2進算術復号することによって、前記データストリームから前記第2の差分を復号するように構成された、請求
項1から43のいずれか一項に記載の装置。
【請求項45】
前記復号された整数値のシーケンスにデクラスタリングアルゴリズムを適用するように構成された、請求
項1から44のいずれか一項に記載の装置。
【請求項46】
前記整数値のシーケンスは、ニューラルネットワークのパラメータに関連付けられたコードブックである、請求
項1から45のいずれか一項に記載の装置。
【請求項47】
前記パラメータは、前記ニューラルネットワークの重み、バイアス、およびバッチノームパラメータのうちの1つまたは複数を含む、請求
項46に記載の装置。
【請求項48】
前記整数値のシーケンスおよび浮動小数点量子化パラメータによって定義される量子化レベルのセットから、前記復号された整数値のシーケンスを複数の浮動小数点値に再構成するように構成された、請求
項1から47のいずれか一項に記載の装置。
【請求項49】
前記複数の浮動小数点値の各々について、前記浮動小数点量子化パラメータに従って、前記それぞれの浮動小数点値が量子化された量子化レベルに関連付けられた前記整数値のシーケンス内の前記関連する整数値を指し示す量子化インデックスを前記データストリームから復号するように構成された、請求
項48に記載の装置。
【請求項50】
前記浮動小数点量子化パラメータは、第1の符号付き整数量子化パラメータおよび第2の符号なし整数パラメータを含む、請求
項48およ
び49のいずれか一項に記載の装置。
【請求項51】
前記第1の符号付き整数量子化パラメータを前記データストリームに符号化するように構成され、前記第2の符号なし整数パラメータは固定値であり、または前記装置は、整数値の別のシーケンスもしくは整数値のシーケンスのセットから前記第2の符号なし整数パラメータを継承するように構成される、請求
項50に記載の装置。
【請求項52】
前記第1の符号付き整数量子化パラメータおよび前記第2の符号なし整数パラメータを前記データストリームに符号化するように構成された、請求
項50に記載の装置。
【請求項53】
前記整数値のシーケンス内の前記関連する整数値の前記位置の第1のランクと前記所定の位置のランクとのランク差に基づいて、前記データストリームから前記量子化インデックスを復号するように構成された、請求
項49に記載の装置。
【請求項54】
第8の可変長符号を介して前記データストリームから前記ランク差を復号するように構成された、請求
項49に記載の装置。
【請求項55】
指数ゴロム符号を介して前記データストリームから前記ランク差を復号するように構成された、請求
項49に記載の装置。
【請求項56】
2値化符号を使用して1つまたは複数のビンの2進列から前記数を多値化し、前記1つまたは複数のビンをコンテキスト適応2進算術復号することによって、前記データストリームから前記ランク差を復号するように構成された、請求
項49から54のいずれか一項に記載の装置。
【請求項57】
前記データストリームから浮動小数点量子化パラメータを復号し、前記浮動小数点量子化パラメータを適用することによって量子化レベルから前記整数値のシーケンスを再構成するように構成された、請求
項1から56のいずれか一項に記載の装置。
【請求項58】
前記浮動小数点量子化パラメータは、前記量子化レベル間の量子化ステップサイズを定義する、請求
項57に記載の装置。
【請求項59】
厳密に単調に順序付けられた整数値のシーケンスをデータストリームに符号化するための装置であって、
前記整数値のシーケンスの所定の位置(z)に配置された所定の整数値(C[z])を前記データストリームに符号化し(104)、
前記整数値のシーケンスにおける前記所定の位置(z)の前の各位置について、
前記それぞれの位置のすぐ後に存在する整数値と前記それぞれの位置における前記整数値から1を引いた値との間の第1の差分を算出し(105)、
前記第1の差分を前記データストリームに符号化し(106)、
前記整数値のシーケンスにおける前記所定の位置の後に配置された各位置について、
前記それぞれの位置における前記整数値と前記それぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分を算出し(107)、
前記第2の差分を前記データストリームに符号化するように構成された装置。
【請求項60】
データストリームから、厳密に単調に順序付けされた整数値のシーケンスを復号するための方法であって、
前記整数値のシーケンスの所定の位置(z)に配置された所定の整数値(C[z])を前記データストリームから復号するステップと、
前記整数値のシーケンスにおける前記所定の位置の前の各位置について、
前記それぞれの位置のすぐ後に存在する整数値と前記それぞれの位置における前記整数値から1を引いた値との間の第1の差分を前記データストリームから復号するステップと、
前記整数値のシーケンスにおける前記所定の位置の後に配置された各位置について、
前記それぞれの位置における前記整数値と前記それぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分を前記データストリームから復号するステップとを含む方法。
【請求項61】
厳密に単調に順序付けられた整数値のシーケンスをデータストリームに符号化するための方法であって、
前記整数値のシーケンスの所定の位置(z)に配置された所定の整数値(C[z])を前記データストリームに符号化するステップと、
前記整数値のシーケンスにおける前記所定の位置(z)の前の各位置について、
前記それぞれの位置のすぐ後に存在する整数値と前記それぞれの位置における前記整数値から1を引いた値との間の第1の差分を算出するステップと、
前記第1の差分を前記データストリームに符号化するステップと、
前記整数値のシーケンスにおける前記所定の位置の後に配置された各位置について、
前記それぞれの位置における前記整数値と前記それぞれの位置のすぐ前に存在する整数値から1を引いた値との間の第2の差分を算出するステップと、
前記第2の差分を前記データストリームに符号化するステップとを含む方法。
【請求項62】
コンピュータ上で実行されたときに、請求
項60から61のいずれか一項に記載の方法を実行するためのプログラムコードを有するコンピュータプログラム。
【国際調査報告】