Advertisement

第10期:ffmpeg源码分析——libswscale中的Sw Scale Context及sws_scale()函数解析

阅读量:

libswscale是一个专门用于图像像素数据处理的工具包。它不仅能够支持图像像素格式的转换功能,还能够实现图像尺寸的拉伸操作等基本操作(libswscale通常包含三个核心功能模块: 图像编码、解码与重新采样)。

复制代码
    sws_getContext():初始化一个SwsContext。
    
    sws_scale():处理图像数据。
    sws_freeContext():释放一个SwsContext。

其中sws_getContext()也可以用sws_getCachedContext()取代。

尽管libswscale表面现象上只涉及少量常用函数调用接口,并不复杂. 实则拥有一个功能强大的图像像素数据处理核心算法库. 作为一个几乎'万能'的图片像素数据处理类库, 该库包含了丰富的代码资源.

主要采用两种方式来处理数据:无缩放(unscaled)和有缩放(scaled) 。其中无缩放主要用于处理无需拉伸的像素数据(属于特殊情况),而有缩放则主要应用于需进行 pixels 缩放的数据。无缩放仅需对图像的 pixels 格式执行相应的转换操作;而有缩放则除了 pixels 转换外还需完成 zoom 操作。有缩放模式可划分为若干具体步骤:

复制代码
    XXX to YUV Converter:首相将数据像素数据转换为8bitYU

全部评论 (0)

还没有任何评论哟~