一种无帧缓存视频流处置输出装置和方法与流程

未命名 07-23 阅读:64 评论:0


1.本发明涉及视频处理技术领域,尤其涉及一种无帧缓存视频流处置输出装置和方法。


背景技术:

2.视频流传输中需要有行同步信号,帧同步信号和数据使能信号。对于显示设备来说,不同的显示设备对于帧同步信号,行同步信号以及数据使能信号的时序要求各有不同。为了适配各种不同规格尺寸的显示设备,通常视频流传输电路如果需要进行缩放,都先将缩放后的视频流存入一个帧缓存或者半帧缓存,再从缓存中读取数据,重新产生不同的时序来匹配不同的屏幕显示设备。帧缓存或者半帧缓存会占据芯片内部非常大的资源,典型情况下会消耗50%以上的芯片内部资源。大容量的缓存会导致芯片面积增大,增加芯片的制造成本,同时系统的运行整体功耗增大,对供电电源的要求也会更高。


技术实现要素:

3.为解决背景技术中存在的技术问题,本发明提出一种无帧缓存视频流处置输出装置和方法。
4.本发明提出的一种无帧缓存视频流处置输出装置,包括:处置模式判断模块,用于获取视频数据处置请求,根据处置请求判断视频数据的处置类型;视频数据处置模块,用于对接收到的视频数据进行差异化处置并得到处置后的视频数据;输出控制模块,用于将处置后的视频数据进行输出。
5.优选地,所述视频数据处置模块包括:视频缩小模块、视频放大模块、行缓存写入控制模块、行缓存模块、行缓存读出控制模块;所述差异化处置具体包括:当处置类型为视频缩小时,所述视频缩小模块用于接收并缩小视频数据,所述行缓存写入控制模块用于将缩小后的视频数据进行行缓存,所述行缓存模块用于视频数据的行缓存;所述行缓存读出控制模块用于逐行从行缓存中读出缩小后的视频数据,并将缩小后的视频数据进行传输;当处置类型为视频放大时,所述行缓存写入控制模块直接接收输入的视频数据,将视频数据进行行缓存,所述行缓存模块用于视频数据的行缓存;所述行缓存读出控制模块用于从行缓存中读取输入的视频数据,所述视频放大模块用于将视频数据放大后,再将放大后的视频数据进行传输。
6.优选地,还包括:输入时序处理模块、输出时序控制模块;所述输入时序处理模块用于接收原始的时序信号,并根据时序信号生成输入控制信号;
所述输出时序控制模块用于获取寄存器配置表,根据寄存器配置表生成视频数据的处置控制信号,所述处置控制信号包括:起始信号、第二帧复位信号、第二行同步信号。
7.优选地,所述原始的时序信号包括:帧同步信号,“接收原始的时序信号,并根据时序信号生成输入控制信号”具体为:根据帧同步信号,将帧同步信号转变成脉冲信号后,再进行移位生成帧同步复位信号以及起始标志信号。
8.优选地,还包括时序差计算模块,所述时序差计算模块用于计算输入输出的时序差额,根据16个配置寄存器以及行缓存行数,计算当前配置输出时序是否满足当前电路的设计,如满足则产生配置成功的中断信号。
9.本发明提出的一种无帧缓存视频流处置输出方法,包括以下步骤:获取视频数据处置请求;根据处置请求判断视频数据的处置类型;对接收到的视频数据进行差异化处置并得到处置后的视频数据;将处置后的视频数据进行输出。
10.优选地,所述差异化处置具体包括:当处置类型为视频缩小时,接收并缩小视频数据,将缩小后的视频数据进行行缓存;逐行从行缓存中读出缩小后的视频数据,并将缩小后的视频数据进行传输;当处置类型为视频放大时,直接接收输入的视频数据,将视频数据进行行缓存;从行缓存中读取输入的视频数据,将视频数据放大后,再将放大后的视频数据进行传输。
11.优选地,还包括:接收原始的时序信号,并根据时序信号生成输入控制信号。
12.优选地,所述原始的时序信号包括:帧同步信号,“接收原始的时序信号,并根据时序信号生成输入控制信号”具体为:根据帧同步信号,将帧同步信号转变成脉冲信号后,再进行移位生成帧同步复位信号以及起始标志信号。
13.优选地,获取寄存器配置表,根据寄存器配置表生成视频数据的处置控制信号,所述处置控制信号包括:起始信号、第二帧复位信号、第二行同步信号。
14.本发明中,所提出的无帧缓存视频流处置输出装置和方法,通过调整输出时序支持视频的缩小与放大以及任意大小的行缓存,可根据需求来灵活配置行缓存;无需缓存一整帧或半帧,仅需缓存若干行,降低了芯片对缓存大小的需求。相较于采用帧缓存的方案节省了的存储面积,从而降低了内部缓存资源消耗。
附图说明
15.图1为本发明提出的一种无帧缓存视频流处置输出装置硬件电路结构示意图;图2为本发明提出的一种无帧缓存视频流处置输出装置视频缩小硬件电路结构示意图;图3为本发明提出的一种无帧缓存视频流处置输出装置视频放大硬件电路结构示意图;图4为本发明提出的一种无帧缓存视频流处置输出装置的输入时序处理模块的部分时序调整电路结构示意图;
图5为本发明提出的一种无帧缓存视频流处置输出装置行缓存读写控制的的结构示意图;图6为本发明提出的一种无帧缓存视频流处置输出装置的时序差计算模块电路的结构示意图;图7为本发明提出的一种无帧缓存视频流处置输出方法的工作流程结构示意图。
具体实施方式
16.参照图1-3,本发明提出的一种无帧缓存视频流处置输出装置,包括:处置模式判断模块,用于获取视频数据处置请求,根据处置请求判断视频数据的处置类型;视频数据处置模块,用于对接收到的视频数据进行差异化处置并得到处置后的视频数据;输出控制模块,用于将处置后的视频数据进行输出。
17.需要进一步说明的是,输出控制模块用以控制最终的输出,模块接收来自行缓存读出控制与视频放大模块的数据以及其有效信号(lb_data_out /up_data_out和lb_data_vld /up_data_vld),并输出视频数据output_data及其有效信号output_vld。当模式选择为视频放大模式时,视频放大模块的数据up_data_out及其有效信号up_data_vld送至输出控制模块。同时视频放大模块的忙信号up_data_busy直接驱动output_busy信号给到行缓存读出控制模块。当模式选择为视频缩小模式时,output_data和output_vld直接来自于行缓存读出控制模块的lb_data_out及其有效信号lb_data_vld,并将送至行缓存读出控制模块的忙信号output_busy置为0,即行缓存读出控制模块可以一直输出数据。
18.需要进一步说明的是,原始的时序信号包括帧同步信号vsync_in,全局复位信号reset。
19.具体的,如图1、图2、图5所示,视频数据处置模块包括:视频缩小模块、视频放大模块、行缓存写入控制模块、行缓存模块、行缓存读出控制模块;差异化处置具体包括:当处置类型为视频缩小时,视频缩小模块用于接收并缩小视频数据,行缓存写入控制模块用于将缩小后的视频数据进行行缓存,行缓存模块用于视频数据的行缓存;行缓存读出控制模块用于逐行从行缓存中读出缩小后的视频数据,并将缩小后的视频数据进行传输;当处置类型为视频放大时,行缓存写入控制模块直接接收输入的视频数据,将视频数据进行行缓存,行缓存模块用于视频数据的行缓存;行缓存读出控制模块用于从行缓存中读取输入的视频数据,视频放大模块用于将视频数据放大后,再将放大后的视频数据进行传输。
20.行缓存写入控制模块在第一行同步信号hsync_in的控制下,用于处理与行缓存模块之间的握手通讯。
21.行缓存写入控制模块接收视频数据,将输入的位宽数据转换为行缓存位宽大小的数据后写入到行缓存模块,例如输入位宽为24bit,行缓存位宽为32bit,行缓存写入控制模块会按照32 bit重新排布输入数据后,再依次写入行缓存模块。行缓存写入控制模块不存在握手流控,只要有数据就会不断往行缓存模块写入。当为缩小模式时,行缓存写入控制模
块接收来自视频缩小模块的数据(dn_data_out/dn_data_vld)并将其写入行缓存中。
22.行缓存写入控制模块不断将数据写入行缓存的每一个buffer中,当写完一行之后,行缓存的写指针(write pointer)会增自加1, 当写指针指向最后一块缓存后,再自增1会重新回到0,同时写指针循环标志(write wrap flag)会取反。行缓存的读指针(read pointer)会增自加1, 当写指针指向最后一块缓存后,再自增1会重新回到0,同时写指针循环标志(read wrap flag)会取反。行缓存模块中的数据占用空间的大小的计算方式为:
23.行缓存读出控制模块用于读出行缓存中的数据。当处置类型为视频缩小时,行缓存读出模块只需要根据输出时序逐行将数据从行缓存模块中读出即可。当收到起始信号之后,行缓存读出控制模块进入工作状态,当收到第二行同步信号之后,开始从缓存中取数据输出,直到输出完一行数据之后再进入到等待第二行同步信号状态,等收到下一个第二行同步信号之后,继续读取一行数据输出直到将整帧图像输出完毕后进入空闲状态。
24.行缓存模块主要用于存储行数据,分三个功能:(1)行缓存模块接收来自于行缓存写入控制模块的数据,将数据依次写入到内部的行缓存之中;(2)行缓存模块接收来自于行缓存读出控制模块的请求,将数据返回给行缓存读出控制模块;(3)行缓存内部由循环缓存组成,需要根据寄存器配置表中的hsize_i与读写请求的数量对读写指针做相应的控制,并将读写端口指向正确的行缓存。
25.行缓存模块处理来自行缓存写入控制模块与行缓存读出控制模块的读请求信号lb_rreq和写请求信号lb_wreq,并将接收到来自于行缓存写入控制模块的数据lb_wdata写入到缓存中。以及将行缓存读出控制模块所需的数据lb_rdata返回给行缓存读出模块,行缓存模块包含有n行的行缓存,n的具体数值可以根据实际的场景与需求来决定。
26.需要进一步说明的是,行缓存读出控制模块接收来自输出时序控制模块的控制信号起始标志信号tx_start和帧复位信号tx_freset,当接收到帧复位信号tx_freset时,模块进入复位状态以保证每一帧起始时状态一定在初始状态。当收到起始标志信号tx_start信号时,模块进入工作状态,随后每收到行同步信号之后将会持续对行缓存模块进行请求读出一行数据并输出。
27.当模式选择为视频缩小模式时,行缓存写入控制模块接收来自视频缩小模块的数据dn_data_out和dn_data_vld,将其逐行写入到行缓存模块之中。
28.当模式选择为视频放大模式时,行缓存写入控制模块直接接收来自外部输入的视频数据,并将其逐行写入到行缓存模块。
29.特别地,视频放大模块主要功能是将输入来的低分辨率视频流放大为高分辨率的视频流,视频流放大模块需要负责行缓存数据的请求以及需要保证输出视频时序,输出视频时序需要严格按照输出时序控制模块的控制来输出视频数据以及处置控制信号。视频流放大模块的工作模式如下:步骤1:接收到输出时序控制模块的复位信号后,复位自身所有状态。
30.步骤2:接收到输出时序控制模块的起始信号后,进入准备状态。
31.步骤3:接收到输出时序控制模块的第一个有效数据起始信号后,开始请求缓存读出数据,接收到足够的输入数据并经过计算之后,开始按行输出一行图像数据。
32.步骤4:按行输出一行图像数据后,如果流水线需要预先读入某些数据填满流水线,则需要开始先读取数据取填充流水线。当流水线填满可以输出下一行数据时,拉高对行缓存请求的繁忙信号,等待接收下一个输出时序控制模块的有效数据起始信号再开始输出下一行数据与读取后续所需要的数据。
33.具体的,如图1-3所示,还包括:输入时序处理模块、输出时序控制模块;输入时序处理模块用于接收原始的时序信号,并根据时序信号生成输入控制信号;输出时序控制模块用于获取寄存器配置表,根据寄存器配置表生成视频数据的处置控制信号,处置控制信号包括:起始信号、第二帧复位信号、第二行同步信号。
34.具体的,如图1和图4所示,原始的时序信号包括:帧同步信号,“接收原始的时序信号,并根据时序信号生成输入控制信号”具体为:根据帧同步信号,将帧同步信号转变成脉冲信号后,再进行移位生成帧同步复位信号以及起始标志信号。
35.需要进一步说明的是,输入时序处理模块用于接收原始的时序信号,包括帧同步信号vsync_in,全局复位信号reset。输入时序处理模块根据接收到的帧同步信号vsync_in,产生一个帧同步复位信号rx_freset,延时一定时间后再产生一个起始标志信号rx_start给到后续的视频流缩小模块与行缓存写入控制模块。用于每一帧的复位与起始,以此来保证每一帧的独立处理,以免某一帧发生错误时影响到后续帧的处理。
36.特别地,如图4所示,当输入时序处理模块接收到帧同步信号vsync_in后,首先会将帧同步信号vsync_in转变为脉冲信号,然后会将放入深度为8,初始值复位值为0的帧同步移位寄存电路中。电路中的帧同步移位寄存器会依次将帧同步脉冲信号从移位寄存器0移动到移位寄存器7直到移出。当移位寄存器0到移位寄存器4存在帧同步脉冲信号时,输入时序控制模块会产生一个帧同步复位信号rx_freset给到后续输入数据处理的相关模块,用于在每帧起始时复位各个模块的自身状态。当移位寄存器7存在帧同步脉冲信号时,输入时序控制模块将会产生起始标志信号rx_start给到后续的相关模块之中,用于启动后续模块开始工作。该设计主要是为了增强电路运行的稳定性,以免当某一帧发生一些意外错误时会导致帧后续的继续错误。
37.需要进一步说明的是,输出时序控制模块用于产生视频数据的处置控制信号,处置控制信号包括起始信号tx_start、第二帧同步信号vsync_out、帧复位信号tx_freset、第二行同步信号hsync_out。第二行同步信号hsync_out送往行缓存读出控制模块,用于控制其访问缓存模块,第二帧同步信号vsync_out与第二行同步信号hsync_out还需要输出到外部以供外部使用。
38.具体的,如图1和图6所示,还包括时序差计算模块,时序差计算模块用于计算输入输出的时序差额,根据16个配置寄存器以及行缓存行数,计算当前配置输出时序是否满足当前电路的设计,如满足则产生配置成功的中断信号。
39.需要进一步说明的是,时序差计算模块在配置完成之后开始计算当前时序配置是否能够满足要求,时序差计算模块共需要配置的16个寄存器,有输入帧同步行数(vsync_i),输入垂直方向后端无效行数(vbp_i),输入行数(vsize_i),输入垂直方向前端端无效行
数(vfp_i),输入行同步时钟数(hsync_i),输入水平方向后端无效数据数(vbp_i),输入水平方向有效数据数(hsize_i),输入水平方向前端无效数据数(hfp_i),输出帧同步行数(vsync_o),输出垂直方向后端无效行数(vbp_o),输出行数(vsize_o),输出垂直方向前端无效行数(vfp_o),输出行同步时钟数(hsync_o),输出水平方向后端无效数据数(vbp_o),输出水平方向有效数据数(hsize_o),输出水平方向前端无效数据数(hfp_o)。其中这些配置必须满足以下的三个条件,才能够让输入与输出的时序匹配,从而不会使得行缓存溢出,电路结构图见图4,公式如下:hline_i = hsync_i + hbp_i + hsize_i + hfp_ihline_o = hsync_o + hbp_o + hsize_o + hfp_ovline_i = vsync_i + vbp_i + vsize_i + vfp_ivline_o = vsync_o + vbp_o + vsize_o + vfp_o, line_buffer_num = 电路中行缓存的行数。
40.条件一:(vsync_i + vbp_i)
ꢀ×ꢀ
hline_i === (vsync_o + vbp_o)
ꢀ×ꢀ
hline_o条件二:vline_i
ꢀ×ꢀ
hline_i === vline_o
ꢀ×ꢀ
hline_o条件三:abs((vsize_i
ꢀ×ꢀ
hline_i)
ꢀ‑ꢀ
(vsize_o
ꢀ×ꢀ
hline_o))《(line_buffer_num
ꢀ×ꢀ
min(hline_i, hline_o))条件一表明输入的帧率(fps)与输出的帧率必须一致;条件二表明输入图像的垂直扫描后场无效时间与输出图像的垂直扫描后场无效时间必须一致,即输入图像数据第一次写入行缓存的时间与输出图像第一次从行缓存中读出的时间需要一致;条件三表明输入图像有效行的时间与输出图像有效行的时间差需要小于行缓存数乘以输入输出中最小的一行时间。
41.如图7所示,一种无帧缓存视频流处置输出方法,包括以下步骤:获取视频数据处置请求;根据处置请求判断视频数据的处置类型;对接收到的视频数据进行差异化处置并得到处置后的视频数据;将处置后的视频数据进行输出。
42.具体的,差异化处置具体包括:当处置类型为视频缩小时,接收并缩小视频数据,将缩小后的视频数据进行行缓存;逐行从行缓存中读出缩小后的视频数据,并将缩小后的视频数据进行传输;当处置类型为视频放大时,直接接收输入的视频数据,将视频数据进行行缓存;从行缓存中读取输入的视频数据,将视频数据放大后,再将放大后的视频数据进行传输。
43.具体的,还包括:接收原始的时序信号,并根据时序信号生成输入控制信号。
44.具体的,原始的时序信号包括:帧同步信号,“接收原始的时序信号,并根据时序信号生成输入控制信号”具体为:根据帧同步信号,将帧同步信号转变成脉冲信号后,再进行移位生成帧同步复位信号以及起始标志信号。
45.具体的,获取寄存器配置表,根据寄存器配置表生成视频数据的处置控制信号,处
置控制信号包括:起始信号、第二帧复位信号、第二行同步信号。
46.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

技术特征:
1.一种无帧缓存视频流处置输出装置,其特征在于,包括:处置模式判断模块,用于获取视频数据处置请求,根据处置请求判断视频数据的处置类型;视频数据处置模块,用于对接收到的视频数据进行差异化处置并得到处置后的视频数据;输出控制模块,用于将处置后的视频数据进行输出。2.根据权利要求1所述的无帧缓存视频流处置输出装置,其特征在于,所述视频数据处置模块包括:视频缩小模块、视频放大模块、行缓存写入控制模块、行缓存模块、行缓存读出控制模块;所述差异化处置具体包括:当处置类型为视频缩小时,所述视频缩小模块用于接收并缩小视频数据,所述行缓存写入控制模块用于将缩小后的视频数据进行行缓存,所述行缓存模块用于视频数据的行缓存;所述行缓存读出控制模块用于逐行从行缓存中读出缩小后的视频数据,并将缩小后的视频数据进行传输;当处置类型为视频放大时,所述行缓存写入控制模块直接接收输入的视频数据,将视频数据进行行缓存,所述行缓存模块用于视频数据的行缓存;所述行缓存读出控制模块用于从行缓存中读取输入的视频数据,所述视频放大模块用于将视频数据放大后,再将放大后的视频数据进行传输。3.根据权利要求1所述的无帧缓存视频流处置输出装置,其特征在于,还包括:输入时序处理模块、输出时序控制模块;所述输入时序处理模块用于接收原始的时序信号,并根据时序信号生成输入控制信号;所述输出时序控制模块用于获取寄存器配置表,根据寄存器配置表生成视频数据的处置控制信号,所述处置控制信号包括:起始信号、第二帧同步信号、帧复位信号、第二行同步信号。4.根据权利要求3所述的无帧缓存视频流处置输出装置,其特征在于,所述原始的时序信号包括:帧同步信号,“接收原始的时序信号,并根据时序信号生成输入控制信号”具体为:根据帧同步信号,将帧同步信号转变成脉冲信号后,再进行移位生成帧同步复位信号以及起始标志信号。5.根据权利要求1所述的无帧缓存视频流处置输出装置,其特征在于,还包括时序差计算模块,所述时序差计算模块用于计算输入输出的时序差额,通过多个配置寄存器以及行缓存行数,计算当前配置输出时序是否满足当前电路的设计,如满足则产生配置成功的中断信号。6.一种无帧缓存视频流处置输出方法,其特征在于,包括以下步骤:获取视频数据处置请求;根据处置请求判断视频数据的处置类型;对接收到的视频数据进行差异化处置并得到处置后的视频数据;将处置后的视频数据进行输出。7.根据权利要求6所述的无帧缓存视频流处置输出方法,其特征在于,所述差异化处置
具体包括:当处置类型为视频缩小时,接收并缩小视频数据,将缩小后的视频数据进行行缓存;逐行从行缓存中读出缩小后的视频数据,并将缩小后的视频数据进行传输;当处置类型为视频放大时,直接接收输入的视频数据,将视频数据进行行缓存;从行缓存中读取输入的视频数据,将视频数据放大后,再将放大后的视频数据进行传输。8.根据权利要求6所述的无帧缓存视频流处置输出方法,其特征在于,还包括:接收原始的时序信号,并根据时序信号生成输入控制信号。9.根据权利要求8所述的无帧缓存视频流处置输出方法,其特征在于,所述原始的时序信号包括:帧同步信号,“接收原始的时序信号,并根据时序信号生成输入控制信号”具体为:根据帧同步信号,将帧同步信号转变成脉冲信号后,再进行移位生成帧同步复位信号以及起始标志信号。10.根据权利要求6所述的无帧缓存视频流处置输出方法,其特征在于,获取寄存器配置表,根据寄存器配置表生成视频数据的处置控制信号,所述处置控制信号包括:起始信号、第二帧同步信号、帧复位信号、第二行同步信号。

技术总结
本发明公开了一种无帧缓存视频流处置输出装置,包括:处置模式判断模块,用于获取视频数据处置请求,根据处置请求判断视频数据的处置类型;视频数据处置模块,用于对接收到的视频数据进行差异化处置并得到处置后的视频数据;输出控制模块,用于将处置后的视频数据进行输出。通过调整输出时序支持视频的缩小与放大以及任意大小的行缓存,可根据需求来灵活配置行缓存;无需缓存一整帧或半帧,仅需缓存若干行,降低了芯片对缓存大小的需求。相较于采用帧缓存的方案节省了的存储面积,从而降低了内部缓存资源消耗。内部缓存资源消耗。内部缓存资源消耗。


技术研发人员:舒杰敏 王刘泰隆 黄强 张伟斌
受保护的技术使用者:合肥六角形半导体有限公司
技术研发日:2023.06.14
技术公布日:2023/7/21
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐