Videoforum - форум о видео и не только!

Videoforum - форум о видео и не только! (http://videoforums.ru/index.php)
-   Plug-ins / Плагины (http://videoforums.ru/forumdisplay.php?f=53)
-   -   Универсальный плагин микширования каналов YCbCrChannelMixer.dll для AviSynth (http://videoforums.ru/showthread.php?t=6546)

Жрец Нефтиды 07.08.2016 15:38

Универсальный плагин микширования каналов YCbCrChannelMixer.dll для AviSynth
 
Частное применение плагина – преобразование BT.709 в BT.601.
В комплект также входит статья, в которой приведены формулы в символьном виде для преобразования RGB в YCbCr и обратно. Понятным русским языком описано, какие нужно произвести математические выкладки, чтобы на основании взятых из стандартов коэффициентов получить точные формулы для преобразования форматов. В русскоязычной Сети я не встретил сайтов, где использование формул было бы так понятно объяснено.
Ленивые закопипастили Сеть одними и теми же формулами, неточно округлёнными, без всяких объяснений, откуда эти формулы произошли. На основании математических расчётов я показал, к какой погрешности приводит такой иждивенческий подход.
В статье также описан уникальный эксперимент, который раньше никто не проводил. Был написан скрипт, который создаёт все возможные цвета для планарного формата. Каждый кадр – это свой цвет, всего их получается 14 с лишним миллионов. За счёт команд скрипта производится сравнение того цвета, который должен получиться строго по формулам, и того цвета, который выдаёт плагин Тритикала "ColorMatrix". В результате эксперимента было выявлено, что плагин Тритикала иногда считает с погрешностью. Не часто, примерно для одного цвета на 500 цветов, но всё же неточность есть неточность.
Мною был написан плагин, который выполняет все операции строго по законам. Добро лежит здесь:
https://yadi.sk/d/cPycYLKZtzMJp
Начинать читать рекомендую со статьи "Колорматрикс", потом читать "Инструкцию". Статья кишит формулами, как Кишан вшами. Чтобы они отображались, в Ворде должен быть включён "Редактор формул" 3.1 или позднее.
Получается, что российский жрец взял за жабры американского профессора.
Рекомендую также ознакомиться с исходным текстом программы YCbCrChannelMixer.cpp. Узнаешь много интересного о передаче данных из кадра в С++. Программа написана понятным сиплюсплюсному середняку способом, без труднопонимаемых программистских приёмов. Программа снабжена подробными комментариями на русском языке.
Исследуя исходники плагинов аналогичных типов от других писарей, я выявил вот какую недоработку. Известно, что в формате YV12 планар Y свой для каждого пикселя, а вот пара Cb и Cr общая для четырёх пикселей. Поэтому считать Cb и Cr достаточно, во-первых, один раз на две строки – и это в программах прописано. Во-вторых, на протяжении одной строки на каждые два смежных значения Y значения Cb и Cr тоже общие, и считать их тоже достаточно только один раз. Однако программно прописать расчёт Cb и Cr один раз на два Y довольно трудно, и у неееекоторого количества других программистов Cb и Cr в пределах одной строки считаются столько же раз, сколько и Y. На конечную точность конкретно такой двойной пересчёт никак не влияет, а вот ресурсы у компьютера он забирает почём зря.
Я же в своём плагине применил довольно хитрый приём, позволяющий избежать любых двойных расчётов.
В ближайшее время планирую написать инструкцию для новичка по компилированию от нуля на Microsoft Visual C++ 2008.

Жрец Нефтиды 14.01.2018 16:06

Скомпилировал заново свой плагин, используя при компиляции статическую компоновку. Все тексты программ не изменялись. Суть этого действия: при статической компоновке всё нужное для работы плагина в момент компиляции всаживается в сам плагин. В результате плагин увеличивается в размерах, но может работать, по идее, на любых ОС, включая пингвина.
Залито сюда:
https://yadi.sk/d/uY14am1Y3RLzDf
Конечно, конвертирование -- это уже вчерашний день, но может кому-нибудь будет интересно.

sherst 09.03.2018 10:00

Цитата:

Сообщение от Жрец Нефтиды (Сообщение 76575)
Скомпилировал заново свой плагин, используя при компиляции статическую компоновку. Все тексты программ не изменялись. Суть этого действия: при статической компоновке всё нужное для работы плагина в момент компиляции всаживается в сам плагин. В результате плагин увеличивается в размерах, но может работать, по идее, на любых ОС, включая пингвина.
Залито сюда:
[Для просмотра данной ссылки нужно зарегистрироваться]
Конечно, конвертирование -- это уже вчерашний день, но может кому-нибудь будет интересно.

А чего-то ничего не скачивается.

Жрец Нефтиды 13.03.2018 18:12

Перезалил:
[Для просмотра данной ссылки нужно зарегистрироваться]


Часовой пояс GMT +1, время: 08:15.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot