Форум Beholder http://beholder.ru/bb/ | |
Плагин «Auto Wide Aspect Control». http://beholder.ru/bb/viewtopic.php?f=7&t=13476 |
Страница 1 из 3 |
Автор: | f2065 [ 10 дек 2012, 20:06 ] |
Заголовок сообщения: | Плагин «Auto Wide Aspect Control». |
ТВ-кадр (в аналоговом ТВ) сам по себе в любом случае имеет формат 4:3. Однако сейчас большинство фильмов имеют формат 16:9 и при трансляции по ТВ идут с чёрной полосой вверху и внизу. Для тех у кого монитор 4:3 - это всё не принципиально - для такого монитора тоже нужны эти полосы. Но сейчас большинство мониторов широкоформатные - 16:9. И на них в режиме фуллскрина стандартный кадр 4:3 получается с чёрными полями слева и справа. А в случае широкоформатного фильма - с чёрными полями вообще со всех 4 сторон. Вложение: BPP_AWAC_f1.png [ 37.59 КБ | Просмотров: 47020 ] BeholdTV имеет возможность выбора соотношения «16:9 PanScan» - с картинки обрезаются верхняя и нижняя часть кадра, и фильм корректно вписывается в фуллскрин на широкоформатном мониторе. Чёрных полос нет нигде. Однако выбирать соотношение - стандартное «4:3 Letterbox» или широкоформатное «16:9 PanScan» - приходится постоянно вручную. А с пульта вообще не удобно - ибо софт не позволяет назначать конкретную кнопку на выбор того или иного соотношения, соотношение перебираются циклически (из 4 варианта и это долго). Вдобавок есть каналы где соотношение «16:9 Anamorphic» (широкоформатный фильм растянут по вертикали) - его по умолчанию невозможно смотреть ни в «4:3 Letterbox» ни в «16:9 PanScan». Вобщем, мне это надоело и я написал плагин «Auto Wide Aspect Control». Плагин позволяет следующее: - задавать список каналов для которых будет постоянно устанавливаться ранее заданное соотношение (например Anamorphic); - постоянный анализ картинки, и при обнаружении признаков широкоформатного фильма - автоматическое переключение в режим «16:9 PanScan»; - опционально - детект только в режиме фуллскрина; - опционально - принудительный возврат «4:3 Letterbox» в оконном режиме; Принцип работы плагина - замер уровня яркости в зонах A…H. Вложение: BPP_AWAC_f2.png [ 55.47 КБ | Просмотров: 47020 ] Если в зоне H темно - то ничего не делать. Детект работает только если светло в зонах D и E - т.е. это позволяет с большой вероятность исключить просто темноту по сюжету. Далее - если тёмные A,B,C,F,G - то кадр детектируется как «16:9 PanScan». Если есть свет хоть в одном из A,B,C,F,G - то кадр детектируется как «4:3 Letterbox». Какие-либо остальные комбинации - игнорируются. Некоторые каналы внизу широкоформатного фильма (особенно на музыкальных) выводят всякий спам - для них можно включить режим «Auto (A...H, !F...G)» - это будет детект только по верхним зонам. Вплотную по границам кадра много шумов, поэтому надо делать отступы примерно по 5 пикселей. Зоны A-B-C разделены на 3 части (а не единая зона) для того чтобы обходить логотипы каналов. Для защиты от шумов реализовано несколько уровней фильтрации. Сначала складываются по 4 кадра и из них выделяются самые тёмные каналы, а потом 4 кадра соединяются в 1 монохромный с выделением самого яркого из их RGB-каналов. Для каждой зоны выявляется уровень самой яркой точки и сумма всех яркостей. Зона считается светлой если превышено любое из двух условий - максимальная точка или сумма всех. Затем - настройка «Непрерывная последовательность кадров» - детект срабатывает только если все зоны A…H имеют стабильное состояние в течении этой продолжительности. Использование плагина показало что в оконном режиме постоянная смена аспекта не актуальна и отвлекает. Поэтому реализованы опции для автодетекта только в фуллскрине и принудительной установки «4:3 Letterbox» при выходе в оконный режим. Координаты мыши выведены просто для удобства настройки координат зон. Для корректной работы размер потока должен быть 768*576. А координаты зон в любом случае должны быть относительно 768*576, при необходимости плагин сам их пересчитывает. Требования к системе: BeholdTV, аналоговое ТВ (с DVB-T плагины не работают), процессор с набором команд SSE2 (и желательно с как минимум 2 полноценными ядрами). Вложение: Есть правда одна маленькая проблема. Beholder API не предоставляет функционала необходимого для работы этого плагина. У меня есть версия плагина которая использует недокументированные возможности (эмуляция меню для управления и прямое чтение памяти процесса для проверок состояний)… Но авторы BeholdTV пишут что это неправильно. Поэтому, в опубликованной версии эти возможности удалены, и в итоге плагин не может управлять аспектом, а только показывает в окошке «Автодетект соотношения» какой аспект он вычислил… Для работы плагина через документированное API не хватает возможности управлять аспектом через API, а так-же в получать в PROC_STR текущее состояние аспекта и фуллскрина (а лучше и экономичнее в INIT_STR - получать адреса соответствующих переменных в памяти). Известные баги: при открытом окне настроек плагина попытка записи или скриншота приводит к падению - будет исправлено впоследствии. Список привязанных аспектов использует только номера каналов и при перемещении каналов местами - привязки нарушатся (решение то понятно - использовать ChnlIdx вместо ChnlOrder - но это существенно тормознее и потому не подходит). Плагин корректно работает только с дефолтной яркостью и контрастностью - в будущем может сделаю корректирующие коэффициенты. |
Автор: | xOleg [ 12 дек 2012, 20:25 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
Ну так где взять плагин, переключающий аспект, хоть и не документированным способом? Пока в API не встроили соответствующие вызовы, всяко лучше, чем ничего. И еще просьба: В настройках конфигурации таки русский язык, хотя бы название самого плагина. |
Автор: | f2065 [ 12 дек 2012, 21:30 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
писал(а): Ну так где взять плагин, переключающий аспект, хоть и не документированным способом? Подождём мнения разработчиков Behold TV по этому поводу… писал(а): И еще просьба: В настройках конфигурации таки русский язык, хотя бы название самого плагина. Не понял что там с русским языком. Язык настроек русский (на скриншоте ведь видно). Язык выбирается автоматически в соответствии с глобальными настройками Windows (Панель управления - Язык и региональные стандарты - Дополнительно - Язык программ не поддерживающих юникод). Если там русский - то плагин тоже на русском всё выводит. Брать настройки из Behold TV видимо невозможно (ну разве что тоже исследовать его память процесса). Описанное в API DLG_STR.LangCode у меня что-то в любом случае выдаёт 0 (независимо от языка настроек BeholdTV)… |
Автор: | xOleg [ 12 дек 2012, 21:53 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
Я имел в виду название самого плагина по-русски в контекстном меню конфигурации. Сейчас там Auto Wide Aspect Control (или как-то так), хотя, конечно, это и мелочь. А без автоматического переключения аспектов теряется весь смысл. Может можно выложить куда вроде как альфа-версию. Кстати, не понял вот этого: Цитата: Для корректной работы размер потока должен быть 768*576. В справке стандартный поток 720x576 или "чистый" (без служебной информации) - 704x576. |
Автор: | Imperator [ 13 дек 2012, 10:23 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
писал(а): Для корректной работы размер потока должен быть 768*576. А координаты зон в любом случае должны быть относительно 768*576, при необходимости плагин сам их пересчитывает. А для 704х576 можно сделать? А то смысл пустой инфой комп нагружать, там всё равно нет сигнала... |
Автор: | f2065 [ 13 дек 2012, 10:31 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
писал(а): А для 704х576 можно сделать? А то смысл пустой инфой комп нагружать, там всё равно нет сигнала... Не совсем так… Плагин пересчитывает сам в нужный размер потока. Но вводить координаты надо исходя из размера кадра 768*576. У тебя же на экране 704*576 масштабируется в 768*576 при выводе в окно 4:3. |
Автор: | xOleg [ 15 дек 2012, 19:58 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
Как-то здесь все заглохло :-( А Щастье было так возможно... |
Автор: | f2065 [ 15 дек 2012, 20:23 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
писал(а): Я имел в виду название самого плагина по-русски в контекстном меню конфигурации. Сейчас там Auto Wide Aspect Control Кстати «Behold TV» - это тоже не по-русски…А как например плагин должен назваться в русском варианте? писал(а): Как-то здесь все заглохло :-( Ну наверно никому не нужен такой плагин… Людей у который есть широкоформатный монитор и которым лень несколько раз нажимать кнопку аспекта - судя по статистике скачивания менее 5… Вот обновлённая версия (исправлены некоторые ошибки приводившие к багам при записи и прочие мелочи), но тоже тут «неправильные» способы управления аспектом удалены: Вложение:
|
Автор: | xOleg [ 15 дек 2012, 20:39 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
Я все-таки не понял. Так этот плагин аспект не переключает, а только информирует, какой аспект он вычислил? В таком случае отключен основной функционал. Об этом я и писал, что щастье было возможно... |
Автор: | xOleg [ 18 дек 2012, 17:31 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
... и опять о наболевшем: какие у нас перспективы получить плагин с полным функционалом? |
Автор: | alex333 [ 25 дек 2012, 09:44 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
Задумка хорошая, я уже обрадовался, вот только плагин никак не работает, что в нем ни выставляй |
Автор: | f2065 [ 25 дек 2012, 09:57 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
В поле «Автодетект соотношения» он разве не показывает вычисленный аспект? |
Автор: | alex333 [ 25 дек 2012, 10:24 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
Я понял в чем дело, автор хочет бабок и выложил демоверсию с заблокированными функциями ![]() ![]() ![]() |
Автор: | f2065 [ 25 дек 2012, 11:12 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
Хм, очередное не описанное API… Согласно документации ChnlOrder не может быть -5. Хотя примерно понятно что это такое… писал(а): Или я неправильно понимаю назначение плагина? Публикуемая версия - это только демо, функция реального переключения аспекта удалена. Она только показывает итоги анализа (для каналов в диапазоне ChnlOrder -3…255). |
Автор: | f2065 [ 25 дек 2012, 11:15 ] |
Заголовок сообщения: | Re: Плагин «Auto Wide Aspect Control». |
писал(а): Я понял в чем дело, автор хочет бабок Неа, просто авторы BeholdTV считают что мои плагины работают неправильными методами. |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа |