KR20130023373A - 펄스 인코딩 및 디코딩 방법 및 펄스 코덱 - Google Patents

펄스 인코딩 및 디코딩 방법 및 펄스 코덱 Download PDF

Info

Publication number
KR20130023373A
KR20130023373A KR1020137002001A KR20137002001A KR20130023373A KR 20130023373 A KR20130023373 A KR 20130023373A KR 1020137002001 A KR1020137002001 A KR 1020137002001A KR 20137002001 A KR20137002001 A KR 20137002001A KR 20130023373 A KR20130023373 A KR 20130023373A
Authority
KR
South Korea
Prior art keywords
index
track
pulses
pulse
positions
Prior art date
Application number
KR1020137002001A
Other languages
English (en)
Other versions
KR101384574B1 (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 KR20130023373A publication Critical patent/KR20130023373A/ko
Application granted granted Critical
Publication of KR101384574B1 publication Critical patent/KR101384574B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • G10L19/107Sparse pulse excitation, e.g. by using algebraic codebook
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/002Dynamic bit allocation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

펄스 인코딩 및 디코딩 방법 및 펄스 코덱에서, 2 이상의 트랙이 공동으로 인코딩되며, 이에 따라 싱글 트랙 인코딩의 상황에서의 자유 코드북 공간이 조인트 인코딩 동안 조합되어 코드 비트를 절감할 수 있게 된다. 또한, 각각의 트랙 상에 있으면서 인코딩되어야 하는 펄스를 위치에 따라 조합하여, 펄스를 가지는 위치의 수, 트랙 상에 펄스를 가지는 위치의 분포, 및 펄스를 가지는 각각의 트랙 상의 펄스의 수를 개별적으로 인코딩하므로, 동일한 위치의 복수의 펄스에 대해 개별적인 인코딩을 하지 않으며, 이에 의해 코드 비트를 더 효율적으로 사용할 수 있다.

Description

펄스 인코딩 및 디코딩 방법 및 펄스 코덱{PULSE ENCODING AND DECODING METHOD AND PULSE CODEC}
본 출원은 2010년 6월 24일에 중국특허청에 출원되고 발명의 명칭이 "PULSE ENCODING AND DECODING METHOD AND PULSE CODEC"인 중국특허출원 No.201010213451.5에 대한 우선권을 주장하는 바이며, 상기 문헌의 내용은 본 명세서에 원용되어 포함된다.
본 발명은 펄스 인코딩 및 디코딩 방법 및 펄스 코덱에 관한 것이다.
벡터 인코딩 기술에서는, 적응 필터링 후의 잔여의 신호에 대해 양자화 인코딩을 수행하기 위해 대수 코드북을 종종 사용한다. 트랙 상의 최적의 대수 코드북 펄스의 위치 및 심벌 정보를 획득한 후, 인코딩 계산을 통해 대응하는 인덱스 값을 획득함으로써, 디코딩 단(decoding end)은 이 인덱스 값에 따라 펄스 시퀀스를 재구성할 수 있다. 무손실 재구성을 이루기 위한 전제 조건은, 코드 인덱스 값이 필요로 하는 비트를 가능한 많이 감소시키는 것인데, 이는 대수 코드북 펄스 인코딩 방법의 검색 및 개발의 주요 목적 중 하나이다.
음성 인코딩에서의 양호한 인코딩 방법, 즉 적응 멀티-레이트 광대역(Adaptive Multi-Rate Wideband: AMR_WB+) 인코딩 방법을 예로 들어, 기존의 대수 코드북 펄스에 의해 적응된 특정한 인코딩 방법을 이하에 설명한다. 상이한 코드 비트 레이트에 따라, 1 내지 N개의 펄스가 각각의 트랙 상에서 인코딩될 수 있다. 각각의 트랙에 M = 2m개의 위치가 있는 것으로 가정하면, 각각의 트랙 상에서 1 내지 6개의 펄스를 인코딩하는 프로세스는 다음과 같이 각각 설명된다:
① 각각의 트랙 상에서 하나의 펄스를 인코딩하는 경우
각각의 트랙에는 2m개의 위치가 있으므로, 각각의 트랙 상에서, 펄스의 위치 인덱스는 인코딩하는 데 m 비트가 필요하고, 펄스의 심벌 인덱스는 인코딩하는 데 1 비트가 필요하다. 심벌을 가지는 하나의 펄스의 인덱스 값은 다음과 같이 인코딩된다:
I1P(m) = p + s × 2m
여기서, p∈[0,2m-1]은 펄스의 위치 인덱스이고, s는 펄스의 심벌 인덱스이며, 펄스 심벌이 포지티브일 때, s는 0으로 설정되며, 펄스 심벌이 네거티브일 때, s는 1로 설정되며, I1P∈[0,2m+1-1]이다.
각각의 트랙 상에서 1 펄스를 인코딩하는 데 필요한 비트의 수는 m+1이다.
② 각각의 트랙 상에서 2개의 펄스를 인코딩하는 경우
①의 결과에 따라, 각각의 트랙 상에서 1 펄스를 인코딩하는 데 m+1 비트가 필요하고, 다른 펄스의 위치 인덱스를 인코딩하는 데는 m 비트가 필요하다. 펄스의 순서에 대해서는 특정한 순서가 정해져 있지 않으므로, 펄스의 위치 인덱스를 배치함으로써 얻어지는 값 관계를 사용하여 다른 펄스의 심벌을 나타낼 수 있다. 2개의 펄스의 인덱스 값은 다음과 같이 인코딩된다:
I2P(m) = p1 + I1P0 × 2m = p1 + p0 × 2m + s × 22m,
단, p0, p1∈[0,2m-1]은 각각, 2개의 펄스의 위치 인덱스이고, s는 펄스 p0의 심벌 인덱스이며, 펄스 p1의 특정한 심벌 표시 규칙에서, p0 < p1은 2개의 펄스 심벌가 동일하다는 의미이고, p0 > p1은 2개의 펄스 심벌이 반대이다는 의미이며, I2P∈[0,22m+1-1]이다.
각각의 트랙 상에서 2개의 펄스를 인코딩하는 데 필요한 비트의 수는 2m+1이다.
③ 각각의 트랙 상에서 3개의 펄스를 인코딩하는 경우
각각의 트랙은 2개의 섹션: 섹션 A 및 섹션 B로 분할된다. 각각의 섹션은 2m-1개의 위치를 개별적으로 가진다. 특정한 섹션은 적어도 2개의 펄스를 포함한다. ②의 결과에 따라, 섹션을 인코딩하는 데는 2 × (m-1) + 1 = 2m - 1 비트가 필요하다. 다른 펄스는 전체 트랙 상에서 검색되고, ①의 결과에 따라, m+1 비트가 필요하다. 또한, 2개의 펄스를 포함하는 섹션을 나타내는 데는 1 비트가 더 필요하다. 3개의 펄스의 인덱스 값은 다음과 같이 인코딩된다:
I3P(m) = I2P(m-1) + k × 22m-1 + I1P(m) × 22m,
단, k는 섹션의 인덱스이며, I3P∈[0,23m+1-1]이다.
각각의 트랙 상에서 3개의 펄스를 인코딩하는 데 필요한 비트의 수는 3m+1이다.
④ 각각의 트랙 상에서 4개의 펄스를 인코딩하는 경우
각각의 트랙은 2개의 섹션: 섹션 A 및 섹션 B로 분할된다. 각각의 섹션은 2m-1개의 위치를 개별적으로 가진다. 각각의 섹션에 포함된 펄스의 수의 조합은 다음의 표에 나타난 바와 같다.
Figure pct00001
위의 표에서, 각각의 타입에 대응하는 그 필요한 비트의 기본은, 타입 0 및 타입 4에 있어서는, 4 펄스를 가지는 섹션에서, ③의 방법과 유사한 방법을 채택하지만, 전체 검색을 위한 펄스의 수는 2이며, 이는 I2P(m-2) + k × 22m-3 + I2P(m-1) × 22m-2와 같고; 타입 1에 있어서는, I1P(m-1) + I3P(m-1) × 22m와 같으며; 타입 2에 있어서는, I2P(m-1) + I2P(m-1) × 22m- 1와 같으며; 타입 3에 있어서는, I3P(m-1) + I1P(m-1) × 23m-2와 같다.
타입 0 및 타입 4는 가능한 상황으로 간주되고, 타입 1 내지 타입 3 각각은 하나의 상황으로 간주되며, 이에 따라 4가지 상황이 있고, 그러므로 대응하는 상황을 나타내는 데 2 비트가 필요하며, 타입 1 내지 타입 3 각각은 4m - 2 + 2 = 4m이 필요하다. 또한, 타입 0 및 타입 4를 포함하는 상황에 있어서, 구별을 위해 1 비트가 더 필요하며, 이에 따라 타입 0 및 타입 4는 4m - 3 + 2 + 1 = 4m이 필요하다.
각각의 트랙 상에서 4개의 펄스를 인코딩하는 데 필요한 비트의 수는 4m이다.
⑤ 각각의 트랙 상에서 5개의 펄스를 인코딩하는 경우
각각의 트랙은 2개의 섹션: 섹션 A 및 섹션 B로 분할된다. 각각의 섹션은 2m-1개의 위치를 개별적으로 가진다. 특정한 섹션은 적어도 3개의 펄스를 포함한다. ③의 결과에 따라, 섹션을 인코딩하는 데는 3 × (m-1) + 1 = 3m - 2 비트가 필요하다. 다른 2개의 펄스는 전체 트랙 상에서 검색되고, ②의 결과에 따라, 2m+1 비트가 필요하다. 또한, 3개의 펄스를 포함하는 섹션을 나타내는 데는 1 비트가 더 필요하다. 5개의 펄스의 인덱스 값은 다음과 같이 인코딩된다:
I5P(m) = I3P(m-1) + k × 23m-2 + I1P(m) × 23m-1
각각의 트랙 상에서 5개의 펄스를 인코딩하는 데 필요한 비트의 수는 5m이다.
⑥ 각각의 트랙 상에서 6개의 펄스를 인코딩하는 경우
각각의 트랙은 2개의 섹션: 섹션 A 및 섹션 B로 분할된다. 각각의 섹션은 2m-1개의 위치를 개별적으로 가진다. 각각의 섹션에 포함된 펄스의 수의 조합은 다음의 표에 나타난 바와 같다.
Figure pct00002
위의 표에서, 각각의 타입에 대응하는 그 필요한 비트의 기본은 ④에 따라 유추될 수 있으며, 이에 대해서는 반복 설명하지 않는다.
타입 0 및 타입 6, 타입 1 및 타입 5, 타입 2 및 타입 4는 각각 가능한 상황으로 간주되고, 타입 3은 개별적으로 하나의 상황으로 간주되며, 이에 따라 총 4가지 상황이 있으며, 그러므로 대응하는 상황들을 나타내는 데 2 비트가 필요하며, 타입 3은 6m - 4 + 2 = 6m - 2 비트가 필요하다. 조합된 타입을 포함하는 이러한 상황들에 있어서는, 구별을 위해 1 비트가 더 필요하며, 이에 따라 타입 3을 제외한 다른 타입들은 6m - 5 + 2 + 1 = 6m - 2 비트가 필요하다.
각각의 트랙 상에서 6개의 펄스를 인코딩하는 데 필요한 비트의 수는 6m-2이다.
본 발명을 제안하는 과정 중에, 발명자는 다음과 같은 사실을 알게 되었다: AMR_WB+에 의해 제공되는 대수 펄스 인코딩 방법에서는, 회귀와 유사한 인코딩 로직을 채택하는데, 인코딩된 펄스의 수가 상대적으로 많은 상황을 인코딩된 펄스의 수가 상대적으로 적은 상황으로 분할하여 처리하며, 그러므로 계산이 복잡해지고, 한편, 트랙 상에서 인코딩된 펄스의 수가 증가함에 따라, 코드 인덱스의 과잉이 점차 누적되며, 이로 인해 코드 비트를 낭비하게 된다.
본 발명의 실시예는 코드 비트를 효과적으로 사용할 수 있는 펄스 인코딩 방법을 제공한다.
펄스 인코딩 방법은, T 트랙 상에 있으면서 인코딩되어야 하는 펄스를 획득하는 단계; 각각의 트랙 상에 펄스를 가지는 위치의 수 Nt, 트랙 상에 펄스를 가지는 위치의 분포, 및 펄스를 가지는 각각의 위치 상의 펄스의 수를 획득하기 위해, 위치에 따라, 각각의 트랙 상에 있으면서 인코딩되어야 하는 펄스에 관한 통계를 별도로 수집하는 단계; 상기 펄스를 가지면서 각각의 트랙 상에 있는 위치의 수 {N0, N1, ..., NT -1}에 따라, 제1 인덱스 I1을 결정하는 단계; 상기 펄스를 가지면서 각각의 트랙 상에 있는 위치의 분포에 따라 각각의 트랙의 제2 인덱스 I2t를 별도로 결정하는 단계; 상기 펄스를 가지면서 각각의 트랙 상에 있는 각각의 위치 상의 펄스의 수에 따라 각각의 트랙의 제3 인덱스 I3t를 별도로 결정하는 단계; 및 상기 제1 인덱스와 각각의 트랙의 제2 및 제3 인덱스의 정보를 포함하는 코드 인덱스 Ind를 생성하는 단계를 포함하며, 상기 T는 2보다 크거나 같은 정수이고, 상기 첨자 t는 t번째 트랙을 나타내며, t∈[0,T-1]이며, 상기 제1 인덱스 I1은 펄스를 가지는 위치의 수 하에서, 상기 펄스를 가지면서 각각의 트랙 상에 있는 위치의 모든 가능한 분포 상황에 대응하며, 상기 펄스를 가지는 위치의 수는 상기 제1 인덱스 I1에 의해 나타내어지며, 상기 제2 인덱스는 상기 제1 인덱스 I1에 대응하는 모든 가능한 분포 상황 중, 대응하는 트랙 상에 펄스를 가지는 현재 위치의 분포에 대응하는 분포 상황을 나타낸다.
다른 펄스 인코딩 방법은, T 트랙 상에 있으면서 인코딩되어야 하는 펄스를 획득하는 단계; 각각의 트랙 상에 펄스를 가지는 위치의 수 Nt, 트랙 상에 펄스를 가지는 위치의 분포, 및 펄스를 가지는 각각의 위치 상의 펄스의 수를 획득하기 위해, 위치에 따라, 각각의 트랙 상에 있으면서 인코딩되어야 하는 펄스에 관한 통계를 별도로 수집하는 단계; 상기 펄스를 가지면서 각각의 트랙 상에 있는 위치의 수에 따라, 각각의 트랙의 제1 인덱스 I1t를 결정하는 단계; 상기 펄스를 가지면서 각각의 트랙 상에 있는 위치의 분포에 따라 각각의 트랙의 제2 인덱스 I2t를 별도로 결정하는 단계; 상기 펄스를 가지면서 각각의 트랙 상에 있는 각각의 위치 상의 펄스의 수에 따라 각각의 트랙의 제3 인덱스 I3t를 별도로 결정하는 단계; 및 상기 각각의 트랙의 제1, 제2, 및 제3 인덱스의 정보를 포함하는 코드 인덱스 Ind를 생성하는 단계를 포함하며, 상기 T는 2보다 크거나 같은 정수이고, 상기 첨자 t는 t번째 트랙을 나타내며, t∈[0,T-1]이며, 상기 제1 인덱스 I1t는 펄스를 가지는 위치의 수 하에서, 상기 펄스를 가지면서 각각의 트랙 상에 있는 위치의 모든 가능한 분포 상황에 대응하며, 상기 펄스를 가지는 위치의 수는 상기 제1 인덱스 I1t에 의해 나타내어지며, 상기 제2 인덱스는 상기 제1 인덱스에 대응하는 모든 가능한 분포 상황 중, 펄스를 가지는 현재 위치의 분포에 대응하면서 트랙 상에 있는 분포 위치를 나타낸다.
본 발명의 실시예는 대응하는 펄스 디코딩 방법 및 대응하는 펄스 인코더 및 디코더를 추가로 제공한다.
본 발명의 실시예에서는, 두 트랙 이상을 공동으로 인코딩하고, 이에 따라 단일 트랙 인코딩의 상황에서 공동 인코딩 동안 자유 코드북 공간을 조합하여, 코드 비트를 효율적으로 사용할 수 있다. 또한, 각각의 트랙 상에 있으면서 인코딩되어야 하는 펄스를 위치에 따라 조합하여, 펄스를 가지는 위치의 수, 트랙 상에 펄스를 가지는 위치의 분포, 및 펄스를 가지는 각각의 트랙 상의 펄스의 수를 개별적으로 인코딩하므로, 동일한 위치의 복수의 펄스에 대해 개별적인 인코딩을 하지 않으며, 이에 의해 코드 비트를 더 효율적으로 사용할 수 있다.
도 1은 본 발명의 실시예 1에 따른 인코딩 방법에 대한 개략적인 흐름도이다.
도 2는 본 발명의 실시예 1에 따른 펄스 위치 매핑에 대한 개략적인 도해를 나타내는 도면이다.
도 3은 본 발명의 실시예 2에 따른 인코딩 방법에 대한 개략적인 흐름도이다.
도 4는 본 발명의 실시예 3에 따른 인코딩 방법에 대한 개략적인 흐름도이다.
도 5는 본 발명의 실시예 4에 따른 트랙 펄스 중첩에 대한 개략적인 도해를 나타내는 도면이다.
도 6은 본 발명의 실시예 4에 따른 펄스 분포의 인덱스에 대한 개략적인 도해를 나타내는 도면이다.
도 7은 본 발명의 실시예 5에 따른 디코딩 방법에 대한 개략적인 흐름도이다.
도 8은 본 발명의 실시예 6에 따른 디코딩 방법에 대한 개략적인 흐름도이다.
도 9는 본 발명의 실시예 7에 따른 디코딩 방법에 대한 개략적인 흐름도이다.
도 10은 본 발명의 실시예 8에 따른 인코더의 논리적 구조에 대한 개략적인 구조도이다.
도 11은 본 발명의 실시예 9에 따른 디코더의 논리적 구조에 대한 개략적인 구조도이다.
본 발명의 실시예는 두 개 이상의 트랙을 공동으로 인코딩하여 코드 비트를 효율적으로 사용하는 펄스 인코딩 방법을 제공한다. 본 발명의 실시예는 대응하는 펄스 디코딩 방법 및 펄스 코덱을 추가로 제공한다. 이에 대해 이하에 상세히 각각 설명한다.
음성 인코더에서는, 각각의 트랙 상에서 모든 펄스의 위치 및 심벌(관련된 경우에 해당)에 대한 정보를 코드북 검색을 통해 획득한다. 이러한 정보는 디코딩 단에 완전하게 전달되어야 하고, 이에 따라 디코딩 단은 모든 펄스의 위치 및 심벌(관련된 경우에 해당)에 대한 정보를 고유하게 복구할 수 있다. 한편, 비트 레이트를 될 수 있는 한 많이 감소시키기 위해, 정보를 전달하는 데 될 수 있는 한 적은 비트를 사용할 것이다.
동일한 트랙 상에서 모든 펄스의 위치 및 심벌(관련된 경우에 해당)의 순열과 조합의 수는 코드북 공간의 최솟값이며, 대응하는 코드 비트의 수는 이론적 하한값이다는 것이 이론적 분석으로 알려져 있다. 트랙 상의 위치의 총수 및 트랙 상의 펄스의 총수는 구체적이다. 트랙 상의 위치의 총수 및 트랙 상의 펄스의 총수가 서로 다른 값인 경우에, 모든 펄스의 위치 및 심벌의 순열 및 조합의 수가 항상 2의 정수 거듭제곱이 아니므로, 코드 비트의 수의 이론적 하한값은 항상 정수가 아니며, 이 경우, 싱글-트랙 인코딩의 코드 비트의 실제 수는 적어도 이론적 하한값의 정수부 +1이고, 이것은 필연적으로 코드북 공간의 일부를 유리시킨다. 예를 들어, 표 1은 위치의 총수가 16인 트랙 상에서 인코딩되어야 하는 펄스의 총수 N 이 1 내지 6일 때, 코드 비트와 자유공간의 상황의 수의 이론적 하한값 및 실제 하한값을 나타낸다.

N

순열 및 조합의 총수
필요한 비트의 수(bit)
자유 조합의 수

자유의 비율

이론적 하한값
싱글-트랙 인코딩의 실제 하한값
1 32 5 5 0 0
2 512 9 9 0 0
3 5472 12.4179 13 2720 33.2%
4 44032 15.4263 16 21504 32.8%
5 285088 18.1210 19 239200 45.6%
6 1549824 20.5637 21 547328 26.1%
표 1로부터 알 수 있는 바와 같이, 대부분의 상황에서, 실제의 하한값은 코드북 공간의 많은 낭비를 초래하므로, 본 발명은 2 이상의 트랙 상에서 조인트 인코딩(joint encoding)을 수행하고, 이 방법에서는, 싱글-트랙 인코딩에서의 자유 코드북 공간이 조합될 수 있는데, 자유공간은 한 번의 조합으로 충분하고, 실제의 1 코드 비트가 감소될 수 있다. 분명하게, 동일한 타입의 트랙(트랙 상의 위치의 총수 및 트랙 상의 펄스의 총수가 모두 동일)에 있어서, k개의 트랙 상에서 조인트 인코딩만이 수행되면, 1 코드 비트가 절감될 수 있으며, K≥1(1-kk)이며, 여기서 kk는 싱글-트랙 인코딩의 이론적 하한값의 소수부이다. 예를 들어, 표 1에 있는 트랙과 같이 kk가 0.5보다 작고 펄스의 총수가 3,4,5인 트랙에 있어서, 두 번의 조인트 인코딩은 1 코드 비트를 절감할 수 있다. 표 1에서 펄스의 총수가 6인 트랙에 있어서, 세 번의 조인트 인코딩은 1 코드 비트를 절감할 수 있다. 명확하게, 서로 다른 타입의 트랙의 조인트 인코딩도 동일한 효과를 낼 수 있으며, 2 트랙의 kk의 합만이 1보다 작거나, 3 트랙의 kk의 합이 2보다 작으면, 1 비트가 절감될 수 있으며, 분명하게, 3 트랙의 kk의 합이 1보다 작으면, 1 비트가 절감될 수 있으며, 나머지는 유사하게 추정할 수 있다. 표 2는 동일한 타입의 2 트랙의 조인트 인코딩과 싱글-트랙 인코딩 간의 비교를 나타내며(펄스가 심벌을 가지는 것으로 상정), 여기서, 트랙 상의 위치의 총수는 16이고, 인코딩되어야 하는 펄스의 총수 N은 3 내지 5이다.
N 2 트랙을 조인트한 수열과 조합의 수 2 싱글 트랙의 인코딩의 실제의 하한값 2 트랙의 조인트 인코딩의 실제의 하한값
3 5472×5472 26 25
4 44032×44032 32 31
5 285088×285088 38 37
표 3은 상이한 타입의 2 내지 3 트랙의 조인트 인코딩과 싱글-트랙 인코딩 간의 비교를 나타내며(펄스가 심벌을 가지는 것으로 상정), 여기서, 트랙 상의 위치의 총수는 16이고, 인코딩되어야 하는 펄스의 총수 N은 3 내지 5이다.
조인트 모드 N 싱글 트랙의 순열 및 조합의 수 싱글-트랙 인코딩의 실제의 하한값 트랙의 조인트 인코딩의 실제의 하한값
2 트랙의 조합
3 5472 13 28
4 44032 16
2 트랙의 조합
4 44032 16 34
5 285088 19
3 트랙의 조합
3 5472 13
47
4 44032 16
5 285088 19
전술한 바는 복수 트랙의 조인트 인코딩 시에 비트 수를 절감하는 이론적 분석이다. 이론적 효과를 달성하기 위해, 코드북 공간을 가능한 효과적으로 사용하기 위해서는 코드 인덱스가 필요하다. 복수 트랙의 조인트 인코딩의 실제의 비트 하한값을 달성하기 위한 인코딩 방법에 대해서는 특정한 실시예를 통해 이하에 별도로 설명한다.
실시예 1: 펄스 인코딩 방법은 도 1에 도시된 바와 같이 이하의 단계를 포함한다:
A1: T 트랙 상에 있으면서 인코딩되어야 하는 펄스를 획득하며, 여기서 T는 2보다 크거나 같은 정수이다.
T 트랙에서, 각각의 트랙 상의 인코딩되어야 하는 펄스의 총수는 통상적으로 비트 레이트에 따라 결정된다. 인코딩되어야 하는 펄스의 수가 많을수록, 당연히 코드 인덱스가 필요로 하는 비트의 수도 많아지며, 비트 레이트도 높아진다. 사양에서, pulse_numt는 t번째 트랙 상에 있으면서 인코딩되어야 하는 펄스의 총수를 나타낸다. pulse_numt = Nt,t∈[0,T-1]인 것으로 가정한다. 조인트 인코딩의 트랙 상의 펄스의 총수는 동일할 수도 있고 다를 수도 있다.
A2: 위치에 따라, 각각의 트랙 상에 있으면서 인코딩되어야 하는 펄스에 관한 통계를 별도로 수집하여, 각각의 트랙 상에 펄스를 가지는 위치의 수 Nt, 트랙 상에 펄스를 가지는 위치의 분포, 및 펄스를 가지는 각각의 위치 상의 펄스의 수를 획득한다.
사양에서, pos_numt는 펄스를 가지면서 t번째 트랙 상에 있는 위치의 수를 나타낸다. 트랙 상의 Nt 펄스의 분포는 위치와 관련해서 중첩될 수 있고, pos_numt=Nt인 것으로 가정하면, 당연히 Nt∈[1,N t]이다.
펄스 위치 벡터 Pt(Nt) = {Pt(0), Pt(1), ...Pt(Nt-1)}은 펄스를 가지면서 i번째 트랙 상에 있는 위치의 분포를 나타내며, 여기서 pt(n)은 i번째 트랙 상에 펄스를 가지는 위치의 위치 일련 번호(position serial number)를 나타내고, n∈[0,Nt-1]이고, pt(n)∈[0,Mt-1]이며, 사양 내의 Mt는 i번째 트랙 상의 위치의 총수를 나타내며, 일반적으로 Mt는 8, 16 등이고, 조인트 인코딩의 트랙 상의 위치의 총수는 동일할 수도 있고 다를 수도 있다.
펄스 수 벡터 SUt(Nt) = {SUt(0), SUt(1), ...SUt(Nt-1)}은 펄스를 가지면서 i번째 트랙 상에 있는 각각의 위치의 펄스의 수를 나타내며, 여기서 SUt(n)은 pt(n) 위치의 펄스의 수를 나타내며, 당연히 SUt(0)+SUt(1)+...+SUt(Nt-1) = Nt이다.
또한, 인코딩되어야 하는 펄스는 심벌을 가질 수 있는데, 즉 포지티브 또는 네거티브인 특징부(feature)를 가진다. 이 경우, 위치에 따라, 트랙 상에 있으면서 인코딩되어야 하는 펄스에 관한 통계를 수집할 때는, 펄스를 가지는 각각의 위치의 펄스 심벌 정보를 획득하여야 하는 것이 추가로 요구되며, 사양에서는 다음과 같다:
펄스 심벌 벡터 St(Nt) = {St(0), St(1), ...St(Nt-1)}은 펄스를 가지면서 i번째 트랙 상에 있는 각각의 위치의 펄스 심벌 정보를 나타내며, 여기서 St(n)은 pt(n) 위치의 펄스 심벌을 나타내며, pt(n) 위치의 심벌 인덱스라 칭한다. St(N)으로 나타내어지는 펄스 심벌이 포지티브 또는 네거티브인 이진수를 가진다는 것에 기초해서, 일반적으로 이하의 심벌 인코딩 방식이 채택된다: St(N) = 0을 사용해서 포지티브 펄스를 나타내고, St(N) = 1을 사용해서 네거티브의 펄스를 나타낸다. 당연히, 인코딩되어야 하는 펄스에 있어서, 펄스 심벌은 필수의 특징부는 아니며, 실제의 필요에 따라, 펄스는 위치 및 양 특징부(quantity feature)만을 가질 수 있으며, 이 경우, 펄스 심벌 정보에 관한 통계를 수집하지 않아도 된다.
분명하게, Pt(Nt), SUt(Nt) 및 St(Nt) 내의 값들은 일대일 대응을 가진다.
트랙의 조인트 인코딩에 필요한 파라미터 Nt, Pt(Nt), SUt(Nt) 및 St(Nt)를 통계를 수집하여 획득한 후에는, 파라미터가 인덱스로 인코딩되고, 파라미터와 인덱스 간의 대응성이 확립되어야 하며, 이에 따라 디코딩 측은 인덱스에 따라 대응하는 파라미터를 복구할 수 있다. 이러한 대응성에 대해 두 가지 표현 방식을 채택할 수 있다. 하나는 계산 관계를 나타내는 데 사용되는 대수 방식으로서, 이 상황에서는, 인코딩 측에서 파라미터에 대해 순방향 계산(forward calculation)을 수행하여 인덱스를 획득하며, 디코딩 측에서 이 인덱스에 대해 역방향 계산(reverse calculation)을 수행하여 파라미터를 획득한다. 다른 하나는 질의 관계를 나타내는 데 사용되는 매핑 방식으로서, 이 상황에서는, 인코딩 측 및 디코딩 측 모두가 파라미터와 인덱스를 연관시키는 매핑 테이블을 저장하는 데 사용된다. 파라미터의 특정한 특징부에 따라 두 종류의 대응성에 대해 선택이 수행될 수 있다. 일반적으로 말하면, 대량의 데이터가 있는 상황에서, 계산 관계로 표현되는 대응성을 지정하는 것이 인코딩 측 및 디코딩 측의 저장량을 절감할 수 있고 더 선호되고 있다. 각각의 파라미터의 인코딩에 대해 이하에 각각 설명한다.
A3: 펄스를 가지면서 각각의 트랙 상에 있는 위치의 수 {N0, N1, ..., NT -1}에 따라, 제1 인덱스 I1을 결정하며, 여기서 제1 인덱스 I1은 펄스를 가지는 위치의 수 하에서, 펄스를 가지면서 각각의 트랙 상에 있는 모든 가능한 분포 위치에 대응하며, 펄스를 가지는 위치의 수는 제1 인덱스에 의해 나타내어진다.
{N0, N1, ..., NT -1} 조합의 가능한 상황의 총수는
Figure pct00003
Nt이다. Nt의 값은 크지 않으며, 일반적으로 w조인트 인코딩의 트랙의 총수 T도 크지 않으므로, {N0, N1, ..., NT -1} 조합의 가능한 상황의 총수는 크지 않으며, 그러므로 {N0, N1, ..., NT -1} 조합과 제1 인덱스 I1 간의 대응성은 계산 관계 또는 질의 관계를 채택하는 것이 가능하다.
{N0, N1, ..., NT -1} 조합과 제1 인덱스 I1 간의 대응성이 확립되면, 일반적으로 {N0, N1, ..., NT -1} 조합과 제1 인덱스 I1 간에 일대일 관계가 설정될 수 있으며, 즉, 제1 인덱스는 {N0, N1, ..., NT -1} 조합에 대응한다. pos_numt의 값 Nt는 Pt(Nt)의 모든 가능한 상황의 총수 Wt(Nt)를 결정하고, Wt(Nt) =
Figure pct00004
및 "C"는 조합의 수를 획득하는 단계를 나타내며, 이에 따라 I1은
Figure pct00005
Wt(Nt) 가능한 Pt(Nt) 조합 {P0(NO), P1(N1), ..., PT -1(NT -1)}에 대응한다.
분명하게, 특정한 트랙의 일부 Nt 값이 Pt(Nt)의 상황의 작은 수에 대응하면, Nt 값은 동일한 I1에 대응하도록 조합될 수 있고, 즉 하나의 I1은 두 개의 {N0, N1, ..., NT -1} 조합보다 많이 대응하며, 이 경우, {N0, N1, ..., NT -1} 조합을 구별하는 데 동일한 I1에 대응하는 여분의 추가 인덱스 Ift가 필요하며, I1에 대응하는 1이 아닌 Nt 값으로 트랙의 현재 Nt 값을 추가로 결정하는 데 부가적인 인덱스 Ift가 사용된다.
다른 I1은 트랙의 조인트 인코딩의 분류 인덱스(classfification index)로 간주될 수 있으며, 이는 전체 조인트 인코딩의 코드북 공간을 각각의 트랙의 펄스 위치의 수의 조합에 따라 수 개의 부분으로 분할한다. 조인트 인코딩의 조합 분류의 상황에 대해 예를 들어 이하에 설명한다. 표 4는 3-펄스 2-트랙 조인트 인코딩의 조합 분류 방식이다. 총 3×3 Nt 값 조합이 있으며, 각각의 조합은 분류(I1)에 대응한다. 트랙 상의 위치의 총수 Mt는 모두 16인 것으로 가정한다.
분류 트랙 0 Nt 트랙 1 Nt Pt(Nt) 조합의 수
1 3 3 560×560
2 3 2 560×120
3 2 3 120×560
4 2 2 120×120
5 3 1 560×16
6 1 3 16×560
7 2 1 120×16
8 1 2 16×120
9 1 1 16×120
표 5는 4-펄스 2-트랙 조인트 인코딩의 조합 분류 방식이다. 총 4×4 Nt 값 조합이 있으며, 마찬가지로, 각각의 조합의 종류는 분류(I1)에 대응한다. 트랙 상의 위치의 총수 Mt는 모두 16인 것으로 가정한다.
분류 트랙 0 Nt 트랙 1 Nt Pt(Nt) 조합의 수
1 4 4 1820×1820
2 4 3 1820×560
3 3 4 560×1820
4 3 3 560×560
5 4 2 1820×120
6 2 4 120×1820
7 3 2 560×120
8 2 3 120×560
9 4 1 1820×16
10 1 4 16×1820
11 2 2 120×120
12 3 1 560×16
13 1 3 16×560
14 2 1 120×16
15 1 2 16×120
16 1 1 16×16
표 6은 5-펄스 2-트랙 조인트 인코딩의 조합 분류 방식이다. 전술한 두 예와 다른 점은 Nt = 1, 2, 3의 상황이 분류에 대해 조합된다는 점이다. 총 3×3 분류(I1)이 있으며, 일부 분류 각각은 복수의 Nt 값 조합에 대응한다. 트랙 상의 위치의 총수 Mt는 모두 16인 것으로 가정한다.
분류 트랙 0 Nt 트랙 1 Nt Pt(Nt) 조합의 수
1 5 5 4368×4368
2 5 4 4368×1820
3 4 5 1820×4368
4 4 4 1820×1820
5 5 1,2,3 4368×(16+120+560)
6 1,2,3 5 (16+120+560)×4368
7 4 1,2,3 1820×(16+120+560)
8 1,2,3 4 (16+120+560)×1820
9 1,2,3 1,2,3 (16+120+560)×(16+120+560)
표 6으로부터 알 수 있는 바와 같이, Nt 값(일반적으로 위치 조합의 작은 수에 대응하는 Nt 값)은 분류를 위해 함께 조합되고, 이는 조인트 인코딩의 분류의 총수를 효과적으로 감소시킨다(예를 들어, 표 6에서 분류의 수는 9이고, 이는 일대일 대응 상황에서 분류의 수 25보다 훨씬 작다). 당연히, 이에 따라 1이 아닌 Nt 값이 존재하는 분류 상황에서 현재의 Nt 값을 결정하는 데 여분의 추가 인덱스 Ift가 사용된다. 즉, I1에 의해 분할된 공간이 부가적인 인덱스 Ift에 의해 식별된 하위공간으로 더 분할된다.
A4: 펄스를 가지면서 각각의 트랙 상에 있는 위치의 분포 Pt(Nt)에 따라 각각의 트랙의 제2 인덱스 I2t를 별도로 결정하며, 여기서 제2 인덱스 I2t는, 제1 인덱스 I1에 대응하는 모든 가능한 분포 위치 중, 대응하는 트랙 상에 펄스를 가지는 현재 위치의 분포에 대응하는 분포 위치를 나타낸다.
Pt(Nt)의 가능한 총수는 Wt(Nt) =
Figure pct00006
이고, 데이터 양은 크며, 그러므로 제2 인덱스 I2t와의 대응성을 위해 계산 관계를 채택하는 것이 더 적절하며 당연히 질의 관계를 채택하는 것도 가능하다. 분명하게, Wt(Nt)는 I2t의 모든 가능한 값의 수이다. I2t의 값이 0에서부터 시작하면, I2t∈[0,Wt(Nt)-1]이다.
당연히, 부가적인 인덱스 Ift가 사용되어야 하는 상황에서, I2t의 범위를 결정하는 Nt 값은 제1 인덱스 I1과 부가적인 인덱스 Ift에 의해 공동으로 결정된다.
대수 계산을 통해 Pt(Nt)와 I2t 간의 대응성을 결정하기 위해, 제2 인덱스 I2t의 계산식은 아래와 같이 제공된다:
Figure pct00007
여기서, pt(n)은 트랙 상에서 펄스를 가지를 n번째 위치의 위치 일련 번호를 나타내고, n∈[0,Nt-1], pt(0)∈[0,Mt-Nt], pt(n)∈[pt(n-1)+1,Mt-Nt+n], pt(0)<pt(1)<...<pt(Nt-1), 또는 pt(0)>pt(1)>...>pt(Nt-1)이다.
전술한 방법을 채택함으로써, 각각의 트랙의 제2 인덱스 I2t는 계산 관계를 통해 획득될 수 있다. 코드 인덱스에서 I2t가 차지하는 데이터 양이 크기 때문에, 계산 방법을 채택하면 인코딩 측 및 디코딩 측 모두에서 될 수 있는 한 많이 저장량을 줄일 수 있다. 한편, I2t는 계속해서 인코딩되고 Pt(Nt)에 일대일 대응하기 확실하게 때문에, 코드 비트를 최대한으로 사용할 수 있으므로 낭비하지 않을 수 있다. 원리상으로, 계산 방법에 대한 특정한 추론 및 설명에 대해서는 중국특허출원(공개일 2008년 10월 29일) 공개번호 No.CN101295506을 참조하면 되며, 특히 출원명세서의 13페이지 18라인 내지 15페이지 9라인(실시예 2, 도면 14 및 도 15)을 참조하면 되며, 대응하는 디코딩 계산 방법에 대해서는, 출원명세서의 16페이지 23라인 내지 17페이지 12라인(실시예 4)을 참조하면 된다.
A5: 펄스를 가지면서 트랙 상에 있는 각각의 위치 상의 펄스의 수 SUt(Nt)에 따라 각각의 트랙의 제3 인덱스 I3t를 별도로 결정한다.
SUt(Nt)는 Pt(Nt)와 동일한 수의 차원을 가지는 벡터이지만, sut(0)+sut(1)+...+sut(Nt-1)=Nt로 제한되며, Nt의 값은 크기 않으며, 통상적으로 1 내지 6이고, 그러므로 SUt(Nt)의 가능한 총수는 크지 않으며, 제3 인덱스 I3t와의 대응성을 위해 계산 방법 및 질의 방법을 채택하는 것이 가능하다. 극단적인 상황에서, 예를 들어 Nt=1 또는 Nt=Nt인 상황에서, 이 경우 SUt(Nt)만이 하나의 가능한 상황을 가지며, 특정한 I3t는 표시를 위해 필요하지 않으며, I3t는 최종 코드 인덱스의 생성에 영향을 주지 않는 값으로 간주될 수 있다.
대수 계산을 통해 SUt(Nt)와 제3 인덱스 I3t 간의 대응성을 결정하기 위해, 제3 인덱스 I3t의 계산 방법에 이하에 설명한다:
t번째 트랙에 있어서, 펄스를 가지는 Nt 위치가 Nt 펄스를 가지는 상황은 Nt 위치가 Nt - Nt 펄스를 가지는 상황에 매핑되고, 여기서 Nt는 t번째 트랙 상에 있으면서 인코딩되어야 하는 펄스의 총수를 나타낸다. 예를 들어, 도 2에 도시된 4종류의 6-펄스 4-위치(Nt = 6, Nt = 4) 상황에서는, SUt(Nt)는 항상 {1,2,1,2}이고, 각각의 위치에서의 펄스의 수에서 1을 감산하여(왜냐하면 각각의 위치는 적어도 하나의 펄스를 가지므로) {0,1,0,1}을 획득하며, 즉 SUt(Nt)의 정보는 2-펄스 4-위치 인코딩 상황에 매핑된다.
설정된 순서에 따라, Nt 상의 Nt - Nt 펄스의 모든 가능한 분포 상황이 배열되고, 배열된 일련 번호를, 펄스를 가지는 위치 상의 펄스의 총수를 나타내는 제3 인덱스 I3t로서 사용한다.
전술한 계산 방법을 반영하는 계산식은 다음과 같다:
Figure pct00008
여기서, ΔNt = Nt - Nt이고, PPT = Nt - 1이며, q(h)는 (h+1)번째 펄스의 위치 일련 번호를 나타내고, h∈[0,ΔNt-1], q(h)∈[0,Nt-1], q(0)≤q(1)≤...≤q(ΔN t-1), 또는 q(0)≥q(1)>≥...≥q(ΔNt-1)이며, Σ는 합을 나타낸다.
원리상으로, 계산 방법에 대한 특정한 추론 및 설명에 대해서는 중국특허출원(공개일 2009년 3월 18일) 공개번호 No.CN101388210을 참조하면 되며, 특히 출원명세서의 8페이지 23라인 내지 10페이지 7라인(실시예 2, 도면 6)을 참조하면 되며, 대응하는 디코딩 계산 방법에 대해서는, 출원명세서의 21페이지 10라인 내지 21페이지 27라인(실시예 6)을 참조하면 된다.
A6: T 트랙의 일반 코드 인덱스 Ind를 생성하고, 코드 인덱스 Ind는 각각의 트랙의 제1 인덱스 I1과 제2 및 제3 인덱스(I2t 및 I3t)의 정보를 포함한다.
I1, I2t, I3t, 부가적인 인덱스 Ift(관련된 경우에 해당) 및 심벌 인덱스 ISt(관련된 경우에 해당)는 디코딩 측에서 식별할 수 있는 임의의 방식에 따라 코드 인덱스에 위치할 수 있으며, 예를 들어 가장 간단한 방식으로, 고정 필드에 별도로 저장될 수 있다. 각각의 트랙 상에서 인코딩되어야 하는 펄스의 총수 pulse_numt가 특정한 전제조건을 고려하면, I1에 의해 나타내어지는 각각의 pos_numt의 값 Nt는 I2t와 I3t의 변동 범위를 결정하는데, 즉 I2t와 I3t가 필요로 하는 코드 비트의 수를 결정하며(관련된 경우에 해당하면, ISt가 필요로 하는 코드 비트의 수도 결정한다), 그러므로 코드 인덱스를 구성하는 데 이하의 방식을 채택할 수 있다.
① 제1 인덱스 I1을 시작 값으로 사용하고, 다른 인덱스의 정보는 중첩된다. I1의 값은 코드 인덱스의 독립적인 값 범위에 대응한다. 이 방법에서, 디코딩 측은 코드 인덱스의 값 범위에 따라, pos_numt의 값 조합 {N0, N1, ..., NT -1}을 직접 결정할 수 있다. 당연히, 부가적인 인덱스가 있는 상황에서, 제1 인덱스에 대응하는 1이 아닌 Nt 값을 가지는 트랙의 Nt 값 조합만이 I1에 따라, 예를 들어, 표 6에서 조합 "1,2,3"에 따라 결정될 수 있다. Nt 값이 결정되든 Nt 값 조합이 결정되든 간에, 그 필요한 인코딩 공간은 결정되며, 이에 따라 I1에 의해 결정된 값 범위(일반적으로 필드의 특정한 길이에 대응)는 T 트랙의 I2t, I3t 및 Ift(관련된 경우에 해당)에 의해 사용될 T 부분으로 추가로 분할될 수 있다.
② I2t 및 I3t는 디코딩 측에서 식별할 수 있는 임의의 방식으로 위치할 수 있으며, 예를 들어 가장 간단한 방식으로, 고정 필드에 별도로 저장될 수 있다. I2t 및 I3t는 일반적으로 2의 정수 거듭제곱으로 나타낼 수 없기 때문에, 코드 비트를 될 수 있는 한 절감하기 위해서는, t번째 트랙의 I2t 및 I3t는 이하의 형태로 조합되어 I1에 의해 결정된 값 범위로부터 할당된 섹션에 위치할 수 있다:
Index(t) = I2t + I3t ×Wt(Nt) = I2t + I3t ×
Figure pct00009
여기서, I2t 및 I3t는 모두 0, I2t∈[0,Wt(Nt)-1] I3t는 ∈[0,Class(Nt)-1]로부터 시작하며, Class(Nt)는 SUt(Nt)의 가능한 총수이다. 당연히, 이 방식은 I1로부터 할당된 값 범위가 길이가 Wt(Nt)인 Class(Nt) 섹션들로 분할되는 방식이고, 각각의 섹션은 SUt(Nt)의 분포 상황에 대응한다.
당연히, Ift가 사용되어야 하는 상황에서는, I1로부터 트랙으로 할당된 값 범위는 Ift에 의해 상이한 Nt에 먼저 할당되어 사용되어야 하고, 그런 다음 I2t 및 I3t는 각각의 Nt에 할당된 공간에 위치하며, 이 경우 다음과 같다.
Index(t) = Ift + I2t + I3t ×
Figure pct00010
③ 당연히, 인코딩된 펄스가 심벌을 가지는 펄스인 상황에서는, 각각의 Index(t)는 각각의 펄스의 심벌 인덱스 st(n)의 정보를 포함하도록 추가로 요구된다. 예를 들어, t번째 트랙의 심벌 인덱스 Ist는 길이가 Nt인 필드로서 사용되어 고정 위치에 위치되어야 하는데, 예를 들어, 끝에, I1로부터 트랙에 할당된 값 범위에 할당되어야 하며, 이 경우,
Figure pct00011
(하나의 Nt 값이 제1 인덱스에 대응하는 경우), 또는,
Figure pct00012
(1이 아닌 Nt 값이 제1 인덱스에 대응하는 경우)
이며, 여기서,
Figure pct00013
이다.
결론적으로, T 트랙의 일반 코드 인덱스 Ind의 구성 방식은 다음과 같이 나타내어질 수 있다:
Figure pct00014
여기서, Imax(t)는 Index(t)의 상한값을 나타내고, "Π"는 곱셈을 나타낸다. 디코딩 동안, Imax(t)의 나머지를 취하는 방식은 Index(t)에 하나씩 채택될 수 있다. 예를 들어, (Ind-I1)을 사용하여 Imax(t-1)의 나머지를 취함으로써 Index(T-1)을 획득하며, (Ind-I1)로부터 Index(T-1)을 감산하여, Imax(t-1)에 의해 나누어지는 값을 획득한 다음, Imax(t-2)의 나머지를 추가로 획득하여 Index(T-2)를 획득하고, 그 나머지는 Index(0)를 획득할 때까지 유추하여 추론할 수 있다.
위에서 예시한 코드 인덱스 구성 방식은 본 실시예의 대안의 방식일 뿐이며, 당업자라면 코드 인덱스를 형성하는 기본 정보를 사용하여 다른 코드 인덱스 구조의 구성 방식을 쉽게 획득할 수 있다는 것을 쉽게 이해할 수 있을 것이다. 예를 들어, 인덱스 위치들을 바꾸거나 재조합한다. 구체적으로, 서로 다른 트랙의 I2t를 먼저 조합한 다음, I3t 및 Ist를 조합한다. 코드 인덱스의 특정한 구성 방식은 본 발명의 실시예에 제한되지 않는다.
실시예 2: 펄스 인코딩 방법, 본 발명의 실시예에서는, 조인트 인코딩의 각각의 트랙의 인덱스를 별도로 계산하고, 조합하여 코드 인덱스를 형성하며, 도 3에 도시된 바와 같이, 이하의 단계를 포함한다:
B1: T 트랙 상에 있으면서 인코딩되어야 하는 펄스를 획득하며, T는 2보다 크거나 같은 정수이다.
B2: 위치에 따라, 각각의 트랙 상에 있으면서 인코딩되어야 하는 펄스에 관한 통계를 별도로 수집하여, 각각의 트랙 상에 펄스를 가지는 위치의 수 Nt, 트랙 상에 펄스를 가지는 위치의 분포, 및 펄스를 가지는 각각의 위치 상의 펄스의 수를 획득한다.
단계 B1 및 B2는 실시예 1의 단계 A1 및 A2를 참조하여 실행될 수 있다.
B3: 펄스를 가지면서 각각의 트랙 상에 있는 위치의 수에 따라, 각각의 트랙의 제1 인덱스 I1t를 별도로 결정하며, 여기서 제1 인덱스 I1t는 펄스를 가지는 위치의 수 하에서, 펄스를 가지면서 각각의 트랙 상에 있는 모든 가능한 분포 위치에 대응하며, 펄스를 가지는 위치의 수는 제1 인덱스 I1t에 의해 나타내어진다.
B4: 펄스를 가지면서 각각의 트랙 상에 있는 위치의 수에 따라, 각각의 트랙의 제2 인덱스 I2t를 별도로 결정하며, 여기서 제2 인덱스 I2t는 제1 인덱스 I1t에 대응하는 모든 가능한 분배 상황 중, 펄스를 가지는 현재 위치의 분포에 대응하면서 트랙 상에 있는 분포 위치를 나타낸다.
B5: 펄스를 가지면서 각각의 트랙 상에 있는 각각의 위치 상의 펄스의 수에 따라 각각의 트랙의 제3 인덱스 I3t를 별도로 결정한다.
단계 B3 내지 B5는 실시예 1의 단계 A1 및 A2를 참조하여 실행될 수 있다. 각각의 트랙의 인덱스를 별도로 획득하는 프로세스에 대한 상세한 설명에 대해서는, 중국특허출원(공개일 2008년 10월 29일) 공개번호 No.CN101295506을 참조하면 되며, 특히 출원명세서의 6페이지 13라인 내지 15페이지 9라인(실시예 1 및 실시예 2)을 참조하면 되며, 대응하는 디코딩 계산 방법에 대해서는, 출원명세서의 15페이지 11라인 내지 17페이지 12라인(실시예 3 및 실시예 4)을 참조하면 된다.
B6: T 트랙의 일반 코드 인덱스 Ind를 생성하며, 여기서 코드 인덱스 Ind는 각각의 트랙의 제1, 제2, 및 제3 인덱스(I1t, I2t 및 I3t)의 정보를 포함한다.
I1t, I2t, I3t, 및 심벌 인덱스 ISt(관련된 경우에 해당)는 디코딩 측에서 식별할 수 있는 임의의 방식에 따라 코드 인덱스에 위치할 수 있으며, 예를 들어 가장 간단한 방식으로, 고정 필드에 별도로 저장될 수 있다. 당연히, 조합도 수행될 수 있다. 예를 들어, 트랙의 인덱스는 함께 별도로 조합되어 중첩된다. 즉, 코드 인덱스를 구성하는 데 이하의 방식을 채택할 수 있다.
Ind = Index(0) ×
Figure pct00015
+ Index(1) ×
Figure pct00016
+ ... + Index(T - 1)
여기서, Imax(t)는 Index(t)의 상한값을 나타낸다.
Index(t) = I1t + I2t + I3t ×
Figure pct00017
(펄스 심벌이 고려되지 않은 상황), 또는,
Index(t) = I1t + (I2t + I3t ×
Figure pct00018
) ×
Figure pct00019
+ Ist (펄스 심벌이 고려된 상황)
위에서 예시한 코드 인덱스 구성 방식은 본 실시예의 대안의 방식일 뿐이며, 당업자라면 코드 인덱스를 형성하는 기본 정보를 사용하여 다른 코드 인덱스 구조의 구성 방식을 쉽게 획득할 수 있다는 것을 쉽게 이해할 수 있을 것이다. 예를 들어, 각각의 트랙에서 인덱스 위치들을 바꾸거나 재조합한다. 코드 인덱스의 특정한 구성 방식은 본 발명의 실시예에 제한되지 않는다.
실시예 3: 펄스 인코딩 방법, 본 실시예는 코드 비트를 더 절감하기 위해 실시예 1 또는 실시예 2의 기본에 제안되어 있는 방법이다.
본 실시예의 펄스 인코딩 방법에서 코드 인덱스 Ind의 생성 프로세스는 실시예 1 또는 실시예 2의 방법을 참조하여 실행될 수 있다. 코드 인덱스 Ind를 생성한 후, 이하의 동작이 실행되며, 도 4에 도시된 바와 같이, 이하의 단계를 포함한다:
C1: 코드 인덱스 Ind와 조정 임계값 THR을 비교하며, 여기서
THR≤2Bmax-Imax(T)이며,
Imax(T)는 Ind의 상한값을 나타내고, Bmax는 코드 인덱스를 인코딩하는 데 사용되는 비트의 수의 상한값을 나타내며; Ind가 THR보다 작으면, 과정은 C2로 진행하고, 그렇지 않으면 과정은 단계 C3으로 진행한다.
C2: 코드 비트의 수가 제1 수인 코드 비트를 사용하여 Ind를 인코딩한다.
C3: 코드 비트의 수가 제2 수인 코드 비트를 사용하여 Ind와 오프셋 값 THR0을 더한 값을 인코딩하며, 여기서 THR≤THR0≤2Bmax-Imax(T)이며, 소위 제1 수는 제2 수보다 작으며, 제2 수는 Bmax보다 작거나 같고, 제1 수 및 제2 수는 모두 양의 정수이다.
예를 들어, 2개의 4-펄스 트랙의 조인트 인코딩의 상황에 있어서(각각의 트랙의 위치의 총수는 16인 것으로 가정), Ind의 가능한 총수는 Imax(T) = 44032 × 44032이고(펄스가 심벌을 가지는 것으로 상정), 31 코드 비트가 필요하며, 그 자유 코드북 공간은 231 - 44032 ×44032 = 208666624이며, THR = THR0 = 208666624로 설정될 수 있으며; Ind가 208666624보다 작을 때, 코드 비트의 수가 제1 수(30)인 코드 비트를 사용하여 Ind를 인코딩하며; Ind가 208666624보다 클 때, 코드 비트의 수가 제2 수(31)인 코드 비트를 사용하여 Ind + 208666624를 인코딩한다. 당연히, 31 비트에 기초해서 비트를 더 절감할 확률은 9.7%이다. 당연히, 조정 임계값 THR은 208666624보다 작도록 설정될 수 있으므로 더 많은 비트를 절감할 수 있지만, 그에 따라 비트가 절감될 수 있는 상황이 발생할 확률이 현격하게 감소하므로, 균형잡힌 고려가 요망된다.
원리상으로, 비트를 절감하기 위한 방법에 대한 특정한 추론 및 설명에 대해서는 중국특허출원(공개일 2009년 6월 19일) 출원번호 No.CN200910150637.8을 참조하면 된다.
또한, 비트가 절감될 수 있는 상황이 발생할 확률을 높이기 위해, 다음과 같은 바람직한 방법을 채택하여 코드 인덱스 Ind에 있는 {N0, N1, ..., NT -1} 조합과 제1 인덱스 Ind 간의 대응성을 설정한다. {N0, N1, ..., NT -1} 조합의 발생 확률에 관한 통계를 수집하여, 발생 확률이 더 높은 조합에 대응하는 제1 인덱스를 더 작게 함으로써, 발생 확률이 높은 조합의 인코딩된 인덱스 값을 될 수 있는 한 많이 감소시킨다.
실시예 4: 펄스 인코딩 방법, 본 실시예는 실시예 1 및 실시예 2와는 다른 관점에서 트랙의 조인트 인코딩을 위한 새로운 방법을 제안한다.
실시예 1 및 실시예 2에서, 펄스를 가지면서 트랙 상에 있는 위치의 상황에 대해 조인트 분류가 실행되든(실시예 1) 또는 각각의 트랙 상에 제1 인덱스가 설정되어 있든(실시예 2) 간에, 각각의 트랙의 펄스 위치 분포에 대해 프로세스가 별도로 수행되어야 한다. 본 실시예에서는, 새로운 개념이 도입되는데, 즉 조인트 인코딩의 트랙이 중첩되어 1 트랙을 형성하고, 펄스 분포 정보가 중첩된다. 예를 들어, 도 5에 도시된 바와 같이, 2개의 3-펄스 트랙이 중첩되어 1개의 6-펄스 트랙을 형성하고(각각의 트랙의 위치의 수는 16인 것으로 가정), 그런 다음,
① 싱글 트랙의 펄스의 분포 위치에 따라, 중첩된 트랙의 분포 인덱스를 계산한다. 예를 들어, 실시예 2에 설명된 I1t, I2t, I3t, 및 ISt의 조합 방식을 채택할 수 있다.
② 펄스가 속해 있는 트랙의 상황에 따라 트랙 인덱스가 확립된다. 예를 들어, 도 6에 도시된 바와 같이, 도 5의 중첩에 의해 획득된 3-위치 6-펄스는 다른 트랙 분포 위치에 대응하고, 다른 트랙 인덱스는 대응하는 상황을 별도로 나타내는 데 사용될 수 있다. 도 6에서, "0"는 트랙 0 상의 펄스를 나타내며, "x"는 트랙 1 상의 펄스를 나타낸다.
③ 싱글 트랙으로 되어 있으면서 펄스와 이 펄스가 속해 있는 트랙을 나타내는 트랙 인덱스를 중첩시킴으로써 획득된 분포 인덱스를 함께 조합하여 최종 코드 인덱스를 획득한다.
본 실시예의 조인트 인코딩 방법도 또한 실시예 1 및 실시예 2와 같이 코드 비트를 절감할 수 있으며, 실시예 3과 조합하여 사용되어 코드 비트를 더 절감하는 목적을 달성할 수 있다.
실시예 5: 펄스 디코딩 방법, 본 실시예에서 제공하는 디코딩 방법은 실시예 1의 인코딩 방법에 따라 획득된 코드 인덱스를 디코딩하며, 디코딩 프로세스는 인코딩 프로세스의 역 프로세스이고, 도 7에 도시된 바와 같이, 이하의 단계를 포함한다:
D1: 코드 인덱스 Ind를 획득하고, 이 코드 인덱스 Ind로부터 제1 인덱스 I1을 추출하며, 제1 인덱스 I1에 따라, 펄스를 가지면서 T 트랙의 각각의 트랙 상에 있는 위치의 수 {N0, N1, ..., NT -1}를 결정한다.
Ind로부터 각각의 인덱스의 정보를 추출하는 단계는 인코딩 동안 인덱스를 Ind에 조합하는 프로세스의 역 프로세스에 따라 수행될 수 있다. 예를 들어, 각각의 인덱스가 고정 필드에 별도로 저장되어 있는 경우, 각각의 인덱스는 직접 추출될 수 있다.
I1을 시작 값으로 사용하여 다른 인덱스를 중첩하는 실시예 1에서 제공하는 구조를 Ind가 채택하는 경우, Ind는 먼저 추출될 수 있으며, 각각의 트랙의 Index(t)는 I1에 대응하는 {N0, N1, ..., NT -1} 조합에 따라 Ind로부터 분리된다. 이 경우, I1은 Ind의 독립적인 값 범위에 대응하고, 그러므로 디코딩 측은 수 개의 설정되어 있는 독립적인 값 범위 중에서, Ind가 속해 있는 값 범위를 판정하고, Ind가 속해 있는 값 범위에 대응하는 시작 값에 따라 제1 인덱스 I1을 결정할 수 있다.
당연히, 1이 아닌 Nt 값이 제1 인덱스 I1에 대응하는 트랙이 존재하는 상황에서는, 그 트랙에 있어서, I1은 Nt 값 조합을 결정하고, 실제의 Nt 값은 추가로 추출된 부가적인 인덱스 Ift에 의해 결정되며, 이 경우, 별도의 Index(t)가 Ift의 정보를 포함한다.
D2: 코드 인덱스 Ind로부터, 각각의 트랙의 제2 인덱스 I2t 및 각각의 트랙의 제3 인덱스 I3t를 추출한다.
I1과 마찬가지로, I2t 및 I3t의 추출도 Index(N)과의 조합 프로세스의 역 프로세스에 따라 수행되며, 추출은 직접 수행될 수 있다. 실시예 1에서와 같이, 조합 후 중첩이 수행되는 인코딩 방식을 I2t 및 I3t를 위해 채택하는 경우, 이 단계에서, I2t, I3t, Ift(관련된 경우에 해당), 및 ISt(관련된 경우에 해당)는 Index(t)로부터 분리되며, 조합 프로세스에 따라 역 동작이 수행될 수 있다.
예를 들어, Ift, 및 ISt가 포함되지 않는 상황에서는, I2t = Index(t)%Wt(Nt)이고, I3t = Int[Index(t)/Wt(Nt)]이며, %는 나머지를 취하는 것을 나타내고, Int는 라운딩(rounding)을 나타낸다. Ift가 포함되어 있는 상황에서, I1을 결정하는 단계와 마찬가지로, 부가적인 인덱스 Ift는 Index(t)가 속해 있는 범위 값에 대응하는 시작 값에 따라 결정될 수 있으며, Ift가 분리된 후, I2t, I3t 및 ISt(관련된 경우에 해당)는 그 결정된 Nt 값에 따라 추가로 추출된다.
D3: 제2 인덱스 I2t에 따라, 펄스를 가지는 위치의 수 하에서, 트랙 상에 펄스를 가지는 위치의 분포를 결정하며, 여기서 펄스를 가지는 위치의 수는 제1 인덱스 I1 및 Ift(관련된 경우에 해당)에 대응한다.
I2t를 인코딩하는 역 프로세스를 I2t를 디코딩하기 위해 채택한다. 인코딩 동안, 계산 방법을 채택하여 I2t를 획득하면, 디코딩 동안 동일한 계산 관계를 사용하여 역 동작을 수행한다. 인코딩 동안, 질의 관계를 사용하여 I2t를 획득하면, 디코딩 동안 동일한 대응성을 질의한다.
D4: 각각의 트랙에 있어서, 제3 인덱스 I3t에 따라, 펄스를 가지는 각각의 위치 상의 펄스의 수를 결정한다.
D5: 각각의 트랙에 있어서, 트랙 상에 펄스를 가지는 위치의 분포 Pt(Nt) 및 펄스를 가지는 각각의 위치 상의 펄스의 수 SUt(Nt)에 따라, 트랙 상에 펄스 시퀀스를 재구성한다.
펄스가 심벌을 가지는 상황에 있어서, 각각의 트랙 상에 펄스 시퀀스가 재구성될 때, 펄스를 가지는 각각의 위치의 펄스 심벌의 포지티브 특징 또는 네거티브 특징이 각각의 심벌 인덱스 st(n)에 수반되어 있는 펄스 심벌 정보에 따라 복구된다.
실시예 6: 펄스 디코딩 방법, 본 실시예에서 제공하는 디코딩 방법은 실시예 2의 인코딩 방법에 따라 획득된 코드 인덱스를 디코딩하며, 디코딩 프로세스는 인코딩 프로세스의 역 프로세스이고, 도 8에 도시된 바와 같이, 이하의 단계를 포함한다:
E1: 코드 인덱스 Ind를 획득하고, 이 코드 인덱스 Ind로부터 각각의 트랙의 제1 인덱스 I1t를 추출하며, 제1 인덱스 I1t에 따라, 각각의 트랙 상에 펄스를 가지는 위치의 수 Nt를 결정한다.
각각의 트랙 상의 펄스의 총수 Nt가 결정되는 상황에서(서로 다른 비트 레이트 하에서, 코드 인덱스의 비트의 총수는 상이하며, 그러므로 디코딩 측은 코드 인덱스의 길이(비트의 수)에 따라 각각의 트랙 상의 펄스의 총수 Nt를 결정할 수 있다), Index(t)의 상한값 Imax(t)가 결정되므로, 각각의 트랙의 Index(t)가 Ind로부터 직접 분리될 수 있고, I1t 및 대응하는 Nt는 Index(t)의 범위 값에 따라 결정된다.
E2: 코드 인덱스 Ind로부터, 각각의 트랙의 제2 인덱스 I2t 및 각각의 트랙의 제3 인덱스 I3t를 추출한다. 즉, I2t 및 I3t는 Index(t)로부터 분리되는데, 이는 실시예 5의 단계 D2를 참조하여 실행될 수 있다. 펄스 심벌이 포함되면, ISt가 추가로 분리될 수 있다.
E3: 제2 인덱스 I2t에 따라, 펄스를 가지는 위치의 수 하에서, 트랙 상에 펄스를 가지는 위치의 분포를 결정하며, 여기서 펄스를 가지는 위치의 수는 제1 인덱스 I1t에 대응한다.
E4: 각각의 트랙에 있어서, 제3 인덱스 I3t에 따라, 펄스를 가지는 각각의 위치 상의 펄스의 수를 결정한다.
E5: 각각의 트랙에 있어서, 트랙 상에 펄스를 가지는 위치의 분포 Pt(Nt) 및 펄스를 가지는 각각의 위치 상의 펄스의 수 SUt(Nt)에 따라, 트랙 상에 펄스 시퀀스를 재구성한다.
단계 E3 내지 E5는 실시예 5의 단계 D3 내지 D5를 참조하여 실행될 수 있다.
실시예 7: 펄스 디코딩 방법, 본 실시예에서 제공하는 디코딩 방법은 실시예 3의 인코딩 방법에 대응하며, 실시예 3의 가변 길이 인코딩의 코드 스트림을 디코딩하여 코드 인덱스를 획득하며, 프로세스는 도 9에 도시된 바와 같이, 이하의 단계를 포함한다:
F1: 인코딩된 코드 스트림으로부터 코드 비트의 수가 제1 수인 코드 비트를 추출한다.
F2: 코드 비트의 수가 제1 수인 코드 비트의 디코딩된 값이 조정 임계값 THR보다 작으면, 단계 F3으로 진행하고, 그렇지 않으면 단계 F4로 진행한다.
F4: 그렇지 않으면, 추출된 코드 비트의 수를 제2 수로 증가시키고, 코드 비트의 수가 제2 수인 코드 비트의 디코딩된 값으로부터 오프셋 값 THR0를 감산시킴으로써 획득된 값을 코드 인덱스 Ind로서 사용한다.
본 실시예의 디코딩 방법에 따르면, 코드 인덱스 Ind를 인코딩된 코드 스트림으로부터 획득한 후, 실시예 5 또는 실시예 6의 디코딩 방법에 따라 코드 인덱스가 추가로 디코딩될 수 있다.
실시예 8: 펄스 인코더(10), 본 실시예에서 제공하는 펄스 인코더는 실시예 1이 인코딩 방법을 실행하는 데 사용될 수 있으며, 도 10에 도시된 바와 같이, 이하를 포함한다:
펄스 통계 유닛(101)은 T 트랙 상에 있으면서 인코딩되어야 하는 펄스를 획득하도록 구성되어 있으며, T는 2보다 크거나 같은 정수이며; 위치에 따라, 각각의 트랙 상에 있으면서 인코딩되어야 하는 펄스에 관한 통계를 별도로 수집하여, 각각의 트랙 상에 펄스를 가지는 위치의 수 Nt, 트랙 상에 펄스를 가지는 위치의 분포, 및 펄스를 가지는 각각의 위치 상의 펄스의 수를 획득하며, 첨자 t는 t번째 트랙을 나타내며, t∈[0,T-1]이다.
인덱스 계산 유닛(102)은 이하를 포함한다:
제1 인덱스 유닛(1021)은 펄스를 가지면서 각각의 트랙 상에 있는 위치의 수 {N0, N1, ..., NT -1}에 따라, 제1 인덱스 I1을 출력하도록 구성되어 있으며, 여기서 제1 인덱스 I1은 펄스를 가지는 위치의 수 하에서, 펄스를 가지면서 각각의 트랙 상에 있는 모든 가능한 분포 위치에 대응하며, 펄스를 가지는 위치의 수는 제1 인덱스에 의해 나타내어진다.
제2 인덱스 유닛(1022)은 펄스를 가지면서 각각의 트랙 상에 있는 위치의 분포에 따라 각각의 트랙의 제2 인덱스 I2t를 별도로 출력하도록 구성되어 있으며, 여기서 제2 인덱스 I2t는, 제1 인덱스 I1에 대응하는 모든 가능한 분포 위치 중, 대응하는 트랙 상에 펄스를 가지는 현재 위치의 분포에 대응하는 분포 위치를 나타낸다.
제3 인덱스 유닛(1023)은 펄스를 가지면서 각각의 트랙 상에 있는 각각의 위치 상의 펄스의 수에 따라 각각의 트랙의 제3 인덱스 I3t를 별도로 출력하도록 구성되어 있다.
인덱스 조합 유닛(103)은 제1 인덱스 I1과 각각의 트랙의 제2 및 제3 인덱스(I2t 및 I3t)의 정보를 조합하여 코드 인덱스 Ind를 형성하도록 구성되어 있다.
적어도 하나의 제1 인덱스가 2 이상의 {N0, N1, ..., NT -1} 조합에 대응하는 상황에서, 인덱스 계산 유닛(102)은 부가적인 인덱스 유닛(1024)(도 10에 점선으로 표시된 블록)을 더 포함할 수 있으며, 이 부가적인 인덱스 유닛(1024)은 1이 아닌 Nt 값이 제1 인덱스에 대응하는 트랙에 있어서, 펄스를 가지면서 트랙 상에 있는 현재 위치의 수에 대응하는 부가적인 인덱스 Ift를 결정하도록 구성되어 있으며, 부가적인 인덱스 Ift는 펄스를 가지는 위치의 수 하에서, 펄스를 가지면서 트랙 상에 있는 위치의 모든 가능한 분포 상황에 대응하며, 펄스를 가지는 위치의 수는 부가적인 인덱스 Ift에 의해 나타내어진다. 이 경우, 인덱스 조합 유닛(103)은 부가적인 인덱스 Ift의 정보를 코드 인덱스 Ind에 추가로 조합한다.
실시예 3의 방법을 채택하여 코드 인덱스에 대해 가변 길이 인코딩을 수행하는 상황에서, 본 실시예의 펄스 인코더(10)는 코드 비트 조정 유닛(104)(도 10에서 점선으로 표시된 블록)을 더 포함할 수 있으며, 이 코드 비트 조정 유닛(104)은 인덱스 조합 유닛(103)이 코드 인덱스를 생성한 후 코드 인덱스 Ind와 조정 임계값 THR을 비교하도록 구성되어 있으며,
여기서, THR ≤ 2Bmax-Imax(T)이며,
Imax(T)는 Ind의 상한값을 나타내고, Bmax는 코드 인덱스를 인코딩하는 데 사용되는 비트의 수의 상한값을 나타내며;
Ind가 THR보다 작으면, 코드 비트의 수가 제1 수인 코드 비트를 사용하여 Ind를 인코딩하고; 그렇지 않으면, 코드 비트의 수가 제2 수인 코드 비트를 사용하여 Ind와 오프셋 값 THR0을 더한 값을 인코딩하며, 여기서 THR≤THR0≤2Bmax-Imax(T)이며, 사용된 제1 수는 제2 수보다 작으며, 제2 수는 Bmax보다 작거나 같고, 제1 수 및 제2 수는 모두 양의 정수이다.
실시예 9: 펄스 디코더(20), 본 실시예에서 제공하는 펄스 디코더는 실시예 5가 인코딩 방법을 실행하는 데 사용될 수 있으며, 도 11에 도시된 바와 같이, 이하를 포함한다:
제1 추출 유닛(201)은 코드 인덱스 Ind를 획득하고, 이 코드 인덱스 Ind로부터 제1 인덱스 I1을 추출하며, 제1 인덱스 I1에 따라, 펄스를 가지면서 T 트랙의 각각의 트랙 상에 있는 위치의 수 {N0, N1, ..., NT -1}를 결정하도록 구성되어 있다.
제2 추출 유닛(202)은 코드 인덱스 Ind로부터 각각의 트랙의 제2 인덱스 I2t 및 각각의 트랙의 제3 인덱스 I3t를 추출하도록 구성되어 있다.
제1 디코딩 유닛(203)은 각각의 트랙에 있어서, 제2 인덱스 I2t에 따라, 펄스를 가지는 위치의 수 하에서, 트랙 상에 펄스를 가지는 위치의 분포를 결정하도록 구성되어 있으며, 여기서 펄스를 가지는 위치의 수는 제1 인덱스에 대응한다.
제2 디코딩 유닛(204)은 각각의 트랙에 있어서, 제3 인덱스 I3t에 따라, 펄스를 가지는 각각의 위치 상의 펄스의 수를 결정하도록 구성되어 있다.
펄스 재구성 유닛(205)은 각각의 트랙에 있어서, 트랙 상에 펄스를 가지는 위치의 분포 및 펄스를 가지는 각각의 위치 상의 펄스의 수에 따라, 트랙 상에 펄스 시퀀스를 재구성하도록 구성되어 있다.
적어도 하나의 제1 인덱스가 2 이상의 {N0, N1, ..., NT -1} 조합에 대응하는 상황에서, 본 실시예에서의 디코더는 이하를 더 포함할 수 있다:
부가적인 추출 유닛(206)(도 11에서 점선으로 표시된 블록)은, 1이 아닌 Nt 값이 제1 인덱스에 대응하는 트랙에 있어서, 펄스를 가지면서 트랙 상에 있는 현재 위치의 수에 대응하는 부가적인 인덱스 Ift를 추출하도록 구성되어 있으며, 부가적인 인덱스 Ift는 펄스를 가지는 위치의 수 하에서, 펄스를 가지면서 트랙 상에 있는 위치의 모든 가능한 분포 상황에 대응하며, 펄스를 가지는 위치의 수는 부가적인 인덱스 Ift에 의해 나타내어진다. 이 경우, 제2 추출 유닛(202)은 펄스를 가지면서 대응하는 트랙 상에 있는 현재 위치의 수에 따라 트랙의 제2 인덱스 I2t 및 트랙의 제3 인덱스 I3t를 추출하며, 펄스를 가지면서 대응하는 트랙 상에 있는 현재 위치의 수는 부가적인 추출 유닛(206)에 의해 추출된 부가적인 인덱스 Ift에 의해 결정된다.
또한, 실시예 7의 방법을 채택하여 가변 길이 인코딩의 코드 스트림에 대해 디코딩을 수행하는 상황에서, 본 실시예의 펄스 디코더(20)는 디코딩 비트 조정 유닛(207)(도 11에서 점선으로 표시된 블록)을 더 포함할 수 있으며, 디코딩 비트 조정 유닛(207)은 인코딩된 코드 스트림으로부터 코드 비트의 수가 제1 수인 코드 비트를 추출하도록 구성되어 있으며; 코드 비트의 수가 제1 수인 코드 비트의 디코딩된 값이 조정 임계값 THR보다 작으면, 코드 비트의 수가 제1 수인 코드 비트의 디코딩된 값을 출력을 위한 코드 인덱스 Ind로서 사용하고; 그렇지 않으면, 추출된 코드 비트의 수를 제2 수로 증가시키고, 코드 비트의 수가 제2 수인 코드 비트의 디코딩된 값으로부터 오프셋 값 THR0를 감산시킴으로써 획득된 값을 출력을 위한 코드 인덱스 Ind로서 사용한다.
당업자라면 전술한 실시예의 방법의 단계 중 일부 또는 전부를 하드웨어에 명령을 내리는 프로그램을 통해 실행될 수 있다는 것을 이해할 수 있을 것이다. 프로그램은 컴퓨터가 판독 가능한 저장 매체에 저장될 수 있으며, 이러한 저장 매체는 리드 온리 메모리, 랜덤 액세스 메모리, 자기디스크 또는 광디스크 등이 될 수 있다.
본 발명의 실시예에 따른 펄스 인코딩 및 디코딩 방법 및 펄스 코덱에 대해 상세하게 위에서 설명하였다. 본 발명의 원리 및 실행 방식에 대해서는 특정한 실시예를 통해 여기서 설명하였다. 전술한 실시예에 관한 상세한 설명은 본 발명의 방법 및 그 핵심 개념을 쉽게 이해하기 위한 것에 지나지 않는다. 한편, 당업자라면 본 발명의 개념에 따라 특정한 실행 방식 및 어플리케이션 범위에 대해 변형을 수행할 수 있다. 그러므로 본 명세서는 본 발명에 대한 제한으로서 파악되어서는 안 된다.

Claims (21)

  1. 펄스 인코딩 방법에 있어서,
    T 트랙 상에 있으면서 인코딩되어야 하는 펄스를 획득하는 단계;
    각각의 트랙 상에 펄스를 가지는 위치의 수 Nt, 트랙 상에 펄스를 가지는 위치의 분포, 및 펄스를 가지는 각각의 위치 상의 펄스의 수를 획득하기 위해, 위치에 따라, 각각의 트랙 상에 있으면서 인코딩되어야 하는 펄스에 관한 통계를 별도로 수집하는 단계;
    상기 펄스를 가지면서 각각의 트랙 상에 있는 위치의 수 {N0, N1, ..., NT -1}에 따라, 제1 인덱스 I1을 결정하는 단계;
    상기 펄스를 가지면서 각각의 트랙 상에 있는 위치의 분포에 따라 각각의 트랙의 제2 인덱스 I2t를 별도로 결정하는 단계;
    상기 펄스를 가지면서 각각의 트랙 상에 있는 각각의 위치 상의 펄스의 수에 따라 각각의 트랙의 제3 인덱스 I3t를 별도로 결정하는 단계; 및
    상기 제1 인덱스와 각각의 트랙의 제2 및 제3 인덱스의 정보를 포함하는 코드 인덱스 Ind를 생성하는 단계
    를 포함하며,
    상기 T는 2보다 크거나 같은 정수이고,
    상기 첨자 t는 t번째 트랙을 나타내며, t∈[0,T-1]이며,
    상기 제1 인덱스 I1은 펄스를 가지는 위치의 수 하에서, 상기 펄스를 가지면서 각각의 트랙 상에 있는 위치의 모든 가능한 분포 상황에 대응하며, 상기 펄스를 가지는 위치의 수는 상기 제1 인덱스 I1에 의해 나타내어지며,
    상기 제2 인덱스는 상기 제1 인덱스 I1에 대응하는 모든 가능한 분포 상황 중, 대응하는 트랙 상에 펄스를 가지는 현재 위치의 분포에 대응하는 분포 상황을 나타내는, 펄스 인코딩 방법.
  2. 제1항에 있어서,
    상기 위치에 따라, 각각의 트랙 상에 있으면서 인코딩되어야 하는 펄스에 관한 통계를 별도로 수집하는 단계 동안, 상기 펄스를 가지면서 각각의 트랙 상에 있는 각각의 위치의 펄스 심벌의 포지티브 또는 네거티브 특징에 따라, 상기 펄스를 가지면서 각각의 트랙 상에 있는 각각의 위치의 펄스 심벌 정보가 획득되며,
    상기 코드 인덱스는 상기 펄스를 가지면서 각각의 트랙 상에 있는 각각의 위치에 대응하는 심벌 인덱스의 정보를 더 포함하며,
    상기 심벌 인덱스는 펄스를 가지면서 상기 코드 인덱스에 대응하는 위치를 지닌 펄스 심벌 정보를 나타내는, 펄스 인코딩 방법.
  3. 제1항 또는 제2항에 있어서,
    하나의 제1 인덱스는 하나의 {N0, N1, ..., NT -1} 조합에 대응하거나, 또는
    적어도 하나의 제1 인덱스는 2 이상의 {N0, N1, ..., NT -1} 조합에 대응하며;
    1이 아닌 Nt 값이 상기 제1 인덱스에 대응하는 트랙에 있어서, 상기 트랙의 제2 및 제3 인덱스를 결정하는 단계 외에, 펄스를 가지면서 트랙 상에 있는 현재 위치의 수에 대응하는 부가적인 인덱스가 더 결정되며, 상기 부가적인 인덱스는 상기 펄스를 가지는 위치의 수 하에서, 상기 펄스를 가지면서 트랙 상에 있는 위치의 모든 가능한 분포 상황에 대응하며, 상기 펄스를 가지는 위치의 수는 상기 부가적인 인덱스에 의해 나타내어지며, 상기 코드 인덱스는 상기 부가적인 인덱스의 정보를 더 포함하는, 펄스 인코딩 방법.
  4. 제3항에 있어서,
    상기 코드 인덱스 Ind는 다음의 방식:
    Ind = I1 + Index(0) ×
    Figure pct00020
    + Index(1) ×
    Figure pct00021
    + ... + Index(T - 1)
    을 적용함으로써 생성되며,
    여기서, Imax(t)는 Index(t)의 상한값을 나타내고, "Π"는 곱셈을 나타내며,
    상기 Index(t)는 다음의 방식:
    ① 하나의 Nt 값이 상기 제1 인덱스에 대응하는 트랙에 있어서, 심벌 인덱스가 포함되지 않는 상황:
    Index(t) = I2t + I3t ×
    Figure pct00022

    여기서 "C"는 조합의 수를 획득하는 단계를 나타내고, Mt는 t번째 트랙 상의 위치의 총수를 나타내며;
    ② 1이 아닌 Nt 값이 상기 제1 인덱스에 대응하는 트랙에 있어서, 심벌 인덱스가 포함되지 않는 상황:
    Index(t) = Ift + I2t + I3t ×
    Figure pct00023

    여기서 Ift는 t번째 트랙을 지니고 현재의 Nt 값에 대응하는 부가적인 인덱스를 나타내며;
    ③ 하나의 Nt 값이 상기 제1 인덱스에 대응하는 트랙에 있어서, 심벌 인덱스가 포함되는 상황:
    Index(t) = (I2t + I3t ×
    Figure pct00024
    ) × 2Nt + Ist
    여기서 ISt는 t번째 트랙의 심벌 인덱스를 나타내고, Nt 비트가 존재하며, 각각의 비트의 값은, 펄스를 가지면서 비트에 대응하는 위치를 지니는 펄스 심벌 정보를 나타내며;
    ④ 1이 아닌 Nt 값이 상기 제1 인덱스에 대응하는 트랙에 있어서, 심벌 인덱스가 포함되는 상황:
    Index(t) = Ift + (I2t + I3t ×
    Figure pct00025
    ) × 2Nt + Ist
    을 적용함으로써 생성되는, 펄스 인코딩 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 코드 인덱스 Ind를 생성하는 단계 후에,
    상기 코드 인덱스 Ind와 조정 임계값 THR을 비교하는 단계를 더 포함하며,
    THR≤2Bmax-Imax(T)이며,
    Imax(T)는 상기 코드 인덱스 Ind의 상한값을 나타내고, Bmax는 상기 코드 인덱스를 인코딩하는 데 사용되는 비트의 수의 상한값을 나타내며;
    상기 코드 인덱스 Ind가 THR보다 작으면, 코드 비트의 수가 제1 수인 코드 비트를 채택하여 상기 코드 인덱스 Ind를 인코딩하고; 그렇지 않으면, 코드 비트의 수가 제2 수인 코드 비트를 채택하여 상기 코드 인덱스 Ind와 오프셋 값 THR0을 더한 값을 인코딩하며, 여기서 THR≤THR0≤2Bmax-Imax(T)이며, 상기 제1 수는 상기 제2 수보다 작으며, 상기 제2 수는 Bmax보다 작거나 같고, 상기 제1 수 및 상기 제2 수는 모두 양의 정수인, 펄스 인코딩 방법.
  6. 제5항에 있어서,
    상기 제1 인덱스와 {N0, N1, ..., NT -1} 조합 간의 대응성은, {N0, N1, ..., NT-1} 조합의 발생 확률에 관한 통계를 수집하여, 발생 확률이 더 높은 조합에 대응하는 제1 인덱스를 더 작게 하는 방식을 채택함으로써 결정되는, 펄스 인코딩 방법.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 펄스를 가지면서 각각의 트랙 상에 있는 각각의 위치 상의 펄스의 수에 따라 각각의 트랙의 제3 인덱스 I3t를 별도로 결정하는 단계는,
    t번째 트랙에 있어서, 펄스를 가지는 Nt 위치가 Nt 펄스를 가지는 상황은 Nt 위치가 Nt - Nt 펄스를 가지는 상황에 매핑되는 단계; 및
    설정된 순서에 따라, Nt 상의 Nt - Nt 펄스의 모든 가능한 분포 상황이 배열되고, 배열된 일련 번호를, 펄스를 가지는 위치 상의 펄스의 총수를 나타내는 상기 제3 인덱스 I3t로서 사용하는 단계
    를 포함하며,
    상기 Nt는 t번째 트랙 상에서 인코딩되어야 하는 펄스의 총수를 나타내는, 펄스 인코딩 방법.
  8. 제7항에 있어서,
    상기 각각의 트랙의 제3 인덱스 I3t의 계산식은,
    Figure pct00026

    이며, 여기서, ΔNt = N t - Nt이고, PPT = Nt - 1이며, q(h)는 (h+1)번째 펄스의 위치 일련 번호를 나타내고, h∈[0,ΔNt-1], q(h)∈[0,Nt-1], q(0)≤q(1)≤...≤q(ΔNt-1), 또는 q(0)≥q(1)>≥...≥q(ΔNt-1)이며, Σ는 합을 나타내는, 펄스 인코딩 방법.
  9. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 각각의 트랙의 제2 인덱스 I2t의 계산식은,
    Figure pct00027

    이며, 여기서, pt(n)은 트랙 상에서 펄스를 가지를 n번째 위치의 위치 일련 번호를 나타내고, n∈[0,Nt-1], pt(0)∈[0,Mt-Nt], pt(n)∈[pt(n-1)+1,Mt-Nt+n], pt(0)<pt(1)<...<pt(Nt-1), 또는 pt(0)>pt(1)>...>pt(Nt-1)인, 펄스 인코딩 방법.
  10. 펄스 인코딩 방법에 있어서,
    T 트랙 상에 있으면서 인코딩되어야 하는 펄스를 획득하는 단계;
    각각의 트랙 상에 펄스를 가지는 위치의 수 Nt, 트랙 상에 펄스를 가지는 위치의 분포, 및 펄스를 가지는 각각의 위치 상의 펄스의 수를 획득하기 위해, 위치에 따라, 각각의 트랙 상에 있으면서 인코딩되어야 하는 펄스에 관한 통계를 별도로 수집하는 단계;
    상기 펄스를 가지면서 각각의 트랙 상에 있는 위치의 수에 따라, 각각의 트랙의 제1 인덱스 I1t를 결정하는 단계;
    상기 펄스를 가지면서 각각의 트랙 상에 있는 위치의 분포에 따라 각각의 트랙의 제2 인덱스 I2t를 별도로 결정하는 단계;
    상기 펄스를 가지면서 각각의 트랙 상에 있는 각각의 위치 상의 펄스의 수에 따라 각각의 트랙의 제3 인덱스 I3t를 별도로 결정하는 단계; 및
    상기 각각의 트랙의 제1, 제2, 및 제3 인덱스의 정보를 포함하는 코드 인덱스 Ind를 생성하는 단계
    를 포함하며,
    상기 T는 2보다 크거나 같은 정수이고,
    상기 첨자 t는 t번째 트랙을 나타내며, t∈[0,T-1]이며,
    상기 제1 인덱스 I1t는 펄스를 가지는 위치의 수 하에서, 상기 펄스를 가지면서 각각의 트랙 상에 있는 위치의 모든 가능한 분포 상황에 대응하며, 상기 펄스를 가지는 위치의 수는 상기 제1 인덱스 I1t에 의해 나타내어지며,
    상기 제2 인덱스는 상기 제1 인덱스에 대응하는 모든 가능한 분포 상황 중, 펄스를 가지는 현재 위치의 분포에 대응하면서 트랙 상에 있는 분포 위치를 나타내는, 펄스 인코딩 방법.
  11. 펄스 디코딩 방법에 있어서,
    코드 인덱스 Ind를 획득하는 단계, 상기 코드 인덱스로부터 제1 인덱스를 추출하는 단계, 및 상기 제1 인덱스에 따라, 펄스를 가지면서 T 트랙의 각각의 트랙 상에 있는 위치의 수 {N0, N1, ..., NT -1}를 결정하는 단계;
    상기 코드 인덱스로부터 각각의 트랙의 제2 인덱스 I2t 및 각각의 트랙의 제3 인덱스 I3t를 추출하는 단계;
    각각의 트랙에 있어서, 상기 제2 인덱스에 따라, 펄스를 가지는 위치의 수 하에서, 상기 트랙 상에 펄스를 가지는 위치의 분포를 결정하는 단계;
    각각의 트랙에 있어서, 상기 제3 인덱스에 따라, 펄스를 가지는 각각의 위치 상의 펄스의 수를 결정하는 단계; 및
    각각의 트랙에 있어서, 상기 트랙 상에 펄스를 가지는 위치의 분포 및 상기 펄스를 가지는 각각의 위치 상의 펄스의 수에 따라, 상기 트랙 상에 펄스 시퀀스를 재구성하는 단계
    를 포함하며,
    상기 Nt의 첨자 t는 t번째 트랙을 나타내며, t∈[0,T-1]이고, 상기 T는 2보다 크거나 같은 정수이며,
    상기 펄스를 가지는 위치의 수는 상기 제1 인덱스에 대응하는, 펄스 디코딩 방법.
  12. 제11항에 있어서,
    상기 코드 인덱스로부터 제1 인덱스를 추출하는 단계는,
    수 개의 설정되어 있는 독립적인 값 범위 중에서 상기 코드 인덱스가 속해 있는 값 범위를 판정하고, 상기 코드 인덱스가 속해 있는 값 범위에 대응하는 시작 값에 따라 상기 제1 인덱스를 결정하는 단계를 채택하는, 펄스 디코딩 방법.
  13. 제11항에 있어서,
    하나의 제1 인덱스는 하나의 {N0, N1, ..., NT -1} 조합에 대응하거나, 또는
    적어도 하나의 제1 인덱스는 2 이상의 {N0, N1, ..., NT -1} 조합에 대응하며;
    1이 아닌 Nt 값이 상기 제1 인덱스에 대응하는 트랙에 있어서, 상기 트랙의 제2 및 제3 인덱스를 추출하는 단계 외에, 펄스를 가지면서 트랙 상에 있는 현재 위치의 수에 대응하는 부가적인 인덱스가 더 추출되며, 상기 부가적인 인덱스는 상기 펄스를 가지는 위치의 수 하에서, 상기 펄스를 가지면서 트랙 상에 있는 위치의 모든 가능한 분포 상황에 대응하며, 상기 펄스를 가지는 위치의 수는 상기 부가적인 인덱스에 의해 나타내어지는, 펄스 디코딩 방법.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 코드 인덱스 Ind를 획득하는 단계는,
    인코딩된 코드 스트림으로부터 코드 비트의 수가 제1 수인 코드 비트를 추출하는 단계;
    상기 코드 비트의 수가 제1 수인 코드 비트의 디코딩된 값이 조정 임계값 THR보다 작으면, 상기 코드 비트의 수가 제1 수인 코드 비트의 디코딩된 값을 코드 인덱스 Ind로서 사용하는 단계; 및
    그렇지 않으면, 상기 추출된 코드 비트의 수를 상기 제2 수로 증가시키고, 상기 코드 비트의 수가 제2 수인 코드 비트의 디코딩된 값으로부터 오프셋 값 THR0를 감산시킴으로써 획득된 값을 코드 인덱스 Ind로서 사용하는 단계
    를 포함하는, 펄스 디코딩 방법.
  15. 펄스 디코딩 방법에 있어서,
    코드 인덱스 Ind를 획득하는 단계, 상기 코드 인덱스로부터 각각의 트랙의 제1 인덱스 I1t를 추출하는 단계, 및 각각의 트랙에 있어서, 상기 제1 인덱스에 따라, 펄스를 가지는 위치의 수 Nt를 결정하는 단계;
    상기 코드 인덱스로부터 각각의 트랙의 제2 인덱스 I2t 및 각각의 트랙의 제3 인덱스 I3t를 추출하는 단계;
    각각의 트랙에 있어서, 상기 제2 인덱스에 따라, 펄스를 가지는 위치의 수 하에서, 상기 트랙 상에 펄스를 가지는 위치의 분포를 결정하는 단계;
    각각의 트랙에 있어서, 상기 제3 인덱스에 따라, 펄스를 가지는 각각의 위치 상의 펄스의 수를 결정하는 단계; 및
    각각의 트랙에 있어서, 상기 트랙 상에 펄스를 가지는 위치의 분포 및 상기 펄스를 가지는 각각의 위치 상의 펄스의 수에 따라, 상기 트랙 상에 펄스 시퀀스를 재구성하는 단계
    를 포함하며,
    상기 첨자 t는 t번째 트랙을 나타내며, t∈[0,T-1]이고, 상기 T는 2보다 크거나 같은 정수이며,
    상기 펄스를 가지는 위치의 수는 상기 제1 인덱스에 대응하는, 펄스 디코딩 방법.
  16. 펄스 인코더에 있어서,
    T 트랙 상에 있으면서 인코딩되어야 하는 펄스를 획득하고, 위치에 따라, 각각의 트랙 상에 있으면서 인코딩되어야 하는 펄스에 관한 통계를 별도로 수집하여, 각각의 트랙 상에 펄스를 가지는 위치의 수 Nt, 트랙 상에 펄스를 가지는 위치의 분포, 및 펄스를 가지는 각각의 위치 상의 펄스의 수를 획득하도록 구성되어 있고, 상기 T는 2보다 크거나 같은 정수이고, 상기 첨자 t는 t번째 트랙을 나타내며, t∈[0,T-1]인, 펄스 통계 유닛;
    제1 인덱스 유닛, 제2 인덱스 유닛 및 제3 인덱스 유닛을 포함하는 인덱스 계산 유닛으로서, 상기 제1 인덱스 유닛은 펄스를 가지면서 각각의 트랙 상에 있는 위치의 수 {N0, N1, ..., NT -1}에 따라, 제1 인덱스 I1을 출력하도록 구성되어 있으며, 여기서 상기 제1 인덱스 I1은 펄스를 가지는 위치의 수 하에서, 펄스를 가지면서 각각의 트랙 상에 있는 모든 가능한 분포 위치에 대응하며, 펄스를 가지는 위치의 수는 제1 인덱스에 의해 나타내어지며, 상기 제2 인덱스 유닛은 펄스를 가지면서 각각의 트랙 상에 있는 위치의 분포에 따라 각각의 트랙의 제2 인덱스 I2t를 별도로 출력하도록 구성되어 있으며, 여기서 제2 인덱스는, 상기 제1 인덱스에 대응하는 모든 가능한 분포 위치 중, 대응하는 트랙 상에 펄스를 가지는 현재 위치의 분포에 대응하는 분포 위치를 나타내며, 상기 제3 인덱스 유닛은 펄스를 가지면서 상기 트랙 상에 있는 각각의 위치 상의 펄스의 수에 따라 각각의 트랙의 제3 인덱스 I3t를 별도로 출력하도록 구성되어 있는, 상기 인덱스 계산 유닛; 및
    상기 제1 인덱스 I1과 각각의 트랙의 상기 제2 및 상기 제3 인덱스의 정보를 조합하여 코드 인덱스 Ind를 생성하도록 구성되어 있는 인덱스 조합 유닛
    을 포함하는 펄스 인코더.
  17. 제16항에 있어서,
    적어도 하나의 제1 인덱스는 2 이상의 {N0, N1, ..., NT -1} 조합에 대응하며,
    상기 인덱스 계산 유닛은 부가적인 인덱스 유닛을 더 포함하며,
    상기 부가적인 인덱스 유닛은, 1이 아닌 Nt 값이 상기 제1 인덱스에 대응하는 트랙에 있어서, 상기 펄스를 가지면서 트랙 상에 있는 현재 위치의 수에 대응하는 부가적인 인덱스를 결정하도록 구성되어 있으며,
    상기 부가적인 인덱스는 상기 펄스를 가지는 위치의 수 하에서, 상기 펄스를 가지면서 트랙 상에 있는 위치의 모든 가능한 분포 상황에 대응하며, 상기 펄스를 가지는 위치의 수는 상기 부가적인 인덱스에 의해 나타내어지며,
    상기 인덱스 조합 유닛은 상기 부가적인 인덱스의 정보를 상기 코드 인덱스에 추가로 조합하는, 펄스 인코더.
  18. 제16항 또는 제17항에 있어서,
    상기 인덱스 조합 유닛이 상기 코드 인덱스를 생성한 후, 상기 코드 인덱스 Ind와 조정 임계값 THR을 비교하도록 구성되어 있는 코드 비트 조정 유닛을 더 포함하며,
    여기서, THR ≤ 2Bmax-Imax(T)이며,
    Imax(T)는 상기 코드 인덱스 Ind의 상한값을 나타내고, Bmax는 상기 코드 인덱스를 인코딩하는 데 사용되는 비트의 수의 상한값을 나타내며,
    상기 코드 인덱스 Ind가 THR보다 작으면, 코드 비트의 수가 제1 수인 코드 비트를 채택하여 Ind를 인코딩하고; 그렇지 않으면, 코드 비트의 수가 제2 수인 코드 비트를 채택하여 상기 코드 인덱스 Ind와 오프셋 값 THR0을 더한 값을 인코딩하며, 여기서 THR≤THR0≤2Bmax-Imax(T)이며, 상기 제1 수는 상기 제2 수보다 작으며, 상기 제2 수는 Bmax보다 작거나 같고, 상기 제1 수 및 상기 제2 수는 모두 양의 정수인, 펄스 인코더.
  19. 펄스 디코더에 있어서,
    코드 인덱스 Ind를 획득하고, 상기 코드 인덱스 Ind로부터 제1 인덱스를 추출하며, 상기 제1 인덱스에 따라, 펄스를 가지면서 T 트랙의 각각의 트랙 상에 있는 위치의 수 {N0, N1, ..., NT -1}를 결정하도록 구성되어 있고, 상기 Nt의 첨자 t는 t번째 트랙을 나타내며, t∈[0,T-1]이며, 상기 T는 2보다 크거나 같은 정수인, 제1 추출 유닛;
    상기 코드 인덱스로부터 각각의 트랙의 제2 인덱스 I2t 및 각각의 트랙의 제3 인덱스 I3t를 추출하도록 구성되어 있는 제2 추출 유닛;
    각각의 트랙에 있어서, 상기 제2 인덱스에 따라, 펄스를 가지는 위치의 수 하에서, 상기 트랙 상에 펄스를 가지는 위치의 분포를 결정하도록 구성되어 있으며, 상기 펄스를 가지는 위치의 수는 상기 제1 인덱스에 대응하는, 제1 디코딩 유닛;
    각각의 트랙에 있어서, 상기 제3 인덱스에 따라, 펄스를 가지는 각각의 위치 상의 펄스의 수를 결정하도록 구성되어 있는 제2 디코딩 유닛; 및
    각각의 트랙에 있어서, 상기 트랙 상에 펄스를 가지는 위치의 분포 및 펄스를 가지는 각각의 위치 상의 펄스의 수에 따라, 상기 트랙 상에 펄스 시퀀스를 재구성하도록 구성되어 있는 펄스 재구성 유닛
    을 포함하는 펄스 디코더.
  20. 제19항에 있어서,
    적어도 하나의 제1 인덱스는 2 이상의 {N0, N1, ..., NT -1} 조합에 대응하며,
    상기 펄스 디코더는,
    1이 아닌 Nt 값이 상기 제1 인덱스에 대응하는 트랙에 있어서, 펄스를 가지면서 트랙 상에 있는 현재 위치의 수에 대응하는 부가적인 인덱스를 추출하도록 구성되어 있으며, 상기 부가적인 인덱스는 상기 펄스를 가지는 위치의 수 하에서, 상기 펄스를 가지면서 트랙 상에 있는 위치의 모든 가능한 분포 상황에 대응하며, 상기 펄스를 가지는 위치의 수는 상기 부가적인 인덱스에 의해 나타내어지는, 부가적인 추출 유닛
    을 더 포함하며,
    상기 제2 추출 유닛은, 펄스를 가지면서 대응하는 트랙 상에 있는 현재 위치의 수에 따라 트랙의 제2 인덱스 I2t 및 트랙의 제3 인덱스 I3t를 추출하며, 상기 펄스를 가지면서 대응하는 트랙 상에 있는 현재 위치의 수는 상기 부가적인 추출 유닛에 의해 추출된 상기 부가적인 인덱스에 의해 결정되는, 펄스 디코더.
  21. 제19항 또는 제20항에 있어서,
    인코딩된 코드 스트림으로부터 코드 비트의 수가 제1 수인 코드 비트를 추출하고, 코드 비트의 수가 제1 수인 코드 비트의 디코딩된 값이 조정 임계값 THR보다 작으면, 상기 코드 비트의 수가 제1 수인 코드 비트의 디코딩된 값을 출력을 위한 코드 인덱스 Ind로서 사용하고; 그렇지 않으면, 상기 추출된 코드 비트의 수를 상기 제2 수로 증가시키고, 상기 코드 비트의 수가 제2 수인 코드 비트의 디코딩된 값으로부터 오프셋 값 THR0를 감산시킴으로써 획득된 값을 출력을 위한 코드 인덱스 Ind로서 사용하도록 구성되어 있는 디코딩 비트 조정 유닛
    을 더 포함하는 펄스 디코더.
KR1020137002001A 2010-06-24 2011-05-31 펄스 인코딩 및 디코딩 방법 및 펄스 코덱 KR101384574B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201010213451.5 2010-06-24
CN201010213451.5A CN102299760B (zh) 2010-06-24 2010-06-24 脉冲编解码方法及脉冲编解码器
PCT/CN2011/074999 WO2011160537A1 (zh) 2010-06-24 2011-05-31 脉冲编解码方法及脉冲编解码器

Publications (2)

Publication Number Publication Date
KR20130023373A true KR20130023373A (ko) 2013-03-07
KR101384574B1 KR101384574B1 (ko) 2014-04-11

Family

ID=45359953

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137002001A KR101384574B1 (ko) 2010-06-24 2011-05-31 펄스 인코딩 및 디코딩 방법 및 펄스 코덱

Country Status (9)

Country Link
US (5) US9020814B2 (ko)
EP (1) EP2587480B1 (ko)
JP (3) JP5785255B2 (ko)
KR (1) KR101384574B1 (ko)
CN (1) CN102299760B (ko)
AU (1) AU2011269502B2 (ko)
ES (1) ES2764832T3 (ko)
PT (1) PT2587480T (ko)
WO (1) WO2011160537A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9404826B2 (en) 2011-01-26 2016-08-02 Huawei Technologies Co., Ltd. Vector joint encoding/decoding method and vector joint encoder/decoder

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103886862B (zh) * 2010-06-24 2018-09-28 华为技术有限公司 脉冲编解码方法及脉冲编解码器
JP5981909B2 (ja) * 2011-06-15 2016-08-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America パルス位置探索装置、符号帳探索装置、及びこれらの方法
US9620136B2 (en) 2014-08-15 2017-04-11 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
CN105007094B (zh) * 2015-07-16 2017-05-31 北京中宸泓昌科技有限公司 一种指数对扩频编码解码方法

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631521A (en) * 1984-12-31 1986-12-23 Wang Laboratories, Inc. Method and apparatus for differential run-length coding
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
JP3350385B2 (ja) 1997-01-24 2002-11-25 京セラ株式会社 符号生成方法および符号化方法
JP2943983B1 (ja) 1998-04-13 1999-08-30 日本電信電話株式会社 音響信号の符号化方法、復号方法、そのプログラム記録媒体、およびこれに用いる符号帳
JP4008607B2 (ja) 1999-01-22 2007-11-14 株式会社東芝 音声符号化/復号化方法
US6236960B1 (en) 1999-08-06 2001-05-22 Motorola, Inc. Factorial packing method and apparatus for information coding
US7363219B2 (en) 2000-09-22 2008-04-22 Texas Instruments Incorporated Hybrid speech coding and system
US6847929B2 (en) * 2000-10-12 2005-01-25 Texas Instruments Incorporated Algebraic codebook system and method
CA2327041A1 (en) 2000-11-22 2002-05-22 Voiceage Corporation A method for indexing pulse positions and signs in algebraic codebooks for efficient coding of wideband signals
JP2002330075A (ja) * 2001-05-07 2002-11-15 Matsushita Electric Ind Co Ltd サブバンドadpcm符号化方法、復号方法、サブバンドadpcm符号化装置、復号装置およびワイヤレスマイクロホン送信システム、受信システム
US6662154B2 (en) 2001-12-12 2003-12-09 Motorola, Inc. Method and system for information signal coding using combinatorial and huffman codes
JP2004120623A (ja) 2002-09-27 2004-04-15 Ntt Docomo Inc 符号化装置、符号化方法、復号装置及び復号方法
WO2004034379A2 (en) * 2002-10-11 2004-04-22 Nokia Corporation Methods and devices for source controlled variable bit-rate wideband speech coding
KR100463419B1 (ko) * 2002-11-11 2004-12-23 한국전자통신연구원 적은 복잡도를 가진 고정 코드북 검색방법 및 장치
JP3887598B2 (ja) * 2002-11-14 2007-02-28 松下電器産業株式会社 確率的符号帳の音源の符号化方法及び復号化方法
JP2005062453A (ja) 2003-08-12 2005-03-10 Nippon Telegr & Teleph Corp <Ntt> 秘話送信装置、秘話受信装置、秘話プログラム
FR2867648A1 (fr) 2003-12-10 2005-09-16 France Telecom Transcodage entre indices de dictionnaires multi-impulsionnels utilises en codage en compression de signaux numeriques
KR100656788B1 (ko) 2004-11-26 2006-12-12 한국전자통신연구원 비트율 신축성을 갖는 코드벡터 생성 방법 및 그를 이용한 광대역 보코더
CN100412948C (zh) 2005-01-27 2008-08-20 广达电脑股份有限公司 语音编码器中搜寻语音讯号的编码向量的搜寻系统及方法
WO2006085586A1 (ja) * 2005-02-10 2006-08-17 Matsushita Electric Industrial Co., Ltd. 音声符号化におけるパルス割当方法
ATE513290T1 (de) * 2005-03-09 2011-07-15 Ericsson Telefon Ab L M Wenig komplexe codeerregte linearprädiktions- codierung
US20070124381A1 (en) 2005-11-22 2007-05-31 Zurko Mary E Method and system for providing electronic pickup meetings
LV13528B (en) 2006-09-25 2007-03-20 Ervins Blumbergs Method and apparatus for continuous producing of metallic tifanium and titanium-bases alloys
CN101388210B (zh) 2007-09-15 2012-03-07 华为技术有限公司 编解码方法及编解码器
ES2529292T3 (es) * 2007-04-29 2015-02-18 Huawei Technologies Co., Ltd. Método de codificación y de decodificación
CN101295506B (zh) * 2007-04-29 2011-11-16 华为技术有限公司 脉冲编解码方法及脉冲编解码器
CN100530357C (zh) * 2007-07-11 2009-08-19 华为技术有限公司 固定码书搜索方法及搜索器
US8566106B2 (en) * 2007-09-11 2013-10-22 Voiceage Corporation Method and device for fast algebraic codebook search in speech and audio coding
US20110026581A1 (en) * 2007-10-16 2011-02-03 Nokia Corporation Scalable Coding with Partial Eror Protection
US8527265B2 (en) * 2007-10-22 2013-09-03 Qualcomm Incorporated Low-complexity encoding/decoding of quantized MDCT spectrum in scalable speech and audio codecs
US8515767B2 (en) * 2007-11-04 2013-08-20 Qualcomm Incorporated Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs
CN100578619C (zh) 2007-11-05 2010-01-06 华为技术有限公司 编码方法和编码器
CN101483043A (zh) * 2008-01-07 2009-07-15 中兴通讯股份有限公司 基于分类和排列组合的码本索引编码方法
WO2009116280A1 (ja) * 2008-03-19 2009-09-24 パナソニック株式会社 ステレオ信号符号化装置、ステレオ信号復号装置およびこれらの方法
CN101931414B (zh) 2009-06-19 2013-04-24 华为技术有限公司 脉冲编码方法及装置、脉冲解码方法及装置
US8280729B2 (en) * 2010-01-22 2012-10-02 Research In Motion Limited System and method for encoding and decoding pulse indices

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9404826B2 (en) 2011-01-26 2016-08-02 Huawei Technologies Co., Ltd. Vector joint encoding/decoding method and vector joint encoder/decoder
US9704498B2 (en) 2011-01-26 2017-07-11 Huawei Technologies Co., Ltd. Vector joint encoding/decoding method and vector joint encoder/decoder
US9881626B2 (en) 2011-01-26 2018-01-30 Huawei Technologies Co., Ltd. Vector joint encoding/decoding method and vector joint encoder/decoder
US10089995B2 (en) 2011-01-26 2018-10-02 Huawei Technologies Co., Ltd. Vector joint encoding/decoding method and vector joint encoder/decoder

Also Published As

Publication number Publication date
AU2011269502B2 (en) 2015-01-15
US9858938B2 (en) 2018-01-02
US8959018B2 (en) 2015-02-17
AU2011269502A1 (en) 2013-02-07
ES2764832T3 (es) 2020-06-04
EP2587480A4 (en) 2013-12-25
WO2011160537A1 (zh) 2011-12-29
US20170053657A1 (en) 2017-02-23
US9508348B2 (en) 2016-11-29
PT2587480T (pt) 2019-11-20
JP6042949B2 (ja) 2016-12-14
JP6301431B2 (ja) 2018-03-28
JP5785255B2 (ja) 2015-09-24
US20130124199A1 (en) 2013-05-16
EP2587480A1 (en) 2013-05-01
US20180190304A1 (en) 2018-07-05
CN102299760A (zh) 2011-12-28
US10446164B2 (en) 2019-10-15
US9020814B2 (en) 2015-04-28
JP2017068273A (ja) 2017-04-06
KR101384574B1 (ko) 2014-04-11
CN102299760B (zh) 2014-03-12
US20150081284A1 (en) 2015-03-19
US20140122066A1 (en) 2014-05-01
JP2015215630A (ja) 2015-12-03
JP2013533505A (ja) 2013-08-22
EP2587480B1 (en) 2019-10-16

Similar Documents

Publication Publication Date Title
KR101384574B1 (ko) 펄스 인코딩 및 디코딩 방법 및 펄스 코덱
US8988256B2 (en) Coding method, decoding method, coder, and decoder
US10089995B2 (en) Vector joint encoding/decoding method and vector joint encoder/decoder
CN103886862B (zh) 脉冲编解码方法及脉冲编解码器
AU2015201436B2 (en) Pulse encoding and decoding method and pulse codec

Legal Events

Date Code Title Description
A201 Request for examination
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: 20170322

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180316

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190319

Year of fee payment: 6