Due to the large size of digital video data some form of compression is typically performed on digital video before it is transmitted across a network. One video compression technique that may be used is motion compensation-based compression which only transmits the difference between the video frame being encoded and a reference frame. Motion compensation compression exploits inter-frame redundancy. In particular, often, the only difference between sequential frames is a result of the camera moving or an object moving within the frame. This means that most of the information that describes one frame is the same as the information that describes the following frame.
However, network errors may mean that the receiver is unable to decode certain parts of an encoded video frame (i.e. because there is an error in the received information or because the receiver did not receive part of the encoded video) resulting in missing data which manifests itself as a visual artifact in the video. Since subsequent frames are dependent on previous frames any error or visual artifact in a particular frame propagates to subsequent frames. This has a cascading effect which causes a growing visual artifact in the video.
One way to mitigate the propagation of such errors or artifacts has been to introduce an intra-coded frame (i.e. a frame encoded using information contained only within the frame being encoded) upon determining an error has occurred. However, this technique does not achieve as high a compression ratio as inter-coding techniques (i.e. coding techniques, such as motion compensation-based compression techniques, that use information from another frame to code a frame) since such intra-coded frames use up a large amount of bandwidth in a non-uniform manner.
Another way to mitigate the propagation of such errors or artifacts has been to intra-code a portion (e.g. one or more blocks) of each frame. Different portions (e.g. blocks) of the frame are cyclically chosen over a sequence of frames. This technique more evenly distributes the additional data over time. However, since the intra-coded blocks may be derived spatially from neighboring inter-coded blocks of the same frame the effectiveness of this technique decreases due to the existing propagated error.
Accordingly, known techniques for mitigating error propagation increase the data transmitted between the encoder and decoder in either a uniform or non-uniform manner.
The embodiments described below are not limited to implementations which solve any or all of the disadvantages of known video compression techniques.