1 điểm bởi GN⁺ 4 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Hiệu ứng video mã nguồn mở miễn phí tái hiện chính xác các hiện tượng hình ảnh của TV analog và VHS trên máy tính cá nhân
  • Thay vì chỉ bắt chước cảm giác băng VHS bằng bảng tra màu và lớp phủ đơn giản, công cụ này sử dụng thuật toán mô hình hóa cách truyền NTSC và mã hóa VHS thực sự hoạt động
  • Thuật toán nền tảng được phát triển từ composite-video-simulator, zhuker/ntsc và ntscQT
  • Được viết bằng Rust, áp dụng đa luồng và tăng tốc SIMD, nên khác với các hiệu ứng tương tự như ntscQT, có thể chạy thời gian thực ngay cả ở độ phân giải cao hơn nhiều so với video NTSC thực tế
  • Có sẵn dưới dạng ứng dụng độc lập, ứng dụng web, cũng như plugin cho After Effects, Premiere và phần mềm tương thích OpenFX, hỗ trợ DaVinci Resolve, Hitfilm và Vegas

Tổng quan

  • ntsc-rs là hiệu ứng video mã nguồn mở miễn phí mô phỏng chính xác các hiện tượng hình ảnh của TV analog và VHS
  • Đây là công cụ tái hiện cảm giác hoài niệm của VHS trên máy tính cá nhân, cung cấp bản tải về 0.9.4 và trải nghiệm trực tuyến
  • Các hiệu ứng VHS thông thường thường chỉ tái tạo bề ngoài của băng VHS bằng bảng tra màu và lớp phủ đơn giản
  • ntsc-rs sử dụng thuật toán mô hình hóa cách truyền NTSC và mã hóa VHS thực sự hoạt động
Quảng cáo

Triển khai và hình thức cung cấp

  • Đây là bản triển khai được viết bằng Rust, có áp dụng đa luồng và tăng tốc SIMD
  • Khác với các hiệu ứng tương tự như ntscQT, công cụ có thể chạy thời gian thực ngay cả ở độ phân giải cao hơn nhiều so với video NTSC thực tế
  • Các hình thức cung cấp gồm ứng dụng độc lập, ứng dụng web và plugin cho phần mềm chỉnh sửa video
  • Plugin có thể dùng trong After Effects, Premiere và phần mềm tương thích OpenFX
    • Ví dụ phần mềm tương thích OpenFX gồm DaVinci Resolve, Hitfilm và Vegas

1 bình luận

 
Ý kiến trên Hacker News
  • Làm tôi nhớ đến câu trích dẫn của Brian Eno về dấu vết riêng của phương tiện mới:
    “Điều hiện giờ có vẻ kỳ quặc, xấu xí, bất tiện và khó chịu ở một phương tiện mới rồi cuối cùng nhất định sẽ trở thành dấu ấn của chính phương tiện đó. Méo tiếng của CD, rung lắc của video số, âm thanh thô ráp của 8-bit — ngay từ khoảnh khắc ta có thể tránh được chúng, chúng bắt đầu được trân trọng và mô phỏng lại. Đó là âm thanh của sự thất bại. Rất nhiều nghệ thuật hiện đại là âm thanh của sự vật vượt khỏi kiểm soát, của phương tiện bị đẩy đến giới hạn và vỡ ra. Tiếng guitar méo là dấu vết của một âm thanh quá lớn so với phương tiện được giao nhiệm vụ chứa đựng nó. Một ca sĩ blues hát bằng giọng vỡ là âm thanh của tiếng kêu cảm xúc quá mạnh so với cổ họng phát ra nó. Sự hưng phấn của hạt phim thô và trắng đen bạc màu đến từ việc chứng kiến một biến cố quá lớn lao so với phương tiện được giao nhiệm vụ ghi lại nó.” - Brian Eno

    • Tôi nghĩ điều người ta tìm kiếm không hẳn là bản thân khuyết điểm, mà là bầu không khí của thời đại đó. Phần lớn mọi người không để ý quá nhiều đến những chi tiết kỹ thuật như vậy
      Ví dụ, thập niên 80~90 có vẻ như là một thời kỳ hạnh phúc hơn với cả những người lớn lên trong giai đoạn đó lẫn những người không lớn lên khi ấy, và những lỗi như artifact VHS đưa người xem trở lại đúng cảm giác đó
    • Tôi muốn nói là “đúng, nhưng vẫn còn đó”. Đúng là giới hạn của phương tiện thường được đa số diễn giải thành sức hấp dẫn đáng theo đuổi, và scanline của CRT khi hiển thị hình ảnh độ phân giải thấp là một ví dụ như vậy
      Nhưng âm thanh hay video analog cũng có những đặc tính về sau đã biến mất hoặc bị suy giảm mạnh trong công nghệ mới. Ví dụ, để đạt độ trung thực ngang vinyl thì MP3 cần bitrate rất cao (CD thì làm được mà không vấn đề gì), còn độ rõ của hình ảnh chuyển động trên CRT thì màn hình hiện đại vẫn chưa theo kịp, và có lẽ sẽ mãi như vậy vì đặc tính sample-and-hold của màn hình hiện đại
    • Marshall McLuhan cũng từng nói điều tương tự:
      “Mọi phương tiện mới đều làm phương tiện trước đó trở nên lỗi thời, và phương tiện cũ sau đó trở thành nội dung hoặc hình thức nghệ thuật của phương tiện mới.”
      “Khi nền tảng cũ trở thành nội dung của một tình huống mới, nó thường hiện ra như một hình thái thẩm mỹ đối với sự chú ý thông thường. Đồng thời, một dạng phục hồi hoặc hoài niệm mới được sinh ra.”
    • Tôi hoàn toàn không nhớ nhung khung hình tạm dừng bất ổn và chất lượng hình ảnh đục mờ của các phim TV ghi trên VHD. Tốc độ chậm và độ tin cậy thấp của đĩa 3.5 inch cũng vậy
    • Những người lần đầu thấy VHS có lẽ không bận coi phương tiện mới là xấu xí hay khó chịu, mà bận ngạc nhiên trước màu sắc, sự thu nhỏ kích thước và tính tiện lợi của nó hơn
      Những công nghệ mới thành công lớn với công chúng thường bắt đầu như thứ tối tân và ấn tượng, rồi chỉ đến sau này người ta mới nhìn lại theo kiểu xem thường
  • Nghĩ thoáng qua thì tôi có cảm giác mình chưa từng thấy loại trình giả lập TV nào mô phỏng được cảnh dao động dọc lệch nhẹ khiến hình ảnh từ từ cuộn lên trên

    • Cái này có. Bạn có thể chỉnh lượng nhiễu được bơm vào tín hiệu, và nếu quá nhiều thì nó sẽ mất đồng bộ rồi màn hình bắt đầu cuộn
      Nó không chỉ giả hiệu ứng cho có, mà gần như là một bộ điều chế/giải điều chế NTSC bằng phần mềm thực thụ
      https://github.com/LMP88959/NTSC-CRT
    • Trong lúc tìm hiểu tôi đã đăng ntsc-rs, vì tôi cũng đang tìm thứ giống như điều bạn nói
      Tôi cũng xem qua https://codeberg.org/fsphil/hacktv, nó tạo ra nhiều loại tín hiệu TV analog để phát bằng HackRF. Nhưng thứ tôi muốn thì theo hướng ngược lại, gần với trình giả lập bộ thu analog hơn, tức là chấp nhận cả tín hiệu lỗi và hỏng theo cách một chiếc TV analog thật sẽ hỏng
  • Tôi tự hỏi liệu có thể dùng cái này cho AI học theo chiều ngược lại không. Tức là huấn luyện nó tạo ra video chất lượng cao từ video có artifact TV analog/VHS
    Nếu bắt đầu từ video chất lượng cao rồi dùng thư viện này hoặc công cụ tương tự để tạo video analog/VHS thì sẽ có dữ liệu ground truth, và có thể dùng dữ liệu đó để huấn luyện AI

  • Phải mô phỏng cả dịch pha của sóng mang phụ màu và lỗi phát hiện color burst thì mới ra trọn vị artifact TV analog
    Tất nhiên còn cần cả PAL và Hanover bars nữa

    • Vì thế mà người ta hay đùa gọi NTSC là “Never Twice the Same Color”
  • Trước đây tôi từng viết một trình giả lập NTSC bằng C dựa trên một hệ phương trình khác. Nhưng nó nhận nhiều giá trị như pha qua tham số dòng lệnh để điều khiển, và nhận ảnh farbfeld thang độ xám làm đầu vào rồi xuất farbfeld, nên là cho ảnh tĩnh chứ không phải video

  • Trước đây tôi từng định phân tích thật kỹ mô phỏng NTSC đáng kinh ngạc của OpenEmulator
    Tôi đã rơi vào một hang thỏ, xem vài bài giảng xử lý tín hiệu trên YouTube rồi mất động lực, nhưng với ai quan tâm thì tôi đã mổ xẻ khá nhiều ở đây: https://observablehq.com/@zellyn/apple-ii-ntsc-emulation-ope...
    Tôi cũng đã làm một bản port JavaScript được liên kết từ trang đó

    • Trong nhiều năm, mỗi khi ai đó hỏi về bộ lọc NTSC thì tôi lại giải thích, vì phần cứng giờ đã nhanh hơn rất nhiều so với giữa thập niên 2000 nên tôi muốn thấy nhiều triển khai kém tối ưu hơn cũng được.
      Bộ lọc đó tính trước kernel cho mọi màu và mọi độ lệch pha, rồi khi render thì thực hiện phép toán RGB có dấu. Việc có thể tái tạo lại những điểm kỳ lạ của phần cứng cũ mà chúng ta lớn lên cùng đem lại cảm giác thỏa mãn, vì nó giúp ta hiểu được chúng mà không thần bí hóa chúng
  • Tại sao lại có nhiều tình cảm với NTSC đến vậy, còn với PAL và SECAM thì ít hơn nhiều?

    • Interlacing gần như là từ đồng nghĩa với video thập niên 80~90
  • Tôi đã cài plugin OpenFX và thử trong DaVinci, nó chạy nhanh, có nhiều tùy chọn điều khiển, và kết quả rất tuyệt
    Có thể tinh chỉnh từ cảm giác rất nhẹ cho tới mức gần như nhòe thành súp. Tự động hóa các tham số thì còn thú vị hơn nữa, và tôi cũng thích việc nó dựa trên mô phỏng thực sự. Có lẽ tôi chắc chắn sẽ dùng nó cho công việc dựng phim

  • Thật tốt khi thấy lĩnh vực này được phát triển sôi động. Nhưng tôi cũng tò mò không biết phía làm mô phỏng artifact sẽ nhìn chuyện này ra sao
    Thường tôi hay gặp nó dưới dạng shader cho trình giả lập, nhưng nhu cầu làm suy giảm video sạch theo cách có cấu trúc như thế này cũng đang lớn trong sản xuất video hiện nay. Các nhà làm phim muốn có cảm giác máy quay cầm tay thập niên 90, nhưng rất khó để ê-kíp quay thật sự dùng phần cứng và định dạng máy quay cũ cồng kềnh của thập niên 90

    • Điều đáng ngạc nhiên hơn là cảnh quay máy quay cầm tay thật lại không nhiều. Chẳng phải các đạo diễn cũng thường xuyên lôi cả máy quay phim đen trắng thật ra dùng hay sao?
  • Hay đấy. Vốn dĩ tôi luôn thích kiểu hiệu ứng này, và trước đây cũng từng tự làm một phiên bản đơn giản hơn nhiều
    Nó hoạt động bằng cách tách một pixel thành ba giá trị r, g, b rồi đặt cạnh nhau theo chiều ngang để mô phỏng cách LED hoạt động. Cuối cùng tôi còn tạo cả hình ảnh để làm hiệu ứng sọc cho website: https://github.com/victorqribeiro/oldTerminal đó là điều tốt nhất tôi có thể làm trên web mà không dùng canvas
    Có lẽ một ngày nào đó tôi sẽ thử lại bằng CSS hiện đại