精华内容
下载资源
问答
  • 视频压缩算法

    千次阅读 2016-09-06 10:38:27
    视频压缩算法的相关知识 MPEG-1 MPEG 视频压缩编码后包括三种元素:I帧(I-frames)、P帧(P-frames)和B帧(B-frames)。在MPEG编码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。I帧...
    视频压缩算法的相关知识
    MPEG-1
    MPEG 视频压缩编码后包括三种元素:I帧(I-frames)、P帧(P-frames)和B帧(B-frames)。在MPEG编码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。I帧法是帧内压缩法,也称为“关键帧”压缩法。I帧法是基于离散余弦变换DCT( Discrete Cosine Transform )的压缩技术,这样的算法与JPEG压缩算法相似。採用I帧压缩可达到1/6的压缩比而无明显的压缩痕迹。

    在保证图像质量的前提下实现高压缩的压缩算法,仅靠帧内压缩是不能实现的,MPEG採用了帧间和帧内相结合的压缩算法。 P帧法是一种前向预測算法,它考虑相邻帧之间的同样信息或数据,也即考虑运动的特性进行帧间压缩。P帧法是依据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据。採取P帧和I帧联合压缩的方法可达到更高的压缩且无明显的压缩痕迹。

    然而,仅仅有採用B帧压缩才干达到200:1的高压缩。B帧法是双向预測的帧间压缩算法。当把一帧压缩成B帧时,它依据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。B帧数据仅仅有I帧数据的百分之十五、P帧数据的百分之五十下面。

    MPEG 标准採用相似4:2:2的採用格式,压缩后亮度信号的分辨率为352×240,两个色度信号分辨率均为176×120,这两种不同分辨率信息的帧率都是每秒30帧。其编码的基本方法是在单位时间内,首先採集并压缩第一帧的图像为I帧。然后对于其后的各帧,在对单帧图像进行有效压缩的基础上,仅仅存储其相对于前后帧发生变化的部分。帧间压缩的过程中也常间隔採用帧内压缩法,因为帧内(关键帧)的压缩不基于前一帧,一般每隔15帧设一关键帧,这样能够降低相关前一帧压缩的误差积累。MPEG编码器首先要决定压缩当前帧为I帧或P帧或B帧,然后採用对应的算法对其进行压缩。一个视频序列经MPEG全编码压缩后可能的格式为:IBBPBBPBBPBBPBBIBBPBBPBBPBBPBBI......

    压缩成B帧或P帧要比压缩成I帧须要多得多的计算处理时间。有的编码器不具备B帧甚至P帧的压缩功能,显然其压缩效果不会非常好。


    MPEG-2
    MPEG 组织在1994年推出MPEG-2压缩标准,以实现视/音频服务与应用互操作的可能性。MPEG-2标准是针对标准数字电视和高清晰度电视在各种应用下的压缩方案和系统层的具体规定,编码码率从每秒3兆比特~100兆比特,标准的正式规范在ISO/IEC13818中。MPEG-2不是MPEG-1的简单升级,MPEG-2在系统和传送方面作了更加具体的规定和进一步的完好。MPEG-2特别适用于广播级的数字电视的编码和传送,被认定为SDTV和 HDTV的编码标准。MPEG-2还专门规定了多路节目的复分接方式。MPEG-2标准眼下分为9个部分,统称为ISO/IEC13818国际标准。

    MPEG -2图像压缩的原理是利用了图像中的两种特性:空间相关性和时间相关性。一帧图像内的不论什么一个场景都是由若干像素点构成的,因此一个像素通常与它周围的某些像素在亮度和色度上存在一定的关系,这样的关系叫作空间相关性;一个节目中的一个情节经常由若干帧连续图像组成的图像序列构成,一个图像序列中前后帧图像间也存在一定的关系,这样的关系叫作时间相关性。这两种相关性使得图像中存在大量的冗余信息。假设我们能将这些冗余信息去除,仅仅保留少量非相关信息进行传输,就能够大大节省传输频带。而接收机利用这些非相关信息,依照一定的解码算法,能够在保证一定的图像质量的前提下恢复原始图像。一个好的压缩编码方案就是能够最大限度地去除图像中的冗余信息。

    MPEG-2的编码图像被分为三类,分别称为I帧,P帧和B帧。

    I帧图像採用帧内编码方式,即仅仅利用了单帧图像内的空间相关性,而没有利用时间相关性。I帧使用帧内压缩,不使用运动补偿,因为I帧不依赖其它帧,所以是随机存取的入点,同一时候是解码的基准帧。I帧主要用于接收机的初始化和信道的获取,以及节目的切换和插入,I帧图像的压缩倍数相对较低。I帧图像是周期性出如今图像序列中的,出现频率可由编码器选择。 

    P帧和B帧图像採用帧间编码方式,即同一时候利用了空间和时间上的相关性。P帧图像仅仅採用前向时间预測,能够提高压缩效率和图像质量。P帧图像中能够包括帧内编码的部分,即P帧中的每个宏块能够是前向预測,也能够是帧内编码。B帧图像採用双向时间预測,能够大大提高压缩倍数。值得注意的是,因为B帧图像採用了未来帧作为參考,因此MPEG-2编码码流中图像帧的传输顺序和显示顺序是不同的。 

    P 帧和B帧图像採用帧间编码方式,即同一时候利用了空间和时间上的相关性。P帧图像仅仅採用前向时间预測,能够提高压缩效率和图像质量。P帧图像中能够包括帧内编码的部分,即P帧中的每个宏块能够是前向预測,也能够是帧内编码。B帧图像採用双向时间预測,能够大大提高压缩倍数。值得注意的是,因为B帧图像採用了未来帧作为參考,因此MPEG-2编码码流中图像帧的传输顺序和显示顺序是不同的。 

    MPEG-2的编码码流分为六个层次。为更好地表示编码数据,MPEG-2用句法规定了一个层次性结构。它分为六层,自上到下各自是:图像序列层、图像组(GOP)、图像、宏块条、宏块、块。


    MPEG-4
    MPEG -4于1998年11月发布, MPEG-4是针对一定比特率下的视频、音频编码,更加注重多媒体系统的交互性和灵活性。MPEG-4标准力求做到两个目标:低比特率下的多媒体通信;是多工业的多媒体通信的综合。为此,MPEG-4引入了AV对象(Audio/Visual Objects),使得很多其它的交互操作成为可能:
    "AV对象"能够是一个孤立的人,也能够是这个人的语音或一段背景音乐等。它具有高效编码、高效存储与传播及可交互操作的特性。

    MPEG -4对AV对象的操作主要有:採用AV对象来表示听觉、视觉或者视听组合内容;组合已有的AV对象来生成复合的AV对象,并由此生成AV场景;对AV对象的数据灵活地多路合成与同步,以便选择合适的网络来传输这些AV对象数据;同意接收端的用户在AV场景中对AV对象进行交互操作等。
    MPEG-4标准则由6个主要部分构成:
    ① DMIF(The Dellivery Multimedia Integration Framework)
    DMIF 即多媒体传送总体框架,它主要解决交互网络中、广播环境下以及磁盘应用中多媒体应用的操作问题。 通过传输多路合成比特信息来建立client和server端的交互和传输。 通过DMIF,MPEG4能够建立起具有特殊品质服务(QoS)的信道和面向每个基本流的带宽。
    ② 数据平面
    MPEG4中的数据平面能够分为两部分:传输关系部分和媒体关系部分。
    为了使基本流和AV对象在同一场景中出现,MPEG4引用了对象描写叙述(OD)和流图桌面(SMT) 的概念。OD 传输与特殊AV对象相关的基本流的信息流图。桌面把每个流与一个CAT(Channel Assosiation Tag)相连,CAT可实现该流的顺利传输。
    ③ 缓冲区管理和实时识别
    MPEG4定义了一个系统解码模式(SDM),该解码模式描写叙述了一种理想的处理比特流句法语义的解码装置,它要求特殊的缓冲区和实时模式。通过有效地管理,能够更好地利用有限的缓冲区空间。
    ④ 音频编码
    MPEG4的优越之处在于--它不仅支持自然声音,并且支持合成声音。MPEG4的音频部分将音频的合成编码和自然声音的编码相结合,并支持音频的对象特征。
    ⑤ 视频编码
    与音频编码相似,MPEG4也支持对自然和合成的视觉对象的编码。 合成的视觉对象包括2D、3D 动画和人面部表情动画等。
    ⑥ 场景描写叙述
    MPEG4 提供了一系列工具,用于组成场景中的一组对象。一些必要的合成信息就组成了场景描写叙述,这些场景描写叙述以二进制格式BIFS(Binary Format for Scene description)表示,BIFS与AV对象一同传输、编码。场景描写叙述主要用于描写叙述各AV对象在一具体AV场景坐标下,怎样组织与同步等问题。同一时候还有AV对象与AV场景的知识产权保护等问题。MPEG4为我们提供了丰富的AV场景。
    与MPEG-1和MPEG-2相比,MPEG-4更适于交互AV服务以及远程监控,它的设计目标使其具有更广的适应性和可扩展性: MPEG-4传输速率在4800-64000bps之间,分辨率为176×144,能够利用非常窄的带宽通过帧重建技术压缩和数据传输,从而能以最少的数据获得最佳的图像质量。因此,它将在数字电视、动态图像、互联网、实时多媒体监控、移动多媒体通信、Internet/Intranet上的视频流与可视游戏、DVD上的交互多媒体应用等方面大显身手。

    H.264
    H.264 是ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)开发的一个新的数字视频编码标准,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10 部分。1998年1月份開始草案征集,1999年9月,完毕第一个草案,2001年5月制定了其測试模式TML-8,2002年6月的 JVT第5次会议通过了H.264的FCD板。眼下该标准还在开发之中,预计明年上半年可正式通过。

    H.264和曾经的标准一样,也是 DPCM加变换编码的混合编码模式。但它採用“回归基本”的简洁设计,不用众多的选项,获得比H.263++好得多的压缩性能;加强了对各种信道的适应能力,採用“网络友好”的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求;它的基本系统是开放的,使用无需版权。

    H.264的算法在概念上能够分为两层:视频编码层(VCL:Video Coding Layer)负责高效的视频内容表示,网络提取层(NAL:Network Abstraction Layer)负责以网络所要求的恰当的方式对数据进行打包和传送。 H.264支持1/4或1/8像素精度的运动矢量。在1/4像素精度时可使用6抽头滤波器来降低高频噪声,对于1/8像素精度的运动矢量,可使用更为复杂的8抽头的滤波器。在进行运动预计时,编码器还可选择“增强”内插滤波器来提高预測的效果。H.264中熵编码有两种方法,一种是对全部的待编码的符号採用统一的VLC(UVLC :Universal VLC),还有一种是採用内容自适应的二进制算术编码。H.264 草案中包括了用于差错消除的工具,便于压缩视频在误码、丢包多发环境中传输,如移动信道或IP信道中传输的健壮性。

    在技术上,H.264 标准中有多个闪光之处,如统一的VLC符号编码,高精度、多模式的位移预计,基于4×4块的整数变换、分层的编码语法等。这些措施使得H.264算法具有非常的高编码效率,在同样的重建图像质量下,能够比H.263节约50%左右的码率。H.264的码流结构网络适应性强,添加了差错恢复能力,能够非常好地适应IP和无线网络的应用。

    H.264具有广阔的应用前景,比如实时视频通信、因特网视频传输、视频流媒体服务、异构网上的多点通信、压缩视频存储、视频数据库等。H.264优越性能的获得不是没有代价的,其代价是计算复杂度的大大添加,据预计,编码的计算复杂度大约相当于H.263的3 倍,解码复杂度大约相当于H.263的2倍。

    H.264建议的技术特点能够归纳为三个方面,一是注重有用,採用成熟的技术,追求更高的编码效率,简洁的表现形式;二是注重对移动和IP网络的适应,採用分层技术,从形式上将编码和信道隔离开来,实质上是在源编码器算法中很多其它地考虑到信道的特点;三是在混合编码器的基本框架下,对其主要关键部件都做了重大改进,如多模式运动预计、帧内预測、多帧预測、统一VLC、4×4二维整数变换等。

    迄今为止,H.264尚未最后定稿,但因其更高的压缩比,更好的信道适应性,必将在数字视频的通信或存储领域得到越来越广泛的应用,其发展潜力不可限量。 
    展开全文
  • H264视频压缩算法

    2019-09-28 21:35:18
    H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。随着 x264/openh264以及ffmpeg等开源库的推出, 大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本。 但为了用好H...

    H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。随着 x264/openh264以及ffmpeg等开源库的推出,

    大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本。

    但为了用好H264,我们还是要对H264的基本原理弄清楚才行。今天我们就来看看H264的基本原理。

    H264概述

    H264压缩技术主要采用了以下几种方法对视频数据进行压缩。包括:

    (1) 帧内预测压缩:解决的是空域数据冗余问题。
    (2) 帧间预测压缩:(运动估计与补偿),解决的是时域数据冗余问题。
    (3) 整数离散余弦变换(DCT):将空间上的相关性变为频域上无关的数据,然后进行量化。
    (4) CABAC压缩。


    经过压缩后的帧分为:I帧,P帧和B帧:

    I帧:关键帧,采用帧内压缩技术。
    P帧:向前参考帧,在压缩时,只参考前面已经处理的帧。采用帧间压缩技术。
    B帧:双向参考帧,在压缩时,它即参考前面的帧,又参考它后面的帧。采用帧间压缩技术。

    图像序列GOP:

    • GOP:两个I帧之间是一个图像序列;一个图像序列中只有一个I帧。

     

    H264基本原理

    下我们就简单的描述一下H264压缩数据的过程。通过摄像头采集到的视频帧(按每秒 30 帧算),被送到 H264 编码器的缓冲区中。编码器先要为每一幅图片划分宏块。

    1、划分宏块

    H264默认是使用 16X16 大小的区域作为一个宏块,也可以划分成 8X8 大小的宏块。

     

     

    划分好宏块后,计算宏块的象素值

    以此类推,计算一幅图像中每个宏块的像素值,所有宏块都处理完后如下面的样子。

     

    2、划分子块

    H264对比较平坦的图像使用 16X16 大小的宏块。但为了更高的压缩率,还可以在 16X16 的宏块上更划分出更小的子块。

    子块的大小可以是 8X16、 16X8、 8X8、 4X8、 8X4、 4X4,非常的灵活。

    上幅图中,红框内的 16X16 宏块中大部分是蓝色背景,而三只鹰的部分图像被划在了该宏块内,

    为了更好的处理三只鹰的部分图像,H264就在 16X16 的宏块内又划分出了多个子块。

    这样再经过帧内压缩,可以得到更高效的数据。

    下图是分别使用mpeg-2和H264对上面宏块进行压缩后的结果。

    其中左半部分为MPEG-2子块划分后压缩的结果,右半部分为H264的子块划压缩后的结果,可以看出H264的划分方法更具优势。

    宏块划分好后,就可以对H264编码器缓存中的所有图片进行分组了。

    3、帧分组

    对于视频数据主要有两类数据冗余,一类是时间上的数据冗余,另一类是空间上的数据冗余。其中时间上的数据冗余是最大的。

    为什么说时间上的冗余是最大的呢?假设摄像头每秒抓取30帧,这30帧的数据大部分情况下都是相关联的。也有可能不止30帧的的数据,可能几十帧,上百帧的数据都是关联特别密切的。

    对于这些关联特别密切的帧,其实我们只需要保存一帧的数据,其它帧都可以通过这一帧再按某种规则预测出来,所以说视频数据在时间上的冗余是最多的。

     

    为了达到相关帧通过预测的方法来压缩数据,就需要将视频帧进行分组。那么如何判定某些帧关系密切,可以划为一组呢?

    我们来看一下例子,下面是捕获的一组运动的台球的视频帧,台球从右上角滚到了左下角。


    H264编码器会按顺序,每次取出两幅相邻的帧进行宏块比较,计算两帧的相似度。如下图:

    通过宏块扫描与宏块搜索可以发现这两个帧的关联度是非常高的。进而发现这一组帧的关联度都是非常高的。因此,上面这几帧就可以划分为一组。

    帧分组算法是:在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内,我们认为这样的图可以分到一组。

     

    在这样一组帧中,经过编码后,我们只保留第一帖的完整数据,其它帧都通过参考上一帧计算出来。我们称第一帧为IDR/I帧,其它帧我们称为P/B帧,这样编码后的数据帧组我们称为GOP。

    4、运动估计与补偿(帧间预测)

    在H264编码器中将帧分组后,就要计算帧组内物体的运动矢量了。还以上面运动的台球视频帧为例,我们来看一下它是如何计算运动矢量的。

    H264编码器首先按顺序从缓冲区头部取出两帧视频数据,然后进行宏块扫描。当发现其中一幅图片中有物体时,就在另一幅图的邻近位置(搜索窗口中)进行搜索。

    如果此时在另一幅图中找到该物体,那么就可以计算出物体的运动矢量了。

    通过上图中台球位置相差,就可以计算出台图运行的方向和距离。

    H264依次把每一帧中球移动的距离和方向都记录下来就成了下面的样子:

     

    运动矢量计算出来后,将相同部分(也就是绿色部分)减去,就得到了补偿数据。我们最终只需要将补偿数据进行压缩保存,

    以后在解码时就可以恢复原图了。压缩补偿后的数据只需要记录很少的一点数据。

    我们把运动矢量与补偿称为帧间压缩技术,它解决的是视频帧在时间上的数据冗余。

     

    除了帧间压缩,帧内也要进行数据压缩,帧内数据压缩解决的是空间上的数据冗余。下面我们就来介绍一下帧内压缩技术。

    5、帧内预测

    人眼对图象都有一个识别度,对低频的亮度很敏感,对高频的亮度不太敏感。所以基于一些研究,可以将一幅图像中人眼不敏感的数据去除掉。这样就提出了帧内预测技术。

    H264的帧内压缩与JPEG很相似。一幅图像被划分好宏块后,对每个宏块可以进行 9 种模式的预测。找出与原图最接近的一种预测模式。

    帧内预测后的图像与原始图像的对比如下:

    然后,将原始图像与帧内预测后的图像相减得残差值

    再将我们之前得到的预测模式信息一起保存起来,这样我们就可以在解码时恢复原图了。效果如下:

     

    经过帧内与帧间的压缩后,虽然数据有大幅减少,但还有优化的空间。

    6、对残差数据做DCT转换

    可以将残差数据做整数离散余弦变换,去掉数据的相关性,进一步压缩数据

    如下图所示,左侧为原数据的宏块,右侧为计算出的残差数据的宏块。

     

    将残差数据宏块数字化后如下图所示:

    将残差数据宏块进行 DCT 转换。

     

    去掉相关联的数据后,我们可以看出数据被进一步压缩了。

    做完 DCT 后,还不够,还要进行 CABAC 进行无损压缩。

    7、CABAC 压缩

    上面的帧内压缩是属于有损压缩技术。也就是说图像被压缩后,无法完全复原。而CABAC属于无损压缩技术

    无损压缩技术大家最熟悉的可能就是哈夫曼编码了,给高频的词一个短码,给低频词一个长码从而达到数据压缩的目的。

    MPEG-2中使用的VLC就是这种算法,我们以 A-Z 作为例子,A属于高频数据,Z属于低频数据。看看它是如何做的。

     

    CABAC也是给高频数据短码,给低频数据长码。同时还会根据上下文相关性进行压缩,这种方式又比VLC高效很多。其效果如下:

    现在将 A-Z 换成视频帧,它就成了下面的样子。

    从上面这张图中明显可以看出采用 CACBA 的无损压缩方案要比 VLC 高效的多。

    小结

    至此,我们就将H264的编码原理讲完了。本篇文章主要讲了以下以点内容:
    1. 简音介绍了H264中的一些基本概念。如I/P/B帧, GOP。
    2. 详细讲解了H264编码的基本原理,包括:

    宏块的划分
    图像分组
    帧内压缩技术原理
    帧间压缩技术原理。
    DCT
    CABAC压缩原理。
    希望以上内容能对您有所帮助。谢谢!


    原文网址:https://blog.csdn.net/garrylea/article/details/78536775 
    本文有小的修改、删减。

     

    转载于:https://www.cnblogs.com/pjl1119/p/9914861.html

    展开全文
  • H264视频压缩算法简析

    千次阅读 2019-11-06 18:02:45
    H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。随着 x264/openh264以及ffmpeg等开源库的推出, 大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本。 但为了用好H...

    H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。随着 x264/openh264以及ffmpeg等开源库的推出,

    大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本。

    但为了用好H264,我们还是要对H264的基本原理弄清楚才行。今天我们就来看看H264的基本原理。

    H264概述

    H264压缩技术主要采用了以下几种方法对视频数据进行压缩。包括:

    (1) 帧内预测压缩:解决的是空域数据冗余问题。
    (2) 帧间预测压缩:(运动估计与补偿),解决的是时域数据冗余问题。
    (3) 整数离散余弦变换(DCT):将空间上的相关性变为频域上无关的数据,然后进行量化。
    (4) CABAC压缩。


    经过压缩后的帧分为:I帧,P帧和B帧:

    I帧:关键帧,采用帧内压缩技术。
    P帧:向前参考帧,在压缩时,只参考前面已经处理的帧。采用帧间压缩技术。
    B帧:双向参考帧,在压缩时,它即参考前面的帧,又参考它后面的帧。采用帧间压缩技术。
     

    图像序列GOP:

    • GOP:两个I帧之间是一个图像序列;一个图像序列中只有一个I帧。

     

    H264基本原理

    下我们就简单的描述一下H264压缩数据的过程。通过摄像头采集到的视频帧(按每秒 30 帧算),被送到 H264 编码器的缓冲区中。编码器先要为每一幅图片划分宏块。

    1、划分宏块

    H264默认是使用 16X16 大小的区域作为一个宏块,也可以划分成 8X8 大小的宏块。

     

     

    划分好宏块后,计算宏块的象素值

    以此类推,计算一幅图像中每个宏块的像素值,所有宏块都处理完后如下面的样子。

     

    2、划分子块

    H264对比较平坦的图像使用 16X16 大小的宏块。但为了更高的压缩率,还可以在 16X16 的宏块上更划分出更小的子块。

    子块的大小可以是 8X16、 16X8、 8X8、 4X8、 8X4、 4X4,非常的灵活。

    上幅图中,红框内的 16X16 宏块中大部分是蓝色背景,而三只鹰的部分图像被划在了该宏块内,

    为了更好的处理三只鹰的部分图像,H264就在 16X16 的宏块内又划分出了多个子块。

    这样再经过帧内压缩,可以得到更高效的数据。

    下图是分别使用mpeg-2和H264对上面宏块进行压缩后的结果。

    其中左半部分为MPEG-2子块划分后压缩的结果,右半部分为H264的子块划压缩后的结果,可以看出H264的划分方法更具优势。

    宏块划分好后,就可以对H264编码器缓存中的所有图片进行分组了。

    3、帧分组

    对于视频数据主要有两类数据冗余,一类是时间上的数据冗余,另一类是空间上的数据冗余。其中时间上的数据冗余是最大的。

    为什么说时间上的冗余是最大的呢?假设摄像头每秒抓取30帧,这30帧的数据大部分情况下都是相关联的。也有可能不止30帧的的数据,可能几十帧,上百帧的数据都是关联特别密切的。

    对于这些关联特别密切的帧,其实我们只需要保存一帧的数据,其它帧都可以通过这一帧再按某种规则预测出来,所以说视频数据在时间上的冗余是最多的。

     

    为了达到相关帧通过预测的方法来压缩数据,就需要将视频帧进行分组。那么如何判定某些帧关系密切,可以划为一组呢?

    我们来看一下例子,下面是捕获的一组运动的台球的视频帧,台球从右上角滚到了左下角。


    H264编码器会按顺序,每次取出两幅相邻的帧进行宏块比较,计算两帧的相似度。如下图:

    通过宏块扫描与宏块搜索可以发现这两个帧的关联度是非常高的。进而发现这一组帧的关联度都是非常高的。因此,上面这几帧就可以划分为一组。

    帧分组算法是:在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内,我们认为这样的图可以分到一组。

     

    在这样一组帧中,经过编码后,我们只保留第一帖的完整数据,其它帧都通过参考上一帧计算出来。我们称第一帧为IDR/I帧,其它帧我们称为P/B帧,这样编码后的数据帧组我们称为GOP。

    4、运动估计与补偿(帧间预测)

    在H264编码器中将帧分组后,就要计算帧组内物体的运动矢量了。还以上面运动的台球视频帧为例,我们来看一下它是如何计算运动矢量的。

    H264编码器首先按顺序从缓冲区头部取出两帧视频数据,然后进行宏块扫描。当发现其中一幅图片中有物体时,就在另一幅图的邻近位置(搜索窗口中)进行搜索。

    如果此时在另一幅图中找到该物体,那么就可以计算出物体的运动矢量了。

    通过上图中台球位置相差,就可以计算出台图运行的方向和距离。

    H264依次把每一帧中球移动的距离和方向都记录下来就成了下面的样子:

     

    运动矢量计算出来后,将相同部分(也就是绿色部分)减去,就得到了补偿数据。我们最终只需要将补偿数据进行压缩保存,

    以后在解码时就可以恢复原图了。压缩补偿后的数据只需要记录很少的一点数据。

    我们把运动矢量与补偿称为帧间压缩技术,它解决的是视频帧在时间上的数据冗余。

     

    除了帧间压缩,帧内也要进行数据压缩,帧内数据压缩解决的是空间上的数据冗余。下面我们就来介绍一下帧内压缩技术。

    5、帧内预测

    人眼对图象都有一个识别度,对低频的亮度很敏感,对高频的亮度不太敏感。所以基于一些研究,可以将一幅图像中人眼不敏感的数据去除掉。这样就提出了帧内预测技术。

    H264的帧内压缩与JPEG很相似。一幅图像被划分好宏块后,对每个宏块可以进行 9 种模式的预测。找出与原图最接近的一种预测模式。
     

    帧内预测后的图像与原始图像的对比如下:

    然后,将原始图像与帧内预测后的图像相减得残差值

    再将我们之前得到的预测模式信息一起保存起来,这样我们就可以在解码时恢复原图了。效果如下:

     

    经过帧内与帧间的压缩后,虽然数据有大幅减少,但还有优化的空间。

    6、对残差数据做DCT转换

    可以将残差数据做整数离散余弦变换,去掉数据的相关性,进一步压缩数据

    如下图所示,左侧为原数据的宏块,右侧为计算出的残差数据的宏块。

     

    将残差数据宏块数字化后如下图所示:

    将残差数据宏块进行 DCT 转换。

     

    去掉相关联的数据后,我们可以看出数据被进一步压缩了。

    做完 DCT 后,还不够,还要进行 CABAC 进行无损压缩。

    7、CABAC 压缩

    上面的帧内压缩是属于有损压缩技术。也就是说图像被压缩后,无法完全复原。而CABAC属于无损压缩技术。

    无损压缩技术大家最熟悉的可能就是哈夫曼编码了,给高频的词一个短码,给低频词一个长码从而达到数据压缩的目的。

    MPEG-2中使用的VLC就是这种算法,我们以 A-Z 作为例子,A属于高频数据,Z属于低频数据。看看它是如何做的。

     

    CABAC也是给高频数据短码,给低频数据长码。同时还会根据上下文相关性进行压缩,这种方式又比VLC高效很多。其效果如下:

    现在将 A-Z 换成视频帧,它就成了下面的样子。

    从上面这张图中明显可以看出采用 CACBA 的无损压缩方案要比 VLC 高效的多。

    小结

    至此,我们就将H264的编码原理讲完了。本篇文章主要讲了以下以点内容:
    1. 简音介绍了H264中的一些基本概念。如I/P/B帧, GOP。
    2. 详细讲解了H264编码的基本原理,包括:

    宏块的划分
    图像分组
    帧内压缩技术原理
    帧间压缩技术原理。
    DCT
    CABAC压缩原理。
    希望以上内容能对您有所帮助。谢谢!


    原文网址:https://blog.csdn.net/garrylea/article/details/78536775  本文转载这个兄弟的

     

    展开全文
  • 视频压缩算法的相关知识

    千次阅读 2007-09-23 18:38:00
    视频压缩算法的相关知识MPEG-1MPEG 视频压缩编码后包括三种元素:I帧(I-frames)、P帧(P-frames)和B帧(B-frames)。在MPEG编码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。I帧法是...
    视频压缩算法的相关知识
    MPEG-1
    MPEG 视频压缩编码后包括三种元素:I帧(I-frames)、P帧(P-frames)和B帧(B-frames)。在MPEG编码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。I帧法是帧内压缩法,也称为“关键帧”压缩法。I帧法是基于离散余弦变换DCT( Discrete Cosine Transform )的压缩技术,这种算法与JPEG压缩算法类似。采用I帧压缩可达到1/6的压缩比而无明显的压缩痕迹。

    在保证图像质量的前提下实现高压缩的压缩算法,仅靠帧内压缩是不能实现的,MPEG采用了帧间和帧内相结合的压缩算法。 P帧法是一种前向预测算法,它考虑相邻帧之间的相同信息或数据,也即考虑运动的特性进行帧间压缩。P帧法是根据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据。采取P帧和I帧联合压缩的方法可达到更高的压缩且无明显的压缩痕迹。

    然而,只有采用B帧压缩才能达到200:1的高压缩。B帧法是双向预测的帧间压缩算法。当把一帧压缩成B帧时,它根据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。B帧数据只有I帧数据的百分之十五、P帧数据的百分之五十以下。

    MPEG 标准采用类似4:2:2的采用格式,压缩后亮度信号的分辨率为352×240,两个色度信号分辨率均为176×120,这两种不同分辨率信息的帧率都是每秒30帧。其编码的基本方法是在单位时间内,首先采集并压缩第一帧的图像为I帧。然后对于其后的各帧,在对单帧图像进行有效压缩的基础上,只存储其相对于前后帧发生变化的部分。帧间压缩的过程中也常间隔采用帧内压缩法,由于帧内(关键帧)的压缩不基于前一帧,一般每隔15帧设一关键帧,这样可以减少相关前一帧压缩的误差积累。MPEG编码器首先要决定压缩当前帧为I帧或P帧或B帧,然后采用相应的算法对其进行压缩。一个视频序列经MPEG全编码压缩后可能的格式为:IBBPBBPBBPBBPBBIBBPBBPBBPBBPBBI......

    压缩成B帧或P帧要比压缩成I帧需要多得多的计算处理时间。有的编码器不具备B帧甚至P帧的压缩功能,显然其压缩效果不会很好。


    MPEG-2
    MPEG 组织在1994年推出MPEG-2压缩标准,以实现视/音频服务与应用互操作的可能性。MPEG-2标准是针对标准数字电视和高清晰度电视在各种应用下的压缩方案和系统层的详细规定,编码码率从每秒3兆比特~100兆比特,标准的正式规范在ISO/IEC13818中。MPEG-2不是MPEG-1的简单升级,MPEG-2在系统和传送方面作了更加详细的规定和进一步的完善。MPEG-2特别适用于广播级的数字电视的编码和传送,被认定为SDTV和 HDTV的编码标准。MPEG-2还专门规定了多路节目的复分接方式。MPEG-2标准目前分为9个部分,统称为ISO/IEC13818国际标准。

    MPEG -2图像压缩的原理是利用了图像中的两种特性:空间相关性和时间相关性。一帧图像内的任何一个场景都是由若干像素点构成的,因此一个像素通常与它周围的某些像素在亮度和色度上存在一定的关系,这种关系叫作空间相关性;一个节目中的一个情节常常由若干帧连续图像组成的图像序列构成,一个图像序列中前后帧图像间也存在一定的关系,这种关系叫作时间相关性。这两种相关性使得图像中存在大量的冗余信息。如果我们能将这些冗余信息去除,只保留少量非相关信息进行传输,就可以大大节省传输频带。而接收机利用这些非相关信息,按照一定的解码算法,可以在保证一定的图像质量的前提下恢复原始图像。一个好的压缩编码方案就是能够最大限度地去除图像中的冗余信息。

    MPEG-2的编码图像被分为三类,分别称为I帧,P帧和B帧。

    I帧图像采用帧内编码方式,即只利用了单帧图像内的空间相关性,而没有利用时间相关性。I帧使用帧内压缩,不使用运动补偿,由于I帧不依赖其它帧,所以是随机存取的入点,同时是解码的基准帧。I帧主要用于接收机的初始化和信道的获取,以及节目的切换和插入,I帧图像的压缩倍数相对较低。I帧图像是周期性出现在图像序列中的,出现频率可由编码器选择。

    P帧和B帧图像采用帧间编码方式,即同时利用了空间和时间上的相关性。P帧图像只采用前向时间预测,可以提高压缩效率和图像质量。P帧图像中可以包含帧内编码的部分,即P帧中的每一个宏块可以是前向预测,也可以是帧内编码。B帧图像采用双向时间预测,可以大大提高压缩倍数。值得注意的是,由于B帧图像采用了未来帧作为参考,因此MPEG-2编码码流中图像帧的传输顺序和显示顺序是不同的。

    P 帧和B帧图像采用帧间编码方式,即同时利用了空间和时间上的相关性。P帧图像只采用前向时间预测,可以提高压缩效率和图像质量。P帧图像中可以包含帧内编码的部分,即P帧中的每一个宏块可以是前向预测,也可以是帧内编码。B帧图像采用双向时间预测,可以大大提高压缩倍数。值得注意的是,由于B帧图像采用了未来帧作为参考,因此MPEG-2编码码流中图像帧的传输顺序和显示顺序是不同的。

    MPEG-2的编码码流分为六个层次。为更好地表示编码数据,MPEG-2用句法规定了一个层次性结构。它分为六层,自上到下分别是:图像序列层、图像组(GOP)、图像、宏块条、宏块、块。


    MPEG-4
    MPEG -4于1998年11月公布, MPEG-4是针对一定比特率下的视频、音频编码,更加注重多媒体系统的交互性和灵活性。MPEG-4标准力求做到两个目标:低比特率下的多媒体通信;是多工业的多媒体通信的综合。为此,MPEG-4引入了AV对象(Audio/Visual Objects),使得更多的交互操作成为可能:
    "AV对象"可以是一个孤立的人,也可以是这个人的语音或一段背景音乐等。它具有高效编码、高效存储与传播及可交互操作的特性。

    MPEG -4对AV对象的操作主要有:采用AV对象来表示听觉、视觉或者视听组合内容;组合已有的AV对象来生成复合的AV对象,并由此生成AV场景;对AV对象的数据灵活地多路合成与同步,以便选择合适的网络来传输这些AV对象数据;允许接收端的用户在AV场景中对AV对象进行交互操作等。
    MPEG-4标准则由6个主要部分构成:
    ① DMIF(The Dellivery Multimedia Integration Framework)
    DMIF 即多媒体传送整体框架,它主要解决交互网络中、广播环境下以及磁盘应用中多媒体应用的操作问题。 通过传输多路合成比特信息来建立客户端和服务器端的交互和传输。 通过DMIF,MPEG4可以建立起具有特殊品质服务(QoS)的信道和面向每个基本流的带宽。
    ② 数据平面
    MPEG4中的数据平面可以分为两部分:传输关系部分和媒体关系部分。
    为了使基本流和AV对象在同一场景中出现,MPEG4引用了对象描述(OD)和流图桌面(SMT) 的概念。OD 传输与特殊AV对象相关的基本流的信息流图。桌面把每一个流与一个CAT(Channel Assosiation Tag)相连,CAT可实现该流的顺利传输。
    ③ 缓冲区管理和实时识别
    MPEG4定义了一个系统解码模式(SDM),该解码模式描述了一种理想的处理比特流句法语义的解码装置,它要求特殊的缓冲区和实时模式。通过有效地管理,可以更好地利用有限的缓冲区空间。
    ④ 音频编码
    MPEG4的优越之处在于--它不仅支持自然声音,而且支持合成声音。MPEG4的音频部分将音频的合成编码和自然声音的编码相结合,并支持音频的对象特征。
    ⑤ 视频编码
    与音频编码类似,MPEG4也支持对自然和合成的视觉对象的编码。 合成的视觉对象包括2D、3D 动画和人面部表情动画等。
    ⑥ 场景描述
    MPEG4 提供了一系列工具,用于组成场景中的一组对象。一些必要的合成信息就组成了场景描述,这些场景描述以二进制格式BIFS(Binary Format for Scene description)表示,BIFS与AV对象一同传输、编码。场景描述主要用于描述各AV对象在一具体AV场景坐标下,如何组织与同步等问题。同时还有AV对象与AV场景的知识产权保护等问题。MPEG4为我们提供了丰富的AV场景。
    与MPEG-1和MPEG-2相比,MPEG-4更适于交互AV服务以及远程监控,它的设计目标使其具有更广的适应性和可扩展性: MPEG-4传输速率在4800-64000bps之间,分辨率为176×144,可以利用很窄的带宽通过帧重建技术压缩和传输数据,从而能以最少的数据获得最佳的图像质量。因此,它将在数字电视、动态图像、互联网、实时多媒体监控、移动多媒体通信、Internet/Intranet上的视频流与可视游戏、DVD上的交互多媒体应用等方面大显身手。

    H.264
    H.264 是ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)开发的一个新的数字视频编码标准,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10 部分。1998年1月份开始草案征集,1999年9月,完成第一个草案,2001年5月制定了其测试模式TML-8,2002年6月的 JVT第5次会议通过了H.264的FCD板。目前该标准还在开发之中,预计明年上半年可正式通过。

    H.264和以前的标准一样,也是 DPCM加变换编码的混合编码模式。但它采用“回归基本”的简洁设计,不用众多的选项,获得比H.263++好得多的压缩性能;加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求;它的基本系统是开放的,使用无需版权。

    H.264的算法在概念上可以分为两层:视频编码层(VCL:Video Coding Layer)负责高效的视频内容表示,网络提取层(NAL:Network Abstraction Layer)负责以网络所要求的恰当的方式对数据进行打包和传送。 H.264支持1/4或1/8像素精度的运动矢量。在1/4像素精度时可使用6抽头滤波器来减少高频噪声,对于1/8像素精度的运动矢量,可使用更为复杂的8抽头的滤波器。在进行运动估计时,编码器还可选择“增强”内插滤波器来提高预测的效果。H.264中熵编码有两种方法,一种是对所有的待编码的符号采用统一的VLC(UVLC :Universal VLC),另一种是采用内容自适应的二进制算术编码。H.264 草案中包含了用于差错消除的工具,便于压缩视频在误码、丢包多发环境中传输,如移动信道或IP信道中传输的健壮性。

    在技术上,H.264 标准中有多个闪光之处,如统一的VLC符号编码,高精度、多模式的位移估计,基于4×4块的整数变换、分层的编码语法等。这些措施使得H.264算法具有很的高编码效率,在相同的重建图像质量下,能够比H.263节约50%左右的码率。H.264的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应IP和无线网络的应用。

    H.264具有广阔的应用前景,例如实时视频通信、因特网视频传输、视频流媒体服务、异构网上的多点通信、压缩视频存储、视频数据库等。H.264优越性能的获得不是没有代价的,其代价是计算复杂度的大大增加,据估计,编码的计算复杂度大约相当于H.263的3 倍,解码复杂度大约相当于H.263的2倍。

    H.264建议的技术特点可以归纳为三个方面,一是注重实用,采用成熟的技术,追求更高的编码效率,简洁的表现形式;二是注重对移动和IP网络的适应,采用分层技术,从形式上将编码和信道隔离开来,实质上是在源编码器算法中更多地考虑到信道的特点;三是在混合编码器的基本框架下,对其主要关键部件都做了重大改进,如多模式运动估计、帧内预测、多帧预测、统一VLC、4×4二维整数变换等。

    迄今为止,H.264尚未最后定稿,但因其更高的压缩比,更好的信道适应性,必将在数字视频的通信或存储领域得到越来越广泛的应用,其发展潜力不可限量。 
    展开全文
  • iphone视频压缩算法

    2016-07-15 10:53:44
    经过我的观察发现系统的压缩和AVAssetExportPresetMediumQuality相当 66m 的 480 * 640 视频压缩过后是15m. 发现这种方法之前我一直是逐帧的压缩,就是一边向文件里面写视频帧一边压缩,这样导致视频非常的不...
  • 深度学习图像视频压缩算法——TNG

    千次阅读 2018-05-03 10:19:28
    互联网时代,社交媒体分享、自动驾驶、增强显示、卫星通信、高清电视或视频监控等应用场景对图片和视频有很强的需求,压缩算法也因此备受关注,但是不同的应用场景对压缩算法的性能要求也不一样:有的需求是以保持...
  • 现有图象和视频压缩算法

    千次阅读 2007-10-19 09:05:00
    静态图像压缩最常用的是jpeg, ...动态视频算法就太多了,VCD用mpeg-1, DVD用mpeg-2, 视频会议常用H.261。压缩比更高一些的是H.263和mpeg-4,最新一代的算法是H.264和微软的WMV9,用于新一代HD-DVD及蓝光光盘上。 
  • 视频会议压缩算法

    千次阅读 2014-03-04 10:21:18
    视频压缩之—SVC   H.264中还有一个SVC概念(Scalable Video Coding),可分层编码。先不管其具体的含义,来想象下视频通信中可能遇到的问题。 1.带宽问题,IP网络带宽是不稳定的,网络带宽降低是,视频流...
  • 视频无损高效压缩算法

    千次阅读 2016-03-29 14:03:09
    出来的,无损压缩JPEG图像和H.264 视频算法。它采用了更高效的编码算法压缩率分别达到22%和13% (Deprecated) Lossless h.264 recoder/recompressor. For newest version see: — More... ...
  • 无损压缩算法专题——无损压缩算法介绍

    千次阅读 多人点赞 2019-12-22 19:50:21
    一、数据无损压缩的理论——信息论 数据压缩的起源是基于信息论的。信息论之父香农第一次用数学语言阐明了概率与信息冗余度的关系。在1948年发表的论文“通信的数学理论”中,香农指出,任何信息都存在冗余,冗余...
  • 转载地址: ... 对于算法研究而言,本身就是要先...视频压缩的可行性 1.空间冗余 一幅静态图像,比如人脸。背景,人脸,头发等处的亮度,颜色,都是平缓变化的。相邻的像素和色度信号值比较接近。具有强相关
  • 视频压缩编码算法与原理

    千次阅读 2019-03-23 20:35:44
    视频压缩编码算法与原理
  • 绪论 JPEG-LS是在ISO/ITU的新标准中用于对静态连续色调图像进行无损或进无损压缩...1.压缩算法简介与评估 1.1 压缩算法简介 无损压缩就是指经过压缩并重建后的图像和原图像完全一样,没有任何损失。如果重建图像和原图
  • 图像压缩算法

    万次阅读 2015-09-23 16:20:26
    图像压缩算法声明:引用请注明出处http://blog.csdn.net/lg1259156776/理论基础香农的信息论,在不产生任何失真的前提下,通过合理的编码,对于每个信源符号分配不等长的码字,平均码长可以任意接近于信源的熵。...
  • 摘 要:介绍了视频的模式、数字化视频的采样方式以及各种压缩算法。关键词:视频模型;数字化视频;信号采集;压缩算法 随着信息技术的不断发展,人们将计算机技术引入视频采集、制作领域,传统的视频领域正面临着...
  • 数据压缩算法

    千次阅读 2013-12-02 16:41:59
    一 引言 随着互联网的飞快发展,整个互联网产生原来越多的数据,这个世界充满了数据,人们的生活离不开数据,然而能够有效表达数据的算法在现代的计算机基础架构...因为大多数数据有很大的冗余,所以数据压缩算法能够节
  • android 图片压缩算法-luban

    千次阅读 2018-02-27 19:35:54
    图片压缩算法-luban luban 鲁班算法是号称最接近微信朋友圈图片压缩算法的一种图片压缩算法,GitHub 地址: https://github.com/Curzibn/Luban 根据作者提供的数据,压缩效果如下: 内容 原图 Luban ...
  • 图像与视频编码,压缩。  在数字电视的信源压缩编码中,由于要求的压缩率较高,普遍采用有损压缩的方法。图像压缩编码从本质上来说就是对要处理的图像数据按照一定的规则进行变换和组合,从而达到以尽可能少的数据...
  • 几种压缩算法

    千次阅读 2018-01-24 16:37:37
    一、 行程长度压缩  原理是将一扫描行中的颜色值相同的相邻像素用一个计数值和那些像素的颜色值来代替。... 1.PCX行程压缩方法: 该算法实际上是位映射格式到压缩格式的转换算法,该算法对于连续 出现1次的字节
  • 文章目录程序员需要了解的硬核知识之压缩算法认识压缩算法文件存储压缩算法的定义几种常用压缩算法的理解RLE 算法的机制RLE 算法的缺点哈夫曼算法和莫尔斯编码用二叉树实现哈夫曼算法哈夫曼树能够提升压缩比率可逆...
  • 视频入门(四)-JPEG压缩算法原理

    千次阅读 2021-03-31 21:45:08
    一、JPEG的引入 JPEG属于一种图片压缩格式,之前我们通过对YUV420图像格式的学习,了解了怎么计算一帧YUV图像的大小。...在日常生活中所见的压缩有分为有损压缩和无损压缩,JPEG压缩属于有损压缩的一种。有损
  • JPEG图像压缩算法详解

    千次阅读 2019-09-11 08:44:08
    JPEG压缩算法之前已有很多前辈详细讲解过,我就不在这里画蛇添足了(主要是我懒。。),转载两篇JPEG压缩算法介绍,拼为一篇。侵删。 JPEG图像压缩算法详解 图片压缩有多重要,可能很多人可能并没有一个直观...
  • 基于FPGA实现压缩算法

    千次阅读 2020-03-18 17:09:12
    在实现LZW压缩与解压缩算法的时候,需要构建一个字典,用来存放压缩过程中形成的字符串表。LZW算法的字典是自适应生成的,在实际应用中,若无限制地增大字典的容量,虽然可能获得更好的压缩率,但进行字符串匹配时...
  • 数据压缩算法综述

    千次阅读 2012-02-25 10:35:26
    《笨笨数据压缩教程》是我在1998年因工作需要研究压缩算法时写的文章(算是一 种工作笔记吧,其中难免有许多疏漏),1999年初随着项目变迁,就把压缩技术的 研究暂时搁置了。从那以后,一是工作太忙,二是自己懒惰,...
  • 压缩算法概述

    千次阅读 2011-11-09 09:05:58
    一、 行程长度压缩 原理是将一扫描行中的颜色值相同的相邻像素用...由RLE原理派生出许多具体行程压缩方法: 1.PCX行程压缩方法: 该算法实际上是位映射格式到压缩格式的转换算法,该算法对于连续出现1次的字节Ch,若Ch>0x
  • JPEG压缩算法

    千次阅读 多人点赞 2017-09-13 17:17:19
    图片压缩有多重要,可能很多人可能并没有一个直观上的认识,举个例子,一张800X800大小的普通图片,如果未经压缩,大概在1.7MB左右,这个体积如果存放文本文件的话足够保存一部92万字的鸿篇巨著《红楼梦》,现如今...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,994
精华内容 24,397
关键字:

视频压缩算法