WO2020258058A1 - 视频处理方法、装置和设备 - Google Patents

视频处理方法、装置和设备 Download PDF

Info

Publication number
WO2020258058A1
WO2020258058A1 PCT/CN2019/092872 CN2019092872W WO2020258058A1 WO 2020258058 A1 WO2020258058 A1 WO 2020258058A1 CN 2019092872 W CN2019092872 W CN 2019092872W WO 2020258058 A1 WO2020258058 A1 WO 2020258058A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion information
image
sub
unit
video processing
Prior art date
Application number
PCT/CN2019/092872
Other languages
English (en)
French (fr)
Inventor
马思伟
孟学苇
郑萧桢
王苫社
Original Assignee
北京大学
深圳市大疆创新科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京大学, 深圳市大疆创新科技有限公司 filed Critical 北京大学
Priority to CN201980011919.1A priority Critical patent/CN111699689B/zh
Priority to PCT/CN2019/092872 priority patent/WO2020258058A1/zh
Publication of WO2020258058A1 publication Critical patent/WO2020258058A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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 block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Definitions

  • the present disclosure relates to the field of image processing, and more specifically, to a video processing method, device, and equipment.
  • Prediction is an important module of the mainstream video coding framework. Prediction can include intra-frame prediction and inter-frame prediction.
  • the inter prediction mode may include an advanced motion vector prediction (Advanced Motion Vector Prediction, AMVP) mode and a merge (Merge) mode.
  • AMVP Advanced Motion Vector Prediction
  • Merge merge
  • the embodiments of the present disclosure provide a video processing method, device, and equipment, which can effectively improve the coding and decoding efficiency in the Merge mode.
  • a video processing method including: acquiring motion information of sub-image blocks included in a first image block of a current frame; and selecting all the sub-image blocks based on the motion information of at least one of the sub-image blocks.
  • the spatial neighboring blocks of an image block are encoded or decoded.
  • the motion information corresponding to the first image unit located at the junction of the sub-image blocks from the motion information of the sub-image blocks, it is avoided that the reference frame in the specific list is traversed in the related art to pass Repetitive calculation of the motion information of the sub-image block results in a huge amount of calculation caused by the motion information corresponding to the first image unit, which can effectively reduce the amount of data processing, reduce the computational complexity, and improve the efficiency of video processing.
  • a video processing device including: an acquisition module configured to acquire motion information of sub-image blocks included in a first image block of a current frame; and a selection module configured to be based on at least one The motion information of the sub image block, select the motion information corresponding to the first image unit in the first image block, the first image unit includes at least part of the pixel area of at least two sub image blocks; the codec module is set to Based on the motion information corresponding to the first image unit, encoding or decoding the spatial neighboring blocks of the first image block.
  • a video processing device including a memory, configured to store program code; a processor, coupled to the memory, configured to call the program code to execute as in the embodiments of the present disclosure The video processing method described in the first aspect.
  • a computer-readable storage medium for storing program code, the program code being used to execute the video processing method described in the first aspect of the embodiments of the present disclosure.
  • FIG. 1 is an architecture diagram of a technical solution applying an embodiment of the present disclosure
  • Figure 2 is a schematic diagram of a video encoding process in an embodiment of the present disclosure
  • Figure 3 is a schematic diagram of a specific list
  • Fig. 4 is a schematic diagram of a first image unit in an embodiment of the present disclosure.
  • Figure 5 is a flowchart of a video processing method in an embodiment of the present disclosure
  • FIG. 6 is a schematic diagram of a division mode of a triangle prediction mode in an embodiment of the present disclosure.
  • Figure 7 is a sub-flow chart of a video processing method in an embodiment of the present invention.
  • Fig. 8 is a schematic diagram of selecting motion information according to feature information of a first image unit in an embodiment of the present disclosure.
  • Fig. 9 is a schematic diagram of selecting motion information according to feature information of a first image unit in another embodiment of the present disclosure.
  • Fig. 10 is a schematic diagram of selecting motion information according to feature information of a first image unit in still another embodiment of the present disclosure.
  • FIG. 11 is a block diagram of a video processing device according to an embodiment of the present disclosure.
  • Fig. 12 is a block diagram of a video processing device according to an embodiment of the present disclosure.
  • Fig. 1 is an architecture diagram of a technical solution applying an embodiment of the present disclosure.
  • the system 100 can receive data 102 to be processed, process the data 102 to be processed, and generate processed data 108.
  • the system 100 may receive the data to be encoded and encode the data to be encoded to generate encoded data, or the system 100 may receive the data to be decoded and decode the data to be decoded to generate decoded data.
  • the components in the system 100 may be implemented by one or more processors.
  • the processor may be a processor in a computing device or a processor in a mobile device (such as a drone).
  • the processor may be any type of processor, which is not limited in the embodiment of the present invention.
  • the processor may include an encoder, a decoder, or a codec.
  • the system 100 may also include one or more memories.
  • the memory can be used to store instructions and data, for example, computer-executable instructions that implement the technical solutions of the embodiments of the present invention, to-be-processed data 102, processed data 108, and the like.
  • the memory may be any type of memory, which is not limited in the embodiment of the present invention.
  • the data to be encoded may include text, images, graphic objects, animation sequences, audio, video, or any other data that needs to be encoded.
  • the data to be encoded may include sensory data from sensors, which may be vision sensors (for example, cameras, infrared sensors), microphones, near-field sensors (for example, ultrasonic sensors, radars), position sensors, and temperature sensors. Sensors, touch sensors, etc.
  • the data to be encoded may include information from the user, for example, biological information, which may include facial features, fingerprint scans, retinal scans, voice recordings, DNA sampling, and the like.
  • Fig. 2 is a frame diagram of an encoder according to an embodiment of the present disclosure. The flow of inter-frame coding and intra-frame coding will be respectively introduced below in conjunction with FIG. 2.
  • the process of inter-frame encoding and decoding can be as follows:
  • the current frame image is acquired.
  • a reference frame image is acquired.
  • a reference frame image is used to perform motion estimation to obtain a motion vector (Motion Vector, MV) of each image block of the current frame image.
  • the motion vector obtained by the motion estimation is used to perform motion compensation to obtain the estimated value of the current image block.
  • the estimated value of the current image block is subtracted from the current image block to obtain the residual.
  • the residual is transformed to obtain transform coefficients.
  • the transform coefficients are quantized to obtain quantized coefficients.
  • the quantized coefficients are subjected to entropy coding, and finally the bit stream obtained by entropy coding and the coding mode information after coding are stored or sent to the decoding end.
  • dequantize the quantized result In 210, inverse transformation is performed on the inverse quantization result.
  • the reconstructed pixels are obtained by using the inverse transform result and the motion compensation result.
  • the reconstructed pixels are filtered. In 213, the reconstructed pixels after filtering are output.
  • the intra-frame encoding and decoding process can be as follows:
  • the current frame image is acquired.
  • intra prediction selection is performed on the current frame image.
  • the current image block in the current frame performs intra-frame prediction.
  • the estimated value of the current image block is subtracted from the current image block to obtain the residual.
  • the residual of the image block is transformed to obtain transform coefficients.
  • the transform coefficients are quantized to obtain quantized coefficients.
  • the quantized coefficients are entropy-encoded, and finally the bit stream obtained by entropy encoding and the encoding mode information after encoding are stored or sent to the decoding end.
  • the quantization result is dequantized.
  • the inverse quantization result is inversely transformed, and in 211, the inverse transform result and the intra-frame prediction result are used to obtain reconstructed pixels.
  • the image in the encoding process, in order to remove redundancy, the image can be predicted. Different images in the video can use different prediction methods. According to the prediction method adopted by the image, the image can be divided into intra-frame prediction image and inter-frame prediction image.
  • the inter prediction mode may include AMVP mode and Merge mode.
  • motion vector prediction motion vector prediction, MVP
  • MVP motion vector prediction
  • the starting point of motion estimation can be determined according to the MVP
  • the motion search is performed near the starting point, and the optimum is obtained after the search is completed MV
  • the position of the reference block in the reference image is determined by the MV
  • the reference block is subtracted from the current block to obtain the residual block
  • the MVP is subtracted from the MV to obtain the Motion Vector Difference (MVD)
  • the MVD Motion Vector Difference
  • the MVP can be determined first, and the MVP can be directly determined as the MV.
  • an MVP candidate list (merge candidate list) can be constructed first.
  • the MVP candidate list at least one candidate MVP can be included.
  • Each candidate MVP can correspond to an index.
  • the encoder can write the MVP index into the code stream, and the decoder can find the index from the MVP candidate list according to the index Corresponding MVP to achieve the decoding of image blocks.
  • Step 1 Obtain the MVP candidate list
  • Step 2 Select an optimal MVP from the MVP candidate list, and at the same time obtain the index of the MVP in the MVP candidate list;
  • Step 3 Use the MVP as the MV of the current block
  • Step 4 Determine the position of the reference block (also called the prediction block) in the reference frame image according to the MV;
  • Step 5 Subtract the current block from the reference block to obtain residual data
  • Step 6 Pass the residual data and the index of the MVP to the decoder.
  • Merge mode can also have other implementations.
  • Skip mode is a special case of Merge mode. After obtaining the MV according to the Merge mode, if the encoding end determines that the current block is basically the same as the reference block, then there is no need to transmit residual data, only the index of the MV, and further a flag can be passed, which can indicate that the current block can be directly Obtained from the reference block.
  • inter-frame prediction mainly includes inter-frame prediction modes such as forward prediction, backward prediction, bidirectional prediction, and multi-frame prediction.
  • Forward prediction uses the previous reconstructed frame ("history frame") to predict the current frame
  • backward prediction uses the frame after the current frame ("future frame”) to predict the current frame
  • two-way prediction uses not only the " “History frame” also uses “future frame” to predict the current frame
  • multi-frame prediction uses multiple reference frames to predict the current frame.
  • the multiple reference frames can be, for example, multiple “future frames”, as shown in Figure 3. Show (the one marked "t" is the current frame).
  • the Merge mode can be applied to triangle prediction technology.
  • the image block to be coded can be divided into two triangular-shaped sub-image blocks, and the motion vector is determined for each sub-image block from the motion information candidate list, and based on the motion of each sub-image block The vector determines the prediction sub-block corresponding to each sub-image block, and constructs the prediction block of the current image block based on the prediction sub-block corresponding to each sub-image block, thereby realizing the coding of the current image block.
  • the motion vector included in the MVP candidate list may be a dual motion vector (a dual motion vector includes two single motion vectors), if the current image block is divided into multiple sub-image blocks, such as two triangular-shaped sub-image blocks are selected separately
  • the motion vectors of are all dual motion vectors, which may cause a problem of high computational complexity. For example, if the current image block is a square image block, after the square image block is divided into two triangular sub-image blocks, if the dual motion vector of sub-image block 1 includes motion vector 1 and motion vector 2, the dual-motion of sub-image block 2 The vector includes motion vector 3 and motion vector 4.
  • the motion vectors in the MVP candidate list are all single motion vectors. Therefore, for each sub-image block, a prediction block can be obtained separately, and the entire current The motion compensation process of the image block can only use two prediction blocks (the two prediction blocks can come from different square prediction blocks) to avoid the problem of high computational complexity mentioned above.
  • the motion vector can be stored corresponding to the preset image unit in the sub-image block (such as the first image unit mentioned in the embodiment of the present disclosure), where the preset Assuming that the image unit is a pixel area with a certain size in the image block, the motion vector corresponding to each preset image unit can be stored in the corresponding storage unit of the image block.
  • the motion information may be stored corresponding to each preset image unit according to the motion information of each sub-image block.
  • the motion information may include a motion vector, or include a motion vector and reference frame information (for example, a reference frame index) and so on.
  • MV1 can be stored corresponding to the preset image unit in PU1
  • MV2 can be stored corresponding to the preset image unit in PU2, as shown in Figure 4. Show. But at this time, at the junction of the sub-image blocks PU1 and PU2, there are some preset image units that belong to neither PU1 nor PU2. For these first image units, you can determine their corresponding needs by the following methods Stored MV:
  • MV1 and MV2 are from two identical specific lists, for example, both are from list 0 (list 0) or both are from list 1 (list 1).
  • list 0 Take list 0 as an example:
  • the reference frame index of MV2 is set to K to obtain MV2', and MV1 and MV2' is combined into a double MV;
  • a single motion information can come from a specific list (such as the first list mentioned in the embodiment of the present disclosure) or another specific list (such as the second list mentioned in the embodiment of the present disclosure).
  • One single-sport information included in one double-sport information may come from the first list, and another included single-sport information may come from the second list.
  • the first list in the embodiment of the present disclosure may be the aforementioned list0, and the second list may be the aforementioned list1.
  • list0 and list1 can be used for inter prediction of P frame or B frame.
  • an I frame is also called an intra-frame coded frame, which is an independent frame with all its own information and can be decoded independently without referring to other images, that is, all are intra-frame coded.
  • P-frame is also called inter-frame prediction coding frame. It needs to refer to the previous I-frame to be encoded. It represents the difference between the current frame and the previous frame (the previous frame may be an I-frame or a P-frame).
  • B frame is also called bidirectional predictive coding frame, that is, B frame records the difference between the current frame and the previous frame, that is to say, to decode B frame, not only the previous cached picture must be obtained, but also the decoded picture after passing through The superposition of the screen and the data of this frame obtains the final screen.
  • List0 and list1 are composed of several image frames. In some prior art, for P frames, only list0 is used for inter prediction, and for B frames, both list0 and list1 are used in inter prediction.
  • the current image frame (numbered 100) has three forward reference frames and three backward reference frames, that is, a total of six reference frames, which are in the order of natural images
  • the label (that is, the natural number) is 97, 98, 99, 100, 101, 102, 103.
  • the indexes of these reference frames in list 0 and list 1 are different.
  • the frame closest to the current reference frame is marked with index 0
  • the previous frame is marked with index 1
  • the forward reference is in order
  • the index of the natural image with order number 97, 98, 99, 100, 101, 102, 103 can be 2, 1, 0, 3, 4, 5; in list 1, the closest The next reference frame of the current reference frame is marked with index 0, and the next reference frame is marked with index 1.
  • the forward reference frame is arranged, and the sequence number is 97, 98, 99, 100,
  • the indexes of the natural images 101, 102, and 103 may be 5, 4, 3, 0, 1, 2 in order.
  • the motion information comes from the first list or the second list, which schematically indicates that the reference frame corresponding to the motion information comes from the first list or the second list.
  • the related technology needs to traverse the references in a specific list (such as list 1) when MV1 and MV2 come from different specific lists to determine MV1 Or is the reference frame corresponding to MV2 the same as the reference frame in a specific list (such as list 1), and after the reference frame corresponding to MV1 or MV2 is different from the reference frame in a specific list (such as list 1), then MV1 determines the motion information corresponding to the preset image unit.
  • a specific list such as list 1
  • the processing complexity of the coding and decoding of the image block is relatively high, which is not conducive to the software and hardware implementation of the codec.
  • the embodiments of the present disclosure provide a video processing method, which is used to reduce the amount of calculation for determining a motion vector for a first image unit during the encoding and decoding process, and to improve the encoding and decoding efficiency.
  • FIG. 5 is a schematic flowchart of a video processing method 500 in an embodiment of the present disclosure.
  • the video processing method 500 may be implemented by a processing device or equipment.
  • the processing device or device may be used at the encoding end or the decoding end, and specifically may be an encoder or a decoder.
  • the method 500 may include:
  • Step S501 acquiring motion information of sub-image blocks included in the first image block of the current frame
  • Step S502 based on the motion information of at least one of the sub-image blocks, select the motion information corresponding to the first image unit in the first image block, the first image unit including at least part of the pixel area of the at least two sub-image blocks ;
  • Step S503 Based on the motion information corresponding to the first image unit, encoding or decoding the spatial neighboring blocks of the first image block.
  • the method 500 directly selects the motion information corresponding to the first image unit from the motion information of multiple sub-image blocks, instead of determining the motion information corresponding to the first image unit by traversing each reference frame in a specific list, which can greatly reduce The computational complexity in the encoding and decoding process improves the encoding and decoding efficiency.
  • the image when the image is encoded, the image may be divided into multiple image blocks.
  • the image can be divided into an m ⁇ n image block array.
  • the image block may have a rectangular shape, a square shape, a circular shape, or any other shape.
  • the image block can have any size, such as p ⁇ q pixels.
  • You can encode images of different resolutions by first dividing the image into multiple small blocks. Each image block can have the same size and/or shape. Alternatively, two or more image blocks may have different sizes and/or shapes. After the image is divided into a plurality of image blocks, these image blocks in the image data can be respectively encoded.
  • an image block it can be used as a coding unit CU.
  • the size of the image block may be composed of the width and height of one coding unit CU, that is, the size of the image block may be W ⁇ H.
  • an image block can be divided into multiple sub-image blocks (for example, two), and motion information can be determined for each sub-image block respectively.
  • the process of determining the motion information of each sub-image block is as follows:
  • the encoding end can determine an MV (for example, one-way motion information) for each sub-image block based on the MV in the candidate list, and transmit the index value of the candidate list where the determined MV is located and the triangle division method to the decoding end respectively Or, it is also possible to generate a combined index from the index value of the MV in the candidate list, and transmit the combined index to the decoding end, and the combined index may be further assigned a triangular division mode.
  • an MV for example, one-way motion information
  • the MV of each sub-image block can be the same or different, and the MV of each sub-image block can be from the same specific list or from different specific lists.
  • the first image block may be composed of one sub-image block, or may be composed of multiple (for example, 2) sub-image blocks.
  • the first image block is composed of one sub-image block
  • the one sub-image block can be understood as the first image block itself.
  • the first image block when the first image block is a quadrilateral, it can be divided along the diagonal of the quadrilateral to obtain two triangular sub-image blocks.
  • two PUs can be divided from the upper left corner to the lower right corner of the quadrangle, namely PU1 and PU2, or as shown in the right graph shown in Figure 6 , PU1 and PU2 can also be divided from the lower left corner to the upper right corner of the quadrilateral.
  • the quadrilateral may be divided into more than two triangles, or at least two quadrilaterals, etc.
  • the first image block when the first image block is rectangular, the first image block is divided into two rectangles or squares from the center of the image block in a manner parallel to one side of the first image block, or from the first image
  • the center of the block divides the CU into two trapezoids in a non-parallel manner with one side of the first image block, which is not specifically limited in the present disclosure.
  • the first image block can be divided from upper left to lower right along the diagonal first, and then the first image block can be divided from the center of the first image block in a manner parallel to one side of the first image block. Get four sub-image blocks.
  • the first image block may be a quadrilateral, but the embodiment of the present disclosure is not limited to this, and the first image block in the embodiment of the present disclosure may be any shape other than a quadrilateral.
  • the division of each image block in the current frame may be based on the same division method, for example, a triangular division manner; or it may be based on a different division manner, for example, One image block is divided by a triangular division method, and another image block is divided by a rectangular division method (that is, divided into multiple rectangles). For example, one image block is divided by a triangular division method.
  • the image blocks are not divided, and this disclosure does not specifically limit this.
  • the number of sub-image blocks included in each image block may be the same or different, which is not specifically limited in the present disclosure.
  • the motion information of each sub-image block may include dual motion information or single motion information.
  • the dual motion information in the embodiment of the present disclosure may refer to motion information including two single motion information.
  • Single motion information is forward motion information or backward motion information, where forward motion information means that the corresponding reference frame is the forward frame of the current frame, and backward motion information means that the corresponding reference frame is the backward frame of the current frame frame.
  • the two single motion information included in the dual motion information may both be forward motion information, or both may be backward motion information, or may be one forward motion information and one backward motion information, which is not specifically limited in the present disclosure.
  • the motion information of each image block in the embodiments of the present disclosure may include single motion information, so as to solve the problem caused by the need to use four prediction blocks in the encoding and decoding process. Problems with low bandwidth utilization and high computational complexity.
  • the first image unit may include at least part of the pixel area of at least two sub-image blocks, that is, the pixel area of the first image unit may belong to two or more sub-image blocks, or it may be composed of two or more sub-image blocks.
  • the above sub-image blocks are composed of the overall pixel area.
  • selecting the motion information corresponding to the first image unit can be directly determining one motion information as the motion information of the first image unit in the at least one motion information, regardless of whether the motion information is single motion Information, or dual motion information; it may also be to determine one motion information in at least one motion information, for example, when the motion information is dual motion information, adjust the dual motion information to a single motion information to serve as the first image unit Corresponding motion information; it may also be selecting at least two motion information from the at least one motion information, and determining the motion information corresponding to the first image unit based on the at least two motion information, where how to determine based on the at least two motion information
  • the manner of the motion information corresponding to the first image unit is not specifically limited, but the reference frame in the specific list may not be traversed to re-determine the motion information of the sub-image block. That is, the selection in the embodiment of the present disclosure may include, but is not limited to, direct selection, or default selection, and may also include corresponding judgment or
  • the at least two sub-image blocks involved in the first image unit can be determined. Select the motion information of the first image unit in the motion information, or select the motion information corresponding to the first image unit from the motion information of all sub-image blocks.
  • one or more motion information can be selected (the motion information can be single motion information or dual motion information ).
  • the motion information can be single motion information or dual motion information .
  • more than one motion information may be processed to determine at least one motion information finally corresponding to the first image unit in the first image block.
  • the motion information when selecting the corresponding motion information for the first image unit in the motion information of the at least two sub-image blocks, the motion information may be selected according to which specific list the motion information comes from, or it may be ignored which specific motion information comes from. List, and when the motion information is selected according to which specific list the motion information comes from, the reference frames in the specific list may not be traversed to reduce the amount of calculation.
  • the first image block may include one or more first image units.
  • the motion information corresponding to each first image unit may be the same or different, or part of the first image unit may be included.
  • the motion information corresponding to the image units is the same or different. Wherein, the same or different includes are all single-sport information, all are dual-sport information, or some are single-sport information and some are dual-sport information.
  • the size and/or shape of the pixel regions corresponding to each image unit may be the same or different, and the present disclosure does not specifically limit this.
  • Fig. 7 is a flowchart of selecting the motion information corresponding to the first image unit by considering which specific list the motion information comes from in an embodiment of the present disclosure.
  • step S5021 it is determined whether the reference frame corresponding to the motion information of each sub-image block is from the same specific list, if yes, then step S5022 is entered, otherwise step S5023 is entered.
  • step S5022 one piece of motion information in the motion information of the sub image block is determined as the motion information corresponding to the first image unit.
  • step S5023 the motion information is selected from the motion information of the sub-image block to obtain at least one dual motion information, and the motion information corresponding to the first image unit is determined according to the at least one dual motion information.
  • step S5022 it is possible to determine which motion information is the motion information corresponding to the first image unit according to which specific list the motion information of each sub-image block comes from.
  • the motion information of the sub-image block includes the first motion information and the second motion information
  • the first motion information and the second motion information respectively correspond to different sub-image blocks
  • the specific list includes the first list and the second list
  • the second motion information is determined as the motion information corresponding to the first image unit.
  • the motion information corresponding to the first image unit can be selected according to the following logic:
  • the first motion information is determined as the motion information corresponding to the first image unit.
  • the first motion information and the second motion information may be the motion information of the same sub-image block, or That is, the motion information of the sub-image block is dual motion information, the first motion information and the second motion information are single motion information respectively; the second motion information and the second motion information can also be the motion information of different sub-image blocks, the first The motion information may be single motion information or dual motion information, and the second motion information may be single motion information or dual motion information.
  • the above solution is only an example.
  • the motion information corresponding to the first image unit can be determined in the same manner as above.
  • step S5022 it is also possible not to determine that one of the motion information of the sub-image block is the motion information corresponding to the first image unit according to the specific list.
  • one piece of motion information from the motion information of the sub-image block may be selected as the motion information corresponding to the first image unit.
  • one piece of movement information may be selected as the movement information corresponding to the first image unit by default.
  • the motion information of the sub-image block includes the first motion information and the second motion information corresponding to different sub-image blocks
  • the first motion information or the second motion information can be selected as the motion information corresponding to the first image unit by default.
  • Triangular prediction is an example.
  • the MV1 corresponding to PU1 in a CU and the corresponding MV2 corresponding to PU2 can be defaulted to the motion information corresponding to the first image unit.
  • the determination of PU1 or PU2 Related to the way the triangle is divided.
  • the feature information of the first image unit is, for example, position information and/or size information of the first image unit.
  • the position information may be coordinate information of a preset position of the first image unit, or position information between the first image unit and some sub-image blocks in the first image block.
  • the size information may be the width and height information of the first image unit.
  • one or more motion information can be selected from the motion information of the sub-image block to obtain at least one dual motion information.
  • combining the motion information of different sub-image blocks to obtain at least one piece of dual motion information can be based on the following logic:
  • the motion information of at least two sub-image blocks can be combined in pairs to obtain at least one piece of dual motion information.
  • each sub-image block is dual motion information
  • directly select one or more dual motion information or you can select one single motion information from the dual motion information of at least two sub-image blocks and combine them into at least one Dual motion information; or, merge at least part of the dual motion information into one single motion information, and then combine the combined single motion information two by two to obtain at least one dual motion information; or, merge part of the dual motion information into A single motion information is combined with the combined single motion information and a single motion information selected from the dual motion information to obtain at least one dual motion information.
  • each sub-image block includes both single motion information and dual motion information
  • a single motion information combination is selected from the multiple dual motion information.
  • one single motion information can also be selected from each dual motion information and combined with one or more single motion information to form at least one dual motion information.
  • the two-by-two combination described above means the combination between the motion information of two different sub-image blocks, regardless of whether the combined two motion information is single motion information, dual motion information, or a combination of two motion information At least one dual motion information can be obtained.
  • step S5023 the logic for determining the motion information of the first image unit according to the at least one dual motion information may be as follows:
  • One piece of double movement information in the at least one piece of double movement information is determined as the movement information corresponding to the first image unit.
  • one of the dual motion information can be directly determined as the motion information corresponding to the first image unit, including defaulting a certain type of dual motion information as the motion information corresponding to the first image unit; it can also be determined by other preset methods. Select one of the dual motion information as the motion information corresponding to the first image unit.
  • the preset method is not limited, as long as it can help reduce the computational complexity.
  • one motion information can be selected from the motion information of the sub image block as the motion information corresponding to the first image unit.
  • Fig. 8 is a schematic diagram of selecting motion information according to feature information of a first image unit in an embodiment of the present disclosure.
  • the motion information of the sub-image block where the preset position of the first image unit is located may be determined as the motion information corresponding to the first image unit.
  • the preset position is, for example, the upper left corner position of the first image unit.
  • the preset position of the first image unit is located in multiple sub image blocks, then one of the motion information of the multiple sub image blocks is determined as the motion information corresponding to the first image unit, and then select
  • the mode of the movement information can be any of the above.
  • the first image block is square and includes two PU1 and PU2 having a triangular shape
  • the motion information of PU1 includes MV1
  • the motion information of PU2 includes MV2.
  • the first image block there may be four first image units corresponding to each of the four first image units including both the pixel area belonging to PU1 and the pixel area belonging to PU2.
  • the four first image units may specifically be: the first image unit in the first row, the second image unit in the first row, and the third image unit in the second row. , The fourth image unit in the second row.
  • the position of the upper left corner of the first image unit in the first row is located in both PU1 and PU2, that is, on the dividing line between PU1 and PU2 (this point The boundary is only for illustrative purposes, and there is no limit to whether it physically exists or not), you can use PU1's MV1 or PU2's MV2 as its corresponding motion information; and the upper left corner of the second image unit in the first row is only located on PU2 MV2 of PU2 can be used as its corresponding motion information; in the same way, the position of the upper left corner of the third image unit in the second row is also located on the boundary between PU1 and PU2, then MV1 of PU1 or MV2 of PU2 can be As its corresponding motion information; and the upper left corner of the fourth image unit in the second row is only located in PU2, then the MV2 of PU2 can be used as its
  • which sub-image block the preset position of the first image unit is located in may be determined according to the position information of the preset position of the first image unit, such as coordinate information of the preset position.
  • the coordinate information can be expressed in pixel coordinates.
  • the preset position of the first image unit may also include other positions, such as the center position, the upper right corner position, and the lower right corner position.
  • Fig. 9 is a schematic diagram of selecting motion information according to feature information of a first image unit in another embodiment of the present disclosure.
  • the motion information of the sub-image block located in the preset orientation of the first image unit may be determined as the motion information corresponding to the first image unit.
  • the preset position is, for example, the lower left position.
  • the first image block is a square and includes two PU1 and PU2 with triangular pixel areas.
  • the motion information of PU1 is MV1
  • the motion information of PU2 is MV2.
  • On the dividing line of the sub-image blocks in the first image block there are four first image blocks, and the four first image blocks all include pixels located in the PU1 area and pixels located in the PU2 area, and do not completely belong to PU1 or PU2.
  • the four first image units may specifically be: the first image unit in the first row, the second image unit in the first row, and the third image unit in the second row. , The fourth image unit in the second row.
  • the lower left position of each first image unit is PU1
  • the MV1 of PU1 can be used as its corresponding motion information.
  • sub-image block of the preset orientation of the first image unit may include other positions, such as the upper right position, the upper left position, and the lower right position, in addition to the lower left position described above.
  • the preset orientation of the first image unit may be determined according to the division method of each sub-image block. For example, when the first image block is divided in a horizontal or vertical manner, the preset orientation may also include above, below, Left, right, etc.
  • the sub image block of the preset orientation of the first image unit may also be determined according to the position information and size information of the first image unit, which is not particularly limited in the present disclosure.
  • Fig. 10 is a schematic diagram of selecting motion information according to feature information of a first image unit in still another embodiment of the present disclosure.
  • the motion information of the sub-image block having the largest pixel area in the first image unit may be determined as the motion information corresponding to the first image unit.
  • the motion information corresponding to the first image unit may be determined in the following manner:
  • abs() represents the absolute value
  • max() represents the maximum value
  • the motion information MV1 of the upper right sub-image block is represented by the number 0, and the motion information MV2 of the lower left sub-image block is represented by the number 1.
  • numH ⁇ numW determine the motion information corresponding to the first image unit as max(((x/T)%2),1)-((x/T)%2); if numH>numW, set the first image
  • the motion information corresponding to the unit is determined as (y/T)%2.
  • the "/" sign is division and rounding
  • "%" is the remainder operation, both are integer operations.
  • idxX and idxY are not equal, it means that the size of the pixel area occupied by each sub-image block in the first image unit is not the same; if idxX and idxY are equal, it means the pixel area occupied by each sub-image block in the first image unit The area is the same size.
  • the motion information corresponding to the first image unit at position (x,y) is determined as the motion information MV2 of the lower right sub-image block, otherwise The motion information corresponding to the first image unit at the position (x, y) is determined as the motion information MV1 of the upper left corner sub-image block.
  • MV1 is represented by 0 and MV2 is represented by 1. If numH ⁇ numW, the motion information corresponding to the first image unit is determined as (x/T)%2. Otherwise, the motion information corresponding to the first image unit will be determined as (y/T)%2.
  • the motion information of one of the motion information of the sub-image blocks is the motion information corresponding to the first image unit.
  • the motion information corresponding to the first image unit may be stored in the storage unit of the first image block.
  • the first image block may correspond to at least one storage unit, and each storage unit may correspond to a first image unit, for storing related information of the first image unit, such as motion information.
  • the motion information corresponding to the first image unit can be used to encode or decode the spatial neighboring blocks of the first image block, that is, the motion information corresponding to the first image unit can be used to determine the motion information of the first image block, In this way, the motion information of the first image block can be used as the candidate motion information of its spatial neighboring block when constructing the MVP candidate list in the coding and decoding process.
  • the image block to be encoded is composed of a sub-image block
  • the image block pointed to by the motion information of the sub-image may be used as the image block to be encoded.
  • the prediction block obtains residual data based on the prediction block and the image block to be coded, and writes the residual data into the code stream.
  • the residual data can be obtained from the decoded bitstream, and the image block pointed to by the motion information of the sub-image is used as the prediction block of the image block to be decoded, and then the residual data can be based on the residual data. And the prediction block, the image block to be decoded is decoded.
  • each sub-image block corresponds to a prediction sub-block
  • multiple sub-image blocks correspond to multiple predictions.
  • Sub-blocks can form a prediction block.
  • the position of each prediction sub-block in the prediction block may be equivalent to the position of the corresponding sub-image block in the image block to be coded
  • the residual data is obtained based on the prediction block and the image block to be coded
  • the residual data is written Into the code stream.
  • the residual data can be obtained from the decoded bitstream, and multiple predictive sub-blocks that point the motion information of the multiple sub-image blocks to form a prediction block can be based on the residual data and This prediction block decodes the image block to be decoded.
  • MV1 and MV2 are from two different specific lists, they are directly combined into a dual motion information as the motion information corresponding to the first image unit; if they are from the same specific list, MV1 is directly used as the first image unit corresponding (You can also directly use MV2 as the motion information corresponding to the first image unit).
  • MV1 and MV2 are from two different specific lists, they are directly combined into a dual motion information as the motion information corresponding to the first image unit; if they are from the same specific list, if both are from list0, then MV1 is directly used as If the motion information corresponding to the first image unit comes from list1, directly use MV2 as the motion information corresponding to the first image unit (or, if both come from list0, directly use MV2 as the motion information corresponding to the first image unit, if All from list1, directly use MV1 as the motion information corresponding to the first image unit).
  • MV1 is directly used as the motion information corresponding to the first image unit
  • MV2 may also be directly used as the motion information corresponding to the first image unit
  • solution (1) can achieve better encoding and decoding performance while reducing a certain computational complexity; solution (2) does not consider which specific list the motion information of each sub-image block comes from, but It is directly defaulted that the [AQ1] motion information of a sub-image block is the motion information corresponding to the first image unit.
  • the way to confirm the motion information corresponding to the first image unit is the simplest and most direct, that is, the lowest complexity, which can improve the efficiency of information processing.
  • each of the solutions can be used separately as required. It should also be understood that the above-mentioned solutions are only exemplary descriptions, and in actual applications, situations other than the above-mentioned solutions may be included. At the same time, each solution can be used separately or combined according to needs, and the solutions resulting from the modification and coupling of the above solutions should be included in the present disclosure.
  • the motion information of the first image unit located at the junction of the sub-image blocks from the motion information of the sub-image blocks, it is avoided that the related technology is determined by traversing each reference frame in a specific list.
  • the motion information corresponding to the first image unit can greatly reduce the computational complexity in the encoding and decoding process and improve the encoding and decoding efficiency.
  • the present disclosure also provides a video processing device, which can be used to implement the video processing method described above.
  • Fig. 11 is a block diagram of a video processing device provided in an embodiment of the present disclosure.
  • the video processing apparatus 1100 may include:
  • the obtaining module 1101 is configured to obtain the motion information of the sub-image blocks included in the first image block of the current frame
  • the selection module 1102 is configured to select the motion information corresponding to the first image unit in the first image block based on the motion information of at least one of the sub image blocks, and the first image unit includes at least one of the at least two sub image blocks. Part of the pixel area;
  • the encoding and decoding module 1103 is configured to encode or decode the spatial neighboring blocks of the first image block based on the motion information corresponding to the first image unit.
  • the selection module 1102 includes:
  • the first unit 11021 is configured to select the motion information from the motion information of the sub-image block to obtain at least one dual motion information if the reference frames corresponding to the motion information of the sub-image block are from different specific lists, and Selecting the motion information corresponding to the first image unit from the at least one dual motion information;
  • the second unit 11022 is configured to determine one of the motion information of the sub-image block as the first image unit if the reference frames corresponding to the motion information of the sub-image block are all from the same specific list Corresponding sports information;
  • the specific list includes a first list and a second list.
  • the second unit 11022 is configured to:
  • One of the motion information of the sub-image blocks is selected according to the specific list and determined as the motion information corresponding to the first image unit.
  • the motion information of the sub-image block includes first motion information and second motion information
  • the second unit 11022 is configured to:
  • the second motion information is determined as the motion information corresponding to the first image unit.
  • the motion information of the sub-image block includes first motion information and second motion information, and the first motion information and the second motion information correspond to different sub-images.
  • Block, the second unit 11022 is set to:
  • the first motion information is determined as the motion information corresponding to the first image unit.
  • the first motion information and the second motion information correspond to different sub-image blocks.
  • the first image block includes two sub-image blocks, and the first unit 11021 is configured to:
  • the first unit 11021 is configured to:
  • the selection module 1102 is configured to:
  • the selection module 1102 is configured to:
  • one piece of motion information in the motion information of the sub-image block is selected as the motion information corresponding to the first image unit.
  • the motion information of the sub-image block includes first motion information and second motion information corresponding to different sub-image blocks
  • the selection module 1102 is set to:
  • the first motion information or the second motion information is selected as the motion information corresponding to the first image unit.
  • the selection module 1102 is configured to:
  • selecting one piece of motion information from the motion information of the sub-image block is determined as the motion information corresponding to the first image unit.
  • the characteristic information includes position information and/or size information.
  • the selection module 1102 is configured to:
  • the selection module 1102 is further configured to:
  • one of the motion information of the multiple sub image blocks is determined as the motion information corresponding to the first image unit.
  • the preset position is the upper left corner position of the first image unit.
  • the selection module 1102 is configured to:
  • the preset orientation is the lower left position of the first image unit.
  • the selection module 1102 is configured to:
  • the motion information of the sub-image block having the largest pixel area in the first image unit is determined as the motion information corresponding to the first image unit.
  • the selection module 1102 is further configured to:
  • the motion information of a certain sub-image block is determined as the motion information corresponding to the first image unit by default.
  • the motion information of each sub-image block is single motion information.
  • the number of the sub image blocks is two.
  • FIG. 12 shows a schematic block diagram of a video processing device 1200 according to an embodiment of the present disclosure.
  • the video processing device 1200 may include a processor 1210, and may further include a memory 1220.
  • the video processing device 1200 may also include components commonly included in other video processing devices, such as an input and output device, a communication interface, etc., which are not limited in the embodiment of the present disclosure.
  • the memory 1220 is used to store computer executable instructions.
  • the memory 1220 may be various types of memory, for example, it may include a high-speed random access memory (Random Access Memory, RAM), and may also include a non-volatile memory (non-volatile memory), such as at least one disk memory.
  • RAM Random Access Memory
  • non-volatile memory such as at least one disk memory.
  • the implementation of the present disclosure The example does not limit this.
  • the processor 1210 is configured to access the memory 1220 and execute the computer-executable instructions to perform operations in the video processing method of the above-mentioned embodiment of the present disclosure.
  • the processor 1210 may include a microprocessor, a field-programmable gate array (Field-Programmable Gate Array, FPGA), a central processing unit (CPU), a graphics processing unit (Graphics Processing Unit, GPU), etc., as implemented in the present disclosure The example does not limit this.
  • the video processing device of the embodiment of the present disclosure may correspond to the execution subject of the video processing method of the embodiment of the present disclosure, and the above-mentioned and other operations and/or functions of each module in the video processing device are to implement the corresponding procedures of the foregoing methods. For brevity, I won't repeat them here.
  • the embodiments of the present disclosure also provide an electronic device, which may include the devices for video processing in the various embodiments of the present disclosure described above.
  • the embodiment of the present disclosure also provides a computer storage medium, and the computer storage medium stores program code, and the program code can be used to instruct the execution of the video processing method of the foregoing embodiment of the present disclosure.
  • the term "and/or” is merely an association relationship describing an associated object, indicating that there may be three relationships.
  • a and/or B can mean: A alone exists, A and B exist at the same time, and B exists alone.
  • the character "/" in this text generally indicates that the associated objects before and after are in an "or" relationship.
  • the disclosed system, device, and method may be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components can be combined or It can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may also be electrical, mechanical or other forms of connection.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments of the present disclosure.
  • the functional units in the various embodiments of the present disclosure may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of the present disclosure is essentially or a part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium It includes several instructions to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present disclosure.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or optical disk and other media that can store program code .

Landscapes

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

Abstract

一种视频处理方法、装置和设备,提供了一种有效的在Merge模式下的视频处理方法。该方法包括:获取当前帧的第一图像块包括的子图像块的运动信息;基于至少一个所述子图像块的运动信息,选择所述第一图像块中的第一图像单元对应的运动信息,所述第一图像单元包括至少两个子图像块的至少部分像素区域;基于所述第一图像单元对应的运动信息,对所述第一图像块的空域相邻块进行编码或解码。本公开实施例可以提高视频处理效率。

Description

视频处理方法、装置和设备 技术领域
本公开涉及图像处理领域,并且更为具体地,涉及一种视频处理方法、装置和设备。
背景技术
预测是主流视频编码框架的重要模块,预测可以包括帧内预测和帧间预测。帧间预测模式可以包括高级运动矢量预测(Advanced Motion Vector Prediction,AMVP)模式和合并(Merge)模式。
如何在Merge模式下提高编解码效率是一项亟待解决的问题。
发明内容
本公开实施例提供一种视频处理方法、装置和设备,可以在Merge模式下有效提高编解码效率。
根据本公开实施例的第一方面,提供一种视频处理方法,包括:获取当前帧的第一图像块包括的子图像块的运动信息;基于至少一个所述子图像块的运动信息,选择所述第一图像块中的第一图像单元对应的运动信息,所述第一图像单元包括至少两个子图像块的至少部分像素区域;基于所述第一图像单元对应的运动信息,对所述第一图像块的空域相邻块进行编码或解码。
在本公开实施例中,通过在子图像块的运动信息中选取位于子图像块交界处的第一图像单元对应的运动信息,避免了相关技术中对特定列表中的参考帧进行遍历,以通过对子图像块的运动信息的重复计算得到第一图像单元对应的运动信息而带来的庞大计算量,可以有效降低数据处理量,降低运算复杂度,提高视频处理效率。
根据本公开实施例的第二方面,提供一种视频处理装置,包括:获取模块,设置为获取当前帧的第一图像块包括的子图像块的运动信息;选择模块,设置为基于至少一个所述子图像块的运动信息,选择所述第一图像块中的第一图像单元对应的运动信息,所述第一图像单元包括至少两个子图像块的至少部分像素区域;编解码模块,设置为基于所述第一图像单元对应的运动信息,对所述第一图像块的空域相邻块进行编码或解码。
根据本公开实施例的第三方面,提供一种视频处理设备,包括存储器,用于存储程序代码;处理器,耦接于所述存储器,用于调用所述程序代码执行如本公开实施例的第一方面所述的视频处理方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,用于存储程序代码,所述程序代码用于执行如本公开实施例的第一方面所述的视频处理方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是应用本公开实施例的技术方案的架构图;
图2是本公开实施例中的视频编码过程的示意性图;
图3是特定列表的示意图;
图4是本公开实施例中第一图像单元的示意图;
图5是本公开实施例中视频处理方法的流程图;
图6是本公开实施例中三角形预测方式的划分方式的示意性图;
图7是本发明实施例中视频处理方法的子流程图;
图8是本公开一个实施例中根据第一图像单元的特征信息选择运动信息的示意图。
图9是本公开又一个实施例中根据第一图像单元的特征信息选择运动信息的示意图。
图10是本公开再一个实施例中根据第一图像单元的特征信息选择运动信息的示意图。
图11是根据本公开实施例的视频处理装置的方框图。
图12是根据本公开实施例的视频处理设备的方框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。 基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另有说明,本公开实施例所使用的所有技术和科学术语与本公开的技术领域的技术人员通常理解的含义相同。本公开中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本公开的范围。
图1是应用本公开实施例的技术方案的架构图。
如图1所示,系统100可以接收待处理数据102,对待处理数据102进行处理,产生处理后的数据108。例如,系统100可以接收待编码数据,对待编码数据进行编码以产生编码后的数据,或者,系统100可以接收待解码数据,对待解码数据进行解码以产生解码后的数据。在一些实施例中,系统100中的部件可以由一个或多个处理器实现,该处理器可以是计算设备中的处理器,也可以是移动设备(例如无人机)中的处理器。该处理器可以为任意种类的处理器,本发明实施例对此不做限定。在一些可能的设计中,该处理器可以包括编码器、解码器或编解码器等。系统100中还可以包括一个或多个存储器。该存储器可用于存储指令和数据,例如,实现本发明实施例的技术方案的计算机可执行指令、待处理数据102、处理后的数据108等。该存储器可以为任意种类的存储器,本发明实施例对此也不做限定。
待编码数据可以包括文本、图像、图形对象、动画序列、音频、视频、或者任何需要编码的其他数据。在一些情况下,待编码数据可以包括来自传感器的传感数据,该传感器可以为视觉传感器(例如,相机、红外传感器),麦克风、近场传感器(例如,超声波传感器、雷达)、位置传感器、温度传感器、触摸传感器等。在一些情况下,待编码数据可以包括来自用户的信息,例如,生物信息,该生物信息可以包括面部特征、指纹扫描、视网膜扫描、嗓音记录、DNA采样等。
图2是根据本公开实施例的一种编码器的框架图。以下将结合图2分别介绍帧间编码和帧内编码的流程。
如图2所示,帧间编码和解码的流程可以如下所示:
在201中,获取当前帧图像。在202中,获取参考帧图像。在203a中,利用参考帧图像,进行运动估计,以得到当前帧图像的各个图像块的运动矢量(Motion Vector,MV)。在204a中,利用运动估计得到的运动矢量,进行运动补偿,以得到当前图像块的估计值。在205中,将当前图像块的估计 值与当前图像块相减,得到残差。在206中,对残差进行变换,以得到变换系数。在207中,变换系数经量化可得到量化后的系数。在208中,将量化后的系数进行熵编码,最后将熵编码得到的比特流及进行编码后的编码模式信息进行存储或发送到解码端。在209中,对量化的结果进行反量化。在210中,对反量化结果进行反变换。在211中,利用反变换结果以及运动补偿结果,得到重建像素。在212中,对重建像素进行滤波。在213中,输出滤波后的重建像素。
如图2所示,帧内编码和解码的流程可以如下所示:
在202中,获取当前帧图像。在203b中,对当前帧图像进行帧内预测选择。在204b中,当前帧中的当前图像块进行帧内预测。在205中,将当前图像块的估计值与当前图像块相减,得到残差。在206中,对图像块的残差进行变换,以得到变换系数。在207中,变换系数经量化可得到量化后的系数。在208中,将量化后的系数进行熵编码,最后将熵编码得到的比特流及进行编码后的编码模式信进行存储或发送到解码端。在209中,对量化结果进行反量化。在210中,对反量化结果进行反变换,在211中,利用反变换结果以及帧内预测结果,得到重建像素。
如图2所示,在编码过程中,为了去除冗余,可以对图像进行预测。视频中不同的图像可采用不同的预测方式。根据图像所采用的预测方式,可以将图像区分为帧内预测图像和帧间预测图像。帧间预测模式可以包括AMVP模式和Merge模式。
对于AMVP模式而言,可以先确定运动矢量预测(motion vector prediction,MVP),在得到MVP之后,可以根据MVP确定运动估计的起始点,在起始点附近,进行运动搜索,搜索完毕之后得到最优的MV,由MV确定参考块在参考图像中的位置,参考块减去当前块得到残差块,MV减去MVP得到运动矢量差值(Motion Vector Difference,MVD),并将该MVD通过码流传输给解码端。
对于Merge模式而言,可以先确定MVP,并直接将MVP确定为MV,其中,为了得到MVP,可以先构建一个MVP候选列表(merge candidate list),在MVP候选列表中,可以包括至少一个候选MVP,每个候选MVP可以对应有一个索引,编码端在从MVP候选列表中选择MVP之后,可以将该MVP索引写入到码流中,则解码端可以按照该索引从MVP候选列表中找到该索 引对应的MVP,以实现对图像块的解码。
为了更加清楚地理解Merge模式,以下将介绍采用Merge模式进行编码的操作流程。
步骤一、获取MVP候选列表;
步骤二、从MVP候选列表中选出最优的一个MVP,同时得到该MVP在MVP候选列表中的索引;
步骤三、把该MVP作为当前块的MV;
步骤四、根据MV确定参考块(也可以称为预测块)在参考帧图像中的位置;
步骤五、参考块减去当前块得到残差数据;
步骤六、把残差数据和MVP的索引传给解码端。
应理解,以上流程只是Merge模式的一种具体实现方式。Merge模式还可以具有其他的实现方式。
例如,Skip模式是Merge模式的一种特例。按照Merge模式得到MV之后,如果编码端确定当前块和参考块基本一样,那么不需要传输残差数据,只需要传递MV的索引,以及进一步地可以传递一个标志,该标志可以表明当前块可以直接从参考块得到。
也就是说,Merge模式特点为:MV=MVP(MVD=0);而Skip模式还多一个特点,即:重构值rec=预测值pred(残差值resi=0)。
其中,帧间预测主要包括前向预测、后向预测、双向预测、多帧预测等帧间预测模式。前向预测是利用前一重构帧(“历史帧”)对当前帧进行预测;后向预测是利用当前帧之后的帧(“将来帧”)对当前帧进行预测;双向预测是不仅利用“历史帧”,也利用“将来帧”对当前帧进行预测;多帧预测是利用多个参考帧对当前帧进行预测,该多个参考帧可以为诸如多个“将来帧”,如图3所示(标号为“t”的为当前帧)。
Merge模式可以应用于三角形预测技术中。在三角形预测技术中,可以将待编码的图像块划分为两个形状为三角形的子图像块,从运动信息候选列表中,分别为每个子图像块确定运动矢量,并基于每个子图像块的运动矢量,确定每个子图像块对应的预测子块,基于每个子图像块对应的预测子块,构造当前图像块的预测块,从而实现对当前图像块的编码。
MVP候选列表包括的运动矢量有可能是双运动矢量(一个双运动矢量 包括两个单运动矢量),如果当前图像块划分为多个子图像块,如为两个形状为三角形的子图像块分别选择的运动矢量均为双运动矢量,可能带来计算复杂度高的问题。例如,以当前图像块为方形图像块,该方形图像块划分为两个三角形的子图像块后,若子图像块1的双运动矢量包括运动矢量1和运动矢量2,子图像块2的双运动矢量包括运动矢量3和运动矢量4,则对于子图像块1的运动补偿过程,需要获取运动矢量1指向的方形预测块和运动矢量2指向的方形预测块,来得到子图像块1最终的预测块;对于子图像块2的运动补偿过程,需要获取运动矢量3指向的方形预测块和运动矢量4指向的方形预测块,来得到子图像块2最终的预测块。然后把子图像1和子图像2最终的预测块进行拼接,以得到子图像块1和子图像块2组成的方形图像块的预测块。因此,整个当前图像块的运动补偿过程,需要用到四个预测块,则带来了带宽利用率低、计算复杂度较高的问题。
基于此,在将当前图像块划分为多个子图像块时,可以期望MVP候选列表中的运动矢量均是单运动矢量,由此针对各个子图像块,可以分别得到一个预测块,则在整个当前图像块的运动补偿过程,可以只用到两个预测块(该两个预测块可以来自于不同的方形预测块),以避免以上提到的计算复杂度较高的问题。
在Merge模式中,确定子图像块的运动矢量后,可以将运动矢量对应于子图像块中的预设图像单元(如本公开实施例中提到的第一图像单元)进行存储,其中,预设图像单元是图像块中具有一定大小的像素区域,各个预设图像单元对应的运动矢量可以存储至图像块的相应存储单元中。具体的,可以根据各个子图像块的运动信息,对应各个预设图像单元对运动信息进行存储。其中,运动信息可以包括运动矢量,或者包括运动矢量和参考帧信息(例如,参考帧索引)等。
例如,针对将当前图像块划分为具有三角形形状的图像块而言,如果一个16*16的图像块被划分为两个三角形子图像块PU1、PU2,预设图像单元为4*4,则确定PU1对应的的运动矢量MV1、确定PU2对应的运动矢量MV2后,可以将MV1对应于PU1中的预设图像单元进行存储,将MV2对应于PU2中的预设图像单元进行存储,如图4所示。但是此时,在子图像块PU1和PU2的交界处,存在一些既不完全属于PU1,也不完全属于PU2的预设图像单元,针对这些第一图像单元,可以通过如下方式来确定其需要对 应存储的MV:
示例性的,如果MV1和MV2来自两个相同的特定列表,比如说都来自list 0(列表0)或者都来自list 1(列表1)。下面以list 0为例:
A、如果MV2对应的参考帧和list1中的某个参考帧F是同一个,这个参考帧F的索引为K,那么就把MV2的参考帧索引设置成K,得到MV2',并将MV1和MV2’组合成一个双MV;
B、否则,如果MV1的参考帧和list 1中的某个参考帧F是同一个,这个参考帧F的索引为K,那么就把MV1的参考帧索引设置成K,得到MV1’,并将MV1’和MV2组合成一个双MV。
其中,一个单运动信息可以来自一个特定列表(如本公开实施例中提到的第一列表),也可以来自另一个特定列表(如本公开实施例中提到的第二列表)。一个双运动信息包括的一个单运动信息可以来自第一列表,包括的另一个单运动信息可以来自第二列表。
本公开实施例中的第一列表可以是上述提到的list0,第二列表可以是上述提到的list1。list0和list1可以用于P帧或B帧的帧间预测。其中,I帧又称帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,即全部为帧内编码。P帧又称帧间预测编码帧,需要参考前面的I帧才能进行编码,表示的是当前帧画面与前一帧(前一帧可能是I帧也可能是P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别(采用了预测编码),生成最终画面。B帧又称双向预测编码帧,也就是B帧记录的是本帧与前后帧的差别,也就是说,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。list0和list1由若干图像帧构成。在一些现有技术中,对于P帧来讲,帧间预测只使用list0,对于B帧来讲,list0和list1在帧间预测中都会被用到。
关于list0和list1,如表1所示例,当前图像帧(编号为100)有三个前向参考帧和三个后向参考帧,即共六个参考帧,该六个参考帧按照自然图像的顺序标号(也即自然编号)为97、98、99、100、101、102、103。这些参考帧在列表0和列表1中的索引不同,在列表0中,最靠近当前参考帧的前面的一帧标志为索引0,再前一帧标志为索引1,前向参考之后是按照顺序的后向参考帧,则顺序标号为97、98、99、100、101、102、103的自然图 像的索引可以依次为2,1,0,3,4,5;在列表1中,最靠近当前参考帧的后一个参考帧标志为索引0,再后一参考帧标志为索引1,后向参考帧排完之后,再排前向参考帧,则顺序标号为97、98、99、100、101、102、103的自然图像的索引可以依次为5,4,3,0,1,2。
表1
自然编号 97 98 99 100 101 102 103
列表0索引号 2 1 0   3 4 5
列表1索引号 5 4 3   0 1 2
应理解,运动信息来自第一列表或第二列表,示意性表示运动信息对应的参考帧来自第一列表或第二列表。
基于以上描述可知,在确定预设图像单元对应的运动信息时,相关技术需要在MV1和MV2来自不同的特定列表时,对一特定列表(如list 1)中的参考中进行遍历,以确定MV1或MV2对应的参考帧是否与一特定列表(如list 1)中的参考帧是否相同,并在MV1或MV2对应的参考帧与一特定列表(如list 1)中的参考帧不相同之后,再将MV1确定预设图像单元对应的运动信息。如此,由于对特定列表中的参考帧的遍历,使得图像块的编解码的处理复杂度较高,不利于编解码器的软硬件实现。
应理解,以上的方案可以用于但不限于采用三角形预测技术的视频编码或解码过程中,对于将图像块划分为多个子图像块(例如,2个)的视频编解码过程中都可以适应性地适用。
本公开实施例提供了一种视频处理方法,用于在确保编解码过程中降低对第一图像单元确定运动矢量的计算量,提高编码解码效率。
图5是本公开实施例中视频处理方法500的示意性流程图。视频处理方法500可以由处理装置或设备实现。该处理装置或设备可以用于编码端或解码端,具体可以为编码器或解码器。
参考图5,方法500可以包括:
步骤S501,获取当前帧的第一图像块包括的子图像块的运动信息;
步骤S502,基于至少一个所述子图像块的运动信息,选择所述第一图像块中的第一图像单元对应的运动信息,所述第一图像单元包括至少两个子图像块的至少部分像素区域;
步骤S503,基于所述第一图像单元对应的运动信息,对所述第一图像 块的空域相邻块进行编码或解码。
方法500通过直接在多个子图像块的运动信息中选择第一图像单元对应的运动信息,而非通过遍历特定列表中各个参考帧的方式来确定第一图像单元对应的运动信息,可以极大地降低编解码过程中的计算复杂度,提高编码解码效率。
下面对方法500的各步骤进行详细说明。
在步骤S501,在对图像进行编码时,图像可以被分成多个图像块。举例而言,该图像可以被分成一个m×n的图像块阵列。图像块可以具有矩形形状、正方形形状、圆形形状或任何其他形状。图像块可以具有任何尺寸,如p×q像素。可以通过首先将该图像分成多个小块来对不同分辨率的图像进行编码。每个图像块都可以具有相同尺寸和/或形状。替代地,两个或更多图像块可以具有不同的尺寸和/或形状。在图像被分成多个图像块之后,可以分别对图像数据中的这些图像块进行编码。
对于一个图像块,其可以作为一个编码单元CU。在某些实施例中,图像块的大小可以由一个编码单元CU的宽度和高度组成,即图像块的大小可以为W×H。在编解码过程中,可以将一个图像块划分为多个子图像块(例如,2个),并分别为每个子图像块确定运动信息。一般而言,三角形划分方案中,各子图像块的运动信息的确定过程如下:
1、将当前图像块的空域相邻块和时域相邻块的MV组成一个候选列表;
2、编码端可以基于候选列表中的MV,为每个子图像块确定一个MV(例如,单向运动信息),并将确定的MV所在候选列表的索引值以及三角形的划分方式分别传送到解码端,或者,也可以将MV在候选列表中的索引值生成一个组合索引,将该组合索引传送到解码端,组合索引可以进一步赋予有三角形的划分方式。
选择完成后,每个子图像块的MV可以相同也可以不同,各子图像块的MV可以来自于同一个特定列表,也可以来自于不同特定列表。
当然,可以理解,对于图像块划分为多个具有其它形状的子图像块的情形,也可以采用上述方式确定各子图像块的运动信息,上述只是针对将图像块划分为具有三角形形状的子图像块的情况进行运动信息候选列表的构建的示例性说明。
可选地,在本公开实施例中,第一图像块可以由一个子图像块组成,也 可以由多个(例如,2个)子图像块组成。在该第一图像块由一个子图像块组成时,该一个子图像块可以理解为该第一图像块本身。
可选地,在本公开实施例中,在第一图像块为四边形时,可以沿着该四边形的对角线划分,得到两个三角形的子图像块。
例如,如图6所示的左侧图形所示,可以从四边形的左上角到右下角的方式进行划分得到两个PU,即PU1和PU2,或者,如图6所示的右侧图形所示,也可以从四边形的左下角到右上角的方式进行划分得到PU1和PU2。
或者,在第一图像块为四边形时,可以将该四边形划分为多于两个的三角形,或者至少两个的四边形等。
例如,在第一图像块为矩形时,从图像块的中心按照与第一图像块的一边平行的方式对第一图像块进行切分,切分为两个矩形或正方形,或从第一图像块的中心按照与第一图像块的一边非平行的方式对CU切分,切分为两个梯形,本公开对此不作具体限定。
例如,可以先对第一图像块沿着对角线从左上到右下进行划分,再从第一图像块的中心按照与第一图像块的一边平行的方式对第一图像块进行划分,可以得到四个子图像块。
应理解,上述举例中,第一图像块可以为四边形,但是本公开实施例并不限于此,本公开实施例中的第一图像块可以是除四边形之外的任何形状。
可选地,在本公开实施例中,对于当前帧中的各个图像块进行划分,可以是基于相同的划分方式,例如,均为三角形的划分方式;也可以是基于不同的划分方式,例如,对一个图像块采用三角形的划分方式进行划分,对于另一个图像块采用矩形的划分方式(也即划分为多个矩形)进行,例如,对一个图像块采用三角形的划分方式进行划分,对于另一个图像块不进行划分,本公开对此不作具体限定。
可选地,在本公开实施例中,对于不同的图像块,各个图像块包括的子图像块的数量可以相同,也可以不相同,本公开对此不作具体限定。
其中,各子图像块的运动信息既可以包括双运动信息,也可以包括单运动信息。本公开实施例中的双运动信息可以指包括两个单运动信息的运动信息。单运动信息为前向运动信息或后向运动信息,其中,前向运动信息是指对应的参考帧是当前帧的前向帧,后向运动信息是指对应的参考帧是当前帧的后向帧。双运动信息包括的两个单运动信息可以都是前向运动信息,也可 以都是后向运动信息,还可以是一个前向运动信息和一个后向运动信息,本公开对此不作具体限定。
应理解,在采用三角形预测技术的视频编码或解码时,本公开实施例中的各图像块的运动信息可以包括单运动信息,以解决编解码过程中需要用到四个预测块而带来的带宽利用率低、计算复杂度较高的问题。
在步骤S502,第一图像单元可以包括至少两个子图像块的至少部分像素区域,即第一图像单元的像素区域可以属于两个或两个以上的子图像块,也可以由两个或两个以上的子图像块各自的整体像素区域组成。
在至少一个子图像块的运动信息中,选择第一图像单元对应的运动信息,可以是直接在至少一个运动信息中确定一个运动信息为第一图像单元的运动信息,无论该运动信息为单运动信息,还是双运动信息;也可以是在至少一个运动信息中确定一个运动信息,例如在该运动信息为双运动信息时,将该双运动信息调整为一个单运动信息,以作为第一图像单元对应的运动信息;还可以是在至少一个运动信息中选择至少两个运动信息,并基于该至少两个运动信息,确定第一图像单元对应的运动信息,其中,如何基于至少两个运动信息确定第一图像单元对应的运动信息的方式不做具体限定,但可以不对特定列表中的参考帧进行遍历,以重新确定子图像块的运动信息。也即,本公开实施例中的选择可以包括但不限于直接选择,或默认选择,也可以包括选择动作之后的相应判断或计算。
可选地,由于第一图像块可以划分为多个图像块,则在确定第一图像块中的第一图像单元对应的运动信息时,既可以从第一图像单元涉及的至少两个子图像块的运动信息中选择第一图像单元的运动信息,也可以从全部子图像块的运动信息中选择第一图像单元对应的运动信息。
可选地,在至少两个子图像块的运动信息中为第一图像单元选择相应的运动信息时,可以选择一个或以上的运动信息(该运动信息可以为单运动信息,也可以为双运动信息)。其中,在选择到一个以上的运动信息时,可以对一个以上的运动信息进行处理,以确定第一图像块中的第一图像单元最终对应的至少一个运动信息。
可选的,在至少两个子图像块的运动信息中为第一图像单元选择相应的运动信息时,可以根据运动信息来自于哪个特定列表来选择运动信息,也可以不理会运动信息来自于哪个特定列表,且在根据运动信息来自于哪个特定 列表来选择运动信息时,可以不对特定列表中的参考帧进行遍历,以降低计算量。
应理解,第一图像块可以包括一个或多个第一图像单元,对于包括多个第一图像单元而言,各个第一图像单元对应的运动信息可以相同,也可以不同,也可以部分第一图像单元对应的运动信息相同或不同。其中,该相同或不同包括均为单运动信息,均为双运动信息,或部分为单运动信息、部分为双运动信息。
可选地,在本公开实施例中,对于不同的第一图像单元,各个图像单元对应的像素区域的大小和/或形状可以相同,也可以不同,本公开对此不作具体限定。
图7是本公开一个实施例中考虑运动信息来自于哪个特定列表进而选择第一图像单元对应的运动信息的流程图。
参考图7,在步骤S5021,判断各子图像块的运动信息对应的参考帧是否来自于同一个特定列表,如果是,则进入步骤S5022,否则进入步骤S5023。
在步骤S5022,将所述子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息。
在步骤S5023,在所述子图像块的运动信息中选择运动信息以得到至少一个双运动信息,并根据至少一个所述双运动信息确定所述第一图像单元对应的运动信息。
在一个实施例中,对于步骤S5022,可以根据各子图像块的运动信息均来自于哪个特定列表来确定将哪个运动信息为第一图像单元对应的运动信息。
例如,如果子图像块的运动信息包括第一运动信息和第二运动信息,第一运动信息和第二运动信息分别对应不同的子图像块,特定列表包括第一列表和第二列表,则可以根据以下逻辑选择第一图像单元对应的运动信息:
若子图像块的运动信息均来自于第一列表,则将第一运动信息确定为第一图像单元对应的运动信息;
若子图像块的运动信息均来自于第二列表,则将第二运动信息确定为第一图像单元对应的运动信息。
或者,可以根据以下逻辑选择第一图像单元对应的运动信息:
若子图像块的运动信息均来自于第一列表,则将第二运动信息确定为第 一图像单元对应的运动信息;
若子图像块的运动信息均来自于第二列表,则将第一运动信息确定为第一图像单元对应的运动信息。
在根据特定列表选择子图像块的运动信息中的一个运动信息为第一图像单元对应的运动信息的上述示例中,第一运动信息和第二运动信息可以为同一个子图像块的运动信息,也即该子图像块的运动信息为双运动信息,第一运动信息和第二运动信息分别为单运动信息;第二运动信息和第二运动信息也可以为不同子图像块的运动信息,第一运动信息可以为单运动信息,也可以为双运动信息,第二运动信息可以为单运动信息,也可以为双运动信息。
可以理解的是,以上方案仅为示例,当具有更多运动信息或更多列表时,可以按照以上方式同理确定第一图像单元对应的运动信息。
在另一个实施例中,对于步骤S5022,也可以不根据特定列表来确定子图像块的运动信息中的一个运动信息为第一图像单元对应的运动信息。
例如,如果不考虑运动信息来自于哪个特定列表,而是直接将子图像块的运动信息中的一个运动信息确定为第一图像单元对应的运动信息。
或者,可以基于第一图像单元的特征信息,在子图像块的运动信息中选择一个运动信息作为第一图像单元对应的运动信息。
其中,在直接将子图像块的运动信息中的一个运动信息确定为第一图像单元对应的运动信息时,可选的,可以默认选择一个运动信息作为第一图像单元对应的运动信息。例如,如果子图像块的运动信息包括对应不同的子图像块的第一运动信息和第二运动信息,可以默认选择第一运动信息或第二运动信息作为第一图像单元对应的运动信息,以三角形预测为例,在确定一个CU中的PU1对应的MV1、PU2对应的MV2后,可以将PU1对应的MV1或PU2对应的MV2默认为第一图像单元对应的运动信息,该PU1或PU2的确定与三角形的划分方式相关。
其中,第一图像单元的特征信息例如为第一图像单元的位置信息和/或尺寸信息。位置信息可以为第一图像单元的预设位置的坐标信息,也可以是第一图像单元与第一图像块中部分子图像块之间的方位信息。尺寸信息可以为第一图像单元的宽、高信息。
对于步骤S5023,可以在子图像块的运动信息中选择一个或多个运动信息以得到至少一个双运动信息。其中,将不同子图像块的运动信息进行组合, 以得到至少一个双运动信息,可以根据以下逻辑:
如果各子图像块的运动信息均为单运动信息,可以将至少两个子图像块的运动信息两两组合,得到至少一个双运动信息。
如果各子图像块的运动信息均为双运动信息,在其中直接选择一个或以上的双运动信息;或者可以在至少两个子图像块的双运动信息中各选取一个单运动信息,组合成至少一个双运动信息;或者,将至少部分双运动信息分别合并为一个单运动信息,再将合并后得到的单运动信息两两组合,得到至少一个双运动信息;或者,将部分双运动信息分别合并成一个单运动信息,再将合并成的单运动信息与从双运动信息中选取的一个单运动信息两两组合,得到至少一个双运动信息。
如果各子图像块的运动信息既包括单运动信息,也包括双运动信息,则除了将多个单运动信息组合成至少一个双运动信息、在多个双运动信息中各选取一个单运动信息组合成至少一个双运动信息外,还可以在每个双运动信息中选择一个单运动信息,与一或多个单运动信息共同组合成至少一个双运动信息。
其中,上述说明的两两组合,意味着两个不同子图像块的运动信息之间的组合,不管组合的两个运动信息为单运动信息,还是双运动信息,两个运动信息之间的组合可以得到至少一个双运动信息。
应理解,上述至少一个双运动信息的获取逻辑仅为举例说明,在实际应用中,还可以包括上述内容以外的其它获取逻辑,在此不做具体限定。
进一步的,在步骤S5023,根据至少一个双运动信息确定第一图像单元的运动信息的逻辑可以为如下:
将至少一个双运动信息中的一个双运动信息确定为第一图像单元对应的运动信息。
也即,可以直接将其中的一个双运动信息确定为第一图像单元对应的运动信息,包括默认某一类型的双运动信息为第一图像单元对应的运动信息;也可以经过其它预设方法来选择其中一个双运动信息为第一图像单元对应的运动信息。其中,预设方法不做限定,只要能够有利于降低计算复杂度即可。
应理解,在上述至少两个子图像块的运动信息分别来自于不同特定列表,或子图像块的运动信息均来自同一列表的情况下,对第一图像单元对应 的运动信息进行确定时,确定的方式除了上述说明的内容,在实际应用中,也可以采用其它方法在子图像块的运动信息中选择一个运动信息作为第一图像单元对应的运动信息,此处不做具体限定。
基于上述说明可知,在子图像块的运动信息均来自同一特定列表时,可以基于第一图像单元的特征信息,在子图像块的运动信息中选择一个运动信息作为第一图像单元对应的运动信息。下面进行具体说明:
图8是本公开一个实施例中根据第一图像单元的特征信息选择运动信息的示意图。
具体的,可以将第一图像单元的预设位置所在的子图像块的运动信息确定为第一图像单元对应的运动信息。其中,该预设位置例如为第一图像单元的左上角位置。
其中,若第一图像单元的预设位置位于多个子图像块中,则将所述多子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息,此时选择运动信息的方式可以是如上所述的任意一种。
例如,参考图8,假设第一图像块为方形,且包括两个具有三角形形状的PU1、PU2,PU1的运动信息包括MV1,PU2的运动信息包括MV2。在第一图像块中,可以对应有四个第一图像单元,该四个第一图像单元均分别包括既属于PU1的像素区域,又包括属于PU2的像素区域。按照从左至右、从上至下的顺序,这四个第一图像单元具体可以为:第一排第一个图像单元、第一排第二个图像单元、第二排第三个图像单元、第二排第四个图像单元。
以第一图像单元的左上角位置为例进行说明,可知,第一排第一个图像单元的左上角位置既位于PU1中,也位于PU2中,也即位于PU1和PU2的分界线(该分界线仅为示意性说明,是否物理存在并不做限定)上,则可以将PU1的MV1或PU2的MV2作为其对应的运动信息;而第一排第二个图像单元的左上角位置仅位于PU2中,则可以将PU2的MV2作为其对应的运动信息;同理,第二排第三个图像单元的左上角位置也位于PU1和PU2的分界线上,则可以将PU1的MV1或PU2的MV2作为其对应的运动信息;而第二排第四个图像单元的左上角位置仅位于PU2中,则可以将PU2的MV2作为其对应的运动信息。
应理解,第一图像单元的预设位置位于哪个子图像块中,可以根据第一图像单元的预设位置的位置信息确定,如预设位置的坐标信息。该坐标信息 可以用像素坐标表示。
应理解,第一图像单元的预设位置除了上述说明的左上角位置,还可以包括其它位置,如中心位置、右上角位置、右下角位置等。
图9是本公开另一个实施例中根据第一图像单元的特征信息选择运动信息的示意图。
具体的,可以将位于第一图像单元的预设方位的子图像块的运动信息确定为第一图像单元对应的运动信息。其中,该预设方位例如为左下方位。
例如,参考图9,假设第一图像块为方形,且包括两个具有三角形像素区域的PU1、PU2,PU1的运动信息为MV1,PU2的运动信息为MV2。在第一图像块中子图像块的分界线上,存在四个第一图像块,这四个第一图像块均包括位于PU1区域的像素和位于PU2区域的像素,不完全属于PU1或PU2。按照从左至右、从上至下的顺序,这四个第一图像单元具体可以为:第一排第一个图像单元、第一排第二个图像单元、第二排第三个图像单元、第二排第四个图像单元。
以该预设方位为第一图像单元的左下方位为例进行说明,可知,各第一图像单元的左下方位均为PU1,则可以将PU1的MV1作为其对应的运动信息。
应理解,第一图像单元的预设方位的子图像块除了上述说明的左下方位,还可以包括其它位置,如右上方位、左上方位、右下方位等。
应理解,第一图像单元的预设方位可以根据各子图像块的划分方式来确定,例如,当按照水平或垂直方式对第一图像块进行划分时,预设方位还可以包括上方、下方、左方、右方等。在一个实施例中,还可以根据第一图像单元的位置信息和尺寸信息来确定第一图像单元预设方位的子图像块,本公开对此不作特殊限定。
图10是本公开再一个实施例中根据第一图像单元的特征信息选择运动信息的示意图。
具体的,参考图10,可以将在第一图像单元中具有最大像素区域的子图像块的运动信息确定为第一图像单元对应的运动信息。
其中,若第一图像单元中各子图像块占据的像素区域的大小相同,则将子图像块的运动信息中的一个运动信息确定为第一图像单元对应的运动信息,此时选择运动信息的方式可以是如上的任意一种。示例性的,可以基于 第一图像单元的位置信息和尺寸信息,通过如下方式确定第一图像单元对应的运动信息:
对于一个W*H的第一图像块,设置水平方向上4x4预设图像单元的个数为numW=W/4,垂直方向上4x4预设图像单元的个数为numH=H/4,W、H都是4的整数倍,W=2 idxW,H=2 idxH,W、H数值不定,可能是8x8、8x16、4x16、4x32、4x64、16x8、16x4等等。用ratioW和ratioH代表W和H的比值关系,则:
ratioW=max(0,idxW-idxH)……(1)
ratioH=max(0,idxH-idxW)……(2)
sum=max((numW>>ratioW),(numH>>ratioH))-1……(3)
对于WxN中的每一个4x4的预设图像单元,用(x,y)代表这个单元的坐标(0≤x<numW,0≤y<numH),将x和y的数值做如下处理:
idxY=y>>ratioH……(4)
idxX=x>>ratioW……(5)
expT=max(0,abs(idxW-idxH)-1)……(6)
T=2 expT……(7)
其中abs()表示取绝对值,max()表示取最大值。
以三角形预测方案中的135度划分为例,如果idxX>idxY,则在(x,y)位置存储右上角子图像块的运动信息MV1;如果idxX<=idxY,则存储左下角子图像块的运动信息MV2。
进一步的,如果idxX=idxY,还可以进行如下处理:
将右上角子图像块的运动信息MV1用数字0表示,左下角子图像块的运动信息MV2用数字1表示。如果numH<numW,将第一图像单元对应的运动信息确定为max(((x/T)%2),1)-((x/T)%2);如果numH>numW,将第一图像单元对应的运动信息确定为(y/T)%2。其中“/”号是除法取整,“%”是取余操作,都是整数操作。
其中,若idxX与idxY不相等,则意味着第一图像单元中各子图像块占据的像素区域的大小不相同,若idxX与idxY相等,意味着第一图像单元中各子图像块占据的像素区域的大小相同。
以三角形预测方案中的45度划分为例,如果idxX+idxY>sum,就将(x,y)位置的第一图像单元对应的运动信息确定为右下角子图像块的运动信息 MV2,否则就将(x,y)位置的第一图像单元对应的运动信息确定为左上角子图像块的运动信息MV1。
如果idxX+idxY=sum,将MV1用0表示,MV2用1表示。如果numH<numW,就将第一图像单元对应的运动信息确定为(x/T)%2。否则就将就将第一图像单元对应的运动信息确定为(y/T)%2。
其中,若idxX+idxY>sum,则意味着第一图像单元中各子图像块占据的像素区域的大小不相同,若idxX+idxY=sum,则意味着第一图像单元中各子图像块占据的像素区域的大小相同。
应理解,在第一图像单元中各子图像块占据的像素区域的大小相同时,除了采用上述的方法选择子图像块的运动信息中的一个运动信息作为第一图像单元的运动信息之前,也可以直接默认子图像块的运动信息中的一个的运动信息为第一图像单元对应的运动信息。
在步骤503,第一图像单元对应的运动信息可以存储在第一图像块的存储单元中。第一图像块可以对应至少一个存储单元,每一个存储单元可以对应一个第一图像单元,用于存储第一图像单元的相关信息,例如运动信息。第一图像单元对应的运动信息,可以用于对第一图像块的空域相邻块进行编码或解码,也即第一图像单元对应的运动信息,可以用于确定第一图像块的运动信息,以使得第一图像块的运动信息可以作为其空域相邻块在编解码过程中构建MVP候选列表时的候选运动信息。
可选地,在本公开实施例中,对于编码端而言,如果待编码的图像块由一个子图像块组成,则可以将该子图像的运动信息指向的图像块作为待编码的图像块的预测块,基于该预测块与待编码的图像块获取残差数据,并将残差数据写入到编码码流中。
相应地,对于解码端而言,可以从解码码流中,获取残差数据,以及将该子图像的运动信息指向的图像块作为待解码的图像块的预测块,则可以基于该残差数据以及该预测块,对待解码的图像块进行解码。
可选地,在本公开实施例中,对于编码端而言,如果待编码的图像块由多个子图像块组成,每个子图像块分别对应一个预测子块,多个子图像块对应的多个预测子块可以组成一个预测块。其中,各个预测子块在预测块的位置可以相当于对应的子图像块在待编码的图像块中的位置,基于该预测块与待编码的图像块获取残差数据,并将残差数据写入到编码码流中。
相应地,对于解码端而言,可以从解码码流中,获取残差数据,以及将多个子图像块的运动信息指向的多个预测子块,组成预测块,则可以基于该残差数据以及该预测块,对待解码的图像块进行解码。
综上所述,本公开实施例在基于至少一个子图像块的运动信息,选择第一图像块中的第一图像单元对应的运动信息时,若以一个方形的第一图像块包括两个三角形的PU1、PU2,PU1的运动信息为MV1,PU2的运动信息为MV2为例,可以示例性的包括如下方案:
(1)如果MV1和MV2来自两个不同的特定列表,则直接组合成一个双运动信息作为第一图像单元对应的运动信息;如果来自相同的特定列表,则直接将MV1作为第一图像单元对应的运动信息(也可以直接将MV2作为第一图像单元对应的运动信息)。
(2)直接将MV1作为第一图像单元对应的运动信息(也可以直接将MV2作为第一图像单元对应的运动信息)
(3)如果MV1和MV2来自两个不同的特定列表,则直接组合成一个双运动信息作为第一图像单元对应的运动信息;如果来自相同的特定列表,如果都来自list0,则直接将MV1作为第一图像单元对应的运动信息,如果都来自list1,则直接将MV2作为第一图像单元对应的运动信息(或者,如果都来自list0,则直接将MV2作为第一图像单元对应的运动信息,如果都来自list1,则直接将MV1作为第一图像单元对应的运动信息)。
(4)如果第一图像单元的左上角坐标位于PU1,则直接将MV1作为第一图像单元对应的运动信息;如果位于PU2,则直接将MV2作为第一图像单元对应的运动信息;如果刚好位于PU1与PU2的分界线上,则直接将MV1作为第一图像单元对应的运动信息(也可以直接将MV2作为第一图像单元对应的运动信息)。
(5)如果第一图像单元的大部分区域位于PU1,则直接将MV1作为第一图像单元对应的运动信息;如果第一图像单元的大部分区域位于PU2,则直接将MV2作为第一图像单元对应的运动信息;如果如果第一图像单元的一半区域位于PU1,另一半区域位于PU2,即位于PU1的区域和位于PU2的区域的面积相同,则直接将MV1作为第一图像单元对应的运动信息(也可以直接将MV2作为第一图像单元对应的运动信息)。
其中,在本公开实施例中,优于考虑了各个子图像块的运动信息是否来 自于不同列表的情况,且在均来自于相同列表时,直接从中选择一个运动信息作为第一图像单元对应的图像信息,则方案(1)可以在降低一定计算复杂度的情况下,达到较佳的编解码性能;方案(2)则完全不考虑各个子图像块的运动信息来自于哪个特定列表,而是直接默认一个子图像块的[AQ1]运动信息为第一图像单元对应的运动信息,确认第一图像单元对应的运动信息的方式最为简单、直接,也即复杂度最低,可以提高信息处理效率,具有最优的数据处理性能;而方案(3)、(4)、(5)则可以根据不同的条件选择子图像块中的运动信息为第一图像单元对应的运动信息,对不同的条件具有较佳的适应性,灵活性较强,有利于针对不同情况、不同要求选择第一图像单元对应的运动信息。在实际应用中,可以根据需要分别使用各个方案,也应理解,上述几个方案仅为示例性说明,在实际应用中,可以包括上述几个方案以外的情况。同时,可以根据需要分别使用各个方案,也可以结合各个方案,而上述各个方案的变形、耦合而产生的方案应该包括在本公开中。综上,本公开实施例,通过在子图像块的运动信息中选择位于子图像块交界处的第一图像单元的运动信息,避免了相关技术中通过遍历特定列表中各个参考帧的方式来确定第一图像单元对应的运动信息,可以极大地降低编解码过程中的计算复杂度,提高编码解码效率。
对应于方法实施例,本公开还提供了一种视频处理装置,可以用来实现如上所述的视频处理方法。
图11是本公开实施例中提供的视频处理装置的方框图。
参考图11,视频处理装置1100可以包括:
获取模块1101,设置为获取当前帧的第一图像块包括的子图像块的运动信息;
选择模块1102,设置为基于至少一个所述子图像块的运动信息,选择所述第一图像块中的第一图像单元对应的运动信息,所述第一图像单元包括至少两个子图像块的至少部分像素区域;
编解码模块1103,设置为基于所述第一图像单元对应的运动信息,对所述第一图像块的空域相邻块进行编码或解码。
在本公开的一种示例性实施例中,所述选择模块1102包括:
第一单元11021,设置为若所述子图像块的运动信息对应的参考帧分别为来自于不同特定列表,在所述子图像块的运动信息中选择运动信息以得到 至少一个双运动信息,并在所述至少一个双运动信息中选择所述第一图像单元对应的运动信息;
第二单元11022,设置为若所述子图像块的运动信息对应的参考帧均来自于同一特定列表,则将所述子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息;
其中,所述特定列表包括第一列表和第二列表。
在本公开的一种示例性实施例中,所述第二单元11022设置为:
根据所述特定列表选择所述子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息。
在本公开的一种示例性实施例中,所述子图像块的运动信息包括第一运动信息和第二运动信息,所第二单元11022设置为:
若所述子图像块的运动信息对应的参考帧均来自于第一列表,则将所述第一运动信息确定为所述第一图像单元对应的运动信息;
若所述子图像块的运动信息对应的参考帧均来自于第二列表,则将所述第二运动信息确定为所述第一图像单元对应的运动信息。
在本公开的一种示例性实施例中,述子图像块的运动信息包括第一运动信息和第二运动信息,所述第一运动信息和所述第二运动信息对应不同的所述子图像块,所述第二单元11022设置为:
若所述子图像块的运动信息对应的参考帧均来自于第一列表,则将所述第二运动信息确定为所述第一图像单元对应的运动信息;
若所述子图像块的运动信息对应的参考帧均来自于第二列表,则将所述第一运动信息确定为所述第一图像单元对应的运动信息。
在本公开的一种示例性实施例中,所述第一运动信息和所述第二运动信息对应不同的所述子图像块。
在本公开的一种示例性实施例中,所述第一图像块包括两个所述子图像块,所述第一单元11021设置为:
将不同所述子图像块的运动信息进行组合,得到至少一个双运动信息。
在本公开的一种示例性实施例中,所述第一单元11021设置为:
将至少一个所述双运动信息中的一个双运动信息确定为所述第一图像单元对应的运动信息。
在本公开的一种示例性实施例中,所述选择模块1102设置为:
将所述子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息。
在本公开的一种示例性实施例中,所述选择模块1102设置为:
默认选择所述子图像块的运动信息中的一个运动信息作为所述第一图像单元对应的运动信息。
在本公开的一种示例性实施例中,所述子图像块的运动信息包括对应不同的子图像块的第一运动信息和第二运动信息,所述选择模块1102设置为:
默认选择所述第一运动信息或所述第二运动信息作为所述第一图像单元对应的运动信息。
在本公开的一种示例性实施例中,所述选择模块1102设置为:
基于所述第一图像单元的特征信息,在所述子图像块的运动信息中选择一个运动信息确定为所述第一图像单元对应的运动信息。
在本公开的一种示例性实施例中,所述特征信息包括位置信息和/或尺寸信息。
在本公开的一种示例性实施例中,所述选择模块1102设置为:
将所述第一图像单元的预设位置所在的子图像块的运动信息确定为所述第一图像单元对应的运动信息。
在本公开的一种示例性实施例中,所述选择模块1102还设置为:
若所述第一图像单元的预设位置位于多个所述子图像块中,则将所述多子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息。
在本公开的一种示例性实施例中,所述预设位置为所述第一图像单元的左上角位置。
在本公开的一种示例性实施例中,所述选择模块1102设置为:
将位于所述第一图像单元的预设方位的子图像块的运动信息确定为所述第一图像单元对应的运动信息。
在本公开的一种示例性实施例中,所述预设方位为所述第一图像单元的左下方位。
在本公开的一种示例性实施例中,所述选择模块1102设置为:
将在所述第一图像单元中具有最大像素区域的子图像块的运动信息确定为所述第一图像单元对应的运动信息。
在本公开的一种示例性实施例中,所述选择模块1102还设置为:
若所述第一图像单元中各个所述子图像块占据的像素区域的大小相同,则默认将某一个子图像块的运动信息确定为所述第一图像单元对应的运动信息。
在本公开的一种示例性实施例中,各所述子图像块的运动信息均为单运动信息。
在本公开的一种示例性实施例中,所述子图像块的数量为两个。
图12示出了本公开实施例的视频处理设备1200的示意性框图。
如图12所示,该视频处理设备1200可以包括处理器1210,进一步地可以包括存储器1220。
应理解,该视频处理设备1200还可以包括其他视频处理设备中通常所包括的部件,例如,输入输出设备、通信接口等,本公开实施例对此并不限定。
存储器1220用于存储计算机可执行指令。
存储器1220可以是各种种类的存储器,例如可以包括高速随机存取存储器(Random Access Memory,RAM),还可以包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器,本公开实施例对此并不限定。
处理器1210用于访问该存储器1220,并执行该计算机可执行指令,以进行上述本公开实施例的视频处理方法中的操作。
处理器1210可以包括微处理器,现场可编程门阵列(Field-Programmable Gate Array,FPGA),中央处理器(Central Processing unit,CPU),图形处理器(Graphics Processing Unit,GPU)等,本公开实施例对此并不限定。
本公开实施例的视频处理设备可对应于本公开实施例的视频处理方法的执行主体,并且视频处理设备中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。
本公开实施例还提供了一种电子设备,该电子设备可以包括上述本公开各种实施例的用于视频处理的设备。
本公开实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码可以用于指示执行上述本公开实施例的视频处理方 法。
应理解,在本公开实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本公开实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销 售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

Claims (48)

  1. 一种视频处理方法,其特征在于,包括:
    获取当前帧的第一图像块包括的子图像块的运动信息;
    基于至少一个所述子图像块的运动信息,选择所述第一图像块中的第一图像单元对应的运动信息,所述第一图像单元包括至少两个所述子图像块的至少部分像素区域;
    基于所述第一图像单元对应的运动信息,对所述第一图像块的空域相邻块进行编码或解码。
  2. 根据权利要求1所述的视频处理方法,其特征在于,所述基于至少一个所述子图像块的运动信息,选择所述第一图像块中的第一图像单元对应的运动信息包括:
    若至少两个所述子图像块的运动信息分别来自不同特定列表,在所述子图像块的运动信息中选择运动信息以得到至少一个双运动信息,并根据至少一个所述双运动信息确定所述第一图像单元对应的运动信息;
    若所述子图像块的运动信息均来自同一特定列表,则将所述子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息;
    其中,所述特定列表包括第一列表和第二列表。
  3. 根据权利要求2所述的视频处理方法,其特征在于,所述将所述子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息包括:
    根据所述特定列表选择所述子图像块的运动信息中的一个运动信息为所述第一图像单元对应的运动信息。
  4. 根据权利要求3所述的视频处理方法,其特征在于,所述子图像块的运动信息包括第一运动信息和第二运动信息,所述根据所述特定列表选择所述子图像块的运动信息中的一个运动信息为所述第一图像单元对应的运动信息包括:
    若所述子图像块的运动信息均来自所述第一列表,则将所述第一运动信息确定为所述第一图像单元对应的运动信息;
    若所述子图像块的运动信息均来自所述第二列表,则将所述第二运动信息确定为所述第一图像单元对应的运动信息。
  5. 根据权利要求3所述的视频处理方法,其特征在于,所述子图像块 的运动信息包括第一运动信息和第二运动信息,所述第一运动信息和所述第二运动信息对应不同的所述子图像块,所述根据所述特定列表选择所述子图像块的运动信息中的一个运动信息为所述第一图像单元对应的运动信息包括:
    若所述子图像块的运动信息均来自所述第一列表,则将所述第二运动信息确定为所述第一图像单元对应的运动信息;
    若所述子图像块的运动信息均来自所述第二列表,则将所述第一运动信息确定为所述第一图像单元对应的运动信息。
  6. 根据权利要求4或5所述的视频处理方法,其特征在于,所述第一运动信息和所述第二运动信息对应不同的所述子图像块。
  7. 根据权利要求2所述的视频处理方法,其特征在于,所述第一图像块包括至少两个所述子图像块,所述在所述子图像块的运动信息中选择运动信息以得到至少一个双运动信息包括:
    将不同所述子图像块的运动信息进行组合,得到至少一个双运动信息。
  8. 根据权利要求2所述的视频处理方法,其特征在于,所述根据所述至少一个双运动信息确定所述第一图像单元对应的运动信息包括:
    将至少一个所述双运动信息中的一个双运动信息确定为所述第一图像单元对应的运动信息。
  9. 根据权利要求1所述的视频处理方法,其特征在于,所述基于至少一个所述子图像块的运动信息,选择所述第一图像块中的第一图像单元对应的运动信息包括:
    将所述子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息。
  10. 根据权利要求2或9所述的视频处理方法,其特征在于,所述将所述子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息包括:
    默认所述子图像块的运动信息中的一个运动信息为所述第一图像单元对应的运动信息。
  11. 根据权利要求10所述的视频处理方法,其特征在于,所述子图像块的运动信息包括对应不同的所述子图像块的第一运动信息和第二运动信息,所述默认所述子图像块的运动信息中的一个运动信息为所述第一图像单 元对应的运动信息包括:
    默认所述第一运动信息或所述第二运动信息为所述第一图像单元对应的运动信息。
  12. 根据权利要求8所述的视频处理方法,其特征在于,所述将所述子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息包括:
    基于所述第一图像单元的特征信息,在所述子图像块的运动信息中选择一个运动信息为所述第一图像单元对应的运动信息。
  13. 根据权利要求12所述的视频处理方法,其特征在于,所述特征信息包括位置信息和/或尺寸信息。
  14. 根据权利要求12或13所述的视频处理方法,其特征在于,所述基于所述第一图像单元的特征信息,在所述子图像块的运动信息中选择一个运动信息为所述第一图像单元对应的运动信息包括:
    将所述第一图像单元的预设位置所在的子图像块的运动信息确定为所述第一图像单元对应的运动信息。
  15. 根据权利要求14所述的视频处理方法,其特征在于,所述方法还包括:
    若所述第一图像单元的预设位置位于多个所述子图像块中,则将多个所述子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息。
  16. 根据权利要求14或15所述的视频处理方法,其特征在于,所述预设位置为所述第一图像单元的左上角位置。
  17. 根据权利要求12或13所述的视频处理方法,其特征在于,所述基于所述第一图像单元的特征信息,在所述子图像块的运动信息中选择一个运动信息为所述第一图像单元对应的运动信息包括:
    将位于所述第一图像单元的预设方位的子图像块的运动信息确定为所述第一图像单元对应的运动信息。
  18. 根据权利要求17所述的视频处理方法,其特征在于,所述预设方位为所述第一图像单元的左下方位。
  19. 根据权利要求12或13所述的视频处理方法,其特征在于,所述基于所述第一图像单元的特征信息,在所述子图像块的运动信息中选择一个运 动信息为所述第一图像单元对应的运动信息包括:
    将在所述第一图像单元中具有最大像素区域的子图像块的运动信息确定为所述第一图像单元对应的运动信息。
  20. 根据权利要求12或13所述的视频处理方法,其特征在于,还包括:
    若所述第一图像单元中各个所述子图像块占据的像素区域的大小相同,则默认所述子图像块的运动信息中的一个运动信息为所述第一图像单元对应的运动信息。
  21. 根据权利要求1所述的视频处理方法,其特征在于,各个所述子图像块的运动信息均为单运动信息。
  22. 根据权利要求1所述的视频处理方法,其特征在于,所述子图像块的数量为两个。
  23. 根据权利要求1所述的视频处理方法,其特征在于,所述子图像块的像素区域呈三角形。
  24. 一种视频处理装置,其特征在于,包括:
    获取模块,设置为获取当前帧的第一图像块包括的子图像块的运动信息;
    选择模块,设置为基于至少一个所述子图像块的运动信息,选择所述第一图像块中的第一图像单元对应的运动信息,所述第一图像单元包括至少两个子图像块的至少部分像素区域;
    编解码模块,设置为基于所述第一图像单元对应的运动信息,对所述第一图像块的空域相邻块进行编码或解码。
  25. 根据权利要求24所述的视频处理装置,其特征在于,所述选择模块包括:
    第一单元,设置为若所述子图像块的运动信息对应的参考帧分别为来自于不同特定列表,在所述子图像块的运动信息中选择运动信息以得到至少一个双运动信息,并根据至少一个所述双运动信息确定所述第一图像单元对应的运动信息;
    第二单元,设置为若所述子图像块的运动信息对应的参考帧均来自于同一特定列表,则将所述子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息;
    其中,所述特定列表包括第一列表和第二列表。
  26. 根据权利要求25所述的视频处理装置,其特征在于,所述第二单元设置为:
    根据所述特定列表选择所述子图像块的运动信息中的一个运动信息作为所述第一图像单元对应的运动信息。
  27. 根据权利要求26所述的视频处理装置,其特征在于,所述子图像块的运动信息包括第一运动信息和第二运动信息,所第二单元设置为:
    若所述子图像块的运动信息对应的参考帧均来自于第一列表,则将所述第一运动信息确定为所述第一图像单元对应的运动信息;
    若所述子图像块的运动信息对应的参考帧均来自于第二列表,则将所述第二运动信息确定为所述第一图像单元对应的运动信息。
  28. 根据权利要求26所述的视频处理装置,其特征在于,所述子图像块的运动信息包括第一运动信息和第二运动信息,所述第一运动信息和所述第二运动信息对应不同的所述子图像块,所述第二单元设置为:
    若所述子图像块的运动信息对应的参考帧均来自于第一列表,则将所述第二运动信息确定为所述第一图像单元对应的运动信息;
    若所述子图像块的运动信息对应的参考帧均来自于第二列表,则将所述第一运动信息确定为所述第一图像单元对应的运动信息。
  29. 根据权利要求27或28所述的视频处理装置,其特征在于,所述第一运动信息和所述第二运动信息对应不同的所述子图像块。
  30. 根据权利要求25所述的视频处理装置,其特征在于,所述第一图像块包括两个所述子图像块,所述第一单元设置为:
    将不同所述子图像块的运动信息进行组合,得到至少一个双运动信息。
  31. 根据权利要求25所述的视频处理装置,其特征在于,所述第一单元设置为:
    将至少一个所述双运动信息中的一个双运动信息确定为所述第一图像单元对应的运动信息。
  32. 根据权利要求24所述的视频处理装置,其特征在于,所述选择模块设置为:
    将所述子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息。
  33. 根据权利要求25或32所述的视频处理装置,其特征在于,所述选 择模块设置为:
    默认选择所述子图像块的运动信息中的一个运动信息作为所述第一图像单元对应的运动信息。
  34. 根据权利要求32所述的视频处理装置,其特征在于,所述子图像块的运动信息包括对应不同的子图像块的第一运动信息和第二运动信息,所述选择模块设置为:
    默认选择所述第一运动信息或所述第二运动信息作为所述第一图像单元对应的运动信息。
  35. 根据权利要求32所述的视频处理装置,其特征在于,所述选择模块设置为:
    基于所述第一图像单元的特征信息,在所述子图像块的运动信息中选择一个运动信息确定为所述第一图像单元对应的运动信息。
  36. 根据权利要求35所述的视频处理装置,其特征在于,所述特征信息包括位置信息和/或尺寸信息。
  37. 根据权利要求35或36所述的视频处理装置,其特征在于,所述选择模块设置为:
    将所述第一图像单元的预设位置所在的子图像块的运动信息确定为所述第一图像单元对应的运动信息。
  38. 根据权利要求37所述的视频处理装置,其特征在于,所述选择模块还设置为:
    若所述第一图像单元的预设位置位于多个所述子图像块中,则将多个所述子图像块的运动信息中的一个运动信息确定为所述第一图像单元对应的运动信息。
  39. 根据权利要求37或38所述的视频处理装置,其特征在于,所述预设位置为所述第一图像单元的左上角位置。
  40. 根据权利要求35或36所述的视频处理装置,其特征在于所述选择模块设置为:
    将位于所述第一图像单元的预设方位的子图像块的运动信息确定为所述第一图像单元对应的运动信息。
  41. 根据权利要求40所述的视频处理装置,其特征在于,所述预设方位为所述第一图像单元的左下方位。
  42. 根据权利要求35或36所述的视频处理装置,其特征在于,所述选择模块设置为:
    将在所述第一图像单元中具有最大像素区域的子图像块的运动信息确定为所述第一图像单元对应的运动信息。
  43. 根据权利要求35或36所述的视频处理装置,其特征在于,所述选择模块还设置为:
    若所述第一图像单元中各个所述子图像块占据的像素区域的大小相同,则默认将某一个子图像块的运动信息确定为所述第一图像单元对应的运动信息。
  44. 根据权利要求25所述的视频处理装置,其特征在于,各所述子图像块的运动信息均为单运动信息。
  45. 根据权利要求25所述的视频处理装置,其特征在于,所述子图像块的数量为两个。
  46. 根据权利要求25所述的视频处理装置,其特征在于,所述子图像块的像素区域呈三角形。
  47. 一种视频处理装置,其特征在于,包括:
    存储器,用于存储程序代码;
    处理器,耦接于所述存储器,用于调用所述程序代码执行权利要求1~23任一项所述的视频处理方法。
  48. 一种可读存储介质,其特征在于,用于存储程序代码,所述程序代码用于执行权利要求1~23任一项所述的视频处理方法。
PCT/CN2019/092872 2019-06-25 2019-06-25 视频处理方法、装置和设备 WO2020258058A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201980011919.1A CN111699689B (zh) 2019-06-25 2019-06-25 视频处理方法、装置和设备
PCT/CN2019/092872 WO2020258058A1 (zh) 2019-06-25 2019-06-25 视频处理方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/092872 WO2020258058A1 (zh) 2019-06-25 2019-06-25 视频处理方法、装置和设备

Publications (1)

Publication Number Publication Date
WO2020258058A1 true WO2020258058A1 (zh) 2020-12-30

Family

ID=72476448

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/092872 WO2020258058A1 (zh) 2019-06-25 2019-06-25 视频处理方法、装置和设备

Country Status (2)

Country Link
CN (1) CN111699689B (zh)
WO (1) WO2020258058A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223528A (zh) * 2010-04-15 2011-10-19 华为技术有限公司 一种参考运动矢量获得方法
CN109862369A (zh) * 2018-12-28 2019-06-07 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
WO2019117640A1 (ko) * 2017-12-14 2019-06-20 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116567212A (zh) * 2016-08-11 2023-08-08 Lx 半导体科技有限公司 编码/解码设备以及发送图像数据的设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223528A (zh) * 2010-04-15 2011-10-19 华为技术有限公司 一种参考运动矢量获得方法
WO2019117640A1 (ko) * 2017-12-14 2019-06-20 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치
CN109862369A (zh) * 2018-12-28 2019-06-07 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备

Also Published As

Publication number Publication date
CN111699689A (zh) 2020-09-22
CN111699689B (zh) 2023-03-31

Similar Documents

Publication Publication Date Title
TWI711300B (zh) 照度補償方法及相應之視訊處理裝置
TWI719542B (zh) 一種視訊編碼/解碼方法及裝置
KR102173475B1 (ko) 픽처 예측 방법 및 픽처 예측 장치
KR20200083962A (ko) 영상 복호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
WO2016050051A1 (zh) 图像预测方法及相关装置
US11350125B2 (en) Method and device for intra-prediction
JP2017511620A (ja) オーバーラップエリア内の再構成されたサンプル値のブロックベクトル予測及び推定におけるイノベーション
WO2020181543A1 (zh) 视频处理方法和设备
TW202015426A (zh) 共享候選列表
JP2022538969A (ja) 映像コード化における動きフィールド記憶のための方法及び装置
KR20210104891A (ko) Vvc에서의 컬러 변환을 위한 방법 및 장치
JP2022535859A (ja) Mpmリストを構成する方法、クロマブロックのイントラ予測モードを取得する方法、および装置
JP2022531131A (ja) インタ予測における融合モード候補のための大域的運動
US11706449B2 (en) Method and device for intra-prediction
JP2023159145A (ja) ビデオコーディングにおけるデブロッキングフィルタのための装置および方法
TW202145794A (zh) 幀間預測方法、編碼器、解碼器以及電腦儲存媒介
WO2021196035A1 (zh) 视频编码的方法和装置
KR20150047379A (ko) 비디오 인코딩 장치 그리고 이의 구동 방법
JP2022529737A (ja) 大域的運動を伴うフレームにおける適応型運動ベクトル予測候補
TWI737055B (zh) 視訊編碼系統中用於決定儲存用運動向量的視訊處理方法和裝置
WO2020258058A1 (zh) 视频处理方法、装置和设备
WO2021081905A1 (zh) 图像预测和视频编码方法、装置、可移动平台及存储介质
CN109905713B (zh) 针对hevc的编码加速方法、相关装置和设备
US10743009B2 (en) Image processing apparatus and image processing method
WO2020258057A1 (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: 19935323

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19935323

Country of ref document: EP

Kind code of ref document: A1