Tải bản đầy đủ (.docx) (19 trang)

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)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (855.17 KB, 19 trang )

Mục lục

1

Dương Thái Chi – 1533659 – 59PM1


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ư
2

Dương Thái Chi – 1533659 – 59PM1


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.

3

Dương Thái Chi – 1533659 – 59PM1


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.

4

Dương Thái Chi – 1533659 – 59PM1


5


Dương Thái Chi – 1533659 – 59PM1


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

6


Dương Thái Chi – 1533659 – 59PM1


- 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.

7

Dương Thái Chi – 1533659 – 59PM1


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

8

Dương Thái Chi – 1533659 – 59PM1


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 .
9

Dương Thái Chi – 1533659 – 59PM1


- 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 , SHA1 . SHA-2 , MurmurHash3, HMAC MD-5, HMAC SHA-1 và HMAC SHA-2), mật mã
( DES , RC4 , AES , AES-CTR, TEA , XTEA , Blowfish , CAST128 , 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 .

10

Dương Thái Chi – 1533659 – 59PM1


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_fmtsnày cung cấp một danh sách các định dạng
pixel được hỗ trợ.


11

Dương Thái Chi – 1533659 – 59PM1


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 plugin , 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.

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.
12

Dương Thái Chi – 1533659 – 59PM1


- 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.
III. Các ứng dụng
Các lĩnh vực ứng dụng của OpenCV:
- Bộ công cụ tính năng 2D và 3D
- Ước tính egomotion
- Tính toán nhận diện khuôn mặt
- Công nhận cử chỉ
- Robot di động
- Nhận diện đối tượng
- Theo dõi chuyển động

13

Dương Thái Chi – 1533659 – 59PM1



IV. Ngôn ngữ lập trình
- OpenCV được viết bằng C ++ và giao diện chính của nó là trong C ++, nhưng nó vẫn giữ lại
một giao diện C cũ hơn . Có các ràng buộc trong Python , Java và MATLAB / OCTAVE . Bạn có
thể tìm thấy API cho các giao diện này trong tài liệu trực tuyến. bọc bằng các ngôn ngữ khác
như C # , Perl , Ch , Haskell và Ruby đã được phát triển để khuyến khích sự chấp nhận của một
đối tượng rộng lớn hơn.
- Tất cả các phát triển và thuật toán mới trong OpenCV hiện được phát triển trong giao diện C +
+.

14

Dương Thái Chi – 1533659 – 59PM1


V. Hỗ trợ hệ điều hành
- OpenCV chạy trên các hệ điều hành máy tính để bàn sau: Windows, Linux, MacOS, FreeBSD,
NetBSD, OpenBSD.
- OpenCV chạy trên các hệ điều hành di động sau: Android , iOS , Maemo , BlackBerry 10 .
- Người dùng có thể nhận các bản phát hành chính thức từ SourceForge hoặc lấy các nguồn mới
nhất từ GitHub .
- OpenCV sử dụng CMake .

Phần 4. Kết quả nghiên cứu
Trong quá trình nghiên cứu, tôi đã tìm hiểu về Saliency và chạy thử một chương trình về
Saliency detection.
I. Nội dung tìm hiểu
- Saliency là những gì nổi bật và làm thế nào chúng ta có thể nhanh chóng tập trung vào các phần
có liên quan nhất của những gì bạn nhìn thấy.
- Ở phần nghiên cứu này, tôi sẽ chạy chương trình để nhận dạng vật thể nổi bật.
II. Ngôn ngữ và công nghệ

- Chương trình được viết bằng ngôn ngữ C++
- Dùng OpenCV để nhận dạng hình ảnh
III. Quá trình và kết quả thu được
B1: Add thư viện OpenCV vào biến môi trường và vào trong project.
B2: Truyền file ảnh gốc vào
B3: Thực hiện các câu lệnh và cho ra đầu ra
15

Dương Thái Chi – 1533659 – 59PM1


img = imread("dhxd1.jpg");
GMRsaliency GMRsal;
sal = GMRsal.GetSal(img);
imwrite("out2.jpg", sal * 255);
nTimeStop = clock();
cout <<"the average running time:"<<(double)(nTimeStop - nTimeStart)/CLOCKS_PER_SEC/
(count-1)<<"seconds"<< endl;
 Kết quả

16

Dương Thái Chi – 1533659 – 59PM1


Phần 5: Những hạn chế và định hướng trong tương lai
I. Những hạn chế
- Mới chỉ tìm hiểu nghiên cứu về mức cơ bản và lý thuyết
- Chưa có sản phẩm của riêng bản thân
II. Định hướng tương lai

- Dựa trên kiến thức nền tảng về H264, FFMPEG, OpenCV đã nghiên cứu, tôi sẽ làm ra sản
phẩm của riêng mình. Vừa để phục vụ cho đồ án tốt nghiệp và mong sản phẩm của mình được
nhiều người sử dụng.

17

Dương Thái Chi – 1533659 – 59PM1


Phần 6: Lời cảm ơn
- Trong quá trình thực tập tại trường tôi đã đã nhận được sự giúp đỡ tận tình từ phía thầy cô giáo
trong trường.
- Tôi xin gửi lời cảm ơn chân thành đến thầy Nguyễn Đình Anh đã hướng dẫn và đưa ra đề tài để
tôi có thể hoàn thành thực tập này.

Phần 7: Tài liệu tham khảo
Phần lớn kiến thức đều lấy từ các trang web:
- Lý thuyết về H264: />- Lý thuyết về FFMPEG: và />- Lý thuyết và thư viện của OpenCV: và
/>
18

Dương Thái Chi – 1533659 – 59PM1


19

Dương Thái Chi – 1533659 – 59PM1




×