Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions
First Claim
Patent Images
1. A method comprising:
- searching for at least one pattern of fixed-size data portions within data that is intended for encoding in an environment using start codes, individual fixed-size data portions comprising at least two bits;
responsive to finding one or more patterns, inserting start code emulation prevention data relative to the data that contains the pattern; and
wherein said searching and said inserting are designed to prevent emulation at one or more location that does not start at a data boundary.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems provide approaches to start code emulation prevention at a granularity higher than the bit level. In various embodiments, start code emulation prevention can occur at locations other than data boundaries such as byte boundaries and the like. These embodiments can be used in connection with systems that do not always preserve data alignment boundaries in the data that is processed. In some systems, the described techniques can provide a basis from which decoder systems can recover in the event that data boundaries are lost.
-
Citations
121 Claims
-
1. A method comprising:
-
searching for at least one pattern of fixed-size data portions within data that is intended for encoding in an environment using start codes, individual fixed-size data portions comprising at least two bits;
responsive to finding one or more patterns, inserting start code emulation prevention data relative to the data that contains the pattern; and
wherein said searching and said inserting are designed to prevent emulation at one or more location that does not start at a data boundary. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. One or more computer-readable media embodying an encoder that is configured to perform a method comprising:
-
searching for at least one pattern of fixed-size data portions within data that is intended for encoding in an environment using start codes, individual fixed-size data portions comprising at least two bits;
responsive to finding one or more patterns, inserting start code emulation prevention data relative to the data that contains the pattern; and
wherein said searching and said inserting are designed to prevent emulation at one or more location that does not start at a data boundary.
-
-
17. One or more computer-readable media embodying instructions which, when executed by one or more processors, cause the one or more processors to perform a method comprising:
-
searching for at least one pattern of fixed-size data portions within data that is intended for encoding in an environment using start codes, individual fixed-size data portions comprising at least two bits;
responsive to finding one or more patterns, inserting start code emulation prevention data relative to the data that contains the pattern; and
wherein said searching and said inserting are designed to prevent emulation at one or more location that does not start at a data boundary. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A method comprising:
-
searching for at least one byte-level pattern within data that is intended for encoding in an environment using start codes, the pattern being defined by multiple bytes;
responsive to finding one or more patterns, inserting start code emulation prevention data relative to the data that contains the pattern; and
wherein said searching and said inserting are designed to prevent emulation at one or more location that does not start at a byte boundary. - View Dependent Claims (32, 33, 34, 35, 36, 37)
-
-
38. One or more computer-readable media embodying an encoder that is configured to perform a method comprising:
-
searching for at least one byte-level pattern within data that is intended for encoding in an environment using start codes, the pattern being defined by multiple bytes;
responsive to finding one or more patterns, inserting start code emulation prevention data relative to the data that contains the pattern; and
wherein said searching and said inserting are designed to prevent emulation at one or more location that does not start at a byte boundary.
-
-
39. One or more computer-readable media embodying instructions which, when executed by one or more processors, cause the one or more processors to perform a method comprising:
-
searching for at least one byte-level pattern within data that is intended for encoding in an environment using start codes, the pattern being defined by multiple bytes;
responsive to finding one or more patterns, inserting start code emulation prevention data relative to the data that contains the pattern; and
wherein said searching and said inserting are designed to prevent emulation at one or more location that does not start at a byte boundary.
-
-
40. A method comprising:
-
receiving data that has been encoded with start code emulation prevention data to prevent emulation of one or more start codes at locations that include those that do not start at a data boundary, individual instances of the start code emulation prevention data comprising multiple bits;
searching for legitimate start codes within the decoded data;
searching the received data to identify start code emulation prevention data; and
responsive to finding the start code emulation prevention data, removing the start code emulation prevention data. - View Dependent Claims (41, 42, 43, 44, 45)
-
-
46. One or more computer-readable media embodying a decoder that is configured to:
-
receive data that has been encoded with start code emulation prevention data to prevent emulation of one or more start codes at locations that include those that do not start at a data boundary, individual instances of the start code emulation prevention data comprising multiple bits;
search for legitimate start codes within the received data;
search the received data to identify start code emulation prevention data; and
responsive to finding the start code emulation prevention data, remove the start code emulation prevention data.
-
-
47. A method comprising:
-
receiving data that has been encoded with start code emulation prevention data to prevent emulation of start codes, individual instances of the start code emulation prevention data comprising one or more bytes, at least one instance of the start code emulation prevention data being designed to prevent emulation of a start code that is starting at a location that is not a byte boundary;
searching for legitimate start codes within the received data;
searching the received data to identify start code emulation prevention data;
responsive to finding the start code emulation prevention data, removing the start code emulation prevention data. - View Dependent Claims (48, 49, 50, 51)
-
-
52. A decoder configured to:
-
receive data that has been encoded with start code emulation prevention data to prevent emulation of start codes, individual instances of the start code emulation prevention data comprising one or more bytes, at least one instance of the start code emulation prevention data being designed to prevent emulation of a start code that is starting at a location that is not a byte boundary;
search for legitimate start codes within the received data;
search the received data to identify start code emulation prevention data; and
responsive to finding the start code emulation prevention data, remove the start code emulation prevention data. - View Dependent Claims (53)
-
-
54. A method comprising:
-
shifting at least a portion of a start code multiple times relative to one or more data boundaries;
identifying one or more characteristic pattern within the start code portion such that at least one of the characteristic patterns occurs for every shifted position relative to at least one data boundary; and
using the characteristic pattern(s) as a search pattern for conducting start code emulation prevention data insertion to prevent start code emulation at non-data-boundary-aligned locations. - View Dependent Claims (55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65)
-
-
66. A method comprising:
-
searching for one or more a first patterns within a data stream, the one or more first patterns being characterized as matching only a portion of a start code prefix at locations in the data stream that include at least one location that is not at the start of a data boundary;
responsive to finding one of the one or more first patterns, replacing the first pattern with a first replacement pattern effective to prevent emulation of the value of one or more start codes;
searching for one or more second patterns within the data stream, the one or more second patterns being characterized as matching only a portion of a start code that has been processed to prevent start code emulation;
responsive to finding one of the one or more second patterns, replacing the second pattern with a second replacement pattern effective to prevent emulation of a start code emulation prevention pattern. - View Dependent Claims (67, 68, 69, 70, 71, 72, 73, 74)
-
-
75. A method comprising:
-
receiving data that has been processed to contain start code emulation prevention data to prevent emulation of start codes, the data being in a format equivalent to the processing of data to be transmitted in an environment using start codes that has been processed in accordance with a rule that;
searches for one or more first pattern within a data stream, the one or more first pattern being characterized as matching only a portion of a start code at locations in the data stream that include at least one location that is not at the start of a data boundary;
responsive to finding one of the one or more first pattern, replaces the first pattern with a first replacement pattern effective to prevent emulation of the value of one or more start codes;
searches for one or more second pattern within the data stream, the one or more second pattern being characterized as matching only a portion of a start code that has been processed to prevent start code emulation; and
responsive to finding one of the one or more the second pattern, replaces the second pattern with a second replacement pattern effective to prevent emulation of the first replacement pattern;
searching for legitimate start codes within the received data;
searching the received data to identify start code emulation prevention data; and
responsive to finding start code emulation prevention data, removing the start code emulation prevention data. - View Dependent Claims (76, 77, 78, 79, 80, 81)
-
- 82. A method comprising processing a data stream that is intended for encoding in an environment using start codes in a manner that is effective to prevent start code emulation at one or more bit-shifted positions by searching for and manipulating only byte-level patterns.
-
86. A method comprising:
-
receiving a data stream;
processing the data stream effective to;
provide start codes having different lengths;
prevent bit-shifted emulation of start codes having longer lengths; and
prevent only data-boundary-aligned emulation of start codes having shorter lengths. - View Dependent Claims (87, 88, 89, 90, 91)
-
-
92. A method comprising:
-
searching for one or more first pattern within a data stream, the one or more first pattern being characterized as matching at least a portion of a start code associated with a first start code having a first length;
responsive to finding the one or more first pattern, replacing the one or more first pattern with a first replacement pattern effective to prevent start code emulation of the first start code at byte-aligned positions;
searching for one or more second pattern within the data stream, the one or more second pattern being characterized as matching only a portion of a second start code associated with a second start code having a second length that is longer than the first length;
responsive to finding the one or more second pattern, replacing the second pattern with a second replacement pattern effective to prevent start code emulation of the second start code at non-byte aligned positions;
searching for one or more third pattern within the data stream, the one or more third pattern being characterized as matching data that has been processed to prevent start code emulation; and
responsive to finding the one or more third pattern, replacing the one or more third pattern with a third replacement pattern effective to distinguish between data that has been processed to prevent start code emulation and data that naturally happens to resemble data that has been processed to prevent start code emulation. - View Dependent Claims (93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107)
-
-
108. A method comprising:
-
receiving data that has been processed to contain start code emulation prevention data to prevent emulation of start codes, the encoded data being in a format equivalent to the processing of data to be transmitted in an environment using start codes that has been processed in accordance with a rule that;
searches for one or more first pattern within a data stream, the one or more first pattern being characterized as matching at least a portion of a start code associated with a first start code having a first length;
responsive to finding the one or more first pattern, replaces the first pattern with a first replacement pattern effective to prevent start code emulation of the first start code at byte-aligned positions;
searches for one or more second pattern within the data stream, the one or more second pattern being characterized as matching only a portion of a second start code associated with a second start code having a second length that is longer than the first length;
responsive to finding the one or more second pattern, replaces the one or more second pattern with a second replacement pattern effective to prevent start code emulation of the second start code at non-byte aligned positions;
searches for one or more third pattern within the data stream, the one or more third pattern being characterized as matching data that has been processed to prevent start code emulation;
responsive to finding the one or more third pattern, replaces the one or more third pattern with a third replacement pattern effective to distinguish between data that has been processed to prevent start code emulation and data that naturally happens to resemble data that has been processed to prevent start code emulation;
searching for legitimate start codes within the received data;
searching the received data to identify start code emulation prevention data; and
responsive to finding start code emulation prevention data, removing the start code emulation prevention data. - View Dependent Claims (109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119)
-
-
120. A method comprising:
-
searching for a pattern within a data stream, the pattern being characterized as matching (a) a portion of a start code, and (b) at least a portion of multiple replacement patterns for other respective patterns;
responsive to finding the pattern that is searched for, replacing the searched-for pattern with a replacement pattern effective to prevent start code emulation for all shifted positions.
-
-
121. A method comprising:
-
searching for a pattern within a data stream, the pattern being characterized as matching (a) a portion of a start code prefix, and (b) at least a portion of multiple replacement patterns for other respective patterns;
responsive to finding the pattern that is searched for, replacing the searched-for pattern with a replacement pattern effective to prevent start code emulation for all shifted positions.
-
Specification