音视频编解码——OSD参数

1. OSD overlay 参数

1.1 参数介绍

编码器最多支持12个OSD区域,不能在 OSD 区域之间共享相同的 CTB

n aligned:n对齐,偏移量必须是n的倍数,目的提高访问效率或满足 DMA 传输要求

stride:步幅,步幅计算的两个分量(Y,U,V)行首到行首的距离,如这一行Y分量到下一个行分量

# N表示01-12区域region
--overlayEnables
    # 位掩码方式控制,每个位表示一个OSD region是否启用
    # 例如:--overlayEnables=15,15=0x1111,region 1-4都启用
    --olWidthN
    --olHeightN
    # 如果启用了region,必须指定以上参数

--olInputN
# 包含每个OSD区域的文件路径
# 例如:--olInput01=/path/.rgb

--olFormatN
# 每个 OSD 区域的输入格式,0 - ARGB8888、1 - NV12、2 - bitmap
# 例如:--olFormat01=1
    --olAlphaN
    # OSD区域的透明度控制[0..255],此选项对 ARGB8888 无效
    --olSuperTileN
    # OSD 输入数据是否以超级平铺模式进行组织,仅在 ARGB8888 输入格式时有效
    --olBitmapYN --olBitmapUN --olBitmapVN
    # bitmap格式下的Y,U,V值

--olXoffsetN --olYoffsetN
# 左上角的水平偏移(X)和左上角的垂直偏移(Y)

--olYStrideN --olUVStrideN
# Y分量和UV分量的步幅(单位:字节)

--olCropXoffsetN --olCropYoffsetN
--olCropWidthN --olCropHeightN
# 裁剪参数
    # X,Y表示相对左上角从哪里开始裁剪
    # W,H表示裁剪区域的大小
    --olCropXoffset01=50 --olCropYoffset01=20
    --olCropWidth01=100 --olCropHeight01=60
    # 从原始图像(50,20)位置开始裁剪,裁剪出100×60像素的区域

2. OSD map 参数

2.1 参数介绍

编码器最多支持 12 种颜色的 OSD 映射,OSD Map的优先级最低,和开启--olSuperTileN的region不能同时启用

一行索引数据只对应OSD区域的单行像素颜色定义,完整数据需要多行数据组合

--osdMapEnable
# 启动OSD映射

--osdMapInput
# OSD映射的输入文件

--osdMapStride
# OSD映射步幅

--osdMapBlockSize
# OSD以像素为单位映射不同的块大小

--osdMapAlphaN
# [0..255]颜色N的透明度

--osdMapYN --osdMapUN --osdMapVN
# OSD贴图颜色的Y、U、V值

2.2 部分参数设置(需注意的点)

2.2.1 osdMapStirde

限制条件一:

The stride must be greater than or equal to (codingWidth + 15[or 7]) >> 4[or 3] where codingWidth equals the value of --width, because the basic unit of the 4-bit OSD map is a 8x8 or 4x4 pixel block.

步幅必须大于或等于(codingWidth + 15[or 7]) >> 4[或 3],其中编码宽等于--width的值,因为4-bitOSD映射的基本单元是8x8 or 4x4Pixel块。

输入文件:w, h

osdMapStride值:s

osdMapBlockSize值:b (我们这仅支持 8: 8x8,b取值8)

计算方式:s < ((w + (b * 2 - 1)) / b / 2)) --> s < ((w + (b * 2 - 1)) * 2 / b))

限制条件二:

osd输入文件:w, h

osdMapStride值:s

计算方式:(w * h) / (s * h) > 0

注意:这里是除数大于0,是一个整数

3. OSD mosaic 参数

3.1 参数介绍

编码器最多支持 12 个马赛克区域,每个镶嵌区域必须与 CTB 大小对齐。

同一索引的 Mosaic 区域和 OSD 区域不能同时启用,如果启用了同一索引的 mosaic 区域和 OSD 区域,则 OSD 区域无效。

--mosaicEnables
# 位掩码方式控制,每个位表示一个OSD region是否启用
# 例如:--mosaicEnables=15,15=0x1111,region 1-4都启用

--mosSizeIndex
# 不同的马赛克大小
    # 0:8x8、1:16x16、2:32x32、3:64x64、4:128x128

--mosAreaN
# 马赛克区域
    --mosAreaN=left:top:right:bottom
    # 区域最左/顶/最右/低部像素
    # left:top = 左上角坐标
    # right:bottom = 右下角坐标

3.2 部分参数设置(需注意的点)

3.2.1 mosSizeIndex

mosSizeIndex参数设置无效,都是固定值

jpeg:仅支持16x16

h264:仅支持16x16

h265:仅支持64x64

posted on 2025-08-29 14:27  CharXL  阅读(24)  评论(0)    收藏  举报