Метод деблокирования, если мы можем контролировать, где должен появиться артефакт "блока" - PullRequest
0 голосов
/ 28 августа 2018

Я работаю над патч-методом для обработки изображения. Таким образом, результат страдает от блочного артефакта.

Текущие общедоступные методы (или только то, что я могу найти) фокусируются на одном сжатом изображении, таком как jpeg, и пытаются разблокировать их артефакт и восстановить их чистую версию.

Однако у меня есть полный контроль, чтобы решить, где должен появиться блочный артефакт.

Например, если у нас есть изображение с размером (16, 16), и у нас есть размер патча (8, 8), то 4 артефакта block-y будут отображаться в виде линии между патчами следующим образом:

.x→0123456789012345...
y  image A
↓
0  ////////\\\\\\\\
1  ////////\\\\\\\\
2  ////////\\\\\\\\
3  ////////\\\\\\\\
4  ////1///\\\\2\\\
5  ////////\\\\\\\\
6  ////////\\\\\\\\
7  ////////\\\\\\\\
8  \\\\\\\\////////
9  \\\\\\\\////////
0  \\\\\\\\////////
1  \\\\3\\\///4////
2  \\\\\\\\////////
3  \\\\\\\\////////
4  \\\\\\\\////////
5  \\\\\\\\////////

И говоря: «У меня есть полный контроль над блоком». Это означает, что я могу предварительно дополнить изображение нулями, равными половине ширины и высоты размера патча. Таким образом, в результате 9 блочных артефактов будут:

.x→0123456789012345...                   .x→0123456789012345...
y                                        y  image B
↓                                        ↓
0  0000000000000000                      0  1+++***2****+++3
1  0000000000000000                      1  ++++********++++
2  0000000000000000                      2  ++++********++++
3  0000000000000000                      3  ++++********++++
4  00001+++***2****     remove padding   4  ****++++++++****
5  0000++++********           →          5  ****++++++++****
6  0000++++********                      6  ****++++++++****
7  0000++++********                      7  4***++++5+++***6
8  0000****++++++++                      8  ****++++++++****
9  0000****++++++++                      9  ****++++++++****
0  0000****++++++++                      0  ****++++++++****
1  00004***++++5+++                      1  ****++++++++****
2  0000****++++++++                      2  ++++********++++
3  0000****++++++++                      3  ++++********++++
4  0000****++++++++                      4  ++++********++++
5  0000****++++++++                      5  7+++***8****+++9

Поскольку «линии» на изображении B теперь смещены на 4 и расположены справа между строками, появляются на изображении A.

Здесь возникает реальный вопрос. Есть ли какой-нибудь алгоритм для разблокировки изображения A и B вместе?

Моя первая наивная мысль - сделать маску в виде чеков в форме галочки, а затем объединить два изображения. Таким образом, результат будет:

.x→0123456789012345...                   .x→0123456789012345...
y  image A and B                         y  
↓                                        ↓
0  AAAAAAAAAAAAAAAA                      0  ////////\\\\\\\\
1  AAAAAAABBAAAAAAA                      1  ///////**\\\\\\\
2  AAAAAABBBBAAAAAA                      2  //////****\\\\\\
3  AAAAABBBBBBAAAAA                      3  /////******\\\\\
4  AAAABBBBBBBBAAAA                      4  ////++++++++\\\\
5  AAABBBBBBBBBBAAA                      5  ///*++++++++*\\\
6  AABBBBBBBBBBBBAA                      6  //**++++++++**\\
7  ABBBBBBBBBBBBBBA                      7  /***++++++++***\
8  ABBBBBBBBBBBBBBA                      8  \***++++++++***/
9  AABBBBBBBBBBBBAA                      9  \\**++++++++**//
0  AAABBBBBBBBBBAAA                      0  \\\*++++++++*///
1  AAAABBBBBBBBAAAA                      1  \\\\********////
2  AAAAABBBBBBAAAAA                      2  \\\\\******/////
3  AAAAAABBBBAAAAAA                      3  \\\\\\****//////
4  AAAAAAABBAAAAAAA                      4  \\\\\\\**///////
5  AAAAAAAAAAAAAAAA                      5  \\\\\\\\////////

И тогда я понимаю, что это не сотрет артефакт, а станет еще меньшим блоком (если мы предположим, что грань между А и В гладкая) следующим образом:

.x→0123456789012345...
y  finale image
↓
0  ****************
1  ****************
2  ****************
3  ****************
4  ***––––––––––***
5  ***∣*********∣***
6  ***∣*********∣***
7  ***∣*********∣***
8  ***∣*********∣***
9  ***∣*********∣***
0  ***∣*********∣***
1  ***––––––––––***
2  ****************
3  ****************
4  ****************
5  ****************

Так что я был как "давай, должно быть, есть лучший путь" и пришел сюда в поисках помощи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...