[x265] [PATCH] doc: add document that contains the reason for two versions of sao primitives
Divya Manivannan
divya at multicorewareinc.com
Fri Apr 24 11:13:41 CEST 2015
# HG changeset patch
# User Divya Manivannan <divya at multicorewareinc.com>
# Date 1429865520 -19800
# Fri Apr 24 14:22:00 2015 +0530
# Node ID 30217fc96291f5c3f713357a04e0759b2a44e287
# Parent cfc321e81396f4ad93b1bb92f786d5d233acadf8
doc: add document that contains the reason for two versions of sao primitives
diff -r cfc321e81396 -r 30217fc96291 doc/sao/sao.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/sao/sao.txt Fri Apr 24 14:22:00 2015 +0530
@@ -0,0 +1,31 @@
+***
+SAO
+***
+
+x265 has an option: '--sao' that toggle sample adaptive offset loop filtering.
+The following primitives in sao are changed in order to increase the performance
+by avx2 optimization:
+
+SAO_E0_1
+========
+
+This primitive is split into two parts: saoCuOrgE1 and saoCuOrgE1_2Rows. In avx2,
+32 pixels in a register can be handled, but in the case of width=16, 16 pixels need
+to be restored. So, in order to avoid this, two rows with 16 pixels in each can
+be handled at a time. There may be a case with odd height so saoCuOrgE1 is used
+to process single row separately.
+
+SAO_E0_2
+========
+
+This primitive is split into two parts: saoCuOrgE2[0] and saoCuOrgE2[1]. saoCuOrgE2[0]
+is used for width<=16 and saoCuOrgE2[1] is used for width > 16.
+
+SAO_E0_3
+========
+
+This primitive is split into two parts: saoCuOrgE3[0] and saoCuOrgE3[1]. Here two
+rows cannot be handled simultaneously since it requires a pixel from the previous
+row. So, saoCuOrgE3[0] is used for width<=16 and saoCuOrgE3[1] is used for width > 16.
+
+
More information about the x265-devel
mailing list