Video decoder error handling
First Claim
1. A video decoding method comprising:
- determining a start of a current unit of encoded video data;
decoding at least a portion of the current unit without determining a start of a next available unit of the encoded video data;
detecting a decoding error in the current unit;
when the decoding error is detected, determining the start of the next available unit of the encoded video data;
determining an end of a corrupted data segment based on the start of the next available unit, wherein the current unit is a current slice of a first frame, and the corrupted data segment includes the current slice and at least one additional slice of encoded video data from a second frame; and
concealing the corrupted data segment based on the start of the current unit and the end of the corrupted data segment.
1 Assignment
0 Petitions
Accused Products
Abstract
A video decoder performs a sequential error handling process to detect and conceal errors within a corrupted data segment of video data units. The decoder sequentially decodes a current data unit. Upon detecting an error, the decoder sets an error flag and resynchronizes decoding at the start of the next unit. If the error flag is set, the video decoder identifies the end of the corrupted data segment based on the start of the later unit. The decoder conceals data between the start of the current unit and the end of the corrupted data segment. If the error flag is not set, the decoder may decode the remainder of the current unit and proceed to decode the next available unit without performing error handling and concealment for the current unit. The decoder also may address reference unit mismatches caused by lost video data units.
31 Citations
47 Claims
-
1. A video decoding method comprising:
-
determining a start of a current unit of encoded video data; decoding at least a portion of the current unit without determining a start of a next available unit of the encoded video data; detecting a decoding error in the current unit; when the decoding error is detected, determining the start of the next available unit of the encoded video data; determining an end of a corrupted data segment based on the start of the next available unit, wherein the current unit is a current slice of a first frame, and the corrupted data segment includes the current slice and at least one additional slice of encoded video data from a second frame; and concealing the corrupted data segment based on the start of the current unit and the end of the corrupted data segment. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A video decoding device comprising:
-
means for determining a start of a current unit of encoded video data; means for decoding at least a portion of the current unit without detecting a start of a next available unit of the encoded video data; means for detecting a decoding error in the current unit; means for determining, when the decoding error is detected, the start of the next available unit of the encoded video data; means for determining, an end of a corrupted data segment based on the start of the next available unit, wherein the current unit is a current slice of a first frame, and the corrupted data segment includes the current slice and at least one additional slice of encoded video data from a second frame; and means for concealing the corrupted data segment based on the start of the current unit and the end of the corrupted data segment. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A video decoding device comprising:
-
a decoding engine that decodes at least a portion of a current unit of encoded video data before a start of a next available unit of the encoded video data is determined; an error detection module that detects a decoding error in the current unit; an error mapping module that determines a start of the current unit, determines, when the decoding error is detected, the start of the next available unit of the encoded video data and, determines an end of a corrupted data segment based on the start of the next available unit, wherein the current unit is a current slice of a first frame, and the corrupted data segment includes the current slice and at least one additional slice of encoded video data from a second frame; and an error concealment module that conceals the corrupted data segment based on the start of the current unit and the end of the corrupted data segment. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A non-transitory computer-readable medium comprising instructions to cause one or more processors to:
-
determine a start of a current unit of encoded video data; decode at least a portion of the current unit without determining an end of a next available unit of the encoded video data; detect a decoding error in the current unit; when the decoding error is detected, determine the start of the next available unit of the encoded video data; determine an end of a corrupted data segment based on the start of the next available unit, wherein the current unit is a current slice of a first frame, and the corrupted data segment includes the current slice and at least one additional slice of encoded video data from a second frame; and conceal the corrupted data segment based on the start of the current unit and the end of the corrupted data segment. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43, 45, 46)
-
-
44. The non-transitory computer-readable medium of 43, wherein the instructions cause the one or more processors to determine a third MB number associated with the start of the second unit, and subtract one from the third MB number to produce the second MB number.
-
47. An apparatus comprising:
a processor configured to determine a start of a current unit of encoded video data, decode at least a portion of the current unit without determining an end of a next available unit of the encoded video data, detect a decoding error in the current unit, when the decoding error is detected, determine the start of the next available unit of the encoded video data, determine an end of a corrupted data segment based on the start of the next available unit, wherein the current unit is a current slice of a first frame, and the corrupted data segment includes the current slice and at least one additional slice of encoded video data from a second frame, and conceal the corrupted data segment based on the start of the current unit and the end of the corrupted data segment.
Specification