- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
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?
Link Copied
15 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
But now I dont know why ippsUnpackFrameHeader does not extract the right value for mode fromt he bitstream
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Regards,
Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Regards,
Vladimir
Upps, I missed one '='. Sorry.
But my inquierys for more detailed documentation still exist.
Best Regards Helmut
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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-primitives-code-samples/#va
Any other sources?
Best regards Helmut
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You are welcome:)
Vladimir
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page