- 博客(286)
- 资源 (69)
- 收藏
- 关注
原创 F1.66 H.265编解码基础
2012年8月,爱立信公司推出了首款H.265编解码器,而在仅仅6个月之后,ITU就正式批准通过了HEVC/H.265标准,相较于之前的H.264标准有了相当大的改善。H.265主要是围绕着现有的视频编码标准H.264,在保留了原有的某些技术外,增加了能够改善码流、编码质量、延时及算法复杂度之间的关系等相关的技术。新技术使用先进的技术用以改善码流、编码质量、延时和算法复杂度之间的关系,达到最优化设置。
2023-10-07 16:34:16
334
原创 F1.65 AAC编解码基础
AAC出现于1997年,最初是基于MPEG-2的音频编码技术,目的是取代MP3格式。2000年,MPEG-4标准出台,AAC重新集成了其它技术如PS和SBR,为区别于传统的MPEG-2 AAC,将含有SBR或PS特性的AAC又称为MPEG-4 AAC。AAC是新一代的音频有损压缩技术,它通过一些附加的编码技术,衍生出了LC-AAC、HE-AAC、HE-AACv2共3种主要的编码。
2023-10-07 16:32:49
286
原创 F1.64 H.264码流结构
H.264分层结构H.264的主要目标是为了有高的视频压缩比和良好的网络亲和性,为了达成这两个目标,H.264的解决方案是将系统框架分为两个层面,分别是视频编码层面和网络抽象层面,如图下面介绍几个重要概念:(1)原始数据比特串(String Of Data Bit,SODB)由编码器直接输出的原始编码数据,即VCL数据,是编码后的原始数据。
2023-10-07 16:31:22
242
原创 F1.63 H.264的帧间预测编码
帧间预测主要包括运动估计(运动搜索方法、运动估计准则、亚像素插值和运动矢量估计)和运动补偿。对于H.264,是对16×16的亮度块和8×8的色度块进行帧间预测编码。
2023-10-07 16:28:29
176
原创 F1.62 H.264的帧内预测编码
压缩编码大概分成4个步骤:第一步是分组,也就是将一系列变换不大的图像归为一个组,也就是一个序列,也可以叫GOP;第二步是定义帧,将每组的图像帧归分为I帧、P帧和B帧三种类型;第三步是预测帧,以I帧做为基础帧,以I帧预测P帧,再由I帧和P帧预测B帧;第四步是数据传输,最后将I帧数据与预测的差值信息进行存储和传输。H.264采用的核心算法是帧内压缩编码和帧间压缩编码,帧内压缩是生成I帧的算法,帧间压缩是生成B帧和P帧的算法。
2023-10-07 16:27:08
107
原创 F1.61 H.264编解码简介
H.264和以前的标准如H261、H263、MPEG-1、MPEG-4的编解码器实现流程没有太大区别,主要的不同在于各功能块的细节,编码流程如图9-4所示。帧内模式是指当前宏块的预测是根据周围已经已经编码的宏块单元进行预测,通常是左边和上方的宏块(同一片内,已经解码),编码时会根据周围宏块的预测模式,根据周围像素点预测出当前宏块的像素值,再与真实值相减获得残差块Dn,之后对残差块进行编码取得残差块后对其进行变换T,然后进行量化Q,送入NAL层;整个流程包括数据采集、解协议、解封装、解码、同步、渲染。
2023-10-07 16:25:38
112
原创 F1.60 VCL与NAL
对某些基于H.264的研究者来说,运动估计是怎么估计出来的一点都不重要,熵编码是如何实现的一点都不重要,重要的是知道在哪个地方提取什么参量。H.264标准的BP、EP、MP这3个档次,如图-2所示。X264是目前企业界应用最为广泛的开源编码器,主要因为X264相对于JM进行了大量的优化与简化,使其运行效率大幅提高,主要有对编码代价计算方法的简化以及添加了MMX、SSE汇编优化等部分。支持基准档次的所有特性,并支持SI和SP条带,支持数据分割以改进误码性能,支持B条带和加权预测,但不支持CABAC和场编码。
2023-10-07 16:24:18
146
原创 F1.59 H.264的句法元素
在H.264中,句法元素被组织成5个层次,如图-1所示,主要包括序列(Sequence)、图像(Frame/Field-Picture)、片(Slice)、宏块(MacroBlock,MB)、子块(Sub-Block)。
2023-10-07 16:23:01
84
原创 F1.58 视频压缩编码的基本技术
H.264和以前的标准一样,也是DPCM加变换编码的混合编码模式。但它采用“回归基本”的简洁设计,不用众多的选项,获得比H.263++好得多的压缩性能;加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求。技术上,它集中了以往标准的优点,并吸收了标准制定中积累的经验。
2023-10-07 16:22:04
89
原创 F1.57 音频编码技术与流程
杜比AC-3根据这个特性,将各声道的音响频道划分为许多大小不等的狭窄频带,各个子频带与人耳临界频带的宽度相接近,保留有效的音频,将不同的噪声频率紧跟每个声道信号进行编码,即编码噪声只能存在于编码音频信号的频带内。它根据不同频段上大音量信号所引起的小音量信号掩蔽阈值的变化规律,对不同频段给以不同的量化步长,以便保留主要信号,而舍弃对听觉效果影响很小的成分,经过数据压缩,可取得合理的比特流,将原来大约1.5Mb/s的声音传输码率减少到0.3Mb/s,即压缩率可达到1/5。可以传输、制作可理解的各种语音信号。
2023-10-07 16:13:36
114
原创 F1.56 运动估计和补偿
运动估计的基本思想是将图像序列的每一帧分成许多互不重叠的宏块,并认为宏块内所有象素的位移量都相同,然后对每个宏块到参考帧某一给定特定搜索范围内根据一定的匹配准则找出与当前块最相似的块,即匹配块,匹配块与当前块的相对位移即为运动矢量。运动补偿是一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻)差别的方法,具体来说是描述前面一帧的每个小块怎样移动到当前帧中的某个位置去。笔者做成GIF动图,就能看出来,这两张图其实是不一样的,“人在动,背景是没有动的”,如图。第一帧是I帧,第二帧是P帧。
2023-10-07 16:11:40
119
原创 F1.55 帧内与帧间编码
I帧和P帧的编码,如图所示。当把一帧压缩成B帧时,它根据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧,即仅记录本帧与前后帧的差值。B帧是以前面的I或P帧和后面的P帧为参考帧,找出B帧“某点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。帧内编码需要经过DCT、量化、编码等多个过程,涉及到的技术包括RGB转YUV、图片宏块切割、DCT离散余弦变换、量化、ZigZag扫描、DPCM差值脉冲编码调制、RLE游程编码、霍夫曼编码、算数编码等。P 帧只参考前面的帧,B 帧可参考后面的帧。
2023-10-07 16:09:53
95
原创 F1.54 I/P/B帧技术详解
P帧即帧间预测编码帧,需要参考前面的I帧和/或P帧的不同部分,才能进行编码。P帧对前面的P和I参考帧有依赖性。与I帧相比,P帧通常占用更少的数据位,但不足是,由于P帧对前面的P和I参考帧有着复杂的依耐性,因此对传输错误非常敏感,如图所示。(1)P帧是I帧后面的编码帧(在MPEG-4的压缩视频中,一般是一个GOP里面拥有12个帧,第1个为I帧其后面跟随着11个P帧)。(5)I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量)。(5)P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧。
2023-10-07 16:07:58
169
原创 F1.53 视频编码流程
比如有连续的两幅运动图像,对一幅图像不做改变,保存本来的像素值,然后以此图像的值为基础,对另一幅图像使用公式计算来做运动预测,即把第一幅图像的某个像素的值,经过计算后,预测出第二个图像指定位置的像素值,以此类推,得到一幅完整的预测出来的图像。视频中一个连续的动作,比如画面里的男主角在篮墙背景下闭上了眼睛,这一动作的背后,是由一系列的多幅图片组成,而每幅图片的内容基本上都是一样的,唯一变化的部分就是眼睛所在图像区域,眼睛缓慢由开到闭,这块区域的像素值发生了变化。再经过量化,把很多高频的右下角的数值变为0。
2023-09-05 14:26:41
140
原创 F1.52 视频编码简介
第三步是排序编码,将上一步的输出按某种规律重新排序,让大小接近的数据尽可能在一起,然后将诸如(4,4,0,0,0,0,0)这样的序列表示为((4,2),(0,5))。同理,在语言中,由于人在说话时发音的音频是一连续的渐变过程,而不是一个完全的在时间上独立的过程,因而存在时间冗余。例如,人脸的图像有固定的结构、嘴的上方有鼻子、鼻子的上方有眼睛、鼻子位于正脸图像的中线上,等等。如果一段1min的视频,有10s画面是不动的,或者,有80%的图像面积,整个过程中都是不变的。比如一张美女与野兽的图片,如何进行压缩,
2023-09-05 14:23:17
148
原创 F1.50 视频编码之MPEG-x 系列
MPEG-x系列的编码标准主要包括MPEG-1、MPEG-2、MPEG-4、MPEG-7、MPEG-21 和 MPEG-H 等。
2023-09-05 14:19:04
164
原创 F1.49 视频编码标准之ITU/ISO/JVT
为了保证编码的正确性,编码要规范化、标准化,所以就有了编码标准。研制视频编码标准的有2大正式组织,包括ISO/IEC和ITU-T。ISO/IEC 制定的编码标准有MPEG-1、MPEG-2、MPEG-4、MPEG-7、MPEG-21 和 MPEG-H 等。ITU-T 制定的编码标准有H.261、H.262、H.263、H.264 和 H.265 等。MPEG-x 和 H.26x 标准的视频编码都是采用有损压缩的混合编码方式,主要区别在于处理图像的分辨率、预测精度、搜索范围、量化步长等参数的不同,所以其应用场
2023-09-05 14:17:24
182
原创 F1.48 音频编码原理
例如,同时出现A、B两声,若A声的听觉阈值为50dB,由于存在另一个不同频率的B声,将使A声的阈值提高到64~68dB,例如取68dB,那么数值(68~50)dB=18dB,该值称为掩蔽量。比如,不存在信号频率分量的子带,被噪声掩蔽的信号频率的子带,被邻近强信号掩蔽的信号频率分量子带等,都可进行删除处理。如果在一段较窄的频段上存在两种声音信号,当一个强度大于另一个时,则人耳的听觉阈值将提高,人耳朵可以听到大音量的声音信号,而其附近频率小音量的声音信号却听不到,好像是小音量信号被大音量信号掩蔽掉了。
2023-09-05 14:15:09
110
原创 F1.47 视频采集原理
按照其用途可分为广播级视频采集卡、专业级视频采集卡、民用级视频采集卡,它们档次的高低主要是采集图像的质量不同,采集的图像指标不同。视频采集(Video Capture)把模拟视频转换成数字视频,并按数字视频文件的格式保存下来,本质上是将模拟摄像机、录像机、LD视盘机、电视机输出的视频信号,通过专用的模拟、数字转换设备,转换为二进制数字信息的过程。家用级的视频采集卡只能做到视频采集和初步的硬件级压缩,而更为低端的电视卡,虽可进行视频的采集,但它通常都省却了硬件级的视频压缩功能。
2023-09-05 14:14:22
1202
原创 F1.46 视频编码原理
运动估计技术一般将当前的输入图像分割成若干彼此不相重叠的小图像子块,例如一帧图像的大小为1280×720,首先将其以网格状的形式分成40×45个尺寸为16×16的彼此没有重叠的图像块,然后在前一图像或者后一个图像某个搜索窗口的范围内为每一个图像块寻找一个与之最为相似的图像块。这样在编码过程中就可以将当前图像中的块与参考图像运动矢量所指向的最相似的图像块相减,得到一个残差图像块,由于残差图像块中的每个像素值很小,所以在压缩编码中可以获得更高的压缩比。视频图像数据有极强的相关性,也就是说有大量的冗余信息。
2023-09-05 14:13:46
85
原创 F1.45 GOP与DTS/PTS
另一方面,在一个GOP中,P、B帧是由I帧预测得到的,当I帧的图像质量比较差时,会影响到一个GOP中后续P、B帧的图像质量,直到下一个GOP开始才有可能得以恢复,所以GOP值也不宜设置过大。另外,过长的GOP还会影响Seek操作的响应速度,由于P、B帧是由前面的I或P帧预测得到的,所以Seek操作需要直接定位,解码某一个P或B帧时,需要先解码得到本GOP内的I帧及之前的N个预测帧才可以,GOP值越长,需要解码的预测帧就越多,seek响应的时间也越长。P帧是帧间编码帧,利用之前的I帧或P帧进行预测编码。
2023-09-05 14:12:22
123
原创 F1.44 帧内编码与帧间编码
这样的方法比简单的相减可以获得能量更小的残差,从而获得更好的压缩比--当然,用来描述运动的参数不能在码流中占据太大的部分,否则就会抵消复杂的运动估计带来的好处。当然在编码的时候,未来的帧必须比当前帧更早的编码,也就是说,编码的顺序和播放的顺序是不同的。另一方面,I帧通常都会作为P/B帧解码过程中的参考帧,如果I帧的编码出现了错误,那么不仅仅是该I帧出现错误,参考该I帧的P/B帧也同样不能正确解码。I帧编码的主要流程如图。帧间预测,即运动估计,运动补偿,主要有前向预测编码图像的P帧和双向预测编码图像的B帧。
2023-09-05 14:10:23
284
原创 F1.43 压缩编码关键技术
后者量化阶距不等,又称为非线性量化,适用于幅度非均匀分布信号(如语音)的量化,即对小幅度信号采用小的量化阶距,以保证有较大的量化信噪比。非均匀量化的基本思想是,对输入信号进行量化时,大的输入信号采用大的量化间隔,小的输入信号采用小的量化间隔,这样就可以在满足精度要求的情况下用较少的位数来表示。变换编码是一种间接编码方法,其中关键问题是在时域或空域描述时,数据之间相关性大,数据冗余度大,经过变换在变换域中描述,数据相关性大大减少,数据冗余量减少,参数独立,数据量少,这样再进行量化,编码就能得到较大的压缩比。
2023-09-05 14:07:30
72
原创 F1.42 音视频压缩编码基础
数据压缩是通过减少计算机中所存储数据或者通信传播中数据的冗余度,达到增大数据密度,最终使数据的存储空间减少的技术。图像的数据量非常大,为了有效地传输和存储图像,有必要压缩图像的数据量,而且随着现代通信技术的发展,要求传输的图像信息的种类和数据量越来越大,若不对其进行数据压缩,便难以推广应用。未经编码的数据数字视频的数据量很大,存储和传输都比较困难。以一个分辨率1920×1080,帧率30的视频为例,共有1920×1080=2073600个像素,每个像素点是24b(假设采取RGB24)。
2023-09-05 14:02:03
90
原创 F1.41 视频转码原理
可以将MPEG-2全I 帧 50Mb/s 的视频源数据转换为 25Mb/s 码流的 DV 格式数据,用于笔记本移动编辑系统,同时产生一个 300×200 低分辨率的 MPEG-4 文件,使用 REAL 或者微软的 WMV 格式进行封装,通过互联网络传输至主管领导处用于审看。非线性编辑是借助计算机来进行数字化制作,几乎所有的工作都在计算机里完成,不再需要那么多的外部设备,对素材的调用也是瞬间实现,不用反反复复在磁带上寻找,突破单一的时间顺序编辑限制,可以按各种顺序排列,具有快捷简便、随机的特性。
2023-09-05 13:58:36
94
原创 F1.40 现代播放器架构
用户界面(UI)定义了终端用户的观看体验,包括皮肤(播放器的外观设计)、所有可自定义的特性如播放列表和社交分享等以及业务逻辑部分如广告、设备兼容性逻辑以及认证管理等。播放器内核是最核心的部件,播放器最底层的部分是内核如解码器等,这层的功能直接调用操作系统暴露出来的 API。解码器的主要功能在于解码并渲染视频内容,DRM管理器则通过解密过程来控制是否有权播放。DRM即数字版权管理,是指数字内容,如音视频节目内容、文档、电子书籍等在生产、传播、销售、使用过程中进行的权利保护、使用控制与管理的技术。
2023-08-04 09:33:06
150
原创 F1.39 FFmpeg播放架构与原理
解码器,例如视频解码器输出的是一张一张的类似位图格式的图像,但是要让人从屏幕看得到,还需要一个视频输出的模块。之所以需要demux,是因为音视频在制作的时候实际上都是独立编码的,得到的是分开的数据,为了传输方便必须要用某种方式合起来,这就有了各种封装格式,也就有了demux。(4)主线程→event_loop→refresh_loop_wait_event负责读取Video Frame Queue中的video frame,调用SDL进行显示,其中包括了音视频同步控制的相关操作。
2023-08-04 09:31:27
127
原创 F1.38 视频播放原理
几乎所有的视频播放器,如VLC、MPlayer、Xine,包括DirectShow,在播放视频的原理和架构上都是非常相似的。视频播放器播放一个互联网上的视频文件,需要经过几个步骤,包括解协议、解封装、音视频解码、音视频同步、音视频输出。视频播放器简介视频播放器播放本地视频文件或互联网上的流媒体大概需要解协议、解封装、解码、同步、渲染等几个步骤,如图。
2023-08-04 09:29:11
98
原创 F1.37 视频编解码流程
(3)离散余弦变换(Discrete Cosine Transform,DCT),主要用于将数据或图像的压缩,能够将空域的信号转换到频域上,具有良好的去相关性的性能。DCT变换本身是无损的,但是在图像编码等领域给接下来的量化、哈弗曼编码等创造了很好的条件,同时,由于DCT变换时对称的,所以,可以在量化编码后利用DCT反变换,在接收端恢复原始的图像信息。量化的结果分为2份,一个做进一步处理,一份经过反量化(Rescale)/反DCT(IDCT)变化,结合第2步的运动补偿生成Fn对应的参考帧,供后续参考。
2023-08-04 09:27:29
107
原创 F1.36 视频编码的关键技术
为了制造更长的零游程,在编码之前,对变换系数矩阵采用Z字形扫描读取数时进行重新排列,很多像块经变换后,变换系数经过 ZigZag 排列,排在队尾的很长一串系数全是0。空间域图像的能量往往分布相对比较均匀,经过变换后,变换域中图像的变换系数间近似是统计独立的,基本去除了相关性,并且能量集中在直流和低频率的变换系数,高频率变换系数的能量很小,甚至大部分高拟系数能量接近于零。通常变换离不开量化,因为图像从空间域矩阵变换到变换域的变换系数矩阵,其系数个数并未减少,数据量也不会减少,因此并不能直接压缩数据。
2023-08-04 09:26:13
98
原创 F1.35 视频编码原理简介
视频本质上是一系列图片连续快速的播放,最简单的压缩方式就是对每一帧图片进行压缩,例如比较古老的 MJPEG 编码就是这种编码方式,这种编码方式只有帧内编码,利用空间上的取样预测来编码。形象的比喻就是把每帧都作为一张图片,采用JPEG的编码格式对图片进行压缩,这种编码只考虑了一张图片内的冗余信息压缩,如图所示,绿色的部分就是当前待编码的区域,灰色就是尚未编码的区域,绿色区域可以根据已经编码的部分进行预测(绿色的左边、下边、左下)。视频一般有5种冗余信息,包括空间冗余、时间冗余、编码冗余、视觉冗余和知识冗余。
2023-08-04 09:24:21
101
原创 F1.34 IPB帧和GOB简介
图像组(Group of picture,GOP),指两个I帧之间的距离。Reference即参考周期,指两个P帧之间的距离。一个I帧所占用的字节数大于一个P帧,一个P帧所占用的字节数大于一个B帧。所以在码率不变的前提下,GOP值越大,P、B帧的数量会越多,平均每个I、P、B帧所占用的字节数就越多,也就更容易获取较好的图像质量;Reference越大,B帧的数量越多,同理也更容易获得较好的图像质量。IPB帧的字节大小为I > P > B。GOP解码顺序和显示顺序。
2023-08-04 09:21:38
179
原创 F1.33 YUV成像原理
视频工程师发现,眼睛对于亮和暗的分辨要比对颜色的分辨更精细一些,也就是说,人眼对色度的敏感程度要低于对亮度的敏感程度。所以,在视频存储中,没有必要存储全部颜色信号,可以把更多带宽留给黑白信号(亮度),将稍少的带宽留给彩色信号(色度),这就是YUV的基本原理,Y是亮度,U和V则是色度。YUV的成像过程如图。另外YUV格式还可以很方便地压缩视频,YUV的存储格式与其采样方式密切相关。主流的YUV采样方式有4种,如图所示,包括YUV4:4:4、YUV4:2:2、YUV4:2:0和YUV4:1:1。
2023-08-04 09:20:25
328
原创 F1.32 视频编码基础知识
视频为什么需要编码,关键就在于一个原始视频,如果未经编码,体积是非常庞大的。以一个分辨率1920×1080,帧率30的视频为例,共有1920×1080=2073600个像素,每个像素点是24b(假设采取RGB24)。也就是说,1秒钟视频的大小是186.6MB,1分钟大约是11GB,一部90分钟的电影,约为1000GB(约1TB)。首先是视频采集,通常会使用摄像机、摄像头进行视频采集,采集了视频数据之后,就要进行模数转换,将模拟信号变成数字信号。正因为如此,专业的视频工程师就提出,必须对视频进行压缩编码。
2023-08-04 09:18:44
108
原创 F1.31 音视频封装格式详解
封装格式即音视频容器,比如经常看到的视频后缀名mp4、rmvb、avi、mkv、mov等,这些就是音视频的容器,它们将音频和视频甚至是字幕一起打包进去,封装成一个文件,用来存储或传输编码数据,可以理解成一个容器。所谓封装格式,就是以怎样的方式将视频轨、音频轨、字幕轨等信息组合在一起。不同的封装格式支持的视音频编码格式是不一样的,比如 MKV 格式支持比较多,RMVB 则主要支持 Real 公司的视音频编码格式。
2023-08-04 09:15:25
206
原创 F1.30 音视频封装
再通俗点,视频轨相当于饭,而音频轨相当于菜,封装格式就是一个饭盒,用来盛放饭菜的容器。数据封装(Data Encapsulation)就是把业务数据映射到某个封装协议的净荷中,然后填充对应协议的包头,形成封装协议的数据包,并完成速率适配。数据解封装就是封装的逆过程,拆解协议包,处理包头中的信息,取出净荷中的业务信息数据封装和解封装是一对逆过程。封装格式也称多媒体容器,它只是为多媒体编码提供了一个“外壳”,也就是将所有的处理好的视频、音频或字幕都包装到一个文件容器内呈现给观众,这个包装的过程就叫封装,
2023-08-02 09:47:35
102
原创 F1.29 视频编码格式
(1)H.26X系列,是由ITU主导的,主要包括H.261、H.262、H.263、H.264、H.265等。H.265及高效率视频编码是一种视频压缩标准,H.264/MPEG-4 AVC的继任者。(3)其他系列的视频编码格式包括AMV、AVS、Bink、CineForm、Cinepak、Dirac、DV、RealVideo、RTVideo、SheerVideo、Smacker、Sorenson Video、VC-1、VP3、VP6、VP7、VP8、VP9、WMV等,因为这些编码方式不常用,不再详细介绍。
2023-08-02 09:45:19
173
原创 F1.28 视频格式
视频格式非常多,包括视频文件格式、视频封装格式、视频编码格式等。比如常见的视频文件格式有MP4、RMVB、MKV、AVI 等,常见的视频编码格式有mpeg4、H.264、H.265等。下面详细介绍这3个概念。
2023-08-02 09:43:40
114
音视频小白入门--1wm音视频到底是什么.pdf
2020-08-27
福优林@Qt5小白变大牛初级篇word---第4章.pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第3章.pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第2章.pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第1章.pdf
2020-07-23
wave音频信号采集与波形图.rar
2020-06-15
Python3简明教程之1入门
2018-08-19
数字图像处理 001
2018-08-19
opencv --大学数学
2018-08-19
Beginning Game Programming v2.0所有源码--allcodes.rar
2020-12-04
课件与源码打包——qt5小白变大牛初级篇.rar
2020-07-24
福优林@Qt5小白变大牛初级篇word---第18章.pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第17章.pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第16章.pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第15章.pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第14章.pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第13章 .pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第12章.pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第11章.pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第10章.pdf
2020-07-23
第9章 Qt事件机制与原理
2020-07-23
福优林@Qt5小白变大牛初级篇word---第8章.pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第7章.pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第6章.pdf
2020-07-23
福优林@Qt5小白变大牛初级篇word---第5章.pdf
2020-07-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人