CN115002541A - 一种降低客户端云串流渲染的系统 - Google Patents
一种降低客户端云串流渲染的系统 Download PDFInfo
- Publication number
- CN115002541A CN115002541A CN202210581984.1A CN202210581984A CN115002541A CN 115002541 A CN115002541 A CN 115002541A CN 202210581984 A CN202210581984 A CN 202210581984A CN 115002541 A CN115002541 A CN 115002541A
- Authority
- CN
- China
- Prior art keywords
- frame data
- rendering
- decoded
- thread
- decoding module
- 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
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 92
- 238000005457 optimization Methods 0.000 claims description 8
- 230000003111 delayed effect Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 5
- 230000000903 blocking effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/44012—Processing 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 rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/44008—Processing 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开一种降低客户端云串流渲染的系统,包括:输入线程、输出线程、渲染线程;所述输入线程用于查看解码模块内是否具有空闲的缓冲区域,若有,则将输入队列内的待解码帧数据依次放入至所述解码模块内空闲的缓冲区域内;所述解码模块用于待解码帧数据的解码;所述输出线程用于将解码模块内已解码完成的已解码帧数据,读取至其输出队列中;所述渲染线程用于获取该已解码帧数据,并查看渲染模块是否渲染完成上一帧已解码帧数据,若完成,则查看渲染上一帧已解码帧数据的渲染时长T,并将该渲染时长T与时长阈值K相比较,判断所述渲染时长T是否小于时长阈值K。本发明可避免因帧率高而出现画面延迟的问题,降低渲染延迟,提高渲染效果。
Description
技术领域
本发明涉及云渲染领域,尤其涉及一种降低客户端云串流渲染的系统。
背景技术
在云渲染领域,客户端在接收服务器发送的帧数据后,并不能直接进行渲染操作,在渲染前,一般需要进行解码操作后,才能进行渲染。为了控制数据流程,防止渲染后画面出现撕裂的问题,客户端在接收帧数据后,通常同步进行解码和渲染操作。
以上方法虽可防止渲染后画面撕裂的问题,但对于帧率较高的帧数据,会导致渲染画面的延迟明显,降低用户的体验感。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明的目的是克服现有技术的不足,提供一种降低客户端云串流渲染的系统,解决现有技术中,同步进行帧率较高的帧数据的解码、渲染时,导致渲染画面延迟明显的问题。
本发明的技术方案如下:一种降低客户端云串流渲染的系统,包括:客户端,设置在所述客户端上的输入线程、输出线程、渲染线程;所述客户端用于接收服务端发送的待解码帧数据,并将其放入输入线程的输入队列内;所述输入线程内设置有解码模块,所述输入线程用于查看解码模块内是否具有空闲的缓冲区域,若有,则将输入队列内的待解码帧数据依次放入至所述解码模块内空闲的缓冲区域内;所述解码模块用于放入缓冲区域内的待解码帧数据的解码;所述输出线程用于查询解码模块内是否具有已解码完成的已解码帧数据,若具有,则读取该已解码帧数据,并将其放入至其输出队列中;所述渲染线程用于查看所述输出队列内是否具有已解码帧数据,若具有则获取该已解码帧数据,并查看渲染模块是否渲染完成上一帧已解码帧数据,若完成,则查看渲染上一帧已解码帧数据的渲染时长T,并将该渲染时长T与时长阈值K相比较,判断所述渲染时长T是否小于时长阈值K,若不小于时长阈值K,则渲染所述渲染线程当前所获取的已解码帧数据,若小于,则延迟(K-T)时长后,开始渲染所述渲染线程当前所获取的已解码帧数据。
进一步地,所述输入线程用于查看解码模块内是否具有空闲的缓冲区域,若否,则间隔时长C后再次查看解码模块内是否具有空闲的缓冲区域,重复该操作,直到查看到解码模块内具有空闲的缓冲区域。
进一步地,所述输出线程用于查询解码模块内是否具有已解码完成的已解码帧数据,若否,则间隔时长M后,继续查询解码模块内是否具有已解码完成的已解码帧数据,重复该操作,直到查询到解码模块内具有已解码完成的已解码帧数据。
进一步地,所述输出线程还用于在读取所述已解码帧数据后,进行帧数据优化操作。
进一步地,所述帧数据优化操作包括:进行已解码帧数据的图形增强操作、统计已解码帧数据的像素点。
进一步地,所述渲染线程用于查看所述输出队列内是否具有已解码帧数据,若否,则渲染上一帧已解码帧数据。
采用上述方案,本发明提供一种降低客户端云串流渲染的系统,具有以下有益效果:
1、当已解码帧数据的渲染时长T均不小于时长阈值K,则可进行待渲染帧数据的连续渲染,不会出现卡顿等问题,而若存在已解码帧数据的渲染时长T小于时长阈值K,此时会延迟相应时间后,才进行下一帧的已解码帧数据的渲染,可避免因帧率高而出现画面延迟的问题,降低渲染延迟,提高渲染效果;
2、输入线程、输出线程、渲染线程同步进行操作,无需等待,提高数据的吞吐率,保证渲染出的画面的顺畅性,有效提高用户的体验感。
具体实施方式
以下结合具体实施例,对本发明进行详细说明。
本发明提供一种降低客户端云串流渲染的系统,包括:客户端,设置在所述客户端上的输入线程、输出线程、渲染线程;客户端与外设的服务器通讯连接,所述客户端用于接收服务端发送的待解码帧数据,并将其放入输入线程的输入队列内。
具体地,在本实施例中,所述输入线程内设置有解码模块,该解码模块为mediacodec解码器;所述输入线程用于查看输入队列内是否具有待解码数据,如果没有则等待1ms后继续查看,如果有,则将该待解码数据从输入队列内取出,在取出该待解码数据后,查看解码模块内是否具有空闲的缓冲区域,若有,则将输入队列内的待解码帧数据依次放入至所述解码模块内空闲的缓冲区域内;所述解码模块用于放入缓冲区域内的待解码帧数据的解码;需要说明的是,解码模块内具有多个缓冲区域,当缓冲区域处于空闲状态时,即缓冲区域内无待解码帧数据,此时输入线程可将新的待解码帧数据放入至空闲的缓冲区域内,等待解码模块进行解码操作,此处,并不一定是按照待解码帧数据放入的时间顺序进行解码操作的;输入线程会不断重复上述操作,实现待解码帧数据的获取、解码操作。
具体地,在本实施例中,所述输出线程用于查询解码模块内是否具有已解码完成的已解码帧数据,若具有,则读取该已解码帧数据,并将其放入至其输出队列中;在输出线程获取解码模块内的已解码数据后,会清空解码模块内的该已解码帧数据;输出线程重复进行上述操作,且与输入线程同步进行相关操作,彼此之间互不影响。
具体地,在本实施例中,所述渲染线程用于查看所述输出队列内是否具有已解码帧数据,若否,则渲染上一帧已解码帧数据,若具有则获取该已解码帧数据,并查看渲染模块是否渲染完成上一帧已解码帧数据,若完成,则查看渲染上一帧已解码帧数据的渲染时长T,并将该渲染时长T与时长阈值K相比较,判断所述渲染时长T是否小于时长阈值K,若不小于时长阈值K,则渲染所述渲染线程当前所获取的已解码帧数据,若小于,则延迟(K-T)时长后,开始渲染所述渲染线程当前所获取的已解码帧数据;需要说明的是,渲染线程通过客户端上的SurfaceTexture插件进行已解码帧数据的渲染操作,渲染时长T由具体的渲染结果决定,时长阈值K的值可根据实际需求进行设定,以满足不同的要求;渲染线程会重复进行上述操作,其与输入线程、输出线程同步进行相关操作,各自对立进行,因为待解码帧数据的解码速度可能比已解码帧数据的渲染速度快,同步进行效果更好;此外,输入多少已解码帧数据就可渲染多少帧数据,渲染效率更高,能够提高数据的吞吐率。若每一帧已解码帧数据的渲染时长T均不小于时长阈值K,则可进行待渲染帧数据的连续渲染,因此不会出现卡顿等问题;若存在已解码帧数据的渲染时长T小于时长阈值K,此时需要延迟(K-T)时长后,才能进行下一帧的已解码帧数据(渲染线程当前所获取的已解码帧数据)的渲染,因此,不会因帧率高而出现画面延迟的问题,同时也可避免画面撕裂的问题,降低渲染延迟,提高渲染效果。另一方面,输入线程、输出线程、渲染线程三个部分同步进行操作,无需等待,例如,若渲染线程查看输出线程上的输出队列,输出队列内无已解码帧数据时,其会进行上一帧的已解码帧数据的渲染操作,不会使其处于等待状态,可保证解码、渲染的同步进行,保证渲染出的画面的顺畅性,有效提高用户的体验感。
具体地,在本实施例中,所述输入线程用于查看解码模块内是否具有空闲的缓冲区域,若否,则间隔时长C后再次查看解码模块内是否具有空闲的缓冲区域,重复该操作,直到查看到解码模块内具有空闲的缓冲区域;在解码模块内的所有缓冲区域内均放置有待解码帧数据时,此时这些待解码帧数据均处于等待解码的状态,需缓冲区域空闲后才能将新的待解码帧数据放入;具体地,在本实施例中,所述间隔时长C为1ms。
具体地,在本实施例中,所述输出线程用于查询解码模块内是否具有已解码完成的已解码帧数据,若否,则间隔时长M后,继续查询解码模块内是否具有已解码完成的已解码帧数据,重复该操作,直到查询到解码模块内具有已解码完成的已解码帧数据,具体地,所述间隔时长M为1ms;所述输出线程还用于在读取所述已解码帧数据后,进行帧数据优化操作;所述帧数据优化操作包括:进行已解码帧数据的图形增强操作、统计已解码帧数据的像素点,帧数据优化操作也可以为人脸识别等,具体可根据实际需求决定,当然也可不进行帧数据优化操作。
综上所述,本发明提供一种降低客户端云串流渲染的系统,具有以下有益效果:
1、当已解码帧数据的渲染时长T均不小于时长阈值K,则可进行待渲染帧数据的连续渲染,不会出现卡顿等问题,而若存在已解码帧数据的渲染时长T小于时长阈值K,此时会延迟相应时间后,才进行下一帧的已解码帧数据的渲染,可避免因帧率高而出现画面延迟的问题,降低渲染延迟,提高渲染效果;
2、输入线程、输出线程、渲染线程同步进行操作,无需等待,提高数据的吞吐率,保证渲染出的画面的顺畅性,有效提高用户的体验感。
以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种降低客户端云串流渲染的系统,其特征在于,包括:客户端,设置在所述客户端上的输入线程、输出线程、渲染线程;
所述客户端用于接收服务端发送的待解码帧数据,并将其放入输入线程的输入队列内;所述输入线程内设置有解码模块,所述输入线程用于查看解码模块内是否具有空闲的缓冲区域,若有,则将输入队列内的待解码帧数据依次放入至所述解码模块内空闲的缓冲区域内;所述解码模块用于放入缓冲区域内的待解码帧数据的解码;
所述输出线程用于查询解码模块内是否具有已解码完成的已解码帧数据,若具有,则读取该已解码帧数据,并将其放入至其输出队列中;
所述渲染线程用于查看所述输出队列内是否具有已解码帧数据,若具有则获取该已解码帧数据,并查看渲染模块是否渲染完成上一帧已解码帧数据,若完成,则查看渲染上一帧已解码帧数据的渲染时长T,并将该渲染时长T与时长阈值K相比较,判断所述渲染时长T是否小于时长阈值K,若不小于时长阈值K,则渲染所述渲染线程当前所获取的已解码帧数据,若小于,则延迟(K-T)时长后,开始渲染所述渲染线程当前所获取的已解码帧数据。
2.根据权利要求1所述的一种降低客户端云串流渲染的系统,其特征在于,所述输入线程用于查看解码模块内是否具有空闲的缓冲区域,若否,则间隔时长C后再次查看解码模块内是否具有空闲的缓冲区域,重复该操作,直到查看到解码模块内具有空闲的缓冲区域。
3.根据权利要求1所述的一种降低客户端云串流渲染的系统,其特征在于,所述输出线程用于查询解码模块内是否具有已解码完成的已解码帧数据,若否,则间隔时长M后,继续查询解码模块内是否具有已解码完成的已解码帧数据,重复该操作,直到查询到解码模块内具有已解码完成的已解码帧数据。
4.根据权利要求1所述的一种降低客户端云串流渲染的系统,其特征在于,所述输出线程还用于在读取所述已解码帧数据后,进行帧数据优化操作。
5.根据权利要求4所述的一种降低客户端云串流渲染的系统,其特征在于,所述帧数据优化操作包括:进行已解码帧数据的图形增强操作、统计已解码帧数据的像素点。
6.根据权利要求1所述的一种降低客户端云串流渲染的系统,其特征在于,所述渲染线程用于查看所述输出队列内是否具有已解码帧数据,若否,则渲染上一帧已解码帧数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210581984.1A CN115002541A (zh) | 2022-05-26 | 2022-05-26 | 一种降低客户端云串流渲染的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210581984.1A CN115002541A (zh) | 2022-05-26 | 2022-05-26 | 一种降低客户端云串流渲染的系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115002541A true CN115002541A (zh) | 2022-09-02 |
Family
ID=83028583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210581984.1A Pending CN115002541A (zh) | 2022-05-26 | 2022-05-26 | 一种降低客户端云串流渲染的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115002541A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116886974A (zh) * | 2023-09-07 | 2023-10-13 | 海马云(天津)信息技术有限公司 | 优化终端解码渲染性能的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105118077A (zh) * | 2015-09-02 | 2015-12-02 | 广东建设职业技术学院 | 一种提高文件拍摄流畅性的方法及系统 |
US20190189086A1 (en) * | 2016-09-01 | 2019-06-20 | Apple Inc. | Electronic Devices with Displays |
CN110832875A (zh) * | 2018-07-23 | 2020-02-21 | 深圳市大疆创新科技有限公司 | 视频处理方法、终端设备、机器可读存储介质 |
CN111836104A (zh) * | 2020-07-09 | 2020-10-27 | 海信视像科技股份有限公司 | 显示设备及显示方法 |
-
2022
- 2022-05-26 CN CN202210581984.1A patent/CN115002541A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105118077A (zh) * | 2015-09-02 | 2015-12-02 | 广东建设职业技术学院 | 一种提高文件拍摄流畅性的方法及系统 |
US20190189086A1 (en) * | 2016-09-01 | 2019-06-20 | Apple Inc. | Electronic Devices with Displays |
CN110832875A (zh) * | 2018-07-23 | 2020-02-21 | 深圳市大疆创新科技有限公司 | 视频处理方法、终端设备、机器可读存储介质 |
CN111836104A (zh) * | 2020-07-09 | 2020-10-27 | 海信视像科技股份有限公司 | 显示设备及显示方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116886974A (zh) * | 2023-09-07 | 2023-10-13 | 海马云(天津)信息技术有限公司 | 优化终端解码渲染性能的方法和装置 |
CN116886974B (zh) * | 2023-09-07 | 2023-12-19 | 海马云(天津)信息技术有限公司 | 优化终端解码渲染性能的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109769115B (zh) | 一种优化智能视频分析性能的方法、装置和设备 | |
WO2017107793A1 (zh) | 一种数据处理方法和设备 | |
CN109711323B (zh) | 一种实时视频流分析加速方法、装置和设备 | |
US9940732B2 (en) | Implementing reduced video stream bandwidth requirements when remotely rendering complex computer graphics scene | |
CN115002541A (zh) | 一种降低客户端云串流渲染的系统 | |
US20210345009A1 (en) | Method and device, equipment, and storage medium for data processing | |
US12111778B2 (en) | Image processing accelerator | |
CN112235579A (zh) | 视频处理方法、计算机可读存储介质及电子设备 | |
CN113573072B (zh) | 一种图像处理方法、装置及相关组件 | |
CN115499662A (zh) | 一种视频抽帧方法、装置、设备以及存储介质 | |
WO2017162015A1 (zh) | 一种数据处理方法及装置、存储介质 | |
CN111428560B (zh) | 视频图像处理方法、装置、电子设备及存储介质 | |
CN113395523A (zh) | 基于并行线程的图像解码方法、装置、设备及存储介质 | |
US10791332B2 (en) | Video data processing system | |
CN109995965A (zh) | 一种基于fpga的超高分辨率视频图像实时校准方法 | |
CN114116234B (zh) | 一种基于浏览器的三维场景模型解压缩加载方法 | |
US12028737B2 (en) | Method and apparatus for reducing latency and collisions in a virtual reality/alternate reality system | |
CN106528456B (zh) | 一种提高视频解码显示中系统总线效率的方法及系统 | |
JP2003046945A (ja) | 効率的な映像処理のための前後処理方法及びそれを適用した前後処理システム | |
CN110764710A (zh) | 低延迟高iops的数据访问方法与存储系统 | |
CN111541941B (zh) | 一种移动端多编码器加速编码的方法 | |
CN105263023A (zh) | 基于高速解码平台的网络码流实时接收方法 | |
CN109828988A (zh) | 一种大数据统计方法及用于大数据统计的系统 | |
EP3718101A2 (en) | Managing display data | |
CN116883691A (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: 20220902 |
|
RJ01 | Rejection of invention patent application after publication |