오디오 재생이 다른 작업을 중지하지 않는 이유는 무엇입니까?


10

프로세서가 한 번에 하나만 실행할 수 있다면 어떻게 음악을 지속적으로 재생할 수 있고 다른 작업을 계속 실행할 수 있습니까?

인터럽트 시스템을 이해하고 있지만 CPU가 연속적으로 오디오를 처리하여 불안하거나 지연되지 않도록해야합니까?

기본 구현에 대해 묻고 있습니다.이 질문은 멀티 스레딩과 관련이 있습니까? 1 코어, 1 스레드 CPU는이 멀티 태스킹을 어떻게 달성 할 수 있습니까?


"Jittery"는 이해할 수 있지만 "laggy"는 어떤 소리가 나는가? (PS, iPod nano의 FM 튜너 출력은 동일한 방송국에 동조 된 아날로그 FM 라디오의 출력이 약 1/4 초 지연되지만 iPod 만들을 경우 지연이 들리지 않습니다.)
솔로몬 느린

@jameslarge 비디오 게임을한다면, 1/4 초의 소리 지연이 눈에 띄게 나타납니다. 화상 회의와 유사합니다.
Derek Elkins가 SE를

3
Ariel의 답변에서 알 수 있듯이이 작업을 처리하기 위해 다소 오래된 CPU에도 많은 처리 능력이 있습니다. 그러나 나는이 작업이 오디오 코 프로세서에 의해 주로 처리되어 왔으며 계속 처리되고 있다고 확신합니다. CPU의 작업은 특히 모든 데이터를 미리 사용할 수있는 음악의 경우 CPU에 의한 "연속적인"처리가 필요하지 않은 오디오 코 프로세서 버퍼를 간단히 채우는 것입니다.
Derek Elkins가 SE를

DMAC, 사운드 카드 처리 장치 및 버퍼를 선택했습니다.
Evil

답변:


9

CPU는 고정 된 클록 주기로 작동하기 때문에 실제로 연속적인 것은 없으며, 이산화가 충분히 민감하기 때문에 그렇게 만 보인다.

CPU 클럭 속도가 라고 가정하십시오 . CPU가 클럭주기 중 1 개만 오디오 처리 에 전념 하고 관련없는 작업에 나머지 클럭주기를 사용하는 경우, 모든 "오디오 처리 작업"사이 에 지연이 발생 합니다. CPU에 의해 (단순히, 우리는 CPU가 하나의 클록 사이클을 사용하여이 처리를 수행한다고 가정한다).1GHz=109Hztt109s

지연 (인간은 20Hz ~ 20Khz 범위의 주파수를들을 수 있으므로 사람의 청각은 그러한 지연에 민감하지 않습니다)을 허용 한 다음 가 필요합니다 . CPU는 지연을 유지하면서 동시에 더 많은 작업을 처리 할 수 ​​있습니다 .105st<104104105s


8

40 년 전, CPU가 스피커를 직접 제어하는 ​​컴퓨터가 있었을 것입니다. 그 시간은 오래 전에 끝났습니다.

기본 사운드 카드가있는 컴퓨터가있을 수 있습니다. 이러한 사운드 카드에는 스테레오 오디오 샘플을위한 버퍼가 있으며, 버퍼를 채울 수 있고, 출력 기능이 시작되며, 사운드 카드는 CPU가 아무 것도 할 필요없이 버퍼의 샘플에서 오디오를 생성하기 시작합니다. 모든 CPU는 버퍼가 다 떨어지기 전에 더 많은 오디오 샘플로 버퍼를 채우면됩니다. 1 메가 바이트 버퍼가있는 경우 CD 품질의 250,000 스테레오 샘플은 약 6 초입니다. 따라서 몇 초마다 CPU는 이러한 버퍼를 다시 채워야합니다.

실제로 컴퓨터에는 훨씬 더 발전된 것이 있습니다. 원칙적으로 동일하지만 버퍼는 mp3 또는 aac 형식의 사운드로 직접 채워질 수 있으며 사운드 카드는이 데이터를 자체적으로 스테레오 샘플로 디코딩합니다. 음량, 음질 개선, 피치 또는 속도 변경, 서라운드 사운드 생성 등 모든 종류의 다양한 효과를 생성하도록 프로그래밍 할 수 있습니다.

CPU는 종종 사운드 버퍼를 채우는 것만으로 많은 일을하지 않습니다. 나머지는 다른 것에 의해 이루어집니다. 물론 "사운드 카드"라고 말하면, 사운드 카드에서 칩으로, 다양한 기능을 가진 거대한 칩에서 트랜지스터의 작은 조각으로 줄었습니다.

이러한 카드 제조업체 중 하나 는 시작 지점으로 https://en.wikipedia.org/wiki/Wolfson_Microelectronics참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.