Video processing device, video server, client device, and video client-server system with low latency thereof
First Claim
Patent Images
1. A video processing device, comprising:
- an expansion card interface, arranged for providing a multi-channel data transfer;
a controller, arranged for performing direct memory access (DMA) function to access a video raw data from a video memory via the expansion card interface; and
an encoder, coupled to the controller, arranged for encoding the video raw data to generate a compressed video stream based on slices,wherein each slice comprises at least one macroblock row;
wherein the video raw data comprises a plurality of video frames, each video frame is divided into M×
N macroblocks, where M and N are both integers, and each macroblock row comprises n macroblocks, where n is at most N, M is total number of rows of macroblocks arranged along horizontal direction parallel to the macroblock row and N is total number of columns of macroblocks arranged along vertical direction for the each video frame, the encoder comprises a plurality of encoding cores, the encoder is arranged for performing multi-channel encoding with the plurality of encoding cores, and each encoding core comprises a buffer for buffering a plurality of continuous macroblocks according to a clock frequency of the encoding core, a latency of the encoding core at least comprises a processing time of encoding one macroblock row and a buffering time of buffering three continuous macroblocks.
1 Assignment
0 Petitions
Accused Products
Abstract
A video processing device providing multi-channel encoding with low latency is provided. The video processing device can be applied to a video server to perform video compression on game graphics for cloud gaming. With multi-channel encoding with low latency, the video server can provide compressed video streams to a variety of client devices with low latency. As a result, the users can obtain high gaming interactivity and fine entertainment in cloud gaming.
-
Citations
8 Claims
-
1. A video processing device, comprising:
an expansion card interface, arranged for providing a multi-channel data transfer; a controller, arranged for performing direct memory access (DMA) function to access a video raw data from a video memory via the expansion card interface; and an encoder, coupled to the controller, arranged for encoding the video raw data to generate a compressed video stream based on slices, wherein each slice comprises at least one macroblock row;
wherein the video raw data comprises a plurality of video frames, each video frame is divided into M×
N macroblocks, where M and N are both integers, and each macroblock row comprises n macroblocks, where n is at most N, M is total number of rows of macroblocks arranged along horizontal direction parallel to the macroblock row and N is total number of columns of macroblocks arranged along vertical direction for the each video frame, the encoder comprises a plurality of encoding cores, the encoder is arranged for performing multi-channel encoding with the plurality of encoding cores, and each encoding core comprises a buffer for buffering a plurality of continuous macroblocks according to a clock frequency of the encoding core, a latency of the encoding core at least comprises a processing time of encoding one macroblock row and a buffering time of buffering three continuous macroblocks.- View Dependent Claims (2, 3, 4)
-
5. A video client-server system, comprising:
a video server, comprising; a graphic processing unit (GPU), arranged for generating a video raw data; a video memory, coupled to the GPU, arranged for storing the video raw data; and a video processing device, comprising; an expansion card interface, arranged for providing a multi-channel data transfer; a controller, arranged for performing direct memory access (DMA) function to access the video raw data from the video memory via the expansion card interface; and an encoder, coupled to the controller, arranged for encoding the video raw data to generate a compressed video stream based on slices, wherein each slice comprises at least one macroblock row; and wherein the video raw data comprises a plurality of video frame, each video frame is divided into M×
N macroblocks, and each macroblock row comprises n macroblocks, where n is at most N, M is total number of rows of macroblocks arranged along horizontal direction parallel to the macroblock row and N is total number of columns of macroblocks arranged along vertical direction for the each video frame, a client device, comprising;a decoder, arranged for decoding the compressed video stream to generate a decompressed video data, wherein the decompressed video data comprises a slice of the video frame; and a buffer, arranged for buffering a plurality of continuous macroblocks according to a clock frequency of the decoder, wherein the encoder comprises a plurality of encoding cores, the encoder performs multi-channel encoding with the encoding cores, and each encoding core comprises a buffer for buffering a plurality of continuous macroblocks according to a clock frequency of the encoding core; and
the decoder comprises a buffer for buffering a plurality of continuous macroblocks according to a clock frequency of the decoder, a latency of the encoding core at least comprises a processing time of encoding one macroblock row and a buffering time of buffering the plurality of continuous macroblocks; and
a latency of the decoder at least comprises a processing time of decoding one macroblock row and a buffering time of buffering three continuous macroblocks.- View Dependent Claims (6, 7, 8)
Specification