I. Overview
I. Overview
II. Technological Implementation

Notes to extension of FLV AVS2:
sequence_header() {
uint32_t profile_id; /* profile ID, davs2_profile_id_e */
uint32_t level_id; /* level ID */
uint32_t progressive; /* progressive sequence (0: interlace, 1: progressive) */
uint32_t width; /* image width */
uint32_t height; /* image height */
uint32_t chroma_format; /* chroma format(1: 4:2:0, 2: 4:2:2) */
uint32_t aspect_ratio; /* 2: 4:3, 3: 16:9 */
uint32_t low_delay; /* low delay */
uint32_t bitrate; /* bitrate (bps) */
uint32_t internal_bit_depth; /* internal sample bit depth */
uint32_t output_bit_depth; /* output sample bit depth */
uint32_t bytes_per_sample; /* bytes per sample */
float frame_rate; /* frame rate */
uint32_t frame_rate_id; /* frame rate code, mpeg12 [1...8] */
};
Example of FLV AVS2 Extension
Notes to extension of HLS AVS2:
TS added stream_type=0×D2, stream_id=0×E0 of AVS2
AVS2 stream structure:
The code stream structure of AVS2 is composed of a video sequence including start coded. And there are six slice types for the video frame, including I, P, and B, as shown below:
slice type {
AVS2_I_SLICE = 0, /* slice type: I frame */
AVS2_P_SLICE = 1, /* slice type: P frame */
AVS2_B_SLICE = 2, /* slice type: B frame */
AVS2_G_SLICE = 3, /* AVS2 type: G frame */
AVS2_F_SLICE = 4, /* slice type: F frame */
AVS2_S_SLICE = 5, /* AVS2 type: S frame */
AVS2_GB_SLICE = 6, /* AVS2 type: GB frame*/
};
start code {
SC_SEQUENCE_HEADER = 0xB0, /* sequence header start code */
SC_SEQUENCE_END = 0xB1, /* sequence end start code */
SC_USER_DATA = 0xB2, /* user data start code */
SC_INTRA_PICTURE = 0xB3, /* intra picture start code */
SC_EXTENSION = 0xB5, /* extension start code */
SC_INTER_PICTURE = 0xB6, /* inter picture start code */
SC_VIDEO_EDIT_CODE = 0xB7, /* video edit start code */
SC_SLICE_CODE_MIN = 0x00, /* min slice start code */
SC_SLICE_CODE_MAX = 0x8F /* max slice start code */
};

video_sequence() {
do {
sequence_header();
extension_and_user_data(0);
do {
if (next_bits(32) == intra_picture_start_code )
intra_picture_header()
else
inter_picture_header()
extension_and_user_date(1)
picture_data()
} while(next_bits(32) == inter_picture_start_code() || next_bits(32) == intra_picture_start_code ))
if (next_bits(32) == video_sequence_end_code)
video_sequence_end_code
if (net_bits(32) == video_edit_code)
video_edit_code
}
}
In terms of VOD, AVS2 can effectively improve the encoding efficiency. FFmpeg does not support AVS container formats such as MKV/MP4. At present, in terms of video processing, JD Cloud VOD already supports media processing such as AVS2-related transcoding.
Comparison of Mainstream Coding Rates
At the same encoding rate, AVS2 is about 10%-30% higher than ×265. At the same encoding efficiency, AVS2 is 3-10 times faster than ×265.
Average Subjective Quality of AVS2 V.s. HEVC
At the same code rate, the average subjective quality of AVS2 and HEVC was basically the same.
III. AVS2 Coding Effect
In the future, JD Cloud’s Video Cloud will continue to promote the in-depth optimization and commercial application of AVS series and other video-related standards, so as to reduce costs and increase efficiency for customers and improve user experience, and strive to create scenario-based solutions around video, in a bid to establish deeper cooperation with customers and ecological partners.