zoukankan      html  css  js  c++  java
  • 源码分析系列(三)x264_deblocking_dataflow

    http://www.cnblogs.com/xkfz007/articles/2616157.html

    去块滤波(Deblocking)部分关键函数

    3.1 deblocking_filter_edgev( x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP )

    功能

    对亮度宏块的垂直边界进行边界滤波性能。

    输入项目

    x264_t *h: 指向x264_t类型的结构体变量的指针变量;

    uint8_t *pix: 指向uint8_t变量的指针,代表存储像素的内存地址;

    int i_pix_stride:像素步长,对cif格式的亮度块来说是416,为352+64,64是左右两边分别进行了32个像素的扩边;

    int bS[4]:边界强度,有0、1、2、3、4五个值。

    int i_QP:量化参数

    程序逻辑

        如附图10所示:

    附图10: deblocking_filter_edgev流程图

    3.2 deblocking_filter_edgecv( x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP )

    功能

    对色度宏块的垂直边界进行滤波。

    输入项目

    x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP

    算法;

    同亮度宏块垂直边界扫描,只不过色度宏块的尺寸比亮度块缩小一倍,为8x8;而色度子块的尺寸为2x2。

    3.3 deblocking_filter_edgeh( x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP )

    功能

    对亮度宏块的水平边界进行滤波。

    输入项目

    x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP

    算法;

    同亮度宏块,只不过是进行水平边界的扫描。

    程序逻辑

    和亮度宏块的类似,略。

    3.4 deblocking_filter_edgech( x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP )

    功能

    对色度宏块的水平边界进行滤波。

    输入项目

    x264_t *h, uint8_t *pix, int i_pix_stride, int bS[4], int i_QP。

    算法

    同亮度宏块水平边界扫描,只不过色度宏块的尺寸比亮度块缩小一倍,为8x8;而色度子块的尺寸为2x2。

    程序逻辑

    和亮度宏块的类似,略。

    3.5 x264_frame_deblocking_filter( x264_t *h, int i_slice_type )

    功能

    对一幅cif格式的图像进行边界滤波。

    输入项目

    x264_t *h:指向x264_t类型的结构体变量的指针变量;

    int i_slice_type:slice的类型;

    SLICE_TYPE_P = 0,SLICE_TYPE_B = 1,SLICE_TYPE_I = 2。

    程序逻辑

        如附图11所示:

     
    分类: X264
  • 相关阅读:
    chrome浏览页面常用快捷键 && 常见的HTTP状态码
    hasCode详解
    队例初始化问题(Queue)
    新手问题--双链表最后一个节点无法删除问题
    高级排序--快速排序
    高级排序--归并排序
    高级排序--希尔排序
    简单排序--插入排序
    简单排序--选择排序
    简单排序--冒泡排序
  • 原文地址:https://www.cnblogs.com/stnlcd/p/7199227.html
Copyright © 2011-2022 走看看