• HD2AV_F3B


    文档内容:循环存储器的编写,每一行的像素输入进行存储,再依据目标像素所在行进行相应的读取。工程中会开辟一定空间的RAM用于存储,但是以一个循环的顺序去读写换

    时间节点:2014/12/20~2014/12/22

    一、   循环RAM

        循环RAM即为一个循环读写的存储模块,数据填充满存储区间之后再从头接写入覆盖原有的存储空间。

        文档HD2AV_F3A中我们知道会在某一特定时刻进行读取操作,而且需要同时读取4行的数据,而视频的数据又是持续写入的,所以我们至少需要5个RAM来组成一个循环的RAM。这样实现一个RAM写入数据的同时4个RAM读出数据。在C语言中实现存储空间的切换可以通过指针来较为方便的实现,可是FPGA中就有其特殊性,例如一个单口RAM,只含有写使能信号、数据输入输出、地址线与时钟。这个时候就需要根据外接的输入变量来进行相应的特殊操作,输入变量包括HD2AV_F3A中提到的读使能等信号,具体的关于它的实现会在第四章的文档中讲述,本文档只讲述存储策略。

    二、视频信号处理的行存储策略

        视频信号一行一行的,一个像素一个像素的传输,设定五个RAM作为LineBuf。第一行存入LineBuf0、第二行存入LineBuf1….第六行覆盖存入LineBuf0。写入的操作每个周期都在进行着,而读取操作则要视外界的读使能信号而定,因为只有产生了目标信号行,有计算需求了,才会进行读的操作,而且是一次性的读出4个LineBuf里面的像素值。相应的示意图如下所示:

     

        AdvanceWrite变量控制着写入数据在不同LineBuf之间切换,AdvanceRead控制着数据什么时候读出,即右侧的红色线条,当AdvanceRead有效的时候,读取4个LineBuf中的数据,当下一次AdvanceRead有效时,读取另外4个LineBuf的数据。

        在上一个文档中的分数倍采样率变换中会产生读使能信号AdvanceWrite以及写使能信号AdvanceRead,具体关于如何通过这两个使能信号实现目的数据计算所需的4个源数据YCbCr_ReadData0/1/2/3会在第四章节中讲述。

    一切都是最好的安排,感谢生命中所遭遇的一切!
  • 相关阅读:
    redis 报错 Redis protected-mode 配置文件没有真正启动
    模板进阶
    Django 模板
    合理使用nginxhash策略做更有意义的负载均衡
    Nginx在局域网中使用ip_hash负载均衡策略,访问全部分发到同一个后台服务器
    故障分析:数据库一致性关闭缓慢问题诊断
    Could not find acceptable representation
    Django 视图与网址进阶:
    Django 视图与网址
    eclipse安装Axis2插件和简单的webservice发布
  • 原文地址:https://www.cnblogs.com/sunxuxu/p/4204098.html
Copyright © 2020-2023  润新知