Real-time video coding/decoding
First Claim
1. A method of encoding, a digitized sequence of video frames in a multi-core system, the method comprising:
- performing core motion estimation;
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;
wherein the core motion estimation comprises;
dividing a current video frame and a reference video frame into blocks of pixels;
defining in the current frame an initial block B(F, XINIT, YINIT) with coordinates XINIT, YINIT;
selecting in the reference frame a plurality of N candidate blocks with coordinates (Xj, Yj) where j=0, 1 . . . N, using a predetermined criterion; and
performing core motion estimation for the current frame based on similarity between pixels of a block of the current frame and pixels of blocks of the reference frame;
wherein the motion estimation comprises;
calculating values of a function of distortion Q(F, R, Xj, Yj) for all N candidate blocks; and
comparing minimum values of Q(F, R, Xj, Yj) with predetermined thresholds to find coordinates for motion estimation Xj=XMIN, Yj=YMIN from the function of distortion having a lowest value;
QMIN=Q(F, R, XMIN, YMIN).
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.
150 Citations
7 Claims
-
1. A method of encoding, a digitized sequence of video frames in a multi-core system, the method comprising:
-
performing core motion estimation; 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; wherein the core motion estimation comprises; dividing a current video frame and a reference video frame into blocks of pixels; defining in the current frame an initial block B(F, XINIT, YINIT) with coordinates XINIT, YINIT; selecting in the reference frame a plurality of N candidate blocks with coordinates (Xj, Yj) where j=0, 1 . . . N, using a predetermined criterion; and performing core motion estimation for the current frame based on similarity between pixels of a block of the current frame and pixels of blocks of the reference frame; wherein the motion estimation comprises; calculating values of a function of distortion Q(F, R, Xj, Yj) for all N candidate blocks; and comparing minimum values of Q(F, R, Xj, Yj) with predetermined thresholds to find coordinates for motion estimation Xj=XMIN, Yj=YMIN from the function of distortion having a lowest value;
QMIN=Q(F, R, XMIN, YMIN).- View Dependent Claims (2, 3)
-
-
4. A method of encoding a digitized sequence of video frames in a multi-core system, the method comprising:
-
performing core motion estimation; 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; wherein the weighted texture prediction comprises; performing estimate for normalized density functions for histogram Ho of the original frame and histogram Hr of the reference frame; comparing the difference between the density function for Ho and the density function Hr with a predetermined threshold, and determining that the weighted prediction is to be applied if the difference is less than the threshold; and calculating weighted prediction parameters A and B for at least one block of pixels P(x, y);
A*L(x+mx,y+my)+B;
A=So/Sr; and
B=Mo−
A*Mr;
where L(x, y) is luminance of the reference frame; (mx, my) is motion vector for the block P(x, y); So is deviation for the original frame; Sr is deviation for the reference frame; Mo is mean value for the original frame; and Mr is mean value for the reference frame.
-
-
5. A method of encoding a digitized sequence of video frames in a multi-core system, the method comprising:
-
performing core motion estimation; 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; wherein the method further comprises the step of; pre-processing temporal denoising, including; providing motion estimation by creating a texture prediction frame for a current frame from a previous frame and a corresponding motion vector; performing deblocking of the prediction frame; and modifying the current frame based on at least one pixel of the current frame and at least one pixel of the prediction frame;
I=I+sign(I−
P)·
F(abs(I−
P)),where; I is the pixel of the current frame, P is same position pixel of the prediction frame after deblocking, abs is the absolute value function, sign is a sign function (sign(x)=−
1, if x<
0, sign(x)=0, if x=0, and sign(x)=1, if x>
0), andF is a discrete time function. - View Dependent Claims (6, 7)
-
Specification