OBU是Open Bitstream Units的首字母缩写,是AV1视频编码标准里面的术语。 如果把它与H.265和H.266视频编码标准类比的话,相当于它们里面的NALU。 像由NALU组成H.265和H.266码流那样,AV1码流是由一个个OBU组成的。 每个OBU和NALU是由Header和payload构成,在它们Header里面有它的类型。下图是AV1标准里支...
本节简单认识AV1的码流结构。 1. 码流OBU OBU(open bitstream units)是AV1码流组成的基本单元,不同OBU序列按照解码顺序组成码流。 OBU由OBU Header和OBU Playload组成,其中header声明了OBU的类型和大小。 OBU的类型及功能如下: bitstream obu_type 2. 帧类型: KEY_FRAME 类同IDR帧 INTER_FRAME 类同P/B帧 INTR...
1、Sequence Header OBU 视频宽高和帧率可以通过Sequence Header OBU获取,Sequence Header OBU定义如下: sequence_header_obu( ){ Typeseq_profilef(3)still_picturef(1)reduced_still_picture_headerf(1)if( reduced_still_picture_header ){timing_info_present_flag= 0decoder_model_info_present_flag= 0initial...
从这里我们可以看出,解析一个obu_header,需要一共解析五个syntax,这里的syntax就是用黑体表示,并且右边Type中有值的项目,五个syntax分别为 obu_forbidden_bit obu_type obu_extension_flag obu_has_size_field obu_reserved_1bit 那右边的 f(1)是什么意思呢?我们可以看到第4.8节,4.9节,4.10节,这里告诉你这些个...
obu_size指的是obu_payload的字节大小。 obu_size不是必须的,由obu_header中的obu_has_size_field字段标识是否存在,不存在时需要由外部告知OBU的大小。 标准[1]中定义的“Low overhead bitstream format”格式要求obu_has_size_field必须为1。 对于需要更容易跳过帧或时间单位的格式的应用程序,[1]定义了Annex B...
OBU_FRAME 7 OBU_REDUNDANT_FRAME_HEADER 8 OBU_TILE_LIST 9-14 保留 15 OBU_PADDING 表1 OBU数据125包含OBU 115的有效载荷。例如,OBU数据125能够包含针对AV1编码视频帧的数据(例如,具有6的OBU类型)。通常,所述OBU能够包含任意类型的AV1编码视频数据。例如,实时视频通信会话能够通过将包含AV1编码视频比特流的所...
此磁贴所属的行。 当磁贴列表打开 Bitstream 单元(OBU)的一部分时,这将指定 AV1 规范中的anchor_tile_row。 column 此磁贴所属的列。 当磁贴列表 OBU 的一部分时,这将指定 AV1 规范中的anchor_tile_column。 Reserved16Bits 保留;设置为 0。 加速器将忽略此字段。
这是OBU的头部语法(OBU是啥?看看[AV1] Open Bitstream Unit)这里代码的写法与实际代码中相对应。 从这里我们可以看出,解析一个obu_header,需要一共解析五个syntax,这里的syntax就是用黑体表示,并且右边Type中有值的项目,五个syntax分别为 obu_forbidden_bit ...
最後,每個tile_group_obu() 都會包裝在類型OBU_TILE_GROUP的 open_bitstream_unit() 元素周圍,並以OBU_FRAME_HEADER前面加上。 對於單一磚群組,可以改用OBU_FRAME類型。API 用戶端負責推斷目前框架的obu_extension_flag !(TemporalLayerIndexPlus1 || SpatialLayerIndexPlus1) ,並在open_bitstream_unit() 中視...
#define AV1_OBU_FRAME 6 #define AV1_OBU_FRAME_HEADER 3 #define FF_PROFILE_AV1_MAIN 0 #define FF_PROFILE_AV1_HIGH 1 #define FF_PROFILE_AV1_PROFESSIONAL 2 enum frame_type { AV1_KEY_FRAME, AV1_INTER_FRAME, AV1_INTRA_FRAME, AV1_SWITCH_FRAME, }; typedef struct AV1SequenceParameters...