,1 with k = 0..MbHeightC - 1 as the inputs and S'c with C being replaced by Cb for iCbCr = 0 and C being replaced by Cr for iCbCr = 1 as the output. iii. When filterTopMbEdgeFlag is equal to 1, the filtering of the top horizontal chroma edge is specified as follows: If MbaffFrameFlag is equal to 1, (CurrMbAddr % 2) is equal to 0, CurrMbAddr is greater than or equal to 2 * icWidthInMbs, the macroblock CurrMbAddr is a frame macroblock, and the macroblock (CurrMbAddr - 2 * PicWidthInMbs + 1) is a field macroblock, the following ordered steps are specified: (1) The process specified in clause 8.7.1 is invoked with chromaEdgeFlag = 1, iCbCr, verticalEdgeFlag = 0, fieldModeInFrameFilteringFlag = 1, and (xEk, yEk) = (k, 0) with k = 0..MbWidthC - 1 as the inputs and S'c with C being replaced by Cb for iCbCr = 0 and C being replaced by Cr for iCbCr = 1 as the output. (2) The process specified in clause 8.7.1 is invoked with chromaEdgeFlag = 1, = iCbCr, verticalEdgeFlag = 0, fieldModeInFrameFilteringFlag = 1, and (xEk, yEk) = (k, 1) with k = 0..MbWidthC - 1 as the inputs and S'c with C being replaced by Cb for iCbCr = 0 and C being replaced by Cr for iCbCr = 1 as the output. Otherwise, the process specified in clause 8.7.1 is invoked with chromaEdgeFlag = 1, iCbCr, verticalEdgeFlag fieldModeInFrameFilteringFlag = fieldMbInFrameFlag, (xEk, yEk) =(k,0) with k = 0..MbWidthC - 1 as the inputs and S'c with C being replaced by Cb for iCbCr = 0 and C being replaced by Cr for iCbCr = 1 as the output. iv. When filterInternalEdgesFlag is equal to 1, the filtering of the internal horizontal chroma edge is specified by the following ordered steps: (1) When ChromaArrayType is not equal to 3 or transform_size_8x8_flagis equal to 0, the process specified in clause 8.7.1 is invoked with chromaEdgeFlag = 1, iCbCr, verticalEdgeFlag = 0, fieldModeInFrameFilteringFlag = fieldMbInFrameFlag, and (xEk, yEk) = (k, 4) with k = 0..MbWidthC - 1 as the inputs and S'c with C being replaced by Cb for iCbCr = and C being replaced by Cr for iCbCr = 1 as 