KR20100135801A - 신호들의 저복잡도 조합 코딩을 위한 장치 및 방법 - Google Patents

신호들의 저복잡도 조합 코딩을 위한 장치 및 방법 Download PDF

Info

Publication number
KR20100135801A
KR20100135801A KR1020107022865A KR20107022865A KR20100135801A KR 20100135801 A KR20100135801 A KR 20100135801A KR 1020107022865 A KR1020107022865 A KR 1020107022865A KR 20107022865 A KR20107022865 A KR 20107022865A KR 20100135801 A KR20100135801 A KR 20100135801A
Authority
KR
South Korea
Prior art keywords
positions
occupied
vector
coding
occupied positions
Prior art date
Application number
KR1020107022865A
Other languages
English (en)
Other versions
KR101233057B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=40811155&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20100135801(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 모토로라 인코포레이티드 filed Critical 모토로라 인코포레이티드
Publication of KR20100135801A publication Critical patent/KR20100135801A/ko
Application granted granted Critical
Publication of KR101233057B1 publication Critical patent/KR101233057B1/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)
  • Analogue/Digital Conversion (AREA)

Abstract

0이 아닌 값을 갖는 펄스들의 위치를 코딩하는 것과 0의 값을 갖는 펄스들의 위치를 코딩하는 것 사이에서 적응적으로 전환하는, 펄스 위치 및/또는 펄스 진폭의 인코딩 및 디코딩을 위한 방법 및 구조가 개시된다.

Description

신호들의 저복잡도 조합 코딩을 위한 장치 및 방법{APPARATUS AND METHOD FOR LOW COMPLEXITY COMBINATORIAL CODING OF SIGNALS}
음성, 오디오, 이미지, 비디오 및 다른 신호들에 대한 벡터 또는 행렬을 코딩하기 위한 방법들이 잘 알려져 있다. Peng 등의 미국 특허 제6,236,960호(본 명세서에 참고 문헌으로서 포함됨)에 기술된 이러한 하나의 방법은 계승 펄스 코딩(Factorial Pulse Coding)(또는 FPC)으로 알려져 있다. FPC는 전체 M개의 비트를 사용하는 벡터 xi를 코딩할 수 있으며, 다음과 같이 주어진다.
[수학식 1]
Figure pct00001
그리고 벡터 xi의 모든 값들은 -m≤xi≤m인 정수값이 되도록 하고, m은 단위 진폭 펄스의 전체 개수이며, n은 벡터 길이이다. 전체 M 비트는 최대로 효율적인 방식으로 N개의 조합을 코딩하는 데 사용되어, 이론적인 최소의 조합수를 기술하는 아래의 식이 참이 되도록 한다.
[수학식 2]
Figure pct00002
이 등식에 있어서, F(n,d)는 n개의 위치에 걸쳐 있는 d개의 0이 아닌 벡터 요소의 개수로서, 아래와 같이 주어진다.
[수학식 3]
Figure pct00003
D(m,d)는 m개의 전체 단위 펄스가 주어진 d개의 0이 아닌 벡터 요소들의 조합들의 개수로서, 아래와 같이 주어진다.
[수학식 4]
Figure pct00004
그리고 2d는 d개의 0이 아닌 벡터 요소들의 극성(부호)을 기술하는 데 필요한 조합들을 나타낸다. min(m,n) 항은 단위 진폭 펄스의 개수 m이 벡터 길이 n을 초과하는 경우를 고려한 것이다. 이러한 형태의 벡터들을 코딩 및 디코딩하기 위한 방법 및 장치가 종래 기술에서 충분히 기술되었다. 또한, 이러한 코딩 방법의 실제적인 구현예가 3GPP2 표준 C.S0014-B에 기술되어 있는데, 여기서 벡터 길이 n=54와 단위 진폭 펄스의 개수 m=7은 M=35 비트의 코드워드(codeword)를 생성한다.
n과 m의 이러한 값들은 부당한 복잡도 부담을 야기하지 않는 반면, 큰 값들은 빠르게 문제들을 야기할 수 있으며, 특히 메모리와 계산 복잡도를 가능한 한 낮게 유지할 필요가 있는 이동 핸드헬드(handheld) 장치들에서 그러하다. 예컨대, 일부 응용예들(예컨대 오디오 코딩)에 대해 이러한 코딩 방법을 사용하는 것은 n=144 및 m=28 또는 그 이상을 필요로 할 수 있다. 이러한 상황 하에서, 종래 기술의 방법들을 사용하여 조합식 F(n,d)를 생성하는 것과 연관된 비용은 실제적으로 구현하기에는 지나치게 높을 수 있다.
이러한 비용을 보다 상세히 살펴보면, 수학식 3은 다음과 같이 다시 쓸 수 있다.
[수학식 5]
Figure pct00005
F(144,28)은 분자에 있어서 197 비트의 정밀도를 필요로 하고 분자에서 98 비트의 정밀도를 필요로 하여 99 비트의 몫을 생성할 것이므로, 직접적인 구현은 문제가 된다. 오늘날의 핸드헬드 장치들에서 사용되는 대부분의 DSP(Digital Signal Processor)는 전형적으로 16 비트 x 16 비트 곱셈 연산만을 지원하므로, 특별한 다중 정밀도의 곱셈/나눗셈 루틴들이 이용될 필요가 있을 것이다. 이러한 루틴들은 전형적으로 약 k회의 곱셈/누적(MAC) 연산을 필요로 하는 일련의 중첩 곱셈/누적 연산을 필요로 하는데, 여기서 k는 피연산자 내의 16 비트 세그먼트(segment)의 개수이다. 197 비트의 피연산자에 대해,
Figure pct00006
이다. 따라서, 단일 197 x 16 비트 곱셈의 실행은 최소 13회의 MAC 연산과 함께 시프트(shift) 및 저장 연산을 필요로 할 것이다. 분모 항은 유사한 방식으로 계산되어 98 비트의 결과를 생성한다. 또한, 197/98 비트 나눗셈이 필요하며, 이는 지극히 복잡한 연산이므로 수학식 5의 전체 계승 관계의 계산은 상당한 자원을 필요로 할 것이다.
복잡도를 감소시키기 위한 노력으로, 수학식 5는 나눗셈 연산을 분배하여 아래를 생성하도록 다시 쓸 수 있다.
[수학식 6]
Figure pct00007
이러한 식에서, 나눗셈 연산의 동적 범위가 감소되지만, 불행히도 3, 7, 9 등에 의한 나눗셈을 정확히 나타내기 위해 몫의 분해능(resolution)이 증가될 필요가 있다. 이러한 구조를 수용하기 위해, 반올림(rounding) 연산이 정수 결과를 보장하기 위해 또한 필요하다. 많은 수의 높은 정밀도의 나눗셈 연산이 주어지는 경우, 이러한 구현예는 큰 m과 n에 대한 복잡도 문제에 충분히 대처하지 않으며, 또한 누적된 정밀도 오차로 인해 부정확한 결과를 생성할 가능성을 갖는다.
또 다른 구현예에서, 수학식 5는 아래의 방식으로 재배열될 수 있다.
[수학식 7]
Figure pct00008
왼쪽으로부터 오른쪽으로 이러한 식의 값을 구하는 경우, 결과는 항상 정수값을 생성할 것이다. 이러한 방법이 정밀도 및 동적 범위 문제를 어느 정도 통제하지만, m과 n의 큰 값들은 여전히 다중 정밀도의 곱셈 및 나눗셈 연산들을 광범위하게 사용할 것을 요구한다.
마지막으로, 계산의 복잡도를 최소화하기 위해, 모든 계승 조합을 미리 계산하여 참조 테이블에 저장하는 것이 가능할 수 있다. 따라서, F(n,m)의 모든 값들이 단순히 n x m 행렬에 저장될 수 있고, 매우 적은 프로세서 사이클을 사용하여 메모리로부터 적절히 인출(retrieve)될 수 있다. 그러나, 이러한 방식에 있어서의 문제점은 n과 m이 커짐에 따라 연관된 메모리 요구량도 커진다는 점이다. 이전의 예를 인용하면, F(144,28)은
Figure pct00009
의 저장소를 필요로 하며, 이는 대부분의 이동 핸드헬드 장치들에 대해 부당하다. 따라서, 벡터들의 저복잡도 조합 계승 펄스 코딩을 위한 방법 및 장치에 대한 필요가 존재한다.
신규한 것으로 간주되는 본 발명의 특징들은 첨부된 청구항들에서 상세히 제시된다. 그러나, 본 발명 자체는 조직 및 동작 방법 모두에 있어서 그 목적 및 장점과 함께, 본 발명의 소정의 예시적인 실시예들을 기술하는 아래의 본 발명의 상세한 설명을 첨부된 도면들과 관련하여 참조함으로써 가장 잘 이해될 수 있다.
도 1은 인코더의 블록도.
도 2는 디코더의 블록도.
도 3은 도 1 및 도 2의 조합 함수 생성기의 동작을 도시하는 흐름도.
도 4는 다양한 실시예에 따른 인코더의 블록도.
도 5는 다양한 실시예에 따른 인코더의 동작을 도시하는 흐름도.
도 6은 다양한 실시예에 따른 디코더의 블록도.
도 7은 다양한 실시예에 따른 디코더의 동작을 나타내는 흐름도.
도 8은 다양한 실시예에 따른 추정 밀도를 사용하는 인코더의 동작을 나타내는 흐름도.
도 9는 다양한 실시예에 따른 추정 밀도를 사용하는 디코더의 동작을 나타내는 흐름도.
도 10은 다양한 실시예에 따른 문턱값을 비교하는 인코더의 동작을 나타내는 흐름도.
도 11은 다양한 실시예에 따른 문턱값을 비교하는 디코더의 동작을 나타내는 흐름도.
당업자들은 도면들 내의 요소들이 단순함과 명료함을 위해 도시되었으며 반드시 비율에 맞게 그려진 것은 아님을 이해할 것이다. 예컨대, 본 발명의 실시예들의 이해를 증진하는 것을 돕기 위해 도면들 내의 요소들 중 일부의 치수는 다른 요소들에 비해 과장될 수 있다.
본 발명은 많은 상이한 형태의 실시예로 구현될 수 있지만, 본 개시 내용이 본 발명의 원리들의 예로서 간주되며 본 발명을 도시되고 기술된 특정한 실시예들로 한정하고자 하는 것이 아니라는 이해와 함께, 구체적인 실시예들이 도면들에 도시되고 본 명세서에 상세히 기술될 것이다. 아래의 설명에서, 동일한 참조 번호들은 몇몇 도면들에서 동일하거나, 유사하거나 또는 대응하는 부분들을 기술하도록 사용된다.
본 명세서에서, "제1" 및 "제2", 상부 및 하부 등과 같은 관계적인 용어들은 하나의 주체 또는 행위를 다른 주체 또는 행위와 구별하는 데에만 사용될 수 있고, 이러한 주체들 또는 행위들 사이의 어떠한 실제적인 관계 또는 순서를 반드시 필요로 하거나 함축하지 않는다. "포함한다", "포함하는"이라는 용어들, 또는 이들의 임의의 다른 변형은 배타적이지 않은 포함 관계를 포괄하고자 하는 것으로서, 일 목록의 요소들을 포함하는 프로세스, 방법, 제품 또는 장치는 이러한 요소들을 포함할 뿐만 아니라 명시적으로 열거되지 않거나 이러한 프로세스, 방법, 제품 또는 장치에 내재된 다른 요소들을 포함할 수 있다. "...를 포함한다" 다음에 나오는 요소는 그 요소를 포함하는 프로세스, 방법, 제품 또는 장치 내의 추가적인 동일한 요소들의 존재를 더 많은 제약 없이 배제하지 않는다.
본 명세서 전반에 걸쳐 "일 실시예", "소정의 실시예", "실시예" 또는 유사한 용어들에 대한 참조는 그 실시예와 관련하여 기술된 특정한 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함됨을 의미한다. 따라서, 이러한 구절들이 본 명세서 전반에 걸쳐 다양한 위치에서 나타나는 것은 반드시 모두 동일한 실시예를 참조하는 것은 아니다. 또한, 특정한 특징들, 구조들, 또는 특성들은 제한 없이 하나 이상의 실시예에서 임의의 적합한 방식으로 조합될 수 있다.
본 명세서에서 사용되는 바와 같은 "또는"이라는 용어는 포괄적이거나 또는 임의의 하나 또는 임의의 조합을 의미하는 것으로 해석되어야 한다. 따라서, "A, B 또는 C"는 "A; B; C; A 및 B; A 및 C; B 및 C; A, B 및 C 중 임의의 것"을 의미한다. 이러한 정의에 대한 예외는 요소들, 기능들, 단계들 또는 동작들이 본질적으로 상호 배타적인 소정의 방식으로 조합되는 경우에만 발생할 것이다.
본 발명은 일반적으로 벡터들을 코딩하는 것과 관련되며, 특히 벡터들의 조합 계승 펄스 코딩과 관련된다.
이제 동일한 참조 번호들이 동일한 구성 요소들을 지정하는 도면들을 참조하면, 도 1은 인코더(100)의 블록도이다. 인코더(100)는 벡터 생성기(102), 조합 코딩 회로(코더)(106), 조합 함수 생성기(108) 및 기타 코딩 회로(104)를 포함한다. 동작 중에, 코딩될 입력 신호가 벡터 생성기(102)에 의해 수신된다. 본 기술 분야에 알려진 바처럼, 입력 신호는 음성, 오디오, 이미지, 비디오 및 다른 신호들과 같은 신호들을 포함할 수 있다.
벡터 생성기(102)는 입력 신호를 수신하고 벡터 xi를 생성한다. 벡터 생성기(102)는 Peng 등에 의해 기술되는 바와 같은 CELP(Code-Excited Linear Prediction) 음성 코딩, DFT(Discrete Fourier Transform), DCT(Discrete Cosine Transform; DCT) 및 MDCT(Modified Discrete Cosine Transform) 기반 방법들을 포함하는 오디오, 이미지 및 비디오에 대한 변환 영역 코딩, 웨이블릿(wavelet) 기반 변환 코딩, 직접 시간 영역 PCM(Pulse Code Modulation), 차등 PCM, ADPCM(Adaptive Differential PCM), 또는 본 기술 분야에서 잘 알려진 하위 대역 코딩 기법들의 계열 중 임의의 하나를 포함하지만 이에 한정되지 않는 임의의 개수의 인코딩 패러다임(paradigm)을 포함할 수 있다. 위에 주어진 형태를 갖는 실질적으로 임의의 신호 벡터가 본 발명의 소정의 실시예들에 따라 유리하게 처리될 수 있다.
조합 코딩 회로(106)는 벡터 xi를 수신하고 계승 펄스 코딩을 사용하여 코드워드 C를 생성한다. 앞서 논의된 바처럼, 계승 펄스 코딩은
Figure pct00010
로 주어지면 전체 M개의 비트를 사용하여 벡터 xi를 코딩할 수 있고, xi의 모든 값들은 -m≤xi≤m인 정수값이 되도록 하는데, 여기서 m은 단위 진폭 펄스의 전체 개수이며, n은 벡터 길이이다. 앞서 논의된 바처럼, m과 n의 보다 큰 값들은 빠르게 문제를 야기할 수 있는데, 특히 메모리와 계산 복잡도를 가능한 한 낮게 유지할 필요가 있는 이동 핸드헬드 장치들에서 그러하다.
이러한 문제에 대처하기 위해, 조합 함수 생성기(108)는 F'(n,d)를 생성하기 위한 저복잡도 기법을 활용한다. 이후 조합 코딩 회로(106)는 F'(n,d)를 활용하여 코드워드 C를 생성한다. 회로(108)는 계승 조합 F'(n,d)의 상대적으로 낮은 분해능의 근사(정밀도의 비트)를 활용하는데, 이는 유효한 코드워드가 생성되기에 충분한 만큼만의 정밀도를 제공한다. 즉, 소정의 속성들이 유지되는 한, 함수 F(n,d)의 적합한 근사는 결과적인 코드워드가 고유하게 디코딩될 수 있음을 보장하기에 충분하다.
F'(n,d)의 생성을 기술하기 위해, 먼저 F(n,d)의 적합한 근사인 함수 F'(n,d)를 유도함으로써 진행한다. 처음 단계는 수학식 5의 임의의 밑 a의 로그(logarithm)를 취하고, 재배열된 항들의 밑 a인 역 로그를 취한다.
[수학식 8]
Figure pct00011
여기서 함수 expa(k)=ak이다. 다음으로, 함수 P(i), Q(d) 및 R(k)를 정의하고, 다음과 같이 수학식 8에서 치환한다.
[수학식 9]
Figure pct00012
여기서 P(i)=loga(i), Q(d)=
Figure pct00013
및 R(k)=expa(k)=ak이다.
그러나, 본 발명의 예시적인 실시예에 따르면, 결과적인 코드워드가 고유하게 디코딩될 수 있기 위해 F(n,d) 및 F'(n,d)가 동등할 필요는 없다. 이것이 참이 되도록 하기에 충분한 아래와 같은 두 개의 조건만이 존재한다.
[수학식 10]
Figure pct00014
[수학식 11]
Figure pct00015
제1 조건의 경우, 이러한 제한은 F'(n,d)<F(n,d)인 경우 중첩되는 코드 공간이 존재할 것이고 이후로 특정한 코드워드를 생성할 수 있는 2 이상의 입력이 존재할 것임을 단순히 나타내며, 따라서 코드워드는 고유하게 디코딩될 수 없다. 제2 조건은 주어진 n, d에 대한 "오차"는 미국 특허 제6,236,960호에서 Peng 등에 의해 기술된 재귀적인 관계의 이전의 요소와 연관된 오차 항들의 합 이상일 것임을 나타낸다. 이것은 F(n,d)=F(n-1,d)+F(n-1,d-1)으로 나타낼 수 있는데, 이는 조합 식이
Figure pct00016
과 정확히 같은 경우에만 참이다. 그러나, 수학식 11의 부등식이 충분하지만, n과 d의 모든 값들에 대해 반드시 참인 것은 아니다. 이러한 값들에 대해, F(n,d)는 Peng 등의 미국 특허의 수학식 31로부터 유도되는 다른 부등식을 충족시킬 수 있으며, 다음과 같이 주어진다.
[수학식 12]
Figure pct00017
이러한 경우, 수학식 11은 소정의 (m,k){여기서 (m≤n),(k≤d)}에 대해 엄밀한 부등식으로 충족되어야 한다.
[수학식 13]
Figure pct00018
다시 수학식 9를 참조하여, 원래의 함수의 저복잡도 근사를 가지고 P'(i), Q'(d) 및 R'(k)를 생성함으로써 F'(n,d)를 이제 다음과 같이 생성하고자 한다.
[수학식 14]
Figure pct00019
여기서 수학식 10 및 11에서 주어진 조건들이 충족된다. P(i)를 고려하면, P'(i)≥loga(i),i∈[1,2,...,n]이 되도록 함수를 근사하고자 할 수 있다. a=2로 선택하고 P'(i)를 32 비트의 정밀도로 제한하는 경우, 대부분의 DSP가 단일 사이클 32 비트 덧셈을 지원하므로 결과적인 연산들을 핸드헬드 이동 장치 상에서 구현하기 쉽다. 따라서, 다음과 같이 정의한다.
[수학식 15]
Figure pct00020
여기서 l(i)는 i의 함수로서 변화할 수 있는 시프트 계수이다. 바람직한 실시예에서, l(i)=l=21이지만, 많은 다른 집합의 값들이 가능하다. 이 예에서, 2l의 계수는 왼쪽으로 l 비트의 시프트와 동등하며, 이에 의해 버림(floor) 함수
Figure pct00021
는 분수 비트를 제거하면서 다음의 가장 큰 정수로 올림하고, 2-l의 계수는 결과를 다시 오른쪽으로 l 비트만큼 시프트한다. 이러한 방식을 사용하여, 모든 i≥1에 대해 함수 P'(i)≥log2(i)이고, 또한 32 비트만을 사용하여 충분한 동적 범위와 정밀도를 제공하는데, 그 까닭은 log2 영역에서의 9 비트의 양의 정수 분해능이 512 비트의 수를 표현할 수 있기 때문이다. 이러한 값들을 실시간으로 계산하는 복잡함을 피하기 위해, 이들은 미리 계산되어 F(144,28)의 예의 경우 144 x 4 바이트만을 사용하는 테이블에 저장될 수 있다. Q(d)를 근사하기 위한 유사한 방법을 사용하여 다음을 구한다.
[수학식 16]
Figure pct00022
여기서 버림 함수
Figure pct00023
는 총계로부터의 양을 빼는 것으로 인해 사용된다. 이는 Q'(d)의 기여가 F'(n,d)≥F(n,d)를 보장하도록
Figure pct00024
를 보장한다. l(j)는 m과 n의 구성에 따라 많은 값을 취할 수 있지만, 바람직한 실시예는 가변 시프트 계수에 대해 l(j)=l=14를 사용한다. P'(i)와 마찬가지로, Q'(d)는 미리 계산되어 F(144,28)의 예에 대해 28 x 4 바이트의 메모리만을 사용하여 테이블에 저장될 수 있다. R'(k)를 정의하기 위해, 먼저 k를 다음과 같이 정의할 필요가 있다.
[수학식 17]
Figure pct00025
앞서 정의된 P'(i)와 Q'(d)에 따라, k는 바람직하게는 8 비트의 무부호 정수 성분 ki 및 24 비트의 분수 성분 kf를 갖는 32 비트의 수이다. 이를 사용하여, k=ki+kf를 대입한 후 2를 밑으로 하는 역의 로그를 취하여
Figure pct00026
를 산출함으로써 R'(k)≥exp2(k)=2k를 유도할 수 있다. 이후 테일러 급수 전개를 사용하여
Figure pct00027
에 의해 표현되는 분수 성분을 원하는 정밀도로 추정하고, 올림 함수를 사용하여 결과를 올림한 후 그 결과를 적절히 시프트하여 다음과 같이 다중 정밀도 결과(단지 l 상위 비트들을 가짐)를 형성한다.
[수학식 18]
Figure pct00028
Figure pct00029
는 테일러 급수 전개 결과에 적용되는 정수 시프트 계수이다. 여기서 l은 R'(k)≥2k를 보장하도록 수학식 15 및 16과 유사한 방식으로 사용되는 시프트 계수이다. 그러나, R'(k)는 효율적인 실시간 연산을 위해 실제적으로 미리 계산될 수 없으므로, 재구성되는 신호 벡터가 입력 신호 벡터에 정확하게 부합하도록 보정하기 위해 인코더와 디코더 모두에서 필요한 정확한 동작들을 지정함에 있어서 많은 주의를 기울여야 한다. R'(k)는 l 비트에 의해 정확하게 표현될 수 있는
Figure pct00030
를 왼쪽으로 시프트하는 것으로부터 구할 수 있음에 주목한다.
이상의 논의에서, 함수 P'(i), Q'(d) 및 R'(k)는 각각의 개별 함수 추정치가 결과적인 F'(n,d)≥F(n,d)임을 보장하도록 선택되었다. 그러나, 총체적인 효과만이 이러한 조건을 충족시킬 필요가 있다. 예컨대, P'(i) 및 Q'(d)는 위와 같이 기술될 수 있지만, R'(k)는 보다 전형적인
Figure pct00031
함수일 수 있는데, 이는 k의 소정의 값들에 대해 R'(k)가 2k 보다 작을 수 있도록 최하위 비트들을 절단하거나 반올림할 수 있다. 이는 이러한 효과가 P'(i)와 Q'(d)에 비해 작은 한 수용될 수 있고, 따라서 수학식 10 및 11의 속성들이 여전히 참이다.
또한, 수학식 10 및 11 상의 속성들이 충족되는 한 일반성을 잃지 않고 임의의 함수 P'(i), Q'(d) 및 R'(k)가 사용될 수 있다. 그러나, 지나치게 적은 정밀도가 사용되는 경우 비트 속도(bit rate)의 증가가 발생할 수 있음에 주의를 기울여야 한다. 또한, 비트 속도와 복잡도에는 내재하는 타협 관계가 존재하며, m, n의 큰 값들에 대해 1 또는 2 비트의 증가는 복잡도의 현저한 감소에 대한 적당한 타협이 될 수 있다.
조합 코딩 회로(106)에서의 위치 및 진폭에 대한 부분 코드워드 C의 공식화가 이제 기술된다. π={p1, p2, ..., pν}을 0이 아닌 펄스 위치(증가하는 순서로)라 하고 μ={m1, m2, ,,, mν}를 벡터 x 내의 각각의 위치에서의 진폭이라 하자. 펄스 위치에 대한 코드는 다음과 같이 주어진다.
[수학식 19]
Figure pct00032
그리고 펄스 진폭에 대한 코드는 다음과 같이 주어진다.
[수학식 20]
Figure pct00033
따라서, 이러한 코드워드의 공식화는 ν와 ν-1의 다중 정밀도 수의 덧셈을 필요로 한다. 유사한 뺄셈 연산들이 디코더에서 필요하다. 이러한 연산들은 n과 m이 큰 경우에 FPC 방법의 복잡도를 또한 증가시킨다. 다중 계층의 임베딩(embed)된 코딩 시스템에 대한 오디오 신호의 인코딩/디코딩을 고찰해 보자. 이러한 기법은 다중 계층 시스템의 세 개의 계층에서 잔류 오차 신호의 변환을 인코딩하는 데 사용된다. 20 ms 블록의 크기가 n=280이고 모든 세 개의 계층에서 동일하다고 하자. 인코딩을 위한 펄스들의 개수는 각 계층의 비트 속도에 의존한다. 각각의 계층이 8 kbps, 16 kbps, 또는 32 kbps인 경우, 이들은 각각 20 ms 블록의 코딩에 대해 160 비트, 320 비트 및 640 비트를 필요로 한다. FPC 기법을 사용하여, 계층 당 160 비트, 320 비트 및 640 비트에 대해 각각 28, 74 및 230개의 펄스를 사용하여 길이 280의 블록이 코딩될 수 있다. 수학식 19 및 20에서의 다중 정밀도 연산들은 전형적으로 16 비트 워드들에 대해 연산을 하는 DSP 상에서 수행된다. 따라서, 160 비트 코드워드의 공식화를 위해, 덧셈 연산들이 10 워드에 걸쳐 수행될 필요가 있고, 640 비트 코드워드에 대해 덧셈 연산이 40 워드에 걸쳐 수행되어야 한다. 각각의 덧셈 연산은 4 단위(장소 올림의 생성, 어레이로의 이동, 장소 올림과 합산)를 취한다. 따라서, 다중 계층 시스템의 p개의 계층에서의 k 비트 코드워드의 인코딩/디코딩은 초당
Figure pct00034
회의 연산을 필요로 한다. n, m 및 p의 다양한 값들에 대해, 다중 정밀도 덧셈/뺄셈 연산들의 복잡도가 표 1에 도시되어 있다. 이 표에서, WMOPS는 100만 단위의 가중화된 초당 연산 횟수(Weighted Millions of Operation Per Second)를 나타낸다.
계층의 수(p) 블록 크기(n) 계층 비트 속도/20 ms 블록 당 비트(k) 펄스의 수(m) 다중 정밀도 덧셈/뺄셈의 복잡도
3
3
3
280
280
280
8 kbps/160
16 kbps/320
32 kbps/640
28
74
230
0.64 WMOPS
3,48 WMOPS
22.0 WMOPS
<종래 기술의 방법을 사용한 FPC 인코딩/디코딩에서의 덧셈/뺄셈의 복잡도>
표 1로부터, 비트 속도가 2배로 되면 다중 정밀도 덧셈의 복잡도가 6배로 증가함에 주목한다.
앞서 언급된 바처럼, 조합 함수는 다음과 같이 주어지는 근사 함수 F'(n,r)에 의해 치환된다.
[수학식 21]
Figure pct00035
[수학식 22]
Figure pct00036
R'(k)는 다음과 같이 주어지는
Figure pct00037
함수의 근사이다.
[수학식 23]
Figure pct00038
여기서 k=ki+kf는 k의 정수 및 분수 성분들로 분해되며,
Figure pct00039
는 k의 분수 성분의 저 분해능 테일러 급수 전개이다. 앞서 미리 정의된 함수 Q'(r)과 R'(k)에 기초하여, 다음과 같은 고유한 디코딩 가능성 부등식이 n과 d의 모든 값들에 대해 충족되도록 P'(i)가 먼저 구해진다.
[수학식 24]
Figure pct00040
다시 수학식 19 및 20으로 돌아가서, 실제 함수 F 대신에 근사 함수 F'로 치환하면 다음과 같이 된다.
[수학식 25]
Figure pct00041
[수학식 26]
Figure pct00042
0이 아닌 위치의 개수의 인코딩
lR 비트 가수 및 지수 표현 형식은 또한 0이 아닌 위치의 개수의 코딩에 유리하다. 0이 아닌 위치의 개수 ν의 인코딩은 다음과 같이 주어진다.
[수학식 27]
Figure pct00043
두 근사 함수의 곱은 다중 정밀도 형식에서보다 가수 및 지수 형식에서 훨씬 쉬울 수 있음을 볼 수 있을 것이다. 그러나, 주요한 장점은 lR 비트 가수 및 지수 표현을 사용하여 복잡도를 감소시키고자 하는 경우에 F'(n,k) 및 F'(m-1,k-1) 각각이 두 워드만을 사용하여 미리 저장될 수 있다는 점이다(이들의 lR 비트 가수의 곱과 이들의 지수의 합이 또한 미리 저장될 수 있음). 이는 임의의 상당한 ROM 요구 없이도 ν의 보다 빠른 인코딩을 가능하게 한다.
도 2는 디코더(200)의 블록도이다. 도시된 바처럼, 디코더(200)는 조합 디코딩 회로(206), 신호 재구축 회로(210), 기타 디코딩 회로(204) 및 조합 함수 생성기(108)를 포함한다. 동작 중에, 조합 코드워드가 조합 디코딩 회로(206)에 의해 수신된다. 조합 디코딩 회로(206)는 n과 d를 조합 함수 생성기에 제공하고, 그에 응답하여 F'(n,d)를 수신한다. 이후 디코딩 회로(302)는 F'(n,d)에 기초하여 벡터 xi를 생성한다. 회로(206)는 뺄셈이 덧셈 연산들을 대체한다는 점 외에는 회로(106)와 유사한 방식으로 동작한다. 달리 말해, Ψ'k=Ψ'k+1-F'(pk,k)이다. 벡터 xi는 신호 재구축 회로(210)로 전달되는데, 여기에서 출력 신호(예컨대 음성, 오디오, 이미지, 비디오, 또는 다른 신호들)가 xi 및 기타 디코딩 회로(204)로부터의 다른 파라미터들에 기초하여 생성된다. 보다 구체적으로, 상기 다른 파라미터들은 특정한 실시예에서 사용되고 있는 신호 코딩 패러다임과 연관된 임의의 개수의 신호 재구축 파라미터들을 포함할 수 있다. 이들은 신호 스케일링(scaling) 및 에너지 파라미터들, 그리고 스펙트럼 성형(spectral shaping) 및/또는 합성 필터 파라미터들을 포함할 수 있지만 이에 한정되지 않는다. 보통 이러한 파라미터들은 최종 출력 신호를 재생하기 위한 방식으로 재구축된 신호 벡터 xi의 에너지를 스케일링하고/하거나 재구축된 신호 벡터 xi를 스펙트럼 성형하는 데 사용된다.
도 3은 도 1 및 도 2의 조합 함수 생성기의 동작을 도시하는 흐름도이다. 보다 구체적으로, 도 3의 논리 흐름(300)은 조합 함수 생성기(108)가 F'(n,d)를 생성하는 단계들을 도시한다. 논리 흐름은 단계(301)에서 개시하고, 단계(302)에서 입력 n 및 d가 수신된다. 단계(303)에서, 누산기 A가 0으로 설정된다. 단계(304)에서, 카운터 i가 n-d+1과 같게 설정된다. 단계(306)에서, 로그 근사 P'(i)가 누산기 A에 더해진다. 단계(310)에서, 카운터 i가 1만큼 증분된다. 카운터 i가 n보다 커질 때까지 단계(306) 및 단계(310)가 루프로 반복된다. 단계(312)는 i>n을 검사하고 i가 n보다 커지면 루프를 종결시킨다. 이 단계에서, 누산기는 조합 함수 F(n,d)의 분자의 로그 근사를 포함한다. 단계(316)에서, 조합 함수 F(n,d)의 분모의 로그 근사 Q'(d)를 누산기로부터 뺄셈하여 조합 함수의 로그 근사를 구한다. 단계(318)에서, 누산기의 지수 근사 R'(A)를 취하여 조합 함수의 근사 B를 생성한다. 단계(314)에서, B가 F'(n,d)로서 출력된다.
앞서 기술된 감소된 복잡도의 조합 계산을 사용하는 것은 복잡도를 현저히 감소시키지만, 이러한 함수들의 계산은 인코딩 및 디코딩 방법들의 복잡도에 여전히 크게 기여한다. 이에 대처하기 위해, 본 발명의 소정의 실시예들은 조합 함수의 계산이 수행되어야 하는 횟수를 감소시키기 위해 펄스 위치 및/또는 펄스 진폭의 인코딩 및 디코딩 방법들 사이에서 적응적으로 전환할 수 있다.
다시 수학식 19 및 20과 이들의 대응하는 낮아진 복잡도를 구현하는 수학식 25 및 26을 참조할 때, 수학식 19 및 25에서의 인코딩 프로세스는 각각 조합 함수 F 및 F'의 ν회의 계산을 필요로 함에 주목한다. 유사하게, 수학식 20 및 26은 이러한 함수들의 ν-1회의 계산을 필요로 할 것이다. 펄스 위치 및 펄스 진폭의 디코딩은 반복적이며, 따라서 이러한 함수들이 계산되는 횟수는 전형적으로 훨씬 많다. 디코더에서, 이러한 함수들의 계산 횟수는 0이 아닌 위치 또는 점유된 위치의 수 ν에 따라 선형적으로 증가한다. 펄스 위치 및/또는 펄스 진폭의 인코딩/디코딩의 복잡도를 감소시키기 위해, 본 발명의 소정의 대안적인 실시예들은 이러한 조합 함수들의 계산 횟수를 보다 적게 필요로 하는 펄스 위치 및/또는 펄스 진폭의 인코딩 및 디코딩을 위한 방법을 제공한다. 이러한 대안적인 실시예들에서, 수학식 19 및 20에 수정을 가하고 더 나아가 수학식 25 및 26에 수정을 가하여 비점유 위치들을 선택적으로 코딩하는 것을 제안한다.
먼저 수학식 20과 그에 대응하는 감소된 복잡도의 수학식 26을 참조한다.
[수학식 28]
Figure pct00044
과 같이 정의하면, 수학식 20은 다음과 같이 다시 쓸 수 있다.
[수학식 20a]
Figure pct00045
수학식 26은 다음과 같이 다시 쓸 수 있다.
[수학식 26a]
Figure pct00046
수학식 20a 및 26a는 각각 수학식 19 및 25와 구조가 유사한데, pk가 p'k에 의해 대체되고, n이 m-1에 대체되며, 점유된 위치들 ν가 ν-1로 대체되는데, 즉, 펄스 진폭의 인코딩이 m-1개의 위치에 놓인 ν-1개의 펄스들의 위치 인코딩으로 간주될 수 있으며, 점유된 위치들은 p'k에 의해 식별됨에 유의한다. 사실상, 펄스 진폭을 인코딩하는 것은 점유된 펄스들의 진폭들 mj가 pj 및 uj 항들에 의해 정의되는 의사(pseudo) 위치들을 생성하도록 변환되는 것으로 간주될 수 있다. 따라서, 펄스 위치들의 코딩 방법에 있어서의 임의의 수정은 펄스 진폭의 코딩으로, 그리고 그 역으로 쉽게 확장될 수 있다
대안적인 실시예들 중 소정의 것에 따르면, 조합 함수들의 필요한 계산 횟수를 감소시키도록 펄스 진폭 및/또는 펄스 위치의 코딩을 최적화하는 것을 제안한다. 펄스 위치들의 인코딩/디코딩에 앞서, ν가 인코딩/디코딩된다(수학식 27). 따라서, 0이 아닌 위치들의 개수를 두 배한 것이 n개의 장소보다 큰 경우, 즉 2·ν>n인 경우, 비점유 위치들의 개수 u1, u2, ..., uν는 점유된 위치들의 개수 ν보다 작다. 따라서, 이러한 경우 비점유 위치들을 수학식 19(또는 25)와 유사한 수학식을 사용하여 인코딩/디코딩하는 것은 보다 적은 횟수의 조합 함수 계산을 초래할 것이고, 따라서 보다 낮은 복잡도를 가질 것이다. 이를 수학적으로 예시하기 위해, 먼저 uk를 비점유 위치들로서 정의하고, U를 비점유 위치들의 집합으로 정의한다. 즉, 다음과 같다.
[수학식 29]
U={0,1,...,n-1}-{p1,p2,...pν}
U의 크기는 n-ν임에 주목한다. 이제, 2·ν>n인 때마다 위치에 대한 코드가 다음과 같이 계산된다.
[수학식 19z]
Figure pct00047
또는
[수학식 25z]
Figure pct00048
유사하게, 2·(ν-1)>(m-1)인 경우 진폭의 코딩은 다음과 같다.
[수학식 20z]
Figure pct00049
또는
[수학식 26z]
Figure pct00050
여기서 u'k는 다음과 같이 정의되는 집합 U'에 속한다.
[수학식 30]
U'={0,1,...,m-2}-{p'1,p'2,...p'ν-1}
그리고 p'k는 수학식 28에서 정의된 바와 같다.
이제 280개의 위치에 있는 27개의 펄스(즉 n=280이고 m=27임)의 코딩에 있어서 제안된 기법을 적용함으로써 비점유 위치들을 선택적으로 코딩하는 제안된 방법이 어떻게 복잡도를 감소시킬 수 있는지 평가할 것이다. 2·m<n이므로, 제안된 코딩 방식은 펄스 위치들에 대한 코드(Cπ)를 생성하는 데 필요하지 않을 것이다. 그러나, 펄스 진폭의 코딩을 위해, 제안된 기법이 유리하게 사용될 것이다.
제안된 기법을 사용하지 않으면, 이러한 특정한 예에서 인코딩/디코딩 알고리즘의 최악의 경우의 복잡도(저복잡도 조합 함수들이 사용되는 경우임)는 0이 아닌 위치들의 개수(ν)가 25와 27 사이, 즉, m과 m-2 사이에 있을 때인 것으로 나타난다. ν=25인 경우, 수학식 26을 사용하는 것은 인코딩을 위한 조합 함수의 24회의 계산을 필요로 할 것이고, 디코딩을 위해서는 몇 회 더 많은 계산을 필요로 할 것이다. 이러한 상황에서 제안된 기법(수학식 26z)을 사용하는 것은 인코더에서 오직 두 배의 조합 함수 계산을 필요로 할 것이고, 디코더에서는 다른 디코딩 기법들에 비하여 현저히 적은 횟수를 필요로 할 것이다.
본 발명의 실시예들과 일치하는 인코딩/디코딩을 위한 제안된 기법에 따라, 이 예에서 최악의 경우의 복잡도는 ν가 m/2에 가까울 때이다. 이러한 경우, 수학식 27을 사용하여 0이 아닌 위치의 개수 ν를 인코딩 및 디코딩하는 것은 복잡도에 현저한 기여를 한다. "0이 아닌 위치의 개수의 인코딩" 부분에서 기술된 바와 같은 파라미터들을 저장하는 것(이 예에서 54 워드의 저장소를 필요로 함)은 복잡도를 더 감소시킨다.
아래의 표는 비점유 위치들을 코딩하는 제안된 방법이 280개의 위치에 있는 27개의 펄스를 코딩하는 데 사용되고 코딩이 20 ms 프레임 내에서 2회 수행되는 경우의 복잡도 감소를 나타낸다. 이 표는 또한 0이 아닌 위치의 개수에 대한 코드의 계산(수학식 27)에서 사용되는 파라미터들을 저장하는 것으로부터 얻어지는 이익을 나타낸다. 이 표로부터, 비점유 위치들을 선택적으로 코딩하는 것은 0.6 WMOPs의 복잡도 개선(3.59에서 2.9로)을 초래하였음을 볼 수 있고, 수학식 27에서 사용되는 파라미터들도 저장하는 경우 0.75 WMOPs만큼 절감된다(3.59에서 2.75로).
디코딩은 인코딩 프로세스의 역이며, 수신된 코드워드 C에 기초하여 0이 아닌 위치들의 개수(ν)를 처음으로 디코딩하는 것을 수반한다. 0이 아닌 위치들의 개수를 인코딩/디코딩하기 위한 다양한 방법, 예컨대 Peng 등과 Mittal 등에 의한 방법(미국 특허 제6,662,154호)이 이러한 목적을 위해 채택될 수 있다. 위치에 대한 코드워드 Cπ 및 진폭에 대한 코드워드 Cμ가 코드워드 C 및 ν에 기초하여 추출된다. 위치 p1,p2,...,pν가 코드워드 Cπ에 기초하여 디코딩된다. 진폭 m1,m2,...,mν가 코드워드 Cμ에 기초하여 디코딩된다. 코딩된 신호는 이제 다음과 같이 디코딩된다.
[수학식 31]
Figure pct00051
파라미터들을 저장 필요한 경우 비점유 위치들을 코딩 복잡도(WMOPs)
아니오 아니오 3.59
아니오 3.50
아니오 2.90
2.75
점유 및 비점유 위치들의 코딩 사이에서 전환함으로써 조합 함수의 계산 횟수를 감소시키는 본 명세서에 기술된 방법은 이제 기술되는 바와 같이 개선된 근사 조합 함수에 의해 더 향상될 수 있다. 이는 F'(pk,k)가 다중 정밀도 수 Ck보다 작도록 pk의 가장 큰 값을 반복적으로 찾기 위한 디코더의 필요에 의해 야기되는 상당한 복잡도를 디코더가 갖는다는 인식에 기초한다. 디코더는 pk의 이러한 값을 반복적으로 구한다. 이러한 반복은 조합 함수들 F'의 몇 회의 계산을 필요로 할 수 있는데, 이는 디코딩 프로세스의 복잡도를 증가시킨다.
수학식 21에서의 근사 조합 함수의 복잡도를 더 감소시키기 위해, P'(i)를 미리 저장하는 대신, 다음과 같이 P'(i)의 부분 합을 계산한다.
[수학식 32]
Figure pct00052
그리고 이제 수학식 21이 다음과 같이 대등하게 계산될 수 있다.
[수학식 33]
F'(n,d)=R'{S'(n)-S'(n-d)-Q'(d)}
비록 근사 조합 함수를 사용하는 것이 복잡도를 상당히 감소시켰지만, 이러한 함수들의 계산은 여전히 코딩의 복잡도의 주요 부분들 중 하나를 형성한다. 점유 위치와 비점유 위치의 코딩 사이에서 전환함으로써 조합 함수의 계산 횟수를 감소시키는 하나의 방법이 별개의 개시 내용으로 개시되었다. 이러한 개선으로도 디코더는 여전히 상당한 복잡도를 갖는다. 이는 F'(pk,k)가 다중 정밀도 수 Ck보다 작도록 디코더가 pk의 가장 큰 값을 반복적으로 찾을 필요가 있기 때문이다. 디코더는 pk의 이러한 값을 반복적으로 구한다. 이러한 반복은 조합 함수들의 몇 회의 계산을 필요로 할 수 있는데, 이는 디코딩 프로세스의 복잡도를 증가시킨다.
디코더가 pk를 구하기 위해 반복할 필요가 없는 코딩 방법에 대한 필요가 존재함을 인식하여, 디코더가 pk를 구하기 위해 반복할 필요가 없는 개선된 조합 함수가 제시된다. 수학식 33이 F'(pk,k)를 정의하는 데 사용되는 경우, 반복 없이 이러한 해결책을 얻는 것이 실현 가능하지 않을 수 있다.
근사 조합 함수를 다음과 같이 재정의한다.
[수학식 34]
Figure pct00053
여기서
Figure pct00054
은 l(i)=16까지의 소수 장소들의 i의 로그이고, Q"(d)=Q'(d)+d는 수학식 34에서 정의된 F'(n,d)가 디코딩 가능성 부등식 24를 충족하도록 미리 계산되고 저장된다.
수학식 16에서 d!의 2를 밑으로 한 근사 로그로서 Q'(d)가 정의되었으므로, 수학식 34에서 정의된 F'(n,d)는 수학식 3과 5에서 정의된 실제 조합 함수의 근사이다. 다시 수학식 5로 돌아가면, 분자는 n,n-1,n-2,...,n-d+1의 기하 평균의 d차 거듭제곱이라 할 수 있다. 이러한 수들의 산술 평균은 n-(d-1)/2이다. 상기 기하 평균을 산술 평균으로 근사하는 경우, 수학식 5의 근사는 다음과 같이 다시 쓸 수 있다.
[수학식 35]
Figure pct00055
수학식 34의 2를 밑으로 한 로그를 취하고 수학식 21을 구하는 데 사용한 것과 유사한 방식을 사용하면, 다음을 구한다.
[수학식 36]
Figure pct00056
따라서, 다음과 같다.
[수학식 37]
F'(n,d)=R'{d·P'(2·n-d+1)-d-Q'(d)}
여기서
Figure pct00057
이다. 저복잡도 테일러 급수가 R'(k)를 생성하는 데 사용된다. R'(k)를 생성하기 위한 방법은 위의 수학식 18에 후속하는 논의에서 기술된다.
본 명세서 및 첨부된 청구항들에서 사용되는 바처럼, 제시된 다양한 실시예의 취지 및 범위로부터 벗어나지 않고 다양한 계승 조합, 즉 조합 함수 F 또는 근사 계승 조합 F'(일반적으로 F'로 표시됨)가 사용될 수 있다. 앞서 기술된 바처럼, 이러한 조합 함수들은 아래의 수학식들을 포함할 수 있지만, 이에 한정되지는 않는다.
Figure pct00058
Figure pct00059
Figure pct00060
조합 함수의 계산이 수행되어야 하는 횟수를 감소시키기 위해 펄스 위치 및/또는 펄스 크기의 인코딩 및 디코딩 방법들 사이에서 적응적으로 전환하는 것은 도면들을 참조함으로써 더 이해될 수 있다. 이제 도 4를 참조하면, 인코더(400)의 블록도가 도시된다. 이 인코더에서 볼 수 있는 바처럼, 이는 도 1의 것과 다소 유사하지만, 도시된 바처럼 위치 밀도 추정기(408)에 의해 공급되는 밀도 정보에 의해 제어되는 스위치(410)를 소유한다. 목표 벡터 x가 위치 밀도 추정기(408)에 입력되는데, 이는 점유된 위치들의 전체 개수(ν)에 관하여, 그리고 코딩될 점유 위치들의 개수(η) 및 이러한 점유 위치들의 장소들의 가능한 개수(ρ)에 관하여 밀도를 출력한다. 조합 코딩 블록(106)은 점유 위치(pk) 및 비점유 위치(uk) 모두를 생성하고 스위치(410)에 출력할 수 있다. 이들 둘(pk 또는 uk) 중 어느 것이 스위치(410)로부터 조합 함수 생성기(108)로 공급되어야 하는지가 스위치(410)에 의해 결정된다. 0이 아닌 위치들의 개수가 소정의 미리 정의된 값보다 큰 경우 스위치는 비점유 위치(uk)를 108에 전달할 수 있다. 코딩될 점유 위치들의 장소들의 가능한 개수에 대한 코딩될 점유 위치들의 개수의 비율이 미리 정의된 값보다 큰 경우 스위치는 또한 비점유 위치(uk)를 전달할 수 있다.
도 5는 도 4의 인코더의 동작을 간략하게 표현한 것을 나타내는 흐름도이다. 로직 흐름은 입력 신호가 벡터 생성기(102)에 의해 수신되는 단계(510)에서 시작한다. 앞서 논의된 바처럼, 입력 신호는 음성, 오디오, 이미지, 비디오, 또는 다른 신호들을 포함할 수 있다. 단계(520)에서 벡터 xi가 생성되어 조합 코딩 회로(106)에 전달되는데, 여기에서 m과 ν가 결정되어 조합 함수 생성기(108)에 전달된다. 앞서 논의된 바처럼, m은 단위 진폭 펄스들의 전체 개수(또는 xi의 정수값 성분들의 절대값들의 합)이고 ν는 xi의 0이 아닌 요소들의 개수이다. 단계(530)에서 F'(pj,j)가 조합 함수 생성기(108)에 의해 생성되어 조합 코딩 회로(106)에 전달되는데, 여기에서 벡터 xi가 단계(540)에서 코딩되어 조합 코드워드 C를 생성한다. 앞서 논의된 바처럼, 수학식 10 및 11에서 주어진 조건들이 충족되도록 원래의 함수들의 저복잡도 근사들을 가지고 F(pj,j) 내의 함수 P(i), Q(j) 및 R(k)를 대체함으로써 F'(pj,j)가 생성된다.
이제 도 6을 참조하면, 소정의 실시예들과 일치하는 디코더의 블록도(600)가 도시된다. 디코더(600)는 인코더(400)의 역으로 동작한다. 도시된 바처럼, 디코더(600)는 조합 디코딩 회로(206), 신호 재구축 회로(210), 기타 디코딩 회로(204), 조합 함수 생성기(208), 스위치(610) 및 위치 밀도 추정기(608)를 포함한다. 동작 중에, 조합 코드워드가 조합 디코딩 회로(206)에 의해 수신된다. 조합 디코딩 회로(206)는 n과 d를 조합 함수 생성기에 제공하고, 그에 응답하여 F'(n,d)를 수신한다. 이후 디코딩 회로(302)는 F'(n,d)에 기초하여 벡터 xi를 생성한다. 회로(206)는 뺄셈이 덧셈 연산들을 대체한다는 점 외에는 회로(106)와 유사한 방식으로 동작한다. 달리 말해, Ψ'k=Ψ'k+1-F'(pk,k)이다. 벡터 xi는 신호 재구축 회로(210)로 전달되는데, 여기에서 출력 신호(예컨대 음성, 오디오, 이미지, 비디오, 또는 다른 신호들)가 xi 및 기타 디코딩 회로(204)로부터의 다른 파라미터들에 기초하여 생성된다. 보다 구체적으로, 상기 다른 파라미터들은 특정한 실시예에서 사용되고 있는 신호 코딩 패러다임과 연관된 임의의 개수의 신호 재구축 파라미터들을 포함할 수 있다. 이들은 신호 스케일링 및 에너지 파라미터들, 그리고 스펙트럼 성형 및/또는 합성 필터 파라미터들을 포함할 수 있지만 이에 한정되지 않는다. 보통 이러한 파라미터들은 최종 출력 신호를 재생하기 위한 방식으로 재구축된 신호 벡터 xi의 에너지를 스케일링하고/하거나 재구축된 신호 벡터 xi를 스펙트럼 성형하는 데 사용된다.
도 7은 도 6의 디코더의 동작을 간략하게 표현한 것을 나타내는 흐름도이다. 로직 흐름은 조합 코드워드가 조합 디코더(206)에 의해 수신되는 단계(710)에서 시작한다. 단계(720)에서 pj 및 j가 조합 디코더(206)로부터 조합 함수 생성기(208)로 전달되고, 단계(730)에서 F(pj,j)가 디코더(206)에 반환된다. 코드워드는 단계(740)에서 F(pj,j)에 기초하여 디코더(206)에 의해 디코딩되어 벡터 xi를 생성하고, 벡터 xi는 신호 재구축 회로(210)에 전달되는데, 여기에서 단계(750)에서 출력 신호가 생성된다.
다양한 실시예에서 "비점유 위치"를 코딩하는 제안된 방법이 위치 및 진폭 모두를 코딩하는 데 적용됨을 볼 수 있다. 그러나, 본 기술 분야의 당업자는 이러한 방법이 이러한 파라미터들 중 하나를 코딩하는 데 적용될 수 있음을 알 것이다. 유사하게, 디코더는 인코더의 역으로 동작한다. 종래 기술의 디코더가 항상 위치(pk) 및 (p'k)를 디코딩하지만, 본 발명의 실시예들과 일치하는 디코더는 2·ν>n인 경우 비점유 위치들(uk)을 디코딩할 수 있거나, 2·(ν-1)>m-1인 경우 u'k을 디코딩할 수 있다. uk 및 u'k를 디코딩한 후에, 디코더는 이들을 pk, p'k 및 mk로 변환할 수 있다.
본 발명의 소정의 실시예들에 따른 인코딩의 간략한 개관으로부터 시작하여, 아래의 흐름을 살펴본다.
펄스들의 시퀀스(sequence)를 사용하여 코딩된 신호가 수신된다.
0이 아닌 펄스 위치의 개수(ν)가 결정되고, ν에 대한 코드 Cν가 수학식 27을 사용하여 생성될 수 있다{이는 선택적인 단계이고, 코드워드(C)는 코드 Cπ 및 Cμ에 의해 실제로 근사될 수 있음에 주목한다}.
0이 아닌 펄스들의 위치들 p1,p2,...,pν이 결정된다. 2·(ν-1)≤n인 경우 수학식 25를 사용하여 위치에 대한 코드 Cπ를 생성하고, 그렇지 않은 경우 수학식 25z를 사용하여 위치에 대한 코드 Cπ를 생성한다.
0이 아닌 펄스들의 진폭들 m1,m2,...,mν이 결정된다. 2·(ν-1)≤m-1인 경우 수학식 26을 사용하여 진폭에 대한 코드 Cμ를 생성하고, 그렇지 않은 경우 수학식 26z를 사용하여 진폭에 대한 코드 Cμ를 생성한다.
코드 Cν, Cπ 및 Cμ를 조합하여 코드워드(C)를 형성한다.
소정의 실시예들에 따른 디코딩에 대한 간략한 흐름이 고려될 수 있다.
펄스들의 시퀀스를 사용하여 코딩된 신호를 나타내는 코드워드(C)를 수신한다.
수학식 21의 Cν가 C보다 크지 않도록 하는 가장 큰 값인 0이 아닌 펄스 위치의 개수(ν)를 찾는다{다시, 수학식 21에서 Cν를 명시적으로 결정하지 않고 디코딩이 일어날 수 있음에 주목한다}.
코드워드 C 및 0이 아닌 위치들의 개수(ν)에 기초하여 코드워드 Cπ 및 Cμ를 추출한다.
2·ν≤n인 경우 Cπ에 기초하여 점유 위치들 p1,p2,...,pν를 디코딩하고, 그렇지 않은 경우 비점유 위치들 u1, u2, ..., uν를 디코딩하고 비점유 위치들로부터 점유 위치들을 계산한다.
2·(ν-1)≤m-1인 경우 Cμ에 기초하여 p'1,p'2,...,p'ν-1를 디코딩하고, 그렇지 않은 경우 u'1, u'2, ..., u'ν-1를 디코딩한다. p'1,p'2,...,p'ν-1 또는 u'1, u'2, ..., u'ν-1에 기초하여 0이 아닌 위치들의 진폭들 m1,m2,...,mν를 구한다.
디코딩된 0이 아닌 위치 및 0이 아닌 위치들의 디코딩된 진폭들에 기초하여 수학식 31을 사용하여 인코딩된 신호를 디코딩한다.
아래에서 이러한 간략화된 흐름들을 더 살펴볼 것이다.
이제 도 8을 참조하면, 흐름(800)은 본 발명의 소정의 실시예들에 따른 인코더를 동작시키는 인코딩 프로세스를 도시하는데, 이는 추정 밀도의 함수로서 벡터의 점유 및 비점유 위치들의 코딩 사이에서 적응적으로 전환하는 것에 관하여 고려될 수 있다. 블록(810)에서, 인코딩될 n개의 위치를 갖는 벡터(x)가 수신된다. 블록(820)에서, 벡터(x)의 n개의 위치들 중 복수의 점유 위치의 추정 밀도가 결정된다. 블록(830)에서, 코딩된 값을 생성하도록 복수의 점유 위치의 코딩과 n개의 위치들 중 복수의 비점유 위치의 코딩 사이에서 적응적으로 전환하는 단계가 일어난다. 위치의 추정 밀도는 복수의 점유 위치의 개수와 비교한 복수의 비점유 위치의 개수에 의해 결정되며, 따라서 복수의 점유 위치의 코딩과 복수의 비점유 위치의 코딩 사이에서 적응적으로 전환하는 단계는 복수의 비점유 위치의 개수가 문턱값보다 작은 경우에 복수의 비점유 위치를 코딩하는 단계와, 복수의 비점유 위치의 개수가 문턱값보다 작지 않은 경우에 복수의 점유 위치를 코딩하는 단계를 더 포함한다. 문턱값은 n/2와 같은 복수의 점유 위치의 개수로 간주될 수 있다. 코드워드(C)는 복수의 코드 값으로부터 생성되는데, 각각의 값은 벡터(x)의 n개의 위치들 중 복수의 위치에서 결정된다.
이제 도 9를 참조하면, 흐름(900)은 본 발명의 소정의 실시예들에 따른 디코더를 동작시키는 디코딩 프로세스를 도시한다. 블록(910)에서, 펄스들의 시퀀스를 사용하여 코딩된 신호를 나타내는 코드워드(C)가 수신된다. 블록(920)에서, 코드워드 C에 기초하여 벡터(x)의 n개의 위치 중 복수의 점유 위치의 추정 밀도가 결정된다. 블록(930)에서, 디코딩된 값을 생성하도록 복수의 점유 위치의 추정 밀도에 따라 복수의 점유 위치의 디코딩과 벡터 x의 복수의 비점유 위치의 디코딩 사이에서 적응적으로 전환하는 단계가 수행된다. 위치의 추정 밀도는 복수의 점유 위치의 개수와 비교한 복수의 비점유 위치의 개수에 의해 결정되며, 복수의 점유 위치의 디코딩과 복수의 비점유 위치의 디코딩 사이에서 적응적으로 전환하는 단계는, 복수의 비점유 위치를 디코딩하여 복수의 디코딩된 비점유 위치를 생성하고 복수의 비점유 위치의 개수가 문턱값보다 작은 경우에 복수의 디코딩된 비점유 위치로부터 복수의 디코딩된 점유 위치를 생성하는 단계와, 복수의 비점유 위치의 개수가 문턱값보다 작지 않은 경우에 복수의 점유 위치를 디코딩하는 단계를 더 포함할 수 있다. 문턱값은 복수의 점유 위치의 개수일 수 있다. 따라서 벡터(x)는 이 예에서 디코딩된 값으로부터 생성된다. 이는 벡터 x의 복수의 점유 위치의 개수 ν에 기초하여 코드워드(C)로부터 코드 Cμ 및 코드 Cπ를 추출함으로써 더 달성될 수 있다.
약간 상이한 용어들로 서술하여, 도 10 및 11의 흐름들(1000 및 1100)은 각각 점유 위치들의 수와 같은 문턱값과 비교한 비점유 위치들의 개수를 직접 살펴보는 것에 관하여 추정 밀도를 사용하는 것을 도시한다. 도 10의 흐름(1000)은 벡터(x)의 코드워드(C)를 인코딩하도록 동작 가능한 인코더를 동작시키기 위한 방법을 도시한다. 블록(1010)에서, 인코딩될 n개의 위치를 갖는 벡터(x)가 수신된다. 판정 블록(1020)은 벡터(x)의 n개의 위치 중 복수의 비점유 위치의 개수가 문턱값보다 낮은지 여부를 조사한다. 그러한 경우, 블록(1030)에서 벡터(x)의 n개의 위치 중 복수의 비점유 위치의 값들이 결정되고, 복수의 비점유 위치의 값들로부터 코드워드(C)가 생성된다. 그렇지 않은 경우, 블록(1040)에서 복수의 점유 위치의 값들이 결정되고, 복수의 점유 위치의 값들로부터 코드워드(C)가 생성된다.
벡터(x)의 n개의 위치 중 복수의 비점유 위치의 개수가 문턱값보다 작은 예시적인 실시예에서 펄스 진폭들을 코딩하기 위해, 복수의 비점유 위치의 값들을 결정하는 단계는, 복수의 점유 위치의 복수의 펄스 진폭 m1, m2, ,,, mν을 결정하는 단계; 복수의 펄스 진폭에 기초하여 복수의 비점유 펄스 위치 u'k를 생성하는 단계; 및 2·(ν-1)>(m-1)인 경우 m-1개의 장소에 위치한 m-ν개의 비점유 펄스 위치의 위치 인코딩에 의해 복수의 진폭을 인코딩하여 복수의 펄스 진폭에 대한 코드 Cμ를 생성하는 단계를 더 포함할 수 있다. 이후 복수의 비점유 위치의 복수의 펄스 진폭을 인코딩하는 단계는
Figure pct00061
에 따라 복수의 진폭에 대한 코드 Cμ를 생성하는 단계를 더 포함할 수 있는데, 여기서 u'kU'={0,1,...,m-2}-{p'1,p'2,...p'ν-1} 이고
Figure pct00062
로 정의되는 집합 U'에 속한다.
이 예에서 코드워드(C)는 복수의 펄스 진폭의 코드 Cμ에 의해 적어도 부분적으로 결정될 수 있다.
벡터(x)의 n개의 위치 중 복수의 비점유 위치의 개수가 문턱값보다 작은 예시적인 실시예를 계속 살펴보면, 복수의 비점유 위치에 대한 코드 Cπ를 생성하도록 복수의 비점유 위치의 복수의 펄스 위치를 코딩하는 단계가 또한 선택적으로 착수될 수 있다. 복수의 비점유 위치에 대한 코드 Cπ
Figure pct00063
(0≤uk<n)에 따라 생성된다.
더욱이, 복수의 점유 위치에 대한 코드 Cπ를 생성하도록 복수의 점유 위치의 복수의 펄스 위치를 인코딩하는 단계가
Figure pct00064
(0≤pk<n)에 따라 수행될 수 있다. 말할 필요도 없이, 이러한 경우에 코드워드(C)는 코드 Cπ 및 Cμ에 의해 적어도 부분적으로 결정된다.
진폭 및 위치 인코딩 모두가 착수될 수 있고 위치 인코딩이 진폭 인코딩과 조합하여 착수될 수 있음이 기술되었지만, 이러한 두 유형의 인코딩은 별개로 또는 조합하여 착수될 수 있다. 예컨대, 위치 인코딩만을 착수하고자 하는 예에서, 이하를 고려한다. 벡터 x 내의 복수의 0이 아닌 펄스 위치 p1, p2, ..., pν를 결정하는 단계는
Figure pct00065
(0≤uk<n)에 따라 복수의 비점유 위치에 대한 코드 Cπ를 생성하도록 복수의 비점유 위치를 선택적으로 인코딩하는 단계를 포함할 수 있다. 역으로, 진폭 인코딩만을 착수하고 벡터(x)의 n개의 위치 중 복수의 비점유 위치의 개수가 (m-1)/2와 동등한 문턱값보다 작지 않은 경우에, 복수의 점유 위치의 값들을 결정하고 복수의 점유 위치의 값들로부터 코드워드(C)를 생성하는 단계는, 2·(ν-1)≤m-1인 경우 복수의 점유 위치의 복수의 펄스 진폭 m1, m2, ,,, mν을 결정하여
Figure pct00066
에 따라 펄스 진폭들에 대한 코드 Cμ를 생성하는 단계; 및 적어도 코드 Cμ로부터 코드워드 C를 생성하는 단계를 더 포함할 수 있다.
그러나, 이러한 사례들에 있어서, 벡터(x)의 n개의 위치 중 복수의 비점유 위치의 개수가 문턱값보다 작지 않은 경우, 상기 방법은 복수의 점유 위치의 값들을 결정하고 복수의 점유 위치의 값들로부터 코드워드(C)를 생성하는 단계를 포함할 것이고, 위치 인코딩의 경우 복수의 점유 위치의 복수의 펄스 위치 p1, p2, ..., pν를 인코딩하여
Figure pct00067
(0≤pk<n)에 따라 코드 Cπ를 생성하는 단계를 더 포함한다.
다시 도 4를 참조하면, 인코더(400)의 동작은 아래의 조합 코딩 회로(106)의 동작들, 즉 인코딩될 n개의 위치를 갖는 벡터(x)를 수신하는 단계; 벡터(x)의 n개의 위치 중 복수의 점유 위치의 추정 밀도를 결정하는 단계; 및 코딩된 값을 생성하도록 복수의 점유 위치의 추정 밀도에 따라 n개의 위치 중 복수의 비점유 위치의 코딩과 복수의 점유 위치의 코딩 사이에서 적응적으로 전환하는 단계를 포함할 것이다. 앞서 설명한 바처럼, 위치의 추정 밀도는 복수의 점유 위치의 개수와 비교한 복수의 비점유 위치의 개수에 의해 결정될 수 있고, 복수의 점유 위치의 코딩과 복수의 비점유 위치의 코딩 사이에서 적응적으로 전환하는 단계는 조합 코딩 회로에 의해 수행될 수 있다. 이러한 코딩은 복수의 비점유 위치의 개수가 문턱값보다 작은 경우에 복수의 비점유 위치를 코딩하는 단계; 복수의 비점유 위치의 개수가 문턱값보다 작지 않은 경우에 복수의 점유 위치를 코딩하는 단계를 더 포함할 것이다. 더 기술되는 바처럼, 추정 밀도를 결정하고 추정 밀도에 기초하여 복수의 점유 위치의 코딩과 복수의 비점유 위치 사이의 코딩 사이에서 적응적으로 전환하는 단계는 벡터(x)의 n개의 위치 중 복수의 위치에서 동적으로 수행될 수 있다.
도 11의 흐름(1100)은 수신된 코드워드(C)로부터 벡터(x)를 생성하도록 동작 가능한 디코더를 동작시키기 위한 방법을 도시한다. 블록(1110)에서, 펄스들의 시퀀스를 사용하여 코딩된 신호를 나타내는 코드워드(C)가 수신된다. 판정 블록(1120)에서, 벡터(x)의 n개의 위치 중 복수의 비점유 위치의 개수가 문턱값보다 작은지 여부를 조사한다. 그러한 경우, 블록(1130)에서 벡터(x)의 n개의 위치 중 복수의 비점유 위치 및 복수의 점유 위치가 디코딩된 복수의 비점유 위치에 기초하여 디코딩된다. 블록(1140)에서, 복수의 비점유 위치로부터 복수의 디코딩된 점유 위치 값이 생성되고, 벡터(x)가 복수의 디코딩된 비점유 및 디코딩된 점유 위치 값으로부터 생성된다. 그렇지 않은 경우, 흐름은 복수의 비점유 위치가 디코딩되는 블록(1150)으로 속행된다.
코드 Cμ 및 코드 Cπ가 벡터 x의 복수의 점유 위치의 개수 ν에 기초하여 코드워드(C)로부터 추출될 수 있음을 이해할 것이다.
벡터(x)의 n개의 위치 중 복수의 비점유 위치의 개수가 문턱값보다 작은 조건에서, 진폭 디코딩은 복수의 비점유 펄스 위치 u'k를 디코딩하는 단계; 추출된 코드 Cμ 및 복수의 디코딩된 비점유 펄스 위치 u'k로부터 복수의 점유 위치의 복수의 펄스 진폭 m1, m2, ,,, mν를 디코딩하는 단계; 및 복수의 점유 위치의 디코딩된 복수의 펄스 진폭 m1, m2, ,,, mν를 사용하여 코드워드(C)를 디코딩하여
Figure pct00068
에 따라 벡터(x)를 생성하는 단계를 더 포함할 수 있다.
유사하게, 벡터(x)의 n개의 위치 중 복수의 비점유 위치의 개수가 문턱값보다 작은 경우, 위치 디코딩은 복수의 비점유 펄스 위치 uk를 디코딩하는 단계; 복수의 디코딩된 비점유 펄스 위치 uk로부터 복수의 디코딩된 점유 펄스 위치를 생성하는 단계; 및 디코딩된 비점유 펄스 위치들 및 디코딩된 점유 펄스 위치들을 사용하여 코드워드(C)를 디코딩하여 벡터(x)를 생성하는 단계를 포함할 수 있다.
다시 도 6을 참조하면, 디코더(600)의 동작은 아래의 조합 디코딩 회로(206)의 동작들, 즉 펄스들의 시퀀스를 사용하여 코딩된 신호를 나타내는 코드워드(C)를 수신하는 단계; 코드워드 C에 기초하여 벡터(x)의 n개의 위치들 중 복수의 점유 위치의 추정 밀도를 결정하는 단계; 및 디코딩된 값을 생성하도록 복수의 점유 위치의 추정 밀도에 따라 복수의 점유 위치의 디코딩과 벡터 x의 복수의 비점유 위치의 디코딩 사이에서 적응적으로 전환하는 단계를 포함할 것이다. 다시, 앞서 기술된 바처럼, 위치의 추정 밀도는 복수의 점유 위치의 개수와 비교한 복수의 비점유 위치의 개수에 의해 결정될 수 있으며, 조합 디코딩 회로에 의해 수행되는 복수의 점유 위치의 디코딩과 복수의 비점유 위치의 디코딩 사이에서 적응적으로 전환하는 단계는, 복수의 비점유 위치를 디코딩하여 복수의 디코딩된 비점유 위치를 생성하고 복수의 비점유 위치의 개수가 문턱값보다 작은 경우에 복수의 디코딩된 비점유 위치로부터 복수의 디코딩된 점유 위치를 생성하는 단계와, 복수의 비점유 위치의 개수가 문턱값보다 작지 않은 경우에 복수의 점유 위치를 디코딩하는 단계를 더 포함할 것이다. 더 기술되는 바처럼, 추정 밀도를 결정하고 추정 밀도에 기초하여 복수의 점유 위치의 디코딩과 복수의 비점유 위치 사이의 디코딩 사이에서 적응적으로 전환하는 단계는 벡터(x)의 n개의 위치 중 복수의 위치에서 동적으로 수행될 수 있다.
앞서 언급한 바처럼, 인코딩 또는 디코딩의 모드들 사이에서의 전환은 다양한 위치에서 추정 밀도의 함수로서 둘 이상의 위치에서 동적으로 일어날 수 있다.
본 발명의 다양한 실시예에 따르면, 점유 위치들을 코딩할지 또는 비점유 위치들을 코딩할지 여부는 장소들의 개수에 대한 점유 위치들의 비율로 정의되는 평균 밀도에 기초한다. 이전의 부분에서, 판정이 한번만 이루어지고 동일한 방식, 즉 점유 위치들의 코딩 또는 비점유 위치의 코딩 중 하나가 모든 위치들에 대해 채택되는 방법이 기술되었다. 점유 위치의 분포는 모든 장소에 걸쳐 균일하지 않을 수 있으므로, 밀도 역시 균일하지 않다. 따라서, 다양한 경우에 밀도에 기초하여 점유 또는 비점유 위치들을 코딩하기 위한 판정을 계속 전환하는 것이 가치 있을 수 있다. 이를 예로 살펴보자. n=27개의 장소 중 16개의 점유된 위치가 존재한다고 간주한다. 점유된 위치들은 0, 7, 9, 10, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24 및 25이다. 종래 기술의 방법에서, 이러한 점유 위치들은 수학식 26을 사용하여 직접 코딩되고, 앞서 기술된 바처럼 점유 위치들의 개수가 n/2보다 크면, 비점유 위치들 1, 2, 3, 4, 5, 6, 8, 11, 14, 23 및 26이 수학식 26z를 사용하여 코딩된다. 종래 기술의 인코더는 조합 함수의 계산을 16회 필요로 하는 반면, 본 발명의 인코더는 이 예에서 조합 함수 F 또는 F'의 계산을 11회 필요로 함에 주목한다. 점유 및 비점유 위치들을 살펴보면, 처음 5개의 펄스 위치, 즉 위치 0, 7, 9, 10 및 12까지의 점유 위치를 사용하여 코딩한 후 비점유 위치들, 즉 위치 14, 23 및 26을 코딩하는 것은 인코더에서 조합 함수들의 계산 횟수를 8회로 감소시킬 것임을 알 수 있다. 그러나, 디코더는 어느 방법이 인코딩에 사용되었는지와 하나의 방법으로부터 다른 방법으로부터의 전환이 어디에서 일어났는지를 알아야 할 필요가 있다. 디코더는 가장 높은 위치로부터 가장 낮은 위치로 디코딩을 시작하므로, 가장 높은 위치는 점유 위치들의 개수에 기초하여 코딩된다. 이후, 점유 위치들의 밀도가 추정되고, 밀도가 0.5보다 작으면 다음의 점유 위치가 코딩되고 그렇지 않으면 다음의 비점유 위치가 코딩된다.
이를 예시하기 위해, 다시 위의 예를 살펴본다. 최초의 점유 위치 밀도가 0.5보다 크기 때문에, 가장 높은 비점유 위치 26이 F'(26,11)로서 코딩된다. 이제 점유 위치들의 추정 밀도는 26개의 장소에서 16번째의 위치이며, 이는 또한 0.5보다 크므로 다음의 비점유 위치 23이 F'(23,10)으로서 코딩된다. 이제 위치 24 및 25가 점유되었음을 (디코더에서도) 추론할 수 있다. 점유 위치 밀도는 이제 23개의 장소에서 14번째의 점유 위치가 되며, 이는 여전히 0.5보다 크므로 다음의 비점유 위치 14가 F'(14,9)로서 코딩된다. 나머지 점유 위치의 밀도는 14개의 장소에서 6개의 펄스임을 쉽게 추정할 수 있고, 이는 0.5 보다 작다. 이제 다음의 점유 위치 13이 F'(13,6)으로서 코딩된다. 이제 점유 위치들의 밀도는 13개의 장소 중 5개의 펄스로 추정되고, 이는 0.5보다 작으므로 다음번의 점유 위치가 코딩된다{즉, 위치 12가 F'(12,5)로서 코딩됨}. 이제 12개의 위치에서 4개의 점유 위치가 존재하므로, 다시 점유 위치가 F'(10,4)로서 코딩된다. 동일한 논법을 사용하여, 다음의 3개의 점유 위치들이 F'(9,3), F'(7,2) 및 F'(0,1)로서 코딩된다. 따라서 코드워드 Cπ=F'(0,1)+F'(7,2)+F'(9,3)+F'(10,4)+F'(12,5)+F'(13,6)+F'(14,9)+F'(23,10)+ F'(26,11)는 이 예에서 9회의 조합 함수 계산을 필요로 한다.
동적 전환 - 인코더
하나 이상의 위치 장소에서 인코딩 방식들 사이에서의 동적 전환과 관련하여, 이러한 전환은 하나 이상의 장소에서 결정되는 추정 밀도의 함수일 수 있다. 따라서, 추정 밀도를 결정하고 추정된 밀도에 기초하여 복수의 점유 위치의 코딩과 복수의 비점유 위치의 코딩 사이에서 적응적으로 전환하는 단계는 벡터(x)의 n개의 위치 중 복수의 위치에서 동적으로 수행된다. 벡터(x)의 n개의 위치 중 점유 위치 p1, p2, ..., pν 및 비점유 위치 u1, u2, ..., un-ν가 결정된다. n개의 위치 중 위치 pk에 대해,
a) 2·ν>n인 경우 가장 높은 비점유 위치를 F'(un-ν,ν)로서 인코딩하지만, 2·ν≤n인 경우 가장 높은 비점유 위치를 F'(pν,ν)로서 인코딩하는데, 여기서 마지막의 인코딩된 위치(ρ)는 pν 또는 un-ν로 설정된다.
b) 마지막의 인코딩된 위치(ρ)보다 작은 비점유 위치의 개수(ε)와 점유 위치의 개수(η)를 계산한다.
c) 2·η≤ρ인 경우, ρ보다 작은 최대 점유 위치 pk를 구하고, 그 위치를 F'(pk,η)로서 코딩하는데, 여기서 마지막의 인코딩된 위치는 ρ=pk이다.
d) 2·η>ρ인 경우, ρ보다 작은 최대 비점유 위치 uk를 구하고, 그 위치를 F'(uk,ε)로서 코딩하는데, 여기서 마지막의 인코딩된 위치는 ρ=uk이다.
e) b, c, 및 d를 η 또는 ε가 0과 같을 때까지 반복한다.
d와 e에서 생성되는 위치 코드들은 위치 코드 Cπ를 생성하도록 합산될 수 있다.
진폭 인코딩의 경우, 복수의 점유 위치의 복수의 펄스 진폭 m1, m2, ..., mν이 결정된다. 또한, 벡터(x)의 n개의 위치 중 점유 위치 p'1, p'2, ..., p'ν-1 및 비점유 위치 u'1, u'2, ..., u'm-ν가 또한 복수의 펄스 진폭 m1, m2, ..., mν에 기초하여 결정된다. n개의 위치 중 위치 p'k에 대해,
a) 2·(ν-1)>m-1인 경우 가장 높은 비점유 위치를 F'(u'm-ν,ν-1)로서 인코딩하지만, 2·(ν-1)≤m-1인 경우 가장 높은 비점유 위치를 F'(p'ν,ν-1)로서 인코딩하는데, 여기서 마지막의 인코딩된 위치(ρ')는 p'ν 또는 u'm-ν로 설정된다.
b) 마지막의 인코딩된 위치(ρ')보다 작은 비점유 위치의 개수(ε')와 점유 위치의 개수(η')를 계산한다.
c) 2·η'≤ρ'인 경우, ρ'보다 작은 최대 점유 위치 p'k를 구하고, 그 위치를 F'(p'k,η')로서 코딩하는데, 여기서 마지막의 인코딩된 위치는 ρ'=p'k이다.
d) 2·η'>ρ'인 경우, ρ'보다 작은 최대 비점유 위치 u'k를 구하고, 그 위치를 F'(u'k,ε')로서 코딩하는데, 여기서 마지막의 인코딩된 위치는 ρ'=u'k이다.
e) b, c, 및 d를 η' 또는 ε'가 0과 같을 때까지 반복한다.
d와 e에서 생성되는 위치 코드들은 위치 코드 Cμ를 생성하도록 합산될 수 있다.
동적 전환 - 디코더
디코딩 중의 동적 전환과 관련하여, 추정 밀도가 결정되고, 추정된 밀도에 기초하여 복수의 점유 위치의 디코딩과 복수의 비점유 위치의 디코딩 사이에서 적응적으로 전환하는 단계는 벡터(x)의 n개의 위치 중 복수의 위치에서 동적으로 수행된다. 위치 디코딩의 경우, 전환 단계는 n개의 위치 중 위치 pk에 대해 아래를 포함한다.
a) 2·ν>n인 경우 코드 Cπ로부터 가장 높은 비점유 위치를 F'(un-ν,ν)로서 디코딩하지만, 2·ν≤n인 경우 가장 높은 점유 위치를 F'(pν,ν)로서 디코딩하는데, 여기서 마지막의 디코딩된 위치(ρ)는 pν 또는 un-ν로 설정된다.
b) 마지막의 디코딩된 위치(ρ)보다 작은 비점유 위치의 개수(ε)와 점유 위치의 개수(η)를 계산한다.
c) 2·η≤ρ인 경우, ρ보다 작은 최대 점유 위치 pk를 구하고, 그 위치를 F'(pk,η)로서 디코딩하는데, 여기서 마지막의 디코딩된 위치는 ρ=pk이다.
d) 2·η>ρ인 경우, ρ보다 작은 최대 비점유 위치 uk를 구하고, 그 위치를 F'(uk,ε)로서 디코딩하는데, 여기서 마지막의 디코딩된 위치는 ρ=uk이다.
e) b, c, 및 d를 η 또는 ε가 0과 같을 때까지 반복한다.
a, b, c, d 및 e에서 생성되는 최대 점유 위치들 pk와 최대 비점유 위치들 uk로부터 복수의 점유 위치가 디코딩된다.
진폭 디코딩의 경우, 복수의 점유 위치의 복수의 펄스 진폭 m1, m2, ..., mν이 결정된다. 벡터(x)의 n개의 위치 중 점유 위치 p'1, p'2, ..., p'ν-1 및 비점유 위치 u'1, u'2, ..., u'm-ν가 또한 복수의 펄스 진폭 m1, m2, ..., mν에 기초하여 결정된다. 그리고, n개의 위치 중 위치 p'k에 대해,
a) 2·(ν-1)>m-1인 경우 코드 Cμ로부터 가장 높은 비점유 위치를 F'(u'm-ν,ν-1)로서 디코딩하지만, 2·(ν-1)≤m-1인 경우 가장 높은 점유 위치를 F'(p'ν,ν-1)로서 디코딩하는데, 여기서 마지막의 디코딩된 위치(ρ')는 p'ν 또는 u'm-ν로 설정된다.
b) 마지막의 디코딩된 위치(ρ')보다 작은 비점유 위치의 개수(ε')와 점유 위치의 개수(η')를 계산한다.
c) 2·η'≤ρ'인 경우, ρ'보다 작은 최대 점유 위치 p'k를 구하고, 그 위치를 F'(p'k,η')로서 디코딩하는데, 여기서 마지막의 디코딩된 위치는 ρ'=p'k이다.
d) 2·η'>ρ'인 경우, ρ'보다 작은 최대 비점유 위치 u'k를 구하고, 그 위치를 F'(u'k,ε')로서 코딩하는데, 여기서 마지막의 디코딩된 위치는 ρ'=u'k이다.
e) b, c, 및 d를 η' 또는 ε'가 0과 같을 때까지 반복한다.
a, b, c, d 및 e에서 생성되는 최대 점유 위치들 pk와 최대 비점유 위치들 uk로부터 복수의 점유 위치가 디코딩된다.
이상의 명세서에서, 본 발명의 특정한 실시예들이 기술되었다. 그러나, 본 기술 분야의 당업자는 아래의 청구항들에 제시된 바와 같은 본 발명의 범위로부터 벗어나지 않고 다양한 수정 및 변경이 이루어질 수 있음을 이해한다. 따라서, 명세서 및 도면들은 한정적인 의미가 아닌 예시적인 의미로 간주되어야 하고, 이러한 모든 수정은 본 발명의 범위 내에 포함되도록 의도된다. 이점들, 장점들, 문제들에 대한 해결책들, 그리고 임의의 이점, 장점 또는 해결책이 발생하거나 보다 명백해지도록 야기할 수 있는 임의의 요소(들)은 청구항들 중 임의의 것 또는 전부의 핵심적이거나, 필수적이거나, 또는 본질적인 특징들 또는 요소들로 해석되지 않아야 한다. 본 발명은 본 출원의 계속 중에 이루어지는 임의의 보정들 및 허여되는 청구항들의 모든 등가물들을 포함하는 첨부된 청구항들에 의해서만 정의된다.

Claims (10)

  1. 벡터(x)로부터 코드워드(C)를 인코딩하는 인코더를 동작시키기 위한 방법으로서,
    인코딩될 n개의 위치를 갖는 벡터(x)를 수신하는 단계;
    상기 벡터(x)의 n개의 위치 중 복수의 점유 위치의 추정 밀도를 결정하는 단계; 및
    코딩된 값을 생성하도록 상기 복수의 점유 위치의 추정 밀도에 따라 상기 복수의 점유 위치의 코딩과 상기 n개의 위치 중 복수의 비점유 위치의 코딩 사이에서 적응적으로 전환하는 단계
    를 포함하는 인코더 동작 방법.
  2. 제1항에 있어서,
    상기 추정 밀도를 결정하는 단계, 및 상기 추정 밀도에 기초하여 상기 복수의 점유 위치의 코딩과 상기 복수의 비점유 위치의 코딩 사이에서 적응적으로 전환하는 단계는, 상기 벡터(x)의 n개의 위치 중 복수의 위치에서 동적으로 수행되는, 인코더 동작 방법.
  3. 제1항에 있어서,
    상기 위치의 추정 밀도는 상기 복수의 점유 위치의 개수와 비교한 상기 복수의 비점유 위치의 개수에 의해 결정되고,
    상기 복수의 점유 위치의 코딩과 상기 복수의 비점유 위치의 코딩 사이에서 적응적으로 전환하는 단계는 또한,
    상기 벡터(x)의 n개의 위치 중 상기 복수의 비점유 위치의 개수가 문턱값보다 작은 경우, 상기 벡터(x)의 n개의 위치 중 상기 복수의 비점유 위치의 값들을 결정하고, 상기 복수의 비점유 위치의 값들로부터 코드워드(C)를 생성하는 단계; 및
    상기 벡터(x)의 n개의 위치 중 상기 복수의 비점유 위치의 개수가 상기 문턱값보다 작지 않은 경우, 상기 복수의 점유 위치의 값들을 결정하고 상기 복수의 점유 위치의 값들로부터 코드워드(C)를 생성하는 단계
    를 포함하는 인코더 동작 방법.
  4. 인코더로서,
    인코딩될 n개의 위치를 갖는 벡터(x)를 수신하는 것,
    상기 벡터(x)의 n개의 위치 중 복수의 점유 위치의 추정 밀도를 결정하는 것, 및
    코딩된 값을 생성하도록 상기 복수의 점유 위치의 추정 밀도에 따라 상기 복수의 점유 위치의 코딩과 상기 n개의 위치 중 복수의 비점유 위치의 코딩 사이에서 적응적으로 전환하는 것
    을 수행하도록 동작 가능한 조합 코딩 회로를 포함하는 인코더.
  5. 제4항에 있어서,
    상기 위치의 추정 밀도는 상기 복수의 점유 위치의 개수와 비교한 상기 복수의 비점유 위치의 개수에 의해 결정되고,
    상기 조합 코딩 회로에 의해 수행되는, 상기 복수의 점유 위치의 코딩과 상기 복수의 비점유 위치의 코딩 사이에서 적응적으로 전환하는 것은 또한,
    상기 복수의 비점유 위치의 개수가 문턱값보다 작은 경우 상기 복수의 비점유 위치를 코딩하는 것, 및
    상기 복수의 비점유 위치의 개수가 상기 문턱값보다 작지 않은 경우 상기 복수의 점유 위치를 코딩하는 것을 포함하는 인코더.
  6. 제4항에 있어서,
    상기 추정 밀도를 결정하는 것과, 상기 추정 밀도에 기초하여 상기 복수의 점유 위치의 코딩과 상기 복수의 비점유 위치의 코딩 사이에서 적응적으로 전환하는 것은, 상기 벡터(x)의 n개의 위치 중 복수의 위치에서 동적으로 수행되는 인코더.
  7. 코드워드(C)로부터 벡터(x)를 생성하는 디코더를 동작시키기 위한 방법으로서,
    펄스들의 시퀀스를 사용하여 코딩된 신호를 나타내는 코드워드(C)를 수신하는 단계;
    상기 코드워드 C에 기초하여 상기 벡터(x)의 n개의 위치 중 복수의 점유 위치의 추정 밀도를 결정하는 단계; 및
    디코딩된 값을 생성하도록 상기 복수의 점유 위치의 추정 밀도에 따라 상기 복수의 점유 위치의 디코딩과 상기 벡터 x의 복수의 비점유 위치의 디코딩 사이에서 적응적으로 전환하는 단계
    를 포함하는 디코더 동작 방법.
  8. 제7항에 있어서,
    상기 추정 밀도를 결정하는 단계 및 상기 추정 밀도에 기초하여 상기 복수의 점유 위치의 디코딩과 상기 복수의 비점유 위치의 디코딩 사이에서 적응적으로 전환하는 단계는, 상기 벡터(x)의 n개의 위치 중 복수의 위치에서 동적으로 수행되는 디코더 동작 방법.
  9. 제8항에 있어서,
    상기 위치의 추정 밀도는 상기 복수의 점유 위치의 개수와 비교한 상기 복수의 비점유 위치의 개수에 의해 결정되고,
    상기 복수의 점유 위치의 디코딩과 상기 복수의 비점유 위치의 디코딩 사이에서 적응적으로 전환하는 단계는 또한,
    상기 벡터(x)의 n개의 위치 중 상기 복수의 비점유 위치의 개수가 문턱값보다 작은 경우, 상기 벡터(x)의 n개의 위치 중 상기 복수의 비점유 위치를 디코딩하고, 상기 디코딩된 복수의 비점유 위치에 기초하여 상기 복수의 점유 위치를 디코딩하는 단계;
    상기 복수의 비점유 위치로부터 복수의 디코딩된 점유 위치 값을 생성하고, 상기 복수의 디코딩된 비점유 및 디코딩된 점유 위치 값들로부터 벡터(x)를 생성하는 단계; 및
    상기 벡터(x)의 n개의 위치 중 상기 복수의 비점유 위치의 개수가 상기 문턱값보다 작지 않은 경우, 상기 복수의 점유 위치를 디코딩하는 단계
    를 포함하는 디코더 동작 방법.
  10. 디코더로서,
    펄스들의 시퀀스를 사용하여 코딩된 신호를 나타내는 코드워드(C)를 수신하는 것, 및
    상기 코드워드 C에 기초하여 상기 벡터(x)의 n개의 위치 중 복수의 점유 위치의 추정 밀도를 결정하며,
    디코딩된 값을 생성하도록 상기 복수의 점유 위치의 추정 밀도에 따라 상기 복수의 점유 위치의 디코딩과 상기 벡터 x의 복수의 비점유 위치의 디코딩 사이에서 적응적으로 전환하는 것
    을 수행하도록 동작 가능한 조합 디코딩 회로를 포함하는 디코더.
KR1020107022865A 2008-03-13 2009-03-09 신호들의 저복잡도 조합 코딩을 위한 장치 및 방법 KR101233057B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/047,586 US7889103B2 (en) 2008-03-13 2008-03-13 Method and apparatus for low complexity combinatorial coding of signals
US12/047,586 2008-03-13
PCT/US2009/036479 WO2009114453A1 (en) 2008-03-13 2009-03-09 Apparatus and method for low complexity combinatorial coding of signals

Publications (2)

Publication Number Publication Date
KR20100135801A true KR20100135801A (ko) 2010-12-27
KR101233057B1 KR101233057B1 (ko) 2013-02-13

Family

ID=40811155

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107022865A KR101233057B1 (ko) 2008-03-13 2009-03-09 신호들의 저복잡도 조합 코딩을 위한 장치 및 방법

Country Status (9)

Country Link
US (1) US7889103B2 (ko)
EP (1) EP2277268A1 (ko)
KR (1) KR101233057B1 (ko)
CN (1) CN102037650B (ko)
BR (1) BRPI0909699B1 (ko)
MX (1) MX2010010044A (ko)
MY (1) MY151357A (ko)
RU (1) RU2471288C2 (ko)
WO (1) WO2009114453A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461106B2 (en) * 2006-09-12 2008-12-02 Motorola, Inc. Apparatus and method for low complexity combinatorial coding of signals
US8576096B2 (en) * 2007-10-11 2013-11-05 Motorola Mobility Llc Apparatus and method for low complexity combinatorial coding of signals
US8209190B2 (en) * 2007-10-25 2012-06-26 Motorola Mobility, Inc. Method and apparatus for generating an enhancement layer within an audio coding system
US20090234642A1 (en) * 2008-03-13 2009-09-17 Motorola, Inc. Method and Apparatus for Low Complexity Combinatorial Coding of Signals
US8639519B2 (en) 2008-04-09 2014-01-28 Motorola Mobility Llc Method and apparatus for selective signal coding based on core encoder performance
US8200496B2 (en) * 2008-12-29 2012-06-12 Motorola Mobility, Inc. Audio signal decoder and method for producing a scaled reconstructed audio signal
US8175888B2 (en) * 2008-12-29 2012-05-08 Motorola Mobility, Inc. Enhanced layered gain factor balancing within a multiple-channel audio coding system
US8219408B2 (en) * 2008-12-29 2012-07-10 Motorola Mobility, Inc. Audio signal decoder and method for producing a scaled reconstructed audio signal
US8140342B2 (en) * 2008-12-29 2012-03-20 Motorola Mobility, Inc. Selective scaling mask computation based on peak detection
WO2010091930A2 (en) * 2009-02-12 2010-08-19 Zoran (France) Frame buffer compression for video processing devices
US8849655B2 (en) 2009-10-30 2014-09-30 Panasonic Intellectual Property Corporation Of America Encoder, decoder and methods thereof
US8149144B2 (en) * 2009-12-31 2012-04-03 Motorola Mobility, Inc. Hybrid arithmetic-combinatorial encoder
US8428936B2 (en) * 2010-03-05 2013-04-23 Motorola Mobility Llc Decoder for audio signal including generic audio and speech frames
US8423355B2 (en) * 2010-03-05 2013-04-16 Motorola Mobility Llc Encoder for audio signal including generic audio and speech frames
US8751244B2 (en) * 2011-05-02 2014-06-10 Motorola Mobility Llc Apparatus and method for low complexity combinatorial coding and decoding of signals
US8731081B2 (en) 2011-12-07 2014-05-20 Motorola Mobility Llc Apparatus and method for combinatorial coding of signals
US9129600B2 (en) 2012-09-26 2015-09-08 Google Technology Holdings LLC Method and apparatus for encoding an audio signal
US9672838B2 (en) 2014-08-15 2017-06-06 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
US9336788B2 (en) 2014-08-15 2016-05-10 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
US9990931B2 (en) 2014-08-15 2018-06-05 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
US9620136B2 (en) 2014-08-15 2017-04-11 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties
JP6267250B2 (ja) * 2016-02-25 2018-01-24 株式会社Subaru 油圧回路の異常検知装置、及び、油圧回路の異常検知方法
US10395542B2 (en) * 2016-03-28 2019-08-27 Cisco Technology, Inc. Drone traffic engineering
US10366698B2 (en) * 2016-08-30 2019-07-30 Dts, Inc. Variable length coding of indices and bit scheduling in a pyramid vector quantizer
CN113642276B (zh) * 2021-08-18 2023-05-05 电子科技大学 一种基于数据预编码的sram架构

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8006165A (nl) * 1980-11-12 1982-06-01 Philips Nv Systeem voor het overdragen van digitale informatie, codeerinrichting voor toepassing in dat systeem, decodeerinrichting voor toepassing in dat systeem en registratiedrager voor toepassing in dat systeem.
US4560977A (en) * 1982-06-11 1985-12-24 Mitsubishi Denki Kabushiki Kaisha Vector quantizer
US4670851A (en) * 1984-01-09 1987-06-02 Mitsubishi Denki Kabushiki Kaisha Vector quantizer
US4727354A (en) * 1987-01-07 1988-02-23 Unisys Corporation System for selecting best fit vector code in vector quantization encoding
JP2527351B2 (ja) * 1987-02-25 1996-08-21 富士写真フイルム株式会社 画像デ―タの圧縮方法
US5067152A (en) * 1989-01-30 1991-11-19 Information Technologies Research, Inc. Method and apparatus for vector quantization
DE68922610T2 (de) * 1989-09-25 1996-02-22 Rai Radiotelevisione Italiana Umfassendes System zur Codierung und Übertragung von Videosignalen mit Bewegungsvektoren.
US5754976A (en) * 1990-02-23 1998-05-19 Universite De Sherbrooke Algebraic codebook with signal-selected pulse amplitude/position combinations for fast coding of speech
CN1062963C (zh) 1990-04-12 2001-03-07 多尔拜实验特许公司 用于产生高质量声音信号的解码器和编码器
IT1281001B1 (it) 1995-10-27 1998-02-11 Cselt Centro Studi Lab Telecom Procedimento e apparecchiatura per codificare, manipolare e decodificare segnali audio.
JP3063668B2 (ja) * 1997-04-04 2000-07-12 日本電気株式会社 音声符号化装置及び復号装置
EP0932141B1 (en) 1998-01-22 2005-08-24 Deutsche Telekom AG Method for signal controlled switching between different audio coding schemes
US6904174B1 (en) * 1998-12-11 2005-06-07 Intel Corporation Simplified predictive video encoder
KR100354531B1 (ko) * 1998-05-06 2005-12-21 삼성전자 주식회사 실시간 복호화를 위한 무손실 부호화 및 복호화 시스템
KR100409167B1 (ko) * 1998-09-11 2003-12-12 모토로라 인코포레이티드 정보 신호를 부호화하는 방법 및 장치
US6236960B1 (en) 1999-08-06 2001-05-22 Motorola, Inc. Factorial packing method and apparatus for information coding
US6504877B1 (en) * 1999-12-14 2003-01-07 Agere Systems Inc. Successively refinable Trellis-Based Scalar Vector quantizers
US6445313B2 (en) * 2000-02-07 2002-09-03 Lg Electronics Inc. Data modulating/demodulating method and apparatus for optical recording medium
JP4149637B2 (ja) 2000-05-25 2008-09-10 株式会社東芝 半導体装置
US6304196B1 (en) * 2000-10-19 2001-10-16 Integrated Device Technology, Inc. Disparity and transition density control system and method
AUPR105000A0 (en) 2000-10-27 2000-11-23 Canon Kabushiki Kaisha Method for generating and detecting marks
US7068946B2 (en) 2001-01-23 2006-06-27 At&T Corp. Modulation scheme for tedons
JP3404024B2 (ja) 2001-02-27 2003-05-06 三菱電機株式会社 音声符号化方法および音声符号化装置
US6658383B2 (en) 2001-06-26 2003-12-02 Microsoft Corporation Method for coding speech and music signals
US20030108108A1 (en) * 2001-11-15 2003-06-12 Takashi Katayama Decoder, decoding method, and program distribution medium therefor
US6662154B2 (en) 2001-12-12 2003-12-09 Motorola, Inc. Method and system for information signal coding using combinatorial and huffman codes
AU2003213149A1 (en) 2002-02-21 2003-09-09 The Regents Of The University Of California Scalable compression of audio and other signals
WO2003077235A1 (en) 2002-03-12 2003-09-18 Nokia Corporation Efficient improvements in scalable audio coding
JP3881943B2 (ja) 2002-09-06 2007-02-14 松下電器産業株式会社 音響符号化装置及び音響符号化方法
WO2004082288A1 (en) 2003-03-11 2004-09-23 Nokia Corporation Switching between coding schemes
EP1619664B1 (en) 2003-04-30 2012-01-25 Panasonic Corporation Speech coding apparatus, speech decoding apparatus and methods thereof
JP2005005844A (ja) * 2003-06-10 2005-01-06 Hitachi Ltd 計算装置及び符号化処理プログラム
JP4123109B2 (ja) * 2003-08-29 2008-07-23 日本ビクター株式会社 変調装置及び変調方法並びに復調装置及び復調方法
WO2005043766A1 (en) * 2003-11-04 2005-05-12 Sunsail Development Avv Method and system for loss-less data compression
SE527670C2 (sv) 2003-12-19 2006-05-09 Ericsson Telefon Ab L M Naturtrogenhetsoptimerad kodning med variabel ramlängd
US7161507B2 (en) * 2004-08-20 2007-01-09 1St Works Corporation Fast, practically optimal entropy coding
US7945447B2 (en) 2004-12-27 2011-05-17 Panasonic Corporation Sound coding device and sound coding method
JP5171256B2 (ja) 2005-08-31 2013-03-27 パナソニック株式会社 ステレオ符号化装置、ステレオ復号装置、及びステレオ符号化方法
DE602006015097D1 (de) 2005-11-30 2010-08-05 Panasonic Corp Skalierbare codierungsvorrichtung und skalierbares codierungsverfahren
US7230550B1 (en) 2006-05-16 2007-06-12 Motorola, Inc. Low-complexity bit-robust method and system for combining codewords to form a single codeword
US7414549B1 (en) * 2006-08-04 2008-08-19 The Texas A&M University System Wyner-Ziv coding based on TCQ and LDPC codes
US7461106B2 (en) 2006-09-12 2008-12-02 Motorola, Inc. Apparatus and method for low complexity combinatorial coding of signals
US8576096B2 (en) 2007-10-11 2013-11-05 Motorola Mobility Llc Apparatus and method for low complexity combinatorial coding of signals
US8209190B2 (en) 2007-10-25 2012-06-26 Motorola Mobility, Inc. Method and apparatus for generating an enhancement layer within an audio coding system
US20090234642A1 (en) 2008-03-13 2009-09-17 Motorola, Inc. Method and Apparatus for Low Complexity Combinatorial Coding of Signals
US8639519B2 (en) 2008-04-09 2014-01-28 Motorola Mobility Llc Method and apparatus for selective signal coding based on core encoder performance
US8175888B2 (en) 2008-12-29 2012-05-08 Motorola Mobility, Inc. Enhanced layered gain factor balancing within a multiple-channel audio coding system
US8219408B2 (en) 2008-12-29 2012-07-10 Motorola Mobility, Inc. Audio signal decoder and method for producing a scaled reconstructed audio signal
US8200496B2 (en) 2008-12-29 2012-06-12 Motorola Mobility, Inc. Audio signal decoder and method for producing a scaled reconstructed audio signal
US8140342B2 (en) 2008-12-29 2012-03-20 Motorola Mobility, Inc. Selective scaling mask computation based on peak detection

Also Published As

Publication number Publication date
MX2010010044A (es) 2011-03-28
EP2277268A1 (en) 2011-01-26
MY151357A (en) 2014-05-15
RU2010141852A (ru) 2012-04-20
RU2471288C2 (ru) 2012-12-27
WO2009114453A1 (en) 2009-09-17
BRPI0909699B1 (pt) 2019-10-08
BRPI0909699A2 (pt) 2017-10-31
KR101233057B1 (ko) 2013-02-13
BRPI0909699A8 (pt) 2018-01-02
CN102037650B (zh) 2014-02-19
US20090231169A1 (en) 2009-09-17
US7889103B2 (en) 2011-02-15
CN102037650A (zh) 2011-04-27

Similar Documents

Publication Publication Date Title
KR101233057B1 (ko) 신호들의 저복잡도 조합 코딩을 위한 장치 및 방법
JP5013627B2 (ja) 信号の低複雑度組み合わせコーディングのための装置および方法
KR101067212B1 (ko) 신호의 저 복잡도 조합 코딩 장치 및 방법
US20090234642A1 (en) Method and Apparatus for Low Complexity Combinatorial Coding of Signals
KR101353170B1 (ko) 완전히 활용되지 않는 코드 공간을 압축하는데 산술 스테이지를 이용하는 인코더 및 디코더
US7808406B2 (en) Method and apparatus for realizing arithmetic coding/decoding
KR20100083126A (ko) 디지털 컨텐츠의 인코딩 및/또는 디코딩
CN101430881A (zh) 一种编码、解码、编解码方法、编解码系统以及相关装置
KR20170118236A (ko) 오디오/비디오 샘플 벡터의 피라미드 벡터 양자화 인덱싱 및 디인덱싱을 위한 방법 및 장치
CN101420231A (zh) 编码方法和装置、以及程序
WO2011082047A2 (en) Hybrid arithmetic-combinatorial encoder
Mittal et al. Coding pulse sequences using a combination of factorial pulse coding and arithmetic coding
CN110771045A (zh) 编码装置、解码装置、编码方法、解码方法、以及程序
EP2705517B1 (en) Methods for combinatorial coding and decoding of speech/audio/image/video signals and corresponding electronic encoder/decoder
JP2006080927A (ja) 符号化方法、符号化装置、復号化方法及び復号化装置

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160122

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170126

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180126

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190124

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 8