KR101260017B1 - 오디오 채널 간의 동기화를 위한 오디오 재생 장치 - Google Patents

오디오 채널 간의 동기화를 위한 오디오 재생 장치 Download PDF

Info

Publication number
KR101260017B1
KR101260017B1 KR1020120009204A KR20120009204A KR101260017B1 KR 101260017 B1 KR101260017 B1 KR 101260017B1 KR 1020120009204 A KR1020120009204 A KR 1020120009204A KR 20120009204 A KR20120009204 A KR 20120009204A KR 101260017 B1 KR101260017 B1 KR 101260017B1
Authority
KR
South Korea
Prior art keywords
audio
file
buffer
channel
data
Prior art date
Application number
KR1020120009204A
Other languages
English (en)
Inventor
서창민
Original Assignee
주식회사 금영
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 금영 filed Critical 주식회사 금영
Priority to KR1020120009204A priority Critical patent/KR101260017B1/ko
Application granted granted Critical
Publication of KR101260017B1 publication Critical patent/KR101260017B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10037A/D conversion, D/A conversion, sampling, slicing and digital quantisation or adjusting parameters thereof
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10222Improvement or modification of read or write signals clock-related aspects, e.g. phase or frequency adjustment or bit synchronisation
    • G11B20/10231Improvement or modification of read or write signals clock-related aspects, e.g. phase or frequency adjustment or bit synchronisation wherein an asynchronous, free-running clock is used; Interpolation of sampled signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • G11B2020/00014Time or data compression or expansion the compressed signal being an audio signal
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10787Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data parameters, e.g. for decoding or encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

각 오디오 채널이 독립적으로 제어될 수 있고 오디오 파일로부터 재생되는 오디오 채널이 용이하게 다른 오디오 채널과 동기화될 수 있도록 하는, 오디오 채널 간의 동기화를 위한 오디오 재생 장치에 관한 것이다.
본 발명을 이용함으로써, 오디오 채널간의 동기화를 용이하게 이룰 수 있고 각각의 오디오 채널을 개별적으로 제어하여 다양한 음향 효과와 풍부한 오디오 음을 사용자에게 제공할 수 있도록 하는 효과가 있다.

Description

오디오 채널 간의 동기화를 위한 오디오 재생 장치{AUDIO PLAYING APPARATUS FOR SYNCHRONIZING BETWEEN AUDIO CHANNELS}
본 발명은 오디오 채널 간의 동기화를 위한 오디오 재생 장치에 관한 것으로서, 구체적으로는 각 오디오 채널이 독립적으로 제어될 수 있고 오디오 파일로부터 재생되는 오디오 채널이 용이하게 다른 오디오 채널과 동기화될 수 있도록 하는, 오디오 채널 간의 동기화를 위한 오디오 재생 장치에 관한 것이다.
노래 반주 장치와 같은 오디오 재생 장치는 오디오 콘텐츠를 재생할 수 있고, 이에 더하여 비디오 콘텐츠를 더 재생할 수 있다. 이러한 오디오 재생 장치는, 특히 이 오디오 재생 장치를 사용하는 사용자에게 호감을 사기 위해서 다수의 음향적인 효과를 제공할 수도 있다.
그러나 노래 반주 장치와 같은 오디오 재생 장치는 전통적인 방법으로 미디 파일로부터 미디 명령어를 생성하고, 이 미디 명령어에 대응하는 미디 신호음을 발생시킴으로써 특정 곡을 재생할 수 있도록 한다. 이러한 전통적인 방법은 미디 명령어를 이용하여 간단하게 사용자가 요구하는 다양한 음향 효과(예를 들어 음악의 템포나 음정 변환 등)를 제공할 수 있다는 점에 기인한다.
그러나 이러한 미디 신호음은 기계적 혹은 전자적으로 합성된 오디오 신호음으로써 사용자에게 실감나는 음향 효과와 풍부한 오디오 신호음을 제공하기 위해서는 부족한 점이 있다.
특히 영상 매체가 발달하고 라이브 무대가 일반화됨에 따라 라이브 영상 등에서 제공하는 오디오와 비교해서 확연한 차이가 날 수 있고 이는 사용자에게 호감을 제공하지 못하도록 한다.
이러한 문제에 따라 전통적인 미디 신호음에 더하여 특정 포맷의 압축된 오디오 파일을 재생할 수 있도록 하는 음성을 포함하는 코러스를 가미한 노래 반주 장치가 알려져 있다.
그러나 이러한 코러스를 포함하는 노래 반주 장치의 경우에도 미디 파일과의 동기를 맞추기 위한 동기화 문제로 인하여 특정 오디오 파일 포맷만을 제공하고, 이퀄라이저와 같은 효과를 제공하는 데 한계가 있고, 코러스를 자유자재로 오디오 신호로 출력시키거나 출력 중단하기에는 용이하지 않다.
이와 같은 문제는, 오디오 파일에 대한 특정 압축 포맷의 경우에 이 압축 파일을 디코딩하는 데 걸리는 시간이 제각기 다르다는 것과, 상이한 압축 포맷의 경우에 디코딩하는 데 걸리는 시간이 역시 달라 이렇게 디코딩된 오디오 스트림을 다시 미디의 신호음과 동기를 맞추기가 여간 쉽지 않다는 점과 하나의 오디오 채널에 다수의 오디오 파일을 연속하여 재생하는 경우에 이 오디오 파일들 간에 디코딩과 동기화를 맞추기 위한 방식을 찾기 쉽지 않다는 점에 기인한다.
따라서 기존의 제약 사항에 벗어나서, 다양한 방식의 오디오 파일을 미디 신호음과 동기화하여 디코딩할 수 있고, 다수의 오디오 파일을 연속하여 혹은 이어서 재생하는 경우에도 그 동기를 쉽게 맞출 수 있도록 하는 오디오 재생 장치를 제공한다면, 이 오디오 재생 장치를 사용하는 사용자에게는 풍부한 오디오 신호음으로 인해 호감을 살 수 있도록 할 것이다.
또한, 다양한 방식으로 다양한 음이 가미된 오디오 신호음을 사용자에게 제공할 수 있다면 사용자에게 또 다른 호감을 살 수 있을 것이다.
따라서, 압축된 하나 이상의 오디오 파일을 미디 파일과 동기화하여 하나 이상의 채널로 출력할 수 있도록 하고 각 채널의 오디오 신호를 용이하게 제어할 수 있도록 하는 오디오 채널 간의 동기화를 위한 오디오 재생 장치가 필요하다.
본 발명은, 상술한 문제점을 해결하기 위해서 안출한 것으로서, 다양한 오디오 파일 포맷으로도 다른 오디오 채널과의 동기화를 이룰 수 있도록 하고 연속적으로 재생하여야 하는 오디오 파일을 다른 오디오 채널과 용이하게 동기화하여 재생할 수 있도록 하는, 오디오 채널 간의 동기화를 위한 오디오 재생 장치를 제공하는 데 목적이 있다.
또한 본 발명은, 복수의 오디오 채널을 제공하고 각각의 오디오 채널이 다른 오디오 채널과의 동기화를 용이하게 이루어지도록 하고 각각의 오디오 채널을 개별적으로 제어할 수 있도록 하는, 오디오 채널 간의 동기화를 위한 오디오 재생 장치를 제공하는 데 목적이 있다.
또한 본 발명은, 미디 파일과 하나 이상의 오디오 채널로 구성된 콘텐츠로서 각 오디오 채널은 하나 혹은 복수의 오디오 파일로 된 경우에 콘텐츠 구성의 제약에 구속되지 않고, 콘텐츠를 미디 파일과 오디오 파일 간에 동기화가 될 수 있도록 하고 재생 가능하도록 하는, 오디오 채널 간의 동기화를 위한 오디오 재생 장치를 제공하는 데 목적이 있다.
또한 본 발명은, 하나의 오디오 채널을 하나의 오디오 출력 포트에 동적으로 맵핑 시켜, 각 오디오 출력 포트에 개별적인 제어로 음향 효과를 제공할 수 있도록 하는, 오디오 채널 간의 동기화를 위한 오디오 재생 장치를 제공하는 데 목적이 있다.
상기와 같은 목적을 달성하기 위한, 오디오 채널 간의 동기화를 위한 오디오 재생 장치는, 기준 클록을 생성하는 기준 클록 생성부와 제 1 오디오 파일 중 일부에 대하여 지정된 상기 기준 클록의 제 1 시점부터 제 1 오디오 채널로 일부의 데이터에 기초하여 변환된 오디오 데이터를 출력하는 제 1 오디오 신호 출력부와 제 1 오디오 파일과는 상이한 파일 포맷인 하나 이상의 제 2 오디오 파일을 디코딩하고 기준 클록의 제 2 시점부터 디코딩된 오디오 스트림을 제 2 오디오 채널로 출력하는 제 2 오디오 신호 재생부를 포함한다.
또한 상기와 같은 목적을 달성하기 위한, 오디오 채널 간의 동기화를 위한 오디오 재생 장치는, 상기 제 1 오디오 파일과는 상이한 파일 포맷인 하나 이상의 제 3 오디오 파일을 디코딩하고 상기 기준 클록에 동기화되어 지정된 시작 시점인 제 3 시점으로부터 디코딩된 오디오 스트림을 제 3 오디오 채널로 출력하는 제 3 오디오 신호 재생부를 더 포함하는 것을 특징으로 한다.
또한 상기와 같은 목적을 달성하기 위한, 오디오 채널 간의 동기화를 위한 오디오 재생 장치는, 제 2 오디오 신호 재생부에 포함되는 파일 버퍼가, 오디오 스트림을 제 2 오디오 채널로 출력하지 않고 대기 중인 준비 상태 버퍼와, 오디오 스트림을 제 2 오디오 채널로 출력하는 전송 상태 버퍼를 포함하고, 제 2 오디오 신호 재생부에 포함되는 파일 로딩 모듈이, 제 2 오디오 파일에 대한 제 2 시점 이전에 제 2 오디오 파일의 데이터를 순차적으로 준비 상태 버퍼로 로딩하고, 기준 클록이 제 2 시점 시에 준비 상태 버퍼의 데이터를 전송 상태 버퍼로 이전하며, 기준 클록이 제 2 시점 이후에 제 2 오디오 파일의 데이터를 전송 상태 버퍼로 로딩하는 것을 특징으로 한다.
상기와 같은 오디오 채널 간의 동기화를 위한 오디오 재생 장치는, 다양한 오디오 파일 포맷으로도 다른 오디오 채널과의 동기화를 이룰 수 있도록 하고 연속적으로 재생하여야 하는 오디오 파일을 다른 오디오 채널과 용이하게 동기화하여 재생할 수 있도록 하는 효과가 있다.
또한 상기와 같은 오디오 채널 간의 동기화를 위한 오디오 재생 장치는, 복수의 오디오 채널을 제공하고 각각의 오디오 채널이 다른 오디오 채널과의 동기화를 용이하게 이루어지도록 하고 각각의 오디오 채널을 개별적으로 제어할 수 있도록 하는 효과가 있다.
또한 상기와 같은 오디오 채널 간의 동기화를 위한 오디오 재생 장치는, 미디 파일과 하나 이상의 오디오 채널로 구성된 콘텐츠로서 각 오디오 채널은 하나 혹은 복수의 오디오 파일로 된 경우에 콘텐츠 구성의 제약에 구속되지 않고, 콘텐츠를 미디 파일과 오디오 파일 간에 동기화가 될 수 있도록 하고 재생 가능하도록 하여 사용자에게 다양한 음향 효과와 풍부한 오디오 음을 제공할 수 있도록 하는 효과가 있다.
또한 상기와 같은 오디오 채널 간의 동기화를 위한 오디오 재생 장치는, 하나의 오디오 채널을 하나의 오디오 출력 포트에 동적으로 맵핑 시켜, 각 오디오 출력 포트에 개별적인 제어로 음향 효과를 극대화할 수 있도록 하는 효과가 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 오디오 재생 장치의 하드웨어 블록도의 일 실시예를 도시한 도면이다.
도 2는, 오디오 채널 간의 동기화를 위한 오디오 재생 장치의 기능 블록도의 일 실시예를 도시한 도면이다.
도 3은, 저장부에 저장되어 있는 콘텐츠 구조 정보의 다양한 실시 구조를 도시한 도면이다.
도 4는, 채널 오디오 신호 재생부의 상세 기능 블록도를 도시한 도면이다.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술 되어 있는 상세한 설명을 통하여 더욱 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다.
도 1은 오디오 채널 간의 동기화를 할 수 있는 오디오 재생 장치의 하드웨어 블록도의 일 실시예를 도시한 도면이다. 도면 부호의 용이한 구별을 위하여 이하에서 하드웨어 블록은 100번 대의 번호로 도시하고, 반면에 기능 블록은 200번 대 혹은 300번 대의 번호로 도시하도록 한다.
도 1에 따르면, 오디오 재생 장치는, 휘발성 메모리(101), 비휘발성 메모리(103), 대용량 저장 매체(105), 입력 인터페이스(107), 미디 합성기(109), 오디오 DAC(111), 비디오 DAC(113), 오디오 믹서(115), 오디오 출력 포트(117), 비디오 출력 포트(119), 제어 프로세서(121), 클록 발생기(125) 및 시스템 버스/제어 버스(123)를 포함한다. 블록들 중 일부의 블록은 그 구현 예에 따라 생략될 수 있거나, 혹은 도 1에 포함되지 않은 하드웨어 블록이 오디오 재생 장치를 구성하는 블록도에 더 포함될 수 있다.
이러한 오디오 재생 장치는 다수의 오디오 콘텐츠를 동시에 재생할 수 있고 이 다수의 오디오 콘텐츠 간의 시간적인 동기를 특정 시간 클록을 이용하여 동기화할 수 있는 장치이다. 예를 들어 이러한 오디오 재생 장치는 노래방 등에서 사용되는 노래 반주 장치이거나, 혹은 다양한 연주 효과음을 제공할 수 있도록 하는 특정 공연장에서 사용될 수 있는 장치일 수 있다.
도 1의 오디오 재생 장치에 포함된 각 블록에 대해서 살펴보면, 휘발성 메모리(101)는, 이 메모리에 저장된 데이터가 전원의 공급이 중단됨에 따라 소멸되는 메모리이다. 예를 들어 휘발성 메모리(101)는 DRAM 타입의 메모리일 수 있다.
이러한 휘발성 메모리(101)에는, 제어 프로세서(121)의 제어하에 각종 데이터와 프로그램 등을 임시로 저장한다.
비휘발성 메모리(103)는, 이 메모리에 저장된 데이터가 전원의 공급이 중단에도 불구하고 유지되는 메모리이다. 이러한 비휘발성 메모리(103)는, NOR 타입 또는 NAND 타입의 메모리일 수 있다.
이러한 비휘발성 메모리(103)는, 오디오 재생 장치에 전원이 인가됨에 따라서 부팅에 필요한 초기화 프로그램과 각 블록들을 제어하기 위한 설정 데이터 등을 저장한다.
대용량 저장 매체(105)는, 하드 디스크나 DVD 등과 같은 다수의 파일이나 콘텐츠를 저장할 수 있는 저장 매체이다. 이러한 대용량 저장 매체(105)는, 오디오 재생 장치에서 사용될 각종 데이터를 저장한다.
예를 들어 대용량 저장 매체(105)는, 오디오 재생 장치에서 재생되거나 연주되는 다수의 오디오 파일을 다양한 포맷으로 저장하고, 또한 제어 프로세서(121)에 로딩되어 이 오디오 파일을 실행할 수 있는 오디오 재생 프로그램 등을 저장한다.
예를 들어 대용량 저장 매체(105)는, 사용자가 재생하고자 하거나 부르고자 하는 각 곡에 대하여 사용될 하나 이상의 오디오 파일과 압축된 동영상 파일을 포함한다. 이러한 각 곡에 포함되는 하나 이상의 오디오 파일은, 각각이 상이한 오디오 포맷으로 구성될 수 있다.
예를 들어 각 곡은 3개 혹은 2개의 오디오 채널을 출력할 수 있도록 구성될 수 있고, 하나의 채널은 미디 포맷이나 혹은 특정 오디오 포맷(예를 들어 MP3 등)으로 인코딩된 오디오 파일에 할당되고, 나머지 2개 혹은 1개의 오디오 채널은 이 하나의 채널과는 상이하거나 혹은 동일한 특정 오디오 포맷의 오디오 파일에 할당될 수 있다.
여기서, 각 곡에 대하여 사용될 다수의 오디오 파일을 오디오 채널별로 식별하고, 각 오디오 파일의 재생 시작 시점 혹은 재생 시점을 알 수 있도록 하는 콘텐츠 구조 정보를 대용량 저장 매체(105)가 포함할 수 있다.
이러한 콘텐츠 구조 정보는 각 곡 별로 상이할 수 있고, 예를 들어 특정 곡은 2개의 오디오 채널을 이용할 수 있으나 다른 곡은 3개 혹은 4개의 오디오 채널을 이용할 수 있고, 혹은 이에 더하여 각 오디오 채널에는 복수의 오디오 파일을 이용하거나 상이한 오디오 포맷으로 인코딩된 오디오 파일을 이용할 수 있다.
이러한 콘텐츠 구조 정보는, 대용량 저장 매체(105)에만 저장될 필요는 없고, 비휘발성 메모리(103)나 혹은 휘발성 메모리(101)에 저장될 수도 있다.
이와 같은 각 곡에 대한 콘텐츠 구조 정보를 식별하기 위해서, 각 콘텐츠 구조 정보는 곡과 같은 콘텐츠를 식별하기 위한 식별자(예를 들어 곡 번호)를 이용하여 제어 프로세서(121)에 탑재되는 오디오 재생 프로그램 등에 의해서 식별될 수 있다.
콘텐츠 구조 정보에 대한 예제와 설명은 도 3을 통해서 상세히 살펴보도록 한다.
입력 인터페이스(107)는, 오디오 재생 장치를 이용하는 사용자로부터 명령을 수신할 수 있는 인터페이스이다. 이러한 입력 인터페이스(107)는 예를 들어 숫자 키나 선택 키 등과 같은 입력 키 버튼, 터치 패널 및/또는 음성 입력을 위한 마이크 등을 구비하고, 이러한 입력 인터페이스(107)를 통해 수신된 키 신호나 음성 신호를 수신한다.
이러한 키 신호나 음성 신호는 대용량 저장 매체(105) 등에 저장되어 연주될 수 있는 다수의 곡 중에서 하나의 곡 혹은 일부의 곡을 식별할 수 있도록 하고, 예를 들어 일련의 숫자 키를 수신할 수 있도록 한다.
미디 합성기(109)는, 제어 프로세서(121)에 연결되어 제어 프로세서(121)로부터 미디 명령을 수신하고, 이 미디 명령에 따라 미디 (신호)음을 생성하여 출력한다. 이러한 미디 합성기(109)는 미디 칩을 포함하는 보드의 형태로 구성될 수 있고, 이 보드 혹은 미디 칩은 제어 프로세서(121)와 미리 약속된 데이터 인터페이스(예를 들어 UART에 특정 보드 레이트로 데이터의 송수신)를 통해서 미디 명령을 수신할 수 있다.
하나 이상의 오디오 DAC(111)(Digital Analog Converter)는, 수신되는 디지털의 오디오 스트림을 아날로그의 오디오 신호로 출력한다. 이러한 오디오 DAC(111)는 미리 약속된 포맷의 디지털의 오디오 스트림(예를 들어 I2S, SPDIF 등)을 수신하고, 설정된 샘플링 레이트로 수신된 디지털의 오디오 스트림을 아날로그의 오디오 신호로 출력한다.
그리고 오디오 DAC(111)는 또한 제어 프로세서(121)에 제어 버스로 연결되어 제어 프로세서(121)에 의하여 제어될 수 있다. 예를 들어 이러한 오디오 DAC(111)는 제어 프로세서(121)에 의하여 샘플링 레이트를 변경할 수 있고, 묵음(mute), 이퀄라이저(Pop, Classic, Base 등), 음의 고저 등을 변경할 수 있다.
이에 따라, 오디오 DAC(111)에 연결되는 각각의 오디오 채널은 독립적으로 제어 프로세서(121)에 의하여 제어될 수 있도록 한다.
비디오 DAC(113)(Digital Analog Converter)는, 압축된 동영상으로부터 디코딩된 디지털의 비디오 스트림을 수신하여 이를 아날로그 혹은 디지털의 비디오 표준 포맷으로 변환하여 출력한다. 이러한 비디오 DAC(113)는 예를 들어 S-Video, 콤퍼지트(composite) 비디오 신호, HDMI 신호 등을 출력할 수 있다.
추가적으로 더 포함될 수 있는 오디오 믹서(115)는, 미디 합성기(109), 하나 이상의 오디오 DAC(111)로부터 수신된 오디오 신호를 합성하여 하나의 오디오 신호로 출력한다. 이러한 오디오 믹서(115)는 아날로그 대역에서 오디오 신호를 합성할 수 있고 필요에 따라서 증폭기를 믹싱 전 혹은 후에 포함할 수 있다.
오디오 출력 포트(117)는, 오디오 믹서(115) 혹은 미디 합성기(109)나 오디오 DAC(111)으로 출력된 오디오 신호를 외부의 앰프나 스피커에 연결될 수 있도록 하는 출력 단자이며 예를 들어 오디오 케이블을 연결할 수 있는 커넥터를 구비할 수 있다.
비디오 출력 포트(119)는, 비디오 DAC(113)를 통해 출력된 비디오 신호를 외부의 모니터(예를 들어 TV)에 연결될 수 있도록 하는 출력 단자이며, 예를 들어 HDMI 표준 단자나 S-Video 단자를 구비할 수 있다.
제어 프로세서(121)는, 오디오 재생 장치의 각 하드웨어 블록을 제어한다. 이 제어 프로세서(121)는, 하나 이상의 프로세서 코어(processor core)를 구비하고, 각 프로세서 코어는 명령어를 로딩하기 위한 페치 유닛(fetch unit), 명령어를 실행하기 위한 ALU 유닛을 포함한다.
이러한 제어 프로세서(121)는, 대용량 저장 매체(105) 혹은 비휘발성 메모리(103)에 저장된 각종 프로그램을 로딩하여 휘발성 메모리(101)에 임시로 저장하고, 이 각종 프로그램에 포함된 프로그램을 수행함으로써 각 하드웨어 블록들을 제어할 수 있다.
이 제어 프로세서(121)에서 수행될 수 있는 제어 흐름 또는 프로그램은 도 2 내지 도 4를 통해서 더욱더 상세히 살펴보도록 한다.
클록 발생기(125)는, 크리스탈(crystal) 또는 오실레이터(oscillator) 등과 같은 클럭을 발생하기 위한 하드웨어 블록이다. 이러한 클록 발생기(125)에서 발생하는 클록 신호는 제어 프로세서(121)를 구동하기 위한 구동 클록으로 사용될 수 있고, 또한 각종 시간을 결정하기 위한 기초로서 사용되어 진다.
시스템 버스/제어 버스(123)는, 오디오 재생 장치의 각 블록들 사이에 데이터를 송수신할 수 있도록 하는 버스이다. 이러한 시스템 버스/제어 버스(123)는 제어 프로세서(121)의 제어에 따라 하나 이상의 블록으로(부터) 데이터를 송수신할 수 있는 버스이며, 예를 들어 메모리 버스(DRAM 버스), 외부 I/O나 비휘발성 메모리(103)로(부터) 데이터를 송수신할 수 있는 버스를 포함하고 또한 I2C, SPI, UART 등과 같은 시리얼 버스를 포함할 수 있다.
비록 도 1에서는, 미디 합성기(109), 하나 이상의 오디오 DAC(111), 비디오 DAC(113)나 오디오 믹서(115)가 이 시스템 버스/제어 버스(123)에 분리된 것으로 도시하였으나, 이에 국한되지는 않고, 예를 들어 미디 합성기(109)나 오디오 DAC(111) 그리고 비디오 DAC(113)가 제어 프로세서(121)로부터 제어를 받기 위하여 이 시스템 버스/제어 버스(123)에 연결될 수 있다.
도 2는, 오디오 채널 간의 동기화를 위한 오디오 재생 장치의 기능 블록도의 일 실시예를 도시한 도면이다. 도 2에 따르면 오디오 재생 장치는 기준 클록 생성부(201), 오디오 채널 제어부(203), 저장부(205), 제 1 오디오 신호 출력부(207), 채널 오디오 신호 재생부(209), 제 1 오디오 효과부(211) 및 채널 오디오 효과부(213)를 포함한다. 블록들 중 일부의 블록은 그 구현 예에 따라 생략될 수 있거나, 혹은 도 2에 포함되지 않은 기능 블록이 오디오 재생 장치를 구성하는 기능 블록도에 더 포함될 수 있다.
이러한 기능 블록도는 예를 들어 제어 프로세서(121)에서 수행될 수 있는 프로그램(예를 들어 오디오 재생 프로그램)을 이용하여 구성될 수 있고, 이 프로그램은 제어 프로세서(121)로 하여금 각 하드웨어 블록을 제어할 수 있도록 한다.
도 2의 오디오 재생 장치에 포함된 각 블록에 대해서 살펴보면, 오디오 채널 제어부(203)는, 입력 인터페이스(107)를 통해 사용자가 선택한 곡을 식별하고 식별된 곡에 대응하는 콘텐츠 구조 정보를 저장부(205)로부터 로딩하여 로딩된 콘텐츠 구조 정보에 포함된 각종 제어 데이터를 이용하여 제 1 오디오 신호 출력부(207), 기준 클록 생성부(201), 제 2 채널 오디오 신호 재생부(209)(... 제 N 채널 오디오 신호 재생부)등에서 사용할 제어 정보를 생성하고 이를 각 기능 블록으로 전송하거나 각 기능 블록을 제어한다.
여기서 오디오 채널 제어부(203)와 다른 기능 블록들의 이해를 위해서, 먼저 콘텐츠 구조 정보의 예시적인 자료 구조를 도시한 도 3을 먼저 살펴보도록 한다.
도 3은, 저장부(205)에 저장되어 있는 콘텐츠 구조 정보의 다양한 실시 구조를 도시한 도면이다.
도 3에는 예시적으로 4가지 종류의 콘텐츠 구조 정보(도 3의 (a)에서 (d))를 도시하였으나 이에 국한되는 것은 아니며 다양한 다른 종류의 콘텐츠 구조 정보가 있을 수 있음은 자명하다.
여기서 콘텐츠 구조 정보란, 사용자에 의해서 혹은 자동으로 하나의 곡이 선택되어, 이 곡이 재생됨에 따라서 이 곡이 재생해야 하는 오디오 채널의 개수와 각 오디오 채널 내에서 재생되어야 할 오디오 파일을 식별할 수 있도록 하고, 각 오디오 파일이 재생되어야 할 시점을 알 수 있도록 하는 자료 구조를 나타낸다.
이러한 콘텐츠 구조 정보는, 다수의 오디오 채널에서 각각 사용해야 할 오디오 파일들(혹은 이 오디오 파일에 에 대한 식별 정보(예를 들어 파일명이나 디렉토리))을 포함하고, 특정 기준 클록을 이용해서 각 오디오 파일들이 재생되어야 할 시점에 대한 정보를 포함한다.
이러한 특정 기준 클록은 하나의 오디오 채널(제 1 오디오 채널)에 대하여 생성되는 기준 클록일 수 있고, 예를 들어 미디 파일에서 이용하는 기준 클록일 수 있다. 이러한 기준 클록은 미디 파일로부터 박자, 비트 수, 템포 등의 정보를 추출하여 결정할 수 있다. 따라서 이 기준 클록은 미디 파일이 재생을 시작할 때 초기화되고, 일정한 주기로 기준 클록이 증가하는(예를 들어 0에서 10mSec 단위로 1 씩 증가) 구조를 가질 수 있다.
물론 이러한 예시적인 구조에 국한될 필요는 없으며, 미디 파일 대신에 다른 오디오 파일 포맷으로 된 오디오 파일의 프레임 단위로 기준 클록이 증가될 수 있다.
이에 따라, 특정 기준 클록을 이용하여 각 오디오 파일(미디 파일과 오디오 파일)이 시작되어야 하는 시작 시점을 콘텐츠 구조 정보를 이용하여 알 수 있도록 한다.
또한 콘텐츠 구조 정보는, 각 오디오 파일의 파일 포맷의 정보를 더 포함할 수 있고, 이러한 파일 포맷에 따라서 이 파일 포맷을 디코딩하기 위해서 사용되는 프로그램 모듈을 로딩하도록 할 수 있다. 물론 이러한 파일 포맷은 생략될 수 있고, 이 때에는 각 오디오 파일을 로딩하여 디코딩할 때 실시간으로 그 파일 포맷을 결정할 수도 있다.
그리고 콘텐츠 구조 정보는 저장부(205)에 복수 개가 있을 수 있고, 각각의 콘텐츠 구조 정보는 하나의 곡에 대응하며, 이 콘텐츠 구조 정보를 사용자가 선택한 선곡 번호로서 식별하거나 혹은 자동으로 생성된 선곡 번호(혹은 식별자)로 식별할 수 있도록 한다.
이러한 콘텐츠 구조 정보에 대한 이해를 바탕으로 도 3을 잠시 살펴보면, 도 3의 (a)는, 미디 채널인 제 1 오디오 채널과, 특정 오디오 파일의 포맷으로 된 오디오 파일을 재생하는 제 2 오디오 채널로 구성된 콘텐츠 구조 정보이다. 이에 따라, 도 3의 (a)를 재생하는 경우에는, 미디 채널인 제 1 오디오 채널과 제 2 오디오 채널은 시작과 함께 동시에 재생을 시작하고, 이 재생에 따라서 미디 채널인 제 1 오디오 채널에 동기화될 수 있는 가사 파일(혹은 가사 파일을 식별할 수 있는 파일명, 디렉토리)을 로딩하여 비디오 DAC(113)를 통해서 가사를 디스플레이할 수 있도록 한다.
도 3의 (b)는, 하나의 곡을 재생하기 위해서 두 개의 오디오 채널을 가진 콘텐츠 구조 정보를 도시한 자료 구조이다. 이 예에서는, 제 2 오디오 채널에 대해서, 다수의 오디오 파일이 연속하여 특정 시작 시점(0, 100, 200)부터 출력되는 것을 알 수 있다. 이 다수의 오디오 파일은 동일한 파일 포맷일 수도 있고, 상이한 오디오 파일 포맷일 수도 있다.
동일한 파일 포맷, 혹은 상이한 오디오 파일 포맷인 경우에, 이 오디오 파일들은 각각의 시작 시점에 미디 채널(혹은 제 1 오디오 채널)과 정확한 동기를 맞출 필요가 존재한다. 이러한 동기는 본발명인 오디오 재생 장치의 기능 블록도에 의해서 맞출 수 있도록 한다.
도 3의 (c)와 (d)는, 하나의 곡을 재생하기 위해서 세 개의 오디오 채널을 가진 콘텐츠 구조 정보를 도시한 자료 구조이다. 각각의 오디오 채널은 각각을 위한 시작 시점을 각 오디오 파일별로 가진다.
도 3에 도시한 바와 같이, 사용자가 재생하고자 하는 곡들은 다양한 콘텐츠 구조 정보를 가질 수 있고, 각 오디오 채널별로 하나 이상의 오디오 파일을 분리하여 할당하도록 하여, 사용자에게 다양한 음향 효과와 음장 효과를 제공할 수 있도록 한다.
이러한 도 3의 내용을 참조하여, 도 2의 각 기능 블록을 살펴보면 오디오 채널 제어부(203)는, 입력 인터페이스(107)를 통해 사용자로부터 곡을 식별하기 위한 식별자를 수신하거나, 자동으로 곡 식별자를 생성하여, 곡 식별자에 대응하는 콘텐츠 구조 정보를 결정한다.
그리고 결정된 콘텐츠 구조 정보로부터 오디오 채널 제어부(203)는, 몇 개의 오디오 채널을 사용할 것인지를 결정하고, 결정된 오디오 채널을 위해서 할당되는 채널 오디오 신호 재생부(209)와 제 1 채널을 위한 제 1 오디오 신호 출력부(207)로 제어 정보를 전달한다.
예를 들어 제어 정보는, 각 오디오 채널에 이용될 하나 이상의 오디오 파일(혹은 오디오 파일의 이름과 디렉토리)과, 각 오디오 파일의 시작 시점에 대한 정보를 포함하고, 이에 더하여 각 오디오 파일의 파일 타입이나 파일 사이즈, 각 오디오 채널이 할당되는 오디오 DAC(111)의 정보(예를 들어 제 2 오디오 채널은 제 1 오디오 DAC(111)에 할당)나 미디 합성기(109)에 할당되는지 등과 같은 정보를 더 포함할 수 있다. 각 채널 오디오 신호 재생부(209)나 제 1 오디오 신호 출력부(207)는 이러한 제어 정보를 이용하여 초기화하거나 특정 제어 데이터를 설정할 수 있다.
또한 오디오 채널 제어부(203)는, 기준 클록을 초기화하도록 하는 제어 신호를 생성하고 이를 기준 클록 생성부(201)로 제공할 수 있다. 이때에 오디오 채널 제어부(203)(혹은 제 1 오디오 신호 출력부(207))는 이 기준 클록이 변경되는(예를 들어 1씩 증가하는) 주기 정보를 기준 클록 생성부(201)에 제공할 수 있다.
이러한 주기 정보는 제 1 오디오 채널에 사용되는 파일(예를 들어 미디 파일)로부터 결정되거나 혹은 제 1 오디오 채널에 사용되는 오디오 파일의 프레임 사이즈로부터 결정되거나 혹은 미리 결정된 주기일 수 있다.
그리고 오디오 채널 제어부(203)는, 사용자로부터 혹은 자동으로, 특정 오디오 채널의 음향 효과를 변경하기 위한 제어 데이터를 수신하거나 생성할 수 있고, 이러한 음향 효과를 변경하기 위한 제어 데이터를 이용하여 각 오디오 효과부의 음향 효과를 설정 변경할 수 있도록 한다. 이러한 음향 효과는 이퀄라이저, 템포 변환, 음정 변환, 음의 고저, 뮤트 등의 기능을 포함한다.
기준 클록 생성부(201)는, 오디오 채널 제어부(203)의 제어에 따라 기준 클록을 생성한다. 이러한 기준 클록은 펄스의 형태를 취하거나 혹은 일정한 주기마다 증가하는 카운터 값의 형태를 취할 수 있다. 이러한 기준 클록은 다른 블록들에게 특정 오디오 신호를 출력하기 위한 시작 시점을 알 수 있도록 한다.
물론 기준 클록 생성부(201)에서 생성되는 펄스나 카운터의 값은, 클록 발생기(125)에서 발생하는 클록에 기초할 수 있다.
저장부(205)는, 오디오 재생 장치에서 재생할 수 있는 곡들에 대한 정보를 저장하고 비휘발성 메모리(103)나 대용량 저장 매체(105)를 이용하여 구성할 수 있다. 이러한 저장부(205)는, 제 1 오디오 채널이나 제 2 혹은 제 3 오디오 채널 등에서 사용될 수 있는 다수의 오디오 파일을 포함하고, 또한 각 오디오 채널에서 사용되는 오디오 파일과 이 오디오 파일이 재생되어야 하는 시작 시점을 알 수 있도록 하는 복수의 콘텐츠 구조 정보를 포함한다.
이러한 복수의 콘텐츠 구조 정보 각각은, 오디오 재생 장치에서 재생할 수 있는 곡에 대응한다.
제 1 오디오 신호 출력부(207)는, 오디오 채널 제어부(203)로부터 수신된 제어 정보에 따라서 저장부(205)에 저장된 오디오 파일을 로딩하고 이 오디오 파일에 포함된 데이터 중 일부에 대하여 지정된 시작 시점에(혹은 이후에) 이 일부의 데이터에 기초하여 변환된 오디오 데이터를 제 1 오디오 채널로 출력한다.
이러한 제 1 오디오 신호 출력부(207)에서 사용되는 오디오 파일은 미디 파일일 수 있다. 물론 오디오 파일이 미디 파일이 아니고, 다른 압축된 형식의 오디오 파일인 경우(MP3, WMA 등)에는 이 제 1 오디오 신호 출력부(207)는 다른 채널 오디오 신호 재생부(209)와 동일한 구조를 가질 수 있고 이때에는 제 1 오디오 신호 출력부(207)가 채널 오디오 신호 재생부(209)를 포함할 것이다.
제 1 오디오 신호 출력부(207)에서 사용되는 오디오 파일이 미디 파일인 경우에는, 제 1 오디오 신호 출력부(207)는, 각 미디 채널별로 구분되고, 각 채널별로 미디 명령이 포함되어 있고 각 미디 명령이 전송되어야 하는 시점을 알 수 있는 미디 파일로부터, 각 채널별로 순차적으로 미디 명령을 포함하는 일부의 데이터를 로딩하여 해당 미디 명령이 전송되어야 하는 시점을 기준 클록을 이용하여 결정하고, 미디 명령이 전송되어야 하는 경우에 해당 미디 채널에 대한 식별자와 함께 미디 명령이 미디 합성기(109)의 인터페이스에 일치하도록 변환되어 전송되도록 한다.
따라서 이러한 제 1 오디오 신호 출력부(207)는, 미디 파일로부터 미디 명령을 추출하여 추출된 미디 명령을 각 명령의 전송 시점에 미디 합성기(109)로 약속된 포맷의 통신 방식으로 변환하여 전송할 수 있다.
이러한 제 1 오디오 신호 출력부(207)는, 다른 오디오 포맷과는 구별될 수 있는 하나의 오디오 채널을 구성할 수 있고 이러한 오디오 채널에 개별적인 미디 명령어를 이용하여 미디 음에 대한 음향 효과를 제공할 수 있도록 한다.
이러한 제 1 오디오 채널은 다른 제 2 혹은 제 3 오디오 채널의 시작 시점을 결정할 수 있도록 하는 기준 클록을 제공할 수 있도록 하는 채널이며, 이러한 기준 클록의 주기를 이 제 1 오디오 채널에 사용되는 파일(예를 들어 미디 파일이나 특정 오디오 포맷의 파일)로부터 결정할 수 있다.
하나 이상의 채널 오디오 신호 재생부(209)는, 오디오 채널 제어부(203)로부터 수신된 제어 정보에 따라서, 하나 이상의 오디오 파일을 디코딩하고 디코딩된 오디오 스트림을 지정된 시작 시점부터 오디오 채널로 출력한다.
이러한 채널 오디오 신호 재생부(209)에서 재생되는 오디오 파일은, 제 1 오디오 신호 출력부(207)에서 변환(디코딩)되는 오디오 파일과는 상이한 파일 포맷일 수 있고, 심지어 하나의 오디오 신호 재생부에서 재생되는 복수의 오디오 파일 각각도 상이한 오디오 파일 포맷일 수 있다.
이러한 채널 오디오 신호 재생부(209)는 복수개가 있을 수 있고, 각각의 채널 오디오 신호 재생부(209)는 독립적으로 오디오 채널 제어부(203)의 제어하에 상이한 오디오 채널에 디코딩된 오디오 스트림을 상이한 시작 시점에 출력할 수 있다.
복수개의 채널 오디오 신호 재생부(209)에서 출력되는 디코딩된 오디오 스트림 각각은, 오디오 채널 제어부(203)에 의해서 할당된 오디오 DAC(111)에 연결되고, 이 연결된 오디오 DAC(111)에 디코딩된 오디오 스트림으로 출력된다. 그리고 이에 따라 각각의 오디오 DAC(111)는 오디오 채널 제어부(203)의 제어에 따라서 독립적으로 제어될 수 있도록 하고, 이에 따라서 용이하게 각 오디오 채널을 제어하거나 음향 효과를 제공할 수 있도록 한다.
제 1 오디오 효과부(211)는, 제 1 오디오 신호 출력부(207)로부터 출력된 제 1 오디오 채널의 (오디오) 데이터를 수신하고, 수신된 데이터로부터 오디오 효과 혹은 오디오 신호음을 발생한다.
이러한 제 1 오디오 효과부(211)는, 미디 합성기(109)를 이용하여 구성될 수 있고, 이에 따라서 제 1 오디오 효과부(211)는 수신된 특정 미디 채널의 미디 명령에 따라서 미디 신호음(예를 들어 피아노 소리 등)을 생성하고 이를 제 1 오디오 신호로서 출력하여 오디오 믹서(115)에 연결될 수 있다.
그리고 제 1 오디오 효과부(211)는, 오디오 채널 제어부(203)나 제 1 오디오 신호 출력부(207)의 제어 하에 미디 신호음에 대한 음향 효과를 생성할 수도 있다.
하나 이상의 채널 오디오 효과부(213)는, 각각의 채널 오디오 신호 재생부(209)에 연결되어, 디코딩된 오디오 스트림을 수신하고, 수신된 오디오 스트림에 대하여 수행할 수 있는 각종 음향 효과의 생성을 제어한다.
이러한 채널 오디오 효과부(213)는, 오디오 DAC(111)을 이용하여 구성할 수도 있고, 혹은 오디오 DAC(111) 이전에 제어 프로세서(121)에 의한 프로그램의 형태로 구성할 수도 있다.
이상과 같이 도 2에서는 오디오 재생 장치의 기능 블록도를 상세히 살펴보았다. 이러한 오디오 재생 장치는, 다수의 오디오 채널에 대해서 개별적으로 제어가능하도록 하고 각 오디오 채널에 대해서 다른 오디오 채널과 동기를 이루어질 수 있도록 하는 구조를 제공하여 사용자에게 자연스러우면서도 풍부한 오디오 신호음과 다양한 음향 효과를 제공할 수 있도록 한다.
도 4는, 채널 오디오 신호 재생부(209)의 상세 기능 블록도를 도시한 도면이다. 도 4에 따르면, 채널 오디오 신호 재생부(209)는, 제어 모듈(301), 파일 로딩 모듈(303), 디코딩 모듈(305), 제 1 선택 모듈(307), 파일 버퍼(309)와 이 파일 버퍼(309)에 포함되는 준비 상태 버퍼(309-1)와 전송 상태 버퍼(309-2), 제 2 선택 모듈(311), 디코딩 버퍼(313)와 이 디코딩 버퍼(313)에 포함되는 준비 상태 버퍼(313-1)와 전송 상태 버퍼(313-2) 및 출력 모듈(315)을 포함한다. 블록들 중 일부의 블록은 그 구현 예에 따라 생략될 수 있거나, 혹은 도 4에 포함되지 않은 기능 블록이 채널 오디오 신호 재생부(209)를 구성하는 기능 블록도에 더 포함될 수 있다.
도 4의 채널 오디오 신호 재생부(209)의 각 기능 블록에 대하여 살펴보면, 제어 모듈(301)은, 오디오 채널 제어부(203)로부터 제어 정보를 수신하여, 채널 오디오 신호 재생부(209)의 각 기능 블록에서 사용할 제어 정보를 설정하거나 초기화한다.
이러한 제어 모듈(301)은, 오디오 채널 제어부(203)로부터 이 채널 오디오 신호 재생부(209)에서 디코딩할 하나 이상의 오디오 파일의 정보(예를 들어 오디오 파일의 명과 디렉토리 등)와 각각의 오디오 파일에 재생 시작해야할 시점인 하나 이상의 시작 시점에 대한 정보를 수신한다.
또한 제어 모듈(301)은, 이 채널 오디오 신호 재생부(209)가 연결해야 할 포트(예를 어떤 오디오 DAC(111)에 연결하여 오디오 스트림을 출력할 것인가)에 대한 정보를 수신할 수 있다.
그리고 이에 더하여 각각의 오디오 파일을 디코딩하기 위한 디코딩 프로그램에 대한 정보를 더 수신하거나 각각의 오디오 파일에 대한 파일 사이즈 정보를 더 수신할 수 있다. 물론 이러한 디코딩 프로그램이나 파일 사이즈 정보는 제어 모듈(301)에서 직접 오디오 파일의 헤더나 특성 정보를 읽어 들여서 결정할 수도 있다.
이와 같이 제어 모듈(301)은, 오디오 채널 제어부(203)로부터 제어 정보를 수신함에 따라서(예를 들어 각 재생할 곡에 대해서 일회성으로) 이 채널 오디오 신호 재생부(209)에서 사용할 각종 데이터를 초기화하거나 설정할 수 있도록 한다. 이와 같은 정보들은 다른 모듈(예를 들어 파일 로딩 모듈(303)이나 디코딩 모듈(305))에서 사용하고 체계적으로 오디오 파일을 디코딩할 수 있도록 한다.
파일 로딩 모듈(303)은, 제어 모듈(301)로부터 오디오 파일에 관련된 제어 정보를 수신하고, 이 오디오 파일에 대한 제어 정보에 따라서 저장부(205)로부터 일정한 크기 단위로 오디오 파일(즉 오디오 파일명이나 디렉토리 혹은 이를 식별할 수 있는 식별자 등을 이용하여)의 오디오 데이터를 순차적으로 읽어 들이고 이 읽어 들인 데이터를 파일 버퍼(309)에 로딩(저장)한다.
파일 버퍼(309)는, 파일 로딩 모듈(303)의 제어에 따라서 저장부(205)에 저장된 오디오 데이터를 임시로 저장한다. 이러한 파일 버퍼(309)는 휘발성 메모리(101) 등을 이용하여 구현될 수 있다.
이러한 파일 버퍼(309)는, 일정한 크기 단위의 오디오 데이터를 수용하기 위한 복수의 프레임 버퍼로 구성되고, 각각의 프레임 버퍼는 미리 결정된 크기이거나 혹은 각 오디오 파일의 파일 포맷에 따라서 결정되는 프레임 사이즈일 수 있다.
그리고 파일 버퍼(309)는 준비 상태 버퍼(309-1)와 전송 상태 버퍼(309-2)로 구분된다.
준비 상태 버퍼(309-1)는, 오디오 파일이 디코딩되어 오디오 채널로 출력(예를 들어 오디오 DAC(111)로)되지 않고 대기 중인 버퍼이고 반면에 전송 상태 버퍼(309-2)는 로딩된 오디오 데이터가 즉시 디코딩되어 오디오 채널로 출력되는 버퍼이다.
각각의 준비 상태 버퍼(309-1)와 전송 상태 버퍼(309-2)는 일정한 크기 단위의 복수의 프레임 버퍼를 포함하고, 각각의 프레임 버퍼는 프로듀서-컨슈머(producer-consumer) 관계에 따라 채워지거나 비워지며 각 프레임 버퍼가 순차적으로 읽고 쓸 수 있도록 하는 원형 큐(Circular Queue)의 형태를 취할 수 있다.
따라서 원형 큐의 특정 인덱스에 오디오 데이터를 로딩한 후에 그 다음 인덱스에 오디오 데이터를 로딩할 수 있도록 하고, 버퍼가 꽉찬 경우에는 하나의 프레임 버퍼가 빌 때까지 대기하도록 하는 구조를 가질 수 있다.
제 1 선택 모듈(307)은, 저장부(205)로부터 로딩된 오디오 데이터를 파일 버퍼(309) 중 어디에 임시로 저장할 것인지를 파일 로딩 모듈(303)의 제어에 따라서 선택한다. 이러한 제 1 선택 모듈(307)은, 제어 모듈(301)의 설정에 따라서 초기에는 준비 상태 버퍼(309-1)의 복수의 프레임에 오디오 데이터가 저장되도록 구성되고, 반면에 현재 재생할(재생중인) 오디오 파일의 시작 시점이 경과한 경우에는 전송 상태 버퍼(309-2)의 복수의 프레임에 저장되도록 구성할 수 있다.
이에 따라서, 준비 상태 버퍼(309-1)에는 다른 오디오 채널(예를 들어 미디 오디오 채널)과 동기화 이전에 미리 오디오 데이터를 로딩하여 디코딩을 준비할 수 있도록 하고, 전송 상태 버퍼(309-2)에서는 동기화 후 실시간으로 오디오 데이터를 디코딩할 수 있도록 하며, 전송 상태 버퍼(309-2)의 이용 중에도 현재 오디오 채널로 출력 중인 오디오 파일의 후속하는 오디오 파일을 준비 상태 버퍼(309-1)에 로딩하여 오디오 파일의 포맷이 상이한 점이나 오디오 파일의 디코딩에 소요되는 시간이 다름에도 불구하고 디코딩할 오디오 파일들이 연속적으로 혹은 원하는 출력 시작 시점에 출력될 수 있도록 한다.
여기서 이러한 제 1 선택 모듈(307)과 파일 버퍼(309)를 이용하여 좀 더 구체적으로 파일 로딩 모듈(303)에서 수행되는 흐름을 살펴보면, 파일 로딩 모듈(303)은 먼저 제어 모듈(301)의 제어에 따라 하나 이상의 오디오 파일 중 가장 빨리 출력되어야 하는 오디오 파일을 선택하고 이 오디오 파일에 대한 시작 시점이전까지는, 파일 버퍼(309)의 준비 상태 버퍼(309-1)의 복수의 프레임 버퍼에 순차적으로 이 오디오 파일을 로딩한다.
이렇게 로딩된 오디오 데이터들은 아래에서 살펴볼 디코딩 모듈(305)(Consumer로서)에 의해서 읽혀 지고, 이에 따라서 순차적으로 준비 상태 버퍼(309-1)의 프레임 버퍼는 비워지게 되고 이에 따라서 계속하여 파일 로딩 모듈(303)(producer로서)은 비워진 버퍼에 오디오 데이터를 로딩하여 채우게 된다.
그리고 파일 로딩 모듈(303)은, 기준 클록 생성부(201)의 기준 클록을 이용하여 기준 클록이 이 오디오 파일의 시작 시점과 동일한(혹은 직후인) 경우에, 이 준비 상태 버퍼(309-1)에 저장된 프레임 버퍼의 데이터를 전송 상태 버퍼(309-2)로 이전한다.
이러한 이전은 각 프레임 버퍼의 상태에 대한 정보(예를 들어 각 프레임이 비워졌는지 혹은 채워져 있는 지를 나타내는 플래그 등)를 포함하며, 예를 들어 준비 상태 버퍼(309-1)의 채워짐과 비워져 있는 상태가 동일하도록 이전할 수 있다. 물론 이 이전이 동일성을 유지할 필요는 없으며, 디코딩 모듈(305)과의 약속에 따라서 약속된 패턴으로(예를 들어 채워져 있는 것만을 이전하거나 혹은 이에 더하여 채워져 있는 프레임을 재정렬하여) 이전할 수 있다. 그리고 이 이전은 반드시 물리적인 메모리 복사일 필요는 없으며, 예를 들어 전송 상태 버퍼(309-2)와 준비 상태 버퍼(309-1)를 가르키는 주소(포인터)의 교환일 수도 있다.
그리고 이러한 이전 이후에 파일 로딩 모듈(303)은, 전송 상태 버퍼(309-2)에 순차적으로 나머지 오디오 데이터(오디오 파일의 파일 사이즈 정보를 이용해서)를 프레임의 플래그 상태를 확인하면서 로딩할 수 있다.
또한 파일 로딩 모듈(303)은, 오디오 파일의 로딩이 완료된 경우에 이 오디오 파일에 후속하는 오디오 파일을 다시 준비 상태 버퍼(309-1)를 이용하여 로딩할 수 있고, 이 후속하는 오디오 파일의 시작 시점에 다시 전송 상태 버퍼(309-2)에 이전함으로써 연속하는 오디오 파일의 디코딩 시차나 동기화 시차를 극복하고 정확한 시점에 디코딩하여 오디오 스트림으로 출력할 수 있도록 한다.
디코딩 모듈(305)은, 오디오 파일의 오디오 데이터로부터 디코딩된 오디오 데이터를 생성하고 이를 디코딩 버퍼(313)에 저장한다.
이러한 디코딩 모듈(305)은, 오디오 파일에 대응하는 시작 시점과 기준 클록 생성부(201)로부터의 기준 클록을 이용하거나 혹은 파일 로딩 모듈(303)로부터의 제어 신호(즉 기준 클록 이전 혹은 동일 시점 혹은 이후 시점)에 따라서, 시작 시점이 경과하기 전까지는, 파일 버퍼(309)의 준비 상태 버퍼(309-1)의 오디오 데이터를 디코딩하여 디코딩된 데이터를 디코딩 버퍼(313)의 준비 상태 버퍼(313-1)에 저장한다.
반면에 동일 시점인 경우에는, 디코딩 모듈(305)은 준비 상태 버퍼(313-1)의 디코딩된 오디오 데이터를 전송 상태 버퍼(313-2)로 이전한다. 파일 버퍼(309)에서 이미 설명하였으므로 이전에 관련된 설명은 생략하도록 한다.
한편 디코딩 모듈(305)은, 제어 모듈(301)로부터의 제어 정보에 따라서, 오디오 파일의 특정 오디오 포맷을 결정하고, 이 결정된 오디오 포맷을 디코딩할 수 있는 디코딩 프로그램을 동적으로 저장부(205)로부터 로딩하고 이 로딩된 디코딩 프로그램을 이용하여 해당 오디오 파일을 디코딩할 수 있다. 이에 따라 다양한 오디오 파일 포맷으로 구성된 곡인 경우에도 동적으로 용이하게 오디오 파일을 디코딩할 수 있다.
디코딩 버퍼(313)는, 디코딩 모듈(305)의 제어에 따라서 파일 버퍼(309)에 저장된 오디오 데이터로부터 디코딩된 오디오 데이터를 임시로 저장한다. 이러한 디코딩 버퍼(313)는 휘발성 메모리(101) 등을 이용하여 구현될 수 있다.
이러한 디코딩 버퍼(313)는, 파일 버퍼(309)의 구조와 유사하다. 예를 들어 디코딩 버퍼(313)는 일정한 크기 단위의 디코딩된 오디오 데이터를 수용하기 위한 복수의 프레임 버퍼로 구성되고, 각각의 프레임 버퍼는 미리 결정된 크기이거나 혹은 각 오디오 파일의 파일 포맷에 따라서 결정되는 프레임 사이즈일 수 있다. 이러한 프레임 버퍼의 사이즈는 파일 포맷의 압축율에 따라서 미리 결정되는 고정 되는 사이즈이거나 혹은 가변 압축율에 따라서 결정되는 가변 프레임 사이즈일 수 있다. 만일 가변 프레임 사이즈일 경우에는, 각 프레임 버퍼의 디코딩된 오디오 데이터의 크기를 나타내는 크기를 각 프레임 버퍼 혹은 디코딩 모듈(305)이 저장하거나 관리할 수 있다.
그리고 디코딩 버퍼(313)는 준비 상태 버퍼(313-1)와 전송 상태 버퍼(313-2)로 구분된다.
준비 상태 버퍼(313-1)는, 디코딩된 오디오 데이터가 오디오 채널을 통해 오디오 스트림으로 출력(예를 들어 오디오 DAC(111)로)되지 않고 대기 중인 버퍼이고 반면에 전송 상태 버퍼(313-2)는 디코딩된 오디오 데이터가 즉시 오디오 채널로 출력되는 버퍼이다. 각각의 준비 상태 버퍼(313-1)와 전송 상태 버퍼(313-2)는 일정한 크기 단위(혹은 가변 크기)의 복수의 프레임 버퍼를 포함하고, 각각의 프레임 버퍼는 프로듀서-컨슈머(producer-consumer) 관계를 이용하여 각 프레임 버퍼가 순차적으로 읽고 쓸 수 있도록 하는 원형 큐(Circular Queue)의 형태를 취할 수 있다.
따라서 원형 큐의 특정 인덱스에 대응하는 파일 버퍼(309)로부터의 프레임을 읽어 들이고 이 읽어 들인 프레임을 디코딩 모듈(305)이 디코딩하여 해당 특정 인덱스에 대응하는 프레임 버퍼의 디코딩 버퍼(313)에 저장하고, 그 다음 인덱스의 파일 버퍼(309)의 오디오 데이터를 디코딩하여 해당 디코딩 버퍼(313)의 인덱스에 저장하고, 버퍼가 꽉 찬 경우에는 하나의 프레임 버퍼가 빌 때까지 대기하도록 하는 구조를 가질 수 있다.
제 2 선택 모듈(311)은, 파일 버퍼(309)로부터 읽어 들인 오디오 데이터를 디코딩 버퍼(313) 중 어디에 임시로 저장할 것인지를 디코딩 모듈(305)의 제어에 따라서 선택한다. 이러한 제 2 선택 모듈(311)은, 제어 모듈(301)의 설정에 따라서 초기에는 준비 상태 버퍼(313-1)의 복수의 프레임에 디코딩된 오디오 데이터가 저장되도록 구성되고, 반면에 현재 재생할(재생중인) 오디오 파일의 시작 시점이 경과하는 경우에는 전송 상태 버퍼(313-2)의 복수의 프레임에 디코딩된 오디오 데이터가 저장되도록 구성되도록 할 수 있다.
이에 따라서, 준비 상태 버퍼(313-1)에는 다른 오디오 채널(예를 들어 미디 오디오 채널)과 동기화 이전에 미리 디코딩된 오디오 데이터를 저장하여 출력 대기될 수 있도록 하고, 전송 상태 버퍼(313-2)에서는 동기화 후 실시간으로 디코딩된 오디오 데이터를 출력할 수 있도록 하며, 전송 상태 버퍼(313-2)의 이용 중에도 현재 오디오 채널로 출력 중인 오디오 파일의 후속하는 오디오 파일을 준비 상태 버퍼(313-1)에 디코딩하여 오디오 파일의 포맷의 상이한 점이나 오디오 파일의 디코딩에 소요되는 시간이 상이함에도 불구하고 연속적으로 혹은 원하는 출력 시작 시점에 출력될 수 있도록 한다.
여기서 이러한 제 2 선택 모듈(311)과 디코딩 버퍼(313)를 이용하여 좀 더 구체적으로 디코딩 모듈(305)을 살펴보면, 디코딩 모듈(305)은 먼저 제어 모듈(301)의 제어에 따라 하나 이상의 오디오 파일 중 가장 빨리 출력되어야 하는 오디오 파일의 오디오 파일 포맷을 결정하고 결정된 오디오 파일 포맷의 디코딩 프로그램을 로딩하여 이 오디오 파일에 대한 시작 시점이전까지는, 파일 버퍼(309)의 준비 상태 버퍼(309-1)로부터의 복수의 프레임 버퍼의 오디오 데이터를 순차적으로 읽어 들이고 디코딩하여 준비 상태 버퍼(313-1)에 저장한다.
이에 따라, 디코딩 모듈(305)은 파일 버퍼(309)에 대해서는 컨슈머의 역할을 담당하여 디코딩한 파일 버퍼(309)의 상태 플래그를 비워져 있는 상태임을 나타내도록 설정하고, 디코딩 버퍼(313)의 프레임 버퍼에 대해서는 프로듀서로서 디코딩되어 채워진 프레임 버퍼에 대해서는 채워져 있음을 나타내도록 상태 플래그를 설정한다.
시작 시점 이전까지는 이러한 과정이 복수의 프레임 버퍼에 대해서 수행될 수 있고 따라서 디코딩 버퍼(313)의 준비 상태 버퍼(313-1)가 꽉 채워질 때까지 진행될 수 있고, 이에 따라 파일 로딩 모듈(303)도 더 이상의 준비 상태 버퍼(309-1)가 소진되지 않고 꽉 찬 경우에는 오디오 파일의 로딩을 중단하게 된다.
이렇게 디코딩된 오디오 데이터들은 이 오디오 파일이 출력되는 시작 시점까지 대기하여 시작 시점 이후에 출력 모듈(315)(Consumer로서)에 의해서 읽혀 져서 오디오 채널 스트림으로 출력된다.
그리고 디코딩 모듈(305)은, 기준 클록 생성부(201)의 기준 클록을 이용하여 기준 클록이 이 오디오 파일의 시작 시점과 동일한(혹은 직후인) 경우에, 이 준비 상태 버퍼(313-1)에 저장된 프레임 버퍼의 데이터를 전송 상태 버퍼(313-2)로 이전한다. 이러한 이전은 파일 버퍼(309)에서 설명한 내용과 대동 소이하므로 생략하도록 한다.
그리고 이러한 이전 이후에 디코딩 모듈(305)은, 전송 상태 버퍼(313-2)에 순차적으로 나머지 오디오 데이터(오디오 파일의 파일 사이즈 정보를 이용해서)를 파일 버퍼(309)의 전송 상태 버퍼(309-2)로부터 디코딩하여 디코딩 버퍼(313)의 전송 상태 버퍼(313-2)에 프레임의 플래그 상태를 확인하면서 저장할 수 있다.
또한 디코딩 모듈(305)은, 오디오 파일의 디코딩이 완료된 경우에 이 오디오 파일에 후속하는 오디오 파일을 다시 준비 상태 버퍼(313-1)를 이용하여 디코딩할 수 있고(물론 파일 로딩 모듈(303)과 연동하여), 이 후속하는 오디오 파일의 시작 시점에 다시 전송 상태 버퍼(313-2)에 이전함으로써 연속하는 오디오 파일의 디코딩 시차나 동기화 시차를 극복하고 정확한 시점에 디코딩하여 오디오 스트림으로 출력할 수 있도록 한다.
이와 같이 디코딩 모듈(305)과 파일 로딩 모듈(303)은, 파일 버퍼(309)나 디코딩 버퍼(313) 특히 준비 상태 버퍼(309-1, 313-1)와 전송 상태 버퍼(309-2, 313-2)로 구분하고, 각 상태 버퍼는 복수의 프레임을 가지고, 각 프레임은 인덱스(예를 들어 복수의 프레임이 4개인 경우에 인덱스는 0에서 3까지)와 상태 플래그를 이용하여 데이터를 채우고 비우도록 하여, 각 디코딩 모듈(305)과 파일 로딩 모듈(303)이 실제 제어 프로세서(121)에서 실행될 때의 스케쥴링 시차를 고려할 수 있고, 각 디코딩 프로그램 등의 디코딩 시차를 고려할 수 있도록 하고 연속적인 오디오 파일의 재생 시에 발생할 수 있는 동기화 문제나 디코딩 시간 차이 등과 같은 문제를 해소할 수 있다.
출력 모듈(315)은, 디코딩 버퍼(313)에 저장된 디코딩된 오디오 데이터를 오디오 채널 스트림을 출력한다. 이러한 출력 모듈(315)은 디코딩 버퍼(313)에 대해서 컨슈머의 역할을 담당하고, 디코딩 버퍼(313)의 전송 상태 버퍼(313-2)에 채워져 있는 디코딩된 프레임 단위의 오디오 데이터를 출력하고, 출력이 완료된 후에 해당 프레임의 상태 플래그를 비워져 있음을 나타내도록 설정한다.
이와 같은 출력 모듈(315)은 기준 클록 생성부(201)에 생성된 기준 클록과 오디오 파일의 시작 시점을 비교하여, 시작 시점이 기준 클록과 동일하거나 이전 시점인 경우에 전송 상태 버퍼(313-2)의 채워져 있는 프레임의 디코딩된 오디오 데이터를 오디오 채널로 출력하여 오디오 DAC(111) 등으로 전송할 수 있다.
물론 이러한 출력 모듈(315)은 바람직하게는 시작 시점과 기준 클록의 비교가 필요 없고, 단지 전송 상태 버퍼(313-2)에 디코딩된 오디오 데이터가 채워져 있는 것을 플래그 등을 이용해서 확인하여 채워져 있는 오디오 데이터의 프레임 버퍼를 순차적으로(즉 인덱스 증분에 따라) 오디오 DAC(111) 등으로 전송하도록 구성할 수도 있다.
또한 출력 모듈(315)은, 제어 모듈(301)로부터 수신된 제어 정보(예를 들어 포트 할당)에 따라 복수의(하나의) 오디오 DAC(111) 중 하나의 오디오 DAC(111)에 출력되도록 설정할 수 있다.
이와 같은 구조화된 채널 오디오 신호 재생부(209)를 이용함으로써, 각 오디오 채널을 독립적으로 제어할 수 있고, 각 오디오 채널을 유연하게 할당할 수 있도록 하고, 각 오디오 채널에 재생되는 다수의 오디오 파일의 동기를 맞출 수 있도록 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.
101 : 휘발성 메모리 103 : 비휘발성 메모리
105 : 대용량 저장 매체 107 : 입력 인터페이스
109 : 미디 합성기 111 : 오디오 DAC
113 : 비디오 DAC 115 : 오디오 믹서
117 : 오디오 출력 포트 119 : 비디오 출력 포트
121 : 제어 프로세서 123 : 시스템 버스/제어 버스
125 : 클록 발생기
201 : 기준 클록 생성부 203 : 오디오 채널 제어부
205 : 저장부 207 : 제 1 오디오 신호 출력부
209 : 채널 오디오 신호 재생부 211 : 제 1 오디오 효과부
213 : 채널 오디오 효과부
301 : 제어 모듈 303 : 파일 로딩 모듈
305 : 디코딩 모듈 307 : 제 1 선택 모듈
309 : 파일 버퍼 309-1 : 준비 상태 버퍼
309-2 : 전송 상태 버퍼 311 : 제 2 선택 모듈
313 : 디코딩 버퍼 313-1 : 준비 상태 버퍼
313-2 : 전송 상태 버퍼 315 : 출력 모듈

Claims (10)

  1. 오디오 채널 간의 동기화를 위한 오디오 재생 장치로서,
    제 1 오디오 파일에 대한 기준 클록을 생성하는 기준 클록 생성부;
    상기 제 1 오디오 파일의 데이터에 대하여 지정된 상기 기준 클록의 제 1 시점부터 제 1 오디오 채널로 상기 데이터에 기초하여 변환된 오디오 데이터를 출력하는 제 1 오디오 신호 출력부; 및
    상기 제 1 오디오 파일과는 상이한 오디오 압축 파일 포맷으로 구성된 하나 이상의 제 2 오디오 파일을 디코딩하고 상기 기준 클록의 제 2 시점부터 디코딩된 오디오 스트림을 제 2 오디오 채널로 출력하는 제 2 오디오 신호 재생부를 포함하며,
    상기 제 2 오디오 신호 재생부는, 상기 제 2 오디오 파일의 데이터로부터 디코딩된 오디오 데이터를 저장하기 위한 디코딩 버퍼를 포함하고,
    상기 제 2 오디오 신호 재생부는, 상기 제 2 시점의 이전에 상기 디코딩 버퍼에 상기 상이한 오디오 압축 파일 포맷에 따라 디코딩된 오디오 데이터의 저장을 시작하고 상기 제 2 시점부터 상기 디코딩 버퍼의 디코딩된 오디오 데이터를 상기 제 2 오디오 채널로 출력하는,
    오디오 재생 장치.
  2. 제1항에 있어서,
    상기 제 1 오디오 파일과는 상이한 파일 포맷인 하나 이상의 제 3 오디오 파일을 디코딩하고 상기 기준 클록에 동기화되어 지정된 시작 시점인 제 3 시점으로부터 디코딩된 오디오 스트림을 제 3 오디오 채널로 출력하는 제 3 오디오 신호 재생부를 더 포함하는 것을 특징으로 하는,
    오디오 재생 장치.
  3. 제2항에 있어서,
    상기 제 2 오디오 채널과 상기 제 3 오디오 채널을 제어하기 위한 오디오 채널 제어부를 더 포함하며,
    상기 제 2 오디오 채널의 오디오 스트림은 디지털 오디오 신호를 아날로그의 오디오 신호로 출력하기 위한 제 2 오디오 DAC에 연결되고, 상기 제 3 오디오 채널의 오디오 스트림은 제 3 오디오 DAC에 연결되며,
    상기 오디오 채널 제어부는, 상기 제 2 오디오 DAC와 상기 제 3 오디오 DAC를 독립적으로 제어할 수 있는 것을 특징으로 하는,
    오디오 재생 장치.
  4. 제1항에 있어서,
    상기 제 1 오디오 파일과 동시에 디코딩될 하나 이상의 제 2 오디오 파일을 식별할 수 있도록 하고, 제 2 오디오 파일 각각의 시작 시점인 제 2 시점을 알 수 있도록 하는 콘텐츠 구조 정보들을 저장하는 저장부를 더 포함하고,
    상기 제 2 오디오 신호 재생부는, 상기 제 1 오디오 신호 출력부로 출력되는 제 1 오디오 파일에 대응하는 하나 이상의 제 2 오디오 파일을 상기 콘텐츠 구조 정보의 제 2 시점을 이용하여, 기준 클록이 제 2 시점에 이른 경우 제 2 오디오 채널로 출력하는 것을 특징으로 하는,
    오디오 재생 장치.
  5. 제4항에 있어서,
    상기 제 2 오디오 신호 재생부는,
    상기 제 2 오디오 파일의 데이터를 디코딩하여 상기 디코딩 버퍼에 디코딩된 데이터로 저장하기 위한 디코딩 모듈을 더 포함하는 것을 특징으로 하는,
    오디오 재생 장치.
  6. 제5항에 있어서,
    상기 제 2 오디오 신호 재생부는,
    저장부에 저장된 제 2 오디오 파일로부터의 데이터를 임시로 저장하기 위한 파일 버퍼; 및
    상기 콘텐츠 구조 정보의 하나 이상의 제 2 오디오 파일을 순차적으로 상기 파일 버퍼에 로딩하기 위한 파일 로딩 모듈을 더 포함하며,
    상기 디코딩 모듈은, 파일 버퍼의 데이터를 디코딩하여 상기 디코딩 버퍼에 디코딩된 데이터를 저장하는 것을 특징으로 하는,
    오디오 재생 장치.
  7. 제6항에 있어서,
    상기 파일 버퍼는, 오디오 스트림을 제 2 오디오 채널로 출력하지 않고 대기 중인 준비 상태 버퍼와, 오디오 스트림을 제 2 오디오 채널로 출력하는 전송 상태 버퍼를 포함하고,
    상기 파일 로딩 모듈은, 제 2 오디오 파일에 대한 제 2 시점 이전에 제 2 오디오 파일의 데이터를 순차적으로 상기 준비 상태 버퍼로 로딩하고, 기준 클록이 제 2 시점 시에 준비 상태 버퍼의 데이터를 전송 상태 버퍼로 이전하며, 기준 클록이 제 2 시점 이후에 제 2 오디오 파일의 데이터를 전송 상태 버퍼로 로딩하는 것을 특징으로 하는,
    오디오 재생 장치.
  8. 제6항에 있어서,
    상기 디코딩 버퍼는, 오디오 스트림을 제 2 오디오 채널로 출력하지 않고 대기 중인 준비 상태 버퍼와, 오디오 스트림을 제 2 오디오 채널로 출력하는 전송 상태 버퍼를 포함하고,
    상기 디코딩 모듈은,
    제 2 오디오 파일에 대한 제 2 시점 이전에 상기 파일 버퍼의 준비 상태 버퍼로부터 데이터를 디코딩하여 상기 디코딩 버퍼의 준비 상태 버퍼에 저장하고,
    제 2 오디오 파일의 지정된 제 2 시점 시에 상기 디코딩 버퍼의 준비 상태 버퍼의 데이터를 상기 디코딩 버퍼의 전송 상태 버퍼로 이전하며,
    제 2 시점 이후에, 제 2 오디오 파일의 데이터에 대한 디코딩을 상기 디코딩 버퍼의 전송 상태 버퍼에 대응하는 파일 버퍼의 전송 상태 버퍼에 대해서 수행하는 것을 특징으로 하는,
    오디오 재생 장치.
  9. 제7항에 있어서,
    상기 파일 로딩 모듈은, 로딩 중인 제 2 오디오 파일의 전송 상태 버퍼로의 로딩 완료 후에, 상기 콘텐츠 구조 정보로부터 로딩 완료한 제 2 오디오 파일의 후속하는 오디오 파일의 데이터를 상기 준비 상태 버퍼에 로딩하는 것을 특징으로 하는,
    오디오 재생 장치.
  10. 제7항에 있어서,
    상기 준비 상태 버퍼와, 상기 전송 상태 버퍼는, 오디오 파일 포맷에 따른 프레임의 단위 크기에 따른 복수의 프레임으로 분할되고,
    상기 파일 로딩 모듈은, 상기 프레임의 단위로 제 2 오디오 파일로부터의 데이터를 상기 복수의 프레임 중 하나에 로딩하는 것을 특징으로 하는,
    오디오 재생 장치.
KR1020120009204A 2012-01-30 2012-01-30 오디오 채널 간의 동기화를 위한 오디오 재생 장치 KR101260017B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120009204A KR101260017B1 (ko) 2012-01-30 2012-01-30 오디오 채널 간의 동기화를 위한 오디오 재생 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120009204A KR101260017B1 (ko) 2012-01-30 2012-01-30 오디오 채널 간의 동기화를 위한 오디오 재생 장치

Publications (1)

Publication Number Publication Date
KR101260017B1 true KR101260017B1 (ko) 2013-05-06

Family

ID=48665334

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120009204A KR101260017B1 (ko) 2012-01-30 2012-01-30 오디오 채널 간의 동기화를 위한 오디오 재생 장치

Country Status (1)

Country Link
KR (1) KR101260017B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101786461B1 (ko) * 2016-07-26 2017-10-17 티제이미디어 주식회사 단일 신시사이저를 사용한 다중 사운드합성 기반의 미디음원모듈과 그를 사용한 노래반주장치
CN110221805A (zh) * 2019-06-13 2019-09-10 上海航盛实业有限公司 音频播放方法、系统、终端及存储介质
WO2021162254A1 (ko) * 2020-02-13 2021-08-19 삼성전자주식회사 오디오 장치 및 그 제어방법
CN116112736A (zh) * 2022-12-09 2023-05-12 上海鱼尔网络科技有限公司 音频处理方法、装置、计算机设备、存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101786461B1 (ko) * 2016-07-26 2017-10-17 티제이미디어 주식회사 단일 신시사이저를 사용한 다중 사운드합성 기반의 미디음원모듈과 그를 사용한 노래반주장치
CN110221805A (zh) * 2019-06-13 2019-09-10 上海航盛实业有限公司 音频播放方法、系统、终端及存储介质
WO2021162254A1 (ko) * 2020-02-13 2021-08-19 삼성전자주식회사 오디오 장치 및 그 제어방법
KR20210103114A (ko) * 2020-02-13 2021-08-23 삼성전자주식회사 오디오 장치 및 그 제어방법
KR102660576B1 (ko) 2020-02-13 2024-04-26 삼성전자주식회사 오디오 장치 및 그 제어방법
CN116112736A (zh) * 2022-12-09 2023-05-12 上海鱼尔网络科技有限公司 音频处理方法、装置、计算机设备、存储介质

Similar Documents

Publication Publication Date Title
US6665409B1 (en) Methods for surround sound simulation and circuits and systems using the same
JPH05143070A (ja) 自動演奏装置
KR101260017B1 (ko) 오디오 채널 간의 동기화를 위한 오디오 재생 장치
CN101405790A (zh) 多个输入设备对系统资源的同时共享
JP2011511309A (ja) オーディオプレーヤにおいてマルチリージョン機器サポートを提供するためのシステムおよび方法
EP3550555B1 (en) Electronic musical instrument, method, and storage medium
JP2013152477A (ja) 電子楽器デジタルインターフェースハードウェア命令セット
JP2003255945A (ja) ミキシング装置及び楽音発生装置並びにミキシング用の大規模集積回路
JP2011138130A (ja) 携帯用電子機器を利用したカラオケ協演方法
EP3518230B1 (en) Generation and transmission of musical performance data
WO2017119115A1 (ja) 音響制御システム
KR101268994B1 (ko) 외부 장치와 연동할 수 있는 미디 재생 장치 및 미디 재생 방법
JP4994890B2 (ja) 録音した自分の歌声と模範歌唱とを厳しく比較できるカラオケ装置
US7470848B2 (en) Structure and method for playing MIDI messages and multi-media apparatus using the same
JP2018112725A (ja) 音楽コンテンツ送信装置、音楽コンテンツ送信プログラムおよび音楽コンテンツ送信方法
JP2018112724A (ja) 演奏ガイド装置、演奏ガイドプログラムおよび演奏ガイド方法
JP3654257B2 (ja) 楽音発生装置
JP6464824B2 (ja) 楽曲演奏装置及び楽曲演奏用プログラム
JP3027832B2 (ja) 楽音波形発生装置
KR101315994B1 (ko) 가상머신을 이용한 음원파일 구현 시스템 및 구현 방법
JPH04238393A (ja) 効果音再生機能を有した音楽再生装置
JP4259422B2 (ja) 演奏制御装置及びプログラム
JPH10207475A (ja) カラオケ装置
JP2010186028A (ja) コマンド送信制御装置、集積回路装置、音再生評価システム及び音再生装置のテスト方法
JPH0424691A (ja) 電子楽器

Legal Events

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

Payment date: 20160405

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 5

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20180328

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190402

Year of fee payment: 7