2 điểm bởi GN⁺ 2024-06-15 | 1 bình luận | Chia sẻ qua WhatsApp
  • H.264 được dùng trên video Internet, Blu-ray, điện thoại di động, camera an ninh và drone, là một tiêu chuẩn nén video được phát triển để truyền video chuyển động đầy đủ với băng thông thực tế
  • Video 1080p 60Hz không nén, theo công thức 1920×1080×60×3, đạt khoảng 370MB/s, nên ngay cả đĩa Blu-ray 50GB cũng chỉ chứa được khoảng 2 phút
  • Cốt lõi của nén là nén mất dữ liệu, giảm các chi tiết ít dễ nhận thấy với mắt, và hạ lượng dữ liệu bằng biến đổi sang miền tần số, lượng tử hóa và lấy mẫu phụ sắc độ
  • Nén theo thời gian chia khung hình thành I-frame, P-frame, B-frame, rồi dùng vector chuyển động của các macroblock 16×16 pixel để khôi phục phần thay đổi thay vì toàn bộ khung hình
  • Trong ví dụ, video H.264 dài 5 giây ở 60fps gồm 300 khung hình chỉ có 175KB, trong khi một ảnh chụp màn hình PNG đơn lẻ là 1015KB, và video gốc 1.2GB được giảm xuống còn 175KB

Dữ liệu mà H.264 đang cố gắng cắt giảm

  • H.264 là một tiêu chuẩn codec nén video được dùng rộng rãi trong video Internet, Blu-ray, điện thoại di động, camera an ninh, drone và nhiều nơi khác
  • Mục tiêu của nó là giảm băng thông cần thiết cho truyền video chuyển động đầy đủ
  • Nhiều khái niệm được nói đến ở đây không chỉ áp dụng cho H.264 mà còn cho nén video nói chung

Vì sao video không nén lại quá lớn

  • Một tệp video không nén đơn giản là một mảng bộ đệm 2D chứa dữ liệu pixel của từng khung hình, và có thể xem như một mảng byte 3D với hai chiều không gian và một chiều thời gian
  • Mỗi pixel dùng 3 byte cho ba màu cơ bản đỏ, lục và lam
  • Video 1080p 60Hz tạo ra khoảng 370MB/s dữ liệu thô theo phép tính sau
    • 1920 × 1080 × 60 × 3
  • Với kích thước này, một đĩa Blu-ray 50GB chỉ chứa được khoảng 2 phút, và việc di chuyển hay lưu trữ cũng trở nên khó khăn

Video 5 giây còn nhỏ hơn một ảnh PNG

  • Ví dụ về màn hình trang chủ Apple cho thấy trực quan hiệu quả nén của H.264
  • Video 5 giây ở 60fps có 300 khung hình, nhưng kích thước tệp chỉ bằng khoảng 1/5 của một khung hình PNG đơn lẻ
  • Bề ngoài, video chứa lượng dữ liệu nhiều hơn 300 lần mà lại nhỏ hơn, nên H.264 trông hiệu quả hơn PNG rất nhiều

Thông tin bị loại bỏ bởi nén mất dữ liệu

  • H.264 là một codec nén mất dữ liệu, chỉ giữ lại những bit quan trọng và loại bỏ các bit kém quan trọng hơn
  • PNG là một codec nén không mất dữ liệu, nên có thể khôi phục ảnh nguồn gốc từng bit từ ảnh đã mã hóa
  • H.264 không hoạt động bằng cách cắt xén ảnh hay bỏ đi một góc phần tư nào đó, mà giống các thuật toán ảnh mất dữ liệu khác ở chỗ làm giảm thông tin chi tiết
  • Trong ảnh ví dụ, các chi tiết như những lỗ nhỏ trên lưới loa của MacBook Pro biến mất, nhưng nếu không phóng to thì rất khó nhận ra khác biệt
  • Chỉ riêng bước này cũng đã đưa ảnh xuống còn khoảng 7% kích thước ban đầu

Entropy và loại bỏ dư thừa

  • Entropy thông tin là số bit cần thiết để biểu diễn một thông tin nào đó, và khác với kích thước đơn thuần của tập dữ liệu
  • Có thể hiểu nó như số bit tối thiểu cần để biểu diễn các trạng thái có thể xảy ra, như kết quả của việc tung đồng xu
  • Nếu tung đồng xu 10 lần đều ra mặt ngửa, thay vì viết HHHHHHHHHH ta có thể biểu diễn ngắn hơn là “10 lần đều ra mặt ngửa”
  • Quá trình này không thay đổi bản thân thông tin mà chỉ rút gọn cách biểu diễn để loại bỏ tính dư thừa
  • Loại bộ mã hóa không mất dữ liệu dùng cho mục đích chung này được gọi là bộ mã hóa entropy

Miền tần số và lượng tử hóa

  • Dữ liệu thay đổi theo không gian hoặc thời gian có thể được biến đổi sang một hệ tọa độ khác, và giá trị độ sáng của ảnh cũng có thể được biểu diễn trong miền tần số
  • Trong miền tần số, các thành phần tần số thấp nằm gần trung tâm, còn các thành phần tần số cao nằm về phía rìa
  • Những mẫu chi tiết nhỏ như lưới mịn trong ảnh tương ứng với thành phần tần số cao, còn biến đổi màu sắc hay độ sáng mượt mà tương ứng với thành phần tần số thấp
  • Nếu che đi phần rìa của ảnh trong miền tần số, ta có thể loại bỏ thông tin tần số cao; khi biến đổi ngược về hệ tọa độ x-y thông thường, kết quả là một ảnh gần giống bản gốc nhưng ít chi tiết hơn
  • Thay đổi kích thước mặt nạ cũng sẽ điều chỉnh mức độ chi tiết của ảnh đầu ra
  • Trong ví dụ, ngay cả khi entropy thông tin chỉ còn khoảng 2% so với bản gốc, nếu không phóng to thì rất khó nhận ra khác biệt
  • Trong nén mất dữ liệu, quá trình này được gọi là lượng tử hóa (quantization)

Lấy mẫu phụ sắc độ

  • Mắt và não người rất nhạy với thay đổi độ sáng, nhưng lại tương đối kém trong việc phân biệt khác biệt rất nhỏ về màu sắc
  • Trong tín hiệu TV, dữ liệu màu RGB được chuyển thành Y+Cb+Cr
    • Y: độ chói, về thực chất là độ sáng đen trắng
    • Cb, Cr: sắc độ, tức thành phần màu
  • RGB và YCbCr là tương đương về mặt entropy thông tin
  • Thời TV đen trắng chỉ có tín hiệu Y; khi TV màu xuất hiện, thông tin màu được mã hóa vào Cb và Cr rồi truyền cùng với Y
  • TV đen trắng chỉ đọc thành phần Y, còn TV màu dùng thêm thành phần sắc độ rồi chuyển đổi nội bộ sang RGB
  • Cách được dùng trong H.264 là lưu thành phần Y ở đầy đủ độ phân giải, còn thành phần C ở 1/4 độ phân giải
  • Lấy mẫu phụ sắc độ loại bỏ một phần thông tin màu để giảm một nửa tổng băng thông trong khi khác biệt thị giác vẫn nhỏ
  • Kỹ thuật này không phải riêng của H.264 mà đã được dùng rộng rãi suốt nhiều thập kỷ

Bù chuyển động và nén theo thời gian

  • H.264 là một tiêu chuẩn nén bù chuyển động
  • Nó vượt ra ngoài nén không gian trong một khung hình đơn lẻ để xử lý nhiều khung hình cùng nhau theo chiều thời gian
  • Trong video như một trận tennis, nơi camera đứng yên và chỉ có quả bóng di chuyển, không cần lưu lại toàn bộ hậu cảnh ở mỗi khung hình
  • Ảnh thường được chia thành các macroblock 16×16 pixel, và chuyển động được ước lượng theo từng khối như vậy
  • Có ba loại khung hình chính
    • I-frame: khung hình chứa mọi bit cần thiết để dựng toàn bộ khung
    • P-frame: khung dự đoán mã hóa vector chuyển động của từng macroblock từ khung trước đó
    • B-frame: khung dự đoán hai chiều từ cả khung quá khứ lẫn khung tương lai
  • Bộ giải mã bắt đầu từ I-frame gần nhất rồi cộng dồn các delta vector chuyển động của những khung tiếp theo để dựng khung hiện tại
  • Video ví dụ về trang chủ Apple thực chất gần như chỉ là ba I-frame với các macroblock di chuyển, nên được nén cực kỳ hiệu quả

Vì sao tua ngược rồi phải dừng một lúc

  • Hiện tượng tua ngược vài giây trên video như YouTube mà không phát lại ngay, phải dừng một chút, có liên quan đến cấu trúc của H.264
  • Khi người dùng nhảy đến một khung hình bất kỳ, bộ giải mã phải tính lại từ I-frame gần nhất
  • Sau đó nó còn phải cộng dồn delta vector chuyển động cho đến khung cần hiển thị, nên chi phí tính toán khá lớn
  • Cách này rất hiệu quả về mặt dung lượng, nhưng việc giải mã đòi hỏi tính toán

Bước nén không mất dữ liệu cuối cùng

  • Ngay cả I-frame sau các bước mất dữ liệu vẫn còn thông tin dư thừa
  • Các vector chuyển động macroblock của P-frame và B-frame cũng có thể tạo thành những nhóm mang cùng một giá trị
  • Đặc biệt trong những video thử nghiệm có cảnh lia màn hình, nhiều macroblock sẽ cùng di chuyển một lượng như nhau
  • Bộ mã hóa entropy xử lý phần dư thừa này
  • Vì bộ mã hóa entropy là một bộ mã hóa không mất dữ liệu dùng cho mục đích chung, dữ liệu đầu vào vẫn có thể được khôi phục

Tỷ lệ nén trong ví dụ

  • Video ví dụ gốc được quay ở độ phân giải không chuẩn 1232×1154
  • Với 5 giây ở 60fps, kích thước gốc được tính ra khoảng 1.2GB theo công thức sau
    • 1232 × 1154 × 60 × 3 × 5
  • Video H.264 sau nén có kích thước 175KB
  • Theo phép ví von bằng ô tô trong bài, điều này tương đương một chiếc xe nặng 3000 pound được thu nhỏ còn 0.4 pound, tức 6.5 ounce
  • Cách giải thích tỷ lệ nén này đã đơn giản hóa rất nhiều thập kỷ nghiên cứu; chi tiết hơn có thể xem tại H.264/MPEG-4 AVC Wikipedia Page

1 bình luận

 
GN⁺ 2024-06-15
Ý kiến trên Hacker News
  • AV1 là một codec có giấy phép tốt hơn và còn kỳ diệu hơn
    Meta đang dần đưa các luồng VP9/AV1 thành baseline trong streaming video: https://www.streamingmedia.com/Producer/Articles/Editorial/F...
    Họ cũng dùng AV1 cho cuộc gọi video: https://engineering.fb.com/2024/03/20/video-engineering/mobi...
    Microsoft cũng đã bắt đầu dùng AV1 trong Teams, và AV1 có các công cụ mã hóa video đặc biệt hữu ích cho chia sẻ màn hình: https://techcommunity.microsoft.com/t5/microsoft-teams-blog/...
    Phần lớn video xem trên YouTube hiện nay là VP9 hoặc AV1, chỉ thỉnh thoảng mới thấy H.264
    H.264 sẽ còn tồn tại khá lâu, nhưng có vẻ AV1 nhiều khả năng sẽ trở thành baseline mới cho video trên Internet

    • Đúng là vậy, nhưng mức độ phổ biến của mã hóa/giải mã phần cứng vẫn chưa hoàn toàn đầy đủ
      Từ góc nhìn của nhà phát triển, mọi người đều cần có thể tiếp cận được, còn hiện tại là trạng thái chờ tính năng đó đến được với đa số người dùng
      Sẽ tốt nếu nhiều người dùng hơn mua phần cứng có mã hóa/giải mã AV1, và có lẽ cần một logo kiểu “AV1 inside”
      Ví dụ trong dòng iPhone, hiện mới chỉ iPhone 15 Pro cung cấp giải mã phần cứng
    • AV1 thật sự kinh khủng khi mã hóa bằng phần mềm
      Tôi từng phải ghi hình bài giảng rồi tạo thành một file 720p tương đối nhỏ để tải lên; đó là video quay một người di chuyển chậm trước những nét mảnh và sắc trên bảng trắng, trong điều kiện ánh sáng lưng chừng, nên profile mã hóa mặc định của x264 không phù hợp lắm
      Dù vậy, sau một hai ngày chỉnh thiết lập, tôi đã khiến nó chạy qua đêm hôm sau buổi giảng trên một laptop chỉ có iGPU khoảng đời 2014, rồi có thể tải kết quả lên vào ngày kế tiếp
      Ngược lại, libaom báo rằng sẽ mất khoảng một tuần để render video dài 3 tiếng, và giá trị mặc định quá tệ nên tôi không có thời gian thử nghiệm
      Chuyện đó là 4 năm trước nên giờ chắc đã tốt hơn, nhưng tôi không kỳ vọng đến mức có phép màu
    • Trong không gian màu 8-bit, H.264/5 gần như không gặp block artifact trên thực tế, còn AV1 thì khó loại bỏ hiện tượng này nếu không nâng lên 10-bit
      Không nhất thiết đây là vấn đề, nhưng vấn đề thật sự của AV1 là lượng tính toán cần cho nén quá lớn
    • Tôi không thể gạt bỏ cảm giác rằng phần lớn video 720p xem trên YouTube trong vài năm gần đây đã giảm chất lượng đáng kể
      Hoặc cũng có thể mắt tôi tốt lên
      Ước gì có bài viết đào sâu về chủ đề này
    • AV1 không đạt được tốc độ mã hóa/giải mã nhanh như H.264
  • Các bài liên quan:
    H.264 is Magic (2016) - https://news.ycombinator.com/item?id=30710574 - tháng 3/2022, 219 bình luận
    H.264 is magic (2016) - https://news.ycombinator.com/item?id=19997813 - tháng 5/2019, 180 bình luận
    H.264 is Magic – a technical walkthrough - https://news.ycombinator.com/item?id=17101627 - tháng 5/2018, 1 bình luận
    H.264 is Magic - https://news.ycombinator.com/item?id=12871403 - tháng 11/2016, 219 bình luận

  • Giờ đây, 8 năm sau khi bài đó được viết, một phần đáng kể bằng sáng chế H.264 sắp hết hạn, khoảng trong 1–2 năm nữa: https://meta.wikimedia.org/wiki/Have_the_patents_for_H.264_M...
    Điều này không có gì ngạc nhiên nếu xét rằng phiên bản đầu tiên của chuẩn H.264 ra mắt năm 2003 và bằng sáng chế thường có hiệu lực 20 năm
    Thế hệ trước đó là H.263 và MPEG-4 ASP đã hết hạn bằng sáng chế và nằm trong phạm vi public domain

    • Có vẻ các thuật toán kế nhiệm rốt cuộc cũng sẽ được triển khai rộng rãi trong phần cứng, và chúng ta lại sẽ bị trói buộc bởi vấn đề bằng sáng chế
  • Vậy còn H.265 thì sao? Con số lớn hơn một đơn vị mà? https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding

    • Tôi làm khá nhiều nén video cho các dự án sở thích, nhưng phần lớn vẫn bám vào H.264
      Việc mã hóa H.265 đòi hỏi thêm quá nhiều tính toán so với dung lượng tiết kiệm được
      Kiểu như một tệp nếu dùng H.264 mất 1 giờ để giảm xuống 1GB, thì dùng H.265 mất 12 giờ để giảm xuống 850MB
      Tùy trường hợp sử dụng, dù sao bạn cũng có thể cần phiên bản H.264 vì được client hỗ trợ rộng hơn nhiều
      Nếu có tài nguyên tính toán cấp trung tâm dữ liệu, hoặc vận hành một dịch vụ streaming nơi 150MB tiết kiệm cho mỗi video được cộng dồn lại, thì chắc sẽ chuyển sang H.265, nhưng trong nhiều trường hợp thực tế thì khó biện minh
    • Tôi khá thích HEVC/H.265
      Nó gần như ngang tầm VP9, nhưng vì vấn đề giấy phép nên đến giờ vẫn khó được áp dụng ở mọi nơi
      VVC/H.266 có vẻ cũng gặp cùng vấn đề, còn AV1 thì tốt gần tương đương và đã được áp dụng rộng rãi hơn nhiều
    • H.264 có cảm giác thật sự đạt đúng điểm rất tốt trong cân bằng giữa độ phức tạp và tỷ lệ nén
      Các codec mới hơn nén tốt hơn, nhưng độ phức tạp tăng theo cách phi tuyến
    • Tôi có nhiều video độ nét cao cũ và rất lớn ở nhiều định dạng kém hiệu quả, nên đã thử nghiệm, và cuối cùng mã hóa lại/chuyển mã toàn bộ sang H.265
      Kích thước tệp nhỏ hơn H.264 rất nhiều
      Chuẩn này cũng trẻ hơn H.264 10 năm; H.264 là năm 2003, còn H.265 là năm 2013
    • VVC(H.266) thì sao? https://en.wikipedia.org/wiki/Versatile_Video_Coding
  • Trong ví dụ “nếu tung đồng xu 10 lần và tất cả đều ra mặt ngửa, thay vì viết HHHHHHHHHH thì chỉ cần nói ‘đã tung 10 lần và tất cả đều là mặt ngửa’”, có vẻ chuỗi H đó đã có chút nén mất dữ liệu

    • Thật ra “đã tung 10 lần và tất cả đều là mặt ngửa” có nhiều ký tự hơn, nên cũng chẳng phải nén
    • Nhưng nếu đọc to từng cái lên thì khác
  • Tôi nhớ lúc H.264 lần đầu xuất hiện
    Khi đó tôi mê mplayer, nên thường xuyên tải các bản phát hành mới nhất về rồi build
    Lần đầu nhận được một tệp H.264, mplayer không đọc được nên tôi phải lấy bản phát triển về build
    Nó chạy được, và tôi nhận ra hai điều: chất lượng hình ảnh thật đáng kinh ngạc, còn Athlon 1800+ của tôi thì không kham nổi
    Sau này hiệu năng trong các phiên bản mplayer hay libavcodec cải thiện rất nhiều, nhưng tôi vẫn nhớ ngày hôm đó

    • Tôi cũng vậy
      Đã rất lâu rồi tôi không dùng mplayer, nhưng hồi đó nó là số một
      Trước đây tôi làm ở một công ty phát triển sản phẩm dựa trên video, và một công ty khác ở Las Vegas đã bán cho ban lãnh đạo của chúng tôi một “codec video mang tính đột phá” cùng trình phát, muốn dùng thì phải ký NDA
      Dùng thử thì nó hoạt động như mplayer, mà giống đến mức quá đáng
      Điều tra thêm 5 phút là lộ, và các lãnh đạo đã trả một khoản lớn cho công ty đó bị bẽ mặt
      Ngay cả trong lĩnh vực công nghệ, việc lừa những người ra quyết định không có chuyên môn kỹ thuật cũng dễ đến đáng kinh ngạc
      Vì họ quá lo sợ bị tụt lại phía sau
      Người thông minh sẽ gọi kỹ sư giỏi đến để đánh giá, còn những đối tượng Dunning-Kruger thì cầm ví xếp hàng
  • Có một thời điểm tôi định rời startup đã được mua lại vào năm 1999, và lúc đó tôi đang làm mã hóa MPEG
    Một trong những công ty tôi phỏng vấn nói rằng họ đã tạo ra một phương thức nén video mới, và sau khi ký NDA, họ cho tôi xem một đoạn clip ngắn được mã hóa/giải mã bằng codec phần mềm không thời gian thực
    Tôi đang phỏng vấn cho vị trí người sẽ làm phiên bản ASIC của thuật toán đó, nhưng chỉ nhìn 1–2 phút đầu ra là tôi đã đoán được họ đang làm gì
    Tôi cho rằng ví dụ được chọn để phù hợp với điểm mạnh của thuật toán, nên đã đề xuất một cảnh khó hơn, và cũng giải thích theo tôi đó là cách làm gì
    Họ không xác nhận cũng không phủ nhận, nhưng gọi tôi đến vòng phỏng vấn thứ hai
    Ở vòng hai tôi nói chuyện với cặp vợ chồng sáng lập CEO/CTO; kế hoạch của họ không phải là bán ASIC, mà là giữ bí mật codec và dùng ASIC để xây dựng một mạng cáp dựa trên DSL nhằm phân phối video
    Tôi nói: “Có vẻ như các anh đã phát minh ra bộ chế hòa khí tốt hơn rồi lại định xây nhà máy ô tô để cạnh tranh với GM”, và họ không đón nhận điều đó một cách tích cực
    Điểm câu chuyện này liên quan đến H.264 là lập luận của họ khi đó: “nén hiện có đã chạm giới hạn, nên chỉ codec của chúng tôi mới có thể gửi video chất lượng cao qua đường DSL”
    Tôi đáp rằng bộ nén sẽ tiếp tục tốt lên, và kể cả nếu không, khi internet nhanh hơn vào được từng nhà thì chính ngưỡng mà họ tin mình có thể vượt qua cũng sẽ biến mất
    Họ nói theo các định luật vật lý thì tốc độ bit có thể truyền qua dây dẫn là có giới hạn, và chúng ta đã chạm giới hạn đó rồi
    Tôi không nhận được lời mời tuyển dụng, và cũng không muốn nhận
    Công ty đó nhận tiền VC nhưng vài năm sau thì đóng cửa; những người khác đã tạo ra các codec hiệu quả hơn nhiều, và kết nối internet 2Mbps không phải là giới hạn
    Chắc hẳn trong thuật toán thực tế có rất nhiều toán học thông minh và sức mạnh thuật toán, nên về mặt kỹ thuật họ không phải kẻ ngốc; họ chỉ thiếu nhạy bén kinh doanh
    Nói lại như thế này nghe có vẻ như tôi là một kẻ biết tuốt khoe khoang, nhưng đó là một trong hai lần trong đời tôi nhìn thấy thứ gì đó và chỉ trong vài giây đã nhận ra “nước sốt bí mật”
    Những ví dụ về việc tôi là thằng ngốc thì nhiều hơn hẳn
    Thuật toán chưa bao giờ được xác nhận với tôi, nhưng nhìn artifact ở đường viền silhouette thì khá rõ
    MPEG, giống JPEG, nén hình ảnh thành các khối nhỏ (8x8, 16x16, v.v.), điều này giới hạn phạm vi tận dụng dư thừa không gian, nhưng cũng giới hạn chi phí tính toán để tìm ra sự dư thừa đó
    Codec của họ trông giống với thứ mà Microsoft từng đề xuất cuối thập niên 1990 cho kiến trúc đồ họa Talisman
    Thay vì chia thành các khối cố định, có vẻ nó phân tích chuỗi khung hình để tìm các vùng nhất quán về cấu trúc với ranh giới bán tùy ý
    Ví dụ trong một trận tennis, nền khá gần với “vật rắn”: nếu camera lia và một pixel di chuyển, các pixel xung quanh nhiều khả năng cũng chịu cùng một phép biến đổi không gian
    Vận động viên thay đổi theo từng khung hình, nhưng trong cụm đó vẫn có tương quan về ánh sáng và vị trí
    Sau khi nhận diện các vùng như vậy, có lẽ họ nén ảnh của vùng đó theo cách gần giống JPEG, rồi ở khung hình tiếp theo phân tích xem một vùng trải qua phép biến đổi affine hoặc phép biến đổi tổng quát hơn sang khung hình kế tiếp như thế nào, và mã hóa nó bằng vài tham số
    Đây trở thành cơ sở dự đoán khung hình tiếp theo, và nếu khớp tốt thì không cần nhiều bit để hiệu chỉnh lỗi dự đoán

    • Tôi không nhớ tên công ty và nhà sáng lập, nhưng Google đã tìm giúp: https://www.zdnet.com/article/high-hopes-for-video-compressi...
      Họ nhận 32 triệu USD đầu tư từ VC và ra khỏi chế độ stealth vào năm 2002
      Tôi không tìm được sau đó họ ra sao
    • Thay vì nói “về mặt kỹ thuật không phải kẻ ngốc”, nếu họ giả định rằng hiệu suất codec và băng thông internet có giới hạn cứng, thì tôi nghĩ ít nhất họ cũng ngây thơ về mặt kỹ thuật
  • Bài viết rất hay, nhưng việc dùng cụm Information Entropy như thể là một thuật ngữ riêng là một trong những kiểu diễn đạt dạng “ATM machine” gây khó chịu nhất
    Bản thân bài viết thì tốt, nhưng cách diễn đạt này thật sự rất mạnh

    • Tín hiệu và nhiễu đâu phải cùng một thứ?
    • Dù vậy, tôi thấy information entropy tự giải thích hơn Shannon entropy
    • Ở đây rõ ràng không liên quan, nhưng về mặt kỹ thuật chẳng phải còn có entropy nhiệt sao? Không phải lúc nào cũng chỉ nói đến thông tin
  • Vào năm 02016, H.264 là thứ ma thuật bị ràng buộc bởi bằng sáng chế ở nhiều quốc gia
    Giờ thì tiêu chuẩn đã được công bố vào tháng 8 năm 02004 sau một năm chuẩn hóa công khai; bằng sáng chế chỉ kéo dài 20 năm từ ngày nộp đơn, và thứ đã công bố rồi thì không thể được cấp bằng sáng chế, nên phần lớn đã hết hạn hoặc sẽ hết hạn trong vài tháng nữa
    Ở Mỹ có thời gian ân hạn 1 năm nếu chính người nộp đã công bố, nhưng nếu có ngoại lệ nào thì tôi rất muốn được nghe
    userbinator đã chỉ tới https://meta.m.wikimedia.org/wiki/Have_the_patents_for_H.264..., nhưng đa số bằng sáng chế ở đó có ngày ưu tiên sau khi tiêu chuẩn H.264 được chốt, nên không thể là thiết yếu để triển khai chính H.264
    Trừ khi họ lập luận rằng vào thời điểm chuẩn hóa, việc triển khai được là chưa được biết đến; nhưng điều đó khá kém thuyết phục
    Điều đáng kinh ngạc là trong 20 năm qua đã có những thứ có thể nói là tốt hơn một chút, nhưng theo các thử nghiệm của tôi với bản triển khai ffmpeg thì không có thứ gì tốt hơn nhiều
    Nếu tình trạng không còn bằng sáng chế được bảo đảm, dù thích hay không, có vẻ H.264 rất có khả năng sẽ càng củng cố vị thế codec tiêu chuẩn trong một thời gian nữa
    AV1 cho chất lượng hình ảnh tốt hơn một chút ở cùng băng thông nhưng chậm hơn rất nhiều, và cũng dễ bị ảnh hưởng bởi các bằng sáng chế được nộp muộn như năm 02018

    • Vậy sau năm 2038 chúng ta sẽ có AV1 không bằng sáng chế à!
    • Sao lại thêm một số 0 trước năm vậy?
  • Câu “vì bạn yêu cầu decoder nhảy tới một khung hình tùy ý, nên nó phải bắt đầu từ I-frame gần nhất rồi tính lại bằng cách cộng các delta vector chuyển động cho đến khung hiện tại, khiến video khựng lại một lúc” là chuyện của năm 2016
    Ngày nay là vì YouTube biết bạn đang dùng Firefox