Community
cancel
Showing results for 
Search instead for 
Did you mean: 
harald85
Beginner
47 Views

G729A Codec in kernel mode

I try to implement the Speech COdecs from the Intel IPP 6 (Version 6.0.1.070). THerefore i use the USC. The GSM Codec works fine. But when i changed the codec from gsm to G729A i got an BLue Screen and mit debuggingtool shows me the error by the funtion "ippsMukC_Nr_16s" in the encoding function of the encg729.c. THen i tried to define NO_SCRATCH_MEMORY_USED but i also get an bluescreen during allocatin an LOCAL_ALIGN_ARRAY. Did somebody had the same problems and can help me?!

Thanks

Harald
0 Kudos
6 Replies
Vladimir_Dudnik
Employee
47 Views

The IPP codecs are high-level code, we did not design nor test it in OS kernel mode. We have separate sample which show how to use IPP functions in kernel mode, you may find it in advanced-usageippsdrv folder of IPP sample package.

Vladimir
harald85
Beginner
47 Views

Hallo

I looked to the examaples for driver with IPP, but i there is no example for use the Speech codecs in the kernel mode. I used an funclist.h file where all fuctions which i use from the ipp are listed. The GSM Codec works fine but when i change the Codec to G729 (from number 3 gsm to 18 g729) i got the bluescreen in the encoder and decoder function.

Did somebody ever used the codecs in the kernel mode?

Harald
Vladimir_Dudnik
Employee
47 Views

Harald,

we did not claim IPP speech codecs work in kernel mode. We do claim that IPP functions can be called in OS kernel mode. The speech codecs samplewas designed as user mode application, so to work in kernel mode you may need rewrite it.

Vladimir
harald85
Beginner
47 Views

I also have another Question. When I get 20 Byte in G729 Codec which means 20ms. Then I call the decode function twice. I start with the first 10 Byte then the other 10 Byte. I got back 160 Byte per 10 Byte input. Thist 160 Byte is the input to the USC_CvtToLaw function. Then I get 80 Byte. the second time I get also 80 Byte. This 160 Byte is then my message in Alaw or? Or must I send the two 160 Bytes buffers to the USC_CvtToLaw at the same time?

Harald
Vyacheslav_Baranniko
New Contributor II
47 Views

Quoting - harald85
I also have another Question. When I get 20 Byte in G729 Codec which means 20ms. Then I call the decode function twice. I start with the first 10 Byte then the other 10 Byte. I got back 160 Byte per 10 Byte input. Thist 160 Byte is the input to the USC_CvtToLaw function. Then I get 80 Byte. the second time I get also 80 Byte. This 160 Byte is then my message in Alaw or? Or must I send the two 160 Bytes buffers to the USC_CvtToLaw at the same time?

Harald

Hi Harald,
USC_CvtToLaw functionoptionally may convert16bit linear PCMafter decode toa-Law or mu-Law 8bit PCM depends on output PCM type desired (-alaw or -mulaw option in command line, default is linear PCM).
Now a few words reyour issue with speech in OS kernel mode. There are twooptions in IPP for G729 codec:floating point (IPP_G729I_FP and IPP_G729A_FP ) and fixed point (IPP_G729I and IPP_G729A)implementations:Blue screen may be caused by floating-point arithmetic in case you are using G729 FP codecs.See http://msdn.microsoft.com/en-us/library/aa489566.aspxfor example for how to use FP in WDM drivers.
harald85
Beginner
47 Views


I use the normal one and not the Floating point. I choose the normal g729 folder from the examples and not the g729fp. i can call the decode function without any error but when I call the decode function I get an error (no Blue Screen).

Harald