ippac: UnpackSideInfo Problem with Mono MP3s

ippac: UnpackSideInfo Problem with Mono MP3s

Im working on an MP3 decoder with IPP Audio Decoding functions. Through studying ISO 11172-3 I think side information in an MP3 is 17bytes (mono) or 32bytes (stereo) long.

My current test mp3 is mono coded (mode 3 - spec; 1 - intel frame header structure). But the ippsUnpackSideInfo_MP3 function increments the "BitStream" pointer always by 32 bytes.

What am I possibly doing wrong?

16 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Switching the mode flag from "1" to "3" fixed to ippUnpackSideInfo_MP3.
But now I dont know why ippsUnpackFrameHeader does not extract the right value for mode fromt he bitstream

Please make sure you have a valid MP3 stream and it is single channel audio. The ippsUnpackSideInfo_MP3 is simple function and was carefully tested, we did not detect any issues with it.

Regards,
Vladimir

Quoting - Vladimir Dudnik (Intel)
Please make sure you have a valid MP3 stream and it is single channel audio. The ippsUnpackSideInfo_MP3 is simple function and was carefully tested, we did not detect any issues with it.

Regards,
Vladimir

Hi Vladimir,

The stream is valid. Maybe I missinterpret the mode bits?

I work with IPP: Volume 1: Signal Processing (August 2008) Page 1262 where the "IppFrameHeader" structure is described. There it is not said which bits mean a certain mode.

I have also many other problem with MP3 decoding because you never know what the function expect. In the following pages documentation only says give a pointer of this kind. But it does not say, that the pointer has to point at an array of a certain size.

Can you help me to find a more detailed documentation, or sample code. My search was not successful. ( Im new to IPP ).

Best regards Helmut

Quoting - Vladimir Dudnik (Intel)
Please make sure you have a valid MP3 stream and it is single channel audio. The ippsUnpackSideInfo_MP3 is simple function and was carefully tested, we did not detect any issues with it.

Regards,
Vladimir

Hi Vladimir,

Upps, I missed one '='. Sorry.
But my inquierys for more detailed documentation still exist.

Best Regards Helmut

Hi Helmut,

could you please take a look at IPP samples? I think looking at working codemay help to understand better how to use IPP functions.

Regards,
Vladimir

Quoting - Vladimir Dudnik (Intel)
Hi Helmut,

could you please take a look at IPP samples? I think looking at working codemay help to understand better how to use IPP functions.

Regards,
Vladimir

Hi Vladimir,

I downloaded this http://software.intel.com/en-us/articles/intel-integrated-performance-pr...
Any other sources?

Best regards Helmut

Did you find audio-video-codecs sample in this sample package? It should contain several application which demonstrate use of IPP in media codecs

Vladimir

Quoting - Vladimir Dudnik (Intel)
Did you find audio-video-codecs sample in this sample package? It should contain several application which demonstrate use of IPP in media codecs

Vladimir

Hi Vladimir,

I found the the MP3 decoder code. Unfortunatly this implementation does not match with ippac-Lib.
It does also not fit to Intel Integrated Performance Primitives 6.0 Volume 1: Signal Processing
(http://www.intel.com/cd/software/products/asmo-na/eng/405958.htm)

To me the code in "simple application" seems to be are reimplementation. Please Correct me if Im wrong.

For example take mp3dec_layer3_fp.c there you have a function called: "mp3dec_Huffmancodebits"
This seems to be a new implemenation of what "ippsHuffmanDecode_MP3_1u32s" does.

Best regards Helmut

Helmut,

there are two implementations of MP3 codec in IPP. One is based on floating point and another one is fixed-point based. You are free to choose between those two. Note, the fixed-point variant was developed basically for XScale architecture which does not have FPU. On general Intel Architecture we recommend to use floating-point based implementation which is faster and provides better accuracy.

Regards,
Vladimir

Quoting - Vladimir Dudnik (Intel)

Helmut,

there are two implementations of MP3 codec in IPP. One is based on floating point and another one is fixed-point based. You are free to choose between those two. Note, the fixed-point variant was developed basically for XScale architecture which does not have FPU. On general Intel Architecture we recommend to use floating-point based implementation which is faster and provides better accuracy.

Regards,
Vladimir

Hi Vladimir,

Well, I understand the diffrence between both implementations. But that does not change the fact, that they both dont match the official IPP documentation. Please check my example form my last posting.

Best regards
Helmut

I think ippsHuffmanDecode_MP3_1u32s function perfectly match the description in official IPP documentation. You may check this with IPP reference manual, signal processing, chapter 10 - audio coding functions, page 1415.

All and every IPP function is documented in appropriate manuals. We do not documentinternal functions in IPP samples.

Regards,
Vladimir

Quoting - Vladimir Dudnik (Intel)

I think ippsHuffmanDecode_MP3_1u32s function perfectly match the description in official IPP documentation. You may check this with IPP reference manual, signal processing, chapter 10 - audio coding functions, page 1415.

All and every IPP function is documented in appropriate manuals. We do not documentinternal functions in IPP samples.

Regards,
Vladimir

Yes, ippsHuffmanDecode_MP3_1u32s is documented in page 1301 of the Signal Processing document (10-113)

But this function is never used in "simple player" example code.

Im still seeking for example code for all the function described in IPP: Volume 1: Signal Processing (August 2008) Chapter 10 Page 1296

Please take a look on quite old IPP 5.0 sample of integer MP3 decoder (attached). I did not check it with the latest version of IPP and we do not deliver it anymore. So you may need to adopt build scripts of this sample code

Regards,
Vladimir

Attachments: 

AttachmentSize
Downloadapplication/zip mp3decoder5.zip22.61 KB

Quoting - Vladimir Dudnik (Intel)

Please take a look on quite old IPP 5.0 sample of integer MP3 decoder (attached). I did not check it with the latest version of IPP and we do not deliver it anymore. So you may need to adopt build scripts of this sample code

Regards,
Vladimir

Hi Vladimir,

I just check the code for 2 minutes, but it seems to be a major step to slove my problems :-)

Best regards Helmut

You are welcome:)

Vladimir

Leave a Comment

Please sign in to add a comment. Not a member? Join today