[x264-devel] commit: Fix intra refresh with subme < 6 (Jason Garrett-Glaser )

git version control git at videolan.org
Thu Jan 21 05:44:11 CET 2010


x264 | branch: master | Jason Garrett-Glaser <darkshikari at gmail.com> | Sun Jan 17 19:11:05 2010 -0500| [6cb6086269d789a184cb6262fedb8205d821a44f] | committer: Jason Garrett-Glaser 

Fix intra refresh with subme < 6
Also improve the quality of intra masking.

> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=6cb6086269d789a184cb6262fedb8205d821a44f
---

 encoder/analyse.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/encoder/analyse.c b/encoder/analyse.c
index 2e78750..f1a0021 100644
--- a/encoder/analyse.c
+++ b/encoder/analyse.c
@@ -2592,10 +2592,14 @@ intra_analysis:
             COPY2_IF_LT( i_cost, analysis.i_satd_i4x4, i_type, I_4x4 );
             COPY2_IF_LT( i_cost, analysis.i_satd_pcm, i_type, I_PCM );
 
+            h->mb.i_type = i_type;
+
             if( analysis.b_force_intra && !IS_INTRA(i_type) )
             {
                 /* Intra masking: copy fdec to fenc and re-encode the block as intra in order to make it appear as if
                  * it was an inter block. */
+                x264_analyse_update_cache( h, &analysis );
+                x264_macroblock_encode( h );
                 h->mc.copy[PIXEL_16x16]( h->mb.pic.p_fenc[0], FENC_STRIDE, h->mb.pic.p_fdec[0], FDEC_STRIDE, 16 );
                 h->mc.copy[PIXEL_8x8]  ( h->mb.pic.p_fenc[1], FENC_STRIDE, h->mb.pic.p_fdec[1], FDEC_STRIDE, 8 );
                 h->mc.copy[PIXEL_8x8]  ( h->mb.pic.p_fenc[2], FENC_STRIDE, h->mb.pic.p_fdec[2], FDEC_STRIDE, 8 );
@@ -2603,8 +2607,6 @@ intra_analysis:
                 goto intra_analysis;
             }
 
-            h->mb.i_type = i_type;
-
             if( analysis.i_mbrd >= 2 && h->mb.i_type != I_PCM )
             {
                 if( IS_INTRA( h->mb.i_type ) )



More information about the x264-devel mailing list