CN112437305B - Method and device for judging macro block type, image processing chip and electronic equipment - Google Patents
Method and device for judging macro block type, image processing chip and electronic equipment Download PDFInfo
- Publication number
- CN112437305B CN112437305B CN202010837815.0A CN202010837815A CN112437305B CN 112437305 B CN112437305 B CN 112437305B CN 202010837815 A CN202010837815 A CN 202010837815A CN 112437305 B CN112437305 B CN 112437305B
- Authority
- CN
- China
- Prior art keywords
- macroblock
- motion vector
- skip
- cost
- current macroblock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供宏块类型判定方法、装置、图像处理芯片和电子设备,该判定方法包括如下步骤,针对当前块:计算跳跃模式的第一判断标志、第二判断标志和第三判断标志,第一代价、第二代价和第三代价,以及帧内预测代价、跳跃模式最终跳跃运动矢量;根据跳跃模式的第一判断标志、第二判断标志和第三判断标志是否为跳跃类型,跳跃模式第一临时跳跃运动矢量、第二临时跳跃运动矢量和宏块运动估计后的亚像素运动矢量是否等于跳跃模式最终跳跃运动矢量,以及第一代价、第二代价和第三代价与帧内预测代价之差最终判断当前宏块类型。本发明能够并行处理并提高判断跳跃宏块类型的准确度。
The present invention provides a macroblock type determination method, device, image processing chip and electronic equipment. The determination method includes the following steps, for the current block: calculating the first determination flag, the second determination flag and the third determination flag of the skip mode, the first determination flag The cost, the second cost, and the third cost, as well as the intra-frame prediction cost, and the final jump motion vector of the skip mode; according to whether the first judgment flag, the second judgment flag, and the third judgment flag of the skip mode are of the skip type, the skip mode is the first Whether the temporary skip motion vector, the second temporary skip motion vector, and the sub-pixel motion vector after macroblock motion estimation are equal to the final skip motion vector of skip mode, and the difference between the first cost, the second cost, the third cost and the intra prediction cost is finally Determine the current macroblock type. The present invention can process in parallel and improve the accuracy of judging the type of skip macroblocks.
Description
技术领域technical field
本发明涉及视频压缩编码技术领域,尤其涉及宏块类型的判定方法、装置、图像处理芯片和电子设备。The present invention relates to the technical field of video compression and coding, and in particular, to a method, device, image processing chip and electronic device for determining a macroblock type.
背景技术Background technique
H.264/AVC是ISO/IEC和ITU-T两大国际标准化组织联合制定的视频压缩标准,它采用了许多新的压缩技术,具有更高的压缩效率和更好的网络适应性。在相同图像质量的情况下,产生较小的码流,从而节省更多的带宽。由于H.264采用了更多的编码技术,使得算法的复杂度增加了许多,而且硬件的实现难度也增加了。H.264/AVC is a video compression standard jointly formulated by ISO/IEC and ITU-T, two international standardization organizations. It adopts many new compression technologies and has higher compression efficiency and better network adaptability. In the case of the same image quality, a smaller code stream is generated, thereby saving more bandwidth. Since H.264 adopts more coding techniques, the complexity of the algorithm has increased a lot, and the difficulty of hardware implementation has also increased.
H.264的一个重要特性是采用了变换大小的模式选择和运动估计。利用已编码的参考帧预测当前帧,使用一个残差块和运动矢量表示当前帧中的每个宏块,有效消除了视频序列间的时间相关性。其中,H.264标准在P帧编码时引入了SKIP块(跳跃宏块),以有效编码大面积的静止区域和运动一致的区域。SKIP块也是一种16x16块尺寸的运动预测补偿模式,尤其在静止的场景或运动背景不变的情况下,SKIP宏块所占的比例非常大,而在编码的过程中,为了能够较大程度上降低码率,如果提前得知部分宏块为SKIP宏块,则不需要对SKIP宏块进行DCT变换和量化处理,即不需要对运动矢量和残差进行编码,而仅对SKIP宏块进行标记,在解码时,直接根据该标记从参考帧中复制相应的宏块即可。由此可知,对SKIP宏块的判断在实现提高编码效果以及降低码率时是非常重要的。An important feature of H.264 is the use of transform size mode selection and motion estimation. The current frame is predicted using the encoded reference frame, and each macroblock in the current frame is represented by a residual block and motion vector, which effectively eliminates the temporal correlation between video sequences. Among them, the H.264 standard introduces a SKIP block (skip macroblock) in the P frame encoding to effectively encode a large area of still areas and areas with consistent motion. The SKIP block is also a motion prediction compensation mode with a block size of 16x16. Especially in the case of a static scene or a constant moving background, the proportion of SKIP macroblocks is very large. To reduce the code rate, if it is known in advance that some macroblocks are SKIP macroblocks, it is not necessary to perform DCT transformation and quantization processing on the SKIP macroblocks, that is, it is not necessary to encode motion vectors and residuals, but only SKIP macroblocks are processed. Mark, when decoding, simply copy the corresponding macroblock from the reference frame according to the mark. From this, it can be seen that the judgment of the SKIP macroblock is very important to improve the coding effect and reduce the coding rate.
x264是一个开源的H.264/AVC视频编码函数库,是实现H.264标准的最好的视频编码器之一。现有x264编码模型中,对P帧SKIP模式的判断包括三种方法,以下讨论假设编码器只采用一个前向参考帧,且P帧只使用16x16一种分割。x264 is an open source H.264/AVC video encoding function library, which is one of the best video encoders to implement the H.264 standard. In the existing x264 coding model, there are three methods for judging the SKIP mode of the P frame. The following discussion assumes that the encoder only uses one forward reference frame, and the P frame uses only one division of 16x16.
传统方案一:在整像素运动估计(即IME)开始前,如果当前宏块左边邻居块,上边邻居块,左上边邻居块,右上边邻居块中有一个是SKIP块,则执行SKIP块的判断函数x264_macroblock_probe_pskip()(可称为跳跃宏块的跳跃模式代价计算方法),具体操作是根据当前宏块预测出的跳跃模式的mv(记为pskip_mv)和参考帧分别得到重构的亮度宏块和色度宏块,然后以4x4为单位分别对重构的亮度块和色度块进行DCT变换,量化,zigzag扫描,根据4x4块扫描后的非零值个数来确定当前宏块是否是SKIP块。Traditional scheme 1: Before the start of integer pixel motion estimation (ie IME), if one of the left neighbor block, the upper neighbor block, the upper left neighbor block, and the upper right neighbor block of the current macroblock is a SKIP block, the judgment of the SKIP block is performed. The function x264_macroblock_probe_pskip() (can be called the skip mode cost calculation method of skip macroblock), the specific operation is to obtain the reconstructed luminance macroblock and Chroma macroblock, then DCT transform, quantize, and zigzag scan the reconstructed luminance block and chrominance block in 4x4 units, and determine whether the current macroblock is a SKIP block according to the number of non-zero values after 4x4 block scanning .
传统方案二:在当前宏块16x16模式亚像素运动估计(即FME)结束后,如果得到的mv与当前宏块的pskip_mv非常接近,且运动估计后的最优代价值小于一定的门限值,则执行函数x264_macroblock_probe_pskip()来判断当前宏块是否为skip块。Traditional scheme 2: After the current macroblock 16x16 mode sub-pixel motion estimation (ie FME) is completed, if the obtained mv is very close to the pskip_mv of the current macroblock, and the optimal cost value after motion estimation is less than a certain threshold value, Then execute the function x264_macroblock_probe_pskip() to determine whether the current macroblock is a skip block.
传统方案三:在宏块编码过程中,在量化结束后,如果当前宏块类型为P块且分割大小为16x16,量化后的系数大部分为0,并且宏块运动估计后的mv等于当前宏块的pskip_mv,则当前宏块判定为skip块。Traditional scheme 3: In the macroblock encoding process, after quantization, if the current macroblock type is P block and the partition size is 16x16, most of the quantized coefficients are 0, and the macroblock motion estimation mv is equal to the current macroblock. pskip_mv of the block, the current macroblock is determined as a skip block.
传统方案一和传统方案二判断在求取跳跃模式的pskip_mv时需要依赖左边宏块的类型,这种依赖关系势必会影响硬件流水的并行实现,导致硬件流水线延长,并降低了编码器的实时编码速度。传统方案三虽然能够在一定程度上实现并行处理,但传统方案三判断步骤在宏块类型确定后,成为SKIP块的前提是当前宏块类型为P块。如果当前宏块的帧内预测代价和帧间预测代价相当,而最终宏块类型被判定为I块时,容易忽略掉一些SKIP块,对于一些静止或者运动不剧烈的场景,SKIP块的比例偏低,导致编码器无法满足码率严苛环境下的应用。The
发明内容SUMMARY OF THE INVENTION
基于上述现状,本发明的主要目的在于提供宏块类型的判定方法、装置、图像处理芯片和电子设备,以提高判断跳跃宏块类型的准确度和并行处理。Based on the above situation, the main purpose of the present invention is to provide a macroblock type determination method, apparatus, image processing chip and electronic device, so as to improve the accuracy and parallel processing of skip macroblock type determination.
为实现上述目的,本发明采用的技术方案如下:For achieving the above object, the technical scheme adopted in the present invention is as follows:
一种视频帧待编码宏块类型的判定方法,包括如下步骤:S100、利用运动矢量预测算法根据当前宏块前面的非左边邻居宏块的运动矢量计算所述当前宏块的临时预测运动矢量;S200、设置所述当前宏块的跳跃模式的第一临时跳跃运动矢量,利用跳跃模式代价计算方法根据所述临时预测运动矢量和跳跃模式的第一临时跳跃运动矢量计算所述当前宏块的跳跃模式的第一判断标志和第一代价;S300、暂时设定所述当前宏块的左边邻居宏块的类型为帧间宏块,利用跳跃运动矢量预测算法根据所述左边邻居宏块的亚像素运动矢量、以及所述非左边邻居宏块的运动矢量计算所述当前宏块的跳跃模式的第二临时跳跃运动矢量,利用所述跳跃模式代价计算方法根据所述临时预测运动矢量和跳跃模式的第二临时跳跃运动矢量计算所述当前宏块的跳跃模式的第二判断标志和第二代价;S400、对所述当前宏块进行亚像素运动估计得到所述当前宏块的亚像素运动矢量,利用所述跳跃模式代价计算方法根据所述临时预测运动矢量和所述当前宏块的亚像素运动矢量计算所述当前宏块的跳跃模式的第三判断标志和第三代价;S500、计算所述当前宏块的帧内预测代价;S600、在所述左边邻居宏块的类型确定后,利用所述跳跃运动矢量预测算法根据所述左边邻居宏块、非左边邻居宏块的运动矢量计算所述当前宏块的跳跃模式的最终跳跃运动矢量;S700、若所述跳跃模式的第一判断标志为跳跃类型、跳跃模式的第一临时跳跃运动矢量等于跳跃模式的最终跳跃运动矢量且第一代价与所述帧内预测代价之差不大于第一阈值,或者,所述跳跃模式的第二判断标志为跳跃类型、跳跃模式的第二临时跳跃运动矢量等于跳跃模式的最终跳跃运动矢量且第二代价与所述帧内预测代价之差不大于所述第一阈值,或者,所述跳跃模式的第三判断标志为跳跃类型、所述当前宏块的亚像素运动矢量等于跳跃模式的最终跳跃运动矢量且第三代价与所述帧内预测代价之差不大于第二阈值,则将所述当前宏块判定为跳跃宏块。A method for determining a macroblock type to be encoded in a video frame, comprising the steps of: S100, using a motion vector prediction algorithm to calculate a temporary predicted motion vector of the current macroblock according to the motion vector of the non-left neighbor macroblock in front of the current macroblock; S200. Set a first temporary jump motion vector of the skip mode of the current macroblock, and use a skip mode cost calculation method to calculate the skip of the current macroblock according to the temporary predicted motion vector and the first temporary jump motion vector of the skip mode The first judgment mark and the first cost of the pattern; S300, temporarily set the type of the left neighbor macroblock of the current macroblock to be an inter-frame macroblock, and utilize the jump motion vector prediction algorithm according to the subpixel of the left neighbor macroblock The motion vector and the motion vector of the non-left neighbor macroblock are used to calculate a second temporary skip motion vector of the skip mode of the current macroblock, and the skip mode cost calculation method is used according to the temporary predicted motion vector and the skip mode. The second temporary skip motion vector calculates the second judgment flag and the second cost of the skip mode of the current macroblock; S400, perform sub-pixel motion estimation on the current macroblock to obtain the sub-pixel motion vector of the current macroblock, Use the skip mode cost calculation method to calculate the third judgment flag and the third cost of the skip mode of the current macroblock according to the temporary predicted motion vector and the sub-pixel motion vector of the current macroblock; S500, calculate the Intra prediction cost of the current macroblock; S600, after the type of the left neighbor macroblock is determined, use the skip motion vector prediction algorithm to calculate the motion vector according to the left neighbor macroblock and the non-left neighbor macroblock The final skip motion vector of the skip mode of the current macroblock; S700. If the first judgment flag of the skip mode is skip type, the first temporary skip motion vector of the skip mode is equal to the final skip motion vector of the skip mode, and the first cost is equal to the The difference between the intra-frame prediction costs is not greater than the first threshold, or, the second judgment flag of the skip mode is a skip type, the second temporary skip motion vector of the skip mode is equal to the final skip motion vector of the skip mode, and the second cost The difference from the intra-frame prediction cost is not greater than the first threshold, or the third judgment flag of the skip mode is the skip type, and the sub-pixel motion vector of the current macroblock is equal to the final skip motion vector of the skip mode And the difference between the third cost and the intra-frame prediction cost is not greater than the second threshold, then the current macroblock is determined to be a skipped macroblock.
优选地,所述步骤S400还包括如下步骤:获取对所述当前宏块进行亚像素运动估计过程中产生的所述当前宏块的临时帧间预测代价;所述步骤S600还包括如下步骤:利用所述运动矢量预测算法根据所述左边邻居宏块、非左边邻居宏块的运动矢量计算所述当前宏块的最终预测运动矢量;利用所述帧间预测块代价算法根据所述最终预测运动矢量与所述临时预测运动矢量之差矫正所述临时帧间预测代价,得到所述当前宏块的最终帧间预测代价;在步骤S700中,若当前宏块未被判定为跳跃宏块,则:比较所述帧内预测代价与最终帧间预测代价的大小,若所述帧内预测代价小于所述最终帧间预测代价,则将所述当前宏块的类型判定为帧内宏块,否则将所述当前宏块的类型判定为帧间宏块。Preferably, the step S400 further includes the following steps: obtaining the temporary inter-frame prediction cost of the current macroblock generated in the process of performing sub-pixel motion estimation on the current macroblock; the step S600 further includes the following steps: using The motion vector prediction algorithm calculates the final predicted motion vector of the current macroblock according to the motion vectors of the left neighbor macroblock and the non-left neighbor macroblock; uses the inter prediction block cost algorithm according to the final predicted motion vector Correcting the temporary inter-frame prediction cost with the difference between the temporary predicted motion vector to obtain the final inter-frame prediction cost of the current macroblock; in step S700, if the current macroblock is not determined to be a skip macroblock, then: Compare the size of the intra-frame prediction cost and the final inter-frame prediction cost, if the intra-frame prediction cost is less than the final inter-frame prediction cost, then determine the type of the current macroblock as an intra-frame macroblock, otherwise The type of the current macroblock is determined as an inter-frame macroblock.
优选地,在所述步骤S200中,设置所述当前宏块的跳跃模式的第一临时跳跃运动矢量为零矢量。Preferably, in the step S200, the first temporary skip motion vector of the skip mode of the current macroblock is set as a zero vector.
优选地,所述非左边邻居宏块是所述当前宏块的左上边邻居宏块、上边邻居宏块和右上边邻居宏块,即取三个邻居宏进行计算。Preferably, the non-left neighbor macroblocks are the upper left neighbor macroblock, the upper neighbor macroblock and the upper right neighbor macroblock of the current macroblock, that is, three neighbor macros are taken for calculation.
优选地,所述第一阈值和第二阈值均为0。Preferably, both the first threshold and the second threshold are 0.
优选地,所有宏块的分割模式为16x16像素。Preferably, the partition mode of all macroblocks is 16x16 pixels.
本发明还提供了一种视频帧待编码宏块类型的判定装置,包括:第一处理单元,用于利用运动矢量预测算法根据当前宏块前面的非左边邻居宏块的运动矢量计算所述当前宏块的临时预测运动矢量;第二处理单元,用于设置所述当前宏块的跳跃模式的第一临时跳跃运动矢量,利用跳跃模式代价计算方法根据所述临时预测运动矢量和跳跃模式的第一临时跳跃运动矢量计算所述当前宏块的跳跃模式的第一判断标志和第一代价;第三处理单元,用于暂时设定所述当前宏块的左边邻居宏块的类型为帧间宏块,利用跳跃运动矢量预测算法根据所述左边邻居宏块的亚像素运动矢量、以及所述非左边邻居宏块的运动矢量计算所述当前宏块的跳跃模式的第二临时跳跃运动矢量,利用所述跳跃模式代价计算方法根据所述临时预测运动矢量和跳跃模式的第二临时跳跃运动矢量计算所述当前宏块的跳跃模式的第二判断标志和第二代价;第四处理单元,用于对所述当前宏块进行亚像素运动估计得到所述当前宏块的亚像素运动矢量,利用所述跳跃模式代价计算方法根据所述临时预测运动矢量和所述当前宏块的亚像素运动矢量计算所述当前宏块的跳跃模式的第三判断标志和第三代价;第五处理单元,用于计算所述当前宏块的帧内预测代价;第六处理单元,用于在所述左边邻居宏块的类型确定后,利用所述跳跃运动矢量预测算法根据所述左边邻居宏块、非左边邻居宏块的运动矢量计算所述当前宏块的跳跃模式的最终跳跃运动矢量;第七处理单元,用于若所述跳跃模式的第一判断标志为跳跃类型、跳跃模式的第一临时跳跃运动矢量等于跳跃模式的最终跳跃运动矢量且第一代价与所述帧内预测代价之差不大于第一阈值,或者,所述跳跃模式的第二判断标志为跳跃类型、跳跃模式的第二临时跳跃运动矢量等于跳跃模式的最终跳跃运动矢量且第二代价与所述帧内预测代价之差不大于所述第一阈值,或者,所述跳跃模式的第三判断标志为跳跃类型、所述当前宏块的亚像素运动矢量等于跳跃模式的最终跳跃运动矢量且第三代价与所述帧内预测代价之差不大于第二阈值,则将所述当前宏块判定为跳跃宏块。The present invention also provides a device for determining the type of a macroblock to be encoded in a video frame, comprising: a first processing unit, configured to use a motion vector prediction algorithm to calculate the current macroblock according to the motion vector of the non-left neighbor macroblock before the current macroblock The temporary motion vector predictor of the macroblock; the second processing unit is used to set the first temporary skip motion vector of the skip mode of the current macroblock, and utilizes the skip mode cost calculation method according to the temporary motion vector predictor and the first temporary skip motion vector of the skip mode. A temporary skip motion vector is used to calculate the first judgment flag and the first cost of the skip mode of the current macroblock; a third processing unit is used to temporarily set the type of the left neighbor macroblock of the current macroblock as inter-frame macro block, using the skip motion vector prediction algorithm to calculate the second temporary skip motion vector of the skip mode of the current macroblock according to the sub-pixel motion vector of the left neighbor macroblock and the motion vector of the non-left neighbor macroblock, using The skip mode cost calculation method calculates the second judgment flag and the second cost of the skip mode of the current macroblock according to the temporary predicted motion vector and the second temporary skip motion vector of the skip mode; the fourth processing unit is used for Perform sub-pixel motion estimation on the current macroblock to obtain a sub-pixel motion vector of the current macroblock, and use the skip mode cost calculation method to calculate the temporary predicted motion vector and the sub-pixel motion vector of the current macroblock a third judgment flag and a third cost of the skip mode of the current macroblock; a fifth processing unit, used to calculate the intra prediction cost of the current macroblock; a sixth processing unit, used for the left neighbor macro After the block type is determined, the skip motion vector prediction algorithm is used to calculate the final skip motion vector of the skip mode of the current macroblock according to the motion vectors of the left neighbor macroblock and the non-left neighbor macroblock; the seventh processing unit, If the first judgment flag of the skip mode is skip type, the first temporary skip motion vector of skip mode is equal to the final skip motion vector of skip mode, and the difference between the first cost and the intra prediction cost is not greater than the first The threshold, or the second judgment flag of the skip mode is the skip type, the second temporary skip motion vector of the skip mode is equal to the final skip motion vector of the skip mode, and the difference between the second cost and the intra prediction cost is not greater than all The first threshold, or the third judgment flag of the skip mode is the skip type, the sub-pixel motion vector of the current macroblock is equal to the final skip motion vector of the skip mode, and the third cost and the intra prediction cost are combined If the difference is not greater than the second threshold, the current macroblock is determined as a skipped macroblock.
优选地,所述第四处理单元还用于:获取对所述当前宏块进行亚像素运动估计过程中产生的所述当前宏块的临时帧间预测代价;所述第六处理单元还用于:利用所述运动矢量预测算法根据所述左边邻居宏块、非左边邻居宏块的运动矢量计算所述当前宏块的最终预测运动矢量;利用所述帧间预测块代价算法根据所述最终预测运动矢量与所述临时预测运动矢量之差矫正所述临时帧间预测代价,得到所述当前宏块的最终帧间预测代价;所述第七处理单元还用于:若当前宏块未被判定为跳跃宏块,则比较所述帧内预测代价与最终帧间预测代价的大小,若所述帧内预测代价小于所述最终帧间预测代价,则将所述当前宏块的类型判定为帧内宏块,否则将所述当前宏块的类型判定为帧间宏块。Preferably, the fourth processing unit is further configured to: obtain the temporary inter-frame prediction cost of the current macroblock generated in the process of performing sub-pixel motion estimation on the current macroblock; the sixth processing unit is further configured to: : use the motion vector prediction algorithm to calculate the final predicted motion vector of the current macroblock according to the motion vectors of the left neighbor macroblock and non-left neighbor macroblock; use the inter prediction block cost algorithm to calculate the final predicted motion vector according to the final prediction The difference between the motion vector and the temporary predicted motion vector corrects the temporary inter-frame prediction cost to obtain the final inter-frame prediction cost of the current macroblock; the seventh processing unit is also used for: if the current macroblock has not been determined For skipping macroblocks, compare the size of the intra-frame prediction cost and the final inter-frame prediction cost, and if the intra-frame prediction cost is less than the final inter-frame prediction cost, determine the type of the current macroblock as frame Intra macroblock, otherwise the type of the current macroblock is determined as an inter macroblock.
优选地,所述第二处理单元还用于:设置所述当前宏块的跳跃模式的第一临时跳跃运动矢量为零矢量。Preferably, the second processing unit is further configured to: set the first temporary skip motion vector of the skip mode of the current macroblock to a zero vector.
优选地,所述非左边邻居宏块是所述当前宏块前面的左上边邻居宏块、上边邻居宏块和右上边邻居宏块,即取三个邻居宏进行计算。Preferably, the non-left neighbor macroblocks are the upper left neighbor macroblock, the upper neighbor macroblock and the upper right neighbor macroblock before the current macroblock, that is, three neighbor macros are taken for calculation.
优选地,所有宏块的分割模式为16x16像素。Preferably, the partition mode of all macroblocks is 16x16 pixels.
本发明还提供了一种图像处理芯片,用于执行任一所述的宏块类型的判定方法。The present invention also provides an image processing chip, which is used for executing any one of the macroblock type determination methods.
本发明还提供了一种图像处理电子设备,包括所述的图像处理芯片。The invention also provides an image processing electronic device, including the image processing chip.
【有益效果】【Beneficial effects】
本发明通过跳跃模式的第一判断标志和第一代价、跳跃模式的第二判断标志和第二代价以及跳跃模式的第三判断标志和第三代价对当前宏块类型进行预判断,然后再根据上述参数以及跳跃模式的最终跳跃运动矢量、帧内预测代价、第一阈值和第二阈值等参数最终判断宏块类型,解决了现有技术中帧内预测代价和帧间预测代价相当时跳跃宏块被误判为帧内预测宏块的问题,极大满足了编码器在码率要求严苛环境下的应用。另外,本发明还能够并行处理宏块编码以及跳跃宏块类型的判断,缩短了硬件流水线,节省了一定的硬件设计逻辑,提高了编码器的实时编码速度。The present invention pre-judges the current macroblock type through the first judgment flag and the first cost of the skip mode, the second judgment flag and the second cost of the skip mode, and the third judgment flag and the third cost of the skip mode, and then according to The above parameters and the final skip motion vector of skip mode, the intra prediction cost, the first threshold and the second threshold and other parameters finally determine the macroblock type, which solves the problem of skipping macroblocks when the intra prediction cost and the inter prediction cost are equivalent in the prior art. The problem that the block is misjudged as an intra-frame prediction macroblock greatly satisfies the application of the encoder in the environment with strict code rate requirements. In addition, the present invention can also process macroblock coding and jump macroblock type judgment in parallel, shorten the hardware pipeline, save certain hardware design logic, and improve the real-time coding speed of the encoder.
本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。Other beneficial effects of the present invention will be illustrated in the specific embodiments through the introduction of specific technical features and technical solutions. Those skilled in the art should be able to understand the technical features and technical solutions through the introduction of these technical features and technical solutions. beneficial technical effects.
附图说明Description of drawings
以下将参照附图对根据本发明优选实施方式进行描述。图中:Preferred embodiments according to the present invention will be described below with reference to the accompanying drawings. In the picture:
图1是执行本发明宏块类型的判定方法的硬件编码器的一种实施例的示意图FIG. 1 is a schematic diagram of an embodiment of a hardware encoder that executes a method for determining a macroblock type according to the present invention.
图2是多个宏块并行处理的示意图FIG. 2 is a schematic diagram of parallel processing of multiple macroblocks
图3是本发明一种实施例的宏块类型的判定方法的部分流程图3 is a partial flowchart of a method for determining a macroblock type according to an embodiment of the present invention
图4是本发明一种实施例的宏块类型的判定方法的部分流程图4 is a partial flowchart of a method for determining a macroblock type according to an embodiment of the present invention
图5是当前帧内的当前宏块以及其前面的邻居宏块(左边宏块不可用)的示意图Figure 5 is a schematic diagram of the current macroblock in the current frame and its preceding neighbor macroblocks (the left macroblock is unavailable)
图6是当前帧内的当前宏块以及其前面的邻居宏块(左边宏块可用)的示意图FIG. 6 is a schematic diagram of the current macroblock in the current frame and its preceding neighbor macroblocks (the left macroblock is available)
具体实施方式Detailed ways
图1是执行本发明宏块类型的判定方法的硬件编码器的一种实施例的示意图,编码器包括整像素运动估计(IME)单元、亚像素运动估计(FME)单元、帧内预测及变换量化单元和宏块类型判断单元,其中,整像素运动估计单元除了执行现有技术常见的整像素运动估计算法以计算宏块的整像素运动矢量之外,还需执行本发明所特有的宏块类型预判断步骤一;亚像素运动估计单元除了执行现有技术常见的亚像素运动估计算法以计算宏块的亚像素运动矢量和对应的帧间预测代价之外,还需要执行本发明所特有的宏块类型预判断步骤二和预判断步骤三;帧内预测、变换量化单元执行现有常见的帧内预测代价算法,以计算宏块的帧内预测代价;宏块类型判断单元在宏块类型预判断步骤一、预判断步骤二和预判断步骤三的基础上进一步执行宏块类型最终判断步骤,以最终判定宏块的类型,例如是跳跃宏块、帧内宏块还是帧间宏块类型。上述宏块类型预判断步骤一、预判断步骤二和预判断步骤三将在下文中详细说明。1 is a schematic diagram of an embodiment of a hardware encoder for implementing the method for determining the macroblock type of the present invention. The encoder includes an integer-pixel motion estimation (IME) unit, a sub-pixel motion estimation (FME) unit, intra-frame prediction and transformation. A quantization unit and a macroblock type judgment unit, wherein the integer pixel motion estimation unit needs to execute the unique macroblock type of the present invention in addition to executing the integer pixel motion estimation algorithm common in the prior art to calculate the integer pixel motion vector of the macroblock
如图2所示,为了充分实现宏块类型判定的并行执行,以某一宏块来看,该宏块将依次被整像素运动估计单元、亚像素运动估计单元、帧内预测及变换量化单元和宏块类型判断单元处理后(如图2所示,上述处理过程依次为简略表示为IME、FME、Intra预测,MC+TQ、mb_type确定),得到最终的宏块类型,例如,宏块1被整像素运动估计单元处理后,被继续送到亚像素运动估计单元进行处理,直至被宏块类型判断单元处理后得到宏块1的宏块类型;而以硬件编码器的每个单元来看,其总是处理完一个宏块之后,再处理下一个宏块,例如,整像素运动估计单元在处理完宏块1后,接着处理相邻的下一个宏块2,直至处理完所有待处理的宏块。这样,硬件编码器的每个单元都可以并行处理不同的宏块。As shown in Figure 2, in order to fully realize the parallel execution of macroblock type determination, from the perspective of a macroblock, the macroblock will be sequentially processed by the whole-pixel motion estimation unit, the sub-pixel motion estimation unit, the intra-frame prediction and the transform and quantization unit. After processing with the macroblock type judgment unit (as shown in Figure 2, the above processing process is abbreviated as IME, FME, Intra prediction, MC+TQ, mb_type determination) to obtain the final macroblock type, for example,
图3和4是本发明一种实施例的视频帧待编码宏块类型的判定方法,包括如下步骤。3 and 4 illustrate a method for determining the type of a macroblock to be encoded in a video frame according to an embodiment of the present invention, which includes the following steps.
宏块类型预判断步骤一,包括步骤S1和步骤S2,由整像素运动估计单元执行。在一个实施例中,本判断方法所处理的视频对象为视频序列factory_1080p[1920x1080].yuv,编码设置为:IDR=32(IDR表示两个I帧之间的间隔),QP=30(QP为量化系数值),当前宏块例如可以是该视频序列第一个P帧第35个宏块行的第20个宏块。The macroblock type
S100、利用运动矢量预测算法根据当前宏块前面的非左边邻居宏块的运动矢量计算当前宏块的临时预测运动矢量mvp_tmp。S100. Use a motion vector prediction algorithm to calculate a temporary predicted motion vector mvp_tmp of the current macroblock according to the motion vector of the non-left neighbor macroblock in front of the current macroblock.
具体而言,如图5所示是当前帧内的当前宏块以及其前面的邻居宏块的示意图,当前宏块前面的邻居宏块包括左边邻居宏块和非左边邻居宏块,其中的非左边邻居宏块包括当前宏块的左上边邻居宏块、上边邻居宏块和右上边邻居宏块。Specifically, as shown in FIG. 5 is a schematic diagram of the current macroblock in the current frame and the neighboring macroblocks in front of it. The neighboring macroblocks in front of the current macroblock include left-neighboring macroblocks and non-left-neighboring macroblocks. The left neighbor macroblock includes the upper left neighbor macroblock, the upper neighbor macroblock and the upper right neighbor macroblock of the current macroblock.
整像素运动估计单元在处理当前宏块时,左边邻居宏块的宏块类型还未被计算出来,左边邻居宏块的亚像素运动矢量也未被计算出来,因此,左边邻居宏块无法被用于预测当前宏块的临时预测运动矢量mvp_tmp。在本步骤中,利用运动矢量预测算法根据当前宏块前面的左上边邻居宏块、上边邻居宏块和右上边邻居宏块的运动矢量(指最终的运动矢量,由宏块类型判断单元计算得到)计算当前宏块的临时预测运动矢量mvp_tmp(例如,在一个实施例中,计算得到mvp_tmp=[0,0]),临时预测运动矢量mvp_tmp将用于确定搜索窗的位置,后续步骤中均在此搜索窗内搜索匹配块,以计算相关运动矢量或代价。运动矢量预测算法可以是H.264标准规定的预测算法,用于根据邻居宏块的运动矢量预测当前宏块的运动矢量。When the integer pixel motion estimation unit processes the current macroblock, the macroblock type of the left neighbor macroblock has not been calculated, and the sub-pixel motion vector of the left neighbor macroblock has not been calculated. Therefore, the left neighbor macroblock cannot be used. Temporary prediction motion vector mvp_tmp for predicting the current macroblock. In this step, the motion vector prediction algorithm is used to obtain the motion vector (referring to the final motion vector, calculated by the macroblock type judgment unit according to the motion vector (referring to the final motion vector) of the upper left neighbor macroblock, the upper neighbor macroblock and the upper right neighbor macroblock in front of the current macroblock ) Calculate the temporary predicted motion vector mvp_tmp of the current macroblock (for example, in one embodiment, calculate to obtain mvp_tmp=[0,0]), and the temporary predicted motion vector mvp_tmp will be used to determine the position of the search window. A matching block is searched within this search window to compute the associated motion vector or cost. The motion vector prediction algorithm may be a prediction algorithm specified in the H.264 standard, and is used to predict the motion vector of the current macroblock according to the motion vectors of the neighboring macroblocks.
S200、设置当前宏块的跳跃模式的第一临时跳跃运动矢量pskip_mv_tmp0,利用跳跃模式代价计算方法根据临时预测运动矢量mvp_tmp和跳跃模式的第一临时跳跃运动矢量pskip_mv_tmp0计算当前宏块的跳跃模式的第一判断标志pre_pskip_flag0和第一代价pre_pskip_cost0。其中,跳跃模式的第一判断标志pre_pskip_flag0包括两种:跳跃宏块类型和非跳跃宏块类型,例如,跳跃模式的第一判断标志pre_pskip_flag0为1时代表跳跃宏块类型,为0时代表非跳跃宏块类型。S200. Set the first temporary skip motion vector pskip_mv_tmp0 of the skip mode of the current macroblock, and use the skip mode cost calculation method to calculate the first temporary skip motion vector pskip_mv_tmp0 of the skip mode of the current macroblock according to the temporary predicted motion vector mvp_tmp and the first temporary skip motion vector pskip_mv_tmp0 of the skip mode. A judgment flag pre_pskip_flag0 and the first cost pre_pskip_cost0. The first judgment flag pre_pskip_flag0 of skip mode includes two types: skip macroblock type and non-skip macroblock type. For example, when the first judgment flag pre_pskip_flag0 of skip mode is 1, it represents the skip macroblock type, and when it is 0, it represents non-skip macroblock type. Macroblock type.
具体而言,针对常见的静止场景设置跳跃模式的第一临时跳跃运动矢量pskip_mv_tmp0为零矢量(0,0),作为第一候选跳跃运动矢量,利用原始x264编码模型中的跳跃模式代价计算方法函数根据临时预测运动矢量mvp_tmp和跳跃模式的第一临时跳跃运动矢量pskip_mv_tmp0,计算得到跳跃模式的第一判断标志pre_pskip_flag0和第一代价pre_pskip_cost0,其中,pre_pskip_flag0=x264_macroblock_probe_pskip()(参数包括mvp_tmp和pskip_mv_tmp0),在执行x264_macroblock_probe_pskip()函数过程中还获得了第一代价pre_pskip_cost0。其中,第一代价pre_pskip_cost0的具体计算过程如下:通过临时预测运动矢量mvp_tmp确定搜索窗的位置,接着在该搜索窗内根据跳跃模式的第一临时跳跃运动矢量pskip_mv_tmp0确定运动补偿块的位置,然后计算该运动补偿块与当前宏块之间的SAD(绝对误差和)。由于跳跃宏块的代价包含:SAD的编码代价,因此,在确定了跳跃宏块的SAD后即可以计算得到第一代价pre_pskip_cost0。例如,在一个实施例中,得到如下计算结果:pre_pskip_flag0=1,pre_pskip_cost0=1292。Specifically, the first temporary skip motion vector pskip_mv_tmp0 of skip mode is set to zero vector (0,0) for common static scenes, as the first candidate skip motion vector, and the skip mode cost calculation method function in the original x264 coding model is used. According to the temporary predicted motion vector mvp_tmp and the first temporary skip motion vector pskip_mv_tmp0 of the skip mode, the first judgment flag pre_pskip_flag0 and the first cost pre_pskip_cost0 of the skip mode are calculated, wherein pre_pskip_flag0=x264_macroblock_probe_pskip() (parameters include mvp_tmp and pskip_mv_tmp0), in The first cost pre_pskip_cost0 is also obtained during the execution of the x264_macroblock_probe_pskip() function. The specific calculation process of the first cost pre_pskip_cost0 is as follows: the position of the search window is determined by the temporary predicted motion vector mvp_tmp, then the position of the motion compensation block is determined in the search window according to the first temporary skip motion vector pskip_mv_tmp0 of the skip mode, and then the calculation The SAD (Sum of Absolute Error) between this motion compensation block and the current macroblock. Since the cost of skipping macroblocks includes: the coding cost of SAD, the first cost pre_pskip_cost0 can be obtained after determining the SAD of skipping macroblocks. For example, in one embodiment, the following calculation results are obtained: pre_pskip_flag0=1, pre_pskip_cost0=1292.
宏块类型预判断步骤二,包括步骤S300,由亚像素运动估计单元执行。The macroblock type pre-judgment step 2 includes step S300 and is performed by the sub-pixel motion estimation unit.
S300、暂时设定(即暂时假设)当前宏块的左边邻居宏块的类型为帧间宏块(即P块),利用跳跃运动矢量预测算法根据左边邻居宏块的亚像素运动矢量qmv_L、以及非左边邻居宏块的运动矢量(即最终运动矢量)计算当前宏块的跳跃模式的第二临时跳跃运动矢量pskip_mv_tmp1,利用跳跃模式代价计算方法根据临时预测运动矢量mvp_tmp和跳跃模式的第二临时跳跃运动矢量pskip_mv_tmp1计算当前宏块的跳跃模式的第二判断标志pre_pskip_flag1和第二代价pre_pskip_cost1。其中,跳跃模式的第二判断标志pre_pskip_flag1包括两种:跳跃宏块类型和非跳跃宏块类型,例如,跳跃模式的第二判断标志pre_pskip_flag1为1时代表跳跃宏块类型,为0时代表非跳跃宏块类型。例如,在一个实施例中,得到如下计算结果:pskip_mv_tmp1=[0,1],pre_pskip_flag1=1,pre_pskip_cost1=1302。S300. Temporarily set (ie temporarily assume) the type of the left neighbor macroblock of the current macroblock to be an inter-frame macroblock (ie, a P block), and use the skip motion vector prediction algorithm according to the sub-pixel motion vector qmv_L of the left neighbor macroblock, and The motion vector of the non-left neighbor macroblock (ie, the final motion vector) calculates the second temporary skip motion vector pskip_mv_tmp1 of the skip mode of the current macroblock, and uses the skip mode cost calculation method according to the temporary predicted motion vector mvp_tmp and the second temporary skip of the skip mode The motion vector pskip_mv_tmp1 calculates the second judgment flag pre_pskip_flag1 and the second cost pre_pskip_cost1 of the skip mode of the current macroblock. Among them, the second judgment flag pre_pskip_flag1 of skip mode includes two types: skip macroblock type and non-skip macroblock type. For example, when the second judgment flag pre_pskip_flag1 of skip mode is 1, it represents the skip macroblock type, and when it is 0, it represents non-skip macroblock type. Macroblock type. For example, in one embodiment, the following calculation results are obtained: pskip_mv_tmp1=[0,1], pre_pskip_flag1=1, pre_pskip_cost1=1302.
具体而言,如图6所示,此时,左边邻居宏块已经被亚像素运动估计单元处理完,即获得了左边邻居宏块的亚像素运动矢量qmv_L。暂时设定左边邻居宏块的类型是帧间宏块(即P块),利用跳跃运动矢量预测算法根据左边邻居宏块的亚像素运动矢量qmv_L、以及左上边邻居宏块、上边邻居宏块和右上边邻居宏块的运动矢量计算当前宏块的第二跳跃运动矢量pskip_mv_tmp1,作为第二候选跳跃运动矢量。跳跃运动矢量预测算法可以是H.264标准规定的预测算法,用于根据邻居宏块的运动矢量预测当前宏块的跳跃运动矢量,以计算当前宏块的类型标识和代价,例如,跳跃运动矢量预测算法具体为:跳跃运动矢量预测算法具体为:对左边邻居宏块的亚像素运动矢量qmv_L、以及左上边邻居宏块、上边邻居宏块的运动矢量按照从小到大的顺序进行排序,然后选择中间位置的运动矢量作为第二跳跃运动矢量pskip_mv_tmp1。然后,利用跳跃模式代价计算方法根据临时预测运动矢量mvp_tmp和跳跃模式的第二临时跳跃运动矢量pskip_mv_tmp1计算当前宏块的跳跃模式的第二判断标志pre_pskip_flag1和第二代价pre_pskip_cost1,例如,利用原始x264编码模型中的跳跃模式代价计算函数根据临时预测运动矢量mvp_tmp和跳跃模式的第二临时跳跃运动矢量pskip_mv_tmp1,计算得到跳跃模式的第二判断标志pre_pskip_flag1和第二代价pre_pskip_cost1,其中,pre_pskip_flag1=x264_macroblock_probe_pskip()(参数包括mvp_tmp和pskip_mv_tmp1),在执行x264_macroblock_probe_pskip()函数过程中还获得了第二代价pre_pskip_cost1。其中,第二代价pre_pskip_cost1的具体计算过程如下:通过临时预测运动矢量mvp_tmp确定搜索窗的位置,接着在该搜索窗内根据跳跃模式的第二临时跳跃运动矢量pskip_mv_tmp1确定运动补偿块的位置,然后计算该运动补偿块与当前宏块之间的SAD(绝对误差和)。由于跳跃宏块的代价包含SAD的编码代价,因此,在确定了跳跃宏块的SAD后即可以计算得到第二代价pre_pskip_cost1。Specifically, as shown in FIG. 6 , at this time, the left-neighbor macroblock has been processed by the sub-pixel motion estimation unit, that is, the sub-pixel motion vector qmv_L of the left-neighbor macroblock is obtained. Temporarily set the type of the left neighbor macroblock to be an inter-frame macroblock (ie, P block), and use the skip motion vector prediction algorithm according to the sub-pixel motion vector qmv_L of the left neighbor macroblock, and the upper left neighbor macroblock, upper neighbor macroblock and The motion vector of the upper right neighbor macroblock calculates the second skip motion vector pskip_mv_tmp1 of the current macroblock as the second candidate skip motion vector. The skip motion vector prediction algorithm may be a prediction algorithm specified in the H.264 standard, which is used to predict the skip motion vector of the current macroblock according to the motion vector of the neighbor macroblock, so as to calculate the type identifier and cost of the current macroblock, for example, the skip motion vector The prediction algorithm is specifically: the jump motion vector prediction algorithm is specifically: the sub-pixel motion vector qmv_L of the left neighbor macroblock, and the motion vectors of the upper left neighbor macroblock and the upper neighbor macroblock are sorted in descending order, and then select The motion vector at the intermediate position is used as the second skip motion vector pskip_mv_tmp1. Then, use the skip mode cost calculation method to calculate the second judgment flag pre_pskip_flag1 and the second cost pre_pskip_cost1 of the skip mode of the current macroblock according to the temporary predicted motion vector mvp_tmp and the second temporary skip motion vector pskip_mv_tmp1 of the skip mode, for example, use the original x264 encoding The skip mode cost calculation function in the model calculates the second judgment flag pre_pskip_flag1 and the second cost pre_pskip_cost1 of the skip mode according to the temporary predicted motion vector mvp_tmp and the second temporary skip motion vector pskip_mv_tmp1 of the skip mode, wherein, pre_pskip_flag1=x264_macroblock_probe_pskip()( The parameters include mvp_tmp and pskip_mv_tmp1), and the second cost pre_pskip_cost1 is also obtained during the execution of the x264_macroblock_probe_pskip() function. Among them, the specific calculation process of the second cost pre_pskip_cost1 is as follows: the position of the search window is determined by the temporary predicted motion vector mvp_tmp, and then the position of the motion compensation block is determined in the search window according to the second temporary skip motion vector pskip_mv_tmp1 of the skip mode, and then calculated The SAD (Sum of Absolute Error) between this motion compensation block and the current macroblock. Since the cost of skipping macroblocks includes the coding cost of SAD, the second cost pre_pskip_cost1 can be obtained after determining the SAD of skipping macroblocks.
宏块类型预判断步骤三,包括步骤S400,由亚像素运动估计单元执行。The macroblock type pre-judgment step 3 includes step S400 and is performed by the sub-pixel motion estimation unit.
S400、对当前宏块进行亚像素运动估计得到当前宏块的亚像素运动矢量qmv,利用跳跃模式代价计算方法根据临时预测运动矢量mvp_tmp和当前宏块的亚像素运动矢量qmv计算当前宏块的跳跃模式的第三判断标志common_pskip_flag和第三代价common_pskip_cost。S400, perform subpixel motion estimation on the current macroblock to obtain the subpixel motion vector qmv of the current macroblock, and calculate the jump of the current macroblock according to the temporary predicted motion vector mvp_tmp and the subpixel motion vector qmv of the current macroblock using the skip mode cost calculation method The third judgment flag of the mode is common_pskip_flag and the third cost is common_pskip_cost.
具体而言,亚像素运动估计单元对当前宏块执行常见的亚像素运动估计,可以获得当前宏块的亚像素运动矢量qmv,以及对应的帧间预测最优代价(可简称为帧间代价)i_cost_inter1,作为临时的帧间代价。接着,利用原始x264编码模型中的跳跃模式代价计算函数根据临时预测运动矢量mvp_tmp和亚像素运动矢量qmv,计算得到跳跃模式的第三判断标志common_pskip_flag和第三代价common_pskip_cost,其中,common_pskip_flag=x264_macroblock_probe_pskip()(参数包括mvp_tmp和qmv),在执行x264_macroblock_probe_pskip()函数过程中得到common_pskip_cost。Specifically, the sub-pixel motion estimation unit performs common sub-pixel motion estimation on the current macroblock, and can obtain the sub-pixel motion vector qmv of the current macroblock and the corresponding optimal cost of inter-frame prediction (may be referred to as inter-frame cost for short) i_cost_inter1, as a temporary inter-frame cost. Next, use the skip mode cost calculation function in the original x264 coding model to calculate the third judgment flag common_pskip_flag and the third cost common_pskip_cost of skip mode according to the temporary predicted motion vector mvp_tmp and the sub-pixel motion vector qmv, where common_pskip_flag=x264_macroblock_probe_pskip() (parameters include mvp_tmp and qmv), get common_pskip_cost during the execution of the x264_macroblock_probe_pskip() function.
另外,再计算帧间预测最优代价i_cost_inter1,其中,帧间预测最优代价i_cost_inter1的具体计算过程如下:通过临时预测运动矢量mvp_tmp确定搜索窗的位置,接着在该搜索窗内根据亚像素运动矢量qmv确定运动补偿块的位置,然后计算该运动补偿块与当前宏块之间的SAD(绝对误差和)。由于,帧间预测最优代价i_cost_inter1包含两部分:一部分是宏块的运动矢量(亚像素运动矢量qmv与临时预测运动矢量mvp_tmp之差)的编码代价(例如,根据亚像素运动矢量qmv与临时预测运动矢量mvp_tmp之差通过查表方式得到对应的代价),一部分是SAD的编码代价,因此,在确定了宏块的运动矢量代价和SAD后即可以计算得到临时帧间预测最优代价i_cost_inter1。例如,在一个实施例中,得到如下计算结果:qmv=[0,-1],i_cost_inter1=1290,common_pskip_flag=1,common_pskip_cost=1266。In addition, calculate the optimal cost of inter-frame prediction i_cost_inter1, wherein the specific calculation process of the optimal cost of inter-frame prediction i_cost_inter1 is as follows: determine the position of the search window through the temporary prediction motion vector mvp_tmp, and then use the sub-pixel motion vector in the search window according to the sub-pixel motion vector. qmv determines the position of the motion compensation block and then calculates the SAD (sum of absolute error) between the motion compensation block and the current macroblock. Because, the optimal cost of inter prediction i_cost_inter1 contains two parts: one part is the coding cost of the motion vector of the macroblock (the difference between the sub-pixel motion vector qmv and the temporary prediction motion vector mvp_tmp) (for example, according to the sub-pixel motion vector qmv and the temporary prediction The difference between the motion vectors mvp_tmp is obtained by looking up the table to obtain the corresponding cost), part of which is the coding cost of SAD. Therefore, after determining the motion vector cost and SAD of the macroblock, the optimal cost i_cost_inter1 for temporary inter-frame prediction can be calculated. For example, in one embodiment, the following calculation results are obtained: qmv=[0,-1], i_cost_inter1=1290, common_pskip_flag=1, common_pskip_cost=1266.
S500、计算当前宏块的帧内预测代价。S500. Calculate the intra prediction cost of the current macroblock.
对当前宏块进行常见的帧内预测(Intra),然后再dct变换和量化,并计算帧内预测的最优代价值i_cost_intra。本步骤S500可以采用H.264标准规定的方法。例如,在一个实施例中,得到如下计算结果:i_cost_intra=1336。Perform common intra-frame prediction (Intra) on the current macroblock, then dct transform and quantize, and calculate the optimal cost value i_cost_intra for intra-frame prediction. This step S500 may adopt the method specified by the H.264 standard. For example, in one embodiment, the following calculation result is obtained: i_cost_intra=1336.
宏块类型最终判断步骤,包括步骤S600至S900,由宏块类型判断单元执行。The final determination step of the macroblock type, including steps S600 to S900, is performed by the macroblock type determination unit.
S600、在左边邻居宏块的类型确定后,利用运动矢量预测算法根据左边邻居宏块、非左边邻居宏块的运动矢量计算当前宏块的最终预测运动矢量mvp_real,并利用跳跃运动矢量预测算法根据左边邻居宏块、非左边邻居宏块的运动矢量计算当前宏块的跳跃模式的最终跳跃运动矢量pskip_mv_real。S600, after the type of the left neighbor macroblock is determined, use the motion vector prediction algorithm to calculate the final predicted motion vector mvp_real of the current macroblock according to the motion vectors of the left neighbor macroblock and the non-left neighbor macroblock, and utilize the skip motion vector prediction algorithm according to The motion vectors of the left neighbor macroblock and the non-left neighbor macroblock calculate the final skip motion vector pskip_mv_real of the skip mode of the current macroblock.
宏块类型判断单元在处理完左边邻居宏块后,获得了左边邻居宏块的最终宏块类型和最终运动矢量,然后宏块类型判断单元处理当前宏块。利用运动矢量预测算法根据左边邻居宏块、左上边邻居宏块、上边邻居宏块和右上边邻居宏块的最终运动矢量计算当前宏块的最终预测运动矢量mvp_real,利用跳跃运动矢量预测算法根据左边邻居宏块、左上边邻居宏块、上边邻居宏块和右上边邻居宏块的最终运动矢量计算当前宏块的跳跃模式的最终跳跃运动矢量pskip_mv_real。例如,在一个实施例中,得到如下计算结果:mvp_real=[0,0],pskip_mv_real=[0,0]。After processing the left neighbor macroblock, the macroblock type determination unit obtains the final macroblock type and final motion vector of the left neighbor macroblock, and then the macroblock type determination unit processes the current macroblock. Use the motion vector prediction algorithm to calculate the final predicted motion vector mvp_real of the current macroblock according to the final motion vectors of the left neighbor macroblock, the upper left neighbor macroblock, the upper neighbor macroblock and the upper right neighbor macroblock, and use the skip motion vector prediction algorithm to calculate the final predicted motion vector mvp_real of the current macroblock according to the left The final motion vectors of the neighbor macroblock, the upper left neighbor macroblock, the upper neighbor macroblock, and the upper right neighbor macroblock calculate the final skip motion vector pskip_mv_real for the skip mode of the current macroblock. For example, in one embodiment, the following calculation results are obtained: mvp_real=[0,0], pskip_mv_real=[0,0].
S700、利用帧间预测块代价算法根据最终预测运动矢量mvp_real与临时预测运动矢量mvp_tmp之差矫正临时帧间预测代价i_cost_inter1,得到当前宏块的最终帧间预测代价i_cost_inter。S700. Use an inter-frame prediction block cost algorithm to correct the temporary inter-frame prediction cost i_cost_inter1 according to the difference between the final predicted motion vector mvp_real and the temporary predicted motion vector mvp_tmp, to obtain the final inter-frame prediction cost i_cost_inter of the current macroblock.
具体而言,由前面介绍可知,宏块的最终帧间预测代价i_cost_inter包括两部分,其中第一部分是宏块的运动矢量(亚像素运动矢量qmv与最终预测运动矢量mvp_real之差)的编码代价(例如,根据亚像素运动矢量qmv与临时预测运动矢量mvp_tmp之差通过查表方式得到对应的代价),第二部分是SAD的编码代价(与步骤S4中的SAD相同),因此,可以在临时帧间预测最优代价i_cost_inter1的基础上通过更新第一部分编码代价来获得最终帧间预测代价i_cost_inter,其中,i_cost_inter=i_cost_inter1+(mvp_real-mvp_tmp)的编码代价。例如,在一个实施例中,得到如下计算结果:mvp_real=mvp_tmp,因此i_cost_inter等于i_cost_inter1。Specifically, as can be seen from the previous introduction, the final inter prediction cost i_cost_inter of a macroblock includes two parts, the first part is the encoding cost of the macroblock’s motion vector (the difference between the sub-pixel motion vector qmv and the final predicted motion vector mvp_real) ( For example, according to the difference between the sub-pixel motion vector qmv and the temporary prediction motion vector mvp_tmp, the corresponding cost is obtained by looking up the table), the second part is the coding cost of SAD (same as SAD in step S4), therefore, it can be used in the temporary frame The final inter-frame prediction cost i_cost_inter is obtained by updating the first part of the coding cost based on the optimal inter-prediction cost i_cost_inter1, where i_cost_inter=i_cost_inter1+(mvp_real-mvp_tmp) coding cost. For example, in one embodiment, the following calculation result is obtained: mvp_real=mvp_tmp, so i_cost_inter is equal to i_cost_inter1.
S800、若跳跃模式的第一判断标志pre_pskip_flag0为跳跃类型(即pre_pskip_flag0=1)、跳跃模式的第一临时跳跃运动矢量pskip_mv_tmp0等于跳跃模式的最终跳跃运动矢量pskip_mv_real(即pskip_mv_tmp0=pskip_mv_real)且第一代价pre_pskip_cost0与帧内预测代价i_cost_intra之差不大于第一阈值PRE_PSKIP_TH(即(pre_pskip_cost0-i_cost_intra)<=PRE_PSKIP_TH),或者,S800. If the first judgment flag pre_pskip_flag0 of the skip mode is the skip type (ie pre_pskip_flag0=1), the first temporary skip motion vector pskip_mv_tmp0 of the skip mode is equal to the final skip motion vector pskip_mv_real of the skip mode (ie pskip_mv_tmp0=pskip_mv_real) and the first cost The difference between pre_pskip_cost0 and the intra prediction cost i_cost_intra is not greater than the first threshold PRE_PSKIP_TH (ie (pre_pskip_cost0-i_cost_intra)<=PRE_PSKIP_TH), or,
跳跃模式的第二判断标志pre_pskip_flag1为跳跃类型(即pre_pskip_flag1=1)、跳跃模式的第二临时跳跃运动矢量pskip_mv_tmp1等于跳跃模式的最终跳跃运动矢量pskip_mv_real(即pskip_mv_tmp1=pskip_mv_real)且第二代价pre_pskip_cost1与帧内预测代价i_cost_intra之差不大于第一阈值PRE_PSKIP_TH(即(pre_pskip_cost1-i_cost_intra)<=PRE_PSKIP_TH),或者,The second judgment flag pre_pskip_flag1 of the skip mode is the skip type (ie pre_pskip_flag1=1), the second temporary skip motion vector pskip_mv_tmp1 of the skip mode is equal to the final skip motion vector pskip_mv_real of the skip mode (ie pskip_mv_tmp1=pskip_mv_real), and the second cost pre_pskip_cost1 and frame The difference between the intra-prediction costs i_cost_intra is not greater than the first threshold PRE_PSKIP_TH (ie (pre_pskip_cost1-i_cost_intra)<=PRE_PSKIP_TH), or,
跳跃模式的第三判断标志common_pskip_flag为跳跃类型(即common_pskip_flag=1)、当前宏块的亚像素矢量qmv等于跳跃模式的最终跳跃运动矢量pskip_mv_real(即qmv=pskip_mv_real)且第三代价common_pskip_cost与帧内预测代价i_cost_intra之差不大于第二阈值COMMON_PSKIP_TH(即(common_pskip_cost-i_cost_intra)<=COMMON_PSKIP_TH),The third judgment flag common_pskip_flag of the skip mode is the skip type (ie common_pskip_flag=1), the sub-pixel vector qmv of the current macroblock is equal to the final skip motion vector pskip_mv_real (ie qmv=pskip_mv_real) of the skip mode, and the third cost common_pskip_cost and intra prediction The difference between the costs i_cost_intra is not greater than the second threshold COMMON_PSKIP_TH (ie (common_pskip_cost-i_cost_intra)<=COMMON_PSKIP_TH),
则将当前宏块判定为跳跃宏块,否则进入步骤S900做进一步判断。其中,PRE_PSKIP_TH=0,COMMON_PSKIP_TH=0。其中,第一阈值PRE_PSKIP_TH和第二阈值COMMON_PSKIP_TH均可以是10位有符号数所能表示的数值范围(-29~29-1)内的任一数值,可以根据实际编码场景和需要设置为合适的数值。Then the current macroblock is determined as a skip macroblock, otherwise it goes to step S900 for further determination. Among them, PRE_PSKIP_TH=0, COMMON_PSKIP_TH=0. Wherein, the first threshold PRE_PSKIP_TH and the second threshold COMMON_PSKIP_TH can be any value within the range of values (-2 9 to 2 9 -1) that can be represented by 10-bit signed numbers, and can be set to suitable value.
在前述实施例中,因为pre_pskip_flag0=1,pskip_mv_tmp0=pskip_mv_real,且(pre_pskip_cost-i_cost_intra)<PRE_PSKIP_TH,所以判断当前宏块为跳跃宏块块。In the foregoing embodiment, since pre_pskip_flag0=1, pskip_mv_tmp0=pskip_mv_real, and (pre_pskip_cost-i_cost_intra)<PRE_PSKIP_TH, it is determined that the current macroblock is a skip macroblock.
在一个实施例中,可以首先根据跳跃模式的第一判断标志pre_pskip_flag0、跳跃模式的第一临时跳跃运动矢量pskip_mv_tmp0和第一代价pre_pskip_cost0判断跳跃宏块的类型,若没有得出当前宏块类型为跳跃宏块的结果,则继续根据跳跃模式的第二判断标志pre_pskip_flag1、跳跃模式的第二临时跳跃运动矢量pskip_mv_tmp1和第二代价pre_pskip_cost1继续判断跳跃宏块的类型,若仍未得出当前宏块类型为跳跃宏块的结果,继续根据跳跃模式的第三判断标志common_pskip_flag、当前宏块的亚像素矢量qmv和第三代价common_pskip_cost判断跳跃宏块的类型。In one embodiment, the type of the skip macroblock may be determined according to the first judgment flag pre_pskip_flag0 of the skip mode, the first temporary skip motion vector pskip_mv_tmp0 of the skip mode, and the first cost pre_pskip_cost0. If it is not determined that the current macroblock type is skip As a result of the macroblock, continue to judge the type of the skip macroblock according to the second judgment flag pre_pskip_flag1 of the skip mode, the second temporary skip motion vector pskip_mv_tmp1 of the skip mode, and the second cost pre_pskip_cost1, if the current macroblock type is still not obtained. As a result of skipping the macroblock, the type of skipping macroblock is judged according to the third judgment flag common_pskip_flag of the skip mode, the sub-pixel vector qmv of the current macroblock, and the third cost common_pskip_cost.
S900、判断当前宏块的帧内预测代价i_cost_intra与最终帧间预测代价i_cost_inter,若i_cost_intra<i_cost_inter,那么将当前宏块判定为帧内预测块,否则判定为帧间预测块。S900: Determine the intra prediction cost i_cost_intra of the current macroblock and the final inter prediction cost i_cost_inter, if i_cost_intra<i_cost_inter, then determine the current macroblock as an intra prediction block, otherwise determine as an inter prediction block.
本发明还提供了一种视频帧待编码宏块类型的判定装置,包括:The present invention also provides a device for determining the type of macroblocks to be encoded in a video frame, including:
第一处理单元,用于利用运动矢量预测算法根据当前宏块前面的非左边邻居宏块的运动矢量计算所述当前宏块的临时预测运动矢量;a first processing unit, used for calculating the temporary predicted motion vector of the current macroblock according to the motion vector of the non-left neighbor macroblock in front of the current macroblock using a motion vector prediction algorithm;
第二处理单元,用于设置所述当前宏块的跳跃模式的第一临时跳跃运动矢量,利用跳跃模式代价计算方法根据所述临时预测运动矢量和跳跃模式的第一临时跳跃运动矢量计算所述当前宏块的跳跃模式的第一判断标志和第一代价;The second processing unit is configured to set the first temporary skip motion vector of the skip mode of the current macroblock, and use the skip mode cost calculation method to calculate the temporary predicted motion vector and the first temporary skip motion vector of the skip mode The first judgment flag and the first cost of the skip mode of the current macroblock;
第三处理单元,用于暂时设定所述当前宏块的左边邻居宏块的类型为帧间宏块,利用跳跃运动矢量预测算法根据所述左边邻居宏块的亚像素运动矢量、以及所述非左边邻居宏块的运动矢量计算所述当前宏块的跳跃模式的第二临时跳跃运动矢量,利用所述跳跃模式代价计算方法根据所述临时预测运动矢量和跳跃模式的第二临时跳跃运动矢量计算所述当前宏块的跳跃模式的第二判断标志和第二代价;a third processing unit, configured to temporarily set the type of the left neighbor macroblock of the current macroblock to be an inter macroblock, and use a skip motion vector prediction algorithm according to the sub-pixel motion vector of the left neighbor macroblock and the The motion vector of the non-left neighbor macroblock calculates the second temporary skip motion vector of the skip mode of the current macroblock, and uses the skip mode cost calculation method according to the temporary predicted motion vector and the second temporary skip motion vector of the skip mode Calculate the second judgment flag and the second cost of the skip mode of the current macroblock;
第四处理单元,用于对所述当前宏块进行亚像素运动估计得到所述当前宏块的亚像素运动矢量,利用所述跳跃模式代价计算方法根据所述临时预测运动矢量和所述当前宏块的亚像素运动矢量计算所述当前宏块的跳跃模式的第三判断标志和第三代价;a fourth processing unit, configured to perform sub-pixel motion estimation on the current macroblock to obtain a sub-pixel motion vector of the current macroblock, and use the skip mode cost calculation method according to the temporary predicted motion vector and the current macroblock The sub-pixel motion vector of the block calculates the third judgment flag and the third cost of the skip mode of the current macroblock;
第五处理单元,用于计算所述当前宏块的帧内预测代价;a fifth processing unit, configured to calculate the intra prediction cost of the current macroblock;
第六处理单元,用于在所述左边邻居宏块的类型确定后,利用所述跳跃运动矢量预测算法根据所述左边邻居宏块、非左边邻居宏块的运动矢量计算所述当前宏块的跳跃模式的最终跳跃运动矢量;The sixth processing unit is configured to use the skip motion vector prediction algorithm to calculate the current macroblock according to the motion vectors of the left neighbor macroblock and the non-left neighbor macroblock after the type of the left neighbor macroblock is determined. the final jump motion vector for the jump mode;
第七处理单元,用于若所述跳跃模式的第一判断标志为跳跃类型、跳跃模式的第一临时跳跃运动矢量等于跳跃模式的最终跳跃运动矢量且第一代价与所述帧内预测代价之差不大于第一阈值,或者,A seventh processing unit, used for if the first judgment flag of the skip mode is a skip type, the first temporary skip motion vector of the skip mode is equal to the final skip motion vector of the skip mode, and the first cost and the intra prediction cost are combined difference is not greater than the first threshold, or,
所述跳跃模式的第二判断标志为跳跃类型、跳跃模式的第二临时跳跃运动矢量等于跳跃模式的最终跳跃运动矢量且第二代价与所述帧内预测代价之差不大于所述第一阈值,或者,The second judgment flag of the skip mode is the skip type, the second temporary skip motion vector of the skip mode is equal to the final skip motion vector of the skip mode, and the difference between the second cost and the intra prediction cost is not greater than the first threshold ,or,
所述跳跃模式的第三判断标志为跳跃类型、所述当前宏块的亚像素运动矢量等于跳跃模式的最终跳跃运动矢量且第三代价与所述帧内预测代价之差不大于第二阈值,The third judgment flag of the skip mode is the skip type, the sub-pixel motion vector of the current macroblock is equal to the final skip motion vector of the skip mode, and the difference between the third cost and the intra prediction cost is not greater than the second threshold,
则将所述当前宏块判定为跳跃宏块。Then, the current macroblock is determined as a skip macroblock.
需要说明的是,本发明中采用步骤编号(字母或数字编号)来指代某些具体的方法步骤,仅仅是出于描述方便和简洁的目的,而绝不是用字母或数字来限制这些方法步骤的顺序。本领域的技术人员能够明了,相关方法步骤的顺序,应由技术本身决定,不应因步骤编号的存在而被不适当地限制。It should be noted that, in the present invention, step numbers (letters or numbers) are used to refer to some specific method steps, which are only for the purpose of convenience and brevity of description, and are not intended to limit these method steps with letters or numbers. Order. Those skilled in the art can understand that the sequence of related method steps should be determined by the technology itself, and should not be unduly limited due to the existence of step numbers.
本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。Those skilled in the art can understand that, under the premise of no conflict, the above preferred solutions can be freely combined and superimposed.
应当理解,上述的实施方式仅是示例性的,而非限制性的,在不偏离本发明的基本原理的情况下,本领域的技术人员可以针对上述细节做出的各种明显的或等同的修改或替换,都将包含于本发明的权利要求范围内。It should be understood that the above-mentioned embodiments are only exemplary rather than restrictive, and those skilled in the art can make various obvious or equivalent to the above-mentioned details without departing from the basic principles of the present invention. Modifications or substitutions will be included within the scope of the claims of the present invention.
Claims (11)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010837815.0A CN112437305B (en) | 2020-08-19 | 2020-08-19 | Method and device for judging macro block type, image processing chip and electronic equipment |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010837815.0A CN112437305B (en) | 2020-08-19 | 2020-08-19 | Method and device for judging macro block type, image processing chip and electronic equipment |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN112437305A CN112437305A (en) | 2021-03-02 |
| CN112437305B true CN112437305B (en) | 2022-07-22 |
Family
ID=74689586
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010837815.0A Active CN112437305B (en) | 2020-08-19 | 2020-08-19 | Method and device for judging macro block type, image processing chip and electronic equipment |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN112437305B (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025103602A1 (en) * | 2023-11-17 | 2025-05-22 | Huawei Technologies Co., Ltd. | Method and apparatus for video compression using skip modes |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100807330B1 (en) * | 2006-09-07 | 2008-02-28 | 엠엠비 주식회사 | How to skip intra macroblock mode for H.264 / ACC encoder |
| CN101170688A (en) * | 2007-11-26 | 2008-04-30 | 电子科技大学 | A Fast Selection Method of Macroblock Mode |
| EP1993292A1 (en) * | 2006-03-09 | 2008-11-19 | NEC Corporation | Dynamic image encoding method and device and program using the same |
| WO2015188754A1 (en) * | 2014-06-10 | 2015-12-17 | Tencent Technology (Shenzhen) Company Limited | Video coding device, method, and apparatus and inter-frame mode selection method and apparatus therefor |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8121194B2 (en) * | 2005-12-16 | 2012-02-21 | Texas Instruments Incorporated | Fast macroblock encoding with the early qualification of skip prediction mode using its temporal coherence |
| JP5798467B2 (en) * | 2011-12-07 | 2015-10-21 | ルネサスエレクトロニクス株式会社 | Coding type determination device, moving image coding device, coding type determination method, moving image coding method, and program |
-
2020
- 2020-08-19 CN CN202010837815.0A patent/CN112437305B/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1993292A1 (en) * | 2006-03-09 | 2008-11-19 | NEC Corporation | Dynamic image encoding method and device and program using the same |
| KR100807330B1 (en) * | 2006-09-07 | 2008-02-28 | 엠엠비 주식회사 | How to skip intra macroblock mode for H.264 / ACC encoder |
| CN101170688A (en) * | 2007-11-26 | 2008-04-30 | 电子科技大学 | A Fast Selection Method of Macroblock Mode |
| WO2015188754A1 (en) * | 2014-06-10 | 2015-12-17 | Tencent Technology (Shenzhen) Company Limited | Video coding device, method, and apparatus and inter-frame mode selection method and apparatus therefor |
Also Published As
| Publication number | Publication date |
|---|---|
| CN112437305A (en) | 2021-03-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI741589B (en) | Method and apparatus of luma most probable mode list derivation for video coding | |
| US8094714B2 (en) | Speculative start point selection for motion estimation iterative search | |
| CN101415122B (en) | Forecasting encoding/decoding method and apparatus between frames | |
| CN107087200B (en) | Skip coding mode advanced decision method for high-efficiency video coding standard | |
| US20100246675A1 (en) | Method and apparatus for intra-prediction in a video encoder | |
| US8144766B2 (en) | Simple next search position selection for motion estimation iterative search | |
| EP2283658A2 (en) | Apparatus and method for computationally efficient intra prediction in a video coder | |
| CN102186081B (en) | H.264 intra-frame mode selection method based on gradient vector | |
| TW202046728A (en) | Method and apparatus of simplified affine subblock process for video coding system | |
| WO2020263472A1 (en) | Method and apparatus for motion vector refinement | |
| TWI752488B (en) | Method and apparatus for video coding | |
| CN101867818B (en) | Selection method and device of macroblock mode | |
| CN112437305B (en) | Method and device for judging macro block type, image processing chip and electronic equipment | |
| CN116569549A (en) | Inter prediction method, encoder, decoder and storage medium | |
| CN102196257B (en) | Method and device for pre-judging macro block coding mode | |
| TWI870841B (en) | Method and apparatus for video coding | |
| CN108696750A (en) | A kind of decision method and device of prediction mode | |
| KR20070061214A (en) | Low cost motion estimation device and motion estimation method | |
| TW202505903A (en) | Method and apparatus for video coding | |
| KR20100007647A (en) | Fast intra mode decision method in h.264 encoding | |
| Lixin et al. | A Fast Block-Matching Motion Estimation Algorithm For H. 264/AVC | |
| HK1232359A1 (en) | Image encoding device and method, image decoding device and method and storage medium | |
| HK1234556A (en) | Image encoding device and method, image decoding device and method and storage medium | |
| HK1234556A1 (en) | Image encoding device and method, image decoding device and method and storage medium | |
| HK1234554A1 (en) | Image encoding device and method, image decoding device and method and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| CB02 | Change of applicant information | ||
| CB02 | Change of applicant information |
Address after: 519075 No. 333, Kexing Road, Xiangzhou District, Zhuhai City, Guangdong Province Applicant after: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. Address before: Floor 1-107, building 904, ShiJiHua Road, Zhuhai City, Guangdong Province Applicant before: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. |
|
| GR01 | Patent grant | ||
| GR01 | Patent grant |