이하에서, 첨부된 도면들을 참조하여 본 발명에 따른 향상 계층 부호화/복호화 장치 및 그 방법과 본 발명에 따른 향상 계층 부호화/복호화가 적용된 부호화기 및 복호화기에 대해서 상세히 설명한다.
도 1은 G.711 코덱의 음질 향상을 위한 부호화기 및 복호화기의 일 예를 도시한 도면이다.
도 1을 참조하면, 부호화기(100)는 입력버퍼(105), G.711 부호화부(110), 향상계층 부호화부(115) 및 다중화부(120)를 포함하고, 복호화기(150)는 역다중화부(155), G.711 복호화부(160), 향상계층 복호화부(165), 신호 합성부(170) 및 출력버퍼(175)를 포함한다. 부호화기(100)는 복호화기(150)는 통신 채널(140)을 통해 연결된다.
먼저, 부호화기(100)에 대해서 살펴본다.
입력버퍼(105)는 입력 신호를 블록 단위(이하, 프레임이라고 함)로 처리하기 위하여 입력 신호를 정해진 길이만큼 저장한다. 예를 들어, 8KHz 샘플링에서 5ms의 간격으로 입력신호를 처리하고자 하는 경우, 입력버퍼(105)는 40 샘플(=8KHz * 5ms)로 구성된 프레임을 저장한다. G.711 부호화부(110)는 종래 G.711 코덱에 따라 입력 버퍼(105)에 저장된 프레임을 부호화하여 생성한 비트 스트림을 출력한다. G.711 코덱은 ITU-T에서 정의된 표준 방식이므로 여기서 이에 대한 상세한 설명은 생략한다. 향상 계층 부호화부(115)는 G.711 부호화부(110)에 의해 표현되지 못하는 양자화 오류를 추가로 할당된 비트들을 이용하여 다시 양자화하여 출력한다. 다중화부(120)는 G.711 부호화부(110)에서 부호화되어 출력되는 비트 스트림(이하, G.711 비트 스트림)과 향상 계층 부호화부(115)에서 부호화되어 출력되는 비트 스트림(이하, 향상 비트 스트림)을 다중화한다. 다중화된 비트스트림은 임의의 통신 채널(140)을 통해 복호화기(150)로 전달된다.
다음으로, 복호화기(150)에 대해서 살펴본다.
역다중화부(155)는 통신 채널(140)을 통해 부호화기(100)로부터 수신한 비트 스트림을 G.711 비트 스트림과 향상 비트 스트림으로 역다중화한다. G.711 복호화부(160)는 G.711 코덱을 이용하여 G.711 비트 스트림을 복호화한다. 향상 계층 복호화부(165)는 향상 비트 스트림을 향상 계층 부호화부(115)와 대칭되는 방법을 통해 복호화한다. 신호 합성부(170)는 G.711 복호화부(160)에서 복호화되어 출력되는 신호(이하, G.711 복호화 신호)와 향상 계층 복호화부(165)에서 복호화되어 출력되는 신호(이하, 향상 계층 복호화 신호)를 더한다. 출력 버퍼(175)는 신호 합성부(170)에서 출력되는 복호화 신호를 저장하고, 저장된 신호를 프레임 단위로 출력한다.
도 2는 종래 G.711 코덱의 로그 PCM 코덱이 적용된 부호화기의 입력 및 출력 비트 스트림의 일 예를 도시한 도면이고, 도 3은 본 발명에 따른 향상 계층 부호화 가 적용된 부호화기의 입력 및 출력 비트 스트림의 일 예를 도시한 도면이다.
도 2를 참조하면, 종래 G.711 코덱에 의한 부호화는 16 비트 샘플(200)을 입력받아 8비트 샘플(250)로 압축하여 출력한다. 출력되는 8비트 샘플(250)은 1 비트의 부호 정보(260), 3 비트의 지수 정보(270), 4 비트의 가수 정보(280)로 구성된다. 지수 정보(270)는 압신기(compander) 세그먼트를 가리키고, 가수 정보(280)는 지수 정보가 가리키는 세그먼트 내의 특정 위치를 나타낸다.
도 3을 참조하면, 본 발명에 따른 향상 계층 부호화가 적용되는 경우, 출력되는 8비트 샘플(350)은 도 2에 도시된 종래 G.711 코덱에 의한 8비트의 비트 스트림에 추가 가수 정보(390)를 나타내는 비트들을 더 포함한다. 추가 가수 정보(390)는 지수 정보(370)가 가리키는 세그먼트 내에서 원래 가수 정보(380)가 가리키는 위치를 더욱 세분화하여 G.711 코덱의 양자화 오차를 줄인다.
G.711 코덱에서 전송속도가 16Kbit/s이고 프레임의 크기가 5ms인 경우, 한 프레임 내에서 G.711 코덱에 의해 사용되는 비트들 이외에 가용한 총 비트 수는 80비트이다. 즉, 프레임이 총 40 샘플로 구성된 경우 각 샘플마다 2 비트씩 추가 비트의 할당이 가능하다. 입력 신호의 크기에 따라 G.711 코덱의 양자화 오류가 상이하므로, 각 샘플마다 동일한 비트 수의 추가 가수 정보를 할당하는 것보다 신호의 크기에 따라 각 샘플에게 추가 가수 정보의 비트 수를 유동적으로 할당하는 것이 바람직하다.
각 샘플에 3 비트의 추가 가수 정보를 할당하는 경우, 샘플에 할당된 총 비트 수는 120 비트(40 샘플 * 3 비트)이므로 프레임에서 가용한 총 비트 수인 80비 트를 초과하므로 각 샘플에 할당되는 추가 가수 정보의 비트 수를 줄여야 한다. 즉, 각 샘플의 지수 정보의 크기를 기초로 각 샘플에게 0~3 비트의 추가 가수 정보가 할당된다. 샘플에 추가 가능한 추가 가수 정보의 최대 비트 수는 실시 예에 따라 3비트 또는 그 이상 및 이하의 비트 수를 설정할 수 있음은 물론이다.
도 4a 및 도 4b는 본 발명에 따라, 입력 신호의 크기를 고려하여 프레임의 각 샘플에게 추가 가수 정보의 비트 수를 유동적으로 할당하기 위한 지수 맵(map)의 일 예를 도시한 도면이다.
도 4a를 참조하면, 지수 맵은 각 샘플의 지수 정보로부터 얻어지는 추가 가수 정보의 지수 인덱스들을 행으로 설정하고, 각 샘플을 나타내는 샘플 인덱스를 열로 설정한 배열이다. 예를 들어, 40 샘플로 이루어진 프레임에서 각 샘플당 최대 3 비트의 추가 가수 정보가 할당되는 경우 지수 맵은 10×40 배열이 된다.
구체적으로, 각 샘플의 지수 인덱스는 그 샘플의 지수 정보의 크기에 비례하고 순차적이며, 추가 가수 정보의 비트 수와 동일한 개수의 값들로 구성된다. 즉, 지수 인덱스는 각 샘플의 지수 정보의 크기 값부터 1씩 증가하여 추가 지수 정보의 비트들에 할당되는 값이다. 예를 들어, 어떤 샘플의 지수 정보의 비트 열이 "000"이면, 그 샘플의 지수 인덱스는 0(지수 정보의 크기+0),1(지수 정보의 크기 +1),2(지수 정보의 크기+2)가 된다. 또 다른 예로서, 지수 정보의 크기가 7(비트열:111)이면, 지수 인덱스는 7(지수 정보의 크기+0),8(지수 정보의 크기+1),9(지수 정보의 크기+2)가 된다. 따라서, 각 샘플의 추가 지수 정보에 대한 지수 인덱스는 0~9 사이에 존재한다.
지수 맵의 각 원소는 0으로 초기화되며, 각 샘플의 지수 인덱스에 해당하는 위치의 원소는 그 샘플의 인덱스를 저장한다. 즉, (지수 인덱스, 샘플 인덱스)=샘플 인덱스이다. 예를 들어, 프레임의 두 번째 샘플의 지수 정보가 "011"이면, 그 샘플의 지수 인덱스는 3,4,5이므로, (3,1)=2, (4,1)=2, (5,1)=2의 값을 가지며 그 샘플에 해당하는 나머지 원소들은 초기화된 0의 값을 그대로 가진다.
이와 같은 방법으로 각 샘플의 지수 인덱스를 구한 후, 그 지수 인덱스에 해당하는 원소에 샘플 인덱스를 저장하여 지수 맵을 완성한다. 지수 맵을 기초로, 각 샘플당 할당되는 추가 비트의 수를 나타내는 비트할당 테이블을 생성한다. 즉, 지수 인덱스의 가장 큰 값(즉, 9)부터 지수 인덱스를 1씩 낮추어 가면서 그 지수 인덱스에 해당하는 샘플들에게 1비트씩 할당한다. 비트 할당 과정은 샘플들에게 할당된 총 비트 수가 프레임 내 가용한 총 비트 수와 같을 때까지 수행한다. 비트할당 테이블의 생성에 대해서는 도 5를 참조하여 상세히 설명한다.
도 4b를 참조하면, 지수 맵은 각 샘플의 지수 정보로부터 얻어지는 추가 가수 정보의 지수 인덱스들을 행으로 설정하고, 각 샘플에 할당된 동일 지수 인덱스들의 수를 열로 설정한 배열이다. 지수 맵의 각 원소는 각 샘플을 가리키는 샘플 인덱스를 포함한다.
예를 들어, 40 샘플로 이루어진 프레임에서 각 샘플당 최대 3비트의 추가 가수 정보가 할당되는 경우에, 40 샘플 모두가 동일한 지수 인덱스를 포함할 수 있으므로 지수 맵의 열의 개수는 40(0~39)개며, 지수 맵은 10×40 배열이 된다.
n 번째 샘플에 대한 지수 맵을 작성하는 방법을 살펴본다.
먼저, n 번째 샘플의 추가 가수 정보에 대한 지수 인덱스를 지수 정보의 크기를 기초로 구한다. 즉, n 번째 샘플의 지수 인덱스= 지수 정보의 크기 + j (j=0,1,2)이다.
n 번째 샘플에 대한 3개의 지수 인덱스가 구해지면, 구해진 지수인덱스와 현재까지 그 지수 인덱스를 가지는 샘플들의 수를 각각 행렬로 하는 지수 맵의 해당위치의 원소에 n 번째 샘플의 인덱스를 저장한다. 즉, (지수 인덱스, 그 지수 인덱스를 가지는 샘플들의 수)=n 번째 샘플의 인덱스이다. 그리고 그 지수 인덱스를 가지는 샘플들의 수를 1 증가시킨다.
예를 들어, 프레임의 0번째 샘플의 지수 정보가 "110"이면, 그 샘플의 지수 인덱스는 6,7,8이므로, (6,0)=0, (7,0)=0, (8,0)=0이 되고, 지수 인덱스 6,7,8을 가지는 샘플들의 수는 각각 1,1,1이 된다. 다음으로 프레임의 1번째 샘플의 지수 정보가 "100"이면, 그 샘플의 지수 인덱스는 4,5,6이므로, (4,0)=1, (5,0)=1, (6,1)=1이 된다. (6,1)=1이 된 이유는 지수 인덱스 6이 할당된 샘플의 수가 이전에 벌써 1이기 때문이다. 따라서, 현재까지 지수 인덱스 4,5,6,7,8에 할당된 샘플들의 수는 각각 1,1,2,1,1이 된다. 이와 같은 방식으로 모든 샘플들에 대한 지수 맵을 완성하면, 각 지수 인덱스에 해당하는 샘플들의 개수 및 샘플들의 인덱스 정보를 알 수 있다.
도 5는 본 발명에 따른 비트할당 테이블의 생성 방법의 일 예를 도시한 흐름도이다.
도 5를 참조하면, 본 발명에 따른 향상 계층 부호화기는, 각 샘플당 최대 추 가 가능 비트 수가 3비트이고 프레임당 총 가용 비트 수가 80비트라고 가정할 때, 각 샘플의 지수 정보를 기초로 각 샘플당 0~3비트 크기의 추가 가수 정보를 출력한다.
구체적으로, 향상 계층 부호화기는 비트할당 테이블의 모든 원소를 0으로 초기화하고, 현 프레임에서 가용한 총 비트수를 설정하고, 지수 인덱스의 최대 값을 현 지수 인덱스로 설정한다(S500). 도 4에 도시된 지수 맵을 참조하여, 향상 계층 부호화기는 각 지수 인덱스의 행에 존재하는 샘플들의 수를 계산한다(S510). 예를 들어, 도 4에 도시된 지수 맵에서 지수 인덱스 8에 해당하는 샘플은 두 개(샘플 인덱스:0,39)가 존재한다.
향상 계층 부호화기는 현 지수 인덱스의 행에 존재하는 샘플들의 수와 현재 프레임에서 가용한 비트 수를 비교하여 작은 수를 이용가능한 비트 수로 설정하고(S520), 이용가능한 비트 수만큼 현 지수 인덱스의 행에 존재하는 각 샘플들에게 1비트씩 할당한다(S530). 그리고 향상 계층 부호화기는 현 가용 비트수에서 이용가능한 비트 수를 차감한 값을 새로운 가용 비트수로 설정한다(S540).
향상 계층 부호화기는 새롭게 설정된 가용 비트수가 0이면 종료하고(S550), 0이 아니면 현 지수 인덱스에서 1 차감한 값을 새로운 지수 인덱스로 설정한 후(S560), 단계 520부터 다시 시작한다.
도 6은 본 발명에 따른 향상 계층 부호화기의 일 실시예의 구성을 도시한 도면이다.
도 6을 참조하면, 향상 계층 부호화기는 지수 맵 생성부(600), 비트할당 테 이블 생성부(610) 및 비트 출력부(620)를 포함한다. 향상 계층 부호화기는 도 1에 도시된 향상 계층 부호화부(115)에 대응된다.
지수 맵 생성부(600)는 각 샘플의 지수 정보의 크기를 기초로 각 샘플당 추가 가수 정보의 지수 인덱스들을 구한 후, 각 샘플당 지수 인덱스를 나타내는 지수 맵을 생성한다. 각 샘플의 지수 정보는 도 1에서 도시된 G.711 부호화부(110)를 통해 알 수 있다. 지수 맵은 도 4에 도시되어 있으므로 여기서 상세한 설명은 생략한다.
비트할당 테이블 생성부(620)는 지수 맵을 참조하여, 지수 인덱스의 최대값부터 낮은 값으로 순차적으로 각 지수 인덱스를 포함하는 샘플들을 찾은 다음 그 샘플들에게 1비트씩 할당한다. 이러한 할당 과정이 완료되면, 각 샘플당 할당된 비트 수를 나타내는 비트할당 테이블을 생성한다. 비트할당 테이블의 생성방법은 도 5를 참조한다.
비트 출력부(630)는 비트할당 테이블을 이용하여 각 샘플의 추가 가수 정보의 비트들 중 각 샘플에 할당된 비트 수만큼의 최상위 비트들을 출력한다. 즉 비트 출력부는 [각 샘플의 추가 가수 정보]/2^[추가 가수 정보의 비트 수 - 각 샘플에 할당된 비트 수]의 값을 출력한다.
도 7은 본 발명에 따른 향상 계층 복호화기의 일 실시예의 구성을 도시한 도면이다.
도 7을 참조하면, 향상 계층 복호화기는 지수 맵 생성부(700), 비트할당 테이블 생성부(710) 및 추가 가수 복호화부(720)를 포함한다. 지수 맵 생성부(700) 및 비트할당 테이블(710)은 도 6에 도시된 지수 맵 생성부(600) 및 비트할당 테이블 생성부(610)와 동일하므로 여기서 이에 대한 상세한 설명은 생략한다.
추가 가수 복호화부(720)는 각 샘플당 할당되는 추가 가수 정보의 비트 수를 기초로 향상 비트 스트림에서 각 샘플의 추가 가수 정보를 추출하여 복호화한다.
도 8은 본 발명에 따른 향상 계층 부호화기의 다른 실시예의 구성을 도시한 도면이다.
도 8을 참조하면, 향상 계층 부호화기는 추가 가수 추출부(800), 비트 할당부(810) 및 비트 출력부(820)로 구성된다.
추가 가수 추출부(800)는 입력 프레임에 대한 G.711 부호화에 의해 얻어지는 지수 정보를 기초로 입력 프레임으로부터 추가 가수 정보를 추출한다. 즉, 추가 가수 추출부(800)는 입력 프레임에 대한 G.711 부호화로부터 얻어진 지수 정보를 기초로, 입력 프레임에서 가수 정보가 되는 영역(3 비트의 가수 정보) 이후의 영역을 추가 가수 정보로 추출한다. 입력 프레임에서 가수 정보까지의 부분을 제외한 나머지 모든 비트가 추가 가수 정보가 될 수 있으나, 본 실시예에서는 추가 가수 정보의 최대 크기를 3 비트로 가정한다. 이 경우 추가 가수 추출부의 동작 과정에 대한 유사 소스 코드는 다음 표와 같이 표현될 수 있다.
for(i=0; i<L; i++) { ext_bits[i]=exp[i]+3; ext_mantissa[i]=x[i] & (2ext _ bits [i]-1); } |
여기서, L은 프레임의 샘플 수, exp[i]는 i 번째 샘플의 지수 정보, ext_bits[i]는 i 번째 샘플의 추가 가수 정보의 비트 수, ext_mantissa[i]는 i 번째 샘플의 추가 가수, x[i]는 i 번째 샘플 값이다. "&"는 각 비트별로 수행하는 논리 AND 동작(bitwise AND operation)을 의미한다.
예를 들어, 2진수로 표현된 입력 샘플 "0000 0001 1010 1001"을 G.711 A-law로 부호화하는 경우, 첫 번째 부호 비트를 제외하고 최초로 "1"의 값이 나타나는 비트 위치를 가리키는 지수 정보는 1, 가수 정보는 1010, 그리고 추가 가수 정보는 최대 3비트를 가정할 때 100이다.
비트 할당부(810)는 각 샘플의 지수 정보 및 가용한 총 비트수를 기초로 각 샘플에게 할당되는 실제 비트 수를 계산한다. 예를 들어, 향상 계층 부호화를 위해 16 Kbits/s가 할당되고 프레임 길이가 5ms인 경우, 프레임당 가용한 총 비트수는 80비트이다. 비트 할당부(810)는 지수 정보를 통해 결정되는 각 샘플의 추가 가수 정보의 중요도를 기반으로 각 샘플당 할당되는 추가 가수 정보의 비트 수를 동적으로 결정하며, 그 중요도는 매 프레임에서 양자화 오류를 최소화하는 것이다. 예를 들어, G.711 코덱에서 양자화 크기(quantizatin step)를 결정하는 각 샘플의 지수 정보로부터 중요도를 결정할 수 있다. 즉, 지수 값이 상대적으로 큰 경우(즉, 양자화 크기가 큰 경우)의 샘플은 양자화 오류가 크므로 가능한 한 많은 추가 비트를 할당하도록 중요도를 높이고, 지수 값이 상대적으로 작은 경우(즉, 양자화 크기가 적은 경우)는 샘플의 양자화 오류가 작으므로 적은 비트가 할당되도록 중요도를 낮춘다.
비트 출력부(820)는 비트 할당부(810)에 의해 각 샘플당 할당된 추가 비트 크기만큼의 추가 가수 정보를 출력한다. 비트 출력부의 동작 과정에 대한 유사 소스 코드는 다음 표와 같이 표현될 수 있다.
for(i=0; i<L; i++) { tx_bit_enh[i]=ext_mantissa[i]>>(ext_bits[i]-bit_alloc[i]); } |
여기서, bit_alloc[i]는 i 번째 샘플에 할당된 비트 수, tx_bit_enh[i]는 i번째 샘플의 부호화된 향상 비트스트림이다. x>>a"는 x를 a 비트만틈 오른쪽으로 이동시키는 동작을 의미한다.
예를 들어, 추가 가수 정보가 "100", 할당된 비트 수가 2이면, 비트 출력부는 부호화된 향상 비트 스트림으로 "10"을 출력한다.
본 실시예에서는 각 샘플당 추가 지수 정보의 최대 비트수를 추출한 후 추출된 추가 지수 정보의 비트들 중 각 샘플당 할당된 비트 수만큼만 출력하는 구성을 개시하였으나, 순서를 바꾸어 먼저 각 샘플당 할당되는 비트 수를 먼저 구한 후 그 비트 수만큼만 각 샘플당 추가 할당 정보를 추출하는 것도 가능하다.
도 9는 본 발명에 따른 향상 계층 부호화 방법의 일 실시예의 흐름을 도시한 도면이다.
도 9를 참조하면, 향상 계층 부호화기는 입력 프레임의 G.711 코덱을 이용한 부호화에서 파악된 지수 정보를 기초로 입력 프레임으로부터 추가 가수 정보의 영역을 추출한다(S900). 추가 가수 정보의 영역은 입력 프레임에서 가수 영역까지의 부분을 제외한 나머지 전 부분이 될 수 있으나, 본 실시예에서는 추가 가수 정보의 최대 크기를 3비트로 가정한다. 따라서 향상 계층 부호화기는 3 비트의 추가 가수 정보만을 추출한다.
향상 계층 부호화기는 G.711 부호화를 통해 얻어진 지수 정수를 이용하여 각 샘플당 추가 가수 정보를 위해 추가 가능한 비트 수를 결정한다(S910). 구체적으로 향상 계층 부호화기는 각 샘플의 추가 가수 정보의 3 비트 각각에 대한 중요도를 그 샘플의 지수 정보의 크기에 비례하는 값으로 설정한다. 예를 들어, 도 4에 도시된 바와 같이 지수 인덱스를 중요도로 이용할 수 있다. 향상 계층 부호화기는 프레임의 샘플들 중에서 가장 큰 중요도를 갖는 샘플들부터 1비트씩 할당하여, 할당된 총 비트 수가 프레임 내 가용한 총 비트수와 같을 때까지 비트 할당을 수행한다.
이러한 과정을 통해 각 샘플당 할당된 비트 수를 구한 후, 향상 계층 부호화기는 처음 추출한 추가 가수 정보의 비트들 중에서 각 샘플당 할당된 비트 수만큼의 최상위 비트들을 출력한다(S920).
도 10은 본 발명에 따른 향상 계층 복호화기의 일 실시예의 구성을 도시한 도면이다.
도 10을 참조하면, 향상 계층 복호화기는 복호화 비트 할당부(1000), 추가 가수 복호화부(1010) 및 향상신호 합성부(102)를 포함한다.
복호화 비트 할당부(1000)는 G.711 복호화를 통해 얻어진 지수 정보 및 프레임 내 가용한 총 비트 수를 이용하여 각 샘플당 추가 가수 정보의 비트 수를 구한다. 복호화 비트 할당부(1000)는 도 7에 도시된 비트 할당부와 동작 과정이 동일하므로 여기서 상세한 설명은 생략한다.
추가 가수 복호화부(1010)는 복호화 비트 할당부(1000)에 의해 파악된 추가 가수 정보의 비트 크기와 지수 정보를 기초로, 향상 비트 스트림으로부터 추가 가수 정보를 복원한다. 즉, 추가 가수 복호화부(1010)는 향상 비트 스트림에서 각 샘플에 할당된 추가 비트 수만큼의 비트들을 추출하여 추가 가수 정보를 복원한다. 추가 가수 정보의 최대 비트수가 3인 경우, 추가 가수 복호화부의 동작 과정은 아래 표의 유사 코드와 같이 표현될 수 있다. 즉, 추가 가수 복호화부는 각 샘플의 지수 정보에 의해서 결정된 최대 추가 가능한 가수 비트 수와 각 샘플에 할당된 추가 비트 수의 차만큼을 0 비트로 채운다.
for(i=0; i<L; i++) { ext_mantissa[i]=rx_bits_enh[i]<<(exp[i]+3 - bit_alloc[i]); } |
여기서, rx_bit_enh[i]는 수신된 i번째 향상 비트 스트림이다.
향상 신호 합성부(1020)는 복원된 추가 가수 정보와 G.711 복호화로부터 얻어진 부호 정보를 이용하여 향상 신호를 복원한다. 향상 신호 합성부의 동작 과정은 아래 표의 유사 코드와 같이 표현될 수 있다. 즉, 부호 정보가 음수를 가리키면 복원된 추가 가수 정보에 음수를 취하고 음수가 아니면 그대로 출력한다.
for(i=0; i<L; i++) { if(sign[i]=음수) sig_enh[i]=-sig_enh[i]; } |
여기서, sign[i]는 i 번째 샘플에 대한 부호 정보로 G.711 복호화로부터 참조된다.
도 11은 본 발명에 따른 향상 계층 복호화 방법의 일 실시예를 도시한 흐름도이다.
도 11을 참조하면, 향상 계층 복호화기는 G.711 복호화부를 통해 얻어진 샘플의 지수 정보 및 프레임 내 가용한 최대 비트 수를 기초로 각 샘플당 할당된 추가 비트 수를 구한다(S1100). 그리고 향상 계층 복호화기는 각 샘플당 할당된 추가 비트 수를 향상 비트 스트림으로부터 추출하고(S1110), 추가 가수 정보를 복원한다(S1120).
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)에 의한 표시의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.