H.266/VVC代码学习35:VTM6.0解码端大体流程

本文深入解析视频编码的全过程,从CTU划分到帧内、帧间预测,再到变换与残差编码,涵盖MIP模式、merge模式等关键技术,并介绍四叉树、二叉树和三叉树划分策略。

解码端最上层函数在之前的学习中已经讲过,下面我们从帧一级继续向下探索,也算是对整个框架穿个线。这里主要以JVET-O1001为参考,掺入我自己的一部分理解,将整个视频编码的大体框架理清。

1 划分

slice最上层,遍历brick(代码中尚未体现)和各个CTU。随后进行CTU级别的操作。最后进行最后一行或一列的标记及比特对齐。
在这里插入图片描述
1、进行CTU的划分:对大于64x64的块,只能进行四叉树划分。
2、在划分过程中,递归调用自身完成对划分方式的读取。
3、对帧内块,可以选择是否进行色度独立划分。
4、先进行几次四叉树划分后,进行二叉树和三叉树的划分。一旦进行二叉树和三叉树的划分时,将不再进行四叉树划分。
5、对帧内块:1)4x16、16x4、8x8的块且进行QT或BT或TT划分; 2)4x8、8x4且进行BT划分;3)4x32、32x4、16x8、8x16的块进行TT划分
6、对帧间块:1) 4x16、16x4、8x8的块进行BT划分;2)4x32、32x4、16x8、8x16的块且TT划分
7、cqtDepth:四叉树的分割深度;mttDepth:多类型多叉树的深度
在这里插入图片描述
在这里插入图片描述

### H.266/VVC 学习资料与 VTM6.0 安装指南 #### 关于 H.266/VVC学习资源 H.266/VVC 是一种新一代视频压缩标准,旨在提供更高的压缩效率和更好的图像质量。为了深入理解该标准的工作原理及其实现细节,可以参考以下几种类型的资源: 1. **官方文档和技术报告** ITU-T 和 MPEG 提供的技术规范文件是权威的学习材料。这些文档详细描述了 H.266/VVC 的核心技术特性以及算法设计原则。 2. **开源项目和测试模型 (VTM)** VTMVVC Test Model)是由联合视频专家组开发的参考软件,用于验证 H.266/VVC 编码器的功能性和性能表现。通过研究其源代码结构,能够深入了解编码流程中的关键技术模块[^2]。 3. **在线课程与书籍推荐** - 部分高校或科研机构会发布关于最新视频编码技术的教学视频或者讲义。 - 一些专注于多媒体处理领域出版物也可能包含针对初学者到高级工程师不同层次的内容介绍。 #### 如何安装并使用 VTM6.0? 以下是基于先前版本经验总结出来的适用于 Windows 平台上的基本指导步骤;尽管具体操作可能会因新版本有所调整,请始终查阅最新的 README 文件获取最精确指示。 ##### 准备工作环境 - 确认已安装支持 C++ 开发所需的 Microsoft Visual Studio 版本(建议 VS2019 或更高)[^1]. - 获取必要的第三方依赖项如 `CMake` 工具链来完成构建过程. ##### 正式执行搭建程序 1. 下载目标发行版档案至本地存储位置. ```bash wget https://example.com/path_to_vtm_archive.zip unzip path_to_vtm_archive.zip -d /desired/directory/ cd vtm-source-folder/ mkdir build && cd build ``` 2. 利用 cmake 构建解决方案文件(.sln). ```bash cmake .. msbuild ALL_BUILD.vcxproj /p:Configuration=Release ``` 成功完成后应该可以在指定目录找到可运行二进制文件bin\TAppEncoderStatic.exe 及 bin\TAppDecoderStatic.exe . 对于实际应用而言, 用户可以通过命令行参数控制输入输出选项从而定制化自己的实验场景; 更详细的说明参见随附手册README.txt 中列举的例子演示如何调用这两个主要组件来进行完整的测试序列编码解码循环. --- ### 示例代码片段展示简单的命令行调用方式 假设我们已经有了一个yuv格式原始素材sample.yuv , 尺寸为1920x1080像素帧率固定在30fps 上面持续时间大约十秒钟长度,则可以用如下形式启动编码进程: ```batch TAppEncoderStatic ^ -c cfg/encoder_randomaccess_main.cfg ^ --InputFile="sample.yuv" ^ --FrameRate=30 --FramesToBeEncoded=300 ^ --SourceWidth=1920 --SourceHeight=1080 ^ -b output.bit -o rec.yuv ``` 同样道理,在得到比特流之后再利用对应的解码工具将其还原成可视化的图片数据流: ```batch TAppDecoderStatic -b output.bit -o dec.yuv ``` 以上仅作为基础示范用途,更多复杂功能设置需参照完整配置模板进一步探索实践。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值