Multithread processing of video frames
First Claim
1. A method for deblock filtering a video frame comprising a plurality of rectangular blocks of pixels, the method comprising:
- partitioning the frame along boundaries of a set of diagonally aligned rectangular blocks into a first group of rectangular blocks and a second group of rectangular blocks, the set of diagonally aligned rectangular blocks spans the frame from one border of the frame to another border of the frame, the first group of rectangular blocks comprising rectangular blocks on a first side of the boundaries of the set of diagonally aligned rectangular blocks, the second group of rectangular blocks comprising all remaining rectangular blocks in the frame that are not in the first group of rectangular blocks; and
filtering the first group of rectangular blocks using a first computing resource while filtering the second group of rectangular blocks using a second computing resource.
0 Assignments
0 Petitions
Accused Products
Abstract
Method for determining frame slice sizes of a frame for multithreaded decoding. The frame is encoded using at least two different slice types based on size where a large-type slice is at least two times larger than a small-type slice and/or the large-type slices comprise 70-90% of the frame. In some embodiments, the number of large-type slices is equal to the number of threads available for decoding and comprise the beginning slices of the frame to be decoded before the small-type slices. Methods for multithreaded deblocking of the frame under the H.264 codec is provided where first and second threads processes first and second sections of the frame in parallel. The first section comprises macroblocks on one side of a diagonal line and the second section comprises the remainder, the diagonal line extending from a first corner of a sub-frame to a second corner of the sub-frame.
-
Citations
29 Claims
-
1. A method for deblock filtering a video frame comprising a plurality of rectangular blocks of pixels, the method comprising:
-
partitioning the frame along boundaries of a set of diagonally aligned rectangular blocks into a first group of rectangular blocks and a second group of rectangular blocks, the set of diagonally aligned rectangular blocks spans the frame from one border of the frame to another border of the frame, the first group of rectangular blocks comprising rectangular blocks on a first side of the boundaries of the set of diagonally aligned rectangular blocks, the second group of rectangular blocks comprising all remaining rectangular blocks in the frame that are not in the first group of rectangular blocks; and filtering the first group of rectangular blocks using a first computing resource while filtering the second group of rectangular blocks using a second computing resource. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer readable medium storing a computer program for execution by at least one processing unit, the computer program for deblock filtering a video frame comprising a plurality of groups of pixels, the computer program comprising sets of instructions for:
-
identifying first and second pluralities of groups of pixels in the frame by partitioning the frame along a diagonal line that spans the frame from one border of the frame to another border of the frame, wherein the groups of pixels in the first plurality of groups of pixels do not depend on any group of pixels in the second plurality of groups of pixels for filtering, wherein a first group of pixels in the second plurality of groups of pixels depends on a second group of pixels in the first plurality of groups of pixels for filtering; and filtering the first plurality of groups of pixels using a first computing resource while filtering the second pluralities of groups of pixels using a second computing resource. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A decoder for decoding a video frame, the decoder comprising:
-
a module for partitioning the frame along boundaries of a set of diagonally aligned rectangular blocks into a first group of rectangular blocks and a second group of rectangular blocks, the set of diagonally aligned rectangular blocks spans the frame from one border of the frame to another border of the frame, the first group of rectangular blocks comprising rectangular blocks on a first side of the boundaries of the set of diagonally aligned rectangular blocks, the second group of rectangular blocks comprising all remaining rectangular blocks in the frame that are not in the first group of rectangular blocks; a first computing resource for deblock filtering the first group of rectangular blocks; and a second computing resource for deblock filtering the second group of rectangular blocks, wherein the first and second computing resources perform deblock filtering of the first and second groups of rectangular blocks in parallel. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A system for deblock filtering a video frame, the system comprising:
-
a module for identifying first and second pluralities of groups of pixels in the frame by partitioning the frame along a diagonal line that spans the frame from one border of the frame to another border of the frame, wherein the groups of pixels in the first plurality of groups of pixels do not depend on any group of pixels in the second plurality of groups of pixels for filtering, wherein a first group of pixels in the second plurality of groups of pixels depends on a second group of pixels in the first plurality of groups of pixels for filtering; and a first computing resource for deblock filtering the first plurality of groups of pixels; and a second computing resource for deblock filtering the second plurality of groups of pixels, wherein the first and second computing resources perform deblock filtering of the first and second pluralities of groups of pixels in parallel. - View Dependent Claims (26, 27, 28, 29)
-
Specification