H.264 code stream packaging analysis
"H.264 code stream package analysis
SODB data bit string -> Most original encoded data
RBSP Original Nature Sequence Load -> After the SODB is filled with end bit (RBSP Trailing Bits "1") several bits "0", so that bytes are aligned.
EBSP Extended NPP Load -> Fills the imitation byte by the imitation byte by RBSP (0x03) It is: When NALU is added to AnnexB, you need to fill the start code startcodeprefix before each group of NALU, if The NALU corresponding to the SLICE is the beginning of a frame, indicates the 4-bit byte, otherwise the OX000001 is indicated by 3 bytes. In order to make the NALU body conflict with the start code, every time it is encoded Two bytes are continuous 0, inserting a byte 0x03. Remove 0x03 when decoding. Also known as a shell operation.
The function of H.264 is divided into two layers, video coding layers (VCL) and network extraction layers (NAL)
The VCL data is compressed by the encoded video data sequence. After the VCL data is to be encapsulated into the NAL unit, it can be used to transmit or store. The NAL unit format is as follows:
Be
NAL head EBSP NAL head EBSP NAL head EBSP
Each NAL unit is a variable long byte string of a certain syntax element, including header information including one byte (used to represent data type), and load data of several integer bytes. A NAL unit can carry an encoder, A / B / C data segmentation or a sequence or image parameter set.
The NAL unit is sequentially transmitted in the RTP serial number. Among them, T is the load data type, accounting for 5bit; R is an important indicator bit, accounting for 2 bits; the last F is forbidden, accounting for 1 bit. details as follows:
(1) NALU type
32 different types of features of NALU can be indicated, and the types 1 to 12 are defined by H.264, and the types 24 to 31 are used for H.264, and the RTP load specification uses some of these values to define packet aggregation and splitting. Other values are H.264.
(2) Importance indication
The importance of a NAL unit is labeled in the reconstruction process, the greater the value, the more important. The value is 0 indicates that the NAL unit is not used for prediction, so it can be discarded by the decoder without error diffusion; the value is higher than 0 indicates that the NAL unit is used for no drift reconstruction, and the value is, the value is, the value, the value, the value, the value, the value, the NAL unit The greater the impact of the loss.
(3) Forbidden position
The default value in the encoding is 0, and when the network recognizes that there is a bit error in this unit, it can be set to 1 so that the receiver has dropped down the unit, mainly to adapt to different types of network environments (such as a wired wireless combination) . For example, for a gateway from wireless to wired, one side is a wireless non-IP environment, one side is a wired network's unblocked environment. When a NAL unit reaches the wireless side, the checksum detection fails, the gateway can select the NAL unit from the NAL stream, or the known-beated NAL unit can also be forwarded to the receiving end. In this case, the intelligent decoder will try to reconstruct this NAL unit (known that it may contain a bit error). Not intelligent decoders will simply discard this NAL unit. The NAL unit structure specifies the general format for the transmission subsystem for a group or flow. In H.320 and MPEG-2 systems, the flow of NAL units should add a 3-byte start prefix code before each NAL unit in the NAL unit boundary. In the packet transmission system, the NAL unit determines the frame boundary by the transmission procedure of the system, so the above-described start prefix code is not required. A set of NAL units is referred to as an access unit, and the timing information is added after the boundary (SEI) is added to form a substantially encoded image. The basic encoded image (PCP) consists of a set of encoded NAL units, which is subsequently redundant encoded image (RCP), which is a redundant table of the PCP on the same video image, which is used to resume information in the case of PCP loss. If the encoded video image is the last image encoding the video sequence, the END of the sequence NAL unit should appear, indicating the end of the sequence. An image sequence has only one sequence parameter group and is decoded independently. If the encoded image is the last image of the entire NAL unit stream, the end of the stream should occur. Be
The H.264 adopts the above-mentioned strict access unit, not only the H.264 can be adaptive to a variety of networks, but also further enhance its blending ability. The setting of the serial number can be found to be lost which VCL unit is lost, and the redundant encoded image allows an image that is more "rough" even if the basic encoded image is lost.
H.264 video transmission system for implementing RTP protocol
1. Introduction With the development of the information industry, people's requirements for information resources have gradually transitioned from text and pictures to audio and video, and more and more emphasize real-time and interactivity of resources. But people face another inevitable embarrassment, which is to see a lot of time to wait for the transfer file while seeing vivid and clear media demonstrations on the Internet. In order to solve this contradiction, a new media technology came into being, this is the streaming medium technology. Since the streaming of stream is extended, it has gradually become the preferred, streaming media network applications, which are also growing, and streaming media network applications are also constantly developing worldwide. The real-time streaming protocol RTP details the standard packet format of audio and video on the Internet, which is used with the transfer control protocol RTCP to become one of the most commonly adopted protocols of streaming media technology. H.264 / AVC is a new generation of video coding standards developed by ITU-T video coding expert group (VCEG) and ISO / IEC Dynamic Image Expert Group (MPEG) jointly developed, its biggest advantage It is a high data compression ratio. Under the conditions of the same image quality, the compression ratio of H.264 is 2 times the MPEG-2, which is 1.5 to 2 times the MPEG-4. At the same time, the hierarchical design of the video coding layer (VCL) and the network extraction layer (NAL) is very suitable for real-time transmission of streaming media technology. This article is based on the RTP protocol, flow packaging transmission of H.264 video, implements a basic streaming server function, and uses open source player VLC as the receiving end, constitutes a complete H.264 video transmission system.
2. Setting the RTP protocol key parameters
The RTP protocol is the new protocol that IETF is suitable for real-time data transfer proposed in 1996. The RTP protocol is actually consisting of two parts: RTCP (Real-Time Transport Protocol) and real-time transmission control protocols RTCP (Real-Time Transport Control Protocol). The RTP protocol is based on multicast or unicast network to provide a real-time transmission service for continuous media data for users; RTCP protocols are controlled parts of the RTP protocol for real-time monitoring data transmission quality, providing congestion control and stream control for the system. The RTP protocol has been described in detail in RFC3550. Each RTP packet consists of two parts of a fixed header and a payload. The meaning of 12 bytes in the top of the header is fixed, while the load can be audio or video data. The Format of the RTP fixed Baotou is shown in Figure 1:
Be
Be
The comparison critical parameter setting is explained as follows: (1) Label bit (M): 1 bits, the meaning of the label bit is generally defined by the specific media application framework for the purpose of marking an important event in the RTP stream. (2) Load Type (PT): 7 bits, used to indicate the specific format of the RTP load. In RFC 3551, the default value specification is made for the RTP transmission load type of common audio and video formats, for example, type 2 indicates that the RTP packet is carried by the voice data encoded with the ITU G.721 algorithm, using the frequency as the frequency 8000Hz and mono is used. (3) Sequence number: 16 bits, each send an RTP packet, serial number plus 1. The recipient can use it to detect packet loss and restore the packet order. (4) Timestamp: 32 bits, the timestamp represents the sampling time of the first byte in the RTP data packet, reflecting the deviation of each RTP packet relative to the initial value of the timestamp. For the RTP sender, the sampling time must be derived from a linear monotonic incremented clock. It is not difficult to see from the RTP packet's format that it contains information such as transmission media, format, serial number, timestamp, and whether there is additional data. These all provide corresponding foundations for real-time streaming. The transmission control protocol RTCP provides congestion control and stream control for RTP transmission. Its specific package structure and the meaning of each field can be referred to RFC3550, which is no longer described here.
3. H.264 Basic Flow Structure and Its Transmission Mechanism
3.1 H.264 Basic Structure
The structure of the Elementary Stream, ES is divided into two layers, including video encoding layers (VCLs) and network adaptation layers (NAL). The video coding layer is responsible for efficient video content, and the network adaptation layer is responsible for packaging and transmitting data in the appropriate way of the network. The benefits of introducing NAL and bringing the VCL separation include two aspects: one, so that signal processing and network transmission separation, VCL, and NAL can be implemented on different processing platforms; second, VCL and NAL separation design, making Different network environments, the gateway does not need to reconstruct and reconstruct the VCL bitstream because the network environment is different. The basic stream of H.264 is composed of a series of NETWORK ABSTRACTION Layer Unit, and different NALU data is different. The draft of the H.264 pointed out that when the data stream is stored in the medium, the start code is added before each NALU: 0x000001, used to indicate the start and termination position of NALU. Under such a mechanism, the start code is detected in the code stream, which is the starting identifier as a NALU, and when the next start code is detected, the current NALU ends. Each NALU unit consists of a byte NALU header and a number of bytes of load data (RBSP). The format of the NALU head is shown in Figure 2:
F: forbidden_zero_bit.1, if there is a grammatical conflict, it is 1. When the network recognizes that this unit exists, it can be set to 1 so that the recipient drops the unit. NRI: NAL_REF_IDC.2 bits, used to indicate the importance level of the NALU. The greater the value, the more important it is currently the current NALU. If the value is greater than 0, there is no specific provision.
TYPE: 5 points, pointing to the type of NALU. Specifically, as shown in Table 1:
It is important to indicate that NRI values 7 and 8 NALU are sequence parameter set (SPS) and image parameter sets (PPS), respectively. The parameter set is a set of data that is rarely changed, providing data for decoding information in a large number of VCL NALUs. The sequence parameter set acts on a series of consecutive encoded images, and the image parameter sets the image of one or more independent images in the video sequence. If * does not receive these two parameter sets correctly, then other NALUs cannot decode. They are therefore generally transmitted before sending other NALUs, and transmitting different channels or more reliable transport protocols, such as TCPs, can also be repeatedly transmitted.
Be
3.2 The transmission mechanism for H.264 video is discussed in front of the RTP protocol and the H.264 basic stream, so how does the RTP protocol transmit H.264 video? A effective way is to peel from H.264 video Each NALU is added to each NALU to add the corresponding RTP handle, and then send the packet containing the RTP Baotou and NALU. Below, it will be set forth in both RTP Baotou and NALU. The format of the complete RTP fixed header has been pointed out in the front FIG. 1, according to RFC3984 [3], here, the specific setting of each bit is given in detail. V: version number, 2 digits. According to RFC3984, the RTP version number currently used should be set to 0x10. P: Fill the bit, 1 bit. This bit is set to 0 without using a special encryption algorithm. X: Extended bit, 1 bit. The current fixed head is not extended with the head, so the bit is also 0. CC: CSRC count, 4 digits. Indicates that the number of CSRCs behind the RTP fixed cladding head is not used for the basic streaming server to be implemented herein, and the bits are also set to 0x0. M: Label, 1 bit. If the current NALU is the last NALU of an access unit, then m position 1; orBy this RTP data packet is the last of a time slice that the NALU (NALU fragment described in later), M 1 position. M bit remains 0 in other situations. PT: payload type 7. For H.264 video format, currently it does not specify a default value of PT. Thus a value greater than 95 may be selected. Here set to 0x60 (96 decimal). SQ: ID, 16 bits. Random number values starting value here is set to 0, a transmitting each RTP packet, the sequence number value is incremented. TS: time stamp, 32 bits. With the same serial number, time stamp, also starting value to a random value, here set to zero. According to RFC3984, and the corresponding time stamp clock frequency must be 90000HZ. SSRC: marked synchronization source, 32. SSRC should be randomly generated, so that in the same RTP session period no two synchronization sources have the same SSRC identifier. Here is just a synchronization source, so it is set to 0x12345678. For each NALUs, depending on the amount of data it contains, there are differences in size. In the IP network, when the IP packet to be transmitted exceeds the maximum transmission unit size of the MTU (Maximum Transmission Unit) is generated IP fragmentation situation. In the Ethernet environment may be the maximum transmission IP packet (MTU) size of 1500 bytes. If the IP packets is larger than the MTU, the packet is transmitted to open, which would generate a lot of packet fragmentation, loss rate increases, reducing the speed of the network. For video transmission, if the RTP packet is larger than the MTU arbitrarily unpacked by the underlying protocol, it may result in delayed broadcast reception side player or even not play properly. So for NALU unit larger than the MTU, unpacking process must be carried out.
3 shows RFC3984 RTP different packing scheme:
(1) Single NALU Packet: only a package NALU in one RTP packet, NALU herein to less than 1400 bytes will be packaged using this scheme. (2) Aggregation Packet: RTP packet is encapsulated in a plurality of NALU, NALU can be used for such a small packing scheme, thereby improving the transmission efficiency. (3) Fragmentation Unit: NALU encapsulated in a plurality of RTP packets, herein, for the NALU larger than 1400 bytes will unpack process using this program.
4. H.264 implement streaming media transmission system
A complete system includes a streaming media server and client two portions [5] [6]. For the server side, whose main task is to read the video H.264, NALU units each separated from the code stream, NALU type of analysis is provided corresponding RTP header, and RTP data packet transmission package. For the client, whose main task is to receive the RTP data packet, parses the RTP packet NALU unit, and then sent to the decode * playback. The media streaming system framework is shown in Fig.
Be
5 Conclusion
Streaming media server system designed in this paper is running a Windows XP system, receiving H.264 video RTP packets as a client with the VLC player. Tested case, the client is able to smooth playback after 2 seconds after the buffer, the transmission speed to 30 frames per second, packet loss smear phenomenon does not appear, good subjective quality video with the H.264 local players video no significant difference.
AnyChat leading international video coding standard H.264 (MPEG-4 part 10 AVC /H.264) encoding, H.264 / AVC has a special performance in compression efficiency, MPEG-2 and reach the MPEG-4 in general simplified class approximately twice the compression efficiency. H.264 has many new and different features of the old standard, which together achieve improved coding efficiency. In particular, intra-prediction coding, inter-frame prediction encoding, the variable block size vector, quarter-pixel motion estimation, multiple reference frame prediction, adaptive loop deblocking filter, an integer transform, quantization and transform coefficient scan, entropy encoding, has a weighted prediction to achieve their unique considerations.
Bai Rui Technology uses advanced technology to mosaic, security is not in Huaping, mosaics and other phenomena in the video communication process. Download free trial: http://www2.bairuitech.com/downloads/bairuisoft/AnyChatCoreSDK_V3.0.rar
Be
H264 video file format of the transmission frame packaging and other offal
rfc3984 Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video February 2005 1. achieve H264 video streaming nalu starting unit according to RFC3984 protocol packet 0x 00 00 00 01 H. 264 NAL format and analyzer http://hi.baidu.com/zsw%5Fdavy/b ... c409cc7cd92ace.html http://hi.baidu.com/zsw_davy/blo ... 081312c8fc7acc.html ---- ------------------------------ bit stream information ----------------- ----------------------------- ①NALU (Network Abstract Layer unit): two bitstreams are standard in NAL units, each NAL unit includes a RBSP, NALU header defines the type of RBSP belongs. Type typically includes a sequence parameter set (the SPS), picture parameter set (PPS), enhancement information (the SEI), the strip (the Slice) and the like, wherein, the SPS and PPS belongs parameter sets, two standard using the parameters set mechanism is provided to some of the major sequence parameter image (decoded image size, the number of slice groups, a reference frame number, and quantization parameter markers filtering etc.) separated from the other parameters, are decoded by the first decoder. Further, in order to enhance sharpness of the image, AVS-M adds an image header (Picture head) information. NALU reads the process, before each NALU has a start code 0x000001, 0x000001 sequence to prevent internal competition, H.264 encoder insert a new byte --0x03 before the last byte, the decoder detects when the sequence 0x03 need to be deleted, and the AVS-M simply need to identify start code 0x000001. ② read macroblock type (mb type) template and macroblock coding (cbp): codec image macroblock division, a macroblock consists of a 16 * 16 luminance block and a corresponding 8 * 8 * 8CB and a chrominance 8Cr blocks. (A) two standard frames, inter-frame prediction macroblock division is different. In H.264, I_slice luminance block has Intra_16 Intra_4 * 4 and * 16 modes, 8 * 8 chrominance blocks only mode; P_slice macroblock is divided into 16 * 16, 16 * 8, 8 * 16,8 * 8, * 4,4 * 8,4 * 8 4 7 modes. In the AVS-M, I_slice luminance block has two I_4 * 4 and I_Direct mode, dividing a consistent and H.264 macroblock when the P_slice. (B) two standard macroblock cbp value calculation is not the same. In H.264, Intra_16 * 16 luminance macroblock (color) obtained by reading directly CBP mb type; non Intra_16 * 16 luminance macroblock CBP = coded_block_pattern% 16, chroma cbp = coded_block_pattern / 16. Wherein the minimum brightness. 4 cbp-bit effective, residual coefficients corresponding to each decision can macroblock is 0; chroma cbp is 0, the corresponding residual coefficients of 0, cbp is 1, DC residual coefficients is not 0 , AC coefficient is 0, cbp is 2, DC, AC residual coefficients are non-zero. AVS-M, when not P_Skip macroblock type, obtained directly from the code stream of the index value cbp, and thus the value of the index look-up table codenum value, then codenum lookup table respectively intra / inter cbp. This cbp is six, each participant macroblock is divided by 8 * 8 can contain nonzero coefficients, when the transform coefficient is not 0, the value of each of the need to further read to determine a cbp_4 * 4 8 * 8 block 4 4 * 4 coefficients can not be zero. -------------------------------------------------- ------------------------------------------- general code H264 there are two ways packaged streams, one for the annex-b byte stream format of the format, the majority of the default output format encoder, is 3 to 4 bytes at the beginning of each frame is the start_code H264, 0x00000001 or 0x000001. Another is the original NAL packaging format is a number of bytes (byte 2,4) is the length of the beginning of the NAL instead START_CODE, must use this time data to obtain a global profile encoder, level, PPS, SPS and other information can only be decoded. -------------------------------------------------- -------------------------- AVC vs. H.264 AVC and H.264 are synonymous. The standard is known by the full names "" .. ISO / IEC 14496-10 "" and "" ITU-T Recommendation H.264 "" in addition, a number of alternate names are used (or have been) in reference to this standard These include:
MPEG4 part 10MPEG-4 AVCAVCMPEG-4 (in the broadcasting world MPEG4 part 2 is ignored) H.264JVT (Joint Video Team, nowadays rarely used referring to actual spec) H.26L (early drafts went by this name)
All of the above (and those I've missed) include the Annex B byte-stream format. Unlike earlier MPEG1 / 2/4 and H.26x codecs, the H.264 specification proper does not define a full bit-stream syntax. It describes a number of NAL (Network Abstraction Layer) units, a sequence of which can be decoded into video frames. These NAL units have no boundary markers, and rely on some unspecified format to provide framing. Annex B of of the document specifies one such format, which wraps NAL units in a format resembling a traditional MPEG video elementary stream, thus making it suitable for use with containers like MPEG PS / TS unable to provide the required framing. Other formats, such as ISO base media based formats, are able to properly separate the NAL units and do not need the Annex B wrapping. The H.264 spec suffers from adeficiency. It defines several header-type NAL units (SPS and PPS) without specifying how to pack them into the single codec data field available in most containers. Fortunately, most containers seem to have adopted the packing used by the ISO format known as MP4 .
1. H.264 start code When the network is transmitted H264 data, a UDP package is a NALU, which can easily detect NAL boundaries and decodes. However, if the encoded data is stored as a file, the original decoder will not be able to separate the starting position and termination position of each NAL from the data stream, and use the start code to solve this problem for this H.264. When the H.264 encodes, add the start code 0x000001 before each NAL, the decoder detects the start code in the code stream, and the current NAL ends. In order to prevent the 0x000001 data from 0x000001, H.264 also proposes a 'Preventing the Emulation Prevention "mechanism. When you encode one NAL, if there is a continuous two 0x00 bytes, an 0x03 is inserted later. When the decoder detects the 0x000003 data in the NAL, the 0x03 is discarded and the original data is restored. 0x000000 >>>>>> 0x00000300 0x000001 >>>>>> 0x00000301 0x000002 >>>>>> 0x0000030 0 000003 >>>>> 0x0000030 3 Algorithm flow detecting the start code in the H.264 decoded NALU
For (;;)
{
IF next 24 bits are 0x000001
{
Startcodefound = TRUE
Break;
}
Else
{
Flush 8 BITS
}
} // for (;;)
IF (True == StartCodefound)
{
// Startcode Found
// Flush The Start Code Found
Flush 24 bits
// now Navigate Up to Next Start Code and Put The in Between Stuff
// in the nal structure.
For (;;)
{
Get Next 24 Bits & Check if it equals to 0x000001
IF (false == (Next 24 bits == 000001))
{
// Search for pattern 0x000000
Check if Next 24 Bits Are 0x000000
IF (false == result)
{
// copy the byte info the buffer
Copy One byte to the nal unit
}
Else
{
Break;
}
}
Else
{
Break;
}
} // for (;;)
}
2. MPEG4 start code MPEG4 features VOP, no NALU concept, still use StartCode to be bounded for each frame. The start code of MPEG4 is 0x000001. In addition, many start codes in MPEG4 are also very useful, such as video_Object_sequence_start_code 0x000001B0 represents the beginning of a video object sequence, VO_START_CODE 0x000001B6 represents the beginning of a VOP. The two digits after 0x000001B6, is 00 indicated i frame, 01 represents P Frame, 10 represents B Frame.
1. Introduction H.264 main goals: 1. High video compression ratio 2. Good network affinity solution: VCL video Coding Layer Video Code layer NAL NetWork Abstract Layer Network extracting layer VCL: core algorithm engine, block, macroblock, grammatical level definition NAL: grade above the grade level (eg Sequence parameter set and image parameter sets), while supporting the following functions: Sepi-alk Decoding, start code unique guarantee, SEI, and stream format encoded data transmit VCL design goals: Efficient codec decoding NAL in the case of network as much as possible Design Objective: Pack the data into the corresponding format according to different networks, adapted the bit string generated by the VCL to a wide variety of networks and multiple environments. NALU head structure: NALU type (5bit), importance indicator (2bit), disable bit (1bit). NALU type: 1 to 12 are used by H.264, 24 to 31 are used by applications other than H.264. Importance indication: The importance of the NAL unit is used for reconstruction, the greater the value, the more important it. The bits are prohibited: The network finds that the NAL unit can set the bit to 1 when the NAL unit has a bit error so that the recipient throws off the unit. 2. NAL syntax semantic NAL layer syntax: In the code stream output of the encoder, the basic unit of the data is an syntax element. Sentence Method Element The tissue structure of the elements. Semantic Explain Specific Members of Syntax Elements. The packets have a head, and the decoder can be easily detected by the demarcation of NAL, and the NAL is decoded again. However, in order to save a stream, H.264 does not have additionally set a syntax element indicating the starting position in the head of NAL. If the encoded data is stored on the medium, since NAL is in tightly connected, the decoder cannot distinguish the starting position and termination position of each NAL in the data stream. Solution: Add startup codes before each NAL: 0x000001 On some types of media, for addressing convenience, the data stream is required to align the length, or a constant integer. So add a number of bytes of byte 0 to populate it before the start code. Detect NAL's start: 0x000001 and 0x000000 We must consider 0x000001 and 0x000000 solutions in NAL: H.264 proposed "Preventing Competition" mechanism: 0x0000000--0X00000300 0x000001--0X00000302 0x000003--0X00000303 Therefore, we can know: In the NAL unit, the following three-byte sequence should not appear 0x00000000 0x000001 0x000002 forbidden_zero_bit = 0 in any byte alignment position; NAL_REF_IDC: Indicates the priority of NAL. 0 ~ 3, the greater the value, the more important the current NAL, and it is necessary to be prioritized. If the current NAL is a film belonging to the reference frame, or when the sequence parameter set, or the image parameter set, this syntax element must be greater than 0. NAL_UNIT_TYPE: Type 3 of the current NAL unit. Schematic diagram of the NAL layer processing structure of H.264: NAL in NALU (NAL Unit) to support encoded data in a packet switching technology network. It defines data formats that meet the requirements of the transport layer or storage medium, and give the header information, providing an interface between video coding and external world. NALU: Defines the basic format RTP package that can be used for packet and bitstream systems: only for nal unit-based local NAL interfaces. Three different data forms: SODB data bit string -> Most original encoded data RBSP original byte sequence load -> After the SODB fills the end bits (RBSP Trailing Bits A bit "1") Some Bit " 0 ", in order to align the EBSP extended byte sequence load -> Fill the imitation byte by the imitation byte by the RBSP (0x03) It is: Before the NALU is added to the Annexb, you need to add each group of NALU before Start code startCodePrefix, if the NALU corresponds to the SLICE starts with the 4-bit byte, OX00000001, otherwise the OX000001 is indicated by 3 bytes. In order to make the NALU body conflict with the start code, When encoding, each of the two bytes is continuous to 0, inserting a byte 0x03. Remove 0x03 when decoding. Also known as a shell operation process: 1. The SODB encapsulated by the VCL layer into NAL_UNIT, NAL_UNIT is a universal package format, which can be applied to ordered by-line-in-one and IP package exchange. 2. Package Nal_Unit into a package format for different networks for different transfer networks (circuit switches | package). The specific process of the first step: bitstream SODB (String of Data Bits) output from the VCL layer, between NAL_UNIT, after three steps: 1. SODB byte alignment is encapsulated into RBSP (Raw Byte Sequence PayLoad) . 2. In order to prevent the SCP (start_code_prefix_one_3bytes, 0x000001) in the ordered byte stream in the ordered byte stream, the cyclic detection of the first three bytes of RBSP, in the third word during byte competition Emulation_prevention_three_byte (0x03) before the holiday, the specific method:
NAL_UNIT (NUMBYTESINNALUNIT) {
Be Forbidden_Zero_bit
Be NAL_REF_IDC
Be NAL_Unit_type
Be NumBytesinRBSP = 0
Be For (i = 1; i
Our other product: