[C] Выбор структуры данных для видеофильтров
Форум — Development
Пишу фреймворк для фильтрации видео. Не могу окончательно решить, какую структуру данных использовать для хранения обрабатываемых кадров.
Вариант 1:
typedef struct image_s
{
int w;
int h;
int sz_yy;
int sz_buf;
uint8_t *buf;
uint8_t *yy;
uint8_t *cb;
uint8_t *cr;
} image_t;
Вариант 2:
typedef struct pixel_s
{
uint8_t yy;
uint8_t cb;
uint8_t cr;
} pixel_t;
typedef struct image_s
{
int w;
int h;
int px_count;
int px_sz;
pixel_t *px;
} image_t;
Первый вариант удобнее импортировать/экспортировать из планарных форматов (yv12, yuv420p) и обрабатывать покомпонентными фильтрами.
Второй вариант удобнее обрабатывать попиксельными фильтрами, и использовать при этом код типа такого:
out->px[xy]=in->px[xy];
out->yy[xy]=in->yy[xy];
out->cb[xy]=in->cb[xy];
out->cr[xy]=in->cr[xy];
Есть какие-нибудь аргументы, чтобы остановиться на одном из вариантов?