An efficient hardware architecture of integer motion estimation based on early termination and data

An efficient hardware architecture of integer motion estimation based on early termination and data
Zhang, Jun, Yu Zhang, and Hao Zhang. “An efficient hardware architecture of integer motion estimation based on early termination and data reuse for versatile video coding.” Expert Systems with Applications 242 (2024): 122706.

一、现存问题分析

1、由于降低搜索复杂度而降低搜索精度

目前已有的一些整数运动估计算法(如三步和四步搜索算法)通过简化搜索模板来降低运动估计的复杂度。然而,减少搜索点的数量和使用更小的搜索窗口会导致搜索算法陷入局部最优而不是全局最优,从而降低运动搜索的准确性。

2、由于增强搜索精度而导致高计算复杂度和资源消耗

另一种类型的整数运动估计算法(例如菱形搜索算法)采用复杂的搜索模板并增加搜索窗口内的搜索点的数量以提高搜索精度。复杂的运动搜索过程和额外的计算数据导致在视频编码期间显著的计算和存储资源消耗,这是以高成本来实现的。

二、论文提出的方法

1、基于搜索窗口划分的数据重用算法

TZ搜索过程中,搜索窗口重复调用参考像素比例较大,论文提出划分策略。

分析了TZ搜索算法搜索窗口中搜索点的分布,将单元块的大小设置为8×8。较大的块可以被分成几个8×8的子块。搜索窗口被分成两部分:距离大于4的区域称为稀疏区域,距离不大于4的区域称为密集区域。当距离小于或等于4时,满足提前终止以高概率提前结束复杂的搜索过程。搜索点太密集而不能分成8×8个子块。并且对于所有PU大小,仅当步长小于或等于4时才使用搜索窗口中的所有参考像素。

第一个搜索起点被分成四个8×8的子块:A、B、C、D,第二个搜索起点被分成四个8×8的子块:E、F、G、H。当读取参考像素时,不同子块中的重复像素被分配给相应的子块。

在这里插入图片描述

直观展示不同搜索点下的数据重复使用。

在这里插入图片描述

分析了不同尺寸CU在TZ搜索过程中,数据重复使用的占比情况。

在这里插入图片描述

论文想要解决的是从片外重复读取数据这部分消耗,但是片上重新组装的资源消耗是不变的,并没有节省下来。 16×16×8=2KB这个区域分配后就是4KB,大约就有一半是重复的。

参考像素的输入采用的是行输入,但每一次输入的是一行像素,而不是一个完整的8×8块。这些像素会被分配到多个8×8子块中,策略是输入一行,然后first-stage给每个8×8子块分类缓冲,等到一个完整的8×8子块拼接完成输入给下一个阶段进行比较处理。【这里的存储容量的计算感觉有问题,4KB、272bits、80KB的问题都没有说清楚。】核心目的是期望获得一个没有重复调用的8×8子块,然后根据8×8子块进行SAD计算等,那么这个地方根据CU尺寸的不同,扫描顺序就成了一个问题,IME的硬件架构设计也有点问题,上面的SAD Cal不应该只有8个8*8,这样的话并不支持128×128。而且从这个角度来看,需要缓存完整的一个参考像素来做计算,片上资源消耗问题也就出来了。【我现在算出来他的4KB是64×64×8,也就是说缓存一个64×64的参考】

在这里插入图片描述

2、稠密区域/稀疏区域

  1. 稠密区域策略
    • 按行读取和数据复用:参考像素按行读取,并分配到8×8的子块中,以提高数据复用率,减少从外部存储器读取数据的次数。
    • 突发传输:由于像素在行中是连续的,使用突发传输来提高数据传输效率。
    • 提前终止:在搜索过程中,如果SAD值小于等于阈值Tn,则提前终止搜索,减少计算复杂度。
    • 8×8子块划分:稠密区域的搜索窗口被划分为8×8的子块,以便于数据复用和SAD计算。
  2. 稀疏区域策略
    • 按距离分段读取:参考像素按距离从小到大读取,以提高效率。
    • 可变大小子块划分:根据PU的大小,将参考像素划分为四个可变大小的稀疏区域搜索窗口。
    • 数据复用:稀疏区域的搜索窗口也被划分为8×8的子块,以便于数据复用和减少存储资源的消耗。
    • 提前终止:在搜索过程中,如果SAD值小于等于阈值Tn,则提前终止搜索,减少计算复杂度。

Read more

AI的提示词专栏:Prompt 驱动的 SQL 生成与查询优化

AI的提示词专栏:Prompt 驱动的 SQL 生成与查询优化

AI的提示词专栏:Prompt 驱动的 SQL 生成与查询优化 本文聚焦 Prompt 技术在 SQL 领域的应用,先剖析 SQL 生成与优化的痛点,阐述 Prompt 驱动 SQL 生成的核心原理,即通过需求转化、约束注入和示例引导实现自然语言到 SQL 的精准映射。随后结合电商、金融、互联网产品等场景,提供基础型、进阶型、复杂型三类 Prompt 实战案例,展示不同需求下的 Prompt 设计与 SQL 生成过程。还讲解了 Prompt 驱动 SQL 查询优化的方法,包括识别性能瓶颈、设计优化 Prompt 及实战案例分析,同时给出动态 SQL 生成、多数据库兼容等进阶技巧,解答常见问题并提供实践建议,助力读者降低

Google AI Studio 全指南:从入门到精通 Gemini 开发

在生成式 AI 的浪潮中,Google 凭借 Gemini 模型系列强势反击。而对于开发者来说,想要体验、调试并集成 Gemini 模型,最佳的入口并不是 Google Cloud Vertex AI(那是企业级的),而是 Google AI Studio。 Google AI Studio 是一个基于 Web 的快速原型设计环境,它允许开发者极速测试 Gemini 模型,并将测试好的 Prompt(提示词)一键转换为代码。本文将带你从零开始,掌握这款强大的工具。 一、 什么是 Google AI Studio? Google AI Studio 是 Google 为开发者提供的免费(或低成本)AI

API 调用基础:执行式AI必备网络请求知识

API 调用基础:执行式AI必备网络请求知识

API 调用基础:执行式AI必备网络请求知识 📝 本章学习目标:本章是入门认知部分,帮助零基础读者建立对AI Agent的初步认知。通过本章学习,你将全面掌握"API 调用基础:执行式AI必备网络请求知识"这一核心主题。 一、引言:为什么这个话题如此重要 在AI Agent快速发展的今天,API 调用基础:执行式AI必备网络请求知识已经成为每个开发者和研究者必须了解的核心知识。无论你是技术背景还是非技术背景,理解这一概念都将帮助你更好地把握AI时代的机遇。 1.1 背景与意义 💡 核心认知:AI Agent正在从"对话工具"进化为"执行引擎",能够主动完成任务、调用工具、与外部世界交互。这一变革正在深刻改变我们的工作和生活方式。 从2023年AutoGPT的横空出世,到如今百花齐放的Agent生态,短短一年多时间,执行式AI已经从概念走向落地。根据最新统计,全球AI Agent市场规模已突破百亿美元,年增长率超过100%

手把手|VSCode搭建Claude编程环境,低成本用AI写代码

手把手|VSCode搭建Claude编程环境,低成本用AI写代码

📌 教程前言 作为海南大学大一学生,从零开始搞定VSCode调用AI写代码、做UI,全程无复杂操作,跟着步骤走就能成功。避开报错坑、网络坑、扣费坑,低成本用上高效AI编程工具,新手也能一次通关。 ✅ 前期准备 * 电脑系统:Windows(本教程适配Windows环境) * 提前装好:VSCode编辑器、Node.js(版本v24.14.0即可) * 备好手机号(用于DeepSeek平台注册) * 备用:网络环境稳定,避免安装卡顿 🔧 步骤一:全局安装Claude命令行工具 1. 按下Win+X,打开Windows PowerShell,先检查Node版本,确认已安装 (安装地址https://nodejs.org/en) node-v 2. 执行安装命令,切记不要打错包名,少字母会直接报错 npminstall-g @anthropic-ai/claude-code 3. 等待安装完成,