当前位置: 首页> 游戏> 攻略 > 企业信息系统开发_福建省人民政府副省长分工_搜索引擎优化原理_市场营销七大策略

企业信息系统开发_福建省人民政府副省长分工_搜索引擎优化原理_市场营销七大策略

时间:2025/7/10 14:04:46来源:https://blog.csdn.net/kuan__/article/details/144918897 浏览次数:0次
企业信息系统开发_福建省人民政府副省长分工_搜索引擎优化原理_市场营销七大策略

av1学习笔记(一):码流的整体框架


目录

  • av1学习笔记(一):码流的整体框架
    • 1. 码流结构分析:
    • 2. OBU信息分析
      • 2.1 obu_header
      • 2.2 obu_size
      • 2.3 drop_obu
      • 2.4 sequence_header_obu
      • 2.5 temporal_delimiter_obu
      • 2.6 frame_header_obu
      • 2.7 tile_group_obu
      • 2.8 metadata_obu
      • 2.9 frame_obu
      • 2.9 tile_list_obu
      • 2.10 padding_obu,reserved_obu
    • 3. 参考资料


1. 码流结构分析:

🍟视频是由很多张图片组成,对视频的压缩重点也是对图片的压缩;采用av1编解码协议生成的码流结构如下所示:
请添加图片描述
🍗一段视频的码流结构为:bitstream-> temporal_unit->frame_unit->open_bitstream_unit (OBU)。

  • obu内包含多帧图片的信息及其一些配置信息,一个obu也可能只是些header信息(配置信息),具体取决于obu的类型;
  • obu中一张图片(frame_obu)又被划分为多个tile(tile_group_obu);
  • 一个tile被划分为多个LCU(LCU大小为6464或128128,可配置);
  • 一个LCU可以继续往下划分为最小8*8的block。
  • Block 可以继续分为CU + TU
  • CU是预测信息,可以根据同一帧已经完成编解码的部分来推测当前位置信息(帧内预测),也可以根据前面已经解码出来的其他图像来推测当前位置的信息(帧间预测);CU存储的就是选取av1提供的哪种推测策略(mode);由于推测出来的图像和原图存在误差,这个误差就经过处理后存储才TU中;根据CU,TU的信息,可以恢复出来一个block图像;
  • 例如,2,4,6,8,(9),我们编解码(9)时,CU可以存储为(mode = +2), TU存储为(tu_dat = -1), 根据cu的mode(2)和前一个位置的信息8,推测当前位置为10,再根据tu_dat得到当前实际数据为9;

2. OBU信息分析

2.1 obu_header

🍖obu中最靠前部分是码流是obu的头信息(obu_header),具体包含以下内容:

  • obu_forbidden_bit : 一定是0,没有实际意义;
  • obu_type表示obu的类型(2.4-2.11有简略的);
obu_typeName of obu_type含义
0Reserved预留位(正常情况下不会出现)
1OBU_SEQUENCE_HEADER该obu是图像宽高等配置信息
2OBU_TEMPORAL_DELIMITERSeenFrameHeader置0
3OBU_FRAME_HEADER该obu是frame_type等帧信息
4OBU_TILE_GROUP该obu是一帧图像(多个tile)
5OBU_METADATA视频分辨率,帧率等配置信息
6OBU_FRAME与OBU_TILE_GROUP类似,详见2.8
7OBU_REDUNDANT_FRAME_HEADER与OBU_FRAME_HEADER含义相似,暂未发现区别
8OBU_TILE_LISTTile的位置等信息
9-14Reserved无实质内容,空白
15OBU_PADDING无实质内容,空白
  • obu_extension_flag:是否为增强层(该flag为0,则不编码temporal_id和spatial_id,默认为0,即后续码流的图像为基础层;
  • temporal_id,spatial_id : obu_extension_flag为0时,这两个flag默认为0,大于0时表示为增强层图像;
  • obu_has_size_field : 该码流里是否包含了obu_size; obu_size表示该obu若是frame或者一组tile信息时,这些frame和tile的所占字节长度;默认值为obu_size = obu_length - 1 - obu_extension_flag;

2.2 obu_size

🍝obu_size表示该obu若是frame或者一组tile信息时,这些frame和tile的所占字节长度;
🍛默认值为obu_size = obu_length - 1 - obu_extension_flag;

2.3 drop_obu

🍤 根据协议,obu_header的内容和之前sequence_header_obu解码出的一些信息对不上时,表示异常,该obu无效;

2.4 sequence_header_obu

🍱 obu_type = OBU_SEQUENCE_HEADER时,obu为sequence_header_obu,剩下的码流表示图像宽高等一系列的配置信息;此后的obu将采用这些信息来解码后续码流;

2.5 temporal_delimiter_obu

🍣 obu_type = OBU_TEMPORAL_DELIMITER时,该obu不包含实质内容,将变量SeenFrameHeader置为0后,即结束
🍥 SeenFrameHeader = 0 表示该帧的配置信息(如帧类型,frame_type,是I帧,P帧还是B帧)还没有被接收;
🍙 I帧:只支持帧内预测,PB帧即支持帧内预测,也支持帧间预测

2.6 frame_header_obu

🍘 obu_type = OBU_FRAME_HEADER 或OBU_REDUNDANT_FRAME_HEADER,
时,若SeenFrameHeader = 0,则该obu剩下的码流表示帧类型(frame_type)等帧信息;若SeenFrameHeader = 1,则frame_header直接copy之前曾解码过的frame_header信息;

2.7 tile_group_obu

🍚obu_type = OBU_TILE_GROUP 时,obu表示一帧图像压缩信息(多个tile)

2.8 metadata_obu

🍜 obu_type =OBU_METADATA 时,obu表示视频分辨率,帧率等配置信息;

2.9 frame_obu

🍲 obu_type = OBU_ FRAME时,obu表示一帧图像压缩信息(多个tile),
🍢 与tile_group_obu的区别,可以简单理解为frame_obu = frame_header_obu + tile_group_obu;

2.9 tile_list_obu

🍡 obu_type = OBU_TILE_LIST时,该obu表示后续编解码的tile的位置信息,及其对应的frame的大小等信息;

2.10 padding_obu,reserved_obu

🥚 obu_type = Reserved或OBU_PADDING时,该obu后续码流无实质内容

3. 参考资料

【1】av1官方协议文档 https://aomedia.org/specifications/av1/

关键字:企业信息系统开发_福建省人民政府副省长分工_搜索引擎优化原理_市场营销七大策略

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: