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

Nghiên cứu ứng dụng các hệ mật mã hạng nhẹ trong bảo mật dữ liệu video thời gian thực

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 (1.09 MB, 67 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

NGUYỄN HOÀNG TIẾN

NGHIÊN CỨU ỨNG DỤNG CÁC HỆ MẬT MÃ HẠNG NHẸ
TRONG BẢO MẬT DỮ LIỆU VIDEO THỜI GIAN THỰC

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

HÀ NỘI - 2019


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

NGUYỄN HOÀNG TIẾN

NGHIÊN CỨU ỨNG DỤNG CÁC HỆ MẬT MÃ HẠNG NHẸ
TRONG BẢO MẬT DỮ LIỆU VIDEO THỜI GIAN THỰC

Chuyên ngành: Hệ thống thông tin
Mã số: 8.48.01.04

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

NGƯỜI HƯỚNG DẪN KHOA HỌC:
GS.TS. NGUYỄN BÌNH


HÀ NỘI - 2019


i

LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được công
bố trong bất kỳ công trình nào khác.
Hà Nội, tháng năm
Tác giả luận văn

Nguyễn Hoàng Tiến


ii

LỜI CẢM ƠN
Tôi xin trân trọng cảm ơn các thầy cô trong Khoa công nghệ thông tin đã tạo
điều kiện cho tôi một môi trường học tập tốt, đồng thời truyền đạt cho tôi một vốn
kiến thức quý báu, một tư duy khoa học để phục vụ cho quá trình học tập và công
tác của tôi.
Tôi xin gửi lời cảm ơn đến các bạn trong lớp Cao học Hệ thống thông tin
M17CQIS01-B khóa 2017- 2019 đã giúp đỡ tôi trong suốt thời gian học tập vừa qua.
Đặc biệt, tôi xin được bày tỏ lòng biết ơn sâu sắc đến người hướng dẫn khoa
học của tôi GS.TS. NGUYỄN BÌNH và TS. CAO MINH THẮNG đã tận tình chỉ
bảo cho tôi trong suốt quá trình học tập và nghiên cứu, giúp tôi có nhận thức đúng
đắn về kiến thức khoa học, tác phong học tập và làm việc, tạo điều kiện thuận lợi để
tôi hoàn thành luận văn này.
Cuối cùng, tôi xin được gửi lời cảm ơn tới gia đình, đồng nghiệp, người thân

đã động viên, giúp đỡ tôi trong quá trình hoàn thành luận văn.
Hà Nội, tháng năm
Tác giả luận văn

Nguyễn Hoàng Tiến


iii

MỤC LỤC
LỜI CAM ĐOAN .......................................................................................................
LỜI CẢM ƠN ............................................................................................................
MỤC LỤC

................

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ................................................
DANH MỤC BẢNG BIỂU ......................................................................................
DANH MỤC HÌNH VẼ ...........................................................................................
MỞ ĐẦU .....................................................................................................................
CHƯƠNG 1 - TỔNG QUAN VỀ BẢO MẬT DỮ LIỆU VIDEO THỜI GIAN
THỰC.

...............................................................

1.1 Quá trình truyền dòng của dữ liệu video thời gian thực ................................

1.1.1 Tổng quan
1.1.2 Quá trình
1.2 Các giao thức streaming chuyên biệt ...........................................................


1.2.1 Giao thức

1.2.2 Giao thức

1.2.3 Giao thức
1.3 Chuẩn nén video H264 ................................................................................

1.3.1 Tổng qua

1.3.2 Cơ chế ho
1.4

Giải pháp bảo mật dữ liệu video thời

học

21

1.4.1 Mật mã k

1.4.2 Mật mã k
1.4.3 Phân tích
CHƯƠNG 2 - Nghiên cứu đề xuất ứng dụng các hệ mật hạng nhẹ vào dữ liệu video
thời gian thực.............................................................................................................
2.1 Một số hệ mật mã khối hạng nhẹ phổ biến ..................................................
2.1.1 Phân loại hệ mật mã khối hạng nhẹ ......................................................


iv


2.1.2Hệ mật AE

2.1.3Hệ mật E-R
2.2

Phương pháp mã hóa chọn lọc trên H264 ..

2.2.1Mã hóa trư

2.2.2Mã hóa tro

2.2.3Mã hóa sau
2.3

Đề xuất phương pháp ứng dụng hệ mật hạn

thời gian thực.........................................................................................................
2.3.1Đặt vấn đề

2.3.2Thủ tục mã

2.3.3Thủ tục giả

2.3.4Phân tích h
CHƯƠNG 3 - CÀI ĐẶT VÀ THỬ NGHIỆM ..........................................................
3.1

Xây dựng kịch bản thử nghiệm. .................


3.2

Xây dựng chương trình ..............................

3.2.1Xây dựng m

3.2.2Xây dựng p
3.3

Thử nghiệm, đánh giá kết quả ....................

3.3.1Thử nghiệm

3.3.2Đánh giá ..
KẾT LUẬN VÀ KIẾN NGHỊ...................................................................................
DANH MỤC TÀI LIỆU THAM KHẢO ..................................................................


v

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt
AES
AVC
E-RISKE
IP
IPTV
NAL
SE
VCL



vi

DANH MỤC BẢNG BIỂU
Bảng 1.1. Loại Slice……………………………………………………………… 18
Bảng 1.2. Tiêu đề Macroblock…………………………………………………….. 19

Bảng 2.1. Cấu trúc đại số nền tảng của hệ mật E-RISKE................................................... 30


vii

DANH MỤC HÌNH VẼ
Hình 1.1. Quá trình truyền đòng video
Hình 1.2. Cấu trúc NAL
Hình 1.3. Các bước trao đổi trong 1 phiên streaming media
Hình 1.4. Bộ mã hóa H264
Hình 1.5. Bộ giải mã H264
Hình 1.6. Cấu trúc H264
Hình 1.7. Minh họa Slice trong 1 khung hình
Hình 1.8. Minh họa ví trị Macroblock trong Slice
Hình 1.9. Ảnh tham chiếu và bù chuyển động
Hình 1.10. Các Profile trong H264
Hình 2.1: Sơ đồ tổng quan mã hóa và giải mã
Hình 2.2. Phân tích tiêu đề NAL H264
Hình 2.3. Sơ đồ xử lý dữ liệu máy chủ
Hình 2.4. Sơ đồ xử lý dữ liệu máy khách
Hình 3.1. Mô hình thử nghiệm Client – Server
Hình 3.2. Sơ đồ cấu trúc máy chủ RTSP

Hình 3.3. Sơ đồ hoạt động chương trình máy khách
Hình 3.4. Khởi động máy chủ phát dữ liệu
Hình 3.5. Khởi động chương trình máy khách thí nghiệm
Hình 3.6. Hình ảnh thử nghiệm 1
Hình 3.7. Biểu đồ kết quả thử nghiệm 1
Hình 3.8. Hình ảnh thử nghiệm 2
Hình 3.9. Biểu đồ kết quả thử nghiệm 3
Hình 3.10. Hình ảnh thử nghiệm 3
Hình 3.11. Biểu đồ kết quả thử nghiệm 2
Hình 3.12. Hình ảnh thử nghiệm 3
Hình 3.13. Biểu đồ kết quả thử nghiệm 4
Hình 3.14. Hình ảnh thử nghiệm 5


viii

Hình 3.15.

Kết quả thí ng

Hình 3.16.

Biểu đồ tổng


1

MỞ ĐẦU
Ngày nay với sự phát triển nhanh của công nghệ thông tin và mạng Internet,
việc sử dụng các dịch vụ từ dữ liệu video thời gian thực ngày càng trở lên phổ biến,

cho phép xem hình ảnh có âm thanh từ xa qua Internet theo thời gian gần như thực.
Dữ liệu thời gian thực tồn tại dùng trong rất nhiều ứng dụng cuộc sống, có thể thấy
như kênh truyền hình trực tiếp, các kênh livestream, thoại video, đặc biệt nhiều hơn
từ các thiết bị IoT như camera giám sát qua mạng (IP camera)… Đối mặt với sự
phát triển này, việc xâm phạm dưới các hình thức khác nhau có thể ảnh hưởng nặng
nề tới các cá nhân và tổ chức xã hội. Do vậy, nhu cầu an toàn an ninh cho dữ liệu
thời gian thực trở nên cấp thiết và đòi hỏi ở các mức độ cao hơn.
Tuy nhiên trên thực tế lại hình thành một mâu thuẫn giữa sự phát triển các dịch
vụ với việc đảm bảo an toàn thông tin dữ liệu video thời gian thực. Điều này dễ
dàng có thể hiểu được vì môi trường truyền dữ liệu là một mạng mở, thiết bị thu
phát dữ liệu lại thường là những thiết bị có tài nguyên hạn chế, giá thành thấp hoặc
ít quan tâm đến bảo mật. Một trong những giải pháp hiệu quả nhất nhằm bảo đảm
an toàn dữ liệu trong mạng này là sử dụng mật mã. Hiện nay đã có một số loại mật
mã được áp dụng vào bảo mật dữ liệu video thời gian thực, tuy nhiên chỉ đạt hiệu
quả trên những thiết bị có tài nguyên đủ lớn. Với các thiết bị có tài nguyên hạn chế
thì các thuật toán mật mã thông thường là quá lớn, quá chậm và quá tốn năng lượng.
Vấn đề đặt ra là phải đề xuất được các hệ mật mã có khả năng mã hóa video thời
gian thực trên các hệ thống có tài nguyên hạn chế.
Trong bối cảnh đó, đề tài “ Nghiên cứu ứng dụng các hệ mật mã hạng nhẹ
trong bảo mật dữ liệu video thời gian thực” là một vấn đề nóng thu hút sự quan tâm
của cộng đồng công nghệ trong và ngoài nước.
Hiện nay, theo các báo cáo khảo sát về các phương thức mã hóa video thời
gian thực [1] [2] [3] Về cơ bản, có 3 loại chính của mã hóa video:
-

Trước khi tạo luồng video (mã hóa dựa trên "pixel").

-

Trong khi tạo luồng video (chuyển đổi dựa trên sự kết hợp của mã hóa

(coding) và mật mã (encryption)).


2

-

Sau khi tạo luồng video (mã hóa cấp độ bit).
Trong tất cả các phương pháp này, mã hóa sau khi tạo luồng video cung cấp

bảo mật cao hơn và không ảnh hưởng đến hiệu quả nén và chất lượng video. Tuy
nhiên, tốc độ mã hóa là rất thấp mặc dù tỷ lệ nén sau khi tạo luồng video là cao nhất.
Để sử dụng tốt phương thức này cần có phương pháp hợp lý để thỏa hiệp giữa tốc độ
mã hóa và độ an toàn.
Theo khảo sát về các phương thức mã hóa video truyền qua mạng [1]. Do
kích thước khổng lồ của video kỹ thuật số nói chung chúng truyền qua nén các định
dạng như MPEG 1/2/4 [4], H.263 / H.264 / AVC [5] [6]. Các phương pháp mã hóa
khác nhau đã được đề xuất: Mã hóa hoàn toàn, mã hóa dựa trên hoán vị, mã hóa
chọn lọc, mã hóa cảm tính.Trong các phương pháp này, mã hóa chọn lọc được cho
là có tốc độ và độ an toàn ở mức cân bằng nhất.
Để tăng cao tốc độ mã hóa và phù hợp trên các thiết bị có tài nguyên hạn chế,
hệ mật mã hạng nhẹ được sử dụng để thay thế cho hệ mã hóa thông thường (DES...).
Hiện nay, trên thế giới có rất nhiều hệ mật mã hạng nhẹ [10] nhằm hướng tới những
yêu cầu cụ thể , như: mã khối DESL và DESXL, mã khối HIGHT, mã khối
mCrypton, SEA, TEA, ICEBERG, PRINCE… một số mật mã khối đã đạt chuẩn
ISO/IEC 29192-2 (các thuật toán mã hóa sẵn sàng để sử dụng trong các hệ thống
thực tế.) như PRESENT, CLEFIA SIMON và SPECK. Đặc biệt có thuật toán ERISKE là mật hệ mật mã hạng nhẹ mới được công bố vào năm 2017 [7]. Tuy nhiên,
hiện chưa có đề xuất cụ thể nào về ứng dụng mật mã trong bảo mật dữ liệu video
thời gian thực trên các thiết bị có tài nguyên hạn chế và đây cũng chính là vấn đề
nghiên cứu chính của đề tài.

Với cách đặt vấn đề như trên, mục đích nghiên cứu của luận văn là ứng
dụng được hệ mật hạng nhẹ trên thiết bị phát dữ liệu video thời gian thực có tài
nguyên hạn chế mà vẫn duy trì chất lượng dịch vụ.
Đối tượng nghiên cứu chính của đề tài là phương pháp bảo mật video thời
gian thực và một số hệ mật mã khối hạng nhẹ.


3

Phạm vi nghiên cứu của đề tài là tập trung phân tích phương pháp sử dụng
mật mã chọn lọc với loại dữ liệu video H264.
Phương pháp nghiên cứu chính được sử dụng trong đề tài là nghiên cứu lý
thuyết kết hợp với thực nghiệm, so sánh định tính định lượng và phân tích, đánh giá
kết quả.
Nội dung của đề tài được trình bày theo cấu trúc sau:
-

Chương 1: Tổng quan về bảo mật dữ liệu video thời gian thực.

-

Chương 2: Nghiên cứu đề xuất ứng dụng các hệ mật hạng nhẹ vào dữ liệu
video thời gian thực

-

Chương 3: Phân tích đánh giá thử nghiệm.

-


Kết luận và khuyến nghị: Tổng hợp đánh giá các kết quả đạt được của đề
tài đồng thời xác định các hướng nghiên cứu tiếp theo.
Kết quả dự kiến của luận văn là nghiên cứu và phân tích một số hệ mật mã

hạng nhẹ, đề xuất phương pháp ứng dụng mã hóa chọn lọc hạng nhẹ vào dữ liệu
video thời gian thực. Thử nghiệm và đánh giá tốc độ và độ an toàn trong việc ứng
dụng hệ mật ERISK trong mã hóa dữ liệu video thời gian thực.


4

CHƯƠNG 1 - TỔNG QUAN VỀ BẢO MẬT DỮ LIỆU VIDEO
THỜI GIAN THỰC.
Có rất nhiều ứng dụng hiện nay đòi hỏi tính thời gian thực (real time). Trong các
dịch vụ truyền hình qua mạng, hội thảo trực tuyến, chat hình, chat tiếng…mỗi ứng
dụng có những đặc điểm riêng của nó, tuy nhiên có một số điều chung nhất mà các
dịch vụ này đều yêu cầu đó là việc truyền dữ liệu theo dòng (streaming) một cách
an toàn. Do vậy trong chương này sẽ tìm hiểu khái niệm truyền dòng, cách thực
hoạt động của nó và phương pháp đảm bảo an toàn cho dữ liệu

1.1 Quá trình truyền dòng của dữ liệu video thời gian thực
1.1.1 Tổng quan về video thời gian thực
Video là một loại dữ liệu đa phương tiện quan trọng trong các lĩnh vực truyền
thông và giải trí. Trong thời kì sơ khai, Video được xử lý và truyền dưới dạng tín
hiệu Analog. Nhưng sự phát triển mạnh mẽ của mạch điện tử và máy tính đã thúc
đẩy việc số hóa Video và mở ra một cuộc cách mạng về các công nghệ nén và
truyền Video.
Trong những năm 90, với sự phát triển và phổ biến của Internet, Video được truyền
bằng công nghệ chuyển mạch gói. Dù vậy, khi truyền qua mạng Internet, người ta
vẫn thường xuyên gặp những yếu tố bất lợi về băng thông, độ trễ và mất gói tin,

cùng với đó là vấn đề chia sẻ tài nguyên mạng giữa các luồng và làm thế nào để
triển khai hiệu quả các phương thức truyền thông Multicast.
Thông thường, người dùng chỉ có thể đọc Video sau khi đã tải toàn bộ Video
về đĩa cứng trên máy mình. Thế nhưng, trong bối cảnh các Video đang được cung
cấp dưới dạng chất lượng cao thông qua Internet cũng như yêu cầu nhanh chóng,
tiện dụng đang được người dùng Internet đặt lên hàng đầu thì phương pháp ấy đã
không còn hiệu quả. Từ đây, một bài toán được đặt ra nhằm truyền tải Video đến
người dùng một cách nhanh chóng, thuận tiện mà vẫn đảm bảo được chất lượng cần
thiết. Ta có khái niệm truyền dòng dữ liệu video thời gian thực (Video Streaming) là
“truyền Video một cách liên tục từ một nguồn đến một hay nhiều đích nào thông


5

qua Internet mà vẫn đảm bảo thời gian tương ứng với thời gian thật một cách tương
đối”.
Video Streaming cho phép việc giải nén kết hợp với hiển thị dữ liệu trong khi vẫn
tiếp tục tải phần còn lại của Video về. Đây gọi là kĩ thuật Buffering:
Video sẽ được chia ra thành từng gói nhỏ, sau đó liên tục truyền những gói ấy tới
người dùng.
Người dùng khi nhận được một phần nhỏ của dữ liệu Video sẽ bắt đầu giải
nén và hiển thị phần dữ liệu ấy trong khi vẫn tiếp tục tải về các gói dữ liệu tiếp theo
để tiếp tục giải nén và hiển thị.
Vậy, có thể dễ dàng thấy rằng Video Streaming mang lại sự tiện dụng và
nhanh chóng như thế nào. Ứng dụng của Video Streaming rất rộng lớn, trong đó, dễ
thấy nhất là trong lĩnh vực truyền thông báo chí trên mạng Internet, nơi các kênh
báo hình đang ngày càng được chú trọng phát triển. Một số vị dụ điển hình của như
: IPTV, Ipcamera, youtube....

1.1.2 Quá trình truyền dòng

Truyền dòng đối với video hay audio phải trải qua nhiều công đoạn với từng
nhiệm vụ riêng để đi đến kết quả cuối cùng là đạt được khả năng thể hiện ngay ở
bên nhận. [8]

1.1.2.1 Kiến trúc hệ thống

Hình 1.1. Quá trình truyền đòng video


6

Trong đó:
-

Streaming Server: Là bộ phận đóng vai trò quan trọng trong việc cung
cấp các dịch vụ trực tuyến mà cụ thể là Streaming Video. Để cung cấp
dịch vụ Streaming Video một cách chất lượng, Streaming Server được
yêu cầu phải xử lý dữ liệu Video với sự ràng buộc về thời gian thực, hạn
chế độ trễ và hỗ trợ cho người dùng các tương tác trên Video như tạm
dừng hay truy xuất đến bất kì thời điểm nào của Video.

-

Video/Audio Compression: Là bộ phận thực hiện công đoạn nén các dữ
liệu Video/Audio trước khi truyền nhằm giúp quá trình truyền đạt hiệu
quả tốt nhất về tiết kiệm băng thông.

-

Application Layer QoS Control: Trong quá trình truyền, sự biến thiên về

tài nguyên mạng là không thể tránh khỏi. Cùng với đó, yêu cầu chất
lượng Video của mỗi đối tượng người dùng là khác nhau, vì thế nhiều kĩ
thuật điều khiển chất lượng tầng ứng dụng đã được đưa ra. Kỹ thuạt này
bao gồm điều khiển tắc nghẽn và kiểm soát lỗi nhằm ngăn ngừa việc làm
mất gói dữ liệu và giảm độ trễ, mặt khác còn có thể cải thiện chất lượng
Video được trình chiếu ở máy người dùng trong điều kiện đường truyền
tốt.

-

Media Synchronization: Là cơ chế đồng bộ cho phép Video và Audio
được phát bên phía người nhận có được sự đồng bộ giống như Video và
Audio gốc.

-

Transfer Protocols: Là giao thức được thiết kế và chuẩn hóa cho việc
truyền dữ liệu giữa máy tính người dùng và Streaming Server bao gồm
các giao thức tầng mạng (IP), giao thức tầng giao vận (UDP/TCP) và giao
thức điều khiển phiên Real-time Streaming Protocol (RTSP).

-

Continous Media Distribution Service: Là dịch vụ được xây dựng trên
nền mạng Internet, cho phép việc phân phối Video trên đường truyền đạt
được Quality of Service (chất lượng dịch vụ) và hiệu quả cao.


7


1.1.2.2 Cơ chế hoạt động
Bước 1 – Nén dữ liệu:
Quá trình truyền thông bắt đầu ở lớp mã hóa (video coding), các tín hiệu
tương tự hoặc số được nén. Tín hiệu đầu ra của bộ nén là các dòng MPEG cơ bản.
Các dòng MPEG cơ bản được định nghĩa là các tín hiệu số liên tục thời gian thực.
Có nhiều loại dòng cơ bản. Ví dụ âm thanh được mã hóa sử dụng MPEG được gọi
là “dòng cơ bản âm thanh”. Một dòng cơ bản thực ra chỉ là tín hiệu ra thô từ bộ mã
hóa. Các dòng dữ liệu được tổ chức thành các khung tại lớp này. Các thông tin chứa
trong một dòng cơ bản có thể bao gồm: Loại khung và tốc độ, vị trí của những block
dữ liệu trên màn hình, tỉ số cạnh.
Điều quan trọng phải chú ý là lớp này được chia thành 2 lớp phụ theo đặc
tính của chuẩn H.264/AVC: lớp mã hóa video(VCL) và lớp trừu tượng(NAL). Lớp
phụ VCL quan tâm tới việc nén các nội dung video. Tín hiệu đầu ra của lớp này là
chuỗi các slice ảnh. Dòng bit ở lớp NAL được tổ chức thành các gói rời rạc được
gọi là các khối NAL. Định dạng của các khối NAL được mô tả trong Hình 1.2

Đơn vị header NAL

1bit
kiểm
tra lỗi

Hình 1.2. Cấu trúc NAL

Việc nén video là một công đoạn không bắt buộc nhưng rất cần thiết. Với các
loại dữ liệu video như dữ liệu thu từ camera, thì việc lưu trữ hay truyền video không
nén sẽ phải trả giá cao, đôi khi là điều không thể. Ta lấy ví dụ với một định dạng


8


tiêu biểu thường được sử dụng trong các ứng dụng hội nghị từ xa bằng video là định
dạng CIF (Common Intermediate Format). CIF sử dụng độ phân giải 352 pixel mỗi
dòng và có 288 dòng tất cả. Một ảnh không nén cho một frame hình (chế độ
352x288x16bpp) chiếm 202752 byte. Việc ghi video không nén với tốc độ 15 hình
một giây sẽ cần xấp xỉ 3 MB và nếu truyền qua mạng thì băng thông cần thiết cho
mét dòng video không nén là 24 Mbps. Từ ví dụ trên, ta thấy việc nén video gần
như là không thể thiếu được nếu các dòng video được truyền trên môi trường mạng
tốc độ thấp.
Tuỳ theo yêu cầu chất lượng và băng thông, mà ta có thể lựa chọn được
phương pháp nén thích hợp. Với việc áp dụng một chuẩn nén cho dữ liệu video,
không gian lưu trữ cần thiết cùng băng thông mạng yêu cầu cho dòng video giảm
đáng kể. Hiện phổ biến hai họ chuẩn nén, là họ CCITT với các chuẩn dạng H.26x,
H. 36x và họ ISO MPEG với các chuẩn MPEG-1, MPEG-2, MPEG-4, MPEG-7.
Bước 2 – Lấy mẫu:
Việc lấy mẫu thực chất là việc chia nhỏ nội dung của video hay audio ra
thành các khối nhỏ thích hợp để có thể truyền đi trong môi trường mạng. Đối với
các dữ liệu audio, việc lấy mẫu được thực hiện theo thời gian. Tương ứng sau một
khoảng thời gian bằng chu kì lấy mẫu phần dữ liệu audio tương ứng trong khoảng
thời gian đó sẽ được sử dụng để truyền đi. Với các dữ liệu video, ngoài việc lấy mẫu
theo thời gian còn có việc lấy mẫu theo không gian. Việc lấy mẫu theo thời gian
tương ứng với thời gian thể hiện của các khung hình và việc lấy mẫu theo không
gian sẽ được thực hiện bằng cách chia nhỏ các khung hình thành các phần với kích
thước thích hợp đối với việc truyền đi.
Khi lấy mẫu, các mẫu phải chứa đựng đầy đủ các thông tin dùng cho việc
khôi phục lại dữ liệu video hay audio về cả mặt không gian cũng như thời gian khi
bên nhận nhận được các mẫu này. Với việc sử dụng một giao thức truyền thông thời
gian thực như RTP(Real-time Transport), quá trình lấy mẫu sẽ được tiến hành tự
động.



9

Bước 3 - Truyền các mẫu qua mạng:
Việc truyền các mẫu dữ liệu video có thể được thực hiện một cách trực tiếp
thông qua các giao diện của môi trường mạng như Socket hay được thực hiện thông
qua một giao thức cấp cao ở tầng ứng dụng như RTP. Thông thường người ta sẽ
chọn giải pháp thứ hai, tức là sử dụng một giao thức truyền dòng thời gian thực cho
việc truyền các mẫu nếu như giao thức đó được hỗ trợ trên nền phần cứng cũng như
phần mềm.
RTP sử dụng TCP và UDP là 2 giao thức để truyền tải gói tin qua mạng.
Trong đó TCP mang đến sự ổn định trong việc truyền dữ liệu, UDP có tốc độ truyền
dự liệu tốn hơn nhưng độ ổn định thấp hơn TCP.
Việc sử dụng một giao thức truyền dòng thời gian thực có nhiều ưu điểm. Ưu
điểm thứ nhất là tính hiệu quả, bởi vì các giao thức truyền thông thời gian thực được
thiết kế cho việc truyền các loại dữ liệu động, như dữ liệu video chẳng hạn, khi đó
tính thời gian thực sẽ được chú trọng hơn là tính chính xác về mặt dữ liệu. Ưu điểm
thứ hai là các giao thức thời gian thực hỗ trợ mạnh việc đồng bộ các dòng dữ liệu từ
các nguồn khác nhau nhưng có quan hệ với nhau về mặt thời gian thực.
Bước 4 – Nhận và khôi phục dữ liệu và đồng bộ các dòng:
Đây là quá trình ngược với bước thứ ba, được thực hiện ở bên nhận khi dữ
liệu dưới dạng các gói tin được truyền đến. Các gói tin được truyền đến có thể là
của nhiều dòng tương ứng với nhiều nguồn dữ liệu khác nhau và cũng có thể thứ tự
các gọi tin nhận được không giống như khi chúng được gửi đi. Khi đó bên nhận
phải căn cứ vào các thông tin được ghi trong từng gói tin để có thể xác định được vị
trí về mặt không gian và thời gian của các mẫu dữ liệu mà gói tin mang theo. Việc
xác định được vị trí của các mẫu dữ liệu trong gói tin giúp cho việc khôi phục lại
nội dung của video hay audio một cách chính xác nhất. Với việc truyền các dòng
đơn lẻ không có quan hệ với nhau về mặt thời gian, thì nội dung của audio hay
video vừa được khôi phục có thể được sử dụng để trình diễn. Còn trong trường hợp

có nhiều dòng khác nhau có quan hệ với nhau về mặt thời gian thực thì cần phải
đồng bộ các dòng về mặt thời gian.


10

Việc đồng bộ các dòng chỉ cần thiết khi các dòng có quan hệ với nhau về mặt
thời gian, chẳng hạn như việc đồng bộ hình với tiếng khi truyền video, khi đó thời
gian thể hiện của các dòng phải được tính toán sao cho phù hợp với nhau. Việc đồng
bộ là một công việc phức tạp, thường được thực hiện tự động bởi các giao thức
truyền thông thời gian thực như RTP. Khi đó mặc dù thứ tự các gói tin nhận được có
thể không giống như thứ tự khi được gửi, thậm chí có một số gói tin bị mất nhưng
giao thức vẫn phải đảm bảo tính đồng bộ cho các dòng khi được thể hiện ở nơi
nhận.
Bước 5 – Giải nén
Bước này sẽ tiến hành giải nén dòng video/audio với chuẩn nén được sử dụng
khi nén. Dữ liệu sau khi giải nén có thể được thể hiện ra các thiết bị ra hay được ghi
ra file.

1.2 Các giao thức streaming chuyên biệt
Qua nhiều năm, một số giao thức streaming được xây dựng và phát triển bởi
cả các công ty thương mại và cộng đồng Internet. Về phía thương mại, các công ty
giải pháp streaming thường phát triển các giao thức streaming của riêng họ để dùng
cho các sản phẩm của mình. Ví dụ, Microsoft phát triển dịch vụ Microsoft Media
Services (MMS) để dùng trong hệ thống Windows Media. MMS dùng TCP để trao
đổi các thông tin điều khiển và truyền dữ liệu đa phương tiện qua cả TCP và UDP.
RealNetworks cũng phát triển giao thức RealNetwork Data Transport (RDT) để
dùng cho cá giải pháp của họ. Do tính riêng tư, nên các giao thức này sẽ không
được bàn thêm trong nội dung này.
Bên cạnh đó ,cộng đồng Internet cũng phát triển các chuẩn mở dành cho

streaming media. Các chuẩn này bao gồm: Real Time Streaming Protocol (RTSP)
được định nghĩa trong chuẩn RFC 2326, RealTime Transport Protocol (RTP) và
RTP Control Protocol (RTCP) trở thành chuẩn từ năm 2004. [8]

1.2.1 Giao thức RTSP
RTSP (Real Time Streaming Protocol) là một giao thức điều khiển trên mạng
được thiết kế để sử dụng giao tiếp giữa máy client và máy streaming server. Giao


11

thức này được sử dụng để thiết lập và điều khiển phiên giao dịch giữa các máy tính
(end points).
Về hình thức, giao thức RTSP cũng có nét tương đồng với giao thức HTTP,
RTSP định nghĩa một bộ các tín hiệu điều khiển tuần tự, phục vụ cho việc điều
khiển quá trình playback. Trong khi giao thức HTTP là giao thức không có trạng
thái thì RTSP là giao thức có xác định trạng thái. Một định danh được sử dụng khi
cần thiết để theo dõi các phiên giao dịch hiện tại của quá trình streaming video gọi
là số hiệu session. Cũng giống như HTTP, RTSP sử dụng TCP là giao thức để duy
trì một kết nối đầu cuối tới đầu cuối và các thông điệp điểu khiển của RTSP được
gửi bởi máy client tới máy server. Nó cũng thực hiện điều khiển lại các đáp trả từ
máy server tới máy client. Cổng mặc định được sử dụng bởi giao thức này là 554.

Hình 1.3. Các bước trao đổi trong 1 phiên streaming media

Chi tiết về giao thức được mô tả trong chuẩn RFC 2326

1.2.2 Giao thức RTP
RTP (Real-time Transport Protocol) định dạng một gói tin RTP được dùng để
truyền trên luồng dữ liệu video hay audio dựa trên địa chỉ IP. RTP được sử dụng

trong phiên giao dịch giữa các hệ thống giải trí hoặc giao tiếp mà có triển khai kỹ


12

thuật streaming video như là telephony, ứng dụng hội họp từ xa, hệ thống giám sát
bằng hình ảnh dựa trên IP.
RTP được sử dụng kết hợp với giao thức RTCP ( RTP Control Protocol ).
Trong đó, RTP được sử dụng để đóng gói các frame dữ liệu ( audio và video) để
truyền trên luồng dữ liệu thì RTCP được sử dụng để giám sát chất lượng của dịch vụ
(QoS) hoặc để thống kê theo các tiêu chí trong quá trình truyền tải. Thường thì giao
thức RTP sử dụng cổng có số hiệu chẵn còn giao thức RTCP sử dụng cổng có số
hiệu lẻ.
RTP được thiết kế cho quá trình streaming theo thời gian thực từ theo kiểu
điểm tới điểm. Giao thức này cung cấp tiện ích để dò ra những gói tin RTP đã quá
hạn. Trên thực tế, gói tin RTP sử dụng địa chỉ IP trên mạng để định danh các máy
tính gửi và nhận. RTP cũng hỗ trợ truyền dữ liệu tới nhiều điểm đích thông qua địa
chỉ IP multicast.
RTP được phát triển bởi tổ chức Audio / Video Transport của tổ chức tiêu
chuẩn IETF. RTP được sử dụng kết hợp với các giao thức khác như H.323 và giao
thức RTSP. Chuẩn RTP định nghĩa một cặp giao thức làm việc với nhau đó là RTP
và RTCP. RTP được sử dụng để truyền tải dữ liệu đa phương tiện và giao thức RTCP
được sử dụng để gửi các thông tin điều khiển với các tham số QoS.
Các giao thức thành phần: Đặc tả RTP gồm 2 giao thức con là RTP và RTCP
Giao thức truyền, RTP, quy định cách thức truyền dữ liệu theo thời gian thực. Thông
tin được cung cấp bởi giao thức này bao gồm thời gian đồng bộ (timestamps), số thứ
tự gói tin (phục vụ cho việc tìm gói tin bi lạc ) và chi phí cho việc mã hóa định dạng
dữ liệu.
Giao thức điều khiển, RTCP được sử dụng cho việc kiểm tra chất lượng
(QoS) luồng dữ liệu và thực hiện đồng bộ giữa các luồng dữ liệu. So với RTP, thì

băng thông của RTCP sẽ nhỏ hơn, vào cỡ 5%.
Một giao thức cho phép miêu tả dữ liệu đa phương tiện nhưng không bắt
buộc phải kèm theo là giao thức miêu tả phiên ( Session Description Protocol –
SDP). Phiên ( Session ): Một phiên RTP được thiết lập cho mỗi luồng dữ liệu. Một


13

phiên bao gồm một địa chỉ IP với một cặp cổng của giao thức RTP và RTCP. Ví dụ,
các luồng video và audio sẽ có các phiên RTP khác nhau, bên nhận sẽ nhận một
cách riêng biệt giữa dữ liệu video và audio thông qua 2 cổng khác nhau cho 2 giao
thức RTP và RTCP. Thường thì số hiệu cổng của RTP là một số chẵn trong khoảng
1024 tới 65535 và cổng của RTCP là một số lẻ kế tiếp.

1.2.3 Giao thức SIP
SIP (Session initial protocol – giao thức khởi tạo phiên) là giao thức đầu tiên
hỗ trợ phiên đa người dùng với dữ liệu đa phương tiện. Và hiện nay trở thành một
đặc tả của tổ chức Internet Engineering Task Force (IETF).
Ngày nay, để tăng số lượng kênh dịch vụ, các nhà cung cấp dịch vụ viễn
thông hướng tới phát triển các dịch vụ trên nền tảng SIP như: điện thoại nội bộ và
điện thoại đường dài, các dịch vụ tin nhắn (IM), voice message, push-to-talk, truyền
thông đa phương tiện… SIP đang được phát triển rất mạnh mẽ cả về phần mềm và
phần cứng. Ngày càng có nhiều máy điện thoại IP, các hệ thống máy phục vụ
(server), các cổng VOIP gateway, tất cả đều sử dụng SIP …SIP được phát triển dần
dần từ các giao thức có trước đó: HTTP và SMTP. Tuy SIP dùng một hệ thống user
và server riêng, nhưng SIP không hoạt động một cách biệt lập. SIP hoạt động cùng
với hàng loạt các giao thức trước đó để thực hiện các việc như: authentication,
location, quản lý chất lượng tiếng nói,… • SIP là một giao thức thế hệ mới Với đặt
điểm: Linh hoạt, extensible và tính mở, SIP đã làm nổi bật sức mạnh của Internet và
các mạng di động trên nền IP , tạo ra các dịch vụ thế hệ mới.

Tuy nhiên trong đề tài này sẽ không tập trung vào SIP mà chỉ sử dụng RTSP
và RTP để truyền dữ liệu.

1.3 Chuẩn nén video H264
1.3.1 Tổng quan
Trong quá trình truyền dòng video, việc nén video là hết sức cần thiết vì dữ
liệu video là rất lớn vì vậy các chuẩn nén video được sinh ra và ngày càng phát triển.
Chuẩn H.264 với tên gọi đầy đủ là MPEG-4 Part 10 AVC (Advance Video Coding
– Mã hóa video cấp cao) thường được viết tắt như MPEG-4 AVC/H.264 là một định


14

dạng nén nâng cao hiệu quả nén hình cao hơn các định dạng nén thông thường như
MPEG-4 hoặc MPEG-2.
Một số đặc điểm nổi bật của H264 so với các chuẩn nén thông thường như:
-

Kích thước khối ảnh có thể thay đổi được …;

-

Độ chính xác của vector bù chuyển động cao;

-

Tham chiếu nhiều ảnh bù chuyển động;

-


Dự đoán trong ảnh;

-

Loại bỏ dư thừa không gian;

-

Mã hóa Entropy;

-

Bộ lọc deblocking;

-

Thứ tự macroblock mềm dẻo.
Chuẩn H.264 ngày nay đang được sử dụng như một chuẩn phổ biến nhất.

Các ứng dụng của H.264 như:
-

Truyền hình quảng bá qua vệ tinh, cáp, mặt đất…;

-

Truyền hình tương tác video theo yêu cầu (VoD);

-


Lưu trữ đĩa quang, băng từ, DVD;

-

Tích hợp dịch vụ qua ISDN, DSL, LAN, mạng di động, modem;

-

Nhắn tin đa phương tiện DMS qua ISDN, DSL, LAN, mạng di động;

-

Là tiêu chuẩn cho các ứng dụng hình ảnh như đĩa Blu-ray, đầu ghi hình
camera, máy quay phim, đầu thu kỹ thuật số;

-

Trong các dịch vụ phát video như Youtube, Vimeo, iTunes Store...;

-

Các phần mềm web như Adobe Flash, Microsoft Silverlight, HTML5....

 Có thể thấy H264 được sử dụng rất nhiều trong các ứng dụng phát dữ liệu

video thời gian thực và hiện nay đang là chuẩn nén phổ biến nhất và đó là lý
do đề tài chọn H264 làm đối tượng để phân tích.


15


1.3.2 Cơ chế hoạt động
1.3.2.1 Bộ mã hóa và giải mã
Bộ mã hóa:

Hình 1.4. Bộ mã hóa H264

Điểm khác biệt của H.264 so với các bộ mã hóa khác là có sự lựa chọn chế
độ mã hóa liên ảnh (Inter) hoặc trong ảnh (Intra). Chế độ mã hóa trong ảnh cho
phép một MB có thể được nội suy từ giá trị các điểm ảnh ở MB lân cận trong cùng
ảnh và nhờ đó làm tăng hiệu quả nén trong miền không gian.
Quá trình mã hóa được thuộc hiện theo các bước:
-

Fn là khung hoặc field được chia nhỏ thành các macroblock, mỗi block sẽ
được mã hoá theo chế độ intra hoặc inter.

-

Trong chế độ intra, thành phần được dự đoán P (ở đây có thể là các mẫu)
được suy ra từ các mẫu đã được mã hóa hoặc đã được giải mã hay khôi
phục trong cùng 1 slice, trong đó uF'n là những mẫu chưa được lọc được
dung cho việc xác định P.

-

Trong chế độ inter, thành phần được đoán P được suy ra nhờ dự đoán bù
chuyển động (motion-compensated prediction) từ 1 đến 2 khung đã mã
hoá trước đó.



×