|
Гость
|
Гость ·
19-Апр-17 16:56
(7 лет 7 месяцев назад, ред. 19-Апр-17 16:56)
мой исходник технически интерлейсный, а по сути прогрессивный. непонятно что к нему применять деинтерлейс-обработку или прогрессивную. казалось бы просто добавил строки из 2 полукадров на свои места и получил прогрессивный без обработки, разве нет?
если нет, то не понял опять же какое видео видео у меня - вроде же четные и нечетные поля из одно и того же кадра - чего бы их не поставить на свои места в шахматном порядке да и всё.
большое спасибо за наглядные скриншоты. не понял почему интерполяция - заведомо худшее разрешение. ведь опять же казалось бы соединил кадр из 2 полукадров.
восстановление выглядит чётче.
какие настройки использовали для восстановления?
в случае исходника как у меня, поясните разницу между AVS:
Код:
DSS2("c:\desktop\pph135ts.ts")
ConvertToYV12(interlaced=false)
Код:
DSS2("c:\desktop\pph135ts.ts")
ConvertToYV12(interlaced=true)
QTGMC(Preset="Slower", InputType=1)
Код:
DSS2("c:\desktop\pph135ts.ts")
ConvertToYV12(interlaced=true)
QTGMC(Preset="Slower", FPSDivisor=2)
InputType=2, 3 - не описан в доках.
и какие ещё есть варианты?
не понял и насчет TFM: он 12 лет не изменялся и после его использования совет прорежать кадры with a decimation filter such as TDecimate()
что за пал? PAL/NTSC? как узнать о типе конкретных видео?
что за даббинг?
кстати догон до 50fps посоветуете? InterFrame2 или что-то ещё? Или делать из по сути 25p 50p - это хуже из-за присутствия артефактов, и совсем не окупается вносимой плавностью двигающихся объектов? не раз замечал, что мне приятнее смотреть плавное изображение с небольшими артефактами - оно выглядит более чётким в динамике, нежели 24/25/30fps путь и без артефактов, но оно же более дёрганное/слайдшоуное, а если не дёргается значит движений в кадре мало или сама картинка размытая. Замечал и на спортивных видео и на обычных фильмах/сериалах. А сверхчётким не бывает никакое реальное видео - ведь всегда битрейт конечен и находится к тому же в адекватных (не для демо же клипа) пределах. какие мнения по восприятию интерполированных кадров и технической реализации, если не через InterFrame2?
|
|
george$t
Стаж: 14 лет 8 месяцев Сообщений: 4303
|
george$t ·
19-Апр-17 17:28
(спустя 32 мин., ред. 19-Апр-17 20:43)
LiveM писал(а):
72942932мой исходник технически интерлейсный, а по сути прогрессивный
Материал для вещания обязан быть чересстрочным. Но при сложении полей интерлейс может явно никак не проявиться. Иногда заметен только на титрах, иногда вообще нигде. Можете пустить для подстраховки qtgmc по порогу (как раз Bodybill мне посоветовал лет 5 назад), опробовав на видимом интерлейсе, если есть. Если нигде не видно, я бы не стал ничего придумывать.
Код:
AssumeTFF()
#AssumeBFF()
a=QTGMC(preset="Fast", Sharpness=0.4, FPSDivisor=2, Edithreads=1) #Пресет и шарп на усмотрение
tfm(cthresh=5,clip2=a)
Цитата:
не понял почему интерполяция - заведомо худшее разрешение. ведь опять же казалось бы соединил кадр из 2 полукадров.
У вас они и так соединены по времени в визуально прогрессивный кадр. Целая картинка вдвое детальней половинки, вертикально достроенной до целой. QTGMC так и работает, достраивает каждое поле до целого кадра и выбрасывает четные или нечетные, как закажете. Если запретить ему это делать, из интерлейса с разнесенными по времени полями получите плавный ряд с удвоенным фпс. Даббинг он же боб. Из интерлейса с совмещенными полями выйдет 50 фпс с дублями в половину исходного разрешения, и скорей всего, муаром на тонких сетчатых построениях.
Дефолтно qtgmc настроен на интерлейсный вход inputtype 0. Если ему подсунуть прогрессивный ряд или даже единичный пнг с зашитым интерлейсом, он его подлечит, но чуть менее эффективно из-за невозможности получить информацию из соседних живых кадров. Точно так же с визуальным прогрессивом через inputtype 1 ничего смертельного не произойдет. Но не будет полноценного деинтерлейса если встрянут ярко выраженные области и на них появятся артефакты.
Цитата:
в случае исходника как у меня, поясните разницу между AVS:
ConvertToYV12(interlaced=false) дефолт юв12 преобразования
QTGMC(Preset="Slower", InputType=1) прогрессивный ввод без даббинга, удвоения полей
QTGMC(Preset="Slower", FPSDivisor=2) даббинг с выбрасыванием четных кадров selecteven()
InputType=2, 3 - не описан в доках. Описан.
Возьмите у Tempter57 шаблоны qtgmc и qtgmc baddeint поупражняться, там же нужные плагины и доки
https://rutr.life/forum/viewtopic.php?p=63842759#63842759
http://multi-up.com/1150180
Цитата:
кстати догон до 50fps посоветуете?
Не фанат. Свпфлоу, дубльэфпс, интерфрейм 2 на выбор. Обсуждалось страницей выше и много раз до того.
В моем понимании мера оправданная при наличии небольшого количества дублей/пропущенных кадров в исходнике. Еще и фотошопом подкорректировать, вай нот. Пленочное кино стробит заметно меньше, чем прочее.
|
|
Frankie13
Стаж: 15 лет 5 месяцев Сообщений: 556
|
Frankie13 ·
20-Апр-17 10:53
(спустя 17 часов)
ребят, подскажите что не так. раньше все было нормально, кодировалось, а щас выдает ошибку и все тут
|
|
Гость
|
Гость ·
20-Апр-17 14:22
(спустя 3 часа, ред. 20-Апр-17 14:22)
вы запустили сразу второй проход без указания stats file, который ищется кодером x264 как результат работы первого прохода.
результатом первого прохода является файл с собранной статистикой, кстати, кол-во/подробность которой можно тоже настраивать, по кр. мере в x265
x265 settings
--pass <integer>
Цитата:
Enable multi-pass rate control mode. Input is encoded multiple times, storing the encoded information of each pass in a stats file from which the consecutive pass tunes the qp of each frame to improve the quality of the output. Default disabled First pass, creates stats file
Last pass, does not overwrite stats file
Nth pass, overwrites stats file
Range of values: 1 to 3
--stats <filename>
Цитата:
Specify file name of of the multi-pass stats file. If unspecified the encoder will use x265_2pass.log
--analysis-mode <string|int>
Цитата:
Specify whether analysis information of each frame is output by encoder or input for reuse. By reading the analysis data writen by an earlier encode of the same sequence, substantial redundant work may be avoided. The following data may be stored and reused: I frames - split decisions and luma intra directions of all CUs. P/B frames - motion vectors are dumped at each depth for all CUs. Values: off(0), save(1): dump analysis data, load(2): read analysis data
--analysis-file <filename>
Цитата:
Specify a filename for analysis data (see --analysis-mode) If no filename is specified, x265_analysis.dat is used.
--refine-level <1..10>
Цитата:
Amount of information stored/reused in --analysis-mode is distributed across levels. Higher the value, higher the information stored/reused, faster the encode. Default 5. Note that –refine-level must be paired with analysis-mode. Level Description
1 Lookahead information
2 to 4 Level 1 + intra/inter modes, ref’s
5 to 9 Level 2 + rect-amp
10 Level 5 + Full CU analysis-info
( http://x265.readthedocs.io/en/default/cli.html)
как исправить не знаю. тоже самое у меня: сталкивался на x265 при запуске в Command Prompt/Power Shell. не разбирался, т.к. использую CRF в однопроходном кодировании (само качество постоянное) с параметром --rc-lookahead 250 (смотреть вперёд на 250 кадров для лучшего детектирования разбиения на сцены; этот параметр тормозит по времени процесс перекодировки на доли процента), а не стремление уложиться в какие-то рамки битрейта и поэтому запускать несколько проходов, чтобы лучше распределить биты по кадрам - больше на динамические сцены, меньше на статику.
Кстати, Вам CRF не подходит? пока Вам не ответили попробуйте значение 21 (в x265 они указываются с точностью до десятых, например, 20.7). Примерная сила параметра такова, что при изменении примерно на 3 единицы выходной средний битрейт в x265 меняется вдвое. Это на практике, а в теории при изменении на 6 единиц изменяется вдвое. Всегда чем меньше значение, тем выше битрейт.
|
|
Xant1k
Стаж: 16 лет 7 месяцев Сообщений: 3680
|
Xant1k ·
20-Апр-17 16:24
(спустя 2 часа 2 мин., ред. 20-Апр-17 16:24)
Эксперты, подскажите стоит ли делать рипы с БД под формат двд-рипа через кодек xvid или хватит рипа с двд диска?
И второй вопрос. В сравнений с рипом двд-рипом xvid-ом, рип через x264 с бд будет предпочтительнее? Судя по скринам http://screenshotcomparison.com/comparison/204821/picture:5 здесь рип с БД лучше.
|
|
miha2154
Стаж: 16 лет 5 месяцев Сообщений: 12092
|
miha2154 ·
20-Апр-17 17:03
(спустя 39 мин.)
Xant1k писал(а):
72949789стоит ли делать рипы с БД под формат двд-рипа через кодек xvid или хватит рипа с двд диска?
в принципе зависит от качества исходника, но в большинстве случаев с bd детализация заметно выше.
|
|
Xant1k
Стаж: 16 лет 7 месяцев Сообщений: 3680
|
Xant1k ·
20-Апр-17 17:27
(спустя 24 мин., ред. 20-Апр-17 17:27)
miha2154
А бенчмарков случаем нет для разных процев (и старых и новых) сколь по времени занимает кодирование с БД под формат двд-рипа?
|
|
miha2154
Стаж: 16 лет 5 месяцев Сообщений: 12092
|
miha2154 ·
20-Апр-17 17:34
(спустя 6 мин.)
Xant1k
у меня нет, а так наверное есть
|
|
Tracker35
Стаж: 16 лет 1 месяц Сообщений: 830
|
Tracker35 ·
21-Апр-17 18:35
(спустя 1 день 1 час, ред. 21-Апр-17 18:35)
Начиная с версии 1.7.1916 у PotPlayer появилась автокоррекция HDR в SDR, без использования madVR
SDR http://s019.radikal.ru/i622/1704/ee/d81c5442ba68.jpg
HDR http://s019.radikal.ru/i634/1704/ea/1c4485ca2c6c.jpg
HDR-madVR http://s04.radikal.ru/i177/1704/82/7380db9e5c3b.jpg
HDR-Potplayer http://s018.radikal.ru/i501/1704/a5/db4e3a64320d.jpg
Вроде по цветовой коррекция результат как у madVR, но вот с яркостной что-то не то, да и настроек нет.
|
|
easy_y
Стаж: 15 лет 7 месяцев Сообщений: 216
|
easy_y ·
21-Апр-17 19:16
(спустя 41 мин.)
Tracker35
Я думал что HDR это яркость, а цветность - ВТ
|
|
IvoryTower
Стаж: 11 лет 2 месяца Сообщений: 10
|
IvoryTower ·
22-Апр-17 10:33
(спустя 15 часов)
Обновил вчера MeGui. Кодировать перестал. Выдает ошибку
Кто что посоветует?
|
|
paremiya
Стаж: 16 лет Сообщений: 444
|
paremiya ·
22-Апр-17 11:52
(спустя 1 час 18 мин.)
IvoryTower писал(а):
72961375Кто что посоветует?
откатить плугин ffms2 на предыдущую версию; вручную естественно, в папочке .....\MeGUI\update_cache\ есть архивы всех скачанных обнов, распаковать и закинуть в папку по адресу плугина с заменой файлов.
|
|
IvoryTower
Стаж: 11 лет 2 месяца Сообщений: 10
|
IvoryTower ·
22-Апр-17 12:27
(спустя 35 мин.)
paremiya писал(а):
72961976откатить плугин ffms2 на предыдущую версию
Помогло, спасибо. Раньше всегда доверял этим обновлениям и не задумываясь жал на обновить. И вот теперь такая подстава.
|
|
Гость
|
Гость ·
22-Апр-17 16:07
(спустя 3 часа)
george$t, спасибо за ответ
george$t писал(а):
72943274
LiveM писал(а):
72942932мой исходник технически интерлейсный, а по сути прогрессивный
Материал для вещания обязан быть чересстрочным. Но при сложении полей интерлейс может явно никак не проявиться. Иногда заметен только на титрах, иногда вообще нигде. Можете пустить для подстраховки qtgmc по порогу (как раз Bodybill мне посоветовал лет 5 назад), опробовав на видимом интерлейсе, если есть. Если нигде не видно, я бы не стал ничего придумывать.
Код:
AssumeTFF()
#AssumeBFF()
a=QTGMC(preset="Fast", Sharpness=0.4, FPSDivisor=2, Edithreads=1) #Пресет и шарп на усмотрение
tfm(cthresh=5,clip2=a)
qtgmc по порогу - это в смысле быстрый пресет?
спасибо за пример с PNG.
Цитата:
Точно так же с визуальным прогрессивом через inputtype 1 ничего смертельного не произойдет. Но не будет полноценного деинтерлейса если встрянут ярко выраженные области и на них появятся артефакты.
тут ничего не понял по терминологии.
что за "прогрессив" - имеется ввиду 25p или с другой стороны 25i, полученный из 25p?
"ничего смертельного" - сильно хуже не будет или будет лучше?
что за "ярко выраженные области"? контрастные участки попадутся в кадр?
Цитата:
QTGMC(Preset="Slower", InputType=1) прогрессивный ввод без даббинга, удвоения полей
прогрессивный = 25p или 25i, полученные из 25р?
Цитата:
InputType=2, 3 - не описан в доках.
только то, что в тяжелый случаях деинтерлейса его используют. слава богу другие пункты документированы гораздо подробнее и оттого понятнее.
спасибо, пока не брал.
Цитата:
Код:
AssumeTFF()
#AssumeBFF()
a=QTGMC(preset="Fast", Sharpness=0.4, FPSDivisor=2, Edithreads=1) #Пресет и шарп на усмотрение
tfm(cthresh=5,clip2=a)
не понял этот Ваш пример в плане полного скрипта - я не могу его повторить с тем же результатом.
правильно ли я понял что этим листингом примера Вы сопровождаете Вашу иллюстрацию http://screenshotcomparison.com/comparison/207238 а именно repair?
могу ли я попросить опубликовать AVS полностью для обоих случаев source и repair?
насчет http://screenshotcomparison.com/comparison/207237 тоже не помешало бы увидеть сами скрипты в полном виде от начала до конца.
к чему это всё:
вроде у меня установлены последние версии всех плагинов и их минимальный набор, но в случае (полный код AVS везде)
Код:
DSS2("E:\pph_steep\135-20170326-022008.dump.ts")
Trim(25*43, 25*44)
AssumeTFF()
a=QTGMC(preset="Fast", Sharpness=0.4, FPSDivisor=2, Edithreads=1) #Пресет и шарп на усмотрение
tfm(cthresh=5,clip2=a)
Script error: there is no function named Interleaved2Planar (QTGMS-3.33.avsi, line 352)
добавил в папку SSE2Tools.dll (есть ссылка на home page с последней версией?)
пишет
LoadPlugin: unable to load "C:\Program Files (x86)\AviSynth\plugins\SSE2Tools.dll", Module not found. Install missing library? Dependencies that could not be loaded:
MSVCR71.dll
с совершенно непонятного сайта какую-то древнющую библиотеку msvcr71.dll (v7.10.2179.0) тоже хз последней ли версии (есть ссылка на home page?) - ведь home page или версию дистрибутива MS с этим файлом внутри я не нашел. так вот после копирования этого файла в папку к ОС (system32/sysWOW64)
mt_makediff : masktools: unsupported colorspace, use Y8, YV12, YV16, YV24, YV411, greyscale, YUVxxxP10-16/S, Planar RGB
(QTGMC-3.33.avsi, line 784)
(QTGMC-3.33.avsi, line 387)
теперь если так
Код:
DSS2("E:\pph_steep\135-20170326-022008.dump.ts") Trim(25*43, 25*44)
ConvertToYV12(interlaced=true) AssumeTFF()
a=QTGMC(preset="Fast", Sharpness=0.4, FPSDivisor=2, Edithreads=1) #Пресет и шарп на усмотрение
tfm(cthresh=5,clip2=a)
то картинка с
Код:
a=QTGMC(preset="Fast", Sharpness=0.4, FPSDivisor=2, Edithreads=1) #Пресет и шарп на усмотрение
tfm(cthresh=5,clip2=a)
выглядит замыленной, даже если поставить Preset="Placebo" и снести shapness (он же по умолчанию "1") по сравнению с тем если обе эти строки снести закомментить
вот у меня и просьба: пожалуйста, в полном виде опубликуйте все AVS, связанные со скринами сравнения в полном виде - основное даже не понял какими инструкциями Repair получили.
может и дело в моих плагинах.
|
|
george$t
Стаж: 14 лет 8 месяцев Сообщений: 4303
|
george$t ·
22-Апр-17 18:56
(спустя 2 часа 49 мин., ред. 22-Апр-17 18:56)
LiveM писал(а):
72963810qtgmc по порогу - это в смысле быстрый пресет?
Это когда лень возиться с поиском интерлейсных областей и вручную подбирать предпочтительный метод. При том, что 99% остального ряда деинтерлейс не нужен. Пресет и тюнинг темпгаусса вы подбираете сами. Там, где при заданном пороге тфм просечет комбинг, сработает qtgmc. Остальной ряд не затронет. http://screenshotcomparison.com/comparison/104152
скрытый текст
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\TIVTC.dll")
Import("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\QTGMC.avs")
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\mvtools2.dll")
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\RemoveGrainSSE2.dll")
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\RepairSSE2.dll")
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\mt_masktools-26.dll")
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\fft3dfilter.dll")
#LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\VerticalCleaner.dll")
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\nnedi3.dll")
#LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\EEDI3.dll")
#LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\EEDI2.dll")
LoadCPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\yadif.dll")
#LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\TDeint.dll")
#LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\AddGrainC.dll") SetMemoryMax(768)
SetMTMode(5, 3) SourceFilter() SetMTMode(2) ConvertToYV12(interlaced = true)
AssumeTFF()
a=QTGMC(preset="Fast", Sharpness=0.4, FPSDivisor=2, Edithreads=1)
tfm(cthresh=5,clip2=a)
LiveM писал(а):
72963810тут ничего не понял по терминологии.
что за "прогрессив" - имеется ввиду 25p или с другой стороны 25i, полученный из 25p?
что за "ярко выраженные области"? контрастные участки попадутся в кадр?
Ярковыраженные области это те, где интерлейс виден невооруженным глазом. Априори qtgmc ничего не знает о вашем исходнике. Подадите прогрессив как интерлейс - будет пытаться убрать интерлейс/гребенку. Подадите интерлейс как прогрессив - ограничится косметикой где сочтет нужным.
LiveM писал(а):
72963810"ничего смертельного" - сильно хуже не будет или будет лучше?
Если исходник полностью визуально прогрессивен деинтерлейс не нужен вообще, только навредит. Если по отдельным макроблокам есть легкие намеки на гребенчатость, темпгаусс их подлечит.
LiveM писал(а):
72963810могу ли я попросить опубликовать AVS полностью для обоих случаев source и repair?
Это стандартные фильтры XviD4PSP 5.0. Медиаинфо говорит лишь о структуре исходника, решение принимать вам.
скрытый текст
Import("C:\Program Files\XviD4PSP 5\dlls\AviSynth\functions\AudioFunctions.avs").
Import("C:\Program Files\XviD4PSP 5\dlls\AviSynth\functions\VideoFunctions.avs")
Import("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\QTGMC.avs")
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\mvtools2.dll")
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\RemoveGrainSSE2.dll")
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\RepairSSE2.dll")
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\mt_masktools-26.dll")
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\fft3dfilter.dll")
#LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\VerticalCleaner.dll")
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\nnedi3.dll")
#LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\EEDI3.dll")
#LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\EEDI2.dll")
LoadCPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\yadif.dll")
#LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\TDeint.dll")
#LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\AddGrainC.dll") SetMemoryMax(1280)
SetMTMode(5, 3) SourceFilter() SetMTMode(2) ConvertToYV12(interlaced = true)
QTGMC(Preset="Fast", Sharpness=0.4, FPSDivisor=2)
скрытый текст
Import("C:\Program Files\XviD4PSP 5\dlls\AviSynth\functions\AudioFunctions.avs")
Import("C:\Program Files\XviD4PSP 5\dlls\AviSynth\functions\VideoFunctions.avs") SetMemoryMax(1280)
SetMTMode(5, 3) SourceFilter(") SetMTMode(2) ###[FILTERING]###
XviD4PSPPluginsPath = "C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\"
LoadPlugin(XviD4PSPPluginsPath + "avstp.dll")
LoadPlugin(XviD4PSPPluginsPath + "RGTools.dll")
LoadPlugin(XviD4PSPPluginsPath + "mvtools2mod.dll")
LoadPlugin(XviD4PSPPluginsPath + "fft3dfilter.dll")
LoadPlugin(XviD4PSPPluginsPath + "nnedi3.dll")
LoadPlugin(XviD4PSPPluginsPath + "AddGrainC.dll")
LoadPlugin(XviD4PSPPluginsPath + "flash3kyuu_deband.dll")
LoadPlugin(XviD4PSPPluginsPath + "vinverse.dll")
LoadPlugin(XviD4PSPPluginsPath + "AddGrainC.dll")
LoadPlugin(XviD4PSPPluginsPath + "SSE2Tools.dll")
LoadPlugin(XviD4PSPPluginsPath + "masktools2.dll")
Import(XviD4PSPPluginsPath + "QTGMC.avs") ChangeFPS(last,last,true) # initiate a small forward buffer
#vinverse() QTGMC(Preset="Slow", InputType=1, Sharpness=1.0, Edithreads=1, DCT=5)
# QTGMC(Preset="Slower", InputType=2, ProgSADMask=12.0, Sharpness=1.0, Edithreads=1, DCT=5) # t = QTGMC(Preset="Slower", InputType=2, ProgSADMask=12.0, Sharpness=1.0, Edithreads=1, DCT=5)
# b = QTGMC(Preset="Slower", InputType=3, PrevGlobals="Reuse",Edithreads=1) # Reuse motion vectors from first call for a good speed-up
# Repair( t, b, 1 ) # DEBANDING
#f3kdb(sample_mode=2,dynamic_grain=false,keep_tv_range=false,dither_algo=3,y=52,cb=36,cr=36,grainY=32,grainC=16)
# Назначение: Для прогрессивного материала с устранением артефактов некачественного деинтерлейса ###[FILTERING]###
LiveM писал(а):
72963810спасибо, пока не брал.
А зря. Плагины сверены на совместную работу, меньше было бы забот по поиску нужных.
LiveM писал(а):
72963810то картинка с
выглядит замыленной, даже если поставить Preset="Placebo" и снести shapness (он же по умолчанию "1") по сравнению с тем если обе эти строки снести закомментить
Здесь я не понял. У тфм трешхолд задан не настолько параноидальный, чтобы скрипт стал мылить. При 5 он не на все узоры и реагирует-то, нужны значительные проявления интерлейса чтобы он сработал. Что-то не так написали.
ПС.
Последний спойлер, шарп тоже то-ли 0.3, то-ли 04.
|
|
Xant1k
Стаж: 16 лет 7 месяцев Сообщений: 3680
|
Xant1k ·
23-Апр-17 02:37
(спустя 7 часов)
Кто читал эту тему скажите какой там итог по процам и кодекам.
|
|
Vouk
Стаж: 16 лет Сообщений: 1111
|
Vouk ·
23-Апр-17 09:42
(спустя 7 часов, ред. 23-Апр-17 09:42)
george$t
Цитата:
Если исходник полностью визуально прогрессивен деинтерлейс не нужен вообще, только навредит.
то есть, если перекодирую из DV в h264, то деинтерлейс не нужен?
|
|
george$t
Стаж: 14 лет 8 месяцев Сообщений: 4303
|
george$t ·
23-Апр-17 15:04
(спустя 5 часов)
Vouk
Цитата:
то есть, если перекодирую из DV в h264, то деинтерлейс не нужен?
Я мало знаю о режимах съемки современных дв камер.
Деинтерлейс принято делать в рипах. Если требуется просто уменьшить размер домашнего 50i видео с избыточным битрейтом, можете сжать h264/x264 с сохранением чересстрочности. Хотя бы в целях экономии этого самого битрейта. Боб деинтерлейс потребует на 40-60% больше.
|
|
Гость
|
Гость ·
23-Апр-17 18:24
(спустя 3 часа)
george$t
1) правильно ли я понял, что скрипт в третьем спойлере "скрыть текст" в https://rutr.life/forum/viewtopic.php?p=72965029#72965029 и он же ниже в "Код" - как раз тот скрипт, который Вы использовали для repair при сравнении скриншотов http://screenshotcomparison.com/comparison/207238 ?
2) пока хотел задать вопрос по основному, а затем ответить что там мылится и где, как Вам показалось, я ошибся.
У меня не удаётся выполнить скрипт, который Вы описали. я что-то сделал не так?
вот он в полном виде - всё как у Вас в посту, (тупейшее имя для примера новичку "sourcefilter()" я правильно заменил? имя я бы поставил yourCustomSourceFilter() или pasteHereYourSourceFilter(). я 5 минут гуглил чтобы найти именно "SourceFilter"):
Код:
Import("C:\Desktop\functions\AudioFunctions.avs")
Import("C:\Desktop\functions\VideoFunctions.avs") SetMemoryMax(1280)
SetMTMode(5, 3) DSS2("E:\pph_steep\135-20170326-022008.dump.ts") SetMTMode(2) XviD4PSPPluginsPath = "C:\Desktop\plugins\"
LoadPlugin(XviD4PSPPluginsPath + "avstp.dll")
LoadPlugin(XviD4PSPPluginsPath + "RGTools.dll")
LoadPlugin(XviD4PSPPluginsPath + "mvtools2mod.dll")
LoadPlugin(XviD4PSPPluginsPath + "fft3dfilter.dll")
LoadPlugin(XviD4PSPPluginsPath + "nnedi3.dll")
LoadPlugin(XviD4PSPPluginsPath + "AddGrainC.dll")
LoadPlugin(XviD4PSPPluginsPath + "flash3kyuu_deband.dll")
LoadPlugin(XviD4PSPPluginsPath + "vinverse.dll")
LoadPlugin(XviD4PSPPluginsPath + "AddGrainC.dll")
LoadPlugin(XviD4PSPPluginsPath + "SSE2Tools.dll")
LoadPlugin(XviD4PSPPluginsPath + "masktools2.dll")
Import(XviD4PSPPluginsPath + "QTGMC.avs") ChangeFPS(last,last,true) # initiate a small forward buffer QTGMC(Preset="Slow", InputType=1, Sharpness=1.0, Edithreads=1, DCT=5)
mt_makediff : unsupported colorspace. masktools only support planar YUV colorspaces (YV12, YV16, YV24)
(C:\Desktop\plugins\QTGMC.avs, line 778)
(C:\Desktop\plugins\QTGMC.avs, line 388)
|
|
george$t
Стаж: 14 лет 8 месяцев Сообщений: 4303
|
george$t ·
23-Апр-17 21:54
(спустя 3 часа)
LiveM
Попробуйте дать converttoyv12() в скрипт явным образом и смените дсс2 на менее капризную модификацию fcp из тех же плагинов.
Скрипт был с нвидиа индексера. yv12 конверсию можно опустить, чтобы не дублировать трансляцию из индекса.
скрытый текст
LoadPlugin("G:\!Distrib\! Media\Videotools\DGIndexNV 2048\DGDecodeNV.dll") DGSource("L:\pph135ts-001_sample_shared _for_rutr.dgi") XviD4PSPPluginsPath = "C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\"
LoadPlugin(XviD4PSPPluginsPath + "avstp.dll")
LoadPlugin(XviD4PSPPluginsPath + "RGTools.dll")
LoadPlugin(XviD4PSPPluginsPath + "mvtools2mod.dll")
LoadPlugin(XviD4PSPPluginsPath + "fft3dfilter.dll")
LoadPlugin(XviD4PSPPluginsPath + "nnedi3.dll")
LoadPlugin(XviD4PSPPluginsPath + "AddGrainC.dll")
LoadPlugin(XviD4PSPPluginsPath + "flash3kyuu_deband.dll")
LoadPlugin(XviD4PSPPluginsPath + "vinverse.dll")
LoadPlugin(XviD4PSPPluginsPath + "AddGrainC.dll")
LoadPlugin(XviD4PSPPluginsPath + "SSE2Tools.dll")
LoadPlugin(XviD4PSPPluginsPath + "masktools2.dll")
Import(XviD4PSPPluginsPath + "QTGMC.avs") QTGMC(Preset="Slow", InputType=1, Sharpness=0.4, Edithreads=1, DCT=5)
скрытый текст
Модификацию дсс2 все же лучше пускать изнутри XviD4PSP интерфейса. Она настроена на взаимодействие с встроенными lavs, lavd с отключенным процессингом и имеет доп настройки для облегчения навигации. Оттуда в клик во встроенный редактор (Ависинт=>АВСП редактор).
Или не выходя из XviD4PSP копипастом окна фильтрации в ваш авсп.
Код:
Import("C:\Program Files\XviD4PSP 5\dlls\AviSynth\functions\AudioFunctions.avs")
Import("C:\Program Files\XviD4PSP 5\dlls\AviSynth\functions\VideoFunctions.avs")
LoadPlugin("C:\Program Files\XviD4PSP 5\dlls\AviSynth\plugins\avss.dll")
SetMemoryMax(1280)
SetMTMode(5, 3)
DirectShowSource2("L:\pph135ts-001_sample_shared _for_rutr.ts", fps=25.000, preroll=15, lavs="L3", lavd="L3hc23hr7")
SetMTMode(2)
ConvertToYV12()
|
|
Гость
|
Гость ·
24-Апр-17 08:56
(спустя 11 часов, ред. 11-Май-17 05:02)
george$t
Спасибо за ответы. Буду пробовать. UPD: к другой теме. Всем, AviSynth-подобные технологии. вопрос "в широту" - разные технологиии обработки и пересжатия видео Подскажите вот что: какие подобные технологии ещё встречали?
Я имею ввиду не в принципе видеоредакторы пусть и навороченные типа Adobe Premiere Pro,
но, наверно, интересуют с технологией frame server,
возможностью сохранять внешним кодеком,
возможностью программирования с пред просмотром (например для AviSynth есть AvsPmod), чтобы не только в интерфейсе "крутилки без программирования". ведь с написанием кода гибкость/возможности гораздо шире. Я слышал про VapourSynth (каково мнение о нём? но не сильно улубляйтесь - мой вопрос главным образом по охвату в ширину - разных технологий),
что ещё встречали в принципе - вообще некогда попадалось?
понравился принцип frame server - кодер думает что читает с диска, а на самом деле после широчайших возможностей обработки движком frame server держит кадры в оперативке, без сохранения в промежуточный файл - такой технологический и очень удобный конвейер/принципиальная схема работы. кроме чтения видео кадров из frame server или из файла - что ещё бывает в принципе? UPD2: к другой теме. Версия 2.4 кодера x265 спецификации HEVC/H.265
изменения: http://x265.readthedocs.io/en/default/releasenotes.html
взгляните v2.3 vs v2.4 (параметры кодера абсолютно идентичны, кроме CRF: он подписан)
v2.3 --CRF 23.7 VS v2.3 --CRF 23.3
v2.3 --CRF 23.7 VS v2.4 --CRF 23.7
v2.3 --CRF 23.3 VS v2.4 --CRF 23.7
мини-революция?
в v2.3 цвета на парнокопытном при CRF:
23.7 всегда (все пару секунд её отображения в заставке) такие;
23.5 стабилизируются через секунду;
23.3 сразу хорошие - в первом кадре её появления как статичной картинки.
в v2.4 цвета на парнокопытном при CRF 23.7 сразу хорошие - в первом кадре её появления как статичной картинки.
правда, не сравнивал итоговый битрейт - может его шкала просто сдвинулася относительно CRF. UPD3: баг кодера x265 нашел https://bitbucket.org/multicoreware/x265/issues/337/2-2-and-4-1-block-artefacts-in-encoded ____target areas.png - его нахождение,
скрины при разных CRF версий кодера и 2.3 и 2.4
и огрызок исходника им для тестов (MKV, только видео) UPD4: всё же ощущение что съехала шкала CRF относительно итогового bit rate примерно на 0.2..0.4 CRF-пункта: теперь файл со старым CRF имеет больший bit rate (пробовал только на одном видео) UPD5: статья: Как сопоставить CRF и битрейт на примере кодера x265.
Не мало из нас крутили ручку звукового усилителя и видели на дисплее изменяемые числа в dB
как указано на вики, звук относитя к классу силовых величин и изменение этого числа примерно на 6 дБ изменяет уровень громкости в 2 раза. в прямой зависимости "на" в дБ <-> "в" в разах.
Пример:
было -19 дБ, а стало -13, значит громкость повысили вдвое
было -39 дБ, а стало -21, значит громкость повысили вдвое трехкратно: -39 -> -33 -> -27 -> -21, т.е. 2*2*2 = 8
изменение на 10 дБ меняет громкость чуть более чем в три раза. то был звук, а что с CRF?
я нигде не встречал публикуемой мной далее информации, это результат собственных исследований и попытки найти зависимость - без перекодирования предсказать примерно битрейт и решить обратную задачу - вычислить CRF по желаемому битрейту.
CRF в x265 (v2.3, 2.4 at least) можно отождествить как величину, измеряемую в дБ, но для энергетической величины, т.е. изменение CRF не на 6, а уже на 3 будет давать двукратное изменение битрейта. Формула аппроксимированная/примерная, и отражает зависимость в первом приближении.
Вспомните и зависимость CRF и битрейта:
Важно понимать: одно и то же значение CRF, применённое к разным видеоматериалам или разным сценам одного и того же материала, приводит к большой разнице битрейта: я встречал трехкратное изменение битрейта в зависимости от сцены при одном и том же CRF на разных участках видеоматериала - зависит от того насколько статичны ли наоборот подвижны образы в кадре.
В нашем случае чтобы иметь начальные условия - нам нужно совершить первое кодирование с каким-то предполагаемым из своего предыдущего опыта CRF и выяснить полученный битрейт.
Примеры
Я закодил видео с CRF 25 и получил битрейт 3000kbps.
А что я получу с CRF 22?
Решение: изменился на 3 как бы виртуальных/аналогичных дБ, значит битрейт изменится в 2 раза.
Ответ: 6000kbps. Обратная задача:
Я закодил видео с CRF 25 и получил битрейт 3000kbps.
Как мне получить 1500kbps?
Решение: битрейт изменился в 2 раза, значит CRF должен поменяться на 3 виртуальных наших как бы по аналогии дБ.
Ответ: CRF должен быть 28.
Примеры практического применения
Мы помним, что CRF задаётся с точностью до десятых долей.
я закодил видео с CRF 23.2 и его битрейт получился в результате кодирования 3030kbps.
а с каким битрейтом будет CRF 23.9?
дублирование в символьном и текстовом видах
bitrate2=3030*√(10&〖10〗^(CRF1-CRF2) )=3030*√(10&〖10〗^(23.2-23.9) )=3030*√(10&〖10〗^(-0.7) )=2580kbps
битрейт1, умноженный на корень десятой степени из десяти в степени разницы (CRF1-CRF2).
JavaScript:
Код:
3030 * Math.pow( Math.pow( 10, (23.2 - 23.9) ), 0.1 )
общий вид
Код:
bitrate1 * Math.pow( Math.pow( 10, (CRF1 - CRF2) ), 0.1 )
на практике я получил 2620kbps.
Обратная этой задача.
С CRF1 22.5 у меня получается битрейт1 3850kbps. много - большой файл будет. хочу чтобы битрейт2 около 3000kbps. Какой CRF2 мне поставить?
Решение. Разницу в пунктах между CRF получаем:
дублирование в символьном и текстовом видах
∆CRF=10*lg(bitrate1/bitrate2)=10*lg(3850/3000)=1.1
Десять, умноженные на десятичный логарифм отношения (CRF1/CRF2)
JavaScript:
Код:
10 * Math.log10( 3850 / 3000 )
в общем виде
Код:
10 * Math.log10( bitrate1 / bitrate2 )
Тогда, CRF2 = CRF1 + 1.1
Ответ: 23.6.
Сокращённая таблица для быстрого ориентировочного подбора CRF (x265 v2.3, 2.4 encoder)
Статья носит подтекст
призыва использовать свободный для манёвров CRF (много движений в кадре - он уменьшит параметр квантования, увеличив битрейт в этой сцене, а нет движения - зачем расходовать размер файла впустую? побольше компрессию поставит) вместо строгого "ящика конкретного битрейта" и призвана упростить подбор CRF для каждого видеоматериала.
CRF чаще применяется в одном проходе, а "битрейтовые ящики" реже - так как нужно предварительно оценить, что нужно впихнуть в строгий объем данных и распределить битрейт по всей продолжительности видео.
Для x265 может быть использована опция --rc-lookahead 250 для заглядывания в будущие 250 кадров для лучшего детектирования кодером - где/в каком месте разбивать сцену и ставить новый I-frame. такая опция тормозит кодирование не более чем на 1%, если это можно назвать тормозами.
UPD6:
Автоматизация подсчёта через вставку в консоль разработчика в любом браузере на любой странице или в каким угодно интерпретаторе JS-кода
Работает для x265 10бит. Не исключено, что работает и для x264 10бит.
В начале кода найдите описание и задайте свои значения для всех четырёх переменных.
CRF1 - параметр CRF установленный при первом/предыдущем кодировании,
bitrate1 - параметр bitrate в kbps, получившийся в результате первого/предыдущего кодирования,
CRF2 и bitrate2 - выбирайте сами какой параметр искомый и поставьте ему значение null - он будет найден после отработки скрипта, а какой параметр из них зададите - под него Вам и будет производиться подсчёт/соответствие искомого параметра.
Далее скопируйте весь получившийся отредактированный Вами код и вставьте его в консоль разработчика любого браузера (загуглите как открыть её в Вашем браузере). Ответ Вы увидите в ней же моментально.
Код:
(function () {
// ********************************
// x265 10bit bitrate or CRF predictor based on first encode.
// Looks like it works for x264 10 bit encode (tested on single instance only).
// Delivers approximate estimate.
//
// Version 0.1.1.20170511
// rutr.life, LiveM
//
// This script powered by maths below:
// For 10 bit encode: to change bit rate in 2 times we must change CRF by 3 points. Verified by own experience.
// !Perhaps! for 8 bit encode (!untested!): to change bit rate in 2 times we must change CRF by 6 points.
// !Perhaps! for 12 bit encode (!untested!): to change bit rate in 2 times we must change CRF by 1.5 points.
// !Perhaps! the CRF point where bit rates are the same for 8,10,12 bit encodes is about CRF=28 (!untested!).
// ******************************** let obj = { // first/previos encode. This is calcutation basis
CRF1: 23.2,
bitrate1: 3550, //in kbps // set one property to null to be estimated and another one the a numeric value you want
CRF2: null,
bitrate2: 3000, //in kbps
}, // set encoder's bit depth. Experimental untested feature.
colorBitDepthOfEncoder = 10; //in bits. 10 bits value verified as making good predictions. 8 and 12 bits are experimental untested values. // ============================================================================================
// script core
function calcNewCRForBitrate(obj) {
if ((obj.CRF2 && obj.bitrate2) || (!obj.CRF2 && !obj.bitrate2)) {
return 'Error: Please set one unknown parameter to null value and another one to a number which the estimation will be based on';
} else if (!obj.CRF1 || !obj.bitrate1) {
return 'Error: Please set CRF1 and bitrate1 values like they was in first/prev encode result';
}
if (colorBitDepthOfEncoder !== 8 && colorBitDepthOfEncoder !== 10 && colorBitDepthOfEncoder !== 12) {
return 'Error: Please set colorBitDepthOfEncoder to values either 8, 10 or 12';
} let result,
// script's core variables based on encoder bit depths
CRFBitsBasedCoef = 5 * Math.pow(2, (6 - (colorBitDepthOfEncoder / 2))), // 8b -> 20, 10b -> 10, 12b -> 5
BitRateBitsBasedCoef = 0.05 * Math.pow(2, ((colorBitDepthOfEncoder / 2) - 4)) ; // 8b -> 0.05, 10b -> 0.1, 12b -> 0.2 if (obj.CRF2) {
result = obj.bitrate1 * Math.pow(Math.pow(10, (obj.CRF1 - obj.CRF2)), BitRateBitsBasedCoef);
result = Math.round(result);
result = 'bitrate2 estimation is ' + result + ' kbps';
} else {
result = CRFBitsBasedCoef * Math.log10(obj.bitrate1 / obj.bitrate2) + obj.CRF1;
result = Math.round(result*10) / 10;
result = 'CRF2 estimation is ' + result + ' points';
}
return 'x265 ' + colorBitDepthOfEncoder + ' bits encoder: ' + result;
} return calcNewCRForBitrate(obj);
}());
UPD7: засандалил и авторам кодера - посмотрим что скажут
https://bitbucket.org/multicoreware/x265/issues/338/crf-diffs-relatively-bit-rate-diffs
https://bitbucket.org/multicoreware/x265/issues/339/crf-diffs-relatively-bit-rate-diffs
UPD8:
Собственные примеры говорят об успешном приблизительном предсказании CRF <-> bit rate для x265 10bit и x264 10bit.
Вероятно, для 8bit изменение битрейта в 2 раза происходит при изменении CRF на 6 пунктов
Вероятно, для 12bit изменение битрейта в 2 раза происходит при изменении CRF на 1.5 пункта.
"Нулевая отметка" CRF при которых кодеры 8, 10, 12бит показывают одинаковый битрейт, возможно, близка к CRF 28 (кстати это значение CRF и является по умолчанию для x265)
|
|
paremiya
Стаж: 16 лет Сообщений: 444
|
paremiya ·
26-Апр-17 19:00
(спустя 2 дня 10 часов, ред. 26-Апр-17 19:00)
LiveM писал(а):
72976839Для x265 может быть использована опция --rc-lookahead 250 для заглядывания в будущие 250 кадров для лучшего детектирования кодером - где/в каком месте разбивать сцену и ставить новый I-frame.
бестолковая опция, когда у тебя она поглощается опцией scenecut=40.
хочешь юзать --rc-lookahead 250 - выстави --no-scenecut.
|
|
Гость
|
Гость ·
26-Апр-17 19:12
(спустя 12 мин., ред. 26-Апр-17 20:14)
paremiya писал(а):
72992204
LiveM писал(а):
72976839Для x265 может быть использована опция --rc-lookahead 250 для заглядывания в будущие 250 кадров для лучшего детектирования кодером - где/в каком месте разбивать сцену и ставить новый I-frame.
бестолковая опция, когда у тебя она поглощается опцией scenecut=40.
хочешь юзать --rc-lookahead 250 - выстави --no-scenecut.
Вы на практике проверили? Что же означает значение 40?
|
|
paremiya
Стаж: 16 лет Сообщений: 444
|
paremiya ·
26-Апр-17 20:13
(спустя 1 час 1 мин.)
LiveM на практике scenecut40 воткнёт дополнительно 2...4 гопа между min-keyinnt и keyint250, и все вычисления rc-lookahead250 будут до лампочки.
|
|
Grat4
Стаж: 12 лет 1 месяц Сообщений: 277
|
Grat4 ·
27-Апр-17 19:53
(спустя 23 часа)
Есть видео с субтитрами pgs. Одна дорожка включает и полные, и форсированные субтитры. Какой скрипт позволяет вшить в видеопоток только форсированную часть этой дорожки сабов? Я когда-то с успехом делал это в handbrake с помощью галочек у "burn in" и "forced only"на вкладке субтитров. Можно ли это делать с помощью срипта ависинт, например, в megui?
|
|
busoti
Стаж: 13 лет 6 месяцев Сообщений: 2839
|
busoti ·
27-Апр-17 21:22
(спустя 1 час 28 мин.)
Grat4
Попробуйте на декодере DirectShowSource + LAV
|
|
Grat4
Стаж: 12 лет 1 месяц Сообщений: 277
|
Grat4 ·
28-Апр-17 07:38
(спустя 10 часов)
busoti4444 писал(а):
72999827Grat4
скрытый текст
Попробуйте на декодере DirectShowSource + LAV
Спасибо, попробую. Так получится сделать форсированное хардсабами?
|
|
Корнеев В
Стаж: 10 лет 10 месяцев Сообщений: 67
|
Корнеев В ·
28-Апр-17 08:23
(спустя 44 мин.)
Здравствуйте.
Осталось очень много хороших (коллекционных) DVD. Думаю, надо сделать с них наиболее качественные рипы с минимальный потерей качества. Видимо, в MKV + H264.
Посоветуйте пожалуйста набор программ и что можно почитать на эту тему.
|
|
<VIRUS>
Стаж: 16 лет 5 месяцев Сообщений: 7354
|
<VIRUS> ·
28-Апр-17 08:52
(спустя 29 мин., ред. 28-Апр-17 08:52)
Корнеев В писал(а):
73002266Здравствуйте.
Осталось очень много хороших (коллекционных) DVD. Думаю, надо сделать с них наиболее качественные рипы с минимальный потерей качества. Видимо, в MKV + H264.
Посоветуйте пожалуйста набор программ и что можно почитать на эту тему.
XviD4PSP 5 — универсальный медиаконвертер
MKV->CRF=16-18. 16-18 это навскидку, детали зависят от исходника.
https://rutr.life/forum/viewtopic.php?t=1037661 -> почитать можно здесь, если не испугает.
А так в программе есть пресеты. Выбирайте что то вроде такого x264 Q18-DXVA-SD Iinsane Film
|
|
Корнеев В
Стаж: 10 лет 10 месяцев Сообщений: 67
|
Корнеев В ·
28-Апр-17 08:53
(спустя 24 сек.)
|
|
|