MA2x5x SIPP User Manual V1.32 / July 2018 MDK
User Manual:
Open the PDF directly: View PDF .
Page Count: 175 [warning: Documents this large are best viewed by clicking the View PDF Link!]
- 1 General Overview
- 2 Introduction to the SIPP framework
- 3 Using the SIPP framework
- 4 Memory usage and SIPP
- 5 Pipeline performance measurement and optimization
- 6 MA2150 and MA2100 SIPP comparison
- 7 MA2x5x SIPP API
- 7.1 API function calls
- 7.1.1 sippPlatformInit()
- 7.1.2 sippInitialize()
- 7.1.3 sippCreatePipeline()
- 7.1.4 sippCreateFilter()
- 7.1.5 sippLinkFilter()
- 7.1.6 sippLinkFilterSetOBuf()
- 7.1.7 sippFinalizePipeline()
- 7.1.8 sippProcessFrame()
- 7.1.9 sippProcessFrameNB()
- 7.1.10 sippReschedule()
- 7.1.11 sippAllocCmxMemRegion()
- 7.1.12 SippChooseMemPool
- 7.1.13 sippRegisterEventCallback()
- 7.1.14 sippDeletePipeline()
- 7.1.15 sippFilterAddOBuf()
- 7.1.16 sippFilterSetBufBitsPP
- 7.1.17 sippPipeSetLinesPerIter
- 7.1.18 sippInitSchedPoolArb()
- 7.1.19 sippRdFileU8()
- 7.1.20 sippWrFileU8()
- 7.1.21 sippRdFileU8toF16()
- 7.1.22 sippWrFileF16toU8
- 7.1.23 sippDbgCompareU16
- 7.1.24 sippDbgCompareU32
- 7.1.25 sippErrorSetFatal
- 7.1.26 sippGetLastError
- 7.1.27 sippGetErrorHistory
- 7.1.28 sippPipeGetErrorStatus
- 7.1.29 sippPipeSetNumLinesPerBuf
- 7.2 Callback event list
- 7.3 Pipeline Flags
- 7.4 Error management and reporting
- 7.1 API function calls
- 8 SIPP Hardware accelerator filters
- 8.1 DMA
- 8.2 MIPI Rx
- 8.3 MIPI Tx
- 8.4 Sigma Denoise
- 8.5 Raw Filter
- 8.5.1 Features
- 8.5.1.1 Statistics
- 8.5.1.2 Static defect pixel correction
- 8.5.1.3 Dynamic defect pixel correction
- 8.5.1.4 Gr/Gb imbalance correction, bad kernel detection and defect pixel correction
- 8.5.1.5 Digital gain and saturation
- 8.5.1.6 AE/AWB Patch accumulation statistics
- 8.5.1.7 AF Statistics
- 8.5.1.8 Luma histogram
- 8.5.1.9 RGB histogram
- 8.5.2 Configuration
- 8.5.1 Features
- 8.6 LSC filter
- 8.7 Debayer / demosaic filter
- 8.8 DoG / LTM filter
- 8.9 Luma Denoise Filter
- 8.10 Sharpen filter
- 8.11 Chroma Generation Filter
- 8.12 Median Filter
- 8.13 Chroma Denoise
- 8.14 Color combination filter
- 8.15 LUT filter
- 8.16 Polyphase Scalar
- 8.17 Edge Operator filter
- 8.18 Convolution filter
- 8.19 Harris Corner
- 9 Filter developer's guide
- 10 Software filters
- Appendix A – MA2100 to MA2x5x SIPP Framework Migration
- A.A SIPP MA2x5x framework
- A.B SW functionality changes
- A.B.A API changes
- A.C HW filter changes between MA2100 and MA2x5x
- A.D SIPP MA2100 to MA2x5x porting checklist
- A.E Pipeline level
- A.F Removal of sippProcessIters
- A.G No multiple use of HW filter in same pipe
- A.H Filter level
- A.H.A Removed filters
- A.H.B Retained Filters
Intel® Movidius™ Condenal
!
"!"#
$"!%
&
'(()
(*++,
-.''%%%'
/0 ! (11)2)3
Revision History
!
4 3 !"5!
2
/0 ! 3 (11)2)3
Table of Contents
"#$%%&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(
#6
76
38!!6
&)'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*
!!*
(*
39*
,:"%$;
+&)'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''"*
3&(11!*
3
331<
3, (113
,''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',
,11,
,=+
-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.
+!(111!;
+1"*
+3>!?!3,
+,1"<,
("/"//'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',0
6,
61,
638%+"%$",
.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''/
;1"!+
;#$6+
;3196+
;,@!66
01&2''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(*
A;
17<;,
31<
,(A3
+7%96
6B( *6
;A#' *
A:'B
*BA9
( +
:!9
/0 ! , (11)2)3
9
3A,
,#!
+B2 33
61(,
;@> ,,
! +
*C++
*3%4'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''".
*>%+;
*>#D+;
*31+*
*,A +*
"/5&2'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''"(+
=$63
6"//3&)''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''"(0
(11<+<"%$6
&(E"!6
&16
CE #%<+<;
A(11<+<!$;
@1;
97"1;
:8!"CE ;
C9;
C7 ;
C&79;
/0 ! + (11)2)3
" #$%%&
"'" 7
#(11F(11G<+<"%$
"<!(112:%(11
"%$8"#%"!!!"
#"%$E"!"(112:##
%%$#!"
(112:
AD (11 <+< "%$ % # % 9
" " " " " "%$
""%$<+<
"' 8
7!##"-.''%%%"
#%H7.
AIFAIGJ:5(:
AIFAIGJ1K:
3 AIFAIGJ(112:
, @FAIJ!G
"'+ %
"%!""!
"'+'"
3
2 2)#
26 26)#
23 23)#
()#
6 (6)#
3 (3)#
13 )#7:&$3#F<<7777777777::::::::::&&&&&&&&&&G
916 @@@);+,6)#L!F"6)#G
/0 ! 6 (11)2)3
3
913 @@@);+,3)#L!F3)#G
29 2#"!MN
97": 3
"'+' 3
9<)##""!
#"9 #"##
;.
2.2%6#"F#""!G
(66.#+#"6#""!
##!# O8%8#"
"!#
"'+'+ #
E " !%#%-
9
E& E&
& !9%#<
"<#$E#$%)<%
#< #" ,) %
#:7&:#:<%<#
:%<%#<#
:#
&> A#"<#$"<&A%
)P"&>%#":7&:
:&7:7::&&::7
9 9
Q B%)#%)#
( ( " J " # 1 "
!!1
A: A:
9 (11 !%<)%(119
#!(11" #
/0 ! ; (11)2)3
9
!
1 #"1?!"
""#%%#(
>&D #D#D#
E!"%#DAA7
1<"%#%
""%#DQ
"##-"
Q#D#$
(1 """
(C=@ 1# ! ;=
($9 (11%
<!A7FAG
(11 (11
(9 (11%
" < ! A7 F A G
"
97:#
/0 ! (11)2)3
&)
'" %
#>=""%)"!
AA7!""#"'%-#$AA7"
!1"##AA7#%!<6R
#"12#"#%%)%H
#
#(11" A"
<)#)#(#D
%)FQG8AA7#F
AA7 A '" G !
"%# "AA7%
%$AA7#-""!
'
(11"%$<?"#
(>>+(C=@#A
"""AA7Q)!#"%"
!<(1$
E#$""#(C=@%
(11"%$7(
(11"%$"+#)%
!"(11! " ! " %
" % (11 P% "%$ % <
!"!#S"(C=@
Q#D"%
# (1 # L<# P% # " # P%
J $ (C=@ J " %
8T"Q"!!
". U#DU#D
'+ 3
1(11"%$"#!!"
$ FA:G@ %
#D# ?
"F?"GE $%
"#D!#%#!
/0 ! * (11)2)3
" B#D".%-
!"#D%!%#$
"#D
'+'" 3
"%.
%! "
#D
%!
" U#D
FG
FG
$ % FG#%-
#<"%#%
" " B % B
F 9 3. < "
G
977""%$% %F(!
6J<+<(119E(119EG
! ! # $ (11 1 !
""%.
!
!H %
3 "#"'!
%#<E!!<!""
!"%$% !"#D?"
#D # H " " #D F"
< ;<;!H;;##DG
!"!%#H<#D
#H"?%
"%$!%<"#D
#D
/0 ! (11)2)3
'+'
#<B
"%$!<VW U#DB
%V'B#W <#D
%"#
/0 ! (11)2)3
3":
&"<"C%#<
HAA7#"A
"#D#7< F7< U#DG
-"'B# U#D#
< "!%UHAA7$% .
!%"##
$%$AA7
8#"VW".#)
"#D
FQG$%<AA7
'+'+
%"!E"
%"(11"%$
#&D
"#"JH#
""(11
/0 ! (11)2)3
3:& 8<
'+',
9 ?"?""#"
U#DFU#DG"
"H#"#DC%"
%"?!"< %%)
# " " % # ? ! ! ?
!%" #D%#"%"U
#D!!%%%?
"#D"%U#D
(11"%$!$? $
!U#D
#""1!#
$%D
% <##%"<
/0 ! 3 (11)2)3
3+:;6 #
<#VA% W % # ""
V9W #%?
VA%WV9W "P .
"""#"VA%W
"%U#DV2
W %"U#D
D"V2W "
B %V'B#W "%
8 % # # 2 V'B
#W #%#
# """B
'+' 1&5&2
( "%"9< A
"! #
"C%" (P%9(P%
/0 ! , (11)2)3
3,:3&=
(##<"
#
#<"%P% !"
P% #CE #
'+'( 8
9<!U#!!9<%
(1F(1G"
=!!>!#%
%(11!""
E " # < # # "
#%%"E#"$
AA7#"%<%"%
%%!
%!"% %"FG
#%- AA7% ! "% %$
#"#D#""<
"<AA7X. "%$!!
""!")!
% AA7 #D %
""!
/0 ! + (11)2)3
"5 ""!U")#
<%#"%)"!%#"A99
!##%)"!#"<(11
"%$#
/0 ! 6 (11)2)3
3:&
', #&)
9 6 # % " (11 " "!
CE(
1.1;
1!." !
!#% #1
1=!.P!"%#$"
1."!"##
/0 ! ; (11)2)3
3(:#&)
!#"ADD"#
"%$%#L<#X"!#
%#%#"%#"
" $ # X ! %
!
1Y.H$!"(
1)#$H!#
"<!
7(.(11CE(J%
$###!
# ! 9 ! % # <
FLG%
"
(117.@
H#"!!"
(. F% HG " @ ! "
!%CE(E H!
D!%<!
CE'(!"
#D # Q %
#% % ! A " "
!#<<1%$
"X
7.$! <!"
$CE(C=@!#!!"!
/0 ! (11)2)3
+ &)
+'" >
%(11!:AM,N)
@A@%#<!"A@
!#""(111
Z (111Z "
!#V5W!!"!(11
!""%.
1"!?!<!!AI
"
!(11#!"#$
!(11 #!%#$
B$ "#&%#$
>##(11""
#"%'#$"%'()#$
/0 ! * (11)2)3
3.:# ;?
3.2 Conguring lters
9? # )
9(E ?" !##
' !%#$ 9CE ?""
CE ?"? (11"%$
#!%#$%
V'W % U
" ) 9
<"78! *+("',
-+(+( . 7 8 U #
"%.
RandomNoiseParam *param;
noiseFilter = sippCreateFilter(pl, 0, 640, 480, N_PL(1), SZ(half),
SZ(RandNoiseParam),
SVU_SYM(svuGenNoise),
"Random_Noise");
param = (RandomNoiseParam *)noiseFilter->params;
param->strength = 0.08;
$9;: 1 !$D""C
#%19FG'198&FG
+'+
+'+'"
<%%%#(11% E%3<3!
< AI$3
!
E#!%#<<
GA " #G3<3! GA
AA #(11"%$
#T
#T
.
#define IMG_W 640
#define IMG_H 480
void appBuildPipeline()
{
pl = sippCreatePipeline(2, 5, SIPP_MBIN(mbinImgSipp));
/0 ! (11)2)3
dmaIn = sippCreateFilter(pl, 0x00, IMG_W, IMG_H, 1,
sizeof (u8), sizeof (DmaParam),
(FnSvuRun)SIPP_DMA_ID, "DMA_In");
conv3x3 = sippCreateFilter(pl, 0x00, IMG_W, IMG_H, 1, sizeof (u8),
sizeof (Conv3x3Param),
SVU_SYM(svuConv3x3), "Conv_3x3");
dmaOut = sippCreateFilter(pl, 0x00, IMG_W, IMG_H, 1, sizeof (u8),
sizeof (DmaParam),
(FnSvuRun)SIPP_DMA_ID, "DMA_Out");
sippLinkFilter(conv3x3, dmaIn,3, 3);
sippLinkFilter(dmaOut, conv3x3, 1, 1);
}
E%"!%""! !?
U)#"<!"
void appProcFrame(SippPipeline *pl)
{
DmaParam *dmaInCfg= (DmaParam*)dmaIn->params;
DmaParam *dmaOutCfg = (DmaParam*)dmaOut->params;
Conv3x3Param *convCfg = (Conv3x3Param*)conv3x3->params;
dmaInCfg->ddrAddr = (u32)&iBuf;
dmaOutCfg->ddrAddr = (u32)&oBuf;
convCfg->cMat[0] = cMat[0];
convCfg->cMat[1] = cMat[1];
convCfg->cMat[2] = cMat[2];
convCfg->cMat[3] = cMat[3];
convCfg->cMat[4] = cMat[4];
convCfg->cMat[5] = cMat[5];
convCfg->cMat[6] = cMat[6];
convCfg->cMat[7] = cMat[7];
convCfg->cMat[8] = cMat[8];
sippProcessFrame(pl);
}
#"!"! #
(11"!%
int main()
{
sippPlatformInit(); // SIPP infrastructure initialization
// Read a frame from file
sippRdFileU8(iBuf, IMG_W*IMG_H, ""lena_512x512_luma.raw");
// Build the pipeline and process the frame through it
appBuildPipeline();
appProcFrame(pl);
// Dump the generated output
sippWrFileU8(oBuf, IMG_W*IMG_H, "lena_512x512_RGB_conv3x3.raw");
return 0;
/0 ! (11)2)3
}
+'+'
2<"33#!##$1
sippProcessFrameNB()
void appProcFrame(SippPipeline *pl)
{
DmaParam *dmaInCfg= (DmaParam*)dmaIn->params;
DmaParam *dmaOutCfg = (DmaParam*)dmaOut->params;
Conv3x3Param *convCfg = (Conv3x3Param*)conv3x3->params;
dmaInCfg->ddrAddr = (u32)&iBuf;
dmaOutCfg->ddrAddr = (u32)&oBuf;
convCfg->cMat[0] = cMat[0];
convCfg->cMat[1] = cMat[1];
convCfg->cMat[2] = cMat[2];
convCfg->cMat[3] = cMat[3];
convCfg->cMat[4] = cMat[4];
convCfg->cMat[5] = cMat[5];
convCfg->cMat[6] = cMat[6];
convCfg->cMat[7] = cMat[7];
convCfg->cMat[8] = cMat[8];
sippProcessFrameNB(pl);
}
void appSippCallback ( SippPipeline * pPipeline,
eSIPP_PIPELINE_EVENT eEvent,
SIPP_PIPELINE_EVENT_DATA * ptEventData
)
{
if (eEvent == eSIPP_PIPELINE_FRAME_DONE)
{
printf ("appSippCallback : Frame done event received : \n");
testComplete = 1;
}
}
volatile u32 testComplete = 0x0;
int main (int argc, char *argv[])
{
appBuildPipeline();
...
// Register callback for async API
sippRegisterEventCallback (pl,
appSippCallback);
...
appProcFrame(pl);
...
/0 ! (11)2)3
while ( testComplete == 0x0 )
{
}
// Dump the generated output
sippWrFileU8(oBuf, IMG_W*IMG_H, "lena_512x512_RGB_conv3x3.raw");
return 0;
}
+', 2
+','" 8?
+','"'" @-
? " (11 Q) " ? 3 I# F
''<+<'#'@"$G
"?%$ !.
CCOPT += -D'SIPP_CMX_POOL_SZ=32768'
+','"'
9(?!(11<P!
F1G%(11<<<2%
)<<#%.
pl = sippCreatePipeline(…);
// After pipe creation – Default : SippMtx0 = Mutex0,
// SippMtx1=Mutex1
// Reassignment after pipeline creation: SippMtx0 =
// Mutex20, SippMtx1=Mutex21
pl->svuSyncMtx[0] = 20;
pl->svuSyncMtx[1] = 21;
!)"(C=@%
%%"2@Q@(
+','"'+ A
"AA7(11<AB$
&"(11B$"<A#$C%"#
$ ! # 5 " (11[A[:@8[8> (11[A[8[8>
CCOPT += - D'SIPP_CDMA_AGENT_NO=1'
CCOPT += - D' SIPP_CDMA_INT_NO=10'
/0 ! 3 (11)2)3
,
!#%(11QAA7%D.
!?!
A<!
9#XQ"#!?!<!#"
<AA7#
,'"
"%$",.
Q1
AA71
Q(1
QB1
#"!J"Q"
AA7
9%%Q1AA7
#%!%B&DH
HD!
!"!K#
FQ1AA71G#!
!
/0 ! , (11)2)3
,' !
!%"%$"
!7"%
!#""H""!
@##9T
/0 ! + (11)2)3
30:@
CMX POOL
lter params/pipeline def
etc.
HAS TO BE IN CMX
(frequently accessed)
DDR POOL
memory used for saving
context when swithching
pipelines while
proceessing the same
frame
CMX SCHEDULER POOL/LINES POOL
CMX SCHEDULER POOL: used to compute
the SIPP pipeline schedule or recompute
it if pipeline changes
CMX LINES POOL: Used for the actual
lines during SIPP
Allocation of the CMX pools for a 4 (slice 0 to 3) CMX
slices pipeline, single pipeline (DDR POOL irrelevant)
CMX
Initialization
Computing
pipeline stage
SCHED POOL
slice 0
SCHED POOL
slice 1
SCHED POOL
slice 2
SCHED POOL
slice 3
CMX POOL
some
other
part
of a CMX slice
CMX
Running the
pipeline
LINES POOL
part of slice 0
LINES POOL
slice 1
LINES POOL
slice 2
LINES POOL
slice 3
CMX POOL
some
other
part
of a CMX slice
lters slice 0
lters slice 1
lters slice 2
lters slice 3
"Q1AA71
"1QAAQ#
!
1: AA7
11( Q1
19B&" QB1
1QAA Q1
1( Q1
1( Q(1
97+: %
%1sippChooseMemPool()#!"
#C%1"AA7Q
1!++ H(11"%$%#D#"
%!""
19B&" 19B&"
19B&"%
/0 ! 6 (11)2)3
-
<#(11"%$##""
"#C%$"<!
""%!<!<""
(11!D%#
"%#K"
'"
" ?! F "91
<719(198&1G(11"%$"
#"%%#
!"""
"!%#!#%<!<
"% C% " !%#
X#<"
!
#)!"(11!%#L#!$$
#"!%"#<?
(11!#B@>8%(11"%$J
(C=@ <!(E$(11 C%(C=@
(11!H <#T!#(11"%$#
!B@>8(11! "B@>8 (11!H (C=@
!#!"B@>8(11!(C=@(11
!D!#!"<!"(E
$
'"'" 9)B;$
E<"$D"F"
<CE '(E \G"%%"
"!#!
@<"!"
(CE %#"!
((E %#"!!
(A %#"!
1"!$"#H!J!"
!"""$FGFG"
(EA FCE $G
C!<CE F!G
@#
2CE #D%"!#D!
"!
/0 ! ; (11)2)3
7"<!]
'"' %
"!!P!$#"
!%H<!<%"""!"
!!" !"!!
#%!"!!
'"'+ #
:!(11!%#""(11
"%$T!:!#
"%$#""!K!!9
!#X""("
"" ? D ! # #
""
:!### %!
(ECE<
'"', B
E:!"%%##" #$
"# $C%
#(11"%$%""!
(!$ !"!
%"%!%"
##"#!
!B1!!D# ""
! B1 ! % # $ % % 1
1(B1FG5#"!','6#
!"%#%#D
!FQGH#
'"' $
9<"!$ +C%"$
"#)!%#"1!%
"%$%1!""!%(E
%CE #)#
$"CE"+#(11CE "%L%
%"!# !"
#D$"! %
D#"##"#D
%#D#1!
##% <1 !"%
#%%
/0 ! (11)2)3
$"1!"%
A!
>!"A!"
#DT #"%
CE "#
"EHA!"#D"
#A!? #"
>!"A!" %#D#
#"#"#D
#"")#%!
#$!1!
SIPP_SCRT_ENABLE_OPIPE# LPLF[CONSIDER_OPIPE_RT#
#" !"F(#;"LG
#!
E!A(111!"
A!!#QA%
1!#"!
1!%)P#D!"
#D?#"#D#"
1(8B1&"FGB#"#D
)!<"H#D
"D"
+%##%!
'
2!%"'<F$)))<G%#
%%##"!""%#
""#"$%#%1
"%$""!""%$
%"%$#""
##"<FG"
E#" "!"%$%
"<""!!?!"%$
"" %#"%!?!+3
#""2!X"!
#%!?! "
%"X!""
"!?!X!##
''" 1C
> CE % < # . 1 (11 # "
/0 ! * (11)2)3
$'<'('(9%'7!
&"CE %""
%#"!""$<F'<G
"
''"'" )
" #?""
"% "$'<#%%
D!D!!"
!B1!,!1!
!.=:CA,I#
9 * % '< " 1 # ? !
"D#%!
/0 ! 3 (11)2)3
3*:
9%'<"(11!!
%T"#""
"92BBCA!%1!8"<CA!'<
#36^"1!%!
''"'
%%#""
#$%.
9%$!
B#D!
9%$J""%$%
1!F9G
9<%,I!Q?#6^"B1!
"!"1!%#^"
%!"E
B1?##"!9
<%,!?#<H"
!91!H
/0 ! 3 (11)2)3
3"/:
B7=J#D"!!
#D"19B&""#D#
!##"
"% ! % $ " < 1 % =:
!%!!"!%
1B&"
3":B7=
71!%""
%#
/0 ! 3 (11)2)3
3"":3&)
9 < 1 , % # ".
19B&"19B&"19B&"19B&"3
"#D%!"
#!"!#D%!%%
,!"!%%1!!
93%D"#D1!%"
#D!FG%#D?F#G
71!"##"
$%#!"
'' ;7
%#!!!#$%# !
!
#!! #! SIPP_RUNTIME_PROFILING #
F%sippMyriad2Elf.mkG#!#!$
"!!#$1("
!!<"
@# !! ! " # 5 L
PLF_PROVIDE_RT_STATS#" !"F(#;"LG
$$!!
!
#%J!"!!%
D"!!"vPoolGeneral
%#"AA7F#3GJ"
AA7Q"%!!"
" ? " # % # ! " J
SIPP_RT_ITER_STATS_SIZE%%!%#F#
H#"!#GSIPP_RT_PER_ITER_STATS_SIZE
/0 ! 33 (11)2)3
DE D7E
3"+:B7=
%<#"%#!
"D"
!#H#)!"%#
''+
>"!%"H
%#!!!%!J
"sippReschedulePipeline()
E1'!-1)
P
'',
@!"D!"!"
"!H!!E!,!!"%
!
>!"CE
>!"(E
>!"A
9%$!"<!
!""!"V)W!
%",#" "
8J"#
!""C%!#
% ) " # %
#$1""#
#$%""!?!
'+ $-
#!L!?!""
'<#+>!?!"
%C%#)!%"%%!#%
"%#"%
"#%H
"!
CE P "'<F" G
<!"(E$#"##
!"$<">#
# ! #% ! %
! !
#)!"!?!!%%
"!"%"!
"
/0 ! 3, (11)2)3
'+'" $F
"% #)! H % #
""E%$H%#"
"!+3D!"!"%H#
'+'"'" 1C@=
E"!" #D"
J%#!!#"$H#"
"<"(11CE (11"%$
D5"CE Q!
("<CEA_B2 _! __
A,Q1FG!%
, #D"AB2!( &"
<"" %#" $"
$ % # %
%""Q!
&D5" #
3 $>=3
A
B2
!
(
97,:;27=
8 #D3#CE D5
#E( %##"%!#D
%DA> %##"(#
$ "#"CE
%#CE (E QA
>D5!%"%$(
"$#D#<(9
""9< < #,
"%#.
dmaIn = sippCreateFilter(...
lut = sippCreateFilter(...
convolution = sippCreateFilter(...
...
/0 ! 3+ (11)2)3
dmaIn->firstOutSlc = 0;
lut->firstOutSlc = 1;
convolution->firstOutSlc = 2;
sippFinalisePipe(...
sippProcessFrame(...
8 !" ##"sippFinalisePipe()
sippProcessFrame()sippProcessFrameNb()
'+'"' CF
(!QA!!!CE #)
$%!) <#%-
!FP
$Q ! #" ! # $
"G
!!"%"!"%$
F9,G#"H
C%#!(
"%$!!F9,GH"
!K%"!"!%
"%$!""%$!%#
#"!1(H#
"C%""%$)F
!+3G%!!"
"!%%!!%
"%$!%#$#)"
EP%#$%
"%$#
E % 1#" "%$
!#$#!F!
!G%
(!+33"
'+'"'+ 7
&"!F%<!"1G%%$#"
"##" !
1(B1FG#','6"!
< 1- !D "!
#(11"%$B@>8(11!
(C=@
E(11"%$!"
("!F9,G
@"!F9,G
9%$!F9,G
9`H
/0 ! 36 (11)2)3
9(11!!"
1!%B@>8
"!(E$
#""!(E$
B" %"!
B'>"!"
# % % ! !
##"!#9<
"%!#"!
#+^"CA# "!E
!%%#^%%%"
+^"%!"!
# ` H
!#"!J!%
# %
#"C%
%9%$!)F!+3GP#
"%$!"!
E"#"!#
#%#DH" %
! #D H X
<!#H%H5%!
"%#"!
$9;: !%1!#"!
D!"
#"!
'+'"', C7)
E"%$%- #!"#
!%!###!""
"%"!
2"#.
7$J"<"CE
$%CE !%!%
(%%J""(E %%#
! #"ACE
)!#9?1FG"
#
sippRuntimeFunc pfnSippRuntime;
/0 ! 3; (11)2)3
"!!#$!
'+' B?-
(! +, # ,!!%!"
(11!F<1!G#!?!"
! ! H " " !! "
!?!
$9;: &"%!!!)
%%#"!
#!%"!!!""
!!!
!!)9,
!#P!P
"3"!F(E CE QAG%#(
!H$%%#F"H!G>
H!"%$%""$
##H!
,!!%!
)#% ! !"
!"" !CE
%!#(E A
"(E A!!
1 9, % "%$ "
!:#$%!D
## $!!X"
#!!
9"%#")<!"%L!H"
/0 ! 3 (11)2)3
3",:9?
",!!.
1C2JCE #CE!#%
CE !## ! !"CE
#%AA7"% %
C2 J#"(E #%<""(E
#"(C=@(!"(C=@"
%#%""Q#% %
@ J#"A!H!%"
!%QAA7#%<QA!!
3&)J9%$!!L#D"#D
(E 'QA#"%$"
"$""(EA @!DH
#"(EA %)
$!!
8"!"%$"%$%"
CE "%%#D!
'+''" 2?
E!!!#!"!#"
!%!H",!!#
""J#%",
"!P#-$"<!
:!!#!)!%<
%+,>!!)! "%#)!#
!?!
'+'' 1C2
ECE #-$"!?!H"
Q#J%D5"CE
Q!#+3
>H!$
CE #DQ\"#\
"%$X""#"(E
H#+3#\""%$#
!!"%$#"!
A!CE #"(E A\"%
#
"1!!!+33
%%
"H%$"#
"#$
9%!"P!?!CE)(E
#%"%(CE)##
/0 ! 3* (11)2)3
"%!D"%#
"!!
'+''+ C2
-%(E "%
(C=@#
"1!!!+33
%%
!1#"%%
1#(C=@!
A!(E #"CE A\"%
#
%!"!(C=@((E$
D(C=@(X"(ED
%"(C=@%
!"%%C%
D!!"%$%!%
(C=@(XD!"%$
">")#!<!(E$
%(C=@(
'+'', @
"%$X""#"(E
H#+3#\""%$#
!!"%$#"!
(EH"!A
A!A #"CE (E \"
%#
"1!!!+33
%%
'+'' &)
!%(11"%$<!!#
-!#+33
(11"%$#!"K"K%
""%!
2CE
C%
(C=@(
7(E$
!$""%$!"% <(
CA(E )#=:"%$!
7!CE(E!!!
/0 ! , (11)2)3
%"%$ !!"# "%$
!!!"!
9%!"P!?!"%$!)
(E #%"%("%$!
) # # "% ! D
"%#"!!
'+'+ ?-
"(11"%$! !
"CE #
!(C=@%# !C%
D(C=@DCE "#
!!"#
]
EK#)K!"(11"%$$%!
sippProcessFrameNB()!"%%.
sippProcessFrameNb (pPipe0);
sippProcessFrameNb (pPipe1);
##<"!#!
%C%%!<
% < # % 1 #
sippProcessFrameNb # # $ #"
sippProcessFrameNb1H"1"
X#X1(#
"<<!"!""11
!"" "##
D$#
"D")#$1D%$
$"<%
!<#!+,
',
E66"AI%<##"
"(11
/mdk/testApps/components/sipptests/Performance/sippPerfTestBed
' #%%#"
#"! '"#1
<
!##''$ $ %
CCOPT += -DSIPP_RUNTIME_PROFILING
#! %(11"%$#1 ##!
!
/0 ! , (11)2)3
pipe->sippFwHandle->flags |= (PLF_PROVIDE_RT_STATS);
%#J !#
, !%<#"
!%% !
"" !&A"
','" 8
Eleon/perfTestbedCfg.h !##&A#
!
2 #
(%!
& (%<!
AF!G%
!
A AF!G%<
!
97:#9>2
!""!
(EXF !&G#!M"(11
!"(11"%$<F !&G
E%#"%#
',' C2G
7 % ! J (11[7[(([178[7B
$'<'('(9%'<+<'1"&''"#"[ % #
!"T"!
#! ""<" %#%.
UART: Pipeline 0 - Async mode
UART: Iter ItTime HW SW CDMA FW
UART: =====================================================
UART: 0 3488, 0, 0, 2560, 1927
UART: 1 2917, 0, 0, 2239, 1818
UART: 2 2788, 0, 0, 2104, 1558
UART: 3 3181, 2079, 0, 2647, 1652
UART: 4 3120, 2018, 0, 2586, 1632
UART: 5 3255, 2160, 0, 2721, 1765
UART: 6 3400, 2287, 3117, 2835, 1985
UART: 7 3496, 2394, 3213, 2949, 2000
UART: 8 3391, 2289, 3108, 2844, 1979
UART: 9 3509, 2407, 3226, 2962, 2105
/0 ! , (11)2)3
UART: 10 3520, 2418, 3237, 2973, 2023
UART: 11 3418, 2316, 3135, 2871, 2014
UART: 12 3479, 2370, 3196, 2925, 1968
UART: 13 3522, 2420, 3239, 2975, 2019
UART: 14 3388, 2286, 3105, 2841, 1984
UART: 15 3491, 2389, 3208, 2944, 1994
UART: 16 3374, 2272, 3091, 2827, 1970
UART: 17 3617, 2515, 3334, 3070, 2213
UART: 18 3512, 2410, 3229, 2965, 2008
UART: 19 3435, 2333, 3152, 2888, 2031
"J $"!!
<F%!"G$"!!
","!FCE '(E 'QA(11"%$G"H
!!
#"#"#" !%(E
H%!H!
)! !""%.
UART: ** SW most often long-pole **
( ! ) ! ! (E
#-$%##?-!!?P%$
""(E"%
(E $ F&< 9 +<+G % J
<#+!"#!\C%
%" (C=@(
")<<E%(C=@!
""@(C=@D")
+:%!""%$
(C=@%% ! "%
(C=@(C%%X#(E!H
!"!+33
!!%%(E!
X!(E$!
#"!C%(C=@!#
"X
%% !& !$ FCE'
(EQAG"6"!!" !
"%.
UART: Pipeline 0 - Async mode
UART: Iter ItTime HW SW CDMA FW
UART: =====================================================
UART: 0 8176, 0, 0, 7315, 4215
UART: 1 8155, 0, 0, 7389, 3999
UART: 2 21918, 21204, 0, 7049, 4416
UART: 3 21798, 21084, 0, 7194, 5092
UART: 4 21816, 21088, 9041, 8599, 6903
/0 ! ,3 (11)2)3
UART: 5 21825, 21088, 8819, 11213, 7379
UART: 6 21824, 21087, 8575, 11142, 7212
UART: 7 21837, 21100, 9024, 11544, 7384
UART: 8 21818, 21094, 8548, 11128, 7164
UART: 9 21906, 21182, 8731, 11405, 7388
UART: 10 21832, 21097, 8954, 11330, 7169
UART: 11 21816, 21092, 8720, 11280, 7341
UART: 12 21834, 21099, 8885, 11273, 7132
UART: 13 21817, 21093, 8641, 11433, 7298
UART: 14 21823, 21099, 8492, 10914, 7125
UART: 15 21820, 21089, 8856, 11267, 7324
UART: 16 21812, 21088, 8511, 11234, 7115
UART: 17 21917, 21182, 8761, 11328, 7389
UART: 18 21823, 21092, 8779, 11151, 7129
UART: 19 21824, 21093, 8717, 11168, 7346
>")! #6!"!
#B$ "% (E @!! "(E
#<""3"6!%$#](
!"!""(C=@%#6<!
(E$##"
%CE#
8".
!J%'3"%%% !
CE%JX"CE%
% ! !
XCE!!
','+
7% !!
$"$7"%
% !A
9 ! " "! " )
$'<'('(9%'<+<'1"&'#''"&B<
"%"!P% !
Test Log : Total test cycles 84592509 LPI 1
< Time >|< Str 0 >|< Str 1 >|
------------|------------|------------|
90595 | F 0 S | |
2635632 | F 0 C | |
2728903 | | F 0 S |
5284035 | | F 0 C |
5377790 | F 1 S | |
7922274 | F 1 C | |
8015575 | | F 1 S |
10570564 | | F 1 C |
10664332 | F 2 S | |
13209008 | F 2 C | |
/0 ! ,, (11)2)3
13302303 | | F 2 S |
15857328 | | F 2 C |
15951078 | F 3 S | |
18495728 | F 3 C | |
18589018 | | F 3 S |
21144146 | | F 3 C |
21237908 | F 4 S | |
23782922 | F 4 C | |
23876214 | | F 4 S |
26431364 | | F 4 C |
26525124 | F 5 S | |
29069648 | F 5 C | |
29162931 | | F 5 S |
31717735 | | F 5 C |
31811512 | F 6 S | |
34356900 | F 6 C | |
34450191 | | F 6 S |
37005096 | | F 6 C |
37098858 | F 7 S | |
39643714 | F 7 C | |
39737001 | | F 7 S |
42291811 | | F 7 C |
42385582 | F 8 S | |
44931092 | F 8 C | |
45024382 | | F 8 S |
47579130 | | F 8 C |
47672880 | F 9 S | |
50218094 | F 9 C | |
50311396 | | F 9 S |
52865983 | | F 9 C |
52959752 | F 10 S | |
55505224 | F 10 C | |
55598519 | | F 10 S |
58153601 | | F 10 C |
58247352 | F 11 S | |
60792158 | F 11 C | |
60885439 | | F 11 S |
63440195 | | F 11 C |
63533958 | F 12 S | |
66079424 | F 12 C | |
66172713 | | F 12 S |
68727644 | | F 12 C |
68821400 | F 13 S | |
71366190 | F 13 C | |
71459471 | | F 13 S |
74014312 | | F 13 C |
74108086 | F 14 S | |
76652932 | F 14 C | |
76746219 | | F 14 S |
79301317 | | F 14 C |
79395066 | F 15 S | |
81939719 | F 15 C | |
82033005 | | F 15 S |
84588179 | | F 15 C |
"%!@ %V9Q(W
"Q!"%%V9QW"Q!
##% !D!>
/0 ! ,+ (11)2)3
"#H%#!""8
%<!<! +33>
"%$!!"#H!CE(EQA
H"<"
X#K"H
!
!A#!%6!!
#<$"%
Test Log : Total test cycles 20325024 LPI 16
< Time >|< Str 0 >|< Str 1 >|
------------|------------|------------|
91251 | F 0 S | |
257972 | V | F 0 S |
1148463 | F 0 C | V |
1312810 | F 1 S | V |
1350661 | V | F 0 C |
1526899 | V | F 1 S |
2379197 | F 1 C | V |
2553105 | F 2 S | V |
2604046 | V | F 1 C |
2783351 | V | F 2 S |
3618095 | F 2 C | V |
3793842 | F 3 S | V |
3860614 | V | F 2 C |
4038300 | V | F 3 S |
4860156 | F 3 C | V |
5037649 | F 4 S | V |
5126651 | V | F 3 C |
5304938 | V | F 4 S |
6102450 | F 4 C | V |
6279877 | F 5 S | V |
6392641 | V | F 4 C |
6570558 | V | F 5 S |
7347716 | F 5 C | V |
7525617 | F 6 S | V |
7659311 | V | F 5 C |
7837410 | V | F 6 S |
8593023 | F 6 C | V |
8770638 | F 7 S | V |
8926332 | V | F 6 C |
9103918 | V | F 7 S |
9837406 | F 7 C | V |
10015101 | F 8 S | V |
10193945 | V | F 7 C |
10371274 | V | F 8 S |
11082970 | F 8 C | V |
11260563 | F 9 S | V |
11463087 | V | F 8 C |
11641326 | V | F 9 S |
12329820 | F 9 C | V |
12507416 | F 10 S | V |
12732020 | V | F 9 C |
12910018 | V | F 10 S |
13576939 | F 10 C | V |
13754687 | F 11 S | V |
13998502 | V | F 10 C |
14176174 | V | F 11 S |
/0 ! ,6 (11)2)3
14821433 | F 11 C | V |
14999053 | F 12 S | V |
15265492 | V | F 11 C |
15443400 | V | F 12 S |
16066558 | F 12 C | V |
16244364 | F 13 S | V |
16532303 | V | F 12 C |
16709840 | V | F 13 S |
17310247 | F 13 C | V |
17488081 | F 14 S | V |
17797912 | V | F 13 C |
17975594 | V | F 14 S |
18555441 | F 14 C | V |
18733108 | F 15 S | V |
19065144 | V | F 14 C |
19243240 | V | F 15 S |
19797486 | F 15 C | V |
20322036 | | F 15 C |
#%P
F#V=WG"%%
#<"!
8!"+<("
X(E 6!#")"CE
(C=@%"
1H!###%#$ !#"
$'<'('(9%'<+<'1"&''"#1
(C=@F6G !H".
#elif PERF_TESTBED_NUM_PIPELINES > 0x1
u32 sliceFirst[PERF_TESTBED_NUM_PIPELINES] = {0,6};
u32 sliceLast[PERF_TESTBED_NUM_PIPELINES] = {5,11};
#else
#elif PERF_TESTBED_NUM_PIPELINES > 0x1
u32 sliceFirst[PERF_TESTBED_NUM_PIPELINES] = {0,6};
u32 sliceLast[PERF_TESTBED_NUM_PIPELINES] = {0,6};
#else
")%%(E$J%%%
"!"
#%"!"
#+$*$%!'6"(C=@]
%P!$
"%%# "
!"!J<T%+(C=@(
"$ D7!!
X"T!"!"(C=@
#"$%#"
/0 ! ,; (11)2)3
( "/"//
('" 9
( #$ " ! (11 "%$ "!
""D#%
+%!"!?(1!(11% 1
1" <
% #DFBB&G"F%'"Q
G!"BB&#%%!
1% <"(11"%$BB&<
%(11CE %#H"
#)""!#
<"(11"%$CE !!
+"sippProcessIters()1#
#+<CE #
%"
9+!"%" % D
"%$ !" %!#D"%$
#D>+A#
#"7:&B8<""
!> %"#?
>+"CE #
!#" "+"%$")$"
#H
('
E+1L"%!#%<!
1!%<!!##"%$%
!%!%"%$")
%! %!#ET"
1"!<#"%$%#%"
!63!"%1
1#"!;
('+ &"/&)
('+'"
!"1J sippProcessFrameNB()(11"%$
%!B@>8%CE'(C=@ !
""
("CE (C=@"!#(11"%$%
<8"!
/0 ! , (11)2)3
#!<"%$%#
!C%!%%""
$ " 9 ! "
#$1!%<"!
('+' ?
E"%$#!)
% " !CE(C=@
"%$!%1
63% sippProcessFrameNBFG!"H
%%!"!#"%$%!"
#%!#
"!?!"H%
/0 ! ,* (11)2)3
.
.'"
.'"'" HDE
.'"'"'"
void sippPlatformInit();
.'"'"'
"!!?(11"%$8A!?$%
" ! H!? # #-
sippInitialize()"!
.'"'"'+
6 8
.'"' -DE
.'"''"
void sippInitialize();
.'"''
"! !? (11 2 "! " !?
!
.'"''+
6 8
.'"'+ DE
.'"'+'"
SippPipeline* sippCreatePipeline(u32 shaveFirst,
u32 shaveLast,
u8 *mbinImg);
.'"'+'
1"!!!(11
"(11%#(111"!
/0 ! + (11)2)3
.'"'+'+
%3<
%B
%"%SHAVE#<
(11"!?)#"SHAVE
shaveFirst#abshaveLast9<"3% "
shaveFirstshaveLast!SHAVE3%#
!SHAVE!Z%SHAVE
##!%"
$
7 "#"(11!#F&G
%"F(11"%$ G%%
SHAVE!Q
%"SHAVE
#
SHAVE9<"%#%
%SIPP_MBIN
.'"'+', ;
pl = sippCreatePipeline(1, 3, SIPP_MBIN(mbinSippImg));
.'"', 3DE
.'"','"
SippFilter* sippCreateFilter(SippPipeline *pl,
u32 flags,
u32 outW,
u32 outH,
u32 numPl,
u32 bpp,
u32 paramsAlloc,
void (*funcSvuRun)(struct SippFilterS
*fptr, int svuNo, int runNo),
const char *name);
.'"','
"!!(11 % "
(11 E!!" " ) !
" !# % "
F<#"?" !"!
"(C=@G
.'"','+
"#!"#$! %
#%
/0 ! + (11)2)3
I L SIPP_RESIZEL#"
!!
C E""##
1 C""##
8#"" U#D
> &<"#D
8#"# !"" #
!
%8 U"!%SHAVE
E$%"F!)
G E ! SHAVE SHAVE
#"5"
9# !" %
%!
.'"' B)3DE
.'"''"
void sippLinkFilter(SippFilter *fptr,
SippFilter *parent,
u32 nLinesUsed,
u32 hKerSz);
.'"''
"!$ % #!%
#'!#%"
.'"''+
!
!
B 8#" %" U#D
9<" "+<+!"
U#D#"VW+"%$%$
H"""#D!
%"##D
J- C?$?F<G"?
/0 ! + (11)2)3
.'"'( B)3$>DE
.'"'('"
u8 sippLinkFilterSetOBuf (SippFilter * pFilter,
SippFilter * pParent,
u32 parentOBufIdx)
.'"'('
"!% #D&"sippLinkFilter
$ #D" F"%##"
G"!#T!%sippLinkFilter%$"
#D#8"%"
#D%$#$T%1
.'"'('+
3 !
!
$> #D<%"
.'"'. 3-DE
.'"'.'"
void sippFinalizePipeline(SippPipeline *pl);
.'"'.'
"!"FG"<!"
!? !"%'<7
&"(11Q(11F sippCreatePipelineG
%$9##
)!#"! sippInitSchedPoolArb!
!9#D
.'"'.'+
1"
/0 ! +3 (11)2)3
.'"'0 3DE
.'"'0'"
void sippProcessFrame(SippPipeline *pl);
.'"'0'
$(11")%"""%##
%#" !"""##
$
.'"'0'+
1"
.'"'0',
#$1#%1F1
"G
.'"'* 3>DE
.'"'*'"
void sippProcessFrameNB(SippPipeline *pl);
.'"'*'
$(11")%"""%##
%#" !"""##
$ 8! !""!%##$"!
%7@#$
.'"'*'+
1"
.'"'*',
)#$1"19
/0 ! +, (11)2)3
.'"'"/ 8DE
.'"'"/'"
void sippReschedule(SippPipeline *pl);
.'"'"/'
"!"!)<!
!!?!!%
#""!"!
$?"$
"!"#DF#
"!K)(11#DG"!
#DsippInitSchedPoolArb()
.'"'"/'+
1"
.'"'"" 8DE
.'"'""'"
Int32 sippAllocCmxMemRegion (SippPipeline * pipe, SippMemRegion *
memRegList);
.'"'""'
1!(11"%$"!"
CE(11 #D<A "!"1
X #%X" ! CE
!##D!Q%
!"CE
.'"'""'+
1(1%#
8B 182BB"SippMemRegion
/0 ! ++ (11)2)3
.'"'""',
sippCreatePipeline()1sliceFirstsliceLastQ
!!#
!
B#D%##J"regionOffset#"
SippMemRegion % # )## % # (11
"%$%!# #"%
7X! memRegList 1 # 82BB) "
SippMemRegion9<!"%).
SippMemRegion CmxMemRegions[] =
{
{
.regionOffset = 0x0,
.regionSize = 0x1000,
.regionUsed = 0x0,
},
{
.regionOffset = 0x8000,
.regionSize = 0x1000,
.regionUsed = 0x0,
},
{ 0, 0, 0 } /* Null terminated List */
};
CmxMemRegions#12"1L"
%(11CE 9<"(E'CE
$"%!###"(C=@(
1%Q$"
(C=@(%#"#D"CE <CE
"%$%$#"!$
"CE K#?##"%
HFQ?G#%
$
"(C=@$F$?H
%G!
(%"H
"FQ?"I#G sippSetSliceSize(UInt32
size)##%?#"sippCreatePipeline()"
J"%$%8>- #%# -
"## #H!
"""
!
CE #DF"G#!J
"#D#!(!"
!"$#D$#F"
G%$!G
!CE "
/0 ! +6 (11)2)3
%"%$##D"CE %
"Q
1##"sippFinalizePipeline()
##""!%sippFinalizePipeline
1%"sippFinalizePipeline()
.'"'""'
7Q#
7"!"#D%"
#"$"F$#!"
CE "CE (C=@"(E G!
"#"$!#<
H""I#%
# !" <CE'(E %
! 1 # I#
#D"" Q%
"I#CE#
#?#?3I#<,I#
#"3I#
.'"'"
.'"'"'"
void sippChooseMemPool (ptSippMCB pSippMCB,
SippVirtualPool vPool,
u32 physPoolIdx);
.'"'"'
"!#(11&$F
"(&G#JQAA7
.'"'"'+
> 1"#$
% =1
(QAA7
/0 ! +; (11)2)3
.'"'"+ 8;%7)DE
.'"'"+'"
void sippRegisterEventCallback (SippPipeline * pPipe,
sippEventCallback_t pfCallback );
.'"'"+'
"!%%#$
1 % # #$ #
!"#$
.'"'"+'+
1"
7) 1#$"!#<#"%$%
"
.'"'", DE
.'"'",'"
void sippDeletePipeline (SippPipeline * pPipe);
.'"'",'
""%$ ##
.'"'",'+
1"
.'"'" 3$>DE
.'"'"'"
/0 ! + (11)2)3
void sippFilterAddOBuf(pSippFilter pFilter,
u32 numPlanes,
u32 bpp);
.'"'"'
"!%#D #"
!?"#D"
#D#" !9C%
"!#DD#""
%##
.'"'"'+
3 1"
8#""%#D
7 &<"%#DK
.'"'"( 3>>
.'"'"('"
void sippFilterSetBufBitsPP (pSippFilter pFilter,
u32 oBufIdx,
u32 bitsPerPixel);
.'"'"('
"!%#D# " 1%
?#<"#%"$"
.'"'"('+
3 1"
> ! %" K#D"
7 #<"%#DK
/0 ! +* (11)2)3
.'"'". B
.'"'".'"
void sippPipeSetLinesPerIter (pSippPipeline pPipe,
u32 linesPerIter);
.'"'".'
>!J#"(11!"1%
"','6"# %
#DH
.'"'".'+
1"
8#"!"
.'"'"0 7DE
.'"'"0'"
void sippInitSchedPoolArb(u8 *addr, u32 size);
.'"'"0'
>!J#"(11Q(11F1G
%$
"!%"!"(11!
#D%AA7Q(11!
)"#D
$9;: "!#"!
.'"'"0'+
&D"FG!%$
- (?"#D
/0 ! 6 (11)2)3
.'"'"* 830DE
.'"'"*'"
void sippRdFileU8(u8 *buff, int count, const char *fName);
.'"'"*'
7 #
.'"'"*'+
7= &D""
8#"#
9
.'"'/ C30DE
.'"'/'"
void sippWrFileU8(u8 *buff, int count, const char *fName);
.'"'/'
E#
.'"'/'+
7= &D%%
8#"#
9
.'"'" 8303"(DE
.'"'"'"
void sippRdFileU8toF16(u8 *buff, int count, const char *fName);
/0 ! 6 (11)2)3
.'"'"'
7 ")#6)#9FC")LG
.'"'"'+
7= &D""
8#"#
9
.'"' C33"(0
.'"''"
void sippWrFileF16toU8(u8 *buff, int count, const char *fName);
.'"''
%)#FG#D
.'"''+
9#D
> #D"
8#"#
.'"'+ 7"(
.'"'+'"
void sippDbgCompareU16(u16 *refA, u16 *refB, int len);
.'"'+'
%6)##D
.'"'+'+
/0 ! 6 (11)2)3
9#D
> #D"
8#"#
.'"', 7+
.'"','"
void sippDbgCompareU32(u32 *refA, u32 *refB, int len);
.'"','
%3)##D
.'"','+
9#D
> #D"
8#"#
.'"' ;3
.'"''"
void sippErrorSetFatal (u32 errCode)
.'"''
("%%#%
#
.'"''+
#$""
/0 ! 63 (11)2)3
.'"'( #B;
.'"'('"
u32 sippGetLastError ( )
.'"'('
7#"%$
.'"'. #;1
.'"'.'"
u32 sippGetErrorHistory (u32 * ptrErrList)
.'"'.'
7<"" (11[@77>7[C(>7Z[(c@
#"#"!
.'"'.'+
;B #?
?"F3Gd(11[@77>7[C(>7Z[(c@% "
.'"'0 #;
.'"'0'"
u32 sippPipeGetErrorStatus (SippPipeline * pPipe)
.'"'0'
7<"#
.'"'0'+
1"
.'"'* B>
.'"'*'"
void sippPipeSetNumLinesPerBuf (pSippFilter pFilter,
/0 ! 6, (11)2)3
u32 oBufIdx,
u32 numLines)
.'"'*'
%#"#D#"#D%
!F1!G##"%$#
!"#D?#"!%"
!T! #"
.'"'*'+
3 1"
> < K"#D
B #"? #D
.' 7)%
#6#%#%##%
sippProcessFrameNB
;%
(11[11@B8@[98B(@A 1# ?
(11[11@B8@[7@(C@A2B@A 1
(11[11@B8@[97@[A>8@ "K% "
$
/0""1"0"2&0(21032*/14(2 (+
/0""1"0"2&0(21/5(!14"14(2 0
(11[11@B8@[(7@A 1<!
97(:7)%7
$9;: #$#"<F'7YG#$"!#
%"
.'+ 3
@L# F(1..3LG(11"%$
#%3)## #%(11"%$
/0 ! 6+ (11)2)3
L#%%#;8L
#
3 !
1B9[7@Y27@([(E[1AA8: FaaG 7 %"(C=@
#H
1B9[28Y2@[(=2[>A@[(@ FaaG 8' #
1B9[([98Bc@A FaaG 7 (%
1B9[1[(=2[>A@[8[AA7 Faa3G E ("#
AA7JQ
1B9[728([@7[:7>21( Faa,G E (QA%
(C=@#AA7
1B9[A(&B@[>11@[>8( Faa+G E 9"%$#1
!%
#J""-
1B9[17>=A@[7[(( Faa6G E 7!!!F!QQ
"G
1B9[@8&B@[(E[Y2[2(@ Faa;G E @#(EH!
"
1B9[>8(A@7[>11@[7 FaaG E 1!!"
97.:I7
.', ;
.','" ;I
#L%#"%$
;K$9K$3K; >"FH#
! G?
;K!B K;K 1
;K8K$9K3$ 1"F $""
G@
;K 9K$9K3$ "@
;K8K $K9KJ$C (. 1
/0 ! 66 (11)2)3
;K!B K1CK8 CE1
;K!B K3B9K389KB; 9" "
1!"
;K!B K3B9KB9KB; B" "1
!"
;K#K1!;K#; "(E #82BB1
!"
;KB;;9; K3;9 $"
;KK@K;KBB$K;88 >1#.$Q#D#
;K$9K;@;K
;K$9K31K3B9;8 ( " !
"
;K 9KB# 2<+<
;K!B KK8@KB$$>J B#$"7QF7Q
3#$G
;K9$$KLK3B9;8 <-#" %<#e
(11[Q[9B@7([1@7[11@B8@"
;K!B KB9K9; "!).CE ]
;K!B K1CK 2%<+<
;K9$$KLK8;9 K#"<(11[9B@7[Q[17@8(
"
;K9$$KLK$;8 K#"<
(11[9B@7[Q[>8(2@7( "
;K8K9;8K#8$ 2%<+<(11
;K9$$KLK 8#"A <
(11[Q[A[9B@7([1@7[11@B8@ "
;K!B KB;KC 91 (%F#!"G"(E
-!#%?(E$
%!"
;K$;K8;9$K;88$8 "->(@
@
;K KMK$!;83B$C QA$HL%
;KK89;K3B8; 1<!
;K1; B#K$!3 H"%
!H?
(11[@(([(C@A2B@7[Y2[(c@
(
;K>B$JKBBK8;N;9; #$1%T!
/0 ! 6; (11)2)3
;K8;$K1; %-
"
;K3B;K3B - "P"
##%
;K1;K8;9$K3B -
970:;
.',' ;7
("# "%$
%""!"1#
# #""#1
SippGetLastError()F!;6G%$%
"%$% sippGetErrorHistory() F! ;;G
#"!9 sippPipeGetErrorStatus()F
!;G#$"%
"P1$"1
! 1 # "%$ "
"!
9""SippErrorSetFatal()F!;+G
%#$""%$%
"X#
$9;: AI#H66(11<%#)
1#
/0 ! 6 (11)2)3
0 1&2
&%"% %"
#"# F$G
<8"
3 3 $
2
B
(11[A[A 8' 8' A1
9 (11[1[Q[A
(11[1[Q[A
2262,23
13
8' <1 8'
8 (11[1[7Q[A
(11[1[7Q[A
(11[1[7Q[A
(11[1[7Q3[A
8' 2262,
2313
7<1 8'
(11[(:[A 226 226 (1 +
B (11[B([A 226FG
2FG
226 B1
8& (11[7E[A 226 226 7%1 '3'+
7 (11[A&Z7[A 226 226 A#1
# (11[:@8[A 226 2 :1 6
(11[(C71@8[A 29916 29916 21 3'+;
#OB9 (11[A>:[A 29916 29916 AB1 3'+;'*'
'3'
+
B (11[B2[A 29916 29916 ZA1
(11[C7>[A 2 2 A1 3
(11[@A[A 2 2 1 3
38 (11[2197A8[A 2916 2916 191 ;
B9 (11[B2[A 226916 226916 B1
; (11[@A:@[>1[A 2 226 @1 3
1 (11[C77([A 2 916913 C1 +';'*
% (11[>8=[A 29916 29916 1 3'+
7 (11[[A 9162FG
2FG
29916FG
2FG
#1 FBG
+FG
97*:"/1&3
/0 ! 6* (11)2)3
3 3 >= 7= $7=
1#D
'
B '
8C '
> 3 &'7:& 3 3
#OB9 , ' , ,
B + ' + +
6 ' 6 6
; 7:&' ; ;
'
* ' * *
7 B'7:&
B)7 '
; '
%) 3 ' 3 3
1 , ' , ,
P/Q + ' + +
P"Q 6 ' 6 6
PQ ; ' ; ;
9P/Q 8
9P"Q * * 8
8P/Q 8
8P"Q 8
8PQ 8
8P+Q 3 8 3
(#D
B :#D 8
B 8
7 8
B)7 B2#D 3 8
B + ,%B2#D , 8
7 3AB2#D + 8
8C A" 6 8
> 3 B 8
8C @!! 8 *
8C 9!! ,
8C B +
8C 7:& 6
97"/:3 O7=
/0 ! ; (11)2)3
0'"
A #""AA7Q"
A # $ "AA7
%AA7"""
"AA7A U#DFA G"A UU
#DAA7FA $G
A"!!%
" " " " !!
!"!!
&!!# "
"#
% %"# %1#% #
" ! A " V$W $
"'">&D%!
",#F#G.
%
$%
$
1
@ " " # " # !!
0'"'"
! %# "%$
# % (11)#D F >&D
QG9 !!!"$
!""!V$%W
#
/0 ! ; (11)2)3
0'"' 8
9AA7 # %FVB(WG"
# $E##
"#"#"(AA7$
(#!$E
/0 ! ; (11)2)3
3": 2 8
0'"'+ @
9 Q! # ($E #
! !F%#%G%#!
0'"', 2
DmaParam%"%) # .
>
3. AA7"AA7"""AA7
A U#D""
" U #D AA7 !!
)C 3. $E"!!
)C 3. $E"
) 3. $("!!
) 3. $("
3. 1("!!
3. 1("
B 3. B("!!
B 3. B("
/0 ! ;3 (11)2)3
3"(: 2@
0' 8
9-1()'A(1
++"
$ 9<#""17Q
!%%#))!
<!#$#!F"7EG
"
7= 8J"17Q"
$ 26"
-2'26'23'>3
-1$7:&F3#G
-1$Z2=F3#G
7E'Z#'7:&,
,
97"":82%%&
17< 17<" +
+F%#G"1
>
=(Z8 =!?!
C(Z8 C??!
A 3 "
=BA
97":8D%
A$17< $$(11
$#""H17<"
#"(11$%?!
9;%#$"17< L<#
"5"
7E'"Z2='Z#'7:&"-"
'"Z2='Z#'7:&!#D
/0 ! ;, (11)2)3
3".:827)
0''" 83
0''"'" C&
"1#%%<"
% %%F%%G"% ""5'F#
DG
<",F)G%%#%"<7:&E
<)"#"#D
%% ""F<G),<)F< <<
<3G,)F3G% )P",%%"
"%F#?<#!G.
(%%.<
(%"%%.<3<,<
("%%.<<3<,
<"%%
@"%%%#%%%
D%,#%%%%"%%!<<
<<3!9%%"%"%%
%#H%""C%"!"
#D%"%%##H%""
@"%%%#%%D%
Df,#%%"%%!
3!9%%""%%
#H""
$<)#!%
"%%%%%!
E%#9<"#)+
+%?.
7 :
& E
/0 ! ;+ (11)2)3
%7':F"G%
&'EF#-"Gf"7':&'E"!
"#"%#!"#-#" UF)
G%% "#-"%%
"#
9%<<%%%% "%.
E%FGFG<)F<<G
E%FGFG<)F<<3G
E%FGFG)FG
E%FGFG)F3G
" E%FGFGFFGFGG<
))!'#-F G""
"%! !"%%FG
%%.
<a<`
%abF<`J<G
a`
abF`JG
%%'%%%%
A" D %% F!G# "#D
#""#"%%J<",
#""#D#
/0 ! ;6 (11)2)3
3"0:;8&&8C
8#>C
?#"%%9%%
FG"P#-"
0''"' )
"3## #%!
##3#$%8A%)P!
%"<#$D"#9<"
+!#$'!#.
bFee#Ggf
&5!#?$<DDDD"##"#$
!" #"%%" ##%-
9"L<#!#'#"'<'"!
#<FG#$f#$T
%'"
0''"'+ >)%7
9 7E #$ #! # " 9 # 6 # #$
#.#$#$#$#$39&#$'#$'<
#$'#$3 '<9FG#$
#$#$ #$3 "3!&$ #!#
#"%%"#!$"L%f
??
0''"', 3%
%##%#%
"#)P###"#
##!#%#FP)PG#
)PF#"#G""#"%%#"
##"%%
0''"' >=
#$##$1"%#"+6 "
#%9#$%%
%"!"P"6#
"%$%#+
0''"'( $
#),#"# " U(11>&"M8N"
%?"##8"
"#D"<)"#%%
#"#<<#"
/0 ! ;; (11)2)3
0'' 82
>
+.
3.6
17=@J"<
9%
9
.
;.,
.
6.
;
*
3.
,
+
6
3.
$(
J$1b$17Q
J$1bF$17QG'
J$1bF$17QG',
7
7
9#F%%G
9)PF#"#G
&' !F"#$#!G
J1FG
J&
> !
JA"%%%-
JA"%%%-
F"G
1$&D
""-6#%<#$
"#D99>
&$#!#F%%G
2$%%
2$
1"#6#
#f=##)
&@P,Q +.
3.6
<[J<)%%%
<[%J%8%%F8b3G
"$%%# %
"%%
&LP,Q +.
3.6
[J)%%%
[J"8%%F8b3G
/" ,.
.
*.+
;.,
B #"E%!
(!#F#"#<
$G
&J<
&J<
&J<
&3J<
B #"E%!
(!#F#"#<
$G
/0 ! ; (11)2)3
>
&J<
&J<
&J<
&3J<
+ ,.
.
*.+
;.,
B #"E%!
(!#F#"#<
$G
&J<
&J<
&J<
&3J<
B #"E%3!
(!#F#"#<
$G
&J<
&J<
&J<
&3J<
)P,Q .3 (!$"%%8F8b3G
7)/"
+.
3.6
&$
#$J"E%@<"&
#$J"E%><"&
7)+
+.
3.6
&$3
#$J"E%@<"&
#$3J"E%3><"&
%7 +.
3.6
=!#$( !#$
FHG
1$(#!"#
/0 ! ;* (11)2)3
0'+ 9
26FH!G"
)2'26'23
)1$7:&F3#G
)1$Z2=F3#G
$ !"136""
()'A(
7= "
$ 1()'A(136"
97"+:Tx2%%&
0'+'" 92
>
"A
+.
3.6
17=@)"<
9%
9
"
3
+.,
(
J1
J
99
J2! !5"
J2! !5"
A
J!
J
B"C(Z8'=(Z8%!9(AB@
$(
J1<$b(11$F !
G
J1<$b(11$'
J1<$b(11$',
=!%!
/0 ! (11)2)3
>
;.6
*
J=(Z8
J&$1
J!
J91
B"=(Z8%!9(&I1>7C
B"=(Z8%!9(97>81>7C
3. B%
3. =!%!
J=(Z8
J&$1
J!
J91
(E 3. ( %1BI$"
?FC(E)G
&$1 3. ( #"1BI$""
?"?!
FC&1#$"
#G
!E 3. ( #"1BI$?
!!F=E)G
91 3. ( #"1BI$""!
"?F
C91G
(E 3. ( %"!
F=(E)G
" %
&$1 3. ( #"""!
"!!F
=&1G
" %
/0 ! (11)2)3
>
!C 3. ( #"!!!
F=C)G
" %
91 3. ( #"""!
"!F
=91G
" %
((>D 3. 8#"1BI""?
=!91"!
" %
(@>D 3. 8#"1BI""?
=!(!"!
" %
/0 ! (11)2)3
0',
26#7EF&-&G
$ E &
3) +<+
B7= Z<%,6,
$ 26#7EF&-&G
( % &
#)&#!
% # (87 ! " "
!# "",&#L
%#!"
<%%"*<#&
%$+<+##<&::#
)# %$3<3#(
"*<@<#%"
1< %"%=K
"%.
V '=
∑
i=
1
9
Wi
⋅Vi
∑
i=
1
9
Wi
%=<##F<GE
% < % # ! #
D #% < # <
#%!"
"!#)#!
"#DH#<%"
"#DH"<%
""#D#<%"?
% %<<#""
%CC"%.
N
=
max
(
NF ,
√
(
L
))
TH
1
=
N
⋅
T
1
TH
2
=
N
⋅
T
2
%89)#89B<#
)#8!""!"
#<
/0 ! 3 (11)2)3
9""!FG#&
1!"<"%<#$<#",!%
#$C%&!F:7&:#G&"
E#$!
#%%%<!&%&>:7&:"
&>D"<!%#D
0','"
0','"'" >)%7
&$#!#" <# SigmaParam::blcGR
SigmaParam::blcRSigmaParam::blcBgSigmaParam::blcGB#F(5#$
##$#!G
0',' 2
( A SigmaParam % "%
) # .
/0 ! , (11)2)3
3"*:>%?>
>
3 3.6 9
+. 9%
P/Q 3., &!J!2FG
3.6 &!J!2FG
+. &!J!2FG
;. &!J!2FG
P/Q 3., &!3J!2FG
3.6 &!3J!2FG
+. &!J!2FG
;. &!J!2FG
3. 8LJF%
G
"<#AE
&
;., A<%J
@#)
7E".
J1
J&
7R . &-F.:7&:.7::&.:&7:3.&::7
7#8 +. &.#$":71<
1.#$",
78 +. &.#$"71<
1.#$"+*3
7> +. &.#$"&1<
1.#$"6,
7#> +. &.#$":&1<
1.#$"3;+
/0 ! + (11)2)3
0' 8&3
2,#7EF&-&G
$ :':##!
C<
A!
1)#'!!!F@'E&G
1)#9
C
3) +<+
B7= Z<%,6,
$ 2,#7EF&-&G`!!
7E &-)&%
D"#D
9& ":':###$!'"
<!+<+<$:":':##
"%<.!C%""<
"%A"<!# F::#G<
7&<
9&:':##F#$!G##""
<"%!
# " 7E # #% 6 6 # % F #G
#"7E "##"%#D#?%
"$B(#"#"##
#D#?%"$B(#"
"#
/0 ! 6 (11)2)3
0''" 3
0''"'"
""!!%##.
(!!#"@'E&F@<')E)&G
(!!#"9F9G
+6)#BC
)#7:&
9!!#D@#D#
F # G # " <
!#"#D
#6,##
9&@'E&!!F"!
G " " )& 9 !!
!"%&)&
B C !! B " &
%FG")&7:&!!
"&F7:&G")&
8!!%"!#
0''"'
(!"<!%$#""Q7E K"
#D#DK##"F#G
""3)#"F%"!%
#%$##%G#
" < !
&(@"#D#6,##@"
FQZG!"%"!<%#,
#%"!<%#%
FG8<""!<#
>2 2
3 7'&!!#
JC?!
J=!!
3.; 1#
6., Z)""!<
3. Q)""!<
97",: 72
/0 ! ; (11)2)3
A"!<":"&%##",
<F"#G"7&"!<
#"%""<!!
#"%7&<##%
?#%!#
8,#"Q)#3#"Z)
<"QZ<"!"%.
"FQZGHF<3999<999G$""%#
"Q)<3999#Z)<999#%"
<f<%Z%#
!%!!##F!!G
#%!"<<"#
"<f"H
"!"!!##F?!G
#
"""#DH# #D
K"" K#D
"%"")99>% #"""
"##99>
"%"%""%#%"
%1%"%
#<""8 ""%#
#!"!#"#D#
##"##
0''"'+
A<!%$#?"<%
<+<+#&F#GF$G<#"
<#F"<G
F"<G!"
#"<":<7'&<!
%#"
%$##!"<#"
0''"', #O#77<7)
7E "!? <)!""
2FEG%E *7"'889#
:':##!##%:F<?T
G:#F<?T#G&#!#
#<F#<GF#$G%D!VW
%#<%:':##!"<
! % :':# # VW
!"#$! %#<+<+
D!#:':##!"!<
/0 ! (11)2)3
" +<+$:':###$!
# < # "%. " # $ :':#
# %"T%f%"
<F<"$G"<#
<":':##<
%%"f
0''"'
7E!"96#2FG"26
!#*7'88/:;<
%#"!.<,<,
<."%<&9""
!<&#$#$&>"
#(M,N#+
,<, . " H
*7'88/:<<*7'88/:<<
*7'88/:< < *7'88/:<
<3*7'88/:<<,
0''"'( ;OC>
"#7E %#" ! #"
!!#DF8$
#D#D#6,#G
A " " # %
7%1..1" 7%1..1( 7%1..1($
7%1..1#"<F""&G%
#"?!% #
<#"6,<6,<?+6<+6>"&
#J7%1..1#9
&"#7%1..1
# #?#!JF<G)")P
J?'!<%'F=
"??G
%#.$#1<
$ # # "
>%#"9%
!&"<<#$"
<<#$# ""
#"<F<#$"&G%%"
)
! " #" ?"
!,##%-!!#D23
/0 ! * (11)2)3
7!! >"
"%% ?!!FG
%-!!#D7?
@'E&!!#D" %"
%#"%# %"
%##"%#
%"!%"
0''"'. 3
9F9G!!##"@'E&!!
"@'E& "#%
!.#%#?!?E
!&9:.#<
/0 ! * (11)2)3
3/:2
9% 7>F "G ##< "9 9%
7 <%7> " P @ "
#X##!#
"% ")!9"%
.
("<# %#
("<# %#
("<%"
("<%"
("F G<
0''"'0 B
"B"
RawParam::statsPlanes#9)&%
9&B#%3<3$%
"%X.
/0 ! * (11)2)3
3":32<&8$D8$E
[ [1, 2, 1],
[2, 4, 2],
[1, 2, 1] ] / 16
$%"7b+:b+&b+<-%&
"$8D" #<
#"<?#Fd%`dGJ,%%%
"!
+6##++23&<
#"<9<"<<36* #)
"7E#signstatsFrmDimificant#<6F
*Gf#*#
7!!#D
!#""<"!!#
#""
%""
0''"'* 8#>
""7:&&
B)&"
7:& RawParam::statsPlanes
#
@##;23&<;
#"<9<"<<36* #)
"7E#; #<36F+,Gf
#+,#
/0 ! * (11)2)3
0'' 2
7% RawParam%"%) # .
>
3 3.6 9
+. 9%
7 *.6 1&J<D!#
"
3. 1A$J<D!$
"
7 3.6 AFG"D!#
"#eb"
#F#1M3.6NG
+. AFG"D!$
"#eb"
$F#1M+.NG
7 3.6 8BJ#?"$
!%%#
FG""%
#<!
+. J9":C<
. J9":<
;., # J 9 " 7'& C
<
3. #J9"7'&
<
; (!"!#E"
"Q K<#DK#
(!"<!"
%""
, 7:&#
3.6 &<!
3 9#
:(.
J,<,
J<F&9G
. %J
; B#
6 @'E&(#
+ C'<
, C'<#
3 :':##!#
/0 ! *3 (11)2)3
>
. &-E&"
& !%)&#
<
7E".
J1
J&
P,Q
MN:7<#,
MN:7<#,
MN:7<#,
M3N:7<#,
3.6 B%<%#P
926
+. :<92
> 3. @!!#D#J#)#
!1"@'E&(!9&,
11#9&
%#!
. #"!)11%
#%11"
%H![[
bH111
1
*.6 BC1
+. 113
. 11
;., 11
3. 11
3
3.6 9
+. 9%
! !
3., 1JFG
3.6 1%JF%G
3. Z[8J#"!J
+. Q[8J#"?J
(!" F)PG"@'E&!!
3.6 Z)
+. Q)
/0 ! *, (11)2)3
>
) 8#"<")P")P"<"
@'E&!!
3.6 =#Z$)
+. =#Q$)
9 3.6 A$<"<F<<#$
"&G
"< F <#$"<G
#
+. &<"<F<<#$
" & G
"<F<#$"
<G#
3"P""Q X")"
*. 9 X8(FG <)"
3P""Q X")"
*. 9 X8(FG <)"
9 3.6 ")!"
+. ")!"
7 +. = # # ! " < # " 7
! !"9(!!
1JFG
1%JF%G
Z[8J#"!J
Q[8J#"?J
(!" F)PG"7>"
)"!!
3.6 Z
+. Q
> 3. "#
B> 3. B#
87> 3. 7:&#
97":8&?272
/0 ! *+ (11)2)3
0'( B2
2,#7EF&-&G`#)
$ B'!!"<
"#)
3) 1!##!"F<$G
<"3<3:
<"
B7= 8
$ 2,#7EF&-&G
B!F!)5G"D#!%#
" < " % " "
!#"#!%!)
!F)"#9$G#
#!%#"
#"#!
<!#<!
#"!
!FB(G &-F7:&E"
G
# " # #% 6 6 # % F #G
#
0'('" 3
#&1"
Q2""
"%%?
<?,<,!#
"!""#""
#&",#&
-&>"&>"
0'(' 2
LscParam%"%) # .
>
> 3. Q"!
C *. E"J#!",
/0 ! *6 (11)2)3
>
1 *. C"
3 b1
b&
C 3. &<"=M66N"
"<$#
" "<$%
#
/0 ! *; (11)2)3
0'. 7O2
7E&,#
$ #H%
CH.!#& #
!?!"CA#)!
1%.%?f!?%?#%#
3) CH.+<
1%.,<,
B7= Z<%,6,
$ 17:&6#F#)%G
916'29B
& )H!%!
#7:&'B
/0 ! * (11)2)3
3:9?%%%&> 2
0'.'" 3
0'.'"'" )
&)#$#$$2$6
#<"#"#$
$"$"#7E #!+
0'.'"'
& @<
"3.#&+'%$%%F$G
"#<"7:&F#G"<
(11& #!?!"CA
F!CAG%#)!CA
!##"$"
%(87%# "#)!#%?
!" <!"CA
%#)!"CA&
#D
,7:&&-- #<" %<
%"&." F7G%
F:G<%#F&G%#<f&-
:7&:f" <&-7::&&-
#A#1.."#f,&-
"%.
:7&:b
7::&b
:&7:b
&::7b3
F""7:&Eh:7&:-!"E<
!"&-G
0'.'"'+ %
6#!$"#"
"% 6 # 6 # #P)P % ##
!"(&"%#%
@"#6#"%.
RAW16 = RAW8 << 8 | RAW8
@"#6#"%.
RAW16 = RAW10 << 6 | RAW10 >> 4
%" A#1.."#"%"
"%6#$"(&"6#7:&
/0 ! ** (11)2)3
0'.'"', %&
!")!)H%"
#%7:&#""!
%#V#W %!"
&7:&1%%!%")!
"(1i#"<
E% "%#$"
PJ #$"#
0'.'"' B$
B"#&B7:&#
#'#B"7:&#X
VEW"%))!%$"
%)! #$"%".#"
%(87%F"!#%G#"
! !#%#
#"%)(87"%%")(87
"%#"F
G
B%)(87C)(87"7#"%.
a l p h a
=
(
l u ma
+
g · g r a d ie nt
m
u lt
+
o f f s e t
)
· s l o p e
FG
R o u t
=
Rl o w·
(
1
−
a l p h a
)+
R hi g h ·a l p h a
FG
E*7""%)(87!*
""!'#!"
/+1')# F#
O#[)G%MNP:&
%7
0'.' 2
DbyrParam%"%) # .
>
3., :! <)2F;G""
#!"?'!
6.+ 1!"!"&A"
"&"3F7:&G=
,. >>
J7:&
J&:7
J7&:
/0 ! (11)2)3
>
J&7:
J:7&
J:&7
. >%J
;., %J
3 97&?9%7:&E
BC9%7:&E
. &-.
J:7&:
J7::&
J:&7:
J&::7
F"7:&E):7&:G
%B7:&
!#
@#1%.
JCA'&#%!
#$#!
!
J1%#A#$#
!""!
; @#B%
6 @#B!B
+ @#7:&
,.3 "#
. "
& 3.6 A)% D F H! #G <
"
+. A)%FH!#G6)#
C 3.6 E7"B!
+. E:"B!
;. E&"B!
/0 ! (11)2)3
0'0 #OB92
916'29BF"#
" G
>! B8!#AD":
9$ 2+<+
B#D Z<%,6,
> 26"916'29
A:'BFBG B"(1
"%T"!.
7"B%9HAD":FA:GH
!"BFBG
0'0'" 3
0'0'"'" #>
A: %)"H($?#+<+
#"%)"H;<;B #
%)"H#!!
"H % % % # # #! %
:) " # " ! $
X % " X " : $ E !
X"(##""H
P!AD":%##
?##"P
#!##MND"
"H"C%!
D!%)"HL#
T!%BA #BA
#$##9$)
$$ !!?
!>$?"+<+?"<+<+:$
<"("+<+$#"
<$D"($6X
"<$F !#G
X"+<+$
A: %.
A
A:)
A:) AD":"%!
/0 ! (11)2)3
%A: A:).
B#
>916"F29G
%3
A:B##'#
$9;: E!A # : % #
#!#"<#$#"#
#D1:$#$
! # ! ( # #H
""H"D" D
":$%"!":$
# FD"(G
D
E!A:)##H$
0'0'"' B9DB9E
!)B
#"<
!#F<G$"%<"
.
/0 ! 3 (11)2)3
3+:%"O"'0&<7
/0 ! , (11)2)3
3,:%"'0<7&
3:?%?<7&
""##B%#
"#<"E%
!!%#F
"$G%%$
)"#
#"
#"%## AD <
D %6$
% # F #$G #%%
$)!# %<6VW
A"2FG%&
!"#%).Q<#$
Z<<$.
/0 ! + (11)2)3
3(:%7B92
#$< <#
#%#
B#$*#
8 #$"
#$"8" $)
" $)&5 $"
!5"$)
!#
#&$!
" %"<
<#<
8 #&$ #"
<#$&$ #
D! "<< "" ! " &$
"!#!#"
/0 ! 6 (11)2)3
3.:>:%77)<)?
7
#
0'0' 2
DogLtmParam%"%) # .
>
*.6 =3+;*3+B"A:
: !!> #"
""#D""
%?%
X!
%"K!
#X"5
+. 8#"B
., "B&$:!
3. B#D%.
J1#
JAK#
JC? <)"! <
)"
( 916MN
*. 29"#"AD":
?
. >!.
JA:FB#G.
AD":
JB)A:#'#>
JAB#'#>
AD":
JA:`B.
AD":
="" 3. 1X_+"<$
=" 3. 1X_;"+<+$
;. :D"929
% 3. 1#"#29"
/0 ! ; (11)2)3
0'* B 3
916'29B
>! B%
9$ <
B#D Z<%,6,
> 916'29B
BA ;<; B%
%"%# "
"% "!"
"!"""
#%"#V:A7"W#$
""%!>%#"<
;<;#%"<"%.
I
out
=
∑
i
=
1
n
W
i
I
i
∑
i
=
1
n
W
i
% < ;<; # E %
!
/0 ! (11)2)3
30:9?%I&B 2
/0 ! * (11)2)3
3*: 7?7)
3+/: &&&
@%#<("(HADF((AG#
+<+%%<+<+%%#<
##<;<;%%%#"
#<##<%+<+%%<%"((A
!#<%+<+%%"<%"!%E@D!
,* +<+((A!" %" <F
!!??!HG(;<;%
((A%%+<+"# K#D
@((APB2!PB2
# " F #%G 9
!% #V9W$#"%"
9$%%#!#"",%%#
"! " ! " < 9 $#
")P,<,!"$#%%!
#
69X 3)#%9X
#)X)#%!"%.
>H
,
/0 ! (11)2)3
3+":3)?G
>H
3
P%!<#%)
#"!##%MN
(""%<%
<"%%D##%
! E
F%##PB2##%G#
!" V W < VW
!!!
0'*'" 3
0'*'"'" #2
0'*'"'"'" CB97
"%%%((A%#%.
assd = assd >> bitpos;
if (assd > 31)
weight = 0;
else
weight = lut[assd];
"%#%<"%VWV#W#
.
% Generate programmable parameters based on desired denoising strength
function [ lut bitpos] = makelut(strength)
if strength < .001
% Avoid division by 0
strength = .001;
end
if strength > 2047
% Limit to prevent 'bitpos' > 11
strength = 2047;
end
bitpos = floor(log2(strength)); % MSB position
if bitpos < 0
bitpos = 0;
end
npot = 2.^bitpos; % nearest power of two (rounding down)
alpha = (strength - npot) / npot;
divisor = 4*(1-alpha) + 8*(alpha);
sigma = .05;
if strength < 1
% Reduce sigma when 0 < strength < 1
sigma = sigma * strength;
/0 ! (11)2)3
end
lut = (0:31)/31/divisor;
lut = exp(-(lut.^2) / (2*(sigma.^2))); % Gaussian
% Quantize the LUT entries to 16 distinct values
lut = int32(uint8(lut*16-1));
end
#"!VW"!
D!" VW<
B2%<!":VW"
"%:%%%C%
%FVW<%"%G%V#W
!#$%:7"Fee#G3B2#
%>%+#"Fee#G<B2&$
V#W%+#""#%"
)?% B" % <
" # <B"V#W
%""<%#
0'*'"'"' ?7B9
)#B2%""!"
""(#!)5
(87"%""F
"G#-""!
""-!%#D"
-!)"%%!
"D"!"""<
"%".
I
=
I
∗
cos
(
√
(
x
2
+
y
2
))
4
%<`)P##
#M++N)B2%"
H))"!(B2#P%
)"""D
"%#%<"!##P
B2"?VW"!"D%
"!">"=%" """%
function [ lut bitshift ] = gen_lut_bitshift(angle, width, height)
w2 = width/2;
h2 = height/2;
% Maximum value that can be put into LUT
maxval = w2^2 + h2^2;
% Find how many bits to shift values right by, so that we can use
% an 8-bit LUT
/0 ! (11)2)3
shift = floor(log2(maxval)) + 1 - 8;
x = 0:255;
x2_plus_y2 = bitshift(x, shift);
cornerval = sqrt(w2^2+h2^2);
lut = round((cos(sqrt(x2_plus_y2) / cornerval * angle) .^ 4) * 255);
end
0'*'"'"'+ %
""!"<)$
#""#%*)
)#B2 B2<M3NB2
<M3++N("$< )B2
"%"M++N
"%#%<"!B2":.
% Generate two 9-entry LUTS: one which spans the range [0,32], and one
% which spans the range [32, 255]
x = 0:255;
lut1 = uint8((x(round(linspace(1,33,9)))/255) .^ gamma * 255);
lut2 = uint8((x(round(linspace(1,256,9)))/255) .^ gamma * 255);
0'*' 2
YDnsParam%"%) # .
>
, KK#",%$)#
"
.6 )P"<`#")
#B2%!"
+. >%
3. &!)P"D<B2
BP,Q 3,)#B2%BM<N
3. B2F<dG`;
;., B2F<dG`6
3. B2F<dG`+
*.6 B2F<dG`,
+. B2F<dG`3
. B2F<dG`
;., B2F<dG`
3. B2F<dG`
/0 ! 3 (11)2)3
>
9,<,)#B2
3.3 7%33B2
*. 7%3B2
3. 7%B2
. 7%B2
BP/Q B2":"
3., @3":B2"M3N
3.6 @":B2"M3N
+. @":B2"M3N
;. @":B2"M3N
BP"Q B2":"
3., @;":B2"M3N
3.6 @6":B2"M3N
+. @+":B2"M3N
;. @,":B2"M3N
BPQ B2":"
3., @":B2"M3++N
3.6 @":B2"M3++N
+. @":B2"M3++NF]G
;. @":B2"M3N
BP+Q B2":"
3., @6":B2"M3++N
3.6 @+":B2"M3++N
+. @,":B2"M3++N
;. @3":B2"M3++N
BP,Q B2":"
+. @":B2"M3++N
;. @;":B2"M3++N
3. "F,%G$)#
$= )#F,%G$)#QZ!D
3.6 Z)DFG
+. Q)DFG
3 3.6 9%
+. 9
/0 ! , (11)2)3
0'"/ 2
916'29
>! @$1#F#G# $
("!## $%
9$ 3<3+<+;<;
B#D Z<%,6,
> 916'29 F$G
$)"!
$.
2.!$
<
C
!"
" # # $ ;< ! 97 <;
? 97 # " ! " # "! F
: G?" $#"3<3;<;"$?
< X#?
" # FG X # !
F!'?G X#3%3%<
" $ F%G < F 21.."
21.."3#G 916!9#!
"F;"G X#F#G
9%#$" #$!"%.
# #"<$$#$
/0 ! + (11)2)3
0'"/'" 3
0'"/'"'" 8
7!9<%U
%$"%"#
)!!#%
) # " F
21..( 21..(3 #G 9 < U % %
#M+N"M+;+N
%!E%""j++;+k
"<%3<3
#$%"%X.
[ [0, 1, 0],
[1, 4, 1],
[0, 1, 0] ] / 8.
/0 ! 6 (11)2)3
3+:27)
0'"/'"' 9<
P ! " $ ? " #
# C7@(C>BA F 21.." #G P $
!#"%#A@B%#$
<(7@8[1>("!%(7@8[8@:"
!F21..#G
0'"/'"'+ $%
"##%#916.>=@7(C>>
28A@7(C>> F21..#G"%%" "
D"<>=@7(C>>28A@7(C>>
"%.
>=@7(C>>b`'
28A@7(C>>b'>=@7(C>>
# 28A@7(C>> " >=@7(C>> % % #
!.916#MN
#MN!<
<3<3#""F##G
!M' '6N <# M28A@7(C>>
>=@7(C>>N<#%."<"
" '6d>=@7(C>>'6d>=@7(C>>f"
'd28A@7(C>>'d28A@7(C>>
0'"/'"',
"!##%
% #% " 916 % # M N
21..#
blend = (clamped sharpened data * alpha) +
(sharpened data* (1-clipping_alpha))
0'"/'"' >
"!## #)#$#
5#,"21.."#"##
$%-#D!$
F"%!"!G#"
#5#+"21.."#
0'"/' 2
UsmParam%"%) # .
>
3.6 2$?"K#
F916G
+ >(
/0 ! ; (11)2)3
>
%`
, ( (#
#;<; $F"#G
3 >( 916M
N
. I? %"<$F3abI@78@B[(c@
ab;G
3.6 8!F916G
+. 1!F916G
+. (B1CF916G
(
3.6 >J916MN
+. 2J916MN
/" (
3.6 7F916G
+. 7F916G
+ (
3.6 73F916G
+. 7F916G
/" ( #$X
: XF916G
: XF916G
+ ( #$X
: X3F916G
: XF916G
0'"" #3
3FG"2'267:&
>! -(!#)"!
-7!"19!"
-A!"$
-:!"F!G
9$ 3<3
B#D Z<FG%,6,
/0 ! (11)2)3
> 3"#)2
: "#""!.
7?#"
719
A$
:2"
7:&#"7:& #:1.."#
)"#
$9;: E "1%7:&
"&#"###"&
#
A%?"#",<<#$
0'""'" 3
0'""'"'" 3
L ! # "
!"!#
0'""'"' )
A$ ! " $ % "
!#<"
%#D"!#
"%.
α=(max(R , G , B)−offset )∗slope
MN"%% "!"<F7:&G.
!""###%F7:&G
<KBB"%.
L
=
a
∗
R
+
b
∗
G
+
c
∗
B
FG
%##X#""%.
R
=
R
∗α+
L
∗(
1
−α)
G
=
G
∗α+
L
∗(
1
−α)
B
=
B
∗α+
L
∗(
1
−α)
/0 ! * (11)2)3
0'""'"'+
97:&#"7:&#B
"%.
Cr=R
(L+epsilon)∗Kr
Cg=G
(L+epsilon)∗Kg
Cb=B
(L+epsilon)∗Kb
EBH!FG#III##X
##8"#
#"#!"%.
Epsilon12 = (Epsilon8 << 4) | (Epsilon8 >> 4)
#"#"#!
0'""' 2
GenChrParam%"%) # .
>
3.* B#D%.
J1#
JAK#
JC? <)"! <
)"
&F#)G
;., %J
3.6 ! "$!
+. >D "$!
;. ("19!92F+3G
X"B!
3.6 E&"B!
+. E:"B!
;. E7"B!
X"!
3., KI#K!
3.6 KIK!
+. KIK!
/0 ! (11)2)3
>
;. KK!
/0 ! (11)2)3
0'" 3
229!B#D"
>! A % #$?
(% FG
#%#B1D
H!
9$ 3<3+<+;<;
B#D Z"<#)
%6F,6,B%G
> "<#"
'!##!'<"
!
!! $?
#3<3+<+;<;1.."#8""?"
$?# J$?#<#"
"<"<#
%$
<"#"#
!# "1.."# #
' ##%
#%! "<f<
1<H
)< #"#
!#++
0'"'" 3
0'"'"'" 7
1 #)3)
##%#B%
!%"!#%#
%!! D%$B#""%.
alpha=(sub-sampled(luma)+offset)∗slope
output=orig∗alpha+median∗(1−alpha)
ED#1..#>D#
(FG#2FG
7 " # % # # "
1.."##91629""916F#
/0 ! (11)2)3
9>7# "1.."#G29 )
"#)##)#"%5.
(#)#"1.."##?
#)#$<#)!# %
#D P
#DB(#<"!
#DK#"81#F3#
""#H!G
#DK1(#D""
FH!%81eG
0'"'"'
# %"!.
"<#"
<<K#";<;$!?
92%7%
47<''-2)"<
,0..)'
0'"' 2
MedParam%"%) # .
>
3 (#%#D
#"$?
<$?
* (##?!#)"
"#
(###"
"1
,.6 *)#><C7@C(>BA
A")<
3. A""? ""$
. %"<$F3abI@78@B[(c@ab;G
727'9%/
%'
#
+. ("#9
2FG
;. >D"#9(FG
/0 ! 3 (11)2)3
0'"+
23"#)2
>! %#< A)
%#3<3! !
" !?3
9$ 3<3F!) G<3
B#D Z<%3
> 23"#)2
A %#%)
"H%!<
" D !!"#<
9" !? %$# "
<%<K#(<%#
9!)(!%
#"!)!%#"
%#" 1B8@[>A@# "
A1.."#F#"JG(""
"%""%%
" FZ#G>"# #
%#"# #!# <!
!#%%""!%"
#-"H%$%%)
""%
)HE"
!)%
"%#!%<
"%"
) !"A
3<3 ! # # ? !
X#.XX)
X
/0 ! , (11)2)3
PA!:A! %<
VW#"
9<%!!(1#%
%FGK$! ##"
VWFG:!
%$#!D#%<A%
#:A! "%.
α=
abs( Cr - greypoint[1]) + abs( Cg - greypoint[2]) + abs(Cb - greypoint[3] )
α=(α+
offset
)∗
slope
α=
clamp
01
(α)
C
r
=
greypoint
[
1
]∗(
1
−α)+
C
r
∗α
C
g
=
greypoint
[
2
]∗(
1
−α)+
C
g
∗α
C
b
=
greypoint
[
3
]∗(
1
−α)+
C
b
∗α
! " l # # " # 5 : A 1 #
A1..1#
0'"+'" 3
0'"+'"'" =
D##"!"&
B:B7B#B#"
#?!M++N
0'"+'"'
!!<$#D#%<
< % # F
A1..MN#G"#D =@7[<
%""#D=@7[<
/0 ! + (11)2)3
3++:9
7G
++%
%"%<$!#%
#"%!%#""<"
P% ##9>7@[E@:C([=FA1.."#G#
D
?!# "!%
" ""> 3<$
;3<$!"C>7[
C>7[?"=@7[=@7[!%
#""<"P% ##9>7@[E@:C([C
?%<""
@"?####
P!? ".#D#%
< <"#D#
FBG <"#D
D#%<<`')B
0'"+'"'+ ?
!)%"
#
!!<$#D#%<
< " " 3 D 3
#F=@7[<=@7[<=@7[3G"3<
%"%%"?F"%!=@7[3G
< $!# % #"
%!%#""<"P% ##
9>7@[E@:C([=#D
?!# "!%
" ""> 3<$
;3<$!(
"?!"FC>7[C>7[C>7[3G%#
""<"P% ##9>7@[E@:C([C
#""?####
P!? ".#D#%
< <"#D#
FBG <"#D
D#%<<`')B
0'"+' 2
ChrDnsParam%"%) # .
>
3., (":A!J2FG
3.6 >D":A!J(FG
+., 8#"=#"
J.
/0 ! 6 (11)2)3
>
J(1FG
J%F!)G
JF!)G
3J
3 9%!
9%?
., B
3 7
. C? @#
& ?#
P/Q E
3., (=!
3.6 9=!
+. (C?
;. 9C?
P/Q E
3.6 =!
;. C?
3 :!9l!
!D!#!
3.6 7"%
+. :"%
;. &"%
3.6 X29"
+. )F))G X29"
;. X29"
/0 ! ; (11)2)3
0'", 72
3"#)D
"916'29B
>! 2)#%B7:&)!
<D3AB2
9$ +<+"
B#D Z"<#)%6
F,6,B%G
> 17:&916'29
#! #B"!#$7:&
<## #<
7:&7:&<F%#"!!G3<3
<"%#!"3D%"7&
&96<6<63AB2
0'",'" 3
0'",'"'" 7
VW #%%!
: 8%": "@
:1.."#M<DN%"#! "
@#1..$#MN#M<D"N"
#! ##""6
$[$[$[##"%.
k_r=256/Kr
k_g=256/Kg
k_b=256/Kb
%III#%#H"
: K("<"I%+$[%#3
([I[7 2F,G"3d+6b;;b<33%#
0'",'"' + B9
3AB27:&7:&)##!
#6<6<63A%7:&"29
7:&)%3A%#3AB2
#"7:&%#
"$"'9<
/0 ! (11)2)3
#$$#$"#
3A#H"A@A7%)T%7
!FQ<G:!%FZ<GE"A
"#&Fc<G93
"<
#H<#%93
"F7:&G6,#%%93
/0 ! * (11)2)3
3+,:97+ B9'
/0 ! 3 (11)2)3
3+:97+ B9
0'",' 2
ColCombParam%"%) # .
>
+., 1!"!"A""
3F7:&G=
+ @#29F916G
, %KK)"3AB2
#"<"
3 &F#G3AB2
. #
J,..#)?!
>""
9
)7P/Q #!IX
;.6 X"FG
. X"FG
)7P"Q #!IX
;.6 @"
. X"#FG
P/Q T<MN
3.6 MN(F6G"
+. MN(F6G"
P"Q T<MN
3.6 MN(F6G"
+. MN(F6G"
PQ T<MN
3.6 MN(F6G"
+. MN(F6G"
P+Q T<MN
3.6 MN(F6G"
+. MN(F6G"
P,Q T<MNgT7@AD
.6 (FGD7PA
29"%!"
+. MN(F6G"
$= T:&D
/0 ! 3 (11)2)3
>
.6 (FGD:PA
29"%!"
. (FGD&PA29
"%!"
B 3. "3A)B2
/0 ! 3 (11)2)3
0'" B92
2,"916'2'26
$ 916'2'26<$)"!'
B!""916$)>!
"
3) 1!
B7= 8%
$ 2,"916'2'26
$)# #")"!)
! #"#916$)
#" )#D#"#DF%#6,#G
# ! F(11[&29M*N[&(@G #D
F!G6I#"7 F""G
##)")#)"#% !7#%
""#""""<
!!"
B$)#
@$)#6#E##"
##
BU B$)9FB29G"B$)#FB2GB29B2"
"#B2"B29#!!%
6#" B2B2MNMN26B2#B29
<?"B2I#6#F6I#<?B2G
@ B2 ? 6 # " B2
#%!#%"%%"%?"
% ? " (11[B2[(c@([;[
(11[B2[(c@([+[<#"$
#"""
"%"%?"MNMNMNMNMNMN
!.
7MN"B2MN#"B29#` MN`)
#7MN"B2MN#`MN`#
`MN``MN`J#%93
/0 ! 33 (11)2)3
B2<D""#9916,
#"+)#916<B2#"
<%8,B(#"<X"
/0 ! 3, (11)2)3
3+(:B)?7-
?MN"#"$
H #" <K#"
FB(#<G""!8F8G
#%<<916"F$%@@@
;+,")#L!)".#6G%933
9, #B2"%
#M*.6N%#<K""#
916$)%#6
& 8 P*:/Q
96 8' AM3.N AM*.N
AM;.,N jAM3.N6U#k
* AM.+N jAM,.N+U#k
AM*.6N jAM+.N,U#k
AM.;N jAM6.N3U#k
AM.N jAM;.NU#k
3 AM.*N jAM.NU#k
, AM3.N AM*.N
+ AM,.N AM.N
6 AM+.N AM.N
97"(:B97
<#?#F<M*.NG"
#"# "916 <#?
#"#P"!#%% #;#
"<?FI#G#"<##916
!#%"
&8- 8- 7
<M*.N
<M*N <M.Naa
/0 ! 3+ (11)2)3
3+.:3"(D;;;.,?7I?:7"(E
&8- 8- 7
, <M*.N <M;.Naa
3 <M*.;N <M6.Naa3
, 6 <M*.6N <M+.Naa,
+ 3 <M*.+N <M,.Naa+
6 6, <M*.,N <M3.Naa6
; <M*.3N <M.Naa;
+6 <M*.N <M.Naa
* + <M*.N <MNaa*
, <M*.N
97".:8
0'"'" 3
0'"'"'" 7=
B2 %"""
#DH!F# G
B2# " F < "6G%D$)
"!#%!B29 %6I#79
<#""+B2<"B2
%93,#"%B2 !B2
!#9< * #D#
H!#"3B2%B2MN%36B2MN%
,;B2MN%+#"B2 #
82[B2(# "B1.."#
/0 ! 36 (11)2)3
9B2# ""
"$%##5B2[C88@B[>A@#"
B1.."##"FG#
82[C88@B(# "DB2%
""!F"G
B2#%B2982[B2(# "B1.."#
#
0'"'"' B922B9
! " B2 # B1.." # % %
"%# .
916$)F%!#%"916G
/0 ! 3; (11)2)3
3+0:B9F
%F"$) G
@#"#"B2"H!!)
&,B2EB2#!#
#"B2#""B2FG
# %7#%""#
B2 K7%%.
2B2FQA7G
2B2#F"G
@#B2
EKK#,"B1.."#
EKK#,"B1.."#
%7""
0'"'"'+ %
E 3)"B2>
"!##3<3<D
" ! 9
<"7:&Z#,..%"%.
Z 3 7 >9
# b 3 < : ` >9
3 3 33 &>93
3<3<X (FGD(FG"E
B2#29"%!
MN%!916
0'"'"', B92
% B9;3 8 $3 $
916 MN 29
916 MN 916
29 M<D"N 29
29 M<D"N 29
D 916 ]88 29
D 916 ]88 916
D 29 M<D"N 29
/0 ! 3 (11)2)3
% B9;3 8 $3 $
D 26 M<DDN 26
D 29 M<DN 29
97"0:B93 9
0'"' 2
LutParam%"%) # .
>
6 @#Z2=,,,>"#
"3
+ 1&@#9#
, KKB2#AP"
"F" #G9#
#"B2$
3. 8#"FG#
1##F<",
G
. A%B2%!
H!B2"11^82[B2(
$9;: "B2# #
$9;: # #
;.3 %"(6#
@#J"#,FG"#
#"#
#82[C88@B(
("916!H"$)
- 3. B2;?<
;., B26?<
3. B2+?<
*.6 B2,?<
+. B23?<
. B2?<
;., B2?<
3. B2?<
/0 ! 3* (11)2)3
>
-> 3. B2+?<
;., B2,?<
3. B23?<
*.6 B2?<
+. B2?<
. B2?<
;., B2*?<
3. B2?<
3. "3AB2
3 . 9"3AB2..#".6#"3.3#
"
P/Q . <XFG
P"Q . <XFG
PQ . <XF3G
P+Q . <XFG
P,Q . <XFG
PQ . <XF3G
P(Q . <XF3G
P.Q . <XF3G
P0Q . <XF33G
=P/Q . D(FG"
=P"Q . D(FG"
=PQ . D3(FG"
/0 ! , (11)2)3
0'"(
916'29
>! 2'%#6)97
9$ 3<3+<+;<;
B#D 8
> 916'29
3
)#")H!"B?#)#
#"%! ##!
F?!G 697 % ##"3<3
+<+;<;#
0'"('" 3
0'"('"'" 2G
9X#%M)+,**NX
#M++N% <)X
"%.
val = (coeff * 128) + 64
1"<,<"X"!
)916X916"!
?91629#D
0'"('"' 3
3")@%#D !
#%"" !"#
%#!%!!#"
X)"Z2=,.,.,Z2=,..
Z2=,..%Z%2=
0'"('"'+ $%%&
(""
.
2)#""8?)!
)#%)
3 A%)#""A
)#"!97 X#$
/0 ! , (11)2)3
""P) ?"#
(11)D!97 $")?6
";)
# % ;) 97 9 " !
?#")"F8G<
)"6FD!%) G
<$"!<;<.<# "<
";!C%%%#!
%) F! $#
! %)"J <!G<"
"!?) %)
<$"?;<<.<# ;!<
%!<%%#"%) #"
#%-#DF $#?
%)"G
0'"('"', #
(!# "?!!
' F8'AG % + # 6 #
<)!6F#" !G
%"8M6N%"AM63NF(191..?A
91..A#""G
9<"%%%)#""m%8
3A,E8'A6''6!"8'A
?! X"#
$'6<!%D!"%%"6#
% )F?GE;%"
!<;b,97 "!FB?G#,!
XX"3#"%.
Coefficient 0 is phase 0, coefficient 0,
Coefficient 1 is phase 1, coefficient 0,
Coefficient 2 is phase 2, coefficient 0,
…
Coefficient 11 is phase 11, coefficient 0,
Coefficient 12 is phase 0, coefficient 1,
Coefficient 13 is phase 1, coefficient 1,
…
Coefficient 82 is phase 10, coefficient 6,
Coefficient 83 is phase 11, coefficient 6.
X"+%#
#<!
?""%.
Output width = ((Input width * HorzN) - 1)/HorzD + 1
Output height = ((Input height * VertN) - 1)/VertD + 1
EC?8C?A"?"=8
/0 ! , (11)2)3
=A"!"!
#" #!F$?G #3<3+<+;<;""%
; X"#?@"+
X6#?f"3X+6#?
8""?"$?# J$?#<
#"
0'"(' 2
PolyFirParam%"%) # .
>
>( 916
MN
- +. C?"<63
- ,. C?"<6
% +. =!"<63
% ,. =!"<6
- 3. "?X
% 3. "!X
/0 ! ,3 (11)2)3
0'". ;$2
2'26'916
>! 9<#)!#"!"(#
9$ 3<3
B#D 8
> 2'26'916.`#"C">
:
@> <"!"3<3(#
QZF
G
x
G
y
G"#(# $
"<!<#
"%!
0'".'" 3
0'".'"'" #
(# $ ? ! #
@1..<D@1..D#?!!
"%#%"<2=>2=>!%3<3
<$.
Gx=
(
XCoeff a0XCoeff b
XCoeff c0XCoeff d
XCoeff e0XCoeff f
)
⋅A
2=>
Gy=
(
YCoeff aXCoeff bYCoeff c
0 0 0
XCoeff dXCoeff eXCoeff f
)
⋅A
2=>
!(# !##"9162
# " #D # !
@1.."#
0'".'"'
H""H"
G
x
G
y
H"!"%!.
M=
√
X2+Y2=∣X∣
√
1+ (Y/X)2
2=>
M=
√
X2+Y2=∣Y∣
√
1+ ( X/Y)2
2=>;
8% " 2=> %
∣X∣>∣Y∣
2=> ; %
∣X∣≤∣Y∣
/0 ! ,, (11)2)3
<! " "!
{
f
(
a
)=
√
1
+
a2where 0
<
a
≤
1
}
#
<""%<!.
"
a
FG3H#
f(a)
"
#-""%#*#%
a
a2
1
+
a2
√
1
+
a
2
,+ 6 6 3
,* , ,
3 ;36 +, +, ;
, *, *; *; ,
+ 33 + + ;6
6 ,3 *
; ;3+ 3 3 ,*
** 3*6 3*6 *6
* ,6 +, +, ,*
++ 6; 6; 3*
;6; ;66 ;66 3;6
333 * * ,+
3 33, * * +3
, 3+; 6
+ 3+; , , ;
6 ,, ;6 ;6 ,
; ,,33 *6+ *6+ *3
,;3 3; 3; 6
* +3, +3, +3, *+
+3,+ +; +; 33*
+66+ 3* 3* ,*3
+**, 3+*3 3+*3 6+*
3 633 , , 36
, 66 ,,6+ ,,6+ ;
+ ;,3 ,*6 ,*6 3
6 ;,; ++ ++ ,+
; ;, 6* 6* 6+
; 6;3+ 6;3+ *36
/0 ! ,+ (11)2)3
a
a2
1
+
a2
√
1
+
a
2
* 66 ;,, ;,, 36
3 *63 + + 3,*6
3 *+ *6+ *6+ 3;
97"*:;FB9
"
√
1
+
a
2
$)#916"!#%#
"""
a
%% ##
#"F@1.."G
0'".'"'+ D9E
absolute θ
%!#%36"
G
x
G
y
9 !! "
primary θ
#
∣X∣
∣Y∣
%93*2=>?2=>@
θ=a ,∣X∣>∣Y∣
2=>?
/0 ! ,6 (11)2)3
3+*:;
θ=
b ,
∣
X
∣≤∣
Y
∣
2=>@
%%#% ,+ ,+
3",6+#"$) #
"#FnG2=>A2=>$)#%
#
tan (θ)=N/D=∣Y∣/∣X∣when∣X∣>∣Y∣
2=>A
tan (θ)=N/D=∣X∣/∣Y∣when∣Y∣>∣X∣
2=>
θ
ST
θ
U
tan (θ)
ST
tan (θ)
U
, ,+
, ,+ ,*
, ,* ;3
, +63 ;3 *+ 3
+63 ;3 *+ 33 ,
;3 ,, 33 ,3 +
,, *, ,3 ;3+ 6
*, + ;3+ ** ;
+ 66 ** ,6
66 ,6 ,6 ++ *
,6 +,; ++ ;6;
+,; 6 ;6; 333
6 333 33,
*6* 33, 3+; 3
*6* * 3+; 3+; ,
* + 3+; ,, +
+ 3* ,, ,,33 6
3* +3 ,,33 ,;3 ;
+3 6; ,;3 +3,
6; 3 +3, +3,+ *
3 *+3 +3,+ +66+
*+3 3*, +66+ +**,
3*, 33, +**, 633
33, 33;+ 633 66 3
33;+ 3+6 66 ;,3 ,
3+6 36+6 ;,3 ;,; +
/0 ! ,; (11)2)3
θ
ST
θ
U
tan (θ)
ST
tan (θ)
U
36+6 3;*; ;,; ;, 6
3;*; 3*3 ;, ; ;
3*3 ,; ; 66
,; ,* 66 *63 *
,* ,3+* *63 *+ 3
,3+* ,+ *+ 3
97/:;B9
#!
absolute θ
#% 36+6"
,6+#%36!%9,
&9:
∣Y∣>∣X∣
%
∣X∣>∣Y∣
A@9"Q!%!
@9:C"Z!%!
#!
absolute θ
"
primary θ
"%.
absolute θ = primary θ,∣X∣≥∣Y∣, X ≥0,Y≥0
absolute
θ =
63
−
primary
θ
,
|
Y
|>|
X
|
, X
≥
0, Y
≥
0
absolute θ =64+primary θ,|Y|>|X|, X <0, Y≥0
absolute
θ =
127
−
primary
θ
,
|
X
|≥|
Y
|
, X
<
0, Y
≥
0
/0 ! , (11)2)3
3,/:0
absolute θ=128+primary θ,|X|≥|Y|, X <0, Y<0
absolute
θ =
191
−
primary
θ
,
|
Y
|>|
X
|
, X
<
0, Y
<
0
absolute θ =192+primary θ,|Y|>|X|, X ≥0,Y<0
absolute
θ =
255
−
primary
θ
,
|
X
|≥|
Y
|
, X
≥
0,Y
<
0
0'".'"', 9
#""F
θ
G#
!"#%36",6+F)++G
##
Q)<L!#%Q)<LQ)<#Q)
<!#%,6+F);G
QZ<L!#%Q)<LQ)<P
"Z)<LZ)< !#% * ,6+
F)63G
9,%%PL!QZ<
@1.."#
8"!#%>=Q#;"@1.."#
>=Q ! E 5 # " (11
>=Q"
/0 ! ,* (11)2)3
3,":;9
0'".' 2
@ EdgeParam%"%) #
.
>
3.6 (9916
; >=Q
JA#
J@#
6.+
J8
JQ)<L!
JQZ<L!
,. >%##
(9
J6)#
J)#
J)#)#FG
J)#FG
JQZ#FKG
JQZ916
.
J82<
J1916FQZG
J12FQZG
=
K"
*.+ @QX9
,. @QX@
*.+ @QXA
,. @QX
*.+ @QX&
,. @QX
= K"
*.+ @ZX9
,. @ZX@
/0 ! + (11)2)3
>
*.+ @ZXA
,. @ZX
*.+ @ZX&
,. @ZX
/0 ! + (11)2)3
0'"0 %2
916'29
>! 916! % #$?"
#916X#H"#
"7!
9$ 3<3+<+
B#D 8
> 916'29`913!23!>#
#"!'"
! $ % +<+ $ % " # 916
X#91629%!"916F29
?916MN
9X"+<+$F<G)%FG
)P"$<%XFG% #
FG FG FG F3G F,G
FG FG FG F3G F,G
FG FG FG F3G F,G
F3G F3G F3G F33G F3,G
F,G F,G F,G F,3G F,,G
97":7%)G
# 3<3$F1.."#Gf !
X"!$#?
0'"0'" 3
0'"0'"'" 7
#"!##5 !!#&(oU
0'"0'"' F
"!!#H#5 !!#(YoU
/0 ! + (11)2)3
0'"0'"'+
!##5 !#2oU"&(#
oU#""(Y#oUH"
! ! " L! F913G
#"(11[>8=[2!"
F " " ) H! "G # F)
G(11[>8=[2 )#) # " "
!""#!"" "<
"
0'"0'"',
C7##%!916
#1.."#E!
!>28 3#%#
F)G(11[>8=[2[8)#)#%
!"
0'"0'"' $7
!"
H###5 !!#>A
oU"# U#D#
0'"0'"'( ;%G
# D"X<#5
@=@8>AA#"1.."#KKE# K"X
<%X<
"@=@8>AA[(@B#"1.."#"X
<%X<#%X
< " X < ! # "
7E&
0'"0' 2
! ConvParam%"%) #
.
>
+ (%@=@8>AA%'"X
'<""'%X
'<"
, (DX'<
A"'%X'<
3. !F916G
; >#
/0 ! +3 (11)2)3
>
6
+ >H"
, >#"
3 ( 916MN
. %"<$="
I@78@B[(c@3+
$9;: # #"
"
)P/Q 3.6 XFG
+. XFG
)P"Q 3.6 XF3G
+. XFG
)PQ +. XF,G
)P+Q 3.6 XFG
+. XFG
)P,Q 3.6 XF3G
+. XFG
)PQ +. XF,G
)P(Q 3.6 XFG
+. XFG
)P.Q 3.6 XF3G
+. XFG
)P0Q +. XF,G
)P*Q 3.6 XF33G
+. XF3G
)P"/Q 3.6 XF33G
+. XF3G
)P""Q +. XF3,G
)P"Q 3.6 XF,G
+. XF,G
)P"+Q 3.6 XF,3G
+. XF,G
)P",Q +. XF,,G X916
$9;:&)P"Q)7&G
/0 ! +, (11)2)3
0'"* 1
2
>! C!% #$?#
9$ +<+;<;*<*
B#D 8
> 913FG916
C "!2 #
$"3<3+<+;<;< 3<3(#<!$
;<;$""*<*<f?%#
C1.."# <<F<G$
< # : "!F# 1KG "%
.
score(x,y) = detM(x,y) – k.(traceM(x,y))2
$")L!%C1..$=
#
3<3(#<"%F"<G.
[-1 0 1]
[-2 0 2]
[-1 0 1]
9 " $ " 3 # L!
0'"*'" 3
0'"*'"'" $
@#"&3#L!
"#5A@[(@B#"C1.."#KK
# # #! # @Q1[(2&7C@8A " L!
< ! $% <)T " "
@Q1[(2&7C@8AFC1.."#G"#!@Q1[(2&7C@8A
"<%!<"T
# 916 " " <)
TL!916"%.
(#F;J+G"#T<#916<
#916<M3N
3 A916 "(&"L! #
/0 ! ++ (11)2)3
" < T L! 916 # " #D
9>7F"""L!)9>7
#,G
0'"*' 2
HarrisParam%"%) # .
>
+. @<##"<
"3#L!#"
916
, ("9>7
#,%5F3#L!G
3. %"<$=+;
*
$9;: # #"
"
)! 3. IF913G
/0 ! +6 (11)2)3
* 3%4
9#%-%(C=@#(11"%$
#%##"
1%(11 #%-
#T!%1:#$
=$#!
*'" $%%&
@! UT#"!$"
#D"""#D
!(11"%$ %H#DE$
%"%#D
!%#D%%#
2SHAVE<!(11?
%$SHAVE!"#"!
*' $7=
@ <#DF%<!"$ %
#DG#D"FQG#(11"%$?"
#D#"F6#<G"%
#"H# %%"#D(11"%$
?!%"#%X"%
% # Q
!
7"%#D?%"#D
(#D#$!%
"!#%
%?!"#D7:&"SHAVE"%
*''" B5O
9 , P " ! $
!%"<E<"
<#""#"
%#(11"%$!
"#
P" "%<#
!>#!"#
J # (11 "%$ #
C%##"# "
#D
/0 ! +; (11)2)3
*'' 7=
(11#D#DP#D(11
"%$E"#D#D
"#DB#D%#(11"%$"
#D %$%""#D
%!""
Z$"#DV%%W"F#%G@!
$%%V%W#<#"<!
/0 ! + (11)2)3
3,:>=
3,+:9&)7
!!#!
#!#-""(11
"%$"!#-""#
"<" ;""#D#"
!%#"H#D"%
!
*'+
9#%-'``#<"#1
! #!%
1!%P!#
!?" #
#"%.
2#<?!
2#
" U "! # !%-! #
#!#"``""%!
#P"!
! SIPP_PC ! # ) " 1
!#)!?#9<.
void
sampleFilter(SippFilter *fptr, int svuNo, int runNo)
{
#ifdef SIPP_PC
// C/C++ code goes here
#else
// SHAVE inline assembly code goes here
#endif
}
*', 22
9") %'#
"( SHAVEVW
"AI!
*','" 32
@ %!
"!" U%##(11"%$
! U !""%<"
.
#include <sipp.h>
typedef struct
/0 ! +* (11)2)3
{
float strength;
}
RandNoiseParam;
void SVU_SYM(svuGenNoise)(SippFilter *fptr, int svuNo, int runNo);
< #
VW%""(11
%<!""!E
<U%""!
"! % # " SHAVE " @ SHAVE
#"!"<
$"%.
:1$%(11
%:SHAVE(>#!%
A"SHAVE
: "" %#< <#"
!% U"?@! <
#""
*',' 93
@"(11 (9$ %
(11"%$" %#"# "
"%# % #"
U"%9(9%##
#
7 &< U#D 5
D" <
"%H !9<"
226" %
"%<
8#" U#D
C E""## #"<
%## %#SHAVE
1 C""## #"!
%""
E" U#D
#D" < <
"%
U"#
"
C E SHAVE#"5VW"
%<SHAVE#
/0 ! 6 (11)2)3
"
7B %9
"U#D
# " )
< Mnum_inputsN%num_inputs
#" <%
%#"!%$% F
#)#DG %VrunNogW
<< #M
num_linesN%num_lines#"
#!!!nLinesUsed
sippLinkFilter()))#-
<+<+!$%M,N+"
!
7B$ ! #D%
B$dbLinesIn#)#D
% ""% %
VrunNogW<
:#"1VCommInfoW%##%
97:93
"% "CommInfo #"# .
%3 9SHAVE FGSHAVE AU?)#
SHAVE#!
%B BSHAVE FG
3 "!"
97+:9
*','+ V
"%A "(11%"!
W (?"
KB 8#"
> &<
?9$ (11"
K> A"1f
/0 ! 6 (11)2)3
8K 9 AA7!-#"#f81f
B#; -#f81
(!-#f82BB1
!KL $(#
97,:
/0 ! 6 (11)2)3
"/ 5&2
"/'" %!)
(11%"$=$#(11$"
<
%%AIXXX2
1=!AI""!$
#+"(E$#%%$
"H#
J
#D #D"%
(H H"
E %"
#""H
! %
!$ %$"%
!(# (#%
!(#9696 (#%"6
!(#$ (#%$"%
"%
#% )#)%T!F8AG"%
#%$ 1#)%8A"%"$bb
#%8 1)#)%8>
#%> 1)#)%T!F>7G"%
#%>$ 1#)%>7"%"$bb
#%Q 1#)%@<>7"%
#%Q$ 1#)%@<>7"%"$bb
#<9 #$?$?#"
#<98<8 ="#< !?" $?
@A!
9$
F*<*$?G
#%"
$ !"
/0 ! 63 (11)2)3
J
@< @<"7:&"7:&
&$ !3<3!<
#AA J
<
8<8 !!?" $?
6## 26<2FG
19626 91626
12696 26916
: :!$
(#8<8 >!?"<fX<
>!?"$?3+;*<
Z,,, Z2=,,,
"
@= ""
!"
@= "<
"<!E
99
"
-8=7:&
-7:&B
-7:&8=
-7:&2=
-7:&2=,
-7:&Z2=,
-Z2=,7:&
-Z2=7:&
8<8
A %
"<#%<$
< %3+
;<$?"A$
:
A$%$?
<<#$
<!%<
H?C @H?"#
?
8<8 3+;$?"@
/0 ! 6, (11)2)3
J
:
"$$
%<
#<%
"* 9'$!
"* 9'$!"
:#'
C<["6 %<?%: %$+<+
=<["6 %<!%: %$+<+
:"7:&B
="22696f
2(
A7" :""%f2
(
B :B"7:&f2(
7 C
#"
C"!
(H(93 ("H<#"<FP
%#G>93
(H(23 ("H<#"<FP
%#G>23#
(93 ("<#"<FP%
#G>93
(2623 ("<#"<FP%
#G6#2>93
(23 ("<#"<FP%
#G>23#
8<8 BD!
>!?"3<3+<+;<;$?
B
%B B%<!
(!
%B!1 B%<!
>!?F7:&G
/0 ! 6+ (11)2)3
J
& &
8 B$))#
="66
98<8 f="3<3+<+;<;*<*<3<3+<+
!
<1 <<
!
<= <<
! <
!I !"<
A% 1+<+%
8 72
896 7J916
8<8
("#AD
$#D#%<#$
<#$#"
="+<+<#$?
+#C=
&% %+"JC?=!
!
="2'f96'96'2
+B6C= ?%%"+6fC?
!!
+B;C= ?%%"+;fC?
!!
<&C= &J<?g!
<BC B?J<?
<BC= B?J<?g!
<B= B?J<!
&# &#QZ"
# (#!
8<8
("(HADF//GDH
%H%%>!?"+<+<
%%!
<#
.
-[c.#%?
/0 ! 66 (11)2)3
J
-[c[."[[c
-[&.#%?
<<
-&[."[[&
-.#FA"
G
&7 $<99"<
%b
&2 $"
<99"
&%
&%K!"$%!
XF"G!!
F"G
%&&:&7: %#"&:&7:
%&7:& %#"7:&
97:5&J
/0 ! 6; (11)2)3
6"//3&)
' &)
T#"(11<+<"%$"%$$
" A" <)#)
#(#D%)FQG
8AA7#F
AA7A'"G! "%# "
AA7%%$AA7#-"
"!
(11 <+< "%$ # " ! # " )
"#!#(11%!
!"#$1""<"&
"%)#$1"""
C%!" D#
(19#$1F%!
"%$G""9!"(1
%AIJ>1>1<
"(1%
'> C
'>'
➢7)
""<+<(11"%$!")#$1""
##$%H#(11
"%$""
(11"%$<!"""
%#$"!"#"
<"
#"%$#$
"!" %
#$"!"%$%<#$%
(%$#<
!"#$"!L!
$"<"
<"!#"%
void appSippCallback ( SippPipeline * pPipeline,
eSIPP_PIPELINE_EVENT eEvent,
SIPP_PIPELINE_EVENT_DATA * ptEventData
)
{
if (eEvent == eSIPP_PIPELINE_FRAME_DONE)
/0 ! 6 (11)2)3
{
printf ("appSippCallback : Frame done event received : \n");
testComplete = 1;
}
}
int main (int argc, char *argv[])
{
pPipe = sippCreatePipeline(0, 7, SIPP_MBIN(mbinImgSipp));
...
// Register callback for async API
sippRegisterEventCallback (pPipe,
appSippCallback);
...
sippProcessFrameNB (pPipe);
...
while ( testComplete == 0x0 )
{
}
...
return 0;
}
!"!J(#$FG%
"%$P198&!"%$
" (11 "%$ #$ "! "
#"!(11[11@B8@[97@[A>8@
#$"!L%$<
!
➢
#$ 1 % (11 <+< "%$ " #
!!"198&FG"
%%%%#"%$
!%198&",%"
# #"%$K>
% # " # "
" # % #
"#"
E$#"!$"L
H%CE (C=@
# (11<+< "%$#$1%#
!!#$1!F
(11"%$G
/0 ! 6* (11)2)3
' 1C27&"//
38%:
◦&)
&3:
◦(A.
) >&
◦:F7:&3)G.
) 197!A$A!
◦AD":!'BF,<"!G.
) A:.D":FB #G
) B.)FA:#G
) A . D " : FB
#G
) A:`B.)D":
;:
◦8%3<")
◦!%.
) % !#
) " !
◦F#"Z2=,.,.,,..,..%Z
2=! XG
◦(X%##"F%916G
3;:
◦C9.
) "!"
◦!I.
) "'XF"&G##%%
X
◦@>.
) " , % #
##%++#"<#"
) >=Q!#
◦7E9.
) @@'E&F"$<G
) "!"!F""%'G
) 9
) +6#F"6,G
) #7:&
◦&A9.
) !F%7:&G
) "%F%)G
◦A.
) :3<3)
) ("FG3)!
) !:A!)
◦BA.
/0 ! ; (11)2)3
) "!#$F,%B2:TG
) 7"#D
) #= !
◦9.
) "#" %#
) %#D
◦B29.
) ""F3)G
) HB2 ##"B2H
) B2H%EP"""
#
◦#! .
) 7$!
) 3AB2
◦17< .
)
) B##%%
) A$%%"
&#O%3:
◦("$7E'#D(AB(7E
◦("$7E'#D&A9
◦("$7E'#D17<
◦2"#D
◦7"#D.
) "% #D.
F#D#D#G
B$#F#DB2#D"#G
@>
!I
C9
1FG
' "//)
%#%<!(11 !(11
<+<"%$<+<
(11<+< "%$1%" (11
"%$(111!#"(11<+<
" < " ! <! ! (11 <+<
"%$
# (11 !# (11
<+<<!"#"#$
%#"1!"%
R
'; %
>"D<+<(11CEX"(1
" # !? ! !
/0 ! ; (11)2)3
#%CE !"#DFBB&G%
E#DX#%""
# K<!!
E"#D"%?
%H"H"<<
9<%#% (11<+<
"%$H""1FG1
H% F#1(G%
H!"%
'3 8%
1FG1%#)""##
! # $ % % ! "
""""
>"!!#F"!G##)
#$"1"!#$%(11"%$$P
""9%"%$!"%
#%L""(C=@CE
%##%"%$
'# 1C2
#<%"CE "<+< @CE
#%""!%!
(11%$<!
%#"%##<#"!CE
@%%CE F% "
G%""AA7#"
CE
8!"(E
8<+<!!"1( "
#%!!
#)
'1 3%
'1' 8%2
>&) ##%<+<
"!%&)
# !%!<+<
'1'> 83
/0 ! ; (11)2)3
%#%<+<
CE ! D #%
$"!$
#%!"(""
V%W%<#%"%<"
!
"%#)!!!""CE
➢1
C %#"%""%
%H<+<"!#
➢;
!H" (11 !#"!#
%(11<+<
➢%
!H" (11 !#"!#
%(11<+<
➢B
!H" (11 !#"!#
%(11<+<
➢8C
E!@@%"%"%)
.
typedef struct
{
uint32_t count [4]; // number of pixels in alternative
accumulation.
uint32_t accum [4]; // accumulation of pixels within limits
uint32_t alt_accum[4]; // accumulation of pixels outside limits
} ae_patch_stats;
>%T3"7E "@<+<
%-%#%#$!"
L
➢ 7
# #"%<+<7:&B@
#<#"(119E!#7:&
#<#%#5#+"#"#
/0 ! ;3 (11)2)3
debayer = sippCreateFilter ( pipeLine,
0x0,
PIPELINE_WIDTH,
PIPELINE_HEIGHT,
N_PL(NUM_DEBAYER_PLANES),
SZ(UInt8),
SIPP_AUTO,
(FnSvuRun)SIPP_DBYR_ID,
0);
debayerCfg = (DbyrParam *)debayer->params;
debayerCfg->thresh = ((0x1)<<25);
><+<CE# "
!" %@<!!#
"#!%#
➢
!H" (11 !#"!#
%(11<+<
➢B
%%"!#$"#D
##$##T
$?"# <
➢
%"3")3<3:
"%#B!
C3<3: "$%"
B$91#$%"3$"3
3<3: ###")D#"
X
!##"##<
"%
chromadnsCfg = sippCreateFilter ( pipeLine,
0x0,
PIPELINE_WIDTH,
PIPELINE_HEIGHT,
N_PL(NUM_CHROMADNS_PLANES),
SZ(UInt8),
SIPP_AUTO,
(FnSvuRun)SIPP_CHROMA_ID,
0);
chromadnsCfg = (ChrDnsParam *)chromadns->params;
chromadnsCfg->grayPt = (1 << 31);
/0 ! ;, (11)2)3
➢
!H" (11 !#"!#
%(11<+<
➢7
#!3AB2<+<"!B2
# < # # 5 # 3 " " # " #
"%.
colorComb = sippCreateFilter ( pipeLine,
0x0,
PIPELINE_WIDTH,
PIPELINE_HEIGHT,
N_PL(NUM_COL_COMB_PLANES),
SZ(half),
SIPP_AUTO,
(FnSvuRun)SIPP_CC_ID,
0);
colorCombCfg = (ColCombParam *)colorComb->params;
colorCombCfg->cfg = (1 << 3);
➢
>Q<+< X#M++N%
<)X"%.
val = (coeff * 128) + 64
X"M)+,**N1"<,<"
X"! )916X
916"! ?91629
#D
! # <+< X
%#%
/0 ! ;+ (11)2)3