Claims (9)
1. Способ упаковки кодированных аудио/видео данных в поток данных с возможностью произвольного доступа, содержащий стадии1. A method of packaging encoded audio / video data into a random access data stream comprising the steps of
a) создания кодированных аудио/видео данных посредством использования произвольного способа кодирования;a) creating encoded audio / video data by using an arbitrary encoding method;
b) разделения кодированных аудио/видео данных на несколько сегментов данных на основе случайных точек доступа для каждого из сегментов данных с повторением следующих стадий с) и d), пока все данные не будут записаны в поток данных;b) dividing the encoded audio / video data into several data segments based on random access points for each of the data segments, repeating the following steps c) and d) until all data has been written to the data stream;
c) записи цепочки двоичных разрядов кода флага точки произвольного доступа, а именно 0×000001 в поток данных;c) writing a string of binary bits of the flag code of the random access point, namely 0 × 000001 to the data stream;
d) записи каждого бита кодированных данных последовательно в поток данных; определения, являются ли только что записанные 22 бита все «0», если записываемый в настоящее время бит является вторым от конца битом байта; если 22 бита все «0», то записи наполнительного бита перед записью текущего бита данных; записи текущего бита данных после записи наполнительного бита; в противном случае записи непосредственно текущего бита данных.d) writing each bit of encoded data sequentially to the data stream; determining whether the just recorded 22 bits are all “0” if the currently recorded bit is the second byte from the end of the bit; if 22 bits are all “0”, then fill bit records before writing the current data bit; recording the current data bit after filling bit recording; otherwise write directly to the current bit of data.
2. Способ по п.1, при этом, когда требуется выравнивание байтов, то способ дополнительно содержит2. The method according to claim 1, wherein, when byte alignment is required, the method further comprises
e) по окончании записи сегмента данных, запись одного «0» и нескольких «1» в поток данных посредством использования сущности стадии d), пока не будет достигнуто выравнивание положения следующего байта.e) upon completion of writing the data segment, writing one “0” and several “1” to the data stream by using the essence of stage d) until the alignment of the position of the next byte is achieved.
3. Способ по п.1, в котором указанный бит включает одну «1» и один «0», то есть, если записываемый бит является вторым от конца битом байта и записанные только что 22 бита все «0», то записывают одну «1» и один «0» перед записью текущего бита данных.3. The method according to claim 1, in which the specified bit includes one "1" and one "0", that is, if the recorded bit is the second byte from the end of the byte and the just written 22 bits are all "0", then write one " 1 ”and one“ 0 ”before writing the current data bit.
4. Способ по п.1, в котором не вставляют дополнительные биты при записи кода флага точки произвольного доступа в поток данных.4. The method according to claim 1, in which additional bits are not inserted when writing the flag code of the random access point into the data stream.
5. Способ по п.1, в котором способ дополнительно содержит запись только что записанных 22 битов потока данных.5. The method according to claim 1, in which the method further comprises recording the just recorded 22 bits of the data stream.
6. Способ извлечения данных из потока данных с возможностью произвольного доступа, содержащий стадии:6. A method of extracting data from a random access data stream, comprising the steps of:
а′) поиска цепочки битов 0×000001 в положениях выравнивания байтов в потоке данных;a ′) a search for a string of bits 0 × 000001 in the alignment of bytes in the data stream;
b′) повторения следующих стадий после нахождения указанной цепочки битов 0×000001;b ′) repeating the following steps after finding the specified 0 × 000001 bit chain;
с′) предварительного считывания следующих 24 битов потока данных и маркировки их как "peekstr"; определения, является ли "peekstr" одинаковым с кодом флага 0×000001; считывания двоичного разряда, если они различны, и переход на стадию h), если они одинаковы;c ′) pre-reading the next 24 bits of the data stream and marking them as "peekstr"; determining whether "peekstr" is the same as the flag code 0 × 000001; reading the binary digit, if they are different, and going to stage h) if they are the same;
d′) считывания одного двоичного разряда;d ′) reading a single bit;
е′) считывания еще одного бита и переход на стадию с), если только что считанный бит является вторым от конца битом байта, и 22 бита, считанных перед указанным битом, являются «0»;e ′) reading one more bit and proceeding to step c) if the just-read bit is the second byte from the end of the byte, and the 22 bits read before the specified bit are “0”;
f′) выдачи последнего считанного бита в качестве выходных данных и переход на стадию с);f ′) issuing the last read bit as output and proceeding to step c);
h′) окончания процесса, если в потоке данных нет оставшихся данных;h ′) the end of the process if there is no remaining data in the data stream;
i′) считывания 24 битов и переход на стадию с).i ′) read 24 bits and go to step c).
7. Способ по п.6, при этом способ дополнительно содержит7. The method according to claim 6, wherein the method further comprises
g. при обнаружении следующего кода флага точки произвольного доступа идентификацию последнего выданного «0» и выданной после него «1» в качестве наполнительных битов и не выдачу их в качестве выходных данных.g. upon detection of the next random access point flag code, identification of the last issued “0” and issued after it “1” as filling bits and not issuing them as output.
8. Способ по п.6, в котором, если только что считанные 22 бита все являются «0» и положение потока битов соответствует второму от конца биту байта, то последние два бита в указанном байте идентифицируют в качестве наполнительных битов и не выдают их в качестве выходных данных.8. The method according to claim 6, in which, if the just-read 22 bits are all “0” and the position of the bit stream corresponds to the second byte from the end of the byte, then the last two bits in the specified byte are identified as filling bits and do not output them to quality of the output.
9. Способ по п.6, в котором, если оставшиеся данные составляют менее 24 бит, то определяют, что "peekstr" не является 0×000001.9. The method according to claim 6, in which, if the remaining data is less than 24 bits, then determine that "peekstr" is not 0 × 000001.