
HEVC
文章平均质量分 61
linpengbin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HEVC帧内预测总结
HEVC的帧内预测共有35中预测模式,模式编号分别对应为:帧内模式编号帧内预测模式名称0Planar模式1DC模式2~3433种角度预测模式理论上,HEVC的帧内预测可以分为三个步骤:1、判断当前TU相邻参考像素是否可用,获取相邻参考像素;2、原创 2015-03-09 19:06:11 · 13303 阅读 · 11 评论 -
HEVC参考帧管理(RPS)
分析HM参考帧的管理:HEVC采用了参考帧集(RPS)的技术来管理已解码的帧,用作后续图像的参考。与之前的视频编码标准中参考侦管理策略不同的是,HEVC中的RPS技术,通过直接在每一帧开始的片头码流中传输DPB中各个帧的状态变化,而H.264/AVC中的滑动窗和MMCO (Memory ManagementControl Operation)这两种参考帧管理技术,是通过传输每一个片的DPB的相对变化转载 2016-03-03 15:54:42 · 3085 阅读 · 0 评论 -
OpenHEVC多线程解码之线程初始化
OpenHEVC支持单进程解码,同时支持多种类型的多线程解码,具体有帧并行,Slice并行,帧片同时并行. 因此多线程初始化函数需要判断当前程序是否支持多线程,以及其类型并初始化. //!< 判断是否并行,以及初始化 int ff_thread_init(AVCodecContext *avctx) { int ret = 0;validate_thread_parameters(a原创 2016-03-01 17:14:26 · 1684 阅读 · 0 评论 -
OpenHEVC(ffmpeg)多线程解码参数配置过程
这篇文章主要讲解在Linux终端和Eclipse(IDE)下怎么配置OpenHEVC的多线程解码.注意运行系统环境均为Ubuntu.首先,我们的ffmpeg工程已经配置好,可以正确运行(参照这篇文章) ,接下来我们要配置OpenHEVC多线程解码的话,需要通过编译参数去配置. 下面先认识一下ffmpeg相关的配置参数.打开终端,如下图所示: 一: -f (1: frame, 2: slice,原创 2016-01-29 13:42:37 · 4064 阅读 · 0 评论 -
IDCT的原理以及代码分析
代码版本: HM16.2IDCT(逆DCT)变换是DCT变换的逆变换。在HEVC的解码端对图像的像素残差进行IDCT变换,再进行反量化,就可以得到最初的残差值, 原像素 = 预测值 + 残差值。这篇文章基于HM16.2版本的解码代码进行原理分析以及代码实现。原理分析: 令: H为编码端的变换矩阵,X为像素值矩阵, Y为变换后得到的像素值矩阵。 变换公式大体为:。 n为变换矩阵的尺寸,在HEVC原创 2015-12-23 17:10:42 · 8447 阅读 · 1 评论 -
OpenHEVC在Linux Eclipse 下的配置过程
从前段时间开始,由于项目需要,开始研究OpenHEVC. 于是在GitHub上面将OpenHEVC整个工程fork到我自己的账号下,并clone到了电脑上. 按照OpenHEVC的ReadMe文件上面的教程在终端界面很顺利就将OpenHEVC配置好,能够顺利解码. 接下来为了更好的调试阅读代码,打算将OpenHEVC在Eclipse里面配置,结果弄了蛮久才成功,下面将在Eclipse上的原创 2016-01-05 20:55:32 · 1289 阅读 · 0 评论 -
Linux下出现launch failed.Binary not found的解决方案
Project->Properties->C/C++Build->Settings->Binary Parsers勾选GNU Elf Parser和Elf Parser然后千万千万别忘了Project->Build All (Ctrl+B), 再run(Ctrl+F11)如果看到项目下面出来一项名为Binaries, Congradulations! 配置成功,可以run了!原创 2016-01-05 20:45:10 · 2899 阅读 · 1 评论 -
ffmpeg多线程解码流程
FFMPEG多线程编码器一般以在Slice内分功能模块进行多线程编码,如h263,h263P,msmpeg(v1, v2, v3),wmv1。包含以下几个线程:(1)Pre_estimation_motion_thread运动估计前的准备;(2)Estimation_motion_thread运动估计;(3)Mb_var_thread宏块其他变量;(4)Encode_thread编码主线程。当然也有转载 2016-01-19 11:21:21 · 7986 阅读 · 0 评论 -
2015年HEVC解码器组个人工作总结
2015年工作总结今天是2015年的最后一天,怀着对过去的怀念与对未来的期盼,在此写下2015年的工作总结。 2015年一整年的工作均以实现H.265解码器为中心。从四月份廷姐与琦师兄离开公司项目组开始,解码器项目组就只剩下林工和我两个人。而我们的目标是年内实现解码器的DSP版本能够实现1080p的实时解码,当时看起来我们的工作解码器框架刚刚搭建起来,还有很多的bug,距离年终目标还差了非常多,不原创 2015-12-31 18:02:54 · 1203 阅读 · 0 评论 -
[leetCode]26. Remove Duplicates from Sorted Array
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do this in place with cons原创 2016-01-18 14:32:43 · 485 阅读 · 0 评论 -
HEVC加权预测(Weight Prediction)原理兼解码代码
HEVC添加加权预测模式的原因:现今很多视频中都采用的一种技术:场景随着时间光线强弱渐变(temporal illumination variation),或者相同场景,出现阴影效应。这样的视频,帧与帧之间,背景的相似度可能很高,明暗差别较大,若单纯采用运动预测,运动补偿技术,得到的残差会不够理想。此时,有人注意到,出现temporal illumination variation现象,相原创 2015-10-29 21:35:40 · 4730 阅读 · 0 评论 -
HEVC 帧间预测技术总结
代码版本:VTHECDec 代码函数:motionCompensation 时间:2015/3/9 作者: LB帧间MV预测的函数调用流程图如下图: 由上图可以看出,函数motionCompensation()分别调用流程图后续的函数,完成帧间MV预测运动补偿过程。整个过程主要有三部分,下面分开说明。第一:函数getpuNum() 作用:根据Cu到Pu的划分方式,计算Pu的个数。返回原创 2015-08-26 16:29:39 · 5332 阅读 · 1 评论 -
H.265 帧内PCM模式详解
原理:PCM模式是帧内的一种特殊的编码模式,编码端直接传输像素值。当相应的CU采用PCM模式时,CU不经过预测,变换,量化和熵编码等步骤,直接将Cu的像素值直接传输到解码端。同理,解码端不用经过预测等步骤,直接从码流中将像素值读出来即可。PCM模式适用于图像特别复杂,采用其他编码模式效果不理想,采用PCM模式效果还更好的情况。在无损编码中也采用PCM模式。代码流程:首先从SPS(图像序列头)中读取p原创 2015-11-03 18:15:01 · 6069 阅读 · 0 评论 -
HEVC去方块滤波原理以及代码流程
代码版本:HM-16.2+SCM-3.0rc1 时间: 2015/5/17 作者: LB环路滤波以及SAO在代码中的大概流程如下图所示: 下面分别对去方块滤波和SAO的原理和相关代码作分析。去方块滤波: 去方块滤波的主要步骤流程图如下: 滤波顺序: 以参考代码版本为例,去方块滤波的滤波顺序是以CTU为基本单位,按照光栅扫描进行滤波;在CTU内部以CU为基本单位,按照Z扫描方式进行原创 2015-08-26 17:02:34 · 4034 阅读 · 0 评论 -
HEVC 样点自适应补偿(SAO)原理详解
代码版本:HM-16.2+SCM-3.0rc1 时间: 2015/07/20 作者:LBSAO应用于去方块滤波之后,首先将Frame划分成若干个LCU,SAO对处于不同图像区域的LCU进行局部信息补偿,以减少源图像与重构图像之间的失真。HEVC中根本上说只有两种SAO类型:边缘补偿(EO,Edge Offset),带状补偿(BO,Band Offset),在实际操作过程中还引入了参数融合模式原创 2015-08-26 17:15:54 · 7046 阅读 · 0 评论 -
HEVC 高级运动向量预测技术(AMVP)
代码版本: VTHEVCDec函数: fillMvpCand()时间: 2015/8/26作者: 林彬 高级运动向量预测技术(AMVP)利用空间、时间上运动向量的相关性,分别建立空域候选列表以及时域候选列表,再从候选列表中选取最终的MVP。 1、空域候选列表的建立 空域候选列表需要从上图5个参考块中选出两个候选MV。分别是a0,a1中选出一个原创 2015-08-26 16:01:42 · 8608 阅读 · 3 评论 -
HEVC多核拆分
接下来的十天的工作安排是对HEVC的代码由单核,初步拆分为两个独立的部分,分别是:熵解码部分和其余部分。思路为:将熵解码和读取出来的文件头的信息按照一定的顺序保存下来到.bin文件中,在decu部分将需要的参数从.bin中读取出来。问题:现在的难点是 1、确定这两部分代码都有哪一些,有没有共用的代码; 2、需要存储的信息都有哪些;3、按照什么样的顺序存储和读取。原创 2015-06-11 17:35:00 · 576 阅读 · 0 评论 -
OpenHEVC多线程解码流程
Author: lb ffmpeg中的OpenHEVC支持单线程,多线程解码。支持多线程解码大大提高了解码速度。其中,OpenHEVC支持三种形式的多线程解码,分别是 Frame(帧)并行解码, Slice(片)并行解码,frameSlice(帧片)并行解码。下面重点分析Frame并行解码,Slice并行解码还没有怎么研究,读懂之后再更新Slice并行解码的相关内容。 这篇文章参考了:ffm原创 2016-01-29 14:03:29 · 2699 阅读 · 0 评论