Video Encoding Block Subdivision for Low-Performance Decoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional video encoding and decoding techniques are inefficient for low-performance devices like PalmOS platforms and low-bandwidth connections, as they require extensive multiplications, leading to slow decoding processes and low frame rates.
Innovation Solution
A method and system that encodes video frames by subdividing them into uniform pixel blocks, comparing changed blocks with previous frames, deleting unchanged blocks, adding a preamble block, and compressing the changed blocks to minimize the encoded frame size, which can be efficiently decoded by low-performance devices over low-bandwidth links.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If conventional video encoding standards (H.261, H.263, MPEG1/2/4) are used, then video quality is maintained, but decoding speed becomes too slow for low-performance devices
Solution Approach 1:
The video frame is divided into uniform pixel blocks that can be independently processed. Changed blocks are identified and separated from unchanged blocks, allowing selective encoding and decoding of only the necessary portions of each frame, thereby reducing computational complexity while maintaining visual quality.
Solution Approach 2:
Unchanged pixel blocks are extracted and deleted from the encoded video frame entirely. Only changed blocks are retained and transmitted, significantly reducing the amount of data that needs to be decoded on low-performance devices while preserving the visual information that has actually changed.
2Ease of operation
If DCT decoding is performed on PalmOS platforms, then video decoding is achieved, but frame rate drops to about 3 frames per second
Solution Approach 1:
Video encoding is performed in advance on a server platform with powerful processing capabilities. All complex encoding operations including block identification, change detection, and compression are completed before transmission, so that the client device only needs to perform simple decoding operations.
Solution Approach 2:
Changed pixel blocks are copied into a contiguous memory block with a simplified structure. This contiguous arrangement eliminates the need for complex random access operations during decoding, making the decoding process much faster and more suitable for low-performance devices.
3Measurement precision
If full screen video frames are encoded with photo quality, then visual fidelity is maintained, but decoding delay increases to at least 1.5 seconds
Solution Approach 1:
Different processing is applied to different regions of the video frame based on whether they have changed. Changed blocks receive full encoding attention to maintain photo quality, while unchanged blocks are simply deleted from the encoded stream, eliminating unnecessary processing and reducing decoding delay.
4Adaptability or versatility
If video is transmitted over wireless networks to palmtop devices, then mobile access is enabled, but bandwidth limitations make conventional encoding inapplicable
Solution Approach 1:
Information about unchanged pixel blocks is discarded during encoding since it can be recovered from the previous frame stored in the decoder's memory. Only the essential changed blocks are transmitted, minimizing data transmission volume over bandwidth-constrained wireless networks while allowing complete reconstruction of the video frame at the receiver.
Data Source
AI summary
A video encoder encodes the video stream frame by frame. An encoding process generally includes receiving a video frame, subdividing the video frame into uniform pixel blocks, comparing a selected pixel block with the corresponding pixel block in a previous decoded video frame to determine which blocks have changed, copying changed pixel blocks into a contiguous memory block, and adding a preamble block, compressing the blocks. This process may be repeated for each frame using a different size pixel block to determine and select a pixel block size that results in the smallest encoded frame.


