Intelligent error resilient video encoder
First Claim
1. An apparatus for compressing video data with an improved tolerance to error, said video data being divided into a plurality of successive frames, where each of said frames is divided into a plurality of macroblocks, and each of the macroblocks is encoded as either an intra-coded macroblock or as an inter-coded macroblock, an intra-coded macroblock having no dependency upon any coded macroblock in an earlier frame and an inter-coded macroblock having a dependency upon a coded macroblock in an earlier frame, said apparatus comprising:
- a. a first encoder stage for comparing macroblocks of different frames to generate motion vectors for said macroblocks;
b. a second encoder stage for receiving said motion vectors and generating therefrom for each macroblock of any particular frame a dependency count indicating how many other macroblocks depend upon said each macroblock in frames subsequent to said each macroblock, each said macroblock that has a dependency count which equals or exceeds a threshold count being selected by said second encoder stage as a macroblock to be intra-coded; and
c. a third encoder stage for compressing said video data by intra-coding macroblocks selected by said second encoder stage and inter-coding macroblocks not selected by said second encoder stage.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for compressing video data to improve its tolerance to error, especially with a low bit rate network. With this invention video data is divided into a number of frames and each frame is divided into a number of macroblocks. A dependency count is assigned to each macroblock, and if the dependency count for the macroblock exceeds or is equal to a threshold, the dependency block is intra-coded using low bit rate coding algorithm. If the dependency count is below the threshold, the macroblock is inter-coded.
68 Citations
19 Claims
-
1. An apparatus for compressing video data with an improved tolerance to error, said video data being divided into a plurality of successive frames, where each of said frames is divided into a plurality of macroblocks, and each of the macroblocks is encoded as either an intra-coded macroblock or as an inter-coded macroblock, an intra-coded macroblock having no dependency upon any coded macroblock in an earlier frame and an inter-coded macroblock having a dependency upon a coded macroblock in an earlier frame, said apparatus comprising:
-
a. a first encoder stage for comparing macroblocks of different frames to generate motion vectors for said macroblocks; b. a second encoder stage for receiving said motion vectors and generating therefrom for each macroblock of any particular frame a dependency count indicating how many other macroblocks depend upon said each macroblock in frames subsequent to said each macroblock, each said macroblock that has a dependency count which equals or exceeds a threshold count being selected by said second encoder stage as a macroblock to be intra-coded; and c. a third encoder stage for compressing said video data by intra-coding macroblocks selected by said second encoder stage and inter-coding macroblocks not selected by said second encoder stage.
-
-
2. In an encoding method in which successive frames of a video data stream are divided into blocks and each of the blocks is encoded as either an intra-coded block or as an inter-coded block, an intra-coded block having no dependency upon any coded block in an earlier frame and an inter-coded block having a dependency upon a coded block in a different frame, a method of selecting blocks in the video data stream to be encoded as intra-coded blocks, comprising the steps of:
-
determining for each of the blocks in any particular frame, a dependency count indicating how many other blocks depend upon said each block in frames subsequent to said any particular frame; selecting for intra-coding, at least blocks in said any particular frame having the highest dependency counts; and selecting for inter-coding, at least blocks in said any particular frame having the lowest dependency counts. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. Improved encoding apparatus in which successive frames of a video data stream are divided into blocks and each of the blocks is encoded as either an intra-coded block or as an inter-coded block, an intra-coded block having no dependency upon any coded block in an earlier frame and an inter-coded block having a dependency upon a coded block in a different frame, the improvement wherein the blocks that are intra-coded are selected so as to reduce block dependency and improve tolerance to error, comprising:
-
means for determining for each of the blocks in any particular frame, a dependency count indicating how many other blocks depend upon said each block in frames subsequent to said any particular frame; means for selecting for intra-coding, at least blocks in said any particular frame having the highest dependency counts; and means for selecting for inter-coding, at least blocks in said any particular frame having the lowest dependency counts. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
Specification