Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Cross sweep through popular lossy encoders (Read 4124 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Cross sweep through popular lossy encoders

I was testing resamplers, and thought to try sweep on popular encoders. It turned out interesting to me, and I made batch skeleton for that purpose

It is more/less known and I'm aware of ABX tests for testing lossy encoders, but if spectrogram can't tell much about lossy encoder quality it does not produce false results also - beauty is in the eye of the beholder  Also we are not sensible on linear scale as it's shown below

So this is nothing serious, it's more colorful fun then distilling new attributes or conclusions:

original test file: [a href="http://i.imgur.com/KSX0t.jpg" target="_blank"]

Cross sweep through popular lossy encoders

Reply #1
You're doing something terribly wrong, either clipping or using horrible resampling or something else, because when I the same test with LAME and oggenc2 I get nice clean spectrums without all that aliasing yours show.

Cross sweep through popular lossy encoders

Reply #2
File is created with following procedure (uses Python/SciPy/NumPy):

Code: [Select]
import numpy as np
from scipy.signal import chirp

from scikits.audiolab import Format, Sndfile

t = np.linspace(0, 10, 441001)

x = chirp(t[::2], f0=5, f1=22000, t1=10, method='linear')
y = chirp(t[1::2], f0=22000, f1=5, t1=10, method='linear')

w = np.vstack((x[:-1],y)).ravel([-1])

f = Sndfile('foo.wav', 'w', Format('wav'), 1, 44100)
f.write_frames(w)
f.close()


If you can't make it, I uploaded it here: http://www.box.net/shared/grn439ux5j

Cross sweep through popular lossy encoders

Reply #3
As I suspected, it's a clipping issue. Lower the signal a tad and you'll find the results much different.

Cross sweep through popular lossy encoders

Reply #4
What clipping? Couple of samples?
I lowered signal, so none is clipping and quick tested only libvorbis -q 5 - it's same picture.

Spectrogram properties:
FFT block: 1024
window: hanning
colormap: spectral

Cross sweep through popular lossy encoders

Reply #5
Vorbis 1.3.2 -q 4:


Lame 3.98.4 -V 5:


Musepack 1.30 -q 4:


(I encoded these files myself btw)

Cross sweep through popular lossy encoders

Reply #6
You can tune Audition spectrogram I guess

I told characteristics of my screenshots, which a output from matplotlib function
Here is default sox spectrogram output for same files as posted by lvqcl:

libvorbis 1.3.1 -q 4 (oggdropXPd)


lame 3.98.4 -V 5 (lamedropXPd3)


mpc 1.30 -q 4

Cross sweep through popular lossy encoders

Reply #7
It seems that CEP/Au decoder produces 'better result' then foobar/oggdec/oggdropXPd decoders

For others as is

Cross sweep through popular lossy encoders

Reply #8
You're still doing something very wrong.

Here's a link to a file with a 16 bit, 44100 Hz wav made in Audacity and Vorbis -q4 and LAME -V5 conversions done with Foobar2K:

Code: [Select]
http://www.mediafire.com/file/278oaaln7m20ljt/sweep_samples.zip


And a screenshot from Audacity:


Cross sweep through popular lossy encoders

Reply #9
It seems that CEP/Au decoder produces 'better result' then foobar/oggdec/oggdropXPd decoders

MP3/MPC/OGG were decoded back to WAV with foobar2000 1.1.6

Cross sweep through popular lossy encoders

Reply #10

You must be kidding showing with your Audacity spectrogram 

Quote
MP3/MPC/OGG were decoded back to WAV with foobar2000 1.1.6

Did you encode original file from upload link, of you processed it before encoding

To avoid confusion I uploaded both encoded and decoded files: http://www.box.net/shared/ft7z26jeio

Cross sweep through popular lossy encoders

Reply #11
Ah, so Audacity and Audition aren't good enough for you, you'll only accept SoX spectrograms?

Original wav:



And Vorbis:


Cross sweep through popular lossy encoders

Reply #12
Quote
Did you encode original file from upload link

No, I generated such signal myself. Now I downloaded your file. According to foobar2000 its peak value is: 0.999969 (and its max. intersample over is ~1.52).

After encoding this file to MP3/MPC/OGG and decoding back to 32-bit float WAV with fb2k:

Vorbis: peak value = 1.3943
MP3: peak value = 1.2922
MPC:  peak value = 1.5367

A lot of clipping there.

Cross sweep through popular lossy encoders

Reply #13
That's it then
I failed on clipping

Sorry for my BS thread, and so many faulty spectrograms

Cross sweep through popular lossy encoders

Reply #14
Lotsof pretty, pretty lossy codec pictures again! N i c e

Cross sweep through popular lossy encoders

Reply #15
According to foobar2000 its peak value is: 0.999969 (and its max. intersample over is ~1.52).

If I understand correctly, this is the maximum value of the reconstructed, continuous waveform?

 

Cross sweep through popular lossy encoders

Reply #16
This is the peak value of 16x upsampled signal, actually.