METHOD AND SYSTEM FOR PARALLEL ENCODING OF A VIDEO
First Claim
1. A method for encoding a video, comprising:
- (a) encoding two successive input frames of the video, a preceding input frame and a succeeding input frame, comprising;
(a1) dividing the preceding input frame into slices, each slice characterizing a spatial region within the preceding input frame;
(a2) dividing the succeeding input frame into slices, each slice characterizing a spatial region within the succeeding input frame;
(a3) processing one or more slices in the preceding input frame by one or more cores in a multi-core processor or by one or more hardware processors;
(a4) processing a slice in the succeeding input frame provided;
(i) at least one of said one or more cores in the multi-core processor or said one or more hardware processors is available for processing; and
(ii) the processing of a slice from said one or more slices at same physical location in the preceding input frame has been completed;
wherein the steps (a3) and (a4) are performed at least partially in parallel.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and system for parallel encoding of frames in a video are described, exploiting parallel processing at both frame and slice levels. One or more slices are processed in a preceding frame by one or more cores in a multi-core processor, and a slice is processed in a succeeding frame provided at least one of said one or more cores in the multi-core processor is available for processing; and the processing of a slice from said one or more slices at same physical location in the preceding input frame has been completed, the processing of frames and slices in the preceding and succeeding frames being performed at least partially in parallel. A significant speedup in comparison to the sequential encoding approach is achieved while maintaining high visual quality for the output video. A corresponding system for parallel encoding of a video is also provided.
89 Citations
35 Claims
-
1. A method for encoding a video, comprising:
(a) encoding two successive input frames of the video, a preceding input frame and a succeeding input frame, comprising; (a1) dividing the preceding input frame into slices, each slice characterizing a spatial region within the preceding input frame; (a2) dividing the succeeding input frame into slices, each slice characterizing a spatial region within the succeeding input frame; (a3) processing one or more slices in the preceding input frame by one or more cores in a multi-core processor or by one or more hardware processors; (a4) processing a slice in the succeeding input frame provided; (i) at least one of said one or more cores in the multi-core processor or said one or more hardware processors is available for processing; and (ii) the processing of a slice from said one or more slices at same physical location in the preceding input frame has been completed; wherein the steps (a3) and (a4) are performed at least partially in parallel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
18. A non-transitory computer readable storage medium, having a computer readable program code instructions stored thereon, which, when executed by a processor, perform the following:
(a) encoding two successive input frames of the video, a preceding input frame and a succeeding input frame, comprising; (a1) dividing the preceding input frame into slices, each slice characterizing a spatial region within the preceding input frame; (a2) dividing the succeeding input frame into slices, each slice characterizing a spatial region within the succeeding input frame; (a3) processing one or more slices in the preceding input frame by one or more cores in a multi-core processor or by one or more hardware processors; (a4) processing a slice in the succeeding input frame provided; (i) at least one of said one or more cores in the multi-core processor or said one or more hardware processors is available for processing; and (ii) the processing of a slice from said one or more slices at same physical location in the preceding input frame has been completed; wherein the computer readable instructions cause the processor to process said one or more slices in the preceding frame and said slice in the succeeding frame at least partially in parallel.
-
19. A computerized system for encoding a video comprising:
a processor, and a non-transitory computer readable storage medium having computer readable instructions stored thereon for execution by the processor, forming; (a) an encoding unit encoding two successive input frames of the video, a preceding input frame and a succeeding input frame, the encoding unit comprising; (a1) a slicer module dividing the preceding input frame into slices characterizing respective spatial regions within the preceding input frame, and the succeeding input frame into slices characterizing respective spatial regions within the succeeding input frame; (a2) a slice processing module, processing one or more slices in the preceding input frame and one or more slices in the succeeding input frame, by one or more cores in a multi-core processor or by one or more hardware processors, provided; (i) at least one of said one or more cores in the multi-core processor or said one or more hardware processors is available for processing; and (ii) the processing of a slice from said one or more slices at same physical location in the preceding input frame has been completed; wherein the slice processing module (a2) is configured to process said one or more slices in the preceding input frame and said one or more slices in the succeeding input frame at least partially in parallel. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
Specification