[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