没有合适的资源?快使用搜索试试~ 我知道了~
浅压缩编码方式描述文档
需积分: 9 0 下载量 136 浏览量
2022-08-29
23:09:53
上传
评论
收藏 1.41MB DOCX 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/86503217/0001-3d9b8909bd29242a388a38ebb6b1cef7_thumbnail-wide.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
25页
浅压缩编码方式描述文档
资源推荐
资源详情
资源评论
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![application/x-dosexec](https://img-home.csdnimg.cn/images/20210720083343.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/octet-stream](https://img-home.csdnimg.cn/images/20210720083646.png)
![html](https://img-home.csdnimg.cn/images/20210720083451.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/release/download_crawler_static/86503217/bg1.jpg)
数字音视频编解码技术标准工作组
AVS N3382: 2022 年 6 月
来源:
魏亮 孙煜程 王岩
标题:
AVS 浅压缩编码描述 3.0-rc5
状态:
输出文档
目的:
视频组浅压缩参考软件编码描述文档
___________________________________________________
在浅编码标准制定过程中,为了探索有潜力的编码算法、公平地评估新的编码技术,
AVS 工作组使用 High-speed Interface Model (HIM)作为参考软件平台。
本文档对 HIM-4.0 平台构架和编码算法进行描述,对应 AVS 浅压缩工作组草案
WD3.0。
1. HIM 代码实现
1.1. 项目工程
工程名
文件数量(.c + .h)
工程功能
Common
4 + 6
编解码器公用数据结构及功能函数
DemoHIMC
3 + 2
编码器可执行文件
DemoHIMD
3 + 2
解码器可执行文件
LibHIMC
7 + 11
编码库
LibHIMD
7 + 10
解码库
1.2. 主要数据结构
结构体名
结构体功能
HIM_ABILITY
能力集,包括图像的最大分辨率
HIM_IMAGE_INFO
图像信息,包括图像的宽高、格式和位宽,Slice宽高,最大QP,
MD5开关,无损编码开关,目标BPP
![](https://csdnimg.cn/release/download_crawler_static/86503217/bg2.jpg)
HIM_SLICE_INFO
Slice信息,包括当前Slice的位置坐标和宽高
GROUP_INFO
系数编码的分组信息
HIMC_BLOCK_CTX
编码块的上下文信息,包括当前编码块的数据buffer,系数编码信息,
QP信息,工具开关
HIMC_ECD_SPEC
熵编码信息,用于写码流
HIMC_SPEC
编码库信息,包括能力集,图像信息,输入图像buffer,编码块的上
下文信息,熵编码信息,码控信息
HIMD_BLOCK_CTX
编码块的上下文信息,包括当前编码块的数据buffer,系数编码信息,
QP信息,工具开关
HIMD_ECD_SPEC
熵解码信息,用于读码流
HIMD_SPEC
解码库信息,包括能力集,图像信息,输出图像buffer,编码块的上
下文信息,熵解码信息
1.3. SIMD 优化
模块
指令集
应用
SAD计算
SSE/AVX
编码器
2. HIM 编码框架
2.1. 编码框架
HIM 平台面向低延时的浅压缩应用场景,支持图像编码。编码框架如图 1 所示。
图 1 HIM 编码框架
![](https://csdnimg.cn/release/download_crawler_static/86503217/bg3.jpg)
2.2. 色彩空间转换
HIM 平台支持 YUV4:0:0、YUV4:2:0、YUV4:2:2、YUV4:4:4 和 RGB4:4:4 格式的图像
及视频,支持 8bit、10bit、12bit 和 16bit 的输入比特深度。
编码端 RGB 处理采用转换为 YCoCg 的形式进行处理,具体转换公式如下:
Y = (R >> 2) + (G >> 1) + (B >> 2)
Co = R – B
Cg = G – (R >> 1) – (B >> 1)
方便起见,Co、Cg 还会进行去除符号位的处理,如下所示。其中,BitDepth 为输入
RGB 的位宽(即 bpc);并且当 RGB 转换为 YCoCg 之后,位宽(BitDepth)非 16bit 的输
入图像 Co、Cg 的位宽加 1。
Co = Co + (1 << BitDepth)
Cg = Cg + (1 << BitDepth)
if (BitDepth == 16) {
Co = Co >> 1
Cg = Cg >> 1
}
解码端 YCoCg 转换回 RGB 的过程为:
if (BitDepth == 16) {
Co = Co << 1
Cg = Cg << 1
}
Co = Co – (1 << BitDepth)
Cg = Cg – (1 << BitDepth)
R = Y + (Co >> 1) – (Cg >> 1)
G = Y + (Cg >> 1)
B = Y – (Co >> 1) – (Cg >> 1)
2.3. 子流并行
HIM 平台支持子流并行功能。编码端将不同分量的语法元素使用多个熵编码器进行
处理得到多个子流,并以固定大小的数据包将多个子流交织成压缩位流;对应的,解码端
使用不同的熵解码器并行解码不同子流。子流并行机制允许在语法元素层级做并行的熵编
解码处理,从而提升编解码器性能。
2.3.1. 子流交织单元和解码行为
![](https://csdnimg.cn/release/download_crawler_static/86503217/bg4.jpg)
子流交织单元为图 2所示的数据包,称为子流片(substream segment)。子流片的长度
为 N 比特,包含 M 比特数据头和 N-M 比特数据主体,其中数据头用于指示当前单元隶属
于哪个子流。HIM 平台中设置 N 为 512,M 为 2。
数据头
N
数据主体
M N-M
图 2 子流交织单元格式
HIM 在解码端进行子流解交织,其过程如图 3 所示。解码器从比特流中每次提取 N 比
特长度的数据包。通过解析其中 M 比特的数据头,得到当前单元所属的子流。然后将余
下数据放入对应的解码子流缓冲区。熵解码器将对各个缓冲区中的数据进行解码,解得的
语法元素送入后续解码模块。
图 3 解码端子流解交织过程
2.3.2. 编码端子流交织方法
HIM 在编码端进行子流交织,其过程如图 4 所示。不同熵编码得到的子流数据将存入
编码子流缓冲区,由子流交织模块将其处理为数据包并交织为最终的比特流。
图 4 编码端子流交织过程
在子流缓冲区中的每个数据包,包含了至少 1 个图像块产生的编码比特。平衡子流交
织方法对每个数据包最初的比特所属的图像块进行标记,在交织时将对应图像块顺序更小
的包优先发送,从而减小解码端等待所需数据包的时间。该交织方法通过块计数队列对图
像块进行标记,如图 5 所示。
块计数队列通过先进先出队列的方式实现。编码器维护对当前已编码图像块的计数
![](https://csdnimg.cn/release/download_crawler_static/86503217/bg5.jpg)
block_count,并且对每个子流维护一个块计数队列 counter_queue[ss_idx]。在每个 Slice 的
开始,初始化 block_count 为 0,初始化各个 counter_queue[ss_idx]为空,然后在其中各压
入一个 0。
在每个对编码单元处理完成编码操作后,对块计数队列进行更新,更新过程如下:
a) 令已编码图像块的计数自增 1,block_count += 1。
b) 选择一个子流 ss_idx。
c) 计算该 ss_idx 对应的子流缓冲区中可构建的数据包个数 num_in_buffer[ss_idx]。设
该子流缓冲区为 buffer[ss_idx],其中包含的数据量为 buffer[ss_idx].fullness;设子流交织单
元的数据包大小为 N 比特,其中包含 M 比特的数据头。则可构建数据包个数计算如下:
num_in_buffer[ss_idx] = buffer[ss_idx].fullness / (N - M)
其中 / 表示整除。
d) 比较当前块计数队列长度 num_in_queue[ss_idx]和 num_in_buffer[ss_idx],若两者相
等 , 则 将 当 前 已 编 码 图 像 块 的 计 数 压 入 该 块 计 数 队 列 ,
counter_queue[ss_idx].push(block_count)。
e) 返回步骤 b),处理下一个子流;直到所有子流均处理完毕。
在更新完毕块计数队列后,对各个子流缓冲区中的数据进行交织,包含数据包的构建、
发送。交织过程如下:
a) 选择一个子流 ss_idx。
b) 判断该子流缓冲区中的数据是否足够构建一个包,即判断 buffer[ss_idx].fullness 是
否大于等于 N-M。如果足够构建,则继续步骤 c);否则跳到步骤 f)。
c) 判断该子流对应的块计数队列,其队首元素值,是否为所有块计数队列中最小。如
果是,则继续步骤 d);否则跳到步骤 f)。
d) 以当前子流缓冲区中的数据构建一个数据包。从 buffer[ss_idx]中取出长度为 N-M比
特的数据,并添加 M 比特的数据头,数据头中的数据为 ss_idx,拼接为长度 N 的数据包。
将该数据包送入编码器最终输出的位流。
e) 弹出该子流对应块计数队列的队首元素,counter_queue[ss_idx].pop()。
f) 返回步骤 a),处理下一子流;直到所有子流均处理完毕。
如果当前图像块为该 Slice 的最后一个图像块,则子流交织模块会在上述交织过程后,
执行额外的步骤,将子流缓冲区中所剩的所有数据进行打包。该过程如下:
a) 判断目前所有子流缓冲区是否存在至少一个非空,若是则继续步骤 b);否则结束。
b) 选择一个子流 ss_idx。
c) 判断该子流对应的块计数队列,其队首元素值,是否为所有块计数队列中最小。如
果是,则继续步骤 d);否则跳到步骤 f)
剩余24页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/b53e2e6790ce47fa9d6e7f9b7953a7ae_s_k_wang.jpg!1)
王得否_98
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)