optimize perflab

This commit is contained in:
18218461270@163.com 2025-08-30 00:51:03 +08:00
parent 4e8eb39c90
commit 8c17521359

View File

@ -193,7 +193,7 @@ void smooth(int dim, pixel *src, pixel *dst) {
add_pixel2(0, 0); add_pixel2(0, 0);
add_pixel2(0, 1); add_pixel2(0, 1);
set_pixel(0, 0, 4); set_pixel(0, 0, 4);
for (int i = 1; i < dim - 1; i += 2) { for (int i = 1; i < 7; i += 2) {
add_pixel2(0, i + 1); add_pixel2(0, i + 1);
set_pixel(0, i, 6); set_pixel(0, i, 6);
sub_pixel2(0, i - 1); sub_pixel2(0, i - 1);
@ -201,6 +201,32 @@ void smooth(int dim, pixel *src, pixel *dst) {
set_pixel(0, i + 1, 6); set_pixel(0, i + 1, 6);
sub_pixel2(0, i); sub_pixel2(0, i);
} }
for (int i = 7; i < dim - 1; i += 8) {
add_pixel2(0, i + 1);
set_pixel(0, i, 6);
sub_pixel2(0, i - 1);
add_pixel2(0, i + 2);
set_pixel(0, i + 1, 6);
sub_pixel2(0, i);
add_pixel2(0, i + 3);
set_pixel(0, i + 2, 6);
sub_pixel2(0, i + 1);
add_pixel2(0, i + 4);
set_pixel(0, i + 3, 6);
sub_pixel2(0, i + 2);
add_pixel2(0, i + 5);
set_pixel(0, i + 4, 6);
sub_pixel2(0, i + 3);
add_pixel2(0, i + 6);
set_pixel(0, i + 5, 6);
sub_pixel2(0, i + 4);
add_pixel2(0, i + 7);
set_pixel(0, i + 6, 6);
sub_pixel2(0, i + 5);
add_pixel2(0, i + 8);
set_pixel(0, i + 7, 6);
sub_pixel2(0, i + 6);
}
set_pixel(0, dim - 1, 4); set_pixel(0, dim - 1, 4);
for (int i = 1; i < dim - 1; i++) { for (int i = 1; i < dim - 1; i++) {
@ -208,7 +234,7 @@ void smooth(int dim, pixel *src, pixel *dst) {
add_pixel3(i, 0); add_pixel3(i, 0);
add_pixel3(i, 1); add_pixel3(i, 1);
set_pixel(i, 0, 6); set_pixel(i, 0, 6);
for (int j = 1; j < dim - 1; j += 2) { for (int j = 1; j < 7; j += 2) {
add_pixel3(i, j + 1); add_pixel3(i, j + 1);
set_pixel(i, j, 9); set_pixel(i, j, 9);
sub_pixel3(i, j - 1); sub_pixel3(i, j - 1);
@ -216,6 +242,32 @@ void smooth(int dim, pixel *src, pixel *dst) {
set_pixel(i, j + 1, 9); set_pixel(i, j + 1, 9);
sub_pixel3(i, j); sub_pixel3(i, j);
} }
for (int j = 7; j < dim - 1; j += 8) {
add_pixel3(i, j + 1);
set_pixel(i, j, 9);
sub_pixel3(i, j - 1);
add_pixel3(i, j + 2);
set_pixel(i, j + 1, 9);
sub_pixel3(i, j);
add_pixel3(i, j + 3);
set_pixel(i, j + 2, 9);
sub_pixel3(i, j + 1);
add_pixel3(i, j + 4);
set_pixel(i, j + 3, 9);
sub_pixel3(i, j + 2);
add_pixel3(i, j + 5);
set_pixel(i, j + 4, 9);
sub_pixel3(i, j + 3);
add_pixel3(i, j + 6);
set_pixel(i, j + 5, 9);
sub_pixel3(i, j + 4);
add_pixel3(i, j + 7);
set_pixel(i, j + 6, 9);
sub_pixel3(i, j + 5);
add_pixel3(i, j + 8);
set_pixel(i, j + 7, 9);
sub_pixel3(i, j + 6);
}
set_pixel(i, dim - 1, 6); set_pixel(i, dim - 1, 6);
} }
@ -223,7 +275,7 @@ void smooth(int dim, pixel *src, pixel *dst) {
add_pixel2(dim - 2, 0); add_pixel2(dim - 2, 0);
add_pixel2(dim - 2, 1); add_pixel2(dim - 2, 1);
set_pixel(dim - 1, 0, 4); set_pixel(dim - 1, 0, 4);
for (int i = 1; i < dim - 1; i += 2) { for (int i = 1; i < 7; i += 2) {
add_pixel2(dim - 2, i + 1); add_pixel2(dim - 2, i + 1);
set_pixel(dim - 1, i, 6); set_pixel(dim - 1, i, 6);
sub_pixel2(dim - 2, i - 1); sub_pixel2(dim - 2, i - 1);
@ -231,6 +283,32 @@ void smooth(int dim, pixel *src, pixel *dst) {
set_pixel(dim - 1, i + 1, 6); set_pixel(dim - 1, i + 1, 6);
sub_pixel2(dim - 2, i); sub_pixel2(dim - 2, i);
} }
for (int i = 7; i < dim - 1; i += 8) {
add_pixel2(dim - 2, i + 1);
set_pixel(dim - 1, i, 6);
sub_pixel2(dim - 2, i - 1);
add_pixel2(dim - 2, i + 2);
set_pixel(dim - 1, i + 1, 6);
sub_pixel2(dim - 2, i);
add_pixel2(dim - 2, i + 3);
set_pixel(dim - 1, i + 2, 6);
sub_pixel2(dim - 2, i + 1);
add_pixel2(dim - 2, i + 4);
set_pixel(dim - 1, i + 3, 6);
sub_pixel2(dim - 2, i + 2);
add_pixel2(dim - 2, i + 5);
set_pixel(dim - 1, i + 4, 6);
sub_pixel2(dim - 2, i + 3);
add_pixel2(dim - 2, i + 6);
set_pixel(dim - 1, i + 5, 6);
sub_pixel2(dim - 2, i + 4);
add_pixel2(dim - 2, i + 7);
set_pixel(dim - 1, i + 6, 6);
sub_pixel2(dim - 2, i + 5);
add_pixel2(dim - 2, i + 8);
set_pixel(dim - 1, i + 7, 6);
sub_pixel2(dim - 2, i + 6);
}
set_pixel(dim - 1, dim - 1, 4); set_pixel(dim - 1, dim - 1, 4);
#undef set_pixel #undef set_pixel
#undef add_pixel #undef add_pixel