OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. | 2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 5257 matching lines...) Loading... |
5268 // Consider circular CumulativeSum buffer of radius * 2 + 1 height. | 5268 // Consider circular CumulativeSum buffer of radius * 2 + 1 height. |
5269 // Convert cumulative sum for an area to an average for 1 pixel. | 5269 // Convert cumulative sum for an area to an average for 1 pixel. |
5270 // topleft is pointer to top left of CumulativeSum buffer for area. | 5270 // topleft is pointer to top left of CumulativeSum buffer for area. |
5271 // botleft is pointer to bottom left of CumulativeSum buffer. | 5271 // botleft is pointer to bottom left of CumulativeSum buffer. |
5272 // width is offset from left to right of area in CumulativeSum buffer measured | 5272 // width is offset from left to right of area in CumulativeSum buffer measured |
5273 // in number of ints. | 5273 // in number of ints. |
5274 // area is the number of pixels in the area being averaged. | 5274 // area is the number of pixels in the area being averaged. |
5275 // dst points to pixel to store result to. | 5275 // dst points to pixel to store result to. |
5276 // count is number of averaged pixels to produce. | 5276 // count is number of averaged pixels to produce. |
5277 // Does 4 pixels at a time. | 5277 // Does 4 pixels at a time. |
| 5278 // This function requires alignment on accumulation buffer pointers. |
5278 void CumulativeSumToAverageRow_SSE2(const int32* topleft, const int32* botleft, | 5279 void CumulativeSumToAverageRow_SSE2(const int32* topleft, const int32* botleft, |
5279 int width, int area, uint8* dst, | 5280 int width, int area, uint8* dst, |
5280 int count) { | 5281 int count) { |
5281 __asm { | 5282 __asm { |
5282 mov eax, topleft // eax topleft | 5283 mov eax, topleft // eax topleft |
5283 mov esi, botleft // esi botleft | 5284 mov esi, botleft // esi botleft |
5284 mov edx, width | 5285 mov edx, width |
5285 movd xmm5, area | 5286 movd xmm5, area |
5286 mov edi, dst | 5287 mov edi, dst |
5287 mov ecx, count | 5288 mov ecx, count |
(...skipping 971 matching lines...) Loading... |
6259 } | 6260 } |
6260 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3 | 6261 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3 |
6261 | 6262 |
6262 #endif // defined(_M_X64) | 6263 #endif // defined(_M_X64) |
6263 #endif // !defined(LIBYUV_DISABLE_X86) && (defined(_M_IX86) || defined(_M_X64)) | 6264 #endif // !defined(LIBYUV_DISABLE_X86) && (defined(_M_IX86) || defined(_M_X64)) |
6264 | 6265 |
6265 #ifdef __cplusplus | 6266 #ifdef __cplusplus |
6266 } // extern "C" | 6267 } // extern "C" |
6267 } // namespace libyuv | 6268 } // namespace libyuv |
6268 #endif | 6269 #endif |
OLD | NEW |