ma, 2 horizontal chroma edges for Cb, and 2 horizontal chroma edges for Cr between the frame macroblock and the above macroblock pair are filtered using field mode filtering, for a total of up to 5 horizontal luma edges, 3 horizontal chroma edges for Cb, and 3 horizontal chroma edges for Cr filtered that are considered to be controlled by the frame macroblock. In all other cases, at most 4 horizontal luma, 2 horizontal chroma edges for Cb, and 2 horizontal chroma edges for Cr are filtered that are considered to be controlled by a particular macroblock. G.8.7.4.1 SVC filtering process for block edges Inputs to this process are: the variable interLayerDeblockingFlag, the variable chromaEdgeFlag, the variable verticalEdgeFlag, the variable fieldModeInFrameFilteringFlag, the variables filterOffsetA and filterOffsetB, the one-dimensional array qpDB with PicSizeInMbs elements specifying quantisation parameters, the collective term currentVars, a set of nE sample locations (xEk, yEk), with k = 0. (nE - 1), expressed relative to the upper left corner of the macroblock CurrMbAddr. The set of sample locations (xEk, yEk) represent the sample locations immediately to the right of a vertical edge (when verticalEdgeFlag is equal to 1) or immediately below a horizontal edge (when verticalEdgeFlag is equal to 0), an array of samples s'. Output of this process is a modified version of the array s'. The variable nE is derived as follows: If chromaEdgeFlag is equal to 0, nE is set equal to 16. Otherwise (chromaEdgeFlag equal equal ( ( verticalEdgeFlag 1) ? MbHeightC : MbWidthC ). Inside this clause, the arrays that are collectively referred to as currentVars are referred to by their names as specified in clause G.8.1.2.1. The variable dy is set equal to (1 + fieldModeInFrameFilteringFlag). The position of the upper-left luma sample of the macroblock CurrMbAddr is derived by invoking the inverse macroblock scanning process in clause 6.4.1 with mbAddr = CurrMbAddr as input and the output being assigned to (xI, yI). During the process