Изборът на налични инструменти за решаване на проблемите с цифровата обработка на поток от видео данни
Избор на интерфейс за данни
320x2 00, 8 бита, 15 fps
640x480, 8 бита, 2 fps
Предаване на управляващи сигнали или статично изображение.
Предаване на управляващи сигнали.
Предаване на управляващи сигнали.
640x480 8 бита 30 fps 800x600 8 бита 15 fps
Предаване на висококачествени изображения за много потребители.
IEEE 1394 (FireWire)
320x200, 8 бита, 15 fps
640x480, 16 бита, 2 fps
800x600, 8 бита, 2 fps
Раздел. 1. Сравнителни характеристики на популярни комуникационни интерфейси с външни устройства.
Всички изисквания са напълно изпълнени от USB 2.0 и IEEE1394 интерфейсите, които най-накрая обединиха съвременните цифрови устройства в начина на обмен на данни помежду си. Поради използването на USB като стандарт за компютри и относителната евтиност на елементната база, той се използва предимно в сравнение с IEEE1394 (FireWire), който обаче превъзхожда USB в някои детайли. Стандартните скорости за IEEE1394 са: 100 Mb/s, 200 Mb/s, 400 Mb/s и 800 Mb/s, докато USB 1.0 (най-разпространеният днес) поддържа само 1,5 Mb/s и 12 Mb/s. За използване на този интерфейс обаче е необходима опционална разширителна платка за компютър. От една страна, и двата интерфейса са конкуренти, а от друга страна, няма ясно изразено предпочитание към единия пред другия сред разработчиците на цифрови технологии. Именно поради широкото използване на USB в персонални компютри и уеб камери ще се съсредоточим върху него. И с двата интерфейса можете да изграждате цели мрежи от цифрови устройства. Известно е, че дължината на интерфейсните кабели за тях е ограничена до 5 - 6 метра. Въпреки това, трети страни предлагат различни видове удължителни кабели: USB повторители, оптичниудължители от Gefen. USB позволява горещо включване (без да се налага да изключвате компютъра) на цифрови устройства и отговаря на спецификацията “Plug & Play”, според която операционната система автоматично разпознава кое устройство е свързано в момента и конфигурира софтуера по съответния начин. И което е важно, цифровото устройство може да няма собствен източник на захранване, то ще бъде заменено от персонален компютър, тъй като напрежението, захранващо електронната верига, се предава чрез свързващ кабел.

Ориз. 1. Структурна схема на ZR36504.
Разработка на драйвер за usb устройство
За да използвате ново устройство, свързано към USB шината на компютър, е необходимо да се разработи драйвер - специализиран софтуерен слой между хардуерното ниво на компютъра и операционната система (ОС). Най-новите операционни системи на Microsoft внедриха Windows Driver Model (WDM) – модел, предназначен да опрости разработването на нови драйвери и да ги направи универсални, когато се използват в нови операционни системи. Същността на модела е организацията на така наречения стек от драйвери. Използвайки примера с USB, стекът се състои от следните слоеве: на най-ниското ниво, драйверът на USB контролера (uhcd.sys), който зависи от разработчика на чипа на контролера, след това драйверът на USB шината ( usbd.sys), чрез който се извършват всички операции, и на най-високото ниво, драйверът на определен тип USB устройство (потребителски драйвер). Когато устройството е свързано към USB порта на компютъра, USB хардуерът прехвърля управлението на драйвера на USB шината, който, използвайки INF файла с настройки, определя кой потребителски драйвер да зареди с помощта на операционната система и извършва тази операция. Файлът с настройки съхранява информация, която идентифицира конкретно устройство: идентификаторпроизводител, клас на устройството и др. След зареждане на драйвера се извиква неговата функция “DriverEntry”, в която се извършва инициализацията и инсталирането на необходимите функции за обратно извикване, които ще бъдат извършени от драйвера на USB шината в момента на получаване на данни. В стабилно състояние драйверът обработва потребителски заявки, генерирани чрез извикване на стандартни входно-изходни функции на API на Win32, като ReadFile, WriteFile, DeviceIOControl. Естествено, когато използвате евтино решение под формата на уеб камера, не е необходимо разработването на драйвер, производителят предлага свои собствени драйвери.
Конвертирайте вътрешния формат на изображението в независими от устройство растерни изображения (DIB) Windows и обратно (ConvertFromDIB, ConvertToDIB).
Изчисляване на конволюцията на изображението с произволни ядра, включително вградени градиентни филтърни ядра, замъглявания на изображения и др. (CreateConvKernel, Convolve2D, Blur).
Различни трансформации на изображения, включително афинни (Rotate, Mirror, Zoom, Resize, WarpAffine).
Аритметични и логически операции с изображения (AdS, SubtractS, MultiplyS, AndS, OrS, XorS).
Трансформации на Фурие на изображението и умножение на спектрите на изображението в честотната област (конволюция на изображението) ( RealFft2D, CcsFft2D, MpyRCPack2D, DCT2D).
Библиотеката ви позволява да работите както с черно-бели, така и с пълноцветни изображения.
Фиг.2. Модел на филтър DirectShow.

Ориз. 3. Филтърно дърво, изградено от Capture Graph Builder.