Friday, November 14, 2014

BSID 9 and 10 not in Dolby AC3 specification


AC3 specification is defined and owned by Dolby. Dolby provides AC3 SDKs for commercial use. However, the open source community has some open source AC3 codec and extends the AC3 codec by adding BSID 9 and 10, which leads to the creation of non-compliant bitstreams according to Dolby AC3 specification. Commercial Dolby AC3 decoder will not support those non-compliant streams from open source community.  

Below are some details about BSID equal to 9 and 10 in AC3 from open source community,  

“AC3/BSID9 and AC3/BSID10 (DolbyNet) :
The ac3 frame header has, similar to the mpeg-audio header a version field. Normal ac3 is defined as bitstream id 8 (5 Bits, numbers are 0-15). Everything below 8 is still compatible with all decoders that handle 8 correctly. Everything higher are additions that break decoder compatibility.
For the samplerates 24kHz (00); 22,05kHz (01) and 16kHz (10) the BSID is 9
For the samplerates 12kHz (00); 11,025kHz (01) and 8kHz (10) the BSID is 10”

Wednesday, November 12, 2014

Simple, Main and Advance Profiles in SMPTE VC-1 specification


The three profiles, simple, main and advanced profiles in SMPTE VC-1 specification actually act as two coding formats. One coding format is for simple and main profiles, and the other coding format is for advance profile.  

There are lots of differences between simple and main profiles, and advanced profile.  

1.       The picture layer bitstream synatxes are different between simple and main profiles, and advanced profiles.

2.      In the advanced profile, the sequence-related metadata is part of the video data bitstream. Instead, in the simple and main profiles, the sequence-related metadata shall be communicated to the decoder by the transport layer or other means out-of-band.

3.      Interlace coding is only supported in advanced profile, but not in simple and main profiles.

4.       Slices are only supported in advanced profile, but not in simple and main profiles.

5.       In the advanced profile, pictures and slices shall be byte-aligned and carried in a BDU. Each new picture or a slice is detected via start-codes as defined in Annex E. In the simple and main profiles, for each coded picture, the pointer to the coded bitstream and its size shall be communicated to the decoder by the Transport Layer.

6.      Simple and main profiles has certain assumptions made regarding the display environment (e.g. square pixel aspect ratio). Advanced profile adds extensive in-band metadata support and allows for optimized experiences on a wide range of display devices. That is, Annex I about display metadata is only for advanced profile. 

In fact, when VC-1 bitstream is stored in ASF file format, the fourcc is ‘WMV3’ for simple and main profiles, but ‘WVC1’ for advanced profile, which indicates SMPTE VC-1 actually has two coding formats again.