Sunday, November 1, 2015

Stuffing Bit Pada PES dan TS

PES

PES atau Packet Elementary Stream adalah stream per element (video, atau audio) yang maksimal payload nya adalah 64 KB. Apabila sudah mencapai 64 KB stream tsb dipotong dan di tambahkan headear PES.

Akan tetapi dalam konteks Live Streaming, maka ada kalanya sewaktu gambar bergerak pelan, atau gambar statis, maka kompresi bisa tinggi, sehingga bisa saja belum mencapai 64 KB tapi payload sudah harus di potong dan ditambahkan header. Dengan demikian dari sisi penerima sepertinya transmisi video nya merupakan VBR.

Apabila ingin dipancarkan transmisi CBR, maka perlu stuffing bit (FF) di isi, sehingga panjang payload dan header dari waktu ke waktu tetap sama.

Perlu di ingat bawah, PES tidak di desain untuk transmisi jarak jauh. Untuk transmisi jarak jauh digunakan TS (Transport Stream). Dimana Stream PES di potong-potong tiap 188 bytes untuk di kirimkan ke saluran transmisi.

Berikut adalah gambar format PES.


o PES start code: 00 00 01
o Stream ID: 1 byte (stream ID ini beda dengan PID, karena PID hanya ada di TS)
o PES packet lenght: Panjang paket dimulai dari setelah field ini (artinya total packet kurang 6 bytes ( 3 + 1 + 2)
o Ext Byte 1 & Ext Byte 2: Menandakan apakah ada optional fields dipakai
o PES header data lenght: panjang header termasuk adanya Ext field, Optional fields, dan Bit Stuffing
o Presentation Time Stamp: indikasi waktu tentang kapan PES ini ditampilkan
o Decoding Time Stamp: indikasi waktu tentang kapan PES ini di decode
o Other optional fields: bisa berbagai macam informasi optional dimasukkan, termasuk Stuffing Bit
o Payload: isi dari media video atau audio

TS

Transpor Stream adalah Stream yang telah di potong-potong dalam container 188 bytes. Ide 188 bytes ini adalah agar muat dalam sel ATM (jaringan transmisi).

Bit stuffing juga bisa terjadi di TS, tetapi jumlah bit yang di tambahkan tidak terlalu banyak, hanya untuk memenuhi besar paket TS yang 188 bytes.

Gambar format TS adalah sbb:


Payload TS 184 bytes. TS hedear 4 bytes, sehingga total 188 byte terdiri dari:
o Sync byte: 47 hexa
o Field 1: 1 bit - TS error indicator
o Field 2: 1 bit - indikator apakah start Payload TS merupakan awal dari paket PES
o Field 3: 1 bit - TS priority
o PID: 13 bit
o Field 4: 2 bit - Scrambling Control
o Field 5: 2 bit - Adaptation Field Control
o Field 6: 4 bit - Continuity Counter

Apabila payload lebih dari 184, maka Field 6 akan berisi nomer pecahannya. Misal PES panjangnya 18410, maka ada 11 pecahan: 10 pecahan 184 bytes dan 1 pecahan yang terakhir yaitu 10 bytes.

Terlihat bahwa pada pecahan ke 11 paylod 10 bytes, padahal payload PES harus 184 bytes. Maka ditambahkan bit stuffing sebelum payload. Artiya bit FF FF FF sebanyak 174 bytes harus ditambahkan.

No comments: