h265: разбор заголовка фрагмента из файла битового потока

Мне нужно прочитать номер POC из битового потока HEVC, используя python BitStream. В настоящее время я читаю заголовок последнего модуля. Есть ли простой способ получить его?

У меня включена трассировка HM14.0, но EncTrace.txt не включает все мои пакеты.

Есть идеи?

Изменить: я прикрепляю свой код Python. Это мой файл битового потока.

import re

import collections
import bitstring
from bitstring import BitStream, BitArray, ConstBitStream, pack
from bitstring import ByteStore, offsetcopy
import unicodedata


text_file = open("nal_Output.txt", "wb")

s = BitStream(filename='new.str')

#Find number of packets
pcks = list(s.findall('0x000001', bytealigned=True))


s.pos=0
num_of_pcks = len(pcks)
num_of_POC_pcks =0
for x in range(0, num_of_pcks):
    s.pos =pcks[x]+24
    #print x
    if x < num_of_pcks-1:
        no_p = pcks[x+1]-pcks[x]-24
    else:
        no_p = 0

    forbidden_zero_bit  = s.read('uint:1')
    nal_unit_type = s.read('uint:6')
    nuh_layer_id = s.read('uint:6')
    nuh_temporal_id_plus1 = s.read('uint:3')

    #nal unit type 39 is for SEI messages: one byte message
    if int(nal_unit_type) >31 :
        #print 'nal=39'
        #size_of_pck = (no_p+24+8)/8
        packet = 0
    elif int(nal_unit_type) <32:
        #print int(nal_unit_type)
        num_of_POC_pcks = num_of_POC_pcks+1
        size_of_pck = (no_p+24)/8
        text_file.write("NumBytesInNALunit: {0}\n".format(str(size_of_pck)))
    s.read(no_p)

print num_of_POC_pcks 

text_file.close()

person zinon    schedule 15.09.2014    source источник


Ответы (1)


В главе 8.3.1 стандарта рассказывается, как происходит PicOrderCntVal. В python это нетривиально для извлечения...

Используя ссылку SW, заголовок фрагмента анализируется в функции TDecCavlc::parseSliceHeader в source/Lib/TLibDecoder/TDecCAVLC.cpp, где также считывается значение POC.

введите здесь описание изображения

person Fredrik Pihl    schedule 16.09.2014
comment
Спасибо, да, я это видел, но я хочу упрощенное решение на Python. Спасибо, в любом случае. - person zinon; 17.09.2014
comment
Опубликуйте код Python, который у вас есть до сих пор, в сущности или подобном, и я могу взглянуть на него... - person Fredrik Pihl; 18.09.2014
comment
См. следующий суть для элементарного анализатора битового потока. Он предоставляет правильные данные для реализованных структур. - person Fredrik Pihl; 07.10.2014
comment
Благодарю вас! Я попробую! - person zinon; 07.10.2014