[go: up one dir, main page]

KR102411811B1 - Apparatus and method for buffer control to reduce audio input processing delay - Google Patents

Apparatus and method for buffer control to reduce audio input processing delay Download PDF

Info

Publication number
KR102411811B1
KR102411811B1 KR1020180023095A KR20180023095A KR102411811B1 KR 102411811 B1 KR102411811 B1 KR 102411811B1 KR 1020180023095 A KR1020180023095 A KR 1020180023095A KR 20180023095 A KR20180023095 A KR 20180023095A KR 102411811 B1 KR102411811 B1 KR 102411811B1
Authority
KR
South Korea
Prior art keywords
buffer
audio input
user
dma
converter
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020180023095A
Other languages
Korean (ko)
Other versions
KR20190102569A (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 KR1020180023095A priority Critical patent/KR102411811B1/en
Publication of KR20190102569A publication Critical patent/KR20190102569A/en
Application granted granted Critical
Publication of KR102411811B1 publication Critical patent/KR102411811B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10675Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
    • G11B2020/10685Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control input interface, i.e. the way data enter the buffer, e.g. by informing the sender that the buffer is busy
    • 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/10675Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
    • G11B2020/10712Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control buffer capacity, e.g. when the buffer capacity is exhausted, buffered data are overwritten with more recent data, accepting that the old data are lost

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Bus Control (AREA)

Abstract

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치 및 방법이 개시된다. 본 발명에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치에 의해 수행되는 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 방법은, 사용자의 최소 버퍼 크기를 기반으로 DMA(Direct Memory Access) 버퍼를 할당하는 단계, 아날로그 음파를 디지털 음파 데이터로 변환하는 A/D 변환기를 초기화한 후, 상기 사용자로부터 오디오 입력 요청을 수신하기 이전에 상기 A/D 변환기의 동작을 실행시키는 단계, 변환된 상기 디지털 음파 데이터를 상기 DMA 버퍼로 전달하는 단계, 상기 오디오 입력 요청을 수신한 상태에서 상기 A/D 변환기의 인터럽트 수신 시, 상기 DMA 버퍼에 저장된 상기 디지털 음파 데이터를 사용자 버퍼로 복사하는 단계, 그리고 상기 오디오 입력 요청에 상응하는 프로세스로, 상기 사용자 버퍼가 가득 찼음을 알리는 버퍼 풀 알림을 전송하는 단계를 포함한다. A buffer control apparatus and method for reducing audio input processing delay are disclosed. A buffer control method for reducing audio input processing delay performed by a buffer control apparatus for reducing audio input processing delay according to the present invention comprises the steps of allocating a DMA (Direct Memory Access) buffer based on a user's minimum buffer size; After initializing an A/D converter that converts analog sound waves into digital sound wave data, executing an operation of the A/D converter before receiving an audio input request from the user, converting the converted digital sound wave data into the DMA transferring the audio input request to a user buffer, and copying the digital sound wave data stored in the DMA buffer to a user buffer upon reception of the interrupt of the A/D converter in a state in which the audio input request is received, and corresponding to the audio input request. process, comprising sending a buffer pool notification indicating that the user buffer is full.

Figure R1020180023095
Figure R1020180023095

Description

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치 및 방법{APPARATUS AND METHOD FOR BUFFER CONTROL TO REDUCE AUDIO INPUT PROCESSING DELAY}Buffer control device and method for reducing audio input processing delay

본 발명은 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 기술에 관한 것으로, 특히 디지털 오디오 장치에서 초기 입력 시간을 축소하여 사용자가 느끼는 초기 지연을 축소시키는 기술에 관한 것이다.The present invention relates to a buffer control technique for reducing audio input processing delay, and more particularly, to a technique for reducing an initial delay felt by a user by reducing an initial input time in a digital audio device.

디지털 오디오 입력 장치는 아날로그 형태의 음파 신호를 디지털 음파 데이터로 변환한다. 이때, 디지털 처리를 위해서는 데이터를 저장하는 버퍼(buffer)를 필요로 하며, 일반적인 PC에서는 아날로그 디지털 변환기(Analog-Digital Converter)가 데이터를 버퍼로 직접 전달하는 DMA(Direct Memory Access) 방식을 사용한다. The digital audio input device converts an analog sound wave signal into digital sound wave data. At this time, a buffer for storing data is required for digital processing, and a DMA (Direct Memory Access) method in which an analog-to-digital converter directly transfers data to the buffer is used in a general PC.

아날로그 디지털 변환기는 변환된 디지털 음파 데이터를 DMA 방식을 통해 DMA 버퍼(Direct Memory Access Buffer)로 전송하고, DMA 버퍼가 일정 수준 이상 채워지면 인터럽트를 발생시킨다. 인터럽트 발생 시, 운영 체제는 인터럽트 서비스 루틴을 통해 인터럽트 수신 응답을 하고, DMA 버퍼의 내용을 사용자가 요청한 사용자 버퍼(User Buffer)에 복사하며, 응용 프로그램에 알린다. The analog-to-digital converter transmits the converted digital sound wave data to the DMA buffer (Direct Memory Access Buffer) through the DMA method, and generates an interrupt when the DMA buffer is filled to a certain level or more. When an interrupt occurs, the operating system responds to interrupt reception through the interrupt service routine, copies the contents of the DMA buffer to the user buffer requested by the user, and notifies the application program.

대부분의 경우, DMA 방식은 데이터가 변환될 때마다 DMA 버퍼의 시작 주소부터 마지막까지 채워가고, 버퍼의 마지막 지점에 도달하면 다시 시작 주소부터 복사를 계속 수행한다. 이때, 버퍼 크기의 1/2 정도가 찬 경우 인터럽트 신호를 발생시켜 인터럽트 서비스 루틴이 데이터를 가져가도록 하고, 데이터를 가져가는 동안 버퍼의 나머지 부분을 계속 채워나가는 이중 버퍼링(double buffering) 방식을 주로 사용한다. In most cases, the DMA method fills the DMA buffer from the start address to the end whenever data is converted, and continues copying from the start address when the last point of the buffer is reached. At this time, when about 1/2 of the buffer size is full, an interrupt signal is generated so that the interrupt service routine takes the data, and the double buffering method is mainly used while the rest of the buffer is filled while taking the data. do.

음성 통신 분야에서는 아날로그 형태의 음파 신호를 디지털 음파 데이터로 변환하고 디지털 음파 데이터를 사용자 버퍼에 복사할 때, 사용자가 신속하게 디지털 음파 데이터를 수신하여 처리할 수 있도록 하는 것이 중요한 이슈이다. In the field of voice communication, when converting an analog sound wave signal into digital sound wave data and copying the digital sound wave data to the user buffer, it is an important issue to enable the user to quickly receive and process the digital sound wave data.

따라서, 오디오 초기 입력 시간을 축소하여, 사용자가 느끼는 초기 지연을 축소할 수 있는 기술의 개발이 필요하다. Accordingly, it is necessary to develop a technology capable of reducing the initial delay felt by the user by reducing the initial audio input time.

한국 등록 특허 제10-1335975호, 2013년 12월 04일 공고(명칭: 복수의 오디오 입력 신호를 리포맷팅하는 방법)Korean Patent Registration No. 10-1335975, Announced on December 04, 2013 (Title: Method for Reformatting Multiple Audio Input Signals)

본 발명의 목적은 디지털 오디오 입력 장치에서 변환된 디지털 음파 데이터를 신속하게 제공하는 것이다. SUMMARY OF THE INVENTION It is an object of the present invention to quickly provide digital sound wave data converted in a digital audio input device.

또한, 본 발명의 목적은 오디오 초기 입력 시간을 축소하여, 사용자가 느끼는 초기 지연을 축소하는 것이다. Another object of the present invention is to reduce an initial delay felt by a user by reducing an audio initial input time.

또한, 본 발명의 목적은 실시간 녹음이나 실시간 통화 등의 응용 프로그램 및 시스템에서 재생 지연 및 전송 지연을 최소화하는 것이다. Another object of the present invention is to minimize playback delay and transmission delay in applications and systems such as real-time recording or real-time calls.

상기한 목적을 달성하기 위한 본 발명에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치에 의해 수행되는 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 방법은, 사용자의 최소 버퍼 크기를 기반으로 DMA(Direct Memory Access) 버퍼를 할당하는 단계, 아날로그 음파를 디지털 음파 데이터로 변환하는 A/D(Analog-Digital) 변환기를 초기화한 후, 상기 사용자로부터 오디오 입력 요청을 수신하기 이전에 상기 A/D 변환기의 동작을 실행시키는 단계, 변환된 상기 디지털 음파 데이터를 상기 DMA 버퍼로 전달하는 단계, 상기 오디오 입력 요청을 수신한 상태에서 상기 A/D 변환기의 인터럽트 수신 시, 상기 DMA 버퍼에 저장된 상기 디지털 음파 데이터를 사용자 버퍼로 복사하는 단계, 그리고 상기 오디오 입력 요청에 상응하는 프로세스로, 상기 사용자 버퍼가 가득 찼음을 알리는 버퍼 풀 알림을 전송하는 단계를 포함한다. A buffer control method for reducing audio input processing delay performed by a buffer control apparatus for reducing audio input processing delay according to the present invention for achieving the above object is a direct memory access (DMA) method based on a user's minimum buffer size ) Allocating a buffer, initialize an A/D (Analog-Digital) converter that converts analog sound waves into digital sound wave data, and then execute the operation of the A/D converter before receiving an audio input request from the user transmitting the converted digital sound wave data to the DMA buffer, when receiving the interrupt of the A/D converter while receiving the audio input request, transferring the digital sound wave data stored in the DMA buffer to a user buffer copying, and sending, in a process corresponding to the audio input request, a buffer pool notification indicating that the user buffer is full.

이때, 상기 A/D 변환기의 동작을 실행시키는 단계는, 상기 A/D 변환기에 상기 DMA 버퍼의 시작 주소 및 크기를 전달하는 단계, 상기 A/D 변환기에서 인터럽트 발생 시 인터럽트 서비스 루틴이 실행되도록, 운영체제에 인터럽트 서비스 루틴을 등록하는 단계, 그리고 상기 A/D 변환기의 동작을 실행시키고, 상기 사용자의 상기 오디오 입력 요청 수신을 대기하는 단계를 포함할 수 있다. In this case, the step of executing the operation of the A/D converter includes: transmitting the start address and size of the DMA buffer to the A/D converter; so that an interrupt service routine is executed when an interrupt occurs in the A/D converter; The method may include registering an interrupt service routine in the operating system, executing the operation of the A/D converter, and waiting for the user to receive the audio input request.

이때, 상기 인터럽트 서비스 루틴은, 수신한 상기 오디오 입력 요청이 첫 번째 요청인 경우, 상기 첫 번째 요청에 상응하는 시점 이전의 상기 디지털 음파 데이터를 무음으로 처리한 후, 상기 DMA 버퍼의 상기 디지털 음파 데이터를 상기 사용자 버퍼로 복사할 수 있다. At this time, when the received audio input request is the first request, the interrupt service routine silences the digital sound wave data before the time point corresponding to the first request, and then the digital sound wave data in the DMA buffer can be copied to the user buffer.

이때, 상기 인터럽트 서비스 루틴은, 현재 시간, 상기 DMA 버퍼가 채워지는 시간 및 상기 오디오 입력 요청을 수신한 시간 중 적어도 어느 하나를 포함하는 시간 정보를 기반으로 무음으로 처리할 상기 디지털 음파 데이터를 설정할 수 있다. At this time, the interrupt service routine may set the digital sound wave data to be processed in silence based on time information including at least one of a current time, a time when the DMA buffer is filled, and a time when the audio input request is received. have.

이때, 상기 디지털 음파 데이터를 상기 DMA 버퍼로 전달하는 단계는, 인터럽트의 발생 빈도를 최소화하기 위하여, 상기 사용자 버퍼의 크기마다 상기 인터럽트를 발생할 수 있다. In this case, in the step of transferring the digital sound wave data to the DMA buffer, the interrupt may be generated for each size of the user buffer in order to minimize the frequency of occurrence of the interrupt.

또한, 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치는, 사용자의 최소 버퍼 크기를 기반으로 DMA(Direct Memory Access) 버퍼를 할당하는 DMA 버퍼 할당부, 아날로그 음파를 디지털 음파 데이터로 변환하는 A/D 변환기를 초기화한 후, 상기 사용자로부터 오디오 입력 요청을 수신하기 이전에 상기 A/D 변환기의 동작을 실행시키는 A/D 변환기 실행부, 변환된 상기 디지털 음파 데이터를 상기 DMA 버퍼로 전달하는 DMA 버퍼 전달부, 상기 오디오 입력 요청을 수신한 상태에서 상기 A/D 변환기의 인터럽트 수신 시, 상기 DMA 버퍼에 저장된 상기 디지털 음파 데이터를 사용자 버퍼로 복사하는 사용자 버퍼 복사부, 그리고 상기 오디오 입력 요청에 상응하는 프로세스로, 상기 사용자 버퍼가 가득 찼음을 알리는 버퍼 풀 알림을 전송하는 알림 전송부를 포함한다. In addition, the buffer control apparatus for reducing audio input processing delay according to an embodiment of the present invention includes a DMA buffer allocator for allocating a DMA (Direct Memory Access) buffer based on a user's minimum buffer size, and a digital sound wave for analog sound waves. After initializing the A/D converter that converts data into an A/D converter, before receiving an audio input request from the user, an A/D converter executing unit that executes the operation of the A/D converter, converts the converted digital sound wave data into the DMA A DMA buffer transfer unit that transfers to a buffer, a user buffer copy unit that copies the digital sound wave data stored in the DMA buffer to a user buffer when the interrupt of the A/D converter is received while receiving the audio input request, and the A process corresponding to the audio input request, and includes a notification transmitter that transmits a buffer pool notification indicating that the user buffer is full.

이때, 상기 A/D 변환기 실행부는, 상기 A/D 변환기에 상기 DMA 버퍼의 시작 주소 및 크기를 전달하고, 상기 A/D 변환기에서 인터럽트 발생 시 인터럽트 서비스 루틴이 실행되도록, 운영체제에 인터럽트 서비스 루틴을 등록하며, 상기 A/D 변환기의 동작을 실행시키고, 상기 사용자의 상기 오디오 입력 요청 수신을 대기할 수 있다. At this time, the A/D converter execution unit transmits the start address and size of the DMA buffer to the A/D converter, and provides an interrupt service routine to the operating system so that the interrupt service routine is executed when an interrupt occurs in the A/D converter. It may register, execute the operation of the A/D converter, and wait for reception of the audio input request from the user.

이때, 상기 인터럽트 서비스 루틴은, 수신한 상기 오디오 입력 요청이 첫 번째 요청인 경우, 상기 첫 번째 요청에 상응하는 시점 이전의 상기 디지털 음파 데이터를 무음으로 처리한 후, 상기 DMA 버퍼의 상기 디지털 음파 데이터를 상기 사용자 버퍼로 복사할 수 있다. At this time, when the received audio input request is the first request, the interrupt service routine silences the digital sound wave data before the time point corresponding to the first request, and then the digital sound wave data in the DMA buffer can be copied to the user buffer.

이때, 무음으로 처리할 상기 디지털 음파 데이터를 설정하기 위하여, 현재 시간, 상기 DMA 버퍼가 채워지는 시간 및 상기 오디오 입력 요청을 수신한 시간 중 적어도 어느 하나를 포함하는 시간 정보를 저장하는 데이터 요청 처리부를 더 포함할 수 있다. At this time, in order to set the digital sound wave data to be processed in silence, a data request processing unit for storing time information including at least one of a current time, a time at which the DMA buffer is filled, and a time at which the audio input request is received may include more.

이때, 상기 DMA 버퍼 전달부는, 인터럽트의 발생 빈도를 최소화하기 위하여, 상기 사용자 버퍼의 크기마다 상기 인터럽트를 발생할 수 있다. In this case, the DMA buffer transfer unit may generate the interrupt for each size of the user buffer in order to minimize the occurrence frequency of the interrupt.

본 발명에 따르면, 디지털 오디오 입력 장치에서 변환된 디지털 음파 데이터를 신속하게 제공 할 수 있다. According to the present invention, it is possible to quickly provide digital sound wave data converted by a digital audio input device.

또한 본 발명에 따르면, 오디오 초기 입력 시간을 축소하여, 사용자가 느끼는 초기 지연을 축소 할 수 있다. In addition, according to the present invention, by reducing the initial audio input time, it is possible to reduce the initial delay felt by the user.

또한 본 발명에 따르면, 실시간 녹음이나 실시간 통화 등의 응용 프로그램 및 시스템에서 재생 지연 및 전송 지연을 최소화할 수 있다. In addition, according to the present invention, it is possible to minimize playback delay and transmission delay in applications and systems such as real-time recording or real-time calls.

도 1은 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치가 적용되는 환경을 개략적으로 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치의 구성을 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 일실시예에 따른 A/D 변환기의 동작 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 일실시예에 따른 DMA 버퍼 할당 과정을 설명하기 위한 순서도이다.
도 7은 본 발명의 일실시예에 따른 인터럽트 서비스 루틴의 동작 방법을 설명하기 위한 순서도이다.
도 8은 도 7의 S790 단계에서 DMA 버퍼 복사 루틴을 호출하는 과정을 설명하기 위한 순서도이다.
도 9은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
1 is a diagram schematically illustrating an environment to which a buffer control apparatus for reducing delay in processing an audio input according to an embodiment of the present invention is applied.
2 is a block diagram illustrating a configuration of a buffer control apparatus for reducing delay in processing an audio input according to an embodiment of the present invention.
3 is a flowchart illustrating a buffer control method for reducing audio input processing delay according to an embodiment of the present invention.
4 is a flowchart for explaining a method of operating a buffer control system for reducing audio input processing delay according to an embodiment of the present invention.
5 is a flowchart illustrating a method of operating an A/D converter according to an embodiment of the present invention.
6 is a flowchart illustrating a DMA buffer allocation process according to an embodiment of the present invention.
7 is a flowchart illustrating an operation method of an interrupt service routine according to an embodiment of the present invention.
8 is a flowchart illustrating a process of calling the DMA buffer copy routine in step S790 of FIG. 7 .
9 is a block diagram illustrating a computer system according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.However, this is not intended to limit the present invention to specific embodiments, and it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical and scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. In describing the present invention, in order to facilitate the overall understanding, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.

도 1은 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치가 적용되는 환경을 개략적으로 나타낸 도면이다. 1 is a diagram schematically illustrating an environment to which a buffer control apparatus for reducing delay in processing an audio input according to an embodiment of the present invention is applied.

도 1에 도시한 바와 같이, A/D 변환기(110)는 아날로그 음파(10)를 디지털 음파 데이터(20)로 변환한다. 그리고 A/D 변환기(110)는 DMA 방식을 통해 디지털 음파 데이터(20)를 DMA 버퍼(120)로 전달한다. As shown in FIG. 1 , the A/D converter 110 converts an analog sound wave 10 into digital sound wave data 20 . And the A/D converter 110 transfers the digital sound wave data 20 to the DMA buffer 120 through the DMA method.

DMA 버퍼(120)가 일정 수준 이상 채워지면, A/D 변환기(110)는 인터럽트를 발생시킨다. 인터럽트가 발생하면 운영체제는 인터럽트 서비스 루틴을 통해 인터럽트 수신 응답을 하고, DMA 버퍼(120)의 내용을 사용자가 요청한 사용자 버퍼(130)에 복사하고, 사용자에게 알린다. When the DMA buffer 120 is filled over a certain level, the A/D converter 110 generates an interrupt. When an interrupt occurs, the operating system makes an interrupt reception response through the interrupt service routine, copies the contents of the DMA buffer 120 to the user buffer 130 requested by the user, and notifies the user.

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 시스템은, 오디오 입력을 시작하기 위한 준비 과정, 아날로그 입력을 디지털로 변환하는 과정 및 일정량 이상 누적된 데이터를 사용자에게 제공하는 과정을 수행한다. The buffer control system for reducing audio input processing delay performs a preparation process for starting audio input, a process of converting an analog input to digital, and a process of providing data accumulated over a certain amount to a user.

오디오 입력을 시작하기 위한 준비 과정에서는, DMA 버퍼(120)를 할당하고, A/D 변환기(110)를 초기화한 후 A/D 변환기(110) 동작을 설정하며, A/D 변환기 동작 시작을 요청한다. 그리고 동작 시작 요청을 수신한 A/D 변환기(110)는 아날로그 음파(10)를 디지털 음파 데이터(20)로 변환한다. In the preparation process for starting the audio input, the DMA buffer 120 is allocated, the A/D converter 110 is initialized, the A/D converter 110 operation is set, and the A/D converter operation start is requested. do. And the A/D converter 110 receiving the operation start request converts the analog sound wave 10 into the digital sound wave data 20 .

그리고 아날로그 입력을 디지털로 변환하는 과정에서 A/D 변환기(110)는 DMA 버퍼(120)로 데이터를 전달하고, A/D 변환기(110)는 인터럽트를 발생한다. And in the process of converting the analog input to digital, the A/D converter 110 transfers data to the DMA buffer 120 , and the A/D converter 110 generates an interrupt.

또한, 일정량 이상 누적된 데이터를 사용자에게 제공하는 과정에서 운영체제는 인터럽트를 수신하고, 자체 스케줄링 정책에 따라 인터럽트 서비스 루틴을 실행하고, 인터럽트 서비스 루틴에서 DMA 버퍼(120)의 데이터를 사용자 버퍼(130)로 복사한다. 그리고 운영체제는 사용자 버퍼(130)에 녹음을 요청한 프로세스로 사용자 버퍼(130)가 가득 찼음을 알리는 버퍼 풀 알림(BufferFullNotify)을 전송한다.In addition, in the process of providing data accumulated over a certain amount to the user, the operating system receives an interrupt, executes an interrupt service routine according to its own scheduling policy, and transfers data from the DMA buffer 120 to the user buffer 130 in the interrupt service routine. copy to In addition, the operating system transmits a buffer full notification (BufferFullNotify) notifying that the user buffer 130 is full to the process requesting recording to the user buffer 130 .

디지털 시스템에서는 주로 버퍼를 사용하며 버퍼 단위로 데이터를 처리한다. 그리고 디지털 시스템에서 지연을 줄이기 위해서는 버퍼를 신속하게 채우거나 버퍼에 저장된 데이터를 신속하게 복사하는 것이 중요하다. In digital systems, buffers are mainly used and data is processed in units of buffers. And to reduce latency in digital systems, it is important to quickly fill a buffer or copy data stored in a buffer quickly.

종래 기술에 따르면, A/D 변환기(110)가 DMA 버퍼(120)로 데이터를 전달할 때 버퍼가 채워질 때까지 초기 지연이 필수적이다. 기존 시스템은 대부분 고정된 DMA 버퍼를 사용하므로 버퍼를 채우는데 소요되는 지연 시간은 해당 버퍼의 크기에 의존적이다. According to the prior art, when the A/D converter 110 transfers data to the DMA buffer 120 , an initial delay is essential until the buffer is filled. Existing systems mostly use a fixed DMA buffer, so the delay time required to fill the buffer depends on the size of the buffer.

즉, 버퍼를 채우는데 소요되는 시간은 버퍼를 채우도록 시작한 시점부터 아날로그 오디오를 샘플링하는 주기(sampling rate)(Hz 단위), 채널 수(모노=1채널, 스테레오=2채널 등) 및 채널당 바이트 수(byte 단위)에 따라 결정된다. That is, the time it takes to fill the buffer depends on the sampling rate (in Hz), the number of channels (mono = 1 channel, stereo = 2 channels, etc.) and the number of bytes per channel from the time the buffer starts to be filled. It is determined according to (byte unit).

따라서, 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 오디오 입력을 시작하기 위한 준비 과정에서 사용자가 요청한 버퍼의 크기에 따라 DMA 버퍼(120)를 할당하고, A/D 변환기(110)의 초기화를 수행한 후 아날로그 음파(10)를 디지털 음파 데이터(20)로 변환한다. Therefore, the buffer control apparatus 200 for reducing audio input processing delay according to an embodiment of the present invention allocates the DMA buffer 120 according to the size of the buffer requested by the user in the preparation process for starting the audio input, After initialization of the A/D converter 110 is performed, the analog sound wave 10 is converted into digital sound wave data 20 .

즉, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자가 데이터를 복사할 사용자 버퍼(130)의 크기와 DMA 버퍼(120)의 크기가 최대한 일치하도록 하여, 인터럽트 발생 주기 및 버퍼 풀 알림(BufferFullNotify)을 전송하는 주기를 맞춘다. 이를 통하여, 인터럽트가 발생하여 사용자 버퍼(130)를 채우는 경우, 사용자 버퍼(130)가 다 채워지지 않아 버퍼 풀 알림(BufferFullNotify)을 전송하지 못하는 경우를 최소화한다. That is, the buffer control device 200 for reducing audio input processing delay makes the size of the user buffer 130 to which the user copies data and the size of the DMA buffer 120 match as much as possible, thereby notifying the interrupt generation cycle and buffer pool Adjust the transmission period of (BufferFullNotify). Through this, when an interrupt occurs and the user buffer 130 is filled, the case where the user buffer 130 is not fully filled and the buffer full notification (BufferFullNotify) cannot be transmitted is minimized.

또한, 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 아날로그 입력을 디지털로 변환하는 과정에서, 실행 플래그(RunFlag)를 이용하여, 실행 플래그가 ON인 경우에만 버퍼 복사를 수행한다. A/D 변환기(110)가 이미 동작하고 있는 상태이므로, 인터럽트의 발생 시점이 기존 방식보다 빨라져 사용자에게 데이터를 최초로 전달하는 시간을 축소시킬 수 있다. In addition, the buffer control apparatus 200 for reducing audio input processing delay according to an embodiment of the present invention uses the run flag RunFlag in the process of converting the analog input to digital, only when the run flag is ON. Buffer copy is performed. Since the A/D converter 110 is already in operation, the interrupt generation time is earlier than that of the conventional method, so that the time for first transmitting data to the user can be reduced.

그리고 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 일정량 이상 누적된 데이터를 사용자에게 제공하는 과정에서, 사용자가 입력을 요청한 시간 이전의 데이터가 DMA 버퍼(120)에 존재하는 것으로 판단된 경우, 이전의 데이터를 무음 데이터로 변환한 후 사용자 버퍼(130)로 전송한다. In the process of providing the data accumulated over a certain amount to the user, the buffer control apparatus 200 for reducing the delay of audio input processing according to an embodiment of the present invention transfers data prior to the time the user requested the input to the DMA buffer 120 . ), the previous data is converted into silent data and then transmitted to the user buffer 130 .

이때, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 시스템의 현재 시간을 측정하는 시스템 타이머(System Timer), DMA 버퍼(120)가 채워지는 시간을 저장하는 메모리인 DMA BufferFill-up time counter 및 오디오 입력 요청을 수신한 시간을 저장하는 메모리인 User Request Time Saver 중 적어도 어느 하나를 이용하여, 무음 데이터로 변환할 데이터를 설정할 수 있다. At this time, the buffer control device 200 for reducing the delay of audio input processing includes a system timer for measuring the current time of the system, and a DMA BufferFill-up time counter which is a memory for storing the time when the DMA buffer 120 is filled. and by using at least one of a User Request Time Saver that is a memory for storing the time when an audio input request is received, it is possible to set data to be converted into silent data.

이하에서는 도 2를 통하여 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치의 구성에 대하여 더욱 상세하게 설명한다. Hereinafter, a configuration of a buffer control apparatus for reducing audio input processing delay according to an embodiment of the present invention will be described in more detail with reference to FIG. 2 .

도 2는 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치의 구성을 나타낸 블록도이다. 2 is a block diagram illustrating a configuration of a buffer control apparatus for reducing delay in processing an audio input according to an embodiment of the present invention.

도 2에 도시한 바와 같이, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 DMA 버퍼 할당부(210), A/D 변환기 실행부(220), DMA 버퍼 전달부(230), 사용자 버퍼 복사부(240), 알림 전송부(250) 및 데이터 요청 처리부(260)를 포함한다. As shown in FIG. 2 , the buffer control apparatus 200 for reducing audio input processing delay includes a DMA buffer allocator 210 , an A/D converter execution unit 220 , a DMA buffer transfer unit 230 , and a user buffer. It includes a copy unit 240 , a notification transmission unit 250 , and a data request processing unit 260 .

먼저, DMA 버퍼 할당부(210)는 사용자의 최소 버퍼 크기를 기반으로 DMA 버퍼(120)를 할당한다. 이때, DMA 버퍼 할당부(210)는 이중 버퍼링이 가능하도록 사용자의 최소 버퍼 크기의 2배로 DMA 버퍼(120)를 할당할 수 있다. First, the DMA buffer allocator 210 allocates the DMA buffer 120 based on the user's minimum buffer size. In this case, the DMA buffer allocator 210 may allocate the DMA buffer 120 to twice the user's minimum buffer size to enable double buffering.

그리고 A/D 변환기 실행부(220)는 아날로그 음파(10)를 디지털 음파 데이터(20)로 변환하는 A/D 변환기(110)를 초기화한다. 또한, A/D 변환기 실행부(220)는 사용자로부터 오디오 입력 요청을 수신하기 이전에 A/D 변환기(110)의 동작을 실행시킨다. And the A/D converter execution unit 220 initializes the A/D converter 110 that converts the analog sound wave 10 into the digital sound wave data 20 . In addition, the A/D converter execution unit 220 executes the operation of the A/D converter 110 before receiving an audio input request from the user.

A/D 변환기 실행부(220)는 A/D 변환기(110)에 DMA 버퍼(120)의 시작 주소 및 크기를 전달하고, A/D 변환기(110)에서 인터럽트가 발생한 경우 인터럽트 서비스 루틴이 실행되도록 운영체제에 인터럽트 서비스 루틴을 등록한다. 그리고 A/D 변환기 실행부(220)는 A/D 변환기(110)의 동작을 실행시키고 사용자의 오디오 입력 요청 수신을 대기할 수 있다. The A/D converter execution unit 220 transfers the start address and size of the DMA buffer 120 to the A/D converter 110 , and executes the interrupt service routine when an interrupt occurs in the A/D converter 110 . Register the interrupt service routine in the operating system. In addition, the A/D converter execution unit 220 may execute the operation of the A/D converter 110 and wait for the user's audio input request to be received.

여기서, 인터럽트 서비스 루틴은, 수신한 오디오 입력 요청이 첫 번째 요청인 경우, 첫 번째 요청에 상응하는 시점 이전의 디지털 음파 데이터를 무음으로 처리한 후, DMA 버퍼(120)의 디지털 음파 데이터(20)를 사용자 버퍼(130)로 복사할 수 있다. Here, when the received audio input request is the first request, the interrupt service routine silences the digital sound wave data before the time point corresponding to the first request, and then the digital sound wave data 20 of the DMA buffer 120 may be copied to the user buffer 130 .

이때, 인터럽트 서비스 루틴은 현재 시간, DMA 버퍼(120)가 채워지는 시간 및 오디오 입력 요청을 수신한 시간 중 적어도 어느 하나를 포함하는 시간 정보를 기반으로 무음으로 처리할 디지털 음파 데이터를 설정할 수 있다. In this case, the interrupt service routine may set the digital sound wave data to be processed in silence based on time information including at least one of the current time, the time when the DMA buffer 120 is filled, and the time when the audio input request is received.

현재 시간은 시스템의 시간을 측정하는 시스템 타이머(System Timer)로부터 획득한 것이고, DMA 버퍼(120)가 채워지는 시간은 DMA BufferFill-up time counter에 저장된 것일 수 있으며, 오디오 입력 요청을 수신한 시간은 User Request Time Saver에 데이터 요구 시점 값으로 저장된 것일 수 있다. The current time is obtained from a system timer that measures the time of the system, and the time when the DMA buffer 120 is filled may be stored in the DMA BufferFill-up time counter, and the time at which the audio input request is received is It may be stored as a data request time value in the User Request Time Saver.

다음으로 DMA 버퍼 전달부(230)는 변환된 디지털 음파 데이터(20)를 DMA 버퍼(120)로 전달한다. 이때, 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자 버퍼(130)의 크기마다 인터럽트가 발생하도록 하여, 인터럽트의 발생 빈도를 최소화하고, 사용자에게 버퍼 풀 알림을 전송하는 주기를 최소화할 수 있으며, 초기 버퍼 지연을 사용자 요구 수준으로 낮출 수 있다. Next, the DMA buffer transfer unit 230 transfers the converted digital sound wave data 20 to the DMA buffer 120 . At this time, the buffer control apparatus 200 for reducing the delay of audio input processing according to an embodiment of the present invention causes an interrupt to occur for each size of the user buffer 130 to minimize the frequency of occurrence of the interrupt and provide the user with the buffer pool. The frequency of sending notifications can be minimized, and the initial buffer delay can be lowered to the level required by the user.

그리고 사용자 버퍼 복사부(240)는 오디오 입력 요청을 수신한 상태에서 A/D 변환기(110)의 인터럽트를 수신한 경우, DMA 버퍼(120)에 저장된 디지털 음파 데이터(20)를 사용자 버퍼(130)로 복사한다. And when the user buffer copy unit 240 receives the interrupt of the A/D converter 110 while receiving the audio input request, the digital sound wave data 20 stored in the DMA buffer 120 is transferred to the user buffer 130 . copy to

알림 전송부(250)는 오디오 입력 요청에 상응하는 프로세스로, 사용자 버퍼(130)가 가득 찼음을 알리는 버퍼 풀 알림을 전송한다. As a process corresponding to the audio input request, the notification transmitter 250 transmits a buffer pool notification indicating that the user buffer 130 is full.

마지막으로 데이터 요청 처리부(260)는 현재 시간, 상기 DMA 버퍼가 채워지는 시간 및 상기 오디오 입력 요청을 수신한 시간 중 적어도 어느 하나를 포함하는 시간 정보를 기록한다. 이때, 기록된 시간 정보기반으로 인터럽트 서비스 루틴은 무음으로 처리할 디지털 음파 데이터를 설정할 수 있다. Finally, the data request processing unit 260 records time information including at least one of a current time, a time at which the DMA buffer is filled, and a time at which the audio input request is received. At this time, based on the recorded time information, the interrupt service routine can set the digital sound wave data to be processed in silence.

이하에서는 도 3 내지 도 8을 통하여, 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치에 의해 수행되는 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 방법에 대하여 더욱 상세하게 설명한다. Hereinafter, a buffer control method for reducing audio input processing delay performed by the buffer control apparatus for reducing audio input processing delay according to an embodiment of the present invention will be described in detail with reference to FIGS. 3 to 8 .

도 3은 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 방법을 설명하기 위한 순서도이다. 3 is a flowchart illustrating a buffer control method for reducing audio input processing delay according to an embodiment of the present invention.

먼저, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 DMA 버퍼를 할당한다(S310). First, the buffer control apparatus 200 for reducing audio input processing delay allocates a DMA buffer ( S310 ).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자가 응용 프로그램에서 처리하는데 최소한으로 필요하다고 하는 버퍼 크기인 최소 버퍼 크기를 입력받고, 최소 버퍼 크기를 기반으로 DMA 버퍼를 할당한다. The buffer control apparatus 200 for reducing audio input processing delay receives the minimum buffer size, which is the minimum buffer size required by the user for processing in the application program, and allocates the DMA buffer based on the minimum buffer size.

기존의 시스템에서는 인터럽트가 발생하여 DMA 버퍼의 내용을 사용자 버퍼로 복사할 때, 사용자 버퍼 크기와 DMA 버퍼 크기의 차이로 인하여 사용자 버퍼가 채워지지 않은 경우 버퍼가 채워졌음을 알릴 수 없어 다음 인터럽트 주기까지 기다려야 하며, 이러한 이유로 지연이 발생하였다. In the existing system, when an interrupt occurs and the contents of the DMA buffer are copied to the user buffer, if the user buffer is not filled due to the difference between the user buffer size and the DMA buffer size, it cannot be notified that the buffer is full until the next interrupt cycle. You have to wait, and for this reason, there is a delay.

그러나 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 이중 버퍼링을 고려하여, 사용자가 요구하는 최소 버퍼 크기의 2배수로 DMA 버퍼를 할당하고, 이를 통하여 버퍼 크기 차이로 인한 지터(jitter)를 최소화할 수 있다. However, the buffer control apparatus 200 for reducing the delay of audio input processing according to an embodiment of the present invention allocates a DMA buffer to twice the minimum buffer size requested by the user in consideration of double buffering, and thereby the buffer size difference jitter caused by this can be minimized.

또한, DMA 버퍼에 데이터를 저장하는 경우 사용자가 요구하는 사용자 버퍼의 크기마다 인터럽트가 발생하도록 하여, 인터럽트 발생 빈도 및 사용자에게 알리는 주기를 최소화하고, 초기 버퍼 지연을 낮출 수 있다. In addition, when data is stored in the DMA buffer, an interrupt is generated for each size of the user buffer requested by the user, thereby minimizing the frequency of interrupt generation and the period of notifying the user, and lowering the initial buffer delay.

그리고 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 A/D 변환기를 초기화하고, A/D 변환기의 동작을 실행한다(S320). In addition, the buffer control apparatus 200 for reducing audio input processing delay initializes the A/D converter and executes the operation of the A/D converter (S320).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 DMA 버퍼를 할당받은 후 A/D 변환기를 초기화한 후 동작시킨다. 여기서, A/D 변환기는 아날로그 음파 신호를 디지털 형태로 변환한다. The buffer control apparatus 200 for reducing audio input processing delay initializes and operates the A/D converter after receiving the DMA buffer. Here, the A/D converter converts an analog sound wave signal into a digital form.

기존의 시스템에서는 A/D 변환기를 초기화 시킨 후, 사용자의 실질적 데이터 요구 시점에 A/D 변환기를 동작시켰다. 그러나, 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자가 오디오 입력 장치의 사용을 준비하는 순간부터 A/D 변환기를 동작시켜, DMA 버퍼를 신속하게 채울 수 있도록 한다. In the existing system, after initializing the A/D converter, the A/D converter is operated when the user actually requests data. However, the buffer control device 200 for reducing audio input processing delay according to an embodiment of the present invention operates the A/D converter from the moment the user prepares to use the audio input device to quickly fill the DMA buffer. make it possible

다음으로 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 A/D 변환기에 의해 변환된 디지털 음파 데이터를 DMA 버퍼로 전달한다(S330). Next, the buffer control apparatus 200 for reducing audio input processing delay transfers the digital sound wave data converted by the A/D converter to the DMA buffer (S330).

이중 버퍼링 방식을 사용하는 경우, 디지털 음파 데이터가 전체 DMA 버퍼 크기의 절반 지점까지 저장되면, 인터럽트가 발생한다. When using the double buffering method, an interrupt occurs when digital sound wave data is stored up to half the size of the entire DMA buffer.

A/D 변환기의 인터럽트를 수신한 경우, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 DMA 버퍼의 데이터를 사용자 버퍼로 복사한다(S340). When receiving the interrupt of the A/D converter, the buffer control apparatus 200 for reducing audio input processing delay copies the data of the DMA buffer to the user buffer (S340).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자로부터 오디오 입력 요청을 수신한 경우, 실행 플래그(RunFlag)를 ON으로 설정하고, DMA 버퍼의 내용을 사용자 버퍼로 복사하여, 사용자에게 제공할 수 있다. When receiving an audio input request from a user, the buffer control apparatus 200 for reducing audio input processing delay sets a run flag (RunFlag) to ON, copies the contents of the DMA buffer to the user buffer, and provides can

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자가 오디오 입력 요청을 전송하기 전부터, DMA 버퍼에 디지털 음파 데이터를 저장하는 동작을 수행하고 있으므로, 사용자가 실질적으로 오디오 입력 요청을 전송한 시점 이전의 데이터가 DMA 버퍼에 저장되어 있을 수 있다. Since the buffer control apparatus 200 for reducing audio input processing delay performs an operation of storing digital sound wave data in the DMA buffer before the user transmits the audio input request, when the user actually transmits the audio input request Previous data may be stored in the DMA buffer.

따라서, 요구 시점 이전의 데이터를 처리하기 위하여 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 DMA 버퍼에 채워진 디지털 음파 데이터들 중에서, 사용자가 실제 오디오 입력 요청을 전송한 시점 이전의 데이터를 무음으로 처리할 수 있다. 이때, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 오디오 입력 요청을 전송한 시점 이전의 데이터를 무음(silence) 데이터로 설정하여 사용자 버퍼에 복사할 수 있다. Therefore, in order to process the data before the request time, the buffer control apparatus 200 for reducing the delay of audio input processing silences the data before the time when the user actually transmits the audio input request from among the digital sound wave data filled in the DMA buffer can be processed with In this case, the buffer control apparatus 200 for reducing audio input processing delay may set data before the time of transmitting the audio input request as silence data and copy it to the user buffer.

무음 데이터로 설정된 구간과 오디오 프로세싱이 수행되지 않아 소리가 없는 구간은 구별이 어려워, 사용자가 실질적으로 데이터를 요구한 시점(오디오 입력 요청을 전송한 시점) 이전의 데이터를 무음 데이터로 설정하여도, 사용자에게 미치는 영향은 거의 없다. It is difficult to distinguish between the section set as silent data and the section in which there is no audio because audio processing is not performed, so even if the data before the time the user actually requested data (the time when the audio input request is transmitted) is set as silent data, There is little impact on users.

그리고 사용자 버퍼가 가득 찬 경우, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 버퍼 풀 알림을 전송한다(S350). And when the user buffer is full, the buffer control apparatus 200 for reducing audio input processing delay transmits a buffer full notification (S350).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 녹음을 요청한 프로세스로 사용자 버퍼가 가득 찼음을 알리는 버퍼 풀 알림(ButterFullNotify)을 전송할 수 있다. The buffer control apparatus 200 for reducing audio input processing delay may transmit a buffer full notification (ButterFullNotify) informing that the user buffer is full to the process requesting recording.

도 4는 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 시스템의 동작 방법을 설명하기 위한 순서도이다. 4 is a flowchart for explaining a method of operating a buffer control system for reducing audio input processing delay according to an embodiment of the present invention.

도 4에 도시한 바와 같이, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 실행 플래그를 OFF로 설정하고(S410), 시스템 타이머를 동작시키며(S415), A/D 변환기를 초기화한다(S420). As shown in FIG. 4, the buffer control apparatus 200 for reducing the delay of audio input processing sets the execution flag to OFF (S410), operates the system timer (S415), and initializes the A/D converter ( S420).

실행 플래그(RunFlag)는 사용자가 오디오 입력 요청을 전송한 상태인지를 나타내는 것으로, 사용자로부터 오디오 입력 요청을 수신하기 이전에, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 시스템의 시간 정보를 제공하는 시스템 타이머(System Timer)를 동작시킨다. 또한, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 A/D 변환기를 실행하기 이전에 A/D 변환기를 초기화한다. The run flag (RunFlag) indicates whether the user has transmitted an audio input request. Before receiving the audio input request from the user, a system timer ( System Timer). Also, the buffer control apparatus 200 for reducing audio input processing delay initializes the A/D converter before executing the A/D converter.

다음으로 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자 요청에 따른 DMA 버퍼를 할당하고(S425), A/D 변환기에 DMA 버퍼의 정보를 전달한다(S430). Next, the buffer control apparatus 200 for reducing audio input processing delay allocates a DMA buffer according to a user's request (S425), and transmits information on the DMA buffer to the A/D converter (S430).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자로부터 최소 버퍼 크기를 입력받고, 최소 버퍼 크기를 기반으로 DMA 버퍼를 할당한다. 그리고 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 초기화된 A/D 변환기로 DMA 버퍼의 시작 주소 및 크기를 포함하는 DMA 버퍼의 정보를 전달한다. The buffer control apparatus 200 for reducing audio input processing delay receives a minimum buffer size from a user and allocates a DMA buffer based on the minimum buffer size. In addition, the buffer control apparatus 200 for reducing audio input processing delay transfers information on the DMA buffer including the start address and size of the DMA buffer to the initialized A/D converter.

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 운영체제에 인터럽트 서비스 루틴을 등록하고(S435), A/D 변환기의 동작을 실행한다(S440).The buffer control apparatus 200 for reducing audio input processing delay registers an interrupt service routine in the operating system (S435) and executes the operation of the A/D converter (S440).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 A/D 변환기가 인터럽트를 발생하면, 인터럽트 서비스 루틴이 자동적으로 실행되도록 운영체제에 인터럽트 서비스 루틴을 등록할 수 있다. 인터럽트 서비스 루틴은 A/D 변환기에서 인터럽트가 발생될 때마다, DMA 버퍼의 내용을 사용자가 요청한 사용자 버퍼로 복사하는 동작을 수행할 수 있다. The buffer control apparatus 200 for reducing audio input processing delay may register the interrupt service routine in the operating system so that the interrupt service routine is automatically executed when the A/D converter generates an interrupt. The interrupt service routine may perform an operation of copying the contents of the DMA buffer to the user's buffer requested by the user whenever an interrupt is generated from the A/D converter.

그리고 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자의 오디오 입력 요청의 수신을 대기하고(S445), 오디오 입력 요청을 수신한 경우 시스템 타이머의 현재 시간을 저장한다(S450). 또한, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 실행 플래그를 ON으로 설정한다(S455).In addition, the buffer control apparatus 200 for reducing audio input processing delay waits for the user's audio input request (S445), and when receiving the audio input request, stores the current time of the system timer (S450). Also, the buffer control apparatus 200 for reducing audio input processing delay sets the execution flag to ON ( S455 ).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자로부터 오디오 입력 요청을 수신한 경우, 시스템 타이머의 현재 시간을 User Request Time Saver에 저장할 수 있다. 그리고 실행 플래그(RunFlag)를 ON으로 설정하여 DMA 버퍼의 내용을 사용자 버퍼에 복사한다. When receiving an audio input request from a user, the buffer control apparatus 200 for reducing audio input processing delay may store the current time of the system timer in the User Request Time Saver. And by setting the run flag (RunFlag) to ON, the contents of the DMA buffer are copied to the user buffer.

버퍼 복사를 수행하는 동안 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자의 중지 요청 수신을 대기하며(S460), 사용자로부터 중지 요청을 수신한 경우 실행 플래그를 다시 OFF로 설정한다(S465).The buffer control apparatus 200 for reducing the delay of audio input processing while performing the buffer copy waits to receive a stop request from the user (S460), and sets the execution flag back to OFF when the stop request is received from the user (S465) ).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자로부터 오디오 입력 중지 요청을 수신한 경우, 실행 플래그(RunFlag)를 OFF로 설정하고, DMA 버퍼의 내용을 사용자 버퍼로 복사하는 과정의 수행을 중지할 수 있다. When the buffer control apparatus 200 for reducing audio input processing delay receives a request to stop audio input from the user, it sets the run flag (RunFlag) to OFF, and performs the process of copying the contents of the DMA buffer to the user buffer. can stop

도 5는 본 발명의 일실시예에 따른 A/D 변환기의 동작 방법을 설명하기 위한 순서도이다. 5 is a flowchart illustrating a method of operating an A/D converter according to an embodiment of the present invention.

먼저, A/D 변환기(110)는 동작 시작 요청의 수신을 대기한다(S510). First, the A/D converter 110 waits for reception of an operation start request (S510).

A/D 변환기(110)는 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)에 의해 초기화가 수행된 후, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)로부터 동작 시작 요청을 수신할 수 있다. After initialization is performed by the buffer control device 200 for reducing audio input processing delay, the A/D converter 110 may receive an operation start request from the buffer control device 200 for reducing audio input processing delay. have.

그리고 동작 시작 요청을 수신하면, A/D 변환기(110)는 A/D 변환을 수행하고, 변환된 디지털 음파 데이터를 DMA 버퍼로 전달한다(S520). And, upon receiving the operation start request, the A/D converter 110 performs A/D conversion, and transfers the converted digital sound wave data to the DMA buffer (S520).

A/D 변환기(110)는 아날로그 음파를 디지털 음파 데이터로 변환하고, 변환된 디지털 음파 데이터를 DMA 버퍼에 저장한다. 여기서, 디지털 음파 데이터가 저장되는 DMA 버퍼는 사용자의 최소 버퍼 크기를 기반으로 할당된 것일 수 있다. The A/D converter 110 converts analog sound waves into digital sound wave data, and stores the converted digital sound wave data in a DMA buffer. Here, the DMA buffer in which the digital sound wave data is stored may be allocated based on the user's minimum buffer size.

DMA 버퍼의 1/2 지점에 아직 도달하지 않은 경우(S530 NO), A/D 변환기(110)는 다시 S520 단계를 수행하여 A/D 변환된 디지털 음파 데이터를 DMA 버퍼로 전달할 수 있다. If the 1/2 point of the DMA buffer has not yet been reached (S530 NO), the A/D converter 110 may again perform step S520 to transfer the A/D-converted digital sound wave data to the DMA buffer.

반면, DMA 버퍼의 1/2 지점에 도달한 경우(S530 Yes), A/D 변환기(110)는 인터럽트 신호를 발생하고(S540), 디지털 음파 데이터를 계속 DMA 버퍼로 전달한다(S550). On the other hand, when the 1/2 point of the DMA buffer is reached (S530 Yes), the A/D converter 110 generates an interrupt signal (S540), and continues to transmit digital sound wave data to the DMA buffer (S550).

인터럽트가 발생하면, 운영체제는 등록된 인터럽트 서비스 루틴을 실행하여, 인터럽트 수신 응답을 하고, DMA 버퍼에 저장된 디지털 음파 데이터를 DMA 버퍼로 복사한다. When an interrupt occurs, the operating system executes the registered interrupt service routine, responds to the interrupt reception, and copies the digital sound wave data stored in the DMA buffer to the DMA buffer.

그리고 A/D 변환기(110)는 DMA 버퍼의 마지막 지점에 도달하였는지 여부를 판단하고(S560), DMA 버퍼의 마지막 지점에 도달한 경우 인터럽트 신호를 발생한다(S570). Then, the A/D converter 110 determines whether the last point of the DMA buffer is reached (S560), and when the last point of the DMA buffer is reached, an interrupt signal is generated (S570).

DMA 버퍼의 마지막 지점까지 디지털 음파 데이터가 저장된 경우 A/D 변환기(110)는 인터럽트를 발생시키고, 운영체제는 인터럽트 서비스 루틴을 실행한다. When digital sound wave data is stored up to the last point of the DMA buffer, the A/D converter 110 generates an interrupt, and the operating system executes an interrupt service routine.

또한, A/D 변환기(110)는 인터럽트 신호를 발생시킨 후, DMA 버퍼의 시작 지점부터 다시 디지털 음파 데이터를 저장한다(S580). In addition, after generating the interrupt signal, the A/D converter 110 stores digital sound wave data again from the starting point of the DMA buffer (S580).

A/D 변환기 동작 종료 요청을 수신할 때까지(S590), A/D 변환기(110)는 S520 단계 이후의 과정을 반복 수행하여, 디지털 음파 데이터를 DMA 버퍼로 전달하고, 인터럽트를 발생시킬 수 있다. Until the A/D converter operation end request is received (S590), the A/D converter 110 may repeat the process after step S520 to transfer digital sound wave data to the DMA buffer and generate an interrupt. .

이하에서는 도 6을 통하여 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)가 도 3의 S310 단계에서 DMA 버퍼를 할당하는 과정에 대하여 더욱 상세하게 설명한다. Hereinafter, a process of allocating a DMA buffer in step S310 of FIG. 3 by the buffer control apparatus 200 for reducing audio input processing delay according to an embodiment of the present invention will be described in detail with reference to FIG. 6 .

도 6은 본 발명의 일실시예에 따른 DMA 버퍼 할당 과정을 설명하기 위한 순서도이다. 6 is a flowchart illustrating a DMA buffer allocation process according to an embodiment of the present invention.

먼저, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 최소 버퍼 크기를 입력받는다(S610). First, the buffer control apparatus 200 for reducing audio input processing delay receives the minimum buffer size (S610).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자로부터 사용자 버퍼의 크기인 최소 버퍼 크기(BS)를 입력받아, 최대한 사용자가 입력한 최소 버퍼 크기(BS)에 맞추어 DMA 버퍼를 할당한다. The buffer control apparatus 200 for reducing audio input processing delay receives the minimum buffer size BS, which is the size of the user buffer, from the user, and allocates the DMA buffer according to the minimum buffer size BS input by the user as much as possible.

이중 버퍼링의 특성 상, DMA 버퍼의 1/2의 내용을 사용자 버퍼로 복사하는 시간보다, DMA 버퍼의 1/2 부분에 디지털 음파 데이터를 저장하는 시간이 길어질 경우, 데이터의 오버라이팅으로 데이터가 훼손될 수 있다. Due to the characteristics of double buffering, if the time to store digital sound wave data in the 1/2 part of the DMA buffer is longer than the time to copy the contents of 1/2 of the DMA buffer to the user buffer, the data will be damaged due to overwriting of the data can be

따라서, 본 발명의 일실시예에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자로부터 입력받은 최소 버퍼 크기(BS)를 반영하여, DMA 버퍼를 할당한다. Accordingly, the buffer control apparatus 200 for reducing audio input processing delay according to an embodiment of the present invention reflects the minimum buffer size BS received from the user and allocates the DMA buffer.

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 인터럽트 발생 주기와 사용자 버퍼 복사 주기가 최대한 같아지도록 하여, 초기 버퍼 지연을 최소화할 수 있다. 이때, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 데이터의 손실이나 훼손이 발생하지 않도록 시스템 내에서 DMA 버퍼의 크기를 조절하여, 지연 축소와 동시에 오디오 데이터의 무결성을 최대한 보장할 수 있다. The buffer control apparatus 200 for reducing audio input processing delay may minimize the initial buffer delay by making the interrupt generation period and the user buffer copy period the same as possible. At this time, the buffer control apparatus 200 for reducing the delay of audio input processing adjusts the size of the DMA buffer in the system so that data is not lost or damaged, thereby reducing the delay and maximally guaranteeing the integrity of audio data. .

다음으로 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 DMA 시간을 계산하고, 계산된 시간 정보를 저장한다(S620). Next, the buffer control apparatus 200 for reducing audio input processing delay calculates a DMA time and stores the calculated time information (S620).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 다음의 수학식 1과 같이 DMA 시간(DMA Time)을 연산할 수 있다. The buffer control apparatus 200 for reducing audio input processing delay may calculate a DMA time as shown in Equation 1 below.

[수학식 1][Equation 1]

Figure 112018019836707-pat00001
Figure 112018019836707-pat00001

DMA 시간을 연산한 후, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 연산된 DMA 시간을 DMA BufferFill-up Count에 저장할 수 있다. After calculating the DMA time, the buffer control apparatus 200 for reducing audio input processing delay may store the calculated DMA time in the DMA BufferFill-up Count.

그리고 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 테스트용 DMA 버퍼 및 테스트용 사용자 버퍼를 할당한다(S630). In addition, the buffer control apparatus 200 for reducing audio input processing delay allocates a DMA buffer for testing and a user buffer for testing (S630).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 사용자가 요청한 버퍼 크기인 최소 버퍼 크기(BS)로, 테스트용 DMA 버퍼 및 테스트용 사용자 버퍼를 할당할 수 있다. The buffer control apparatus 200 for reducing audio input processing delay may allocate a DMA buffer for testing and a user buffer for testing as a minimum buffer size (BS) that is a buffer size requested by a user.

또한, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 시스템의 현재 시간을 Tcur에 저장한다(S640). In addition, the buffer control apparatus 200 for reducing the delay of audio input processing stores the current time of the system in Tcur (S640).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 인터럽트 서비스 루틴에 버퍼 크기를 전송하며, 현재 시간을 Tnow에 저장한다(S650). The buffer control apparatus 200 for reducing audio input processing delay transmits the buffer size to the interrupt service routine and stores the current time in Tnow (S650).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 테스트 모드를 호출하고, 인터럽트 서비스 루틴에 사용자가 요청한 버퍼 크기인 최소 버퍼 크기(BS)의 정보를 전송하며, 인터럽트 서비스 루틴의 응답을 대기한다. 그리고 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 인터럽트 서비스 루틴으로부터 응답을 수신하면, 시스템 타이머의 현재 시간을 Tnow에 저장한다. The buffer control device 200 for reducing audio input processing delay calls the test mode, transmits information of the minimum buffer size (BS), which is the buffer size requested by the user, to the interrupt service routine, and waits for a response from the interrupt service routine . In addition, when the buffer control apparatus 200 for reducing audio input processing delay receives a response from the interrupt service routine, it stores the current time of the system timer in Tnow.

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 Tnow와 Tcur의 차이와 DMA BufferFill-up Count 값을 비교하고(S660), Tnow와 Tcur의 차이가 DMA BufferFill-up Count 값보다 작은 경우, 최소 버퍼 크기의 2배 크기로 DMA 버퍼를 할당한다(S670). The buffer control device 200 for reducing audio input processing delay compares the difference between Tnow and Tcur with the DMA BufferFill-up Count value (S660), and when the difference between Tnow and Tcur is smaller than the DMA BufferFill-up Count value, the minimum A DMA buffer is allocated with a size twice the buffer size (S670).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 Tnow-Tcur이 DMA BufferFill-up Count 값보다 작은 경우, DMA 버퍼의 크기를 사용자 버퍼의 크기인 최소 버퍼 크기(BS)의 2배로 설정하여 DMA 버퍼를 할당할 수 있다. When Tnow-Tcur is less than the DMA BufferFill-up Count value, the buffer control device 200 for reducing audio input processing delay sets the size of the DMA buffer to twice the minimum buffer size (BS), which is the size of the user buffer. You can allocate a buffer.

반면, Tnow와 Tcur의 차이가 DMA BufferFill-up Count 값보다 큰 경우, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 DMA 버퍼 크기를 연산하여 할당하고(S680), Tnow와 Tcur의 차이를 DMA BufferFill-up Count에 저장한다(S690). On the other hand, when the difference between Tnow and Tcur is greater than the DMA BufferFill-up Count value, the buffer control device 200 for reducing audio input processing delay calculates and allocates the DMA buffer size (S680), and calculates the difference between Tnow and Tcur. It is stored in the DMA BufferFill-up Count (S690).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 다음의 수학식 2와 같이 DMA 버퍼의 크기를 설정할 수 있다. The buffer control apparatus 200 for reducing audio input processing delay may set the size of the DMA buffer as shown in Equation 2 below.

[수학식 2][Equation 2]

Figure 112018019836707-pat00002
Figure 112018019836707-pat00002

여기서, 프레임 레이트는 시스템에 설정된 Hz 단위의 Frame Rate를 의미하고, 채널당 바이트 수는 Byte 단위이다. Here, the frame rate means a frame rate in Hz units set in the system, and the number of bytes per channel is in bytes.

도 6에서, 임의의 인터럽트를 발생시킨 후 인터럽트 서비스 루틴에서 DMA 버퍼와 사용자 버퍼를 할당하여 실제 복사에 소요되는 시간을 시험하고, 그 결과값을 DMA 버퍼의 내용을 사용자 버퍼로 복사하는데 소요되는 시간으로 활용할 수 있다. In FIG. 6, after generating an arbitrary interrupt, the time required for actual copying is tested by allocating a DMA buffer and a user buffer in the interrupt service routine, and the time taken to copy the result value of the DMA buffer to the user buffer can be used as

도 7은 본 발명의 일실시예에 따른 인터럽트 서비스 루틴의 동작 방법을 설명하기 위한 순서도이다. 7 is a flowchart illustrating an operation method of an interrupt service routine according to an embodiment of the present invention.

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 시스템 타이머의 현재 시간을 Ttemp에 저장한다(S710). The buffer control apparatus 200 for reducing audio input processing delay stores the current time of the system timer in Ttemp (S710).

그리고 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 현재 호출된 모드가 테스트 모드인지 여부를 판단하고(S720), 테스트 모드인 경우 테스트용 DMA 버퍼의 내용을 테스트용 사용자 버퍼에 저장한다(S730). And the buffer control device 200 for reducing the delay of audio input processing determines whether the currently called mode is the test mode (S720), and if it is the test mode, stores the contents of the test DMA buffer in the test user buffer ( S730).

DMA 버퍼와 사용자 버퍼 간 데이터 복사 시간을 측정하기 위한 테스트 모드인 경우, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 테스트용 DMA 버퍼의 내용을 테스트용 사용자 버퍼에 저장한 후, 도 7의 과정의 수행을 종료할 수 있다. In the test mode for measuring the data copy time between the DMA buffer and the user buffer, the buffer control device 200 for reducing audio input processing delay stores the contents of the DMA buffer for testing in the user buffer for testing, may end the execution of the process.

반면, 테스트 모드가 아닌 경우, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 인터럽트 수신에 응답하고(S740), 실행 플래그가 OFF인지 여부를 판단한다(S750). On the other hand, if it is not in the test mode, the buffer control apparatus 200 for reducing audio input processing delay responds to the interrupt reception (S740) and determines whether the execution flag is OFF (S750).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 DMA 버퍼의 1/2에 데이터가 저장되어 인터럽트가 발생된 것인 경우, 실행 플래그(RunFlag)를 확인하여, 사용자로부터 오디오 입력 요청을 수신하였는지 여부를 확인한다. When an interrupt is generated because data is stored in 1/2 of the DMA buffer, the buffer control device 200 for reducing audio input processing delay checks a run flag (RunFlag) to determine whether an audio input request has been received from the user. check whether

실행 플래그가 OFF인 경우, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 도 7의 인터럽트 서비스 루틴의 실행을 종료한다(S750 No).When the execution flag is OFF, the buffer control apparatus 200 for reducing audio input processing delay ends the execution of the interrupt service routine of FIG. 7 ( S750 No).

실행 플래그가 OFF인 경우, 즉 사용자의 오디오 입력 요청을 수신하지 않은 경우 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 도 7의 과정의 수행을 종료할 수 있다.When the execution flag is OFF, that is, when the user's audio input request is not received, the buffer control apparatus 200 for reducing audio input processing delay may end the process of FIG. 7 .

실행 플래그가 ON인 경우, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 데이터 요구 시점 값이 0보다 큰 지 여부를 판단하고(S760), 0 이하인 경우 DMA 버퍼 복사를 수행한다(S770). When the execution flag is ON, the buffer control apparatus 200 for reducing the delay of audio input processing determines whether the data request time value is greater than 0 (S760), and if it is less than 0, the DMA buffer copy is performed (S770) .

실행 플래그가 ON인 경우, 즉 사용자로부터 오디오 입력 요청을 수신한 경우 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 DMA 버퍼의 내용을 사용자 버퍼에 복사한다. 이때, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)가 DMA 버퍼의 내용을 사용자 버퍼로 복사하는 과정은 기존의 이중 버퍼링 방식과 동일하다. When the execution flag is ON, that is, when an audio input request is received from the user, the buffer control apparatus 200 for reducing audio input processing delay copies the contents of the DMA buffer to the user buffer. In this case, the process of the buffer control apparatus 200 for reducing the delay of audio input processing to copy the contents of the DMA buffer to the user buffer is the same as the existing double buffering method.

또한, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 해당 오디오 입력 요청이 최초 요청인지 여부를 확인하기 위하여, 데이터 요구 시점 값(User Request Time Saver)이 0보다 큰지 여부를 확인할 수 있다. Also, the buffer control apparatus 200 for reducing audio input processing delay may check whether a data request time value (User Request Time Saver) is greater than 0 in order to check whether the corresponding audio input request is an initial request.

오디오 입력 요청이 최초 요청이 아닌 경우 데이터 요구 시점 값은 0이다. 따라서, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 데이터 요구 시점 값이 0 이하인 경우, S770 단계를 수행할 수 있다. If the audio input request is not the first request, the data request time value is 0. Accordingly, the buffer control apparatus 200 for reducing audio input processing delay may perform step S770 when the data request time value is 0 or less.

데이터 요구 시점 값이 0보다 큰 경우, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 삭제할 바이트를 설정하고, 삭제할 바이트를 무음으로 처리한다(S780). When the data request time value is greater than 0, the buffer control apparatus 200 for reducing audio input processing delay sets the byte to be deleted and processes the byte to be deleted as silence (S780).

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 다음의 수학식 3과 같이 Tdur을 연산하고, 수학식 4와 같이 삭제할 바이트(Byte-to-delete)를 설정한다. The buffer control apparatus 200 for reducing audio input processing delay calculates Tdur as shown in Equation 3 below, and sets Byte-to-delete as shown in Equation 4 .

[수학식 3] [Equation 3]

Figure 112018019836707-pat00003
Figure 112018019836707-pat00003

[수학식 4] [Equation 4]

Byte-to-delete =

Figure 112018019836707-pat00004
Byte-to-delete =
Figure 112018019836707-pat00004

그리고 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 DMA 버퍼 복사 루틴을 호출하고(S790), 데이터 요구 시점 값을 재설정한다(S800). Then, the buffer control apparatus 200 for reducing audio input processing delay calls the DMA buffer copy routine (S790) and resets the data request time value (S800).

오디오 입력 요청이 최초 요청인 경우, 데이터 요구 시점 값(User Request Time Saver)의 값이 0이 아니다. 그리고 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 오디오 입력 요청을 수신한 시간이 기록된 데이터 요구 시점 값과, 데이터가 채워져 인터럽트 서비스 루틴이 호출된 시간을 이용하여, 사용자가 오디오 입력 요청을 전송하기 이전의 데이터를 삭제할 바이트로 설정한다. When the audio input request is the first request, the value of the data request time value (User Request Time Saver) is not 0. In addition, the buffer control apparatus 200 for reducing audio input processing delay uses a data request time value in which the time when an audio input request is received is recorded, and a time when the interrupt service routine is called when the data is filled, so that the user requests an audio input Set the data before transmission to the byte to be deleted.

또한, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 삭제할 바이트로 설정된 데이터를 무음을 나타내는 데이터로 채워 전송하고, 데이터 요구 시점 값을 0으로 재설정하여 이후 과정에서는 S780 단계 내지 S800 단계를 통한 초기 데이터 삭제 과정이 수행되지 않도록 할 수 있다. In addition, the buffer control apparatus 200 for reducing the delay of audio input processing fills the data set as the bytes to be deleted with data indicating silence, and resets the data request time value to 0. In the subsequent process, through steps S780 to S800 You can prevent the initial data deletion process from being performed.

도 8은 도 7의 S790 단계에서 DMA 버퍼 복사 루틴을 호출하는 과정을 설명하기 위한 순서도이다. 8 is a flowchart illustrating a process of calling the DMA buffer copy routine in step S790 of FIG. 7 .

도 8에서 제1 인터럽트는 이중 버퍼링 방식에서 DMA 버퍼의 시작 주소부터 DMA 버퍼 크기의 1/2만큼의 DMA 버퍼가 채워진 경우 발생하는 인터럽트를 의미하고, 제2 인터럽트는 DMA 버퍼의 1/2 지점을 시작 주소로 하여 DMA 버퍼 전체가 채워진 경우 발생하는 인터럽트를 의미한다. In FIG. 8 , the first interrupt means an interrupt that occurs when the DMA buffer from the start address of the DMA buffer to half the size of the DMA buffer is filled in the double buffering method, and the second interrupt refers to the half point of the DMA buffer. It means an interrupt that occurs when the entire DMA buffer is filled with the start address.

먼저, 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 제1 인터럽트인지 여부를 확인하고(S810), 제1 인터럽트인 경우 DMA 버퍼 시작 주소부터 삭제할 바이트를 무음으로 처리한다(S820). First, the buffer control apparatus 200 for reducing audio input processing delay checks whether it is the first interrupt (S810), and in case of the first interrupt, silences the byte to be deleted from the DMA buffer start address (S820).

그리고 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 DMA 버퍼 시작 주소부터 DMA 버퍼 크기의 1/2만큼의 데이터를 사용자 버퍼에 복사한다(S830). In addition, the buffer control apparatus 200 for reducing audio input processing delay copies half of the size of the DMA buffer from the DMA buffer start address to the user buffer (S830).

반면, 제1 인터럽트가 아닌 제2 인터럽트인 경우(S810 No), 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 DMA 버퍼 시작 주소 + DMA 버퍼 크기의 1/2 지점부터 삭제할 바이트를 무음으로 처리한다(S840). On the other hand, in the case of the second interrupt instead of the first interrupt (S810 No), the buffer control device 200 for reducing audio input processing delay silences the byte to be deleted from the DMA buffer start address + 1/2 of the DMA buffer size. process (S840).

그리고 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치(200)는 DMA 버퍼 시작 주소 + DMA 버퍼 크기의 1/2 지점부터 DMA 버퍼 크기의 1/2만큼의 데이터를 사용자 버퍼에 복사한다(S850). In addition, the buffer control apparatus 200 for reducing audio input processing delay copies data as much as 1/2 of the DMA buffer size from the DMA buffer start address + 1/2 of the DMA buffer size to the user buffer ( S850 ).

이때, S820 단계 및 S840 단계에서 삭제할 바이트를 무음으로 처리하는 방법은, 오디오 데이터를 변환하는 방식에 따라 상이하며, A-law, u-law 등의 변환알고리즘에서 지정한 무음값을 사용하여 삭제할 바이트를 무음으로 처리할 수 있다. At this time, the method of processing the byte to be deleted as silence in steps S820 and S840 differs depending on the method of converting audio data, and the byte to be deleted is selected using the silence value specified in the conversion algorithm such as A-law and u-law. It can be handled silently.

도 9은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.9 is a block diagram illustrating a computer system according to an embodiment of the present invention.

도 9을 참조하면, 본 발명의 실시예는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(900)에서 구현될 수 있다. 도 9에 도시된 바와 같이, 컴퓨터 시스템(900)은 버스(920)를 통하여 서로 통신하는 하나 이상의 프로세서(910), 메모리(930), 사용자 인터페이스 입력 장치(940), 사용자 인터페이스 출력 장치(950) 및 스토리지(960)를 포함할 수 있다. 또한, 컴퓨터 시스템(900)은 네트워크(980)에 연결되는 네트워크 인터페이스(970)를 더 포함할 수 있다. 프로세서(910)는 중앙 처리 장치 또는 메모리(930)나 스토리지(960)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(930) 및 스토리지(960)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(931)이나 RAM(932)을 포함할 수 있다.Referring to FIG. 9 , an embodiment of the present invention may be implemented in a computer system 900 such as a computer-readable recording medium. As shown in FIG. 9 , the computer system 900 includes one or more processors 910 , a memory 930 , a user interface input device 940 , and a user interface output device 950 that communicate with each other via a bus 920 . and storage 960 . In addition, computer system 900 may further include a network interface 970 coupled to network 980 . The processor 910 may be a central processing unit or a semiconductor device that executes processing instructions stored in the memory 930 or storage 960 . The memory 930 and the storage 960 may be various types of volatile or non-volatile storage media. For example, the memory may include ROM 931 or RAM 932 .

따라서, 본 발명의 실시예는 컴퓨터로 구현된 방법이나 컴퓨터에서 실행 가능한 명령어들이 기록된 비일시적인 컴퓨터에서 읽을 수 있는 매체로 구현될 수 있다. 컴퓨터에서 읽을 수 있는 명령어들이 프로세서에 의해서 수행될 때, 컴퓨터에서 읽을 수 있는 명령어들은 본 발명의 적어도 한 가지 태양에 따른 방법을 수행할 수 있다.Accordingly, the embodiment of the present invention may be implemented as a computer-implemented method or a non-transitory computer-readable medium in which computer-executable instructions are recorded. When the computer readable instructions are executed by a processor, the computer readable instructions are capable of performing a method according to at least one aspect of the present invention.

이상에서와 같이 본 발명에 따른 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다. As described above, in the buffer control apparatus and method for reducing audio input processing delay according to the present invention, the configuration and method of the above-described embodiments are not limitedly applicable, but various modifications may be made to the embodiments. All or part of each embodiment may be selectively combined and configured.

10: 아날로그 음파 20: 디지털 음파 데이터
110: A/D 변환기 120: DMA 버퍼
130: 사용자 버퍼
200: 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치
210: DMA 버퍼 할당부 220: A/D 변환기 실행부
230: DMA 버퍼 전달부 240: 사용자 버퍼 복사부
250: 알림 전송부 900: 컴퓨터 시스템
910: 프로세서 920: 버스
930: 메모리 931: 롬
932: 램 940: 사용자 인터페이스 입력 장치
950: 사용자 인터페이스 출력 장치
960: 스토리지 970: 네트워크 인터페이스
980: 네트워크
10: analog sound wave 20: digital sound wave data
110: A/D converter 120: DMA buffer
130: user buffer
200: Buffer control device for reducing audio input processing delay
210: DMA buffer allocation unit 220: A / D converter execution unit
230: DMA buffer transfer unit 240: user buffer copy unit
250: notification transmitter 900: computer system
910: processor 920: bus
930: memory 931: ROM
932: ram 940: user interface input device
950: user interface output device
960: storage 970: network interface
980: network

Claims (10)

오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치에 의해 수행되는 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 방법에 있어서,
사용자의 최소 버퍼 크기를 기반으로 DMA(Direct Memory Access) 버퍼를 할당하는 단계,
아날로그 음파를 디지털 음파 데이터로 변환하는 A/D 변환기를 초기화한 후, 상기 사용자로부터 오디오 입력 요청을 수신하기 이전에 상기 A/D 변환기의 동작을 실행시키는 단계,
변환된 상기 디지털 음파 데이터를 상기 DMA 버퍼로 전달하는 단계,
상기 오디오 입력 요청을 수신한 상태에서 상기 A/D 변환기의 인터럽트 수신 시, 상기 DMA 버퍼에 저장된 상기 디지털 음파 데이터를 사용자 버퍼로 복사하는 단계, 그리고
상기 오디오 입력 요청에 상응하는 프로세스로, 상기 사용자 버퍼가 가득 찼음을 알리는 버퍼 풀 알림을 전송하는 단계를 포함하고,
상기 A/D 변환기의 동작을 실행시키는 단계는,
상기 A/D 변환기에 상기 DMA 버퍼의 시작 주소 및 크기를 전달하는 단계;
상기 A/D 변환기에서 인터럽트 발생 시 인터럽트 서비스 루틴이 실행되도록, 운영체제에 인터럽트 서비스 루틴을 등록하는 단계; 그리고
상기 A/D 변환기의 동작을 실행시키고, 상기 사용자의 상기 오디오 입력 요청 수신을 대기하는 단계를 포함하는 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 방법.
A buffer control method for reducing audio input processing delay performed by a buffer control device for reducing audio input processing delay, the method comprising:
allocating a direct memory access (DMA) buffer based on the user's minimum buffer size;
After initializing an A/D converter that converts analog sound waves into digital sound wave data, executing an operation of the A/D converter before receiving an audio input request from the user;
transferring the converted digital sound wave data to the DMA buffer;
Copying the digital sound wave data stored in the DMA buffer to a user buffer upon reception of the interrupt of the A/D converter in a state in which the audio input request is received, and
sending, to a process corresponding to the audio input request, a buffer pool notification indicating that the user buffer is full;
The step of executing the operation of the A/D converter,
transmitting the start address and size of the DMA buffer to the A/D converter;
registering the interrupt service routine in the operating system so that the interrupt service routine is executed when an interrupt occurs in the A/D converter; and
and executing the operation of the A/D converter and waiting for the user to receive the audio input request.
삭제delete 청구항 1에 있어서,
상기 인터럽트 서비스 루틴은,
수신한 상기 오디오 입력 요청이 첫 번째 요청인 경우, 상기 첫 번째 요청에 상응하는 시점 이전의 상기 디지털 음파 데이터를 무음으로 처리한 후, 상기 DMA 버퍼의 상기 디지털 음파 데이터를 상기 사용자 버퍼로 복사하는 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 방법.
The method according to claim 1,
The interrupt service routine is
When the received audio input request is the first request, the digital sound wave data before the time corresponding to the first request is silenced, and then the digital sound wave data in the DMA buffer is copied to the user buffer. Buffer control method to reduce input processing delay.
청구항 3에 있어서,
상기 인터럽트 서비스 루틴은,
현재 시간, 상기 DMA 버퍼가 채워지는 시간 및 상기 오디오 입력 요청을 수신한 시간 중 적어도 어느 하나를 포함하는 시간 정보를 기반으로 무음으로 처리할 상기 디지털 음파 데이터를 설정하는 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 방법.
4. The method according to claim 3,
The interrupt service routine is
Buffer for reducing audio input processing delay for setting the digital sound wave data to be processed in silence based on time information including at least one of a current time, a time when the DMA buffer is filled, and a time when the audio input request is received control method.
청구항 1에 있어서,
상기 디지털 음파 데이터를 상기 DMA 버퍼로 전달하는 단계는,
인터럽트의 발생 빈도를 최소화하기 위하여, 상기 사용자 버퍼의 크기마다 상기 인터럽트를 발생시키는 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 방법.
The method according to claim 1,
The step of transferring the digital sound wave data to the DMA buffer comprises:
A buffer control method for reducing audio input processing delay in which the interrupt is generated for each size of the user buffer in order to minimize the frequency of occurrence of the interrupt.
사용자의 최소 버퍼 크기를 기반으로 DMA(Direct Memory Access) 버퍼를 할당하는 DMA 버퍼 할당부;
아날로그 음파를 디지털 음파 데이터로 변환하는 A/D 변환기를 초기화한 후, 상기 사용자로부터 오디오 입력 요청을 수신하기 이전에 상기 A/D 변환기의 동작을 실행시키는 A/D 변환기 실행부;
변환된 상기 디지털 음파 데이터를 상기 DMA 버퍼로 전달하는 DMA 버퍼 전달부;
상기 오디오 입력 요청을 수신한 상태에서 상기 A/D 변환기의 인터럽트 수신 시, 상기 DMA 버퍼에 저장된 상기 디지털 음파 데이터를 사용자 버퍼로 복사하는 사용자 버퍼 복사부; 그리고
상기 오디오 입력 요청에 상응하는 프로세스로, 상기 사용자 버퍼가 가득 찼음을 알리는 버퍼 풀 알림을 전송하는 알림 전송부를 포함하고,
상기 A/D 변환기 실행부는,
상기 A/D 변환기에 상기 DMA 버퍼의 시작 주소 및 크기를 전달하고,
상기 A/D 변환기에서 인터럽트 발생 시 인터럽트 서비스 루틴이 실행되도록, 운영체제에 인터럽트 서비스 루틴을 등록하며,
상기 A/D 변환기의 동작을 실행시키고,
상기 사용자의 상기 오디오 입력 요청 수신을 대기하는 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치.
a DMA buffer allocator for allocating a DMA (Direct Memory Access) buffer based on the user's minimum buffer size;
an A/D converter executing unit that initializes an A/D converter that converts analog sound waves into digital sound wave data, and then executes an operation of the A/D converter before receiving an audio input request from the user;
a DMA buffer transfer unit transferring the converted digital sound wave data to the DMA buffer;
a user buffer copy unit for copying the digital sound wave data stored in the DMA buffer to a user buffer upon reception of the interrupt of the A/D converter in a state in which the audio input request is received; and
A process corresponding to the audio input request, comprising a notification transmitter for transmitting a buffer pool notification indicating that the user buffer is full,
The A/D converter execution unit,
transmitting the start address and size of the DMA buffer to the A/D converter;
Register the interrupt service routine in the operating system so that the interrupt service routine is executed when an interrupt occurs in the A/D converter,
Execute the operation of the A/D converter,
A buffer control device for reducing an audio input processing delay waiting for the user to receive the audio input request.
삭제delete 청구항 6에 있어서,
상기 인터럽트 서비스 루틴은,
수신한 상기 오디오 입력 요청이 첫 번째 요청인 경우, 상기 첫 번째 요청에 상응하는 시점 이전의 상기 디지털 음파 데이터를 무음으로 처리한 후, 상기 DMA 버퍼의 상기 디지털 음파 데이터를 상기 사용자 버퍼로 복사하는 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치.
7. The method of claim 6,
The interrupt service routine is
When the received audio input request is the first request, the digital sound wave data before the time corresponding to the first request is silenced, and then the digital sound wave data in the DMA buffer is copied to the user buffer. Buffer control device to reduce input processing delay.
청구항 8에 있어서,
무음으로 처리할 상기 디지털 음파 데이터를 설정하기 위하여, 현재 시간, 상기 DMA 버퍼가 채워지는 시간 및 상기 오디오 입력 요청을 수신한 시간 중 적어도 어느 하나를 포함하는 시간 정보를 저장하는 데이터 요청 처리부를 더 포함하는 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치.
9. The method of claim 8,
In order to set the digital sound wave data to be processed as silence, a data request processing unit for storing time information including at least one of a current time, a time at which the DMA buffer is filled, and a time at which the audio input request is received, further comprising a data request processing unit Buffer control device for reducing delay in processing audio input.
청구항 6에 있어서,
상기 DMA 버퍼 전달부는,
인터럽트의 발생 빈도를 최소화하기 위하여, 상기 사용자 버퍼의 크기마다 상기 인터럽트를 발생시키는 오디오 입력 처리 지연 축소를 위한 버퍼 컨트롤 장치.
7. The method of claim 6,
The DMA buffer transfer unit,
A buffer control apparatus for reducing audio input processing delay for generating the interrupt for each size of the user buffer in order to minimize the frequency of occurrence of interrupts.
KR1020180023095A 2018-02-26 2018-02-26 Apparatus and method for buffer control to reduce audio input processing delay Active KR102411811B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180023095A KR102411811B1 (en) 2018-02-26 2018-02-26 Apparatus and method for buffer control to reduce audio input processing delay

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180023095A KR102411811B1 (en) 2018-02-26 2018-02-26 Apparatus and method for buffer control to reduce audio input processing delay

Publications (2)

Publication Number Publication Date
KR20190102569A KR20190102569A (en) 2019-09-04
KR102411811B1 true KR102411811B1 (en) 2022-06-23

Family

ID=67950465

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180023095A Active KR102411811B1 (en) 2018-02-26 2018-02-26 Apparatus and method for buffer control to reduce audio input processing delay

Country Status (1)

Country Link
KR (1) KR102411811B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077174A (en) * 2006-09-19 2008-04-03 Sony Computer Entertainment Inc Audio processor, input/output processor, and information processor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100490403B1 (en) * 2002-05-04 2005-05-17 삼성전자주식회사 Method for controlling buffering of audio stream and apparatus thereof
WO2010019750A1 (en) 2008-08-14 2010-02-18 Dolby Laboratories Licensing Corporation Audio signal transformatting
KR20120108564A (en) * 2011-03-24 2012-10-05 삼성전자주식회사 Data processing system, and method of operating the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077174A (en) * 2006-09-19 2008-04-03 Sony Computer Entertainment Inc Audio processor, input/output processor, and information processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
이경희, 정찬근, "Windows NT 환경하에서 오디오 입력 지연 축소화를 위한 버퍼의 최적화", 대한전자공학회 학술대회, 1996.11.*

Also Published As

Publication number Publication date
KR20190102569A (en) 2019-09-04

Similar Documents

Publication Publication Date Title
US7568057B2 (en) Method and apparatus for maintaining synchronization of audio in a computing system
US20210240650A1 (en) Methods and devices for extending usb 3.0-compliant communication over an extension medium
US20210109681A1 (en) Nvme-based data writing method, apparatus, and system
JP5527512B2 (en) Bus protocol conversion device and bus protocol conversion method
US7046628B2 (en) Apparatus and method for just-in-time transfer of transmit commands to a network interface
US20130132960A1 (en) Usb redirection for read transactions
WO2020015670A1 (en) File sending method, file receiving method and file transceiving apparatus
WO2015192685A1 (en) Data storage method and network interface card
US7975090B2 (en) Method for efficient I/O controller processor interconnect coupling supporting push-pull DMA read operations
US20110010417A1 (en) Data transfer system and data transfer method
JP6523707B2 (en) Memory subsystem that performs continuous reading from lap reading
CN108874310A (en) The read buffer method, apparatus and computer readable storage medium of distributed storage
US20230315675A1 (en) Techniques for deconflicting usb traffic in an extension environment
US9258834B2 (en) Method of mobile terminal internal communications
KR20120072134A (en) Apparatus and method for accelerating virtual desktop
KR102411811B1 (en) Apparatus and method for buffer control to reduce audio input processing delay
CN108419103B (en) A video transmission method and device
CN111858363A (en) Method, device, terminal and storage medium for identifying stack overflow
US6564280B1 (en) Communication controller configurability for optimal resource usage
JP2010198138A (en) Data transfer device, data transfer control method, data transfer control program, and recording medium
US12050544B2 (en) Predicting free buffer space in a USB extension environment
CN101442387B (en) Method and apparatus for processing back-pressure data
CN115914393A (en) Communication method, device, equipment and medium
KR100932925B1 (en) Direct memory access control device and its method for the transmission efficiency of MMO
CN113127222B (en) Data transmission method, device, equipment and medium

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20180226

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20201217

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20180226

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20210830

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20220329

PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20220617

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20220620

End annual number: 3

Start annual number: 1

PG1601 Publication of registration