• Claudio Freire's avatar
    AAC encoder: refactor to resynchronize MIPS port · 8df9bf8e
    Claudio Freire authored
    This patch refactors the AAC coders to reuse code
    between the MIPS port and the regular, portable C code.
    There were two main functions that had to use
    hand-optimized versions of quantization code:
     - search_for_quantizers_twoloop
     - codebook_trellis_rate
    
    Those two were split into their own template header
    files so they can be inlined inside both the MIPS port
    and the generic code. In each context, they'll link
    to their specialized implementations, and thus be
    optimized by the compiler.
    
    This approach I believe is better than maintaining
    several copies of each function. As past experience has
    proven, having to keep those in sync was error prone.
    In this way, they will remain in sync by default.
    
    Also, an implementation of the dequantized output
    argument for the optimized quantize_and_encode
    functions is included in the patch. While the current
    implementation of search_for_pred still isn't using
    it, future iterations of main prediction probably will.
    It should not imply any measurable performance hit while
    not being used.
    8df9bf8e
aaccoder.c 31.5 KB