thời gian cho người dùng bằng cách sử dụng các công nghệ giải nén kết hợp với playerhiển thị dữ liệu đồng thời trong lúc vẫn tiếp tục download.Quá trình này được gọi là buffering và có t
Trang 1MỤC LỤC
MỤC LỤC i
DANH MỤC HÌNH VẼ iii
DANH MỤC BẢNG BIỂU iv
THUẬT NGỮ VIẾT TẮT v
LỜI MỞ ĐẦU 1
CHƯƠNG I: CÔNG NGHỆ STREAMING 2
1.1 Tổng quan về công nghệ streaming 2
1.1.1 Khái niệm về công nghệ streaming 2
1.1.2 Video Streaming 2
1.1.3 QuickTime Player 4
1.1.4 RealPlayer 4
1.1.5 Windows Media 5
1.2 Các giao thức hỗ trợ 5
1.2.1 Giao thức truyền tải thời gian thực RTP 6
1.2.2 Giao thức luồng thời gian thực RTSP 6
1.2.3 Tải dữ liệu lũy tiến (Progressive download) 7
1.3 Kết luận chương 1 7
CHƯƠNG II: TỔNG QUAN VỀ MPEG DASH 8
2.1 Giới thiệu DASH 8
2.2 Tổng quan về MPEG DASH 9
2.2.1 Mô tả hệ thống 9
2.2.2 Mô hình máy khách DASH 10
2.2.3 Mô hình dữ liệu DASH 10
2.3 Trình diễn phương tiện (Media Presentation) 14
2.3.1 Khoảng thời gian (Period) 14
2.3.2 Các tập thích ứng (Adaptation Sets) 18
2.3.3 Thành phần nội dung phương tiện 28
Trang 22.3.4 Trình diễn (Representation) 30
2.3.5 Phân đoạn và thông tin phân đoạn (Segments and Segment information) 35
2.3.6 Trình diễn phương tiện trên MPEG-2 TS 53
2.4 Kết luận chương 2 55
CHƯƠNG III: MÔ HÌNH KIẾN TRÚC MPEG DASH 56
3.1 Nội dung chuẩn bị 56
3.1.1 Module chuyển đổi mã 57
3.1.2 Các module bộ kết hợp và phân đoạn 57
3.1.3 Module chỉ mục 57
3.2 Đồng bộ hóa giữa server và client 58
3.3 HTTP Server 59
3.3.1 Server theo yêu cầu 60
3.3.2 Server trực tiếp 60
3.4 Client 61
3.4.1 Các đặc trưng 61
3.4.2 Các cơ chế thích ứng 62
3.4.3 Đặc tính hóa module 63
3.5 Đánh giá 67
3.5.1 Môi trường đánh giá 67
3.5.2 Các thông số đánh giá (metric) 68
3.5.3 Kết quả 72
3.5.4 Nhận định, đánh giá 75
3.6 Kết luận chương 3 75
KẾT LUẬN 76
TÀI LIỆU THAM KHẢO 77
Trang 3DANH MỤC HÌNH VẼ
Hình 2.1 Ví dụ về Hệ thống DASH tiêu biểu 10
Hình 2.2 Mô hình máy khách DASH 10
Hình 2.3 Mô hình dữ liệu mức cao của DASH 11
Hình 3.1 Kiến trúc hệ thống 56
Hình 3.2 Các module chuẩn bị nội dung Một tập tin truyền thông được chỉ định là đầu vào Các trình diễn R khác nhau được sinh ra, tạo ra n phân đoạn cho mỗi phân đoạn ban đầu Một tập tin chỉ số cũng được tạo ra như đầu ra 56
Hình 3.3 (a) Truyền thông giữa client, server và NTP server pool, (b) Một yêu cầu SNTP đơn giản 58
Hình 3.4 Tiêu đề gói tin NTP và các trường liên quan cho thủ tục đồng bộ 59
Hình 3.5 Đặc tính của server trực tiếp Tshift biểu diễn chỉ số của các phân đoạn trong thời gian dịch khả dụng, n là số lượng các phân đoạn trong một trình diễn 61
Hình 3.6 Tổng quan vê các module ứng dụng client 63
Hình 3.7 Định hướng hoạt động 64
Hình 3.8 Chuỗi các sự kiện xuất hiện trong module player 65
Hình 3.9 Môi trường đánh giá với 3 phần được tham số hóa khác nhau (hiển thị màu xám) 68
Hình 3.10 Giá trị hàm wlong (t) cho số liệu hơn toàn bộ phiên T, trong khi wshort (t) là phù hợp hơn đến giá trị trễ trọng lượng và khoảng thời gian chờ ngắn 69
Hình 3.11 Hiệu suất của các cơ chế tích cực trên kịch bản 1 73
Hình 3.12 Hiệu suất của các cơ chế (kĩ thuật) bảo toàn trên kịch bản 1 74
Hình 3.13 Hiệu suất của cơ chế (kĩ thuật) trung bình trên kịch bản 1 75
Hình 3.14 Đồ thị so sánh theo kịch bản 1 75
Trang 4DANH MỤC BẢNG BIỂU
Bảng 2.1 Semantics of Period element 16
Bảng 2.2 Semantics of AdaptationSet element 20
Bảng 2.3 Ngữ nghĩa của yếu tố Content Component 28
Bảng 2.4 Semantics of Representation element 31
Bảng 2.5 Semantics of SegmentBase element and Segment Base Information type 36
Bảng 2.6 Ngữ nghĩa của loại MultipleSegmentBaseInformation 38
Bảng 2.7 Semantics of elements of type URLType 39
Bảng 2.8 Ý nghĩa của phần tử SegmentList 41
Bảng 2.9 Ngữ nghĩa của phần tử SegmentTemplate 44
Bảng 2.10 Định danh cho mẫu URL 45
Bảng 2.11 Ngữ nghĩa của phần tử SegmentTimeline 51
Bảng 3.1 Những loại Multipurpose Internet Mail Extensions (MIME) cần phải được thêm vào cấu hình Apache 60
Bảng 3.2 Các số liệu sẽ được sử dụng cho đánh giá của chúng ta 68
Bảng 3.3 Các tham số tính toán cho kịch bản 1 75
Trang 5THUẬT NGỮ VIẾT TẮT
DASHHTT
P
DASHdynamic adaptive streaming over HTTP
Streaming thích ứng động quaHTTP
sở Iso
trình
trình
information
Thông tin nâng cao bổ sung
tải
Trang 6URI Uniform resource identifier Nhận dạng tài nguyên đồng
nhất
LỜI MỞ ĐẦU
Đi cùng với sự bùng nổ của mạng IP thì các phương thức truyền video trên nềntảng mềm dẻo này cũng phát triển vô cùng đa dạng phong phú Đáp ứng với các nhucầu truyền hình ảnh âm thanh khác nhau có rất nhiều các phương thức và giao thứckhác nhau Với một đoạn video ta có thể nhận toàn bộ dữ liệu về rồi mới bắt đầu xem,nhưng như thế ta thường phải mất thời gian hơn để có thể có được một nội dung giảitrí Vì thế mà các phương thức streaming ra đời, Mpeg Dash là một trong các phươngthức hỗ trợ việc đó
Được sự gợi ý của cô Nguyễn Thu Hiên và bản thân em cũng muốn tìm hiểu,
nghiên cứu về các phương thức streaming nói chung và Mpeg Dash nói riêng, nên em
đã chọn đề tài “Mpeg Dash – chuẩn công nghệ mới nhất hỗ trợ streaming thích ứngđộng qua HTTP” làm đề tài đồ án tốt nghiệp Đồ án “Nghiên cứu về MPEG-DASH”tập trung nghiên cứu về các đặc điểm của MPEG-DASH và tiêu chuẩn cho phươngthức này
Trang 7Nội dung chính đồ án bao gồm 3 chương:
Chương I: Công nghệ streaming
Chương II: Tổng quan về MPEG DASH
Chương III: Mô hình hệ thống MPEG DASH
Do còn nhiều hạn chế về kiến thức cũng như kinh nghiệm và DASH cũng là mộtcông nghệ mới mẻ nên việc hoàn thành đồ án của em không tránh khỏi những thiếusót, em rất mong nhận được sự góp ý của thầy cô
Sinh viên Hoàng Đức Tú – Lớp D08VT1
CHƯƠNG I: CÔNG NGHỆ STREAMING
1.1 Tổng quan về công nghệ streaming
1.1.1 Khái niệm về công nghệ streaming
Công nghệ streaming là công nghệ cho phép các multimedia server truyền đi quamạng Internet (IP) các dòng dữ liệu liên tiếp có thể giải nén và hiển thị ngay lập tứckhi tới phía người dùng Để download về một đoạn phim ngắn cũng có thể mất tới vàiphút trong khi các dữ liệu video sử dụng công nghệ streaming chỉ mất vài giây để cóthể hiển thị Tính năng này khiến các công nghệ streaming tiết kiệm được thời giancho người sử dụng (thậm chí khi sử dụng modem 28.8 kbps)
1.1.2 Video Streaming
Với các định dạng file video truyên thống, dữ liệu chỉ có thể hiển thị khi đã đượcdownload toàn bộ, vì vậy đối với các file video chất lượng cao có dung lượng lớn thìcông việc này sẽ tiêu tốn rất nhiều thời gian Video Streaming thì khác nó tiết kiệm
Trang 8thời gian cho người dùng bằng cách sử dụng các công nghệ giải nén kết hợp với playerhiển thị dữ liệu đồng thời trong lúc vẫn tiếp tục download.
Quá trình này được gọi là buffering và có thể được diễn giải như sau: thay vì đượcgửi một lần duy nhất, dữ liệu Video Streaming sẽ được truyền đi thành các gói nhỏ,ban đầu player sẽ lấy về một phần chia nhỏ đó của dữ liệu video trước khi hiển thị,đồng thời trong lúc hiển thị các gói dữ liệu còn lại sẽ lần lượt được lấy về để kịp choviệc hiển thị tiếp theo
Trước khi công nghệ streaming ra đời vào năm 1995, các trang Web đơn thuầnvẫn chỉ là các trang tĩnh, nghèo nàn về hình ảnh đông và âm thanh Tuy nhiên so sánhvới chất lượng của TV truyền thống thì chất lượng của video online là không chấpnhận được
Ngày nay, công nghệ Video Streaming phát triển rất nhanh, các nhà nghiên cứu vàphát triển dường như rất hứng thú trong lĩnh vực này Chúng ta có thể hoàn toàn hyvọng chất lượng của video streaming đạt được mức chất lượng TV truyền thống, thậmchí bằng cả chất lượng DVD
Với công nghệ streaming, các nhà cung cấp dịch vụ có thể tạo, phân phối và hiểnthị các Video Streaming dưới các định dạng của công nghệ streaming (như RM, MOV
và ASF) Video Streaming thường được sử dụng trong lĩnh vực giải trí hoặc dạy học,dùng để lưu trữ các tuyển tập các file video hoặc các bài học, cung cấp cho người dùngcác tiện ích như tìm kiếm, liệt kê, và khả năng hiển thị hoặc hiển thị lại các dữ liệuvideo theo yêu cầu
Video Streaming được thể hiện dưới hai dạng: Video theo yêu cầu (on demand) vàVideo thời gian thực (live event)
Video theo yêu cầu là các dữ liệu video được lưu trữ trên multimedia server vàđược truyền đến người dùng khi có yêu cầu, người dùng có toàn quyền để hiển thịcũng như thực hiện các thao tác (tua, dừng, nhẩyqua ) với các đoạn dữ liệu này.Video thời gian thực là các dữ liệu video được convert trực tiếp từ các nguồn cung cấp
dữ liệu theo thời gian thực (máy camera,microphone, các thiết bị phát dữ liệu video ).Các dữ liệu này sẽ được multimedia phát quảng bá thành các kênh người dùng sẽ chỉ
có quyền truy nhập bất kỳ kênh ưa thích nào để hiển thị dữ liệu mà không được thựchiện các thao tác tua, dừng vv trên các dữ liệu đó (giống như TV truyền thống)
Video Streaming sử dụng các giao thức RTP, MMS hay HTTP vv để truyền dữliệu theo dạng streaming qua mạng Internet, đồng thời sử dụng các chuẩn nén để giảmdung lượng dữ liệu, cung cấp khả năng nén dữ liệu tại nhiều mức nén, nhiều kíchthước hiển thị để có thể phù hợp với độ rông băng thông của nhiều mạng truyền dẫn đểtối ưu hoá việc truyền dữ liệu qua mạng Cũng chính vì vậy việc truyền các VideoStreaming qua mạng sẽ phụ thuộc rất nhiều vào các sản phẩm phần mềm Video
Trang 9Streaming Server Trong những năm gần đây có rất nhiều các chuẩn công nghệ videostreming được phát triển với các player :
Bởi vậy các định dạng video streaming chỉ giới hạn bởi ba công ty được coi là dẫnđầu trong công nghệ streaming với các sản phẩm: Apple với QuickTime,RealNetworksvới RealMedia, và Microsoft với Windows Media
Các hãng này đều cung cấp các bộ công cụ trọn gói gồm Video Streaming Server(lưu trữ, truyền phát dữ liệu theo các giao thức hỗ trợ ), Video Player (hiển thị dữliệu tại phía người dùng), và công cụ kiến tạo dữ liệu với các chuẩn nén
1.1.3 QuickTime Player
Được phát triển bởi Apple, Quick Time là một ứng dụng có thể chạy trên nhiềunền hệ thống (Macintosh, Unix và PC) và là chuẩn chính thức sớm nhất cho nền tảngphần mềm về multimedia QuickTime hỗ trợ định dạng MOV mà sử dụng công nghệSorenson Video để nén các file dữ liệu audio/video và cung cấp các chuẩn nén cùngvới Player miễn phí
QuickTimeStreaming Server sử dụng giao thức RTSP (tiêu chuẩn mang tính mở
có thể hoạt động trên nhiều hệ thống từ UNIX đến NT) và hoàn toàn miễn phí.QuickTime hỗ trợ khá nhiều định dạng, từ các định dạng về hình ảnh như JPEG, BMP,PICT, PNG, GIF, GIF động, các định dạng video số như AVI, AVR, định dạngMPEG-1, OpenDML MiniDV, DVCPro, DVCam camcorder và có thể chơi được cácfile MP3, MIDI QuickTime là một công cụ rất mạnh đễ trùnh diễn multimedia và hơnthế nữa nó còn có thể được sử dụng như một công cụ chỉnh sửa hoặc nén dữ liệu
Trang 10Trong những năm gần đây, Apple đã dành nhiều nỗ lực để phát triển một chuẩnkhác cho công nghệ streaming là QuickTime VR (QTVR) Khi ta chụp một vật thể ởtất cả các góc độ của nó và sử dụng phần mềm để kết nối chúng lại và đưa lên mạng,QTVR sẽ cho phép người dùng có thể tương tác bằng cách xoay chuyển vật thể, phóng
to, thu nhỏ thông qua sử dụng chuột Công nghệ này rất thích hợp với việc đưa cácthông tin về triễn lảm bảo tàng trên mạng, các cuộc du lịch ảo, các giới thiệu về muabán xe cộ hoặc các sản phẩm thương mại khác vv…
1.1.4 RealPlayer
RealMedia (hay còn được goi là RealVideo hoặc ngắn gọn là Real) được phát triểnbởi RealNetworks RealNetworks là tiên phong trong lĩnh vực về multimedia trên webvới chuẩn RM (real media) quen thuộc với người dùng trên mạng Internet Các sảnphẩm phần mềm của Real gồm RealPlayer (phần mềm thông dụng với người duyệtWeb) và RealSystem G2 là thế hệ thứ hai của RealVideo với nhiều chức năng nổi trộihơn thế hệ trước
Real sử dụng công nghệ nén Real G2 được phát triển bởi RealNetwork Hiện nay,RealVideo là một chuẩn video thông dụng trên Internet, ngoài ra còn có thêm haichuẩn nữa là RealAudio (streaming audio) và RealFlash (streaming Flash animation),tuy nhiên sẽ phải bỏ tiền ra để mua các sản phẩm Real Server Streaming Real Server
hỗ trợ cả hai giao thức RTSP “true streaming “ và “HTTP streaming” và rất thích hợptrong việc truyền phát các audio/video hoặc khuôn dạng media khác như các sản phẩmcủa Macromedia Flash
Gần đây Real có phát hành phiên bản RealProducer 8.5, công cụ tạo và nén vớicác dữ liệu real media Một trong các tính năng của nó là SVT (Scalable VideoTechnology), công nghệ này cho phép các máy tính tốc độ chậm có thể hiển thị các tínhiệu video mà không phải giải nén toàn bộ thông tin gốc SVT quét toàn bộ dữ liệuvideo và lựa chọn tỷ lệ nén tốt nhất dựa vào độ rộng của băng thông
1.1.5 Windows Media
Windows Media (trước kia có tên gọi là NetShow) là sản phẩm của Microsoftnhằm phục vụ việc truyền streaming media trên mạng Internet Windows Media đượcphổ biến khá rộng rãi và nay đã có version mới nhất là Windows Media 9 Mặc dùngWindows Media Streaming Server sử dụng giao thức riêng của nó là MMS (MicrosoftMedia Server Protocol) thay vì sử dụng giao thức chuẩn RTSP xong nó hoàn toànmiễn phí và chạy được trên rất nhiều các ứng dụng nền tảng Server của Windows.Tương tự như Real, Windows Media tập trung vào việc truyên phát audio/videoqua mạng Internet, hỗ trợ hai giao thức serverbase (MMS) và serverless (HTTP) vớiđịnh dạng tiêu chuẩn là ASF (Active Streaming Format)
Trang 11Windows Media cung cấp một bộ công cụ được đóng gói hoàn chỉnh có tên làWindows Media Techonologies Windows Media Technologies gồm Windows MediaTool dùng để kiến tạo các dữ liệu streaming, Windows Media Services đóng vai tròVideo Streaming Server cung cấp dữ liệu, Windows Media Player là công cụ hiển thị
dữ liệu và ngoài ra còn có Windows Media Right Manager được sử dụng để bảo vệchống sao chép dữ liệu
Windows Media Server hỗ trợ công nghệ “intelligent streaming": cho phép truyềnphát dữ liệu dựa trên độ rộng băng thông Internet giữa người dùng và Server Mặt kháccông nghê này có khả năng cung cấp việc truyền phát các luồng dữ liệu một cách liêntục kể cả khi có băng thông của mạng bị suy giảm, khi đó Server sẽ giảm việc truyềnphát dữ liệu cho phù hợp, nếu băng thông bị giảm quá nhiều server sẽ tự động giảmchất lượng của dữ liệu video cho đến khi chỉ còn dữ liệu audio được truyền qua mạng.Vào tháng 12 năm 2000, Microsoft đưa ra bộ công cụ Windows Media Encodingv8.0, là một cải tiến đáng kể về chất lượng, hỗ trợ định dạng và tính năng Nó bao gồm
hệ thống nén và mã hoá với chuẩn nén Windows Media Audio 8 và Video 8 WindowsMedia Video 8 sử dụng công nghệ nén video tiên tiến MPEG-4 So sánh với WindowsMedia Video 7, nó tăng tỉ lệ nén tới 30 %, cung cấp chất lượng xấp xỉ chất lượng DVD
ở data rate 500 kbps (với phân giải 640 by 480, 24 hình/s )
1.2.1 Giao thức truyền tải thời gian thực RTP
Giao thức truyền tải thời gian thực (RTP) mô tả một phương thức đóng gói choviệc phân phối những luồng video và audio qua mạng IP Giao thức này đã được pháttriển năm 1996 bởi nhóm chuyên trách truyền tải audio và video của IETF
RTP là một giao thức thời gian thực, end-to-end cho các dịch vụ mạng đa hướng
và đơn hướng Vì RTP hoạt động qua giao thức UDP nên nó phù hợp với phân phối đahướng, trong khi đó tất cả các giao thức được xây dựng trên giao thức TCP chỉ phùhợp cho truyền thông đơn hướng Cũng bởi lý do này mà RTP được sử dụng rộng rãitrong việc phân phối truyền thông trong trường hợp dùng IPTV, khi một nhà cung cấpdịch vụ internet có thể điều khiển lưu lượng đa hướng cho phép trong mạng của họ và
họ có thể đạt được nhiều điều từ tỷ lệ mạng đa hướng cung cấp Đối với dịch vụ đaphương tiện streaming thì RTP được sử dụng cùng với RTSP, với các video hay audiođược truyền như các luồng riêng biệt
Trang 12Đặc tính RTP mô tả hai giao thức con là giao thức truyền dữ liệu (RTP) và giaothức điều khiển RTP (RTCP) cụ thể như sau:
CODEC khác nhau cùng với các số trình tự và bước thời gian Những số trình
tự và bước thời gian này cho phép bên thu phát hiện tổn thất gói và thực hiệnsắp xếp lại khi cần thiết và khi đồng bộ các luồng truyền thông, giữa các hoạtđộng khác nhau
số dịch vụ có thể được gửi Giao thức này nên sử dụng tối đa 5% toàn băngthông
RTP có thể được sử dụng tùy ý với một giao thức mô tả phiên hoặc giao thức báohiệu như H323, giao thức điều khiển cổng phương tiện (MEGACO), (SCCP ) SkinnyCall Control Protocol , hay giao thức khởi tạo phiên (SIP)
RTP không cung cấp một cơ chế để đảm bảo việc phân phối định kỳ và cũngkhông chịu bảo đảm các yêu cầu chất lượng dịch vụ hay việc phân phối hợp lệ haykhông Hơn nữa, bản thân RTP không có các cơ chế điều khiển luồng, vì thế điềukhiển luồng và tránh xung đột không có khả năng thực hiện
1.2.2 Giao thức luồng thời gian thực RTSP
Giao thức luồng thời gian thực (RTSP) là một giao thức điều khiển phiên cung cấpkhung làm việc mở rộng để điều khiển việc phân phối số liệu thời gian thực RTSPđược phát triển vào năm 1998 bởi nhóm chuyên trách điều khiển phiên đa phương tiện
đa hướng (MMUSIC) của IETF RTSP rất hữu ích cho việc thiết lập và điều khiển cácphiên truyền thông giữa các điểm cuối, nhưng không chịu trách nhiệm cho việc truyền
dữ truyền thông Thay vào đó, RTSP dựa trên cơ chế phân phối trên nền RTP Tráingược với HTTP, RTSP là giao thức trạng thái và cả client lẫn server đều có thể phátcác yêu cầu Những yêu cầu này có thể được thực hiện theo ba cách khác nhau:
(1) Những kết nối cố định được sử dụng cho các giao dịch yêu cầu/ hồi đáp, (2) Một kết nối cho một giao dịch yêu cầu/ hồi đáp hoặc
(3) Không kết nối
Một số triển khai RTSP thông dụng là QuickTime Streaming Server (QSS) vàDarwin Streaming Server (DSS) của Apple và Helix Universal Server củaRealNetworks
1.2.3 Tải dữ liệu lũy tiến (Progressive download)
Tải dữ liệu lũy tiến là một kỹ thuật truyền dữ liệu giữa server và client, kỹ thuậtnày ngày càng phổ biến và được sử dụng rộng rãi trên internet Tải dữ liệu lũy tiến
Trang 13thông thường có thể được thực hiện bằng việc sử dụng một server HTTP hợp thức.Người sử dụng yêu cầu nội dụng đa phương tiện được tải lũy tiến thành một bộ đệmcục bộ Ngay khi đủ dữ liệu thì phương tiện bắt đầu chuyển sang play Nếu tốc độ trìnhchiếu vượt quá tốc độ tải xuống thì chương trình dừng trình chiếu cho đến khi dữ liệuđược tải về.
Tải dữ liệu lũy tiến có một số nhược điểm như :
video, vì dữ liệu được truyền và đệm sẽ không được chơi
CHƯƠNG II: TỔNG QUAN VỀ MPEG DASH
2.1 Giới thiệu DASH
Công nghệ Streaming thích ứng liên quan đến việc xử lý file nguồn trực tiếp haytheo yêu cầu và cung cấp chúng đến một số các client căn cứ vào băng thông và mức
sử dụng CPU của chúng Qua việc giám sát mức sử dụng CPU và/hoặc trạng thái bộđệm, các công nghệ streaming thích ứng có thể thay đổi các luồng khi cần thiết để đảmbảo việc phát liên tiếp hay để nâng cao chất lượng cảm nhận
Một điểm khác nhau cơ bản giữa các công nghệ streaming thích ứng là giao thứcstreaming sử dụng Ví dụ như streaming động dựa trên RTMP của Adobe sử dụng giaothức RTMP độc quyền của Adobe, yêu cầu một streaming server và một kết nối gầnnhư không ngừng giữa player và server Yêu cầu một streaming server có thể làm tănggiá thành thực hiện và các gói RTMP có thể sẽ bị các tường lửa chặn
Các kết nối gần như không ngừng nghĩa là RTMP không thể sử dụng được lợiđiểm của các server đệm như được sử dụng trong chuyển tải HTTP, như giao thứcđược sử dụng bởi HTTP Live Streaming của Apple, Smooth Streaming của Microsoft,
và HTTP-based Dynamic Streaming của Adobe Cả ba các giải pháp truyền tải này sử
Trang 14dụng các server HTTP tiêu chuẩn để streaming nội dung, loại bỏ yêu cầu cần mộtstreaming server riêng Hơn nữa các gói HTTP thân thiện với các tường lửa và có thểtận dụng được lợi thế của các cơ chế đệm HTTP trên web Khả năng này còn có thểgiảm cả băng thông sử dụng liên quan tới việc chuyển phát video và cả việc nhiều dữliệu có thể được cung cấp từ các bộ đệm web thay vì từ các server gốc, và cải thiệnchất lượng dịch vụ, do dữ liệu đệm thường gần với người xem hơn nên có thể lấy dễdàng hơn.
Trong khi hầu hết các video được stream qua web ngày nay vẫn được chuyển phátthông qua RTMP, thì có một số ngày càng lớn các tổ chức chuyển qua chuyển phátHTTP
Tất cả các công nghệ streaming thích ứng dựa trên HTTP đều sử dụng một tổ hợpcác file đa phương tiện mã hóa và các file biểu hiện xác định các luồng khác nhau vàcác URL tương ứng của chúng Các trình phát tương ứng giám sát trạng thái bộ đệm(HLS) và mức sử dụng CPU (smooth streaming và HTTP dynamic streaming) và thayđổi các luồng khi cần thiết, xác định vị trí các luồng khác từ các URL xác định trongcác file biểu hiện HLS sử dụng các phân đoạn Mpeg-2 Transport Stream (M2TS), lưutrữ hàng nghìn các file M2TS nhỏ, smooth streaming và HDS sử dụng mã hóa thờigian tìm các phân đoạn cần thiết của các luồng MP4 cơ bản tương ứng
DASH là một nỗ lực kết hợp các thành phần tốt nhất của tất cả các công nghệstreaming thích ứng trên HTTP vào một chuẩn và có thể được sử dụng cho thiết bị từ
di động cho tới các OTT
2.2 Tổng quan về MPEG DASH
2.2.1 Mô tả hệ thống
Công nghệ Streaming thích ứng động qua HTTP (DASH) xác định XML và địnhdạng nhị phân cho phép cung cấp các nội dung phương tiện từ máy chủ HTTP tiêuchuẩn đến các máy khách HTTP và lưu trữ nội dung bằng tiêu chuẩn HTTP
DASH xác định các định dạng nhị phân và XML cho phép cung cấp nội dung từcác server HTTP chuẩn tới các client HTTP và cho phép đệm dữ liệu bởi các bộ đệmHTTP chuẩn
Nội dung phần này xác định chủ yếu 2 định dạng:
Mô tả trình diễn phương tiện (MPD) là sự mô tả vể một trình diễn phương tiện,nghĩa là một trình diễn bị chặn hoặc không bị chặn của trình diễn nội dung đa phươngtiện Đặc biệt, nó định rõ các định dạng để nguồn thông báo các mã nhận dạng cho cácphân đoạn và cung cấp ngữ cảnh cho các nguồn được xác định trong một trình diễnphương tiện Các mã nhận dạng nguồn này là các HTTP-URL có thể được kết hợp vớimột loạt byte
Trang 15Các định dạng xác định định dạng thân của thực thể hồi đáp HTTP đến một GETyêu cầu HTTP GET hoặc một phần HTTP GET với phạm vi byte được chỉ định sửdụng HTTP/1.1 như quy định tại RFC 2616 đến một nguồn được xác định trong MPD.
Dữ liệu phương tiện mã hóa hiệu quả thường được chứa trong các phân đoạn và mô tả
dữ liệu theo hoặc liên kết với các định dạng phương tiện thông dụng
MPD cung cấp đầy đủ thông tin cho một máy khách để cung cấp một dịch vụ trựctuyến cho người sử dụng bằng cách truy cập các phân đoạn thông qua giao thức đượcquy định trong chương trình của các nguồn được xác định Trong phần này giao thứcgiả định là HTTP/1.1 Được giới thiệu như là một máy khách DASH trong phần còn lạicủa 23.009-1 Tuy nhiên, phần của tiêu chuẩn này không cung cấp một đặc điểm kỹthuật quy chuẩn cho máy khách
Hình 2.1 cho thấy một kiến trúc triển khai tiêu biểu trong đó các định dạng đượcxác định trong tiêu chuẩn của phần này có thể được sử dụng Các hộp với đường nétđậm cho thấy các thiết bị được đề cập trong đặc điểm kỹ thuật này như máy chủ hoặc
xử lý các định dạng được xác định trong đặc điểm kỹ thuật này, trong khi hộp nét đứtmang tính khái niệm hoặc trong suốt
Hình 2.1 Ví dụ về Hệ thống DASH tiêu biểu
Nội dung phần này giải quyết định nghĩa định dạng có thể truy cập vào giao diệnđến các DASH Client được xác định bằng các đường nét đậm Bất kỳ định dạng kháchoặc giao diện khác không nằm trong phạm vi của phần tiêu chuẩn này Trong trườnghợp này giả thiết rằng các DASH Client đã truy cập đến một MPD MPD cung cấp đầy
đủ thông tin cho DASH Client để cung cấp một dịch vụ trực tuyến cho người sử dụngbằng cách yêu cầu các Segment từ máy chủ HTTP và tách kênh, giải mã và hiển thị baogồm các dòng truyền thông
Trang 162.2.2 Mô hình máy khách DASH
Các thiết kế định dạng được xác định trong nội dung phần này dựa trên mô hìnhmáy khách thông tin được trình bày trong hình 2.2 Qua đó cho thấy, cơ cấu truy nhậpDASH nhận MPD, thiết lập, yêu cầu các vấn đề và nhận các phân đoạn hoặc các phầncủa phân đoạn Đầu ra của cơ cấu này là phương tiện ở định dạng MPEG và thông tinđịnh thời
Hình 2.2 Mô hình máy khách DASH 2.2.3 Mô hình dữ liệu DASH
DASH được thiết kế để hỗ trợ một mô hình phương tiện trực tuyến, cung cấp cácnội dung phương tiện cùng việc kiểm soát riêng từng máy khách Máy khách có thểyêu cầu dữ liệu bằng cách sử dụng giao thức HTTP từ các máy chủ web không có tínhnăng DASH Do đó, tiêu chuẩn này không tập trung vào máy khách hoặc thủ tục máychủ mà chỉ đề cập đến các định dạng dữ liệu được sử dụng để cung cấp một MPD.Việc thu thập mã hóa và các phiên bản chuyển giao của nội dung đa phương tiện
mô tả thích hợp một trình diễn phương tiện Nội dung đa phương tiện bao gồm khoảngthời gian của một hoặc nhiều nội dung đa phương tiện kề nhau Mỗi khoảng thời giancủa nội dung đa phương tiện sẽ bao gồm một hoặc nhiều thành phần nội dung phươngtiện truyền thông, ví dụ các thành phần âm thanh trong các ngôn ngữ khác nhau và mộtthành phần video Mỗi thành phần nội dung đa phương tiện có một loại thành phần nộidung đa phương tiện được chuyển giao, ví dụ như âm thanh hoặc hình ảnh
Mỗi thành phần nội dung đa phương tiện có thể có nhiều phiên bản được mã hóa,gọi là dòng phương tiện Mỗi dòng phương tiện kế thừa các thuộc tính của nội dungtruyền thông, khoảng thời gian của nội dung đa phương tiện, thành phần nội dung đaphương tiện mà từ đó nó đã được mã hóa và ngoài ra nó được nhận các thuộc tính củaquá trình mã hóa như lấy mẫu phụ, các thông số mã hóa, tỷ lệ bit mã hóa, Mô tả dữliệu này có liên quan đến việc lựa chọn tĩnh và động các thành phần nội dung đaphương tiện và dòng truyền thông
Trang 17Hình 2.3 Mô hình dữ liệu mức cao của DASH
DASH dựa trên một mô hình dữ liệu phân cấp như Hình 2.3 Một trình diễnphương tiện DASH được mô tả bởi một tài liệu mô tả trình diễn phương tiện Trình tự
mô tả của các khoảng thời gian trong một trình diễn phương tiện Một khoảng thờigian trình diễn điển hình cho một khoảng thời gian của nội dung phương tiện gồm cóngôn ngữ, thuyết minh, phụ đề vv
Trong một khoảng thời gian, các tài liệu được sắp xếp thành các tập thích ứng Ví
dụ có thể có một tập thích ứng cho thành phần hình chính và một cái riêng cho thànhphần âm thanh chính Nếu có sẵn tài liệu khác, ví dụ mô tả âm thanh hoặc phụ đề, sau
đó có thể có một tập thích ứng riêng biệt Tài liệu cũng có thể được cung cấp dướihình thức ghép kênh, trong trường hợp phiên bản hoán đổi của đa thành phần có thểđược mô tả như một tập thích ứng đơn, ví dụ một tập thích ứng chứa cả âm thanhchính và hình chính cho một chu kỳ Mỗi thành phần ghép kênh có thể được mô tảriêng biệt bằng một mô tả thành phần nội dung đa phương tiện
Một tập thích ứng chứa một bộ các trình diễn, mô tả một phiên bản mã hóa chuyểngiao của một hoặc nhiều thành phần nội dung phương tiện Một trình diễn bao gồmmột hoặc nhiều dòng phương tiện (cho mỗi thành phần nội dung phương tiện trongghép kênh) Một trình diễn bất kỳ trong một tập thích ứng đủ để đưa ra các thành phần
Trang 18nội dung phương tiện đã chứa Thông thường, máy khách có thể chuyển đổi từ trìnhdiễn này sang trình diễn khác trong một tập thích ứng để thích nghi với điều kiện mạnghoặc các yếu tố khác Máy khách cũng có thể bỏ qua các trình diễn dựa trên bộ mã hóa
- giải mã hoặc các công nghệ dựng hình khác chúng không hỗ trợ hoặc không phù hợp.Trong một trình diễn, nội dung có thể được phân chia theo thời gian vào các phânđoạn Một URL được cung cấp cho một phân đoạn
DASH xác định các mốc thời gian khác nhau Một trong những tính năng quantrọng trong DASH là các phiên bản được mã hóa các thành phần nội dung phương tiệnkhác nhau chia sẻ một mốc thời gian chung Thời gian trình diễn của đơn vị truy cậptrong nội dung phương tiện là ánh xạ tới các dòng thời gian trình bày chung toàn cầucho việc đồng bộ hóa các thành phần khác nhau của phương tiện và để cho phépchuyển đổi liền mạch các phiên bản khác nhau được mã hóa của các thành phầnphương tiện giống nhau Mốc thời gian này được gọi tắt là mốc thời gian trình diễnphương tiện Bản thân phân đoạn trình diễn chứa chính xác thông tin thời gian trìnhdiễn phương tiện cho phép đồng bộ hóa các thành phần và chuyển đổi liền mạch.Một mốc thời gian thứ hai được sử dụng để báo hiệu cho máy khách thời gian hữudụng của các phân đoạn đã quy định HTTP-URL Thời gian này được gọi là thời gianhữu dụng phân đoạn và được cung cấp trong thời gian thực Máy khách thường sosánh thời gian thực với các thời gian hữu dụng phân đoạn trước khi truy cập vào cácphân đoạn tại HTTP-URL đã quy định Đối với các dịch vụ theo yêu cầu với một MPDtĩnh, thời gian hữu dụng của tất cả các phân đoạn giống hệt nhau Đối với các dịch vụtrực tiếp khi MPD được cập nhật, thời gian hữu dụng của phân đoạn phụ thuộc vào vịtrí của phân đoạn trong mốc thời gian trình diễn phương tiện
Các phân đoạn được chỉ định một khoảng thời gian, là thời gian của các phươngtiện chứa trong phân đoạn khi được thể hiện ở tốc độ bình thường Thông thường tất cảcác phân đoạn trong một trình diễn có cùng hoặc thời gian gần tương tự nhau Tuynhiên thời gian phân đoạn có thể khác nhau từ trình diễn này đến diễn khác Một trìnhdiễn DASH có thể được xây dựng với các phân đoạn tương đối ngắn (ví dụ vài giây),hoặc phân đoạn dài hơn bao gồm một phân đoạn duy nhất cho toàn bộ trình diễn.Phân đoạn ngắn thường được yêu cầu trong trường hợp nội dung trực tiếp, nơi cónhững hạn chế trên độ trễ giáp mối Thời hạn của một phân đoạn thường rằng buộcthấp hơn về độ trễ giáp mối DASH không hỗ trợ khả năng cho phân đoạn được quágiờ mở rộng: Một phân đoạn là một đơn vị hoàn chỉnh và rời rạc mà toàn bộ phải hữudụng
Các phân đoạn có thể được chia nhỏ thành các phân đoạn con mà mỗi cái chứatoàn bộ số lượng các đơn vị truy cập hoàn chỉnh Cũng có thể có những hạn chế cụ thểđịnh dạng phương tiện ranh giới phân đoạn con, ví dụ trong định dạng tập tin phương
Trang 19tiện cơ sở ISO một phân đoạn con phải chứa toàn bộ số lượng của các đoạn phim hoànchỉnh Nếu một phân đoạn được chia thành các phân đoạn con được mô tả bằng mộtchỉ số phân đoạn nhỏ gọn mà cung cấp phạm vi thời gian trong trình diễn và loạt bytetương ứng trong phân đoạn bị chiếm bởi mỗi phân đoạn con Máy khách có thể tải vềchỉ số này trước và sau đó yêu cầu vấn đề cho các phân đoạn con cá nhân.
Máy khách có thể chuyển đổi từ trình diễn này sang trình diễn khác trong một tậpthích ứng tại bất kỳ điểm nào trong phương tiện Tuy nhiên, chuyển đổi tại các vị trítùy ý có thể trở nên phức tạp vì mã hóa phụ thuộc trong các trình diễn và các yếu tốkhác Đó cũng là mong muốn để tránh tải dữ liệu 'chồng chéo' tức là phương tiện choPeriod thời gian giống nhau từ nhiều trình diễn Thông thường, chuyển đổi là đơn giảnnhất tại một điểm truy cập ngẫu nhiên trong dòng tải mới Nhằm hợp thức hóa các yêucầu liên quan đến các định nghĩa DASH chuyển đổi một khái niệm độc lập bộ mã hóa-giải mã về điểm truy cập dòng tải và xác định các loại khác nhau của điểm truy cậpdòng tải
Phân đoạn và phân đoạn con có thể được thực hiện trong cách mà làm cho việcchuyển đổi đơn giản hơn Ví dụ, trong các trường hợp đơn giản nhất mỗi phân đoạnhoặc phân đoạn con bắt đầu với một điểm truy cập ngẫu nhiên và ranh giới của phânđoạn hoặc phân đoạn con được sắp xếp qua các trình diễn của một tập thích ứng.Trong trường hợp này, trình diễn chuyển đổi liên quan đến việc phát đến kết thúc mộtphân đoạn con của một trình diễn và sau đó phát từ đầu phân đoạn con kế tiếp củatrình diễn mới Mô tả trình diễn phương tiện và chỉ số phân đoạn cung cấp các chỉ dẫnkhác nhau mà các thuộc tính mô tả của trình diễn có thể làm cho chuyển đổi đơn giảnhơn Các hồ sơ của đặc điểm kỹ thuật này có thể yêu cầu các chỉ tiêu này được thiếtlập theo những cách nhất định làm cho việc thực hiện của khách đơn giản hơn của các
dữ liệu phương tiện tuân thủ các hạn chế được quy định
Đối với các dịch vụ theo yêu cầu, Mô tả trình diễn phương tiện là một tài liệu tĩnh
mô tả khác nhau các khía cạnh của trình diễn phương tiện Tất cả các phân đoạn củatrình diễn phương tiện là có sẵn trên máy chủ khi bất kỳ phân đoạn nào trong số đó cósẵn, đối với dịch vụ trực tiếp Tuy nhiên, Các phân đoạn trở nên hữu dụng với thờigian như nội dung được tạo ra Mô tả trình diễn phương tiện có thể được cập nhậtthường xuyên để phản ánh những thay đổi trong trình diễn ngoài giờ, ví dụ các phânđoạn URL đối với các phân đoạn mới có thể được thêm vào MPD và đối với phânđoạn cũ nếu không còn hữu dụng có thể được gỡ bỏ Tuy nhiên, nếu các phân đoạnURL được mô tả bằng cách sử dụng một khuôn mẫu, cập nhật này có thể không cầnthiết loại trừ đối với một số trường hợp thừa/chuyển đổi dự phòng
Máy khách DASH thường sử dụng phương pháp HTTP GET hoặc GET từng phầnHTTP, quy định trong RFC 2616, để truy cập vào các phân đoạn hoặc các phần củachúng Việc sử dụng HTTP làm giao thức truyền tải vốn đã có nhiều tính năng tiên
Trang 20tiến như lưu trữ, chuyển hướng hoặc xác thực Một ví dụ khác, có thể đạt an ninhtruyền tải trong HTTP được bằng cách sử dụng HTTP trên TLS như quy định trongRFC 2818.
2.3 Trình diễn phương tiện (Media Presentation)
Media Presentation là một tập hợp dữ liệu có thể truy cập đến máy khách DASH
để cung cấp dịch vụ trực tuyến cho người sử dụng Một Media Presentation được mô
tả bằng một MPD bao gồm bao gồm các thông tin mới nhất của MPD
Sau đây là một số ví dụ tiêu biểu về trình diễn phương tiện qua MPD như: khoảngthời gian, tập thích ứng,…
2.3.1 Khoảng thời gian (Period)
Một trình diễn phương tiện bao gồm một hoặc nhiều Period Một Period được xácđịnh bằng một yếu tố Period trong yếu tố MPD
Loại Period hoặc Period thông thường hoặc Period hữu dụng ban đầu cũng nhưthời gian PeriodStart của một Period thông thường được xác định như sau:
Nếu đặc trưng @start có trong Period, thì Period là một Period thông thường vàPeriodStart bằng với giá trị của đặc tính này
Nếu thuộc tính @start không có mặt, nhưng các yếu tố Period trước đó có chứamột thuộc tính @duration thì Period mới này cũng là một Period thông thường Thờigian bắt đầu của PeriodStart của Period mới là tổng thời gian bắt đầu của PeriodStartcủa Period trước đó và giá trị của đặc tính @duration của Period trước
Nếu (i) thuộc tính @start không có mặt, và (ii) yếu tố Period là đầu tiên trongMPD, và (iii) MPD@type là "tĩnh", thì thời gian PeriodStart được cài đặt về số 0.Nếu (i) thuộc tính @start không có mặt, và (ii) yếu tố Period trước đó không chứamột đặc tính thời gian @ trong MPD hoặc yếu tố Period là đầu tiên trong MPD, và (iii)MPD@type là "động" thì Period này là một Early Available Period (xem dưới đây đểbiết thêm chi tiết)
Đối với bất kỳ Period thông thường chứa sau đây: PeriodStart phản ánh thời gianthực tế trôi qua sau khi thực hiện phương tiện của các Period trước trong MediaPresentation này liên quan đến thời gian PeriodStart của Period đầu tiên trong MediaPresentation Thời gian kéo dài cho đến PeriodStart của Period tiếp theo hoặc đếnPeriod cuối cùng của Media Presentation Hơn nữa, sự khác biệt giữa thời gianPeriodStart của một Period và thời gian PeriodStart của Period sau, nếu đây khôngphải là Period cuối cùng hoặc giá trị của MPD@media Presentation Duration, nếu đây
là Period cuối cùng thì thời gian trình diễn trong Media Presentation đượcRepresentation bằng các Representation trong Period này
Trang 21Các Period hữu dụng ban đầu có thể được sử dụng để khởi động quảng cáo của dữliệu phi phương tiện khác trước khi chính dữ liệu phương tiện trở nên hữu dụng Cácyếu tố Period tạo tài liệu các Period hữu dụng ban đầu sẽ không diễn ra trước khi bất
kỳ yếu tố Period tạo tài liệu một Period thông thường Đối với các Period hữu dụngban đầu, bất kỳ nguồn nào được công bố trong cùng một yếu tố Period sẽ hữu dụng.Như một yếu tố Period sẽ không chứa các URL đến các phân đoạn trình diễn Dữ liệuđược chứa trong cùng một yếu tố Period không có trong Period của MediaPresentation Chỉ khi thời gian PeriodStart được biết đến thông qua thông tin cập nhậtcủa MPD như một yếu tố Period trình diễn cho một Period thông thường Tuy nhiênmột bản cập nhật của MPD có thể loại bỏ một yếu tố Period biểu thị một Period hữudụng ban đầu trong các cập nhật sau này của MPD miễn là không có thời gianPeriodStart được liên kết với Period
Để tránh điều khiển bằng tay của một yếu tố điều khiển từ xa chứa một yếu tốPeriod duy nhất để xác định mốc thời gian Period, ví dụ trong trường hợp tìm kiếm thìPeriod@start hoặc Period@duration của chu kỳ trước đó sẽ có trong MPD
Bảng 2.1 Semantics of Period element Tên phần tử hoặc
thuộc tính
Period bên ngoài
Mặc định:
onReques t
Xác định hướng dẫn xử lý, có thể là
"onLoad" hoặc "onRequest".
Thuộc tính này sẽ không có nếu thuộc tính
@xlink:href không có mặt.
này Mã nhận dạng phải là duy nhất trong phạm vi của bộ Media Presentation
Nếu không có thì không có mã nhận dạng choPeriod
Trang 22Period Thời gian PeriodStart được sử dụng
như một mấu chốt để xác định thời gian bắt đầu MPD cho mỗi Media Segment cũng như xác định thời gian trình diễn của từng đơn vị truy cập trong mốc thời gian bộ Media Presentation
để xác định thời gian PeriodStart của Period
tiếp theo
Mặc định:
false
Khi cài đặt 'true', điều này tương đương
như là AdaptationSet@bitstreamSwitching
cho mỗi Adaptation Set chứa trong Period
này được thiết lập để 'true' Trong trường
hợp này, thuộc tính
AdaptationSet@bitstreamSwitching không
được cài 'false' cho bất kỳ Adaptation Set
nào trong Period này
BaseURL 0…N Quy định một cơ sở URL có thể được sử
dụng cho việc tham khảo độ phân giải và lựa chọn URL thay thế
SegmentBase 0 1 Xác định thông tin Segment Base mặc định
Thông tin trong yếu tố này bị mất hiệu lực
do thông tin trong
AdaptationSet.SegmentBase và Representation.SegmentBase, nếu có mặt SegmentList 0 1 Xác định thông tin Segment List mặc định
Thông tin trong yếu tố này bị mất hiệu lực
do thông tin trong
AdapationSet.SegmentList và Representation.SegmentList, nếu có mặt SegmentTemplate 0 1 Xác định thông tin Segment Template mặc
định
Thông tin trong yếu tố này bị mất hiệu lực
do thông tin trong
AdapationSet.SegmentTemplate và
Trang 23Representation.SegmentTemplate, nếu có
mặt
AdaptationSet 0 N Xác định một Adaptation Set
Ít nhất mỗi Period phải có một Adaptation Set Tuy nhiên, yếu tố thực tế có thể chỉ có trong một yếu tố điều khiển từ xa nếu xlink
sử dụng
Chú thích:
Các thuộc tính: M=Mandatory, O=Optional, OD=Optional với
Default Value, CM=Conditionally Mandatory (điều kiện bắt buộc)Các phần tử: <minOccurs> <maxOccurs> (N=unbounded)
Lưu ý rằng những điều kiện duy nhất có giá trị mà không cần sử dụng xlink: href.
Nếu liên kết được sử dụng thì tất cả các đặc tính là "tùy chọn" và <minOccurs=0>
Phần tử là in đậm; thuộc tính là không tô đậm và đi trước là một @.
Trang 24</xs:sequence>
<xs:attribute ref="xlink:href"/>
<xs:attribute ref="xlink:actuate" default="onRequest"/>
<xs:attribute name="id" type="xs:string" />
<xs:attribute name="start" type="xs:duration"/>
<xs:attribute name="duration" type="xs:duration"/>
<xs:attribute name="bitstreamSwitching" type="xs:boolean" default="false"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
2.3.2 Các tập thích ứng (Adaptation Sets)
Mỗi Period bao gồm một hoặc nhiều AdaptationSet Một AdaptationSet được mô
tả bằng một yếu tố AdaptationSet Các yếu tố AdaptationSet chứa trong một yếu tốPeriod
Một Adaptation Set chứa các trình diễn thay thế, tức là chỉ một trình diễn trongmột Adaptation Set dự kiến sẽ xuất hiện cùng lúc Tất cả các trình diễn trong mộtAdaptation Set cho các thành phần nội dung phương tiện giống nhau do đó chứa cácluồng phương tiện, các luồng này được xem là tương đương nhau
Các trình diễn xuất hiện trong cùng một Adaptation Set chỉ khi chúng có giá trịgiống nhau cho tất cả thuộc tính thành phần nội dung phương tiện này cho từng thànhphần nội dung phương tiện
Các giá trị đối với các yếu tố Role, Accessibility, Viewpoint và Rating nói chungkhông được cung cấp trong phạm vi phần này của tiêu chuẩn Mpeg DASH
Nếu tồn tại các thành phần nội dung đa phương tiện thì các thuộc tính của mỗithành phần nội dung phương tiện được mô tả bằng một yếu tố ContentComponent
Trang 25riêng biệt Các yếu tố ContentComponent chia sẻ các yếu tố và thuộc tính phổ biến vớiyếu tố AdaptationSet, giá trị mặc định hoặc các giá trị áp dụng cho tất cả các thànhphần nội dung phương tiện có thể được cung cấp trực tiếp trong các yếu tố trongAdaptationSet Các thuộc tính có trong AdaptationSet sẽ không được lặp lại trong yếu
tố ContentComponent
Yếu tố AdaptationSet có thể chứa các giá trị mặc định cho các yếu tố và thuộc tínhliên quan được chứa trong các trình diễn Bất kỳ đặc tính phổ biến nào chỉ được cótrong yếu tố AdaptationSet hoặc trong yếu tố trình diễn chứ không có trong cả hai.Yếu tố AdaptationSet cũng hỗ trợ việc mô tả các phạm vi đối với các thuộc tính
@băngthông, @chiều rộng, @chiềucao, @tốcđộkhung liên quan được chứa trong cáctrình diễn, cung cấp một bản tóm tắt tất cả các giá trị cho tất cả các trình diễn trongmột AdaptationSet này Các trình diễn chứa trong một AdaptationSet sẽ không chứacác giá trị bên ngoài phạm vi tài liệu được ghi nhận đối với AdaptationSet đó
Các AdaptationSet có thể được sắp xếp thêm thành các nhóm bằng cách sử dụngthuộc tính @group Các ngữ nghĩa của nhóm này là nội dung phương tiện trong mộtPeriod được trình diễn bởi:
1) hoặc trình diễn từ nhóm 0, nếu có
2) hoặc sự kết hợp của nhiều nhất một trình diễn từ mỗi nhóm khác 0
Nếu thuộc tính AdaptationSet@group không có thì tất cả trình diễn trongAdaptation Set này được chuyển đến một nhóm Adaptation Set khác không
Bảng 2.2 Semantics of AdaptationSet element Tên phần tử
hoặc thuộc tính
AdaptationSet Mô tả Adaptation Set
AdaptationSet bên ngoài.
@xlink:actuate
ODMặc định:
'onRequest '
Đặc tính sẽ không có trong một yếu tố điều
Trang 26(thuộc tính và yếu tố từ loại cơ sở
RepresentationBaseType).
Sẽ sử dụng cú pháp và ngữ nghĩa theo IETF RFC 5646
Nếu không có, mã ngôn ngữ có thể được xác định cho từng thành phần phương tiện hoặc có thể không xác định
cho Adaptation Set này Một giá trị của loại nội dung mức cao được xác định trong RFC1521, khoản 4 sẽ được thực hiện
Nếu không có mặt, nội dung loại thành phần truyền thông có thể được định nghĩa cho mỗi thành phần truyền thông hoặc có thể không biết
phần phương tiện video trong hình thức một chuỗi bao gồm hai số nguyên được tách riêng
bằng ‘:’,ví dụ "16:9"khi có thuộc tính này và các thuộc tính @width và @height.
Việc thiết lập các Representation cũng được trình bày, về khía cạnh hình ảnh của thuộc tính này là giống nhau theo giá trị của
@width, @height, và @sar, tức là nó phải thể hiện cùng một tỷ lệ (@width * sarx):
(@height * sary), với sarx là số đầu tiên trong
@sar và Sary là số thứ hai.
Nếu không có, tỷ lệ khía cạnh hình ảnh có thể được xác định cho từng thành phần phương tiện hoặc là không xác định
Trang 27h
cả các Representation của Adaptation Set này Giá trị này có cùng đơn vị như thuộc tính
@bandwidth.
Nếu không có, giá trị là không xác định
@maxBandwidt
h
các Representation của Adaptation Set này Giá trị này có cùng đơn vị như thuộc tính
@bandwidth.
Nếu không có, giá trị là không xác định
các Representation trong Adaptation Set này Giá trị này có cùng các đơn vị như thuộc tính
@width.
Nếu không có thì giá trị không xác định
Representation của Adaptation Set này Giá trị
này có cùng các đơn vị như thuộc tính @width.
Nếu không có thì giá trị không xác định
các Representation của Adaptation Set này Giá trị này có cùng các đơn vị như thuộc tính
@height.
Nếu không có thì giá trị không xác định
cácRepresentation trong Adaptation Set này Giá trị này có cùng các đơn vị như thuộc tính
@width.
Nếu không có thì giá trị không xác định
@minFrame
Rate
cả các Representation trong Adaptation Set này.Giá trị này được mã hóa trong cùng định dạng
như thuộc tính @frameRate.
Nếu không có thì giá trị không xác định
Trang 28Rate các Representation trong Adaptation Set này
Giá trị này được mã hóa trong cùng định dạng
như thuộc tính @frameRate.
Nếu không có thì giá trị không xác định
@segment
Alignment
ODmặc định:
false
Khi không cài ‘false’, quy định này dành cho bất kỳ hai Representation X và Y trong cùng Adaptation Set, Bất cứ khi nào m không bằng
với n thì Segment m-th của X và Segment
n-th của Y không chồng chéo nhau Không bao giờ m bằng với n
Đối với các Adaptation Set có chứa các Representation với các thành phần nội dung đa phương tiện thì, giá trị thuộc tính này phải
là 'true' hoặc 'false'.
Đối với các Adaptation Set có chứa các Representation với các thành phần nội dung phương tiện duy nhất khi hai yếu tố Adaptation Set trong một Period chia sẽ giá trị số nguyên giống nhau cho đặc tính này thì đối với bất kỳ hai Representation X và Y trong sự liên kết của hai Adaptation Set Bất cứ khi nào m không
bằng với n thì Segment m-th của X và Segment n-th của Y không chồng chéo nhau Không bao
giờ m bằng với n
@bitstream
Switching
- Tất cả các Representation trong Adaptation Set phải có cùng số M Media Segment;
o nếu có các Segment chuyển đổ dòng bit,
Bi(1), Si(1),1, Bi(2), Si(2),2, , Bi(k), Si(k),k, , Bi(M), Si(M),M
Trang 29o khác
Si(1),1, Si(2),2, , Si(k),k, , Si(M),M,
trong đó bất kỳ i(k) đối với tất cả các giá trị k trong phạm vi từ 1 đến M tương ứng là một giá trị số nguyên trong phạm vi từ 1 đến N
Các kết quả trong một "chuỗi Segment phù hợp"với định dạng phương tiện được xác định trong
false
Nếu căn chỉnh @subsegmentAlignment cho một Adaptation Set cài khác ‘false’ thì tất cả các điều
kiện sau đây được thỏa mãn:
(tức là chứa một chỉ số Segment hoặc có một Index Segment cung cấp một chỉ số choMedia Segment)
Đối với bất kỳ hai Representation X và Y trong cùng Adaptation Set, bất cứ khi nào m
không bằng với n thì Subsegment m-th của
X và Subsegment n-th của Y không chồng
chéo nhau, không bao giờ m bằng với n
Đối với các Adaptation Set có chứa các Representation với một thành phần nội dungphương tiện duy nhất, khi hai yếu tố
AdaptationSet trong một Period chia sẽ giá
trị số nguyên giống nhau cho đặc tính này thì đối với bất kỳ hai Representation X và Ytrong sự liên kết của hai Adaptation Set, bất
cứ khi nào m không bằng với n thì
Subsegment m-th của X và Subsegment
n-th của Y không chồng chéo nhau, không baogiờ m bằng với n
@subsegment
StartsWithSAP
ODmặc định:
0
Khi lớn hơn 0, quy định mỗi Subsegment với
loại SAP lớn hơn 0 bắt đầu với một SAP_type
nhỏ hơn hoặc bằng với giá trị của
@subsegmentStartsWithSAP
Trang 30Các ngữ nghĩa của @subsegmentStartsWithSAP
bằng 0 là không xác định
Accessibility 0…N Xác định thông tin về sơ đồ khả năng truy cập
trò
Rating 0…N Xác định thông tin về sơ đồ đánh giá
Viewpoint 0…N Xác định thông tin về sơ đồ chú thích điểm
quan sát
ContentCompo
nent
dung phương tiện chứa trong Adaptation Set này
BaseURL 0…N Xác định một URL cơ sở có thể được sử dụng
để tham chiếu độ phân giải và lựa chọn URL thay thế
SegmentBase 0 1 Xác định thông tin cơ sở Segment mặc định
Thông tin trong yếu tố này bị xóa bỏ bởi thông
tin trong Representation.SegmentBase, nếu
có
SegmentList 0 1 Xác định thông tin Segment List mặc định
Thông tin trong yếu tố này bị xóa bỏ bởi thông
tin trong Representation.SegmentList, nếu có SegmentTempl
ate
định Thông tin trong yếu tố này bị xóa bỏ bởi thông tin trong
Representation.SegmentTemplate, nếu có Representation 0…N Xác định một Representation Ít nhất một yếu
tố Representation phải có trong mỗi AdaptationSet Tuy nhiên, yếu tố thực tế có thể là một phần của một yếu tố điều khiển từ xa
Chú thích:
Đối với đặc tính: M=Bắt buộc, O=Lựa chọn, OD=Lựa chọn với giá trị mặcđịnh, CM=Điều kiện bắt buộc, F=Cố định
Đối với yếu tố: <minOccurs> <maxOccurs> (N=không giới hạn)
Lưu ý rằng những điều kiện duy nhất có giá trị mà không cần sử dụng xlink: href.
Nếu liên kết được sử dụng thì tất cả các đặc tính là "tùy chọn" và <minOccurs=0>
Trang 31Các yếu tố là tô đậm, thuộc tính là không tô đậm và trước đó với @, Danh sách các
yếu tố và thuộc tính in nghiêng đậm đề cập đến việc giảm bớt loại Cơ sở đã được mở
<xs:attribute ref="xlink:href"/>
<xs:attribute ref="xlink:actuate" default="onRequest"/>
<xs:attribute name="id" type="xs:unsignedInt"/>
Trang 32<xs:attribute name="group" type="xs:unsignedInt"/>
<xs:attribute name="lang" type="xs:language"/>
<xs:attribute name="contentType" type="xs:string"/>
<xs:attribute name="par" type="RatioType"/>
<xs:attribute name="minBandwidth" type="xs:unsignedInt"/>
<xs:attribute name="maxBandwidth" type="xs:unsignedInt"/>
<xs:attribute name="minWidth" type="xs:unsignedInt"/>
<xs:attribute name="maxWidth" type="xs:unsignedInt"/>
<xs:attribute name="minHeight" type="xs:unsignedInt"/>
<xs:attribute name="maxHeight" type="xs:unsignedInt"/>
<xs:attribute name="minFrameRate" type="FrameRateType"/>
<xs:attribute name="maxFrameRate" type="FrameRateType"/>
<xs:attribute name="segmentAlignment" type="ConditionalUintType" default="false"/>
<xs:attribute name="subsegmentAlignment" type="ConditionalUintType" default="false"/>
<xs:attribute name="subsegmentStartsWithSAP" type="SAPType" default
<! Ratio Type for sar and par >
<xs:simpleType name="RatioType">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]*:[0-9]*"/>
</xs:restriction>
</xs:simpleType>
<! Type for Frame Rate >
<xs:simpleType name="FrameRateType">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]*[0-9](/[0-9]*[0-9])?"/>
</xs:restriction>
</xs:simpleType>
Trang 33<! Conditional Unsigned Integer (unsignedInt or boolean) >
<xs:simpleType name="ConditionalUintType">
<xs:union memberTypes="xs:unsignedInt xs:boolean"/>
</xs:simpleType>
2.3.3 Thành phần nội dung phương tiện
Mỗi Adaptation Set chứa một hoặc nhiều thành phần nội dung phương tiện Cácthuộc tính của mỗi thành phần nội dung phương tiện được mô tả bởi một yếu tố thànhphần nội dung hoặc có thể được mô tả trực tiếp trên yếu tố Adaptation Set nếu chỉ cómột thành phần nội dung phương tiện có trong Adaptation Set Yếu tố Adaptation Setchứa các yếu tố thành phần nội dung
Bảng 2.3 Ngữ nghĩa của yếu tố Content Component Tên yếu tố và đặc
tính
description of a content component
phần phương tiện này Thuộc tính phải là duy nhất trong phạm vi chứa Adaptation Set
Trang 34tố Viewpoint.
Chú thích:
Đối với đặc tính: M=Bắt buộc, O=Lựa chọn, OD=Lựa chọn với giá trị mặcđịnh, CM=Điều kiện bắt buộc, F=Cố định
Đối với yếu tố: <minOccurs> <maxOccurs> (N=không giới hạn)
Các yếu tố được tô đậm, thuộc tính là không tô đậm và trước đó với @, Danh sáchcác yếu tố và thuộc tính in nghiêng đậm đề cập đến việc giảm bớt loại Cơ sở đã được
<xs:attribute name="id" type="xs:unsignedInt"/>
<xs:attribute name="lang" type="xs:language"/>
<xs:attribute name="contentType" type="xs:string"/>
<xs:attribute name="par" type="RatioType"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
2.3.4 Trình diễn (Representation)
Các Representation được mô tả bằng yếu tố Representation Các yếu tốRepresentation được chứa trong một yếu tố Adapter Set
Trang 35Một Representation là một trong những sự lựa chọn thay thế của cài đặt hoànchỉnh hoặc Subset của các thành phần nội dung phương tiện bao gồm nội dung phươngtiện trong chu kỳ được xác định.
Một Representation khởi động từ lúc bắt đầu đến kết thúc của PeriodStart and củaPeriod, tức là bắt đầu của chu kỳ tiếp theo hoặc kết thúc của trình diễn đa phương tiện.Mỗi Representation bao gồm một hoặc nhiều dòng phương tiện, nơi mỗi dòngphương tiện là một phiên bản được mã hóa của một thành phần nội dung phương tiện.Một Representation bao gồm một hoặc nhiều phân đoạn
Mỗi Representation phải bao gồm một phân đoạn khởi động hoặc mỗi phân đoạn
đa phương tiện trong Representation phải tự khởi động, tức là phân đoạn đa phươngtiện tự nó phải phù hợp với phương tiện theo quy định trong thuộc tính @mimeTypecho Representation này
Khi một Representation không phải là một Representation phụ thuộc, tức là không
có thuộc tính @dependencyId thì nối phân đoạn khởi động, nếu có và tất cả phân đoạn
đa phương tiện liên tiếp trong một Representation sẽ phải Representation cho một dãyphân đoạn phù hợp theo quy định tại mục Bitstream concatenation phù hợp với loạiphương tiện được xác định trong thuộc tính @mimeType cho Representation này.Các Representation phụ thuộc được mô tả bằng một yếu tố Representation chứamột @ phụ thuộc của các Representation bổ sung cho việc giải mã và/hoặc trình diễn
@dependencyId chứa các giá trị của thuộc tính id@ của tất cả các Representation bổsung, tức là các Representation cần thuộc tính encyId Representation phụ thuộc là cácRepresentation thông thường ngoại trừ việc chúng phụ thuộc vào một cài đặt để trìnhbày và/hoặc giải mã các thành phần nội dung phương tiện có trong Representation phụthuộc này
Đối với bất kỳ Representation phụ thuộc X thì phụ thuộc vào Representation bổsung Y, bất cứ khi nào m không bằng n thì phân đoạn con m-th của X và phân đoạncon n-th của Y không chồng chéo Đối với các Representation phụ thuộc nối phânđoạn khởi động với dãy các phân đoạn con của các Representation phụ thuộc đứngtrước là một phân đoạn con tương ứng của từng Representation bổ sung theo thứ tựđược cung cấp trong thuộc tính @dependencyId phải Representation cho một dãy phânđoạn con phù hợp được quy định trong mục Bitstream concatenation phù hợp với địnhdạng phương tiện theo quy định trong thuộc tính @mimeType cho Representation phụthuộc này
GHI CHÚ: Khi giải mã một Representation phụ thuộc được bắt đầu từ một SAPtrong phân đoạn con với số i thì quá trình giải mã không cần phải truy cập dữ liệu từ(các) Representation bổ sung từ bất kỳ phân đoạn con sớm hơn phân đoạn con với số icủa (các) Representation bổ sung
Trang 36Bảng 2.4 Semantics of Representation element Tên yếu tố và đăc
Representation có chức năng giống hệt với một Representation khác trong cùng thời kỳ
Mã nhận dạng không chứa các ký tự là khoảng trắng
Nếu được sử dụng trong việc xây dựng URL dựa trên mẫu theo quy định trong mục
Template-based Segment URL thì chuỗi ký
tự chỉ được chứa các ký tự được cho phép trong một URL-HTTP theo đúng với RFC 1738
Xem xét một giả thuyết kênh tốc độ bit liên tục của băng thông với giá trị của thuộc tính này trong mỗi giây bit (bps) Sau đó, nếu Representation được cung cấp liên tục với tốc
độ bit này bắt đầu từ bất kỳ SAP được chỉ
định bởi @startWithSAP hoặc bất kỳ chỉ số
Segment thì một máy khách có thể được đảm bảo có đủ dữ liệu phát lại liên tục, cung cấp phát lại bắt đầu sau khi các bit
@minBufferTime * @bandwidth đã nhận
được (tức là tại thời điểm
@minBufferTimesau khi nhận được bit đầu
tiên)
Đối với Representation phụ thuộc vào giá trị này phải quy định cụ thể băng thông tối thiểu như đã quy định ở trên của Representation này và tất cả Representation bổ sung
Xác định một xếp hạng chất lượng của Representation liên quan đến các
Trang 37@qualityRanking O Representation khác trong cùng Adaptation
Set Các giá trị thấp hơn Representation cho nội dung có chất lượng cao hơn Nếu không
có thì xếp hạng không được xác định
Xác định tất cả Representation bổ sung, Representation phụ thuộc vào giải mã
và/hoặc quá trình trình diễn như một danh sách phân cách khoảng trắng của các giá trị
thuộc tính @id.
Nếu không có thì Representation có thể
được giải mã và thực hiện độc lập với bất kỳ Representation nào khác
@mediaStream
StructureId
O
Thuộc tính có thể có mặt đối với các
Representation chứa video và không xác
định ngữ nghĩa cho bất kỳ loại nào khác của Representation
Nếu có, thuộc tính @mediaStreamStructureId
xác định một danh sách phân cách khoảng trắng của các giá trị mã nhận dạng cấu trúc dòng phương tiện Nếu các dòng phương tiện chia sẻ giá trị mã nhận dạng cơ cấu dòng phương tiện tương tự thì các dòng phương tiện có các đặc điểm sau:
- Các dòng phương tiện có cùng số điểm truy cập dòng của loại 1 đến 3
- Các giá trị của TSAP, TDEC, TEPT, và TPTF của SAP i-th của loại 1 đến 3 trong một dòng phương tiện là giống hệt với các giá trị của TSAP, TDEC, TEPT và TPTF, tương ứngvới SAP i-th của loại 1 đến 3 trong các dòng phương tiện khác
- Một dòng phương tiện được hình thành bằng cách nối dòng phương tiện của Representation đầu tiên đến ISAU (độc nhất) của SAP i-th loại 1 đến 3 và dòng phương tiệncủa Representation thứ hai (có cùng giá trị mã
Trang 38nhận dạng cơ cấu dòng phương tiện như Representation đầu tiên) bắt đầu từ ISAU (độcnhất) của SAP thứ i của loại 1 đến 3 phù hợp với các đặc điểm kỹ thuật.
Hơn nữa, những hình ảnh được giải mã có một chất lượng có thể chấp nhận được bất kể loại đơn vị truy cập của điểm truy cập dòng được sử dụng
Tất cả giá trị mã nhận dạng cơ cấu dòng phương tiện cho một Adaptation Set phải khác với những Adaptation Set khác
Nếu không có thì Representation này không tương đồng với các Representation khác được biết đến
CommonAttributes
Elements
và yếu tố từ loại cơ sở RepresentationBaseType)
BaseURL 0…N Xác định một URL cơ sở mà có thể được sử
dụng để tham khảo độ phân giải và lựa chọn URL thay thế
SubRepresentation 0…N Xác định thông tin về một
Sub-Representation được cài vào có chứa Representation
SegmentBase 0 1 Xác định thông tin Segment Base mặc định
SegmentList 0 1 Xác định thông tin Segment List
SegmentTemplate 0 1 Xác định thông tin SegmentTemplate
Chú thích:
Đối với đặc tính: M=Bắt buộc, O=Lựa chọn, OD=Lựa chọn với giá trị mặc định CM=Điều kiện bắt buộc
Đối với yếu tố: <minOccurs> <maxOccurs> (N=không giới hạn)
Các yếu tố được tô đậm, thuộc tính là không tô đậm và trước đó với @, Danh sách
các yếu tố và thuộc tính in nghiêng đậm đề cập đến việc giảm bớt loại cơ sở đã được
mở rộng bằng loại này
Trang 39<xs:attribute name="qualityRanking" type="xs:unsignedInt"/>
<xs:attribute name="dependencyId" type="StringVectorType"/>
<xs:attribute name="mediaStreamStructureId" type="StringVectorType"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<! String without white spaces >
<xs:simpleType name="StringNoWhitespaceType">
<xs:restriction base="xs:string">
Trang 40<xs:pattern value="[^\r\n\t \p{Z}]*"/>
</xs:restriction>
</xs:simpleType>
<! Whitespace-separated list of strings >
<xs:simpleType name="StringVectorType">
<xs:list itemType="xs:string"/>
</xs:simpleType>
2.3.5 Phân đoạn và thông tin phân đoạn (Segments and Segment information)
a) Tổng quan
Điều khoản này xác định thông tin MPD cho các Segment
Cụ thể, một Segment sẽ được tham chiếu bởi một URL HTTP bao gồm trongMPD, một URL HTTP được xác định như một <absolute-URI> theo RFC 3986, khoản4.3 với một sơ đồ cố định "http" hay "https", có thể bị hạn chế bởi một phạm vi bytenếu một phạm vi thuộc tính được cung cấp cùng với URL Phạm vi byte phải thực hiệnnhư một đặc điểm vùng byte được xác định trong RFC 2616, khoản 14.35.1 Bị hạnchế đến một biểu thức đơn xác định một phạm vi byte kề nhau
Mỗi Segment được tham chiếu thông qua một URL HTTP trong MPD được liênkết với một khoảng thời gian hữu dụng Segment, tức là một cửa sổ thời gian trong thờigian thực mà tại đó Segment có thể được truy cập thông qua URL-HTTP Cửa sổkhoảng thời gian hữu dụng Segment được mô tả bằng thời gian khởi đầu hữu dụngSegment và thời gian kết thúc hữu dụng Segment
Các Representation được chuyển giao thông tin Segment thông qua sự có mặt củacác yếu tố BaseURL, SegmentBase, SegmentTemplate và/hoặc SegmentList Thôngtin Segment cung cấp thông tin về tính hữu dụng, vị trí và thuộc tính của tất cảSegment chứa trong một Representation Cụ thể, thông tin về sự có mặt và vị trí củacác Segment: Initialization, Media, Index and Bitstream Switching được cung cấp.Các yếu tố SegmentBase, SegmentTemplate và SegmentList có thể có mặt trongchính yếu tố Representation Ngoài ra, để thể hiện các giá trị mặc định thì chúng có thể
có trong Period và yếu tố AdaptationSet Ở mỗi cấp độ hầu hết một trong ba yếu tốSegmentBase, SegmentTemplate và SegmentList sẽ có mặt Hơn nữa, nếuSegmentTemplate hoặc SegmentList có mặt ở một mức độ của hệ thống phân cấp thìcác yếu tố khác không được có mặt trên bất kỳ cấp độ hệ thống phân cấp thấp hơn.SegmentBase, SegmentTemplate và SegmentList phải kế thừa các thuộc tính và yếu tố
từ yếu tố giống nhau trên một mức độ cao hơn Nếu thuộc tính hoặc yếu tố giống nhau