帧内预测:根据经过反量化和反变换(没有进行去块效应)之后的同一条带内的块进行预测。

A、4x4亮度块预测:

  用到的像素和预测方向如图:

    

  a~f是4x4块中要预测的像素值,A~Q是临块中解码后的参考值。0~8是4x4的亮度块的9个预测方向(模式)。当E~H不可得时,用D代替。

  A~Q在下面情况下不可用:

    》不在当前图像或条带;在该4x4块之前还没有被编码;位于帧间编码宏块,且constrained_intra_pred为1;

  对于9个预测模式,简述如下:

    》模式0:垂直模式,条件:A~D可用。

    》模式1:水平模式,条件:I~L可用。

    》模式2:DC模式,条件:A~D或I~L可用。

    》模式3~8:方向模式,条件和预测值参考书籍。

  其中模式0~5的预测值计算方法如下图:

    

B、16x16的亮度块预测:

  参考像素为左边16个、上边16个和左上1个共33个像素,分别记为p(-1,y)、p(x,-1)、p(-1,-1)。参考像素在下面情况下不可用:

    》不位于当前图像或条带;位于帧间宏块,且constrained_intra_pred为1;

  预测模式有4种:

    》模式0:垂直预测,条件:p(x,-1)可用;

    》模式1:水平预测,条件:p(-1,y)可用;

    》模式2:DC预测,条件:p(x,-1)或p(-1,y)可用;

    》模式3:平面(plane)预测。

C、8x8的色度块预测:

  色度块类似16x16的亮度块,参考像素为17个,共垂直、水平、DC和平面1中预测模式。

D、帧内预测模式的选择:

  亮度和色度的帧内预测,都有多种预测策略,因此实际应用中要选择最优的帧内预测策略。

  对于色度块预测,只能采用8x8的分块大小,只需要比较4中模式的代价(用RDO模型),选择代价最小的模式即可。

  对于亮度块预测,可以采用16x16和4x4的块大小,所以需要先后计算出9中4x4预测模式的最小代价(RDO模型)和4中16x16预测模式的最小代价(SATD公式),然后从中选择较小的预测模式。

E、4x4亮度块的预测模式编码:

  由于4x4块有9种预测模式,如果完全编码需要4bits,所以根据该块周围(上和左)边的4x4块的预测方式来推断当前块的预测模式。如果推断的预测模式一直,则只需要传输1bit(pred_intra4x4_pred_mode_flags=0),否则传输需要4(rem_intra4x4_pred_mode为4x4亮度块预测模式的编码值)+1(pred_intra4x4_pred_mode_flags=1)=5bits。

H.264学习笔记2——帧内预测的更多相关文章

  1. H.264学习笔记3——帧间预测

    帧间预测主要包括运动估计(运动搜索方法.运动估计准则.亚像素插值和运动矢量估计)和运动补偿. 对于H.264,是对16x16的亮度块和8x8的色度块进行帧间预测编码. A.树状结构分块 H.264的宏 ...

  2. H.264学习笔记1——相关概念

    此处记录学习AVC过程中的一些基本概念,不定时更新. frame:帧,相当于一幅图像,包含一个亮度矩阵和两个色度矩阵. field:场,一帧图像,通过隔行扫描得到奇偶两场,分别称为顶场和底场或奇场和偶 ...

  3. H.264学习笔记

    1.帧和场的概念 视频的一场或一帧可用来产生一个编码图像.通常,视频帧可以分成两种类型:连续或隔行视频帧.我们平常看的电视是每秒25帧,即每秒更换25个图像,由于视觉暂留效应,所以人眼不会感到闪烁.每 ...

  4. H.264学习笔记4——变换量化

    A.变换量化过程总体介绍 经过帧内(16x16和4x4亮度.8x8色度)和帧间(4x4~16x16亮度.4x4~8x8色度)像素块预测之后,得到预测块的残差,为了压缩残差信息的统计冗余,需要对残差数据 ...

  5. 02:H.264学习笔记

    H.264组成 1.网络提取层 (Network Abstraction Layer,NAL) 2.视讯编码层 (Video Coding Layer,VCL) a.H.264/AVC影像格式阶层架构 ...

  6. H.264学习笔记之一(层次结构,NAL,SPS)

    一 H.264句法 1.1元素分层结构 H.264编码器输出的Bit流中,每个Bit都隶属于某个句法元素.句法元素被组织成有层次的结构,分别描述各个层次的信息. 图1 H.264分层结构由五层组成,分 ...

  7. H.264学习笔记6——指数哥伦布编码

    一.哥伦布码 哥伦布码就是将编码对象分能成等间隔的若干区间(Group),每个Group有一个索引值:Group Id. >对于Group Id采用二元码编码: >对于Group内的编码对 ...

  8. H.264学习笔记5——熵编码之CAVLC

    H.264中,4x4的像素块经过变换和量化之后,低频信号集中在左上角,大量高频信号集中在右下角.左边的低频信号相对数值较大,而右下角的大量高频信号都被量化成0.1和-1:变换量化后的残差信息有一定的统 ...

  9. H.264 White Paper学习笔记(二)帧内预测

    为什么要有帧内预测?因为一般来说,对于一幅图像,相邻的两个像素的亮度和色度值之间经常是比较接近的,也就是颜色是逐渐变化的,不会一下子突变成完全不一样的颜色.而进行视频编码,目的就是利用这个相关性,来进 ...

随机推荐

  1. 2016/3/10 PHP (超文本预处理器) 是什么?

    PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要适用于W ...

  2. xcode10的那些事

    前言 这里主要介绍一下Xcode10 版本主要更新的内容.随着iOS12的发布,Xcode10已经可以从Mac App Store下载.Xcode10包含了iOS12.watchOS 5.macOS1 ...

  3. How to use filters in a GridPanel

    You can just link statically required files in your index.html <link rel="stylesheet" t ...

  4. fastjson将json字符串中时间戳转化为日期

    开发中,调用接口,往往会返回一个json字符串.对于json中的时间戳应该如何转为日期对象呢? 定义一个DateValueFilter类,这个类实现了fastjson中ValueFilter接口.其作 ...

  5. 并不对劲的bzoj3214:p3333:[ZJOI2013]丽洁体

    题目大意 有三个由若干个单词组成的字符串\(T,A,B,C(|T|,|A|,|B|,|C|\leq 5*10^4,单词长度\leq5,每个单词出现次数\leq500)\) 求从\(T\)中至少删去多少 ...

  6. bzoj 2006 超级钢琴 —— ST表

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2006 本来应该是可以用主席树,找区间最小值,取出来后再找那段区间的次小值...... 但也可 ...

  7. hdu 1480

    钥匙计数之二 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  8. 2.jeesite增删改查

    一.准备数据 在数据库中中添加一张表和数据,以mysql为例 SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------- ...

  9. 461. Hamming Distance(汉明距离)

    The Hamming distance between two integers is the number of positions at which the corresponding bits ...

  10. Codeforces Round #386 (Div. 2)G. New Roads [构造][树]

    题目链接:G. New Roads 题意:给出n个结点,t层深度,每层有a[i]个结点,总共有k个叶子结点,构造一棵树. 分析: 考虑一颗树,如果满足每层深度上有a[i]结点,最多能有多少叶子结点 那 ...