码流 /码率 / 比特率

2024-03-02 06:48
文章标签 码流 码率 比特率

本文主要是介绍码流 /码率 / 比特率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

主码流与辅(子)码流

   摄像机回传的视频,一般有2个码流,分别成为主码流、子(辅)码流;本地传输可以用主码流,能获得更清晰的存储录像,远程传输就因为带宽限制的原因,而使用子码流来获得流畅的图像和录像。主码流的码流高于子码流;主码流用于存储视频,子码流用于在线实时预览。主码流和子码流是数字化后的两种数据流,通常情况下会采用相同的编码方式,采用同样的数字化算法,图像的清晰程度主要由三个方面决定,分辨率、码率、帧率。

    子码流适用于图像在低带宽网络(liteOS上的窄带<4M/s)上传输。双码流采用一路高码率的码流用于本地高清存储,例如QCIF/CIF/D1编码,一路低码率的码流用于网络传输,例如QCIF/CIF编码,同时兼顾本地存储和远程网络传输

 

码率

是指视频文件在单位时间内使用的数据流量,也叫码率或码流率,通俗一点的理解就是取样率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是kb/s或者Mb/s。一般来说同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高,要求播放设备的解码能力也越高。

通常来说,一个视频文件包括了画面及声音,例如一个RMVB的视频文件,里面包含了视频信息和音频信息,音频及视频都有各自不同的采样方式和比特率,也就是说,同一个视频文件音频和视频的比特率并不是一样的。而我们所说的一个视频文件码流率大小,一般是指视频文件中音频及视频信息码流率的总和。

以大家最熟公司的webRTC文件为例,使用的就是的是VBR,即Variable Bit Rate的缩写,中文含义是可变比特率,它表示RMVB采用的是动态编码的方式,把较高的采样率用于复杂的动态画面(歌舞、飞车、战争、动作等),而把较低的采样率用于静态画面,合理利用资源,达到画质与体积可兼得的效果。

相对的有CBR静态比特率(Constant Bit Rate),则采用恒定的比特率方式进行编码,复杂的场景就不尽人意。

CVBR(Constrained VariableBit Rate)是VBR的一种改进方法,兼顾了俩种。在图像内容静止时,节省带宽,有Motion发生时,利用前期节省的带宽来尽可能的提高图像质量,达到同时兼顾带宽和图像质量的目的。这种方法通常会让用户输入最大码率和最小码率,静止时,码率稳定在最小码率,运动时,码率大于最小码率,但是又不超过最大码率。

ABR (Average Bit Rate) 在一定的时间范围内达到设定的码率,但是局部码率峰值可以超过设定的码率,平均码率恒定。

MBR (mix bit Rate)混合码流。

这篇关于码流 /码率 / 比特率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/765259

相关文章

openh264 宏块级码率控制源码分析

openh264 宏块级码率控制函数关系 宏块级核心函数分析 WelsRcMbInitGom函数 功能:openh264 码率控制框架中宏块级码率控制函数,根据是否启用GOM QP来决定如何设置宏块的QP值,以控制编码的质量和比特率。原理过程: 函数参数: pEncCtx: 指向编码上下文的指针,包含编码过程中所需的全局信息。pCurMb: 指向当前宏块的指针,宏块是视频编码的基本单

【INTEL(ALTERA)】为什么 F-Tile DisplayPort FPGA IP 设计示例无法通过高比特率 3 (HBR3) 的 RX 链路调训?

目录 说明 解决方法 说明 由于 Quartus® Prime Pro Edition 软件版本 v23.3 和 v23.4 生成的 F-Tile DisplayPort FPGA IP 设计示例中存在问题,您可能会在 HBR3 上观察到 RX 链路训练失败。 解决方法 要在这些软件版本中变通解决此问题,请使用以下 RxEQ 参数编辑项目 Quartus 设置文件 (.qsf)

FFmpeg源码分析:avformat_find_stream_info分析码流信息

FFmpeg在调用avformat_open_input()之后,可能码流信息不够完整,可以使用avformat_find_stream_info()获取更多的码流信息。比如获取视频帧率、视频宽高,重新计算最大分析时长,打开解码器解码获取codec数据。具体流程如下图所示: avformat_find_stream_info方法位于libavformat/utils.c,具体代码如下(部分删

FFmpeg源码分析: AVStream码流

在AVCodecContext结构体存储有AVStream数组,包含所有视频流、音频流、字幕流的信息。每个码流包含有时间基、时长、索引数组、编解码器参数、dts、元数据。其中,索引数组用于保存每帧数据包offset、size、timestamp、flag,用于seek定位某个时间戳对应的帧。 AVStream结构体如下: typedef struct AVStream {// 数组索引int

android H264码流中的SPS获取

此文对于想要了解如何获取h264码流中SPS参数的过程,但是又不是很熟悉h264的朋友会很有帮助!! This is a follow-up to my World’s Smallest h.264 Encoder post. I’ve received several emails asking about precise details of things in two enti

【x264】码率控制模块的简单分析—编码主流程

【x264】码率控制(rate control)模块的简单分析—编码主流程 1. 码率控制概述1.1 比特分配1.2 率失真优化(RDO) 2.码率控制中比特分配的实现2.1 码率控制器的创建(x264_ratecontrol_new)2.1.1 码控模块的重新配置(x264_ratecontrol_init_reconfigurable) 2.2 帧级别码率控制2.2.1 计算一帧的AQ信

【x264】码率控制模块的简单分析—帧级码控策略

【x264】码率控制模块的简单分析—帧级码控策略 1.码率控制模式2.恒定量化参数(Constant Quantization Parameter, CQP)2.1 CQP初测2.2 CQP的实现2.3 CQP存在的问题 3.恒定质量因子(Constant Ratefactor, CRF)3.1 CRF初测3.2 CRF的实现3.2.1 mbtree3.2.2 qcompress3.2.3

ffmpeg视频编码原理和实战-(4)H264原始码流分析

H.264是一种广泛使用的视频编码标准,它采用一种分层结构,其中最重要的一个层是NAL(网络抽象层)。在H.264编码中,原始码流(bitstream)是由多个NALU(NAL Units)组成的。了解NALU 对于解析和处理H.264视频流非常重要。 NALU(NAL 单元) NALU 是H.264码流的基本单元,每个NALU包含一个头部和有效载荷。以下是NALU的详细结构和功能: 1.

【x264】码率控制模块的简单分析—宏块级码控工具Mbtree和AQ

【x264】码率控制模块的简单分析—宏块级码控工具Mbtree和AQ 1. 宏块树(mbtree)1.1 计算当前帧的帧内和帧间cost(slicetype_frame_cost)1.2 计算宏块的传播cost(macroblock_tree_propagate)1.3 mbtree的测试 2.自适应量化参数(Adaptive Quantization,AQ)2.1 自适应量化一帧(x264

音视频开发—H264码流组成

本文包含了编码过程的相关概念,如果不了解编码过程,请看这篇文章:H264相关概念和压缩原理详解 H.264视频编码标准将视频编码过程分为两个主要层次:视频编码层(VCL, Video Coding Layer)和网络抽象层(NAL, Network Abstraction Layer)。 文章目录 视频编码层(VCL, Video Coding Layer)VCL结构关系 网络抽象层(NAL