Текущее время: 18 апр 2024, 16:16 • Часовой пояс: UTC + 3 часа
Сообщения без ответов | Активные темы

Формат данных кадра на входе в плагин

Начать новую темуОтветить на тему Страница 1 из 1 [ Сообщений: 8 ]
Версия для печати Пред. тема | След. тема
АвторСообщение
Сообщение Добавлено: 17 окт 2005, 12:50. Заголовок сообщения:  Формат данных кадра на входе в плагин
Зарегистрирован:
    17 окт 2005, 12:33
Сообщения: 3
Где можно прочитать, в каком формате лежат данные кадра, который передается в плагин. Т.е. я беру пример inverse и заменяю команду xor в обработчике на простое присваивание, типа
Код:
      for y := 0 to pPr^.FrameHeight - 1 do begin
        for x := 0 to xcycles - 1 do begin
          Block32  := PULONG(pSrcBuffer);
          Block32^ := dword(0);
          inc(pSrcBuffer, 4);
        end;
      end;

Почему у меня экран зеленый, а не черный?
Профиль 
Сообщение Добавлено: 17 окт 2005, 17:16. Заголовок сообщения: 
Beholder
Аватара пользователя
Зарегистрирован:
    19 авг 2004, 11:45
Сообщения: 616
Формат данных кадра можно узнать из значения поля PixFmt структуры PARAM_STR при старте стримминга. Данные могут находиться либо в формате YUY2, либо в RGB24. В зависимости от этого необходимо ветвить алгоритм обработки кадра. В примере Inverse ветвления не происходит, т.к. процедура инверсии цвета одинаково реализуется для обоих форматов данных.

В Вашем примере Вы имеете дело с форматом YUY2, где цвет двух соседних пикселов кодируется четырьмя байтами, два из которых являются яркостями каждого пиксела в отдельности, а два других представляют собой нормированные цветозразностные составляющие B-Y и R-Y для обоих пикселов одновременно. Чтобы получить заливку чёрным цветом в формате YUY2 необходимо заполнить массив кадра не нулями, а значением $80008000.

Узнать больше о форматах представления данных Вы можете, например, здесь.
Профиль 
Сообщение Добавлено: 18 окт 2005, 16:05. Заголовок сообщения: 
Зарегистрирован:
    17 окт 2005, 12:33
Сообщения: 3
писал(а):
Узнать больше о форматах представления данных Вы можете, например, здесь.

Блин, хоть убейте, не могу врубиться
Можете дать конкретную формулу преобразования YUY2->RGB24 и обратно
Я не могу понять как преобразовать YUV4:2:2 в YUV4:4:4, а дальше нашел на www.microsoft.com
Или хотя бы дайте понять что обозначает вот это

Converting 4:2:2 YUV to 4:4:4 YUV requires horizontal upconversion by a factor of two.

Я понимаю, что 4 байта я как-то должен превратить в 8, но не понимаю как.
Профиль 
Сообщение Добавлено: 18 окт 2005, 17:45. Заголовок сообщения: 
Beholder
Аватара пользователя
Зарегистрирован:
    19 авг 2004, 11:45
Сообщения: 616
писал(а):
Можете дать конкретную формулу преобразования YUY2->RGB24 и обратно

YUV -> RGB

R = Y + 1.402 * ( V - 128 )
G = Y - 0.714 * ( V - 128 ) - 0.334 * ( U - 128 )
B = Y + 1.772 * ( U - 128 )

RGB -> YUV

Y = 0.299 * R + 0.587 * G + 0.114 * B
U = 0.5643 * ( B - Y ) + 128
V = 0.7132 * ( R - Y ) + 128

Цитата:
Converting 4:2:2 YUV to 4:4:4 YUV requires horizontal upconversion by a factor of two.

С форматом YUV4:4:4 мы не работали. Не было надобности.
Профиль 
Сообщение Добавлено: 19 окт 2005, 09:05. Заголовок сообщения: 
Зарегистрирован:
    17 окт 2005, 12:33
Сообщения: 3
писал(а):
писал(а):
Можете дать конкретную формулу преобразования YUY2->RGB24 и обратно

YUV -> RGB
RGB -> YUV

Вот спасибо.
Профиль 
Сообщение Добавлено: 31 авг 2008, 09:45. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    14 фев 2007, 19:20
Сообщения: 81
Откуда: Курск
писал(а):
YUV -> RGB

R = Y + 1.402 * ( V - 128 )
G = Y - 0.714 * ( V - 128 ) - 0.334 * ( U - 128 )
B = Y + 1.772 * ( U - 128 )

RGB -> YUV

Y = 0.299 * R + 0.587 * G + 0.114 * B
U = 0.5643 * ( B - Y ) + 128
V = 0.7132 * ( R - Y ) + 128

Эти формулы и применяются? Они же не эффективны с точки зрения выполнения ЦП.
Beholder TV X7 / Beholder TV Wander / Beholder TV 409 FM, Rev 1 ( SAA7135 + MK3 )
BTV 5.17 / BDRV 5.3.2.0 / Windows 7 x64 Home Premium (лиц)
Профиль WWW ICQ 
Сообщение Добавлено: 31 авг 2008, 23:55. Заголовок сообщения: 
Зарегистрирован:
    16 апр 2008, 22:22
Сообщения: 611
Напишите эффективные...

В самом тюнере и видеокарте эти преобразования выполняются аппаратно.
Профиль 
Сообщение Добавлено: 01 сен 2008, 05:24. Заголовок сообщения: 
Аватара пользователя
Зарегистрирован:
    14 фев 2007, 19:20
Сообщения: 81
Откуда: Курск
См. гугль, 16 битные числа обрабатываются процессором напрямую.
Beholder TV X7 / Beholder TV Wander / Beholder TV 409 FM, Rev 1 ( SAA7135 + MK3 )
BTV 5.17 / BDRV 5.3.2.0 / Windows 7 x64 Home Premium (лиц)
Профиль WWW ICQ 
Показать сообщения за:  Поле сортировки:    
Начать новую темуОтветить на тему  Страница 1 из 1  [ Сообщений: 8 ]  
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Найти:  
Перейти: