KR101627000B1 - 디지털 데이터 처리 방법 - Google Patents

디지털 데이터 처리 방법 Download PDF

Info

Publication number
KR101627000B1
KR101627000B1 KR1020117000054A KR20117000054A KR101627000B1 KR 101627000 B1 KR101627000 B1 KR 101627000B1 KR 1020117000054 A KR1020117000054 A KR 1020117000054A KR 20117000054 A KR20117000054 A KR 20117000054A KR 101627000 B1 KR101627000 B1 KR 101627000B1
Authority
KR
South Korea
Prior art keywords
index
vector
delete delete
coordinates
leader
Prior art date
Application number
KR1020117000054A
Other languages
English (en)
Other versions
KR20110033175A (ko
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 KR20110033175A publication Critical patent/KR20110033175A/ko
Application granted granted Critical
Publication of KR101627000B1 publication Critical patent/KR101627000B1/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
    • 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/3082Vector coding

Landscapes

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

Abstract

본 발명은 디지털 데이터를 처리하는 방법에 관한 것으로, 차원 d의 공간에서, 벡터들 l의 적어도 일부에 대하여 적어도 하나의 벡터 인덱스 Il를 계산하는 양자화 단계를 포함하고, 상기 벡터 l은 입력 데이터 디스크립터를 형성한다. 상기 방법은, 벡터 모두를 결정하는 단계를 포함하지 않으면서, 상기 벡터 인덱스 Il이 사전식 배열의 역순으로 상기 벡터 l에 선행하는 벡터의 개수에 대응하는 것을 특징으로 한다.

Description

디지털 데이터 처리 방법{METHOD FOR TREATING DIGITAL DATA}
본 발명은 예컨대 디지털 데이터의 압축, 디지털 데이터의 검색, 디지털 데이터 또는 디지털 데이터의 압축 해제의 비교와 같은 응용분야에서 디지털 데이터를 처리하는 분야에 관한 것이다. 본 발명은 음성영상 데이터, 보다 일반적으로 임의의 타입의 디지털 데이터의 처리에 관한 것이다. 본 발명은 처리 시간을 줄이고, 전력 및 메모리 요구조건 둘 모두의 계산에 관한 컴퓨팅 리소스 요구조건을 줄이는 것을 목적으로 한다.
본원은 보다 구체적으로, 기술하기 위해 매우 큰 데이터를 요구하는 이미지를 처리하는 것에 관한 것이지만, 이에 제한되지는 않는다. 전송 시간 및 저장을 위해 요구되는 사이즈를 줄이기 위해, 홀로 코딩될 시각적인 정보를 추출함으로써 정보가 압축된다. 상기 코딩된 정보는 주파수 면에 있어서 최적의 방식으로 위치되어야 하며, 공간적으로는 코딩의 성능에 해로운 임의의 리던던시(redundancy)를방지하면서 최적의 반환을 가능하게 해야 한다. 이를 위해, 웨이브렛 변환(wavelet transfor) 기술을 사용하는 것이 알려져 있으며, 그 좌표는 벡터 래티스(lattice)를 구성하며, 상기 벡터 래티스는 벡터 양자화(quantization) 단계로 진행된다.
벡터 양자화(VQ, vector quantization)의 원리는, 샘플 각각을 개별적으로 코딩하는 대신, 벡터를 형성하는 샘플의 시퀀스를 코딩하는 것이다. 코딩은 일반적으로 "코드북(codebook)"으로 알려진 형태의 카탈로그에 속하는 벡터에 의해 코딩될 시퀀스를 근사화(approximating)함으로써 달성된다. 코드북의 벡터 각각은 인덱싱(indexed)되어 있다. 코딩 도중, 코딩될 샘플의 시퀀스에 가장 인접한 벡터의 인덱스가 시퀀스를 나타내도록 사용될 것이다.
종래의 솔루션은, 벡터 각각을 결정하고, 메모리에 벡터를 기록하고, 그리고 나서 벡터들을 카운팅하기 위해 모든 벡터들에 대해 프로세싱을 실행하는 것을 요구한다. 벡터 베이스(vector base)는 베이스의 길이가 너무 길어서 수 기가바이트를 요구하고 컴퓨팅 시간을 요구한다. 본 발명은 이러한 단점을 해결하는 카운팅 및 인덱싱 방법을 제안하는 것을 목적으로 한다.
양자화 방법이 문헌 [1]에 기재되어 있다.
래티스는 추가 그룹을 형성하는 n 차원 공간 내의 벡터의 세트이며, 수학적인 용어이다. 서적 [2]는 이러한 래티스에 대해 상세하게 기술한다.
국제출원 WO 9933185가 종래 기술로 알려져 있으며, 상기 특허는, 양자화된 벡터와 동일한 성분을 가지나 기결정된 순서로 기술되는 리더 벡터로 불리는 벡터를 결정하는 단계, 및 리더 벡터와 동일한 성분을 갖고 기결정된 방식으로 순서가 구성된 벡터의 형성된 세트 중 상기 양자화된 벡터의 레벨 또는 랭크를 결정하는 단계를 포함한다. 상기 방법은, 한 편으로는 상기 결정된 리더 벡터를 대표하는 인덱스로부터 코드를 형성하고, 다른 한 편으로는 상기 랭크로부터 형성하는 단계를 포함한다.
압축을 위한 대수적 백터 양자화기를 설계하는데 직면하는 주된 어려움은, 규칙적인 래티스의 지점(regular lattice of points)(양자화 사전을 구성함)에서 벡터를 카운팅하고 인덱싱하는 것이다. 본 발명자는 일반화된 가우시안 분포원(Gaussian distribution source)(예컨대, 웨이브릿 계수)에 대한 문제점을 해결하기 위한 솔루션을 제시한다.
본 발명은, 처리 시간 뿐만 아니라 저장 메모리에 관하여 제한된 컴퓨팅 리소스를 사용하여 수행될 수 있는 벡터 양자화 단계를 포함하는 처리 방법을 제안하는 것을 목적으로 한다.
상기 목적을 위해, 본 발명은, 가장 넓은 관점으로 보아, 차원 d의 공간 내에서 벡터들 l의 적어도 일부에 대한 적어도 하나의 리더 인덱스 Il을 계산하는 단계로 구성되는 양자화 단계를 포함하는 디지털 데이터 처리 방법을 제시하며, 상기 벡터 l은 입력 데이터의 디스크립터(descriptor)를 구성하며, 상기 방법은 모든 리더들을 결정하는 단계를 포함하지 않으면서, 상기 리더 인덱스 Il이 사전식 배열의 역순(reverse lexicographical order)으로 상기 리더 l에 선행하는 벡터의 개수에 대응하는 것을 특징으로 한다.
상기 처리 방법은 바람직하게 현재 계산되고 있는 리더 l을 제외한 다른 리더들을 결정하는 어떠한 단계도 포함하지 않는다.
유리하게, 상기 리더 l의 놈(norm) lp를 계산하는 단계는, 상기 리더 l(x1, x2, ..., xd)의 rδ p d에서의 놈을 계산하는 단계를 포함하며, 여기서 x1 내지 xd는 오름차순으로 정렬되고, rδ p d는 i가 1부터 d까지 변하는 함수 T(xi)의 결과값의 합과 동일하며, 함수 T(xi)는 정확도 델타에 의해 파워 p로 올려진 좌표 xi를 분할하는 결과를 반환하며, 상기 분할의 결과는 가장 가까운 정수로 반올림된다.
특정 실시예에서, 상기 리더 인덱스 Il을 계산하는 단계는, 상기 리더 l(x1, x2, ..., xd)의 놈 rp δ,d를 계산하는 단계를 포함하고, x1 내지 xd는 오름 차순으로 정렬되고, d 내지 1의 범위의 i 값에 대한 좌표 xi에 대하여 반복적인 카운팅 단계가 수행되고, 상기 카운팅 단계는 좌표 xi가 xi +1과 MIN(xi +1, rδ p d) 사이에 포함되는 벡터를 카운팅하는 단계로 구성되고, 인덱스 Il은 카운팅 단계의 결과값의 합과 동일하고, F(A) 는 정수값 w를 반환하는 함수이며, T(w) 값은 상기 함수 F의 인수 A보다 작거나 같다.
다른 실시예에서, 상기 리더 인덱스 Il을 계산하는 단계는, 상기 리더 l(x1, x2, ..., xd) 의 놈 rδ p d을 계산하는 단계를 포함하며, 여기서 x1 내지 xd는 내림 차순으로 정렬되며, 1 내지 d의 범위의 i 값에 대한 좌표 xi에 대하여 반복적인 카운팅 단계가 수행되고, 상기 카운팅 단계는 좌표 xi가 xi +1과 MIN(xi -1, F(rδ p d)) 사이에 포함되는 벡터를 카운팅하는 단계로 구성되고, 인덱스 Il은 카운팅 단계의 결과값의 합과 동일하고, F(A)는 정수값 w를 반환하고, T(w) 값은 상기 함수 F의 인수 A보다 작거나 같다.
다른 실시예에 따르면, 상기 리더 인덱스 Il을 계산하는 단계는, 상기 리더 l(x1, x2, ..., xd)의 놈 r을 계산하는 단계를 포함하고, 여기서 x1 내지 xd는 오름 차순으로 정렬되고, d 내지 1의 범위의 i 값에 대한 좌표 xi에 대하여 반복적인 카운팅 단계가 수행되고, 상기 카운팅 단계는 좌표 xi가 xi +1과 MIN(xi +1, r-xi +1) 사이에 포함되는 벡터를 카운팅하는 단계로 구성되고, 인덱스 Il은 카운팅 단계의 결과값의 합과 동일하다.
다른 실시예에 따르면, 상기 리더 인덱스 Il을 계산하는 단계는, 상기 리더 l(x1, x2, ..., xd) 의 놈 r을 계산하는 단계를 포함하고, 여기서 x1 내지 xd는 내림차순으로 정렬되고, 1 내지 d의 범위의 i 값에 대한 좌표 xi에 대하여 반복적인 카운팅 단계를 수행하고, 상기 카운팅 단계는 좌표 xi가 xi+1과 MIN(xi -1, r-xi -1) 사이에 포함되는 벡터를 카운팅하는 단계로 구성되고, 인덱스 Il은 카운팅 단계의 결과값의 합과 동일하다.
본 발명은, 적어도 부호 인덱스 Is, 놈 인덱스 In 및 치환 인덱스 Ip 뿐만 아니라 상기 인덱스 Il의 이진 코딩(binary coding)의 결과를 기록하는 단계로 구성되는 벡터 데이터를 압축하는 방법에 관한 것이다. 상기 벡터 데이터는 다음을 포함한다:
- 디지털 이미지,
- 디지털 비디오 시퀀스,
- 디지털 오디오 데이터,
- 디지털 3차원 오브젝트,
- 디지털 애니메이션으로 제작된 3차원 오브젝트,
- 데이터베이스에 저장된 정보,
- 상기 벡터 데이터의 변환 계수(예컨대, DCT 계수, 웨이브릿 계수 등).
또한, 본 발명은, 기준 정보를 위해 적어도 부호 인덱스 Is , ref, 놈 인덱스 In,ref 및 치환 인덱스 Ip , ref 뿐만 아니라 인덱스 In , ref를 계산하는 단계 및 상기 인덱스들과 관련된 데이터를 검색하는 단계로 구성되는, 벡터 데이터베이스에서 검색하는 방법에 관한 것이다.
상기 벡터 데이터는 다음을 포함한다:
- 디지털 이미지,
- 디지털 비디오 시퀀스,
- 디지털 오디오 데이터,
- 디지털 3차원 오브젝트,
- 디지털 애니메이션으로 제작된 3차원 오브젝트,
- 텍스트 데이터베이스의 오브젝트,
- 상기 벡터 데이터의 변환 계수(예컨대, DCT 계수, 웨이브릿 계수 등).
또한, 본 발명은 전술한 방법에 따라 계산된 리더 인덱스 Il로부터 디지털 데이터를 재구성하는 방법에 관한 것으로, 상기 방법은 리더 l의 좌표 (x1, x2, ..., xd)를 계산하는 단계를 포함하며, 모든 리더들을 결정하는 단계를 포함하지 않으면서, 사전식 배열의 역순으로 상기 리더 l에 선행하는 벡터들의 동일한 개수에 대응하는, 인덱스 Il을 갖는 리더 l을 찾는 단계를 포함하는 처리를 인덱스 Il에 적용시키는 단계를 포함한다.
바람직하게, 반복적인 처리가 d 내지 1 범위의 변수 i에 대해 수행되고, 상기 처리는 xi가 MIN(xi +1, F(rP δ,i)) 내지 0의 범위에 속하는 좌표 xi에 적용되고, 상기 함수 F(A)를 적용함으로써 상기 합계가 상기 인덱스 Il보다 더 커질 때까지 카운팅 단계의 결과값을 더하는 단계로 구성되며, 좌표 xi는 상기 인덱스 Il이 초과되도록 유도되며, 그리고 나서 상기 방법은 좌표 Xi -1에 대해 Il 값으로부터의 합을 지속시키는 단계로 구성되며, Il은 상기 인덱스를 초과하기 전에 Il 값에 선행하는 값이다.
유리하게, 반복적인 처리가 1 내지 d 범위에 속하는 변수 i에 대해 수행되고, 상기 처리는 xi가 MIN(xi -1, F(rP δ,i)) 내지 0의 범위에 속하는 좌표 xi에 적용되고, 상기 함수 F(A)를 적용시킴으로써 상기 합계가 상기 인덱스 Il보다 커질 때까지 카운팅 단계의 결과값을 더하는 단계로 구성되며, 상기 좌표 xi는 상기 인덱스 Il이 초과되도록 유도하며, 그리고 나서 상기 방법은 좌표 Xi +1에 대하여 Il 값으로부터의 합을 지속시키는 단계로 구성되며, Il은 상기 인덱스를 초과하기 전에 Il 값에 선행하는 값이다.
관습적으로, xd +1은 프로세서의 정확도에 따라 허용되는 가장 큰 정수이거나, 적어도 F(rP δ,i)보다는 크다. 재구성을 위해, 오름차순으로 정렬되는 경우, 좌표 xd의 처리에 대해서는 Il' = 0이고, 내림차순으로 정렬되는 경우에는 좌표 xl의 처리에 대해서 Il' = 0이다.
대수적 벡터 양자화(Algebraic vector quantization)
양자화는 수십 년 동안 연구되었으며, 그에 대한 연구 결과는 오늘날 잘 알려진 레이트/왜곡(rate/distortion) 이론으로 알려진 다수의 결과들로 발표되었다. 특히, 고정된 길이의 코딩이 요구되는 경우, 벡터 양자화(VQ)는 스칼라 양자화(scalar quantization, SQ)에 비해 매우 유리한 것으로 밝혀졌다. 또한, 새논(Shannon)에 의한 연구는, 양자화 벡터의 차수 n이 충분히 큰 경우에는, VQ의 성능이 최적의 이론적인 성능에 근접한 것으로 발표하였다.
그러나, VQ는 높은 복잡도의 컴퓨팅에 의해 이러한 최적의 성능에 근접할 수 있으며; 복잡도는 벡터의 차수에 대해 지수함수적으로 증가한다. 일반적으로, VQ는 소스(시퀀스 학습)을 대표하는 통계적인 데이터로부터 구축되는 비-구축 사전(non-structured dictionary)을 사용하여 수행된다. 이 경우, 사전의 사이즈로 인한 복잡도 및 저장 요건은 압축에 대한 분야에서 엄두도 못낼 정도로 높아질 수 있다. 또한, 주어진 시퀀스 학습에 대해 최적화되었더라도, 시퀀스 학습 밖의 이미지에 대해 열악한 성능을 갖는 사전의 강건함(robustness)에 대한 문제가 존재한다. 이러한 문제점을 극복하기 위한 일 해결책은, AVQ(Algebraic Vector Quantization) 또는 규칙적인 래티스의 지점 상의 벡터 양자화와 같은 n-차원으로 구조화된 VQ를 사용하는 것이다.
사전의 벡터가 구조화된 규칙적인 래티스에 속하도록 강제됨에 따라, AVQ의 성능은 일반적으로 비-구조화된 VQ의 성능에 비해 열악해진다.
그러나, 대부분의 경우, 이러한 약간의 단점은, AVQ가 사전을 생성하거나 저장해야할 필요가 없고, 코딩 복잡도가 감소된다는 점에 의해 보상된다.
규칙적인 래티스의 지점에 의한 양자화는 균일한 스칼라 양자화의 영장으로 보여질 수 있다. 비-구조화된 VQ에 대해서, 용어 AVQ가 벡터 양자화 또는 벡터 양자화기를 지정하는 나머지의 문서에서 사용될 것이다. AVQ는 벡터의 계수와 분할 및 형성에 대한 이득 간의 공간적인 종속성을 사용한다. 소스의 분포가 무엇이든 간에, AVQ는 SQ보다 항상 효과적이다.
Rn에서 규칙적인 래티스의 지점은, 래티스의 베이스를 구성하는 선형적으로 독립적인 벡터 ai의 세트의 가능한 모든 조합으로 구성되며 {y│y = u1a1 + u2a2 + ... unan}, 여기서, 계수 ui는 정수이다. 공간의 분할은 규칙적이며, 오직 선택된 베이스 벡터에만 의존한다. 각각의 베이스는 규칙적인 래티스의 서로 다른 지점을 정의한다. AVQ는, 일반적인 로이드(Lloyd) 알고리즘을 기반으로 한 알고리즘에 의해 설계된 VQ에 비해, 컴퓨팅 및 저장 비용을 상당히 감소시킬 수 있다. 이는, 규칙적인 래티스의 벡터를 양자화 값으로 사용하는 것이 사전을 구축하지 않도록 하며, 사전은 선택된 래티스의 구조를 통해 암시적으로 구성된다. 문헌 [1]은 단순히 카운팅 동작을 사용하고 오직 벡터의 차원 n에 의존하는 신속 양자화 알고리즘을 기술한다. 1979년에 Gersho는, 점근적인 경우(즉, 높은 비율에서), AVQ의 레이트/왜곡 성능은 거의 최적화된다는 추측이 제기되었다. 그러나, 비록 AVQ가 낮은 레이트에 대해 수학적으로 최적이지 않더라도, 이러한 양자화기에 의한 복잡도의 감소는 많은 차원의 벡터를 사용가능하게 하며, 이는 주어진 레이트에 대하여 보다 나은 실험적인 성능을 얻게 한다. 우수한 레이트/왜곡 성능은 AVQ를 엔트로피 코더와 결합함으로써 얻을 수 있으며, 엔트로피 코더는 웨이브렛 분야에서 AVQ에 대해 다수의 연구를 시도하게 하였다. VQ에 대한 많은 이론적인 연구가 가우시안 및 라플라시안 소스에 대해 수행되었다. 나아가, 1 미만의 감소하는 파라미터를 구비하는 일반화된 가우시안 소스의 경우, 삼차원 래티스 Zn이 비율/왜곡에 있어서 래티스 E8 및 리치(Leech) 래티스보다 더 우수함이 밝혀졌다. 이러한 결과는 우리의 연구가 AVQ를 웨이브렛 변환과 결합시키도록 한다.
본 발명에 의해 해결되는 문제점
AVQ에 의한 양자화가 복잡하지 않더라도, 사전의 규칙적인 기하학적인 구조로 인해, 그 구현은 즉각적으로 구현되지 못한다. 비-점근적인(non-asymptotic) 모델의 경우, 가변-길이 코딩(variable-length coding) 및 무한 사전(infinite dictionary)을 사용하는 것으로 가정하므로, 부하 노이즈가 무시된다. 사실, 이는 몇 개의 구체적인 의문점을 제기하며, 특히 컴퓨팅 및 저장에 대하여 의문점을 제기한다. 두 개의 기본적인 문제점이 AVQ의 설계에 제시될 수 있다:
a) 인덱싱(indexing): 인덱싱은 양자화에 독립적인 동작이다. 이는, 코딩되는 경우 디코더의 채널을 통해 전송되는 인덱스를 각각의 양자화된 벡터에 할당하는 단계로 구성된다. 이 동작은 압축 체인에 있어서 기본적이다. 사실, 이 동작은 비트 레이트를 결정하고, 모호하지 않게 벡터가 디코딩되도록 한다. 현재 알려진 방법은 일반적으로 메모리 면에서 매우 값비싸지만, 크지 않은 컴퓨팅 복잡도(반복적인 알고리즘)를 갖거나 특정 경우(래티스 또는 트렁케이션 타입)에 대해서만 기능을 갖는다. 본 발명은 일반화된 가우시안 타입의 분포에 대해 인덱싱을 가능하게 하는 보다 일반적인 접근방법에 관한 것이며, 메모리 비용과 컴퓨팅 비용 간에 적절한 절충을 제공한다.
b) 카운팅(counting): 인덱싱 방법은 일반적으로 래티스의 파퓰레이션(population)에 대한 지식을 기반으로 한다. 따라서, 소스 분포에 의존하는 n-차원 표면(또는 n-차원 공간)에서의 래티스 내 벡터를 카운팅할 수 있어야 한다. 종래의 카운팅 접근방법은 시리즈(series) 생성의 사용을 기반으로 한다. 이러한 형식으로, 함수 Nu가 도입된다. 상기 함수는 피라미드(pyramids), 즉 라플라시안 분포의 경우 카운팅을 할 수 있게 한다. 본 발명은 보다 일반화된 가우시안 타입의 분포에 대한 카운팅을 가능하게 하는 보다 일반적인 접근방법을 제안하여, 메모리 비용과 컴퓨팅 비용 간의 양호한 절충안을 제공한다. 제 2 실시예는 이러한 문제점에 대한 해결책을 제시한다.
본 발명은 첨부된 도면을 참조하여 비-제한적인 예시적인 실시예를 통해 보다 제대로 이해될 것이다.
도 1은 본 발명에 따른 데이터 처리 시스템의 블록도를 도시한다.
도 2는 래티스 Z2에 대하여 rP δ,2 = 15, p = 0.4 그리고 δ = 0.3인 엔벌로프의 예를 도시한다.
도 3은 p = 1, δ = 1 그리고 B = 4에 대하여 일반적인 방법과 제안된 방법의 메모리 요구사항을 비교한 도면이다.
부록 1은 본 발명을 구현하기 위한 코딩 및 디코딩 알고리즘의 예를 제시한다.
데이터 처리 시스템은 주로 세 가지 주요 모듈을 포함한다. 제 1 모듈(1)은 입력 데이터, 예컨대 이미지에 대응하는 디지털 신호를 수신하고, 이러한 샘플링된 신호를 사용하여 알려진 기술을 통해 웨이브렛 변환을 계산한다.
양자화 모듈(2)은 본 발명에 따른 방법을 구현하는 웨이브렛 계수의 벡터 양자화 및 인덱싱 방법에 의해 웨이브렛 계수를 코딩한다.
제 3 모듈은 무손실 압축 방법으로, 저장되거나 송신되는 정보의 사이즈를 줄이도록 요구되는 코딩을 수행한다.
보다 구체적으로, 제 2 모듈(2)에 의해 수행되는 양자화 및 인덱싱 단계가 본 발명의 목적이다. 상기 단계는 종래의 해결책에서 많은 리소스를 요구하며, 종래의 해결책은 모든 리더 벡터들을 결정하는 단계를 포함하고, 그 결과 상기 리더 벡터들을 메모리에 적어도 일시적으로라도 저장한다.
래티스 상의 벡터의 양자화 방법은 일반적으로 오디오, 비디오 및 멀티미디어 신호를 압축하는 시스템에 사용된다. 래티스 벡터 양자화는 균일한 스칼라 양자화의 다차원적인 확장이다. 균일한 스칼라 양자화는 신호, 예컨대 2N 레벨에서 이미지의 각각의 픽셀을 나타내는 신호를 개별적으로 양자화하는 단계로 구성되며, 여기서 N은 양자화기로 할당되는 비트 수이다. 래티스 벡터 양자화는 규칙적인 래티스와 관련되고, 래티스에 속하는 양자화 벡터 또는 양자화된 벡터를 결정할 수 있도록 하며, 벡터의 성분은 코딩될 신호에 의해 추정되는 값을 나타낸다.
보다 구체적으로, 양자화 동작은, 각각의 성분이 코딩될 신호에 의해 추정되는 값을 나타내고 그 결과 실수 R의 세트와 같은 카운팅불가능한 세트에 속하는 원 벡터(original vector)에 따라, 각각의 성분이 비례수 Z의 세트와 같은 카운팅가능한 세트에 속하는 양자화된 벡터 x를 결정하는 단계로 구성된다.
래티스 벡터의 인덱싱은 래티스 양자화 분야의 본질적인 문제점이다. 본 발명은 래티스 리더 벡터 및 분할 이론을 사용하여 이러한 문제점에 대한 해결책을 제시한다. 본 발명은 일반화된 가우시안 분포 소스에 대하여 기능하고, 프로덕트 코드(product codes)의 사용을 가능하게 한다. 또한, 본 발명은 고차원의 벡터를 인덱싱할 수 있도록 한다.
벡터 양자화(VQ)는, 벡터의 차원이 임의적으로 높은 경우, 최적의 이론적인 성능을 달성할 수 있도록 한다.
불행하게도, 최적의 비-구조화된 VQ, 예컨대 LBG의 컴퓨팅 복잡도는 차원에 대해 지수함수적으로 증가한다. 또한, 요구되는 저장도 매우 커질 수 있다. 이러한 차원화의 문제점에 대한 일 해결책은 래티스 벡터 양자화(lattice vector quantisation, LVQ)와 같은 제한된 VQ를 사용하는 것이다.
LVQ 접근방법은 구조화된 사전의 설계로 유도하며, 구조화된 사전의 코드 벡터는 공간 내에 규칙적으로 분포된다. 결과적으로, 공간 내 벡터의 위치를 최적화하는 대신, 벡터의 분포 형태에 따라 래티스 벡터를 인덱싱함으로써 소스를 조정하는 것이 가능해진다. 가장 현실적인 데이터 소스의 경우, 프로덕트 코드를 사용함으로써 효과적으로 수행되어, 대칭적인 단봉형(unimodal) 소스 분포에 대한 최적의 레이트/왜곡 절충안을 유도할 수 있다.
실제로, 이러한 분포는, 소스 분포에 따라 동일한 형태를 갖는 동심원의 초곡면(hypersurfaces)의 세트로 해석될 수 있다. 그리고 나서, 각각의 면의 놈(반경)에 대응하는 제 1 인덱스(프리픽스(prefix) 및 동일한 면에 속하는 벡터의 카운팅에 대응하는 제 2 단일 인덱스(서픽스(suffix))를 할당함으로써, 래티스 코드 워드를 인덱싱하는 것이 가능하다.
많은 중요한 데이터 소스, 예컨대 서브-밴드 스피치 및 이미지 계수, 특히 웨이브릿 변환에 의해 획득된 데이터 소스는, 일반화된 가우시안 분포에 의해 모델링될 수 있다. 이러한 분포의 패밀리는 일도량의(univariate) 확률적인 변수에 대한 고유의 형태 인자 p (GG(p))에 의해 파라미터화된다. 분포 (GG(p))를 갖는 소스의 흥미로운 특성은, 놈 lp의 엔벌로프가 일정한 확률면(probability surfaces)에 대응하는 점이다. 이는 효율적인 프로덕트 코드의 개발을 유도한다.
프리픽스의 계산이 사소하더라도, 서픽스는 주어진 초곡면 상에 위치하는 래티스 벡터의 카운팅 및 인덱싱을 요구한다. 또한, 공간의 차원의 증가는 인덱싱 동작을 매우 복잡하게 만들 수 있으며, 이는 주어진 초피라미드(hyperpyramid)의 리더의 개수와, 래티스 Zn 및 서로 다른 차원과 놈 값에 대하여 놈 l1의 경우 상기 초피라미드(기수(cardinality))에 위치하는 래티스 리더의 전체 개수를 비교하는 표 1에 설명된 바와 같이, 엔벌로프에 위치하는 벡터의 개수가 놈에 따라 크게 증가하기 때문이다.
차원 리더의 개수 기수(cardinality)
3 10
400
1000
13
884
83834
402
640002
4000002
9 10
172
1842
41
1.37×108
9.98×1015
1854882
9.74×1015
1.68×1024
18 10
29
450
42
4426
9.89×1015
317222212
8.42×1015
9.39×1015
60 5
11
303
7
56
9.88×1015
207648024
1.90×1015
2.54×1015
120 4
9
301
5
30
9.92×1015
138259200
7.30×1015
9.50×1034
240 3
7
301
3
15
9.93×1015
18432160
1.17×1015
1.68×10203
본 명세서에서, 서픽스의 인덱싱은 일반적으로 두 개의 서로 다른 기술에 따라 수행된다.
제 1 접근방법은 주어진 초곡면(기수)에 위치하는 벡터의 총 개수를 고려하는 인덱스를 사용한다. 다른 접근방법은 리더의 개념을 사용하여 래티스의 대칭성을 이용한다. 놈 lp의 엔벌로프의 리더는, 대응하는 엔벌로프에 위치하는 다른 모든 래티스 벡터가 치환(permutations)에 의해 획득될 수 있고 벡터의 좌표의 부호를 변경하는 래티스 백터들에 대응한다. 이러한 두 개의 접근방법들은 등방성의 소스에 대하여 유사한 레이트/왜곡 성능을 갖는 경향이 있다.
그러나, 래티스 인덱싱에 대한 대부분의 연구는 오직 라플라시안 또는 가우시안 분포에 대한 해결책만을 제시하며, 상기 분포는 형상 파라미터 p = 1, p = 2인 GG(p)의 특정한 경우이다. 일부 사람들은 p = 0.5인 특정한 경우에 대한 해결책을 제시한다. 그러나, 이러한 카운팅 방법은 프로덕트 코드가 구조화될 수 있도록 하지 않으며, 실제로 인덱싱 방법은 매우 복잡하며, 특히 높은 차원과 놈에서의 p ≠ 0.5, 1 또는 2인 경우에 매우 복잡하다.
본 발명은 0 < p ≤ 2인 경우 엔벌로프 GG(p)에 위치하는 래티스 벡터 Zn의 인덱싱에 대한 신규한 대안을 제시한다. 제안되는 해결책은 벡터들을 기반으로 하고, 분할 이론(theoryof partitions)을 사용한다.
분할 이론의 사용은 리더를 생성하고 인덱싱하기 위한 복잡도 및 저장 요건을 극복할 수 있도록 한다. 본 발명은 변환 테이블을 사용하지 않고 서픽스 인덱스를 어트리뷰팅(attribute)하는 경제적인 인덱싱 알고리즘을 제안한다.
이어지는 발명의 상세한 설명에서, 제 1 부분은 LVQ의 원리를 제시하고, 인덱싱의 문제점을 기술한다. 제 2 부분은 형상 파라미터 p가 무엇이든 간에 매우 큰 사이즈의 LVQ 코드북을 인덱싱하는 효과적인 해결책을 인덱싱 예와 함께 제안한다. 그 다음으로, 본 명세서는 제안된 접근방법의 메모리에 관한 비용을 기술하고, 효과적인 실제 데이터 인덱싱을 위한 성능 값을 지시한다.
2. 래티스 벡터의 인덱싱
2.1 래티스의 정의
Rn 내의 래티스 Λ는, 선형적으로 독립적인 벡터 ai(래티스의 베이스)의 세트의 임의의 완전한 조합으로 구성된다. 래티스는 다음과 같이 표현된다:
Figure 112011000174200-pct00001
여기서, ui는 정수이다. 따라서, 공간의 분할은 규칙적이고, 오직 선택된 베이스 벡터 ai ∈ Rm (m≥n)에만 의존한다. 베이스 벡터의 각각의 세트는 서로 다른 래티스를 정의한다.
래티스의 각각의 벡터 ν는 일정한 놈 lp를 갖는 벡터를 포함하는 초곡면의 표면에 속하는 것으로 고려되며, 놈 lp는 다음과 같이 주어진다:
Figure 112011000174200-pct00002
그리고 나서, 프로덕트 코드를 사용하여 주어진 래티스 벡터를 코딩하는 것이 가능하다. 소스 벡터의 분포가 라플라시안인 경우, 적절한 프로덕트 코드는 벡터의 놈 l1에 대응하는 프리픽스 및 반경이 놈 l1과 동일한 초피라미드 상의 벡터의 위치에 대응하는 서픽스로 구성된다. 일정한 놈 l1의 초곡면은 초피라미드로 불린다. 초곡면 상의 벡터의 위치는 카운팅 알고리즘을 사용하여 획득될 수 있다. 이러한 프로덕트 코드는 디코딩에 대한 고유성(uniqueness)을 보장한다.
형상 파라미터가 1 이하인 일반화된 가우시안 분포를 갖는 소스의 경우, D4, E8 또는 리치 래티스 상의 큐빅 Zn 래티스의 우월함(superiority)은 [12]에 기술된다. 결과적으로, 이하에서는 큐빅 Zn 래티스를 기반으로 한 LVQ의 설계에 초점이 맞춰진다.
2.2 전체 카운팅을 기반으로 한 인덱싱
종래에는, 가우시안 또는 라플라시안 분포와 전체 카운팅(total counting)의 원리를 기반으로 한 서로 다른 래티스에 대하여 다수의 카운팅 솔루션이 알려져 있다. 놈 l1의 초피라미드에 위치하는 래티스 벡터의 총 개수를 카운팅하는 반복형 공식은 특히 라플라시안 소스 분포와 래티스 Zn의 경우에 알려져 있다. 상기 카운팅 공식은 형상 팩터 p가 0 내지 2인 일반화된 가우시안 소스 분포까지 확장되었따. 이러한 솔루션은 주어진 트렁케이션 놈(truncation norm) lp 내에 위치하는 벡터의 개수를 결정할 수 있도록 하지만, 상기 해결책은 래티스 Zn의 벡터에 실제 인덱스를 할당하는 알고리즘을 제안하지는 않는다. 또한, 상기 해결책은 주어진 초곡면에 위치하는 벡터의 개수를 결정하지 않으며, 이는 프로덕트 코드를 사용하기 어렵게 한다.
종래의 연구에서 제안된 알고리즘은 0 < p ≤ 2에 대한 프로덕트 코드 구조에 따라 벡터를 인덱싱한다. 이는 일반화된 세타 시리즈 [4]를 기반으로 하며, 래티스의 기하학적인 구조를 사용한다. p = 1 또는 2인 경우, 상기 시리즈의 개발은 상대적으로 단순하다. 그러나, 다른 값의 p인 경우에는 상기 시리즈의 개발은 매우 복잡해지며, 이는 닫힌 형상(closed shape)이 생성되지 않고 형식적인 수학이 사용되지 않기 때문이다. 제안된 해결책에 의하면, 다양한 차원 및 높은 차원에 대한 각각의 가능한 놈 값을 결정하는 것이 요구되며, 상기 놈 값은 유한한 시간에서 달성하기 어려운 경향을 갖는다.
또한, 초곡면의 기수는 실제 구현, 특히 높은 차원의 경우 다루기 힘든 값에 급격하게 도달할 수 있으며(아래의 표 참조), 엔벌로프의 기수를 기반으로 하는 인덱싱 기술은 컴퓨팅 정확도를 급격하게 초과할 수 있다.
2.3 리더를 기반으로 하는 인덱싱
리더를 기반으로 하는 방법은 래티스의 대칭성을 이용한다. 상기 방법은 일정한 놈 엔벌로프에 대한 효과적인 인덱싱 알고리즘을 사용하고, 인덱스는 래티스의 벡터의 총 개수를 기반으로 하지 않고, 리더로 불리는 적은 수의 벡터를 기반으로 한다. 래티스의 서로 다른 대칭성은 개별적으로 처리되며, 전체 카운팅 기술과 비교하여, 대칭성이 전부 제시되지 않은 경우 소스를 인덱싱하는 보다 효율적인 방법을 구성한다. 또한, 코딩 알고리즘에 의해 관리되는 인덱스는 엔벌로프의 기수보다 훨씬 작으며, 주어진 이진적인(binary) 정확성에 대한 전체 카운팅을 기반으로 하는 방법에 의해 인덱싱될 수 없는 벡터를 인덱싱할 수 있다.
프로덕트 코드 구조에서, 래티스의 대칭성과 분리하여, 서픽스 인덱스는 초곡면의 다른 모든 벡터가 할당될 수 있는 적은 수의 벡터(리더)의 인덱스를 포함한다. 래티스 Zn의 경우, 대칭성은 다음과 같은 두 가지 기본 동작에 대응한다: 부호의 변경과 벡터 좌표의 치환. 제 1 동작은 벡터가 위치하는 8분 공간(octant)의 변경에 대응한다. 예를 들어, 2 차원의 벡터 (7, -3)는 사 사분면에 위치하며, 벡터 (-7, -3)는 삼 사분면에 위치한다. 이러한 벡터는 y 축에 대하여 대칭적이다. 제 2 동작은, 예를 들어 벡터 (-7, 3)과 (-3, 7)이 이 사분면에 위치하고 사분면의 이등분선에 대하여 대칭적인 경우, 인트라-옥턴트(intra-octant)에 대응한다. 이 경우, 이러한 모든 벡터는 벡터 (3, 7)의 치환 및 부호 변경으로 생성될 수 있음이 관찰될 수 있으며, 상기 벡터 (3, 7)은 이러한 모든 벡터들의 리더이다. 이러한 레이셔는 초곡면의 차원과 함께 급격하게 증가한다. (표 1 참조)
결과적으로, 초곡면 상의 모든 벡터들을 직접적으로 인덱싱하는 대신, 상기와 같은 인덱싱 방법은 각각의 벡터로 다음과 같은 세 가지 인덱스들의 세트를 할당한다: 하나는 그 리더에 대응하고, 다른 둘은 리더의 치환과 부호의 변경에 대응됨. 치환 및 부호 인덱스를 계산하는 방법에 대한 보다 상세한 설명은 1' [5]를 참조한다.
3. 제안된 인덱싱 방법
3.1 놈 l1에 대한 제안된 리더의 인덱싱
3.1.1 이론
본 발명은 사전식 배열의 역순으로 모든 벡터들을 분류하는 것을 기반으로 하는 해결책을 제안하고, 인덱싱될 리더에 선행하는 벡터의 개수에 따른 인덱스를 어트리뷰팅한다. 이 경우, 인덱싱은 더 이상 많은 리소스를 소모하고 직접적으로 어드레싱하는 검색 알고리즘을 기반으로 하지 않으며, 리더 각각에 대한 명백한 지식보다는 리더의 수량에만 의존하는 저 비용의 카운팅 알고리즘을 기반으로 하며, 이는 변환 테이블의 구조화를 방지할 수 있다.
반경 r의 초피라미드는 모든 벡터 V = (v1, v2, ... , vd)로 구성되어, ∥v∥1 = r이 된다. 전술한 바와 같이, 리더는 치환 및 부호의 변경이 상기 초곡면에 위치하는 다른 모든 벡터를 유도하는 초 곡면의 근본적인 벡터이다. 실제로, 리더는 오름차순(또는 내림차순)으로 분류되는 양의 값의 좌표를 갖는 벡터이다. 결과적으로, 놈 l1에 대한 리더는 r과 동일하고, 차원 d는 다음과 같은 조건을 만족하는 벡터이다:
1:
Figure 112011000174200-pct00003
2: 0 ≤ vi ≤ vi, 여기서 i < j이고 i, j ∈ [1, d]임.
3.1.2 분할 이론과의 연결
놈 l1의 경우, 섹션 3.1.1에 제시되는 조건은 숫자 이론(theory of nubmers)의 분할 이론에 관련된다. 실제로, 숫자 이론에서, 양의 정수 r의 분할은 r을 d의 양의 정수(부분(part)으로도 불림)의 합으로 기록하는 방법이다. r의 구별되는 분할의 개수(순서에 독립적임)는 분할 함수 P(r)에 의해 주어져, 다음과 같이 얻어질 수 있다:
Figure 112011000174200-pct00004
이는 상호적인 오일러 함수에 대응하며, 또한 시리즈 q [10, 16, 17]로도 언급된다. 추가적인 수학적 개발은 계산을 가속화시킬 수 있는 함수 P(r)의 대표값을 얻게 한다.
예를 들어, r = 5의 경우, 수학식 2에 의해 P(5) = 7이 계산된다. 실제로, 숫자 5의 모든 가능한 분할들은 (5), (1, 4), (2, 3), (1, 1, 3), (1, 2, 2), (1, 1, 1, 2) 및 (1, 1, 1, 1, 1)이다. 이러한 분할들을 5차원의 벡터, 예컨대 (0, 0, 0, 0, 5), (0, 0, 0, 1, 4), (0, 0, 0, 2, 3), (0, 0, 1, 1, 3), (0, 0, 1, 2, 2), (0, 1, 1, 1, 2) 및 (1, 1, 1, 1, 1)로 다시 기술함으로써, 상기 벡터들은 섹션 3.1.1의 조건을 만족시키는 놈 r = 5과 d = 5인 초피라미드의 리더에 정확히 대응하는 것을 발견할 수 있다.
그러나, 일반적으로 r ≠ d인 d 차원의 래티스에서 r과 동일한 놈 l1의 엔벌로프가 고려된다. 이 경우, d 부분들 이상을 구비하지 않는 r의 분할의 개수를 계산하는 함수 q(r, d) [10, 18]을 사용하는 것이 가능하다(분할 이론에서, 이는 임의의 숫자를 갖는 부분들을 구비하지 않은 d보다 큰 임의의 원소를 포함하지 않은 r의 분할의 개수를 계산하는 것과 균등하다). 결과적으로, 놈 r = 5와 차원 d = 3인 초피라미드의 경우, q(5, 3) = 5이며, 즉, 다섯 개의 리더 (0, 0, 5), (0, 1, 4), (0, 2, 3), (1, 1, 3) 및 (1, 2, 2)가 주어진다.
함수 q(r,d)는 다음과 같은 반복적인 수학식으로부터 계산될 수 있다:
Figure 112011000174200-pct00005
여기서, d ≥ r에서는 q(r, d) = P(r)이며, q(1, d) = 1이고 q(r, 0) = 0이다.
3.1.3 리더의 인덱싱을 위한 함수 q(r, d)의 사용
후술하는 바와 같이, 수학식 3은 주어진 초피라미드에 위치하는 리더의 전체 개수를 계산할 뿐만 아니라, 변환 테이블을 필요로 하지 않으면서, 리더에 대한 플라이(fly) 고유 인덱스를 이용하도록 사용된다. 인덱싱 알고리즘의 이론을 설명하기 위해, 주어진 초피라미드의 리더는 아래와 같이 사전식 배열의 역순으로 분류됨을 가정한다:
인덱스 값 리더
0 (0, ..., 0, 0, rn)
1 (0, ..., 1) 0, 1, rn - 1)
2 (0, ... , 2) 0, 2, rn - 2)
3 (0, ..., 2) 1, 1, rn - 2)
... ...
따라서, 리더 l의 인덱스는 상기 리더에 선행하는 리더의 개수에 대응한다. 전술된 예에서, 리더(0, ..., 1, 1, rn - 2)는 인덱스 3으로 할당되어야 한다.
수학적인 명제 1은 리더의 인덱싱을 위한 방법을 기술한다:
명제 1: v = (v1, v2, ..., vn)이 일정한 놈 l1의 엔벌로프에 위치하는 리더 l = (x1, x2, ..., x)를 갖는 래티스 벡터 Zn이라고 한다. 리더의 인덱스 I1은 다음과 같이 주어진다:
Figure 112011000174200-pct00006
xn -(j+1) ≠ 0임.
여기서,
Figure 112011000174200-pct00007
는 k 보다 작거나 같은 d 부분보다 더 구비하지 않는 r의 분할의 개수를 계산하며,
Figure 112011000174200-pct00008
이고, xn +1 = +∞이다.
증명: 차원이 n이고 놈이 l1인 리더 l = (x1, x2, ..., xn)와 인덱스되어야 할
Figure 112011000174200-pct00009
을 고려해본다. 리더가 사전식 배열의 역순으로 분류되기 때문에, ㅣ 전에 배치되는 제 1 그룹의 리더는, n 번째 성분이 엄격하게 xn보다 큰 모든 리더들로 구성되며, 즉 모든 리더는 xn + 1 ≤ gn ≤ rn을 만족하는 가장 높은 좌표 gn를 갖는다.
리더들을 나열하지 않고 제 1 그룹 내의 리더의 개수를 카운팅하기 위해, 분할 함수인 q(r, d)를 사용한다. 실제로, n 번째 좌표가 gn과 동일한 리더의 개수는 다음과 같은 내용을 사용하여 용이하게 계산될 수 있다:
내용: 가장 큰 좌표가 gn과 동일한, 놈이 rn이고 차원이 n인 리더의 개수의 계산은, gn보다 큰 임의의 부분을 구비하지 않고 n - 1 개 이상의 부분들을 구비하지 않는 숫자 rn - gn의 분할의 개수를 계산한다.
대부분의 경우, q(rn - gn , n - 1)을 적용시킴으로써 분할의 개수를 카운팅할 수 있다. 그러나, 이러한 접근방법은 오직 rn - gn ≤ gn인 경우에만 유효하며, 이 경우는 rn - gn의 모든 분할들이 gn보다 큰 부분을 갖지 않음이 가정된 경우이다. 그러나, 보다 일반적인 경우에서는 rn - gn < gn이 보장되지 않으며(예를 들어, 가장 큰 부분이 7과 동일하고, 놈 rn = 20이고 차원 n = 5인 리더의 개수는 q(20-7, 5-1) = q(13, 4)를 유도할 것이며, 여기서 20 - 7 ≤ 7임), q(rn - gn , n - 1)은 유효한 리더의 잘못된 개수를 유도할 것이며, 이는 rn - gn 의 일부 분할이 gn보다 우수한 가장 큰 부분을 가져 섹션 3.1.1의 두 번째 조건을 만족하지 않을 것이기 때문이다.
이러한 경우, 분할의 개수의 계산에 다음과 같은 제 2 제한을 적용해야 한다: 가장 큰 부분의 값. 그리고 나서, 함수
Figure 112011000174200-pct00010
에 의해 주어지는
Figure 112011000174200-pct00011
의 일반화가 도입되며, 상기 함수는 k 보다 큰 임의의 부분은 갖지 않고, d 부분 이상을 갖지 않은 주어진 수 r에 대한 분할의 개수를 계산한다.
Figure 112011000174200-pct00012
의 계산은 카운팅 알고리즘에 의해 수행된다.
결과적으로,
Figure 112011000174200-pct00013
를 적용함으로써 유효한 리더의 정확한 개수를 계산할 수 있다. 따라서, gn이 xn + 1에서 rn으로 변하는 것은, 가장 큰 좌표가 엄격하게 xn보다 큰 리더의 개수를 결정할 수 있도록 하며, 리더의 개수는 다음과 같다:
Figure 112011000174200-pct00014
여기서,
Figure 112011000174200-pct00015
이고,
Figure 112011000174200-pct00016
이고,
Figure 112011000174200-pct00017
이다. 이 경우, 숫자 이론에 사용되는 전반적인 기호법을 사용하며, 여기서 Z+는 모든 양의 정수를 나타내어 {i ∈ Z │i > 0}이고, Z*는 모든 음수가 아닌 정수를 나타내어 {i ∈ Z │i ≥ 0}이다.
l에 선행하는 제 2 그룹의 리더는, n 번째 좌표가 Xn과 동일하지만 (n - 1) 번째 좌표는 엄격하게 xn -1보다 큰 모든 리더로 구성된다. 이러한 리더의 개수를 카운팅하기 위해, 전술한 동일한 내용을 사용할 수 있으나, 이 번에는 n - 1 차원에 적용시킨다. 그리고 나서, gn -1을 xn -1 + 1에서 min(xn, rn -1)로 변화시킴으로써
Figure 112011000174200-pct00018
또는
Figure 112011000174200-pct00019
을 사용하여, 가장 큰 성분 gn은 xn이고 두 번째로 큰 성분 gn -1은 Xn -1보다 큰 리더의 개수를 계산한다. 최소 함수(min function)는 놈 rn 및 gn -1 ≤ gn = Xn이 만족되는 것을 보장한다.
추가적인 차원에서의 결과를 기다리는 도중, l에 선행하지만 가장 높은 좌표가 xn과 동일한 리더의 개수는 다음과 같이 얻어질 수 있다:
Figure 112011000174200-pct00020
xn -(j+1) ≠ 0임.
수학식 5 및 6의 조합은 l 전에 위치하는 리더의 전체 개수를 계산하는 일반적인 공식을 유도하며, 따라서, l의 인덱스 I1(수학식 4)은 다음과 같다:
Figure 112011000174200-pct00021
xn -(j+1) ≠ 0임.
여기서, j = 0인 경우 xn +1 = +∞이다.
3.2. 놈 lp의 경우에 대한 일반화
0 < p < 2에서, 일정한 놈 lp의 엔벌로프에 위치하는 벡터 v = (v1, v2, ..., vn)의 리더 l = (x1, x2, ..., xn)의 인덱스를 계산하기 위해, l1의 경우와 동일한 원리가 적용된다. 리더는 사전식 배열의 역순으로 나열되고, 인덱스는 동일한 카운팅 접근방법을 사용하여 어트리뷰팅된다. 결과적으로, 수학식 4의 구조가 적절하며, 함수
Figure 112011000174200-pct00022
를 사용한 i 에 대한 합계는 주어진 좌표에 따른 리더의 개수를 계산하고, j 에 대한 합계는 차원 상에서 반복을 허용한다.
그러나,
Figure 112011000174200-pct00023
의 사용은 내재적으로, 놈 r의 합계 xp i가 정수이고, [0, r]의 범위에서 임의의 정수일 수 있음을 의미한다. 이는 p = 1의 경우 명백히 유효하며, 합계는 래티스를 좌표화하는 양의 정수이다. 다른 한편으로는, p ≠ 1이 아닌 경우에는, 합계 xp i가 반드시 정수일 필요는 없거나, 범위 [0, r] 내의 임의의 정수이지 않을 수도 있다(예를 들어, p = 2인 경우, 합계는 정수이지만, 제곱수임).
이와 같은 문제점은, 정확도 δ로 xp i를 가장 가까운 정수로 반올림함으로써 해결할 수 있다. 유사한 기술이 [7, 9]에서 사용되었다. 이러한 동작은 모든 정수
Figure 112011000174200-pct00024
로 구성된 정수
Figure 112011000174200-pct00025
의 새로운 서브셋을 도입하며, 여기서
Figure 112011000174200-pct00026
이고, []는 가장 가까운 정수이고 xi ∈ Z+이다.
그리고 나서, 벡터의 놈 lp는 정확도 δ로 알려지고, 다음과 같이 획득된다:
Figure 112011000174200-pct00027
여기서, 정확도 δ는 일정한 놈 rp δ,n의 엔벌로프의 폭을 정의하고, 값이 증가할수록 보다 많은 벡터를 포함한다(도 2 참조).
도 1은 래티스 Z2의 경우 rp δ,2 = 15, p = 0.4, δ = 0.3인 엔벌로프의 예이다.
결과적으로, 일정한 놈 lp의 벡터의 리더 인덱스의 계산은, 오직 서브셋
Figure 112011000174200-pct00028
에 속하는 정수인 분할의 정확한 개수의 계산에 대응한다. 수학적인 명제 2는 우리가 제안하는 해결책을 기술한다:
명제 2: v = (v1, v2, ..., vn)이, 일정한 놈 lp의 엔벌로프에 위치하는 리더 l = (x1, x2, m, xn)을 구비하는 래티스 벡터 Zn인 것으로 가정한다. 그 리더 인덱스 Il은 다음과 같이 주어진다:
Figure 112011000174200-pct00029
xn -(j+1) ≠ 0임.
여기서,
Figure 112011000174200-pct00030
는,
Figure 112011000174200-pct00031
이고 xn +1 = +∞이며, k(k ∈ Z*)보다 작거나 같은 d 부분 이상을 구비하지 않는 r(r ∈
Figure 112011000174200-pct00032
)의 분할의 개수를 계산한다. f(a)는 최대값 i(i ∈ Z*)를 제공하여, a ≤
Figure 112011000174200-pct00033
이고 t(i) =
Figure 112011000174200-pct00034
인 경우 t(i) ≤ a가 된다.
증명: 차원이 n이고 놈이 lp인 리더 l = (x1, x2, ..., xn)과 인덱싱되어야 할
Figure 112011000174200-pct00035
를 고려한다. 전술한 바와 같이, 수학식 4와 동일한 이론이 사용된다. 그러나, 함수
Figure 112011000174200-pct00036
는 더 이상 적용가능하지 않으며, 이는 p ≠ 1인 놈 lp의 합이 항상 정수인 것은 아니기 때문이다.
정확도 δ로 xp i를 가장 가까운 정수로 반올림하는 것은, 수학식 7에 정의된 바와 같이, 양의 정수 값
Figure 112011000174200-pct00037
의 합으로부터 정수 놈 rp δ,n을 획득할 수 있도록 한다. 결과적으로, 정확도 δ로 p ≠ 1의 엔벌로프에 위치하는 리더 l의 인덱스는,
Figure 112011000174200-pct00038
= r을 기록하는 서로 다른 방식의 개수를 카운팅함으로써
Figure 112011000174200-pct00039
의 합으로 계산될 수 있으며, 여기서,
Figure 112011000174200-pct00040
는 t로 정의되는 함수 t의 이미지 전체이며, Z*
Figure 112011000174200-pct00041
로 매칭되어 xi
Figure 112011000174200-pct00042
로 매칭시키며, 여기서 t(xi) =
Figure 112011000174200-pct00043
이다.
여기서 p 와 δ의 값에 의존하여, 함수 t는 비-주입식(non-injective) 함수를 나타낼 수 있으며, Z*의 서로 다른 값은
Figure 112011000174200-pct00044
의 동일한 값과 매칭될 수 있다. 결과적으로, 서로 다른 리더 l ∈ Zn+는
Figure 112011000174200-pct00045
에 동일한 대표를 구비할 수 있으며,
Figure 112011000174200-pct00046
내의 분할의 개수를 카운팅하기 위한 임의의 단순한 과정은 잘못된 리더 인덱스를 유발할 뿐만 아니라 구별되는 리더에게도 동일한 잘못된 인덱스를 유발할 것이다.
d 부분 이상을 갖지 않는 r(r ∈
Figure 112011000174200-pct00047
)의 분할의 개수를 카운팅하는 함수로서 함수
Figure 112011000174200-pct00048
를 해결책으로 정의하며, 여기서 부분은 t(i) ∈
Figure 112011000174200-pct00049
에 의해 주어지고, k보다 큰 i는 없으며, k ∈ Z*이다. 간접적으로 Z*의 값 k를 사용하는
Figure 112011000174200-pct00050
내의 가장 큰 부분의 값에 대한 제한은,
Figure 112011000174200-pct00051
내의 동일한 분할로 유도하는 서로 다른 리더들의 개수를 카운팅할 수 있도록 한다.
결과적으로,
Figure 112011000174200-pct00052
를 사용하여, 수학식 4가 놈 lp에 대하여 다음과 같이 확장될 수 있다:
Figure 112011000174200-pct00053
xn -(j+1) ≠ 0임.
여기서, f(a)는 최대값 i ∈ Z*를 제공하여, a ≤
Figure 112011000174200-pct00054
인 경우 t(i) ≤ a가 된다.
수학식 9의 j를 0에서 n - 2까지 변경시킴으로써, xn에서 x2로의 좌표에 대하여 l에 선행하는 리더의 개수가 정확하게 카운팅된다. 놈 l1의 경우, 이전 리더들의 전체 개수를 계산하기에 충분한 조건이며,
Figure 112011000174200-pct00055
의 경우 x1 ∈ Z*인 단일 값이 존재하도록 주어진다. 그러나, 놈 lp의 경우, 함수 t의 비-주입성 때문에, 다수의 값들 xl ∈ Z*
Figure 112011000174200-pct00056
로 유도할 수 있다. 결과적으로, 인덱스의 고유성을 보장하기 위해, min(f(x1), x2)와 x1 간의 차이가 계산되고 상기 차이는 수학식 9에 더해져, 수학식 8에 의해 주어지는 고유한 디코딩가능한 리더 인덱스를 획득한다.
Figure 112011000174200-pct00057
xn -(j+1) ≠ 0임.
상기 함수 min은,
Figure 112011000174200-pct00058
가 x2보다 큰 반면(섹션 4의 예를 참조), x1은 x2보다 작거나 같을 수 있음을 요구한다.
Figure 112011000174200-pct00059
의 계산은 카운팅 알고리즘에 의해 수행된다.
3.3 리더 인덱스의 디코딩
리더 l = (x1, x2, ..., xn)의 인덱스 I 및 리더의 놈 lp rp δ,n의 인덱스가 디코더로 송신된다고 가정한다. 나아가, 코딩에 사용되는 벡터의 차원 n, 형상 팩터 p 및 정확도 δ가 디코더에 의해 알려져 있다고 가정한다. 여기에서는 오직 이러한 정보만을 사용하여 xi,
Figure 112011000174200-pct00060
의 정확한 값을 추출하는 것을 목표로 한다. 코딩 단계에서, 본 발명은 n 번째 좌표 xn을 처리하는 것부터 시작할 것이다.
디코더에서, 본 발명은 놈 및 차원에 관련된 정보를 사용하여 xn ∈ [imin(rp δ,n, n), f(rp δ,n)]임을 분명히 파악할 수 있다(수학식 8 및 10 참조). 나아가, Il이 l에 선행하는 벡터의 개수이므로, 가장 높은 좌표 gn ≥ xn을 갖는 벡터의 개수는 Il보다 더 크다. 이는 xn이 i ∈ {f(rp δ,n), f(rp δ,n) - 1, f(rp δ,n) - 2, imin(rp δ,n, n)}의 첫 번째 값이며, 가장 큰 성분 gn ≥ i를 갖는 벡터의 개수는 Il보다 더 큰 것을 의미한다.
결과적으로, xn을 추출하기 위해, f(rp δ,n)에서 0까지 변하는 가장 큰 성분을 갖는 벡터의 개수는, Il보다 더 큰 벡터의 전체 개수를 얻을 때까지 카운팅된다. 섹션 3.1에 도입되는 이론을 사용하면, 이는 다음과 같이 분할의 개수 N을 계산하고:
Figure 112011000174200-pct00061
Np ≤ Il임.
Np > Il인 i의 첫 번째 값을 xn으로 어트리뷰팅하는 것과 같다. 다음으로 xn -1을 디코딩한다.
xn을 디코딩하기 위해 사용되는 이론과 동일한 이론을 적용함으로써, xn -1 ∈ [imin(rp δ,n-1, n-1), min[xn, f(rp δ,n-1)]]을 파악할 수 있다(수학식 8 및 10 참조). rp δ,n-1이 디코더에 알려져 있고 xn이 디코딩되어 있으므로, rp δ,n-1 을 계산함으로써 rp δ,n-1 = rp δ,n - t(xn)이 획득될 수 있다.
다음으로, Xn -1을 디코딩하기 위해, 본 발명은 수학식 10과 유사한 메커니즘을 사용하여 Np를 카운팅하지만, 이번에는 (n-1)번째 좌표와 관련하여 카운팅한다.
이 경우, Np > Il이므로, 제 1 단계에서, Np를 그 선행하는 값으로 파라미터화함으로써, 분할 Np의 카운터를 xn과 동일한 n 번째 성분을 갖는 첫 번째 리더를 가리키도록 하며, 상기 선행하는 값은 이하 Npbckp로 언급한다("선행하는 값"은 Np의 가장 큰 값에 대응하며, Np ≤ Il이며, 다른 말로, i의 마지막 값 이전의 Np의 값은 합계에 포함됨). 선행하는 값은 Np ≤ Il인 Np의 가장 큰 값을 지정하며, 다른 말로, i의 마지막 값 이전의 Np의 값은 합계에 포함된다. 결과적으로, 본 발명은 i ∈ {min [xn, f(rp δ,n-1)], min [xn, f(rp δ,n-1)] - 1, imin (rp δ,n-1, n-1)}의 첫 번째 값을 xn -1로 어트리뷰팅하며, 가장 큰 좌표 gn = xn 및 두 번째로 큰 좌표 gn _1 ≥ i를 갖는 벡터의 개수는 Il - Npbckp이다.
상기 프로세스는 차원에서 다음과 같이 일반화될 수 있다:
Figure 112011000174200-pct00062
Np (j) ≤ Il임.
여기서, j = 0인 경우
Figure 112011000174200-pct00063
= 0이고, xn +1(0, d, k) = 1이고,
Figure 112011000174200-pct00064
= +∞이다. j를 0 내지 n-2에서 변경시킴으로써, 본 발명은 리더 l의 좌표 xn 내지 x2를 디코딩할 수 있다.
x2가 디코딩되면, rp δ,1 = rp δ,2 - t(x2)를 계산함으로써 rp δ,1가 획득될 수 있다. 그러나, 전술한 바와 같이, 복수의 x1 ∈ Z* 값들이
Figure 112011000174200-pct00065
에서 매칭될 수 있다(수학식 7을 사용하여, 본 발명은
Figure 112011000174200-pct00066
를 추론할 수 있음). 해결책을 얻기 위해, 본 발명은 코더에 차이값 min(f(rp δ,1), x2) - x1을 도입하여, 좌표 x1은 x1 = min(f(rp δ,1), x2) - (Il - N(n-2) pbckp)를 계산함으로써 고유한 방식으로 디코딩될 수 있다. 실제로, N(n-2) pbckp(x2를 디코딩한 후 획득되는 Np의 선행하는 값)는 수학식 9를 사용하여 계산되는 값(차이값을 더하기 전의 Il 값)과 동일하며, 이는 이들 두 값들이 엄격하게 동일한 기준의 결과이기 때문이다.
결과적으로, 리더 l = (x1, x2, ..., xn)은 오직 정보 Il, rp δ,n, n, p 및 8만을 사용하여 디코딩된다. 다음 섹션은 리더의 코딩 및 디코딩에 대한 예를 기술한다.
4. 코딩 및 디코딩의 예
v = (-20, 16, 15, -40)가 형상 팩터 p = 0.3을 갖는 인덱스되어야 하는 일반화된 가우시안 분포를 갖는 소스의 양자화된 래티스 벡터로 가정한다. 치환 및 부호 인덱스의 계산이 본 연구의 범위에 포함되지 않고, [5, 13]을 사용하여 용이하게 수행될 수 있기 때문에, 본 발명은 리더의 인덱싱에 초점을 맞춘다. 벡터 v에 대응하는 리더는 l = (15, 16, 20, 40)이다. 코딩 및 디코딩 알고리즘은 다음과 같은 이론을 기반으로 한다.
코딩 단계:
1) 초기화: p = 0.3이고 정확도 δ = 0.1이라고 가정한다. 리더 인덱스 Il = 0이라고 가정한다;
2) 정확도 δ를 갖는 리더 l의 놈 lp를 계산:
Figure 112011000174200-pct00067
;
3) 다음과 같은 동작을 수행: 본 발명은 f(101)을 결정함으로써 시작될 것이다. 이 경우, F(101) = 2264이다. 다음으로, j = 0이고 i가 41(즉, 40 + 1) 내지 2264(즉, min(+∞, 2264))인 조건에 대하여 수학식 8을 사용하여 다음과 같은 결과를 얻는다:
Figure 112011000174200-pct00068
4) 가장 큰 성분 g4가 40인 선행하는 리더 l의 개수를 계산한다. 이는, 본 발명이
Figure 112011000174200-pct00069
을 3)에 더해야함을 의미한다.
f(71) = 704, j = 1, i가 21 내지 40(즉, min(40, 704))인 조건으로 수학식 8을 사용하여 다음과 같은 결과를 얻는다:
Figure 112011000174200-pct00070
5) 가장 큰 성분 g4 = 40, g3 = 20을 갖는 선행하는 리더 l의 개수를 계산한다. 이 경우, 본 발명은
Figure 112011000174200-pct00071
을 2)에 더해야 한다. f(46) = 167, j = 2, i가 17 내지 20(즉, min(20, 167))인 조건으로 수학식 8을 사용하여 다음과 같은 결과를 얻는다:
Figure 112011000174200-pct00072
6) 마지막으로, 다음과 같이 계산함으로써 Il을 업데이트한다(수학식 8 참조):
Il = 100774 + (min(f(x), x2) - x1)
= 100774 + (min(f(23), 16) - 15)
= 100774 + (min(17, 16) - 15)
= 100775
결과적으로, p = 0.3, δ = 0.1인 리더 l = (15, 16, 20, 40)의 인덱스는 Il = 100775이다. 부록의 제 1 알고리즘은 전체 코딩 프로세스를 컴파일한다.
디코딩 단계:
1) 초기화: rp δ,n = 101, Il = 100775, p = 0.3, δ = 0.1, n = 4로 가정한다;
2) f(101) = 2264를 계산한다;
3) x4를 디코딩한다. 이 경우, 본 발명은 j = 0의 조건으로 수학식 11을 사용하여 다음과 같은 결과를 얻는다:
Figure 112011000174200-pct00073
N(0) p ≤ Il임.
i를 2264에서 41로 변경함으로써, 본 발명은 N(0) p = 100321 < 100775를 얻는다. 그러나, N(0) p = 100321에 더한 결과에 i = 40을 포함시킴으로써, 본 발명은 Np = 100786을 얻으며, 이는 엄밀하게 I보다 더 크다. 100321 < 100775 < 100786이므로, 본 발명은 좌표 x4를 i = 40으로 정의하고, 획득되는 리더는 l = (x1, x2, x3, 40)이다. 또한, 본 발명은 N(0) pbckp=100321을 정의한다.
4) x3을 디코딩한다. x4 = 40이므로, rp δ,3 = 101 - [400.3/0.1] = 71이며, 여기서 f(71) = 704이다. 다음으로, N(1) p를 계산한다.
Figure 112011000174200-pct00074
N(1) p ≤ Il임.
i = 21인 경우, N(1) p = 100765 < 100775가 얻어지고, i = 20인 경우, N(1) p = 100777 > 100775를 얻는다. 결과적으로, x3는 20으로 정의되고, 따라서, l = (x1, x2, 20, 40)이다. 이 경우, N(1) pbckp=100765이다.
5) x2를 디코딩한다. x3 = 20이므로, rp δ,2 = 71 - [200.3/0.1] = 46이며, 여기서 f(46) = 167이다. 다음으로, N(2) p를 계산한다:
Figure 112011000174200-pct00075
N(2) p ≤ Il임.
마지막으로, x1을 디코딩한다. x2 = 16이므로, rp δ,1 = 46 - [160.3/0.1] = 23이다. 최종적으로, x1을 계산한다.
x1 = min(f(rp δ,1), x2) - (Il - N(n-2) pbckp)
= min(f(23), 16) - (100775 - 100774)
= min(17, 16) - (100775 - 100774)
= 15.
결과적으로, l = (15, 16, 20, 40)을 얻는다. 부록의 제 2 알고리즘은 전체 디코딩 프로세스를 컴파일한다.
5. 메모리 및 컴퓨팅 비용
5.1 메모리 요구사항
Figure 112011000174200-pct00076
가 라인 상에서 계산되지 않은 경우, 메모리 요구사항은 다음과 같이 계산될 수 있다.
사용되는 카운팅 알고리즘에 관계없이, 저장되는
Figure 112011000174200-pct00077
는 3차원 테이블이 되도록 해석되며, 여기서 제 1 입력은 값 r ∈
Figure 112011000174200-pct00078
이고, 제 2 입력은 차원 d ∈ Z*이고, 제 3 입력은 최대 래티스 값 k ∈ Z*이다. 제공되는 최대 메모리 요구사항은 r·d·k·B 바이트가 되며, 여기서 B는
Figure 112011000174200-pct00079
의 원소 당 바이트 수이다.
그러나, 주어진 최대 놈 rp δ,n = r과 차원 d에서의 효과적인 코딩 및 디코딩 단계를 위한 제한은 낮다. 이는, 수학식 8, 10 및 11로부터,
Figure 112011000174200-pct00080
의 처음 두 입력 변수들의 가장 큰 값이 j = 0 그리고 i = imin(r, d)의 경우 획득되기 때문이다. 이 경우,
Figure 112011000174200-pct00081
(r - t(imin(r, d), d - 1, imin(r, d)) =
Figure 112011000174200-pct00082
(r - [r/d], d-1, imin(r, d))가 계산된다. 결과적으로, 이는 [(1, r - [r/d])]의 범위에 걸쳐 제 1 입력 변수(놈과 관련됨)를 사용하고 [1, d - 1]의 범위에 걸쳐 제 2 입력 변수(차원과 관련됨)를 사용하기에 충분하다.
k 값은 r로부터 결정될 수 있다. 제 2 제한이 오직 t(k) ≤ r/2인 경우에만 요구되기 때문에, [0, r]의 범위의 놈과 [1, d]의 차원을 갖는 임의의 리더를 인덱싱하기 위해 k의 최대값이 k = f(r/2)에서 정의될 수 있다. 결과적으로, 코딩 및 디코딩 단계를 위한 메모리 비용의 상한값은 다음과 같이 주어진다:
Figure 112011000174200-pct00083
메모리 요구사항은 주로 엔벌로프의 놈과 차원에 의존함을 주목한다. 리더의 개수는 B를 선택하도록 한다.
도 3은 오프라인에서 계산된 테이블
Figure 112011000174200-pct00084
를 사용하여 인덱싱 알고리즘을 사용하여 메모리를 절약하는 것을 도시한다. 메모리 요구사항은 p = 1, δ = 1 및 B = 4(즉, 정수 타입의 데이터)의 경우 반경 r에 따른 수학식 11로부터 얻어지며, [5]에 기술된 바와 ㅇ같은 리더를 기반으로 한 종래의 방법의 메모리 상한선과 비교된다. 차원과 반경이 각각 16과 20으로 낮을지라도, 종래의 방법은 10 기가바이트의 메모리를 요구하지만, 제안된 방법은 100 킬로바이트 미만을 요구한다.
매우 작은 메모리 요구사항과 모든 리더를 알 필요가 없다는 점은, 차원이 64, 128, 256, 512 등과 같이 높은 경우에도 래티스 벡터를 인덱싱할 수 있도록 한다. 종래의 연구에 의하면, 실제 응용분야에서는 차원이 16으로 제한되었다.
5.2 컴퓨팅 비용
리더 인덱싱 코딩/디코딩 알고리즘의 컴퓨팅 비용이 본 섹션에서 평가된다. 이 경우, 테이블
Figure 112011000174200-pct00085
, 벡터 f(i) 및 t(i)를 구성하는 것은 오프라인에서 수행되고 오직 일 회만 수행되기 때문에 해당 비용들은 무시한다.
컴퓨팅 비용은 놈 rp δ,n = r이고 차원이 d인 리더 당 동작의 횟수를 나타낸다. 수학식 8과 제 1 및 제 2 알고리즘(부록 참조)을 사용하여, 더하기/빼기(additions/subtractions, A)와 논리적인 비교(logical comparison, LC) 동작만이 요구됨을 파악할 수 있다. 메모리 액세스는 이들 두 타입의 동작에 비해 매우 낮으므로, 메모리 액세스에 대해서도 무시하기로 한다.
제안된 인덱싱 알고리즘을 코딩/디코딩하는 비용은 낮은 것으로 평가된다. 디코딩 알고리즘인 제 2 알고리즘은 본질적으로 코딩 알고리즘인 제 1 알고리즘의 역이며, 대략적으로 동일한 횟수의 동작을 포함한다. 코딩 및 디코딩 알고리즘의 복잡도는 제 1 알고리즘 내의 동작의 횟수를 카운팅함으로써 다음과 같이 평가된다:
1) 총 합계가 (n - 1)A로 구현된다.
2) "if/break" 테스트로 인해, ("j" 상의) 첫 번째 "for"는 대략 nnz(l)만큼 수행되며, 여기서 nnz(l)은 l의 비-제로 값의 개수(the number of non-zero values)를 의미한다.
3) 첫 번째 "for"의 매 루프마다,
i. 첫 번째 "if"로 인해 1A 및 7LC를 구비하고,
ii. 함수 "min"으로 인해 1LC를 구비하고,
iii. "i"에 대한 "for"의 루프 당 3A 및 1LC를 구비하며, min(xj +1, f(rp δ,j)) - xj만큼 일어난다.
4) 마지막 "if"와 다음 라인에 대하여, 2A 및 2LC를 카운팅한다.
결과적으로, 더하기, 논리적인 동작 또는 비교에 대한 코딩/디코딩 알고리즘의 총 비용은 다음과 같이 제공된다:
Figure 112011000174200-pct00086
여기서, nz(l)은 리더 l의 영인 원소의 개수이고, min = min(xj +1, f(rp δ,j))이고, max = max(nz(l)+1, 2)이다.
본 발명에 따르면, 래티스 벡터의 인덱싱은 치환 및 부호 변경 뿐만 아니라 래티스 벡터의 대응하는 리더를 인덱싱하는 것으로 줄어든다. 본 발명은 임의의 변호나 테이블을 필요로 하지 않으면서 벡터를 인덱싱하는 해결책을 제안하며, 상기 해결책은 메모리 사용을 줄일 수 있고 모든 리더들을 생성하는 복잡도를 줄일 수 있다. 나아가, 상기 해결책은 형상 파라미터가 0 < p ≤ 2인 일반화된 가우시안 분포원에 대해서도 동일하게 잘 적용된다. 제안된 방법은 분석적이며, 높은 벡터 차수의 사용을 가능하게 한다.
부록
코딩 및 디코딩 알고리즘
제 1 알고리즘
/* 형상 팩터 p, 정확도 δ, 차원 n의 표면에 속하는 리더 인덱스를 코딩하는 알고리즘*/
CumTotal = cumsum(1, p, d); //a
I1 = 0;
maximum = +∞;
for(j=n-1;j>=1;j--) // 수학식 8의 첫 번째 합계와 같음
{
if(((p==1) && (1[j-1]==0)) || //b
((P!=1) && (l[j]==0)))
break;
else
{
r = CumTotal[j];
for(i=min(maximum,f[r]);i>1[j];i--)
{ // 수학식 8의 두 번째 합계
rmd = r-t[i];
if(t[i]>rmd)// 제 2 제한이 없음
Il +=
Figure 112011000174200-pct00087
[rmd] [j-1] [0];
else
I1 += qa [rmd][j-1][i]; }
}
maximum = 1[j];
}
if(j==0)
I1 += min(f[CumTotal[0]],1[1]) - 1[0];
return I1; // 여기서 함수는 종료됨
/* a 함수 cumsum(1, p, δ)는 도메인
Figure 112011000174200-pct00088
내의 리더 l = (x1, x2, ..., xn)의 총 합계를 계산하고, 벡터 v = (t[x1], t[x1]+t[x2],..., t[x1]+t[x2]+...+t[xn])을 반환함.
b p = 1인 경우, δ = 1로 가정됨.
테이블
Figure 112011000174200-pct00089
[r][d][k] 및 벡터 f 및 t는 카운팅 알고리즘에 의해 오프라인에서 생성됨. */
제 2 알고리즘
/* 놈 rp δ,n = r, 형상 팩터 p, 정확도 δ, 차원 d = n 및 인덱스 Il의 표면에 속하는 리더 l을 디코딩하는 알고리즘 */
1 = O n ; // 차원 n이 최대 +∞인 영의 벡터
Np = 0;
for(j=n-1;j>=1;j--) // j가 0부터 n까지 변하는 것과 동일함
- 2 { // 수학식 11
i = min(maximum,f[r]);
while (Np<=I 1 )
{
Npbckp = Np;
rmd = r-t[i];
if(t[i]>rmd)// 제 2 제한이 없음
Np +=
Figure 112011000174200-pct00090
[rmd] [j-1] [0];
else
Np +=
Figure 112011000174200-pct00091
[rmd ] [j -1] [i];
i--;
}
i++;
1[j] = i;
Np = Npbckp;
maximum = i;
r -= t[i];
if(r==0)
break;
}
if(j==0)
1[0] = min(f[r],1[1])-(I1-Np);
return l; // 여기서 함수는 종료됨

Claims (26)

  1. d 차원 공간에서, 입력 데이터의 디스크립터를 구성하는 리더 벡터 1 의 적어도 일 부분에 대해 적어도 하나의 리더 인덱스 Il를 계산하는 양자화 단계를 포함하는 디지털 데이터 처리 방법에 있어서, 상기 리더 인덱스 Il 은 리더 모두를 결정하는 단계 없이, 사전식 배열의 역순으로 상기 리더 벡터 l에 선행하는 리더 벡터의 개수에 대응하며,
    리더 인덱스 Il를 계산하는 단계는,
    좌표 (x1, x2, ..., xd)의 리더 벡터 1 의 놈 rp δ,d 를 계산하는 단계로서, x1 내지 xd 는 오름 차순으로 정렬되고, d 부터 1 까지의 i 값으로 좌표 xi 에 대한 반복적인 카운팅 단계가 수행되고,상기 카운팅 단계는 좌표 xi가 xi + 1과 MIN(xi+1, F(rP δ,i)) 사이에 포함되는 벡터를 카운팅하는 단계로 구성되고, 인덱스 Il은 카운팅 단계들의 결과들의 합에 min(F(T(x1)),x2) 와 x1 간의 차이를 더한 것과 동일하고, T(xi)는 정확도 델타에 의해 멱수(power) p로 올려진 좌표 xi를 분할하는 결과를 출력하는 함수이며, 분할의 결과는 가장 가까운 정수로 반올림되며, F(A)는, T(w) 값이 함수 F의 인자(argument) A보다 작거나 같을 때 정수값 w를 출력하는 함수인, 계산하는 단계;
    좌표 (x1, x2, ..., xd)의 리더 벡터 l 의 놈 rδ p d을 계산하는 단계로서, x1 내지 xd는 내림 차순으로 정렬되며, 1 부터 d까지의 i 값으로 좌표 xi에 대하여 반복적인 카운팅 단계가 수행되고, 상기 카운팅 단계는 좌표 xi가 xi+1과 MIN(xi-1, F(rP δ,i)) 사이에 포함되는 벡터를 카운팅하는 단계로 구성되고, 인덱스 Il은 카운팅 단계의 결과의 합에
    Figure 712016001560795-pct00097
    Figure 712016001560795-pct00098
    간의 차이를 더한 것과 동일하고, T(xi)는 정확도 델타에 의해 멱수(power) p로 올려진 좌표 xi를 분할하는 결과를 출력하는 함수이며, 분할의 결과는 가장 가까운 정수로 반올림되며, F(A)는, T(w) 값이 함수 F의 인자(argument) A보다 작거나 같을 때 정수값 w를 출력하는 함수인, 계산하는 단계;
    로 구성되는 그룹으로부터 선택되는, 하나의 계산하는 단계를 포함하는 것을 특징으로 하는 디지털 데이터 처리 방법.
  2. 제 1항에 있어서,
    상기 디지털 데이터 처리 방법은, 현재 계산되고 있는 상기 리더 벡터 1을 제외한 다른 벡터들을 결정하는 어떠한 단계도 포함하지 않는 것을 특징으로 하는 디지털 데이터 처리 방법.
  3. 삭제
  4. 삭제
  5. 제 1 항 에 있어서,
    인덱스 Il 뿐만 아니라 적어도 부호 인덱스 Is, 놈 인덱스 In 및 치환 인덱스 Ip 의 이진 코딩(binary coding)의 결과를 기록하여 벡터 데이터를 압축하는 것을 더 포함하는 것을 특징으로 하는 디지털 데이터 처리 방법.
  6. 제 5항에 있어서,
    상기 벡터 데이터는:
    디지털 이미지;
    디지털 비디오 시퀀스;
    디지털 오디오 데이터;
    디지털 3차원 오브젝트;
    디지털 애니메이션으로 제작된 3차원 오브젝트;
    변환 계수;및
    데이터베이스에 저장된 정보;
    로 구성되는 그룹으로부터 선택되는 것을 특징으로 하는 디지털 데이터 처리 방법.
  7. 제 1 항에 있어서,
    기준 정보를 위해, 인덱스 In,ref 뿐만 아니라 적어도 부호 인덱스 Is,ref, 놈 인덱스 In,ref 및 치환 인덱스 Ip,ref를 계산하는 단계와 동일 인덱스들과 관련된 데이터를 검색하는 단계를 포함하는, 벡터 데이터베이스를 검색하는 단계를 더 포함하는 것을 특징으로 하는 디지털 데이터 처리방법.
  8. 제 7항에 있어서,
    상기 벡터 데이터는:
    디지털 이미지;
    디지털 비디오 시퀀스;
    디지털 오디오 데이터;
    디지털 3차원 오브젝트;
    디지털 애니메이션으로 제작된 3차원 오브젝트;
    텍스트 데이터베이스의 오브젝트; 및
    변환 계수로 구성되는 그룹으로부터 선택되는 것을 특징으로 하는 디지털 데이터 처리 방법.
  9. 제 1 항의 디지털 데이터 처리 방법을 사용하여 계산되는 리더 인덱스 Il에 따라 디지털 데이터를 재구성하는 방법에 있어서,
    리더 벡터 l의 좌표 (x1, x2,..., xd)를 계산하는 단계,
    리더 모두를 결정하는 단계없이, 사전식 배열의 역순으로 상기 리더 벡터 l에 선행하는 벡터의 동일한 개수에 대응하는 인덱스 Il를 갖는 리더 벡터 l을 발견하는 단계를 포함하는 처리를 상기 인덱스 Il에 적용시키는 단계를 포함하는 디지털 데이터 재구성 방법
  10. 제 9항에 있어서,
    d 내지 1의 범위의 변수 i에 대하여 반복적인 처리가 수행되는 단계를 더 포함하고, 상기 처리는, MIN(xi+1, F(rP δ,i))내지 0의 범위의 xi를 갖는 좌표 xi에 적용되고, 합계가 상기 인덱스 Il보다 더 커질 때까지 함수 F(A)를 적용함으로써 카운팅 단계의 결과값을 더하는 단계로 구성되고, 좌표 xi는 상기 인덱스 Il 을 초과하게 되며, 그리고,
    좌표 Xi-1에 대하여, 상기 인덱스를 초과하기 전 Il 값에 선행하는 값인 Il으로부터 합산을 지속하는 단계를 포함하는, 디지털 데이터 재구성 방법.
  11. 제 9항에 있어서,
    1 내지 d 범위의 변수 i에 대하여 반복적인 처리가 수행되는 단계를 더 포함하고, 상기 처리는 MIN(xi+1, MIN(xi-1, F(rP δ,i)) 내지 0의 범위의 xi를 갖는 좌표 xi에 적용되고, 합계가 상기 인덱스 Il보다 더 커질 때까지 함수 F(A)를 적용함으로써 카운팅 단계의 결과값을 더하는 단계를 포함하고, 상기 좌표 xi는 상기 인덱스 Il 을 초과하게 되며, 그리고,
    좌표 Xi+1에 대하여, 상기 인덱스를 초과하기 전 Il 값에 선행하는 값인 Il로부터의 합산을 지속하는 단계를 포함하는 디지털 데이터 재구성 방법.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
KR1020117000054A 2008-06-02 2009-05-27 디지털 데이터 처리 방법 KR101627000B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0803017A FR2931963A1 (fr) 2008-06-02 2008-06-02 Procede de traitement de donnees numeriques
FR08/3017 2008-06-02

Publications (2)

Publication Number Publication Date
KR20110033175A KR20110033175A (ko) 2011-03-30
KR101627000B1 true KR101627000B1 (ko) 2016-06-02

Family

ID=40091259

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117000054A KR101627000B1 (ko) 2008-06-02 2009-05-27 디지털 데이터 처리 방법

Country Status (8)

Country Link
US (1) US8660187B2 (ko)
EP (1) EP2289171B1 (ko)
JP (1) JP5584203B2 (ko)
KR (1) KR101627000B1 (ko)
CN (1) CN102084594B (ko)
CA (1) CA2725799C (ko)
FR (1) FR2931963A1 (ko)
WO (1) WO2009156605A2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2931964A1 (fr) 2008-06-02 2009-12-04 Centre Nat Rech Scient Procede de denombrement des vecteurs dans les reseaux reguliers de points.
US8848006B2 (en) * 2012-01-25 2014-09-30 Massachusetts Institute Of Technology Tensor displays
JP6337133B2 (ja) * 2014-10-08 2018-06-06 日本電信電話株式会社 非減少列判定装置、非減少列判定方法及びプログラム
SE538512C2 (sv) 2014-11-26 2016-08-30 Kelicomp Ab Improved compression and encryption of a file
SE544304C2 (en) * 2015-04-17 2022-03-29 URAEUS Communication Systems AB Improved compression and encryption of a file
JP2018136614A (ja) * 2017-02-20 2018-08-30 株式会社日立製作所 データ分散処理システム、データ分散処理方法、及びデータ分散処理プログラム
US11709270B1 (en) 2018-06-01 2023-07-25 Cintoo SAS, France Method of processing azimuth, elevation and range data from laser scanning an object

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005528839A (ja) 2002-05-31 2005-09-22 ヴォイスエイジ・コーポレーション 信号のマルチレートによる格子ベクトル量子化の方法とシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02215230A (ja) * 1989-02-15 1990-08-28 Matsushita Electric Ind Co Ltd ベクトル量子化装置
FR2773022B1 (fr) 1997-12-22 2000-01-28 France Telecom Procede de codage d'un vecteur d'un reseau representatif d'un signal quantifie et procede de decodage correspondant
FR2795589B1 (fr) 1999-06-11 2001-10-05 Centre Nat Rech Scient Decodeur video optimal base sur les standards de type mpeg
JP4590747B2 (ja) * 2001-02-06 2010-12-01 ソニー株式会社 ベクトル量子化のコードブック生成方法及びコードブック生成装置
EP1709743A1 (fr) * 2004-01-30 2006-10-11 France Telecom S.A. Quantification vectorielle en dimension et resolution variables
WO2008104725A1 (fr) 2007-02-21 2008-09-04 France Telecom Procede de codage et decodage algebrique optimise, modules et programmes d'ordinateur associes
FR2931964A1 (fr) 2008-06-02 2009-12-04 Centre Nat Rech Scient Procede de denombrement des vecteurs dans les reseaux reguliers de points.
WO2010001020A2 (fr) 2008-06-06 2010-01-07 France Telecom Codage/decodage par plans de bits, perfectionne

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005528839A (ja) 2002-05-31 2005-09-22 ヴォイスエイジ・コーポレーション 信号のマルチレートによる格子ベクトル量子化の方法とシステム

Also Published As

Publication number Publication date
EP2289171B1 (fr) 2018-04-25
KR20110033175A (ko) 2011-03-30
JP2011525728A (ja) 2011-09-22
CN102084594B (zh) 2014-12-10
JP5584203B2 (ja) 2014-09-03
WO2009156605A2 (fr) 2009-12-30
CN102084594A (zh) 2011-06-01
US8660187B2 (en) 2014-02-25
US20110235719A1 (en) 2011-09-29
CA2725799A1 (fr) 2009-12-30
EP2289171A2 (fr) 2011-03-02
CA2725799C (fr) 2019-03-12
WO2009156605A8 (fr) 2010-11-04
FR2931963A1 (fr) 2009-12-04
WO2009156605A3 (fr) 2010-10-07

Similar Documents

Publication Publication Date Title
KR101627000B1 (ko) 디지털 데이터 처리 방법
Goyal Theoretical foundations of transform coding
US8990217B2 (en) Lossless compression of high nominal-range data
CN103067022B (zh) 一种整型数据无损压缩方法、解压缩方法及装置
US7827187B2 (en) Frequency partitioning: entropy compression with fixed size fields
Kavitha A survey on lossless and lossy data compression methods
KR100281165B1 (ko) 효율적 처리를 위한 데이터의 다중 해상도의 무손실/유손실 압축 및 기억 방법 및 그 시스템
US20130019029A1 (en) Lossless compression of a predictive data stream having mixed data types
CN112399181B (zh) 图像编解码的方法、装置和存储介质
US9991905B2 (en) Encoding method, decoding method, encoder and decoder
CN100370828C (zh) 用于将参数值映像到码字索引的自适应方法和系统
KR101577848B1 (ko) 규칙적인 지점의 네트워크에서 벡터를 카운팅하는 방법
Amin et al. Vector quantization based lossy image compression using wavelets–a review
JP2004120623A (ja) 符号化装置、符号化方法、復号装置及び復号方法
Fonteles et al. Indexing Z n lattice vectors for generalized gaussian distributions
Baert et al. ATC: an Advanced Tucker Compression library for multidimensional data
US8392362B2 (en) Systems and methods associated with hybrid paged encoding and decoding
Khandelwal et al. Implementation of Direct Indexing and 2-V Golomb Coding of Lattice Vectors for Image Compression
US11411578B1 (en) Bit reordering compression
Hoang Compact and Progressive Encodings for Task-Adaptive Queries of Scientific Data
GB2305829A (en) A context model coder
Baert Algorithm xxxx: ATC, an Advanced Tucker Compression library for multidimensional data
Fonteles et al. High dimension lattice vector quantizer design for generalized gaussian distributions
Baert et al. Algorithm 1036: ATC, An Advanced Tucker Compression Library for Multidimensional Data
CN117972323A (zh) 一种低秩张量数据压缩和缺失值恢复的方法及系统

Legal Events

Date Code Title Description
AMND Amendment
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee