精华内容
下载资源
问答
  • 2.帧间压缩 帧内压缩 H.264和H.265的宏块对比。在H.264中的宏块大小是固定的16x16,在H.265中宏块的大小是可变的,最小8x8最大64x64。这种方案有几个优点:如图所示,对于颜色变化不明显的区域,如车体的红色区域和...

    H264、H265编码标准

    编码的主要作用在于压缩体积。压缩的方式主要有两种:
    1.帧内压缩
    2.帧间压缩

    帧内压缩

    在这里插入图片描述
    H.264和H.265的宏块对比。在H.264中的宏块大小是固定的16x16,在H.265中宏块的大小是可变的,最小8x8最大64x64。这种方案有几个优点:如图所示,对于颜色变化不明显的区域,如车体的红色区域和地面的灰色区域,则会使用大宏块进行划分,可以更大的压缩画面;对于颜色变化比较多的地方,例如汽车的轮胎附近,则可以更精细的划分成更小的宏块,更小的宏块虽然占用了更多的空间,但是会使画面精细。显然H.265的方案更加灵活和智能,有针对性、有重点的进行帧内编码,降低整体的存储空间。

    帧间压缩

    H.264/H.265标准为了更好的压缩视频,去除视频帧序列间的冗余度,提出了I帧(帧内编码)、P帧(向前预测编码)、B帧(向前向后双向预测编码)。I帧被称为关键帧,I帧内包含了该帧的完整信息,帧内编码可以独立的编码出完整的帧。P帧采用的是向前预测编码,根据上一个I帧或者上一个P帧来推测出当前的P帧。B帧采用的是向前向后双向预测,可根据前后两个P帧或者一个I帧一个P帧来预测自己。

    视频的帧的编解码顺序和显示顺序是不同的。例如下表所示,以解码为例。第1帧为I帧关键帧,对于关键帧而言显示顺序和解码顺序是一致的。第2帧显示的是一个B帧,但是在其解码的时候先去解码了显示上的第5帧一个P帧,接下来在跳回到显示上的第2帧B帧的位置,根据第1个I帧和显示上的第5个帧P帧,进行双向预测得到自己要显示的内容。同理显示上的第3帧、第4帧也是根据显示上的第1帧(I帧)和第5帧(P帧)来预测自己的内容。
    解码第6帧P帧是根据第2帧的P帧来预测的,随后解码的7、8、9帧则是根据解码的第2帧和第6帧两个P帧来双向预测的。

    在这里插入图片描述

    展开全文
  • 帧内压缩类似于图片压缩,跟这一的前面(或后面)一(或几)无关,由当前中,已编码的部分来推测当前待编码的这一部分数据是什么。帧间压缩是,由这一的前(或后)一(或几)来推测当前待压缩的这一部
    作者:王婷婷
    链接:https://www.zhihu.com/question/20237091/answer/15795367
    来源:知乎
    著作权归作者所有,转载请联系作者获得授权。

    帧内压缩类似于图片压缩,跟这一帧的前面(或后面)一帧(或几帧)无关,由当前帧中,已编码的部分来推测当前待编码的这一部分数据是什么。帧间压缩是,由这一帧的(或后)一帧(或几帧)来推测当前待压缩的这一部分数据是什么。
    ①什么是宏块(Macroblock)。宏块就是,把视频的每一帧(相当于一张图片)划分成16*16的小块,一块一块的依次压缩,而不是对整张图片一起压缩。这样降低了计算的复杂度,比较节省时间。一个宏块又可以分成16*16,16*8,8*16,8*8,8*4,4*8,4*4,等大小不等的块。具体怎么划分块大小,要看画面有多复杂。一般来说,运动多,细节多的部分,划分成小块来编码;大片的平坦的无变化的,划分成16*16的大块。下图就是块划分情况,图选的不好,选成残差帧了⊙﹏⊙,分块状况还是大致能看出来的。<img src="https://pic2.zhimg.com/bf8e6b33d1c39b8b2aaf4b08665368bd_b.jpg" data-rawwidth="401" data-rawheight="332" class="content_image" width="401">②帧内(Intra)压缩。先看这个图片②帧内(Intra)压缩。先看这个图片<img src="https://pic2.zhimg.com/5b80a6c59f040ee5e9b21aa6e1bf5b5d_b.jpg" data-rawwidth="287" data-rawheight="229" class="content_image" width="287">假设现在是按顺序来编码,第一行已经完全编完,⑤也编完了,正要压缩⑥这一块。可以看出,它周围的①②③④⑤,跟⑥简直一模一样啊,如果能用①②③④⑤来推测⑥是什么图像,显然比只压缩⑥要节省空间。这就是帧内预测。一般来说,视频的第一帧是帧内预测帧(废话,它想参考其他帧的数据也没有的参考),场景切换时是帧内预测帧(比如视频里插了一段广告,这个广告跟视频里其他的内容都无关,用它来预测还不如我自己编自己省空间)。帧内预测在H.264编码标准里有以下几种预测方法,具体请查看H.264白皮书。假设现在是按顺序来编码,第一行已经完全编完,⑤也编完了,正要压缩⑥这一块。可以看出,它周围的①②③④⑤,跟⑥简直一模一样啊,如果能用①②③④⑤来推测⑥是什么图像,显然比只压缩⑥要节省空间。这就是帧内预测。一般来说,视频的第一帧是帧内预测帧(废话,它想参考其他帧的数据也没有的参考),场景切换时是帧内预测帧(比如视频里插了一段广告,这个广告跟视频里其他的内容都无关,用它来预测还不如我自己编自己省空间)。帧内预测在H.264编码标准里有以下几种预测方法,具体请查看H.264白皮书。<img src="https://pic2.zhimg.com/a2c909705a8d128d2b4c460938c7d8f5_b.jpg" data-rawwidth="845" data-rawheight="244" class="origin_image zh-lightbox-thumb" width="845" data-original="https://pic2.zhimg.com/a2c909705a8d128d2b4c460938c7d8f5_r.jpg">③帧间(Inter)压缩。下图是一个视频序列中连续的两帧。(我真没偷懒,这真的是俩不同的帧,不信你看书的位置和人的表情都变了)③帧间(Inter)压缩。下图是一个视频序列中连续的两帧。(我真没偷懒,这真的是俩不同的帧,不信你看书的位置和人的表情都变了)<img src="https://pic2.zhimg.com/0de052e2b8404d105e1dcd6483ceb02d_b.jpg" data-rawwidth="287" data-rawheight="229" class="content_image" width="287"><img src="https://pic1.zhimg.com/9739e9ea3b0d491363b430ab4d7815c0_b.jpg" data-rawwidth="287" data-rawheight="229" class="content_image" width="287">如果摄像头没有晃来晃去,那么,在连续的视频图像里面,前后两帧的差别真的很小,比一张图片中连续两个宏块的差别还要小,这时用帧间压缩的效果会比帧内压缩的效果好。如果摄像头没有晃来晃去,那么,在连续的视频图像里面,前后两帧的差别真的很小,比一张图片中连续两个宏块的差别还要小,这时用帧间压缩的效果会比帧内压缩的效果好。<img src="https://pic1.zhimg.com/b329a0f1539ae53facd0d3840ef68460_b.jpg" data-rawwidth="467" data-rawheight="208" class="origin_image zh-lightbox-thumb" width="467" data-original="https://pic1.zhimg.com/b329a0f1539ae53facd0d3840ef68460_r.jpg">Block Matching 就是块匹配,就是找找看前面已经编码的几帧里面,和我当前这个块最类似的一个块,这样我就不用编码当前块的内容了,只需要编码当前块和我找到的那个块的差(称为残差)就可以了。找最像的块的过程叫运动搜索(Motion Search),又叫运动估计(Motion Estimation)。用残差和原来的块就能推算出当前块是什么样儿的,这个过程叫运动补偿(Motion Compensation)。有全搜索,菱形搜索法,三步搜索算法,新三步搜索算法,梯度下降搜索算法,运动矢量场自适应搜索算法等各种算法,这也一直是研究和发论文的热点。

    Block Matching 就是块匹配,就是找找看前面已经编码的几帧里面,和我当前这个块最类似的一个块,这样我就不用编码当前块的内容了,只需要编码当前块和我找到的那个块的差(称为残差)就可以了。找最像的块的过程叫运动搜索(Motion Search),又叫运动估计(Motion Estimation)。用残差和原来的块就能推算出当前块是什么样儿的,这个过程叫运动补偿(Motion Compensation)。有全搜索,菱形搜索法,三步搜索算法,新三步搜索算法,梯度下降搜索算法,运动矢量场自适应搜索算法等各种算法,这也一直是研究和发论文的热点



    https://www.zhihu.com/question/20237091。

    展开全文
  • 帧内压缩,解决的是空域数据冗余问题(一张图片内部的数据压缩问题)。 比如:一张天然色背景图片的压缩,背景天然色是可以用一部分很小的数据量存储,解压缩时可以通过很少的数据量还原回去。对于帧内的物体也有...

    帧内压缩,解决的是空域数据冗余问题(一张图片内部的数据压缩问题)。
    比如:一张天然色背景图片的压缩,背景天然色是可以用一部分很小的数据量存储,解压缩时可以通过很少的数据量还原回去。对于帧内的物体也有实际的算法。

    帧间压缩,解决的是时域数据冗余问题
    随着时间推移每个时间段是有帧数据的,他们是有参考的。

    整数离散余弦变换(DCT),将空间上的相关性变为频域上无关的数据然后进行量化

    CABAC压缩
     

    宏块
    宏块是视频压缩的基本单元
    帧内、帧间的基本单元
    将原始图像划分成很多个宏块单元,如果有很多细节的图片需要划分成更小的宏块。

    宏块的尺寸有:16x16 8x16 16x8 8x8  4x8 4x4 8x4

    帧内压缩理论
    1、相邻像素差别不大,所以可以进行宏块预测
    2、人对亮度的敏感度超过色度
    3、YUV很容易将亮度与色度分开
    根据已知的模块来推测下一个模块的数据。
    帧内预测,九种预测模式
    从某一个宏块为基础,在这个宏块下边或者右边的宏块是什么,进行推算的时候实际用九种模式的一种来计算,哪种最近接原来的模块就选择哪种模式,有相关的论文。
    把所有宏块进行处理,标记每个宏块具体使用的模式。

    根据宏块所选用的模式来预测宏块的值,以下是具体的九种模式


    上图横向A-H和竖向I-L是已经知道的值,白色方格子就是待预测的宏块,中小写字母的值是待预测填充的部分。
    如果是竖向预测,图中第一中,那么小方格的值就是按箭头所指的方向填充,宏块中第一列的值就全是A, 第二例全是B,以此类推。

    如果是横向预测,图中第二中,那么小方格的值就是按箭头所指的方向填充,宏块中第一行的值就全是A, 第二行全是B,以此类推。
    第三个图就是求平均值,即宏块的值是其周围已经预测宏块横向和竖向所有像素的值。
    其他几种模式按箭头方向预测,如上箭头方式类推。

    不同模式的预测结果是不一样的,第一个图是垂直预测,第二个水平预测,第三个求平均,如下;

    帧内预测举例

    1、根据所选定的模式预测各个模块的值,之后得到一张预测图。

     2、预测图与原始图进行比较得到残差值。

     

    3、将图片预测时使用的模式信息(prediction mode info ) 和预测的图片残差值(residual)进行压缩,之后进行传输。

     

    4、解码端根据传输过来的I帧和预测模式信息,以及残差值还原图像。 

    帧内压缩帧类型
    I 帧
    IDR 帧

     

    展开全文
  • 记得在大学的时候,学习多媒体遇到了一个概念:帧内压缩帧间压缩。我感觉我的第一篇里里面提到的我的那个方法有一点像帧间压缩,那么是不是把代码减少到极致了呢?单看一个表的添加代码好像是,但是一个项目可不是...
    记得在大学的时候,学习多媒体遇到了一个概念:帧内压缩和帧间压缩。我感觉我的第一篇里里面提到的我的那个方法有一点像帧间压缩,那么是不是把代码减少到极致了呢?

    单看一个表的添加代码好像是,但是一个项目可不是只有一个添加的页面就完事了,项目越大,添加的页面也就越多,每个页面都写这么多的代码,依然很烦。那么怎么办呢?

    许多人想到了代码生成器。是的,代码生成器可以减少我们的劳动,但是不能减少代码!

    相反,由于使用了代码生成器,限制了我们的想象力,让我们居于现状,认为这么多的代码是正常的,是不可避免的,反正有代码生成器,我们也不累,就不去想更好的解决方法了。

    那么添加的页面多了怎么来减少代码呢——帧间压缩,对就是他!


    写代码生成器的人都知道在MS SQL里面这几个表的作用,生成代码大多也都使用了这几个表,但是只限于生成代码,而没有去想其他的用处,是不是有一点可惜呢?

    对了先说一下这几个表,sysobjects,syscolumns。
    sysobjects 简单的说就是存放表名的地方,当然除了表还放了其他的信息。
    1SELECT name, id, xtype
    2FROM dbo.sysobjects
    3WHERE (xtype = 'u')
    在查询分析器里运行一下这个SQL语句,你看到了什么?是不是很面熟。

    syscolumns 简单的说就是放字段的地方,当然......同上。
    1SELECT tbl.name AS TableName, col.name AS ColName, t.name, col.length
    2FROM dbo.syscolumns col INNER JOIN
    3      dbo.sysobjects tbl ON col.id = tbl.id INNER JOIN
    4      dbo.systypes t ON col.xtype = t.xtype
    5WHERE (tbl.xtype = N'u')

    再在查询分析器里运行一下这个SQL语句,你看到了什么?表名、字段名、字段类型、字段大小。

    我们可以把这个SQL语句做成一个视图(V_Col),下面的代码会用到。

    有了这个数据源我们可以做什么呢?好多人都用它来做代码生成器了,而我要用他做一个简单的表单控件!

    在.aspx里面放一个DataGrid ,ID改为DG,在后台得到这个数据源,并且绑定到DG。
    对了,要加一个查询条件:TableName = 'yourTableName'。

    DG的第一列绑定ColName 字段,第二列加一个模版列,里面放一个TextBox。

    运行程序,你看到了什么?一个表单!一个表的全部字段的表单!还记得那个查询语句吧,TableName = 'yourTableName'。写哪个表就是哪个表的表单。

    到这里显示的功能就完成了,下面是保存数据!

    写一段代码来保存任意一个表的数据!

    记得我第一篇里写的我的那段添加数据的代码吗?什么根本就没看过?不要紧建议先看一看

    添加数据需要两个数组和一个表名,第一个数组放字段名,第二个数组放用户输入的数据,然后再来一个表名就可以了。

    现在我们拥有这些信息,字段名在DG的第一列里面,用户输入的数据在DG的第二列里的TextBox里面,在点击保存的事件里面遍历DG,获取这些信息就可以了。

    最后得到表名,调用我的数据访问层的 dal.InsertDataStr("T_News",str1,str); 就OK了。

    添加另一个表的数据,只要换一个表名就可以了!



    PS:

    是不是有人会说,你别在这里骗人了,表单控件哪有这么简单呀!

    这里有很多的不足:
    1、大多数的字段都使用英文的,直接把英文的字段显示给用户,那当然是不行的。
    2、如果主键是自增的,那么保存的时候就会出错,因为这个字段是不能赋值的。
    3、字段不是都用TextBox搞定的,还需要下拉列表框、复选框、单选框、FreeTextbox等各种各样的控件,只有一个TextBox哪行呀?!
    4、我要加验证怎么办?我要加说明怎么办?有一些字段是不需要填的怎么办?

    5、其他。

    这些都是不足,但是不能因为这些不足就否定了这种方法。有不足了我们去改善!让表单控件可以实现这些功能不就可以了吗?

    具体的实现方法我先不写了,也许您的方法比我现在用的还要好!我现在说了可能会影响您的发挥:)。




     
    展开全文
  • I,P,B 压缩率对比

    千次阅读 2015-06-16 11:25:09
    简单地说,I是关键,属于帧内压缩。就是和AVI的压缩是一样的。 P是向前搜索的意思。B是双向搜索。他们都是基于I压缩数据。   I表示关键,你可以理解为这一画面的完整保留;解码时只需要本数据...
  • 视频压缩:I、P、B 关键

    千次阅读 2019-07-31 11:27:38
    简单地说,I是关键,属于帧内压缩。就是和AVI的压缩是一样的。P是向前搜索的意思。B是双向搜索。他们都是基于I压缩数据。 I表示关键,你可以理解为这一画面的完整保留;解码时只需要本数据就可以...
  • H264帧内编码与帧间编码

    万次阅读 2017-02-13 19:14:50
    晚上没事干,无聊,所以想写点什么。 为了达到节约空间的目的,视频图像都是经过编码,然后用于各种不同的场合,特别是...P,要前向参考,而B,则要进行双向参考,这两种,都属于帧间编码。 先说说帧内编码...
  • 视频压缩:I、P、B 分类: Hi35xx2013-04-01 ...IPB帧帧内压缩压缩法 /***********************************************************************************************************
  •  简单地说,I是关键,属于帧内压缩。就是和AVI的压缩是一样的。P是向前搜索的意思。B是双向搜索。他们都是基于I压缩数据。  I表示关键,你可以理解为这一画面的完整保留;解码时只需要本数据就...
  • 原理  从本质上来说,视频就是一种彩色像素点的三维排列。 其中两个维度反映画面在空间上(水平... 因此只要通过记录一中(空间差别)或几之间(时间差别)的差别,就可以对相同之处统一编码。这种基于空间差
  • 帧内预测和帧间预测的关系

    千次阅读 2017-07-21 20:07:49
    首先补充一下,一般编码时如果只使用帧内预测,那么它的配置文件是encoder_intra_main.cfg,如果存在帧间预测,那么它的配置文件是encoder_randomaccess_main.cfg。前面几篇博客写了tile和软件操作手册的一些东西,...
  • 目录 1、首先conda安装ffmpeg 2、使用ffmpeg从视频中截取图像 ffmpeg每隔5秒切分视频为图片 使用ffmpeg提取视频中的图像(根据...4.2、python实现视频关键提取(基于帧间差分) 1、首先conda安装ffmpeg ..
  • Cross-Component Prediction (CCP)跨组件预测是通过消除颜色组件的相关性,在保证颜色高保真度的同时,实现对视频内容的高效压缩,被HEVC RExt采纳。其核心思想是使用亮度组件来预测色度组件,进一步消除亮度和色度...
  • 简单地说,I是关键,属于帧内压缩。就是和AVI的压缩是一样的。 P是向前搜索的意思。B是双向搜索。他们都是基于I压缩数据。I表示关键,你可以理解为这一画面的完整保留;解码时只需要本数据就可以...
  • 嵌入式 视频压缩:I、P、B

    千次阅读 2013-12-02 14:52:59
    简单地说,I是关键,属于帧内压缩。就是和AVI的压缩是一样的。P是向前搜索的意思。B是双向搜索。他们都是基于I压缩数据。  I表示关键,你可以理解为这一画面的完整保留;解码时只需要本数据就可以...
  • 帧间帧内像素块预测

    千次阅读 2010-10-12 20:52:00
    一、像素块预测...H.264像素块预测编码包括帧内块预测和帧间块预测,而帧内块预测在H.264中占有极重要的地位。在图像信号压缩编码中,由于亮度信号和色差信号是分别进行处理的,因此,预测又可分亮度信号预测和
  • 帧内预测与帧间预测

    千次阅读 2008-08-26 23:47:00
    一、帧内预测:我觉得帧内预测是H.264区别于其它编码标准的一个重要特征,mpeg-1和mpeg-2都没有帧内预测,mpeg-4虽然有但作用并不明显,而h.264的帧内预测是很强大的,对于16x16的块支持4种帧内预测模式,对于4x4得...
  • 帧内预测和帧间预测的比较

    千次阅读 2012-04-07 10:45:34
    帧内预测与帧间预测 分类: H2642011-10-31 14:49 296人阅读 评论(0) 收藏 举报 帧内预测(Intra-Prediction) 预测块P是基于已编码重建快和当前块形成的,当前块减去这个预测块,将差值进行编码 ...
  • ffmpeg视频抽帧压缩总结

    千次阅读 2019-04-22 08:58:59
    之前在处理监控视频时要对视频进行抽帧压缩,使得视频大小限制在10M左右,所以使用ffmpeg进行视频加工处理,因为这个工具确实很强大。下面是用到的相关命令,可以直接跳到最后一条命令,那个才是最终版。 抽帧 ...
  • 一篇维基百科上关于视频压缩类型的说明,暂时是英文的,以后我会翻译出来和大家共享。he three major picture types found in typical video compression designs are Intra coded frames, Predicted pictures...
  • 很多gif图数很多,抽可以大幅压缩gif大小 1.导入gif到ps 2.勾选动作和时间轴面板 这时我们发现和图层的隐藏显示是相对应的 这样的话我们操作图层就会打乱,我们要让所有的图层都显示,但又不干扰的...
  • H.264预测编码之帧间预测

    千次阅读 2016-04-08 17:53:00
    预测编码是视频压缩中最基本的编码工具,常见的预测编码为帧间预测和帧内预测。 视频编码中,主要的冗余信息是时间冗余,其次是空间冗余,视频编码通过帧间预测消除时间冗余,通过帧内预测消除空间冗余。接下来...
  • 预测编码之帧间预测(Inter-Picture Prediction)    帧间预测是指利用视频时间域相关性,使用临近已编码图像像素预测当前图像的像素,以达到有效去除视频时域冗余的目的。由于视频序列通常包括较强的时域...
  • 视频压缩 I P B 详解

    千次阅读 2015-09-10 17:32:06
    自: http://blog.csdn.net/liangxiaozhang/article/details/17628829 ... 简单地说,I是关键,属于帧内压缩。就是和AVI的压缩是一样的。P是向前搜索的意思。B是双向搜索。他们都是基于I压缩数据。
  • MPEG压缩中的 I、B、P

    千次阅读 2012-03-14 17:00:33
    MPEG-1压缩的基本思想:帧内压缩帧间压缩。其次,时间相关性的统计分析:统计的结果表明,在间隔1~2的图像中,各像素只有10%以下的点,其亮度差值变化超过2%,而色度差值的变化只有1%以下。   MPEG-1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,405
精华内容 34,162
关键字:

帧间压缩转帧内压缩