Video jitter elimination method and device and computer equipment

By initialized the timer in the UVC device and set the timing time according to the frame rate, the video screen delay and jitter transmitted to the PC side of the UVC device to the PC side was solved, and a more uniform screen display and better matching degree.

CN119383417APending Publication Date: 2025-01-28YEALINK (XIAMEN) NETWORK TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411471451.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-22
Publication Date
2025-01-28

AI Technical Summary

Technical Problem

The video screen transmitted to the PC by existing UVC devices has problems of uneven playback and picture jitter. This is mainly because the timing time of the timer is inconsistent with the time spent processing images by the underlying software, resulting in an increase in time difference and picture delay.

Method used

By initialized timer, set timing time according to the frame rate, and start the timer for counting the timer when the UVC software receives the first frame image, and send the received frame image to the queue to store it. When the timer reaches the timing time, the frame image is obtained from the advanced order in the queue and transmitted to the PC end until all the frame images stored in the queue are taken out of the queue.

Benefits of technology

The screens that are transmitted to the PC side of the UVC device to the PC side will be achieved, reducing the delay of the video screen, making the screen displayed on the PC end more uniform, improving the situation of the screen jitter, and increasing the matching of the underlying barrier and the timer.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119383417A_ABST
    Figure CN119383417A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of video jitter elimination, and discloses a video jitter elimination method and device and computer equipment, and the method comprises the steps: initializing a timer, and setting a timing duration according to a frame rate; when the UVC software receives a first frame of image sent by the underlying software for the first time, a timer is started to count down, and meanwhile, the received first frame of image is sent into a queue to be stored; when the UVC software continuously receives the frame images sent by the bottom software, the received frame images are sequentially sent into a queue for storage; and if the timer reaches the timing duration every time, acquiring the corresponding frame images from the queue according to a first-in first-out sequence, and transmitting the frame images to the PC end until all the frame images stored in the queue are taken out. The method and the device have the effects of improving the jitter condition of the picture and enabling the picture displayed by the PC end software to be more uniform.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of video de-jittering, and in particular to a video de-jittering method, device and computer equipment. Background Art

[0002] UVC (USB Video Class) devices, also known as USB video class devices, can be directly inserted into a host that supports the UVC standard for use without installing additional drivers, simplifying the plug-and-play function of cameras and video devices, and can transfer video data to computers or other devices in a standardized way. On the device side, after the underlying hardware and software collect the video image data, it is processed and sent to the UVC software on the device side; after receiving the underlying image, the UVC software sends it to the PC (personal computer) side via USB; the PC software then displays the image. However, since the time taken by the underlying software to process the image is uneven, the time for callback to the UVC software on the device side is also uneven, which in turn causes the image displayed on the PC software to be uneven, causing the image to appear to be shaking.

[0003] In the prior art, in order to make the picture seen by the PC end uniform, a de-jitter mechanism is usually added to the UVC software on the device end. The timer is started first, and then the bottom layer callback picture is sent to the UVC software on the device end. The UVC software uses the timer to send the received bottom layer picture to the PC end at a fixed time. However, because the timing of the timer is inconsistent with the time taken by the bottom layer software to process the image, there is a time difference, which can easily cause the delay of the picture displayed on the PC end to increase; furthermore, the timing of the timer and the average callback time of the bottom layer callback are not completely matched, and there are slight differences. After a long time, it will cause the picture to accumulate, thereby increasing the picture delay.

[0004] With respect to the above-mentioned related technologies, the inventors have found that the video images transmitted by the existing UVC devices to the PC have problems of uneven playback and jittery images. Summary of the invention

[0005] In order to reduce the delay of images transmitted from the UVC device to the PC, make the images displayed on the PC more uniform, and reduce image jitter, the present application provides a video de-jittering method, device, and computer equipment.

[0006] In a first aspect, the present application provides a video de-shaking method.

[0007] This application is achieved through the following technical solutions:

[0008] A video de-shaking method comprises the following steps:

[0009] Initialize the timer and set the timing duration according to the frame rate;

[0010] When the UVC software receives the first frame of image sent by the underlying software for the first time, the timer is started to count down, and at the same time, the received first frame of image is sent to the queue for storage;

[0011] When the UVC software continuously receives frame images sent by the underlying software, the received frame images are sequentially sent to the queue for storage;

[0012] Whenever the timer reaches the timing duration, the corresponding frame image is obtained from the queue in a first-in-first-out order and transmitted to the PC end until all the frame images stored in the queue are retrieved.

[0013] In a preferred example, the present application may be further configured as follows: the step of initializing the timer further includes:

[0014] Setting the time interval for restarting the timer;

[0015] While starting the timer to count down, counting the usage time of the timer;

[0016] When the usage time reaches the restart time interval, the timer is triggered to restart. When the UVC software receives the frame image sent by the underlying software again, the timer is started to count down and count the usage time, and the frame image storage and transmission steps are repeated until all the frame images stored in the queue are taken out.

[0017] In a preferred example, the present application can be further configured as follows: it also includes the following steps:

[0018] When the total number of frame images received by the UVC software from the underlying software reaches N frames, the timer is triggered to restart. When the UVC software receives the frame image sent by the underlying software again, the timer is started to count down, and the frame image storage and transmission steps are repeated until all the frame images stored in the queue are taken out;

[0019] Wherein, when the frame rate is 30fps, N∈[1000,1500) and N is a positive integer.

[0020] In a preferred example, the present application may be further configured as follows: the step of initializing the timer and setting the timing duration according to the frame rate includes:

[0021] When the frame rate is 30fps, the timing duration is set so that the frame images transmitted to the PC end are evenly played at a time interval of 33.33ms.

[0022] In a preferred example, the present application can be further configured as follows: the timer uses a software timer.

[0023] In a second aspect, the present application provides a video de-shaking device.

[0024] This application is achieved through the following technical solutions:

[0025] A video de-shaking device, comprising:

[0026] The timer initialization module is used to initialize the timer and set the timing duration according to the frame rate;

[0027] The timer start module is used to start the timer to count down when the UVC software receives the first frame image sent by the underlying software for the first time, and at the same time, send the received first frame image into the queue for storage; when the UVC software continues to receive frame images sent by the underlying software, the received frame images are sequentially sent into the queue for storage;

[0028] The image transmission module is used to obtain the corresponding frame image from the queue in a first-in-first-out order when the timer reaches the timing duration, and transmit it to the PC end until all the frame images stored in the queue are taken out.

[0029] In a preferred example, the present application may be further configured as follows: further comprising a first timer restart module, wherein the first timer restart module comprises:

[0030] A timer restart setting unit, used to set the time interval for restarting the timer;

[0031] A timer restart determination unit, configured to count the usage time of the timer while starting the timer to count down;

[0032] The timer restart trigger unit is used to trigger the restart of the timer when the usage time reaches the restart time interval. When the UVC software receives the frame image sent by the underlying software again, the timer is started to count down and count the usage time, and the frame image storage and transmission steps are repeated until all the frame images stored in the queue are taken out.

[0033] In a preferred example, the present application can be further configured as follows: further comprising:

[0034] The second timer restart module is used to trigger the restart of the timer when the total number of frame images received by the UVC software from the underlying software reaches N frames, and when the UVC software receives the frame image sent by the underlying software again, the timer is started to count down, and the frame image storage and transmission steps are repeated until all the frame images stored in the queue are taken out; wherein, when the frame rate is 30fps, N∈[1000,1500) and N is a positive integer.

[0035] In a preferred example, the present application can be further configured as follows: the timer initialization module includes:

[0036] The timing duration setting unit is used to set the timing duration when the frame rate is 30fps so that the frame images transmitted to the PC end are evenly played at a time interval of 33.33ms.

[0037] In a third aspect, the present application provides a computer device.

[0038] This application is achieved through the following technical solutions:

[0039] A computer device comprises a memory, a processor and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of any one of the above-mentioned video de-jittering methods when executing the computer program.

[0040] In summary, compared with the prior art, the technical solution provided by this application has at least the following beneficial effects:

[0041] Initialize the timer, set the timing duration according to the frame rate, and prepare the timer; when the UVC software receives the first frame of image sent by the underlying software for the first time, that is, UVC When the App receives the first frame image of the underlying callback, the timer is immediately started to count down. At the same time, the first frame image received is sent to the queue for storage to avoid the timer starting too early and increasing the time error between the image sent by the underlying software and the image pushed by the timer delay, thereby reducing the total delay of the overall image. When the UVC software continues to receive frame images sent by the underlying software, the received frame images are sent to the queue for storage in sequence. At this stage, there is no need to start the timer, and the timer automatically works according to the timing setting. Every time the timer reaches the timing length, the timer is awakened, and the corresponding frame image is obtained from the queue in a first-in-first-out order, and transmitted to the PC for image display until all the frame images stored in the queue are taken out, so that the frame images transmitted to the PC are played at the same time interval, and the picture jitter elimination work of the UVC device to the PC is completed, and low latency is achieved; thereby reducing the video picture delay transmitted from the UVC device to the PC, and making the underlying callback frame rate better matched with the timer, improving the picture delay accumulation, further reducing the picture delay, making the picture displayed on the PC more uniform, and improving the picture jitter. BRIEF DESCRIPTION OF THE DRAWINGS

[0042] Figure 1 A schematic diagram of the main process of a video de-shaking method provided for an exemplary embodiment of the present application.

[0043] Figure 2A schematic diagram of the workflow of a video de-shaking method provided as yet another exemplary embodiment of the present application.

[0044] Figure 3 A structural block diagram of a video de-shaking device provided for another exemplary embodiment of the present application. DETAILED DESCRIPTION

[0045] This specific embodiment is merely an explanation of the present application and is not a limitation of the present application. After reading this specification, those skilled in the art may make modifications to the present embodiment without any creative contribution as needed, but such modifications are protected by the patent law as long as they are within the scope of the claims of the present application.

[0046] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0047] In addition, the term "and / or" in this article is only a description of the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this article, unless otherwise specified, generally means that the associated objects before and after are in an "or" relationship.

[0048] The embodiments of the present application are further described in detail below in conjunction with the drawings in the specification.

[0049] Reference Figure 1 , an embodiment of the present application provides a video de-shaking method, and the main steps of the method are described as follows.

[0050] S1: Initialize the timer and set the timing duration according to the frame rate;

[0051] S2: When the UVC software receives the first frame of image sent by the underlying software for the first time, the timer is started to count down, and at the same time, the received first frame of image is sent to the queue for storage;

[0052] S3: When the UVC software continues to receive frame images sent by the underlying software, the received frame images are sequentially sent to the queue for storage;

[0053] S4: When the timer reaches the timing duration, the corresponding frame image is obtained from the queue in a first-in-first-out order and transmitted to the PC end until all the frame images stored in the queue are taken out.

[0054] Reference Figure 2 Specifically, when the UVC software is about to output the image, the timer is prepared first, the timer is initialized, and the timing duration is set according to the frame rate. Then, the UVC software on the device side waits for the bottom layer callback. After the bottom layer software processes the image, it transmits the image to the UVC software on the device side. When the UVC software on the device side receives the first frame of the image sent by the bottom layer software for the first time, it immediately starts the timer and sends the first frame of the image received to the queue for storage for the first time; if the timer reaches the timing duration, that is, the countdown of the timer reaches 0, the timer is awakened, and the UVC software obtains the first frame of the image from the queue and transmits it to the PC side for the first time. At this time, the first UVC software output is completed, and the screen delay is 0; in order to reduce the time interval between the timer and the bottom layer software processing the image, the reduced time range is (0, the time interval of one frame), and the time interval between the image callback and the timer is avoided as much as possible. The existing timer de-jittering method used on the UVC software on the device side is to start the timer first and then wait for the bottom layer callback (the bottom layer software sends the image to the UVC software on the device side after processing the image). When the bottom layer sends an image, it is impossible to determine when the timer has been started. For example, if the timer has been started for 20ms, there will be a delay between the image sent from the bottom layer and the image sent out by the timer. Taking the frame rate of 30fps as an example, the delay range is within the range of (0ms, 33.33ms); even if a larger time interval is encountered, the delay of the overall image will be further increased.

[0055] When the UVC software continues to receive frame images sent by the underlying software, such as the second callback, the second frame image received is sent to the queue for storage for the second time, and when the timer reaches the timing length, the second frame image is taken out of the queue and transmitted to the PC for the second time. At this time, the second UVC software output is completed, and the screen delay is m. Because it is the second callback, there is no need to start the timer like the first time, that is, there is no need to operate the timer, and the system operation is simpler.

[0056] Repeat the above operations of callback, queue entry, countdown and image sending to PC, and when the timer reaches the timing duration, obtain the corresponding frame image from the queue in the first-in-first-out order and send it to PC, until all the frame images stored in the queue are taken out, so that the frame images sent to PC are played at the same time interval, and the image de-jittering work of UVC device sending to PC is completed, which can avoid the delay caused by premature start of the timer, and can also ensure that the underlying callback frame rate matches the timer better, such as the small error of 29.99 frames and 30.01 frames.

[0057] In this embodiment, when the PC software displays an image, the image can be obtained by connecting the UVC device through the APK software on the PC, so that the PC software can open the image.

[0058] In one embodiment, the step of initializing the timer and setting the timing duration according to the frame rate includes:

[0059] When the frame rate is 30fps, the timing duration is set so that the frame images transmitted to the PC end are evenly played at a time interval of 33.33ms.

[0060] The frame rate is the number of times the image is transmitted to the PC per second. When the frame rate is 30fps, the timing duration is set to 33.33ms. The timer will automatically start every 33.33ms to ensure a uniform image, so that the image transmitted to the PC is played evenly at time intervals of 0ms, 33.33ms, 66.66ms, and 100ms, rather than the uneven playback at time intervals of 0ms, 20ms, 60ms, and 100ms in the prior art, which improves the image jitter.

[0061] In one embodiment, the step of initializing the timer further includes:

[0062] Setting the time interval for restarting the timer;

[0063] While starting the timer to count down, counting the usage time of the timer;

[0064] When the usage time reaches the restart time interval, the timer is triggered to restart. When the UVC software receives the frame image sent by the underlying software again, the timer is started to count down and count the usage time, and the frame image storage and transmission steps are repeated until all the frame images stored in the queue are taken out.

[0065] Specifically, when initializing the timer, set the time interval for restarting the timer. When starting the timer to count down, count the usage time of the timer. When the usage time reaches the restart time interval, trigger the timer to restart, so as to achieve the purpose of restarting the timer and recalibrating the timer at regular intervals, avoid the error between the timer time and the underlying callback time as much as possible, and calibrate the error between the timer and the underlying callback, so as to avoid the situation where the image delay increases due to image accumulation after a long time.

[0066] In one embodiment, the following steps are also included:

[0067] When the total number of frame images received by the UVC software from the underlying software reaches N frames, the timer is triggered to restart. When the UVC software receives the frame image sent by the underlying software again, the timer is started to count down, and the frame image storage and transmission steps are repeated until all the frame images stored in the queue are taken out;

[0068] Wherein, when the frame rate is 30fps, N∈[1000,1500) and N is a positive integer.

[0069] For example, when the actual frame rate is 30fps, when the 1000th frame comes, the timer is restarted to calibrate the error between the timer and the underlying callback. The timer will be recalibrated once every 33s or so, and the calibration will not be too frequent. It can also be judged based on the actual underlying callback frame rate, because the underlying frame rate is set to 30fps, but the hardware is generally a non-integer of 30.01fps. Therefore, in this case, there is one more frame in theoretical 100s, that is, there is actually one more frame in theoretical 3000 frames. Therefore, the timer should be restarted for calibration before 1500 frames.

[0070] like Figure 2 As shown, at the Nth callback, when the Nth frame image is received, the timer is restarted to count down, and at the same time, the Nth frame image is sent to the queue for storage; when the timer reaches the timing duration, the Nth frame image is taken out from the queue and transmitted to the PC for the Nth time. At this time, the Nth UVC software output is completed, and the screen delay is 0.

[0071] Figure 2 The small dots in the figure are mainly used for delay comparison. That is, in a scene where the frame rates are not completely matched, such as the difference between 29.99fps / 30.01fps and 30fps, if the timer is not restarted for the Nth time, the delay will increase from M to (N-1)*M, and the delay will become larger and larger. Therefore, restarting the timer for the Nth time can be used to reduce the error.

[0072] In one embodiment, the timer is a software timer.

[0073] The screen transmitted to the PC side and restarted after a delay through the software timer do not need to add additional hardware resources, thus reducing the design cost. At the same time, the timing duration and trigger events can be flexibly adjusted according to the program requirements. It is flexible to use and suitable for application scenarios that require quick adjustment, which is convenient and fast.

[0074] It has been verified that before the use of this technology, on UVC44, when 4K@30fps MJPEG was output, the original image delay fluctuated between 175ms and 200ms, such as sometimes it was 178ms and sometimes it reached 200ms. After the use of this technology, the image delay basically fluctuated between 178ms and 185ms, and the overall delay effect was better than expected.

[0075] In summary, a video de-jittering method initializes a timer, sets a timing duration, and prepares the timer; when the UVC software receives the first frame image sent by the underlying software for the first time, the timer is immediately started to count down, and at the same time, the first received frame image is sent to a queue for storage to avoid the timer starting too early and increasing the time error between the image sent by the underlying software and the image pushed by the timer delay, thereby reducing the total delay of the overall image; when the UVC software continues to receive frame images sent by the underlying software, the received frame images are sequentially sent to the queue for storage, and the timer does not need to be started at this stage, and the timer automatically works according to the timing setting; Every time the timer reaches the timing length, the corresponding frame image is obtained from the queue in a first-in-first-out order and transmitted to the PC for image display until all the frame images stored in the queue are taken out, so that the frame images transmitted to the PC are played at the same time interval, completing the image de-jittering work from the UVC device to the PC, and achieving low latency; thereby reducing the video image delay transmitted from the UVC device to the PC, that is, reducing the time interval between the processed image and the original image, and making the underlying callback frame rate better matched with the timer, improving the accumulation of image delay, further reducing the image delay, making the image displayed on the PC more uniform, and improving the image jitter.

[0076] Furthermore, the timer restarts itself at regular intervals to calibrate the error between the timer and the underlying callback, thereby avoiding image accumulation after a long period of accumulation due to inaccurate timer, and reducing the error between the timer time and the underlying callback time, thereby avoiding the phenomenon of increased image delay caused by image accumulation after a long period of time, and further improving the situation of image delay accumulation.

[0077] A video de-jittering method can avoid the time interval difference between the timer and the underlying callback as much as possible by starting the timer when the first frame of image is received, which is beneficial to reducing image delay; and recalibrating the timer after a period of time can avoid the error between the timer and the underlying image output frame rate as much as possible, avoiding the phenomenon of excessive image accumulation after a long time, thereby causing the image delay to increase.

[0078] It should be understood that the size of the serial numbers of the steps in the above embodiments does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0079] Reference Figure 3 The embodiment of the present application also provides a video de-shaking device, which corresponds one-to-one to a video de-shaking method in the above embodiment. The video de-shaking device includes:

[0080] The timer initialization module is used to initialize the timer and set the timing duration;

[0081] The timer start module is used to start the timer to count down when the UVC software receives the first frame image sent by the underlying software for the first time, and at the same time, send the received first frame image into the queue for storage; when the UVC software continues to receive frame images sent by the underlying software, the received frame images are sequentially sent into the queue for storage;

[0082] The image transmission module is used to obtain the corresponding frame image from the queue in a first-in-first-out order when the timer reaches the timing duration, and transmit it to the PC end until all the frame images stored in the queue are taken out.

[0083] Furthermore, a video de-jittering device further includes a first timer restart module, wherein the first timer restart module includes:

[0084] A timer restart setting unit, used to set the time interval for restarting the timer;

[0085] A timer restart determination unit, configured to count the usage time of the timer while starting the timer to count down;

[0086] The timer restart trigger unit is used to trigger the restart of the timer when the usage time reaches the restart time interval. When the UVC software receives the frame image sent by the underlying software again, the timer is started to count down and count the usage time, and the frame image storage and transmission steps are repeated until all the frame images stored in the queue are taken out.

[0087] Furthermore, a video de-shaking device also includes:

[0088] The second timer restart module is used to trigger the restart of the timer when the total number of frame images received by the UVC software from the underlying software reaches N frames, and when the UVC software receives the frame image sent by the underlying software again, the timer is started to count down, and the frame image storage and transmission steps are repeated until all the frame images stored in the queue are taken out; wherein, when the frame rate is 30fps, N∈[1000,1500) and N is a positive integer.

[0089] Furthermore, the timer initialization module includes:

[0090] The timing duration setting unit is used to set the timing duration when the frame rate is 30fps so that the frame images transmitted to the PC end are evenly played at a time interval of 33.33ms.

[0091] For the specific definition of a video de-shaking device, please refer to the definition of a video de-shaking method in the above text, which will not be repeated here.

[0092] Each module in the above-mentioned video de-shaking device can be implemented in whole or in part by software, hardware or a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute the operations corresponding to each module.

[0093] In one embodiment, a computer device is provided, which may be a server. The computer device includes a processor, a memory, a network interface, and a database connected via a system bus. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The network interface of the computer device is used to communicate with an external terminal via a network connection. When the computer program is executed by the processor, any of the above-mentioned video de-jittering methods is implemented.

[0094] In one embodiment, a computer-readable storage medium is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, and when the processor executes the computer program, any one of the above-mentioned video de-jittering methods is implemented.

[0095] In one embodiment, a computer program product is provided, which includes a computer program, and when the computer program is executed by a processor, any one of the above-mentioned video de-shaking methods is implemented.

[0096] Those of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiments can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium, including several instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in each embodiment of the present application. When the computer program is executed, it may include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in the present application may include non-volatile and / or volatile memory. Non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory may include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.

[0097] Those skilled in the art will clearly understand that for the sake of convenience and brevity of description, only the division of the above-mentioned functional units and modules is used as an example. In actual applications, the above-mentioned functions can be distributed and completed by different functional units and modules as needed, that is, the internal structure of the system can be divided into different functional units or modules to complete all or part of the functions described above.

Claims

1. A video de-shaking method, characterized in that: The following steps are included: Initialize the timer and set the timing duration according to the frame rate; When the UVC software receives the first frame of image sent by the underlying software for the first time, the timer is started to count down, and at the same time, the received first frame of image is sent to the queue for storage; When the UVC software continuously receives frame images sent by the underlying software, the received frame images are sequentially sent to the queue for storage; Whenever the timer reaches the timing duration, the corresponding frame image is obtained from the queue in a first-in-first-out order and transmitted to the PC end until all the frame images stored in the queue are retrieved.

2. The video de-shaking method according to claim 1, characterized in that: The step of initializing the timer also includes: Setting the time interval for restarting the timer; While starting the timer to count down, counting the usage time of the timer; When the usage time reaches the restart time interval, the timer is triggered to restart. When the UVC software receives the frame image sent by the underlying software again, the timer is started to count down and count the usage time, and the frame image storage and transmission steps are repeated until all the frame images stored in the queue are taken out.

3. The video de-shaking method according to claim 1, characterized in that: The following steps are also included: When the total number of frame images received by the UVC software from the underlying software reaches N frames, the timer is triggered to restart. When the UVC software receives the frame image sent by the underlying software again, the timer is started to count down, and the frame image storage and transmission steps are repeated until all the frame images stored in the queue are taken out; Wherein, when the frame rate is 30fps, N∈[1000,1500) and N is a positive integer.

4. The video de-shaking method according to claim 1, characterized in that: The step of initializing the timer and setting the timing duration according to the frame rate includes: When the frame rate is 30fps, the timing duration is set so that the frame images transmitted to the PC end are evenly played at a time interval of 33.33ms.

5. The video de-shaking method according to any one of claims 1 to 4, characterized in that: The timer adopts a software timer.

6. A video de-shaking device, characterized in that: include, The timer initialization module is used to initialize the timer and set the timing duration according to the frame rate; A timer start module is used to start the timer to count down when the UVC software receives the first frame of image sent by the underlying software for the first time, and at the same time, send the received first frame of image into the queue for storage; When the UVC software continuously receives frame images sent by the underlying software, the received frame images are sequentially sent to the queue for storage; The image transmission module is used to obtain the corresponding frame image from the queue in a first-in-first-out order when the timer reaches the timing duration, and transmit it to the PC end until all the frame images stored in the queue are taken out.

7. The video de-shaking device according to claim 6, characterized in that: It also includes a first timer restart module, wherein the first timer restart module includes: A timer restart setting unit, used to set the time interval for restarting the timer; A timer restart determination unit, configured to count the usage time of the timer while starting the timer to count down; The timer restart trigger unit is used to trigger the restart of the timer when the usage time reaches the restart time interval. When the UVC software receives the frame image sent by the underlying software again, the timer is started to count down and count the usage time, and the frame image storage and transmission steps are repeated until all the frame images stored in the queue are taken out.

8. The video de-shaking device according to claim 6, characterized in that: Also includes, The second timer restart module is used to trigger the restart of the timer when the total number of frame images received by the UVC software from the underlying software reaches N frames, and when the UVC software receives the frame image sent by the underlying software again, the timer is started to count down, and the frame image storage and transmission steps are repeated until all the frame images stored in the queue are taken out; wherein, when the frame rate is 30fps, N∈[1000,1500) and N is a positive integer.

9. The video de-shaking device according to claim 6, characterized in that: The timer initialization module includes: The timing duration setting unit is used to set the timing duration when the frame rate is 30fps so that the frame images transmitted to the PC end are evenly played at a time interval of 33.33ms.

10. A computer device, characterized in that: The method comprises a memory, a processor and a computer program stored in the memory, wherein the processor executes the computer program to implement the steps of the method according to any one of claims 1 to 5.