CN112511861B - 一种低延时视频传输方法及其系统、储存介质 - Google Patents

一种低延时视频传输方法及其系统、储存介质 Download PDF

Info

Publication number
CN112511861B
CN112511861B CN202011412867.XA CN202011412867A CN112511861B CN 112511861 B CN112511861 B CN 112511861B CN 202011412867 A CN202011412867 A CN 202011412867A CN 112511861 B CN112511861 B CN 112511861B
Authority
CN
China
Prior art keywords
read
write
pointer
frame
data
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.)
Active
Application number
CN202011412867.XA
Other languages
English (en)
Other versions
CN112511861A (zh
Inventor
胡波
卢伟军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vtron Group Co Ltd
Original Assignee
Vtron Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vtron Group Co Ltd filed Critical Vtron Group Co Ltd
Priority to CN202011412867.XA priority Critical patent/CN112511861B/zh
Priority to PCT/CN2020/141937 priority patent/WO2022116353A1/zh
Publication of CN112511861A publication Critical patent/CN112511861A/zh
Application granted granted Critical
Publication of CN112511861B publication Critical patent/CN112511861B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Systems (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本发明涉及视频传输领域,提供一种低延时视频传输方法及其系统、储存介质,所述方法为:判断输出帧率和输入帧率是否一致,若输出帧率和输入帧率一致,则采用一帧或一帧以上的缓存空间进行读写操作;若输出帧率和输入帧率不一致,采用两帧的缓存空间进行第一类读写操作;所述第一类读写操作具体为:读指针和写指针在两个帧存上交替移动,移动过程中判断是否会出现访问冲突,根据判断结果分配读指针进行读操作的帧存和写指针进行写操作的帧存。本发明可降低视频传输的延时,并且保证每帧画面的完整性,提高视频传输效率的同时保证传输质量。

Description

一种低延时视频传输方法及其系统、储存介质
技术领域
本发明涉及视频传输领域,更具体地,涉及一种低延时视频传输方法及其系统、储存介质。
背景技术
随着视频处理技术的发展,在视频处理领域为方便视频传输设备之间的同步传输,而需要用缓存技术,但是目前为了保证每帧图像输出的完整性采用多帧(N)缓存进行处理,读写异步钟下,当读取比写入快时,延时为一帧;当读取比写入慢时,延时为N帧。在一些延时要求比较高的场合下满足不了应用需求,而如果采用专有低延时处理芯片处理则会增加产品成本。
缓存空间作为视频传输过程的介质,输入端向缓存空间不断写入一帧帧的画面数据,输出端从缓存空间读取所述画面数据并将画面一帧帧地播放,但缓存空间可容量的数据是有限的,避免不了重复使用其中的帧存,因此在视频传输过程中需要使用读指针和写指针分别引导读操作和写操作在有限的缓存空间的协调进行。
发明内容
本发明旨在克服上述现有技术的至少一种缺陷(不足),提供一种低延时视频传输方法及其系统、储存介质。
本发明的方法:判断输出帧率和输入帧率是否一致,若输出帧率和输入帧率一致,则采用一帧或一帧以上的缓存空间进行读写操作;若输出帧率和输入帧率不一致,采用两帧的缓存空间进行第一类读写操作;所述第一类读写操作具体为:读指针和写指针在两个帧存上交替移动,移动过程中判断是否会出现访问冲突,根据判断结果分配读指针进行读操作的帧存和写指针进行写操作的帧存。在输入帧率和输出帧率不一致时,使用两帧的缓存空间进行读写,读取的帧是正在写入的帧或者正在写入的帧的上一帧,最大延时不超过一帧。为了保证一帧画面的完整性,避免出现因读写效率不平衡导致的在一帧内超前读取或覆盖写入,控制引导写操作(写入)的写指针和引导读操作(读取)的读指针指向两帧缓存空间的同一帧存或不同帧存,从而引导写操作和读操作有序进行。
进一步地,所述移动过程中判断访问是否冲突,根据判断结果分配读指针进行读操作的帧存和写指针进行写操作的帧存的步骤具体为:读/写指针在跳转不同帧存时,若即将跳转的帧存上没有写/读指针,读/写指针进行正常跳转,在跳转的帧存上进行读/写操作;若即将跳转的帧存上有写/读指针,进行第二判断操作;所述第二判断操作具体为:预先设置安全相对位置值;计算读指针和写指针的相对位置值,若读指针和写指针的相对位置值大于或等于所述安全相对位置值,读/写指针进行正常跳转,在跳转的帧存上进行读/写操作;若读指针和写指针的相对位置值小于所述安全相对位置值,读/写指针不进行跳转,在原帧存上进行读/写操作。访问冲突指读取一帧画面时中途被写操作改写了一部分数据或写入一帧画面时读操作读取了未更新的数据,读速率和写速率在传输过程中不断地进行实时变化,在读指针或者写指针每次跳转都进行判断操作,使二者始终保持大于或等于安全相对位置值的距离,避免出现访问冲突造成的图像分裂现象。
进一步地,所述安全相对位置值根据读、写操作的速率差值进行计算确定。在读速率和写速率相近时,安全相对位置值与延时正相关,安全相对位置值越小,延时越小,可通过改变安全相对位置值控制延时,适应不同的传输情景,具有灵活性。
在输出帧率和输入帧率一致时,则采用一帧或一帧以上的缓存空间进行第二类读写操作;所述第二类读写操作具体为:进行写操作;当完成若干量数据的写入后,开始读操作;实时对比读操作的速率和写操作的速率,若前者比后者大,降低读指针的时钟频率;若前者比后者小,提高读指针的时钟频率;完成一个帧存的读操作后读指针跳转至写指针当前所在的帧存。在输出帧率和输入帧率一致时,第二类读写操作中写操作正常进行,不需进行判断操作或更改写指针的时钟频率,读写指针在传输过程中大部分处于同一帧存内,读操作尾随写操作,延时保持在一帧以内,其与所述若干量数据的大小正相关。
进一步地,所述若干量数据根据读操作速率和写操作速率的差值进行计算确定。
或者,在输出帧率和输入帧率一致时也可采用一帧的缓存空间进行第三类读写操作;所述第三类读写操作具体为:在一个帧存上的初始行开始写操作,写入L行的数据后开始读操作;其中,L为整数,并且是预设值;每完成一帧数据的写操作,计算当前写入一行数据需要的时间和完成读取一行数据需要的时间,并对二者进行比较,若前者比后者大,在初始行开始进行新一帧数据的写操作;若前者比后者小,在原行进行重复写入的写操作,完成重复写入原行数据后,在初始行开始新一帧数据的写操作;每完成一帧数据的读操作,计算当前写入一行数据需要的时间和完成读取一行数据需要的时间,并对二者进行比较,若前者比后者大,在原行进行读操作,对原行的数据进行重新读取,完成原行的数据重新读取后,在初始行进行新一帧数据的读操作;若前者比后者小,在初始行进行新一帧数据的读操作。此方案应用在需要超低延时的视频传输情景中,每完成一帧数据的写入,以完成一行数据量的写操作时间和完成一行数据量的读操作时间作为判断依据,判断在所述一个帧存的初始行开始新一帧的写入是否会覆盖仍未读取的数据,即是否会出现访问冲突的现象,是则在原行上开始新一帧的写入,完成原行的写入后写指针再跳转至初始行,在初始行以及帧存上的其他行进行写操作;读操作同理,判断在所述一个帧存的初始行进行读取是否会读取到写操作未写入的新一帧数据,即是否会出现另一种访问冲突的现象,是则先重复读取原行的数据,待不会出现访问冲突的现象,读指针再跳转至初始行,再读取已经写入的新一帧的数据。上述过程可使读写指针保持小于一帧的若干行数据量的超低延时,读写指针可在同一帧存内相对位置较近亦不会出现访问冲突的情况。
进一步地,所述L根据读操作速率和写操作速率的差值进行计算确定。
本发明的系统包括:判断模块,用于进行判断输出帧率和输入帧率是否一致及是否会出现访问冲突;控制模块,用于控制读操作和写操作的进行;缓存模块,用于进行读操作和写操作;若判断模块判断输出帧率和输入帧率一致,控制模块控制在缓存模块上进行读写操作,缓存模块启用一帧或一帧以上的缓存空间;若判断模块判断输出帧率和输入帧率不一致,控制模块控制在缓存模块上进行第一类读写操作,缓存模块启用两帧的缓存空间;所述第一类读写操作具体为:所述控制模块控制读指针和写指针在缓存模块的两个帧存上交替移动,读指针和写指针的移动过程中判断模块判断是否会出现访问冲突,控制模块根据判断结果分配读指针进行读操作的帧存和写指针进行写操作的帧存。
进一步地,判断模块通过读指针和写指针的相对位置进行判断是否会出现访问冲突,具体如下:若读/写指针即将跳转的帧存上没有写/读指针,判断模块的判断结果为不冲突;若读/写指针即将跳转的帧存上有写/读指针,判断模块进行第二判断操作:计算读指针和写指针的相对位置值,并比较所述相对位置值与预设的安全相对位置值作比较,若前者大于后者,判断模块的判断结果为不冲突;若前者小于后者,判断模块的判断结果为冲突;若判断结果为不冲突,控制模块控制读/写指针正常跳转,在跳转的帧存上进行读/写操作;若判断结果为冲突,控制模块控制读/写指针不进行跳转,在原帧存上重新进行读/写操作。
与现有技术相比,本发明的有益效果为:根据输入和输出的情况,自适应视频处理方式,达到最大不超过一帧的低延时,并且保证每帧画面的完整性,提高视频传输效率的同时保证传输质量。
附图说明
图1为本发明的第一类读写操作步骤图。
图2为本发明的第一类和第二类读写操作步骤图。
图3为本发明的第一类和第三类读写操作之写操作步骤图。
图4为本发明的第一类和第三类读写操作之读操作步骤图。
图5为本发明的系统结构图。
附图标记:判断模块1;控制模块2;缓存模块3;
具体实施方式
本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
实施例1
本实施例提供一种低延时视频传输方法,包括步骤:判断输出帧率和输入帧率是否一致,若输出帧率和输入帧率一致,则采用一帧或一帧以上的缓存空间进行读写操作;若输出帧率和输入帧率不一致,采用两帧的缓存空间进行第一类读写操作;所述第一类读写操作具体为:读指针和写指针在两个帧存上交替移动,移动过程中判断是否会出现访问冲突,根据判断结果分配读指针进行读操作的帧存和写指针进行写操作的帧存。
进一步地,所述移动过程中判断访问是否冲突,根据判断结果分配读指针进行读操作的帧存和写指针进行写操作的帧存的步骤具体为:读/写指针在跳转不同帧存时,若即将跳转的帧存上没有写/读指针,读/写指针进行正常跳转,在跳转的帧存上进行读/写操作;若即将跳转的帧存上有写/读指针,进行第二判断操作;所述第二判断操作具体为:
预先设置安全相对位置值;计算读指针和写指针的相对位置值,若读指针和写指针的相对位置值大于或等于所述安全相对位置值,读/写指针进行正常跳转,在跳转的帧存上进行读/写操作;若读指针和写指针的相对位置值小于所述安全相对位置值,读/写指针不进行跳转,在原帧存上进行读/写操作。进一步地,所述安全相对位置值根据读、写操作的速率差值进行计算确定。在读写速率波动较大的情况下,可适当增大安全相对位置值,有效避免图像分裂。
如图1所示,本实施例最优的实施方式如下:
S1:判断输出帧率和输入帧率是否一致;若输出帧率和输入帧率一致,进行S2;若输出帧率和输入帧率不一致,进行S3;
S2:采用一帧或一帧以上的缓存空间进行读写操作,所述读写操作不作限制,可为本领域技术人员熟知的普通读写过程;
S3:采用两帧的缓存空间进行第一类读写操作,具体为:
S31:读指针和写指针分居在两个帧存上,读操作和写操作在不同的帧存上进行;
S32:每完成了一帧的读/写操作后,对读/写指针即将跳转的帧存上是否存在写/读指针进行判断;若即将跳转的帧存上没有写/读指针,进行S32a;若即将跳转的帧存上有写/读指针,进行S32b;
S32a:读/写指针进行正常跳转;
S32b:进行第二判断操作:具体为:
S321:设置安全相对位置值;在其他实施例中,所述安全相对位置值可预先进行设置,从而跳过S321;
S322:计算读指针和写指针的相对位置值,并对比所述相对位置值和所述安全相对位置值,若相对位置值大于或等于安全相对位置值,进行S322a;若相对位置值小于安全相对位置值,进行S322b;
S322a:读/写指针进行正常跳转;
S322b:读/写指针不进行跳转。
实际传输情景中,读写速率往往在不断波动且互不相等,收到多方面因素的干扰,为了保证一帧画面的完整性,避免出现因读写效率不平衡导致的在一帧内超前读取或覆盖写入,控制引导写操作(写入)的写指针和引导读操作(读取)的读指针指向两帧缓存空间的同一帧存或不同帧存,从而引导写操作和读操作有序进行。所述超前读取具体为:显示一帧画面时,读取的速率较写入的速率快,读指针超越了写指针,指向了写指针未更新的缓存空间,读取了一部分旧帧的数据,导致显示的画面混杂了不同帧的图像或渲染效果,造成图像分裂。同理,所述覆盖写入具体为:写入的速率较读取的速率快,写指针完成了一帧的写入,跳转至读指针所在的帧存上开始新一帧的写入,当它在一帧内超越了读指针在读指针未读取到缓存空间写入了新一帧数据,覆盖了读指针本应读取但仍未读取的数据,读指针后续读取的数据不属于原帧,亦会出现同一帧画面出现图像分裂。
读指针和写指针的相对位置值可以用二者在缓存空间上指向的行的差值,也可以用已读取数据量和已写入数据量的差值,反映读操作和写操作进度差异的参考量均可作为相对位置值。安全相对位置值预先进行设置,可以根据传输要求和平均读写速率进行确定,具有灵活性。当读指针不进行跳转时,相当于重新读取了刚读取的一帧画面;写指针不进行跳转时,相当于将未读取的一帧画面覆盖掉,写入最新一帧画面。可以看出,上述指针不进行跳转的情况会造成丢失帧的现象,现有技术亦存在此问题,但一般传输情景中,读写速率不会相差2倍以上,本实施例的方法可使读写指针稳定保持在安全相对位置值的距离,丢失的帧数不影响输出端的视频播放效果,对画面连续性的影响较小。
实施例2
本实施例相比于实施例1的区别在于,进一步改良了输出帧率和输入帧率一致时的传输方法,使用第二类读写操作,包括步骤:进行写操作;当完成若干量数据的写入后,开始读操作其中,所述若干量数据可以以行作单位或以字节作单位,本实施例将若干量数据设为K行,K可以不为整数;实时对比读操作的速率和写操作的速率,若前者比后者大,降低读指针的时钟频率;若前者比后者小,提高读指针的时钟频率;完成一个帧存的读操作后读指针跳转至写指针当前所在的帧存。在输出帧率和输入帧率一致时,读指针保持在写指针之后,读写指针在传输过程中大部分处于同一帧存内,读操作尾随写操作,保持在以行为单位的延时,其与所述K的数值正相关,可通过调节K值适应不同延时要求的传输环境。
如图2所示,本实施例所述的一种低延时视频传输方法最优实施方式如下:
A1:判断输出帧率和输入帧率是否一致;若输出帧率和输入帧率一致,进行A2;若输出帧率和输入帧率一致,进行A3;
A2:采用两帧或两帧以上的缓存空间进行第二类读写操作,具体为:
A21:在一个帧存上开始写操作,写入K行后开始读操作;
A22:实时对比读操作的速率和写操作的速率;若读操作的速率比写操作的速率大,进行A22a;若读操作的速率比写操作的速率小,进行A32b;若读操作的速率等于写操作的速率,进行A22a或A32b均可,不作限制;
A22a:降低读指针的时钟频率;完成一个帧存的写操作后写指针跳转至下一个帧存;完成一个帧存的读操作后读指针跳转至写指针当前所在的帧存;
A22b:提高读指针的时钟频率;完成一个帧存的写操作后写指针跳转至下一个帧存;完成一个帧存的读操作后读指针跳转至写指针当前所在的帧存;
A3:采用两帧的缓存空间进行第一类读写操作,具体为:
A31:读指针和写指针分居在两个帧存上,读操作和写操作在不同的帧存上进行;
A32:每完成了一帧的读/写操作后,对读/写指针即将跳转的帧存上是否存在写/读指针进行判断;若即将跳转的帧存上没有写/读指针,进行A32a;若即将跳转的帧存上有写/读指针,进行A32b;
A32a:读/写指针进行正常跳转;
A32b:进行第二判断操作:具体为:
A321:设置安全相对位置值;在其他实施例中,所述安全相对位置值可预先进行设置,从而跳过A321;
A322:计算读指针和写指针的相对位置值,并对比所述相对位置值和所述安全相对位置值,若相对位置值大于或等于安全相对位置值,进行A322a;若相对位置值小于安全相对位置值,进行A322b;
A322a:读/写指针进行正常跳转;
A322b:读/写指针不进行跳转。
无论输出帧率和输入帧率是否一致,上述的处理过程都控制延时等于或小于一帧,同时保证每一帧画面的完整性。需要说明的是,本实施例在输出帧率和输入帧率一致的情况下使用了两帧或两帧以上的缓存空间进行读写操作,在其他实施例的相同情况中亦可使用一帧的缓存空间,重复在一个帧存上写入多帧数据,写指针循环跳转;读指针尾随写指针,完成一帧数据的读取后,读指针跳转,指向仅有的一个帧存上已经写入新一帧数据的行,读取新一帧的数据。
实施例3
本实施例与实施例2的区别在于,当输出帧率和输入帧率一致时,采用一帧的缓存空间进行第三类读写操作。所述第三类读写操作具体为:
在一个帧存上的初始行开始写操作,写入L行的数据后开始读操作;其中,L为整数,并且是预设值;每完成一帧数据的写操作,计算当前写入一行数据需要的时间和完成读取一行数据需要的时间,并对二者进行比较,若前者比后者大,在初始行开始进行新一帧数据的写操作;若前者比后者小,在原行进行重复写入的写操作;每完成一帧数据的读操作,计算当前写入一行数据需要的时间和完成读取一行数据需要的时间,并对二者进行比较,若前者比后者大,在原行进行读操作,对原行的数据进行重新读取,完成原行的数据重新读取后,在初始行进行新一帧数据的读操作;若前者比后者小,在初始行进行新一帧数据的读操作。所述L根据读操作速率和写操作速率的差值进行计算确定。
在第三类读写操作中,读指针和写指针的跳转方式有差异,同时发生在整个传输过程中,故对写操作和读操作进行分别论述。如图3所示,写操作的最优实施方式为:
B1:在缓存空间的一帧存上写入L行数据;其中,未完成L行数据的写入前,写指针跳转前无需进行判断,正常跳转;其中L为整数,并且是预设值;
B2:完成L行数据的写入后,写操作每完成一帧数据的写入,在写指针即将跳转至下一行时,计算当前写入一行数据需要的时间和完成读取一行数据需要的时间,并对二者进行比较,若前者比后者大,进行B2a;若前者比后者小,进行B2b;
B2a:写指针正常跳转,在初始行开始新一帧数据的写操作;
B2b:写指针不进行跳转,在原行进行原帧数据的重复写入,完成后写指针跳转至初始行,在初始行开始新一帧数据的写入。
其中,当前写入一行数据需要的时间和完成读取一行数据需要的时间时,可任意进行B2a或B2b。
如图4所示,读操作的最优实施方式为:
C1:待写操作完成L行数据的写入后,开始读操作,读指针指向写指针所在的帧存,对已经写入的数据进行读取;
C2:读操作每完成一帧数据的读取,在读指针进行即将跳转时,计算当前写入一行数据需要的时间和完成读取一行数据需要的时间,并对二者进行比较,若前者比后者大,进行C2a;若前者比后者小,进行C2b;
C2a:读指针不进行跳转,在原行进行重新读取,完成后读指针跳转至初始行,在初始行开始新一帧数据的读操作;
C2b:读指针正常跳转,在初始行进行新一帧数据的读操作。
其中,当前写入一行数据需要的时间和完成读取一行数据需要的时间时,可任意进行C2a或C2b。
本实施例相较于实施例2可达到更低的延时,而不出现访问冲突造成的图像分裂现象,适用于注重延时但对画面质量要求不高的情景。上述读操作和写操作的最优实施方式均发生在已经判断为输入帧率与输出帧率一致之后,无列出具体判断输入帧率与输出帧率是否一致的过程,本领域技术人员可参考实施例2得知完整的过程。
实施例4
本实施例与实施例3的区别在于,当输出帧率和输入帧率一致时,采用一帧的缓存空间进行读写,结合第二类读写操作和第三类读写操作进行视频传输,具体如下:
预设读写时间差阈值,所述读写时间差阈值用于判断使用第二类读写操作还是第三类读写操作;在输出帧率和输入帧率一致的情况下,开始读写操作前以及开始新一帧的读写之前,计算当前写入一行所需的时间和读出一行所需的时间的差值,对比所述差值和读写时间差阈值,若前者大于后者,采用第二类操作;若前者小于后者,采用第三类读写操作。具体步骤本领域技术人员可参考实施例2和实施例3得知。
本实施例相较其他实施例,平衡了传输延时和画面质量,延时比实施例2更低,画面质量比实施例3更好。
实施例5
如图5所示,本实施例提供一种实现所述低延时视频传输方法的系统,包括:判断模块1,用于进行判断输出帧率和输入帧率是否一致及是否会出现访问冲突;控制模块2,用于控制读操作和写操作的进行;缓存模块3,用于进行读操作和写操作,输出端和输入端通过所述缓存空间进行数据传输;若判断模块1判断输出帧率和输入帧率一致,控制模块2控制在缓存模块3上进行读写操作,缓存模块3启用一帧或一帧以上的缓存空间;若判断模块1判断输出帧率和输入帧率不一致,控制模块2控制在缓存模块3上进行第一类读写操作,缓存模块3启用两帧的缓存空间;所述第一类读写操作具体为:所述控制模块2控制读指针和写指针在缓存模块3的两个帧存上交替移动,读指针和写指针的移动过程中判断模块1判断是否会出现访问冲突,控制模块2根据判断结果分配读指针进行读操作的帧存和写指针进行写操作的帧存。
进一步地,判断模块1通过读指针和写指针的相对位置进行判断是否会出现访问冲突,具体如下:若读/写指针即将跳转的帧存上没有写/读指针,判断模块1的判断结果为不冲突;若读/写指针即将跳转的帧存上有写/读指针,判断模块1进行第二判断操作:计算读指针和写指针的相对位置值,并比较所述相对位置值与预设的安全相对位置值作比较,若前者大于后者,判断模块1的判断结果为不冲突;若前者小于后者,判断模块1的判断结果为冲突;若判断结果为不冲突,控制模块2控制读/写指针正常跳转,在跳转的帧存上进行读/写操作;若判断结果为冲突,控制模块2控制读/写指针不进行跳转,在原帧存上重新进行读/写操作。
本实施例的低延时视频传输系统还可实现所述第二类读写操作和第三类读写操作。判断模块1若判断输出帧率和输入帧率一致,控制模块2则执行所述第二类读写操作或第三类读写操作。其中,执行第二类读写操作的过程具体为:缓存模块3采用一帧或一帧以上的缓存空间进行读操作和写操作,控制模块2控制在缓存模块3的一个帧存上开始写操作,写入若干量数据后开始读操作;判断模块1实时对比读操作的速率和写操作的速率,若前者比后者大,控制模块2降低读指针的时钟频率;若前者比后者小,控制模块2提高读指针的时钟频率。完成一个帧存的写操作后,控制模块2控制写指针跳转至缓存模块3的下一个帧存;完成一个帧存的读操作后,控制模块2控制读指针跳转至写指针当前所在的帧存。在其他实施例中,缓存模块3还可采用一帧的缓存空间进行第二类读写操作。
执行第三类读写操作的过程具体为:缓存模块3采用一帧的缓存空间进行读操作和写操作,控制模块2控制在一个帧存上开始写操作,写入L行的数据后开始读操作;其中,L为整数,并且是预设值;每完成一帧数据的写操作,在写指针即将跳转至下一行时,判断模块1计算当前写入一行数据需要的时间和完成读取一行数据需要的时间,并对二者进行比较,若前者比后者大,控制模块2控制写指针正常跳转,在所述一个帧存的初始行开始写操作;若前者比后者小,控制模块2控制写指针不进行跳转,在原行重复写入原帧数据,完成后在初始行开始新一帧数据的写操作;每完成一帧数据的读操作,在读指针即将跳转至下一行时,判断模块1计算当前写入一行数据需要的时间和完成读取一行数据需要的时间,并对二者进行比较,若前者比后者大,控制模块2控制读指针不进行跳转,在原行进行重复读取,完成一次原行的重复读取后控制模块2控制读指针跳转至初始行,在初始行开始读操作;若前者比后者小,控制模块2控制读指针正常跳转,在初始行开始读操作。
实施例6
本实施例提供一种计算机储存介质,存储实现所述低延时视频传输方法的软件,使在视频传输中的输出帧率和输入帧率不一致时,保持不大于一帧的低延时,最小可达以行为单位的超低延时,并且保证每帧画面的完整性。
所述低延时视频传输方法为:判断输出帧率和输入帧率是否一致,若输出帧率和输入帧率一致,则采用一帧或一帧以上的缓存空间进行读写操作;若输出帧率和输入帧率不一致,采用两帧的缓存空间进行第一类读写操作;所述第一类读写操作具体为:读指针和写指针在两个帧存上交替移动,移动过程中判断是否会出现访问冲突,根据判断结果分配读指针进行读操作的帧存和写指针进行写操作的帧存。
显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (7)

1.一种低延时视频传输方法,其特征在于,包括步骤:
判断输出帧率和输入帧率是否一致,若输出帧率和输入帧率一致,则采用一帧的缓存空间进行读写操作;若输出帧率和输入帧率不一致,采用两帧的缓存空间进行第一类读写操作;所述第一类读写操作具体为:
读指针和写指针在两个帧存上交替移动,移动过程中判断是否会出现访问冲突,根据判断结果分配读指针进行读操作的帧存和写指针进行写操作的帧存;
若输出帧率和输入帧率一致,则采用一帧的缓存空间进行第三类读写操作;所述第三类读写操作具体为:
在一个帧存上的初始行开始写操作,写入L行的数据后开始读操作;其中,L为整数,并且是预设值;
每完成一帧数据的写操作,计算当前写入一行数据需要的时间和完成读取一行数据需要的时间,并对二者进行比较,若前者比后者大,在初始行开始进行新一帧数据的写操作;若前者比后者小,在原行进行重复写入的写操作,完成重复写入原行数据后,在初始行开始新一帧数据的写操作;
每完成一帧数据的读操作,计算当前写入一行数据需要的时间和完成读取一行数据需要的时间,并对二者进行比较,若前者比后者大,在原行进行读操作,对原行的数据进行重新读取,完成原行的数据重新读取后,在初始行进行新一帧数据的读操作;若前者比后者小,在初始行进行新一帧数据的读操作。
2.根据权利要求1所述的一种低延时视频传输方法,其特征在于,
所述移动过程中判断访问是否冲突,根据判断结果分配读指针进行读操作的帧存和写指针进行写操作的帧存的步骤具体为:
读/写指针在跳转不同帧存时,若即将跳转的帧存上没有写/读指针,读/写指针进行正常跳转,在跳转的帧存上进行读/写操作;若即将跳转的帧存上有写/读指针,进行第二判断操作;所述第二判断操作具体为:
预先设置安全相对位置值;计算读指针和写指针的相对位置值,若读指针和写指针的相对位置值大于或等于所述安全相对位置值,读/写指针进行正常跳转,在跳转的帧存上进行读/写操作;若读指针和写指针的相对位置值小于所述安全相对位置值,读/写指针不进行跳转,在原帧存上进行读/写操作。
3.根据权利要求2所述的一种低延时视频传输方法,其特征在于,
所述安全相对位置值根据读、写操作的速率差值进行计算确定。
4.根据权利要求1所述的一种低延时视频传输方法,其特征在于,
所述L根据读操作速率和写操作速率的差值进行计算确定。
5.一种低延时视频传输系统,其特征在于,包括:
判断模块,用于进行判断输出帧率和输入帧率是否一致及是否会出现访问冲突;
控制模块,用于控制读操作和写操作的进行;
缓存模块,用于进行读操作和写操作;
若判断模块判断输出帧率和输入帧率一致,控制模块控制在缓存模块上进行第三类读写操作;所述第三类读写操作具体为:
在一个帧存上的初始行开始写操作,写入L行的数据后开始读操作;其中,L为整数,并且是预设值;
每完成一帧数据的写操作,计算当前写入一行数据需要的时间和完成读取一行数据需要的时间,并对二者进行比较,若前者比后者大,在初始行开始进行新一帧数据的写操作;若前者比后者小,在原行进行重复写入的写操作,完成重复写入原行数据后,在初始行开始新一帧数据的写操作;
每完成一帧数据的读操作,计算当前写入一行数据需要的时间和完成读取一行数据需要的时间,并对二者进行比较,若前者比后者大,在原行进行读操作,对原行的数据进行重新读取,完成原行的数据重新读取后,在初始行进行新一帧数据的读操作;若前者比后者小,在初始行进行新一帧数据的读操作;
若判断模块判断输出帧率和输入帧率不一致,控制模块控制在缓存模块上进行第一类读写操作,缓存模块启用两帧的缓存空间;所述第一类读写操作具体为:
所述控制模块控制读指针和写指针在缓存模块的两个帧存上交替移动,读指针和写指针的移动过程中判断模块判断是否会出现访问冲突,控制模块根据判断结果分配读指针进行读操作的帧存和写指针进行写操作的帧存。
6.根据权利要求5所述的一种低延时视频传输系统,其特征在于,
判断模块通过读指针和写指针的相对位置进行判断是否会出现访问冲突,具体如下:
若读/写指针即将跳转的帧存上没有写/读指针,判断模块的判断结果为不冲突;若读/写指针即将跳转的帧存上有写/读指针,判断模块进行第二判断操作:
计算读指针和写指针的相对位置值,并比较所述相对位置值与预设的安全相对位置值作比较,若前者大于后者,判断模块的判断结果为不冲突;若前者小于后者,判断模块的判断结果为冲突;
若判断结果为不冲突,控制模块控制读/写指针正常跳转,在跳转的帧存上进行读/写操作;若判断结果为冲突,控制模块控制读/写指针不进行跳转,在原帧存上重新进行读/写操作。
7.一种计算机储存介质,其上储存有计算机程序,其特征在于,
所述计算机程序被程序执行主体执行时实现如权利要求1-4任一项所述的一种低延时视频传输方法。
CN202011412867.XA 2020-12-03 2020-12-03 一种低延时视频传输方法及其系统、储存介质 Active CN112511861B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011412867.XA CN112511861B (zh) 2020-12-03 2020-12-03 一种低延时视频传输方法及其系统、储存介质
PCT/CN2020/141937 WO2022116353A1 (zh) 2020-12-03 2020-12-31 一种低延时视频传输方法及其系统、储存介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011412867.XA CN112511861B (zh) 2020-12-03 2020-12-03 一种低延时视频传输方法及其系统、储存介质

Publications (2)

Publication Number Publication Date
CN112511861A CN112511861A (zh) 2021-03-16
CN112511861B true CN112511861B (zh) 2022-05-03

Family

ID=74970198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011412867.XA Active CN112511861B (zh) 2020-12-03 2020-12-03 一种低延时视频传输方法及其系统、储存介质

Country Status (2)

Country Link
CN (1) CN112511861B (zh)
WO (1) WO2022116353A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438502B (zh) * 2021-05-27 2022-07-12 卡莱特云科技股份有限公司 一种视频帧图像传输方法、发送卡及视频帧图像显示系统
CN113377049B (zh) * 2021-06-11 2022-09-06 西安应用光学研究所 基于fpga低延迟视频图像缓存的ddr控制方法
CN114189732B (zh) * 2021-11-27 2023-04-07 深圳曦华科技有限公司 图像数据读写控制的方法及相关装置
CN115103208A (zh) * 2022-08-26 2022-09-23 广州市保伦电子有限公司 一种视频数据的行缓存方法、行读取方法及处理系统
CN115955539B (zh) * 2023-03-15 2023-08-18 广州美凯信息技术股份有限公司 基于fpga的视频帧率动态转换方法、装置及存储介质
CN116456144B (zh) * 2023-06-14 2023-09-26 合肥六角形半导体有限公司 一种无帧缓存视频流处置输出装置和方法
CN117082194B (zh) * 2023-10-16 2024-02-20 苏州元脑智能科技有限公司 视频图像处理方法、装置、系统、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1719889A (zh) * 2005-08-08 2006-01-11 北京中星微电子有限公司 实现视频逐行到隔行转换的装置和转换方法
CN101043289A (zh) * 2006-06-16 2007-09-26 华为技术有限公司 一种解除存储器读写冲突的方法和装置
CN107948546A (zh) * 2017-11-09 2018-04-20 中国航空无线电电子研究所 一种低延迟视频混合装置
CN211982026U (zh) * 2020-06-05 2020-11-20 广东高云半导体科技股份有限公司 车盲区监控电路

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100747668B1 (ko) * 2005-10-31 2007-08-08 삼성전자주식회사 디스플레이 동기 신호 생성 장치를 포함하는 영상 신호수신장치 및 그 제어방법
US8390743B2 (en) * 2011-03-31 2013-03-05 Intersil Americas Inc. System and methods for the synchronization and display of video input signals
CN102270444B (zh) * 2011-09-07 2014-03-26 东莞中山大学研究院 视频处理芯片数据流控制及帧缓存装置
JP2016059015A (ja) * 2014-09-12 2016-04-21 株式会社東芝 画像出力装置
CN105872432B (zh) * 2016-04-21 2019-04-23 天津大学 快速自适应帧率变换的装置与方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1719889A (zh) * 2005-08-08 2006-01-11 北京中星微电子有限公司 实现视频逐行到隔行转换的装置和转换方法
CN101043289A (zh) * 2006-06-16 2007-09-26 华为技术有限公司 一种解除存储器读写冲突的方法和装置
CN107948546A (zh) * 2017-11-09 2018-04-20 中国航空无线电电子研究所 一种低延迟视频混合装置
CN211982026U (zh) * 2020-06-05 2020-11-20 广东高云半导体科技股份有限公司 车盲区监控电路

Also Published As

Publication number Publication date
WO2022116353A1 (zh) 2022-06-09
CN112511861A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
CN112511861B (zh) 一种低延时视频传输方法及其系统、储存介质
US20220067447A1 (en) Data processing method and apparatus for convolutional neural network
US6421274B1 (en) Semiconductor memory device and reading and writing method thereof
US7710681B2 (en) Optimizing tape speed for a sync operation
US20090079763A1 (en) Rendering processing device and its method, program, and storage medium
US8234463B2 (en) Data processing apparatus, memory controller, and access control method of memory controller
CN103413569B (zh) 一读且一写静态随机存储器
CN111563052B (zh) 降低读延时的缓存方法、装置、计算机设备及存储介质
CN111143272A (zh) 异构计算平台的数据处理方法、装置及可读存储介质
US10803547B2 (en) Graphics processing systems using a subset of pipeline stages
US6985151B1 (en) Shader pixel storage in a graphics memory
CN114063922A (zh) 一种主从库流复制加速方法及装置、设备及介质
CN114237532A (zh) 基于Linux嵌入式系统的多窗口实现方法、装置及介质
CN115103208A (zh) 一种视频数据的行缓存方法、行读取方法及处理系统
CN115035128A (zh) 基于fpga的图像重叠滑窗分割方法及系统
CN113608925A (zh) 一种基于持续数据保护cdp协议的数据备份方法及系统
CN112541929A (zh) 一种用于卷积神经网络的图像处理方法及系统
CN110413540B (zh) 一种fpga数据缓存的方法、系统、设备及存储介质
CN110007853A (zh) 一种Nandflash命令处理方法、装置、终端及存储介质
CN114780460B (zh) 一种dma控制器和方法
KR20040039315A (ko) 버퍼 시스템, 버퍼 관리 시스템 및 버퍼로의 액세스 제어방법
US5818466A (en) Apparatus for providing multi-layer sprite graphic for an on-screen-graphic of television
CN115129444A (zh) 一种应用程序显示方法、装置及计算机可读存储介质
US6271851B1 (en) Z-buffer pre-test for 3D graphic performance enhancement
US20040186949A1 (en) XIP system and method for serial memory

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