超高清视频的视频数据存储控制装置制造方法

文档序号:7806136阅读:257来源:国知局
超高清视频的视频数据存储控制装置制造方法
【专利摘要】本发明公开了一种超高清视频的视频数据存储控制装置,其特征在于,包括:输入缓冲模块、存储控制模块、存储芯片、输出缓冲模块;输入缓冲模块接收并缓存视频数据,并将视频数据存入存储控制模块;存储控制模块,用于接收视频数据,将视频数据存入存储芯片;输出缓冲模块通过存储控制模块,从存储芯片读取视频数据,缓存并输出视频数据。本发明实施例能够满足超高清视频存储与传输的高数据率需求。
【专利说明】超高清视频的视频数据存储控制装置

【技术领域】
[0001] 本发明涉及通信领域,尤其涉及一种超高清视频的视频数据存储控制装置。

【背景技术】
[0002] 数字电视已经走入寻常百姓家,一种正在发展的数字电视标准为超高清晰度电 视,即 UHDTV(Ultra High Definition Television),图像格式包含 3840X2160 分辨率。
[0003] 现今的超高清电视机能够对2K及以下分辨率的视频源进行解码,然后在显示前, 对低分辨率视频进行插值处理,将低分辨率视频,如标清(720*576)、半高清(1280X720)、 全高清(1920X1080)通过帧内插值处理将其转化为超高清(3840X2160)分辨率予以显 /_J、1 〇
[0004] 相比全高清而言,超高清视频的在数据率上有了爆发性的增长,达到了全高清的4 倍之巨。以分辨率为3840 X 2160,帧率为30fps的视频为例,8bit颜色显示的屏幕,其解码 后用于显示的数据率达到了 5. 92Gbps,再考虑行场消隐期间的时间开销,显示时的数据速 率将更大。
[0005] 因此如何提高数据率,以满足超高清视频需求是当前需要解决的问题。


【发明内容】

[0006] 本发明实施例提供一种超高清视频的视频数据存储控制装置,能够满足超高清视 频存储与传输的高数据率需求。
[0007] 本发明实施例采用如下技术方案:
[0008] -种超高清视频的视频数据存储控制装置,包括:输入缓冲模块、存储控制模块、 存储芯片、输出缓冲模块;
[0009] 输入缓冲模块接收并缓存视频数据,并将视频数据存入存储控制模块;
[0010] 存储控制模块,用于接收视频数据,将视频数据存入存储芯片;以及从存储芯片读 出视频数据,将视频数据传输至输出缓冲模块;输出缓冲模块通过存储控制模块,从存储芯 片读取视频数据,并缓存并输出视频数据。
[0011] 可选的,存储芯片中的存储格式为:亮度数据与色度数据分别存在不同的Bank 中,存储时的地址从高到低分别为[Row,Bank,Col],写入与读出时进行连续的写与读,以行 为基本写入读出单位,且在写入与读出时优先切换不同Bank的相同Row。
[0012] 可选的,存储控制模块对存储芯片的控制由状态机执行,分为四个状态:初始化、 判断输入输出请求、读出数据、写入数据。
[0013] 可选的,初始化状态初始化存储芯片,等待初始化完成信号,接收到信号后发出存 储芯片可写入的信号至输入缓冲模块,且跳转至判断输入输出请求状态;
[0014] 判断输入输出请求时,缓存若干帧到存储芯片,在完成若干帧数据缓存后,以读出 数据的请求为先,若接收到读出数据请求,给出收到该请求的应答信号,同时跳转至读出数 据状态;否则若接收到写入数据请求,给出收到该请求的应答信号,同时跳转至写入数据状 态;
[0015] 读出数据状态根据输出缓冲模块提供的数据所在首地址,输出视频帧内某一行的 亮度数据或色度数据给输出缓冲模块,完成后跳转至判断输入输出请求状态;
[0016] 写入数据状态根据输入缓冲模块提供的数据所在首地址,接收从输入缓冲模块输 入的视频帧内某一行的亮度数据或色度数据,完成后跳转至判断输入输出请求状态。
[0017] 可选的,输入缓冲模块的控制由状态机执行,分为四个状态:初始化、判断写入数 据、写入亮度数据、写入色度数据。
[0018] 可选的,在初始化状态,当接收到存储控制模块发出的可写入信号后进入判断写 入数据状态,否则仍返回初始化状态;
[0019] 判断写入数据状态判断是否可以开始对存储芯片进行写入,若可以,则判断写入 的数据为亮度数据还是色度数据,若为一帧中的亮度数据,发送写入请求信号至存储控制 模块,收到应答后,跳转至写入亮度数据状态,若为一帧中的色度数据,发送写入请求信号 至存储控制模块,收到应答后,跳转至写入色度数据状态;否则仍返回判断写入数据状态;
[0020] 写入亮度数据状态将一行亮度数据输出至存储控制模块,同时记录每个数据所在 的帧序号、帧内行序号以及行内像素序号,根据这些序号以及权利2所要求的视频帧数据 在存储芯片中的存储格式,产生写入存储芯片的地址,完成一行的亮度数据输出后,返回判 断写入数据状态状态;
[0021] 写入色度数据状态将一行色度数据输出至存储控制模块,同时记录每个数据所在 的帧序号、帧内行序号以及行内像素序号,根据这些序号以及权利2所要求的视频帧数据 在存储芯片中的存储格式,产生写入存储芯片的地址,完成一行的色度数据输出后,返回判 断写入数据状态状态。
[0022] 可选的,输出缓冲模块对每一帧的帧数据使用两个队列,一个队列存储亮度数据, 一个队列存储色度数据。
[0023] 可选的,输出缓冲模块的控制由状态机执行,分为四个状态:初始化、判断读出请 求、读出亮度数据、读出色度数据。
[0024] 可选的,初始化状态接收到存储控制模块发出的可输出信号后进入判断读出数据 状态,否则仍返回初始化状态;
[0025] 在判断读出数据状态时,若存储亮度数据的队列数据量小于阈值时,发送数据读 出请求至存储控制模块,收到应答后,跳转至读出亮度数据状态,否则若存储色度数据的队 列数据量小于阈值时,发送写入请求信号至存储控制模块,收到应答后,跳转至读出色度数 据状态;否则仍返回判断读出数据状态;
[0026] 读出亮度数据状态根据所需数据所在的帧序号、帧内行序号以及行内像素序号, 计算所需数据在存储芯片中的地址,发送读出请求至存储控制模块,存储控制模块从相应 地址读出一行亮度数据,输出至亮度队列,完成一行的亮度数据读出后,返回判断读出数据 状态;
[0027] 读出色度数据状态根据所需数据所在的帧序号、帧内行序号以及行内像素序号, 计算所需数据在存储芯片中的地址,发送读出请求至存储控制模块,存储控制模块从相应 地址读出一行色度数据,输出至色度队列,完成一行的色度数据读出后,返回判断读出数据 状态。
[0028] 可选的,设置一个循环队列对输出帧进行控制,队列头为存储芯片内所存的最新 的帧序号,队列尾为输出缓冲队列正从存储芯片读出的帧序号,若队列头与队列尾的差小 于某个阈值时,则原本的巾贞之间插入一巾贞,若队列头与队列尾的差大于某个阈值时,则跳过 存储在芯片内的一帧数据。
[0029] 基于上述技术方案,本发明实施例的超高清视频的视频数据存储控制装置,输入 缓冲模块接收并缓存视频数据,并将视频数据存入存储控制模块,存储控制模块接收视频 数据,将视频数据存入存储芯片,输出缓冲模块通过存储控制模块,从存储芯片读取视频数 据,并缓存并输出视频数据。从而满足超高清视频存储与传输的高数据率需求。

【专利附图】

【附图说明】
[0030] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。
[0031] 图1为本发明实施例的系统模块框架图;
[0032] 图2为本发明实施例存储芯片内亮度数据存储格式;
[0033] 图3为本发明实施例存储芯片内色度数据存储格式;
[0034] 图4为本发明实施例的存储控制器模块内的状态转移图;
[0035] 图5为本发明实施例的输入缓冲模块内的状态转移图;
[0036] 图6为本发明实施例的输出缓冲模块内的状态转移图。

【具体实施方式】
[0037] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明 一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有 做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038] 实施例1
[0039] 本发明实施例提供一种超高清视频的视频数据存储控制装置,包括:输入缓冲模 块、存储控制模块、存储芯片、输出缓冲模块;
[0040] 输入缓冲模块接收并缓存视频数据,并将视频数据存入存储控制模块;
[0041] 存储控制模块,用于接收视频数据,将视频数据存入存储芯片,以及将存储芯片中 的视频数据输出至输出缓冲模块;
[0042] 输出缓冲模块通过存储控制模块,从存储芯片读取视频数据,并缓存并输出视频 数据。
[0043] 可选的,存储芯片中的存储格式为:亮度数据与色度数据分别存在不同的Bank 中,存储时的地址从高到低分别为[Row,Bank,Col],写入与读出时进行连续的写与读,以行 为基本写入读出单位,且在写入与读出时优先切换不同Bank的相同Row。
[0044] 可选的,存储控制模块对存储芯片的控制由状态机执行,分为四个状态:初始化、 判断输入输出请求、读出数据、写入数据。
[0045] 可选的,初始化状态初始化存储芯片,等待初始化完成信号,接收到信号后发出存 储芯片可写入的信号至输入缓冲模块,且跳转至判断输入输出请求状态;
[0046] 判断输入输出请求时,缓存若干帧到存储芯片,在完成若干帧数据缓存后,以读出 数据的请求为先,若接收到读出数据请求,给出收到该请求的应答信号,同时跳转至读出数 据状态;否则若接收到写入数据请求,给出收到该请求的应答信号,同时跳转至写入数据状 态;否则仍返回判断输入输出请求状态;
[0047] 读出数据状态根据输出缓冲模块提供的数据所在首地址,输出视频帧内某一行的 亮度数据或色度数据给输出缓冲模块,完成后跳转至判断输入输出请求状态;
[0048] 写入数据状态根据输入缓冲模块提供的数据所在首地址,接收从输入缓冲模块输 入的视频帧内某一行的亮度数据或色度数据,完成后跳转至判断输入输出请求状态。
[0049] 可选的,输入缓冲模块的控制由状态机执行,分为四个状态:初始化、判断写入数 据、写入亮度数据、写入色度数据。
[0050] 可选的,在初始化状态,当接收到存储控制模块发出的可写入信号后进入判断写 入数据状态,否则仍返回初始化状态;
[0051] 判断写入数据状态判断是否可以开始对存储芯片进行写入,若可以,则判断写入 的数据为亮度数据还是色度数据,若为一帧中的亮度数据,发送写入请求信号至存储控制 模块,收到应答后,跳转至写入亮度数据状态,若为一帧中的色度数据,发送写入请求信号 至存储控制模块,收到应答后,跳转至写入色度数据状态;否则仍返回判断写入数据状态;
[0052] 写入亮度数据状态将一行亮度数据的输出至存储控制模块,同时记录每个数据所 在的帧序号、帧内行序号以及行内像素序号,根据这些序号以及权利2所要求的视频帧数 据在存储芯片中的存储格式,产生写入存储芯片的地址,完成一行的亮度数据输出后,返回 判断写入数据状态状态;
[0053] 写入色度数据状态将一行色度数据输出至存储控制模块,同时记录每个数据所在 的帧序号、帧内行序号以及行内像素序号,根据这些序号以及权利2所要求的视频帧数据 在存储芯片中的存储格式,产生写入存储芯片的地址,完成一行的色度数据输出后,返回判 断写入数据状态状态。
[0054] 可选的,输出缓冲模块对每一帧的帧数据使用两个队列,一个队列存储亮度数据, 一个队列存储色度数据。
[0055] 可选的,输出缓冲模块的控制由状态机执行,分为四个状态:初始化、判断读出请 求、读出亮度数据、读出色度数据。
[0056] 可选的,初始化状态接收到存储控制模块发出的可输出信号后进入判断读出数据 状态,否则仍返回初始化状态;
[0057] 在判断读出数据状态时,若存储亮度数据的队列数据量小于阈值时,发送数据读 出请求至存储控制模块,收到应答后,跳转至读出亮度数据状态,否则若存储色度数据的队 列数据量小于阈值时,发送写入请求信号至存储控制模块,收到应答后,跳转至读出色度数 据状态,否则仍返回判断读出数据状态;
[0058] 读出亮度数据状态根据所需数据所在的帧序号、帧内行序号以及行内像素序号, 计算所需数据在存储芯片中的地址,发送读出请求至存储控制模块,存储控制模块从相应 地址读出一行亮度数据,输出至亮度队列,完成一行的亮度数据读出后,返回判断读出数据 状态;
[0059] 读出色度数据状态根据所需数据所在的帧序号、帧内行序号以及行内像素序号, 计算所需数据在存储芯片中的地址,存储控制模块从相应地址读出一行色度数据,输出至 亮度队列,完成一行的色度数据读出后,返回判断读出数据状态。
[0060] 可选的,设置一个循环队列对输出帧进行控制,队列头为存储芯片内所存的最新 的帧序号,队列尾为输出缓冲队列正从存储芯片读出的帧序号,若队列头与队列尾的差小 于某个阈值时,则原本的巾贞之间插入一巾贞,若队列头与队列尾的差大于某个阈值时,则跳过 存储在芯片内的一帧数据。
[0061] 本发明实施例的超高清视频的视频数据存储控制装置,输入缓冲模块接收并缓存 视频数据,并将视频数据存入存储控制模块,存储控制模块接收视频数据,将视频数据存入 存储芯片,输出缓冲模块通过存储控制模块,从存储芯片读取视频数据,并缓存并输出视频 数据。从而提高数据率,满足超高清视频存储与传输的高数据率需求。
[0062] 实施例2
[0063] 本实施例以超1?清视频为4K超1?清视频为例进行说明。
[0064] 本发明实施例的超高清视频的视频数据存储控制装置,由以下四个部分组成:输 入缓冲模块、存储控制模块、存储芯片、输出缓冲模块。
[0065] 其中,4K视频帧数据在存储芯片中的存储格式如下所述:亮度数据与色度数据分 别存在不同的Bank中,存储时的地址从高到低分别为[Row,Bank,Col],写入与读出时进 行连续的写与读,以行为基本写入读出单位,且在写入与读出时优先切换不同Bank的相同 Row。
[0066] 其中,存储控制模块对存储芯片的控制分为以下四个状态:
[0067] 状态1 :初始化。初始化存储芯片,等待初始化完成信号,接收到信号后发出存储 芯片可写入的信号至输入缓冲模块,且跳转至状态2 ;
[0068] 状态2:判断输入输出请求。最开始时,由于存储芯片内无数据缓存,此时仅对写 入数据请求做出响应,直到芯片内部缓存若干帧后。每次给出写入数据应答后,跳转至状态 4。在完成若干帧数据缓存后,以读出数据的请求为先,若接收到读出数据请求,给出收到该 请求的应答信号,同时跳转至状态3,否则若接收到写入数据请求,给出收到该请求的应答 信号,同时跳转至状态4;
[0069] 状态3 :读出数据。根据输出缓冲模块提供的数据所在首地址,输出一行数据给输 出缓冲模块,即输出视频帧内某一行的亮度数据或色度数据,完成后跳转至状态2 ;
[0070] 状态4 :写入数据。根据输入缓冲模块提供的数据所在首地址,接收从输入缓冲模 块输入的一行数据,即视频帧内某一行的亮度数据或色度数据,完成后跳转至状态2 ;
[0071] 其中,对输入缓冲模块,每一帧的帧数据使用同一个队列。对于每一帧数据,在输 入缓冲模块时,都是先输入一帧的亮度数据,再输入一帧的色度数据。
[0072] 其中,输入缓冲模块的控制状态如下所述:
[0073] 状态1 :初始化。当接收到存储控制模块发出的可写入信号后进入状态2 ;
[0074] 状态2 :判断写入数据。判断是否可以开始对存储芯片进行写入,若可以,则判断 写入的数据为亮度数据还是色度数据,若为一帧中的亮度数据,发送写入请求信号至存储 控制模块,收到应答后,跳转至状态3,否则仍返回状态2。若为一帧中的色度数据,发送写 入请求信号至存储控制模块,收到应答后,跳转至状态4,否则仍返回状态2 ;
[0075] 状态3 :写入亮度数据。开始将一行亮度数据的输出至存储控制模块,同时记录每 个数据所在的帧序号、帧内行序号以及行内像素序号,根据这些序号以及前述视频帧数据 在存储芯片中的存储格式,产生写入存储芯片的地址。完成一行的亮度数据输出后,返回状 态2 ;
[0076] 状态4 :写入色度数据。开始将一行色度数据的输出至存储控制模块,同时记录每 个数据所在的帧序号、帧内行序号以及行内像素序号,根据这些序号以及前述视频帧数据 在存储芯片中的存储格式,产生写入存储芯片的地址。完成一行的色度数据输出后,返回状 态2 ;
[0077] 其中,对输出缓冲模块,每一帧的帧数据使用两个队列,一个队列存储亮度数据, 一个队列存储色度数据。
[0078] 其中,输出缓冲模块的控制状态如下所述:
[0079] 状态1 :初始化。当接收到存储控制模块发出的可输出信号后进入状态2 ;
[0080] 状态2 :判断读出数据。若存储亮度数据的队列数据量小于阈值时,发送数据读出 请求至存储控制模块,收到应答后,跳转至状态3,否则仍返回状态2。若存储色度数据的队 列数据量小于阈值时,发送写入请求信号至存储控制模块,收到应答后,跳转至状态4,否则 仍返回状态2 ;
[0081] 状态3 :读出亮度数据。根据所需数据所在的帧序号、帧内行序号以及行内像素序 号,计算所需数据在存储芯片中的地址,存储控制模块从相应地址读出一行亮度数据,输出 至亮度队列。完成一行的亮度数据读出后,返回状态2;
[0082] 状态4 :读出色度数据。根据所需数据所在的帧序号、帧内行序号以及行内像素序 号,计算所需数据在存储芯片中的地址,存储控制模块从相应地址读出一行色度数据,输出 至亮度队列。完成一行的色度数据读出后,返回状态2;
[0083] 其中,为避免输出所需要的数据还未写入,设置一个循环队列对输出帧进行控制。 队列头为存储芯片内所存的最新的帧序号,队列尾为输出缓冲队列正从存储芯片读出的帧 序号。若队列头与队列尾的差小于某个阈值时,则原本的巾贞之间插入一巾贞,若队列头与队列 尾的差大于某个阈值时,则跳过存储在芯片内的一帧数据。
[0084] 本发明实施例通过前后输入输出缓冲模块,切换前后不同模块的时钟域,同时使 得数据的输出不受数据输入的瞬时速率以及存储模块的瞬时工作状态影响,满足视频数据 的连续输出;本发明实施例采用的帧数据在存储芯片内部的存储格式,可以保证在写入和 读出时存储芯片的高效率,花较少的时间在输入输出转换以及不同Row的切换上;本发明 实施例采用循环队列记录输入帧序号与输出帧序号,通过插入帧或跳过帧的方式解决短时 输入帧速率不稳定的情况。
[0085] 本发明实施例的超高清视频的视频数据存储控制装置,输入缓冲模块接收并缓存 视频数据,并将视频数据存入存储控制模块,存储控制模块接收视频数据,将视频数据存入 存储芯片,输出缓冲模块通过存储控制模块,从存储芯片读取视频数据,并缓存并输出视频 数据。从而满足超高清视频存储与传输的高数据率需求。
[0086] 实施例3
[0087] 本发明实施例使用FPGA平台,型号为Altera的Arria5AGXFA5H4F35C5。外置存 储芯片为镁光的DDR3存储芯片,两片位宽为16bits的芯片并联为32bits芯片使用,Bank、 Row、Col的地址位数分别为3、13、10。亮度与色度数据采用4:2:0、每个数据8bit的方式 进行编码。具体实施例中的系统结构图如图1所示。
[0088] 4K分辨率的帧数据在存储芯片中的存储格式如图2所示。其中,亮度数据Y存储 于第0、l、2、3Bank中,色度数据CbCr存储于第4、5、6、7Bank中。在一帧数据内,一行色度 Y的大小为30kbits,与一行色度CbCr大小相同。而在DDR3芯片内任意一个Bank中,每一 个Row所能存储的数据量为32kbits,大于一行亮度或一行色度的大小。故在存储芯片的一 个Row内,可以存储下一行色度数据或一行亮度数据。对于一帧数据,亮度Y有2160行,每 个Bank中存540行,色度CbCr有1080行,每个Bank中270行。芯片内部总共缓存14帧 数据,序号为〇?13,当缓存完第13帧数据后,下一帧数据将从头开始,覆盖第0帧数据。
[0089] 对于每一巾贞中每一行的序号到芯片内存储地址的映射关系为:设对于第i巾贞中的 第k行亮度数据,令num = i*2160+k,为二进制格式,共15位。设该行其在存储芯片内的 地址为[Row, Bank],Bank为{0, num[l:0]},即第一位为0,后两位为num的后两位;Row为 num[14:3],即num右移两位后的值。同理,对于第p巾贞中的第q行的色度数据,令num = p*2160+q,为二进制格式,共15位。设该行其在存储芯片内的地址为[Row, Bank],Bank为 {1,num[l :0]},即第一位为1,后两位为num的后两位;Row为num[14:3],即num右移两位 后的值。
[0090] 存储控制器模块对存储芯片的读写工作由Altera公司提供的IP核负责,而控制 部分主要是有一个状态机。该状态机分为四个状态,如图3所示。
[0091] 状态1 :初始化。初始化存储芯片,等待DDR3存储芯片的初始化完成信号local_ init_done,接收到信号后发出存储芯片可写入的信号ddr_can_input至输入缓冲模块,且 跳转至状态2 ;
[0092] 状态2:判断输入输出请求。最开始时,由于存储芯片内无数据缓存,此时仅对写 入数据请求作出响应,直到芯片内部缓存7帧后。每次给出写入数据应答后,跳转至状态 4。在完成7帧数据缓存后,以读出数据的请求为先,若接收到读出数据请求data_output_ req,给出收到该请求的应答信号output_req_received,同时跳转至状态3,否则若接收到 写入数据请求data_input_req,给出收到该请求的应答信号input_req_received,同时跳 转至状态4 ;
[0093] 状态3 :读出数据。根据输出缓冲模块提供的数据所在首地址,输出一行数据给输 出缓冲模块,即输出视频帧内某一行的亮度数据或色度数据,完成后跳转至状态2 ;
[0094] 状态4 :写入数据。根据输入缓冲模块提供的数据所在首地址,接收从输入缓冲模 块输入的一行数据,即视频帧内某一行的亮度数据或色度数据,完成后跳转至状态2 ;
[0095] 在输入缓冲模块内,对单独一帧的帧数据,包括连续的亮度数据和色度数据,使用 同一个队列。对于每一帧数据,在输入缓冲模块时,都是先输入一帧的亮度数据,再输入一 帧的色度数据。
[0096] 其中,输入缓冲模块的控制状态见图4,如下所述:
[0097] 状态1 :初始化。当接收到存储控制器模块发出的可写入信号ddr_can_input后 进入状态2 ;
[0098] 状态2 :判断写入数据。若缓冲队列的数据量大于60kbits,则判断写入的数据为 亮度数据还是色度数据,若为一巾贞中的亮度数据,发送写入请求信号data_input_req至存 储控制器模块,收到应答信号input_req_received后,跳转至状态3,否则仍返回状态2。若 为一帧中的色度数据,发送写入请求信号data_input_ req至存储控制器模块,收到应答信 号input_req_received后,跳转至状态4,否则仍返回状态2 ;
[0099] 状态3 :写入亮度数据。开始将一行亮度数据的输出至存储控制器模块,同时记录 每个数据所在的帧序号、帧内行序号以及行内像素序号,根据这些序号映射产生写入存储 芯片的地址。完成一行的亮度数据输出后,返回状态2;
[0100] 状态4 :写入色度数据。开始将一行色度数据的输出至存储控制器模块,同时记录 每个数据所在的帧序号、帧内行序号以及行内像素序号,根据这些序号映射产生写入存储 芯片的地址。完成一行的色度数据输出后,返回状态2;
[0101] 其中,对输出缓冲模块,对单独一帧的帧数据使用两个队列,一个队列存储亮度数 据,一个队列存储色度数据,以方便后续计算每个像素的RGB值。
[0102] 其中,输出缓冲模块的控制状态见图5,如下所述:
[0103] 状态1 :初始化。当接收到存储控制器模块发出的可输出信号ddr_can_output后 进入状态2 ;
[0104] 状态2 :判断读出数据。若存储亮度数据的队列数据量小于6行时,发送数据读出 请求Y_req至存储控制器模块,收到应答output_req_received后,跳转至状态3,否则仍返 回状态2。否则若存储色度数据的队列数据量小于3行时,发送写入请求信号CbCr_ req至 存储控制器模块,收到应答〇utput_req_received后,跳转至状态4,否则仍返回状态2 ;
[0105] 状态3 :读出亮度数据。根据所需数据所在的帧序号、帧内行序号以及行内像素序 号,根据前面所述的映射关系,计算所需数据在存储芯片中的地址,存储控制器模块从相应 地址读出一行亮度数据,输出至亮度队列。完成一行的亮度数据读出后,返回状态2 ;
[0106] 状态4 :读出色度数据。根据所需数据所在的帧序号、帧内行序号以及行内像素序 号,根据前面所述的映射关系,计算所需数据在存储芯片中的地址,存储控制器模块从相应 地址读出一行色度数据,输出至色度队列。完成一行的亮额度数据读出后,返回状态2 ;
[0107] 其中,为避免输出所需要的数据还未写入,设置一个循环队列对输出帧进行控制。 循环队列大小为14,队列头为存储芯片内所存的最新的帧序号,队列尾为输出缓冲队列正 从存储芯片读出的巾贞序号。若队列头与队列尾的差小于3时,则原本的巾贞之间插入一巾贞,若 队列头与队列尾的差大于11时,则跳过存储在芯片内的一帧数据。通过插入帧或跳过帧的 方式解决短时输入帧速率不稳定的情况。
[0108] 本发明实施例的超高清视频的视频数据存储控制装置,输入缓冲模块接收并缓存 视频数据,并将视频数据存入存储控制模块,存储控制模块接收视频数据,将视频数据存入 存储芯片,输出缓冲模块通过存储控制模块,从存储芯片读取视频数据,并缓存并输出视频 数据。从而满足超高清视频存储与传输的高数据率需求。
[0109] 本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和 范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内, 则本发明也意图包含这些改动和变型在内。
【权利要求】
1. 一种超高清视频的视频数据存储控制装置,其特征在于,包括:输入缓冲模块、存储 控制模块、存储芯片、输出缓冲模块; 输入缓冲模块接收并缓存视频数据,并将视频数据存入存储控制模块; 存储控制模块,用于接收视频数据,将视频数据存入存储芯片;以及从存储芯片读出视 频数据,将视频数据传输至输出缓冲模块; 输出缓冲模块通过存储控制模块,从存储芯片读取视频数据,缓存并输出视频数据。
2. 根据权利要求1所述的装置,其特征在于,存储芯片中的存储格式为:亮度数据与色 度数据分别存在不同的Bank中,存储时的地址从高到低分别为[Row,Bank,Col],写入与读 出时进行连续的写与读,以行为基本写入读出单位,且在写入与读出时优先切换不同Bank 的相同Row。
3. 根据权利要求1所述的装置,其特征在于,存储控制模块对存储芯片的控制由状态 机执行,分为四个状态:初始化、判断输入输出请求、读出数据、写入数据。
4. 根据权利要求3所述的装置,其特征在于,初始化状态初始化存储芯片,等待初始化 完成信号,接收到信号后发出存储芯片可写入的信号至输入缓冲模块,且跳转至判断输入 输出请求状态; 判断输入输出请求时,缓存若干帧到存储芯片,在完成若干帧数据缓存后,以读出数据 的请求为先,若接收到读出数据请求,给出收到该请求的应答信号,同时跳转至读出数据状 态;否则若接收到写入数据请求,给出收到该请求的应答信号,同时跳转至写入数据状态; 读出数据状态根据输出缓冲模块提供的数据所在首地址,输出视频帧内某一行的亮度 数据或色度数据给输出缓冲模块,完成后跳转至判断输入输出请求状态; 写入数据状态根据输入缓冲模块提供的数据所在首地址,接收从输入缓冲模块输入的 视频帧内某一行的亮度数据或色度数据,完成后跳转至判断输入输出请求状态。
5. 根据权利要求1所述的装置,其特征在于,输入缓冲模块的控制由状态机执行,分为 四个状态:初始化、判断写入数据、写入亮度数据、写入色度数据。
6. 根据权利要求5所述的装置,其特征在于,在初始化状态,当接收到存储控制模块发 出的可写入信号后进入判断写入数据状态,否则仍返回初始化状态; 判断写入数据状态判断是否可以开始对存储芯片进行写入,若可以,则判断写入的数 据为亮度数据还是色度数据,若为一帧中的亮度数据,发送写入请求信号至存储控制模块, 收到应答后,跳转至写入亮度数据状态,若为一帧中的色度数据,发送写入请求信号至存储 控制模块,收到应答后,跳转至写入色度数据状态;否则仍返回判断写入数据状态; 写入亮度数据状态将一行亮度数据输出至存储控制模块,同时记录每个数据所在的帧 序号、帧内行序号以及行内像素序号,根据这些序号以及权利2所要求的视频帧数据在存 储芯片中的存储格式,产生写入存储芯片的地址,完成一行的亮度数据输出后,返回判断写 入数据状态状态; 写入色度数据状态将一行色度数据输出至存储控制模块,同时记录每个数据所在的帧 序号、帧内行序号以及行内像素序号,根据这些序号以及权利2所要求的视频帧数据在存 储芯片中的存储格式,产生写入存储芯片的地址,完成一行的色度数据输出后,返回判断写 入数据状态状态。
7. 根据权利要求1所述的装置,其特征在于,输出缓冲模块对每一帧的帧数据使用两 个队列,一个队列存储亮度数据,一个队列存储色度数据。
8. 根据权利要求1所述的装置,其特征在于,输出缓冲模块的控制由状态机执行,分为 四个状态:初始化、判断读出请求、读出亮度数据、读出色度数据。
9. 根据权利要求8所述的装置,其特征在于,初始化状态接收到存储控制模块发出的 可输出信号后进入判断读出数据状态,否则仍返回初始化状态; 在判断读出数据状态时,若存储亮度数据的队列数据量小于阈值时,发送数据读出请 求至存储控制模块,收到应答后,跳转至读出亮度数据状态,否则若存储色度数据的队列数 据量小于阈值时,发送写入请求信号至存储控制模块,收到应答后,跳转至读出色度数据状 态,否则仍返回判断读出数据状态; 读出亮度数据状态根据所需数据所在的帧序号、帧内行序号以及行内像素序号,计算 所需数据在存储芯片中的地址,发送读出请求至存储控制模块,存储控制模块从相应地址 读出一行亮度数据,输出至亮度队列,完成一行的亮度数据读出后,返回判断读出数据状 态; 读出色度数据状态根据所需数据所在的帧序号、帧内行序号以及行内像素序号,计算 所需数据在存储芯片中的地址,发送读出请求至存储控制模块,存储控制模块从相应地址 读出一行色度数据,输出至色度队列,完成一行的色度数据读出后,返回判断读出数据状 态。
10. 根据权利要求1所述的装置,其特征在于,设置一个循环队列对输出帧进行控制, 队列头为存储芯片内所存的最新的帧序号,队列尾为输出缓冲队列正从存储芯片读出的帧 序号,若队列头与队列尾的差小于某个阈值时,则在当前相邻的帧之间插入一帧,若队列头 与队列尾的差大于某个阈值时,则跳过存储在芯片内的一帧数据。
【文档编号】H04N5/76GK104092968SQ201410263854
【公开日】2014年10月8日 申请日期:2014年6月13日 优先权日:2014年6月13日
【发明者】薛永林, 邱卫华, 孙乐民 申请人:清华大学, 四川长虹电器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1