CN104092968A - 超高清视频的视频数据存储控制装置 - Google Patents
超高清视频的视频数据存储控制装置 Download PDFInfo
- Publication number
- CN104092968A CN104092968A CN201410263854.9A CN201410263854A CN104092968A CN 104092968 A CN104092968 A CN 104092968A CN 201410263854 A CN201410263854 A CN 201410263854A CN 104092968 A CN104092968 A CN 104092968A
- Authority
- CN
- China
- Prior art keywords
- data
- state
- frame
- storage
- control module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Image Input (AREA)
Abstract
本发明公开了一种超高清视频的视频数据存储控制装置,其特征在于,包括:输入缓冲模块、存储控制模块、存储芯片、输出缓冲模块;输入缓冲模块接收并缓存视频数据,并将视频数据存入存储控制模块;存储控制模块,用于接收视频数据,将视频数据存入存储芯片;输出缓冲模块通过存储控制模块,从存储芯片读取视频数据,缓存并输出视频数据。本发明实施例能够满足超高清视频存储与传输的高数据率需求。
Description
技术领域
本发明涉及通信领域,尤其涉及一种超高清视频的视频数据存储控制装置。
背景技术
数字电视已经走入寻常百姓家,一种正在发展的数字电视标准为超高清晰度电视,即UHDTV(Ultra High Definition Television),图像格式包含3840×2160分辨率。
现今的超高清电视机能够对2K及以下分辨率的视频源进行解码,然后在显示前,对低分辨率视频进行插值处理,将低分辨率视频,如标清(720*576)、半高清(1280×720)、全高清(1920×1080)通过帧内插值处理将其转化为超高清(3840×2160)分辨率予以显示。
相比全高清而言,超高清视频的在数据率上有了爆发性的增长,达到了全高清的4倍之巨。以分辨率为3840×2160,帧率为30fps的视频为例,8bit颜色显示的屏幕,其解码后用于显示的数据率达到了5.92Gbps,再考虑行场消隐期间的时间开销,显示时的数据速率将更大。
因此如何提高数据率,以满足超高清视频需求是当前需要解决的问题。
发明内容
本发明实施例提供一种超高清视频的视频数据存储控制装置,能够满足超高清视频存储与传输的高数据率需求。
本发明实施例采用如下技术方案:
一种超高清视频的视频数据存储控制装置,包括:输入缓冲模块、存储控制模块、存储芯片、输出缓冲模块;
输入缓冲模块接收并缓存视频数据,并将视频数据存入存储控制模块;
存储控制模块,用于接收视频数据,将视频数据存入存储芯片;以及从存储芯片读出视频数据,将视频数据传输至输出缓冲模块;输出缓冲模块通过存储控制模块,从存储芯片读取视频数据,并缓存并输出视频数据。
可选的,存储芯片中的存储格式为:亮度数据与色度数据分别存在不同的Bank中,存储时的地址从高到低分别为[Row,Bank,Col],写入与读出时进行连续的写与读,以行为基本写入读出单位,且在写入与读出时优先切换不同Bank的相同Row。
可选的,存储控制模块对存储芯片的控制由状态机执行,分为四个状态:初始化、判断输入输出请求、读出数据、写入数据。
可选的,初始化状态初始化存储芯片,等待初始化完成信号,接收到信号后发出存储芯片可写入的信号至输入缓冲模块,且跳转至判断输入输出请求状态;
判断输入输出请求时,缓存若干帧到存储芯片,在完成若干帧数据缓存后,以读出数据的请求为先,若接收到读出数据请求,给出收到该请求的应答信号,同时跳转至读出数据状态;否则若接收到写入数据请求,给出收到该请求的应答信号,同时跳转至写入数据状态;
读出数据状态根据输出缓冲模块提供的数据所在首地址,输出视频帧内某一行的亮度数据或色度数据给输出缓冲模块,完成后跳转至判断输入输出请求状态;
写入数据状态根据输入缓冲模块提供的数据所在首地址,接收从输入缓冲模块输入的视频帧内某一行的亮度数据或色度数据,完成后跳转至判断输入输出请求状态。
可选的,输入缓冲模块的控制由状态机执行,分为四个状态:初始化、判断写入数据、写入亮度数据、写入色度数据。
可选的,在初始化状态,当接收到存储控制模块发出的可写入信号后进入判断写入数据状态,否则仍返回初始化状态;
判断写入数据状态判断是否可以开始对存储芯片进行写入,若可以,则判断写入的数据为亮度数据还是色度数据,若为一帧中的亮度数据,发送写入请求信号至存储控制模块,收到应答后,跳转至写入亮度数据状态,若为一帧中的色度数据,发送写入请求信号至存储控制模块,收到应答后,跳转至写入色度数据状态;否则仍返回判断写入数据状态;
写入亮度数据状态将一行亮度数据输出至存储控制模块,同时记录每个数据所在的帧序号、帧内行序号以及行内像素序号,根据这些序号以及权利2所要求的视频帧数据在存储芯片中的存储格式,产生写入存储芯片的地址,完成一行的亮度数据输出后,返回判断写入数据状态状态;
写入色度数据状态将一行色度数据输出至存储控制模块,同时记录每个数据所在的帧序号、帧内行序号以及行内像素序号,根据这些序号以及权利2所要求的视频帧数据在存储芯片中的存储格式,产生写入存储芯片的地址,完成一行的色度数据输出后,返回判断写入数据状态状态。
可选的,输出缓冲模块对每一帧的帧数据使用两个队列,一个队列存储亮度数据,一个队列存储色度数据。
可选的,输出缓冲模块的控制由状态机执行,分为四个状态:初始化、判断读出请求、读出亮度数据、读出色度数据。
可选的,初始化状态接收到存储控制模块发出的可输出信号后进入判断读出数据状态,否则仍返回初始化状态;
在判断读出数据状态时,若存储亮度数据的队列数据量小于阈值时,发送数据读出请求至存储控制模块,收到应答后,跳转至读出亮度数据状态,否则若存储色度数据的队列数据量小于阈值时,发送写入请求信号至存储控制模块,收到应答后,跳转至读出色度数据状态;否则仍返回判断读出数据状态;
读出亮度数据状态根据所需数据所在的帧序号、帧内行序号以及行内像素序号,计算所需数据在存储芯片中的地址,发送读出请求至存储控制模块,存储控制模块从相应地址读出一行亮度数据,输出至亮度队列,完成一行的亮度数据读出后,返回判断读出数据状态;
读出色度数据状态根据所需数据所在的帧序号、帧内行序号以及行内像素序号,计算所需数据在存储芯片中的地址,发送读出请求至存储控制模块,存储控制模块从相应地址读出一行色度数据,输出至色度队列,完成一行的色度数据读出后,返回判断读出数据状态。
可选的,设置一个循环队列对输出帧进行控制,队列头为存储芯片内所存的最新的帧序号,队列尾为输出缓冲队列正从存储芯片读出的帧序号,若队列头与队列尾的差小于某个阈值时,则原本的帧之间插入一帧,若队列头与队列尾的差大于某个阈值时,则跳过存储在芯片内的一帧数据。
基于上述技术方案,本发明实施例的超高清视频的视频数据存储控制装置,输入缓冲模块接收并缓存视频数据,并将视频数据存入存储控制模块,存储控制模块接收视频数据,将视频数据存入存储芯片,输出缓冲模块通过存储控制模块,从存储芯片读取视频数据,并缓存并输出视频数据。从而满足超高清视频存储与传输的高数据率需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的系统模块框架图;
图2为本发明实施例存储芯片内亮度数据存储格式;
图3为本发明实施例存储芯片内色度数据存储格式;
图4为本发明实施例的存储控制器模块内的状态转移图;
图5为本发明实施例的输入缓冲模块内的状态转移图;
图6为本发明实施例的输出缓冲模块内的状态转移图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供一种超高清视频的视频数据存储控制装置,包括:输入缓冲模块、存储控制模块、存储芯片、输出缓冲模块;
输入缓冲模块接收并缓存视频数据,并将视频数据存入存储控制模块;
存储控制模块,用于接收视频数据,将视频数据存入存储芯片,以及将存储芯片中的视频数据输出至输出缓冲模块;
输出缓冲模块通过存储控制模块,从存储芯片读取视频数据,并缓存并输出视频数据。
可选的,存储芯片中的存储格式为:亮度数据与色度数据分别存在不同的Bank中,存储时的地址从高到低分别为[Row,Bank,Col],写入与读出时进行连续的写与读,以行为基本写入读出单位,且在写入与读出时优先切换不同Bank的相同Row。
可选的,存储控制模块对存储芯片的控制由状态机执行,分为四个状态:初始化、判断输入输出请求、读出数据、写入数据。
可选的,初始化状态初始化存储芯片,等待初始化完成信号,接收到信号后发出存储芯片可写入的信号至输入缓冲模块,且跳转至判断输入输出请求状态;
判断输入输出请求时,缓存若干帧到存储芯片,在完成若干帧数据缓存后,以读出数据的请求为先,若接收到读出数据请求,给出收到该请求的应答信号,同时跳转至读出数据状态;否则若接收到写入数据请求,给出收到该请求的应答信号,同时跳转至写入数据状态;否则仍返回判断输入输出请求状态;
读出数据状态根据输出缓冲模块提供的数据所在首地址,输出视频帧内某一行的亮度数据或色度数据给输出缓冲模块,完成后跳转至判断输入输出请求状态;
写入数据状态根据输入缓冲模块提供的数据所在首地址,接收从输入缓冲模块输入的视频帧内某一行的亮度数据或色度数据,完成后跳转至判断输入输出请求状态。
可选的,输入缓冲模块的控制由状态机执行,分为四个状态:初始化、判断写入数据、写入亮度数据、写入色度数据。
可选的,在初始化状态,当接收到存储控制模块发出的可写入信号后进入判断写入数据状态,否则仍返回初始化状态;
判断写入数据状态判断是否可以开始对存储芯片进行写入,若可以,则判断写入的数据为亮度数据还是色度数据,若为一帧中的亮度数据,发送写入请求信号至存储控制模块,收到应答后,跳转至写入亮度数据状态,若为一帧中的色度数据,发送写入请求信号至存储控制模块,收到应答后,跳转至写入色度数据状态;否则仍返回判断写入数据状态;
写入亮度数据状态将一行亮度数据的输出至存储控制模块,同时记录每个数据所在的帧序号、帧内行序号以及行内像素序号,根据这些序号以及权利2所要求的视频帧数据在存储芯片中的存储格式,产生写入存储芯片的地址,完成一行的亮度数据输出后,返回判断写入数据状态状态;
写入色度数据状态将一行色度数据输出至存储控制模块,同时记录每个数据所在的帧序号、帧内行序号以及行内像素序号,根据这些序号以及权利2所要求的视频帧数据在存储芯片中的存储格式,产生写入存储芯片的地址,完成一行的色度数据输出后,返回判断写入数据状态状态。
可选的,输出缓冲模块对每一帧的帧数据使用两个队列,一个队列存储亮度数据,一个队列存储色度数据。
可选的,输出缓冲模块的控制由状态机执行,分为四个状态:初始化、判断读出请求、读出亮度数据、读出色度数据。
可选的,初始化状态接收到存储控制模块发出的可输出信号后进入判断读出数据状态,否则仍返回初始化状态;
在判断读出数据状态时,若存储亮度数据的队列数据量小于阈值时,发送数据读出请求至存储控制模块,收到应答后,跳转至读出亮度数据状态,否则若存储色度数据的队列数据量小于阈值时,发送写入请求信号至存储控制模块,收到应答后,跳转至读出色度数据状态,否则仍返回判断读出数据状态;
读出亮度数据状态根据所需数据所在的帧序号、帧内行序号以及行内像素序号,计算所需数据在存储芯片中的地址,发送读出请求至存储控制模块,存储控制模块从相应地址读出一行亮度数据,输出至亮度队列,完成一行的亮度数据读出后,返回判断读出数据状态;
读出色度数据状态根据所需数据所在的帧序号、帧内行序号以及行内像素序号,计算所需数据在存储芯片中的地址,存储控制模块从相应地址读出一行色度数据,输出至亮度队列,完成一行的色度数据读出后,返回判断读出数据状态。
可选的,设置一个循环队列对输出帧进行控制,队列头为存储芯片内所存的最新的帧序号,队列尾为输出缓冲队列正从存储芯片读出的帧序号,若队列头与队列尾的差小于某个阈值时,则原本的帧之间插入一帧,若队列头与队列尾的差大于某个阈值时,则跳过存储在芯片内的一帧数据。
本发明实施例的超高清视频的视频数据存储控制装置,输入缓冲模块接收并缓存视频数据,并将视频数据存入存储控制模块,存储控制模块接收视频数据,将视频数据存入存储芯片,输出缓冲模块通过存储控制模块,从存储芯片读取视频数据,并缓存并输出视频数据。从而提高数据率,满足超高清视频存储与传输的高数据率需求。
实施例2
本实施例以超高清视频为4K超高清视频为例进行说明。
本发明实施例的超高清视频的视频数据存储控制装置,由以下四个部分组成:输入缓冲模块、存储控制模块、存储芯片、输出缓冲模块。
其中,4K视频帧数据在存储芯片中的存储格式如下所述:亮度数据与色度数据分别存在不同的Bank中,存储时的地址从高到低分别为[Row,Bank,Col],写入与读出时进行连续的写与读,以行为基本写入读出单位,且在写入与读出时优先切换不同Bank的相同Row。
其中,存储控制模块对存储芯片的控制分为以下四个状态:
状态1:初始化。初始化存储芯片,等待初始化完成信号,接收到信号后发出存储芯片可写入的信号至输入缓冲模块,且跳转至状态2;
状态2:判断输入输出请求。最开始时,由于存储芯片内无数据缓存,此时仅对写入数据请求做出响应,直到芯片内部缓存若干帧后。每次给出写入数据应答后,跳转至状态4。在完成若干帧数据缓存后,以读出数据的请求为先,若接收到读出数据请求,给出收到该请求的应答信号,同时跳转至状态3,否则若接收到写入数据请求,给出收到该请求的应答信号,同时跳转至状态4;
状态3:读出数据。根据输出缓冲模块提供的数据所在首地址,输出一行数据给输出缓冲模块,即输出视频帧内某一行的亮度数据或色度数据,完成后跳转至状态2;
状态4:写入数据。根据输入缓冲模块提供的数据所在首地址,接收从输入缓冲模块输入的一行数据,即视频帧内某一行的亮度数据或色度数据,完成后跳转至状态2;
其中,对输入缓冲模块,每一帧的帧数据使用同一个队列。对于每一帧数据,在输入缓冲模块时,都是先输入一帧的亮度数据,再输入一帧的色度数据。
其中,输入缓冲模块的控制状态如下所述:
状态1:初始化。当接收到存储控制模块发出的可写入信号后进入状态2;
状态2:判断写入数据。判断是否可以开始对存储芯片进行写入,若可以,则判断写入的数据为亮度数据还是色度数据,若为一帧中的亮度数据,发送写入请求信号至存储控制模块,收到应答后,跳转至状态3,否则仍返回状态2。若为一帧中的色度数据,发送写入请求信号至存储控制模块,收到应答后,跳转至状态4,否则仍返回状态2;
状态3:写入亮度数据。开始将一行亮度数据的输出至存储控制模块,同时记录每个数据所在的帧序号、帧内行序号以及行内像素序号,根据这些序号以及前述视频帧数据在存储芯片中的存储格式,产生写入存储芯片的地址。完成一行的亮度数据输出后,返回状态2;
状态4:写入色度数据。开始将一行色度数据的输出至存储控制模块,同时记录每个数据所在的帧序号、帧内行序号以及行内像素序号,根据这些序号以及前述视频帧数据在存储芯片中的存储格式,产生写入存储芯片的地址。完成一行的色度数据输出后,返回状态2;
其中,对输出缓冲模块,每一帧的帧数据使用两个队列,一个队列存储亮度数据,一个队列存储色度数据。
其中,输出缓冲模块的控制状态如下所述:
状态1:初始化。当接收到存储控制模块发出的可输出信号后进入状态2;
状态2:判断读出数据。若存储亮度数据的队列数据量小于阈值时,发送数据读出请求至存储控制模块,收到应答后,跳转至状态3,否则仍返回状态2。若存储色度数据的队列数据量小于阈值时,发送写入请求信号至存储控制模块,收到应答后,跳转至状态4,否则仍返回状态2;
状态3:读出亮度数据。根据所需数据所在的帧序号、帧内行序号以及行内像素序号,计算所需数据在存储芯片中的地址,存储控制模块从相应地址读出一行亮度数据,输出至亮度队列。完成一行的亮度数据读出后,返回状态2;
状态4:读出色度数据。根据所需数据所在的帧序号、帧内行序号以及行内像素序号,计算所需数据在存储芯片中的地址,存储控制模块从相应地址读出一行色度数据,输出至亮度队列。完成一行的色度数据读出后,返回状态2;
其中,为避免输出所需要的数据还未写入,设置一个循环队列对输出帧进行控制。队列头为存储芯片内所存的最新的帧序号,队列尾为输出缓冲队列正从存储芯片读出的帧序号。若队列头与队列尾的差小于某个阈值时,则原本的帧之间插入一帧,若队列头与队列尾的差大于某个阈值时,则跳过存储在芯片内的一帧数据。
本发明实施例通过前后输入输出缓冲模块,切换前后不同模块的时钟域,同时使得数据的输出不受数据输入的瞬时速率以及存储模块的瞬时工作状态影响,满足视频数据的连续输出;本发明实施例采用的帧数据在存储芯片内部的存储格式,可以保证在写入和读出时存储芯片的高效率,花较少的时间在输入输出转换以及不同Row的切换上;本发明实施例采用循环队列记录输入帧序号与输出帧序号,通过插入帧或跳过帧的方式解决短时输入帧速率不稳定的情况。
本发明实施例的超高清视频的视频数据存储控制装置,输入缓冲模块接收并缓存视频数据,并将视频数据存入存储控制模块,存储控制模块接收视频数据,将视频数据存入存储芯片,输出缓冲模块通过存储控制模块,从存储芯片读取视频数据,并缓存并输出视频数据。从而满足超高清视频存储与传输的高数据率需求。
实施例3
本发明实施例使用FPGA平台,型号为Altera的Arria5AGXFA5H4F35C5。外置存储芯片为镁光的DDR3存储芯片,两片位宽为16bits的芯片并联为32bits芯片使用,Bank、Row、Col的地址位数分别为3、13、10。亮度与色度数据采用4:2:0、每个数据8bit的方式进行编码。具体实施例中的系统结构图如图1所示。
4K分辨率的帧数据在存储芯片中的存储格式如图2所示。其中,亮度数据Y存储于第0、1、2、3Bank中,色度数据CbCr存储于第4、5、6、7Bank中。在一帧数据内,一行色度Y的大小为30kbits,与一行色度CbCr大小相同。而在DDR3芯片内任意一个Bank中,每一个Row所能存储的数据量为32kbits,大于一行亮度或一行色度的大小。故在存储芯片的一个Row内,可以存储下一行色度数据或一行亮度数据。对于一帧数据,亮度Y有2160行,每个Bank中存540行,色度CbCr有1080行,每个Bank中270行。芯片内部总共缓存14帧数据,序号为0~13,当缓存完第13帧数据后,下一帧数据将从头开始,覆盖第0帧数据。
对于每一帧中每一行的序号到芯片内存储地址的映射关系为:设对于第i帧中的第k行亮度数据,令num=i*2160+k,为二进制格式,共15位。设该行其在存储芯片内的地址为[Row,Bank],Bank为{0,num[1:0]},即第一位为0,后两位为num的后两位;Row为num[14:3],即num右移两位后的值。同理,对于第p帧中的第q行的色度数据,令num=p*2160+q,为二进制格式,共15位。设该行其在存储芯片内的地址为[Row,Bank],Bank为{1,num[1:0]},即第一位为1,后两位为num的后两位;Row为num[14:3],即num右移两位后的值。
存储控制器模块对存储芯片的读写工作由Altera公司提供的IP核负责,而控制部分主要是有一个状态机。该状态机分为四个状态,如图3所示。
状态1:初始化。初始化存储芯片,等待DDR3存储芯片的初始化完成信号local_init_done,接收到信号后发出存储芯片可写入的信号ddr_can_input至输入缓冲模块,且跳转至状态2;
状态2:判断输入输出请求。最开始时,由于存储芯片内无数据缓存,此时仅对写入数据请求作出响应,直到芯片内部缓存7帧后。每次给出写入数据应答后,跳转至状态4。在完成7帧数据缓存后,以读出数据的请求为先,若接收到读出数据请求data_output_req,给出收到该请求的应答信号output_req_received,同时跳转至状态3,否则若接收到写入数据请求data_input_req,给出收到该请求的应答信号input_req_received,同时跳转至状态4;
状态3:读出数据。根据输出缓冲模块提供的数据所在首地址,输出一行数据给输出缓冲模块,即输出视频帧内某一行的亮度数据或色度数据,完成后跳转至状态2;
状态4:写入数据。根据输入缓冲模块提供的数据所在首地址,接收从输入缓冲模块输入的一行数据,即视频帧内某一行的亮度数据或色度数据,完成后跳转至状态2;
在输入缓冲模块内,对单独一帧的帧数据,包括连续的亮度数据和色度数据,使用同一个队列。对于每一帧数据,在输入缓冲模块时,都是先输入一帧的亮度数据,再输入一帧的色度数据。
其中,输入缓冲模块的控制状态见图4,如下所述:
状态1:初始化。当接收到存储控制器模块发出的可写入信号ddr_can_input后进入状态2;
状态2:判断写入数据。若缓冲队列的数据量大于60kbits,则判断写入的数据为亮度数据还是色度数据,若为一帧中的亮度数据,发送写入请求信号data_input_req至存储控制器模块,收到应答信号input_req_received后,跳转至状态3,否则仍返回状态2。若为一帧中的色度数据,发送写入请求信号data_input_req至存储控制器模块,收到应答信号input_req_received后,跳转至状态4,否则仍返回状态2;
状态3:写入亮度数据。开始将一行亮度数据的输出至存储控制器模块,同时记录每个数据所在的帧序号、帧内行序号以及行内像素序号,根据这些序号映射产生写入存储芯片的地址。完成一行的亮度数据输出后,返回状态2;
状态4:写入色度数据。开始将一行色度数据的输出至存储控制器模块,同时记录每个数据所在的帧序号、帧内行序号以及行内像素序号,根据这些序号映射产生写入存储芯片的地址。完成一行的色度数据输出后,返回状态2;
其中,对输出缓冲模块,对单独一帧的帧数据使用两个队列,一个队列存储亮度数据,一个队列存储色度数据,以方便后续计算每个像素的RGB值。
其中,输出缓冲模块的控制状态见图5,如下所述:
状态1:初始化。当接收到存储控制器模块发出的可输出信号ddr_can_output后进入状态2;
状态2:判断读出数据。若存储亮度数据的队列数据量小于6行时,发送数据读出请求Y_req至存储控制器模块,收到应答output_req_received后,跳转至状态3,否则仍返回状态2。否则若存储色度数据的队列数据量小于3行时,发送写入请求信号CbCr_req至存储控制器模块,收到应答output_req_received后,跳转至状态4,否则仍返回状态2;
状态3:读出亮度数据。根据所需数据所在的帧序号、帧内行序号以及行内像素序号,根据前面所述的映射关系,计算所需数据在存储芯片中的地址,存储控制器模块从相应地址读出一行亮度数据,输出至亮度队列。完成一行的亮度数据读出后,返回状态2;
状态4:读出色度数据。根据所需数据所在的帧序号、帧内行序号以及行内像素序号,根据前面所述的映射关系,计算所需数据在存储芯片中的地址,存储控制器模块从相应地址读出一行色度数据,输出至色度队列。完成一行的亮额度数据读出后,返回状态2;
其中,为避免输出所需要的数据还未写入,设置一个循环队列对输出帧进行控制。循环队列大小为14,队列头为存储芯片内所存的最新的帧序号,队列尾为输出缓冲队列正从存储芯片读出的帧序号。若队列头与队列尾的差小于3时,则原本的帧之间插入一帧,若队列头与队列尾的差大于11时,则跳过存储在芯片内的一帧数据。通过插入帧或跳过帧的方式解决短时输入帧速率不稳定的情况。
本发明实施例的超高清视频的视频数据存储控制装置,输入缓冲模块接收并缓存视频数据,并将视频数据存入存储控制模块,存储控制模块接收视频数据,将视频数据存入存储芯片,输出缓冲模块通过存储控制模块,从存储芯片读取视频数据,并缓存并输出视频数据。从而满足超高清视频存储与传输的高数据率需求。
本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
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所述的装置,其特征在于,设置一个循环队列对输出帧进行控制,队列头为存储芯片内所存的最新的帧序号,队列尾为输出缓冲队列正从存储芯片读出的帧序号,若队列头与队列尾的差小于某个阈值时,则在当前相邻的帧之间插入一帧,若队列头与队列尾的差大于某个阈值时,则跳过存储在芯片内的一帧数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410263854.9A CN104092968A (zh) | 2014-06-13 | 2014-06-13 | 超高清视频的视频数据存储控制装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410263854.9A CN104092968A (zh) | 2014-06-13 | 2014-06-13 | 超高清视频的视频数据存储控制装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104092968A true CN104092968A (zh) | 2014-10-08 |
Family
ID=51640646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410263854.9A Pending CN104092968A (zh) | 2014-06-13 | 2014-06-13 | 超高清视频的视频数据存储控制装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104092968A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363448A (zh) * | 2014-12-01 | 2015-02-18 | 重庆洪深现代视声技术有限公司 | 电视信号发生器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5592612A (en) * | 1995-04-28 | 1997-01-07 | Birk; Yitzhak | Method and apparatus for supplying data streams |
CN1588552A (zh) * | 2004-09-16 | 2005-03-02 | 联合信源数字音视频技术(北京)有限公司 | 有异步缓存的双倍速动态随机存取存储器控制装置及方法 |
CN101019434A (zh) * | 2004-09-29 | 2007-08-15 | 赫希曼电子有限及两合公司 | 在运行mpeg编码器时的矩阵变化 |
CN101106722A (zh) * | 2007-06-18 | 2008-01-16 | 北京交通大学 | 一种基于自适应时域亚采样的多描述视频编解码方法 |
CN101552916A (zh) * | 2009-05-05 | 2009-10-07 | 北京红旗胜利科技发展有限责任公司 | 视频yuv数据的dma传输方法、装置及dma控制器 |
-
2014
- 2014-06-13 CN CN201410263854.9A patent/CN104092968A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5592612A (en) * | 1995-04-28 | 1997-01-07 | Birk; Yitzhak | Method and apparatus for supplying data streams |
CN1588552A (zh) * | 2004-09-16 | 2005-03-02 | 联合信源数字音视频技术(北京)有限公司 | 有异步缓存的双倍速动态随机存取存储器控制装置及方法 |
CN101019434A (zh) * | 2004-09-29 | 2007-08-15 | 赫希曼电子有限及两合公司 | 在运行mpeg编码器时的矩阵变化 |
CN101106722A (zh) * | 2007-06-18 | 2008-01-16 | 北京交通大学 | 一种基于自适应时域亚采样的多描述视频编解码方法 |
CN101552916A (zh) * | 2009-05-05 | 2009-10-07 | 北京红旗胜利科技发展有限责任公司 | 视频yuv数据的dma传输方法、装置及dma控制器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363448A (zh) * | 2014-12-01 | 2015-02-18 | 重庆洪深现代视声技术有限公司 | 电视信号发生器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105721818B (zh) | 一种信号转换方法及装置 | |
CN105611295B (zh) | 一种在soc上实现视频采集压缩传输的系统和方法 | |
CN101374233B (zh) | 视频流帧率适配方法和装置及fpga芯片及视频流处理设备 | |
US20200252580A1 (en) | Video data processing method and video data processing device | |
CN103841359A (zh) | 一种视频多画面合成方法、装置和系统 | |
CN104935948A (zh) | 视频直播图像处理方法及系统 | |
CN104717485A (zh) | 一种基于fpga的vga接口裸眼3d显示系统 | |
CN103501419A (zh) | 一种基于fpga实现图像转置的方法 | |
CN105338277A (zh) | Dp视频信号的时序恢复装置及方法 | |
CN102625086B (zh) | 一种用于高清数字矩阵的ddr2存储方法和系统 | |
CN104092968A (zh) | 超高清视频的视频数据存储控制装置 | |
CN104268098A (zh) | 一种用于超高清视频帧率上变换的片上缓存系统 | |
CN108134912A (zh) | 一种视频流转换方法 | |
CN102572207A (zh) | 一种适于jpeg图像的颜色空间转换方法 | |
CN110351562A (zh) | 一种10比特yuv图像存储格式 | |
CN102833541B (zh) | 用于mpeg-2视频解码的sdram控制系统 | |
CN100561567C (zh) | 一种图像数据转换系统和方法 | |
CN111757034A (zh) | 一种基于fpga的视频同步显示方法、装置和存储介质 | |
CN1881190B (zh) | 用于访问数据的设备和系统 | |
CN102497514A (zh) | 一种三通道视频转发设备和转发方法 | |
CN108737877A (zh) | 图像处理的方法、装置和终端设备 | |
CN101859334B (zh) | 视频解码模块与视频显示处理模块的互联缓存结构设计方法 | |
CN102857745A (zh) | 基于fpga的双千兆网口传输高清视频及多媒体信号的发送装置 | |
CN102541796B (zh) | 电子装置 | |
CN212850675U (zh) | 一种基于zynq FPGA的低照度手持终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141008 |
|
RJ01 | Rejection of invention patent application after publication |