Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merging aoTuV encoder improvements #102

Open
FabioPedretti opened this issue Nov 1, 2023 · 4 comments
Open

Merging aoTuV encoder improvements #102

FabioPedretti opened this issue Nov 1, 2023 · 4 comments

Comments

@FabioPedretti
Copy link

It would be nice if you could merge aoTuV Encoder improvements inside xiph libvorbis.

aoTuV was extensively tested at hydrogenaud.io and found to be the best vorbis encoder.

@tdaede
Copy link
Contributor

tdaede commented Nov 2, 2023

A considerable portion of the original aoTuV improvements have already been merged.

This would need some research about what remaining improvements (if any) are still outstanding.

@FabioPedretti
Copy link
Author

FabioPedretti commented Nov 2, 2023

According to the CHANGES file, previous aoTuV improvements were merged in 1.1.0 in 2004:

libvorbis 1.1.0 (2004-09-22) -- "Xiph.Org libVorbis I 20040629"

  • merges tuning improvements from Aoyumi's aoTuV with fixups

with a fixup in:

libvorbis 1.3.2 (2010-11-01) -- "Xiph.Org libVorbis I 20101101 (Schaufenugget)"

  • vorbisenc: Back out an [old] AoTuV HF weighting that was
    first enabled in 1.3.0; there are a few samples where I
    really don't like the effect it causes.

Since then in aoTuV there were the improvements listed in https://raw.githubusercontent.com/AO-Yumi/vorbis_aotuv/master/aoTuV_technical.txt

@FabioPedretti
Copy link
Author

A considerable portion of the original aoTuV improvements have already been merged.

This would need some research about what remaining improvements (if any) are still outstanding.

For a easier review of the changes I opened pull request #103.

@sergeevabc
Copy link

sergeevabc commented Apr 17, 2024

Recent message from HydrogenAudio thread says:

There is something wrong about Lancer mod 2021-05-11 hosted on RareWares. It is unable to correctly encode WAV when its sampling rate is less or equal to 11025 Hz: SSE2 version outputs silence, SSE3 outputs heavily distorted sound. All other Vorbis encoders (original, Aotuv, Venc aka Aotuv 2021-03-20, FFMPEG's libvorbis) do the job as expected.

Samples: Lancer vs other Vorbis.zip

$ mediainfo in.wav

General
Complete name                            : in.wav
Format                                   : Wave
Format settings                          : PcmWaveformat
File size                                : 361 KiB
Duration                                 : 16 s 780 ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 176 kb/s

Audio
Format                                   : PCM
Format settings                          : Little / Signed
Codec ID                                 : 1
Duration                                 : 16 s 780 ms
Bit rate mode                            : Constant
Bit rate                                 : 176.4 kb/s
Channel(s)                               : 1 channel
Sampling rate                            : 11.025 kHz
Bit depth                                : 16 bits
Stream size                              : 361 KiB (100%)


$ oggenc2 in.wav -q 1 -o out.ogg


  Bytes    Filename                 
 -------- --------------------------
  46 825   out.original.generic.ogg 
  51 187   out.original.x64.ogg     
  51 301   out.ffmpeg7.x64.ogg      
  51 301   out.ffmpeg7.x86.ogg      
  52 409   out.aotuv.generic.ogg    
  55 291   out.lancer.sse3.ogg      
  56 562   out.aotuv.x64.ogg        
  56 655   out.lancer.sse2.ogg      
  56 670   out.venc.x64.ogg         
  56 674   out.venc.x86.ogg

Question is if Aotuv patches are mostly imported, then what explains the difference in the size of the results?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants