1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO NGHIÊN CỨU VỀ Định dạng video H.264 hoặc MPEG-4, Mã hóa Video Nâng cao (MPEG-4 AVC)

20 225 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 1,05 MB

Nội dung

BÁO CÁO NGHIÊN CỨU VỀ, Định dạng video H.264, hoặc MPEG-4, Mã hóa Video Nâng cao, (MPEG-4 AVC)

Trang 1

M c l c ục lục ục lục

Phần 1: Tìm hiểu về tiêu chuẩn nén video H264 2

I Giới thiệu chung về H264 2

II Tên gọi 2

III Lịch sử 3

IV Các ứng dụng 4

V Tính năng của H264 5

Phần 2: Tìm hiểu về FFMPEG 7

I Giới thiệu tổng quát 7

II Lịch sự hình thành và phát triển 7

III Các thành phần 8

IV Các định dạng và code được hỗ trợ 9

V Các dự án sử dụng FFMPEG 11

Phần 3 Tìm hiểu về OpenCV 12

I Giới thiệu tổng quát 12

II Lịch sử hình thành và phát triển 12

III Các ứng dụng 13

IV Ngôn ngữ lập trình 14

V Hỗ trợ hệ điều hành 14

Phần 4 Kết quả nghiên cứu 15

I Nội dung tìm hiểu 15

II Ngôn ngữ và công nghệ 15

III Quá trình và kết quả thu được 15

Phần 5: Những hạn chế và định hướng trong tương lai 16

I Những hạn chế 16

II Định hướng tương lai 16

Phần 6: Lời cảm ơn 16

Phần 7: Tài liệu tham khảo 17

Trang 2

Phần 1: Tìm hiểu về tiêu chuẩn nén video H264

I Giới thiệu chung về H264

H.264 hoặc MPEG-4, Mã hóa Video Nâng cao (MPEG-4 AVC) là tiêu chuẩn nén video dựa trên chuyển động dựa trên khối Tính đến năm 2014, nó là một trong những định dạng phổ biến nhất được sử dụng để ghi, nén và phân phối nội dung video [1] Nó hỗ trợ độ phân giải lên đến 8192 ×

4320, bao gồm 8K UHD

Mục đích của dự án H.264 / AVC là tạo ra một tiêu chuẩn có khả năng cung cấp chất lượng video tốt với tốc độ bit thấp hơn đáng kể so với các tiêu chuẩn trước Chuẩn H.264 có thể được xem như là một "họ tiêu chuẩn" bao gồm một số cấu hình khác nhau Một bộ giải mã cụ thể giải

mã ít nhất một, nhưng không nhất thiết phải tất cả các cấu hình Đặc tả bộ giải mã mô tả cấu hình nào có thể được giải mã H.264 thường được sử dụng để nén mất dữ liệu, mặc dù cũng có thể tạo các vùng mã hóa không bị mất dữ liệu trong các hình ảnh được mã hóa bị mất hoặc hỗ trợ các trường hợp hiếm khi sử dụng mà toàn bộ mã hóa không bị mất

H.264 được phát triển bởi nhóm chuyên gia mã hóa video (VCEG) của ITU-T cùng với nhóm chuyên gia hình ảnh chuyển động ISO / IEC JTC1 (MPEG) Nỗ lực hợp tác dự án được gọi là Nhóm Video chung (JVT) Chuẩn ITU-T H.264 và chuẩn ISO / IEC MPEG-4 AVC (chính thức, ISO / IEC 14496-10 - MPEG-4 Phần 10, Mã hóa Video Nâng cao) được duy trì cùng nhau để chúng có nội dung kỹ thuật giống hệt nhau Công việc soạn thảo cuối cùng trên phiên bản đầu tiên của tiêu chuẩn đã được hoàn thành vào tháng 5 năm 2003, và các phần mở rộng của các khả năng của nó đã được thêm vào trong các phiên bản tiếp theo Mã hóa Video hiệu quả cao

(HEVC), H.264 và MPEG-H Phần 2 là sự kế thừa cho H.264 / MPEG-4 AVC được phát triển bởi cùng một tổ chức, trong khi các tiêu chuẩn trước đó vẫn được sử dụng phổ biến

II Tên gọi

Tên H.264 tuân theo quy ước đặt tên ITU-T, trong đó tiêu chuẩn là thành phần của dòng tiêu chuẩn mã hóa video VCG H.26x; tên AVC MPEG-4 liên quan đến quy ước đặt tên trong ISO / IEC MPEG, trong đó tiêu chuẩn là phần 10 của ISO / IEC 14496, là bộ tiêu chuẩn được gọi là MPEG-4 Tiêu chuẩn này được phát triển cùng với sự hợp tác của VCEG và MPEG, sau khi công việc phát triển trước đó trong ITU-T như một dự án VCEG được gọi là H.26L Nó là như

Trang 3

vậy phổ biến để tham khảo các tiêu chuẩn với các tên như H.264 / AVC, AVC / H.264, H.264 / MPEG-4 AVC, hoặc MPEG-4 / H.264 AVC, để nhấn mạnh di sản chung Thỉnh thoảng, nó còn được gọi là "bộ giải mã JVT", tham chiếu đến tổ chức Joint Video Team (JVT) đã phát triển nó

Ví dụ, tiêu chuẩn nén video được gọi là MPEG-2 cũng xuất phát từ sự hợp tác giữa MPEG và ITU-T, trong đó video MPEG-2 được cộng đồng ITU-T biết đến là H 262 [4]) Một số chương trình phần mềm (như trình phát media VLC) xác định nội bộ tiêu chuẩn này là AVC1

III Lịch sử

Vào tháng 12 năm 2001, VCEG và Nhóm chuyên gia hình ảnh chuyển động (MPEG - ISO / IEC JTC 1 / SC 29 / WG 11) đã thành lập một Nhóm Video chung (JVT), với điều lệ để hoàn thành tiêu chuẩn mã hóa video Sự chấp thuận chính thức của đặc tả này được đưa ra vào tháng 3 năm

2003 JVT là (được) chủ trì bởi Gary Sullivan, Thomas Wiegand và Ajay Luthra (Motorola, Mỹ: sau này là Arris, Hoa Kỳ) Vào tháng 6 năm 2004, dự án Fidelity range extensions (FRExt) đã được hoàn thành Từ tháng 1 năm 2005 đến tháng 11 năm 2007, JVT đã làm việc trên một phần

mở rộng của H.264 / AVC theo hướng mở rộng bởi một Phụ lục (G) được gọi là Mã hóa Video

có thể mở rộng (SVC) Nhóm quản lý JVT đã được mở rộng bởi Jens-Rainer Ohm (Đại học Aachen, Đức) Từ tháng 7 năm 2006 đến tháng 11 năm 2009, JVT đã làm việc trên Mã hóa Video Multiview (MVC), một phần mở rộng của H.264 / AVC đối với truyền hình xem và truyền hình 3D miễn phí Công việc đó bao gồm sự phát triển của hai cấu hình mới của tiêu chuẩn: Cấu hình cao Multiview và Cấu hình cao âm thanh nổi

Việc chuẩn hóa phiên bản đầu tiên của H.264 / AVC được hoàn thành vào tháng 5 năm 2003 Trong dự án đầu tiên mở rộng tiêu chuẩn ban đầu, JVT sau đó đã phát triển cái được gọi là Fidelity Range Extensions (FRExt) Các phần mở rộng này cho phép mã hóa video chất lượng cao hơn bằng cách hỗ trợ độ chính xác độ sâu bit mẫu và thông tin màu độ phân giải cao hơn, bao gồm các cấu trúc lấy mẫu được gọi là Y'CbCr 4: 2: 2 (= YUV 4: 2: 2) và Y'CbCr 4: 4 :4 Một số tính năng khác cũng được bao gồm trong dự án Fidelity Range Extensions, chẳng hạn như chuyển đổi thích ứng giữa các biến đổi số nguyên 4 × 4 và 8 × 8, ma trận trọng số dựa trên tri thức được mã hóa dựa trên cảm xúc, mã hóa lossless liên tiếp hiệu quả và hỗ trợ màu bổ sung không gian Công việc thiết kế trên Fidelity Range Extensions đã được hoàn thành vào tháng 7 năm 2004, và công việc soạn thảo chúng được hoàn thành vào tháng 9 năm 2004

Trang 4

IV Các ứng dụng

Định dạng video H.264 có phạm vi ứng dụng rất rộng bao gồm tất cả các dạng nén video kỹ thuật số từ các ứng dụng phát trực tuyến tốc độ bit thấp tới HDTV và các ứng dụng Cinema Digital với mã hóa gần như không bị mất Với việc sử dụng H.264, tỷ lệ tiết kiệm bit từ 50% trở lên so với MPEG-2 Phần 2 được báo cáo Ví dụ, H.264 đã được báo cáo để cung cấp cho cùng một chất lượng truyền hình vệ tinh kỹ thuật số như hiện tại MPEG-2 triển khai với ít hơn một nửa tốc độ bit, với hiện tại MPEG-2 triển khai làm việc ở khoảng 3,5 Mbit / s và H.264 chỉ 1,5 Mbit / s [23] Sony tuyên bố rằng chế độ ghi AVC 9 Mbit / s tương đương với chất lượng hình ảnh của định dạng HDV, sử dụng khoảng 18-25 Mbit / s

Trang 6

V Tính năng của H264

H.264 / AVC / MPEG-4 Phần 10 chứa một số tính năng mới cho phép nó nén video hiệu quả hơn nhiều so với các chuẩn cũ hơn và cung cấp sự linh hoạt hơn cho ứng dụng cho nhiều môi trường mạng khác nhau Đặc biệt, một số tính năng chính như vậy bao gồm:

- Dự đoán nhiều hình ảnh liên tiếp

- Dự đoán không gian từ các cạnh của các khối lân cận cho mã hóa "bên trong", chứ không phải

là dự đoán "DC" được tìm thấy trong MPEG-2 Phần 2 và dự đoán hệ số biến đổi được tìm thấy trong H.263v2 và MPEG-4 Phần 2 Điều này bao gồm luma kích thước khối dự đoán là 16 × 16,

8 × 8 và 4 × 4 (trong đó chỉ có một loại có thể được sử dụng trong mỗi macroblock)

- Tính năng mã hóa macroblock lossless

- Tính năng mã hóa video quét xen kẽ linh hoạt

- Tính năng thiết kế biến đổi mới

- Thiết kế lượng tử hóa

- Bộ lọc gỡ lỗi trong vòng giúp ngăn chặn các hiện vật bị chặn phổ biến với các kỹ thuật nén hình ảnh dựa trên DCT khác, dẫn đến hình ảnh trực quan và hiệu quả nén tốt hơn

- Thiết kế mã hóa entropy

- Tính năng phục hồi dữ liệu đã mất đi

- Một quy trình tự động đơn giản để ngăn chặn việc mô phỏng ngẫu nhiên các mã khởi đầu, là các chuỗi đặc biệt của dữ liệu được mã hóa cho phép truy cập ngẫu nhiên vào bitstream và khôi phục liên kết byte trong các hệ thống có thể mất đồng bộ hóa byte

- Hình ảnh phụ trợ, có thể được sử dụng cho các mục đích như tổng hợp alpha

- Hỗ trợ đơn sắc (4: 0: 0), 4: 2: 0, 4: 2: 2 và 4: 4: 4 lấy mẫu màu

- Hỗ trợ độ chính xác độ sâu bit mẫu từ 8 đến 14 bit cho mỗi mẫu

Trang 7

- Khả năng mã hóa các mặt phẳng màu riêng biệt thành hình ảnh riêng biệt với cấu trúc lát riêng, chế độ macroblock, vectơ chuyển động, v.v., cho phép các bộ mã hóa được thiết kế với cấu trúc song song đơn giản

- Số thứ tự hình ảnh, một tính năng nhằm giữ trật tự của hình ảnh và giá trị mẫu trong hình ảnh

đã giải mã được tách biệt với thông tin thời gian, cho phép thông tin định thời được điều khiển

và thay đổi riêng biệt bởi hệ thống mà không ảnh hưởng đến nội dung hình ảnh đã giải mã Những kỹ thuật này, cùng với nhiều kỹ thuật khác, giúp H.264 hoạt động tốt hơn đáng kể so với bất kỳ tiêu chuẩn nào trước đây trong nhiều trường hợp khác nhau trong nhiều môi trường ứng dụng khác nhau H.264 thường có thể thực hiện hoàn toàn tốt hơn so với video MPEG-2 — thường có cùng chất lượng ở một nửa tốc độ bit hoặc ít hơn, đặc biệt là ở tốc độ bit cao và các tình huống có độ phân giải cao

Trang 8

Phần 2: Tìm hiểu về FFMPEG

I Giới thiệu tổng quát

- FFmpeg là một dự án phần mềm tự do , sản phẩm trong đó là một bộ phần mềm rộng lớn gồm các thư viện và chương trình để xử lý video, âm thanh và các tập tin đa phương tiện và luồng khác

- Chính cốt lõi của nó là chương trình FFmpeg, được thiết kế để xử lý các tệp video và âm thanh dựa trên dòng lệnh , được sử dụng rộng rãi để chuyển mã định dạng , chỉnh sửa cơ bản (cắt

và nối ), chia tỷ lệ video , hiệu ứng hậu sản xuất video và tuân thủ các tiêu chuẩn

( SMPTE , ITU )

- FFmpeg bao gồm libavcodec , codec âm thanh / videothư viện được sử dụng bởi nhiều sản phẩm phần mềm thương mại và miễn phí, libavformat (Lavf), thư viện chứa dữ liệu âm thanh / video và thư viện demux và chương trình dòng lệnh ffmpeg lõi để chuyển mã các tệp đa phương tiện FFmpeg được xuất bản theo Giấy phép Công cộng Ít hơn GNU 2.1+ hoặc Giấy phép Công cộng GNU 2+ (tùy thuộc vào tùy chọn nào được bật)

II Lịch sự hình thành và phát triển

- Dự án được bắt đầu bởi Fabrice Bellard (sử dụng bút danh "Gérard Lantau") vào năm 2000, và được dẫn dắt bởi Michael Niedermayer từ năm 2004 đến năm 2015 Một số nhà phát triển FFmpeg cũng là một phần của dự án MPlayer

- Hai định dạng mã hóa video với các codec tương ứng và một định dạng container đã được tạo trong dự án FFmpeg cho đến nay Hai codec video là FFV1 không mất mát và codec Snow lossless và mất dữ liệu Sự phát triển của Snow đã bị đình trệ, trong khi định dạng luồng bit của

nó vẫn chưa được hoàn thiện, làm cho nó thử nghiệm từ năm 2011 Định dạng container đa phương tiện có tên NUT không còn được phát triển tích cực nữa, nhưng vẫn được duy trì

- Vào tháng 10 năm 2013, một VP9 nguyên gốc và bộ giải mã OpenHEVC, bộ giải mã mã hóa video hiệu quả cao (HEVC) mã nguồn mở , đã được thêm vào FFmpeg Vào năm 2016, bộ mã hóa AACgốc được coi là ổn định, loại bỏ hỗ trợ cho hai bộ mã hóa AAC bên ngoài

Trang 9

từ VisualOn và FAAC FFmpeg 3.0 (biệt hiệu "Einstein"  ) vẫn giữ lại hỗ trợ xây dựng cho bộ mã

hóa Fraunhofer FDK AAC

III Các thành phần

 Công cụ dòng lệnh

- ffmpeg là một công cụ dòng lệnh chuyển đổi các định dạng âm thanh hoặc video Nó cũng có

thể nắm bắt và mã hóa trong thời gian thực từ các nguồn phần cứng và phần mềm khác nhau như thẻ chụp TV

- ffplay là một trình chơi nhạc đơn giản sử dụng SDL và các thư viện FFmpeg.

- ffprobe là một công cụ dòng lệnh để hiển thị thông tin phương tiện (văn

bản, CSV , XML , JSON )

 Thư viện

- libswresample là một thư viện chứa các thói quen lấy lại âm thanh

Trang 10

- libavresample là một thư viện chứa các thường trình lấy lại âm thanh từ dự án Libav , tương tự như libswresample từ ffmpeg

- libavcodec là một thư viện chứa tất cả các bộ mã hóa và giải mã âm thanh / video gốc của

FFmpeg Hầu hết các codec được phát triển từ đầu để đảm bảo hiệu năng tốt nhất và khả năng sử dụng lại mã cao

- libavformat (Lavf) là một thư viện chứa các demuxers và muxers cho các định dạng container

audio / video

- libavutil là một thư viện trợ giúp chứa các thường trình chung cho các phần khác nhau của

FFmpeg Thư viện này bao gồm các hàm băm ( Adler-32 , CRC , MD5 , RIPEMD ,

SHA-1 SHA-2 , MurmurHash3, HMAC MD-5, HMAC SHA-SHA-1 và HMAC SHA-2), mật mã

( DES , RC4 , AES , AES-CTR, TEA , XTEA , Blowfish ,

CAST-128 , Twofish và Camellia ), bộ giải nén LZO và Base64 bộ mã hóa / giải mã

- libpostproc là một thư viện chứa các thói quen xử lý hậu kỳ video dựa trên h263 cũ hơn

- libswscale là một thư viện chứa các quy trình chuyển đổi hình ảnh video và không gian màu /

pixelformat

- libavfilter là phần thay thế cho vhook, cho phép chỉnh sửa hoặc kiểm tra video / audio giữa bộ

giải mã và bộ mã hóa Các bộ lọc đã được chuyển từ nhiều dự án bao gồm MPlayer và

phần mềm thứ bảy

IV Các định dạng và code được hỗ trợ

 Định dạng hình ảnh

Các Định dạng hình ảnh PGMYUV là một biến thể homebrewn của định

dạng PGP Netpbm nhị phân (P5) FFmpeg cũng hỗ trợ độ sâu 16 bit của các định dạng

PGM và PPM và định dạng PAM nhị phân (P7) có hoặc không có kênh alpha, độ sâu 8

bit hoặc 16 bit cho pix_fmts monob, xám, gray16be, rgb24, rgb48be, ya8, rgba,

rgb64be

Trang 11

 Muxers

Định dạng đầu ra (định dạng vùng chứa và các cách tạo luồng đầu ra) khác trong FFmpeg được gọi là "muxers"

- AIFF

- ASF

- FLV

- GIF

- IFF

 Định dạng pixel

FFmpeg hỗ trợ nhiều định dạng pixel Một số định dạng này chỉ được hỗ trợ dưới dạng định dạng đầu vào Lệnh ffmpeg -pix_fmts này cung cấp một danh sách các định dạng pixel được hỗ trợ

Trang 12

V Các dự án sử dụng FFMPEG

- FFmpeg được sử dụng bởi phần mềm như VLC media player , xine , Plex , Kodi , Máy xay sinh tố , YouTube , và MPC-HC ; nó xử lý phát lại video và âm thanh trong Google Chrome , và phiên bản Linux của Firefox

- Giao diện người dùng đồ họa front-end cho FFmpeg đã được phát triển, bao gồm

Avanti, XMedia Recode và Multimedia Xpert JavaCV, một trình bao bọc Java cho OpenCV, bao gồm một trình bao bọc Java bổ sung cho FFmpeg

- FFmpeg được sử dụng bởi ffdshow , LAV Filters, GStreamer FFmpeg

plug-in , Perian và OpenMAX IL để mở rộng khả năng mã hóa và giải mã của nền tảng đa phương tiện tương ứng

Trang 13

Phần 3 Tìm hiểu về OpenCV

I Giới thiệu tổng quát

OpenCV ( Open Source Computer Vision ) là một thư viện các chức năng lập trình chủ yếu

nhằm vào tầm nhìn máy tính thời gian thực Ban đầu được phát triển bởi Intel , sau đó nó được

hỗ trợ bởi Willow Garage sau đó Itseez (sau này được Intel mua lại) Thư viện là đa nền tảng và miễn phí để sử dụng theo giấy phép BSD nguồn mở

II Lịch sử hình thành và phát triển

- Chính thức ra mắt vào năm 1999, dự án OpenCV ban đầu là một sáng kiến nghiên cứu của Intel để ứng dụng CPU tiên tiến , một phần của một loạt các dự án bao gồm dò tìm tia thời gian thực và tường hiển thị 3D Những người đóng góp chính cho dự án bao gồm một số chuyên gia tối ưu hóa ở Intel Nga, cũng như Nhóm Thư viện hiệu năng của Intel

- Phiên bản alpha đầu tiên của OpenCV được phát hành cho công chúng tại Hội nghị IEEE về Tầm nhìn máy tính và Nhận dạng mẫu vào năm 2000 và năm phiên bản beta được phát hành từ năm 2001 đến 2005 Phiên bản 1.0 đầu tiên được phát hành vào năm 2006 Phiên bản 1.1 trước

"được phát hành vào tháng 10 năm 2008

- OpenCV 2 bao gồm các thay đổi lớn đối với giao diện C ++ , nhằm dễ dàng hơn, nhiều kiểu an toàn hơn, các chức năng mới và triển khai tốt hơn cho các phiên bản hiện có về hiệu năng (đặc biệt là trên đa hệ thống cốt lõi) Các bản phát hành chính thức hiện nay diễn ra sau sáu tháng và

sự phát triển hiện được thực hiện bởi một nhóm người Nga độc lập được các tập đoàn thương mại hỗ trợ

- Vào tháng 8 năm 2012, hỗ trợ cho OpenCV đã được tổ chức phi lợi nhuận OpenCV.org tiếp quản, duy trì một nhà phát triển [7] và trang web của người dùng

- Vào tháng 5 năm 2016, Intel đã ký thỏa thuận mua lại Itseez, nhà phát triển hàng đầu của OpenCV

Ngày đăng: 28/09/2019, 09:49

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w