Программа распространяется с настройками по умолчанию, обеспечивающими максимальное качество и универсальность. Но автор иногда изменяет их и забывает вернуть обратно ;). Для этого нажмите в программе controlpanel на кнопку сброс установок.
Устанавливаются следующие параметры:
Use_DX5 1
kshow -0.9
kjump 17.0
qv_integer_idct 1
zac_pred 1
sound 1
dspriority 1
downmix 0
downsample 0
sound_8bit 0
syncbyfp 1
nooverlay 0
start_o_format 0
o_width 0
o_height 0
Если у вас не включился оверлей, см.
пункт по устранению этих ошибок. Оверлей обеспечивает наивысшее качество и скорость.Иногда, при плохом качестве интерполяции кадра оверлеем видео карты (зубцы на пологих линиях, разбиение на линии по вертикали и т.п.), можно её отключить параметрами hordest -1 vertdest -1, либо только vertdest -1 с подстройкой регуляторов высоты/ширины на мониторе (или с уменьшенным hordest).
Внимание: в текущей версии формат вывода YUY2 оптимизирован под Pentium1. На Ppro, P2 и др. он будет работать медленнее. На этих процессорах используйте формат YV12(хотя он рекомендуется для всех процессоров). Возражения принимаются.
Скорость удобно сравнивать, включив индикатор. Он включается/выключается клавишей "d". Он состоит из 4 полосок с 10 делениями.
1-я полоска (зелёная) отображает, какую долю кадров показывает система. Т.е. это индикатор общей скорости. Границы от 0.0 до 1.0. Он рассчитывается в режиме
kshow<0 для интервала фильма до предыдущего ключевого кадра, поэтому изменяется скачками и редко. Справа от него зелёный квадратик сигнализирует о том, что в данный момент скорости системы более чем достаточно.2-я полоска состоит из 2 частей, синей и красной. В нормальных условиях при отсутствии декодирования звука в этот момент и нехватке скорости системы красная полоска д.б. практически незаметна (меньше полделения). Синяя полоска показывает время в мс, которое затрачивается на декодирование одного кадра. Красная - обработку сообщений, подгрузку из файла фильма, время простоя и т.п. Границы индикатора - от 0 до 50 миллисекунд.
3-я полоска (серая) показывает время на вывод одного кадра на экран, тоже в мс. Должна быть в 2-3 раза меньше синей. Границы индикатора - от 0 до 50 миллисекунд.
Необходимо заметить, что если звук декодируется в отдельном потоке, то это время распределяется между синей и серой полоской. Если же нет (в логе выдаётся "not using notify!") то это время идёт целиком в красную полоску.
Таким образом, нужно стараться уменьшить значения 2 и 3 полоски. Удобно сначала, на время настройки видео, отключить звук (sound 0).
Внимание: если получающееся от изменения значения ускорение (если оно есть) не стоит, на ваш взгляд и слух ухудшения качества, то эту настройку можно пропустить.
Если у вас не включился оверлей, см. выше пункт по устранению этих ошибок. Оверлей обеспечивает наивысшее качество и скорость (в частности, растягивает на весь экран он аппаратно и от убирания этого(hordest -1 vertdest -1) скорость практически не увеличится). Учтите, что в настройках оверлея за 0 и
-1 скрываются не эти конкретно числа, а другие (см. пояснения к ним). В текущей версии не поддерживаются ранние карты matrox, на которых нет оверлея. При работе оверлея используются 8-битные видео режимы.Было замечено, что программа быстрее работает в среде w95&dx5, чем, например, в w98.
Стратегия HYPERBOOST.
Включается параметром HYPERBOOST. При этом во время простоя программы (на медленных сценах) заполняется большой буфер звука. В дальнейшем, при нехватке мощности системы (на быстрых сценах) будет использоваться этот буфер для получения дополнительных ресурсов. Если у вас быстрая система (всегда горит зелёный квадратик), то вам от этой опции нет ничего полезного и рекомендуется её выключить! В противном случае можете попробовать включить.
Во включенном состоянии:
Белая полоска отображает резерв в буфере (интервал 0 – 1)
Параметр sndbufsize рекомендуется равным 1024(т.е. 1мб). Он определяет размер буфера. Есть смысл увеличивать, только если полоска постоянно скачет то к верхнему пределу, то к нижнему (а не у одного из них). При большом буфере возможна некоторая потеря скорости из-за промахов кэша процессора. Также в текущей версии возможна разсинхронизация при старте проигрывания, которая должна исчезнуть со временем (если включена syncbyfp). Параметр preload_size определяет долю заполнения буфера при начале проигрывания. Рекомендуется значение 0.1 . Большие значения не имеют смысла, т.к. его эффект в любом случае пропадёт через абсолютный максимум в 30 сек, но он тормозит начало проигрывания после перемотки.
Рекомендуется переписать фильм на винт, т.к. в этом режиме во время проигрывания позиция считывания из файла очень сильно скачет (на единицы мегабайт), а cd-rom и т.п. очень медленно переходит по непоследовательным позициям
.Белый квадратик (вместо зелёного) сигнализирует о том, что программа всё-таки простаивает (буфер подходит к заполненному состоянию). Если скоро после этого белая полоска упадет практически до нуля, до, возможно, следует увеличить размер sndbufsize (но не больше~4096, т.к. иначе это может в текущей версии привести к непредсказуемым результатам и, действительно, медленнее. Если включена downmix или downsample или sound_8bit, то не более 2048).
Рекомендуется более чем 16 мб. системной памяти.
-Синюю полоску могут уменьшить:
qv_integer_idct 0 (на P1,P mmx,...)
qv_integer_idct 1 (на k6,...)
zac_pred 0
screen_x как можно меньше, но не менее ширины показываемой части оверлея (o_width)
screen_y как можно меньше, но не менее высоты показываемой части оверлея (o_height)
start_o_format n (попробуйте разные значения n: 0,1,2)
o_width поменьше. Например, если ширина фильма 576, то можно поставить 400 при этом будут показываться только центральные ~70% кадра, что вполне достаточно, т.к. по краям кадра мало визуальной информации. o_height тоже можно поменьше
не используйте встроенную регулировку яркости и т.п., выключайте панель интерфейса во время просмотра.
force_update 0 (не влияет на качество)
Довольно заметное влияние оказывает разгон видеокарты. Автору известны 2 программы (для не очень новых видеокарт): mclk и mystclk(для Matrox MGA Mystique/Mystique 220) Так, на s3trio64v+ в режиме 640x400 серая полоска ускоряется на 12 процентов, а в 1024х768 - на 45 процентов. Автор не несёт никакой ответственности за использование подобных программ!
Use_DX5 1
sound 0 :)
downmix 1
( sound_8bit 1 не ускоряет, а лишь увеличивает эффективный размер буфера HYPERBOOST. Его включать не рекомендуется, разве что у вас меньше 16мб памяти :) )
sndlev_by_dsound 0
Параметры регулируют характер пропуска кадров на слабых машинах. Примеры:
На рисунке белыми квадратиками изображены ключевые кадры. Они всегда показываются. Реально между соседними ключевыми кадрами 200-300 кадров. Зелёными квадратиками изображены показываемые кадры, синими овалами - кадры, которые декодируются, но не показываются (т.е. серая полоска для них=0, но синяя - та же). Для того, чтобы декодировать кадр, необходимо декодировать все кадры до него после ключевого кадра, и т.к. это занимает основное время, то эффект от пропуска кадров не так велик. Поэтому при kshow 1.0 общее число показанных кадров будет выше, но они будут неравномерно распределяться, т.е. если не хватает времени на декодирование и показ оставшихся до следующего ключевого кадров, то они все просто пропускаются (возникает “скачок”). Эта схема пропуска кадров будет аналогично повторяться для следующих интервалов между ключевыми кадрами. Числа справа– это коэффициент kshow для этого примера. При kshow <0 плеер автоматически определяет используемое значение, используя значение kjump. При высоких значениях kjump будут
выбираться большие kshow и, наоборот, при небольших (до 1) -меньшие (до kshow-used = 0.2). kshow-used как раз и отображается зелёной полоской.Рекомендуемые значения:
kshow -0.9 (меньше нуля)
kjump 17.0
(Что такое оверлей?: оверлей - возможность железа видеокарты. Даёт более высокую скорость, качество, есть масштабирование. Если он не используется, то в логе пишется "using software output").
0.Желательно протестировать все видео-режимы прилагаемой программой controlpanel.exe - в настройках на вкладке "Оверлей" кнопка "тест видео-режимов". Выдаваемые строчки означают, например:
720х480: 8 16 32 b16
что есть видео-режим 720х480 и в нём есть оверлеи при режимах 8,16,32 бит на точку (при любой битности видеорежима на оверлее будет одинаковая, максимальная цветность), также есть аппаратный blt с преобразованием цветового пространства в режиме 16 бит (в дальнейшем для простоты он тоже называется оверлеем).
1.Установите минимальное разрешение, при котором не выдаётся "overlays supported but not at this resolution try another resolution" (или минимальное из пред. пункта, в котором есть оверлей) (Это для скорости).
2.Если выдаётся "none of overlay formats supported.Report to author", то это означает, что ни один из форматов оверлея, которые поддерживает ваша видео карта, не поддерживается программой. Рекомендуется сообщить автору список этих форматов (он выводится в файле log.txt после строчки "creating overlay...<"). Переходите к пункту 7.
3.Если выдаётся "can't create overlay" то, п. 3.* Если создан нежелательный формат оверлея (с низким качеством и т.п.), например Y211, то см. 3*. Для создания оверлея требуемого формата подберите параметр start_o_format. Рекомендуется YV12 (выдаётся в логе в строке "
selected: ...").3*.скорее всего, недостаточно видеопамяти/возможностей видео карты. См 3**
3**. Установите уменьшенное значение параметра o_width (0->maximum=ширина кадра)
4.Если выдаётся "overlay size error, _select higher resolution_", то посмотрите число, которое выдаётся в логе после строки "selected: ...". Если оно больше ~1300 то попробуйте запускать программу FDIVX при другом режиме десктопа (например, 640x480x256 или 1024x768). Если уменьшить его не удалось, то нужно установить режим с разрешением по горизонтали >= o_width*это_число/1000. (см. пункт 3**)
5.Если выдаётся "overlay show error" ,попробуйте установить значение параметра vertdest >= размера кадра по вертикали (но размер экрана по вертикали д.б. >= vertdest). Возможно 3*
Если видео карта не интерполирует по вертикали, то качество м.б. выше, если установить vertdest -1 (размер кадра фильма по вертикали), но при этом может сильно исказиться aspect ratio. По возможности подкрутите регуляторы на мониторе или установите hordest -1 (или меньше разрешения экрана по горизонтали).
(6. для ускорения см. 3** обрезав незначительную часть кадра.)
7. Если всё равно не работает, то сообщите автору и отключите использование оверлея параметром "nooverlay 1".