KR19990086309A - Real-Time Processing Device and Method of HDTV Audio Encoder - Google Patents
Real-Time Processing Device and Method of HDTV Audio Encoder Download PDFInfo
- Publication number
- KR19990086309A KR19990086309A KR1019980019244A KR19980019244A KR19990086309A KR 19990086309 A KR19990086309 A KR 19990086309A KR 1019980019244 A KR1019980019244 A KR 1019980019244A KR 19980019244 A KR19980019244 A KR 19980019244A KR 19990086309 A KR19990086309 A KR 19990086309A
- Authority
- KR
- South Korea
- Prior art keywords
- bit
- board
- processor
- slave
- master board
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 115
- 238000012545 processing Methods 0.000 title claims abstract description 69
- 230000008569 process Effects 0.000 claims abstract description 84
- 238000004458 analytical method Methods 0.000 claims abstract description 40
- 238000013139 quantization Methods 0.000 claims abstract description 25
- 238000012856 packing Methods 0.000 claims abstract description 8
- 230000005236 sound signal Effects 0.000 claims abstract description 6
- 230000009977 dual effect Effects 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 20
- 238000012546 transfer Methods 0.000 claims description 16
- 230000008859 change Effects 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000003672 processing method Methods 0.000 claims 4
- 230000005540 biological transmission Effects 0.000 abstract description 16
- 238000004519 manufacturing process Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 17
- 238000009826 distribution Methods 0.000 description 11
- 239000000523 sample Substances 0.000 description 11
- 239000000872 buffer Substances 0.000 description 9
- 238000005070 sampling Methods 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 7
- 238000002474 experimental method Methods 0.000 description 4
- 238000001228 spectrum Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000011248 coating agent Substances 0.000 description 2
- 238000000576 coating method Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 208000023514 Barrett esophagus Diseases 0.000 description 1
- 101100490184 Drosophila melanogaster Ack gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 239000012723 sample buffer Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
Classifications
-
- 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/008—Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/233—Processing of audio elementary streams
- H04N21/2335—Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
본 발명은 HDTV 오디오 부호화기의 실시간 처리장치 및 그 방법에 관한 것으로, 특히 서브밴드 분석과 심리 음향 모델링을 수행하는 5개의 슬레이브 보드(1)와; 채널 매트릭싱, 비트 할당, 양자화, 비트 팩킹, PC(5)와의 인터페이스를 위한 마스터 보드(2)와; 상기 슬레이브 보드(1)들과 마스터 보드(2)를 서로 연결해 주는 백 플래인 보드(3)와; 상기 마스터 보드(2)에서 비트열로 전송되어 오는 데이터를 퍼스널 컴퓨터로 전송하는 인터페이스부(4)와; MPEG 표준 복호화 프로그램으로 전송된 비트열을 복호화하여 부호화 시스템의 성능을 확인하는 퍼스널 컴퓨터(5)와; 소오스(6)에서 아날로그로 출력되는 오디오신호를 16비트 PCM의 디지털 데이터로 변환시켜 슬레이브 보드(1)들로 전송하는 6채널의 A/D 변환기(7)로 구성하여 모든 비트율과 표본화율, 채널 조합이 가능하고, 다이내믹 전송 채널 스위칭과 중앙 채널의 가상 부호화를 지원할 수 있으며, 50MHz로 업-클럭킹시 한 개의 프로세서만으로 처리가 가능하고, 사용되는 프로세서의 감소를 통해 제작 비용을 줄일 수 있므며, HDTV 방송등의 응용시 부호화 시간 지연도 줄일 수 있고, 다른 프로세서나 ASIC 등의 응용에 활용할 수 있도록 한 것이다.The present invention relates to a real-time processing apparatus and method for an HDTV audio encoder, and more particularly, to a system and method for real-time processing of an HDTV audio coder, including five slave boards 1 for performing subband analysis and psychoacoustic modeling; A master board 2 for channel matrixing, bit allocation, quantization, bit packing, and interface with the PC 5; A backplane board 3 for connecting the slave boards 1 to the master board 2; An interface unit 4 for transmitting data transmitted from the master board 2 to the bit stream to a personal computer; A personal computer 5 for decoding the bit stream transmitted by the MPEG standard decoding program to check the performance of the encoding system; A 6-channel A / D converter 7 for converting an audio signal output from the source 6 to an analog signal into a 16-bit PCM digital data and transmitting the same to the slave boards 1, It can support dynamic transmission channel switching and virtual encoding of the central channel. It can process only one processor when up-clocking at 50MHz, reduce manufacturing cost by reducing the used processor, It is possible to reduce the coding time delay in application of HDTV broadcasting, etc., and to utilize it in applications of other processors and ASICs.
Description
본 발명은 범용 DPS를 이용한 HDTV 오디오 부호화기의 실시간 처리장치 및 그 방법에 관한 것으로, 더욱 상세히는 MPEG-2 계층 2의 48KHz 표본화율에서 5.1채널, 640Kbps까지 실시간 처리할 수 있도록 하여 그 이하의 모든 비트율과 표본화율, 채널 조합이 가능하고, 또 다채널 부호화를 보다 효과적으로 수행하기 위한 방법으로 MPEG-2에서 제안한 복합 부호화(composite coding) 중 다이내믹 전송 채널 스위칭과 중앙 채널의 가상 부호화(phantom coding)를 지원할 수 있으며, 각 서브루틴의 고속화 및 최적화는 2개의 프로세서로 처리하던 슬레이브 보드 수행루틴을 50MHz로 업-클럭킹시 한 개의 프로세서만으로 처리가 가능하고, 또 4개의 프로세서가 있어야 실시간 처리가 가능한 마스터 보드의 다채널 처리도 고속 알고리듬을 적용하여 2개의 프로세서만으로 처리할 수 있도록 하여 사용되는 프로세서의 감소를 통해 제작 비용을 줄일 수 있고, 또 HDTV 방송등의 응용시에 중요한 문제인 부호화 시간 지연(coding delay)도 줄일 수 있으며 최적화된 프로그램은 범용 DSP 프로세서를 이용하여 개발하므로써 다른 프로세서나 ASIC 등의 응용에 활용할 수 있도록 발명된 것이다.The present invention relates to a real-time processing apparatus and method for an HDTV audio coder using a general-purpose DPS, and more particularly, to a method and apparatus for real- (2), which is a method for performing multichannel coding more efficiently, and supports dynamic transmission channel switching and phantom coding of a central channel in the composite coding proposed in MPEG-2 Speeding and optimization of each subroutine can be achieved by up-clocking the slave board execution routine, which was processed by two processors, to a single 50MHz processor, Multi-channel processing can be done with only two processors by applying high-speed algorithm In addition, it is possible to reduce the manufacturing cost by reducing the number of processors used, and also to reduce the coding delay, which is an important problem in applications such as HDTV broadcasting. The optimized program can be developed using a general- And ASICs.
통상, 아날로그 오디오에 비하여 디지털 오디오가 갖는 장점은 대역폭과 동적 영역(Dynamic Range)이 넓고 복사할 때 음질 손상이 없다는 점이다.In general, the advantage of digital audio over analog audio is that it has a wide bandwidth, dynamic range, and no loss of sound quality when copied.
이러한 디지털 방식 오디오 기술은 현재 CD(Compact Disk)를 비롯하여 MD(Mini Disk), DCC(Digital Compact Cassette), CD-I(Compact Disk-Interactive) 등의 저장 매체에 응용되고 있으며, DBS(Direct Broadcasting Satellite)를 통한 디지털 방송, 그리고 앞으로 있을 HDTV(High Definition TeleVision) 방송 등에도 사용된다.Such digital audio technology is currently being applied to storage media such as CD (Compact Disk), MD (Mini Disk), DCC (Digital Compact Cassette) and CD-I (Compact Disk-Interactive) ), And future HDTV (High Definition TeleVision) broadcasting.
그러나 전송과 저장에서의 문제점을 줄이기 위해서는 신호의 압축이 불가피하며 압축 부호화한 오디오 신호는 복호화한 후의 주관적 음질이 기존 음질과 거의 동일하도록 유지되는 효과적인 압축 기법이 사용돼야만 한다.However, compression of the signal is inevitable in order to reduce problems in transmission and storage, and an effective compression technique in which a compression-coded audio signal is maintained such that the subjective sound quality after decoding is kept substantially equal to the existing sound quality must be used.
이에 대한 대응책으로 국제 표준화 기구(ISO : International Standard Organization) 산하의 동영상 전문가 그룹(MPEG : Moving Picture Experts Group)에서는 디지털 방식의 HDTV와 같은 방송 매체에 적용가능하고 다채널, 음성 다중 등의 부가 서비스에 대한 지원이 가능하며, 5채널 이상의 오디오를 처리할 수 있도록 동영상과 더불어 CD 수준의 디지털 오디오를 6 ∼ 40 Mbit/s의 전송률로 압축할 수 있는 MPEG-2 표준안 ISO/IEC 13818-3을 1994년 11월에 최종적인 국제 표준안으로 결정하였으며 97년 2월에 불분명했던 내용을 명확히 정의한 표준안을 새롭게 발표하였다.As a countermeasure against this, the Moving Picture Experts Group (MPEG) under the International Standard Organization (ISO) can apply to broadcast media such as digital HDTV, MPEG-2 standard ISO / IEC 13818-3, which can compress CD-level digital audio at 6 to 40 Mbit / s transfer rate with moving pictures to process more than 5 channels of audio, It was decided as the final international standard in November, and the standard which clarified contents which was unclear in February 1997 was newly announced.
세계 각국에서는 이 기술을 선점하기 위해 고속 알고리듬, 단일칩 제조 기술 등에 대한 연구를 진행하고 있다. 많은 수요가 예상되고 계산량이 상대적으로 적은 복호화기의 경우 단일 칩으로 제조되는 등 활발한 개발이 이루어 지고 있으나, 방송국, 녹음 스튜디오등 한정된 수요만을 가지고 있는 부호화기의 경우는 개발이 지연되고 있는 실정이다.In order to preoccupy this technology, we are studying high speed algorithm and single chip manufacturing technology. In the case of decoders with a relatively small amount of computation and a lot of demand, it is being actively developed such as a single chip. However, in the case of an encoder having only a limited demand such as a broadcasting station and a recording studio, development is delayed.
하지만, 실제로 MPEG-2 알고리듬을 방송이나 멀티미디어 시스템 등에 이용하기 위해서는 실시간 처리가 가능한 부호화 및 복호화 시스템이 필요하며 계산량이 많은 부호화기를 실시간으로 구현하는 것이 가장 큰 과제로 대두되고 있는 실정이다.However, in order to actually use the MPEG-2 algorithm in a broadcast or multimedia system, a real-time encoding and decoding system is required, and realization of an encoder having a large amount of computation is becoming a great challenge.
본 발명은 상기한 제반 문제점을 해결하기 위하여 안출한 것으로, MPEG-2 계층 2의 48KHz 표본화율에서 5.1채널, 640Kbps까지 실시간 처리할 수 있도록 하여 그 이하의 모든 비트율과 표본화율, 채널 조합이 가능하고, 또 다이내믹 전송 채널 스위칭과 중앙 채널의 가상 부호화를 지원할 수 있으며, 50MHz로 업-클럭킹시 한 개의 프로세서만으로 처리가 가능하고, 또 4개의 프로세서가 있어야 실시간 처리가 가능한 마스터 보드의 다채널 처리도 고속 알고리듬을 적용하여 2개의 프로세서만으로 처리할 수 있도록 하여 사용되는 프로세서의 감소를 통해 제작 비용을 줄일 수 있고, HDTV 방송등의 응용시에 중요한 문제인 부호화 시간 지연도 줄일 수 있음은 물론 다른 프로세서나 ASIC 등의 응용에 활용할 수 있는 HDTV 오디오 부호화기의 실시간 처리장치 및 그 방법을 제공하고자 한다.The present invention has been made to solve the above problems, and it is an object of the present invention to provide a method and apparatus for real-time processing of 5.1 channel and 640 Kbps at 48 KHz sampling rate of MPEG-2 layer 2, , Dynamic transmission channel switching and virtual channel encoding can be supported. Up-clocking at 50MHz enables processing with only one processor. In addition, the multi-channel processing of a master board capable of real-time processing with four processors It is possible to reduce the manufacturing cost by reducing the number of processors used and to reduce the coding time delay which is an important problem in the application such as HDTV broadcasting, And a method for real time processing of an HDTV audio coder which can be utilized in the application of I will.
이러한 본 발명의 목적은, 각각의 채널 오디오 데이터를 입력 받아 서브밴드 분석과 심리 음향 모델링을 수행하는 5개의 슬레이브 보드와; 채널 매트릭싱(Matrixing), 비트 할당, 양자화, 비트 팩킹, 그리고 PC와의 인터페이스를 위한 마스터 보드와; 상기 슬레이브 보드들과 마스터 보드를 서로 연결해 주는 백 플래인(Back plane) 보드와; 상기 마스터 보드에서 비트열로 전송되어 오는 데이터를 퍼스널 컴퓨터로 전송하는 인터페이스부와; MPEG 표준 복호화 프로그램으로 전송된 비트열을 복호화하여 부호화 시스템의 성능을 확인하는 퍼스널 컴퓨터(PC)와; CD 플레이어나 DAT(Digital Audio Tape) 등과 같은 소오스(Source)에서 아날로그로 출력되는 오디오신호를 16비트 PCM의 디지털 데이터로 변환시켜 상기 슬레이브 보드들로 전송하는 6채널의 A/D 변환기로 구성하여, 병렬 구조로 오디오 데이터를 처리하는 단계와; 서브밴드 분석을 FAST DCT 알고리듬으로 고속 처리하여 계산속도를 높이는 단계와; 슬레이브 보드간의 듀얼 포트 램을 이용하여 데이터를 주고 받는 단계와; 각각의 슬레이브 보드의 결과를 듀얼 포트램을 통하여 마스터로 전달하는 단계와; 마스터 보드 하드웨어가 슬레이브보드에서 데이터를 넘겨 받아 종합적으로 처리하는 단계와; 마스터 보드 하드웨어에서 비트 할당시 효율적인 알고리듬을 사용하여 계산량을 현격히 줄이는 단계와; 최종적으로 PC와의 인터페이스를 통하는 단계를 수행토록 하므로써 달성할 수 있다.It is an object of the present invention to provide a system and method for a mobile communication system, which comprises five slave boards for receiving respective channel audio data and performing subband analysis and psychoacoustic modeling; A master board for channel matrixing, bit allocation, quantization, bit packing, and interface with a PC; A back plane board connecting the slave boards to the master board; An interface unit for transmitting data transmitted from the master board to a bit string to a personal computer; A personal computer (PC) for decoding the bit stream transmitted by the MPEG standard decoding program to check the performance of the encoding system; A 6-channel A / D converter for converting an audio signal, which is analog-outputted from a source such as a CD player or DAT (Digital Audio Tape), into 16-bit PCM digital data and transmitting the digital data to the slave boards, Processing the audio data in a parallel structure; A step of fast processing the subband analysis with the FAST DCT algorithm to increase the calculation speed; Exchanging data using a dual port RAM between the slave boards; Transferring the results of each slave board to the master via the dual port RAM; The master board hardware receiving data from the slave board and collectively processing the data; Using the efficient algorithm for bit allocation in the master board hardware; And finally to perform a step through the interface with the PC.
따라서, MPEG-2 계층 2의 48KHz 표본화율에서 5.1채널, 640Kbps까지 실시간 처리할 수 있어 그 이하의 모든 비트율과 표본화율, 채널 조합이 가능하고, 또 다이내믹 전송 채널 스위칭과 중앙 채널의 가상 부호화를 지원할 수 있으며, 50MHz로 업-클럭킹시 한 개의 프로세서만으로 처리가 가능하고, 또 4개의 프로세서가 있어야 실시간 처리가 가능한 마스터 보드의 다채널 처리도 고속 알고리듬을 적용하여 2개의 프로세서만으로 처리할 수 있으므로 사용되는 프로세서의 감소를 통해 제작 비용을 줄일 수 있고, HDTV 방송등의 응용시에 중요한 문제인 부호화 시간 지연도 줄일 수 있음은 물론 다른 프로세서나 ASIC 등의 응용에 활용할 수 있는 것이다.Therefore, real-time processing can be performed in 5.1-channel and 640-Kbps at 48 KHz sampling rate of MPEG-2 layer 2, so that all bit rates, sampling rates, and channel combinations below are possible, and dynamic transmission channel switching and virtual channel encoding are supported It is possible to process only one processor when up-clocking at 50MHz, and to process multi-channel of master board that can process in real time with 4 processors because it can process with only 2 processors by applying high-speed algorithm. It is possible to reduce the manufacturing cost by reducing the number of processors and reduce the coding time delay which is an important problem in the application such as HDTV broadcasting and can be applied to other applications such as processors and ASICs.
이하, 첨부된 도면에 의거하여 본 발명의 바람직한 실시 예를 상세히 설명하면 다음과 같다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명 장치의 전체 블럭 구성도BRIEF DESCRIPTION OF THE DRAWINGS Fig.
도 2는 본 발명 장치 중 슬레이브 보드의 블록 구성도2 is a block diagram of a slave board
도 3은 두 프로세서간 데이터 전달상태를 보인 상세 회로도FIG. 3 is a detailed circuit diagram showing a data transfer state between two processors.
도 4는 본 발명 장치 중 자료전달 시간조절을 위한 레디신호 발생 회로도FIG. 4 is a diagram illustrating a ready signal generating circuit
도 5는 본 발명 장치 중 마스터 보드의 상세 블록 구성도5 is a detailed block diagram of the master board of the present invention apparatus
도 6은 마스터와 슬레이브간의 데이터 교환을 나타낸 구조도6 is a schematic diagram showing data exchange between a master and a slave
도 7은 마스터 보드와 PC간의 데이터 전달 회로도7 shows a data transfer circuit diagram between the master board and the PC
도 8은 본 발명 장치를 통한 부호화 과정의 작업 할당 알고리듬FIG. 8 is a flowchart illustrating an operation allocation algorithm of the encoding process
도 9는 프로세서 사이의 인터럽트를 통한 동기화 과정을 나타낸 흐름도.9 is a flow chart illustrating a synchronization process through interrupts between processors.
도 10은 도 9중 슬레이브 보드내의 프로세서-a에서 수행하는 프로그램 플로우챠트Fig. 10 is a flowchart of a program flow chart executed by the processor-a in the slave board in Fig.
도 11은 도 10 중 행렬 연산에 대한 블록도FIG. 11 is a block diagram for matrix operation in FIG.
도 12는 도 11의 입력 벡터 변환에 대한 블록도12 is a block diagram for the input vector transformation of FIG.
도 13은 도 9 중 슬레이브 보드내의 프로세서-b에서 수행하는 프로그램 플로우챠트Fig. 13 is a flowchart of a program flow performed by the processor-b in the slave board in Fig.
도 14는 도 9 중 마스터 보드내의 프로세서-a에서 수행하는 프로그램 플로우챠트14 is a flowchart of a program flow performed by the processor-a in the master board of FIG.
도 15는 본 발명 장치에서 사용한 버퍼구조FIG. 15 is a diagram showing a buffer structure
도 16은 도 9 중 마스터 보드내의 프로세서-b에서 수행하는 프로그램 플로우챠트16 is a flowchart of a program flow performed by the processor-b in the master board of FIG.
도 17은 본 발명에서 실험대상으로 사용했던 음원별 비트 할당 인덱스 평균 분포도17 is a graph showing a bit allocation index average distribution per sound source used in the present invention
도 18은 48KHz, 128Kbps에서의 사전 비트 할당 분포도.18 is a pre-bit allocation diagram at 48 KHz, 128 Kbps;
도 19 내지 도 23은 본 발명을 이용하여 실험한 결과를 보여주는 데이터로써,19 to 23 are data showing the results of experiments using the present invention,
도 19는 대표적인 비트 할당 전 MNR 곡선FIG. 19 is a graph showing the MNR curve
도 20은 사전 할당에 따른 MNR 곡선 변화도(전자기타의 경우)20 shows the MNR curve change according to the pre-allocation (in the case of the electric guitar)
도 21은 사전 할당에 따른 MNR 곡선 변화도(첫번째 프레임)21 shows the MNR curve change (first frame) according to the pre-
도 22는 사전 할당에 따른 MNR 곡선 변화도(바이올린의 경우)22 shows the MNR curve change (in the case of violin)
도 23은 비트율에 따른 최종 MNR 곡선 변화도23 is a graph showing a change in the final MNR curve according to the bit rate
도면중 주요 부분에 대한 부호의 설명DESCRIPTION OF THE REFERENCE SYMBOLS
1 : 슬레이브 보드 2 : 마스터 보드1: Slave board 2: Master board
3 : 백 플래인 보드 4 : 인터페이스부3: Backplane board 4: Interface unit
5 : 퍼스널 컴퓨터 6 : 소오스5: personal computer 6: source
7 : A/D 변환기7: A / D converter
도 1은 본 발명 장치의 전체 블럭 구성도를 나타낸 것이고, 도 2는 본 발명 장치 중 슬레이브 보드의 블록 구성도를 나타낸 것이며, 도 3은 두 프로세서간 데이터 전달상태를 보인 상세 회로도를 나타낸 것이고, 도 4는 본 발명 장치 중 자료전달 시간조절을 위한 레디신호 발생 회로도를 나타낸 것이며, 도 5는 본 발명 장치 중 마스터 보드의 상세 블록 구성도를 나타낸 것이다.2 is a block diagram of a slave board of the present invention. FIG. 3 is a detailed circuit diagram showing a data transfer state between two processors, and FIG. 4 shows a ready signal generating circuit diagram for controlling the data transfer time in the inventive device, and FIG. 5 shows a detailed block diagram of the master board of the inventive device.
또, 도 6은 마스터와 슬레이브간의 데이터 교환을 나타낸 구조도를 나타낸 것이고, 도 7은 마스터 보드와 PC간의 데이터 전달 회로도를 나타낸 것이며, 도 8은 본 발명 장치를 통한 부호화 과정의 작업 할당 알고리듬을 나타낸 것이고, 도 9는 프로세서 사이의 인터럽트를 통한 동기화 과정을 나타낸 흐름도를 나타낸 것이며, 도 10은 도 9중 슬레이브 보드내의 프로세서-a에서 수행하는 프로그램 플로우챠트를 나타낸 것이고, 도 11은 도 10 중 행렬 연산에 대한 블록도를 나타낸 것이다.6 is a structural diagram showing data exchange between a master and a slave, FIG. 7 shows a data transmission circuit diagram between a master board and a PC, FIG. 8 shows an operation allocation algorithm of an encoding process according to the present invention device , FIG. 9 is a flowchart showing a synchronization process through interrupts between processors, FIG. 10 shows a program flow chart performed by a processor-a in a slave board in FIG. 9, FIG.
도 12는 도 11의 입력 벡터 변환에 대한 블록도를 나타낸 것이고, 도 13은 도 9 중 슬레이브 보드내의 프로세서-b에서 수행하는 프로그램 플로우챠트를 나타낸 것이며, 도 14은 도 9 중 마스터 보드내의 프로세서-a에서 수행하는 프로그램 플로우챠트를 나타낸 것이고, 도 15는 본 발명 장치에서 사용한 버퍼구조를 나타낸 것이며, 도 16은 도 9 중 마스터 보드내의 프로세서-b에서 수행하는 프로그램 플로우챠트를 나타낸 것이고, 도 17은 본 발명에서 실험대상으로 사용했던 음원별 비트 할당 인덱스 평균 분포도를 나타낸 것이며, 도 18은 48KHz, 128Kbps에서의 사전 비트 할당 분포도를 나타낸 것이다.FIG. 12 is a block diagram of the input vector conversion of FIG. 11, FIG. 13 shows a program flow chart performed by the processor-b in the slave board of FIG. 9, Fig. 15 shows a buffer structure used in the apparatus of the present invention. Fig. 16 shows a program flow chart performed by the processor-b in the master board in Fig. 9, and Fig. FIG. 18 shows a bit allocation index distribution chart for each sound source used in the present invention, and FIG. 18 shows a pre-bit allocation distribution chart at 48 KHz and 128 Kbps.
또한, 도 19 내지 도 23은 본 발명을 이용하여 실험한 결과를 보여주는 데이터로써, 도 19는 대표적인 비트 할당 전 MNR 곡선이고, 도 20은 사전 할당에 따른 MNR 곡선 변화도(전자기타의 경우)이며, 도 21은 사전 할당에 따른 MNR 곡선 변화도(첫번째 프레인)이고, 도 22는 사전 할당에 따른 MNR 곡선 변화도(바이올린의 경우)이며, 도 23은 비트율에 따른 최종 MNR 곡선 변화도이다.19 to 23 are data showing experimental results using the present invention, FIG. 19 is a MNR curve before a typical bit allocation, FIG. 20 is an MNR curve change degree (in the case of an electronic guitar) according to preallocation , FIG. 21 shows the MNR curve change (first frame) according to the pre-allocation, FIG. 22 shows the MNR curve change according to the pre-allocation (in the case of the violin), and FIG. 23 is the final MNR curve change according to the bit rate.
이에 따르면, 각각의 채널 오디오 데이터를 입력 받아 서브밴드 분석과 심리 음향 모델링을 수행하는 5개의 슬레이브 보드(1)와;According to this, five slave boards 1 for receiving the respective channel audio data and performing subband analysis and psychoacoustic modeling;
채널 매트릭싱, 비트 할당, 양자화, 비트 팩킹, 그리고 PC(5)와의 인터페이스를 위한 마스터 보드(2)와;A master board 2 for channel matrixing, bit allocation, quantization, bit packing, and interface with the PC 5;
상기 슬레이브 보드(1)들과 마스터 보드(2)를 서로 연결해 주는 백 플래인 보드(3)와;A backplane board 3 for connecting the slave boards 1 to the master board 2;
상기 마스터 보드(2)에서 비트열로 전송되어 오는 데이터를 퍼스널 컴퓨터로 전송하는 인터페이스부(4)와;An interface unit 4 for transmitting data transmitted from the master board 2 to the bit stream to a personal computer;
MPEG 표준 복호화 프로그램으로 전송된 비트열을 복호화하여 부호화 시스템의 성능을 확인하는 퍼스널 컴퓨터(5)와;A personal computer 5 for decoding the bit stream transmitted by the MPEG standard decoding program to check the performance of the encoding system;
CD 플레이어나 DAT 등과 같은 소오스(6)에서 아날로그로 출력되는 오디오신호를 16비트 PCM의 디지털 데이터로 변환시켜 상기 슬레이브 보드(1)들로 전송하는 6채널의 A/D 변환기(7)로 구성된 것을 기본적인 특징으로 한다.And a 6-channel A / D converter 7 for converting an audio signal, which is analog-outputted from a source 6 such as a CD player or a DAT, into 16-bit PCM digital data and transmitting the digital data to the slave boards 1 Basic features.
이때, 1 채널의 서브밴드 분석과 심리 음향 모델 처리를 담당하는 슬레이브 보드(1)들은 특정회사의 제품으로써 TMS320C30이라 칭하는 2개의 프로세서-a,b(11)(12)를 사용하고 있으며, 서브 밴드 분석과 심리 음향 모델 분석이 끝난 각 채널의 데이터를 함께 묶어서 처리해야 하는 비트 할당과 양자화 과정, 그리고 비트열 포맷팅 작업을 담당하는 마스터 보드는 1개의 프로세서로 구성되어 있었다.At this time, the slave boards 1, which are responsible for subband analysis and psychoacoustic model processing of one channel, use two processors -a, b (11), and 12 (TMS320C30) Analysis and Psychoacoustic Model The master board, which is responsible for bit allocation and quantization process and bit column formatting process, which must process data of each analyzed channel together, was composed of one processor.
또한, 본 발명에서 구현된 시스템은 다채널 처리의 확장된 역할을 수행하기 위해 마스터 보드(2)에도 프로세서를 2개 사용한 동시에 연산 처리 능력을 확장하기 위해 기존의 33MHz 프로세서뿐 아니라, 최대 50MHz 프로세서의 사용도 고려하여 구성하였다.In addition, the system implemented in the present invention uses two processors in the master board 2 to perform an extended role of multi-channel processing, Also,
추가된 1개의 프로세서에서는 다채널 비트 할당 과정만을 전담하도록 하였으며, 구성된 시스템내에서 높은 비트율로 다채널 부호화가 가능하도록 몇가지 고속 알고리듬을 적용하였고, 메모리 배치와 반복 루프의 최적화를 통해 서브루틴별 수행시간을 개선하였으며, 각 프로세서사이의 적절한 업무분담과 동기화를 통해 코딩 시간 지연(Coding Delay)을 최소화하였다.One additional processor dedicated only to multi-channel bit allocation, several high-speed algorithms were applied to enable multi-channel coding at a high bit rate within the configured system, and the execution time per subroutine And the coding delay is minimized through appropriate task sharing and synchronization between processors.
또, 소오스(6)와 슬레이브 보드(1) 사이에는 6채널 A/D 변환기(7)가 있으므로 입력 소오스(6)는 CD 플레이어나 DAT(Digital Audio Tape)의 폰(Phone)출력이 될 수도 있고, 5개의 마이크를 앰프를 통해서 연결하여 직접 5채널의 데이터를 입력할 수도 있다.Since the 6-channel A / D converter 7 is provided between the source 6 and the slave board 1, the input source 6 may be a CD player or a Phone output of DAT (Digital Audio Tape) , 5 microphones can be connected directly through the amplifier to input 5 channels of data.
이 때, CD 플레이어나 DAT에서 나오는 D/A출력과 A/D 변환기(7)의 정확도에 의해 약간의 오차가 생길 수 있으나 이러한 오차는 거의 무시할 수 있다는 것이 실험적으로 밝혀졌다.At this time, it is experimentally found that although some errors may occur due to the accuracy of the D / A output from the CD player or the DAT and the A / D converter 7, this error can be neglected.
위와 같이 변환된 16비트 PCM샘플은 슬레이브 보드(1)들의 프로세서에 내장된 직렬 포트를 이용하여 메모리에 저장되고 부호화 되며, 도 2에 나타난 바와 같이 슬레이브 보드(1)들에 있는 각각의 프로세서는 수개의 듀얼 포트(Dual-port) RAM(13)을 이용하여 서로 데이터를 교환한 다음 각각의 루틴을 수행한다.The converted 16-bit PCM samples are stored and encoded in a memory using a serial port built in the processor of the slave boards 1, and each processor in the slave boards 1, as shown in FIG. 2, And uses the dual-port RAM 13 to exchange data with each other, and then performs each routine.
또, 마스터 보드(2)는 각 슬레이브 보드(1)들에서 처리가 끝난 데이터를 역시 듀얼 포트 RAM을 이용하여 넘겨받아 비트 할당, 양자화, 그리고 비트열 포맷팅을 한다.In addition, the master board 2 receives the processed data from each slave board 1 using the dual port RAM, performs bit allocation, quantization, and bit string formatting.
최종 처리가 끝난 비트열은 프로세서에 내장된 타이머와 직렬 포트(Serial Port)를 이용하여 마스터 보드(2)에서 PC(5)로 전송되고 PC(5)에서는 직렬-병렬 변환기(Serial-to-Parallel Converter)와 DMA(Direct Memory Access)를 사용하여 전송된 비트열을 하드 디스크에 저장한다.The final processed bit stream is transmitted from the master board 2 to the PC 5 using a timer and a serial port built in the processor and is transmitted to the PC 5 through a serial- Converter) and DMA (Direct Memory Access) to the hard disk.
저장한 데이터는 다채널 D/A 변환기로 전송되어 사용자가 원하는 채널 구성대로 재생하여 음질을 평가할 수 있고, 비디오 비트열과 통합하기 위한 시스템으로도 전송할 수 있다The stored data is transmitted to a multi-channel D / A converter, and can be reproduced according to a channel configuration desired by the user to evaluate the sound quality and transmitted to a system for integrating with a video bit stream
상기한 슬레이브 보드(1)는 도 2와 같이 크게 5개의 부분으로 나눌 수 있다.The slave board 1 may be divided into five parts as shown in FIG.
그 첫번째는 두개의 프로세서-a,b(11)(12)부분이고, 두번째는 프로세서간의 정보 전달을 위한 듀얼 포트 RAM(13) 부분이며, 세번째는 프로그램이나 결과를 저장하기 위해 각 프로세서에 필요한 메모리(14) 부분이고, 네번째는 슬레이브 보드(1)와 마스터 보드(2)간의 데이터 전송을 위한 듀얼 포트 RAM(15)이며, 다섯째는 메모리 어드레스를 디코딩하여 웨이트 수를 변경해 주는 디코딩 회로 부분이다.The first part is the part of the dual-port RAM 13 for transferring information between the processors, the third part is the memory required for each processor for storing the program or the result, The fourth part is a dual port RAM 15 for data transfer between the slave board 1 and the master board 2 and the fifth part is a decoding circuit part for decoding the memory address to change the number of weights.
MPEG-2 계층 2 알고리듬은 1152샘플을 한 프레임 단위로 하여 부호화가 수행되므로 현재 프레임의 부호화는 다음 프레임 1152샘플이 들어오는 사이(= 1152/44.1KHz = 26.1 msec)에 끝나야 하나, 서브밴드 분석부와 심리음향 부분에서 많은 연산량을 필요로 하므로 33MHz 클럭회로(25)로 부터 클럭신호를 입력받는 프로세서 하나로는 실시간 처리가 어려워진다.Since the MPEG-2 layer 2 algorithm performs encoding with 1152 samples in units of one frame, the encoding of the current frame should end in a period of 1152 / 44.1 KHz = 26.1 msec during the arrival of the next frame of 1152 samples, Since a large amount of computation is required in the psychoacoustic part, real-time processing becomes difficult with one processor that receives the clock signal from the 33 MHz clock circuit 25.
따라서, 실시간 처리를 위해서는 한 채널당 두 개의 프로세서를 사용하고 처리 과정을 파이프 라인화시키면서 각 프로세서가 동시에 동작하는 병렬처리 기법이 사용돼야 한다.Therefore, for real-time processing, a parallel processing technique in which two processors are used per channel and each processor simultaneously operates while the processing is pipelined must be used.
프로세서-a(11)에서 처리한 결과중 프로세서-b(12)에서 심리음향 모델링을 수행하기 위하여 필요한 데이터는 최대 스케일 팩터(Maximum scale factor) 값과 FFT를 통해 얻은 파워 스펙트럼이이며, 이 데이터를 전송하는 데에는 슬레이브 프로세서-a,b(11)(12) 사이에 있는 공유된 듀얼 포트 RAM(13)이 사용된다.The data required to perform the psychoacoustic modeling in the processor-b 12 among the results processed by the processor-a 11 are the maximum scale factor and the power spectrum obtained through the FFT, The shared dual port RAM 13 between the slave processors -a, b (11) 12 is used for transfer.
슬레이브 보드(1) 내에 있는 두 개의 프로세서간의 데이터 교환과 마스터, 슬레이브 보드간의 정보 전달을 위해서는 듀얼 포트 RAM(15)을 사용한다.The dual port RAM 15 is used for exchanging data between the two processors in the slave board 1 and transferring information between the master and the slave boards.
도 2에서 볼 수 있듯이 완전히 대칭된 구조 사이에 듀얼 포트 RAM(13)을 연결하여 두 프로세서 사이의 정보 전달을 용이하게 하고 각 프로세서에 할당된 듀얼 포트 RAM(15)의 한 쪽을 백 플래인(Back plane)(16)에 연결하여 마스터 보드(2)와의 정보 전달에 이용한다.As can be seen in FIG. 2, a dual port RAM 13 is connected between fully symmetrical structures to facilitate information transfer between the two processors, and one of the dual port RAMs 15 allocated to each processor is connected to a backplane Back plane 16 to be used for transferring information with the master board 2.
사용된 듀얼 포트 RAM(13,15)은 제로 웨이트 접근이 가능한 속도를 가지고 있어서 실시간 처리에 적합하며, 양쪽에서 메모리 접근을 할 때 일어날 수 있는 충돌을 방지하기 위한 BUSY핀이 내장되어 있어서 두 프로세서간의 효과적인 정보 전달이 가능하다.The dual port RAMs 13 and 15 used have a zero-weight access speed, which is suitable for real-time processing, and has a built-in BUSY pin to prevent collisions when accessing memory from both sides, Effective information transfer is possible.
또한 이것에는 양방향 통신을 위한 인터럽트(interrupt) 선을 갖추고 있어서 어느 한쪽에 연결된 시스템이 정해진 번지(왼쪽은 7ffh, 오른쪽은 7feh)에 데이터를 쓰면 다른 한 쪽에 연결된 시스템으로 자동으로 인터럽트가 요청되므로 실시간 알고리듬의 전체적인 동기를 맞추기가 용이하다.In addition, it has an interrupt line for bidirectional communication, so if a system connected to either side writes data to a fixed address (7ffh on the left and 7feh on the right), the system automatically requests an interrupt to the system connected to the other side. It is easy to adjust the overall motivation of the user.
듀얼 포트 RAM을 사용함으로써 모든 프로세서는 다른 프로세서의 존재를 인식하지 못한 채 오직 자기에게 할당된 메모리만 있는 시스템처럼 주어진 작업을 수행할 수 있고 수행 결과를 쉽게 주고 받을 수 있다.By using dual-port RAM, all processors can perform a given task as easily as a system with only the memory allocated to them, without being aware of the existence of other processors, and can easily exchange the results.
도 3은 두 개의 프로세서-a,b(11)(12)가 듀얼 포트 RAM(13)을 사용하여 데이터를 교환하고 인터럽트를 발생시키는 것을 나타낸 것이다.3 shows that two processors-a, b (11) 12 use the dual port RAM 13 to exchange data and generate an interrupt.
각각의 프로세서-a,b(11)(12)는 독립적인 로칼 메모리로서 32K 워드의 RAM과 같은 크기의 ROM 메모리(14)을 가지고 있다.Each of the processors -a, b (11) 12 has a ROM memory 14 of the same size as a 32K word RAM as an independent local memory.
상기 ROM 메모리(14)에는 슬레이브 보드(1)에 필요한 프로그램 코드, 여러가지 표, 그리고 이것들을 RAM으로 옮겨주기 위한 프로그램이 기록되어 있어서 독립적인(stand-alone) 시스템 동작이 가능하며 RAM을 이용하여 중간 단계의 연산결과를 저장한다.In the ROM memory 14, a program code necessary for the slave board 1, various tables, and a program for transferring the program codes to the RAM are recorded, so that a stand-alone system operation is possible. And stores the operation result of the step.
빠른 ROM을 사용하여 독립 시스템을 구성해도 되지만 쉽게 구할 수 있고 값이 싼 저속 ROM을 사용하여 리셋 후에 부호화에 필요한 모든 프로그램 코드와 자료를 고속 RAM으로 옮겨 실행하도록 하여 시스테 구성을 용이하게 하였다.It is possible to construct independent system by using fast ROM, but it is easy to configure system by executing all program code and data necessary for encoding after high-speed low-speed ROM which can be obtained easily and cheaply to high-speed RAM.
어드레스 디코딩 소자로는 GAL22V10을 사용하였다.GAL22V10 was used as the address decoding device.
이것은 최대 12개의 입력과 10개의 출력을 이용할 수 있으므로 슬레이브 보드(1)내의 모든 메모리에 필요한 여러 가지 제어 신호를 디코딩하는데 적절하고, 최대 7nsec의 전송 지연을 갖기 때문에 회로내의 RAM을 제로 웨이트로 접근하는 데 적절하다.It is capable of using up to 12 inputs and 10 outputs, so it is suitable for decoding various control signals required for all memories in the slave board (1) and has a transfer delay of up to 7 nsec. It is appropriate.
모든 프로그램이 완성된 후에는 ROM을 이용하여 인터럽트 벡터 테이블을 구성하게 되는데, ROM의 속도가 느려 제로 웨이트로 접근할 수 없으므로 인터럽트가 발생한 뒤 ROM을 억세스 할 때마다 웨이트 수를 변경해줘야 한다.After all the programs are completed, the interrupt vector table is constructed using the ROM. Since the ROM speed is slow and zero-weight access is not possible, the number of weights must be changed each time the ROM is accessed after the interrupt occurs.
이러한 웨이트 수의 변경은 프로세서 내에 있는 소프트웨어적 웨이트수 제어기능으로 처리할 수 없다. 왜냐하면 인터럽트가 발생하는 순간 프로세서 내부에서 인터럽트 벡터 테이블을 참조하여 해당 인터럽트 번지로 점프하기 때문이다.Such a change in the number of weights can not be handled by the software weight number control function in the processor. This is because the interrupt vector table is referenced from the inside of the processor as soon as the interrupt occurs, and the CPU jumps to the corresponding interrupt address.
따라서 이러한 작업을 수행하기 위해서는 하드웨어적으로 웨이트를 발생하여 RAM과 ROM의 웨이트수를 자동적으로 변경해야만 한다.Therefore, in order to perform such a task, it is necessary to automatically change the number of weights of RAM and ROM by generating a hardware weight.
프로세서에는 하드웨어적으로 웨이트 수를 변경가능하도록 해주는 RDY신호(Ready)가 있다.The processor has an RDY signal (Ready) that allows hardware to change the number of weights.
RAM은 제로 웨이트로 접근가능하므로 ROM이 위치한 영역의 어드레스가 발생할 때만 웨이트수를 증가시켜주는 회로를 설계하여 이 레디(RDY)신호에 입력해주면 자동적으로 웨이트수를 조절할 수 있다.Since the RAM can be accessed with zero weight, a circuit that increases the number of weights only when the address of the ROM area is generated can be designed and the number of weights can be automatically adjusted by inputting into the RDY signal.
도 4는 이러한 레디신호 발생회로를 나타낸 것으로, 여기서 여러 플립플롭의 출력중 한 개를 선택하므로써 웨이트 수를 조절할 수 있다.FIG. 4 shows such a ready signal generating circuit, wherein the number of weights can be adjusted by selecting one of the outputs of the various flip-flops.
또, 도 5는 개선된 마스터 보드(2)의 구성을 나타낸 것으로, 최대 5개 채널에 대하여 비트 할당, 양자화, 그리고 비트열 포맷팅을 수행하는 마스터 보드(2)는 두 개의 프로세서-a,b(21)(22), 슬레이브 보드의 구조처럼 두 프로세서 간의 데이터를 교환하기 위한 듀얼 포트 램(27), 96K ROM(23)과 64K RAM(24), 클럭 회로(25,26), 어드레스 디코딩 회로로 이루어져 있고, 슬레이브 보드(1)와의 데이터 교환을 위하여 백 플래인 커넥터를 통하여 각 슬레이브 보드(1)의 듀얼 포트 RAM과 연결되어 있다.(도6)5 shows a configuration of the improved master board 2. The master board 2 that performs bit allocation, quantization, and bit stream formatting for a maximum of five channels includes two processors -a, b ( A dual port RAM 27 for exchanging data between two processors such as a slave board structure, a 96K ROM 23 and a 64K RAM 24, clock circuits 25 and 26, an address decoding circuit And is connected to the dual port RAM of each slave board 1 via a backplane connector for data exchange with the slave board 1 (Figure 6).
이전의 마스터 보드에 비하여 한 개의 프로세서가 추가되었고 사용자 요구사항을 PC(5)로부터 받아들이기 위한 로직(28)이 추가되었다.One processor has been added to the previous master board and logic 28 to accept user requirements from the PC 5 has been added.
또, 스탠드 얼론(Stand-alone) 시스템을 구축하기 위하여 ROM과 RAM의 크기를 증가하였고, 또 마스터 보드(2)에 장착될 프로세서는 최대 50MHz의 속도를 가진 프로세서에서부터 슬레이브 보드(1)와 같은 기존의 33MHz 프로세서까지를 지원할 수 있도록 듀얼 클럭회로(25,26)를 추가하였다.In addition, the size of the ROM and RAM has been increased to build a stand-alone system, and the processor to be mounted on the master board 2 has been expanded from a processor having a speed of up to 50 MHz to a processor such as a slave board 1 Dual clock circuits 25 and 26 are added to support up to 33MHz processors.
기존의 마스터 보드에서 96Kbps 비트율을 기준으로 한 채널에 대한 비트 할당과 양자화, 비트열 포맷 과정을 수행한 결과 수행시간이 약 12msec가 소요되었다.As a result of performing bit allocation, quantization and bit stream formatting process on a channel based on a 96 Kbps bit rate in the conventional master board, the execution time was about 12 msec.
다채널 처리시 마스터 보드(2)는 모든 채널의 데이터에 대해 작업을 수행해야 하기 때문에 채널수가 증가하면 이에 비례하여 수행시간도 증가한다.In the multi-channel processing, since the master board 2 has to perform operations on data of all channels, the execution time increases proportionally as the number of channels increases.
채널당 비트율이 96Kbps인 5채널 데이터에 대한 수행 시간을 한 채널때의 수행시간으로 단순 예측하면 약 60msec가 걸린다는 결론이 나온다.It is concluded that the execution time of the 5-channel data having the bit rate per channel of 96 Kbps is estimated to be about 60 msec by simply estimating the execution time in one channel.
표본화 주파수가 48KHz일 때 한 프레임 구간이 24msec이므로 프로세서가 1개이던 기존의 마스터 보드로는 다채널에 대한 실시간 처리가 불가능하다.When the sampling frequency is 48KHz, one frame period is 24msec, so it is impossible to process multi-channel in real time with the existing master board which has one processor.
따라서, 개선된 마스터 보드(2)는 프로세서가 2개이므로 각각의 프로세서가 24msec 분량의 루틴을 담당하면 최대 48msec까지 실시간 처리가 가능하다고 말할 수 있다.Therefore, since the improved master board 2 has two processors, it can be said that real time processing is possible up to 48 msec if each processor takes a routine of 24 msec.
또한 50MHz 프로세서로 교체할 경우 같은 처리 분량에 대해 기존 33MHz 프로세서의 33/50안에 수행이 끝나게 된다.In addition, replacing a 50MHz processor will result in 33/50 of the existing 33MHz processor for the same amount of processing.
즉, 33MHz 프로세서에서 60msec 걸리던 분량의 계산은 약 39.6msec안에 처리할 수 있게 된다.In other words, the calculation of the amount of time that takes 60 msec from the 33 MHz processor can be processed within about 39.6 msec.
그러므로 한 채널이 96Kbps인 5채널 입력에 대한 실시간 처리가 가능해진다는 수치분석이 나오며, 이후 비트 할당 과정의 개선등 소프트웨어 성능 향상을 통해 보다 높은 비트율의 다채널 데이터를 처리할 수 있다.Therefore, numerical analysis that real-time processing of 5 channel input with one channel is possible becomes possible, and it can process multi-channel data with higher bit rate by improving software performance such as improvement of bit allocation process.
마스터 보드(2)는 최대 5개 슬레이브 보드(1)에서의 결과를 함께 처리해야 하므로 모든 슬레이브 보드(1)와의 정보 교환이 가능하여야 한다.Since the master board 2 must process the results of up to five slave boards 1, information exchange with all the slave boards 1 must be possible.
마스터 보드(2)는 백 플래인(16)을 통하여 각 슬레이브 보드(1)의 듀얼 포트 RAM에 연결되어 있으므로 도 6과 같이 각 슬레이브 보드에 있는 듀얼 포트 RAM을 자기의 로컬 메모리처럼 이용하여 슬레이브 보드와 정보 교환을 한다.Since the master board 2 is connected to the dual port RAM of each slave board 1 through the backplane 16, the dual port RAM of each slave board is used as its own local memory, And exchange information.
마스터 보드(2)와 슬레이브 보드(1)를 연결하는 듀얼 포트 RAM의 영향으로 마스터 보드(2)는 슬레이브 보드(1)의 존재를 인식하지 못한 채 독립적인 시스템처럼 동작할 수 있다.The master board 2 can operate as an independent system without recognizing the existence of the slave board 1 under the influence of the dual port RAM connecting the master board 2 and the slave board 1. [
또한 MPEG-2 부호화 알고리듬을 구현하기 위해서는 모든 시스템이 같은 동기신호를 가져야 하므로 마스터 보드(2)에 있는 리셋 회로와 클럭 회로는 백 플래인(16)을 통하여 각 슬레이브 보드에 연결되어 있다.In order to implement the MPEG-2 encoding algorithm, all the systems must have the same sync signal, so that the reset circuit and the clock circuit in the master board 2 are connected to the respective slave boards through the backplane 16.
최종 비트열 전송을 위하여 프로세서의 직렬 포트가 백 플래인(16)을 통하여 IBM-PC의 직렬-병렬 변환기와 연결되어 있고 사용자 지정사항을 받아들이기 위하여 또다른 직렬 포트가 PC의 다른 인터페이스 회로에 연결되어 있다.For the final bit stream transfer, the serial port of the processor is connected to the serial-to-parallel converter of the IBM-PC via backplane 16 and another serial port is connected to the other interface circuit of the PC .
도 7은 상기 마스터 보드(2)내에 있는 프로세서-b(22)와 인터페이스 보드(4), 그리고 PC(5)사이의 연결을 나타낸 것이다.7 shows the connection between the processor-b 22, the interface board 4, and the PC 5 in the master board 2. As shown in Fig.
프로세서 내부에 있는 직렬 포트(Serial Port)와 타이머를 이용하면 최대 약 8Mbps의 데이터 전송이 가능하다.Using the serial port and timer inside the processor, data transfer of up to about 8Mbps is possible.
마스터 보드(2)는 프레임 단위의 일정한 시간 간격으로 계속해서 슬레이브 보드(1)로부터 데이터를 받아 비트열 포맷팅까지의 필요한 루틴을 처리한다.The master board 2 continuously receives the data from the slave board 1 at a predetermined time interval on a frame basis and processes necessary routines from the bit string formatting.
비트열 팩킹을 마치고 로컬 RAM에 저장되어 있는 최종 비트열은 매 프레임 단위로 PC(5)로 전송된다.After finishing the bit packing, the last bit stream stored in the local RAM is transmitted to the PC 5 every frame.
50MHz 클럭회로(26)으로 부터 프로세서에 입력되는 50MHz 시스템 클럭을 소프트웨어적으로 16분주하여 3.125 MHz를 만든 후, 이를 프로세서에서 PC로의 직렬 데이터 전송에 필요한 전송 클락으로 사용하였다.The 50 MHz system clock input to the processor from the 50 MHz clock circuit 26 is software 16 times divided by a factor of 3.125 MHz and used as the transmission clock for the serial data transmission from the processor to the PC.
또, 16비트 전송을 알리는 프레임 동기신호는 프로세서 내부에 있는 타이머를 이용하여 생성시켰다. 동시에 이 신호를 PC로 전송함으로서 PC쪽에서 데이터를 하드에 저장하는 데 이용하도록 하였다.In addition, a frame synchronizing signal for 16-bit transmission is generated by using a timer inside the processor. At the same time, this signal was sent to the PC, which was used to store the data on the PC side.
따라서 프로세서 쪽에서는 직렬 데이터 핀인 DX0와 16비트 단위로 데이터의 전송을 PC쪽에 알리는 FSX0, 그리고 전송 클락인 CLKX0신호를 PC쪽으로 보낸다.Therefore, the processor sends DX0, the serial data pin, and FSX0, which sends the data to the PC side in 16-bit units, and the CLKX0 signal, which is the transfer clock, to the PC.
PC(5)의 SLOT(병렬 포트를 확장하기 위한 장치)에 장착된 인터페이스 보드내의 비트열 수신 회로에서는 8비트 직렬-병렬 변환기 두 개를 순차적으로 연결하여 직렬로 전송된 데이터를 16비트 데이터로 변환한다.In the bit string receiving circuit in the interface board mounted on the SLOT (device for extending the parallel port) of the PC (5), two pieces of 8-bit serial-to-parallel converters are sequentially connected to convert serially transmitted data into 16-bit data do.
16비트의 데이터가 입력되었음을 알리는 FSX0 신호는 바로 PC의 DMA 요구신호로 사용하여 변환된 16비트 데이터를 메모리에 저장됨에 따라 프로세서는 16비트 단위의 데이터가 전송될 때마다 PC에게 DMA 요구를 하게되고, PC에서는 DACK(DMA Acknowledge) 신호가 발생되는 순간 동안만 전송된 16비트 데이터를 얻어 이것을 하드 디스크에 저장한다.Since the FSX0 signal indicating that 16-bit data is input is used as the DMA request signal of the PC and the converted 16-bit data is stored in the memory, the processor makes a DMA request to the PC every time the 16-bit data is transferred , The PC obtains the 16-bit data transmitted only during the moment when the DACK (DMA Acknowledge) signal is generated and stores it in the hard disk.
참고로 PC 대신 복호화기를 연결하면 직렬-병렬 변환기만 제거한 전체적인 시스템을 그대로 적용할 수 있다.For reference, connecting the decoders instead of the PC can apply the entire system without serial-to-parallel converter.
MPEG-2 실시간 부호화기의 소프트웨어를 구성하는데 있어서 중요한 점은 구현된 하드웨어의 성능하에서 최상의 음질과 높은 비트율, 그리고 다양한 선택사양을 지원할 수 있도록 하는 것이다.An important point in configuring the software of the MPEG-2 real-time encoder is to support the best sound quality, high bit rate, and various options under the performance of the implemented hardware.
이를 위해서 각 처리단계에 실시간 구현에 적합한 고속 알고리듬을 적용하고 각각의 서브루틴을 최적화 시킨 후 이들의 수행시간을 바탕으로 프로세서간에 적절한 업무 분담을 하는 작업이 필요하다.To do this, it is necessary to apply a fast algorithm suitable for real - time implementation to each processing stage, optimize each subroutine, and then allocate appropriate work among the processors based on their execution time.
기존의 부호화기는 2개의 프로세서를 가진 슬레이브 보드와, 1개의 프로세서를 가진 마스터 보드로 이루어져 있었다.The existing encoder consisted of a slave board with two processors and a master board with one processor.
슬레이브 보드(1)에서 처리하는 루틴은 각 채널별로 독립적인 처리가 가능하기 때문에 다채널 확장에 따른 별도의 부담이 생기지 않지만, 마스터 보드(2)에서 처리하는 서브루틴들은 채널 확장에 따른 수행시간 초과의 문제가 발생하게 되었다.The subroutines to be processed by the master board 2 are not overloaded due to the expansion of the channels due to the independent processing of each channel, The problem occurred.
다채널 확장에 따른 마스터 보드(2)의 역할 확대를 대비하여 앞에서 설명한 것처럼 프로세서를 1개 보강하였지만, 충분히 좋은 음질을 얻기 위한 높은 비트율을 지원하기에는 아직 계산 능력이 부족하였다.As described above, in order to expand the role of the master board (2) due to the multi-channel expansion, one processor was reinforced, but the calculation capability was insufficient to support a high bit rate to obtain a sufficient sound quality.
본 발명에서 구현된 MPEG-2 오디오 부호화 알고리듬은 도 8에 나타난 것과 같이, 슬레이브 보드(1)에서 수행되는 작업과, 마스터 보드(2)에서 수행되는 작업으로 크게 나눌 수 있다.As shown in FIG. 8, the MPEG-2 audio encoding algorithm implemented in the present invention can roughly be divided into operations performed on the slave board 1 and operations performed on the master board 2.
각 서브루틴이 채널별로 독립적으로 처리될 수 있는 성격인지, 아니면 모든 채널의 정보를 함께 지녀야 처리 가능한지의 여부에 따라 작업 할당이 이루어지는데, 전자의 경우 슬레이브 보드(1)에 할당하고 후자는 마스터 보드(2)에서 처리해야만 한다.The task assignment is performed according to whether each subroutine can be independently processed for each channel or whether all channel information can be processed together. In the former case, it is assigned to the slave board 1, (2).
비트 할당 과정이나 비트열 포맷팅 과정 등은 모든 채널의 정보를 함께 가지고 있어야 하므로 마스터 보드(2)에서 처리해야 하고, 서브밴드 분석 과정이나 심리 음향 모델 등은 각 채널별 입력 샘플로부터 직접 결과를 얻는 작업이므로 슬레이브 보드(1)에서 처리할 수 있다.Since the bit allocation process or the bit stream formatting process must have information of all channels together, it must be processed by the master board 2. Subband analysis process or psychoacoustic model is a process of obtaining results directly from input samples per channel It can be processed by the slave board 1.
슬레이브 보드(1)에서 처리가능한 작업을 마스터 보드(2)로 가져오게 되면 마스터 보드(2)는 최대 5채널 데이터를 순차적으로 처리해야 하기 때문에 5배 이상 계산 시간이 연장되고 작업량에 부담을 갖게 된다.When a task that can be processed by the slave board 1 is brought to the master board 2, the master board 2 has to process data of up to 5 channels sequentially, so that the calculation time is extended 5 times or more and the workload is burdened .
따라서, 슬레이브 보드(1)에서는 가능한 모든 작업을 처리해서 전송에 필요한 최소한의 결과만을 마스터 보드(2)로 넘겨주도록 해야한다.Therefore, in the slave board 1, it is necessary to process all possible work, and to pass only the minimum required result to the master board 2.
모든 채널의 심리 음향 모델 결과(SMR)를 가지고 있어야 처리가 가능한 비트 할당 과정과 비트 할당 정보로 처리되는 양자화, 그리고 전송을 위한 비트열 포맷팅 과정은 마스터 보드(2)에서 처리해야 하는데, 이 가운데 비트 할당 과정은 채널수가 늘어하면서 수행 시간이 급격하게 증가하여, 마스터 보드(2)내에 두 프로세서를 사용하여도 실시간 처리가 불가능하다.The bit allocation process, the bit allocation process, and the bit stream formatting process, which are required to have a psychoacoustic model result (SMR) of all channels, must be processed by the master board 2, The assignment time increases sharply with the number of channels being increased, so that even if two processors are used in the master board 2, real time processing is impossible.
이를 효율적으로 처리하기 위해 사전 할당 알고리듬을 제안하고 적용하였다.We propose and apply a pre - allocation algorithm for efficient processing.
채널수를 변화시키며 비트 할당 과정의 실제 수행 시간을 측정해 본 결과가 표 1과 같다.Table 1 shows the results of measuring the actual execution time of the bit allocation process by changing the number of channels.
1. 프로세서간 작업 할당과 동기화1. Assigning and synchronizing workloads between processors
다채널 처리를 위한 프로세서 작업 할당시에 가장 바람직한 방향은 가능한 최대한의 작업을 슬레이브 보드(1)에서 끝내고 마스터 보드(2)에서는 채널별 데이터를 모두 모아 프레임 포맷에 맞게 팩킹만을 하도록 하는 것이다.The most preferable direction when allocating a processor task for multi-channel processing is to finish the maximum possible work on the slave board 1, and the master board 2 collects data for each channel and packs only according to the frame format.
그러나 비트 할당 과정의 경우, 모든 채널의 SMR을 함께 비교하여 처리하므로 마스터 보드(2)에서 처리할 수밖에 없다.However, in the case of the bit allocation process, since the SMRs of all the channels are compared with each other and processed, it is forced to be processed by the master board 2.
비트 할당 결과에 따라 서브밴드 샘플에 대해 차등적으로 행해지는 양자화는 채널별로 독립적으로 수행될 수 있지만 수행시간이 일정치 않은 비트 할당 과정 때문에 마스터 보드(2)와 슬레이브 보드(1) 사이에 동기화(synchronization)가 어려워 마스터 보드(2)에서 처리하도록 하였다.The quantization which is performed differentially for the subband samples according to the bit allocation result can be performed independently for each channel but the synchronization between the master board 2 and the slave board 1 synchronization is difficult, so that the master board 2 processes it.
마스터 보드(2)에서 양자화를 수행하게 되면 병렬처리가 안되고 5채널에 대해 순차적으로 모두 수행되어야 하므로 슬레이브 보드(1)에서 행할 때 보다 5배나 긴 수행시간을 필요로 하게 된다.If the quantization is performed in the master board 2, parallel processing is not performed and all of the 5 channels must be sequentially executed. Therefore, the execution time is required to be five times longer than that in the slave board 1.
도 9는 도 8의 작업 할당을 기준으로 각 프로세서별로 할당된 작업과 프로세서사이의 인터럽트를 통한 동기화 과정을 나타낸 흐름도이다.FIG. 9 is a flowchart illustrating a process of synchronizing a task allocated to each processor based on the task allocation shown in FIG. 8 and an interrupt between the processors.
입력 샘플 버퍼에서부터 슬레이브 DSP 프로세서-b(12)까지는 1채널에 대해 보여주고 있고, 마스터 보드(2)의 처리과정은 5채널에 대해 보여준다.From the input sample buffer to the slave DSP processor-b 12, one channel is shown, and the master board 2 processing is shown for five channels.
이때 각 영역의 크기는 수행시간 정도를 대략적으로 나타낸다.At this time, the size of each area represents the approximate execution time.
슬레이브 보드(1) DSP 프로세서-b(12)까지의 처리는 5개의 슬레이브 보드(1)에서 각각의 입력 샘플에 대해 같은 방법으로 병렬적으로 처리된다.The processing up to the slave board (1) DSP processor-b (12) is processed in parallel in the same way for each input sample on the five slave boards (1).
도면상에서의 화살표는 각 서브루틴의 수행이 끝나고 다음 과정에 필요한 데이터를 듀얼포트 RAM을 통해 다른 프로세서에 넘겨주면서 인터럽트를 발생시키는 것을 나타낸다.The arrows on the drawing indicate that the execution of each subroutine is completed and an interrupt is generated by passing the data required for the next process to another processor through the dual port RAM.
한 프레임에 대한 처리를 하는 동안에도 새로 들어오는 입력 샘플을 받기 위해 입력 버퍼는 2개를 사용하여 스위칭시키고 있다. 각 프로세서의 서브루틴 처리가 1152개의 다음 프레임 샘플이 모두 들어오기 전에 끝나지 못하면 실시간 처리 실패가 발생한다.During the processing of one frame, the input buffer is switched using two to receive the incoming input samples. If the subroutine processing of each processor does not finish before all 1152 next frame samples are received, a real-time processing failure occurs.
한 프레임 처리과정을 순차적으로 보면, 먼저 입력 샘플을 받는 슬레이브 보드(1)내의 프로세서-a(11)에서 심리 음향 모델에 사용할 FFT를 가장 먼저 행한다. 이후 1152 샘플이 모두 들어와야 시작할 수 있는 서브밴드 분석 필터 뱅크 과정과 스케일 팩터 코딩까지가 슬레이브 보드(1)내의 프로세서-a(11)에서 수행된다.First, the processor-a 11 in the slave board 1 receiving the input sample first performs an FFT for use in the psychoacoustic model. A subband analysis filter bank process and a scale factor coding process, which can be started after 1152 samples are all received, are performed in the processor-a 11 in the slave board 1.
서브밴드 샘플로부터 얻을 수 있는 각 서브밴드별 음압까지의 결과가 나와야만 슬레이브 보드(1)내 프로세서-b(12)의 심리 음향 모델이 시작될 수 있기 때문에, 슬레이브 보드(1)내 프로세서-a(11)의 한 프레임 작업이 모두 끝난 후에 슬레이브 보드(1)내의 프로세서-b(12)에 인터럽트를 준다.Since the psychoacoustic model of the processor-b 12 in the slave board 1 can be started only when the results up to the sound pressure for each subband obtained from the subband samples can be started, The processor-b 12 in the slave board 1 is interrupted after the completion of one frame operation of the slave board 11.
슬레이브 보드(1)내의 프로세서-b(12)가 첫 번째 프레임에 대한 심리 음향 모델을 수행하는 동안 슬레이브 보드(1)내의 프로세서-a(11)는 두 번째 프레임에 대한 FFT와 서브밴드 분석을 수행하게 된다.While the processor-b 12 in the slave board 1 performs the psychoacoustic model for the first frame, the processor-a 11 in the slave board 1 performs FFT and subband analysis for the second frame .
이때 마스터 보드(2)는 심리 음향 모델 결과인 SMR이 나와야 비트 할당을 시작할 수 있기 때문에 대기상태에 있게 된다.At this time, the master board 2 is in the standby state because the psychological acoustic model result SMR must be issued to start bit allocation.
심리 음향 모델이 끝난 직후 슬레이브 보드(1)내의 프로세서-b(12)에서 마스터 보드(2)로 인터럽트를 주면 각 채널의 심리 음향 모델 수행시간이 같지 않기 때문에(최고 5msec까지 크게 변화함) 채널에 따라 잘못된 SMR 데이터를 가져올 수 있다.If the processor-b 12 in the slave board 1 interrupts the master board 2 immediately after the psychoacoustic model is finished, the psychoacoustic model execution time of each channel is not the same (varies greatly up to 5 msec) It is possible to import incorrect SMR data.
이런 문제를 방지하기 위해 도 9에서처럼 모든 채널의 심리 음향 모델링이 반드시 끝나게 되는 두 번째 프레임의 심리 음향 모델 시작 타이밍과 동시에 마스터 보드(2)에도 인터럽트를 주어 첫 프레임에 대한 비트 할당을 시작하도록 하는 방법을 사용하였다.In order to prevent such a problem, as shown in FIG. 9, there is a method of starting the bit allocation for the first frame by giving an interrupt to the master board 2 at the same time as the psychoacoustic model start timing of the second frame in which the psychoacoustic modeling of all channels necessarily ends Were used.
이 경우 슬레이브 보드(1)내의 프로세서-a(11)에서 첫 번째 프레임의 서브밴드 샘플을 마스터 보드(2)로 넘겨주기 전에 두 번째 서브밴드 분석이 끝나게 되므로 첫 번째 서브밴드 샘플이 보존될 수 있도록 별도의 조취를 취하였다.In this case, since the second subband analysis ends before the subband samples of the first frame are transferred to the master board 2 in the processor-a 11 in the slave board 1, the first subband samples are saved I took a separate action.
슬레이브 보드(1)내 프로세서-a,b(11)(12)와의 듀얼포트 RAM은 마스터 보드(2)내의 프로세서-a(21)에 연결되어 있기 때문에 모든 데이터는 마스터 보드(2)내의 프로세서-a(21)에서 받게 된다.Since the dual-port RAM with the processor-a, b (11) 12 in the slave board 1 is connected to the processor-a 21 in the master board 2, a (21).
각 채널의 슬레이브 보드(1)내의 프로세서-a(11)로부터 서브밴드 샘플, 스케일 팩터 인덱스, 스케일 팩터 선택 정보, 슬레이브 보드(1)내의 프로세서-b(12)로부터 SMR을 전달 받은 마스터 보드(2)내의 프로세서-a(21)는 비트 할당만을 전담하는 마스터 보드(2)내의 프로세서-b(22)에 SMR과 스케일 팩터 선택 정보를 넘겨주고 다음 프레임까지 대기 상태에 들어간다.The sub-band samples, the scale factor index, the scale factor selection information, and the SMR from the processor-b 12 in the slave board 1 from the processor-a 11 in the slave board 1 of each channel, The processor-a 21 in the main processor 2 passes the SMR and scale factor selection information to the processor-b 22 in the master board 2 dedicated to bit allocation and enters the standby state until the next frame.
두 번째 프레임에 대한 각 슬레이브 보드(1)의 결과 데이터가 들어오면 마스터 보드(2)내의 프로세서-b(22)에 비트 할당에 필요한 데이터를 넘겨주고 첫 번째 프레임에 대한 양자화와 비트열 포맷팅 과정을 수행하게 된다.When the result data of each slave board 1 for the second frame is received, data necessary for bit allocation is transferred to the processor-b 22 in the master board 2, and the quantization and bit string formatting process for the first frame is performed .
이렇듯 두 번째 프레임의 데이터가 들어온 이후에 첫 번째 프레임에 대한 수행이 이루어지는 마스터 보드(2)내의 프로세서-a(21)는 2개의 데이터 버퍼를 가지고 있어야만 한다.The processor-a (21) in the master board (2) in which the execution of the first frame is performed after the data of the second frame arrives must have two data buffers.
마스터 보드(2)내의 프로세서-a(21)에서 선행 작업인 비트 할당을 하고 마스터 보드(2)내의 프로세서-b(22)에서 양자화와 팩킹을 하게 되면 5채널에 대한 서브밴드 샘플과 스케일 팩터 인덱스등을 듀얼포트 RAM을 통해 또 한번 넘겨주어야 하는 번거로움과 함께 시간적 손해(약 1.6msec)를 입게 되기 때문에 위와 같은 방법을 취하였다.When the processor-a 21 in the master board 2 allocates a bit that is a preceding task and the processor-b 22 in the master board 2 quantizes and packs, the subband samples for 5 channels and the scale factor index (1.6 msec) with the hassle of having to turn over the dual port RAM again.
마스터 보드(2)내의 프로세서-b(21)에서 수행되는 비트 할당 과정은 SMR 곡선의 모양에 따라 수행시간이 달라진다.The bit allocation process performed by the processor-b 21 in the master board 2 varies in the execution time according to the shape of the SMR curve.
마스터 보드(2)내 프로세서-b(21)의 작업이 끝나면 마스터 보드(2)내 프로세서-a(21)로 인터럽트를 발생시키는데 이때 프레임에 따라서는 마스터 보드(2)내 프로세서-a(21)의 PC 전송 인터럽트와 비트 할당 결과를 알리는 인터럽트가 충돌하는 경우가 생길 수 있다.When the operation of the processor-b 21 in the master board 2 ends, the processor-a 21 in the master board 2 generates an interrupt. At this time, depending on the frame, the processor- There may be a case where the PC transfer interruption of the PC and the interruption notification of the bit allocation result are in conflict.
인터럽트 충돌이 발생하면 그 프레임에 대해서만 전송이 제대로 이루어지지 않아, 복호화되지 않는 현상이 발생하게 된다. 이런 문제를 막기 위해 마스터 보드(2)내의 프로세서-a(21)에서 PC로 비트열을 전송하는 동안에는 다른 프로세서로부터의 인터럽트를 차단시켜야 한다.When an interrupt conflict occurs, transmission is not properly performed only for the frame, and a phenomenon in which decoding is not performed occurs. In order to prevent such a problem, it is necessary to interrupt the interrupt from the other processor while transmitting the bit stream from the processor-a (21) in the master board 2 to the PC.
2. 슬레이브 보드내의 프로세서-a에서 처리되는 루틴2. Routine processed by processor-a in the slave board
두 개의 프로세서로 병렬처리가 가능하도록 설계되어 있는 슬레이브 보드(1)는 1 채널 입력에 대한 서브밴드 분석 과정과 스케일 팩터 코딩, 그리고 심리 음향 모델을 담당하고 있다.The slave board 1, which is designed to be capable of parallel processing with two processors, is responsible for subband analysis, scale factor coding, and psychoacoustic models for one channel input.
작업 할당을 위해 측정한 슬레이브 보드(1)에서 처리되는 서브루틴들의 수행시간이 표 2에 나타나 있다.The execution times of the subroutines processed in the slave board 1 measured for task assignment are shown in Table 2.
'로드(load)'는 표본화 주파수가 48KHz일 때, 한 프레임(1152샘플) 구간의 길이인 24msec에 대한 상대적인 비율이다.The 'load' is the relative ratio to the length of one frame (1152 samples) section, 24 msec, when the sampling frequency is 48 KHz.
실시간 처리를 위해서는 다음 프레임 입력이 모두 들어오기 전에 현재 프레임에 대한 처리가 끝나야 하므로 한 프로세서의 로드가 100%를 넘게 되면 실시간 처리는 불가능하다.For real-time processing, the processing of the current frame must be completed before all the next frame inputs are input. Therefore, real-time processing is impossible if the load of one processor exceeds 100%.
슬레이브 보드(1)에서 처리하는 루틴 전체의 로드는 166.7%이므로 두 개의 프로세서에 적절히 작업 할당을 하면 실시간 처리가 가능하다.Since the load of the entire routine to be processed by the slave board (1) is 166.7%, it is possible to perform real-time processing by properly allocating the work to the two processors.
가장 많은 수행 시간을 필요로 하는 심리 음향 모델은 FFT 결과로 얻을 수 있는 파워 스펙트럼과 서브밴드 분석 과정을 거쳐 얻어지는 스케일 팩터가 나와야만 수행이 가능하다.A psychoacoustic model that requires the most execution time can only be performed by a power factor obtained from the FFT result and a scale factor obtained through a subband analysis process.
이러한 점을 고려하여 슬레이브 보드(1)내의 프로세서-b(12)에는 심리 음향 모델만을 수행하도록 할당하였고, 나머지 서브루틴들을 슬레이브 보드(1)내의 프로세서-a(11)에 할당하였다.In consideration of this point, the processor-b 12 in the slave board 1 is assigned to perform only the psychoacoustic model, and the remaining subroutines are assigned to the processor-a 11 in the slave board 1. [
서브밴드 분석 과정과 스케일 팩터 코딩이 모두 끝나야 슬레이브 보드(1)내 프로세서-b(12)의 심리 음향 모델 과정을 시작할 수 있기 때문에, 슬레이브 보드(1)내 프로세서-a(11)의 서브루틴 중 가장 많은 로드를 갖는 서브밴드 분석 과정은 전체 부호화 시간 지연(coding delay)에도 직접적으로 영향을 미치게 된다.Since the subband analysis process and the scale factor coding are all completed, the psychoacoustic modeling process of the processor-b 12 in the slave board 1 can be started, so that the subroutine of the subroutine of the processor-a 11 in the slave board 1 The subband analysis process with the most load directly affects the coding delay.
슬레이브 보드(1)내의 프로세서-a(11)에서는 각 채널별 입력 PCM 샘플을 받아서 심리 음향 모델을 위한 1024-point FFT와 서브밴드 분석 필터 뱅크, 스케일 팩터 계산과 코딩을 수행하게 되는데, 이때 상기 슬레이브 보드(1)내의 프로세서-a에서 수행하는 루틴의 흐름도는 도 10과 같다.The processor-a 11 in the slave board 1 receives the input PCM samples for each channel and performs a 1024-point FFT for the psychoacoustic model, a subband analysis filter bank, and a scale factor calculation and coding. The flowchart of the routine executed by the processor-a in the board 1 is shown in Fig.
즉, 프로세서와 메모리를 초기화한 후 시리얼 포트를 셋팅하면 비로소 입력 샘플이 들어오게 되는데, 슬레이브 보드(1)내의 프로세서-a(11)는 특히 각 루틴을 수행하는 동안 입력 샘플을 계속 받아야 하므로 1/44.1kHz 마다 한번씩 들어오는 입력에 대해 별도의 인터럽트 루틴을 가지고 있어야 한다.That is, when the serial port is set after initializing the processor and the memory, the input sample is received. Since the processor-a 11 in the slave board 1 must continuously receive the input samples during each routine, You must have a separate interrupt routine for each incoming 44.1 kHz input.
입력 샘플을 받는 인터럽트 루틴은 수행시간이 최소화되어야할 뿐만 아니라 사용되는 레지스터도 최소화되어야만 한다.Interrupt routines that receive input samples must not only minimize execution time, but also minimize the registers used.
인터럽트 루틴에서 사용되는 레지스터는 슬레이브 보드(1)내의 프로세서-a(11)상의 다른 루틴들에서 사용할 수 없음을 고려하여 프로그램 하여야 한다.The register used in the interrupt routine must be programmed considering that it can not be used in other routines on the processor-a 11 in the slave board 1. [
입력 샘플이 576개 들어오면 과거 프레임의 448샘플을 더하여 1024 포인트 FFT를 먼저 수행하게 된다. 마스터 보드 프로세서와의 동기화를 위해 이전 프레임에 대한 서브밴드 샘플, 스케일 팩터 인덱스, 스케일 팩터 선택 정보 등은 로컬 RAM에 저장하고 있다가 현재 프레임의 FFT 루틴이 끝난 후 듀얼 포트 RAM으로 옮기도록 한다.When 576 input samples are input, 448 samples of the past frame are added to perform a 1024-point FFT first. In order to synchronize with the master board processor, the subband samples, scale factor index, and scale factor selection information for the previous frame are stored in the local RAM, and then transferred to the dual port RAM after the FFT routine of the current frame ends.
이어서 한 프레임 크기인 1152샘플의 입력이 모두 들어오면 서브밴드 분석 필터 뱅크 과정을 수행하게 되는데, 이때 서브밴드 분석 필터 뱅크 과정은 슬레이브 보드(1)내의 프로세서-a(11)에 할당된 전체 분량의 64%를 차지하는 10.86msec가 걸리며, 이는 한 프레임 처리를 끝내야 하는 시간인 24msec에 대한 로드로도 45.3%나 차지하는 시간이다.Subsequently, the subband analysis filter bank process performs a subband analysis filter bank process when the input of all the 1152 samples of one frame size is completed. At this time, It takes 10.86msec, which accounts for 64%, which is 45.3% of the load for 24msec, which is the time to finish one frame processing.
또한 서브밴드 분석 과정이 끝나야만 심리 음향 모델 및 이후의 루틴들이 처리될 수 있기 때문에 부호화의 전체 시간 지연에도 직접적인 영향을 미치게 된다. 이처럼 많은 수행시간이 걸리는 서브밴드 분석 과정에 포함되어 있는 32×64의 행렬 연산을 본 구현에서는 32-포인트 IDCT(Inverse Discrete Cosine Transform)로 고속화하여 처리할 수 있는 알고리듬을 적용하였다.Also, since the psychoacoustic model and the subsequent routines can be processed only after the subband analysis process is completed, it directly affects the total time delay of the encoding. In this implementation, the 32 × 64 matrix operation included in the subband analysis process, which takes much time to execute, is applied to the 32-point IDCT (Inverse Discrete Cosine Transform).
필터뱅크 분석 과정을 거친 후 나온 서브밴드 샘플로부터 스케일 팩터를 구해 이를 코딩해두고 또한 스케일 팩터 선택 정보도 찾아 둔다.The scale factor is obtained from the subband samples after the filter bank analysis, and the scale factor selection information is also found.
또한 마스터 보드(2)에서의 처리시간을 줄이기 위해 서브밴드 샘플의 스케일링까지도 슬레이브 보드(1)내의 프로세서-a(11)에서 처리하여 준다.In order to reduce the processing time in the master board 2, the processor-a 11 in the slave board 1 also processes the scaling of the subband samples.
여기까지의 과정이 끝나면 슬레이브 보드(1)내의 프로세서-b(12)와 마스터 보드(2)내의 프로세서-a(21)에 인터럽트를 줌으로서 필요한 데이터를 가져가 이후의 작업을 처리할 수 있도록 한다.When the process up to this point is completed, an interrupt is given to the processor-b 12 in the slave board 1 and the processor-a 21 in the master board 2 so that necessary data can be taken and the subsequent work can be processed .
그리고 슬레이브 보드(1)내의 프로세서-a(11)는 다시 다음 프레임에 대한 FFT 처리를 위해 입력 샘플이 모두 채워지기를 기다린다.The processor-a 11 in the slave board 1 again waits for the input samples to be completely filled in for the FFT processing for the next frame.
이후, 고속 서브밴드 분석 알고리듬에 대해 설명하면 다음과 같다.Hereinafter, a high-speed subband analysis algorithm will be described.
MPEG의 서브밴드 분석 필터 뱅크 과정은 한 프레임 입력 1152샘플에 대해서 32샘플 단위로 블록을 나누어 중첩 가산에 의해 72개의 원소로 이루어진 입력 백터를 만들고 이를 서브밴드 분석 필터에 입력하면 서브밴드 분석결과는 32개의 서브밴드에 각각 한 개씩의 서브 샘플을 얻게 된다.In the subband analysis filter bank process of MPEG, an input vector composed of 72 elements is formed by overlapping addition by dividing the block into 32 samples for 1152 samples of one frame input, and inputted into the subband analysis filter, the subband analysis result is 32 One subsample is obtained for each of the four subbands.
위의 과정을 36회 시행하면 한 프레임 1152샘플(=32x36)에 대한 분석이 끝나게 된다.When the above process is performed 36 times, the analysis for one frame of 1152 samples (= 32x36) ends.
서브밴드 분석을 수행하기 위해서는 도 11과 같은 32x64의 분석 행렬을 거쳐야 하는데, 한 프레임 처리를 위해서 36번 반복되어야 하는 루틴 안에 32x64=2048의 곱셈, 덧셈 연산이 필요한 분석 행렬이 있는 것은 처리시간에 큰 부담이 된다.In order to perform the subband analysis, a 32x64 analysis matrix as shown in FIG. 11 must be passed. In the routine to be repeated 36 times for processing one frame, there is an analysis matrix requiring 32x64 = 2048 multiplication and addition operations. It becomes a burden.
곱셈과 덧셈을 한 명령어 사이클 안에 처리할 수 있는 프로세서 DSP칩을 사용한다고 하여도 분석 행렬 연산에 이론적으로 계산되는 수행시간은
이때 도 11의 분석 행렬의 원소들(M[i,k])은 Discrete Cosine Transform (DCT)의 커널(kernal)과 유사한 형태를 가지고 있는데, 이 점과 함께 코사인함수의 대칭성을 이용하여 행렬 연산과정을 32-point IDCT로 변형함으로서 여러 가지 고속 DCT연산을 사용할 수 있게 된다.In this case, the elements (M [i, k]) of the analysis matrix of FIG. 11 are similar to kernal of the Discrete Cosine Transform (DCT). By using the symmetry of the cosine function, To a 32-point IDCT, various fast DCT operations can be used.
도 12는 입력 벡터의 변환 과정을 나타낸 것으로, 고속 IDCT 알고리듬에는 DCT 커널이 DFT (Discrete Fourier Transform) 커널의 실수부분과 유사한 점에 착안하여 FFT (Fast Fourier Transform)를 이용하는 방법과 FFT의 전개 과정과 유사하게 시간축 혹은 주파수축에서의 간축(Decimation)을 사용하여 나비(butterfly)구조로 구현하는 방법으로 크게 나눌 수 있다.FIG. 12 shows a process of transforming an input vector. In the fast IDCT algorithm, a DCT kernel is similar to a real part of a DFT (Discrete Fourier Transform) kernel, and a method using an FFT (Fast Fourier Transform) Similarly, the method can be divided into a butterfly structure using a time axis or a frequency axis decimation.
DCT의 사용영역이 넓어짐에 따라 변환을 빠르게 수행할 수 있는 여러 가지 알고리듬이 개발되었는데, 그 중 제작된 하드웨어 상에서 구현하기에 가장 적합한 방법은 Lee's 고속 IDCT 알고리듬임을 실험적으로 확인하여 이를 사용하였다.As the use of DCT becomes wider, a variety of algorithms have been developed to quickly perform the transformation. We have experimentally confirmed that it is Lee's high-speed IDCT algorithm, which is the most suitable method to implement on the manufactured hardware.
실제 하드웨어 및 어셈블러로 알고리듬을 구현할 때는 순수한 변환과정에 필요한 곱셈 및 덧셈에 관한 연산 횟수뿐만 아니라 전처리와 후처리의 난이도, 파이프라인 구조 등을 고려하여야 하기 때문에 연산 횟수가 적다고 하여 가장 빠르다고 말할 수는 없다.When implementing algorithms with real hardware and assembler, it is necessary to consider not only the number of operations related to multiplication and addition necessary for the pure conversion process but also the difficulty of preprocessing and postprocessing, pipeline structure, etc. Therefore, none.
Lee's 고속 IDCT는 다른 고속 IDCT에 비해 전처리 과정은 없고 단지 입력을 bitreverse 순서로 해주어야 한다는 점만 있는데, 대부분의 범용 DSP 칩들이 이를 쉽게 구현할 수 있는 어드레싱 모드를 가지고 있고, FFT를 사용하는 다른 방법들에서도 FFT를 수행하기 위해서는 bitreverse과정이 필요하기 때문에 추가 부담으로 생각할 수 없다.Lee's high-speed IDCT has no preprocessing process compared to other high-speed IDCTs and requires only input in bitreverse order. Most general-purpose DSP chips have an addressing mode that can easily implement them, and FFT It can not be thought of as an additional burden because it requires a bitreverse process.
다만 Lee's 고속 IDCT의 구현상의 문제는 butterfly구조가 다소 복잡하고 출력 또한 정상적인 순서가 아니라 적절한 변환을 위해 많은 데이터 포인터를 필요로 한다는 점이다.However, the implementation problem of Lee's high-speed IDCT is that the butterfly structure is rather complicated and the output is not in the normal order, but requires many data pointers for proper conversion.
3. 슬레이브 보드내의 프로세서-b에서 처리되는 루틴(심리 음향 모델)3. Routine (psychoacoustic model) processed in processor-b in the slave board
서브밴드별 SMR값을 찾기 위한 심리 음향 모델 과정만을 전담하는 슬레이브 보드(1)내의 프로세서-b에서 수행되는 루틴의 흐름도는 도 13과 같다.The flow chart of the routine executed in the processor-b in the slave board 1 dedicated only to the psychoacoustic model process for finding the SMR value for each subband is shown in Fig.
즉, 프로세서와 메모리를 초기화한 후 대기상태에서 슬레이브 보드(1)내 프로세서-a(11)로부터의 인터럽트가 들어오면 듀얼포트 RAM으로부터 FFT 결과인 파워스펙트럼과 서브밴드별 최대 스케일 팩터 값을 전달받아 로컬 RAM에 저장한다. 이후 흐름도에 나온 순서대로 각 서브루틴을 처리하게 된다.That is, when an interrupt from the processor-a (11) in the slave board 1 is received in the standby state after initializing the processor and the memory, the power spectrum as the FFT result and the maximum scale factor value per subband are received from the dual port RAM And stores it in the local RAM. Then, each subroutine is processed in the order shown in the flowchart.
심리 음향 모델 과정 중 전체 마스킹 곡선을 구하는 작업이 수행시간의 대부분을 차지하고 있는데, 전체 마스킹 곡선을 구하기 위해서 로그값으로 표현되어 있는 개별 마스킹 곡선을 지수 연산하여 더한 후 이를 다시 로그값으로 바꾸는 과정이 많은 수행시간을 요구하는 원인이 된다.In the psychoacoustic model process, the task of obtaining the entire masking curve occupies most of the execution time. In order to obtain the entire masking curve, there is a process of exponentiating the individual masking curves represented by the log values, This causes the execution time to be required.
범용 DSP칩인 프로세서에는 로그 및 지수 연산을 수행할 수 있는 별도의 연산자가 없기 때문에 각각의 연산을 테일러 급수로 표현하여 근사화하는 방법으로서 대체해야 하기 때문에 로그 및 지수 연산은 많은 수행시간을 요구하게 된다.Since there is no separate operator to perform logarithmic and exponential operations on a general-purpose DSP chip, a logarithmic and exponential operation requires a large amount of execution time because each operation must be replaced with a Taylor series approximation method.
DSP칩이나 ASIC 코어 설계시 로그 연산을 빠르게 수행할 수 있는 기법으로는 미리 로그표를 만들어 두고 이를 찾아서 연산을 대체하는 방법이나 수열의 수렴조건을 이용해서 찾는 방법등 여러 가지로 소개되고 있다.As a technique for quickly performing log operations in the design of a DSP chip or an ASIC core, there are various methods such as a method of locating a log table in advance and substituting an operation, or a method of finding a sequence using a convergence condition of a sequence.
이들은 테일러 급수를 사용하는 경우보다 고속으로 수행되지만 정밀도가 떨어져 고정 소숫점 연산등에 응용은 적합하나 고음질을 위해 부동 소숫점 연산 프로세서를 사용하는 본 부호화기에서 사용하기는 부적합하다.These are faster than using Taylor series, but they are not suitable for use in this encoder that uses a floating-point processor for high-quality sound.
본 발명에서 구현된 로그 및 지수 연산의 수행시간을 줄이기 위해 PC상에서 얻은 결과와 비교하여 오차가 생기지 않는 범위에서 테일러 급수의 차수를 최소화하였다. 그리고 서브루틴으로 처리되던 연산 과정을 프로그램 내부로 흡수하여 불필요한 초기화 과정과 'CALL'(4 사이클) 및 'RETURN'(4 사이클) 명령에 의한 시간 낭비를 없애고 프로그램 캐쉬 메모리의 사용을 최적화 시킴으로서 수행시간을 더욱 단축시켰다.In order to reduce the execution time of the log and exponent operations implemented in the present invention, the degree of the Taylor series is minimized within a range that does not cause an error compared with the result obtained on the PC. And by absorbing the operation process which was processed by the subroutine into the program, it is possible to eliminate the unnecessary initialization process, the time wasted by CALL (4 cycle) and RETURN (4 cycle) instruction and optimize the use of program cache memory, .
4. 마스터 보드내의 프로세서-a에서 수행되는 루틴4. Routine performed on processor-a in the master board
마스터 보드(2)는 각 채널 슬레이브 보드(1)로부터 서브밴드 샘플과 스케일 팩터 인덱스, 스케일 팩터 선택 정보, 그리고 심리 음향 모델링 결과인 SMR(Signal-to-Mask Ratio)을 전달받아서 서브밴드별로 비트 할당을 하고 비트 할당 정보를 바탕으로 서브밴드 샘플을 양자화한 후 비트열을 포맷팅하여 전송하는 역할을 담당한다.The master board 2 receives a subband sample, a scale factor index, scale factor selection information, and a signal-to-mask ratio (SMR) as a result of psychoacoustic modeling from each channel slave board 1, Quantizes the subband samples based on the bit allocation information, and formats and transmits the bit streams.
마스터 보드(2)에서 처리되는 서브루틴들은 채널별로 수행되는 슬레이브 보드(1)에서의 서브루틴들과는 달리 모든 채널의 정보를 함께 처리해야 하므로 부호화되는 채널수가 증가하면 그만큼 처리시간이 증가하게 되며 같은 채널수일 때 비트율이 높아져도 처리 시간은 늘어나게 된다.Since the subroutines processed in the master board 2 must process information of all channels together with the subroutines in the slave board 1 performed for each channel, the processing time is increased as the number of channels to be encoded increases, Even if the bit rate increases in a few days, the processing time increases.
각 채널별 슬레이브 보드(1)로부터 처리된 데이터를 전송받아 비트할당을 전담하는 마스터 보드(2)내의 프로세서-b(22)에 SMR값을 넘겨주고 비트할당된 결과로부터 양자화와 비트열 포맷팅을 담당하는 마스터 보드(2)내 프로세서-a(21)의 흐름도는 도 14와 같다.The SMR value is transferred to the processor-b 22 in the master board 2, which receives the processed data from each slave board 1 for each channel and performs bit allocation, and performs quantization and bit stream formatting from the bit- A flowchart of the processor-a 21 in the master board 2 is shown in Fig.
즉, 프로세서를 초기화한 후 슬레이브 보드(1)로부터의 인터럽트를 기다리는데, 이때 하드웨어의 구조상 한 개의 슬레이브 보드(1)로 부터만 인터럽트를 받을 수 있다.That is, after initializing the processor, it waits for an interrupt from the slave board 1, and at this time, it can receive an interrupt only from one slave board 1 due to the hardware structure.
그러므로 채널별로 수행시간이 다른 심리 음향 모델이 모든 채널에 대해 끝난 이후 인터럽트를 받기 위해 도 9에서 처럼 다음 프레임의 심리 음향 모델이 시작하는 시점에서 인터럽트를 받도록 설계하였다.Therefore, in order to receive interrupts after the psychoacoustic models having different execution times for each channel are completed for all channels, the interrupts are designed to be received at the start of the psychoacoustic model of the next frame as shown in FIG.
인터럽트를 받으면 각채널의 심리 음향 모델 결과인 SMR값과 SCFSI를 마스터 보드(2)내의 프로세서-b(22)로 전송해주고 다른 데이터들을 로컬 RAM으로 옮겨준다.Upon receipt of the interrupt, the SMR value and SCFSI result of the psychoacoustic model of each channel are transferred to the processor-b 22 in the master board 2 and the other data is transferred to the local RAM.
이때 마스터 보드(2)내의 프로세서-b(22)에서 전담하는 비트 할당 과정은 많은 연산량으로 다채널 처리의 가장 큰 걸림돌이 된다.At this time, the bit allocation process dedicated to the processor-b 22 in the master board 2 becomes the biggest obstacle for multi-channel processing with a large amount of computation.
비트 할당 과정이 각 서브밴드의 MNR중 최소값을 찾아서 그 서브밴드에 비트 할당 인덱스를 한단계 상승시켜 주는 것이 기본 알고리듬인데, 서브밴드에 따라 양자화 스텝이 다르게 규정되어 있기 때문에 각기 다른 표를 참조해야만 한다.The bit allocation process finds the minimum value among the MNRs of each subband and raises the bit allocation index in the subband by one step. Since the quantization steps are different according to subbands, different tables must be referred to.
어셈블러의 경우 2차원 이상의 메모리 배열이 불가능하기 때문에 메모리 포인터가 비트 할당표 참조에 필요한 채널 정보와 서브밴드 정보를 함께 가질 수 없다.The assembler can not have more than two-dimensional memory array, so the memory pointer can not have both the channel information and the subband information necessary for referring to the bit allocation table.
1차원 메모리 배열로 각 채널 서브밴드중 최소의 MNR값 찾기와 그 서브밴드에 맞는 비트 할당표 참조를 효율적으로 하기 위해 MNR과 비트 할당 인덱스의 버퍼를 채널순으로 섞은 도 15와 같이 구성함에 따라 슬레이브 보드(1)내의 프로세서-b(12)로부터 채널의 SMR을 가져와 마스터 보드(2)내의 프로세서-b(22)에 전달할 때는 도 15의 순서대로 마스터 보드(2)내 프로세서-b(22)의 로컬 RAM에 저장해야 한다.In order to find the minimum MNR value among the respective channel subbands in the one-dimensional memory array and to efficiently refer to the bit allocation table corresponding to the sub-band, the buffer of the MNR and the bit allocation index is configured as shown in FIG. When receiving SMR of the channel from the processor-b 12 in the board 1 and transferring it to the processor-b 22 in the master board 2, the processor-b 22 in the master board 2 Must be stored in local RAM.
마스터 보드(2)내 프로세서-a(21)의 경우는 최종 비트열 팩킹에 유리한 방법으로 각 데이터의 버퍼를 구성하였다.In the case of the processor-a (21) in the master board (2), a buffer for each data is constituted by a method advantageous to final bit packing.
5채널일 경우 MPEG-1 호환 2채널(Lo, Ro)이 번갈아가며 서브밴드 순서로 팩킹되고 나머지 3채널(C, LS, RS)이 역시 순서대로 섞여가며 팩킹이 되므로 듀얼포트 RAM으로부터 각 채널의 서브밴드 샘플, 스케일 팩터 인덱스, 스케일 팩터 선택 정보를 로컬 RAM으로 옮길 때 MPEG-1 호환 2채널과 확장된 3채널별로 팩킹될 순서에 맞게 버퍼를 구성하는 것이 유리하다.In case of 5 channels, MPEG-1 compatible 2 channels (Lo, Ro) are alternately packed in subband order and the remaining 3 channels (C, LS, RS) When transferring the subband samples, scale factor index, and scale factor selection information to the local RAM, it is advantageous to configure the buffer according to the order to be packed for MPEG-1 compatible 2 channels and extended 3 channels.
또, 마스터 보드(2)내의 프로세서-b(22)로부터 가져오는 비트 할당 인덱스도 같은 방법으로 저장을 하면, 양자화 과정도 5채널에 대해 차례대로 5회 수행하지 않고 서브밴드수만 늘려서 2채널과 3채널에 대해 1회씩만 수행하면 된다.When the bit allocation indexes fetched from the processor-b 22 in the master board 2 are also stored in the same manner, the quantization process is not performed five times in order for the five channels, You only need to do it once for the channel.
또한 슬레이브 보드(1)로부터 가져온 데이터가 다음 프레임에 사용될 것이므로 마스터 보드(2)내 프로세서-a(21)의 메모리도 두 개의 버퍼로 나뉘어져 포인터를 스위칭하여 주어야 한다.Since the data fetched from the slave board 1 is to be used in the next frame, the memory of the processor-a 21 in the master board 2 is also divided into two buffers and the pointer must be switched.
포맷팅에 유리하도록 양자화 및 그루핑 작업이 끝나면 비트열 팩킹 작업에 들어간다.When the quantization and grouping operations are completed to facilitate the formatting, bit heat packing operation is performed.
MPEG-2의 비트열은 32비트의 헤더로 시작되는 MPEG-1 호환 비트열과 40비트의 헤더로 시작되는 확장 비트열로 나눌 수 있다.The bit stream of MPEG-2 can be divided into an MPEG-1 compatible bitstream beginning with a 32-bit header and an extension bitstream beginning with a 40-bit header.
비트율이 384Kbps를 넘지 않으면 MPEG-1 호환 비트열내에 수용할 수 있으므로 확장 비트열은 사용되지 않는다.If the bit rate does not exceed 384 Kbps, the extension bit string is not used because it can be accommodated in the MPEG-1 compatible bit string.
부호화기에서 생성해낸 비트열은 PC나 기타 전송 채널로 보내기 위해 16비트단위로 잘라서 RAM에 저장해두고 프레임 단위로 전송한다.The bit stream generated by the encoder is cut in units of 16 bits for transmission to a PC or other transmission channel, and is stored in the RAM, and is transmitted on a frame basis.
비트열 팩킹 과정에서 저장 단위가 16비트인 점을 고려하여 'OR'명령을 적절히 사용하면 수행시간의 개선을 가져올 수 있다.Considering that the storage unit is 16 bits in the bit packing process, if the 'OR' instruction is properly used, the execution time can be improved.
확장 비트열은 16비트 단위로 한 프레임 포맷이 모두 팩킹된 다음에야 범위를 알 수 있기 때문에 그전에 확장 비트열 헤더의 CRC 검색 범위를 정할 수가 없다. 따라서 확장 비트열은 별도로 포맷팅하지 않고 확장 비트열 헤더를 뺀 전체 비트열 포맷팅이 모두 끝난 뒤 전송 과정에서 MPEG-1 호환 프레임 크기만큼이 전송된 후에 확장 비트열 헤더를 첨가한 뒤 나머지 비트열을 보내는 방식을 취한다.The CRC search range of the extended bitstream header can not be determined before the expansion bitstream can be known only after one frame format is packed in units of 16 bits. Therefore, after the formatting of the extended bitstream is completed and the formatting of the entire bitstream by subtracting the header of the extended bitstream is completed, the extended bitstream header is added after the MPEG-1 compatible frame size is transmitted in the transmission process, .
CRC 루틴의 실제 적용에 있어서는 16비트의 CRC 부호가 들어갈 위치를 뺀 나머지 비트열이 완전히 팩킹된 후 검색 범위에 해당하는 비트열을 차례로 검색하고, 생성된 CRC-16 부호를 비트열 내에 삽입하였다.In the practical application of the CRC routine, the remaining bit string obtained by subtracting the position of the 16-bit CRC code is completely packed, the bit string corresponding to the search range is sequentially searched, and the generated CRC-16 code is inserted into the bit string.
포맷팅까지 마친 비트열은 시리얼 포트를 이용하여 PC나 혹은 다른 시스템으로 전송한다. 시리얼 전송 과정에서는 비트열의 오류 발생을 막기위해 일체의 외부 인터럽트를 차단하도록 해야 한다.The formatted bit stream is transferred to the PC or other system using the serial port. In the serial transfer process, all external interrupts must be blocked to prevent errors in the bit stream.
전송이 끝난 후에 다음 프레임에서 사용할 비트 할당 결과값을 마스터 보드(2)내의 프로세서-b(22)로부터 전달 받고 이를 포맷팅에 유리하게 로컬 RAM에 재배치한 후 다음 프레임으로 넘어간다.After the transmission is completed, the bit allocation result value to be used in the next frame is received from the processor-b 22 in the master board 2, relocated to the local RAM for formatting, and then passed to the next frame.
5. 마스터 보드(2)내의 프로세서-b에서 수행되는 루틴 (비트 할당)5. The routine (bit allocation) performed in the processor-b in the master board 2,
MPEG-2 부호화 과정 중 가장 많은 수행시간을 요구하는 비트 할당 과정은 마스터 보드(2)내의 프로세서-b(22)에서 전담하게 된다.The bit allocation process that requires the greatest execution time in the MPEG-2 encoding process is dedicated to the processor-b 22 in the master board 2.
마스터 보드(2)내 프로세서-b의 프로그램 흐름도는 도 16과 같다.A program flow chart of the processor-b in the master board 2 is shown in FIG.
즉, 프로세서를 초기화한 후 마스터 보드(2)내의 프로세서-a(21)로부터 인터럽트가 오면 비트 할당에 필요한 데이터를 로컬 RAM으로 옮기고 5채널의 각 서브밴드에 대한 비트 할당 작업을 수행한다.That is, after the processor initializes, when an interrupt occurs from the processor-a 21 in the master board 2, data necessary for bit allocation is transferred to the local RAM and bit allocation for each subband of 5 channels is performed.
각 채널의 SMR정보를 모두 비교하면서 수행되는 비트 할당의 경우 채널수가 많아지면 수행시간이 급격히 증가하게 된다.In the case of bit allocation performed while comparing SMR information of each channel, the execution time increases rapidly as the number of channels increases.
표 1에서 보듯이 마스터 보드(2)내 프로세서로 실험한 결과 2채널 192Kbps일 때 10.3msec정도 걸리던 비트 할당 루틴이 4채널 384Kbps일 때는 41.7msec가 걸려서 처리시간이 무려 4배나 증가하게 된다. 채널당 128Kbps정도에 해당되는 5채널 640Kbps의 비트 할당을 MPEG에서의 알고리듬대로 수행하기 위해서는 62.5msec가 걸린다.As shown in Table 1, when the processor in the master board (2) is tested, it takes 41.3 msec when the 4-channel 384 Kbps bit allocation routine takes 10.3 msec for the 2-channel 192 Kbps, and the processing time is increased 4 times. It takes 62.5 msec to perform bit allocation of 5 channels 640 Kbps corresponding to 128 Kbps per channel according to the algorithm of MPEG.
이는 실시간 처리 가능 시간인 24msec에 2.6배나 초과하는 시간이므로 구성된 하드웨어 환경하에서 비트율이 높은 다채널 비트 할당이 사실상 불가능하다고 말할 수 있다.It can be said that it is virtually impossible to allocate multi-channel bit with high bit rate under the configured hardware environment because it is 2.6 times longer than the real-time processable time of 24 msec.
비트 할당 과정의 수행시간이 이처럼 채널과 비트율의 증가에 따라 급격히 증가하는 이유는 MPEG의 비트 할당 알고리듬을 보면 알 수 있다.The reason why the execution time of the bit allocation process increases rapidly with the increase of the channel and the bit rate can be seen from the bit allocation algorithm of MPEG.
양자화 레벨에 따라 결정되는 SNR과 심리 음향 모델 결과인 SMR의 차로부터 MNR을 구하여 각 서브밴드 중 최소의 MNR을 갖는 서브밴드에 1비트를 할당하여 그 밴드의 SNR을 향상시켜주고, 이렇게 하여 바뀐 MNR 곡선으로부터 다시 최소의 MNR을 갖는 서브밴드를 찾아서 다시 1비트를 할당한다.The MNR is obtained from the difference between the SNR determined according to the quantization level and the SMR resulting from the psychoacoustic model. One bit is allocated to the sub-band having the smallest MNR among the sub-bands, thereby improving the SNR of the band. The subband having the minimum MNR is found again from the curve, and one bit is allocated again.
이 작업을 한 프레임내에서 사용가능한 비트를 모두 할당할 때까지 반복Repeat this operation until all available bits within a frame are allocated
수행하는 것이 기본 알고리듬이다.The basic algorithm is to perform.
이때 할당에 사용되는 비트를 채널별로 미리 나누어 사용하지 않고 모든 채널, 모든 서브밴드의 MNR을 함께 비교하기 때문에 채널이 증가하면 비교되는 서브밴드가 배수로 증가하게 된다.At this time, since the bits used for allocation are not used for each channel, the MNRs of all the channels and all the subbands are compared together. Therefore, when the number of channels is increased, the compared subbands are increased in multiples.
범용 DSP칩인 프로세서에는 최소값을 찾는데 효율적인 별도의 명령어가 없기 때문에 최소 MNR을 찾는 과정에 비교 명령어를 사용하여 구현해야 한다. 비교문에 이은 분기 명령어는 고속 DSP 칩의 최대 장점인 파이프라인 구조를 깨트리기 때문에 일반적인 명령어보다 4배나 긴 수행 사이클을 갖는다.The processor, which is a general-purpose DSP chip, has no separate instruction to find the minimum value, so it must be implemented using the comparison instruction in the process of finding the minimum MNR. Since the branch instruction after the comparison breaks the pipeline structure, which is the greatest advantage of a high-speed DSP chip, it has a cycle that is four times longer than a general instruction.
따라서 비교 명령이 많이 들어가게 되면 실시간 처리가 매우 불리해진다. 한편, 비트율이 증가하면 프레임당 할당해야할 비트수가 그만큼 증가하게 되므로 비트 할당 루프를 도는 회수가 많아지는 결과를 가져온다.Therefore, if a lot of comparison instructions are entered, the real-time processing becomes very disadvantageous. On the other hand, as the bit rate increases, the number of bits to be allocated per frame increases accordingly, resulting in an increase in the number of bit allocation loops.
위의 2채널 192Kbps일 때와 4채널 384Kbps일 때를 비교하면 채널과 비트율이 각각 2배가 된 경우이므로 수행시간이 4배가 된 실험 결과를 설명할 수 있다.Comparing the above two channels at 192 Kbps and 384 Kbps at four channels, the channel and the bit rate are doubled, so that the execution time can be quadrupled.
본 발명에서 구현된 소프트웨어에서는 사전 할당(pre-allocation) 알고리듬을 통해 수행시간 초과의 문제를 해결하였다.Software implemented in the present invention solves the problem of run-out time through a pre-allocation algorithm.
전송된 5채널의 비트 할당전 MNR값에 대해 지정한 양만큼 미리 할당을 하여두고 이에 맞게 MNR을 보정하여준 후 남은 비트양에 대해 MPEG 고유의 비트 할당 작업을 수행하게 된다.The MNR value is pre-allocated by a predetermined amount to the MNR value before the bit allocation of the transmitted 5 channels, the MNR is compensated in accordance with the allocated MNR value, and then the bit allocation task unique to the MPEG is performed for the remaining bit amount.
또한 비트 할당 과정상의 비교문을 줄이기 위해 초기 할당 기간에 불필요하게 비교되는 명령어들을 없앤 루프를 먼저 돌린 후 최종적으로 정확한 비트 할당을 수행하여 프로그램을 마무리하도록 하였다. 비트 할당 작업이 끝나면 마스터 보드(2)내의 프로세서-a(21)로 인터럽트를 주어 수행의 종료를 알린다.Also, in order to reduce the comparison in the bit allocation process, the loop which eliminates the unnecessary comparison commands in the initial allocation period is turned first, and finally, the correct bit allocation is performed to finish the program. When the bit allocation operation is completed, an interrupt is given to the processor-a (21) in the master board 2 to notify the completion of the operation.
이하 사전 비트 할당 알고리듬에 대해 설명한다.Hereinafter, the pre-bit allocation algorithm will be described.
먼저, 5채널 640Kbps일 때 62.5msec나 걸리는 비트 할당 과정을 실시간으로 구현하기 위해서는 비트 할당 알고리듬을 간소화시킬 수 있는 방법을 강구해야한다.First, in order to realize the bit allocation process of 62.5 msec at 5 channel 640 Kbps in real time, a method of simplifying the bit allocation algorithm should be considered.
MPEG의 경우 비트 할당 정보를 비트열 안에 포함시켜 복호화단에 전송하기 때문에 주어진 비트율안에서 부호화기는 비트 할당에 어느 정도 자율성이 부여된다. 비트 할당 작업량을 줄이기 위해 심리 음향 모델 결과인 SMR과 이를 바탕으로 할당되어진 서브밴드별 비트수를 통계적으로 분석하는 과정이 필요하다.In the case of MPEG, the bit allocation information is included in the bit stream and transmitted to the decoding end, so that the encoder is given some degree of autonomy in bit allocation within a given bit rate. In order to reduce the bit allocation work, it is necessary to statistically analyze the number of bits per subband allocated on the basis of the psychoacoustic model result SMR.
비트 할당의 통계적 특성을 적극적으로 활용하여 수행시간을 개선하는 방법으로 다양한 종류의 음악 소스에 대해 실제 비트 할당 루틴을 통해 평균적인 할당표를 작성하여 모든 소스에 대해 항상 할당되는 비트수 만큼은 미리 할당을 해놓고 나머지 비트수에 대해서만 실제 비트 할당 알고리듬을 적용하는 것을 생각할 수 있다.In order to improve performance time by actively utilizing the statistical characteristics of bit allocation, an average allocation table is created through actual bit allocation routines for various types of music sources, and the number of bits that are always allocated to all sources is preallocated And then applying the actual bit allocation algorithm only for the remaining number of bits.
즉, 항상 할당되는 비트수 만큼은 매 프레임마다 불필요하게 루프를 반복하지 않도록 미리 할당하여두고 남는 비트만을 할당시키는 알고리듬이다. 이를 위해 각기 다른 음압 분포를 갖는 음원들에 대해 채널당 128Kbps의 비트율로 할당한 각 서브밴드의 평균적인 비트 할당 인덱스 분포는 표 3 및 그림 17과 같다.That is, the number of bits that are always allocated is an algorithm that allocates only the remaining bits in advance so that the loop is not repeated unnecessarily every frame. Table 3 and Figure 17 show the average bit allocation index distributions of each subband allocated to the sound sources having different sound pressure distributions at a bit rate of 128 Kbps per channel.
데이터는 각 음원에 대해 3000프레임을 실제 부호화한 후 복호화기에서 받은 비트 할당 인덱스의 평균으로 구하였다.The data was obtained as the average of the bit allocation indices received from the decoder after actually encoding 3000 frames for each sound source.
이때 서브밴드 1~3의 비트 할당 인덱스는 나머지 서브밴드와는 다른 양자화 레벨을 가지고 있기 때문에 실제로 1~3 서브밴드에 할당된 비트수는 나머지 서브밴드에서의 같은 인덱스보다 샘플당 2비트가 더 큰 값이다.Since the bit allocation indices of the subbands 1 to 3 have different quantization levels from those of the remaining subbands, the number of bits allocated to the first to third subbands is 2 bits per sample larger than the same index in the remaining subbands Value.
실험적으로 선택한 3개의 음원은 광대역 음원인 전자기타, 저주파 대역의 음압이 높은 바이올린, 그리고 다양한 편성으로 가장 일반적인 음압 분포를 보이는 Pop 음악이다.Experimentally selected three sound sources are electronic guitar, broadband sound source, violin with high sound pressure in low frequency band, and pop music with the most general sound pressure distribution with various combinations.
도 17에서 보면 비트 할당 분포의 기본적인 유형은 각기 다른 음원에 대해 크게 달라지지 않고 있으며 주로 저주파 대역에 많은 비트가 할당되고 고주파 영역으로 갈수록 줄어들어 20번째 서브밴드 이상부터는 거의 할당이 되고 있지 않음을 알 수 있다(20번째 서브밴드의 경우 전자기타 음원에서 100프레임당 3번정도 1비트가 할당되었다).17, the basic type of the bit allocation distribution does not vary significantly with respect to different sound sources, and it is known that many bits are allocated mainly in the low frequency band and are reduced in the high frequency region, (In the case of the 20 < th > sub-band, one bit is allocated 3 times per 100 frames in the electronic guitar sound source).
바이올린의 경우는 저주파대역인 1,2 서브밴드에서의 할당량이 매우 높고 대신 17번째 서브밴드에서부터 거의 할당이 되고 있지 않다.In the case of the violin, the allocation is very high in the low-frequency subbands 1 and 2, but is not allocated almost from the 17th subband.
전자기타는 3번째 서브밴드에서부터 13번째 서브밴드까지 비교적 평탄한 할당 분포를 보이다가 14번째 서브밴드부터 서서히 감소하는 것을 볼 수 있다.The electronic guitar shows a relatively flat allocation distribution from the third subband to the thirteenth subband, but gradually decreases from the 14th subband.
Pop 음악에서는 다른 두 음원의 할당 곡선의 중간 형태를 갖는다.Pop music has an intermediate form of the allocation curves of two other sound sources.
세가지 음원의 평균 비트 할당 분포를 기준으로 하여 실시간 처리가 가능해지도록 각 서브밴드에 사전 할당(pre-allocation)해 놓을 비트수를 정하였다(표 4, 도 18).Based on the average bit allocation distribution of the three sound sources, the number of bits to be pre-allocated to each sub-band is determined so as to enable real-time processing (Table 4, FIG. 18).
이 값은 표 3의 실험 결과를 바탕으로 수행시간 로드가 100%를 넘지 않게 실험적으로 결정한 것으로 채널당 128Kbps의 비트율을 갖는 부호화 과정에서만 사용할 수 있다.This value is experimentally determined based on the experimental results of Table 3 so that the execution time load does not exceed 100%, and can be used only in the encoding process having a bit rate of 128 Kbps per channel.
이렇게 하여 MPEG 비트 할당 알고리듬의 반복 루프 회수를 줄이는 한편, 비교 대상이 되는 서브밴드의 수를 줄이기 위해 실험 결과 채널당 128Kbps의 비트율일 때 어떤 음원에 대해서도 비트 할당이 되지 않는 22-27번째 서브밴드는 비트 할당 비교 대상에서 제외시키도록 하였다. 위 두가지 방법을 결합한 결과 5채널 640Kbps일 때 62.5msec나 걸리던 비트 할당 과정이 17.5msec안에 처리되어 실시간 구현이 가능하게 되었다. 같은 방법으로 실시간 처리가 불가능한 다른 비트율에 대해서도 비트 할당 인덱스의 평균을 구해 적절하게 사전 할당하여 수행시간을 조절할 수 있다.In order to reduce the number of repeated loops of the MPEG bit allocation algorithm, and to reduce the number of subbands to be compared, the 22-27th subband, which is not bit-allocated to any sound source at a bit rate of 128 Kbps per channel, To be excluded from the allocation comparison object. As a result of combining the above two methods, the bit allocation process, which took 62.5msec at 640Kbps in 5 channels, was processed within 17.5msec, and real-time implementation became possible. For other bit rates that can not be processed in real time in the same way, the average of the bit allocation indices can be obtained and appropriately pre-allocated to adjust the execution time.
이후, 사전 비트 할당 알고리듬의 성능을 검증하면 다음과 같다.Hereinafter, the performance of the pre-bit allocation algorithm is verified as follows.
표 4에서 선택한 사전 할당량을 사용한 비트 할당 알고리듬의 MNR 변화를 통해 성능을 검증해 보자.Let's examine the performance of the bit allocation algorithm using the pre-quota selected in Table 4 by changing the MNR.
MNR(Mask-to-Noise Ratio)은 SNR과 SMR의 차로부터 구해지며 이때의 잡음은 양자화 오차(Quantization Noise)를 말한다.The Mask-to-Noise Ratio (MNR) is obtained from the difference between SNR and SMR, and the noise at this time is a quantization noise.
MNR이 주는 의미는 마스크와 잡음의 비로서, 어떤 서브밴드의 MNR값이 0dB 이상이면 그 서브밴드에서의 양자화 오차는 모두 마스킹이 되어 사람의 귀로는 들리지 않게 됨을 의미한다. 따라서 심리 음향 모델에 의해 구한 SMR값이 정확하다고 가정할 때, 모든 서브밴드의 MNR을 0dB 이상으로만 만들면 원음과 지각적 구별이 없는 복원음을 얻을 수 있게 된다.The meaning of the MNR is a mask to noise ratio. If the MNR value of a certain subband is 0 dB or more, the quantization error in the subband is masked and can not be heard by the human ear. Therefore, assuming that the SMR value obtained by the psychoacoustic model is correct, if the MNR of all the subbands is made to be more than 0 dB, the restored sound having no perceptual discrimination with the original sound can be obtained.
비트 할당 과정은 결국 각 밴드의 MNR을 최대한 0dB이상으로 끌어 올리는 작업이므로 위에서 제안한 방법에 의해 처리한 최종적인 MNR결과가 만족스러우면 MPEG 본래의 비트 할당 알고리듬과 할당된 인덱스 분포가 조금 다르더라도 문제가 되지 않는다.Since the bit allocation process is to increase the MNR of each band to a maximum of 0 dB or more, if the final MNR result processed by the above method is satisfactory, it is not a problem even if the bit allocation algorithm and original allocated index are slightly different from each other Do not.
도 19는 48KHz에서 각기 다른 음압 분포를 갖는 임의의 오디오 신호에 대한 세 개의 비트 할당전 MNR 곡선이다.19 is an MNR curve before three bit allocation for an arbitrary audio signal having different sound pressure distributions at 48 KHz.
앞서 설명한 것처럼 전자기타 음원은 신호의 대역폭이 넓기 때문에 0dB이하의 MNR을 갖는 서브밴드가 넓게 분포하고 바이올린 음원은 신호의 대부분이 저주파 대역에 모여있기 때문에 0dB이하의 MNR값이 적은 대신 저주파수에서 깊게 내려가 있는 분포를 가진다. 첫 번째 프레임 신호의 경우 필터 뱅크의 시간 지연을 고려한 Zero Padding 때문에 신호 음압이 낮아서 MNR 곡선 또한 완만한 형태를 갖는다.As described above, since the band width of the electric guitar sound source is wide, subbands having MNRs of 0 dB or less are widely distributed, and since the majority of signals of the violin sound source are collected in the low frequency band, the MNR value is less than 0 dB, . In the case of the first frame signal, because of the zero padding considering the time delay of the filter bank, the signal sound pressure is low and the MNR curve also has a gentle shape.
바이올린의 경우 1~12 서브밴드, 전자기타의 경우 1~19 서브밴드에 대해 적당히 비트 할당을 하여 MNR을 0dB이상으로 향상시켜야 함을 알 수 있다.It can be seen that MNR should be improved to 0dB or more by appropriately allocating bits for 1 ~ 12 subbands for violin and 1 ~ 19 subbands for electric guitar.
각 서브밴드 샘플에 할당하는 비트수가 1비트 증가할 때마다 6dB정도의 MNR 상승 효과를 가져올 수 있다. 최종적인 MNR 곡선은 평평한 형태를 가지고 있는 것이 이상적이다.Each time the number of bits allocated to each subband sample increases by one bit, the MNR synergistic effect of about 6dB can be obtained. Ideally, the final MNR curve should have a flat shape.
이제 각각의 MNR 곡선이 사전 할당을 통해 어떻게 변화하는가를 살펴보자.Now let's see how each MNR curve changes through pre-allocation.
도 20, 21, 22는 도 19의 MNR 곡선들에 대해 표 4에 나타난 크기만큼 서브밴드 별로 사전 할당하였을 때, 그리고 최종 비트 할당 과정까지 완전히 끝났을 때의 MNR 곡선의 변화를 각각 나타내고 있다.20, 21, and 22 show changes in the MNR curve when the MNR curves in FIG. 19 are preallocated by the subbands as shown in Table 4, and when the final bit allocation process is completely finished.
도 20의 전자기타 음원은 사전 할당을 통해 5~8 서브밴드는 10dB선까지 MNR이 상승되고 이후 잔여 비트 할당 과정을 통해 주로 9~19 서브밴드에 비트가 추가된다.20, the MNR is increased up to the 10 dB line in the 5 ~ 8 subbands, and then the bits are mainly added to the 9 ~ 19 subbands through the residual bit allocation process.
사전 할당을 통해 상승된 MNR값이 지나치게 높아지지 않고 최종 할당된 후의 평균수준에 잘 부합되고 있음을 볼 수 있다. 비트 할당이 모두 끝난 후 MNR은 10dB선 정도에 평평한 분포를 가지고 있으므로 비트율에 충분히 여유가 있음을 알 수 있다.It can be seen that the MNR value increased through pre-allocation does not become too high and is well suited to the average level after final allocation. After finishing the bit allocation, the MNR has a flat distribution of about 10dB, which shows that there is enough room for the bit rate.
도 21의 첫 번째 프레임에 대한 MNR의 경우는 사전 할당을 통해 1~6 서브밴드가 완전히 할당되고 잔여 비트 할당을 통해 중간 서브밴드 부분의 MNR이 보강된다. 최종 MNR곡선는 7dB선 정도에서 평형을 이루며 역시 0dB이하에 머무는 MNR값은 존재하지 않으므로 양자화 잡음이 완전히 마스킹되고 있다고 볼 수 있다.In the case of the MNR for the first frame of FIG. 21, 1 to 6 subbands are completely allocated through the pre-allocation, and the MNR of the intermediate subband part is reinforced through the residual bit allocation. The final MNR curve is equilibrated at about 7dB, and there is no MNR value that remains below 0dB, so the quantization noise is completely masked.
도 22의 바이올린 음원일 때는 앞의 두 경우와는 반대로 사전 할당 후에도 저주파 부근의 MNR값이 여전히 0dB미만에 있고, 따라서 잔여 할당이 저주파 대역 중심으로 이루어지고 있으며 중간 주파수 대역은 사전 할당을 통해 충분히 높은 MNR값을 지니고 있다. 평균 MNR값이 15dB이상으로 가장 높아, 부호화가 가장 잘되는 음원이라 말할 수 있다.In the case of the violin sound source of FIG. 22, the MNR value near the low frequency is still less than 0 dB even after the pre-allocation, contrary to the previous two cases, so that the residual allocation is centered around the low frequency band, MNR value. The average MNR value is the highest with 15dB or more, which is the best sounding source.
세가지 경우를 통해 표 4에서 택한 사전 할당 비트량이 다양한 음원에 대해 적절했음을 검증할 수 있다. 저주파 대역에 더 많은 사전 비트 할당을 하면 바이올린과 같은 음원에 대해서는 유리해지겠지만 전자기타 음원과 같은 경우는 저주파 대역의 MNR이 너무 높아지는 결과를 가져오게 될 것이다.In three cases, it can be verified that the pre-allocated bit amounts selected in Table 4 are appropriate for various sound sources. More pre-bit allocation in the low-frequency band will be beneficial for sources such as violins, but in the case of electronic guitar sources, the MNR in the low-frequency band will be too high.
반대로 중간 주파 대역에 더 많은 사전 할당을 하게 되면 바이올린과 같은 음원에 대해 저주파 대역에서 비트수가 모자르는 경우가 생길 수 있다.On the contrary, if more pre-allocation is made to the intermediate frequency band, there may be a case where the number of bits in the low frequency band is insufficient for a sound source such as a violin.
다양한 음원에 대한 많은 실험 결과, 비트 할당 전의 MNR 곡선은 그림 19의 세가지 유형에서 크게 벗어나지 않는 것으로 나타났다. 만약 특별한 음원이 있어 MNR 곡선이 위의 유형을 벗어난다고 하더라도 채널당 128Kbps의 비트율에서는 할당할 비트에 충분한 여유가 있기 때문에 최종적인 MNR 곡선은 전대역에 걸쳐 항상 0dB보다 큰 값을 유지할 수 있다.Many experiments on various sources show that the MNR curve before bit allocation does not deviate significantly from the three types of Figure 19. Even if the MNR curve is out of the above type due to a particular sound source, the final MNR curve can always be greater than 0dB over the entire band because there is enough room to allocate at a bit rate of 128Kbps per channel.
여러 종류의 음악에 대해 MPEG 본래의 비트 할당 방법과 사전 할당을 통한 방법의 부호화된 음질을 비교한 결과 거의 구별이 되지 않는 것으로 나타났다.As a result of comparing the encoded bit quality of the original bit allocation method and the pre - allocation method for different types of music, it was found to be almost indistinguishable.
6. 실험 및 결과6. Experiments and Results
본 발명에서 구현된 MPEG-2 실시간 오디오 부호화기 소프트웨어의 성능 평가는 각 서브루틴별 수행시간에 대한 평가와 최종 비트열을 복호화하였을 때의 음질에 대한 평가로 나눌 수 있다.The performance evaluation of the MPEG-2 real-time audio encoder software implemented in the present invention can be divided into evaluation of execution time for each subroutine and evaluation of sound quality when the final bit stream is decoded.
2채널의 CD 플레이어 및 5채널의 아날로그 음원을 제공하는 THX 프로세서를 A/D 변환기(Analog-to-Digital Converter)에 연결한 다음 A/D의 출력을 각 슬레이브 보드의 직렬 포트에 연결하여 음악 데이터를 얻는다.Connect THX processor, which provides 2 channel CD player and 5 channel analog sound source to A / D converter (analog-to-digital converter), and connect output of A / D to serial port of each slave board, .
16비트 전송을 알리는 프레임 싱크(frame sync)신호와 전송 클락이 내장된 6채널의 A/D를 제작하여 실험에 이용하였는데, A/D 변환기(7)와 슬레이브 보드(1)의 프로세서 직렬 포트간에는 부가 회로가 필요 없이 직접 연결이 가능하도록 설계하였다.D converter (7) and the processor serial port of the slave board (1) have been used for the experiment. The A / D converter has a 6-channel A / It is designed to enable direct connection without additional circuit.
음원이 되는 아날로그 출력으로는 음악의 시작과 끝을 알리는 신호를 제공할 수 없기 때문에 부호화기의 리셋 스위치를 이용하여 부호화될 음악의 범위를 조절하도록 하였다.Since the analog output as a sound source can not provide a signal indicating the start and end of the music, the range of the music to be encoded is adjusted by using the reset switch of the encoder.
16비트 PCM 형식의 데이터를 얻으려면 직렬 데이터 선과 프레임 싱크, 그리고 전송 클락 신호를 프로세서의 해당하는 입력핀에 연결하면 된다.To obtain 16-bit PCM formatted data, connect the serial data line, frame sync, and transmit clock signals to the appropriate input pins on the processor.
MPEG-2는 최대 5.1채널을 처리하지만 기본적인 2채널(L, R) 또는 3채널(L, R, S)등 다양한 채널 구성을 지원하므로 가능한 모든 채널 조합에 대하여 실험을 하였다.MPEG-2 supports up to 5.1 channels, but it supports various channel configurations such as basic 2-channel (L, R) or 3-channel (L, R, S)
각 슬레이브 보드(1)는 채널 구성에 상관없이 한 채널만을 처리하므로 프로그램 변경 없이 사용될 수 있으나 마스터 프로그램은 채널 구성 및 비트율에 따라 변경되어야 한다.Since each slave board 1 processes only one channel regardless of the channel configuration, it can be used without changing the program, but the master program must be changed according to the channel configuration and the bit rate.
프로세서에는 프로그램 수행 사이클을 측정할 수 있는 별도의 장치가 없기 때문에 각 서브 루틴별 수행 시간은 일정 시간 간격으로 들어오는 입력 샘플의 개수를 이용하여 측정하였다.Since the processor does not have a separate device for measuring the program execution cycle, the execution time of each subroutine is measured by using the number of input samples that come in at certain time intervals.
측정해야할 서브루틴의 수행전과 수행후의 들어온 입력샘플수 차이를 시간으로 환산하면 수행시간을 얻을 수 있다.The execution time can be obtained by converting the difference in the number of incoming input samples before and after execution of the subroutine to be measured into time.
입력 샘플의 표본화 주파수가 48KHz이고 시스템의 클럭주파수가 33MHz일 때, 샘플수와 수행시간의 관계는 다음과 같다.When the sampling frequency of the input sample is 48 KHz and the clock frequency of the system is 33 MHz, the relationship between the number of samples and the execution time is as follows.
▶
▶
▶
▶
본 발명에서 구현된 시스템 소프트웨어의 슬레이브 보드(1)에서 처리되는 서브루틴들의 최적화된 수행시간은 표 5와 같다. 수행시간이 일정치 않은 서브 루틴들에 대해서는 가장 길 때의 시간으로 표시했다.The optimized execution times of the subroutines processed in the slave board 1 of the system software implemented in the present invention are shown in Table 5. For subroutines with non-deterministic execution times, the time is expressed as the longest time.
Lee's 고속 DCT를 이용하여 분석 행렬을 대체한 서브 밴드 분석과정은 기존 수행시간 10.86msec의 57.3%인 6.22msec만에 처리되어 가장 개선된 수행 성능을 보이고 있다.The subband analysis process, which replaces the analysis matrix using Lee's fast DCT, has been performed in only 6.22msec, which is 57.3% of the existing execution time of 10.86msec, showing the most improved performance.
이때, 슬레이브 보드(1)내의 프로세서-a(11)에서 실행되는 서브루틴들은 처리되는 동안에 계속해서 입력 샘플을 받기 위한 인터럽트 루틴이 수행되기 때문에 실제 수행 시간은 측정된 것보다 빠르다고 말할 수 있다.At this time, the subroutines executed in the processor-a 11 in the slave board 1 can be said to be faster than the measured times because the interrupt routine for continuously receiving the input samples is performed during the processing.
슬레이브 보드(1)내 프로세서-b(12)의 심리 음향 모델은 어셈블 명령어 사용의 최적화 등을 통해 3.56msec의 수행시간을 개선하였다. 개선된 후 슬레이브 보드(1)내의 프로세서-a(11)에서 처리되는 서브루틴들의 'load'의 합이 50%를 넘지 않는다.The psychoacoustic model of the processor-b 12 in the slave board 1 improves the execution time of 3.56 msec, for example by optimizing the use of assemble instructions. The sum of the 'load' of the subroutines processed in the processor-a 11 in the slave board 1 after the improvement does not exceed 50%.
따라서 슬레이브 보드(1)내 프로세서-b(12)의 심리 음향 모델을 조금 더 개선하여 'load'를 50%이하로 줄인다면, 슬레이브 보드(1)의 프로세서 사용을 한 개로 줄일 수 있게 될 것이다.Therefore, if the psychoacoustic model of the processor-b 12 in the slave board 1 is further improved to reduce the load to 50% or less, the use of the processor of the slave board 1 can be reduced to one.
마스터 보드(2)에서 수행되는 루틴은 채널수와 비트율에 따라 처리해야하는 데이터 양이 달라지므로 수행시간도 각기 다르다. 채널 증가에 따라 가장 많은 수행시간이 걸리는 비트 할당 과정의 경우 사전 할당을 통해 실시간 처리가 가능하도록 수행시간을 조절할 수 있다.Since the amount of data to be processed varies depending on the number of channels and the bit rate, the routines executed in the master board 2 have different execution times. In the bit allocation process, which takes the longest execution time according to the channel increase, the execution time can be adjusted so that real-time processing can be performed through pre-allocation.
2채널까지의 처리는 비트율에 상관없이 사전할당을 사용하지 않고도 실시간 처리가 가능하여 기존의 MPEG 비트 할당 알고리듬을 사용하였고, 3채널 이상부터는 비트율에 따라 적절히 사전 할당을 하는 방법을 택하였다.For the processing up to 2 channels, the existing MPEG bit allocation algorithm is used and the pre-allocation is appropriately performed according to the bit rate from 3 channels or more, since real-time processing is possible without using the pre-allocation regardless of the bit rate.
2채널 192Kbps와 5채널 640Kbps인 경우에 대해 마스터 보드(2)에서 수행되는 루틴들의 최적화된 수행시간이 표 6에 나와 있다.Table 6 shows the optimized execution times of the routines performed on the master board 2 for two channels of 192 Kbps and five channels of 640 Kbps.
사전 할당을 통해서 비트 할당 과정의 수행시간은 얼마든지 조절이 가능하고 나머지 루틴들은 비트율에 따른 수행시간 변화가 크지 않으므로 구현된 부호화기는 사실상 모든 비트율에 대해서 실시간 처리가 가능하다.Since the execution time of the bit allocation process can be controlled by pre-allocation, and the execution time of the remaining routines is not changed by the bit rate, the implemented encoder can perform real-time processing on virtually all bit rates.
첫 번째 프레임의 입력 샘플이 모두 들어온 후부터 4개의 프로세서를 거쳐서 최종 비트열이 나가는 순간까지의 수행시간은 그림 9의 프로세서사이의 동기화 과정을 살펴보면 계산할 수 있다.The execution time from the arrival of the input samples of the first frame to the moment when the last bit sequence goes out through the four processors can be calculated by looking at the synchronization process between processors in Fig.
PC로 최종 비트열이 전송되는 프로세서인 마스터 보드(2)내 프로세서-a(21)의 첫 번째 프레임에 대한 작업 시작은 슬레이브 보드(1)내 프로세서-a(11)의 세 번째 프레임에 대한 서브밴드 분석이 끝나는 시점과 동기화되어 있다.The start of work for the first frame of the processor-a 21 in the master board 2, which is the processor in which the final bit string is transmitted to the PC, It is synchronized with the end of band analysis.
그러므로 첫 번째 샘플이 입력되어 최종 비트열이 전송될 때까지의 전체 부호화 시간 지연(coding delay)은 아래와 같이 계산된다.Therefore, the total coding delay until the first bit is input and the last bit stream is transmitted is calculated as follows.
Coding Delay = (1 프레임 구간; 입력 버퍼가 채워지는 시간) + (2 프레임 구간)Coding Delay = (1 frame interval; the time when the input buffer is filled) + (2 frame intervals)
+ (서브밴드 분석 구간) + (Master-a 수행 구간)+ (Subband analysis interval) + (Master-a interval interval)
= 24.0 + 2*24.0 + (4.64+0.37) + 17.15= 24.0 + 2 * 24.0 + (4.64 + 0.37) + 17.15
=94.16(msec)= 94.16 (msec)
본 발명에서 구현된 실시간 부호화기를 사용하여 생성해낸 비트열은 하드디스크에 저장된 후 C언어로 작성된 MPEG 다채널 표준 복호화 프로그램으로 복호화하여 성능을 검증하였다.The bitstreams generated by the real-time encoder implemented in the present invention are stored in a hard disk and then decoded by an MPEG multi-channel standard decoding program written in C language to verify the performance.
채널당 비트율이 64Kbps일 때는 복호화된 음악에 음질 손상이 있음이 쉽게 느껴지지만 96Kbps일 때는 대역이 좁은 바이올린, 첼로와 같은 음원에 대해 원음과 비교해서 큰 차이가 나지 않는다. 채널당 비트율이 128Kbps일 때는 복원음이 원음과 거의 구분이 되지 않게 된다.When the bit rate per channel is 64Kbps, it is easily felt that the sound quality is damaged in the decoded music. However, at 96Kbps, there is not a big difference compared to the original sound source such as violin and cello. When the bit rate per channel is 128 Kbps, the restored sound is hardly distinguishable from the original sound.
그 이상 비트율이 상승할 경우는 제작된 A/D 변환기, 재생에 사용된 스피커와 앰프등에 의한 음질 왜곡이 부호화에 따른 음질 손실보다 더 심해 128Kbps일 때의 음질에 비교해서 크게 개선되고 있음을 느끼기 어렵다.If the bit rate increases further, it is hard to feel that the sound quality distortion caused by the manufactured A / D converter, the speaker and the amplifier used for reproduction is much worse than the sound quality loss caused by the encoding, .
도 23은 44.1KHz 표본화 주파수에서 같은 입력 샘플에 대해 구한 SMR 곡선을 바탕으로 64, 96, 128 Kbps로 비트 할당을 했을 때 최종적인 MNR 곡선을 나타내고 있다. 비트율이 상승함에 따라, 비트 할당된 대역에서 대략 6-10dB정도의 MNR 상승이 이뤄지고 있음을 볼 수 있다.23 shows the final MNR curve when bit allocation is performed at 64, 96, and 128 Kbps based on the SMR curve obtained for the same input sample at the 44.1 KHz sampling frequency. As the bit rate increases, it can be seen that the MNR increase is about 6-10 dB in the bit allocated band.
64Kbps에서는 할당된 모든 대역의 MNR이 아직 0dB에 미치지 못해, 마스킹되지 않는 양자화 잡음이 존재한다고 볼 수 있다.At 64 Kbps, the MNR of all allocated bands still does not reach 0dB, indicating that there is quantization noise that is not masked.
96Kbps에서는 할당 대역이 모두 0dB에 접근했지만 아직 완전히 마스킹되지 않는 서브밴드가 존재하고 있음을 알 수 있다.At 96 Kbps, it can be seen that all of the allocated bands are approaching 0 dB but there are subbands that are not completely masked yet.
128Kbps의 비트율에서는 전 대역의 MNR이 5-10dB 이상에 분포하고 있어서, 이제 이론적으로 모든 서브밴드의 양자화 잡음이 신호에 의해 마스킹되고 있다고 말할 수 있다.At a bit rate of 128Kbps, the MNR of the entire band is distributed over 5-10dB, so that it can theoretically say that the quantization noise of all subbands is masked by the signal.
도 23의 비트 할당에 따른 최종 MNR 곡선을 비교함으로서 부호화된 비트열의 비트율에 따른 음질 차이를 설명할 수 있다. 원음과 주관적 음질 차이가 나지 않는 채널당 128Kbps의 비트율은 샘플당 평균 2.67비트가 사용된 것으로 16비트로 양자화된 PCM 샘플에 대해 약 6:1의 압축 성능을 갖는다.By comparing the final MNR curve according to the bit allocation in FIG. 23, it is possible to explain the difference in sound quality according to the bit rate of the encoded bit stream. The bit rate of 128 Kbps per channel, which does not make a difference between the original sound and the subjective sound quality, is an average of 2.67 bits per sample, and has a compression performance of about 6: 1 for a 16-bit quantized PCM sample.
복호화되어 하드디스크에 저장된 5채널 PCM 샘플은 제작된 직렬 전송 카드로 D/A 변환기(Digital-to-Analog Converter)에 보내져 아날로그 신호로 변환된 후 앰프로 출력하여 음질을 평가할 수 있다.The 5-channel PCM samples decoded and stored on the hard disk are sent to a D / A converter (Digital-to-Analog Converter) through a manufactured serial transmission card, converted into analog signals, and outputted to an amplifier to evaluate sound quality.
이상에서 설명한 바와 같이 본 발명에 의해 구현된 부호화기 소프트웨어는, MPEG-2 계층 2의 48KHz 표본화율에서 5.1채널, 640Kbps까지 실시간 처리되었으므로 그 이하의 모든 비트율과 표본화율, 채널 조합이 가능하고, 또 다채널 부호화를 보다 효과적으로 수행하기 위한 방법으로 MPEG-2에서 제안한 복합 부호화(composite coding) 중 다이내믹 전송 채널 스위칭과 중앙 채널의 가상 부호화(phantom coding)를 지원한다.As described above, since the encoder software implemented in the present invention is processed in real time from the 48 kHz sampling rate of the MPEG-2 layer 2 to 5.1 channels and 640 Kbps, all the bit rates, sampling rates, and channel combinations below it are possible As a method to more effectively perform channel coding, it supports dynamic transport channel switching and phantom coding of a central channel in the composite coding proposed in MPEG-2.
각 서브루틴의 고속화 및 최적화는 2개의 프로세서로 처리하던 슬레이브 보드 수행 루틴을 50MHz로 Up-clocking시 한 개의 프로세서만으로 처리가 가능하며, 또 4개의 프로세서가 있어야 실시간 처리가 가능한 마스터 보드의 다채널 처리도 고속 알고리듬을 적용하여 2개의 프로세서만으로 처리할 수 있고, 사용되는 프로세서의 숫자가 줄면 제작 비용상의 이득뿐만 아니라 HDTV 방송등의 응용시에 중요한 문제인 부호화 시간 지연(coding delay)도 줄일 수 있으며, 최적화된 프로그램은 범용 DSP 프로세서를 이용하여 개발된 것이므로 다른 프로세서나 ASIC 등의 응용에 활용할 수 있는 것이다.High speed and optimization of each subroutine can be processed by one processor only when up-clocking the slave board execution routine processed by two processors to 50MHz, and multi-channel processing Speed algorithm can be processed by only two processors. If the number of used processors is reduced, not only a gain in manufacturing cost but also a coding delay, which is an important problem in application of HDTV broadcasting, can be reduced. Since the program was developed using a general-purpose DSP processor, it can be used for applications such as other processors and ASICs.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980019244A KR100294623B1 (en) | 1998-05-27 | 1998-05-27 | Real time processing device of hdtv audio coder and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980019244A KR100294623B1 (en) | 1998-05-27 | 1998-05-27 | Real time processing device of hdtv audio coder and method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990086309A true KR19990086309A (en) | 1999-12-15 |
KR100294623B1 KR100294623B1 (en) | 2001-07-12 |
Family
ID=37527565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980019244A KR100294623B1 (en) | 1998-05-27 | 1998-05-27 | Real time processing device of hdtv audio coder and method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100294623B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020067694A1 (en) * | 2018-09-24 | 2020-04-02 | 엘지전자 주식회사 | Method and apparatus for processing image signal |
-
1998
- 1998-05-27 KR KR1019980019244A patent/KR100294623B1/en not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020067694A1 (en) * | 2018-09-24 | 2020-04-02 | 엘지전자 주식회사 | Method and apparatus for processing image signal |
Also Published As
Publication number | Publication date |
---|---|
KR100294623B1 (en) | 2001-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Vernon | Design and implementation of AC-3 coders | |
US5946352A (en) | Method and apparatus for downmixing decoded data streams in the frequency domain prior to conversion to the time domain | |
US5893066A (en) | Fast requantization apparatus and method for MPEG audio decoding | |
KR100737302B1 (en) | Compatible multi-channel coding/decoding | |
US6665409B1 (en) | Methods for surround sound simulation and circuits and systems using the same | |
US20020103635A1 (en) | Efficient PCM buffer | |
US5832445A (en) | Method and apparatus for decoding of digital audio data coded in layer 1 or 2 of MPEG format | |
WO2005083684A1 (en) | Decoding scheme for variable block length signals | |
CA2329484A1 (en) | System and method for efficient time-domain aliasing cancellation | |
KR100760976B1 (en) | Computing circuits and method for running an mpeg-2 aac or mpeg-4 aac audio decoding algorithm on programmable processors | |
US20020147753A1 (en) | Methods and systems for raising a numerical value to a fractional power | |
JP2776300B2 (en) | Audio signal processing circuit | |
US6108633A (en) | Audio decoder core constants ROM optimization | |
KR100294623B1 (en) | Real time processing device of hdtv audio coder and method thereof | |
Murphy et al. | Real-time MPEG-1 audio coding and decoding on a DSP chip | |
JP2000236543A (en) | Method for coding or decoding audio or video frame data and its system | |
US6775587B1 (en) | Method of encoding frequency coefficients in an AC-3 encoder | |
Fältman et al. | A hardware implementation of an MP3 decoder | |
KR100891686B1 (en) | Apparatus for encoding and decoding audio signal and method thereof | |
Han et al. | An ASIC implementation of the MPEG-2 audio decoder | |
KR100285419B1 (en) | Apparatus and method for digital audio coding using broadcasting system | |
Oh et al. | New implementation techniques of a real-time MPEG-2 audio encoding system | |
JP2000059232A (en) | Audio decoder | |
Thomas et al. | An Efficient Implementation of MPEG-2 (BC1) Layer 1 & Layer 2 Stereo Encoder on Pentium-III Platform | |
US20050096918A1 (en) | Reduction of memory requirements by overlaying buffers |
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 | ||
LAPS | Lapse due to unpaid annual fee |