CN110996120A - 一种视频流发送、接收方法 - Google Patents

一种视频流发送、接收方法 Download PDF

Info

Publication number
CN110996120A
CN110996120A CN201911282015.0A CN201911282015A CN110996120A CN 110996120 A CN110996120 A CN 110996120A CN 201911282015 A CN201911282015 A CN 201911282015A CN 110996120 A CN110996120 A CN 110996120A
Authority
CN
China
Prior art keywords
data
module
frame
mac
sending
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
Application number
CN201911282015.0A
Other languages
English (en)
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.)
Hunan Junhan Information Technology Co ltd
Original Assignee
Hunan Junhan Information Technology 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 Hunan Junhan Information Technology Co ltd filed Critical Hunan Junhan Information Technology Co ltd
Priority to CN201911282015.0A priority Critical patent/CN110996120A/zh
Publication of CN110996120A publication Critical patent/CN110996120A/zh
Pending legal-status Critical Current

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/233Processing of audio elementary streams
    • H04N21/2335Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
    • 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/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • 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/234309Processing 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 transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • 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/439Processing of audio elementary streams
    • H04N21/4398Processing of audio elementary streams involving reformatting operations of audio signals
    • 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/44008Processing 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 operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • 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/440218Processing 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 transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本发明公开一种视频流发送、接收方法,发送方法包括:通过输入输出接口模块或IO接口获取发送的视频数据;编码器将待处理的视频数据中每帧图像数据分割为多个切割帧,对每个切割帧缓存并编码形成压缩图像切割帧;处理器模块将处理好的视频数据中的音频数据进行编码形成音频编码数据;将所述音频编码数据和压缩图像切割帧封装获得编码流数据;硬件加速模块将所述编码流数据封装为RTSP和/或RTMP视频流并在传输过程中进行硬件加速输出至网络信道。解决现有技术中延时长、功耗高等问题,降低延时和功耗。

Description

一种视频流发送、接收方法
技术领域
本发明涉及视频数据传输技术领域,具体是一种视频流发送、接收方法。
背景技术
目前的媒体编解码芯片(VIDEO CODEC SOC,以下简称SOC芯片)结构通常是采用模块化设计,其内部由许多IP模块组成,一般有图像接口子模块、图像前处理子模块、图像编码子模块、标准ARM子模块等,图像输入后经过图像前处理子模块处理后存储到DDR存储器,再经过运行于ARM的linux系统对图像进行压缩后实现标准的RTSP\RTMP流(视频流)输出,其实现图像压缩后到视频流的处理,通常处理时间大多超过150ms这样一个时间量级。如华为公司的海思HISILICON系列图像编解芯片,采用H264图像CODEC核和ARM结合的方式,由于其部分功能如RTSP推流等功能的实现依赖于ARM处理器,则此方案对ARM处理器的性能有一定要求,其搭载的ARM处理器版本为ARM9或ARM-Cortex A9等,存在芯片功耗较高,延迟较长、功能固定等弊端。
采用ARM+视频编解码模块的方式实现的CODEC SOC芯片,由于使用便捷,开发周期短被市场大规模用于,但其延时难以满足实时性编解码系统的要求,原因在于:一方面由于其网络协议栈采用基于ARM-LINUX系统的行业普遍做法,此方法简单灵活易于开发实施,软件负责上层的协议处理是为了灵活兼容多种协议,而不是为了最小化时延而独立设计硬件加速模块。因此,此类图像的编解码的技术难以实现高实时性的应用。
发明内容
本发明提供一种视频流发送、接收方法,用于克服现有技术中功耗较高且延迟较长等缺陷,实现降低功耗和延时,并提高功能配置的灵活性。
为实现上述目的,本发明提供一种视频流发送方法,包括:
步骤1,通过输入输出接口模块或IO接口获取发送的视频数据;
步骤2,编码器将待处理的视频数据中每帧图像数据分割为多个切割帧,对每个切割帧缓存并编码形成压缩图像切割帧;
步骤3,处理器模块将处理好的视频数据中的音频数据进行编码形成音频编码数据;将所述音频编码数据和压缩图像切割帧封装获得编码流数据;
步骤4,硬件加速模块将所述编码流数据封装为RTSP和/或RTMP视频流并在传输过程中进行硬件加速输出至网络信道。
为实现上述目的,本发明还提供一种视频流接收方法,包括:
步骤10,PHY接口将网络信道的串行数据转换为并行数据并发送给MAC接收模块;
步骤20,MAC接收模块将转换后形成的半字节数据转换为整字节数据,并进行地址识别、CRC校验、长度判断及拆包处理;
步骤30,处理器模块将上述处理好的数据中的压缩音频数据进行解码;
步骤40,低延时编码器将处理好的数据中的压缩图像数据进行解码;
步骤50,通过IO接口或输入输出接口模块输出。
本发明提供的视频流发送、接收方法,采用低延时的编码器与硬件加速模块联合的方式,在视频流的发送和接收过程中,可减少芯片内部RISC-V处理器模块的控制任务量,降低功耗并显著降低延时。由此处理器可采用更加轻量化和小面积的RISC-C E系列核心,同时由于网络协议栈的硬件化,处理器可直接裸跑运行而无需运行LINUX系统,延迟相比ARM-linux架构进一步提升,同时该架构多数工作都可使用硬件模块实现,其功耗更低。本方案可在低功耗条件下实现超低延迟,可用于实时性图像处理系统。实现了视频流的超低延迟封装,可用于实时的图像编码压缩传输或记录系统。如可用于无人飞行器图像实时压缩传输、CCTV监视系统的实时性提升、实时的赛况转播等。这些应用都要求延迟越小,用户体验越好。如无人载具中的遥控飞行器的控制,是基于飞行装置发回的流媒体图像反馈。为了控制飞行装置,从传感器发送视频至压缩引擎到解码图像显示之间的时延通常要小于40毫秒。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明实施例一提出的视频流发送方法的流程图;
图2为本发明实施例二提出的视频流接收方法的流程图;
图3为用于实现本发明实施例一及实施例二所述方法的低功耗低延时SOC芯片的构架图;
图4为图3中低延时编码器工作示意图;
图5为图3中硬件加速模块的构架图;
图6为图3中处理器模块的构架图;
图7为图3中GMAC控制模块的功能构架及信号流向示意图。
标号说明:
输入输出接口模块1、低延时编码器2、处理器模块3、堆叠DDRX模块4、AES/DES加密模块5、硬件加速模块6、JTAG DEBUG模块7、ISP图像前处理模块8、IO模块9、片内互联模块10;RTCP模块61、RTSP模块62、RTP模块63、UDP/TCP模块64、IP封装模块65、GMAC控制模块66相连、PHY接口67、ARP地址解析模块68、同步模块69。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接,还可以是物理连接或无线通信连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
下面结合一种低功耗低延时SOC芯片构架对视频流的发送进行详细说明,如附图3所示,典型的应用方案就是为采集端和客户端创建低时延的音频和视频压缩和网络传输服务。可应用于5G边缘计算、智慧城市、等。SOC芯片内部集成输入输出接口模块1、低延时编码器2、处理器模块3、堆叠DDRX模块4、AES/DES(Advanced Encryption Standard/DataEncryption Standard)加密模块5、硬件加速模块6、JTAG DEBUG模块7、ISP图像前处理模块8、IO模块9、片内互联模块10等;输入输出接口模块1用于完成视频图像数据的输入和输出以及音频数据的输入输出功能。叠DDRX模块4,SOC芯片内部直接堆叠DDRX,简化外部器件数量,在实现高集成度的同时,实现更高的内存吞吐性能。AES/DES加密模块5包含在SCO芯片内部,使用RISC-V处理器配置和管理,用于硬件加速完成图像数据和音频数据的编码和解码,实现高保密性的数据传输加密功能。JTAG DEBUG(Joint Test Action Group在线调试)模块7用于实现SOC芯片的配置和在线调试。ISP图像前处理模块8使用ISP(图像处理处理模块)完成采集图像的前端处理等功能,如图像畸变矫正、白平衡矫正、色彩补偿、图像降噪、HDR等功能。IO模块9实现各种接口协议,如SPI/UART/SDIO/UART/MAC/SATA/USB,实现SOC芯片所需的外部接口,用于存储或接口。片内互联模块10是SOC芯片内部的各个模块中心互联模块,用于完成SOC芯片内部各个功能模块的数据和指令路由,同时连接DDRX控制器,实现模块对DDRX(堆叠内存颗粒)的高速访问。低延迟编码器2、处理器模块3、硬件加速模块6为SOC芯片内部的关键模块,用于达成低功耗高性能低延时编解码SOC芯片。
处理器模块3采用RISC-V结构,完成整个系统的调度和配置管理,由于网络RTSP协议工作和响应工作等已经放入硬件模块执行,处理器任务工作量大幅度减小,所以可以仅仅使用低功耗轻量化的RISC-V处理器就能实现芯片内各功能模块的管理。RISC-V处理器模块用于音频数据的编码和解码。RISC-V是开源的处理器架构,具有架构可灵活裁剪,性能可定制等特点,SOC集成RISC-V结构处理器能同时满足低延时的响应和低功耗的特性。超低延时JPEG2000/H.264、H.265低延时编码器(文中简称低延时编码器2)用于完成图像数据的低延时编码和解码功能,同时可以支持MPEG2000/H.264/H.265/VP9/AVS2标准的编码和解码。低延迟编解码系统使用FPGA接收1920*1080的图像,将图像送往低延迟编码模块编码,编码后的压缩视频流经以低延迟太网进行发送,显示端接收到视频流先经过低延迟以太网接收,后送至低延迟解码模块解码输出显示。硬件加速模块6(硬件RTSP/RTMP模块)采用基于硬件构架实现RTSP、RTMP流的发送功能,整个功能模块不同于现有的软件处理器RTSP/RTMP协议栈,现有需要占用C处理器的处理周期,同时延时无法得到保证;本设计采用硬件协议栈,只需RISC-V处理器简单的管理和配置,实现低延时高性能的流媒体发送。
低延迟编码器2采用图像的分割实现编码的低延迟:
(1)缩短缓存时间通常高清H264图像编码需要完整缓存一帧,对于30hz的视频图像,这个时间就是33.3ms,采用图像分割帧方式,将完整一帧1920*1080图像的列进行拆分的方式,可减少缓存等待的时间,由于H264采用16*16像素的宏块结构,因此对于1080P视频源,可采用的分割模式如下:
Figure BDA0002317018670000051
Figure BDA0002317018670000061
参见图4,采用16分割后,每次缓存时间为2.1ms,在缓存一个切割帧后(一个切割帧为68行),启动编码,而编码器只需要在下一个切割帧缓存完之前完成当前切割帧的压缩编码工作,固此方法可将33.3ms的编码缓存时间缩减到2.1ms左右。
(2)缩短数据传输时间:通常的H.264图像编码流程是,缓存一帧高清图像后启动编码器,编码器参数配置1920*1080,在整副图像编码完成后,将输出帧编码完成中断,一般编码压缩一帧1920*1080@16bit大小的图像需要约30ms,在编码完成启动传输。采用图像16分割模式模式后,参见图2,对编码器图像参数配置为分割帧的大小,则每隔2.1ms,编码器将输出一个切割帧编码完成中断,此时即可启动以太网的发送,这可以显著的减小发送的时间。
硬件加速模块6具体为RTSP协议栈加速模块,传统的编解码SOC芯片都为软件实现RTSP协议,其延时较大,同时对处理器的负载的也较大,本设计架构采用基于全硬件实现的RTSP方式,将RTSP协议栈封装成硬件加速模块,集成于SOC芯片中,能显著降低编码流输出延时。
本发明按照RTSP协议及FPGA验证平台特性,将加速模块划分为七个功能层部分,参见图5:
第七层应用层为RTCP模块61,用于控制和管理以及建立RTSP连接;
第六层表示层为RTSP模块62,用于封装和管理RTSP协议栈;
第五层会话层为RTP模块63,用于封装和管理RTP协议栈;
第四层传输层为UDP/TCP流封装模块64,用于封装和管理UDP/TCP协议栈;
第三层网络层为IP封装模块65,用于封装和管理IP协议栈;
第二层数据链路层为GMAC控制模块66,用于管理和建立Gbit网络链路连接;
第一层物理层为PHY接口67,在芯片外部,为SOC芯片网络模块搭建物理连接通道;
硬件加速模块6还包括ARP地址解析模块68和同步模块69。
RTCP模块61与RTSP模块62、RTP模块63、UDP/TCP模块64、ARP地址解析模块68均相连接,RTSP模块62与RTP模块63、RTCP模块61均相连接,RTP模块63与RTCP模块61以及UDP/TCP模块64均相连接,同步模块69与RTP模块63相连接,实现流信号的同步传输,UDP/TCP流封装模块64与IP封装模块65相连接,IP封装模块65与GMAC控制模块66相连,GMAC控制模块66还与ARP地址解析模块68及PHY接口67相连。
在RTCP模块61(包括RTCP控制状态寄存器)中设计有大量模块参数所需设置的寄存器,RTCP控制状态寄存器包含:目的IP地址设置寄存器、源IP地址设置寄存器、目的端口设置寄存器、源端口设置寄存器、源MAC设置寄存器、ARP触发寄存器、帧长度寄存器、RTSP流启动、RTSP流停止寄存器、以及部分状态寄存器等。构成所述控制状态寄存器的所有寄存器均与所述处理器模块连接,并均由所述处理器模块控制;所述处理器模块采用RISC-V处理器构架。
工作时,首先,SOC芯片内置的RISC-V处理器配置RTCP模块61中各寄存器。RTCP模块61需要先建立网络连接,控制ARP地址解析模块68发送ARP请求包以获取目的地址和MAC信息,完成通讯连接建立。RTCP模块61根据RISC-V处理器的控制从内存(DDRX)中取出编码流数据,往下一级模块RTP模块63发送,RTP模块63根据同步模块69的处理,实现编码器与用户接受流的同步,编码流数据经过添加RTP头数据后送入UDP/TCP模块64,填写UDP头数据后,送入IP封装模块65填写IP头信息,完成后送往下一级GMAC控制模块66,GMAC控制模块根据链路协议发送数据给PHY接口67,完成RTSP流数据的低延时发送。RISC-V处理器模块参见图6,目前的图像编解码SOC芯片,均采用ARM的处理器架构,运行LINUX系统,完成内部各模块的管理和RTSP网络协议的解析和封包,此方式存在编码延时较大,同时功耗也较大的弊端。本发明使用低延时编解码SOC方案采用RISC-V的处理器架构,可直接裸跑运行也可运行其他系统,此架构具有低功耗和占用硅片面积小的特点并能降低编码延时。RISC-V是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。RISC-V指令集的设计考虑了小型、快速、低功耗的现实情况来实做,RISC-V处理器可以个根据需要选定适合的性能和接口,满足低功耗和低工作任务的需要。同时保持低功耗。采用专用快速总线连接外部模块,使处理器能快速访问和控制外部模块。
RISC-V处理器是一种可裁剪的开源架构,本设计RISC-V处理器具有多级流水线结构,本设计采用RISC-V处理器具有低功耗和灵活的特点。其具有数据缓存和指令缓存,指令缓存区中存储需要处理器执行的指令,由处理器状态控制器控制指令的提取,处理器处理流程分为取指、预译码、译码优化、执行、内存接入、回写几个部分。
取指:将指令寄存器的内容装入内存缓存,并且将指令寄存器的值+1,然后将地址指向的内容装入数据缓存。
预译码:在这个步骤中,将指令进行预处理和简单译码。
译码、优化:在这个步骤中,指令由处理器解码并对部分指令操作进行优化。如果指令需要,处理器将获得任何操作数。
执行:在这个阶段,处理器执行指令。如加法计算。最后,它调整指令指针指向存储在地址的下一条要执行的指令。
内存接入:在这个阶段,处理器执行指令去指定的内部和外部地址取数据。
写回:在这个阶段,处理器执行完指令,将处理结果写回到内存缓存中。
外部的数据接口和指令接口用于与外部的通讯。调试单元用于与外部的调试器接口连接。
本发明实施例提供一种视频流发送方法,包括:
步骤S1,通过输入输出接口模块或IO接口获取发送的视频数据;
步骤S2,编码器将待处理的视频数据中每帧图像数据分割为多个切割帧,对每个切割帧缓存并编码形成压缩图像切割帧;
步骤S3,处理器模块将处理好的视频数据中的音频数据进行编码形成音频编码数据;将所述音频编码数据和压缩图像切割帧封装获得编码流数据;
步骤S4,硬件加速模块将所述编码流数据封装为RTSP/RTMP视频流并在传输过程中进行硬件加速输出至网络信道。
发送视频流时:
输入输出接口模块的输入接口接收发送端的视频流(或外部设备经IO接口输入的视频流)中包括图像数据和音频数据,其中图像数据经上述编码器(这里采用低延时编码器2)进行切割,将每帧图像数据分割为多个切割帧,对每个切割帧缓存并编码形成压缩图像切割帧;处理器模块上述待处理的视频数据中的音频流进行编码形成音频编码数据,将所述音频编码数据和压缩图像切割帧封装获得编码流数据;最后通过硬件加速模块对编码流数据进行封装,获得RTSP/RTMP视频流并在传输过程中进行硬件加速输出至网络信道。在上述发送过程中,由于图像数据经过切割有利于低延时输送,并且RTSP/RTMP视频流的封装和发送在硬件加速模块中完成,大大降低了处理器模块的功耗和处理任务。
所述步骤S4包括:
步骤S41,RTCP模块建立RTSP/RTMP网络连接,控制ARP模块发送请求包获取目的地址和MAC信息,与用户端建立通讯连接;
步骤S42,RTCP模块根据处理器模块的控制从内存(DDRX)中取出编码流数据,发给下一级RTP模块;
步骤S43,RTP模块根据同步模块的处理使得编码器与用户端接收流的同步;
步骤S44,RTP模块对经过的编码流数据添加RTP头数据后送入UDP/TCP流封装模块填写UDP/TCP数据头;
步骤S45,IP模块对上述编码流数据填写IP头信息后送入下一级GMAC控制模块;
步骤S46,GMAC控制模块根据链路协议将编码流数据经PHY接口发送至网络信道,完成RTSP和/或RTMP视频流的发送。
所述步骤S46包括:
步骤S461,MAC状态机模块根据PHY接口的载波侦听信号和冲突检测信号检测网络信道的状态,在网络信道处于空闲状态时响应IP封装模块的发送请求,并进入导通状态;
步骤S462,MAC发送状态机模块在MAC状态机模块进入导通状态时向MAC发送模块输出发送指令;
步骤S463,MAC发送模块接收所述发送指令后向PHY接口发送前序码、数据帧起始定界符;
步骤S464,PHY接口按照数据帧起始定界符发送RTSP和/或RTMP视频流数据段并按照前序码完成数据段的衔接。
所述步骤S46还包括:
步骤S465,在MAC状态机模块进入0状态时,MAC发送模块发送数据字节的低4位;
步骤S466,在MAC状态机模块进入1状态时,MAC发送模块发送数据字节的高4位;MAC状态机模块响应IP封装模块的数据发送请求,在收到请求后,MAC状态机模块进入发送预备状态,之后进入0状态,一周期以后进入1状态,此后根据发送计数器的发送计数值,一直在0与1状态之间循环;
步骤S467,MAC状态机模块在0与1之间循环,直到数据发送完毕。
所述步骤S467包括:
步骤S4671,发送计数模块对发送的数据帧产生冲突的次数进行计数,在计数值达到最大重试次数时,放弃发送,并丢弃发送缓冲器内的数据;
步骤S4672,重试计数值被随机数生成模块用于计算下次重试之前需要后退的时隙个数。
所述步骤467还包括:
步骤S4673,CRC生成模块计算发送的数据帧的CRC值;
步骤S4674,发送计数模块对上述数据帧的字节进行计数;
步骤S4675,在计数值大于最大有效帧的长度时,MAC发送模块根据设置丢弃或发送上述数据帧。
所述步骤S467还包括:
步骤S4676,在发送的数据帧中还剩一个字节时,MAC发送状态机模块向MAC发送模块发送帧结束信号;
步骤S4677,在数据帧的长度大于最小帧并且小于最大帧时,MAC发送状态机模块进入帧完成状态,此时MAC发送模块则将CRC生成模块生成的CRC值添加到数据帧的校验序列字段中并发送给PHY接口;
步骤S4678,在数据帧发送完之后,MAC发送状态机模块进入发送完成状态,之后为空状态;此后MAC发送状态机模块回到初始状态,以重新等待新的发送请求。
具体内部模块和功能见图7,RTCP模块61包括RTCP模块协议模块和数据控制模块,RTSP模块62、RTP模块63、RTCP协议模块接受数据控制模块的控制实现应用层协议的发送,输入的数据流经输出接口模块1(包括输入接口和输出接口,输入过程中经输入接口)输入数据控制模块;输出的数据流经数据控制模块输出至输入输出接口模块1(输出过程中经输出接口);RTCP模块61用于流量控制,主要是对传输的状态进行检测,对于通道的异常进行反馈调节,RTSP模块62负责启动RTP模块63传输,RTP模块63负责按照RTSP模块62的端口配置待发送的封装流数据,数据流从数据控制模块获取,RTP模块63可接受RTSP模块62的数据帧开始和数帧结束标志,并通过数据控制模块从外部存储器中读取要发送的数据,UDP/TCP流封装模块64负责添加UDP帧头信息,然后对数据进行封装,IP封装模块65负责添加IP头信息以及做帧数据长度分包。MAC状态机模块负责检测载波侦听信号和响应IP封装模块65的请求。MAC状态机模块将IP层提供的数据封装之后通过MII接口模块发送给PHY接口67。MAC状态机模块通过PHY接口67提供的载波侦听和冲突检测信号,在信道空闲时通过MII接口管理模块将数据以4位的宽度发送给PHY接口67,最后由PHY接口67将数据发送到网络上。MII接口模块用于管理和控制链路层与外部PHY接口之间的连接,以用于对PHY接口进行配置并读取其状态信息。该接口用于输出时钟信号(MDC)和接收或输出双向数据信号(MDIO)。MII接口模块由时钟生成模块、移位寄存器模块和输出控制模块三部分组成。
发送数据时,当发送站点的发送缓冲区快溢出而PHY接口67来不及取走数据时,发送端就会发出流量控制请求即发送PAUSE控制帧,RTCP模块(数据控制模块)在接收到PAUSE控制帧之后,停止向RTP模块发送数据。以使数据控制模块在指定的时间内暂停发送数据。数据发送站点接收到PAUSE控制帧后,便可根据帧中的参数设置PAUSE定时器。PAUSE定时器在减到0之前,数据发送站点将暂停发送数据(PAUSE控制帧除外)。PAUSE定时器减到0之后,数据发送站点将恢复发送数据。
CRC生成模块用于计算发送数据的CRC值,并将CRC值添加到数据帧的帧校验序列字段(FCS)内。
ARP地址解析模块68包括发送计数模块,发送计数模块由字节计数器和重试次数计数器组成。其中重试次数计数器可对发送某个帧时产生冲突次数进行计数。当计数器的值达到最大重试次数时,它将放弃重试,并丢弃发送缓冲器内的数据。同时,重试计数器的值还被随机数生成模块用于计算下次重试之前需要后退(backoff)的时隙的个数。
字节计数器用于对发送过程中的字节进行计数。发送计数模块还可用于滞后冲突(late collision)和超长帧的判断。当滞后冲突发生时,正在发送的数据将被丢弃。超长帧的判断则是从对帧内容(包括FCS)进行字节计数,如果字节计数器的值大于最大有效帧的长度(1518个字节),MAC发送状态机模块就根据系统设置(是否支持超长帧)丢弃或发送。
同时发送计数模块还启动ARP的主动包。通知MAC发送状态机模块发送ARP请求包。
MAC发送状态机模块是整个发送模块的核心,主要用于控制整个发送过程。MAC状态机模块进入空闲状态之后,检测MAC状态机模块的发送请求。若MAC状态机模块请求发送,MAC状态机模块将进入Preamble_State状态,MAC发送模块即通知PHY接口发送开始,同时开始发送前序码(7个0x5),然后发送帧起始定界符(SFD,0xd)。MAC状态机模块进入数据0状态后,MAC发送模块将发送一个数据字节的低4位,将当其进入数据1状态后,MAC发送模块则发送数据字节的高4位。随后,MAC状态机模块一直在数据0和数据1之间循环,直到数据发送完毕。当还剩一个字节时,MAC发送状态机模块将通过发送帧结束信号来通知MAC发送模块。如果数据帧的长度大于最小帧并且小于最大帧,MAC状态机模块就进入帧完成状态,此时MAC发送模块则将CRC生成模块生成的CRC值添加到帧的校验字段中并发送给PHY接口。帧发送完之后,MAC状态机模块进入发送完成状态,之后空状态。此后MAC状态机模块又回到初始状态,以重新等待新的发送请求。
实施例二
本发明提供一种视频流接收方法,包括:
步骤S10,PHY接口将网络信道的串行数据转换为并行数据并发送给MAC接收模块;
步骤S20,MAC接收模块将转换后形成的半字节数据转换为整字节数据,并进行地址识别、CRC校验、长度判断及拆包处理;
步骤S30,处理器模块将上述处理好的数据中的压缩音频数据进行解码;
步骤S40,低延时编码器将处理好的数据中的压缩图像数据进行解码;
步骤S50,通过IO接口或输入输出接口模块输出。
所述步骤S20包括:
步骤S201,在接收站点的接收缓存区将要溢出而接收站主机还来不及取走数据时,数据控制模块接收自接收站主机向发送端发送的流量控制请求并发送PAUSE控制帧;
步骤S202,数据发送站点接收到PAUSE控制帧后,根据PAUSE控制帧中的参数设置PAUSE定时器;
步骤S203,在PAUSE定时器在减到0之前,数据发送站点暂停发送数据;在PAUSE定时器减到0之后,数据发送站点恢复发送数据。
所述步骤S20中:
接收过程的状态信息中,接收错误表明PHY接口在接收过程中检测到了错误;
接收到无效符号则表明接收到的帧中包括PHY无法识别的无效符号;
滞后冲突表明接收帧时检测到滞后冲突信号;
超短帧表明接收到的帧小于最短有效的长度;
超长帧表明接收到的帧大于最大有效帧的长度;
半字节对齐错误表明接收到的半字节不是偶数,即帧的长度不是字节的整数倍;
接收溢出则表明MAC接收模块来不及处理接收到的数据而导致接收FIFO溢出。
MAC接收模块负责数据帧的接收。当外部PHY接口将通信信道的串行数据转换为并行数据并发送给MAC接收模块后,MAC接收模块会将这些半字节数据转换为字节数据,然后经过地址识别、CRC校验、长度判断等操作后,再通过MAC状态机模块和IP封装模块、UDP/TCP流封装模块分别拆包后,送入数据控制模块,最后写入外部存储器,并在MAC状态机模块的接收队列中记录帧的相关信息。此外,MAC接收模块还负责前序码和CRC值的移除。
MAC接收状态机模块,接收过程的状态信息中,接收错误表明PHY接口在接收过程中检测到了错误;接收到无效符号则表明接收到的帧中包括无效(PHY接口无法识别)的符号;滞后冲突表明接收帧时检测到滞后冲突信号;超短帧表明接收到的帧小于最短有效的长度;超长帧表明接收到的帧大于最大有效帧的长度;半字节对齐错误表明接收到的半字节不是偶数(即帧的长度不是字节的整数倍);接收溢出则表明MAC接收模块来不及处理接收到的数据而导致接收FIFO溢出。
在发送过程的状态信息中,超过重试限制表示由于冲突导致的重试次数超过了额定值;滞后冲突表示发送帧的过程中检测到的冲突信号超过了规定的冲突时间窗;延迟,表明在发送帧之前检测到信道忙。
数据控制模块提供有全双工操作中的数据控制功能,流量控制可通过RTCP模块发送和接收PAUSE的控制帧来实现。接收数据时,当接收站点的接收缓冲区(Rx FIFO)快溢出而接收站主机来不及取走数据时,接收站主机向发送端就会发出流量控制请求。RTCP模块(数据控制模块)在接收到流量控制请求之后,即发送PAUSE控制帧,RTP模块将停止发送数据。以使数据控制模块在指定的时间内暂停发送数据。数据发送站点接收到PAUSE控制帧后,便可根据帧中的参数设置PAUSE定时器。PAUSE定时器在减到0之前,数据发送站点将暂停发送数据(PAUSE控制帧除外)。PAUSE定时器减到0之后,数据发送站点将恢复发送数据。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

Claims (10)

1.一种视频流发送方法,其特征在于,包括:
步骤1,通过输入输出接口模块或IO接口获取发送的视频数据;
步骤2,编码器将待处理的视频数据中每帧图像数据分割为多个切割帧,对每个切割帧缓存并编码形成压缩图像切割帧;
步骤3,处理器模块将待处理的视频数据中的音频数据进行编码形成音频编码数据;将所述音频编码数据和压缩图像切割帧封装获得编码流数据;
步骤4,硬件加速模块将所述编码流数据封装为RTSP和/或RTMP视频流并在传输过程中进行硬件加速输出至网络信道。
2.如权利要求1所述的视频流发送方法,其特征在于,所述步骤4包括:
步骤41,RTCP模块建立RTSP和/或RTMP网络连接,控制ARP模块发送请求包获取目的地址和MAC信息,与用户端建立通讯连接;
步骤42,RTCP模块根据处理器模块的控制从内存中取出编码流数据,发给下一级RTP模块;
步骤43,RTP模块根据同步模块的处理使得编码器与用户端接收流的同步;
步骤44,RTP模块对经过的编码流数据添加RTP头数据后送入UDP/TCP流封装模块填写UDP/TCP数据头;
步骤45,IP模块对上述编码流数据填写IP头信息后送入下一级GMAC控制模块;
步骤46,GMAC控制模块根据链路协议将编码流数据经PHY接口发送至网络信道,完成RTSP和/或RTMP视频流的发送。
3.如权利要求2所述的视频流发送方法,其特征在于,所述步骤46包括:
步骤461,MAC状态机模块根据PHY接口的载波侦听信号和冲突检测信号检测网络信道的状态,在网络信道处于空闲状态时响应IP封装模块的发送请求,并进入导通状态;
步骤462,MAC发送状态机模块在MAC状态机模块进入导通状态时向MAC发送模块输出发送指令;
步骤463,MAC发送模块接收所述发送指令后向PHY接口发送前序码、数据帧起始定界符;
步骤464,PHY接口按照数据帧起始定界符发送RTSP和/或RTMP视频流数据段并按照前序码完成数据段的衔接。
4.如权利要求3所述的视频流发送方法,其特征在于,所述步骤46还包括:
步骤465,在MAC状态机模块进入0状态时,MAC发送模块发送数据字节的低4位;
步骤466,在MAC状态机模块进入1状态时,MAC发送模块发送数据字节的高4位;
步骤467,MAC状态机模块在0与1之间循环,直到数据发送完毕。
5.如权利要求4所述的视频流发送方法,其特征在于,所述步骤467包括:
步骤4671,发送计数模块对发送的数据帧产生冲突的次数进行计数,在计数值达到最大重试次数时,放弃发送,并丢弃发送缓冲器内的数据;
步骤4672,重试计数值被随机数生成模块用于计算下次重试之前需要后退的时隙个数。
6.如权利要求5所述的视频流发送方法,其特征在于,所述步骤467还包括:
步骤4673,CRC生成模块计算发送的数据帧的CRC值;
步骤4674,发送计数模块对上述数据帧的字节进行计数;
步骤4675,在计数值大于最大有效帧的长度时,MAC发送模块根据设置丢弃或发送上述数据帧。
7.如权利要求6所述的视频流发送方法,其特征在于,所述步骤467还包括:
步骤4676,在发送的数据帧中还剩一个字节时,MAC发送状态机模块向MAC发送模块发送帧结束信号;
步骤4677,在数据帧的长度大于最小帧并且小于最大帧时,MAC发送状态机模块进入帧完成状态,此时MAC发送模块则将CRC生成模块生成的CRC值添加到数据帧的校验序列字段中并发送给PHY接口;
步骤4678,在数据帧发送完之后,MAC发送状态机模块进入发送完成状态,之后为空状态;此后MAC发送状态机模块回到初始状态,以重新等待新的发送请求。
8.一种视频流接收方法,其特征在于,包括:
步骤10,PHY接口将网络信道的串行数据转换为并行数据并发送给MAC接收模块;
步骤20,MAC接收模块将转换后形成的半字节数据转换为整字节数据,并进行地址识别、CRC校验、长度判断及拆包处理;
步骤30,处理器模块将上述处理好的数据中的压缩音频数据进行解码;
步骤40,低延时编码器将处理好的数据中的压缩图像数据进行解码;
步骤50,通过IO接口或输入输出接口模块输出。
9.如权利要求6所述的视频流接收方法,其特征在于,所述步骤20包括:
步骤201,在接收站点的接收缓存区将要溢出而接收站主机还来不及取走数据时,数据控制模块接收自接收站主机向发送端发送的流量控制请求并发送PAUSE控制帧;
步骤202,数据发送站点接收到PAUSE控制帧后,根据PAUSE控制帧中的参数设置PAUSE定时器;
步骤203,在PAUSE定时器在减到0之前,数据发送站点暂停发送数据;在PAUSE定时器减到0之后,数据发送站点恢复发送数据。
10.如权利要求6或7所述的视频流接收方法,其特征在于,所述步骤20中:
接收过程的状态信息中,接收错误表明PHY接口在接收过程中检测到了错误;
接收到无效符号则表明接收到的帧中包括PHY无法识别的无效符号;
滞后冲突表明接收帧时检测到滞后冲突信号;
超短帧表明接收到的帧小于最短有效的长度;
超长帧表明接收到的帧大于最大有效帧的长度;
半字节对齐错误表明接收到的半字节不是偶数,即帧的长度不是字节的整数倍;
接收溢出则表明MAC接收模块来不及处理接收到的数据而导致接收FIFO溢出。
CN201911282015.0A 2019-12-13 2019-12-13 一种视频流发送、接收方法 Pending CN110996120A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911282015.0A CN110996120A (zh) 2019-12-13 2019-12-13 一种视频流发送、接收方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911282015.0A CN110996120A (zh) 2019-12-13 2019-12-13 一种视频流发送、接收方法

Publications (1)

Publication Number Publication Date
CN110996120A true CN110996120A (zh) 2020-04-10

Family

ID=70093305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911282015.0A Pending CN110996120A (zh) 2019-12-13 2019-12-13 一种视频流发送、接收方法

Country Status (1)

Country Link
CN (1) CN110996120A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112449138A (zh) * 2020-11-18 2021-03-05 重庆航天工业有限公司 低延时视频传输系统及方法
CN112800604A (zh) * 2021-01-26 2021-05-14 上海启迪睿视智能科技有限公司 应用于工业检测的仿真方法、装置、设备及存储介质
WO2022000497A1 (zh) * 2020-07-03 2022-01-06 深圳市大疆创新科技有限公司 一种显示控制方法、装置及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102118289A (zh) * 2010-12-02 2011-07-06 西北工业大学 Ieee1394接口的实时图像分割处理系统与高速智能统一总线接口方法
CN104980682A (zh) * 2015-07-02 2015-10-14 湖北贝力思智能科技有限公司 一种智能动态高清视频传输系统
CN105100663A (zh) * 2014-05-15 2015-11-25 北京同步科技有限公司 基于硬件编码器的录制系统、音视频处理装置和录制方法
CN108337510A (zh) * 2017-12-22 2018-07-27 西安思丹德信息技术有限公司 一种基于h264标准的低延时编解码方法及图像数据传输方法
CN108833932A (zh) * 2018-07-19 2018-11-16 湖南君瀚信息技术有限公司 一种实现高清视频超低延迟编解码及传输的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102118289A (zh) * 2010-12-02 2011-07-06 西北工业大学 Ieee1394接口的实时图像分割处理系统与高速智能统一总线接口方法
CN105100663A (zh) * 2014-05-15 2015-11-25 北京同步科技有限公司 基于硬件编码器的录制系统、音视频处理装置和录制方法
CN104980682A (zh) * 2015-07-02 2015-10-14 湖北贝力思智能科技有限公司 一种智能动态高清视频传输系统
CN108337510A (zh) * 2017-12-22 2018-07-27 西安思丹德信息技术有限公司 一种基于h264标准的低延时编解码方法及图像数据传输方法
CN108833932A (zh) * 2018-07-19 2018-11-16 湖南君瀚信息技术有限公司 一种实现高清视频超低延迟编解码及传输的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孟俊岭: "嵌入式TCP/IP的FPGA实现", 《中国优秀硕士学位论文全文数据库》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022000497A1 (zh) * 2020-07-03 2022-01-06 深圳市大疆创新科技有限公司 一种显示控制方法、装置及系统
CN112449138A (zh) * 2020-11-18 2021-03-05 重庆航天工业有限公司 低延时视频传输系统及方法
CN112800604A (zh) * 2021-01-26 2021-05-14 上海启迪睿视智能科技有限公司 应用于工业检测的仿真方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN110971909A (zh) 一种低功耗低延时soc芯片
US11397703B2 (en) Methods and systems for accessing host memory through non-volatile memory over fabric bridging with direct target access
CN110996120A (zh) 一种视频流发送、接收方法
KR101497001B1 (ko) 그래픽스 멀티미디어 ic 및 그것의 동작 방법
CN108566357B (zh) 基于ZYNQ-7000和FreeRTOS的图像传输与控制系统及方法
US8576864B2 (en) Host ethernet adapter for handling both endpoint and network node communications
CN110087140B (zh) 一种传输流媒体数据的方法、装置、介质及设备
CN114286035B (zh) 图像采集卡、图像采集方法及图像采集系统
US11102445B1 (en) Extending support of Audio Video Transport Protocol by data encapsulation
KR20140048815A (ko) Tcp 가속화를 포함하는 내장형 자동차용 획득 장치를 위한 분산형 측정 배열
CN113301313B (zh) 一种图像数据处理和传输方法及系统
US20060092842A1 (en) Data flow control method for simultaneous packet reception
CN111526317B (zh) 一种低延时图像采集方法、装置及系统
JP2010503095A (ja) データワードストリーム処理装置
CN115499505A (zh) Usb网卡和通信方法
WO2014092551A1 (en) System and method for optimal memory management between cpu and fpga unit
CN113961499B (zh) 一种GIGE vision数据传输方法、采集卡及系统
WO2022000350A1 (zh) 视频传输方法、可移动平台、终端设备、系统及存储介质
CN105450980B (zh) 一种高清航拍控制与视频回传方法及系统
US10318470B1 (en) Systems and methods for data transfer over a shared interface
CN104767957A (zh) 基于嵌入式双核处理器的视频采集编码方法、系统及装置
KR20160140012A (ko) 영상 데이터 전송 및 수신 방법 및 장치
TWI627537B (zh) 應用於通用序列匯流排系統的資料傳輸電路及相關的資料傳輸方法
CN114866733A (zh) 一种低延迟视频处理方法、系统及装置
CN112449137A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200410

RJ01 Rejection of invention patent application after publication