{"id":342473,"date":"2022-12-12T15:02:33","date_gmt":"2022-12-12T15:02:33","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=342473"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=342473","title":{"rendered":"<span>\u0417\u0435\u043c\u043b\u044f \u043a\u0440\u0443\u0433\u043b\u0430\u044f, \u0432\u043e\u0434\u0430 \u043c\u043e\u043a\u0440\u0430\u044f, JPEG \u0448\u0430\u043a\u0430\u043b\u0438\u0442, \u043d\u0435\u0431\u043e \u0433\u043e\u043b\u0443\u0431\u043e\u0435\u2026 \u0418\u043b\u0438 \u043d\u0435\u0442?<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u0444\u0430\u043a\u0442 \u0432\u044b\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0440\u044f\u0434\u0430 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d \u043d\u0435 \u0442\u0430\u043a \u043e\u0447\u0435\u0432\u0438\u0434\u0435\u043d, \u043a\u0430\u043a \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435. \u0415\u0449\u0435 \u043b\u0435\u0442 10-15 \u043d\u0430\u0437\u0430\u0434 \u044f \u0431\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u0442\u0443\u0442 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u043e\u0437\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0430 \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0436\u0435 \u0438 \u043d\u0435 \u0443\u0434\u0438\u0432\u043b\u044f\u044e\u0441\u044c, \u0447\u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0438\u0441\u0442\u0438\u043d\u044b: \u0434\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043b\u0430\u043d\u0435\u0442\u044b \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u0430\u0441\u0441\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0433\u0440\u0430\u0432\u0438\u0442\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u0434\u0430\u0442\u044c \u0438\u043c \u0444\u043e\u0440\u043c\u0443 \u0448\u0430\u0440\u0430. \u0412\u043e\u0442 \u0438 \u0432\u0441\u0435! \u0425\u043e\u0442\u0435\u043b \u0431\u044b \u043d\u0430 \u044d\u0442\u043e\u043c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u0438 \u043f\u043e\u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u0442\u044c \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435.<\/p>\n<p>\u0425\u043e\u0442\u0435\u043b, \u043d\u043e \u043d\u0435 \u0432\u044b\u0448\u043b\u043e: \u043a\u0430\u043a-\u0442\u043e \u0440\u0430\u0437, \u043d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u044d\u0442\u0438\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043d\u044b\u0445 \u0448\u0430\u0440\u043e\u0432, \u044f \u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u0430 \u043d\u0435\u0433\u043e 2 \u043e\u0442\u0432\u0435\u0442\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e01\/95b\/3e0\/e0195b3e0ec904c7355227d1220d731d.png\" alt=\"\" title=\"\" width=\"698\" height=\"509\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e01\/95b\/3e0\/e0195b3e0ec904c7355227d1220d731d.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438 <a class=\"mention\" href=\"\/users\/vitalley\">@Vitalley<\/a> \u0438 <a class=\"mention\" href=\"\/users\/covert\">@Covert<\/a> \u043f\u0440\u0430\u0432\u044b. \u041d\u043e \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e? \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 double? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 JPEG \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d \u043f\u043e\u0440\u0442\u0438\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438 \u043c\u043e\u0436\u043d\u043e \u043b\u0438, \u0445\u043e\u0442\u044f \u0431\u044b \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u043e\u0442\u0435\u0440\u044c. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0441\u0430\u043c JPEG, \u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0434\u043b\u044f \u0441\u0436\u0430\u0442\u0438\u044f \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u044d\u0442\u0430\u043f\u044b JPEG \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0433\u043b\u0443\u0431\u0438\u043c\u0441\u044f \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f. \u0412\u044b\u044f\u0441\u043d\u0438\u043c \u043a\u043e\u0433\u0434\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u041f\u043e\u043a\u0430\u0436\u0435\u043c, \u0447\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0430, \u0435\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0442\u044c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0438\u0437\u043a\u0438\u0439 \u0448\u0430\u0433 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0439\u0434\u0435\u043c \u0435\u0433\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0417\u0430\u0442\u0435\u043c, \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u0412 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u044b \u043e \u0442\u043e\u043c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0446\u0435\u043b\u044c.<\/p>\n<p>\u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u044f \u043e\u0442\u043c\u0435\u0442\u0438\u043b \u0432\u0441\u0435 \u044d\u0442\u0430\u043f\u044b \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0442\u0435\u0440\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d92\/831\/0c4\/d928310c4b5dbe3cc1816b18d3a1823f.png\" width=\"832\" height=\"464\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d92\/831\/0c4\/d928310c4b5dbe3cc1816b18d3a1823f.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0441\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043a\u0440\u043e\u043c\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0425\u0430\u0444\u0444\u043c\u0430\u043d\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0436\u0430\u0442\u0438\u0435 \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c.<\/p>\n<h2>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 RGB \u0432 YCbCr<\/h2>\n<p>\u041f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443, \u043a\u043e\u0434\u0435\u0440 \u043d\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432. \u0415\u043c\u0443 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u043e\u0434\u0430\u0435\u0442\u0441\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0443\u0436\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u044b. \u0414\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u043a\u043e\u0434\u0435\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A6%D0%B2%D0%B5%D1%82%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D1%83%D0%B1%D0%B4%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F\" rel=\"noopener noreferrer nofollow\">\u0441\u0443\u0431\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u044e<\/a>. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b (\u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 2&#215;2, 2&#215;2, 4&#215;2 \u0438 \u0442.\u043f.) \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u2014 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u044d\u0442\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e YCbCr \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0443\u0431\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439. \u041f\u043e\u0447\u0435\u043c\u0443? \u0425\u043e\u0440\u043e\u0448\u043e, \u0447\u0442\u043e \u044f \u043d\u0435 \u0432 \u0448\u043a\u043e\u043b\u0435, \u0438 \u043c\u043e\u0433\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 \u0412\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438:<\/p>\n<blockquote>\n<p>\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 Y\u2019CbCr \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u044f\u0440\u043a\u043e\u0441\u0442\u0438 \u0441 \u043f\u043e\u043b\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c, \u0430 \u0434\u043b\u044f \u0446\u0432\u0435\u0442\u043e\u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0441\u0443\u0431\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u044e, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0441 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435\u043c \u0447\u0438\u0441\u043b\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438\u0439 \u0433\u043b\u0430\u0437 \u043c\u0435\u043d\u0435\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u0435\u043d \u043a \u043f\u0435\u0440\u0435\u043f\u0430\u0434\u0430\u043c \u0446\u0432\u0435\u0442\u0430.<\/p>\n<\/blockquote>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u0438 \u0441\u0443\u0431\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0431\u0435\u0437\u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u043e, \u0442\u043e \u043d\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0435\u0435.<\/p>\n<p>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0431\u0440\u0430\u0442\u0438\u043c\u043e \u043f\u043e\u043a\u0430 \u043c\u044b \u0445\u0440\u0430\u043d\u0438\u043c \u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430. \u041f\u043e\u0442\u0435\u0440\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0438\u0437-\u0437\u0430 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435 \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0442\u044c, \u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445 \u0446\u0438\u0444\u0440 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439.<\/p>\n<p>\u041f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 RGB \u0438 YCbCr \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0442\u0430\u043a \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5c3\/c06\/385\/5c3c063852f36495bb891eb44eddcc01.png\" width=\"567\" height=\"412\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5c3\/c06\/385\/5c3c063852f36495bb891eb44eddcc01.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0441\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b (R, G, B, Y, Cb, Cr) \u0432 \u043d\u0435\u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u044f\u0445 JPEG \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f 8-\u0431\u0438\u0442\u043d\u044b\u043c\u0438. \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0446\u0432\u0435\u0442\u043e\u0432 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043e\u0431\u043e\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u0445 (2^24). \u041d\u043e \u0435\u0441\u043b\u0438 \u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0439 (Y, Cb, Cr) \u043d\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 (R, G, B)-\u043f\u0430\u0440\u044b, \u0437\u043d\u0430\u0447\u0438\u0442 \u0443 \u043a\u043e\u0433\u043e-\u0442\u043e \u0438\u0445 \u0434\u0432\u0435 \ud83d\ude41 \u0418 \u0434\u0430\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0435. \u041e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 (R, G, B) \u0432 (Y, Cb, Cr):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{cases}      Y = 0 + 0.299R +0.587G +0.114B \\\\      Cb = 128 - 0.168736R -0.331264G +0.5B \\\\      Cr = 128 + 0.5R -0.418688G -0.081312B      \\end{cases}\" alt=\"\\begin{cases}      Y = 0 + 0.299R +0.587G +0.114B \\\\      Cb = 128 - 0.168736R -0.331264G +0.5B \\\\      Cr = 128 + 0.5R -0.418688G -0.081312B      \\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/157\/15a\/7f3\/15715a7f3eb0c08c365ad28705e931a4.svg\" width=\"326\" height=\"58\"\/><\/p>\n<p>\u0412 \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{pmatrix} Y \\\\ Cb \\\\ Cr \\end{pmatrix} =       \\begin{pmatrix} 0 \\\\ 128 \\\\ 128 \\end{pmatrix} +        \\begin{pmatrix} 0.299 &amp; 0.587 &amp; 0.114 \\\\ -0.168736 &amp; -0.331264 &amp;\u00a00.5 \\\\ 0.5 &amp;\u00a0-0.418688 &amp; -0.081312 \\end{pmatrix}       \\begin{pmatrix} R \\\\ G \\\\ B \\end{pmatrix} \" alt=\"\\begin{pmatrix} Y \\\\ Cb \\\\ Cr \\end{pmatrix} =       \\begin{pmatrix} 0 \\\\ 128 \\\\ 128 \\end{pmatrix} +        \\begin{pmatrix} 0.299 &amp; 0.587 &amp; 0.114 \\\\ -0.168736 &amp; -0.331264 &amp;\u00a00.5 \\\\ 0.5 &amp;\u00a0-0.418688 &amp; -0.081312 \\end{pmatrix}       \\begin{pmatrix} R \\\\ G \\\\ B \\end{pmatrix} \" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9ef\/3fa\/a04\/9ef3faa04ff4b636bccaa28685c4d8c8.svg\" width=\"491\" height=\"64\"\/><\/p>\n<p>\u041c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0434\u0430\u043b\u044c\u0448\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438, \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u0438 \u0442. \u043f.<\/p>\n<h2>DCT<\/h2>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0431\u043b\u043e\u043a 8&#215;8 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430 (\u043e\u0431\u044b\u0447\u043d\u043e \u044d\u0442\u043e Y, Cb, Cr) \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u0430\u0435\u0442\u0441\u044f \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u043e\u043c\u0443 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Discrete_cosine_transform#DCT-II\" rel=\"noopener noreferrer nofollow\">\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043d\u043e\u043c\u0443 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044e 2-\u0433\u043e \u0442\u0438\u043f\u0430<\/a>. \u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e DCT \u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b <a href=\"https:\/\/habr.com\/ru\/post\/206264\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043e\u043d\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442.<\/p>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0431\u043b\u043e\u043a \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{pmatrix}       x_{00} &amp; x_{01} &amp; \\dotsc  &amp; x_{07}\\\\       x_{10} &amp; x_{11} &amp;  &amp; x_{17}\\\\       \\vdots  &amp;  &amp; \\ddots  &amp; \\\\       x_{70} &amp; x_{71} &amp;  &amp; x_{77}       \\end{pmatrix}\" alt=\"\\begin{pmatrix}       x_{00} &amp; x_{01} &amp; \\dotsc  &amp; x_{07}\\\\       x_{10} &amp; x_{11} &amp;  &amp; x_{17}\\\\       \\vdots  &amp;  &amp; \\ddots  &amp; \\\\       x_{70} &amp; x_{71} &amp;  &amp; x_{77}       \\end{pmatrix}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bd1\/c64\/2e9\/bd1c642e97fca37e7c5fe34a9c970419.svg\" width=\"171\" height=\"100\"\/><\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"X^{(j)} \\rightarrow Y^{(j)}\" alt=\"X^{(j)} \\rightarrow Y^{(j)}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/23b\/1fd\/d17\/23b1fdd173cdf649f585f6195e8cfea0.svg\" width=\"100\" height=\"22\"\/>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\begin{pmatrix}  &amp; x_{0j} &amp; \\\\ \\dotsc  &amp; x_{1j} &amp; \\dotsc \\\\  &amp; \\vdots  &amp; \\\\  &amp; x_{7j} &amp;  \\end{pmatrix}\\rightarrow \\begin{pmatrix}  &amp; y_{0j} &amp; \\\\ \\dotsc  &amp; y_{1j} &amp; \\dotsc \\\\  &amp; \\vdots  &amp; \\\\  &amp; y_{7j} &amp;  \\end{pmatrix}\" alt=\"\\begin{pmatrix}  &amp; x_{0j} &amp; \\\\ \\dotsc  &amp; x_{1j} &amp; \\dotsc \\\\  &amp; \\vdots  &amp; \\\\  &amp; x_{7j} &amp;  \\end{pmatrix}\\rightarrow \\begin{pmatrix}  &amp; y_{0j} &amp; \\\\ \\dotsc  &amp; y_{1j} &amp; \\dotsc \\\\  &amp; \\vdots  &amp; \\\\  &amp; y_{7j} &amp;  \\end{pmatrix}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bad\/245\/b01\/bad245b01767861ca00f979d3211209a.svg\" width=\"333\" height=\"120\"\/><\/p>\n<p>\u041f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"j\" alt=\"j\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c47\/de4\/2ef\/c47de42ef7e6f859d9f813510168a174.svg\" width=\"8\" height=\"20\"\/> \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0442\u043e\u043b\u0431\u0446\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"y_{ij} =\\frac{1}{2} C_{i}\\sum _{k=0}^{7} x_{kj}\\cos\\left(\\frac{( 2k+1) i\\pi }{16}\\right), \u0433\u0434\u0435 \\begin{cases}       C_{i} =1\/\\sqrt{2} \\ \u0434\u043b\u044f\\ i=0\\\\       C_{i} =1\\ \u0434\u043b\u044f\\ \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445       \\end{cases}\" alt=\"y_{ij} =\\frac{1}{2} C_{i}\\sum _{k=0}^{7} x_{kj}\\cos\\left(\\frac{( 2k+1) i\\pi }{16}\\right), \u0433\u0434\u0435 \\begin{cases}       C_{i} =1\/\\sqrt{2} \\ \u0434\u043b\u044f\\ i=0\\\\       C_{i} =1\\ \u0434\u043b\u044f\\ \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445       \\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a02\/6d2\/007\/a026d200769864308251625ffa5a779d.svg\" width=\"445\" height=\"51\"\/><\/p>\n<p>\u0422\u0430\u043a\u0430\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"Y^{(j)}=D_8 X^{(j)}\" alt=\"Y^{(j)}=D_8 X^{(j)}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a30\/c0a\/138\/a30c0a138ece73603d65d337fea792a9.svg\" width=\"115\" height=\"24\"\/>. \u0413\u0434\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"X^{(j)}\" alt=\"X^{(j)}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/416\/492\/f0c\/416492f0c2c24eb2869d1ae8a29edb34.svg\" width=\"33\" height=\"21\"\/> \u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"Y^{(j)}\" alt=\"Y^{(j)}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/877\/f37\/4ab\/877f374ab54244aafbfa3ce853df3a4a.svg\" width=\"33\" height=\"20\"\/> \u2014 \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0446\u044b, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D_8\" alt=\"D_8\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fc1\/efc\/6e5\/fc1efc6e5139fb1971cee179eca4af8c.svg\" width=\"24\" height=\"19\"\/> \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u044b \u043f\u043e \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0435:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"D_8=\\frac{1}{2}\\begin{pmatrix}       \\frac{1}{\\sqrt{2}} &amp; \\frac{1}{\\sqrt{2}} &amp; \\dotsc  &amp; \\frac{1}{\\sqrt{2}}\\\\       \\cos\\left(\\frac{\\pi }{16}\\right) &amp; \\cos\\left(\\frac{3\\pi }{16}\\right) &amp;  &amp; \\cos\\left(\\frac{15\\pi }{16}\\right)\\\\       \\vdots  &amp;  &amp; \\ddots  &amp; \\\\       \\cos\\left(\\frac{7\\pi }{16}\\right) &amp; \\cos\\left(\\frac{3*7\\pi }{16}\\right) &amp;  &amp; \\cos\\left(\\frac{15*7\\pi }{16}\\right)       \\end{pmatrix}\" alt=\"D_8=\\frac{1}{2}\\begin{pmatrix}       \\frac{1}{\\sqrt{2}} &amp; \\frac{1}{\\sqrt{2}} &amp; \\dotsc  &amp; \\frac{1}{\\sqrt{2}}\\\\       \\cos\\left(\\frac{\\pi }{16}\\right) &amp; \\cos\\left(\\frac{3\\pi }{16}\\right) &amp;  &amp; \\cos\\left(\\frac{15\\pi }{16}\\right)\\\\       \\vdots  &amp;  &amp; \\ddots  &amp; \\\\       \\cos\\left(\\frac{7\\pi }{16}\\right) &amp; \\cos\\left(\\frac{3*7\\pi }{16}\\right) &amp;  &amp; \\cos\\left(\\frac{15*7\\pi }{16}\\right)       \\end{pmatrix}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e06\/51b\/d0e\/e0651bd0e0d0bd8554ec9a1c1d8bd0e3.svg\" width=\"353\" height=\"120\"\/><\/p>\n<p>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D_8 X^{(j)}\" alt=\"D_8 X^{(j)}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/38c\/1fe\/899\/38c1fe899016e45995a72001ab8b253c.svg\" width=\"57\" height=\"24\"\/> \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u043e\u0432\u043e\u043c\u0443 \u0431\u0430\u0437\u0438\u0441\u0443. \u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D_8\" alt=\"D_8\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a5a\/e0b\/b97\/a5ae0bb9781219ee602d7fdf21cc2de8.svg\" width=\"24\" height=\"19\"\/> \u0437\u0430\u0434\u0430\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0431\u0430\u0437\u0438\u0441\u043d\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430. \u0412\u043e\u0442 \u043e\u043d\u0438:<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/post_images\/437\/dec\/707\/437dec7073fd85bafbac65f257525d48.png\" width=\"auto\" height=\"auto\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/437\/dec\/707\/437dec7073fd85bafbac65f257525d48.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0434\u043d\u0430 \u0438\u0437 \u0444\u0438\u0447\u0435\u0439 \u044d\u0442\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u2014 \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u0441\u0435 \u0431\u0430\u0437\u0438\u0441\u043d\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443 \u0438 \u0438\u0445 \u0434\u043b\u0438\u043d\u044b \u0440\u0430\u0432\u043d\u044b 1. \u0422\u043e \u0435\u0441\u0442\u044c, \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043f\u043b\u044e\u0441, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0435\u0432\u043a\u043b\u0438\u0434\u043e\u0432\u0443 \u043d\u043e\u0440\u043c\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 (\u0442\u043e \u0435\u0441\u0442\u044c \u0438\u0445 \u0434\u043b\u0438\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043f\u043e \u0442\u0435\u043e\u0440\u0435\u043c\u0435 \u041f\u0438\u0444\u0430\u0433\u043e\u0440\u0430).<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ee4\/a66\/7f2\/ee4a667f27516c3eb0ef8503a367d8b5.png\" width=\"848\" height=\"454\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ee4\/a66\/7f2\/ee4a667f27516c3eb0ef8503a367d8b5.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0432 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D_8 X^{(j)}\" alt=\"D_8 X^{(j)}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/be2\/be9\/eee\/be2be9eeefc74b4151bc7f8a5536922f.svg\" width=\"57\" height=\"24\"\/> \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0432\u0441\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b, \u0438 \u0442\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043c: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"Y=D_8 X\" alt=\"Y=D_8 X\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/efa\/144\/8a0\/efa1448a03466bd28044947948fae7da.svg\" width=\"79\" height=\"19\"\/>.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0436\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"Y\" alt=\"Y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1d0\/eff\/884\/1d0eff884beac0f9659a88dceda33a7c.svg\" width=\"14\" height=\"15\"\/>, \u043d\u043e \u0443\u0436\u0435 \u0434\u043b\u044f \u0441\u0442\u0440\u043e\u043a. \u041d\u0430\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u0443\u0435\u043c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"Y\" alt=\"Y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e7b\/8e8\/0c5\/e7b8e80c5a51cf2e7317e456c5a52450.svg\" width=\"14\" height=\"15\"\/>, \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c, \u0430 \u0437\u0430\u0442\u0435\u043c \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u0435\u0449\u0435 \u0440\u0430\u0437: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"Z=(D_8 Y^T)^T=YD_8 ^T=D_8 X D_8^T\" alt=\"Z=(D_8 Y^T)^T=YD_8 ^T=D_8 X D_8^T\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/38c\/c3d\/4a9\/38cc3d4a97323e816f40d7d7618edcf6.svg\" width=\"270\" height=\"26\"\/>.<\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u043d\u0435\u043c \u0442\u0430\u043a\u043e\u0439 \u0442\u0440\u044e\u043a. \u041f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0443\u044e\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0443 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"Z\" alt=\"Z\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d12\/17d\/b13\/d1217db1362cea5db5b1d2d6c9b78e2b.svg\" width=\"13\" height=\"16\"\/> \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0443\u0435\u043c, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u0438\u0448\u0435\u043c \u0432\u0441\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0432 \u043e\u0434\u0438\u043d. \u0418 \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u0444\u043e\u0440\u043c\u0443\u043b\u0443 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"vec(ABC)=(C^T \\otimes A) vec(B)\" alt=\"vec(ABC)=(C^T \\otimes A) vec(B)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d35\/4ea\/f0c\/d354eaf0c98af2fbba7b4e57da7e1331.svg\" width=\"238\" height=\"24\"\/>, \u0433\u0434\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\otimes\" alt=\"\\otimes\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ad4\/412\/952\/ad441295296b579c155478403f55c7df.svg\" width=\"14\" height=\"15\"\/> \u2014 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Kronecker_product\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u041a\u0440\u043e\u043d\u0435\u043a\u0435\u0440\u0430<\/a>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"vec(Z)=vec(D_8 X D_8^T)=(D_8 \\otimes D_8)vec(X) = (D_{8 \\times 8}) vec(X)\" alt=\"vec(Z)=vec(D_8 X D_8^T)=(D_8 \\otimes D_8)vec(X) = (D_{8 \\times 8}) vec(X)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4bf\/f3e\/05d\/4bff3e05d47737c7ba4b23a1d9655dc3.svg\" width=\"426\" height=\"22\"\/><\/p>\n<p>\u041c\u0430\u0442\u0440\u0438\u0446\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D_{8 \\times 8} = D_8 \\otimes D_8\" alt=\"D_{8 \\times 8} = D_8 \\otimes D_8\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/015\/38e\/4d8\/01538e4d84c83cbef9b172278d5d908e.svg\" width=\"136\" height=\"19\"\/> \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 64 \u043d\u0430 64. \u041a\u0430\u0436\u0434\u0430\u044f \u0435\u0435 \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 64 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u043f\u043e\u043f\u0430\u0440\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u0432\u0443\u0445 \u00ab\u0432\u043e\u043b\u043d\u00bb \u0438\u0437 \u043f\u0440\u0435\u0434\u0443\u0449\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438. \u0418 \u0435\u0441\u043b\u0438 \u0438\u0445 \u0432\u044b\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b 8&#215;8, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0434\u0432\u0443\u0445\u043c\u0435\u0440\u043d\u0430\u044f \u0432\u043e\u043b\u043d\u0430. \u0420\u0430\u0437\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u0430\u0434\u0443\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u043e x \u0438 y. \u0412\u043e\u0442 \u043e\u043d\u0438 \u0432\u0441\u0435 \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/312\/f80\/bb2\/312f80bb2d902aa24defabf788d69b63.png\" width=\"812\" height=\"639\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/312\/f80\/bb2\/312f80bb2d902aa24defabf788d69b63.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438 \u0431\u043b\u043e\u043a\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0432\u043e\u043b\u043d.<\/p>\n<p>\u041e\u0434\u043d\u043e \u0438\u0437 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u041a\u0440\u043e\u043d\u0435\u043a\u0435\u0440\u0430 \u2014 \u0435\u0441\u043b\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A\" alt=\"A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eea\/4c2\/a18\/eea4c2a18b0d0fea484230d32235364e.svg\" width=\"14\" height=\"17\"\/> \u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"B\" alt=\"B\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/491\/c2d\/78b\/491c2d78be16822e56359f6abd0dbe4b.svg\" width=\"14\" height=\"16\"\/> \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0442\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A \\otimes B\" alt=\"A \\otimes B\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/959\/36c\/237\/95936c2374cd0fc4d7b17f52ad97690b.svg\" width=\"51\" height=\"18\"\/> \u0442\u043e\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439. \u0424\u043e\u0440\u043c\u0443\u043b\u0443 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0443\u043c\u043d\u043e\u0436\u0438\u0432 \u043e\u0431\u0435 \u0447\u0430\u0441\u0442\u0438 \u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(D^T_{8 \\times 8})vec(Z)=(D^T_{8 \\times 8})(D_{8 \\times 8}) vec(X)\" alt=\"(D^T_{8 \\times 8})vec(Z)=(D^T_{8 \\times 8})(D_{8 \\times 8}) vec(X)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a59\/f37\/d74\/a59f37d7474fe2581526694f01bbbbc5.svg\" width=\"300\" height=\"25\"\/>. \u0422\u0430\u043a \u043a\u0430\u043a \u0434\u043b\u044f \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0442\u0440\u0438\u0446 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e, \u0447\u0442\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"Q^T Q=I\" alt=\"Q^T Q=I\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bdd\/255\/7fc\/bdd2557fcd7f01e472cf4d116204b95a.svg\" width=\"75\" height=\"23\"\/>, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c:  <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"vec(X) = (D^T_{8 \\times 8})vec(Z)\" alt=\"vec(X) = (D^T_{8 \\times 8})vec(Z)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c1f\/c80\/ef1\/c1fc80ef1b09963ee570ef5e80e9392a.svg\" width=\"190\" height=\"25\"\/>.<\/p>\n<h2>\u041f\u043e\u0447\u0435\u043c\u0443 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043f\u043e\u0442\u0435\u0440\u0438?<\/h2>\n<p>\u041c\u0435\u043d\u044f \u0434\u0430\u0432\u043d\u043e \u043f\u0440\u0435\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0434\u0435\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0433\u0438\u0431\u043a\u043e\u0433\u043e JPEG-\u043a\u043e\u0434\u0435\u043a\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0425\u0430\u0444\u0444\u043c\u0430\u043d\u0430 \u0438 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u044d\u0442\u043e \u043e\u0444\u0438\u0433\u0435\u043d\u043d\u043e, \u0432\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434\u0435\u043a \u0441\u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u0434\u0435\u043a\u0438 (\u0438 \u0444\u043e\u0442\u043e\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043e\u0432 \u0442\u043e\u0436\u0435), \u043d\u043e \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0435\u043c\u0430. \u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b\u0439\u0442\u0438 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430, \u044d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0431\u043b\u043e\u043a\u043e\u0432 8 \u043d\u0430 8. \u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u0436\u0435 2 \u043d\u0430 1. \u042d\u0442\u043e \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f, \u043d\u043e \u0437\u0430\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0430\u043a\u043e\u0439 \u0431\u043b\u043e\u043a \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 (\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430) \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u043e\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a71\/16d\/43e\/a7116d43e30dcaa6985320a5939d0d97.png\" width=\"500\" height=\"610\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a71\/16d\/43e\/a7116d43e30dcaa6985320a5939d0d97.png\"\/><figcaption><\/figcaption><\/figure>\n<p>DCT \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"Y = \\frac{\\sqrt{2}}{2} \\begin{pmatrix} 1 &amp; 1\\\\ 1 &amp; -1 \\end{pmatrix} X \\ \u0438\u043b\u0438 \\begin{cases}      y_{0} =\\frac{\\sqrt{2}}{2} (x_0 + x_1)\\\\      y_{1} =\\frac{\\sqrt{2}}{2} (x_0 - x_1)      \\end{cases}\" alt=\"Y = \\frac{\\sqrt{2}}{2} \\begin{pmatrix} 1 &amp; 1\\\\ 1 &amp; -1 \\end{pmatrix} X \\ \u0438\u043b\u0438 \\begin{cases}      y_{0} =\\frac{\\sqrt{2}}{2} (x_0 + x_1)\\\\      y_{1} =\\frac{\\sqrt{2}}{2} (x_0 - x_1)      \\end{cases}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7fa\/0a0\/a3f\/7fa0a0a3fe760a5bd5d98a3a9d595a08.svg\" width=\"328\" height=\"58\"\/><\/p>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0438\u043c\u0435\u0435\u0442 \u0446\u0432\u0435\u0442 3, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 2. \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043c (3.536, 0.707). \u041d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u0448\u0430\u0433 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u0432 JPEG \u0440\u0430\u0432\u0435\u043d 1, \u0442\u043e \u0435\u0441\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435: (4, 1). \u041f\u043e\u0441\u043b\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f: (3.536, 2.121), \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u2014 4, \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 2.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/329\/5ab\/dd4\/3295abdd4a92cba2c86f8c834df29a0f.png\" width=\"828\" height=\"539\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/329\/5ab\/dd4\/3295abdd4a92cba2c86f8c834df29a0f.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043b\u0438 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0447\u0435\u043c 1, \u0442\u043e \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043c\u043e\u0433\u043b\u043e \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435. \u041e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u044f <a href=\"https:\/\/habr.com\/ru\/post\/473544\/\" rel=\"noopener noreferrer nofollow\">\u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b<\/a>, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0448\u0430\u0433\u0430\u0445 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u043e \u0442\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0446\u0435\u043b\u044b\u043c\u0438, \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u044b, \u0430 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u0431\u0443\u0434\u0435\u043c \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c.<\/p>\n<p>\u0413\u043b\u044f\u0434\u044f \u043d\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u0442\u043a\u0443 \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u0432\u044b\u0448\u0435, \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0433\u0440\u0443\u0431\u0443\u044e \u043f\u0440\u0438\u043a\u0438\u0434\u043a\u0443. \u041a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0442\u0434\u0430\u043b\u044f\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 0.5 \u043e\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439. \u041d\u043e \u0435\u0441\u043b\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u0441\u0435\u0442\u043a\u0438 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"(y_0,y_1)\" alt=\"(y_0,y_1)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/338\/801\/bb9\/338801bb93a3d547783dabb2641ebf0e.svg\" width=\"58\" height=\"21\"\/>, \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043e\u0442\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 (0.707). \u0417\u043d\u0430\u0447\u0438\u0442, \u0435\u0441\u043b\u0438 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u0442\u044c \u0441 \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u043b\u043a\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0438\u043c 0.5\/0.707 = 0.707, \u0442\u043e \u043f\u043e\u0442\u0435\u0440\u044c \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c. \u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0448\u0430\u0433 0.65 (\u043f\u0440\u0438 0.707 \u0443\u0437\u043b\u044b \u0441\u0435\u0442\u043e\u043a \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e) \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f22\/2ae\/bea\/f222aebeaa9fbfeb4fe2ffa49bff7420.png\" width=\"852\" height=\"547\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f22\/2ae\/bea\/f222aebeaa9fbfeb4fe2ffa49bff7420.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0423\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0435\u043a\u0430:<\/p>\n<pre><code class=\"python\">step = 0.65 C = sqrt(2) \/ 2  def write(x0, x1):     y0 = C * (x0 + x1)     y1 = C * (x0 - x1)     save_to_file(round(y0 \/ step))     save_to_file(round(y1 \/ step))      def read():     y0 = load_from_file() * step     y1 = load_from_file() * step         x0 = round(C * (y0 + y1))     x1 = round(C * (y0 - y1))     return x0, x1      x = (3, 2)     write(*x) xx = read() assert xx == x<\/code><\/pre>\n<p>\u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0448\u0430\u0433\u0430 \u043d\u0435 \u0434\u0430\u0435\u0442\u0441\u044f \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e. \u0427\u0435\u043c \u043e\u043d \u043c\u0435\u043d\u044c\u0448\u0435, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c. \u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044e \u043d\u0430 \u043e\u0434\u0438\u043d \u0431\u0438\u0442.<\/p>\n<p>\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c JPEG \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f 64-\u043c\u0435\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 64-\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0433\u0438\u043f\u0435\u0440\u043a\u0443\u0431\u0430 \u0440\u0430\u0432\u043d\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\sqrt{64*1^2}\/2=4\" alt=\"\\sqrt{64*1^2}\/2=4\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/554\/8f0\/2e1\/5548f02e175a9038834e1f9f25c5cd10.svg\" width=\"125\" height=\"27\"\/>. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0448\u0430\u0433 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f 0.125, \u0442\u043e \u0435\u0441\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u0442\u044c 3 \u0431\u0438\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438\u043a\u0438\u0434\u043a\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9e4\/105\/f36\/9e4105f362cf6e5b68d82d3f9fc1d766.png\" width=\"1158\" height=\"547\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9e4\/105\/f36\/9e4105f362cf6e5b68d82d3f9fc1d766.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u0435\u0440\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e 64-\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u043e \u0434\u043b\u044f DCT \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0433 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435.<\/p>\n<h2>\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0433 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0443\u0441\u0442\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"X\" alt=\"X\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/995\/da6\/3a0\/995da63a043336bef9230c4a75a67d8c.svg\" width=\"16\" height=\"16\"\/> \u2014 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441 \u0446\u0435\u043b\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438, <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D\" alt=\"D\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8ab\/c59\/dda\/8abc59dda09b367e883afb0d832b313e.svg\" width=\"15\" height=\"16\"\/> \u2014 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f (RGB \u0432 YCbCr \u0438\u043b\u0438 DCT), <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"q\" alt=\"q\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/380\/b52\/0a7\/380b520a74cc89eb60f97a0fbb74808f.svg\" width=\"9\" height=\"15\"\/> \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f, <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"r\" alt=\"r\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e1e\/4e4\/b20\/e1e4e4b20e666ee98c464cf515ac0a48.svg\" width=\"8\" height=\"12\"\/> \u2014 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f. \u041f\u043e\u0441\u043b\u0435 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"q(DX)\" alt=\"q(DX)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/de9\/9b3\/cd6\/de99b3cd692fd082623add1888c15240.svg\" width=\"54\" height=\"21\"\/>. \u0414\u043b\u044f DCT \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435. \u041f\u0440\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"X\" alt=\"X\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f85\/cea\/5f5\/f85cea5f589a419f8e3b68d74c37d831.svg\" width=\"16\" height=\"16\"\/> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"r(D^{-1}q(DX))\" alt=\"r(D^{-1}q(DX))\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5da\/49e\/da1\/5da49eda10eefd863553cd29faf40015.svg\" width=\"111\" height=\"24\"\/>.<\/p>\n<p>\u041d\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u044b\u043c \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"r(D^{-1}q(DX))=X\" alt=\"r(D^{-1}q(DX))=X\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e0f\/5d2\/2c5\/e0f5d22c5ff7ad154b6bf66cf68f8d1a.svg\" width=\"152\" height=\"24\"\/> \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 X. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u00ab\u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435\u00bb \u0432 \u044d\u0442\u043e\u043c \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u0442\u044c (\u0442\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0442\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"q(A)=A\" alt=\"q(A)=A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/727\/9c8\/2d5\/7279c82d533db9967541b9f3eda3bc6e.svg\" width=\"76\" height=\"21\"\/>) \u0438 \u0442\u043e\u0433\u0434\u0430, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D^{-1} D=I\" alt=\"D^{-1} D=I\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/da6\/bce\/f8e\/da6bcef8ed94aad6a51dc3ae751e08a8.svg\" width=\"84\" height=\"20\"\/>, \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0445\u043b\u043e\u043f\u043d\u0435\u0442\u0441\u044f \u0434\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"r(X)=X\" alt=\"r(X)=X\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3c1\/537\/7ce\/3c15377ce2ac149403b7e25cb73a9132.svg\" width=\"79\" height=\"21\"\/>, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f X \u0438 \u0442\u0430\u043a \u0446\u0435\u043b\u044b\u0435. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u044d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043d\u043e \u043e\u043d\u043e, \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442.<\/p>\n<p>\u0427\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"r(A)=B\" alt=\"r(A)=B\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ef2\/7fa\/55a\/ef27fa55a5596e00f65bc9feb1dd0132.svg\" width=\"76\" height=\"21\"\/>? \u0422\u043e, \u0447\u0442\u043e \u043d\u0438 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A\" alt=\"A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/392\/5e6\/60d\/3925e660dea9b7196d72b9bd28b92d60.svg\" width=\"14\" height=\"17\"\/> \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"B\" alt=\"B\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/993\/cbf\/4da\/993cbf4da46aed919d8fc5db7d53695a.svg\" width=\"14\" height=\"16\"\/> \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 0.5. \u0418\u043b\u0438 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e: \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u0430\u044f \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"A\" alt=\"A\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ec9\/752\/4f6\/ec97524f629e6d242e0f2883ae5b9c17.svg\" width=\"14\" height=\"17\"\/> \u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"B\" alt=\"B\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/509\/b65\/2cd\/509b652cd3e669370f838bc272b81ec7.svg\" width=\"14\" height=\"16\"\/> \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 0.5:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"max(|a_0-b_0|, |a_1-b_1|, \\dots, |a_{n-1}-b_{n-1}|) \\leq 0.5\" alt=\"max(|a_0-b_0|, |a_1-b_1|, \\dots, |a_{n-1}-b_{n-1}|) \\leq 0.5\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/046\/8d7\/c93\/0468d7c934ff8234df944e5ceea16158.svg\" width=\"340\" height=\"20\"\/><\/p>\n<p>\u0425\u043c\u043c, \u0434\u0430 \u044d\u0442\u043e \u0436\u0435 <s>\u043a\u0438\u0441\u0443\u043b\u044c\u043a\u0435\u043d<\/s> \u043d\u043e\u0440\u043c\u0430 (\u043d\u0443 \u0438\u043b\u0438 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435) \u0427\u0435\u0431\u044b\u0448\u0435\u0432\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/91a\/ed2\/9ef\/91aed29ef9f7562dba1855f6919e55fd.png\" width=\"1391\" height=\"1029\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/91a\/ed2\/9ef\/91aed29ef9f7562dba1855f6919e55fd.png\"\/><figcaption><\/figcaption><\/figure>\n<details class=\"spoiler\">\n<summary>\u041a\u0441\u0442\u0430\u0442\u0438, \u0432 \u0447\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043d\u043e\u0440\u043c\u043e\u0439 \u0438 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c?<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0420\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u2014 \u0431\u043e\u043b\u0435\u0435 \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u0435. \u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0437\u0430\u0434\u0430\u043d\u0430 \u043d\u043e\u0440\u043c\u0430, \u0442\u043e \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"d(x,y)=\\| x-y \\|\" alt=\"d(x,y)=\\| x-y \\|\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/16d\/d21\/2fc\/16dd212fc91c94ffd2a709f1e1eef2b0.svg\" width=\"138\" height=\"21\"\/>, \u043d\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u0435\u0440\u043d\u043e. \u0422\u0430\u043a, \u0435\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0435 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u043c) <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"d(x,x)=0\" alt=\"d(x,x)=0\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/05e\/894\/7d4\/05e8947d45ac4188863c26200c405151.svg\" width=\"88\" height=\"21\"\/> \u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"d(x,y)=1\" alt=\"d(x,y)=1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/50d\/947\/7d9\/50d9477d9f06f05747ecf3fc5457028f.svg\" width=\"86\" height=\"21\"\/> \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"x \\neq y\" alt=\"x \\neq y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/66f\/584\/515\/66f5845150576eb0ae03f5e01682ddde.svg\" width=\"45\" height=\"21\"\/>, \u0442\u043e \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u043d\u043e\u0440\u043c \u043d\u0430\u0440\u0443\u0448\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u043e\u0441\u0442\u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\| \\alpha x \\| = | \\alpha | \\| x \\|\" alt=\"\\| \\alpha x \\| = | \\alpha | \\| x \\|\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b1f\/95e\/584\/b1f95e5849c1a076a8bb726715399338.svg\" width=\"117\" height=\"21\"\/>. \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0434\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"x \\neq y\" alt=\"x \\neq y\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f4b\/750\/05a\/f4b75005ad5e13ee47bfff22ccc72f87.svg\" width=\"45\" height=\"21\"\/> \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"1=d(2x,2y)=\\| 2x - 2y \\| = 2 \\| x-y \\|=2 d(x,y) = 2\" alt=\"1=d(2x,2y)=\\| 2x - 2y \\| = 2 \\| x-y \\|=2 d(x,y) = 2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4f1\/d43\/69d\/4f1d4369d9874021adcbb608180ecdcd.svg\" width=\"425\" height=\"21\"\/>. \u041d\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0438 \u043d\u043e\u0440\u043c\u0430.<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0438\u0437 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"r(D^{-1}q(DX))=X\" alt=\"r(D^{-1}q(DX))=X\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dbb\/99a\/5e7\/dbb99a5e7b31476030855ac3ac0cda6c.svg\" width=\"152\" height=\"24\"\/> \u0441\u043b\u0435\u0434\u0443\u0435\u0442 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\| D^{-1}q(DX)-X \\|_\\infty \\leq 0.5\" alt=\"\\| D^{-1}q(DX)-X \\|_\\infty \\leq 0.5\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/98b\/fd5\/470\/98bfd547099824c4034d760bb120652c.svg\" width=\"209\" height=\"24\"\/>. \u0423\u043c\u043d\u043e\u0436\u0438\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 \u043d\u043e\u0440\u043c\u043e\u0439 \u043d\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D^{-1} D\" alt=\"D^{-1} D\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/033\/f1b\/18d\/033f1b18da87e0720d83ef182e63ee3b.svg\" width=\"49\" height=\"20\"\/> (\u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0442\u0430\u043a \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u0440\u0430\u0432\u043d\u043e\u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044e \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0442\u043e \u0435\u0441\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"D^{-1}q(DX)-X = D^{-1} D(D^{-1}q(DX)-X) = D^{-1} (q(DX) - DX)\" alt=\"D^{-1}q(DX)-X = D^{-1} D(D^{-1}q(DX)-X) = D^{-1} (q(DX) - DX)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/670\/3d4\/bee\/6703d4bee0a7b210cce7686e13163a43.svg\" width=\"459\" height=\"22\"\/><\/p>\n<p>\u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"L=q(DX) - DX\" alt=\"L=q(DX) - DX\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/525\/ee5\/7e5\/525ee57e560b5c91092bea37ccf30c76.svg\" width=\"146\" height=\"21\"\/>. \u0412\u0435\u043a\u0442\u043e\u0440 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"L\" alt=\"L\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a90\/56a\/b88\/a9056ab8875e1c22167d4aaf77802497.svg\" width=\"13\" height=\"16\"\/> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0431\u0430\u0437\u0438\u0441\u0435. \u0418\u0442\u0430\u043a, \u043d\u0430\u0448\u0435 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0438\u0434:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\| D^{-1} L \\|_\\infty \\leq 0.5\" alt=\"\\| D^{-1} L \\|_\\infty \\leq 0.5\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8d0\/445\/c43\/8d0445c432da1052766e25d894910bb9.svg\" width=\"113\" height=\"22\"\/><\/p>\n<p>\u042d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"L\" alt=\"L\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2fe\/429\/51f\/2fe42951fdf92eaf9e1d6cc060e698f7.svg\" width=\"13\" height=\"17\"\/>. \u0410 \u043a\u0430\u043a\u0438\u043c \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c? \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u0448\u0430\u0433\u0430 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f. \u0422\u0430\u043a, \u0435\u0441\u043b\u0438 \u0448\u0430\u0433 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0432\u0435\u043d s, \u0442\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\| L \\|_\\infty \\leq s\/2\" alt=\"\\| L \\|_\\infty \\leq s\/2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e27\/210\/c6d\/e27210c6dafabb8e2cddf6729986bd20.svg\" width=\"98\" height=\"21\"\/>. \u0412 \u043d\u0430\u0448\u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430\u0445 \u043d\u0430\u0439\u0442\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0448\u0430\u0433, \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0449\u0438\u0439 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\| D^{-1} L \\|_\\infty \\leq 0.5\" alt=\"\\| D^{-1} L \\|_\\infty \\leq 0.5\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ae2\/1c5\/100\/ae21c51005c80cbd7fc6562337ef075d.svg\" width=\"129\" height=\"24\"\/>. \u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0448\u0430\u0433.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/644\/6cc\/c45\/6446ccc45107a77355b561274aaca47b.png\" width=\"711\" height=\"626\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/644\/6cc\/c45\/6446ccc45107a77355b561274aaca47b.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0423\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c \u0448\u0430\u0433 \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e. \u041d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435, \u0434\u0430\u0436\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c, \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0438\u044e \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/086\/500\/e37\/086500e37ae9c77a24392c282a6e11af.png\" width=\"1128\" height=\"735\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/086\/500\/e37\/086500e37ae9c77a24392c282a6e11af.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0433\u0440\u0443\u0431\u0443\u044e \u043f\u0440\u0438\u043a\u0438\u0434\u043a\u0443 \u0434\u043b\u044f \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0415\u0432\u043a\u043b\u0438\u0434\u043e\u0432\u0430 \u043d\u043e\u0440\u043c\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u043d\u043e\u0440\u043c\u044b \u0427\u0435\u0431\u044b\u0448\u0435\u0432\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0435\u0441\u043b\u0438 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\| D^{-1} L \\|_2 \\leq 0.5\" alt=\"\\| D^{-1} L \\|_2 \\leq 0.5\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3bd\/3f4\/a1b\/3bd3f4a1ba969dda3e8a3b61fa8f79b3.svg\" width=\"122\" height=\"24\"\/>, \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0440\u043d\u043e \u0438 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\| D^{-1} L \\|_\\infty \\leq 0.5\" alt=\"\\| D^{-1} L \\|_\\infty \\leq 0.5\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e7a\/7d9\/72d\/e7a7d972d1ff6a7a15bac2389c2786c5.svg\" width=\"129\" height=\"24\"\/>. \u0410 \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0435\u0432\u043a\u043b\u0438\u0434\u043e\u0432\u0443 \u043d\u043e\u0440\u043c\u0443, \u0442\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\| L \\|_2 \\leq 0.5\" alt=\"\\| L \\|_2 \\leq 0.5\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a7a\/7c9\/58a\/a7a7c958a2834d28a9f05172ab540386.svg\" width=\"88\" height=\"21\"\/>. \u041d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u0435 \u0448\u0430\u0433 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b\u0441\u044f \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u044b \u0438\u0437\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u043e\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u0430\u0437\u0438\u0441\u0430 \u0438 \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c\u0443 \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u043c\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c3a\/b46\/c67\/c3ab46c67e250323957a98d137eb26a0.png\" width=\"1379\" height=\"677\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c3a\/b46\/c67\/c3ab46c67e250323957a98d137eb26a0.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043e\u0431\u0435\u0438\u043c\u0438 \u043d\u043e\u0440\u043c\u0430\u043c\u0438:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\| L \\|_2 = \\sqrt{x_0^2 + \\dots + x_{N-1}^2} \\leq \\sqrt{N * \\left(\\frac{s}{2}\\right)^{2}} \\leq \\frac{1}{2}\" alt=\"\\| L \\|_2 = \\sqrt{x_0^2 + \\dots + x_{N-1}^2} \\leq \\sqrt{N * \\left(\\frac{s}{2}\\right)^{2}} \\leq \\frac{1}{2}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fed\/d33\/f00\/fedd33f00d1d9cf7017fa73ac7b84336.svg\" width=\"328\" height=\"43\"\/><\/p>\n<p>\u041e\u0442\u0441\u044e\u0434\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0433 \u0440\u0430\u0432\u043d\u044b\u0439 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"1\/\\sqrt N\" alt=\"1\/\\sqrt N\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/fc2\/8e7\/012\/fc28e7012d264da204cd131bde4d09c1.svg\" width=\"51\" height=\"24\"\/>. \u0414\u043b\u044f <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"N=64\" alt=\"N=64\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/685\/d09\/fc6\/685d09fc6e4731844b025ff81211e477.svg\" width=\"60\" height=\"16\"\/> \u043f\u043e\u043b\u0443\u0447\u0438\u043c 0.125, \u043a\u0430\u043a \u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u0438 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0442\u043e\u0447\u043d\u0435\u0435? \u0414\u0430. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\| D^{-1} L \\|_\\infty \\leq 0.5\" alt=\"\\| D^{-1} L \\|_\\infty \\leq 0.5\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b84\/0af\/e5b\/b840afe5b403bff474fcc3b497889211.svg\" width=\"129\" height=\"24\"\/> \u0438 \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0435\u0433\u043e \u0442\u0430\u043a:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\underset{i}{\\max}\\left( | D_{i}^{-1} L\\right | ) =\\underset{i}{\\max}\\left( | D_{i,0}^{-1} L_{0} +D_{i,1}^{-1} L_{1} +\\dotsc +D_{i,N-1}^{-1} L_{N-1} | \\right) \\leq 0.5\" alt=\"\\underset{i}{\\max}\\left( | D_{i}^{-1} L\\right | ) =\\underset{i}{\\max}\\left( | D_{i,0}^{-1} L_{0} +D_{i,1}^{-1} L_{1} +\\dotsc +D_{i,N-1}^{-1} L_{N-1} | \\right) \\leq 0.5\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/697\/a94\/2b8\/697a942b869cbce38bd46198d09a3e1d.svg\" width=\"482\" height=\"34\"\/><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u043c\u043c\u0443, \u043d\u0443\u0436\u043d\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u043e\u0435 \u0441\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"L_j\" alt=\"L_j\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6f2\/500\/cd8\/6f2500cd882f418508e4677e5fb09e20.svg\" width=\"20\" height=\"21\"\/> \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"s\/2\" alt=\"s\/2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9c8\/787\/1a6\/9c87871a69ac1fb095d19ce98026b62d.svg\" width=\"27\" height=\"21\"\/> \u0441 \u0442\u0435\u043c \u0436\u0435 \u0437\u043d\u0430\u043a\u043e\u043c, \u0447\u0442\u043e \u0438 \u0443 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D^{-1}_{i,j}\" alt=\"D^{-1}_{i,j}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8c1\/da7\/685\/8c1da7685d5585861922e15a3cba62e8.svg\" width=\"34\" height=\"28\"\/> (\u043d\u0435 \u0442\u043e\u0442 \u0437\u043d\u0430\u043a \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u044e). \u0418\u043b\u0438 \u0436\u0435 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043b\u044e\u0441 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"s\/2\" alt=\"s\/2\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0b5\/410\/ff8\/0b5410ff89a77965a1a6ee749522ec48.svg\" width=\"27\" height=\"21\"\/> \u0438 \u0432\u0437\u044f\u0442\u044c <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D^{-1}_{i,j}\" alt=\"D^{-1}_{i,j}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/545\/b82\/f9c\/545b82f9c63195076d4939df585bb47a.svg\" width=\"34\" height=\"28\"\/> \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"s * \\underset{i}{max}\\left( | D_{i,0}^{-1} | + \\dotsc + | D_{i,N-1}^{-1} | \\right ) \\leq 1\" alt=\"s * \\underset{i}{max}\\left( | D_{i,0}^{-1} | + \\dotsc + | D_{i,N-1}^{-1} | \\right ) \\leq 1\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/29c\/28c\/0f7\/29c28c0f7f3ba73d7a41445fe833fff8.svg\" width=\"261\" height=\"34\"\/><\/p>\n<p>\u0421\u0447\u0438\u0442\u0430\u0435\u043c:<\/p>\n<pre><code class=\"python\">import numpy as np from scipy.fftpack import dct  def max_step(D):     return 1 \/ np.max(np.sum(np.abs(D), axis=1))    YCbCr2RGB = [[1, 0, 1.402], [1,-0.344136,-0.714136], [1,1.772,0]]  # \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u043c\u0435\u0440\u043d\u043e\u0433\u043e DCT # \u0412\u043c\u0435\u0441\u0442\u043e X \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 dct(X) = DX \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443 # \u0418 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c D = dct(I) D_8 = dct(np.identity(8), norm='ortho', axis=0)  # \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u041a\u0440\u043e\u043d\u0435\u043a\u0435\u0440\u0430 D_8x8 = np.kron(D_8, D_8)  # \u0414\u043b\u044f DCT \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0440\u0430\u0432\u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 ID_8x8 = D_8x8.T  print('YCbCr2RGB:', max_step(YCbCr2RGB)) # 0.36075 print('IDCT:', max_step(ID_8x8))         # 0.14328<\/code><\/pre>\n<p>C YCbCr \u043f\u043e\u043d\u044f\u0442\u043d\u043e, 1 \/ (1 + 1.772) = 0.36075. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c 0.14328 \u0434\u043b\u044f DCT. \u0417\u0430\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D^{-1}_{8\\times 8}\" alt=\"D^{-1}_{8\\times 8}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/24e\/b67\/126\/24eb671262f0e991892360755d230517.svg\" width=\"41\" height=\"26\"\/> \u2014 \u044d\u0442\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u044b <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"D_{8 \\times  8}\" alt=\"D_{8 \\times  8}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c83\/f88\/55a\/c83f8855a41a960cc01fda370665362e.svg\" width=\"41\" height=\"19\"\/>. \u0415\u0441\u043b\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"t\" alt=\"t\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/acf\/eb9\/c31\/acfeb9c31e81de4d869d8c6bacb5d20f.svg\" width=\"7\" height=\"15\"\/> \u0432 \u0432\u0438\u0434\u0435 <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"t=8p+q, 0\\leq p\\leq 7, 0\\leq q\\leq 7\" alt=\"t=8p+q, 0\\leq p\\leq 7, 0\\leq q\\leq 7\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/da5\/483\/085\/da54830859b1a803e7bf21e2f9131861.svg\" width=\"252\" height=\"19\"\/>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\sum _{i=0}^{63} | ( D\\otimes D)_{i, t} | =\\sum _{i=0}^{7} \\sum _{j=0}^{7} | D_{i,p} D_{j,q} | =\\sum _{j=0}^{7} | D_{i,p} | *\\sum _{j=0}^{7} | D_{j,q} |\" alt=\"\\sum _{i=0}^{63} | ( D\\otimes D)_{i, t} | =\\sum _{i=0}^{7} \\sum _{j=0}^{7} | D_{i,p} D_{j,q} | =\\sum _{j=0}^{7} | D_{i,p} | *\\sum _{j=0}^{7} | D_{j,q} |\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1e5\/51c\/d86\/1e551cd86a8d9d749c107b1eea83d269.svg\" width=\"411\" height=\"53\"\/><\/p>\n<p>\u0422\u043e\u0433\u0434\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043d\u0443\u043b\u0435\u0432\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\left(\\sum _{i=0}^{7} | D_{i,0} | \\right)^{2} =\\left(\\frac{1}{2}\\left(\\frac{1}{\\sqrt{2}} +\\sum _{i=1}^{7}\\cos\\frac{i\\pi }{16}\\right)\\right)^{2}\" alt=\"\\left(\\sum _{i=0}^{7} | D_{i,0} | \\right)^{2} =\\left(\\frac{1}{2}\\left(\\frac{1}{\\sqrt{2}} +\\sum _{i=1}^{7}\\cos\\frac{i\\pi }{16}\\right)\\right)^{2}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d2a\/73f\/301\/d2a73f301b7cbf08d0e7a34e5d29de06.svg\" width=\"311\" height=\"55\"\/><\/p>\n<p>\u042d\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u043e\u0436\u0434\u0435\u0441\u0442\u0432\u0430 \u041b\u0430\u0433\u0440\u0430\u043d\u0436\u0430:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"formula\" source=\"\\sum_{k=0}^n \\cos k\\theta = \\frac{\\sin \\tfrac12\\theta + \\sin\\left(\\left(n + \\tfrac12\\right)\\theta\\right)}{2\\sin\\tfrac12\\theta} \\Rightarrow \\sum_{k=1}^n \\cos k\\theta = \\frac{1}{2} \\left(    \\frac{\\sin\\left(\\left(n + \\tfrac12\\right)\\theta\\right)}{\\sin\\tfrac12\\theta}  -1\\right)\" alt=\"\\sum_{k=0}^n \\cos k\\theta = \\frac{\\sin \\tfrac12\\theta + \\sin\\left(\\left(n + \\tfrac12\\right)\\theta\\right)}{2\\sin\\tfrac12\\theta} \\Rightarrow \\sum_{k=1}^n \\cos k\\theta = \\frac{1}{2} \\left(    \\frac{\\sin\\left(\\left(n + \\tfrac12\\right)\\theta\\right)}{\\sin\\tfrac12\\theta}  -1\\right)\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/193\/5c4\/19a\/1935c419acda700efa36f67c6acf5a4d.svg\" width=\"546\" height=\"53\"\/><\/p>\n<p>\u041f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u043c. \u0418\u0442\u043e\u0433\u043e: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\frac{1}{16} \\left( \\cot\\frac{\\pi}{32} + \\sqrt2 - 1  \\right)^2 \\approx 6,97935\" alt=\"\\frac{1}{16} \\left( \\cot\\frac{\\pi}{32} + \\sqrt2 - 1  \\right)^2 \\approx 6,97935\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/95d\/a36\/9ad\/95da369ad481de9619ef37f2cac9487c.svg\" width=\"277\" height=\"42\"\/>. \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043a\u043e\u0442\u0430\u043d\u0433\u0435\u043d\u0441 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0442\u043e\u0447\u043d\u043e, \u043d\u043e \u0441 \u043a\u0443\u0447\u0435\u0439 \u0440\u0430\u0434\u0438\u043a\u0430\u043b\u043e\u0432.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1e2\/8cd\/e8a\/1e28cde8a387eca3ae0cb2962ca508e0.png\" width=\"369\" height=\"441\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1e2\/8cd\/e8a\/1e28cde8a387eca3ae0cb2962ca508e0.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0433: <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"1\/6,97935 \\approx 0.14328\" alt=\"1\/6,97935 \\approx 0.14328\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2e5\/13c\/fb6\/2e513cfb6f5d6a2ac60ad4de2ce465c6.svg\" width=\"168\" height=\"21\"\/>. \u0422\u0430\u043a\u043e\u0435 \u0436\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0438 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u044b.<\/p>\n<h2>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c 0.36075<\/h2>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0443\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u0432\u0441\u0435\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (R, G, B):<\/p>\n<pre><code class=\"python\">M = np.array([[ 0.299,     0.587,     0.114   ],               [-0.168736, -0.331264,  0.5     ],               [ 0.5,      -0.418688, -0.081312]]) IM = np.array([[1,  0,         1.402   ],                [1, -0.344136, -0.714136],                [1,  1.772,     0       ]])  def quant(x, step):     return np.round(x \/ step) * step  def ycbcr_d_inv(x, step):     y = np.dot(IM, quant(np.dot(M, x), step))     return np.max(np.abs(y-x))  step = 0.36075 max_d = 0 for r in np.arange(0,256):     for g in np.arange(0,256):         for b in np.arange(0,256):             d = ycbcr_d_inv([r,g,b], step)             if d > max_d:                 max_d = d  print(max_d) # 0.499517<\/code><\/pre>\n<p>\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0448\u0430\u0433 \u043f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u0430\u043b\u0435\u043d. \u041d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u043e\u0447\u0435\u043d\u044c \u0431\u043b\u0438\u0437\u043a\u043e \u043a 0.5, \u043d\u043e \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0441\u0438\u043b\u043e \u0435\u0433\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0438 \u043c\u044b \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<h2>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c 0.14328<\/h2>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0439 \u0433\u043e\u0440\u043e\u0434 \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440 \u043d\u0430 \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440. \u0423 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0439\u043e\u043d \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043f\u043e\u043b- \u043d\u0430 \u043f\u043e\u043b\u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u0430, \u0438 \u043e\u043a\u0440\u0430\u0438\u043d\u0430, \u043f\u043b\u043e\u0449\u0430\u0434\u044c \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0432\u043d\u0430 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0435 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0432\u0441\u0435\u0433\u043e \u0433\u043e\u0440\u043e\u0434\u0430 \u2014 0.5 \u043a\u0432. \u043a\u043c. \u042d\u0442\u0438 \u0440\u0430\u0439\u043e\u043d\u044b \u0434\u0432\u0443\u0445\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0433\u043e\u0440\u043e\u0434\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044b \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d7e\/426\/7d2\/d7e4267d255f1638735c3b97ee7483fe.png\" width=\"672\" height=\"402\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d7e\/426\/7d2\/d7e4267d255f1638735c3b97ee7483fe.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043b\u043e\u0449\u0430\u0434\u044c \u0446\u0435\u043d\u0442\u0440\u0430 \u0440\u0430\u0432\u043d\u0430 0.25, \u0430 \u0448\u0438\u0440\u0438\u043d\u0430 \u043e\u043a\u0440\u0430\u0438\u043d\u044b \u2014 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 0.146. \u041d\u043e \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0433\u043e\u0440\u043e\u0434 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0433\u0438\u043f\u0435\u0440\u043a\u0443\u0431? \u0422\u043e\u0433\u0434\u0430 \u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043c \u2014 1 \u043a\u043c^N, \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0435\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435:<\/p>\n<pre><code>       N  \u041e\u0431\u044a\u0435\u043c \u0446\u0435\u043d\u0442\u0440\u0430 (\u043a\u043c^N)  \u0428\u0438\u0440\u0438\u043d\u0430 \u043e\u043a\u0440\u0430\u0438\u043d\u044b (\u043c\u0435\u0442\u0440\u043e\u0432)        1      0.5                  250         2      0.25                 146        3      0.125                103        4      0.0625                80        8      0.0039                41       16      1.5e-05               21       32      2.3e-10               11       64      5.4e-20                5<\/code><\/pre>\n<p>\u0412 64-\u043c\u0435\u0440\u043d\u043e\u043c \u0433\u043e\u0440\u043e\u0434\u0435 \u0446\u0435\u043d\u0442\u0440 \u0441\u0442\u0430\u043b \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0435\u0432\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u043c\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u0433\u043e\u0440\u043e\u0434\u0430, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0435\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440. \u0410 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0433\u043e\u0440\u043e\u0436\u0430\u043d \u0436\u0438\u0432\u0435\u0442 \u0432 \u0442\u043e\u043d\u043a\u043e\u0439 5-\u043c\u0435\u0442\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0435 \u043d\u0430 \u043e\u043a\u0440\u0430\u0438\u043d\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4f9\/cb5\/0ab\/4f9cb50ab305a1a122bc2a5a72aaec05.png\" width=\"638\" height=\"479\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4f9\/cb5\/0ab\/4f9cb50ab305a1a122bc2a5a72aaec05.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u043e \u043e\u043a\u0440\u0430\u0438\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u0430. \u0413\u0434\u0435-\u0442\u043e \u0434\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u0432\u0441\u0435\u0433\u043e 500 \u043c\u0435\u0442\u0440\u043e\u0432, \u043d\u043e \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u043f\u043e\u0434\u0430\u043b\u044c\u0448\u0435. \u0414\u0430\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 2<sup>64<\/sup> \u0443\u0433\u043b\u043e\u0432. \u041f\u043e \u043f\u0440\u044f\u043c\u043e\u0439 \u0438\u0437 \u0446\u0435\u043d\u0442\u0440\u0430 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u043b\u0435\u043a\u043e \u2014 4 \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u0430. \u041d\u043e \u0435\u0441\u043b\u0438 \u0437\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 (\u0433\u0438\u043f\u0435\u0440-)\u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0430\u044f \u0438 \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0443\u043b\u0438\u0446\u0430\u043c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u043c \u043e\u0441\u044f\u043c, \u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u043e\u0434\u043e\u043b\u0435\u0442\u044c 32 \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u0430. \u041d\u043e \u043e\u043a\u0440\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0443\u0433\u043b\u043e\u0432 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043c\u0438\u0437\u0435\u0440\u043d\u0443\u044e \u0434\u043e\u043b\u044e. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440 333 \u043c\u0435\u0442\u0440\u0430, \u0442\u043e \u0432 \u0434\u0432\u0443\u0445\u043c\u0435\u0440\u043d\u043e\u043c \u0433\u043e\u0440\u043e\u0434\u0435 \u043e\u043d\u0438 \u0437\u0430\u0439\u043c\u0443\u0442 4\/9 \u043f\u043b\u043e\u0449\u0430\u0434\u0438, \u0430 64-\u043c\u0435\u0440\u043d\u043e\u043c \u0432\u0441\u0435\u0433\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"5.37 \u00d7 10^{\u221212}\" alt=\"5.37 \u00d7 10^{\u221212}\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f12\/a86\/ccd\/f12a86ccdd19da8dfc088898c968d1ea.svg\" width=\"100\" height=\"20\"\/>.<\/p>\n<p>\u042d\u0442\u0438 \u043a\u043e\u043d\u0442\u0440\u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u2014 \u0447\u0430\u0441\u0442\u043d\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 \u043f\u0440\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%BE%D0%BA%D0%BB%D1%8F%D1%82%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%BD%D0%BE%D1%81%D1%82%D0%B8\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u043a\u043b\u044f\u0442\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438<\/a>. \u0414\u043b\u044f \u043d\u0430\u0441 \u043e\u043d\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b \u0442\u0435\u043c, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043d\u0430\u0439\u0442\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u0438, \u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u0435\u043b \u0441\u0435\u0442\u043a\u0438 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u0435\u0434\u0430\u043b\u0435\u043a\u043e \u043e\u0442 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0445 \u0443\u0433\u043b\u043e\u0432 \u0433\u0438\u043f\u0435\u0440\u043a\u0443\u0431\u0430. \u041d\u0430\u0432\u0435\u0440\u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043d\u043e \u0442\u0443\u0442 \u043c\u043e\u0438 \u043f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0438\u044f \u0432\u0441\u0451. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0435\u0440\u0435\u0431\u0438\u0440\u0430\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u044b \u0438 \u043d\u0430\u0434\u0435\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u0443\u0434\u0430\u0447\u0443, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0441\u0442\u0438 \u0441\u0435\u0431\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043a\u0430\u043a \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0434\u043e \u0446\u0435\u043d\u0442\u0440\u0430 \u043a\u0443\u0431\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0435\u0439 (\u0432 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435):<\/p>\n<pre><code class=\"python\">def get_data(n):     data = []     for _ in np.arange(0, 1000000):         x = np.random.uniform(-0.5, 0.5, size=(n))         data.append(np.linalg.norm(x))     return data<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b47\/fed\/6f1\/b47fed6f148f6c27f75e08e778eeca65.png\" width=\"1317\" height=\"759\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b47\/fed\/6f1\/b47fed6f148f6c27f75e08e778eeca65.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0439 DCT. \u0417\u0434\u0435\u0441\u044c \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0427\u0435\u0431\u044b\u0448\u0435\u0432\u0430, \u0434\u043b\u044f \u00ab\u043d\u0430\u043a\u043b\u043e\u043d\u0435\u043d\u043d\u043e\u0433\u043e\u00bb \u0433\u0438\u043f\u0435\u0440\u043a\u0443\u0431\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0435. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1e1\/3ba\/629\/1e13ba62941f2df831eff05d2fd22771.png\" width=\"1071\" height=\"609\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1e1\/3ba\/629\/1e13ba62941f2df831eff05d2fd22771.png\"\/><figcaption><\/figcaption><\/figure>\n<pre><code class=\"python\">def quant(x, step):     return np.round(x \/ step) * step  def dct2d_d_inf(x, step):     y = np.dot(ID_8x8, quant(np.dot(D_8x8, x), step))     return np.max(np.abs(x-y))  step = 0.14328 data = [] for _ in np.arange(0, 1000000):     # \u0412 Jpeg \u0438\u0437 Y, Cb, Cr \u0432\u044b\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f 128     x = np.random.randint(256, size=(64)) - 128     data.append(dct2d_d_inf(x, step))  plt.clf() plt.xlim(0, 0.5) plt.hist(data, 30, log=True) plt.show()<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a63\/a1b\/661\/a63a1b661994c746426ab4de9e44c55a.png\" width=\"659\" height=\"491\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a63\/a1b\/661\/a63a1b661994c746426ab4de9e44c55a.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u044f \u0441\u043c\u043e\u0433 \u043d\u0430\u0439\u0442\u0438 \u2014 0.318618 \u0434\u043b\u044f \u0432\u0435\u043a\u0442\u043e\u0440\u0430 [79192, 0, 0, &#8230;, 0]. \u041d\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0434\u043b\u044f DCT \u0432 Jpeg \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f Y, Cb, Cr \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 128, \u0442\u043e \u0435\u0441\u0442\u044c \u043e\u0442 -128 \u0434\u043e 127. \u0418 \u0434\u043b\u044f \u043d\u0438\u0445 \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044f \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043c\u0435\u043d\u044c\u0448\u0435 0.25.<\/p>\n<h2>\u0412\u044b\u0432\u043e\u0434\u044b<\/h2>\n<p>\u041d\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442 \u00abJPEG \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c\u00bb \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u0436\u0435\u0440\u0442\u0432:<\/p>\n<ul>\n<li>\n<p>\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u0431\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u044e.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f Y, Cb, Cr \u0441 \u0448\u0430\u0433\u043e\u043c 0.36075. \u042d\u0442\u043e \u043f\u043b\u044e\u0441 2 \u0431\u0438\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b DCT \u0441 \u0448\u0430\u0433\u043e\u043c 0.14328. \u041f\u043b\u044e\u0441 \u0435\u0449\u0435 3 \u0431\u0438\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0442\u043e\u0433\u043e \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c 8 \u0431\u0438\u0442\u0430\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0449\u0435 5, \u0438\u0442\u043e\u0433\u043e 13. \u041b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u043e, \u0447\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u043f\u043e\u043c\u0438\u043c\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e 8-\u0431\u0438\u0442\u043d\u043e\u0433\u043e JPEG , \u0442\u0430\u043a\u0436\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0438 12-\u0431\u0438\u0442\u043d\u044b\u0439. \u0420\u0430\u0437 \u0443\u0436 \u043c\u044b \u0437\u0430\u0448\u043b\u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u043a\u043e, \u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u0441\u0430\u043c\u0430 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0446\u0435\u043b\u0438. \u041d\u043e \u043d\u0443\u0436\u043d\u043e \u0433\u0434\u0435-\u0442\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c 1 \u0431\u0438\u0442. \u0421\u043f\u043e\u0441\u043e\u0431\u044b \u0442\u0430\u043a\u0438\u0435:<\/p>\n<ul>\n<li>\n<p>\u0421\u0430\u043c\u044b\u0439 \u0440\u0430\u0437\u0443\u043c\u043d\u044b\u0439 \u2014 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0432 RGB, \u0442\u0430\u043a \u043a\u0430\u043a \u0431\u0435\u0437 \u0441\u0443\u0431\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0442\u0430\u043a\u0438\u043c \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u043d\u043e \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435 \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0442\u044c Y, Cb, Cr, \u0442\u043e\u0433\u0434\u0430 \u0448\u0430\u0433 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442 0.36075 * 0.14328 = 0,05169. \u042d\u0442\u043e <img loading=\"lazy\" decoding=\"async\" class=\"formula inline\" source=\"\\log_2(1\/0,05169)=4.274\" alt=\"\\log_2(1\/0,05169)=4.274\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1f9\/4bd\/eba\/1f94bdebaabe09c38b41bf94e389cf74.svg\" width=\"197\" height=\"21\"\/> \u0431\u0438\u0442\u0430. \u041d\u0443, \u043f\u043e\u0447\u0442\u0438 \u00ab\u0437\u0430\u043f\u0438\u0445\u043d\u0443\u043b\u0438\u00bb.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0434\u0435\u044f\u0442\u044c\u0441\u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0435\u0435 0.5 \u043f\u0440\u0438 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u0438 DCT-\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u0441 \u0448\u0430\u0433\u043e\u043c 0.25.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 12-\u0431\u0438\u0442\u043d\u043e\u0433\u043e JPEG \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0435\u0434\u043a\u043e. \u042f \u043d\u0430\u0448\u0435\u043b \u0442\u043e\u043b\u044c\u043a\u043e libjpeg \u0438 \u043e\u0434\u0438\u043d \u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0435\u0440 (\u0432 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0442\u0430\u0432\u0438\u0442 \u0432\u043e\u0442\u0435\u0440\u043c\u0430\u0440\u043a\u0443 \u2014 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u043f\u043e\u0439\u0434\u0435\u0442).<\/p>\n<p>\u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0432\u0441\u0435 \u044d\u0442\u0438 \u0432\u044b\u0432\u043e\u0434\u044b \u043d\u0435\u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0414\u0430\u0436\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 JPEG \u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0441\u043e\u043a\u0438\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0438\u0447\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u043c\u0443 \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0444\u0430\u0439\u043b\u043e\u0432. \u0410 \u0434\u043b\u044f 12 \u0431\u0438\u0442\u043e\u0432 \u0440\u0430\u0437\u043c\u0435\u0440 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 1.5 \u2014 3 \u0440\u0430\u0437\u0430 \u0438 \u0443\u0436\u0435 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 png. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u044d\u0442\u0438 \u0432\u044b\u0432\u043e\u0434\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u0436\u0430\u0442\u0438\u044f \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 DCT.<\/p>\n<p>\u041d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a, \u043a\u0440\u0430\u0442\u043a\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0442\u0435\u0440\u044c:<\/p>\n<ol>\n<li>\n<p>\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 JPEG.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u2014 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0439\u0442\u0435 \u0432 \u043d\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0439\u0442\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0435 \u2014 \u0432\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0436\u0430\u0442\u0438\u044f, \u043d\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044f \u0438 \u043d\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0435 \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0436\u0430\u0442\u0438\u044f \u2014 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0435 \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 \u2014 \u043d\u0435 \u0443\u0434\u0438\u0432\u043b\u044f\u0439\u0442\u0435\u0441\u044c.<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<p> <!----> <!----><\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/704750\/\"> https:\/\/habr.com\/ru\/post\/704750\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u0444\u0430\u043a\u0442 \u0432\u044b\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0440\u044f\u0434\u0430 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d \u043d\u0435 \u0442\u0430\u043a \u043e\u0447\u0435\u0432\u0438\u0434\u0435\u043d, \u043a\u0430\u043a \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435. \u0415\u0449\u0435 \u043b\u0435\u0442 10-15 \u043d\u0430\u0437\u0430\u0434 \u044f \u0431\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u0442\u0443\u0442 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u043e\u0437\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0430 \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0436\u0435 \u0438 \u043d\u0435 \u0443\u0434\u0438\u0432\u043b\u044f\u044e\u0441\u044c, \u0447\u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0438\u0441\u0442\u0438\u043d\u044b: \u0434\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043b\u0430\u043d\u0435\u0442\u044b \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u0430\u0441\u0441\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0433\u0440\u0430\u0432\u0438\u0442\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u0434\u0430\u0442\u044c \u0438\u043c \u0444\u043e\u0440\u043c\u0443 \u0448\u0430\u0440\u0430. \u0412\u043e\u0442 \u0438 \u0432\u0441\u0435! \u0425\u043e\u0442\u0435\u043b \u0431\u044b \u043d\u0430 \u044d\u0442\u043e\u043c \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u0438 \u043f\u043e\u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u0442\u044c \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435.<\/p>\n<p>\u0425\u043e\u0442\u0435\u043b, \u043d\u043e \u043d\u0435 \u0432\u044b\u0448\u043b\u043e: \u043a\u0430\u043a-\u0442\u043e \u0440\u0430\u0437, \u043d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u044d\u0442\u0438\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043d\u044b\u0445 \u0448\u0430\u0440\u043e\u0432, \u044f \u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043d\u0430 \u043d\u0435\u0433\u043e 2 \u043e\u0442\u0432\u0435\u0442\u0430.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e \u0441\u0443\u0442\u0438 <a class=\"mention\" href=\"\/users\/vitalley\">@Vitalley<\/a> \u0438 <a class=\"mention\" href=\"\/users\/covert\">@Covert<\/a> \u043f\u0440\u0430\u0432\u044b. \u041d\u043e \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e? \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 double? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 JPEG \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d \u043f\u043e\u0440\u0442\u0438\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438 \u043c\u043e\u0436\u043d\u043e \u043b\u0438, \u0445\u043e\u0442\u044f \u0431\u044b \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u043e\u0442\u0435\u0440\u044c. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u0436\u0435 \u043d\u0435 \u0441\u0430\u043c JPEG, \u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0445 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0439 \u0434\u043b\u044f \u0441\u0436\u0430\u0442\u0438\u044f \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u044d\u0442\u0430\u043f\u044b JPEG \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0433\u043b\u0443\u0431\u0438\u043c\u0441\u044f \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f. \u0412\u044b\u044f\u0441\u043d\u0438\u043c \u043a\u043e\u0433\u0434\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u041f\u043e\u043a\u0430\u0436\u0435\u043c, \u0447\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0430, \u0435\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0442\u044c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0438\u0437\u043a\u0438\u0439 \u0448\u0430\u0433 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0439\u0434\u0435\u043c \u0435\u0433\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0417\u0430\u0442\u0435\u043c, \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u0435\u0433\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u0412 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0432\u044b\u0432\u043e\u0434\u044b \u043e \u0442\u043e\u043c, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0446\u0435\u043b\u044c.<\/p>\n<p>\u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u044f \u043e\u0442\u043c\u0435\u0442\u0438\u043b \u0432\u0441\u0435 \u044d\u0442\u0430\u043f\u044b \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0442\u0435\u0440\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0441\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043a\u0440\u043e\u043c\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0425\u0430\u0444\u0444\u043c\u0430\u043d\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0436\u0430\u0442\u0438\u0435 \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c.<\/p>\n<h2>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 RGB \u0432 YCbCr<\/h2>\n<p>\u041f\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0443, \u043a\u043e\u0434\u0435\u0440 \u043d\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432. \u0415\u043c\u0443 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u043e\u0434\u0430\u0435\u0442\u0441\u044f \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0443\u0436\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u044b. \u0414\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u043a\u043e\u0434\u0435\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A6%D0%B2%D0%B5%D1%82%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D1%83%D0%B1%D0%B4%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F\" rel=\"noopener noreferrer nofollow\">\u0441\u0443\u0431\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u044e<\/a>. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0446\u0432\u0435\u0442\u0430 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b (\u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 2&#215;2, 2&#215;2, 4&#215;2 \u0438 \u0442.\u043f.) \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u2014 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u044d\u0442\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e YCbCr \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0443\u0431\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439. \u041f\u043e\u0447\u0435\u043c\u0443? \u0425\u043e\u0440\u043e\u0448\u043e, \u0447\u0442\u043e \u044f \u043d\u0435 \u0432 \u0448\u043a\u043e\u043b\u0435, \u0438 \u043c\u043e\u0433\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 \u0412\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438:<\/p>\n<blockquote>\n<p>\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 Y\u2019CbCr \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u044f\u0440\u043a\u043e\u0441\u0442\u0438 \u0441 \u043f\u043e\u043b\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c, \u0430 \u0434\u043b\u044f \u0446\u0432\u0435\u0442\u043e\u0440\u0430\u0437\u043d\u043e\u0441\u0442\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0441\u0443\u0431\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u044e, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0441 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435\u043c \u0447\u0438\u0441\u043b\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0438\u0439 \u0433\u043b\u0430\u0437 \u043c\u0435\u043d\u0435\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u0435\u043d \u043a \u043f\u0435\u0440\u0435\u043f\u0430\u0434\u0430\u043c \u0446\u0432\u0435\u0442\u0430.<\/p>\n<\/blockquote>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043f\u0440\u0438 \u0441\u0443\u0431\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0431\u0435\u0437\u0432\u043e\u0437\u0432\u0440\u0430\u0442\u043d\u043e, \u0442\u043e \u043d\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0435\u0435.<\/p>\n<p>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0431\u0440\u0430\u0442\u0438\u043c\u043e \u043f\u043e\u043a\u0430 \u043c\u044b \u0445\u0440\u0430\u043d\u0438\u043c \u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430. \u041f\u043e\u0442\u0435\u0440\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0438\u0437-\u0437\u0430 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435 \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0442\u044c, \u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u043e\u0438\u0447\u043d\u044b\u0445 \u0446\u0438\u0444\u0440 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439.<\/p>\n<p>\u041f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 RGB \u0438 YCbCr \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0442\u0430\u043a \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0441\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b (R, G, B, Y, Cb, Cr) \u0432 \u043d\u0435\u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u0446\u0438\u044f\u0445 JPEG \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f 8-\u0431\u0438\u0442\u043d\u044b\u043c\u0438. \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0446\u0432\u0435\u0442\u043e\u0432 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043e\u0431\u043e\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u0445 (2^24). \u041d\u043e \u0435\u0441\u043b\u0438 \u0443 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0439 (Y, Cb, Cr) \u043d\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 (R, G, B)-\u043f\u0430\u0440\u044b, \u0437\u043d\u0430\u0447\u0438\u0442 \u0443 \u043a\u043e\u0433\u043e-\u0442\u043e \u0438\u0445 \u0434\u0432\u0435 \ud83d\ude41 \u0418 \u0434\u0430\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0435. \u041e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 (R, G, B) \u0432 (Y, Cb, Cr):<\/p>\n<p>\u0412 \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435:<\/p>\n<p>\u041c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0434\u0430\u043b\u044c\u0448\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438, \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u0438 \u0442. \u043f.<\/p>\n<h2>DCT<\/h2>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0431\u043b\u043e\u043a 8&#215;8 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430 (\u043e\u0431\u044b\u0447\u043d\u043e \u044d\u0442\u043e Y, Cb, Cr) \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u0430\u0435\u0442\u0441\u044f \u0434\u0432\u0443\u043c\u0435\u0440\u043d\u043e\u043c\u0443 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Discrete_cosine_transform#DCT-II\" rel=\"noopener noreferrer nofollow\">\u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u043d\u043e\u043c\u0443 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044e 2-\u0433\u043e \u0442\u0438\u043f\u0430<\/a>. \u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e DCT \u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b <a href=\"https:\/\/habr.com\/ru\/post\/206264\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043e\u043d\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442.<\/p>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0431\u043b\u043e\u043a \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b:<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 :<\/p>\n<p>\u041f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439  \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0442\u043e\u043b\u0431\u0446\u0430:<\/p>\n<p>\u0422\u0430\u043a\u0430\u044f \u0444\u043e\u0440\u043c\u0443\u043b\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d\u0430 \u0432 \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435: . \u0413\u0434\u0435  \u0438  \u2014 \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0446\u044b, \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u044b  \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u044b \u043f\u043e \u0432\u044b\u0448\u0435\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u0435:<\/p>\n<p>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435  \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u043e\u0432\u043e\u043c\u0443 \u0431\u0430\u0437\u0438\u0441\u0443. \u041a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430  \u0437\u0430\u0434\u0430\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0431\u0430\u0437\u0438\u0441\u043d\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430. \u0412\u043e\u0442 \u043e\u043d\u0438:<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0434\u043d\u0430 \u0438\u0437 \u0444\u0438\u0447\u0435\u0439 \u044d\u0442\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u2014 \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u0441\u0435 \u0431\u0430\u0437\u0438\u0441\u043d\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443 \u0438 \u0438\u0445 \u0434\u043b\u0438\u043d\u044b \u0440\u0430\u0432\u043d\u044b 1. \u0422\u043e \u0435\u0441\u0442\u044c, \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043f\u043b\u044e\u0441, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0437\u0435\u0440\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0435\u0432\u043a\u043b\u0438\u0434\u043e\u0432\u0443 \u043d\u043e\u0440\u043c\u0443 \u0432\u0435\u043a\u0442\u043e\u0440\u043e\u0432 (\u0442\u043e \u0435\u0441\u0442\u044c \u0438\u0445 \u0434\u043b\u0438\u043d\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043f\u043e \u0442\u0435\u043e\u0440\u0435\u043c\u0435 \u041f\u0438\u0444\u0430\u0433\u043e\u0440\u0430).<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440-\u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0432  \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0432\u0441\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b, \u0438 \u0442\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043c: .<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0436\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 , \u043d\u043e \u0443\u0436\u0435 \u0434\u043b\u044f \u0441\u0442\u0440\u043e\u043a. \u041d\u0430\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0434\u043b\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u0443\u0435\u043c , \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c, \u0430 \u0437\u0430\u0442\u0435\u043c \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u0435\u0449\u0435 \u0440\u0430\u0437: .<\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u043d\u0435\u043c \u0442\u0430\u043a\u043e\u0439 \u0442\u0440\u044e\u043a. \u041f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0443\u044e\u0441\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0443  \u0432\u0435\u043a\u0442\u043e\u0440\u0438\u0437\u0443\u0435\u043c, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u0438\u0448\u0435\u043c \u0432\u0441\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0432 \u043e\u0434\u0438\u043d. \u0418 \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u0444\u043e\u0440\u043c\u0443\u043b\u0443 , \u0433\u0434\u0435  \u2014 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Kronecker_product\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u041a\u0440\u043e\u043d\u0435\u043a\u0435\u0440\u0430<\/a>:<\/p>\n<p>\u041c\u0430\u0442\u0440\u0438\u0446\u0430  \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 64 \u043d\u0430 64. \u041a\u0430\u0436\u0434\u0430\u044f \u0435\u0435 \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 64 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u043f\u043e\u043f\u0430\u0440\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u0432\u0443\u0445 \u00ab\u0432\u043e\u043b\u043d\u00bb \u0438\u0437 \u043f\u0440\u0435\u0434\u0443\u0449\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438. \u0418 \u0435\u0441\u043b\u0438 \u0438\u0445 \u0432\u044b\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b 8&#215;8, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0434\u0432\u0443\u0445\u043c\u0435\u0440\u043d\u0430\u044f \u0432\u043e\u043b\u043d\u0430. \u0420\u0430\u0437\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u0430\u0434\u0443\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u043e x \u0438 y. \u0412\u043e\u0442 \u043e\u043d\u0438 \u0432\u0441\u0435 \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438 \u0431\u043b\u043e\u043a\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0432\u043e\u043b\u043d.<\/p>\n<p>\u041e\u0434\u043d\u043e \u0438\u0437 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u041a\u0440\u043e\u043d\u0435\u043a\u0435\u0440\u0430 \u2014 \u0435\u0441\u043b\u0438  \u0438  \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u0442\u043e  \u0442\u043e\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439. \u0424\u043e\u0440\u043c\u0443\u043b\u0443 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0443\u043c\u043d\u043e\u0436\u0438\u0432 \u043e\u0431\u0435 \u0447\u0430\u0441\u0442\u0438 \u043d\u0430 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443: . \u0422\u0430\u043a \u043a\u0430\u043a \u0434\u043b\u044f \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0442\u0440\u0438\u0446 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e, \u0447\u0442\u043e , \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c:  .<\/p>\n<h2>\u041f\u043e\u0447\u0435\u043c\u0443 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043f\u043e\u0442\u0435\u0440\u0438?<\/h2>\n<p>\u041c\u0435\u043d\u044f \u0434\u0430\u0432\u043d\u043e \u043f\u0440\u0435\u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0434\u0435\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0433\u0438\u0431\u043a\u043e\u0433\u043e JPEG-\u043a\u043e\u0434\u0435\u043a\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0425\u0430\u0444\u0444\u043c\u0430\u043d\u0430 \u0438 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u044d\u0442\u043e \u043e\u0444\u0438\u0433\u0435\u043d\u043d\u043e, \u0432\u043e\u0442 \u043f\u043e\u0447\u0435\u043c\u0443. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u0434\u0435\u043a \u0441\u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u0434\u0435\u043a\u0438 (\u0438 \u0444\u043e\u0442\u043e\u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043e\u0432 \u0442\u043e\u0436\u0435), \u043d\u043e \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0435\u043c\u0430. \u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b\u0439\u0442\u0438 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430, \u044d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0431\u043b\u043e\u043a\u043e\u0432 8 \u043d\u0430 8. \u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u0436\u0435 2 \u043d\u0430 1. \u042d\u0442\u043e \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f, \u043d\u043e \u0437\u0430\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0430\u043a\u043e\u0439 \u0431\u043b\u043e\u043a \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 (\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430) \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u043e\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438 \u0438 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>DCT \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u0438\u043c\u0435\u0435\u0442 \u0446\u0432\u0435\u0442 3, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 2. \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043c (3.536, 0.707). \u041d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u0448\u0430\u0433 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u0432 JPEG \u0440\u0430\u0432\u0435\u043d 1, \u0442\u043e \u0435\u0441\u0442\u044c \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435: (4, 1). \u041f\u043e\u0441\u043b\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f: (3.536, 2.121), \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b\u044c \u2014 4, \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 2.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043b\u0438 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0447\u0435\u043c 1, \u0442\u043e \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043c\u043e\u0433\u043b\u043e \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435. \u041e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u044f <a href=\"https:\/\/habr.com\/ru\/post\/473544\/\" rel=\"noopener noreferrer nofollow\">\u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b<\/a>, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0448\u0430\u0433\u0430\u0445 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u043e \u0442\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0446\u0435\u043b\u044b\u043c\u0438, \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u044b, \u0430 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u0431\u0443\u0434\u0435\u043c \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c.<\/p>\n<p>\u0413\u043b\u044f\u0434\u044f \u043d\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u0442\u043a\u0443 \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u0432\u044b\u0448\u0435, \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0433\u0440\u0443\u0431\u0443\u044e \u043f\u0440\u0438\u043a\u0438\u0434\u043a\u0443. \u041a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0442\u0434\u0430\u043b\u044f\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 0.5 \u043e\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439. \u041d\u043e \u0435\u0441\u043b\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u0441\u0435\u0442\u043a\u0438 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 , \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043e\u0442\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0430 (0.707). \u0417\u043d\u0430\u0447\u0438\u0442, \u0435\u0441\u043b\u0438 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u0442\u044c \u0441 \u0431\u043e\u043b\u0435\u0435 \u043c\u0435\u043b\u043a\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u044e\u0449\u0438\u043c 0.5\/0.707 = 0.707, \u0442\u043e \u043f\u043e\u0442\u0435\u0440\u044c \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c. \u041d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0448\u0430\u0433 0.65 (\u043f\u0440\u0438 0.707 \u0443\u0437\u043b\u044b \u0441\u0435\u0442\u043e\u043a \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e) \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0423\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0435\u043a\u0430:<\/p>\n<pre><code class=\"python\">step = 0.65 C = sqrt(2) \/ 2  def write(x0, x1):     y0 = C * (x0 + x1)     y1 = C * (x0 - x1)     save_to_file(round(y0 \/ step))     save_to_file(round(y1 \/ step))      def read():     y0 = load_from_file() * step     y1 = load_from_file() * step         x0 = round(C * (y0 + y1))     x1 = round(C * (y0 - y1))     return x0, x1      x = (3, 2)     write(*x) xx = read() assert xx == x<\/code><\/pre>\n<p>\u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0448\u0430\u0433\u0430 \u043d\u0435 \u0434\u0430\u0435\u0442\u0441\u044f \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e. \u0427\u0435\u043c \u043e\u043d \u043c\u0435\u043d\u044c\u0448\u0435, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c. \u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044e \u043d\u0430 \u043e\u0434\u0438\u043d \u0431\u0438\u0442.<\/p>\n<p>\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u043c JPEG \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f 64-\u043c\u0435\u0440\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u0438 64-\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0433\u0438\u043f\u0435\u0440\u043a\u0443\u0431\u0430 \u0440\u0430\u0432\u043d\u0430 . \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0448\u0430\u0433 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f 0.125, \u0442\u043e \u0435\u0441\u0442\u044c \u0445\u0440\u0430\u043d\u0438\u0442\u044c 3 \u0431\u0438\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u0438\u043a\u0438\u0434\u043a\u0430.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u0435\u0440\u043d\u0430\u044f \u043e\u0446\u0435\u043d\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e 64-\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u043e\u0440\u0442\u043e\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u043e \u0434\u043b\u044f DCT \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0433 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435.<\/p>\n<h2>\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0433 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0443\u0441\u0442\u044c  \u2014 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0441 \u0446\u0435\u043b\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438,  \u2014 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f (RGB \u0432 YCbCr \u0438\u043b\u0438 DCT),  \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f,  \u2014 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f. \u041f\u043e\u0441\u043b\u0435 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0435\u043a\u0442\u043e\u0440 . \u0414\u043b\u044f DCT \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435. \u041f\u0440\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439  \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435: .<\/p>\n<p>\u041d\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u044b\u043c \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e  \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u0430 X. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u00ab\u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435\u00bb \u0432 \u044d\u0442\u043e\u043c \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u044f. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u0442\u044c (\u0442\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0442\u044c ) \u0438 \u0442\u043e\u0433\u0434\u0430, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f , \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0445\u043b\u043e\u043f\u043d\u0435\u0442\u0441\u044f \u0434\u043e , \u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f X \u0438 \u0442\u0430\u043a \u0446\u0435\u043b\u044b\u0435. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u044d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043d\u043e \u043e\u043d\u043e, \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442.<\/p>\n<p>\u0427\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437 \u0437\u0430\u043f\u0438\u0441\u0438 ? \u0422\u043e, \u0447\u0442\u043e \u043d\u0438 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u0430  \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430  \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 0.5. \u0418\u043b\u0438 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e: \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u0430\u044f \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432  \u0438  \u043d\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 0.5:<\/p>\n<p>\u0425\u043c\u043c, \u0434\u0430 \u044d\u0442\u043e \u0436\u0435 <s>\u043a\u0438\u0441\u0443\u043b\u044c\u043a\u0435\u043d<\/s> \u043d\u043e\u0440\u043c\u0430 (\u043d\u0443 \u0438\u043b\u0438 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435) \u0427\u0435\u0431\u044b\u0448\u0435\u0432\u0430.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<details class=\"spoiler\">\n<summary>\u041a\u0441\u0442\u0430\u0442\u0438, \u0432 \u0447\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043d\u043e\u0440\u043c\u043e\u0439 \u0438 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c?<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0420\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u2014 \u0431\u043e\u043b\u0435\u0435 \u0448\u0438\u0440\u043e\u043a\u043e\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u0435. \u0415\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0437\u0430\u0434\u0430\u043d\u0430 \u043d\u043e\u0440\u043c\u0430, \u0442\u043e \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435: , \u043d\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u0435\u0440\u043d\u043e. \u0422\u0430\u043a, \u0435\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0435 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u043c)  \u0438  \u0434\u043b\u044f , \u0442\u043e \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u043d\u043e\u0440\u043c \u043d\u0430\u0440\u0443\u0448\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u043e\u0441\u0442\u0438 . \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0434\u043b\u044f  \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c: . \u041d\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0438 \u043d\u043e\u0440\u043c\u0430.<\/p>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0438\u0437  \u0441\u043b\u0435\u0434\u0443\u0435\u0442 . \u0423\u043c\u043d\u043e\u0436\u0438\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434 \u043d\u043e\u0440\u043c\u043e\u0439 \u043d\u0430  (\u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0442\u0430\u043a \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u0440\u0430\u0432\u043d\u043e\u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u044e \u043d\u0430 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u0443\u044e \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0442\u043e \u0435\u0441\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f):<\/p>\n<p>\u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c . \u0412\u0435\u043a\u0442\u043e\u0440  \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0431\u0430\u0437\u0438\u0441\u0435. \u0418\u0442\u0430\u043a, \u043d\u0430\u0448\u0435 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0438\u0434:<\/p>\n<p>\u042d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e . \u0410 \u043a\u0430\u043a\u0438\u043c \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c? \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0440\u0430\u0437\u043d\u043e\u0441\u0442\u044c<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-342473","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/342473","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=342473"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/342473\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=342473"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=342473"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=342473"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}