IC Imaging Control .NET

Concepts and Components

Concepts and Components

This chapter describes the components that make up IC Imaging Control and the basic concepts behind the library.


IC Imaging Control is an API that covers all aspects of DirectShow that are related to managing, controlling and accessing imaging devices and image data. It simplifies the usage of DirectShow by maintaining hardware independence. The abstraction implemented by IC Imaging Control addresses all programmers who are familiar with frame grabbers. In other words: IC Imaging Control lets DirectShow look like a frame grabber.

Basic Components

Because the idea behind IC Imaging Control is to build something similar to a frame grabber, the main component IC Imaging Control provides methods to control the inputs, video formats, and the grabbing process which are typical for frame grabber APIs. In contrast to most frame grabber APIs, IC Imaging Control provides:

The image data is generated by the video capture device as consecutive frames that build an image stream running from the device to the sink. If the display is activated, the image stream is split, feeding the sink and the display. In this case, the image stream is a graph that looks like a "Y" and consists of the following segments:

  • Device Path: Segment between the device and the split point
  • Display Path: Segment between the split point and the display
  • Sink Path: Segment between the split point and the sink


While the figure above illustrates the flow of image data, the next figure shows the relationship between the image stream and the classes.


Advanced Components

IC Imaging Control provides generic access to device properties, multiple overlays and filter chains at different locations of the image stream:

  • Generic device properties: Although DirectShow allows device independent code to be written, by using the two defined sets of properties VideoProcAmp and CameraControl, this concept suffers from serious limitations. On the one hand, a lot of video capture devices provide more properties, than defined by DirectShow. On the other hand, the values that may be specified for a property do not have a meaning. With VCDProperties, IC Imaging Control provides a totally generic and extendable way to handle unknown properties and add a meaning to property values.
  • Multiple Overlays: The class OverlayBitmap implements an overlay that can be rendered on the image stream at three locations: device path, display path and sink path. Methods for drawing text and graphical elements, such as rectangles and lines, as well as callbacks for generating frame based overlays are provided.
  • Filter Chains: IC Imaging Control allows filters or filter chains to be inserted in the image stream at three locations: device path, display path and sink path. Filters are called frame filters and are used to change or convert the video format of the image stream, implement image processing and control which frames are processed. For details on frame filters, please refer to the section Frame Filters.



As described above, IC Imaging Control provides very powerful components to manipulate and control the acquisition and display of image streams. It is obvious that this functionality requires a certain overhead for internal management and processing. This may lead to the conclusion that IC Imaging Control is not suitable for high speed image processing application. This is absolutely not the case, as all features that make it easy to build complex applications with IC Imaging Control may be switched off. For applications that require as much CPU time for image processing as possible, IC Imaging Control may be configured in a way that the overhead to process the image stream is comparable to a low level frame grabber or FireWire library. In order to reduce the internal overhead to a minimum, you have to:

  • Switch off the display: this will remove the display path completely from the image stream.
  • Prevent automatic color space conversion: by specifying the same video format for the device and the sink.
  • Switching off all overlays.
  • Do not use the ring buffer: by inserting one frame filter in the sink path that will implement the image processing or interface a third party image processing library instead of sending frames to the sink.
  • Do not insert additional frame filters in the device path or in the sink path.

Doing so guarantees that the image data is not modified or copied by IC Imaging Control nor DirectShow. The figure below shows the layout of the image stream for this configuration.


<< Technical Articles

Get in touch with us

About The Imaging Source

Established in 1990, The Imaging Source is one of the leading manufacturers of industrial cameras, frame grabbers and video converters for production automation, quality assurance, logistics, medicine, science and security.

Our comprehensive range of cameras with USB 3.1, USB 3.0, USB 2.0, GigE interfaces and other innovative machine vision products are renowned for their high quality and ability to meet the performance requirements of demanding applications.

Automated Imaging Association ISO 9001:2015 certified

Contact us