A method for detecting a resynchronization marker in an encoded MPEG-4 video bitstream is provided that includes computing a first candidate resynchronization marker length based on a first version of MPEG-4 Visual and the type of a video object plane (VOP) in the video bitstream, computing a second candidate resynchronization marker length based on a second version of MPEG-4 Visual and the type of the VOP, checking the video bitstream for a first valid resynchronization marker bit sequence using the first candidate resynchronization marker length, checking the video bitstream for a second valid resynchronization marker bit sequence using the second candidate resynchronization marker length, and detecting the resynchronization marker when a valid sequence of stuffing bits is present in the video bitstream after the macroblock boundary and either the first valid resynchronization marker bit sequence or the second valid resynchronization marker bit sequence is found in the video bitstream.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of detecting a resynchronization marker in an encoded MPEG-4 video bitstream, the method comprising: at a macroblock boundary between first and second video packets in a video object plane (VOP) in the video bitstream, checking the video bitstream for a valid sequence of stuffing bits, wherein the VOP is a bi-directionally coded type of VOP; based on the VOP being the bi-directionally coded type of VOP, computing a first candidate resynchronization marker length for the second video packet based on a first version of MPEG-4 Visual; based on the VOP being the bi-directionally coded type of VOP, computing a second candidate resynchronization marker length for the second video packet based on a second version of MPEG-4 Visual; in the second video packet, checking the video bitstream for a first valid resynchronization marker bit sequence having the first candidate resynchronization marker length; in the second video packet, checking the video bitstream for a second valid resynchronization marker bit sequence having the second candidate resynchronization marker length; and without an indication of which of the first and second versions of MPEG-4 Visual was used for encoding the video bitstream, detecting the resynchronization marker in the second video packet, in response to detecting: the valid sequence of stuffing bits in the video bitstream; and one of the first and second valid resynchronization marker bit sequences in the second video packet.
2. The method of claim 1 , wherein computing a first candidate resynchronization marker length and computing a second candidate resynchronization marker length are performed in parallel.
3. The method of claim 1 , wherein the first version is version two or version three of MPEG-4 Visual, and the second version is version one of MPEG-4 Visual.
4. The method of claim 1 , wherein: computing a first candidate resynchronization marker length comprises: computing the first candidate resynchronization marker length as eighteen when a value of an fcode is less than three; and computing the first candidate resynchronization marker length as a sum of sixteen plus the value of the fcode when the value of the fcode is greater than or equal to three; and computing a second candidate resynchronization marker length comprises: computing the second candidate resynchronization marker length as a sum of sixteen plus the value of the fcode; wherein the value of the fcode is the larger of vop_fcode_backward and vop_fcode_forward.
5. A video decoder for decoding an encoded MPEG-4 video bitstream, wherein the decoding comprises detecting a resynchronization marker in the encoded MPEG-4 video bitstream, and wherein the detecting comprises: at a macroblock boundary between first and second video packets in a video object plane (VOP) in the video bitstream, checking the video bitstream for a valid sequence of stuffing bits, wherein the VOP is a bi-directionally coded type of VOP; based on the VOP being the bi-directionally coded type of VOP, computing a first candidate resynchronization marker length for the second video packet based on a first version of MPEG-4 Visual; based on the VOP being the bi-directionally coded type of VOP, computing a second candidate resynchronization marker length for the second video packet based on a second version of MPEG-4 Visual; in the second video packet, checking the video bitstream for a first valid resynchronization marker bit sequence having the first candidate resynchronization marker length; in the second video packet, checking the video bitstream for a second valid resynchronization marker bit sequence having the second candidate resynchronization marker length; and without an indication of which of the first and second versions of MPEG-4 Visual was used for encoding the video bitstream, detecting the resynchronization marker in the second video packet, in response to detecting: the valid sequence of stuffing bits in the video bitstream; and one of the first and second valid resynchronization marker bit sequences in the second video packet.
6. The video decoder of claim 5 , wherein computing a first candidate resynchronization marker length and computing a second candidate resynchronization marker length are performed in parallel.
7. The video decoder of claim 5 , wherein the first version is version two or version three of MPEG-4 Visual, and the second version is version one of MPEG-4 Visual.
8. The video decoder of claim 5 , wherein: computing a first candidate resynchronization marker length comprises: computing the first candidate resynchronization marker length as eighteen when a value of an fcode is less than three; and computing the first candidate resynchronization marker length as a sum of sixteen plus the value of the fcode when the value of the fcode is greater than or equal to three; and computing a second candidate resynchronization marker length comprises: computing the second candidate resynchronization marker length as a sum of sixteen plus the value of the fcode; wherein the value of the fcode is the larger of vop_fcode_backward and vop_fcode_forward.
9. A system, comprising: at least one processor; and at least one memory storing instructions executable by the processor for detecting a resynchronization marker in an encoded MPEG-4 video bitstream, wherein the detecting comprises: at a macroblock boundary between first and second video packets in a video object plane (VOP) in the video bitstream, checking the video bitstream for a valid sequence of stuffing bits, wherein the VOP is a bi-directionally coded type of VOP; based on the VOP being the bi-directionally coded type of VOP, computing a first candidate resynchronization marker length for the second video packet based on a first version of MPEG-4 Visual; based on the VOP being the bi-directionally coded type of VOP, computing a second candidate resynchronization marker length for the second video packet based on a second version of MPEG-4 Visual; in the second video packet, checking the video bitstream for a first valid resynchronization marker bit sequence having the first candidate resynchronization marker length; in the second video packet, checking the video bitstream for a second valid resynchronization marker bit sequence having the second candidate resynchronization marker length; and without an indication of which of the first and second versions of MPEG-4 Visual was used for encoding the video bitstream, detecting the resynchronization marker in the second video packet, in response to detecting: the valid sequence of stuffing bits in the video bitstream; and one of the first and second valid resynchronization marker bit sequences in the second video packet.
10. The system of claim 9 , wherein computing a first candidate resynchronization marker length and computing a second candidate resynchronization marker length are performed in parallel.
11. The system of claim 9 , wherein the first version is version two or version three of MPEG-4 Visual, and the second version is version one of MPEG-4 Visual.
12. The system of claim 9 , wherein: computing a first candidate resynchronization marker length comprises: computing the first candidate resynchronization marker length as eighteen when a value of an fcode is less than three; and computing the first candidate resynchronization marker length as a sum of sixteen plus the value of the fcode when the value of the fcode is greater than or equal to three; and computing a second candidate resynchronization marker length comprises: computing the second candidate resynchronization marker length as a sum of sixteen plus the value of the fcode; wherein the value of the fcode is the larger of vop_fcode_backward and vop_fcode_forward.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
June 10, 2009
April 12, 2016
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.