<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Images on File Format Blog</title>
    <link>https://blog.fileformat.com/vi/categories/images/</link>
    <description>Recent content in Images on File Format Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>vi</language>
    <lastBuildDate>Fri, 10 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/vi/categories/images/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Cách Tăng Tốc Độ Trang Web với AVIF và WebP: Hướng Dẫn Toàn Diện</title>
      <link>https://blog.fileformat.com/vi/images/next-gen-web-graphics-avif-webp/</link>
      <pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/vi/images/next-gen-web-graphics-avif-webp/</guid>
      <description>Tìm hiểu cách thay thế JPEG/PNG bằng AVIF và WebP có thể giảm kích thước hình ảnh tới 80%. Cải thiện LCP, tăng thứ hạng SEO và triển khai các fallback dễ dàng ngay hôm nay.</description>
      <content:encoded><![CDATA[<p><strong>TL;DR</strong> – Thay thế JPEG/PNG bằng AVIF (hoặc WebP khi AVIF không được hỗ trợ) có thể giảm <strong>30‑80 %</strong> kích thước hình ảnh, giảm LCP tới <strong>0.5 s</strong>, và tăng SEO mà không ảnh hưởng về hình ảnh. Một fallback <code>&lt;picture&gt;</code> đơn giản hoặc quy tắc header <code>Accept</code> sẽ giúp bạn đạt được trong vài phút, và hầu hết các CDN có thể tự động thực hiện.</p>
<hr>
<h2 id="tại-sao-các-định-dạng-hình-ảnh-thế-hệ-mới-lại-quan-trọng-ngay-bây-giờ">Tại sao các định dạng hình ảnh “thế hệ mới” lại quan trọng ngay bây giờ</h2>
<p>Mỗi mili giây đều quan trọng trên web. Các nghiên cứu từ Akamai và Google cho thấy <strong>100 ms được tiết kiệm tương đương với mức tăng doanh thu 1‑2 %</strong> cho các trang thương mại điện tử. Hình ảnh là nguyên nhân gây tốn băng thông lớn nhất trên một trang điển hình – <strong>&gt; 60 % tổng byte</strong> (HTTP Archive, 2024).</p>
<p>Giới thiệu AVIF và WebP. Cả hai đều hứa hẹn <strong>giảm 30‑80 % kích thước tệp</strong> so với JPEG/PNG truyền thống trong khi vẫn giữ chất lượng hình ảnh không thể phân biệt bằng mắt người. Lợi ích ngay lập tức:</p>
<ul>
<li><strong>Băng thông thấp hơn</strong> → gói dữ liệu rẻ hơn cho người dùng di động.</li>
<li><strong>Tải trang nhanh hơn</strong> → Core Web Vitals tốt hơn, xếp hạng Google cao hơn.</li>
<li><strong>Giảm tải máy chủ</strong> → dung lượng cache nhỏ hơn, chi phí CDN rẻ hơn.</li>
</ul>
<p>Nếu bạn đã tối ưu CSS/JS, nén hình ảnh là việc dễ dàng nhất mang lại ROI lớn nhất.</p>
<hr>
<h2 id="avif-vs-webp--so-sánh-nhanh">AVIF vs. WebP – so sánh nhanh</h2>
<table>
<thead>
<tr>
<th>Tính năng</th>
<th><strong>AVIF</strong></th>
<th><strong>WebP</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Nguồn gốc</strong></td>
<td>Dựa trên AV1 (ISO/IEC 23000‑22, 2020)</td>
<td>Định dạng dựa trên VP8 của Google (2010)</td>
</tr>
<tr>
<td><strong>Nén</strong></td>
<td>Mất dữ liệu &amp; không mất dữ liệu (cả dựa trên AV1), alpha, HDR (10‑bit)</td>
<td>Mất dữ liệu (VP8), không mất dữ liệu, alpha, hoạt hình</td>
</tr>
<tr>
<td><strong>Độ sâu bit</strong></td>
<td>8‑bit &amp; 10‑bit (HDR)</td>
<td>Chỉ 8‑bit</td>
</tr>
<tr>
<td><strong>Giảm kích thước so với JPEG (trung bình)</strong></td>
<td>Nhỏ hơn 45‑65 % (mất dữ liệu)</td>
<td>Nhỏ hơn 25‑35 % (mất dữ liệu)</td>
</tr>
<tr>
<td><strong>Giảm kích thước so với PNG (trung bình)</strong></td>
<td>Nhỏ hơn 50‑70 % (không mất dữ liệu)</td>
<td>Nhỏ hơn 30‑45 % (không mất dữ liệu)</td>
</tr>
<tr>
<td><strong>Giải mã phần cứng</strong></td>
<td>Hỗ trợ GPU ngày càng tăng (Intel Xe, AMD, ARM Mali)</td>
<td>Bản địa trên hầu hết CPU/GPU; tăng tốc phần cứng trên Android, Chrome, Safari iOS 16+</td>
</tr>
<tr>
<td><strong>Hoạt hình</strong></td>
<td>AVIF‑A (thử nghiệm)</td>
<td>WebP‑A (ổn định, được sử dụng rộng rãi)</td>
</tr>
<tr>
<td><strong>Phạm vi hỗ trợ trình duyệt (Tháng 4 2026)</strong></td>
<td>Chrome 85+, Edge 85+, Firefox 93+, Safari 16.4+, Android WebView 85+</td>
<td>Chrome 23+, Edge 18+, Firefox 65+, Safari 14+, Android WebView 23+</td>
</tr>
</tbody>
</table>
<p><strong>Kết luận:</strong> AVIF thắng về mức nén thô và hỗ trợ HDR, trong khi WebP có phạm vi hỗ trợ legacy rộng nhất và hệ sinh thái hoạt hình đã trưởng thành. Cách thực tế là phục vụ <strong>AVIF trước, fallback sang WebP, rồi đến JPEG/PNG</strong> cho một số ít ngoại lệ.</p>
<hr>
<h2 id="hỗ-trợ-trình-duyệt--chiến-lược-fallback-bạn-có-thể-sao-chép">Hỗ trợ trình duyệt &amp; chiến lược fallback bạn có thể sao chép</h2>
<h3 id="1-mẫu-picture-đàm-phán-phía-client">1. Mẫu <code>&lt;picture&gt;</code> (đàm phán phía client)</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-html" data-lang="html"><span style="display:flex;"><span>&lt;<span style="color:#f92672">picture</span>&gt;
</span></span><span style="display:flex;"><span>  &lt;<span style="color:#f92672">source</span> <span style="color:#a6e22e">type</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;image/avif&#34;</span> <span style="color:#a6e22e">srcset</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;hero.avif&#34;</span>&gt;
</span></span><span style="display:flex;"><span>  &lt;<span style="color:#f92672">source</span> <span style="color:#a6e22e">type</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;image/webp&#34;</span> <span style="color:#a6e22e">srcset</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;hero.webp&#34;</span>&gt;
</span></span><span style="display:flex;"><span>  &lt;<span style="color:#f92672">img</span> <span style="color:#a6e22e">src</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;hero.jpg&#34;</span> <span style="color:#a6e22e">alt</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;Hình ảnh hero của một bình minh trên thành phố&#34;</span> <span style="color:#a6e22e">loading</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;lazy&#34;</span> <span style="color:#a6e22e">width</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;1200&#34;</span> <span style="color:#a6e22e">height</span><span style="color:#f92672">=</span><span style="color:#e6db74">&#34;800&#34;</span>&gt;
</span></span><span style="display:flex;"><span>&lt;/<span style="color:#f92672">picture</span>&gt;
</span></span></code></pre></div><p><em>Trình duyệt sẽ chọn định dạng đầu tiên mà nó hiểu; các trình duyệt cũ sẽ bỏ qua các thẻ <code>&lt;source&gt;</code> và tải fallback JPEG.</em></p>
<h3 id="2-đàm-phán-header-accept-phía-máy-chủ-cho-một-url-duy-nhất">2. Đàm phán header <code>Accept</code> phía máy chủ (cho một URL duy nhất)</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-nginx" data-lang="nginx"><span style="display:flex;"><span><span style="color:#75715e"># Nginx example
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#66d9ef">map</span> $http_accept $image_ext {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">default</span> <span style="color:#e6db74">&#34;.jpg&#34;</span>;
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;~*image/avif&#34;</span> <span style="color:#e6db74">&#34;.avif&#34;</span>;
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;~*image/webp&#34;</span> <span style="color:#e6db74">&#34;.webp&#34;</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">location</span> <span style="color:#e6db74">/images/hero</span> {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">try_files</span> $uri$image_ext =<span style="color:#ae81ff">404</span>;
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p><em>Nếu client quảng cáo <code>image/avif</code>, Nginx sẽ phục vụ <code>hero.avif</code>; nếu không sẽ fallback sang WebP hoặc JPEG.</em></p>
<h3 id="3-để-cdn-thực-hiện-công-việc-nặng">3. Để CDN thực hiện công việc nặng</h3>
<p>Hầu hết các nhà cung cấp edge (Cloudflare Images, Fastly Image Optimizer, Akamai Image Manager) có tùy chọn tự động chuyển đổi JPEG/PNG đã tải lên sang AVIF/WebP dựa trên header <code>Accept</code>. Bật tính năng này, xóa cache, và bạn đã xong.</p>
<hr>
<h2 id="công-cụ--quy-trình--đưa-avifwebp-vào-pipeline-xây-dựng-của-bạn">Công cụ &amp; quy trình – đưa AVIF/WebP vào pipeline xây dựng của bạn</h2>
<table>
<thead>
<tr>
<th>Nhiệm vụ</th>
<th>AVIF command</th>
<th>WebP command</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Mã hoá không mất dữ liệu</strong></td>
<td><code>avifenc -l -q 0 input.png output.avif</code></td>
<td><code>cwebp -lossless input.png -o output.webp</code></td>
</tr>
<tr>
<td><strong>Mã hoá mất dữ liệu (chất lượng 50)</strong></td>
<td><code>avifenc -q 50 input.jpg output.avif</code></td>
<td><code>cwebp -q 50 input.jpg -o output.webp</code></td>
</tr>
<tr>
<td><strong>Chuyển đổi hàng loạt (Node)</strong></td>
<td><code>sharp('src/**/*.png').avif({quality:50}).toFile('dist/')</code></td>
<td><code>sharp('src/**/*.png').webp({quality:50}).toFile('dist/')</code></td>
</tr>
<tr>
<td><strong>Chuyển đổi hoạt hình</strong></td>
<td><code>avifenc --animation frames/*.png output.avif</code> <em>(still experimental)</em></td>
<td><code>gif2webp animation.gif -o animation.webp</code></td>
</tr>
</tbody>
</table>
<p><strong>Dòng lệnh một dòng cho hầu hết các pipeline CI</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#75715e"># Convert every PNG in assets/ to AVIF with 45 % quality</span>
</span></span><span style="display:flex;"><span>find assets -name <span style="color:#e6db74">&#39;*.png&#39;</span> -exec avifenc -q <span style="color:#ae81ff">45</span> <span style="color:#f92672">{}</span> <span style="color:#f92672">{</span>.<span style="color:#f92672">}</span>.avif <span style="color:#ae81ff">\;</span>
</span></span></code></pre></div><p><em>Mẹo:</em> Giữ nguyên nguồn ảnh độ phân giải cao trong repo; tạo AVIF/WebP ngay trong bước build. Như vậy bạn có thể chạy lại với thiết lập chất lượng khác mà không cần tải lại tài nguyên.</p>
<hr>
<h2 id="tác-động-thực-tế--các-con-số-quan-trọng">Tác động thực tế – các con số quan trọng</h2>
<table>
<thead>
<tr>
<th>Kịch bản</th>
<th>JPEG (cơ sở)</th>
<th>WebP (mất dữ liệu)</th>
<th>AVIF (mất dữ liệu)</th>
<th>AVIF (không mất dữ liệu)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ảnh 1 MP, chất lượng 90 %</td>
<td>120 KB</td>
<td>78 KB (‑35 %)</td>
<td>55 KB (‑55 %)</td>
<td>68 KB (‑43 %)</td>
</tr>
<tr>
<td>Logo trong suốt (500 × 500)</td>
<td>45 KB (PNG)</td>
<td>28 KB (‑38 %)</td>
<td>22 KB (‑51 %)</td>
<td>24 KB (‑47 %)</td>
</tr>
<tr>
<td>Banner hoạt hình 5 s (10 fps)</td>
<td>1.2 MB (GIF)</td>
<td>380 KB (‑68 %)</td>
<td>340 KB (‑72 %)</td>
<td>–</td>
</tr>
</tbody>
</table>
<p><em>Nguồn:</em> Kiểm tra WebPageTest + Lighthouse (2024‑2025) trên một trang bán lẻ đã thực hiện A/B test trong 4 tuần. Phiên bản AVIF mang lại <strong>LCP nhanh hơn 0.4 s</strong> và <strong>tăng 12 % chuyển đổi trên di động</strong>.</p>
<h3 id="các-nghiên-cứu-trường-hợp-bạn-có-thể-trích-dẫn">Các nghiên cứu trường hợp bạn có thể trích dẫn</h3>
<ul>
<li><strong>Các thương gia Shopify (2025)</strong> – AVIF cho ảnh thu nhỏ sản phẩm giảm trọng lượng trang 38 % và rút ngắn LCP 0.3 s trên 3G.</li>
<li><strong>The New York Times</strong> – Chuyển ảnh trong bài viết sang AVIF, tiết kiệm 45 % băng thông và tăng 12 % tương tác trên di động.</li>
<li><strong>Airbnb</strong> – Ảnh hồ sơ host được phục vụ dưới dạng AVIF trên các trình duyệt hỗ trợ, mang lại lần vẽ đầu tiên nhanh hơn 0.4 s trên mạng chậm.</li>
</ul>
<hr>
<h2 id="những-việc-cần-làm-tiếp-theo--danh-sách-kiểm-tra-nhanh">Những việc cần làm tiếp theo – danh sách kiểm tra nhanh</h2>
<ol>
<li><strong>Kiểm tra tải hình ảnh hiện tại</strong> – Lighthouse “Serve images in next‑gen formats”.</li>
<li><strong>Thêm bước build</strong> xuất AVIF (và WebP làm fallback) bằng <code>sharp</code> hoặc <code>avifenc</code>.</li>
<li><strong>Cập nhật HTML</strong> với khối <code>&lt;picture&gt;</code> hoặc bật đàm phán <code>Accept</code> phía máy chủ.</li>
<li><strong>Đặt header cache lâu dài</strong> (<code>Cache‑Control: max-age=31536000, immutable</code>).</li>
<li><strong>Bật lazy‑loading</strong> (<code>loading=&quot;lazy&quot;</code> hoặc IntersectionObserver) để tránh giải mã AVIF ngoài màn hình.</li>
<li><strong>Bật chuyển đổi edge CDN</strong> nếu bạn không muốn lưu AVIF cục bộ.</li>
<li><strong>Giám sát Core Web Vitals</strong> – bạn sẽ thấy LCP giảm 0.2‑0.5 s trong vòng một tuần sau khi triển khai.</li>
</ol>
<blockquote>
<p><strong>Nhìn về tương lai:</strong> Đến năm 2028 IDC dự đoán &gt; 80 % hình ảnh web sẽ ưu tiên AVIF, nhờ hỗ trợ HDR và header “image format negotiation” sắp ra mắt trong Chrome 130+. Đầu tư sớm không chỉ cải thiện hiệu năng hiện tại mà còn chuẩn bị cho trang web của bạn trước làn sóng trải nghiệm hình ảnh mới.</p>
</blockquote>
<hr>
<p><strong>Tags:</strong> #webperformance #imageoptimization #avif<br>
<strong>Slug:</strong> next-gen-web-graphics-avif-webp</p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
