|
 |
toolsZONE Products for the week of March 10, 2008
Stretch Says…
First 16-Channel H.264 Digital Video Recorder in a PCI-Express Add-in Card Reference Design Kit Offers Complete Turnkey Solution for OEMs Requiring Low-Cost and High Channel Density
Stretch, Inc. introduced the surveillance industry's first PCI-Express (PCIe) add-in card capable of 16-channels of D1 H.264 video encoding. The Stretch PCIe DVR Reference Design Kit (RDK) is a production ready, high performance audio/video capture and hardware compression platform capable of performing H.264 compression on 480 frames of D1 video per second. Utilizing the new Stretch S6000 family of software configurable processors and its Intelligent Encoder software, the PCIe DVR RDK delivers unparalleled channel density in a cost-effective short form factor PCIe add-in card.
"It is estimated that over 30 million video surveillance cameras will ship in 2007" stated Bob Beachler, Stretch VP of marketing. "The explosion in the number of channels, along with the commensurate increase in video storage requirements is driving OEMs to look for low-cost yet powerful encoding solutions. The Stretch PCIe DVR RDK delivers on these requirements."
S6000 Family Enables Unrivaled Channel Density and Low Cost
The S6000 family of software configurable processors was designed specifically for multi-chip video encoding applications. The PCIe DVR RDK uses four S6000 family devices, each performing H.264 video encoding on 4 channels of D1 resolution at 30 frames per second. The S6000 family's Processor Array Technology allows multiple S6000 devices to directly communicate large amounts of video data between processors, obviating the need for bridge chips or aggregating FPGAs. The integrated PCI-Express interface removes a separate PCIe bridge. Video capture is performed using devices from Techwell, a leading supplier of video decoders. Early on in the development of the S6000 family, Stretch began working with Techwell to ensure a seamless interface between their devices and the S6000 family. This partnership with Techwell was instrumental in the creation of the PCIe DVR RDK.
"We are pleased to have worked with Stretch on the groundbreaking PCIe DVR RDK," stated David Nam, Techwell's VP of sales and marketing. "Coupled with our 4-in1 video decoder, we believe the Stretch Solution is well positioned for the real-time D1 H.264 capture card segment."
Stretch Intelligent Encoder Provides Multi-Standard Video and Audio Encoding
At the heart of the software for the PCIe DVR RDK is the Stretch Intelligent Encoder Software Development Kit (SDK). Using the application programming interface of the Intelligent Encoder, system designers can configure either H.264 or MJPEG video encoding and bit rates can be further controlled by dynamically selecting desired frame rates and resolutions to be encoded. The encoder's built-in analytics provide scene change, blind and motion detection, as well as night detection, and can be used to dynamically change resolutions and frame rates of the recorded stream. Multiple areas of interest can be defined to further refine the definition of trigger criteria. The Stretch PCIe DVR RDK captures 16 channels of audio and can compress them within the Intelligent Encoder into G.711 or G.726 streams.
Easy Integration through a Comprehensive Application Programming Interface
Integrating complex video encoding systems can be a long, difficult process, but Stretch developed a rich application programming interface (API) layer that can be used by system programmers to configure and use the PCIe DVR card without knowledge of the underlying architecture. This library can be used directly by third party DVR application software to interface to the Stretch card, configure stream parameters and control data flow. The API interface is supplied as source code and can be used directly by application code or adapted to meet specific requirements. By providing a rich API, Stretch has made the design cycle fast, easy and efficient.
Complete Reference Design Solution
Stretch developed the PCIe DVR RDK with DVR end-user equipment manufacturers in mind. The PCIe DVR RDK includes everything needed to take the design into volume production, including design files, a bill of materials and Gerber files for PCB fabrication. The kit ships with a distribution license for the Stretch Intelligent Encoder, source code for the S6000 DVR application software and the API interface for the host PC. The Stretch PCIe DVR Reference Design Kit is also available as an evaluation kit containing the same hardware, source code and software applications, but without the distribution license. Intended as an evaluation vehicle for the PCIe DVR RDK, the platform can also be used to develop proprietary algorithms, benchmark system performance, or develop unique audio/video processing applications using the compute power of the four onboard S6000 family devices.
EN-Genius Says…
Startup Stretch Inc’s H.264 video reference design, with its four prominent processors, looks like a route to building powerful feature-laden customized PCI video plug-ins, and it may shape up as a viable alternative to fixed-function video processor chips, or video systems based on off-the-shelf DSPs. Regardless of this advanced reference design, implementing a video processor with analytics will not be a trivial undertaking, so gird your loins.
Stretch also competes with another video startup, namely Stream Processors, with its STORM-1 software-configurable family. Stream STORM SP16HP-G220 chip cranks an impressive 224 GMAC/s (giga multiply-accumulate operations/s). The company's less aggressive SP16-G160 handles 160 GMAC/s and is specifically intended for video surveillance recorders. A STORM SP8LP-G30 can churn through 32 GMAC/s, which Stream indicates is the sweet spot for H.264 cameras, yet the device has spare processing power sufficient to support analytics.
Stretch's Wares
Back to Stretch's wares. Let's take a closer look at the company's existing S6000 software-configurable processor chip and support tools.
First off, one of these S6000 devices can be completely reconfigured in just 27 µs. That means you could essentially re-use its processing elements, and do that in real time. An application overall code, for example, could take advantage of special instructions that are appropriate for an immediate application, and then the device could be reconfigured to handle other instructions that are appropriate for a different part of an algorithm.
Exploiting Parallelism
The reference design kit compiler also generates resource usage reports that you can use to determine whether additional functions can be added to exploit parallelism in an S6000. Any code that's tagged for compilation to the chip’s ISEF (instruction set extension fabric) is examined by the kit compiler for parallelism. If possible, inner loops are then automatically unrolled, appropriate place-and-route for the S6000 configuration is performed, and connectivity is established for whatever customized function you've dreamed up.
The resource usage reports can be used to determine if you wish to add parallelism functions to the fabric. If so, Extension Instruction timing is then exported to the application compiler, which automatically schedules Extension Instructions, along with regular instructions, in order to optimize execution of your code.
In operation, an S6000 looks at sequences of coded operations that are executed repeatedly, and then attempts to optimize fast custom instructions. An oft-repeated routine in C, for example, could be reduced to a single instruction within the S6000 ISEF. The ISEF is what's configurable, in real time, to adapt to your algorithm. By the way, the ISEF is fed by no fewer than 32 registers, each 128 bit wide!
Math-Intensive Hardware
The S6000 devices, now in their second generation at Stretch, also include dedicated math-intensive hardware. This hardware substitutes for the computation blocks you'd otherwise have to place on a large FPGA.
The chips have 64 kbyte of on-chip RAM and a Tensilica Xtensa LX VLIW (very long instruction word) core, as well as a programmable accelerator core that's tailored for handling the most common multimedia algorithms. The result is that a single S6000 device is claimed to be able to encode one H.264 HD video stream, or four concurrent SD video streams.
In operation, the ISEF lets user-algorithms be instantiated in hardware and called by the processor as single instructions. Conventional accelerators, when implemented within FPGAs, are typically required to host gate-level or net list descriptions of their hardware functions. In contrast, the ISEF, which is tightly coupled to the Tensilica Xtensa LX processor, need only host compute-based and logic functions.
The ISEF also contains over 4000 ALUs (arithmetic logic units). These blocks, processing conventional ALU functions, can be configured to perform 2 x 4 multiplies. They can also be grouped for larger bit widths.
There are also 64 dedicated multipliers in the S6000. These are capable of 8 x 16 operations, and they can also be grouped to increase bit widths. Moreover, distributed state registers can provide local storage for intermediate values and coefficients. Distributed MUXes, priority encoders, and shifters handle connectivity of the processing elements.
Notably, Stretch includes an automated tool flow with this reference design. It helps make the most of the aforementioned parallelism, and you can work in a high-level language such as C or C++. A useful feature is that following compilation and cycle-accurate simulation, you can immediately check video performance.
Software Development Kit
As Stretch’s press release mentions, the so-called Intelligent Encoder SDK (software development kit) should make it possible for you to craft Internet Protocol cameras and DVRs and the like with the ability to adapt bandwidth and disk space based on either observed actions or changes in network and storage capacity.
How well that really works is still an open question. However, the Intelligent Encoder SDK does support variable resolutions, from QCIF (quarter common intermediate format) up to multi-megapixel frames. It also accommodates frame rates from 3 fps (frames/s) to 60 fps. This flexibility is coupled with Stretch's brand of video analytics.
Now analytics is a pretty new business, and I'm not so sure any company pitching first-rate analytics is really telling the truth. Analytics isn't perfected yet. Keep that in mind as you read on.
Actively Manage Bandwidth
Stretch claims its video analytics will permit cameras and recorders to actively manage bandwidth and disk space based on the situations of a scene to ensure minimal consumption of resources during slow or uninteresting scenes. But, the system can automatically increase quality, resolution, and frame rate as needed, and can even change encoding standards on the fly if the integrated video analytics or a network signals a change in conditions.
How does it know how and when to do that? Video analytics looks at a region of interest, uses motion detection, scene-change detection, and blind detection. When any changes occur, the Intelligent Encoder can send an alarm, but it can also adapt its encoding to increase frame rate, resolution, and the quality of the encoding.
Part of this is handled by a set of configurable rules that are usually set by end-users. This supposedly will let camera and recorder OEMs differentiate their products. Of course, a system can also be configured to work at a constant bit-rate, which is likely needed in situations where consumption of resources needs to be predictable.
The factors that determine the amount of bandwidth that cameras need, or the disk space consumption required to record, is dependent on the resolution of the image frame, the frame rate that's encoded, the encoding standard, and the desired quality of the encoding. To address these variables, the Stretch Intelligent Encoder SDK uses a variable resolution, variable frame rate, multi-standard video encoder that supports the MJPEG and H.264 (also called MPEG-4 AVC) standards.
Stretch's Intelligent Encoder SDK also includes an API (application programming interface) that should ease integration with other software, including camera control software, operating systems, and network stacks. It also enables third-party analytics to be integrated to control the Intelligent Encoder SDK.
Extreme Applications
But wait… there's more, especially if you're a glutton for punishment. If extreme performance is required, Stretch says multiple S6000 processors can be used to boost bandwidth.
With microprocessors or DSPs, it's difficult enough to partition an application to extend a system. However, Stretch claims that with the S6000 family Processor Array, inter-chip communication is abstracted, and multiple devices should be able to collaborate in a cohesive integrated development environment. How well that, and analytics, works, is anyone's guess at this point.
Whether it works smoothly or not, Stretch's S6000's Processor Array is supplied with a set of BIOS called PA-BIOS, as well as a physical interface called the AIM (array interface module). The arrays also include a network interface and switch. S6000 Family processors have four AIM ports designed to connect together without glue logic. Each port can move data between devices at over 2.4 Gbyte/s.
The network interface and switch within S6000 devices provides routing between AIM ports or to the internal processor itself. The hardware implementation of the switch ensures that physical, network, and transport layers model are handled without software intervention, letting S6000s be formed into arrays of arbitrary topology, without regard for the underlying communication infrastructure.
The PCIe DVR RDK is available now with pricing starting at $2995 for the evaluation kit, or $38,000 for the full RDK with distribution licenses and design file information. The Stretch S6000 is in production with pricing at $25 for high-volumes
|
|
|
|
|