[Bug 746661] audioconvert is slow on architectures without 64-bit integer divide (e.g. armv7)

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Mar 24 08:52:43 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=746661

Sebastian Dröge (slomo) <slomo at coaxion.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED
           Assignee|ilya.konstantinov at gmail.com |gstreamer-bugs at lists.freede
                   |                            |sktop.org
   Target Milestone|git master                  |1.5.1

--- Comment #12 from Sebastian Dröge (slomo) <slomo at coaxion.net> ---
commit 3dc3aa4e3b47341c199c6e7e2e8974b340031288
Author: Ilya Konstantinov <ilya.konstantinov at gmail.com>
Date:   Tue Mar 24 17:28:51 2015 +0200

    audioconvert: Eliminate unsigned quantizers

    audio_convert_convert unpacks to default format (signed) before calling
    quantize, and the unsigned variants were equivalent to signed anyway,
    so we just get rid of them.

commit 7b398701cf003d4346b4f58a4597d4bafe78c839
Author: Ilya Konstantinov <ilya.konstantinov at gmail.com>
Date:   Tue Mar 24 03:01:22 2015 +0200

    audioconvert: Avoid int division in quantization

    Since range size is always 2^n, we can simply use modulo (implemented
    with a bitmask).

    The previous implementation used 64-bit integer division, which is
    done in software on ARMv7. Although the divisor was constant, the
    division could not be transformed into "multiplication by magic number"
    since the dividend was 64-bit.

    The now-unused and not-so-fast gst_fast_random_(u)int32_range functions
    were removed.

    Also, implementing bug fixes:

    1) ADD_DITHER_TPDF_HF_I no longer discards bias.

    2) We change TPDF's noise range to be the same as RPDF's. Previously,
    RPDF's noise ranged:
      { bias - dither, bias + dither }
    while TPDF's noise ranged:
      { bias/2 - dither/2, bias/2 + dither/2 - 1 } +
      { bias/2 - dither/2, bias/2 + dither/2 - 1 } =
      { bias - dither, bias + dither - 2 }
    Now, both range:
      { bias - dither, bias + dither - 1 }

    https://bugzilla.gnome.org/show_bug.cgi?id=746661

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list