REAL-TIME VIDEO CODING/DECODING
First Claim
1. A video codec having a modular structure for encoding/decoding a digitized sequence of video frames in a multi-core system, the video codec comprising:
- a memory unit;
a multithreading engine;
a plurality of control modules to control all coding logic and workflow; and
a plurality of task modules to execute tasks assigned by the multithreading engine;
wherein the modules are organized in a tree structure, each module corresponding to a coding operation, the modules share the memory and communicate with each other by control messages, and the multithreading engine initializes tasks, maintains context of each task and assigns at least one of the plurality of task modules to each task for execution, sends and handles messages, provides synchronization and communication.
5 Assignments
0 Petitions
Accused Products
Abstract
A video codec having a modular structure for encoding/decoding a digitized sequence of video frames in a multi-core system is described. The video codec comprises a memory unit; a multithreading engine. and a plurality of control and task modules organized in a tree structure, each module corresponding to a coding operation. The modules communicate with each other by control messages and shared memory. The control modules control all coding logic and workflow, and lower level task modules perform tasks and provide calculations upon receiving messages from the control task modules. The multithreading engine maintains context of each task and assigns at least one core to each task for execution. The method of coding/decoding comprises denoising, core motion estimation, distributed motion estimation, weighted texture prediction and error resilient decoding.
-
Citations
17 Claims
-
1. A video codec having a modular structure for encoding/decoding a digitized sequence of video frames in a multi-core system, the video codec comprising:
-
a memory unit; a multithreading engine; a plurality of control modules to control all coding logic and workflow; and a plurality of task modules to execute tasks assigned by the multithreading engine; wherein the modules are organized in a tree structure, each module corresponding to a coding operation, the modules share the memory and communicate with each other by control messages, and the multithreading engine initializes tasks, maintains context of each task and assigns at least one of the plurality of task modules to each task for execution, sends and handles messages, provides synchronization and communication. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of encoding a digitized sequence of video frames in a multi-core system, the method comprising:
-
performing core motion estimation; and determining weighted texture prediction use from a difference between normalized density functions for luminance histograms of an original frame and of a reference frame; and calculating parameters for weighted texture prediction. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of encoding/decoding a digitized sequence of video frames in a multi-core system, the method comprising:
-
encoding the sequence of video frames by performing core motion estimation and weighted texture prediction; and decoding encoded sequence of video frames using high motion update and low motion update for error resilience, wherein the error resilience comprises; defining each macroblock as a high motion macroblock or a low motion macroblock, defining for each macroblock of a current frame a set of macroblocks including the macroblock of the current frame and at least one macroblock located at the same position in previous frames; and making a choice between INTRA and INTER coding mode for each macroblock of high motion update frame and each macroblock of low motion update frame. - View Dependent Claims (16, 17)
-
Specification