Преобразование YUV—RGB

Делимся опытом. Задаем вопросы и отвечаем на них. Обсуждаем статьи и новости.

Модератор: Модераторы Обсерватории

Преобразование YUV—RGB

Сообщение formicant » Ср авг 20, 2008 4:11 pm

Здравствуйте. Я новичок и ещё не разбираюсь в тонкостях цифрового видео, поэтому задаю такой, возможно глупый, вопрос.

Насколько мне известно, 8-битовая Y-компонента (luma) в пространстве YUV (Y'CrCb) имеет уровень чёрного на значении 16 и уровень белого на 235.
Часто используются два различных преобразования YUV в RGB на компьютере:
а) Без обрезки диапазонов 0–15 и 236–255. Значению 0Y соответствует 0RGB, 16Y — 16 RGB, 235Y — 235RGB, 255Y — 255RGB. При этом пиксели, которые должны быть чёрными, становятся тёмно-серыми, а белые — светло-серыми; все яркости сжимаются к середине диапазона.
б) Правильная передача яркости. 16Y преобразовывается в 0RGB, 235Y — в 255RGB. При этом теряется информация в областях 0–15 и 236–255.

В связи с этим у меня есть два вопроса:

1) Зачем нужны диапазоны 0–15 и 236–255? Там вроде бы обычно содержится какая-то информация (или шум); почему её не обрезают (например, ради экономии битрейта), если она всё равно находится за уровнем чёрного / белого?

2) В настройках декодеров различных видеоформатов иногда есть выбор преобразования YUV–RGB, иногда нету. При работе, например, с VirtualDub, когда на вход поступает видео с какого-нибудь декодера формата и потом кодируется другим кодером, я всё время опасаюсь, что где-то будет выполнено не то преобразование, например, диапазон будет растянут и не сжат назад или два раза сжат, и яркости нарушатся. Оправданы ли мои опасения? И если да, то как нужно действовать, чтобы этого избежать?
formicant
Юнга
 
Сообщения: 1
Зарегистрирован: Сб май 17, 2008 7:41 am

Вернуться в Софт: описание работы с пакетами, кодеками. Вопросы и ответы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

cron