Commit Graph

15 Commits

Author SHA1 Message Date
Martin Storsjo 9285c096fe Revert "Use __builtin_clz instead of default implementation of fixnormz on GCC"
This reverts commit e036dbc8eb.

Upstream took __builtin_clz in use (in the new header
libFDK/include/x86/clz_x86.h, together with an alternative
implementation for MSVC), so this change can be dropped to
minimize the differences.
2012-11-01 11:30:58 +02:00
Martin Storsjo 54dfe1ec69 Merge remote-tracking branch 'aosp/jb-mr1-release' into master
Conflicts:
	libAACenc/src/band_nrg.cpp
	libAACenc/src/grp_data.cpp
	libSBRenc/src/env_est.cpp
2012-11-01 11:08:03 +02:00
Jean-Michel Trivi 6ab36997af Bug 7170947 Update AAC codec
From Fraunhofer:
* AAC Decoder

   - Stick to the written MPEG standard instead of the MPEG reference software
     in terms of reference level normalization. Always set the program reference
     level equal to the target level. This disables level normalization using a
     default level for streams without embedded metadata.
     Modified file(s):
        libAACdec\src\aacdec_drc.cpp

   - Fix downmix channel assignment when using a WAV output channel ordering.
     Modified file(s):
        libPCMutils\src\pcmutils_lib.cpp

   - Retain signal accuracy and prevent LSB alteration when no level correction
     needs to be done.
     Modified file(s):
        libAACdec\src\aacdec_drc.h
        libAACdec\src\aacdec_drc.cpp
        libSBRdec\src\sbrdecoder.cpp
        libSBRdec\src\sbr_dec.cpp
        libSBRdec\src\sbrdec_drc.cpp

   - Align metadata processing with reference implementation.
     Modified file(s):
        libAACdec\src\aacdec_drc.h
        libAACdec\src\aacdecoder.cpp

* AAC-Encoder

   - Prevent potential overflow in energy calculation after TNS processing.
     Modified file(s):
       libAACenc\src\band_nrg.cpp

   - Added saturation for number of relevant lines which are used in pe
     calculation.
     Modified file(s):
       libAACenc\src\line_pe.cpp

   - Removed obsolete files.
     Deleded file(s):
       libAACenc\src\tns_param.h
       libAACenc\src\tns_param.cpp

* FDK-Library

   - Added x86 Count Leading Zeros intrinsic.
     Modified file(s):
        libFDK\include\clz.h
     Added file(s):
        libFDK\include\x86\clz_x86.h

   - Fixed compilation for MIPS GCC-4.4 and higher.
     Modified file(s):
        libFDK\include\mips\cplx_mul.h
        libFDK\include\mips\fixmul_mips.h

Change-Id: I4be65f07f88d412224c7fddc3f054e8f451176cc
2012-10-02 10:46:47 -07:00
Martin Storsjo e79b172ba6 Revert "Do schur_div with a direct 64 bit division instead of a loop on x86"
This reverts commit 923f3e95f3.

The optimized version differed from the original in a few cases
(in some cases where the return value turned out to be negative
while the original implementation returned a positive value),
so revert it for now until it has been analyzed completely.
2012-09-14 11:10:29 +03:00
Keun young Park 1043598349 fix mips build by reverting files back
- MIPS still needs the work-around

Change-Id: If68b2028bd2779ada79020bb333ec8817abe9429
2012-09-11 17:28:46 -07:00
Jakub Stachowski 923f3e95f3 Do schur_div with a direct 64 bit division instead of a loop on x86
This speeds up HE-AACv2 encoding from 3.85 s to 3.42 s on a Core i7.
2012-09-09 22:18:09 +03:00
Jean-Michel Trivi 381d69840a Bug fixes in AAC decoder, AAC encoder, FDK library
Latest code drop from Fraunhofer:

* AAC-Decoder

   - Expanded AAC-LD/ELD decoder TNS max band tables to avoid wrong data
     access for sampling rates <22kHz and >48kHz.
     Modified file(s):
        libAACdec\src\aacdec_tns.cpp
        libAACdec\src\aac_rom.h
        libAACdec\src\aac_rom.cpp

  - Fixed ELD synthesis QMF filterbank scaling for downsampled SBR.
    Modified file(s):
        libFDK\src\qmf.cpp

* AAC-Encoder

  - Fixed bit rate limiting for lower limit as introduced in the Delivery 2012-05-11.
    Modified file(s):
        libAACenc\include\aacenc_lib.h
        libAACenc\src\aacenc.h
        libAACenc\src\aacenc.cpp
        libSBRenc\src\sbr_rom.h
        libSBRenc\src\sbr_rom.cpp

  - Allow negative prediction gain as meaning that there is no coding gain.
    Make use of scaleValueSaturate in gauss window calculation.
    Modified file(s):
        libAACenc\src\aacenc_tns.cpp

  - Added energy saturation to prevent overflow in short blocks.
    Modified file(s):
        libAACenc\src\grp_data.cpp

  - Perform scalefactor adaption in case quantized lines are out of valid range.
    Modified file(s):
        libAACenc\src\quantize.cpp

  - Interrupt quantization loop when no spectral data is available.
    Adjustments in bitreservoir adaption.
    Modified file(s):
        libAACenc\src\qc_main.cpp

  - Indroduced dynamic scaling in none missing harmonic energy lowering compensation.
    Modified file(s):
        libSBRenc\src\env_est.cpp

* FDK-Library

  - Fixed saturation for negative values in scaleValueSaturate.
    Modified file(s):
        libFDK\include\scale.h

Change-Id: If830ea65caef6b5554281e4b7a77a8b2e08825ce
2012-09-09 11:52:09 -07:00
Martin Storsjo 50b1de17ac Merge remote-tracking branch 'aosp/master' 2012-09-05 11:32:25 +03:00
Jakub Stachowski e036dbc8eb Use __builtin_clz instead of default implementation of fixnormz on GCC
The library contains architecture specific versions of the clz functions
for arm and mips, but the fallback C version for other architectures is
pretty slow.

By using __builtin_clz on GCC (available since GCC 3.4), we get a
significant (20-40 %) speedup of the total running time on x86.

Speed difference: 5.1 s instead of 8.6 s for AAC-LC 128 kbit/s and
3.8 s instead of 4.9 s for HE-AACv2 32 kbit/s, on an i7.
2012-08-14 23:48:55 +03:00
Raghu Gandham 50d9a4cb1e GCC 4.4 and later cannot handle h constructs. Fix to replace the assembly constructs.
Change-Id: I47509c20ee32f04ce42105563d2d4013910da531
2012-08-09 18:57:46 -07:00
The Android Open Source Project 2228e36059 Snapshot 2bda038c16
Change-Id: If584e579464f28b97d50e51fc76ba654a5536c54
2012-07-11 10:15:24 -07:00
Dave Burke 2bda038c16 Add NOTICE file. Rework make file so it appears in settings.
Change-Id: I9d9ab17121e2db58f8a4ba4b40e14cab629b1a7e
2012-06-12 10:34:26 -07:00
Dave Burke 18a4af02f9 Added license boilerplate to all source files.
Change-Id: I42a702487e6db4953dca0027710ea4fe266052fd
Also:
 - Removed dead code in several source files.
 - Minor changes in comments.
 - No functional changes. No changes in executed code.
 - Added documentation PDFs.
2012-06-11 20:07:04 -07:00
Dave Burke 698b536f3b Update to 2012_05_11 version.
Fixes:
- Don't throw error for invalid bitrate but limit to functional value
- More robust ASC parsing
- More robust handling of corrupt bitstreams
- Handle multiple raw access units

Change-Id: Ib49fe2545ff4185fe924126da702fe84ac5c2d87
2012-05-12 13:47:46 -07:00
Dave Burke 9bf37cc971 Fraunhofer AAC codec.
License boilerplate update to follow.

Change-Id: I2810460c11a58b6d148d84673cc031f3685e79b5
2012-04-17 23:04:43 -07:00