一种视频数据处理系统、方法、设备及存储介质与流程



1.本发明属于计算机领域,具体涉及一种视频数据处理系统、方法、设备及存储介质。


背景技术:



2.传统的基板管理控制芯片中视频处理流程是:主机端的视频数据通过pcie传递到基板管理控制芯片的vga处理之后,写入片外的ddr,数据读取模块(读控制模块)读取ddr中数据,然后通过彩空间转换模块(视频转换模块)将原始的rgb格式的视频数据转换为yuv格式的数据,然后将y、u、v数据用片内的存储资源进行片上缓存(fifo),按照block格式转换的需求,需要16个y_fifo,16个u_fifo,16个v_fifo,同时根据项目实践经验,针对最大分辨率下的(1920*1200),fifo的深度为16384,宽度为8bits,才能满足fifo不会出现满的情况,不会丢数的情况。然后按照block的顺序输入给视频压缩ip(支持yuv444/yuv422/yuv420压缩格式),完成压缩之后,将数据写入到ddr,emac(网卡)驱动读取完成压缩的数据,通过网络将视频数据传输至远程,进行远程显示。
3.传统方案的弊端就是需要极大的占用片内资源(传统模式下需要48*16384=768kb),而对于芯片项目而言,片内的ram资源是很珍贵的(因为会增大芯片的面积)。同时数量、容量很大的ram对于芯片的时序约束,后端设计,封装制造等都是很大的难题。


技术实现要素:



4.为解决以上问题,本发明提出一种视频数据处理系统,包括:
5.视频数据写入模块,所述视频数据写入模块配置用于将视频数据写入内存中的多个存储区域中;
6.视频数据封装模块,所述视频数据封装模块配置用于从所述内存中的多个存储区域读取视频数据,对读取的视频数据进行转换并封装成预定格式后保存到内存中。
7.在本发明的一些实施方式中,视频数据封装模块还包括数据读取模块、视频转换模块、缓存模块、视频压缩模块,其中:
8.所述数据读取模块配置用于从所述内存中的多个存储区域中读取视频数据,并将视频数据发送到视频转换模块。
9.在本发明的一些实施方式中,视频转换模块配置用于接收所述数据读取模块发送的视频数据,并将所述视频数据转换成预定编码的视频数据,并将所述预定编码的视频数据的第一视频数据发送到所述视频压缩模块。
10.在本发明的一些实施方式中,视频转换模块进一步配置用于:
11.将所述预定编码的视频数据中的第二视频数据和第三视频数据发送到所述缓存模块。
12.在本发明的一些实施方式中,缓存模块配置用于接收并缓存所述视频转换模块发送的预定编码的视频数据的第二视频数据和第三视频数据,以及将缓存的所述预定编码的
视频数据的第二视频数据和第三视频数据发送到所述视频压缩模块。
13.在本发明的一些实施方式中,视频压缩模块配置用于将所述预定编码的视频数据封装成预定格式的数据保存到内存中。
14.本发明的另一方面还提出一种视频数据处理方法,包括:
15.在内存中创建多个存储区域;
16.将显示单元输出的视频数据分别存储到所述多个存储区域中;
17.分别从所述多个存储区域中读取视频数据,并将读取的视频数据进行编码转换生成预定编码的视频数据;
18.将所述预定编码的数据封装成预定格式的视频数据后保存到内存中。
19.在本发明的一些实施方式中,将显示单元输出的视频数据分别存储到所述多个存储区域中包括:
20.将所述视频数据以帧为单位存储到所述多个存储区域中。
21.在本发明的一些实施方式中,将所述视频数据以帧为单位存储到所述多个存储区域中包括:
22.将每一帧视频数据中的预定行数的像素数据存储到所述多个存储区域中对应的区域。
23.在本发明的一些实施方式中,分别从所述多个存储区域中读取视频数据包括:
24.根据所述预定格式的大小从所述多个存储区域中读取满足预定格式大小的视频数据。
25.在本发明的一些实施方式中,将读取的视频数据进行编码转换生成预定编码的视频数据还包括:
26.将所述预定编码的视频数据中的第一视频数据发送到视频压缩模块。
27.在本发明的一些实施方式中,方法还包括:
28.响应于将所述第一视频数据发送到视频压缩模块,将所述预定编码的视频数据中的第二视频数据和第三视频数据发送到缓存模块。
29.在本发明的一些实施方式中,方法还包括:
30.响应于所述第一视频数据发送到所述视频压缩模块完成,将所述缓存模块片上缓存的所述第二视频数据和第三视频数据发送到所述视频压缩模块。
31.本发明的又一方面还提出一种计算机设备,包括:
32.至少一个处理器;存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现上述实施方式中任意一项所述方法的步骤。
33.本发明的再一方面还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
34.通过本发明提出的一种视频数据处理系统,将原有的完整存储视频数据到片上缓存中改为读取满足封装大小的视频数据保存到片上缓存中,可有效降低视频数据的缓存压力,尤其是在分辨率越大时降低片上缓存的效益则越明显。
附图说明
35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
36.图1为本发明实施例提供的一种视频数据处理系统结构示意图;
37.图2为本发明实施例提供的一种视频数据处理方法的方法流程图;
38.图3为本发明实施例提供的现有的视频数据处理系统结构示意图;
39.图4为本发明实施例提供的现有的视频数据编码转换示意图;
40.图5为本发明实施例提供的视频数据处理系统的实施示意图;
41.图6为本发明实施例提供的视频数据处理系统的结构示意图;
42.图7为本发明提出的一种计算机设备的结构示意图;
43.图8为本发明实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
44.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
45.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
46.本发明旨在解决并优化基板管理控制芯片(bmc中的芯片)中视频处理过程,bmc中的视频处理过程是将vga(video graphics array,图形处理阵列)发送到bmc上的视频数据进行一系列的处理后通过bmc的网络接口发出的过程,传统的实现过程如图3所示,图中vga11向内存(ddr)中写入视频数据,bmc芯片中的数据读取模块31从内存中将视频数据读取到bmc芯片内的视频转换模块41模块进行视频格式的数据转换,视频转换模块41将转换后的数据缓存在bmc芯片中用于存放转换后视频数据的fifo 51模块,fifo51是一个或一组fifo(first input first output,先进先出)存储队列,然后由视频压缩模块61将fifo51的数据按照block的大小生成对应的压缩数据并写入到内存中,最后由网络模块7将压缩数据从内存读出通过网络发送到远端,即实现了通过bmc将服务器桌面视图传输的方式。
47.但是,在传统实现的上述过程中,由于block中的视频数据为16x16yuv格式,并且y、u、v三个通道的视频数据分三个block包发送。而数据读取模块31从内存中读取数据时是以逐行读取,即以1920x1080大小的一帧视频图像为例,数据读取模块31先读取(从ddr内存中)第一行的1920个rgb像素,并发送到视频转换模块41进行格式转换然后发送到fifo51缓存,然后再读取第二行的1920个像素到视频转换模块31进行格式转换然后发送到fifo41缓存。
48.视频转换模块41将格式转换后的视频数据保存到fifo51后,视频压缩模块61从fifo中读取16x16的视频数据y、u、v格式的数据,并分别压缩成对应的压缩数据保存到内存中。因此fifo41的大小需要满足输入的视频尺寸的大小,如果bmc提供1920x1080尺寸的远程桌面,考虑到视频压缩模块61的编码压缩能力则最大情况下需要768kb的存储空间,也即
在芯片电路上要设计768kb的片上缓存,理想情况下,即假设视频压缩模块61在fifo51中具备1920x16的数据时就开始读取并压缩,则仍然需要约92kb,但实际中定然要高于92kb。因此无论怎样都fifo61都需要占用bmc很大的芯片面积(实际的芯片中片上缓存所占用的芯片面积相当高)。同时在工作时也会产生相当庞大的热量。
49.另外,如图4所示,在bmc芯片的视频处理过程中,因yuv编码格式的不同需要对yuv格式进行不同的压缩编码:
50.图4右侧,每一个小方框表示左图中的8*8像素点。大方框是16*16像素点,长方框是8*16像素点。图中的cb就是u分量,cr就是v分量。
51.以yuv的420模式举例,y块表示4个8*8像素点的y分量(即16x16),cb块表示1个8*8块的u分量,cr块表示1个8*8块的v分量。
52.详细的视频处理流程是:vga写入ddr约定的地址空间,比如设定从地址0x1000_0000到0x2000_0000的空间,然后写到尾空间后,写指针再重新从0x1000_0000开始写。数据读取模块31子模块,要及时读走ddr中已写入的数据,避免出现地址覆盖和空读的现象。经过视频转换模块41进行彩空间转换,将视频数据从rgb格式转换为yuv格式。然后将y、u、v数据用fifo51缓存,按照block格式转换的需求,需要16个y_fifo(表示存储y分量的片上缓存,下述u_fifo表示存储u分量的fifo51中对应的fifo、v_fifo表示存储v分量的fifo51中对应的fifo),16个u_fifo,16个v_fifo组成的fifo阵列,该方案下,fifo51子模块接收视频压缩模块61发出的读数据的控制信息,值得注意的是,fifo51(block转换模块)不处理视频压缩模块61发出的读地址,而是fifo 51自己产生读写控制逻辑,另外,视频转换模块41将转换成yuv格式的视频数据写入到fifo51的过程如下:根据yuv的模式不同具备不同的yuv写逻辑:例如yuv420模式下(原则是保留全部的y数据,保留偶数行偶数列的u/v数据),将第0/16/32/48

行的y数据写进y_fifo_0;
53.将第1/17/33/49

行的y数据写进y_fifo_1;
54.将第2/18/34/50

行的y数据写进y_fifo_2;
55.……

56.将第15/31/47/63

行的y数据写进y_fifo_15;
57.将第0/16/32/48

行的偶数列u数据写进u_fifo_0;
58.将第2/18/34/50

行的偶数列u数据写进u_fifo_1;
59.……

60.将第14/30/46/62

行的偶数列u数据写进u_fifo_7;
61.将第0/16/32/48

行的偶数列u数据写进v_fifo_0;
62.将第2/18/34/50

行的偶数列u数据写进v_fifo_1;
63.……

64.将第14/30/46/62

行的偶数列u数据写进v_fifo_7;
65.yuv422模式下(原则是保留全部的y数据,保留偶数列的u/v数据);
66.将第0/16/32/48

行的y数据写进y_fifo_0;
67.将第1/17/33/49

行的y数据写进y_fifo_1;
68.将第2/18/34/50

行的y数据写进y_fifo_2;
69.……

70.将第15/31/47/63

行的y数据写进y_fifo_15;
71.将第0/16/32/48

行的偶数列u数据写进u_fifo_0;
72.将第1/17/33/49

行的偶数列u数据写进u_fifo_1;
73.将第2/18/34/50

行的偶数列u数据写进u_fifo_2;
74.……

75.将第15/31/47/63

行偶数列的u数据写进u_fifo_15;
76.将第0/16/32/48

行的偶数列v数据写进v_fifo_0;
77.将第1/17/33/49

行的偶数列v数据写进v_fifo_1;
78.将第2/18/34/50

行的偶数列v数据写进v_fifo_2;
79.……

80.将第15/31/47/63

行偶数列的v数据写进v_fifo_15;
81.yuv444模式下:(保留全部行全部列的y/u/v数据);
82.将第0/8/16/24

行的y数据写进y_fifo_0;
83.将第1/9/17/25

行的y数据写进y_fifo_1;
84.将第2/10/18/26

行的y数据写进y_fifo_2;
85.……

86.将第7/15/23/31

行的y数据写进y_fifo_7;
87.将第0/8/16/24

行的u数据写进u_fifo_0;
88.将第1/9/17/25

行的u数据写进u_fifo_1;
89.将第2/10/18/26

行的u数据写进u_fifo_2;
90.……

91.将第7/15/23/31

行的u数据写进u_fifo_7;
92.将第0/8/16/24

行的v数据写进v_fifo_0;
93.将第1/9/17/25

行的v数据写进v_fifo_1;
94.将第2/10/18/26

行的v数据写进v_fifo_2;
95.……

96.将第7/15/23/31

行的v数据写进v_fifo_7。
97.yuv读逻辑:
98.yuv420模式下,fifo_ctrl(在fifo51中负责从fifo中读取数据和写入数据的模块)不关心视频压缩模块61发出的读地址,而只关注视频压缩模块61发出的读使能,依次去读16次y_fifo_0,16次y_fifo_1
……
16次y_fifo_15;
99.8次u_fifo_0,8次u_fifo_1,8次u_fifo_7;
100.8次v_fifo_0,8次v_fifo_1,8次v_fifo_7;
101.然后依次循环。
102.yuv422模式下,fifo_ctrl不关注视频压缩模块61发出的读地址,而只关注视频压缩模块61发出的读使能,依次去读16次y_fifo_0,16次y_fifo_1
……
16次y_fifo_15,8次u_fifo_0,8次u_fifo_1,
……
8次u_fifo_15;8次v_fifo_0,8次v_fifo_1,
……
8次v_fifo_15。
103.yuv444模式下,fifo_ctrl不关注视频压缩模块61发出的读地址,而只关心视频压缩模块61发出的读使能,依次去读8次y_fifo_0,8次y_fifo_1
……
8次y_fifo_7;
104.8次u_fifo_0,8次u_fifo_1,8次u_fifo_7;
105.8次v_fifo_0,8次v_fifo_1,8次v_fifo_7。
106.从上述内容可知,传统方案的弊端就是需要极大的占用很大的片内资源,最差的情况下传统方案需要48*16384=768kb,而对于芯片项目而言,片内的ram资源是很珍贵的(因为会增大芯片的面积)。同时数量很多,容量很大的ram对于芯片的时序约束,后端设计,封装制造等都是很大的难题。极大增加了项目失败的风险。
107.为解决上述问题,本发明提出一种视频数据处理系统,如图1所示,包括:
108.视频数据写入模块1,所述片上缓存写入模块1配置用于将视频数据写入内存中的多个存储区域中;
109.视频2,所述视频数据封装模块2配置用于从所述内存中的多个存储区域读取视频数据,对读取的视频数据进行转换并封装成预定格式后保存到内存中。
110.在本发明的实施例中,视频数据写入模块可以视为是vga功能的一部分,即是vga中向内存写入rgb格式的视频数据的模块,在本发明中,需要修改vga向内存写入rgb数据的方式,即视频数据写入模块1将vga输出的视频数据同时写入到内存中的多个区域。以每一帧视频数据的行为单位,将每一行数据写入到对应内存区域,例如将第一行视频数据写入到内存的第一存储区域,将第二行视频数据写入到第二存储区域,将第三行视频数据写入到第三存储区域。
111.需要说明的是内存的多个存储区域是根据视频数据封装模块2中所要封装的预定格式的大小和视频数据封装模块2对应的处理模块的个数决定的。如果预定格式的大小为16x16的视频尺寸,则存储区域的个数可以是1或者是16的倍数个,即16个存储区域,32个存储区域等。
112.在本发明的一些实施例中,可以将连续的多行数据同时写入到一个存储区域。其中,包括顺序读取的方式,例如,第一行数据和第二行数据对应一个存储区域时,可先读取第一行数据再读取第二行数据,将第一行数据和第二行数按照先后数据进行拼接。
113.进一步,在将连续的多行数据同时写入到一个存储区域时,可采用同步读取的方式,例如第一行数据和第二行数据对应一个存储区域时,先读取第一行数据的第一个像素点的数据,再读取第二行数据的第一个像素点的数据,然后再读取第一行数据的第二个像素点的数据和第二行数据的第二个像素点的数据。
114.以1920x1080的视频数据为例,将每一帧视频数据的一行或多行写入到多个存储区域,假设存储区域的个数为16个,则可以是以连续的16行数据(每行有1920个像素值)为一组,将这行数据分别保存到16个存储区域中。当然在一些情况下也可以以连续的32行数据为一组,将32行数据中每相邻的两组数据保存到对应的1个存储空间中。当多行数据存储到同一存储区域时,可以将两行数据进行前后拼接,也可以一定数据间隔进行交替拼接,采用上述同步读取的方式从每一行数据中读取一定大小的数据进行交替拼接,可以是1个像素点也可以是多个像素点。具体地,假如第一行数据为a1a2a3a4……
,第二行数据是b1b2b3b4……
,则写入到对应的存储区域的数据可以是a1a2a3a4……
+b1b2b3b4……
,也可以是:a1b1a2b2a3b3a4b4……
,也可以是a1a2b1b2a3a4b3b4……

115.进一步,视频数据封装模块2从视频数据写入模块1中以写入方式相同的方式读取对应的数据,即同时从多个存储区域中读取对应个数的视频数据进行编码转换和数据封
装。具体地,当block的大小为16*16时,视频数据封装模块2每次从多个存储区域中读取的数据大小为16个像素,即假如有16个存储区域,则每次从16个存储区域中读取16个像素点,然后对这16x16的像素点进行rgb到yuv的视频格式编码转换,并将转换后的16x16的yuv格式的视频数据封装成对应的压缩数据重新写入到内存中对应的区域,进一步,后续bmc的其他模块便可从内存中将压缩数据读取通过网络发送。(block数据是指输入给视频压缩模块2的数据,即将block数据发送到下文中对应的视频压缩模块6进行压缩封装)
116.在本发明的一些实施方式中,视频数据封装模块2还包括数据读取模块3、视频转换模块4、缓存模块5、视频压缩模块6,其中:
117.所述数据读取模块3配置用于从所述内存中的多个存储区域中读取视频数据,并将视频数据发送到视频转换模块4。
118.如图6所示,在本发明的实施例中,视频数据封装模块2包括四个子模块分别是数据读取模块3、视频转换模块4、缓存模块5、视频压缩模块6,其中数据读取模块3作为视频压缩模块2的数据输入模块,从内存中的多个存储区域中,按照封装的block的大小从内存中的多个存储区域中读取对应长度的视频数据,并将视频数据发送到视频转换模块4中。
119.如前所述,bmc需要将内存中rgb格式的视频数据转换成yuv格式的视频数据,rgb格式的视频数据是由vga中对应的视频数据写入模块1写入到内存中多个区域的rgb数据。由数据读取模块3按照视频数据写入模块1的写入方式进行读取,即如果视频数据写入模块1是以每隔一行数据的方式写入到内存中,则数据读取模块3则从内存中的多个存储区域分别读取对应的每一行数据。如果视频数据写入模块1是将连续的多行视频数据写入到对应的一个存储区域,则数据读取模块3在一个存储区域读取到对应的一行数据时将后续的数据任务第2行,例如以每行1920个像素为例,当写入时是连续的3行写入,则数据读取模块3在该存储区域读取到第1921个像素数据时认为是第二行的第一个数据。
120.数据读取模块3读取内存中多个区域中对应的数据时是同步读取多个存储区域的预定长度的数据,并将同步读取的预定长度的数据发送到视频转换模块4,这样可以保证同时将预定行数的视频数据同步发送到视频数据转换模块4中。例如,可以同时将16行中前16个像素的rgb视频数据发送到视频转换模块进行编码格式的转换。
121.在本发明的一些实施方式中,视频转换模块4配置用于接收所述数据读取模块3发送的视频数据,并将所述视频数据转换成预定编码的视频数据,并将所述预定编码的视频数据的第一视频数据发送到所述视频压缩模块6。
122.在本实施例中,第一视频数据是指yuv格式的视频数据中的y分量的视频数据。视频转换模块4用于将数据读取模块3发送的视频数据进行转码,在本实施例中是将rgb格式的视频数据转换成yuv格式的视频数据,同时将y分量的视频数据发送到视频压缩模块6。
123.视频转换模块4接收数据读取模块3发送的多行rgb格式的视频数据,并多行rgb格式的视频数据转换成对应的yuv格式的视频数据。具体地,视频转换模块4在接收到数据读取模块3发送的16x16的rgb格式后,将16x16的rgb格式根据选择的yuv模式转换成对应尺寸的y分量、u分量、v分量的数据,以420的yuv模式为例,视频转换模块4将rgb格式的数据转换成16x16的y分量数据、8x8的u和v分量的数据。而此时,与传统的方案不同的是,视频转换模块4可以直接将y分量的数据发送到视频压缩模块6。即先将16x16的y分量数据发送到视频压缩模块6。
124.在本发明的一些实施方式中,视频转换模块4进一步配置用于将所述预定编码的视频数据中的第二视频数据和第三视频数据发送到所述缓存模块5。
125.在本实施例中,第二视频数据是指yuv格式的视频数据中的u分量的视频数据,第三视频数据是指yuv格式的视频数据中的v分量的视频数据。视频转换模块4将转换编码后的yuv格式的视频数据中的u、v分量的视频数据发送到缓存模块5中。如上述实施例,在视频转换模块4将16x16的y分量的数据发送到视频压缩模块6的过程中,将u、v分量的视频数据发送到缓存模块5,缓存模块。以保证视频转换模块4中有足够的空间用于后续数据读取模块3发送的rgb格式的数据的编码转换。
126.在本发明的一些实施方式中,缓存模块5配置用于接收并缓存所述视频转换模块4发送的预定编码的视频数据的第二视频数据和第三视频数据,以及将缓存的所述预定编码的视频数据的第二视频数据和第三视频数据发送到所述视频压缩模块6。在本实施例中,缓存模块5用于缓存视频转换模块4发送的u分量和v分量的yuv格式的视频数据,并且,在视频转换模块4将y分量的数据发送到视频压缩模块6之后,如果视频压缩模块对y分量的视频数据进行视频压缩完成后,向缓存模块5发送对应的使能指令。缓存模块5则将对应的u、v分量的视频数据相继发送到视频压缩模块6中。
127.在本发明的一些实施方式中,视频压缩模块6配置用于将所述预定编码的视频数据封装成预定格式的数据保存到内存中。
128.在本实施例中,视频压缩模块6则根据block的大小,将对应数量的yuv格式的视频数据的y分量的视频数据、u分量的视频数据、v分量的视频数据进行压缩,并压缩成对应的压缩数据保存到内存中的指定区域。压缩后的视频数据在数据量上会大大降低可以满足网络传输的带宽请求。bmc上的网络模块7便可从内存中读取到对应的压缩后的视频数据通过网络发出。压缩后的视频数据可以是常见的流媒体格式的视频数据。例如jpeg、mpeg格式或flv格式,根据需求而设定。
129.本发明的另一方面还提出一种视频数据处理方法,如图2所示,包括:
130.步骤s1、在内存中创建多个存储区域;
131.步骤s2、将显示单元输出的视频数据分别存储到所述多个存储区域中;
132.步骤s3、分别从所述多个存储区域中读取视频数据,并将读取的视频数据进行编码转换生成预定编码的视频数据;
133.步骤s4、将所述预定编码的数据封装成预定格式的视频数据后保存到内存中。
134.在本发明的实施例中,在步骤s1中,在内存中申请多个存储区域用于存储视频数据的存储区域。
135.在步骤s2中,显示单元输出的视频数据可以是指从对应的图形处理单元输出的视频图像数据。将对应的视频图像数据保存到步骤s1中对应的多个存储区域。
136.在步骤s3中,同时从上述多个存储区域中读取一定大小的数据,例如从每个存储区域中读取16个视频图像的像素数据。根据需要对读取到的视频图像数据进行编码转换。
137.在步骤s4中,预定格式是指block数据格式,是指输入到视频压缩模块的数据,视频压缩模块6将block格式的数据封装成对应的jpeg等压缩格式的数据保存到内存中,然后由网络模块7模块读出后通过网络发出。
138.在本发明的一些实施方式中,将显示单元输出的视频数据分别存储到所述多个存
储区域中包括:
139.将所述视频数据以帧为单位存储到所述多个存储区域中。
140.在本实施例中,在将视频数据保多个存储区域时,以视频数据中的视频帧为单位,将每一帧数据拆分成多个视频数据保存到多个存储区域中。
141.在本发明的一些实施方式中,将所述视频数据以帧为单位存储到所述多个存储区域中包括:
142.将每一帧视频数据中的预定行数的像素数据存储到所述多个存储区域中对应的区域。
143.在本实施例中,进一步,将每一帧视频数据中的若干行数据保存到多个存储区域中。具体地,将一行数据保存到一个存储区域;或者将连续的多行数据保存到同一个存储区域且同一帧视频数据中的其他相同行数的视频数据同时保存到其他存储区域中。
144.在本发明的一些实施方式中,分别从所述多个存储区域中读取视频数据包括:
145.根据所述预定格式的大小从所述多个存储区域中读取满足预定格式大小的视频数据。
146.在本实施例中,根据block的格式中视频数据的大小从对应的一个或多个内存区域中读取相同长度的视频数据。例如,如果block封装的视频数据的大小是16x16,且存储区域也为16个,则从16个存储区域中按照顺序读取16个像素的视频数据。
147.在本发明的一些实施方式中,将读取的视频数据进行编码转换生成预定编码的视频数据还包括:
148.将所述预定编码的视频数据中的第一视频数据发送到视频压缩模块。
149.在本实施例中,将转换编码后的yuv格式的视频数据的y分量的视频数据发送到视频压缩模块直接封装成对应的压缩数据。
150.在本发明的一些实施方式中,方法还包括:
151.响应于将所述第一视频数据发送到视频压缩模块,将所述预定编码的视频数据中的第二视频数据和第三视频数据发送到缓存模块。
152.在本实施例中,在将yuv格式的视频数据发送到视频压缩模块的同时,将yuv格式中的u分量的视频数据和v分量的视频数据发送到缓存模块。
153.在本发明的一些实施方式中,方法还包括:
154.响应于所述第一视频数据发送到所述视频压缩模块完成,将所述缓存模块缓存的所述第二视频数据和第三视频数据发送到所述视频压缩模块。
155.在本实施例中,当yuv格式的y分量的数据发送到视频压缩模块完成后,将缓存模块中的u、v分量的数据相继发送到视频压缩模块。
156.实施例:
157.如图5所示,本方案在传统方案基础上进行了优化:vga(vga中的视频数据写入模块1)在写入ddr的时候,不再是写入一整块地址空间,而是划分为16块子地址空间,起始地址分别是addr_0,addr_1,addr_2
……
addr_15。然后vga侧新增判断逻辑,根据当前视频的分辨率,将0/16/32
……
的原始数据写入起始地址为addr_0的ddr空间。
158.将1/17/33
……
的原始数据写入起始地址为addr_1的ddr空间。
159.…………

160.将15/31/47
……
的原始数据写入起始地址为addr_15的ddr空间。
161.然后依次循环。
162.修改传统方案下的读控制逻辑为数据读取模块3该子模块实现的功能就是按照16*16block的顺序,读取addr_0
……
addr_15的地址空间。即读取addr_0空间16个像素数据,注意,此时rgb数据是混在一起的,一个像素点占用24bits(rgb三通道888格式下),以ddr数据位宽为32bits计算(rgb虽然是24bits,但是要占用32bits地址空间),rd_new_ctrl的读接口,设置axi burst长度为16*32=512bits,即64byte。这样按照设定的burst长度一次性将16个rgb数据全部从ddr中读回。
163.按照上述读控制设置,依次读取addr_0,addr_1
……
addr_15的地址空间。
164.然后循环,这样就以16*16block格式的形式读回了rgb数据。即得到连续的16*16的rgb block数据块。
165.读回的rgb数据经过视频转换模块3进行彩空间转换之后,得到了16*16的yuv block数据,再根据当前的压缩格式进行部分数据的buffer缓存(缓存模块5)。
166.根据压缩模式的不同,采取不同的buffer缓存策略。
167.1.yuv420模式:
168.在此压缩模式下,输入给后级视频压缩模块6的顺序是16*16的y数据,然后8*8的u数据,8*8的v数据,因此在传输y数据的时候,对u/v数据进行删除和缓存操作。原则是保留16*16yuv block数据的第0/2/4/6/8/10/12/14行的第0/2/4/6/8/10/12/14列u/v数据,其余的u/v删除。得到8*8u/v block,并进行缓存,再输入完16*16的y数据之后,再输入8*8u数据,再输入8*8的v数据,因此此模式下需要的fifo5空间大小是128bytes。输入完一组16*16的y数据,8*8的u数据,8*8的v数据之后,再依次循环,继续输入下一组16*16的y数据,然后8*8的u数据,8*8的v数据。
169.2yuv422模式:在此压缩模式下,输入给后级视频压缩模块6的顺序是16*16的y数据,然后16*8的u数据,16*8的v数据,因此在传输y数据的时候,对u/v数据进行删除和缓存操作。原则是保留16*16yuv block数据的第0/2/4/6/8/10/12/14列u/v数据,其余的u/v删除。得到16*8u/v block,并进行缓存,再输入完16*16的y数据之后,再输入16*8u数据,再输入16*8的v数据,因此,此模式下需要的fifo5空间大小是256bytes。输入完一组16*16的y数据,16*8的u数据,16*8的v数据之后,再依次循环,继续输入下一组16*16的y数据,然后16*8的u数据,16*8的v数据。
170.3yuv444模式
171.在此压缩模式下,输入给后级视频压缩模块6的顺序是8*8的y数据,然后8*8的u数据,8*8的v数据,要保留全部的yuv数据,但是要对y/u/v数据进行缓存。需要缓存3个8*8的y数据,3个8*8的u数据,3个8*8的v数据。再输入8*8的y数据之后,再输入8*8u数据,再输入8*8的v数据,因此,此模式下需要的fifo5的空间大小是3*3*64=576bytes。输入完一组8*8的y数据,8*8的u数据,8*8的v数据之后,再依次循环,继续输入下一组8*8的y数据,然后8*8的u数据,8*8的v数据。
172.在本发明的提出的设计方案下,需要的片上缓存空间是576bytes,而如果传统方案按照最宽松的条件设计的话需要的片上资源是768kbytes。传统方案下需要的片上资源空间是本发明的1300倍。进一步,在一些情况下,片上缓存的压力可由内存来承担。
173.因此本提案可以极大的减少基板管理控制芯片中视频压缩功能对片上资源的占用,极大的降低了因为传统方案下fifo阵列过多和过大带来的生产制造,封装等一系列风险,极大提高了项目成功率,同时极大节省了项目的成本和芯片面积。
174.如图7所示,本发明的又一方面还提出一种计算机设备,包括:
175.至少一个处理器21;
176.存储器22,所述存储器22存储有可在所述处理器21上运行的计算机指令23,所述指令23由所述处理器21执行时实现上述实施方式中任意一项所述方法的步骤。
177.如图8所示,本发明的再一方面还提出一种计算机可读存储介质401,所述计算机可读存储介质401存储有计算机程序402,所述计算机程序被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
178.通过本发明提出的一种视频数据处理系统,将原有的完整存储视频数据到片上缓存中改为读取满足封装大小的视频数据保存到缓存片上缓存中,可有效降低视频数据的压力,尤其是在分辨率越大时降低片上缓存的效率则越明显。
179.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
180.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
181.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
182.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
183.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

技术特征:


1.一种视频数据处理系统,其特征在于,包括:视频数据写入模块,所述视频数据写入模块配置用于将视频数据写入内存中的多个存储区域中;视频数据封装模块,所述视频数据封装模块配置用于从所述内存中的多个存储区域读取视频数据,对读取的视频数据进行转换并封装成预定格式后保存到内存中。2.根据权利要求1所述的系统,其特征在于,所述视频数据封装模块还包括数据读取模块、视频转换模块、缓存模块、视频压缩模块,其中:所述数据读取模块配置用于从所述内存中的多个存储区域中读取视频数据,并将视频数据发送到视频转换模块。3.根据权利要求2所述的系统,其特征在于,所述视频转换模块配置用于接收所述数据读取模块发送的视频数据,并将所述视频数据转换成预定编码的视频数据,并将所述预定编码的视频数据的第一视频数据发送到所述视频压缩模块。4.根据权利要求3所述的系统,其特征在于,所述视频转换模块进一步配置用于将所述预定编码的视频数据中的第二视频数据和第三视频数据发送到所述缓存模块。5.根据权利要求4所述的系统,其特征在于,所述缓存模块配置用于接收并缓存所述视频转换模块发送的预定编码的视频数据的第二视频数据和第三视频数据,以及将缓存的所述预定编码的视频数据的第二视频数据和第三视频数据发送到所述视频压缩模块。6.根据权利要求5所述的系统,其特征在于,所述视频压缩模块配置用于将预定编码的视频数据封装成预定格式的数据保存到内存中。7.一种视频数据处理方法,其特征在于,包括:在内存中创建多个存储区域;将显示单元输出的视频数据分别存储到所述多个存储区域中;分别从所述多个存储区域中读取视频数据,并将读取的视频数据进行编码转换生成预定编码的视频数据;将所述预定编码的数据封装成预定格式的视频数据后保存到内存中。8.根据权利要求7所述的方法,其特征在于,所述将显示单元输出的视频数据分别存储到所述多个存储区域中包括:将所述视频数据以帧为单位存储到所述多个存储区域中。9.根据权利要求8所述的方法,其特征在于,所述将所述视频数据以帧为单位存储到所述多个存储区域中包括:将每一帧视频数据中的预定行数的像素数据存储到所述多个存储区域中对应的区域。10.根据权利要求7所述的方法,其特征在于,所述分别从所述多个存储区域中读取视频数据包括:根据所述预定格式的大小从所述多个存储区域中读取满足预定格式大小的视频数据。11.根据权利要求7所述的方法,其特征在于,所述将读取的视频数据进行编码转换生成预定编码的视频数据包括:将所述预定编码的视频数据中的第一视频数据发送到视频压缩模块。12.根据权利要求11所述的方法,其特征在于,还包括:响应于将所述第一视频数据发送到视频压缩模块,将所述预定编码的视频数据中的第
二视频数据和第三视频数据发送到缓存模块。13.根据权利要求12所述的方法,其特征在于,还包括:响应于所述第一视频数据发送到所述视频压缩模块完成,将所述缓存模块缓存的所述第二视频数据和第三视频数据发送到所述视频压缩模块。14.一种计算机设备,其特征在于,包括:至少一个处理器;存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求7-13任意一项所述方法的步骤。15.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求7-13任意一项所述方法的步骤。

技术总结


本发明属于计算机领域,具体涉及一种视频数据处理系统、方法、设备及存储介质。其中系统包括:视频数据写入模块,其用于将视频数据写入内存中的多个存储区域中;视频数据封装模块,其配置用于从所述内存中的多个存储区域读取视频数据,对读取的视频数据进行转换并封装成预定格式后保存到内存中。通过本发明提出的一种视频数据处理系统,将原有的完整存储视频数据到片上缓存中改为读取满足封装大小的视频数据保存到片上缓存中,可有效降低视频数据的片上缓存压力,尤其是在分辨率越大时降低片上缓存的效益则越明显。上缓存的效益则越明显。上缓存的效益则越明显。


技术研发人员:

张贞雷 李拓 邹晓峰 满宏涛 刘刚 刘凯 魏红杨

受保护的技术使用者:

山东云海国创云计算装备产业创新中心有限公司

技术研发日:

2022.11.01

技术公布日:

2023/2/3

本文发布于:2024-09-21 05:50:04,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/61693.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   视频   模块   所述
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议