Skip to content

Brute-force QOA/SEA encoder ETDAW #79

Description

@BlobCodes

About

I've built a brute-force QOA/SEA encoder, which can be used to create high-quality QOA-encoded files, although very slowly.
The encoder implements the 1-, 2- and 3-bit versions of the QOA codec, although the QOA file format is supported rather poorly.

Since the encoder repeatedly brute-forces the best encoding within a given lookahead, the encoding can take multiple minutes/hours/... depending on the lookahead (scales exponentially).

The encoder is included in this repo: https://gitlab.com/BlobCodes/etdaw

The program architecture wasn't designed to be a QOA encoder, but a playground for creating entirely new codecs instead.
That's why the program may be a bit unintuitive to use right now or deliberately misses some QOA-specific optimizations.

Example (QOA 3.2 bits)

This screenshot shows spectrograms of the encoded outputs qoaconv and the brute-force encoder (using --quality 6 --metric RMS --format chunked-qoa) produce, showing that the brute-force encoder's output has noticably less noise in the higher frequencies.

The audio sample used was "Unknown Mortal Orchestra - Hunnybee".

Image

Example: #69 (QOA 3.2 bits)

This encoder could be used to fix cases where qoaconv doesn't produce good/usable results.

For example, here is the audio sample from #69 encoded with the brute-force encoder (-m rms -f chunked-qoa -q 10):

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions