Ru-Board.club
← Вернуться в раздел «Программы»

» Koepi's XViD codec

Автор: Vladins
Дата сообщения: 31.05.2010 18:36
С lumimasking разобрался:
Для версии 1,2,2 пишем -lumimasking, а для версии 1,3,127 пишем -masking 1 (или 2)

Для максимального сжатия использую такие параметры кодирования (битрейт просто для примера):

xvid_encraw.exe -pass1 "1.log" -qtype 1 -full1pass -vhqmode 4 -nopacked -framerate 30.000 -bvhq -noclosed_gop -kboost 1 -kreduction 1 -progress 2 -imin 3 -pmin 3 -bmin 3 -oimprove 100 -odegrade 100 -threads 1 -i "1.avs" -o NUL
xvid_encraw.exe -pass1 "2.log" -pass2 "1.log" -bitrate 2000 -qtype 1 -full1pass -vhqmode 4 -nopacked -framerate 30.000 -bvhq -noclosed_gop -kboost 1 -kreduction 1 -progress 2 -imin 3 -pmin 3 -bmin 3 -oimprove 100 -odegrade 100 -threads 1 -i "1.avs" -o NUL
xvid_encraw.exe -pass2 "2.log" -bitrate 2000 -qtype 1 -vhqmode 4 -nopacked -framerate 30.000 -bvhq -noclosed_gop -kboost 1 -kreduction 1 -progress 2 -imin 3 -pmin 3 -bmin 3 -oimprove 100 -odegrade 100 -threads 1 -i "1.avs" -avi "1.avi"
pause

Qpel и GMC не включаю для совместимости с стационарными плеерами.

Есть ли возможность еще повысить сжатие? (про матрицу H263 знаю, шумоподавление в ависинте использую)
Автор: Ironcast
Дата сообщения: 31.05.2010 18:46
матрицы есть и другие, но говорят есть проблемы на плеерах (квадраты). degraimedian+фильтр компенсации+ff3d (последнее сомнительну по битрейту)
По сборникам фильтров сам те же результаты эффективности получил
Автор: Gideon Vi
Дата сообщения: 01.06.2010 02:46
Vladins, Вы бы хоть глянули, дает ли Вам изврат с псевдо трехпроходным кодированием что-нибудь.

Цитата:
говорят есть проблемы на плеерах (квадраты)

в большинстве простеньких бибикеек стоят слабые цпу, которые не могут проживать кастомные матрицы и дают дикие артефакты по градиенту на темных облостях. С теми же LG того же ценового уровня таких проблем нет.
Автор: V0lt
Дата сообщения: 01.06.2010 05:47
Gideon Vi

Цитата:
в большинстве простеньких бибикеек стоят слабые цпу

Помниться чел писал, что Pioneer DV-600AV тупит на "Mpeg custom" (и на хоботе об это в FAQ упоминается). Зато более древний Pioneer DV-575 без проблем такое переваривает. Тут возможно от версии чипа зависит или программисты прошивок совсем обленились.
Автор: Gideon Vi
Дата сообщения: 01.06.2010 15:16

Цитата:
Тут возможно от версии чипа зависит или программисты прошивок совсем обленились.

да в общем и то, и другое. Я со своей стороны на кастомные матрицы забил, ибо качество - это таки кондовая mpeg 2
Автор: Valery_Sh
Дата сообщения: 01.06.2010 23:53
Gideon Vi
а что думаете насчёт "full quality first pass" ? стоит оно того ?
Автор: Gideon Vi
Дата сообщения: 02.06.2010 02:53

Цитата:
а что думаете насчёт "full quality first pass" ? стоит оно того ?

стоит
Автор: Valery_Sh
Дата сообщения: 02.06.2010 07:48
Gideon Vi
спсб., значит мне не показалось.
Автор: Vladins
Дата сообщения: 02.06.2010 17:35
Gideon Vi
При трехпроходном кодировании квантизеры на последнем проходе получаются немного меньше чем на втором проходе, т.е. маленький прирост качества все-таки есть. Теперь бы еще с компенсацией движения разобраться... и можно догнать x264))


Добавлено:
Стоит ли переходить с 1.2.2 на 1.3.127?
Автор: Valery_Sh
Дата сообщения: 02.06.2010 19:42
Vladins
так они и в 2-х проходном получаются меньше, если активирована "full quality first pass"
насколько помню, оригинальный XviD, 3-х проходное не поддерживал. поправьте, если не так.
Автор: Gideon Vi
Дата сообщения: 03.06.2010 01:38

Цитата:
При трехпроходном кодировании квантизеры на последнем проходе получаются немного меньше чем на втором проходе

ssim и psnr можно?

Цитата:
насколько помню, оригинальный XviD, 3-х проходное не поддерживал. поправьте, если не так

все так
Автор: Ironcast
Дата сообщения: 03.06.2010 18:10
Блин, посмотрел на разницу между включенным и отключенным full-qvuality first pass и удивился: в первом файл занимал 1,5 гига, во втором аж 1,3 Что-то многовато. Не ожидал такого.
Автор: Valery_Sh
Дата сообщения: 03.06.2010 19:11
Ironcast
в каком разрешении видео ? длина фильма ? матрица ?
ограничивали минимальный квантизер для I и P кадров ?

не знаю, правильно ли, но я ограничиваю -2 (для P иногда и 3, если материал "так себе")
для того, чтобы квантизеры на В-кадрах не были слишком большими, в случае минимального для Р=3, в настройках B-VOPs есть quantizer ratio, quantizer offset

когда-то пытался "постичь" "оптимальные" значения этих величин, но сломал моск, читая тематические форумы. поэтому, особо не мудрствуя, выставляю оба в 1.00 если нужно
Автор: Ironcast
Дата сообщения: 03.06.2010 19:33

Цитата:
в каком разрешении видео ? длина фильма ? матрица ?
ограничивали минимальный квантизер для I и P кадров ?

То был рип биатлонной гонки 2004 года. Кванты тоже ограничиваю 2 704x384 около 70 минут

В виртуалдаб xvid есть хорошая опция показывать все значения квантов, когда кодируются.
Из неё я понял, что в принципе не особо это ограничение и работает: кодек сам выбирает довольно логичные значения, но лучше это самому увидеть
Автор: Valery_Sh
Дата сообщения: 03.06.2010 19:47
это со звуком размер ?
ограничивая "минимальный", вы не ограничиваете "верхний".

может появиться искушение ограничить "верх". но, как я понял, люди, разбирающиеся в потрохах XviD, делать это не рекомендуют. категорически. лучше битрейту накинуть для второго прохода. иначе, будут длинные "последовательности" кадров с большим квантом
если я правильно понял суть.
Автор: Ironcast
Дата сообщения: 03.06.2010 21:54

Цитата:
это со звуком размер ?
ограничивая "минимальный", вы не ограничиваете "верхний".
Нет. Ну это с квантом 2 (= первому проходу)--без звука, отличного качества (ха, ещё с фильтрами) под 2900
С биатлоном и футболом это обычное дело. Тем не менее вполне можно смело рубить пополам
и итогом размер под 700 метров делать. Кстати, я и до 400-500 спокойно делал: нормально, но на 450 где-то начинается потеря цвета. Квадратов так и не добился
Цитата:
может появиться искушение ограничить "верх". но, как я понял, люди, разбирающиеся в потрохах XviD


Флудерасты, скорее. Так во в окошке даба, который показывал кванты при кодировании
ясно было видно что почём. Так вот при 500 метрах ни один квант не был ни то что равен 3, но и 4 редкость. Так что зачем ограничивать? Так же и верх: я ставил 7 и только ниже 500
это иногда было задействовано. Но там я не помню как называются, но ставил чередуясь. Через кадр, какие-то надо ограничивать, какие-то нет B, P , I не помню, а теории не знаю, знаю что правильно (1 и 3 в окошке программы) Но , повторяю, толку в этом большого не увидел.

Автор: Valery_Sh
Дата сообщения: 03.06.2010 23:22
со "спортом" дела не имел, потому и спрашивал подробности.
у вас исходник был MPEG2 и при кодировании вы открывали непосредственно VOB ?
если да, то может быть здесь сЦобака порылась. если сравнить картинку с той, что даёт DGIndex, то станет ясно почему. (если открывать в дубе скрипт, то можно выставить в нём "Fast recompress" в меню "Video".)

насчёт ограничения "сверху".... говорили об этом вполне адекватные авторы на mediatory.ru, и почему-то я им верю (хотя за давностью, имён не припомню)

дело не в самих величинах квантизеров, а в том, как они распределяются в "последовательностях" - пара-тройка кадров будет незаметна, а вот длинная с большими квантами будет выглядеть некрасиво.
вполне логично обосновано.

помотреть квантизеры можно в любом готовом файле, если в ffdshowVideoDecoder, в секции "визуализация" выбрать "квантизеры" и разрешить саму визуализацию
Автор: Gideon Vi
Дата сообщения: 04.06.2010 02:56

Цитата:
Блин, посмотрел на  разницу между включенным и отключенным full-qvuality first pass и удивился: в первом файл занимал 1,5 гига, во втором аж 1,3 Что-то многовато. Не ожидал такого.

ня, а можно настройки второго прохода?
Автор: Ironcast
Дата сообщения: 04.06.2010 14:13

Цитата:
(если открывать в дубе скрипт, то можно выставить в нём "Fast recompress" в меню "Video".)
Я так и делаю

Цитата:
дело не в самих величинах квантизеров, а в том, как они распределяются в "последовательностях" - пара-тройка кадров будет незаметна, а вот длинная с большими квантами будет выглядеть некрасиво.вполне логично обосновано.


Ну смотря насколько ограничивать. Я в данном эксперименте 7 ограничил. от 2-до 7 (я уже и забыл что значит через один, а это именно от каждого пункта минимум 2 максимум 7 ) Логично, то оно логично, но только в том случае если это ограничение будет реально задействоваться. И причём многократно (например для попадания в размер кодер часто определяет 9-11,). Тогда конечно будет тот прикол что и кодирование с минимальным квантом ограничения, кстати я проверял--так оно и вышло. То есть толку от таких 2 проходов--ноль Но когда очень редкие кванты вылазят за это число, то возможно это только в плюс. В моём случае это практически не потребовалось.

Вот толк от снижения 20 % заметен и в квантах.
Автор: Valery_Sh
Дата сообщения: 04.06.2010 19:39
дык этта... а как же у вас с такими настройками получился такой размерчик ?
действительно, привели бы настройки второго прохода

насчёт остального : тут ить дело привычки и "веры".
где-то так.
Автор: Ironcast
Дата сообщения: 04.06.2010 22:19

Цитата:
а как же у вас с такими настройками получился такой размерчик ?
действительно, привели бы настройки второго прохода
1500 это размер первого прохода. Он с максимальным квантом, то есть 2. А с 7 где-то 350 мегов будет

Автор: Gideon Vi
Дата сообщения: 05.06.2010 03:21

Цитата:
дык этта... а как же у вас с такими настройками получился такой размерчик ?

да ни как.
Автор: Vladins
Дата сообщения: 05.06.2010 21:51
Измерил PSNR и SSIM - трехпроходное кодирование ничего не дает, цифры одинаковы как при 2 так и при 3-х проходах. Опция -masking 2 дает меньшие квантизеры, значит можно переходить на 1.3.127. А теперь главный вопрос: как выполнить пакетное кодирование большого количества файлов с одинаковыми параметрами в xvid_encraw.exe? Раньше для кажого файла писал параметры в .bat файл, но это сильно долго.
Автор: Gideon Vi
Дата сообщения: 06.06.2010 03:26
а требуется именно консоль? Свежие версии VirtualDub в сочетании с vfw версией сабжа позволяют делать пакетное кодирование с одинаковыми настройками
Автор: Valery_Sh
Дата сообщения: 06.06.2010 04:50

Цитата:
Он с максимальным квантом, то есть 2
это как раз есть минимальный.

Gideon Vi
у меня старая версия 1.2.1 final от 04.12.08.
на какую менять и есть ли смысл ?
спсб.
Автор: Gideon Vi
Дата сообщения: 06.06.2010 15:35

Цитата:
на какую менять и есть ли смысл ?

на эту. Правда, с учетом использования моих настроек
Автор: Valery_Sh
Дата сообщения: 06.06.2010 17:41
данке шон. попробум.
Автор: Vladins
Дата сообщения: 06.06.2010 18:38
Gideon Vi С консоли возвращаться на vfw как-то не хочется. Есть такая инструкция, может кто-нибудь подскажет как это сделать:

Create a batch file by first creating a text document and changing the extension to bat.

Parameter list - 2pass
%1 - avisynth script
%2 - output file name without mp4 extension
%3 - video bitrate
%4 - audio bitrate
%5 - minimum quantizer - 17 should be used for 320x240 resolution, 19 for 640x480 or higher.
%6 - delete stats file after encoding, 0=off, 1=on
%7 - delete elementary streams after muxing, 0/blank=off, 1=on

Parameter list - 1pass
%1 - avisynth script
%2 - output file name without mp4 extension
%3 - audio bitrate
%4 - quantizer - 17 should be used for 320x240 resolution, 19 for 640x480 or higher.
%5 - delete elementary streams after muxing, 0/blank=off, 1=on

Parameter list - xvid
%1 - avisynth script
%2 - output file name without avi extension
%3 - video bitrate
%4 - audio bitrate
%5 - delete stats file, 0=off, 1=on
%6 - delete elementary video stream, 0=off, 1=on


runatlow.bat - This will run encode.bat in low priority mode like MeGUI does. It will let you run other things while the encoding is taking place without computer lag, though doing other things will slow down the encoding.
start /LOW /B encode.bat

encode.bat - The main batch file. The call lines are how you set up your jobs. Everything below that you'll change maybe once. Look at the parameter list to see what the values correspond to. As you can see, starting from the left, %1 refers to script_mq.avs and you keep going to the right, ending with %7 referring to the value 1 which means the elementary streams will be deleted after being multiplexed.

You need to configure the lines with x264 and xvid to your liking. If you are using MeGUI and already have your own profiles, you can look at the command line by clicking on config and looking at the bottom part of the window. Or don't change anything, the settings here are quite reasonable.

Tip: You can tell the encoder to skip a call line by typing REM before it.
REM SDA batch encoder v1.1
@echo off

call :2pass script_mq.avs script_lq 128 64000 17 1 1
call :2pass script_mq.avs script_mq 512 64000 17 1 1
call :2pass script_hq.avs script_hq 2048 128000 19 1 1
call :2pass script_hq.avs script_iq 5000 320000 19 1 1
call :1pass script_hq.avs script_qp19_iq 320000 19 1

call :xvid script_mq.avs script_mq 512 64 1 1
call :xvid script_mq.avs script_lq 128 64 1 1


echo Finished!
pause
GOTO :EOF
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:2pass

REM TURBO
x264.exe --pass 1 --bitrate %3 --stats "%~dp1%2.stats" --bframes 5 --direct auto --subme 1 --analyse none --qpmin %5 --me dia --threads auto --thread-input --progress --no-psnr --no-ssim --output NUL %1

x264.exe --pass 2 --bitrate %3 --stats "%~dp1%2.stats" --ref 8 --mixed-refs --no-fast-pskip --bframes 5 --b-rdo --bime --weightb --direct auto --subme 7 --trellis 1 --analyse p8x8,b8x8,i4x4,p4x4 --qpmin %5 --me umh --threads auto --thread-input --progress --no-psnr --no-ssim --output "%~dp1%2_video.mp4" %1

bepipe.exe --script "DirectShowSource(^%~f1^)" | "neroAacEnc.exe" -br %4 -lc -if - -of "%~dp1%2_audio.mp4"

MP4Box.exe -new -add "%~dp1%2_video.mp4" -add "%~dp1%2_audio.mp4" "%~dp1%2.mp4"

if "%6" == "1" del "%~dp1%2.stats"
if "%7" == "1" del "%~dp1%2_video.mp4" | del "%~dp1%2_audio.mp4"

GOTO :EOF
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:1pass

x264.exe --qp %4 --ref 8 --mixed-refs --no-fast-pskip --bframes 5 --b-rdo --bime --weightb --nf --direct auto --subme 7 --analyse p8x8,b8x8,i4x4,p4x4 --threads auto --thread-input --progress --no-psnr --no-ssim --output "%~dp1%2_video.mp4" %1

bepipe.exe --script "DirectShowSource(^%~f1^)" | "neroAacEnc.exe" -br %3 -lc -if - -of "%~dp1%2_audio.mp4"

MP4Box.exe -new -add "%~dp1%2_video.mp4" -add "%~dp1%2_audio.mp4" "%~dp1%2.mp4"

if "%5" == "1" del "%~dp1%2_video.mp4" | del "%~dp1%2_audio.mp4"

GOTO :EOF
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:xvid

xvid_encraw.exe -i %1 -bitrate %3 -pass1 "%~dp1%2.stats" -kboost 100 -ostrength 15 -oimprove 15 -odegrade 15 -overhead 0 -vhqmode 3 -qpel -gmc -closed_gop -lumimasking -max_bframes 3 -bvhq -threads 1

xvid_encraw.exe -i %1 -bitrate %3 -pass2 "%~dp1%2.stats" -avi "%~dp1%2_video.avi" -kboost 100 -ostrength 15 -oimprove 15 -odegrade 15 -overhead 0 -vhqmode 3 -qpel -gmc -closed_gop -lumimasking -max_bframes 3 -bvhq -threads 1

bepipe.exe --script "DirectShowSource(^%~f1^)" | lame.exe -b 64 --cbr -h --silent - "%~dp1%2_audio.mp3"

ffmpeg.exe -i "%~dp1%2_audio.mp3" -acodec copy -i "%~dp1%2_video.avi" -vcodec copy -y "%~dp1%2.avi"

if "%5" == "1" del "%~dp1%2.stats"

if "%6" == "1" del "%~dp1%2_video.avi" | del "%~dp1%2_audio.mp3"

GOTO :EOF

Для virtual duba есть такой вариант пакетной обработки http://blog.danxee.com/archives/211
Автор: Gideon Vi
Дата сообщения: 07.06.2010 01:44

Цитата:
Есть такая инструкция, может кто-нибудь подскажет как это сделать:  

в программах есть топик по bat-никам
Автор: Ironcast
Дата сообщения: 07.06.2010 11:29
Я не понимаю смысла в этом действии: от этого хоть на 1% сжатие увеличивается?!

Страницы: 12345678910111213141516171819202122232425262728

Предыдущая тема: WM Cracker


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.