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

Đồng bộ vidieo audio theo chuẩn MPEG

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 (666.91 KB, 28 trang )

Trường Đại Học Bách Khoa Hà Nội
Viện CNTT & TT
----------***----------

BÁO CÁO BÀI TẬP LỚN
MÔN XỬ LÝ DỮ LIỆU ĐA PHƯƠNG TIỆN

Đề tài:

Đồng bộ audio-video theo chuẩn MPEG
GV hướng dẫn: PGS.TS Nguyễn Thị Hoàng Lan
Sinh viên thực hiện:
1.

Javkhlanbaatar Nomintsetseg

20114660

2.

Lều Thị Lan

20111775

3.

Bùi Hồng Nhung

20111947

4.



Trần Xuân Quý

20112030
Hà Nội, 05/2015


Mục lục


Lời Nói Đầu

Ngày nay, với sự phát triển nhanh chóng và không ngừng công nghệ thông tin,
việc xử lý dữ liệu đa phương tiện trên toàn cầu đang là nhu cầu cấp thiết của loài
người hiện nay và liên tục có những phát minh đưa con người tiến tới một xã hội thông
tin. Vấn đề đồng bộ audio-video theo các chuẩn rất cần thiết cho các đài truyền hình
cáp,vệ tinh,... Một trong các chuẩn mà các hãng đài truyền hình cáp đang hướng đến
và hay quan tâm đến đó là Chuẩn MPEG2. Tuân theo MPEG2, các đài truyền hình của
các nước có thể phát sóng cùng nhau, cho phép người dùng có thể xem được các
chương trình tivi mà không cần quan tâm tới vấn đề đồng bộ.
Với đề tài “Đồng bộ audio-video theo chuẩn MPEG”, báo cáo của chúng em phân
chia như sau:
-

Tìm hiểu chung về đồng bộ Audio-Video do bạn Nomin thực hiện.
Tìm hiểu đồng bộ tích hợp dữ liệu audio-video theo chuẩn MPEG2 do bạn Bùi

-

Hồng Nhung thực hiện.

Tìm hiểu một giải pháp ứng dụng đồng bộ Audio-Video MPEG2 thời gian thực

-

và giải thích ngữ cảnh áp dụng do bạn Lều Thị Lan thực hiện.
Ứng dụng thử nghiệm và giải thích do bạn Trần Xuân Quý đảm nhiệm.
Do thời gian hoàn thành báo cáo khá ngắn, kiến thức của chúng em về các vấn đề

liên quan đến đề tài còn rất hạn chế nên báo cáo có nhiều sai sót và chưa chính xác.
Chúng em mong cô chỉ dẫn để báo cáo được đầy đủ, chính xác và hoàn thiện hơn.
Chúng em xin chân thành cảm ơn!


I.

Tổng quan về đồng bộ đa phương tiện

1.

Dữ liệu đa phương tiện
Dữ liệu đa phương tiện cần được hiểu là nhiều loại dữ liệu sẽ được thu thập, gửi đi

và hiển thị một cách đồng thời. Có rất nhiều loại dữ liệu: đơn giản nhất là dữ liệu văn
bản và các dạng dữ liệu khác như ảnh đồ họa, âm thanh, video . . .
Ta có thể phân loại các loại dữ liệu trên ra thành 2 loại, theo ngữ cảnh của việc
truyền dữ liệu đa phương tiện.
-

Loại thứ nhất: Dữ liệu rời rạc (discrete media) gồm các loại dữ liệu mà khi hiển thị
không bị bó buộc chặt chẽ về thời gian. Ví dụ ta có thể nhận 1 bức ảnh từ web server

để hiển thị trong web browser. Tùy theo thông lượng mạng mà thời gian nhận bức ảnh

-

có thể nhanh hay chậm trướt khi nó được giải mã và hiển thị.
Loại thứ 2: Dữ liệu liên tục.
Dữ liệu này có một yêu cầu chặt chẽ về thời gian hiển thị và các thông tin này được
nhúng bên trong dữ liệu.
Ta có thể thấy ngay ví dụ đó là dữ liệu video, audio. Dữ liệu video thường được mã
hóa theo các frame được hiền thị tuần tự với một tần số nào đó, ví dụ 25hình/giây
(frame per second fps). Do đó để hiển thị các đối tượng video một cách đúng đắn, thì
không chỉ cần nhận dữ liệu video một cách chính xác mà còn cần phải giải mã và hiển
thị chúng theo đúng trình tự và thời điểm. Nếu không làm được điều đó thì video hiển
thị chất lượng thấp.
Do đó lưu lượng mạng dành cho dữ liệu đa phương tiện có thể coi là lưu lượng cố
định do sự cần thiết duy trì bộ định thời gian chặt chẽ. Từ đó ta thấy, thách thức trong
truyền thông đa phương tiện nói chung và đặc biệt là truyền thông dữ liệu đa phương
tiện liên tục, đó là phải đảm bảo tính vẹn toàn của cả dữ liệu và thời gian hiển thị
(presentation timing).
Hơn nữa, dữ liệu đa phương tiện thông thường là sự kết hợp của nhiều dòng dữ liệu
khác nhau và được đồng bộ với nhau. Do đó, độ phức tạp sẽ được nhân lên nhiều lần
và phải đồng bộ giữa các dòng dữ liệu với nhau.


Nguồn dòng dữ liệu đa phương tiện gồm hai loại là:
- Nguồn thông tin trực tiếp: Các tín hiệu vật lý được thu nhận, số hóa và truyền đi ngay

tới nơi nhận mà không qua lưu trữ trung gian.
- Nguồn thông tin được tái tạo hay tổng hợp: Các đối tượng media khác nhau được tổng
hợp vốn được lưu ở các thiết bị lưu trữ. Chúng có thể có nguồn gốc “tự nhiên” do

capture như ở trên, cũng có thể hoàn toàn là dạng nhân tạo như hoạt hình.
2.

Một số khái niệm

• Đồng bộ đa phương tiện: thiết lập lại quan hệ thời gian giữa các gói dữ liệu audio-

video để trình diễn liên tục cảm thụ trung thực tại nơi nhận so với nguồn.
• Đồng bộ trong 1 dòng dữ liệu – Đồng bộ nội dòng (intra-stream synchronization):
Xác lập lại các quan hệ thời gian thực trong 1 dòng dữ liệu(audio hoặc video).
• Đồng bộ giữa các dòng dữ liệu (inter-stream synchronization): Xác lập lại các quan





3.

hệ thời gian thực giữa các dòng dữ liệu đa phương tiện (đồng bộ audio-video).
Đồng bộ liên tục: đồng bộ bám liên tục theo thời gian.
Đồng bộ điểm: đồng bộ các khối dữ liệu tại các thời điểm tham chiếu.
Đơn vị trình diễn (media unit-MU).
Lập lịch trình diễn (playout scheduler) .
Các kiểu đồng bộ

• Đồng bộ liên tục: đồng bộ bám liên tục theo thời gian.
• Đồng bộ điểm: đồng bộ các khối dữ liệu tại các thời điểm
• Đồng bộ trong 1 dòng dữ liệu phương tiện (intramedia synchronization): Xác lập lại

các quan hệ thời gian giữa các sự kiện trong 1 dòng dữ liệu của 1 dòng dữ liệu của 1

phương tiện, đơn luồng.
• Đồng bộ giữa các dòng dữ liệu (intermedia synchronization): Xác lập lại các quan
hệ thời gian giữa các dòng dữ liệu phương tiện.
4.

Các nguyên tắc đồng bộ dữ liệu đa phương tiện

- Đồng bộ gồm hai nhiệm vụ chính:
• Xác lập lại các quan hệ thời gian thực trong 1 dòng dữ liệu của 1 dòng dữ liệu

(audio, video).
• Xác lập lại các quan hệ thời gian thực giữa các dòng dữ liệu đa phương tiện
(đồng bộ audio-video),
- Hai kỹ thuật chủ yếu:


• Đồng bộ hướng bộ đệm: Đồng bộ đa phương tiện là quá trình làm “trơn” các hiệu

ứng trễ và điều khiển phối hợp thời gian trình chiếu đồng thời các dòng dữ liệu
đa phương tiện (playout of data) để thỏa mãn độ cảm thụ audio, video
• Đồng bộ hướng thời gian (ví dụ đồng bộ môi phối hợp lời nói và hình ảnh – lip
synchronization) cần xác lập mối quan hệ thời gian sao cho cảm thụ được độ
trung thực khi phối hợp lời nói với hình ảnh
4.1. Đồng bộ hướng bộ đệm

Bao gồm 2 bước:
• Đệm các đơn vị trình diễn (media unit - MU)
• Lập lịch trình diễn (playout scheduler): Bộ lập lịch hướng đệm (Buffer-

oriented scheduler) đánh giá jitter thông qua bộ đệm trình diễn (playout

buffer)
4.2. Đồng bộ hướng thời gian

Tổng thời gian trễ của MU thứ i: bao gồm:



Thời gian trễ trên mạng
Thời gian trễ trên bộ đệm
Trễ trên mạng dao động trong khoảng và . Độ rộng khoảng này là giới hạn trên
của sai khasc giữa trên hai đường mạng khác nhau, hay gọi là jitter, ký hiệu là


5.

Các mô hình đồng bộ

5.1. Mô hình dòng thời gian (Timeline):

Các hành động được xác định bởi thời điểm bắt đầu, thực hiện đồng bộ bảm theo
thời gian tồn tại của đối tượng.

- Sử dụng 1 dòng thời gian tổng thể
- Đồng bộ bảm liên tục theo dòng thời gian, yêu cầu cần phải có đồng bộ đồng hồ
- Cho chất lượng cao nhưng có các yêu cầu chi phí cao
5.2. Mô hình điểm tham chiếu (Reference point):

Các thời điểm tham chiếu hay điểm đồng bộ được xác định bên trong thời gian tồn
tại của đối tượng đa phương tiện, tại thời điểm đó thực hiện đồng bọ thời gian giữa các
dòng dữ liệu đa phương tiện để trình diễn (player).

Dùng nhãn thời gian đánh dấu bên trong các đối tượng tại các thời điểm cần đồng bộ
5.3. Mô hình phân cấp (Hierarchic):

Phân cấp thứ tự các đối tượng ĐB theo hình cây. Tuy nhiên nếu thời điểm cần đồng
bộ không phải là điểm bắt đầu hay kết thúc của đối tượng mà lả nằm ở giữa thì các đối
tượng có thể bị phân mảnh.


5.4. Mô hình dựa trên sự kiện (Event based)

Đồng bộ dựa trên các sự kiện:
-

Bắt đầu của 1 đối tượng
Kết thúc của 1 đối tượng
Việc bắt đầu hay kết thúc 1 sự kiện sẽ kích hoạt hành động tiếp theo

5.5. Kỹ thuật đồng bộ audio-video thời gian thực tại nơi nhận

Thiết lập lại quan hệ thời gian giữa các gói dữ liệu audio-video để trình diễn lien
tục, cảm thụ trung thực tại nơi nhận so với nguồn là kỹ thuật đồng bộ tín hiệu audio và
video, đây là vấn đề thách thức lớn.
- Điều độ trình diễn hướng thời gian
- Điều độ trình diễn dựa trên bộ đệm dữ liệu nhận
5.6. Tích hợp audio-video

Sự kết hợp, bổ sung vào hệ thống hiện có các loại dữ liệu, các ứng dụng và trình
diễn thể hiện đa phương tiện (tích hợp trong định dạng file, vào định dạng Web, tích
hợp CSDL . . .)
6.


Các phương pháp đồng bộ giữa các dòng dữ liệu

• Phương pháp trộn dồn kênh (Multiplexing): các dòng dữ liệu audio, video được

đồng bộ tích hợp tại nơi nguồn phát trước khi được lưu trữ, truyền


• Phương pháp dung kênh riêng chứa các thông tin đồng bô (Out-of-band)
• Phương pháp đồng bộ tại nơi nhận dựa trên các nhãn thời gian vào các gói dữ liệu

trước khi truyền đi (Timestamping)
• Đồng bộ audio-video thời gian thực dòng audio là chủ.

II. Đồng bộ tích hợp dữ liệu audio – video theo chuẩn MPEG2
1.

Giới thiệu MPEG TS
MPEG2 Transport Stream (MPEG-TS, MTS hay TS) là một chuẩn định dạng đặc

biệt, một container format cho việc truyền và lưu trữ MPEG video trộn với các dòng
khác.
Transport Stream được phát triển bởi MPEG, lần đầu tiên được công bố năm 1995,
đặc tả trong MPEG-2 Phần 1, Systems (thường được biết đến như là chuẩn ISO/IEC
13818-1 hay chuẩn khuyến nghị ITU-T Rec. H.222.0).
Transport Stream đặc tả một định dạng container đóng gói gói dòng cơ sở với mã
sửa lỗi (error correction) và thành phần đồng bộ dòng để duy trì tính toàn vẹn của việc
truyền khi tín hiệu bị suy thoái. TS định nghĩa cách các thành phần được tổng hợp
thành một dòng bit truyền tải đồng bộ đơn. Quá trình tổng hợp dòng truyền tải này
được gọi là trộn.



Transport Stream được thiết kế cho việc truyền dòng ít tin cậy, cụ thể là truyền hình
quảng bá mặt đất hoặc vệ tinh. Hơn thế nữa, một dòng truyền tải có thể mang theo
nhiều chương trình. Transport Stream thường dùng cho TV số và truyền dòng trên
mạng, bao gồm internet. TS được sử dụng trong các hệ thống quảng bá ví dụ như
DVB, ATSC và IPTV.
Các vấn đề đồng bộ tích hợp dữ liệu trong file video bao gồm:
- Mã hóa nén ảnh, video, audio. ( Video-audio compression encoding).
- Gói hóa dòng cơ sở (Elementary stream packetization).
- Tạo thành dòng tải dữ liệu trộn video – audio thỏa mãn yêu cầu đồng bộ thời gian.

Nhãn thời gian theo đồng hồ tham chiếu (Program clock reference time stamp) được
dùng để tạo các gói của dòng dữ liệu TS.
Tên file mở rộng theo MPEG Transport Stream có dạng: .ts, .tsv, .tsa.

2.

Tổng quan về MP2TS
Đầu ra của một bộ mã hóa MPEG audio hay video được gọi là một dòng cơ sở

(elementary stream). Để thuận tiện, dòng cơ sở được chia thành các khối dữ liệu kích
thước dễ quản lý, hay còn gọi là gói hóa dòng cơ sở, tạo thành PES (packetized
elementary stream). PES chứa các thông tin tiêu đề (information header) để xác định
điểm bắt đầu của 1 gói tin và cần phải có nhãn thời gian (time stamps) bởi vì việc gói
hóa dòng cơ sở phá vỡ trục thời gian. Nhãn thời gian trong mỗi PES có thể được sử
dụng để đảm bảo đồng bộ môi (lip-sync) giữa video và audio.
Trong truyền tải và quảng bá truyền hình số, một vài chương trình cùng với PES
của mỗi chương trình có thể được trộn lại thành một dòng truyền tải đơn. Một dòng
truyền tải khác với dòng chương trình (program stream) trong việc gói PES được chia

nhỏ hơn thành các gói kích thước nhỏ cố định và mang theo được nhiều chương trình
được mã hóa với đồng hồ khác nhau. Điều này thực hiện được là bởi vì TS có kỹ thuật
đồng hồ chương trình tham chiếu (PCR – program clock reference) cho phép truyền
nhiều thời gian đồng hồ, và một trong số đó được chọn và được tái tạo tại bộ giải mã.


TS không chỉ là bộ trộn PES audio và video. Cộng thêm vào audio, video và dữ liệu
đã nén, TS còn bao gồm siêu dữ liệu (metadata) miêu tả dòng bit. TS bao gồm bảng
kết hợp chương trình (PAT – Program Association Table) liệt kê các chương trình
trong dòng truyền tải. Mỗi giá trị trong PAT chỉ đến bảng ánh xạ chương trình (PMT –
Program Map Table), PMT liệt kê các dòng bit cơ sở ứng với mỗi chương trình. Một
vài chương trình được phát, nhưng một vài chương trình có thể được sắp đặt với điều
kiện truy cập (mã hóa bảo mật), những thông tin này cũng được lưu trong metadata.
Dòng truyền tải bao gồm các gói dữ liệu kích thước cố định, gói TS (TS packet)
gồm 188 bytes. Mỗi gói mang một mã định danh chương trình (PID – Program
Identifier). Tất cả các gói trong cùng một dòng cơ sở thì có chung PID, do đó bộ giải
mã hay bộ phân kênh có thể chọn một hay nhiều dòng cơ sở mà nó cần và từ chối các
dòng còn lại. Việc đếm các gói tin liên tục đảm bảo rằng mọi gói tin cần để giải mã
dòng đều được nhận. Một hệ thống đồng bộ hiệu quả là cần thiết để bộ giải mã có thể
xác định một cách chính xác điểm bắt đầu của mỗi gói tin và thực hiện giải mã từ mã
thành dòng bit.
Hình dưới đây mô tả tổng quan quá trình hoạt động của MPEG – 2 Transport Stream
trong thực tế.
- Bước 1 : Âm thanh và video sau khi theo chuẩn MPEG tạo thành các dòng cơ sở.

Các dòng này được gói hóa thành các gói tin có kích thước nhỏ hơn (PES).
- Bước 2 + 3 : Gắn PID cho các gói tin PES, và phân chia nội dung gói tin thành các

gói tin có kích thước cố định.
- Bước 4 : Thêm thông tin đặc tả chương trình PSI, thông tin về PMT và PAT.

- Bước 5 : Thêm thông tin dịch vụ ( SI – Service Information) đối với DVB, và Giao
thức thông tin chương trình và hệ thống ( PSIP – Program and System Information
Protocol) đối với ATSC.
- Bước 6 : Thêm thông tin thời gian hệ thống để đảm bảo việc đồng bộ audio và

video.
- Bước 7 : Đầu ra được tổng hợp thành dòng dữ liệu để lưu trữ hoặc truyền đi.


3.

Các khái niệm cơ bản
3.1. Elementary Stream (ES)

Mỗi dòng cơ sở là đầu ra của bộ mã hóa audio, video hay dữ liệu khác theo MPEG,
bao gồm một loại đơn của tín hiệu (thường là tín hiệu đã được nén).
Một vài dạng khác nhau của ES:
-

Dữ liệu điều khiển số (Digital Control Data)
Audio số (Digital Audio)
Video số (Digital Video)
Dữ liệu số (đồng bộ hoặc không đồng bộ)
Đối với audio và video, dữ liệu được tổ chức thành đơn vị truy nhập (access units),

mỗi access unit miêu tả một đơn vị cơ bản của mã hóa. Ví dụ, trong video, một access
unit thường là một frame đã được mã hóa.
3.2. Packetized Elementary Streams (PES)

PES là gói tin sau khi gói hóa dòng cơ sở. Dòng cơ sở audio hoặc video sau khi mã

hóa nén cần được phân chia thành các gói tin. Những gói tin này được định danh bởi
tiêu đề, bao gồm cả nhãn thời gian cho việc đồng bộ hóa. Các gói tin PES có thể được
sử dụng để tạo các dòng chương trình (Program Streams) hoặc dòng truyền tải
(Transport Streams). Một gói tin PES có thể là một khối có kích thước cố định hoặc


thay đổi, có thể lên tới 65536 Bytes trên một khối, và bao gồm 6 Bytes tiêu đề giao
thức (protocol header). Trong PES, dòng cơ sở được chia thành các gói tin có kích
thước phù hợp với ứng dụng. Một gói tin PES được tổ chức để bao gồm một số
nguyên các đơn vị truy nhập ES.
Tiêu đề của gói tin PES được bắt đầu với 3 bytes Start code, theo sau đó là 1 byte
Stream ID và 2 bytes trường độ dài gói tin.

Hai tham số start code prefix và stream ID bao gồm mã bắt đầu gói tin để xác định
điểm bắt đầu của gói tin. Một số stream ID được định nghĩa bởi chuẩn MPEG:
- 110x xxxx – Dòng Audio MPEG-2 có ID là x xxxx.
- 1110 yyyy – Dòng Video MPEG-2 có ID là yyyy.
- 1111 0010 – Gói tin điều khiển MPEG-2 DSM-CC (Digital Storage Media

Command and Control).
3.3. Time Stamps

Sau khi nén, ảnh được gửi đi không đúng theo thứ tự do việc mã hóa dự đoán, nội
suy. Các ảnh này yêu cầu một số lượng dữ liệu thay đổi và được sắp xếp với độ trễ
khác nhau do việc trộn và truyền dòng. Nhãn thời gian được kết hợp chặt chẽ từng
giai đoạn trong mỗi ảnh để giữ audio và video cùng nhau.
Nhãn thời gian là số 33 bit, là kết quả của bộ đếm được chia bởi 90kHz đồng hồ.
Thời gian được tổng hợp bằng cách chia 27MHz đồng hồ chương trình cho 300. Vì
nhãn thời gian trình chiếu được cách đều, việc bao gồm một nhãn thời gian trong mỗi
đơn vị trình chiếu (presentation unit) là không cần thiết. Thay vào đó, nhãn thời gian

có thể nội suy từ bộ giải mã, nhưng không được lớn hơn 700ms một phần.
Nhãn thời gian xác định nơi một đơn vị truy nhập riêng phần phụ thuộc trong thời
gian. Đồng bộ môi được tổng hợp bởi các nhãn thời gian được kết hợp chặt chẽ ở
trong phần tiêu đề của cả gói tin PES video và audio.


3.4. PTS/DTS

Decode time stamp (DTS) xác định thời điểm một ảnh phải được giải mã, trong khi
đó Presentation time stamp (PTS) xác định thời điểm khi nào nó được trình chiếu ở
đầu ra của bộ giải mã.

Hình 1.Giá trị PTS và DTS xác định thời điểm giải mã và trình chiếu

Hình trên chỉ ra khi một đơn vị truy nhập bao gồm ảnh I được nhận, nó sẽ bao gồm
cả DTS và PTS ở phần tiêu đề, và những nhãn thời gian này sẽ được phân tách bởi một
nhịp thời gian. Nếu mã hóa 2 chiều được sử dụng, ảnh P phải theo sau và bao gồm
nhãn thời gian DTS và PTS, nhưng sự phân biệt giữa 2 nhãn thời gian này là 3 nhịp
thời gian để cho phép xen ảnh B vào. Do đó, nếu chuỗi IPBB được nhận, khi trình
chiếu ảnh I bị trễ đi 1 nhịp thời gian, ảnh P bị trễ đi 3 nhịp, 2 ảnh B không bị trễ, và
chuỗi ảnh được trình chiếu trở thành IBBP.
Cờ PTS/DTS trong tiêu đề gói tin được tập hợp để xác định sự có mặt của riêng
PTS hay sự xuất hiện của cả 2 nhãn thời gian PTS và DTS. Gói tin Audio có thể bao
gồm một vài đơn vị truy nhập và phần tiêu đề gói tin bao gồm PTS. Bởi vì gói tin
audio không bao giờ truyền mất thứ tự, nên không có nhãn DTS trong gói tin audio.


4. Các phần tử chủ yếu của TS
4.1. TS Packet


Hình 2. MP2TS Packets

Mỗi gói tin MPEG-2 TS chứa 184 Bytes phần dữ liệu payload và 4 Bytes phần
header.
Phần header bao gồm các trường sau:
- Synchronisation Byte (8 bits): Byte đồng bộ, được xác nhận bởi bộ giải mã. Byte
này có giá trị 0x47 (0100 0111).
- Một tập 3 bit cờ được sử dụng để xác định cách thức xử lý phần payload.
o Cờ đầu tiên (The transport error indicator) xác định lỗi truyền tải, chỉ ra rằng một

vài gói tin có thể chứa lỗi.
o Cờ thứ 2 (Payload unit start indicator) chỉ ra điểm bắt đầu của một payload.
o Cờ thứ 3 (Transport Priority) xác định độ ưu tiên truyền tải.
- Packet identification (PID): là một mã dài 13 bit được sử dụng để phân biệt các loại

gói tin khác nhau.
- Transport scrambling control: gồm 2 bit, được sử dụng bởi thủ tục truy nhập có điều
kiện để bảo mật payload của một vài gói tin TS.
- Adaption field control: gồm 2 bit với 4 giá trị thể hiện như sau:
o 01: không có trường điều chỉnh (adaption field), chỉ có phần payload.
o 10: chỉ có trường điều chỉnh, không có phần payload.
o 11: trường điều chỉnh theo sau payload.
o 00: để dành, chưa được sử dụng.


- Continuity counter: gồm 4 bit, được tăng lên bởi bộ trộn mỗi khi có một gói tin mới

có cùng PID được gửi đi. Thông tin này được sử dụng để xác định nếu xảy ra việc
bất kỳ gói tin nào bị mất, lặp lại, hay không đúng thứ tự.
Trong một vài trường hợp khi mà cần nhiều thông tin phần tiêu đề hơn, khi đó bit

Adaption field control được thiết lập để chỉ ra rằng phần tiêu đề lớn hơn thông thường.
Độ dài phần header mở rộng sẽ được miêu tả bởi trường adaption field length. Khi
phần tiêu đề được mở rộng thì phần payload sẽ trở nên nhỏ hơn để duy trì độ dài cố
định của gói tin.
4.2. Program Clock Reference (PCR)

PCR là một phương pháp được thêm vào trong quá trình đồng bộ. PCR tái tạo lại
đồng hồ tham chiếu ổn định, có thể được phân chia để tạo ra trục thời gian tại bộ giải
mã, để nhãn thời gian cho mỗi dòng cơ sở ở mỗi chương trình trở nên hữu dụng. Do
đó, một chương trình có thể được định nghĩa là một tập các dòng cơ sở chia sẻ cùng
thời gian tham chiếu.
Để bộ giải mã trình chiếu nội dung đã được đồng bộ, ví dụ như dòng audio được kết
hợp tương ứng với video, thì ít nhất với mỗi 100ms một PCR được truyền đi tại trường
adaption field của gói tin Transport Stream.
PCR được sử dụng bởi bộ giải mã để tái tạo phiên bản điều khiển đồng hồ 27MHz
(system_timing_clock ) cho mỗi chương trình. Đồng hồ tại bộ mã hóa điều khiển bộ
đếm nhị phân chạy liên tục, và giá trị của bộ đếm được lấy mẫu một cách định kỳ và
được thay thế tại trường adapation field ở phần tiêu đề, chính là PCR. PID với PCR
được định nghĩa bởi giá trị pcr_pid, liên kết với PMT. PCR gồm 42bit, được tái trình
diễn bởi PCR cơ bản 33 bit, 9 bit mở rộng cung cấp cho giải pháp cao hơn.


Hình 3.Thêm nhãn thời gian vào dòng truyền tải, loại bỏ và đồng bộ với bộ giải mã.

Bộ mã hóa được sử dụng riêng cho từng chương trình sẽ có đồng hồ chương trình là
27MHz. Tại bên giải mã, một bộ tạo dao động điều khiển bằng điện áp (VCO) tạo ra
dao động tương ứng với 27MHz đồng hồ và chia thành PCR local. Sau đó, PCR local
được so sánh với PCR được nhận từ phần tiêu đề gói tin để tính ra sự sai khác về pha
PCR, sau đó được lọc để điều chỉnh bộ VCO.
MPEG yêu cầu PCR được gửi ở tốc độ ít nhất 10 PCR/1 giây.

4.3. Packet Identification (PID)

PID: định danh gói tin, được dùng bởi bộ phân kênh để phân biệt giữa các gói tin
chứa các loại thông tin khác nhau. Tốc độ bit dòng truyền tải phải là cố định, mặc dù
tổng tốc độ của tất cả các dòng khác nhau mà nó chứa có thể khác nhau. Yêu cầu này
được xử lý bằng việc sử dụng gói tin null (null packet). Nếu tốc độ thực payload
không đạt yêu cầu, các gói tin null được thêm vào.
Null packets: là gói tin do bộ dồn kênh thêm vào để đảm bảo dòng duy trì tốc độ
bitrate cố định như trong yêu cầu của một số hệ thống như ATSC hay DVB. PID của
gói mặc định là 8191. Nội dung của gói tin rỗng không gồm bất kỳ dữ liệu nào.
Trong dòng truyền tải, tất cả gói tin thuộc về một dòng cơ sở sẽ có cùng PID. Bộ
phân kênh có thể dễ dàng lựa chọn tất cả dữ liệu cho dòng cơ sở đưa ra bằng một cách
đơn giản là chỉ chấp nhận những gói tin đúng PID. Bộ phân kênh có thể lựa chọn


chính xác những gói tin chỉ khi nó liên kết chính xác các gói tin với dòng cơ sở mà
chúng thuộc về. Bộ phân kênh chỉ có thể làm được điều này khi nó biết thế nào là PID
đúng. Đây là một chức năng của PSI.
4.4. Program Specific Information (PSI)

PSI là thông tin đặc tả chương trình, được mang trong các gói tin có PID duy nhất,
một vài thông tin được chuẩn hóa, một số khác thì được đặc tả trong bảng liên kết
thông tin (PAT – Program Association Table), bảng truy nhập điều kiện (CAT –
Conditional Access Table) và bảng miêu tả dòng truyền tải (TSDT – Transport Stream
Desciption Table). Những gói tin này phải được chứa trong mỗi dòng truyền tải một
cách định kỳ. Bộ dồn kênh phải xác định tất cả các PID tồn tại bằng việc truy nhập vào
bảng thích hợp.
Transport stream có một tập các chương trình. Mỗi chương trình được miêu tả bởi
bảng ánh xạ chương trình (PMT- Program Map Table) có PID duy nhất, và các dòng
cơ sở kết hợp với các chương trình có các PID được liệt kê trong PMT.

- PAT: Bảng liệt kê các tất cả chương trình có sẵn trong dòng truyền tải. Mỗi chương

trình được liệt kê, định danh bởi giá trị 16 bit được gọi là program_number; có một
giá trị kết hợp PID cho mỗi PMT của nó. Gói tin TS chứa thông tin PAT luôn luôn
có PID là 0.
- CAT luôn có PID là 1, TSDT luôn có PID là 2.
- PMT: Bảng bao gồm thông tin về chương trình. Mỗi chương trình có một PMT.
Mỗi chương trình tồn tại trong dòng truyền tải được liệt kê trong gói tin PAT, PAT
lại mang PID của mỗi gói tin PMT. Dòng đầu tiên trong PAT là program 0, được để
dành cho dữ liệu mạng và chứa PID của của gói tin Bảng thông tin mạng (NIT –
Network Information Table).


Hình 4.Bảng phân cấp trong dòng truyền tải đan xen

Hình trên cho thấy PID của dòng cơ sở video, audio và data thuộc về cùng một
chương trình được liệt kê trong gói tin PMT. Mỗi gói tin PMT thông thường có PID
riêng. Program number trong mỗi PMT sẽ định danh duy nhất mỗi PMT. Những dòng
cơ sở của cùng một loại dữ liệu, cùng trong một chương trình sẽ có cùng PID.
Vào thời điểm đầu tiên khi nhận được dòng truyền tải, bộ phân kênh phải tìm PID 0
và 1 tại phần tiêu đề của gói tin. Tất cả gói tin PID 0 chứa PAT, tất cả các gói tin PID
1 chứa CAT. Bằng việc đọc PAT, bộ phân kênh có thể tìm PID của NIT và của mỗi
PMT, bằng việc tìm PMT, nó có thể tìm thấy PID của mỗi dòng cơ sở.
Do đó, nếu bộ giải mã của một chương trình riêng biệt được yêu cầu, chỉ cần tham
chiếu đến PAT, rồi sau đó đến PMT thì có thể tìm được PID của tất cả các dòng cơ sở
trong chương trình. Nếu chương trình được mã hóa bảo mật thì cần truy cập đến CAT.
5. Quá trình đồng bộ tích hợp giữa bộ mã hóa và giải mã
Hình dưới miêu tả một cách khái quát về quá trình thực hiện đồng bộ giữa bên gửi
và bên nhận.



Hình 5.Quá trình thực hiện đồng bộ giữa bên gửi và bên nhận.

Tại bên gửi, mỗi dòng cơ sở được gói hóa thành các gói tin PES, đồng thời gắn
thêm nhãn thời gian trình chiếu hoặc nhãn thời gian mã hóa. Sau đó, các gói tin dòng
cơ sở đã được đóng gói được gắn PID tương ứng với từng chương trình và từng dòng
cơ sở, sau đó các gói tin này được trộn lại cùng với nhau, đồng thời được gán nhãn
thời gian bởi PCR tạo thành dòng truyền tải. Dòng truyền tải này được lưu trữ lại hoặc
truyền đi tùy thuộc vào yêu cầu sử dụng.
Tại bên nhận, khi nhận được dòng truyền tải, dựa trên PCR và căn cứ vào PAT và
PMT xác định PID của từng dòng cơ sở trong các chương trình khác nhau, sau đó bộ
phân kênh sẽ phân chia các gói tin của các dòng cơ sở khác nhau, sau đó thực hiện giải
mã riêng phần tái tạo lại dòng cơ sở.
Tại bên gửi và bên nhận đều có đồng hồ tham chiếu chương trình PCR cũng cấp
nhãn thời gian cho việc đồng bộ để đảm bảo quá trình đồng bộ diễn ra chính xác.

III. Giải pháp ứng dụng đồng bộ audio-video MPEG2 thời gian thực
1.

Giới thiệu phần mềm



Phần mềm Audio-Video Synchronizer là công cụ đồng bộ hóa âm thanh và video
trong bộ phim. Nếu âm thanh/video không đồng bộ, chương trình có thể giúp bạn



khắc phục vấn đề.
Phần mềm do CHENDU WEISHU TECHNOLOGY CO.,LTD sản xuất, năm

phát hành 2007-2008, version 1




Download phần mềm tại trang: />


synchronizer/download.
Phần mềm đóng

2.

Tính năng của phần mềm



Mở video, so sánh giọng nói và môi người nói hoặc phụ đề để đồng bộ âm
thanh/video. Nếu âm thanh được phát trước video thì ta chuyển âm thanh quay



lùi lại. Nếu âm thanh được phát sau video thì âm thanh chuyển về phía trước.
Thử nhiều lần, ta có thể có được một điểm đồng bộ. Thêm điểm vào danh sách







đồng bộ.
Thêm ít nhất 2 điểm ở đầu và cuối trong vị trí đồng bộ của bộ phim sẽ tốt hơn.
Tính thời gian bắt đầu và kết thúc với các điểm đồng bộ của âm thanh và video.
Xem trước đoạn video đầu ra. Nếu không có vấn đề thì bắt đầu chuyển đổi.
Hỗ trợ các định dạng video như AVI, WMV, MPG, ASF, DAT, VCD, MPEG.
Nếu bổ xung bộ giải mã, nó có thể hỗ trợ các định dạng như DIVX, XVID, DV,


MKV, OGM, SVCD, DSM,... Các video đầu ra có thể là WMV hoặc AVI. Nếu
bạn cài đặt multiplexers/muxers, chương trình có thể xuất nhiều định dạng video
hơn. Vì vậy, chương trình là một công cụ chuyển đổi video.
3.

Giải pháp của phần mềm



Đồng bộ loại bỏ frame:
o
Dòng dữ liệu audio có vai trò là chủ (principle), dòng video (slave jet) được
o

đồng bộ theo dòng audio.
Tại các điểm đồng bộ: nhãn thời gian của gói tin của dòng video được so
sánh với nhãn thời gian của dòng audio. Nếu một frame video bị trễ quá
giới hạn sẽ bị loại bỏ.

4.

Ngữ cảnh sử dụng

Dùng cho các dữ liệu nguồn trong file hoặc video streaming chưa được đồng bộ hóa

audio-video.


5.

Cách sử dụng phần mềm Audio- Video Synchronizer


Control Panel:

: Mở một video.

: tùy chọn đầu ra Set.
: bỏ qua bộ phim về phía trước. Giá trị mặc định là 20 giây.
: bỏ qua bộ phim lạc hậu. Giá trị mặc định là 10 giây.
: Chỉ có âm thanh bỏ qua phía trước, giá trị mặc định là 0,3 giây.phím
nóng là i.
: Chỉ có âm thanh bỏ lạc hậu, giá trị mặc định là 0,3 giây.phím nóng
là p.
: Đặt lại âm thanh đến vị trí ban đầu trong phim.
: Nếu bạn đồng bộ âm thanh và video tại vị trí của bộ phim theo đồng
bộ và môi thoại hoặc phụ đề, thêm điểm vào danh sách đồng bộ.
: Chọn một điểm đồng bộ trong danh sách đồng bộ, chỉnh sửa video
hoặc âm thanh thời gian bằng tay trong một hộp thoại nếu cần.
: Chọn một điểm đồng bộ trong danh sách đồng bộ, xóa các điểm.
Xoá tất cả: Hủy bỏ tất cả các điểm đồng bộ trong danh sách đồng bộ.
Tiết kiệm đồng bộ danh sách: Lưu tất cả các điểm đồng bộ trong danh sách đồng bộ
đến một tập tin *.này cho video.

Tải đồng bộ danh sách: Load một danh sách đồng bộ tập tin *.này vào chương trình.
Tính toán bắt đầu: Tính toán thời gian bắt đầu video và âm thanh theo 2 điểm đồng bộ
đầu tiên.


Tính toán kết thúc: Tính toán các video và thời gian kết thúc âm thanh theo 2 điểm
cuối đồng bộ.
Preview: Xem trước đoạn video đầu ra
Chuyển đổi: Bắt đầu chuyển đổi. Nếu tất cả các thông số là đúng, bạn sẽ nhận được
một video đồng bộ hóa.
Tùy chọn hộp thoại được sử dụng để chọn các tùy chọn của clip đầu ra và kiểm soát
chơi.
Lưu ý:
1. WMV là định dạng được đề nghị là định dạng đầu ra mặc định. Bạn không cần phải
cài đặt bất cứ bộ mã hóa thêm. WMV mã hóa được thực hiện bởi Microsoft là ổn định.
2. Khi chúng tôi thử nghiệm nhiều codec, chúng tôi thông báo ffdshow codec có thể
giải mã nhiều
định dạng âm thanh và video như divx, xvid, mp3, wmv, wma. Nhưng Audio bỏ qua
phía trướcvà Audio bỏ lạc hậu, không thể làm việc tốt khi các codec đang chạy (biểu
tượng sẽ được

ở phía dưới bên phải của máy tính để bàn). Nó là cần thiết để vô

hiệu hóa tạm thời trong codec FFDShow Video Decoder Configuration hoặc
FFDShow Audio Decoder Configuration nếu bạn có một codec mà có thể giải mã các
dòng âm thanh và video.
6.
-

Trình bày đồng bộ audio-video MPEG2 thời gian thực

Đầu vào : file mux1-cp.ts với dung lượng file 19.9 MB
Đầu ra : output.wma
Kỹ thuật sử dụng trong phần mềm:
Kỹ thuật tách dòng
Kỹ thuật trộn gói tin
Kỹ thuật đồng bộ tại nơi nhận dựa trên các nhãn thời gian được gán vào các gói
dữ liệu trước khi truyền đi (Timestamping).
Kỹ thuật đồng bộ hướng thời gian.
Kỹ thuật đồng bộ hướng bộ đệm

6.1. Kỹ thuật tách dòng

Từ một dữ liệu nguồn, giả sử là video mux1-cp.ts phần mềm phân tích các header
của các gói tin của dữ liệu ban đầu đã được tích hợp thành file .
Tách các ngữ cảnh không liên quan đến nhau dựa vào các header của file.


×