WO2017162015A1 - 一种数据处理方法及装置、存储介质 - Google Patents

一种数据处理方法及装置、存储介质 Download PDF

Info

Publication number
WO2017162015A1
WO2017162015A1 PCT/CN2017/075500 CN2017075500W WO2017162015A1 WO 2017162015 A1 WO2017162015 A1 WO 2017162015A1 CN 2017075500 W CN2017075500 W CN 2017075500W WO 2017162015 A1 WO2017162015 A1 WO 2017162015A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
module
value
data file
media data
Prior art date
Application number
PCT/CN2017/075500
Other languages
English (en)
French (fr)
Inventor
王志杰
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2017162015A1 publication Critical patent/WO2017162015A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Definitions

  • the present invention relates to communication technologies, and in particular, to a data processing method and apparatus, and a storage medium.
  • Cloud conferencing is an efficient, convenient, and low-cost form of meeting based on cloud computing technology. Users can quickly and efficiently share voices with teams and customers around the world by using an easy-to-use Internet interface. Data files and videos, and complex technologies such as data transmission and processing in conferences are assisted by cloud conference service providers.
  • the current cloud conferencing system usually runs on a public cloud or a private cloud.
  • the public cloud is generally leased, and the reserved resources (the number of cores and memory of the central processor) are paid.
  • the use of the private cloud also requires consideration of the resources of the server. Whether the number of cores and memory of the central processor is sufficient, and whether the critical value of the system is reached. Therefore, the central processing unit (CPU) performance of the server is the key to affect the quality of the cloud conference.
  • CPU central processing unit
  • the methods for optimizing the CPU performance of the server mainly include: optimizing audio and video. Codec algorithm, or directly expand the number of CPU cores, or reduce the quality of audio and video; in the above method, reducing the quality of audio and video will affect the conference effect; while optimizing the audio and video codec algorithm and directly expanding the CPU core is more complicated to operate, therefore, Under the premise of not affecting the quality of audio and video in the conference, how to optimize the CPU performance of the server becomes a difficult problem to solve.
  • the embodiment of the invention provides a data processing method and device, and a storage medium, and the purpose thereof is to solve the problem of optimizing the CPU performance of the cloud conference server without affecting the audio and video quality in the conference.
  • an embodiment of the present invention provides a data processing method, which is applied to a cloud conference server, and the data processing method includes:
  • Receiving a media data file transmitted by the terminal device pre-judges a frame value of the media data file, and obtains a maximum frame value for encoding and/or decoding the media data file;
  • the memory page corresponding to the capacity value is read, and the corresponding corresponding to the media data file is encoded and/or decoded.
  • the step of pre-judging the frame value of the media data file to obtain a maximum frame value for encoding and/or decoding the media data file includes:
  • the conference capability when interacting with the terminal device, where the conference capability includes an upper conference rate of the terminal device and an audio format and a video format when the terminal device performs data interaction with the protocol stack;
  • the maximum frame value is determined according to the conference capability.
  • the method further includes:
  • the frame drawing process is performed on the image of the decoded media data file that satisfies the preset frame drawing condition.
  • the step of performing frame extraction processing on the image that satisfies the preset frame drawing condition in the decoded media data file includes:
  • the first frame image and the second frame image are images in the decoded media data file:
  • the first frame image is deleted
  • the first frame image is retained.
  • the method further includes:
  • the compiling module When it is detected that the system code changes, the compiling module is called to compile the change code
  • the test case of the change code is executed, and the relevant information of the test case is recorded and output;
  • the related information includes: the length of time used to execute the test case, the system CPU usage rate, and the system memory occupancy rate;
  • the method further includes:
  • Obtaining and recording change information of the change code including: change time and change position of the change code, a function or module related to the change code, a function or module called by the function related to the change code.
  • an embodiment of the present invention further provides a data processing apparatus, which is applied to a cloud conference server, where the data processing apparatus includes:
  • the receiving module is configured to receive the media data file transmitted by the terminal device, and perform pre-judgment on the frame value of the media data file to obtain a maximum frame value for encoding and/or decoding the media data file;
  • Determining a module configured to determine a capacity value of a memory page corresponding to a maximum frame value
  • the reading module is configured to read a memory page corresponding to the capacity value, and encode and/or decode the corresponding media data file.
  • the receiving module includes:
  • Obtaining a sub-module configured to obtain a conference capability when interacting with the terminal device, where the conference capability includes an uplink conference rate of the terminal device and an audio format and a video format when the terminal device performs data interaction with the protocol stack;
  • a frame value determination sub-module configured to determine a maximum frame value based on the conference capability.
  • the device further includes:
  • the frame drawing module is configured to perform frame drawing processing on the image that satisfies the preset frame drawing condition in the decoded media data file.
  • the frame drawing module includes:
  • a comparison submodule configured to compare data of the first frame image and adjacent to the first frame image
  • the data of the second frame image, the first frame image and the second frame image are all images in the decoded media data file:
  • Deleting the sub-module configured to delete the first frame image if the data of the first frame image and the data of the second frame image are different from the first preset value
  • the sub-module is configured to retain the first frame image if the data of the first frame image and the data of the second frame image are different from the first preset value.
  • the device further includes:
  • the monitoring module is configured to: when the system code is detected to change, the compiling module is compiled to compile the change code;
  • the execution module is configured to execute the test case of the change code if the change code is successfully compiled, and record and output the test case related information; the related information includes: the length of time used to execute the test case, the system CPU usage rate, and the system memory occupancy rate;
  • the logging module is configured to record the location of the error during compilation if the compile code fails to compile.
  • the device further includes:
  • a recording module configured to monitor the module when a change in the system code is detected
  • Obtaining and recording change information of the change code including: change time and change position of the change code, a function or module related to the change code, a function or module called by the function related to the change code.
  • An embodiment of the present invention provides a data processing apparatus, including:
  • a memory device configured to receive a media data file transmitted by the terminal device
  • a processor configured to pre-judicate a frame value of the media data file, to obtain a maximum frame value for encoding and/or decoding the media data file; and determining a memory page corresponding to the maximum frame value a capacity value; reading a memory page corresponding to the capacity value, and performing corresponding encoding and/or decoding on the media data file.
  • the embodiment of the invention provides a storage medium, which stores executable instructions for executing the data processing method provided by the embodiment of the invention.
  • the present invention optimizes the CPU performance of the cloud conference server without affecting the audio and video quality of the cloud conference, so that the cloud conference system runs at a low level Under load, low energy consumption environment.
  • FIG. 1 is a flow chart showing the basic steps of a data processing method according to a first embodiment of the present invention
  • Figure 2 is a block diagram showing a data processing apparatus according to a second embodiment of the present invention.
  • Figure 3 is a flow chart showing the basic steps performed by the compiler management module of the second embodiment of the present invention.
  • FIG. 4 is a flow chart showing the basic steps performed by the memory management module of the second embodiment of the present invention.
  • Figure 5 is a flow chart showing the basic steps of the execution of the encoding algorithm module of the second embodiment of the present invention.
  • Figure 6 is a block diagram showing a data processing apparatus according to a third embodiment of the present invention.
  • Fig. 7 is a block diagram showing a data processing apparatus according to a third embodiment of the present invention.
  • a first embodiment of the present invention provides a data processing method, which is applied to a cloud conference.
  • the server, the data processing method includes:
  • Step 101 Receive a media data file transmitted by the terminal device, and perform pre-judgment on a frame value of the media data file to obtain a maximum frame value for encoding and/or decoding the media data file.
  • the server receives media data files from each terminal device, and performs operations such as decoding and encoding the media data files.
  • the server needs to repeatedly read the memory to complete the encoding and decoding work. Therefore, the system memory is mainly consumed in the process of encoding and decoding. Therefore, reducing the number of times the system reads the memory can effectively Reduce the CPU usage.
  • the size of the frame value of each media data file of each terminal device is different. Therefore, simply expanding the memory page causes a waste of resources for the terminal device with a smaller frame value of the media data file. Therefore, it is required.
  • the frame value of the media data file of each terminal device is predicted, and the maximum frame value for encoding and/or decoding the media data file is obtained. According to the maximum frame value, the terminal device matches the most suitable memory page, and the memory is reasonably utilized.
  • Step 102 Determine a capacity value of a memory page corresponding to a maximum frame value.
  • the capacity value of a memory page is the size of the memory page.
  • the capacity value of the memory page corresponding to the maximum frame value can be configured.
  • the memory page of the server can be divided into three pages according to the size, such as a large page, a middle page, and a small page, so that the terminal device with higher resolution is used. It can allocate large page memory for it, avoiding the need for repeated reading of the memory page and increasing the CPU usage. For terminal devices with lower resolution, it can allocate small page memory for it, avoiding the waste of resources caused by using large page memory.
  • the capacity values of the large page, the middle page, and the small page are sequentially reduced.
  • the specific value of the capacity value is not limited in the embodiment of the present invention.
  • Step 103 Read a memory page corresponding to the capacity value, and encode and/or decode the media data file.
  • step 101 receiving a media data file transmitted by the terminal device, pre-judges a frame value of the media data file, and obtains a maximum frame value for encoding the media data file; in step 102, Determining a capacity value of the memory page corresponding to the encoded maximum frame value; then, in step 103, reading a memory page corresponding to the capacity value of the encoded maximum frame value, and encoding the media data file.
  • step 101 the media data file transmitted by the terminal device is received, and the frame value of the media data file is pre-judged to obtain a maximum frame value for decoding the media data file.
  • step 102 the maximum frame value is determined.
  • step 101 receiving a media data file transmitted by the terminal device, pre-judging a frame value of the media data file, and obtaining a maximum frame value for encoding and decoding the media data file; and determining, in the step 102, the encoding a capacity value of a memory page corresponding to a maximum frame value, and a capacity value of a memory page corresponding to the decoded maximum frame value;
  • step 103 the memory page corresponding to the capacity value of the encoded maximum frame value is read, the media data file is encoded, and the memory page corresponding to the capacity value of the decoded maximum frame value is read, and the media data file is decoded.
  • the server encodes and/or decodes the media data file according to the size of the memory page corresponding to the capacity value, and reduces the number of times of reading the memory and reduces the CPU usage without wasting memory.
  • the server adjusts the size of the memory page in real time according to the frame value of the media data file of the next terminal device, thereby avoiding increasing system memory and achieving optimized CPU performance. .
  • step 101 includes:
  • the conference capability when interacting with the terminal device, where the conference capability includes an upper conference rate of the terminal device and an audio format and a video format when the terminal device performs data interaction with the protocol stack;
  • the maximum frame value is determined according to the conference capability.
  • the maximum frame value of the media data file transmitted by the terminal device may be pre-determined according to the conference capability of the terminal device, for example, determining the foregoing three according to the rate of the terminal device, the audio format and the video format when the data is exchanged with the protocol stack.
  • the maximum frame value that the parameter can support may be pre-determined according to the conference capability of the terminal device, for example, determining the foregoing three according to the rate of the terminal device, the audio format and the video format when the data is exchanged with the protocol stack.
  • the method further includes:
  • the frame drawing process is performed on the image of the decoded media data file that satisfies the preset frame drawing condition.
  • the purpose of the frame drawing process is to reduce the frame rate of the media data file and reduce the workload of the server.
  • the step of performing frame drawing processing on the image that satisfies the preset frame drawing condition in the decoded media data file includes:
  • the first frame image and the second frame image are images in the decoded media data file:
  • the first frame image is deleted
  • the first frame image is retained.
  • the first preset value can be set according to the actual situation. Comparing the data of two adjacent frames of images, if the number of different data in the data of the two frames is smaller than the first preset value, it indicates that the picture composed of the two frames may be a still picture, and one frame may be deleted, and vice versa. If the amount of data change between the two frames is greater than the first preset value, it means that the picture composed of the two frames may be a moving picture, and it is necessary to retain two frames at the same time, repeat the above action of the frame drawing, and continue to compare the latter image. Selecting unnecessary media frames selectively reduces the amount of data processed by the server and reduces the complexity of encoding and decoding.
  • the method further includes:
  • the compilation module is called to compile the change code.
  • the compiling module is directly called to compile the relevant code.
  • the second step if the change code is successfully compiled, execute the test case of the change code, record and Output information about the test case; related information includes: the length of time used to execute the test case, system CPU usage, and system memory usage.
  • the test case is executed, and the relevant information of the test case is recorded and outputted, so that the staff can optimize the change code and modify the relevant code in a targeted manner; for example, if the execution case is used for a long time, or the CPU When the occupancy rate and system memory usage are high, you need to change the relevant code to optimize the code for the compilation result.
  • the third step if the change code fails to compile, records the location where the error occurred during compilation.
  • the method further includes:
  • Obtaining and recording change information of the change code including: change time and change position of the change code, a function or module related to the change code, a function or module called by the function related to the change code.
  • the change information of the change code is obtained and recorded, so that the staff can perform code optimization and error positioning, and enhance the maintainability of the system.
  • the data processing method provided by the embodiment of the present invention adjusts the size of the memory page in real time according to the maximum frame value of the media data file, and uses the system memory reasonably to reduce the reading without wasting memory.
  • the number of times of memory is taken, the CPU usage is reduced; unnecessary media frames are selectively extracted by frame drawing processing, the amount of data processed by the server is reduced, and the complexity of encoding and decoding is reduced; when the system code changes, the compiling module is directly called. Compile and record the compilation results and related information of the change code to facilitate the staff to optimize the code and locate the error, and enhance the maintainability of the system.
  • the invention enables the cloud conference system to run without affecting the audio and video quality of the cloud conference. Optimized cloud conference server CPU performance in a low-load, low-power environment.
  • FIG. 2 is a block diagram of a data processing apparatus according to a second embodiment.
  • the data processing apparatus is applied to a cloud conference system, where the data processing apparatus includes the following modules:
  • Compiling the management module 201 wherein the compilation management module 201 compiles the strategy while compiling, and reports the compilation result; optionally, the system code is compiled by the ICC compiler (Intel C++Compiler), and the compiler can be extremely Improve application performance and improve application execution.
  • ICC compiler Intel C++Compiler
  • the memory management module 202 is configured to manage the memory of the entire system, and adjust the size of the memory page in real time according to the media frame size, and utilize the system memory reasonably;
  • the encoding algorithm module 203 is configured to adjust the encoding frame extraction strategy in real time according to the selective frame drawing, and the encoding module calls the strategy to encode, and encodes the image pixel (YUV format or RGB format) into the H26* code stream.
  • the three modules are not directly communicated, but are three independent modules in the entire data processing device. This embodiment optimizes the performance of the entire cloud conference system by adding these three modules;
  • the compilation management module 201 performs the following steps:
  • step 301 the code is monitored in real time for changes.
  • the code writer needs to strictly follow the ICC compiler standard, and when a new function is added or modified, the code writer needs to supplement or modify the test case.
  • Step 302 when it is found that there is a code change, the compilation module is called to start the compilation;
  • Step 303 Determine whether the compilation is completed: if not, return to continue compiling; if yes, execute step 304 to feed back the compilation result.
  • the compilation result includes the change time and change position of the change code, the function or module related to the change code, and the function or module called by the function related to the change code.
  • the code writer can quickly perform code optimization according to the compiled result reported by the compiler management module 201.
  • the memory management module 202 performs the following steps:
  • step 401 the media frame is pre-judged.
  • the size of the media frame needs to be pre-determined, and the media frame size is predicted based on the conference capability (including the upper conference rate and the audio and video format) of the conference terminal interacting with the protocol stack.
  • the ability to match a maximum possible frame size determines the page size used by the decoding module of the cloud conference server to read memory.
  • Step 402 Allocate a memory page for the terminal device according to the predicted maximum frame value.
  • the media module of the cloud conference server needs to repeatedly read the memory to complete encoding and decoding, so the system memory is mainly consumed in the codec portion of the media, and the memory management module 202 mainly manages the memory usage of the media, through transparent large page memory technology. Reduce the number of YUV or RGB pixel format copies without reducing system memory, and reduce the number of times the media module accesses memory to improve system performance and reduce CPU usage. For each terminal, the size of each media frame is different. If the page size is simply expanded by the large page memory, memory is wasted for small media frames, and the memory management module 202 also According to the media frame size of each terminal, it is responsible for real-time adjustment of the page size of the memory to adapt to different sizes of media frames, and make full use of the memory.
  • the encoding algorithm module 203 mainly performs the following steps:
  • Step 501 Compare media frames to obtain the amount of data changed between adjacent media frames.
  • the encoding algorithm module 203 compares the media frames that are adjacent to each other to obtain the amount of data that varies between the two frames.
  • Step 502 When there is no change between the two frames of data, indicating that the terminal is a still picture in the time period, step 503 is performed to extract one frame of data.
  • Step 504 When the change between the two frames of data is small (the amount of data change is less than a preset value), indicating that the terminal is a small motion picture in the time period, step 505 is performed according to the first preset. A frame is extracted proportionally.
  • Step 506 when the two frames of data vary greatly (the amount of data change is greater than or equal to the preset value), indicating that the terminal is a large motion picture in the time period, step 507 is performed, and the second preset ratio is drawn. frame.
  • the encoding algorithm module 203 can selectively extract certain unneeded media frames, thereby reducing the amount of data processed by the module and reducing the coding complexity.
  • the code iteration speed is accelerated by the compiler management module 201, and the system running performance is optimized; under the premise of not reducing the quality of the audio and video, the memory management module 202 adjusts the memory page size in real time without waste of memory. The number of times of reading the memory is reduced, and the CPU usage of the system is reduced.
  • the encoding algorithm module 203 selectively extracts unnecessary media frames by reducing the frame number of the system without increasing the number of CPU cores of the system, thereby reducing the amount of data processed by the server. , reduce the complexity of encoding and decoding.
  • a third embodiment of the present invention provides a data processing apparatus, which is applied to a cloud conference server, where the data processing apparatus includes:
  • the receiving module 601 is configured to receive the media data file transmitted by the terminal device, and perform pre-judgment on the frame value of the media data file to obtain a maximum frame value for encoding and/or decoding the media data file;
  • a determining module 602 configured to determine a capacity value of a memory page corresponding to a maximum frame value
  • the reading module 603 is configured to read a memory page corresponding to the capacity value, and encode and/or decode the media data file.
  • the receiving module 601 includes:
  • Obtaining a sub-module configured to obtain a conference capability when interacting with the terminal device, where the conference capability includes an uplink conference rate of the terminal device and an audio format and a video format when the terminal device performs data interaction with the protocol stack;
  • a frame value determination sub-module configured to determine a maximum frame value based on the conference capability.
  • the device further includes:
  • the frame drawing module is configured to perform frame drawing processing on the image that satisfies the preset frame drawing condition in the decoded media data file.
  • the frame drawing module includes:
  • the comparison submodule is configured to compare the data of the first frame image and the data of the second frame image adjacent to the first frame image, where the first frame image and the second frame image are images in the decoded media data file:
  • Deleting the sub-module configured to delete the first frame image if the data of the first frame image and the data of the second frame image are different from the first preset value
  • the sub-module is configured to retain the first frame image if the data of the first frame image and the data of the second frame image are different from the first preset value.
  • the device further includes:
  • the monitoring module is configured to: when the system code is detected to change, the compiling module is compiled to compile the change code;
  • the execution module is configured to execute the test case of the change code if the change code is successfully compiled, and record and output the test case related information; the related information includes: the length of time used to execute the test case, the system CPU usage rate, and the system memory occupancy rate;
  • the logging module is configured to record the location of the error during compilation if the compile code fails to compile.
  • the device further includes:
  • a recording module configured to monitor the module when a change in the system code is detected
  • Obtaining and recording change information of the change code including: change time and change position of the change code, a function or module related to the change code, a function or module called by the function related to the change code.
  • the data processing apparatus 700 includes:
  • the memory device 702 is configured to receive a media data file transmitted by the terminal device
  • the processor 701 is configured to perform pre-judgment on a frame value of the media data file to obtain a maximum frame value for encoding and/or decoding the media data file, and determine a memory page corresponding to the maximum frame value. a capacity value; reading a memory page corresponding to the capacity value, and performing corresponding encoding and/or decoding on the media data file.
  • processor 701 can be implemented in various manners, such as a central processing unit, a microprocessor (MCU), an application specific integrated circuit (ASIC), a logic programmable gate (FPGA), and the like.
  • MCU microprocessor
  • ASIC application specific integrated circuit
  • FPGA logic programmable gate
  • the embodiment of the invention further provides a storage medium, wherein the storage medium stores executable instructions, and the executable instructions are used in the data processing method, for example, at least one of the methods shown in FIG. 1, FIG. 3, FIG. 4 and FIG. One.
  • the storage medium in the embodiment of the present invention may be a storage medium such as an optical disk, a hard disk, or a magnetic disk, and may be a non-transitory storage medium.
  • the maximum frame value of the media data file is predicted, and the size of the memory page is adjusted in real time according to the maximum frame value, and the system memory is used reasonably, and the number of times of reading the memory is reduced without wasting memory.
  • Reduce CPU usage selectively extract unnecessary media frames by frame extraction, reduce the amount of data processed by the server, and reduce the complexity of encoding and decoding; when the system code changes, directly call the compilation module to compile and record compilation.
  • the result and the related information of the change code so as to facilitate the staff to perform code optimization and error location, and enhance the maintainability of the system; the invention enables the cloud conference system to operate at a low load without affecting the quality of the cloud conference audio and video.
  • the cloud conference server CPU performance is optimized in a low-energy environment.
  • the data processing apparatus provided by the embodiment of the present invention is the apparatus applying the above method, that is, all the embodiments of the foregoing methods are applicable to the apparatus, and all of the same or similar beneficial effects can be achieved.
  • the present invention provides a data processing method and apparatus, and a storage medium.
  • the data processing method is applied to a cloud conference server.
  • the data processing method includes: receiving a media data file transmitted by the terminal device, and predicting a frame value of the media data file. And obtaining a maximum frame value for encoding and/or decoding the media data file; determining a capacity value of the memory page corresponding to the maximum frame value; reading a memory page corresponding to the capacity value, encoding the media data file and/or Or decoding.
  • the invention solves the problem that the performance of the cloud conference server CPU is optimized under the premise that the audio and video quality in the conference is not affected under the existing situation.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Telephonic Communication Services (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种数据处理方法及装置、存储介质,该数据处理方法应用于云会议服务器,该数据处理方法包括:接收终端设备传输的媒体数据文件,对媒体数据文件的帧值进行预判,得出对媒体数据文件进行编码和/或解码的最大帧值(101);确定与最大帧值相对应的内存页的容量值(102);读取与容量值对应的内存页,对媒体数据文件进行编码和/或解码(103)。

Description

一种数据处理方法及装置、存储介质 技术领域
本发明涉及通信技术,特别涉及一种数据处理方法及装置、存储介质。
背景技术
云会议是基于云计算技术的一种高效、便捷、低成本的会议形式,使用者只需要通过互联网界面,进行简单易用的操作,便可快速高效地与全球各地团队及客户同步分享语音、数据文件及视频,而会议中数据的传输、处理等复杂技术由云会议服务商帮助使用者进行操作。目前的云会议系统通常运行在公有云或私有云上,使用公有云一般是通过租赁方式,按照预约的资源(中央处理器的核数及内存)进行付费,使用私有云也需要考虑服务器的资源(中央处理器的核数及内存)是否够用,是否达到了系统的临界值。因此,服务器的中央处理器(CPU)性能是影响云会议质量的关键所在,而在云会议中,耗CPU性能最多的就是音视频媒体,目前优化服务器的CPU性能的方法主要包括:优化音视频编解码算法,或直接扩展CPU核数,或降低音视频质量;上述方法中,降低音视频质量会影响会议效果;而优化音视频编解码算法以及直接扩展CPU核数操作起来比较复杂,因此,在不影响会议中音视频质量的前提下,如何优化服务器CPU性能,成为一个难以解决的问题。
发明内容
本发明实施例提供了一种数据处理方法及装置、存储介质,其目的是为了解决在不影响会议中音视频质量的前提下,难以实现优化云会议服务器CPU性能的问题。
为了达到上述目的,本发明的实施例提供了一种数据处理方法,应用于云会议服务器,该数据处理方法包括:
接收终端设备传输的媒体数据文件,对媒体数据文件的帧值进行预判,得出对媒体数据文件进行编码和/或解码的最大帧值;
确定与最大帧值相对应的内存页的容量值;
读取与容量值对应的内存页,对媒体数据文件对应的进行编码和/或解码。
上述方案中,对媒体数据文件的帧值进行预判,得出对媒体数据文件进行编码和/或解码的最大帧值的步骤,包括:
获取与终端设备交互时的会议能力,会议能力包括终端设备的上会速率以及终端设备与协议栈进行数据交互时的音频格式、视频格式;
根据会议能力确定最大帧值。
上述方案中,该方法还包括:
对解码后的媒体数据文件中满足预设的抽帧条件的图像,进行抽帧处理。
上述方案中,对解码后的媒体数据文件中满足预设的抽帧条件的图像,进行抽帧处理的步骤,包括:
对比第一帧图像的数据以及与第一帧图像相邻的第二帧图像的数据,第一帧图像、第二帧图像均为解码后的媒体数据文件中的图像:
若第一帧图像的数据与第二帧图像的数据中,内容不相同数据的数量小于第一预设值,则删除第一帧图像;
若第一帧图像的数据与第二帧图像的数据中,内容不相同数据的数量大于等于第一预设值,则保留第一帧图像。
上述方案中,该方法还包括:
当监测到系统代码发生变化时,调用编译模块编译变化代码;
若变化代码编译成功,则执行变化代码的测试用例,记录并输出测试用例的相关信息;相关信息包括:执行测试用例所用时长、系统CPU占用率以及系统内存占用率;
若变化代码编译失败,则记录编译过程中发生错误的位置。
上述方案中,当监测到系统代码发生变化的步骤之后,还包括:
获取并记录变化代码的变化信息,变化信息包括:变化代码的变化时间以及变化位置,与变化代码相关的函数或模块,与变化代码相关的函数所调用的函数或模块。
为了实现上述目的,本发明的实施例还提供了一种数据处理装置,应用于云会议服务器,该数据处理装置包括:
接收模块,配置为接收终端设备传输的媒体数据文件,对媒体数据文件的帧值进行预判,得出对媒体数据文件进行编码和/或解码的最大帧值;
确定模块,配置为确定与最大帧值相对应的内存页的容量值;
读取模块,配置为读取与容量值对应的内存页,对媒体数据文件对应进行编码和/或解码。
上述方案中,接收模块包括:
获取子模块,配置为获取与终端设备交互时的会议能力,会议能力包括终端设备的上会速率以及终端设备与协议栈进行数据交互时的音频格式、视频格式;
帧值确定子模块,配置为根据会议能力确定最大帧值。
上述方案中,该装置还包括:
抽帧模块,配置为对解码后的媒体数据文件中满足预设的抽帧条件的图像,进行抽帧处理。
上述方案中,抽帧模块包括:
对比子模块,配置为对比第一帧图像的数据以及与第一帧图像相邻的 第二帧图像的数据,第一帧图像、第二帧图像均为解码后的媒体数据文件中的图像:
删除子模块,配置为若第一帧图像的数据与第二帧图像的数据中,内容不相同数据的数量小于第一预设值时,删除第一帧图像;
保留子模块,配置为若第一帧图像的数据与第二帧图像的数据中,内容不相同数据的数量大于等于第一预设值时,保留第一帧图像。
上述方案中,该装置还包括:
监测模块,配置为当监测到系统代码发生变化时,调用编译模块编译变化代码;
执行模块,配置为若变化代码编译成功,则执行变化代码的测试用例,记录并输出测试用例的相关信息;相关信息包括:执行测试用例所用时长、系统CPU占用率以及系统内存占用率;
记录模块,配置为若变化代码编译失败,则记录编译过程中发生错误的位置。
上述方案中,该装置还包括:
记录模块,配置为在监测模块当监测到系统代码发生变化之后,
获取并记录变化代码的变化信息,变化信息包括:变化代码的变化时间以及变化位置,与变化代码相关的函数或模块,与变化代码相关的函数所调用的函数或模块。
本发明的实施例提供了一种数据处理装置,包括:
内存器,用于接收终端设备传输的媒体数据文件;
处理器,用于对所述媒体数据文件的帧值进行预判,得出对所述媒体数据文件进行编码和/或解码的最大帧值;确定与所述最大帧值相对应的内存页的容量值;读取与所述容量值对应的内存页,对所述媒体数据文件进行对应的编码和/或解码。
本发明实施例提供了一种存储介质,存储有可执行指令,用于执行本发明实施例提供的数据处理方法。
本发明实施例的上述方案包括以下有益效果:
通过预判媒体数据文件的最大帧值,根据最大帧值的大小,实时调整内存页的大小,合理利用系统内存,在不浪费内存的前提下,减少读取内存的次数,降低CPU占用率;通过抽帧处理选择性地抽取不必要的媒体帧,减少服务器处理的数据量,降低编码、解码的复杂度;系统代码发生变化时,直接调用编译模块进行编译并记录编译结果以及变化代码的相关信息,以方便工作人员进行代码优化以及错误定位,增强系统的可维护性;本发明在不影响云会议音视频质量的前提下,优化了云会议服务器CPU性能,使云会议系统运行在一个低负载、低能耗的环境下。
附图说明
图1表示本发明的第一实施例提供的数据处理方法的基本步骤流程图;
图2表示本发明的第二实施例提供的数据处理装置的框图;
图3表示本发明的第二实施例的编译管理模块执行的基本步骤流程图;
图4表示本发明的第二实施例的内存管理模块执行的基本步骤流程图;
图5表示本发明的第二实施例的编码算法模块执行的基本步骤流程图;
图6表示本发明的第三实施例提供的数据处理装置的框图;
图7表示本发明的第三实施例提供的数据处理装置的框图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
第一实施例
参见图1,本发明的第一实施例提供了一种数据处理方法,应用于云会 议服务器,该数据处理方法包括:
步骤101,接收终端设备传输的媒体数据文件,对媒体数据文件的帧值进行预判,得出对媒体数据文件进行编码和/或解码的最大帧值。
其中,云会议过程中,服务器接收来自各个终端设备的媒体数据文件,并对媒体数据文件进行解码、编码等操作。在编码和/或解码的过程中,服务器需要反复读取内存来完成编码、解码的工作,因此,系统内存主要消耗在编码、解码的过程中,因此,减少系统读取内存的次数,可有效地减少CPU占用率。而各个终端设备的每个媒体数据文件的帧值的大小是不同的,因此,简单地通过扩大内存页,对于媒体数据文件帧值较小的终端设备,就会造成资源的浪费,因此,需要预判各个终端设备的媒体数据文件的帧值,得出对媒体数据文件进行编码和/或解码的最大帧值,根据最大帧值为该终端设备匹配最适应的内存页,合理地利用内存。
步骤102,确定与最大帧值相对应的内存页的容量值。
例如,内存页的容量值即内存页的大小。可根据服务器的性能,配置与最大帧值相对应的内存页的容量值,比如服务器的内存页按照大小可分为大页、中页以及小页三种,那么对于分辨率较高的终端设备,可为其分配大页内存,避免内存页不足需要反复读取,增加CPU占用率;对于分辨率较低的终端设备,可为其分配小页内存,避免使用大页内存造成资源的浪费。
大页、中页以及小页的容量值依次减小,容量值的具体取值本发明实施例中不做限定。
步骤103,读取与容量值对应的内存页,对媒体数据文件进行编码和/或解码。
1)步骤101中,接收终端设备传输的媒体数据文件,对媒体数据文件的帧值进行预判,得出对媒体数据文件进行编码最大帧值;步骤102中, 确定与所述编码最大帧值相对应的内存页的容量值;则步骤103中,读取与编码最大帧值的容量值对应的内存页,对媒体数据文件进行编码。
2)步骤101中,接收终端设备传输的媒体数据文件,对媒体数据文件的帧值进行预判,得出对媒体数据文件进行解码最大帧值;步骤102中,确定与所述解码最大帧值相对应的内存页的容量值;则步骤103中,读取解码最大帧值的容量值对应的内存页,对媒体数据文件进行解码。
3)步骤101中,接收终端设备传输的媒体数据文件,对媒体数据文件的帧值进行预判,得出对媒体数据文件进行编码和解码的最大帧值;步骤102中,确定与所述编码最大帧值相对应的内存页的容量值、以及与所述解码最大帧值相对应的内存页的容量值;
步骤103中,读取编码最大帧值的容量值对应的内存页,对媒体数据文件进行编码;读取解码最大帧值的容量值对应的内存页,对媒体数据文件进行解码。
其中,使服务器根据与容量值对应的大小的内存页,对媒体数据文件进行编码和/或解码,在不浪费内存的前提下,减少读取内存的次数,降低CPU占用率。需要说明的时,当服务器接收下一个终端设备的媒体数据文件时,再根据下一个终端设备的媒体数据文件的帧值,实时调整内存页的大小,避免增加系统内存,达到优化CPU性能的效果。
本发明的上述实施例中,步骤101包括:
获取与终端设备交互时的会议能力,会议能力包括终端设备的上会速率以及终端设备与协议栈进行数据交互时的音频格式、视频格式;
根据会议能力确定最大帧值。
例如,可根据终端设备的会议能力预判终端设备传输的媒体数据文件的最大帧值,比如根据终端设备的上会速率、与协议栈进行数据交互时的音频格式、视频格式确定一个上述三个参数均能支持的最大帧值。
本发明的上述实施例中,该方法还包括:
对解码后的媒体数据文件中满足预设的抽帧条件的图像,进行抽帧处理。
其中,抽帧处理的目的是为了降低媒体数据文件的帧率,减少服务器的工作量。
例如,对解码后的媒体数据文件中满足预设的抽帧条件的图像,进行抽帧处理的步骤,包括:
对比第一帧图像的数据以及与第一帧图像相邻的第二帧图像的数据,第一帧图像、第二帧图像均为解码后的媒体数据文件中的图像:
若第一帧图像的数据与第二帧图像的数据中,内容不相同数据的数量小于第一预设值,则删除第一帧图像;
若第一帧图像的数据与第二帧图像的数据中,内容不相同数据的数量大于等于第一预设值,则保留第一帧图像。
其中,第一预设数值可根据实际情况自行设定。对比相邻的两帧图像的数据,若两帧图像的数据中不同的数据的数量小于第一预设数值,则表明两帧图像组成的画面可能是静止画面,则可以删除其中一帧,反之,若两帧图像间数据变化量大于第一预设数值,则说明两帧图像组成的画面可能是运动画面,则需同时保留两帧图像,重复以上抽帧处理的动作,继续对比后面的图像,选择性地抽取不必要的媒体帧,可有效地减少服务器处理的数据量,降低编码、解码的复杂度。
本发明的上述实施例中,该方法还包括:
第一步,当监测到系统代码发生变化时,调用编译模块编译变化代码。
其中,当监测到系统代码发生变化时,为了更快地获得编译效果,直接调用编译模块编译相关代码。
第二步,若变化代码编译成功,则执行变化代码的测试用例,记录并 输出测试用例的相关信息;相关信息包括:执行测试用例所用时长、系统CPU占用率以及系统内存占用率。
其中,若变化代码编译成功,则执行测试用例,记录并输出测试用例的相关信息,以便工作人员对变化代码进行优化,有针对性的修改相关代码;比如若执行用例所用时长较长、或CPU占用率以及系统内存占用率较高时,则需更改相关代码,以对编译结果进行代码优化。
第三步,若变化代码编译失败,则记录编译过程中发生错误的位置。
其中,若编译错误,则记录发生错误的位置,以便工作人员进行相应修改。
例如,上述第一步之后,该方法还包括:
获取并记录变化代码的变化信息,变化信息包括:变化代码的变化时间以及变化位置,与变化代码相关的函数或模块,与变化代码相关的函数所调用的函数或模块。
其中,获取并记录变化代码的变化信息,以方便工作人员进行代码优化以及错误定位,增强系统的可维护性。
本发明实施例提供的数据处理方法,通过预判媒体数据文件的最大帧值,根据最大帧值的大小,实时调整内存页的大小,合理利用系统内存,在不浪费内存的前提下,减少读取内存的次数,降低CPU占用率;通过抽帧处理选择性地抽取不必要的媒体帧,减少服务器处理的数据量,降低编码、解码的复杂度;系统代码发生变化时,直接调用编译模块进行编译并记录编译结果以及变化代码的相关信息,以方便工作人员进行代码优化以及错误定位,增强系统的可维护性;本发明在不影响云会议音视频质量的前提下,使云会议系统运行在一个低负载、低能耗的环境下,优化了云会议服务器CPU性能。
第二实施例
第二实施例以一个具体实施例介绍本发明提供的数据处理方法。参见图2,图2为第二实施例提供的数据处理装置的框图,该数据处理装置应用于云会议系统,其中该数据处理装置包括以下模块:
编译管理模块201,其中,编译管理模块201采用边编写边编译策略,并上报编译结果;可选地,系统代码采用ICC编译器(Intel C++Compiler)进行编译,该编译器能够极大的提高应用程序的性能,提高应用程序的执行能力。
内存管理模块202,配置为管理整个系统的内存,并根据媒体帧大小,实时调整内存页的大小,合理利用系统内存;
编码算法模块203,配置为根据选择性抽帧,负责实时调整编码抽帧策略,供编码模块调用该策略来进行编码,把图像像素(YUV格式或RGB格式)编码成为H26*码流。
需要说明的是,三个模块之间并不是直接通讯,而是整个数据处理装置中的三个独立模块,本实施例通过增加这三个模块来优化整个云会议系统性能;
例如,参见图3,编译管理模块201执行如下步骤:
步骤301,实时监测代码是否发生变化。
其中,需要代码编写人员严格按照ICC编译标准进行,且当有新增或修改某个功能函数后,需要代码编写人员补充或修改测试用例。
步骤302,当发现有代码改变,调用编译模块启动编译;
步骤303,判断编译是否完成:若未完成,则返回继续编译;若完成,则执行步骤304,反馈编译结果。
其中,编译结果包括变化代码的变化时间以及变化位置,与变化代码相关的函数或模块,与变化代码相关的函数所调用的函数或模块。代码编写人员可根据编译管理模块201上报的编译结果快速进行代码优化。
参见图4,内存管理模块202执行如下步骤:
步骤401,对媒体帧进行预判。
其中,在对媒体数据进行解码之前,需要预判该媒体帧的大小,预判媒体帧大小的依据是该路终端上会时与协议栈交互的会议能力(包括上会速率和音视频格式),通过该能力匹配一个最大可能的帧大小,来决定云会议服务器的解码模块读取内存时使用的页大小。
步骤402,根据预判的最大帧值,为终端设备分配内存页。
其中,云会议服务器的媒体模块需要反复读取内存来完成编码、解码,所以系统内存主要消耗在媒体的编解码部分上,内存管理模块202主要管理媒体的内存使用,通过透明大页内存技术,在不增加系统内存的情况下,减少YUV或RGB像素格式拷贝,减少媒体模块访问内存的次数,来提高系统性能,减少CPU占用率。而对于每个终端来说,每个媒体帧大小是不一样的,如果仅仅通过大页内存,简单地扩大页的大小,那么对于小的媒体帧,就会造成内存浪费,内存管理模块202还根据每路终端的媒体帧大小,负责实时调整内存的页大小,以适应不同大小的媒体帧,合理充分利用内存。
参见图5,编码算法模块203主要执行如下步骤:
步骤501,对媒体帧之间进行比较,获取相邻媒体帧之间变化的数据的数量。
例如,编码算法模块203把前后相邻的媒体帧作比较,以得到两帧之间变化的数据的数量。
步骤502,当两帧数据之间无变化,说明该路终端在该时间段内是静止画面,则执行步骤503,将其中一帧数据抽取掉。
步骤504,当两帧数据之间变化很小(数据变化量小于一预设数值),说明该路终端在该时间段内是小运动画面,则执行步骤505,按照第一预设 比例间隔性的抽取某帧。
步骤506,当两帧数据之间变化很大(数据变化量大于等于上述预设数值),说明该路终端在该时间段内是大运动画面,则执行步骤507,按照第二预设比例抽帧。
编码算法模块203可实现选择性的抽取某些不需要的媒体帧,从而减少了模块处理的数据量,降低编码复杂度。
本发明的上述实施例中,通过编译管理模块201加快了代码迭代速度,优化系统运行性能;在不降低音视频质量的前提下,内存管理模块202实时调整内存页大小,在不浪费内存的前提下,减少读取内存次数,降低了系统CPU占用率;编码算法模块203在不增加系统CPU核数的情况下,过抽帧处理选择性地抽取不必要的媒体帧,减少服务器处理的数据量,降低编码、解码的复杂度。
第三实施例
参见图6,本发明的第三实施例提供了一种数据处理装置,应用于云会议服务器,该数据处理装置包括:
接收模块601,配置为接收终端设备传输的媒体数据文件,对媒体数据文件的帧值进行预判,得出对媒体数据文件进行编码和/或解码的最大帧值;
确定模块602,配置为确定与最大帧值相对应的内存页的容量值;
读取模块603,配置为读取与容量值对应的内存页,对媒体数据文件进行编码和/或解码。
上述方案中,接收模块601包括:
获取子模块,配置为获取与终端设备交互时的会议能力,会议能力包括终端设备的上会速率以及终端设备与协议栈进行数据交互时的音频格式、视频格式;
帧值确定子模块,配置为根据会议能力确定最大帧值。
上述方案中,装置还包括:
抽帧模块,配置为对解码后的媒体数据文件中满足预设的抽帧条件的图像,进行抽帧处理。
上述方案中,抽帧模块包括:
对比子模块,配置为对比第一帧图像的数据以及与第一帧图像相邻的第二帧图像的数据,第一帧图像、第二帧图像均为解码后的媒体数据文件中的图像:
删除子模块,配置为若第一帧图像的数据与第二帧图像的数据中,内容不相同数据的数量小于第一预设值时,删除第一帧图像;
保留子模块,配置为若第一帧图像的数据与第二帧图像的数据中,内容不相同数据的数量大于等于第一预设值时,保留第一帧图像。
上述方案中,该装置还包括:
监测模块,配置为当监测到系统代码发生变化时,调用编译模块编译变化代码;
执行模块,配置为若变化代码编译成功,则执行变化代码的测试用例,记录并输出测试用例的相关信息;相关信息包括:执行测试用例所用时长、系统CPU占用率以及系统内存占用率;
记录模块,配置为若变化代码编译失败,则记录编译过程中发生错误的位置。
上述方案中,该装置还包括:
记录模块,配置为在监测模块当监测到系统代码发生变化之后,
获取并记录变化代码的变化信息,变化信息包括:变化代码的变化时间以及变化位置,与变化代码相关的函数或模块,与变化代码相关的函数所调用的函数或模块。
对前述数据处理装置的硬件结构进行说明,本发明的实施例提供了一 种数据处理装置,如图7所示,数据处理装置700包括:
内存器702,用于接收终端设备传输的媒体数据文件;
处理器701,用于对所述媒体数据文件的帧值进行预判,得出对所述媒体数据文件进行编码和/或解码的最大帧值;确定与所述最大帧值相对应的内存页的容量值;读取与所述容量值对应的内存页,对所述媒体数据文件进行对应的编码和/或解码。
可以理解地,处理器701可以采用各种方式来实施,如中央处理器、微处理器(MCU)、专用集成电路(ASIC)、逻辑可编程门电路(FPGA)等实现。
本发明实施例还提供一种存储介质,存储介质中存储有可执行指令,可执行指令用于前述数据处理方法,例如,图1、图3、图4及图5所示方法的至少其中之一。本发明实施例所述的存储介质可为光盘、硬盘或磁盘等存储介质,可选为非瞬间存储介质。
本发明实施例中,通过预判媒体数据文件的最大帧值,根据最大帧值的大小,实时调整内存页的大小,合理利用系统内存,在不浪费内存的前提下,减少读取内存的次数,降低CPU占用率;通过抽帧处理选择性地抽取不必要的媒体帧,减少服务器处理的数据量,降低编码、解码的复杂度;系统代码发生变化时,直接调用编译模块进行编译并记录编译结果以及变化代码的相关信息,以方便工作人员进行代码优化以及错误定位,增强系统的可维护性;本发明在不影响云会议音视频质量的前提下,使云会议系统运行在一个低负载、低能耗的环境下,优化了云会议服务器CPU性能。
需要说明的是,本发明实施例提供的数据处理装置是应用上述方法的装置,即上述方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普 通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
工业实用性
本发明提供了一种数据处理方法及装置、存储介质,该数据处理方法应用于云会议服务器,该数据处理方法包括:接收终端设备传输的媒体数据文件,对媒体数据文件的帧值进行预判,得出对媒体数据文件进行编码和/或解码的最大帧值;确定与最大帧值相对应的内存页的容量值;读取与容量值对应的内存页,对媒体数据文件进行编码和/或解码。本发明解决了现有情况下,在不影响会议中音视频质量的前提下,难以实现优化云会议服务器CPU性能的问题。

Claims (14)

  1. 一种数据处理方法,应用于云会议服务器,所述数据处理方法包括:
    接收终端设备传输的媒体数据文件,对所述媒体数据文件的帧值进行预判,得出对所述媒体数据文件进行编码和/或解码的最大帧值;
    确定与所述最大帧值相对应的内存页的容量值;
    读取与所述容量值对应的内存页,对所述媒体数据文件进行对应的编码和/或解码。
  2. 根据权利要求1所述的数据处理方法,其中,所述对所述媒体数据文件的帧值进行预判,得出对所述媒体数据文件进行编码和/或解码的最大帧值,包括:
    获取与所述终端设备交互时的会议能力,所述会议能力包括所述终端设备的上会速率以及所述终端设备与协议栈进行数据交互时的音频格式和视频格式;
    根据所述会议能力确定所述最大帧值。
  3. 根据权利要求1所述的数据处理方法,其中,所述方法还包括:
    对解码后的媒体数据文件中满足预设的抽帧条件的图像,进行抽帧处理。
  4. 根据权利要求3所述的数据处理方法,其中,所述对解码后的媒体数据文件中满足预设的抽帧条件的图像,进行抽帧处理,包括:
    对比第一帧图像的数据以及与所述第一帧图像相邻的第二帧图像的数据,所述第一帧图像、第二帧图像均为解码后的媒体数据文件中的图像:
    若所述第一帧图像的数据与所述第二帧图像的数据中,内容不相同数据的数量小于第一预设值,则删除所述第一帧图像;
    若所述第一帧图像的数据与所述第二帧图像的数据中,内容不相同数据的数量大于等于所述第一预设值,则保留所述第一帧图像。
  5. 根据权利要求1所述的数据处理方法,其中,所述方法还包括:
    当监测到系统代码发生变化时,调用编译模块编译变化代码;
    若所述变化代码编译成功,则执行所述变化代码的测试用例,记录并输出所述测试用例的相关信息;所述相关信息包括:执行所述测试用例所用时长、系统中央处理器CPU占用率以及系统内存占用率;
    若所述变化代码编译失败,则记录编译过程中发生错误的位置。
  6. 根据权利要求5所述的数据处理方法,其中,所述当监测到系统代码发生变化之后,还包括:
    获取并记录所述变化代码的变化信息,所述变化信息包括:所述变化代码的变化时间以及变化位置,与所述变化代码相关的函数或模块,所述与所述变化代码相关的函数所调用的函数或模块。
  7. 一种数据处理装置,应用于云会议服务器,所述数据处理装置包括:
    接收模块,配置为接收终端设备传输的媒体数据文件,对所述媒体数据文件的帧值进行预判,得出对所述媒体数据文件进行编码和/或解码的最大帧值;
    确定模块,配置为确定与所述最大帧值相对应的内存页的容量值;
    读取模块,配置为读取与所述容量值对应的内存页,对所述媒体数据文件进行对应编码和/或解码。
  8. 根据权利要求7所述的数据处理装置,其中,所述接收模块包括:
    获取子模块,配置为获取与所述终端设备交互时的会议能力,所述会议能力包括所述终端设备的上会速率以及所述终端设备与协议栈进行数据交互时的音频格式、视频格式;
    帧值确定子模块,配置为根据所述会议能力确定所述最大帧值。
  9. 根据权利要求7所述的数据处理装置,其中,所述装置还包括:
    抽帧模块,配置为对解码后的媒体数据文件中满足预设的抽帧条件的 图像,进行抽帧处理。
  10. 根据权利要求9所述的数据处理装置,其中,所述抽帧模块包括:
    对比子模块,配置为对比第一帧图像的数据以及与所述第一帧图像相邻的第二帧图像的数据,所述第一帧图像、第二帧图像均为解码后的媒体数据文件中的图像:
    删除子模块,配置为若所述第一帧图像的数据与所述第二帧图像的数据中,内容不相同数据的数量小于第一预设值时,删除所述第一帧图像;
    保留子模块,配置为若所述第一帧图像的数据与所述第二帧图像的数据中,内容不相同数据的数量大于等于所述第一预设值时,保留所述第一帧图像。
  11. 根据权利要求7所述的数据处理装置,其中,所述装置还包括:
    监测模块,配置为当监测到系统代码发生变化时,调用编译模块编译变化代码;
    执行模块,配置为若所述变化代码编译成功,则执行所述变化代码的测试用例,记录并输出所述测试用例的相关信息;所述相关信息包括:执行所述测试用例所用时长、系统中央处理器CPU占用率以及系统内存占用率;
    记录模块,配置为若所述变化代码编译失败,则记录编译过程中发生错误的位置。
  12. 根据权利要求11所述的数据处理装置,其中,所述装置还包括:
    记录模块,配置为在所述监测模块当监测到系统代码发生变化之后,
    获取并记录所述变化代码的变化信息,所述变化信息包括:所述变化代码的变化时间以及变化位置,与所述变化代码相关的函数或模块,所述与所述变化代码相关的函数所调用的函数或模块。
  13. 一种数据处理装置,包括:
    内存器,用于接收终端设备传输的媒体数据文件;
    处理器,用于对所述媒体数据文件的帧值进行预判,得出对所述媒体数据文件进行编码和/或解码的最大帧值;确定与所述最大帧值相对应的内存页的容量值;读取与所述容量值对应的内存页,对所述媒体数据文件进行对应的编码和/或解码。
  14. 一种存储介质,存储有可执行指令,用于执行权利要求1至6任一项所述的数据处理方法。
PCT/CN2017/075500 2016-03-24 2017-03-02 一种数据处理方法及装置、存储介质 WO2017162015A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610173647.3 2016-03-24
CN201610173647.3A CN107229516B (zh) 2016-03-24 2016-03-24 一种数据处理方法及装置

Publications (1)

Publication Number Publication Date
WO2017162015A1 true WO2017162015A1 (zh) 2017-09-28

Family

ID=59899184

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/075500 WO2017162015A1 (zh) 2016-03-24 2017-03-02 一种数据处理方法及装置、存储介质

Country Status (2)

Country Link
CN (1) CN107229516B (zh)
WO (1) WO2017162015A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113747159A (zh) * 2021-09-06 2021-12-03 深圳软牛科技有限公司 一种生成可变帧率视频媒体文件的方法、装置及相关组件

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108021444B (zh) * 2017-11-06 2022-04-05 珠海格力智能装备有限公司 数据处理方法和装置
CN110189388A (zh) * 2019-05-28 2019-08-30 上海哔哩哔哩科技有限公司 动画检测方法、可读存储介质及计算机设备
CN110399204A (zh) * 2019-07-26 2019-11-01 苏州浪潮智能科技有限公司 一种kvm的内存配置方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070002865A1 (en) * 2005-06-30 2007-01-04 Burks Janus P Method and system for optimizing transcoder resources
CN103699447A (zh) * 2014-01-08 2014-04-02 北京航空航天大学 一个基于云计算的视频会议的转码分发系统
CN103888492A (zh) * 2012-12-20 2014-06-25 鸿富锦精密工业(深圳)有限公司 内存管理系统及方法
CN104038392A (zh) * 2014-07-04 2014-09-10 云南电网公司 一种云计算资源服务质量评估方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5801779A (en) * 1995-12-26 1998-09-01 C-Cube Microsystems, Inc. Rate control with panic mode
CN101021846A (zh) * 2006-02-14 2007-08-22 乐金电子(中国)研究开发中心有限公司 一种不定帧长结构数据流的存储方法
CN102118612B (zh) * 2009-12-31 2012-11-14 Tcl集团股份有限公司 一种音视频硬解码芯片内存资源的获取方法及系统
CN103024348B (zh) * 2012-11-06 2016-08-17 前卫视讯(北京)科技发展有限公司 视频监控的运维管理系统
CN103118273A (zh) * 2012-12-12 2013-05-22 张力 一种安防视频硬编码芯片内存资源分配的预测方法
CN103530225B (zh) * 2013-09-10 2016-07-06 武汉烽火网络有限责任公司 自动化编译测试方法及实现该方法的自动化编译测试平台
CN103546802B (zh) * 2013-10-15 2017-07-25 深圳Tcl新技术有限公司 动态调整缓存的方法及显示终端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070002865A1 (en) * 2005-06-30 2007-01-04 Burks Janus P Method and system for optimizing transcoder resources
CN103888492A (zh) * 2012-12-20 2014-06-25 鸿富锦精密工业(深圳)有限公司 内存管理系统及方法
CN103699447A (zh) * 2014-01-08 2014-04-02 北京航空航天大学 一个基于云计算的视频会议的转码分发系统
CN104038392A (zh) * 2014-07-04 2014-09-10 云南电网公司 一种云计算资源服务质量评估方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113747159A (zh) * 2021-09-06 2021-12-03 深圳软牛科技有限公司 一种生成可变帧率视频媒体文件的方法、装置及相关组件
CN113747159B (zh) * 2021-09-06 2023-10-13 深圳软牛科技有限公司 一种生成可变帧率视频媒体文件的方法、装置及相关组件

Also Published As

Publication number Publication date
CN107229516A (zh) 2017-10-03
CN107229516B (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
WO2021008290A1 (zh) 视频流解码方法、装置、终端设备及存储介质
EP2517470B1 (en) Systems and methods for video-aware screen capture and compression
WO2017162015A1 (zh) 一种数据处理方法及装置、存储介质
US20190028705A1 (en) Methods, apparatuses, and systems for transcoding a video
WO2021068598A1 (zh) 共享屏幕的编码方法、装置、存储介质及电子设备
CN105163127B (zh) 视频分析方法及装置
CN104685873B (zh) 编码控制设备以及编码控制方法
US11057628B2 (en) Effective intra encoding for screen data
CN107370714A (zh) 面向云渲染的高效通讯方法
WO2017096823A1 (zh) 视频转码方法和装置系统
US20150117545A1 (en) Layered Video Encoding and Decoding
US20230034764A1 (en) Video stream processing method and apparatus, and electronic device and computer-readable medium
CN112866746A (zh) 一种多路串流云游戏控制方法、装置、设备及存储介质
CN111343503A (zh) 视频的转码方法、装置、电子设备及存储介质
CN112543374A (zh) 一种转码控制方法、装置及电子设备
JP4878054B2 (ja) 映像解析装置,映像解析方法および映像解析プログラム
US10972788B1 (en) Distortion-based video re-encoding
TWI735297B (zh) 具有初始化片段之視訊及音訊之寫碼
WO2020155538A1 (zh) 视频处理方法、系统、计算机设备及存储介质
CN106658154A (zh) 一种视频截图方法、装置和设备以及视频处理方法、装置和设备
CN108574882B (zh) 一种视频传输方法和装置
US20160182611A1 (en) Automated adaption of a codec
CN116883691B (zh) 一种边缘设备的高帧率多路目标检测方法
US12003743B2 (en) Video stream decoding method and apparatus, terminal device, and storage medium
US11647153B1 (en) Computer-implemented method, device, and computer program product

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17769292

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 17769292

Country of ref document: EP

Kind code of ref document: A1