刘品
学以致用---博主简介:专注语音、视频数字信号处理方面的研究以及算法在手机平台上面的移植和优化。涉及语音/音频编解码,语音增强,语音识别,语音音质客观评估,VOIP语音引擎 Qos算法模块和声音变速不变调和变调不变速等功能实现。熟悉ARM 各个系列的CPU,用ARMv4,ARMv5,ARMv6 and Cortex Neon 汇编优化相关算法代码,争取perforamance 最优。目前主要Windows mobile and Android platform上做相关speech/audio算法以及应用开发, HEVC 编解码器PC 和手机上的开发与应用。(交流Email:liupin.2008@gmail.com)

   最近碰到一多通道的PCM,几个主流的Player都不能发出声音,为了让自己的播放器能支持这个格式,所以研究了一下, 收集一资料转贴一下http://msdn.microsoft.com/zh-cn/windows/hardware/gg463006

KSDATAFORMAT_SUBTYPE_PCM:

采用 5.1 格式的 6 声道
以下WAVEFORMATPCMEX结构可以指定为解码器针对 5.1 扬声器布局生成音频流的输出结构。
  1. WAVEFORMATPCMEX     waveFormatPCMEx;
  2. waveFormatPCMEx.Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE;
  3. waveFormatPCMEx.Format.nChannels = 6;
  4. waveFormatPCMEx.Format.nSamplesPerSec = 48000L;
  5. waveFormatPCMEx.Format.nAvgBytesPerSec = 864000L; // Compute using nBlkAlign * nSamp/Sec 
  6. waveFormatPCMEx.Format.nBlockAlign = 18;
  7. waveFormatPCMEx.Format.wBitsPerSample = 24//Container has 3 bytes waveFormatPCMEx.Format.cbSize = 22;
  8. waveFormatPCMEx.wValidBitsPerSample = 20;  // Top 20 bits have data
  9. waveFormatPCMEx.dwChannelMask = KSAUDIO_SPEAKER_5POINT1;
  10.                              // SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |
  11.                              // SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY |
  12.                              // SPEAKER_BACK_LEFT  | SPEAKER_BACK_RIGHT
  13. waveFormatPCMEx.SubFormat =  KSDATAFORMAT_SUBTYPE_PCM;  // Specify PCM

三字节音频数据的两个声道按照以下方式放置到内存中,并且指向该内存的指针存储在WAVEHDR结构的lpData成员中。

字节 1 - 声道 1,左前,低等字节,只有顶部四个位为有效数据位
字节 2 - 声道 1,左前,中等字节,全部是有效数据
字节 3 - 声道 1,左前,高等字节,全部是有效数据
字节 4 - 声道 2,右前,低序位字节,顶部四个位为有效数据位
字节 5 - 声道 2,右前,中等字节,全部是有效数据
字节 6 - 声道 2,右前,高等字节,全部是有效数据
字节 7 - 声道 3,中前,低序位字节,只有顶部四个位为有效数据位
字节 8 - 声道 3,中前,中等字节,全部是有效数据
字节 9 - 声道 3,中前,高等字节,全部是有效数据
字节 10 - 声道 4,低频、低序位字节,顶部四个字节为有效数据位
字节 11 - 声道 4,低频,中等字节,全部是有效数据
字节 12 - 声道 4,低频、高等字节,全部是有效数据
字节 13 - 声道 5,左后,低序位字节,只有顶部四个位为有效数据位
字节 14 - 声道 5,右后,中等字节,全部是有效数据
字节 15 - 声道 5,左后,高等字节,全部是有效数据
字节 16 - 声道 6,右后,低序位字节,顶部四个位为有效数据位
字节 17 - 声道 6,右后,中等字节,全部是有效数据
字节 18 - 声道 6,右后,高等字节,全部是有效数据

字节 19 - 声道 1,左前,低等字节,顶部四个位为有效数据位,样本 2
字节 20 - 声道 1,左前,中等字节,全部是有效数据,样本 2 等

posted on 2011-06-28 10:58  liupin  阅读(2270)  评论(1)    收藏  举报

-->