Классический форум-трекер
canvas not supported
Нас вместе: 4 249 104


Совeтуeм установить VPN чтобы скрыть Ваш IP-адрес

Выбор оптимального битрейта и настройка кодера х264


 
 
RSS
Начать новую тему   Ответить на тему    Торрент-трекер NNM-Club -> Форум Видео -> Обработка Аудио & Видео
Автор Сообщение
Anton-M ®
Стаж: 10 лет 8 мес.
Сообщений: 149
Ratio: 11.128
Раздал: 7.256 TB
Поблагодарили: 14983
100%
Откуда: Brighton
uk.gif
Инструкция по выбору битрейта для рипа и настройка кодека x264.
1. Немного демагогии.
Очень часто люди делают рипы, выбирая битрейт "на глазок". Причем срабатывает правило "чем больше, тем лучше". Однако это правило не совсем верно. Битрейт видео зависит прежде всего от динамичности видеоряда, а в этом плане все фильмы отличаются друг от друга. Поэтому для одного фильма битрейта в 4,500 kb/s будет более чем достаточно, а для другого и 8000 kb/s мало. Очень легко самому убедиться в том, что битрейт - это не панацея от всех бед. Если не лень, скачайте блю-рей фильма "Мгла". Посмотрите на это качество и гляньте битрейт видео. Очень много, да? Сделайте рип с битрейтом в два раза ниже и сравните его с блюриком. Ухудшилось качество? Нет. А если в 3 раза ниже? Опять не ухудшилось.
Когда я впервые попал на этот трекер, меня несколько удивило строгое деление качества фильмов именно по битрейту. Но в чужой монастырь со своим уставом не ходят, тем более есть раздел HD*Rip/LQ, где я и размещаю большинство своих рипов именно из-за того, что дальнейшее увеличение битрейта к увеличению качества не приведет. На этом закончу сие лирическое отступление и перейду к делу.

2. Вычисление оптимального битрейта и настроек для кодека x264.
В первую очередь вам необходимо выяснить версию вашего кодека. Для чего, будет понятно ниже. Обновить кодек всегда можно здесь.
Независимо от того, какой программой вы пользуетесь для создания рипов (XviD4PSP или MeGui), в первую очередь необходимо сделать распределённую выборку из исходника. В XviD4PSP это делается в меню AviSynth -> Применить тест-скрипт. В MeGui придется добавить в конец .avs скрипта три строки и на выходе получить ряд продолжительностью ~2550 фреймов, составленный из равномерно выдернутых из видеоряда кусков по 50 фреймов.
Код:

selectTotal1=framecount()/100
selectTotal2=selectTotal1*2
selectrangeevery(selectTotal2,50)

Теперь необходимо сжать эту последовательность, но указать не битрейт, а --crf 20. Помните, я вас просил выяснить версию вашего кодека? Если она ниже r988, то стоит указывать --crf 18, а не --crf 20, т.к. в версиях x264 > r988 существенно переработана CRF модель.










Итак, запускаем кодирование и ждем несколько минут. Получаем небольшой видео-файл с нашей выборкой по 50 кадров и лог кодирования. Он-то нам и нужен. Открываем и видим нечто подобное:
raw [info]: 1920x800p 1:1 @ 24000/1001 fps (cfr)
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
x264 [info]: profile High, level 4.1

x264 [info]: frame I:19 Avg QP:14.83 size:144550
x264 [info]: frame P:780 Avg QP:18.10 size: 75333
x264 [info]: frame B:1738 Avg QP:19.33 size: 39186
x264 [info]: consecutive B-frames: 8.0% 10.1% 19.3% 20.5% 12.4% 21.3% 2.5% 0.3% 1.1% 0.0% 1.3% 0.0% 0.0% 0.6% 0.0% 0.0% 2.7%
x264 [info]: mb I I16..4: 21.3% 65.5% 13.2%
x264 [info]: mb P I16..4: 12.6% 32.4% 2.5% P16..4: 30.3% 13.7% 4.5% 0.0% 0.0% skip: 4.0%
x264 [info]: mb B I16..4: 5.0% 3.8% 0.3% B16..8: 39.3% 11.3% 2.5% direct:13.7% skip:24.2% L0:46.6% L1:47.0% BI: 6.4%
x264 [info]: 8x8 transform intra:60.6% inter:67.7%
x264 [info]: direct mvs spatial:98.1% temporal:1.9%
x264 [info]: coded y,uvDC,uvAC intra: 81.7% 91.4% 79.6% inter: 40.5% 52.5% 18.2%
x264 [info]: i16 v,h,dc,p: 21% 9% 47% 24%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 9% 7% 12% 10% 13% 13% 12% 11% 13%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 11% 8% 12% 9% 13% 12% 13% 10% 13%
x264 [info]: i8c dc,h,v,p: 53% 17% 16% 15%
x264 [info]: Weighted P-Frames: Y:27.1% UV:21.3%
x264 [info]: ref P L0: 48.5% 8.7% 22.2% 9.9% 7.5% 2.8% 0.4%
x264 [info]: ref B L0: 71.7% 19.6% 7.0% 1.7%
x264 [info]: ref B L1: 90.5% 9.5%

x264 [info]: kb/s:9799.25

x264 [total]: encoded 2537 frames, 7.65 fps, 9799.31 kb/s
Использование b-фреймов.
Процент задействованных b-фреймов, по порядку от 0 до 16. Если начиная с какой-то позиции стоят лишь 0.0 или 0.1-0.2, то использование --bframes больше этой цифры по сути бессмысленно и в большинстве случаев только увеличит время, необходимое для энкода.

Использование ref фреймов.
От 1 до 16 показывает, насколько задействованы ссылочные кадры. Если после определённой цифры начинаются 0.0-0.2%, то смысл использовать --ref выше данного числа теряется, только увеличит время энкода. Как и для --bframes.

Три цифры квантов: для I фреймов, для P фреймов и для B фреймов.
Цитата:
Чем динамичнее видеоряд, тем больше будет между ними разница и тем выше будут кванты для B фреймов. Если все три цифры не превышают 18, то полученного битрейта будет много и его смело можно резать процентов на 25 минимум. Если все три цифры превышают 22-23, то битрейта не хватает и его надо поднимать, если только целью не является минимальный размер рипа с допустимыми артефактами компресии. Для очень динамичного видео средний квант ~25 для b-фреймов вполне допустим. Обычно стоит следить, чтобы он не поднимался выше.
В логе, полученном с --crf 20, кванты, как правило, будут находится в промежутке 16..23. Полученный в результате битрейт и будет предпочтительным для сохранения максимально прозрачного качества. Если его делать выше, то это будет, как правило, раздутием размера, опускаться ниже можно, но желательно не более чем на ~35-40%. При этом надо помнить, что поднимая/опуская битрейт на каждые 12.5% мы поднимаем/опускаем CRF на 1 целый пункт и в то же время, поднимая/опуская CRF на 6 пунктов мы увеличиваем/уменьшаем битрейт вдвое. Зависимость простая.

От себя добавлю, что стараюсь не превышать цифру 19+ для B фреймов. Но я всегда стараюсь максимально качественно вычистить видео от шумов, ведь шумы тоже кушают битрейт. Простой пример из практики: средние кванты для B фреймов на шумном исходнике 20+, те же кванты с тем же битрейтом на почищенном видео 18+.

Оптимальный битрейт для рипа данного видео.

Примечание.
1. Обратите внимание на второй скрин настроек кодека. У меня выключен параметр p4x4, т.к. я кодирую только в HD. Это использование частиц анализа. Как правило, желательно оставлять анализ всех частиц для SD контента и выключать только p4x4 для HD сигнала.

2. Параметр ref не обязательно вычислять из лога кодирования. Вот табличка:
Код:
1920x1080 L4.1 и Reframes < = 4
1920x816 L4.1 и Reframes < = 5
1280x720 L4.1 и Reframes < = 9
1280x544 L4.1 и Reframes < = 12
W x H x ReFrames должно быть < 8.388.608


3. Не забываем открыть полученный огрызок в проигрывателе и оценить результат глазами. Еще лучше сравнить полученный результат с исходным изображением, удобнее всего это делать при помощи программы AvsPmod. Поскольку i-фреймов на весь видеоряд, как правило, не более 1-2%, и сжимаются они с наименьшими возможными квантами, имеет смысл сравнение только b и p фреймов.

4. Тестируйте с разными настройками, оценивайте результат, с опытом настраивать кодек начнете с закрытыми глазами :)

Всем удачных рипов!
Показать сообщения:   
Начать новую тему   Ответить на тему    Торрент-трекер NNM-Club -> Форум Видео -> Обработка Аудио & Видео Часовой пояс: GMT + 3
Страница 1 из 1