Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Моделирование разного типа scalingа видео - сравнение качества
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Вопросы системного уровня проектирования
Саша Z
Есть задача отображения видео резолюцией 320х240 (H x V) на стандартный TV. Входное видео - pogressive, TV ессно требует interlaced. Достаточная резолюция активного видео на выходе: 640х480 (VGA), остальное дополняется черной рамкой вокруг. Осноавная информация - ч/б, цвет - второстепенен, важно нормальная передача оттенков серого (входной сигнал имеет глубину 6 бит, т.е. 64 оттенка серого, на выходе желательно не сильно ухудшить).
На данный момент, есть три подхода:
1. Входное видео идет с pixel rate который в 2 раза медленее чем стандартный rate требуемый CCIR656 (27 MHz averaged over time scale). Длина входной строки: 320 пикселей данных, они выдводятся на выход со скоростью в 2 раза выше входной (т.е. на акждый пиксель выходе идет по 2 выходных pixel clock), таким образом растягиваем строку в 320 исходных пикселей на длину 640. В плане строк - т.к. выход - interlaced, то каждые два входных кадра (240 строк) выдаются на выход как odd field затем even field, т.е. каждая пара кадров на входе дает один кадр на выходе.
При таком подходе, наверно будет эффект пикселизации на экране (из-за растяжение входного пискеля в строке дважды), и при динамике во входном видео будет видимо в той или иной мере заметен эффект "пилы" (сдвиги в линиях движущегося объекта). Я не прав ?
Ессно, кроме active video в строке TV есть blanks, но в нашем случае и входной поток определен с кол-вом blank pixles in line и blank lines in frame в 2 раза меньшим чем на выходе - так согласуем полные размеры кадра и data rates.

Это как я представляю данный подход и его результаты. Буду благодарен ежели кто из опыта прояснить что может быть не так и почему.

2. Вместо растягивания каждого входного пикселя на 2 выходных - использовать интерполяцию (линейную либо bicubic) получая таким образом 640 выходных пикселей в строке. Тоже самое делать с строками - каждая вторая строка получается интерполяцией, т.е. скажем even field выхода будет весь получаться интрполяцией odd field строк (которые есть входной кадр).
Ессно, такой подход потребует видимо гораздо больше системных ресурсов нежели первый, включая память и скорость обработки. Но будет ли прирост в качестве достаточен для оправдания затрат относительно первого подхода ?

3. Входной поток (320х240), опятьшже progressive идет со скоростью 27 MHz, т.е. равной требуемому выходному. Тогда интерполируем пиксели в строке для получения 640, в строки передаются как и первом случае, т.е. каждые два последовательных входных кадра формируют один interlaced выходной. Тут ессно потребуется некоторые ресурсы для интерполяции т.е. память и скорость обработки, но я думаю их потребуется значительно меньше чем во втором случае.
Но опять-же, как насчет качества ? Будет ли оно заметно страдать на экране TV относительно первых двух подходов ?

Что скажем ?
Саша Z
Никаких мнений ?
CaPpuCcino
Цитата(Саша Z @ Mar 29 2008, 10:52) *
Никаких мнений ?

есть одно: Правила пункт 3.3
Саша Z
Цитата(CaPpuCcino @ Mar 29 2008, 13:38) *
есть одно: Правила пункт 3.3


Сорри, smile.gif , my mistake.
Честно говоря надеялся за сутки кто-нить ответит по существу...
Wild
Можно еще заморочиться сделать интерполяцию между кадрами)).


Вы получите удовлетворительное качество при простом дублировании пикселей. Это можно проверить: написав программу преобразующую произвольную картинку, либо воспользовавшись редактором, в котором указывается способ масштабирования, в фотошопе наверняка есть такая опция .

Если хочется сделать офигенно, то билинейной интерполяции на масштабах до х4 (линейных) достаточно. Вы не сказали с какой скоростью поступают вход. Если есть возможность повторять каждый кадр(320х240) , то вам придется буфферизировать только одну строку.
(320x6)



К сожалению не могу отослать вас к литературе, но во многих изданиях встречал картинку с девушкой "Леной" увеличенной в 4(линейно) раза разными методами: дублированием пикселей, билинейной и бикубической интерполяцией, на мой взгляд дублирование пикселей на масштабе х2(линейном) достаточно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.