{"id":2102,"date":"2026-03-05T22:37:04","date_gmt":"2026-03-05T14:37:04","guid":{"rendered":"https:\/\/xujiwei.com\/blog\/?p=2102"},"modified":"2026-03-05T22:37:04","modified_gmt":"2026-03-05T14:37:04","slug":"esp32-jpeg-decoder-errata","status":"publish","type":"post","link":"https:\/\/xujiwei.com\/blog\/2026\/03\/esp32-jpeg-decoder-errata\/","title":{"rendered":"\u52d8\u8bef\uff1aESP_NEW_JPEG \u66f4\u65b0\u5230\u6700\u65b0\u7248\u540e\uff0c\u6240\u6709\u5206\u8fa8\u7387\u90fd\u662f\u6700\u5feb\u7684"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_65 ez-toc-wrap-right counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<p class=\"ez-toc-title\">\u6587\u7ae0\u76ee\u5f55<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69df34a3c55e5\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69df34a3c55e5\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/xujiwei.com\/blog\/2026\/03\/esp32-jpeg-decoder-errata\/#%E5%89%8D%E8%A8%80\" title=\"\u524d\u8a00\">\u524d\u8a00<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/xujiwei.com\/blog\/2026\/03\/esp32-jpeg-decoder-errata\/#%E9%97%AE%E9%A2%98%E5%87%BA%E5%9C%A8%E5%93%AA%E9%87%8C\" title=\"\u95ee\u9898\u51fa\u5728\u54ea\u91cc\">\u95ee\u9898\u51fa\u5728\u54ea\u91cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/xujiwei.com\/blog\/2026\/03\/esp32-jpeg-decoder-errata\/#%E6%9B%B4%E6%96%B0%E5%BA%93%EF%BC%8C%E9%87%8D%E6%96%B0%E6%B5%8B%E8%AF%95\" title=\"\u66f4\u65b0\u5e93\uff0c\u91cd\u65b0\u6d4b\u8bd5\">\u66f4\u65b0\u5e93\uff0c\u91cd\u65b0\u6d4b\u8bd5<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/xujiwei.com\/blog\/2026\/03\/esp32-jpeg-decoder-errata\/#160%C3%9780_%E8%A7%A3%E7%A0%81%E9%80%9F%E5%BA%A6\" title=\"160&#215;80 \u89e3\u7801\u901f\u5ea6\">160&#215;80 \u89e3\u7801\u901f\u5ea6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/xujiwei.com\/blog\/2026\/03\/esp32-jpeg-decoder-errata\/#240%C3%97240_%E8%A7%A3%E7%A0%81%E9%80%9F%E5%BA%A6\" title=\"240&#215;240 \u89e3\u7801\u901f\u5ea6\">240&#215;240 \u89e3\u7801\u901f\u5ea6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/xujiwei.com\/blog\/2026\/03\/esp32-jpeg-decoder-errata\/#320%C3%97240_%E8%A7%A3%E7%A0%81%E9%80%9F%E5%BA%A6\" title=\"320&#215;240 \u89e3\u7801\u901f\u5ea6\">320&#215;240 \u89e3\u7801\u901f\u5ea6<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/xujiwei.com\/blog\/2026\/03\/esp32-jpeg-decoder-errata\/#%E5%8B%98%E8%AF%AF%E7%BB%93%E8%AE%BA\" title=\"\u52d8\u8bef\u7ed3\u8bba\">\u52d8\u8bef\u7ed3\u8bba<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/xujiwei.com\/blog\/2026\/03\/esp32-jpeg-decoder-errata\/#%E5%90%8E%E8%AE%B0\" title=\"\u540e\u8bb0\">\u540e\u8bb0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/xujiwei.com\/blog\/2026\/03\/esp32-jpeg-decoder-errata\/#%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99\" title=\"\u53c2\u8003\u8d44\u6599\">\u53c2\u8003\u8d44\u6599<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%E5%89%8D%E8%A8%80\"><\/span>\u524d\u8a00<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u4e0a\u7bc7\u6587\u7ae0\uff08\u89c1 <a href=\"https:\/\/xujiwei.com\/blog\/2026\/03\/esp32-jpeg-decoder-test\/\">ESP32-S3 + Arduino \u5404\u79cd JPEG \u89e3\u7801\u5e93\u901f\u5ea6\u5bf9\u6bd4\uff0c\u5230\u5e95\u54ea\u4e2a\u624d\u662f\u6700\u5feb\u7684\uff1f<\/a>\uff09\u6d4b\u8bd5\u4e86\u4e09\u4e2a JPEG \u89e3\u7801\u5e93\u7684\u6027\u80fd\uff0c\u6700\u7ec8\u7ed3\u8bba\u662f ESP_NEW_JPEG \u5728\u4f4e\u5206\u8fa8\u7387\u9065\u9065\u9886\u5148\uff0c\u4f46\u5230\u4e86 240x240 \u548c 320x240\uff0c\u88ab JPEGDEC \u8ffd\u5e73\u3002<\/p>\n<p>\u7ed3\u679c\u6700\u8fd1\u60f3\u6d4b\u8bd5 ESP_NEW_JPEG \u7684 <strong>block \u89e3\u7801<\/strong>\u65b9\u5f0f\uff0c\u53d1\u73b0\u600e\u4e48\u627e\u90fd\u627e\u4e0d\u5230\u5bf9\u5e94\u7684 API\uff0c\u8fd9\u624d\u610f\u8bc6\u5230\u2014\u2014\u6211\u7528\u7684\u5e93\u7248\u672c\u6839\u672c\u4e0d\u5bf9 \ud83d\ude05\u3002<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E9%97%AE%E9%A2%98%E5%87%BA%E5%9C%A8%E5%93%AA%E9%87%8C\"><\/span>\u95ee\u9898\u51fa\u5728\u54ea\u91cc<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img src=\"https:\/\/xujiwei.com\/blog\/wp-content\/uploads\/2026\/03\/esp32-jpeg-decoder-errata-2.jpg\" alt=\"esp32-jpeg-decoder-errata-2\" \/><\/p>\n<p>\u4e0a\u7bc7\u6587\u7ae0\u7528\u7684\u662f Arduino \u751f\u6001\u91cc\u7684\u5c01\u88c5\u5e93 <a href=\"https:\/\/github.com\/esp-arduino-libs\/ESP32_JPEG\">ESP32_JPEG<\/a>\uff0c\u8fd9\u4e2a\u5e93\u6700\u540e\u4e00\u6b21\u66f4\u65b0\u662f<strong>\u4e09\u5e74\u524d<\/strong>\uff0c\u662f\u5bf9 ESP_JPEG \u65e9\u671f\u7248\u672c\u7684\u5c01\u88c5\uff0c\u65e9\u5c31\u505c\u6b62\u7ef4\u62a4\u4e86\u3002<\/p>\n<p>\u4e50\u946b\u5b98\u65b9\u771f\u6b63\u5728\u7ef4\u62a4\u7684\u6700\u65b0\u7248\u672c\u662f\u53e6\u4e00\u4e2a\u4ed3\u5e93\uff1a<a href=\"https:\/\/github.com\/espressif\/esp-adf-libs\/tree\/master\/esp_new_jpeg\">esp-adf-libs\/esp_new_jpeg<\/a>\uff0c\u4e94\u4e2a\u6708\u524d\u8fd8\u5728\u66f4\u65b0\uff0cblock \u89e3\u7801\u3001\u6700\u65b0\u7684 SIMD \u4f18\u5316\u90fd\u5728\u8fd9\u91cc\u3002<\/p>\n<p>\u4e24\u4e2a\u5e93\u540c\u540d\uff0c\u4f46\u7248\u672c\u5dee\u8ddd\u5df2\u7ecf\u662f\u4e09\u5e74\u4e86\uff0c\u4e4b\u524d\u5b8c\u5168\u8e29\u5751\u4e86 \ud83d\ude02\u3002<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E6%9B%B4%E6%96%B0%E5%BA%93%EF%BC%8C%E9%87%8D%E6%96%B0%E6%B5%8B%E8%AF%95\"><\/span>\u66f4\u65b0\u5e93\uff0c\u91cd\u65b0\u6d4b\u8bd5<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u6362\u6210\u6700\u65b0\u7248 ESP_NEW_JPEG\uff0c\u6d4b\u8bd5\u73af\u5883\u4e0e\u4e0a\u6b21\u5b8c\u5168\u4e00\u81f4\uff1a<\/p>\n<ul>\n<li>ESP32-S3-Zero\uff0c240MHz \u53cc\u6838<\/li>\n<li>\u6d4b\u8bd5\u56fe\u7247\uff1aLenna\uff0c160x80 \/ 240x240 \/ 320x240\uff0c\u8d28\u91cf 80<\/li>\n<li>\u6bcf\u4e2a\u5c3a\u5bf8\u89e3\u7801 10 \u6b21\u53d6\u5e73\u5747<\/li>\n<\/ul>\n<h3>160x80 \u89e3\u7801\u901f\u5ea6<\/h3>\n<table>\n<thead>\n<tr>\n<th>Library<\/th>\n<th style=\"text-align: right;\">Decode(ms)<\/th>\n<th style=\"text-align: right;\">Draw(ms)<\/th>\n<th style=\"text-align: right;\">Total(ms)<\/th>\n<th style=\"text-align: right;\">FPS<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Tjpg_Decoder<\/td>\n<td style=\"text-align: right;\">10.74<\/td>\n<td style=\"text-align: right;\">11.48<\/td>\n<td style=\"text-align: right;\">22.23<\/td>\n<td style=\"text-align: right;\">45.0<\/td>\n<\/tr>\n<tr>\n<td>JPEGDEC<\/td>\n<td style=\"text-align: right;\">7.42<\/td>\n<td style=\"text-align: right;\">6.91<\/td>\n<td style=\"text-align: right;\">14.33<\/td>\n<td style=\"text-align: right;\">69.8<\/td>\n<\/tr>\n<tr>\n<td><strong>ESP32_JPEG<\/strong><\/td>\n<td style=\"text-align: right;\"><strong>3.75<\/strong><\/td>\n<td style=\"text-align: right;\">6.17<\/td>\n<td style=\"text-align: right;\"><strong>9.93<\/strong><\/td>\n<td style=\"text-align: right;\"><strong>100.8<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>240x240 \u89e3\u7801\u901f\u5ea6<\/h3>\n<table>\n<thead>\n<tr>\n<th>Library<\/th>\n<th style=\"text-align: right;\">Decode(ms)<\/th>\n<th style=\"text-align: right;\">Draw(ms)<\/th>\n<th style=\"text-align: right;\">Total(ms)<\/th>\n<th style=\"text-align: right;\">FPS<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Tjpg_Decoder<\/td>\n<td style=\"text-align: right;\">43.85<\/td>\n<td style=\"text-align: right;\">51.13<\/td>\n<td style=\"text-align: right;\">94.98<\/td>\n<td style=\"text-align: right;\">10.5<\/td>\n<\/tr>\n<tr>\n<td>JPEGDEC<\/td>\n<td style=\"text-align: right;\">28.91<\/td>\n<td style=\"text-align: right;\">28.10<\/td>\n<td style=\"text-align: right;\">57.01<\/td>\n<td style=\"text-align: right;\">17.5<\/td>\n<\/tr>\n<tr>\n<td><strong>ESP32_JPEG<\/strong><\/td>\n<td style=\"text-align: right;\"><strong>17.44<\/strong><\/td>\n<td style=\"text-align: right;\">30.48<\/td>\n<td style=\"text-align: right;\"><strong>47.92<\/strong><\/td>\n<td style=\"text-align: right;\"><strong>20.9<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>320x240 \u89e3\u7801\u901f\u5ea6<\/h3>\n<table>\n<thead>\n<tr>\n<th>Library<\/th>\n<th style=\"text-align: right;\">Decode(ms)<\/th>\n<th style=\"text-align: right;\">Draw(ms)<\/th>\n<th style=\"text-align: right;\">Total(ms)<\/th>\n<th style=\"text-align: right;\">FPS<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Tjpg_Decoder<\/td>\n<td style=\"text-align: right;\">57.63<\/td>\n<td style=\"text-align: right;\">68.10<\/td>\n<td style=\"text-align: right;\">125.73<\/td>\n<td style=\"text-align: right;\">8.0<\/td>\n<\/tr>\n<tr>\n<td>JPEGDEC<\/td>\n<td style=\"text-align: right;\">38.12<\/td>\n<td style=\"text-align: right;\">38.21<\/td>\n<td style=\"text-align: right;\">76.33<\/td>\n<td style=\"text-align: right;\">13.1<\/td>\n<\/tr>\n<tr>\n<td><strong>ESP32_JPEG<\/strong><\/td>\n<td style=\"text-align: right;\"><strong>23.99<\/strong><\/td>\n<td style=\"text-align: right;\">39.60<\/td>\n<td style=\"text-align: right;\"><strong>63.59<\/strong><\/td>\n<td style=\"text-align: right;\"><strong>15.7<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"%E5%8B%98%E8%AF%AF%E7%BB%93%E8%AE%BA\"><\/span>\u52d8\u8bef\u7ed3\u8bba<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u65e7\u7248\u6d4b\u8bd5\u4e2d\uff0c240x240 \u548c 320x240 \u5206\u8fa8\u7387\u4e0b JPEGDEC \u51e0\u4e4e\u8ffd\u5e73 ESP_NEW_JPEG\uff0c\u8fd9\u4e2a\u7ed3\u8bba\u662f\u9519\u7684\u3002<\/p>\n<p>\u66f4\u65b0\u5230\u6700\u65b0\u7248\u540e\uff0c<strong>ESP_NEW_JPEG \u5728\u6240\u6709\u5206\u8fa8\u7387\u4e0b\u90fd\u662f\u4e09\u4e2a\u5e93\u91cc\u6700\u5feb\u7684<\/strong>\uff0c\u5dee\u8ddd\u76f8\u5f53\u660e\u663e\uff1a<\/p>\n<ul>\n<li><strong>160x80<\/strong>\uff1aESP_NEW_JPEG 9.93ms \/ 100.8 FPS\uff0cJPEGDEC 14.33ms\uff0c\u9886\u5148 <strong>30%<\/strong><\/li>\n<li><strong>240x240<\/strong>\uff1aESP_NEW_JPEG 47.92ms \/ 20.9 FPS\uff0cJPEGDEC 57.01ms\uff0c\u9886\u5148 <strong>16%<\/strong><\/li>\n<li><strong>320x240<\/strong>\uff1aESP_NEW_JPEG 63.59ms \/ 15.7 FPS\uff0cJPEGDEC 76.33ms\uff0c\u9886\u5148 <strong>17%<\/strong><\/li>\n<\/ul>\n<p><strong>\u66f4\u65b0\u540e\u7684\u9009\u5e93\u5efa\u8bae\uff1a<\/strong><\/p>\n<p><img src=\"https:\/\/xujiwei.com\/blog\/wp-content\/uploads\/2026\/03\/esp32-jpeg-decoder-errata-3.jpg\" alt=\"esp32-jpeg-decoder-errata-3\" \/><\/p>\n<ul>\n<li><strong>\u8ffd\u6c42\u6700\u5feb\u89e3\u7801\u901f\u5ea6<\/strong> \u2192 \u7528 ESP_NEW_JPEG\uff08\u6700\u65b0\u7248\uff09\uff0c\u786c\u4ef6\u52a0\u901f + SIMD\uff0c\u5168\u5206\u8fa8\u7387\u6700\u5f3a<\/li>\n<li><strong>\u9700\u8981\u7b80\u5355\u597d\u7528\u3001\u517c\u5bb9 TFT_eSPI<\/strong> \u2192 \u7528 JPEGDEC\uff0cSIMD \u52a0\u901f\u540e\u6027\u80fd\u4e5f\u4e0d\u5dee<\/li>\n<li><strong>\u9700\u8981 Progressive JPEG \u652f\u6301<\/strong> \u2192 \u53ea\u80fd\u7528 JPEGDEC \u6216 Tjpg_Decoder\uff0cESP_NEW_JPEG \u4e0d\u652f\u6301<\/li>\n<\/ul>\n<p>\u4e0a\u7bc7\u6587\u7ae0\u4e5f\u5df2\u7ecf\u540c\u6b65\u66f4\u65b0\u4e86\u6d4b\u8bd5\u6570\u636e\u548c\u7ed3\u8bba\u3002<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E5%90%8E%E8%AE%B0\"><\/span>\u540e\u8bb0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u5982\u679c\u4e0d\u662f\u60f3\u6d4b block \u89e3\u7801\uff0c\u53ef\u80fd\u5c31\u8fd9\u4e48\u4e00\u76f4\u7528\u7740\u4e09\u5e74\u524d\u7684\u65e7\u7248\u672c\u4e86\u2026\u2026\u4ee5\u540e\u7528 Arduino \u5c01\u88c5\u5e93\u4e4b\u524d\uff0c\u8fd8\u662f\u8981\u786e\u8ba4\u4e00\u4e0b\u6e90\u5934\u4ed3\u5e93\u662f\u4e0d\u662f\u771f\u6b63\u5728\u7ef4\u62a4\u7684\u90a3\u4e2a \ud83d\ude14\u3002<\/p>\n<p>block \u89e3\u7801\u7684\u6d4b\u8bd5\u7ed3\u679c\u540e\u9762\u518d\u5355\u72ec\u5199\u4e00\u7bc7\u3002<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99\"><\/span>\u53c2\u8003\u8d44\u6599<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/esp-arduino-libs\/ESP32_JPEG\">https:\/\/github.com\/esp-arduino-libs\/ESP32_JPEG<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/espressif\/esp-adf-libs\/tree\/master\/esp_new_jpeg\">https:\/\/github.com\/espressif\/esp-adf-libs\/tree\/master\/esp_new_jpeg<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u8a00 \u4e0a\u7bc7\u6587\u7ae0\uff08\u89c1 ESP32-S3 + Arduino \u5404\u79cd JPEG \u89e3\u7801\u5e93 &hellip;<\/p>\n<p class=\"read-more\"><a href=\"https:\/\/xujiwei.com\/blog\/2026\/03\/esp32-jpeg-decoder-errata\/\">\u7ee7\u7eed\u9605\u8bfb &raquo;<\/a><\/p>\n","protected":false},"author":2,"featured_media":2099,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[402],"tags":[262,328,500,386],"_links":{"self":[{"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/posts\/2102"}],"collection":[{"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/comments?post=2102"}],"version-history":[{"count":0,"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/posts\/2102\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/media\/2099"}],"wp:attachment":[{"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/media?parent=2102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/categories?post=2102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xujiwei.com\/blog\/wp-json\/wp\/v2\/tags?post=2102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}