Region-based refresh strategy for video compression
First Claim
1. A method for compressing frames of a video sequence, comprising the steps of:
- (a) dividing each frame into two or more regions, each region comprising a plurality of macroblocks;
(b) selecting one or more macroblocks in each region to be intra-coded, wherein, for each frame, selection of the one or more macroblocks in each region is independent of selection of the one or more macroblocks in every other region of the frame; and
(c) encoding each frame, wherein the selected macroblocks are intra-coded.
1 Assignment
0 Petitions
Accused Products
Abstract
Frames in a video sequence are divided into two or more regions and a specified number of macroblocks are selected in each region for intra-coding. Depending on the particular implementation, for one or more of the regions, the intra-macroblocks are selected randomly, while at least one other region is dividing into a specified number of slices with the least-recently intra-coded macroblock in each slice selected for intra-coding. When an error is detected at the decoder, the decoder discards data in the corresponding packet and applies a concealment strategy that involves using motion-compensated data if the motion vectors were accurately decoded; otherwise, using non-motion-compensated reference data for the macroblocks affected by the discarding of data. The refresh strategy of the present invention can be used to provide the resulting encoded bitstream with resilience to transmission errors, while maintaining an acceptable degree of video compression.
-
Citations
16 Claims
-
1. A method for compressing frames of a video sequence, comprising the steps of:
-
(a) dividing each frame into two or more regions, each region comprising a plurality of macroblocks;
(b) selecting one or more macroblocks in each region to be intra-coded, wherein, for each frame, selection of the one or more macroblocks in each region is independent of selection of the one or more macroblocks in every other region of the frame; and
(c) encoding each frame, wherein the selected macroblocks are intra-coded. - View Dependent Claims (2, 3, 4, 5, 7, 8, 9, 10, 15)
step (a) comprises the step of dividing each frame into a most-important region, a less-important region, and a least-important region; and
step (b) comprises the steps of;
(1) randomly selecting a first specified number of macroblocks in the least-important region to be intra-coded;
(2) randomly selecting a second specified number of macroblocks in the less-important region to be intra-coded; and
(3) dividing the most-important region into a third specified number of slices and selecting a least-recently intra-coded macroblock in each slice for intra-coding.
-
-
7. The invention of claim 1, wherein, for at least one of the regions, the one or more macroblocks to be intra-coded are selected randomly in the region.
-
8. The invention of claim 1, wherein, for at least one other of the regions, the region is divided into two or more slices, and a least-recently intra-coded macroblock in each slice is selected for intra-coding for each frame.
-
9. The invention of claim 8, wherein a specified selection rule is applied if there are two or more least-recently intra-coded macroblocks in a slice.
-
10. The invention of claim 1, wherein:
-
step (a) comprises the step of dividing each frame into a most-important region, a less-important region, and a least-important region; and
step (b) comprises the steps of;
(1) randomly selecting a first specified number of macroblocks in the least-important region to be intra-coded;
(2) randomly selecting a second specified number of macroblocks in the less-important region to be intra-coded; and
(3) dividing the most-important region into a third specified number of slices and selecting a least-recently intra-coded macroblock in each slice for intra-coding.
-
-
15. The invention of claim 1, wherein each frame is divided into two or more regions based on content of the frame.
-
6. A computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by a processor, cause the processor to implement a method for compressing frames of a video sequence, the method comprising the steps of:
-
(a) dividing each frame into two or more regions, each region comprising a plurality of macroblocks;
(b) selecting one or more macroblocks in each region to be intra-coded, wherein, for each frame, selection of the one or more macroblocks in each region is independent of selection of the one or more macroblocks in every other region of the frame; and
(c) encoding each frame, wherein the selected macroblocks are intra-coded. - View Dependent Claims (16)
-
-
11. A method for decoding a compressed video bitstream, comprising the steps of:
-
(a) receiving the compressed video bitstream, wherein the compressed video bitstream was encoded by;
(1) dividing each frame into two or more regions, each region comprising a plurality of macroblocks;
(2) selecting one or more macroblocks in each region to be intra-coded, wherein, for each frame, selection of the one or more macroblocks in each region is independent of selection of the one or more macroblocks in every other region of the frame; and
(3) encoding each frame, wherein the selected macroblocks are intra-coded; and
(b) decoding the compressed video bitstream, wherein, if an error is detected in a data packet of the compressed video bitstream, then data in the packet are discarded and a concealment strategy is implemented for macroblocks corresponding to the discarded data. - View Dependent Claims (12)
(1) using motion-compensated data for the corresponding macroblocks, if motion vectors are accurately decoded; and
(2) using non-motion-compensated reference data for the corresponding macroblocks, if the motion vectors are not accurately decoded.
-
-
13. A computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by a processor, cause the processor to implement a method for decoding a compressed video bitstream, the method comprising the steps of:
-
(a) receiving the compressed video bitstream, wherein the compressed video bitstream was encoded by;
(1) dividing each frame into two or more regions, each region comprising a plurality of macroblocks;
(2) selecting one or more macroblocks in each region to be intra-coded, wherein, for each frame, selection of the one or more macroblocks in each region is independent of selection of the one or more macroblocks in every other region of the frame; and
(3) encoding each frame, wherein the selected macroblocks are intra-coded; and
(b) decoding the compressed video bitstream, wherein, if an error is detected in a data packet of the compressed video bitstream, then data in the packet are discarded and a concealment strategy is implemented for macroblocks corresponding to the discarded data. - View Dependent Claims (14)
(1) using motion-compensated data for the corresponding macroblocks, if motion vectors are accurately decoded; and
(2) using non-motion-compensated reference data for the corresponding macroblocks, if the motion vectors are not accurately decoded.
-
Specification