Applications that capture or display video usually need some way to process un-compressed video images. The un-compressed images are stored in memory as image buffers, usually in a region of memory dedicated to the video hardware. In a real-time video application, image buffers must be shared between different components that process the un-compressed images in various ways. To do this quickly, a buffer management plan is needed. There is no perfect plan for every application, but a good strategy that is widely used involves exchanging buffer pointers between processing components.
In this strategy, every processing component has access to a global pool of image buffers. These buffers can either be allocated all at once at startup, or as needed. When streaming starts, image sources will get un-used buffers from the global pool and fill them with data. When each buffer is ready, a pointer to the buffer is passed along to the next processing component. After that component has done its work, it can either pass the buffer pointer along to the next component or free the buffer, releasing it back to the global pool. This strategy can be very efficient because it avoids unnecessary copying of un-compressed image data.
- Video Design Notes
- Analog TV Demodulation
- Backend Video Processing
- Video Codecs
- Video Reference Designs
VOCAL’s optimized Video Streaming software is available for the following platforms. Please contact us for specific Video Streaming supported platforms.