当视频编码遇上多模态大语言模型:一种统一的视频编码范式

2024-08-22 17:28

本文主要是介绍当视频编码遇上多模态大语言模型:一种统一的视频编码范式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言

视频压缩的目的是消除冗余,从而在相同质量水平下减少视频数据的总体量。近年来,传统和深度视频编解码器主要关注保持信号级质量。然而,现有的编解码器通常无法在高压缩比下保留基本语义信息,从而导致视频重建质量相当低。幸运的是,多模态大型语言模型 (MLLM) 的快速发展为超低比特率和极低比特率(ULB 和 ELB)压缩开辟了有希望的可能性。

MLLM 是先进的 AI 模型,旨在处理和理解来自多种模式(例如文本、图像和音频)的数据。许多图像压缩工作,例如 VR-CMC、SCMC、MCM 和 CMC-Bench 等利用了跨模态表示的能力。这些跨模态图像压缩 (CMIC) 技术首先将图像转换为文本 (I2T) 格式,然后生成具有相似语义的动态内容。与原始图像数据相比,这种转换不仅提炼了基本的语义内容,而且通过压缩显着降低了存储要求。然而,跨模态表示和 MLLM 在视频编码领域的集成仍然相对缺乏探索。

与图像压缩相比,视频编码还需要探索如何有效地表示和压缩时间信息。幸运的是,MLLM 拥有与视频内容分析相关的广泛知识,包括对视频中的上下文、对象和动作的理解。因此,MLLM 擅长处理顺序数据并理解视频中事件的时间关系。配备了这些功能,MLLM 特别适合有效提取视频任务的时间信息。通过这种方式,MLLM 可以用作强大的工具,根据特定提示从视频中提取紧凑的文本表示。

通过集成尖端的 MLLM,我们提出了一种新的跨模态视频编码 (CMVC) 范例,通过用于视频编码的视频生成模型来优化内容和运动的表示。根据多模态表示的有趣性质,可以进一步建立各种编码解码模式。我们交替提出两种示例性模式:用于 ULB 语义重建的 TT2V(文本文本到视频)模式和用于 ELB 感知重建的 IT2V(图像文本到视频)模式。在 TT2V 模式中,受到 CMIC 工作流程和现有 TT2V 模型用于视频重建的惊人生成能力的启发,我们首先提取用我们的选择策略构建的代表性文本,有效地编码视频内容和运动。然后,利用视频生成模型从文本输入重建相应的视频。该策略背后的基本原理在于,编码器的紧凑而有效的文本表示封装了语义细节,以便为解码器实现高质量的语义重建。与 TT2V 不同,IT2V 模式旨在增强感知重建,因为与文本相比,图像提供了更丰富的视觉上下文,有利于感知一致性。这是通过使用 TT2V 模式输入类似的文本表示以及从编码器到解码器的额外选择的关键帧来实现的,以实现更好的感知视频重建。为了进一步确保连续帧之间的感知平滑度,通过低秩自适应(LoRA)调整以帧插值方式进行有效的自适应调整,以充分利用来自输入文本和关键帧的语义线索和视觉上下文,以促进高质量的感知一致性用于视频重建。这种综合范式通过利用基础 MLLM 和视频生成模型,巧妙地适应了视频编码中的不同模态表示,这为未来的视频编码工作指明了方向。我们的工作贡献如下:

  • 我们引入了 CMVC 的统一范例。据我们所知,这是第一个利用基础 MLLM 和视频生成模型进行视频编码的工作。
  • 我们精心设计了多种编码-解码模式,以根据指定的解码要求实现良好的权衡视频重建质量,包括确保高质量语义信息的TT2V模式和实现卓越感知一致性的IT2V模式
  • 大量实验表明,我们提出的 CMVC 管道在 HEVC B、C、D、E、UVG 和 MCL-JCV 基准上获得了有竞争力的视频重建,同时还保持了高压缩率。

CMVC 方案

概述

我们提出了跨模态视频压缩(CMVC)的统一范式,如图1所示。首先,通过关键帧选择策略将视频分割成多个片段,每个片段被分解为关键帧和运动分量的内容。随后,MLLM 用于为这些组件创建多模态表示。例如,关键帧和运动可以使用 V2T 模型来表示,并将其转换为文本格式。然后,这些关键帧和运动的表示被压缩并传输到解码器。我们根据关键帧和运动的模态设计了两种不同的模式:TT2V 模式和 IT2V 模式。在 TT2V 模式下,关键帧和运动都表示为文本,从而能够在 ULB 生成具有高语义一致性的视频。在 IT2V 模式下,关键帧以图像的形式表示,运动以文本的形式描述,有利于生成具有高感知一致性的视频。总体而言,该范例提供了集成各种 SOTA 模型和模式转换的灵活性,同时在高压缩比下保持语义和感知质量。

CMVC 编码器

在这里插入图片描述

图片图 1:关键帧选择策略结果的可视化。红点表示关键帧的索引。默认情况下,第一帧和最后一帧设置为关键帧。
在这里插入图片描述
图片图 2:所提出的 CMVC 方案的框架。我们通过关键帧选择策略将视频分成不同的视频片段,并从视频片段中提取关键帧和运动的内容。然后,使用 MLLM 为这些组件创建多模态表示。然后,这些关键帧和运动的表示被压缩并传输到解码器。我们为视频生成提供了两种示例性模式,包括 TT2V 和 IT2V 模式。该模型提供了集成各种 SOTA 模型和模式转换的灵活性,同时在高压缩比下保持语义和感知质量。

CMVC 解码器

在这里插入图片描述
在这里插入图片描述

实验

实验设置

数据集。 这些数据集(包括 HEVC B、C、D 和 E 类以及 UVG 和 MCL-JCV)被广泛用于评估传统和神经视频编解码器。这些数据集的分辨率和内容各不相同,为综合评估提供了多种场景。为了确保与各种视频编解码器的兼容性,我们将视频的宽度和高度尺寸调整为 64 的倍数。

比较方法。 有许多 SOTA 基础模型可用于视频理解。我们选择两个著名的模型,即 VideoLLaVA 和 VideoLLaMA,来从视频中提取语义信息。该过程与图 1 所示的 V2T 阶段一致,其中所选模型在提取关键帧和运动的语义描述方面发挥着重要作用。在 TT2V 模式下,可以使用多种视频生成模型。在这种情况下,我们采用先进的视频生成模型,包括 Open-Sora、VideoCrafter1、VideoCrafter2 和 AnimateDiff,用于基于文本输入生成视频。此外,我们在 QP=63 的极低比特率下与视频编解码器 VVC 进行比较。在 IT2V 模式下,我们对现有的传统视频编解码器,例如 x264、x265 和 VVC 进行了比较分析。除此之外,我们还针对 DCVC 和 DCVC-DC 等深度视频编解码器评估我们的方法,但这些编解码器在实现极低比特率编码方面遇到了挑战。此外,我们还比较了视频生成技术 DiffMorpher ,该技术需要关键帧图像和运动描述来控制视频生成。在我们探索各种视频插值方法时,必须注意的是,这些方法仅依赖关键帧进行控制,忽略了运动描述的任何结合。此外,应该强调的是,与运动文本相关的比特消耗尚未计算。值得注意的是,BD-Rate 的锚是低延迟P配置下的VVC,其中QP={63,52,47,42}。

实验结果

TT2V 模式下的比较。 我们对两个 V2T 模型 VideoLLaVA 和 VideoLLaMA 进行了比较分析,这两个模型都是最先进的 (SOTA) MLLM。随后,我们将比较扩展到包括五个视频生成模型:VideoCrafter1、VideoCrafter2、ModelScope、OpenSora 和 AnimateDiff。此外,我们将这些模型与 QP=63 的传统视频编解码器 VVC 进行比较,这导致比我们提出的方案更高的比特率。我们的评估侧重于五个方面:主体一致性、背景一致性、时间闪烁、运动平滑度和帧质量。结果如图 3 所示,表明 TT2V 生成模型的性能优于 VVC,在背景和主题表示方面表现出更好的帧质量和一致性。这些结果反映了所有测试数据集的平均性能,详细的比较结果可以在补充材料中找到。图 3 所示的视觉质量比较表明,VVC 显示出相当大的块伪影,这严重阻碍了其传达语义信息的能力。

在这里插入图片描述
图 3:左:不同 V2T 模型(VideoLLaVA 和 VideoLLaMA)与 TT2V 模型(VideoCrafter1、VideoCrafter2、ModelScope、OpenSora 和 AnimateDiff)组合的比较结果。右:TT2V 模式和 VVC 的视觉质量比较。在 ULB,我们提出的 TT2V 模式成功地保留了视频的语义质量。相比之下,VVC 带来了明显的块伪影,这阻碍了视频中语义信息的有效传达。

IT2V模式下的比较。 我们将我们的模型与传统编解码器(x264、x265 和 VVC)以及深度视频编解码器(DCVC 和 DCVC-DC)进行比较。如图 5 所示,我们使用 DISTS 来评估感知质量。补充材料中提供了与其他评估指标(例如 LPIPS、FID 和 PSNR)的额外比较。然而,深度视频编解码器提供的预训练模型在实现 ELB 方面存在局限性。此外,我们将我们提出的模型与各种视频生成模型进行了比较,包括 RIFE 、AMT 和 DiffMorpher ,如表 1 所示。调整关键帧图像的数量和质量,可以有效控制码率。为了进行比较,我们选择最佳结果进行比较,其中的设置可以在补充材料中找到。我们的模型在大多数数据集上表现出卓越的性能,与其他视频生成模型相比表现出更高的稳定性。视觉质量在相似的比特率下进行评估,如图 4 和图 6 所示。我们提出的模型在空间和时间维度上都表现出优异的感知质量。此外,我们还展示了从 TT2V 模式和 IT2V 模式生成的解码视频中采样的帧。TT2V模式有效地保持了与真实情况的语义一致性,而IT2V模式进一步确保了感知一致性。

图片图 4:视觉质量比较。这些值代表 BPP 1e2 和 DISTS 值。DISTS 值越低表示感知质量越好。

图片图 5:IT2V 模式下的 RD 性能比较。分别在 B 类、C 类、D 类、E 类、UVG 和 MCLJCV 上进行比较。

图片表 1:不同数据集上不同视频生成模型在 DISTS 方面的 BDRate % 比较。

图片图 6:视频中的视觉质量比较。图像下方显示的数字对应于帧索引。

消融实验

关键帧。 我们针对关键帧进行消融研究,检查关键帧选择方法、关键帧图像的质量和关键帧图像的数量等各个方面。在关键帧选择过程中,我们评估各种采样策略,包括均匀采样和随机采样。鉴于这些技术不依赖于距离函数,我们还将均方误差 (MSE) 距离的采样策略与我们的余弦相似度 (CS) 距离的采样策略进行比较。关于关键帧图像的质量,我们改变了质量级别,包括低质量、中质量和高质量,分别对应于压缩因子 64、128 和 256。表 2 中呈现的结果表明,较高质量的解码图像会导致比特率消耗增加,因此较高的质量不一定会带来更好的 BD-Rate。根据视频的帧数调整关键帧的数量,我们观察到较低的关键帧数量可以保持质量和比特率消耗之间的平衡。

图片表 2:关键帧选择策略的消融研究。

IT2V生成模型。 我们针对不同的设置进行消融研究,包括运动描述的影响、不同的编解码器、更新策略、训练步骤和采样步骤。在运动描述方面,我们比较了没有运动描述的模型,如表 3 所示。结果表明,结合运动描述显着提高了视频重建质量。此外,我们还探索了一系列关键帧图像的编解码器,例如 Hyperprior 、NIC 和 NTVP。其中,NTVP 凭借在保持较低编码率的同时展现出卓越的重建质量而脱颖而出。我们的模型需要根据输入更新 和 ,以便我们进一步评估更新策略的有效性,如表 3 所示。为了评估这些更新策略的有效性,我们在表 3 中提出了进一步的评估。此外,我们检查不同训练和采样步骤的影响。采样步骤数量的增加与结果的改善相关。为了在性能和计算效率之间取得平衡,我们为最终实现选择 100 个训练步骤和 50 个采样步骤。

图片表 3:IT2V 模式的消融研究。

总结

我们提出了一种 CMVC 范例,它代表了视频编码技术的一个有希望的进步。该框架有效地解决了在 ULB 和 ELB 中保持语义完整性和感知一致性的挑战。通过利用 MLLM 和跨模态表示技术,所提出的 CMVC 框架将视频分解为内容和运动组件,将它们转换为不同的模态,以实现高效的压缩和重建。CMVC 通过 TT2V 和 IT2V 模式,实现语义信息和感知质量之间的平衡,提供高压缩比的综合解决方案。

CMVC 包括 TT2V 模式和 IT2V 模式,但还可以进一步探索更多模式。例如,运动表示可以通过光流或轨迹来实现。通过集成关键帧和运动的多种模式,我们可以满足不同的重建需求。此外,未来的工作应优先通过集成更多控制信息以更高的比特率增强 CMVC,以促进原始视频的重建。与传统编解码器相比,这种方法旨在在所有比特率和维度上实现卓越的性能。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

这篇关于当视频编码遇上多模态大语言模型:一种统一的视频编码范式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1096921

相关文章

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

Go 语言中的 Struct Tag 的用法详解

《Go语言中的StructTag的用法详解》在Go语言中,结构体字段标签(StructTag)是一种用于给字段添加元信息(metadata)的机制,常用于序列化(如JSON、XML)、ORM映... 目录一、结构体标签的基本语法二、json:"token"的具体含义三、常见的标签格式变体四、使用示例五、使用

Go语言使用slices包轻松实现排序功能

《Go语言使用slices包轻松实现排序功能》在Go语言开发中,对数据进行排序是常见的需求,Go1.18版本引入的slices包提供了简洁高效的排序解决方案,支持内置类型和用户自定义类型的排序操作,本... 目录一、内置类型排序:字符串与整数的应用1. 字符串切片排序2. 整数切片排序二、检查切片排序状态:

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细

如何合理管控Java语言的异常

《如何合理管控Java语言的异常》:本文主要介绍如何合理管控Java语言的异常问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍2、Thorwable类3、Error4、Exception类4.1、检查异常4.2、运行时异常5、处理方式5.1. 捕获异常

C语言中的常见进制转换详解(从二进制到十六进制)

《C语言中的常见进制转换详解(从二进制到十六进制)》进制转换是计算机编程中的一个常见任务,特别是在处理低级别的数据操作时,C语言作为一门底层编程语言,在进制转换方面提供了灵活的操作方式,今天,我们将深... 目录1、进制基础2、C语言中的进制转换2.1 从十进制转换为其他进制十进制转二进制十进制转八进制十进

$在R语言中的作用示例小结

《$在R语言中的作用示例小结》在R语言中,$是一个非常重要的操作符,主要用于访问对象的成员或组件,它的用途非常广泛,不仅限于数据框(dataframe),还可以用于列表(list)、环境(enviro... 目录1. 访问数据框(data frame)中的列2. 访问列表(list)中的元素3. 访问jav

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合