[Vorbis] Encoding using Fishsound + Vorbis = Strange "RoboCop" artifact

Tuomo Latto djv at iki.fi
Tue Sep 3 02:17:13 PDT 2013


On 02.09.2013 08:30, Bob Ingraham wrote:
>> I would check for any signed/unsigned mismatches and wrong data type sizes.
> 
> Thanks Tuomo - these are good thoughts. I will double-check this.

I seem to remember Java has signed bytes, etc., which can be really
annoying and a cause of endless frustration. I also don't think JNI
has strict typing, although I could be wrong.

> But since the same code produces acceptable Speex and FLAC files, wouldn't
> those Speex/FLAC files also be affected by signedness/data-size issues?

Maybe they use different data sizes?
I don't know the API in question, but many use generci (void) pointers
for input data and it's up to the caller to use the appropriate data type.

FLAC is lossless and not floating point, so it might not be affected.
Speex isn't floating point either and as a speech codec AFAIK does
strict band-pass filtering, so a lot of frequencies are cut anyway.

I also wouldn't be terribly surprised to find bytes in wrong order.
It could be palatable to listen to, but less so after psychoacoustic
processing.

> In Audacity, I was able to mute individual tracks, so I could isolate
> playback of one track, and the artifact was on every track.

What did the waveform look like up close when compared to the original?

> This is interesting, so the last Vorbis header page (not the BOS header,
> i'm guessing,)  has data packets in it? Or starts with a non-zero time
> offset?

You should check it yourself with a newer ogginfo.

> BTW, Streams #1 and #2 contain microphone captured input. Stream #3 and #4
> contain silence (on purpose,) in case anyone notices.

Do they still contain silence after encoding?


-- 
Tuomo


More information about the Vorbis mailing list