FAQ = Просмотр видео на компьютере с эффектом плавности движений (Trimension DNM, MSU FRC, MVTools и др.)
(Тема перемещена в форум: Домашний кинотеатр: проигрыватели и источники сигнала)

Версия для печати

Конференция: Конференция iXBT.com (http://forum.ixbt.com/)
Форум: Домашний кинотеатр: ТV и проекторы (http://forum.ixbt.com/?id=62)
URL: http://forum.ixbt.com/topic.cgi?id=62:12524

Время GMT +03. Даты в формате dd.mm.yyyy.

MAG79, 28.01.2008 10:35
Алгоритмы повышения плавности движений рассчитывают промежуточные кадры, помещаемые при проигрывании между исходными кадрами, создается эффект повышенной плавности движений. Все становится понятным при взгляде на следующую анимацию:
309x117, 10,0Kb (http://mag.irk.ru/msu_frc/animation.swf)
Нажать на картинке. Плавность движений увеличена в 4 раза.
Скорость движений: 1/12 от реальной (чтобы был заметен эффект).
Картинка создана по материалам статьи об MSU FRC (http://compression.ru/video/frame_rate_conversion/index_msu.html) .

Все началось с ТВ 100 Гц
Существует несколько технологий для увеличения плавности движений при просмотре видео на компьютере. Насколько мне известно, первые удачные результаты в этом направлении сделала фирма Philips с ее технологией Digital Natural Motion (DNM), которую применила в своих 100-герцовых телевизорах. В последствии эта технология была реализована в программном плеере WinDVD под названием Trimension DNM. Умельцы смогли заставить эту технологию работать не только в программном плеере WinDVD, и соответственно получили возможность производить постобработку результатов TrimensionDNM. Инструкция по настройке TrimensionDNM для Media Player Classic приводилась в соседней теме (http://forum.ixbt.com/topic.cgi?id=62:7337:285#285) .

Параллельно велись работы и других производителей телевизоров над подобной технологией. У Samsung эта технология называется Motion Plus. У истоков создания этой технологии присутствовала лаборатория MSU (описание алгоритма (http://www.compression.graphicon.ru/video/frame_rate_conversion/index.html) ). Для компьютеров эта технология воплощена этой лабораторией в фильтре Frame Rate Converter (MSU FRC). Описание: фильтр и настройки (http://compression.ru/video/frame_rate_conversion/index_msu.html) , минитест производительности и отличие от TrimensionDNM (http://forum.compression.ru/viewtopic.php?t=2076) .

Исключительно для компьютера
Существуют разработки, которые изначально предназначались для использования на компьютере. Конечно надо начать с проигрывателя Crystal Player (статья о нем (http://www.softkey.info/reviews/review2922.php) ), оптимизорованного для запуска на компьютерах средней и даже малой мощности. У него есть функция повышения плавности движений, названная MultiSampling, имеющая два режима: Planar Blending и Motion Morphing (отличие этих режимов (http://forum.ixbt.com/topic.cgi?id=62:12524:54#54) ).

Особо стоит отметить библиотеку MVTools2 с функцией MFlowFps. Она бесплатная, развивается силами сразу нескольких разработчиков, в том числе и Fizick’ом, имеет большое количество настроек, постоянно совершенствуется, что делает ее наиболее перспективной.
Известные программы повышения плавности, а также плагины и плееры перечислены ниже.

Программы повышения плавности. Расчет промежуточных кадров с сохранением результата.
ПрограммыВерсияДата выпуска
DynaPel MotionPerfect4.3.1.1июнь, 2003
Dynapel SlowMotion1.0.4.0июнь, 2003
Smootz7 (оф. сайт (http://www.artsoft.nm.ru/smootz7.html) )1.7апрель, 2010
Подробности программ от DynaPel см. в статье Замедление видео (http://www.ixbt.com/divideo/digital-video-guide/5-2-2-time.shtml#2_7) .

Плагины повышения плавности. Потоковый расчет промежуточных кадров с передачей результата дальше по цепочке. Можно применять как для сохранения видео (Adobe AfterEffects, Avisynth), так и для расчета в реальном времени (Avisynth).
ПлагиныВерсияДата выпускаПредназначен для
FrameDouble0.0.9.1июль, 2003Avisynth
Motion05.12.12декабрь, 2005Avisynth
Twixtor5.0май, 2010Adobe AfterEffects
RealViz Retimer2.55 PROлето, 2007Adobe AfterEffects
MSU FRC0.5сентябрь, 2007Avisynth
MVTools1.11.4.5ноябрь, 2008Avisynth
MVTools22.5.10ноябрь, 2009Avisynth
Подробности некоторых из них описаны в статье Замедление видео (http://www.ixbt.com/divideo/digital-video-guide/5-2-2-time.shtml#3) .

Плееры с повышением плавности. Расчет промежуточных кадров в реальном времени. Применяются разные технологии.
ПлеерыВерсияДата выпускаТехнологияУсловия для включения плавности
ФорматРазрешение
Crystal Player1.98 Proмай, 2007Planar Blending, Motion Morphing (Multisampling)любойлюбое
Corel WinDVDPro 2010 10.0.5.291февраль, 2010Digital Natural Motion (Trimension All2HD)DVDдо 720x576
Cyberlink PowerDVD10.0.1516.51март, 2010TrueTheater Motionлюбойдо 720x576 (720p, 1080p)*
Splash PRO1.0.0июнь, 2010Motion2любойлюбое
SVP**1.3.4март, 2010плагины FrameDbl и MVTools2любойлюбое
* работает на некоторых файлах, закономерность пока не установлена.
** Smooth Video Pack (SVP) - это пакет программ, который позволяет повышать плавность движений в большинстве плееров, используя фильтр ffdShow и плагины FrameDbl и MVTools2.

Пакет Smooth Video Pack (SVP) для просмотра видео c эффектом плавности движений, разработан с использованием библиотеки MVTools2 силами местных умельцев (MAG79, mna, Vovanchik81).
Текущая версия: 34x33, 0,4Kb SVP 1.3.4
он-лайн справка SVP (http://svp-help.narod.ru)

Новое в версии 1.3.4 (http://forum.ixbt.com/post.cgi?date=posts&posts=3929&id=print%3A62%3A012524)
(предыдущие версии: 1.3.3 (http://forum.ixbt.com/post.cgi?date=posts&posts=3547&id=print%3A62%3A012524) , 1.3.2 (http://forum.ixbt.com/post.cgi?date=posts&posts=3138&id=print%3A62%3A012524) , 1.3.1 (http://forum.ixbt.com/post.cgi?date=posts&posts=3057&id=print%3A62%3A012524) , 1.3 (http://forum.ixbt.com/post.cgi?date=posts&posts=2869&id=print%3A62%3A012524) , 1.2.1 (http://forum.ixbt.com/post.cgi?date=posts&posts=2339&id=print%3A62%3A012524) , 1.2 (http://forum.ixbt.com/post.cgi?date=posts&posts=2283&id=print%3A62%3A012524) , 1.1 (http://forum.ixbt.com/post.cgi?date=posts&posts=1802&id=print%3A62%3A012524) , 1.0 (http://forum.ixbt.com/post.cgi?date=posts&posts=1521&id=print%3A62%3A012524) )

ИНСТРУКЦИЯ ПО ПРИМЕНЕНИЮ

0. Ограничения
Пакет работает только с 32-ух битными плеерами и кодеками. А именно в системе должен быть установлен 32-ух битный ffdShow (есть внутри пакета).

I. Установка
Скачать и запустить инсталлятор Smooth Video Pack 1.3.4 (21,1 МБ) от 11.03.2010
Ссылки для скачивания: Rimsky.name (http://rimsky.name/MAG79/DownloadMAG79.html) , narod.ru (http://narod.ru/disk/18678444000/Smooth_video_pack_1.3.4.exe.html) , webfiles.ru (http://webfiles.ru/16799102/?logoff) , depositfiles.com (http://depositfiles.com/ru/files/fezmd5f01) , multi-up.com (http://multi-up.com/235376)
Внимание:
1. При переустановке SVP все предыдущие настройки будут удалены.
2. Для корректной работы может потребоваться перезагрузка.

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

II. Настройка пакета для воспроизведения с эффектом плавности движений
1. Запустить SVP Manager (SVPMgr.exe) - в трее появится иконка 106x29, 0,5Kb.
2. Все операции настройки повышения плавности видео производятся через контекстное меню, вызываемое правым кликом на этой иконке:
- Повышение плавности выполняется независимо от плеера и от ассоциаций видео-файлов. Плавность повышается только при загруженном SVP Manager;
- Непременным условием для повышения плавности является использование декодера ffdShow decoder либо фильтра-постообработчика ffdShow raw;
- Измененные настройки повышения плавности применяются на лету: выбором по меню, либо изменением в окне профиля и нажатием "Применить".


Подробнее см. порядок настройки в он-лайн справке SVP (http://svp-help.narod.ru/quickstart.htm) .

III. Сохранение рассчитанного видео
Мощности компьютера может не хватить для работы алгоритма повышения плавности на лету, особенно для видео высокого разрешения (подробнее см. результаты теста MVFlow HD Test (http://forum.ixbt.com/topic.cgi?id=8:21962) - отражает производительность с настройками: "Качественный / Удвоение / До пиксела / 16x16 / Без перекрытия / Простое / Легкая"). В таком случае можно сохранить видео с повышенной плавностью для последующего просмотра.

Порядок сохранения см. в он-лайн справке SVP (http://svp-help.narod.ru/smoothandsave.htm) .

Примеры видео
Именно таким способом (см. п. III) был подготовлен видеоклип, содержащий исходное видео и видео с повышенной плавностью. Он был сохранен в демонстрационном режиме. Плавность была повышена в 2 раза. Исходное видео имеет частоту кадров 23,98 кадров/сек, а видео с повышенной плавностью - 47,96 кадров/сек. Взят тестовый ролик VID-2D из комплекта DivX Test CD 2.0. Это 45 секундный трейлер Гарри Поттера в FullHD разрешении. Он сохранен в двух наиболее распространенных разрешениях: 720p (1280x720) и 1080p (1920x1072). Ссылки на скачивание:
- VID-2D_to_720p (http://narod.ru/disk/18331452000/VID-2D_to_720p.zip.html) (31,3 МБ, 24 -> 48 fps)
- VID-2D_to_1080p (http://narod.ru/disk/18332273000/VID-2D_to_1080p.zip.html) (47,0 МБ, 24 -> 48 fps)

Еще ссылки на видео, сохраненное с эффектом плавности:
Ambra Experience (http://rutracker.org/forum/viewtopic.php?t=1585456) (24 -> 60 fps)
IMAX Deep Sea 3D (http://rutracker.org/forum/viewtopic.php?t=1619038) (25 -> 60 fps)
рекламный ролик Philips formula williams f1 (http://rutracker.org/forum/viewtopic.php?t=1981029) (25 -> 50/60 fps)
фрагмент фильма "Северная стена" (http://rutracker.org/forum/viewtopic.php?t=2056721) (24 -> 60 fps)

Аватар 720p (http://www.tfile.ru/forum/viewtopic.php?t=317983) (24 -> 48 fps)
Кунг-фу Панда (http://rutor.org/torrent/48743/kung-fu-panda_kung-fu-panda-2008-bdrip-720p-50fps) (24 -> 48 fps + PALSpeedup = 50 fps)
Облачно, возможны осадки в виде фрикаделек (http://community.livejournal.com/smooth_video/377.html?thread=2937#t2937) (24 -> 48 fps)
Хэнкок (http://community.livejournal.com/smooth_video/377.html?thread=7801#t7801) (24 -> 48 fps)
Алиса в стране чудес (http://community.livejournal.com/smooth_video/377.html?thread=7545#t7545) (24 -> 48 fps)
Алиса в стране чудес (http://rutor.org/torrent/52204) (24 -> 48 fps + PALSpeedup = 50 fps)

Часто задаваемые вопросы по SVP
При просмотре с плавностью...:

В: ...неправильные цвета, кожа отображается синим цветом. Выбрано цветовое пространство по-умолчанию (YV12), декодер сообщает, что цветовое пространство NV12. Как сделать цвета правильными?
О: Перепутаны цвето-разностные составляющие между собой. В этом и есть отличие NV12 и YV12. Предлагается два варианта решения: поставить галку (http://forum.ixbt.com/topic.cgi?id=62:12524:2320#2305) "Постобработка" или "Убрать логотип" в ffdShow, либо сменить цветовое пространство на YUY2 в SVP. Последнее достаточно ресурсоемко.

К сообщению приложены файлы: 1.png, 34x33, 0Кb, 2.jpg, 309x117, 10Кb, 3.png, 106x29, 1Кb

За это сообщение сказали спасибо [5]: psnsergey, HardSTEP, talka, Gzom, 19w85

1. SERGOSV, 28.01.2008 11:22
При выводе картинки на TV-out будет ли сохраняться эффект? По моим понятиям - нет. Я прав?

2. MAG79, 28.01.2008 11:40
SERGOSV
При выводе картинки на TV-out будет ли сохраняться эффект? По моим понятиям - нет. Я прав?
Эффект есть, если имеет место увеличение исходной частоты кадров. На TV-out выдается 50/60 Гц, источник как правило 25/30 fps. Следовательно - эффект будет. В случае с TV-out в скрипте имеет смысл поставить num=50 или 60.

Предваряя вопросы по поводу производительности, скажу сразу:
1. Не имеет смысла указывать потоков больше, чем имеющееся количество процессоров/ядер.
2. Для одноядерных компьютеров скрипт будет выглядеть так:
код:
backward_vec1 = MVAnalyse(isb = true, truemotion=true, pel = 2, search=3)
forward_vec1 = MVAnalyse(isb = false, truemotion=true, pel = 2, search=3)
last.MVFlowFps(backward_vec1,forward_vec1, num=75, den=1, ml=100)

т.е. без Multi Threads (MT).

3. Требования к компьютеру у MSU FRC и MVTools намного выше, чем у Trimention DNM, т.к. они в текущем времени рассчитывают вектора движения. Для полноценной работы MSU FRC и MVTools требования к процессору можно приблизительно прикинуть исходя из результатов минитеста производительности MSU FRC (http://forum.compression.ru/viewtopic.php?t=2076) . Производительность в МПикс/сек рассчитывается по формуле: [высота]*[ширина]*[частота кадров]/1 000 000. MVTools примерно вдвое быстрее MSU FRC.

4. Что делать если нехватает производительности процессора:
- уменьшить итоговую частоту, например num=50.
- обрабатывать вариант с уменьшенным разрешением видео. Тогда скрипт будет выглядеть так:
код:
coef = 0.5
Lanczos4Resize (Int(Width*coef/4)*4, Int(Height*coef/4)*4)
mt("""
idx = rand()
backward_vec1 = MVAnalyse(isb = true, truemotion=true, pel = 2, search=3, idx = idx)
forward_vec1 = MVAnalyse(isb = false, truemotion=true, pel = 2, search=3, idx = idx)
last.MVFlowFps(backward_vec1,forward_vec1, num=75, den=1, ml=100, idx=idx)
""",threads=2,splitvertical=true)

где coef = 0.5 - коэффициент изменения размера.
Загрузка каждого ядра процессора должна быть в пределах 80%, чтобы был небольшой запас для трудных участков видео.

3. Oliverst, 28.01.2008 11:54
1. Trimension DNM, MSU FRC, MVTools - какой из методов дает наиболее качественны результат?

2. Как обстоит дело с HD(x264, xvid и т.д.) и хватит ли 4-х ядерного процессора ?

ps: ссылки на forum.compression.ru не работают

4. MAG79, 28.01.2008 12:31
Oliverst
1. Мне визуально больше нравится MVTools. В планах провести тест качества с использованием объективных оценок (PSNR, SSIM).
2. По моим расчетам для Full HD может потребоваться 24-ех ядерный процессор (!) с частотой 3,2 ГГц. См. тест производительности MSU FRC (http://forum.compression.ru/viewtopic.php?t=2076) .

ps: ссылки последнее время работают нестабильно, например, сейчас работают. Это связано, видимо, с регламентными работами на сервере compression.ru. Если очень надо, я пользуюсь сохраненными версиями соотв. страниц:
- копируешь адрес неоткрывающейся страницы в поле поиска google.com;
- у найденного результата нажимаешь "Сохранено в кэше".

5. Oliverst, 28.01.2008 12:52
а если прикинуть производительность хотябы на HDрип 720p на частоту 60Гц
какой процессор нужен?

6. MAG79, 28.01.2008 13:04
Oliverst
а если прикинуть производительность хотябы на HDрип 720p на частоту 60Гц
какой процессор нужен?


Для 720p на частоте 60 Гц требуется производительность 720*1280*60/1 000 000 = 55 МПикс/сек. Одно ядро в состоянии обработать 8 МПикс/сек на средних настройках MSU FRC и при частоте процессора 3,2 ГГц. Поэтому для MSU FRC потребуется 8-ми ядерный процессор 3,2 ГГц. MVTools имеет примерно вдвое большую производительность, поэтому должно хватить и 4-ех ядерного (такие уже есть: CORE 2 QUAD). Надо пробовать.

7. Яга, 28.01.2008 14:25
MAG79
А нет ли в планах как то оптимизировать функцию под сегодняшние реалии?
Например трименшн вполне адекватно функционирует на моем пентиуме 2,4 с видео 128 и 512 оперативы.
Все таки 24 ядерники нам не в скором времени станут доступны

Добавление от 28.01.2008 14:29:

Кстати, упомянуть стоит справделивости ради и crystal player - там есть мультисэмплинг - ни днм конечно, но что-то похожее и в том же направлении.
Процессор кстати мой грузит % на 20 всего
Но эффект конечно же не такой ощутимый...

Добавление от 28.01.2008 18:31:

А еще неплохо бы добавить в FAQ инструкцию по перекодировке файлов для просмотра с увеличенной частотой НЕ в реальном времени.
С указанием примерного времени перекодировки фильмов в различных разрешениях на машинах различной мощности.

Сколько например будет пережиматься обычный авишный файл размером 700 мегабайт - очень интересно.

Добавление от 28.01.2008 18:33:

Еще если не трудно - выложи перекодированный семпл скажем мегабайт на 50 - просто чтобы народ (и я в том числе) воочию увидели результаты перекодировки видео с днм-фильтром

8. MAG79, 28.01.2008 19:17
Во-первых, прошу прощения, нашел опечатку в инструкции к MVTools. Параметр, отвечающий за частоту кадров - это num, а не ml. Инструкцию и картинку поправил. Заодно установил себе новые версии программ: MVTools 1.9.1 и K-Lite codec pack 3.7.0 full. Работают не хуже старых. Получил снижение загруженности процессора при работе MVTools на 2-3 % по сравнению с предыдущими версиями, перечисленными в шапке темы.

Яга
нет ли в планах как то оптимизировать функцию под сегодняшние реалии?
Я не являюсь автором этих функций. Я всего лишь научился ими пользоваться и рассказываю как. Оптимизировать функцию MVFlowFPS я пока не дорос. А вот выбрать менее требовательные к производительности настройки в скрипте можно. Для этого читаем справку к MVTools, если что непонятно - спрашивай.

трименшн вполне адекватно функционирует на моем пентиуме 2,4 с видео 128 и 512 оперативы
На моем теперь уже CORE2DUO 3,32 ГГц с 1 МБ оперативки отлично идет видео разрешения 640х272 с частотой кадров 75. Для такого видео требуется производительность 640*272*75/1 000 000 = 13 МПикс/сек. При такой производительности загрузка процессора около 70%, ядра загружены равномерно. См. скриншот менеджера задач.
Менеджер задач при работе MVTools на CORE2DUO 3,32 ГГц, производительность = 13 МПикс/сек - 404x448, 6,6Kb
С большой натяжкой пошло видео 720х400@75: секунд 5 показывает плавно, затем уходит в стоп-кадр примерно на секунду, дальше картина повторяется. Такая ситуация происходит, когда загрузка процессора близка к 100% и при очередном скачке процессор как бы "захлебывается", что и вызывает явление стоп-кадра. Для такого видео требуется уже производительность в 720*400*75/1 000 000 = 21,6 МПикс/сек. Т.е. мой процессор чуть-чуть недотягивает. Его реальная произодительность находится в районе 20 МПикс/сек, а это по 10 МПикс/сек на каждое ядро. Очень хорошо, если учесть что это показатель, полученный при самых "тяжелых" настройках MVTools. Отличие скорости от MSU FRC 0.5 с его тяжелым пресетом "slow" (6 МПикс/сек) составляет 167%, т.е. немного меньше, чем в два раза.

т.е. уточняя свой ответ на вопрос Oliverst: даже имея 4-ех ядерный процессор CORE2QUAD с частотой 3,32 ГГц, достигнем расчетной производительности в 10*4 = 40 МПикс/сек. Получается даже такой процессор недотягивает до требуемых 55-ти.

Но при недостатке мощности есть еще ведь вариант: сперва считать видео (пусть даже дольше, чем в реальном времени), сохранять, а потом смотреть.

Про Crystal Player добавлю. Надо только почитать про него - на чем основан алгоритм, что может.
Демо видео выложу завтра с работы.

К сообщению приложены файлы: 1.png, 404x448, 7Кb

9. vlad001, 28.01.2008 19:30
Несколько вопросов. Обязательно ли нужен k-lite codec, просто ffdshow отдельно скачаный не подойдёт? При проигрывании таким методом, должен использоваться кодек MPEG2 (libmpeg2) с галочкой DVD decoding от ffdshow? Если так, то на какой конфе он нормально показывает и какие файлы (DVD-Video) по выше указаному скрипту? Почему такие вопросы - похоже что у меня он тормозит (одно ядро 100%, другое 80%). На монике при кадровой 60Гц, видимо нет смысла получать больше чем 60?
Гм, прикинул (если не ошибся) 720*576*60/1 000 000 = 24.88 МПикс/с. Получается, двухядерник не справиться ?

Добавление от 28.01.2008 19:48:

Мда, глянул, ресайз не подходит.

10. MAG79, 28.01.2008 19:57
vlad001
Обязательно ли нужен k-lite codec
Я пользуюсь паком. Конечно, можно устанавливать все по-отдельности. Можно даже без ffdshow. Через ffdshow - это один из вариантов. Второй вариант: создание файла-скрипта AVS. Это совсем не сложно. Для этого, если к примеру, видео назвается strelok.avi, то создаем файл strelok.avi.AVS со следующим содержимым:
код:
AviSource("Strelok.avi").ConvertToYV12()
mt("""
idx = rand()
backward_vec1 = MVAnalyse(isb = true, truemotion=true, pel = 2, search=3, idx = idx)
forward_vec1 = MVAnalyse(isb = false, truemotion=true, pel = 2, search=3, idx = idx)
last.MVFlowFps(backward_vec1,forward_vec1, num=75, den=1, ml=100, idx=idx)
""", threads=2, splitvertical=true)

Далее достаточно запустить AVS (или открыть из проигрывателя). Но в этом случае нехватка процессорной мощности будет проявляться уже не как отдельные стоп-кадры, а в виде замедления и редких рывков видео, а также отставания от звука, поэтому я считаю вариант через ffdshow более предпочтительным.

При проигрывании таким методом, должен использоваться кодек MPEG2 (libmpeg2) с галочкой DVD decoding от ffdshow?
Не обязательно. Можно включить ffdshow raw video filter и сделать настройки AviSynth уже в нем. Только я не вижу смысла смотреть MPEG2 через MVTool, когда есть TrimensionDNM, заточенный как раз для проигрывания таких файлов и гораздо менее требовательный к производительности процессора.

На монике при кадровой 60Гц, видимо нет смысла получать больше чем 60?
да, причем есть один секрет. Итоговая частота должна быть кратной исходной частоте кадров. Для примера: при исходной частоте кадров 25 и итоговой 50 получится 25 кадров родные, 25 - рассчитываются. При итоговой 75 - соотношение будет 25/50, А вот при итоговой 60 - 5/55, т.е. совпадут по времени с оригинальными лишь 5 кадров в секунду, остальные процессору придется рассчитывать, поэтому частота кадров 75 предпочтительнее, чем 60 - процессору считать меньше.

24.88 МПикс/с. Получается, двухядерник не стравиться ?
Все относительно. На максимальных настройках - нет. А вот если уменьшить глубину просчета при поиске векторов движения (search), то двухядерник уже может вполне справиться. К примеру, у меня при search=0 видео 21,6 МПикс/сек идет с общей загрузкой процессора 73-83%. Запас есть.

11. vlad001, 28.01.2008 20:34
MAG79
Можно даже без ffdshow.
Да нет, я как раз одного его и установил.

Только я не вижу смысла смотреть MPEG2 через MVTool, когда есть TrimensionDNM, заточенный как раз для проигрывания таких файлов и гораздо менее требовательный к производительности процессора.
Всё верно. Но там есть не приятные эффекты, двигающиеся "шторки", слева и справа "подрубает", т.е. диагональ становиться ещё меньше.

12. YuryKos, 28.01.2008 21:20
Да уж... похоже, что реальной альтернативы фильтров от Intervideo и Crystal Player на сегодняшний момент не существует... А так хочется получить DNM на HD-материале!

13. Яга, 28.01.2008 21:41
YuryKos
Ну можно купить телевизор филипс.

А вообще хорошо бы если бы в будущем эта функция появилась на стационарных хд=проигрывателях или скажем на видеокартах.

14. vlad001, 28.01.2008 21:43
Кстати, коль уж тут речь (в самом начале) шла и о телезизорах, то на Full HD телеках бывает DNM?

15. YuryKos, 29.01.2008 08:05
vlad001
Бывает. Последняя линейка Philips имеет DNM, работающий вплоть до 1080p.

16. MAG79, 29.01.2008 11:38
Яга
Вот выложил демофайлик: strelok_72fps_mvtools_demo_x264.avi (http://dvd-rec.info/video/strelok_72fps_mvtools_demo_x264.avi) (59,5 МБ)
Продолжительность: 4:16
Разрешение: 640х272
Исходная частота кадров: 23,976
Итоговая частота кадров: 71,927 (х3)
Применена библиотека MVTools 1.9.1 с самыми тяжелыми параметрами из примера.
Формат видео: H.264 (примененный кодек: х264)


Этот кусочек пережимался со скоростью 17-20 fps, т.е. в 4 раза медленнее заданной частоты. Получается, что для такой подготовки 2-ух часового фильма понадобится 8 часов. Использовался процессор CORE2DUO 2,13 ГГц.

17. Яга, 29.01.2008 14:56
Пробовал в реалтайме - слайдщоу.
Уменьшал разрешение - все мутное и морфирующиеся хаотично.
Не катит короче.

MAG79
Напиши(те) плиз инструкцию по пережатию файлов не в реальном времени.
Хочется попробовать дома - на работе просит декомпрессор какой-то, не открывает Ваш семпл.
Но 8 часов жать файл это конечно не серьезно ))))

MAG79
Семпл понравился
Причем я думаю что это даже слишком высокий FPS - все слишком плавненько
Заметно даже сильнее чем в телевизорах филипс.
Я бы уменьшил для себя FPS раза в полтора
48 кадров случайно не достаточно будет?
Или тут не только в кадрах дело?

18. hermitap, 29.01.2008 19:18
а насколько увеличивается при пережимании размер файла?

Добавление от 29.01.2008 19:24:

семпл не очень понравился. много артефактов.
наверное нужно уменьшить параметры обработки.

19. Яга, 29.01.2008 19:29
hermitap
Автору темы лучше знать, но подозреваю, что на примере сэмпла - раза в 2

20. hermitap, 29.01.2008 20:11
было бы круто если кто то смог бы выложить подобные семплы сделанные c различными настройками.

21. MAG79, 30.01.2008 11:22
hermitap
насколько увеличивается при пережимании размер файла?
Не на много. Для чистоты эксперимента сжал тот же кусок исходного файла с теми же настройками, только оставил родную частоту кадров. Размер файла получился 36,8 МБ. Т.е. в данном случае увеличение количества кадров в 3 раза дало увеличение размера файла всего в 1,6 раза. Преположение Яга оказалось близко к реальности.

семпл не очень понравился. много артефактов.
наверное нужно уменьшить параметры обработки.

Имеются в виду параметры сжатия? Во многом качество зависит от качества исходного материала. Хотя я специально на качестве не заморачивался. Сжал с теми настройками, что были. Научи какие параметы выбрать, чтобы было лучше.

было бы круто если кто то смог бы выложить подобные семплы сделанные c различными настройками.
А здесь имеются в виду настройки фильтра плавности движений? Если так, то могу сделать, но позже. Пока спрошу пожелания: какие именно настройки интересуют?

Яга
Вот выложил второй демофайлик: strelok_48fps_mvtools_demo_x264.avi (http://webfile.ru/1713420) (49,4 МБ)
Продолжительность: 4:16
Разрешение: 640х272
частота кадров (итоговая/исходная): 47,952 / 23,976 (х2)
Применена библиотека MVTools 1.9.1 с самыми тяжелыми параметрами из примера.
Формат видео: H.264 (примененный кодек: х264)


Напиши(те) плиз инструкцию по пережатию файлов не в реальном времени.
Инструкция по пережатию (как это делаю я):
1. Создать AVS-скрипт для исходного файла , для этого в этой же папке надо создать файл AVS. Например, для фильма strelok.avi файл будет называться strelok.avi.AVS, и выглядеть для обработки в одном процессе так:
код:
AviSource("Strelok.avi").ConvertToYV12()
idx = 1
backward_vec1 = MVAnalyse(overlap=4, isb = true, truemotion=true, pel = 2, search=3, idx = idx)
forward_vec1 = MVAnalyse(overlap=4, isb = false, truemotion=true, pel = 2, search=3, idx = idx)
last.MVFlowFps(backward_vec1, forward_vec1, num=2*FramerateNumerator(last), den=FramerateDenominator(last), ml=100, idx=idx)

настройки взяты из примера в описании MVTools 1.9.1.

2. Открыть этот скрипт в VirtualDub (http://virtualdub.org/) 'е. Сделать настройки аудио (Audio - Full processing mode; Audio -> Compression -> Lame MP3, 48000 Hz, 128 kbps CBR, stereo). Сделать настройки видео (Video - Full processing mode; Video -> Compression -> x264vfw -> Configure -> single pass - quantizer-based (CQP), Quantizer:26 -> OK -> OK).

3. Сохранить результат в файле: File -> Save as AVI -> ввести новое имя -> Save. Дождаться окончания процесса.

Для того, чтобы использовать кодеки сжатия Lame MP3 и x264 необходимо, чтобы они присутствовали в системе. Для этого надо при установке K-Lite Codec Pack включить соответствующие галки, либо качать и устанавливать их отдельно.

22. hermitap, 30.01.2008 13:39
Вообщем посмотрел я в тесте всякие фильмы с DNM..

прикольно. Надо ждать плееров которые смогут DivX проигрывать с этой опцией. Без прописываний, создание скриптов и т д.

типа open и play... как в WinDVD только для DivX.


из DVD я собираю только мультики для ребенка, фильмы смотрю в основном DivX и HDrip. Поэтому эта опция для DVD меня неинтересует, а вот для DivX было бы прикольно.

23. Яга, 30.01.2008 17:18
hermitap

Погоди, а у тебя же вроде филипс телек - зачем тебе программный днм??? )))

Я бы сказал что надо ждать стационарных плееров с такой функцией

24. hermitap, 30.01.2008 17:38
цитата:
Яга:
hermitap

Погоди, а у тебя же вроде филипс телек - зачем тебе программный днм??? )))

Я бы сказал что надо ждать стационарных плееров с такой функцией
У меня самая дешевая модель филипса. что такое DNM он не знает. накоплю денег куплю другой телек.
Возможно филипс с DNM... Я когда покупал телек про HTPC не думал, на тот момент нужна была спросто смотрелка эфира.


насчет стационарных... ну выпустят DVD приводы с такой функцией... поздновато.
нужны уже HD стационарники c функцией DNM которые бы играли и HD рипы. Дюны всякие и т д. А это не скоро.

25. MAG79, 31.01.2008 05:26
hermitap
прикольно. Надо ждать плееров которые смогут DivX проигрывать с этой опцией. Без прописываний, создание скриптов и т д. типа open и play... как в WinDVD только для DivX.

И я говорю: "прикольно" Только долго ждать придется, а можно и вообще не дождаться.
Прописывать скрипт надо всего один раз. ffdshow помнит все сделанные настройки даже после перезагрузки, поэтому достаточно один раз настроить, и все DivX'ы пойдут в режиме "open и play".

Вчера принесли документальный фильм про Эрмитаж. Это что-то. Мало того, что он был пожат с разрешением 512х388, так еще и растянут по вертикали (пиксели не квадратные), пришлось в проигрывателе вручную выставлять соотношение 16:9. Но это еще не все. Когда смотришь этот фильм - замечаешь "дерганное" проигрывание: при наездах и перемещениях камеры заметны неравномерности в движении. Полистал покадрово, и точно, каждый 6 кадр дублируется. Т.е. из 29,97 кадров в секунду реальных кадров 25, остальные дубли. Поискал по форуму в теме AviSynth - нашел плагин TIVTC (http://forum.ixbt.com/topic.cgi?id=29:9331:3083#3083) , как раз предназначенный для удаления повторяющихся кадров.
Написал скрипт, который удаляет дубли, а затем при помощи MVTools добавляет плавности движениям:
код:
Avisource("Эрмитаж. Прогулка по музею.avi").ConvertToYV12()
tfm()
tdecimate(cycle=6)

mt("""
idx = rand()
backward_vec1 = MVAnalyse(isb = true, truemotion=true, pel = 2, search=3, idx = idx)
forward_vec1 = MVAnalyse(isb = false, truemotion=true, pel = 2, search=3, idx = idx)
last.MVFlowFps(backward_vec1,forward_vec1, num=3*FramerateNumerator(last), den=FramerateDenominator(last), ml=100, idx=idx)
""",threads=2,splitvertical=true)

Впечатление от просмотренного - просто класс! Очень приятно смотреть документальные фильмы, где хочется рассмотреть каждую детальку, с плавными движениями: успеваешь хорошо разглядеть даже движущиеся детали. И все это в реальном времени.

P.S. CORE2DUO 3,32 ГГц. Загрузка обоих ядер колебалась около 80%. Достигнутая производительность 512*388*75/1 000 000 = 14,9 МПикс/сек.

Добавление от 31.01.2008 05:40:

Теперь ответ на вопрос Яга:
48 кадров случайно не достаточно будет?
Или тут не только в кадрах дело?


Как раз в таких случаях чем больше частота кадров, тем лучше. Другими словами 75-100 кадров в секунду - это лучшая частота для просмотра документальных фильмов, где 90% съемки это плавные наезды и перемещения камеры, а цель просмотра - получить максимальное удовольствие от увиденного и рассмотреть все детали. Другой вопрос, чтобы процессор успевал обсчитывать, а монитор - показывать это количество кадров.

При просмотре художественных картин, мультфильмов и т.д. предпочтения могут быть другие. Каждый решает для себя сам. Мне, например, нравится смотреть даже художественные фильмы с частотой 75 кадров в секунду. Больше монитор не позволяет - иначе на сотне бы смотрел.

26. Dimon Hell, 31.01.2008 07:59
Дааа,не завидую я вам...
На самом деле хорошая функция этот DNM.
У меня Филипс 42"9632,у него DNM на 1080p работает,в отличии от Яги.Без него смотреть некоторые вещи вобще противопоказано.Потом кажется,что тормозит уже всё,пока его не включишь.

27. MAG79, 31.01.2008 09:27
Dimon Hell
Можно поинтересоваться, с какого источника работает DNM у этого ТВ и можно ли ее включить при поступлении сигнала по RGB? по HDMI?

28. hermitap, 31.01.2008 09:54
Подскажите, а если я хочу пережать фильм и смотреть его через свой HTPC на телевизоре у
которого разрешение 1280x760 60HZ какие устанвки я должен установить для пережатия с увеличенным числом кадров?

29. Яга, 31.01.2008 10:34
MAG79
Будет показывать со всех источников и на всех разрешениях.

30. hermitap, 31.01.2008 10:48
еще вопрос. Если я хочу конвертить на обчном 1 ядерном проце.

какой должен быть скрипт? меня смущает MT в начале скрипта

31. MAG79, 31.01.2008 11:26
hermitap
на телевизоре у которого разрешение 1280x760 60HZ какие устанвки я должен установить для пережатия с увеличенным числом кадров?
- по разрешению. для источников меньшего разрешения, чем 1280х760 я бы оставил родное разрешение, для остальных уменьшил бы до разрешения ТВ. Тогда в первом случае upscaling'ом будет заниматься компьютер, это не такая уж ресурсоемкая задача, а во втором случае получим экономию дискового пространства (все-равно большего разрешения на этом ТВ не увидеть).
- по частоте кадров. Идеальный случай - 60 кадров/сек. Если видео будет подготавливаться, то в скрипте для лучшего результата надо указать num=60, den=1, тогда любая исходная частота кадров будет приведена к 60, пусть и медленне, чем с кратным коэффициентом, зато результат для данного ТВ будет наилучшим.

я хочу конвертить на обычном 1 ядерном проце. какой должен быть скрипт? меня смущает MT в начале скрипта?
Целиком таким:
код:
AviSource("Strelok.avi").ConvertToYV12()
Lanczos4Resize (1280, 760) # для исходных разрешений, которые больше, чем ТВ, иначе убрать эту строку
idx = 1
backward_vec1 = MVAnalyse(overlap=4, isb = true, truemotion=true, pel = 2, search=3, idx = idx)
forward_vec1 = MVAnalyse(overlap=4, isb = false, truemotion=true, pel = 2, search=3, idx = idx)
last.MVFlowFps(backward_vec1, forward_vec1, num=2*FramerateNumerator(last), \
den=FramerateDenominator(last), ml=100, idx=idx)
# вариант кратного увеличения кадров, быстрее обрабатывается, все иходные кадры сохраняются,
# иначе num=60, den=1 - дольше обработка, меньше сохраненных исходных кадров, зато плавнее результат

Яга
Спасибо. Это очень интересно. Просто по VGA можно передать картинку с минимальной частотой 60 Гц (прошу поправить, если не так).
Неужели Philips'ы такие умные, что вычленяют из 60 Гц сигнала реальные 24-30 кадров и правильно из обработают?

32. Oliverst, 31.01.2008 11:37
MAG79

мне кажется речь идет о стационарных плеерах
в случае с компом и 60Гц то думаю ничего телевизор не сможет

33. MAG79, 31.01.2008 11:41
Oliverst
я понял
мне как раз интересен вопрос о подаче HD-видео на ТВ с компьютера. Сможет ли на таком сигнале ТВ от Philips включить DNM?

34. Oliverst, 31.01.2008 11:43
MAG79
Этот вопрос для Dimon Hell

35. Dimon Hell, 31.01.2008 11:46
У меня Philips 42PFL9632.
С компьютера подаётся 1920х1080х60 герц,DNM у меня работает в любом режиме,который я пробовал.Подключение по HDMI.Смотрю только 1080р видео,в нём всё работает.При просмотре DVB-C тоже всё в порядке,больше меня ничего не интересует.

36. Oliverst, 31.01.2008 11:48
Dimon Hell

на видеокарте подключение через DVI или HDMI?

37. MAG79, 31.01.2008 11:49
Dimon Hell
Спасибо за информацию. Буду приглядываться к ТВ этой лиценйки.

38. Яга, 31.01.2008 11:52
Только оффтоп жесткий пошел какой-то
Что же ты Маг провоцируешь засорение темы

Сегодня ДНМ в том или ином виде есть (как мне кажется) на большинстве телеков.
Самсунг, Филипс - точно. В Шарпе вроде бы тоже есть подобное. Просто надо в настройках смотреть в магазинах.

39. MAG79, 31.01.2008 12:40
Яга
Пока все обсуждения близки к теме: сравнивать качество и производительность с промышленными (бытовыми) решениями все-равно придется. Никуда от этого не деться. Хотя бы для того, чтобы дать ответ на вопрос экономической обоснованности апгрейда компьютера с целью получения эффекта плавности движений на мониторе, используя мощности компьютера, при наличии альтернативных решений в виде покупки ТВ за 66 т.р.
Во как завернул
Вариант просмотра видео с компьютера через ТВ я тоже рассматриваю. Это тот же DNM, только реализованный аппаратно. Может кто дать ссылку на обсуждение аппаратных аналогов DNM в ТВ?
Тогда здесь можно будет сконцентрироваться только на компьютерной и программной частях вопроса.

40. Яга, 31.01.2008 14:41
MAG79
Телевизор с такими функциями при просмотре сигнала средней четкости бдует стоить гооораздо дешевле 66 т.р.
Сигнал высокой четкости с ДНМ с компа через ави-тулс смотреть в ближайшие несколько лет нереально - как ты сам рассчитал
Кроме того, не стоит забывать что при покупке альтернативного тв ДНМ будет доступна и при просмотре эфира
А также при подключении любого проигрывателя и т.д.

Вывод - покупка ТВ с ДНМ или аналогами однозначно разумней.

Прога будет полезна лишь для узкого круга фанатиков ДНМ, обожающих смотреть фильмы в ави качестве с компа

Вот такие мысли.

41. hermitap, 31.01.2008 18:29
цитата:

Вывод - покупка ТВ с ДНМ или аналогами однозначно разумней.
Прога будет полезна лишь для узкого круга фанатиков ДНМ, обожающих смотреть фильмы в ави качестве с компа
Вот такие мысли.

согласен.. тоже пришел к такому выводу. буду копить 2к$ к лету куплю такой телек.

42. MAG79, 31.01.2008 20:21
Каждый волен поступать так, как считает более целесообразным. Приглашаю тех, кто еще не накопил на ТВ с функцией DNM к дальнейшему обсуждению.
У меня пока тоже нет такого ТВ, поэтому я, как представитель "фан-клуба" любителей просмотра видео на компьютере с плавными движениями, продолжу освоение подобных программных решений.

Третий день бьюсь над задачей получения фильма FullHD (1080p) с частотой кадров 75 fps. Пока добился обработки такого источника из 25 в 75 fps при помощи MVTools на скорости около 2-2,5 кадра в секунду. Это максимум 1/25 риалтайма. Т.е. один час видео на одном ядре будет обрабатываться 25 часов. Тоже вариант, если есть доступ хотя бы к 3-ем компьютерам (например, на работе), то за ночь они перемолотят каждый свою часть. Утром можно будет просто слить все в один файл и посмореть. Как только появятся результаты - сообщу подробнее.

Яга
По поводу нереальности просмотра с компьютера сигнала высокой четкости и повышенной плавности - все реально, просто пока обработка в реальном времени не по зубам современным настольным процессорам. Временный выход: сперва обработка, затем просмотр. Уже в этом году нам обещают 8-ми ядерные процессоры Nehalem с аналогом HT для каждого ядра, которые будут способны обрабатывать 16 потоков одновременно.

43. Яга, 31.01.2008 20:47
Маг, прости если показался скептичным.
Кто знает, может благодаря таким как ты мы сможем смотреть хд видео с ДНМ с не самого сильного компа уже через пару лет
В любом случае спасибо тебе за интересное начинание. Без шуток.

Маг, а скажи как знающий человек - просто любопытно - что думаешь об аппартной стороне проблемы?
То есть возможности появления в будущем видеокарточек с такой фичей? Или даже кустарной разработки НЕЧТО
Согласись по большому счету аппаратный путь гораздо разумней.
Заставлять процессор выполнять такие функции - это как цеплять плуг к феррари мощностью 320л.с. и пытаться вспахать поле
А ведь одна единственная лошадка справится гораздо лучше

Добавление от 31.01.2008 20:51:

Еще раз респект тебе за успешные попытки решать проблему программно
меня только расстраивают требования

44. hermitap, 01.02.2008 09:04
MAG79

Полностью по твоему рецепту сконвертил фильм hitman на моем P4 3Ghz (который на работе) фильм сконвертился за 11 часов.

при сравнении конверченного фильма с оригиналом... разачарован

да плавно. Но как бы стало не резко. немного не резко.

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

цитата:

Третий день бьюсь над задачей получения фильма FullHD (1080p) с частотой кадров 75 fps. Пока добился обработки такого источника из 25 в 75 fps при помощи MVTools на скорости около 2-2,5 кадра в секунду. Это максимум 1/25 риалтайма. Т.е. один час видео на одном ядре будет обрабатываться 25 часов.

а телевизор делает это в реалтайме... интересно как

45. MAG79, 01.02.2008 12:45
hermitap
Давай разбираться.
Какое разрешение было у фильма до обработки? частота кадров? битрейт?
Какие они стали после обработки?

телевизор делает это в реалтайме... интересно как
мне тоже интересно, думаю, там аппаратная реализация тех же алгоритмов, которые мы здесь обсуждаем.

46. hermitap, 01.02.2008 12:50
Оригинал....
General
Complete name : D:\Video\hitman.avi
Format : AVI
Format/Info : Audio Video Interleave
Format/Family : RIFF
File size : 1.37 GiB
PlayTime : 1h 28mn
Bit rate : 2194 Kbps
StreamSize : 8.10 MiB
Writing application : VirtualDubMod 1.5.10.2 (build 2540/release)
Writing library : VirtualDubMod build 2540/release
Video #0
Codec : XviD
Codec/Family : MPEG-4
Codec/Info : XviD project
Codec profile : Streaming Video Profile/Level 1
Codec settings/PacketBitStream : Yes
Codec settings/BVOP : Yes
Codec settings/QPel : No
Codec settings/GMC : 0
Codec settings/Matrix : Default
PlayTime : 1h 28mn
Bit rate : 1806 Kbps
Width : 672 pixels
Height : 288 pixels
Display Aspect ratio : 2.35
Frame rate : 25.000 fps
Resolution : 8 bits
Chroma : 4:2:0
Interlacement : Progressive
Bits/(Pixel*Frame) : 0.371
StreamSize : 1.12 GiB
Audio #1
Codec : AC3
PlayTime : 1h 28mn
Bit rate : 382 Kbps
Bit rate mode : CBR
Channel(s) : 6 channels
Channel positions : Front: L C R, Rear: L R, Subwoofer
Sampling rate : 48 KHz
StreamSize : 243 MiB

После обработки

D:\Video\hitman_converted.avi
General
Complete name : D:\Video\hitman_converted.avi
Format : AVI
Format/Info : Audio Video Interleave
Format/Family : RIFF
File size : 3.21 GiB
PlayTime : 1h 28mn
Bit rate : 5163 Kbps
Writing library : VirtualDub build 28312/release
Video #0
Codec : Intel H.264
Codec/Info : Intel H.264
PlayTime : 1h 28mn
Bit rate : 542 Kbps
Width : 672 pixels
Height : 288 pixels
Display Aspect ratio : 2.35
Frame rate : 50.000 fps
Resolution : 24 bits
Bits/(Pixel*Frame) : 0.056
Audio #1
Codec : PCM
Codec/Family : PCM
Codec/Info : Microsoft PCM
Bit rate : 4608 Kbps
Channel(s) : 6 channels
Sampling rate : 48 KHz
Resolution : 16 bits
Video0 delay : 4s 983ms
StreamSize : 1.78 GiB
Coherency/PlayTime : 5335776


Сразу скажу, этим я никогда не занемался, потому я тут чайник

47. MAG79, 01.02.2008 13:17
hermitap
Разрешение осталось неизменным, увеличение кадров кратное (25 -> 50). Значит на этапе обработки все исходные 25 кадров в секунду сохранились без изменения качества. Ухудшение качества произошло на этапе сжатия результата, что подверждает уменьшение видео-битрейта с 1806 Kbps до 542 Kbps.

Причина в настройках кодирования в x264. Видимо нужно увеличить порог качества (уменьшить значение Quantizer), либо напрямую указать требуемый битрейт (Single pass - bitrate-based (ABR) -> Average bitrate). Он должен быть 1500 - 1800 кбит/сек.
Попробуй на небольшом куске (5-10 секунд), если качество устраивает - запускай весь файл. Кусок выделяется в VirtualDub'е кнопками Home и End при нахождении на соотв. кадре.

У меня встречный вопрос: каким образом удалось оставить 6-канальный звук? И почему он в другом формате а не оcтавлен в AC3?

48. hermitap, 01.02.2008 13:33
цитата:
У меня встречный вопрос: каким образом удалось оставить 6-канальный звук? И почему он в другом формате а не оcтавлен в AC3?

я вообще не трогал звук. неуказывал во что конвертить.

К звуку я отношусть сейчас спокойно. Меня устраивает обычный стереозвук через колонки телевизора.

У меня 1комнатная квартира и ребенко 3и года. Со звуком ненаиграешься. Темболее когда малой спит мы с женой смотрим
через радионаушники кино. Вообщем как родился ребенок я свой 5.1 звук продал. НЕ до него сейчас..

Насчет настроек, спасибо попробую.

Добавление от 01.02.2008 14:15:

Сменил настройки, увеличил битрейт, стало гораздо лучше.

Только на очень динамических сценах, всетаки много артефактов. (Hitman бой на мечах в вагоне)
Мечи там с ореолчиком таким получаются.. вроде на них полителеновые прозрачные пакеты надеты. В остальном нормально.


Вообщем для себя решил, телек надо брать с DNM..

Добавление от 01.02.2008 14:16:

а на мультиках так вообше песня.... без артефактов, красиво... просто идеально получается...

49. Gman, 01.02.2008 20:51
на моем Samsung 40M87BD есть функция "фильм плюс", аналог DNM. Работает при всех форматах видеосигнала на входе, кроме 1080р. С 1080i работает точно, проверенно, получается потрясающая картинка, не стробит вообще, даже в кинотеатрах так не бывает 720р и другие более низкие разрешения естественно тоже поддерживаются. А в новейшем SAmsung K.I.N.O (Smsung 40F86BD) поддерживается и 1080р =) и 24-ядерный проц не нужен =)

а с компьютера, Tridimension в WinDVD тема конечно прикольная, но 1) мне не нравится WinDVD 2) требуется отключение аппаратного ускорения 3) требуется включения режима Weave, что на очень многих DVD приводит к появлению интерлейсинга 4)при включении Tridimention обрезаются края изображения по бокам, картинка получается с черной рамкой... а вот непережатый Blu-ray фильм при просмотре Crystal Player'om (декодируется с помощью CoreAVC PRO 1.5, программно) не стробит даже без всяких технологий увеличения плавности (C2D @3.6 GHz). А вот HD-рипы да, стробят немного.

50. crystallize, 02.02.2008 18:57
Почитал темку, и у меня возникла пара вопросов:
1) Как открывать скрипты в VD? Я открыл файл видео,потом Файл\Запустить скрипт, указал avs, а он говорит:
Error during execution at line 1, column 10: variable `AviSource` not found
AviSource<!>("TransFormers_G1_S1_Opening.avi").ConvertToYV12()
2) вариант кратного увеличения кадров, быстрее обрабатывается, все иходные кадры сохраняются,
иначе num=60, den=1 - дольше обработка, меньше сохраненных исходных кадров, зато плавнее результат

То есть он во 2 случае рассчитывает Дополнительные кадры, а на их основе делает свои варианты исходных? А качество при этом не теряется?

51. MAG79, 02.02.2008 20:15
Gman
Спасибо за информацию про Samsung 40M87BD.

3) требуется включения режима Weave, что на очень многих DVD приводит к появлению интерлейсинга
Да, именно поэтому предлагается использовать Trimension DNM совместно с фильтром-деинтерлейсером от DScaler, который очень качественно убирает гребенку из черезстрочного сигнала. См. инструкцию по настройке Trimension DNM по ссылке из шапки темы.

4)при включении Tridimention обрезаются края изображения по бокам, картинка получается с черной рамкой...
Эту рамку можно убрать за пределы экрана зумом. например, с помощью того же Media Player Classic кнопкой "9" на NumPad'е.

Crystal Player увеличивает частоту кадров только в два раза. Коэффициент увеличения не поддается настройке. За счет чего этому проигрывателю удается работать быстрее фильтров MVTools и MSU FRC, я еще не выяснил.
Не совсем понял, что имеется в виду под тем, что непережатое HD-видео "не стробит", а пережатое - "стробит". В чем это выражается?

crystallize
1) Указывать AVS-скрипт _вместо_ исходного AVI-файла, т.е. в диалоге Open.
2) Дополнительные кадры всегда расчитываются на основе исходных. Шаг времени между каждым кадром постоянный. Если в данный отсчет времени есть исходный кадр, то отображается он, иначе расчитывается дополнительный. В первом случае при коэффициенте = 2 кадры будут идти через 20 ms вместо 40 ms, поэтому каждый второй кадр будет расчитываться. Во втором случае 16,(6) ms вместо 40 - совпадение с каждым 5-ым исходным кадром, через каждые 200 ms. Т.е. в итоговом видео неизменным сохраняется только 1 из 5 исходных кадров, остальные расчитываются. Насколько теряется качество по сравнению с исходным, сейчас как раз и пытаюсь разобраться. Визуально, дискомфорта я не ощущаю, хотя на HD-материале я наблюдал потерю четкости, но причину этого еще полностью не выяснил. Результаты теста покажут.

52. hermitap, 03.02.2008 22:03
Интересно, а почему данную технологию не встраивают в видеокарты? на аппаратном уровне.

Было бы классно.

p.s. С удивлением узнал что DNM технология 95 года. За 13 лет мало продвинулась. Не в каждом доме так сказать

53. crystallize, 05.02.2008 14:37
Спасибо большое. Файл скрипта теперь просто перетаскиваю в окно дуба. Вообще прикольно бывает перекодить таким образом ролик, скажем, 12 к/с (у меня их штук 5-10, реклама древних игр). Иногда, правда, во избежание жутких артефактов такие клипы приходится пережимать, например, flm->avi h264, а только потом добавлять кадры.
Ещё заметил вот что: т.к. при просмотре некоторых клипов через Crystal подгружается ffdshow, (а в реалтайме пахать mvtools сил моего компьютера не хватает), и в кристале включена буферизация при проблемах со скоростью, то смотрим так: минуту ждём (буферизация), минуту смотрим.

54. MAG79, 07.02.2008 10:16
По просьбам присутствующих покрутил Crystal Player (Professional 1.98).

Действительно, как пишет crystallize, этот плеер имеет буфер настраиваемого размера с индикацией статистики заполненности (вызывается кнопкой S). К сожалению если компьютер не вытягиват обработку в реальном времени, то этого буфера хватает не на долго. Для начала можно конечно и попользоваться, но постоянно останавливать воспроизведение, ждать заполнения буфера и снова включать - не лучший выход.

Меня же интересовала функция MultiSampling, которая имеет два режима: Planar Blending (Планарный морфинг) и Motion Morphing (Отслеживание движений). Надо сказать, есть некая путанница в соответствии названий режимов мультисэмплинга. Где морфинг? Куда делось смешивание (blending)? Посмотрим, чем же реально отличаются эти два варианта.

Из статьи Натальи Сергеевой о Crystal Player (http://www.softkey.info/reviews/review2922.php) становится ясно, что мультисэмплинг увеличивает количество кадров в два раза. Я проверил частоту кадров при помощи fraps: действительно частота кадров увеличивается ровно вдвое по сравнению с исходной. После нескольких попыток сохранить результаты работы мультисэмлинга мне все же удалось получить видеоролики, демонстрирующие работу обоих режимов.

Что показал анализ этих роликов:
1. Как ни странно, в отличие от MSU FRC и MVTools, исходные кадры в Crystal Player при включенном мультисэмплинге подвергаются изменению. Ниже приведена иллюстрация исходного кадра и полученного в результате мультисэмплинга.
Анализ мультисэмплинга (MultiSampling) программы Crystal Player - 720x253, 25,4Kb
2. Каждый новый кадр строится из двух соседних путем смешивания (наложения) их друг на друга. У меня получился такой же результат при наложении соседнего кадра с коэффициентом непрозрачности 25%. Т.е. увеличение количества кадров в режиме Planar Blending достигается путем наложения двух соседних кадров с разной степенью прозрачности. Резкость при таком методе теряется, появляются "контуры-призраки".
3. Режим Motion Morphing уже производит компенсацию движения и расчет промежуточных кадров, но результат также практически всегда (отчего зависит, я еще не выснил) склеивается наложением с соседним кадром с той же непрозрачностью 25%. Резкость каждого полученного кадра уже чуть получше, чем у предыдущего режима, но далека от резкости оригинала. "Контуров-призраков" уже меньше.

К сообщению приложены файлы: 1.jpg, 720x253, 25Кb

55. Яга, 07.02.2008 11:13
Так
И какая же мораль сей басни?

56. hermitap, 07.02.2008 11:56
цитата:
Яга:
Так
И какая же мораль сей басни?

Для меня мораль такая будет
Я на следующей недели собираюсь взять телек FULL HD с аналогом DNM только по самсунговски Movie Plus
http://www.rozetka.com.ua/ru/products/details/6232/index.html

правда я еще его в глаза не видел, завтра рейд по магазинам на просмотр.

57. RDL, 07.02.2008 13:01
[q]MAG79:

написал вот такой скриптик, хочу перекодить фильм, но у меня получаеться двояться кадры, может сможеш помоч, что нужно подправить??

AviSource("Shrek.avi").ConvertToYV12() # или MPEG2Source, DirectShowSource
MT("""
source = last
backward_vec1 = source.MVAnalyse(overlap=4, isb = true, truemotion=true, pel = 2, search=3, idx = 1)
forward_vec1 = source.MVAnalyse(overlap=4, isb = false, truemotion=true, pel = 2, search=3, idx = 1)
cropped = source.crop(4,4,-4,-4)
backward_vec2 = source.MVAnalyse(overlap=4, isb = true, truemotion=true, pel = 2, search=3, idx = 2)
forward_vec2 = source.MVAnalyse(overlap=4, isb = false, truemotion=true, pel = 2, search=3, idx = 2)
source.MVFlowFps2(backward_vec1, forward_vec1, backward_vec1, forward_vec1, num=2*FramerateNumerator(source), den=FramerateDenominator(source), ml=100, idx=1, idx2=2)
""",threads=2, splitvertical=true)

Заранее спасибо.

58. MAG79, 07.02.2008 14:14
Яга
Вывод следующий: Crystal Player увеличивает количество кадров только в 2 раза, причем страдает резкость изображения. Это и есть плата за высокую скорость работы.

RDL
А как же справку к MVTools почитать?
1. Параметр overlap=4 не поддерживается MVFlowFps2, поэтому является лишним.
2. cropped после присвоения не используется (а должен) - видимо, опечатка.
3. В MT-процедуре нельзя указывать явные значения idx и idx2 - они для каждого процесса должны быть разными.
Итоговый скрипт, получившийся у меня:
код:
AviSource("Shrek.avi").ConvertToYV12()
global idx1 = 10 # глобальная подсказка от IanB
global idx2 = 20
MT("""
source = last
idx1 = idx1 + 1
backward_vec1 = source.MVAnalyse(isb = true, truemotion=true, pel = 2, search=3, idx = idx1)
forward_vec1 = source.MVAnalyse(isb = false, truemotion=true, pel = 2, search=3, idx = idx1)
cropped = source.crop(4,4,-4,-4)
idx2 = idx2 + 1
backward_vec2 = cropped.MVAnalyse(isb = true, truemotion=true, pel = 2, search=3, idx = idx2)
forward_vec2 = cropped.MVAnalyse(isb = false, truemotion=true, pel = 2, search=3, idx = idx2)
source.MVFlowFps2(backward_vec1, forward_vec1, backward_vec1, forward_vec1, num=2*FramerateNumerator(source), \
den=FramerateDenominator(source), ml=100, idx=idx1, idx2=idx2)
""",threads=2, splitvertical=true)

Добавление от 07.02.2008 14:38:

У меня уже готовы ролики, демонстрирующие работу обоих плагинов для AviSynth (MSU FRC и MVTools) и программы Crystal Player. Уже провел массовое автоматизированное сравнение, посчитал метрику качества SSIM. Для полного счастья осталось ролик с результатами WinDVD получить, тогда будет полная картина распределения мест по качеству работы этих программных средств.

Проблема в том, что fraps'ом достать ролик из WinDVD пока не выходит. WinDVD отображает черный экран, когда fraps загружен. Кто что посоветует? Как сохранить результаты работы TrimensionDNM из WinDVD?

59. dids, 07.02.2008 15:06
В этой теме обсуждаются другие вопросы.
Воспользуйтесь Поиском по форуму или создайте новую тему.

60. Яга, 07.02.2008 15:25
hermitap
Проверь только - работает ли муви плюс со всех источников или только на тв эфире. Или только на НЕ фулл хд. И тд и тп - ты понял в общем

MAG79
Crystal Player увеличивает количество кадров только в 2 раза, причем страдает резкость изображения. Это и есть плата за высокую скорость работы.
Нормальная плата имхо
Зато проц на 20% у меня загружен.
Т.е. если бы хотя бы до 75fps увеличивал кристал - цены бы ему не было.

62. RDL, 07.02.2008 18:38
цитата:
MAG79:
RDL
А как же справку к MVTools почитать?
1. Параметр overlap=4 не поддерживается MVFlowFps2, поэтому является лишним.
2. cropped после присвоения не используется (а должен) - видимо, опечатка.
3. В MT-процедуре нельзя указывать явные значения idx и idx2 - они для каждого процесса должны быть разными.
Итоговый скрипт, получившийся у меня:
код:
AviSource("Shrek.avi").ConvertToYV12()
global idx1 = 10 # глобальная подсказка от IanB
global idx2 = 20
MT("""
source = last
idx1 = idx1 + 1
backward_vec1 = source.MVAnalyse(isb = true, truemotion=true, pel = 2, search=3, idx = idx1)
forward_vec1 = source.MVAnalyse(isb = false, truemotion=true, pel = 2, search=3, idx = idx1)
cropped = source.crop(4,4,-4,-4)
idx2 = idx2 + 1
backward_vec2 = cropped.MVAnalyse(isb = true, truemotion=true, pel = 2, search=3, idx = idx2)
forward_vec2 = cropped.MVAnalyse(isb = false, truemotion=true, pel = 2, search=3, idx = idx2)
source.MVFlowFps2([u]backward_vec1, forward_vec1, backward_vec1, forward_vec1[/u], num=2*FramerateNumerator(source), \
den=FramerateDenominator(source), ml=100, idx=idx1, idx2=idx2)
""",threads=2, splitvertical=true)




Огромное спасибо все получилось, работает. Только в твоем скрипте опечаточка наверное, в MVFlowFps2 ты указал вектора одинаковые . Теперь другая проблемка, стало видно где склеиваються два полукадра в один по центру, это никак не убираеться??

63. crystallize, 08.02.2008 05:33
А как бы увеличить максимальный объём буфера Crystal Player раз в 10? А лучше в 100. А то 1...8мб-это, товарищи, в наш век несерьёзно...

64. MAG79, 08.02.2008 06:44
RDL
в твоем скрипте опечаточка наверное, в MVFlowFps2 ты указал вектора одинаковые
Ты прав, это опечатка.

стало видно где склеиваються два полукадра в один по центру, это никак не убираеться?
Убирается. Там же в справке к MVTools сказано, что можно использовать режим SetMTMode(2). Разница заключается в том, что в отличии от MT каждое ядро процессора обрабатывает не часть кадра, а кадр целиком. Если упрощенно, то обработка кадров распределяется между ядрами, идет параллельно (каждый кадр в своем потоке), а результаты склеиваются.

Этот же скрипт с использованием SetMTМode будет выглядеть так:
код:
AviSource("Shrek.avi").ConvertToYV12()
global idx1 = 10 # глобальная подсказка от IanB
global idx2 = 20
SetMTMode(2,2) # 2-й режим, 2 потока
source = last
idx1 = idx1 + 1
backward_vec1 = source.MVAnalyse(isb = true, truemotion=true, pel = 2, search=3, idx = idx1)
forward_vec1 = source.MVAnalyse(isb = false, truemotion=true, pel = 2, search=3, idx = idx1)
cropped = source.crop(4,4,-4,-4)
idx2 = idx2 + 1
backward_vec2 = cropped.MVAnalyse(isb = true, truemotion=true, pel = 2, search=3, idx = idx2)
forward_vec2 = cropped.MVAnalyse(isb = false, truemotion=true, pel = 2, search=3, idx = idx2)
source.MVFlowFps2(backward_vec1, forward_vec1, backward_vec2, forward_vec2, num=2*FramerateNumerator(source), \
den=FramerateDenominator(source), ml=100, idx=idx1, idx2=idx2)

Возможно код избыточен и объявление глобальных переменных необязательно, но в таком виде работает. По моим наблюдениям применительно к MVTools команда SetMTMode работает медленнее функции MT. Зато никаких линий склеек на кадрах.

Добавление от 08.02.2008 09:21:

crystallize
В Crystal Player несколько буферов. До 8МБ - это буфер чтения файла (Options - Splitters - Data Reader - File Cache Size). А есть еще более полезный для задачи плавного воспроизведения - буфер кадров (Options - Frame Buffer Size). Его размер регулируется от 10 до 50% памяти, что на моем рабочем компьютере дает буфер от 223 до 310 кадров. Странный результат, слабо соотносящийся с цифрами 10 и 50. Хватает на 5-15 секунд, затем снова требуется заполнение буфера. Чтобы программа сама контроллировала размер буфера и останавливалась для его заполнения надо включить соответствующий режим (Options - Speed Troubleshooting - Stop and Buffer).

65. RDL, 08.02.2008 13:54
цитата:
MAG79:
.... По моим наблюдениям применительно к MVTools команда SetMTMode работает медленнее функции MT. Зато никаких линий склеек на кадрах.

я вот потестил этот скрипт с SetMTMode и без SetMTMode , выяснилось что разницы никакой нет, т.е. загрузка каждого ядра была где-то на 30% и 60% соответственно. Следовательно возникают такие мысли, либо SetMTMode не работает вообще , либо от него нет толка. .... есть какие нибуть мысли по этому поводу? , а когда использую МТ, тогда оба ядра на 100% загружены ну и соответственно и линия соединения видна на кадре .

З.Ы. Я не программист, и по этому за ранее прошу прощения если задаю может ламерские вопросы.

66. hermitap, 09.02.2008 15:03
Еще раз вернусь к телевизорам. В связи с тем что я хочу видеть этот эффект всетаки на телевизоре.

Лпазил сегодня по магазинам, смотрел SAMSUNG 40N8 40M8 модели так как нацелился купить что-то из єтого.

MOVIE PLUS с FULL HD сигналом не работает. с 720p работает.

Увидел я модель SAMSUNG LE40F86
и на нем крутили властелин колец FULLHD с 100HZ муви +
Это надо видеть. Четко красиво, ниодного артефакта!!! Нельзя сказать что єффект спектакля прет. Наоборот, все очень хорошо.

я минут 30 смотрел на этот телек думая где бы еще взять 400$

вообщем 40F86 и не думать.

67. Яга, 09.02.2008 21:04
720р - это качество типового ашд-рипа??

Добавление от 09.02.2008 21:05:

Недешевый ты телек такой заприметил
сколько стоит - порядка 70 что ли?

68. hermitap, 09.02.2008 21:22
цитата:
Яга:
720р - это качество типового ашд-рипа??

да.


цитата:


Недешевый ты телек такой заприметил
сколько стоит - порядка 70 что ли?
у нас гривны, но на $ в инет магазине можно купить 2100-2200$
в магазине 2700$
Но его качество изображения и 100hz муви+ стоит того. если конечно нравится этот эффект в кино.


я залажу в долг на 5 месяцев чтобы купить его. У нас в Украине зарплаты поменьше. Для меня дорого.

Добавление от 09.02.2008 21:42:

а Во всем виноват MAG79

Если бы я не увидел эту его тему. Не попробовал, и не думал-бы о всяких DNM и т п

69. vjk, 09.02.2008 22:58
А можете привести пример скрипта для обработки видео с самым высоким качеством?

Добавление от 10.02.2008 14:51:

И еще вопрос. Смотрю видео с таким параметром:

mt(""" idx = rand() backward_vec1 = MVAnalyse(isb = true, truemotion=true, pel = 2, search=3, idx = idx) forward_vec1 = MVAnalyse(isb = false, truemotion=true, pel = 2, search=3, idx = idx) last.MVFlowFps(backward_vec1,forward_vec1, num=2*FramerateNumerator(last), den=FramerateDenominator(last), ml=100, idx=idx) """,threads=2,splitvertical=true)

При просмотре изображение в середине разрывается на две части.

Как говорил MAG79, я приписал SetMTMode(2). Но разрыв так и остался. Может не туда вписал? Приведи пожалуйста пример скрипта на основе моего с этим SetMTMode(2).

70. MAG79, 10.02.2008 20:13
RDL
либо SetMTMode не работает вообще , либо от него нет толка. .... есть какие нибуть мысли по этому поводу?
Проверил, у меня тоже SetMTMode(2) выигрыша по сравнению с однопотоковой версией скрипта не дал. Надо разбираться, в чем причина. MT загружает процессор на 90%, а SetMTMode - лишь на 50%, как и ее отсутствие.

hermitap
а Во всем виноват MAG79
Кто владеет информацией - тот владеет всем. В такой период живем. Приятно ощущать себя виновником прогресса


vjk
пример скрипта для обработки видео с самым высоким качеством?
У меня готового рецепта пока нет. На данный момент я провел тестирование лишь нескольких вариантов скрипта и всего на одном тестовом ролике. Сравнение еще не завершено. Но даже готовых результатов этого теста будет мало для выбора оптимальных параметров, причем скорее всего для каждого отдельного файла можно подобрать свои настройки, дающие лучшее качество. Пока для себя я остановился на скрипте, который приведен в вопросе (меняю только коэффициент увеличения кадров, обычно = 3). Этот скрипт на моем процессоре показывает достаточную скорость, а с полосой по центру приходиться пока мириться. SetMTMode, как я написал чуть выше, не дал ожидаемых от него результатов.
Надо копать дальше.

71. Яга, 10.02.2008 20:46
Про кристал плеер кстати хочу сказать.
Его косяки очень заметны при просмотре видео с цифровых камер с низкой частотой кадров и плохим качеством.
Объекты двоятся, появляются шлейфы - бе...

72. RDL, 13.02.2008 11:52
MAG79
ну что, когда результаты будут?

73. SandroID, 13.02.2008 13:15
Очень интересная для меня тема.
Искал где-то что-то подобное пол года назад и именно в реализации для ffdshow - пользую только его.
Знал же что можно ))
и вот оно.

буду экспериментировать.

но хотел спросить:
Часто пользовал TrimensionDNM
но с покупкой новой карты nVidia 8800GT - галочка стала серой и не включается ни при каких обстоятельствах.
перечитав кучу инфы, выяснил, что 8Х00 карты аппаратно не поддерживают Оверлей!
отсутствие такой древней и полезной фитчи в новых картах конечно убивает, но это другой вопрос.

так вот вопрос, не используют ли все эти технологии плавности оверлей?
т.е. не станет ли провалом в моих экспериментах видео карта?

Заранее спасибо за ответы.

74. MAG79, 13.02.2008 14:20
RDL
когда результаты будут?
Меня держало отсутствие результатов TimensionDNM. Только в понедельник по совету добрых людей у меня получилось сохранить ролик, демонстрирующий работу TrimensionDNM. Подробности в соседней ветке: Ну все хана Windvd6! Вышел виндвд 7, #314 (http://forum.ixbt.com/topic.cgi?id=62:7337:314#314)

Сейчас на работе запарка, поэтому сравнивать ролики приходится по ночам. Первые результаты опубликую уже на этой неделе (в крайнем случае - на выходных)

SandroID
не используют ли все эти технологии плавности оверлей?
У меня была проблема с выводом оверлея на весь экран при использовании TrimensionDNM, а вот при использовании остальных программных решений проблем не возникло. Думаю, они оверлей не используют, или используют как-то по другому.

не станет ли провалом в моих экспериментах видео карта?
Проверить не сложно. Установи, да запусти. Потом расскажешь. Нам тоже интересно.

75. Яга, 13.02.2008 15:21
Эх.
Хорошо бы появился не такой ресурсоемкий аналог днм.

76. SandroID, 13.02.2008 19:23
MAG79
итак у меня что то не так.
скачал и поставил все как описано в "шапке" темы
единственно стоит не кодек пак а отдельно ffdshow последний от февраля 2008
юзаю BSPlayer, но на клаcсике все тоже самое.

видео ужасно тормозит и идет через паузу 5 сек "ползет" 5 сек стоп кадр.
проц AMD Х2 4200 (2,2 Гц - 2а ядра)
видюха 8800GT - отсутствует оверлей (аппаратно, возможно из за этого)

остальное видно на скрине:
http://files.myopera.com/davorch/albums/435580/AviSynth.jpg (863x702, 162,7Kb)

есть советы? куда копать?
Заранее спасибо.

77. MAG79, 14.02.2008 06:13
SandroID
Картинка есть, значит видео идет. А то, что рывками - это нехватает производительности.
Для указанного скрипта требуется производительность 672 х 400 х 100 к/сек / 1 000 000 = 26,9 МПикс/сек. Мой Core2Duo (2 ядра по 3,32 ГГц) для данного скрипта обладает производительностью на уровне 20 МПикс/сек, т.е. тоже этот ролик с такими настройками не потянет (см. мои результаты производительности (http://forum.ixbt.com/topic.cgi?id=62:12524:8#8) ).

Но можно поменять настройки скрипта - оптимизировать.
Вот скрипт, оптимизированный на быструю работу (на основе примера из инструкции к MVTools (http://avisynth.org.ru/mvtools/mvtools-rus.html) ):
код:
global idx = 10  # глобальная подсказка от IanB
MT("""
idx = idx + 1
backward_vec = MVAnalyse(blksize=16, isb = true, chroma=false, pel=1, searchparam=1, idx=idx)
forward_vec = MVAnalyse(blksize=16, isb = false, chroma=false, pel=1, searchparam=1, idx=idx)
last.MVFlowFps(backward_vec, forward_vec, num=2*FramerateNumerator(last), \
den=FramerateDenominator(last), mask=0, idx=idx)
""",threads=2,splitvertical=true)

Самые быстрые настройки, увеличение кадров в два раза. Если даже этот скрипт не заработает, то надо добавить впереди две строчки, уменьшающие размер кадра:
код:
coef = 0.5
Lanczos4Resize (Int(Width*coef/4)*4, Int(Height*coef/4)*4)

И менять значение масштабирования coef (от 0 до 1; 1 - исходный размер).

78. SandroID, 14.02.2008 09:05
MAG79
спасибо большое )

просто изначально взял скрипт от твоего первого поста.
т.е. если при 25 кадрах материала в твоем "тяжелом" скрипте поставить 50, то производительности это тоже самое, что и только что приведенный тобой скрипт (где частота тупо прибавляется в 2-а раза)
я прав?

интересно когда появится фильтр сходный по производительности с DNM
у меня он идет без проблем + он сам выдает частоту кадров = частоте источника изображения.
и как то справляется...

79. MAG79, 14.02.2008 10:12
SandroID
если при 25 кадрах материала в твоем "тяжелом" скрипте поставить 50, то... это тоже самое?
нет, не то же. Здесь много отличий, которые приводят к более быстрой работе скрипта:
blksize=16 устанавливает размер блоков со сторной в два раза крупнее обычной.
chroma=false производит поиск только по яркостной составляющей, без учета цвета.
pel=1 активирует пиксельную точность поиска, вместо дефолтной полупиксельной.
searchparam=1 логарифмический поиск с шагом радиусом = 1 вместо исчерпывающего поиска.
mask=0 простая обработка маски разрывности без снижения ореолов.

Плюс увеличение количества кадров в кратное число раз. Это тоже благоприятно сказывается на скорости работы скрипта (приводил пример "75 быстрее 60" (http://forum.ixbt.com/topic.cgi?id=62:12524:10#10) , второй абзац снизу). 2-ку в скрипте можно поменять на 4, тогда при исходном числе кадров 25 в секунду получим требуемые 100. Но последний скрипт все-равно будет работать быстрее, засчет описанных выше настроек.

80. SandroID, 14.02.2008 13:11
MAG79
спасибо за исчерпывающий ответ.
будем экспериментировать.

81. SandroID, 15.02.2008 08:55
MAG79
на последнем "облегченном" скрипте при моем АМД Х2 - 2,2Гц на ядро
без тормозов показывают все "DivX"ные фильмы.
HDTVRip'ы конечно не тянет, но можно уменьшить коэффициентом и смотреть на ТВ

смотрю все на ТВ - подключен по компоненте и выдает 100Гц картинку.
в скрипте использую множитель 4 - т.е. при 25 кардах в видео получаю 100Гц

единственно заметно разделение кадра на 2- о котором писали выше.

Добавление от 15.02.2008 10:05:

кстати, что хотел добавить.
борюсь с проблемой "перелома кадра" при просмотре на ТВ
подробнее описал тут: Проблема компонентного подключения к обычному ТВ. (http://forum.ixbt.com/topic.cgi?id=73:3374)
пока решения не нашел.

так вот при использовании "сглаживания" - этот эффект пропадает и кадр как влитой
или я просто этого не замечаю из за большой частоты

82. MAG79, 15.02.2008 15:14
SandroID
АМД Х2 - 2,2Гц на ядро без тормозов показывают все "DivX"ные фильмы
Поздравляю. Я тоже все DivX-фильмы смотрю исключительно с эффектом плавности.

HDTVRip'ы конечно не тянет, но можно уменьшить коэффициентом и смотреть на ТВ
У меня 720p с троекратным увеличением частоты кадров заработал на скрипте с MT, а без MT - с двукратным. Накануне провел небольшой блиц-тест скорости работы "быстрого" скрипта. Вот что вышло (разрешение@fps - производительность):

Core2Duo 3,32ГГц (двухядерный)
ФУНКЦИЯ MT:
1024х576@96 - 56,6 Мпикс/сек (coef=0.815)
1280x720@72 - 66,4 МПикс/сек
1360х768@48 - 50,1 МПикс/сек (coef=1.07)
КОМАНДА SetMTMode (а также ее отсутствие):
960х528@96 - 48,7 МПикс/сек (coef=0.75)
1040x592@72 - 44,3 МПикс/сек (coef=0.85)
1296x720@48 - 48,8 МПикс/сек (coef=1.02)

Исходный ролик 1280x720@24, mp4.


Производительность скрипта уже впечатляющая. Теперь на вопрос Oliverst (http://forum.ixbt.com/topic.cgi?id=62:12524:6#6) о процессоре для просмотра 720p с эффектом плавности можно ответить, что достаточно 2-ух ядерного Core2Duo с частотой около 3 ГГц.

Как добиться подобных результатов:
Я использовал путь создания AVS-скрипта и открытия его в Crystal Player. Это мне позволило использовать буфер рассчитанных кадров, который позволяет избегать остановок проигрывания при кратковременных недостатках мощности. Требуемые настройки Crystal Player'a: максимальный буфер кадров в 50% (Options - Frame Buffer Size) и автоматическое заполение буфера при опустошении (Options - Speed Troubleshooting - Stop and Buffer).

Кстати, команда SetMTMode, включающая обработку кадров целиком, но в разных потоках, все-таки работает, просто по умолчанию уже включена в режим 2. Т.е. можно вообще не указывать этой команды. При использовании этой команды падение производительности в моем случае составило 11-33% по сравнению с функцией MT. Вполне разумная цена за цельную картинку.
Результаты я буду дальше улучшать, эти я получил на последнем пакете кодеков K-Lite Codec Pack 3.7.5 и MVTools 1.9.2.

83. SandroID, 15.02.2008 16:00
MAG79
в "быстром" скрипте нет команды SetMTMode
так что же надо добавить, чтобы получить "быстрый" скрипт, но с целыми кадрами?
извините, за возможно глупый вопрос....

Добавление от 15.02.2008 16:08:

да, забыл добавить.
сейчас на "быстром" скрипте загрузка моего двуядерника (2,2 Гц) соствавляет порядка 55-70% в зависимости от размерности DivX'ксного видео.
и качество видео ничуть не ухудшается, вот чисто на глаз.. только все плавно

84. RDL, 15.02.2008 18:10
SandroID
убирай из скрипта эту строку -- MT(""" -- и вот эту -- """,threads=2,splitvertical=true) ---

85. SandroID, 15.02.2008 18:21
RDL
это что то не то...
начинает работать одно ядро

86. MAG79, 15.02.2008 19:54
SandroID
что надо добавить, чтобы получить "быстрый" скрипт, но с целыми кадрами?
Надо убрать строчки, касающиеся MT, вместо нее раньше я предлагал поместить строку SetMTMode, однако выяснил, что это не влияет на результат. Скрипт получается компактный. Например, для увеличения частоты кадров в два раза при просмотре файла "Strelok.avi" надо создать файл "strelok.avs" со следующим содержанием:
код:
DirectShowSource("Strelok.avi")
backward_vec = MVAnalyse(blksize=16, isb = true, chroma=false, pel=1, searchparam=1, idx=1)
forward_vec = MVAnalyse(blksize=16, isb = false, chroma=false, pel=1, searchparam=1, idx=1)
last.MVFlowFps(backward_vec, forward_vec, num=2*FramerateNumerator(last), \
den=FramerateDenominator(last), mask=0, idx=1)

Насчет загрузки процессора, я пытаюсь найти ответ на вопрос: почему она не всегда достигает 100%. Вероятно, на больших разрешениях слабым местом является уже не процессор, а скорость памяти. У кого какие мысли на этот счет?

Добавление от 15.02.2008 20:14:

RDL опередил меня с ответом

Этот же скрипт, вписанный во вкладку AviSynth в ffdShow (без первой строки, естественно) не раскрывает свою мощь - видимо в самом начале требуется немного повышенная мощность, из-за отсутствия буфера ее не хватает, и скрипт "сваливается". Это может проявляться паузами при проигрывании, либо замедленное воспроизведение, а загрузка процессора либо колеблется, либо показывает, неравномерное распределение нагрузки между ядрами.

Поэтому надо использовать буфер кадров, для этого загрузить Crystal Player, а в нем открыть созданный AVS-файл. Можно еще кнопку "S" нажать и наблюдать за динамикой наполнения и опустошения буфера кадров. Именно так я находил максимальные разрешения для каждого коэффициента увеличения частоты кадров: добивался баланса, когда буфер кадров колеблется +/-5 около одного значения, и не опустошается.

87. vjk, 16.02.2008 13:06
MAG79
Круто, теперь с твоим скриптом у меня не тормозит любой HD 720p. И разрыва на два кадра нету. И самое парадоксальное, что загруженность процессора всего 46-54% (на 720p). Комп Pentium E2160 1,8Ghz @ 3.0 Ghz, 2GB DDR2 1000Mhz, GeForce 8600 GT, Windows Vista SP1, K-Lite Mega Codec Pack 3.7.5. Смотрю с помощью Media Player Classic, вывод видео через оверлей.

88. Яга, 16.02.2008 15:16
vjk
Это как ты добился - вставил код из первого поста или как-то по другому?
MAG79
Можешь мне посоветовать скрипт для слабенького одноядерного компа - просто чтобы оценить возможности работы.

P/S/ кстати у меня кристал плеер мкв файлы не открывает - у всех так?

89. SandroID, 16.02.2008 17:34
vjk
но на 8Х00 нет оверлея!
вот (http://www.rozetka.de/theme/10971.html)
у вас что за дрова стоят?
у нас ДивИксы на двуядерники пашут, а вот ХДТВ нет..

а у вас ХДТВ показывает.
привидите пример вашего скрипта...

90. vjk, 16.02.2008 18:26
цитата (Яга):
Это как ты добился - вставил код из первого поста или как-то по другому?
Скрипт тот, что привел MAG79:

backward_vec = MVAnalyse(blksize=16, isb = true, chroma=false, pel=1, searchparam=1, idx=1) forward_vec = MVAnalyse(blksize=16, isb = false, chroma=false, pel=1, searchparam=1, idx=1) last.MVFlowFps(backward_vec, forward_vec, num=2*FramerateNumerator(last), \ den=FramerateDenominator(last), mask=0, idx=1)
цитата (SandroID):
но на 8Х00 нет оверлея!
Этого не может быть. То что оверлей у меня есть доказывает четыре фактора:

1. При выводе через оверлей при воспроизведении автоматически отключается Windows Aero (через VMR9 такого нет).
2. При выводе через оверлей картинка чуть светлее по сравнению с VMR9.
3. Если я сделаю скриншот рабочего стола при просмотре фильма, то на скришоте на месте видео окна Media Player'a будет черное пространство (вместо кадра из фильма).
4. При выводе через оверлей проц чуток поменьше нагружается при просмотре (ради чего я его и включил).

цитата (SandroID):
у вас что за дрова стоят?
169.25


Кстати. только щас заметил, что отлично идут только .mkv рипы. В коллекции нашел Матрицу в .mp4 (720p). Так вот, при просмотре тормоза страшные. Но нагрузка на проц не превышает 50-60%. Все-таки одно ядро только пашет? . Попробовал в Crystal Player с 50% буфером кадров. В нем сначало первые 10 секунд видео идут нормально, потом плейер делает паузу, 3 секунды кеширования и потом опять идут следующие 10 сек. Все-таки не посмотреть мне Матрицу с MVT .
Слава богу, что щас все рипы в основном в .mkv, а сним, как я говорил, тормозов нет.

91. ser2, 17.02.2008 12:51
MAG79
Подскажите, как будет выглядеть avs для MVtools с прицелом не на макс. скорость, а на макс. качество (для работы в Vdub)?

92. Яга, 17.02.2008 19:43
А какое видео можно смотреть с этим фильтром на компе пентиум 2,4 гц?
Если я ввожу скрипт из предыдущих постов, то все становится мутным, двигается медленно, за объяектами идут мутные шлейфы....

93. crystallize, 17.02.2008 20:16
1) В каких случаях лучше использовать анализ по яркости и цветности, чем просто по яркости?
Это тоже зависит от каждого ролика в отдельности?
Несерьёзно получается.
2) Как узнать производительность своего проца в МПикс/сек?
3) не такой ресурсоемкий аналог днм вряд ли вообще возможен, особенно если учесть, что даже мвтулс несовершенен
4) ffdshow-тормозная вещь

94. vjk, 17.02.2008 21:14
И все-таки фильтр слишком много артефачит. С технологией Trimension и той, что ставят в LCD телеки, ему пока еще не сравнится..

95. SandroID, 18.02.2008 09:10
crystallize
4) ffdshow-тормозная вещь

почему? Отличный универсальный декодер - проигрывает почти все! единые настройки для файлов любого формата.
в чем проявляется его тормознутость ? Хотя это ОФФ наверно.

96. MAG79, 18.02.2008 10:45
vjk
с твоим скриптом у меня не тормозит любой HD 720p
Мои поздравления

отлично идут только .mkv рипы. В коллекции нашел Матрицу в .mp4 (720p). Так вот, при просмотре тормоза страшные.
Рекомендую попробовать разные кодеки. От разрешения файла здесь мало что зависит. MP4 и MKV это лишь контейнеры, а кодек сжатия там может быть любой. Или я не прав?

И все-таки фильтр слишком много артефачит. С технологией Trimension и той, что ставят в LCD телеки, ему пока еще не сравнится..
Почему же? Результаты очень даже близкие. Причем, TrimensionDNM далеко не на первом месте по качеству. См. картинку.

Яга
Можешь мне посоветовать скрипт для слабенького одноядерного компа
Для одноядерников достаточно наличия свежих версий кодеков, AviSynth и MVTools (ставить MT не надо). Требуется создание AVS-файла рядом с видеофайлом. Внутри пишешь:
код:
DirectShowSource("[имя Вашего видеофайла]")
coef = 0.5
Lanczos4Resize (Int(Width*coef/16)*16, Int(Height*coef/16)*16)
backward_vec = MVAnalyse(blksize=16, isb = true, chroma=false, pel=1, searchparam=1, idx=1)
forward_vec = MVAnalyse(blksize=16, isb = false, chroma=false, pel=1, searchparam=1, idx=1)
last.MVFlowFps(backward_vec, forward_vec, num=2*FramerateNumerator(last), \
den=FramerateDenominator(last), mask=0, idx=1)

Размеры видео устанавливаются кратными 16, т.к. дальше поиск векторов движения идет по блокам 16х16. Этот скрипт без строчек масштабирования (2-ой и 3-ей) окрещен мною как "MVTools_fast".
Устанавливаешь требуемый коэффициент увеличения кадров num (меняешь 2-ку на 3, 4), если нужно. Далее уже варьируешь коэффициентом масштаба видео coef. Открывать созданный AVS-скрипт в Crystal Player'е, с настройками, которые я указывал выше (http://forum.ixbt.com/topic.cgi?id=62:12524:86#86) .

у меня кристал плеер мкв файлы не открывает - у всех так?
Проверил: у меня открывает. Скорее всего причина в отсутствии соответствующего кодека.


crystallize
1) В случаях, если хватает мощности, то поиск по компонентам яркости и цвета даст лучшие результаты, чем только по яркости.
2) Производительность конкретного скрипта на процессоре можно выяснить, найдя пару (максимальное разрешение и частота кадров) при которой видео идет без задержек. Находится экспериментальным путем.
3) Даже DNM иногда ошибается. Тем не менее, есть быстро работающий MultiSampling в CP. На данный момент приходится выбирать между скоростью и качеством.
4) Что имелось в виду? Предложи альтернативный вариант.

ser2
как будет выглядеть avs для MVtools с прицелом не на макс. скорость, а на макс. качество
Судя по полученным мною результатам (см. картинку).
Результаты тестирования алгоритмов повышения плавности движения - 613x334, 4,9Kb
Лучшее качество дает скрипт, приведенный в шапке темы, и немного модифицированный для кратного увеличения количества кадров и цельной картинки. Условно я назвал его "MVTools_slow". Вот его вид:
код:
DirectShowSource("[имя Вашего видеофайла]")
backward_vec1 = MVAnalyse(isb = true, pel=2, search=3, truemotion=true, overlap=4, dct=2, idx = 1)
forward_vec1 = MVAnalyse(isb = false, pel=2, search=3, truemotion=true, overlap=4, dct=2, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=2*FramerateNumerator(last), \
den=FramerateDenominator(last), idx=1)

К сообщению приложены файлы: 1.png, 614x334, 5Кb

97. vjk, 18.02.2008 18:11
цитата (MAG79):
Почему же? Результаты очень даже близкие. Причем, TrimensionDNM далеко не на первом месте по качеству. См. картинку.
Фильтр работает хорошо при средних движениях. Как только начинается экшен то наступает пипец полный.
Вот кадры из Матрицы с MVT (при твоем MVTools_slow):

http://img529.imageshack.us/img529/1626/81660153sp4.jpg
http://img529.imageshack.us/img529/9718/42849483zh1.jpg
http://img529.imageshack.us/img529/3050/28278542sh5.jpg
http://img238.imageshack.us/img238/2852/75543204oe1.jpg

И главное эти артефакты лезут в экран и их не возможно не заметить. Смотреть становится очень дискомфортно.

Потом я отрывок перекодировал в MPEG2 и посмотрел с Трименшином. во время просмотра артефактов вообще не заметно. Сделал скрины:

http://img111.imageshack.us/img111/2792/11bl6.jpg
http://img529.imageshack.us/img529/8714/12er4.jpg

По ним видно, что Трименшен в таких местах в какое-то мере делает блендинг (я так понимаю только в насыщенных местах). А MVT ужасно артефачит. На LCD телеках вообще такое недопустимо.
Но факт то, что с Трименшеном плавность этого же ролика такая же как и с MVT, а артефактов нету. Я бы сказал по сравнению с MVT небо и земля.

Могу даже отрывок выложить чтобы ты посмотрел (~10мб), если надо.

98. MAG79, 18.02.2008 19:45
vjk
Спасибо за кадры. Очень показательно.

Фильтр работает хорошо при средних движениях.
Согласен. Причем результаты теста показывают даже, что лучше, чем TrimensionDNM. Диаграмма из предыдущего поста показывает среднее значение структурного соответствия оригиналу. На вход каждому программному решению я подавал только четные кадры, заставляя их достраивать нечетные. Диаграмма показывает насколько хорошо справился каждый из участников теста. Правда на результаты графика не повлияли кадры на смене сцен - я их умышленно убрал из расчета, т.к. нет смысла их подмешивать в результат. В таких случаях по определению не ясно какой был исходный кадр, поэтому эти места я оставил для визуального анализа, который будет в дополнение к этой диаграмме.
Пока я не выложил кадры, но могу сказать, что TrimensionDNM работает действительно продуманней: при небольших движениях он строит вполне четкие кадры, далее при увеличении амплитуды движений рассчитанные им промежуточные кадры теряют в четкости, а на определенном пороге он перестает делать компенсацию движения, а начинает работать как режим Planar Blend из Crystal Player'а. У MVTools тоже есть этот порог перехода на блэнд (смешивание кадров), но он находится дальше, срабатывает при еще больших амплитудах движения. Я так думаю, что за это отвечает параметр ml=100, хотя это еще нужно проверить. Можешь попробовать это сделать, пока я занят оформлением результатов теста-сравнения.

Насчет артефактов - согласен. Скрипт требует настройки. Субъективно, он ошибается на локальных движениях, видимо, требуют подстройки еще параметры, входящие в комплексную переменную truemotion=true.

Отрывок лично для меня можно не выкладывать - у меня уже хватает материала для обработки и анализа. А вот если кто-то еще из заинтересованных захочет оценить разницу, то может и твой ролик пригодится, и я свои ролики планирую выложить. Сейчас они у меня по 200-300 МБ (без сжатия), но можно пожать так, чтобы сохранилось достаточное качество для визуального сравнения, и реальный размер был для скачивания.

99. vjk, 18.02.2008 23:10
MAG79
Попробавал со значениями ml=.. Может с ним что-то и меняется, но артефакты точно не уменьшаются.

Все-таки глянь на отрывок www.webfile.ru/1752113 (10.1 mb). Может все-таки получится подобрать такие параметры, чтобы результат был нехуже Трименшена. Было бы очень круто .

100. ZDS78, 19.02.2008 10:04
SandroID
На 8600GT есть оверлей. И трименшн работает

К сообщению приложены файлы: 1.jpg, 560x823, 72Кb

101. RDL, 19.02.2008 11:25
vjk
вчера проверил этот же отрывок из "матрицы" (разрешение фильма 1024х576), у меня этих артефактов не было. Смотрел 5раз, очень внимательно, даже потом по кадрово пересматривал сложные моменты. Возможно имеет значение качество исходного материала......

102. Oliverst, 19.02.2008 12:20
RDL

какой у вас процессор и как сильно был загружен?

103. vjk, 19.02.2008 14:03
RDL
Ну прям уж артефактов нет, прям покадрово Че-то на гон похоже. Я этот же отрывок в 1280x720 пробовал (пересжал до 720x406 чтобы в нет выложить). Артефакты как на скрине.

Тогда выложи свой готовый обработанный отрывок с удвоенной частотой кадров и мы посмотрим. Иначе брехня.

104. RDL, 19.02.2008 14:27
vjk
ок сделаю, только картинки могу выложить, т.к. и-нет на диал апе .

Oliverst
я на домашнем смотрел АтлонХР 3200+, загрузка 50-60% скрипт такой был:

backward_vec = last.MVAnalyse(blksize=16, isb = true, chroma=false, pel=2, searchparam=1, idx=1)
forward_vec = last.MVAnalyse(blksize=16, isb = false, chroma=false, pel=2, searchparam=1, idx=1)
last.MVFlowFps(backward_vec, forward_vec, num=2*FramerateNumerator(last), den=FramerateDenominator(last), mask=0, idx=1)

105. MAG79, 19.02.2008 20:45
vjk
Все-таки глянь на отрывок www.webfile.ru/1752113 (10.1 mb). Может все-таки получится подобрать такие параметры, чтобы результат был нехуже Трименшена. Было бы очень круто

Глянул. Поигрался пока только с двумя параметрами: lamdba - связанность поля векторов, увеличил в 4 раза от дефолтной; и ml - масштабный параметр маски разрывности (работает при mask=2), установил в 50 раз выше дефолтного. Скрипт получился следующий:
код:
avisource("720x406.avi")
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, lambda=16000, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, lambda=16000, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=2*FramerateNumerator(last), den=FramerateDenominator(last), mask=2, ml=5000, idx=1)

Скорость работы скрипта из-за использования маски разрывности немного уменьшилась. Попробуй. Интересно твое мнение насчет визуального отличия от скрита "MVTools_fast".

106. vjk, 19.02.2008 23:10
MAG79
Посмотрел скрипт. Да, артефактов ну практически незаметно. Но картинка стала менее плавная (ощущение будто меньше кадров/сек) по сравнению с трименшеном.
Все-таки его "умный" алгоритм по соотношению плавность/артефакты пока лидирует.

107. RDL, 20.02.2008 13:01
vjk
ну я так понял теперь мне смысла нет отвечать на твое предложение, т.к. если использовать с крипт с максимальными качеством то артефакты есть, такие же как на твоих кадрах, но если использовать упрощенный скриптик тогда их не видно, как я уже высказался несколько постами выше.

108. MAG79, 20.02.2008 13:19
RDL
Мне все-таки интересно, какое было разрешение твоего видео, что артефактов не было заметно?
Скрипты отличаются тремя параметрами, о них я указал в сообщении выше. Так вот, удивляет то, что эти параметры по-умолчанию не зависят от размера видео, а в нашем случае (проигрывание видео с компьютера) разшенения картинки может колебаться от QVGA (320x240) до 1080p (1920x1080). Видимо, нужно вносить поправку в значения этих параметров в зависимости от разрешения.

vjk
Я этот же отрывок в 1280x720 пробовал
а я скрипт для ролика 720х406 настраивал. Для ролика исходного разрешения видимо нужны немного другие параметры. Надо подставлять и смотреть результат.

109. ksotar, 20.02.2008 13:35
Джентльмены, я тут смог включить Trimension на DVD9 с Гарри Поттером (на DVD5 почему-то не включалось ) и, было, порадовался за плавность движений в сцене квиддича. Но потом поймал себя на мысли, что это стало похоже на фильм-спектакль с дешевыми компьютерными задниками Это такая особенность Trimension или чего?

110. RDL, 20.02.2008 14:10
MAG79
вернее артефакты были, но при просмотре, их я невижу (разрешение 1024х576). Нужно искать золотую середину...

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

111. MAG79, 20.02.2008 14:12
ksotar
Да, с TrimensionDNM и другими обсуждаемыми здесь "улучшателями" плавности движений видео становится похожим на реальную съемку, как новости, сериал или ток-шоу. Смотреть фильмы с таким эффектом сперва необычно, и кому как, а мне, например, нравится.

стало похоже на фильм-спектакль с дешевыми компьютерными задниками
Я например, такого не замечал. Видимо, в производстве этого фильма как раз и использовались "дешевые компьютерные задники". С TrimensioDNM ты просто успеваешь их рассмотреть. Во многих фильмах моменты как раз с общими планами, с движением, наездами и отъездами камеры смотрятся очень красиво. Колизей и природа в гладиаторе, горы во властелине колец... можно привести много примеров.

112. ksotar, 20.02.2008 15:56
RDL
MAG79
Чтож, спасибо. Интересно, откуда берётся такой эффект? В телевезионных передачах частота кадров больше? У меня такое ощущение, как будто появляется (или становится заметной?) какая-то рассинхронизация, чтоли, между движениями персонажей и фоном.

Я, собственно, почему обратил внимание на эту тему - в своё время именно горы во "Властелине колец" в кинотеатре меня неприятно удивили Попробую посомтреть их теперь

Всё же странно, что с некоторыми DVD Trimension не работает...

113. vjk, 20.02.2008 20:00
цитата (ksotar):
В телевезионных передачах частота кадров больше?
Грубо говоря телевизионные передачи идут с частотой 50 кадров/сек.
А точнее с частотой 25i (интерлейсных кадров в секунду), с разрешением кадра 720x576, в котором содержатся два кадра 720x288 и они выводятся как 50 кадров/сек.

114. MAG79, 21.02.2008 06:45
ksotar
Дополню vjk: ...а у фильмов частота 24 кадра в секунду, так сложилось исторически. Поэтому ТВ-передачи могут иметь более чем в 2 раза большую частоту кадров. Но даже при увеличении частоты кадров алгоритмом повышения плавности движений все-равно остаются отличия фильма от ТВ-передачи. Если кратко, то это более широкий диапазон цветов, художественные приемы съемки, постобработка и спецэффекты. Поэтому говорить, что качество фильма становится точь-в-точь как у ТВ-передач не совсем корректно.

горы во "Властелине колец" в кинотеатре меня неприятно удивили
Позволю себе небольшой офтоп: Я не очень любил ходить в кинотеатры отчасти из-за того, что замечал эти 24 кадра в секунду, особенно после 50-100 Гц. Эти 24 fps для меня выглядели как будто все движения "дерганные", ступенчатые, в добавок мои глаза чувствительны к мерцаниям яркости, которые раньше тоже присуствовали в кинотеатрах.
Сходив на "продолжение иронии судьбы", я с удивлением обнаружил, что фильм шел на высокой частоте, без мерцания, мало того, еще и с эфектом плавности движения. Первый раз я обратил на это внимание на сцене с салатом в начале фильма, где он крупным планом "плавает" по экрану. Меня очень удивил сей факт, т.к. этот кинотеатр ("Орион") далеко не чамый лучший у нас в Иркутске. Начал смотреть в интернете и нашел такое устройство, конвертер видеосигналов Extron (http://www.bs-media.ru/catalog/1159764567_21) , имеющий DMITM. Это как там сказано "метод распознавания и компенсации движения. Он используется для оптимального воспроизведения статичных и движущихся изображений. Его использование позволяет значительно улучшить качество изображений". Стоит всего $4k. Для кинотеатра копейки. А насколько приятнее смотреть?!

странно, что с некоторыми DVD Trimension не работает
Работает со всеми, просто для DVD с прогрессивным видеосигналом достаточно включить TrimensionDNM, а для DVD c черезстрочным - надо еще указать способ деинтерлейса: WEAVE.

У меня такое ощущение, как будто появляется (или становится заметной?) какая-то рассинхронизация, чтоли, между движениями персонажей и фоном
Можно про это по-подробнее, в чем это выражается? Не попадают в такт музыке? Совершают хаотичные несвязанные движения?

115. ksotar, 21.02.2008 11:06
цитата:
4k. Для кинотеатра копейки. А насколько приятнее смотреть?!
Ну вот, только я решил, что отныне смотрю кино дома на проекторе

Я вчера смотрел места ВК, "Возвращение короля" (подарили мне как-то подарочное издание режиссёрской версии). Там гор, к сожалению, мало уже, но есть интересные сцены. Так вот Trimension на каких-то моментах включался, на каких-то нет Там же были недоступны "улучшательные фильтры" winDVD.

цитата:
надо еще указать способ деинтерлейса: WEAVE
А гдей-то такая кнопка в WinDVD?

цитата:
Можно про это по-подробнее, в чем это выражается? Не попадают в такт музыке? Совершают хаотичные несвязанные движения?
Не могу достоверно поймать эти моменты, но по ощущениям, персонажи вроде двигаются себе нормально, а потом так раз, плавно и немного быстрее чем нужно. Что как раз "отрывает" их от задника и создаёт впечатление дешёвых декораций в помещении

Я еще задавался вопросом - когда в допах смотришь материалы со съёмочной площадки, сцены смотрятся совсем по-другому, дало даже не в качестве, а в самом характере движений. Интересно, почему...

116. serg57, 21.02.2008 15:03
цитата
У меня такое ощущение, как будто появляется (или становится заметной?) какая-то рассинхронизация, чтоли, между движениями персонажей и фоном

При работе DNM на TV Philips тоже вижу эффект рассинжронизации: крупный план, человек мотает головой вправо, влево. Нос, глаза, рот при движении запаздывают от "овала" лица.
Может этот эффект связан с работой шумоподавителя (межкадрового) ?

117. elektron-mobile, 24.02.2008 15:35
Подскажите пожалуйста если есть возможность - , так как в онлан комп не ятнет 1080 и большинство 720 рипов , как перебить в офлайн для дальнейшего просмотра , все файли идут в MKV контейнерах - как избежать пережатия , и можно ли как то обрабатывать не извлекая ави из контейнера. Если можно пошаговыую инструкцию - желательно чтоб процес был без потери качества видео и звука . Вы выше указывали что перебивали 1080 таким образом - это был ави файл? Думаю если перекодировать в офлайно частоту надо увеличивать до 100 кадров - визуально само то - болше не имеет смысла - меньше - получаеться эффект ниже чем у DNM -пробовал на 720 p рипах в критстал плеере с включением буфера - картинка по 2-5 сек но понять можно. при 100 кадрах эффект ближе к DNM . И если уж кодировать оффлайн то естественно с максимальным качеством.

118. Malder1, 24.02.2008 16:15
А бывают ли устройства аналогичные DNM чтобы работали с 24/25/30p HDMI сигналом на входе и выдавали на выходном HDMI 75/100 интерполированных кадров? Чтобы подключить его к проектору например.

119. MAG79, 24.02.2008 17:12
Malder1
бывают ли устройства аналогичные DNM чтобы работали с 24/25/30p HDMI сигналом на входе и выдавали на выходном HDMI 75/100 интерполированных кадров? Чтобы подключить его к проектору например
Да, бывают. Несколькими сообщениями выше упоминался конвертер видеосигналов Extron (http://www.bs-media.ru/catalog/1159764567_21) за $4k. Думаю, если поискать, то можно найти аналогичные устройства за более подходящую цену. Вот только про сравнения этих аппаратов я еще не слышал, наверняка где-нибудь в кинотеатральных темах информация уже есть.

elektron-mobile
можно ли как то обрабатывать не извлекая ави из контейнера
Можно. Надо использовать команду DirectShowSource("[Имя файла]"). Будет открыт любой видеофайл (AVI, MKV, MOV, OGM, WMV, MPG и др.) кодеком, установленным в системе.

как избежать пережатия
В случае офлайн-преобразования никак. Программы увеличения количества кадров добавляют дополнительные кадры к уже существующим, а при использовании алгоритмов межкадрового сжатия (сейчас все фильмы сжаты как правило именно так) перекодировки не избежать.

Вы выше указывали что перебивали 1080 таким образом - это был ави файл?
Это был MKV. Результат я сохранял в AVI кодеком x264. Частоту кадров я делал 72 (24x3). Компьютер C2D 2 ГГц не смог без тормозов проигрывать такое видео ни через ffdShow, ни с помощью nero AVC. Распаковывать и показывать все 72 кадра в секунду смог только WinDVD8 (с его встроенным декордером H.264). Поэтому даже в офлайн обработанный и сохраненный FullHD ролик можно воспроизвести не на каждом компьютере и не всякой программой. Кроме того, можно выбирать кодек, менее требовательный к производительности процессора, но тогда размер файла будет уже больше, чем в случае с H.264.

пошаговыую инструкцию - желательно чтоб процес был без потери качества видео и звука
Инструкцию по пережатию я приводил на первой странице темы (http://forum.ixbt.com/topic.cgi?id=62:12524:21#21) . Процесс будет идти с потерей качества видео, т.к. перекодирования не избежать. Просто эту потерю можно свести к минимуму выбором соответствующих параметров кодирования. Как сохранить звук, я пока не заморачивался. До сих пор делал стерео. Чтобы сохранить, видимо, надо демуксить, а потом добавлять эту аудиодорожку к результату. Но я этого ни разу не делал.

Добавление от 24.02.2008 17:46:

ksotar
в допах смотришь материалы со съёмочной площадки, сцены смотрятся совсем по-другому, дало даже не в качестве, а в самом характере движений. Интересно, почему...
Доп.материалы, как правило, имеют уже не частоту не 24 кадра в секунду, а стандартные 50/60 (PAL/NTSC) полукадров в секунду. Поэтому информации о движении объектов в таких материалах содержится в два с лишним раза больше.

serg57
При работе DNM на TV Philips тоже вижу эффект рассинжронизации: крупный план, человек мотает головой вправо, влево. Нос, глаза, рот при движении запаздывают от "овала" лица.
Кажется я понял, про что разговор. Причина с одной стороны кроется в том, что DNM-подобные алгоритмы додумывают дополнительные кадры из имеющихся. И результат не обязательно соответствует реальному движению. В большинстве случаев додуманный кадр соответствует реальному, но не всегда. Отсюда появляются некоторые неравномерности в движениях, сюда может прибавиться некратное увеличение количества кадров. Рывки при опустошении буфера кадров. Поэтому вполне может создаться ощущение, что предметы в кадре то двигаются нормально, то немного убыстренно.
С другой стороны, кадры не всегда строятся "честным" способом, путем смещения объекта по его траектории движения. Часто, особено при резких движениях, алгоритмы увеличения плавности прибегают к хитрому приему смешивания исходных кадров (блэндингу). Тогда визуально движения становятся уже не такими плавными. Один кадр как бы расстворяется в другом. Бывают и еще более сложные случаи, когда блэндинг и смещение объектов отрабатывают на одном и том же рассчитываемом кадре. Тогда как раз и можно наблюдать такую картину, как рассинхронизацию движений носа и овала лица. Как уменьшить этот эффект рассинхронизации, это отдельный разговор. Надо окончательно разобраться в природе этого явления, посмотреть, что предлагается ведущими ТВ-производителями. Возможно, эта проблема уже как-то решена.

Частично проблему позволяет решить использование маски разрывности в алгоритме MVTools. При ее использовании границы движущихся объектов немного замыливаются, что визуально более приятно, чем неестественные деформации этих границ.

Может этот эффект связан с работой шумоподавителя (межкадрового) ?
Тоже вполне может быть. Особенно, если фильтр производит компенсацию движения.

120. snark13, 24.02.2008 18:11
все хорошо в обсуждаемом варианте улучшения плавности движения (ну почти все)...
кроме того что у меня в Win MCE при просмотре через её оболочку начинаются глюки - оболочка подвисает при попытке остановить просмотр, выйти в главное меню или переключиться в другие окна... приходится убивать процесс eshell.exe
при выключение avisynth - все восстанавливается...
при просмотре вне оболочки MCE - тоже все нормально...
никто с таким не сталкивался и не находил решения ???

121. elektron-mobile, 24.02.2008 20:07
Учитываю текущую производительность процессоров - надо отрабатывать только офлайн направление кодирования - так как HD материала уже предостаточна а для SD есть WINDVD с Трайменшином либо вариант с MPC с прикрученым трайменшном. А вот HD как смореть - как скрипт подпихивать разобрался в Virtuldub , но там уже встаёт гора других вопросов касаемо именно кодирования с максимальным качеством или правильнее с минимальными потерями - наверняка это уже отработано , ну нету времени изобретать велосипед ..что делать

122. Malder1, 24.02.2008 20:40
MAG79
Спасибо! Правда этот контректный девайс уже устарел - без HDMI и 1080p, но понял что нужно искать и такие устройства есть. Жаль что так дорого! Ведь по сути это как телевизор Филлипс без телевизора - красная цена такому девайс до $1000 максимум.

123. elektron-mobile, 24.02.2008 21:03
Malder1
БЫл кстаи тюнер филисовский E-box для плазм - на ибее стоит от 100 долларов - у него DNM есть - но нет HDMI тока компонент для SD материала сгодиться а вот HD не будет обрабатывать да и резкость чуток ниже у компонента . Но если смотрте Sd взять стотит - я с комп смотрю поэтому нет нужды(WinDVD) -если бы смотрел с плеера взял бы 100 процентов. Для проектора это очень актуально - на больших диагоналях . не подскажете где именно вы покупали проектор 2000 ссылку если можно - думаю optoma 80 или Epson .

124. Malder1, 24.02.2008 21:20
elektron-mobile
Благодарю за эту ссылку! Если 100$ значит за 300-400 можно поискать с HDMI.
Я предпочитаю смотреть с плейера DVD и Blu-Ray - так проще для меня.

Я подробно написал в проекторной ветке о покупке проектора Epson TW2000 на eBay.
Посмотрите мои сообщения начиная с 31 января вот в этой ветке:
FAQ = мультимедийный проектор домашнего кинотеатра (продолжение) (http://forum.ixbt.com/topic.cgi?id=62:9635-166)
Мне обошелся со всеми расходами в 103 тысячи рублей (но официальной гарантии нет, увы). Сейчас в Москве можно купить за 162 тысячи.

Добавление от 24.02.2008 21:40:

serg57
крупный план, человек мотает головой вправо, влево. Нос, глаза, рот при движении запаздывают от "овала" лица.
Может этот эффект связан с работой шумоподавителя (межкадрового) ?

Это темпоральный шумодав скорее всего. Я такое видел раньше часто на ТВ тюнере в некоторых фильмах. Вместо размытия картинки, складываются несколько кадров.

125. elektron-mobile, 24.02.2008 21:46
Malder1
В ветке про проекторы бываю - брал со штатов себе Mitsubishi 1000 , после панаса 900 бомба . а вот коробочки такой от филипса не будет с HDMI это был тюнер к плазменной панели на заре плазмостроения , сейчас всё встроено в сами плазмы , новая чтучка даже сейчас под 800 евро стоит. так что искать не выйдет - вооще вы видели хоть на компе как работает трайменшн? рекомендую посмотреть если не видели - я только из занего с компика и смотрю

126. Malder1, 24.02.2008 22:29
elektron-mobile
Да, на компьютере видел. Прикрутил фильтр к MPC от шестой версии WinDVD

Похоже ничего нет - поискал на западных форумах. Есть только новейший проектор Sony VW200 за $10K - 15K, который интерполирует кадры а-ля Philips PixelPlus.

У меня кстати был Panas AE900 до Epson TW2000. Я тоже отметил огромное преимущество Эпсона как по цветам так и глубине черного цвета и контрасту.

127. elektron-mobile, 24.02.2008 23:34
Malder1
Z как описано прикрутил тож фильтр вроде бы работает но не так явно как именно 7 версия Windvd ? 8 тоже не так работатет почему то - иногда подтомаживает , проц коре 2 дуо 3.2 поэтому именно софт подторм . Philips PixelPlus это немного другая технология , она с точками шаманит а не с количеством кадров и плавностью , если есть возможность качните windvd7 он полностью раскрывает данную технологию.
офф... Я когда митсу получил - включил рядом с панасом - потом панас выключил и уже не включал - продал , мы с вами ещё помоему тогда немного спорили в ветке про проекторы , подскажите а 720 рипы вы не воспроизводили - есть ли разница что не точка в точку( хотя я помню какая резкость у 900 ) в смысле как думаете 720 рипы не будут ли хуже отображаться на FullHD проекторе чем на 1280 на 720 проекторе , в основном материал то 720 а то и DVD ... думаю менять ли митсу на 2000 или нет , у митсу приимущество над панасом было тож огромное , будет ли у эпсона большая разница над митсу , а он лучший из того что я видел(немного Sanyo z4 , 900, Z5 infocus 72 )

128. Malder1, 25.02.2008 09:46
elektron-mobile
Я замерял люксметром, у Epson TW2000 контраст выше в 5 раз чем у Panasonic AE900. Другими словами при одинаковой яркости, уровень черного глубже в 5 раз. Плюс НАМНОГО более лучшая цветопередача. Четкость намного выше и кстати пиксельная сетка почти незаметна даже вблизи.

У Epson TW2000 скалер очень хорош (что-то вроде Bicubic в Photoshop'е) - можете не сомневаться - результат из 720p в 1080p будет отличным! Да и фильмов реально использующих все пиксели 1080p очень мало - в основном анимационные.

129. elektron-mobile, 25.02.2008 12:17
пережал хдтв увеличивая в 4 раза частоту , мож скрипт кривой но DNM намного приятней - вот DNM именно отделяет от заднего плана (о чём выше писали как о недостаке) что даёт глубину картинке а так получилось просто плавненько - и артефактов на движении -жуть просто , да видно даже было когда начинал пережимать в виртуалдабе - он покадрово показывал
Скрипт был этот -
DirectShowSource("sample.mkv").ConvertToYV12()
backward_vec1 = MVAnalyse(isb = true, pel=2, search=3, truemotion=true, overlap=4, dct=2, idx = 1)
forward_vec1 = MVAnalyse(isb = false, pel=2, search=3, truemotion=true, overlap=4, dct=2, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=4*FramerateNumerator(last), \
den=FramerateDenominator(last), idx=1)
Можно ли улучшить качество , иначе считаю нецелесообразным кодить , можно ли аналогичным способом MSU FRC запустить в оффлайн?

Добавление от 25.02.2008 17:46:

Вот ещё пару софтин подобных http://library.creativecow.net/articles/solorio_marc…wixtor_review.php
http://digitalcontentproducer.com/ar/video_revision_reelsmart_twixtor/
http://www.revisionfx.com/
http://www.goodervideo.com/products/MP.html

Добавление от 25.02.2008 17:56:

http://www.yuvsoft.com/download/frame-rate-conversion/index.html

130. djonline, 25.02.2008 18:37
Тогда уж стоит упомянуть ещё Dynapel Slow Motion (результат средней поганости) и Realviz Retimer 2.5 (у того большой инструмент для ручной работы, используется во всех фильмах, но автоматический результат очень паршивый).

131. Яга, 25.02.2008 20:42
А кто нить альтернативные программы из первого поста уже пользовал?

Кристал плеер кстати калом оказался - шлейфы огого

Добавление от 25.02.2008 20:58:

А как создать AVS-файл - простите за глупый вопрос

132. elektron-mobile, 25.02.2008 21:04
А как создать AVS-файл - невероятно просто - создай текстовый документ - измери расширение на AVS , и пропиши внутри скрипт. Я пробовал с первого поста софтины - но похоже не могу перекодировать нормально , ТАКИЕ артефакты что жуть - распадаеться картинка - хотя этот же скрипт в Кристал плеере по 3 сек работает гуд ....пробовал есно на HD материале - для двд Win dvd - и зачем пороться....

133. MAG79, 25.02.2008 21:04
snark13
Win MCE... - оболочка подвисает при попытке остановить просмотр, выйти в главное меню или переключиться в другие окна
Я Media Center Edition не проверял, думаю, все должно работать. А какой вариант использовался? Через ffdShow или AVS-скрипт?

elektron-mobile
Учитываю текущую производительность процессоров - надо отрабатывать только офлайн направление кодирования - так как HD материала уже предостаточна а для SD есть WINDVD с Трайменшином либо вариант с MPC с прикрученым трайменшном
Полностью поддерживаю Хотя направление увеличения количества кадров в реальном времени (на лету) для HD материала тоже не стоит забывать. Ведь уже есть в продаже процессоры, работающие на воздухе на частотах 4,4 - 4,7 ГГц, имеющие в наличии 4 ядра. Мне в зону досягаемости скоро попадет Core2Quad @ 3 ГГц. Померяю его возможности.

пережал хдтв увеличивая в 4 раза частоту , мож скрипт кривой но DNM намного приятней
Да, скрипт требует дополнительной настройки. Авторы плагина предлагают свои настройки, но похоже, не достаточно оптимизированные для материалов высокого разрешения. См. пример настройки скрипта для уменьшения артефактов на предыдущей странице (http://forum.ixbt.com/topic.cgi?id=62:12524:105#105) .

Скрипт был этот
Этот скрипт окрещен мною как "MVTools_slow". Он показал лучшие результаты среди протестированных программных решений (см. картинку (http://forum.ixbt.com/topic.cgi?id=62:12524:96#96) ). Дальше для устранения артефактов надо играться параметрами lambda, lsad, pnew, plevel и ml. Установить mask=2.

elektron-mobile
Вот ещё пару софтин подобных
djonline
Тогда уж стоит упомянуть ещё
Огромное вам спасибо! Добавил в шапку темы. Поизучаю на досуге.

134. elektron-mobile, 25.02.2008 21:08
MAG79
Авторы софтины помоему для Самсунга написали плагин - который в телеках используеться - там и на сайт еесть - хорошие вещи Free долго не валяються -теперь направление погибнет -точнее развиваться то оно развиваеться - тока для самсунга ... вот еслиб я не с проектором жил - купил бы плазму или лсд и не заморачивался - а так надо что то делать

Добавление от 25.02.2008 21:14:

Надо в какой нибудь ветке где перекодировкой живут поросить оптимальную последовательность и набор софта - а то мона недели 2 потатить тока на эксперименты , чтоб мона было притулить туда скрипт ... Вот пытался DNM прикрутить к MPC -не поуму работате или нет - у меня причём установлены 7 и8 Windvd - в MPC как в 8 пости нет эффекта а в 7 явно работает -где то кривизна проскочила , и загрузка камня не более 10 процентов - всё по инструкции делал

135. Timus, 25.02.2008 21:31
MAG79
Видимо, в производстве этого фильма как раз и использовались "дешевые компьютерные задники". С TrimensioDNM ты просто успеваешь их рассмотреть. Во многих фильмах моменты как раз с общими планами, с движением, наездами и отъездами камеры смотрятся очень красиво. Колизей и природа в гладиаторе, горы во властелине колец... можно привести много примеров.

Вот приятно посмотреть, как народ тупиковую ветку эволюции не покладая рук исследует... Примеры:
1) хард телесинед НТСЦ филм материалы. Что им нужно, Трименшен или восстановление 24р? Что с ними невосстановлеными сделает Трименшен?
2) гибридные НТСЦ материалы. Утяжеленный вариант пункта первого.
3) что делает Трименшен с теми самыми задниками, по которым двигаются крупные предметы первого плана?
4) и наконец: а нахрена козе такой баян с 60р материалами?

Добавление от 25.02.2008 21:34:

5) и кстати никого случаем не тревожит одночастотность подавляющего большинства FlatTV и, предположительно, проекторов, в сочетании с желанием смотреть на них материалы различной природы - 24р, 50р, 60р?

136. elektron-mobile, 25.02.2008 21:45
У меня прректор поддерживает 50 и 60 гц , как и все они впрочем... а вот где вы 60p материал нарыли? Рекомендую установить WINDVD7 -потом продолжить разговор - хотя на экранах до 1 метра это не так критично , а вот больше ... всё просто - представте летящий мяч - за один и тот же промежуток времени у вас на мониторе он пролетает 15 см а у меня на стене( проектр отображает на крашеную стену) болше 1 м ...

137. MAG79, 25.02.2008 22:01
Timus
народ тупиковую ветку эволюции не покладая рук исследует
Интересно узнать мнение специалиста: а какая же по Вашему не тупиковая ветка эволюции?

1) разумеется, материал надо приводить к виду, пригодному для алгоритмов увеличения частоты кадров.
3) он их плавно двигает. разве не так?
4) таких материалов пока очень мало. У меня в руках еще нет. Заполучу - юуду думать, что с ним делать. Какие предложения?
5) никаких проблем здесь не вижу.

elektron-mobile
Инструкцию по перекодировке я давал в этом сообщении (http://forum.ixbt.com/topic.cgi?id=62:12524:21#21) . Подойдет?

138. snark13, 27.02.2008 02:24
цитата:
MAG79:
snark13
Win MCE... - оболочка подвисает при попытке остановить просмотр, выйти в главное меню или переключиться в другие окна
Я Media Center Edition не проверял, думаю, все должно работать. А какой вариант использовался? Через ffdShow или AVS-скрипт?

Использовался вариант через ffdshow... а как AVS скрипт к MCE то прикрутить ???

139. MAG79, 27.02.2008 06:36
snark13
Поглядел на Win MCE по обзорам (http://www.thg.ru/software/20050807/media_center-04.html) и на офиц. сайте (http://www.microsoft.com/windowsxp/mediacenter/using/videos/homemovies.mspx) .
Проигрыватель там получается свой, встроенный. AVS-скрипт можно создать самостоятельно. Как это сделать описано в шапке темы (http://forum.ixbt.com/topic.cgi?id=62:12524:0#0) (пока это делается вручную для каждого видеофайла отдельно). Созданный тобой AVS-файл должен видеться из MCE как еще один видеоклип, который можно воспроизвести. Пробуй.
...да, и в ffdShow в таком случае галку с AviSynth надо снять

140. andynn, 27.02.2008 06:54
А я на филипке (47*9732) отключаю эту функцию плавности и 100Гц соотвественно - смотреть невозможно фильмы - все нереально четкое - как буд то смотришь хроники какие то снятые дешевой камерой, а не художественные фильмы.
Да есть небольшое дрожание кадров и дерганье картинки когда идут масштабные наезды камерой - но не во всех фильмах и совсем короткие промежутки времени.
Так что это не особо парит. Речь идет только о фильмах высокого разрешения. Все обычное показывает плавно и без рывков.

141. Oliverst, 27.02.2008 09:33
andynn
Кажется, что теряется "атмосфера" фильма и ощущение нереальности происходящего, искажается "задумка" режиссера. Интересно что бы сказал режиссер Михалков, посмотрев свой "Утомленные солнцем" в DNM, плюнул бы в телевизор?

142. dioxin, 27.02.2008 12:02
2 Oliverst
просто с древних пор все привыкли к "слайд-шоу" в 24фпс, другое редко встречалось, с непривычки комуто может показаться неправильным увеличение кадров, но на самом деле вы видите просто прерывистость движений. вам понравится смотреть фильм например с 15 фпс?.. или взять чёрно-белое кино, после перехода на цветное наверняка тоже ктото мог заявить -слишком похоже на действительность, негодится=) задумка режиссёра не искажается, он снимает тем что есть, что делают производители съёмочного оборудования, так же как например чарли-чаплина снимали ч/б не потому что такая задумка режиссёра была.
дело вкуса конечно, но я вообще не понимаю какого хрена щяс упорно продолжают снимать в 24 фпс, и это када HD на дворе. и не железом в теликах надо фпс прибавлять, а сразу нормальной техникой снимать давно..
..или как вариант после съёмки материала сразу пересчитать фильм и продавать диски с уже увеличенным фпс-ом и плавной картинкой, это избавило бы от встраивания в каждый отдельный телек аппаратной начинки для просчёта. а при желании вернуться к привычному дёрганому изображению будет гораздо проще, выкидывая лишние кадры и просто дублируя предыдущий, "портить " то проще чем строить=) да и в промышленных условия можно сделать гораздо качественнее обработку, в реальном времени считать нету необходимости, пусть день или неделю фильм просчитывается, зато один раз и для всех..

143. Oliverst, 27.02.2008 12:35
dioxin
Все дело в том что режиссер пользуется всеми теми возможностями которые у него есть (пленка 24к) и свои мысли и идеи воплощает в рамках этих же возможностей, была бы возможность снимать на 100 кадров в сек. я уверен использовал бы на все 100%. По-этому будет большая разница между тем что получится от использования пленки на 100 кадров в сек и DNM.
Давайте возьмем какой-нибудь художественный шедевр-картину и "улучшим" палитру.
Будет лучше? Сомневаюсь.

144. andynn, 27.02.2008 12:36
2 Oliverst
ну наверно бы и плюнул - думаю даже бы слюной...

145. dioxin, 27.02.2008 13:12
Oliverst
разница в плёнке 100к и DNM конечно будет, просто DNM нам даёт возможность ,пусть примерно, ощутить как оно могло бы быть классно еслибы сразу снимали в 100к, и чего тут плохого, ну кроме что артефактов от DNM задумка режиссёра врядли будет изменена, так как у него немного другая задача, тут скорее больше возможностей для работы кинооператора открывается.
насчёт палитры вспомнился фильм фанфан-тюльпан, его из ч/б ручками цветной делали, мне непонравилось чесна, лучше ч/б=) но всегда приятно когда есть выбор -из цветного сделать назад ч/б нажав пару кнопок.. а вообще у каждой модели телека или монитора своя палитра, так что остаётся только просмотр в оригинале в кинозале, в домашних условиях всёравно неизбежны потери, хотябы HD разрешение тоже далеко от разрешения нормальной плёнки..

146. MAG79, 27.02.2008 13:28
Смотрю, разговор пошел уже не про технологию увеличения плавности видео, а про уместность ее применения. Хорошо, если выделить несколько областей применения, тогда в каждой области можно сделать разные выводы насчет уместности применения DNM.

Области применения:
1. Художественные видеофильмы
2. Документальные, обзорные, спортивные, лекционные видеофильмы, домашний архив
3. Видеоконференции, прямые трансляции, ТВ-шоу
4. Записи, сделанные с низкой частотой кадров (фотоаппараты, веб-камеры)

Пока дискуссия идет около первой области применения, там действительно можно согласиться с Oliverst и andynn, DNM не то что совсем портит, но многие моменты показывает не так, как задумывалось и просматривалось режиссером. Особенно всякие изысканные приемы с резкими изменениями яркости, вспышками, тряской камеры. В случае с DNM зритель получает уже немного другие ощущения отличные от того, как режиссер хотел воздействовать на человека. DNM все всплески яркости делает плавнее, смягчает тряску. В этом плане dioxin прав. Если бы фильм изначально снимался, монтировался с повышенной частотой кадров, то режиссер, мог бы видеть результат и при просмотре на ТВ его задумки не искажались бы.
Интересно, есть такие фильмы, которые просматривают изначально с эффектом сглаживания движений и ставят флаг на сценах, которые не желательно сглаживать, а показывать как есть? А ТВ при отображении действует как ему сообщает этот флаг отключения плавности на требуемых местах. Тогда старые фильмы можно не переснимать, а просто расставить эти флажки на сценах, где DNM портит задумку режиссера. Остальные сцены пусть плавненько показывает.

Для областей применения 2, 3, 4 думаю, многие согласятся, что DNM идет только на пользу.

147. hermitap, 27.02.2008 13:36
я смотрю на своем LE40F86 все с включенной технологией плавного движения..

И эфир и DVD и HD

Мне нравится.. Каких либо неудобств не заметил. Почти все в том числе HD идет в режиме 100Hz motion plus без артефактов.
почти без артефактов.

148. dioxin, 27.02.2008 14:45
так DNM смягчает тряску, ну а если бы снимали камерой 100к она бы полюбому смягчилась, режиссёр здесь непричём. ну если тока сказал бы оператору камеру шибче трясти . С остальными эффектами тоже самое. В целом согласен, ощущения зрителя меняются, просто у каждого по своему, в плюс или минус, мне проще мириться с лёгким несоответстивем режиссёрской задумке в пользу плавной, более естественной картинки.
[ставят флаг на сценах, которые не желательно сглаживать] - врядли такое возможно, слишком трудная работёнка получится, если только в качестве экспериента, а все фильмы это анрил=).
да ещё и не все режиссёры одинаково полезны, раз на то пошло.. в некоторых случаях наоборот DNM помогает вылечить картинку например при просмотре концертников- ну очень некоторые любят сделать эффект дёрганных клипов, замедленное дискретное движение. простите но концерт тем и хорош что вживую всё должно идти, а свои эксперименты с видео оставьте в студии для коллег, жены и любимой собаке..

149. Яга, 27.02.2008 16:08
Ну что пробовал кто нить софтины из первого поста?

150. MAG79, 27.02.2008 18:31
Яга
Я пробовал. Но еще не все из них. Только MSU FRC, MVTools, TrimensionDNM из WinDVD6 и MultiSampling Crystal Player'а. Отчет с картинками и описанием сравнения видимо буду публиковать частями. Свободного времени сейчас совсем мало. Оформление результатов, как оказалось, не такое быстрое дело. Тебя если что-то конкретное интересует, то ты спрашивай - дам быстрый ответ.

ВСЕМ!!!
УРА!
Хорошие новости!
Я смог увеличить в реальном времени частоту кадров видеоматериала почти FullHD разрешения ровно в два раза. Для FullHD производительности чуть-чуть не хватило. Сегодня полчаса погонял Core2Quad 3 ГГц. Исходный материал: файл VID-4I.mp4 из DivX Test CD 2.0. Параметры файла: 1280х720, 24 кадра/сек. Использовался "быстрый" скрипт: MVTools_fast. Вот что вышло (разрешение@fps - производительность):

Core2Quad 3 ГГц (четырехядерный)
ФУНКЦИЯ MT:
(еще не тестировалось, от нее ожидаются лучшие результаты по производительности)
КОМАНДА SetMTMode(2,4):
1328x752@96 - 95,9 МПикс/сек (x4, coef=1.045)
1392x784@72 - 78,6 МПикс/сек (x3, coef=1.09)
1888x1056@48 - 95,7 МПикс/сек (x2, coef=1.48)


Полный текст использованного скрипта (MVTools_fast с масштабированием):
код:
SetMTMode(2,4)
DirectShowSource("H_VIDEO_CODECS\VID-4I.mp4")
coef = 1.045
Lanczos4Resize (Int(Width*coef/16)*16, Int(Height*coef/16)*16)
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=4*FramerateNumerator(last), \
den=FramerateDenominator(last), mask=0, idx=1)

первая строчка - явно прописывает включение многопоточного режима №2 для всех 4-ех ядер (без этой строки ядра нагружались не равномерно, результаты получались ниже);
третья и четвертая строки - масштабирование, до размера кратного 16-ти, для более быстрого последующего поиска векторов движения (использованы блоки 16x16);
coef - коэффициент масштабирования.

На моем домашнем компьютере этот скрипт для этого же исходника в этом же режиме SetMTMode(2) показал производительность 48,7 МПикс/сек (http://forum.ixbt.com/topic.cgi?id=62:12524:82#82) . Четырехядерник оказался быстрее на 97%. Это при более низкой тактовой частое (3 ГГц против 3,32 ГГц). А что ожидать от процессоров, работающих на 4,4-4,7 ГГц? Плавного видео FullHD в реальном времени!

151. Яга, 27.02.2008 18:48
Ну и отлично ибо я раздумал везти свой фуллхд филипок на обмен, хотя продавец дал зеленый цвет.
А как артефакты?
Ты на большом экране смотришь - все таки изображение несколько по-разному выглядит.

Маг, и все остальные - когда я говорю об "остальных софтинах" я говорю о 5 новых ссылках - что там скрыто - неужто не любопытно?

Добавление от 27.02.2008 18:49:

А сколько стоит Core2Quad 3 ГГц

152. elektron-mobile, 27.02.2008 20:03
MAG79
это уже здорово .... а битрейт исходного материала разве не имеет значения , просто оччень разные 1280 на 720 бывают - и загрузку разную дают , H264 прилично подгружает камень.... WinDVD9 вышел - тока в японии - непонятно работает там трайменшн на HD или нет вряд ли ... Пережмите пожалуйста кусочек HD материала 1280 *720 с 4 кратным увеличением частоты - хоть сек 10-15 - ну не получаеться у меня - такие артефакты -смотреть больно - выложите если можно - хочу посмотреть стоит заморачиваться или забыть ... IC2Q LGA 775 (Q6600) 2.4G/8Mb/1066 FSB BOX Kentsfield * * 286 у нас цена - погониться выше без проблем http://www.overclockers.ru/lab/26704_2.shtml
http://www.thg.ru/cpu/intel_core2_e6750_q6600_overcl…overclock-08.html

Добавление от 27.02.2008 20:07:

http://www.thg.ru/cpu/intel_core2_e6750_q6600_overcl…/c_hdplayback.png

153. MAG79, 28.02.2008 05:42
Яга
я говорю о 5 новых ссылках - что там скрыто
Неужели сам не нажал и не сходил по ним?
По тем ссылкам можно попасть на следующие программные решения:
1. MotionPerfect 4.3.1.1 от DynaPel (июнь, 2003) - самостоятельное приложение.
2. SlowMotion 1.0.4.0 от DynaPel (июнь, 2003) - самостоятельное приложение.
3. Twixtor 4.5.8 от REVision (апрель, 2006) - фильтр для Premiere Pro и др.
4. FRC от YUVSoft (сентябрь, 2007) - самостоятельное приложение. Коммерческая версия бесплатного фильтра MSU FRC.

Все они пригодны только для предварительного рассчета плавного движения. Для использования в реальном времени они не предназначены. Я скачал все названные программные решения, но еще не использовал.

elektron-mobile
Спасибо за ссылки.

битрейт исходного материала разве не имеет значения
Имеет. Поэтому и привожу исходные данные протестированного видео-файла. Также имеют значение и контейнер, и формат сжатия, и исходное разрешение.

и загрузку разную дают
Да, по ссылке проигрывание HDTV-ролика с BD загрузило четырехядерный Core2Quad 3 ГГц на 12,9% Я считаю это приемлемым.

выложите если можно - хочу посмотреть стоит заморачиваться или забыть
Я пока измерял только быстродействие. Чтобы можно было сравнить относительный прирост производительности от дополнительных двух ядер, то использовал тот же скрипт с теми же настройками, что и в первых тестах. Настройка качества не проводилась, т.к. это требует дополнительного времени на подбор параметров и просмотр результата. Артефакты пока не устранял. До следующей недели у меня недостаток времени, но это может сделать любой желающий. Как уже указывалось, для устранения артефактов надо играться параметрами lambda, lsad, pnew, plevel и ml. Установить mask=2.

Имеет ли смысл выкладывать мой клип без настроек качества?

Добавление от 28.02.2008 05:48:

Яга
А сколько стоит Core2Quad 3 ГГц
Я использовал разогнанный Core 2 Quad Q6600. В моем городе можно взять за 8-9 т.р.

154. Oliverst, 28.02.2008 08:00
У нас в городе Q6600 ОЕМ лежит по 7 575 руб.
Вчера в новостях слышал, что готовится к выпуску 6-ти ядерный

155. Яга, 28.02.2008 13:35
Интересно, а появится когда нибудь приложение, чтобы два раза кликнуть мышкой и оно включилось и чтобы не надо было "играться с параметрами"

156. MAG79, 01.03.2008 17:53
elektron-mobile
Спасибо за информацию о WinDVD9. Оказывается есть 2 версии: обычная и Plus. С официального сайта (на японском) доступна пока опять-таки японская триальная версия без Plus'a. Где-то в сети вычитал, что версия без Plus'а не поддерживает DNM, зато Plus поддерживает. А кроме всего прочего якобы появилась новая технология улучшения видеоматитериала стандартной четкости до уровня высокой четкости, называется 2HD. Видимо, программный аналог PixelPlus. Я смог скачать версию без Plus'a. Установил, искал слово "DNM" среди японских иероглифов - не нашел.
Решил попробовать включить DNM через реестр, раз в проигрывателе нет. Достал фильтр-декодер IVIVIDEO.ax, который попробовал прикрутить к MPC. DNM активировать не удалось, зато сравнение разных версий этих файлов позволило выявить новые параметры, которыми можно играться через реестр. Итак найденные параметры:
IVIVIDEO.ax 6.0.6.42: USEDNM
IVIVIDEO.ax 8.0.6.109: USEDNM, DNMTHREADMODE, DNMSplitMode, DNMDupMode, DNMLogoMode, DNMCinema
IVIVIDEO.ax 9.0.14.48: DNMSplitMode, DNMDupMode, DNMLogoMode, DNMScaleMode, DNMEnhancementLevel, DNMFrameRate

Как видно, у 9-ки нет упоминания параметра USEDNM. Зато есть параметр USE2HD. Включение его в реестре вызвало у меня черный экран во время проигрывания. Возможно, режим DNM включается другим параметром. Пока самыми изведанными являются ключи 8-ки.
USEDNM: 0-выкл./1-вкл. - активация режима TrimensionDNM,
DNMLogoMode: 0-выкл./1-вкл. - вывод логотипа TrimensionDNM в верхнем левом углу на проигрываемом видео,
DNMSplitMode: 0-выкл./1-вертикально/2-горизонтально - деление экрана пополам и активация TrimesionDNM на одной из них (используется в демонстрационных целях),
DNMCinema: 0-выкл./1-вкл. - активания режима Cinematc look (меньше загрузка CPU, худшее качество).

С остальными ключами еще предстоит разобраться.


Яга
Ты на большом экране смотришь
Я смотрю на нескольких экранах. У меня дома и на работе LCD 17" 1280x1024, т.е. для просмотра 720p вполне подходят. Также на работе есть доступ к мониторам LCD 23" 1920х1200. На них смотрю материал FullHD. Правда есть подозрение, что там матрица медленная.

появится когда нибудь приложение, чтобы два раза кликнуть мышкой и оно включилось и чтобы не надо было "играться с параметрами"
Конечно появится. Даже те наработки с MVTools, известные на настоящий момент можно использовать для написание небольшого приложения, автоматически создающего скрипт, выбирающего параметы по разрешению, и запускающего этот скрипт в CrystalPlayer'e. Внешне это будет выглядеть как обычное открытие файла из проводника и вызываться двумя кликами.
Вопрос только в том, кто возмется написать?

157. elektron-mobile, 01.03.2008 18:12
MAG79
Супер , вот интересный параметр DNMEnhancementLevel , перспективный - , и если можно выложите пожалуйста кусочек своего клипа - хочу очень посмотреть такие артефакты как у меня или нет... а есть ксати различие в воспроизведении двд 9 декодером или нет?

158. MAG79, 02.03.2008 12:56
elektron-mobile
Выложил весь клип с исходником (у кого DivXTestCD 2.0 нет), длительность 46 сек.
Исходный файл (для сравнения): VID-4I.mp4 (http://rapidshare.com/files/96388441/VID-4I.mp4.html) (12 913 КБ)
Полученный файл: VID-4I.MVTools_fast.72fps.mp4 (http://rapidshare.com/files/96388795/VID-4I.MVTools_fast.72fps.mp4.html) (26 713 КБ)


есть ксати различие в воспроизведении двд 9 декодером или нет?
Не смог я его заставить DNM включить. Поэтому он просто декодирует MPEG2 и все. Никакого рассчета промежуточных кадров.

159. Dimon Hell, 02.03.2008 13:40
Вот народ мучается...
У меня на телеке включил DNM и всё.

160. MAG79, 02.03.2008 14:19
Dimon Hell
Если на твоем 42PFL9632 на FullHD-материале со входа DNM включается, то бесспорно - твой ТВ за предлагаемые деньги очень даже . А у кого-то нет такого ТВ и не запланирована покупка оного, зато есть мощный комп и устройство отображения, к несчастью не имеющее DNM, или просто видеоролик на компьютере хочется с плавностью посмотреть - вот тогда эта ветка и пригодится.

161. elektron-mobile, 02.03.2008 16:02
Dimon Hell
А мы тут не письками меряемся а картинку улучшаем - попробуйте на проекторе DNM включите ....

Добавление от 02.03.2008 16:06:

Dimon Hell
а ты типа посочувствовать или как ..в чём смысл твоего поста для конференции

Добавление от 02.03.2008 16:16:

MAG79
Скачал ролик - нет артефактов ... буду возиться с настройками ...

Добавление от 02.03.2008 16:32:

и наверное в офлайн имеет смысл MSU FRC подключать - выше вы говорили он качественней

162. MAG79, 02.03.2008 18:40
elektron-mobile
Скачал ролик - нет артефактов ... буду возиться с настройками ...
А исходный ролик не скачивал? Может попробовать качнуть его и сперва его помусолить: ты увидишь, что скрипт заработает как и у меня. Думаю, тут все же важное значение имеет характер видеоматериала. Мультфильм после увеличения плавности движений выглядит очень даже. Хотя можешь пристально/покадрово еще раз посмотреть на сцену выбегающих их метро людей: увидишь, что и здесь есть артефакты. Больше всего артефакты заметны на динамичных сценах. Это хорошо проиллюстрировал (http://forum.ixbt.com/topic.cgi?id=62:12524:97#97) vjk скриншотами из матрицы.

имеет смысл MSU FRC подключать - выше вы говорили он качественней
Я такого не говорил. MSU FRC медленнее, да и артефактов он больше дает, чем MVTools.

163. elektron-mobile, 02.03.2008 21:42
http://forum.doom9.org/showthread.php?t=84770&page=33 мого обсуждают- не осилил - если не надо потру

164. andynn, 02.03.2008 22:16
2 All
Гонит Dimon Hell - при включенном этом фильтре тоже лажа появляется хотя у меня телег даже новее чем у него (47PFL9732) - да в некоторых местах чет там сглаживается - но все равно лажа. И как я уже писал выше - всю картину это DNM портит - если тока документальное видео смотреть то более менее смотрибельно.
Так что энтузиасты - вперед - мож что нить и нароете...
А то я же тоже мучаюсь ...

165. hermitap, 03.03.2008 09:43
цитата:
andynn:
2 All
Гонит Dimon Hell - при включенном этом фильтре тоже лажа появляется хотя у меня телег даже новее чем у него (47PFL9732) - да в некоторых местах чет там сглаживается - но все равно лажа. И как я уже писал выше - всю картину это DNM портит - если тока документальное видео смотреть то более менее смотрибельно.
Так что энтузиасты - вперед - мож что нить и нароете...
А то я же тоже мучаюсь ...

не соглашусь. Не портит картинку.

я 3и недели смотрю уже все в спмсунговом 100hz motion plus. Я уже даже перестал замечать сто у меня
включен movie plus. Как бы привык, так и надо.
Конечно, если специально смотреть то сразу видно что включен movie plus. Но как то смотря на него везде и во всех передачах, стало это как само собой разумеется.

мне нравится

166. Dimon Hell, 03.03.2008 09:57
MAG79
У меня всё включается.
elektron-mobile
Я риторически-сочувствующе сентенсирую.
andynn
Новее? Он не новее,просто диагональ больше и кардридер есть+верхний торшер.Кардридер вообще ненужная фигня,а круговой Эмби я на свой и сам установить могу.Так что не надо тут "втирать" что ваш ТВ новеее.Шасси одно.
Картинку АБСОЛЮТНО не портит.Смотрю ТОЛЬКО 1080р контент и цифровое DVB-C.
Чего и вам!

167. MAG79, 03.03.2008 12:31
Dimon Hell
Спасибо за ответ и за доброе пожелание.

Значит, имея свободных 60 т.р. можно получить аппаратное решение просмотра видео с компьютера (а еще и ТВ-каналов) с плавностью движений вплоть до FullHD разрешения. Это ТВ с функцией DNM или ее аналогом. Хороший альтернативный вариант особо обсуждаемым здесь программным решениям, имеющий свои плюсы.

andynn, видимо, представитель тех людей, которым не нравится работа функции повышения плавности движений. В этом нет его вины. Да, не всем нравится ее работа, поэтому на ТВ ее можно отключить, а на компьютере - попробовать донастроить для более качественной и приятной для глаз работы. Чем в итоге я как раз и планирую заняться.

168. AI, 03.03.2008 12:51
а банальный FrameDbl (http://www6.impacthosting.com/trbarry/FrameDbl.zip) не пробовали юзать?

у него нет таких эффектов о которых писал vjk скриншотами из матрицы.

ЗЫ я сам из интерлейса делаю 50fps ну и если применить ещё FrameDbl (http://www6.impacthosting.com/trbarry/FrameDbl.zip) , то получиться 100Гц

(правда современные LCD мониторы принимают тока 60/75Гц )

169. andynn, 03.03.2008 13:19
2 Dimon Hell
Конечно новее - там процессор абсолютно другой ...
Но эта другая ветка конференции

170. Яга, 03.03.2008 13:43
На офисной слабенькой машине запустил мадагаскар 72f
Искажения чудовищны - шлейфы, когда лев двигает лапой на экране 5 рук одновременно.
Проц примерно 1,5 гц, карточка тоже убогая.
Но стрелок например нормально показывал.

Наверно для корректной работы нужен комп не неиже пентюха 3 гц... все таки.

171. MAG79, 03.03.2008 14:03
AI
Спасибо за ссылку, это творение 2003-го Тома Бэрри действительно заслуживает внимания. Алгоритм работы фильтра описан там же в прилагающемся текстовом файле. Удвоение частоты кадров получается путем поиска двух одинаковых по цвету пикселей в небольшом радиусе, если алгоритм их находит, то в новом кадре рассчитывает промежуточное положение этого пикселя, иначе делает смешивание цветов. Интересный и очень быстрый в работе алгоритм. Правда в некоторых случаях, на покадровом просмотре хорошо видно, он вызывает дрожание пикселей на четких границах.

Кто хочет попробовать, надо: скачать архив, поместить FrameDbl.dll в каталог AviSynth 2.5\plugins, скрипт будет следующим:
код:
DirectShowSource("[имя файла]")
FrameDbl(255,3)

172. AI, 03.03.2008 14:28
MAG79
а чё ты так любишь DirectShowSource?

173. MAG79, 03.03.2008 14:33
Яга
Надо установить и включить быстрый декодер h264. Я использую CoreAVC. На двухядерном Core2Duo 2,13 ГГЦ при проигрывании мадагаскара 73fps загрузка составляет около 40%.

AI
Просто avi-файлов с высоким разрешением мало, а этот способ открывает видеофайлы с любым расширением и без заморочек с установкой доп. плагинов. Насколько он медленнее AviSource'а - не проверял.

174. AI, 03.03.2008 14:58
MAG79 (http://forum.ixbt.com/topic.cgi?id=62:12524:51#51)
3) требуется включения режима Weave, что на очень многих DVD приводит к появлению интерлейсинга Да, именно поэтому предлагается использовать Trimension DNM совместно с фильтром-деинтерлейсером от DScaler, который очень качественно убирает гребенку из черезстрочного сигнала. См. инструкцию по настройке Trimension DNM по ссылке из шапки темы.

а если вместо деинтерейса применять mvbob (http://home.arcor.de/scharfis_brain/mvbob/mvbob.rar) или mcbob (http://home.arcor.de/dhanselmann/_stuff/MCBob_v03c.avs) ?

175. MAG79, 03.03.2008 15:32
AI
Спасибо за ссылки. C TrimensionDNM на черезстрочном сигнале проблема еще в том, что сперва отрабатывает алгоритм увеличения кадров, а уже только потом из получившейся "движущейся" черезстрочки деинтерлейсер должен восстанавливать кадры (подробнее (http://forum.ixbt.com/topic.cgi?id=62:7337:302#302) ). Названные BOB-деинтерлейсеры посмотрю.

Выход для черезстрочного MPEG-исходника: никакого TrimensionDNM, либо просто BOB-деинтерлейсер, либо, если мощность позволяет, то BOB-деинтерлейс с последующим увеличителем кадров (тот же FrameDbl должен справиться). Итого из 25i получим 100p.

176. AI, 03.03.2008 16:52
я для интерлейсного DV/MPEG применяю mcbob() и получается отменное 50ти герцовое видео!
ЗЫ если надо могу выслать примерчик

177. Яга, 03.03.2008 17:34
Лучше сюда повесить

179. Яга, 03.03.2008 18:12
ну залей на рапиду а сюда ссылку ))

180. djonline, 06.03.2008 16:38
цитата:
elektron-mobile:
MAG79
Авторы софтины помоему для Самсунга написали плагин - который в телеках используеться - там и на сайт еесть - хорошие вещи Free долго не валяються -теперь направление погибнет -точнее развиваться то оно развиваеться - тока для самсунга ... вот еслиб я не с проектором жил - купил бы плазму или лсд и не заморачивался - а так надо что то делать



Добавление от 25.02.2008 21:14:

Надо в какой нибудь ветке где перекодировкой живут поросить оптимальную последовательность и набор софта - а то мона недели 2 потатить тока на эксперименты , чтоб мона было притулить туда скрипт ... Вот пытался DNM прикрутить к MPC -не поуму работате или нет - у меня причём установлены 7 и8 Windvd - в MPC как в 8 пости нет эффекта а в 7 явно работает -где то кривизна проскочила , и загрузка камня не более 10 процентов - всё по инструкции делал

Позволю себе прокоментировать, что MSU-FRC (http://www.compression.ru/video/frame_rate_conversion/index_msu.html) и есть открытая разработка группы MSU-compression.ru, для SAMSUNG же они лицензируют более лучшую версию http://www.compression.ru/video/frame_rate_conversion/index_frcn.html .
Их же проект деинтерлейса (закрытый) - http://www.compression.ru/video/deinterlacing_samsung/index.html , как известно без деинтерлейса была бы каша.
Самое главное, это что в бесплатной версии MSU-FRC нет вообще никаких средств контроля картинки, смены кадров, яркости, что приводит к очень сильным артефактам. Достаточно посмотреть как красиво ВСЕГДА работает Trimension, и не пытается морфировать кадр на стыке сцен, и как крив в этом отношении бесплатный MSU-FRC.

181. RS422, 06.03.2008 16:59
цитата:
AI:
я для интерлейсного DV/MPEG применяю mcbob() и получается отменное 50ти герцовое видео!
ЗЫ если надо могу выслать примерчик
сорри, а разве dv в Pal не 50Гц по дефолту? Может вы имели ввиду 100Гц? Или 50р? Иль я чего-то не догоняю? Просто планирую купить Кэнон HV-20 и тоже хочу получать максимально плавную картинку.

182. AI, 06.03.2008 21:39
деинтерлейс в чистом виде - превращение 25i в 25p
а боб - это из 25i (25 кадров, 50полей) делает 50 полноценных кадров
(оч. реалестично для просмотра на современных прогрессивных(!) - напр. LCD мониторах)

183. MAG79, 07.03.2008 11:34
AI
деинтерлейс в чистом виде - превращение 25i в 25p
боб - это из 25i (25 кадров, 50полей) делает 50 полноценных кадров


25 кадров, 50 полей (полукадров) принято обозначать 50i. http://ru.wikipedia.org/wiki/Кадровая_частота
Там же в Википедии нет упоминания деинтерлейса, есть деинтрлейсинг. Думаю, что это одно и то же. Мне тоже больше нравится слово "деинтерлейс".
Деинтерлейсом называют процесс конвертации чересстрочного видео в прогрессивный формат. http://en.wikipedia.org/wiki/Deinterlacing
При просмотре чересстрочного видео на мониторе компьютера в любом случае выполняется один из алгоритмов деинтерлейса. Распространенными элементарными алгоритмами деинтерлейса являются либо сохранение всех 50-ти фаз движения, но c потерей четкости по вертикали (Bob), либо сохранение полного разрешения, но c потерей половины информации о движении - остается только 25 фаз (Weave). Во втором случае на динамичных объектах можно наблюдать эффект "расчески" (гребенки).
Современные алгоритмы деинтерлейса намного сложнее этих двух примитивных алгоритмов, и позволяют оставлять всю информацию о движении, достраивая недостающие строки из соседних полукадров для восстановления вертикальной четкости и избавления от "расчески". Предложенные тобой mvbob и mcbob находятся в этом числе алгоритмов.

RS422
miniDV снимает видео в формате 50i.

Добавление от 07.03.2008 12:39:

djonline
Их же проект деинтерлейса (закрытый) - http://www.compression.ru/video/deinterlacing_samsung/index.html
Почему же? Есть демо-программа (http://yuvsoft.com/download/deinterlacing/index.html) и ролики (http://yuvsoft.com/technologies/deinterlacing/index.html) от имени YUVsoft. В этих роликах присутствуют кадры и график из статьи.

184. RS422, 08.03.2008 02:03
цитата:
MAG79:
AI
деинтерлейс в чистом виде - превращение 25i в 25p
боб - это из 25i (25 кадров, 50полей) делает 50 полноценных кадров


25 кадров, 50 полей (полукадров) принято обозначать 50i. [url=http://ru.wikipedia.org/wiki/Кадровая_частота]
обычно Паловский видеостандарт обозначался 720х576 при 25 кадров секунду. Или (в спеках или драйверах) просто - 576i.

185. 19w85, 10.03.2008 00:41
В этой (http://www.totaldvd.ru/post/14127/default.asp?print=1) статье намекают, что TrimensionDNM в WinDVD увеличивает частоту более чем в 2 раза (при 25 кадрах в 4 разах при 100 герцах), но измерив Fraps'ом получил только 50 fps при 100 герцах...

186. MAG79, 10.03.2008 08:32
19w85
Я включил TrimensionDNM в MPC с драйвером IVIVIDEO.ax 8.0.6.109. Проверил работу на видео 25 fps при частотах работы монитора 60, 75, 85, 90 и 100 Гц. Получил вот что (частота экрана, Гц -> частота видео, кадров/сек):
60 -> 60,
75 -> 75,
85 -> 50,
90 -> 50,
100 -> 50.
Видимо, Trimension DNM увеличивает частоту видео до частоты развертки монитора в 3 раза максимум. Далее - частота видео устанавливается в 50 fps (удвоение исходной). То ли где-то ошибка, то ли защита.
Рекомендация: для достижения эффекта максимальной плавности смотреть на частоте развертки монитора, установленной в 75 Гц.

Добавление от 10.03.2008 15:40:

19w85
у меня осталось такое впечатление от прочтения указанной статьи, будто она написана не специалистом в этом области и приведена не вся. Да и судя по комментариям, где-то к ней были картинки. Начал искать - нашел еще большее недоразумение: ветку обуждения (http://www.media.nrd.ru/index.php?showtopic=34364) 4-ех месячной давности, где статья содрана без указания на автора, а название ветки: "TrimensionDNM (Digital Natural Motion) от Philips, 100 кадров/сек при разрешении 1920x1080p".
Хмм.. Я до сих пор был уверен, что компьютерная реализация TrimensionDNM из WinDVD 6-8 работает максимум с сигналом стандартной четкости (576p), а из проведенной проверки выходит, что 100 кадров/сек - цифра недостижимая. Максимально возможно троекратное увеличение частоты кадров. Для PAL - это 75 fps. А для NTSC - только что проверил, тоже 75 (!) fps.
Вот расклад зависимости частоты кадров от частоты развертки монитора для NTSC (исходная частота кадров: 30 fps):
60 -> 60,
75 -> 75,
85 -> 60,
90 -> 60,
100 -> 60.
Другими словами для NTSC-видео макcимально возможное увеличение частоты кадров при помощи TrimensionDNM - в 2,5 раза.

За это сообщение сказали спасибо: 19w85

187. 19w85, 10.03.2008 18:37
Смотреть на 75 Гц на ЭЛТ - это просто жуть...мерцание слишком большое (лично для меня)...
А при 85-100 Гц только удвоение fps...на Crystal'е тоже удвоение...т.е. они бы работали практически одинаково, если бы в Crystal'е расчитанный компенсирующий кадр не смешивался еще и с предыдущим, а просто выдавался?
цитата:
MAG79:
3. Режим Motion Morphing уже производит компенсацию движения и расчет промежуточных кадров, но результат также практически всегда (отчего зависит, я еще не выснил) склеивается наложением с соседним кадром с той же непрозрачностью 25%. Резкость каждого полученного кадра уже чуть получше, чем у предыдущего режима, но далека от резкости оригинала. "Контуров-призраков" уже меньше.

188. MAG79, 10.03.2008 19:08
19w85
они бы работали практически одинаково, если бы в Crystal'е расчитанный компенсирующий кадр не смешивался еще и с предыдущим, а просто выдавался?
Думаю, что DNM все равно показал бы лучшее качество, чем CP. Для точного ответа требуется попиксельное сравнение кадров наложением. В общем, у меня есть тестовые ролики Crystal Player'a, где можно попробовать вычесть эти соседние кадры из рассчитанных и сравнить полученные "очищенные" рассчитанные кадры с DNM.

189. 19w85, 11.03.2008 03:31
Немного оффтопик, но...
MAG79
Прочитав эту тему и увидев, что можно получить плавное воспроизведение 720p решил обновиться с Athlon64 3200+ (2200Mhz@Up 2600Mhz) до "AMD Athlon 64 X2 5600+ (2x2800 MHz)" или "Intel Core 2 Duo E4500 (2x2200 Mhz)"...В начале планировал Атлон, но почитав, что Интел и греется меньше (видимо за счет 65 нм против 90 нм у AMD) и разгонный потенциал вроде как намного больше, начинаю все больше склоняться к интелу...
Что из этого посоветуете взять, в первую очередь для плавного воспроизведения 720p?

Добавление от 11.03.2008 03:40:

P.S. Ах да, единственное чем Атлон по-лучше - это Частота шины 1000 МГц а у интела Частота шины 800 МГц...

Добавление от 11.03.2008 03:57:

Хотя может это и не минус...есть куда гнать...да и множитель у E4500 хороший (11)...

190. MAG79, 11.03.2008 09:19
19w85
На выходных пересмотрел два фильма в 720p.
1. Пятый элемент - "5th Element HD.mp4" (1280x720, 25 fps).
640x360, 24,4Kb
Начал смотреть с фильтром FrameDbl. Выбрал из разных сочетаний более приятное для глаз: двухэтапное увеличение частоты кадров в два раза с радиусом поиска 3, затем - еще в два раза с радиусом 1.
код:
DirectShowSource("5th Element HD.mp4")
crop(0,96,0,-96) # подрезать черные поля сверху и снизу, чтобы не тратить на них драгоценные ресурсы при расчете
#ConvertToYUY2().WarpedResize(1280,720,1,0.95).ConvertToYV12()
FrameDbl(255,3)
FrameDbl(255,1)

Итоговая частота кадров: 100 fps. Долго смотреть не смог, терпения хватило минут на 10: плавные движения смотрятся очень даже хорошо, а вот с динамичными и очень плавными движениями у этого алгоритма проблемы. На динамичных сценах происходит смешивание кадров практически без компенсации движения, а на сверхплавных сценах заметно дрожание пикселей на резких границах. Все таки, 3 и 1 - это слишком малый радиус поиска для HD-материала. В итоге досмотрел фильм на скрипте с применением MVTools (модифицированный MVTools_fast):
код:
DirectShowSource("5th Element HD.mp4")
crop(0,96,0,-96) # подрезать черные поля сверху и снизу, чтобы не тратить на них драгоценные ресурсы при расчете
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=3*FramerateNumerator(last), \
den=FramerateDenominator(last), mask=0, idx=1)

Итоговая частота кадров: 75 fps. Получил массу удовольствий от просмотра. Плавность движений все же намного выше, чем у FrameDbl. Хотя иногда заметны артефакты "ошибочных" движений.

2. Матрица - "Matrica.I.mp4" (1280х720, 23.976 fps)
640x360, 19,9Kb
Вот на этом фильме у моего процессора уже не хватило мощности для увеличения частоты кадров при помощи MVTools в 3 раза, как на предыдущем фильме: там я съэкономил на отрезанных черных полях. В реальном времени успевало отработать только двухкратное увеличение частоты кадров. Судя по загрузке процессора оставалось еще немного ресурсов, поэтому я скомбинировал скрипт MV_tools_fast и FrameDbl с радиусом поиска = 3. Получился скрипт:
код:
DirectShowSource("Matrica.I.mp4")
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=2*FramerateNumerator(last), \
den=FramerateDenominator(last), mask=0, idx=1)
FrameDbl(255,3)

Итоговая частота кадров: 95,9 fps. Результат очень порадовал. FrameDbl в таких условиях показал себя в работе приятнее, т.к. перед ним один промежуточный кадр рассчитывался при помощи MVTools, и расстояние между движущимися элементами в кадре сокращалось, что позволило FrameDbl создать хороший эффект плавности даже при радиусе поиска = 3. Визуально кадры рассчитанные FrameDbl чуть менее четкие по сравнению с рассчитанными MVTools. Зависит от амплитуды движения, чем плавнее, тем четче. Надо отдельно отметить, что производительнсти моего компьютера чуть-чуть не хватило для этого скрипта: каждые 2-15 минут буфер кадров все же опустошался и видео останавливалось на секунду для заполнения буфера (использовался Crystal Player). Это немного снизило впечатление от просмотра, но в целом я остался доволен результатом. Специально пытался ловить артефакты от "ошибочных" движений скрипта MVTools_fast в режиме просмотра (на паузе то хорошо видно). Нашел закономерность, что они больше заметны на динамичных сценах, на которых четкость уже понижена эффектами размазывания, наличием нескольких планов, малой глибиной резкости. Таких сцен в матрице оказалось совсем не много. Из таких сцен хорошо запомнились две: перемещение в толпе и перестрелка в холле.

Немного цифр:
5-й элемент. FrameDbl. Производительность: 1280х528х100 = 67,6 МПикс/сек.
5-й элемент. MVTools. Производительность: 1280х528х75 = 50,7 МПикс/сек.
Матрица. MVTools+FrameDbl. Производительность: 1280х720х95,9 = 88,4 МПикс/сек.
Моего процессора чуть-чуть не хватило для безостановочного проигрывания третьего скрипта.

Конфигурация моего компьютера подробно указана в профиле. См. Инфо (http://forum.ixbt.com/users.cgi?id=info:MAG79) . Я поделился своими впечатлениями, а ты уж сам решай достаточно тебе будет такого, или получше взять. C AMD я попрощался год назад, когда пересел c одноядерного Athlon'а @2ГГц на двухядерных Core2Duo @3,2ГГц. Про производительность современных процессоров от AMD ничего сейчас сказать не могу - не проверял.

К сообщению приложены файлы: 1.jpg, 640x360, 24Кb, 2.jpg, 640x360, 20Кb

191. RDL, 11.03.2008 13:59
MAG79
......Надо отдельно отметить, что производительнсти моего компьютера чуть-чуть не хватило для этого скрипта:.....


а ты попробуй не много CPU разогнать.

192. MAG79, 11.03.2008 19:02
RDL
попробуй не много CPU разогнать
уже... 1,87 -> 3,32 ГГц (разогнан на 78%)

193. RDL, 12.03.2008 10:19
MAG79

194. djonline, 14.03.2008 15:49
Попробовал YUVsoft на захваченном с видеокассете материале в dv - очень сырая вещь. Как не менял поля (upper first и наоборот), всё равно картинка дрожит на 1px вверх-вниз на кадом кадре.
Может быть соль в фразе в дословном переводе "бесплатная версия не показывает всех возможностей".

195. MAG79, 14.03.2008 18:43
djonline
картинка дрожит
Странно. YUVSoft в деморолике хвастаются как раз отсутствием вертикального дрожания.
Я попробовал mvbob, который предлагал AI. Тоже есть вертикальное дрожание. Сейчас mcbob пытаюсь завести. А вообще выбор деинтерлейсеров для AviSynth'а немаленький. Я когда-то уже успел накачать и попробовать: dgbob, GreedyHMA, LeakKernelDeint, TomsMoComp. А еще народ использует TDeint и Yadif. Насчет дрожания - надо смотреть, у какого алгоритма оно отсутствует.

196. djonline, 15.03.2008 17:35
MAG79, речь не о других, а именно о YUVSoft, описаниями которого я кормился 3 года на compression.ru
Попробовал на чистом DV материале - дрожания уже нет. Но:
1. Сам не умеет определять какое поле должно быть upper
2. На выходе не обещанные 50fps а 25.
3. Судя по всему действительно все лицензионные "улучшалки" отключены.

Вот два кадра для сравнения, старый добрый Smart Deinterlace и YUVSoft:
http://www.djonline.ru/deint/smartdeint.png
http://www.djonline.ru/deint/yuv.png

Никаких существенных отличий не видно, мало того, даже на мой взгляд YUVSoft выглядит хуже - посмотрите на ровную наклонную черту сверху и на квадратную у YUVSoft. Замечена потеря некоторых деталей в одиночных тёмных пикселях, которые становятся серыми.

Вообщем не вижу пока ничего чудесного.

197. MAG79, 15.03.2008 20:17
djonline
Спасибо за информацию. Decomb от YUVSoft оказался не таким хорошим, как его расхваливают.
Я вчера завел-таки mcbob(). Спасибо AI за наводку. Обрабатывал всю ночь. Средняя скорость обработки - 1,3 кадра в секунду. Загружается только одно ядро. Но оно стоит того. Результаты очень порадовали. Никаких лесенок и остатков черезстрочки. Вертикальное дрожание есть, но проявляется только на резких горизонтальных границах (на бегущей строке , например) и практически не заметно при просмотре на получающейся частоте 50 fps. Проверял на DV-материале. Тестовый ролик от afanas'a. Полученный ролик зажал сперва в HuffYUV, затем в x264. После пытался сравнить визуально с плавностью проигрывания 50 кадров/сек и 100 кадров/сек (использовал скрипт MVTools_fast, загрузка процессора - 35%). Ощущения близкие, но 100 кадров все же плавнее. MVTools вообще не показал артефактов. Да и скрипту при исходных 50 кадрах работать проще - все же амплитуда движений между кадрами при 50 кадрах/сек намного ниже, ошибиться с направлением движения сложнее.

Добавление от 15.03.2008 20:28:

djonline
Посмотрел на картинки из твоего сообщения - разница хорошо заметна на нижней части кадра. Наклонные границы у Decomb'а без лесенок: Тень на лице, волосы блондинки, головы людей на заднем плане. Т.е. вертикальное разрешение у деинтерлейсера от YUVSoft выше. А вот почему 25 fps - это вопрос.

198. SandroID, 18.03.2008 10:25
для инфы по производительности MVTools_fast (термин введен MAG79. пр. редакции ) )

проц АМД Х2 4200+ (2,2 Гц) - видео при 4-х кратном увеличении кадра обычное видео тянет ок. HDTV - нет.. фризы..
проц АМД Х2 6000+ (3,0 Гц) - видео при 4-х кратном увеличении кадра обычное видео тянет ок. HDTV - почти, но смотреть невозможно, постоянные фризы..
проц АМД Х2 6000+ (3,0 Гц) - видео при 2-х кратном увеличении кадра обычное видео тянет ок. HDTV - стоп кадр и все...

199. MAG79, 18.03.2008 13:53
SandroID
Спасибо за инфу.
Каким плеером проверял?
Crystal Player с максимальным буфером кадров пробовал? - вместе с созданием файла скрипта AVS он дает лучшую производительность, чем вариант использования ffdShow.
Я использовал скрипт MVTools_fast с коэффициентом масштабирования картинки (coef) для поиска максимального разрешения кадра для каждого коэффициента увеличения частоты кадров: 2, 3, 4. Скрипт описан в этом сообщении (http://forum.ixbt.com/topic.cgi?id=62:12524:96#96) , настройки Crystal Player'а и результаты приводились например, здесь (http://forum.ixbt.com/topic.cgi?id=62:12524:86#82) .

200. Валерий В., 22.03.2008 18:53
Кто же кодит в Xvid, если хочет получить качество (четкость)?!
Только x.264\H.264

Добавление от 22.03.2008 19:00:

[q]19w85:
Немного оффтопик, но...
MAG79
Прочитав эту тему и увидев, что можно получить плавное воспроизведение 720p решил обновиться с Athlon64 3200+ (2200Mhz@Up 2600Mhz) до "AMD Athlon 64 X2 5600+ (2x2800 MHz)" или "Intel Core 2 Duo E4500 (2x2200 Mhz)"...В начале планировал Атлон, но почитав, что Интел и греется меньше (видимо за счет 65 нм против 90 нм у AMD) и разгонный потенциал вроде как намного больше, начинаю все больше склоняться к интелу...
Что из этого посоветуете взять, в первую очередь для плавного воспроизведения 720p?

Однозначно - 4-х ядерник Интел, например, Q6600.
Сам собираю комп под Интел На чипсете Х38.
Сейчас у меня Атлон 64 3000+@3800+
Не все проги на AMD работают корректно, а некоторые - вообще не пашут...

201. AI, 22.03.2008 21:26
Не все проги на AMD работают корректно, а некоторые - вообще не пашут...
Гон! и офтоп! Go to CPU forum! там за такие высказывания быстро мозги прочистят!!!.... или в бан отправят!

202. Timus, 22.03.2008 22:59
MAG79
Интересно узнать мнение специалиста: а какая же по Вашему не тупиковая ветка эволюции?
1) разумеется, материал надо приводить к виду, пригодному для алгоритмов увеличения частоты кадров.
3) он их плавно двигает. разве не так?
4) таких материалов пока очень мало. У меня в руках еще нет. Заполучу - юуду думать, что с ним делать. Какие предложения?
5) никаких проблем здесь не вижу.

На специалиста не претендую... Я бы лично хотел плеер, способный выдавать 24р/25р с не hard telecined SD-DVD, плюс способный воспроизводить ХД-РИПы. Плюс телевизор/проектор, меняющий частоту обновления экранного буфера до кратной входному сигналу, т.е. 96/100/120Гц, да имеющий несколько режимов интерполяции промежуточных кадров, в том числе отключение.
1. Увы в рамках ДВД-стандарта это невозможно, многие пытались, вывод - не тратить время и смотреть в интерлейсе. Теоретически можно загнать в mkv с разными частотами кадров на разных отрезках, практически нужен будет специально заточенный на это алгоритм типа Трименшен и есть сомнения в том, что он справится без предварительной расстановки флагов смены отрезков. То есть алгоритм еще и в паре с iVTC-перекодировщиком должен работать, остается только свой несовместимый вариант mkv родить под это, грустное бугага...
3. Если он плавно двигает предметы первого плана, как он может плавно двигать в другом направлении задники? Он их сцуко такое безбожно адцки мылит. Что создает художественный эффект типа нерезкого размытия заднего плана в фотографии, что воспринимается как передача трехмерности пространства и некоторым нравится.
4. Этот пункт мною отзывается - наивно надеялся, что BD имеет 60р на диске чем освободился от детских болезней некратности стандартным частотам развертки... Авотнет, интерполируйте пользователи дорогие кто чем сможет
5. неплавность движений либо потери четкости - выбрать в зависимости от алгоритма интерполяции 24р в 60р. Многие скажут что два дефективных поля на пять кадров незаметны, я скажу что регулярная помеха в погрешности движений либо четкости с частотой 12Гц не может не гадить изображению на определенных сценах, вопрос в субъективной заточке зрения на артефакты движения. Проскакивающие в одном кадре дефекты пленки там, где они есть, пипл тоже не замечает что ли? Это я не о ярких белых пятнах, а не слишком контрастных волосках. Да, Трименшен на очень мощной базе может сделать преобразование частоты кадров очень плавненько в 80% случаев, но цена? Или оверскан или мозаики по краям, плюс ошибки на специфических сценах типа стена из кафельной плитки, плюс вышеупомянутое размыливание задников, плюс принципиальные затыки алгоритма когда крупные предметы первого плана движутся в противоположных направлениях.

203. kSL, 23.03.2008 09:16
Попробовал 1м скриптом через ffdShow, с числом кадров 40-50, бывает подтормаживает, но самое главное, по центру появляется как бы вертикальная полоска склеивания двух половин экрана, если использовать 2й скрипт то вообще чёрт знает что, в каждой половине экрана свои кадры бегут
проц е4500@2.65

204. Яга, 23.03.2008 12:02
Все будет, ребят, все будет )

205. MAG79, 24.03.2008 12:44
Timus
Спасибо за ответ.
Небольшие коментарии по отдельным моментам:

1. Увы в рамках ДВД-стандарта это невозможно, многие пытались, вывод - не тратить время и смотреть в интерлейсе.
WinDVD9 вполне корректно делает деинтерлейс и увеличение частоты кадров в режиме реального времени. Насчет hard telecined - не знаю, надо пробовать.

Или оверскан или мозаики по краям
У WinDVD9 теперь нету черных бордюров при работе DNM.

плавно двигает предметы первого плана... создает художественный эффект типа нерезкого размытия заднего плана
Спасибо за описание, при сравнении кадров я уделю пристальное внимание такому размытию.

принципиальные затыки алгоритма когда крупные предметы первого плана движутся в противоположных направлениях
Спасибо. Это я тоже погляжу покадрово.

kSL
Какой исходный материал? Разрешение? Частота кадров?

Яга
Все будет, ребят, все будет
Заинтриговал

206. ZDS78, 25.03.2008 02:02
MAG79
А к стороннему плейеру декодер от 9 подключать пробовал? У меня DNM в MPC не включился.

Добавление от 25.03.2008 02:08:

Кстати All to HD - IMHO просто шарпинг.

207. MAG79, 25.03.2008 05:39
ZDS78
Пробовал: черный экран. FAQ = Просмотр видео на компьютере с эффектом плавности движений (Trimension DNM, MSU FRC, MVTools и др.), #156 (http://forum.ixbt.com/topic.cgi?id=62:12524:156#156)
Но это была японская 9-ка. Мультиязычную пока подключать не пробовал.

All2HD в WinDVD9 - это не просто шарпинг, а с предварительным повышением разрешения. См. страницу Features (http://www.corel.com/servlet/Satellite/us/en/Product/1203568929644) на официальном сайте.

208. ZDS78, 25.03.2008 11:10
MAG79
А по виду - просто шарпинг

209. crystallize, 25.03.2008 14:36
Так а вы все на ЭЛТ что ли всё это смотрите? Просто хотел сказать, что даже если подаёшь на ЖК _монитор_ 75гц, он, сцуко, адбрасывойед несколько кадров и всё равно показывает 60. Или есть реально 100герцовые? Велика сила самовнушенийя. х)

210. MAG79, 25.03.2008 16:56
crystallize
Мой домашний LCD моник (Hyundai ImageQuest Q17 - одна из первых 75-ти герцовок) 75 Гц показывает реально, 100 Гц - для галочки. А вот ЭЛТ на работе (LaCie electron 19 blue IV) умеет 800x600@160 и 1280x1024@100. Мне хватает

есть реально 100герцовые?
Раз есть LCD ТВ 100 Гц, то и LCD-мониторы такие должны быть.
Да даже если и 60 Гц - почему бы и не смотреть на 60-ти? Всё лучше, чем 15, 24, 25, 30 кадров/сек

З.Ы. Только что попробовал поймать разницу между 100, 150 и 160 Гц. Так сразу не увидел. Или из-за того, что смотрел на материале 320х240 (большее разрешение на моем рабочем компе MVTools_fast не тянет), или просто видео необходимо другого характера, чтобы увидеть разницу 160 против 100 Гц. Для моих глаз разница 100 против 60 Гц лучше видна. Комфортный просмотр для меня начинается где-то с 75 кадров/сек.

211. Dmitvg, 27.03.2008 10:16
Итак, ознакомившись с различными вариантам плавного просмотра видео на PC осмелюсь сделать следующие выводы и задать вопросы:
1. Воспроизведение DVD с удвоением FPS в реальном времени решается програмными проигрывателями типа WinDVD и достижимо на довольно бюджетной компьютерной технике.
2. Воспроизведение видео до 567 в реальном времени (что следует из п.1) также не представляется большой проблемой и реализуется CrystalPlayer, MPC etc...
3. Офлайн подготовка видеоматериала также может быть достигнута с применением указанных кодеков и плагинов в оболочке VD.

А теперь вопрос:
Так как же всетаки подготовить офлайн материал в разрешении 720 (хотябы) или выше, сохранив при этом КАЧЕСТВО изображения и ЗВУКА (!!) ??
Предвидя вопросы "А зачем?" отмечу, что многие читающие эти материалы готовы купить TV Philips или Samsung с аппаратно реализованной технологией, но, к сожалению для себя они уже имеют проекторы... )) и проблема страбоскопа и нехватки 25f в таком случае стот куда как острее... И на фоне растущего в Сети контента 720 и 1080 с DTS звуком и прочими приятностями, думаю, эта тема актуальна.
Готов советоваться и совещаться в т.ч. и по dmitvg соубака майл.ру

212. Яга, 27.03.2008 12:35
2. Воспроизведение видео до 567 в реальном времени (что следует из п.1) также не представляется большой проблемой и реализуется CrystalPlayer, MPC etc...
Позволю себе не согласиться.
Корректно просмотреть у меня так и не получилось.
А Кристал вообще фуфло - удвоение паршивое и все размазывается.
Имхо.

Вывод - реально работающего в один клик и без заморочек софтового аналога Трименшна для ави и мкв контента пока не существует.

213. MAG79, 27.03.2008 13:04
О терминологии: "Офлайн подготовку" я бы назвал предварительным расчетом. т.к. она является альтернативой расчету-на-лету (on-the-fly), а не как не "в постоянном доступе" (on-line).

Предварительный расчет с повышением частоты кадров в три раза - вполне понятная и конкретная фраза.

Dmitvg
Я смотрю фильмы (http://forum.ixbt.com/topic.cgi?id=62:12524:190#190) с расчетом доп. кадров на-лету вплоть до 720p, но тем не менее варианты предварительной обработки тоже прощупываю. Например, я могу с уверенностью утверждать, что видео h.264 1080р @72fps вполне корректно аппаратно распаковывается на RADEON HD 2600 XT, а программно Core2Duo 2 ГГц при использовании декодера CoreAVC. Т.е. Для _проигрывания_ таких предварительно расчитанных видеофайлов требования к железу уже немаленькие.

О сохранении качества изображения: мне неизвестно программ, позволяющих без перекодировки добавлять дополнительные промежуточные кадры в видео. Приходится делать предварительный расчет по схеме: раскодировал -> рассчитал доп. кадры -> закодировал. Потеря качества при перекодировании идет по определению, единственное, можно эту потерю можно свести к незначительной для глаз, установив соответствующие параметры при кодировании.

О сохранении звука и приятностей: надо почитать в сети о том, как готовят и добавляют звук и приятности в видео перед распространением по сети. Думаю, там нет ничего особенного. Схема будет такой: Демукс видео (разделение файла на видеофайл, звуковые дорожки и прочие приятности) -> предобработка видео с добавление доп. кадров -> Мукс (сливание полученного видео, исходных звуковых дорожек и прочих приятностей вместе).

Если освишь какой-нибудь пакет для этого, то было полезно описать здесь свой опыт. Из того, что я видел в сети: одного универсального пакета нет - народ пользуется набором программ для создания mp4.

Добавление от 27.03.2008 13:12:

Яга
реально работающего в один клик и без заморочек софтового аналога Трименшна для ави и мкв контента пока не существует

Буквально вчера смотрел дома "Телепорт" (720х304@25) через ffdShow. Там у меня на вкладке AviSynth такой вот скрипт написан:

код:
backward_vec1 = MVAnalyse(isb = true,  blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
mult = Int(75/FramerateNumerator(last)*FramerateDenominator(last))
last.MVFlowFps(backward_vec1,forward_vec1, num=mult*FramerateNumerator(last), \
den=FramerateDenominator(last), mask=0, idx=1)

Это доработанный MVTools_fast, который увеличивает количество кадров в кратное число раз, чтобы итоговая частота была близка к частоте моника в 75 Гц. Чем тебе не одна кнопка? Можно запустить любой видеофайл с разумным разрешением двойным щелчком из проводника.

214. Dmitvg, 27.03.2008 13:42
Яга
не содержательно ...

И вопрос остаётся открытым:
Так как же всетаки подготовить офлайн материал в разрешении 720 (хотябы) или выше, сохранив при этом КАЧЕСТВО изображения и ЗВУКА (!!) ??
Предвидя вопросы "А зачем?" отмечу, что многие читающие эти материалы готовы купить TV Philips или Samsung с аппаратно реализованной технологией, но, к сожалению для себя они уже имеют проекторы... )) и проблема страбоскопа и нехватки 25f в таком случае стот куда как острее... И на фоне растущего в Сети контента 720 и 1080 с DTS звуком и прочими приятностями, думаю, эта тема актуальна.
Готов советоваться и совещаться в т.ч. и по dmitvg соубака майл.ру

215. MAG79, 27.03.2008 14:06
Dmitvg
кроме звука какие еще приятности имеются в виду?

чем повторять, лучше уточнить свой вопрос

216. SandroID, 27.03.2008 15:21
MAG79
я думаю что Dmitvg
говорит о вот этом:
FAQ = Просмотр видео на компьютере с эффектом плавности движений (Trimension DNM, MSU FRC, MVTools и др.), #190 (http://forum.ixbt.com/topic.cgi?id=62:12524:190#190)

просто подскажи ему где написать и как запустить эти скриптики, чтобы на след утро или след. день у него получилось то же кино, но скажем с частотой в 75 кадров.

217. MAG79, 27.03.2008 16:24
SandroID
Инструкция с использованием VirtualDub'а приводилась в начале темы (http://forum.ixbt.com/topic.cgi?id=62:12524:21#21) . Я надеялся, что Dmitvg видел эту инструкцию по предварительному расчету дополнительных кадров и сохранению полученного видео. Я так понял, интересуют именно сохранение исходного звука и "приятностей". Вот только какие приятности имеются в виду?

Добавление от 27.03.2008 16:36:

Поигрался с режимами и настройками своего рабочего ЭЛТ-монитора LaCie electron 19 blue IV. Кроме приведенных режимов (http://forum.ixbt.com/topic.cgi?id=62:12524:210#210) он оказывается держит 85 Гц на разрешении 1920х1200 (это даже выше, чем FullHD 1080p). А процессор на работе не тянет в реальном времени алгоритм повышения частоты кадров FullHD-материала до 85 кадров/сек. Теперь у меня есть явные предпосылки предварительно обрабатывать FullHD фильмы, добавляя им кадры до 85-ти в секунду, чтобы потом смотреть. Но вот беда: у меня на работе стерео-колонки и конвертирование оригинального звука в MP3-стерео ничуть не смущает. Так что меня упомянутая инструкция пока вполне устраивает.

218. Dmitvg, 27.03.2008 19:13
Да, спасибо, приведенные в этой тем инстукции по редварительному расчету я видел и опробовал. Так как же быть со звуком? И если в контейнере их (зв.дорожек) несколько? Можно ли сохранить их все?
Дабы не мусорить здесь - с удовольствием пообщаюсь по мылу...

219. MAG79, 28.03.2008 05:07
Dmitvg
Есть вариант использования MeGUI (http://ru.wikipedia.org/wiki/MeGUI) и Foobar2000 (http://ru.wikipedia.org/wiki/Foobar2000) . Технология описана в статье "h264 Год спустя: Технология кодирования видео в MPEG-4 AVC" (часть 1 (http://offline.computerra.ru/2006/657/290258/) , часть 2 (http://offline.computerra.ru/2006/658/291206/) ).

220. Dmitvg, 28.03.2008 08:28
Спасибо! В выходные буду эспериментить! Результаты - обнародую!

221. MAG79, 02.04.2008 19:09
Dmitvg
Не дождался я обещанных результатов. Сам на месте не сидел, вот какие подвижки в вопросе предварительного расчета FullHD-видео (1920x1080):
1. Можно обойтись одной единственной программой Haali DS Muxer (gdsmux) - идет, например, вместе с K-Lite Codec Pack 3.8.5 Full). Gdsmux позволяет и все звуковые дорожки сохранить, и AVS-скрипт отработать, и в нужный формат сжать. Единственный минус: используется одно ядро, этим способом мне не удалось загрузить оба ядра.
На моем компе расчет промежуточных кадров, сжатие в H.264 и мукс в MP4 производились исключительно на одном ядре со скоростью около 2 кадров/сек. Зато сразу получаешь готовый MP4 без промежуточных файлов.
2. Если видеопоток готовить при помощи VirtualDub (по ранее приводившейся инструкции), то можно загрузить оба ядра, а результат потом смуксить с оригинальными аудиопотоками при помощи gdsmux.
Мой домашний процесор был загружен на оба ядра на 100%. При этом скорость расчета кадров, сжатия в H.264 и сохранения в AVI происходило со скоростью уже около 4 кадров/сек. Если учесть, что я расчитал ролик с конечной частотой 75 кадров/сек, то это примерно 1/20 реалтайма. Часовой фильм будет считаться 20 часов.
3. Оказывается требования для воспроизведения достаточно высокие. Мой домашний комп Core2Duo 3,32 ГГц тянет 120 кадров/сек при использовании скоростного декодера CoreAVC. А вот рабочий комп Core2Duo 2,0 ГГц 85 кадров/сек не потянул.
Надо либо другой менее требовательный к ресурсам кодек для сжатия использовать, либо разгонять/апгрейдиться. Все-таки охота видео смотреть на частоте монитора - 85 Гц.
4. В скрипте AviSynth при предварительном расчете лучше указывать не кратный коэффициент увеличения частоты кадров, а увеличивать точно до требуемого значения, совпадающего с кадровой частотой устройства отображения. Тогда видео смотрится плавно, без джиттера (без неравномерностей в движении и рывков).

Кстати, я использую уже другой вариант скрипта, заточенный под FullHD, собранный из кусков MVTools_fast и MVTools_slow. Назовем его MVTools_FullHD:
код:
DirectShowSource("[имя файла]")
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=2, overlap=2, chroma=true, search=3, searchparam=4, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=2, overlap=2, chroma=true, search=3, searchparam=4, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=75, den=1, mask=2, ml=100, idx=1)

Провожу дальнейшую настройку параметров. Использую для этой цели редактор AvsP.

222. ar1997, 02.04.2008 20:09
Раз тут речь уже зашла про обработку FullHD-видео, скажу о своем "способе", по которому я достигаю удвоения частоты кадров при обработке, причем малой кровью. Может кому пригодится. Итак, исходное видео снято современной HD-камерой (с флеш носителем) в формате AVCHD, т е .MTS (или .m2ts, что одно и то же) файлы. Принципиально, что видео в ИНТЕРЛЕЙСНОМ формате. Дальше я произвожу обработку через VirtualDub, используя Avisynth DirectShowSource("[имя файла], fps=59.94") (у меня NTSC камера, т е 30 кадров\сек). Весь фокус в том, чтобы в настройках CoreAVC выбрать метод деинтерлейса BOB, при котором происходит УДВОЕНИЕ частоты кадров, так что на выходе я получаю не 30fps, а все 60 fps!!! Визуально, на экране ЖК монитора с частотой 60гц, видео смотрится как и положено при таком fps, плавно, без джиттера (без неравномерностей в движении и рывков)! В VirtualDub использую дешейкер, для того, чтобы убрать дрожания, и сохраняю в .MJPG, для дальнейшего монтажа в видеоредакторе. Для удобства работы оформил все это в виде автоматических скриптов для массовой обработки большого (из отпуска привез 500+) кол-ва файлов.

223. MAG79, 03.04.2008 08:21
ar1997
Спасибо. Отличный спобоб. Хорошая альтернатива использованию MVTools. Особенно, если учесть, что напрямую черезстрочному (ИНТЕРЛЕЙСНОМУ) видеоматериалу плавности скриптом не добавишь: надо сперва проводить деинтерлейс (желательно не смешивающий оба полукадра в один, иначе получается размазанность движущихся объектов, а нам необходимо добавить плавности FullHD, сохранив детали), а затем уже из полученных полных (прогрессивных) кадров достраивать дополнительные.
Спасибо за наводку на BOB от CoreAVC. Можно еще декодеры от Cyberlink и InterVideo покрутить. Надо будет попробовать сравнить их с результатами фильтров MvBob и McBob, а то эти фильтры слишком уж медленно работают (http://forum.ixbt.com/topic.cgi?id=62:12524:197#197) . На черезстрочном FullHD McBob у меня показывает скорость 0,18 кадров/сек.

Автоматический скрипт - это как?

224. Serpentus, 04.04.2008 10:21
ar1997
При использовании BOB четкость падает в два раза, т. е. вместо 1080i@30 вы получаете фактичеки 540p@60 upscale to 1080p@60. Другое дело, что видеокамера из-за несовершенства оптики и электроники может и не обеспечивать все 1080 строк, а, скажем, только 700. Тогда падение четкости будет не так заметно, и это будет являться разумной платой за плавность движений. Кстати, насколько реально заметно изменение частоты смены кадров по сравнению с WAVE?

225. MAG79, 04.04.2008 12:45
Serpentus
Разговор про Bob от CoreAVC. На своем компе я не обнаружил отличий настроек Bob и Blend. То что я наблюдал - это смешивания двух полей в один кадр и вывод на экран. Результат - двойные контуры движущихся объектов и, разумеется, никакого увеличеличения частоты кадров вдвое.

Алгоритм MCBob - совсем другое дело. Цитирую себя же (http://forum.ixbt.com/topic.cgi?id=62:12524:183#183) :
"Современные алгоритмы деинтерлейса намного сложнее этих двух примитивных алгоритмов, и позволяют оставлять всю информацию о движении, достраивая недостающие строки из соседних полукадров для восстановления вертикальной четкости и избавления от "расчески". Предложенные mvbob и mcbob находятся в числе этих алгоритмов."

226. ar1997, 04.04.2008 13:30
Serpentus
Спасибо за ценное замечание! Самому как-то в голову не пришло, что будет падение четкости в два раза, хотя если подумать, то можно сообразить, что так и должно быть!
У камеры действительно разрешение не 1000, а где-то в районе 600-700. Визуально, на обычных бытовых сценах, падения четкости не заметно (монитор 1680x1050). Учитывая, что основная цель все-таки DVD, то на практике это падение четкости роли не играет.
цитата:
Кстати, насколько реально заметно изменение частоты смены кадров по сравнению с WAVE?
На динамических сценах очень заметно! Перестает стробить, начинает все двигаться плавно. Ну вообщем "TrimensionDNM" да и только !!!
MAG79 - на моем компьютере в режиме BOB никаких сдвоенных контуров нет. Покадровый просмотр показывает, что все кадры идеальны, обеспечивают правильное последовательное движение объектов. Может у Вас не та версия CoreAVC? У меня CoreAVC.Professional.Edition.v1.6.5.0.

227. MAG79, 04.04.2008 14:21
ar1997
Прошу прощения... CoreAVC вообще что-то стал работать нестаблильно. То плеер из-за него вылетал, то сейчас: вообще на настройки не реагирует: расческа сплошная и при Weave и при Bob c Blend'ом. Надо разобираться, искать причину такого поведения.

228. Sunspot, 04.04.2008 17:11
MAG79
вообще на настройки не реагирует: расческа сплошная и при Weave
Она при Wave и должна быть

229. MAG79, 04.04.2008 18:10
Sunspot
Она при Wave и должна быть

Спасибо за уточнение, но я имел в виду, что выбор Bob и Blend картины не меняют. Сейчас думаю, что видео сжал без флага "Interlaced", хотя соответствующую галку в настройках кодера x264 устанавливал.

230. VictorLS, 05.04.2008 20:57
У меня CoreAVC четко показывает интерлейсний материал только при Hardware Bob,
т.е. Bob средствами видеокарты, что в моем случае означает Векторный Адаптивный Деинтерлейсинг (ну очень качественный).

231. ar1997, 07.04.2008 10:03
VictorLS
А какая у Вас видеокарта? - У меня ATI X1960 - hardware режим почему-то не работает

232. MAG79, 07.04.2008 13:37
ar1997
Хардварную поддержку распаковки H.264 современными видеокартами обсуждают в соседней ветке: [FAQ] Аппаратная поддержка HD (H.264 и WMV-HD) у ATI (AMD) и nVIDIA (http://forum.ixbt.com/topic.cgi?id=10:51719)
Видеокарты серии X19xx там тоже обсуждаются (http://forum.ixbt.com/post.cgi?text=X19&color=1&id=print%3A10%3A051719) . Есть полезная программка DXVAChecker, которая показывает какие аппаратные ускорения поддерживает видеокарта. Ссылку можно найти там же.

P.S. У VictorLS видеокарта HD 2400 Pro. В Инфо написано

233. djonline, 09.04.2008 15:34
По рецепту MAGа сделал 720p видео с частотой 50, 75 и 100hz.
Так вот, Athlon Barton 3000+ держит что-то около 50-60 кадров в секунду при просмотре из xvid (энкодинг в xvid вместе с просчётом кадров - 6-7fps). Соответственно 75fps и 100fps уже не идут в реальном времени, а хотелось бы. Бывает ли ещё более быстрый по скорости декодирования кодек чем xvid (и который бы обеспечивал хорошее качество без прицела на битрейт) ?

234. VictorLS, 09.04.2008 20:14
ar1997
уточните вопрос.
Вас интересует Hardware ускорение, снижающее нагрузку на процессор почти до 0
или Hardware деинтерлейсинг от CoreAVC? Если второе, то на X1900 оно у человека работало.
Мой комп в Инфо.

235. MAG79, 10.04.2008 06:18
djonline
Я только что погонял файлы H.264 720p на своем стареньком Duron Applebred @2000 МГц. Получил 95 fps с отрисовкой в Null и 65 fps с отрисовкой в WMR9. Использовался декодер CoreAVC 1.5.0, DirectX 9.0c (не последний), дрова видео 2006-го года. Скорость замерял программой TimeCodec, привел цифры dfps (т.к. они соответствуют реальности, а вот что обозначают fps в этой программе я не понял, но они завышены).

Если интересно вечером могу провести дополнительные замеры скорости работы. Прирост должны дать:
1. Обновление DirectX до последней версии 9.0с, выпущенной в марте 2008.
2. Обновление драйвера видеокарты.
3. Обновление CoreAVC до версии 1.6.5.
4. Использование менее ресурсоемкого формата сжатия видео. Об этом ниже.

H.264 - это очень ресурсоемкий формат как для кодирования, так и для декодирования. Можно посоветовать использовать менее "прожорливые" форматы. Если выбрать самые ходовые форматы и перечислить их по мере убывания требований к производительности процессора, то получится: MPEG4 AVC (H.264, AVC1); MPEG4 SP/ASP (DivX, XviD); MPEG1/2 (но он, похоже, не поддерживает нестандартную частоту кадров); MJPEG.
Спецы, если что-то пропустил - будьте добры, дополните.

Бывает ли ещё более быстрый по скорости декодирования кодек чем xvid (и который бы обеспечивал хорошее качество без прицела на битрейт)?
Учитывая то, что для кодирования в MPEG1/2 нужны специальные программы, которые не поддерживают сжатие с нестандартной частотой кадров (больше 25, 30 fps), то предлагаю попробовать MJPEG. Кроме этого, можно попытаться сменить декодер, т.к. все декодеры просто не могут обладать одной скоростью, какой-нибудь наверняка быстрее остальных (для формата H.264 - это декодер CoreAVC (http://www.xard.ru/post/12266/default.asp) ). Плюс не стоит забывать про программы со встроенными декодерами, оптимизированными на скорость, и про аппаратное ускорение декодирования видео. Для начала я бы погонял Crystal Player и Media Player Classic Homecinema.

236. ar1997, 10.04.2008 19:52
VictorLS
Уточняю вопрос. Меня интересует именно Hardware деинтерлейсинг от CoreAVC! Когда я выбираю эту позицию в настройках CoreAVC, то при просмотре фильма я вижу, что деинтерлейсинг НЕ сделан (или сделан, но плохо?)! На динамичных сценах видна "расческа" (очень хорошо видно на красных фонарях проезжающего мимо автомобиля). Тогда как в режиме "BOB" все идеально! Что у меня видеокарта "плохая", или же hardware-акселерация так плохо работает?

Добавление от 10.04.2008 20:04:

Бывает ли ещё более быстрый по скорости декодирования кодек чем xvid (и который бы обеспечивал хорошее качество без прицела на битрейт)?
Вот я тут HD фильм обрабатываю с промежуточным кодированием в MJPG, могу сравнительные данные привести: воспроизведение AVCHD (1440*1080, анаморф 1.33, 60i) - загрузка проца 80%. Воспроизведение MJPG (1440*1080, 60р) - 40%. Так что действительно можно MJPG попробовать (мой проц Core 2 Duo 1.86)!

237. VictorLS, 11.04.2008 08:52
ar1997
наверное все-же проблемма с материалом.
Попробуйте на разных файлах Н264.
PS. Может все-же драйверы виноваты. Я пробовал на 8-1.

238. MAG79, 12.04.2008 21:48
djonline задал актуальный вопрос насчет скорости декодирования. Мне самому стало очень интересно, какое сочетание из форматов сжатия, их декодеров, драйверов и механизмов отрисовки (рендереров) дает большую частоту кадров. Ограничиваться советом попробовать разные декодеры я не стал, провел свое небольшое тестирование. Из механизмов отрисовки я выбрал VMR9, т.к. он во всех случаях давал лучшие результаты по скорости, не считая механизма Null, где отрисовки как таковой вообще не производится. Тестируемое железо: Duron (Applebred) @2000 МГц, Radeon 9800Pro. ПО: DirectX 9.0c (март'08), Catalyst 7.9, K-Lite codec pack 3.8.5 full, CoreAVC 1.6.5.

Итак результаты:
514x409, 13,3Kb

Из декодеров на диаграмме присутствуют только те из них, которые показали два лучших результата для каждого формата. Как видно, можно ограничиться декодером ffdshow и CoreAVC. Они показали лучшую скорость декодирования.

Если говорить про форматы, то лидером оказался формат H.263, закодированный через ffdshow, кодером H.263+. Результат его декодирования составил 108,3 кадра в секунду, что на 37% быстрее декодирования H.264.

Из любопытного отмечу, что MJPEG сильно нагружает процессор во время декодирования, видимо из-за отсутствия межкадрового сжатия, а каждый раз восстанавливать кадр с нуля процессору тяжелее, чем из соседних кадров. MJPEG показал результат чуть лучше, чем у H.264, но при этом хуже, чем у DivX и XviD. Второе, что меня поразило, это то, что исходный файл VID-1D.mpg декодировался со скростью 166 кадров/сек декодером InterVideo NonCSS. Жаль, что формат MPEG1/2 имеет ограничение по частоте кадров. Максимум, насколько я понял - это 59,94 fps. Может это ограничение можно обойти? Кто знает?

К сообщению приложены файлы: 1.png, 514x409, 13Кb

239. MAG79, 13.04.2008 20:27
Для полноты картины добавлю еще две диаграммы: скорость кодирования и полученный размер видеоролика.
Скорость кодирования   - 515x332, 10,0Kb

Размер видеоролика   - 516x333, 9,0Kb


Кодирование производилось на Core 2 Duo 3,32 ГГц. Не все кодеры задействовали оба ядра. В данном случае меня больше интересовала итоговая скорость кодирования.

Вывод: по совокупности характеристик, включающих скорость кодирования, получаемый размер видео, а главное, скорость декодирования, вполне хорошо себя показали кодеры H.263+ и WMV V7 из ffdshow.

К сообщению приложены файлы: 1.png, 515x332, 10Кb, 2.png, 516x333, 9Кb

За это сообщение сказали спасибо: 19w85

240. 19w85, 13.04.2008 23:26
цитата:
MAG79:
Я только что погонял файлы H.264 720p на своем стареньком Duron Applebred @2000 МГц. Получил 95 fps с отрисовкой в Null и 65 fps с отрисовкой в WMR9. Использовался декодер CoreAVC 1.5.0, DirectX 9.0c (не последний), дрова видео 2006-го года. Скорость замерял программой TimeCodec, привел цифры dfps (т.к. они соответствуют реальности, а вот что обозначают fps в этой программе я не понял, но они завышены).
А как вам удалось получить такой большой fps на таком компьютере?
Мне на своем Athlon64 2600Mhz удалось получить на 720p (H.264) только 23-28 dfps (WMR9) в TimeCodec'е (MPC, CoreAVC 1.5.0, DirectX 9.0c (последний), дрова видео 2007-го года)

P.S. Ну, собственно, и без тестов при проигрывании 720p 23.98fps загрузка под 95%, а 720p 25fps иногда даже рассинхронизация звука начинается (приходится ставить CoreAVC 1.6.5 - с ним рассинхрона почти нет, но сам проигрыватель начинает тормознее работать)

241. MAG79, 14.04.2008 06:55
19w85
как вам удалось получить такой большой fps на таком компьютере?
По последним данным (http://forum.ixbt.com/topic.cgi?id=62:12524:238#238) мой Duron Applebred @2000 МГц после обновления драйверов на CoreAVC 1.6.5 удалось улучшить результат с 65 fps до 78 fps. На этом фоне 28 fps на Athlon64 смотрятся очень странно.

Я посморел тест iXBT (http://www.ixbt.com/video2/r9550.shtml) , твоя видеокарта Radeon 9550 слабее моего Radeon'a 9800Pro по многим тестам более чем в два раза. VMR9 - это механизм отрисовки, использующий возможности видеокарты. Вероятно, использование более мощной видеокарточки в моем случае дает такой прирост скорости.
Хотя результаты еще сильно зависят от исходного материала. Можешь взять DivXTestCD 2.0 и замерить скорость декодирования двух файлов: VID-4I.mp4 (720p) и VID-4J.mp4 (1080p)?
А я потом тоже замерю и сравним (рабочий Core 2 Duo @3ГГц показал 185 dfps и 125 dfps соответственно)

Кстати, был неправ насчет того, что VMR9 быстрее. Оказывается, остальные механизмы отрисовки ограничены частотой обновления экрана, поэтому давали худшие результаты (значение dfps). Сейчас перепроверил на мониторе с частотой 160 Гц: VMR7 показывает результаты примерно на 7-10% лучшие, чем VMR9.

242. 19w85, 14.04.2008 07:58
цитата:
MAG79:
Хотя результаты еще сильно зависят от исходного материала. Можешь взять DivXTestCD 2.0 и замерить скорость декодирования двух файлов: VID-4I.mp4 (720p) и VID-4J.mp4 (1080p)?
А я потом тоже замерю и сравним (рабочий Core 2 Duo @3ГГц показал 185 dfps и 125 dfps соответственно)
Скоро докачается DivXTestCD 2.0 и к вечеру отпишусь о результатах замеров...

цитата:
MAG79:
Скорость замерял программой TimeCodec, привел цифры dfps (т.к. они соответствуют реальности, а вот что обозначают fps в этой программе я не понял, но они завышены).
А может быть fps - максимальное, а dfps - минимальное количество кадров?

243. djonline, 14.04.2008 10:57
MAG, спасибо, цифры красивые. Но жаль - они зависят от видеоматериала.
Я тестировал на первых 3х минутах Ice Age2. Самое начало, где заставка 20 век fox - самое сложное место, именно там было около 55-60fps и тормоза на 75 и 100fps потоках. Далее буфер от Crystal Player уже более менее успевал декодировать со скоростью 75fps (xvid).
Crystal player показал что независимо от настроек (10-30% ram или auto) максимум умеет держать в буфере лишь 100 кадров, что очень мало (особенно для моих 2Gb).
По твоим тестам WMV7 наиболее быстрый. Но при достаточно большом потоке будет ли он хорош и не будет ли давать артефактов?

244. MAG79, 14.04.2008 12:53
djonline
По твоим тестам WMV7 наиболее быстрый. Но при достаточно большом потоке будет ли он хорош и не будет ли давать артефактов?
По сути, WMV7 - это еще одна реализация алгоритма MPEG4. Поэтому от него можно ожидать того же уровня качества, что у divx и x.264. В тесте я использовал однопроходное сжатие с качеством 85%. Визуально качество картинки осталось на уровне исходника. В случае чего можно увеличить значение до 90 или 95%, либо жестко указать требуемый битрейт.
Какой именно "достаточно большой поток" имеется в виду? 1080p при 100 fps?

19w85
может быть fps - максимальное, а dfps - минимальное количество кадров?
Возможно. У меня на работе два одновременно работающих монитора (установил на одном частоту обновления экрана 75Гц, на втором - 160Гц). Так на втором нет сдерживающих факторов для программы TimeCodec и результаты fps и dfps получаются ближе друг к другу. Это относится к цифрам, превышающим частоту обновления экрана. Для алгоритмов, отрабатывающих медленнее fps и dfps практически равны (отличаются на 1-5%). В любом случае, dfps - это гарантированная скорость работы декодера на тестируемом мониторе.

19w85
Замерил на Duron Applebred @2000 ГГц получилось 86 fps на VID-4I.mp4 (720p) и 41 fps на VID-4J.mp4 (1080p). Использовал отрисовку в VMR7. Убил все лишние процессы в диспетчере задач. Драйвера видеокарты на этот раз: Catalyst 8-3 n2o. Для сравнения, при этих условиях тестовый ролик VID-1D.mpg, пережатый в x.264 при воспроизведении показал уже 99 fps вместо 78, которые на графике. И это, думаю, еще не предел.
VMR9 не смог заставить работать - возникли какие-то проблемы с совместимостью, которые не смог быстро победить.

245. 19w85, 14.04.2008 21:52
VID-4I.mp4:

CoreAVC 1.5.0
VMR7 - 34.7 dfps
VMR9 - 32.4 dfps

CoreAVC 1.6.5
VMR7 - 36.4 dfps
VMR9 - 32.2 dfps

VID-4J.mp4:

CoreAVC 1.5.0
VMR7 - 16 dfps
VMR9 - 15.5 dfps

CoreAVC 1.6.5
VMR7 - 16.6 dfps
VMR9 - 15.5 dfps

P.S. Я раньше думал, что видеокарта не имеет значения, если в ней нет аппратного ускорения H.264...

246. MAG79, 15.04.2008 06:45
19w85
36 fps - это уже лучше, чем 28, но еще не 86 fps. Надо выяснить, что сдерживает. Можешь выслать результаты проверки конфигурации твоего компьютера программой CPU-Z (http://www.cpuid.com/download/cpuz_144.zip) : about -> HTML Dump? Созданный файл cpuz.htm отправить мне по электронке (есть в Инфо). И проверь скорость копирования с винта (или откуда ты открываешь видеоролики) и загрузку процессора при этом. Для обеспечения проигрывания данных роликов на частоте 100 кадров/сек скорость чтения файлов должна быть выше 2 МБ/сек при загрузке процессора менее 10%.

По поводу зависимости частоты кадров от видеокарты - конечно она есть, только в данном случае отличие результатов более чем в 2 раза подозрительно. Думаю, мешает что-то еще.

247. 19w85, 15.04.2008 08:54
Дамп отправил. Открываю всё с винта, скорость при копировании в пределах одного винта 15-25 мб/c - загрузка проца колеблется в основном в райноне 10-15% (макс. 20%), если с одного на другой 45-60 мб/c - загрузка 20-30%

248. MAG79, 15.04.2008 12:28
19w85
Значит проблема не в скорости доступа к диску... Дождусь дампа CPU-Z, может он прояснит ситуацию.

249. 19w85, 15.04.2008 12:33
MAG79
Залил дамп на обменник: http://rapidshare.com/files/107628585/cpuz.htm.html

250. MAG79, 15.04.2008 14:06
19w85
Что-то непонятки какие-то. У меня тоже WinXP SP1, тоже 512 МБ, процессор ниже классом, технологии SSE2, SSE3, x86-64 не поддерживает, частота системной шины 166 МГц (в отличие от твоих 237), чипсет nForce4 NCP вместо твоего K8T800 Pro. Итоговая частота работы процессора также у меня ниже. Т.е. по всем этим параметрам комп слабее. Откуда же тогда у моего компа такая прыть (или у твоего компа тормоза) мне пока не понятно. Неужели все дело в видеокарте? 9800Pro против 9550?

251. ar1997, 15.04.2008 15:56
На днях тут моя видеокарта сгорела - поставил новую. Сразу заметил разницу в воспроизведении AVCHD.
Была карта ATI X1960, теперь NVIDIA 7300GS.
ATI справлялась с показом AVCHD с включенной галочкой BOB-деинтерлейс БЕЗ ТОРМОЗОВ (CoreAVC)!
NVIDIA - не справляется, изображение дергается. Наверное можно сделать такой вывод, что при реализации BOB-деинтерлейса использовались аппаратные возможности видео-карты (?).
2) при установленной галочке Hardware-деинтерлейс, у меня ни та ни другая карта нормально не деинтерлейсит. Эта новая карта (7300GS) тоже не деинтерлейсит - на быстродвижущихся объектах видна расческа. (тормозов при этом тоже нет, просто ничем не отличается от режима "None").
(У меня Core2Duo 1.86. Драйверы для 7300GS свежие - 94.24_forceware)

252. VictorLS, 15.04.2008 16:10
ar1997, попробуйте CyberLink'овский декодер.
В плане деинтерлейсинга, IMHO лучший.

253. MAG79, 15.04.2008 19:47
VictorLS
CyberLink'овский декодер понимает AVCHD? Разве он не для MPEG2?


ar1997
по поводу видеокарт наверное все-таки лучше там спросить: [FAQ] Аппаратная поддержка HD (H.264 и WMV-HD) у ATI (AMD) и nVIDIA (http://forum.ixbt.com/topic.cgi?id=10:51719)
(там и декодирование и деинтерлейс на видеокартах обсуждаются)

254. ar1997, 15.04.2008 21:31
VictorLS CyberLink'овский декодер мне вообще не нравится! Нет, просматривать обычный фильм - это нормально. Но при экспериментах со своими собственными фильмами с видеокамеры - какой-то странный эффект: разные части кадра как будто "дышат". Самое лучшее сравнение такое - как будто поднимается теплый воздух летом в жару и в этих теплых струях воздуха происходят небольшие деформации частей изображения. Особенно этот эффект сильно заметен, когда я этот материал дальше обрабатываю, ну например декодирую через VirtualDub в другой кодек, или (особенно заметно!) обрабатываю дешейкером...
Как только перешел на CoreAVC - сразу этот эффект ПОЛНОСТЬЮ исчез!
MAG79. Да, да, спасибо! Вы правы, на счет [FAQ] Аппаратная поддержка HD (H.264 и WMV-HD) у ATI (AMD) и nVIDIA

255. VictorLS, 16.04.2008 11:08
MAG79
PowerDVD 7.3 спокойно проигрывал, правда без ускорения савторенный мной в NeroVision AVCHD.
а вообще,у CyberLink'а есть куча декодеров - реально я использую только H264 и MPEG2.
ar1997 я использую декодеры в основном для спутникового телевидения, а там интерлейсное вещание (в подавляющем большинстве). Например, H264 пакет российских программ со спутника Express AM1 (40E).
Там есть канал 7TV с бегущей строкой. Так вот на нем деинтерлейсит ТОЛЬКО CyberLink'овский декодер.
Тот же 7TV в MPEG2 есть на 36E (там кстати звук гораздо качественнее, чем на 40Е - высоких больше), его можно декодировать разными декодерами. Так вот особой разницы в качестве изображения я не вижу (хотя поток канала 7TV на 40Е почти в два раза меньше). Посмотрю внимательнее на предмет наличия описанного эффекта.

256. MAG79, 16.04.2008 18:34
VictorLS
Спасибо. Скачал Final Codec Pack 2008 (70 МБ ) по ссылке из соседней ветки. Там этот декодер есть.

19w85
Менял видеокарточку на своем Duron'e. Специально, чтобы оценить зависимость от видеокарты. Сначала погонял MPEG2-записи (декодер: InterVideo NonCSS Video Decoder, отрисовщик: VMR7).
VID-1D.mpg (720p)
  • Radeon 9800 Pro (Catalyst 8-3 n2o): 172,9 dfps
  • GeForce2 MX (ForceWare 93.71 lite): 145,8 dfps
VID-1E.mpg (1080p)
  • Radeon 9800 Pro (Catalyst 8-3 n2o): 81,6 dfps
  • GeForce2 MX (ForceWare 93.71 lite): 67,8 dfps
Затем проверил скорость декодирования H.264. Файл: VID-1D.mpg, пережатый в x264. Декодер: CoreAVC Video Decoder.
  • Radeon 9800 Pro (Catalyst 8-3 n2o, VMR7): 99,1 dfps
  • GeForce2 MX (ForceWare 93.71 lite, VMR9): 42,5 dfps
Итак, получается, что скорость декодирования может сильно зависеть от используемой видеокарты. В моем случае разница в скорости проигрывания составила 20% для MPEG2 и 130% для H.264.

257. SKR, 16.04.2008 20:17
MAG79
Итак, получается, что скорость декодирования может сильно зависеть от используемой видеокарты. В моем случае разница в скорости проигрывания составила 20% для MPEG2 и 130% для H.264.
Странный результат. Там где разница должна быть существенной (mpeg2) она маленькая (хотя может декодер расчитан на декодирование в реальном времени), а там где ее не должно быть она огромна. Как вы замеряете скорость декодирования? Какая загрузка процессора при тестированиях?

258. crystallize, 16.04.2008 21:28
1) Как можно указать MVTools работать только на определённом интервале №ов кадров, например, 1-86400 (или какой там номер у первого кадра-1? 0?)? Напишите пожалста скрипт
2) Нужно как-то заменить pulldown-флагами(MVTools же их игнорирует, да?) в видео аниме все кадры-дубли, идущие за n-ным, кроме самого n-ного, основываясь при этом на самой картинке. Как?

259. 19w85, 17.04.2008 05:54
MAG79
А можешь на своем Duron'е с GF2 потестить эти 2 ролика, которые я тестил? (VID-4I.mp4 и VID-4J.mp4)
Просто интересно будет ли значительная разница с моими результатами, ведь по сравнению с этой конфигурация моя лучше по всем параметрам...

260. VictorLS, 17.04.2008 09:11
ar1997
смотрел вчера с пристрастием - разницы между MPEG2 и AVC не заметил.

261. Fen1264, 17.04.2008 11:39
Друзья мои!!!

Кто может ответить почему Sony PS 3 воспроизводит любой материал, в том числе и Blu-ray диски с
форматом H264

ГЛАДКО И ПЛАВНО, и БЕЗ ВСЕХ ВЫШЕИЗЛОЖЕННЫХ ЗАМОРОЧЕК?

Ведь там не 24-х ядерный процессор!!!

Может там железо изначально имеет полную поддержку всего?

Кто знает что внутри у Sony PS 3?

262. MAG79, 17.04.2008 11:59
SKR
Там где разница должна быть существенной (mpeg2) она маленькая (хотя может декодер расчитан на декодирование в реальном времени), а там где ее не должно быть она огромна.
У меня возникли вопросы по этому утверждению:
1. А как, собственно, узнать, какая должна быть разница? И почему она должна быть существенной для mpeg2?
2. Особенно интересно узнать что такое декодер "расчитан на декодирование в реальном времени"? Он что, кадры пропускает?

Два других декодера MPEG2 показали разницу примерно в два раза. Файл: VID-1D.mpg (720p), VMR7.
Cyberlink Video/SP Decoder (PDVD7): 146,1 dfps и 66,3 dfps
InterVideo Video Decoder: 141,8 dfps и 72,6 dfps
В предыдущем сообщении (http://forum.ixbt.com/topic.cgi?id=62:12524:256#256) я привел цифры самого быстрого декодера. Неужели он "жульничает"?

Как вы замеряете скорость декодирования?
Программкой TimeCodec. При этом убиваю все лишние процессы из менеджера задач. Эта программа дает два значения: fps и dfps. Беру второе, т.к. смог подтвердить его показания замерами в проигрывателях при воспроизведении на весь экран. Где-то в форумах нашел такую расшифровку dfps = displayed frames per seconds.

Какая загрузка процессора при тестированиях?
Те результаты, которые опубликованы мной в данной ветке - получены при загрузке на 100%. Смотрю в том же менеджере задач. Я же привожу максимальную скорость кадров, ее можно достичь лишь при полной загрузке процессора.

263. Serpentus, 17.04.2008 12:02
Fen1264
У многих людей и на ПК видео идет гладко, плавно и без заморочек. Если у вас на компьютере при воспоизведении наблюдаются рывки, то это не значит, что на любом ПК так будет. Чаще всего подобные проблемы являются программными (драйвер видеокарты, его настройки, выбранные кодеки и сплиттеры, их настройки, режим вывода, "мусор" в системе и т.п.), но иногда и аппаратные. Мне к сожалению неизвестно каких-либо нормальных способов диагностики нахождения подобных проблем. Тут как повезет. У меня например когда-то на старом компе вдруг ни с того ни с сего стал глючить Trimmension DNM в WinDVD, вместо плавности движений - спошные рывки, а ведь там в WinDVD почти никаких настроек нет.

Ведь там не 24-х ядерный процессор!!!
Нет, там девятиядерный.

Может там железо изначально имеет полную поддержку всего?
Ну видеокарта там вполне обыкновенная, от NVIDIA.

Кто знает что внутри у Sony PS 3?
Вот тут довольно подробно (http://www.ixbt.com/consoles/info_ps3.shtml)
А тут еще подробней (http://www.ixbt.com/consoles/ps3_review.shtml)

264. MAG79, 17.04.2008 12:37
crystallize
1. На интервале кадров работать можно: команда Trim, например, Trim(0,86399). Другое дело, что выполнив обработку на отдельном участке видео, ты получишь увеличенную частоту кадров. Ты просто не сможешь слить его с оставшейся часью видео, т.к. оно будет иметь другую частоту кадров. Частота кадров должна быть единая для всего видео. Хотя бывает видео и с переменной частотой кадров, но это только в теории. На практике я не встречал.
2. Если я правильно понял вопрос, надо удалить дублирующиеся кадры. Это можно сделать командой TDecimate из плагина TIVTC. Описывал подробнее здесь (http://forum.ixbt.com/topic.cgi?id=62:12524:25#25) .

19w85
Каюсь, замерить скорость этих двух роликов вчера забыл. Уже вставил видеокарту на место. Замерю, как будет возможность... Это надо часа два свободного времени, чтобы старые дрова снести, карточку заменить, новые поставить, провести тесты, а потом обратная операция.

Serpentus
там девятиядерный
Вот это да! причем на 3,2 ГГц. Это ж можно для FullHD дополнительные кадры в реальном времени рассчитывать. Как бы туда WinXP вкорячить и AviSynth скрипты на ней завести?

265. crystallize, 17.04.2008 13:15
Ну завели же люди на 5-ти приставках (4 присоединены к пятой, она-к монитору) распределённый рейтрейсинг 3д-модели машинки. Я ролик видел.

266. Serpentus, 17.04.2008 13:17
MAG79
Архитектура SPS3 очень хорошо подходит для обработки видео в реальном времени. Вот только заниматься этим Sony не будет, т.к. от продаж дисков с фильмами они отчисления не получают, в отличие от игр. И уж тем более они не станут делать там поддержку .mkv и пр. контейнеров и форматов, в которых обычно встречаются rip'ы и remux'ы. Они же не враги себе

267. VictorLS, 17.04.2008 14:01
Serpentus
простите за любопытство.
Как Вы решили проблему рывков Trimmension DNM?
Уж не сменой ли компа?
Дело в том, что у человека Core2 Duo 6600, Х1600, так у него с ivivideo.ax 6.0.6.42 каждые три секунды конкретный лаг на пол-секунды при задействованном Trimmension DNM. ХРюша (СП2 ДХ последний) свежеинсталлированная, ничего не навешано, больше нигде тормозов не видел. Пробовал плеер на одно из ядер кидать (в Диспетчере задач нагрузка на второе падала до 0) - не помогло. WinDVD9 не пробовал.

268. Alexis V M, 17.04.2008 16:16
цитата:
MAG79:
ПО: DirectX 9.0c (март'08), Catalyst 7.9, K-Lite codec pack 3.8.5 full, CoreAVC 1.6.5.
[...]
Как видно, можно ограничиться декодером ffdshow и CoreAVC.
Насколько я понимаю, в K-Lite'е обычная FFDShow, без поддержки MMX и SSE? А если попробовать версию с SSE (например, отсюда: codecs.com/FFDShow_download.htm (http://codecs.com/FFDShow_download.htm) )?

269. SKR, 17.04.2008 16:23
MAG79
1. А как, собственно, узнать, какая должна быть разница? И почему она должна быть существенной для mpeg2?

Потому что 9800pro может большую часть декодирования mpeg2 брать на себя при помощи dxva, хотя вероятно и mx400 тоже это умеет.

Особенно интересно узнать что такое декодер "расчитан на декодирование в реальном времени"? Он что, кадры пропускает?

Возможно dxva включается только в режиме воспроизведения в рельном времени, хотя не факт.
Касательно CoreAVC - это чисто программный декодер, тут разница может возникать только при выводе видео, но она слишком большая получилась. Там у вас еще разные рендереры использовались VMR7 и VMR9. Не знаю может когда с такой большой частотой выводится видео, начинает сказываться производительность видеокарта или пропускная способность ситемы памяти видеокарты. Могу вам предложить провести эксперементы по чистому декодированию без вывода, с помощью ds фильтра Elecard Chegepuga. В GraphEdit строится граф и на выходе декодера подключается этот фильтр. Можно будет проанализировать производительность отдельно декодера и связку декодер рендерер.


П.С. Я кажется, понял почему такая большая разница получилась в случае mpeg2 и маленькая в случае h264. Так как mpeg2 проще в декодировании то декодер дает больше fps которые слабая видеокарта просто не может вывести. В случае h264 fps поле декодера меньше и слабая видеокарта справляется.

270. Serpentus, 17.04.2008 16:57
VictorLS
Проблема тогда решилась именно сменой компа. Хотя комп, конечно же, не из-за этого новый покупался, просто по времени совпало. А старый комп я доукомплектовал и отдал отцу, у него теперь снова все нормально работает, включая Trimmension. Т.е. проблема была чисто программная, но где именно - ХЗ. На новом компе наблюдается другой прикол: на некоторых HD-rip'ах (к счастью, очень немногочисленных) приблизительно раз в 10 секунд происходит "скачек", т.е. изображение сначала замирает где-то на 1/3 сек., а в последующие 1/3 сек. оно "наверстывает упущенное", т.е. проигрывается с удвоенной скоростью. Причем независимо от декодеров и сплиттеров. Возможно это и можно как-то поправить, но мне и-за пары-тройки рипов лень с настройками возиться.

SKR
mx400 тоже это умеет
Не умеет. А 9800 это умеет по-моему только из-под ATI Video Player, который вместе с VIVO-софтом идет. Кстати, именно такая карта была на моем старом компе.

тут разница может возникать только при выводе видео
Не только. Возможно, при смене карт и последующей инсталляции драйверов программа-установщик меняет какие-то настройки или устанавливает какие-то фильтры. Например, при полной установке Catalyst для карт с видеовходом вместе с AVIVO устанавливается ATI MPEG decoder. Разные режимы вывода вряд ли могут так влиять на скорость. Я понимаю еще если бы более медленный результат был например 60 fps, это бы означало что используется ограничение на скорость вывода, связанное с частотой обновления экрана.

MAG79
Radeon 9800 Pro (Catalyst 8-3 n2o, VMR7): 99,1 dfps
Может тут просто некорректно посчитанное значение? Не может быть чтобы H.264 декодировался быстрее MPEG2.

271. MAG79, 17.04.2008 19:19
Alexis V M
Спасибо за ссылку. Посмотрю, сравню... Вообще в ffdShow какие-то галки видел, касающиеся MMX, 3DNow! и SSE всяких.

SKR
разные рендереры использовались VMR7 и VMR9
Они давали разницу в пределах 7-10%, причем на Radeon'е частота кадров в VMR7 ограничивалась частотой монитора - 75 Гц. А после установки последнего Catalyst'a перестал работать VMR9, зато VMR7 перестал "бояться" частот выше 75. У меня все замеры в табличке Excel записаны. Если интересно, могу скинуть.

Могу вам предложить провести эксперементы по чистому декодированию без вывода
Ага. Спасибо за совет. Поищу этот самый "чигапуга".

Догадка насчет медленной памяти слабой видеокарты и ее невывозе высокой частоты кадров очень похожа на действительность.

Serpentus
Разные режимы вывода вряд ли могут так влиять на скорость.
VMR7 и VMR9 по моим наблюдениям отличаются процентов на 7-10. VMR7 оказывается как правило быстрее, если он не ограничен частотой монитора.

Не может быть чтобы H.264 декодировался быстрее MPEG2.
Никто и не говорит, что он декодируется быстрее.
H.264 - 99,1 dfps (CoreAVC);
MPEG2 - 172,9 dfps (InterVideo NonCSS); 146,1 dfps (Cyberlink SP); 141,8 dfps (InterVideo).

272. Fen1264, 17.04.2008 20:06
Serpentus
Для чего тогда весь этот форум, если у многих все работает?
Я тоже думал, что у меня все идет гладко... пока не присмотрелся.
Ни о какой гладкости, по большому счету, и речи быть не может.
Возьми любой лицензионный DVD диск, воткни его в привод и посмотри...
Если диск PAL, а у тебя монитор на 60 герцах стоит, то рывки будут
почти всегда. И никакой Trimmension DNM тут не поможет.

Кстати у меня на двух современных компах DNM не работает.
Даже их демо ролик идет без тормозов только несколько секунд.
А потом начинает дергаться еще сильнее.
Проверя в магазине на четырехядерном "Пне", - тоже самое!!!

WinDVD9 ведет себя тоже не лучшим образом.
Там это называется All2HD. Тоже не работает!!!

Если монитор переключить на 75 Гц, PAL будет идти на много лучше.
Но все равно время от времени будет дергаться.

Между прочим кто-то на форуме сказал, что пока мордой не ткнешь,
никто этих рывков не замечает.

Я проверял. Это действительно так. Всех почемуто устраивает, что комп
показывает кое как.

Вчера еще один доказывал с пеной у рта, что у него все чисто и гладко.
А когда я ему сказал (лучше бы не говорил) на что обратить внимание,
сразу пошел на попятную. Теперь видео на компе смотреть не может.

Практически безукоризненно идет NTSC диск при 60 Гц на мониторе.
Но все равно не так идеально как на PS3.

Чтобы у Вас отпали все сомнения, проиграйте Blu-ray диск на компе.

Естественно придется установить Blu-ray привод.

Так вот. Фильм вообще смотреть невозможно.
Такое впечатление, что пропускается больне половины кадров.
Хотя процессор загружен процентов на 40 если фильм идет с диска.
А если этот же фильм сграбить на винт, то загрузка не более 15%.
Но все равно все дергается в страшных конвульсиях.

На четырех ядерном пеньтюхе тоже проверял. Ведет себя точно так же как и
двухядерный атлон. Видяхи тоже суперсовременные, - 8600GTS 256, 9600 GTS 512,
HD2600PRO 512

Спасибо за информацию по PS3.
Теперь все понятно. Если шесть ядер плюс софт заточены для класного показа видео,
немудрено, что все будет ОК! Слышал, что там Линукс.

Думаю, что в дальнейшем, с появлением восьмиядерных процессоров, будет появляться и софт
для нормального просмотра.

273. ALEX778, 17.04.2008 22:08
Да ты не одинок в этой проблемме. Искал я причину проблемы, пробовал делать разрешение экрана кратное видео особо результат не дало. По поводу мощности процессоров ты наверно прав, когда появятся достойные могет и софт будет под стать ему.

274. Serpentus, 18.04.2008 11:13
Fen1264
Еще раз повторяю: DVD-V и большинство рипов у меня идут без рывков. Где смотреть я и сам знаю: при панорамных видах с плавным облетом камеры какой-то территории. Рывков нет как на ЭЛТ-мониторе (D-SUB, 100Гц), так и на проекторе (HDMI, 60Гц). Едва заметные подрагивания у меня были на старом компе, когда я выводил видео на ТВ чере TV-Out. Кстати, а если окно по рабочему столу мышкой тащить, у вас тоже рывки наблюдаются?

Чтобы у Вас отпали все сомнения, проиграйте Blu-ray диск на компе.
С удовольствием приму от вас BD-привод в качестве подарка Покупать же его пока что никакого смысла не вижу. Вот как только пишущий привод станет стоить не более $200, а болванки не более $10, так сразу и куплю.

Теперь все понятно. Если шесть ядер плюс софт заточены для класного показа видео, немудрено, что все будет ОК!
Вычислительная мощность тут ни при чем. Вы же сами говорили, что на обычном DVD-плеере все ОК, а там DSP на порядки медленнее, чем современный процессор.

Добавление от 18.04.2008 11:18:

MAG79
Никто и не говорит, что он декодируется быстрее.
Может я что-то не так понял, я просто увидел вот это:

цитата:
VID-1E.mpg (1080p)
Radeon 9800 Pro (Catalyst 8-3 n2o): 81,6 dfps
...
H.264. Файл: VID-1D.mpg, пережатый в x264. Декодер: CoreAVC Video Decoder.
Radeon 9800 Pro (Catalyst 8-3 n2o, VMR7): 99,1 dfps
и мне это показалось очень станным.

275. MAG79, 18.04.2008 11:24
Serpentus
А то что файлы разные указаны - не показалось странным?
VID-1E.mpg - 1080p (1920x1088)
VID-1D.mpg - 720p (1280x720)

276. VictorLS, 18.04.2008 11:40
Serpentus
c плавным, но достаточно быстрым облетом камеры

277. MAG79, 18.04.2008 20:11
Alexis V M
в K-Lite'е обычная FFDShow, без поддержки MMX и SSE? А если попробовать версию с SSE
Решил сперва почитать про разницу в быстродействии разных вариантов (сборок) ffdShow. Вычитал, что в них библиотека декодирования libavcodec компиллируется одинаково. Поэтому скорость чистого дикодирования у всех сборок ffdShow одинаковая. Подробнее можно почитать в англоязычном FAQ (http://ffdshow-tryout.sourceforge.net/html/en/faq.htm) .
Кстати, ребята для оценки частоты кадров тоже dfps'ами из timeCodec'а пользуются.

SKR
по поводу "чистого декодирования без вывода" (Elecard Chegepuga)...
А Null Renderer и Frame Eater чем не подходят? Почему именно Elecard?
Это надо исключительно в целях разобраться в разнице полученных результатов. Т.к. формально вопрос для себя я уже решил следующим образом:

Для подготовки видео с целью последующего просмотра с эффектом плавности движений рекомендуется кодировать в форматы VMW V7 или H.263. Эти форматы обеспечивают воспроизведение с частотой вплоть до 100 кадров/сек на компьютере средней мощности (подробнее на графиках (http://forum.ixbt.com/topic.cgi?id=62:12524:238#238) ).
На других компьютерах результаты могут отличаться (даже в разы), но общая картина соотношения скоростей декодирования сохраняется.

278. SKR, 19.04.2008 01:23
MAG79
А Null Renderer и Frame Eater чем не подходят? Почему именно Elecard?
Подходят, правда я только узнал про эту возможность, так раньше вы об этом не упоминали.

Это надо исключительно в целях разобраться в разнице полученных результатов. Т.к. формально вопрос для себя я уже решил следующим образом:
Интересно как в таких условиях поведет себя интегрированная графика, может оказаться что тип кодека для нее вообще не будет иметь значения, так как все упрется в возможности видеокарты по выводу.

Провел некоторые эксперементы с программой TimeCodec:
файл в контейнере mp4, видео h264 - 720x576i, декодер CoreAVC, деинтерлэйс отключен.Видеокарта интегрированная x1250 память ddr2-667.
null - 241dfps, 48s (97% загрузка CPU)
overlay - 161.2dfps, 73s (81% загрузка CPU)
VMR7 - 140.1dfps,84s (68% загрузка CPU)
VMR9 - 117.0dfps, 100s (56% загрузка CPU)

279. 19w85, 19.04.2008 12:54
цитата:
MAG79:
Замерил на Duron Applebred @2000 ГГц получилось 86 fps на VID-4I.mp4 (720p) и 41 fps на VID-4J.mp4 (1080p). Использовал отрисовку в VMR7. Убил все лишние процессы в диспетчере задач. Драйвера видеокарты на этот раз: Catalyst 8-3 n2o
При своем старом тестировании (http://forum.ixbt.com/topic.cgi?id=62:12524:245#245) я использовал дрова для видео "Radeon Omega Drivers 3.8.421" (на основе Catalyst 7.10), но сегодня поставил Catalyst 8.4 и решил потестить ролики еще раз и был просто в шоке...

VID-4I.mp4:
VMR7 - 98,2 dfps (VMR7, CoreAVC 1.5.0)

VMR7 - VID-4J.mp4:
VMR7 - 53,4 dfps (VMR7, CoreAVC 1.5.0)

На этих роликах прирост производительности по сравнению со старыми результатами в 3 раза!

Сравнивая fps в роликах фильмов прирост по большей части составил чуть больше, чем в 2 раза.
Теперь 1080p рипы не тормозят, H264 1920x1080 с битрейтом несколько десятков мегабит, конечно, тормозит (порядка 20 fps)...

И самое для меня важное, это WinDVD9 при включении All2HD (причем одновременно "To HD" и "DNM") больше не тормозит! (раньше при включении, любой одной из этих двух функций начинались сильные тормоза, т.е. пользоваться 9-ой было невозможно). Тогда не очень понятно, что в минимальных системных требованиях WinDVD9 для использования DNM прописан 2-х ядерный комп...оказывается достаточно одноядерного, чтобы воспользоваться всеми благами этой софтины...

Теперь вопрос апгрейда стоит уже не так остро...
P.S. Мой комп все-таки переплюнул твой Duron при том, что моя видеокарта хуже, значит видеокарта не так важна как мы думали...

280. MAG79, 19.04.2008 19:36
19w85
Поздравляю!
Справедливость восстановлена. Вот что значит свежие драйвера видеокарты

SKR
Скорость декодирования зависит от самого материала, поэтому если есть желание сравнить с результатами моих замеров и 19w85, то надо замерять скорость именно на этих материалах. Названия файлов тут указываются. Проверяем скорость на тестовых роликах из DivXTestCD 2.0. Так повелось, что сравниваем скорость проигрывания видео с высокими разрешениями 720p и 1080p, т.к. для стандартного разрешения как правило мощности хватает даже без заморочек с самым быстрым декодером, драйверами и железом. И только на высоких разрешениях можно визуально ощутить разницу в декордерах и драйверах. Испытать радость от получившейся правильной настройки системы на максимальную скорость. 19w85 подтвердит

281. 19w85, 19.04.2008 19:48
Мучаясь вопросом этого странного повышения производительности (обычно от обновления дров прирост производительности в лучшем случае составляет несколько десятков процентов, а не 200%-300%) я закачал обычный Catalyst 7.10 и установил его на второй XP (опять таки вместо этого наипоганейшего Omega Drivers) и получил тот же самый высокий fps, что и на Catalyst 8.4
Потом поставил Radeon Omega Drivers 4.8.442 (Catalyst 7.12) и производительность опять упала к старому уровню. Оказалось все дело было в поганом драйвере (я Омегой пользуюсь года два...два года мучений... ). Так что оказалось дело не в свежести дров...

А как красиво было написано:
цитата:
Radeon Omega Drivers - альтернативные драйвера для видеокарт, построенных на графических чипах серии Radeon от компании ATI.
Драйверы Radeon Omega по сравнению с оригинальными драйверами для видеокарт ATI RADEON имеют больше настроек и возможностей, поддерживают больше разрешений, более оптимизированы и дают больший выигрыш в играх (оригинальные драйверы больше ориентируются на стандартные настройки и тесты).

Все драйверы Radeon Omega протестированы профессионалами и обеспечивают надежность и максимальную совместимость со всеми видеокартами ATI RADEON

282. SKR, 19.04.2008 22:48
MAG79
Я привел результаты для анализа влияния видеокарты при выводе видео. Скорость декодирования в этом варианте меня не интересовала.

Как скачаю DivXTestCD 2.0 приведу результаты с этими файлами, для общей картины.

283. MAG79, 21.04.2008 10:09
Сегодня вышла статья Замедление видео (http://www.ixbt.com/divideo/digital-video-guide/5-2-2-time.shtml) . Рекомендую прочитать всем интересующимся.
Задача замедления видео очень близка к обсуждаемой задаче повышения плавности движений. В обоих случаях качество результата зависит от качества расчета промежуточных кадров. Разница заключается лишь в скорости проигрывания обработанного видео.

В статье рассмотрены упоминавшиеся здесь DynaPel MotionPerfect и Dynapel SlowMotion, RealViz Retimer, Twixtor и MVTools. А также программы профессионального редактирования видео: Adobe Premiere Pro, Adobe After Effects, Sony Vegas, Canopus Edius, Pinnacle Studio и Ulead VideoStudio.

Мой вывод после прочтения статьи и просмотра видеороликов к ней: Все-таки Twixtor и MVTools - это два лучших программных решения задачи качественного расчета промежуточных кадров. Другими словами, применение MVTools для плавного проигрывания видео позволяет получать качество рассчитываемых кадров сравнимое с качеством профессиональных решений, таких как Twixtor.

284. Alexis V M, 23.04.2008 12:54
цитата:
MAG79:
Решил сперва почитать про разницу в быстродействии разных вариантов (сборок) ffdShow. Вычитал, что в них библиотека декодирования libavcodec компиллируется одинаково. Поэтому скорость чистого дикодирования у всех сборок ffdShow одинаковая. Подробнее можно почитать в англоязычном FAQ (http://ffdshow-tryout.sourceforge.net/html/en/faq.htm) .
Из этого FAQ следует, что почти одинаковая, но если пользоваться фильтром xsharpen -- то сборка ICL9 выигрывает. Её, что ли, поставить?..

285. VictorLS, 23.04.2008 15:18
Alexis V M ICL9 это которая clsid?

286. MAG79, 25.04.2008 20:34
Сегодня посмотрел первую серию "Планета Земля (BBC)" c 5.1-канальным звуком. Это HDTV-рип, видео: 1280х720, MPEG4 AVC (H.264); аудио: AC-3, 6 каналов.

640x360, 35,3Kb

Необходимо сделать отступление. Неделю назад я стал обладателем комплекта компьютерных колонок 5.1 Microlab AH-500D (он имеет необходимые декодеры на борту, понимает оптику и коаксиал, а также, конечно, аналог). Три дня назад поменял свой Core 2 Duo на четырехядерный процессор Core 2 Quad - Q6600. В результате 3-ех дневных тестирований пока остановился на обеспечивающей стабильность частоте 3,15 ГГц. Разумеется, мне захотелось посмотреть и послушать что-нибудь на обновленной системе. Вот тут мне под руку и попался этот научно-популярный фильм. Я решил во что бы то ни стало заставить проигрываться исходный файл с повышением плавности движений поднятием частоты кадров до частоты монитора (75 Гц), т.е. с расчетом дополнительных кадров на лету, и с выводом 6-ти канального звука без вмешательств в исходный файл, а значит без перекодировки и демукса. Короче, боевой режим: "принесли фильм - включил и смотришь".

Итак, все вроде было на мази:
Понятно было, что четырехядерник должен справиться с таким видеопотоком, т.к. обладает производительностью, превышающей 95,9 МПикс/сек, полученных на подобном камне при 3 ГГц (http://forum.ixbt.com/topic.cgi?id=62:12524:150#150) . Мне в данном случае требовалась производительность равная 1280х720@75 = 69,1 МПикс/сек. Даже запас остается.
Дальше, предварительные исследования скорости декодирования (http://forum.ixbt.com/topic.cgi?id=62:12524:238#238) разными декодерами на одноядерном компьютере средней мощности показали превосходство декодера CoreAVC при проигрывании формата H.264. Конечно, было бы нелишним провести тесты и на многоядерном компьютере, но я решил на этот раз ограничиться результатами того теста. Поэтому в системе декодеру CoreAVC было установлено максимальное значение Merit, чтобы при открытии видео, зажатого H.264 использовался именно этот декодер.
Со звуком оказалось сложнее: созданный AVS-скрипт при открытии звука упорно распаковывал только две дорожки. Эту проблему я решил, установив в декодере AC3Filter формат выхода AS IS (no change) и указав галку Use SPDIF, таким образом, направив звук без распаковки прямо на аппаратный декодер колонок. Таким образом, я убил сразу двух зайцев: снизил нагрузку на процессор и услышал наконец голос Дроздова, который упорно молчал при других настройках AC3Filter'а.

Два дня бился с непонятной проблемой остановки видео при проигрывании скрипта в CrystalPlayer'e. Там установленный размер буфера кадров имел размер 97 кадров, а значит, обеспечивал запас в 1,3 сек. И как ни странно случались перебои в расчете кадров, превышающие этот предел. Видео вставало колом на 2-3 секунды, затем шло дальше. Принимая во внимание новый процессор и весьма горячие режимы работы узлов компьютера, я принял меры по повышению охлаждения обоих мостов и памяти. Как потом выяснилось, причина была не в перегреве и вероятном Trottling'е процессора либо чипсета, а в размере оперативной памяти. Тем не менее, достигнутый более холодный режим работы в любом случае только на пользу компьютеру. А с памятью случилось следующее:
Выбранный мною размер буфера кадров, установленный в 50%, не был никак согласован с размером оперативной памяти и выходил за ее рамки, что вызывало обращение к файлу подкачки, который работает в сотни раз медленнее. Остановки проигрывания прекратились после "прибивания лишних" процессов, отнимающих память, и уменьшения размера буфера кадров.

Испробовав разные вариации режимов, разные проигрыватели (с варьированием буфера кадров) и разные способы проигрывания звука, пришел к следующей связке.
1. Создаю AVS-скрипт, рядом c видеофайлом, в котором указываю вариацию скрипта "MVTools_fast" для 4-ех ядров с удалением звука:
код:
SetMTMode(2,4)
DirectShowSource("Планета Земля (BBC) (1 из 11).mkv",fps=25)
ConvertToYV12()
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=3*FramerateNumerator(last), \
den=FramerateDenominator(last), mask=0, idx=1)
killAudio

2. Открываю Media Player Classic (MPC) и в нем, через далог Open File указываю AVS-скрипт в качестве видео (Open), а исходный файл в качестве аудио (Dub). При этом открывается два окна видео, в одном из которых идет исходное видео, во втором полученное плавное видео (очень удобно для сравнения, но съедает дополнительную мощность). Поэтому декодирование H.264 в MPC надо временно отключить. Для этого в окне View - Options - External Filters надо добавить все декодеры H.264 и указать для них Block. Последующие открытия этого видеофайла в качестве аудиодублирования вызывают ошибку отсутствия доступного видео декодера, но зато после нажатия на OK остается одно окно с плавным видео из AVS-скрипта и аудио-дорожкой из исходного файла.

Вот по сути и все. Два пункта и великолепная плавность. Достигнута максимальная производительность при минимальных затратах (написание скрипта и настройка плеера и фильтров). Использован бесплатный и широко распространенный плеер Media Player Classic.
Числовые итоги: процессор Core 2 Quad @3,15 ГГц играет видео 1280x720@25 с просчетом дополнительных кадров до частоты 75 кадров/сек, достигая производительности в 69,1 МПикс/сек. При этом загрузка процессора находилась в районе 45-50% по показаниям менеджера задач.
Использованные версии ПО: K-Lite codec pack 3.9.0 full, CoreAVC 1.6.5, AVISynth 2.5.7, MT 0.7, MVTools 1.9.2.

К сообщению приложены файлы: 1.jpg, 640x360, 35Кb

287. vlad9210, 25.04.2008 22:18
Как-то давно тут интересовались аппаратным DNM. Приобрел тв Филипс 37-9632. Аппаратный HDDHM. В отличии от обычного умеет обрабатывать 1080р. Сигнал подаю на HDMI с компа, плавность движения очень ощутимая особенно если частота сигнала кратна частоте кадра фильма. Есть баг - иногда вокруг быстро двигающихся объектов появляется контур. Смотреть тв в обычном режиме уже нельзя, только с DNM . Кого интересует эта фича без дорого апгрейда компа и желание приобрести тв - Филипс всамый раз ( правда как монитор его юзать не совсем хорошо )
Удачи!

288. elektron-mobile, 25.04.2008 23:00
MAG79
Здорово , но есть пару но .... битрейт ниже среднего у данного рипа , и CoreAvc не самый качественный декодер - на проекторе очень заметно разницу между CoreAVC (менее резкая картинка - как бы замыливание) и Ciberlink - я остановился на libavcodec встроенный в ffdshow( он ещё более чёткую картинку даёт) - так вот хватит ли производительности если битрейт будет не 6000 а 8000-9000 и декодер не CoreAvc - ели да - песня -хватит для 90 процентоа рипов 720 - и можно сказать вопрос решен ..... сейчас вообще то першел тихонько на Popcorn - устал настраивать - а DNM на HD нет - потому показалось удобнее ...

289. MAG79, 26.04.2008 09:20
vlad9210
Филипс 37-9632. Аппаратный HDDHM... умеет обрабатывать 1080р
Спасибо за информацию. Будем прицениваться. Для своего круга задач и аудитории - почему бы и нет? Тем более, 1080p на компьютере в реальном времени до приемлимых частот (75-100) пока не обработать.

elektron-mobile
на проекторе очень заметно разницу между CoreAVC... и Ciberlink
Спасибо. Присмотрюсь. Cyberlink я еще не пробовал. Только в планах.

хватит ли производительности если битрейт будет не 6000 а 8000-9000 и декодер не CoreAvc
Будем экспериментировать. Я изложил свой первый удачный опыт. Судя по загрузке процессора, запас мощности есть.

першел тихонько на Popcorn
Извини, не в курсе. Popcorn - это что?

Alexis V M
VictorLS
По поводу ffdShow - в стандартной сборке (той, что идет с K-lite) AVISynth-скрипты отрабатывают явно медленее, чем их прямое открытие в плеере. Загрузка ядер процессора при этом сильно неравномерная. В FAQ ffdShow говорится о том, что у фильтров разных сборок разная производительность. Надо будет попробовать другие сборки, вставлять AVISynth-скрипт в них. Если получится добиться хорошей производительности с корректной равномерной загрузкой всех ядер, то тогда не надо будет создавать дополнительных файлов. Т.е. пункт 1. из последнего алгоритма настройки плавного просмотра (http://forum.ixbt.com/topic.cgi?id=62:12524:286#286) можно будет исключить. Да и второй пункт заметно упроститься - не надо будет открывать отдельно скрипт и вытаскивать аудио из исходного файла.

290. ar1997, 26.04.2008 13:49
elektron-mobile
цитата:
на проекторе очень заметно разницу между CoreAVC (менее резкая картинка - как бы замыливание) и Ciberlink ...
А правильно ли я понимаю, что декодер Ciberlink используется тот, что ставиться автоматически в систему при установке CyberLink PowerDVD, или же надо какой-то отдельный декодер искать (если так, подскажи, что искать...)?

291. elektron-mobile, 26.04.2008 14:40
MAG79
Popcorn - сетевой медиаплеер - забавная вещица пр и своей цене - подробне здесь FAQ - HDTV медиаплеер - Popcorn Hour NMT A-100 (http://forum.ixbt.com/topic.cgi?id=62:12541) на свои деньги супер - на Линуксе - понимает все форматы популярные
ar1997
Да именно тот что устанавливаеться в систему с PowerDVD - но libavcodec встроенный в ffdshow получше будет

292. MAG79, 28.04.2008 19:03
Alexis V M
VictorLS
Попробовал три разные сборки ffdShow: обычная = xxl, mmx = clsid и sse. Нормально заставить работать скрипт из вкладки AVISynth в этот раз не получилось. Работа скрипта медленная, загрузка ядер неравномерная. Видимо, надо копать дальше.
Что за сборка ICL9 и где можно достать?

elektron-mobile
CoreAvc не самый качественный декодер
Ты прав. Пока баловался разными сборками ffdShow, включил декодирование H.264 через него. Действительно, CoreAVC показывает не так: видно резкие границы цветов на плавных переходах. Разница с ffdShow как 16bit и 32bit, как будто CoreAVC использует недостаточную глубину цвета. Оставил ffdShow в качестве декодера.

хватит ли производительности если битрейт будет не 6000 а 8000-9000 и декодер не CoreAvc - ели да - песня -хватит для 90 процентоа рипов 720 - и можно сказать вопрос решен
Сегодня смотрел 3-ю серию "Планета Земля". Min:2384 Max:12181 Average:6213. Текущий битрейт на многих сценах держится в районе 9000-10000. Воспроизведение при этом плавное. Загрузка процессора: 50-60 %. Можно сказать "песня"
В добавок к этому установил последние драйвера аудио. Центральный канал появился и без галки Use SPDIF. Теперь в аудиодублировании и отключении декодеров H.264, как описывал выше (http://forum.ixbt.com/topic.cgi?id=62:12524:286#286) , нет необходимости. Достаточно просто открыть в проигрывателе AVS-скрипт (с сохранением аудио). Декодирование AC-3 съедает 1-4% процессорного времени, если верить показаниям AC3Filter. Вообще мечта.

293. elektron-mobile, 28.04.2008 19:18
MAG79
а с каким декодером то смотрели CoreAvc или ffdShow? если ffdShow - завтра четырёхядрёник возьму

294. 19w85, 28.04.2008 20:49
цитата:
MAG79:
elektron-mobile
CoreAvc не самый качественный декодер
Ты прав. Пока баловался разными сборками ffdShow, включил декодирование H.264 через него. Действительно, CoreAVC показывает не так: видно резкие границы цветов на плавных переходах. Разница с ffdShow как 16bit и 32bit, как будто CoreAVC использует недостаточную глубину цвета. Оставил ffdShow в качестве декодера.
Я тоже еще вчера включил декодирование H.264 в ffdShow и тоже заметил, что цвета стали намного лучше...тоже оставил его...
Решил сравнить скорость ffdShow и CoreAVC и был приятно удивлен - разница на фильмах в среднем всего-то поряда 5%, т.е. "самый быстрый декодер CoreAVC" оказался не намного-то и быстрее...и при этом уступает в качестве...

На мульте (VID-4J.mp4) разница уже 25%, но на нем слишком завышенный fps по сравнению с фильмами и судить о производительности по нему нельзя...

MAG79
Возвращаясь к вопросу о "старых" одноядерных компах...и зависимости видеокарты и fps....сломалась моя видеокарта Radeon 9550 и взял вместо нее Radeon X1550...поставил новую XP и померил какой стал теперь fps на роликах...в результате разницы АБСОЛЮТНО никакой, количесто кадров вообще не увеличилось по сравнению со старой видяшкой...

295. VictorLS, 28.04.2008 23:10
19w85, прикол CoreAVC Pro в том, что он умеет распаралеливать потоки на многоядерных процах.
А на какой материнке установлен ваш 3200+. Как разгоняли? Если смотрите DVD диски с DNM 6.0.6.42,
то хватает ли проца на 720х576р50 фильмы (не дергаются ли они)?
MAG79, есть ли разница PAL(25Гц) или NTSC(30Гц) для TrimensionDNM при частоте монитора 60Гц?
Удачи в экспериментах и с обновкой. Кстати, какая операционка?

296. 19w85, 29.04.2008 00:58
цитата:
VictorLS:
19w85, прикол CoreAVC Pro в том, что он умеет распаралеливать потоки на многоядерных процах.
Декодер в ffdshow разве еще не умеет?

цитата:
VictorLS:
А на какой материнке установлен ваш 3200+. Как разгоняли?
Дополнил инфо. Разгонял...шина с 200 до 237 и +0.5V на проц (без этого комп очень часто вис, а так на этой частоте все абсолютно стабильно)


цитата:
Если смотрите DVD диски с DNM 6.0.6.42,
то хватает ли проца на 720х576р50 фильмы (не дергаются ли они)?
После того как решил проблему с производительность своего компа (описывал выше), все-все DVD перестали тормозить и WinDVD7 (очень низкая загрузка CPU) и в WinDVD9 (DNM+To HD) (на самом пределе, загрузка 90-95%, может какой-нибудь DVD попадется, который будет тормозить) и в MPC+6.0.6.42 (запас по процу достаточно большой), когда звук не многоканальный (т.е. не нужен SPDIF) использую Crystal+6.0.6.42 (здесь включением доп. фишек добиваю загрузку проца до 80-90%, т.е. вкл. суперсемплинга, резкости, повышения цветности и опять резкости, после включения всего этого картинка мне нравится намного больше, чем можно добиться в MPC и его фильтрами)
Был бы у кристала SPDIF я бы вообще не пользовался никакими версиями WinDVD и MPC...

Это все на частоте монитора 100Гц, т.е. происходит только удвоение кадров...если поставить 75Гц, то загрузка проца, соотвественно, выше из утроения кадров...
C удвоением местами немного дергается, с утроением уже лучше...ну а увеличить частоту в 4 раза кодек WinDVD уже не может...а на 4-х ядерном можно от него вообще отказаться и использовать mvtools...

VictorLS
У меня раньше было тоже самое (Athlon 1700+(1466), VIA KT266)...пока MB не накрылась (производитель был "хорош" - Jetway)...1-ая поломка, кстати, была...теперь вот видеокарта накрылась, жалко систему охлаждения, которая на ней стояла - Zalman ZM80D-HP и стоила она тогда 50% от стоимости видеокарты...

297. VictorLS, 29.04.2008 01:37
Спасибо, версия CrystalPlayer 1.98Pro?
K8T800Pro VIA-шный чипсет?
И еще сравните нагрев "старого" и нового процессора?
1700+ вроде калориферами раньше называли?

298. 19w85, 29.04.2008 01:40
Да, да

Добавление от 29.04.2008 01:48:

Мой 1700+ очень сильно грелся (потом вроде вышла не такая горячая ревизия этого проца) - 1-ый кулер был Titan (порядка 3000 оборотов) и бешеный рев и в среднем 45-47 градусов (до этого был первый пень и что такое шум я вообще не знал и об этом даже не задумывался), потом сменил на Zalman (медно-аллюминевый) 1100-1200 оборотов - 60-65 градусов
Потом на текущей K8T800 поставил Sempron 2500+ (1400Mhz) с вентилем из инфо и поставил на 700 оборотов - 40-45 градусов
Текущий конфиг - 40-50 градусов - вентиль все-также на 700 оборотов (меньше просто не сделать, он просто перестает вращаться)

299. MAG79, 29.04.2008 09:28
elektron-mobile
с каким декодером то смотрели CoreAvc или ffdShow?
ffdShow

19w85
сломалась моя видеокарта Radeon 9550 и взял вместо нее Radeon X1550...поставил новую XP и померил какой стал теперь fps на роликах...в результате разницы АБСОЛЮТНО никакой
Спасибо за информацию. Возможно Radeon'ы серий 9xxx и X1xxx умеют то, чего не умеет старенькая nVidia GeForce MX. Или просто скорость отрисовки отличается в разы. Тогда это многое объясняет.

Декодер в ffdshow разве еще не умеет?
Поддержка многопоточности есть только при декодировании MPEG1/2, насколько я смог понять из ffdShow FAQ (http://ffdshow-tryout.sourceforge.net/html/en/faq.htm) . Хотя сейчас на рабочем компе включил H.264 - оба ядра нагружаются одинаково.

VictorLS
есть ли разница PAL(25Гц) или NTSC(30Гц) для TrimensionDNM при частоте монитора 60Гц?
C TrimensionDNM cмотрю в основном PAL. Я так понимаю, что по-хорошему надо один и тот же фрагмент в PAL и в NTSC сравнить, чтобы уловить отличия. А если тебя цифры интересуют для PAL и NTSC, то я приводил их в этом сообщении (http://forum.ixbt.com/topic.cgi?id=62:12524:186#186) .

какая операционка?
Windows XP SP2. Скоро будет SP3, как только появится в свободном доступе.

Удачи в экспериментах и с обновкой.
Спасибо

300. Alexis V M, 29.04.2008 11:34
цитата:
VictorLS:
Alexis V M ICL9 это которая clsid?
Сам бы хотел знать. На sourceforge.net/project/showfiles.php?group_id=173941 (http://sourceforge.net/project/showfiles.php?group_id=173941) разных сборок целая куча...

301. MAG79, 29.04.2008 11:57
Alexis V M
Я и оттуда в частности загружал. По ссылке я качал две последних сборки: clsid от 17.04.08 и xxl от 21.04.08... Опа! Надо быть внимательнее. Только сейчас заметил строчку icl10. Нажал плюс и открылись доступные сборки icl10, последняя от 16.04.08. Получается я ее тоже качал и пробовал. Это сборка называется sse на странице free-codecs (http://www.free-codecs.com/FFDShow_download.htm) . А первые две там именуются mmx и без индекса (обычная).
Получается, апрельских сборок ffdShow три. И все три я пробовал.

302. SKR, 29.04.2008 17:58
elektron-mobile
Да именно тот что устанавливаеться в систему с PowerDVD - но libavcodec встроенный в ffdshow получше будет
CoreAvc не самый качественный декодер

MAG79
Действительно, CoreAVC показывает не так: видно резкие границы цветов на плавных переходах. Разница с ffdShow как 16bit и 32bit, как будто CoreAVC использует недостаточную глубину цвета.vv


Сегодня провел эксперимент по сравнению 3 декодеров h264 следующим методом: MPC HC вывод VMR9 (windowed) выбираю произвольную позицию в файле ползунком, смотрю ее точное значение меню Play -> Go To, записываю позицию. Выставляю испытуемый кодек View - Options- External Filters, закрываю плеер, открываю видеофайл через MPC HC, убеждаюсь что проигрывание идет через нужный декодер, перехожу на нужный кадр (позицию которого записал, у разных декодеров это место может не совпадть разница может быть до 5 кадров, так что нужно кнопкой frame step найти нужный кадр) дальше File - Save Image, сохраняю в bmp,
Испытывал декодеры ffdshow (библиотека libavcodec), CoreAVC 1.7, CyberLink H.264/AVC Decoder (PDVD 8) на 3-х файлах:

Corpse.Bride.rus1-005.mkv;
Video #0
Codec : AVC
Codec/Family : AVC
Codec/Info : Advanced Video Codec
Codec profile : High@L5.1
Codec settings, CABAC : Yes
Codec_Settings_RefFrames : 8
PlayTime : 57s 458ms
Bit rate : 7367 Kbps
Width : 1920 pixels
Height : 1040 pixels
Display Aspect ratio : 16/9
Frame rate : 24.000 fps
Chroma : 4:2:0
Interlacement : Progressive
Language : English

Teleport.treiler.2008.H.264.HDDVDRip.mov
Video #0
Codec : AVC
Codec/Family : AVC
Codec/Info : Advanced Video Codec
Codec profile : Main@L4.0
Codec settings, CABAC : No
Codec_Settings_RefFrames : 2
PlayTime : 2mn 28s
Bit rate mode : VBR
Bit rate : 9754 Kbps
Width : 1920 pixels
Height : 816 pixels
Display Aspect ratio : 2.35
Frame rate mode : VFR
Frame rate : 23.976 fps
Minimum frame rate : 23.952 fps
Maximum frame rate : 24.169 fps
Chroma : 4:2:0
Interlacement : Progressive
Bits/(Pixel*Frame) : 0.260
StreamSize/String : 173 MiB
Encoded date : UTC 2007-10-10 19:04:05
Tagged date : UTC 2007-10-10 21:26:02

HDTV-1080p-H264_007-Casino-Royale_AC3.ts
Video #0
ID : 4113 (0x1011)
MenuID/String : 1 (0x1)
Codec : AVC
Codec/Family : AVC
Codec/Info : Advanced Video Codec
Codec profile : High@L4.1
Codec settings, CABAC : Yes
Codec_Settings_RefFrames : 2
Width : 1920 pixels
Height : 1080 pixels
Display Aspect ratio : 16/9
Frame rate : 23.976 fps
Chroma : 4:2:0
Interlacement : Progressive
Language : English

У ffdshow и cyberlink настройки по умолчанию, у coreavc изменены натройки Input Levels, Output Levels в зависимости от файла (см. ниже) .
В результате ffdshow и CorAVC показали побитово (проверял в Total Commander) одинаковый результат на всех файлах, на файлах Corpse.Bride.rus1-005.mkv и HDTV-1080p-H264_007-Casino-Royale_AC3.ts CoreAVC и с галочкой Scip always deblocking дает побитово одинаковый результат и с самим собой без этой опции и с ffdshow. На файле Teleport.treiler.2008.H.264.HDDVDRip.mov включение Scip always deblocking дает значительное изменение картинки в худшую сторону. CyberLink H.264/AVC Decoder (PDVD 8) побитово не сходится с предыдущими декодерами, однако на глаз картинка едва заметно темнее, больше никаких отличий нет.

Особенность CoreAVC состоит в том что он позволяет менять входные и выходные уровни яркости (PC -> TV, TV -> PC). Если кто-то захочет повторить эксперимент, то нужно в CoreAVC выставить такие же уровни, как и у других декодеров, определяется на глаз.

Различие которые многие наблюдают скорее всего связаны с разными настройками уровней у разных декодеров.

303. ar1997, 29.04.2008 19:23
Да, да, да! Пока не подобрал правильные уровни у CoreAVC (PC -> TV, TV -> PC) получал очень плохие результаты, а именно: на белом снегу все детали рельефа потерялись! После того, как установил "правильные" значения все стало отлично! Так что я не согласен с тем, что ffdshow и Cyberlink лучше, чем CoreAVC... Может просто не правильные настройки стояли?

304. MAG79, 30.04.2008 11:03
SKR
Спасибо за сравнение CoreAVC с остальными декодерами. Проверил на рабочем компьютере: ты прав. Кадры, сохраненные в BMP из VitrualDub'а, при декодировании CoreAVC 1.6.5 и ffdShow 1937 не отличаются. При сравнении BMP-файлы оказались идентичны, байт-в-байт.

Получается, одно из двух: либо я ошибся и CoreAVC на самом деле не отличается по качеству декодирования от ffdShow, либо что-то с настройками на домашнем компьютере. Вечером сравню эти два декодера дома.

305. elektron-mobile, 30.04.2008 11:06
MAG79
я не буду настаивать - у меня чисто субьективное мнение по CoreAVC - lb t версия не последняя была - пару мес назад это было - на разница была явная - возможно Core AVC как то иначе обрабатывает именно смену кадров - а в статике картинка одинакова

306. MAG79, 30.04.2008 11:07
кстати, при открытии первой серии "Планета Земля" через DirectShowSource заметил, что CoreAVC съел первые два кадра по сравнению с ffdShow.

Добавление от 30.04.2008 19:22:

Проверил дома: декодеры ffdShwow 1945 и CoreAVC 1.6.5 дают идентичные кадры. Я был не прав. Спасибо SKR. Теперь я могу вновь вернуться к использованию более быстрого CoreAVC.

307. waldis, 11.05.2008 10:25
коллеги, совершенно случайно для себя открыл dxshow фильтр ReClock
картинка с ним стала заметно более плавной
попробуйте, он совсем небольшой

308. MAG79, 11.05.2008 17:48
waldis
Спасибо. В соседних ветках встречал упоминание, но еще не пробовал. Посмотрю, что за зверь.

309. SandroID, 14.05.2008 13:18
waldis
я так понял это фильтр из комплекта DirectX
как его попробовать? Извиняюсь за безграмотность...

310. MAG79, 14.05.2008 14:39
SandroID
Нашел в интернете две версии ReClock (http://reclock.free.fr) : 1.6 (декабрь, 2005) и 1.7b4 (январь, 2006). Из описания понял так, что этот DirectShow (не DireсtX !) фильтр, который при проигрывании видео вносит изменения в частоту кадров, устанавливая ее кратной вертикальной частоте развертки монитора, звук при этом тоже пропорционально растягивается/сжимается. Фильтр призван бороться с рывками при вопроизведении (jerkiness). В общем, в случаях не совпадения кратности этих двух чатот было бы полезно использовать этот фильтр совместно с рассматриваемыми здесь алгоритмами расчета промежуточных кадров.

Судя по тому, что уже более двух лет данный фильтр не развивается, меня гложат сомнения насчет его необходимости для современных систем. Может это уже и не нужно? Хотя в ветке аппаратного воспроизведения HD я встречал упоминание этого фильтра.

Надо спросить спецов, кто уже использовал ReClock, (VictorLS и др.), что они думают по этому поводу.

Вчера немного погонял ReClock.
Надо сказать, что у этого фильтра отличная полная документация, редко такое можно встретить: 21 страница с иллюстрациями. Правда с последней версией (1.7b4) идет пустой файл документации, но никто не мешает скачать версию 1.6 и пользоваться документацией оттуда.

Проверил на своей системе, и убедился, что фильтр работает. Проверял на фильме с частотой кадров 23,976. Монитор при этом имел кадровую развертку 75 Гц.

Случай первый: проигрывание видео без расчета промежуточных кадров. В данном случае чем выше частота монитора, тем меньше заметно подергивание. Простой пример: видео 23,976 fps проигрывается на экране 75 Гц. В таком случае пауза между кадрами должна быть везде одинаковой и составлять 1/23,976 = 41,7 мс, а вертикальная развертка монитора обновляет экран каждые 1/75 = 13,3 мс. Каждый новый кадр видео выводится при каждом третьем обновлении экрана, т.е. через 3*13,3 = 40 мс. Это на 1,7 мс раньше, чем необходимо для данного видео. Поэтому примерно через 8 кадров накопленная ошибка составит уже 13,3 мс и для сохранения исходной скорости видео задержка при выводе восьмого кадра будет уже не 40 мс, а 53,3 мс. Получается, мы будем наблюдать приостановки движения на каждом 8-м кадре. Неравномерность движений составит 13,3/40 = 33 %. Это потеря скорости на каждом 8-м кадре, а в целом для видео эти маленькие остановки будут составлять всего 13,3/(40*8) = 4%.

При включении ReClock и указания ему ускорять видео с 23,976 до 25 кадров в секунду данное видео начинает идти плавно, при этом общая длительность сокращается на эти 4%, а из звуковой дорожки выкидываются 4% пакетов. Это приводит к тому, что иногда явно слышно, как "съедаются" согласные буквы. Смотреть в таком режиме приятнее, но вот слушать уже не очень. Выбирая между "съевшимися" буквами и 4% паузами, я бы остановился на паузах. Т.е. в данном случае я бы не рекоментовал пользоваться ReClock.

Другой случай: проигрывание видео с расчетом промежуточных кадров. Я использовал 3-х кратное повышение частоты кадров. Здесь частота кадров и частота обновления экрана уже намного ближе, а подергивание заметно лучше. Приведу цифры. Задежка между кадрами: 1/71,928 = 13,9 мс, а задержка вертикальной развертки монитора все та же 1/75 = 13,3 мс. Каждый кадр выводится при очередном обновлении экрана, т.е. через 13,3 мс, что на 0,6 мс раньше необходимого срока. Ошибка в 13,3 мс накапливается примерно за 22 кадра и этот 22-ой кадр отображается уже с задержкой 26,6 мс. Неравномерность движений составляет 13,3/13,3 = 100 %, хотя в целом для видео это та же маленькая остановка, равная 4%. Но на фоне повышенной плавности такие остановки ставновятся хорошо заметными. Выглядит это как регулярные остановки движения примерно 3 раза в секунду. ReClock в данном случае я запустить не смог, да и нету у него в базе значения частоты кадров 71,928. Но я смог сделать другое: в скрипте повышения плавности видео (MVTools_fast) я жестко указал выходную частоту кадров 75 fps. В итоге я получил плавное видео без этих регулярных остановок-подергиваний с исходной нетронутой звуковой дорожкой и исходной продолжительностью. Т.е. в данном случае ReClock мне не потребовался.

Итак, в обоих случаях я обошелся без фильтра ReClock. Хотя не исключено, что могут быть случаи, когда ReClock все же пригодится.

311. SandroID, 15.05.2008 09:39
Спасибо Вам! Вы как всегда доходчиво все объяснили

и так для информации
http://www.cybersecurity.ru/hard/48061.html

312. MAG79, 15.05.2008 11:04
SandroID
Спасибо. Познавательно. Интересная новость про 240 Гц ЖК телевизоры. Мое личное мнение - 240 Гц это уже лишнее, хотя кто знает, возможно инженерам из Samsung виднее.

313. VictorLS, 15.05.2008 11:51
MAG79, спасибо. Скачал я ReClock уже давно, а вот попробовать все времени не хватало.

314. waldis, 15.05.2008 18:11
MAG79 отчёт по reclock по меньшей мере вызывает уважение
может быть когда я с ним смотрел больше внимания уделял картинке, но могу сказать что звук как минимум не обращал на себя внимания дискомфортом. но я не ставил в его настройках явно менять частоту кадров, оставил на "авто", и разрешил пересчет звука с помощью железа (уж не знаю что это на практике значит).

а вот нашёл сходу один рип, косяки построения которого сразу же и выплыли -- похрипывающий временами звук.
автор рипа сподобился звук для PAL версии запаковать в матрешку вместе с NTSC вариантом видео.
без reclock оно как-то менее уши резало.
но это пока единственное искажение звука с которым я встретился.

315. 19w85, 18.05.2008 15:31
цитата:
MAG79:
сломалась моя видеокарта Radeon 9550 и взял вместо нее Radeon X1550...поставил новую XP и померил какой стал теперь fps на роликах...в результате разницы АБСОЛЮТНО никакой
Возможно Radeon'ы серий 9xxx и X1xxx умеют то, чего не умеет старенькая nVidia GeForce MX. Или просто скорость отрисовки отличается в разы. Тогда это многое объясняет.
Оказалось дело даже не в драйверах, а всего в одной функции "AGP Fast Write"
При ее включении в биосе и в драйверах и увеличилась так значительно производительность...а в дровах Omega (которые я раньше использовал) при установке по умолчанию "AGP Fast Write" было "Off" (которое я не менял) а в Catalyst'е - выбирать не дают, но установливается всегда "AGP Fast Write" - "On"...В Bios этот режим по умолчанию тоже "Off"

Скорее всего GeForce просто не поддерживает режим "AGP Fast Write" вот и все...
Тут (http://www.overclockers.ru/lab/15949.shtml) чуть-чуть исследовали этот режим...

P.S. За обзор ReClock'а - спасибо, было интересно почитать

316. MAG79, 19.05.2008 05:28
waldis
Спасибо за проверку ReClock. У меня тоже (при преобразовании 23,976 -> 25 fps) слышны похрипывания звука (как в ручном, так и в Auto - режимах). При отключении ReClock хрипы пропадают.
А что имелось в виду под "звуком для PAL версии"?

19w85
Оказалось дело даже не в драйверах, а всего в одной функции "AGP Fast Write"
Спасибо. Очень полезное сообщение. Чувствую информации уже накопилось достаточно для многостороннего FAQ, включая как программные, так и технические вопросы благодаря многим посетителям данной ветки и особенно благодаря тебе.

Попробую систематизировать накопленный опыт - на неделе буду обновлять шапку темы.
Следите за первой страницей.

317. CBET, 20.05.2008 21:24
А настройки приведенные в первом сообщении темы правильные и c современными ссылками?? а то пробовал как там написано (mv tools), но видео жутко замедляется и дергается, в чем может быть причина - уменя с ком пом что-то или с системой (атлон, два ядра по 2300 мгц, винда икс пи, ну дрова мож зимние), подскажите что-нибудь в помощ

318. MAG79, 21.05.2008 06:26
CBET
На первой странице указаны ссылки на архивы и инсталляции по состоянию на начало года. На данный момент вышли новые версии K-Lite Codec Pack (3.9.0) и MVTools (1.9.3). Качать с официальных сайтов. Ссылки на сайты там тоже приведены. Рекомендую использовать последние версии.

Настройки правильные. Там два варианта: через ffdShow и через создание AVS-скрипта. Какой вариант использовался тобою? Я рекомендую второй вариант. Он менее тормозной.
С железом тоже понятно: Двухядерный атлон. А вот какое видео (разрешение, частота кадров) пытаешься заставить работать плавно и на каком мониторе (вертикальной частоте развертки) - не сообщил. В слепую советовать трудно.

319. CBET, 21.05.2008 07:59
MAG79
Видео 720Х304 25 кадров, в настройках ffdShow прописывал скрипт, по другому пока не понял как, вертикальная частота 60 герц, тормозит и в окне и на весь экран, телек самсунг 40 инчей, подключен по d-sub..

320. MAG79, 21.05.2008 09:24
CBET
ffdShow использует не все возможности многопоточного AviSynth, в итоге сильно падает производительность скрипта, записанного во вкладку AviSynth.

В твоем случае вполне должно хватить производительности твоей системы для повышения плавности движений в реальном времени вплоть до 60 fps. Делается это следующим образом: открываешь блокнот, копируешь туда следующий текст, указав имя видео-файла:
код:
SetMTMode(5,4)
fps=25
newFPS=60
DirectShowSource("[имя видео-файла]",fps=fps)
SetMTMode(2,2)
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=newFPS, den=1, mask=0, idx=1)

Cохраняешь с раширением AVS. Например Video.AVS. Далее открываешь в проигрывателе этот AVS-файл, как обычный видео-файл. Это и есть второй способ через создание AVS-файла.

321. MAG79, 21.05.2008 15:14
Новости с полей битв за скорость работы алгоритмов повышения плавности видео.
Мне удалось еще на 18% улучшить производительность скрипта MVTools_fast на двухядерной системе. Изложу по-порядку.

На прошлой неделе мне на работу принести 25-ти гиговый 1080p рип фильма "Трансформеры". На работе смотреть у меня не было времени, а дома такое разрешение смотреть не на чем. Поэтому я решил убить сразу двух зайцев - пережать до разрешения 720p: и размер уменьшиться, и домашний комп с повышением плавности такого видео справиться в реальном времени. Жал в x264. Оставил комп работать на ночь. Пережатие заняло 9 часов, размер видео с сохраненными 3-мя аудиодорожками составил 5,5 ГБ. Скорость сжатия получилась около 6 кадров/сек. Удивил тот факт, что это в 3 раза меньше, чем недавно полученные мною же результаты замеров (http://forum.ixbt.com/topic.cgi?id=62:12524:239#239) . Списываю это на разное видео, т.к. скорость сжатия сильно зависит от характера сжимаемой картинки. Если бы был дефицит времени, то можно было бы использовать более скоростные кодеры по результатам замеров: H.263+ и WMV V7 из ffdshow.

Итак, я получил видео-файл "Трансформеры" (x264, 1280х720, 23.976 fps).
640x360, 32,2Kb

Настраивая его работу на многопоточность (дома у меня четырехядерный процессор), я испробовал много разных вариантов комбинирования режимов многопоточности AviSynth (команда SetMTMode). В итоге остановился на одном из вариантов, который давал наилучшие результаты производительности, но все-равно не мог загрузить процессор на 100%. Фильм, конечно, я посмотрел. При просмотре на 75 fps загрузка моего процессора, как и раньше (http://forum.ixbt.com/topic.cgi?id=62:12524:286#286) , колеблется около 45%. Придя на работу, я запустил полученный скрипт на двухядерном процессоре, указав количество ядер = 2. К своему удивлению я обнаружил, что такая модификация скрипта с обработкой полных кадров работает быстрее, чем скрипт с разделением кадра пополам и обработкой этих половинок. Т.е. команда SetMTMode работает быстрее функции MT, хотя раньше все мои наблюдения показывали обратную картину. Провел небольшое тестирование скорости работы скрипта. Полученные результаты поместил в диаграмму.

514x409, 15,0Kb

Что показано на диаграмме.
Во-первых, я произвел замеры скорости работы скрипта на двух видео-файлах: на "Трансформерах" и на тестовом ролике VID_4I из DivXTestCD 2.0.
Во-вторых, были сделаны замеры двух вариантов скрипта: с применением функции MT и с использованием команды SetMTMode.

Сделано это было с целью возможности сравнения с предыдущими результатами (http://forum.ixbt.com/topic.cgi?id=62:12524:82#82) . Использовал троектратное увеличение количества кадров (multi=3). Предыдущие замеры показали производительность 66,4 и 44,3 МПикс/сек для MT и SetMTMode соответственно. Текущие результаты оказались следующими:

Исходный ролик: VID_4I.mp4, 1280x720@24
Core2Duo 3,32ГГц (двухядерный)
ФУНКЦИЯ MT:
1280x720@72 -> 72 - 66,4 МПикс/сек
КОМАНДА SetMTMode:
1280x720@72 -> 85 - 78,3 МПикс/сек

@ -- увеличение частоты кадров путем расчета промежуточных кадров
-> -- увеличение частоты кадров путем растягивания/сжимания клипа с сохранением всех кадров


Получил подтверждение предыдущего результата для MT, а вот они, эти 18% прироста скорости. Вариант скрипта полнокадровой обработки (SetMTMode) стал лидером по производительности, и теперь у скрипта с функцией MT() нет никаких преимуществ: и качество из-за шва по середине кадра хуже и скорость ниже. Пожалуй, пора этот вариант скрипта "списывать".

Во-третьих, были сделаны замеры скорости проигрывания на двух разных мониторах. Это было сделано из-за того, что я заметил разные результаты, которые показывают мои два монитора, одновременно подключенные к одной видеокарте Radeon X800 GTO. Вот тут сплошные вопросы :
1. Почему производительность скрипта зависит от частоты вертикальной развертки монитора?
Сначала думал, что причина в разных выходах видеокарты (Primary и Secondary), но установив на ЭЛТ-мониторе частоту обновления экрана в 75 Гц получил результаты, один-в-один совпадающие с результатами, снятыми с ЖК 75 Гц.
2. Почему загрузка процессора равна 100%, а выполняемый при этом скрипт с SetMTMode на разных мониторах дает разные результаты?
Разница в скорости работы скрипта достигает 16%.
3. Во что упирается производительность скрипта с функцией МТ?
Процессор показывает загрузку 80-85%, а скорость работы скрипта дальше не растет.

Кто знает?
Дальше привожу скрипты и их описание:

Скрипт MVTools_fast c функцией MT (пора списывать ):
код:
fps=23.976
multi=3
newFPS=65
DirectShowSource("Transformers.HD.DVD.Remux.1080p-to-720p.x264.DD5.1.DTS.mkv",fps=fps)
num=FramerateNumerator(last)
den=FramerateDenominator(last)
global idx = 10 # глобальная подсказка от IanB
mt("""
idx = idx + 1
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = idx)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = idx)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=idx)
""",threads=2,splitvertical=true)
assumeFPS(newFPS).timeStretch(tempo=100.0*newFPS*den/num/multi)

Скрипт MVTools_fast c командой SetMTMode (показавший отличные результаты):
код:
SetMTMode(5,4)
fps=23.976
multi=3
newFPS=77
DirectShowSource("Transformers.HD.DVD.Remux.1080p-to-720p.x264.DD5.1.DTS.mkv",fps=fps)
num=FramerateNumerator(last)
den=FramerateDenominator(last)
SetMTMode(2,2)
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)
assumeFPS(newFPS).timeStretch(tempo=100.0*newFPS*den/num/multi)

Открытие файла происходит в режиме SetMTMode 5 с 4-мя потоками, а дальнейшая обработка в режиме SetMTMode 2 c 2-мя потоками: в таком случае достигается максимальная производительность скрипта, загружающая оба ядра процессора на 100%.
fps - частота исходного видео-файла
multi - коэффициент увеличения частоты кадров путем расчета промежуточных кадров
newFPS - частота кадров, до которой необходимо растянуть/сжать клип
Последняя строчка - изменение частоты кадров путем растягивания/сжимания клипа с сохранением всех кадров.

Кстати, настоящее видео (Трансформеры), хоть и с черными бордюрами сверху и снизу, но показало несколько меньшую производительность скрипта MVTools_fast:

Исходный ролик: Transformers.mkv, 1280x720@23.976
Core2Duo 3,32ГГц (двухядерный)
ФУНКЦИЯ MT:
1280x720@71.928 -> 65 - 59,9 МПикс/сек
КОМАНДА SetMTMode:
1280x720@71.928 -> 77 - 71 МПикс/сек


Что ж, 71 МПикс/сек - это отличный результат для 2-ух ядерной системы! Жаль, что теоретических 140 МПикс/сек на 4-ех ядрах мне пока получить не удается. Мне сперва хотя бы за сотню перевалить. Будем копать дальше.

Результаты получены на последнем пакете кодеков K-Lite Codec Pack 3.9.0 и MVTools 1.9.3.

К сообщению приложены файлы: 1.jpg, 640x360, 32Кb, 2.png, 514x409, 15Кb

322. SandroID, 21.05.2008 16:38
И снова Спасибо за такой развернутый ответ!
я бы даже сказал - статью
буду дома пробовать

323. CBET, 21.05.2008 20:34
MAG79
СПАСИБО! все ок, впервые попробовал, понравилось, буду теперь следить за вашими изысканиями))))

324. Бельмас Олег, 22.05.2008 11:43
Хочу выразить огромную благодарность автору темы за проделанную работу!

Также назрел вопрос, может кто сталкивался, или есть идеи:
Заряжаю скрипт на фильмах с разрешением 1280х720@23.8:
код
--------------------------------------------------------------------------------
fps=23.976
multi=2
DirectShowSource("filename",fps=fps)
num=FramerateNumerator(last)
den=FramerateDenominator(last)
global idx = 10 # глобальная подсказка от IanB
mt("""
idx = idx + 1
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = idx)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = idx)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=idx)
""",threads=2,splitvertical=true)

Так вот на работе на машине Quad6600 2.4Гц все офигенно прекрасно работает, загрузка всех ядер равномерная, больше 60% не поднимается. 48 кадров я получаю - плавность уже класная. Смотреть одно удовольствие.

Дома на машине athlon 5000+ (2 ядра, 2.6Гц) тормоза. Реально получается 1-2 кадра в секунду. Нет, я конечно понимаю, что Quad быстрее чем 2х ядерник. Но всеже не в 40 же раз? В чем может быть засада?


ЗЫ: ну и конечно очень обрадовало, что q6600 уже тянет хотябы HDReady разрешение. Наверное буду делать апгрейд!
Потому как сам привык уже к самсунговскому Film+ и без него смотреть очень тяжко...

325. MAG79, 22.05.2008 12:17
Бельмас Олег
1. Можешь попробовать второй скрипт отсюда (http://forum.ixbt.com/topic.cgi?id=62:12524:321#321) (тот, что с SetMTMode). Приведенный тобою скрипт (с функцией MT) я больше не буду рекомендовать из-за его медленной работы и дефектов на месте склейки кадра.
2. Тормоза могут быть связаны с видеокартой и с опцией AGP fast write (подробнее (http://forum.ixbt.com/topic.cgi?id=62:12524:315#315) ). Видеокарточка должна быть современной, а функция AGP fast write включена в биосе и/или в драйверах. Кроме того, чем свежее DirectX и драйвера видеокарточки, тем лучше.

326. Бельмас Олег, 22.05.2008 13:34
Ладно, спасибо буду пробовать.
У меня видюха еще и встроенная ati1250.
На выходных возьму дискретную видеокарту, попробую.

327. Бельмас Олег, 26.05.2008 13:42
В ходе экспирементов решил попробовать посмотреть фильм с эфектом плавности на рабочей машине (intel quad6600) полностью. И обнаружил крайне неприятную вещь - если долго смотреть, то звук и видео рассинхронизируются. Т.е. в начале или сразу после перемотки на произвольное место звук совпадает с видео, а потом расползается . Причем как я говорил, загрузка любого ядра не превышает 60%. Теряется за 20-30 минут просмотра 1-2 кадра (dropped).
Срипт использую вот этот:

SetMTMode(5,4)
fps=23.976
multi=2
DirectShowSource("мой файл.mkv",fps=fps)
num=FramerateNumerator(last)
den=FramerateDenominator(last)
SetMTMode(2,2)
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)

Пробовал и с функцией assumeFPS(newFPS).timeStretch(tempo=100.0*newFPS*den/num/multi) и без нее. Эффект один и тот же. Если скрипт вписать в закладку ffdshow, то звук не уползает, но фильмы с разрешением HDReady уже не играются - 3-4 кадра в секунду. Загрузки процессора нет . Т.е. этот скрипт глючит в ffdshow.


Я так понимаю, что чем точнее указать частоту кадров для функции DirectShowSource, тем точнее и дольше держится звук. Но расползается всеравно. Нашел у себя 1 фильм (Sin City.avi), в котором при использовании скрипта звук всегда (даже с самого начала или после перемотки уже рассинхронизирован).

Ув. MAG вы не знаете с чем может быть связано, как лечить? Что поробовать?
Просто получившимся эффектом был доволен как слон, уже собирался домой 4-х ядерник ставить, а тут такое разочарование... А дома к томуже звук будет отдаваться на ресивер, вообще без изменений (т.е. с такой скоростью как в оригинальном файле). Т.е. боюсь, что рассинхронизация будет еще сильнее.

328. MAG79, 26.05.2008 20:20
Бельмас Олег
Я посмотрел уже около десятка фильмов высокого разрешения и несколько десятков DivX'ов стандартного PAL и более мелкого разрешения. Со звуком проблемы иногда были, но всегда решаемые. Для DivX'ов использую вкладку ffdShow - если скрипт успевает обрабатывать клип, то вообще никаких проблем, если же не успевает, то наблюдаются "захлёбывания" таким потоком, которое иногда выглядит даже намного медленнее, чем 4 кадра в сек. Вот тогда использую создание AVS-файла. В основном - для HD-фильмов.

скрипт глючит в ffdshow
Просто ffdShow еще не совсем корректно умеет работать с многопоточным AviSynth. Возможно скоро это исправят.

чем точнее указать частоту кадров для функции DirectShowSource, тем точнее и дольше держится звук
Именно так. Я значение fps узнаю с помощью Gspot и MediaInfo. Для 1,5 часов звук никуда не убегает. Использую пакет K-Lite codec pack, сплиттеры по возможности Haali.

звук... с самого начала или после перемотки уже рассинхронизирован
Всегда можно указать задержку или опережение звука, если такое наблюдается при просмотре. Мне такой фильм с рассинхроном попадался пока всего один раз.

звук будет отдаваться на ресивер, вообще без изменений
Тоже решаемая проблема. Ставлю в AC3Filter As Is (no change), Use SPDIF. Если интересно, удачи и промахи, связанные с этим описывал в этой ветке (http://forum.ixbt.com/topic.cgi?id=62:12524:286#286) , как приобрел акустику Microlab H-500D.

329. FAVISE, 26.05.2008 20:53
А кто-нибудь пробовал на ноутбуках увеличивать кол-во кадров на HDrip?конфиг C2D 1.86-2.1ггц с geforce 8600GS или с радиком 2400-2600 как думаете потянет?

330. MAG79, 27.05.2008 06:57
FAVISE
Скорость работы скрипта повышения кадров зависит в первую очередь от производительности процессора. Вся нагрузка по расчету промежуточных кадров ложится на него. От видеокарты скорость зависит уже нет так сильно. Radeon 9800Pro справлялся на ура. Приведенные тобою карты даже свежее, значит должны тянуть.

Теоретический расчет скорости работы скрипта:
Из замеров скорости (http://forum.ixbt.com/topic.cgi?id=62:12524:321#321) известно, что на c2d 3,32 ГГЦ можно получить производительность в 71 МПикс/сек. От тактовой частоты процессора зависимость линейная, поэтому на 2,1 ГГЦ производительность будет составлять 71/3,32*2,1 = 45 МПикс/сек.
Если у HDrip'а разрешение 1280х720, то максимальное количество кадров, которое можно получить для данного видео будет равняться 45 000 000/1280/720 = 48,8 fps.
Т.е. фильмы 24 fps на этом ноутбуке можно смотреть плавнее с увеличением частоты кадров в 2 раза (24*2 = 48 fps), а вот фильмы 25 и 30 fps с таким разрешением данный ноут не потянет даже при 2-ух кратном повышении частоты.

Какое физическое разрешение матрицы ноутбука? Если меньше, чем у фильма, то имеет смысл сперва уменьшать разрешение видео, а затем выполнять расчет промежуточных кадров. Тогда можно добиться большей производительности скрипта.

331. FAVISE, 27.05.2008 07:50
MAG79
Cпасибо за подробное разъяснение.Разрешение матрицы 1280х800.

332. MAG79, 27.05.2008 10:19
FAVISE
Разрешение матрицы 1280х800
Тогда уменьшать разрешение у видео имеет смысл только при нехватке мощности. Скрипт будет таким:
код:
SetMTMode(5,4)
fps=23.976 # указать реальную частоту кадров исходного видео
multi=2
DirectShowSource("[имя видео-файла]",fps=fps)

CropTop = 96 # обрезка бордюра сверху
CropBtm = 91 # обрезка бордюра снизу
ConvertToYV12()
coef = 0.85 # коэффициент масштабирования
Spline16Resize(Int(Width*coef/16)*16, Int((Height-CropTop-CropBtm)*coef/16)*16,0,CropTop,0,-CropBtm)

num=FramerateNumerator(last)
den=FramerateDenominator(last)
SetMTMode(2,2)
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)

Добавленный блок выделен пустыми строками. Используется команда Spline16Resize, т.к. она из внутренних команд масштабирования показала лучшее соотношение скорость-качество при уменьшении картинки.
Данный скрипт я настраивал на "Трансформерах" 720p. Установлено масштаблирование в 0.85 от оригинального размера, выполняется обрезка черных бордюров 96 пикселей сверху и 91 пиксель - снизу. Открытие файла без маштаблирования дает 125 fps, с маштабированием - 100 fps, c маштабированием и подрезкой черных бордюров - 115 fps. При 23,976 кадрах/сек открытие "кушает" 23,976/125 = 19% процессорного времени, а с масштабированием 23,976/115 = 21%. 2% за масштабирование - вполне приемлемая цена. На работу алгоритма расчета промежуточных кадров остается целых 79%. Проверял на C2D 3,32 ГГЦ.

333. FAVISE, 27.05.2008 11:21
MAG79
спасибо за то что скрипт представил,но я еще думаю насчет приобретения ноута для воспроизведения HD на плазме.

Добавление от 27.05.2008 16:13:

Щас попробовал на е4400 3Ггц увеличить видео XVID 608x336 23.98fps 989Kbps,в итоге изображение есть,но томозит даже с увеличением в 2 кадра.Делал все,что изложено в первом пункте первой страницы.
Что может быть криво поставлено?
Вот скрипт:
mt("""
idx = rand()
backward_vec1 = MVAnalyse(isb = true, truemotion=true, pel = 2, search=3, idx = idx)
forward_vec1 = MVAnalyse(isb = false, truemotion=true, pel = 2, search=3, idx = idx)
last.MVFlowFps(backward_vec1,forward_vec1, num=26, den=1, ml=100, idx=idx)
""",threads=1,splitvertical=true)

334. MAG79, 27.05.2008 18:37
FAVISE
Пожалуйста.

0. threads=1 - это шутка? У тебя ведь двухядерник, а указан один поток вместо двух...
1. Второй способ с первой страницы (создание AVS-файла с командой SetMTMode) работает намного быстрее, чем через ffdShow. Рекомендую использовать его.
2. Скорость работы скрипта сильно падает при не кратном увеличении частоты кадров. Рекомендую использовать скрипт с коэффициентом кратного увеличения частоты кадров (в 2, 3 и т.д. раз).

Подробности см. в ветке. Полезно будет прочитать хотя бы последние две страницы.

А шапку темы действительно надо обновить, а то с толку сбивает своей устаревшей инфой.

335. Бельмас Олег, 28.05.2008 11:56
Я победил свою проблему с рассинхронизацией звука.
Причины были 2:
1. В свойствах media player classic в настройках стоял рендерер VMR9 Renderless, поставил System Default
2. Частота кадров программкой MediaInfo выдается более точная, чем можно посмотреть в свойствах файла через медиа плеер. Ее я и ввожу в скрипт.

После этого все заработало само и четко. Даже в фильме SinСity, где рассинхронизация была сразу и всегда - все поправилось. Буду делать апгрейд домашнего компа и наслаждаться. Жадь только что компов на FullHD разрешение не хватает, только на HDReady. Ну уже круто и так.

Может кому моя информация поможет.


MAG спасибо еще раз за отличную тему!

336. MAG79, 28.05.2008 12:42
Бельмас Олег
Может кому моя информация поможет.
Конечно поможет, спасибо за полезную информацию. Рад, что у тебя получилось.

Жадь только что компов на FullHD разрешение не хватает
Правильнее говорить: "пока не хватает".

У меня очередные хорошие вести.
Я достиг производительности в 106 МПикс/сек. Впервые (в этой ветке) преодолен психологический барьер в 100 Мпикс/сек.

Совсем недавно (http://forum.ixbt.com/topic.cgi?id=62:12524:321#321) я писал, что не могу загрузить свой четырехъядерник на все 100%. Получилось. Пока не знаю точно что мне помешало в прошлый раз, но нынче на новом железе (материнка на P35-чипсете, память от OCZ, подробнее см. в Инфо) мне удалось получить равномерную загрузку всех 4-ех ядер, которая колебалась в районе 93-97%%. Заставил работать скрипт SetMTMode, что указан в том сообщении (http://forum.ixbt.com/topic.cgi?id=62:12524:321#321) , но уже в другой программе: VirtualDub в режиме Run video analysis pass на тех самых "Трансформерах" 720p показал скорость 115 fps.
А переводе на производительность это получается 1280*720*115 = 106 МПикс/сек.

А это означает, что производительности должно хватить для обсчета ролика 1920х1080 с повышением частоты кадров вплоть до потолка равного 106 000 000/1920/1080 = 51 кадр/сек. Т.е. видео вплоть до 25 кадров/сек уже можно смотреть на 50 fps, рассчитывая промежуточные кадры на лету. Уже хорошо, на выходных посмотрю что-нить такое...

И это не предел. Будем копать дальше.

Результаты получены на C2Q @3 ГГЦ, MVTools 1.9.3, VirtualDub 1.8.0.

337. Гы-гы-гы, 28.05.2008 12:55
Хммм, неужели кому-то нравится смотреть фильмы с этими эффектами? Я их всегда отключаю, ибо ужас какой-то, очень ненатурально всё становится.

338. ar1997, 28.05.2008 14:44
Гы-гы-гы Попробуйте уменьшить частоту кадров с 24 fps до 12 fps -- будет еще натуральнее! Вам должно понравиться!

339. SandroID, 28.05.2008 15:17
Гы-гы-гы
как раз натурально!
вы же не смотрите на мир с частотой 24 кадра

просто не привычно, но это другое.

340. Гы-гы-гы, 28.05.2008 15:36
SandroID, я и с частотой 124 кадра не смотрю на мир. Не нравится мне эти эффекты. Превращают кино в какую-то дешёвую театральную постановку.

341. Art_arrya, 28.05.2008 16:40
кстати да... некоторые фильмы при правильно настроенном плеере с фильтре и телеке создается впечатление что смотришь не спайдермена а какоето малобюджетное кино которое снималось на любительскую камеру... ну очень реально выглядит все.. привык наш народ к НОЙЗУ...

342. Сергей Фролов, 28.05.2008 16:41
Такое предложение. Нельзя ли 2х- кратно "уплавненный" поток закодировать в файл, пусть большего размера (формата, например 1080р 50 Гц), чтобы далее смотреть на слабых (обычных) компах.

343. djonline, 28.05.2008 16:51
Гы-гы-гы, не засоряй эфир. Никого не заставляем, пистолет не приставляем. Но в душе тайно мечтаем чтобы всё снимали изначально на 100Hz и в FullHD.

Господа, а как у вас дела с перемоткой этих AVS ? У меня она напрочь становится нерабочей, т.к. перемотка в середину фильма заставляет плеер просчитывать ВСЕ кадры вплоть до этого момента, а это бывает очень и очень долго.

344. SandroID, 28.05.2008 16:53
Сергей Фролов
вам в самое начало ветки
можно, и даже скрипты MAG79 приводил.

Добавление от 28.05.2008 16:55:

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

345. Гы-гы-гы, 28.05.2008 16:58
djonline, я думал форум на то и форум, чтобы высказывать своё мнение...

346. 19w85, 28.05.2008 18:05
Гы-гы-гы
Здесь тема для тех кому интересно плавное воспроизведение видео, кому не интересно просто проходят мимо этой темы, а не заходят пофлудить...

347. Бельмас Олег, 28.05.2008 18:52
цитата:
MAG79:
Жадь только что компов на FullHD разрешение не хватает
Правильнее говорить: "пока не хватает".

У меня очередные хорошие вести.
Я достиг производительности в 106 МПикс/сек. Впервые (в этой ветке) преодолен психологический барьер в 100 Мпикс/сек.

Совсем недавно (http://forum.ixbt.com/topic.cgi?id=62:12524:321#321) я писал, что не могу загрузить свой четырехъядерник на все 100%. Получилось. Пока не знаю точно что мне помешало в прошлый раз, но нынче на новом железе (материнка на P35-чипсете, память от OCZ, подробнее см. в Инфо) мне удалось получить равномерную загрузку всех 4-ех ядер, которая колебалась в районе 93-97%%. Заставил работать скрипт SetMTMode, что указан в том сообщении (http://forum.ixbt.com/topic.cgi?id=62:12524:321#321) , но уже в другой программе: VirtualDub в режиме Run video analysis pass на тех самых "Трансформерах" 720p показал скорость 115 fps.
А переводе на производительность это получается 1280*720*115 = 106 МПикс/сек.

А это означает, что производительности должно хватить для обсчета ролика 1920х1080 с повышением частоты кадров вплоть до потолка равного 106 000 000/1920/1080 = 51 кадр/сек. Т.е. видео вплоть до 25 кадров/сек уже можно смотреть на 50 fps, рассчитывая промежуточные кадры на лету. Уже хорошо, на выходных посмотрю что-нить такое...

И это не предел. Будем копать дальше.

Результаты получены на C2Q @3 ГГЦ, MVTools 1.9.3, VirtualDub 1.8.0.

Я правильно понимаю, что процессор разогнан?
MAG, отпишите если получится запустить фильм FullHD на вашей машине.
Просто у меня примерно такая же конфигурация на работе (q6600, 35-й чипсет, видюха правда другая - radeon x1800gto). У меня не получается 1920х1080 смотреть на 50fps. Загрузка ядер примерно по 50%, и 0.5 fps в плеере. Т.е. явно что-то не так работает, но что и кто виноват? Буду копаться потихоньку.

348. Ogryn, 28.05.2008 20:04
Спасибо вам за эту ветку, читаю давно и с удовольствием.

цитата:
djonline:
Господа, а как у вас дела с перемоткой этих AVS ? У меня она напрочь становится нерабочей, т.к. перемотка в середину фильма заставляет плеер просчитывать ВСЕ кадры вплоть до этого момента, а это бывает очень и очень долго.
Когда тестировал передовые изыскания автора в области ускорения скрипта, выявилась такая-же проблема. Как правило плееры висли до окончания сего процесса. Списал на кривость своих кодеков. Снес все кодеки, включая k-lite. Поставил только core avc, Haali Media Splitter и AC3filter.
Теперь все перематывается и играет без тормозов, но появилась другая проблема... Теперь при проигрвании AVS скрипта открывается 2 AC3filterа и 2 Haali Media Splitterа. Оба работают ниезависимо и накладывают звук один на другой, притом потоки и настройки изменять независимо.

Можо, конечно, удалить все дорожки, кроме нужной в данный момент... но может есть менее радикальное решение?

349. MAG79, 28.05.2008 20:38
Сергей Фролов
Еще про слабые компы: Диаграммы теста (http://forum.ixbt.com/topic.cgi?id=62:12524:238#238) по выявлению самого скоростного декодера, а также быстрых и эффективных кодеров.

djonline
как у вас дела с перемоткой этих AVS ?
Обычно перед началом проигрывания наблюдается пауза в несколько секунд, при прыжке на новое место (это не совсем перемотка) - паузы секунд 3-5. Нормально. Я почти привык. Главное не торопится, если не дождаться проигрывания видео после прыжка и сдвинуться в другую позицию, то плеер может просто "отстрелиться".
Я бы не назвал это просчетом всех кадров с начала, просто идет накопление буфера на несколько кадров вперед. Кстати, если сперва нажать паузу, затем перейти на новое место, дождаться появления картинки, а потом снять с паузы, то вероятность того, что видео пойдет без скачков намного выше. Если наблюдаются скачкИ, то можно просто нажать паузу, а через пару секунд возобновить проигрывание. Иногда помогает, видео снова проигрывается плавно.
Мои наблюдения сделаны в основном на MediaPlayer Classic, у других плееров я встречал схожее поведении при проигрывании обсуждаемых AVS-файлов

Бельмас Олег
процессор разогнан?
да, пока обкатываю 2.4 -> 3.0 ГГЦ, планирую довести до 3.3-3.6, но это как получится.

не получается 1920х1080 смотреть на 50fps
У меня тоже раньше не получалось, теперь все покажут реальные испытания FullHD-фильмов. Наберу разных на выходные, помучаю, результаты обязательно сообщу.

Ogryn
У меня сейчас скрипт тоже открывает два Haali сплитера, только один сплитер распаковывает видео, второй - звук. Они друг другу не мешают. AC3Filter похоже, открывается один. Хотя я не в курсе как проверить.
Как можно посчитать сколько их запущено? В трее иконок у AC3Filter, как у Haali, нет.

350. Ogryn, 28.05.2008 21:11
MAG79:
AC3Filter config -> System -> Show tray icon Тогда будет иконка и можно посчитать.
Поплясал с бубном, почистил реестр и переустановил. Теперь они не накладываются, но по прежнему в трее висит 2 ac3фильтра. Знать бы занят процессор рассчетом "лишней" звуковой дорожки или иконка просто так висит?

351. MAG79, 29.05.2008 13:55
Ogryn
Спасибо, включил. При открытии самого фильма иконка висит в трее, а при открытии AVS-файла появляется и тут же исчезает. Видимо, надо еще что-то настроить, чтобы не исчезала. Вещь-то полезная: каналы подрегулировать, центр опять же добавить или SPDIF включить/выключить.

352. SandroID, 29.05.2008 16:39
для информации...
http://www.nvworld.ru/news/29_05_2008.html#29_05_2008-05

возможно, мы скоро сможем "прикрутить" GPU для просчета промежуточных кадров
если конечно это все действительно так, как описано в заметке.

353. Tualin, 30.05.2008 01:51
на двухядерном Athlon64 2400Mhz обычный 1.3 гига рип еле работает... всё замедленно раз в 10
разрешение 720 с чем-то...

процессора не хватает или косяк какой?

скрипт:

SetMTMode(5,4)
fps=25
multi=2
newFPS=77
DirectShowSource("Missia_Sereniti_[torrents.ru].avi",fps=fps)
num=FramerateNumerator(last)
den=FramerateDenominator(last)
SetMTMode(2,2)
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)
assumeFPS(newFPS).timeStretch(tempo=100.0*newFPS*den/num/multi)


не понял чем рассчитывается newfps, тк от его изменений становится быстрее или медленнее звук, а при 77 он близок к оригиналу.
media classic player вылетает после того как скрипт забил в ffd. теперь его оттуда даже не убрать.

а вот crystalplayer работает, но всё дико медленно.

ради интереса выставлял newFPS=25 (к оригинальному количеству), но становилось еще медленнее

а это ведь даже не HD Ready, а где-то 1.8 от него

Добавление от 30.05.2008 01:53:

а вот WinAmp показывает все 77 кадров с лёгкими подтормаживаниями...

Добавление от 30.05.2008 02:07:

во, 75 поставил при исходных 25. работает супер

354. MAG79, 30.05.2008 05:10
Tualin
Я рад, что все заработало, но ты в курсе, что меняешь длительность, и в данном случае ускоряешь воспроизведение в 1,5 раза?

fps=25 - это исходная частота кадров у оригинала (необходимо указать реальное значение частоты кадров проигрываемого файла, смотреть в MediaInfo, Gspot).
multi=2 - это коэффициент увеличения частоты кадров. Должен быть целым числом. В данном случае увеличивает 25 кадров в секунду до 50-ти (длительность сохраняется).
newFPS=77 - это частота кадров до которой надо ускорить/замедлить видео вместе со звуком. Эта и самая последняя строчка в скрипте указаны для тестовых целей, чтобы оценить скорость скрипта. Хотя их можно использовать, если понимать, что именно они делают и как правильно настроить скрипт.

В данном случае для фильма по его 25 кадрам рассчитались дополнительные 25 кадров, получилось 50 для показа в одну секунду, а последняя строчка со значением newFPS=75 заставляет проигрывать эти 50 плюс следующие 25 кадров в одну секунду, т.е. ускоряет фильм в 1,5 раза.

В случае с твоим фильмом я бы посоветовал следующие параметы:
fps=25
multi=3
newFPS=75


SandroID
Интересная новость. А я вот поспешил и взял себе видеокарту на G92. Может этот чип тоже умеет сжимать видео, как и G200?

355. Tualin, 30.05.2008 05:38
MAG79
код:

SetMTMode(5,4)
fps=25
multi=3
newFPS=75
num=FramerateNumerator(last)
den=FramerateDenominator(last)
SetMTMode(2,2)
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)

имеются рывки каждые несколько секунд (4-5 секунд, но сами рывки очень мелкие)

обычно связаны со сменой плана... это неизбежное зло?

убавил до 50 кадров и рывки от смены плана ушли, но другие остались.
загрузка ЦП=29%

рывки похоже на то, что бывает в играх без вертикальной синхронизации
или в очень старых играх без двойного буффера

быть может не дружит с фрактальным сжатием в фильмах, где всякий мусор мельтешит от ключевого кадра к ключевому

Добавление от 30.05.2008 06:03:

а вот HDRip'ы тормозят при 2-кратном увеличении кадров. похоже, что мне эта технология не грозит до тех пор пока на CUDA не сделают плагин к avisynth

356. MAG79, 30.05.2008 06:50
Tualin
По поводу рывков:
1. Рывки могут быть в самом исходном материале (дропы, скачки) - тогда это действительно "зло". У меня есть небольшой задел, как с ними бороться, но пока только вручную - до автоматизма не доведено.
2. Рывки могут быть связаны с рассогласованием вертикальной частоты монитора и частоты показываемого видео. Можно воспользоваться ReClock (http://forum.ixbt.com/topic.cgi?id=62:12524:310#310) . Либо как раз newFPS и последней строчкой скрипта.
3. Рывки могут быть связаны с недостаточным размером буфера кадров при неравномерной нагрузке при расчете промежуточных кадров. Тогда надо попробовать программу, где этот буфер побольше, например настроить Crystal Player.
4. Рывки могут быть связаны с малым объемом свободной памяти. Сам скрипт и буфер кадров очень прожорливы. Необходимо, чтобы они работали в физической памяти, без свопа на диск.

CUDA - в смысле технология использования возможностей видеокарт?

357. Tualin, 31.05.2008 01:22
цитата:
MAG79:
CUDA - в смысле технология использования возможностей видеокарт?
ну да. в middle-видеокартах производительности для таких задач в несколько раз больше, чем у самых топовых процессоров
кстати, речь о G92, который я тоже купил.

недавно еще телевизор 32'' Sony купил для этой задачи. на нём смотрю.
выбирал сначала Samsung, но их разобрали там где брал. в описании была ошибка о наличии данной технологии.
дома уже оказалось, что ничего такого в нём нет. так что вышел маленький обломчик.
а вот в Samsung оно точно было

358. MAG79, 01.06.2008 07:34
Tualin
Ясно. Да, обидно, что с СОНИ так вышло.

Интересна судьба рывков. Смог их побороть или нет?

359. Tualin, 01.06.2008 19:23
наконец-то получилось в кристале без рывков...
но уже на второй запуск появилась рассинхронизация

360. MAG79, 02.06.2008 08:03
Tualin
получилось в кристале без рывков.
Поздравляю

появилась рассинхронизация
звука от видео?

вместо HD перехожу на хорошие MPEG2-фильмы (dvd-dl)
Тогда для плавного проигрывания именно DVD рекомендую попробовать WinDVD 6-9 (достигаемые частоты (http://forum.ixbt.com/topic.cgi?id=62:12524:186#186) , ветка обсуждения (http://forum.ixbt.com/topic.cgi?id=62:12919) . Там есть галочка Trimension DNM, которая тоже повышает плавность видео, и многие отмечают, что качество получается заметно лучше, чем при использовании MVTools.

361. Tualin, 02.06.2008 08:41
MAG79
отдельным avs-файлом идёт рассинхронизация.

вписанным кодом в ffd нет, но были рывки. ничего особенного не делал. просто исчезли.
так что еще могут вернуться ... очень хитро всё это дело работает

Добавление от 02.06.2008 09:04:

смотрел HD рататуй 1280х720 ...
загрузка второго ядра 100% каждые пару секунд (и 20% остальное время)
первое ядро примерно 60%

в самом фильме кадры почти не сменяются на экране

362. Сергей Фролов, 02.06.2008 15:09
2 MAG79

Не прикините, если заранее подготовить файл 1080р 75 fps какой проц потребуется для его воспроизведения, только.

363. MAG79, 02.06.2008 15:36
Сергей Фролов
Смотря чем зажать.
720p 75 fps может проиграть Duron @2000 МГц (подробнее (http://forum.ixbt.com/topic.cgi?id=62:12524:238#238) ).
1080p по числу точек в 2,25 раза больше, чем 720p.
Поэтому 1080p 75 fps на вскидку сможет играть одноядерный комп с частотой 2000*2,25 = 4500 МГц (это уже далеко не слабенький компьютер получается).

Можно прикинуть частоту двухъядерного для поставленной задачи:
1080p на Core2Duo @3,3 ГГц у меня показал 53 fps. Проверял на тестовом файле VID-4J.mp4. Двухъяденика тоже оказалось мало.

Остаются либо четырехъядерники, либо проигрывание с помощью видеокарт (DXVA).

Сам озадачен, что фильм 1080p 75 fps оказался таким требовательным.

364. Сергей Фролов, 02.06.2008 16:13
Что-то не бьется, одноядерник может, а 2х - нет

365. MAG79, 02.06.2008 18:23
Сергей Фролов
Одноядерник Duron 2,0 ГГц не потянет.
Одноядерник 4,5 ГГц (где в современных компах, кроме самых оверклокерокерских можно такое встретить?) возможно потянет, причем, теоретически - надо сперва найти, затем на нем проверить.
Двухъядерник C2D 3,3 ГГц (уже разогнан) в реальных условиях не потянул. Дальше 3,3 я разгонять его не планирую, хочу сохранить стабильность работы.

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

366. Сергей Фролов, 02.06.2008 18:32
2х3.3=6.6, что больше чем 4.5. Это, конечно, очень грубо, но, похоже, 4.5 не потянет.

Что касается DXVA, почитал форумы, да, на ATI 2600XT и последних драйверах загрузка падает со 100 до 5 (!!), но:
1) не все рипы воспроизводятся
2) есть артефакты
3), и главное, думаю, что на 75 fps, видяха ляжет, не продекодирует поток. Во всяком случае в панели Catalist Control Centre "поддержка HDTV" появляется только режим 24p, а 75р почему-то нет

367. MAG79, 02.06.2008 18:59
1) да, при подготовке файла придется озаботиться проверкой на видюхе
2) подобрать формат и параметры сжатия, чтобы артефактов не было
3) 1080p 72 fps играется на Radeon HD 2600 XT (сам проверял (http://forum.ixbt.com/topic.cgi?id=62:12524:213#213) )

Кстати, там же я упоминал, что C2D 2 ГГц для такого фильма хватает. Действительно, надо перепроверить, почему C2D 3,3 ГГц показал только 53 fps.

368. Сергей Фролов, 02.06.2008 21:03
Т.е. с этой картой фильм покажется на любом компе?

369. Tualin, 03.06.2008 01:17
итак, заценил WinDVD9

Trimension ALL2HD действительно лучше того, что было через MVTools в плане качества.
При этом работает растягивание dvd до hd, но не работает всё остальное - нельзя даже контрастность настроить.
Ну ничего, на телевизоре под разное разрешение свои настройки... для просмотра фильма можно уходить в 1280х720,
а работать в 1360х768.

загрузка ядер равномерная - 80% при проигрывании властелина колец весьма неважного качества.
буду качать только максимально высокого качества dvd, тк эти улучшайзеры также не работают с ALL2HD

особо разношёрстные сцены он не трогает, перемотка работает лучше.

аппаратное декодирование вообще отключает всё, что можно сделать с картинкой, но процессора хватает

этот Trimension только как встроенный в windvd идёт?

370. MAG79, 03.06.2008 07:54
Tualin
работает растягивание dvd до hd, но не работает всё остальное
это известное ограничение WinDVD9: работают либо фильтры, либо All2HD, наверное маркетинговый ход.

этот Trimension только как встроенный в windvd идёт?
да, и работает только на MPEG2-материале. Были успешные попытки включения Trimension DNM через реестр в сторонних плеерах, но только при условии проигрывания MPEG2 и использования декодера от WinDVD 6/8.

Сергей Фролов
с этой картой фильм покажется на любом компе?
скорее всего. Хотя я проверял на Radeon HD 2600 XT вставленной в комп с Core2Quad Q6600, загрузка процессора при этом не поднималась выше 5%.

По поводу программного декодирования - буду выяснять причину слабых результатов C2D 3,3 ГГц. Дома на 4 ядрах на родных 2,4 ГГц VID-4J показал намного больше, чем 75 Гц. А 1080p 25 fps он играет с загрузкой процессора 1-8%

371. Сергей Фролов, 03.06.2008 11:53
У меня старый комп Celeron 3.2D еще с AGP. В продаже есть HD карты на AGP, было бы интересно попробовать, потянет ли она 1080p 75fps. Но это надо искать с манибэком.
Не выложите фрагментик?

Tualin
В девятке совершенно дохлый DNM. На вышеуказанном компе загрузка всего 60% на PAL DVD (на семерке под 100) и особой плавности я не вижу.

372. elektron-mobile, 03.06.2008 12:25
Реальный DNM только в 7 версии WINDVD - остальное так не работает

373. MAG79, 03.06.2008 18:41
Сергей Фролов
Оказывается, я просто неправильно измерял. Я измерял скорость открытия в AVS-скрипте, а этот способ, как показали мои наблюдения, ограничивается по скорости 50-55 fps для любого видео 1080p. Причем даже на Core2Quad. Может кто знает в чем причина?

Перепроверил при помощи прямого открытия файла в timeCodec. Пришлось даже сделать downclocking процессора. Результаты:
C2D 2,13 ГГц - 1хх dfps (точно не помню)
C2D 1,06 ГГц - 75 dfps
C2D 600 МГц - 43 dfps
Замеры производил на файле VID-4J.mp4, использовал CoreAVC 1.7.0. с отрисовкой в Null.
Вывод: Для проигрывания 1080p 75 fps достаточно CoreAVC 1.7.0 и C2D свыше 1 ГГц, а они начинаются от 1,83 ГГц. Так что любого C2D должно хватить.

Насчет Celeron 3.2D надо проверять. Рекомендую попробовать CoreAVC. Интересно будет узнать результаты.

374. Сергей Фролов, 03.06.2008 18:46
Дык, файлик бы.

375. Tualin, 03.06.2008 19:01
цитата:
Сергей Фролов:
В девятке совершенно дохлый DNM. На вышеуказанном компе загрузка всего 60% на PAL DVD (на семерке под 100) и особой плавности я не вижу.

ну какова загрузка, такая и нагрузка.

там есть демо режим для сравнения и Властелин Колец, к примеру, отличается очень сильно.
быть может у вас не Best Quality режим выбран.

цитата:
elektron-mobile:
Реальный DNM только в 7 версии WINDVD - остальное так не работает

забавно, но у меня обе версии стоят :]

и DNM на них работает одинаково. разница только если мутить с оптимизациями в разделе экономии питания (которые сразу выключил) + режим Cinematic look, вместо Best Quality.

и в 7 нет растягивания до HD, которое весьма существенно отличается от простого масштабирования под экран.
на мониторе может и пофиг, маленький экран, но на большом lcd-телевизоре разница огромная.

376. MAG79, 03.06.2008 19:16
Сергей Фролов
Файл взят из комплекта DivXTestCD 2.0. Если такого под рукой нет, то завтра могу выложить отдельно только этот файл (20,6 МБ)

377. Сергей Фролов, 04.06.2008 10:13
Tualin
и DNM на них работает одинаково

Одно ваше мнение против целой группы людей (посмотрите в ветке о девятке). И не надо подозревать никого в дешевых просчетах, не Best я вообще смотреть не могу.
Возможно, правда, как вариант, качество падает только если проц не справляется.
MAG79
Заранее спасибо

378. MAG79, 04.06.2008 11:46
Сергей Фролов
Файл VID-4J.mp4 (http://webfile.ru/1997215) из тестового диска DivXTestCD 2.0 (20 Мб).
Характеристики: 3628 Кбит/сек, 1920х1072, 24 кадра/сек, H.264

379. Сергей Фролов, 04.06.2008 16:37
А-а-а, это по-моему не совсем адекватно - брать файл 24fps, замерять его скорость и обобщать на 72 fps.
По-честному, нужно сделать именно файл 72fps и чтоб не тормозил. Кроме того, это что за поток 3.6? У меня на хороших DVD - 10.
У Блюрея должно быть под 20. Я как раз о том, если взять блюреевский битрейт, да еще утроить - карта ляжет.

380. MAG79, 04.06.2008 19:24
Сергей Фролов
не совсем адекватно - брать файл 24fps, замерять его скорость и обобщать на 72 fps
Формально, для программы timeCodec нет понятия кадров/сек у видеофайла. Она выжимает из каждого видеофайла максимум, что может система и выдает среднее количество кадров, которое система смогла распаковать и передать на устройство отрисовки.
Фактически, я могу изменить количество кадров в видеофайле без перекодировки в том же VirtualDub, в результате получу тот же самый видеопоток, у которого просто частота кадров будет указана в три раза выше, соответственно битрейт тоже в три раза возрастет, с 3.6 до 10.8 Мбит/сек.

У Блюрея должно быть под 20. Я как раз о том, если взять блюреевский битрейт, да еще утроить - карта ляжет
Здесь, возможно, Вы правы. Хотя у меня есть подозрение, что нагрузка на декодер в первую очередь зависит от толщины распакованного потока (т.е. от размера картинки и частоты кадров), далее уже - от примененных параметров сжатия, и уже в последнюю очередь - от степени сжатия (т.е. от толщины входного потока, битрейта файла). Другими словами, 1080p 3 Мбит/сек против 1080p 20 Мбит/сек не должны показать большую разницу в нагрузке на декодер. Это легко проверить. На днях проведу эксперимент.

Тем не менее, жду результатов замеров VID-4J на Celeron 3.2D - как-никак общераспространенный тестовый ролик. Хотя бы на нем получить частоту кадров выше 75 fps.

381. Сергей Фролов, 05.06.2008 14:14
46 fps.
При просмотре на MPC несколько раз подпрыгивыло до 100, надеюсь в нем есть буфер, иначе должны быть дропы.
Так что мне только аппаратное декодирование видеокартой.

382. MAG79, 05.06.2008 15:30
Сергей Фролов
Да уж. Что-то одноядерников не хватает для программной распаковки видео 1080p 75 fps.
Pentium 4 HT 3 ГГц показал 58 dfps на VID-4J.mp4 в timeCodec (CoreAVC 1.7.0, Renderrer: Null).
Картинка CPU-Z прилагается.

Остаются двухъядерники (и больше-ядерники), либо аппаратная распаковка современными видеокартами.

К сообщению приложены файлы: 1.png, 390x435, 15Кb

383. Бельмас Олег, 05.06.2008 18:25
MAG79, раскажите же получилось посмотреть FullHD на 4-х ядернике с повышением fps в реальном времени или нет?

384. MAG79, 05.06.2008 20:27
Бельмас Олег
Был занят установкой чистой винды с сервис-паком 3, настройкой.

Сегодня ради эсперимента покрутил FullHD.
VirtualDub в analysis pass показал 49-50 fps при равномерной загрузке всех четырех ядер в районе 70-75%.
Но этот же тестовый ролик (VID-4J) при проигрывании пошел без тормозов только на 44 fps. Загрузка процессора неравномерная, в районе 50%. Объясняю это необходимостью вертикальной синхронизации. Такая картина наблюдалась как в Crystal Player'е, так и в MPC. По загрузке процессора видно, что он может еще, но ему что-то мешает. Что именно, это еще предстоит выяснить.

Поэтому я пошел другим путем. Раз пока не получается FullHD 1080p, пусть будет хотя бы 80-90% от него, но с хорошей скоростью. И получилось (я ведь не зря сравнивал алгоритмы масштабирования (http://forum.ixbt.com/topic.cgi?id=62:12524:332#332) - знал, что пригодятся).
Из исходного клипа 29.97 fps в реальном времени заработало увеличение плавности до 60-ти и 75-ти кадров/сек (распространенная частота обновления монитора). Использовался скрипт, приведенный по ссылке (CropTop=0, CropBtm=0).
60 fps: fps=29.97, multi=2, newFPS=60, coef = 0.9 (Итоговое разрешение: 1728х960, проигрывание ускоренное на 0,1% от исходного)
75 fps: fps=29.97, multi=3, newFPS=75, coef = 0.8 (Итоговое разрешение: 1537х864, проигрывание замедленное на 16,6% от исходного)

Core2Quad @3,3 ГГц, Windows XP SP3, MVTools 1.9.3, CoreAVC 1.7.0

385. Бельмас Олег, 06.06.2008 12:48
MAG, у меня есть предположения почему не получается смотреть FullHD даже при небольшой загрузке ЦПУ. Они основываются на моих предствалениях работы MVTools и я могу ошибаться, но всеравно изложу - может быть натолкнет на решение проблемы.

Итак исходные данные:
1. Ролик в разрешении 1920x1080, пускай с 25 FPS.
2. Проц - Quad неважно сколько (потому как 100% загрузки мы пока еще не получаем)
3. Пытаемся пересчитать FPS в 2 раза - 50FPS.

Как я себе представляю, каждые 4 кадра видеопотока обсчитываются каждым из ядер. При этом нет никакой гарантии, что обсчет каждого кадра каждым ядром идет одинаковое колличество времени. Соответственно, чтобы получить итоговую плавную картинку, нужно чтобы обсчет заканчивался строго в том порядке, в котором он начинался и желательно чтобы был запас по времени. Ну т.е. если 1-е ядро просчитало результат, он начал выводится на экран, 2-е уже должно или заканчивать расчеты очередных кадров или уже закончить и так далее. В реалии это врядли соблюдается. Поэтому после вывода первых 2-х кадров (результат работы 1-го ядра) приходится некоторое время ждать получения 3-го и 4-го кадра. Полагаю, что 1-е ядро, которое свою порцию обсчитало в это время не загружается расчетом 9 и 10 кадров. В итоге мы имеем неполную загрузку процессора (потому как он глупо ждет).

Опять же если мое предположение верно, то правильным было бы обсчитывать кадры непрерывно в какой-то промежуточный буффер и делать это непрерывно (ну чтобы был запас) каждым ядром постоянно. А выводить их уже отдельным механизмом с нужно скоростью. Сомневаюсь что это реализовано в MVTools. По крайней мере судя по поведению системы похоже именно на это.
Т.е. я хочу сказать, что из-за того, что MVTools пытается синхронизировать работу ядер во время обсчета для получения целостного потока, и не использует 4 огроменных буфера и синхронизацию уже при выводе из них на экран, теряется производительность и получается простой системы. На разрешениях поменьше видимо просто обсчет идет быстрее, и проблемы коллизий при синхронизации работы ядер не возникает.
Если бы можно было что-то подобное организовать на скрипте - т.е. обсчет непрерывный и в буфера, а синхронизация только в момент вывода на экран - скорее всего работало бы без проблем.
Но честно, мне некогда разбираться со всеми этими скриптами Может в отпуске займусь...

Вертикальная синхронизация думаю тут не причем, потому как если взять обычной ролик с разрешением ну пусть 640х480 и пересчитывать FPS на 50, 60, 75, 80, 100 кадров, при этом картинку растянуть на экране на 1920х1080 - никаких проблем нет - все работает отлично. А ведь здесь тогда бы возникала такая же проблема вертикальной синхронизации...

Все это мое имно. Сильно не пинайте
Если заинтересует моя идея, могу расписать более пдробно вплоть до пошагово с привязкой по времени.

386. MAG79, 06.06.2008 14:06
Бельмас Олег
Здравая мысль
Тогда полученные результаты загрузки четырехъядерного процессора хорошо объясняются. 75-ти процентная загрузка означает, что неравномерность длительностей расчета кадров составлят в среднем 25% для каждой четверки кадров. Эти 25% времени ядра простаивают, ожидая окончания самого длительного обсчета.

Но есть одно "но". Если предположить, что причина именно в этом, то каждая пара кадров тоже должна отличаться по длительности обсчета хотя бы на 8% (25/3 = 8).

Как тогда объяснить 100%-ную загрузку двухъядерника на этом же клипе (1080p, 2 ядра, загрузка 100%)?
Или 100%-ную загрузку четырехъядерника на меньшем разрешении (720p, 4 ядра, загрузка 100% (http://forum.ixbt.com/topic.cgi?id=62:12524:336#336) )?

Можно предположить, что какой-то механизм избавления от простоев ядер все-таки существует, и освободившемуся ядру тут же вручается очередной кадр. Тогда должен существовать буфер, о котором ты говоришь, где кадры упорядочиваются, поздние кадры ожидают обсчета более ранних, а при накоплении очередной порции отдаются на выход. Отсюда можно сделать предположение, что в случае 4 ядер и большого разрешения банально нехватает размера этого буфера. Значит, для подтверждения этой теории надо увеличить этот размер. Если он зависит от размера выделяемой памяти для выполнения скрипта, то размером памяти можно поварьировать (где-то я встречал описание регулировки доступной памяти).

Бельмас Олег, большое спасибо за хорошую мысль. Попробую проверить на практике.

387. MAG79, 08.06.2008 19:51
Попробовал регулировать размер используемой памяти. Увеличение прироста вообще не дало, даже наблюдалось падение производительности. А вот уменьшение до опеределенной степени дает небольшой прирост, но только при достижении определенного порога производительность резко падает.
На моей конфигурации при тактовой частоте процессора 3 ГГц (днем стояла жара, решил перестраховаться от перегрева) получились следующие результаты (скрипт MVTools_fast, VID-4J, multi=2, 1920х1080):
SetMemoryMax(1536) - 41 fps
...
SetMemoryMax(64) - 43 fps
SetMemoryMax(48) - 43 fps
SetMemoryMax(32) - 9 fps
Т.е. оптимальным значением для данного случая является максимальный размер памяти, установленный в 48 МБ.
Прирост в скорости скрипта в сравнении с размером памяти, установленным в 1.5 ГБ, получился около 5%.

Кроме этого решил заодно проверить, насколько влияет скорость работы памяти на производительность скрипта:
800 MHz 5-5-5-15 - 43 fps
1000 MHz 5-5-5-15 - 47 fps
Прирост скорости получается около 10%. Неплохо.

Особой разницы в загрузке процессора на протяжении всех манипуляций не заметил. Все четыре ядра загружались практически равномерно, общая загрузка 68-72%.

Может узким местом является как раз скорость работы памяти? Может нехватает ее пропускной способности?

388. Сергей Фролов, 08.06.2008 21:35
Тогда бы тормозил и заранее подготовленный фильм. Вообще у памяти порядки скорости гигабитные

389. MAG79, 09.06.2008 17:00
Сергей Фролов
Вообще у памяти порядки скорости гигабитные
Вот именно. Всего лишь гигабитные.
Открыл Sandr'у, та пишет: PC2-6600, макс. пропускная способность: 13 Гб/сек, тест показывает 6,2 Гб/сек.

Теперь произведем простой расчет потока распакованных кадров 1080p 75 fps в YV12.
1920*1080 = 2 073 600 пикселей на один кадр. Умножив эту цифру на 12 бит для каждого пикселя в цветовом формате YV12 и на кол-во кадров получим поток равный 1,7 Гб/сек.

А это всего в 3,6 раза меньше реальной пропускной способности. Напомню, что только треть кадров при такой выходной частоте показывается без изменения (копируется сперва в буфер в качестве исходного материала для обсчета, а затем - для вывода на экран; т.е. два копирования). Остальные кадры (расчитываемые промежуточные) получаются копированием со смещением частей исходных кадров и склеиванием вместе. Кто посчитает сколько раз в данном случае копируется каждый кадр?

Если мои расчеты верны, то для проигрывания 1080p 75 fps с расчетом в реальном времени критичным параметром становится еще и пропускная способность памяти.

В случае с заранее подготовленным фильмом при программном декодировании каждый кадр копируется один раз. Пропускной способности памяти хватает. (В моем случае хватит на 3,6 таких фильма )

390. Бельмас Олег, 09.06.2008 17:22
Нет, упереться в пропускную способность памяти - считаю это не реально. В игрушках же при рендеренги картинки с 60FPS хватает пропускной способности. А там обмена данными между процом и памятью намного больше.

MAG, а какова загрузка проца (4-х ядерного) если проигрывать заранее подготовленный файл?
Ты не гонял ради статистики?
Грубо говоря, хочется узнать - каков вообще предел вывода ролика 1920х1080 на экран (т.е. только распаковка и отрисовка на экране).
Ну т.е. 100-200FPS? - сколько реально?

391. Сергей Фролов, 10.06.2008 02:03
MAG79
Вы не путаете гигабайты с гигабитами?
Гб - это гигабайт
1.7 вы получили в гигабитах

Для обсчета выставляется не кадр, а сжатый поток, там байтов на порядки меньше.
Поэтому, думаю, для прямого обсчета и подготовленного вывода будеть одинаково - по одному выводу на кадр.

392. MAG79, 10.06.2008 07:51
Сергей Фролов
я имел в виду Гигабит: Г - 230, б - бит. (Г заглавная, б строчная. Так принято обозначать. См. например, таблицу внизу статьи (http://www.artlebedev.ru/kovodstvo/sections/84/) ). Стараюсь придерживаться этих правил обозначения, иначе в видео- и аудио- битрейтах, размерах файлов и пропускных способностях можно запутаться, если не следить за регистром.

Для обсчета выставляется не кадр, а сжатый поток
Позволю себе не согласиться. Сжатый поток берется из файла при его открытии и тут же распаковывается декодером. После команды DirectShowSource видеопоток уже распакованный, как правило в формате YV12. Все остальные команды скрипта работают уже с распакованным видеопотоком.

В игрушках же при рендеренги картинки с 60FPS хватает пропускной способности
Там другое, там каждый кадр формируется не в ОЗУ, а в видеопамяти видеокарты. И расчетом 3D -> 2D (т.е. рендерингом) занимается не процессор, а видеокарта. Я же правильно понял - разговор про 3D-ирушки? Таких игрушек подавляющее большинство.

Да и не то мы обсуждаем. Намного полезнее было бы проверить, упирается скрипт в пропускную способность памяти или нет. Я это проверю на своей машине, но было бы здорово, если бы было с кем сравнить свои результаты. Картина получилась бы объективней.

P.S. можно и на "ты".

393. Сергей Фролов, 10.06.2008 11:11
Сильные аргументы, но все же странно, частота FSB выбирается обычно с запасом, так, чтобы первым затормозил проц, а не память. Ему же эти даннные еще и считать надо, а шине - только передавать.
А как будете проверять?

394. MAG79, 10.06.2008 12:15
Сергей Фролов
как будете проверять?
Расчетом файлов на-лету и с записью в промежуточный файл. А также проигрыванием исходного и полученного файлов.
Если провести всю цепочку действий, зафиксировать полученные fps и загрузку процессора, то можно будет поочередно менять частоту работы процессора и памяти, и смотреть на изменение результатов.

Бельмас Олег
По поводу fps в играх ответил в предыдущем сообщении.

MAG, а какова загрузка проца (4-х ядерного) если проигрывать заранее подготовленный файл?
Ты не гонял ради статистики?

Гонял, в памяти отложилось, что загрузка четырехъядерника не всегда 100%.
К сожалению, в теме результаты не помещал, есть только тест скорости проигрывания C2D (http://forum.ixbt.com/topic.cgi?id=62:12524:373#373) . Остается сделать аналогичные замеры для C2Q. Будет свободное время - займусь.

395. [HC]HUNTER, 10.06.2008 21:50
Господа... это все хорошо...
Умные слова и мысли, теоретические споры...

Но можете ли вы самому простецкому человеку посоветовать, каким образом мне попробовать хоть как-то улучшить плавность HD-видео ?
Есть какие-то общие рекомендации, какой поставить софт, или плагины ? Можно как-то очень кратенько обобщить или подытожить...?

Вот непосредственно уперся в то, что эффект judder'а очень сильно раздражает меня при просмотре фильмов 24fps на панели, которая подключена через HDMI на 60Гц.
Как вариант - пробовал ставить пресловутый 1080p/24. Но не понравилось... Во-первых картинка все же теряет резкость, во-вторых становится заметен отклик панели (постэффект свечения матрицы), чего не наблюдается уже с 50Гц.

На данный момент я располагаю машиной:
- Core2Quad 2.4GHz, разгоняемый при желании до 3.2 GHz
- чипсет iP35
- 4Gb DDR2
- NV 8800GTX, но могу вставить HD3450 (там получше с аппаратным ускорением HD, если это важно)
- операционка Vista x64

Видеоконтеном обладаю совершенно любым. От банальных DVDrip по 1.37Гб, до огроменных ремуксов BD--ROM по 25-40Гб.
Файлы есть в любых мыслимых и немыслимых форматах: H.264, VC-1, MPEG2, XViD. Разцегровка есть и 23.98fps, есть и 29.97, есть даже SVT*HD на 50Гц !

Что мне сделать, чтобы попробовать эту фантастическую плавность ?
Расскажите пожалуйста по пунктам... снизойдите до такой темноты как я...
Сразу скажу - софта не боюсь, с кодеками и плеерами разбирался. Поэтому настройки внутри FFDshow не пугают

396. MAG79, 11.06.2008 04:17
[HC]HUNTER
Подытожить можно, почему бы и нет.
1. Для разрешений выше стандартного PAL (720x576) единственной альтернативой повышения плавности в реальном времени остается MVTools.
2. Хорошей скоростью обадает скрипт, окрещенный в данной ветке "MVTools_fast". Последняя модификация приведена здесь (http://forum.ixbt.com/topic.cgi?id=62:12524:332#332) . Объяснение параметров скрипта здесь (http://forum.ixbt.com/topic.cgi?id=62:12524:321#321) .
3. Максимальную производительность показывает способ создания AVS-файла. На четырехъядернике он работает намного быстрее, чем способ через ffdShow.
4. Установить потребуется следующее ПО: AviSynth 2.5.7, MT 0.7, MVTools 1.9.3, декодеры по вкусу (для H.264 рекомендую CoreAVC 1.7.0). Подробности установки в первом сообщении (http://forum.ixbt.com/topic.cgi?id=62:12524:0#0) .
5. Общая идея увеличения плавности: кратно увеличить частоту кадров до частоты ближайшей к частоте монитора, после чего растянуть/сжать вместе со звуком. При нехватке мощности компьютера (пока Q6600 @3,3 ГГц способен максимум на 1920x1080@50) указать обрезку черных полей и коэфициент масштабирования. Результаты (http://forum.ixbt.com/topic.cgi?id=62:12524:384#384) .

Ну вот. Думаю для начала хватит. Если что-то непонятно - задавайте вопросы.


Альтернатива борьбы с judder'ом - ReClock. Но он не расчитывает промежуточных кадров. Занимается банальной синхронизацией видео с устройством отображения. Подробнее. (http://forum.ixbt.com/topic.cgi?id=62:12524:310#310)

397. [HC]HUNTER, 11.06.2008 09:51
Большое спасибо за ответ!
Ушел читать подробнее...

Если я правильно понял, то основная идея - получить в конечном итоге частоту видео, полностью совпадающую с частотой рефреша панели? То есть если у меня телек подключен через DVI-HDMI на частоте 60Гц, то и видео мне нужно пытаться получить 60fps методом расчета промежуточных кадров ?

Еще вот с какой непонятной мне вещью я столкнулся...
Располагаю следующими демо-роликами:
- Samsung DEMO _ Tahiti Gauguins.tp (~1,5Гб)
- Демо-ролик Samsung [1080i, MPEG2].mpg (~400Мб)
Оба ролика 1440х1080р, MPEG2, 29.97fps . Проигрываются плеерами как 1920х1080p. смотреть я их пытался и с софтовым декодированием, и с использованием DXVA.
Дело в том, что они проигрываются идеально плавно совершенно на любом рефреше дисплея! Я специально выставлял 24, 30i, 50i, 50, 60, 72, 75 Гц на своем телевизоре и подключал его по VGA или DVI... но в итоге в любых случая ролики проигрываются ИДЕАЛЬНО !!! Просто фантастическая плавность, на judder нет ни единого намека!
В чем может быть "фича" этого видео? Оно полностью ломает мое понимание необходимости сопрягать частоту работы панели с раскадровкой видеопотока.
Зато любые фильмы 23.97fps великолепно дергаются на любых режимах телевизора за исключением 1080р/24... Но этот режим сам по себе для панели "гнилой" и не нравится мне...

Ролики можно взять на моем FTP:
- адрес: ftp://hcportal.net.ru
- логин: ixbt
- пароль: ixbt
- режим: пассивный лучше выключить

398. MAG79, 11.06.2008 11:04
[HC]HUNTER
основная идея - получить в конечном итоге частоту видео, полностью совпадающую с частотой рефреша панели?
да - это идеальный случай.

Оба ролика 1440х1080р, MPEG2, 29.97fps... проигрываются идеально плавно... выставлял 24, 30i, 50i, 50, 60, 72, 75 Гц
judder должен "вылазить" на некратных частотах. Если он не наблюдался, значит либо панель, либо декодер что-то шаманят и в итоге частоты становятся кратными.

Зато любые фильмы 23.97fps великолепно дергаются на любых режимах телевизора за исключением 1080р/24
на 72 Гц дергаться тоже не должно, т.к. частота кратная (72=24*3).

Вообще, рекомендую для начала попробовать ReClock. И почитать доку к ней. Там популярно объясняется природа рывков (judder, jerkiness). Правда на английском.

За ролики спасибо. Тот, что поменьше размером скачаю. Из Samsung'овских демо у меня в наличии только "The.beauty.of.nature.avi" (2.6 ГБ, 29.97 fps). Есть еще демонстрашки от Philips (29.97 fps) и JVC (25 fps). Все ролики 1920х1080.

399. [HC]HUNTER, 11.06.2008 11:45
цитата:
на 72 Гц дергаться тоже не должно, т.к. частота кратная (72=24*3).
а у меня дергается...
72Гц я получил конечно же через подключение VGA. Выставил 1920х1080@72.
Картинка хорошая четкая... но от judderа избавиться не помогла...
в чем же тогда может быть дело? То что частота кратная я понимаю. просто каждый кадр будет показываться 3 раза.
Тоже надеялся, что поможет...


цитата:
За ролики спасибо. Тот, что поменьше размером скачаю.
с удовольствием послушаю комментарий специалиста!
если нужен еще какой-либо контент - пишите - выложу.


Вопрос по CrystalPlayer.
Плавность получилась с помощью приведенного вами скрипта _fast.
Но машинка на базе процессора Core2duo E2160 явно не справляется...
Смотрел кино HD 1280х544. Набирается буфер 128 кадров, потом опустошается секунд за 5, снова набирается и т.д...


цитата:
Вообще, рекомендую для начала попробовать ReClock. И почитать доку к ней.
я его пробовал, к сожалению он довольно старенький уже... и похоже чего-то не вкуривает...
но делает реклок он у меня под Vista только на файлах DivX, Xvid и им подобным... вобщем на всяком мусоре, который я не смотрю.
Меня интересует именно комфортный просмотр FullHD. С аппаратным DXVA я разобрался, детально изучив его подводные камни, вот теперь хочу попробовать как-то избавить кино от "джуддера"

Попробую сегодня еще поиграться с 72 герцами... может я где-то затупил в тот раз...
Вот режимы, которые поддерживает мой телек (см. рисунок).
Странно, но 72Гц там не перечислено... а винды выставить его дают... при этом экран моргает (типа контроллер перестраивается на что-то там)...
Можно как-то проверить, честные там "мерцают" 72 герца или нет?

К сообщению приложены файлы: 1.jpg, 739x731, 78Кb

400. MAG79, 11.06.2008 12:43
[HC]HUNTER
подключение VGA. Выставил 1920х1080@72
к сожалению, судя по приложенной таблице, панель не имеет такого режима 1920х1080@72 Гц. Для этого разрешения вообще указан один режим: 59,934 Гц. Мониторы имеют меню с информацией, где можно посмотреть параметры текущего режима. Панель такую менюшку не имеет?

Можно как-то проверить, честные там "мерцают" 72 герца или нет?
Самый верный способ - через менюшку. Но если менюшки нет, то можно запустить видео с 72 кадрами/сек и объектом с равномерным движением. Если движение будет смотреться без рывков, значит на самом деле 72 Гц.

Core2duo E2160 явно не справляется...
Смотрел кино HD 1280х544

E2160 - это 1,8 ГГц. Смотрим последние результаты (http://forum.ixbt.com/topic.cgi?id=62:12524:321#321) : При 3,3 ГГц на двухъядернике я смог завести 1280x720@72 -> 85, что в пересчете на производительность составляет 78,3 Мпикс/сек.
E2160 теоретически должен обладать производительностью 78,3/3,3*1,8 = 42,7 Мпикс/сек.
Теперь достаточно разделить эту цифру на разрешение фильма и получим максимально возможную частоту, до которой процессор в состоянии повысить плавность движений. Т.е. 42,7*1 000 000 / 1280 / 544 = 61 fps.
Этот процессор должен тянуть 60 fps видео такого разрешения, потолок скорости для этого разрешения = 61 fps.

401. [HC]HUNTER, 11.06.2008 14:17
немножечко не соображу как мне правильно написать скрипт для получения 60Гц на экране...

Вот смотрите что я пишу:
код:

SetMTMode(5,4)
fps=23.976
multi=3
newFPS=60
DirectShowSource("Пик Данте [1997, 720p, MKV H.26x, 5Gb].mkv",fps=fps)
num=FramerateNumerator(last)
den=FramerateDenominator(last)
SetMTMode(2,2)
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)
assumeFPS(newFPS).timeStretch(tempo=100.0*newFPS*den/num/multi)

так верно?
в итоге производительности моего E2160 все же не хватает...
воспроизвожу через MPC HomeCinema, декодер CoreAVC 1.7.
соответственно в плеере MPC HC картинка сменяется каждую секунду (грубо получается видео 1fps), а CrystalPlayer его кэширует по 128 кадров (я писал выше).
И самый важный вопрос... - где звук? его нету...

402. MAG79, 11.06.2008 14:57
[HC]HUNTER
Все верно.
multi=3, newFPS=60 значит увеличить частоту в три раза (до 71.928), а затем замедлить вместе со звуком до 60-ти.
есть еще вариант multi=2, newFPS=60: будет @47.952 -> 60 - ускорение видео и звука.

Вопросы:
1. загружаются ли оба ядра на 100% при кэшировании в Crystal Player'е?
2. точно ли используется CoreAVC (может включаться и другой декодер)?
3. попробуй multi=2, newFPS=30. С такими настройками тоже видео останавливается?

Насчет звука: если он в AC3 и используется AC3Filter, то включи в нем вывод иконки в трей. При открытии AVS-скрипта появится эта иконка, через нее и настраивай звук. Есть и другие варианты: как я боролся со звуком (http://forum.ixbt.com/topic.cgi?id=62:12524:286#286) .

403. [HC]HUNTER, 11.06.2008 15:05
1. да
2. да
3. а ведь очень интересный вариант!!! главное - попасть в кратную частоту экрана! Может все и получится и результат вполне удовлетворит!

вопрос: а есть какая-то возможность совместить аппаратные возможности DXVA с подобным софтовым "планарным морфингом" ?
Чтобы поток раскодировался средствами видеокарты, а процессор после нее достраивал лишь недостающие кадры.

404. MAG79, 11.06.2008 15:46
[HC]HUNTER
на вопрос по поводу поглядеть реальную частоту экрана. Вот скрипт, составленный из примеров AviSynth для проверки 72 fps:
код:
FPS=72
Version()
Animate(0,250,"Crop", last,0,0,250,height, last,width-250,0,250,height)
last+reverse(last)
last+last+last
AssumeFPS(FPS)

Если при открытии этого AVS-файла текст на экране будет двигаться без рывков, значит действительно 72 Гц. Если рывки есть - подбирай вручную, меняя значение FPS. Пока не добьешься плавного движения без рывков. То же касается и кратных частот. Например, проверить как будет смотеться 30 fps на 60 Гц мониторе: на монике ставишь рефреш 60, в скрипте FPS=30, запускаешь и отлавливаешь подергивания. Если их нет, поздравляю - значит нашел частоту кадров при которой на данном мониторе изображение не будет подергиваться.

совместить аппаратные возможности DXVA с подобным софтовым "планарным морфингом" ?
к сожалению, в данный момент такой возможности нет, т.к. аппаратное декодирование средствами видеокарты (DXVA) получает кадры уже в видеопамяти, а достать их оттуда в оперативную пямять для передачи на обсчет скрипту просто так не получится. Есть вариант использовать nVidia CUDA. Там есть функции как записи, так и чтения из видеопамяти. Но этого еще никто не реализовал для обсуждаемых программных решений. Если использовать CUDA, то тогда уж не только для распаковки, но и для расчета векторов движения, тем более ролик об этом недавно пробегал по сети. Производительность современных видеокарт в этих задачах во много раз превышает производительность процессоров. Но технология новая, реальных результатов, которые можно было бы пощупать, и тем более использовать, пока нет.
Это я сегодня про CUDA (http://cuda.ixbt.com/cuda.shtml) начитался.
В общем, ответ на вопрос: пока совместить нельзя.

405. [HC]HUNTER, 11.06.2008 16:15
М-да... действительно панель не хочет работать на 72Гц...
Кроме вышеприведенного скрипта это же подтверждает и кнопка на пульте "Info", которая отображает на экране телевизора текущий режим. Сколько бы я ни ставил - 50,60,72,75 - всегда пишет 1920х1080 60Hz.

406. [HC]HUNTER, 13.06.2008 14:38
вот обнаружил непонятку..

Телевизор в режиме 1080р/24 (сам телевизор это тоже подтверждает)
Фильмы 23.976 идут плавно как и положено, но почему-то каждый 5-10 секунд происходит какой-то "дрыц-дрыц"... и дальше снова плавно.
Смотрел в диспетчере задач, в эти моменты ничего не происходит, никаких нагрузок на процессор не возникает.

407. MAG79, 13.06.2008 14:52
[HC]HUNTER
каждый 5-10 секунд происходит какой-то "дрыц-дрыц"

ReClock пробовал? Он избавляет именно от этих синдромов: от редких рывков-подергиваний. Должен помочь. Если интересуют подробности, то достаточно почитать доку от ReClock, там автор все очень подробно расписал от проблемы до способа ее решения.

408. [HC]HUNTER, 13.06.2008 14:56
а в чем может быть их причина?
Ведь телек 24 Гц и само кино 24Гц. Казалось бы - должно быть все идеально.

409. MAG79, 13.06.2008 15:44
[HC]HUNTER
Причина в том, что обычный телевизор при проигрывании видео синхронизирует свою частоту обновления экрана с сигналом. А при воспроизведении видео на мониторе компьютера (и на панеле, видимо тоже) таких средств синхнронизации нет. Частоту задает видеокарта. Приходится решать обратную задачу: синхронизировать частоту кадров фильма, приводить ее к частоте видеокарты. Этим и занимается ReClock.
23,976 fps это 24000/1001, т.е. каждый 1001 кадр будет пропускаться на идеальном мониторе с 24 fps. 1000 кадров это 41,6 сек. Но идеальных мониторов тоже нет, частота 24 fps может чуть-чуть плавать. ReClock все это учитывает и дотягивает частоту видео до частоты видеокарточки.

Привел вольное изложение материала из документации ReClock.
В технических деталях я мог допустить неточности

410. [HC]HUNTER, 13.06.2008 17:39
как-то он загадочно работает...
можно чуточку "по-русски" разъяснить что в нем к чему? к сожалению, в оригинальной документации не могу осилить такой английский текст...

Прежде всего я обратил внимание, что на некоторых файлах он просто зеленый в углу, на некоторых - красный. А на некоторых мигает желтый/красный.

Хоя судя по всему он работает лишь с софтовыми кодеками... опять же мимо аппаратного DXVA...

411. crystallize, 14.06.2008 16:55
Смотрю аниме и старые мультсериалы, а там, знаете даже если видео 25гц, то реально частота периодически опускается до 8гц-ленились авторы много рисовать. И я подумал, бог с ними с оригинальными кадрами, что если в одном скрипте частоту сначала понизить до 8гц, а потом повысить до 60ти?
как это сделать?

412. MAG79, 14.06.2008 19:53
[HC]HUNTER
Да, ReClock не работает совместно с DXVA (вроде бы). Я его с DXVA заводить еще не пробовал.
Зеленая иконка - работает. Желтый и красный - не работает, ему что-то не нравится. Надо нажать на этой иконке, откроется меню настроек, где кроме всего прочего он сообщает, что именно ему не нравится.

crystallize
частоту сначала понизить до 8гц, а потом повысить до 60ти?
Интересная идея. Причем вполне реализуемая.

Понижение частоты кадров с 24 fps до 8 fps путем выкидывания похожих кадров:
код:
tfm()
tdecimate(cycle=3,cycleR=2)

Используется плагин TIVTC (как-то уже упоминал (http://forum.ixbt.com/topic.cgi?id=62:12524:25#25) в этой ветке)

413. crystallize, 16.06.2008 20:56
Надо же предупреждать, что через DirectShowSource не работает, что нужно плагин подгрузить, указать папку где он лежит...
а так СПАСИБО.
Кстааати, а нельзя обойтись параметром delta из MVTools?
он для блоков 8*8 или 16*16

414. MAG79, 17.06.2008 05:46
crystallize
Достаточно библиотеку TIVTC.dll положить в папку plugins в AviSynth. Она будет подгружаться автоматически.
DirectShowSource работает, только для некоторых файлов он не может определить частоту кадров, ему надо явно указывать реальную частоту кадров, например fps=25. Здесь в скриптах это приводилось. См. поиском по слову DirectShowSource.

Параметр delta применяется для указания произвольного расстояния между кадрами. Если это расстояние постоянное, то можно попробовать, и то я пока не представляю как это сделать. А если реальная частота кадров гуляет, а количество дублей кадров отличается от раза к разу, то тут лучше TIVTC.

415. 19w85, 19.06.2008 00:49
Я вот все еще пользуюсь Crystal'ом...и поскольку по цифре он звук выводить не умеет, хотел попробовать послушать 5.1 по аналогу (с последующим аппаратным кодирование в цифру), для проверки подключился просто по аналогу, но сколько я не бился ни со встроенным в него декодером AC3, ни с внешним AC3 Filter (в аналоговом режиме) я не смог добиться вывода звука на тыловые колонки...
Использовал несколько фильмов со звуком 5.1, кристал (при использовании встроенного декодера) отображает, что выводится звук 5.1...по звука на фронтальных колонках понятно, что на них выводится именно только звук с фронтов, а на тылах по всем параметрам звук должен быть, но такое впечатление, что кристал его полностью глушит...

В MPC с AC3 Filter все отлично выводится на 5.1 в аналоговом режиме (просто по SPDIF, соотвественно, тоже все ОК)

Т.е. от кристала я так и не смог добиться 5.1 звука...странно как-то...

MAG79
У тебя в кристале 5.1 нормально выводится?

416. MAG79, 19.06.2008 04:13
19w85
Сейчас на работе, вечером дома посмотрю

Добавление от 19.06.2008 15:48:

Проверил дома:
Видео-файл MKV с дорожкой AC3 5.1 384 Kbps.
1. Crystal Player при открытии файла встроенным аудиодекодером все каналы играет нормально.
2. Открытие из Crystal Player AVS-файла вызывает появление иконки фильтра AC3Filter в трее, звук тоже полноценный.
AVS-скрипт:

код:
DirectShowSource("Гарри Поттер 4 - Кубок огня HD.mkv",fps=23.976)

Попробуй дрова к звуковухе посвежее поставить.

417. 19w85, 19.06.2008 19:35
MAG79
Спасибо за информацию, значит дело скорее всего действительно в дровах (они хоть и последние, но модифицированные для аппаратного кодирования на лету в DD 5.1), для проверки поставлю теперь обычные...
P.S. Если проблема в дровах, странно, что она проявилась только в кристале...

418. MAG79, 20.06.2008 03:46
19w85
я проверял и по аналоговому и по цифровому (COAXIAL) выходам. Во втором случае дрова тоже сами в DD 5.1 сжимают, похоже аппаратно. Акуститка: Microlab H-500D, звук ALC883. Драйвер 5.10.0.5391. Подобную проблеу с молчанием тылов видел тут (http://forum.ixbt.com/topic.cgi?id=12:37212:2681#2681) . Вдруг поможет.

419. Бельмас Олег, 20.06.2008 18:03
Вчера возился опять с плавным проигрыванием дома (Athlon 5000+, ga-ma78g-ds3h, видео встроенное). И УРА! У меня после пробования всяких настроек таки заработало. Фильмы с разрешением 1280x720 играются при ускорении FPS в 2 раза. Загрузка процессора 94-100%, но тормозов нету. Все плавненько. Звук синхронный. Затыков нет.

Что я делал:
1. После неудачной прошивки биоса в мамку gigabyte 690gm-s2h (с целью установки 4-х ядерника под сабжевые задачи)замена мамки на 790gm-ds3h (к стати поменяли с доплатой в 600р без вопросов). На старой мамке 0.5-2 fps и хоть ты что делай. На этой сразу было около 30. Соответственно решил помучиться.
2. Просмотр исключительно через плеер Media Player Classic из klcodec390f.exe.
3. Вывод картинки через Overlay Mixer. Во всех других режимах у меня тормоза (может встроенное видео виновато).
4. Звук. Тут разговор отдельный.

Во первых заметил, что не хватает каналов в звуке - всегда 2. Стал копаться. Вывел иконки от ac3 filter в трей. Получается, что фильтров ac3 2 штуки. Подозреваю, что первый раз звук декодируется графом внутри фильра avithynth, второй раз уже в обычном графе. Все это съедает драгоценное процессорное время. В ac3filter выставил SPDIF, без изменений. И использовать ac3filter и для SPDIF потока. Если этого не сделать - то 1-й экземпляр отрубает SPDIF и занимается декодированием, а второй просто выводит стеро. У меня дома ресивер - звуком полностью занимается он, нефиг процессор занимать.
В такой конфигурации оба фильтра занимаются только пропусканием кодированного потока сквозь себя. Т.е. ac3filter так и остался в 2-х экземплярах, но 2-й ничего не делает судя по его индикатору загрузки. Соответственно проблема:
19w85
Я вот все еще пользуюсь Crystal'ом...и поскольку по цифре он звук выводить не умеет, хотел попробовать послушать 5.1 по аналогу (с последующим аппаратным кодирование в цифру), для проверки подключился просто по аналогу, но сколько я не бился ни со встроенным в него декодером AC3, ни с внешним AC3 Filter (в аналоговом режиме) я не смог добиться вывода звука на тыловые колонки...
Использовал несколько фильмов со звуком 5.1, кристал (при использовании встроенного декодера) отображает, что выводится звук 5.1...по звука на фронтальных колонках понятно, что на них выводится именно только звук с фронтов, а на тылах по всем параметрам звук должен быть, но такое впечатление, что кристал его полностью глушит...

В MPC с AC3 Filter все отлично выводится на 5.1 в аналоговом режиме (просто по SPDIF, соотвественно, тоже все ОК)

Т.е. от кристала я так и не смог добиться 5.1 звука...странно как-то...


Может быть тоже связана с тем, что звук декодируется 2 раза.

Вот с такими настройками все работает. На пределе конечно, но работает.
Более того, на работе с такими настройками на рабочей машине (q6600, ati x1800, мамка p35-ds3l) увеличение в 2 раза кадров на фильмах FullHD 1920х1080 тоже заработало - загрузка на уровне 70-80%. Равномерно на всех ядрах.

Вот скрипт, которым я пользуюсь:

SetMTMode(5,4)
fps=23.97
multi=2
DirectShowSource("TMNT.mkv",fps=fps)
num=FramerateNumerator(last)
den=FramerateDenominator(last)
SetMTMode(2,4)
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)

ЗЫ: Вчера смотрел чужого 720р с эффектом плавности - класс! честно говоря не понимаю, как вообще на больших телеках народ без повышения кадров смотрит фильмы - все де:ргается, и нифига только не видно, по мне так выглядит это так, как будто разрешение уменьшается из-за дерганости. Надеюсь моя информация кому-то сможет помочь.

MAG79 еще раз отдельное спасибо за ветку!

420. MAG79, 20.06.2008 20:13
Бельмас Олег
Пожалуйста. Учимся друг у друга.

Ты ведь тоже хорошую идею подкинул... Я сейчас поигрался настройками AC3Filter и смог воспроизвести двойную иконку в трее. Ты оказался совершено прав насчет внутреннего и внешнего DirectShow-графа. Достаточно октрыть настройки обоих загрузившихся AC3Fillter'ов, чтобы увидеть в окне Decoder info информацию о входном и выходном формате. В частности у меня в одном AC3Filter вышло:
Input format: AC3 - 48000
User format: PCM16 3/2.1 (5.1) 0
Output format: PCM16 3/2.1 (5.1) 48000


а во втором:
Input format: PCM16 3/2.1 (5.1) 48000
User format: PCM16 3/2.1 (5.1) 0
Output format: PCM16 3/2.1 (5.1) 48000


В этом окне и другая полезная информация есть.

Вызов второго фильтра включается отмечанием галки PCM на вкладке System.
Кстати, так и буферизацию классно наблюдать. При открытых окнах настройки обоих фильтров при нажатии на паузу видно, что один фильтр останавливается (из внешнего графа), а второй еще секунды 2 колышется (то бишь из внутреннего графа). А буфер звука стало быть 2 секунды.

Кстати, двойная иконка и двойной DirectShow-граф наблюдаются при открытии AVS-скрипта, в котором исходный видео-файл открывается через DirectShowSource. Если открывать другой функцией, например, AVISource для AVI-файлов, то иконка у меня получается одна.

19w85
Соответственно, вылечить молчание тыловых колонок и двойную иконку AC3Filter'а можно попробовать, отключив галку PCM.

421. 19w85, 20.06.2008 20:47
цитата:
MAG79:
Соответственно, вылечить молчание тыловых колонок и двойную иконку AC3Filter'а можно попробовать, отключив галку PCM.
Попробовал, не помогло...найду время и поставлю стандартные дрова для звука на чистую систему может поможет...

422. sashaz, 22.06.2008 04:23
Понимаю, что здесь нет автора MVTools, и обсуждается только использование. Но выскажу мысль, т.к. не знаю, где еще это обсуждается.

Имеем поток кадров:

A B C D …

Нужно между кадрами В и С вставить кадр В1. Для этого рассчитываем вектор от В к А (длина вектора 1 кадр и он обратный), потом от С к D (также длина 1 кадр, но прямой). Потом эти вектора как-то экстраполируются и усредняются на полкадра (в начальной частоте кадров). Ну, или рассчитывается вектор В-С (тогда не понятны термины прямой и обратный).

Дальше, когда будем рассчитывать промежуточный кадр С1 (между С и D) у нас уже есть обратный вектор, он “обратен” прямому из предыдущего шага цикла.

В любом случае векторов должно быть равно столько же как число кадров, а не в 2 раза больше.
Не считает ли алгоритм лишнее. Попробовал разобраться в исходнике, но это очень сложно.

423. MAG79, 22.06.2008 09:28
sashaz
Приветствую. Смотрю, Вы решили разобраться в алгоритме расчета кадров.

рассчитывается вектор В-С
Да. В расчете векторов (прямых и обратных) участвуют всего два кадра: текущий и следующий.

Алгоритм работы, как его понимаю я:
Некоторая избыточность в алгоритме присутствует. Но она вполне оправдана. Прямые вектора - это вектора перемещения блоков при превращении текущего кадра в следующий. Обратные вектора - превращение следующего кадра в текущий. Рассмотрим два кадра, между которыми надо расчитать промежуточный кадр. Назовем текущий кадр начальным, а следующий конечным. Из-за того, что поиск производится по блокам, то вектора движения блоков исходного кадра не совпадут один-в-один с обратными векторами движения блоков конечного кадра. Думаю, это понятно. Наличие двух полей векторов (прямых и обратных) позволяет решить сразу две задачи:
1. Получить более точные движения каждого пиксела от начального кадра к конечному.
2. Возможность определения маски прерывностей (области перекрывания объектов), которую можно использовать для устранения артефактов на границах движущихся объектов.


Автор MVTools (Fizick) конечно, мог бы рассказать подробнее. Но только если вопрос будет задан более конкретно. Что именно Вы хотите ему предложить? Его можно найти в ветке Экстремальный Ависинт (AviSynth) (http://forum.ixbt.com/topic.cgi?id=29:9331)

424. TheProfessor, 22.06.2008 18:57
Всем здравствуйте, может быть немного не по теме, но помогите люди добрые.
Вот вообщем то в чем состоит проблема: для просмотра HD фильмов на компьютере решил выбрать crystal player, так как с остальными плеерами кино тормозит сильнее. Но в кристале проблемы со звуком... Вообщем то голосов не слышно, все эффекты слышны прекрасно, а диалоги очень тихо. Как я понимаю, как то не так раскидывается пятиканальный звук. Так у меня во всех HD фильмах на кристале. А вот если открываю тот же фильм только, но скажем с помощью GOM плеера, то звук идет прекрасно, но идет страшная задержка, вообщем смотреть невозможно. Пытался что то сделать в настройках кристала,но нифига ((. Драйвера у меня : K-Lite Codec Pack 2.72 Full. Пытался там покапаться, но аналогично (. Даже не знаю, что делать, подскажите пожалуйста.
Моя система: 2.4Ghz, DDR1гб, Radeon x800 256mb, звуковая creative audigy 2, колонки Sven HT-480
Заранее спасибо!

425. MAG79, 23.06.2008 05:21
TheProfessor
Рекомендую попробовать Media Player Classic HomeCinema (MPC-HC (http://mpc-hc.sourceforge.net/) ).
Crystal Player немного для другого заточен - в основном, для работы не слабых конфигурациях. И встроенного декодера H.264 не имеет. MPC-HC имеет встроенный H.264 декодер (подавляющее большинство HD фильмов имеет именно этот формат), не требует установки (просто копируется), имеет остальные необходимые декодеры на борту, умеет использовать аппаратное ускорение при декодировании. Правда на X800 аппаратное декодирование не включится - эта карта не поддерживает аппаратную распаковку H.264. Тем не менее, встроенный программный декодер на 2,4 ГГц вполне справится с FullHD. Для AC3-звука там имспользуется AC3Filter, в котором можно легко настроить громкость каждого канала в отдельности.

426. MAG79, 23.06.2008 06:22
Полезным будет почитать статью Практическое тестирование видеокарт AMD и NVIDIA в задачах декодирования видеоданных (http://www.ixbt.com/video3/video_dec_2007.shtml) .

Вот диаграмма из статьи:
600x400, 45,5Kb

Это самый тяжелый для распаковки ролик (1920x1080, 30 fps, H.264, 16 Mb/s).
Данные были получены на Athlon 64 X2 4600+ (2,4 ГГц).
Данный процессор при декодировании видео не загружается более 70%.

К сообщению приложены файлы: 1.png, 600x400, 46Кb

427. MAG79, 24.06.2008 19:15
Приведу еще две диаграммы собственных замеров.
Я, как и планировал (http://forum.ixbt.com/topic.cgi?id=62:12524:380#380) , провел тест скорости декодирования FullHD-видео на своем C2Q.

Первый график - декодирование без отрисовки (Null Renderrer).
515x409, 14,9Kb
Сложность декодирования зависит от битрейта. Прирост производительности достигает 65% при уменьшении битрейта с 20000 kbps до 2000 kbps. Результаты Lossless-фрагмента не совсем корректны, т.к. для него узким местом явилась уже скорость чтения с винчестера, поэтому результаты получились заниженными, оставлены на графике для сведения.

Второй график - декодирование с последующей отрисовкой в VMR9.
515x409, 14,5Kb
При отрисовке видимо установлен какой-то барьер, равный 115 dfps. Загрузка процессора далеко не 100%. Здесь прирост производительности достигает всего 11% при уменьшении битрейта с 20000 kbps до 2000 kbps. Что интересно, если судить по загрузке процессора, то ему легче декодировать видео, сжатое в один проход с битрейтом 5000, чем сжатое в два прохода, но с битрейтом 3946 kbps. Скорее всего оказали влияние дополнительные настройки сжатия.

Для декодировании использовался CoreAVC 1.7.0.

Добавление от 25.06.2008 09:20:

Пояснения к графикам:
lossless - алгоритм сжатия без потерь
VBR 2p - двухпроходной алгоритм с указанным битрейтом
1 pass - (ABR) однопроходной алгоритм с указанным битрейтом
CQP - однопроходной с постоянным качеством (указывается коэф. квантования)
CRF - однопроходной с постоянным качеством (указывается коэф. ratefactor)


Я обычно пользуюсь CQP с коэффициентом 26. Это один из быстрых алгоритмов сжатия, который сжимает за один проход, при этом сохраняет исходное качество и экономит битрейт на простых сценах. На графиках видно, что файл, сжатый CQP второй по сложности для процессора при его декодировании.

Выводы:
1. С2Q Q6600 вполне достаточно для декодирования x264, 1080p, 100 fps с потоком вплоть до 20 000 kbps.
2. Применение более низкого битрейта (например, 5 000 kbps) позволяет получить уже 200 fps на этом процессоре. Для обеспечения воспроизведения с частотой кадров 100 fps, видимо будет достаточно двухъядерного процессора 2,4 ГГц.
3. При декодировании FullHD без отрисовки (без копирования в видео-память) никаких барьеров нет - процессор работает на максимуме своих возможностей. А при декодировании с отрисовкой явно виден барьер в 115 dfps. Является ли причиной барьера пропускная способность памяти, либо что-то другое - это еще предстоит выяснить.

К сообщению приложены файлы: 1.png, 515x409, 15Кb, 2.png, 515x409, 15Кb

428. MAG79, 26.06.2008 14:48
Немного разовью тему насчет аппаратной поддержки сабжа видеокартами в будущем. Я считаю, что это уже скоро случится.
Вот сегодняшняя новость: AMD Radeon HD 4800 — перекодирование HD-видео в 4 потока возможно в реальном режиме времени (http://www.ixbt.com/news/all/index.shtml?10/66/73) . Правда по тексту приведена цифра скромнее: 1,8 реалтайма при сжатии одного ролика. Упоминается программа PowerDirector 7 Ultra, которая уже умеет сжимать видео аппаратно средствами видеокарты.

На прошлой неделе в статье про GeForce GTX 280 (http://www.ixbt.com/video3/gt200-part1.shtml) утверждалось, что компания Elemental Technologies смогла пережать HD ролик на этой видеокарте быстрее режима реального времени. Даже картинка есть:
540x460, 5,5Kb
Программный продукт называется RapiHD (http://www.elementaltechnologies.com/how_it_works.php) . По ссылке есть наглядный ролик, показывающий преимущества распараллеливания.
Действительно, центральные процессоры сейчас имеют 4 ядра, а видеокарты - до 240 ядер.

Расчет кадров для повышения плавности видео включает в себя поиск векторов движения. Этот же шаг выполняется и при (пере)кодировании. Так что задачи родственные. Вполне можно ожидать появления программ, показывающих видео с расчетом дополнительных кадров прямо на видеокарте.

429. Сергей Фролов, 26.06.2008 17:42
MAG79
Да, где уж тут промежуточные кадры посчитать, если только прямое декодирование потока 20мб/c дает всего 103 fps

430. MAG79, 27.06.2008 06:55
Сергей Фролов
Спасибо, что напомнили. Действительно, нужна еще одна оговорка:
Битрейты указаны для родной частоты кадров. У тестового ролика test_cube.mp4 частота кадров составляет 23,976 кадров/сек.
Соответственно при проигрывании на скорости 103 fps поток возрастает в 103/23,976 = 4,3 раза. Т.е. реальный битрейт будет уже не 18800, а 18800*4,3 = 80764 kbps.

431. Сергей Фролов, 27.06.2008 22:32
И тем не менее запаса нет.

432. kSL, 28.06.2008 14:40
MAG79 для просмотра 720р будет мало е4500@2.2 ?
если потянет, то каким лучше скриптом воспользоваться?

433. MAG79, 28.06.2008 19:17
kSL
Да, чуть-чуть маловато.
Для поднятия плавности с 24 до 75 fps нужен двухъядерник 3,32 ГГц (http://forum.ixbt.com/topic.cgi?id=62:12524:321#321) .
Могу предложить попробовать последний скрипт по ссылке. Только указывать ему не multi=3, newFPS=77, а что-то поменьше, например multi=2, newFPS=48 (или 50 для 25 fps).

Сергей Фролов
Запаса для чего?
Для того, чтобы считать промежуточные кадры надо максимум 30 fps для чтения исходника. Это в три с лишним раза меньше, чем 103 fps. Соответственно, нагрузка на процессор будет в 3 раза меньше. Вот он запас для расчета кадров и появляется.

Я же делал замеры максимальной производительности при чтении файлов с высокой частотой кадров для случая, когда промежуточные кадры рассчитываются заранее и результат сохраняется в файл. Было интересно посмотреть на каком компьютере такой файл пойдет в реальном времени. При нынешних частотах мониторов 60-75 Гц и соответствующей частоте кадров у файла для данной задачи процессора Q6600 более чем достаточно.

434. TheProfessor, 28.06.2008 19:43
MPC:HC на нем у меня на компе, как ни странно, HD лагает, а на кристале нет. Все эффекты на первом отключены и все равно лагает, а на кристале ваще без лагов. Мне бы звук на кристале настроить норм и все... Можно ли это сделать? Помогите пожалуйста...

435. MAG79, 29.06.2008 09:17
TheProfessor
Options - Decompressors - убрать галку Crystal AC3 Audio Decoder. Тогда будет использоваться внешний декодер, установленный в системе. У меня это AC3Filter, где громкость по каналам точно можно настроить.

436. GL, 29.06.2008 14:16
посмотрел. попробовал скрипты с шапки и далее... не знаю как так получается у меня, но всегда явно видны артефакты искаженной картинки. причем скрипты эти применялись не для просмотра, а для пережатия качественного BRipa с 1080 на 720 с удвоением и утроением частоты. проц Q6600.
как же тогда повысить плавность без артефактов?

437. 19w85, 29.06.2008 14:28
цитата:
MAG79:
TheProfessor
Options - Decompressors - убрать галку Crystal AC3 Audio Decoder. Тогда будет использоваться внешний декодер, установленный в системе. У меня это AC3Filter, где громкость по каналам точно можно настроить.
Я вот такой вариант давно попробовал, но при отключинии встроенного декодера у меня Кристал определяет режим как стерео, а не 5.1...принудительно выставление 5.1 ничего не дает...посмотрим как у TheProfessor будет...

438. MAG79, 29.06.2008 14:55
GL
как же тогда повысить плавность без артефактов?
скрипты настроены на скорость... поэтому и называются MVTools_fast.
Для повышения качества можно попробовать следующее:
1. Дополнить расчет сдвинутым клипом для повышения точности поиска векторов (см. MVFlowFps2).
2. Уменьшить размер блоков, увеличить точность поиска, при поиске использовать цветовую составляющую (подробнее (http://forum.ixbt.com/topic.cgi?id=62:12524:79#79) ).
3. Использовать маску разрывности - параметры mask и ml (подробнее (http://forum.ixbt.com/topic.cgi?id=62:12524:105#105) ).

Все эти меры приведут к падению скорости работы скрипта.
Я пока настраиваю скрипт на скорость, повышением качества собираюсь заняться позже.

439. wa1111, 29.06.2008 16:05
вооот в новостях новая фишка замелькала -не только аппаратное ускорение видео на видеокартуперебросить,но и расчеты с процессоров так как на видюхах их не 2 или 4 а и по 256.....поэтому перекодировка идет на порядок(10раз) как минимум быстрее.....значит скоро будем увеличивать число кадров используя не проц а видюху(чую что именно такой аллгоритм в телеках с dnm при 1080р)

440. GL, 29.06.2008 19:17
про использовать видео карту в различных расчетах тока в новостях и пишут. реально работающего софта (качественного) что для рендеринга 3Д, что для всего остального (типа обработки видео) тока одни ссылки в новостях.. и уже не первый год.
MAG79
я не программист, сложно разобраться в том, что не понимаю.
буду ждать когда более умная голова найдет решение. пока меня интересует повысить частоту с максимальным качеством для пережатия. мой проц в реальном времени HD видео не тянет..

441. TheProfessor, 29.06.2008 20:06
MAG79 - это я естественно пробовал делать...но нифига. Вообщем тут, я думаю, дело в дровах. Я когда устанавливал полный набор k-lite codec pack, то все норм открывал, а когда не устанавливал Halli Media Splitter то не проигрывалось вообще. пробовал в настройках этого сплиттера покапаться дак там вообще ничего толком ностроить нельзя...( хелп.

442. MAG79, 01.07.2008 11:09
Есть идея.
Как Вы смотрите на создание тестового пакета, который сообщал бы:
1. Какое разрешение на данном компьютере пойдет с двух- и трех-кратным повышением плавности.
2. Какое время необходимо для предварительного расчета часа видео с конкретным разрешением.
В добавок, можно было бы собрать статистику по различным конфигурациям компьютеров.

У меня маячит отпуск и я мог бы сделать такой тест на основе открытого тестового пакета x264 HD Benchmark 2 (результаты тестов (http://forums.overclockers.ru/viewtopic.php?t=258158) ). Тест несложный для запуска: требуется сперва скачать архив, распаковать, затем запустить файлик, ввести имя теста и дождаться окончания процесса тестирования, которое занимает в зависимости от мощности компьютера от 10 минут и более.

Пока вижу три стандартных разрешения (PAL, 720p и 1080р) и два варианта увеличения плавности (x2 и x3). Что думаете по этому поводу? Есть среди читатей ветки желающие скачать ~30 МБ и протестировать свои компьютеры?
Если да, то на выходных приступлю к созданию такого теста.

443. Сергей Фролов, 01.07.2008 12:17
MAG79
Сергей Фролов
Запаса для чего?
Для того, чтобы считать промежуточные кадры надо максимум 30 fps для чтения исходника. Это в три с лишним раза меньше, чем 103 fps. Соответственно, нагрузка на процессор будет в 3 раза меньше. Вот он запас для расчета кадров и появляется.


Я не так рассуждаю. Допустим, расчет уже сделан и кадров имеется всего - 100. Тогда весь ресурс процессора будет затрачен на вывод и на расчет не остается.

444. ar1997, 01.07.2008 13:31
цитата:
У меня маячит отпуск и я мог бы сделать такой тест...
Как бы сделать еще такое дополнение к такому пакету, (или просто автономную программку), чтобы программка генерила "правильный" для данного компьютера avs-скрипт, с заданным коэффициентом, с заданным размером изображения и т д. (Возможно с учетом результатов вешеупомянутого теста).
Суть в том, что самому писать\редактировать avs скрипт часто в лом. Хочется чтобы этот процесс был максимально автоматизирован, в идеале до одного нажатия мышью, скажем по правой кнопке - контекстное меню: "Создать скрипт плавности...".

445. MAG79, 01.07.2008 14:22
Сергей Фролов
100 кадров/сек - это уже плавно. Для такого видео нет cмысла расчитывать дополнительные кадры. Такое видео надо смотреть (декодироавание и вывод) безо всяких дополнительных расчетов.

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

446. Alexis V M, 01.07.2008 15:32
цитата:
MAG79:
Сергей Фролов
я имел в виду Гигабит: Г - 230, б - бит. (Г заглавная, б строчная. Так принято обозначать. См. например, таблицу внизу статьи (http://www.artlebedev.ru/kovodstvo/sections/84/) ). Стараюсь придерживаться этих правил обозначения, иначе в видео- и аудио- битрейтах, размерах файлов и пропускных способностях можно запутаться, если не следить за регистром.
Ой, вот как раз если биты обозначать одной буквой б, а не бит (а в ГОСТе -- именно бит) и возникает путаница. Заглавная Б для байтов -- вроде правильно, но и строчную часто пишут.

И обозначения лучше смотреть в ГОСТе, а не у Лебедева. Здесь: ru.wikipedia.org/wiki/Двоичные_приставки (http://ru.wikipedia.org/wiki/Двоичные_приставки) ссылка на ГОСТ есть.

(В ГОСТе, правда, совсем другой, полиграфический ляп: там пишут, что % [знак процента] якобы надо отбивать пробелом.)

Добавление от 01.07.2008 15:34:

цитата:
MAG79:
23,976 fps это 24000/1001
Кстати, а почему в NTSC не точно 30 кадров в секунду?

447. TheProfessor, 01.07.2008 16:22
Помогите все таки со звуком разобраться пожалуйста, а то я уже замучался. Не хочет у меня в кристал плеере звук нормально проигрываться... может быть дело в драйверах, потому что в настройках самого плеера все перерыл. У меня просто во всех .mkv видео, если открываю через crystal, не слышно голоса (( я уже и разные кодеки ставил и драйвера звуковухи переустанавливал, но ничего не помогло.

448. Бельмас Олег, 01.07.2008 17:01
За тестовый скрипт +1

449. GL, 01.07.2008 17:08
MAG79 Есть идея.

без проблем.

ar1997 скажем по правой кнопке - контекстное меню: "Создать скрипт плавности...".

и далее "запустить скрипт на воспроизведение"...

450. Сергей Фролов, 01.07.2008 18:53
MAG79
Сергей Фролов
100 кадров/сек - это уже плавно. Для такого видео нет cмысла расчитывать дополнительные кадры. Такое видео надо смотреть (декодироавание и вывод) безо всяких дополнительных расчетов.


Не поняли меня. Исходник 24р, якобы переделали на лету в 100, выводим. Уже на вывод тратим 103, не осталось ресурсов на декодирование, значит посылка не верна.

451. MAG79, 02.07.2008 04:03
TheProfessor
Я уже не знаю, как другими словами сказать: включай вывод иконки AC3Filter в трей и оттуда регулируй громкость каналов. Глянь, что в поле Decoder Info пишется. Последи за индикаторами уровней громкости каждого канала.


Alexis V M
в ГОСТе -- именно бит
ок. Тогда "Гбит" будет правильней, чем "Гб". К сожалению, такая изместная программа как SiSoftware Sandra обозначает Гигабиты/сек как "Гб/с".

Сергей Фролов
...прямое декодирование потока 20мб/c дает всего 103 fps...
...Уже на вывод тратим 103, не осталось ресурсов на декодирование...

Не надо коверкать факты (http://forum.ixbt.com/topic.cgi?id=62:12524:427#427) . Декодирование предшествует расчету кадров на лету. 103 fps - это максимальная скорость декодирования 1080p (с потоком VBR 18800 кбит/сек на родной частоте кадров 23,976). Загрузка процессора при этом 95%. Грубо можно принять за 100. Тогда декодирование каждого кадра в среднем занимает 1/103 = 0,0097 сек.

...Исходник 24р, якобы переделали на лету в 100, выводим...
Хорошо, считаем процессорное время по данному варианту:
1. Декодирование 24p: 24*0,0097 = 0,233 сек.
2. На расчет доп. кадров на лету (увеличение до 100) остается 1-0,233 = 0,767 сек.

Если имелся в виду предварительный расчет, то он происходит с последующим сохранением результата в файл. Здесь скорость работы скрипта не важна (хоть сутки часовой фильм сжимай). Последуйщий просмотр полученного файла дополнительного расчета уже не требует. Такой файл можно смотреть на компьютере обычным плеером, скрипт уже не нужен.

Бельмас Олег, GL
Раз интерес есть, значит тестовому пакету скорее всего быть

452. Tualin, 02.07.2008 19:58
это снова я, но уже по другому поводу.

есть некое видео (на dvd), которое имеет частоту 15 кадров всего.

мне надо это видео перекодировать в avi так, чтобы было 30 кадров, но с хорошим просчётом для плавности движения между ними

поэтому, прошу посоветовать самый лучший инструментарий (скорость работы не важна), чтобы получить наиболее качественный результат
а дальше уже подумаю над скриптом

453. MAG79, 03.07.2008 04:16
Tualin
Рекомендую почитать статью Замедление видео (http://www.ixbt.com/divideo/digital-video-guide/5-2-2-time.shtml) . В статье очень доходчиво описывается алгоритм и сравниваются несколько программ для расчета промежуточных кадров. Вот выдержка из моего резюме (http://forum.ixbt.com/topic.cgi?id=62:12524:283#283) по статье:
цитата (MAG79):
Мой вывод после прочтения статьи и просмотра видеороликов к ней: Все-таки Twixtor и MVTools - это два лучших программных решения задачи качественного расчета промежуточных кадров.
Twixtor я еще не использовал, а вот по MVTools есть что посоветовать.

Начну с того, что надо подробнее указать параметры исходного видео. 15 кадров/сек - это не стандартная частота кадров для DVD. Нужно еще знать разрешение. В идеале было бы неплохо, если бы Вы мне на электронку небольшой кусочек этого видео скинули бы (или выложили в общий доступ). Я бы прямо на этом кусочке подобрал бы подходящие параметры. Пока, к сожалению, это процесс индивидуальный для видео разного характера.

454. Сергей Фролов, 03.07.2008 17:36
MAG79
Тогда декодирование каждого кадра в среднем занимает 1/103 = 0,0097 сек.

Сдаюсь
Хотя, наверное, не все время идет на декодирование, это же подтверждают и ваши диаграммы "декодирование/отрисовка"

455. 19w85, 04.07.2008 13:10
цитата:
Есть среди читателей ветки желающие скачать ~30 МБ и протестировать свои компьютеры?
Я бы с радостью потестил свой комп

Добавление от 04.07.2008 13:52:

цитата:
MAG79:
TheProfessor
Я уже не знаю, как другими словами сказать: включай вывод иконки AC3Filter в трей и оттуда регулируй громкость каналов. Глянь, что в поле Decoder Info пишется. Последи за индикаторами уровней громкости каждого канала.
Это не поможет, при отключении встроенного декодера Кристала, звук выводится через AC3Filter (но Кристал тогда автоматически выставляет режим стерео, приходится принудительно ставить 5.1) и в AC3Filter по входному и выходному уровню всех 5.1 каналов все ОК, а вот в кристале выводится и центр очень-очень тихо (TheProfessor наверное громкость не докрутил, чтобы его услышать), а тылы вообще не выводятся (естественно предварительно отключается пролоджик на ресивере и раскладка 2.0 в 5.1 на звуковой карте)

P.S. Проверил вывод аналогового звука 5.1 из WinDVD и там все ОК, так что виноват Кристал, а не звуковая карта и т.п.

456. TheProfessor, 05.07.2008 11:51
Вообщем сейчас вроде бы все нормально настроил... просто раньше всегда когда открывал фильмы с кристала он сбивал настройки AC3, я просто все дрова переустановил, кристал реинсталил, Все настроил и теперь ок. Теперь нормально выводится пятиканальный звук...

19w85
Есть среди читателей ветки желающие скачать ~30 МБ и протестировать свои компьютеры?
Я бы впринципе не прочь

457. superlewa, 08.07.2008 21:01
Читал я тут читал, про то,что частота кадров кино и тв не сходятся- вот изображение и дергатся. Это понятно.
Но почему же тогда дергается картинка на LCD телевизоре при панорамировании камеры ,если на видеокарте выставляю 24Гц (ATI 2600 с драйверами 8.5) и пытаюсь смотреть файл Video: MPEG4 Video (H264) 1920x1080 23.98fps (http://hdtracker.ru/details.php?id=928). Телевизор "сообщает",что режим 1920x1080@24. Так почему дергается???

458. MAG79, 09.07.2008 05:09
superlewa
почему дергается???
1. Возможно само видео содержит неравномерное движение при панаромировании. Проверить просто: найти место, где изображение дергается и посмотреть его покадрово, например, в VirtulDub'е. Для равномерного движения каждый кадр должен сдвигаться на равное расстояние относительно предыдущего.
2. Возможно это LCD-телек в режиме 24 fps показывает неравномерно. Проверить просто: запустить скрипт с движением (http://forum.ixbt.com/topic.cgi?id=62:12524:404#404) , указав FPS=24.

P.S. Часто помогает изменение частоты видео для достижения кратности частоте монитора. Для этой цели существует программа ReClock (http://forum.ixbt.com/topic.cgi?id=62:12524:310#310) . Она изменяет частоту кадров без расчета промежуточных кадров. Это приводит к изменению длительности видео. Можно изменить частоту кадров без изменения длительности с расчетом промежуточных кадров (поднять частоту для повышения плавности) рассматриваемымми здесь алгоритмами, например MVFlowFps из MVTools.

459. superlewa, 09.07.2008 13:59

написано 22.05.2008 11:43
заряжаю скрипт на фильмах с разрешением 1280х720@23.8:
код
--------------------------------------------------------------------------------
fps=23.976
multi=2
DirectShowSource("filename",fps=fps)
num=FramerateNumerator(last)
den=FramerateDenominator(last)
global idx = 10 # глобальная подсказка от IanB
mt("""
idx = idx + 1
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = idx)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = idx)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=idx)
""",threads=2,splitvertical=true)

Так вот на работе на машине Quad6600 2.4Гц все офигенно прекрасно работает, загрузка всех ядер равномерная, больше 60% не поднимается. 48 кадров я получаю - плавность уже класная. Смотреть одно удовольствие.
-----------------------------------------------------------

-А у меня выдается сообщение : "Wrong avisynth version.Use avisynth 2.6 or greater or modified avisynth 2.5.6" В Сети нашел только 2.5.7 -его и ставил...

А скрипты со строкой "SetMTMode...." ругаются "Script error-there is not function named "SetMTMode"
Что я делаю не так?

460. MAG79, 10.07.2008 07:44
superlewa
Что я делаю не так?
Для работы скриптов с MVFlowFps требуется наличие установленных следующих программ последних версий: AviSynth 2.5.7, MT 0.7, MVTools 1.9.5.7.
Все они бесплатные. Качать с официальных сайтов, инструкцию по установке и настройке см. в первом сообщении темы.

461. evilone, 17.07.2008 23:31
Сори за маленький офтоп, но как потребителю интересно где можно найти фильмы переделанные по технологии DNM? может кто-то уже что-то делал? Выложите на торент - рейнтинг прыгнет 100% да и людям приятно будет.
Пасиб

462. MAG79, 18.07.2008 04:22
Я встречал в сети черезстрочные тестовые ролики 1080i с частотой 30 fps. Такие параметры поддерживаются стандартом HD Video. При просмотре на компьютере с BOB-подобным деинтерлейсером получается 60 кадров/сек. Движения очень плавные.

Готовые фильмы с высокой частотой кадров (более 30 fps) будут выходить за рамки стандартов. Такие фильмы даже не каждый компьютер в состоянии воспроизвести (не говоря уже о бытовых плеерах). Поэтому лучшим выходом будет делать такие фильмы самостоятельно. У меня сейчас в стадии тестирования находится бенчмарк алгоритма повышения плавности расчетом прожуточных кадров. Я окрестил его MVFlowFPS HD Test. Там один из тестов - это создание фильма с увеличенным количеством кадров из стандартного фильма. Как будет готово, можно будет взять алгоритм прямо оттуда и пользоваться им для любых видео-файлов.

Небольшой отрывок с высокой частотой кадров я выкладывал - см. на первых страницах ветки.

463. superlewa, 18.07.2008 10:49
А как быть с тем,то простое удвоение (или утроение)частоты кадров с 24 до 48 или 72 не будет совпадать со стандартными частотами развертки 24\25\30\50\60 на панелях? Пропадет стробирование -появятся рывки?

464. djonline, 18.07.2008 13:46
Стандарт 1080p/60 то есть, и изначально предусматривался, но только фильмов в нём нет и неизвестно когда будут.

465. MAG79, 18.07.2008 16:12
superlewa
В принципе, можно использовать еще множители 1,5 и 2/3. В первом случае в видеопоследовательности будут сохраняться каждый второй исходный кадр, во втором случае - каждый третий, остальные кадры будут достраиваться.
Тогда в случае с фильмом 24 fps и панелью с разверткой 60 Гц можно использовать множители 2/3 и 4x, что в итоге даст множитель 8/3 и результат в 64 fps. Далее замедлить такое видео вместе со звуком до 60 fps, т.е. на 6,25%.

djonline
Спасибо. Буду иметь в виду. Глядишь, может встречу видео и с 60 fps.

466. VictorLS, 19.07.2008 13:28
superlewa
логично.
К счастью, моя панель "держит" 47,952 Гц.
Все очень плавно.
Benq FP241 (24", 1920х1200), #1018 (http://forum.ixbt.com/topic.cgi?id=28:20661:1018#1018)
До применения AVIsynth ни я, ни мой комп еще не дорос

467. superlewa, 19.07.2008 13:45
VictorLS
До применения AVIsynth ни я, ни мой комп еще не дорос
-----------------------------------------------------
А где же Вы 47,952 берете?

К счастью, моя панель "держит" 47,952 Гц.
Все очень плавно.
Benq FP241 (24", 1920х1200), #1018
----------------------------------------------
Так у вас не панель "держит" - а "панель" держит. У Вас это 24" монитор- а у меня 52" панель

468. VictorLS, 19.07.2008 13:56
superlewa
тогда тем более должна "держать"

469. Hiker, 19.07.2008 14:28
1. Подскажите плиз. Возможно ли с удвоением кадров видеть нормальные субтитры.
субтитры почему то отключаются если запускаю фильм через скрипт с удвоением.
Если же включаю субтитры в ffdshow, то похоже они накладываются на видео до удвоения частоты. в результате их невозможно читать на двигающихся сценах (весь фильм Монстро), прыгают и размываются. Подозреваю можно что-то написать в скрипте, но не силен...
(пробовал только на mkv файлах)

470. MAG79, 19.07.2008 15:21
Hiker
Субтитры можно подключить через ffdShow, только включить их не в декордере, а в ffdShow raw video decoder. Заставить его включаться в MPC можно например так: View - Options - External Filters - Add Filter - ffdshow raw video filter - выбрать для него Prefer. Тогда в трее будет две иконки ffdShow video: одна - декодер, вторая - raw. raw отрабатывает уже после увеличения количества кадров, поэтому субтитры будут накладываться корректно. Проблема такого подхода заключается в том, что настройки ffdShow сохраняются одни и для декодера и для raw. Если включить субтирты и сохранить настрйки, то при последующем открытии субтитры будут накладываться и в декодере и в raw. Поэтому приходится выключать субтитры, сохраняться. Снова открывать файл, и уже после этого включать субтитры только в raw.
Вот такой непростой, но работающий способ.

471. Hiker, 19.07.2008 16:34
Спасибо, но из mkv в этом случае не показываются субтитры. только из внешнего файла.

Еще никак не могу побороть то что открывается два haali splitter-a и если в одном поменять язык, то получаем закадровый перевод, если в обоих - эхо.

472. MAG79, 20.07.2008 03:14
Hiker
У меня тоже в трее открывается два Haali-сплиттера, но насколько я мог заметить, судя по графикам текущих битрейтов, один управляет звуком, второй - видео. Управляю выбором звуковых дорожек из сплиттера с графиком аудиобитрейта. Эхо ни разу не наблюдал.

473. evilone, 20.07.2008 03:19
народ поддержите темку на тамошнем трекере
http://torrents.ru/forum/viewtopic.php?t=1004039
хорошим релизом в DNM качестве кто уже делал для себя киношку какую-то для затравки рядовому пользователю так сказать
авось глядишь и пойдет тема.

474. Viewmax, 23.07.2008 19:36
Привет форумчане!
Буквально на днях подключил ноут через HDMI к LCD TV и настроил все как на www.hdtv.net.ua
Картинка нравится, но заметно легкое подергивание. Мой единственный выход MVTools или есть еще какие-то стандартные методы? Я новичок в этом деле и поэтому ничего по сути не знаю...
Заранее спасибо.

475. MAG79, 24.07.2008 11:12
evilone
Я в основном смотрю фильмы с расчетом дополнительных кадров в режиме реального времени. Т.е. без сохранения. Есть расчитанный и сохраненный фильм "Хроники Риддика" (чуть более 4 ГБ). Но пока нет доступа к хорошему бесплатному каналу, чтобы его выставить.

Viewmax
Подергивание скорее всего связано с несоотвестствием частоты кадров видео и вертикальной развертки монитора. Можно решить эту проблему фильтром ReClock (http://forum.ixbt.com/topic.cgi?id=62:12524:310#310) , можно с помощью MVTools, либо и то и другое вместе.

476. 19w85, 24.07.2008 23:48
MAG79
Кстати, давно уже наблюдаю подергивания при просмотре Pal 25fps в WinDVD7 при 100Гц на мониторе (при 85 и 115 Гц подергивания нет), увеличил частоту с помощью MVTools с 25fps до 50fps и тоже самое...
В обоих случаях частота увеличивается до 50 fps, т.е. кратно 100 и по идее подергиваний быть не должно, но...

P.S. А вот в WinDVD9 хоть и не так плавно, но подергиваний нет...

477. MAG79, 25.07.2008 19:18
19w85
материал один и тот же? ReClock использовал?

478. 19w85, 25.07.2008 22:19
MAG79
Материал один и тот же. А зачем использовать ReClock если частота и так кратная?

479. MAG79, 26.07.2008 05:08
19w85
А видео чересстрочное или прогрессивное?
Если чересстрочное, то только в WinDVD9 появился деинтерлейсер, который отрабатывает до алгоритма увеличения количества кадров (В WinDVD7 при работе DNM деинтерлейс вообще не производится). Может причина подергиваний кроется в разных деинтерлейсерах и порядке их применения (до или после алгоритма повышения плавности)?

зачем использовать ReClock если частота и так кратная?
ReClock делает привязку к реальной частоте обновления экрана, которая не всегда составляет ровно 60, 85 и т.д. Гц. Кроме этого он показывает статистику и считает опережения/задержки кадров, имеет графическое отображение этих величин наложением на видео - можно визуально оценить равномерность отображения кадров. Это должно помочь в поиске причины подергиваний.

480. 19w85, 26.07.2008 09:46
MAG79
Я в курсе про деинтерлейсеры, видео именно прогрессивное (кто ж будет смотреть интерлейсное видео в WinDVD7 с DNM?)

Ну для сбора статистики ReClock может и пригодится, попробую посмотреть...

481. 19w85, 28.07.2008 12:59
MAG79
А ReClock можно заставить работать для WinDVD? (долго не разбирался, но мне показалось нельзя), в MPC reclock работает, но MPC+6.0.6.42 для воспроизведения без тормозов не хватает мощности процессора...

482. Vovanchik81, 28.07.2008 15:00
вот такой вопрос - нагрузка на все 4 ядра должна быть равномерная при использовании?
у меня активно используется одно ядро, еще одно на треть и остальные 2 меньше четверти.
переставлял винду даже - все равно так же все и остается.
вот и получается что 720p видео двукратное увеличение делает впритык, а 1080р уже переварить не может, причем 2 ядра при этом почти полностью простаивают.

винда winxp sp3

483. 19w85, 28.07.2008 15:19
Уже несколько дней руки не доходят написать результаты моих экспериментов с параметрами скрипта...сегодня дошли...

После того как в этом (http://forum.ixbt.com/topic.cgi?id=62:12524:332#332) посте натолкнулся на скрипт обрезки изображения и через пару часов мне все-таки удалось переделать его для обрезки боков (думал получится намного быстрее), решил заняться перекодированием: уменьшение разрешения обрезкой боков, потом расчет промежуточных кадров...так увлекся, что дня 3 кодировал фрагменты с различными параметрами...
Почти сразу перешел на кодек H.263+ (на H.264 слишком долго для одноядерного)...много экспериментировал с настройкой качества, к сожалению, действительно без потерь (по крайней мере похоже) от перекодировки получилось только при самом высоком качестве (квантизация 1), но место требуется очень много (но мне не жалко )...при "квантизации 2" или "качестве 100" (что на самом деле практически одно и тоже) уже заметны небольшие потери качества (четкости и т.д.)...а "average bitrate 10000" и того хуже...

По поводу параметров скрипта перелопатил всю эту тему...
Пробовал параметры из этого (http://forum.ixbt.com/topic.cgi?id=62:12524:105#105) "улучшенного" скрипта...

Начал я с "голого" скрипта, т.е. без упрощений использованных в скрипте Fast и без улучшений в скрипта Slow
После перекодирования и внимательного просмотра заметил 2 вида дефектов: артефакты (на темных фонах при движениях) и сильные волнообразные ореолы (вокруг лиц, фигур и т.п.)
Итоги:
blksize=16, searchparam=1 - использование комбинации этих двух параметров практически полностью устраняет артефакты (а ведь в скрипте Slow они отсутствуют, так что он явно не лучший по качеству)
ml=5000 - очень значительно устраняет ореолы, побочный эффект - движения фигур становятся менее плавными (при 100 fps не принципиально), можно уменьшать значения и искать баланс между плавностью и ореолами (когда меньше 100 fps)
pel=1 - Плохо влияет на плавность, движения фигур становятся более дерганными
chroma=false - отрицательно влияет на плавность
lambda=16000 (и меньшие значения) - не уменьшает, а усиливает ореолы
search=3, overlap=4, dct=2 - после использования этой группы параметров из скрипта slow, я не увидел влияния ни на плавность, ни на количество ореолов...а вот кодировалось намного дольше...

После многичисленных проб перечисленных параметров, в комбинациях и по отдельности я пришел к таком скрипту (перед неиспользуемыми параметрами стоит # чтобы если понадобится, можно было быстро использовать, а не выискивать в теме параметры...):
код:
DirectShowSource("x.mkv")
ConvertToYV12()
CropTop = 0 # обрезка сверху
CropBtm = 0 # обрезка снизу
CropLeft = 240 # обрезка слева
CropRight = 240 # обрезка справа
coef = 1.00 # коэффициент масштабирования (единица, соотвественно, без масштабирования)
Spline16Resize(Int((Width-CropLeft-CropRight)*coef/16)*16, Int((Height-CropTop-CropBtm)*coef/16)*16,CropLeft,CropTop,-CropRight,-CropBtm)

multi=2
# num=FramerateNumerator(last)
# den=FramerateDenominator(last)
num=50
den=1

# fps=23.976 # указать реальную частоту кадров исходного видео
# newFPS=50

backward_vec1 = MVAnalyse(isb = true, blksize=16, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, ml=5000, mask=2, idx=1)

# assumeFPS(newFPS).timeStretch(tempo=100.0*newFPS*den/num/multi)
# fps - частота исходного видео-файла
# multi - коэффициент увеличения частоты кадров путем расчета промежуточных кадров
# newFPS - частота кадров, до которой необходимо растянуть/сжать клип
# Последняя строчка - изменение частоты кадров путем растягивания/сжимания клипа с сохранением всех кадров.

484. MAG79, 30.07.2008 17:47
Vovanchik81
Нагрузка должна быть равномерная. Но для этого нужно правильно скрипт составить именно для 4-ех ядер.
Я раньше был немного не прав, когда указывал скрипт для core2quad. Мне помог TSchniede с форума doom9.

Все 4-ре ядра лучше всего нагружает скрипт (увеличения плавности в 2 раза), работающий в 6 потоков:
код:
SetMemoryMax(768)
multi=2
SetMTMode(5,threads=6)
DirectShowSource("[имя файла]", fps=23.976)
SetMTMode(2)
num=FramerateNumerator(last)
den=FramerateDenominator(last)
backward_vec1 = MVAnalyse(isb = true, sadx264=0, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, sadx264=0, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)


19w85
Спасибо, ценные наблюдения.
Влияние параметров на качество подтверждаю, я в свое время получил примерно такие же результаты. Меня тоже удивило, что укрупнение блоков с 8х8 до 16х16 дает визуально эффект улучшения качества (хотя теоретически должно быть наоборот).
Твоим скриптом теперь смогут воспользоваться многие желающие. Единственное замечание - скрипт приводит любое видео к частоте кадров 100. Для фильмов, у которых изначально частота кадров отличается от 25 этот скрипт будет давать некратное увеличение числа кадров, а отсюда появление артефактов и уменьшение скорости работы скрипта.

485. Vovanchik81, 30.07.2008 22:16
[q]MAG79:
вот какой эффект у меня после преобразования скрыпта к такому виду
возможно память недостаточно быстро успевает данные подвозить? на днях как доминаторы в столицу завезут возь=му себе 4 гига

если поможет отчитаюсь

К сообщению приложены файлы: 1.gif, 1742x1054, 101Кb

486. MAG79, 31.07.2008 04:07
Vovanchik81
Есть одна проблема. Я привел текст скрипта, который нужно создавать, как внешний файл *.AVS, а потом открывать в плеере. Приведенный тобою скрипт во вкладке ffdShow к сожалению не будет работать в полную силу. Это особенность самого ffdShow: он пока плохо работает с многопоточными командами SetMTMode.
Рекомендую отключить галку AviSynth в ffdShow, а вместо этого для каждого видеофайла создавать и открывать AVS-скрипт. Пусть это немного хлопотнее, зато в многопоточном режиме работает намного быстрее с полной загрузкой всех ядер.

487. 19w85, 31.07.2008 09:50
цитата (MAG79):

Единственное замечание - скрипт приводит любое видео к частоте кадров 100. Для фильмов, у которых изначально частота кадров отличается от 25 этот скрипт будет давать некратное увеличение числа кадров, а отсюда появление артефактов и уменьшение скорости работы скрипта.
Пару строк для кратного увеличения закоментированы, чтобы можно было сменить...
Можно увеличивать в кратное число раз и потом сжимать/растягивать (но тогда вроде обязательно указывать точное количество фпс) до нужного количества fps (я так тоже пробовал)



P.S.
А что насчет этого (http://forum.ixbt.com/topic.cgi?id=62:12524:481#481) вопроса?
цитата (19w85):
MAG79
А ReClock можно заставить работать для WinDVD? (долго не разбирался, но мне показалось нельзя), в MPC reclock работает, но MPC+6.0.6.42 для воспроизведения без тормозов не хватает мощности процессора...

488. MAG79, 31.07.2008 11:07
19w85
тогда вроде обязательно указывать точное количество фпс
да, именно так. DirectShowSource([имя файла], [фпс])

насчет этого вопроса?
Я сам не пробовал WinDVD вместе с ReClock, но насколько я мог заметить работу Trimension DNM из WinDVD, он сам определяет текущую частоту обновления экрана и привязывает к ней выходную частоту кадров (делает равной, либо кратной частоте обновления). ReClock в данной ситуации мало чем может помочь. Он предназначен для борьбы с неравномерным воспроизведением (рывки, подергивания), а в случае нехватки мощности процессора ReClock не поможет.

489. 19w85, 31.07.2008 11:21
цитата:
MAG79:
Я сам не пробовал WinDVD вместе с ReClock, но насколько я мог заметить работу Trimension DNM из WinDVD, он сам определяет текущую частоту обновления экрана и привязывает к ней выходную частоту кадров (делает равной, либо кратной частоте обновления). ReClock в данной ситуации мало чем может помочь. Он предназначен для борьбы с неравномерным воспроизведением (рывки, подергивания), а в случае нехватки мощности процессора ReClock не поможет.
Тогда я не понимаю почему происходят подергивания в WinDVD7 при воспроизведении видео 25fps при 100 гц на мониторе (нехватки мощности никакой нет, загрузка проца 30% )...

490. MAG79, 31.07.2008 16:55
ВСЕМ!

Я закончил отладку теста производительности при повышении плавности видео.
Сегодня выложил для общего скачивания и обсуждения.

Всем заинтересованным сюда:
MVFlowFps HD Test - Тест производительности при повышении плавности видео (http://forum.ixbt.com/topic.cgi?id=8:21962)

491. Vovanchik81, 01.08.2008 10:38
цитата:
который нужно создавать, как внешний файл *.AVS, а потом открывать в плеере
все ядра загрузились по полной, тока появились жуткие глюки с рассинхроном звуковых дорожек и картинки.

я в принципе понимаю что файл сначала раскладывается на потоки, потом потоки декодируются, обрабатываются каскадно и передаются в плеер уже несжатым потоком, тока это вот каскадная обработка картинки здорово отделяет картинку от звука для плеера (MPC)
это так во всех плеерах или просто чета у меня не так настроено?

причем когда просто тупо выставлено было в свойствах ffdshow обработка - плеер видел исходный файл а не пережеванный уже - потому и корректно разбирался с потоками звуковыми

Добавление от 01.08.2008 22:39:

понял в чем дело Haali Media Splitter обрабатывает файл в два этапа - сначала один видео, второй звук... возможно побочное действия вмешательства прослойки AviSynth в процесс
ща вот думаю как это дело победить

492. MAG79, 02.08.2008 05:52
Vovanchik81
все ядра загрузились по полной, тока появились жуткие глюки с рассинхроном звуковых дорожек и картинки.
Это хорошо, что загрузились.
Насчет звука - надо смотреть настройки AC3Filter'а. Дело в том, что звуковая дорожка, как и видео обрабатывается два раза: до увеличения плавности (внутри AVS-скрпта) и после отработки скрипта. Звук при первом декодировании должен "остаться внутри", чтобы дождаться обработки видео и синхронно с ним уйти на выход. Если звук опережает, то вероятно в фильтре включена подача звука сразу на цифровой выход. Надо в фильтре указать другое значение (отключить цифровой вывод).

[i]Haali Media Splitter обрабатывает файл в два этапа - сначала один видео, второй звук...[i]
Да, это нормально. Так и должно быть. Рассинхрона при правильной настройке быть не должно. Подробнее см. ветку на с.17 (http://forum.ixbt.com/topic.cgi?id=62:12524:420#420) или поиском в теме по фразе "AC3".

493. Vovanchik81, 02.08.2008 11:50
цитата:
должен "остаться внутри", чтобы дождаться обработки видео и синхронно с ним уйти на выход
немного коряво получается...
самым оптимальным раскладом по уму было бы при раскладке файла сплиттером звук оставить нетронутым и при раскладке выходного потока его декодировать... эмуляция данного процесса дает нормальный звук шестиканальный в DTS

верхний ac3 фильтр обрабатывает первичный поток - звук получается в несколько раз вытянутый по времени... т.е. идет в несколько раз медленнее картинки - его не воспроизводим потому как на выходе вопреки данным ac3 фильтра получаем стерео и оно подавляется DTS сигналом из второго ac3 фильтра который обрабатывает выходящий из ависинк поток
нижний соответственно это и есть тот выходящий поток.

ну и теперь соответственно вопрос - можно ли сделать по умолчанию пропуск декодирования потока до ависинка и включить его обработку во внешнем сплиттере? потому как фокус этот работает только на многодорожечных фильмах которые сплиттер может увидеть и позволить включить обработку потока вручную.

К сообщению приложены файлы: 1.gif, 1890x1054, 103Кb

494. MAG79, 02.08.2008 15:52
Vovanchik81
можно ли сделать по умолчанию пропуск декодирования потока до ависинка и включить его обработку во внешнем сплиттере?
К сожалению, при открытии AVS-файла происходит двойное открытие потоков как аудио, так и видео. Первое открытие распаковывает картинку и звук, далее внутри AviSynth-скрипта происходит их обработка, результаты выдаются на выход скрипта в несжатом виде, но для плеера, это выглядит, как открытие готового AVI-файла с несжатыми потоками аудио и видео. Т.е. декодирования аудиопотока в AviSynth'е не избежать. Тот вариант, который ты описываешь в сообщении, пока самый правильный: деокодирование в первом AC3Filter, а вывод - во втором AC3Filter. Правда требует настройки обоих AC3Filter'ов при каждом открытии AVS-файла.

Можно попробовать настроить разные декодеры для AC3 и PCM - тогда достаточно будет один раз настроить, а дальше смотреть уже без потерь времени на настройки.

495. Pavel_A, 03.08.2008 14:58
Хотел бы поделиться наблюдениями по просмотру видео с использованием технологии удвоения частоты кадров:

Для просмотря тяжелых рипов использую:
для декодирования H.264 в AviSynth использую CoreAVC 1.7,
для декодирования VC-1 в AviSynth использую декодер от Microsoft
для декодирования MPEG-2 используеться какой-то сисиетмный декодер, но он не сильно важен, т.к. Mpeg2 сильно проц не нагружает.
Поверх всех этих декодеров видео, полученное от AviSynth, обрабатывает ffdshow RAW filter, для использования фильтра "Уровни" (делаю черный цвет черным меняя уровни яркости с TV на PC)

Для просмотра двд-рипов и тв-рипов использую тот же скрипт (с первого сообщения данной страницы, работающий в 6 потоков), но запущенный прямо из FFDshow (вроде скорости хватает)...


Есть вопрос к автору темы MAG79:
На основе какого из скриптов для AviSynth написан тест для тестирования производительности системы для задачи удвоения частоты кадров?

496. Vovanchik81, 03.08.2008 15:44
MAG79
решил проблему временно - отрубил обработку звука в ависинке посредством такой вот строки
killAudio
если же вручную во втором сплиттере выбрать дорожку то все становиться очень симпатично. за исключением того, что работает тока на контейнерах с несколькими дорогами. если же она одна - перевыбрать ее становиться очень проблематично... теперь вопрос не по теме, но близко к ней.
есть ли какие нибудь еще программные сплиттеры или это единственный безглючный?
и есть ли возможность самостоятельно включать и выключать дороги в Haali если по умолчанию он ее не обрабатывает при наличии всего одной дороги? да и чем определяется вообще что видео и звук обрабатываются раздельно? какие триггеры за это отвечают и есть ли возможность передать из ависинк скрыпта выходному сплиттеру команду на обработку звуковой дорожки?

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

просто то как это сейчас работает - это прикручивание дополнительных костылей - хотелось бы причинуц устранить, а не следствия подправлять

497. crystallize, 03.08.2008 21:45
Здравствуйте.
1)утверждение о необходимости 24 ядер для FullHD качественного скрипта ещё правомерно? Он же теперь другой? И как отличается его качество от быстрого?
2)Какая будет разница при пересчёте в рилтайме между Quad6600 и E8400?
3)между 2 и 4гб RAM?
4)между DDR2 667 и 800?
В начале темы кто-то выкладывал кадры из Матрицы, доказывавшие плохое качество обработки MVTools при быстром движении. С новым скриптом от 19w85 ситуация поменялась?

498. Hiker, 03.08.2008 22:54
IMHO! Прогулялся по магазинам, посмотрел самые разные (безумно дорогие) телевизоры со сглаживанием, сложилось ощущение что на моем компьютере у MVTools гораздо меньше артефактов чем на дорогих телевизорах! Причем хваленый филипс не может сгладить даже довольно простые сцены(которые по моему опыту не должны были вызвать проблем если бы смотрел на компе). Решил покупать простой=дешевый FullHD монитор
Тайно надеюсь, что прогресс не остановится и когда-нибудь скоро можно будет забыть про артефакты совсем!
Спасибо MAG79 что Вы есть


Мои результаты теста (http://hiker.pisem.net/MVFlowFps_results.txt)

499. MAG79, 04.08.2008 17:13
Pavel_A
На основе какого из скриптов для AviSynth написан тест для тестирования производительности системы для задачи удвоения частоты кадров?
На основе скрипта MVTools_fast. Скрипты создаются автоматически по шаблону с учетом количества ядер/процессоров в системе. Эти скрипты печиально не удаляются после проведения теста, а остаются в папке test. Их легко узнать по имени: *_x2.avs

Добавление от 04.08.2008 19:26:

Vovanchik81
решил проблему временно - отрубил обработку звука в ависинке посредством такой вот строки
killAudio

Эта строка убирает аудио из обработки. На выходе скрипта AviSynth'а получается "немое" кино. В таком случае возможны проблемы с опережением звука, т.к. звук будет играться со входа AviSynth-скрипта, а видео - с выхода. Это по грубым оценкам 1-2 сек.

есть ли какие нибудь еще программные сплиттеры или это единственный безглючный?
Для MP4 есть еще Gabest (в составе K-Lite).

и есть ли возможность самостоятельно включать и выключать дороги в Haali если по умолчанию он ее не обрабатывает при наличии всего одной дороги?
Я выбираю через икоку в трее.

да и чем определяется вообще что видео и звук обрабатываются раздельно?
Это интересный вопрос. Ответа на него я пока не знаю. В последних версиях Haali запускается всего две иконки в трее, а в предыдущих версиях я наблюдал ровно столько иконок, сколько открывается потоков в скрипте. Для команды SetMTMode(2,6) - шесть иконок.

какие триггеры за это отвечают и есть ли возможность передать из ависинк скрыпта выходному сплиттеру команду на обработку звуковой дорожки?
Я не парюсь и переключаю звуковые дорожки через иконку в трее. Мож кто из спецов подскажет?!

просто то как это сейчас работает - это прикручивание дополнительных костылей - хотелось бы причинуц устранить, а не следствия подправлять
Использование AVS-скриптов работает-то вполне понятно как, но вот требует тонкой настройки для каждого отдельного случая - это да. Это-то и пытаюсь автоматизировать (см. тест несколькими поставми выше).
Для видео средних разрешений (правильно пишет Pavel_A, достаточно вкладки AviSynth в ffdShow) - все намного проще настраивается, и всего один раз.

Добавление от 04.08.2008 19:47:

crystallize
1) В ветке тестирования на четырехядерном процесссоре получена производительность уже выше 150 МПикс/сек. 24 ядер уже не надо - спасибо авторам библиотки MVTools - за последние полгода скорость работы ее функций была повышена в несколько раз.
Скрипт все тот же - на основе MVTools_fast.
2) Разницу между Quad6600 и E8400 см. в ветке тестирования.
3) Размер памяти играет роль, но лишь второстепенную: недостаток памяти может привести к сильному падению производительности, но избыток памяти скорости не прибавит, 2 ГБ хватает для повышения плавности FullHD в шесть потоков.
4) Разница в скорости между DDR2 667 и 800 есть. См. результаты вчерашних изысканий Pavel_A

В начале темы кто-то выкладывал кадры из Матрицы, доказывавшие плохое качество обработки MVTools при быстром движении. С новым скриптом от 19w85 ситуация поменялась?
Нет, по качеству скрипт остался на том же уровне, что и MVTools_fast того времени. До текущего момента я вел гонку за скоростью. Сейчас, когда мощности позволяют, можно будет уже наращивать качество обработки засчет незагруженных мощностей.
Кстати, по моей просьбе в MVTools добавлен новый размер блоков (32х16), который дает ощутимое увеличение в скорости, а для картинки уменьшает количество волнообразных искажений. Т.е. визуально увеличивает качество (разговор про FullHD-видео, для средних и малых разрешений это может дать обратный эффект).
В тесте пока используются стандатные блоки 16x16.

Добавление от 04.08.2008 19:59:

Hiker
Спасибо за добрые слова.

У технологии сглаживания, так и у ее компьютерной реализации есть как сторонники, так и противники. Все от того, что у каждого свой вкус.

Идеальным было бы саамостоятельно регулировать степень реалистичности (плавности) движений ползунком "кино-сериал".

Подумываю над реализацией такого "ползунка".

За результаты теста отдельное спасибо, желательно их повторить в соседней ветке (http://forum.ixbt.com/topic.cgi?id=8:21962) - как-никак получен рекорд для двухъядерых процессоров - 90 МПикс/сек.

500. 19w85, 05.08.2008 05:34
цитата (MAG79):

В начале темы кто-то выкладывал кадры из Матрицы, доказывавшие плохое качество обработки MVTools при быстром движении. С новым скриптом от 19w85 ситуация поменялась?
Нет, по качеству скрипт остался на том же уровне, что и MVTools_fast того времени. До текущего момента я вел гонку за скоростью. Сейчас, когда мощности позволяют, можно будет уже наращивать качество обработки засчет незагруженных мощностей.
Вообще-то плохие кадры из Матрицы выкладывались при использовнии скрипта slow...так что по сравнению с этим ситуация очень поменялась...
цитата:
Вот кадры из Матрицы с MVT (при твоем MVTools_slow):

http://img529.imageshack.us/img529/1626/81660153sp4.jpg
http://img529.imageshack.us/img529/9718/42849483zh1.jpg
http://img529.imageshack.us/img529/3050/28278542sh5.jpg
http://img238.imageshack.us/img238/2852/75543204oe1.jpg

И главное эти артефакты лезут в экран и их не возможно не заметить. Смотреть становится очень дискомфортно.
Использование блоков по 16 (как в скрипте Fast) и парамтра ml очень значительно устраняют артефакты и волны...(использование такого скрипта в сравнении со slow, так это вообще небо и земля)

501. Vovanchik81, 05.08.2008 10:07
цитата:
На выходе скрипта AviSynth'а получается "немое" кино. В таком случае возможны проблемы с опережением звука, т.к. звук будет играться со входа AviSynth-скрипта, а видео - с выхода. Это по грубым оценкам 1-2 сек.
именно этого и добивался. тока получается немного по другому - на выходе AviSynth-скрипта получаем немое кино. и к нему уже после подмешиваем звуковую дорогу. так что сопряжение практически идеально получается.
цитата:
Я выбираю через икоку в трее.
в том то и дело что если дорога одна и сплиттер получил команду ее не играть то на выходе получим немое кино тоже самое

ну и похоже что все эти танцы с бубном характерны именно для моей системы, расшатанной установками переустановками кодеков... даже протестировать систему не могу.

of вот как придут мои доминаторы в столицу - переустановлю винду и протестируюсь наконец

502. Pavel_A, 05.08.2008 12:42
MAG79
Кстати, по моей просьбе в MVTools добавлен новый размер блоков (32х16), который дает ощутимое увеличение в скорости, а для картинки уменьшает количество волнообразных искажений. Т.е. визуально увеличивает качество (разговор про FullHD-видео, для средних и малых разрешений это может дать обратный эффект).

Это замечательно надо срочно протестировать на 1080p изображении...

Библиотека уже откомпилирована?

А то не отказался бы скачать и потестировать

503. MAG79, 05.08.2008 16:39
19w85
Прошу прощения. Я не так понял вопрос. Все вопросы касались теста и моя фраза "Нет, по качеству скрипт остался на том же уровне, что и MVTools_fast того времени." также относилась к скрипту из теста.

Конечно, твой скрипт сильно отличается по качеству от этих скиптов.

Вообще-то плохие кадры из Матрицы выкладывались при использовнии скрипта slow...
Сейчас на даче, отвечал с мобильника - по памяти. Оказался не прав. Спасибо за уточнение.

Добавление от 05.08.2008 16:51:

crystallize
Невнимательно первый раз прочитал вопрос. Исправляюсь:

В начале темы кто-то выкладывал кадры из Матрицы, доказывавшие плохое качество обработки MVTools при быстром движении. С новым скриптом от 19w85 ситуация поменялась?
Поменялась. В лучшую стррону. Насколько стало лучше - надо делать аналогичные скрины этих же кадров и сравнивать.

Добавление от 05.08.2008 17:35:

Vovanchik81
...уже после подмешиваем звуковую дорогу. так что сопряжение практически идеально получается.
А ну да, так тоже можно.

если дорога одна и сплиттер получил команду ее не играть то на выходе получим немое кино тоже самое
не совсем понял. Буду дома - специально проверю на файле с одной аудиодорожкой.

Переустановлю винду и протестируюсь наконец
Желаю удачи!

Добавление от 05.08.2008 17:51:

Pavel_A
надо срочно протестировать на 1080p изображении...
Библиотека уже откомпилирована?
А то не отказался бы скачать и потестировать

Можно. Качать дополнительно ничего не надо. В MVTools блоки 32x16 поддерживаются с версии 1.9.4.1 (если не ошибаюсь).

Для включения этих блоков надо в шаблоне скрипта template_*_2x.avs заменить "blksize=16" на "blksize=32, blksizeV=16" и запустить тест.

504. Pavel_A, 05.08.2008 21:58
Протестировал, отчитываюсь:

Проц Core2 Quad Q9450 2666 Mhz, Память 1110 Mhz, Системная шина 333 Mhz

Результаты для 1080p:

1. Обычный скрипт:
* smooth on-the-fly: 63.6 fps (1.33x realtime)
** productivity: 131 MPix/sec

2. В шаблоне скрипта template_*_2x.avs заменил "blksize=16" на "blksize=32, blksizeV=16"
* smooth on-the-fly: 69.7 fps (1.45x realtime)
** productivity: 143 MPix/sec

Как видно, скорость только увеличилась, что есть очень хорошо.

Осталось проверить на увеличение (уменьшение) количества артефактов.

505. MAG79, 06.08.2008 18:35
Pavel_A
Протестировал, отчитываюсь
Спасибо за отчет.
По твоим цифрам получается прирост почти 10%.

Я не могу подтвердить прирост производительности. На моем Q6600 (2.67 ГГц, 5-6-6-1110) получилось 133 МПикс/сек как с блоками 16x16, так и 32x16.
Параметры установил по возможности близкие к твоим.
То ли архитектура процессора у тебя сыграла роль, то ли такая погрешность измерений...

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

506. Pavel_A, 07.08.2008 12:47
цитата:
MAG79:
Протестировал, отчитываюсь
Спасибо за отчет.
По твоим цифрам получается прирост почти 10%.

Я не могу подтвердить прирост производительности. На моем Q6600 (2.67 ГГц, 5-6-6-1110) получилось 133 МПикс/сек как с блоками 16x16, так и 32x16.
То ли архитектура процессора у тебя сыграла роль, то ли такая погрешность измерений...

Проверю скорость еще раз, может я разгон не целиком выключил...
Для блоков 16х16 у Вас вышло чуть побыстрее из-за большей частоты шины...
А вот проверку на включение блоков 32х16 я даже не представляю как cделать...

Да, кстати, проверил как работает на настоящем FullHD фильме... Мой проц в принципе тянет, но с трудом, т.к. для одного декодирования ремуксов уходит по 15-20% мощности процессора...
Причем VC-1 требует больше, чем Mpeg4 AVC (h.264) что само по себе странно...

MainConcept вроде делает свой VC-1 декодер, но пока он в 1,5 раза медленнее чем другие.

507. MAG79, 07.08.2008 13:04
Pavel_A
вышло чуть побыстрее из-за большей частоты шины...
Выставлял шину 333, множитель 8. Я сколняюсь все-таки к тому, что это погрешность измерений (запускал 5 раз, у меня получались значения от 129 до 135). 133 вышло трижды. Разброс значений - около 5%.

Проверить блоки можно командой MVShow. Я именно ей буду проверять.

508. COLVIR, 07.08.2008 17:12
А как можно включить скрипт при проигрывании например ДВД с фильмом
прямо из накопителя (не из файла)

509. MAG79, 07.08.2008 18:15
COLVIR
как можно включить скрипт при проигрывании например ДВД с фильмом прямо из накопителя (не из файла)
Для DVD рекомендую попробовать WinDVD. А вообще скрипт можно через ffdShow включить (см. первое сообщение темы). Работает медленнее, зато настраивается всего один раз.

Добавление от 07.08.2008 18:42:

Pavel_A
Проверил через MVShow - блоки обоих размеров работают как и должны. Т.е. разница в качестве точно есть. Можно смело сравнивать.

Да, кстати, проверил как работает на настоящем FullHD фильме... Мой проц в принципе тянет, но с трудом, т.к. для одного декодирования ремуксов уходит по 15-20% мощности процессора...
Скоро проведу тест на кусках из реальных FullHD без пережатия. Самому интересно какие результаты получатся.

Добавление от 07.08.2008 19:06:

Vovanchik81
покрутил Haali сплиттер - действительно, в случае одной аудиодорожки совершенно нет возможности ее отключить в сплиттере.

510. Pavel_A, 07.08.2008 22:01
цитата:
MAG79:
Проверил через MVShow - блоки обоих размеров работают как и должны. Т.е. разница в качестве точно есть. Можно смело сравнивать.
Скоро проведу тест на кусках из реальных FullHD без пережатия. Самому интересно какие результаты получатся.

Пришел домой, посмотрел частоту шины, действительно присутствует слабый разгон (3-5%), так что я был неправ по поводу увеличения производительности...
А по поводу тестирования на реальных FullHD без пережатия: советую сразу проц разогнать до 3 ГГц, иначе будут сильные торомоза...
Сам тестировал на примерно десятке ремуксов, в динамичных сценах проца 3ГГц еле хвататет...

511. Shon26, 08.08.2008 10:07
А как к примеру Можно избавиться от артефактов в этом случае?http://rapidshare.de/files/40185505/__1061___1101___…___1082_.avi.html Ведь невозможно сделать так чтобы мяч не двоился, не один скрипт не справляется

512. COLVIR, 08.08.2008 10:10
цитата:
MAG79:
COLVIR
как можно включить скрипт при проигрывании например ДВД с фильмом прямо из накопителя (не из файла)
Для DVD рекомендую попробовать WinDVD. А вообще скрипт можно через ffdShow включить (см. первое сообщение темы). Работает медленнее, зато настраивается всего один раз.

С WinDVD понятно, хотя в 7 версии почему то не включается DNM. 9 версия показывает не плохо, но не очень плавно.
Пробовал включать скрипт с первой страницы через ffdshow. Сильно тормрзит на C2D 2.13 фильм xdiv 512х288. Загрузка процессора не равномерная 3 сек 90%, 2 сек 0%
Может для ffdshow есть более современный скрипт?
Возможно ли запуск внешнего скрипта не только с КристалПлеер, а на другом плеере? как?
Кстати омжет поправить описание на 1 странице, где выложить скрипты для 1,2,4 ядерных систем?
Если есть необходимость, могу проверить быстродействие на сервере 2хQuad Xeon 3 GHz

513. ImperatorI, 08.08.2008 13:58
всем привет.
Почитав многие сообщения,ясно одно, что идеального изображения пока получить не удается по многим причинам но прогресс на лицо.
Ясно и другое что у каждого из Вас разное железо стоит в компьютерах и разный софт.И мусора и задействование процессов управление и распределение ресурсов происходит по разному.
Но мне кажется не маленькую роль в разгрузке системных ресурсов и обработке видеопотока даст и такой полезный программный продукт как дефрагментатор жесткого диска.
Всем рекомендую использовать Diskeeper v.12.0.758-система на XP SP3 просто летает со старым Athlonom 3.2Гц

514. MAG79, 08.08.2008 14:27
COLVIR
могу проверить быстродействие на сервере 2хQuad Xeon 3 GHz
Да. Было бы здорово. Скрипт в тесте у меня настроен на 2-ух и 4-ех ядерные скрипты. Там потоков обычно требуется [кол-во ядер]+2. А в случае с двумя четырехядерными процами такая математика может не дать максимально возможную производительность. Но все равно интересно.

Для ffdShow надо попробовать прикрутить библиотеку MVTools 1.9.6.0 с форума doom9.org. В ней обещается внутренний механизм распараллеливания вычислений на многоядерных системах. У ffdShow как раз были проблемы с командой SetMTMode многопоточной версии AviSynth, многопоточность не включалась. А здесь предлагается механизм многопоточности, реализованный внутри библиотеки MVTools.

Шапку темы действительно надо поправить. В ближайшее время займусь.

ImperatorI
Согласен. Достаточная скорость доступа к диску и скорость обновления памяти (без своппинга на диск) - это важные условия нормального воспроизведения с алгоритмами повышения плавности. Длстаточно ли скорости доступа к диску легко проверить следующим способом: включить требуемый файл на воспроизведение. Если он играется без остановок, то такой скорости доступа хватит и для применения алгоритма повышения плавности.

515. COLVIR, 08.08.2008 16:47
цитата:
MAG79:
COLVIR
могу проверить быстродействие на сервере 2хQuad Xeon 3 GHz
Да. Было бы здорово. Скрипт в тесте у меня настроен на 2-ух и 4-ех ядерные скрипты. Там потоков обычно требуется [кол-во ядер]+2. А в случае с двумя четырехядерными процами такая математика может не дать максимально возможную производительность. Но все равно интересно.
Так опишите алгоритм (для непонятливых) - сделаю
цитата:

Для ffdShow надо попробовать прикрутить библиотеку MVTools 1.9.6.0 с форума doom9.org. В ней обещается внутренний механизм распараллеливания вычислений на многоядерных системах. У ffdShow как раз были проблемы с командой SetMTMode многопоточной версии AviSynth, многопоточность не включалась. А здесь предлагается механизм многопоточности, реализованный внутри библиотеки MVTools.

Как тогда должен выглядеть скрипт?

516. MAG79, 08.08.2008 17:20
COLVIR
Так опишите алгоритм (для непонятливых) - сделаю
MVFlowFps HD Test - Тест производительности при повышении плавности видео (http://forum.ixbt.com/topic.cgi?id=8:21962)

Как тогда должен выглядеть скрипт?
Пока сам не знаю. Я там вопрос задал, жду ответа. Скорее всего придется подбирать правильный скрипт. Для начала надо оставить скрипт как есть, скачать и заменить MVTools на 1.9.6.0. Сам еще не пробовал, если наберетесь терпения - попробую и отпишусь.

517. COLVIR, 08.08.2008 17:37
Попробую на след неделе о результатах отпишусь
Правда етсь еще кластер из 32 таких серверов, соедененных по инфинибэнду
Но боюсь такую махину не протестить

И все же остается вопрос по запуску avs скрипта на других плеерах кроме кристала
(кристал не устраивает из за отсудствия работы SPDIF)

518. Eraser, 08.08.2008 20:35
MAG79:
У ffdShow как раз были проблемы с командой SetMTMode многопоточной версии AviSynth, многопоточность не включалась.


Чьорт побьери! Такую информацию включают в первое сообщение! Конечно, изучив 21 страницу темы ixbt, мануал mvtools, 48 страниц doom9, гугл, перепробовав несколько версий ffdshow и прокрутив несколько десятков экспериментов с разными параметрами скрипта для avisynth можно догадаться, что не один я такой несчастный сижу без многопоточности, но если всего этого можно избежать одной строчкой в начале темы...

Для ffdShow надо попробовать прикрутить библиотеку MVTools 1.9.6.0 с форума doom9.org. В ней обещается внутренний механизм распараллеливания вычислений на многоядерных системах. А здесь предлагается механизм многопоточности, реализованный внутри библиотеки MVTools.

A new function MVAnalyseMulti was added which creates a seperate thread to do the analysing for each forward or backward frame. The output is packed into an arrayed output only compatible at this time with MVDegrainMulti but other functions can easily be adopted to handle this arrayed format.

Ждем.

519. crystallize, 08.08.2008 21:15
MAG79
mt.dll и avisynth.dll по ссылке в первом посте скачиваются последних версий, да? А скорость обработки повысилась во сколько раз "конкретно-примерно"?
...
Неееее, это что-то не то. У меня со старой версией успешно шла обработка 320*240 реальном времени, а теперь такие тормоза... Я считаю что это не только из за антивируса, но и ещё из-за 2х иконок ffdshow, висящих в трее. Насколько я понимаю, внутренности Crystal Player'а способны заменить видеоиконку, а Haali Media Splitter, соотв, аудио. И не говорите мне, что ffdshow "отличный быстрый декодер", я, как человек, смотревший 720p на Celeron 2600(Atari, ага)+256 mb ram и выгадывавший проценты скорости, всё равно не поверю. Правда у меня были наблюдения того, что ffdsow с MPC пашет быстрее, как не странно, чем с Кристалом. Но-недостаточно быстро для меня.
Может проведёшь сравнительный тест по скорости "(ffdshow video decoder+ffdshow audio decoder) VS (Crystal Player+Haali Media Splitter)"?
(Пошёл отключать ffdshow).

520. Pavel_A, 08.08.2008 21:57
цитата:
COLVIR:
И все же остается вопрос по запуску avs скрипта на других плеерах кроме кристала
(кристал не устраивает из за отсудствия работы SPDIF)

Насколько я понял, то вся проблема в том, что AviSynth декодирует звук и оставляет его несжатым и его нельзя послать по SPDIF...
К сожалению это пока что никак не лечиться...
Можно использовать плеер Media Player Classic (можно и Media Player Classic Home Cinema) но вылечить данную проблему очень сложно, так как звук надо обратно запаковать, хотя бы в DTS...
Так что в качестве решения данной проблемы советую или запускать скрипт из FFDShow (для видео вплоть до 720p) или предварительный рассчет с пережатием (более 720p)...

Вообще надо бы как-нибудь научиться сохранять результаты работы алгоритма поиска векторов движения, чтобы не пережимать весь фильм, а только достраивать кадры на лету... Хотя сколько они весят, если двух гигов оперативы на обработку в реальном времени еле хвататет...

521. Vovanchik81, 08.08.2008 23:16
Pavel_A
Насколько я понял, то вся проблема в том, что AviSynth декодирует звук и оставляет его несжатым и его нельзя послать по SPDIF...
К сожалению это пока что никак не лечиться...

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

Добавление от 08.08.2008 23:17:

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

522. MAG79, 09.08.2008 11:02
COLVIR
остается вопрос по запуску avs скрипта на других плеерах кроме кристала
AVS-файл для системы выглядит, как обычный медиафайл (вроде AVI), его можно открыть в любом программном плеере.

Eraser
этого можно избежать одной строчкой в начале темы...
Спасибо за совет, эту строчку добавлю.

crystallize
mt.dll и avisynth.dll... последних версий, да?
Там версии указаны. MT - последней, Avisynth - сейчас есть новая версия 2.5.8, но у нее статус - не Final.

скорость обработки повысилась во сколько раз "конкретно-примерно"?
Надо замерять. В каждом конкретном случае будет свой результат. А примерно: в начале темы я считал производительность скрипта, у меня получалось 48 МПикс/сек (http://forum.ixbt.com/topic.cgi?id=62:12524:82#82) , а сейчас на двух ядрах получена производительность 90 МПикс/сек (http://forum.ixbt.com/topic.cgi?id=8:21962:21#21) .

Может проведёшь сравнительный тест по скорости "(ffdshow video decoder+ffdshow audio decoder) VS (Crystal Player+Haali Media Splitter)"?
Пока подожду твоих наблюдений. Меня на данный момент пока все устраивает, тем более слабого компьютера сейчас под рукой нет.

Pavel_A
надо бы как-нибудь научиться сохранять результаты работы алгоритма поиска векторов движения
В первых версиях библиотеки MVTools даже параметр был для сохранения, который впоследствии стал недоступен. Fizick объясняет это тем, что сохраненный клип векторов движения очень громоздкий. Было принято решение отключить эту возможность.

Vovanchik81
дежавю

523. Eraser, 09.08.2008 19:04
У кого-нибудь получилось запустить mvtools 1961 (http://forum.doom9.org/showthread.php?p=1168697#post1168697) ? У меня MPC/ffdshow при использовании кода как в примере, т.е. например такого
код:
mm=MVAnalyseMulti(refframes=1,blksize=16,idx=1)
b=mm.MVMultiExtract(0)
f=mm.MVMultiExtract(1)
last.MVFlowFps(b,f,FramerateNumerator(last)*2,\
FramerateDenominator(last),mask=0,idx=1)

ругается на "wrong forward vectors" (обратные считаются нормально). Если это не у одного меня проблема, то может кто-нибудь с уже имеющимся акком им на форум багрепорт напишет? Тупой doom9 даже после регистрации постить не дает.
EDIT: версия 1962 (http://forum.doom9.org/showthread.php?p=1168741#post1168741) не работает с теми же симптомами.

И еще вопрос специалистам - можно ли как-нибудь вынести наложение субтитров с помощью DirectVobSub в цепочке в конец, чтобы ависинтовский скрипт получал и обрабатывал чистую картинку?

524. evilone, 10.08.2008 16:21
может кто-то кому не сложно написать еще раз по пунктам что нужно для просмотра видео с эффектом на обычном пк с одним процессором
какой плеер какой кодек настройка и т.д.
спс

525. MAG79, 10.08.2008 20:46
Eraser
С версией 1.9.6.1_3 (http://forum.doom9.org/showpost.php?p=1168835&postcount=968) приведенный тобою скрипт заработал.

Внешние сабы можно через raw ffdShow вывести. А через DirectVobSub - не подскажу, мало смотрю фиьмов с субтитрами.

evilone
Чем не нравится описание из первого сообщения темы?

Vovanchik81
На моем компе звук, похоже, после декодирования (AS IS, PCM 16bit) выдается и через SPDIF. Акустика сообщает: Prologic II. Правда, центр и передние очень глухие - списываю на недоработку драйвера звука, приходится слушать через аналог 5.1.

526. crystallize, 10.08.2008 20:52
Надо бы добавить, что тот ролик был закодирован DivX 3
MAG79
Разницу между Quad6600 и E8400 см. в ветке тестирования.
Про 8400 не нашёл.

527. GL, 11.08.2008 19:10
MAG79
обновите пожалста первое сообщение, на предмет скприты отдельно для 2-х ядер, отдельно для 4-х.

528. 19w85, 12.08.2008 04:04
MAG79
цитата:
Vovanchik81
На моем компе звук, похоже, после декодирования (AS IS, PCM 16bit) выдается и через SPDIF
А что удивительного в том, что SPDIF может передавать несжатый стерео звук?
Vovanchik81 говорил о том, что многоканальный звук 5.1 принудительно разжимается в стерео и это плохо, а не что стерео нельзя потом вывести через SPDIF...вывести можно, но радости от этого мало ...ну, а если вывели потом это стерео Pro Logic II пытается разложить в 5.1...но это, конечно, уже будет не сравнить с первоначальными 5.1...

529. Malder1, 14.08.2008 11:43
Наверное с появлением интеловского Larabee можно будет делать Natual Motion на компе в реальном времени для HD видео.

530. salex8, 14.08.2008 13:34
Реально ли соорудить такую систему - приём со спутника HD h264 (например нтв HD) через SkyStar2 и вывод с плавностью движения в реальном врем. если да в какой конфигурации, и ещё по идеи DDR3 должна повысить результаты тестов.

531. COLVIR, 14.08.2008 15:27
Попытался провести тест
Операционка сервер 2003 и английская , больше ничего не установлено кроме AviSynth 2.5.7
то, что сикораrи пишет вместо русских - фиг с ним
но ругается на ошибку в скрипте get_AviSynth_Version.vbs line 6
что может быть?

532. MAG79, 14.08.2008 19:40
COLVIR
ругается на ошибку в скрипте get_AviSynth_Version.vbs line 6
что может быть?

В этой строке создается файл отчета в папке log. То ли такой папки нет (проверь test\log), то ли создание файлов в ней запрещено.

Добавление от 14.08.2008 19:51:

salex8
Реально ли соорудить такую систему - приём со спутника ... и вывод с плавностью движения в реальном врем.
Наверное, реально. Недавно было подобное в ветке по Avisynth. Там предлагалось сделать это через ffdShow. На данный момент у варианта с использованием ffdShow остается проблема с невозможностью загрузки более одного ядра. Т.е. для многоядерных систем такой вариант пока неэффективен.

DDR3 должна повысить результаты тестов.
Несомненно, если будет иметь большую частоту.

Добавление от 14.08.2008 19:55:

Malder1
Наверное с появлением интеловского Larabee можно будет делать Natual Motion на компе в реальном времени для HD видео.
Вполне возможно. Уже сейчас разогнанные четырехядерные системы способны на это.

Добавление от 14.08.2008 20:02:

19w85
что удивительного в том, что SPDIF может передавать несжатый стерео звук?
я говорил про 5.1

многоканальный звук 5.1 принудительно разжимается... но это, конечно, уже будет не сравнить с первоначальными 5.1...
Почему? Если каналы остаются все, то чем несжатый звук хуже сжатого?

Добавление от 14.08.2008 20:22:

crystallize
Надо бы добавить, что тот ролик был закодирован DivX 3
Ну да.

Про 8400 не нашёл.
Самый близкий к 8400 - это разогнаный до 3,2 ГГц E6750 [b]Hiker[/i]'а. Для E8400 на штатной частоте результат будет на 6% скромнее.

Добавление от 14.08.2008 20:29:

GL
обновите пожалста первое сообщение, на предмет скприты отдельно для 2-х ядер, отдельно для 4-х.
Сделаю на следующей неделе с большого компьютера - а то с мобильника править такие большие сообщения неудобно и проверить скрипты нельзя.

533. 19w85, 14.08.2008 20:57
MAG79
цитата:
я говорил про 5.1
5.1 через SPDIF может передаваться только в виде:
1) Dolby Digital
2) DTS
3) Любой другой цифровой поток, который предварительно закодирован
(например, Dolby TrueHD и т.д. но тогда и ресивер должен понимать этот формат, чтобы декодировать)
цитата:
Почему? Если каналы остаются все, то чем несжатый звук хуже сжатого?
Какие все? PCM - это только Стерео, а стерео - это ДВА канала.
5.1 распаковывается и микшируется в 2 канала...это несжатое стерео и остается...в итоге вместо 5.1 имеем 2.0, а уже эти 2.0 Pro Logic II как может (а может он так себе) преобразует в 5.1

534. MAG79, 15.08.2008 10:53
19w85
5.1 через SPDIF может передаваться только в виде:
1) Dolby Digital
2) DTS
3) Любой другой цифровой поток, который предварительно закодирован

Ясно. Спасибо за разъяснение.

5.1 распаковывается и микшируется в 2 канала...это несжатое стерео и остается...в итоге вместо 5.1 имеем 2.0, а уже эти 2.0 Pro Logic II как может (а может он так себе) преобразует в 5.1
Почитал о Prologic II. Теперь понятно, куда центр и басы пропадают при передаче по SPDIF.

PCM - это только Стерео, а стерео - это ДВА канала.
Почему же? PCM может быть и 7.1. Просто поток будет широким.


Тогда действительно, при отсутствии аналогового 5.1 входа на акустике надо что-то придумывать для сохранения качества звуковой дорожки. Как вариант - открывать скрипт без звкуа, а звуковую дорожку открывать отдельно. О чем и говорил Вованчик.

535. 19w85, 15.08.2008 14:01
цитата:
MAG79:
PCM - это только Стерео, а стерео - это ДВА канала.
Почему же? PCM может быть и 7.1. Просто поток будет широким.
Да, это я не точно написал...PCM конечно может...я имел ввиду LPCM (http://wiki.foobar2000.ru/codecs/lpcm) , который не может иметь больше 2-х каналов...

Ну и плюс, я имел ввиду, SPDIF в несжатом виде больше стерео передать все-равно не может...


цитата:
MAG79:
Тогда действительно, при отсутствии аналогового 5.1 входа на акустике надо что-то придумывать для сохранения качества звуковой дорожки. Как вариант - открывать скрипт без звкуа, а звуковую дорожку открывать отдельно. О чем и говорил Вованчик.
Ну в принципе лично я так и делал с самого начала, выдергивал отдельно дорогу, а вот в потом в дубе каждый раз приходилось вручную отключать эту расжатую дорожку, а теперь добавил killAudio и больше вручную отключать уже не нужно...

536. COLVIR, 15.08.2008 14:42
цитата:
MAG79:
COLVIR
ругается на ошибку в скрипте get_AviSynth_Version.vbs line 6
что может быть?

В этой строке создается файл отчета в папке log. То ли такой папки нет (проверь test\log), то ли создание файлов в ней запрещено.
Да действительно не было папки LOG
Создал - пошло , пока не вылезла ошибка в файле template_to_file.vbs line 19
"input past end file"

537. MAG79, 15.08.2008 19:33
COLVIR
вылезла ошибка в файле template_to_file.vbs line 19
"input past end file"

Надо проверить наличие файла test\cpuz_threads.txt и его содержимое. Если он пуст (о чем говорит текст ошибки), то для выяснения причин мне нужен файл log\system_details.txt. Можно отправить почтой.

Добавление от 16.08.2008 06:50:

19w85
SPDIF в несжатом виде больше стерео передать все-равно не может...
Спасибо, до этого про узкий канал SPDIF не знал.
Теперь уж начитался. Интересные вещи пишут: звук можно как аппаратно, так и программно в DD или DTS сжимать и гнать по SPDIF. Пишут, что AC3Filter это умеет. Надо будет попробовать.
Обсуждение на эту тему: Звук 5.1 в играх через SPDIF (http://forum.ixbt.com/topic.cgi?id=12:47352)

538. 19w85, 16.08.2008 13:25
цитата:
MAG79:
Интересные вещи пишут: звук можно как аппаратно, так и программно в DD или DTS сжимать и гнать по SPDIF. Пишут, что AC3Filter это умеет.
Да, я это давно в AC3Filter видел, но программное сжатие на лету несомненно будет отъедать ресурсы проца...да и качество от повторного сжатия не улучшится...

А вот для игр такое хотелось...но опять-таки даже если бы нашел программный способ сжатия - лишния нагрузка на проц...но потом появился патч для моей X-Fi разблокирующий на ней "Dolby Digital Live" и теперь в играх по цифре 5.1

Это только Crystal не может честно выдать даже аналоговые 5.1, поэтому его и бесполезно сжимать в 5.1 Dolby Digital...

539. COLVIR, 18.08.2008 16:23
цитата:
MAG79:
COLVIR
вылезла ошибка в файле template_to_file.vbs line 19
"input past end file"

Надо проверить наличие файла test\cpuz_threads.txt и его содержимое. Если он пуст (о чем говорит текст ошибки), то для выяснения причин мне нужен файл log\system_details.txt. Можно отправить почтой.

Здравствуйте!
После неких шаманских действий (переустановки ависинт со всеми прибамбасами , прерзагрузок и т.д.)
Тест пошел без особых ошибок
к сожалению в пакет WIN Server 2003 не входила msvcp71.dll (только с номером 50 и 60)
Была скопирована с ближайшей машины с WIN XP и записана в System32
В общем тест не прошел, но не было каких то критических ошибок
католог LOG - послан на ваш адрес на яндексе

540. MAG79, 18.08.2008 17:53
COLVIR
Что-то нет пока лога... Пожалуй, для надежности лучше продубировать еще и на mail.ru из Инфо (http://forum.ixbt.com/users.cgi?id=info:MAG79) .

msvcp71.dll... Была скопирована с ближайшей машины с WIN XP и записана в System32
Точно! Мне пришлось однажды делать тоже самое на чистой системе. Значит, надо этот файл включить в поставку. Буду обновлять шапку темы - размещу там на него ссылку.

541. COLVIR, 19.08.2008 09:48
отправил по новому адресу
до этого использовал адрес с Вашего сайта по ДВД рекодерам

542. MAG79, 20.08.2008 17:13
COLVIR
Посмотрел логи. Судя по всему файлы avs не хотят открываться. Насчет библиотек, я копировал msvcr и msvcp.

Можешь проверить на этой системе:
1. Играется ли файл test\VID-2D.avi?
2. Открывается ли test\VID-2D_to_PAL.avs?

543. COLVIR, 20.08.2008 18:13
Нет не играет
Установил КМплеер
Встал с ошибкой
Ругается во первых на звук - у сервера вообще нет звуковой платы
никакой
только пищалка
Выводит заставку с вопросом воспроизводить YES NO и все
Кажется мне что не удасться запинать сервак, тем более, что доступен он будет только недели 2
А файлы msvcr и msvcp я тоже скопировал

544. Vovanchik81, 20.08.2008 19:28
COLVIR
services.msc
запускаешь службу
windows audio
потом
ставишь драйвер только что найденой звуковухи
dxdiag.exe
включаешь полную аппаратную поддержку звука вкладка звук
свойства экрана
параметры-дополнительно-диагностика
ползунок аппаратного ускорения вправо
вроде как все

как вариант ставь сразу одомашненый сервак например из мой сборки
http://torrents.ru/forum/viewtopic.php?t=1049922

545. Kostik44, 20.08.2008 20:40
MAG79
ИМХО шапку было бы неплохо обновить. Я например так и не увидел видео с эфектом плавности (хотя судя по тесту мощи компа должно хватать). В окне видео идёт неплохо, но стоит развернуть на полный экран... У тебя же вроде как Core2 QUAD? Напиши пожалуста три скрипта (для просмотра в реальном времени) для видео качества DVD (720p), HDredy (1280p) и FullHD (1920p) заточенных под четыре потока и без эфекта склейки и частотой кадров 60Hz (как самое распространённое у LCD).

546. COLVIR, 21.08.2008 10:44
цитата:
Vovanchik81:
COLVIR
services.msc
запускаешь службу
windows audio
потом
ставишь драйвер только что найденой звуковухи
dxdiag.exe
включаешь полную аппаратную поддержку звука вкладка звук
свойства экрана
параметры-дополнительно-диагностика
ползунок аппаратного ускорения вправо
вроде как все

ПРоблема в том, что это сервак IBM (где еще найти машину с 2х Zeon Quad 3 ГГц, и при этом не занятую)
На него установить ХР ну никак не получается
только Сервер
И звуковухи у нее нет в принципе, зачем она на сервере
И внешнюю звуковуху не воткнуть - райзера нет Сервер 1 U

547. Vovanchik81, 21.08.2008 10:55
COLVIR

На него установить ХР ну никак не получается
не получается потому как нельзя или не получается потому что не получается?

а что если поставить mpc плеер?

548. COLVIR, 21.08.2008 11:44
цитата:
Vovanchik81:
COLVIR

На него установить ХР ну никак не получается
не получается потому как нельзя или не получается потому что не получается?

а что если поставить mpc плеер?

Есессно уже попробовал
не играет

549. Vovanchik81, 21.08.2008 11:48
COLVIR
не получается потому как нельзя или не получается потому что не получается?
повторюсь

550. COLVIR, 21.08.2008 12:36
после установки последнего K-Light стал проигрываться AVI
При открытии avs - ругается на невозможность выполнить скрипт MVTOOLS
XP не устанавливается, потому что дрова и матери и видяхи и т.д есть только для Линукса и ВинСервера
Вариантов на установку нет
из биоса предлагает или Линукс или ВинСервер
to MAG79
направил последние логи Вам в почту

551. Vovanchik81, 21.08.2008 13:17
а с диска не пробовал ставить?
и вощет и сервер и хр использует одну т ту же драйверную модель - так что собместимость обратная практически полная, за очень редким исключением?
да и как вариант поставить винду что 2003 что хр с моей сборки, адрес давал чуть выше.
если с торента скачать не могешь - могу фтп организовать под это дело

у меня кстати на 2003 все тесты прошли на ура. да и работаю я в нем уже вторую неделю, все ничем практически не отличается от хр, ни в плане функционала, ни в плане оформления.

552. COLVIR, 21.08.2008 13:38
Ну в общем странно конечно
К сожалению сервер не у меня в руках и крутить там все проблематично
Посмотрим что MAG79 скажет по результатам логов

553. MAG79, 21.08.2008 14:40
ВСЕМ!
Обновил шапку. Все пожелания постарался учесть. Порядок установки, скрипты и ссылки теперь актуальные.

COLVIR
Лог гляну.
Посмотри пока, все ли условия по установке (изложенные в шапке) соблюдены на системе с ксеонами?

Добавление от 21.08.2008 14:46:

Kostik44
Напиши пожалуста три скрипта (для просмотра в реальном времени) для видео качества DVD (720p), HDredy (1280p) и FullHD (1920p) заточенных под четыре потока и без эфекта склейки и частотой кадров 60Hz (как самое распространённое у LCD).
см. SetMTMode-скрипт из шапки. Он един для любого разрешения. Требуется указание исходной частоты кадров. Результирующая частота видео будет ровно в два раза больше. Для четырех ядер надо указывать threads=6.

Добавление от 21.08.2008 17:49:

COLVIR
При открытии avs - ругается на невозможность выполнить скрипт MVTOOLS
Логи показали немного другое - не открывается avs-файл подготовки видео (открытие avi и смена разрешения). До MVTools дело даже не доходит. Рекомендую переустановить Avisynth.

Если не сложно, можешь привести здесь дословно текст ошибки при открытии VID-2D_to_PAL.avs?

554. COLVIR, 21.08.2008 18:08
MAG79:

Аккуратно еще раз провел установку
Стало легче, но все равно виртуал дуб не создает файлы

avis [error]: unsupported input format (DIB )
x264 [error]: could not open input file 'VID-2D_to_PAL.avs'
ä«íáó½Ñ¡¿Ñ ºóπ¬«ó«⌐ ñ«α«ª¬¿
Unknown input file type
Error importing ..\video\VID-2D_to_PAL.mp4#video: End Of Stream / File

Добавление от 21.08.2008 18:21:

цитата:
Vovanchik81:
а с диска не пробовал ставить?
и вощет и сервер и хр использует одну т ту же драйверную модель - так что собместимость обратная практически полная, за очень редким исключением?
да и как вариант поставить винду что 2003 что хр с моей сборки, адрес давал чуть выше.
если с торента скачать не могешь - могу фтп организовать под это дело

у меня кстати на 2003 все тесты прошли на ура. да и работаю я в нем уже вторую неделю, все ничем практически не отличается от хр, ни в плане функционала, ни в плане оформления.

на серваке раид
диски просто так не видятся
все установки идут под управлением собственного софта ИБМ

555. Vovanchik81, 21.08.2008 18:38
COLVIR на серваке раид диски просто так не видятся ну у меня в винду драйверов контроллеров рейдовских низкоуровн6евых уже сотни полторы по умолчанию внедрено, огромное количество контроллеров подхватывается на лету

556. COLVIR, 21.08.2008 18:47
цитата:
Vovanchik81:
COLVIR на серваке раид диски просто так не видятся ну у меня в винду драйверов контроллеров рейдовских низкоуровн6евых уже сотни полторы по умолчанию внедрено, огромное количество контроллеров подхватывается на лету

К сожалению "Рейтинг 0 уже не позволяет Вам скачивать новые торренты."
Поэтому был бы благодарен за выкладывание в более гуманное место

557. Vovanchik81, 21.08.2008 18:52
http://dc.ru-board.com/details.php?id=29749&hit=1 устроит?
глянь личку

558. COLVIR, 22.08.2008 09:52
Наверное устироит
Хотя на руборде у меня был аккаунт, сейчас его убили
Новые акаунты не выдают
В личку ничего не пришло

559. Vovanchik81, 22.08.2008 10:28
приват нажми

560. Kostik44, 23.08.2008 22:05
MAG79

Т.е. для четырёх ядер скрипт для файла video.avi частотой 23.976 должен выглядеть так?
==cut==
SetMemoryMax(768)
fps=23.976
multi=2

SetMTMode(5,threads=4+2)
DirectShowSource("video.avi", fps=fps)
SetMTMode(2)

num=FramerateNumerator(last)
den=FramerateDenominator(last)
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)
==cut==

Что то загрузка процессора не превышает 40% при воспроизведении 1280 x 720. Скрипт открывал с помощью Media Player Classic. Если делаю multi=3 начинаются тормоза. Не совсем понял как править данный блок :
SetMTMode(5,threads=4+2) - что тут число 5, почему threads= число + число, а не например просто 6
DirectShowSource("video.avi", fps=fps)
SetMTMode(2) - дублируется?

PS: такое ощущение что скрипт в данном виде загружает два ядра сильнее (примерно наполовину), а два всего на четверть.

Добавление от 23.08.2008 23:01:

Стало плавнее, но артефакты движения так и лезут.

561. MAG79, 26.08.2008 18:35
COLVIR
Раз переустановка не помогла (avs-скрипты не хотят открываться), то выходит, что AviSynth или его MT-версия некорректно работают с 8-ми ядрами.

Kostik44
для четырёх ядер скрипт для файла video.avi частотой 23.976 должен выглядеть так?
Да.

что тут число 5
Пятый режим многопоточности, рекомендуется для команды DirectShowSource.

почему threads= число + число, а не например просто 6
Для акцента, что потоков надо указывать на два больше, чем ядер в системе, способных их обрабатывать.

SetMTMode(2) - дублируется?
Нет. Эта команда возвращает второй режим многопоточности.

такое ощущение что скрипт в данном виде загружает два ядра сильнее (примерно наполовину), а два всего на четверть.
Вполне возможно. Хотя у меня на четырехядернике наблюдается картина равномерной загруженности всех ядер.

Стало плавнее, но артефакты движения так и лезут.
Скрипт настроен на максимальную скорость. Для уменьшения артефактов надо изменять параметры, отвечающие за улучшение качества. Это, как правило, приводит к потери скорости.

562. Shon26, 27.08.2008 09:02
То есть получается что лучшего скрипта под кодировку нет?
SetMemoryMax(768)
multi=2
SetMTMode(5,threads=6)
DirectShowSource("video.avi", fps=25)
SetMTMode(2)
num=FramerateNumerator(last)
den=FramerateDenominator(last)
mm=MVAnalyseMulti(refframes=1,blksize=8,idx=1)
b=mm.MVMultiExtract(0)
f=mm.MVMultiExtract(1)
last.MVFlowFps(b,f,FramerateNumerator(last)*2,\
FramerateDenominator(last),mask=0,idx=1)

563. Eraser, 27.08.2008 16:41
MAG79:
Для акцента, что потоков надо указывать на два больше, чем ядер в системе, способных их обрабатывать.


Какое обоснование, почему именно на два больше?

564. MAG79, 27.08.2008 18:00
Shon26
лучшего скрипта под кодировку нет?
имеется в виду "для сохранения предварительно расчитанного клипа"?
"лучший" скрипт надо подбирать (причем для каждого отдельного случая). Вариант от 19w85 был изложен (http://forum.ixbt.com/topic.cgi?id=62:12524:483#483) чуть выше.
Или использовать готовый "MVTools_slow" из шапки темы (http://forum.ixbt.com/topic.cgi?id=62:12524:0#0) .

По приведенному скрипту:
1. Команда SetMTMode поддерживается только многопоточной версией AviSynth. На данный момент это AviSynth 2.57 MT от tsp. Новый AviSynth 2.5.8 не имеет многопоточной версии.
2. Команды MVAnalyseMulti и MVMultiExtract - альтернативная реализация многопоточности от josey_wells, которая работает только на этапе анализа векторов движения, не имеет финального статуса и не имеет реализации многопоточности для команды расчета новых кадров MVFlowFPS.
Другими словами, приведенный скрипт одновременно использует два разных механизма многопоточности, что вряд ли даст выигрыш в скорости, а вот стабильность работы скрипта от такого подхода под большим вопросом.

Добавление от 27.08.2008 18:10:

Eraser
обоснование, почему именно на два больше?

цитата из шапки темы:
"В данном скрипте для достижения максимальной производительности надо указывать значение параметра threads число ядер плюс 2 (выведено экспериментально). Т.е. для двухъядерных систем threads=4, для четырехъядерных - threads=6."

Кроме этого, упоминание про максимальную загрузку процессора шестью потоками для 4-ех ядер встречал где-то на форуме по многопоточному сжатию x264.

Если Вам удастся получить большую производительность при других значениях параметра threads, то я только за - привел свои наблюдения. Не факт, что они верны для всех процессоров, но для C2D и C2Q проверено - работает.

565. MAG79, 28.08.2008 18:20
К вопросу о качестве:
Попробовал новую версию MVTools 1.10.2.0 от Fizick, вышедшую вчера.
Понравилось. Составил скрипт, выполняющий расчет векторов движения по блокам 32x16 с уточнением до блоков размера 16x8. Идея очень хорошая.
код:
SetMTMode(5,6)
fps=25.0 # указать реальную частоту кадров исходного видео
multi=3
newFPS=75.0
DirectShowSource("5th Element HD.mp4",fps=fps)

CropTop = 0 # обрезка бордюра сверху
CropBtm = 0 # обрезка бордюра снизу
ConvertToYV12()
coef = 1.0 # коэффициент масштабирования
Spline16Resize(Int(Width*coef/16)*16, Int((Height-CropTop-CropBtm)*coef/16)*16,0,CropTop,0,-CropBtm)

num=FramerateNumerator(last)
den=FramerateDenominator(last)
SetMTMode(2)
backward_vec1 = MVAnalyse(isb = true, blksize=32, blksizev=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=32, blksizev=16, pel=1, chroma=false, searchparam=1, idx = 1)

forward_re = MVRecalculate(last, forward_vec1, blksize=16, blksizev=8, thSAD=100, chroma=false, searchparam=1, idx = 2)
backward_re = MVRecalculate(last, backward_vec1, blksize=16, blksizev=8, thSAD=100, chroma=false, searchparam=1, idx = 2)

last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=2, ml=100, idx=2)

assumeFPS(newFPS).timeStretch(tempo=100.0*newFPS*den/num/multi)

Проверял на фильме "Пятый элемент", имеющий разрешение 1280x720 с частотй 25 fps. Увеличивал плавность до 75 fps.
Еще раз убедился, что Crystal Player играет более плавно, без рывков, по сравнению с MPC. Данный скрипт у меня заработал в реальном времени с mask=1, и чуть-чуть не хватило моего C2Q 2,4 ГГц для mask=2. Надо разгонять. Качество работы описанного скрипта визуально уже ощутимо выше, чем у MVTools_fast.

566. Vovanchik81, 28.08.2008 19:06
MAG79
а зачем ты всем советуешь указывать частоту кадров исходного видео? у меня вот давно уже все и без ее прямого указания играет все пучком.
num=FramerateNumerator(last) вот эта вот функция и так вроде автоматически из заголовка файла значение фремрейта вынимает.

вот такой вот скрипт у меня только что на 94% загрузил камень, но изображение шло на ура
код:
SetMemoryMax(768)
multi=2
SetMTMode(5,8)
DirectShowSource("50 pirvih potseluev 2004 (BD-rip.1080p.x264).mkv")
num=FramerateNumerator(last)
den=FramerateDenominator(last)
SetMTMode(2)
backward_vec1 = MVAnalyse(isb = true, blksize=32, blksizev=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=32, blksizev=16, pel=1, chroma=false, searchparam=1, idx = 1)

forward_re = MVRecalculate(last, forward_vec1, blksize=16, blksizev=8, thSAD=100, chroma=false, searchparam=1, idx = 2)
backward_re = MVRecalculate(last, backward_vec1, blksize=16, blksizev=8, thSAD=100, chroma=false, searchparam=1, idx = 2)

last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=2, ml=100, idx=2)

killAudio

Добавление от 28.08.2008 19:09:

при 6 потоках первое ядро было загружено на 60% примерно

567. Eraser, 28.08.2008 23:23
MAG79:
Составил скрипт, выполняющий расчет векторов движения по блокам 32x16 с уточнением до блоков размера 16x8. Идея очень хорошая.
код:

backward_vec1 = MVAnalyse(isb = true, blksize=32, blksizev=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=32, blksizev=16, pel=1, chroma=false, searchparam=1, idx = 1)

forward_re = MVRecalculate(last, forward_vec1, blksize=16, blksizev=8, thSAD=100, chroma=false, searchparam=1, idx = 2)
backward_re = MVRecalculate(last, backward_vec1, blksize=16, blksizev=8, thSAD=100, chroma=false, searchparam=1, idx = 2)

last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=2, ml=100, idx=2)



Я в этом месте чего-то не понимаю, где в функции MVFlowFps используются уточненные вектора движения backward_re и forward_re?

И chroma=false, pel=1 имхо зря стоит, я числа не скажу, но у меня от chroma=true загрузка поднималась несильно, а как минимум в одном тестовом файле на темной сцене вместо рывков получился правильный плавный результат, а pel=2 это вообще обязательная вещь чтобы картинка не дергалась на пиксел вверх-вниз.
За это сообщение сказали спасибо: MAG79

568. ditter, 29.08.2008 14:15
с интересом слежу за веткой, приедет железо буду пробовать
вопрос такой вот - а реально использовать CUDA (Nvidia)забыл как называется аналог от АМД в просчете плавности движений ?

569. MAG79, 29.08.2008 18:58
Vovanchik81
зачем ты всем советуешь указывать частоту кадров исходного видео? у меня вот давно уже все и без ее прямого указания играет все пучком.
Перестрахоываюсь на случай некорректного открытия видео. У меня пару раз была с файлами *.mp4 такая ситуация, что команда DirectShowSource открывала видео с неправильной частотой (если не путаю, частота=25 fps по-умолчанию). И видео с реальной частотой кадров отличающейся от 25 шло уже несинхронно с аудио.

...SetMTMode(5,8)... при 6 потоках первое ядро было загружено на 60% примерно
Это странно. У меня при 6 потоках равномерная загрузка. Почему такое отличие - сложно сказать. Причина может крыться в том, что у нас с тобою винда установлена разная (XP против 2003 сервера), могут быть разные сплиттеры, декодеры, видеокарточки.

Eraser
где в функции MVFlowFps используются уточненные вектора движения backward_re и forward_re?
Спасибо за найденную ошибку. Действительно там в скрипте была опечатка. Должно быть: "last.MVFlowFps(backward_re,forward_re, num=multi*num, den=den, mask=2, ml=100, idx=2)".
Свой пост поправить не удалось (правила конференции не дают). Приведен ниже.

chroma=false, pel=1 имхо зря стоит
Для повышения производительности.

chroma=true... на темной сцене вместо рывков получился правильный плавный результат, а pel=2 это вообще обязательная вещь чтобы картинка не дергалась на пиксел вверх-вниз.
Согласен. chroma=true включает поиск векторов движения по цветовой составляющей (иначе учитывается только яркостная), а pel=2 увеличивает точность расчета этих векторов до полупикселя. Если Ваш процессор тянет эти параметры, то почему бы и нет. Но мой процессор с chroma=true и pel=2 уже не тянет 720p 25fps @ 75fps в реальном времени.

ditter
Закрытые разработки есть. При помощи CUDA сжимали HD-видео. Без расчета векторов движения там не обойтись. Упоминания были в этой ветке - см. поиском по слову "CUDA".

добавление:

Eraser
я числа не скажу, но у меня от chroma=true загрузка поднималась несильно
Замерил длительность расчета минутного отрывка из "пятого элемента" с разными параметрами:
1. mask=1. 0:55 (1,1x realtime)
2. mask=2. 1:19 (0,76x realtime) - приведенный выше скрипт
3. + chroma=true. 1:22 (0,73x realtime)
4. + pel=2. 1:59 (0,5x realtime)

Действительно, включение chroma=true "съедает" всего 4% производительности.
На втором месте по "тяжеловесности" параметр mask=2 (-30% производительности).
На третьем месте - pel=2 (-31% производительности).
При одновременном применении этих параметров скрипт теряет 54% производительности, т.е. скорость расчета падает более, чем в два раза.

Выходит, chroma=true - оправданная жертва 4% скорости ради повышения качества.
Итого скрипт получается следующим:
код:
SetMTMode(5,6)
fps=25.0 # указать реальную частоту кадров исходного видео
multi=3
newFPS=75.0
DirectShowSource("5th Element HD.mp4",fps=fps)

CropTop = 0 # обрезка бордюра сверху
CropBtm = 0 # обрезка бордюра снизу
ConvertToYV12()
coef = 1.0 # коэффициент масштабирования
Spline16Resize(Int(Width*coef/16)*16, Int((Height-CropTop-CropBtm)*coef/16)*16,0,CropTop,0,-CropBtm)

num=FramerateNumerator(last)
den=FramerateDenominator(last)
SetMTMode(2)
backward_vec1 = MVAnalyse(isb = true, blksize=32, blksizev=16, pel=1, chroma=true, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=32, blksizev=16, pel=1, chroma=true, searchparam=1, idx = 1)

forward_re = MVRecalculate(last, forward_vec1, blksize=16, blksizev=8, thSAD=100, chroma=true, searchparam=1, idx = 2)
backward_re = MVRecalculate(last, backward_vec1, blksize=16, blksizev=8, thSAD=100, chroma=true, searchparam=1, idx = 2)

last.MVFlowFps(backward_re, forward_re, num=multi*num, den=den, mask=1, ml=100, idx=2)

assumeFPS(newFPS).timeStretch(tempo=100.0*newFPS*den/num/multi)

Никто не мешает указать mask=2 и pel=2 для повышения качества при неминуемом снижении скорости. В данном случае я нашел компромиссный вариант скрипта для просмотра указанного фильма на конкретно взятом процессоре с расчетом плавности в реальном времени.

570. Malder1, 30.08.2008 15:11
Мое тестирование MVTools показало что blksize=16 дает более дерганое движение объектов на втором плане. Например проходящие люди.
blksize=8 - намного плавнее.

571. Shon26, 30.08.2008 15:58
Да, но при blksize=8 при резких движениях появляются артефакты.

572. Malder1, 31.08.2008 00:20
Shon26
Возможно, но на моих двух DivX фильмах в двух сценах я заметил катастрофичное ухудшение плавности при blksize=16, а на 8 все отлично.

573. ditter, 31.08.2008 14:24
что хочу сказать - не утерпел и попробовал все на ноуте асус Х51L , тот который на 965 чипсете , с встроенной видео GMA3100, процик Conroe-L в просторечии целерон м-550. мозгов правда два гектара.
вываливалось все на плазму панас 42 с разрешением 1024*768.
так вот - камень одноядерный, скрпит простейший, но и он вполне так при 80% загрузки удваивает ДВД с битрейтом 3,6-4,2мб/сек .
если крутить че нить попроще из dVix то на стандартном 700мб фильме загрузка 15-18%
прикол в том что эти все % с включенными фильтрами типа aWarp sharp, постпроцессингом и нормализацией звука.
отдельно хочу заметить что эффект от плагина местами просто зверский
понятно что какой нить мукс это все не потянет , но нехалем не за горами
еще раз спасибо за изыскания в этой области всем причастным

574. Malder1, 31.08.2008 15:26
Epson и Panasonic анонсировали выход в октябре их новых проекторов - TW5000 и AE3000 соответственно - оба с поддержкой технологии интерполяции кадров. 96 Hz для Blu-Ray фильмов, 100/120 Hz для PAL/NTSC.

Интересно, а каково мнение кинорежиссеров и специалистов о кино об этой технологии? Или они приверженцы честных 24p?
За это сообщение сказали спасибо: MAG79

575. MAG79, 31.08.2008 18:07
ditter
эффект от плагина местами просто зверский
Рад, что понравилось.

Malder1
Будем ждать выхода этих проекторов. Цену тоже надо ожидать с тремя нулями как и номера моделей?

576. Pavel_A, 01.09.2008 20:08
цитата:
ditter:
что хочу сказать - не утерпел и попробовал все на ноуте асус Х51L , тот который на 965 чипсете , с встроенной видео GMA3100, процик Conroe-L в просторечии целерон м-550. мозгов правда два гектара.
вываливалось все на плазму панас 42 с разрешением 1024*768.
так вот - камень одноядерный, скрпит простейший, но и он вполне так при 80% загрузки удваивает ДВД с битрейтом 3,6-4,2мб/сек .
если крутить че нить попроще из dVix то на стандартном 700мб фильме загрузка 15-18%
прикол в том что эти все % с включенными фильтрами типа aWarp sharp, постпроцессингом и нормализацией звука.
отдельно хочу заметить что эффект от плагина местами просто зверский
понятно что какой нить мукс это все не потянет , но нехалем не за горами
еще раз спасибо за изыскания в этой области всем причастным

я таким же образом смотрел фильмы на работе, где проц Pentium 4 2.4 GHz Prescott....
двд-рипы шли просто отлично

577. Malder1, 02.09.2008 00:02
Как написать такой хитрый AVS-MVTools скрипт, чтобы имея исходный AVI фильм в 24p получить на выходе 60p (проектор больше не поддерживает по HDMI). Поскольку интерполированная частота должна быть кратной для максимальной плавности, а 60p на 24p не делится без остатка, то надо сделать опорную частоту 120p (120/24=5 - кратное число), но рендерить каждый второй кадр - получив в итоге 60p и плавное интерполированное видео. Непростая задачка?

578. Shon26, 02.09.2008 08:03
Malder1
Все просто, нужно в last.MVFlowFps(backward_re, forward_re, num=multi*num, den=den, mask=1, ml=100, idx=2)
поставить last.MVFlowFps(backward_re, forward_re,num=60, den=den, mask=1, ml=100, idx=2)

579. Malder1, 02.09.2008 10:27
Shon26
Почему-то не работает совсем - черный экран и длинна фильма в два раза короче:

DirectShowSource("путь к фильму")
num=FramerateNumerator(last)
den=FramerateDenominator(last)
backward_vec1 = MVAnalyse(isb = true, blksize=8, pel=2, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=8, pel=2, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1,num=60, den=den, mask=1, ml=100, idx=2)

Нужно ведь еще как-то указать что я хочу интерполировать видео до 120 кадров из 24 - т.е. коэфициент умножения 5. Но выводить будем каждый второй интерполированный кадр (не рендеря первый) - в итоге получаем 60 Hz с очень плавным видео.


Еще возникла проблема с AC3 дорожкой. Поставлен AC3Filter и его значок появляется в трее, но он все равно декодирует в стерео, вместо отправки потока на ресивер как есть. Хотя просто просмотр того же AVI файла идет правильно - AC3Filter отправляет Dolby Digital поток на ресивер. Все нужные настройки Use SPDIF, отправлять поток как есть конечно поставлены

580. MAG79, 02.09.2008 18:20
Malder1
Как написать такой хитрый AVS-MVTools скрипт, чтобы имея исходный AVI фильм в 24p получить на выходе 60p
Первый вариант: num=60, den=1. (числитель частоты кадров=60, а знаменатель - единица).
Второй вариант: коэффициент multi разбить на числитель и знаменатель. Будет две строчки: multinum=5, multiden=2. А в MVFlowFPS указать: num=multinum*num, den=multiden*den. Тогда при 24 fps будет именно то, что ты хочешь: увеличение частоты кадров ровно в пять раз, но с пропуском расчета каждого второго кадра.

Судя по тому, что num=60, den=den (по рекомендации Shon26) дали в результате черный экран, то похоже на то, что den<>1, а это означает, что частота кадров дробная. Например, 23.97 (num=24000, den=1001). В этом случае (при дробной частоте) лучше использовать второй вариант. А в заключении скрипта делать растяжку/сжатие до 60 fps с соответствующей коррекцией аудио-дорожки (последняя строчка из скрипта в этом сообщении (http://forum.ixbt.com/topic.cgi?id=62:12524:569#569) , с корректировкой /multinum*multiden вместо /multi).

Еще возникла проблема с AC3 дорожкой
В AC3Filter'е включи обработку PCM, тогда в трее будет висеть две иконки (фильтр до ависинта и после). Дальше, думаю, разберешься. Выше в ветке обсуждалось.

581. Malder1, 02.09.2008 21:02
MAG79
Спасибо за Вашу помощь!

Кажется работает, но наверное в моем скрипте есть ошибка - иногда звук (PCM, не AC3) отстает от видео. Вероятно я ошибся с параметрами у assumeFPS. Вот текст скрипта:

--------------------------------------------------------
multinum=5
multiden=2
newFPS=60.0
SetMTMode(5,threads=2+2)

DirectShowSource("MyFilm.avi")

num=FramerateNumerator(last)
den=FramerateDenominator(last)
SetMTMode(2)

backward_vec1 = MVAnalyse(isb = true, blksize=8, pel=1, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=8, pel=1, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, ml=5000, num=multinum*num, den=multiden*den, mask=2, idx=1)

assumeFPS(newFPS).timeStretch(tempo=100.0*newFPS*den/num/multinum*multiden)
---------------------------------------------------

Со звуком никак не получается. Я уже читал Ваш пост как Вы настраивали звук. У меня внешне все такие же настройки. Я вижу две иконки AC3Filter в трее (если отмечена опция PCM, и одна если не отмечена). И у одной на входе обозначен AC3 -> PCM у друго PCM -> PCM. При этом я запускал глобальные настройки AC3Filter и ставил Use SPDIF и AS IS. Т.е. на вход точно поступет AC3, но он игнорирует мои настройки и все равно декодирует в PCM. Может глюк этой версии. Скажите какая у Вас версия AC3Filter и AviSynth (AviSynth MT).

Input format: AC3 - 48000
User format: PCM16 - 0
Output format: PCM16 3/2.1 (5.1) 48000
Use SPDIF
SPDIF status: Disabled (SPDIF output is not supported)

C проигрывание видеофайла напрямую проблем нет - AC3Filter отправляет на ресивер сжатый AC3 звук.

582. elektron-mobile, 02.09.2008 21:26
эх недождался я пока моща проца подниметься для DNM FULL HD - вышли проекторы с DNM EPSON 5000 и PANAS AE3000- по земным ценам обещают

583. 19w85, 03.09.2008 04:03
цитата:
Malder1:
Со звуком никак не получается. Я уже читал Ваш пост как Вы настраивали звук. У меня внешне все такие же настройки. Я вижу две иконки AC3Filter в трее (если отмечена опция PCM, и одна если не отмечена). И у одной на входе обозначен AC3 -> PCM у друго PCM -> PCM. При этом я запускал глобальные настройки AC3Filter и ставил Use SPDIF и AS IS. Т.е. на вход точно поступет AC3, но он игнорирует мои настройки и все равно декодирует в PCM. Может глюк этой версии. Скажите какая у Вас версия AC3Filter и AviSynth (AviSynth MT).

Input format: AC3 - 48000
User format: PCM16 - 0
Output format: PCM16 3/2.1 (5.1) 48000
Use SPDIF
SPDIF status: Disabled (SPDIF output is not supported)

C проигрывание видеофайла напрямую проблем нет - AC3Filter отправляет на ресивер сжатый AC3 звук.
Надо в скрипт добавить сточку
код:
killaudio

Тогда скрипт не будет трогать аудио и принудительно его распаковывать в PCM
(это все обсуждалось несколько страниц назад)

584. Malder1, 03.09.2008 14:51
19w85
Уже пробовал добавлять KillAudio в скрипт - не помогает.

585. 19w85, 03.09.2008 15:25
Malder1
Ты в каком плеере скрипт открываешь? Не в кристале случайно?

586. MAG79, 03.09.2008 18:28
Malder1
какая у Вас версия AC3Filter и AviSynth (AviSynth MT)
AC3Filter 1.51a от 9 июля 2008 г. (из комплекта K-Lite Codec Pack 4.1.0 Full)
AviSynth 2.57 MT (библиотека из комлекта MT 0.7)

Звук: Realtek ALC883.
Audio Driver: WHQL V5.10.0.5391 for Windows 2K/XP


19w85
killaudio
Кстати, в таком случае не наблюдается опережения звука? Теоретически должно. Хотя в том же AC3Filter'е задержку можно вручную выставить.

587. Malder1, 03.09.2008 20:14
19w85
GomPlayer. Пробовал и в MPC.

MAG79
Вроде не опережает, если я перевожу 25p в 75p. Но для вышеразмещенного скрипта 24p в 60p звук постепенно убегает вперед.

588. ditter, 04.09.2008 00:47
собрал по быстрому нтрс на Т2500 и хозу заметить что скрипт из 1 поста для многояйцевых камней не пошел
имеем тупо чОрный экран. при снятии флажков с YU12 ( любой) из этой строки появляется отдельный кадр на экране.
вопрос собственно - нет ли там в скрипте ошибки ?

589. 19w85, 04.09.2008 02:12
Malder1
Ты все открывал как описано в этом (http://forum.ixbt.com/topic.cgi?id=62:12524:286#286) посте?
И еще...в фильтре "AC3 Audio Decoder" SPDIF включено (http://ipicture.ru/uploads/080904/K2uTA65PfG.png) ?

MAG79
Кстати, я чуть выше ссылку привел на твой пост...и мне показался способ описанный в ней слишком муторным...я лично, просто извлекаю дорожку и переименовываю, чтобы совпадало с именем скрипта и тогда при открытии скприпта открывается всего одно видеоокно (не надо ничего запрещать), а дорожка сама автоматически подхватывается...
цитата:
MAG79
Кстати, в таком случае не наблюдается опережения звука? Теоретически должно. Хотя в том же AC3Filter'е задержку можно вручную выставить.
Задержку можно прямо в плеере настроить горячими клавишами и в MPC и в Кристале и лезть в AC3Filter не нужно будет...
Но я так почти не смотрю...с хорошими параметрами скрипта у меня даже рипы не идут без тормозов, а с плохими - меня не устраивает качество, поэтому рипы пока смотрю в кристале (в нем хоть есть помимо мультисемплинга, еще и функции по улучшение картинки суперсемплинг, 2 уровня настройки четкости), а вот в MPC хоть и есть фильтр четкости (5 видов), но ни один мне не нравится (как-то картинку они портят)...(да и к тому же, те рипы, которые я смотрю по большей части имеют стерео звук, потому что я качаю рипы только, когда этого нет в формате 720p или DVD9,5...поэтому и кристалом без SPDIF пользоваться не смертельно)

Так вот, рипы смотрю в Crystal
DVD в WinDVD7
интерлейсные DVD - в WinDVD9,
и только для HDrip'ов 720p использую скрипт для предварительного просчета промежуточных кадров...
За это сообщение сказали спасибо: MAG79

590. MAG79, 04.09.2008 03:12
Malder1
не опережает, если я перевожу 25p в 75p. Но для вышеразмещенного скрипта 24p в 60p звук постепенно убегает вперед.
Во-о-от. Это побочный эффект применения команды killaudio.
Что происходит при обработке видеофайла скриптом: видеопоток и звук открываются синхронно. Видеопоток обрабатывается для получения большей плавности и в результате применения команды AssumeFPS приобретает изначально заданную частоту кадров. При этом может произойти как замедление, так и ускорение видеопотока. Поэтому требуется аналогичное действие для аудиодорожки. Для этого и используется команда timeStretch. А вот в случае killaudio аудио-дорожка в скрипте игнорируется. В трее остается AC3Filter, распаковывающий оригинальную аудиодорожку с оригинальной скоростью. Отсюда рассинхронизация звука и видео.

Добавление от 04.09.2008 03:28:

19w85
мне показался способ описанный в ней слишком муторным...я лично, просто извлекаю дорожку и переименовываю
Действительно муторный. Сейчас я делаю уже по-другому: Распаковываю в PCM и слушаю через 5.1 выходы. Тогда мне не позволила это сделать ошибка в старых драйверах звуковухи. После обновления все пришло в норму.


По поводу ссылки на "Планету земля" и хороших параметров скрипта.
Позавчера смотрел 5-ую серию "Планета Земля (BBC)" 1280x720@25. Использовал скрипт описанный в этом сообщении (http://forum.ixbt.com/topic.cgi?id=62:12524:569#569) (только указал mask=2). Пришлось разогнать процессор с 2,4 до 2,55 ГГц. На всем протяжении фильма у Crystal'a видеобуфер заканчивался раз 5 (т.е. неплохо было бы еще подразогнать). Но тем не менее, по сравнению с тем скриптом я на протяжении всего фильма только в одном месте заметил артефакты от увеличения плавности: это был гало-эффект на границах четкого предмета, перемещающегося в центре экрана. В остальном, качеством работы алгоритма я остался весьма доволен.

За это сообщение сказали спасибо: 19w85

591. 19w85, 04.09.2008 07:13
MAG79
цитата:
Видеопоток обрабатывается для получения большей плавности и в результате применения команды AssumeFPS приобретает изначально заданную частоту кадров. При этом может произойти как замедление, так и ускорение видеопотока.
Вот поэтому я и не стал в скрипте вообще пользоваться ускорением/замедлением, потому что AC3 дорожку нельзя замедлить/ускорить не декодируя ее, а это уже значительные потери в качестве (когда возможно использование цепочки оригинальный AC3->SPDIF->ресивер)

цитата:
Действительно муторный. Сейчас я делаю уже по-другому: Распаковываю в PCM и слушаю через 5.1 выходы. Тогда мне не позволила это сделать ошибка в старых драйверах звуковухи. После обновления все пришло в норму.
Чего-то я не очень понял...ведь при открытии через скрипт аудио принудительно разжимается в стерео PCM, а не 5.1...

MAG79
Допустим имеем ролик из 1000 кадров с частотой 23.976 кадра в секунду - он проиграется за 41,7 секунд
Если его просто ускорить (ничего не расчитывая) до 25 кадров в секунду - то он проиграется за 40 секунд (такое вот на PAL DVD всегда бывает, поэтому фильмы изданные в PAL на ~5 минут короче)

А вот с просчетом дополнительных кадров я не очень понимаю, почему должна появляться рассинхронизация...
Имеем фильм 23,976 увеличиваем частоту в 3 раза - имеем 71,928 fps в секунду, потом эти 71,928 fps растягиваем до 75 fps
Конкретно в эту секунду видео проигрывается чуть быстрее и так каждую секунду, но за счет того, что кадры из других секунд не берутся, итоговая продолжительность не меняется...
Тогда откуда должна появится рассинхронизация (к тому же нарастающая)?

592. MAG79, 05.09.2008 09:30
19w85
AC3 дорожку нельзя замедлить/ускорить не декодируя ее
Наверное, так и есть - во всяком случае готовых решений без декодирования я не встречал.

при открытии через скрипт аудио принудительно разжимается в стерео PCM, а не 5.1
Это было у меня только на старом аудио-драйвере. Сейчас все разжимается и корректно работает в формате 5.1 PCM.

почему должна появляться рассинхронизация...
...эти 71,928 fps растягиваем до 75 fps
нет, в том-то и дело, что не растягиваем, а показываем расчитанные кадры со скоростью 75 fps, в каждую секунду выводятся 72 кадра из этой секунды исходного видео и еще 3 кадра, соответствующие уже следующей. Поэтому в данном примере будет наблюдаться ускорение видеопотока. Если со звуком ничего не делать, то он начнет отставать от видео.
За это сообщение сказали спасибо: 19w85

593. Paul B, 05.09.2008 17:54
MAG79
Знаешь брат, вы все тут столько умных слов понаписали аж на 24 страницы...
Я скажу коротко и ясно - для себя сколько ни крутил mvtools различных версий на различных тестовых клипах (из реального видеоконтента), а приемлемого по качеству для себя транскодирования IVTC (23.976p) --> PAL (25p) достичь так и не сумел.
Расстроился и был вынужден отказаться от мыслей использовать mvtools.
.

594. MAG79, 05.09.2008 18:02
ditter
нет ли там в скрипте ошибки ?
Ошибки нет, т.к. многие этими скриптами пользуются. Судя по сообщению, ты пытался запустить многопоточный скрипт через ffdShow. Такое сочетание не работает, про что предупреждается в первом сообщении. Внимательно ли оно было прочитано?

Добавление от 05.09.2008 18:15:

Paul B
MVTools не принимает участия при "транскодирования IVTC (23.976p) --> PAL (25p)". В таких случаях я предлагаю не транскодировать, а просто изменять частоту кадров (при неизменном кол-ве кадров).
MVTools же рекомендую использовать для _кратного_ увеличения частоты кадров, а дальше "дотягивать" частоту кадров без изменения их количества при помощи AssumeFPS.

попробуй assumeFPS(25).timeStretch(tempo=100.0*25/23.976)

595. ditter, 06.09.2008 01:56
MAG79
не ради флуда а ради истины.
в первом посте этой темы приведены два скрипта. как раз вместе со скрином ffdShow и красными пометками (threads=2 ).
соответственно я использовал МТ скрипт и ffdShow , а не SetMTMode-скрипт который явно содержит строку SetMTMode(2) и про который мелко написано что низзя
если я не прав то прошу поправить меня или инфу в первом посту,
да + хочется все таки обходится без написания конкретных скриптов под конкретные фильмы (для упрощения запуска на нтрс) , хотя сразу соглашусь что с ними интереснее и гибче, если будет хотя бы краткий мануал на тему - составление и оптимизация кодеков под конкретные релизы фильмов, то почему и не попробовать

596. MAG79, 06.09.2008 09:50
ditter
я использовал МТ скрипт и ffdShow , а не SetMTMode-скрипт который явно содержит строку SetMTMode(2) и про который мелко написано что низзя
Тогда все сделано верно. Откуда взялся черный экран и почему отображается один кадр - надо разбираться.
Можешь провести на своем htpc тест (MVFlowFps HD Test - Тест производительности при повышении плавности видео (http://forum.ixbt.com/topic.cgi?id=8:21962) )?
По его результатам мне проще будет советовать, что еще требуется настроить.

хочется все таки обходится без написания конкретных скриптов под конкретные фильмы (для упрощения запуска на нтрс)
Их можно и нужно формировать автоматически. Если в ближайшее время никто не сделает, то видимо придется самому на основе наработок из упомянутого теста (и по результатам накопленной статистики производительности) создавать автоматический сборщик скрипта.

597. LordMerlin, 06.09.2008 10:12
цитата:
MAG79:
Их можно и нужно формировать автоматически. Если в ближайшее время никто не сделает, то видимо придется самому на основе наработок из упомянутого теста (и по результатам накопленной статистики производительности) создавать автоматический сборщик скрипта.

+100500
Я думаю всем от этого было бы намного проще. И кстати тебе тоже потому как ушли бы вопросы по поводу "А как мне сделать в такой ситуации а как в такой".
А будут вопросы только по автоформированию скрипта и все.

Респект за твою работу.

Добавление от 06.09.2008 10:14:

MAG79
Кстати не было никакой информации по поводу производительности в твоих скриптах процессоров Phenom х4.
Потому как при равных характеристиках с Квадами стоят почти вполовину дешевле (Во всяком случае у нас).

598. Vovanchik81, 07.09.2008 10:56
MAG79
вчера вечером от нечего делать и от количества выпитого решил попробовать увеличить количество потоков при обработки до 12 - изображение визуально не испортилось, а распределение нагрузки между ядрами улучшилось.... по идее то распараллеливание задач на большое количество потоков дает менеджеру потоков виндовому большую свободу в их равномерном распределении между ядрами.
может конечно потому что у меня сервер 2003 стоит, и у него менеджер потоков вроде помощней чем у хр, но эффект понравился.

599. MAG79, 08.09.2008 07:36
LordMerlin
не было никакой информации по поводу производительности в твоих скриптах процессоров Phenom х4.
Phenom'ы x4 (как и x3) еще не тестировались. Если у кого-то есть возможность, то милости просим (http://forum.ixbt.com/topic.cgi?id=8:21962) .

Vovanchik81
...решил попробовать увеличить количество потоков при обработки до 12 - изображение визуально не испортилось, а распределение нагрузки между ядрами улучшилось...
Главное, чтобы производительность не пострадала. Можешь сравнить разницу между 6 и 12?

Многопоточный вариант MVTools от josey_wells создает аж 35 потоков (http://forum.doom9.org/showthread.php?p=1170159#post1170159) . Но я считаю, что существует оптимальное количество потоков для каждого случая. Недостаток их количества приводит к неравномерной загрузке и простою отдельных ядер процессора, а избыток - порождает лишние задержки, связанные с инициацией, управлением этими потоками и обменом данными между потоками. Мои наблюдения под WinXP указывают, что для 4 ядер таким оптимальным количеством потоков является 6.

600. Madsly, 09.09.2008 00:38
Филипсовский HD DNM какие имеет недостатки по сравнению со скриптом, который реально работает на доступных по деньгах современных камнях?

601. MAG79, 09.09.2008 03:35
Madsly
Филипсовский HD DNM...
В телевизорах который? Сложно сказать... Надо человека с большим опытом просмотра Филипса и имеющего компьютер, чтобы он мог описать разницу с работой осуждаемых скриптов.

Если же имелась в виду реализация филипсовского DNM на компьютере - TrimensionDNM, то по метрике структурного подобия (SSIM) DNM показал результаты (http://forum.ixbt.com/topic.cgi?id=62:12524:96#96) выше CrystalPlayer'а, но немного уступил скритам MVTools и MSU. Такая ситуация была в начале этого года. С тех пор появился All2HD от Trimension, а скорость и качество работы скрипта MVTools постоянно улучшались. Есть мнение (http://forum.ixbt.com/topic.cgi?id=62:12524:589#589) (19w85), и я его разделаю, о том, что для каждой задачи лучше использовать свой механизм повышения плавности.
Правда рост производительности техники вносит свои коррективы, и если раньше нужно было выбирать между скоростью и качеством, то теперь уже начинают вырисовываться компромиссные настройки скрипта (http://forum.ixbt.com/topic.cgi?id=62:12524:569#569) , позволяющие комфортно смотреть видео с эффектом плавности в реальном времени.

Скрипт становится все доступнее и менее требовательнее к производительности компьютера:
Вчера тестировал новую бета версию MVTools (1.11) от Fizick'а. Новая команда расчета промежуточных кадров MVBlockFps, основанная на блочной компенсации движения, показала прирост скорости работы на 40% относительно применяемой сейчас MVFlowFps.

602. Madsly, 09.09.2008 16:48
MAG79
В телевизорах который?
Да который в телевизорах и именно для HD 720/1080p. Можно и аналоги в других телевизорах попробовать, но я не уверен что они все работают с HD контентом.

Насколько я понял скрипт MVTools пока ещё неудобен для конечного использования, да и для HD контента проц должен быть очень дорогим... и TrimensionDNM работает только с mpeg2 контентом и не подцепляется к HD.

Чего ждать в ближайшее время?

603. Fizick, 09.09.2008 20:47
Случайно наткнувшись на эту ветку, решил добавить, что для анализа и изменения частоты для Avisynth разрабатывался также плагин Motion.dll от mg262, и как раз для RealTime.

Вот ветка обсуждения
http://forum.doom9.org/showthread.php?t=101859
К сожалению, файлов на сайте разработчика не осталось. На последней странице в конце той ветки есть ссылка на rapidshare.

Там функция-скрип MotionProtectedFps. Писались и другие скрипты.

Добавление от 09.09.2008 20:55:

http://avisynth.org/warpenterprises/files/motion_25_dll_20051212.zip

За это сообщение сказали спасибо: MAG79

604. djonline, 10.09.2008 12:26
Fizick, добро пожаловать. Спасибо за участие в разработке MVTools и внесенный вклад в развитие технологии сглаживания движений. Было бы интересно узнать о новой MVBlockFps и за счёт чего она стала быстрее, изменилось ли качество.

605. Vovanchik81, 10.09.2008 12:35
ну да... ща вот в сомненьях весь какой медиацентр на кинотеатр собирать. толи с мощным камнем и стремной видюхой. толи дождаться пока на cuda портируют и купить соответсвующую видюху и холодный камень... толи вообще ничего не покупать, а подключить напрямую сетевуху в телек в порт HMG и смотреть напрямую из сети...
хорошо телек еще новый не купил и ремонт в большой комнате не доделал - есть время осмотреться на рунке технологий

606. djonline, 10.09.2008 12:40
Vovanchik81, под медиацентр лучше взять телевизор Philips в котором уже встроенное DNM. Это всё пока не автоматизированно, и требует ручных настроек для каждого материала.

607. Vovanchik81, 10.09.2008 12:48
djonline
ну телек то выбираю не столько по мозгам его, сколько по итоговой картинке
пока что остановился на 6090(H) от пионера.

так что мозги рассматриваю на конкретной модели, а не по всему многообразию рынка

к томуж лично у меня все в достаточной мере автоматизированно. там где не справляется однопоточный скрипт из вкладки ffdshow запускаю унифицированный скрипт для проигрывания...
кстати вроде есть возможность передать внутрь скрипта файл как параметр... ща как будет время это дело все вспомню и отчитаюсь.
т.е. говоря русским языком появится возможность просто кидать на скрипт видеофайл для его произрывания вместо прописывания его имени в самом скрыпте

608. MAG79, 11.09.2008 10:26
Madsly
Чего ждать в ближайшее время?
Что скрипт станет более автоматизированным, а процессоры менее дорогими
Вот Vovanchik81 дельные вещи говорит о запуске файлов с параметрами.


djonline
MVBlockFps и за счёт чего она стала быстрее
В ней применяется частичная компенсация не попиксельно, а поблочно, что не требуется расчета траектории перемещения для каждого пикселя в отдельности. Поэтому работает быстрее.

изменилось ли качество
Да. В некоторых случаях в лучшую сторону: резкие движения, нечеткие контуры...
А в некоторых в худшую: иногда видны "лесенки-квадраты" на наклонных контурах.

609. Vovanchik81, 11.09.2008 10:56
MAG79
вроде большую часть придумал... но напрямую на скрыпт кидать файл не получиться - скорей всего нужно будет делать батник который будет динамически формировать скрыпт и потом его запускать... хотя с дрйгой стороны не важно...

вечером еще подумаю как можно определить фпс файла для передачи скрыпту. думаю это в тесте производительности есть. ну и потом написать скрыпт сам и протестить его. может даже в контекстное меню файла загнать получиться.

610. Бельмас Олег, 11.09.2008 14:47
Madsly
Филипсовский HD DNM какие имеет недостатки по сравнению со скриптом, который реально работает на доступных по деньгах современных камнях?

Про филипсовский не знаю. Могу расказть по самсунговский Movie Plus. Телек 40M87BDX.
Во первых - в моем телеке он работает только до разрешения 1280х720 - выше уже нет. Во вторых, при большом разрешении явно проц телека уже не тянет - и дерганий много, и менюшку не дождешься

На DVD и эфире - смотрел и смотрю только с ним (Movie Plus). По качеству против скриптов тут двояко - артефактов больше у самсунга, плавность у самсунга меньше чем у скриптов. Но есть одно НО - у самсунга, когда эту фишку включаешь, картинка становится как-бы объемная. Т.е. реально кажется, что присутствует объем. В сриптах такого эфекта нет, хотя по всем остальным критериям скрипты телек заруливают легко.

ЗЫ: если бы телек выбирал сейчас, то брал бы обязательно с такой функцией, и чтобы она работала на FullHD. Но к сожалению, когда я покупал свой - такой фишки еще не было в телеках. Потому как хоть на компе и качество лучше, и универсальности больше - но было бы в телеке - пользовался бы исключительно Movie Plus - и проще и удобнее, и комп можно было бы послабее потише сделать.

611. Vovanchik81, 12.09.2008 01:47
написал скрыпт... получилси универсальный и красивый.. завтра инсталятор наваяю и выложу окончательно
код:
SET DIRNAME=%~dp0
for /f "tokens=3 delims=: " %%a in ('%DIRNAME%\MediaInfo %1 ^| find "Frame rate"') do set fps=%%a
echo SetMemoryMax(768)>%DIRNAME%\play.avs
echo DirectShowSource(%1,%fps%)>>%DIRNAME%\play.avs
echo multi=2 >>%DIRNAME%\play.avs
echo SetMTMode(5,6)>>%DIRNAME%\play.avs
echo num=FramerateNumerator(last)>>%DIRNAME%\play.avs
echo den=FramerateDenominator(last)>>%DIRNAME%\play.avs
echo SetMTMode(2)>>%DIRNAME%\play.avs
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%DIRNAME%\play.avs
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%DIRNAME%\play.avs
echo last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)>>%DIRNAME%\play.avs
%DIRNAME%\play.avs

http://rapidshare.com/files/144503088/MVTools.exe.html
вот инсталятор
для работы после установки вручную ассоцируете (открыть с помощью) видеофайлы помимо проигрывателей еще и с файлом start.cmd по адресу C:\MVTools
За это сообщение сказали спасибо: MAG79

612. ditter, 12.09.2008 02:51
Бельмас Олег
хочу заметить насчет обьемности - первое что бросается в глаза при использовании прог из этой ветки - изображение стало обьемным и если мощи компа хватет на пару дополнительных фильтров то иной раз с непривычки аж измена берет
победил кстати свои трабыл (начало этой стр) просто переустановив все сначала и поверх.
еще раз спасибо авторам и всем причастным
для полного счастья ждемс CUDA Nehalem Larabee что нас первое порадует.

613. Shon26, 12.09.2008 08:02
Vovanchik81
В скрипте появляется ошибка при открытии avi:
echo DirectShowSource("%1",%fps%)>>%DIRNAME%\play.avs
при открытии mkv проблемы не возникают.

614. Vovanchik81, 12.09.2008 09:42
такое впечатление что имя файла не передалось скрипту.
проелов в пути к видеофайлу нет?

вечером приду, протестирую посерьезней.

Добавление от 12.09.2008 09:50:

только что осознал что с русскими именами файла не очень, надо скрыпт в utf8 кодировке переписать




вроде как начал корректно работать с русскими путями и путями содержащими пробелы... для исключения путаницы заменил имя батника на play.cmd
теперь после установки с ним переассоциируйте видеофайлы, а файл start.cmd желательно удалить

http://rapidshare.com/files/144686091/MVTools.exe.html
обновил файл

Добавление от 12.09.2008 22:01:

итоговый скрыпт под мою машину выглядит вот так

код:
echo off
chcp 1251
for /f "tokens=3 delims=: " %%a in ('%~dp0\MediaInfo %1 ^| find "Frame rate"') do set fps=%%a
echo SetMemoryMax(768)>%~dp0\play.avs
echo SetMTMode(5,12)>>%~dp0\play.avs
echo DirectShowSource(%1,%fps%)>>%~dp0\play.avs
echo multi=2 >>%~dp0\play.avs
echo num=FramerateNumerator(last)>>%~dp0\play.avs
echo den=FramerateDenominator(last)>>%~dp0\play.avs
echo SetMTMode(2)>>%~dp0\play.avs
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=true, searchparam=1, idx = 2)>>%~dp0\play.avs
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=true, searchparam=1, idx = 2)>>%~dp0\play.avs
echo last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=2, idx=2)>>%~dp0\play.avs
echo killAudio>>%~dp0\play.avs
start %~dp0\play.avs
exit

615. Shon26, 13.09.2008 09:39
Vovanchik81
Интересно почему если толкнуть avi файл не хотят появляться так сказать двойные запятые ("c:\video.avi"), получается (c:\video.avi), если в скрипте их поставить DirectShowSource("%1",%fps%) то все нормально, но опять же при вставке какого нибудь mkv получается (""c:\matroska.mkv"")?

616. Vovanchik81, 13.09.2008 11:25
Shon26у меня оба варианта файлов прекрасно отыгрываются.
да и скрипту абсолютно все равно какой именно тип файла ты ему скармливаешь, он без разбора по шаблону должен отработать.
возможно дело вот в чем - если пробелов и нелатинских букв в пути нет - винда подставлят файл без кавычек
в обратном же случае адрес файла преобразуется в переменную типа string самой виндой и подается в кавычках соответственно

на 2003 сервере этого точно нет. возможно дело в этом... чета припоминаю, вроде раньше также сталкивался.
может еще кто нить на xp проверить так ли это? у меня просто под рукой его нет.

617. Shon26, 13.09.2008 12:46
Ага! ты еще не знаешь что придумал!Если поставить к примеру ассоциацию всех avi на play.cmd, то все файлы avi будут открываться сразу через скрипт!

618. Vovanchik81, 13.09.2008 12:48
Shon26
ну я вообщет тока так уже второй день фильмы и смотрю... кликаешь файл киношки и она запускается уже со сглаживанием... of вот думаю как сформировать скрыпт в папке фильма и с аналогичным именем, чтоб доп файлы подцеплялись автоматически

619. MAG79, 13.09.2008 16:03
Vovanchik81
Спасибо за скрипт и за инсталляцию. Тоже уже пользуюсь.

Shon26
Чтобы открывались все файлы (с кавычками и без) надо заменить %1 на %~1. Этот модификатор убирает кавычки, если параметр содержал их.

Vovanchik81
Если копать в сторону модификаторов, то:
%~p1 - путь до файла.
%~n1 - имя файла.
Можно смело создавать скрипт рядом с запускаемым файлом и брать его имя.

620. Vovanchik81, 13.09.2008 16:32
http://rapidshare.com/files/144927906/MVTools_1.1.exe.html
получается вот так вот получится малость постабильней?
какие еще задумки будут?
хотел прикрутить инвариантность в плане многопоточности, только нужно ли это?
все равно любой может и так под себя поправить

пока что вот так вот умолчальный скрыпт выглядит
код:
chcp 1251
for /f "tokens=3 delims=: " %%b in ('%~dp0\MediaInfo "%~1" ^| find "Frame rate"') do set fps=%%b
echo SetMemoryMax(768)>%~n1.avs
echo SetMTMode(5,6)>>%~n1.avs
echo DirectShowSource("%~1",%fps%)>>%~n1.avs
echo multi=2 >>%~n1.avs
echo num=FramerateNumerator(last)>>%~n1.avs
echo den=FramerateDenominator(last)>>%~n1.avs
echo SetMTMode(2)>>%~n1.avs
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%~n1.avs
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%~n1.avs
echo last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)>>%~n1.avs
start %~n1.avs
exit

621. ab_99, 13.09.2008 18:38
цитата:
Vovanchik81:...
какие еще задумки будут?
хотел прикрутить инвариантность в плане многопоточности, только нужно ли это?
все равно любой может и так под себя поправить
...

навряд ли каждый, многих ависинт пугает своей простотой .
Сделай, плиз, для внедрения в широкие слои населения, при установке, генерацию файла "инструкция.тхт".
Примерно: п.1 скачать и установить Ависинт с сайта...; п.2 скачать mvtool.dll с сайта...

тогда, действительно, сможет каждый

MAG79
укажи, плиз, в первом посте на возможность автоматизации.

Всем СПАСИБО! за идею и реализацию.

622. AshV, 13.09.2008 21:12
Народ, а можно как нибудь подружить эту технологию с Vista 64? Что я только не делал. Не работает.

623. Vovanchik81, 13.09.2008 22:25
насчет многоядерности - думаю нужно будет сделать автовыбор при установки какой тип батника ставить - одноядерный или многоядерный
кстати как как насчет одноядерности и многопоточности? есть выигрышь? типа гипертрейдинга? вроде как чета слышал краем уха что только хуже

вот кстати обновленная версия - старая путалась с русскими именами в путях

http://rapidshare.com/files/145013017/MVTools_1.3.exe.html
еще кой чего поправил в плане совместимости
код:
@echo off
chcp 1251
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=%%b
echo SetMemoryMax(768)>"%~dpn1.avs"
echo SetMTMode(5,6)>>"%~dpn1.avs"
echo DirectShowSource("%~1",%fps%)>>"%~dpn1.avs"
echo multi=2 >>"%~dpn1.avs"
echo num=FramerateNumerator(last)>>"%~dpn1.avs"
echo den=FramerateDenominator(last)>>"%~dpn1.avs"
echo SetMTMode(2)>>"%~dpn1.avs"
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>"%~dpn1.avs"
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>"%~dpn1.avs"
echo last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)>>"%~dpn1.avs"
"%~dpn1.avs"
exit

624. ab_99, 14.09.2008 16:54
Vovanchik81:
предложение:
создавать *.avs в рабочей папке c:\mvtools, для случаев запуска с CD-диска, по сети ...
и добавить строку удаляющую *.avs после проигрывания фильма, для поддержания чистоты.

может к названию mvtools добавить, что-то типа "DNM".

625. AshV, 14.09.2008 17:24
Жаль что ни кто так и не помог в решении проблем с запуском на Vista 64. Пришлось самому бится 2 дня что бы решить все проблемы. Наконец все заработало. Поделюсь своими наработками. Может кому понадобиться.
1. Ставить нужно только 32-битные версии кодеков. 64-битные не работают c AviSynth.
2. MPC должен быть тоже только 32-битный. Версии типа Home Cinema для 64 бит не подходят.
3. При установке MT файл avisynth.dll нужно копировать в папку C:\Windows\SysWOW64

А так все прекрасно работает и на Vista 64. Любое видео вплоть до 1280х544 прекрасно работает со скриптом для многоядерных систем с первой страницы на Q6700. Если разогнать подозреваю что и 1280х720 без проблем пойдет.
За это сообщение сказали спасибо: MAG79

626. Vovanchik81, 14.09.2008 17:55
создавать *.avs в рабочей папке c:\mvtools, для случаев запуска с CD-диска, по сети
если придумаю как это красиво сделать - сделаю обязательно
наметки есть, тока энтузиазма пока не хватает
добавить строку удаляющую *.avs после проигрывания фильма, для поддержания чистоты
были мысли. пока руки не дошли. да и удобно так, можно в каждом конкретьном случае после работы скрипта формарующего avs вручную его подредактировать и заново уже без батника запустить. а так рон будет убиваться после закрытия плеера
так что вопрос пока что спорный

627. ab_99, 14.09.2008 19:28
цитата:
Vovanchik81:
если придумаю как это красиво сделать - сделаю обязательно
наметки есть, тока энтузиазма пока не хватает

может так? - "c:\mvtools\%~n1.avs"

628. Vovanchik81, 14.09.2008 19:34
ab_99
может так? - "c:\mvtools\%~n1.avs"

не, сначала нужно проверку на создание файла рядом с киношкой сделать. если не получится создать - тогда уже так.

629. ab_99, 14.09.2008 19:58
цитата:
Vovanchik81:

не, сначала нужно проверку на создание файла рядом с киношкой сделать. если не получится создать - тогда уже так.
для чего? если фильм на CD, то точно не создат, а на сетевом ресурсе дадут по рукам.

2. не лишним будет, после DirectShowSource, добавить строчку :
echo converttoyv12() >>"c:\mvtools\%~n1.avs"
иногда mvtools капризничает

630. Vovanchik81, 14.09.2008 20:02
код:
@echo off
chcp 1251
echo test >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set setpath="%~dpn1.avs") else (set setpath="play.avs")
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=%%b
echo SetMemoryMax(768)>%setpath%
echo SetMTMode(5,6)>>%setpath%
echo DirectShowSource("%~1",%fps%)>>%setpath%
echo multi=2 >>%setpath%
echo num=FramerateNumerator(last)>>%setpath%
echo den=FramerateDenominator(last)>>%setpath%
echo SetMTMode(2)>>%setpath%
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%setpath%
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%setpath%
echo last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)>>%setpath%
%setpath%
del /f /q %setpath%
exit


ab_99
если фильм на CD, то точно не создат,
в том то и дело что точно не создаст. а играть то тогда что будет должен?
короче пока вот так вот. насчет конверта - думаю of добавлю.

631. GL, 14.09.2008 20:05
подскажите почему так? использовал скрипты, что ранее были выложены и сейчас MVTools. MAG79 и
Vovanchik81 большое спасибо за работу.
на одних и тех же киношках 1280х720 загрузка проца q6600 не превышает 30-32%. если выше, то тормоза с видео. и тут же на них иногда все в норме. кино идет без тормозов и загрузка 55-60%.. комп не перезагружался, ниче не устанавливалось. запущеные в фоне проги те же. в чем дело?

632. ab_99, 14.09.2008 20:06
цитата:
Vovanchik81:
...
в том то и дело что точно не создаст. а играть то тогда что будет должен?
короче пока вот так вот. насчет конверта - думаю of добавлю.
ышшо, MediaInfo.exe на некоторых фильмах не возвращает частоту кадров, и в сформированном скрипте после запятой не стоит параметр, ругается однако.

633. Vovanchik81, 14.09.2008 20:10
ab_99
неможетбыть.
))
а путь к файлу точно корректно распознавался?
в предыдущих версия в связи с этим косяки были

Добавление от 14.09.2008 20:13:

GL
а по комням отдельно смотрел загрузку?

634. GL, 14.09.2008 20:16
Vovanchik81
смотрел. когда играет в норме загрузка более менее равномерная. когда тормоза то 4-й на 60% остальные не больше 10%
щас странно все наладилось и все киношки идут с равномерной загрузкой проца.

635. Vovanchik81, 14.09.2008 20:18
код:
@echo off
chcp 1251
echo test >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="play.avs")
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=,%%b
echo SetMemoryMax(768)>%avsfile%
echo SetMTMode(5,6)>>%avsfile%
echo DirectShowSource("%~1"%fps%)>>%avsfile%
echo converttoyv12() >>%avsfile%
echo multi=2 >>%avsfile%
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
echo SetMTMode(2)>>%avsfile%
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%avsfile%
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%avsfile%
echo last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)>>%avsfile%
%avsfile%
del /f /q %avsfile%
exit

Добавление от 14.09.2008 20:28:

http://rapidshare.com/files/145241415/MVTools_1.4.exe.html
пробуем новый инсталятор - теперь после установки запускается страничка с веткой форума

636. GL, 14.09.2008 20:31
на старой версии было раз, что скрип не создался. плеер ругался, что не нашел что играть. щас потыкал по 10-ку с лишним русских и англицких названий, все прекрасно находиться открывается и показывается.

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

637. ab_99, 14.09.2008 20:33
цитата:
Vovanchik81:

а путь к файлу точно корректно распознавался?
в предыдущих версия в связи с этим косяки были
наверное распознался, раз я читал

однако, с диска наверное еще не запускал, путь нужно указать в явном виде, н-р:

IF EXIST "%~dpn1.avs" (set setpath="%~dpn1.avs") else (set setpath="c:\mvtools\play.avs")
цитата:
зызы.. лучше при окончании работы инсталятора вывести что типа тото и тото установлено туда то. и "ок". а то моргнуло и пропало..
ссылка-это хорошо, но лучше напоминание, что необходимо установить ависинт и mvtools, для начала.

сам лично читал только пару первых и пару последних страниц ветки.

638. Vovanchik81, 14.09.2008 20:57
ab_99
путь нужно указать в явном виде,
зачем? вдруг у кого нить ума хватит переместить папку? на данный момент он инвариантен к месту нахождения. а так будет жесткая привязка к конкретной папке.

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

639. Абай, 14.09.2008 21:01
Всем ПРИВЕТ!!! Я сам тока забрел на эту ветку и очень хотел бы понять, можна ли включить эту функцию в PowerDVD ??? Часто смотрю лиценнзионные dvd.

640. Vovanchik81, 14.09.2008 21:01
код:
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0play.avs")

641. Абай, 14.09.2008 21:14
Народ можно ли включить её в PowerDVD???

642. ab_99, 14.09.2008 21:37
цитата:
Абай:
Народ можно ли включить её в PowerDVD???
тот, что у меня на компе читать *.avs не захотел, шибко умный.
лицензионный dvd (и не только) состоит из многих файлов *.vob, посему придется каждый файл vob открывать отдельно. Имхо, комфорта не будет.

643. Абай, 14.09.2008 21:43
ab_99
Спасибо!!! Жалко блин. лана будем теперь выжидать когда Blu-ray придет в массы!!!!

644. ab_99, 14.09.2008 22:19
цитата:
Vovanchik81:
код:
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0play.avs")


теперь все работает, сенкс!
на 4 ядрах успевает и LimitedSharpenFaster крутить, убирает размытость при масштабировании на весь экран.
Так мы скоро дойдем до шумодавлеия в реальном времени.

Абай
зачем так пессимистично, можно и проигрыватель сменить.

P.S. Подробней чем написано на первой странице этой темы, я не смогу.

645. Абай, 14.09.2008 22:24
ab_99
зачем так пессимистично, можно и проигрыватель сменить.
С этого поподроюнее. Какой именно и как её включить???

646. Vovanchik81, 14.09.2008 23:07
сейчас вот сижу думаю чем оставшиеся 50-60% камня нагрузить... есть ли вариант качественно увеличить итоговое изображение до формата 720р с обрезкой не поместившихся краев?
а зернистости ему уже скайлер телека по 84 окружающим точкам добавит.
)))

647. MAG79, 15.09.2008 17:13
Какие выходные продуктивные выдались?!

ab_99
укажи, плиз, в первом посте на возможность автоматизации
указал. Прошу Vovanchik81 и остальных посмотреть, так ли написано... Может что поправить надо.


Vovanchik81
какие еще задумки будут?
Пока три:
1. Я в тесте плавное воспроизведение называл "smooth play", но если по-русски (для себя же делаем), то будет здорово, если Play.cmd назвать "Воспроизвести с плавностью 2x.cmd", тогда в контекстном меню будет: "Воспроизвести с плавностью 2x" - длинно, но зато для русского человека все понятно. Отсюда же можно будет делать модификации пакетника, и обзывать его в соответствии с его работой (для себя я уже понаделал "...с плавностью 3x", "...с плавностью (авто) 75ГЦ" и др.).
2. Инсталлятор тоже назвать более говоряще: как вариант "MVTools_smooth_play.exe".
3. У файлов с недоступных для записи источников сохранять имя (пусть складываются в папку со своими именами), тогда в плере будет видно какой именно файл смотришь (название не теряется).

как насчет одноядерности и многопоточности? есть выигрышь? типа гипертрейдинга? вроде как чета слышал краем уха что только хуже
Когда я проверял на P4 HT (весной 2008), то выигрыша от использования MT не было - наоборот, падение производительности. Сейчас появились новые версии MVTools, надо бы повторить сравнение.

GL
на одних и тех же киношках 1280х720 загрузка проца q6600 не превышает 30-32%. если выше, то тормоза с видео. и тут же на них иногда все в норме
Какой проигрыватель?
Какой способ проигрывания (AVS-скипт, вкладка AviSynth в ffdShow)?
Crystal Player пробовал? Буфер кадров в нем настраивал?

Абай
А чем WinDVD с его TrimentionDNM и All2HD не подходит?

Vovanchik81
думаю чем оставшиеся 50-60% камня нагрузить... есть ли вариант качественно увеличить итоговое изображение до формата 720р с обрезкой не поместившихся краев?
У того же Crystal Player есть SuperSampling. Для качественного масштабирования я использую Lanczos4Resize, встроенный в AviSynth. Более качественные внешние AviSynth-ресайзеры: EEDI, NEDI (но Ооочень медленные).

648. GL, 15.09.2008 18:23
на одних и тех же киношках 1280х720 загрузка проца q6600 не превышает 30-32%. если выше, то тормоза с видео. и тут же на них иногда все в норме
- Какой проигрыватель? Какой способ проигрывания (AVS-скипт, вкладка AviSynth в ffdShow)? Crystal Player пробовал? Буфер кадров в нем настраивал?

MAG79

avs скрипт. плеер кристал. все настроено по вашим описаниям.

649. Абай, 15.09.2008 20:56
MAG79
В WinDVD они уже встроенные??? надо просто включить??? или они уже включенные???
Просто я сам выбрал пользу в сторону powerDVD (в далеком 2003 году) за удобство.

650. Vovanchik81, 15.09.2008 21:14
MAG79
"Воспроизвести с плавностью 2x" - длинно, но зато для русского человека все понятно
код:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache]
"c:\\MVTools\\Play.cmd"="Воспроизвести с плавностью 2x"

Инсталлятор тоже назвать более говоряще
сделаю

У файлов с недоступных для записи источников сохранять имя
сделаю

Добавление от 15.09.2008 21:27:

REG ADD "HKCU\SOFTWARE\Microsoft\Windows\ShellNoRoam\MUICache" /V %SystemDrive%\MVTools\Play.cmd /t REG_SZ /D "Воспроизвести с плавностью 2x" /f
вот так вот еще проще и правильней

651. ab_99, 15.09.2008 21:36
цитата:
MAG79
"Воспроизвести с плавностью 2x" - длинно, но зато для русского человека все понятно
а если скромно, н-р: - "50 Гц", "60Гц", "75Гц", или "50 кадр/сек", "60 кадр/сек", "75 кадр/сек"
все уже привыкли к "100 Гц" в телевизоре

хе-хе, а если у монитора 72 Гц или 60Гц, может к частоте моника подгонять?

Vovanchik81
а чего именно обрезать по 720р, чем смотришь? Остальное плеер растянет?
если делать обрезку на всем скаку, то перед удвоением частоты, чтобы не гонять ядрра.

652. Vovanchik81, 15.09.2008 22:07
ab_99
а чего именно обрезать по 720р, чем смотришь? Остальное плеер растянет?
смысл вот какой - берем sd ролик. удваиваем частоту. растягиваем получившийся с обрезкой непоместившейся инфы строго до 720р и подаем этот сигнал на телек (pioneer 5080) он его еще раз удваивает, доводит до 100гц, апскайлит автоматически до 1365х768 и выводит на экран.
для чего такие гемморы и почему не сделать точка в точку? в режиме монитора он вигнал не обрабатывает и посылает на экран то что получил с той частотой которую ему комп передал (50 или 60Гц) ну мерцает однака.
в режиме же 720р он еще и удваивает частоту кадров.

на данный момент растягиваем и обрезкой занимается mpc - но чета уж очень мало он ресурсов ест, хотелось бы че нить более прожорливое и эффективное.

доступно обрисовал?

Добавление от 15.09.2008 22:09:

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

Добавление от 15.09.2008 23:49:

добавил проверку на многоядерность и автоматическое формирование скрыпты в зависимости от среды в которой он выполняется.
ну и остальные косметические изменения

код:
@echo off
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz
REG ADD "HKCU\SOFTWARE\Microsoft\Windows\ShellNoRoam\MUICache" /V %SystemDrive%\MVTools\Play2x.cmd /t REG_SZ /D "Воспроизвести с плавностью 2x" /f
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set numcores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set numprocessors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set numthreads=%%a
chcp 1251
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=,%%b
echo SetMemoryMax(768)>%avsfile%
IF (%numprocessors%==1) echo SetMTMode(5,6)>>%avsfile%
IF not (%numcores%==1) echo SetMTMode(5,6)>>%avsfile%
echo DirectShowSource("%~1"%fps%)>>%avsfile%
echo converttoyv12() >>%avsfile%
echo multi=2 >>%avsfile%
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
IF (%numprocessors%==1) echo SetMTMode(2)>>%avsfile%
IF not (%numcores%==1) echo SetMTMode(2)>>%avsfile%
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%avsfile%
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%avsfile%
echo last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)>>%avsfile%
%avsfile%
del /f /q %avsfile%
exit

желательно установить поновой инсталятором, потому как файлров добавилось, а имя файла изменилось. старый можно в принципе уже удалять

Добавление от 15.09.2008 23:51:

http://rapidshare.com/files/145566456/MVTools_smooth_play_1.5.exe.html

653. ab_99, 16.09.2008 01:20
Vovanchik81:
...на данный момент растягиваем и обрезкой занимается mpc - но чета уж очень мало он ресурсов ест, хотелось бы че нить более прожорливое и эффективное.
...
[/q]
смотрю тем же. Немного размывает при растягивании, для этого и поставил LimitedSharpen в конце скрипта. Но может действительно ависинт лучше растянет чем mpc. Склоняюсь к встроенному ресайзу, хотя если ядер добавить ...

654. Vovanchik81, 16.09.2008 01:22
да уже все сделал ависинком
код:
@echo off
chcp 1251
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz
REG ADD "HKCU\SOFTWARE\Microsoft\Windows\ShellNoRoam\MUICache" /V %SystemDrive%\MVTools\Play2x.cmd /t REG_SZ /D "Воспроизвести с плавностью 2x" /f
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set numcores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set numprocessors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set numthreads=%%a
for /f "tokens=2 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do set Width=%%b
for /f "tokens=2 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do set Height=%%b
for /f "tokens=4 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Display aspect ratio"') do set aspect=%%b
echo %Width% %Height% %aspect%
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=,%%b
echo SetMemoryMax(768)>%avsfile%
IF (%numprocessors%==1) echo SetMTMode(5,6)>>%avsfile%
IF not (%numcores%==1) echo SetMTMode(5,6)>>%avsfile%
echo DirectShowSource("%~1"%fps%)>>%avsfile%
echo converttoyv12() >>%avsfile%
echo multi=2 >>%avsfile%
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
if "%aspect%"=="16/9" echo crop((Width-Round(Height*1280/720))/2,0,Round(Height*1280/720),Height)>>%avsfile%
if "%aspect%"=="4/3" echo crop(0,(Height-Round(Width*720/1280))/2,Width,Round(Width*720/1280))>>%avsfile%
echo Lanczos4Resize(1280,720)>>%avsfile%
IF (%numprocessors%==1) echo SetMTMode(2)>>%avsfile%
IF not (%numcores%==1) echo SetMTMode(2)>>%avsfile%
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%avsfile%
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%avsfile%
echo last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)>>%avsfile%
%avsfile%
del /f /q %avsfile%
exit

вот так работает

655. ab_99, 16.09.2008 01:55
цитата:
Vovanchik81:
...вот так работает
ну не успеваю я

последний вариант не заработал

А, ну да, пауза. А зачем? в формате 3х4 обрезало верх и низ, ты именно так хотел, а не бока?

656. Vovanchik81, 16.09.2008 02:08
попробуй самый самый последний
код:
@echo off
chcp 1251
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz
REG ADD "HKCU\SOFTWARE\Microsoft\Windows\ShellNoRoam\MUICache" /V %SystemDrive%\MVTools\Play2x.cmd /t REG_SZ /D "Воспроизвести с плавностью 2x" /f
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set numcores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set numprocessors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set numthreads=%%a
for /f "tokens=2 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do set Width=%%b
for /f "tokens=2 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do set Height=%%b
for /f "tokens=4 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Display aspect ratio"') do set aspect=%%b
echo %Width% %Height% %aspect%
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=,%%b
echo SetMemoryMax(768)>%avsfile%
IF (%numprocessors%==1) echo SetMTMode(5,6)>>%avsfile%
IF not (%numcores%==1) echo SetMTMode(5,6)>>%avsfile%
echo DirectShowSource("%~1"%fps%)>>%avsfile%
echo converttoyv12() >>%avsfile%
echo multi=2 >>%avsfile%
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
if "%aspect%"=="16/9" echo crop((Width-Round(Height*1280/720))/2,0,Round(Height*1280/720),Height)>>%avsfile%
if "%aspect%"=="4/3" echo crop(0,(Height-Round(Width*720/1280))/2,Width,Round(Width*720/1280))>>%avsfile%
echo Lanczos4Resize(1280,720)>>%avsfile%
IF (%numprocessors%==1) echo SetMTMode(2)>>%avsfile%
IF not (%numcores%==1) echo SetMTMode(2)>>%avsfile%
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%avsfile%
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%avsfile%
echo last.MVFlowFps(backward_vec1,forward_vec1, num=multi*num, den=den, mask=0, idx=1)>>%avsfile%
%avsfile%
del /f /q %avsfile%
exit


работает нормально только если аспект ратио 4/3 или 16/9 (во время работы скрыпта видно)
остальные еще толком не придумал как распределить

Добавление от 16.09.2008 02:12:

придумал, нужно сравнивать соотношение сторон с 16/9 - если больше - то один гроп, если меньше второй.
все ушел спать.

Добавление от 16.09.2008 02:14:

ab_99
в формате 3х4 обрезало верх и низ, ты именно так хотел, а не бока?
именно. все что не влазиет в 16/9 приходится срезать чтоб краев не лицезреть или не растягивать или сжимать

657. ab_99, 16.09.2008 02:26
цитата:
Vovanchik81:
...придумал, нужно сравнивать соотношение сторон с 16/9 - если больше - то один гроп, если меньше второй.
можно просто Height=int(Width /16*9), по памяти. Но там есть грабли в виде, н-р:

Crop: YV images can only be cropped by even numbers (top).
(*.avs, line8), цитата с экрана

658. Vovanchik81, 16.09.2008 04:45
короче выспался
((
код:
@echo off
chcp 1251
rem Установка выходного разрешения для видео, коэффициента кратного увеличения частоты видео, необходимости обрезки и масштабирования исходного клипа перед обработкой
set /a ExWidth=1280
set /a ExHeight=720
set /a ExMulti=2
set /a ExCrop=1
set /a ExResize=1
rem Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz
rem Прописывание правильной строки в контекстном меню файла
REG ADD "HKCU\SOFTWARE\Microsoft\Windows\ShellNoRoam\MUICache" /V %SystemDrive%\MVTools\Play%ExMulti% x.cmd /t REG_SZ /D
"Воспроизвести с плавностью %ExMulti% x" /f
rem Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
rem Вычисление соотношения сторон по ширине и высоте клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do (
set Width=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a)
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%)
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do (
set Height=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a)
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%
set /a aspect=%Height%*10000/%Width%
rem Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")
rem Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=,%%b
echo SetMemoryMax(768)>%avsfile%
rem Условие на многопоточность
IF %processors%+%cores% LSS 2 echo SetMTMode(5,6)>>%avsfile%
echo DirectShowSource("%~1"%fps%)>>%avsfile%
echo converttoyv12() >>%avsfile%
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
rem Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %aspect% LSS %ExHeight%/%ExWidth%*10000 echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,Round(Height*%ExWidth%/%ExHeight%/2)*2,Height)>>%avsfile%
if %ExCrop%==1 if %aspect% GTR %ExHeight%/%ExWidth%*10000 echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,Width,Round(Width*%ExHeight%/%ExWidth%/2)*2)>>%avsfile%
rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExResize%==1 echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%
rem Условие на многопоточность
IF %processors%+%cores% LSS 2 echo SetMTMode(2)>>%avsfile%
rem Алгоритм кратного увеличение частоты кадров
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%avsfile%
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)>>%avsfile%
echo last.MVFlowFps(backward_vec1,forward_vec1, num=%ExMulti%*num, den=den, mask=0, idx=1)>>%avsfile%
rem Запуск проигрывания файла
%avsfile%
rem Зачистка результатов
del /f /q %avsfile%
exit

вроде заработало все на автомате

659. ab_99, 16.09.2008 14:46
Vovanchik81:
set'ом не передаются параметры X,Y в avs - файл, задавай в явном виде

2. Сравнивал качество с растяжкой плеером?

660. MAG79, 16.09.2008 14:58
GL
все настроено по вашим описаниям
А декодер какой используется? ffdShow или CoreAVC? и версия?

Абай
В WinDVD они уже встроенные??? надо просто включить??? или они уже включенные???
В WinDVD 6-8 механизи называется TrimensionDNM. Можно включить на прогрессиве или с деинтерлейсом Weave.
В WinDVD 9 - All2HD (работает на черезстрочных источниках).
Подробнее см. описание и ссылки в первом сообщении темы.

ab_99
а если у монитора 72 Гц или 60Гц, может к частоте моника подгонять?
Именно так и делаю - у моего монитора частота 75 ГЦ.

Vovanchik81
Огромное спасибо! Уверен, что эти бессоные ночи прошли не зря - благодаря тебе, как минимум, повысилось удобство использования скрипта.
Но спать все-таки иногда полезно

Насчет вписывания картинки в размер экрана с отрезанием бордюров - я сторонник вписывания не на все 100% (а где на 50), иначе полезная информация с периферии теряется.
50% - это значит, если при просмотре оригаинала черные бордюры по 100 пикселей в ширину, то я при просмотре увеличиваю всю картинку, оставляя от этих бордюров по 50 пикселей.

В прошлом посте я не совсем верное название внешним фильтрам AviSynth (http://avisynth.org/mediawiki/External_filters) дал: правильное EEDI2 и NNEDI. Вот глянь как NNEDI красиво работает: иллюстрация (http://forum.doom9.org/showthread.php?p=1087914#post1087914) .

661. Vovanchik81, 16.09.2008 18:22
MAG79
иначе полезная информация с периферии теряется
ну на периферии не очень то и много полезной инфы. но эт тож лично мое мнение, не претендующее на уникальность.
вроде отладил полностью скрыпт. на данный момент во всяком случае.
если еще чего нового не придумаю.

ввел управляющие константы
если значение равно 1 то данная функция отрабатывается.
код:
@echo off
chcp 1251
rem Установка выходного разрешения для видео, коэффициента кратного увеличения частоты видео, необходимости обрезки и масштабирования исходного клипа перед обработкой
set /a ExWidth=1280 ширина монитора в пикселях
set /a ExHeight=720 высота монитора в пикселях
set /a ExMulti=2 коэффициеент умножения кадров
set /a ExCrop=1 включение автообрезки краев
set /a ExResize=1 включение авторастягивания до размеров монитора
set /a ExCropBF=0 включение уровня обрезки черных полос (четное положительное значение)
rem Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz
rem Прописывание правильной строки в контекстном меню файла
REG ADD "HKCU\SOFTWARE\Microsoft\Windows\ShellNoRoam\MUICache" /V %SystemDrive%\MVTools\Play%ExMulti% x.cmd /t REG_SZ /D
"Воспроизвести с плавностью %ExMulti% x" /f
rem Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set /A threads=%%a
rem Вычисление соотношения сторон по ширине и высоте клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do (
set Width=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a)
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%)
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do (
set Height=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a)
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%
if not %ExCropBF%==0 set /a Height=%Height%-2*%ExCropBF%
set /a ExAspect=%ExHeight%*10000/%ExWidth%
set /a Aspect=%Height%*10000/%Width%
rem Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")
rem Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=,%%b
echo SetMemoryMax(768)>%avsfile%
rem Условие на многопоточность
IF %processors%+%cores% LSS 2 echo SetMTMode(5,%threads%+2)>>%avsfile%
echo DirectShowSource("%~1"%fps%)>>%avsfile%
echo converttoyv12() >>%avsfile%
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
if not %ExCropBF%==0 echo crop(0,%ExCropBF%,-0,-%ExCropBF%)>>%avsfile%
rem Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %Aspect% LSS %ExAspect% echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,-Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0)>>%avsfile%
if %ExCrop%==1 if %Aspect% GTR %ExAspect% echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,0,-Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2)>>%avsfile%
rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExResize%==1 echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%
rem Условие на многопоточность
IF %processors%+%cores% LSS 2 echo SetMTMode(2)>>%avsfile%
rem Алгоритм кратного увеличение частоты кадров
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo last.MVFlowFps(backward_vec1,forward_vec1, num=%ExMulti%*num, den=den, mask=0, idx=1)>>%avsfile%
rem Запуск проигрывания файла
%avsfile%
rem Зачистка результатов
del /f /q %avsfile%
exit

http://rapidshare.com/files/145760930/MVTools_smooth_play_1.6.exe.html

Добавление от 16.09.2008 18:24:

ab_99
set'ом не передаются параметры X,Y в avs - файл, задавай в явном виде

в том и прикол. ависинт сам тоже кое какие переменные поддерживает

662. ab_99, 16.09.2008 18:26
цитата:
MAG79:
Насчет вписывания картинки в размер экрана с отрезанием бордюров - я сторонник вписывания не на все 100% (а где на 50), иначе полезная информация с периферии теряется.
50% - это значит, если при просмотре оригаинала черные бордюры по 100 пикселей в ширину, то я при просмотре увеличиваю всю картинку, оставляя от этих бордюров по 50 пикселей.
может возможно средствами ависинта организовать неравномерную растяжку экрана, от центра к краям. Тогда не будет пропадать полезная площадь. На дууме не встречалось такого плагина?

Vovanchik81
вот так, зер гут!
по сравнению с растяжкой mpc нету размытости, соответственно не нужно дополнительно поднимать резкость LimitedSharpen.

Спасибо! Какие творческие планы? Может добавить деблок?

P.S! думаю не лишним будет добавить и строчку для частоты монитора, типа:
set /a MonFrec=60 частота монитора в герцах

663. Vovanchik81, 16.09.2008 18:53
ab_99
Какие творческие планы?
наконецто спокойно посмотреть киношку и поспать...
ну а в долгосрочных наваяю наверное единый дистрибутив для ависинта, плагинов и всего остального... как кадекпак клайтовский. но это еще не скоро, руки пока еще не дошли и в башке четкой картины нет. самое стремное хелп будет писать, не люблю бумагомарательством заниматься.

664. GL, 16.09.2008 20:25
Vovanchik81
после запуска остается открытым окно дос. а что там написано не понятно. кодировка не та...

665. Vovanchik81, 16.09.2008 20:34
GL
так и должно быть

666. djonline, 17.09.2008 10:32
Абай, читай FAQ на первой странице. Плавность движений для DVD обеспечивает только WinDVD.

667. Vovanchik81, 17.09.2008 11:21

в очередной раз причесал скрыпт, заставил вроде нормально работать условие на многозадачность и сделал преобразование размера условным
если размер входного видео больше чем выходного, то его размер изменяется перед изменением частоты. если наоборот, то после изменения.
ну и спрятал дос окно чтоб оно народ крякозябрами не смущало
код:
@echo off
%~dp0cmdow @ /HID
chcp 1251
rem Установка выходного разрешения для видео, коэффициента кратного увеличения частоты видео, необходимости обрезки и масштабирования исходного клипа перед обработкой
set /a ExWidth=1280 ширина монитора в пикселях
set /a ExHeight=720 высота монитора в пикселях
set /a ExMulti=2 коэффициеент умножения кадров
set /a ExCrop=1 включение автообрезки краев
set /a ExResize=1 включение авторастягивания до размеров монитора
set /a ExCropBF=0 включение уровня обрезки черных полос (четное положительное значение)
rem Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz
rem Прописывание правильной строки в контекстном меню файла
REG ADD "HKCU\SOFTWARE\Microsoft\Windows\ShellNoRoam\MUICache" /V %SystemDrive%\MVTools\Play%ExMulti% x.cmd /t REG_SZ /D
"Воспроизвести с плавностью %ExMulti% x" /f
rem Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set /A threads=%%a
set /a multicores=%processors%+%cores%
rem Вычисление соотношения сторон по ширине и высоте клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do (
set Width=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a)
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%)
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do (
set Height=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a)
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%
if not %ExCropBF%==0 set /a Height=%Height%-2*%ExCropBF%
set /a ExAspect=%ExHeight%*10000/%ExWidth%
set /a Aspect=%Height%*10000/%Width%
rem Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")
rem Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=,%%b
echo SetMemoryMax(768)>%avsfile%
rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(5,%threads%+2)>>%avsfile%
echo DirectShowSource("%~1"%fps%)>>%avsfile%
echo converttoyv12() >>%avsfile%
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
if not %ExCropBF%==0 echo crop(0,%ExCropBF%,-0,-%ExCropBF%)>>%avsfile%
rem Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %Aspect% LSS %ExAspect% echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,-Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0)>>%avsfile%
if %ExCrop%==1 if %Aspect% GTR %ExAspect% echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,0,-Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2)>>%avsfile%
rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExHeight% LSS %Height% if %ExResize%==1 echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%
rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(2)>>%avsfile%
rem Алгоритм кратного увеличение частоты кадров
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo last.MVFlowFps(backward_vec1,forward_vec1, num=%ExMulti%*num, den=den, mask=0, idx=1)>>%avsfile%
rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExHeight% GTR %Height% if %ExResize%==1 echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%
rem Запуск проигрывания файла
%avsfile%
rem Зачистка результатов
del /f /q %avsfile%
exit

http://rapidshare.com/files/146067147/MVTools_smooth_play_1.6.exe.html

Добавление от 17.09.2008 22:48:

сделал всеж единый инсталлятор для всего... ставится ависинт, многопоточная библиотека и все плагины
http://rapidshare.com/files/146110577/MVTools_smooth_play_1.7.exe.html

Добавление от 18.09.2008 00:35:

ни у кого нет желания хотяб примерно хелп к инсталятору набросать?

668. ditter, 18.09.2008 02:53
че то инсталлятор не попер. пришлось ручками все распаковывать. (ось лицензионная хр сп3)
щяз буим скрыпт пробовать

669. Vovanchik81, 18.09.2008 07:45
ditter
че то инсталлятор не попе
на каком основании сделан сей вывод? просто все тихо происходит без внешних изменений. сама распаковка занимает гораздо меньше секунды на нормальном компе

Добавление от 18.09.2008 09:55:

чета я там накосячил опять с кодировкой, вечером домой приду переделаю
русские пути файлов не корректно обрабатываются

670. ab_99, 18.09.2008 13:32
Vovanchik81:
встретилась такая ошибка:
Direct ShowSource: can't determine the frame rate of the video, you must usc the "fps" parameter

2. Outpost заблокировал c:\mvtools\CMDOW.EXE

3. окно доса не прячется

671. Vovanchik81, 18.09.2008 14:37
ab_99
Direct ShowSource: can't determine the frame rate of the video, you must usc the "fps" parameter
ну если и утил и ависинт не смогли вытащить фремрейт значит совсем файл кривой
Outpost заблокировал c:\mvtools\CMDOW.EXE
честно говоря уже лет 5 этой утилью пользуюсь, сборки мои с ней расходятся тысячами по всему свету, вроде никто пока не жаловался

окно доса не прячется потому что ты эту утиль его убивающее прибил
http://rapidshare.com/files/146351294/MVTools_smooth_play_1.8.exe.html

вроде причесал теперь инсталлятор и скрыпт поправил на предмет кодировки

сейчас вот думаю может MPC в дистрибутив добавить или не стоит народу проигрыватель навязывать?

Добавление от 18.09.2008 20:43:

кстати это только у меня звук в 2 раза медленнее или нужно добавить в скрыпт параметр который будет аудио растягивать?

672. ab_99, 18.09.2008 22:53
Vovanchik81:

1. тем не менее видео тремя плеерами проигралось, в т.ч. mpc
2. ссылку на сборку, что-то я стал тебе доверять
3. мрс, наверное не стоит
4. скорость звука нормальная

673. Vovanchik81, 19.09.2008 09:21
ab_99
ем не менее видео тремя плеерами проигралось, в т.ч. mpc
просто DirectShowSource метод при определении фпс не сработатал. возможно mediainfo тоже через DirectShow фильтры его определяет

ссылку на сборку, что-то я стал тебе доверять
ну думаю этих хватит, если из последнего
http://torrents.ru/forum/viewtopic.php?t=1077833
http://torrents.ru/forum/viewtopic.php?t=489056
http://torrents.ru/forum/viewtopic.php?t=171539
http://yandex.ru/yandsearch?text=reanimator+extreme&from=fx3
домашняя страничка вот тут
Компьютерный форум Ru.Board » Андеграунд » Варезник » Reanimator Extreme Edition
мрс, наверное не стоит
как скажешь

скорость звука нормальная
неверное если через spdif выводить то тогда косчит. хотя вот на ноуте в динамики тоже затягивает страшно звук

Добавление от 19.09.2008 15:02:

ab_99
Может добавить деблок?
а деблок чем вообще принципиально лучще делать?
думаю не лишним будет добавить и строчку для частоты монитора
ну тогда и строчку нужно для ускорения проигрывания добавить в которой эта строка будет учавствовать? найдутся такие которым мозгов хватит 47 кадров до 60 растянуть. хотя если поставть условие на дельту частоты не больше 2-3%
надо подумать короче

674. ab_99, 19.09.2008 16:22
цитата:
Vovanchik81:
Может добавить деблок?
а деблок чем вообще принципиально лучще делать?
думаю не лишним будет добавить и строчку для частоты монитора
ну тогда и строчку нужно для ускорения проигрывания добавить в которой эта строка будет учавствовать? найдутся такие которым мозгов хватит 47 кадров до 60 растянуть. хотя если поставть условие на дельту частоты не больше 2-3%
надо подумать короче
пробовал так:

source=DirectShowSource("video.avi")
vectors = source.MVAnalyse(isb = false, lambda = 1000)
compensation = source.MVCompensate(vectors, mode = 0)
compensation.Deblock()

, не хватило ресурсов. Или плавность или деблок.
Может какой кодек для DirectShowSource поискать со встроенным деблоком, или как-то оптимизировать скрипт.

Еще интересно пробовать растягивать 3х4 не обрезая, от центра к краям растяжка увеличивается. Но готового плагина не встречал.

675. Vovanchik81, 19.09.2008 18:34
MAG79

как думаешь, может стоит этот строки в умолчальный скрыпт написать? вроде как не сильно по аппаратным требованиям отличаютсяот того что в шапке?
или я просто слишком много кушать со своим компом?
код:
rem Алгоритм кратного увеличение частоты кадров
echo backward_vec1 = MVAnalyse(isb = true, blksize=32, blksizev=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo forward_vec1 = MVAnalyse(isb = false, blksize=32, blksizev=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo forward_re = MVRecalculate(last, forward_vec1, blksize=16, blksizev=8, thSAD=100, chroma=true, searchparam=1, idx = 2)>>%avsfile%
echo backward_re = MVRecalculate(last, backward_vec1, blksize=16, blksizev=8, thSAD=100, chroma=true, searchparam=1, idx = 2)>>%avsfile%
echo last.MVFlowFps(backward_vec1,forward_vec1, num=%ExMulti%*num, den=den, mask=0, ml=100, idx=2)>>%avsfile%

ab_99
ты неправильно его применил
http://avisynth.org.ru/mvtools/deblock-rus.html
отсюда качаешь плагин и в конце скрыпта просто добавить надо одну строчку после последнего ресайза перед проигрыванием
echo Deblock()>>%avsfile%

Добавление от 19.09.2008 22:18:

короче вот чего сделал на данный момент
ввел делители и множители частоты, добавил защиту от дурака по этим значениям, добавил плагин Deblock в инсталятор и скрипт
http://rapidshare.com/files/146657290/MVTools_smooth_play_1.9.exe.html

код:
@echo off
%~dp0cmdow @ /HID
chcp 1251
rem Установка выходного разрешения для видео, коэффициента кратного увеличения частоты видео, необходимости обрезки и масштабирования исходного клипа перед обработкой
set /a ExWidth=1280 ширина монитора в пикселях(целое положительное значение)
set /a ExHeight=720 высота монитора в пикселях(целое положительное значение)
set /a ExFreq=60 частота обновления монитора(целое положительное значение)
set /a ExMulti=5 коэффициеент умножения кадров (целое положительное значение)
set /a ExDen=2 коэффициент деления кадров (целое положительное значение)
set /a ExCrop=1 включение автообрезки краев
set /a ExResize=1 включение авторастягивания до размеров монитора
set /a ExCropBF=0 включение уровня обрезки черных полос (четное положительное значение)
rem Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz
rem Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set /A threads=%%a
set /a multicores=%processors%+%cores%
rem Вычисление соотношения сторон по ширине и высоте клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do (
set Width=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a)
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%)
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do (
set Height=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a)
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%
if not %ExCropBF%==0 set /a Height=%Height%-2*%ExCropBF%
set /a ExAspect=%ExHeight%*10000/%ExWidth%
set /a Aspect=%Height%*10000/%Width%
rem Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")
rem Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=,%%b
echo SetMemoryMax(768)>%avsfile%
rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(5,%threads%+2)>>%avsfile%
echo DirectShowSource("%~1"%fps%)>>%avsfile%
echo converttoyv12() >>%avsfile%
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
if not %ExCropBF%==0 echo crop(0,%ExCropBF%,-0,-%ExCropBF%)>>%avsfile%
rem Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %Aspect% LSS %ExAspect% echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,-Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0)>>%avsfile%
if %ExCrop%==1 if %Aspect% GTR %ExAspect% echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,0,-Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2)>>%avsfile%
rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExHeight% LSS %Height% if %ExResize%==1 echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%
rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(2)>>%avsfile%
rem Защита от неправильных множителей
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set /a fps=%%b
set /a delta=%ExFreq%*100/%ExFreq%-%ExMulti%*%fps%*100/%ExDen%/%ExFreq%
for /f "tokens=* delims=-" %%a in ('echo %delta%') do set /a delta=%%a)
if %delta% LSS 5 set /a ExMulti=2 & set /a ExDen=1
rem Алгоритм кратного увеличение частоты кадров
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo last.MVFlowFps(backward_vec1,forward_vec1, num=%ExMulti%*num, den=%ExDen%*den, mask=0, idx=1)>>%avsfile%
rem подтягивание частоты видео к частоте экрана
if %delta% LEQ 5 echo assumeFPS(%ExFreq%).timeStretch(tempo=100.0*%ExFreq%*den/num/%ExMulti%*%ExDen%)>>%avsfile%
rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExHeight% GTR %Height% if %ExResize%==1 echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%
echo Deblock()>>%avsfile%
rem Запуск проигрывания файла
%avsfile%
rem Зачистка результатов
del /f /q %avsfile%
exit

676. ab_99, 20.09.2008 00:40
цитата:
...ты неправильно его применил
...и в конце скрыпта просто добавить надо одну строчку после последнего ресайза перед проигрыванием
echo Deblock()>>%avsfile%
в первый раз особо не проверял, а сейчас не поленился
проверил на 17 выпуске "ну погоди" (просто хуже у меня нет)

1. если деблок поставить перед ресайзом, то результирующие квадратики более размытые(при покадровом просмотре)
2. если деблок ставить после ресайза, квадраты видны отчетливей
ну и, сам понимаешь, нагрузка на процессор в этом случае больше. Думаю, что деблок нужно засунуть перед увеличением частоты, по логике.
т.е. цепочка: кроп>деблок>частота>ресайз

ЗЫ! пока лучше всех чистит Deblock_Qed_Mask4.avs, но устанешь ждать
может можно использовать для деблока вектора от MVFlowFps.

ЗЫ2! внимательно посмотрел Deblock_Qed.avs, против обычного Deblock() выигрыша нет.

пожелание: для удобочитаемости ставь перед REM перевод строки, плиз.

ЗЫ3! MVRecalculate не тормозит на Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz (на чем бы проверить различие?)

677. MAG79, 20.09.2008 07:30
Vovanchik81
Я и сам Fizick считаем, что перед тем, как советовать использовать функцию MVRecalculate надо посравнивать результаты работы скриптов с ней и без нее на предмет скорости и качества работы. Тем более мы здесь используем пиксельную точность (pel=1), а в примере MVTools скрипт имеет полупиксельную точность. В описании MVRecalculate говорится: "Этот двух-стадийный метод может также быть полезным для более стабильной (устойчивой) оценки движения. Уточнение производится только на самом тонком уровне". Так что нужно еще провести сравнение, чтобы узнать как поведет себя предлагаемый скрипт.

ввел делители и множители частоты...
Это здорово! Теперь для полного счастья остается сделать определение всех параметров на автомате. Если удастся опеределять из скрипта частоту монитора, то делитель и множитель можно автоматически подбирать из частоты монитора и исходной частоты кадров фильма.

ab_99
По поводу нелинейного ресайза рекомендую посмотреть функцию WarpedResize из плагина SimpleResize от Tom Barry (страница скачивания (http://www6.impacthosting.com/trbarry/downloads.htm) ). Еще в далеком 2003 году он описывал разные способы растягивания видео (http://www6.impacthosting.com/trbarry/Displaying_4x3_on_16x9.htm) , не совпадающего соотношением сторон с монитором.

цепочка: кроп>деблок>частота>ресайз
Логичнее было бы делать деблок перед обрезкой (кроп). Насколько я понимаю, любой фильтр устранения "квадратной" структуры во-первых должен знать где проходят границы блоков (а после кропа границы могут сдвинуться), а во-вторых - размеры блоков. Так что скорее всего лучше всех с удалением блочной структуры должны справлять фильтры, встроенные в декодер (т.к. ему уж точно известны и размер блоков и их границы).

на чем бы проверить различие?
Попробуй AvsP. При помощи него можно покадрово сравнивать результаты работы нескольких скриптов.

678. Vovanchik81, 20.09.2008 11:05
MAG79
Так что нужно еще провести сравнение, чтобы узнать как поведет себя предлагаемый скрипт
ну это не ко мне, на моем компе сравнивать бесполезно, надо че нить послабже гораздо чтоб увидеть разницу

Теперь для полного счастья остается сделать определение всех параметров на автомате
ну определить на автомате то не сложно. сложно будет когда монитор не один и разрешение с рефрешем у обоих разные. как у меня например. тут уже автомат придется отключать. но думаю для общего случая сделаю

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

Логичнее было бы делать деблок перед обрезкой
там четкое условие чтоб сторона на 8 делилась. можно конечно сделать сравнение по модулю 8 и потом выпролнение чтоб ошибки не возникло
подумаю

Добавление от 20.09.2008 11:56:

может кто напишет консольную утилитку? а то я уже и думать забыл что такое бейсики там всякие?
автоопределение частоты и разрешения экрана уже кстати сделал

679. ab_99, 20.09.2008 13:21
цитата:
Vovanchik81:
MAG79
Так что нужно еще провести сравнение, чтобы узнать как поведет себя предлагаемый скрипт
ну это не ко мне, на моем компе сравнивать бесполезно, надо че нить послабже гораздо чтоб увидеть разницу
уже увидел

на 1280х720 производительности хватает
если растягивать на 1680х1050, то уже идут рывки
на мое скромное имхо, упор нужно делать на более качественный кодек с подавлением блочности

MAG79
за ссылку спасибо, поизучаю

680. Vovanchik81, 20.09.2008 14:39
ну вроде все победил.
теперь практически все параметры подтягиваются автоматически
код:
@echo off
%~dp0cmdow @ /HID
chcp 1251

rem Установка выходного разрешения для видео, коэффициента кратного увеличения частоты видео, необходимости обрезки и масштабирования исходного клипа перед обработкой
set /a ExWidth=1280 ширина монитора в пикселях(целое положительное значение)
set /a ExHeight=720 высота монитора в пикселях(целое положительное значение)
set /a ExFreq=50 частота обновления монитора(целое положительное значение)
set /a ExAuto=1 автоматическое определение частоты и разрешения экрана, введеннные вручную значения игнорируются

set /a ExMulti=2 коэффициеент умножения кадров (целое положительное значение)
set /a ExDen=1 коэффициент деления кадров (целое положительное значение)
set /a ExAutoMD=1 автоматическое определение множителя и делителя, введеннные вручную значения игнорируются

set /a ExDeblock=1 включение устранение блочности изображения
set /a ExCrop=1 включение автообрезки краев
set /a ExResize=1 включение авторастягивания до размеров монитора
set /a ExCropBF=0 включение уровня обрезки черных полос (четное положительное значение)

rem Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz

rem определение частоты развертки и разрешения экрана
if %ExAuto%==1 for /f "tokens=1,2 delims=:x" %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExWidth=%%a & set /a ExHeight=%%b
if %ExAuto%==1 for /f "tokens=5 delims=: " %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExFreq=%%a

rem Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set /A threads=%%a
set /a multicores=%processors%+%cores%

rem Вычисление соотношения сторон по ширине и высоте клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do (
set Width=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a)
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%)
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do (
set Height=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a)
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%
if not %ExCropBF%==0 set /a Height=%Height%-2*%ExCropBF%
set /a ExAspect=%ExHeight%*10000/%ExWidth%
set /a Aspect=%Height%*10000/%Width%

rem Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")

rem Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=,%%b
echo SetMemoryMax(768)>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(5,%threads%+2)>>%avsfile%

rem Указание на пригрываемый файл
echo DirectShowSource("%~1"%fps%)>>%avsfile%

rem Конвертация в цветовое просторанство YV12
echo converttoyv12() >>%avsfile%

rem Устранение деблочности
if %ExDeblock%==1 echo Deblock()>>%avsfile%

rem Определение переменных
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%

rem Обрезка черных полей сверху и снизу
if not %ExCropBF%==0 echo crop(0,%ExCropBF%,-0,-%ExCropBF%)>>%avsfile%

rem Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %Aspect% LSS %ExAspect% echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,-Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0)>>%avsfile%
if %ExCrop%==1 if %Aspect% GTR %ExAspect% echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,0,-Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2)>>%avsfile%

rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExHeight% LSS %Height% if %ExResize%==1 echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(2)>>%avsfile%

rem Защита от неправильных множителей введенных вручную
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set /a fps=%%b
set /a delta=%ExFreq%*100/%ExFreq%-%ExMulti%*%fps%*100/%ExDen%/%ExFreq%
for /f "tokens=* delims=-" %%a in ('echo %delta%') do set /a delta=%%a)
if %delta% LSS 5 set /a ExMulti=2 & set /a ExDen=1

rem выбор подходящих множителей
if %ExAutoMD%==1 for /l %%a in (1,1,15) do (for /l %%b in (1,1,15) do for /f "tokens=2" %%c in ('%~dp0CLCC.exe %%a*%fps%*100/%%b/%ExFreq%-100') do for /f "tokens=* delims=-" %%d in ('echo %%c') do for /f "tokens=1 delims=." %%e in ('echo %%d') do if /i %%e LEQ 5 set /a ExMulti=%%a & set /a ExDen=%%b & goto :1)
:1

rem Алгоритм кратного увеличение частоты кадров
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo last.MVFlowFps(backward_vec1,forward_vec1, num=%ExMulti%*num, den=%ExDen%*den, mask=0, idx=1)>>%avsfile%

rem Подтягивание частоты видео к частоте экрана
if %delta% LEQ 5 echo assumeFPS(%ExFreq%).timeStretch(tempo=100.0*%ExFreq%*den/num/%ExMulti%*%ExDen%)>>%avsfile%

rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExHeight% GTR %Height% if %ExResize%==1 echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

rem Запуск проигрывания файла
%avsfile%

rem Зачистка результатов
del /f /q %avsfile%
exit

http://rapidshare.com/files/146824859/MVTools_smooth_play_2.0.exe.html

681. GL, 20.09.2008 18:51
при проигрывании через скрипт в случае перемотки в кристал плеере отстает звук. без скрипта все в норме. вопрос: почему и как исправить?

682. MAG79, 20.09.2008 20:08
Vovanchik81
Насчет автоматического определения делителя и множителя:
Реализовал это на скриптовом языке AviSynth. Из-за отсутствия поддержки циклов пришлось вспоминать рекурсию.
код:
SetMTMode(5,6)
fps=23.976
newFPS=75

DirectShowSource("Strelok.avi",fps=fps)

multiden = FindBestDen(fps, newFPS, 100, 5)
multinum = Round(1.0*newFPS*multiden/fps)

num=FramerateNumerator(last)
den=FramerateDenominator(last)
SetMTMode(2)
backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=false, searchparam=1, idx = 1)
last.MVFlowFps(backward_vec1,forward_vec1, num=num*multinum, den=den*multiden, mask=2, idx=1)
assumeFPS(newFPS).timeStretch(tempo=100.0*newFPS*den/num/multinum*multiden)

function FindBestDen(float fps, float newFPS, float fpsdelta, int maxden)
{
multinum_ = Round(newFPS*maxden/fps)
fpsdelta_ = abs(newFPS-fps*multinum_/maxden)
fpsdelta_min = (fpsdelta_ < fpsdelta) ? fpsdelta_ : fpsdelta
BestDen = (maxden==1) ? maxden : FindBestDen(fps, newFPS, fpsdelta_min, maxden-1)
Result = (BestDen<maxden) ? BestDen : (fpsdelta_ <= fpsdelta) ? maxden : maxden+1
return Result
}

Принцип работы функции FindBestDen следующий: ищет целое положительное значение делителя от 1 до maxden, которое при целом множителе дает наименьшую разницу от частоты монитора (newFPS).

В данном примере значения множителя и делителя равны 16:5. Это значит, что из каждых 5-ти исходных кадров строятся 16, причем один из исходных кадров выводится без изменений. При таких параметрах при притягивании видео к 75 ГЦ общая длительность увеличивается - для сохранения синхронизации звук замедляется на 2,3% от оригинала.

практически все параметры подтягиваются автоматически
set /a ExFreq=50 частота обновления монитора(целое положительное значение)
Что-то я не нашел автоматического определения частоты монитора. Частота жестко прописана в скрипте и равна 50.

683. Vovanchik81, 20.09.2008 20:21
MAG79
rem определение частоты развертки и разрешения экрана
if %ExAuto%==1 for /f "tokens=1,2 delims=:x" %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExWidth=%%a & set /a ExHeight=%%b
if %ExAuto%==1 for /f "tokens=5 delims=: " %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExFreq=%%a

вроде опять починил...
в качестве эксперимента добавил mpc чтоб большинство простого народа не путалось
кому надо поправит и будет открывать свои любимым плеером

код:
%~dp0cmdow @ /HID
chcp 1251

rem Установка параметров обработки
set /a ExPlayer=0 открытие файлов внешним плеером (0,1)
set /a ExMask=0 глубина расчета плавности (0,1,2)
set /a ExDeblock=1 включение устранение блочности изображения (0,1)
set /a ExCrop=1 включение автообрезки краев (0,1)
set /a ExResize=1 включение авторастягивания до размеров монитора (0,1)
set /a ExCropBF=0 включение уровня обрезки черных полос (четное положительное значение)

set /a ExAuto=1 автоматическое определение частоты и разрешения экрана, введеннные вручную значения игнорируются (0,1)
set /a ExWidth=1280 ширина монитора в пикселях (целое положительное значение)
set /a ExHeight=720 высота монитора в пикселях (целое положительное значение)
set /a ExFreq=50 частота обновления монитора (целое положительное значение)

rem Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz

rem определение частоты развертки и разрешения экрана
if %ExAuto%==1 for /f "tokens=1,2 delims=:x" %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExWidth=%%a & set /a ExHeight=%%b
if %ExAuto%==1 for /f "tokens=5 delims=: " %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExFreq=%%a

rem Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set /A threads=%%a
set /a multicores=%processors%+%cores%

rem Вычисление соотношения сторон по ширине и высоте клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do (
set Width=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a)
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%)
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do (
set Height=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a)
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%
if not %ExCropBF%==0 set /a Height=%Height%-2*%ExCropBF%
set /a ExAspect=%ExHeight%*10000/%ExWidth%
set /a Aspect=%Height%*10000/%Width%

rem Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")

rem Коприрование фунции
copy %~dp0FindBestDen %avsfile%

rem Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set /a fps=%%b
echo SetMemoryMax(768)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(5,%threads%+2)>>%avsfile%

rem Указание на пригрываемый файл
echo DirectShowSource("%~1",%fps%)>>%avsfile%

rem Конвертация в цветовое просторанство YV12
echo converttoyv12() >>%avsfile%

rem Устранение деблочности
if %ExDeblock%==1 echo Deblock()>>%avsfile%

rem Определение переменных
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
echo multiden=FindBestDen(%fps%, %ExFreq%, 100, 50)>>%avsfile%
echo multinum=Round(1.0*%ExFreq%*multiden/%fps%)>>%avsfile%

rem Обрезка черных полей сверху и снизу
if not %ExCropBF%==0 echo crop(0,%ExCropBF%,-0,-%ExCropBF%)>>%avsfile%

rem Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %Aspect% LSS %ExAspect% echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,-Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0)>>%avsfile%
if %ExCrop%==1 if %Aspect% GTR %ExAspect% echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,0,-Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2)>>%avsfile%

rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExWidth% LSS %Width% if %ExResize%==1 echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(2)>>%avsfile%

rem Алгоритм кратного увеличение частоты кадров
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo last.MVFlowFps(backward_vec1,forward_vec1, num=num*multinum, den=den*multiden, mask=%ExMask%, idx=1)>>%avsfile%

rem Подтягивание частоты видео к частоте экрана
echo assumeFPS(%ExFreq%).timeStretch(tempo=100.0*%ExFreq%*den/num/multinum*multiden)>>%avsfile%

rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExWidth% GTR %Width% if %ExResize%==1 echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

rem Запуск проигрывания файла
if %ExPlayer%==0 %~dp0mpc\mplayerc.exe /fullscreen /play /close %avsfile%
if %ExPlayer%==1 %avsfile%
rem Зачистка результатов
del /f /q %avsfile%
exit

http://rapidshare.com/files/146944858/MVTools_smooth_play_2.1.exe.html

684. ab_99, 21.09.2008 00:34
цитата:
Vovanchik81:
...вроде опять починил...
1. в тело скрипта попадает текст: "Режим вывода команд на экран (ECHO) включен.", ависинт теряется
2. забыл саму функцию включить в скрипт, а можно ее и подгружать как FindBestDen.avs

685. Vovanchik81, 21.09.2008 01:16
ab_99
в тело скрипта попадает текст: "Режим вывода команд на экран (ECHO) включен.",
в каком именно месте?

а можно ее и подгружать как FindBestDen.avs
как?

686. ab_99, 21.09.2008 02:40
цитата:
Vovanchik81:
ab_99
в тело скрипта попадает текст: "Режим вывода команд на экран (ECHO) включен.",
в каком именно месте?
первой строчкой в скрипте, из-за этого дальше не идет. При том, что в теле cmd.файла ее нет

цитата:
а можно ее и подгружать как FindBestDen.avs
как?
н-р, перед вызовом ф-и:

rem Определение переменных
echo import ( "c:\mvtools\FindBestDen.avs")>>%avsfile%

проверил, работает. Можно туда еще чего-нибудь запихнуть, а то cmd.файл скоро догонит Windows, по к-ву строк.
к примеру, все то, что MAG79 изложил в предыдущем посте. Будет компактно.

687. Vovanchik81, 21.09.2008 02:54
первой строчкой в скрипте, из-за этого дальше не идет. При том, что в теле cmd.файла ее нет
а теперь вопрос на засыпку. ты устанавливал посленее обновление скрыпта или просто тектс подправил? первой строчкой как раз вроде идет копирование функции которая отдельным файлом лежит
ab_99
н-р, перед вызовом ф-и:
просто не в курсе был что из тела avs скрипта можно другие скрипты погружать

Добавление от 21.09.2008 03:02:

http://rapidshare.com/files/146992483/MVTools_smooth_play_2.2.exe.html

подправил вызов функции и не корректное определение частоты (округление до целой части шло)

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

Добавление от 21.09.2008 03:10:

ab_99
а то cmd.файл скоро догонит Windows, по к-ву строк
да эт не страшно... главно что было сопроводибельно и понятно все не тольеко мне, но и любому другому заинтересованному лицу.

688. ab_99, 21.09.2008 03:35
цитата:
Vovanchik81:
...прекращаю выкладывать листинги чтоб больше таких вопросов не возникало... количество и состав файлов меняется время от времени мною без предупреждения
это ты зря. Во первых к рапиде доступ не всегда есть, ждать часами. во вторых, начиная с версии 1.7 выскакивает ошибка архива: "внутрення ошибка - код ошибки 105"

689. GL, 21.09.2008 08:54
еще бы лучше разделить архив на две части. первая софтовая и вторая скриптовая. а то скачивать каждый раз одно и тоже при обновлении придется.

690. Vovanchik81, 21.09.2008 12:05
ab_99
а куда еще стоит выкладывать чтоб не приходилось ждать? просто у меня ип прямой, таких проблем знать не знаю
)))
могу в принципе у себя, но ради такой мелочи ип свой светить не охота.

начиная с версии 1.7 выскакивает ошибка
наверное потому что ты пытаешься распаковать файл поверх открытого или выполняемого в данный момент
GL
а что, у тех кто пользуется скрыптом какие то проблемы с потреблением трафика? честно говоря даже не представлял что люди качающие фильмы могут быть в нем ограничены. но хотя может я просто зажрался уже. буду значитт просто скрыптовую часть выкладывать, если ничего серьезного в дистрибутивной части не менял

691. ab_99, 21.09.2008 13:41
Vovanchik81:
ммм, просто публикуй листинг как раньше, а я не буду задавать неудобные вопросы
цитата:
... буду значитт просто скрыптовую часть выкладывать, если ничего серьезного в дистрибутивной части не менял
ну, если будеш эту скриптовую часть публиковать, то экспериментаторы ее скопируют с экрана, а новички загрузят полный комплект.

а какой у тебя процессор, что ты никаких проблем не знаешь?

692. Vovanchik81, 21.09.2008 14:01
код:
%~dp0cmdow @ /HID
chcp 1251

rem Установка параметров обработки
set /a ExPlayer=0 открытие файлов внешним плеером (0,1)
set /a ExMask=0 глубина расчета плавности (0,1,2)
set /a ExDeblock=1 включение устранение блочности изображения (0,1)
set /a ExCrop=1 включение автообрезки краев (0,1)
set /a ExResize=1 включение авторастягивания до размеров монитора (0,1)
set /a ExCropBF=0 включение уровня обрезки черных полос (четное положительное значение)

set /a ExAuto=1 автоматическое определение частоты и разрешения экрана, введеннные вручную значения игнорируются (0,1)
set /a ExWidth=1280 ширина монитора в пикселях (целое положительное значение)
set /a ExHeight=720 высота монитора в пикселях (целое положительное значение)
set /a ExFreq=50 частота обновления монитора (целое положительное значение)

rem Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz

rem определение частоты развертки и разрешения экрана
if %ExAuto%==1 for /f "tokens=1,2 delims=:x" %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExWidth=%%a & set /a ExHeight=%%b
if %ExAuto%==1 for /f "tokens=5 delims=: " %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExFreq=%%a

rem Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set /A threads=%%a
set /a multicores=%processors%+%cores%

rem Вычисление соотношения сторон по ширине и высоте клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do (
set Width=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a)
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%)
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do (
set Height=%%b
for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a)
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%
if not %ExCropBF%==0 set /a Height=%Height%-2*%ExCropBF%
set /a ExAspect=%ExHeight%*10000/%ExWidth%
set /a Aspect=%Height%*10000/%Width%

rem Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")

rem Копирование фунции
echo import("%~dp0FindBestDen.avs")>%avsfile%

rem Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=%%b
echo SetMemoryMax(768)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(5,%threads%+2)>>%avsfile%

rem Указание на пригрываемый файл
echo DirectShowSource("%~1",%fps%)>>%avsfile%

rem Конвертация в цветовое просторанство YV12
echo converttoyv12() >>%avsfile%

rem Устранение деблочности
if %ExDeblock%==1 echo Deblock()>>%avsfile%

rem Определение переменных
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
echo multiden=FindBestDen(%fps%, %ExFreq%, 100, 20)>>%avsfile%
echo multinum=Round(1.0*%ExFreq%*multiden/%fps%)>>%avsfile%

rem Обрезка черных полей сверху и снизу
if not %ExCropBF%==0 echo crop(0,%ExCropBF%,-0,-%ExCropBF%)>>%avsfile%

rem Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %Aspect% LSS %ExAspect% echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,-Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0)>>%avsfile%
if %ExCrop%==1 if %Aspect% GTR %ExAspect% echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,0,-Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2)>>%avsfile%

rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExWidth% LSS %Width% if %ExResize%==1 echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(2)>>%avsfile%

rem Алгоритм кратного увеличение частоты кадров
echo backward_vec1 = MVAnalyse(isb = true, blksize=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo forward_vec1 = MVAnalyse(isb = false, blksize=16, pel=1, chroma=true, searchparam=1, idx = 1)>>%avsfile%
echo last.MVFlowFps(backward_vec1,forward_vec1, num=num*multinum, den=den*multiden, mask=%ExMask%, idx=1)>>%avsfile%

rem Подтягивание частоты видео к частоте экрана
echo assumeFPS(%ExFreq%).timeStretch(tempo=100.0*%ExFreq%*den/num/multinum*multiden)>>%avsfile%

rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExWidth% GTR %Width% if %ExResize%==1 echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

rem Запуск проигрывания файла
if %ExPlayer%==0 %~dp0mpc\mplayerc.exe /fullscreen /play /close %avsfile%
if %ExPlayer%==1 %avsfile%
rem Зачистка результатов
del /f /q %avsfile%
exit

а какой у тебя процессор, что ты никаких проблем не знаешь?
код:
 
Тип ЦП QuadCore Intel Core 2 Quad Q9450
Псевдоним ЦП Yorkfield
Степпинг ЦП C1/M1
Имя ЦП CPUID Intel(R) Core(TM)2 Quad CPU Q9450 @ 2.66GHz
Частота ЦП 3680.2 MHz (исходное: 2667 MHz, overclock: 38%)
Множитель ЦП 6x
CPU FSB 460.0 MHz (исходное: 333 MHz, overclock: 38%)
Шина памяти 460.0 MHz
Соотношение DRAM:FSB 1:1
Кэш L2 2x 6 Мб (On-Die, ECC, ASC, Full-Speed)
Тайминги памяти 5-5-5-18 (CL-RCD-RP-RAS)
Command Rate (CR) 2T
DIMM1: Corsair XMS2 DHX CM2X2048-6400C4DHX 2 Гб DDR2-800 DDR2 SDRAM (5-5-5-18 @ 400 МГц) (4-4-4-13 @ 270 МГц)
DIMM3: Corsair XMS2 DHX CM2X2048-6400C4DHX 2 Гб DDR2-800 DDR2 SDRAM (5-5-5-18 @ 400 МГц) (4-4-4-13 @ 270 МГц)

вот протокол тестирования камня
http://slil.ru/26165279

причем самым шумным в системе является он
ST3750330AS

Добавление от 21.09.2008 18:13:

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

код:
%~dp0cmdow @ /HID
chcp 1251

rem Установка параметров обработки
set /a ExPlayer=0 открытие файлов внешним плеером (0,1)

set /a ExMode=1 метод расчета плавности (1,2)
set /a ExMask=0 глубина расчета плавности (0,1,2)

set /a ExSound=1 Наличие звука в выходном потоке (0,1)
set /a ExDeblock=1 включение устранение блочности изображения (0,1)

set /a ExCrop=1 включение автообрезки краев (0,1)
set /a ExResize=1 включение авторастягивания до размеров монитора,зависимо от ExCrop (0,1)
set /a ExCropBF=0 включение уровня обрезки черных полос (четное положительное значение)

set /a ExAuto=1 автоматическое определение частоты и разрешения экрана, введеннные вручную значения игнорируются (0,1)
set /a ExWidth=1280 ширина монитора в пикселях (целое положительное значение)
set /a ExHeight=720 высота монитора в пикселях (целое положительное значение)
set /a ExFreq=50 частота обновления монитора (целое положительное значение)

rem Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz

rem определение частоты развертки и разрешения экрана
if %ExAuto%==1 for /f "tokens=1,2 delims=:x" %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExWidth=%%a & set /a ExHeight=%%b
if %ExAuto%==1 for /f "tokens=5 delims=: " %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExFreq=%%a

rem Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set /A threads=%%a
set /a multicores=%processors%+%cores%

rem Вычисление ширины и высоты клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do set Width=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do set Height=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%

rem Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")

rem Импорт фунции
echo import("%~dp0FindBestDen.avs")>%avsfile%

rem Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=%%b
echo SetMemoryMax(768)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(5,%threads%+2)>>%avsfile%

rem Указание на пригрываемый файл
echo DirectShowSource("%~1",%fps%)>>%avsfile%

rem Устранение деблочности
if %ExDeblock%==1 if %Width% LSS 720 echo Deblock()>>%avsfile%

rem Выключение из обработки звукового потока
if %ExSound%==0 echo killAudio>>%avsfile%

rem Обрезка черных полей сверху и снизу
if not %ExCropBF%==0 set /a Height=%Height%-2*%ExCropBF%
if not %ExCropBF%==0 echo crop(0,%ExCropBF%,-0,-%ExCropBF%)>>%avsfile%

rem Конвертация в цветовое просторанство YV12
echo converttoyv12() >>%avsfile%

rem Определение переменных
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
echo multiden=FindBestDen(%fps%, %ExFreq%, 100, 20)>>%avsfile%
echo multinum=Round(1.0*%ExFreq%*multiden/%fps%)>>%avsfile%

rem Вычисление соотношения сторон
set /a ExAspect=%ExHeight%*10000/%ExWidth%
set /a Aspect=%Height%*10000/%Width%

rem Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %Aspect% LSS %ExAspect% echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,-Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0)>>%avsfile%
if %ExCrop%==1 if %Aspect% GTR %ExAspect% echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,0,-Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2)>>%avsfile%

rem Переопределение высоты и ширины с учетом обрезки
if %Aspect% LSS %ExAspect% set /a Width=%Height%*%ExWidth%/%ExHeight%
if %Aspect% GTR %ExAspect% set /a Height=%Width%*%ExHeight%/%ExWidth%

rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExCrop%==1 if %ExResize%==1 if %ExWidth% LSS %Width% echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(2)>>%avsfile%

rem Алгоритм быстрого увеличение частоты кадров
if %ExMode%==1 echo backward_vec1=MVAnalyse(isb=true,blksize=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==1 echo forward_vec1=MVAnalyse(isb=false,blksize=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==1 echo last.MVFlowFps(backward_vec1,forward_vec1,num=num*multinum,den=den*multiden,mask=%ExMask%,idx=1)>>%avsfile%
rem Алгоритм качественного увеличение частоты кадров
if %ExMode%==2 echo backward_vec1=MVAnalyse(isb=true,blksize=32,blksizev=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==2 echo forward_vec1=MVAnalyse(isb=false,blksize=32,blksizev=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==2 echo forward_re=MVRecalculate(last,forward_vec1,blksize=16,blksizev=8,thSAD=100,chroma=true,searchparam=1,idx=2)>>%avsfile%
if %ExMode%==2 echo backward_re=MVRecalculate(last,backward_vec1,blksize=16,blksizev=8,thSAD=100,chroma=true,searchparam=1,idx=2)>>%avsfile%
if %ExMode%==2 echo last.MVFlowFps(backward_vec1,forward_vec1,num=num*multinum,den=den*multiden,mask=%ExMask%,ml=100,idx=1)>>%avsfile%

rem Подтягивание частоты видео к частоте экрана
if %ExSound%==1 echo assumeFPS(%ExFreq%).timeStretch(tempo=100.0*%ExFreq%*den/num/multinum*multiden)>>%avsfile%

rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExCrop%==1 if %ExResize%==1 if %ExWidth% GTR %Width% echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

rem Запуск проигрывания файла
if %ExPlayer%==0 %~dp0mpc\mplayerc.exe /fullscreen /play /close %avsfile%
if %ExPlayer%==1 %avsfile%

rem Зачистка результатов
del /f /q %avsfile%
exit

http://rapidshare.com/files/147150742/MVTools_smooth_play_2.3.exe.html

693. ab_99, 21.09.2008 19:12
Vovanchik81:
Так ты оверклокер, а я думал олигарх.

предложение:
фильмы 1280х720, как правило, хорошего качества и блочности там мало. Может включать деблок, если разрешение исходного клипа меньше. Не хватает производительности.

ЗЫ! Уммные люди думают одинаково, как синхронно получилось.
все работает, не приходится ручками отключать деблок. Спасибо!

694. Vovanchik81, 21.09.2008 22:58
вот еще чего надумал
- изменил имя головного скрыпта - теперь то множителим с делителями выбираются автоматически в зависимости от среды выполнения
- повесил флаг выбора режима автовыбора параметров дисплея на Scroll Lock - при включеном видео воспроизводится в полноэкранном режиме на втором мониторе, при выключенном - на первом
цыфры насколько я понял определяются в свойствах экрана. при необходимости можете поправить в скрипте номера вот здесь
if %ExPlayer%==0 if %ExNoAuto%==0 %~dp0mpc\mplayerc.exe %avsfile% /fullscreen /play /close /monitor 2
if %ExPlayer%==0 if %ExNoAuto%==1 %~dp0mpc\mplayerc.exe %avsfile% /fullscreen /play /close /monitor 1
- при выборе стороннего плеера выводится на основном дисплее, Scroll Lock просто определяет определять ли параметры автоматически или взять из файла.
советую скачать весь дистрибутив потому как поменялось имя скрыпта и добавился файл считывающий показания локов ну и переассоциировать видео с новым скрыптом
код:
%~dp0cmdow @ /HID
chcp 1251

rem Установка параметров обработки
set /a ExPlayer=0 открытие файлов внешним плеером (0,1)

set /a ExMode=1 метод расчета плавности (1,2)
set /a ExMask=0 глубина расчета плавности (0,1,2)

set /a ExSound=1 Наличие звука в выходном потоке (0,1)
set /a ExDeblock=1 включение устранение блочности изображения (0,1)

set /a ExCrop=1 включение автообрезки краев (0,1)
set /a ExResize=1 включение авторастягивания до размеров монитора,зависимо от ExCrop (0,1)
set /a ExCropBF=0 включение уровня обрезки черных полос (четное положительное значение)

set /a ExWidth=1280 ширина монитора в пикселях (целое положительное значение)
set /a ExHeight=720 высота монитора в пикселях (целое положительное значение)
set /a ExFreq=50 частота обновления монитора (целое положительное значение)

rem Считывание сотояния Scroll Lock
for /f "tokens=6 delims=: " %%a in ('%~dp0klocks.exe') do set /a ExNoAuto=%%a

rem Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz

rem определение частоты развертки и разрешения экрана
if %ExNoAuto%==0 for /f "tokens=1,2 delims=:x" %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExWidth=%%a & set /a ExHeight=%%b
if %ExNoAuto%==0 for /f "tokens=5 delims=: " %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExFreq=%%a

rem Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set /A threads=%%a
set /a multicores=%processors%+%cores%

rem Вычисление ширины и высоты клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do set Width=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do set Height=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%

rem Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")

rem Импорт фунции
echo import("%~dp0FindBestDen.avs")>%avsfile%

rem Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=%%b
echo SetMemoryMax(768)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(5,%threads%+2)>>%avsfile%

rem Указание на пригрываемый файл
echo DirectShowSource("%~1",%fps%)>>%avsfile%

rem Устранение деблочности
if %ExDeblock%==1 if %Width% LSS 720 echo Deblock()>>%avsfile%

rem Выключение из обработки звукового потока
if %ExSound%==0 echo killAudio>>%avsfile%

rem Обрезка черных полей сверху и снизу
if not %ExCropBF%==0 set /a Height=%Height%-2*%ExCropBF%
if not %ExCropBF%==0 echo crop(0,%ExCropBF%,-0,-%ExCropBF%)>>%avsfile%

rem Конвертация в цветовое просторанство YV12
echo converttoyv12() >>%avsfile%

rem Определение переменных
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
echo multiden=FindBestDen(%fps%, %ExFreq%, 100, 20)>>%avsfile%
echo multinum=Round(1.0*%ExFreq%*multiden/%fps%)>>%avsfile%

rem Вычисление соотношения сторон
set /a ExAspect=%ExHeight%*10000/%ExWidth%
set /a Aspect=%Height%*10000/%Width%

rem Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %Aspect% LSS %ExAspect% echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,-Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0)>>%avsfile%
if %ExCrop%==1 if %Aspect% GTR %ExAspect% echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,0,-Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2)>>%avsfile%

rem Переопределение высоты и ширины с учетом обрезки
if %Aspect% LSS %ExAspect% set /a Width=%Height%*%ExWidth%/%ExHeight%
if %Aspect% GTR %ExAspect% set /a Height=%Width%*%ExHeight%/%ExWidth%

rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExCrop%==1 if %ExResize%==1 if %ExWidth% LSS %Width% echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(2)>>%avsfile%

rem Алгоритм быстрого увеличение частоты кадров
if %ExMode%==1 echo backward_vec1=MVAnalyse(isb=true,blksize=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==1 echo forward_vec1=MVAnalyse(isb=false,blksize=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==1 echo last.MVFlowFps(backward_vec1,forward_vec1,num=num*multinum,den=den*multiden,mask=%ExMask%,idx=1)>>%avsfile%

rem Алгоритм качественного увеличение частоты кадров
if %ExMode%==2 echo backward_vec1=MVAnalyse(isb=true,blksize=32,blksizev=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==2 echo forward_vec1=MVAnalyse(isb=false,blksize=32,blksizev=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==2 echo forward_re=MVRecalculate(last,forward_vec1,blksize=16,blksizev=8,thSAD=100,chroma=true,searchparam=1,idx=2)>>%avsfile%
if %ExMode%==2 echo backward_re=MVRecalculate(last,backward_vec1,blksize=16,blksizev=8,thSAD=100,chroma=true,searchparam=1,idx=2)>>%avsfile%
if %ExMode%==2 echo last.MVFlowFps(backward_vec1,forward_vec1,num=num*multinum,den=den*multiden,mask=%ExMask%,ml=100,idx=1)>>%avsfile%

rem Подтягивание частоты видео к частоте экрана
if %ExSound%==1 echo assumeFPS(%ExFreq%).timeStretch(tempo=100.0*%ExFreq%*den/num/multinum*multiden)>>%avsfile%

rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExCrop%==1 if %ExResize%==1 if %ExWidth% GTR %Width% echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

rem Запуск проигрывания файла
if %ExPlayer%==0 if %ExNoAuto%==0 %~dp0mpc\mplayerc.exe %avsfile% /play /close /fullscreen /monitor 2
if %ExPlayer%==0 if %ExNoAuto%==1 %~dp0mpc\mplayerc.exe %avsfile% /fullscreen /play /close /monitor 1
if %ExPlayer%==1 %avsfile%

rem Зачистка результатов
del /f /q %avsfile%
exit

http://rapidshare.com/files/147228796/MVTools_smooth…lay_2.31.exe.html

695. MAG79, 22.09.2008 04:00
Vovanchik81
Во первых, прошу прощения, был не внимателен. В прошлом сообщении я указывал, что не нашел строки автоопределения частоты монитора. Тем не менее это самый первый блок определения параметров в скрипте.

ввел зависимость подтягивания частоты воспроизведения к частоте монитора только при наличии в выходном потоке звука
Это на случай внешнего открытия звука? Чтобы синхронизация не потерялась?!

повесил флаг выбора режима автовыбора параметров дисплея на Scroll Lock - при включеном видео воспроизводится в полноэкранном режиме на втором мониторе, при выключенном - на первом
Вот это тема! Одобряю!

теперь уж точно без небольшого описания не обойтись

696. Vovanchik81, 22.09.2008 09:37
MAG79
Это на случай внешнего открытия звука? Чтобы синхронизация не потерялась?!
именно

теперь уж точно без небольшого описания не обойтись
эт да. как могу пока оттягиваю этот момент
)))
кстати у когго какие еще идеи есть? а то у меня уже почти все старые наработки кончились вместе с идеями

697. Shon26, 22.09.2008 10:24
может задействовать numlock, чтобы скрипт записался со стандартным разрешением, только с удвоенной частотой и без deblock? Или чтоб в зависимости от разрешения писался скрипт который больше всего подходит к файлу, чтобы было меньше артефактов.

698. Vovanchik81, 22.09.2008 10:27
Shon26
может задействовать numlock, чтобы скрипт записался со стандартным разрешением и без deblock?
честно говоря не хотелось бы другие локи задействовать, потому как все равно простой народ читать не будет хелп, а угадать какой у них статус нумлока по умолчанию будет невозможно. у буков он всегда выключен, у стационаров наоборот

Или чтоб в зависимости от разрешения писался скрипт который больше всего подходит к файлу, чтобы было меньше артефактов.
вот над этим думал. не все так просто. тут не только разрешение, но и кодек, тип картинки, тип памяти и проца и индивидуален для каждого конкретного случая.

699. RDL, 22.09.2008 10:56
2 Vovanchik81
может сделать возможность самому выбирать разрешение фильма и привязать его к цифрам, на пример: " 0- по умолчанию, 1- 800х600, 2- 1024х768 и т.д."

700. Vovanchik81, 22.09.2008 11:05
RDL
может сделать возможность самому выбирать разрешение фильма и привязать его к цифрам, на пример: " 0- по умолчанию, 1- 800х600, 2- 1024х768 и т.д."
ну эта возможность и так есть. а вот привязывать к цыфрам? это помимо разрешений нужно еще и цыфрв им сопоставленные помнить?
тем более разрешений всех возможных с полсотни наберется. не вариант. это усложнение, а не упрощение.
но все равно спасибо за идею

701. Shon26, 22.09.2008 12:30
Vovanchik81
тут не только разрешение, но и кодек, тип картинки, тип памяти и проца и индивидуален для каждого конкретного случая.
может взять стандарт разрешения больше 720x576 = matroska, до 576p = divx? Компов больше с 2-мя ядрами чем с 1 или 4-мя.

702. Vovanchik81, 22.09.2008 12:46
Shon26
идеально было бы типа теста запускать который оценить камень в попугаях и в зависимости от их количества поменяет параметры. но это уже гораздо сложней.
просто так оценивать не получится. вон вчера один файл 720р с одними параметрами идет легко, а второй точно такой же стробоскопить нгачинает - движений в нем наверное больше или их специфика другая
может степень сжатия влияла, может еще чего.

703. Shon26, 22.09.2008 13:17
А можно вопрос Под какой именно мувик у тебя в скрипте рисуются параметры, исключая частоту кадров и lanczos4resize? к примеру
backward_vec1=MVAnalyse(isb=true,blksize=16,pel=1,chroma=true,searchparam=1,idx=1)
forward_vec1=MVAnalyse(isb=false,blksize=16,pel=1,chroma=true,searchparam=1,idx=1)

704. ab_99, 22.09.2008 13:19
Vovanchik81:
все уже и так отлично (при нынешней ситуации с процессорами, фильтрами и пр.)
можно немного упорядочить, для простоты использования, а именно:
перенести в загружаемый *.avs всю ависинтовскую часть, а в ком файле оставить определение и передачу параметров.
Тем самым упростится удобочитаемость. Для реализации различных разрешений, можно создать копию ком файла с индивидуальными настройками.

705. Vovanchik81, 22.09.2008 13:26
Shon26
повтори поподробней, не понял совсем
ab_99

перенести в загружаемый *.avs всю ависинтовскую часть
ну я просто не знаю настолько ависинтовый язык. мне проще пока что с сомандной строкой, там боле мене ориентируюсь
может в перспективе и сделаю, тока мне удобней из одного места работать, а не разбрасывать функции по разным файлам. да и контролировать процесс в батнике можно по ходу движения, все преобразования на виду. в плане отладки он пока что очень сильно превосходит. во всяком случае с текущим моим знанием ависинта

706. Shon26, 22.09.2008 13:41
Vovanchik81
Под какое видео (разрешение, кодек, тип картинки) у тебя заточен скрипт? Или же он просто для просмотра в реалтайме и ни к какому видео не оптимизирован в плане артефактов?

707. Vovanchik81, 22.09.2008 13:54
ну по умолчанию он рассматривает общий случай.
деблок только для маленьких разрешений, глубина обработки минимальна, способ обработки самый быстрый.
если мощей не хватает можно попробовать убрать масштабирование.

708. Shon26, 22.09.2008 14:07
Vovanchik81
глубина обработки минимальна, способ обработки самый быстрый.
Может для мелких разрешений использовать скрипт помощнее?

709. Vovanchik81, 22.09.2008 14:12
Shon26
может и так. чего скажет прогрессивная общественность? просто не совсем честно к обладателях древних компов.
да и не очень древних тоже.

хотя вопрос спорный. я в принципе добавил второй способ обработки чтоб оценить можно бло отличие в требованиях. если ли они вообще.

710. MAG79, 22.09.2008 17:35
Vovanchik81
у когго какие еще идеи есть?

Есть:
1. Оформить AVS-скрипт в виде отдельного файла-шаблона, в который можно было бы подставлять параметры и получать из него конечный скрипт.
2. Реализовать GUI с возможностью менять параметры, вшитые в пакетник, оформить в стиле ffdShow (так же прятать в трее).
3. Такая реализация позволит подготовить несколько шаблонов скриптов: MVTools_fast, MVTools_Recalculate, MVBlockFps, FrameDbl... Расположить их в порядке возрастания требований к системе.
4. Реализовать тест, который бы сообщал, тянет ли система выбранный скрипт для данного файла, или надо выбрать скрипт попроще.

Из реальных несложных в реализации предложений:
- переименовать папку MPC в MPC-HC.

И немного рассуждений:
Я согласен с обрезкой изображения до обработки - это облегчает работу скрипту, но не совсем поддерживаю программное растягивание после обработки, т.к.:
- во-первых, видеокарта растягивает быстро и вполне качественно (может я не прав - поправьте);
- во-вторых, четкость мелких видео лучше сохраняется при кратном увеличении (Alt-3, Alt-4 в MPC);
- в-третьих, растяжка экрана гибко настраивается (в том же MPC - 9/1 на Numpad'e, в CrystalPlayer'е - +/-).

711. RDL, 22.09.2008 18:35
MAG79
во загнул
+1

712. Vovanchik81, 22.09.2008 19:41
MAG79
Оформить AVS-скрипт в виде отдельного файла-шаблона,
в смысле как ab_99 говорил? небольшой батник который передает avs скрыпту только параметры и запускает плеер?

Реализовать GUI с возможностью менять параметры
это не ко мне. последний раз кодил лет 10 назад. и это был далеко не гуй

оформить в стиле ffdShow
так в процессе же нельзя менять параметры? смысл тогда в трее его держать?

Такая реализация позволит подготовить несколько шаблонов скриптов
не будет ли это излишним усложнением? я всегда был сторонником минимизации и автоматизации.

реализовать тест, который бы сообщал, тянет ли система выбранный скрипт для данного файла, или надо выбрать скрипт попроще
а готов ли народ перед использованием КАЖДЫЙ раз проверять совместимость?

на самом деле вижу вот такие перспективы развития - реализовать компактный быстрый тест, который за несколько секунд сможет оценить скорость работы процессора и памяти с кусочком из середины текущего видеофайла, и на основании этих результатов уже выбирать параметры ближе к верхней границе производительности. но это пока только теория. других вариантов развития не вижу. обычный народ разбираться с параметрами никогда не станет, а те кто вникнет - какая им разница где править параметры - в гуе или в текстовом файле.

переименовать папку MPC в MPC-HC
эт сделаю

видеокарта растягивает быстро и вполне качественно
не знаю как там видеокарта, нго у mpc вроде при растягивании замыливает. мне чисто субъективно так показалось. нужно будет проверить по кадрам. к тому ж его всегда можно отключить. можно по умолчанию в принципе отключить масштабирование по умолчанию. кстати маштабирование при размере видеофайла большем размеров экрана предварительно масштабирует его и передает на пересчет кадров уже меньшое изображение. мне кажется это дает выигрыш. на практике не проверял

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

в-третьих, растяжка экрана гибко настраивается
аналогично вышесказанному.

Добавление от 22.09.2008 20:32:

MAG79
видеокарта растягивает быстро и вполне качественно
только что проверил - жалко в оверлее нельзя скрин снять - но растянул плеер ничуть не хуже

Добавление от 22.09.2008 20:51:

выкинул кучу параметров, убрал масштабирование если размер картинки меньше размера экрана
убрал обрезку черных полос потому как они очень редко бывают в видеофайлах
деблок сделал условным от размера картинки исходной

код:
%~dp0cmdow @ /HID
chcp 1251

rem Установка параметров обработки
set /a ExPlayer=0 открытие файлов внешним плеером (0,1)

set /a ExMode=1 метод расчета плавности (1,2)
set /a ExMask=0 глубина расчета плавности (0,1,2)
set /a ExSound=1 Наличие звука в выходном потоке (0,1)
set /a ExCrop=1 включение автообрезки краев (0,1)

set /a ExWidth=1280 ширина монитора в пикселях (целое положительное значение)
set /a ExHeight=720 высота монитора в пикселях (целое положительное значение)
set /a ExFreq=50 частота обновления монитора (целое положительное значение)

rem Считывание сотояния Scroll Lock
for /f "tokens=6 delims=: " %%a in ('%~dp0klocks.exe') do set /a ExNoAuto=%%a

rem Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz

rem определение частоты развертки и разрешения экрана
if %ExNoAuto%==0 for /f "tokens=1,2 delims=:x" %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExWidth=%%a & set /a ExHeight=%%b
if %ExNoAuto%==0 for /f "tokens=5 delims=: " %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExFreq=%%a

rem Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set /A threads=%%a
set /a multicores=%processors%+%cores%

rem Вычисление ширины и высоты клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do set Width=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do set Height=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%

rem Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")

rem Импорт фунции
echo import("%~dp0FindBestDen.avs")>%avsfile%

rem Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=%%b
echo SetMemoryMax(768)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(5,%threads%+2)>>%avsfile%

rem Указание на пригрываемый файл
echo DirectShowSource("%~1",%fps%)>>%avsfile%

rem Устранение деблочности
if %Width% LSS 720 echo Deblock()>>%avsfile%

rem Выключение из обработки звукового потока
if %ExSound%==0 echo killAudio>>%avsfile%

rem Конвертация в цветовое просторанство YV12
echo converttoyv12() >>%avsfile%

rem Определение переменных
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
echo multiden=FindBestDen(%fps%, %ExFreq%, 100, 20)>>%avsfile%
echo multinum=Round(1.0*%ExFreq%*multiden/%fps%)>>%avsfile%

rem Вычисление соотношения сторон
set /a ExAspect=%ExHeight%*10000/%ExWidth%
set /a Aspect=%Height%*10000/%Width%

rem Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %Aspect% LSS %ExAspect% echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,-Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0)>>%avsfile%
if %ExCrop%==1 if %Aspect% GTR %ExAspect% echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,0,-Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2)>>%avsfile%

rem Переопределение высоты и ширины с учетом обрезки
if %Aspect% LSS %ExAspect% set /a Width=%Height%*%ExWidth%/%ExHeight%
if %Aspect% GTR %ExAspect% set /a Height=%Width%*%ExHeight%/%ExWidth%

rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExWidth% LSS %Width% echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(2)>>%avsfile%

rem Алгоритм быстрого увеличение частоты кадров
if %ExMode%==1 echo backward_vec1=MVAnalyse(isb=true,blksize=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==1 echo forward_vec1=MVAnalyse(isb=false,blksize=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==1 echo last.MVFlowFps(backward_vec1,forward_vec1,num=num*multinum,den=den*multiden,mask=%ExMask%,idx=1)>>%avsfile%

rem Алгоритм качественного увеличение частоты кадров
if %ExMode%==2 echo backward_vec1=MVAnalyse(isb=true,blksize=32,blksizev=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==2 echo forward_vec1=MVAnalyse(isb=false,blksize=32,blksizev=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==2 echo forward_re=MVRecalculate(last,forward_vec1,blksize=16,blksizev=8,thSAD=100,chroma=true,searchparam=1,idx=2)>>%avsfile%
if %ExMode%==2 echo backward_re=MVRecalculate(last,backward_vec1,blksize=16,blksizev=8,thSAD=100,chroma=true,searchparam=1,idx=2)>>%avsfile%
if %ExMode%==2 echo last.MVFlowFps(backward_vec1,forward_vec1,num=num*multinum,den=den*multiden,mask=%ExMask%,ml=100,idx=1)>>%avsfile%

rem Подтягивание частоты видео к частоте экрана
if %ExSound%==1 echo assumeFPS(%ExFreq%).timeStretch(tempo=100.0*%ExFreq%*den/num/multinum*multiden)>>%avsfile%

rem Запуск проигрывания файла
if %ExPlayer%==0 if %ExNoAuto%==0 %~dp0MPC-HC\mplayerc.exe %avsfile% /fullscreen /play /close /monitor 2
if %ExPlayer%==0 if %ExNoAuto%==1 %~dp0MPC-HC\mplayerc.exe %avsfile% /fullscreen /play /close /monitor 1
if %ExPlayer%==1 %avsfile%

rem Зачистка результатов
del /f /q %avsfile%
exit

713. ditter, 22.09.2008 22:03
может есть смысл ссделать какую нить фишку типа автоапдейта ? ну что оно само куда нить коннектилось и качало тело скрипта ?
очень много ежедневных доработок . уследить вот за всем трудновато
для ориентира наверное есть смысл писать
final
beta
... etc

714. Vovanchik81, 22.09.2008 22:25
ditter
скрыип вечная бета. а автоапдейт это уже слишком жирно, ради сотни строчек такое дело городить

Добавление от 22.09.2008 23:31:

придумал вот чего. параметры теперь будут в отдельном файле
settings.ini чтоб народ лишний раз в батник не совался
чуть позже реализую

715. MAG79, 23.09.2008 05:18
Vovanchik81
насчет GUI:
в процессе же нельзя менять параметры? смысл тогда в трее его держать?
- для просмотра значений текущих параметров, вывода полезной справочной информации (например, текущий коэффициент плавности Num : Den);
- при изменении параметров можно и кнопку предусмотреть: перезапустить скрипт с новыми параметрами.

насчет нескольких скриптов:
не будет ли это излишним усложнением? я всегда был сторонником минимизации и автоматизации
я считаю, это даст возможность владельцам слабых компьютеров использовать более легкий FrameDbl (описывал с картинками (http://forum.ixbt.com/topic.cgi?id=62:12524:190#190) - три скрипта, два из них используют FrameDbl), а владельцы мощных компов смогут использовать самый навороченный скрипт с настройками по-максимуму.

Насчет теста:
реализовать компактный быстрый тест, который за несколько секунд сможет оценить скорость работы процессора и памяти с кусочком из середины текущего видеофайла, и на основании этих результатов уже выбирать параметры ближе к верхней границе производительности. но это пока только теория
Полностью согласен. Я и не говорил, что тест должен быть полным и долгим. 10 сек из середины файла - вполне должно хватить для оценки производительности текущего скрипта. Причем тест запускать не каждый раз, а по запросу пользователя: он видит, что тормоза - "запустить тест и выбрать подходящий скрипт", или видит, что процессор загружен на 30% - тоже самое: "запустить тест и выбрать подходящий скрипт"... - вот тут иконка в трее и пригодится

маштабирование при размере видеофайла большем размеров экрана предварительно масштабирует его и передает на пересчет кадров уже меньшое изображение. мне кажется это дает выигрыш. на практике не проверял
Совершенно верно. На практике наибольший выигрыш дает уменьшение масштаба с применением функции Spline16Resize - всего 2% загрузки СPU (подробнее (http://forum.ixbt.com/topic.cgi?id=62:12524:332#332) ).
Кстати, обрезка внутри блока масштабирования (как по ссылке) работает быстрее, чем сперва crop, а затем resize.

каждое преобразование уменьшает количество полезной информации, а не добавляет. потому и стремлюсь уменьшить их количество до минимума
Я сторонник этого же подхода. Меньше преобразований - лучше. Исключение - осознанное преследование цели повышения скорости в ущерб качеству, например, масштабирование с уменьшением размера для облегчения расчета.

только что проверил - жалко в оверлее нельзя скрин снять - но растянул плеер ничуть не хуже
Спасибо за проверку и за очередной скрипт. Я с масштабированием в 2.31 для себя сделал примерно тоже самое.

Добавление от 23.09.2008 05:34:

Vovanchik81
придумал вот чего. параметры теперь будут в отдельном файле settings.ini
Хорошая идея. Будет здорово, если получится ее реализовать.

716. Vovanchik81, 23.09.2008 15:02
MAG79
для просмотра значений текущих параметров, вывода полезной справочной информации
это поддерживаю


- при изменении параметров можно и кнопку предусмотреть:

аналогично

это даст возможность владельцам слабых компьютеров использовать более легкий FrameDbl
чета я его упустил из виду.

717. ab_99, 23.09.2008 21:27
цитата:
Vovanchik81:
только что проверил - жалко в оверлее нельзя скрин снять - но растянул плеер ничуть не хуже
при кратном увеличении, или на весь экран? смотрю на весь экран, вроде мылит.

На одном и том материале скрипт может успевать, а может и притормаживать.
Для слабых компов можно добавить утилитку типа kill.all (по памяти), убивающую все процессы, кроме самой Windows разумеется.

направление выбрано правильное: масштабировать видеокартой, блочность убирать ffdshow, осталось только моргать в с частотой кадров, для увеличения плавности.

718. Vovanchik81, 24.09.2008 00:17
ab_99
смотрю на весь экран, вроде мылит
брал рендер выбирал wmr9 windowed снимал скриншоты при выводе растянутого вручную кадра на полном экране и растянутого плееером тобишь видюхой.
выбирал небольшой кусочек изображения в 30-50 пикселей и сравнивал расположение и цвета квадратиков его формирующих.
отличий практически никаких. жаль что тоже соме нельзя сделать при оверлее чтоб быть до конца честным. возможно при оверлейном выводе и замыливает.

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

осталось только моргать в с частотой кадров, для увеличения плавности.
ну почему так. это легко реализуемо. синхросигнал с порта снимать и подавать его на веко. можно и без гуя даже в этом деле обойтись.

719. MAG79, 24.09.2008 04:49
ab_99
моргать в с частотой кадров

Для этой цели существуют программы, как ReClock (http://forum.ixbt.com/topic.cgi?id=62:12524:310#310) . Но лично я для себя сделал вывод, что и без него я не чувствую дискомфорта, т.к. использую Crystal Player с большим буфером кадров, рывки в таком случае практически исключены.

Vovanchik81
если убьешь хоть один процесс самостийно - загрызут юзеры. не совсем тактично это решать самому...
А если опять же по просьбе юзера и с предупреждением, что это на страх и риск, и что для полноценной работы после просмотра видео надо будет перезагрузить компьютер - тогда вполне полезная функция получится (лично я иногда пользуюсь удалением лишних процессов из диспетчера задач, это процедура при выполнении ее вручную занимает около минуты).

720. DmitryO, 24.09.2008 11:00
Всем день добрый! Подскажите, что делаю не так?
Скачал дистрибутив MVTools_smooth_play_2.1.exe установил (хотя наверное можно было и не устанавливать?... , т.к. AviSynth уже стоял, после установки K-Lite Codec Pack, ну не важно установил). Решил воспользоваться настройками через ffdShow. Прописал скрипт в фильтре AviSynth (при чем пробовал разные скрипты, но начал с самого первого). Перезапустил видеофайл (avi-ник) и что-то я не замечаю никаких изменений и никакой загрузки процессора, как здесь пишут, ставишь галку "AviSynth" или убираешь, загрузка камня 3-4%.
Наверное я что-то не так делаю? Подскажите, плиз И вообще, скажите, насколько сразу будет видна разница в картинке. Фильмы в основном пока смотрю DivX? Не скажу что до этого замечал каких-то рывков картинки, но тема "плавности" заинтересовала.

721. MAG79, 24.09.2008 11:22
DmitryO
По сути дела настройка автоматического создания и проигрывания (MVTools_smooth_play) и ffdShow - это два альтернативных способа настройки плавности движений. Причем, они не могут быть использованы одновременно (а точнее могут, но не должны использоваться).

Рекомендую вернуться к первому сообщению темы и повторить последовательно действия из разделов "I. Установка" и "II-a. Настройка..."

722. Vovanchik81, 24.09.2008 11:25
MAG79
тогда вполне полезная функция получится
не знаю насколько у вас опыта как у системников, но то что известно мне подсказывает, что определить нужность или ненужность того или иного процесса на чужом компе может определить разве что его хозяин, да и то под большим вопросом. это вешь сугубо индивидуальная и требует очень тщательного подхода и понимания своих действий. никогда бы не поручил это автоматике.


DmitryO
что делаю не так
на самом деле все не так.
))
после установки (она обязательна) ассоциируешь видеофайлы с файлом smooth_play.cmd из папки c:\MVTools
дальше он все сделает самостоятельно

723. DmitryO, 24.09.2008 12:07
Vovanchik81
Да, не скрою, чайник я в этих вопросах , но очень хотелось бы во всем этом разобраться и не только в настройке плавности изображения, но вообще в основных принципах и терминах обработки, кодирования, вывода видеоизображений. А то читаю тут и все это для меня как китайская грамота. Может подскажешь какие-нибудь ссылки, где бы я нашел ответы хотя бы на часть своих вопросов, так называемый "ликбез", желательно, чтобы описано было доступным языком.
Может кто еще знает, где можно подчерпнуть знаний ?

Добавление от 24.09.2008 12:39:

Сам спрашиваю и сам же нахожу ответы Поленился сразу перейти по одной из первых ссылок поста http://compression.ru/video/frame_rate_conversion/index_msu.html, а зря Полезный сайт, полезная инфа, но все равно буду признателен, всем кто еще кинет какие-нибудь ссылки по интересующей меня теме (см. сообщ. выше). Заранее спасибо.

724. ab_99, 24.09.2008 12:42
цитата:
Vovanchik81:
по моему личному опыту - если убьешь хоть один процесс самостийно - загрызут юзеры. не совсем тактично это решать самому кому жить, а кому нге стоит на чужой территории
ты включи в пакет, и укажи на такую возможность для слабых компов, сами включат и не "... набросятся на вас..."

DmitryO
почитай еще ветку - Экстремальный Ависинт (AviSynth) (http://forum.ixbt.com/topic.cgi?id=29:9331-125)

725. DmitryO, 24.09.2008 12:59
ab_99
Спасибо за ссылку! Жить стало лучше, жить стало веселей...

726. Vovanchik81, 24.09.2008 13:08
пока что все на паузе. нужно в башке все по полочкам разложить.
пока задумки вот такие
- сделать файл settings.ini в котором будут настройки. найти того кто сможет сделать к нему гуй или вэбинтерфейс для редактирования с подробными пояснениями что и для чего там нужно.
- разобраться в языке avisinth и портировать большинство функционала на него. батник оставить как прослойку между ini и avs файлами который будет транслировать параметры и запускать плеер
- найти кого нить кто напишет простенький гуевый интерфейс способный заменить данный батник.
- сделать небольшой тест который сможет один раз примерно оценить возможности компа и сформировать рекомендуемые параметры и дать рекомендации. но это пока под вопросом.

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

Добавление от 24.09.2008 15:58:

DmitryO
а чего версию такую старую используете?
http://rapidshare.com/files/147228796/MVTools_smooth…lay_2.31.exe.html
уже давно вышла

727. DmitryO, 24.09.2008 16:53
Vovanchik81
Спасибо скачаю.
Если правильно понял (еще в процессе чтения полезных ссылок, которые мне дали), то при использовании MVTools, чтобы просмотреть нужный мне файл с эффектом плавности, надо в командной строке написать Smooth_play.cmd пробел и авишник, который хочу посмотреть (просто попробовал так запустить один файл, запустился, развернулся на весь экран, но изображение практически не двигалось, тормоза жуткие, наверное надо что-то настроить, пока до конца не постиг всех премудростей, да и комп на работе слабенький )? Вообще почему сначала начал эксперементировать через ffdShow, просто хотелось, чтобы всю было так: один раз настроил, запустил свой плеер (у меня KMPlayer) и все само заработало Показалось, что этот вариант как раз и позволяет это сделать...

728. Vovanchik81, 24.09.2008 16:56
открыть с помошью - указываешь батник как открывающую программу и все
написано же в шапке
цитата:

2а. Вручную. Каждый раз: Открыть папку с видеофайлом; Открыть папку C:\MVTools; Перетащить видеофайл и отпустить над Smooth_play.cmd.
2б. Автоматически. Один раз: Ассоцировать (контекстное меню -> открыть с помощью) видеофайлы каждого типа помимо проигрывателей еще и с файлом Smooth_play.cmd по адресу C:\MVTools. Пункт меню "Воспроизвести с плавностью" появится в контекстном меню, а в случае указания галки "Всегда использовать..." все последующие открытия видеофайлов данного типа будут идти уже через Smooth_play.cmd.

729. GL, 24.09.2008 17:37
Vovanchik81
2.31 у меня не работает.
создает скрипт avs c
import("C:\MVTools\FindBestDen.avs")
SetMemoryMax(768)
и все. плеер не запускает.

730. DmitryO, 24.09.2008 17:45
Vovanchik81
Понял, попробовал. Ну похоже, как открывал я (указывал в командной строке Smooth_play.cmd и через пробел имя проигрываемого файла) как вы написали в последнем сообщении - это одно и то же (результат тоже, те же тормоза ). Радует одно, что я уже двигаюсь в нужном направлении.
А тогда такой вопрос (заранее извиняюсь, если это уже раньше описывалось, просто не успеваю дочиать всю ветку). А можно сделать так, что бы файл открывался не Media Player Classic, а моим проигрывателем? Моя догатка: в Smooth_play.cmd в параметре set /a ExPlayer поставить =1? Тогда откроется плеер по умолчанию?

Добавление от 24.09.2008 17:51:

Не угадал Создается скрипт .avs, который видимо потом надо где-то использывать...

Добавление от 24.09.2008 18:01:

Прописать самому в Smooth_play.cmd в последних строках имя проигрывателя?

731. Vovanchik81, 24.09.2008 19:20
GL
полное имя имя видеофайла и путь к нему
DmitryO
в параметре set /a ExPlayer поставить =1?
правильно. и ассоциировать avs файлы с проигрывателем

732. tvguru, 24.09.2008 19:44
""II-б. Настройка через ffdShow
1. Запустить Media Player Classic.
2. Открыть любой видеофайл.
3. Правой кнопкой на картинке – filters – ffdshow Video Decoder, поставить галку напротив AviSynth, в закладке установить параметры, как на рисунке.""
вот так делаю и MPC выводит ошибку
что делаю не так?

Добавление от 24.09.2008 19:52:

ошибку вида: это программа выполнила недопустимую....
правда я ничего не устанавливал, прочитал тему, увидел опцию avs в настройках ffdshow и настроил его, как только жму Ок - сразу же ошибка!

733. Vovanchik81, 24.09.2008 20:00
tvguru
хороший повод прочитать хотя бы первое сообщение.
плагины надо установить и все такое

734. GL, 24.09.2008 21:14
Vovanchik81
по любому пути не открывает. ни внешним, ни плеером mpc, что внутренний из mvtools.
сейчас E:\кино\[HDTV]10000.mkv

735. Vovanchik81, 24.09.2008 21:28
GL
можешь убрать из скрыпта строку
%~dp0cmdow @ /HID
и скинуть лог работы его?

Добавление от 24.09.2008 21:58:

добавил ini файл для считывания из него параметров

код:
%~dp0cmdow @ /HID
chcp 1251

rem Установка параметров обработки
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExPlayer" %~dp0settings.ini') do set /A ExPlayer=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExMode" %~dp0settings.ini') do set /A ExMode=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExSound" %~dp0settings.ini') do set /A ExSound=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExCrop" %~dp0settings.ini') do set /A ExCrop=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExWidth" %~dp0settings.ini') do set /A ExWidth=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExHeight" %~dp0settings.ini') do set /A ExHeight=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExFreq" %~dp0settings.ini') do set /A ExFreq=%%a

rem Считывание сотояния Scroll Lock
for /f "tokens=6 delims=: " %%a in ('%~dp0klocks.exe') do set /a ExNoAuto=%%a

rem Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz

rem определение частоты развертки и разрешения экрана
if %ExNoAuto%==0 for /f "tokens=1,2 delims=:x" %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExWidth=%%a & set /a ExHeight=%%b
if %ExNoAuto%==0 for /f "tokens=5 delims=: " %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExFreq=%%a

rem Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set /A threads=%%a
set /a multicores=%processors%+%cores%

rem Вычисление ширины и высоты клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do set Width=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do set Height=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%

rem Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")

rem Импорт фунции
echo import("%~dp0FindBestDen.avs")>%avsfile%

rem Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=%%b
echo SetMemoryMax(768)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(5,%threads%+2)>>%avsfile%

rem Указание на пригрываемый файл
echo DirectShowSource("%~1",%fps%)>>%avsfile%

rem Устранение деблочности
if %Width% LSS 720 echo Deblock()>>%avsfile%

rem Выключение из обработки звукового потока
if %ExSound%==0 echo killAudio>>%avsfile%

rem Конвертация в цветовое просторанство YV12
echo converttoyv12() >>%avsfile%

rem Определение переменных
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
echo multiden=FindBestDen(%fps%, %ExFreq%, 100, 20)>>%avsfile%
echo multinum=Round(1.0*%ExFreq%*multiden/%fps%)>>%avsfile%

rem Вычисление соотношения сторон
set /a ExAspect=%ExHeight%*10000/%ExWidth%
set /a Aspect=%Height%*10000/%Width%

rem Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %Aspect% LSS %ExAspect% echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,-Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0)>>%avsfile%
if %ExCrop%==1 if %Aspect% GTR %ExAspect% echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,0,-Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2)>>%avsfile%

rem Переопределение высоты и ширины с учетом обрезки
if %Aspect% LSS %ExAspect% set /a Width=%Height%*%ExWidth%/%ExHeight%
if %Aspect% GTR %ExAspect% set /a Height=%Width%*%ExHeight%/%ExWidth%

rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExCrop%==1 if %ExWidth% LSS %Width% echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(2)>>%avsfile%

rem Алгоритм быстрого увеличение частоты кадров
if %ExMode%==1 echo backward_vec1=MVAnalyse(isb=true,blksize=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==1 echo forward_vec1=MVAnalyse(isb=false,blksize=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==1 echo last.MVFlowFps(backward_vec1,forward_vec1,num=num*multinum,den=den*multiden,mask=%ExMask%,idx=1)>>%avsfile%

rem Алгоритм качественного увеличение частоты кадров
if %ExMode%==2 echo backward_vec1=MVAnalyse(isb=true,blksize=32,blksizev=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==2 echo forward_vec1=MVAnalyse(isb=false,blksize=32,blksizev=16,pel=1,chroma=true,searchparam=1,idx=1)>>%avsfile%
if %ExMode%==2 echo forward_re=MVRecalculate(last,forward_vec1,blksize=16,blksizev=8,thSAD=100,chroma=true,searchparam=1,idx=2)>>%avsfile%
if %ExMode%==2 echo backward_re=MVRecalculate(last,backward_vec1,blksize=16,blksizev=8,thSAD=100,chroma=true,searchparam=1,idx=2)>>%avsfile%
if %ExMode%==2 echo last.MVFlowFps(backward_vec1,forward_vec1,num=num*multinum,den=den*multiden,mask=%ExMask%,ml=100,idx=1)>>%avsfile%

rem Подтягивание частоты видео к частоте экрана
if %ExSound%==1 echo assumeFPS(%ExFreq%).timeStretch(tempo=100.0*%ExFreq%*den/num/multinum*multiden)>>%avsfile%

rem Запуск проигрывания файла
if %ExPlayer%==0 if %ExNoAuto%==0 %~dp0MPC-HC\mplayerc.exe %avsfile% /fullscreen /play /close /monitor 2
if %ExPlayer%==0 if %ExNoAuto%==1 %~dp0MPC-HC\mplayerc.exe %avsfile% /fullscreen /play /close /monitor 1
if %ExPlayer%==1 %avsfile%

rem Зачистка результатов
del /f /q %avsfile%
exit

http://rapidshare.com/files/148054468/MVTools_smooth_play_2.4.exe.html

Добавление от 24.09.2008 23:08:

MAG79
вопрос чисто по avisynth/

как можно проконтролировать параметр внутри скрипта при его выполнении? есть что нить типа OSD или как сообщение об ошибке красным на черном фоне? просто для отладки функций хотелось бы видеть если не динамическое, то хотябы статическое значение переменной. как кстати передавать параметр из скрыпа в гуй? наприммер что теже множители с делителя глянуть?

Добавление от 24.09.2008 23:10:

и вот еще чего - я так понял DirectShowSource не совсем корректно fps умеет определять? т.е. его все равно внутрь avs придется параметром передавать?

Добавление от 24.09.2008 23:12:

честно так до конца и не убедил себя что часть кода стоит из cmd в avs портировать. вот хоть убей, не могу никак себе обьяснить логичные причины этого. код он и в африке код, а самая короткая дорога та что знаешь. тем более зачем чинить что и так работает? лучшее оно враг хорошего.

Добавление от 24.09.2008 23:18:

GL
межет у тебя просто DirectShowSource не отрабатывает потому как DirectShow фильтры поломались для mkv? тот же самый сплиттер нормально работает?

736. DmitryO, 24.09.2008 23:27
Vovanchik81
Попробовал сегодня через smooth_play - ура работает!
Правда есть некоторые проблемы:
1. отстает звук
2. при быстрых движениях бывают некоторые артефакты (не знаю как правильно их классифицировать) - шлейф, что ли или раздвоение картинки )) (сори за неточность в терминах)
3. у меня включен режим Dual view и картинка выводится сразу на телевизор, а можно ли что бы на первый монитор, я ее потом если надо сам перетащу?
Самое не приятное это конечно что звук отстает, пробовал на разных фильмах, если без "плавности", то со звук все окей.

737. Vovanchik81, 24.09.2008 23:51
DmitryO
можно ли что бы на первый монитор
screen lock нажми кнопочку и перезапусти файл. насчет звука - ты источники звука не менял? ну типа когда несколько дорожек звуковых у одного файла?

738. ab_99, 25.09.2008 00:14
цитата:
DmitryO:
Самое не приятное это конечно что звук отстает, пробовал на разных фильмах, если без "плавности", то со звук все окей.
Сразу не заметил, т.к. не на всех фильмах отстает, и фильмы вроде по разрешению и частоте одинаковые, формат звука тоже. Вот если бы звук опережал, то понятно было бы, больше кадров.
с одной дорожкой тоже.

PS! подозрение сразу же пало на строчку: #assumeFPS(60).timeStretch(tempo=100.0*60*den/num/multinum*multiden), закоментировал и сразу ОК!

739. Vovanchik81, 25.09.2008 00:28
ab_99
как я и думал- ависинт не умеет работать с многоканальным звуком. он все равно читает ac3|dts дороги без изменения скорочти протяжки этой командой...

вот бы обходной путь придумать который сможет вынимать дорогу из файла и не обрабатывая и распечатывая ее посылать на выход плееру с частотой проигрывания файла. но походу это внутренее ограничение самого ависинта. или я не прав?

740. DmitryO, 25.09.2008 00:48
Vovanchik81
Источники не менял, но я вижу вы тут спецы и так поняли в чем дело
Извини, не понял, где кнопочка "screen lock" находится?

741. Vovanchik81, 25.09.2008 01:04
DmitryO
не, у тебя в другом дело. в самом конце скритпа поменяй названия мониторов. у тебя основной на 1 а дополнительный на втором похоже
rem Запуск проигрывания файла
if %ExPlayer%==0 if %ExNoAuto%==0 %~dp0MPC-HC\mplayerc.exe %avsfile% /fullscreen /play /close /monitor 2
if %ExPlayer%==0 if %ExNoAuto%==1 %~dp0MPC-HC\mplayerc.exe %avsfile% /fullscreen /play /close /monitor 1
надо сделать вот так
rem Запуск проигрывания файла
if %ExPlayer%==0 if %ExNoAuto%==0 %~dp0MPC-HC\mplayerc.exe %avsfile% /fullscreen /play /close /monitor 1
if %ExPlayer%==0 if %ExNoAuto%==1 %~dp0MPC-HC\mplayerc.exe %avsfile% /fullscreen /play /close /monitor 2

742. ab_99, 25.09.2008 01:05
цитата:
Vovanchik81:
вот бы обходной путь придумать который сможет вынимать дорогу из файла и не обрабатывая и распечатывая ее посылать на выход плееру с частотой проигрывания файла. но походу это внутренее ограничение самого ависинта. или я не прав?
в инструкции сказано:"Плагин НЕ является вполне точным в отношении аудио-выборки. При его использовании возможны некоторые неточности. Учитывая использование чисел с дробной частью (float) возможно проявление ошибок округления, особенно на длинных аудио-выборках. В целом, однако, неточность не должна превышать 10-ов миллисекунд на выборках длинной в фильм."

можно грохнуть звук в скрипте, но как заставить плеер читать его отдельно?

2. для отладки параметров используй вывод с помощью:
Subtitle (clip, string text)

н-р:
outText = "num="+String(num)+", " + "den="+String(den)
last.Subtitle(outText)

743. Vovanchik81, 25.09.2008 01:07
ab_99
но как заставить плеер читать его отдельно
virtualdubmod берешь открываешь складку потоки и вынимаешь необходимый. обзываешь его как файл, но с другим расширением. все. плеер сам его подхватит если он рядом с файлом лежать будет.

Добавление от 25.09.2008 01:08:

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

744. ab_99, 25.09.2008 01:11
цитата:
Vovanchik81:
virtualdubmod берешь открываешь складку потоки и вынимаешь необходимый. обзываешь его как файл, но с другим расширением. все. плеер сам его подхватит если он рядом с файлом лежать будет.
не наш метод, однозначно
открываем видеофайл дважды, в одном убиваем звук, в другом видео, сохраняем два *.avs
так получится плеер обмануть?

PS! ну вот вывел параметры, как сам учил, и удивился.
num=25, den=1 и, соответственно assumeFPS(60) (в свойствах клипа, в мрс) делает мне вид, что все ОК, частота кадров=60

745. tvguru, 25.09.2008 02:52
.....

746. GL, 25.09.2008 06:46
Vovanchik81

код:

D:\ЄЁ­®>ў Ў ­Є.mkv

D:\ЄЁ­®>chcp 1251
Текущая кодовая страница: 1251

D:\кино>rem Установка параметров обработки

D:\кино>set /a ExPlayer=0 открытие файлов внешн
им плеером (0,1)
Отсутствующий оператор.

D:\кино>set /a ExMode=1 метод расчета плавнос
ти (1,2)
Отсутствующий оператор.

D:\кино>set /a ExMask=0 глубина расчета плавн
ости (0,1,2)
Отсутствующий оператор.

D:\кино>set /a ExSound=1 Наличие Р·РІСѓРєР° РІ выходР
ЅРѕРј потоке (0,1)
Отсутствующий оператор.

D:\кино>set /a ExDeblock=1 включение устранение
блочности изображения (0,1)
Отсутствующий оператор.

D:\кино>set /a ExCrop=1 включение автообрезкР
ё краев (0,1)
Отсутствующий оператор.

D:\кино>set /a ExResize=1 включение авторастягР
ёРІР°РЅРёСЏ РґРѕ размеров монитора,зависимо РѕС‚ ExCrop
(0,1)
Отсутствующий оператор.

D:\кино>set /a ExCropBF=0 включение СѓСЂРѕРІРЅСЏ РѕР±СЂРµ
зки черных полос (четное положительное знач
ение)
Отсутствующий оператор.

D:\кино>set /a ExWidth=1280 ширина монитора РІ пикселяС
… (целое положительное значение)
Отсутствующий оператор.

D:\кино>set /a ExHeight=720 высота монитора РІ пикселяС
… (целое положительное значение)
Отсутствующий оператор.

D:\кино>set /a ExFreq=50 частота обновления РјРѕ
нитора (целое положительное значение)
Отсутствующий оператор.

D:\кино>rem Считывание сотояния Scroll Lock

D:\кино>for /F "tokens=6 delims=: " %a in ('C:\MVTools\klocks.exe') do set /a Ex
NoAuto=%a

D:\кино>set /a ExNoAuto=0

D:\кино>rem Генерация отчета РїРѕ процессору РїСЂРё РѕС
‚сутствии РѕРЅРѕРіРѕ (отчета)

D:\кино>IF not EXIST C:\MVTools\cpuz.txt C:\MVTools\cpuz -txt=C:\MVTools\cpuz

D:\кино>rem определение частоты развертки Рё разр
ешения экрана

D:\кино>if 0 == 0 for /F "tokens=1,2 delims=:x" %a in ('C:\MVTools\qres /s | fin
d "bits"') do set /a ExWidth=%a & set /a ExHeight=%b

D:\кино>set /a ExWidth=1600 & set /a ExHeight=1200, 32 bits @ 60 Hz.
Отсутствующий оператор.

D:\кино>if 0 == 0 for /F "tokens=5 delims=: " %a in ('C:\MVTools\qres /s | find
"bits"') do set /a ExFreq=%a

D:\кино>set /a ExFreq=60

D:\кино>rem Определение многопоточности процесс
РѕСЂР°

D:\кино>for /F "tokens=4" %a in ('findstr /l "cores" C:\MVTools\cpuz.txt') do se
t /A cores=%a

D:\кино>for /F "tokens=4" %a in ('findstr /l "processors" C:\MVTools\cpuz.txt')
do set /A processors=%a

D:\кино>for /F "tokens=4" %a in ('findstr /l "threads" C:\MVTools\cpuz.txt') do
set /A threads=%a

D:\кино>set /a multicores=+
Отсутствующий операнд.

D:\кино>rem Вычисление ширины Рё высоты клипа

D:\кино>for /F "tokens=2,3 delims=: " %b in ('C:\MVTools\MediaInfo "D:\кино\Ваба
нк.mkv" | find "Width"') do set Width=%b & for /F "tokens=* delims=0" %a in ('
echo %c') do set Width2=%a

') do set Width2=%a 0 & for /F "tokens=* delims=0" %a in ('echo pixels

D:\кино>set Width2=pixels

D:\кино>if not "pixels" == "pixels" set /A Width=720 *1000+pixels

D:\кино>for /F "tokens=2,3 delims=: " %b in ('C:\MVTools\MediaInfo "D:\кино\Ваба
нк.mkv" | find "Height"') do set Height=%b & for /F "tokens=* delims=0" %a in
('echo %c') do set Height2=%a

') do set Height2=%a 8 & for /F "tokens=* delims=0" %a in ('echo pixels

D:\кино>set Height2=pixels

D:\кино>if not "pixels" == "pixels" set /A Height=528 *1000+pixels

D:\кино>rem Проверка РЅР° возможности записи РІ катР
°Р»РѕРі СЃ клипом Рё определение имени выходного
файла

D:\кино>echo 1>"D:\кино\Вабанк.avs"

D:\кино>IF EXIST "D:\кино\Вабанк.avs" (set avsfile="D:\кино\Вабанк.avs" ) else
(set avsfile="C:\MVTools\Вабанк.avs" )

D:\кино>rem Р˜РјРїРѕСЂС‚ фунции

D:\кино>echo import("C:\MVTools\FindBestDen.avs") 1>"D:\кино\Вабанк.avs"

D:\кино>rem Вычисление фремрейта клипа

D:\кино>for /F "tokens=3 delims=: " %b in ('C:\MVTools\MediaInfo "D:\кино\Вабанк
.mkv" | find "Frame rate"') do set fps=%b

D:\кино>set fps=25.000

D:\кино>echo SetMemoryMax(768) 1>>"D:\кино\Вабанк.avs"

D:\кино>rem Условие РЅР° многопоточность
Непредвиденное появление: 2.

D:\кино>IF GTR 2 echo SetMTMode(5,+2)>>"D:\кино\Вабанк.avs"




747. MAG79, 25.09.2008 08:16
Vovanchik81
нужно определится с целевой аудиторией.
если делаем для людей понимающих суть параметров - то делаем гибкий в настройке скрыпт
если делаем для домашнего пользователя для которого avisinth слово ругательное - то делаем черный ящик который будет работать сам по себе. между собой эти два направления практически не пересекаются.

Определиться, согласен, надо. Причем сразу могу сказать, что аудитория есть и будет обоих типов: любители тонких настроек и желающие одной кнопкой всё сразу смотреть.
Единая реализация автоматического собирателя скрипта для обоих категорий имеет свои плюсы:
1) наработки первой категории людей можно применять для второй.
2) при проблемах у второй категории им можно сообщить куда чего глянуть, чтобы лог посмотреть и по нему уже что-то советовать.

Так что я не совсем согласен, что эти два направления не пересекаются - их можно (и считаю, что нужно) совместить в одной реализации.

как можно проконтролировать параметр внутри скрипта при его выполнении?
ab_99 уже ответил:
код:
outText = "num="+String(num)+", " + "den="+String(den)
last.Subtitle(outText)

Это первый способ.
Есть второй - запись значений в текстовый файл. Команда WriteFile и производные...

как кстати передавать параметр из скрыпа в гуй?
Например, через текстовый файл. В начале проигрывания можно создать файл по команде WriteFileStart. Строка в файле Smoth_play.cmd будет выглядеть так:
код:
echo WriteFileStart("info.txt","multinum",""" ":" ""","multiden")>>%avsfile%

В итоге после старта скрипта создастся файл info.txt с содержанием, например "20:5".
Это я открыл файл с 15.013 кадров/сек на 60 fps экране. Почему не "4:1"? Особености округления. 20:5 дало меньшую дельту, чем 4:1. Результат работы скрипта от этого ничуть не страдает. Решил пока оставить так (хотя можно ввести точность расчета "Eps", при нахождении в границах которой можно считать, что дельты равны).

честно так до конца и не убедил себя что часть кода стоит из cmd в avs портировать
Я вовсе не сторонник портирования кода в avs. Я говорил о шаблонах. Смысл: есть два блока, выполняющих похожую работу, например, расчет дополнительных кадров, но в одном применяется MVFlowFps, а в другом MVBlockFps. Было бы здорово хранить эти блоки снаружи от cmd, а из него выбирать необходимый блок и подставлять туда параметры при формировании Avs. Вот это было бы полезным. Но я не знаю, насколько это сложно реализовать в cmd.
В тесте производительности я это делал на VBScript.

ab_99
вывел параметры, как сам учил, и удивился.
А что удивительного? Что исходный клип имеет частоту 25 кадров/сек?

748. Shon26, 25.09.2008 08:21
MVTools_smooth_play_2.4.exe
не вырисовываются параметры mask
last.MVFlowFps(backward_vec1,forward_vec1,num=num*multinum,den=den*multiden,mask=,idx=1)

все разобрался, в Smooth_play.cmd не было строчки
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExMask" %~dp0settings.ini') do set /A ExMask=%%a

749. Vovanchik81, 25.09.2008 10:12
GL
удали файл cpuz.txt и попробуй заново
у тебя параметры камня некорректно считываются.

ab_99
сохраняем два *.avs
если будут с разными именами то не подхватяться. да и нельзя пускать звуковой поток внутрь avs - он его кошмарит и каналы срезает как я погляжу

не наш метод, однозначно
но единственный реально работающий


MAG79
Это первый способ.
Есть второй - запись значений в текстовый файл.

пасиба, гляну

Я говорил о шаблонах
это легко
теперь понял о чем это ты

Shon26
все разобрался,
чета я упустил

Добавление от 25.09.2008 11:11:

DmitryO
scroll lock - перепутал. сверху справа на клаве

750. DmitryO, 25.09.2008 12:30
Vovanchik81
Про кнопку понял, спасибо, попробую.
Со звуком до конца не понял. Закоментировать строчку: #assumeFPS(60).timeStretch(tempo=100.0*60*den/num/multinum*multiden), как предлагал ab__99?

751. Vovanchik81, 25.09.2008 12:32
DmitryO
rem Подтягивание частоты видео к частоте экрана
if %ExSound%==1 echo assumeFPS(%ExFreq%).timeStretch(tempo=100.0*%ExFreq%*den/num/multinum*multiden)>>%avsfile%
вот эти строки удали в скрипте и отчитайся по возможности об эффекте

Добавление от 25.09.2008 12:34:

да и кстати не в кнопки дело, яж тебе отписался

752. DmitryO, 25.09.2008 12:46
Vovanchik81
Со звуком вечером попробую, доложусь
Про строки скрипта вывода на монитор я все понял, тоже попробую, просто последнее сообщение
DmitryO
scroll lock - перепутал. сверху справа на клаве

было про кнопку, поэтому решил, что кнопка тоже как вариант смены экрана. Ошибаюсь?

753. Vovanchik81, 25.09.2008 13:50
кнопка немного другие функции выполняет. она определяет откуда брать данные о разрешении и частоте экрана - из файла или из компа.
полезно в основном для дополнительного монитора - просто его данные просто так не вытянешь.

754. GL, 25.09.2008 18:04
Vovanchik81
спасиб. заработало.

755. Vovanchik81, 25.09.2008 21:49
реализовал подгрузку функций и з отдельных файлов. как окончательно определюсь - выложу.

и вопрос к людям которые это понимают (тем кто знает тех кто понимает)
может ли кто на основе вот этой информации написать консольную программку которая определит номер, разрешение и частоту основного и дополнительного монитора автоматически?
источник вот тут
http://www.wasm.ru/article.php?article=Multimon
http://yandex.ru/yandsearch?text=EnumDisplayDevices
http://www.netomatix.com/Articles/KBArticle.aspx?a=197671
для меня это все филькина грамота - но кто то же в этом хоть что-то понимает?

Добавление от 25.09.2008 23:07:

код:
%~dp0cmdow @ /HID
chcp 1251

rem Установка параметров обработки
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExPlayer" %~dp0settings.ini') do set /A ExPlayer=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExMode" %~dp0settings.ini') do set /A ExMode=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExMask" %~dp0settings.ini') do set /A ExMask=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExSound" %~dp0settings.ini') do set /A ExSound=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExCrop" %~dp0settings.ini') do set /A ExCrop=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExWidth" %~dp0settings.ini') do set /A ExWidth=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExHeight" %~dp0settings.ini') do set /A ExHeight=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExFreq" %~dp0settings.ini') do set /A ExFreq=%%a

for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExMonDef" %~dp0settings.ini') do set /A ExMonDef=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExMonExt" %~dp0settings.ini') do set /A ExMonExt=%%a

rem Считывание соcтояния Scroll Lock
for /f "tokens=6 delims=: " %%a in ('%~dp0klocks.exe') do set /a ExNoAuto=%%a

rem Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz

rem определение частоты развертки и разрешения экрана
if %ExNoAuto%==0 for /f "tokens=1,2 delims=:x" %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExWidth=%%a & set /a ExHeight=%%b
if %ExNoAuto%==0 for /f "tokens=5 delims=: " %%a in ('%~dp0qres /s ^| find "bits"') do set /a ExFreq=%%a

rem Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set /A threads=%%a
set /a multicores=%processors%+%cores%

rem Вычисление ширины и высоты клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do set Width=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do set Height=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%

rem Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")

rem Импорт фунции
echo import("%~dp0FindBestDen.avs")>%avsfile%

rem Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=%%b
echo SetMemoryMax(768)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(5,%threads%+2)>>%avsfile%

rem Указание на пригрываемый файл
echo DirectShowSource("%~1",%fps%)>>%avsfile%

rem Устранение деблочности
if %Width% LSS 720 echo Deblock()>>%avsfile%

rem Выключение из обработки звукового потока
if %ExSound%==0 echo killAudio>>%avsfile%

rem Конвертация в цветовое просторанство YV12
echo converttoyv12() >>%avsfile%

rem Определение переменных
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
echo multiden=FindBestDen(%fps%, %ExFreq%, 100, 20)>>%avsfile%
echo multinum=Round(1.0*%ExFreq%*multiden/%fps%)>>%avsfile%
echo mask=%ExMask% >>%avsfile%

rem Вычисление соотношения сторон
set /a ExAspect=%ExHeight%*10000/%ExWidth%
set /a Aspect=%Height%*10000/%Width%

rem Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %Aspect% LSS %ExAspect% echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,-Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0)>>%avsfile%
if %ExCrop%==1 if %Aspect% GTR %ExAspect% echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,0,-Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2)>>%avsfile%

rem Переопределение высоты и ширины с учетом обрезки
if %Aspect% LSS %ExAspect% set /a Width=%Height%*%ExWidth%/%ExHeight%
if %Aspect% GTR %ExAspect% set /a Height=%Width%*%ExHeight%/%ExWidth%

rem Качественное масштабирование обрезанного клипа до необходимого размера
if %ExCrop%==1 if %ExWidth% LSS %Width% echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

rem Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(2)>>%avsfile%

rem Алгоритм быстрого увеличение частоты кадров
if %ExMode%==1 echo import("%~dp0ExMode_1.avs")>>%avsfile%

rem Алгоритм качественного увеличение частоты кадров
if %ExMode%==2 echo import("%~dp0ExMode_2.avs")>>%avsfile%

rem Подтягивание частоты видео к частоте экрана
rem if %ExSound%==1 echo assumeFPS(%ExFreq%).timeStretch(tempo=100.0*%ExFreq%*den/num/multinum*multiden)>>%avsfile%

rem Запуск проигрывания файла
if %ExPlayer%==0 if %ExNoAuto%==0 %~dp0MPC-HC\mplayerc.exe %avsfile% /fullscreen /play /close /monitor %ExMonDef%
if %ExPlayer%==0 if %ExNoAuto%==1 %~dp0MPC-HC\mplayerc.exe %avsfile% /fullscreen /play /close /monitor %ExMonExt%
if %ExPlayer%==1 %avsfile%

rem Зачистка результатов
del /f /q %avsfile%
exit

http://rapidshare.com/files/148364855/MVTools_smooth…lay_2.51.exe.html
выравние частоты видео с частотой монитора пока закомментировал. жду отзывов с мест насчет корректности звука без ее вмешательства.

756. DmitryO, 25.09.2008 23:34
Vovanchik81
Попробовал убрать строку, о которой ты говорил
if %ExSound%==1 echo assumeFPS(%ExFreq%).timeStretch(tempo=100.0*%ExFreq%*den/num/multinum*multiden)>>%avsfile%
Жаль, не помогло
Еще есть идеи?

757. MAG79, 26.09.2008 05:23
Vovanchik81
Прочитал в соседней ветке про твои трудности с даунмиксом внутри AVS-скрипта.
Я таких трудностей не испытываю. На выходе AVS-скрипта у меня всегда сохраняется исходное количество каналов звука, правда они являются уже распакованными. Про настройки, которые я использую описывал выше в теме (если интересно, могу на конкретные сообщения ссылки дать). Проблем с рассинхроном нет (как со строчкой assumeFPS/timeStretch так и без нее). Просто последние драйвера звуковухи и последний пакет кодеков.

DmitryO
Давно обновлял драйвера звуковухи и кодеки в системе?

758. Vovanchik81, 26.09.2008 09:38
MAG79
блин, кодеки у всех разные, звуковухи тоже
унифицироватьбы это все, да не получится.

к томуж по цифре распакованный не пошлешь. можно в принципе силами ffdshow audio запаковать в ac3 вроде, тока боюсь разницу на моей акустике я услышу между этим и исходным dts потоком.

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

759. DmitryO, 26.09.2008 11:00
MAG79

Давно обновлял драйвера звуковухи и кодеки в системе?
С пол года наверное. Попробую обновить... Думаешь поможет?

760. Vovanchik81, 26.09.2008 15:11
MAG79

у меня всегда сохраняется исходное количество каналов звука
т.е. в свойствах проигрываемого файла в MPC при проигрывании avs написано в качестве звукового потока что?

761. VictorLS, 26.09.2008 19:55
Vovanchik81
большая просьба выкладывать еще где-нибудь.
Например, rapidshare.de, ifolder.ru
Заранее спасибо.

762. Vovanchik81, 26.09.2008 21:01
с помощью хороших людей написал прогу консольную определяющую разрешение и частоту обоих мониторов и выявляющую монитор по умолчанию.


теперь scroll lock отвечает только за выбор монитора на котором кино разворачивать- на основном или дополнительном. обьяснять особо не буду - выявляется опытным путем. количество переменных уменьшено вдвое
по умолчанию играет главном мониторе
код:
%~dp0cmdow @ /HID
chcp 1251

:: Получение параметров обработки
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExPlayer" %~dp0settings.ini') do set /A ExPlayer=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExMode" %~dp0settings.ini') do set /A ExMode=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExMask" %~dp0settings.ini') do set /A ExMask=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExSound" %~dp0settings.ini') do set /A ExSound=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExCrop" %~dp0settings.ini') do set /A ExCrop=%%a

:: Считывание соcтояния Scroll Lock
for /f "tokens=6 delims=: " %%a in ('%~dp0klocks.exe') do set /a ExMonEXt=%%a

:: Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz

:: определение частоты развертки и разрешения экрана
for /f "tokens=2,3,4,5,6 delims=: " %%a in ('%~dp0MonDef.exe /s ^| find "monitor"') do if %%e==%ExMonEXt% set ExMonNum=%%a & set /a ExFreq=%%b & set /a ExHeight=%%c & set /a ExWidth=%%d
set /a ExMonNum=%ExMonNum:~-2%

:: Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set /A threads=%%a
set /a multicores=%processors%+%cores%

:: Вычисление ширины и высоты клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do set Width=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do set Height=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%

:: Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")

:: Импорт фунции расчета делителей и множителей
echo import("%~dp0FindBestDen.avs")>%avsfile%

:: Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=%%b

:: Резервирование обьема памяти под пребразование
echo SetMemoryMax(768)>>%avsfile%

:: Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(5,%threads%+2)>>%avsfile%

:: Указание на пригрываемый файл
echo DirectShowSource("%~1",%fps%)>>%avsfile%

:: Устранение деблочности
if %Width% LSS 720 echo Deblock()>>%avsfile%

:: Выключение из обработки звукового потока
if %ExSound%==0 echo killAudio>>%avsfile%

:: Конвертация в цветовое просторанство YV12
echo converttoyv12() >>%avsfile%

:: Определение переменных
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
echo multiden=FindBestDen(%fps%, %ExFreq%, 100, 20)>>%avsfile%
echo multinum=Round(1.0*%ExFreq%*multiden/%fps%)>>%avsfile%
echo mask=%ExMask% >>%avsfile%

:: Вычисление соотношения сторон
set /a ExAspect=%ExHeight%*10000/%ExWidth%
set /a Aspect=%Height%*10000/%Width%

:: Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %Aspect% LSS %ExAspect% echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,-Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0)>>%avsfile%
if %ExCrop%==1 if %Aspect% GTR %ExAspect% echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,0,-Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2)>>%avsfile%

:: Переопределение высоты и ширины с учетом обрезки
if %Aspect% LSS %ExAspect% set /a Width=%Height%*%ExWidth%/%ExHeight%
if %Aspect% GTR %ExAspect% set /a Height=%Width%*%ExHeight%/%ExWidth%

:: Качественное масштабирование обрезанного клипа до необходимого размера
if %ExCrop%==1 if %ExWidth% LSS %Width% echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

:: Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(2)>>%avsfile%

:: Алгоритм быстрого увеличение частоты кадров
if %ExMode%==1 echo import("%~dp0ExMode_1.avs")>>%avsfile%

:: Алгоритм качественного увеличение частоты кадров
if %ExMode%==2 echo import("%~dp0ExMode_2.avs")>>%avsfile%

:: Подтягивание частоты видео к частоте экрана
if %ExSound%==1 echo assumeFPS(%ExFreq%).timeStretch(tempo=100.0*%ExFreq%*den/num/multinum*multiden)>>%avsfile%

:: Запуск проигрывания файла
if %ExPlayer%==0 %~dp0MPC-HC\mplayerc.exe %avsfile% /fullscreen /play /close /monitor %ExMonNum%
if %ExPlayer%==1 %avsfile%

:: Зачистка результатов
del /f /q %avsfile%
exit

http://rapidshare.de/files/40556533/MVTools_smooth_play_2.61.exe.html

763. DmitryO, 27.09.2008 00:35
Vovanchik81
Заменил в файле Smooth_play.cmd код на последний приведенный. Перетаскиваю файл видео, в фоне идет экран с обработкой, но потом закрывается и проигрыватель не запускается (что с включенной кнопкой scroll lock, что с выключенной)?

764. Vovanchik81, 27.09.2008 01:35
DmitryO
повторяю еще раз - нужно устанавливать файл.

765. DmitryO, 27.09.2008 01:42
Vovanchik81
Как деинсталировать последний или вычистить руками все что он прописал?

766. Vovanchik81, 27.09.2008 01:43
тем более когда принципиальные изменения. забыл отписаться в этом конкретном случае.

Добавление от 27.09.2008 01:43:

не, просто установить поверх.

Добавление от 27.09.2008 01:45:

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

Добавление от 27.09.2008 01:54:

пора писать утилиту для редактирования файла настроек. какие будут предложения?
в плане кто сделать это сможет?

Добавление от 27.09.2008 02:09:

нужно создать утиль, которой при запуске будет передаваться имя файла при удалении которого она должна будет также выбрасываться из памяти при необходимости запуская соседний файл Smooth_play.cmd с тем же параметром что и ей передался.. до этого же момента сидеть в трее и выполнять следующие функции.
считывать параметры из файла settings.ini

код:
ExPlayer=0
ExMode=2
ExMask=2
ExSound=0
ExCrop=1

редактирование установкой различных вариантов ключей и запись значений обратно.
интерфейс в принципе как atitraytools хотелось бы.

хотя бы примерно набросок как это реализуется. может у кого завалялся?

767. ab_99, 27.09.2008 02:20
цитата:
Vovanchik81:
DmitryO
повторяю еще раз - нужно устанавливать файл.
необязательно в этом причина, у меня в avs файл прописалась строчка:"multiden=FindBestDen(25.000, , 100, 20)"
т.е. второй параметр не определился

768. Vovanchik81, 27.09.2008 02:23
ab_99
наверное потому как у меня утилита теперь самописная занимается этим вопросом

можешь скинуть лог работы скрыпта и результат который на твоей системе возвращает утиль MonDef.exe
(нужно запустить ее к консольном окне)

769. ab_99, 27.09.2008 02:37
цитата:
Vovanchik81:
можешь скинуть лог работы скрыпта и результат который на твоей системе возвращает утиль MonDef.exe
(нужно запустить ее к консольном окне)
она возвращает 0 байт
код:

C:\MVTools>C:\MVTools\cmdow @ /HID

C:\MVTools>chcp 1251
’ҐЄгй п Є®¤®ў п бва ­Ёж : 1251

C:\MVTools>for /F "tokens=2 delims=:=" %a in ('findstr /l "ExPlayer" C:\MVTools\settings.ini') do set /A ExPlayer=%a

C:\MVTools>set /A ExPlayer=0

C:\MVTools>for /F "tokens=2 delims=:=" %a in ('findstr /l "ExMode" C:\MVTools\settings.ini') do set /A ExMode=%a

C:\MVTools>set /A ExMode=1

C:\MVTools>for /F "tokens=2 delims=:=" %a in ('findstr /l "ExMask" C:\MVTools\settings.ini') do set /A ExMask=%a

C:\MVTools>set /A ExMask=0

C:\MVTools>for /F "tokens=2 delims=:=" %a in ('findstr /l "ExSound" C:\MVTools\settings.ini') do set /A ExSound=%a

C:\MVTools>set /A ExSound=1

C:\MVTools>for /F "tokens=2 delims=:=" %a in ('findstr /l "ExCrop" C:\MVTools\settings.ini') do set /A ExCrop=%a

C:\MVTools>set /A ExCrop=1

C:\MVTools>for /F "tokens=6 delims=: " %a in ('C:\MVTools\klocks.exe') do set /a ExMonEXt=%a

C:\MVTools>set /a ExMonEXt=0

C:\MVTools>IF not EXIST C:\MVTools\cpuz.txt C:\MVTools\cpuz -txt=C:\MVTools\cpuz

C:\MVTools>for /F "tokens=2,3,4,5,6 delims=: " %a in ('C:\MVTools\MonDef.exe /s | find "monitor"') do if %e == 0 set ExMonNum=%a & set /a ExFreq=%b & set /a ExHeight=%c & set /a ExWidth=%d

C:\MVTools>set /a ExMonNum=~-2

C:\MVTools>for /F "tokens=4" %a in ('findstr /l "cores" C:\MVTools\cpuz.txt') do set /A cores=%a

C:\MVTools>set /A cores=4

C:\MVTools>for /F "tokens=4" %a in ('findstr /l "processors" C:\MVTools\cpuz.txt') do set /A processors=%a

C:\MVTools>set /A processors=1

C:\MVTools>for /F "tokens=4" %a in ('findstr /l "threads" C:\MVTools\cpuz.txt') do set /A threads=%a

C:\MVTools>set /A threads=4

C:\MVTools>set /A threads=4

C:\MVTools>set /a multicores=1+4

C:\MVTools>for /F "tokens=2,3 delims=: " %b in ('C:\MVTools\MediaInfo "" | find "Width"') do set Width=%b & for /F "tokens=* delims=0" %a in ('echo %c') do set Width2=%a

C:\MVTools>if not "" == "pixels" set /A Width=*1000+

C:\MVTools>for /F "tokens=2,3 delims=: " %b in ('C:\MVTools\MediaInfo "" | find "Height"') do set Height=%b & for /F "tokens=* delims=0" %a in ('echo %c') do set Height2=%a

C:\MVTools>if not "" == "pixels" set /A Height=*1000+

C:\MVTools>echo 1>".avs"

C:\MVTools>IF EXIST ".avs" (set avsfile=".avs" ) else (set avsfile="C:\MVTools\.avs" )

C:\MVTools>echo import("C:\MVTools\FindBestDen.avs") 1>".avs"

C:\MVTools>for /F "tokens=3 delims=: " %b in ('C:\MVTools\MediaInfo "" | find "Frame rate"') do set fps=%b

C:\MVTools>echo SetMemoryMax(768) 1>>".avs"

C:\MVTools>IF 5 GTR 2 echo SetMTMode(5,4+2) 1>>".avs"

C:\MVTools>echo DirectShowSource("",) 1>>".avs"
C:\MVTools>if LSS 720 echo Deblock()>>".avs"

2. в файле ExMode_2.avs последняя строчка должна быть:
last.MVFlowFps(backward_re,forward_re,num=num*multinum,den=den*multiden,mask=mask,ml=100,idx=1)

770. Vovanchik81, 27.09.2008 02:42
ab_99
не совсем правильно меня понял
запускаешь консоль cmd.exe
закидываешь в нее мышкой утиль эту и выполняешь энтером
должна вывести на экран примерно вот такое

C:\Documents and Settings\Admin>C:\MVTools\MonDef.exe
monitor \\.\DISPLAY1 50 720 1280 0
monitor \\.\DISPLAY2 60 1200 1920 1

C:\Documents and Settings\Admin>


файле ExMode_2.avs
блин, специально ведь уточнял логику работы скрыпта и такое пропустил. спасибо за подсказку.

Добавление от 27.09.2008 02:42:

лог прям сюда выкладывай
можешь на мыло профильное

Добавление от 27.09.2008 02:48:

код:
#include <windows.h>
#include <iostream>

using std::wcout;
using std::endl;

BOOL WINAPI MonitorEnumProc( HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData );

int
main()
{
EnumDisplayMonitors( 0, 0, MonitorEnumProc, 0 );
return (EXIT_SUCCESS);
}

BOOL WINAPI
MonitorEnumProc( HMONITOR hMonitor,
HDC hdcMonitor,
LPRECT lprcMonitor,
LPARAM dwData )
{
MONITORINFOEX monInfo;
DISPLAY_DEVICE monDevice;
DEVMODE monMode;
static DWORD num = 0;

monInfo.cbSize = sizeof(monInfo);
monDevice.cb = sizeof(monDevice);
monMode.dmSize = sizeof(monMode);
monMode.dmDriverExtra = 0;
monMode.dmFields = DM_DISPLAYFREQUENCY;

GetMonitorInfo( hMonitor, &monInfo );
EnumDisplayDevices( monInfo.szDevice, num, &monDevice, 0 );
EnumDisplaySettingsEx( monInfo.szDevice, ENUM_CURRENT_SETTINGS, &monMode, EDS_RAWMODE );
num++;

wcout << "monitor " << monInfo.szDevice<<" ";
wcout << monMode.dmDisplayFrequency <<" ";
wcout << monMode.dmPelsHeight <<" ";
wcout << monMode.dmPelsWidth << " ";
wcout << monInfo.dwFlags << endl;
return (TRUE);
}

вот кстати код этой утили

Добавление от 27.09.2008 02:52:

работает напрямую через winapi

Добавление от 27.09.2008 02:53:

ну так что насчет утили? кстати что за винда у тебя?
работать должно с 98 до висты.

771. ab_99, 27.09.2008 03:00
цитата:
Vovanchik81:

C:\Documents and Settings\Admin>C:\MVTools\MonDef.exe
monitor \\.\DISPLAY1 50 720 1280 0
monitor \\.\DISPLAY2 60 1200 1920 1

C:\Documents and Settings\Admin>
так я ж отвечал уже пустая строка, (какая разница нажимать ентер или перенаправить вывод в тхт файл)

цитата:
вот кстати код этой утили


Добавление от 27.09.2008 02:52:

работает напрямую через winapi
так и программирование выучу

772. Vovanchik81, 27.09.2008 03:00
понял
(((
у тебя монитор один
))))))))))))))))))))))
ща поправлю

Добавление от 27.09.2008 03:03:

хотя нет, попробуй для интереса включить скроллок.
но чета подозреваю что все равно что то тут не то. следи за сообщением моим последним. ща еще одну утиль тебе соберу которая точно работать должно. но скроллок все равно попробуй

Добавление от 27.09.2008 03:08:

http://slil.ru/26183746

сделай мне что эта штуковина выводит у тебя

Добавление от 27.09.2008 03:10:

если еще и она не заработает то даже не знаю
http://support.microsoft.com/kb/197671
вот отсюда это

Добавление от 27.09.2008 03:11:

кстати что за ось у тя

773. ab_99, 27.09.2008 03:16
Vovanchik81:
1. результат тот же
2. сборка - Windows XP Alternative v2.1
перейду на ту, что порекомендуешь

774. Vovanchik81, 27.09.2008 03:18
ab_99
мою ставь.
)))
у меня вот на 2003 серваке все прекрасно отработалось. а она постарше будет. как вариант выстави режим совместимости с 2000 виндой. вдруг поможет.

Добавление от 27.09.2008 03:57:

код:
%~dp0cmdow @ /HID
chcp 1251

:: Получение параметров обработки
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExPlayer" %~dp0settings.ini') do set /A ExPlayer=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExMode" %~dp0settings.ini') do set /A ExMode=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExMask" %~dp0settings.ini') do set /A ExMask=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExSound" %~dp0settings.ini') do set /A ExSound=%%a
for /f "tokens=2 delims=:=" %%a in ('findstr /l "ExCrop" %~dp0settings.ini') do set /A ExCrop=%%a

:: Считывание соcтояния Scroll Lock
for /f "tokens=6 delims=: " %%a in ('%~dp0klocks.exe') do set /a ExMonEXt=%%a & set /a ExFreq=0

:: Генерация отчета по процессору при отсутствии оного (отчета)
IF not EXIST %~dp0cpuz.txt %~dp0cpuz -txt=%~dp0cpuz

:: определение частоты развертки и разрешения экрана
for /f "tokens=2,3,4,5,6 delims=: " %%a in ('%~dp0MonDef.exe ^| find "monitor"') do if %%e==%ExMonEXt% set ExMonNum=%%a & set /a ExFreq=%%b & set /a ExHeight=%%c & set /a ExWidth=%%d
if %ExFreq%==0 set /a ExMonEXt=1
for /f "tokens=2,3,4,5,6 delims=: " %%a in ('%~dp0MonDef.exe ^| find "monitor"') do if %%e==%ExMonEXt% set ExMonNum=%%a & set /a ExFreq=%%b & set /a ExHeight=%%c & set /a ExWidth=%%d
set /a ExMonNum=%ExMonNum:~-2%

:: Определение многопоточности процессора
for /f "tokens=4" %%a in ('findstr /l "cores" %~dp0cpuz.txt') do set /A cores=%%a
for /f "tokens=4" %%a in ('findstr /l "processors" %~dp0cpuz.txt') do set /A processors=%%a
for /f "tokens=4" %%a in ('findstr /l "threads" %~dp0cpuz.txt') do set /A threads=%%a
set /a multicores=%processors%+%cores%

:: Вычисление ширины и высоты клипа
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Width"') do set Width=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Width2=%%a
if not "%Width2%"=="pixels" set /A Width=%Width%*1000+%Width2%
for /f "tokens=2,3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Height"') do set Height=%%b & for /f "tokens=* delims=0" %%a in ('echo %%c') do set Height2=%%a
if not "%Height2%"=="pixels" set /A Height=%Height%*1000+%Height2%

:: Проверка на возможности записи в каталог с клипом и определение имени выходного файла
echo >"%~dpn1.avs"
IF EXIST "%~dpn1.avs" (set avsfile="%~dpn1.avs") else (set avsfile="%~dp0%~n1.avs")

:: Импорт фунции расчета делителей и множителей
echo import("%~dp0FindBestDen.avs")>%avsfile%

:: Вычисление фремрейта клипа
for /f "tokens=3 delims=: " %%b in ('%~dp0MediaInfo "%~1" ^| find "Frame rate"') do set fps=%%b

:: Резервирование обьема памяти под пребразование
echo SetMemoryMax(768)>>%avsfile%

:: Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(5,%threads%+2)>>%avsfile%

:: Указание на пригрываемый файл
echo DirectShowSource("%~1",%fps%)>>%avsfile%

:: Устранение деблочности
if %Width% LSS 720 echo Deblock()>>%avsfile%

:: Выключение из обработки звукового потока
if %ExSound%==0 echo killAudio>>%avsfile%

:: Конвертация в цветовое просторанство YV12
echo converttoyv12() >>%avsfile%

:: Определение переменных
echo num=FramerateNumerator(last)>>%avsfile%
echo den=FramerateDenominator(last)>>%avsfile%
echo multiden=FindBestDen(%fps%, %ExFreq%, 100, 20)>>%avsfile%
echo multinum=Round(1.0*%ExFreq%*multiden/%fps%)>>%avsfile%
echo mask=%ExMask% >>%avsfile%

:: Вычисление соотношения сторон
set /a ExAspect=%ExHeight%*10000/%ExWidth%
set /a Aspect=%Height%*10000/%Width%

:: Выбор алгоритма обрезки клипа по соотношению его сторон
if %ExCrop%==1 if %Aspect% LSS %ExAspect% echo crop(Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0,-Round((Width-Round(Height*%ExWidth%/%ExHeight%))/4)*2,0)>>%avsfile%
if %ExCrop%==1 if %Aspect% GTR %ExAspect% echo crop(0,Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2,0,-Round((Height-Round(Width*%ExHeight%/%ExWidth%))/4)*2)>>%avsfile%

:: Переопределение высоты и ширины с учетом обрезки
if %Aspect% LSS %ExAspect% set /a Width=%Height%*%ExWidth%/%ExHeight%
if %Aspect% GTR %ExAspect% set /a Height=%Width%*%ExHeight%/%ExWidth%

:: Качественное масштабирование обрезанного клипа до необходимого размера
if %ExCrop%==1 if %ExWidth% LSS %Width% echo Lanczos4Resize(%ExWidth%,%ExHeight%)>>%avsfile%

:: Условие на многопоточность
IF %multicores% GTR 2 echo SetMTMode(2)>>%avsfile%

:: Алгоритм быстрого увеличение частоты кадров
if %ExMode%==1 echo import("%~dp0ExMode_1.avs")>>%avsfile%

:: Алгоритм качественного увеличение частоты кадров
if %ExMode%==2 echo import("%~dp0ExMode_2.avs")>>%avsfile%

:: Подтягивание частоты видео к частоте экрана
if %ExSound%==1 echo assumeFPS(%ExFreq%).timeStretch(tempo=100.0*%ExFreq%*den/num/multinum*multiden)>>%avsfile%

:: контроль множителей
echo WriteFileStart("%~dp0info.txt","multinum",""" ":" ""","multiden")>>%avsfile%

:: Запуск проигрывания файла
if %ExPlayer%==0 %~dp0MPC-HC\mplayerc.exe %avsfile% /fullscreen /play /close /monitor %ExMonNum%
if %ExPlayer%==1 %avsfile%

:: Зачистка результатов
del /f /q %avsfile%
del /f /q %~dp0info.txt
exit

добавил проверку на наличие одного монитора и заменил утиль

проверьте на досуге функциональность
качать и ставить все не обязательно - новая утиль http://slil.ru/26183764
листинг чуть выше.

775. ab_99, 27.09.2008 04:06
цитата:
Vovanchik81:
...добавил проверку на наличие одного монитора и заменил утиль

проверьте на досуге функциональность
качать и ставить все не обязательно - новая утиль http://slil.ru/26183764
листинг чуть выше.
работает, пишет:"monitor \\.\DISPLAY1 60 1050 1680 1"

776. MAG79, 27.09.2008 07:11
Vovanchik81
Подтверждаю. Сборка 2.61 после замены MonDef.exe и содержимого Smooth_play.cmd скрипт заработал безотносительно к состоянию Scroll Lock.

Для справки моя строчка MonDef.exe: "monitor \\.\DISPLAY1 75 1024 1280 1"

777. Vovanchik81, 27.09.2008 13:50
MAG79
ab_99
да у вас просто монитор один. вам переключать нечего.

Добавление от 27.09.2008 13:51:

скоро такиеми темпами и программировать научусь. там не все так сложно как казалось

778. ab_99, 27.09.2008 14:21
цитата:
Vovanchik81:
скоро такиеми темпами и программировать научусь. там не все так сложно как казалось
Ты просто обречен освоить ависинт.

779. Vovanchik81, 27.09.2008 15:03
MAG79

у меня всегда сохраняется исходное количество каналов звука
т.е. в свойствах проигрываемого файла в MPC при проигрывании avs написано в качестве звукового потока что?

Добавление от 27.09.2008 16:26:

вот короче собраный дистрибутив из последнего. в принципе ничего не изменил, просто собрал в одном месте.
http://rapidshare.de/files/40561808/MVTools_smooth_play_2.7.exe.html

Добавление от 27.09.2008 18:37:

вот, концепция поменялась

нужна просто утиль которая будет сидеть в трее пока не выкинешь и сможет онлайн контролировать и изменять параметры файла settings.ini и желательно еще выводить содержание info.txt при наведении на нее (далеко не обязательно)
оба файла в папке приложения
т.е. нажимаем на иконке в трее правую мышку, выскакивает ствол дерева, пробегаем по веткам, выставляем параметры которые тут же правятся в файле.

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

структуру дерева могу расписать. параметров количество скорей всего увеличится. желательно в двух словах как их добавлять.

780. MAG79, 27.09.2008 19:14
Vovanchik81
Прошлое мое сообщение было реакцией на последнюю версию.
Обновил шапку: добавил ссылку на версию 2.7

Теперь по вопросам:
Vovanchik81
подмешать поток после обработки и синхронизировать его с видео не получится
Получится, но как раз тем способом, что ты описывал: придется открывать звук в плеере отдельно (либо с автоподхватыванием). В этом случае, чтобы не испортить синхронизацию, нельзя менять длительность самого видео. Т.е. от строчки в скрипте assumeFPS/timeStretch надо отказаться.

в MPC при проигрывании avs написано в качестве звукового потока что?
В properties пишется:
- Audio: PCM 48000Hz stereo 1536Kbps [Avisynth audio #1], если выбраны настройки AC3Filter'а AS IS.
- Audio: PCM 48000Hz 6ch 4608Kbps [Avisynth audio #1], если выбраны настройки 5.1 channels, PCM 24bit.

пора писать утилиту для редактирования файла настроек. какие будут предложения?
в плане кто сделать это сможет?

могу я попробовать, если никто не против, тем более тест производительности кому как не мне туда прикручивать
GUI будет реализовываться на Delphi (наработки имеются).

DmitryO
Насчет обновления кодеков и драйверов:
Думаешь поможет?
Мне помогло (например, на старых драйверах совсем не было слышно центральный канал). Возможно и с отставанием тебе поможет. В любом случае - лишним не будет.

781. Vovanchik81, 27.09.2008 19:29
MAG79
как насчет того чтоб реализовать пока что программу минимум которую я чуть выше расписал - т.е. онлайновую правку файла настроек

Добавление от 27.09.2008 19:32:

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

Добавление от 27.09.2008 19:34:

MAG79
Т.е. от строчки в скрипте assumeFPS/timeStretch надо отказаться
ну если сделать как во последнем сообщении соседней ветки то звук откроется еще в ависинке, и его можно будет уплотнить ПЕРЕД выходом наружу. но это пока только задумки, реализация в башке еще полностью не отрисовалась

782. MAG79, 27.09.2008 19:46
Интересная новость:
Сегодня прочитал на кулере о Сarmel (http://www.motiondsp.com/products/Carmel/) . Это программа, пока еще бета и недоступна для скачивания, которая реализует технологию MotionDSP (http://www.motiondsp.com/home) от nVidia. Судя по описанию, программа позволяет улучшать видео, в том числе производить интерполяцию частоты кадров, другими словами, производить повышение плавности видео. Используются мощности nVidia карт на чипе G90/G92 и язык их программирования CUDA. На сайте выглядит все очень красиво, хочется уже скачать и попробовать.

Добавление от 27.09.2008 19:53:

Vovanchik81
Программку на неделе набросаю. Конечно, начну с минимума.
Соседнюю ветку посмотрю - может и для себя чего-нибудь полезного почерпну.

783. Vovanchik81, 29.09.2008 00:28
MAG79
если выбраны настройки 5.1 channels, PCM 24bit.
попробовал разные варианты настроек на выхах... короче в очередной раз убедился что это не мое. пытался сжимать в ac3 распакованный pcm 6ch посредством и ac3filter и fddshow audio.
в итоге имеем задержки на транскодирование звукового потока достаточно заметные и резкое снижение качества. на рядовых колонках может и не услышишь, но на сабе полукиловатном с бочку столитровую величиной который 90дб на 20Гц дает очень хорошо слышно что что-то не так. равно как и на всей остальной акустике. так что этот вариант с последовательной распаковкой сжатием и запаковкой точно не мой, но в общем случае думаю использовать можно.

кстати вместо ранее используемой audigy 2 zs сейчас использую встроенную звуковушку реалтековскую и нисколько не обламываюсь. все равно весь звук из компа в ресивер идущий в ac3 или dts формате инвариантен к аппаратной части.

вот.

Добавление от 29.09.2008 01:01:

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

и теперь по предстоящей утилите.
- есть ли возможность не грубо писать структуру дерева в коде, а создавать xml файл структуры? или я слишком много кушать хочу?
просто данная вешь как минимум упростит сопровождение и ввод новых параметров. да и добавит гибкости необычайной.
- сделай умолчальное создание файла настроек при первом ее запуске из этого xml файла если будешь его делать. (до чего же жалко что не умею кодить сам, а учится никак не решусь, да и сомнительна практическая польза мне от этих знаний на практике. хотя как знать. но пока не решился нырнуть по взрослому в это)
- возможно стоит функции скрипта поручить ей (или сделать вызов из нее батника этого с передачей ему параметра)
- куча других мыслей, никак не дождусь первой реализации хотя бы, может реально стоит нырнуть в это дело? с чего начать как думаешь?

Добавление от 29.09.2008 02:24:

переделал полностью инсталлятор и скрыпт. теперь все ставится в %programfiles%\MVTools
старую папку необходимо удалить и отредактировать настройки по новому в новом месте.
ассоциации также перенести на новый файл



http://rapidshare.de/files/40573057/MVTools_smooth_play_2.81.exe.html

Добавление от 29.09.2008 03:06:

вот еще чего
можешь добавить в функцию расчета делителя сравнение по модулю от maxden до 1 для числителя и знаменателя. при нулевых остатках от деления обоих множителей соответственно сокращать оба параметрана это значение. просто там в твоей функции черт голову сломит
))

перевыложил утиль - некорректно формировался отчет по процессору

на картинке вложеной видно как я себе утиль эту примерно представляю. в плане организации интерфейса

К сообщению приложены файлы: 1.jpg, 607x657, 116Кb

784. MAG79, 29.09.2008 08:51
Vovanchik81
там в твоей функции черт голову сломит
В общем, да. Без ручки и бумажки сложно разобраться, хотя кода 5 строчек. Я уже упоминал, что большой беды в том нет, что делитель и знаменатель иногда получаются с общими целыми делителями. Для расчета нет большой разницы, умножать на 12 и делить на 4, либо просто умножать на 3. Единственно - да, не очень красиво. Причину тоже объяснял - это особенность сравнения вещественных чисел. Достаточно ввести точность сравнения и все встанет на свои места. Можно будет без модуля обойтись. Мне не сложно - добавлю точность сравнения. Если есть интерес, могу в привате алгоритм работы функции расписать.

на картинке вложеной видно
Понял, AtiTrayTools видел. Пока такие красивые меню (стиль XP) не нашел - делаю обычными. Сперва функционал, а потом со временем и красивости. В воскресенье был дождь, так что удалось выделить немного времени для будущей утили. Ini уже читает, меняет и пишет. Осталось немного отладить насчет "ошибко-устойчивости" и первый вариант, думаю сегодня к вечеру будет. XML уже в следующую версию буду прикручивать.


Насчет программных тонкостей может в приват перейдем?
Желающие тоже смогут к обсуждению подключиться...

785. Vovanchik81, 29.09.2008 09:56
MAG79
Я уже упоминал, что большой беды в том нет, что делитель и знаменатель иногда получаются с общими целыми делителями
просто замечал что если сделать maxden достаточно большой, то перематывать файл становится труднее.. вплоть до вылета плеера. вот и думал что это каким то образом влияет.

Если есть интерес, могу в привате алгоритм работы функции расписать
честно говоря боюсь завороток мозгов получить. уж лучше ты будешь единоличным обладателем этого секрета.


Пока такие красивые меню (стиль XP) не нашел
да я не про меню, я про концепцию. мало ли, вдруг не видел.

Сперва функционал, а потом со временем и красивости
эт пральна. поддерживаю.

думаю сегодня к вечеру будет
эт хорошо. уже жду.
))


Насчет программных тонкостей может в приват перейдем?

давай, ща создам

786. DmitryO, 29.09.2008 14:45
Vovanchik81
Скачал предпоследний дистрибутив "2.7". Обновил кодеки (скачал последний К-Lite). Проверил обновления для материнки (кроме обновления для BIOS ничего нового не вышло - не стал устанавливать). Звук по прежнему отстает, только теперь как-то странно. Один раз мотаю на произвольный фрагмент фильма, второй - звук отстает причем прилично, потом на третий - бац и звук совпал. Потом на четвертый - звук совпал, на пятый и MPC слетает (причем ситуация после нескольких переходов повторяется).

787. MAG79, 29.09.2008 14:49
DmitryO
Тогда попробуй такой трюк:
1) останавливаешь воспроизведение;
2) перепрыгиваешь на новое место, можно несколькими прыжками;
3) выжижаешь 0,5 - 2 сек;
4) включаешь воспроизведение.

Помогает от "залипания" картинки при нагрузке CPU близкой к 100% и от отставаний звука.

788. DmitryO, 29.09.2008 15:08
MAG79
Конечно попробую, только мне почему то кажется, что дело не в этом (я читал ветку, где ты писал про буфер). У меня комп вроде не тормазной 4 гига оперативки (правда винда XP 32), проц Q6600 четырех ядерник и при выполнении скрипта система грузится процентов на 45-50.

789. Vovanchik81, 29.09.2008 15:20
DmitryO
последний 2,81 уже. не следим однако

790. DmitryO, 29.09.2008 16:54
Vovanchik81
Я видел, что 2.81 вышел, но пробовал то я на 2.7 и что-то я уже сомневаюсь что на 2.81 ситуация изменится... Ну все равно попробую

791. Vovanchik81, 29.09.2008 17:02
DmitryO
не, в этом плане ничего не поменялось. да и не в скрипте дело, а в конкретной системе и работоспособности в отдельно взятой системе avisynth системы в целом.
у меня вот тоже со звуком нескладушки получаются временами. тока вот перемоткой я наоборот подгоняю звук под картинку. причем в этот момент нагрузка на комп резко увеличивается и достигает практически 100% по всем ядрам вроде. а система у меня побыстрей на 70% почти в плане производительности. и ось посурьезней будет в плане менеджера процессов.

и это не к тому что у кого длинее, а к тому что у каждого конфигурация достаточно оригинальна при внешней похожести. слишком много зависит от мелочей и галочек в куче программ.

792. DmitryO, 29.09.2008 17:14
Vovanchik81
Грустно все это Видимо не удастся мне наслаждаться фильмами с плавным видео...

793. Vovanchik81, 29.09.2008 17:18
DmitryO
да я к тому что или галочку надо где то поставить или просто снести всю винду и выставить с нуля все заново. не известно какие там уже грехи в системе накопились, может и поможет. тут уже смотря насколько тебе эта тема интересна.

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

794. DmitryO, 29.09.2008 17:33
Vovanchik81
Так я понимаю у тебя самого звук "пляшет", а судя по тому, какие ты тут вещи ваяешь, ты в теме и получается то же до конца с этой проблемой справиться не можешь. Не в винде и не в дровах мне кажется дело, а именно в тонкости настройки кодеков ну и ависинха, но тут уж мне моей квалификации пока не хватает, одна надежда на вас - профессоров...

795. Vovanchik81, 29.09.2008 21:37
DmitryO
у меня пляшет прежде всего потому как у меня изврат на компе полнейший. звук идет в ресивер по цифре, так что обычные методы аналогового многоканального звука мне не подходят - мне его еще нужно будет предварительно запаковать в цифру, а потом уже отправить. к томуж это приведет к потере качества - а для моих колонок это чувствительно. так что приходиться выдирать вручную звуковую дорожку из файла и цеплять к уже готовой плавной картинке извне. потому и все косяки. так что этот случай как общий не стоит рассматривать. тем более что я кучу кодеков поставил переставил, чем раздолбал прилично все в системе. а переставлять пока лень - вроде и так большинство фильмов идет.

796. VictorLS, 30.09.2008 12:48
Vovanchik81
спасибо за rapidshare.de
Буду пробовать на Атлоне 3200+
Насколько я понимаю, уплавнение работает для любого типа файла, который может воспроизвести MPC HC своими встроенными декодерами.
Хочу начать с MPEG-2 352х288 - должно потянуть.
Потом, такой же DivX (XviD).

797. Vovanchik81, 01.10.2008 19:27
добавил в инсталлятор возможность выбора пути установки
добавил удаление предыдуших ассоциаций с батником чтоб не привязываться к имени файла и пути к нему
обновил плагин mvtools и добавил новый способ обработки более быстрый чем все предыдушие
http://rapidshare.de/files/40590108/MVTools_smooth_play_2.9.exe.html
необходимо заново переассоциировать видеофайлы

798. VictorLS, 02.10.2008 09:08
Vovanchik81
задам все-таки ламерский вопрос:
MVTools_smooth_play_х.y.exe это пакет все в одном?
Т.е. на голый WinXP его установить и все, что может проигрывать МРС-НС (програмным декодированием) будет возможно проигрывать с эффектом плавности без установки чего-либо еще?

799. Vovanchik81, 02.10.2008 12:54
VictorLS
ну по большому счета да.
с разницей в том, что играть будет все что может открыться через directshow фильтры.

800. VictorLS, 02.10.2008 14:08
Vovanchik81
понятно, попробую. ffdshow как декодер DivX (XviD) пойдет?

801. Vovanchik81, 02.10.2008 14:21
угу.
ffdshow вообще все наверное открывать умеет

802. GL, 02.10.2008 18:02
в 2.9 убрали в ini настройку на какой монитор выводить?
есть пара предложений. не знаю кому может удобно так будет. при выборе правой мыши на воспроизведение Smooth_play сделать выбор монитора. типа плей монитор-1, плей монитор-2.
и второе, хотелось бы лог работы чтоб в папку с программой сохранялся по последнему запуску.

803. Vovanchik81, 02.10.2008 18:39
GL
настройку на какой монитор выводит
теперь за это scrool lock клавиша отвечает.

сделать выбор монитора
ну вообще то в местных кулуарах уже вовсю идет разработка утилиты для онлайновой правки всех этих параметров через визуальный интерфейс.
так что коминг сун как говорится.

804. GeodE, 03.10.2008 12:49
Народ, помогите новичку. Все сделал по инструкции (mvtools.dll кинул в плагинс, прописал скрипт из шапки), запцускаю видео, пишет Script error: there is no function named 'MVAnalyse'

805. Vovanchik81, 03.10.2008 13:12
GeodE
ну наверное качал по прямой ссылке на mvtools.dll?

просто качни последний скрыпт, ассоциируй видеофайлы с батником и смотри на здоровье.
если хочешь, можешь поправить настройки

Добавление от 03.10.2008 13:12:

http://rapidshare.de/files/40590108/MVTools_smooth_play_2.9.exe.html

806. GeodE, 03.10.2008 13:35
Vovanchik81
Я прост не понял, почему эта ошибка? Юзаю MPC + ffdshow + AviSynth + MVtools, все сделал как написано в шапке и нифига...

З.Ы.

После установки MVTools_smooth_play_2.9 скрипты стали работать и в ffdshow. Дык в чем же было дело?

З.Ы.Ы. Эффект неоднозначный - воспроизведение получается плавным, но каким то "ускоренным". Так и должно быть?

807. Vovanchik81, 03.10.2008 13:55
GeodE
ну от звука то не отстает? просто степень восприятия картинки изменилась - слишком плавная и по этому кажется что быстрей

808. GeodE, 03.10.2008 14:00
Vovanchik81
Нет не отстает, но я ожидал несколько другого. Например, если в том же ffdshow включить деинтерлейс, и выбрать метод удвоения кадровой частоты, то эффект "фильма" не теряется, но плавности это прибавляет...

809. GL, 04.10.2008 21:02
GeodE
Vovanchik81

я жене поставил кино с плавностью. минут через 5 говорит: "качество какое-то странное. как будто спектакль по телику смотришь."...

810. Vic21, 05.10.2008 01:33
Добрый день!
Не хочет у меня запускаться плавное воспроизведение, говорит, что нет функции Deblock, что в 5-ой строке скрипта. Устанавливал 2.9. Что посоветуете?

811. Vovanchik81, 05.10.2008 02:09
Vic21
должно работать.
может просто не дождался конца установки

812. Vic21, 05.10.2008 11:27
Дождался, раз 5 переустанавливал, и через 2.9 и через руководство в первой теме. Скачивал отдельно все элементы. Ругается на Deblock. Если эту строку удалить, то далее на MVAnalyse ругается.

813. Vovanchik81, 05.10.2008 11:48
Vic21
недавно установку плагинов обновлял, мож чего поломал там. ща гляну внимательней.

Добавление от 05.10.2008 11:50:

C:\Program Files\AviSynth 2.5\plugins
вот здесь есть
deblock и mvtools

Добавление от 05.10.2008 11:52:

у меня все отработалось и на других машинах в принципе тоже все было нормально. может стоит удалить тебе все ависинты и установить только мой пакет?

814. GeodE, 06.10.2008 00:49
GL
Вот вот. Как бы сделать так, что бы и плавность была, и эффект "кина" не терялся... Может еще какие фильтры добавить стоит?

Почему в кинотеатре такого нет? Я вот специально обратил внимание, в кинотеатре и движения плавно воспроизводятся, без "лагов", и эффект фильма не теряется. Неужели нельзя это реализовать в домашних условиях?

815. Vovanchik81, 06.10.2008 01:21
GeodE
там физика процесса другая. аналоговое равномерное отражение от поверхности. а тут на цифровую матрицу из дискретных точек смотришь.
к тому же тут изображение сжатое, при резких движениях картинки теряется четкость. в кинотеатре же каждый кадр независим от предыдущего и последующего. нет разрыва картинки при резком переходе от одной сцены к другой и при панорамнном движении.

потому и приходится придумывать что-то. но со временем привыкаешь, уже без этого эффекта дискомфортно смотреть становится.

816. Vic21, 06.10.2008 09:04
Частично разобрался. У меня %programfiles% расположена на другом диске, нежели система. Программы установки правильно все поставили на диск E:, а AviSynct почему-то плагины ищет на диске C:. Скопировал туда, все запустилось.
Теперь пытаюсь заставить "не тормозить".
Спасибо за помощь.

817. Vovanchik81, 06.10.2008 09:34
Vic21
ну эту ситуевину не предусмотрел. надо будет и это учесть постараться.

818. mna, 06.10.2008 09:52
цитата:
Vic21:
Частично разобрался. У меня %programfiles% расположена на другом диске, нежели система. Программы установки правильно все поставили на диск E:, а AviSynct почему-то плагины ищет на диске C:. Скопировал туда, все запустилось.
Теперь пытаюсь заставить "не тормозить".
Спасибо за помощь.

У меня тоже всегда тормозит на том скрипте, который получается, если использую данный пакет. Чтоб не тормозило - приходится Smooth_play.cmd исправлять - убираю из него все лишнее, что мешает скорости (например функцию расчета множителя и делителя, преобразование размера) - после этого на моей машинке FullHD идет без тормозов.

Проблема отставания звука на некоторых фильмах так и остается. Попытался выяснить в чем причина - провел кучу тестов и выяснил следующее - такое получается если читать файл с переменным битрейтом кадров (vfr). В этом случае DirectShowSource дает рассинхрон со звуком уже на входе. Чтобы этого не происходило - приходится читать файл с параметром convertfps=true.
Подробно об этом можно почитать вот здесь: http://avisynth.org.ru/docs/russian/advancedtopics/hybrid_video.htm
Только вот жаль, что MediaInfo не возвращает тип видео битрейта - тогда бы можно было этот параметр втыкать автоматом на таких файлах. Может кто знает чем можно получить тип видео-битрейта применительно к концепции автоматизации (типа: запустил утилитку с параметром - получил значение)?
За это сообщение сказали спасибо: MAG79

819. MAG79, 06.10.2008 10:32
GeodE
Как бы сделать так, что бы и плавность была, и эффект "кина" не терялся...
Функция очистки изображения от дефектов на контурах объектов (параметр mask) обладает побочным действием возвращения к исходной частоте кадров отдельных областей кадра. В таком случае общие движения камеры (панорамирование, приближение/удаление) выглядят плавно, а на границах локального движения включается алгоритм "расстворения кадров". Эффект фильма сохраняется. Рекомендую попробовать: для этого надо установить mask=2, а ml=2000 и выше (подбирается экспериментально, подробнее (http://forum.ixbt.com/topic.cgi?id=62:12524:105#105) ).

Почему в кинотеатре такого нет? Я вот специально обратил внимание, в кинотеатре и движения плавно воспроизводятся, без "лагов", и эффект фильма не теряется.
Я немного не согласен с объяснением, которое привел Vovanchik81. Честных кадров в кинотеатре скорее всего столько же, сколько и раньше - 24. Пленочные проекторы давно уже заменены на цифровые. А вот техника, которая производит расчет дополнительных кадров, настроена на более качественную работу. И, наверняка, при должных временных затратах на подбор параметров можно заставить обсуждаемый алгоритм работать подобным образом.

mna
Чтоб не тормозило - приходится Smooth_play.cmd исправлять - убираю из него все лишнее, что мешает скорости (например функцию расчета множителя и делителя, преобразование размера)
А какие значения множителя указываешь? multiden=? multinum=?

Проблема отставания звука... - такое получается если читать файл с переменным битрейтом кадров (vfr)
Отлично! Я рад, что удалось самостоятельно выяснить причину и найти решение.
Вообще, данный скрипт (да и сам AviSynth) предполагает постоянную частоту кадров. Переменная частота кадров встречается крайне редко.

Какой видео-файл так закодирован, если не секрет?

приходится читать файл с параметром convertfps=true
Выдержка из справки: "В зависимости от продолжительности исходных кадров будет производиться добавление или выкидывание кадров".
Для плавности движения оба действия это вред. Добавление кадров - значит плавность нарушится "замиранием" между двумя дублями одного кадра. Выкидывание кадра - будут наблюдаться рывки при движении.
Если данное видео с переменной частотой кадров на самом деле - это несколько блоков с постоянной частотой кадров собранные в одном файле (гибридное видео), то правильнее было бы разделить этот файл на исходные куски (каждый со своей _постоянной_ частотой кадров) и проигрывать их отдельно (через плей-лист).

820. Vovanchik81, 06.10.2008 11:05
MAG79
Пленочные проекторы давно уже заменены на цифровые
ну да. цифровые. только вот они проецируют с достаточно большого расстояния на аналоговую поверхность. тобишь непрерывную, а не дискретную как матрица монитора.
к томуж пока свет дойдет до экрана отдельные элементы изображения малость перемешиваются. получается такая вот аналоговая интерполяция по соседним точкам. потом обратное отражение и еще куча аналоговых преобрахований светового потока. так что это на выходе уже скорей аналоговое кино, чем цифровое по своей сути.
вот техника, которая производит расчет дополнительных кадров, настроена на более качественную работу
врать не буду, точно не знаю. но та плавность, что используется сейчас в бытовых устройствах отображения, оставляет желать лучшего судя по отзывал в плазменопанельных ветках форума.

821. MAG79, 06.10.2008 11:45
Vovanchik81
Я про последние кинотеатральные проекторы (или предобработчики сигнала для проекторов) - упоминал в ветке (http://forum.ixbt.com/topic.cgi?id=62:12524:114#114) . У нас в Иркутске два кинотеатра точно имеют оборудование, повышающее плавность видео. Без такого оборудования лично мне смотреть фильм утомит