当前位置: 首页 > news >正文

包头做网站公司/广东网站seo策划

包头做网站公司,广东网站seo策划,公司运营计划书怎么写,管理咨询公司利润率在做码流分析时,图像分辨率、帧率这类的基本信息,当然不可少。本文介绍如何从NAL中计算到图像宽、高,还有分辨率。于是H264和H265有相似性,就在一起写了。 一、从码流获得宽、高 1、H264 宽高可从SPS字段计算得到,公式…

在做码流分析时,图像分辨率、帧率这类的基本信息,当然不可少。本文介绍如何从NAL中计算到图像宽、高,还有分辨率。于是H264和H265有相似性,就在一起写了。

一、从码流获得宽、高

1、H264

宽高可从SPS字段计算得到,公式如下:

Width = (pic_width_in_mbs_minus1+1)*16;
Height = (pic_height_in_map_units_minus1+1)*16;

但以上是针对宽高是16的整数倍的情况,当不是16整数倍时,frame_cropping_flag值为1,frame_mbs_only_flag为1,公式如下:
(也可以认为统一使用下面的公式)

width = ((pic_width_in_mbs_minus1 +1)*16) - frame_crop_left_offset*2 - frame_crop_right_offset*2;
height= ((2 - frame_mbs_only_flag)* (pic_height_in_map_units_minus1 +1) * 16) - \
(frame_crop_top_offset * 2) - (frame_crop_bottom_offset * 2);

比如一个1080P视频的SPS信息如下:

pic_width_in_mbs_minus1 : 119
pic_height_in_map_units_minus1 : 67 
frame_mbs_only_flag : 1
mb_adaptive_frame_field_flag : 0
direct_8x8_inference_flag : 1
frame_cropping_flag : 1frame_crop_left_offset : 0frame_crop_right_offset : 0frame_crop_top_offset : 0frame_crop_bottom_offset : 4 

根据第二个公式

width = (119+1) * 18 - 0*2 - 0*2 = 1920
height = (2-1) * (67+1)*16 - 0*2 - 4*2 = 1088 - 8 = 1080

以上公式是一年多以前在网上找的,仔细看手册,上面的公式有局限性。根据H264手册Table6-1及7.4.2.1.1,参考mkvtoolnix代码,比如稳妥的计算方法如下:

    // 宽高计算公式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{crop_unit_x = 1;crop_unit_y = 2 - sps->frame_mbs_only_flag;}else if (1 == sps->chroma_format_idc) // 4:2:0{crop_unit_x = 2;crop_unit_y = 2 * (2 - sps->frame_mbs_only_flag);}else if (2 == sps->chroma_format_idc) // 4:2:2{crop_unit_x = 2;crop_unit_y = 2 - sps->frame_mbs_only_flag;}else // 3 == sps.chroma_format_idc   // 4:4:4{crop_unit_x = 1;crop_unit_y = 2 - sps->frame_mbs_only_flag;}width  -= crop_unit_x * (sps->frame_crop_left_offset + sps->frame_crop_right_offset);height -= crop_unit_y * (sps->frame_crop_top_offset  + sps->frame_crop_bottom_offset);}

注:
一些H264分析工具,比如CodecVisa和H264Visa,1080P的视频,分辨率为1920×1088。这是不正确的。

2、H265

H.265类似,但SPS的字段不同了。公式如下:

width  = sps->pic_width_in_luma_samples;
height = sps->pic_height_in_luma_samples;

当窗口有裁剪时(conformance_window_flag为1),计算如下:

sub_width_c  = ((1==chroma_format_idc)||(2 == chroma_format_idc))&&(0==separate_colour_plane_flag)?2:1;
sub_height_c = (1==chroma_format_idc)&& (0 == separate_colour_plane_flag)?2:1;
width  -= (sub_width_c*conf_win_right_offset + sub_width_c*conf_win_left_offset);
height -= (sub_height_c*conf_win_bottom_offset + sub_height_c*conf_win_top_offset);

上式根据H265手册Table6-1及7.4.3.2.1小节计算宽、高。注意,手册里加了1,但实际不使用。
参考mkvtoolnix讨论:https://github.com/mbunkus/mkvtoolnix/issues/1152
注:对于1080P的视频,H265直接用pic_width_in_luma_samples及pic_height_in_luma_samples即得到正确的值。但对于一些奇葩的分辨率,还没有测试过。

三、帧率

H264和H265帧率计算公式相同,如下:

max_framerate = (float)(sps->vui.vui_time_scale) / (float)(sps->vui.vui_num_units_in_tick);

使用x264编码YUV序列,设置为25fps时,time_scale为50,num_units_in_tick为1,计算得50fps,与实际不符。而x265用同样的参数编码,计算得到的帧率是正常的。

网上有说法,当nuit_field_based_flag为1时,要再除以2。另外说x264将该值设置为0,所以得到的值不是实际值。参见:http://forum.doom9.org/showthread.php?t=153019

目前还没研究透这一点。

http://www.jmfq.cn/news/5212585.html

相关文章:

  • 网站春节放假/网上企业推广
  • 没有静态ip可以做网站服务器/广告语
  • 棋牌网站搭建公司/360优化大师下载官网
  • 中国最新军事新闻 新闻/哈尔滨网络推广优化
  • 沈阳网站推广优化/百度seo白皮书
  • 那些平台可以给网站做外链/chrome浏览器
  • 如何用织梦猫做网站和后台/自媒体
  • 焦作做网站/在线推广企业网站的方法有哪些
  • 做调查问卷的网站/上海做关键词推广企业
  • 做演示的网站/海外广告优化师
  • 做团购网站的公司/山东济南最新消息
  • 网站建设销售员工作内容/平台推广渠道
  • 微网站可以做商城吗/总推荐榜总点击榜总排行榜
  • 如何安装织梦做的网站/草根站长工具
  • 制作网站账号系统/友链价格
  • 网站需要哪些备案/seo全网推广
  • 大型公司网站建设/百度一下你就知道首页
  • 如何做网站/做一个私人网站需要多少钱
  • 一个公司可以做几个网站/百度搜索排名规则
  • 国内wordpress有名的网站/如何创建自己的网址
  • 会计软件定制开发包括/西安seo
  • 天津网站建设渠道/长沙网站关键词排名公司
  • 腾讯云做网站选哪个/湖南竞价优化哪家好
  • 代理做网站的合同/国家税务总局网
  • 公众号怎么制作教程/福州seo关键字推广
  • 露兜博客 wordpress/seo站内优化培训
  • 域名为www.com的网站/新网站百度多久收录
  • 网站制作公司中/最近新闻大事
  • 网站建设公司的企业特色有哪些/软文标题写作技巧
  • 西部数码手机网站/网站seo网络优化