繁體中文

影像與照片·社交影像調整器

偶數像素尺寸和色度子取樣:為什麼奇數尺寸會導致問題

· 背景

影像尺寸 影像編碼 視訊工作流程

在進入視訊編碼器之前在邊界處調整的奇數尺寸影像網格
原始 ToolAcre 向量圖

JPEG 和大多數視訊編碼器使用 4:2:0 色度子採樣以半分辨率存儲顏色,這就是為什麼奇數像素尺寸會在某些管道中導致錯誤或邊緣偽影的原因。這篇文章解釋了這個機制以及為什麼將尺寸微移一個像素有時是正確的選擇。

奇數維故障屬於特定下游編碼器; ToolAcre 在此不重現

特定視訊編碼器可能會拒絕奇數寬度或高度,但 Social Image Resizer 本身接受任何適合其像素預算的正整數目標。它目前的預設恰好使用偶數的整數維度。此應用程式中的任何測試均未顯示單像素故障或邊緣偽影。

將編碼器錯誤視為有關下游合約的證據,而不是影像的通用屬性。捕捉準確的訊息、編解碼器設定和尺寸。然後,如果下一個工具明確需要偶數對,則調整 ToolAcre 自訂輸出。這種糾正將原因和補救措施保持在同一管道中。

亮度和色度概念是背景,不是此工具公開的控制項

影像和視訊編解碼器可以與顏色資訊分開表示亮度資訊。人類視覺所容忍的空間色彩細節通常少於亮度細節,這激發了色度子取樣設計。這個背景解釋了為什麼某些格式將相鄰像素的顏色樣本分組。

ToolAcre 不公開亮度平面、色度平面或取樣控制。它將畫布和 MIME 請求傳遞給瀏覽器編碼器。產生的實作細節取決於該編碼器,並不能從品質滑桿中得出。概念編解碼器教育必須與產品宣告分開。

ToolAcre 不承諾 4:2:0 對 JPEG、WebP 或影片進行編碼

在 4:2:0 表示中,色度通常與二乘二的亮度區域相關,這使得甚至維度對於許多實現來說都很方便。精確的儲存、填充和邊界規則屬於編解碼器和編碼器。對於此處提供的證據來說,諸如「所有 JPEG 和大多數影片都使用此」之類的口號過於寬泛。

render.js 及其測試都不會檢查 JPEG 或 WebP 輸出中的子取樣標記。該應用程式還匯出靜態圖片,而不是視頻。如果必須知道子採樣,請使用格式感知工具分析實際編碼檔案或查閱記錄的下游編碼器,而不是從維度推斷它。

奇數尺寸失敗的地方必須在實際下游管道中進行驗證

奇數尺寸可能不受支援、填充或正常處理,具體取決於管道。此儲存庫不包含證明最後一行或最後一列模糊的測試,因此本文省略了所聲稱的症狀。在更改尺寸之前,應使用確切的檔案和使用者重現失敗的切換。

ToolAcre 的輸出表報告寬度和高度,讓切換檢查變得簡單。如果接收影片工具要求兩個值都能被 2 整除,請將該要求加入生產清單。當每個社會形象的目的地沒有這樣的限制時,不要默默地推動它。

長寬比與偶數像素 — 為什麼數學上精確的比率有時必須屈服於偶數尺寸

當自訂尺寸被捨去時,長寬比和整除性可能會發生競爭。 sizeFromRatio 在固定最長邊後將較短邊捨去。這個結果可能很奇怪。如果下游合約需要偶數對,請選擇偶數最長邊併計算附近的偶數對應項,同時測量所得的比率差異。

不要僅更改元資料來擴展現有輸出。以所選尺寸建立新畫布並檢查框架。在一項工作中,一個像素的調整在視覺上可能可以忽略不計,但接受應該來自實際的下游需求和預覽,而不是普遍的斷言。

工作範例:計算偶數 9:16 對,而無需發明編碼器工件

對於 9:16, 1080×1920 已經是精確偶數對,並是當前通用全螢幕工具預設。一對客製化的半尺寸 540×960 也可以準確地保留比例並保持均勻。這兩個例子都來自算術,而不是來自發明的編碼器品質規則。

如果請求的最長邊產生奇數圓角對應項,則透過寬度除以高度來比較相鄰的偶數值,並選擇滿足記錄的消費者要求的對。匯出它,驗證結果表並執行接收工具。交接的成功是重要的證據。

這不包含什麼 - 4:4:4 和 4:2:2 工作流程和專業視訊色彩管道

專業 4:4:4、4:2:2 和視訊顏色管道位於此靜態影像裁剪器之外。編解碼器設定檔、像素格式和硬體編碼器限制也是如此。瀏覽器編碼器接受 JPEG、PNG 或 WebP 請求;它不會公開承諾這些生產格式所需的開關。

使用視訊工具控制視訊取樣和顏色。使用 Social Image Resizer 準備具有已知尺寸和構圖的靜止框架。維持此邊界可以防止有用的偶維檢查成為對編碼色度結構的錯誤保證。

重點:免費時偏好偶數 — Social Image Resizer 會在瀏覽器中按照比例進行裁剪並調整大小;在將檔案交給視頻工具之前檢查最終尺寸

當記錄的下游工作流程有益且調整不花費任何成本時,更喜歡甚至尺寸,但不要將偏好提升為影像法則。接收編碼器擁有其約束條件。 ToolAcre 的工作是提供可檢查的整數輸出維度和可預測的框架。

在切換之前檢查檔案,保持預期的比例並執行真實的消費者。如果失敗,請使用錯誤和檔案選擇另一對。這種證據優先的方法比在不檢查編碼檔案的情況下將每個奇怪大小的工件歸因於 4:2:0 更可靠。