Dual Decoder Architecture for Offspeed Video Playback
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Long GOP compressed motion video information poses challenges for editing systems, particularly in off-speed playback operations like reverse, fast forward, and single frame playback, due to the complexity of random access and processing requirements.
Innovation Solution
An editing system employs a dual-decoder architecture, with a streaming decoder for full-speed playback and a single-frame, stateless decoder for off-speed playback, utilizing a cache to store uncompressed reference frames and a frame ring data structure for efficient decompression and random access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a single streaming decoder is used for long GOP compressed video playback, then full-speed continuous playback is achieved, but off-speed playback operations (reverse, fast forward, single frame) require significant processing complexity due to random access requirements
Solution Approach 1:
The system segments the playback function into two separate decoders: a streaming decoder for full-speed continuous playback and a random access decoder for off-speed playback operations. This segmentation allows each decoder to be optimized for its specific function, reducing the processing complexity burden on a single decoder while maintaining ease of operation for both playback modes.
Solution Approach 2:
The random access decoder is designed to handle multiple off-speed playback operations (reverse playback, fast forward, single frame access, jogging, shuttling, scrubbing, trimming) through a unified random access mechanism. This multi-functionality approach simplifies the user interface and operation while the underlying decoder handles the complexity of random access to compressed data.
2Adaptability or versatility
If random access of individual frames is performed during off-speed playback, then editing operations (scrubbing, trimming, jogging) are enabled, but significant processing is required because most frames require compressed data from multiple frames to be decompressed
Solution Approach 1:
The system performs preliminary decompression of reference frames (I-frames and P-frames) and stores them in an uncompressed frame buffer before they are needed for random access operations. When a B-frame or P-frame requires random access, its reference frames are already available in uncompressed form, eliminating the need for real-time decompression during off-speed playback and significantly reducing processing power requirements.
Solution Approach 2:
An uncompressed frame buffer acts as an intermediary between the compressed video data and the random access decoder. This buffer stores decompressed reference frames in advance, allowing the random access decoder to quickly retrieve uncompressed frames without performing complex decompression operations during off-speed playback, thus reducing processing power demands.
3Productivity
If reference frames are decompressed and stored in cache before decompression of B-frames or P-frames, then decompression efficiency is improved, but additional memory resources are required
Solution Approach 1:
Reference frames are decompressed and stored in the uncompressed frame buffer in advance of when they are needed for random access operations. This preliminary action improves decompression efficiency during off-speed playback by having reference frames ready in uncompressed form, while the memory resources are allocated specifically for this purpose rather than requiring general-purpose memory during playback.
Data Source
AI summary
An editing system handles offspeed and full speed playback of long GOP compressed video information by having one decoder for full-speed or slower forward playback of long GOP compressed motion video information, and a second single-frame, stateless decoder for use for off-speed playback. When compressed data is read from a file, the compressed data for at least one complete group of pictures is read into a buffer, herein called a compressed data buffer. A data structure, herein called a frame ring, is constructed to describe each image in the compressed data buffer. The single-frame, stateless decoder receives decompression parameters in addition to the compressed data for each image from this buffer. If the compressed data is a B-frame or P-frame, then uncompressed data for any other images (i.e., reference frames) required by the decoder to decompress the frame also is input to the single-frame, stateless decoder. If the uncompressed data for the reference frames is not already in a cache, these reference frames are decompressed and the uncompressed data for the reference frames as used by the decoder is stored in the cache prior to the decompression of the B-frame or P-frame.


