KR20230026422A - 정수값의 시퀀스를 인코딩 및 디코딩하는 장치, 정수값의 시퀀스를 인코딩 및 디코딩하는 방법 및 이러한 방법을 구현하기 위한 컴퓨터 프로그램 - Google Patents

정수값의 시퀀스를 인코딩 및 디코딩하는 장치, 정수값의 시퀀스를 인코딩 및 디코딩하는 방법 및 이러한 방법을 구현하기 위한 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20230026422A
KR20230026422A KR1020237001743A KR20237001743A KR20230026422A KR 20230026422 A KR20230026422 A KR 20230026422A KR 1020237001743 A KR1020237001743 A KR 1020237001743A KR 20237001743 A KR20237001743 A KR 20237001743A KR 20230026422 A KR20230026422 A KR 20230026422A
Authority
KR
South Korea
Prior art keywords
integer
data stream
code
exponential
difference
Prior art date
Application number
KR1020237001743A
Other languages
English (en)
Inventor
폴 핫세
카르스텐 뮐러
하이너 키르히호퍼
데틀레브 마르페
하이코 쉬바르츠
토마스 비간드
Original Assignee
프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 filed Critical 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우
Publication of KR20230026422A publication Critical patent/KR20230026422A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • H03M7/4068Parameterized codes
    • H03M7/4075Golomb codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 정수값의 시퀀스를 인코딩하는 인코딩 방식에 대해 설명하는데, 특히 먼저 미리 결정된 위치의 값을 인코딩한 다음 이웃하는 값들 사이의 차분을 연속적으로 계산하고 인코딩하는 방식을 사용한다. 각각의 디코딩 방식도 제공된다. 이러한 인코딩 및 디코딩 방식을 보다 효율적인 인코딩 개념을 제공한다.

Description

정수값의 시퀀스를 인코딩 및 디코딩하는 장치, 정수값의 시퀀스를 인코딩 및 디코딩하는 방법 및 이러한 방법을 구현하기 위한 컴퓨터 프로그램
본 출원은 정수값의 시퀀스를 인코딩하는 것에 관한 것으로, 특히 미리 결정된 위치에서 값을 먼저 인코딩한 다음 이웃 값들 간의 차이를 연속적으로 계산하고 인코딩함에 의한 것이다.
본 발명에 따른 실시예는 정수값의 시퀀스를 인코딩하기 위한 장치에 관한 것이다.
본 발명에 따른 추가 실시예는 정수값의 시퀀스를 디코딩하기 위한 장치에 관한 것이다.
본 발명에 따른 추가 실시예는 정수값의 시퀀스를 인코딩하는 방법에 관한 것이다.
본 발명에 따른 추가 실시예는 정수값의 시퀀스를 디코딩하는 방법에 관한 것이다.
본 발명에 따른 추가 실시예는 정수값의 시퀀스를 인코딩 및 디코딩하는 방법을 수행하기 위한 컴퓨터 프로그램에 관한 것이다.
본 발명은 예를 들어 신경망 파라미터의 압축과 같은 정수값의 시그널링을 수반하는 임의의 데이터 압축 애플리케이션에 적용될 수 있다.
값 시퀀스의 인코딩 및 디코딩을 위한 다수의 장치 및 방법이 현재 알려져 있다.
그러나, 알려진 장치 및 방법은 코드 길이로 인해 상당한 비트스트림 대역폭을 필요로 하며, 시퀀스의 요소 사이에서 소수의 다른 값이 발생할 때만 효율적이다.
상기의 관점에서, 개선된 압축 성능을 제공하여 개선된 코딩 효율로 이어지는 코딩 개념을 생성하고자 하는 바램이 있다.
따라서, 본 발명의 목적은 보다 효율적인 인코딩 개념을 제공하는 것이다. 이 목적은 계류중인 독립항의 요지에 의해 달성된다.
추가적인 유리한 측면은 종속항의 요지이다.
본 발명에 따른 실시예는 강한 단조 방식(strict monotonous manner)으로 정렬된 정수값의 시퀀스, 예를 들어 코드북을 데이터 스트림, 예를 들어 비트스트림으로 인코딩하기 위한 장치를 생성한다. 장치는 정수값의 시퀀스의 미리 결정된 위치(z)에 위치한 미리 결정된 정수값, 예를 들어 C[z]를 데이터 스트림으로 인코딩하고; 또한 미리 결정된 위치에 선행하는 정수값의 시퀀스의 각각의 위치, 예를 들어 z에 대해 각각의 위치 바로 다음에 존재하는 정수값과 각각의 위치에 있는 정수값 사이의 제1 차분을 1만큼 감소시켜 계산하고; 상기 제1 차분을 데이터 스트림으로 인코딩하고; 미리 결정된 위치 다음에 위치하는 정수값의 시퀀스의 각각의 위치에 대해, 각각의 위치에 있는 정수값과 각각의 위치 바로 앞에 존재하는 정수값 사이의 제2 차분을 1만큼 감소시켜 계산하고; 또한 제2 차분을 데이터 스트림으로 인코딩하도록 구성된다.
본 실시예는 시퀀스의 미리 결정된 위치에 위치한 시퀀스의 미리 결정된 정수값을 먼저 인코딩한 후, 결과적으로 이웃하는 값들 간의 차이만을 시그널링함으로써 압축 성능이 향상된다는 발견에 기초한다.
여기에 교시된 바와 같은 정수값의 시퀀스의 코딩은 시퀀스를 두 부분으로 나누고, 시퀀스를 따라 하나는 미리 결정된 위치에 선행하는 것이고, 다른 하나는 미리 결정된 위치의 다음의 것이라는 점은 주목할 가치가 있다. 신경망 파라미터와 같은 파라미터의 양자화 수준의 코드북과 같이 코딩될 많은 시퀀스는 규모가 다소 작은 특정 정수값을 중심으로 한 값의 분포를 나타내며, 이는 미리 결정된 위치에서 미리 결정된 정수값을 형성하는 데 사용될 수 있으며, 여기서 그 중심 주변에 높은 정수값 밀도가 발생하고, 중심에서 멀어질수록 연속되는 정수값 사이에는 큰 간격이 구현된다. 이것은 시퀀스의 첫 번째 또는 마지막 정수값을 코딩하고 다음으로 모든 다른 값들을 이 첫 번째 또는 마지막에 대해 별개로 코딩하는 것과 비교하여 바로 이웃하는 정수값의 쌍에 대해 다른 정수값에 대한 차분(1만큼 감소시켜)을 코딩하는 것과 별개로 미리 결정된 정수값을 코딩하는 것은 하나의 큰 정수값을 코딩하지 않을 수 있도록 한다는 것을 의미한다. 해당 절약은 데이터 스트림의 미리 결정된 위치에 대한 정보를 코딩하는 경우에는 심지어 추가 오버헤드를 초과보상한다.
또한, 많은 애플리케이션에서 신경망 파라미터와 같은 파라미터의 특정 모집단을 양자화하는 데 사용되는 지수는 그들이 가리키는 코드북의 정수값들 사이에 분포가 있으며, 그 자체는 시퀀스의 정수값의 중심이 있는 미리 결정된 위치에 중심을 두거나 그 근처에 있다. 이는 데이터 스트림으로 코딩된 경우에, 시퀀스/코드북을 가리키는 모든 파라미터에 대한 양자화 인덱스에 대한 오프셋 즉, 지수 빼기 미리 결정된 위치(z)는 시퀀스 또는 코드북 내의 정수값의 랭크 위치 대신에 각각의 파라미터에 대해 직접 코딩/디코딩할 수 있으므로, 미리 결정된 위치에 대한 정보를 효율적으로 재사용할 수 있도록 한다. 양자화 인덱스의 시퀀스/코드북으로의 대응하는 차분/오프셋 코딩 만이 아니라 재사용은 신경망(NN) 파라미터와 같은 파라미터의 코딩을 보다 효율적으로 만든다.
일 실시예에 따르면, 장치는 데이터 스트림, 예를 들어 비트스트림, 정수값의 시퀀스의 정수값의 수, 예를 들어 코드북의 크기, 예를 들어 L(C) 또는 코드북의 길이를 인코딩하도록 구성된다. 이는 코드북의 크기 정보를 재사용할 수 있도록 한다. 데이터 스트림으로의 인코딩된 정수값의 시퀀스는 코드북의 미리 결정된 위치의 랭크 및 중심을 결정하는 데 사용될 수 있다. 일 실시예에 따르면, 장치는 제1 가변 길이 코드(예: A1)를 사용하여 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로 인코딩하도록 구성된다. 제1 가변 길이 코드는 예를 들어 더 작은 크기를 갖는 정수에 더 짧은 코드 워드를 할당할 수 있다. 제1 가변 길이 코드는 예를 들어 무부호 정수값에 대한 코드일 수 있다.
일 실시예에 따르면, 장치는 지수 골룸 코드를 사용하여 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로 인코딩하도록 구성된다. 예를 들어 지수 골룸 코드의 파라미터 예를 들어 k는 인코딩된 값의 다른 크기에 대한 코드 길이 할당을 제어할 수 있다. 지수 골룸 코드를 사용하면 보다 효율적인 코딩 접근 방식을 제공한다.
일 실시예에 따르면, 장치는 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된다. 따라서 개선된 코딩 효율이 제공된다.
일 실시예에 따르면, 지수 골롬 코드에 대한 지수 골롬 코드 파라미터는 2의 값이다. 제1 가변 길이 코드에 대해 소정의 지수 골롬 코드 파라미터를 사용하는 것은 정수값의 시퀀스 예를 들면 코드북 당 하나의 값만 인코딩되기 때문에 보다 효율적이다.
일 실시예에 따르면, 장치는 제1 이진화 코드를 이용하여 이 수를 하나 이상의 제1 빈의 제1 이진 스트링으로 이진화하고 하나 이상의 제1 빈을 콘텍스트 적응형 이진 산술 코딩(context-adaptive binary arithmetic coding)함으로써 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로 인코딩하도록 구성된다. 무손실 이진화 코딩으로 인해 코딩 효율이 떨어지지 않는다.
일 실시예에 따르면, 장치는 미리 결정된 위치, 예를 들어 z를 드러내는 정보를 데이터 스트림으로 인코딩하도록 구성된다. 이는 미리 결정된 위치에 대한 정보를 재사용할 수 있도록 한다.
일 실시예에 따르면, 장치는 정수값의 시퀀스 내의 여러 위치 중에서 미리 결정된 위치를 선택하고 여러 위치 중 하나의 위치를 미리 결정된 기준을 충족하는 미리 결정된 위치로서 선택하도록 구성된다. 예를 들어, 정수값의 시퀀스의 정수값이 0을 중심으로 하는 경우, 미리 결정된 위치, 예를 들어 z는 효율적인 코딩 접근 방식을 제공하기 위해 작은 크기를 가진 값을 가리키는 것이 바람직하다.
일 실시예에 따르면, 장치에서 정수값의 시퀀스를 데이터 스트림으로 인코딩하기 위한 미리 결정된 기준은 최저 비트레이트이다.
일 실시예에 따르면, 장치는 미리 결정된 위치의 랭크와 정수값의 수의 정수 근사화된 절반(integer-rounded half of the number of integer values) 사이의 제3 차분을 계산하고, 제3 차분을 데이터 스트림으로 인코딩하도록 구성된다. 예를 들어 제3 차분은 다음과 같이 계산된다.
Figure pct00001
.
예를 들어 변수 y는 z가 시퀀스의 중간에 가까운 위치를 가리킬 때 작다. 따라서 효율적인 코딩 접근 방식이 제공된다.
일 실시예에 따르면, 장치는 예를 들어 A2와 같은 제2 가변 길이 코드를 사용하여 제3 차분을 데이터 스트림으로 인코딩하도록 구성된다. 제2 가변 길이 코드는 예를 들어 부호 정수값에 대한 코드이다.
일 실시예에 따르면, 장치는 지수 골룸 코드를 사용하여 제3 차분을 데이터 스트림으로 인코딩하도록 구성된다. 예를 들어 지수 골룸 코드의 파라미터 예를 들어 k는 예를 들어 인코딩된 값의 다른 크기에 대한 코드 길이 할당을 제어할 수 있다. 지수 골룸 코드를 사용하면 보다 효율적인 코딩 접근 방식을 제공한다.
일 실시예에 따르면, 장치는 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된다. 따라서 개선된 코딩 효율이 제공된다.
일 실시예에 따르면, 장치는 미리 정의된 매핑 규칙에 따라 제3 차분을 제1 무부호 정수에 매핑함으로써 제3 차분을 데이터 스트림으로 인코딩하고; 및 예를 들어 A6과 같은 제3 가변 길이 코드를 사용하여 제1 무부호 정수를 인코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골롬 코드를 사용하여 무부호 정수를 데이터 스트림으로 인코딩하도록 구성된다. 지수 골룸 코드를 사용하면 보다 효율적인 코딩 접근 방식을 제공한다.
일 실시예에 따르면, 장치는 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된다. 따라서 개선된 코딩 효율이 제공된다.
일 실시예에 따르면, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 2의 값이다. 미리 결정된 지수 골룸 코드 파라미터를 사용하는 것이 더 효율적일 수 있다.
일 실시예에 따르면, 매핑 규칙은 0보다 작은 부호 정수와 0보다 큰 부호 정수가 각각 짝수 무부호 정수와 홀수 무부호 정수 중 별도의 정수에 매핑되고, 0은 0에 매핑되는 방식으로 부호 정수를 무부호 정수에 매핑하는 것으로, 각각의 무부호 정수에 대해 각각의 무부호 정수에 매핑된 제1 부호 정수는 각각의 무부호 정수 다음의 무부호 정수에 매핑된 제2 부호 정수보다 크기면에서 크거나 같다.
일 실시예에 따르면, 매핑 규칙은 다음에 따라 부호 정수 Is를 무부호 정수 Iu에 매핑한다.
Figure pct00002
Figure pct00003
일 실시예에 따르면, 장치는 제2 이진화 코드를 사용하여 수를 하나 이상의 제2 빈의 제2 이진 스트링으로 이진화하고 하나 이상의 제2 빈을 콘텍스트 적응형 이진 산술 코딩함으로써 제3 차분을 데이터 스트림으로 인코딩하도록 구성된다.
일 실시예에 따르면, 장치는 예를 들어 A3와 같은 제4 가변 길이 코드를 사용하여 미리 결정된 정수값을 데이터 스트림으로 인코딩하도록 구성된다. 제4 가변 길이 코드는 예를 들어 부호 정수값에 대한 코드일 수 있다.
일 실시예에 따르면, 장치는 지수 골룸 코드를 사용하여 미리 결정된 정수값을 데이터 스트림으로 인코딩하도록 구성된다. 예를 들어 지수 골룸 코드의 파라미터 예를 들어 k는 인코딩된 값의 다른 크기에 대한 코드 길이 할당을 제어할 수 있다. 지수 골룸 코드를 사용하여 보다 효율적인 코딩 접근 방식을 제공한다.
일 실시예에 따르면, 장치는 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된다. 따라서 개선된 코딩 효율이 제공된다.
일 실시예에 따르면, 장치는 추가 사전 정의된 매핑 규칙에 따라 미리 결정된 정수값을 제2 무부호 정수에 매핑하고; 및 예를 들어 A7과 같은 제5 가변 길이 코드를 사용하여 제2 무부호 정수를 인코딩함으로써 미리 결정된 정수값을 데이터 스트림으로 인코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골롬 코드를 사용하여 무부호 정수를 데이터 스트림으로 인코딩하도록 구성된다. 지수 골룸 코드를 사용하여 보다 효율적인 코딩 접근 방식을 제공한다.
일 실시예에 따르면, 장치는 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된다. 따라서 개선된 코딩 효율이 제공된다.
일 실시예에 따르면, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 7의 값이다. 미리 결정된 지수 골룸 코드 파라미터를 사용하는 것이 더 효율적일 수 있다.
일 실시예에 따르면, 매핑 규칙은 0보다 작은 부호 정수와 0보다 큰 부호 정수가 각각 짝수 무부호 정수와 홀수 무부호 정수 중 별도의 정수에 매핑되고, 0은 0에 매핑되는 방식으로 부호 정수를 무부호 정수에 매핑하는 것으로, 각각의 무부호 정수에 대해 각각의 무부호 정수에 매핑된 제1 부호 정수는 각각의 무부호 정수 다음의 무부호 정수에 매핑된 제2 부호 정수보다 크기 면에서 크거나 같다.
일 실시예에 따르면, 매핑 규칙은 다음에 따라 부호 정수 Is를 무부호 정수 Iu에 매핑한다.
Figure pct00004
Figure pct00005
일 실시예에 따르면, 장치는 제3 이진화 코드를 사용하여 수를 하나 이상의 제3 빈의 제3 이진 스트링으로 이진화하고 하나 이상의 제3 빈을 콘텍스트 적응형 이진 산술 코딩함으로써 미리 결정된 정수값을 데이터 스트림으로 인코딩하도록 구성된다. 무손실 이진화 코딩으로 인해 코딩 효율이 떨어지지 않는다.
일 실시예에 따르면, 장치는 예를 들어 A4와 같은 제6 가변 길이 코드를 사용하여 제1 차분을 데이터 스트림으로 인코딩하도록 구성된다. 제6 가변 길이 코드는 예를 들어 무부호 정수값에 대한 코드일 수 있다.
일 실시예에 따르면, 장치는 지수 골룸 코드를 사용하여 제1 차분을 데이터 스트림으로 인코딩하도록 구성된다. 예를 들어 지수 골룸 코드의 파라미터 예를 들어 k는 인코딩된 값의 다른 크기에 대한 코드 길이 할당을 제어할 수 있다. 지수 골룸 코드를 사용하면 보다 효율적인 코딩 접근 방식을 제공한다.
일 실시예에 따르면, 장치는 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된다. 이는 두 개 이상의 정수값의 시퀀스, 예를 들어 두 개 이상의 코드북이 데이터 스트림으로 인코딩되고 모든 시퀀스에 대해 데이터 스트림에 하나의 지수 골룸 코드 파라미터만 인코딩될 때 특히 효율적이다. 더 큰 코드북의 경우, 인코딩할 값의 분포에 대한 코드 길이를 최적화하기 위해 제6 가변 길이 코드에 대한 지수 골룸 파라미터를 시그널링하는 것이 유리할 수 있다. 따라서 개선된 코딩 효율이 제공된다.
일 실시예에 따르면, 지수 골룸 코드 파라미터는 0 내지 15 범위의 값 중 하나이고, 4비트 무부호 정수로서 데이터 스트림으로 인코딩된다.
일 실시예에 따르면, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 7의 값이다. 미리 결정된 지수 골룸 코드 파라미터를 사용하는 것이 더 효율적일 수 있다.
일 실시예에 따르면, 장치는 제2 이진화 코드를 사용하여 수를 하나 이상의 제4 빈의 제4 이진 스트링으로 이진화하고 하나 이상의 제4 빈을 콘텍스트 적응형 이진 산술 코딩함으로써 제1 차분을 데이터 스트림으로 인코딩하도록 구성된다. 무손실 이진화 코딩으로 인해 코딩 효율이 떨어지지 않는다.
일 실시예에 따르면, 장치는 예를 들어 A5와 같은 제7 가변 길이 코드를 사용하여 제2 차분을 데이터 스트림으로 인코딩하도록 구성된다. 제7 가변 길이 코드는 예를 들어 무부호 정수값에 대한 코드일 수 있다.
일 실시예에 따르면, 장치는 지수 골룸 코드를 사용하여 제2 차분을 데이터 스트림으로 인코딩하도록 구성된다. 예를 들어 지수 골룸 코드의 파라미터 예를 들어 k는 인코딩된 값의 다른 크기에 대한 코드 길이 할당을 제어할 수 있다. 지수 골룸 코드를 사용하면 보다 효율적인 코딩 접근 방식을 제공한다.
일 실시예에 따르면, 장치는 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된다. 이는 두 개 이상의 정수값의 시퀀스, 예를 들어 두 개 이상의 코드북이 데이터 스트림에 인코딩되고 모든 시퀀스에 대해 데이터 스트림에 하나의 지수 골룸 코드 파라미터만 인코딩 될 때 특히 효율적이다. 더 큰 코드북의 경우, 인코딩할 값의 분포에 대한 코드 길이를 최적화하기 위해 제6 가변 길이 코드에 대한 지수 골룸 파라미터를 시그널링하는 것이 유리할 수 있다. 따라서 개선된 코딩 효율이 제공된다.
일 실시예에 따르면, 지수 골룸 코드 파라미터는 0 내지 15 범위의 값 중 하나이고 4 비트 무부호 정수로서 데이터 스트림으로 인코딩된다.
일 실시예에 따르면, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 7의 값이다. 미리 결정된 지수 골룸 코드 파라미터를 사용하는 것이 더 효율적일 수 있다.
일 실시예에 따르면, 제2 차분을 인코딩하기 위한 지수 골롬 부호에 대한 지수 골롬 코드 파라미터는 제1 차분을 인코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터와 동일하다.
일 실시예에 따르면, 제1 차분 및 제2 차분을 인코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터는 미리 결정된 정수값을 데이터 스트림으로 인코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터와 동일하다.
일 실시예에 따르면, 장치는 제2 이진화 코드를 사용하여 수를 하나 이상의 제5 빈의 제5 이진 스트링으로 이진화하고 하나 이상의 제5 빈을 콘텍스트 적응형 이진 산술 코딩함으로써 제2 차분을 데이터 스트림으로 인코딩하도록 구성된다. 무손실 이진화 코딩으로 인해 코딩 효율이 떨어지지 않는다.
일 실시예에 따르면, 장치는 클러스터링 알고리즘을 통해 정수값의 시퀀스를 얻도록 구성된다.
일 실시예에 따르면, 정수값의 시퀀스는 신경망의 파라미터와 관련된 코드북이다. 양자화 인덱스의 시퀀스/코드북으로의 대응하는 차분/오프셋 코딩만이 아니라 데이터 스트림으로 코딩되는 경우의 시퀀스/코드북을 가리키는 모든 파라미터에 대한 양자화 인덱스의 코딩을 위한 오프셋으로서의 미리 결정된 위치에 대한 정보의 재사용은 신경망(NN) 파라미터의 코딩을 보다 효율적으로 만든다.
일 실시예에 따르면, 파라미터는 신경망의 가중치(weights), 편향(biases) 및 배치 놈(batch norm) 파라미터 중 하나 이상을 포함한다.
일 실시예에 따르면, 장치는 정수값의 시퀀스 및 부동 소수점 양자화 파라미터에 의해 정의되는 양자화 레벨의 세트로 복수의 부동 소수점 값을 양자화함으로써 정수값의 시퀀스를 얻도록 구성된다.
일 실시예에 따르면, 장치는 복수의 부동 소수점 값 각각에 대해 각각의 부동 소수점 값이 양자화되는 양자화 레벨과 관련되는, 부동 소수점 양자화 파라미터에 따른 정수값의 시퀀스 내의 관련 정수값을 가리키는 양자화 인덱스를 데이터 스트림으로 인코딩하도록 구성된다.
일 실시예에 따르면, 부동 소수점 양자화 파라미터는 제1 부호 정수 양자화 파라미터 및 제2 무부호 정수 파라미터를 포함한다.
일 실시예에 따르면, 장치는 제1 부호 정수 양자화 파라미터를 데이터 스트림으로 인코딩하도록 구성되며, 여기서 제2 무부호 정수 파라미터는 고정 값이거나 장치는 정수값의 다른 시퀀스 또는 정수값의 시퀀스 세트로부터 제2 무부호 정수 파라미터를 승계(inherit)하도록 구성된다.
일 실시예에 따르면, 장치는 제1 부호 정수 양자화 파라미터 및 제2 무부호 정수 파라미터를 데이터 스트림으로 인코딩하도록 구성된다.
일 실시예에 따르면, 장치는 정수값들의 시퀀스 내에서 관련된 정수값의 위치의 제1 랭크와 미리 결정된 위치의 랭크의 랭크 차분의 형태의 양자화 인덱스를 데이터 스트림으로 인코딩하도록 구성된다.
일 실시예에 따르면, 장치는 제8 가변 길이 코드를 사용하여 랭크 차분을 데이터 스트림으로 인코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골롬 코드를 사용하여 랭크 차분을 데이터 스트림으로 인코딩하도록 구성된다. 예를 들어 지수 골룸 코드의 파라미터 예를 들어 k는 인코딩된 값의 다른 크기에 대한 코드 길이 할당을 제어할 수 있다. 지수 골룸 코드를 사용하면 보다 효율적인 코딩 접근 방식을 제공한다.
일 실시예에 따르면, 장치는 이진화 코드를 사용하여 수를 하나 이상의 빈의 이진 스트링으로 이진화하고 하나 이상의 빈을 콘텍스트 적응형 이진 산술 코딩함으로써 랭크 차분을 데이터 스트림으로 인코딩하도록 구성된다. 무손실 이진화 코딩으로 인해 코딩 효율이 떨어지지 않는다.
일 실시예에 따르면, 장치는 부동 소수점 양자화 파라미터를 적용함으로써 정수값의 시퀀스로부터 양자화 레벨을 획득하기 위한 부동 소수점 양자화 파라미터를 데이터 스트림으로 인코딩하도록 구성된다.
일 실시예에 따르면, 부동 소수점 양자화 파라미터는 양자화 레벨 사이의 양자화 단계 크기를 정의한다.
본 발명에 따른 실시예는 예를 들어 코드북과 같이 강한 단조 방식으로 정렬된 정수값의 시퀀스를 데이터 스트림으로부터, 예를 들어 비트스트림으로부터 디코딩하기 위한 장치를 생성한다. 장치는 정수값의 시퀀스의 미리 결정된 위치, 예를 들면 z, 에 위치한 미리 결정된 정수값, 예를 들어 C[z]를 데이터 스트림으로부터 디코딩하고; 또한 미리 결정된 위치에 선행하는 정수값의 시퀀스의 각각의 위치에 대해 각각의 위치 바로 다음에 존재하는 정수값과 각각의 위치에 있는 정수값 사이의 제1 차분을 1만큼 감소시켜 데이터 스트림으로부터 디코딩하고; 미리 결정된 위치 다음에 위치하는 정수값의 시퀀스의 각각의 위치에 대해, 각각의 위치에 있는 정수값과 각각의 위치 바로 앞에 존재하는 정수값 사이의 제2 차분을 1만큼 감소시켜 데이터 스트림으로부터 디코딩하도록 구성된다.
본 실시예 및 후술하는 실시예에 따른 디코딩을 위한 장치는 상술한 인코딩 장치와 동일한 고려에 기초한다.
일 실시예에 따르면, 장치는 정수값의 시퀀스의 정수값의 수, 예를 들어 코드북의 크기, 예를 들어 L(C), 또는 예를 들어 코드북의 길이를 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 예를 들어 A1과 같은 제1 가변 길이 코드를 사용하여 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골룸 코드를 사용하여 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 지수 골롬 코드에 대한 지수 골롬 코드 파라미터는 2의 값이다. 일 실시예에 따르면, 장치는 하나 이상의 제1 빈의 제1 이진 스트링으로부터 제1 이진화 코드를 통해 수를 역이진화(debinarizing)하고 데이터 스트림으로부터의 하나 이상의 제1 빈을 콘텍스트 적응형 이진 산술 디코딩(context-adaptive binary arithmetic decoding)하여 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 미리 결정된 위치를 드러내는 정보를 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 미리 결정된 위치에 선행하는 위치 시퀀스의 각각의 위치에 대해 제1 차분, 각각의 위치 바로 다음에 존재하는 정수값과 1을 선형 결합하여 각각의 위치에 있는 정수값을 연산(206)하고; 미리 결정된 위치 다음에 위치된 위치의 시퀀스의 각각의 위치에 대해 제2 차분, 각각의 위치 바로 앞에 존재하는 정수값과 1을 선형 결합하여 각각의 위치에 있는 정수값을 연산(208)하도록 구성된다.
일 실시예에 따르면, 장치는 미리 결정된 위치의 랭크와 정수값의 수의 정수 근사화된 절반 사이의 제3 차분을 데이터 스트림으로부터 디코딩하고; 및 상기 제3 차분과 상기 정수값의 수에 기초하여 상기 미리 결정된 위치를 계산하도록 구성되는 것을 특징으로 한다.
일 실시예에 따르면, 장치는 예를 들어 A2와 같은 제2 가변 길이 코드를 통해 제3 차분을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골룸 코드를 통해 제3 차분을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 제3 가변 길이 코드, 예를 들어 A6을 사용하여 제1 무부호 정수를 디코딩하고; 그리고 미리 정의된 역 매핑 규칙에 따라 제1 무부호 정수로부터 역 매핑에 의해 제3 차분을 검색함으로써 제3 차분을 데이터 스트림으로부터 디코딩하고하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골롬 코드를 통해 무부호 정수를 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 2의 값이다.
일 실시예에 따르면, 역 매핑 규칙은 짝수 무부호 정수와 홀수 무부호 정수가 각각 0보다 작은 부호 정수와 0보다 큰 부호 정수 중 별도의 부호 정수에 매핑하고 0을 0에 매핑하는 방식으로 무부호 정수를 부호 정수에 매핑하여, 각각의 부호 정수에 대해, 각각의 무부호 정수에 매핑된 제1 부호 정수는 그 크기가 각각의 무부호 정수 다음의 무부호 정수에 매핑된 제2 부호 정수보다 크거나 같다.
일 실시예에 따르면, 역 매핑 규칙은 다음과 같이 무부호 정수 Iu를 부호 정수 Is에 매핑한다.
Figure pct00006
Figure pct00007
일 실시예에 따르면, 장치는 하나 이상의 제2 빈의 제2 이진 스트링으로부터의 제2 이진화 코드를 통해 수를 역이진화(debinarizing)하고 하나 이상의 제2 빈을 콘텍스트 적응형 이진 산술 디코딩함으로써 제3 차분을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 예를 들어 A3와 같은 제4 가변 길이 코드를 통해 미리 결정된 정수값을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골룸 코드를 통해 미리 결정된 정수값을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 예를 들어 A7과 같은 제5 가변 길이 코드를 통해 제2 무부호 정수를 디코딩함하고; 및 추가 사전 정의된 역 매핑 규칙에 따라 제2 무부호 정수로부터 역 매핑에 의해 미리 결정된 정수값을 검색함으로써 미리 결정된 정수값을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골롬 코드를 통해 무부호 정수를 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 7의 값이다.
일 실시예에 따르면, 역 매핑 규칙은 짝수 무부호 정수와 홀수 무부호 정수가 각각 0보다 작은 부호 정수와 0보다 큰 부호 정수 중 별도의 부호 정수에 매핑되고 0은 0에 매핑되는 방식으로 무부호 정수를 부호 정수에 매핑하여, 각각의 부호 정수에 대해 각각의 무부호 정수에 매핑된 제1 부호 정수는 크기가 각각의 무부호 정수 다음의 무부호 정수에 매핑된 제2 부호 정수보다 크거나 같다.
일 실시예에 따르면, 역 매핑 규칙은 다음과 같이 무부호 정수 Iu를 부호 정수 Is에 매핑한다.
Figure pct00008
Figure pct00009
일 실시예에 따르면, 장치는 하나 이상의 제3 빈의 제3 이진 스트링으로부터의 제3 이진화 코드를 사용하여 수를 역이진화하고 하나 이상의 제3 빈을 콘텍스트 적응형 이진 산술 디코딩함으로써 미리 결정된 정수값을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 예를 들어 A4와 같은 제6 가변 길이 코드를 사용하여 제1 차분을 데이터 스트림으로 인코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골룸 코드를 통해 제1 차분을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된다. 이는 두 개 이상의 정수값의 시퀀스, 예를 들어 두 개 이상의 코드북이 데이터 스트림에서 디코딩될 때 특히 효율적이다.
일 실시예에 따르면, 지수 골룸 코드 파라미터는 0 내지 15 범위의 값 중 하나이고 4비트 무부호 정수로서 데이터 스트림으로 인코딩된다.
일 실시예에 따르면, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 7의 값이다.
일 실시예에 따르면, 장치는 하나 이상의 제4 빈의 제4 이진 스트링으로부터 제2 이진화 코드를 사용하여 수를 역이진화하고 하나 이상의 제4 빈을 콘텍스트 적응형 이진 산술 디코딩함으로써 제1 차분을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 예를 들어 A5와 같은 제7 가변 길이 코드를 통해 제2 차분을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골룸 코드를 통해 제2 차분을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된다. 이는 두 개 이상의 정수값의 시퀀스, 예를 들어 두 개 이상의 코드북이 데이터 스트림으로부터 디코딩될 때 특히 효율적이다.
일 실시예에 따르면, 지수 골룸 코드 파라미터는 0 내지 15의 범위의 값 중 하나이고 4비트 무부호 정수로서 데이터 스트림으로 인코딩된다.
일 실시예에 따르면, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 7의 값이다.
일 실시예에 따르면, 제2 차분을 디코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터는 제1 차분을 디코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터와 동일하다.
일 실시예에 따르면, 제1 차분 및 제2 차분을 디코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터는 미리 결정된 정수값을 데이터 스트림으로부터 디코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터와 동일하다.
일 실시예에 따르면, 장치는 하나 이상의 제5 빈의 제5 이진 스트링으로부터의 제2 이진화 코드를 통해 수를 역이진화하고 하나 이상의 제5 빈을 콘텍스트 적응형 이진 산술 디코딩함으로써 제2 차분을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 디코딩된 정수값의 시퀀스에 디클러스터링 알고리즘(declustering algorithm)을 적용하도록 구성된다.
일 실시예에 따르면, 장치는 정수값의 시퀀스가 신경망의 파라미터와 관련된 코드북인 장치이다.
일 실시예에 따르면, 파라미터는 신경망의 가중치, 편향 및 배치 놈 파라미터 중 하나 이상을 포함한다.
일 실시예에 따르면, 장치는 정수값의 시퀀스 및 부동 소수점 양자화 파라미터에 의해 정의되는 양자화 레벨의 세트로부터 디코딩된 정수값의 시퀀스를 복수의 부동 소수점 값으로 재구성하도록 구성된다.
일 실시예에 따르면, 장치는 복수의 부동 소수점 값 각각에 대해 부동 소수점 양자화 파라미터에 따라 각각의 부동 소수점 값이 양자화되는 양자와 레벨과 관련된 정수값의 시퀀스 내의 관련 정수값을 가리키는 양자화 인덱스를 데이터 스트림으로부터 디코딩하도록 구성된다,
일 실시예에 따르면, 부동 소수점 양자화 파라미터는 제1 부호 정수 양자화 파라미터 및 제2 무부호 정수 파라미터를 포함한다.
일 실시예에 따르면, 장치는 제1 부호 정수 양자화 파라미터를 데이터 스트림으로 인코딩을 하도록 구성되며, 여기서 제2 무부호 정수 파라미터는 고정 값이며, 또는 장치는 다른 정수값의 시퀀스 또는 정수값의 시퀀스 세트로부터 제2 무부호 정수 파라미터를 승계하도록 구성된다.
일 실시예에 따르면, 장치는 제1 부호 정수 양자화 파라미터 및 제2 무부호 정수 파라미터를 데이터 스트림으로 인코딩하도록 구성된다.
일 실시예에 따르면, 장치는 정수값들의 시퀀스 내에서 관련된 정수값의 위치의 제1 랭크와 미리 결정된 위치의 랭크의 랭크 차분에 기초하여 데이터 스트림으로부터 양자화 인덱스를 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 제8 가변 길이 코드를 통해 랭크 차분을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 지수 골룸 코드를 통해 랭크 차분을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 하나 이상의 빈의 이진 스트링으로부터의 이진화 코드를 사용하여 수를 역이진화하고 하나 이상의 빈을 콘텍스트 적응형 이진 산술 디코딩함으로써 랭크 차분을 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 부동 소수점 양자화 파라미터를 적용함으로써 양자화 레벨로부터 정수값의 시퀀스를 재구성하기 위한 부동 소수점 양자화 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된다.
일 실시예에 따르면, 장치는 부동 소수점 양자화 파라미터가 양자화 레벨 사이의 양자화 스텝 크기를 정의한다.
본 발명에 따른 실시예는 강한 단조 방식으로 정렬된 정수값의 시퀀스를 데이터 스트림으로 인코딩하는 방법을 생성하며, 이 방법은 정수값의 시퀀스의 미리 결정된 위치 예를 들어 z에 위치된 미리 결정된 정수값, 예를 들면 C[z]을 데이터 스트림으로 인코딩하는 단계; 미리 결정된 위치에 선행하는 정수값의 시퀀스의 각각의 위치에 대해 각각의 위치 바로 다음에 존재하는 정수값과 각각의 위치에 있는정수값 사이의 제1 차분을 1만큼 감소시켜 계산하는 단계; 제1 차분을 데이터 스트림으로 인코딩하는 단계; 미리 결정된 위치 다음에 위치한 정수값의 시퀀스의 각각의 위치에 대해, 각각의 위치에 있는 정수값과 각각의 위치 바로 앞에 존재하는 정수값 사이의 제2 차분을 1만큼 감소시켜 계산하는 단계; 및 제2 차분을 데이터 스트림으로 인코딩하는 단계를 포함한다.
본 실시예에 따른 방법은 상술한 인코딩 장치와 동일한 고려사항에 기초한다. 또한, 이 개시된 실시예는 개별적으로 그리고 조합하여 취해지는 인코딩 장치 와 관련하여 본 명세서에 개시된 임의의 다른 특징, 기능 및 세부 사항에 의해 선택적으로 보완될 수 있다.
본 발명에 따른 실시예는 강한 단조 방식으로 정렬된 정수값의 시퀀스를 데이터 스트림으로부터 디코딩하는 방법을 생성하며, 이 방법은 정수값의 시퀀스의 미리 결정된 위치, 예를 들어 z에 위치한 미리 결정된 정수값, 예를 들어 C[z]를 데이터 스트림으로부터 디코딩하는 단계; 미리 결정된 위치에 선행하는 정수값의 시퀀스의 각각의 위치에 대해, 각각의 위치 바로 다음에 존재하는 정수값과 각각의 위치에 있는 정수값 사이의 제1 차분을 1만큼 감소시켜 데이터 스트림으로부터 디코딩하는 단계; 미리 결정된 위치 다음에 위치하는 정수값의 시퀀스의 각각의 위치에 대해 각각의 위치에 있는 정수값과 각각의 위치 바로 앞에 존재하는 정수값 사이의 제2 차분을 1만큼 감소시켜 데이터 스트림으로부터 디코딩하는 단계를 포함한다.
본 실시예에 따른 방법은 상술한 디코딩을 위한 장치와 동일한 고려사항에 기초한다. 더욱이, 이 개시된 실시예는 개별적으로 그리고 조합하여 취해진 디코딩을 위한 장치와 관련하여 본 명세서에 개시된 임의의 다른 특징, 기능 및 세부사항에 의해 선택적으로 보완될 수 있다.
본 발명에 따른 실시예는 컴퓨터에서 실행될 때 전술한 임의의 실시예에 따른 방법을 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램을 생성한다.
인코딩을 위한 장치, 디코딩을 위한 장치, 인코딩을 위한 방법, 디코딩을 위한 방법 및 이들 방법을 구현하기 위한 컴퓨터 프로그램은 본 명세서(전체 문서에서)에 개시된 임의의 특징, 기능 및 세부사항에 의해 개별적으로 및 조합하여 선택적으로 보완될 수 있다.
본 출원의 바람직한 실시예는 도면에 기초하여 아래에 설명된다.
도 1은 실시예에 따른 인코딩 방법(100)의 흐름도를 도시한다.
도 2는 실시예에 따른 디코딩 방법(200)의 흐름도를 도시한다.
도 3은 실시예에 따른 인코딩 및 디코딩 절차의 개략도를 도시한다.
정수값의 시퀀스를 인코딩하기 위한 방법(100)이 도 1에 도시되어 있다.
방법(100)은 인코딩될 정수값의 시퀀스의 정수값의 수를 인코딩하는 단계(101), 미리 결정된 위치의 랭크와 정수값의 수의 정수 근사화된 절반 사이의 차분을 계산하는 단계(102), 및 이 차분을 데이터 스트림으로 인코딩하는 단계(103)를 포함한다. 방법(100)은 정수값의 시퀀스의 미리 결정된 위치 z에 위치한 미리 결정된 정수값 C[z]를 인코딩하는 단계(104)를 더 포함한다.
방법(100)은 미리 결정된 위치(z)에 선행하는 정수값의 시퀀스의 각각의 위치에 대해 다음의 인코딩 단계들을 수행하는 것을 더 포함한다: 각각의 위치 바로 다음에 존재하는 정수값과 각각의 위치에 있는 정수값 사이의 차분을 1만큼 감소시켜 계산하는 단계(105) 및 이 차분을 데이터 스트림으로 인코딩하는 단계(106).
방법(100)은 미리 결정된 위치(z) 다음에 위치하는 정수값의 시퀀스의 각각의 위치에 대해 다음의 인코딩 단계를 수행하는 것을 더 포함한다: 각각의 위치에 있는 정수값과 각각의 위치 바로 앞에 존재하는 정수값 사이의 차분을 1만큼 감소시켜 계산하는 단계(107) 및 이 차분을 데이터 스트림으로 인코딩하는 단계(108).
그러나, 방법(100)은 개별적으로 또는 조합하여 본 명세서에 개시된 임의의 특징, 기능 및 세부 사항에 의해 선택적으로 보완될 수 있음에 유의해야 한다.
본 발명의 실시예에 따른 정수값의 시퀀스를 디코딩하기 위한 방법(200)이 도 2에 도시되어 있다.
방법(200)은 디코딩될 정수값의 시퀀스 L(C)의 다수의 정수값을 데이터 스트림으로부터 디코딩하는 단계(201)를 포함한다.
방법(200)은 미리 결정된 위치의 랭크와 정수값의 수의 정수 근사화(integer-rounded)된 절반 사이의 차분 y를 데이터 스트림으로부터 디코딩하는 단계(202); 및 차분 y와 정수값의 수에 기초하여 미리 결정된 위치 z를 계산하는 단계(203)를 포함한다.
방법(200)은 정수값의 시퀀스의 계산된 미리 결정된 위치 z에 위치한 미리 결정된 정수값, 예를 들어 C[z]를 데이터 스트림으로부터 디코딩하는 단계(204)를 포함한다.
방법(200)은 미리 결정된 위치에 선행하는 정수값의 시퀀스의 각각의 위치에 대해 다음의 디코딩 단계들을 수행하는 것을 더 포함한다: 각각의 위치 바로 다음에 존재하는 정수값과 각각의 위치에 있는 정수값 사이의 차분(d1)을 1만큼 감소시켜 데이터 스트림으로부터 디코딩하는 단계(205) 및 제1 차분, 각각의 위치 바로 다음에 존재하는 정수값 및 1을 선형 결합함으로써 각각의 위치에 있는 정수값을 연산하는 단계(206).
방법(200)은 미리 결정된 위치 다음에 위치하는 정수값의 시퀀스의 각각의 위치에 대해 다음의 디코딩 단계들을 수행하는 것을 더 포함한다: 각각의 위치에 있는 정수값과 각각의 위치 바로 앞에 존재하는 정수값 사이의 차분(d2)을 1만큼 감소시켜 데이터 스트림으로부터 디코딩하는 단계(207), 및 제2 차분, 각각의 위치 바로 앞에 존재하는 정수값, 및 1을 선형 결합함으로써 각각의 위치에서 정수값을 연산하는 단계(208).
그러나, 방법(200)은 개별적으로 또는 조합하여 본 명세서에 개시된 임의의 특징, 기능 및 세부 사항에 의해 선택적으로 보완될 수 있음에 유의해야 한다.
다음에서, 정수값(12)의 시퀀스(10)를 데이터 스트림(14)으로 코딩하는 방법에 대해 여러 실시예가 설명된다. 정수값의 시퀀스(10)는 정상적인 네트워크 파라미터에 대한 양자화 레벨의 코드북일 수 있다. 시퀀스(10)에서, 정수값(12)은 강한 단조 방식으로 정렬될 수 있다. 즉, 시퀀스(10)에서 두 번 이상 발생하는 정수값 없이 오름차순(16) 또는 내림차순(18)로 정렬될 수 있다.
정수값(12)은 다음과 같은 방식으로 데이터 스트림(14)으로 코딩된다. 도 3에서 해싱으로 표시되고 다음 실시예에서 z로 표시되는 미리 결정된 위치에 위치한 미리 결정된 정수값(12)은 예를 들어 A3로 칭하는 가변 길이 코드를 사용하여 데이터 스트림(14)으로 코딩된다. 따라서 미리 결정된 정수값에 대해 코드 워드(20)는 데이터 스트림(14)에 포함된다. 위치 z는 기본적으로 알고 있을 수 있거나, 다음 실시예에 요약된 바와 같이 다른 가변 길이 코드(A2)를 사용하여 데이터 스트림(14)으로 코딩되어 결국 코드 워드(22)가 될 수 있다. 마찬가지로, 시퀀스(10)의 크기, 즉 그 안의 정수값(12)의 수는 기본적으로 알려질 수 있거나, 다음 실시예에서 약술된 바와 같이 다음에서 A1이라 칭하는 다른 가변 길이 코드를 사용하여 데이터 스트림(14)으로 코딩되어 코드 워드(24)가 될 수 있다.
또한, 미리 결정된 것을 제외한 나머지 정수값(12)은 데이터 스트림(14)으로 코딩된다. 이들 후자의 정수값(12)은 차분에 의해 데이터 스트림(14)으로 코딩된다. 예를 들어, 미리 결정된 위치의 업스트림에 위치한 정수값(12)은 한편으로는 이들 각각의 연속하는 정수값(12)과 다른 한편으로는 각각의 정수값의 바로 앞의 정수값의 차분에 의해 데이터 스트림(14)으로 코딩된다. 차분은 1만큼 감소되고 다른 가변 길이 코드(A5)를 사용하여 데이터 스트림(14)으로 코딩될 수 있으며, 그에 따라 미리 결정된 정수값에 연속하는 각각의 정수값(12)에 대해 하나의 코드 워드(26)가 된다. 유사하게, 미리 결정된 정수값에 선행하는 각각의 정수값은 각각의 정수값과 각각의 정수값 바로 다음에 오는 정수값 사이의 차분의 형태로 데이터 스트림(14)으로 코딩된다. 아래에서 더 자세히 설명하는 바와 같이, 정수값이 강한 단조 방식으로 시퀀스(10)로 정렬된다는 사실을 설명하기 위하여 차분은 1만큼 감소되고, 각각의 차분은 다른 가변 길이 코드(A4)를 사용하여 데이터 스트림(14)으로 코딩되어, 시퀀스(10)에서 미리 결정된 정수값에 선행하는 각각의 이들 정수값에 대한 코드 워드(28)가 된다.
차분을 계산하는 방법에 대해 미리 결정된 정수값의 업스트림의 정수값(12)과 다운스트림의 정수값(12)이 게산되는 것을 사용하는 다른 가능성이 존재한다. 다음 실시예에서 설명한 바와 같이, 이는 미리 결정된 정수값에 선행하는 정수값(12)이 코딩되는 기준이 되는 차분(30)의 피감수(minuend)가 차분(30)의 감수(subtrahend)에 후속하여 위치되는 것일 수 있으며, 미리 결정된 위치에 후속하는 정수값(12)이 데이터 스트림(14)으로 코딩된다, 즉 피감수가 감수에 후속하여 위치될 수 있는 차분(32)에도 동일하게 적용될 수 있다. 그러나 이것은 단지 예일 뿐이고 감수와 피감수 사이의 순서는 차분(30 및 32) 모두에 대해 전환될 수 있거나 또는 미리 결정된 위치의 한쪽에만 있을 수 있다.
도 3에 도시된 바와 같이, 방금 설명한 인코딩 절차의 결과인 코드 워드는 시퀀스(10)의 크기가 미리 결정된 정수값의 위치 세트보다 먼저 코딩되고 그 다음에 미리 결정된 정수값이 코딩되고, 그런 다음 미리 결정된 위치에 선행하는 정수값(12)을 코딩하고, 미리 결정된 위치 다음에 오는 정수값(12)의 코드 워드(26)가 뒤따르는 순서로 데이터 스트림(14)으로 코딩된다. 그러나 이것은 단지 하나의 가능성이고 코드 워드(28 및 26)는 예를 들어 서로에 대해 인터리빙된 방식으로 데이터 스트림으로 코딩될 수 있다.
도 3에 도시된 바와 같이, 디코더는 도 3에 대해 개략적으로 설명된 바와 같이 코딩 절차를 반전시키며, 이에 관한 세부사항은 다른 실시예에서 설명된다.
이하에서, 데이터스트림, 예를 들어 비트스트림, 예를 들어 인코딩된 신경망 데이터를 포함하는 비트스트림, 예를 들어 NNR 비트스트림에서 정수값의 시퀀스를 코딩하기 위한 실시예가 설명된다. 정수값의 인코딩된 시퀀스 구조는 의사 코드 형태로 표 1에 표시된다.
표 1
integer_codebook()은 다음과 같이 정의된다.
Figure pct00010
표 1에서 볼 수 있듯이 인코딩할 정수값의 시퀀스는 벡터 integerCodebook에 강한 단조 방식으로 정렬되어 포함되어 있다. 인코딩을 위해 인코더는 정수값의 시퀀스의 미리 결정된 위치, cbZeroOffset, 에 위치된 미리 결정된 정수값, codebook_zero_value, 을 데이터 스트림으로 인코딩한다. 미리 결정된 위치인 cbZeroOffset에 선행하는 정수값의 시퀀스의 위치는 제1 포 루프(for-loop)에서 먼저 코딩된다. 특히, 이러한 각각의 위치 j에 대해, 각각의 위치 바로 다음에 존재하는, 여기서는 포 루프가 정수값의 시퀀스의 시작 부분을 향하는 이들 위치들을 트래버스하므로 여기서는 previousValue에 저장된, 정수값과 각각의 위치에 있는 정수값, integerCodebook[j] 사이의 제1 차분을 1만큼 감소시켜 계산되고, 제1 차분이 데이터 스트림으로 코딩된다, 즉 codebook_delta_left = previousValue - integerCodebook[j] - 1. 다음으로, 미리 결정된 위치 다음에 위치되는 정수값의 시퀀스의 위치들은 제2 포 루프에서 먼저 코딩된다. 정수값의 시퀀스의 이러한 각각의 위치에 대해, 각각의 위치의 정수값 integerCodebook[j]과 각각의 위치 바로 앞에 존재하는, 여기서는 포 루프가 정수값의 시퀀스의 끝 부분을 향하는 이들 위치들을 트래버스하므로 여기서는 previousValue에 저장되고 제2 포 루프 바로 전에 미리 결정된 정수값, codebook_zero_value, 으로 초기화되는 정수값 사이의 제2 차분을 1만큼 감소시켜 계산되고, 제2 차분은 데이터 스트림으로 코딩된다 즉, codebook_delta_right = integerCodebook[j] - previousValue - 1. 앞서 언급한 바와 같이 차분들을 코딩하는 순서는 전환되거나 인터리브될 수도 있다. 정수값의 시퀀스를 디코딩하기 위해, 정수값의 시퀀스의 미리 결정된 위치(cbZeroOffset)에 위치한 미리 결정된 정수값 codebook_zero_value가 데이터 스트림으로부터 디코딩된다. 그런 다음, 미리 결정된 위치에 선행하는 정수값의 시퀀스의 각각의 위치에 대해, 각각의 위치 바로 다음에 존재하는 정수값과 각각의 위치에 있는 정수값 사이의 제1 차분을 1만큼 감소시켜 데이터 스트림으로부터 디코딩되고 즉, codebook_delta_left = previousValue - integerCodebook[j] - 1, 그리고 미리 결정된 위치 다음에 위치한 정수값의 시퀀스의 각각의 위치에 대해, 각각의 위치의 정수값과 각각의 위치 바로 앞에 존재하는 정수값 사이의 제2 차분을 1만큼 감소시켜 데이터 스트림으로부터 디코딩된다, 즉 codebook_delta_right = integerCodebook[j] - previousValue - 1.
구체적으로 정수값의 시퀀스의 정수값의 수도 데이터 스트림 즉 codebook_size로 코딩된다. 따라서 가변 길이 코드, 즉 2차 Exp-골룸 코드를 사용하여 수행된다.
정수값의 인코딩된 시퀀스의 미리 결정된 위치, codebook_centre_offset, 에 대한 정보도 데이터 스트림으로 코딩될 수 있다. 이 코딩은 시퀀스의 중간 위치에 대해 차등적으로 수행된다. 즉, cbZeroOffset - (codebook_size >> 1) = codebook_centre_offset 즉, 미리 결정된 위치, cbZeroOffset, 의 랭크와 정수값의 수의 정수 근사화된, 여기서는 반내림된, 절반, 즉 codebook_size >> 1 사이의 차분이 코딩된다. 따라서 가변 길이 코드, 즉 2차 Exp-골룸 코드를 사용하여 수행된다.
미리 결정된 정수값, codebook_zero_value는 7차 Exp-골룸 코드를 사용하여 코딩된다.
제1 차분과 제2 차분은 k가 codebook_egk로서 데이터 스트림으로 코딩되는 k차의 Exp-골룸 코드를 사용하여 코딩된다. 이는 4비트 무부호 정수로서 코딩된다.
정수값의 인코딩된 시퀀스, 예를 들어 코드북(integer_codebook)은 변수 cbZeroOffset 및 integerCodebook - 정수값의 시퀀스의 미리 결정된 위치(예: z) 및 미리 결정된 위치에 있는 미리 결정된 정수값(예: C(z))에 의해 정의된다.
시퀀스를 정의하는 파라미터, 예를 들어 코드북은 지수 골룸 코드 파라미터, 예를 들어 Exp-골룸 코드 파라미터, 예를 들어 k(codebook_egk) 및 정수값의 시퀀스의 정수값의 수, 예를 들어 코드북의 요소의 수(codebook_size)를 포함한다. 이러한 파라미터는 데이터 스트림(예: 비트스트림)으로부터 디코딩되어 결정된 정수값의 시퀀스를 생성하는 데 사용된다.
미리 결정된 위치(cbZeroOffset)는 미리 결정된 위치의 랭크와 정수값의 수의 정수 근사화된 절반 사이의 차분(codebook_centre_offset)을 이용하여 계산된 변수(codebook_centre_offset)이며, 이는 비트스트림으로 인코딩된다. 변수 codebook_centre_offset은 실시예에서 제3 차분, 예를 들어 y로 정의된다. 변수 codebook_centre_offset는 시퀀스(예: 코드북)의 중심에 대한 시퀀스 예를 들면, 코드북의 요소의 정수값에 액세스하기 위한 오프셋을 규정한다. 차분(codebook_centre_offset)은 데이터 스트림(예: 비트스트림)으로부터 디코딩되어 결정된 정수값의 시퀀스를 생성하는 데 사용된다.
인코딩된 시퀀스, 예를 들어 코드북을 정의하는 파라미터 codebook_zero_value는 미리 결정된 위치(cbZeroOffset)에 위치한 미리 결정된 정수값(integerCodebook), 예를 들어 CbZeroOffset 위치에 있는 코드북의 값을 규정한다. 이 파라미터는 변수 코드북(코드북을 나타내는 배열)과 같은 정수값의 디코딩된 시퀀스 생성에 관여한다.
디코딩된 시퀀스를 생성할 때 제1 차분 (codebook_delta_left)와 제2 차분(codebook_delta_right)이 데이터 스트림, 예를 들어 비트스트림으로부터 디코딩된다.
제1 차분(codebook_delta_left)은 미리 결정된 위치(cbZeroOffset)에 선행하는 정수값의 각각의 위치에 대해 각각의 위치 다음에 존재하는 정수값과 각각의 위치에 있는 정수값 사이의 차분을 1만큼 감소시킨 것, 예를 들면 중심 위치에 대한 좌측의 값에 대해 코드북 값과 그 우측 이웃 사이의 차분에 1을 뺀 것을 규정한다. 제1 차분(codebook_delta_left)은 표 1에 표시된 대로 변수 Codebook (코드북을 나타내는 배열)과 같은 디코딩된 정수값의 시퀀스를 생성하는 것과 관련된다. 미리 결정된 위치(cbZeroOffset)에 선행하는 위치의 시퀀스의 각각의 위치에 대해. 각각의 위치에 있는 정수값은 제1 차분(codebook_delta_left), 각각의 위치 바로 다음에 존재하는 정수값(previousValue = integerCodebook[j+1])과 1을 선형적으로 결합하여 계산된다:
integerCodebook[j] = previousValue - codebook_delta_left - 1.
제2 차분(codebook_delta_right)은 미리 결정된 위치(cbZeroOffset) 다음에 위치된 정수값의 시퀀스의 각각의 위치에 대해, 각각의 위치에 있는 정수값과 각각의 위치 바로 앞에 존재하는 정수값 사이의 차분을 1만큼 감소시킨 것, 예를 들면 중심 위치에 우측의 값들에 대해 코드북 값과 그 좌측 이웃 사이의 차분에 1을 뺀 것을 규정한다. 제2 차분은 표 1에 표시된 대로 변수 Codebook (코드북을 나타내는 배열)과 같은 디코딩된 정수값의 시퀀스를 생성하는 것과 관련된다. 미리 결정된 위치(cbZeroOffset) 다음에 위치하는 정수값의 시퀀스의 각각의 위치에 대해. 각각의 위치에 있는 정수값은 제2 차분(codebook_delta_right), 각각의 위치 바로 d앞에 존재하는 정수값(previousValue = integerCodebook[j-1])과 1을 선형적으로 결합하여 계산된다:
integerCodebook[j] = previousValue + codebook_delta_right + 1.
지수 골룸 코드 파라미터(codebook_egk)는 제1 차분을 정의하는 codebook_delta_left 및 제2 차분을 정의하는 codebook_delta_right 구문 요소의 디코딩에 사용된다.
그러나, 표 1을 참조하여 설명된 바와 같은 정수값의 시퀀스를 코딩하는 것은 개별적으로 또는 조합하여 본 명세서에 개시된 임의의 특징, 기능 및 세부 사항에 의해 선택적으로 보완될 수 있음에 유의해야 한다.
결론적으로, 본 발명에 따른 실시예는 개선된 코딩 효율로 이어지는 개선된 압축 성능을 제공한다.
4. 추가 실시예 및 측면
이하에서, 본 발명에 따른 추가 측면 및 실시예가 기술될 것이며, 이는 개별적으로 또는 본 명세서에 개시된 임의의 다른 실시예와 조합하여 사용될 수 있다.
또한, 이 섹션에 개시된 실시예는 개별적으로 그리고 조합하여 취해진 양자 모두에서 본 명세서에 개시된 임의의 다른 특징, 기능 및 세부 사항에 의해 선택적으로 보완될 수 있다.
본 발명의 실시예에 따라 데이터 압축을 위한 코드북을 시그널링하기 위한 개선된 개념이 추가로 설명된다.
본 발명에 따른 이 실시예는 예를 들어 최신 기술과 비교하여 압축 효율 면에서 개선을 달성할 수 있는 코드북의 인코딩 및 디코딩을 위한 접근법을 설명한다. 본 발명에 따른 실시예는 예를 들어 신경망의 파라미터 압축과 같은 정수값의 시그널링을 수반하는 임의의 데이터 압축 응용에 적용될 수 있다.
코드북을 사용하여 효율적으로 인코딩해야 하는 정수값의 시퀀스(W)를 고려한다. 이는 W의 요소 사이에서 소수의 다른 값만 발생할 때 특히 효율적일 수 있다. 예를 들어, 이러한 속성을 가진 W는 잘 알려진 k-평균 알고리즘의 출력일 수 있으며 클러스터 중심의 양자화가 뒤따를 수 있다. 이 경우 클러스터 중심은 코드북 C를 포함한다.
코드북 C는 특정 정수값이 최대 한 번 발생할 수 있는 오름차순 정수값의 시퀀스일 것이다. 게다가, z는 예를 들어 0에 가깝거나 같은 코드북 값에 대한 오프셋으로 이해될 수 있는 코드북의 z번째 요소를 가리키는 정수 오프셋이라고 한다.
코드북을 사용하기 위해, W는 W의 요소 w_i가 위치 z + v_i에 있는 코드북 요소와 같도록 코드북 인덱스 V의 시퀀스로 변환되는데, 여기서 v_i는 위치 i에 있는 V의 요소이다(제1 위치는 i=0에 있음).
예시:
C = [-20, -5, 3, 17], z=2, V = [-2, -2, 1, 0, -1]이라고 한다. 그런 다음 W는 C, z 및 V에서 재구성될 수 있어, 시퀀스 [-20, -20, 17, 3, -5]를 생성한다.
이하에서 본 발명에 따른 실시예가 설명될 것이다.
예를 들어 강한 단조 방식으로 정렬된 정수값의 시퀀스으로 표현되는 코드북을 인코딩 및 디코딩하기 위한 효율적인 접근법이 제시된다. 이는 코드북의 요소, 예를 들어 정수값의 시퀀스인 경우에는 정수값이 0에 중심을 두는 경우 그리고 z, 예를 들어 미리 결정된 위치가 바람직하게 작은 크기의 값을 가리킬 때 특히 효율적일 수 있다. 그러나 이러한 가정이 적용되지 않는 경우에도 작동한다. 기본 아이디어는 먼저 위치 z, 예를 들어 미리 결정된 위치에 있는 요소를 시그널링하고 다음으로 이하와 같이 이웃 값들 사이의 차분만 연속적으로 시그널링하는 것이다.
1. 무부호 정수값에 대해 코드 A1, 예를 들어 제1 가변 길이 코드를 사용하여 코드북 L(C)의 크기, 예를 들어 정수값의 시퀀스의 정수값의 수를 인코딩.
2. 변수 y = z - floor(L(C)/2) 예를 들면 미리 결정된 위치의 랭크와 정수값의 수의 정수 근사화된 절반 사이의 제3 차분을 계산, 및 부호 정수값에 대해 코드 A2, 예를 들어 제2 가변 길이 코드를 사용하여 예를 들어 제3 차분인 y를 인코딩. z가 코드북의 중간에 가까운 위치를 가리킬 때 y는 작음에 유의.
3. 부호 정수값에 대해 코드 A3, 예를 들어 제4 가변 길이 코드를 사용하여 예를 들어 미리 결정된 정수값인 C[z]를 인코딩.
4. 각각의 위치 i = z-1, i = z-2, ... i = 0, 예를 들어 미리 결정된 위치에 선행하는 정수값의 시퀀스의 위치에 대해 이하를 수행:
a. 차분 d = C[i+1] - C[i] - 1, 예를 들어 C[i+1]과 C[i] 사이의 제1 차분을 1만큼 감소시켜 계산(코드북의 이웃하는 값들은 크기가 적어도 1만큼 상이하므로).
b. 무부호 정수값에 대해 코드 A4, 예를 들어 제6 가변 길이 코드를 사용하여 예를 들어 제1 차분인 d를 인코딩.
5. 각각의 위치 i = z+1, i = z+2, ... until i = L(C) - 1, 여기서 L(C)는 코드북의 길이, 예를 들어 미리 결정된 위치 다음의 정수값의 시퀀스의 위치, 에 대해, 다음을 수행:
a. 차분 d = C[i] - C[i-1] - 1, 예를 들어 감소된 C[i]와 C[i-1] 사이의 제2 차분을 1만큼 감소시켜 계산(코드북의 이웃하는 값들은 크기가 적어도 1만큼 상이하므로).
b. 무부호 정수값에 대해 코드 A5, 예를 들어 제7 가변 길이 코드를 사용하여 예를 들어 제2 차분인 d를 인코딩.
해당 디코딩 방법은 아래와 같이 제공된다:
1. 무부호 정수값에 대해 코드 A1, 예를 들어 제1 가변 길이 코드를 사용하여 변수 l, 예를 들어 정수값의 수를 디코딩하고 빈 코드북, 예를 들어 길이 l. 즉, 코드북 L(C)의 길이가 l과 같음, 의 정수값의 수(I)를 갖는 정수값의 시퀀스를 초기화.
2. 부호 정수값에 대해 코드 A2, 예를 들어 제2 가변 길이 코드를 사용하여 예를 들어 제3 차분인 변수 y를 디코딩 및 z, 예를 들어 미리 결정된 위치를 floor(L(C)/2) + y 로 설정.
3. 부호 정수값에 대해 코드 A3 예를 들면 제4 가변 길이 코드를 사용하여 미리 결정된 위치에 위치된 예를 들면 미리 결정된 정수값과 같은 C[z]의 값을 디코딩.
4. 각각의 위치 i = z-1, i = z-2, ... i = 0, 예를 들어 미리 결정된 위치에 선행하는 정수값의 시퀀스의 위치에 대해 아래를 수행:
a. 무부호 정수값에 대해 코드 A4, 예를 들어 제6 가변 길이 코드를 사용하여 예를 들어 제1 차분과 같은 값 d을 디코딩.
b. C[i]를 C[i+1] - d - 1로 설정.
5. 각각의 위치 i = z+1, i = z+2, ... until i = L(C) - 1 여기서 L(C) 예를 들어 미리 결정된 위치 다음의 정수값의 시퀀스의 위치는 코드북의 길이, 에 대해 다음을 수행:
a. 무부호 정수값에 대해 코드 A5, 예를 들어 제7 가변 길이 코드를 사용하여 예를 들어 제2 차분인 값 d를 디코딩.
b. C[i]를 C[i-1] + d + 1로 설정.
코드 A1 내지 A5는 예를 들어 고정 길이 코드 또는 더 작은 크기를 갖는 정수에 더 짧은 코드 워드를 할당하는 코드일 수 있다. 위의 인코딩 및 디코딩 방법의 장점은 코드 A1 내지 A5로 인코딩된 값이 작은 크기를 갖는 경향이 있어 비트스트림이 더 짧아진다는 것이다.
예를 들어, 잘 알려진 지수 골룸 코드는 관련 지수 골룸 파라미터 k가 인코딩된 값의 다른 크기에 대한 코드 길이 할당을 제어하는 경우 이러한 목적으로 사용될 수 있다. 이 경우, 파라미터 k는 미리 정해진 값이거나 비트스트림에서 시그널링된다. 더 큰 코드북의 경우, 인코딩할 값의 분포에 대한 코드 길이를 최적화하기 위해 코드 A4 및 A5에 대한 지수 골룸 파라미터를 시그널링하는 것이 보상일 수 있다. 반면, 코드북 당 하나의 값만 인코딩되므로 코드 A1, A2 및 A3에 대해 미리 결정된 지수 골룸 파라미터 k를 사용하는 것이 더 효율적일 수 있다.
예를 들어, 4비트 값은 코드 A4 및 A5에 대한 지수 골룸 파라미터 k가 되는 0에서 15 사이의 정수를 나타내는 비트스트림에 기록될 수 있다.
다른 예에서, 부호 정수의 인코딩을 위한 잘 알려진 DeepCABAC 방식은 코드 A1 내지 A5 중 임의의 코드에 대해 사용될 수 있다. 선택적으로 무부호 코드의 경우 DeepCabac의 sign_flag는 인코딩되지 않는다. 대신 인코더와 디코더에서 항상 0으로 가정된다(양수 값을 나타냄).
예시적인 구성
예시적인 구성에서, 본 발명에 따른 실시예는 신경망의 파라미터와 관련된 코드북의 인코딩에 적용된다.
예를 들어 인코더에서 코드북은 k-평균과 같은 클러스터링 알고리즘에 의해 생성된다. 그런 다음, 코드북의 값은 단계 크기 파라미터(예: 부동 소수점 값)를 포함하는 균일한 재구성 양자화를 사용하는 정수로 양자화된다.
다음으로, 양자화된 코드북 값을 오름차순으로 정렬하고 잠재적인 중복 값을 제거한다.
다음으로, 양자화된 코드북은 본 발명에 따른 이 실시예의 방식을 사용하여 인코딩되고 정수 오프셋 z는 능숙하게 선택된다.
다음으로, (인코딩할) 파라미터는 코드북 인덱스로 변환되고 이러한 코드북 인덱스는 잘 알려진 DeepCABAC 방식으로 인코딩된다.
예를 들어, 정수 오프셋 z의 숙련된 선택은 코드북 및 관련 DeepCABAC 인코딩 코드북 인덱스의 인코딩에 의해 생성된 비트의 합을 최소화한 결과일 수 있음을 유의한다.
예를 들어, 단계 크기는 제1 부호 정수 양자화 파라미터 QP 및 제2 무부호 정수 파라미터 qp_density로부터 유도되는 부동 소수점 값일 수 있으며, 여기서 QP 및/또는 qp_density는 미리 결정된 값이거나 비트스트림에서 시그널링된다.
단계 크기 "stepSize"는 예를 들어 다음 방정식으로 계산할 수 있다.
mul = (1 << qp_density) + (QP & ((1 << qp_density) - 1))
시프트 = QP >> qp_density
stepSize = mul * 2shift - qp_density
디코더에서, 코드북과 코드북 인덱스는 비트스트림으로부터 디코딩된다. 디코딩된 코드북 인덱스는 먼저 양자화된 코드북 요소로 재구성되고(코드북을 정수 오프셋 z가 있는 룩업 테이블로 사용하여) 그런 다음 재구성된 신경망 파라미터를 생성하는 단계 크기를 사용하여 (예를 들면 부동 소수점 값으로) 재구성된다.
신경망 파라미터는 예를 들어 가중치, 편향, 배치 놈 파라미터 등이 될 수 있다.
바람직한 실시예
바람직한 실시예에서, 코드 A1 내지 A5는 더 작은 크기를 갖는 정수에 더 짧은 코드 워드를 할당하는 가변 길이 코드이다.
또 다른 바람직한 실시예에서 코드 A2 또는 코드 A3은 먼저 매핑 규칙 M에 따라 부호 정수 s를 무부호 정수 u에 매핑한 다음 각각 코드 A6 또는 A7을 사용하여 무부호 정수 u를 인코딩하는 코드이다.
또 다른 바람직한 실시예에서 매핑 규칙 m M은 이하의 방정식에 따라 부호 정수 s를 무부호 정수 u에 매핑한다:
If s <= 0: u = -s * 2,
otherwise (s>0): u = s * 2 -1
해당 역 매핑(디코더에서 사용됨)은 다음과 같이 제공된다:
If u is even ((u & 1) == 0): s = -u / 2,
otherwise ((u & 1) != 0): s = (u+1) / 2
다른 바람직한 실시예에서 코드 A4 및 A5는 동일하다.
다른 바람직한 실시예에서, 코드 A1 또는 코드 A4 또는 코드 A5 또는 코드 A6 또는 코드 A7은 차수가 k인 지수 골룸 코드이다.
무부호 정수 u를 인코딩하기 위한 차수 k의 지수 골룸 코드는 다음과 같이 주어진다:
while u >= (1<<k)
{
writeBits(1, 0)
u -= 1<<k
k +=1
}
writeBits(1, 1)
writeBits(k, u)
함수 writeBits(n,x)는 무부호 정수 x의 n 최하위 비트를 비트스트림에 기록한다.
또 다른 바람직한 실시예에서, 관련된 일부 또는 모든 지수 골룸 코드의 파라미터 k는 비트스트림에서 시그널링된다.
다른 바람직한 실시예에서, 코드 A1 내지 A7 중 하나 이상은 산술 코딩을 사용한다.
다른 바람직한 실시예에서, 코드 A1, A6 및 A7은 각각 차수가 2, 2 및 7인 지수 골룸 코드이다.
이전의 바람직한 실시예에 따른 또 다른 바람직한 실시예에서, 코드 A4 및 A5는 동일한 차수 k의 지수 골룸 코드이고, k는 값 0 <= k < 16을 허용하는 4비트 무부호 정수로서 비트스트림에서 시그널링된다.
다른 바람직한 실시예에서, 코드 A4 및 A5는 차수 7의 지수 골룸 코드이다.
결론적으로, 본 발명에 따른 실시예는 압축 성능과 시각적 품질 사이의 개선된 트레이드오프 및 낮은 인코딩 레이턴시(latency)를 제공하며, 이는 개선된 코딩 효율을 가져온다. 일부 실시예는 또한 추가적인 코딩 효율을 제공한다.
상이한 본 발명의 실시예 및 양태는 예를 들어 "서론", "샘플 적응 오프셋", "PSAO에 대한 분류", "디코더", "인코더" 및 "일부 설명" 장에서 설명되며, 여기에서 특징, 기능 및 세부 사항은 "샘플 적응 오프셋" 챕터는 임의의 다른 실시예에 선택적으로 도입될 수 있다.
그러나 임의의 다른 장에서 설명된 특징, 기능 및 세부 사항은 선택적으로 본 발명에 따른 실시예에 도입될 수도 있다.
또한, 상기 언급된 장들에서 설명된 실시예들은 개별적으로 사용될 수 있고, 또한 다른 장에서 임의의 특징, 기능 및 세부사항에 의해 보완될 수 있다.
또한, 본 명세서에 기재된 개별 양태는 개별적으로 또는 조합하여 사용될 수 있음을 유의해야 한다. 따라서, 상기 양태들 중 다른 하나에 세부사항을 추가하지 않고 상기 개별 양태 각각에 세부사항을 추가할 수 있다.
특히, 실시예는 청구범위에도 기재되어 있다. 청구범위에 기재된 실시예는 선택적으로 본 명세서에 기재된 임의의 특징, 기능 및 세부사항에 의해 개별적으로 및 조합하여 보완될 수 있다.
또한, 본 개시 내용은 비디오 인코더(입력 비디오 신호의 인코딩된 표현을 제공하는 장치) 및 비디오 디코더(비디오 신호의 인코딩된 표현을 기반으로 비디오 신호의 디코딩된 표현을 제공하는 장치)에서 사용 가능한 특징을 명시적으로 또는 암시적으로 설명한다는 점에 유의해야 한다. 따라서, 여기에 설명된 특징들 중 임의의 것은 비디오 인코더와 비디오 디코더의 맥락에서 사용될 수 있다.
더욱이, 방법과 관련하여 본 명세서에 개시된 특징 및 기능은 장치(이러한 기능을 수행하도록 구성됨)에서 사용될 수도 있다. 또한, 장치와 관련하여 본 명세서에 개시된 임의의 특징 및 기능은 대응하는 방법에서도 사용될 수 있다. 즉, 본 명세서에 개시된 방법은 장치에 대해 설명된 임의의 특징 및 기능에 의해 보완될 수 있다.
또한, 여기에 설명된 특징 및 기능은 "구현 대안" 섹션에서 설명하는 것처럼 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 조합을 사용하여 구현될 수 있다.
구현 대안
일부 양태는 장치의 맥락에서 설명되지만, 이러한 양태는 블록 또는 장치가 방법 단계 또는 방법 단계의 특징에 대응하는 해당 방법의 설명을 나타내기도 한다는 것이 분명하다. 유사하게, 방법 단계의 맥락에서 설명된 양태는 또한 대응 블록 또는 항목 또는 대응 장치의 특징에 대한 설명을 나타낸다. 방법 단계의 일부 또는 전부는 예를 들어 마이크로프로세서, 프로그래밍 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 사용하여) 실행될 수 있다. 일부 실시예에서, 가장 중요한 방법 단계 중 하나 이상이 그러한 장치에 의해 실행될 수 있다.
특정 구현 요구 사항에 따라, 본 발명의 실시예는 하드웨어 또는 소프트웨어로 구현될 수 있다. 구현은 예를 들어 플로피 디스크, DVD, Blu-Ray, CD, ROM, PROM, EPROM, EEPROM 또는 FLASH 메모리와 같은 디지털 저장 매체를 사용하여 수행될 수 있으며 거기에 전자적으로 판독 가능한 제어 신호가 저장되어 있으며, 이는 각각의 방법이 수행되도록 프로그래밍 가능한 컴퓨터 시스템과 협력(또는 협력할 수 있음)한다. 따라서, 디지털 저장 매체는 컴퓨터 판독 가능할 수 있다.
본 발명에 따른 일부 실시예는 본 명세서에 기술된 방법 중 하나가 수행되도록 프로그래밍 가능한 컴퓨터 시스템과 협력할 수 있는 전자적으로 판독 가능한 제어 신호를 갖는 데이터 캐리어를 포함한다.
일반적으로, 본 발명의 실시예는 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로서 구현될 수 있으며, 프로그램 코드는 컴퓨터 프로그램 제품이 컴퓨터에서 실행될 때 방법 중 하나를 수행하도록 동작한다. 프로그램 코드는 예를 들어 기계 판독 가능 매체에 저장될 수 있다.
다른 실시예는 기계 판독 가능 매체에 저장된 본 명세서에 기술된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함한다.
즉, 본 발명의 방법의 실시예는 따라서 컴퓨터 프로그램이 컴퓨터에서 실행될 때 본 명세서에 기술된 방법 중 하나를 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
따라서, 본 발명의 방법의 추가 실시예는 여기에 기술된 방법 중 하나를 수행하기 위한 그 내부에 기록된 컴퓨터 프로그램을 포함하는 데이터 캐리어(또는 디지털 저장 매체 또는 컴퓨터 판독 가능 매체)이다. 데이터 캐리어, 디지털 저장 매체 또는 기록 매체는 일반적으로 유형(tangible) 및/또는 비일시적이다.
본 발명의 방법의 추가 실시예는 본 명세서에 기술된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 나타내는 데이터 스트림 또는 신호 시퀀스이다. 데이터 스트림 또는 신호 시퀀스는 예를 들어 데이터 통신 연결을 통해, 예를 들어 인터넷을 통해 전송되도록 구성될 수 있다.
다른 실시예는 처리 수단, 예를 들어 컴퓨터, 또는 본 명세서에 기술된 방법 중 하나를 수행하도록 구성되거나 수행하도록 구성된 프로그램 가능 논리 장치를 포함한다.
추가 실시예는 여기에 기술된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램이 설치된 컴퓨터를 포함한다.
본 발명에 따른 다른 실시예는 여기에 기술된 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램을 수신기로 전송하도록 구성된 장치 또는 시스템을 포함한다(예를 들어, 전자적으로 또는 광학적으로). 수신기는 예를 들어 컴퓨터, 모바일 장치, 메모리 장치 등일 수 있다. 장치 또는 시스템은 예를 들어 컴퓨터 프로그램을 수신기로 전송하기 위한 파일 서버를 포함할 수 있다.
일부 실시예에서, 프로그램 가능 논리 장치(예를 들어, 필드 프로그램 가능 게이트 어레이)는 본 명세서에 기술된 방법의 기능 중 일부 또는 전부를 수행하는 데 사용될 수 있다. 일부 실시예에서, 필드 프로그램 가능 게이트 어레이는 본 명세서에 기술된 방법 중 하나를 수행하기 위해 마이크로프로세서와 협력할 수 있다. 일반적으로, 방법은 임의의 하드웨어 장치에 의해 수행되는 것이 바람직하다.
본 명세서에서 설명하는 장치는 하드웨어 장치로 구현될 수도 있고, 컴퓨터로 구현될 수도 있으며, 하드웨어 장치와 컴퓨터의 조합으로 구현될 수도 있다.
본 명세서에 기재된 장치 또는 본 명세서에 기재된 장치의 임의의 구성요소는 적어도 부분적으로 하드웨어 및/또는 소프트웨어로 구현될 수 있다.
본 명세서에 기술된 방법은 하드웨어 장치를 사용하거나, 컴퓨터를 사용하거나, 하드웨어 장치와 컴퓨터의 조합을 사용하여 수행될 수 있다.
본 명세서에 기재된 방법 또는 본 명세서에 기재된 장치의 임의의 구성요소는 적어도 부분적으로 하드웨어 및/또는 소프트웨어에 의해 수행될 수 있다.
여기에 기술된 실시예들은 단지 본 발명의 원리를 설명하기 위한 것이다. 본 명세서에 기술된 배열 및 세부사항의 수정 및 변경은 당업자에게 명백할 것이라는 것이 이해된다. 따라서 본 명세서의 실시예에 대한 설명 및 설명을 통해 제시된 특정 세부 사항이 아니라 현 특허 청구 범위에 의해서만 제한되는 것이 의도된다.

Claims (120)

  1. 강한 단조(strict monotonous) 방식으로 정렬된 정수값의 시퀀스를 데이터 스트림으로 인코딩하는 장치로서, 상기 장치는
    정수값의 시퀀스의 미리 결정된 위치(z)에 위치한 미리 결정된 정수값(C[z])을 데이터 스트림으로 인코딩(104)하고; 그리고
    미리 결정된 위치(z)에 선행하는 정수값의 시퀀스의 각각의 위치에 대해,
    각각의 위치 바로 다음에 존재하는 정수값과 각각의 위치에 있는 정수값 사이의 제1 차분을 1만큼 감소시켜 계산(105)하고; 그리고
    제1 차분을 데이터 스트림으로 인코딩(106)하고; 그리고
    미리 결정된 위치 다음에 위치하는 정수값의 시퀀스의 각각의 위치에 대해,
    각각의 위치에 있는 정수값과 각각의 위치 바로 앞에 존재하는 정수값 사이의 제2 차분을 1만큼 감소시켜 계산(107)하고; 그리고
    제2 차분을 데이터 스트림으로 인코딩(108)하도록 구성된, 장치.
  2. 청구항 1에 있어서, 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로 인코딩(101)하도록 구성된, 장치.
  3. 청구항 2에 있어서, 제1 가변 길이 코드[A1]를 사용하여 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  4. 청구항 2에 있어서, 지수 골룸 코드를 사용하여 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  5. 청구항 4에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  6. 청구항 2에 있어서, 상기 지수 골롬 코드에 대한 지수 골롬 코드 파라미터는 2의 값인, 장치.
  7. 청구항 2 내지 청구항 6 중 어느 한 항에 있어서, 제1 이진화 코드를 사용하여 상기 수를 하나 이상의 제1 빈의 제1 이진 스트링으로 이진화하고 하나 이상의 제1 빈을 콘텍스트 적응형 이진 산술 코딩(context-adaptive binary arithmetic coding)함으로써 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  8. 청구항 1 내지 청구항 7 중 어느 한 항에 있어서, 미리 결정된 위치를 드러내는 정보를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  9. 청구항 1 내지 청구항 8 중 어느 한 항에 있어서, 정수값의 시퀀스 내의 여러 위치 중에서 미리 결정된 위치를 선택하고 여러 위치 중에서 하나의 위치를 미리 결정된 기준을 충족하는 미리 결정된 위치로서 선택하도록 구성된, 장치.
  10. 청구항 9에 있어서, 상기 미리 결정된 기준은 정수값의 시퀀스를 데이터 스트림으로 인코딩하기 위한 최저 비트레이트인, 장치.
  11. 청구항 1 내지 청구항 10 중 어느 한 항에 있어서, 상기 장치는
    미리 결정된 위치의 랭크와 정수값의 수의 정수 근사화된 절반 사이의 제3 차분을 계산(102)하고, 그리고
    제3 차분을 데이터 스트림으로 인코딩(103)하도록 구성된, 장치.
  12. 청구항 11에 있어서, 제2 가변 길이 코드[A2]를 사용하여 제3 차분을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  13. 청구항 11에 있어서, 지수 골롬 코드를 사용하여 제3 차분을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  14. 청구항 13에 있어서, 지수 골롬 코드에 대한 지수 골롬 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  15. 청구항 11에 있어서,
    미리 정의된 매핑 규칙에 따라 제3 차분을 제1 무부호 정수에 매핑하고; 그리고
    제3 가변 길이 코드[A6]를 사용하여 제1 무부호 정수를 인코딩하여
    제3 차분을 상기 데이터 스트림으로 인코딩하도록 구성된, 장치.
  16. 청구항 15에 있어서, 지수 골롬 코드를 사용하여 무부호 정수를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  17. 청구항 16에 있어서, 지수 골롬 코드에 대한 지수 골롬 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  18. 청구항 16에 있어서, 지수 골롬 코드에 대한 지수 골롬 코드 파라미터는 2의 값인, 장치.
  19. 청구항 15 내지 청구항 18 중 어느 한 항에 있어서, 상기 매핑 규칙은 0보다 작은 부호 정수와 0보다 큰 부호 정수가 각각 짝수 무부호 정수와 홀수 무부호 정수 중 별도의 정수에 매핑되고, 0은 0에 매핑되는 방식으로 부호 정수를 무부호 정수에 매핑하여, 각각의 무부호 정수에 대해 각각의 무부호 정수에 매핑된 제1 부호 정수는 각각의 무부호 정수 다음의 무부호 정수에 매핑된 제2 부호 정수보다 크기면에서 크거나 같은, 장치.
  20. 청구항 15 내지 청구항 18 중 어느 한 항에 있어서, 상기 매핑 규칙은 다음에 따라 부호 정수 Is를 무부호 정수 Iu에 매핑하는, 장치.
    Figure pct00011

    Figure pct00012
  21. 청구항 11 내지 청구항 20 중 어느 한 항에 있어서, 제2 이진화 코드를 사용하여 수를 하나 이상의 제2 빈의 제2 이진 스트링으로 이진화하고 하나 이상의 제2 빈을 콘텍스트 적응형 이진 산술 코딩함으로써 제3 차분을 데이터 스트림으로 인코딩하는, 장치.
  22. 청구항 1 내지 청구항 21 중 어느 한 항에 있어서, 제4 가변 길이 코드[A3]를 사용하여 미리 결정된 정수값을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  23. 청구항 1 내지 청구항 22 중 어느 한 항에 있어서, 지수 골룸 코드를 사용하여 미리 결정된 정수값을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  24. 청구항 23에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  25. 청구항 1 내지 청구항 24 중 어느 한 항에 있어서,
    추가 사전 정의된 매핑 규칙에 따라 미리 결정된 정수값을 제2 무부호 정수에 매핑하고; 그리고
    제5 가변 길이 코드[A7]를 사용하여 제2 무부호 정수를 인코딩함으로써
    미리 결정된 정수값을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  26. 청구항 25에 있어서, 지수 골롬 코드를 사용하여 무부호 정수를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  27. 청구항 26에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  28. 청구항 26에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 7의 값인, 장치.
  29. 청구항 25 내지 청구항 28 중 어느 한 항에 있어서, 상기 매핑 규칙은 0보다 작은 부호 정수와 0보다 큰 부호 정수가 각각 짝수 무부호 정수와 홀수 무부호 정수 중 별도의 정수에 매핑되고, 0은 0에 매핑되는 방식으로 부호 정수를 무부호 정수에 매핑하여, 각각의 무부호 정수에 대해 각각의 무부호 정수에 매핑된 제1 부호 정수는 각각의 무부호 정수 다음의 무부호 정수에 매핑된 제2 부호 정수보다 크기 면에서 크거나 같은, 장치.
  30. 청구항 25 내지 청구항 28 중 어느 한 항에 있어서, 상기 매핑 규칙은 다음에 따라 부호 정수 Is를 무부호 정수 Iu에 매핑하는, 장치.
    Figure pct00013

    Figure pct00014
  31. 청구항 1 내지 청구항 24 중 어느 한 항에 있어서, 제3 이진화 코드를 사용하여 수를 하나 이상의 제3 빈의 제3 이진 스트링으로 이진화하고 하나 이상의 제3 빈을 콘텍스트 적응형 이진 산술 코딩함으로써 미리 결정된 정수값을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  32. 청구항 1 내지 청구항 31 중 어느 한 항에 있어서, 제6 가변 길이 코드[A6]를 사용하여 제1 차분을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  33. 청구항 1 내지 청구항 32 중 어느 한 항에 있어서, 지수 골룸 코드를 사용하여 제1 차분을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  34. 청구항 33에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  35. 청구항 34에 있어서, 지수 골룸 코드 파라미터는 0 내지 15 범위의 값 중 하나이고, 4비트 무부호 정수로서 데이터 스트림으로 인코딩되는, 장치.
  36. 청구항 33 내지 청구항 35 중 어느 한 항에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 7의 값인, 장치.
  37. 청구항 1 내지 청구항 36 중 어느 한 항에 있어서, 제2 이진화 코드를 사용하여 수를 하나 이상의 제4 빈의 제4 이진 스트링으로 이진화하고 하나 이상의 제4 빈을 콘텍스트 적응형 이진 산술 코딩함으로써 제1 차분을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  38. 청구항 1 내지 청구항 37 중 어느 한 항에 있어서, 제7 가변 길이 코드[A5]를 사용하여 제2 차분을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  39. 청구항 1 내지 청구항 38 중 어느 한 항에 있어서, 지수 골룸 코드를 사용하여 제2 차분을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  40. 청구항 39에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  41. 청구항 40에 있어서, 지수 골룸 코드 파라미터는 0 내지 15 범위의 값 중 하나이고 4 비트 무부호 정수로서 데이터 스트림으로 인코딩되는, 장치.
  42. 청구항 39에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 7의 값인, 장치.
  43. 청구항 39에 있어서, 제2 차분을 인코딩하기 위한 지수 골롬 부호에 대한 지수 골롬 코드 파라미터는 제1 차분을 인코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터와 동일한, 장치.
  44. 청구항 43에 있어서, 제1 차분 및 제2 차분을 인코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터는 미리 결정된 정수값을 데이터 스트림으로 인코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터와 동일한, 장치.
  45. 청구항 1 내지 청구항 44 중 어느 한 항에 있어서, 제2 이진화 코드를 사용하여 수를 하나 이상의 제5 빈의 제5 이진 스트링으로 이진화하고 하나 이상의 제5 빈을 콘텍스트 적응형 이진 산술 코딩함으로써 제2 차분을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  46. 청구항 1 내지 청구항 45 중 어느 한 항에 있어서, 클러스터링 알고리즘을 통해 정수값의 시퀀스를 얻도록 구성된, 장치.
  47. 청구항 1 내지 청구항 46 중 어느 한 항에 있어서, 정수값의 시퀀스는 신경망의 파라미터와 관련된 코드북인, 장치.
  48. 청구항 47에 있어서, 파라미터는 신경망의 가중치(weights), 편향(biases) 및 배치 놈(batch norm) 파라미터 중 하나 이상을 포함하는, 장치.
  49. 청구항 1 내지 청구항 48 중 어느 한 항에 있어서, 정수값의 시퀀스 및 부동 소수점 양자화 파라미터에 의해 정의되는 양자화 레벨의 세트로 복수의 부동 소수점 값을 양자화함으로써 정수값의 시퀀스를 얻도록 구성된, 장치.
  50. 청구항 49에 있어서,
    복수의 부동 소수점 값 각각에 대해,
    각각의 부동 소수점 값이 양자화되는 양자화 레벨과 관련되는, 부동 소수점 양자화 파라미터에 따른 정수값의 시퀀스 내의 관련 정수값을 가리키는 양자화 인덱스를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  51. 청구항 49 또는 청구항 50에 있어서, 부동 소수점 양자화 파라미터는 제1 부호 정수 양자화 파라미터 및 제2 무부호 정수 파라미터를 포함하는, 장치.
  52. 청구항 51에 있어서, 장치는 제1 부호 정수 양자화 파라미터를 데이터 스트림으로 인코딩하도록 구성되며, 여기서 제2 무부호 정수 파라미터는 고정 값이며, 또는 장치는 정수값의 다른 시퀀스 또는 정수값의 시퀀스 세트로부터 제2 무부호 정수 파라미터를 승계(inherit)하도록 구성된, 장치.
  53. 청구항 51에 있어서, 제1 부호 정수 양자화 파라미터 및 제2 무부호 정수 파라미터를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  54. 청구항 49에 있어서,
    정수값들의 시퀀스 내에서 관련된 정수값의 위치의 제1 랭크와 미리 결정된 위치의 랭크의 랭크 차분의 형태의 양자화 인덱스를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  55. 청구항 54에 있어서, 제8 가변 길이 코드를 사용하여 상기 랭크 차분을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  56. 청구항 54에 있어서, 지수 골롬 코드를 사용하여 상기 랭크 차분을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  57. 청구항 54 내지 청구항 56 중 어느 한 항에 있어서, 이진화 코드를 사용하여 수를 하나 이상의 빈의 이진 스트링으로 이진화하고 하나 이상의 빈을 콘텍스트 적응형 이진 산술 코딩함으로써 상기 랭크 차분을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  58. 청구항 1 내지 청구항 57 중 어느 한 항에 있어서, 부동 소수점 양자화 파라미터를 적용함으로써 정수값의 시퀀스로부터 양자화 레벨을 획득하기 위한 부동 소수점 양자화 파라미터를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  59. 청구항 58에 있어서, 부동 소수점 양자화 파라미터는 양자화 레벨들 사이의 양자화 단계 크기를 정의하는, 장치.
  60. 강한 단조 방식으로 정렬된 정수값의 시퀀스를 데이터 스트림으로부터 디코딩하기 위한 장치로서, 상기 장치는
    정수값의 시퀀스의 미리 결정된 위치(z)에 위치한 미리 결정된 정수값(C[z])을 데이터 스트림으로부터 디코딩(204)하고; 그리고
    미리 결정된 위치에 선행하는 정수값의 시퀀스의 각각의 위치에 대해
    각각의 위치 바로 다음에 존재하는 정수값과 각각의 위치에 있는 정수값 사이의 제1 차분을 1만큼 감소시켜 데이터 스트림으로부터 디코딩(205)하고; 그리고
    미리 결정된 위치 다음에 위치하는 정수값의 시퀀스의 각각의 위치에 대해,
    각각의 위치에 있는 정수값과 각각의 위치 바로 앞에 존재하는 정수값 사이의 제2 차분을 1만큼 감소시켜 데이터 스트림으로부터 디코딩(207)하도록 구성된, 장치.
  61. 청구항 60에 있어서, 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로부터 디코딩(201)하도록 구성된, 장치.
  62. 청구항 61에 있어서, 제1 가변 길이 코드[A1]를 사용하여 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  63. 청구항 61에 있어서, 지수 골룸 코드를 사용하여 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  64. 청구항 63에 있어서, 지수 골롬 코드에 대한 지수 골롬 코드 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  65. 청구항 63에 있어서, 지수 골롬 코드에 대한 지수 골롬 코드 파라미터는 2의 값인, 장치.
  66. 청구항 61 내지 청구항 63 중 어느 한 항에 있어서, 하나 이상의 제1 빈의 제1 이진 스트링으로부터 제1 이진화 코드를 통해 수를 역이진화(debinarizing)하고 데이터 스트림으로부터의 하나 이상의 제1 빈을 콘텍스트 적응형 이진 산술 디코딩(context-adaptive binary arithmetic decoding)하여 정수값의 시퀀스의 정수값의 수를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  67. 청구항 60에 있어서, 미리 결정된 위치를 드러내는 정보를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  68. 청구항 60 내지 청구항 67 중 어느 한 항에 있어서,
    미리 결정된 위치에 선행하는 위치의 시퀀스의 각각의 위치에 대해
    제1 차분, 각각의 위치 바로 다음에 존재하는 정수값과 1을 선형 결합하여 각각의 위치에 있는 정수값을 연산(206)하고; 그리고
    미리 결정된 위치 다음에 위치된 위치의 시퀀스의 각각의 위치에 대해
    제2 차분, 각각의 위치 바로 앞에 존재하는 정수값과 1을 선형 결합하여 각각의 위치에 있는 정수값을 연산(208)하도록 구성된, 장치.
  69. 청구항 60 내지 청구항 68 중 어느 한 항에 있어서,
    미리 결정된 위치의 랭크와 정수값의 수의 정수 근사화된 절반 사이의 제3 차분을 데이터 스트림으로부터 디코딩(202)하고; 그리고
    제3 차분과 상기 정수값의 수에 기초하여 미리 결정된 위치를 계산(203)하도록 구성된, 장치.
  70. 청구항 69에 있어서, 제2 가변 길이 코드[A2]를 통해 제3 차분을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  71. 청구항 69에 있어서, 지수 골룸 코드를 통해 제3 차분을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  72. 청구항 71에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  73. 청구항 69에 있어서,
    제3 가변 길이 코드[A6]을 사용하여 제1 무부호 정수를 디코딩하고; 그리고
    미리 정의된 역 매핑 규칙에 따라 제1 무부호 정수로부터 역 매핑에 의해 제3 차분을 검색함으로써
    제3 차분을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  74. 청구항 73에 있어서, 지수 골롬 코드를 사용하여 무부호 정수를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  75. 청구항 74에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  76. 청구항 74에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 2의 값인, 장치.
  77. 청구항 73에 있어서, 상기 역 매핑 규칙은 짝수 무부호 정수와 홀수 무부호 정수가 각각 0보다 작은 부호 정수와 0보다 큰 부호 정수 중 별도의 부호 정수에 매핑하고 0을 0에 매핑하는 방식으로 무부호 정수를 부호 정수에 매핑하여, 각각의 부호 정수에 대해, 각각의 무부호 정수에 매핑된 제1 부호 정수는 그 크기가 각각의 무부호 정수 다음의 무부호 정수에 매핑된 제2 부호 정수보다 크거나 같은, 장치.
  78. 청구항 77에 있어서, 상기 역 매핑 규칙은 다음과 같이 무부호 정수 Iu를 부호 정수 Is에 매핑하는, 장치.
    Figure pct00015

    Figure pct00016
  79. 청구항 69 내지 청구항 78 중 어느 한 항에 있어서, 하나 이상의 제2 빈의 제2 이진 스트링으로부터의 제2 이진화 코드를 통해 수를 역이진화(debinarizing)하고 하나 이상의 제2 빈을 콘텍스트 적응형 이진 산술 디코딩함으로써 제3 차분을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  80. 청구항 60 내지 청구항 79 중 어느 한 항에 있어서, 제4 가변 길이 코드[A3]를 통해 미리 결정된 정수값을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  81. 청구항 60 내지 청구항 80 중 어느 한 항에 있어서, 지수 골룸 코드를 통해 미리 결정된 정수값을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  82. 청구항 81에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  83. 청구항 60 내지 청구항 82 중 어느 한 항에 있어서,
    제5 가변 길이 코드[A7]를 통해 제2 무부호 정수를 디코딩하고; 그리고
    추가 사전 정의된 역 매핑 규칙에 따라 제2 무부호 정수로부터 역 매핑에 의해 미리 결정된 정수값을 검색함에 의해
    미리 결정된 정수값을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  84. 청구항 83에 있어서, 지수 골롬 코드를 사용하여 무부호 정수를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  85. 청구항 84에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  86. 청구항 84에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 7의 값인, 장치.
  87. 청구항 83 내지 청구항 86 중 어느 한 항에 있어서, 상기 역 매핑 규칙은 짝수 무부호 정수와 홀수 무부호 정수가 각각 0보다 작은 부호 정수와 0보다 큰 부호 정수 중 별도의 부호 정수에 매핑되고 0은 0에 매핑되는 방식으로 무부호 정수를 부호 정수에 매핑하여, 각각의 부호 정수에 대해 각각의 무부호 정수에 매핑된 제1 부호 정수는 크기가 각각의 무부호 정수 다음의 무부호 정수에 매핑된 제2 부호 정수보다 크거나 같은, 장치.
  88. 청구항 83 내지 청구항 86 중 어느 한 항에 있어서, 상기 역 매핑 규칙은 다음과 같이 무부호 정수 Iu를 부호 정수 Is에 매핑하는, 장치.
    Figure pct00017

    Figure pct00018
  89. 청구항 60 내지 청구항 81 중 어느 한 항에 있어서, 하나 이상의 제3 빈의 제3 이진 스트링으로부터의 제3 이진화 코드를 사용하여 수를 역이진화하고 하나 이상의 제3 빈을 콘텍스트 적응형 이진 산술 디코딩함으로써 미리 결정된 정수값을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  90. 청구항 60 내지 청구항 89 중 어느 한 항에 있어서, 제6 가변 길이 코드[A4]를 사용하여 제1 차분을 데이터 스트림으로 인코딩하도록 구성된, 장치.
  91. 청구항 60 내지 청구항 90 중 어느 한 항에 있어서, 지수 골룸 코드를 통해 제1 차분을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  92. 청구항 91에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  93. 청구항 92에 있어서, 지수 골룸 코드 파라미터는 0에서 15까지의 범위에 있는 값 중 하나이고 4비트 무부호 정수로서 데이터 스트림으로 인코딩되는, 장치.
  94. 청구항 91에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 7의 값인, 장치.
  95. 청구항 60 내지 청구항 94 중 어느 한 항에 있어서, 하나 이상의 제4 빈의 제4 이진 스트링으로부터 제2 이진화 코드를 사용하여 수를 역이진화하고 하나 이상의 제4 빈을 콘텍스트 적응형 이진 산술 디코딩함으로써 제1 차분을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  96. 청구항 60 내지 청구항 95 중 어느 한 항에 있어서, 제7 가변 길이 코드[A5]를 통해 제2 차분을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  97. 청구항 60 내지 청구항 96 중 어느 한 항에 있어서, 지수 골룸 코드를 통해 제2 차분을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  98. 청구항 97에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  99. 청구항 98에 있어서, 지수 골룸 코드 파라미터는 0에서 15까지의 범위에 있는 값 중 하나이고 4비트 무부호 정수로서 데이터 스트림으로 인코딩되는, 장치.
  100. 청구항 97에 있어서, 지수 골룸 코드에 대한 지수 골룸 코드 파라미터는 7의 값인, 장치.
  101. 청구항 98 내지 청구항 100 중 어느 한 항에 있어서, 제2 차분을 디코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터는 제1 차분을 디코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터와 동일한, 장치.
  102. 청구항 101에 있어서, 제1 차분 및 제2 차분을 디코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터는 미리 결정된 정수값을 데이터 스트림으로부터 디코딩하기 위한 지수 골롬 코드에 대한 지수 골롬 코드 파라미터와 동일한, 장치.
  103. 청구항 60 내지 청구항 102 중 어느 한 항에 있어서, 하나 이상의 제5 빈의 제5 이진 스트링으로부터의 제2 이진화 코드를 통해 수를 역이진화하고 하나 이상의 제5 빈을 콘텍스트 적응형 이진 산술 디코딩함으로써 제2 차분을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  104. 청구항 60 내지 청구항 103 중 어느 한 항에 있어서, 디코딩된 정수값의 시퀀스에 디클러스터링 알고리즘(declustering algorithm)을 적용하도록 구성된, 장치.
  105. 청구항 60 내지 청구항 104 중 어느 한 항에 있어서, 정수값의 시퀀스가 신경망의 파라미터와 관련된 코드북인, 장치.
  106. 청구항 105에 있어서, 상기 파라미터는 신경망의 가중치, 편향 및 배치 놈 파라미터 중 하나 이상을 포함하는, 장치.
  107. 청구항 60 내지 청구항 106 중 어느 한 항에 있어서, 정수값의 시퀀스 및 부동 소수점 양자화 파라미터에 의해 정의되는 양자화 레벨의 세트로부터 디코딩된 정수값의 시퀀스를 복수의 부동 소수점 값으로 재구성하도록 구성된, 장치.
  108. 청구항 107에 있어서,
    복수의 부동 소수점 값 각각에 대해,
    부동 소수점 양자화 파라미터에 따라 각각의 부동 소수점 값이 양자화되는 양자와 레벨과 관련된 정수값의 시퀀스 내의 관련 정수값을 가리키는 양자화 인덱스를
    데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  109. 청구항 107 또는 청구항 108에 있어서, 상기 부동 소수점 양자화 파라미터는 제1 부호 정수 양자화 파라미터 및 제2 무부호 정수 파라미터를 포함하는, 장치.
  110. 청구항 109에 있어서, 장치는 제1 부호 정수 양자화 파라미터를 데이터 스트림으로 인코딩을 하도록 구성되며, 여기서 제2 무부호 정수 파라미터는 고정 값이며, 또는 장치는 다른 정수값의 시퀀스 또는 정수값의 시퀀스 세트로부터 제2 무부호 정수 파라미터를 승계하도록 구성된, 장치.
  111. 청구항 109에 있어서, 제1 부호 정수 양자화 파라미터 및 제2 무부호 정수 파라미터를 데이터 스트림으로 인코딩하도록 구성된, 장치.
  112. 청구항 108에 있어서, 정수값들의 시퀀스 내에서 관련된 정수값의 위치의 제1 랭크와 미리 결정된 위치의 랭크의 상기 랭크 차분에 기초하여 데이터 스트림으로부터 양자화 인덱스를 디코딩하도록 구성된, 장치.
  113. 청구항 108에 있어서, 제8 가변 길이 코드를 통해 상기 랭크 차분을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  114. 청구항 108에 있어서, 지수 골룸 코드를 통해 상기 랭크 차분을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  115. 청구항 108 내지 청구항 113 중 어느 한 항에 있어서, 하나 이상의 빈의 이진 스트링으로부터의 이진화 코드를 사용하여 수를 역이진화하고 하나 이상의 빈을 콘텍스트 적응형 이진 산술 디코딩함으로써 상기 랭크 차분을 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  116. 청구항 60 내지 청구항 115 중 어느 한 항에 있어서, 부동 소수점 양자화 파라미터를 적용함으로써 양자화 레벨로부터 정수값의 시퀀스를 재구성하기 위한 부동 소수점 양자화 파라미터를 데이터 스트림으로부터 디코딩하도록 구성된, 장치.
  117. 청구항 116에 있어서, 상기 부동 소수점 양자화 파라미터가 양자화 레벨 사이의 양자화 스텝 크기를 정의하는, 장치.
  118. 강한 단조 방식으로 정렬된 정수값의 시퀀스를 데이터 스트림으로 인코딩하는 방법으로서,
    정수값의 시퀀스의 미리 결정된 위치(z)에 위치된 미리 결정된 정수값(C[z])을 데이터 스트림으로 인코딩하는 단계; 및
    미리 결정된 위치(z)에 선행하는 정수값의 시퀀스의 각각의 위치에 대해
    각각의 위치 바로 다음에 존재하는 정수값과 각각의 위치에 있는 정수값 사이의 제1 차분을 1만큼 감소시켜 계산하는 단계; 및
    제1 차분을 데이터 스트림으로 인코딩하는 단계; 및
    미리 결정된 위치 다음에 위치한 정수값의 시퀀스의 각각의 위치에 대해,
    각각의 위치에 있는 정수값과 각각의 위치 바로 앞에 존재하는 정수값 사이의 제2 차분을 1만큼 감소시켜 계산하는 단계; 및
    제2 차분을 데이터 스트림으로 인코딩하는 단계
    를 포함하는, 방법.
  119. 강한 단조 방식으로 정렬된 정수값의 시퀀스를 데이터 스트림으로부터 디코딩하는 방법으로서,
    정수값의 시퀀스의 미리 결정된 위치(z)에 위치한 미리 결정된 정수값(C[z])을 데이터 스트림으로부터 디코딩하는 단계; 및
    미리 결정된 위치에 선행하는 정수값의 시퀀스의 각각의 위치에 대해,
    각각의 위치 바로 다음에 존재하는 정수값과 각각의 위치에 있는 정수값 사이의 제1 차분을 1만큼 감소시켜 데이터 스트림으로부터 디코딩하는 단계; 및
    미리 결정된 위치 다음에 위치하는 정수값의 시퀀스의 각각의 위치에 대해,
    각각의 위치에 있는 정수값과 각각의 위치 바로 앞에 존재하는 정수값 사이의 제2 차분을 1만큼 감소시켜 데이터 스트림으로부터 디코딩하는 단계
    를 포함하는, 방법.
  120. 컴퓨터에서 실행될 때 청구항 118 또는 청구항 119에 기재된 방법을 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램.
KR1020237001743A 2020-06-23 2021-06-23 정수값의 시퀀스를 인코딩 및 디코딩하는 장치, 정수값의 시퀀스를 인코딩 및 디코딩하는 방법 및 이러한 방법을 구현하기 위한 컴퓨터 프로그램 KR20230026422A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP20181776 2020-06-23
EP20181776.4 2020-06-23
PCT/EP2021/067217 WO2021260046A1 (en) 2020-06-23 2021-06-23 Apparatuses for encoding and decoding a sequence of integer values, methods for encoding and decoding a sequence of integer values and computer program for implementing these methods

Publications (1)

Publication Number Publication Date
KR20230026422A true KR20230026422A (ko) 2023-02-24

Family

ID=71138608

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237001743A KR20230026422A (ko) 2020-06-23 2021-06-23 정수값의 시퀀스를 인코딩 및 디코딩하는 장치, 정수값의 시퀀스를 인코딩 및 디코딩하는 방법 및 이러한 방법을 구현하기 위한 컴퓨터 프로그램

Country Status (6)

Country Link
US (1) US20230117869A1 (ko)
EP (1) EP4169166A1 (ko)
JP (1) JP2023533223A (ko)
KR (1) KR20230026422A (ko)
CN (1) CN116018758A (ko)
WO (1) WO2021260046A1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363225B2 (en) * 2005-06-23 2008-04-22 Microsoft Corporation Compressing language models with Golomb coding

Also Published As

Publication number Publication date
CN116018758A (zh) 2023-04-25
WO2021260046A1 (en) 2021-12-30
JP2023533223A (ja) 2023-08-02
EP4169166A1 (en) 2023-04-26
US20230117869A1 (en) 2023-04-20

Similar Documents

Publication Publication Date Title
US7733345B2 (en) Method and apparatus for encoding and decoding position interpolator
KR100489908B1 (ko) 디지탈정보신호부호화방법및장치
JP4792257B2 (ja) 適応算術復号化方法及び適応算術復号化装置
US7304590B2 (en) Arithmetic decoding apparatus and method
EP2267698B1 (en) Entropy coding by adapting coding between level and run-length/level modes.
US7746249B2 (en) Method and apparatus for encoding and decoding key data
KR100561875B1 (ko) 위치 인터폴레이터 복호화 방법 및 장치
KR930024507A (ko) 영상데이타의 가변장부호화/복호화방법 및 장치
CN104380733B (zh) 视频量化参数编码方法、视频量化参数解码方法、设备
JP4163680B2 (ja) コードワードインデックスに対してパラメータ値のマッピングを行うための適応型方法およびシステム
JP4382090B2 (ja) 符号化装置、符号化方法およびコードブック
CN115087988A (zh) 用于编码神经网络参数的构思
US4519085A (en) Differential data coding and decoding process and system restricting propagation of transmission errors
US20180205952A1 (en) Method and apparatus for performing arithmetic coding by limited carry operation
KR20230026422A (ko) 정수값의 시퀀스를 인코딩 및 디코딩하는 장치, 정수값의 시퀀스를 인코딩 및 디코딩하는 방법 및 이러한 방법을 구현하기 위한 컴퓨터 프로그램
KR0162209B1 (ko) 2채널결합양자화기법 및 중첩직교변환기법을 결합한 영상신호의 부호화장치
EP1322118A2 (en) Method and apparatus for encoding and decoding key data
Khandelwal et al. Implementation of Direct Indexing and 2-V Golomb Coding of Lattice Vectors for Image Compression
WO2023131641A1 (en) Concepts for encoding and decoding neural network parameters
EP1359755A1 (en) A coded information signal
JPS62200993A (ja) 画像信号符号化復号化方式とその装置
JPH01286677A (ja) 画像データ圧縮方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal