- 博客(23)
- 资源 (13)
- 收藏
- 关注
转载 YUV视频格式
YUV格式两大类:YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交替存储的。YUV视频有4:4:4采样,4:2:2采样,4:2:0采样YUV4:4:4采样,每一个Y对应一组UV分量。8+8+8 = 24bits,3个字节...
2019-03-30 19:07:36 885
原创 x264中码率控制(三)rate_estimate_qscale函数
// 依据到目前为止编码bit数估算一帧的qscale该函数主要进行qscale的初始化和调整,是码率控制部分的核心之一,另一个是get_scale。0、计算SATD和图像的模糊复杂度1、在get_scale中,按复杂度采用指数模型得到qscale rcc->last_qscale = pow( rce->blurred_complexity, 1 - rcc->...
2019-03-25 15:48:58 1749
转载 x264中码率控制(二)x264_ratecontrol_start函数
在一帧的编码前就选择QP值。帧层码率控制,到这一步,一帧中所有宏块还是统一qp的void x264_ratecontrol_start( x264_t *h, int i_force_qp ){ x264_ratecontrol_t *rc = h->rc; ratecontrol_entry_t *rce = NULL; //used for 2pass ...
2019-03-22 14:39:12 704
转载 x264几种码率控制方式的实现
几点理论:1、固定质量并不等价于PSNR或QP完全恒定。复杂场景或者高速场景中难以辨别的细节会被选择性省略,以节省空间;2、如果运动预测生效,将获得更好的质量:低速场景中,1个错误可能停留好几秒钟。此时如果运动预测启用,只需要更改一个帧,就能增进整个场景的质量;3、如果有一个帧的一个QP的编码结果,就可以预测这个帧其它QP编码将消耗的空间。QP差距越大,预测越不准确;4、帧的重要性取决于...
2019-03-22 10:59:15 541
转载 x264中码率控制(一)
x264码率控制方法:采用的码率控制算法并没有采用拉格朗日代价函数来控制编码,而是使用一种更简单的方法,即利用半精度帧的SATD(sum of absolute transformeddifference)作为模式选择的依据。SATD即将残差经哈德曼变换的4×4块的预测残差绝对值总和,可以将其看作简单的时频变换,其值在一定程度上可以反映生成码流的大小。SATD是将残差经哈达曼变换4*4块的预测残差...
2019-03-20 16:34:19 558
转载 x264中的码率控制算法
1. 码率控制的选择策略:率失真优化模型RDO: rate-distortion optimization率失真优化限定码率值Rc,选择合适的编码模式,使得失真D最小。编码模式包括量化步长、宏块模式选择、帧内/帧间预测模式选择等。码率控制的RDO模型的目标是确定每帧或每个宏块合适的量化步长。1.1 Lagrangian RDOH.264标准使用了一种基于Lagrangian...
2019-03-20 16:33:15 543
转载 Content Aware ABR技术(十)
近年来,随着互联网和智能终端设备的普及和发展,视频流数据传输已占到互联网带宽的大约80%。而视频服务提供商每年都需要花费巨额成本用以传输和存储视频流。虽然当前新一代的视频压缩标准能够有效提升编码性能,但在实际使用时需要大规模部署新的硬件软件Codec。目前,比较可行的方法是在不改变现已部署的编码器或解码器的情况下利用新的编码优化技术来降低视频编码所消耗的码率。ZPEG提出了一种新的视频编码预处...
2019-03-19 17:09:47 410
转载 Content Aware ABR技术(九)
什么是自适应比特率?自适应比特率(ABR)流媒体是目前在线视频业务的关键技术。由于不同用户的带宽和设备差异很大,因此无法将同一个视频码流数据发送给所有用户(并非每个用户都有8Mbps的可用带宽来观看1080p视频,而且有些设备不支持1080p)。十年前通常采用的策略是让用户自己选择合适的视频流,如YouTube播放器中的质量选择器(下图左):但这种方法表现不佳,因为用户并不总是知道他们可以播放...
2019-03-19 17:08:57 396
转载 Content Aware ABR技术(八)
视频编码最重要的评价特征之一是编码质量,AWS Elemental提出的质量定义的可变比特率(Quality-Defined Variable Bitrate, QVBR)控制宣称可以有效地实现视频质量控制,该质量控制工具旨在提供恒定(或一致)的视频质量的同时尽可能避免比特资源的浪费。换句话说,QVBR能够较好地满足视频质量要求较高但带宽预算较低这类应用需求。AWS Elemental Live软...
2019-03-19 16:14:43 373
转载 Content Aware ABR技术(七)
本文所要介绍的视频编码技术公司,MediaMelon,总部位于旧金山。它在CAE领域的解决方案,QBR(Quality Bit Rate)技术,通过快速的场景分析、感知质量映射以及缓冲管理等技术可以实现高质量的实时流媒体服务,能够有效降低ABR Streaming的带宽成本,显著改善解码视频的视觉质量,减少视频播放期间的缓冲时间和次数。MediaMelon的QBR技术简单来说就是服务端的per-t...
2019-03-19 15:57:41 258
转载 Content Aware ABR技术(六)
OTT视频流传输通常消耗较多的带宽资源,随着在线视频观看需求的增加,对现有的传输网络带来了较大的压力。2016年,全美平均家庭互联网下载速度峰值达到了54.97Mbps,相比2015年增加了40%。此外,Netflix目前推荐的HD视频流最小连接带宽为5Mbps,UHD为25Mbps。如果在这个速度下,当一个家庭在高峰时段连接多路HD视频流时,网速会急剧下降,导致视频播放出现卡顿,同时视频清晰度也...
2019-03-19 12:32:10 186
转载 Content Aware ABR技术(五)
1 Bitmovin per-title encoding早在六七年前,per-title encoding相关的概念就已经提出,不过大多数早期的研究基本上都认为per-title encoding仅在实验环境下有效,而并不适合商业应用,因为每个视频在编码前需要进行大量的编码测试分析才能得到每种分辨率下对应的最佳码率。直到近两年,Netflix团队通过多年的努力提出了一种视频复杂度分析开销较低...
2019-03-19 10:24:58 248
转载 Content Aware ABR技术(四)
为了在有限带宽和较低成本开销下提供更好的视觉体验,在实际应用中OTT视频分发平台一般采用ABR技术进行编码传输。在传统ABR技术框架中,每个源视频通过降采样和升采样产生多个分辨率版本,每种分辨率的视频进一步以多个码率编码,这些分辨率和码率的不同组合被称为编码阶梯(或配置)。用户在观看视频流时,客户端根据实际网络带宽以及设备情况选择最佳的分辨率和码率组合以期达到较好的观看体验。而在此之前,内容提供商...
2019-03-18 20:05:01 327
转载 Content Aware ABR技术(三)
1 Beamr的视频质量工具编码失真是每个视频编码专业人员重点关注的对象。对于大部分互联网用户来说,当下能获得的视频码率平均在3Mbps左右。在这个码率下,规模化压缩视频文件时需要一套有效的度量工具或算法来检测和分析编码失真。常用的视频质量评价指标是PSNR和SSIM,两者都是全参考图像质量评价模型。PSNR数学表示简洁,便于分析,但不能很好的反映视觉上失真。SSIM一定程度上反映了视觉感...
2019-03-18 19:43:43 231
转载 Content Aware ABR技术(二)
上次我们回顾了Content Aware ABR的使用场景和基本原理,并梳理了Netflix的per-title和per-chunk技术相关研究进展。本文将主要介绍YouTube关于ABR的一些研究进展。1. Multi-resolution ABR码率切换点的选取ABR(Adaptive Bit Rate)技术使得视频流能够在不同的网络带宽环境下传输,目前广泛使用的ABR技术是通过动态调...
2019-03-18 16:56:39 292
转载 Content Aware ABR技术(一)
1 传统的ABR编码技术当前网络上传输的视频主要使用自适应码率(Adaptive Bitrate, ABR)视频流技术来优化终端播放的质量,例如HLS,MPEG-DASH等等。一个ABR视频流中包含了同一视频切片的多份不同类型的版本,即不同的码率和分辨率组合。当终端设备开始请求视频流时,播放器会收到该视频流的包含各种码率分辨率版本的清单。而播放器会根据多个因素,例如当前网络允许的带宽、缓冲区的...
2019-03-18 12:25:51 709
原创 ffmpeg中的read_frame_internal函数
read_frame_internal 在ffmpeg中实现了将format格式的packet,最终转换成一帧帧的es流packet,并解析填充了packet的pts,dts等信息,为最终解码提供了重要的数据,read_frame_internal,调用ff_read_packet,每次只读取一个包,然后直到parser完这个包的所有数据,才开始读取下一个包,parser完的数据被保存在parse...
2019-03-13 12:06:44 1312
转载 ffmpeg中的ff_read_packet函数
ff_read_packet函数也是会判断缓存是否有数据,若有则从缓存中取出,若没有,则调用demuxer的read_packet来读取数据。ff_read_packet()中最关键的地方就是调用了AVInputFormat的read_packet()方法。AVInputFormat的read_packet()是一个函数指针,指向当前的AVInputFormat的读取数据的函数,比如flv的flv...
2019-03-13 10:58:45 2436
转载 ffmpeg中的av_read_frame函数解析
ffmpeg中的av_read_frame()的作用是读取码流中的音频若干帧或者视频一帧。例如,解码视频的时候,每解码一个视频帧,需要先调 用av_read_frame()获得一帧视频的压缩数据,然后才能对该数据进行解码(例如H.264中一帧压缩数据通常对应一NAL)。通 过ff_read_packet(***),读取一个包,需要说明的是此函数必须是包含整数帧的,不存在半帧的情况,以ts流为...
2019-03-11 19:21:22 2314
转载 HTTP之Cookie和Session
1. Cookie1.1 为什么需要 Cookie?HTTP 协议是一种无状态的协议,也就是说,当前的 HTTP 请求与以前的 HTTP 请求没有任何联系。显然,这种无状态的情形在某些时候将让用户觉得非常麻烦,比如在网上商城购物时,每购买一个商品都要重新输入一次用户名和密码,用户很快就会失去耐心,而且反复的输入也产生了更大的风险。所以,Web 访问通过使用 Cookie 和 Session...
2019-03-08 11:42:44 148
转载 HTTP协议
1.什么是HTTP协议?超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器Web服务器,浏览器,代理服务器当我们打开浏览器,在地址栏中输入URL,然后我们就看到了网页。 原理是怎样的呢?实际上我们输入URL后,我们的浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的R...
2019-03-08 11:33:20 152
转载 Linux下安装SDL
首先下载SDL源码库,SDL2-2.0.8.tar.gz解压,然后依次执行命令./configure make make install如果出现Could not initialize SDL - No available video device(Did you set the DISPLAY variable?)错误说明系统中没有安装x11的库文件,因此编译出...
2019-03-06 15:48:17 4460
转载 ffmpeg中hls.c代码分析
HLS流在播放时是先解协议(hls.c)后解封装(mpegts.c),libavformat下的hls.c和mpegts.c实际上是同一个级别的,同属于demuxer。一、解HLS协议1.FFmpeg代码分析 首先看一下ff_hls_demuxer的定义:AVInputFormat ff_hls_demuxer = { .name = ...
2019-03-01 10:57:53 2195
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人