WO2020155538A1 - 视频处理方法、系统、计算机设备及存储介质 - Google Patents

视频处理方法、系统、计算机设备及存储介质 Download PDF

Info

Publication number
WO2020155538A1
WO2020155538A1 PCT/CN2019/093263 CN2019093263W WO2020155538A1 WO 2020155538 A1 WO2020155538 A1 WO 2020155538A1 CN 2019093263 W CN2019093263 W CN 2019093263W WO 2020155538 A1 WO2020155538 A1 WO 2020155538A1
Authority
WO
WIPO (PCT)
Prior art keywords
time
coding
parameter
encoding
coding complexity
Prior art date
Application number
PCT/CN2019/093263
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 上海哔哩哔哩科技有限公司
Priority to US16/631,308 priority Critical patent/US11375203B2/en
Publication of WO2020155538A1 publication Critical patent/WO2020155538A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output

Definitions

  • the embodiments of the present application relate to the field of computer technology, and in particular, to a video processing method, system, computer equipment, and computer-readable storage medium.
  • video coding and decoding has become one of the key technologies that all parties pay attention to and develop.
  • the so-called video coding refers to a way to convert a file in a certain video format into another video format file through a specific compression technology.
  • international standards organizations such as ITU-T, IEC and other standards organizations
  • H.264/AVC Advanced Video Coding, advanced video coding
  • H.265/HEVC High Efficiency Video Coding, high efficiency video coding
  • Existing video encoding technology usually encodes video content with a single encoding complexity. This video encoding technology cannot adapt to various video encoding scenarios at the same time, and is prone to video playback delay and poor video playback quality. .
  • the purpose of the embodiments of this application is to provide a video processing method, system, computer equipment, and computer readable storage medium, which are used to solve the problem of video playback delay and poor video playback quality caused by video encoding through existing video encoding technologies The problem.
  • An aspect of the embodiments of the present application provides a video processing method, the video processing method includes: obtaining an encoding time parameter of an encoded frame in a target video, the encoding time parameter includes an encoding use time, and the encoding use time is The time used for encoding one frame in the non-waiting state; and adjusting the encoding complexity parameter corresponding to the unencoded frame in the target video according to the encoding time parameter.
  • the acquiring the encoding time parameters of the encoded frames in the target video includes: monitoring the encoding usage time of each frame in the encoding process; recording the encoding usage time of each frame in the encoding process to the pre- In the configured time queue.
  • the adjusting the encoding complexity parameter corresponding to the unencoded frame in the target video according to the encoding time parameter includes: determining whether to adjust the encoding complexity according to the encoding use time in the time queue Parameter; if it is determined to adjust the coding complexity parameter, adjust the coding complexity parameter from the first coding complexity parameter to the second coding complexity parameter according to the coding usage time in the time queue, and clear the time queue.
  • the encoding time parameter further includes the frame generation time; the acquiring the encoding time parameter of the encoded frame in the target video also includes: monitoring the encoding use time and frame generation time obtained during the encoding process of each frame; The encoding use time and frame generation time obtained during the encoding process of each frame are recorded in the time queue to update the time queue in real time.
  • the adjusting the encoding complexity parameter corresponding to the unencoded frame in the target video according to the encoding time parameter includes: determining whether to adjust the encoding complexity based on the frame generation time in the time queue Parameter to reduce the coding complexity; and when it is determined not to adjust the coding complexity parameter to reduce the coding complexity, based on the coding use time in the time queue, determine whether to adjust the coding complexity parameter to increase the coding complexity .
  • the adjusting the encoding complexity parameter for processing unencoded frames in the target video according to the encoding time parameter includes: determining whether to adjust the encoding according to the frame generation time in the time queue The complexity parameter is used to reduce the coding complexity; if it is determined to reduce the coding complexity, the coding complexity parameter is lowered; if it is determined not to reduce the coding complexity, then the coding use time in the time queue is , Determine whether to adjust the coding complexity parameter to increase the coding complexity; if it is determined to increase the coding complexity, then increase the coding complexity parameter; if it is determined not to increase the coding complexity, then do not adjust the coding A complexity parameter; wherein the time queue is cleared when the coding complexity parameter is adjusted.
  • the determining whether to adjust the coding complexity parameter to reduce the coding complexity according to the frame generation time in the time queue includes: calculating the frame generation average of the frame generation time in the time queue Time; determine whether the frame generation average time is greater than the preset threshold; if the frame generation average time is greater than the preset threshold, determine to reduce the coding complexity; if the frame generation average time is not greater than the preset threshold If a threshold is set, it is determined not to reduce the coding complexity.
  • the determining whether to adjust the coding complexity parameter to increase the coding complexity according to the coding use time in the time queue includes: calculating an average coding use time of the coding use time in the time queue; According to the coding reference average time and the coding use average time, it is determined whether to adjust the coding complexity parameter to increase the coding complexity, wherein the coding reference average time is corresponding to when the coding complexity parameter is adjusted multiple times Multiple codes use the average value of the average time.
  • the determining whether to adjust the coding complexity parameter to increase the coding complexity according to the coding reference average time and the coding use average time includes: increasing the coefficient according to the preset complexity and the coding use average time , Predicting the estimated average coding time when the coding complexity is increased; judging whether the estimated coding average time is less than the coding reference average time; if the coding estimated average time is less than the coding reference average time , It is determined to adjust the coding complexity parameter to increase the coding complexity.
  • the method further includes: adjusting the coding complexity parameter according to a countdown operation, including: when the coding complexity parameter is adjusted or when the countdown reaches a preset time threshold, restarting Setting the countdown operation; and when the countdown reaches the preset time threshold, adjusting the coding complexity parameter to increase coding complexity.
  • the video processing system includes: an acquisition module for acquiring encoding time parameters of encoded frames in a target video, where the encoding time parameters include encoding use time
  • the encoding use time is the time used to encode one frame in a non-waiting state
  • the adjustment module is configured to adjust the encoding complexity parameter corresponding to the unencoded frame in the target video according to the encoding time parameter.
  • the acquisition module is further used to: monitor the encoding use time obtained during the encoding process of each frame; and record the encoding use time obtained during the encoding process of each frame into a pre-configured time queue.
  • the adjustment module is further configured to: determine whether to adjust the encoding complexity parameter according to the encoding use time in the time queue; if it is determined to adjust the encoding complexity parameter, according to the time queue Adjust the coding complexity parameter from the first coding complexity parameter to the second coding complexity parameter by the coding use time of, and clear the time queue.
  • the encoding time parameter further includes the frame generation time; the acquisition module is also used to: monitor the encoding use time and frame generation time of each frame obtained during the encoding process; The obtained coding use time and frame generation time are recorded in the time queue to update the time queue in real time.
  • the adjustment module is further configured to: determine whether to adjust the encoding complexity parameter to reduce the encoding complexity according to the frame generation time in the time queue; if it is determined to reduce the encoding complexity, Then lower the coding complexity parameter; if it is determined not to reduce the coding complexity, determine whether to adjust the coding complexity parameter to increase the coding complexity according to the coding use time in the time queue; if it is determined to increase the coding complexity If the coding complexity is described, the coding complexity parameter is adjusted upward; wherein, the time queue is cleared when the coding complexity parameter is adjusted.
  • the adjustment module is further configured to: calculate the frame generation average time of the frame generation time in the time queue; determine whether the frame generation average time is greater than a preset threshold; if the frame generation average time is greater than The preset threshold is determined to reduce the coding complexity; if the average frame generation time is not greater than the preset threshold, it is determined not to reduce the coding complexity.
  • the adjustment module is further configured to: calculate the average coding use time of the coding use time in the time queue; determine whether to adjust the coding complexity according to the coding reference average time and the coding average time Parameter to increase the coding complexity, wherein the coding reference average time is an average value of the average time used for multiple codes corresponding to when the coding complexity parameter is adjusted multiple times.
  • the adjustment module is further configured to: according to a preset complexity increase coefficient and the average use time of encoding, estimate the estimated average time of encoding when the encoding complexity is increased; Whether the estimated average time is less than the coding reference average time; if the coding estimated average time is less than the coding reference average time, it is determined to adjust the coding complexity parameter to increase the coding complexity.
  • the processor is used to implement any of the above when the computer program is executed. The steps of the video processing method described in item.
  • Another aspect of the embodiments of the present application provides a computer-readable storage medium having a computer program stored thereon, and the computer program is used to implement the steps of the video processing method described in any one of the above when the computer program is executed by a processor.
  • the video processing method, system, computer equipment, and computer-readable storage medium provided by the embodiments of the present application can learn the actual encoding efficiency under the current encoding complexity parameter based on the encoding time parameter of the encoded frame, so that it can be adaptively determined Whether to increase the coding complexity to improve the coding quality and improve the video playback quality; or to reduce the coding complexity to improve the coding efficiency to avoid the problem of video playback delay.
  • FIG. 1 schematically shows a flowchart of a video processing method according to Embodiment 1 of the present application
  • FIG. 2 schematically shows a flowchart of a video processing method according to the second embodiment of the present application
  • FIG. 3 schematically shows a flowchart of a video processing method according to Embodiment 3 of the present application
  • Fig. 4 schematically shows a block diagram of a video processing system according to the fourth embodiment of the present application.
  • FIG. 5 schematically shows a schematic diagram of the hardware architecture of a computer device suitable for implementing a video processing method according to Embodiment 5 of the present application.
  • the embodiments of the present application provide a video processing method.
  • the instantaneous encoding speed is controlled by adjusting the encoding complexity. details as follows.
  • Fig. 1 schematically shows a flowchart of a video processing method according to Embodiment 1 of the present application. It can be understood that the flowchart in this method embodiment is not used to limit the order of execution of the steps. The following is an exemplary description with computer equipment as the execution subject.
  • the video processing method may include steps S100 to S102, where:
  • Step S100 Obtain the encoding time parameter of the encoded frame in the target video.
  • the encoding time parameter includes encoding use time, and the encoding use time is the time used to encode one frame in a non-waiting state. That is, the time used by the computer device to actually encode one frame using computing resources such as a CPU.
  • obtaining the encoding time parameters of the encoded frames in the target video may include steps S100a to S100b: step S100a, monitoring the encoding use time of each frame in the encoding process; step S100b, setting each frame
  • the encoding use time obtained in the process of being encoded is recorded in a pre-configured time queue to update the time queue in real time.
  • the queue length of the time queue can be customized, for example, the encoding time parameter of the required number of frames for 0.5 seconds can be stored, the encoding time parameter of 100 frames can be stored, and so on.
  • the time queue is a first-in first-out queue, and the encoding time parameters of each encoded frame are sent to the time queue in the order of encoding time.
  • the encoding time parameters of subsequent encoded frames will be sent to the time queue, and the oldest encoding time parameters stored in the time queue will be deleted.
  • Updating the time queue is: sequentially storing the N+1th to N+101th encoding time parameters corresponding to the N+1th to N+101th frames.
  • the embodiments of the present application are applied to the computer equipment, and the computer equipment may be various types of electronic equipment such as mobile phones, computers, monitoring equipment, video conference systems, cloud servers, or server clusters.
  • the following examples illustrate the application scenarios of the embodiments of the present application. It should be understood that the application scenarios described in the embodiments of the present application are merely an example, which is not limiting.
  • the video conferencing system needs to perform video encoding on the received original video, for example, the original video Compress it into H.265/HEVC video stream, and distribute H.265/HEVC video stream to each conference terminal.
  • the encoding and decoding capabilities of the video conference system are limited. Encoding each frame of the original video with higher encoding complexity may affect encoding efficiency and cause video playback delay; with lower encoding The complexity of encoding the original video may affect the image output quality.
  • the video conference system using this embodiment can adaptively adjust the coding complexity of the original video according to the current computing capability, so as to achieve a dynamic balance between coding complexity and coding efficiency.
  • One of the ways to adaptively adjust the encoding complexity of the original video according to the computing power at the time is to determine whether the computing power at the time supports an increase in the encoding time parameters of some of the encoded frames in the original video. Encoding complexity.
  • the coding complexity of initialization can be customized.
  • Step S102 Adjust the coding complexity parameter corresponding to the uncoded frame in the target video according to the coding time parameter.
  • adjusting the encoding complexity parameter corresponding to the unencoded frame in the target video according to the encoding time parameter may include steps S102a to S102b: step S102a, using the encoding according to the time queue Time, determine whether to adjust the encoding complexity parameter; step S102b, if it is determined to adjust the encoding complexity parameter, adjust the encoding complexity parameter from the first encoding complexity parameter according to the encoding use time in the time queue Is the second coding complexity parameter and clears the time queue.
  • the determination basis can be customized, such as a passing threshold.
  • the video processing method provided in Embodiment 1 of the present application can obtain the actual coding efficiency under the current coding complexity parameter based on the coding time parameter of the coded frame, so that it can adaptively determine whether to increase the coding complexity to improve the coding quality. Improve video playback quality; or reduce encoding complexity to improve encoding efficiency to avoid video playback delay.
  • Embodiment 1 of the present application due to the dynamic adjustment of coding complexity parameters, when multiple coding instances are simultaneously coded and share the same computing resource pool, the number of simultaneous coding instances can be increased, and the calculation Resource utilization.
  • Fig. 2 schematically shows a flowchart of a video processing method according to the second embodiment of the present application.
  • the video processing method may include steps S200 to S202, wherein:
  • Step S200 Obtain an encoding time parameter of an encoded frame in the target video, where the encoding time parameter includes encoding use time and frame generation time.
  • the encoding use time is the time used to encode one frame in a non-waiting state.
  • the frame generation time (frame_time) is the total time used to encode one frame, and is an important consideration when evaluating performance.
  • the frame generation time can be considered as the reciprocal of the frame rate, which is the physical time from when a frame of image is sent to the processor (encoding unit) to when it is compressed and sent to the processor.
  • obtaining the encoding time parameters of the encoded frames in the target video may include steps S200a to S200b: step S200a, monitoring the encoding use time and frame generation time obtained during the encoding process of each frame; step S200b , Recording the encoding use time and frame generation time of each frame in the encoding process into the time queue, so as to update the time queue in real time.
  • the time queue is a first-in first-out queue, and the encoding time parameters of each encoded frame are sent to the time queue in the order of encoding time.
  • Step S202 Adjust the coding complexity parameter corresponding to the uncoded frame in the target video according to the coding time parameter.
  • the encoding use time may be used to determine whether to adjust the encoding complexity parameter to increase the encoding complexity.
  • the frame generation time can be used to determine whether to adjust the coding complexity parameter to reduce the coding complexity.
  • adjusting the encoding complexity parameter used to process the unencoded frame in the target video may include steps S202a to S202b: step S202a, based on the frame generation time in the time queue, determine whether to adjust the The coding complexity parameter is used to reduce the coding complexity; step S202b, when it is determined not to adjust the coding complexity parameter to reduce the coding complexity, based on the coding use time in the time queue, it is determined whether to adjust the coding complexity Parameters to increase coding complexity.
  • the coding use time can be used as a basis for determining whether to increase the coding complexity: because the coding use time reflects the time used to encode a frame in a non-waiting state.
  • the frame generation time can be used as a basis for determining whether to reduce the encoding complexity: under the premise of a given frame rate, 50 frames can be encoded in 1 second. If 40 frames are actually encoded in 1 second, it takes 0.025 seconds to encode a frame on average (ie, The average value of the frame generation time corresponding to each frame within 1 second), it means that the current computing capability of the computer device cannot support the video encoding operation under the current encoding complexity parameter, so the encoding complexity parameter needs to be adjusted to reduce Encoding complexity to ensure encoding efficiency.
  • the frame generation time cannot be used as a basis for determining whether to increase the coding complexity: assuming that the current computing power of the computer device can support 80 frames of encoding per second, in theory, it takes 0.0125 seconds to encode a frame on average.
  • real-time encoding When the frame rate is constant, that is, under the premise of a given frame rate, 50 frames are input to the processor (encoding unit) every second, so in fact, each frame of encoding still occupies 0.02 seconds (that is, the 1 second).
  • the average value of the frame generation time corresponding to each frame in the frame is always greater than or equal to 0.02 seconds), which does not reflect whether the current computing capability of the computer device can support video encoding operations with higher encoding complexity.
  • Fig. 3 schematically shows a flowchart of a video processing method according to the third embodiment of the present application.
  • the video processing method may include steps S300 to S302, wherein:
  • step S300 the encoding use time and frame generation time obtained during the encoding process of each frame are monitored.
  • the encoding use time is the time used to encode one frame in a non-waiting state.
  • the frame generation time is the time used to encode one frame.
  • Step S302 Record the encoding use time and frame generation time obtained during the encoding process of each frame in the time queue to update the time queue in real time.
  • the time queue is a first-in first-out queue, and the encoding time parameters of each encoded frame are sent to the time queue in the order of encoding time.
  • Step S304 Determine whether to adjust the coding complexity parameter to reduce the coding complexity according to the frame generation time in the time queue. If yes, go to step S306; otherwise, go to step S308.
  • the step S304 may include steps S304a to S304d.
  • Step S304a Calculate the average frame generation time of the frame generation time in the time queue.
  • Step S304b Determine whether the average frame generation time is greater than a preset threshold. If yes, go to step S304c; otherwise, go to step S304d.
  • the method may further include: confirming whether the coding complexity parameters of each thread used for the coding operation at this time have been updated to the last adjustment The coding complexity parameter indicated by the operation; if all have been updated to the coding degree parameter indicated by the last adjustment operation, proceed to step S304b; otherwise, step S304 is not executed until the updating is completed.
  • Step S304c Determine to reduce the coding complexity. Go to step S306.
  • Step S304d Determine not to reduce the coding complexity. Go to step S308.
  • Step S306 Lower the coding complexity parameter. Go to step S314.
  • step S306 is to reduce the coding complexity when coding uncoded frames.
  • Step S308 Determine whether to adjust the coding complexity parameter to increase the coding complexity according to the coding use time in the time queue. If yes, go to step S310; otherwise, go to step S312.
  • the step S308 may include steps S308a to S308b.
  • Step S308a Calculate the average coding use time of the coding use time in the time queue
  • Step S308b Determine whether to adjust the coding complexity parameter to increase the coding complexity according to the coding reference average time and the coding use average time.
  • the coding reference average time is an average value of the average time used by multiple codes when the coding complexity parameter is adjusted multiple times.
  • the specific steps of obtaining the coding reference average time may include the following steps: monitoring the coding use time in the time queue each time the coding complexity parameter is adjusted down; The encoding use time in the time queue when it is adjusted down is recorded in the reference queue with a predetermined width using the average time to update the reference queue in real time.
  • the queue length of the reference queue can be customized, for example, the average time of 10 codes can be stored.
  • the reference queue is a first-in first-out queue. In the case where the storage space of the reference queue is used up, the oldest code usage average time in the reference queue will be deleted, and the latest code usage average time will be added.
  • the encoding reference average time in the case that the coding average time is greater than or equal to the coding reference average time, it means that the current coding status and the previous coding status have changed significantly, that is, the current coding reference average time is not It has a reference meaning again. Therefore, in this case, the encoding reference average time needs to be reset, for example, the encoding reference average time is reset to null.
  • the step S308b may include: predicting the estimated average coding time when the coding complexity is increased according to a preset complexity increase coefficient and the coding average time; judging the Whether the estimated coding average time is less than the coding reference average time; if the coding estimated average time is less than the coding reference average time, it is determined to adjust the coding complexity parameter to increase the coding complexity.
  • the preset complexity increase coefficient is: the pre-configured complexity increase coefficients between each coding complexity.
  • the second coding complexity has a higher coding complexity than the first coding complexity, and the coding complexity that can be quantified as the second coding complexity is 1.2 times the coding complexity of the first coding complexity. Then if the first coding complexity is increased to the second coding complexity, the corresponding complexity increase coefficient is 1.2.
  • the estimated coding average time in the case of increasing the coding complexity is calculated.
  • Step S310 Adjust the coding complexity parameter up. Go to step S314.
  • step S310 is to increase the coding complexity when coding uncoded frames.
  • Step S312 Do not adjust the coding complexity parameter.
  • Step S314 Clear the time queue.
  • the video processing method may further include the step of adjusting the encoding complexity parameter according to a countdown operation. Specifically, it can include:
  • the coding complexity parameter When the coding complexity parameter is adjusted or when the countdown reaches a preset time threshold, reset the countdown operation.
  • the coding complexity parameter When the countdown reaches the preset time threshold, the coding complexity parameter is adjusted to increase the coding complexity. And, in this case, the reference queue is cleared, and the coding reference average time is vacant.
  • FIG. 4 shows a block diagram of a video processing system according to Embodiment 4 of the present application.
  • the video processing system can be divided into one or more program modules, one or more program modules are stored in a storage medium, and are composed of one or Executed by multiple processors to complete the embodiments of the present application.
  • the program module referred to in the embodiments of this application refers to a series of computer program instruction segments that can complete specific functions, and is more suitable for describing the execution process of the video processing system in the storage medium than the program itself. The following description will specifically introduce each program of this embodiment The function of the module.
  • the video processing system may include the following components:
  • the acquiring module 200 is used to acquire the encoding time parameter of the encoded frame in the target video
  • the encoding time parameter includes encoding use time, which is the time used to encode a frame in a non-waiting state
  • the adjustment module 202 is configured to adjust the coding complexity parameter corresponding to the uncoded frame in the target video according to the coding time parameter.
  • the acquisition module 200 includes: a monitoring unit for monitoring the encoding use time of each frame in the process of being encoded; a recording unit for recording the encoding of each frame in the process of being encoded The usage time is recorded in the pre-configured time queue.
  • the adjustment module 202 includes: a determining unit, configured to determine whether to adjust the encoding complexity parameter according to the encoding use time in the time queue; an adjusting unit, configured to adjust the According to the coding complexity parameter, the coding complexity parameter is adjusted from the first coding complexity parameter to the second coding complexity parameter according to the coding use time in the time queue, and the time queue is cleared.
  • the encoding time parameter further includes frame generation time; the monitoring unit is also used to monitor the encoding use time and frame generation time of each frame obtained during the encoding process; the recording unit, It is also used to record the encoding use time and frame generation time of each frame in the encoding process into the time queue, so as to update the time queue in real time.
  • the adjustment module 202 includes: a first determining unit configured to determine whether to adjust the encoding complexity parameter to reduce the encoding complexity based on the frame generation time in the time queue; and The second determining unit is configured to determine whether to adjust the coding complexity parameter to increase the coding complexity based on the coding use time in the time queue when it is determined not to adjust the coding complexity parameter to reduce the coding complexity.
  • the adjustment module 202 further includes a first adjustment unit, a second adjustment unit, a third adjustment unit, and a queue emptying unit: the first determination unit is further configured to: queue according to the time Determining whether to adjust the encoding complexity parameter to reduce the encoding complexity; the first adjustment unit is configured to lower the encoding complexity parameter if it is determined to reduce the encoding complexity; The second determining unit is further configured to determine whether to adjust the encoding complexity parameter to increase the encoding complexity according to the encoding use time in the time queue if it is determined not to reduce the encoding complexity; The second adjustment unit is configured to increase the coding complexity parameter if it is determined to increase the coding complexity; the third adjustment unit is configured to not adjust the coding complexity if it is determined not to increase the coding complexity Degree parameter; the queue emptying unit is used to empty the time queue when the coding complexity parameter is adjusted.
  • the first determining unit includes: a first calculating subunit, configured to calculate the frame generation average time of the frame generation time in the time queue; a first determining subunit, configured to determine the frame Whether the average generation time is greater than the preset threshold; the first determining subunit is configured to determine to reduce the coding complexity if the average frame generation time is greater than the preset threshold; the second determining subunit is configured to If the average frame generation time is not greater than the preset threshold, it is determined not to reduce the coding complexity.
  • the second determination unit includes: a second calculation subunit, configured to calculate the average coding use time of the coding usage time in the time queue; Determine whether to adjust the coding complexity parameter to increase the coding complexity with reference to the average time and the coding use average time, wherein the coding reference average time is multiple corresponding to when the coding complexity parameter is adjusted multiple times
  • the coding uses the average value of the average time.
  • the third determining subunit is configured to: estimate the estimated average coding time when the coding complexity is increased according to the preset complexity increase coefficient and the coding average time; Whether the estimated coding average time is less than the coding reference average time; if the coding estimated average time is less than the coding reference average time, it is determined to adjust the coding complexity parameter to increase the coding complexity.
  • a countdown module is further included, configured to adjust the coding complexity parameter according to a countdown operation. Specifically, the countdown module is configured to reset the countdown operation when the coding complexity parameter is adjusted or when the countdown reaches a preset time threshold; when the countdown reaches the In the case of a preset time threshold, the coding complexity parameter is adjusted to increase the coding complexity.
  • FIG. 5 schematically shows a schematic diagram of the hardware architecture of a computer device suitable for implementing a video processing method according to Embodiment 5 of the present application.
  • the computer device 400 is a device that can automatically perform numerical calculation and/or information processing according to pre-set or stored instructions.
  • it can be a smart phone, a tablet computer, a notebook computer, a desktop computer, a monitoring device, a video conferencing system, a rack server, a blade server, a tower server or a cabinet server (including independent servers, or multiple server offices). Server cluster) and so on.
  • the computer device 400 at least includes but is not limited to: a memory 410, a processor 420, and a network interface 430 that can communicate with each other through a system bus. among them:
  • the memory 410 includes at least one type of computer-readable storage medium.
  • the readable storage medium includes flash memory, hard disk, multimedia card, card-type memory (for example, SD or DX memory, etc.), random access memory (RAM), and static random access memory.
  • SRAM read only memory
  • ROM read only memory
  • EEPROM electrically erasable programmable read only memory
  • PROM programmable read only memory
  • magnetic memory magnetic disks, optical disks, etc.
  • the memory 410 may be an internal storage module of the computer device 400, such as a hard disk or memory of the computer device 400.
  • the memory 410 may also be an external storage device of the computer device 400, for example, a plug-in hard disk equipped on the computer device 400, a smart memory card (Smart Media Card, SMC for short), and a secure digital (Secure Digital) Digital, abbreviated as SD) card, flash card (Flash Card), etc.
  • the memory 410 may also include both an internal storage module of the computer device 400 and an external storage device thereof.
  • the memory 410 is generally used to store an operating system and various application software installed in the computer device 400, such as program code of a video processing method.
  • the memory 410 may also be used to temporarily store various types of data that have been output or will be output.
  • the processor 420 may be a central processing unit (Central Processing Unit, referred to as CPU for short) in some embodiments, a controller, a microcontroller, a microprocessor, or other data processing chips.
  • the processor 420 is generally used to control the overall operation of the computer device 400, such as performing data interaction or communication-related control and processing with the computer device 400.
  • the processor 420 is configured to run program codes stored in the memory 410 or process data.
  • the network interface 430 may include a wireless network interface or a wired network interface, and the network interface 430 is generally used to establish a communication connection between the computer device 400 and other computer devices.
  • the network interface 430 is used to connect the computer device 400 with an external terminal through a network, and establish a data transmission channel and a communication connection between the computer device 400 and the external terminal.
  • the network can be Intranet, Internet, Global System of Mobile communication (GSM), Wideband Code Division Multiple Access (WCDMA), 4G network , 5G network, Bluetooth (Bluetooth), Wi-Fi and other wireless or wired networks.
  • FIG. 5 only shows a computer device with components 410-430, but it should be understood that it is not required to implement all the components shown, and more or fewer components may be implemented instead.
  • the video processing method stored in the memory 410 may also be divided into one or more program modules, and executed by one or more processors (in this embodiment, the processor 420) to complete this Application.
  • This embodiment also provides a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the steps of the video processing method in the embodiment are implemented.
  • the computer-readable storage medium includes flash memory, hard disk, multimedia card, card-type memory (for example, SD or DX memory, etc.), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), magnetic memory, magnetic disk, optical disk, etc.
  • the computer-readable storage medium may be an internal storage unit of a computer device, such as a hard disk or memory of the computer device.
  • the computer-readable storage medium may also be an external storage device of the computer device, such as a plug-in hard disk equipped on the computer device, a smart memory card (Smart Media Card, referred to as SMC), a secure digital ( Secure Digital, referred to as SD card, Flash Card, etc.
  • the computer-readable storage medium may also include both the internal storage unit and the external storage device of the computer device.
  • the computer-readable storage medium is generally used to store the operating system and various application software installed in the computer device, such as the program code of the video processing method in the embodiment.
  • the computer-readable storage medium can also be used to temporarily store various types of data that have been output or will be output.
  • modules or steps of the above-mentioned embodiments of the present application can be implemented by a general computing device, and they can be concentrated on a single computing device or distributed among multiple computing devices.
  • they can be implemented with program codes executable by a computing device, so that they can be stored in a storage device for execution by the computing device, and in some cases, can be different from here
  • the steps shown or described are performed in the order of, or they are respectively fabricated into individual integrated circuit modules, or multiple modules or steps of them are fabricated into a single integrated circuit module to achieve. In this way, the embodiments of the present application are not limited to any specific hardware and software combination.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请实施例提供了一种视频处理方法,该方法包括:获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间;根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。本申请实施例可以自适应地确定是否增加编码复杂度以提升编码质量,提升视频播放质量;或降低编码复杂度以提升编码效率,以避免视频播放延迟的问题。

Description

视频处理方法、系统、计算机设备及存储介质
本申请要求于2019年01月31日提交中国专利局,专利名称为“视频处理方法、系统、计算机设备及存储介质”、申请号为201910097364.9的发明专利的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种视频处理方法、系统、计算机设备及计算机可读存储介质。
背景技术
随着视频业务在各个领域的应用和发展,视频编解码成为各方关注和发展的关键技术之一。所谓视频编码是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。为不断地适应新的需求,国际标准组织(诸如ITU-T、IEC等标准组织)近年来联合制定了多个视频编码标准,例如,H.264/AVC(Advanced Video Coding,高级视频编码)、H.265/HEVC(High Efficiency Video Coding,高效率视频编码)。
现有的视频编码技术,通常以单一的编码复杂度来编码视频内容,这种视频编码技术无法同时适应各类视频的编码场景,而易出现视频播放延迟的问题和视频播放质量不高的问题。
申请内容
本申请实施例的目的是提供一种视频处理方法、系统、计算机设备及计算机可读存储介质,用于解决通过现有视频编码技术进行视频编码导致的视频播 放延迟的问题和视频播放质量不高的问题。
本申请实施例的一个方面提供了一种视频处理方法,所述视频处理方法包括:获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间;及根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。
可选的,所述获取目标视频中已编码帧的编码时间参数,包括:监测每帧在被编码过程中得到的编码使用时间;将每帧在被编码过程中得到的编码使用时间记录到预配置的时间队列中。
可选的,所述根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,包括:根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数;如果确定调整所述编码复杂度参数,根据所述时间队列中的编码使用时间将所述编码复杂度参数由第一编码复杂度参数调整为第二编码复杂度参数,并清空所述时间队列。
可选的,所述编码时间参数还包括帧生成时间;所述获取目标视频中已编码帧的编码时间参数,还包括:监测每帧在被编码过程中得到的编码使用时间和帧生成时间;将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。
可选的,所述根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,包括:基于所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低编码复杂度;及当确定不调整所述编码复杂度参数以降低编码复杂度时,基于所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度。
可选的,所述根据所述编码时间参数,调整用于处理所述目标视频中未编 码帧的编码复杂度参数,包括:根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度;如果确定降低所述编码复杂度,则下调所述编码复杂度参数;如果确定不降低所述编码复杂度,则根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度;如果确定增加所述编码复杂度,则上调所述编码复杂度参数;如果确定不增加所述编码复杂度,则不调整所述编码复杂度参数;其中,在所述编码复杂度参数被调整的情况下清空所述时间队列。
可选的,所述根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度,包括:计算所述时间队列中的帧生成时间的帧生成平均时间;判断所述帧生成平均时间是否大于预设阈值;如果所述帧生成平均时间大于所述预设阈值,则确定降低所述编码复杂度;如果所述帧生成平均时间不大于所述预设阈值,则确定不降低所述编码复杂度。
可选的,所述根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度,包括:计算所述时间队列中的编码使用时间的编码使用平均时间;根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,其中,所述编码参考平均时间为所述编码复杂度参数多次被下调时对应的多个编码使用平均时间的平均数值。
可选的,所述根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,包括:根据预设复杂度增加系数和所述编码使用平均时间,预估增加所述编码复杂度情况下的编码预估平均时间;判断所述编码预估平均时间是否小于所述编码参考平均时间;如果所述编码预估平均时间小于所述编码参考平均时间,则确定调整所述编码复杂度参数 以增加编码复杂度。
可选的,所述方法还包括:根据倒计时操作调整所述编码复杂度参数,包括:在所述编码复杂度参数被调整的情况下或在所述倒计时达到预设时间阈值的情况下,重置所述倒计时操作;及在所述倒计时达到所述预设时间阈值的情况下,调整所述编码复杂度参数以增加编码复杂度。
本申请实施例的另一个方面还提供了一种视频处理系统,所述视频处理系统包括:获取模块,用于获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间;调整模块,用于根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。
可选的,所述获取模块,还用于:监测每帧在被编码过程中得到的编码使用时间;将每帧在被编码过程中得到的编码使用时间记录到预配置的时间队列中。
可选的,所述调整模块,还用于:根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数;如果确定调整所述编码复杂度参数,根据所述时间队列中的编码使用时间将所述编码复杂度参数由第一编码复杂度参数调整为第二编码复杂度参数,并清空所述时间队列。
可选的,所述编码时间参数还包括帧生成时间;所述获取模块,还用于:监测每帧在被编码过程中得到的编码使用时间和帧生成时间;将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。
可选的,所述调整模块,还用于:根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度;如果确定降低所述编 码复杂度,则下调所述编码复杂度参数;如果确定不降低所述编码复杂度,则根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度;如果确定增加所述编码复杂度,则上调所述编码复杂度参数;其中,在所述编码复杂度参数被调整的情况下清空所述时间队列。
可选的,所述调整模块,还用于:计算所述时间队列中的帧生成时间的帧生成平均时间;判断所述帧生成平均时间是否大于预设阈值;如果所述帧生成平均时间大于所述预设阈值,则确定降低所述编码复杂度;如果所述帧生成平均时间不大于所述预设阈值,则确定不降低所述编码复杂度。
可选的,所述调整模块,还用于:计算所述时间队列中的编码使用时间的编码使用平均时间;根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,其中,所述编码参考平均时间为所述编码复杂度参数多次被下调时对应的多个编码使用平均时间的平均数值。
可选的,所述调整模块,还用于:根据预设复杂度增加系数和所述编码使用平均时间,预估增加所述编码复杂度情况下的编码预估平均时间;判断所述编码预估平均时间是否小于所述编码参考平均时间;如果所述编码预估平均时间小于所述编码参考平均时间,则确定调整所述编码复杂度参数以增加编码复杂度。
本申请实施例的再一个方面提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述计算机程序时用于实现如上任一项所述的视频处理方法的步骤。
本申请实施例的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时用于实现如上任一项所述的视频处理方法的步骤。
本申请实施例提供的视频处理方法、系统、计算机设备及计算机可读存储介质,可以基于已编码帧的编码时间参数,获知在当前编码复杂度参数下的实际编码效率,从而可以自适应地确定是否增加编码复杂度以提升编码质量,提升视频播放质量;或降低编码复杂度以提升编码效率,以避免视频播放延迟的问题。
附图说明
图1示意性示出了根据本申请实施例一的视频处理方法的流程图;
图2示意性示出了根据本申请实施例二的视频处理方法的流程图;
图3示意性示出了根据本申请实施例三的视频处理方法的流程图;
图4示意性示出了根据本申请实施例四的视频处理系统的框图;以及
图5示意性示出了根据本申请实施例五的适于实现视频处理方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本 领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
不同视频具有不同的信息复杂度,以及不同视频在被编码过程中也可能使用不同的计算资源,以单一的编码复杂度来编码视频内容,不同视频编码对应的平均编码速度会有较大差别。另外,对单一视频编码的过程中,也会因为不同帧的信息复杂度的因素,导致瞬时编码速度在编码整个视频的过程中发生较大波动。可知,这种视频编码技术无法同时适应各类视频的编码场景,而易出现视频播放延迟的问题和视频播放质量不高的问题。为解决上述问题,本申请实施例提供了视频处理方法,在对某个视频编码的过程中,通过调节编码复杂度来控制瞬时编码速度。具体如下。
实施例一
图1示意性示出了根据本申请实施例一的视频处理方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备为执行主体进行示例性描述。
如图1所示,该视频处理方法可以包括步骤S100~步骤S102,其中:
步骤S100,获取目标视频中已编码帧的编码时间参数。
所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间。即,所述计算机设备在利用CPU等运算资源实际编码一帧所使用的时间。
在示例性的实施例中,获取目标视频中已编码帧的编码时间参数,可以包括步骤S100a~S100b:步骤S100a,监测每帧在被编码过程中得到的编码使用时间;步骤S100b,将每帧在被编码过程中得到的编码使用时间记录到预配置的时间队列中,以实时更新所述时间队列。
所述时间队列的队列长度可以自定义,如,可以存储0.5秒所需帧数的编码时间参数,可以存储100帧的编码时间参数等。
所述时间队列为先入先出队列,每个已编码帧的编码时间参数以编码时间顺序被发送到所述时间队列中。在所述时间队列的存储空间用完的情况下,后续已编码帧的编码时间参数会被发送到所述时间队列中,同时所述时间队列存储的最老编码时间参数会被删除。
示例性的,假设当前时间队列中依顺序存储有第N~第N+100个帧对应的第N~第N+100的编码时间参数,当第N+101个帧的编码时间参数被产生时,更新所述时间队列为:依顺序存储有第N+1~第N+101个帧对应的第N+1~第N+101的编码时间参数。
需要说明的是,本申请实施例应用于所述计算机设备中,所述计算机设备可以是手机、电脑、监控设备、视频会议系统、云服务器或服务器集群等各类电子设备。为方便理解,下面举例说明本申请实施例的应用场景,应该理解,本申请实施例描述的应用场景仅仅作为一个示例,其并不具有限定性。以所述计算机设备为视频会议系统为例,在本申请实施例的应用场景中,视频会议系统在接收到各方传输的原始视频后,需要对接收的原始视频进行视频编码,如将原始视频压缩成H.265/HEVC视频流,并将H.265/HEVC视频流分发到各个会议终端。应该理解,所述视频会议系统的编解码能力是有限的,以较高的编码复杂度编码所述原始视频的每帧图像,可能会影响编码效率,从而造成视频播放延迟;以较低的编码复杂度编码所述原始视频,可能会影响画面输出质量。基于此,所述运用本实施例的视频会议系统可以根据当时的运算能力来自适应地调整针对所述原始视频的编码复杂度,以达到编码复杂度和编码效率之间的动态平衡。而根据当时的运算能力来自适应调整针对所述原始视频的编码复杂 度,其方式之一是:通过所述原始视频中的部分已编码帧的编码时间参数,来确定当时的运算能力是否支撑增加编码复杂度。另外,所述视频会议系统在首次接收到所述原始视频时,初始化的编码复杂度可以自定义。
步骤S102,根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。
在示例性的实施例中,根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,可以包括步骤S102a~S102b:步骤S102a,根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数;步骤S102b,如果确定调整所述编码复杂度参数,根据所述时间队列中的编码使用时间将所述编码复杂度参数由第一编码复杂度参数调整为第二编码复杂度参数,并清空所述时间队列。
例如,计算所述时间队列中所有编码使用时间的平均数值,通过该平均数值确定所述计算机设备是否能够支撑当前编码复杂度参数下的视频编码操作。该确定依据可以自定义,如通过阈值等。
本申请实施例一提供的视频处理方法,可以基于已编码帧的编码时间参数,获知在当前编码复杂度参数下的实际编码效率,从而可以自适应地确定是否增加编码复杂度以提升编码质量,提升视频播放质量;或降低编码复杂度以提升编码效率,以避免视频播放延迟的问题。
另外,本申请实施例一提供的视频处理方法,由于动态调整编码复杂度参数,使得在多个编码实例同时编码并共享同一个计算资源池的时候,可以提高同时编码的实例数,并提高计算资源的利用率。
实施例二
图2示意性示出了根据本申请实施例二的视频处理方法的流程图。该视频 处理方法可以包括步骤S200~步骤S202,其中:
步骤S200,获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间和帧生成时间。
所述编码使用时间为在非等待状态下编码一帧所使用的时间。
所述帧生成时间(frame_time)为编码一帧所使用的总时间,是评估性能时重要的考虑因素。
所述帧生成时间可以认为是帧率的倒数,为一帧图像从送入处理器(编码单元)到压缩好送出处理器的物理时间。
为了便于理解,下面简单区分一下编码使用时间ctu_time和帧生成时间frame_time:
(1)在编码每帧仅使用一个线程的情况下:
frame_time≈ctu_time+预分析时间+该帧编码时候的等待时间;
(2)在编码每帧使用多个线程的情况下:
frame_time≈ctu_time/平均线程数+预分析时间+该帧编码时候的等待时间;
需要说明的是,以上仅是对编码使用时间和帧生成时间之间关系的示例性定义,并非用于限定两者关系。
在示例性的实施例中,获取目标视频中已编码帧的编码时间参数,可以包括步骤S200a~S200b:步骤S200a,监测每帧在被编码过程中得到的编码使用时间和帧生成时间;步骤S200b,将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。所述时间队列为先入先出队列,每个已编码帧的编码时间参数以编码时间顺序被发送到所述时间队列中。
步骤S202,根据所述编码时间参数,调整所述目标视频中未编码帧对应的 编码复杂度参数。
在示例性的实施例中,编码使用时间可以用于确定是否调整所述编码复杂度参数以增加编码复杂度。帧生成时间可以用于确定是否调整所述编码复杂度参数以降低编码复杂度。
根据所述编码时间参数,调整用于处理所述目标视频中未编码帧的编码复杂度参数,可以包括步骤S202a~S202b:步骤S202a,基于所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低编码复杂度;步骤S202b,当确定不调整所述编码复杂度参数以降低编码复杂度时,基于所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度。
应当理解:
编码使用时间,可以作为确定是否增加编码复杂度的依据:由于编码使用时间反映的是在非等待状态下编码一帧所使用的时间。
帧生成时间,可以作为确定是否降低编码复杂度的依据:在给定帧率的前提下,1秒可以编码50帧,如果1秒实际编码40帧,平均每编码一帧需要0.025秒(即,该1秒内各个帧对应的帧生成时间的平均数值),则说明所述计算机设备当前运算能力不能够支撑当前编码复杂度参数下的视频编码操作,因此需要调整所述编码复杂度参数以降低编码复杂度,从而保证编码效率。
帧生成时间,并不能作为确定是否增加编码复杂度的依据:假设以所述计算机设备当前的运算能力能够支撑1秒编码80帧,因此理论上平均每编码一帧需要0.0125秒,然而,实时编码时的帧率是恒定的,即在给定帧率的前提下,每秒向处理器(编码单元)输入50帧,因此实际上平均每编码一帧仍然占据了0.02秒(即,该1秒内各个帧对应的帧生成时间的平均数值始终大于或等于0.02秒),并不能反映所述计算机设备当前运算能力是否可以支撑更高编码复杂度下 的视频编码操作。
实施例三
图3示意性示出了根据本申请实施例三的视频处理方法的流程图。该视频处理方法可以包括步骤S300~步骤S302,其中:
步骤S300,监测每帧在被编码过程中得到的编码使用时间和帧生成时间。
所述编码使用时间为在非等待状态下编码一帧所使用的时间。
所述帧生成时间为编码一帧所使用的时间。
步骤S302,将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。所述时间队列为先入先出队列,每个已编码帧的编码时间参数以编码时间顺序被发送到所述时间队列中。
步骤S304,根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度。如果是,进入步骤S306;否则进入步骤S308。
在示例性的实施例中,所述步骤S304可以包括步骤S304a~S304d。
步骤S304a,计算所述时间队列中的帧生成时间的帧生成平均时间。
步骤S304b,判断所述帧生成平均时间是否大于预设阈值。如果是,进入步骤S304c;否则进入步骤S304d。
在示例性的实施例中,在判断所述帧生成平均时间是否大于预设阈值之前,还可以包括:确认此时用于编码操作的各个线程的编码复杂度参数是否均已经更新为上一次调整操作指示的编码复杂度参数;如果均已经更新为上一次调整操作指示的编码度参数,则进入步骤S304b;否则暂停不执行步骤S304直至均已更新完毕。
步骤S304c,确定降低所述编码复杂度。进入步骤S306。
步骤S304d,确定不降低所述编码复杂度。进入步骤S308。
步骤S306,下调所述编码复杂度参数。进入步骤S314。
需要说明的是,所述步骤S306在于降低编码未编码帧时的编码复杂度。
步骤S308,根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度。如果是,进入步骤S310;否则进入步骤S312。
在示例性的实施例中,所述步骤S308可以包括步骤S308a~S308b。
步骤S308a,计算所述时间队列中的编码使用时间的编码使用平均时间;
步骤S308b,根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度。
其中,所述编码参考平均时间为所述编码复杂度参数多次被下调时对应的多个编码使用平均时间的平均数值。具体的,获取编码参考平均时间的具体步骤可以步骤:监测所述编码复杂度参数每次被下调时的时间队列中的编码使用时间的编码使用平均时间;将所述编码复杂度参数每次被下调时的时间队列中的编码使用时间的编码使用平均时间记录到预定宽度的参考队列中,以实时更新所述参考队列。
所述参考队列的队列长度可以自定义,如,可以存储10个编码使用平均时间。所述参考队列为先入先出队列。在所述参考队列的存储空间用完的情况下,参考队列中的最老编码使用平均时间会被删除,最新的编码使用平均时间会被加入。
在可选的实施例中,在所述编码使用平均时间大于或等于编码参考平均时间的情况下,表示当前的编码状态和之前的编码状态发生较大的变化,即当前这个编码参考平均时间不再具有参考意义,因此,在此情况下需要重置所述编码参考平均时间,如将所述编码参考平均时间重置为空。
在可选的实施例中,所述步骤S308b可以包括:根据预设复杂度增加系数 和所述编码使用平均时间,预估增加所述编码复杂度情况下的编码预估平均时间;判断所述编码预估平均时间是否小于所述编码参考平均时间;如果所述编码预估平均时间小于所述编码参考平均时间,则确定调整所述编码复杂度参数以增加编码复杂度。
预设复杂度增加系数为:预先配置的各个编码复杂度之间的复杂度增加系数。比如第二编码复杂度相对于第一编码复杂度而言,具有更高的编码复杂度,可以量化为第二编码复杂度的编码复杂度是第一编码复杂度的编码复杂度的1.2倍,则如果由第一编码复杂度上调到第二编码复杂度,对应的复杂度增加系数为1.2。
示例性的,通过预设复杂度增加系数乘以所述编码使用平均时间,计算得到增加所述编码复杂度情况下的编码预估平均时间。
需说明的是,在所述倒计时期间所述编码复杂度参数发生调整的情况下,重置所述倒计时操作。
步骤S310,上调所述编码复杂度参数。进入步骤S314。
需要说明的是,所述步骤S310在于增加编码未编码帧时的编码复杂度。
步骤S312,不调整所述编码复杂度参数。
步骤S314,清空所述时间队列。
即,在所述编码复杂度参数被调整的情况下,清空所述时间队列。
在一可选的实施例中,所述视频处理方法,还可以包括根据倒计时操作调整所述编码复杂度参数的步骤。具体的,可以包括:
在所述编码复杂度参数被调整的情况下或在所述倒计时达到预设时间阈值的情况下,重置所述倒计时操作。在所述倒计时达到所述预设时间阈值的情况下,调整所述编码复杂度参数以增加编码复杂度。且,在此情形下,清空所述 参考队列,以及空置所述编码参考平均时间。
实施例四
图4示出了根据本申请实施例四的视频处理系统的框图,该视频处理系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述视频处理系统在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。
如图4所示,所述视频处理系统可以包括以下组成部分:
获取模块200,用于获取目标视频中已编码帧的编码时间参数;
所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间
调整模块202,用于根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。
在示例性的实施例中,所述获取模块200包括:监测单元,用于监测每帧在被编码过程中得到的编码使用时间;记录单元,用于将每帧在被编码过程中得到的编码使用时间记录到预配置的时间队列中。
在示例性的实施例中,所述调整模块202包括:确定单元,用于根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数;调整单元,用于如果确定调整所述编码复杂度参数,根据所述时间队列中的编码使用时间将所述编码复杂度参数由第一编码复杂度参数调整为第二编码复杂度参数,并清空所述时间队列。
在示例性的实施例中,所述编码时间参数还包括帧生成时间;所述监测单 元,还用于监测每帧在被编码过程中得到的编码使用时间和帧生成时间;所述记录单元,还用于将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。
在示例性的实施例中,所述调整模块202包括:第一确定单元,用于基于所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低编码复杂度;及第二确定单元,用于当确定不调整所述编码复杂度参数以降低编码复杂度时,基于所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度。
在示例性的实施例中,所述调整模块202还包括第一调整单元、第二调整单元、第三调整单元和队列清空单元:所述第一确定单元,还用于:根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度;所述第一调整单元,用于如果确定降低所述编码复杂度,则下调所述编码复杂度参数;所述第二确定单元,还用于如果确定不降低所述编码复杂度,则根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度;所述第二调整单元,用于如果确定增加所述编码复杂度,则上调所述编码复杂度参数;所述第三调整单元,用于如果确定不增加所述编码复杂度,则不调整所述编码复杂度参数;所述队列清空单元,用于在所述编码复杂度参数被调整的情况下清空所述时间队列。
在示例性的实施例中,第一确定单元包括:第一计算子单元,用于计算所述时间队列中的帧生成时间的帧生成平均时间;第一判断子单元,用于判断所述帧生成平均时间是否大于预设阈值;第一确定子单元,用于如果所述帧生成平均时间大于所述预设阈值,则确定降低所述编码复杂度;第二确定子单元,用于如果所述帧生成平均时间不大于所述预设阈值,则确定不降低所述编码复 杂度。
在示例性的实施例中,所述第二确定单元包括:第二计算子单元,用于计算所述时间队列中的编码使用时间的编码使用平均时间;第三确定子单元,用于根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,其中,所述编码参考平均时间为所述编码复杂度参数多次被下调时对应的多个编码使用平均时间的平均数值。
在示例性的实施例中,第三确定子单元,用于:根据预设复杂度增加系数和所述编码使用平均时间,预估增加所述编码复杂度情况下的编码预估平均时间;判断所述编码预估平均时间是否小于所述编码参考平均时间;如果所述编码预估平均时间小于所述编码参考平均时间,则确定调整所述编码复杂度参数以增加编码复杂度。
在示例性的实施例中,还包括倒计时模块,用于根据倒计时操作调整所述编码复杂度参数。具体的,所述倒计时模块,用于在所述编码复杂度参数被调整的情况下或在所述倒计时达到预设时间阈值的情况下,重置所述倒计时操作;在所述倒计时达到所述预设时间阈值的情况下,调整所述编码复杂度参数以增加编码复杂度。
实施例五
图5示意性示出了根据本申请实施例五的适于实现视频处理方法的计算机设备的硬件架构示意图。本实施例中,计算机设备400是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、监控设备、视频会议系统、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图5所示,计算机设备400至少 包括但不限于:可通过系统总线相互通信连接存储器410、处理器420、网络接口430。其中:
存储器410至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器410可以是计算机设备400的内部存储模块,例如该计算机设备400的硬盘或内存。在另一些实施例中,存储器410也可以是计算机设备400的外部存储设备,例如该计算机设备400上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器410还可以既包括计算机设备400的内部存储模块也包括其外部存储设备。本实施例中,存储器410通常用于存储安装于计算机设备400的操作系统和各类应用软件,例如视频处理方法的程序代码等。此外,存储器410还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器420在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器420通常用于控制计算机设备400的总体操作,例如执行与计算机设备400进行数据交互或者通信相关的控制和处理等。本实施例中,处理器420用于运行存储器410中存储的程序代码或者处理数据。
网络接口430可包括无线网络接口或有线网络接口,该网络接口430通常用于在计算机设备400与其他计算机设备之间建立通信连接。例如,网络接口430用于通过网络将计算机设备400与外部终端相连,在计算机设备400与外 部终端之间的建立数据传输通道和通信连接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图5仅示出了具有部件410-430的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器410中的视频处理方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器420)所执行,以完成本申请。
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的视频处理方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用 于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的视频处理方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (20)

  1. 一种视频处理方法,其特征在于,所述视频处理方法包括:
    获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间;及
    根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。
  2. 根据权利要求1所述的视频处理方法,其特征在于,所述获取目标视频中已编码帧的编码时间参数,包括:
    监测每帧在被编码过程中得到的编码使用时间;
    将每帧在被编码过程中得到的编码使用时间记录到预配置的时间队列中。
  3. 根据权利要求2所述的视频处理方法,其特征在于,所述根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,包括:
    根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数;
    如果确定调整所述编码复杂度参数,根据所述时间队列中的编码使用时间将所述编码复杂度参数由第一编码复杂度参数调整为第二编码复杂度参数,并清空所述时间队列。
  4. 根据权利要求2所述的视频处理方法,其特征在于,所述编码时间参数还包括帧生成时间;
    所述获取目标视频中已编码帧的编码时间参数,还包括:
    监测每帧在被编码过程中得到的编码使用时间和帧生成时间;
    将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。
  5. 根据权利要求4所述的视频处理方法,其特征在于,所述根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,包括:
    基于所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低编码复杂度;及
    当确定不调整所述编码复杂度参数以降低编码复杂度时,基于所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度。
  6. 根据权利要求5所述的视频处理方法,其特征在于,所述根据所述编码时间参数,调整用于处理所述目标视频中未编码帧的编码复杂度参数,包括:
    根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度;
    如果确定降低所述编码复杂度,则下调所述编码复杂度参数;
    如果确定不降低所述编码复杂度,则根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度;
    如果确定增加所述编码复杂度,则上调所述编码复杂度参数;
    如果确定不增加所述编码复杂度,则不调整所述编码复杂度参数;
    其中,在所述编码复杂度参数被调整的情况下清空所述时间队列。
  7. 根据权利要求6所述的视频处理方法,其特征在于,所述根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度,包括:
    计算所述时间队列中的帧生成时间的帧生成平均时间;
    判断所述帧生成平均时间是否大于预设阈值;
    如果所述帧生成平均时间大于所述预设阈值,则确定降低所述编码复杂度;
    如果所述帧生成平均时间不大于所述预设阈值,则确定不降低所述编码复 杂度。
  8. 根据权利要求6所述的视频处理方法,其特征在于,所述根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度,包括:
    计算所述时间队列中的编码使用时间的编码使用平均时间;
    根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,其中,所述编码参考平均时间为所述编码复杂度参数多次被下调时对应的多个编码使用平均时间的平均数值。
  9. 根据权利要求8所述的视频处理方法,其特征在于,所述根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,包括:
    根据预设复杂度增加系数和所述编码使用平均时间,预估增加所述编码复杂度情况下的编码预估平均时间;
    判断所述编码预估平均时间是否小于所述编码参考平均时间;
    如果所述编码预估平均时间小于所述编码参考平均时间,则确定调整所述编码复杂度参数以增加编码复杂度。
  10. 根据权利要求9所述的视频处理方法,其特征在于,所述方法还包括根据倒计时操作调整所述编码复杂度参数,包括:
    在所述编码复杂度参数被调整的情况下或在所述倒计时达到预设时间阈值的情况下,重置所述倒计时操作;及
    在所述倒计时达到所述预设时间阈值的情况下,调整所述编码复杂度参数以增加编码复杂度。
  11. 一种视频处理系统,其特征在于,所述视频处理系统包括:
    获取模块,用于获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间;
    调整模块,用于根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。
  12. 根据权利要求11所述的视频处理系统,其特征在于,所述获取模块,还用于:
    监测每帧在被编码过程中得到的编码使用时间;
    将每帧在被编码过程中得到的编码使用时间记录到预配置的时间队列中。
  13. 根据权利要求12所述的视频处理系统,其特征在于,所述调整模块,还用于:
    根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数;
    如果确定调整所述编码复杂度参数,根据所述时间队列中的编码使用时间将所述编码复杂度参数由第一编码复杂度参数调整为第二编码复杂度参数,并清空所述时间队列。
  14. 根据权利要求12所述的视频处理系统,其特征在于,所述编码时间参数还包括帧生成时间;所述获取模块,还用于:
    监测每帧在被编码过程中得到的编码使用时间和帧生成时间;
    将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。
  15. 根据权利要求14所述的视频处理系统,其特征在于,所述调整模块,还用于:
    根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以 降低所述编码复杂度;
    如果确定降低所述编码复杂度,则下调所述编码复杂度参数;
    如果确定不降低所述编码复杂度,则根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度;
    如果确定增加所述编码复杂度,则上调所述编码复杂度参数;
    其中,在所述编码复杂度参数被调整的情况下清空所述时间队列。
  16. 根据权利要求15所述的视频处理系统,其特征在于,所述调整模块,还用于:
    计算所述时间队列中的帧生成时间的帧生成平均时间;
    判断所述帧生成平均时间是否大于预设阈值;
    如果所述帧生成平均时间大于所述预设阈值,则确定降低所述编码复杂度;
    如果所述帧生成平均时间不大于所述预设阈值,则确定不降低所述编码复杂度。
  17. 根据权利要求15所述的视频处理系统,其特征在于,所述调整模块,还用于:
    计算所述时间队列中的编码使用时间的编码使用平均时间;
    根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,其中,所述编码参考平均时间为所述编码复杂度参数多次被下调时对应的多个编码使用平均时间的平均数值。
  18. 根据权利要求17所述的视频处理系统,其特征在于,所述调整模块,还用于:
    根据预设复杂度增加系数和所述编码使用平均时间,预估增加所述编码复杂度情况下的编码预估平均时间;
    判断所述编码预估平均时间是否小于所述编码参考平均时间;
    如果所述编码预估平均时间小于所述编码参考平均时间,则确定调整所述编码复杂度参数以增加编码复杂度。
  19. 一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至10任一项所述视频处理方法的步骤。
  20. 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时用于实现权利要求1至10任一项所述视频处理方法的步骤。
PCT/CN2019/093263 2019-01-31 2019-06-27 视频处理方法、系统、计算机设备及存储介质 WO2020155538A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/631,308 US11375203B2 (en) 2019-01-31 2019-06-27 Video processing method, system, device and computer-readable storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910097364.9A CN111510715B (zh) 2019-01-31 2019-01-31 视频处理方法、系统、计算机设备及存储介质
CN201910097364.9 2019-01-31

Publications (1)

Publication Number Publication Date
WO2020155538A1 true WO2020155538A1 (zh) 2020-08-06

Family

ID=71841779

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/093263 WO2020155538A1 (zh) 2019-01-31 2019-06-27 视频处理方法、系统、计算机设备及存储介质

Country Status (3)

Country Link
US (1) US11375203B2 (zh)
CN (1) CN111510715B (zh)
WO (1) WO2020155538A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111263153B (zh) * 2020-02-20 2022-10-11 广州市百果园信息技术有限公司 视频编码方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1867072A (zh) * 2005-05-17 2006-11-22 明基电通股份有限公司 可适性视频信号编码的方法及应用其的信号编码装置
CN103841418A (zh) * 2012-11-22 2014-06-04 中国科学院声学研究所 一种3g网络中视频监控器码率控制的优化方法及系统
CN105120295A (zh) * 2015-08-11 2015-12-02 北京航空航天大学 一种基于四叉树编码分割的hevc复杂度控制方法
CN106550269A (zh) * 2015-09-17 2017-03-29 联发科技股份有限公司 自适应视频解码方法、解码器以及音频/视频播放系统
CN107105240A (zh) * 2017-03-22 2017-08-29 中南大学 一种hevc‑scc复杂度控制方法及其系统
WO2018063635A1 (en) * 2016-10-01 2018-04-05 Intel Corporation Method and system of hardware accelerated video coding with per-frame parameter control
CN108734628A (zh) * 2017-04-17 2018-11-02 英特尔公司 基于功率和基于目标的图形质量调整

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10674158B2 (en) * 2017-06-15 2020-06-02 Beamr Imaging Ltd Method and system of video coding optimization
CN108322740B (zh) * 2018-01-10 2020-04-17 宁波大学 一种编码复杂度可控的编码方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1867072A (zh) * 2005-05-17 2006-11-22 明基电通股份有限公司 可适性视频信号编码的方法及应用其的信号编码装置
CN103841418A (zh) * 2012-11-22 2014-06-04 中国科学院声学研究所 一种3g网络中视频监控器码率控制的优化方法及系统
CN105120295A (zh) * 2015-08-11 2015-12-02 北京航空航天大学 一种基于四叉树编码分割的hevc复杂度控制方法
CN106550269A (zh) * 2015-09-17 2017-03-29 联发科技股份有限公司 自适应视频解码方法、解码器以及音频/视频播放系统
WO2018063635A1 (en) * 2016-10-01 2018-04-05 Intel Corporation Method and system of hardware accelerated video coding with per-frame parameter control
CN107105240A (zh) * 2017-03-22 2017-08-29 中南大学 一种hevc‑scc复杂度控制方法及其系统
CN108734628A (zh) * 2017-04-17 2018-11-02 英特尔公司 基于功率和基于目标的图形质量调整

Also Published As

Publication number Publication date
US20210352295A1 (en) 2021-11-11
US11375203B2 (en) 2022-06-28
CN111510715B (zh) 2022-03-01
CN111510715A (zh) 2020-08-07

Similar Documents

Publication Publication Date Title
US12003743B2 (en) Video stream decoding method and apparatus, terminal device, and storage medium
CN110769278B (zh) 一种分布式视频转码方法及系统
WO2017048463A1 (en) System and method for controlling memory frequency using feed-forward compression statistics
CN107346270B (zh) 基于实时计算的基数估计的方法和系统
CN114050983B (zh) 流量自适应采集方法及装置、存储介质及电子设备
WO2021196559A1 (zh) 一种视频处理系统
CN112416568A (zh) 音视频转码任务的时长预估方法和时长预估装置
WO2017162015A1 (zh) 一种数据处理方法及装置、存储介质
CN111917814B (zh) 数据发布、订阅方法、装置、设备、系统及可读存储介质
CN109788251B (zh) 视频处理方法、装置及存储介质
CN105068875A (zh) 一种智能数据处理方法及装置
CN114245175A (zh) 视频转码方法、装置、电子设备及存储介质
WO2020155538A1 (zh) 视频处理方法、系统、计算机设备及存储介质
CN110347546B (zh) 监控任务动态调整方法、装置、介质及电子设备
WO2023019712A1 (zh) 基于Zlib压缩算法的云计算资源管理器通信延迟优化方法
CN111090818A (zh) 资源管理方法、资源管理系统、服务器及计算机存储介质
CN102185874B (zh) 基于因特网小型计算机系统接口的命令处理方法及装置
CN116048424B (zh) Io数据处理方法、装置、设备及介质
CN112685367B (zh) 文件分享进度的指示方法、电子设备及计算机可读存储介质
CN117319716B (zh) 基板管理控制芯片的资源调度方法及基板管理控制芯片
CN113225228B (zh) 数据处理方法及装置
CN115359339A (zh) 抓拍系统性能分析方法、装置以及计算机可读存储介质
CN117676239A (zh) 视频传输方法、装置、设备和介质
CN118413714A (zh) 数据处理方法、装置、电子设备和存储介质
CN116915785A (zh) 基于区块链智能合约的视频任务处理方法

Legal Events

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

Ref document number: 19913501

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19913501

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 19913501

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 21.01.2022)

122 Ep: pct application non-entry in european phase

Ref document number: 19913501

Country of ref document: EP

Kind code of ref document: A1