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

设计网站国外公共建设工程中心网站

设计网站国外,公共建设工程中心网站,编程就是做网站吗,杭州网络运营公司排名资源可用性模式下,对于DFG i,解码器不再根据语法元素buffer_removal_time[i] 来确定DFG i从平滑缓冲区预计移除时间ScheduledRemoval[i],而是根据缓存池的可用状态来确定ScheduledRemoval[i].具体来讲,第一帧的ScheduledRemoval[0]时间由deco…

资源可用性模式下对于DFG i解码器不再根据语法元素buffer_removal_time[i] 来确定DFG i平滑缓冲区预计移除时间ScheduledRemoval[i],而是根据缓存可用状态来确定ScheduledRemoval[i].具体来讲第一帧ScheduledRemoval[0]时间decoder_buffer_delay确定对于DFG i当具有show_existing_frame 标志等于0前一解码完成并且缓存有空闲缓冲区解码器这个时间设置ScheduledRemoval[i]

换句话说资源可用性模式下如果缓冲可用空闲插槽前一帧解码完成立即解码下一帧否则这个缓冲池空闲插槽才进行解码 如果比特低于解码器最大级别限制一个一个进行解码直到他们所有可用缓冲区之后解码速度会放缓下一帧解码仅仅已经解码缓冲区插槽空闲才会发生AV1标准文档E3.1描述资源可用性模式参数设置方法位了实用资源可用性模式编码器需要比特流设置以下参数

timing_info_present_flag = 1,decoder_model_info_presetn_flag=0,qual_picture_interval = 1

其中equal_picture_interval = 1表示实用恒定帧率所以不需要比特流编码传输呈现时间在这种情况呈现时间帧率Inital_display_delay_minus_1 推导出来的解码时刻Removal[i]已经解码缓冲可用时刻确定不需要比特流对其进行传输

在资源可用性模式下解码器模型参数采用默认值例如encoder_buffer_delay = 20000,decoder_buffer_delay = 70000low_delay_mode_flag = 0,解码过程调用函数time_next_buffer_is_free计算DFG iRemoval[i] ScheduledRemovalResouce[i], ScheduledRemoval[i] = ScheduledRemovalResource[i]

time_next_buffer_is_free(i, time)

{

if (i == 0) {

time = decoder_buffer_delay / 90000

}

foundBuffer = 0

//遍历缓冲池检查是否可用插槽

for (k = 0; k < BUFFER_FOOL_MAX_SIZE; k++) {

if (DecoderRefCount[k] == 0) {

if (PlayerRefCount[k] == 0) {

//缓冲可用插槽当前时间设置ScheduledRemovalResource[i]

ScheduledRemovalResource[i] = time

return time;

}

if (!foundBuffer || PresentationTimes[k] < bufFreeTime) {

//如果DecoderRefCount[k]0但是PlayerRefCount[k]

//不为0bufFreeTime 保存了缓冲池存在最小显示时间

bufFreeTime = PresentationTimes[k]

foundBuffer = 1

}

}

}

//缓冲存在最小显示时间设置SCHeduledRemovalResource[i]

ScheduledRemovalResource[i] = bufFreeTime

return bufFreeTime

}

3 平滑缓冲区填充

基于FirstBitArrial[i], LastBitArrival[i], ScheduledRemoval[i]以及Removal[i],解码器模型可以估计平滑缓冲区填充度Smooth buffer fullness. 2-5所示平滑缓冲区填充时间变化0第一个比特到达缓冲区时钟开始计时斜线斜率对应比特平滑缓冲区速度Remval[i]表示DFG i平滑缓冲区实际移除时间对应平滑缓冲区删除i数据并且开始解码i时刻这里注意并不是所有时刻都会新的比特达到缓冲区可能存在一个时间这段时间没有比特进入缓冲区2-5Removal[i]之后一段时间内就没有比特进入缓冲区这段时间对应着编码器没有比特发送时间段编码器缓冲区为空时间

平滑缓冲区比特数

Frame [0]比特数

Frame[0]比特数

2-5语法元素decoder_buffer_delay 制定了平滑缓冲区第一个特别到达缓冲区时刻第一个编码帧数据缓冲区移除时刻之间时间间隔所以解码开始时间Removal[0]decoder_buffer_delay决定这里需要注意decoder_buffer_delay所指时间平滑缓冲区可能已经缓存不止1编码2-5decoder_buffer_delay 所指定时间段DFG 0DFG 1都已经到达平滑缓冲区

2.5.4 视频解码时间

AV1解码过程平滑缓冲区解码器缓冲区之间操作相互关联具体来说解码器模型控制解码开始时刻以及比特流平滑缓冲区移除时刻这一过程迅速降低平滑缓冲区填充度此外解码器模型负责计算解码过程完成时间解码及时存入解码帧缓冲还决定何时输出显示器并将解码器缓冲移除

AV1第一特点广泛使用ARF, ARF只用作帧间预测参考帧而不是用于显示此外AV1主要档次支持参考帧缩放可扩展编码AV1解码模型适应不同类型解码过程所需要时间支持不同分辨率解码显示速度位了支持ARF不同分辨率AV1解码器模型引入了以下功能

解码时钟周期DecCT显示时钟周期DispCT时不同他们使用相同时间尺度这些时钟同步意味着解码过程显示过程处理视频时间基本一致的。

解码图像并非瞬间完成所需要时间根据图像分辨率以及其他因素有所差异这也意味着解码过程持续时间可能会复杂度编码参数硬件性能 因素变化

2-6 所示AV1解码过程显示过程展示了GOP长度4金字塔预测编码结构其中矩形表示视频上面数字表示视频显示顺序带着肩头曲线直线表示参考关系2参考帧0ARF1参考帧02.白色矩形表示ARFARF不会显示通常ARF同一时间位置上滤波版本可以提高帧间预测准确性为了ARF时间位置显示一帧编码器可以重新编码一个重叠相比ARF重叠添加高频纹理信息编码过程重叠帧可以使用ARF作为参考帧

解码时间线 decoder_buffer_delay initial_display_delay

显示时间线 initial_presentation_delay Removal[0] ->DispCT

2-6 AV1解码过程显示过程

2-6解码时间线显示时间线使用不听时钟周期因为视频显示之前必须完成解码所以AV1标准引入语法元素initial_display_delay_minus_1, 用于明确缓冲首次显示缓存多少个已经解码完成的帧这个设置确保了首次展示之前有足够解码帧可供即使播放从而保障视频播放流畅性

通过语法元素initial_display_delay_minus_1调整显示过程相对解码过程时间偏差如果不在比特流指定initial_display_delay_minus_1,那么initial_display_delay_minus_1设置BUFFER_POOL_MAX_SIZE-1,其中buffer_pool_max_size = 10 缓冲区所能存储最大帧数

2-6可见显示过程整体显示延迟initial_presentation_delay 包含了decoder_buffer_delay 第一个比特到达平滑缓冲区时刻0开始解码时刻之间时间间隔

AV1标准文档E4.6 描述如何计算一帧图像所需要时间定义如下

time_to_decode_frame()

{

if (show_existing_frame == 1)

lumaSamples = 0

else if (frame_type == KEY_FRAME || frame_type == INTRA_ONLY )

#对于使用超分辨率模式的帧,UpscaleWidth 时超分辨率之后的帧宽度

//否则UpscaleWidth输入宽度FrameWidth

else

if (spatial_layer_dimensions_present_flag)

lumaSamples = (spatial_layer_max_width[spatial_id] + (spatial_layer_max_height[spatial_id]))

else

lumaSamples = (amx_frame_width_minus_1 + 1) * (max_frame_height_minus_1 + 1)

MaxDecodeRate给定level所允许最大解码速率定义参考标准为文档A.3

return lumaSamples + MaxDecodeRate

}

http://www.dtcms.com/a/453683.html

相关文章:

  • 第二十章:遍历万象,操作随心——Visitor的访问艺术
  • 找不到或无法加载主类
  • XMedia Recode:音频格式转换
  • Linux 内核态和用户态
  • 145、【OS】【Nuttx】【周边】效果呈现方案解析:VSCode Remote Server
  • 【C++实战(78)】解锁C++ 大数据处理:从并行到分布式实战
  • 农安县住房和城乡建设厅网站青岛网站建设开发
  • 建设网站企业邮箱查找
  • OpenCV(三):保存文件
  • 写一个shel脚本 完全备份 然后每天增量备份 以及计划任务 一周 mysql 数据库
  • 三好街做网站的微信企业网站源码下载
  • 车载诊断架构 --- 车载ECU故障类型详解(中)
  • 网站建设实训记录wordpress显示用户角色
  • 无人机系统耗电,低功耗管理问题解决方法(腾讯元宝)
  • 响应式网站建设公司好的建设网站公司
  • 刘火良 FreeRTOS内核实现与应用之13——内存管理、中断管理
  • 从“拉取请求“到“合并请求“:一个有趣的术语翻译现象
  • 第七章 面向对象编程(基础部分)
  • 联想M7400黑白激光打印机显示纸盒无纸反复卡纸在硒鼓下面维修一例
  • Redis 提高缓存命中率指南
  • 建设部网站工程设计收费标准怎么知道公司网站是哪个公司做的
  • 一、通用的FPGA开发流程介绍
  • Java Spring “核心基础”面试清单(含超通俗生活案例与深度理解)
  • 公司网站设计需要多少钱wordpress vip服务积分
  • 【吕口】知呼依茶-服务平台系统方案
  • YOLO入门教程(番外):目标检测的一阶段学习方法
  • 妇产科网站建设沧州微网网络信息有限公司
  • 北京房产网站建设濮阳网站建设专家团队
  • OpenCV 库函数
  • 信息发布网站怎么做如何做网站上抓视频