ac3/eac/eac+atmos编码同步帧参数概述

来源:互联网 发布:python中的编码问题 编辑:程序博客网 时间:2024/05/22 01:36

ac3 是杜比公司出的一种音频压缩格式,在影院级别的场所经常会用到,最大支持5.1升到。在编码中ac3的主要同步帧参数格式如

syncframe() 

      syncinfo(); 

      bsi() ; 

      for(blk=0, blk<6, blk++) 

      { 

            audblk(); 

      } 

      auxdata(); 

      errorcheck() ; 

} // end of syncframe

在之后杜比公司推出的e-ac-3格式,其中e-ac-3的解码器向上兼容ac-3 ,也就是支持e-ac-3的播放器可以播放ac-3的源。e-ac-3的同步帧格式与ac-3相同,两者不同的就在于bsi段中的bsid,bsid在1到9为ac-3编码,bsid在10到15为e-ac-3编码,其他的值:

则为未知编码。

在e-ac-3编码下有扩展属性为atmos。最大可支持到7个声道。其中拓展属性在文件中体现在一个emdf的段。emdf段在文件的

emdf{}
{
    emdf_sync{

syncword //16bit不是对齐的可能在任意位置的连续16bit 为0x5838

emdf_container_length //16bit

}
    emdf_container

{

                       emdf_version    //2bit

          if  emdf_version  >3 emdf_version addition //2bit    /

key_id//3bit

if key_id == 7 key_id addition //2bit/

FOR//emdf_payload 有若干个负载段

{

emdf_payload_id //5bit

if emdf_payload_id=0x1f emdf_payload_id addition //5bit /

        emdf_payload_config

{

smploffste //1bit

if smploffste == true smploffst11bit  + reserved1bit

   还有若干属性。。。。今天太晚哪了。有空再补上吧。

}

emdf_payload_size//8bit   根据payloadsize就能跳过本个payload段

根据emdf_payload_id字段可以判断附加属性

emdf_payload_id = 11  object_audio_metadata_payload()
                = 14: joc(); //atmos属性 

}
}

以上主要想说,e-ac-3的atmos等拓展属性与ac-3同步frame的头不是衔接的,需要根据emdf段的同步字先找到emdf段,然后根据以上结构找到对应的负载id,根据负载id可以判断是否是atmos类型。 如有交流可以加群610204312

0 0
原创粉丝点击