реклама на сайте
подробности

 
 
> Преобразование видео формата на ПЛИС, 1280х1024 -> 960x768
ovs_pavel
сообщение Mar 24 2015, 09:25
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 19-05-06
Пользователь №: 17 249



День добрый коллеги. Возник вопрос по преобразованию видео потока (grayscale, 8 бит/пиксель, 25 кадр/сек) на ПЛИС.
Исходный формат - 1280х1024. Необходимый формат - 960x768.

Я сделал просто и быстро (было задача главное сделать) - убрал каждую 4-ую строку и каждый четвертый пиксель в строке. Все работает и ок, но видны на косых линиях маленькие ступеньки.

Поэтому и вопрос - есть ли простые (именно простые) алгоритмы аппроксимации, которые хорошо ложатся на ПЛИС (ну по соседним пикселям высчитывать новые или что-то в этом роде).

Можно ссылку на литературу (не занимался видео обработкой даже в таком простом виде, поэтому и сделал все в лоб). Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Mar 24 2015, 09:48
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Например, "распределить" каждые 4 входные точки на 3 выходные, линейно:

X1 = (3x1 + x2) / 4;
X2 = (2x2 + 2x3) / 4;
X3 = (x3 + 3x4) / 4;
Go to the top of the page
 
+Quote Post
ViKo
сообщение Mar 24 2015, 13:25
Сообщение #3


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(ViKo @ Mar 24 2015, 12:48) *
Например, "распределить" каждые 4 входные точки на 3 выходные, линейно:
X1 = (3x1 + x2) / 4;
X2 = (2x2 + 2x3) / 4;
X3 = (x3 + 3x4) / 4;

Чтобы сохранить яркость прежней, нужно умножить все на 3/4.
X[1] = (9x[1] + 3x[2]) / 16;
X[2] = (6x[2] + 6x[3]) / 16;
X[3] = (3x[3] + 9x[4]) / 16;
Go to the top of the page
 
+Quote Post
_pv
сообщение Mar 24 2015, 14:18
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(ViKo @ Mar 24 2015, 19:25) *
Чтобы сохранить яркость прежней, нужно умножить все на 3/4.
X[1] = (9x[1] + 3x[2]) / 16;
X[2] = (6x[2] + 6x[3]) / 16;
X[3] = (3x[3] + 9x[4]) / 16;


x[1] = 255, x[2] = 255 -> X[1] = 191.
первый вариант правильный был, оно уже на 3/4 умножено

X1 = (3x1 + x2) / 4;
X2 = (2x2 + 2x3) / 4;
X3 = (x3 + 3x4) / 4;
Go to the top of the page
 
+Quote Post
blackfin
сообщение Mar 24 2015, 14:55
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(_pv @ Mar 24 2015, 17:18) *
первый вариант правильный был, оно уже на 3/4 умножено

ИМХО, тоже неправильный.

Вот если взять линейную входную последовательность и преобразовать, то выходная последовательность будет уже нелинейной.. biggrin.gif

Имеем входную последовательность:

x[1] = 1,
x[2] = 2,
x[3] = 3,
x[4] = 4,
x[5] = 5,
x[6] = 6.

Считаем по формуле:

X[1] = (3*x[1] + 1*x[2]) / 4;
X[2] = (2*x[2] + 2*x[3]) / 4;
X[3] = (1*x[3] + 3*x[4]) / 4;

X[4] = (3*x[5] + 1*x[6]) / 4;
X[5] = (2*x[6] + 2*x[7]) / 4;
X[6] = (1*x[7] + 3*x[8]) / 4;

Находим выходную последовательность:

X[1] = (3*1 + 1*2) / 4 = 5/4;
X[2] = (2*2 + 2*3) / 4 = 10/4;
X[3] = (1*3 + 3*4) / 4 = 15/4;
X[4] = (3*5 + 1*6) / 4 = 21/4;

Находим разницу между последовательными значениями:

X[2]-X[1] = 5/4;
X[3]-X[2] = 5/4;
X[4]-X[3] = 6/4;

То есть, на выходе уже нет линейной зависимости..

Как быть? biggrin.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ovs_pavel   Преобразование видео формата на ПЛИС   Mar 24 2015, 09:25
|- - ovs_pavel   Цитата(ViKo @ Mar 24 2015, 12:48) Наприме...   Mar 24 2015, 10:03
||- - ViKo   Цитата(ovs_pavel @ Mar 24 2015, 13:03) Не...   Mar 24 2015, 10:09
||- - blackfin   Цитата(ovs_pavel @ Mar 24 2015, 13:03) Не...   Mar 24 2015, 10:36
||- - ovs_pavel   [quote name='blackfin' date='Mar 24 20...   Mar 24 2015, 10:54
|||- - blackfin   Цитата(ovs_pavel @ Mar 24 2015, 13:54) И ...   Mar 24 2015, 11:33
|||- - _pv   Цитата(blackfin @ Mar 24 2015, 17:33) Пре...   Mar 24 2015, 14:42
||- - ViKo   Цитата(blackfin @ Mar 24 2015, 13:36) Для...   Mar 24 2015, 10:56
|- - ViKo   Цитата(_pv @ Mar 24 2015, 17:18) x[1] = 2...   Mar 24 2015, 14:24
|- - _pv   Цитата(blackfin @ Mar 24 2015, 20:55) ИМХ...   Mar 24 2015, 16:08
- - aat_81   Можно воспользоваться вот этим http://opencores.or...   Mar 24 2015, 09:50
- - ViKo   Исправился. X'[0] = (5x[0] + x[1]) / 6; X...   Mar 24 2015, 18:24
- - RamZoom   На сайте есть интересующее ВАС описание с пояснени...   Apr 19 2015, 16:38


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 12:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01421 секунд с 7
ELECTRONIX ©2004-2016