Design Article
Integrating an H.264 video encoder with Stretch's processor
Joe Hanson,<br>Stretch Inc.
11/10/2006 3:15 AM EST
Target applications and trade-offs
While the goal of H.264 encoding is to deliver similar quality video at 50% of the bit rate of an MPEG 2 encoded stream, defining a single H.264 encoder application for all uses is difficult. The target bit rates and image quality requirements vary by application.
For low-motion video applications, such as surveillance, the requirements include variable image sizes ranging from CIF to D1 resolutions, medium to good video quality, low latency between the input and the output, and transport is over IP to a remote host for viewing and storage. The user application varies from simply controlling the camera settings and position to performing pre-processing or other specialized analytics on the video images.
For high-motion video applications, such as broadcast, the requirements include PAL or NTSC image sizes and frame rates, excellent video quality, low latency is less important, constant bit rate control to manage the channel capacity, and transport over an MPEG Transport Stream. The user application portion may perform specialized preprocessing on the images, such as noise removal or image enhancements.
VSS H.264 Encoder for Stretch Software Development Kit (SDK)
Stretch and VSS partnered to develop an SDK to ease the integration of H.264 encoding into a custom application. The SDK provides a set of 13 APIs to simplify the integration of video encoding into the application. The encoder provides a wide range of user selectable options which adapt the encoding requirements to the user application.
Figure 1 shows the typical usage for integrating H.264 encoding into an application. The three stages are the user application, the encoder and the transport mechanism. The content of the user application is, of course, up to the user to define. The transport mechanism is a packaging of the encoded bitstream into the targeted format, whether that is an RTP transport of Ethernet or an MPEG transport stream. The VSS SDK includes reference code for the transport layer. The H.264 encoder allows the user to configure the encoder to meet the bit-rate and quality within the compute requirements.

Figure 1: SDK usage in an application
Next: Parameters under user control



