GDR(Gradual Decoding Refresh, GradualDecoder Refresh)逐渐刷新,是相对于IDR(Instant Decoder Refresh)的一个概念。为了得到更好的用户体验和更好的网络友好性能,才搞了这么一个Feature.

I-frames rely only on their own internal data and they enable decompression or decoding at the start of the sequence. I-frames are compressed using the intra-frame method. I-frames are also known as key frames because their content is independent of any other frames and they can be used as a reference for otherframes. As discussed in the inter-frame compression method, a key frame orinitial frame is used at the beginning of the sequence of pictures to becompressed.

Instant Decoder Refresh (IDR) frames, Gradual DecoderRefresh (GDR) frames as shown in the picture,

Long-TermReference Picture (LTRP) frames are well known I-frames

The main difference between IDR and GDR frames is that a GDR framecan be divided into smaller frames and sent at smaller time intervals whereasan IDR frame is sent in one packet. The purpose of using GDR frames is to avoid a significant surge in the data rate that occurs with IDR frames and to provide a better experience of video quality for the end user. GDR, which allows the images to be refreshed gradually over a small period. Rather than refreshing the whole Image all at once with an IDR frame。

For example, a GDR implementation can send 10 individual sections of a complete frame, and each of these sections is itself an IDR encoded video picture. Because only 1/10 of the frame is gradually changing over a 10-frame window, the user perception of the video quality is generally very good.

LTRPframes, on the other hand, are part of the media resilience provisions that some codecs implement. In evitable network loss and errors of compressed video cause visual errors at the decoder. The errors would spread across subsequent P-frames.  An obvious way to avoid this problem is to have the decoder request an I-frame from the encoder to flush out the errors (error feedback mechanism). However, a better way is to employ different reference frames (older, long-termframes). The feedback mechanism, in conjunction with the known good LTRP frame, helps to repair the lost video data (for example, slices) and to phase out the bad LTRP frame. In codecs that support this implementation, the LTRP frame is the last I-frame that arrived at the codec (using either IDR or GDR) The receiving codec then stores this frame as the LTRP frame. When a new I-frame arrives, it is promoted to LTRP, and so on. If an I-frame is lost during transmission, the receiving codec attempts to use the LTRP frame to recover.

I-frames are compressed using the intra-frame technique, and this has a direct impact in the bandwidth consumption of the video stream. The more frequently I-frames are used, the more bandwidth is required.

目前用vlc可以正常解码有GDR feature的Stream,但是好像quicktime则不行。

谁晓得GDR是不是已经成为了H264/5的标准了呢?

GDR(Gradual Decoding Refresh, GradualDecoder Refresh)相关推荐

  1. 【Codecs系列】GDR(Gradual Decoder Refresh)帧

    DATE: 2020.9.7 文章目录 1.GDR帧的概念 2.GDR帧的作用 转载自: https://blog.csdn.net/zg_xd/article/details/107870369 1 ...

  2. GDR(Gradual Decoder Refresh)帧

    I帧(包括IDR和CRA):整个帧都使用Intra prediction GDR帧:将一个完整的I帧分片,分别放到其前面多个连续的P帧中,如下图中的红色块所示: 上图来自:https://blog.c ...

  3. H265/HEVC 常用缩写词及其含义

    H265/HEVC 官方文档第4章缩写词的部分翻译 B Bi-predictive:双向预测,即B帧或B条带,B条带中的CU可以采用帧内或帧间预测编码,每个预测块采用双向预测方式进行预测,B条带编码时 ...

  4. H265 HEVC 协议文档第4章缩写词及其含义翻译

    本文为博主原创文章,未经博主允许不得转载.(合作洽谈请联系QQ:1010316426) 缩写 含义 B Bi-predictive:双向预测,即B帧或B条带,B条带中的CU可以采用帧内或帧间预测编码, ...

  5. elasticsearch中 refresh 和flush区别【转】

    elasticsearch中有两个比较重要的操作:refresh 和 flush refresh操作 当我们向ES发送请求的时候,我们发现es貌似可以在我们发请求的同时进行搜索.而这个实时建索引并可以 ...

  6. spring cloud config client refresh过程

    整体流程(触发EnvironmentChangeEvent事件) 响应EnvironmentChangeEvent事件(进行rebind) RefreshEndpoint @Configuration ...

  7. Spring源码学习第四天==>初识Refresh()

    Spring中AbstractApplicationContext的Refresh方法 Refresh方法可以算的上是SpringIOC容器启动的核心方法了.这几天进行了深入的学习,溯源,整理流程图. ...

  8. es的refresh和flush介绍

    elasticsearch中有两个比较重要的操作:refresh 和 flush refresh操作 当我们向ES发送请求的时候,我们发现es貌似可以在我们发请求的同时进行搜索.而这个实时建索引并可以 ...

  9. selenium之 浏览器导航栏的三个按钮(back、forward、refresh)

    一.操作代码 # -*- coding: utf-8 -*-""" @author: lucas @Function: @file: backAndForwardAndR ...

最新文章

  1. 如何在程序中生成崩溃转储dump文件以及如何分析dump
  2. Zabbix4.0 for PostgreSQL (上篇):基础环境的搭建部署
  3. PHP is_null,empty以及isset,unset的区别
  4. Java基础知识回顾--线程
  5. android 传感器ceshi,Android代码-传感器-测试手机支持那几种传感
  6. Linux虚拟机重启后无法获取IP的问题(断网、没网)
  7. JavaScript中的call、apply、bind如何使用
  8. 2017年12月计算机一级c,2017年12月计算机二级《C语言》强化模拟题(1)
  9. leetcode刷题:不同路径
  10. 学C++的室友手握这个项目,面试稳了
  11. mysql 没有三级模式两级映像_数据库三级模式/两级映像
  12. 拓端tecdat|基于keras平台CNN神经网络模型的服装识别分析
  13. 树莓派 Raspberry-Pi 折腾系列:系统安装及一些必要的配置
  14. oracle解锁sysman用户,详解Oracle如何解锁用户的方法
  15. 知识图谱构建技术综述与实践
  16. 2000坐标系xy坐标几位_2000坐标系(2000坐标系x和y坐标几位数)
  17. 安装pillow遇到的问题
  18. CKEditor 4.12.1富文本编辑器的配置与使用(详细版)
  19. 人民币大写转阿拉伯数字的java实现
  20. 【Java】JavaFx桌面编程整理

热门文章

  1. 沟通的艺术:看人入里,看出人外 - part 3
  2. 曾仕强《领导的沟通艺术》
  3. Discuz 批量修改、替换帖子标题或内容
  4. 北京哪里可以买到含羞草啊?或者种子也行
  5. Xshell官方免费版
  6. Centos下如果是二进制文件,编辑是文本,后缀是sh也无法执行
  7. 智能车牌识别停车场系统方案
  8. 【无极低码】低代码平台开发日记,低代码平台之sql编程
  9. 使用layer打开新页面
  10. 京东金融支持的银行卡只有几张