- 博客(106)
- 收藏
- 关注
原创 音视频——视频流H264编码格式
我们了解了什么是宏快,宏快作为压缩视频的最小的一部分,需要被组织,然后在网络之间做相互传输。H264更深层次 —》宏块 太浅了 如果单纯的用宏快来发送数据是杂乱无章的,就好像在没有集装箱出现之前,货物总是随意被堆放到船上。上货(编码),下货是非常痛苦的。当集装箱出现之后,一切都发生了改变,传输效率大大增高。 集装箱可以理解成H264编码标准,他制定了相互传输的格式,将宏快 有组织,有结构,有顺序的形成一系列的码流。
2023-07-26 18:06:44 1236
原创 音视频——帧内预测
4×4亮度子块有9种可选预测模式,独立预测每一个4×4亮度子块,适用于带有大量细节的图像编码;16×16亮度块有4种预测模式,预测整个16×16亮度块,适用于平坦区域图像编码;色度块也有4种预测模式,类似于16×16亮度块预测模式。如图6.14所示,4×4亮度块的上方和左方像素A~M为已编码和重构像素,用作编解码器中的预测参考像素。其中模式2(DC预测)根据A~M中已编码像素预测,而其余模式只有在所需预测像素全部提供才能使用。4种预测模式类似于帧内16×16预测的4种预测模式,只是模式编号不同。
2023-07-26 11:17:58 1208
原创 音视频——压缩原理
H264压缩技术主要采用了以下几种方法对视频数据进行压缩。帧内预测压缩,解决的是空域数据冗余问题。帧间预测压缩(运动估计与补偿),解决的是时域数据冗徐问题。整数离散余弦变换(DCT),将空间上的相关性变为频域上无关的数据然后进行量化。CABAC压缩。I帧:关键帧,采用帧内压缩技术。P帧:向前参考帧,在压缩时,只参考前面已经处理的帧。采用帧音压缩技术。B帧:双向参考帧,在压缩时,它即参考前而的帧,又参考它后面的帧。采用帧间压缩技术。除了I/P/B帧外,还有图像序列GOP。
2023-07-25 18:07:28 795
原创 音视频——封装格式原理
将视频像素数据(RGB,YUV等)压缩成视频码流,从而降低视频的数据量。MPEG/ITU-T2013研发中名称推出机构推出时间目前使用领域H.264MPEG/ITU-T2003各个领域MPEG4MPEG2001不温不火MPEG2MPEG1994数字电视VP9Google2013研发中VP8Google2008不普及VC-12006微软平台视频编解码的过程–>对数字视频进行压缩或解压缩的过程。
2023-07-25 16:56:42 1591
原创 QUIC协议
QUIC(Quick UDP Internet Connection)是Google提出的一个基于UDP的传输协议,因其高效的传输效率和多路并发的能力,已经成为下一代互联网协议HTTP/3的底层传输协议。除了应用于Web领域,它的优势同样适用于一些通用的需要低延迟、高吞吐特性的传输场景。本文从QUIC的由来和优势出发,分享实际项目中需要考虑的问题和解决思路,通过测试对比QUIC和TCP的实际传输能力,希望有助于大家理解和实践QUIC协议。
2022-12-21 17:25:04 702
原创 设计模式——代理模式
为其他对象提供一种代理以控制对这个对象的访问。代理模式应用广泛。我们讲到的其他形式的结构型模式中,你都可以看到代理模式的影子,有些模式单独作为一种设计模式,倒不如说是对代理模式的一种针对性优化。而且代理模式几乎没有什么缺点可言,它是细分化至很小的一种模式,要真的说一个缺点,那么就是所有设计模式的通病:对类的增加,不过在这种孰优孰劣的局势下,就算对类的稍微增加又何妨呢?
2022-09-20 16:42:35 172
原创 设计模式——访问者模式
表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。先来看第一句话,说是一个作用于某对象结构中的各元素的操作,这里提到了三个事物,一个是对象结构,一个是各元素,一个是操作。那么我们可以这么理解,有这么一个操作,它是作用于一些元素之上的,而这些元素属于某一个对象结构。最关键的第二句来了,它说使用了访问者模式之后,可以让我们在不改变各元素类的前提下定义作用于这些元素的新操作。
2022-09-07 23:17:25 802
原创 设计模式——中介者模式
用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
2022-09-07 18:11:50 169
原创 设计模式——模板设计模式
定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。Log . d(TAG , "开启电源") } open fun checkHardware() {Log . d(TAG , "硬件检查") } open fun loadOS() {Log . d(TAG , "载入操作系统") } open fun login() {
2022-09-05 17:49:10 941
原创 设计模式——迭代器模式
提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。迭代器模式属于行为型模式。迭代器(Iterator)模式,又叫做游标(Cursor)模式。Java中的Map、List等等容器,都使用到了迭代器模式。
2022-09-05 15:34:32 74
原创 设计模式——命令模式
将一个请求封装成一个对象,从而让用户使用不同的请求把客户端参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。优点:命令模式的封装性很好,更弱的耦合性,更灵活的控制性以及更好的扩展性。缺点:类的膨胀,大量衍生类的创建。
2022-09-01 18:30:46 831
原创 设计模式——责任链模式
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
2022-09-01 17:05:08 251
MyPressSoftWare
2023-02-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人