VBV总结

VBV (Video Buffering Verifier),以及与之紧密相关的 vbv-buffer-size 和 vbv-max-rate。 这套机制的核心目标是确保视频流能够在解码端(播放器)流畅播放,而不会因为网络波动或解码器处理能力限制而卡顿或中断。 它模拟了一个虚拟的解码器缓冲区,并强制编码器生成符...

阅读更多

对qscale的理解

qscale和qp的关系 QP转qscale: qscale = 0.85f * powf(2.0f, (qp - 12.0f - QP_BD_OFFSET) / 6.0f) qscale转QP: qp = 12.0f + QP_BD_OFFSET + 6.0f * log2f(qscale/0.85f) ...

阅读更多

ABR码控

x264 的 ABR(平均比特率)码率控制算法是一个基于反馈的复杂系统,旨在实现整个视频序列的目标平均比特率。该算法通过复杂度预测、量化器调整和持续反馈校正相结合的方式进行。 实现 该算法维护了比特率控制的几个关键变量: cplxr_sum:累加bits×qscale/rceq之和,表示复杂度调整后的比...

阅读更多

QUIC协议 - 1 - Overview

QUIC(Quick UDP Internet Connections,快速UDP互联网连接)协议是一项由Google最初提出,后由IETF标准化的新型传输层网络协议。 它被设计为替代TCP+TLS的下一代互联网传输协议,旨在为现代互联网应用提供更快、更可靠、更安全的连接。QUIC也是驱动下一代HTTP协议——...

阅读更多

QUIC协议 - 4 - QUIC的可靠传输

QUIC 的可靠传输依赖一套环环相扣的机制: 包编号 ACK 确认机制 丢包检测 数据重传 流的有序交付 包编号 Header: 0 1 2 3 0 ...

阅读更多

QUIC协议 - 5 - 流量控制

流量控制的目的是保护接收端。确保发送方的发送速度不会超过接收方的处理速度,从而防止接收方的内存缓冲区被占满溢出。 QUIC 的流量控制机制是基于信用而非滑动窗口,并且QUIC拥有两个层次的控制:连接层和流层。 TCP的的队头阻塞 对于TCP来说,假设发送了5,6,7,8序号的包,如果5号包的ACK丢了,那么...

阅读更多

QUIC协议 - 3 - QUIC连接管理

TCP的安全问题 TCP依赖seq和ACK来实现可靠,流式以及全双工的传输模式,而实际过程中却需要通过三次握手来同步双端的 seq,如果我们提前约定好通信双方初始seq,其实是可以避免三次握手的,那么为什么没有这么做呢?答案是安全问题。 TCP的数据是没有经过任何安全保护的,无论是其header还是payloa...

阅读更多

QUIC协议 - 6 - QUIC的拥塞控制机制

QUIC协议本身(RFC 9002)并没有强制规定必须使用哪一种拥塞控制。它只定义了拥塞控制器与QUIC协议栈交互的接口和信号: QUIC最流行的两种拥塞控制算法是CUBIC和BBR。 RFC 中没有以特定编程语言的 API 形式来定义接口,但它描述了一套逻辑上的接口。可以其分为以下两类 conceptual...

阅读更多