Торренты   
 
 


Стереоплеер: Free 3d player by Kostasoft

Выдалось немного свободного времени. Внес некоторые изменения в работе моего стереоплеера, основанного на технологии 3D Vision от Nvidia.
Просьба, протестировать его на разном железе (В режиме анаглифа или QuadBuffers должно работать и на видеокарточках от ATI/AMD).
Скачать с официальной страницы проекта
Что изменено:
1. Сделал ручное переключение исходных режимов стереоролика (цифровыми клавишами). Поддержка форматов: Over/Under, Side-by-Side (обычные и анаморфные режимы)
2. Сделал декодирование видео только в UV12 (для ускорения декодирования на слабых машинах, в связи с уменьшением потока в 2.6 раза по сравнению с RGBA) и вывод на экран этого цветового подпространства за счет использования Pixel Shader 2.0 (опять же для ускорения распаковки кадров, т.к. вся работа ведется в GPU видеокарты).
Что ухудшилось:
1. Не включается режим стерео на встроенных видеокартах (у меня ноутбук Dell XPS 13 с двумя видеокартами. На встроенной не включается, на дискретной - работает). Неизбежное зло при переходе на новый способ вывода видео через шейдеры.
Просьба, по возможности, отписаться о работе данного сабжа в сравнении с другими плеерами (скорость работы, баги). Особенно интересует мнение владельцев компьютеров со слабым процессором (и более-менее шустрой видеокартой), у которых наблюдались тормоза при воспроизведении "тяжелого" видео.
Комментарии:

Пред.  1, 2, 3, ... 15, 16, 17  След.






Новое в версии 2.2.22.2:
- Плеер работает как с технологией DirectX (3D Vision), так и OpenGL (QuadroBuffers). Переключение режима происходит по нажатию F2. Стерео в режиме OpenGL будет работать только на профессиональных видеокартах: Nvidia QUADRO или ATI (AMD) FireGL !
- Реалтайм-обрезание видео до стандартных размеров экрана: 16:9 или 4:3 (F4,F5,F6)
- Курсорные клавиши - сдвиг параллакса. Сохраняется к конфиг-файле для каждого фильма.
- Интегрирован кодек LAVfilters 0.47
Официальный сайт
 

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

boss-master
Я к новым дровам подсовываю старый драйвер для Nvidia Stereoscopic 3D USB Controller и эмулятор работает нормально.
 

KrJuMaN
Кинь людям драйверочик Nvidia Stereoscopic 3D USB Controller попробовать твой успех . :)
 

sibboi
Держите http://zalil.ru/32768251 .Короче когда запускаешь enablestereo батник,в диспетчере устройств Nvidia Stereoscopic 3D USB Controller стоит под знаком вопроса,подсовываешь ему этот драйвер и все ок.Вообще я специально ставил старые дрова,а потом новые и если начинаешь вручную обновлять драйвер для Nvidia Stereoscopic 3D USB Controller,то там можно и старый и новый выбрать,не подсовывая inf.
 

загрузил- демо ролик показывает нормально
а попробовал пилу посмотреть - открылось но почему то помимо костаского открылось окно актив муви виндоус а в нем уже пара, никакого стерео.
То же самое, при попытке воспроизвести любой фильм в формате mkv или mp4, wmv - открылся без проблем.
Видеодрайвер: 295.73-desktop-win7-32bit-international-whql
Установлен пакет кодеков K-Lite Mega codec pack 7.8.0
Все остальные стереопроигрыватели работают нормально.
А нельзя ли сделать поддержку технологии Drag-n-drop, чтобы фильмы можно было просто кидать на открытый проигрыватель?
 

олег урсинов
Да у тебя теперь есть головная боль , как загнать ISO для двух проекторной системы ! А что насамом деле нет такого плеера который при воспроизведении блюрика поддерживал двух проекторную систему ?
Через демон тулз открывай Stereoscopom только нужно знать какую папку открыть выбрал самый большой файл и смотри))))))))
 

Новая версия 12.3.25.0
- Сделал Drag-n-drop.
- Поменял встроенный кодек на MPC Standalone Filters.
- Добавил проверку новой версии по нажатию F9.
У кого стоит кодекпак, моя рекомендация - снесите его с компьютера, любой кодекпак - зло. Нужно ставить только нужные кодеки или использовать плееры с интегрированными фильтрами.
 

Новая версия 12.4.1.2
Теперь добавлены различные режимы анаглифа для пользователей, не имеющих стереосовместимых проекторов и мониторов. Вывод в этих режимах можно настроить "под себя" (под свой монитор/проектор). Поддерживает метод Dubois (Дюбуа).
 

kostasoft
попробовал на рабочем компе
1) при запуске AVG ругается - пришлось добавить исключение
2) при запуске выдает
 

kostasoft
Для реализации моего алгоритма, необходимо:
1) Обработать стереопару, выполнив адаптивную коррекцию цвета. На входе стереопара в RGB24, на выходе стереопара RGB24. Если левый и правый ракурс у вас обрабатываются независимо, то данную операцию надо сделать для каждого ракурса.
Код:
// адаптивная коррекция цвета
// преобразования для каждой точки стереопары
// предполагаем, что цвет точки храниться в переменных R,G,B значения 0..255
byte R = ....
byte G = ....
byte B = ....
// переводим в пространство HSV (результат в переменных H,S,V)
byte max = R;
if ( G > max ) max = G;
if ( B > max ) max = B;
byte V = max;
byte min = R;
if ( G < min ) min = G;
if ( B < min ) min = B;
byte H = 0;
if ( max != min )
  {
    if (max == R )
      {
        if ( G >= B ) H = (40*(G-B))/(max-min)
        else          H = (40*(G-B))/(max-min)+240;
      };
    if ( max == G )   H = (40*(B-R))/(max-min)+80;
    if ( max == B )   H = (40*(R-G))/(max-min)+160;
  };
byte S = 0;
if ( max != 0 ) S = 255-(min*255)/(max);
// выполняем коррекцию цвета
// предполагаем, что SM и KSM - двумерные массивы 256 на 256 элементов типа byte (индексы от 0..255)
// массивы должны быть глобальными и загружаться из двоичного файла один раз, при запуске воспроизведения или запуске программы
S = SM[KSM[H,V],S];
// выполняем обратное преобразование в RGB
byte HC = H/40;
byte f = H-HC*40;
switch ( HC ) {
  case 0  : R = V;
            G = (V*(10200-(40-f)*S))/(10200);
            B = (V*(255-S))/(255);
            break;
  case 1  : R = (V*(10200-f*S))/(10200);
            G = V;
            B = (V*(255-S))/(255);
            break;
  case 2  : R = (V*(255-S))/(255);
            G = V;
            B = (V*(10200-(40-f)*S))/(10200);
            break;
  case 3  : R = (V*(255-S))/(255);
            G = (V*(10200-f*S))/(10200);
            B = V;
            break;
  case 4  : R = (V*(10200-(40-f)*S))/(10200);
            G = (V*(255-S))/(255);
            B = V;
            break;
  case 5  : R = V;
            G = (V*(255-S))/(255);
            B = (V*(10200-f*S))/(10200);
            break;
  case 6  : R = V;
            G = (V*(10200-(40-f)*S))/(10200);
            B = (V*(255-S))/(255);
            break;
  default : R = 255;
            G = 255;
            B = 255;
            break;
}
2) Преобразовать полученное изображение в выбранный тип анаглифа. Это у вас уже сделано. Только, один момент: в анаглиф надо переводить по методу color anaglyph, т.е. просто взяв цветовые компоненты от разных ракурсов с единичными коэффициентами, например для red-cyan: красный из левого, а зеленый и синий из правого.
3) Обработать полученный анаглиф для компенсации гхостов.
Код:
// компенсация гхоста
// предполагаем, что стереопара, прошедшая через адаптивную коррекцию цвета, уже преобразована в выбранный тип анаглифа
// предполагаем, что цвет точки анаглифного изображения храниться в переменных R,G,B значения 0..255
byte RN;
byte GN;
byte BN;
switch ( Mode ) {
  case 0  : RN = ML[G,R];
            GN = MR[R,G];
            BN = MR[R,B];
            break;
  case 1  : RN = MR[G,R];
            GN = ML[R,G];
            BN = MR[G,B];
            break;
  case 2  : RN = ML[B,R];
            GN = ML[B,G];
            BN = MR[G,B];
            break;
  default : R = 0;
            G = 0;
            B = 0;
            break;
}
R = RN;
G = GN;
B = BN;
// предполагаем, что ML и MR - двумерные массивы 256 на 256 элементов типа byte (индексы от 0..255)
// массивы должны быть глобальными и загружаться из двоичного файла один раз, при запуске воспроизведения или запуске программы
Примечание: переменная Mode содержит выбранный тип анаглифа (0 - для red-cyan, 1 - для green-magenta, 2 - для amber-blue)
Массивы KSM и SM находятся в файле RC_Avisynth.prof, сначала идет массив KSM, потом идет массив SM.
Массивы ML и MR находятся в файле RCProf.c3d, сначала идет массив ML, потом идет массив MR.
В файлах идут последовательно байты для ячеек [0,0] [0,1] [0,2] ... [0,255] [1,0] [1,1] [1,2] ... [1,255] [2,0] ... [255,255]
Для других типов анаглифа файлы имеют имена GM_Avisynth.prof,GMProf.c3d - это зелено-малиновый, и AB_Avisynth.prof,ABProf.c3d - это желто-синий.
Данные файлы создаются в моей программе-вьювере, имеет смысл к видео-плееру добавить эти 6 файлов в его папку, а пользователь их потом сможет заменить на свои.
 

Давай начнем с первого пункта.
У меня входной формат YUV, выходной RGBA.
Как осуществить "адаптивную коррекцию цвета"? Код можешь не предлагать, мне нужны формулы.
 

kostasoft
Так ведь все формулы в коде уже есть!
Общий подход такой:
- YUV преобразуем в RGB
- RGB преобразуем в HSV
- переводим значения HSV в целые числа: H - 0..240; S - 0..255; V - 0..255
- заменяем значение S на другое, выбранное из массивов S = SM[KSM[H,V],S]
- переводим значения HSV обратно в RGB
Добавлено:
1) альфа-канал можно не трогать
2) может есть формулы сразу пересчета из YUV в HSV (я это не пробивал)
3) формулы для перевода RGB=>HSV и HSV=>RGB можно взять здесь http://ru.wikipedia.org/wiki/HSV_%28%D1%86%D0%B2%D0...5%D0%BB%D1%8C%29
P.S. попробуй для начала просто перевести RGB => HSV => RGB на шейдере и проверить что цвета не искажаются (т.е. перевод сделан правильно). Эти преобразования совершенно необходимы, т.к. коррекция цвета делается в пространстве HSV
 

Новая версия 12.4.1.2
Теперь добавлены различные режимы анаглифа для пользователей, не имеющих стереосовместимых проекторов и мониторов. Вывод в этих режимах можно настроить "под себя" (под свой монитор/проектор). Поддерживает метод Dubois (Дюбуа).
Теперь 3D работает, но не меняются пропорции, изображение просто масштабируется, а пропорции остаются неизменными.
 

Теперь 3D работает, но не меняются пропорции, изображение просто масштабируется, а пропорции остаются неизменными.
А можно по-подробнее, какой режим (QuadBuffers, 3D Vision или Anaglyph)?
В оконном режиме или в полноэкранном?
Пропорции кадра и должны оставаться постоянными, вне зависимости от размеров окна! (F4, F5, F6 - только обрезают видео до стандартных 4:3 или 16:9).
 

byte HC = H/40;
byte f = H-HC*40;
Интересно, почему у тебя деление на 40, а не на 60, как должно быть?
Все, забей, я выбросил эту дурацкую формулу через минимумы и максимумы. Сделал преобразование HVS-> RGB опять через YUV, получилось просто и элегантно.
Если не засну, выложу версию с регулировкой насыщенности.
Поэтому, большая просьба: Если можно, дайте мне формулу, по которой вы хотите регулировать насыщенность, нужна зависимость Saturation от тона и освещенности.
Мне кажется, что адаптивная коррекция должна быть разная для разных ракурсов, а не только для разных цветовых схем анаглифа, но может я не прав, в цветокоррекции я полный профан.
Еще один момент: у меня в качестве компонента V (Value) используется Y из YUV. Тут не возникнут сложности?
Готово. v.12.4.3.0
Клавиши Q и W увеличивают и уменьшают насыщенность (Saturation). Смотреть лучше в режиме QuadBuffers (даже если у вас не проф. карта), т.к. там отображается полноцветная картинка и все изменения сразу видны.
 

kostasoft
Деление на 40 - это потому, что хочу диапазон H иметь от 0 до 240 (а не от 0 до 360), именно такой диапазон заложен в файле цветокоррекции. Формулы нет, новое значение насыщенности выбирается из массивов, сначала выбирается некий коэффициент K = KSM[H,V] а затем уже новое значение насыщенности с использованием этого коэффициента SN = SM[K,S]. Я потому тебя и спрашивал, можно ли как-то в шейдерах массивы из двоичных файлов загружать?
Если не трудно, можешь показать как ты из YUV в HSV сразу пересчитываешь? Я вчера 2 часа искал, не нашел. Насчет V=Y, надо пробовать, возможно придется сделать V=k*Y, где k=0.3...0.7 Буду этим вопросом заниматься
 

2 photoreal3d
YUV -> HSL
А не будет ли проблемой то, что у меня диапазон полный (0..360)?
Сейчас буду думать, как загрузить массив в шейдер.
Если получится, готовь отдельную программу создания профиля к конкретным очкам+монитору. Будем комплектовать ею плеер. ;-)
Что, на счет разных методов работы с пикселями разных ракурсов???
Офтоп: я смотрю, ты на востоке живешь, в 3 часа ночи я еще не сплю, а ты, видимо, уже не спишь :-)
 

kostasoft
Насчет полного диапазона не переживай, можно ведь H*240/360 и все будет ОК :)
В крайнем случае, сделаю выгрузку массива размером 360х255.
Программу для создания профиля сделаю путем "обрезания" моего фото-вьювера, это без проблем.
Про пиксели разных ракурсов не понял... Имеешь ввиду этап 2 - коррекция гхоста?
По поводу востока: живу на Урале, МСК+2
 

Насчет полного диапазона не переживай, можно ведь H*240/360 и все будет ОК :)
В крайнем случае, сделаю выгрузку массива размером 360х255.
Давай сразу определимся, каков будет размер массивов в профилях. Я уже делаю загрузку массивов в текстуру и доступ к ней из шейдера. У меня hue в радианах, но я переведу в градусы (*180/pi). это информация мне нужна прямо сейчас!
И тогда сразу пришли мне сам профиль в нужном формате (название у него будет current_RedCyan.prof)
Про пиксели разных ракурсов не понял... Имеешь ввиду этап 2 - коррекция гхоста?
Нет, я имею ввиду первый этап. Просто предварительную коррекцию не имеет ли смысл проводить по разным алгоритмам для разных ракурсов (по-простому, для левой картинки - один, для правой - другой). Это так, спонтанная эякуляция мысли...
 

Страница 2 из 17

Пред.  1, 2, 3, ... 15, 16, 17  След.