1、H264
计算宽高根据标识不同有两种(都是从SPS字段中取值)
第一种:
Width = (pic_width_in_mbs_minus1+1)*16;
Height = (pic_height_in_map_units_minus1+1)*16;
第二种条件, frame_cropping_flag 值为1,frame_mbs_only_flag 为1,公式如下:
(也可以认为统一使用下面的公式)
width = ((pic_width_in_mbs_minus1 +1)16) - frame_crop_left_offset2 - frame_crop_right_offset2;
height= ((2 - frame_mbs_only_flag) (pic_height_in_map_units_minus1 +1) * 16)
- (frame_crop_top_offset * 2) - (frame_crop_bottom_offset * 2);
第三种、正确计算方法如下函数:
// 宽高计算公式
width = (sps->pic_width_in_mbs_minus1+1) * 16;
height = (2 - sps->frame_mbs_only_flag)* (sps->pic_height_in_map_units_minus1 +1) * 16);
if(sps->frame_cropping_flag)
{
unsigned int crop_unit_x;
unsigned int crop_unit_y;
if (0 == sps->chroma_format_idc) // monochrome
{