Methods and systems for start code emulation prevention and data stuffing
First Claim
1. In a computing device that implements a media processing system, a method comprising:
- with the computing device that implements the media processing system, stuffing a data payload of encoded media data in a data stream with one or more stuffing bits, including inserting the one or more stuffing bits after the data payload in the stuffed data, wherein the inserting the one or more stuffing bits includes;
inserting a 1-bit after the data payload;
inserting any of zero to seven 0-bits after the 1-bit, wherein number of inserted 0-bits varies depending on number of bits in the data payload, such that the stuffed data consists of an integer number of bytes that ends with a non-zero byte that includes the one or more stuffing bits, and such that the non-zero byte that includes the one or more stuffing bits differs from a first byte of a start code and thereby facilitates start code emulation prevention; and
with the computing device that implements the media processing system, inserting one or more bytes equal to 0x00 after the non-zero byte that ends the stuffed data and before the start code.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems provide approaches to start code emulation prevention at a granularity higher than the bit level. By operating at a level other than the bit level, processing capability requirements on both the encoder and decoder side can be reduced. In accordance with one or more embodiments, a start code emulation prevention method looks for data patterns relative to fixed-size data portions larger than single bits. When a particular pattern is found, start code emulation prevention data is inserted to prevent start code emulation. The inserted data is larger than a single bit and, in some embodiments, comprises a byte. When a decoder decodes data that has had start code emulation prevention data inserted, it can easily identify legitimate start codes and then can remove the start code emulation prevention data to provide the original data that was protected. In addition, a data stuffing method is described which allows payload data to be rounded up in size to an integer number of byte sizes, and then allows filler data to be added in a manner which is easily detectable by a decoder.
52 Citations
20 Claims
-
1. In a computing device that implements a media processing system, a method comprising:
-
with the computing device that implements the media processing system, stuffing a data payload of encoded media data in a data stream with one or more stuffing bits, including inserting the one or more stuffing bits after the data payload in the stuffed data, wherein the inserting the one or more stuffing bits includes; inserting a 1-bit after the data payload; inserting any of zero to seven 0-bits after the 1-bit, wherein number of inserted 0-bits varies depending on number of bits in the data payload, such that the stuffed data consists of an integer number of bytes that ends with a non-zero byte that includes the one or more stuffing bits, and such that the non-zero byte that includes the one or more stuffing bits differs from a first byte of a start code and thereby facilitates start code emulation prevention; and with the computing device that implements the media processing system, inserting one or more bytes equal to 0x00 after the non-zero byte that ends the stuffed data and before the start code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. In a computing device that implements a media processing system, a method comprising:
-
at the computing device that implements the media processing system, receiving stuffed data comprising a data payload and one or more stuffing bits, the data payload including encoded media data; and with the computing device that implements the media processing system, locating the data payload in the stuffed data, including; with the computing device that implements the media processing system, detecting one or more bytes equal to 0x00 that were inserted after a non-zero byte that ends the stuffed data and before a start code that begins a next data payload; and with the computing device that implements the media processing system, searching for the one or more stuffing bits in the stuffed data, the one or more stuffing bits consisting of; a 1-bit that was inserted; and any of zero to seven 0-bits that were inserted after the 1-bit to provide an integer number of bytes in the stuffed data, wherein number of inserted 0-bits varies depending on number of bits in the data payload, wherein the stuffed data consists of the integer number of bytes that ends with the non-zero byte that includes the one or more stuffing bits, and wherein the non-zero byte that includes the one or more stuffing bits differs from a first byte of the start code and thereby facilitates start code emulation prevention. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computing device that implements a media processing system, the computing device comprising:
-
a processor; memory; and storage storing computer-executable instructions for causing the computing device to perform a method comprising; with the computing device that implements the media processing system, stuffing a data payload in a data stream with one or more stuffing bits, including inserting the one or more stuffing bits after the data payload in the stuffed data, wherein the data payload includes encoded media data, and wherein the inserting the one or more stuffing bits includes; inserting a 1-bit after the data payload; and inserting any of zero to seven 0-bits after the 1-bit, wherein number of inserted 0-bits varies depending on number of bits in the data payload, such that the stuffed data consists of an integer number of bytes that ends with a non-zero byte that includes the one or more stuffing bits, and such that the non-zero byte that includes the one or more stuffing bits differs from a first byte of a start code and thereby facilitates start code emulation prevention; and with the computing device that implements the media processing system, inserting one or more bytes equal to 0x00 after the non-zero byte that ends the stuffed data and before the start code. - View Dependent Claims (18, 19, 20)
-
Specification