2012-11-26 4 views
7

핵심 오디오의 패킷 손실 은폐를 수행하는 기본 알고리즘을 만들려고합니다. 누락 된 데이터를 침묵으로 대체하기 만하면됩니다. 코어 오디오를 학습하는 책에서 저자는 무손실 PCM에서 0은 침묵을 의미한다고 말합니다. VBR (즉, 압축 된 데이터)을 재생하는지 궁금 해서요. 제로도 침묵으로 충분합니까? 기존 코드에서코어 오디오 : PCM 오디오에 대해서만 무음과 동일합니까?

.. 나는 오디오 큐에 0을 연결하면 .. 갑자기 걸립니다 (즉, 더 이상 오디오 큐 콜백 .. 데이터를 소비하는이 확보)하고 내가 왜

+0

가장 많이 사용되는 압축 형식의 경우 누락 된 데이터를 교체하는 것입니다. 압축 해제 후 침묵을 향한 램프로 말하는 것이 유일한 문제는 아닙니다. (재) 드롭 아웃 후에도 압축 된 데이터 스트림과 동기화하는 것은 큰 문제입니다. 어디서나 디코딩을 시작하고 데이터를 이해할 수는 없습니다. – hotpaw2

답변

3

을 궁금하네요 PCM은 원시 코드 샘플입니다. 모든 0 (샘플에 서명 된 데이터를 사용할 때)은 실제로 침묵입니다. 사실, 모든 값은 무음이지만 필터링하지 않으면 DC 오프셋으로 인해 앰프 및/또는 스피커가 손상 될 수 있습니다.

손실 코덱으로 압축하면 그냥 침묵을 추가하는 것이 사소한 것이 아닌 디지털 형식을 입력하십시오. ZIP 파일에 데이터를 추가하여 파일 끝에 null 바이트를 추가하는 것을 고려하십시오. 임의로 ZIP 파일에 삽입하는 것만 큼 간단하지 않습니다.

압축 파일에 무음을 추가하려면 적절한 코덱을 사용하여 무음을 추가해야합니다. 그렇다면 비트 스트림에 맞춰야합니다. 이것은 사소한 것이 아닙니다. 일반적으로 스트림은 프레임별로 분리되지만 일부 형식으로는 해당 프레임을 분할 할 수도 없습니다. MP3 및 AAC는 이전 프레임의 사용되지 않은 데이터를 나중에 더 복잡한 프레임을 인코딩하는 데 사용할 수있는 비트 저장소를 사용하므로 파일을 매우 쉽게 분리 할 수 ​​있습니다.

+0

PCM으로 압축 된 데이터 형식 (예 : MP3 또는 AAC)을 변환하면 어떻게됩니까? * 다음으로 0의 형태로 무음을 추가하십시오. 직선적 인 조작이어야합니다. – abbood

+0

맞습니다. 재 압축을 원할 경우 오디오의 품질이 떨어질 수 있습니다. – Brad

+0

re-compressing은 필요하지 않습니다 .. b/c 나는 압축을 풀고 자동 파트를 삽입 한 직후에 음악을 재생할 것입니다 .. 내 유일한 걱정은 지연입니다. 내 응용 프로그램은 실시간입니다 : 휴대 전화는 음악을 다른 휴대 전화에 브로드 캐스트하여 오디오 패킷을 가져와 동기화로 재생해야합니다. 압축 해제 시간이 일정하지 않은 경우 처음부터 상수 버퍼링 시간 만 추가됩니다. 만약 변수가 .. 그럼 난 곤경에있어 – abbood

관련 문제