WO2022001469A1 - 图像处理方法、装置、电子设备以及存储介质 - Google Patents
图像处理方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- WO2022001469A1 WO2022001469A1 PCT/CN2021/095054 CN2021095054W WO2022001469A1 WO 2022001469 A1 WO2022001469 A1 WO 2022001469A1 CN 2021095054 W CN2021095054 W CN 2021095054W WO 2022001469 A1 WO2022001469 A1 WO 2022001469A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- frame
- image frame
- target image
- padding
- frames
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- 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/156—Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
-
- 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- 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/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4781—Games
Definitions
- the present application relates to the field of computer technology, and in particular, to an image processing method, apparatus, electronic device, and storage medium.
- games can also display corresponding content to users in the form of video playback, and use the cloud to play games.
- the game does not run on the player's game terminal, but runs on the cloud server, and the cloud server renders the game scene into a video and audio stream, which is transmitted to the player's terminal through the network.
- the player's terminal does not need to have powerful graphics computing and data processing capabilities, but only needs to have basic streaming media playback capabilities and the ability to obtain player input instructions and send them to the cloud server.
- Embodiments of the present application provide an image processing method, apparatus, electronic device, and storage medium, which can reduce the time delay caused by decoding an image sequence and improve the smoothness of image processing.
- the embodiment of the present application provides an image processing method, including:
- the image frame set is input into the cache queue of the decoder frame by frame, and it is determined that the image frame currently positioned at the first position of the cache queue is the target image frame;
- a padding frame is inserted between the target image frame and the next image frame of the target image frame, so that in the cache queue, except for the target image frame, the rest of the frames are the fill frame;
- the next image frame of the target image frame is taken as a new target image frame, and a comparison between the target image frame and the target image frame based on the filling frame information is performed.
- the decoded image frame is processed and the processing result is displayed.
- an image processing apparatus including:
- a receiving module configured to receive padding frame information sent by a server and an image frame set of an image sequence to be processed, where the padding frame information is generated by the server according to the image frame set;
- a determination module for inputting the set of image frames into the cache queue of the decoder frame by frame, and determining that the image frame currently positioned at the top of the cache queue is the target image frame;
- An inserting module configured to insert a padding frame between the target image frame and the next image frame of the target image frame based on the padding frame information, so that in the cache queue, except for the target image frame, the rest of the The frame is the padding frame;
- the detection module is configured to use the next image frame of the target image frame as a new target image frame when it is detected that the decoding of the target image frame is completed, and perform a comparison between the target image frame and the target image frame based on the filling frame information. the step of inserting a filling frame between the next frame of image frames of the target image frame, until all the image frames in the image frame set are decoded;
- the processing module is used to process the decoded image frame and display the processing result.
- the plug-in module includes:
- a first extraction unit configured to extract a set of fill frames generated by the server according to the set of image frames from the fill frame information
- a selection unit used for selecting a filling frame corresponding to the target image frame in the filling frame set to obtain a target filling frame
- An inserting unit configured to insert a preset number of target padding frames between the target image frame and the next image frame of the target image frame.
- the insertion unit is specifically used for:
- a number of target padding frames corresponding to the padding quantity are inserted between the target image frame and the next image frame of the target image frame.
- an assignment module is also included, and the assignment module includes:
- a second extraction unit for extracting the frame number of the target image frame
- the assignment unit is configured to assign a value to the frame sequence number of the filled frame in the cache queue based on the frame sequence number and the position of the filled frame in the cache queue.
- the assignment unit is specifically used for:
- the frame sequence number of the filled frame in the cache queue is assigned based on the frame sequence number, the position of the filled frame in the cache queue, and the offset corresponding to the filled frame in the cache queue.
- the detection module is specifically used for:
- the next image frame of the target image frame is used as a new target image frame to obtain the current processing object
- the frame number of the current processing object is used as the benchmark, and the frame number between the target image frame and the next image frame of the target image frame is based on the filling frame information. Insert padding frames between;
- the frame number of the current processing object is adjusted according to the frame number corresponding to the previous frame of the current processing object, and the frame number of the current processing object is adjusted based on the filling frame information. Inserting a padding frame between the target image frame and the next frame of the target image frame;
- the step of obtaining the current processing object by taking the next image frame of the target image frame as a new target image frame is performed until all the image frames are decoded.
- the determining module is specifically used for:
- the target image frame is stored in the first position of the buffer queue.
- An embodiment of the present application further provides an electronic device, including a memory, a processor, and a computer program stored in the memory and running on the processor, wherein the processor implements the above image processing when executing the program steps of the method.
- Embodiments of the present application further provide a computer-readable storage medium on which a computer program is stored, wherein when the computer program is executed by a processor, the steps of the image processing method described above are implemented.
- FIG. 1a is a schematic diagram of a scene of an image processing method provided by an embodiment of the present application.
- FIG. 1b is a schematic flowchart of an image processing method provided by an embodiment of the present application.
- Fig. 2a is another schematic flowchart of the image processing method provided by the embodiment of the present application.
- FIG. 2b is a schematic diagram of an image processing system provided by an embodiment of the present application.
- 2c is a schematic flowchart of generating a padding frame in an image processing method provided by an embodiment of the present application
- FIG. 2d is a schematic flowchart of processing an image frame set by an image processing method provided by an embodiment of the present application
- FIG. 3a is a schematic structural diagram of an image processing apparatus provided by an embodiment of the present application.
- FIG. 3b is another schematic structural diagram of an image processing apparatus provided by an embodiment of the present application.
- FIG. 4 is a schematic structural diagram of an electronic device provided by an embodiment of the present application.
- FIG. 5 is a schematic structural diagram of the distributed system 100 provided in an embodiment of the present application applied to a blockchain system;
- FIG. 6 is a schematic diagram of a block structure (Block Structure) provided by an embodiment of the present application.
- the video hardware decoding frame buffer will greatly affect the overall delay, resulting in the final playback of the video may be stuck.
- Embodiments of the present application provide an image processing method, apparatus, electronic device, and storage medium, which can reduce the time delay caused by decoding an image sequence and improve the smoothness of image processing.
- the padding frame information is generated by the server according to the image frame set, and the image frame set is input frame by frame. to the cache queue of the decoder, and determine that the image frame currently located at the top of the cache queue is the target image frame, and then, based on the filling frame information, insert the image frame between the target image frame and the next frame of the target image frame.
- the image processing device may be specifically integrated in a terminal, and the terminal may be a smart phone, a tablet computer, a notebook computer, a desktop computer, a smart speaker, a smart watch, etc., but is not limited thereto.
- the terminal and the server may be directly or indirectly connected through wired or wireless communication, which is not limited in this application.
- the image processing apparatus is integrated on the terminal, and the terminal can receive the filling frame information sent by the server and the image frame set of the image sequence to be processed, wherein the filling frame information is generated by the server according to the image frame set.
- the server is a cloud server.
- the cloud server renders the game scene into a video and audio stream (ie, video stream data), and transmits it to the user's terminal through the network. Then, the terminal inputs the image frame set to the decoding frame by frame.
- the terminal In the cache queue of the controller, and determine that the image frame currently at the head of the cache queue is the target image frame, then, the terminal inserts the padding frame between the target image frame and the next image frame of the target image frame based on the padding frame information, so that the Except for the target image frame in the cache queue, the rest of the frames are filled frames.
- the terminal detects that the decoding of the target image frame is completed, the next frame of the target image frame is used as a new target image frame, and Execute the step of inserting a filling frame between the target image frame and the next image frame of the target image frame based on the filling frame information, until all the image frames in the image frame set are decoded, and finally, the terminal renders the decoded image frame to The sequence of images to be processed is played.
- a padding frame is inserted between the target image frame and the next image frame of the target image frame, so that when the target image frame is located in the cache queue, it is at the first position of the cache queue, and in the cache queue Except for the target image frame, the rest of the frames are filler frames, which improves the decoding speed of the image frame by the terminal, reduces the time delay caused by decoding the video, and further improves the efficiency of image processing.
- An image processing method comprising: receiving filling frame information sent by a server and an image frame set of an image sequence to be processed, inputting the image frame set into a buffer queue of a decoder frame by frame, and determining the image frame currently at the top of the buffer queue. For the target image frame, insert a padding frame between the target image frame and the next image frame of the target image frame based on the padding frame information. When it is detected that the decoding of the target image frame is completed, the next image frame of the target image frame is used as A new target image frame is created, and the step of inserting a filling frame between the target image frame and the next image frame of the target image frame based on the filling frame information is performed until all the image frames in the image frame set are decoded. The image frames are processed and the processing results are displayed.
- FIG. 1b is a schematic flowchart of an image processing method provided by the present application.
- the image processing method can be executed by a terminal, and the specific process can be as follows:
- the padding frame information is generated by the server according to the image frame set, and the terminal can receive the video stream data sent by the server through a wired network or wireless network, and the video stream data carries the padding frame information and the image frame set of the image sequence to be processed, After receiving the video stream data sent by the server, the video stream data is parsed to obtain the image frame set of the image sequence to be processed and the filling frame information generated by the server according to the image frame set.
- the format of the video data source can be AVC (Advanced Video Coding, that is, H.264 encoding standard), or HEVC (High Efficiency Video Coding, that is, H.265 encoding standard).
- the so-called video coding method refers to compressing the original video image into a binary byte stream through prediction, change, quantization, recombination and entropy coding in sequence through compression technology.
- the coding method includes: based on context Adaptive Variable Length Coding (Context-Adaptive Variable-Length Coding, CAVLC) and Context-based Adaptive Binary Arithmetic Coding (CABAC), the server obtains the image sequence header of the image sequence to be processed. After the information, the image sequence header information is parsed to obtain the image quality level of the image sequence to be processed, the number of reference frames, whether there are bidirectional prediction frames and the corresponding length of the image frame sequence, etc. To generate a padding frame, when the server generates a padding frame, it will package the generated padding frame, the sequence number and offset corresponding to the padding frame into padding frame information, and write it into the image sequence header information.
- the picture sequence header information is sent to the terminal.
- the volume of the video content usually needs to be reduced, that is, the original video image needs to be compressed, and the compression algorithm is also referred to as the encoding format.
- the server can use the H.264 encoding format to compress the video image.
- the compressed video content needs to be decompressed, also called decoding.
- the encoder encodes multiple images and produces a group of pictures (GOPs), and the decoder reads the GOPs to decode them, and then reads the images and then renders them for display.
- GOP Group of Pictures
- GOP is a group of continuous pictures, which consists of a key frame and multiple non-key frames.
- the key frame is the basic frame (the first frame) of the GOP, and there is only one key frame in a group.
- the key frame includes the forward reference frame and the bidirectional reference frame, where the key frame is a complete picture, and the forward reference frame and the bidirectional reference frame record the changes relative to the key frame.
- the reference frame needs to rely on the previous frame of image for decoding, and the bidirectional reference frame needs to rely not only on the previous frame of image, but also on the next frame of image for decoding, that is, when the video needs to be played, it is necessary to locate a key frame first.
- the position of the video can be played, that is, in some embodiments, the step "input the image frame set into the cache queue of the decoder frame by frame, and determine the image frame currently at the top of the cache queue as the target image frame” , which can include:
- the user's terminal can cache video data (ie, image frame sets) between the user's terminal and the server through a cache queue, that is, the cache queue is used for each image frame to be decoded in the image processing process. and the terminal decodes the first image frame in the buffer queue only when all buffer spaces in the buffer queue are buffered with image frames.
- video data ie, image frame sets
- a padding frame is inserted between the target image frame and the next image frame of the target image frame, so that the remaining frames in the cache queue are padding frames except the target image frame.
- cloud Cloud gaming also known as gaming on demand
- the set of image frames sent by the server generally only includes key frame and forward reference frame, because the bidirectional reference frame records the difference between the current frame and the previous frame, that is to say, to decode the bidirectional reference frame, not only the cached picture before the bidirectional reference frame is obtained, but also after the bidirectional reference frame is decoded.
- Picture the final picture is obtained by superimposing the front and rear pictures with the data of this frame.
- the bidirectional reference frame When the bidirectional reference frame needs to be decoded, it is also necessary to obtain the data of the next frame of the bidirectional reference frame. At this time, the next frame of the bidirectional reference frame is still in the cache. In the queue, therefore, the bidirectional reference frame cannot be decoded, causing the picture to freeze and other phenomena.
- the padding frame information includes the padding frame corresponding to each image frame in the image frame set. Therefore, the padding frame corresponding to the target image frame can be determined according to the padding frame information, and the determined padding frame can be inserted into the gap between the target image frame and the target image frame. Between the next image frames, so that the target image frame is at the head of the cache queue, and the other frames in the cache queue are filled frames except the target image frame, that is, in some embodiments, the step "based on”
- the padding frame information inserts a padding frame between the target image frame and the next image frame of the target image frame", which may specifically include:
- the padding frame is a forward prediction frame
- the frame mode of the padding frame is skip mode.
- the P-Skip macroblock is a special P macroblock.
- Both the pixel residual and the motion vector residual are written into the code stream and transmitted from the encoding end to the decoding end, but the special feature of the P-Skip macroblock is that neither the pixel residual nor the motion vector residual is transmitted.
- the encoding end does not need to transmit other information about the macroblock.
- the motion vector residual is equal to the difference between the motion vector and the predicted motion vector, in the encoding segment
- the motion vector residual is zero, and the predicted motion vector can be obtained during decoding, that is to say, during decoding, the motion vector can also be obtained.
- the decoding end there are reconstructed pixels of the macroblock corresponding to the reference frame. According to the reconstructed pixels and The motion vector can restore the pixel value of the macroblock in this frame. This is the so-called P-skip macroblock principle. Literally, this macroblock is skipped, which is equivalent to this macroblock is not encoded, and is taken at the decoding end.
- the pixel value of this macroblock in this frame can be directly recovered by an approximate substitution method, for example, there is a ping-pong ball in the first frame, and there is also a ping-pong ball in the second frame, the ping-pong ball in the second frame is this Macroblocks are likely to be encoded into PSkip macroblocks.
- the filler frame inserted into the buffer queue from the perspective before encoding is exactly the same as the target image frame.
- a padding frame is inserted between the target image frame and the next image frame of the target image frame, so that the buffer queue is filled (up to the maximum buffer number of the buffer queue), you can According to the maximum buffer number of the cache queue and the target image frame, the padding quantity is generated, and then, the target padding frame corresponding to the padding quantity is inserted between the target image frame and the next image frame of the target image frame, that is, in some implementations
- the step "insert a preset number of target padding frames between the target image frame and the next image frame of the target image frame" may specifically include:
- the frame number of the target image frame is 5, and 4 padding frames are inserted into the cache queue, which are padding frame A, padding frame B, padding frame C, and padding frame D, and the positions between padding frames are padding frames.
- A-filling B-filling frame C-filling frame D, the corresponding frame numbers of the stuffing frame A, stuffing frame B, stuffing frame C and stuffing frame D are assigned in an increasing order.
- the frame serial number of stuffing frame A is 6.
- the frame serial number of the stuffing frame B is 7, the frame serial number of the stuffing frame C is 8, and the frame serial number of the stuffing frame D is 9.
- an H.264 slice refers to an integer number of macroblocks or macroblock pairs arranged in a raster scan order within a specific slice group, but these macroblocks or macroblock pairs It is not necessarily consecutively arranged in the raster scan order within the image, and the addresses of the macroblocks are obtained through the address of the first macroblock of the slice (described in the slice header) and the mapping from macroblocks to slice groups.
- the H.264 slice header refers to a part of the coding slice, which contains data elements related to the first or all macroblocks in the slice, that is, the information corresponding to the filling frame in the buffer queue can be extracted from the filling frame information.
- Offset which refers to the offset of the padding frame in the slice header, and then, based on the frame sequence number, the position of the padding frame in the buffer queue and the offset corresponding to the padding frame in the buffer queue, for all
- the frame sequence number of the filled frame in the cache queue is assigned, that is, in some embodiments, the step "based on the frame sequence number and the position of the filled frame in the cache queue, assigns the frame sequence number of the filled frame in the cache queue, so that in the The frame sequence number of the last frame filled frame in the cache queue is the second frame sequence number", which may include:
- the frame sequence number of the padding frame generated by the server is extracted from the padding frame information, and according to the frame sequence number, the position of the padding frame in the cache queue, and the offset corresponding to the padding frame in the buffer queue, the buffer queue is filled with The frame serial number of the frame is updated to the corresponding frame serial number, so as to ensure the continuity of the image sequence to be processed after the filling frame is inserted into the buffer queue.
- the next image frame of the target image frame is taken as the new target image frame, and the image frame between the target image frame and the next image frame of the target image frame is executed based on the filling frame information.
- the step of inserting padding frames between the image frames until all image frames in the image frame set are decoded.
- the next image frame of the target image frame is taken as the new target image frame, that is, the next image frame of the target image frame is taken as the currently processed image. frame, and then, insert a padding frame between the currently processed image frame and the next image frame of the currently processed image frame, that is, perform the interpolation between the target image frame and the next image frame of the target image frame based on the padding frame information.
- the step of inserting padding frames between the image frames until all image frames in the image frame set are decoded.
- the frame number of the current processing object is adjusted according to the frame number corresponding to the previous frame of the current processing object, and the current processing object and the current processing object are based on the filling frame information. Insert a padding frame between the next frame of image frames;
- the frame sequence number of the current processing object is determined as the starting sequence number.
- the frame number of the frame is assigned; if the current processing object is not a key frame, the frame number corresponding to the previous frame of the current processing object is obtained, where the previous frame of the current processing object is the filling frame, that is, according to the previous frame
- the frame number of the filled frame adjusts the frame number of the current processing object, and assigns the frame number of the filled frame in the cache queue based on the adjusted frame number of the current processing object and the position of the filled frame in the cache queue.
- the current processing object is not a key frame, based on the adjusted frame number of the current processing object and the position of the filled frame in the cache queue, after assigning the frame number of the filled frame in the cache queue, it is also necessary to detect the assigned filled frame. Whether the corresponding frame sequence number is greater than the preset threshold, if so, the frame sequence number greater than the preset threshold will be reset to zero.
- the decoded image frame can be rendered to play the image sequence to be processed.
- the filling frame is a P-skip frame
- the P-skip frame is only decoded without rendering, and the Each frame of video is decoded, rendered, and played, ultimately reducing the delay caused by decoding the video and improving the smoothness of image processing.
- the image frame set is input into the cache queue of the decoder frame by frame, and the image frame currently at the top of the cache queue is determined as the target image frame. , and then insert a padding frame between the target image frame and the next image frame of the target image frame based on the padding frame information, so that in addition to the target image frame in the cache queue, the rest of the frames are padding frames.
- the image frame decoding When the target image frame is detected When the image frame decoding is completed, take the next image frame of the target image frame as a new target image frame, and perform the step of inserting a filling frame between the target image frame and the next image frame of the target image frame based on the filling frame information , until all the image frames in the image frame set are decoded, and finally, the decoded image frames are processed and the processing results are displayed.
- a padding frame is inserted between the target image frame and the next image frame of the target image frame, so that when the target image frame is located in the cache queue, it is at the first position of the cache queue, and in the cache queue Except for the target image frame, the rest of the frames are filler frames, which improves the decoding speed of the image frame by the terminal, reduces the time delay caused by decoding the video, and further improves the efficiency of image processing.
- the image processing apparatus is specifically integrated in a terminal as an example for description.
- the terminal receives the padding frame information and the image frame set of the to-be-processed image sequence sent by the server.
- the terminal inputs the set of image frames frame by frame into the buffer queue of the decoder, and determines the image frame currently at the head of the buffer queue as the target image frame.
- the terminal When the terminal receives the compressed video content sent by the server, the terminal needs to decompress the compressed video content. That is, when the terminal needs to play the video, it first needs to locate the position of a key frame before the video can be played. .
- the terminal inserts a padding frame between the target image frame and the next image frame of the target image frame based on the padding frame information.
- the padding frame information includes the padding frame corresponding to each image frame in the image frame set. Therefore, the padding frame corresponding to the target image frame can be determined according to the padding frame information, and the determined padding frame can be inserted into the gap between the target image frame and the target image frame. between the next image frames, so that the target image frame is located at the head of the buffer queue, and the other frames in the buffer queue except the target image frame are filled frames.
- the terminal detects that the decoding of the target image frame is completed, the terminal takes the next image frame of the target image frame as a new target image frame, and executes the next frame of the target image frame and the next image frame of the target image frame based on the filling frame information. The steps of inserting padding frames in between until all the image frames in the image frame set have been decoded.
- the frame sequence number of the current processing object is determined as the starting sequence number.
- the frame number of the filling frame is assigned; if the current processing object is not a key frame, the terminal obtains the frame number corresponding to the previous frame of the current processing object, wherein the previous frame of the current processing object is the filling frame, that is, the terminal according to The frame number of the filled frame of the previous frame adjusts the frame number of the current processing object, and assigns the frame number of the filled frame in the cache queue based on the adjusted frame number of the current processing object and the position of the filled frame in the cache queue, which needs to be explained.
- the terminal needs to detect the assignment after assigning the frame number of the filled frame in the cache queue based on the frame number adjusted by the current processing object and the position of the filled frame in the cache queue. Whether the frame sequence number corresponding to the subsequent padding frame is greater than the preset threshold, and if so, the terminal will perform zero reset processing on the frame sequence number greater than the preset threshold.
- the terminal processes the decoded image frame, and displays the processing result
- the decoded image frame is rendered to play the image sequence to be processed.
- the filling frame is a P-skip frame
- the P-skip frame is only decoded but not rendered, and each frame of video in the image frame set is decoded, rendered and played, and finally the decoding of the video is reduced. The delay brought about by the purpose of improving the fluency of image processing.
- the terminal of the present application After the terminal of the present application receives the fill frame information sent by the server and the image frame set of the image sequence to be processed, the terminal inputs the image frame set into the buffer queue of the decoder frame by frame, and determines that the image frame currently at the top of the buffer queue is the target image frame, and then, the terminal inserts a padding frame between the target image frame and the next image frame of the target image frame based on the padding frame information, so that the remaining frames except the target image frame in the cache queue are padding frames, When the terminal detects that the decoding of the target image frame is completed, it takes the next image frame of the target image frame as a new target image frame, and executes the process between the target image frame and the next image frame of the target image frame based on the filling frame information.
- the step of inserting filling frames is performed until all image frames are decoded.
- the terminal processes the decoded image frames and displays the processing results.
- the terminal provided by the present application inserts a padding frame between the target image frame and the next image frame of the target image frame, so that when the target image frame is located in the buffer queue, it is at the first position of the buffer queue, and the target image frame is removed from the buffer queue.
- the rest of the frames are filled frames, which improves the decoding speed of the image frame by the terminal, reduces the delay caused by decoding the video, and further improves the efficiency of image processing.
- the present application provides an image processing system (hereinafter referred to as a processing system), the processing system includes: a first terminal 10, a second terminal 20, and a server 30.
- the terminal 10 After collecting the to-be-processed image sequence encoding to generate the H.264 video stream, send the image sequence header information of the video to be played to the server 30, wherein the image sequence header information includes the sequence parameter set and image parameter set of the video to be played, and the sequence parameter A set of global parameters of an encoded video sequence is centrally stored.
- the so-called encoded video sequence is a sequence composed of the encoded pixel data of one frame and one frame of the original video, and the parameters on which the encoded data of each frame depends are stored.
- the server 30 parses the image sequence header information to obtain the basic format information of the image sequence to be processed, including the number of reference frames, the video level, the maximum frame sequence, and the frame sequence number. The offset in the corresponding strip and the number of bidirectional reference frame image frames, and based on the analysis result, it is determined whether the to-be-processed image sequence can generate a padding frame. Specifically, please refer to FIG.
- the padding frame generation module corresponding to the CAVLC mode is selected, and the entropy coding mode is CABAC mode, then Select the padding frame generation module corresponding to the CABAC mode; then, based on the selected padding frame generation module, specify the encoder to generate a forward reference frame without any motion vector estimation, and all macroblock prediction modes are forced to P-skip mode (skip mode). Pass mode), generate the corresponding padding frame by specifying the entropy coding mode (CAVLC/CABAC), and finally, the padding frame information packaging module will generate the padding frame, the frame sequence number in the parsing result, and the frame sequence number in the corresponding strip.
- the offset is encapsulated to obtain the padding frame information, and the server 30 sends the image sequence header information and the padding frame information to the second terminal 20 .
- the second terminal 20 receives the image sequence header information and the padding frame information sent by the server 30, and the second terminal 20 parses the image sequence header information to obtain the image frame set of the image sequence to be processed.
- the second terminal 20 inserts the image frame set into the decoding module of the second terminal 20 frame by frame, if there is a buffer queue during decoding, the second terminal 20 extracts the filling frame generated by the server 30 from the filling frame information.
- the second terminal 20 determines, according to the set of image frames, that the image frame currently at the head of the cache queue is the target image frame, and inserts a filling frame between the target image frame and the next image frame of the target image frame based on the filling frame information, and then , the second terminal 20 respectively updates the frame sequence numbers of the filled frames and the target image frames in the cache queue according to the offset in the filled frame information, so as to ensure the continuity of the images of the image sequence to be processed, please refer to the previous embodiment for details,
- the filling frame generation module in the server 30 sends the image sequence header information to the relay proxy server, so that the second terminal 20 receives the image sent by the relay proxy server.
- the sequence header information shows the image sequence to be
- the present application further provides an image processing apparatus based on the above method.
- the meanings of the nouns are the same as those in the above image processing method, and the specific implementation details can refer to the description in the method embodiment.
- FIG. 3a is a schematic structural diagram of an image processing apparatus provided by the present application, wherein the image processing apparatus may include a receiving module 301, a determining module 302, an inserting module 303, a detecting module 304, and a rendering module 305, which may be specifically as follows:
- the receiving module 301 is configured to receive the padding frame information sent by the server and the image frame set of the image sequence to be processed.
- the padding frame information is generated by the server according to the image frame set, and the receiving module 301 can receive the video stream data sent by the server through a wired network or wireless network, and the video stream data carries the padding frame information and the image frame set of the image sequence to be processed. , after receiving the video stream data sent by the server, analyze the video stream data, thereby obtaining the image frame set of the image sequence to be processed and the filling frame information generated by the server according to the image frame set.
- the format of the video data source can be AVC (Advanced Video Coding, namely H.264 encoding standard), can also be HEVC (High Efficiency Video Coding, namely H.265 encoding standard).
- the determining module 302 is configured to input the image frame set into the buffer queue of the decoder frame by frame, and determine the image frame currently located at the head of the buffer queue as the target image frame.
- the volume of the video content usually needs to be reduced, that is, the original video image needs to be compressed, and the compression algorithm is also referred to as the encoding format.
- the H.264 encoding format can be used to compress the video image, and when the determining module 302 receives the compressed video content sent by the server, the terminal needs to decompress the compressed video content, that is, when the determining module 302 needs to play
- the terminal when creating a video, it is first necessary to locate the position of a key frame before the video can be played.
- the determining module 302 may be specifically configured to: obtain the key frame of the currently rendered image sequence to be processed, obtain the target key frame, and determine the next image frame of the target key frame in the image frame set as the target image frame, Store the target image frame at the head of the buffer queue.
- the inserting module 303 is configured to insert a padding frame between the target image frame and the next image frame of the target image frame based on the padding frame information.
- the padding frame information includes a padding frame corresponding to each image frame in the image frame set. Therefore, the inserting module 303 can determine a padding frame corresponding to the target image frame according to the padding frame information, and insert the determined padding frame into the target image frame and the target image frame. between the next image frame of the image frame, so that the target image frame is at the head of the buffer queue, and the other frames in the buffer queue except the target image frame are filled frames.
- the plug-in module 303 may specifically include:
- the first extraction unit is used for extracting the filling frame set generated by the server according to the image frame set from the filling frame information
- the selection unit is used to select the filling frame corresponding to the target image frame in the filling frame set to obtain the target filling frame;
- the inserting unit is used for inserting a preset number of target filling frames between the target image frame and the next image frame of the target image frame.
- the inserting unit may be specifically configured to: detect the maximum buffer quantity corresponding to the buffer queue, generate the filling quantity according to the target image frame and the maximum buffer quantity, and generate a filling quantity between the target image frame and the next image frame of the target image frame. Interpolate a number of target padding frames corresponding to the padding amount.
- the image processing apparatus may further include an assignment module 306, and the assignment module 306 includes:
- the second extraction unit is used to extract the frame sequence number of the target image frame
- the assignment unit is used to assign the frame sequence number of the filled frame in the cache queue based on the frame sequence number and the position of the filled frame in the cache queue.
- the assignment unit may be specifically configured to: extract the offset corresponding to the filled frame in the buffer queue from the fill frame information, and fill the frame in the buffer queue based on the frame sequence number, the position of the filled frame in the buffer queue, and the buffer queue.
- the corresponding offset is assigned to the frame number of the filled frame in the buffer queue.
- the detection module 304 is configured to use the next frame of the target image frame as a new target image frame when detecting that the decoding of the target image frame is completed, and perform the next step between the target image frame and the target image frame based on the filling frame information. The step of inserting stuffing frames between the frame image frames until all the image frames in the image frame set are decoded.
- the frame sequence number of the current processing object is determined as the starting sequence number, and the detection module 304 is based on the frame sequence number of the current processing object and the position of the filled frame in the cache queue.
- the frame number of the filling frame in the queue is assigned; if the current processing object is not a key frame, the terminal obtains the frame number corresponding to the previous frame of the current processing object, where the previous frame of the current processing object is the filling frame, that is,
- the detection module 304 adjusts the frame serial number of the current processing object according to the frame serial number of the filling frame of the previous frame, and based on the adjusted frame serial number of the current processing object and the position of the filling frame in the buffer queue, performs the frame serial number of the filling frame in the buffer queue.
- the detection module 304 assigns the frame number of the filled frame in the cache queue based on the frame sequence number adjusted by the current processing object and the position of the filled frame in the cache queue. Afterwards, it is also necessary to detect whether the frame sequence number corresponding to the assigned padding frame is greater than the preset threshold, and if so, the terminal performs zero-returning processing on the frame sequence number greater than the preset threshold.
- the detection module 304 can be specifically configured to: when it is detected that the decoding of the target image frame is completed, use the next image frame of the target image frame as a new target image frame, obtain the current processing object, and detect the current processing object When the detection result indicates that the current processing object is a key frame, the frame number of the current processing object is used as the benchmark, and the filling frame is inserted between the target image frame and the next image frame of the target image frame based on the filling frame information; When it is detected that the frame type of the target image frame is not a key frame, the frame serial number of the current processing object is adjusted according to the frame serial number corresponding to the previous frame of the current processing object, and based on the filling frame information, the target image frame and the target Insert a filling frame between the next image frame of the image frame; perform the steps of taking the next image frame of the target image frame as a new target image frame to obtain the current processing object, until all the image frames in the image frame set are decoded complete.
- the rendering module 305 is configured to render the decoded image frame to play the image sequence to be processed.
- the rendering module 305 since the filling frame is a P-skip frame, the rendering module 305 only decodes the P-skip frame but does not render it, but decodes, renders and plays each frame of video in the image frame set, and finally achieves a reduced
- the purpose of improving the fluency of image processing is the delay caused by video decoding.
- the receiving module 301 of the present application After receiving the filling frame information sent by the server and the image frame set of the to-be-processed image sequence, the receiving module 301 of the present application, the determining module 302 inputs the image frame set frame by frame into the buffer queue of the decoder, and determines that it is currently at the top of the buffer queue.
- the image frame is the target image frame
- the inserting module 303 inserts the padding frame between the target image frame and the next image frame of the target image frame based on the padding frame information, so that in the cache queue, except the target image frame, the rest
- the frame is a filling frame
- the detection module 304 detects that the decoding of the target image frame is completed
- the next image frame of the target image frame is used as a new target image frame
- the target image frame and the target image frame are executed based on the filling frame information.
- the rendering module 305 renders the decoded image frames to play the image sequence to be processed.
- the image processing device inserts a padding frame between the target image frame and the next image frame of the target image frame, so that when the target image frame is located in the cache queue, it is at the first position of the cache queue, and in the cache queue Except for the target image frame, the rest of the frames are filler frames, which improves the decoding speed of the image frame by the terminal, reduces the time delay caused by decoding the video, and further improves the efficiency of image processing.
- FIG. 4 shows a schematic structural diagram of the electronic device involved in the present application, specifically:
- the electronic device may include a processor 401 of one or more processing cores, a memory 402 of one or more computer-readable storage media, a power supply 403 and an input unit 404 and other components.
- a processor 401 of one or more processing cores may include a processor 401 of one or more processing cores, a memory 402 of one or more computer-readable storage media, a power supply 403 and an input unit 404 and other components.
- FIG. 4 does not constitute a limitation to the electronic device, and may include more or less components than the one shown, or combine some components, or arrange different components. in:
- the processor 401 is the control center of the electronic device, uses various interfaces and lines to connect various parts of the entire electronic device, runs or executes the software programs and/or modules stored in the memory 402, and invokes the software programs and/or modules stored in the memory 402. Data, perform various functions of electronic equipment and process data, so as to conduct overall monitoring of electronic equipment.
- the processor 401 may include one or more processing cores; the processor 401 may integrate an application processor and a modem processor, wherein the application processor mainly handles the operating system, user interface, and application programs, and the modem processor mainly handles Handle wireless communications. It can be understood that, the above-mentioned modulation and demodulation processor may not be integrated into the processor 401.
- the memory 402 can be used to store software programs and modules, and the processor 401 executes various functional applications and data processing by running the software programs and modules stored in the memory 402 .
- the memory 402 may mainly include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application program (such as a sound playback function, an image playback function, etc.) required for at least one function, and the like; Data created by the use of electronic equipment, etc.
- memory 402 may include high-speed random access memory, and may also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other volatile solid state storage device. Accordingly, memory 402 may also include a memory controller to provide processor 401 access to memory 402 .
- the electronic device also includes a power supply 403 for supplying power to various components.
- the power supply 403 can be logically connected to the processor 401 through a power management system, so that functions such as charging, discharging, and power consumption management are implemented through the power management system.
- Power source 403 may also include one or more DC or AC power sources, recharging systems, power failure detection circuits, power converters or inverters, power status indicators, and any other components.
- the electronic device may also include an input unit 404 that may be used to receive input numerical or character information and generate keyboard, mouse, joystick, optical or trackball signal input related to user settings and function control.
- an input unit 404 may be used to receive input numerical or character information and generate keyboard, mouse, joystick, optical or trackball signal input related to user settings and function control.
- the electronic device may further include a display unit and the like, which will not be described here.
- the processor 401 in the electronic device loads the executable files corresponding to the processes of one or more application programs into the memory 402 according to the following instructions, and the processor 401 executes them and stores them in the memory 402 .
- Receive the fill frame information sent by the server and the image frame set of the image sequence to be processed input the image frame set into the cache queue of the decoder frame by frame, and determine the image frame currently at the top of the cache queue as the target image frame.
- the frame information inserts a padding frame between the target image frame and the next image frame of the target image frame.
- the next image frame of the target image frame is used as a new target image frame, and
- the step of inserting a filling frame between the target image frame and the next image frame of the target image frame based on the filling frame information is performed until all the image frames are decoded, and the decoded image frame is rendered to play the image sequence to be processed.
- the image frame set is input into the cache queue of the decoder frame by frame, and the image frame currently at the top of the cache queue is determined as the target image frame. , and then insert a padding frame between the target image frame and the next image frame of the target image frame based on the padding frame information, so that in addition to the target image frame in the cache queue, the rest of the frames are padding frames.
- a padding frame is inserted between the target image frame and the next image frame of the target image frame, so that when the target image frame is located in the cache queue, it is at the first position of the cache queue, and in the cache queue Except for the target image frame, the rest of the frames are filler frames, which improves the decoding speed of the image frame by the terminal, reduces the time delay caused by decoding the video, and further improves the efficiency of image processing.
- the present application provides a non-volatile computer-readable storage medium, in which a plurality of instructions are stored, and the instructions can be loaded by a processor to execute the steps in any of the image processing methods provided by the present application .
- the instruction can perform the following steps:
- Receive the fill frame information sent by the server and the image frame set of the image sequence to be processed input the image frame set into the cache queue of the decoder frame by frame, and determine the image frame currently at the head of the cache queue as the target image frame, based on the fill frame
- the information inserts a padding frame between the target image frame and the next image frame of the target image frame.
- the next image frame of the target image frame is taken as the new target image frame, and the execution
- the storage medium may include: a read-only memory (ROM, Read Only Memory), a random access memory (RAM, Random Access Memory), a magnetic disk or an optical disk, and the like.
- ROM Read Only Memory
- RAM Random Access Memory
- magnetic disk or an optical disk and the like.
- the system involved in this application may be a distributed system formed by connecting a client and multiple nodes (computing devices of any form in an access network, such as a server and a user terminal) through network communication.
- FIG. 5 is a schematic structural diagram of the distributed system 100 provided by the present application applied to the blockchain system.
- a peer-to-peer (P2P, Peer To Peer) network is formed between nodes.
- the P2P protocol is a protocol that runs on the Transmission Control Protocol (TCP, Transmission Control Protocol) protocol. application layer protocol.
- TCP Transmission Control Protocol
- application layer protocol In a distributed system, any machine such as a server and a terminal can join to become a node, and a node includes a hardware layer, a middle layer, an operating system layer and an application layer.
- the involved functions include:
- Routing a basic function that a node has to support communication between nodes.
- a node can also have the following functions:
- Application used to deploy in the blockchain, implement specific business according to actual business needs, record data related to the realization of functions to form record data, carry a digital signature in the record data to indicate the source of the task data, and send the record data To other nodes in the blockchain system, for other nodes to add the record data to the temporary block when verifying the source and integrity of the record data successfully.
- the business implemented by the application can include: blockchain, including a series of blocks (Block) that are connected to each other in the chronological order of generation. Once a new block is added to the blockchain, it will not be removed. The record data submitted by the nodes in the blockchain system is recorded.
- blockchain including a series of blocks (Block) that are connected to each other in the chronological order of generation. Once a new block is added to the blockchain, it will not be removed.
- the record data submitted by the nodes in the blockchain system is recorded.
- FIG. 6 is a schematic diagram of the block structure (Block Structure) provided by this application, and each block includes the hash value of this block storage transaction record (the hash value of this block), and the previous block.
- the hash value of the block, each block is connected by the hash value to form a blockchain.
- the block may also include information such as a timestamp when the block was generated.
- Blockchain (Blockchain) is essentially a decentralized database, which is a series of data blocks associated with cryptographic methods. Each data block contains relevant information to verify the validity of its information. (anti-counterfeiting) and generate the next block
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
Claims (15)
- 一种图像处理方法,包括:接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合,所述填充帧信息由所述服务器根据所述图像帧集合生成的;将所述图像帧集合逐帧输入至解码器的缓存队列中,并确定当前位于所述缓存队列首位的图像帧为目标图像帧;基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧,以使得所述缓存队列中除所述目标图像帧之外,其余的帧为所述填充帧;当检测到所述目标图像帧解码完成时,将所述目标图像帧的下一帧图像帧作为新的目标图像帧,并执行在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至所述图像帧集合中的所有图像帧均解码完毕;对解码后的图像帧进行处理,并展示处理结果。
- 根据权利要求1所述的方法,所述基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧,包括:从所述填充帧信息中提取由所述服务器根据所述图像帧集合生成的填充帧集合;在所述填充帧集合中选择与所述目标图像帧对应的填充帧,得到目标填充帧;在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入预设数量的目标填充帧。
- 根据权利要求2所述的方法,所述在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入预设数量的目标填充帧,包括:检测所述缓存队列对应的最大缓存数量;根据所述目标图像帧以及最大缓存数量,生成填充数量;在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入与填充数量对应数量的目标填充帧。
- 根据权利要求3所述的方法,所述在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入与填充数量对应数量的目标填充帧之后,还包括:提取所述目标图像帧的帧序号;基于帧序号以及在所述缓存队列中填充帧的位置,对所述缓存队列中填充帧的帧序号进行赋值。
- 根据权利要求4所述的方法,所述基于帧序号以及在所述缓存队列中填充帧的位 置,对所述缓存队列中填充帧的帧序号进行赋值,包括:从所述填充帧信息中提取在所述缓存队列中填充帧对应的偏移量;基于帧序号、在所述缓存队列中填充帧的位置以及在所述缓存队列中填充帧对应的偏移量,对所述缓存队列中填充帧的帧序号进行赋值。
- 根据权利要求1至5任一项所述的方法,所述当检测到所述目标图像帧解码完成时,将所述目标图像帧的下一帧图像帧作为新的目标图像帧,并执行基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至所有图像帧均解码完毕,包括:当检测到所述目标图像帧解码完成时,将所述目标图像帧的下一帧图像帧作为新的目标图像帧,得到当前处理对象;检测所述当前处理对象的类型;当检测结果指示所述当前处理对象为关键帧时,则以所述当前处理对象的帧序号为基准,基于填充帧信息在所述当前处理对象与所述当前处理对象的下一帧图像帧之间插入填充帧;当检测到所述当前处理对象不为关键帧时,则根据所述当前处理对象的上一帧对应的帧序号,调整所述当前处理对象的帧序号,并基于填充帧信息在所述当前处理对象与所述当前处理对象的下一帧图像帧之间插入填充帧;执行将所述目标图像帧的下一帧图像帧作为新的目标图像帧,得到当前处理对象的步骤,直至所有图像帧均解码完毕。
- 根据权利要求1至5任一项所述的方法,所述将所述图像帧集合逐帧输入至解码器的缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧,包括:获取当前渲染的所述待处理图像序列的关键帧,得到目标关键帧;在所述图像帧集合确定所述目标关键帧的下一帧图像帧为目标图像帧;将所述目标图像帧存放至缓存队列的首位。
- 一种图像处理装置,包括:接收模块,用于接收服务器发送的填充帧信息以及待处理图像序列的图像帧集合,所述填充帧信息由所述服务器根据所述图像帧集合生成的;确定模块,用于将所述图像帧集合逐帧输入至解码器的缓存队列中,并确定当前位于缓存队列首位的图像帧为目标图像帧;插入模块,用于基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像 帧之间插入填充帧,以使得所述缓存队列中除所述目标图像帧之外,其余的帧为所述填充帧;检测模块,用于当检测到所述目标图像帧解码完成时,将所述目标图像帧的下一帧图像帧作为新的目标图像帧,并执行基于填充帧信息在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入填充帧的步骤,直至所述图像帧集合中的所有图像帧均解码完毕;处理模块,用于对解码后的图像帧进行处理,并展示处理结果。
- 根据权利要求8所述的图像处理装置,所述插入模块包括:第一提取单元,用于从所述填充帧信息中提取由服务器根据所述图像帧集合生成的填充帧集合;选择单元,用于在所述填充帧集合中选择与所述目标图像帧对应的填充帧,得到目标填充帧;插入单元,用于在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入预设数量的目标填充帧。
- 根据权利要求9所述的图像处理装置,其中所述插入单元进一步用于:检测所述缓存队列对应的最大缓存数量,根据所述目标图像帧以及所述最大缓存数量,生成填充数量,在所述目标图像帧与所述目标图像帧的下一帧图像帧之间插入与填充数量对应数量的目标填充帧。
- 根据权利要求10的图像处理装置,进一步包括赋值模块,所述赋值模块包括:第二提取单元,用于提取所述目标图像帧的帧序号;赋值单元,用于基于帧序号以及在所述缓存队列中填充帧的位置,对所述缓存队列中填充帧的帧序号进行赋值。
- 根据权利要求11所述的图像处理装置,其中,所述赋值单元进一步用于:从所述填充帧信息中提取在所述缓存队列中填充帧对应的偏移量,基于帧序号、在所述缓存队列中填充帧的位置以及在所述缓存队列中填充帧对应的偏移量,对所述缓存队列中填充帧的帧序号进行赋值。
- 根据权利要求8至12任一项所述的方法,其中,所述检测模块进一步用于:当检测到所述目标图像帧解码完成时,将所述目标图像帧的下一帧图像帧作为新的目标图像帧,得到当前处理对象;检测所述当前处理对象的类型;当检测结果指示所述当前处理对象为关键帧时,则以所述当前处理对象的帧序号为 基准,基于填充帧信息在所述当前处理对象与所述当前处理对象的下一帧图像帧之间插入填充帧;当检测到所述当前处理对象不为关键帧时,则根据所述当前处理对象的上一帧对应的帧序号,调整所述当前处理对象的帧序号,并基于填充帧信息在所述当前处理对象与所述当前处理对象的下一帧图像帧之间插入填充帧;执行将所述目标图像帧的下一帧图像帧作为新的目标图像帧,得到当前处理对象的步骤,直至所有图像帧均解码完毕。
- 一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1-7任一项所述图像处理方法的步骤。
- 一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述图像处理方法的步骤。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022552630A JP7471725B2 (ja) | 2020-07-01 | 2021-05-21 | 画像処理方法、装置、電子機器及びコンピュータプログラム |
| EP21834613.8A EP4044608B1 (en) | 2020-07-01 | 2021-05-21 | Image processing method and apparatus, electronic device and storage medium |
| US17/728,810 US12217462B2 (en) | 2020-07-01 | 2022-04-25 | Image processing method and apparatus, electronic device, and storage medium for reducing time delay caused by decoding an image sequence and improving the smoothness of image processing |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010626281.7A CN111901666B (zh) | 2020-07-01 | 2020-07-01 | 图像处理方法、装置、电子设备以及存储介质 |
| CN202010626281.7 | 2020-07-01 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/728,810 Continuation US12217462B2 (en) | 2020-07-01 | 2022-04-25 | Image processing method and apparatus, electronic device, and storage medium for reducing time delay caused by decoding an image sequence and improving the smoothness of image processing |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022001469A1 true WO2022001469A1 (zh) | 2022-01-06 |
Family
ID=73192864
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2021/095054 Ceased WO2022001469A1 (zh) | 2020-07-01 | 2021-05-21 | 图像处理方法、装置、电子设备以及存储介质 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US12217462B2 (zh) |
| EP (1) | EP4044608B1 (zh) |
| JP (1) | JP7471725B2 (zh) |
| CN (1) | CN111901666B (zh) |
| WO (1) | WO2022001469A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115278308A (zh) * | 2022-07-28 | 2022-11-01 | 北京字跳网络技术有限公司 | 媒体流处理方法、装置、设备及存储介质 |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111901666B (zh) * | 2020-07-01 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、电子设备以及存储介质 |
| CN112422873B (zh) * | 2020-11-30 | 2022-09-16 | Oppo(重庆)智能科技有限公司 | 插帧方法、装置、电子设备及存储介质 |
| CN113240577B (zh) * | 2021-05-13 | 2024-03-15 | 北京达佳互联信息技术有限公司 | 一种图像生成方法、装置、电子设备及存储介质 |
| CN114257811A (zh) * | 2021-12-21 | 2022-03-29 | 杭州雾联科技有限公司 | 一种云手机延时的处理方法、装置及介质 |
| US12496526B1 (en) | 2022-10-06 | 2025-12-16 | A&C Technology, Inc. | Image drawing non-fungible token video game |
| CN115671713A (zh) * | 2022-11-14 | 2023-02-03 | 咪咕互动娱乐有限公司 | 云游戏画面补偿方法、系统、设备和存储介质 |
| CN116962714A (zh) * | 2023-01-12 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 视频解码方法、装置、电子设备及计算机可读存储介质 |
| CN117150059B (zh) * | 2023-10-27 | 2024-02-13 | 湖南视觉伟业智能科技有限公司 | 一种基于nvr设备的碎片化图像数据存储方法 |
| CN119342222B (zh) * | 2024-10-23 | 2025-10-24 | 上海砹芯科技有限公司 | 一种视频编码方法、装置及电子设备 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103780908A (zh) * | 2014-02-25 | 2014-05-07 | 成都佳发安泰科技股份有限公司 | 一种高效的h264解码方法 |
| CN104113778A (zh) * | 2014-08-01 | 2014-10-22 | 广州金山网络科技有限公司 | 一种视频流解码方法及装置 |
| US9967579B2 (en) * | 2012-11-28 | 2018-05-08 | Cisco Technology, Inc. | Fast switching hybrid video decoder |
| CN111901666A (zh) * | 2020-07-01 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、电子设备以及存储介质 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1374429A4 (en) | 2001-03-05 | 2009-11-11 | Intervideo Inc | SYSTEMS AND METHOD FOR CODING AND DECODING REDUNDANT MOTION VECTORS IN COMPRESSED VIDEO BITSTRAMS |
| US8107531B2 (en) | 2003-09-07 | 2012-01-31 | Microsoft Corporation | Signaling and repeat padding for skip frames |
| US7822123B2 (en) * | 2004-10-06 | 2010-10-26 | Microsoft Corporation | Efficient repeat padding for hybrid video sequence with arbitrary video resolution |
| US8879635B2 (en) * | 2005-09-27 | 2014-11-04 | Qualcomm Incorporated | Methods and device for data alignment with time domain boundary |
| US8218640B2 (en) * | 2006-10-31 | 2012-07-10 | Sony Computer Entertainment Inc. | Picture decoding using same-picture reference for pixel reconstruction |
| WO2009078686A2 (en) | 2007-12-18 | 2009-06-25 | Humax Co., Ltd. | Method and device for video coding and decoding |
| CN104113777B (zh) * | 2014-08-01 | 2018-06-05 | 广州猎豹网络科技有限公司 | 一种音频流解码方法及装置 |
| JP2016059015A (ja) | 2014-09-12 | 2016-04-21 | 株式会社東芝 | 画像出力装置 |
| CA3173525A1 (en) | 2017-04-21 | 2018-10-25 | Zenimax Media Inc. | Systems and methods for game-generated motion vectors |
| CN110366033B (zh) * | 2019-07-17 | 2021-10-22 | 腾讯科技(深圳)有限公司 | 一种视频播放方法、装置、设备及存储介质 |
-
2020
- 2020-07-01 CN CN202010626281.7A patent/CN111901666B/zh active Active
-
2021
- 2021-05-21 JP JP2022552630A patent/JP7471725B2/ja active Active
- 2021-05-21 WO PCT/CN2021/095054 patent/WO2022001469A1/zh not_active Ceased
- 2021-05-21 EP EP21834613.8A patent/EP4044608B1/en active Active
-
2022
- 2022-04-25 US US17/728,810 patent/US12217462B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9967579B2 (en) * | 2012-11-28 | 2018-05-08 | Cisco Technology, Inc. | Fast switching hybrid video decoder |
| CN103780908A (zh) * | 2014-02-25 | 2014-05-07 | 成都佳发安泰科技股份有限公司 | 一种高效的h264解码方法 |
| CN104113778A (zh) * | 2014-08-01 | 2014-10-22 | 广州金山网络科技有限公司 | 一种视频流解码方法及装置 |
| CN111901666A (zh) * | 2020-07-01 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、电子设备以及存储介质 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4044608A4 * |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115278308A (zh) * | 2022-07-28 | 2022-11-01 | 北京字跳网络技术有限公司 | 媒体流处理方法、装置、设备及存储介质 |
| CN115278308B (zh) * | 2022-07-28 | 2023-12-01 | 北京字跳网络技术有限公司 | 媒体流处理方法、装置、设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20220254069A1 (en) | 2022-08-11 |
| EP4044608B1 (en) | 2025-08-13 |
| JP7471725B2 (ja) | 2024-04-22 |
| CN111901666B (zh) | 2021-05-11 |
| CN111901666A (zh) | 2020-11-06 |
| JP2023517003A (ja) | 2023-04-21 |
| EP4044608A1 (en) | 2022-08-17 |
| EP4044608A4 (en) | 2023-01-04 |
| US12217462B2 (en) | 2025-02-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111901666B (zh) | 图像处理方法、装置、电子设备以及存储介质 | |
| JP7221957B2 (ja) | ビデオエンコーダレンダリング向けのゲームエンジンアプリケーション | |
| CN112073737B (zh) | 在直播视频流应用中重新编码预测的图像帧 | |
| CN110784740A (zh) | 视频处理方法、装置、服务器及可读存储介质 | |
| CN107634930B (zh) | 一种媒体数据的获取方法和装置 | |
| CN109963176B (zh) | 视频码流处理方法、装置、网络设备和可读存储介质 | |
| US11217279B2 (en) | Method and device for adjusting video playback speed | |
| CN112533059B (zh) | 图像渲染方法、装置、电子设备以及存储介质 | |
| EP3410302B1 (en) | Graphic instruction data processing method, apparatus | |
| CN111404882B (zh) | 媒体流处理方法及装置 | |
| CN111726624A (zh) | 用于视频递送的纹理的序列的生成 | |
| CN106791850A (zh) | 视频编码方法及装置 | |
| TWI605704B (zh) | 重組影像檔案的方法 | |
| KR20230144620A (ko) | 포인트 클라우드 인코딩 및 디코딩 방법, 포인트 클라우드 인코딩 및 디코딩 장치, 컴퓨터로 판독 가능한 매체, 그리고 전자 디바이스 | |
| CN103929682B (zh) | 一种在视频直播系统中设置关键帧的方法及装置 | |
| US12432362B2 (en) | Encoding and decoding video data | |
| TWI505717B (zh) | 彩色影像之接合純量嵌入圖形寫碼 | |
| CN115225902A (zh) | 基于分散编码的高分辨率vr云游戏解决方法及计算机设备 | |
| KR20160023777A (ko) | 그래픽 처리기를 이용한 비디오 디코딩에 대한 픽처 참조 제어 | |
| JP2017192080A (ja) | 画像圧縮装置、画像復号装置、画像圧縮方法及び画像圧縮プログラム | |
| JP7768593B2 (ja) | データ処理方法、装置、コンピュータ機器及びコンピュータプログラム | |
| CN113785495B (zh) | 用于视频编解码的方法和装置、存储介质 | |
| US20240244229A1 (en) | Systems and methods for predictive coding | |
| CN116648904B (zh) | 视频编码的方法、视频解码的方法、装置及存储介质 | |
| CN117440159A (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: 21834613 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2021834613 Country of ref document: EP Effective date: 20220512 |
|
| ENP | Entry into the national phase |
Ref document number: 2022552630 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWG | Wipo information: grant in national office |
Ref document number: 2021834613 Country of ref document: EP |