Diary Of An x264 Developer

10/22/2008 (12:41 pm)

In the pipeline, part 2

From the local commit git log:

commit dbc5ef040b1f8a83e7491dc8a2fc8943b1e20c07
Author: Loren Merritt Date: Thu Oct 30 00:47:09 2008 -0700

Fix bug in hadamard_ac SSE assembly
Some extreme inputs could cause overflows.

commit a0a1bfac7f4a09159f6ef2bf13fb69548b6c5a02
Author: Jason Garrett-Glaser
Date: Tue Oct 28 20:35:15 2008 -0700

Full sub8x8 RD mode decision
Small speed penalty with p4x4 enabled, but significant quality gain at subme >= 6
As before, gain is proportional to the amount of p4x4 actually useful in a given input at the given bitrate.

commit aa40e41abae051191117ae670cadd9cd50f66b6f
Author: Jason Garrett-Glaser
Date: Sat Oct 25 01:50:08 2008 -0700

Optimize CABAC bit cost calculation
Speed up cabac mvd and add new precalculated transition/entropy table.
Add “noup” function for cabac operations to not update the state table when it isn’t necessary.
1-3% faster macroblock_size_cabac.
Cosmetics

commit d7df1a477b5e0e851d206e8c25da0b275ae0b7cc
Author: Anders Ossowicki
Date: Thu Oct 23 22:36:11 2008 -0700

Replace “git-command” with “git command” in version.sh for git 1.6 support

commit 990274cd5fd276bb26ac0fa13fc9bc1cbcf7acbc
Author: Loren Merritt Date: Thu Oct 23 13:45:04 2008 -0700

Add assembly version of CAVLC 8x8dct interleave
Faster CAVLC encoding and RDO with 8x8dct

commit 86a0fe50c6e369d6dacac5b992febb4bd09de85d
Author: Alexander Strange
Date: Wed Oct 22 15:55:30 2008 -0700

Add support for psy-rd/trellis to encoder_reconfig

commit 4c78f091e625e87b8f82c567af81969c2fd3e671
Author: Alexander Strange
Date: Wed Oct 22 15:00:43 2008 -0700

Fix Darwin speed regression

commit 8ca555ef691e20d4eb429b45e178f4c0108b607d
Author: Gabriel Bouvigne
Date: Wed Oct 22 14:48:47 2008 -0700

Further improve prediction of bitrate and VBV in threaded mode

commit bd280019556c832014202f57fcd3d868e51547ae
Author: Jason Garrett-Glaser
Date: Wed Oct 22 13:37:09 2008 -0700

Sub-8×8 Qpel-RD in P-frames
Improves quality when using p8x4/p4x8/p4x4 subpartitions
Benefit is proportional to how many sub-8×8 partitions are used; helps most at high bitrates and low resolutions.

commit d0add77f5f084253202747266f85daa65f7fc9cc
Author: Jason Garrett-Glaser
Date: Wed Oct 22 02:20:06 2008 -0700

Faster qpel-RD
3-4% faster qpel-RD; avoid re-checking bmv/pmv during the hex search.

commit f451563f93fad8972c0e9b788b30799e777e913a
Author: Jason Garrett-Glaser
Date: Wed Oct 22 00:37:00 2008 -0700

Some minor optimizations in RD refinement
Don’t write b subpartition in CABAC RDO
Calculate nonzero count in i4x4 CAVLC RDO

commit 84ede33bec64332cc4bc5da1106c53f3cffa919b
Author: Jason Garrett-Glaser
Date: Tue Oct 21 20:17:18 2008 -0700

Faster deblocking when p4x4 isn’t used
Most of the MV checks can be skipped, resulting in faster strength calculation

commit ce0b11099e5fa920b8d1bc39389ae9373f921358
Author: Jason Garrett-Glaser
Date: Tue Oct 21 19:38:21 2008 -0700

Print profile and level information upon starting encode
Previously level was only printed as part of autodetect, and only in verbose mode.

commit 296b39dd863ea90a12d8a52848d1135e387a28f3
Author: Jason Garrett-Glaser
Date: Tue Oct 21 17:10:46 2008 -0700

Fix possible crash in trellis at very low QPs

commit f5da8110606c1bdb8f3a194f11574db28855415e
Author: Jason Garrett-Glaser
Date: Tue Oct 21 14:59:07 2008 -0700

Add assembly versions of decimate_score
3-7x faster decimation, 1-3% faster overall

commit 6d9ef8ad39b0bfa5df0c1305e91ae932aad4997e
Author: Jason Garrett-Glaser
Date: Sat Oct 18 03:40:59 2008 -0700

Fix typo in subme8/9 lossless qpel-RD
Slightly improves compression.

commit 79194caffdc216e338674d88e50adca2f4ea8fa2
Author: Jason Garrett-Glaser
Date: Thu Oct 16 03:17:53 2008 -0700

Extend trellis to support luma/chroma DC and chroma AC
Small speed loss in trellis 1, slightly larger in trellis 2, but significant quality improvement.

Also, cake is still planned.

5 Responses to “In the pipeline, part 2”

  1. fate Says:

    Well, sounds very promising (expecially the cake) ;)
    Can’t wait for the rev1000 build. ^^

  2. John Says:

    Hmm. I don’t get it, it seems like you’re holding improvements just because this “r1000″ thing. It better be big, yet I don’t see it since policy seems to be “keep unrelated commits separate” and I can’t relate cake with a significant feature.

    Maybe the cake *WAS* a lie after all?

    Anyway here’s hoping for a prompt release of r1000, if for the pipeline flushing that will follow.

  3. Avenger007 Says:

    I’m guessing by “cake” you mean x264′s birthday.
    But r1 was on Thu Jun 3 19:29:33 2004.
    So then x264 is going to change it’s version numbering system, right?

    How soon is this planned (days, weeks, months,…)?

    WordPress 2.6.3 is available! Please notify the site administrator.

  4. Dark Shikari Says:

    @John:

    I’m holding improvements, but this is how things always work: I rarely commit individual changes, but rather keep a local git stash of to-be-committed changes that I push all at once. This has various development benefits, among them that its easier to spot bugs when I spend a few days *using* all of my changes before actually pushing them.

    Its just being held a little longer than usual here.

    By the way, I’ll be updating this post until the actual commit, adding more and more changes.

    @Avenger:

    No, no, I mean actual cake.

  5. Avenger007 Says:

    So no new version numbering system, that’s too bad. :(
    Still, you haven’t answered how soon this is planned (days, weeks, months,…)?

Leave a Reply