coding.c, to be sure about the changelist. You can go through the test to be sure the changes are tested. However, I don't intend to commi
t the test, as it would be a source of confusion and requires hack to iSAC to be able to run the test. It is basically a one-time test.
The part which not covered in this test is where we limit payload for super-wideband bit-stream. I'll add a test for that as well.
I kept format changes at minimum in all files except isac.c, which was in bad shape, and coding changes were minimum. I'm planning to uplo
ad following patches to this CL where I try to address formatting issues. But I don't intend to change variable names, for the moment.
The refactoring is not yet finished, so you would find part of the code which could be cleaned up, especially KLT transforms in entropy_co
ding.c
Review URL: https://webrtc-codereview.appspot.com/580004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2359 4adac7df-926f-26a2-2b94-8c16560cd09d
Description:
On ChromeOS/ARM, compiler enforces to check return result of a function.
Currently, we don't check return result of fwrite, it causes building errors.
The following files need to patch. The patch should be similar, before I patch all
of them, I will start with 2 files, please take a quick look, if the patch is OK,
I will continue and upload a new patch that covers all of them.
it to all of them.
Review URL: https://webrtc-codereview.appspot.com/566016
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2345 4adac7df-926f-26a2-2b94-8c16560cd09d
Note that,
(1) The main change is a new function PitchFilter() replacing a couple of common code blocks. Next step will be the assembly coding of this function in ARM.
(2) Resulted code is not bit exact with the original. The only reason is replacing two saturation blocks (lines 197 and 208) for the case of "type == 2" with the general case (line 147 and 159). The change makes the code more consistent, and I think the original code might just be a bug. I raised the issue in an email to Turaj and Bjorn last week.
Listening test might be needed. I will send the resulted files to Turaj for this purpose.
(3) I used Astyle to make the code more stylish, but didn't try extra effort to correct all the code style details. Local code style consistency was considered for new code. So this is not a full and final refactor project (will leave that to future refactoring).
Review URL: https://webrtc-codereview.appspot.com/573009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2344 4adac7df-926f-26a2-2b94-8c16560cd09d
Resolve coverity warnings.
14305.
The warning is not really valid. The 'decode' function should be called with a 'mode' variable, where inside the function it is assumed that mode is either zero or one. If mode is taking other values some varibles are used uninitialized. However, this is an internal function and it is always called with either ZERO or ONE. Therefore, the code operates correctly. I made small changes as I beleive it is a bit nicer way.
In ACM:
- Conditions on 'mode' is changed.
Tested with trybots.
BUG=None
TEST=None
Review URL: https://webrtc-codereview.appspot.com/564014
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2297 4adac7df-926f-26a2-2b94-8c16560cd09d
I have uploaded this patch for your review. I have done an extensive test to be sure that removing of tables does not create any problem.
The test file, is called test_lpc.c which requires a hack to standard iSAC. The test computes LPC coefficients, then encodes and decodes with old and new (size-reduced) tables. It compares the results is all steps. I have ran the test over large set of files, more then 51 hours of audio, and there was no error.
I tried to do no formatting so the review to be easier, but I know it can be a tricky CL. Hopefully, the test file helps you to be more confident on the CL.
Thanks,... Turaj
In this change list the LPC tables associated with mode 1 & 2 are remoded, and necessary cahnges are made to other files.
The only model allowed is model number 0. Therefore, this CL breaks compatibility with iSAC released prior to 2.4.3. To avoid changing the bit-stream, we still keep the model number in the bit-stream.
entropy_coding.c is cleaned up, especially encoding of LAR had KLT transform of LPC gains which are removed now.
Review URL: https://webrtc-codereview.appspot.com/548004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2186 4adac7df-926f-26a2-2b94-8c16560cd09d
In addition to our naming guidelines, this will cause these files to get parsed by Sonar, and to make searching/grepping the source using file extensions easier in the future.
BUG=
TEST=Compiling on Linux.
Review URL: http://webrtc-codereview.appspot.com/348005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1405 4adac7df-926f-26a2-2b94-8c16560cd09d
I found some issues in building ARMv5 with ICM. This CL includes fixes,
and a design change which now will exclude any NEON libraries unless
the build is for dynamic detection or for Neon specifically.
Review URL: http://webrtc-codereview.appspot.com/330021
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1335 4adac7df-926f-26a2-2b94-8c16560cd09d
architecture with intrinsics and assembly code. The total iSAC codec speech improved
about 3~5%.
Notes
(1) The Neon version after this optimization is not bit-exact with the generic
C version. The out quality, however, is not worse as verified by test vectors ouput,
and undertandably in theory (32bit x 32bit in Neon is more accurate than the approximation
C code in the generic version).
(2) In Android, a isac neon library will be built. Along with some new function structures,
it is partly for preparation of introducing a run time detection of Neon architecture soon.
Review URL: http://webrtc-codereview.appspot.com/268016
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1192 4adac7df-926f-26a2-2b94-8c16560cd09d
(1) For generic platforms, code was changed to remove the shifting within loops.
Basically, it's just change a loop from
for() {
sum += (a*b) >> scale;
}
to:
for() {
sum += (a*b);
}
sum >> scale;
Type int64_t is used for sum to make sure no information is not lost.
Performance is about the same as before the change. Bits are not exact,
although in theory the change should have preserved more information. The purpose
of this change is to make the generic code and ARM code bit exact, simpify the code,
while keep the speech quality at least not lower. (Some speech tests might be good.)
(2) For ARM platform, used assembly to optimize the performance. iSAC runs faster
with this change. (Reduced run time of an offline file test from 10.16ms to 8.81ms)
Review URL: http://webrtc-codereview.appspot.com/267014
git-svn-id: http://webrtc.googlecode.com/svn/trunk@972 4adac7df-926f-26a2-2b94-8c16560cd09d
According to project structure discussed with Andrew. We want to flatten out the hierarchy and minimize the number of GYP files.
No changes at all are being made in the source files; they are just moved.
The only modified files are the GYP file and Android.mk
Kevin: I updated relative paths in Android.mk so please verify it is correct, since I don't know how to build that.
Review URL: http://webrtc-codereview.appspot.com/256006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@894 4adac7df-926f-26a2-2b94-8c16560cd09d