gpt4 book ai didi

avfoundation - h264 u(v) 解码 frame_num、pic_order_cnt_lsb 和 slice_group_change_cycle

转载 作者:行者123 更新时间:2023-12-04 20:07:18 25 4
gpt4 key购买 nike

根据“Slice Header Syntax”(在 ITU-T Rec. h264 中描述),frame_num , pic_order_cnt_lsbslice_group_change_cycleu(v)描述符,它是使用可变位数的无符号整数。

该文档指出

"the number of bits varies in a manner dependent on the value of other syntax elements."



你知道如何计算用于存储 frame_num的位数吗? , pic_order_cnt_lsbslice_group_change_cycle ?

[引用的文档指向 read_bits(n)函数,不幸的是我无法自己弄清楚。你能帮我吗?]

最佳答案

其他比特流值定义了要读取的比特数。
frame_num

is used as an identifier for pictures and shall be represented by log2_max_frame_num_minus4 + 4 bits in the bitstream.



以下是 FFmpeg 的作用,例如:

log2_max_frame_num_minus4 = get_ue_golomb(&h->gb);
// ...
sps->log2_max_frame_num = log2_max_frame_num_minus4 + 4;
// ...
h->frame_num = get_bits(&h->gb, h->sps.log2_max_frame_num);
pic_order_cnt_lsb

specifies the picture order count modulo MaxPicOrderCntLsb for the top field of a coded frame or for a coded field. The size of the pic_order_cnt_lsb syntax element is log2_max_pic_order_cnt_lsb_minus4 + 4 bits.

The value of the pic_order_cnt_lsb shall be in the range of 0 to MaxPicOrderCntLsb – 1, inclusive.


slice_group_change_cycle

The value of slice_group_change_cycle is represented in the bitstream by the following number of bits Ceil( Log2( PicSizeInMapUnits ÷ SliceGroupChangeRate + 1 ) )



位读取示例: SliceHeader.cpp, line 170

关于avfoundation - h264 u(v) 解码 frame_num、pic_order_cnt_lsb 和 slice_group_change_cycle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23963078/

25 4 0