CN115756382A - 视频处理方法、装置、电子组件及电子设备 - Google Patents
视频处理方法、装置、电子组件及电子设备 Download PDFInfo
- Publication number
- CN115756382A CN115756382A CN202310014865.2A CN202310014865A CN115756382A CN 115756382 A CN115756382 A CN 115756382A CN 202310014865 A CN202310014865 A CN 202310014865A CN 115756382 A CN115756382 A CN 115756382A
- Authority
- CN
- China
- Prior art keywords
- asynchronous fifo
- pixel data
- effective
- video frame
- read
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 32
- 238000006243 chemical reaction Methods 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims description 48
- 239000000872 buffer Substances 0.000 claims description 18
- 230000003139 buffering effect Effects 0.000 claims description 12
- 238000000034 method Methods 0.000 abstract description 15
- 238000004364 calculation method Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 5
- 238000012856 packing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Images
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
本公开提供一种视频处理方法、装置、电子组件及电子设备。该方法包括接收视频源数据;其中,所述视频源数据包括多个视频帧的像素数据;将每个视频帧的像素数据逐个缓存到每个视频帧对应的异步FIFO中,以对每个视频帧的像素数据进行时钟域转换;当有视频帧缓存到对应的异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备;其中,所述异步FIFO的深度大于等于所述预设阈值。这种方法通过对异步FIFO的读写时机的控制,在一定程度上避免异步FIFO出现下溢出的问题。
Description
技术领域
本公开涉及内存技术领域,尤其涉及一种视频处理方法、装置、电子组件及电子设备。
背景技术
在视频显示的显示接口芯片设计中,难以避免会出现视频源数据在不同时钟域之间的传输的问题,现有的视频时钟域同步的方法之一是使用通用的异步先入先出队列(First Input First Output,FIFO)实现跨时钟域(视频源数据和处理时钟域之间的跨时钟域)的数据传输;另一种是使用同源时钟传输视频源数据(即视频源数据时钟域、处理时钟域均来自于处理芯片内部的时钟域)来避免异步处理。这两种方法都可以解决视频源数据时钟域和处理时钟域不一致的问题,但是使用同源时钟的方法中对视频源数据的来源要求较高,适用性不高,如当视频源数据时钟域来自芯片外部,与芯片内部的时钟完全异步时,同源时钟的方法不再适用。
使用异步FIFO的方法适用性更高,但是由于视频处理过程中不同时钟域的时钟频率之间是允许存在一定偏差的,所以当异步FIFO的读时钟频率(读速率)大于写时钟频率(写速率)时,如果不对异步FIFO读写操作进行特殊控制的话,会导致异步FIFO因为写入和读出数据的速率(或时钟频率)不一致而引起FIFO的下溢出,在一定时间后会出现数据的丢失和错误。
发明内容
本公开的目的是提供一种视频处理方法、装置、电子组件及电子设备,解决了现有技术中使用异步FIFO对视频源数据进行处理时异步FIFO易出现下溢出导致数据丢失和错误的技术问题。
根据本公开的一个方面,提供一种视频处理方法,包括:
接收视频源数据;其中,视频源数据包括多个视频帧的像素数据;
将每个视频帧的像素数据逐个缓存到每个视频帧对应的异步FIFO中,以对每个视频帧的像素数据进行时钟域转换;
当有视频帧缓存到对应的异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备;
其中,异步FIFO的深度大于等于预设阈值。
在一些实施例中,上述视频处理方法中,每个视频帧包括多个有效行和多个消隐行,每个有效行包括有效段和消隐段,有效段包括多个有效像素数据,消隐段包括多个无效像素数据;
将每个视频帧的像素数据逐个缓存到每个视频帧对应的异步FIFO中,包括以下步骤:
将每个视频帧的有效像素数据逐个缓存到每个视频帧对应的异步FIFO中;其中,异步FIFO不缓存对应的视频帧的无效像素数据。
在一些实施例中,上述视频处理方法中,预设阈值D1至少为:
D1=⌈(Hactive–T)×δ+T⌉
其中,⌈ ⌉为向上取整符号,Hactive为每个有效行中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数。
在一些实施例中,上述视频处理方法中,当有视频帧缓存到对应的异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备,包括以下步骤:
当有视频帧的一个有效段缓存到对应的异步FIFO中的有效像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该有效段的有效像素数据读取至显示设备。
在一些实施例中,上述视频处理方法中,当异步FIFO的读速率大于等于写速率时,异步FIFO的深度D至少为预设阈值。
在一些实施例中,上述视频处理方法中,当异步FIFO的读速率小于写速率时,预设阈值D1为T,异步FIFO的深度D至少为:
D=⌈(Hactive-T)×δ+T⌉;
其中,⌈ ⌉为向上取整符号,Hactive为每个有效行中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数。
在一些实施例中,上述视频处理方法中,异步FIFO的深度D至少为:
D=⌈D1+|D2-Hblank|×(Vactive-1)+D2-T⌉;
D2=(Hactive-T)×δ+T;
其中,⌈ ⌉为向上取整符号,| |为取绝对值符号,D1为预设阈值,D2为一个有效段的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的该有效段的有效像素数据的最大数量,Hactive为每个有效段中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数,Hblank为每个消隐段中无效像素数据的数量,Vactive为每个视频帧中有效行的数量。
在一些实施例中,上述视频处理方法中,缓存到对应的异步FIFO中的一个有效段的所有有效像素数据,最迟在最接近的下一个消隐段对应的时间段内会被读取完;异步FIFO的深度D至少为:
D=⌈D1+D2-T⌉;
D2=(Hactive-T)×δ+T;
其中,⌈ ⌉为向上取整符号,D1为预设阈值,D2为一个有效段的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的该有效段的有效像素数据的最大数量,Hactive为每个有效段中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数。
在一些实施例中,上述视频处理方法中,视频源数据还包括各个视频帧的像素数据对应的数据有效信号,数据有效信号包括高电平或低电平,分别指示对应的像素数据为有效或无效;
将每个视频帧的各个像素数据逐个缓存到每个视频帧对应的异步FIFO中,包括以下步骤:
在将每个像素数据缓存到对应的异步FIFO之前,判断每个像素数据对应的数据有效信号;
当像素数据对应的数据有效信号为高电平时,将该像素数据缓存到对应的异步FIFO中;
当像素数据对应的数据有效信号为低电平时,停止将该像素数据缓存到对应的异步FIFO中。
在一些实施例中,上述视频处理方法中,当有视频帧缓存到对应的异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备,包括以下步骤:
当有视频帧缓存到对应的异步FIFO中的有效像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的有效像素数据读取出来进行打包,并将打包后的数据通过显示接口传输至显示设备。
根据本公开的另一方面,提供一种视频处理装置,包括至少一个异步FIFO以及异步FIFO对应的写控制模块和读控制模块;
写控制模块,被配置为将每个视频帧的各个像素数据逐个缓存到每个视频帧对应的异步FIFO中,以对每个视频帧的像素数据进行时钟域转换;
读控制模块,被配置为当有视频帧缓存到对应的异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备。
在一些实施例中,上述视频处理装置中,每个视频帧包括多个有效行和多个消隐行,每个有效行包括有效段和消隐段,有效段包括多个有效像素数据,消隐段包括多个无效像素数据;
写控制模块,被配置为将每个视频帧的像素数据逐个缓存到每个视频帧对应的异步FIFO中,包括:
写控制模块,被配置为将每个视频帧的有效像素数据逐个缓存到每个视频帧对应的异步FIFO中;其中,异步FIFO不缓存对应的视频帧的无效像素数据。
在一些实施例中,上述视频处理装置中,预设阈值D1至少为:
D1=⌈(Hactive–T)×δ+T⌉;
其中,⌈ ⌉为向上取整符号,Hactive为每个有效行中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数。
在一些实施例中,上述视频处理装置中,读控制模块,被配置为当有视频帧缓存到对应的异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备,包括:
读控制模块,被配置为当有视频帧的一个有效段缓存到对应的异步FIFO中的有效像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该有效段的有效像素数据读取至显示设备。
在一些实施例中,上述视频处理装置中,当异步FIFO的读速率大于等于写速率时,异步FIFO的深度D至少为D1。
在一些实施例中,上述视频处理装置中,当异步FIFO的读速率小于写速率时,预设阈值D1为T,异步FIFO的深度D至少为:
D=⌈(Hactive-T)×δ+T⌉;
其中,⌈ ⌉为向上取整符号,Hactive为每个有效行中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数。
在一些实施例中,上述视频处理装置中,异步FIFO的深度D至少为:
D=⌈D1+D2+|D2-Hblank|×(Vactive-1)-T⌉;
D2=(Hactive-T)×δ+T;
其中,⌈ ⌉为向上取整符号,| |为取绝对值符号,D1为预设阈值,D2为一个有效段的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的该有效段的有效像素数据的最大数量,Hactive为每个有效段中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数,Hblank为每个消隐段中无效像素数据的数量,Vactive为每个视频帧中有效行的数量。
在一些实施例中,上述视频处理装置中,缓存到对应的异步FIFO中的一个有效段的所有有效像素数据,最迟在最接近的下一个消隐段对应的时间段内会被读取完;
异步FIFO的深度D至少为:
D=⌈D1+D2-T⌉;
D2=(Hactive-T)×δ+T;
其中,⌈ ⌉为向上取整符号,D1为预设阈值,D2为一个有效段的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的该有效段的有效像素数据的最大数量,Hactive为每个有效段中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数。
根据本公开的另一方面,提供一种电子组件,包括上述任一实施例的视频处理装置。
根据本公开的另一方面,提供一种电子设备,包括上述任一实施例的电子组件。
附图说明
图1为本公开一个实施例提供的视频处理方法的流程示意图;
图2为本公开一个实施例提供的视频帧的数据结构示意图;
图3为本公开一个实施例提供的异步FIFO的写入和读取控制示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
本公开的目的是提供一种视频处理方法、装置、电子组件及电子设备,旨在接收视频源数据;其中,视频源数据包括多个视频帧的像素数据;将每个视频帧的像素数据逐个缓存到每个视频帧对应的异步FIFO中,以对每个视频帧的像素数据进行时钟域转换;当有视频帧缓存到对应的异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备;其中,异步FIFO的深度大于等于预设阈值。这种方法通过对异步FIFO的读写时机的控制,在一定程度上避免了异步FIFO出现下溢出(被读空之后读操作不停止)的问题。同时在设计处理芯片时,在一定程度上可以不必受限于读时钟频率(读速率)大于写时钟频率(写速率)的情况,在一定程度上降低了显示设备中端口物理层芯片(Physical,PHY)的设计难度,使PHY中的时钟源在一定程度上不受限于与输入的像素时钟是否同源的问题。
本公开的一个实施例提供一种视频处理方法,如图1所示,包括:
步骤S110:接收视频源数据;其中,视频源数据包括多个视频帧的像素数据;
步骤S120:将每个视频帧的像素数据逐个缓存到每个视频帧对应的异步FIFO中,以对每个视频帧的像素数据进行时钟域转换;
步骤S130:当有视频帧缓存到对应的异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备;其中,异步FIFO的深度大于等于预设阈值。
在一些实施例中,一个视频源中的多个数据帧可以使用同一个异步FIFO来实现进行时钟域转换,或者,在满足时序要求的情况下,一个视频源中的多个数据帧也可以使用多个异步FIFO来实现进行时钟域转换。
在一些实施例中,如图2所示,每个视频帧包括多个有效行(Line0~Line n-1)和多个消隐行(Blank 0~ Blank m-1),每个有效行包括有效段和消隐段,有效段包括多个有效像素数据,消隐段包括多个无效像素数据;与该视频帧数据结构对应的,步骤S120中将每个视频帧的像素数据逐个缓存到每个视频帧对应的异步FIFO中,包括以下步骤:
将每个视频帧的有效像素数据逐个缓存到每个视频帧对应的异步FIFO中;其中,异步FIFO不缓存对应的视频帧的无效像素数据。
也就是说,将每个视频帧中的有效像素数据(有效段的有效像素数据)写入(或存入)异步FIFO中,消隐行和消隐段中的无效像素数据不写入(或存入)异步FIFO中。
在一些实施例中,上述包括有效行和消隐行的视频帧数据结构对应的异步FIFO缓存有效像素数据,不缓存无效像素数据的方案中,视频源数据还可以包括各个视频帧的像素数据对应的数据有效信号,数据有效信号包括高电平或低电平,分别指示对应的像素数据为有效或无效。有效像素数据逐个缓存到对应的异步FIFO中的方式可以为:按照有效像素数据的排列顺序,在有效像素数据可以缓存到对应的异步FIFO中时,通过一拍(一个时钟周期)缓存一个有效像素数据到对应的异步FIFO中的方式,将有效像素数据逐个缓存到对应的异步FIFO中。还可以将视频帧中每个像素数据对应的数据有效信号按照像素数据的排列顺序,依次排列起来(如一拍一个数据有效信号,这样依次排列起来),即得到了数据有效时序信号DE,如图3所示。
对应的,步骤S120中将每个视频帧的像素数据逐个缓存到每个视频帧对应的异步FIFO中,包括以下步骤:
在将每个像素数据缓存到对应的异步FIFO之前,判断每个像素数据对应的数据有效信号;
当像素数据对应的数据有效信号为高电平时,将该像素数据写入对应的异步FIFO中;
当像素数据对应的数据有效信号为低电平时,停止将该像素数据写入对应的异步FIFO中。
可以理解为,数据有效信号可以作为其对应的视频帧对应的异步FIFO(用于缓存该视频帧)的写入使能信号,该异步FIFO的写控制模块根据读取数据有效时序信号DE确定各个时钟周期是否将有效像素数据写入(或存入)该异步FIFO中,若DE中当前一拍(当前一时钟周期)的数据有效信号为高电平,则可以直接将未写入该异步FIFO的有效像素数据中排列在最前面的有效像素数据写入该异步FIFO中,若DE中当前一拍(当前一时钟周期)的数据有效信号为低电平,则暂停该异步FIFO的写入操作。也即,异步FIFO停止写入的时间段对应了异步FIFO写侧的视频帧的消隐行和消隐段。
在一些实施例中,消隐段和消隐行对应的异步FIFO停止写入的时间段内,视频处理装置会通过其它通道传输一些辅助数据,如音频数据,然后在数据打包时将有效像素数据和音频数据合入显示设备的传输数据中。
在一些实施例中,上述消隐段和消隐行对应的异步FIFO停止写入的时间段内,视频处理装置会通过其它通道传输一些辅助数据的方案中,辅助数据可以通过其它异步FIFO进行时钟域转换,其具体处理步骤与像素数据的处理步骤类似,此处不再赘述。
在一些实施例中,上述数据有效时序信号DE的方案中,用于实现上述视频处理方法的视频处理装置还可以根据数据有效时序信号DE和上述预设阈值,生成另一数据有效时序信号DE',如图3所示,具体为:数据有效时序信号DE'起始保持低电平,当针对异步FIFO的当前一组连续写操作存入(写入)该异步FIFO的像素数据的数量达到预设阈值时,将数据有效时序信号DE'切换为高电平并保持N个时钟周期(N为异步FIFO当前一组连续写操作连续写入的总数据量),然后将数据有效时序信号DE'切换为低电平,下一组连续写操作时重复上述步骤,由此,就得到了数据有效时序信号DE'。
与数据有效时序信号DE对应的,数据有效时序信号DE'中的各个数据有效信号可以作为异步FIFO的读取使能信号,异步FIFO的读控制模块可以根据数据有效时序信号DE'确定各个时钟周期是否从该异步FIFO中读取数据,若DE'中当前一拍的数据有效信号为高电平,则可以直接将该异步FIFO中最先存入且已完成时钟域转换的有效像素数据读取出来,若DE'中当前一拍的数据有效信号为低电平,则可以暂停对该异步FIFO的读取操作。也即,异步FIFO停止读取的时间段对应了异步FIFO读侧的视频帧的消隐行和消隐段。
上述数据有效时序信号DE和DE'的方案,可以理解为,是按照有效像素数据在异步FIFO写侧的视频帧的所有像素数据中的排列顺序,将有效像素数据逐个缓存到对应的异步FIFO中的,然后再按照有效像素数据在异步FIFO读侧的视频帧的所有像素数据中的排列顺序,将有效像素数据逐个从对应的异步FIFO中读取出来。在异步FIFO写侧,视频帧中的一个像素数据对应写侧的一个时钟周期,在异步FIFO读侧,视频帧中的一个像素数据对应读侧的一个时钟周期。
在一些实施例中,上述包括有效行和消隐行的视频帧数据结构对应的方案中,有效行中像素数据的总数量与消隐行中像素数据的总数量相同,且有效行的数量(场有效行数)、消隐行的数量(场消隐)、有效段中有效像素数据的数量(行有效像素点数)、消隐段中无效像素数据的数量(行消隐)与视频帧的分辨率有关,视频帧的分辨率不同,这些参数也不同。
在一些实施例中,针对有效分辨率为4K*2K@60Hz(像素时钟典型值为594MHz)的视频源数据,该分辨率下的视频帧对应的参数如表1所示。
表1视频帧对应的参数
其中,行总像素点数(Htotal)为有效行的有效像素数据和无效像素数据的总数量或为消隐行的无效像素数据的总数量,场总行数(Vtotal)为每个视频帧中有效行和消隐行的总数量,行有效像素点数(Hactive)为每个有效行中有效段的有效像素数据的数量,场有效行数(Vactive)为每个视频帧中有效行的数量,行消隐(Hblank)为有效行中消隐段的无效像素数据的数量,场消隐(Vblank)为每个视频帧中消隐行的数量。
在一些实施例中,上述包括有效行和消隐行的视频帧数据结构对应的方案中,由于是按照有效像素数据的排列顺序,在有效像素数据可以缓存到对应的异步FIFO中时,通过一拍(一个时钟周期)缓存一个有效像素数据到对应的异步FIFO中,所以异步FIFO写侧的视频帧的一个有效段对应一组针对对应的异步FIFO的连续写操作,异步FIFO读侧的视频帧的一个有效段对应一组针对对应的异步FIFO的连续读操作。且异步FIFO不缓存对应的视频帧的无效像素数据,所以在如图2所示的视频帧的数据结构(视频帧中各个有效行的有效段和消隐段的排列位置相同)中,在对应的异步FIFO中写入一个有效段后,该异步FIFO停止写入达一定时间段(写侧的一个消隐段对应的时间段)之后才会继续写入下一个有效段;同理,从对应的异步FIFO中读出一个有效段后,该异步FIFO停止读取达一定时间段(读侧的一个消隐段对应的时间段)之后才会继续读取下一个有效段。
上述视频处理方法中,为了进一步避免异步FIFO出现下溢出的问题,上述预设阈值的设置,可以考虑异步FIFO进行时钟域转换需要的延时,在一些实施例中,异步FIFO进行时钟域转换的最短延时为T个时钟周期。
上述时钟域转换是指异步FIFO的写时钟(视频源数据时钟)和读时钟(处理时钟域)之间的跨异步处理,异步FIFO(包括多个缓存块)进行时钟域转换的最短延时是指其读指针每次更新后(每读走或输出一个像素数据),读指针的更新值需要T个时钟周期才能到达写时钟域,以及写指针每次更新后(每向异步FIFO写入或存入一个像素数据),写指针的更新值需要T个时钟周期才能到达读时钟域。
可以理解为,当异步FIFO中存入(或写入)第一个像素数据之后,写指针加1(写指针从0变为1),读时钟域在T个时钟周期之后才知道第一个像素数据已经存入(或写入)异步FIFO了,才可以将第一个像素数据读走,以此类推。而当异步FIFO中的第一个像素数据被读走之后,读指针加1(读指针从0变为1),写时钟域在T个时钟周期之后才知道第一个像素数据被读走了,才可以向第一个像素数据对应的存储位置写入数据,以此类推。
所以,上述预设阈值的设置,可以考虑异步FIFO进行时钟域转换的最短延时,以在每个有效像素数据在可以被读取之前,可以提前至少T个时钟周期写入(或存入)异步FIFO,以进一步避免异步FIFO出现下溢出的问题。而在针对异步FIFO的连续写操作和连续读操作同时进行的情况下,当针对异步FIFO的连续写操作在异步FIFO中存入(写入)至少T个有效像素数据(即预存至少T个有效像素数据)之后,再开始针对异步FIFO的连续读操作(相当于每个有效像素数据在读出之前都提前至少T个时钟周期存入了异步FIFO中),可以在一定程度上使得连续读操作的每个读操作可以读到数据,从而进一步避免异步FIFO出现下溢出的问题。
另外,为了进一步避免异步FIFO出现下溢出的问题,上述预设阈值的设置,还可以考虑当异步FIFO的读速率(读时钟频率)大于写速率(写时钟频率时)的情况下,同时对异步FIFO执行连续读操作和连续写操作的时间(即同时进行读写操作的时间)内写入(或存入)异步FIFO的数据数量与从异步FIFO中读出的数据数量的差值。其中,在针对异步FIFO的连续写操作在异步FIFO中存入(写入)至少T个有效像素数据(即至少预存T个有效像素数据)之后,再开始针对异步FIFO的连续读操作(相当于每个有效像素数据在读出之前都提前至少T个时钟周期存入了异步FIFO中)的情况下,一个有效段对应的同时对异步FIFO执行连续读操作和连续写操作的时钟周期为(Hactive-T)。
其中,当异步FIFO的读速率(读时钟频率)大于写速率(写时钟频率),且异步FIFO的读写速率(读写时钟频率)相对偏差的最大值为δ时,通过一个有效段对应的读写同时进行的时钟周期数(Hactive-T)乘以异步FIFO的读写速率相对偏差的最大值δ,即得到一个有效段(对应一组针对异步FIFO的连续写操作和连续读操作)对应的读写速率偏差(频率偏差)引起的最大读写数据量偏差(Hactive-T)×δ,也即一个有效段对应的读写同时进行的时间内,异步FIFO中由于读写速率偏差引起的读取数据量比写入数据量多出的部分。
所以,针对异步FIFO的连续读操作开始之前,除了异步FIFO中预存T个像素数据之外,还可以另外在异步FIFO中预先存入(Hactive-T)×δ个像素数据,进一步弥补读写速率偏差(频率偏差)引起的读写数据量偏差,从而进一步避免由于异步FIFO的读速率(读时钟频率)大于写速率(写时钟频率)导致的异步FIFO下溢出。该部分预先存入的数据量加上提前存入的T个像素数据再进行向上取整,也就得到了预设阈值D1至少为:
D1=⌈(Hactive–T)×δ+T⌉;
其中,⌈ ⌉为向上取整符号,Hactive为每个有效行中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数。
在一些实施例中,上述D1的计算方式中,为了进一步避免由于异步FIFO的读速率(读时钟频率)大于写速率(写时钟频率)导致的异步FIFO下溢出,每个有效段对应的针对异步FIFO的连续读操作开始之前,都可以在该异步FIFO中预存上述预设阈值对应数量的有效像素数据。对应的,步骤S130包括:
当有视频帧的一个有效段缓存到对应的异步FIFO中的有效像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该有效段的有效像素数据读取至显示设备。
在这种场景下,上述根据数据有效时序信号DE和预设阈值,生成另一数据有效时序信号DE'的具体方式可以为:数据有效时序信号DE'起始保持低电平,当当前正在写入对应的异步FIFO的一个有效段存入(写入)该异步FIFO的有效像素数据的数量达到预设阈值时,将数据有效时序信号DE'切换为高电平并保持Hactive个时钟周期,然后数据有效时序信号DE'切换为低电平,在该异步FIFO中存入下一个有效段时重复上述步骤,由此,就得到了数据有效时序信号DE'。
在一些实施例中,通过异步FIFO深度的设置,还可以在一定程度上避免异步FIFO上溢出(被写满之后写操作不停止)的问题。
该场景下,在一些实施例中,在已知异步FIFO的读速率大于等于写速率的场景下,即使针对异步FIFO的连续读操作开始前,异步FIFO为满状态,但是由于异步FIFO的读速率大于等于写速率,所以在针对异步FIFO的连续读操作开始后,异步FIFO不会出现上溢出的问题。所以,异步FIFO的深度D(第一种深度计算方式)至少为上述预设阈值,就可以在一定程度上避免异步FIFO上溢出的问题。
在一些实施例中,在上述已知异步FIFO的读速率大于等于写速率的场景下,预设阈值至少为:D1=⌈(Hactive–T)×δ+T⌉,其计算原理与前述实施例相同,此处不再赘述。
在一些实施例中,在已知异步FIFO的读速率小于写速率的场景下,异步FIFO中预存数据量(上述预设阈值)考虑时钟域转换的最短延时T就可以在一定程度上避免异步FIFO的下溢出,所以预设阈值D1可以为T。该场景下,针对异步FIFO的连续读操作开始前,异步FIFO中除了预存T个有效像素数据之外,还可以预留一定的存储空间,以避免异步FIFO上溢出(被写满之后写操作不停止)。而该部分预留的存储空间深度(等于异步FIFO深度减去上述预设阈值)的设置,需要考虑当异步FIFO的读速率(读时钟频率)小于写速率(写时钟频率)的情况下,同时对异步FIFO执行连续读操作和连续写操作的时间(即同时进行读写操作的时间)内写入(或存入)异步FIFO的数据数量与从异步FIFO中读出的数据数量的差值。
而上述在已知异步FIFO的读速率小于写速率的场景下,一个有效段对应的同时对异步FIFO执行连续读操作和连续写操作的时钟周期为(Hactive-T)。所以当异步FIFO的读写速率(读写时钟频率)相对偏差的最大值为δ时,通过一个有效段对应的读写同时进行的时钟周期数(Hactive-T)乘以异步FIFO的读写速率相对偏差的最大值δ,即得到一个有效段(对应一组针对异步FIFO的连续写操作和连续读操作)对应的读写速率偏差(频率偏差)引起的最大读写数据量偏差(Hactive-T)×δ,也即一个有效段对应的读写同时进行的时间内,异步FIFO中由于读写速率偏差累计的数据量(也即写入数据量比读取数据量多出的部分)为(Hactive-T)×δ。
所以,在已知异步FIFO的读速率小于写速率的场景下,针对异步FIFO的连续读操作开始之前,除了在异步FIFO中预存T个像素数据之外,还需要至少预留大小为(Hactive-T)×δ的存储空间,以弥补读写速率偏差(频率偏差)引起的读写数据量偏差,从而在一定程度上可以避免由于异步FIFO的读速率(读时钟频率)小于写速率(写时钟频率)导致的异步FIFO上溢出。该部分预留的存储空间加上提前存入的T个像素数据再进行向上取整,也就得到了对应的异步FIFO的深度D(第二种深度计算方式)至少为:
D=⌈(Hactive-T)×δ+T⌉;
其中,⌈ ⌉为向上取整符号,Hactive为每个有效行中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数。
在一些实施例中,上述包括有效行和消隐行的视频帧数据结构对应的方案中,在异步FIFO写侧的视频帧的消隐行和消隐段对应的异步FIFO停止写入的时间段内,异步FIFO的读控制模块可以继续将异步FIFO内未来得及读走的数据读取出来。在一些实施例中,缓存到对应的异步FIFO中的一个有效段的所有有效像素数据,最迟在最接近的下一个消隐段对应的时间段内会被读取完(相当于利用消隐段补偿读写频率偏差),如图2所示的视频帧的数据结构中,缓存到对应的异步FIFO中的有效行Line 0的有效段的所有有效像素数据,最迟在有效行Line 1的消隐段对应的时间段内被读取完;缓存到对应的异步FIFO中的有效行Line 1的有效段的所有有效像素数据,最迟在有效行Line 2的消隐段对应的时间段内被读取完;以此类推,有效行Line n-1的有效段的所有有效像素数据,最迟在下一视频帧的消隐行Blank 0对应的时间段内被读取完。
而当异步FIFO的读速率(读时钟频率)小于写速率(写时钟频率)时,根据前述计算,当异步FIFO的读写速率(读写时钟频率)相对偏差的最大值为δ时,通过一个有效段对应的读写同时进行的时钟周期数(Hactive-T)乘以异步FIFO的读写速率相对偏差的最大值δ,即得到一个有效段对应的读写同时进行的时间内,异步FIFO中由于读写速率偏差累计的数据量(也即写入数据量比读取数据量多出的部分)为(Hactive-T)×δ。该部分数据再加上预存的T个像素数据,即为一个有效段的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中时当前未被读取的该有效段的有效像素数据的最大数量D2=(Hactive-T)×δ+T。
由于在异步FIFO中对视频源进行处理时,视频输入异步FIFO(写入或存入)或者从异步FIFO中输出(读出)都需要满足视频相关协议。当视频源时钟域(异步FIFO的写时钟域)和处理时钟域(异步FIFO的读时钟域)都满足视频协议时,在不影响显示质量的极限情况下会出现δ的读写时钟频率偏差,且如果视频源端不是一个固定设备(如:来自片外),视频源时钟域(异步FIFO的写时钟域)和处理时钟域(异步FIFO的读时钟域)不是固定关系,则处理端(异步FIFO)需要同时考虑视频源时钟域(异步FIFO的写时钟域)频率大于处理时钟域(异步FIFO的读时钟域)频率以及视频源时钟域(异步FIFO的写时钟域)频率小于处理时钟域(异步FIFO的读时钟域)频率这两种情况,如只考虑到一种情况,当另一种情况出现时可能会出现异步FIFO上溢出或下溢出的问题。
所以,在不确定异步FIFO的读速率(读时钟频率)大于还是小于写速率(写时钟频率)的情况下,为了提高上述视频处理方法的适用性,也即为了在一定程度上既能满足异步FIFO的读速率(读时钟频率)大于写速率(写时钟频率)的情况,也能满足异步FIFO的读速率(读时钟频率)小于写速率(写时钟频率)的情况,所以异步FIFO的深度D(第三种深度计算方式)至少为:
D=⌈D1+D2-T⌉;
D2=(Hactive-T)×δ+T;
其中,⌈ ⌉为向上取整符号,D1为预设阈值,D2为一个有效段的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的该有效段的有效像素数据的最大数量,Hactive为每个有效段中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数。
上述第三种深度计算方式,可以理解为,通过在异步FIFO中预存D1个像素数据,在一定程度上可避免异步FIFO的读速率(读时钟频率)大于写速率(写时钟频率)导致的下溢出,而异步FIFO中再另外预留大小为(D2-T)即(Hactive-T)×δ的存储空间,在一定程度上可以避免异步FIFO的读速率(读时钟频率)小于写速率(写时钟频率)导致的上溢出。
也就是说,针对缓存到对应的异步FIFO中的一个有效段的所有有效像素数据,最迟在最接近的下一个消隐段对应的时间段内会被读取完的情况,按照上述第三种深度计算方式设计异步FIFO的深度且通过上述方法来控制异步FIFO的读写操作之后,不论异步FIFO的读速率(读时钟频率)大于还是小于写速率(写时钟频率),在一定程度上可以保证读写数据流畅且连续,同时异步FIFO也不会发生上溢出或下溢出的问题。
在一些实施例中,上述第三种深度计算方式中,预设阈值至少为:D1=⌈(Hactive–T)×δ+T⌉,其计算原理与前述实施例相同,此处不再赘述。
在一些实施例中,缓存到对应的异步FIFO中的一个有效段的所有有效像素数据,在最接近的下一个消隐段对应的时间段内不会被读取完,但是其所在的视频帧缓存到对应的异步FIFO中的所有有效像素数据最迟会在最接近的下一个或多个消隐行对应的时间段内被读取完。
上述缓存到对应的异步FIFO中的一个有效段的所有有效像素数据,在最接近的下一个消隐段对应的时间段内不会被读取完的场景下,第一个有效段的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的该有效段的像素数据的最大数量D2,在最接近的下一个消隐段对应的时间段内会被读取Hblank个数据,则在第二个有效段写入之前,异步FIFO中还剩下第一个有效段的|D2-Hblank|个有效像素数据,第二个有效段的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的该有效段的像素数据的最大数量D2,加上第一个有效段的|D2-Hblank|个有效像素数据,得到第二个有效段的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的像素数据的最大数量为[|D2-Hblank|+D2],同样的,第三个有效段的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的像素数据的最大数量为[|D2-Hblank|×2+D2],以此类推,其所在的视频帧的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的该视频帧的有效像素数据的数量为[|D2-Hblank|×(Vactive-1)+D2],该部分数据最迟会在最接近的下一个或多个消隐行对应的时间段内被读取完。与如图2所示的视频帧数据结构对应的,当一个视频帧的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的该视频帧的有效像素数据会在下一个视频帧的一个或多个消隐行对应的时间段内被读取完。
上述缓存到对应的异步FIFO中的一个有效段的所有有效像素数据,在最接近的下一个消隐段对应的时间段内不会被读取完的场景下,且在不确定异步FIFO的读速率(读时钟频率)大于还是小于写速率(写时钟频率)的情况下,为了提高上述视频处理方法的适用性,也即为了在一定程度上既能满足异步FIFO的读速率(读时钟频率)大于写速率(写时钟频率)的情况,也能满足异步FIFO的读速率(读时钟频率)小于写速率(写时钟频率)的情况,所以异步FIFO的深度D(第四种深度计算方式)至少为:
D=⌈D1+|D2-Hblank|×(Vactive-1)+D2-T⌉;
D2=(Hactive-T)×δ+T;
其中,⌈ ⌉为向上取整符号,| |为取绝对值符号,D1为预设阈值,D2为一个有效段的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的该有效段的有效像素数据的最大数量,Hactive为每个有效段中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数,Hblank为每个消隐段中无效像素数据的数量,Vactive为每个视频帧中有效行的数量。
上述第四种深度计算方式,可以理解为,通过在异步FIFO中预存D1个像素数据,在一定程度上可避免异步FIFO的读速率(读时钟频率)大于写速率(写时钟频率)导致的下溢出,而异步FIFO中再另外预留大小为[|D2-Hblank|×(Vactive-1)+D2-T]的存储空间(该式中减去T是因为最后一个有效段对应的D2中包括了预存的T个像素数据),在一定程度上可以避免异步FIFO的读速率(读时钟频率)小于写速率(写时钟频率)导致的上溢出。
也就是说,针对缓存到对应的异步FIFO中的一个有效段的所有有效像素数据,在最接近的下一个消隐段对应的时间段内不会被读取完,但是其所在的视频帧缓存到对应的异步FIFO中的所有有效像素数据最迟会在最接近的下一个或多个消隐行对应的时间段内被读取完的情况,按照上述第四种深度计算方式设计异步FIFO的深度且通过上述方法来控制异步FIFO的读写操作之后,不论异步FIFO的读速率(读时钟频率)大于还是小于写速率(写时钟频率),在一定程度上可以保证读写数据流畅且连续,同时异步FIFO也不会发生上溢出或下溢出的问题。
在一些实施例中,上述第四种深度计算方式中,预设阈值至少为:D1=⌈(Hactive–T)×δ+T⌉,其计算原理与前述实施例相同,此处不再赘述。
根据上述第三种深度计算方式和第四种深度计算方式,可以看出通过第四种深度计算方式计算得到的异步FIFO深度大于第三种深度计算方式计算得到的异步FIFO深度,所以,为了最大程度地避免异步FIFO上溢出和下溢出的问题,在不确定异步FIFO的读速率(读时钟频率)大于还是小于写速率(写时钟频率)的情况下,可以优先选择第四种深度计算方式来设计异步FIFO。
在一些实施中,在不确定异步FIFO的读速率(读时钟频率)大于还是小于写速率(写时钟频率)的情况下,也可以根据D2与Hblank的大小,来决定使用上述第三种深度计算方式和第四种深度计算方式中的哪一种深度计算方式来设计异步FIFO的深度D,如当D2小于等于Hblank时,说明缓存到对应的异步FIFO中的一个有效段的所有有效像素数据,最迟在最接近的下一个消隐段对应的时间段内会被读取完,则选择第三种深度计算方式来设计异步FIFO的深度D;而当D2大于Hblank时,说明缓存到对应的异步FIFO中的一个有效段的所有有效像素数据,在最接近的下一个消隐段对应的时间段内不会被读取完,则选择第四种深度计算方式来设计异步FIFO的深度D。
需要说明的是,上述提及的异步FIFO的读写速率相对偏差的最大值δ为不影响视频显示效果下的最大允许偏差。
在一些实施例中,根据VESA和CEA标准,允许像素时钟存在±0.5%的读写时钟频率偏差,也即异步FIFO的读写速率(读写时钟频率)相对偏差的最大值δ可以为1%。
在一些实施例中,当异步FIFO进行时钟域转换需要的最少时钟周期数T为3时,以及视频帧对应的参数如表1所示时,此时D2=(Hactive-T)×δ+T=(4096-3)×1%+3≈44,此时D2明显小于Hblank(大小为304),所以此时可以使用上述的第三种深度计算方式来设计异步FIFO的深度D。
在一些实施例中,由于随着视频源的分辨率的提升,每个消隐段中无效像素数据的数量(行消隐)Hblank也呈现变大的趋势。所以当视频源的分辨率达到一定阈值时,都可以使用上述的第三种深度计算方式来设计异步FIFO的深度D。
在一些实施例中,步骤S130,包括以下步骤:
当有视频帧缓存到对应的异步FIFO中的有效像素数据的数量达到预设阈值时,开始将该异像素数据读取出来进行打包,并将打包后的数据通过显示接口传输至显示设备。
其中,上述打包是指将有效像素数据与消隐段或消隐行对应的时间段内传输的辅助数据(如音频数据)进行打包,打包之后,将打包后的数据通过显示接口传输至显示设备。
显示接口包括高清多媒体接口(High Definition MulTImedia Interface,HDMI)或一般的显示接口(DisplayPort,DP)等。
基于相同的发明构思,本公开实施例还提供一种视频处理装置,包括至少一个上述任一实施例异步FIFO以及异步FIFO对应的写控制模块和读控制模块;
写控制模块,被配置为将每个视频帧的各个像素数据逐个缓存到每个视频帧对应的异步FIFO中,以对每个视频帧的像素数据进行时钟域转换;
读控制模块,被配置为当有视频帧缓存到对应的异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备。
在一些实施例中,上述视频处理装置中,每个视频帧包括多个有效行和多个消隐行,每个有效行包括有效段和消隐段,有效段包括多个有效像素数据,消隐段包括多个无效像素数据;
写控制模块,被配置为将每个视频帧的像素数据逐个缓存到每个视频帧对应的异步FIFO中,包括:
写控制模块,被配置为将每个视频帧的有效像素数据逐个缓存到每个视频帧对应的异步FIFO中;其中,异步FIFO不缓存对应的视频帧的无效像素数据。
在一些实施例中,上述视频处理装置中,预设阈值D1至少为:
D1=⌈(Hactive–T)×δ+T⌉;
其中,⌈ ⌉为向上取整符号,Hactive为每个有效行中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数。
在一些实施例中,上述视频处理装置中,读控制模块,被配置为当有视频帧缓存到对应的异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备,包括:
读控制模块,被配置为当有视频帧的一个有效段缓存到对应的异步FIFO中的有效像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该有效段的有效像素数据读取至显示设备。
在一些实施例中,上述视频处理装置中,当异步FIFO的读速率大于等于写速率时,异步FIFO的深度D至少为D1。
在一些实施例中,上述视频处理装置中,当异步FIFO的读速率小于写速率时,预设阈值D1为T,异步FIFO的深度D至少为:
D=⌈(Hactive-T)×δ+T⌉;
其中,⌈ ⌉为向上取整符号,Hactive为每个有效行中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数。
在一些实施例中,上述视频处理装置中,异步FIFO的深度D至少为:
D=⌈D1+D2+|D2-Hblank|×(Vactive-1)-T⌉;
D2=(Hactive-T)×δ+T;
其中,⌈ ⌉为向上取整符号,| |为取绝对值符号,D1为预设阈值,D2为一个有效段的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的该有效段的有效像素数据的最大数量,Hactive为每个有效段中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数,Hblank为每个消隐段中无效像素数据的数量,Vactive为每个视频帧中有效行的数量。
在一些实施例中,上述视频处理装置中,缓存到对应的异步FIFO中的一个有效段的所有有效像素数据,最迟在最接近的下一个消隐段对应的时间段内会被读取完;
异步FIFO的深度D至少为:
D=⌈D1+D2-T⌉;
D2=(Hactive-T)×δ+T;
其中,⌈ ⌉为向上取整符号,D1为预设阈值,D2为一个有效段的所有有效像素数据均缓存到对应的异步FIFO时该异步FIFO中当前未被读取的该有效段的有效像素数据的最大数量,Hactive为每个有效段中有效像素数据的数量,δ为异步FIFO的读写速率相对偏差的最大值,T为异步FIFO进行时钟域转换需要的最少时钟周期数。
在一些使用场景下,该视频处理装置的产品形式体现为显示接口芯片,包括HDMI发送芯片、DP发送芯片等。
基于相同的发明构思,本公开实施例还提供一种电子组件,该电子组件包括上述任一实施例中的视频处理装置。在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
基于相同的发明构思,本公开实施例还提供一种电子设备,该电子设备包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
Claims (20)
1.一种视频处理方法,其中,包括;
接收视频源数据;其中,所述视频源数据包括多个视频帧的像素数据;
将每个视频帧的像素数据逐个缓存到每个视频帧对应的异步FIFO中,以对每个视频帧的像素数据进行时钟域转换;
当有视频帧缓存到对应的所述异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备;
其中,所述异步FIFO的深度大于等于所述预设阈值。
2.根据权利要求1所述的视频处理方法,其中,每个视频帧包括多个有效行和多个消隐行,每个有效行包括有效段和消隐段,所述有效段包括多个有效像素数据,所述消隐段包括多个无效像素数据;
将每个视频帧的像素数据逐个缓存到每个视频帧对应的异步FIFO中,包括以下步骤:
将每个视频帧的有效像素数据逐个缓存到每个视频帧对应的异步FIFO中;其中,所述异步FIFO不缓存对应的视频帧的无效像素数据。
3.根据权利要求2所述的视频处理方法,其中,所述预设阈值D1至少为:
D1=⌈(Hactive–T)×δ+T⌉
其中,⌈ ⌉为向上取整符号,Hactive为每个有效行中有效像素数据的数量,δ为所述异步FIFO的读写速率相对偏差的最大值,T为所述异步FIFO进行时钟域转换需要的最少时钟周期数。
4.根据权利要求2所述的视频处理方法,其中,当有视频帧缓存到对应的所述异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备,包括以下步骤:
当有视频帧的一个有效段缓存到对应的异步FIFO中的有效像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该有效段的有效像素数据读取至显示设备。
5.根据权利要求2所述的视频处理方法,其中,当所述异步FIFO的读速率大于等于写速率时,所述异步FIFO的深度D至少为所述预设阈值。
6.根据权利要求2所述的视频处理方法,其中,当所述异步FIFO的读速率小于写速率时,所述预设阈值D1为T,所述异步FIFO的深度D至少为:
D=⌈(Hactive-T)×δ+T⌉;
其中,⌈ ⌉为向上取整符号,Hactive为每个有效行中有效像素数据的数量,δ为所述异步FIFO的读写速率相对偏差的最大值,T为所述异步FIFO进行时钟域转换需要的最少时钟周期数。
7.根据权利要求2所述的视频处理方法,其中,所述异步FIFO的深度D至少为:
D=⌈D1+|D2-Hblank|×(Vactive-1)+D2-T⌉;
D2=(Hactive-T)×δ+T;
其中,⌈ ⌉为向上取整符号,| |为取绝对值符号,D1为所述预设阈值,D2为一个有效段的所有有效像素数据均缓存到对应的所述异步FIFO时该异步FIFO中当前未被读取的该有效段的有效像素数据的最大数量,Hactive为每个有效段中有效像素数据的数量,δ为所述异步FIFO的读写速率相对偏差的最大值,T为所述异步FIFO进行时钟域转换需要的最少时钟周期数,Hblank为每个消隐段中无效像素数据的数量,Vactive为每个视频帧中有效行的数量。
8.根据权利要求2所述的视频处理方法,其中,缓存到对应的所述异步FIFO中的一个有效段的所有有效像素数据,最迟在最接近的下一个消隐段对应的时间段内会被读取完;所述异步FIFO的深度D至少为:
D=⌈D1+D2-T⌉;
D2=(Hactive-T)×δ+T;
其中,⌈ ⌉为向上取整符号,D1为所述预设阈值,D2为一个有效段的所有有效像素数据均缓存到对应的所述异步FIFO时该异步FIFO中当前未被读取的该有效段的有效像素数据的最大数量,Hactive为每个有效段中有效像素数据的数量,δ为所述异步FIFO的读写速率相对偏差的最大值,T为所述异步FIFO进行时钟域转换需要的最少时钟周期数。
9.根据权利要求2所述的视频处理方法,其中,所述视频源数据还包括各个视频帧的像素数据对应的数据有效信号,所述数据有效信号包括高电平或低电平,分别指示对应的像素数据为有效或无效;
将每个视频帧的各个像素数据逐个缓存到每个视频帧对应的异步FIFO中,包括以下步骤:
在将每个像素数据缓存到对应的异步FIFO之前,判断每个像素数据对应的数据有效信号;
当像素数据对应的数据有效信号为高电平时,将该像素数据缓存到对应的所述异步FIFO中;
当像素数据对应的数据有效信号为低电平时,停止将该像素数据缓存到对应的所述异步FIFO中。
10.根据权利要求2所述的视频处理方法,其中,当有视频帧缓存到对应的所述异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备,包括以下步骤:
当有视频帧缓存到对应的异步FIFO中的有效像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的有效像素数据读取出来进行打包,并将打包后的数据通过显示接口传输至显示设备。
11.一种视频处理装置,其中,包括至少一个异步FIFO以及所述异步FIFO对应的写控制模块和读控制模块;
所述写控制模块,被配置为将每个视频帧的各个像素数据逐个缓存到每个视频帧对应的所述异步FIFO中,以对每个视频帧的像素数据进行时钟域转换;
所述读控制模块,被配置为当有视频帧缓存到对应的所述异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备。
12.根据权利要求11所述的视频处理装置,其中,每个视频帧包括多个有效行和多个消隐行,每个有效行包括有效段和消隐段,所述有效段包括多个有效像素数据,所述消隐段包括多个无效像素数据;
所述写控制模块,被配置为将每个视频帧的像素数据逐个缓存到每个视频帧对应的所述异步FIFO中,包括:
所述写控制模块,被配置为将每个视频帧的有效像素数据逐个缓存到每个视频帧对应的所述异步FIFO中;其中,所述异步FIFO不缓存对应的视频帧的无效像素数据。
13.根据权利要求12所述的视频处理装置,其中,所述预设阈值D1至少为:
D1=⌈(Hactive–T)×δ+T⌉;
其中,⌈ ⌉为向上取整符号,Hactive为每个有效行中有效像素数据的数量,δ为所述异步FIFO的读写速率相对偏差的最大值,T为所述异步FIFO进行时钟域转换需要的最少时钟周期数。
14.根据权利要求12所述的视频处理装置,其中,所述读控制模块,被配置为当有视频帧缓存到对应的所述异步FIFO中的像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该视频帧的像素数据读取至显示设备,包括:
所述读控制模块,被配置为当有视频帧的一个有效段缓存到对应的异步FIFO中的有效像素数据的数量达到预设阈值时,开始将该异步FIFO中缓存的该有效段的有效像素数据读取至显示设备。
15.根据权利要求12所述的视频处理装置,其中,当所述异步FIFO的读速率大于等于写速率时,所述异步FIFO的深度D至少为D1。
16.根据权利要求12所述的视频处理装置,其中,当所述异步FIFO的读速率小于写速率时,所述预设阈值D1为T,所述异步FIFO的深度D至少为:
D=⌈(Hactive-T)×δ+T⌉;
其中,⌈ ⌉为向上取整符号,Hactive为每个有效行中有效像素数据的数量,δ为所述异步FIFO的读写速率相对偏差的最大值,T为所述异步FIFO进行时钟域转换需要的最少时钟周期数。
17.根据权利要求12所述的视频处理装置,其中,所述异步FIFO的深度D至少为:
D=⌈D1 +|D2-Hblank|×(Vactive-1) +D2-T⌉;
D2=(Hactive-T)×δ+T;
其中,⌈ ⌉为向上取整符号,| |为取绝对值符号,D1为所述预设阈值,D2为一个有效段的所有有效像素数据均缓存到对应的所述异步FIFO时该异步FIFO中当前未被读取的该有效段的有效像素数据的最大数量,Hactive为每个有效段中有效像素数据的数量,δ为所述异步FIFO的读写速率相对偏差的最大值,T为所述异步FIFO进行时钟域转换需要的最少时钟周期数,Hblank为每个消隐段中无效像素数据的数量,Vactive为每个视频帧中有效行的数量。
18.根据权利要求12所述的视频处理装置,其中,缓存到对应的所述异步FIFO中的一个有效段的所有有效像素数据,最迟在最接近的下一个消隐段对应的时间段内会被读取完;
所述异步FIFO的深度D至少为:
D=⌈D1+D2-T⌉;
D2=(Hactive-T)×δ+T;
其中,⌈ ⌉为向上取整符号,D1为所述预设阈值,D2为一个有效段的所有有效像素数据均缓存到对应的所述异步FIFO时该异步FIFO中当前未被读取的该有效段的有效像素数据的最大数量,Hactive为每个有效段中有效像素数据的数量,δ为所述异步FIFO的读写速率相对偏差的最大值,T为所述异步FIFO进行时钟域转换需要的最少时钟周期数。
19.一种电子组件,其中,包括权利要求11至18中任意一项所述的视频处理装置。
20.一种电子设备,其中,包括权利要求19所述的电子组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310014865.2A CN115756382B (zh) | 2023-01-06 | 2023-01-06 | 视频处理方法、装置、电子组件及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310014865.2A CN115756382B (zh) | 2023-01-06 | 2023-01-06 | 视频处理方法、装置、电子组件及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115756382A true CN115756382A (zh) | 2023-03-07 |
CN115756382B CN115756382B (zh) | 2023-04-18 |
Family
ID=85348241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310014865.2A Active CN115756382B (zh) | 2023-01-06 | 2023-01-06 | 视频处理方法、装置、电子组件及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115756382B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904307A (zh) * | 2023-03-08 | 2023-04-04 | 鹏城实验室 | 一种数据缓存器溢出处理方法及通信系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120151537A1 (en) * | 2010-12-14 | 2012-06-14 | Samsung Electronics Co., Ltd. | Method and system for asynchronous and isochronous data transmission in a high speed video network |
CN104125424A (zh) * | 2014-08-06 | 2014-10-29 | 中航华东光电(上海)有限公司 | 一种基于fpga的高速、可变帧视频显存设计方法 |
CN108574814A (zh) * | 2017-03-08 | 2018-09-25 | 杭州海康威视数字技术股份有限公司 | 数据处理方法及装置 |
CN112463110A (zh) * | 2020-12-10 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 异步fifo的空满工作状态识别方法、装置及可读存储介质 |
CN112905150A (zh) * | 2021-02-18 | 2021-06-04 | 袁本翔 | 一种基于异步fifo芯片的处理电路及可重构工作方法 |
CN115309676A (zh) * | 2022-10-12 | 2022-11-08 | 浪潮电子信息产业股份有限公司 | 一种异步fifo读写控制方法、系统及电子设备 |
-
2023
- 2023-01-06 CN CN202310014865.2A patent/CN115756382B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120151537A1 (en) * | 2010-12-14 | 2012-06-14 | Samsung Electronics Co., Ltd. | Method and system for asynchronous and isochronous data transmission in a high speed video network |
CN104125424A (zh) * | 2014-08-06 | 2014-10-29 | 中航华东光电(上海)有限公司 | 一种基于fpga的高速、可变帧视频显存设计方法 |
CN108574814A (zh) * | 2017-03-08 | 2018-09-25 | 杭州海康威视数字技术股份有限公司 | 数据处理方法及装置 |
CN112463110A (zh) * | 2020-12-10 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 异步fifo的空满工作状态识别方法、装置及可读存储介质 |
CN112905150A (zh) * | 2021-02-18 | 2021-06-04 | 袁本翔 | 一种基于异步fifo芯片的处理电路及可重构工作方法 |
CN115309676A (zh) * | 2022-10-12 | 2022-11-08 | 浪潮电子信息产业股份有限公司 | 一种异步fifo读写控制方法、系统及电子设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904307A (zh) * | 2023-03-08 | 2023-04-04 | 鹏城实验室 | 一种数据缓存器溢出处理方法及通信系统 |
CN115904307B (zh) * | 2023-03-08 | 2023-06-06 | 鹏城实验室 | 一种数据缓存器溢出处理方法及通信系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115756382B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5755333B2 (ja) | 表示動作を制御する技術 | |
US20060145941A1 (en) | Display system and host device for outputing image signal and method therefor | |
CN115756382B (zh) | 视频处理方法、装置、电子组件及电子设备 | |
EP2785053B1 (en) | Transmission device and reception device for baseband video data, and transmission/reception system | |
JPH0827705B2 (ja) | アダプタ | |
US20120147976A1 (en) | Video Transmission On A Serial Interface | |
CN109509424B (zh) | 显示驱动装置、其控制方法及显示装置 | |
EP3876222A1 (en) | Dynamic frame rate mechanism for display device | |
CN115151969A (zh) | 用以补偿被延迟的图形处理单元渲染时间的被减少的显示处理单元传送时间 | |
CN111327789B (zh) | 一种显示信号同步转换装置 | |
CN115103208A (zh) | 一种视频数据的行缓存方法、行读取方法及处理系统 | |
US6948022B2 (en) | Digital image transfer controller | |
JP2006301724A (ja) | メモリコントローラ、画像処理コントローラ及び電子機器 | |
KR100824016B1 (ko) | 비동기 양안 카메라에서 생성되는 출력 데이터의 동기화를수행하는 시스템, 방법 및 기록 매체 | |
JP2008160804A (ja) | データ転送装置及び転送制御方法 | |
JP2001255860A (ja) | 映像データ転送装置及び映像データの転送方法 | |
US9070198B2 (en) | Methods and systems to reduce display artifacts when changing display clock rate | |
JP6500199B2 (ja) | 画像処理装置、および画像処理システム | |
CN115273748A (zh) | 显示模组、显示系统、显示驱动器、显示方法和电子设备 | |
CN114902173A (zh) | 软件vsync过滤 | |
US20120140118A1 (en) | Image output device and image synthesizing method | |
CN111399790A (zh) | 一种画面共享系统及其实现方法 | |
US20090131176A1 (en) | Game processing device | |
JP2006229431A (ja) | 映像信号伝送方法及び映像信号伝送装置 | |
CN116614651A (zh) | 一种图像数据接口的输入处理方法及电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240115 Address after: 401135 No. 618 Liangjiang Avenue, Longxing Town, Yubei District, Chongqing Patentee after: Xiangdixian Computing Technology (Chongqing) Co.,Ltd. Address before: Room 901, 901, floor 9 (09), building 1, yard 5, Anding Road, Chaoyang District, Beijing 100029 Patentee before: Beijing xiangdixian Computing Technology Co.,Ltd. |
|
TR01 | Transfer of patent right |