WO2020155538A1 - 视频处理方法、系统、计算机设备及存储介质 - Google Patents
视频处理方法、系统、计算机设备及存储介质 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data 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
Claims (20)
- 一种视频处理方法,其特征在于,所述视频处理方法包括:获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间;及根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。
- 根据权利要求1所述的视频处理方法,其特征在于,所述获取目标视频中已编码帧的编码时间参数,包括:监测每帧在被编码过程中得到的编码使用时间;将每帧在被编码过程中得到的编码使用时间记录到预配置的时间队列中。
- 根据权利要求2所述的视频处理方法,其特征在于,所述根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,包括:根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数;如果确定调整所述编码复杂度参数,根据所述时间队列中的编码使用时间将所述编码复杂度参数由第一编码复杂度参数调整为第二编码复杂度参数,并清空所述时间队列。
- 根据权利要求2所述的视频处理方法,其特征在于,所述编码时间参数还包括帧生成时间;所述获取目标视频中已编码帧的编码时间参数,还包括:监测每帧在被编码过程中得到的编码使用时间和帧生成时间;将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。
- 根据权利要求4所述的视频处理方法,其特征在于,所述根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数,包括:基于所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低编码复杂度;及当确定不调整所述编码复杂度参数以降低编码复杂度时,基于所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度。
- 根据权利要求5所述的视频处理方法,其特征在于,所述根据所述编码时间参数,调整用于处理所述目标视频中未编码帧的编码复杂度参数,包括:根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度;如果确定降低所述编码复杂度,则下调所述编码复杂度参数;如果确定不降低所述编码复杂度,则根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度;如果确定增加所述编码复杂度,则上调所述编码复杂度参数;如果确定不增加所述编码复杂度,则不调整所述编码复杂度参数;其中,在所述编码复杂度参数被调整的情况下清空所述时间队列。
- 根据权利要求6所述的视频处理方法,其特征在于,所述根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以降低所述编码复杂度,包括:计算所述时间队列中的帧生成时间的帧生成平均时间;判断所述帧生成平均时间是否大于预设阈值;如果所述帧生成平均时间大于所述预设阈值,则确定降低所述编码复杂度;如果所述帧生成平均时间不大于所述预设阈值,则确定不降低所述编码复 杂度。
- 根据权利要求6所述的视频处理方法,其特征在于,所述根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度,包括:计算所述时间队列中的编码使用时间的编码使用平均时间;根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,其中,所述编码参考平均时间为所述编码复杂度参数多次被下调时对应的多个编码使用平均时间的平均数值。
- 根据权利要求8所述的视频处理方法,其特征在于,所述根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,包括:根据预设复杂度增加系数和所述编码使用平均时间,预估增加所述编码复杂度情况下的编码预估平均时间;判断所述编码预估平均时间是否小于所述编码参考平均时间;如果所述编码预估平均时间小于所述编码参考平均时间,则确定调整所述编码复杂度参数以增加编码复杂度。
- 根据权利要求9所述的视频处理方法,其特征在于,所述方法还包括根据倒计时操作调整所述编码复杂度参数,包括:在所述编码复杂度参数被调整的情况下或在所述倒计时达到预设时间阈值的情况下,重置所述倒计时操作;及在所述倒计时达到所述预设时间阈值的情况下,调整所述编码复杂度参数以增加编码复杂度。
- 一种视频处理系统,其特征在于,所述视频处理系统包括:获取模块,用于获取目标视频中已编码帧的编码时间参数,所述编码时间参数包括编码使用时间,所述编码使用时间为在非等待状态下编码一帧所使用的时间;调整模块,用于根据所述编码时间参数,调整所述目标视频中未编码帧对应的编码复杂度参数。
- 根据权利要求11所述的视频处理系统,其特征在于,所述获取模块,还用于:监测每帧在被编码过程中得到的编码使用时间;将每帧在被编码过程中得到的编码使用时间记录到预配置的时间队列中。
- 根据权利要求12所述的视频处理系统,其特征在于,所述调整模块,还用于:根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数;如果确定调整所述编码复杂度参数,根据所述时间队列中的编码使用时间将所述编码复杂度参数由第一编码复杂度参数调整为第二编码复杂度参数,并清空所述时间队列。
- 根据权利要求12所述的视频处理系统,其特征在于,所述编码时间参数还包括帧生成时间;所述获取模块,还用于:监测每帧在被编码过程中得到的编码使用时间和帧生成时间;将每帧在被编码过程中得到的编码使用时间和帧生成时间记录到所述时间队列中,以实时更新所述时间队列。
- 根据权利要求14所述的视频处理系统,其特征在于,所述调整模块,还用于:根据所述时间队列中的帧生成时间,确定是否调整所述编码复杂度参数以 降低所述编码复杂度;如果确定降低所述编码复杂度,则下调所述编码复杂度参数;如果确定不降低所述编码复杂度,则根据所述时间队列中的编码使用时间,确定是否调整所述编码复杂度参数以增加编码复杂度;如果确定增加所述编码复杂度,则上调所述编码复杂度参数;其中,在所述编码复杂度参数被调整的情况下清空所述时间队列。
- 根据权利要求15所述的视频处理系统,其特征在于,所述调整模块,还用于:计算所述时间队列中的帧生成时间的帧生成平均时间;判断所述帧生成平均时间是否大于预设阈值;如果所述帧生成平均时间大于所述预设阈值,则确定降低所述编码复杂度;如果所述帧生成平均时间不大于所述预设阈值,则确定不降低所述编码复杂度。
- 根据权利要求15所述的视频处理系统,其特征在于,所述调整模块,还用于:计算所述时间队列中的编码使用时间的编码使用平均时间;根据编码参考平均时间和所述编码使用平均时间,确定是否调整所述编码复杂度参数以增加编码复杂度,其中,所述编码参考平均时间为所述编码复杂度参数多次被下调时对应的多个编码使用平均时间的平均数值。
- 根据权利要求17所述的视频处理系统,其特征在于,所述调整模块,还用于:根据预设复杂度增加系数和所述编码使用平均时间,预估增加所述编码复杂度情况下的编码预估平均时间;判断所述编码预估平均时间是否小于所述编码参考平均时间;如果所述编码预估平均时间小于所述编码参考平均时间,则确定调整所述编码复杂度参数以增加编码复杂度。
- 一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至10任一项所述视频处理方法的步骤。
- 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时用于实现权利要求1至10任一项所述视频处理方法的步骤。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111263153B (zh) * | 2020-02-20 | 2022-10-11 | 广州市百果园信息技术有限公司 | 视频编码方法、装置、设备及存储介质 |
Citations (7)
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)
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 | 宁波大学 | 一种编码复杂度可控的编码方法 |
-
2019
- 2019-01-31 CN CN201910097364.9A patent/CN111510715B/zh active Active
- 2019-06-27 WO PCT/CN2019/093263 patent/WO2020155538A1/zh active Application Filing
- 2019-06-27 US US16/631,308 patent/US11375203B2/en active Active
Patent Citations (7)
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 |