Введение
На данный момент существует несколько вполне актуальных вариантов кодера OGG Vorbis. Большинство из них можно найти на RareWares. Фактически это: OggEnc, основанный на оригинальном libvorbis последней версии, модификация aoTuV (в двух вариантах — референсный venc.exe и oggenc2.exe от RareWares), а также aoTuV с элементами кода LancerMod (также от RareWares).
Кроме того существуют различные варианты компиляций вышеуказанных версий, т. е. выполненные с включением различных оптимизаций.
Чтобы внести ясность, я решил провести сравнительное тестирование всех вышеперечисленных вариантов кодера — главным образом чтобы сравнить скорость их работы на относительно новом оборудовании с поддержкой всех необходимых оптимизаций.
Оборудование и ПО
Конфигурация компьютера:
CPU: Intel Core i3 530, 2933 MHz (x86, x86-64, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2)
RAM: 2x2Gb DDR3-1333
HDD: Hitachi SATA-II 500GB 16 MB cache
OS: Windows 7 x64 Ultimate
В тесте участвовали следующие кодеры:
Oggenc2.87 using libVorbis v1.3.4 (11.05.2014): Generic (MSVC9), P4 Only (ICL 14.0.2), x64 Only (ICL 14.0.2)
aoTuV Beta6.03 unified with libVorbis v1.3.4 (11.05.2014)
Oggenc2.87 using aoTuVb6.03 based on libvorbis 1.3.3 (04.05.2011): Generic (MSVC9), P4 Only (ICL 11.1), x64 Only (ICL 11.1)
Oggenc2.87 using aoTuVb6.03 Lancer Builds based on libvorbis 1.3.3 (04.07.2012): SSE Optimized, SSE2 Optimized, SSE3 Optimized, SSE3 Optimized, x64 Only, SSE2 Optimized (Older OS) — ICL 12.1 compiles
Кодирование производилось через командную строку, с параметром -q6 (~192 кбит/с). В качестве материала для кодирования использовался WAV образ альбома Armin van Buuren — Mirage.
Результаты
1.1 Generic:
Opening with wav module: WAV file reader
Encoding "1.wav" to
"1.ogg"
at quality 6,00
[100,0%] [ 0m00s remaining] \|
Done encoding file "1.ogg"
File length: 79m 42,0s
Elapsed time: 3m 08,0s
Rate: 25,4409
Average bitrate: 192,8 kb/s
1.2 P4
Opening with wav module: WAV file reader
Encoding "1.wav" to
"1.ogg"
at quality 6,00
[100,0%] [ 0m00s remaining] \|
Done encoding file "1.ogg"
File length: 79m 42,0s
Elapsed time: 2m 03,0s
Rate: 38,8853
Average bitrate: 192,8 kb/s
1.3 x64
Opening with wav module: WAV file reader
Encoding "1.wav" to
"1.ogg"
at quality 6,00
[100,0%] [ 0m00s remaining] \|
Done encoding file "1.ogg"
File length: 79m 42,0s
Elapsed time: 1m 45,0s
Rate: 45,5514
Average bitrate: 192,8 kb/s
2. aoTuV 6.03b
2.1 Generic
Opening with wav module: WAV file reader
Encoding "1.wav" to
"1.ogg"
at quality 6,00
[100,0%] [ 0m00s remaining] /|
Done encoding file "1.ogg"
File length: 79m 42,0s
Elapsed time: 3m 23,0s
Rate: 23,5611
Average bitrate: 201,1 kb/s
2.2 P4
Opening with wav module: WAV file reader
Encoding "1.wav" to
"1.ogg"
at quality 6,00
[100,0%] [ 0m00s remaining] /|
Done encoding file "1.ogg"
File length: 79m 42,0s
Elapsed time: 2m 17,0s
Rate: 34,9116
Average bitrate: 201,1 kb/s
2.3 x64
Opening with wav module: WAV file reader
Encoding "1.wav" to
"1.ogg"
at quality 6,00
[100,0%] [ 0m00s remaining] /|
Done encoding file "1.ogg"
File length: 79m 42,0s
Elapsed time: 1m 58,0s
Rate: 40,5330
Average bitrate: 201,1 kb/s
3. aoTuV lancer
3.1 SSE
Opening with wav module: WAV file reader
Encoding "1.wav" to
"1.ogg"
at quality 6,00
[ 99,9%] [ 0m00s remaining] /
Done encoding file "1.ogg"
File length: 79m 42,0s
Elapsed time: 2m 01,0s
Rate: 39,5280
Average bitrate: 201,1 kb/s
3.2 SSE2
Opening with wav module: WAV file reader
Encoding "1.wav" to
"1.ogg"
at quality 6,00
[ 99,9%] [ 0m00s remaining] /
Done encoding file "1.ogg"
File length: 79m 42,0s
Elapsed time: 1m 52,0s
Rate: 42,7044
Average bitrate: 201,1 kb/s
3.3 SSE2 old
Opening with wav module: WAV file reader
Encoding "1.wav" to
"1.ogg"
at quality 6,00
[ 99,9%] [ 0m00s remaining] /
Done encoding file "1.ogg"
File length: 79m 42,0s
Elapsed time: 1m 34,0s
Rate: 50,8818
Average bitrate: 201,1 kb/s
3.4 SSE3
Opening with wav module: WAV file reader
Encoding "1.wav" to
"1.ogg"
at quality 6,00
[ 99,9%] [ 0m00s remaining] /
Done encoding file "1.ogg"
File length: 79m 42,0s
Elapsed time: 1m 52,0s
Rate: 42,744
Average bitrate: 201,1 kb/s
3.5 x64
Opening with wav module: WAV file reader
Encoding "1.wav" to
"1.ogg"
at quality 6,00
[ 99,9%] [ 0m00s remaining] /
Done encoding file "1.ogg"
File length: 79m 42,0s
Elapsed time: 1m 22,0s
Rate: 58,3280
Average bitrate: 201,1 kb/s
4. aoTuV venc
aoTuV Beta 6.03 (2014) - OggVorbis Encoder (c) 2003-2014 Aoyumi
Output file : "1.ogg"
Stream info.: 2ch/44.1kHz/16bit(int) -> 2ch/44.1kHz/32bit(float)
Quality 6 (nominal bitrate : 192kbps)
Processing...Done.
[Report of the encoded file]
play time : 4782.893 sec.
encode time : 209.942 sec. (x22.782)
stream bitrate : 201.09 kbps
bit reduction : 1 / 7.0
Таблица результатов
Кодер |
Версия |
Скорость |
Битрейт |
libvorbis 1.3.4 |
Generic |
25,4x |
192,8 kbps |
P4 and higher |
38,9x |
192,8 kbps |
|
x64 |
45,6x |
192,8 kbps |
|
aoTuV 6.03b (Oggenc) |
Generic |
23,6x |
201,1 kbps |
P4 and higher |
34,9x |
201,1 kbps |
|
x64 |
40,5x |
201,1 kbps |
|
aoTuV6.03b Lancer (Oggenc) |
SSE |
39,5x |
201,1 kbps |
SSE2 |
42,7x |
201,1 kbps |
|
SSE2 (older OS) |
50,9x |
201,1 kbps |
|
SSE3 |
42,7x |
201,1 kbps |
|
x64 |
58,3x |
201,1 kbps |
|
aoTuV 6.03b 2014 (venc) |
win32 |
22,8x |
201,1 kbps |
Выводы
В целом версии от RareWares оказались значительно быстрее референсной версии aoTuV. aoTuV версии Oggenc несколько медленнее стандартной libvosrbis, однако в комплексе с оптимизациями LancerMod они показывают наивысшую скорость.
Отдельно надо отметить странность с SSE2 и SSE3 версиями Oggenc LancerMod. Кодеры SSE2 и SSE3 оказались идентичными, бит-в-бит, причем версия SSE2 (Older OS) значительно обгоняет их по скорости. Возможно, автор ошибся при компиляции версии SSE3, а возможно, что SSE2 old — это и есть SSE3. Так или иначе, для использования на 32-битных ОС я рекомендую именно aoTuV aoTuV LancerMod SSE2 (older OS).
Для x64 ОС выбор очевиден — aoTuV LancerMod x64.
Что касается более новой версии libvorbis 1.3.4 — надо сказать, что никаких функциональных изменений в ней не произошло, разница лишь в том, что общий размер кода уменьшился на 25%. Так что версии Oggenc aoTuV на основе libvorbis 1.3.3 остаются актуальными и рекомендованными.
И на всякий случай: различий в качестве кодирования между различными реализациями кода aoTuV — нет. От оригинального же libvorbis он отличается некоторыми оптимизациями качества, главным образом касающимися низких битрейтов (<96 кбит/с).
Информация от спонсора
HANDY-MEN: ремонт сотовых телефонов и ноутбуков. Ремонт телефонов Nokia — здесь Вы можете ознакомиться с расценками для самых популярных моделей. Послегарантийный ремонт, гарантия качества на все работы.