KR20000056661A - 디지털 오디오 데이터의 역방향 디코딩 방법 - Google Patents
디지털 오디오 데이터의 역방향 디코딩 방법 Download PDFInfo
- Publication number
- KR20000056661A KR20000056661A KR1019990006157A KR19990006157A KR20000056661A KR 20000056661 A KR20000056661 A KR 20000056661A KR 1019990006157 A KR1019990006157 A KR 1019990006157A KR 19990006157 A KR19990006157 A KR 19990006157A KR 20000056661 A KR20000056661 A KR 20000056661A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- frame
- decoding
- reverse
- audio data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000002441 reversible effect Effects 0.000 claims abstract description 63
- 230000003111 delayed effect Effects 0.000 claims description 2
- 238000012790 confirmation Methods 0.000 claims 1
- 238000005070 sampling Methods 0.000 abstract description 13
- 230000015572 biosynthetic process Effects 0.000 description 34
- 238000003786 synthesis reaction Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 25
- 238000013139 quantization Methods 0.000 description 17
- 239000008187 granular material Substances 0.000 description 15
- 230000000873 masking effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000007906 compression Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 239000000872 buffer Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 2
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00007—Time or data compression or expansion
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/008—Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires
- G11B5/00813—Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires magnetic tapes
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
본 발명은 디지털 오디오 데이터를 역방향으로 디코딩하는 방법에 관한 것으로서, 순방향 디코딩 알고리즘을 그대로 사용하는 방법과 역방향 디코딩 알고리즘을 개발하여 효율을 높이는 방법이 있으며, 이때 본 발명의 역방향 디코딩 알고리즘은, 압축된 디지털 오디오 데이터의 마지막 프레임 헤더를 확인하는 제 1단계; 상기 확인된 헤더 정보에 근거하여, 해당 프레임을 구성하는 복수의 단위 블록 데이터 전체에 대하여 동시에 역양자화하는 제 2단계; 상기 역양자화된 데이터에 대해, 상기 단위 블록간의 연속성을 유지하면서 주파수 대역별 데이터로 복원하는 제 3단계; 및 상기 복원된 주파수 대역별 데이터를 시간 역순의 오디오 샘플 데이터로 변환출력하는 제 4단계를 포함하여 이루어짐으로써, 알고리즘과 연산량, 메모리 사용량이 순방향 디코딩 방법과 거의 유사하면서도 역방향 디코딩이 가능하며, 디지털로 압축된 오디오 데이터를 테이프 등과 같이 순방향과 역방향 트랙을 갖는 아날로그 매체에 녹음하는 경우 한 방향의 기록으로 두 트랙을 모두 녹음할 수 있도록 하는 매우 유용한 발명인 것이다.
Description
본 발명은 MPEG 오디오 데이터를 아날로그 신호로 역방향으로 디코딩하는 방법에 관한 것으로서, 특히 디지털 오디오 데이터를 테이프 등과 같은 아날로그 매체에 고속으로 녹음시, 메모리 사용량이나 연산량을 크게 증가시키지 않고도 역방향 디코딩하여 아날로그 오디오 신호를 역방향으로 기록가능하게 한 디지털 오디오의 역방향 디코딩 방법에 관한 것이다.
일반적으로 오디오 데이터를 저장함에 있어서, 디지털 방식으로 저장하는 경우에는 기록 매체 간의 복제시 음질의 손실이 없는 것은 물론, 디지털 변환시 효율적인 압축 방식을 이용하면 큰 음질의 손실 없이도 데이터량을 상당히 줄일 수 있기 때문에 데이터의 보관 및 관리가 용이하며, 통신상으로 데이터를 전송할 경우에 효율이 뛰어나는 등 아날로그 방식으로 저장하는 경우에 비해 여러 가지 장점을 지니고 있다.
이와 같은 여러 장점으로 인해, 오디오 데이터를 디지털 데이터로 보다 효율적으로 변환시키기 위한 여러 가지 인코딩 방법이 고안된 바 있으며, 그 중 대표적인 것으로 MPEG(Moving Picture Expert Group) 오디오 규격이 있는바, MPEG 오디오란 고품질??고능률의 스테레오 부호화를 위한 국제표준화기구(ISO)/국제전기기술위원회(IEC)의 표준방식으로서, 종래 압축부호화 방식에 비해 뛰어난 음질을 실현할 수 있어서 MPEG 비디오와 조합되어 고능률의 멀티미디어 정보 압축을 실현할 수 있는 것은 물론, 디지털 음악 방송 등에 단독으로 이용할 수도 있다. 최초 MPEG1부터 시작하여, 점점 증가되고 있는 멀티미디어 데이터 압축 표준에 대한 새로운 필요성으로 인해 MPEG2를 거쳐, 객체지향 멀티미디어 통신을 위한 MPEG4가 발표되었으며, 현재도 계속 연구가 진행 중이다.
처음에 표준화된 MPEG1은 동영상과 오디오를 디지털 저장 장치에 최대 1.5Mbps로 압축??저장하기 위한 코딩 기술로 모두 다섯 부분으로 구성되어 있으며, 이 중 하나인 오디오 부분에는 3가지의 오디오 코딩 기법이 정의되어 있는바, 이를 각각 계층, 즉 레이어(Layer)1, 레이어2, 레이어3라고 부르며, 계층-3(이하 "MP3"라고 함)이 가장 세밀한 알고리즘을 사용하는 반면 압측성능이 우수하고, 계층-1과 계층-2를 개념적으로 포함하고 있으므로(즉, 하향 호환성이 있다), 이하에서는 MP3를 기준으로 아날로그 오디오 데이터의 인코딩 방법에 대해 간략히 설명한다.
MPEG의 오디오 레이어들은 인식 코딩 또는 지각 부호화(Perceptual Coding)이라고 불리우는 압축 코딩 기법을 사용하는데, 이것은 사람의 청감 모델을 분석, 적용한 기법으로서 마스킹(Masking) 효과라고 하는 사람 귀의 둔감함을 이용한 일종의 트릭이라고 할 수 있다.
사람의 귀는 보통 20㎐에서 20㎑의 소리를 들을 수 있는데 이를 가청 주파수라고 하며, 각 주파수 범위마다 청각의 민감성이 달라지며, 특히 2㎑에서 5㎑의 대역에서 가장 민감한 것으로 알려져 있다.
예를 들어 여러 사람이 피아노 연주를 듣는다고 할 때, 연주가가 피아노를 치지 않을 때에는 피아노의 현에서 울리는 여음을 들을 수 있지만 피아노 건반을 다시 치는 순간 사람들은 그 소리를 더 이상 들을 수 없게 된다. 이는 여음이 없어져서가 아니라 그 음이 건반을 칠 때 나는 소리에 비해 작기 때문이다. 즉 큰 음(Masker)이 존재하고 있는 상태에서, 이 음 부근의 일정 범위, 즉 임계대역(Critical Band) 이하의 음은 꽤 레벨이 높은 순음임에도 들리지 않게 되는 것이다. 이러한 원리를 주파수 마스킹 효과라고 하는데, 주파수 대역에 따라 마스킹되는 음의 임계값도 달라지며, 귀에 민감한 부분에서는 마스킹되는 음의 임계값이 작게 되며 둔감한 부분은 큰 마스킹 임계값을 갖게 된다.
마스킹 효과에는 상기 주파수 마스킹과 더불어 시간적(Temporal) 마스킹이 있다. 이는 어떤 큰 소리를 듣고 난 후에 이보다 작은 소리를 들을 수 있기까지 일정한 지연 시간이 있다는 것이다. 예컨대 60㏈의 소리를 5㎳동안 들려준 후 연속해서 40㏈의 소리를 들려줄 경우 약 5㎳ 이후에야 그 소리를 감지할 수 있다. 이와 같은 지연 시간 역시 주파수 대역에 따라 다른 값을 갖게 된다.
MP3는 이러한 사람의 청각 심리 모델을 이용해서, 주파수 대역에 따라 양자화에 의해 발생되는 양자화 잡음을 마스킹 임계값과 지연 시간 내에서 허용토록 하여 오디오 데이타의 비트율을 감소시킴으로써 음질의 손실 없이 압축할 수 있게 한것이다.
이와 같은 MP3 인코딩 방법에 대하여, 일반적인 인코딩 장치의 일부 구성을 개략적으로 도시한 도 1 및 도 2를 참조하여, 각 단계별로 보다 상세히 살펴보면 다음과 같다.
(1) 서브밴드 부호화(Subband Coding) 및 MDCT
임계(critical) 밴드 등의 청각 심리를 보다 효율적으로 이용하기 위해서는 우선 신호를 주파수 성분으로 나누는 것이 중요하며, 이를 위해 먼저 도 1의 필터 뱅크(10)을 이용하여 입력되는 오디오 PCM 샘플의 전대역을 32개의 등간격 주파수 밴드로 나눈 후, 각각의 신호를 원래 샘플링 주파수의 1/32로 서브샘플링해서 부호화한다(대역분할 부호화).
그러나, 통상의 필터로 1/32의 주파수 대역을 취하는 경우 이상적인 필터가 아니기 때문에 서브 샘플링의 시점에서 "에일리어싱(aliasing)", 즉 샘플링 주파수의 1/2 보다 높은 주파수 성분을 제거하지 않고 신호처리했을 때 저주파 신호로 되돌아오는 잡음이 생기게 되므로, 폴리페이즈(Polyphase) 필터뱅크(Filter Bank)라고 하는 필터를 사용하거나, 도 1의 MDCT부(20) 및 에일리어싱 감소부(30)를 사용하여 MDCT(Modified Discret Cosine Transform: 변형 이산 여현 변환)를 수행함으로써, 32 밴드의 에일리어싱 잡음이 서로 소거되어 필터에 의한 열화가 해소되도록 하고 있다.
MDCT는 크리티컬(critical)하게 샘플링된 값에 대한 DCT이므로 어떤 양자화도 행해지지 않았다면 완변하게 원래 신호로 복구 가능하다. 다만, 실제로는 양자화가 행해지므로 각 전송블록 사이에서 불연속성이 생기게 된다.
다시 말해, 오디오 입력은 32개의 필터 뱅크를 통해 32개의 주파수 대역으로 분할된 후, 각 주파수 대역마다 인접한 주파수 대역의 성분에 의한 마스킹 영향을 계산해서 마스킹 임계값 이상의 신호에 대해서만 양자화 비트를 할당하게 되며, 이때 양자화에 의한 잡음이 주어진 주파수 대역에서 마스킹 임계값 이하가 되도록 양자화 비트를 할당하게 되는 것이다.
(2) 스케일링(Scaling)
상기 32개의 서브밴드 내의 샘플 데이터는 파형과 배율로 분리되며, 파형은 최대 진폭이 1.0이 되도록 정규화되고, 그 때의 배율이 스케일 팩터(scale factor)로서 부호화된다. 이 부호화에 의해 큰 신호성분에 대해서도 주파수와 시간 모두 가까운 영역내로 들어오도록 하여 양자화 잡음의 발생을 제한할 수 있기 때문에, 동일한 청각심리 효과가 작용하여 이들 잡음이 감지되지 않게 된다.
(3) 허프만 코딩(Huffman Coding)
허프만 코딩이란 가변장 부호화 또는 엔트로피 부호화라고 불리우는 코딩 방식으로서, 디지털 데이터의 통계적인 특성을 이용하여 비트의 중복을 없애는 리던던시 리덕션(Redundancy Reduction)방식, 즉 부호의 발생확률을 이용하여 발생확률이 높은 값에는 길이가 짧은 부호를 할당하고, 발생확률이 낮은 값에는 길이가 긴 부호를 할당함으로써, 전체 코딩 데이터의 평균 부호 길이를 줄이는 방식이다.
예를 들어, 양자화 처리되어 입력되는 데이터 값이 0,1,2,3, 즉 00,01,10,11 이고, 실험에 의해 각각의 영상데이터 발생확률이 0.6, 0.2, 0.1, 0.1 이였다고 가정할 경우, 발생확률과 무관하게 부호길이를 2비트로 고정할당 한다면 평균부호길이는 (부호길이×할당 비트)/(데이터의 수)이므로 (2×0.6 + 2×0.2 + 2×0.1 + 2×0.1)/4 = 2 (비트) 가 된다.
그러나, 부호길이를 가변시켜, 가장 발생확률이 높은 0 에는 1비트를 할당하고, 다음으로 발생확률이 높은 1에는 2비트를, 그리고 발생확률이 가장 낮은 2와 3에는 3비트의 부호를 할당하면, 가변장 부호화 처리결과에 의한 평균부호길이는 (1×0.6 + 2×0.2 + 3×0.1 + 3×0.1)/4 = 1.6 (비트)이 된다.
따라서, 발생확률에 따라 할당 비트를 서로 상이하게 부여하는 가변장부호화에 의해 얻어진 데이터의 값(길이)이 보다 고압축 처리되는 것이다,
이 외에 MP3에서는 주어진 압축율로는 압축할 수 없는 부분을 위한 비트 리저브와 버퍼링(Bit Reservoir Buffering) 등과 같은 기법을 병행하여 음질 및 압축율을 보다 향상 시키고 있는바, 이러한 모든 과정을 거친 코딩값을 비트 스트림 포맷팅하여 출력하며, 도 3은 이와 같이 최종 출력되는 MP3 비트 스트림의 단위 프레임을 데이터 특성별로 구분표시한 것이다.
상기와 같은 MP3 인코딩 이용시의 압축 효율에 대해 살펴보면, 기존의 디지털 오디오 기기에서는 샘플당 16비트에, 샘플링 주파수 32k㎐, 44.1k㎐, 48k㎐의 PCM(Pulse Code Modulation) 부호가 널리 사용되는데, 가령 두채널 스테레오, 44.1k㎐ 샘플링 및 16bit의 양자화 비트(bit)의 경우 비트율은 16×44100×2=1411200(약 1.4 Mbps)가 되는 반면, MPEG 오디어의 계층(Layer) 3에서는 이와 같은 신호를 128~256 kbps 정도로 부호화할 수 있다. 이것은 원래의 PCM 부호의 약 1/12~1/6에 상당하며 샘플당 원래의 16비트가 약 1.5 내지 3비트로 절감되는 셈이며, 따라서 MP3 파일로 CD를 제작할 경우 CD 한 장에 오디오 CD 12장 분량을 담을 수 있게 되는 것은 물론, 이렇게 압축하여도 원음과의 차이를 거의 느낄 수 없으며 특히 200kbps 이상이 되면 거의 판별할 수 없을 정도이다.
그러나, 디지털 기록의 이와 같은 여러 장점에도 불구하고, 아직까지는 디지털 데이터 기록/재생 장치의 보급이 널리 이루어지지 않고 오히려 워크맨과 같은 아날로그 기록/재생 장치가 시장의 대부분을 차지하고 있는 상태이므로, 이러한 디지털 데이터를 널리 사용되고 있는 테이프 등 아날로그 매체에 저장할 필요성이 높아진다.
이 경우 대부분의 테이프 매체 등에서는 동일 기록면의 상??하측에 순방향 트랙과 역방향 트랙을 구비하는데, 순방향 트랙에 대해 순방향 디코딩으로 재생하여 이를 녹음한 후, 순방향 트랙의 마지막부터 역방향 주행시키면서 역방향 트랙에 대해 다시 순방향 디코딩으로 재생하여 이를 녹음하게 되면, 각각의 트랙을 반복 주행함에 따라 녹음시간이 장시간이 소요된다는 문제점이 발생하게 된다.
또한, 아날로그 오디오을 역방향으로 재생하면서 엔코딩한 데이터를 구비하였다가 디코딩 기록하는 경우에는 별도의 공간이 필요하다는 문제점이 있는 것은 물론, 역방향 재생시의 마스킹 효과 등에 의해 원음 재생이 불가능하다는 문제점이 발생하게 된다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 창작된 것으로서 디지털 오디오 데이터를 테이프 등과 같은 아날로그 매체에 고속으로 녹음시, 메모리 사용량이나 연산량을 크게 증가시키지 않고도 역방향 디코딩이 가능한 MPEG 오디오의 역방향 디코딩 방법을 제공하는데 그 목적이 있는 것이다.
도 1 및 도 2는 MPEG 오디오 인코더의 구성을 개략적으로 도시한 것이고,
도 3은 MPEG 오디오 데이터의 단위 프레임의 구조를 도시한 것이고,
도 4는 MPEG 오디오 디코더의 일반적인 구성을 도시한 것이고,
도 5는 사이드 인포메이션에 의한 단위 프레임 대응 데이터의 위치 파악 관계를 도시한 것이고,
도 6은 IMDCT시 오버랩 합산하는 과정을 도식적으로 도시한 것이고,
도 7은 순방향 디코딩을 위한 합성 필터의 구조를 도시한 것이고,
도 8은 도 7의 합성 필터 구현을 위한 알고리즘 순서도를 도시한 것이고,
도 9는 도 8의 블록도를 도시한 것이고,
도 10은 본 발명에 따른 역방향 디코딩을 위한 합성 필터의 구조를 도시한 것이고,
도 11은 도 10의 합성 필터 구현을 위한 알고리즘 순서도를 도시한 것이고,
도 12는 도 11의 블록도를 도시한 것이다.
※ 도면의 주요부분에 대한 부호의 설명
10: 필터뱅크(Filter Bank) 20: MDCT부
30: 에일리어스 리덕션부 40: 양자화부
50: 허프만 인코더 60: 비트스트림 포매팅부
100: 디먹스(DeMultiplexer) 110: 사이드 인포메이션 디코더
120: 허프만 디코더 130: 역양자화부
140: IMDCT부 150: 합성 필터뱅크
상기와 같은 목적을 달성하기 위한 본 발명에 따른 디지털 오디오 데이터의 역방향 디코딩 방법은, 디지털 오디오 데이터의 역방향 디코딩 방법에 있어서, 기록 오디오 데이터의 마지막 프레임 헤더를 확인하는 제 1단계; 상기 확인된 헤더 정보에 근거하여, 해당 프레임을 구성하는 복수의 단위 블록 데이터 전체에 대하여 동시에 역양자화하는 제 2단계; 상기 역양자화된 데이터에 대해, 상기 단위 블록간의 연속성을 유지하면서 주파수 대역별 데이터로 복원하는 제 3단계; 및 상기 복원된 주파수 대역별 데이터를 시간 역순의 오디오 샘플 데이터로 변환출력하는 제 4단계를 포함하여 이루어지는 것에 그 특징이 있는 것이다.
이하, 본 발명에 따른 MP3 오디오 역방향 디코딩 방법의 바람직한 실시예에 대해 상세히 설명한다.
도 4는 본 발명을 구현하기 위한 MP3 오디오 역방향 디코딩 장치의 일실시예를 개략적으로 도시한 것으로서, 입력되는 MP3 오디오 비트 스트림을 다수의 특성 데이터로 분리출력하는 디먹스(Demultiplxer)(100); 상기 분리출력되는 데이터중 사이드 인포메이션(Side Information) 데이터를 독출해석하는 사이드 인포메이션 디코더(110); 상기 분리출력되는 오디오 데이터를 허프만 디코딩하는 허프만 디코더(120); 상기 허프만 디코딩된 데이터를 주파수 영역에서의 실제 샘플 에너지 값으로 복원하는 역양자화부(130); 상기 복원된 데이터를 MDCT 이전의 데이터로 복원하는 IMDCT(Inverse MDCT)부(140); 및 상기 복원된 데이터의 각 서브밴드 값을 합성하여 최종 PCM 샘플로 출력하는 합성 필터 뱅크(Synthesis Filterbank)(150)를 포함하여 구성되어 있다.
상기와 같이 구성된 MPEG 오디오 역방향 디코딩 장치를 이용하여, MPEG 오디오 비트 스트림을 역방향으로 디코딩하는 방법에 대해 설명하면 다음과 같다.
(1) 프레임 헤더(Frame Header) 찾기
MP3 비트 스트림(bit stream)의 역방향 디코딩을 위해서는 오디오 비트 스트림의 맨 뒤에서부터 디코딩을 실시해야 하므로 순방향 디코딩에 비해서 먼저 디코딩해야할 시작 위치를 찾는 것이 문제가 되는바, MPEG 오디오 포맷에서 각 프레임은 서로 독립적이므로 역방향 디코딩 과정의 첫 번째 단계는 프레임 헤더를 찾는 것이다.
프레임 헤더를 찾기 위해서는 프레임 크기에 대한 정보를 미리 알고 있어야 하는데, 일반적으로, 압축된 MP3 오디오 비트 스트림은 프레임 단위로 나누어지고, 각 MPEG 포맷(format)에서 초당 프레임 수는 고정되어 있는데, 이것은 주어진 비트 레이트(bit-rate)와 샘플링 주파수에서 각 입력 프레임은 고정 사이즈를 가지고 있고, 고정된 개수의 출력 샘플을 생성한다는 것을 의미한다.
이와 같이 MPEG 오디오에서 프레임의 크기는 고정되어 있기는 하지만, 이 크기는 특정 비트율과 샘플링 주파수에 대한 고정값에 불과하므로, 실제 프레임의 크기를 알려면 먼저 프레임의 헤더를 찾아 분석하여야 하는 것이다.
문제는 헤더를 어떻게 찾는가인데, 일반적으로 헤더에 싱크워드(Sync Word)를 제공하여 헤더임을 표시하기는 하지만, 오디오 샘플 데이터에 상기 싱크워드와 동일한 패턴이 발생할 수 있으므로 헤더를 잘못 찾는 경우가 생길 수 있다.
이 문제를 해결하기 위해, 상기 디먹스(100)는 한 스트림 클립 내에서는 스트림의 특성이 변하지 않는다는 가정하에 스트림의 첫 헤더를 미리 분석하여 패딩(padding) 비트가 없는 경우의 프레임 크기를 얻은 다음, 해당 곡에 대응되는 비트 스트림 파일의 마지막 위치에서 상기 한 프레임 크기를 이용하여 마지막 프레임의 헤더 위치를 찾는다.
다만, 각 프레임의 크기는 헤더의 패딩 비트에 의해 그 크기가 1 바이트 만큼 변할 수 있으므로, 역방향으로 헤더를 찾는 경우 그 찾는 헤더가 들어있는 프레임의 정확한 크기를 모르기 때문에, 첫 헤더에서 얻은 프레임 크기만큼 해당 파일의 마지막 위치에서 역방향으로 이동한 후, 패딩 비트를 고려하여 한 바이트 만큼 이전 데이터부터 다음 데이터까지 헤더의 시작 위치를 찾도록 한다.
(2) 사이드 인포메이션 분석
입력되는 MP3 오디오 비트 스트림으로부터 일단 프레임 헤더를 찾은 후, 상기 디먹스(100)는 순방향 디코딩 시와 마찬가지로 어떻게 프레임이 인코딩 되어 있는지에 대한 정보인 사이드 인포메이션(Side Information)과, 각 주파수 밴드의 이득값을 컨트롤하는 스케일 팩터 및 허프만 코딩 데이터를 차례로 분리하여 출력하며, 상기 사이드 인포메이션 디코더(110)는 분리출력되는 상기 사이드 인포메이션 데이터를 디코딩한 후, 이 정보에 근거하여 해당 프레임에 들어 있는 데이터를 어떻게 처리할 것인지 알 수 있게 된다.
일반적으로 MPEG 오디오 레이어 3에서는, 상기 인코딩 과정에서 간략히 설명한 바와 같이, 고정된 비트율에서 보다 음질을 향상시키기 위하여 비트 레저브와(bit reservoir) 방식을 사용한다.
즉, 인코딩할 오디오 샘플의 특성에 따라, 일정 음질을 유지하면서도 코딩하는데 많은 데이터를 필요로 할 수도 있고, 반대로 적은 데이터만을 필요로 할 수도 있는데, 프레임 크기와 그 프레임에 코딩되는 오디오 샘플수를 동일하게 유지하면서 음질유지에 필요한 데이터량을 프레임마다 다르게 하기 위해서는, 적은 데이터만을 필요로 하는, 정해진 크기의 프레임의 남는 공간에, 많은 데이터를 필요로 하는 프레임의 데이터를 넣어야 하며, 이에 따라 현재 프레임의 데이터 공간에는 현재 프레임의 데이터 뿐만 아니라 다음 프레임의 데이터가 들어 있을 수 있게 된다. 다만, MPEG 표준은 임의 위치에서 시작하여도 디코딩이 가능하도록 하기 위하여 511 바이트 거리내에서 이전 프레임들에 대해서 존재할 수 있도록 하여 현재 프레임의 데이터가 들어 있을 수 있는 이전 프레임의 범위를 제한하였으며, 또한 미래에 올 프레임에는 과거 프레임의 데이터를 넣지 못하도록 하였다.
이와 같이, 현재 프레임을 위한 데이터가 이전 프레임에 몇 개 들어있는지를 알려주기 위해, 도 5에 도시된 바와 같이 사이드 인포메이션에 그 포인터 값이 들어 있으며, 디코딩할 데이터를 얻기 위해서는 상기 사이드 인포메이션을 분석한 후 포인터 값에 따라 이전 프레임의 데이터 영역에서 해당 개수만큼 데이터를 가져와야 하는 것이다.
상기 내용을 정리하면, 현재 프레임에 해당하는 데이터, 즉 상기 스케일 팩터와 허프만 코딩 데이터가 들어 있을 수 있는 프레임의 범위는 현재 프레임만으로 한정되는 것이 아니라 사이드 인포메이션을 포함하는 현재 프레임에 511 바이트 거리내에서 앞서는 프레임 (정상 재생시의 시간적 이전 프레임)에도 들어있을 수 있는바, 순방향 디코딩시에는 이전 프레임에서 디코딩하고 남은 데이터에 현재 프레임의 데이터를 채워넣어 사용하면 되지만, 역방향 디코딩에서는 현재 디코딩할 프레임에 앞서는 이전 프레임의 헤더를 찾고 해당 데이터 영역으로부터 필요한 개수만큼 더 오디오 데이터를 얻어와야 하며, 이 경우 상기 디코딩된 사이드 인포메이션에 근거하여 이전 프레임으로부터 얻어올 데이터의 수를 확인함으로써, 필요한 만큼의 데이터를 정확히 얻어올 수 있게 되는 것이다.
경우에 따라서는 이전 프레임 몇 개에 걸쳐 이 과정을 반복하여 필요한 데이터 값을 얻어와야 하는 경우도 있으나, 헤더를 제대로 찾는다면 이 과정도 역시 어렵지 않다.
(3) 허프만 디코딩
상기 사이드 인포메이션에 근거하여 디코딩하여야 할 오디오 데이터를 확인하게 되면, 상기 허프만 디코더(120)는 인코딩시 총 비트량을 줄이기 위해 데이터특성에 따라 사용된 허프만 트리 및 상기 사이드 인포메이션에 근거하여, 분리출력되는 허프만 코딩 데이터(이전 프레임으로부터 얻어진 데이터를 포함한 전체 데이터)에 대해 허프만 디코딩을 수행한다.
이 과정은 순방향 디코딩에서와 동일하며, 다만 일반적으로 한 프레임은 두 개의 그래뉼(granule 0, granule 1)로 나누어 인코딩되어 있는바, 그래뉼 1을 디코딩 하기 위해서는 그래뉼 0을 먼저 디코딩해야 그 데이터 위치를 알 수 있으므로, 순방향 디코딩에서는 그래뉼 단위로 디코딩이 가능한데 반하여 역방향 디코딩에서는 한 프레임 전체, 즉 두 개의 그래뉼 모두에 대해 한번에 디코딩해야 한다.
(4) 역양자화 및 리스케일링
상기 허프만 디코더(120)에 오디오 데이터를 허프만 코딩 이전의 데이터로 복원한 후, 상기 역양자화부(130)는 허프만 디코딩된 결과를 주파수 영역에서의 실제 샘플 에너지 값으로 복원하는 작업을 수행하는데, 예를 들어 허프만 디코딩된 값이 Y라고 하면 일단 Y4/3을 계산하고, 이렇게 얻어진 값에 상기 스케일 팩터에서 얻은 스케일 값을 곱하여 리스케일링(re-scaling)함으로써, 실제 스펙트럼 에너지 값으로 복원한다.
이 과정에서, 만약 비트 스트림이 스테레오 신호로 인코딩되었다면 각 채널은 서로 분리되어 전송될 수도 있지만, 종종 두 채널 사이의 합(sum)과 차(difference)를 전송함으로써 두 채널 사이의 중복성을 제거하는 방식을 이용하기도 하는데, 이 방식을 이용하여 인코딩되었다면 스테레오 복구를 실시한다.
(5) IMDCT
지금까지 얻어진 신호는 주파수 영역(Frequency-Domain)에 있으므로, 실제 출력 샘플을 합성하기 위해서는 시간 영역(Time-Domain)으로의 에너지 변환(transform)이 행해져야 하는데, 이 변환은 인코더에서 이용된 시간-주파수 변환(Time-to-Frequency Transform)의 역과정으로서, 상기 IMDCT부(140)에 의해 실제 샘플 에너지 값으로 복원된다.
레이어 3에서는 다른 레이어에서보다 더 좋은 주파수 해상도를 얻기 위해 MDCT를 추가로 사용하는데, 이 변환은 크리티컬하게 샘플링된 값에 대한 DCT이므로 어떤 양자화도 행해지지 않았다면 완벽하게 원래 신호로 복구가 가능하나, 실제로는 양자화가 행해지므로 각 전송블록 사이에 불연속성이 생기게 된다.
이에 따라, 블록(그래뉼) 단위로 수행되는 IMDCT에 있어서 각 전송블록 사이에 불연속성이 생기게 되고, 이러한 불연속성은 노이즈와 클릭음 등을 만들어 음질에 치명적인 영향을 미치므로, 이를 없애기 위해 IMDCT 변환 후의 결과값에 대하여 이전 그래뉼에서의 값과 50% 오버랩 합산(overlap-adding)하여 사용한다.
즉, IMDCT를 수행하게 되면 모두 36개의 데이터가 얻어지는데, 순방향 디코딩의 경우 도 6에 도시된 바와 같이 현재 그래뉼에 대한 전반부의 18개 데이터와, 이전 그래뉼의 후반부 18개 데이터를 합산한 값을 이용하고 있다. 그러나, 순방향 디코딩의 경우에는 이전 프레임의 값을 가지고 있지만, 역방향 디코딩의 경우에는 시간적으로 이후의 프레임에 대한 데이터를 가지고 있으므로, 오버랩 되는 순서를 바꾸어 주어야 하며, 따라서 현재 그래뉼에 대한 IMDCT 결과 36개중 후반부 18개와 이후 그래뉼의 전반부 18개를 오버랩 합산하여 사용하는 것이다. 다만, 시작하는 프레임, 즉 역방향 디코딩시의 마지막 프레임의 경우에는, 프레임의 후반부 그래뉼에 대해서는 오버랩할 데이터가 없으므로 오버랩할 부분에 0(zero)를 넣거나 오버랩 합산을 하지 않고 그냥 사용한다.
상기 과정을 수학식으로 다시 한번 정리하면 다음과 같다.
xi(n)을 다음 처리에 사용할 목표 샘플, yi(n)을 IMDCT한 결과, 첨자 i는 그래뉼 번호, N이 총 프레임 수라고 할 때,
순방향 디코딩의 경우에는 다음과 같이 처리한다.
xi(n) = yi(n) + yi-1(n+18) 0≤n〈18, i=1,2, … 2N
단, 여기서 y0(n+18), 0≤n〈18 은 모두 0으로 초기화 되어 있어야 한다.
그런데, 역방향 디코딩을 위해서는 이전 프레임의 정보를 가지고 있지 않기 때문에, 대신 이후 프레임과 50% 오버랩 하여 더해지도록 다음과 같이 수학식을 변경하여야 한다.
xi(n) = yi(n+18) + yi-1(n) 0 ≤ n 〈 18, i=2N, 2N-1 … , 1
물론, 이 경우에도 초기값인 y2N+1(n+18), 0 ≤ n 〈 18 은 모두 0으로 초기화 되어 있어야 한다.
상기의 오버랩 과정은 순방향의 경우와 비교하여 그 순서만 바뀌었을 뿐이므로, 연산량과 메모리 사용량 역시 순방향의 경우와 동일하다.
(6) 서브밴드 합성
상기 IMDCT부(140)에 의해 IMDCT 변환을 수행하고 50% 오버랩 합산 처리한 결과값을 얻은 후, 실제 오디오 샘플을 출력하기 전의 마지막 절차는 서브밴드로 나누어진 샘플들을 합성하여 원래의 시간 샘플 신호로 복원하는 서브밴드 합성과정으로서, 이는 인코딩시 입력 샘플을 32개의 주파수 대역별로 분리하였던 것을 다시 합성하는 과정(subband synthesis)이며, 각 서브밴드의 샘플들을 하나의 시간 샘플열로 합성하는 인터폴레이션(interpolation) 과정이다.
서브밴드 합성 필터에서는 이전 프레임의 필터 입력이 지연되어 사용되므로 이전 프레임의 필터 입력값을 필요로 하는데, 순방향 디코딩과는 달리 역방향 디코딩시에는 합성필터에 입력되는 서브밴드의 데이터가 역순으로 입력되어 이전 값을 알 수 없으므로, 합성필터의 구조를 이에 맞추어 재설계하여야 한다.
합성 필터를 위한 필터 뱅크는 MPEG 표준에 정의되어 있으므로 이것을 이용하여 역방향 디코딩이 가능하도록 합성 필터를 설계하였으며, 이하 일반적인 순방향 디코딩에서 사용되는 합성필터에 대해 살펴본 후, 이와 대비하여 본 발명에 따른 새로운 합성필터에 대해 상세히 설명한다.
도 7은 MPEG 오디오 순방향 디코딩시 사용되는 합성필터의 구조를 도시한 것으로서, 상기 합성필터의 목표는 각 서브밴드의 샘플들을, FDM(Frequency Division Multiplexing) 방식과 유사하게, 해당 주파수 대역의 신호로 하여 하나의 신호를 합성해 내는 것이다.
즉, TS1간격으로 크리티컬하게 샘플링된 32개의 신호 xr(mTS1)을 하나의 신호로 합성하여, TS2= TS1/32 간격으로 크리티컬하게 샘플링된 신호인 s(nTS2)를 합성해 내는 것이며, 이것은 인코딩시 32개의 동일한 주파수 대역 구간으로 나누었던 신호를 다시 원래의 신호로 복원하는 과정이다.
여기서 xr(mTS1)은 r 번째 서브밴드의 샘플신호를 의미하며, 이 신호를 32배로 up-sampling한 신호가 xr(nTS2)이다. 이 과정에서 (m-1)TS1과 mTS1사이에 31개의 0(zero)가 삽입된다. 이 효과는 TS1시간 간격으로 샘플링 된 신호의 고조파는 모양이 그대로 유지되면서 단지 주파수의 범위만 32배로 확장된 것에 해당된다.
다시 말해, TS1시간 간격으로 샘플링함으로써, fS1= 1/TS1주파수 간격으로 반복적으로 나타나는 고조파가, TS2시간 간격으로 up-sampling하여 fS2= 1/TS2로 샘플링 주파수 범위가 확장되면서 이 범위 내에 32개의 fS1고조파가 포함된 것이며, 결과적으로 TS2= TS1/32 시간 간격으로 샘플링된 신호로 변경되는 것이다.
이제 이 신호를 가지고 각 서브밴드마다 해당 대역만 남기고 제거한다. 이때 사용되는 band-pass filter가 바로 Hr(z)이다(r은 서브밴드 번호).
필터 Hr(z)은 512개의 차수를 가지며, prototype low-pass filter를 phase-shift하여 해당 서브밴드의 band-pass filter를 구성한다. 위 도 7의 블록 다이어그램을 수학식으로 표현하면 다음식과 같다.
여기서 St(nTS2)은 합성된 신호의 출력 샘플, t는 TS1시간 간격이며 서브밴드 신호의 현재 입력 샘플을 의미한다. 즉 xr(tTS1)의 서브밴드별 각 입력 샘플에 대한 합성 출력 신호가 St(nTS2)가 되는 것이다. 여기서 r=0,1,2, ,31이고 서브밴드 인덱스이며, n=0,1,2, ,31이고 출력샘플 인덱스로서, 32개의 서브밴드마다 각각 1개 씩의 샘플이 입력되어 32개의 합성된 출력 샘플이 생성되는 구조이다.
상기 수학식의 구조는 xr(kTS2) 와 Hr(kTS2)의 컨볼루션(convolution) 형태이며, 필터링 과정임을 나타낸다. Hr(kTS2) 는 512개의 차수를 가지며, 기본형의 low-pass filter인 h(kTS2)와 이 필터를 phase-shift하여 해당 서브밴드의 band-pass filter를 생성하기 위한 의 Nr(k)의 곱으로 구성되어 있다.
각 서브밴드를 up-sampling하고 해당 대역 필터를 거친 후 모든 서브밴드의 신호를 더하면 출력 샘플이 생성된다. 여기서 상기 수학식 1을 그대로 연산하려면 상당히 많은 양의 연산이 필요하므로, 연산량을 줄이기 위해 수학식을 정리하여 다시 쓰면 아래의 수학식 2와 같다. 수학식 1을 전개하여 최적화하는 과정에서 cosine항의 대칭성과 서브밴드 신호 xr(tTS1)을 up-sampling하여 xr(kTS2)를 만들면서 채워진 0(zero)가 고려되었다. 이하의 수학식부터는 표기의 편의를 위해 샘플링 주기를 생략하였고, 묵시적으로 샘플링 주기는 TS2이다.
여기서 n=0,1,2 … 31, i= 0,1,2 …15, k=0,1,2 … 63 그리고 r=0,1,2 … 31 이다. 첨자 k, n, i는 연산 과정에서 사용되는 인덱스이고, 첨자 r은 서브밴드 번호를 의미하며, 첨자 t는 서브밴드 신호의 현재 샘플이 입력된 시간을 의미한다. 위의 수학식에서 기호 [x]는 실수 x에 대하여 a≤x 를 만족하는 최대 정수 a를 의미한다. 즉, 실수 x의 소수점 이하를 잘라버리고 정수로 만든 것이다. 또한, 연산자 %는 modular 연산을 의미하며 a%b는 a를 b로 나눈 나머지 값에 해당한다.
상기 최적화된 수학식 2를 알고리즘 순서도로 표현하면 도 8과 같으며(MPEG Audio Standard Spec. 참조), 상기 도 8의 순서도를 계산 절차에 따른 블록도로 나타내면 도 9와 같다.
각 서브밴드마다 1개의 샘플이 입력되어 Nr(k) 행렬 값이 곱해지며, 나온 결과는 64개가 된다. 이 값이 1024개의 선입선출(FIFO) 버퍼에 입력되며, 기존에 들어 있던 값들은 64개의 값만큼 shift된다. 이제 이 FIFO 안에 들어있는 값 중에서 사용할 데이터를 순차적으로 가져와 window 계수를 곱하여 나온 값을 모두 더하면 PCM 출력 샘플이 생성된다. 이를 수학식 2와 비교하면서 보면 쉽게 알 수 있다.
이하에서는, 상기에서 설명한 순방향 디코딩에 사용되는 합성필터의 구조를 참조하여, 본 발명에 따른 역방향 디코딩시의 합성필터에 대해 설명한다.
위의 순방향 합성필터를 역방향으로 디코딩하기 위한 구조로 변경하기 위해서는 몇가지를 고려해야 한다. 역방향으로 디코딩하는 과정에서는 서브밴드의 샘플들이 시간적으로 역순으로 입력되게 된다. 즉, 한 서브밴드의 총 샘플 수가 N개라면, 순방향으로 디코딩 하는 경우 t=0,1,2 … N-1 의 순서로 샘플이 입력되는 반면, 역방향으로 디코딩하는 경우에는 t= N-1,N-2, N-3 … 1, 0 의 순서로 입력되는 것이다.
MPEG 오디오 합성 필터는 시간적으로 이전 샘플 값들을 이용하는데, 샘플이 역순으로 입력되면 시간적으로 이전 샘플 값들을 알 수 없기 때문에 순방향 합성필터를 그대로 이용하여 역방향 합성을 수행할 수 없고, 따라서 역순으로 입력되는 샘플에 대하여 역순으로 합성을 수행할 수 있도록 필터의 구조를 변경해야 하는바, 아래에서는 이러한 구조를 갖는 합성 필터를 제시한다.
도 10은 본 발명에 따른 역방향 디코딩을 위한 합성필터의 구조를 도시한 것으로서, 순방향 디코딩을 위한 합성필터의 구조와 유사하나, 다만, 필터뱅크만 그 전달함수가 Br(z)으로 대치 되었다. 서브밴드 신호의 샘플이 입력되는 순서는 역방향 디코딩의 경우 xr(mTS1), m= N-1,N-2, N-3 … 1, 0 과 같다.
입력 순서를 고려하여 상기 수학식 1을 변경하면 다음 수학식 4와 같다.
수학식 4를 수학식 1과 비교하면, 각 서브밴드에 대한 band-pass filter는 동일하며, 다만 입력 샘플이 시간의 역순으로 입력되므로 필터링을 위한 컨볼루션에서 입력 신호의 순서를 거꾸로 뒤집어 필터 계수와 곱했던 것을 그냥 사용하게 된다. 즉, 입력되는 순서 자체가 역순이기 때문에 순방향 디코딩시의 서브밴드 입력 xr(((32t+n)-k)Ts) 는 역순입력에 대하여 xr(((32t+n)-511+k)Ts) 가 된다.
수학식 4를 그대로 계산하기 위해서는 상당히 많은 양의 연산이 필요하므로, 순방향 디코딩시와 마찬가지로 수학식을 전개하여 최적화하면 다음 수학식이 얻어진다.
단, 위 수학식 5와 6에서 사용된 첨자와 연산자에 대한 것은 수학식 3과 4에서 적용된 것과 동일하다.
위 수학식 5와 6번에서 j=31-n 그리고 m=63-k로 치환하면 위의 수학식은 아래와 같이 된다.
상기 수학식 7, 8을 수학식 3, 4와 비교하면 유사하다는 것을 알 수 있으며, 다만 입력된 샘플에 대한 인덱스만 다르다. 상기 식을 알고리즘 순서도로 표현하면 도 11과 같으며, 상기 순서도를 계산절차에 따른 블록도로 구성하면 도 12와 같다.
이상에서 설계한 역방향 디코딩을 위한 합성필터의 구조를 살펴보면 순방향 합성필터와 알고리즘 구조가 비슷하며, 따라서 연산량과 구현에 필요한 메모리 사용량도 동일하게 구현할 수 있다. 만약 순방향 디코딩과 역방향 디코딩을 동시에 구현한다면 순방향 합성필터를 그대로 적용할 수 있으며, 단지 FIFO의 shifting 방향과 최종 샘플 합성 순서(첨자 j)만 역방향으로 바꾸어 주면 된다.
즉, 매 합성시마다 합성되는 32 샘플은 시간 순서이지만, 다음에 합성되는 시간 샘플은 시간적으로 이전 샘플이며, 따라서, 샘플의 출력순서는 한번에 합성되는 32 샘플을 역순으로 출력하고 다음 합성되는 32 샘플을 마찬가지로 역순으로 출력하는 과정을 첫 프렘임까지 반복하게 된다. 본 합성필터는 MPEG Audio Layer 1, 2, 3 모두에서 사용 가능하다.
한편, 보다 고속의 녹음을 위해서는 순방향 트랙에 대해 녹음을 수행함과 동시에, 역방향 트랙에 대해서도 함께 녹음을 수행하는 것이 바람직하며, 이때 역방향 트랙에 대해서는 테이프가 재생시의 역으로 주행하게 되므로, 디코딩 또한 역방향으로 디코딩해 주어야 하는바, 역방향 디코딩을 수행하는 방법에는 상기의 실시예와는 다른 여러 가지가 있을 수 있으나, 먼저 순방향 알고리즘을 이용한 역방향 디코딩 방법에 대해서 살펴보면 다음과 같다.
압축된 MPEG 디지털 오디오 데이터를 역방향으로 아날로그 기록매체에 기록하기 위한 방안으로서 생각할 수 있는 첫 번째 방법은 데이터를 모두 순방향으로 디코딩하여 그 결과의 PCM 샘플을 저장해 두고 맨 마지막 PCM 데이터부터 역으로 아날로그 변환하는 것이다. 이 경우 순방향 알고리즘을 그대로 사용하므로 구현은 쉽지만 디코딩된 데이터량이 방대하므로, 데이터를 저장할 대량의 저장매체가 필요하다는 문제점이 있는 것은 물론, 한 데이터 클립의 길이가 서로 다르며, 제한되어 있지 않기 때문에 필요한 저장매체의 최대한계를 결정 지을 수 없다는 문제점이 있다.
압축된 MPEG 디지털 오디오 데이터를 역방향으로 아날로그 기록매체에 기록하기 위한 방안으로서 생각할 수 있는 두 번째 방법은 전체 스트림의 맨 뒷 프레임부터 일정한 프레임 수로 나누어 순방향으로 디코딩을 하는 것이다.
즉, 총 N 개의 프레임이 있다면 M 개의 프레임 씩 나누어 (N-M) 번째 프레임부터 N 번째 프레임까지 디코딩을 하여 저장하고 이것을 N 번째 프레임부터 (N-M+1) 번째 프레임까지 역순으로 연주한다. 이때, (N-M) 번째 프레임은 디코딩시 첫 프레임이기 때문에 이전 프레임과 연속성이 없으므로 정상적인 데이터가 아니므로 출력하지 않는다. 중요한 것은 프레임 간의 연속성은 한 프레임 만큼이며, 두 프레임 이상 떨어진 프레임 사이에는 연산 알고리즘적으로 영향을 주지 않는다는 것이다. 따라서, 두 번째 프레임부터는 정상적인 샘플을 얻을 수 있고, 그 결과값을 이용할 수 있다.
첫 번째 블록 프레임에 대한 연주가 끝나면 다시 (N-2M) 번째 프레임부터 (N-M) 번째 프레임까지를 마찬가지로 순방향으로 디코딩 하면서 저장한다. 여기서 주목할 것은 (N-M) 번째 프레임은 이전 디코딩 과정에서 그 블록의 첫 프레임으로 디코딩을 했던 프레임이다. 그러나 실제 샘플은 이전 프레임의 정보가 없어 정상적인 샘플로 디코딩되지 않았기 때문에 출력하지 않았다. 따라서 여기서 그 프레임까지 디코딩을 한다. 이때는 프레임의 마지막이고 이전 프레임의 정보를 가지고 있기 때문에 정상적인 샘플로 디코딩된다. 이제 출력은 (N-M) 번째 프레임부터 (N-2M+1) 번째 프레임까지를 역순으로 실시한다.
이 과정을 모든 프레임이 디코딩될 때까지 실시한다.
마지막으로 디코딩되는 블록의 첫 프레임에 대해서는 순방향으로 디코딩할 때와 동일한 조건이 되므로 그때와 동일한 샘플값이 얻어진다. 따라서 그냥출력 샘플로 사용할 수 있다.
이 방법으로 역방향 디코딩을 하는 경우, 모든 프레임을 디코딩하여 저장하지 않고, 단지 M개의 프레임만을 디코딩하여 저장했다가 역순으로 출력하므로 M개의 프레임에 대한 샘플 개수만큼만을 저장할 공간만 있으면 충분하여, 상기 첫 번째 방법에 비해 최종 출력 샘플을 저장할 버퍼의 크기가 작아지며, 또한 저장할 공간의 요구량에 대한 한계가 분명하므로 설계가 용이한 장점도 있다.
상기와 같은 구성 및 동작에 의해 이루어지는 본 발명에 따른 디지탈 오디오 데이터의 역방향 디코딩 방법은, 디지털로 압축된 오디오 신호를 테이프와 같은 아날로그 매체에 고속으로 저장함에 있어서, 압축된 디지털 오디오를 순방향 트랙은 순방향으로 디코딩하여 신호를 제공하고, 반대 방향의 트랙은 역방향으로 디코딩하여 신호를 제공함으로써, 동시에 순방향 및 반대 방향의 트랙 모두를 녹음할 수 있어서 고속 녹음이 가능하게 된다.
또한, 순방향 디코딩 방식을 이용하여 역방향 디코딩을 수행하는 경우, 즉 맨 마지막 프레임부터 M프레임씩 나누어 순방향으로 디코딩하는 경우에는 알고리즘이 순방향 디코딩 방법과 동일하므로 구현이 용이하며, 비록 M개의 프레임을 디코딩하여 저장할 버퍼가 필요하다는 단점이 있으나 그 크기가 고정되어 있기 때문에 구현이 어렵지 않다.
또한, 역방향 디코딩 알고리즘을 이용한 역방향 디코딩 방식의 경우에는, 순방향 디코딩과 비교하여 연산량은 동일하되 약간의 추가 메모리만이 요구되며, 추가되는 메모리의 크기는, 허프만 디코딩 과정에서 순방향 디코딩시에는 한 프레임을 두 개의 블록으로 나누에 처리할 수 있는 반면 역방향 디코딩시에는 한 프레임 모두를 미리 허프만 디코딩해야 하므로 2배의 버퍼 크기만큼 필요하다. 즉, 그 크기는 스테레오 채널에 대하여 순방향 디코딩시 576×2 워드 만큼 필요한데 반해, 역방향 디코딩시는 1152×2 워드 만큼의 메모리가 필요하다.
Claims (10)
- 디지털 오디오 데이터의 역방향 디코딩 방법에 있어서,기록 오디오 데이터의 마지막 프레임 헤더를 확인하는 제 1단계;상기 확인된 헤더 정보에 근거하여, 해당 프레임을 구성하는 복수의 단위 블록 데이터 전체에 대하여 동시에 역양자화하는 제 2단계;상기 역양자화된 데이터에 대해, 상기 단위 블록간의 연속성을 유지하면서 주파수 대역별 데이터로 복원하는 제 3단계; 및상기 복원된 주파수 대역별 데이터를 시간 역순의 오디오 샘플 데이터로 변환출력하는 제 4단계를 포함하여 이루어지는 디지탈 오디오 데이터의 역방향 디코딩 방법.
- 제 1항에 있어서,상기 제 1단계의 프레임 헤더 확인은, 상기 기록 오디오 데이터의 첫 번째 헤드 정보에 근거하여 이루어지는 것을 특징으로 하는 디지탈 오디오 데이터의 역방향 디코딩 방법.
- 제 1항에 있어서,상기 제 1단계는,상기 기록 오디오 데이터의 첫 번째 헤드 정보로부터 프레임의 크기를 독출하는 하위 제 1단계;상기 독출된 프레임 크기에 근거하여, 프레임의 가상 헤드 위치로 이동하는 하위 제 2단계; 및상기 이동된 위치에서, 패딩 비트 유무를 감안하여 실제 프레임 헤더를 확인하는 하위 제 3단계를 포함하여 이루어지는 것을 특징으로 하는 디지탈 오디오 데이터의 역방향 디코딩 방법.
- 제 1항에 있어서,상기 제 2단계는,상기 확인된 헤더 정보에 근거하여, 사이드 인포메이션을 독출하는 하위 제 1단계;상기 독출된 사이드 인포메이션에 근거하여, 해당 단위 프레임에 대응되는 데이터의 위치를 확인하는 하위 제 2단계;상기 확인된 위치에 근거하여, 단위 프레임을 구성하는 복수의 단위 블록 전체에 대하여 동시에 역양자화하는 하위 제 3단계를 포함하여 이루어지는 것을 특징으로 하는 디지탈 오디오 데이터의 역방향 디코딩 방법.
- 제 1항에 있어서,상기 제 3단계는,단위 프레임을 구성하는 복수의 단위 블록 전체에 대하여 허프만 디코딩하는 단계; 및상기 허프만 디코딩된 데이터에 대해 역양자화 및 역스케일링하는 단계를 포함하여 이루어지는 것을 특징으로 하는 디지탈 오디오 데이터의 역방향 디코딩 방법.
- 제 1항에 있어서,상기 제 3단계는, 현재 역(逆) 변형이산여현변환(MDCT)된 후반부의 단위 블록 데이터와, 직후 입력되어 역(逆) 변형이산여현변환된 전반부의 단위 블록 데이터를 중첩합산함에 의하여 단위 블록간의 연속성을 유지하는 것을 특징으로 하는 디지탈 오디오 데이터의 역방향 디코딩 방법.
- 제 6항에 있어서,역방향 입력되는 최초 프레임의 첫 번째 단위 블록에 대해서는 중첩할 데이터를 0으로 설정하는 것을 특징으로 하는 디지탈 오디오 데이터의 역방향 디코딩 방법.
- 제 1항에 있어서,상기 제 3단계는, 현재 주파수 대역별로 데이터 복원(MDCT)되는 후반부의 단위 블록 데이터와, 직후 입력되어 복원된 전반부의 단위 블록 데이터를 중첩합산함에 의하여 단위 블록간의 연속성을 유지하는 것을 특징으로 하는 디지탈 오디오 데이터의 역방향 디코딩 방법.
- 제 1항에 있어서,상기 제 4단계는,역(逆) 변형이산여현변환(MDCT)된 데이터를 메모리에 정상 재생시의 시간순서로 순차입력한 후, 상기 재생 시간순서의 역순으로 지연시켜 출력합성하는 것을 특징으로 하는 디지탈 오디오 데이터의 역방향 디코딩 방법.
- 압축된 디지털 오디오 데이터의 마지막 부분부터 M개의 프레임씩 나누어 순방향으로 디코딩을 수행한 후, 디코딩된 데이터를 디코딩의 역순으로 출력하는 역방향 디코딩 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990006157A KR100300887B1 (ko) | 1999-02-24 | 1999-02-24 | 디지털 오디오 데이터의 역방향 디코딩 방법 |
AU16934/00A AU1693400A (en) | 1999-02-24 | 1999-12-11 | A backward decoding method of digital audio data |
PCT/KR1999/000764 WO2000051243A1 (en) | 1999-02-24 | 1999-12-11 | A backward decoding method of digital audio data |
JP2000601744A JP2002538503A (ja) | 1999-02-24 | 1999-12-11 | ディジタルオーディオデータの逆方向デコーディング方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990006157A KR100300887B1 (ko) | 1999-02-24 | 1999-02-24 | 디지털 오디오 데이터의 역방향 디코딩 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20000056661A true KR20000056661A (ko) | 2000-09-15 |
KR100300887B1 KR100300887B1 (ko) | 2001-09-26 |
Family
ID=19574975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990006157A KR100300887B1 (ko) | 1999-02-24 | 1999-02-24 | 디지털 오디오 데이터의 역방향 디코딩 방법 |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP2002538503A (ko) |
KR (1) | KR100300887B1 (ko) |
AU (1) | AU1693400A (ko) |
WO (1) | WO2000051243A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101390551B1 (ko) * | 2012-09-24 | 2014-04-30 | 충북대학교 산학협력단 | 저 지연 변형된 이산 코사인 변환 방법 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8692695B2 (en) | 2000-10-03 | 2014-04-08 | Realtime Data, Llc | Methods for encoding and decoding data |
US7386046B2 (en) | 2001-02-13 | 2008-06-10 | Realtime Data Llc | Bandwidth sensitive data compression and decompression |
EP1428215A1 (en) * | 2001-04-20 | 2004-06-16 | Koninklijke Philips Electronics N.V. | Method and apparatus for editing data streams |
EP1308931A1 (de) | 2001-10-23 | 2003-05-07 | Deutsche Thomson-Brandt Gmbh | Decodierung eines codierten digitalen Audio-Signals welches in Header enthaltende Rahmen angeordnet ist |
KR100462611B1 (ko) * | 2002-06-27 | 2004-12-20 | 삼성전자주식회사 | 하모닉 성분을 이용한 오디오 코딩방법 및 장치 |
US7610195B2 (en) | 2006-06-01 | 2009-10-27 | Nokia Corporation | Decoding of predictively coded data using buffer adaptation |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07334937A (ja) * | 1994-04-09 | 1995-12-22 | Victor Co Of Japan Ltd | データ記録方法及びディスク媒体 |
JP3190204B2 (ja) * | 1994-04-12 | 2001-07-23 | ユナイテッド・モジュール・コーポレーション | Mpeg規格の音声信号デコーダ |
DE59510756D1 (de) * | 1994-06-06 | 2003-09-11 | Sci Worx Gmbh | Verfahren zur Codierung/Decodierung eines Datenstroms |
JPH08293157A (ja) * | 1995-04-21 | 1996-11-05 | Matsushita Electric Ind Co Ltd | 可変フレーム長高能率符号化データの記録再生方法 |
JPH09147496A (ja) * | 1995-11-24 | 1997-06-06 | Nippon Steel Corp | オーディオ復号装置 |
US5835375A (en) * | 1996-01-02 | 1998-11-10 | Ati Technologies Inc. | Integrated MPEG audio decoder and signal processor |
JP3596978B2 (ja) * | 1996-05-14 | 2004-12-02 | 株式会社ルネサステクノロジ | 音声再生装置 |
JPH10112135A (ja) * | 1996-10-08 | 1998-04-28 | Suzuki Motor Corp | ディスク再生装置 |
US5893066A (en) * | 1996-10-15 | 1999-04-06 | Samsung Electronics Co. Ltd. | Fast requantization apparatus and method for MPEG audio decoding |
JPH10178349A (ja) * | 1996-12-19 | 1998-06-30 | Matsushita Electric Ind Co Ltd | オーディオ信号の符号化方法および復号方法 |
-
1999
- 1999-02-24 KR KR1019990006157A patent/KR100300887B1/ko not_active IP Right Cessation
- 1999-12-11 AU AU16934/00A patent/AU1693400A/en not_active Abandoned
- 1999-12-11 JP JP2000601744A patent/JP2002538503A/ja active Pending
- 1999-12-11 WO PCT/KR1999/000764 patent/WO2000051243A1/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101390551B1 (ko) * | 2012-09-24 | 2014-04-30 | 충북대학교 산학협력단 | 저 지연 변형된 이산 코사인 변환 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR100300887B1 (ko) | 2001-09-26 |
WO2000051243A1 (en) | 2000-08-31 |
JP2002538503A (ja) | 2002-11-12 |
AU1693400A (en) | 2000-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101517265B1 (ko) | 2차원 변환에 의한 오디오 스케일 팩터의 압축 | |
JP4731774B2 (ja) | 高品質オーディオ用縮尺自在符号化方法 | |
EP1715476B1 (en) | Low-bitrate encoding/decoding method and system | |
JP3354863B2 (ja) | ビット率の調節可能なオーディオデータ符号化/復号化方法及び装置 | |
KR100310216B1 (ko) | 다중채널오디오신호를위한코딩장치또는방법 | |
KR101237413B1 (ko) | 오디오 신호의 부호화 및 복호화 방법, 오디오 신호의부호화 및 복호화 장치 | |
EP1536410A1 (en) | Method and apparatus for encoding/decoding MPEG-4 BSAC audio bitstream having ancillary information | |
JP4925671B2 (ja) | デジタル信号の符号化/復号化方法及びその装置並びに記録媒体 | |
JPH08190764A (ja) | ディジタル信号処理方法、ディジタル信号処理装置及び記録媒体 | |
KR20100089772A (ko) | 오디오 신호의 부호화 및 복호화 방법 및 그 장치 | |
JP3964860B2 (ja) | ステレオオーディオの符号化方法、ステレオオーディオ符号化装置、ステレオオーディオの復号化方法、ステレオオーディオ復号化装置及びコンピュータで読み取り可能な記録媒体 | |
KR100682915B1 (ko) | 다채널 신호 부호화/복호화 방법 및 장치 | |
KR100750115B1 (ko) | 오디오 신호 부호화 및 복호화 방법 및 그 장치 | |
KR100300887B1 (ko) | 디지털 오디오 데이터의 역방향 디코딩 방법 | |
US6463405B1 (en) | Audiophile encoding of digital audio data using 2-bit polarity/magnitude indicator and 8-bit scale factor for each subband | |
JP2003330497A (ja) | オーディオ信号の符号化方法及び装置、符号化及び復号化システム、並びに符号化を実行するプログラム及び当該プログラムを記録した記録媒体 | |
JPH0863901A (ja) | 信号記録方法及び装置、信号再生装置、並びに記録媒体 | |
JPH1083623A (ja) | 信号記録方法、信号記録装置、記録媒体および信号処理方法 | |
KR100247348B1 (ko) | 엠펙 오디오 디코더에서 메모리 사이즈를 최소화하기 위한 회로 및 방법 | |
KR100195711B1 (ko) | 디지탈 오디오 복호기 | |
Smyth | An Overview of the Coherent Acoustics Coding System | |
JPH1083198A (ja) | ディジタル信号処理方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20050620 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |