CÔNG NGHỆ HEVC/H265 – CHUẨN NÉN VIDEO MỚI

 Trong những năm gần đây khi mà lĩnh vực công nghệ và truyền thông ngày càng phát triển. Cùng với sự phát triển mạnh của internet toàn cầu thì việc truyển tải và lưu trữ video cũng ngày càng trở nên phổ biến hơn. Cùng với đó chất lượng của phần cứng ngày càng được nâng cao và giá thành lại ngày càng hợp lí giúp cho việc tải hay trải nghiệm một chương trình, bộ phim ngày càng trở nên dễ dàng nhanh chóng và mượt mà hơn.


Tuy nhiên chỉ xem thôi thì chưa đủ, khi chất lượng cuộc sống ngày càng nâng cao kéo theo nhu cầu nghe nhìn vì đó cũng ngày càng khắt khe hơn. Nếu như vài năm trước việc thưởng thức một bộ phim ở độ phân giải 480p hay HD 720p đã đủ sức làm thỏa mãn người xem, thì giờ đây phim với độ phân giải Full HD 1080p đã trở nên quá đỗi bình thường. Và khi những màn hình 4K được cho ra đời với độ phân giải siêu cao gấp 4 lần Full HD thì nhu cầu trải nghiệm của người dùng cũng ngày càng thể hiện mạnh mẽ hơn và cũng ngày càng khắt khe hơn. Cùng với màn hình 4K, phim 4K cũng được cho ra đời mang đến cho người dùng những trải nghiệm cực kì ấn tượng, cực kì kinh ngạc với chất lượng hình ảnh siêu thực làm cho người xem như lạc vào một thế giới khác, thế giới 4K

Nhưng nói đi thì cũng nói lại, để có được những trải nghiệm tuyệt vời đó thì người dùng cũng sẽ phải đầu tư thêm chi phí cho việc nâng cấp các thiết bị lưu trữ cũng như đường truyền internet. Vì thế nhu cầu một chuẩn nén video mới hiệu quả hơn nhằm giảm tải áp lực cho hệ thống ngày càng bức thiết hơn. Và H265/HEVC đã được cho ra đời nhằm đáp ứng những nhu cầu trên.

Tổng quan về H265/HEVC :

H.265/HEVC là một chuẩn nén video hoàn toàn mới với tên gọi đầy đủ là High Efficiency Video Coding (HEVC) được Ủy ban Viễn thông Quốc tế ITU-T thông qua và bắt đầu được các nhà phát triển đưa vào sản phẩm thương mại. H.265 hứa hẹn mang lại khả năng nén cao gấp đôi so với người tiền nhiệm H.264/AVC (Advance Video Coding) hiện đang được dùng phổ biến khi chiếm tới 80% các nội dung video lưu trữ hiện nay.


[​IMG]
HEVC có tỷ lệ nén dữ liệu gấp đôi so với H.264/MPEG-4 AVC ở cùng một mức độ chất lượng video. Nói cách khác nó có thể được sử dụng để cung cấp chất lượng hình ảnh được cải thiện đáng kể khi xét cùng một bitrate . Nó có khả năng hỗ trợ 8K UHD (Ultra high definition television) và độ phân giải lên đến 8192x4320 (4320P)


H.265/HEVC cũng mang lại những cải tiến về âm thanh, không gian, màu sắc và quan trọng nhất nó có khả năng giám sát một phạm vi hoạt động nâng cao.


Với việc cho chất lượng hình ảnh tốt như H.264/AVC, đồng thời nó lại có khả năng nén tốt hơn rất nhiều so với H.264/AVC. Điều này được cho là rất quan trọng nếu chúng ta muốn trải nghiệm 4K / Ultra HD một cách dễ dàng nhất. Khả năng nén cao còn giúp giảm băng thông cần thiết để truyền tải phim, giảm dung lượng lưu trữ từ đó giúp chúng ta phải trả ít chí phí hơn cho băng thông internet cũng như chi phí bỏ ra để mua thiết bị lưu trữ. Ưu điểm vượt trội này cũng sẽ là cú hích cho thị trường thiết bị nghe nhìn 4K/UHD.


Về mặt lý thuyết H.265/HEVC được đánh giá là hiệu quả hơn H.264/AVC khoảng 30-50% . Ở độ phân giải càng cao, thì hiệu suất nén của H.265/HEVC càng cao. H.265/HEVC cơ bản có cấu trúc tương tự như các tiêu chuẩn trước đó như MPEG-2 và H.264/AVC.

Cả hai chuẩn mã hóa này đều dựa trên các kỹ thuật mã hóa video:
Phân vùng hình ảnh bằng các macroblock và sau đó lại phân vùng tiếp trong các khối này.

Giảm không gian dư thừa bằng cách sử dụng các kỹ thuật nén trong khung hình nội bộ.

Giảm sự dư thừa thời gian bằng sử dụng kỹ thuật nén liên khung (dự đoán chuyển động và bù đắp chuyển động).

Nén các dữ liệu dư thừa sử dụng các biến đổi toán học và lượng tử hóa.

Giảm dư thừa trong truyền vector chuyển động và tín hiệu sử dụng mã hóa entropy.

Entropy thông tin là một khái niệm mở rộng của entropy trong nhiệt động lực học và cơ học thống kê sang lĩnh vực lý thuyết thông tin. Entropy thông tin mô tả mức độ hỗn loạn trong một tín hiệu lấy từ một sự kiện ngẫu nhiên. Nói cách khác, entropy cũng chỉ ra có bao nhiêu thông tin trong tín hiệu, với thông tin là các phần không hỗn loạn ngẫu nhiên của tín hiệu.

Một chuỗi các khung hình từ video nguồn sẽ được mã hoá hoặc nén lại bởi bộ mã hoá H.265/HEVC, kết quả là tạo ra một bitstream video đã được nén. Bitstream đã nén này có thể được lưu trữ hoặc truyền đi. Sau đó một bộ giải mã video sẽ giải nén bitstream này thành một chuỗi các khung hình để có thể trình chiếu video.


[​IMG]

Cách mã hóa video trong H.264 và H.265​


Cùng với việc kế thừa từ H.264/AVC thì H.265/HEVC cũng có nhiều cải tiến mới như:

- Phân vùng (Partition) linh hoạt hơn, với kích cỡ từ lớn đến nhỏ


- Linh hoạt hơn trong các chế độ dự báo (prediction modes) và chuyển đổi kích thước khối (transform block)


- Bộ lọc nội suy và bộ lọc khử khối (interpolation and deblocking) tinh vi hơn


- Các chế độ dò tìm/dự báo và phát tín hiệu (prediction and signalling of modes), chuyển động của các vector (motion vectors) phức tạp hơn


Được trang bị tính năng hỗ trợ xử lý song song hiệu quả

Kết quả là HEVC cung cấp một tiêu chuẩn mã hoá video có khả năng nén tốt hơn giúp tăng khả năng xử lý hình ảnh.


[​IMG]

Cấu trúc của một bộ mã hóa và giải mã H.256/HEVC​


Cách thức hoạt động :



H.265/HEVC cũng như các chuẩn mã hóa video khác đều có những logic trong quá trình tìm ra phương thức nén sao cho hiệu quả nhất. Các video khi quay bằng các máy quay HD chuyên nghiệp có dung lượng rất lớn do dữ liệu ở dạng thô và vì vậy để truyền tải các nội dung này đến người xem là rất khó khăn. Để thuận tiện trong truyền tải và lưu trữ, các video này được nén bằng các phương thức nén khác nhau nhằm giảm dung lượng xuống mức tối đa.


Video nguồn bao gồm một chuỗi các khung hình video sẽ được mã hóa hay nén bởi một bộ mã hóa video để tạo ra bitstream video nén. Bitstream nén được lưu trữ hoặc truyền đi. Một bộ giải mã video giải nén bitstream để tạo ra một chuỗi các khung giải mã.


Các bước thực hiện bởi một bộ mã hóa video bao gồm:


- Phân vùng mỗi bức ảnh thành nhiều đơn vị


- Dự đoán mỗi đơn vị bằng cách sử dụng liên hoặc nội dự đoán, và trừ các dự đoán từ các đơn vị


- Chuyển đổi lượng tử còn sót lại (sự khác biệt giữa các đơn vị hình ảnh ban đầu và dự đoán)


- Entropy mã hóa các biến đổi đầu ra, thông tin dự báo, chế độ thông tin và các tiêu đề


Một bộ giải mã video sẽ đảo ngược các bước :


- Entropy giải mã và trích xuất các yếu tố của chuỗi mã


- Thay đổi tỉ lệ và đảo ngược giai đoạn chuyển đổi


- Dự đoán từng đơn vị và thêm các dự đoán cho đầu ra của nghịch đảo


- Xây dựng lại một hình ảnh video giải mã


H.265/HEVC hỗ trợ phân vùng của một chuỗi video liên tục rất linh hoạt. Mỗi khung hình video hoặc hình ảnh đã được mã hóa sẽ phân chia thành các Titles và Slices sau đó tiếp tục được phân chia thành Coding Tree Units (CTUs). CTU là đơn vị cơ bản của mã hóa, tương tự như các macroblock trong các tiêu chuẩn trước đó, và kích thước có thể lên đến 64×64 pixel. Một CTU có thể được chia thành các vùng ô vuông được gọi là Coding Units (CUS) sử dụng cấu trúc Quadtree.


[​IMG]



Dự đoán (Prediction)



Dự đoán là kỹ thuật chính tạo nên các phương pháp mã hóa video H.256/HEVC


Video đầu vào được chia ra thành các khối n x n pixel và được mã hóa trong các đơn vị khối này. Các khối đầu vào được mã hóa thành bit stream (dãy tín hiệu nhị phân bao gồm 0 và 1) thông qua các quá trình bao gồm dự đoán và trực giao biến đổi.


[​IMG]


Quy trình làm việc của hệ thống mã hóa video


Trong quá trình mã hóa khung hình tại thời điểm t, nếu khung hình thời điểm t-1 có những thành phần giống khung hình trước thì chỉ những khác biệt mới được gửi đi. Khi một đối tượng di chuyển từ bức hình của khung hình đầu đến khung hình tiếp theo, nó sẽ xác định một vector chuyển động và vector này được gửi đến bộ mã hóa để sử dụng trong dự đoán vị trí. Với các đối tượng không chuyển động, ví dụ như đám mây trong hình, sẽ không cần gửi đi vector chuyển động, đây gọi là dự đoán liên khung (inter-prediction). Nếu dự đoán được hoàn thành trong 1 khung hình thì được gọi là dự đoán nội bộ (intra-prediction)


[​IMG]

Dự đoán định hướng trong H.264 và H.265


Thay vì các macroblock 16x16 như trong H.264, H.265 phân vùng hình ảnh thành cây mã hóa (các CTB - ). Kích thước CTB có thể là 64x64, 32x32 hoặc 16x16, các nghiên cứu chỉ ra rằng CTB lớn giúp việc mã hóa có hiệu quả cao nhưng bên cạnh đó thời gian mã hóa cũng sẽ lớn. Bạn có thể tưởng tượng bạn có một file text 10GB, nếu chia file này thành 10 file kích thước 10GB, vậy khi nén 10 file này riêng lẻ thì hiệu quả nén sẽ không thể bằng nén riêng file 10GB nhưng cũng vì thế mà thời gian nén file 10GB sẽ lớn hơn tổng thời gian nén 10 file riêng lẻ.


Mỗi CTB có thể được phân chia một cách đệ quy trong một cấu trúc chia 4 bao gồm các khối nhỏ 32x32, 16x16 hoặc 8x8 gọi là đơn vị mã hóa vùng CU (xem hình minh họa dưới). CU là đơn vị cơ bản của các dự đoán trong HEVC, các đơn vị nhỏ được sử dụng trong các khu vực nhiều chi tiết như biên của một hình trong khi các đơn vị lớn được sử dụng trong các khu vực nội biên.


[​IMG]


Chuyển đổi và lượng tử



Bất kỳ dữ liệu dư còn lại sau khi dự đoán được chuyển đổi bằng phép biến đổi cosine rời rạc (DCT) hoặc phép biển đổi sin rời rạc (DST). Một hoặc nhiều khối biến đổi kích thước 32×32, 16×16, 8×8 và 4×4 được áp dụng cho dữ liệu còn lại trong mỗi CU.


Mã hóa en-trô-pi (hệ số nhiễu loạn)



Một bitstream HEVC được mã hóa bao gồm chuyển đổi hệ số lượng tử, thông tin dự đoán như chế độ dự báo và vectơ chuyển động, thông tin phân vùng và dữ liệu khác… Tất cả những yếu tố này được mã hóa bằng cách sử dụng mà hóa nhị phân số học (CABAC).


Chất lượng H.265/HEVC so với H.264/AVC



Hình bên dưới là một ví dụ so sánh H.265/HEVC và H.264/AVC đây là hai khung hình video ở độ phân giải HD 720p. Bên trái là sử dụng chuẩn nén H.264, bên phải sử dụng chuẩn nén H.265 với bitrate 420kbps. Có thể thấy chất lượng của video H.265 tốt hơn video H.264 khi các vùng màu thể hiện rõ ràng và sắc nét hơn, vùng tóc cũng thể hiện mượt mà hơn.


[​IMG]


So sánh H.264/AVC và H.265/HEVC

Thời gian tải video H.265 so với video H.264 với cùng một tốc độ mạng. Chúng ta có thể thấy rõ được video chuẩn nén H.265 lợi như nào.


[​IMG]


Kích thước file nén qua các thời kì :


[​IMG]


Nén video với H.265/HEVC :



Với những video ở dạng thô, có dung lượng lớn khi mà nén với H.264/AVC mà dung lượng vẫn còn cao. Hay bạn có muốn thử nghiệm một chuẩn nén mới, hãy thử dùng H.265/HEVC một lần bạn sẽ nhận thấy sự khác biệt.


H.265/HEVC hiện đã có khá nhiều phần mềm hỗ trợ khá tốt chuẩn nén này, tuy nhiên đa phần đều cần có bản quyền. Nếu muốn thử nghiệm H.265/HEVC miễn phí bạn có thể sử dụng MeGUI một phần mềm tuy miễn phí nhưng khá mạnh, được giới không chuyên đánh giá rất cao.


Để có thể sử dụng chuẩn nén video H.265/HEVC trên MeGUI ta phải cài thêm x265 là phần mềm chuyên mã hóa video theo chuẩn H.265/HEVC.


Sau khi cài đặt MeGUI ta vào option > update


Cửa sổ update hiện lên chọn mục x265 và update.



[​IMG]


Sau khi update, trong phần encoder settings ta sẽ thấy xuất hiện phần chọn x265 tích chọn vào đó


[​IMG]

Video nén được chọn ở đây là video có chất lượng 4K dung lượng 1.65 GiB, thời lượng 4mn 55s, bitrate 47.9 Mbps.


[​IMG]


Sau khi nén với H.264/AVC với việc giảm bitrate xuống còn 10Mbps và vẫn giữ nguyên chất lượng 4K có thể thấy dung lượng giảm một cách đáng kinh ngạc khi từ 1.65 GiB giờ chỉ còn 353 MiB tức là giảm hơn bốn lần so với dung lượng gốc.


[​IMG]


Còn với H.265/HEVC cũng giảm bitrate xuống còn 10Mpbs và vẫn giữ nguyên chất lượng 4K như khi nén bằng H.264/AVC thật ngạc nhiên khi sau khi nén bằng H.265/HEVC dung lượng giảm còn 353 MiB, bằng đúng dung lượng nén của H.264/AVC một sự ngạc nhiên khá lớn khi dung lượng video của hai chuẩn nén lại bằng nhau. Vậy còn chất lượng hình ảnh thì sao ?????


[​IMG]


Sau khi nén video thành công, giờ ta chuyển sang phần trải nghiệm đánh giá video được nén theo chuẩn H.265/HEVC. Vì là một chuẩn mới nên để có được trải nghiệm mượt mà nhất thì việc hỗ trợ từ phần cứng là một vấn đề khá quan trọng, đặc biệt là GPU khi chuẩn H.265/HEVC thay vì sử dụng CPU như thông thường thì nó lại ưu tiên sử dụng GPU do ưu điểm cấu hình cao, dung lượng bộ nhớ lớn nên sử dụng GPU giúp trải nghiêm video trở nên tốt hơn, hạn chế hiện tượng giật, tụt fps của video.


Vì thế để tối ưu hóa phần cứng trước hết ta nên kiểm tra xem GPU của mình có hỗ trợ H.265/HEVC hay không, ta sử dụng DXVA Checker để kiểm tra, trong cửa sổ Decoder Device nếu có hai dòng trong ô màu đỏ có ghi HEVC_VLD... thì tức là GPU này có hỗ trợ chuẩn H.265/HEVC và vì thế ta có thể sử dụng GPU thay vì CPU để thưởng thức các video được nén theo chuẩn H.265/HEVC.



Một điều cần lưu ý nữa là hiện chuẩn nén H.265/HEVC hiện chỉ được hỗ trợ trên dòng card đồ họa của NVDIA có vi kiến trúc Kepler và Maxwell. Tuy nhiên để chắc chắn card đồ họa của bạn có hỗ trợ H.265/HEVC hay không nên sử dụng DXVA Checker để kiểm tra cho ăn chắc nha. Và đặc biệt chuẩn nén này được hỗ trợ tối ưu nhất bởi card đồ họa NVIDIA GeForce GTX 960, nếu “chẳng may” bạn có trong tay card đồ họa GTX 960 vậy thì còn gì tuyệt vời bằng.


[​IMG]


Về phần mềm ta sử dụng K-lite Code Pack một phần mềm khá mạnh hỗ trợ gần như tất cả các định dạng video hiện có trong đó có cả H.265/HEVC. Sau khi tải về ta tiến hành cài đặt, đến cửa sổ Hardware Accleration trong ô Decoding Method ta chọn LAV Video – DXVA2 native, ô phía dưới tích chọn HEVC.


[​IMG]


Tiếp theo ở cửa sổ MPC-HC configuration, trong cửa sổ Video renderer chọn Enhanced Video Renderer. Sau đó tiếp tục chọn next đến kết thúc.


[​IMG]


Sau khi cài đặt xong K-lite Code Pack ta tiến hành đánh giá và so sánh hai video được nén bằng H.264/AVC và video nén bằng H.265/HEVC. Có thế thấy chất lượng của video sau khi nén bằng H.265/HEVC là tốt hơn so với video được nén bằng H.264/AVC khi các đầu ngón tay được thể hiện tốt hơn, hiện tượng vỡ hình, nhiễu hoàn toàn không đáng kể. Tất nhiên qua hình ảnh ta sẽ không thấy có sự khác biệt nhiều, tuy nhiên khi trải nghiệm trực tiếp hai video nén theo hai chuẩn này đặc biệt là trên một màn hình kích thước lớn thì ta sẽ thấy có một sự khác biệt không hề nhỏ.


[​IMG]


Để thấy sự khác biệt giữa H.264/AVC và H.265/HEVC các bạn có thể vào link này để xem :


http://gifyu.com/images/Untitled-228a39.gif



Thử nghiệm đánh giá trên card đồ họa NVIDIA GTX 750 Ti một card đồ họa cấu hình tầm trung nhưng trải nghiệm cũng khá mượt mà, khi chỉ ngốn khoảng 11% CPU còn lại đã chuyển sang sử dụng tới 63% GPU trải nghiệm khung hình khá ổn định tuy hiện tượng tụt FPS vẫn sảy ra nhưng không đáng kể.


[​IMG]


Với card đồ họa NVIDIA GTX 960 tầm trung mới được ra mắt và được tích hợp hàng loạt công nghệ mới nhất của NVIDIA một trong đó là H.265/HEVC và thật bất ngờ khi mà nó chỉ tiêu tốn 3.5% CPU, và trung bình khoảng 27% GPU con số thật ấn tượng, và đương nhiên trải nghiệm video cũng hoàn toàn mĩ mãn, gần như không có bất kì hiện tượng tụt FPS xảy ra.


[​IMG]


Tổng kết :


H.265/HEVC một chuẩn nén mới mang đến rất nhiều đột phá trong công nghệ nén dữ liệu, tuy vẫn chưa được phổ biến rộng nhưng chắc chắn rằng trong tương lai không xa không sớm thì muộn H.265/HEVC cũng sẽ trở thành kẻ thống trị. Và với những điểm mạnh hiện có cùng với những nâng cấp tiếp theo. Chắc chắn việc lưu trữ và trải nghiệm những thước phim, video chất lượng siêu cao ngay tại nhà sẽ không còn chỉ là niềm mơ ước nữa.


Vì công nghệ là không ngừng nghỉ, niềm mơ ước hiện tại của chúng ta chính là tương lai không xa của công nghệ.

Post a Comment

Mới hơn Cũ hơn