WO2024098715A1 - 一种基板管理控制芯片的视频压缩方法、系统及相关组件 - Google Patents

一种基板管理控制芯片的视频压缩方法、系统及相关组件 Download PDF

Info

Publication number
WO2024098715A1
WO2024098715A1 PCT/CN2023/095596 CN2023095596W WO2024098715A1 WO 2024098715 A1 WO2024098715 A1 WO 2024098715A1 CN 2023095596 W CN2023095596 W CN 2023095596W WO 2024098715 A1 WO2024098715 A1 WO 2024098715A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
data block
interval
block
current frame
Prior art date
Application number
PCT/CN2023/095596
Other languages
English (en)
French (fr)
Inventor
张贞雷
李拓
满宏涛
邹晓峰
刘刚
刘凯
Original Assignee
苏州元脑智能科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 苏州元脑智能科技有限公司 filed Critical 苏州元脑智能科技有限公司
Publication of WO2024098715A1 publication Critical patent/WO2024098715A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Definitions

  • the present application relates to the field of servers, and in particular to a video compression method, system and related components of a baseboard management control chip.
  • the baseboard management control chip BMC Baseboard Management Controller
  • BMC Baseboard Management Controller
  • the baseboard management control chip needs to perform JPEG compression on the video.
  • the compression process includes converting the data format of the original video, changing the data form, encoding the data, framing and other operations.
  • the purpose of this application is to provide a video compression method, system and related components of a baseboard management control chip that saves compression costs.
  • the scheme is as follows:
  • the present application provides a video compression method for a baseboard management control chip, comprising:
  • the compressed reference data block corresponding to the reference data interval is output as the compressed data block of the current frame to the subsequent framing unit;
  • a compression operation is performed on the data block to obtain a compressed data block of the current frame and output it to a subsequent frame assembly unit.
  • the process of determining the reference data interval includes:
  • the process of determining whether data of each data block is within the corresponding reference data interval includes:
  • the first data bit number is less than or equal to the preset data bit number, it is determined that the data of the data block is within the corresponding reference data interval.
  • the reference data block is a co-located data block in a frame previous to the current frame and having the same position as the data block to be determined.
  • the video compression method when the data of the data block is not within the corresponding reference data interval, the video compression method further includes:
  • the second data bit number is greater than the preset data bit number, it is determined that the data of the data block is not within the corresponding reference data interval, and a compression operation is performed on the data block to obtain a compressed data block of the current frame and output it to a subsequent frame assembly unit;
  • the data of the data block is determined to be within the corresponding reference data interval, and the compressed reference data block corresponding to the reference data interval is output to the subsequent framing unit as the compressed data block of the current frame.
  • the process of determining the reference data interval includes:
  • the reference data block is:
  • the reference data block is a standard co-located data block having the same position as the data block to be determined in a preset standard frame.
  • the reference data block is a standard parity data block with the same position as the data block to be determined in a preset standard frame.
  • the process of determining the reference data interval includes:
  • the average value of all data in the data block of the previous frame is used as the reference value, the first preset amount is added to the reference value to obtain the interval upper limit, the second preset amount is subtracted from the reference value to obtain the interval lower limit, and the reference data interval is determined according to the interval upper limit and the interval lower limit.
  • the process of determining whether data of each data block is within the corresponding reference data interval includes:
  • the process of determining whether data of each data block is within the corresponding reference data interval includes:
  • multiple data blocks of the current frame are read in parallel into the cache area, and for each data block read in the cache area, a step of determining whether the data of each data block is within the corresponding reference data interval is executed.
  • determining whether data of each data block is within a corresponding reference data interval includes:
  • the time when the first FIFO channel reads a complete data block is one line of data later than the time when the second FIFO channel reads a complete data block.
  • obtaining the original video data stream on the host side includes:
  • the original video data stream is obtained from the host side through the high-speed serial computer expansion bus standard bus, wherein the original video data stream is transmitted to the baseboard management control chip through the high-speed serial computer expansion bus standard bus in units of each frame of video image, and the original video data stream is video data in RGB format.
  • converting the raw video data stream into a data block in a YUV format includes:
  • the original video data stream is converted into a data block in YUV format through the RGB2YUV module in the baseboard management control chip, and the data block in YUV format is cached in the on-chip storage resource of the baseboard management control chip through the YUV2BLOCK module in the baseboard management control chip.
  • compressing the data block to obtain the compressed data block of the current frame and outputting it to the subsequent frame assembly unit includes:
  • the compressed data block of the current frame is output to the subsequent frame assembly unit.
  • the method further includes:
  • the compressed data block that has been compressed is read from the double rate synchronous dynamic random access memory through the Ethernet media access controller network card and transmitted to the remote end for remote display.
  • the present application provides a video compression system of a baseboard management control chip, comprising:
  • the interface module is configured to obtain the original video data stream from the host end;
  • a conversion module configured to convert the original video data stream into a data block in a YUV format
  • a judgment module is configured to judge, for all data blocks of the current frame, whether the data of each data block is within a corresponding reference data interval;
  • the compression selection module is configured to output the compressed reference data block corresponding to the reference data interval as the compressed data block of the current frame to the subsequent framing unit when the result of the judgment module is that the data of each data block is within the corresponding reference data interval, and is also configured to compress the data block to obtain the compressed data block of the current frame and output it to the subsequent framing unit when the result of the judgment module is that the data of each data block is within the corresponding reference data interval.
  • the present application provides an electronic device, including:
  • a memory arranged to store a computer program
  • the processor is configured to implement the steps of the video compression system of the baseboard management control chip as described above when executing the computer program.
  • the present application provides a non-volatile readable storage medium, on which a computer program is stored.
  • the computer program is executed by a processor, the steps of the video compression system of the baseboard management control chip as described above are implemented.
  • the present application discloses a video compression method for a baseboard management control chip, including: obtaining the original video data stream of the host end; converting the original video data stream into a data block in a YUV format; for all data blocks of the current frame, judging whether the data of each data block is within the corresponding reference data interval; when the data of each data block is within the corresponding reference data interval, outputting the compressed reference data block corresponding to the reference data interval as the compressed data block of the current frame to a subsequent framing unit; when the data of each data block is not within the corresponding reference data interval, compressing the data block to obtain the compressed data block of the current frame and outputting it to the subsequent framing unit.
  • the present application compresses the data block only when the data block is not within the reference data interval. By judging whether the data block is within the reference data interval, a large number of unnecessary repeated compression actions are saved, system resources are saved, compression efficiency is improved, and the overall performance of the baseboard management control chip is guaranteed.
  • FIG1 is a flowchart of a video compression method for a baseboard management control chip according to an embodiment of the present application
  • FIG2 is an internal action logic diagram of a baseboard management control chip in an embodiment of the present application.
  • FIG3 is a partial action logic diagram of a baseboard management control chip in an embodiment of the present application.
  • FIG4 is a schematic diagram of a data block of Y data in an embodiment of the present application.
  • FIG5 is a structural distribution diagram of a video compression system of a baseboard management control chip in an embodiment of the present application
  • FIG. 6 is a structural distribution diagram of an electronic device in an embodiment of the present application.
  • the present application performs compression operation on the data block only when the data block is not within the reference data interval. By judging whether the data block is within the reference data interval, a large number of unnecessary repeated compression actions are saved, system resources are saved, compression efficiency is improved, and the overall performance of the baseboard management control chip is ensured.
  • the embodiment of the present application discloses a video compression method of a baseboard management control chip, as shown in FIG1 , comprising:
  • the video compression method in this embodiment is applied to the server and implemented by the baseboard management control chip of the server as the execution subject.
  • the action logic inside the baseboard management control chip is shown in Figure 2.
  • the original video data stream of the host HOST is transmitted to the baseboard management control chip through the PCIe (Peripheral Component Interconnect Express, a high-speed serial computer expansion bus standard) bus.
  • PCIe Peripheral Component Interconnect Express, a high-speed serial computer expansion bus standard
  • the chip transmits each frame of video image as a unit, and the original video data stream is video data in RGB format; in step S2, the RGB2YUV module converts the original video data stream in RGB format into a data block in YUV format, and caches the data block in the on-chip storage resource of the baseboard management control chip through the YUV2BLOCK module (YUV to data block module), and the YUV2BLOCK module stores a FIFO (First Input First Output) array and read-write control logic; in step S3, the BLOCK_STORE_COMPARE (data block storage comparison) module analyzes and judges the current data block according to the internally stored reference data interval, and sends a related enable signal to the JPEG COMPRESS module (JPEG format compression module), thereby triggering the JPEG COMPRESS module to execute step S4 or S5;
  • the JPEG COMPRESS JPEG format compression module
  • the YUV format in step S2 includes compression formats such as YUV444, YUV422, and YUV420.
  • the data blocks in the YUV format corresponding to the video data of each frame include Y data blocks, U data blocks, and V data blocks. All YUV formats are applicable to the video compression method in this embodiment; when step S3 judges all the data blocks of the current frame, each data block, such as a Y data block, a U data block, or a V data block, is taken as an object to judge each data block and its corresponding reference data interval.
  • the reference data interval can be determined by the data block in the YUV format of the previous frame of video data, or by a data block in the YUV format of a frame screen that appears the most times.
  • the two data blocks corresponding to the comparison reference data interval should be data blocks of the same type and the same image position.
  • the average value of the entire data block can be used as a judgment parameter, or each bit of data in the data block can be analyzed and finally the entire data block can be judged whether it needs to be compressed based on the analysis results of all bits of data.
  • the data block used to determine the reference data interval and the determination method of the reference data interval can be set according to actual needs, and are not limited here.
  • step S4 is executed to read the compressed reference data block in the COMPRESS_DATA_COMPARE (compressed data comparison) unit and output it to the subsequent framing unit.
  • step S5 is executed.
  • step S5 mainly includes performing discrete cosine transform (DCT), quantization processing and entropy coding operations on the data blocks in sequence, and outputting the compressed data block of the current frame to the subsequent framing unit; the subsequent framing unit here mainly realizes the addition of frame header, frame tail and other information.
  • DCT discrete cosine transform
  • step S5 writing the compressed data blocks into DDR (Double Data Rate), and the EMAC (Ethernet Media Access Controller) network card can read the compressed data blocks in DDR and transmit them to the remote end for remote display, thereby achieving the purpose of monitoring and management.
  • DDR Double Data Rate
  • EMAC Ethernet Media Access Controller
  • the present application discloses a video compression method for a baseboard management control chip, including: obtaining the original video data stream of the host end; converting the original video data stream into a data block in a YUV format; for all data blocks of the current frame, determining whether the data of each data block is within the corresponding reference data interval; when the data of each data block is within the corresponding reference data interval, outputting the compressed reference data block corresponding to the reference data interval as the compressed data block of the current frame to a subsequent framing unit; when the data of each data block is not within the corresponding reference data interval, compressing the data block to obtain the compressed data block of the current frame and outputting it to a subsequent framing unit.
  • the present application only compresses the data block when it is not within the reference data interval. By determining whether the data block is within the reference data interval, a large amount of unnecessary repeated compression actions is saved, saving time and money. It saves system resources, improves compression efficiency, and ensures the overall performance of the baseboard management control chip.
  • the embodiment of the present application discloses an optional video compression method for a baseboard management control chip. Compared with the previous embodiment, this embodiment further explains and optimizes the technical solution.
  • the YUV format includes compression formats such as YUV444, YUV422, and YUV420.
  • the data blocks in the YUV format corresponding to the video data of each frame include a Y data block, a U data block, and a V data block.
  • the size of a Y data block is 16 ⁇ 16 pixels
  • the size of a U data block is 8 ⁇ 8 pixels
  • the size of a V data block is 8 ⁇ 8 pixels.
  • the size of a Y data block is 16 ⁇ 16 pixels
  • the size of a U data block is 16 ⁇ 8 pixels
  • the size of a V data block is 16 ⁇ 8 pixels.
  • the size of a Y data block is 8 ⁇ 8 pixels
  • the size of a U data block is 8 ⁇ 8 pixels
  • the size of a V data block is 8 ⁇ 8 pixels
  • the write logic for YUV format caching includes:
  • YUV444 format retain all rows and columns of Y/U/V data, optional:
  • V_FIFO_1 Write the V data of rows 1/9/17/25... into V_FIFO_1;
  • steps S3-S5 are all based on the data block in YUV format written into the cache being read out again.
  • the read operation of the data block does not care about the read address, but only needs to obtain the read enable issued before the judgment in step S3.
  • the read operation logic is: read 16 times Y_FIFO_0, 16 times Y_FIFO_1, ..., 16 times Y_FIFO_15; 8 times U_FIFO_0, 8 times U_FIFO_1, ..., 8 times U_FIFO_7; 8 times V_FIFO_0, 8 times V_FIFO_1, ..., 8 times V_FIFO_7, and then cycle in sequence.
  • the read operation logic is: read 16 times Y_FIFO_0, 16 times Y_FIFO_1, ..., 16 times Y_FIFO_15; 8 times U_FIFO_0, 8 times U_FIFO_1, ..., 8 times U_FIFO_15; 8 times V_FIFO_0, 8 times V_FIFO_1, ..., 8 times V_FIFO_15.
  • the read operation logic is: read 8 times Y_FIFO_0, 8 times Y_FIFO_1, ..., 8 times Y_FIFO_7; 8 times U_FIFO_0, 8 times U_FIFO_1, ..., 8 times U_FIFO_7; 8 times V_FIFO_0, 8 times V_FIFO_1, ..., 8 times V_FIFO_7.
  • the read operation logic can be adjusted to perform data block reading through multiple FIFO channels, thereby improving reading efficiency.
  • the process of determining whether the data of each data block is within the corresponding benchmark data interval includes: reading multiple data blocks of the current frame in parallel into a cache area through multiple FIFO channels, and for each data block that has been read in the cache area, executing the step of determining whether the data of each data block is within the corresponding benchmark data interval.
  • Figure 4 shows multiple data blocks corresponding to one frame, and each data block is represented in the form of BLOCK_x, where each row includes N data blocks, and N is a positive integer.
  • the traditional read operation logic reads Figure 4, it first reads Y_FIFO_0 16 times, then reads Y_FIFO_1 16 times... reads Y_FIFO_15 16 times, thereby obtaining a 16*16 BLOCK_0; then reads Y_FIFO_0 16 times, then reads Y_FIFO_1 16 times... reads Y_FIFO_15 16 times, and obtains a 16*16 BLOCK_1.
  • This embodiment modifies the read-out side logic in YUV2BLOCK, and reads multiple data blocks of the current frame to the cache area in parallel through multiple FIFO channels.
  • Y_FIFO_0 when obtaining the first line of data of BLOCK_0, that is, when reading Y_FIFO_1, Y_FIFO_0 can be read synchronously, and then the first line of BLOCK_0 and the 0th line of BLOCK_1 are synchronously obtained. Because Y_FIFO_1 and Y_FIFO_0 are two FIFO channels, synchronous reading at the same clock can be achieved.
  • BLOCK_1 is only one line of data slower than that of BLOCK_0, that is, 16 clocks slower.
  • the read operation logic of this embodiment greatly speeds up the YUV BLOCK data readout side and speeds up the video compression.
  • the reading of other BLOCK data can refer to the above BLOCK_0 and BLOCK_1.
  • the adjacent BLOCK data is read according to the read operation logic of this embodiment. All can be read out synchronously.
  • YUV422 and YUV444 only have different BLOCK sizes, and their processing logic is the same as that of YUV420 described above.
  • the embodiment of the present application discloses a video compression method for a baseboard management control chip. Compared with the previous embodiment, this embodiment further explains and optimizes the technical solution.
  • a corresponding reference data interval is set for each bit of data in this embodiment, and the process of determining the reference data interval includes:
  • the benchmark data interval of the data bit is [a-a2, a+a1], where a1 is the first preset value, and a2 is the second preset value.
  • the benchmark data interval of the data bit can be used to determine whether the data at the same position in the same type of data block in the current frame exceeds the benchmark data interval.
  • the reference data block can select a standard-based data block of a video image with a very high frequency of occurrence, that is, a standard same-position data block with the same position as the data block to be judged in a preset standard frame, or a data block of the previous frame relative to the current frame, that is, a same-position data block with the same position as the data block to be judged in the previous frame relative to the current frame.
  • the reference data block will be replaced by the same-position data block of a frame that has just been compressed, providing a criterion for whether the next frame of data to be compressed needs to be compressed.
  • the process of determining whether the data of each data block is within the corresponding reference data interval includes:
  • the first data bit number is not greater than the preset data bit number, it is determined that the data of the data block is within the corresponding reference data interval.
  • the video compression method further includes:
  • the second data bit number is greater than the preset data bit number, it is determined that the data of the data block is not within the corresponding reference data interval, and a compression operation is performed on the data block to obtain a compressed data block of the current frame and output it to a subsequent frame assembly unit;
  • the data of the data block is determined to be within the corresponding reference data interval, and the compressed reference data block corresponding to the reference data interval is output to the subsequent framing unit as the compressed data block of the current frame.
  • the process of determining the reference data interval includes:
  • the reference data block may be a neighboring data block adjacent to the position of the data block to be judged in the previous frame relative to the current frame, or the reference data block may be a standard same-position data block with the same position as the data block to be judged in a preset standard frame.
  • the selection of the reference data block may be set according to actual conditions.
  • the comparison results and corresponding measures obtained according to the above comparison can be configured in the register.
  • the JPEG COMPRESS module determines the current positive compressed data block according to the value of BLOCK_SAME[2:0] in the register and outputs it to the subsequent framing unit.
  • the embodiment of the present application discloses an optional video compression method for a baseboard management control chip. Compared with the previous embodiment, this embodiment further explains and optimizes the technical solution.
  • the average value of the entire data block is used as a judgment reference in this embodiment, and the process of determining the reference data interval includes:
  • the average value of all data in the data block of the previous frame is used as the reference value, the first preset amount is added to the reference value to obtain the interval upper limit, the second preset amount is subtracted from the reference value to obtain the interval lower limit, and the reference data interval is determined according to the interval upper limit and the interval lower limit.
  • the data block used to determine the benchmark value here in addition to selecting the previous frame, can also directly select the data block of the video image that appears on the standard basis and has a very high frequency of occurrence.
  • the data block of the previous frame needs to be updated in a timely manner, and the data block on the standard basis will no longer change after determining a benchmark data interval.
  • the process of determining whether the data of each data block is within the corresponding reference data interval includes:
  • this embodiment determines whether the compressed benchmark data block corresponding to the benchmark data interval can be directly used by the overall data performance of the data block.
  • its first preset amount and second preset amount can be determined according to the standard deviation of all data in the entire data block, and the details can be set according to actual needs.
  • the embodiment of the present application also discloses a video compression system of a baseboard management control chip, as shown in FIG5 , comprising:
  • Interface module 1 is configured to obtain the original video data stream from the host end
  • a conversion module 2 configured to convert the original video data stream into a data block in a YUV format
  • the judgment module 3 is configured to judge whether the data of each data block is within the corresponding reference data interval for all data blocks of the current frame;
  • the compression selection module 4 is configured to output the compressed reference data block corresponding to the reference data interval as the compressed data block of the current frame to the subsequent framing unit when the result of the judgment module 3 is that the data of each data block is within the corresponding reference data interval, and is also configured to perform a compression operation on the data block to obtain the compressed data block of the current frame and output it to the subsequent framing unit when the result of the judgment module 3 is that the data of each data block is not within the corresponding reference data interval.
  • the present application performs compression operation on the data block only when the data block is not within the reference data interval. By judging whether the data block is within the reference data interval, a large number of unnecessary repeated compression actions are saved, system resources are saved, compression efficiency is improved, and the overall performance of the baseboard management control chip is ensured.
  • the process of determining the reference data interval includes:
  • the process of determining whether the data of each data block is within the corresponding reference data interval for all data blocks of the current frame by the determination module 3 includes:
  • the first data bit number is less than or equal to the preset data bit number, it is determined that the data of the data block is within the corresponding reference data interval.
  • the reference data block is a co-located data block in the previous frame relative to the current frame and having the same position as the data block to be determined. piece.
  • the judgment module 3 is further configured to:
  • the second data bit number is greater than the preset data bit number, it is determined that the data of the data block is not within the corresponding reference data interval, and a compression operation is performed on the data block to obtain a compressed data block of the current frame and output it to a subsequent frame assembly unit;
  • the data of the data block is determined to be within the corresponding reference data interval, and the compressed reference data block corresponding to the reference data interval is output to the subsequent framing unit as the compressed data block of the current frame.
  • the process of determining the reference data interval includes:
  • the reference data block is:
  • the reference data block is a standard co-located data block having the same position as the data block to be determined in a preset standard frame.
  • the reference data block is a standard co-located data block having the same position as the data block to be determined in a preset standard frame.
  • the reference data block is a data block of a previous frame relative to the current frame.
  • the process of determining the reference data interval includes:
  • the average value of all data in the data block of the previous frame is used as the reference value, the first preset amount is added to the reference value to obtain the interval upper limit, the second preset amount is subtracted from the reference value to obtain the interval lower limit, and the reference data interval is determined according to the interval upper limit and the interval lower limit.
  • the process of determining whether the data of each data block is within the corresponding reference data interval for all data blocks of the current frame by the determination module 3 includes:
  • the process of determining whether data of each data block is within the corresponding reference data interval includes:
  • multiple data blocks of the current frame are read in parallel into the cache area, and for each data block that has been read in the cache area, The step of determining whether the data of each data block is within the corresponding reference data interval is executed.
  • the embodiment of the present application further discloses an electronic device, as shown in FIG6 , including a processor 11 and a memory 12; wherein the processor 11 implements the following steps when executing a computer program stored in the memory 12:
  • the compressed reference data block corresponding to the reference data interval is output as the compressed data block of the current frame to the subsequent framing unit;
  • a compression operation is performed on the data block to obtain a compressed data block of the current frame and output it to a subsequent frame assembly unit.
  • the embodiment of the present application performs compression operation on the data block only when the data block is not within the reference data interval. By judging whether the data block is within the reference data interval, a large number of unnecessary repeated compression actions are saved, system resources are saved, compression efficiency is improved, and the overall performance of the baseboard management control chip is ensured.
  • the reference data block is a data block of a previous frame relative to the current frame.
  • the average value of all data in the data block of the previous frame is used as the reference value, the first preset amount is added to the reference value to obtain the interval upper limit, the second preset amount is subtracted from the reference value to obtain the interval lower limit, and the reference data interval is determined according to the interval upper limit and the interval lower limit.
  • Discrete cosine transformation, quantization and entropy coding are sequentially performed on the data block to obtain a compressed data block of the current frame.
  • the electronic device in this embodiment may further include:
  • the input interface 13 is configured to obtain a computer program imported from the outside and save the obtained computer program to the memory 12. It can also be configured to obtain various instructions and parameters transmitted by an external terminal device and transmit them to the processor 11, so that the processor 11 can use the above various instructions and parameters to carry out corresponding processing.
  • the input interface 13 may include but is not limited to a USB (Universal Serial Bus) interface, a serial interface, a voice input interface, a fingerprint input interface, a hard disk reading interface, etc.
  • the output interface 14 is configured to output various data generated by the processor 11 to a terminal device connected thereto, so that other terminal devices connected to the output interface 14 can obtain various data generated by the processor 11.
  • the output interface 14 may include but is not limited to a USB interface, a serial interface, and the like.
  • the communication unit 15 is configured to establish a remote communication connection between the electronic device and the external server so that the electronic device can mount the image file to the external server.
  • the communication unit 15 may include but is not limited to a remote communication unit based on wireless communication technology or wired communication technology.
  • the keyboard 16 is configured to obtain various parameter data or instructions input by the user by tapping the keycaps in real time.
  • the display 17 is configured to display relevant information of the video compression process in real time, so that the user can understand the current video compression status in time.
  • the mouse 18 can be configured to assist the user in inputting data and simplify the user's operation.
  • the embodiments of the present application also disclose a non-volatile readable storage medium, wherein the non-volatile readable storage medium includes a random access memory (RAM), a memory, a read-only memory (ROM), an electrically programmable ROM, an electrically erasable programmable ROM, a register, a hard disk, a removable hard disk, a CD-ROM (Compact Disc Read-Only Memory), or any other form of storage medium known in the technical field.
  • the non-volatile readable storage medium stores a computer program, and when the computer program is executed by a processor, the following steps are implemented:
  • the compressed reference data block corresponding to the reference data interval is used as the current
  • the compressed data blocks of the frame are output to the subsequent framing unit;
  • a compression operation is performed on the data block to obtain a compressed data block of the current frame and output it to a subsequent frame assembly unit.
  • the embodiment of the present application performs compression operation on the data block only when the data block is not within the reference data interval. By judging whether the data block is within the reference data interval, a large number of unnecessary repeated compression actions are saved, system resources are saved, compression efficiency is improved, and the overall performance of the baseboard management control chip is ensured.
  • the reference data block is a data block of a previous frame relative to the current frame.
  • the average value of all data in the data block of the previous frame is used as the reference value, the first preset amount is added to the reference value to obtain the interval upper limit, the second preset amount is subtracted from the reference value to obtain the interval lower limit, and the reference data interval is determined according to the interval upper limit and the interval lower limit.
  • Discrete cosine transformation, quantization and entropy coding are sequentially performed on the data block to obtain a compressed data block of the current frame.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请公开了一种基板管理控制芯片的视频压缩方法、系统及相关组件,涉及服务器领域,该方法包括:获取主机端的原始视频数据流;将原始视频数据流转换为YUV格式的数据块;对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内;在每个数据块的数据在对应的基准数据区间内的情况下,将基准数据区间对应的压缩基准数据块作为当前帧的压缩数据块输出到后级组帧单元;在每个数据块的数据不在对应的基准数据区间内的情况下,对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元。本申请只有在数据块不在基准数据区间内时对该数据块进行压缩操作,通过对数据块是否在基准数据区间内的判断,节省了大量不必要的重复压缩动作,节约了系统资源,提高了压缩效率,保证了基板管理控制芯片的整体性能。

Description

一种基板管理控制芯片的视频压缩方法、系统及相关组件
相关申请的交叉引用
本申请要求于2022年11月11日提交中国专利局,申请号为202211412341.0,申请名称为“一种基板管理控制芯片的视频压缩方法、系统及相关组件”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及服务器领域,特别涉及一种基板管理控制芯片的视频压缩方法、系统及相关组件。
背景技术
当前,服务器中的基板管理控制芯片BMC(Baseboard Management Controller,基板管理控制器),除了对服务器中各部件的状态进行监控外,还设有一个重要功能是将本地的视频通过网络传递给远端,供远端显示并监控。
通常,基板管理控制芯片在对本地视频进行网络传递前,需要向对视频进行JPEG压缩,压缩过程包括转换原始视频的数据格式、变换数据形式、对数据编码、组帧等操作。
在该方案中,所有帧的原始视频都需要进行压缩,不存在有任一帧缺漏的情况。但是服务器的显示界面区别于普通个人主机,通常不会将大量的数据运算过程显示在主机界面上,因此原始视频的画面变化非常小,此时基板管理控制芯片的压缩过程中实际上对许多帧重复的视频画面进行了压缩,某种程度上浪费了服务器资源,且容易对基板管理控制芯片的性能造成负面影响。
针对相关技术中的上述基板管理控制芯片的压缩过程中,浪费了服务器资源的技术问题,尚未提出有效的解决方案。
发明内容
有鉴于此,本申请的目的在于提供一种节省压缩成本的基板管理控制芯片的视频压缩方法、系统及相关组件。其方案如下:
第一方面,本申请提供了一种基板管理控制芯片的视频压缩方法,包括:
获取主机端的原始视频数据流;
将原始视频数据流转换为YUV格式的数据块;
对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内;
在每个数据块的数据在对应的基准数据区间内的情况下,将基准数据区间对应的压缩基准数据块作为当前帧的压缩数据块输出到后级组帧单元;
在每个数据块的数据不在对应的基准数据区间内的情况下,对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元。
在一些实施例中,基准数据区间的确定过程包括:
以基准数据块中所有数据作为基准值,对基准值中每一位数据增加第一预设量得到每一位数据对应的区间上限,对基准值中每一位数据减去第二预设量得到每一位数据对应的区间下限,根据区间上限和区间下限确定每一位数据对应的基准数据区间。
在一些实施例中,对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内的过程,包括:
对于当前帧的所有数据块,判断每个数据块的每一位数据是否在对应的基准数据区间内;
对每个数据块中不在对应的基准数据区间内的数据计数,得到第一数据位数;
判断第一数据位数是否大于预设数据位数;
在第一数据位数大于预设数据位数的情况下,判定数据块的数据不在对应的基准数据区间内;
在第一数据位数小于或者等于预设数据位数的情况下,判定数据块的数据在对应的基准数据区间内。
在一些实施例中,基准数据块为相对于当前帧的前一帧中与待判断的数据块位置相同的同位数据块。
在一些实施例中,当数据块的数据不在对应的基准数据区间内,视频压缩方法还包括:
判断数据块的每一位数据是否在对应的参考数据区间内;
对数据块中不在对应的参考数据区间内的数据计数,得到第二数据位数;
判断第二数据位数是否大于预设数据位数;
在第二数据位数大于预设数据位数的情况下,判定数据块的数据不在对应的参考数据区间内,对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元;
在第二数据位数小于或者等于预设数据位数的情况下,判定数据块的数据在对应的参考数据区间内,将参考数据区间对应的压缩参考数据块作为当前帧的压缩数据块输出到后级组帧单元。
在一些实施例中,参考数据区间的确定过程包括:
以不同于基准数据块的参考数据块中所有数据作为参考值,对参考值中每一位数据增加第一预设量得到每一位数据对应的区间上限,对参考值中每一位数据减去第二预设量得到每一位数据对应的区间下限,根据区间上限和区间下限确定每一位数据对应的参考数据区间。
在一些实施例中,参考数据块为:
相对于当前帧的前一帧中与待判断的数据块位置相邻的邻位数据块。
在一些实施例中,参考数据块为预设标准帧中待判断的数据块位置相同的标准同位数据块。
在一些实施例中,基准数据块为预设标准帧中待判断的数据块位置相同的标准同位数据块。
在一些实施例中,基准数据区间的确定过程包括:
以前一帧的数据块中所有数据的平均值作为基准值,对基准值增加第一预设量得到区间上限,对基准值减去第二预设量得到区间下限,根据区间上限和区间下限确定基准数据区间。
在一些实施例中,对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内的过程,包括:
对于当前帧的所有数据块,计算每个数据块的所有数据的平均值;
判断平均值是否在对应的基准数据区间内;
在平均值在对应的基准数据区间内的情况下,判定数据块的数据不在对应的基准数据区间内;
在平均值不在对应的基准数据区间内的情况下,判定数据块的数据在对应的基准数据区间内。
在一些实施例中,对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内的过程,包括:
通过多个FIFO通道,并行读取当前帧的多个数据块到缓存区域,并对缓存区域中完成读取的每个数据块,执行判断每个数据块的数据是否在对应的基准数据区间内的步骤。
在一些实施例中,对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内,包括:
通过两个FIFO通道,并行读取当前帧的多个数据块到缓存区域,并对缓存区域中完成读取的每个数据块,执行判断每个数据块的数据是否在对应的基准数据区间内的步骤;
其中,第一个FIFO通道读取到一个完整的数据块的时刻比第二个FIFO通道读取到一个完整的数据块的时刻慢一行数据。
在一些实施例中,获取主机端的原始视频数据流,包括:
通过高速串行计算机扩展总线标准总线从主机端中获取原始视频数据流,其中,原始视频数据流以每帧视频图像为单位通过高速串行计算机扩展总线标准总线向基板管理控制芯片传送,原始视频数据流为RGB格式的视频数据。
在一些实施例中,将原始视频数据流转换为YUV格式的数据块,包括:
通过基板管理控制芯片中的RGB2YUV模块将原始视频数据流转换为YUV格式的数据块,并通过基板管理控制芯片中的YUV2BLOCK模块将YUV格式的数据块缓存在基板管理控制芯片的片内存储资源中。
在一些实施例中,对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元,包括:
对数据块进行离散余弦转换、量化处理和熵编码操作,得到当前帧的压缩数据块;
将当前帧的压缩数据块输出到后级组帧单元。
在一些实施例中,在对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元之后,方法还包括:
将压缩数据块写入双倍速率同步动态随机存储器;
通过以太网媒体访问控制器网卡从双倍速率同步动态随机存储器中读取已完成压缩的压缩数据块并传输至远端进行远程显示。
第二方面,本申请提供了一种基板管理控制芯片的视频压缩系统,包括:
接口模块,被设置为获取主机端的原始视频数据流;
转换模块,被设置为将原始视频数据流转换为YUV格式的数据块;
判断模块,被设置为对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内;
压缩选择模块,被设置为当判断模块的结果为每个数据块的数据在对应的基准数据区间内时,将基准数据区间对应的压缩基准数据块作为当前帧的压缩数据块输出到后级组帧单元,还被设置为当判断模块的判定结果为每个数据块的数据在对应的基准数据区间内时,对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元。
第三方面,本申请提供了一种电子设备,包括:
存储器,被设置为存储计算机程序;
处理器,被设置为执行计算机程序时实现如上文任一项基板管理控制芯片的视频压缩系统的步骤。
第四方面,本申请提供了一种非易失性可读存储介质,非易失性可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上文任一项基板管理控制芯片的视频压缩系统的步骤。
本申请公开了一种基板管理控制芯片的视频压缩方法,包括:获取主机端的原始视频数据流;将原始视频数据流转换为YUV格式的数据块;对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内;在每个数据块的数据在对应的基准数据区间内的情况下,将基准数据区间对应的压缩基准数据块作为当前帧的压缩数据块输出到后级组帧单元;在每个数据块的数据不在对应的基准数据区间内的情况下,对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元。本申请只有在数据块不在基准数据区间内时对该数据块进行压缩操作,通过对数据块是否在基准数据区间内的判断,节省了大量不必要的重复压缩动作,节约了系统资源,提高了压缩效率,保证了基板管理控制芯片的整体性能。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来 讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例中一种基板管理控制芯片的视频压缩方法的步骤流程图;
图2为本申请实施例中一种基板管理控制芯片的内部动作逻辑图;
图3为本申请实施例中一种基板管理控制芯片的局部动作逻辑图;
图4为本申请实施例中一种Y数据的数据块示意图;
图5为本申请实施例中一种基板管理控制芯片的视频压缩系统的结构分布图;
图6为本申请实施例中一种电子设备的结构分布图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
传统压缩方案中,所有帧的原始视频都需要进行压缩,不存在有任一帧缺漏的情况。但是服务器的显示界面区别于普通个人主机,通常不会将大量的数据运算过程显示在主机界面上,因此原始视频的画面变化非常小,此时基板管理控制芯片的压缩过程中实际上对许多帧重复的视频画面进行了压缩,某种程度上浪费了服务器资源,且容易对基板管理控制芯片的性能造成负面影响。
本申请只有在数据块不在基准数据区间内时对该数据块进行压缩操作,通过对数据块是否在基准数据区间内的判断,节省了大量不必要的重复压缩动作,节约了系统资源,提高了压缩效率,保证了基板管理控制芯片的整体性能。
本申请实施例公开了一种基板管理控制芯片的视频压缩方法,参见图1所示,包括:
S1:获取主机端的原始视频数据流;
S2:将原始视频数据流转换为YUV格式的数据块;
S3:对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内;
S4:在每个数据块的数据在对应的基准数据区间内的情况下,将基准数据区间对应的压缩基准数据块作为当前帧的压缩数据块输出到后级组帧单元;
S5:在每个数据块的数据不在对应的基准数据区间内的情况下,对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元。
可以理解的是,本实施例中视频压缩方法应用于服务器中,由服务器的基板管理控制芯片作为执行主体实现,基板管理控制芯片内部的动作逻辑如图2所示。其中,主机端HOST的原始视频数据流通过PCIe(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)总线传递给基板管理控制 芯片,以每帧视频图像为单位进行传送,原始视频数据流为RGB格式的视频数据;步骤S2中,由RGB2YUV模块将RGB格式的原始视频数据流转换为YUV格式的数据块,并通过YUV2BLOCK模块(YUV到数据块模块)将数据块缓存在基板管理控制芯片的片内存储资源中,YUV2BLOCK模块中存有FIFO(First Input First Output,先入先出队列)阵列和读写控制逻辑;步骤S3中由BLOCK_STORE_COMPARE(数据块存储比较)模块根据内部存储的基准数据区间对当前数据块进行分析判断,并发送相关的使能信号到JPEG COMPRESS模块(JPEG格式压缩模块),从而触发JPEG COMPRESS模块来执行步骤S4或S5;
可以理解的是,步骤S2中YUV格式包括YUV444、YUV422、YUV420等压缩格式,每帧的视频数据对应的YUV格式的数据块,包括Y数据块、U数据块和V数据块,所有的YUV格式均可适用于本实施例中的视频压缩方法;步骤S3对于当前帧的所有数据块进行判断时,以每个数据块,如Y数据块、U数据块或V数据块为对象,分别判断每个数据块与其对应的基准数据区间。该基准数据区间可通过前一帧视频数据的YUV格式的数据块确定,也可通过一个出现次数最多的帧画面的YUV格式的数据块确定,可以理解的是,对应比较基准数据区间的两个数据块应为同一类型、同一图像位置的数据块。比较时,可以整个数据块的平均值作为判断参数,也可以对数据块中每位数据进行分析最后根据所有位数据的分析结果判断整个数据块是否需要压缩。用于确定基准数据区间的数据块和基准数据区间的确定方法,可根据实际需求进行设置,此处不作限制。
其中,JPEG COMPRESS(JPEG格式压缩;JPEG,Joint Photographic Experts Group,联合图像专家组)模块的内部动作逻辑如图3所示,check(检查)单元对当前数据块在S3中的判断结果进行分析,在每个数据块的数据在对应的基准数据区间内的情况下,则执行步骤S4,读取COMPRESS_DATA_COMPARE(压缩数据比较)单元中压缩基准数据块输出到后级组帧单元,在每个数据块的数据不在对应的基准数据区间内的情况下,则执行步骤S5,步骤S5的压缩操作主要包括对数据块依次执行离散余弦转换(Discrete Cosine Transform,DCT)、量化处理和熵编码操作,得到当前帧的压缩数据块后输出到后级组帧单元;这里的后级组帧单元主要实现添加帧头、帧尾等信息。
在步骤S5之后,还包括以下步骤:将压缩数据块写入DDR(Double Data Rate,双倍速率同步动态随机存储器),EMAC(Ethernet Media Access Controller,以太网媒体访问控制器)网卡可读取DDR中已完成压缩的压缩数据块并传输至远端,进行远程显示,进而达到监控和管理的目的。
本申请公开了一种基板管理控制芯片的视频压缩方法,包括:获取主机端的原始视频数据流;将原始视频数据流转换为YUV格式的数据块;对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内;在每个数据块的数据在对应的基准数据区间内的情况下,将基准数据区间对应的压缩基准数据块作为当前帧的压缩数据块输出到后级组帧单元;在每个数据块的数据不在对应的基准数据区间内的情况下,对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元。本申请只有在数据块不在基准数据区间内时对该数据块进行压缩操作,通过对数据块是否在基准数据区间内的判断,节省了大量不必要的重复压缩动作,节 约了系统资源,提高了压缩效率,保证了基板管理控制芯片的整体性能。
本申请实施例公开了一种可选的基板管理控制芯片的视频压缩方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
在一些实施例中,YUV格式包括YUV444、YUV422、YUV420等压缩格式,每帧的视频数据对应的YUV格式的数据块,包括Y数据块、U数据块和V数据块,可选的:
在YUV420格式下,一个Y数据块的尺寸为16×16个像素点,一个U数据块的尺寸为8×8个像素点,一个V数据块的尺寸为8×8个像素点,可以只保留偶数行偶数列的U数据块、V数据块,也可以只保留奇数行奇数列的U数据块、V数据块,还可以只保留偶数行奇数列的U数据块、V数据块,或者只保留奇数行偶数列的U数据块、V数据块,其原则是4个Y分量共用一个UV分量;
类似的,在YUV422格式下,一个Y数据块的尺寸为16×16个像素点,一个U数据块的尺寸为16×8个像素点,一个V数据块的尺寸为16×8个像素点,可以只保留偶数行的U数据块、V数据块,也可以只保留奇数行的U数据块、V数据块,还可以只保留偶数列的U数据块、V数据块,或者只保留奇数列的U数据块、V数据块,其原则是2个Y分量共用一个UV分量;
类似的,在YUV444格式下,一个Y数据块的尺寸为8×8个像素点,一个U数据块的尺寸为8×8个像素点,一个V数据块的尺寸为8×8个像素点,需保留所有行和所有列的YUV分量。
可选的,YUV格式缓存时的写逻辑包括:
在YUV420格式下,以保留全部的Y数据块,保留偶数行偶数列的U/V数据块为例:
将第0/16/32/48…行的Y数据写进Y_FIFO_0;
将第1/17/33/49…行的Y数据写进Y_FIFO_1;
将第2/18/34/50…行的Y数据写进Y_FIFO_2;
……
将第15/31/47/63…行的Y数据写进Y_FIFO_15;
将第0/16/32/48…行的偶数列U数据写进U_FIFO_0;
将第2/18/34/50…行的偶数列U数据写进U_FIFO_1;
……
将第14/30/46/62…行的偶数列U数据写进U_FIFO_7;
将第0/16/32/48…行的偶数列V数据写进V_FIFO_0;
将第2/18/34/50…行的偶数列V数据写进V_FIFO_1;
……
将第14/30/46/62…行的偶数列V数据写进V_FIFO_7。
在YUV422格式下,以保留全部的Y数据块,保留偶数列的U/V数据块为例:
将第0/16/32/48…行的Y数据写进Y_FIFO_0;
将第1/17/33/49…行的Y数据写进Y_FIFO_1;
将第2/18/34/50…行的Y数据写进Y_FIFO_2;
……
将第15/31/47/63…行的Y数据写进Y_FIFO_15;
将第0/16/32/48…行的偶数列U数据写进U_FIFO_0;
将第1/17/33/49…行的偶数列U数据写进U_FIFO_1;
将第2/18/34/50…行的偶数列U数据写进U_FIFO_2;
……
将第15/31/47/63…行偶数列的U数据写进U_FIFO_15;
将第0/16/32/48…行的偶数列V数据写进V_FIFO_0;
将第1/17/33/49…行的偶数列V数据写进V_FIFO_1;
将第2/18/34/50…行的偶数列V数据写进V_FIFO_2;
……
将第15/31/47/63…行偶数列的V数据写进V_FIFO_15;
在YUV444格式下,保留全部行全部列的Y/U/V数据,可选的:
将第0/8/16/24…行的Y数据写进Y_FIFO_0;
将第1/9/17/25…行的Y数据写进Y_FIFO_1;
将第2/10/18/26…行的Y数据写进Y_FIFO_2;
……
将第7/15/23/31…行的Y数据写进Y_FIFO_7;
将第0/8/16/24…行的U数据写进U_FIFO_0;
将第1/9/17/25…行的U数据写进U_FIFO_1;
将第2/10/18/26…行的U数据写进U_FIFO_2;
……
将第7/15/23/31…行的U数据写进U_FIFO_7;
将第0/8/16/24…行的V数据写进V_FIFO_0;
将第1/9/17/25…行的V数据写进V_FIFO_1;
将第2/10/18/26…行的V数据写进V_FIFO_2;
……
将第7/15/23/31…行的V数据写进V_FIFO_7。
进一步的,步骤S3-S5中对数据块进行判断和后续处理的动作,均建立在写入缓存的YUV格式的数据块被再次读出的基础上,数据块的读操作不关心读地址,只需要获取步骤S3判断前所发出的读使能,可选的:
在YUV420格式中,读操作逻辑为:依次去读16次Y_FIFO_0,16次Y_FIFO_1,…,16次Y_FIFO_15;8次U_FIFO_0,8次U_FIFO_1,…,8次U_FIFO_7;8次V_FIFO_0,8次V_FIFO_1,…,8次V_FIFO_7,然后依次循环。
在YUV422格式中,读操作逻辑为:依次去读16次Y_FIFO_0,16次Y_FIFO_1,…,16次Y_FIFO_15;8次U_FIFO_0,8次U_FIFO_1,…,8次U_FIFO_15;8次V_FIFO_0,8次V_FIFO_1,…,8次V_FIFO_15。
在YUV444格式中,读操作逻辑为:依次去读8次Y_FIFO_0,8次Y_FIFO_1,…,8次Y_FIFO_7;8次U_FIFO_0,8次U_FIFO_1,…,8次U_FIFO_7;8次V_FIFO_0,8次V_FIFO_1,…,8次V_FIFO_7。
进一步的,本申请实施例中可调整读操作逻辑,通过多个FIFO通道进行数据块读取,从而提高读效率,可选的:对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内的过程,包括;通过多个FIFO通道,并行读取当前帧的多个数据块到缓存区域,并对缓存区域中完成读取的每个数据块,执行判断每个数据块的数据是否在对应的基准数据区间内的步骤。
在一些实施例中,以YUV420为例,其Y数据的数据块如图4所示,图4为一帧对应的多个数据块,每个数据块以BLOCK_x的形式表示,其中每行包括N个数据块,N为正整数,传统读操作逻辑读取图4时,先读取16次Y_FIFO_0,再读取16次Y_FIFO_1……读取16次Y_FIFO_15,从而获得16*16的BLOCK_0;然后读取16次Y_FIFO_0,再读取16次Y_FIFO_1……读取16次Y_FIFO_15,获得16*16的BLOCK_1。
本实施例对YUV2BLOCK中的读出侧逻辑进行修改,在通过多个FIFO通道,并行读取当前帧的多个数据块到缓存区域,以2个FIFO通道为例,仍以图4为例,在获得BLOCK_0的第1行数据,即在读取Y_FIFO_1的时候,可同步读取Y_FIFO_0,进而同步获得BLOCK_0的第1行和BLOCK_1的第0行。因为Y_FIFO_1和Y_FIFO_0是两个FIFO通道,因此可以实现在同一时钟的同步读取。
以此类推,在获得BLOCK_0的第2行数据,即在读取Y_FIFO_2的时候,另一FIFO通道同步读取Y_FIFO_1,进而同步获得BLOCK_0的第2行和BLOCK_1的第1行。
由此,BLOCK_1的获得时间只比BLOCK_0慢一行数据,即慢16个时钟,而传统方案中是顺序产生BLOCK_0和BLOCK_1,BLOCK_1比BLOCK_0慢16×16=256个时钟,本实施例的读操作逻辑极大加快了YUV BLOCK数据读出侧的速度,加快了视频压缩的速度。
同理,其他的BLOCK数据的读出,可参考上述BLOCK_0和BLOCK_1,相邻BLOCK数据以本实施例的读操作逻辑 均可同步读出。
同理,YUV422和YUV444,只是BLOCK的尺寸不同,其处理逻辑与上述描述的YUV420相同。
本申请实施例公开了一种基板管理控制芯片的视频压缩方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
在一些实施例中,本实施例中对每一位数据均设置相应的基准数据区间,则基准数据区间的确定过程包括:
以基准数据块中所有数据作为基准值,对基准值中每一位数据增加第一预设量得到每一位数据对应的区间上限,对基准值中每一位数据减去第二预设量得到每一位数据对应的区间下限,根据区间上限和区间下限确定每一位数据对应的基准数据区间。
例如,若基准数据块中某一位数据为a,以a为该数据位的基准值,则该数据位的基准数据区间为[a-a2,a+a1],其中a1为第一预设量,a2为第二预设量,该数据位的基准数据区间可以用来判断当前帧的同类数据块中同一位置的数据是否超出基准数据区间。
其中,基准数据块既可以选择一个标准基础的、出现频率极高的视频图像的数据块,即预设标准帧中待判断的数据块位置相同的标准同位数据块,也可以选择相对于当前帧的前一帧的数据块,即相对于当前帧的前一帧中与待判断的数据块位置相同的同位数据块,随着原始视频数据流的逐帧处理压缩,基准数据块将更换为刚压缩完的一帧的同位数据块,为下一帧待压缩的数据提供是否需要压缩的判据。
进一步的,对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内的过程,包括:
对于当前帧的所有数据块,判断每个数据块的每一位数据是否在对应的基准数据区间内;
对每个数据块中不在对应的基准数据区间内的数据计数,得到第一数据位数;
判断第一数据位数是否大于预设数据位数;
在第一数据位数大于预设数据位数的情况下,判定数据块的数据不在对应的基准数据区间内;
在第一数据位数不大于预设数据位数的情况下,判定数据块的数据在对应的基准数据区间内。
可以理解的是,在超出基准数据区间的数据位数大于预设数据位数时,判定整个数据块的数据不在对应的基准数据区间内,无法直接使用基准数据块作为当前帧的压缩数据块,当前帧的数据块需要通过压缩操作才能得到准确的压缩数据块。
进一步的,在基准数据区间的基础上,还可增加另一个参考数据区间,在不满足基准数据区间的基础上再次判断能否避免对当前数据块的压缩,可选的:
当数据块的数据不在对应的基准数据区间内,视频压缩方法还包括:
判断数据块的每一位数据是否在对应的参考数据区间内;
对数据块中不在对应的参考数据区间内的数据计数,得到第二数据位数;
判断第二数据位数是否大于预设数据位数;
在第二数据位数大于预设数据位数的情况下,判定数据块的数据不在对应的参考数据区间内,对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元;
在第二数据位数不大于预设数据位数的情况下,判定数据块的数据在对应的参考数据区间内,将参考数据区间对应的压缩参考数据块作为当前帧的压缩数据块输出到后级组帧单元。
类似的,参考数据区间的确定过程包括:
以不同于基准数据块的参考数据块中所有数据作为参考值,对参考值中每一位数据增加第一预设量得到每一位数据对应的区间上限,对参考值中每一位数据减去第二预设量得到每一位数据对应的区间下限,根据区间上限和区间下限确定每一位数据对应的参考数据区间。
进一步的,参考数据块可以为相对于当前帧的前一帧中与待判断的数据块位置相邻的邻位数据块,或者,参考数据块可以为预设标准帧中待判断的数据块位置相同的标准同位数据块,参考数据块的选择根据实际情况进行设置即可。
进一步的,根据上述比较得出的比较结果及其对应的措施可配置在寄存器中,例如当判定数据块的数据在对应的基准数据区间内,则设置BLOCK_SAME[2:0]=1信号给JPEG COMPRESS模块;当判定数据块的数据在对应的参考数据区间内,则设置BLOCK_SAME[2:0]=2信号给JPEG COMPRESS模块;当判定数据块的数据不在对应的参考数据区间内,则设置BLOCK_SAME[2:0]=0信号给JPEG COMPRESS模块,JPEG COMPRESS模块根据寄存器中BLOCK_SAME[2:0]的值确定当前正的压缩数据块并输出到后级组帧单元。
本申请实施例公开了一种可选的基板管理控制芯片的视频压缩方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
在一些实施例中,本实施例中以整个数据块的平均值作为判断基准,基准数据区间的确定过程包括:
以前一帧的数据块中所有数据的平均值作为基准值,对基准值增加第一预设量得到区间上限,对基准值减去第二预设量得到区间下限,根据区间上限和区间下限确定基准数据区间。
可以理解的是,这里用于确定基准值的数据块,除了选择前一帧外,也可以直接选择出现标准基础的、出现频率极高的视频图像的数据块,前一帧的数据块需要及时更新,标准基础的数据块在确定一个基准数据区间后将不再变化。
进一步的,对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内的过程,包括:
对于当前帧的所有数据块,计算每个数据块的所有数据的平均值;
判断平均值是否在对应的基准数据区间内;
在平均值在对应的基准数据区间内的情况下,判定数据块的数据不在对应的基准数据区间内;
在平均值不在对应的基准数据区间内的情况下,判定数据块的数据在对应的基准数据区间内。
可以理解的是,本实施例通过对数据块整体的数据表现判断是否能够直接使用对应基准数据区间的压缩基准数据块,为了进一步提高判断准确性,在确定基准数据区间时,其第一预设量和第二预设量可根据整个数据块中所有数据的标准差来确定,细节可根据实际需求进行设置。
相应的,本申请实施例还公开了一种基板管理控制芯片的视频压缩系统,参见图5所示,包括:
接口模块1,被设置为获取主机端的原始视频数据流;
转换模块2,被设置为将原始视频数据流转换为YUV格式的数据块;
判断模块3,被设置为对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内;
压缩选择模块4,被设置为当判断模块3的结果为每个数据块的数据在对应的基准数据区间内时,将基准数据区间对应的压缩基准数据块作为当前帧的压缩数据块输出到后级组帧单元,还被设置为当判断模块3的判定结果为每个数据块的数据不在对应的基准数据区间内时,对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元。
本申请只有在数据块不在基准数据区间内时对该数据块进行压缩操作,通过对数据块是否在基准数据区间内的判断,节省了大量不必要的重复压缩动作,节约了系统资源,提高了压缩效率,保证了基板管理控制芯片的整体性能。
在一些可选的实施例中,基准数据区间的确定过程包括:
以基准数据块中所有数据作为基准值,对基准值中每一位数据增加第一预设量得到每一位数据对应的区间上限,对基准值中每一位数据减去第二预设量得到每一位数据对应的区间下限,根据区间上限和区间下限确定每一位数据对应的基准数据区间。
在一些可选的实施例中,判断模块3对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内的过程,包括:
对于当前帧的所有数据块,判断每个数据块的每一位数据是否在对应的基准数据区间内;
对每个数据块中不在对应的基准数据区间内的数据计数,得到第一数据位数;
判断第一数据位数是否大于预设数据位数;
在第一数据位数大于预设数据位数的情况下,判定数据块的数据不在对应的基准数据区间内;
在第一数据位数小于或者等于预设数据位数的情况下,判定数据块的数据在对应的基准数据区间内。
在一些可选的实施例中,基准数据块为相对于当前帧的前一帧中与待判断的数据块位置相同的同位数据 块。
在一些可选的实施例中,当数据块的数据不在对应的基准数据区间内,判断模块3还被设置为:
判断数据块的每一位数据是否在对应的参考数据区间内;
对数据块中不在对应的参考数据区间内的数据计数,得到第二数据位数;
判断第二数据位数是否大于预设数据位数;
在第二数据位数大于预设数据位数的情况下,判定数据块的数据不在对应的参考数据区间内,对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元;
在第二数据位数小于或者等于预设数据位数的情况下,判定数据块的数据在对应的参考数据区间内,将参考数据区间对应的压缩参考数据块作为当前帧的压缩数据块输出到后级组帧单元。
在一些可选的实施例中,参考数据区间的确定过程包括:
以不同于基准数据块的参考数据块中所有数据作为参考值,对参考值中每一位数据增加第一预设量得到每一位数据对应的区间上限,对参考值中每一位数据减去第二预设量得到每一位数据对应的区间下限,根据区间上限和区间下限确定每一位数据对应的参考数据区间。
在一些可选的实施例中,参考数据块为:
相对于当前帧的前一帧中与待判断的数据块位置相邻的邻位数据块。
在一些可选的实施例中,参考数据块为预设标准帧中待判断的数据块位置相同的标准同位数据块。
在一些可选的实施例中,基准数据块为预设标准帧中待判断的数据块位置相同的标准同位数据块。
在一些可选的实施例中,基准数据块为相对于当前帧的前一帧的数据块。
在一些可选的实施例中,基准数据区间的确定过程包括:
以前一帧的数据块中所有数据的平均值作为基准值,对基准值增加第一预设量得到区间上限,对基准值减去第二预设量得到区间下限,根据区间上限和区间下限确定基准数据区间。
在一些可选的实施例中,判断模块3对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内的过程,包括:
对于当前帧的所有数据块,计算每个数据块的所有数据的平均值;
判断平均值是否在对应的基准数据区间内;
在平均值在对应的基准数据区间内的情况下,判定数据块的数据不在对应的基准数据区间内;
在平均值不在对应的基准数据区间内的情况下,判定数据块的数据在对应的基准数据区间内。
在一些可选的实施例中,对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内的过程,包括:
通过多个FIFO通道,并行读取当前帧的多个数据块到缓存区域,并对缓存区域中完成读取的每个数据块, 执行判断每个数据块的数据是否在对应的基准数据区间内的步骤。
本申请实施例还公开了一种电子设备,参见图6所示,包括处理器11和存储器12;其中,处理器11执行存储器12中保存的计算机程序时实现以下步骤:
获取主机端的原始视频数据流;
将原始视频数据流转换为YUV格式的数据块;
对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内;
在每个数据块的数据在对应的基准数据区间内的情况下,将基准数据区间对应的压缩基准数据块作为当前帧的压缩数据块输出到后级组帧单元;
在每个数据块的数据不在对应的基准数据区间内的情况下,对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元。
本申请实施例只有在数据块不在基准数据区间内时对该数据块进行压缩操作,通过对数据块是否在基准数据区间内的判断,节省了大量不必要的重复压缩动作,节约了系统资源,提高了压缩效率,保证了基板管理控制芯片的整体性能。
在一些可选的实施例中,处理器11执行存储器12中保存的计算机子程序时,可以实现以下步骤:
以基准数据块中所有数据作为基准值,对基准值中每一位数据增加第一预设量得到每一位数据对应的区间上限,对基准值中每一位数据减去第二预设量得到每一位数据对应的区间下限,根据区间上限和区间下限确定每一位数据对应的基准数据区间。
在一些可选的实施例中,处理器11执行存储器12中保存的计算机子程序时,可以实现以下步骤:
对于当前帧的所有数据块,判断每个数据块的每一位数据是否在对应的基准数据区间内;
对每个数据块中不在对应的基准数据区间内的数据计数,得到第一数据位数;
判断第一数据位数是否大于预设数据位数;
在平均值在对应的基准数据区间内的情况下,判定数据块的数据不在对应的基准数据区间内;
在平均值不在对应的基准数据区间内的情况下,判定数据块的数据在对应的基准数据区间内。
在一些可选的实施例中,基准数据块为相对于当前帧的前一帧的数据块。
在一些可选的实施例中,处理器11执行存储器12中保存的计算机子程序时,可以实现以下步骤:
以前一帧的数据块中所有数据的平均值作为基准值,对基准值增加第一预设量得到区间上限,对基准值减去第二预设量得到区间下限,根据区间上限和区间下限确定基准数据区间。
在一些可选的实施例中,处理器11执行存储器12中保存的计算机子程序时,可以实现以下步骤:
对于当前帧的所有数据块,计算每个数据块的所有数据的平均值;
判断平均值是否在对应的基准数据区间内;
在平均值在对应的基准数据区间内的情况下,判定数据块的数据不在对应的基准数据区间内;
在平均值不在对应的基准数据区间内的情况下,判定数据块的数据在对应的基准数据区间内。
在一些可选的实施例中,处理器11执行存储器12中保存的计算机子程序时,可以实现以下步骤:
对数据块依次执行离散余弦转换、量化处理和熵编码操作,得到当前帧的压缩数据块。
进一步的,本实施例中的电子设备,还可以包括:
输入接口13,被设置为获取外界导入的计算机程序,并将获取到的计算机程序保存至存储器12中,还可以被设置为获取外界终端设备传输的各种指令和参数,并传输至处理器11中,以便处理器11利用上述各种指令和参数展开相应的处理。本实施例中,输入接口13可以包括但不限于USB(Universal Serial Bus,通用串行总线)接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。
输出接口14,被设置为将处理器11产生的各种数据输出至与其相连的终端设备,以便于与输出接口14相连的其他终端设备能够获取到处理器11产生的各种数据。本实施例中,输出接口14可以包括但不限于USB接口、串行接口等。
通讯单元15,被设置为在电子设备和外部服务器之间建立远程通讯连接,以便于电子设备能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元15可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。
键盘16,被设置为获取用户通过实时敲击键帽而输入的各种参数数据或指令。
显示器17,被设置为对视频压缩过程的相关信息进行实时显示,以便于用户及时地了解当前视频压缩情况。
鼠标18,可以被设置为协助用户输入数据并简化用户的操作。
进一步的,本申请实施例还公开了一种非易失性可读存储介质,这里所说的非易失性可读存储介质包括随机存储器(RAM,Random Access Memory)、内存、只读存储器(ROM,Read Only Memory)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动硬盘、CD-ROM(Compact Disc Read-Only Memory,只读光盘)或技术领域内所公知的任意其他形式的存储介质。非易失性可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取主机端的原始视频数据流;
将原始视频数据流转换为YUV格式的数据块;
对于当前帧的所有数据块,判断每个数据块的数据是否在对应的基准数据区间内;
在每个数据块的数据在对应的基准数据区间内的情况下,将基准数据区间对应的压缩基准数据块作为当前 帧的压缩数据块输出到后级组帧单元;
在每个数据块的数据不在对应的基准数据区间内的情况下,对数据块进行压缩操作得到当前帧的压缩数据块并输出到后级组帧单元。
本申请实施例只有在数据块不在基准数据区间内时对该数据块进行压缩操作,通过对数据块是否在基准数据区间内的判断,节省了大量不必要的重复压缩动作,节约了系统资源,提高了压缩效率,保证了基板管理控制芯片的整体性能。
在一些可选的实施例中,非易失性可读存储介质中存储的计算机子程序被处理器执行时,可以实现以下步骤:
以基准数据块中所有数据作为基准值,对基准值中每一位数据增加第一预设量得到每一位数据对应的区间上限,对基准值中每一位数据减去第二预设量得到每一位数据对应的区间下限,根据区间上限和区间下限确定每一位数据对应的基准数据区间。
在一些可选的实施例中,非易失性可读存储介质中存储的计算机子程序被处理器执行时,可以实现以下步骤:
对于当前帧的所有数据块,判断每个数据块的每一位数据是否在对应的基准数据区间内;
对每个数据块中不在对应的基准数据区间内的数据计数,得到第一数据位数;
判断第一数据位数是否大于预设数据位数;
在平均值在对应的基准数据区间内的情况下,判定数据块的数据不在对应的基准数据区间内;
在平均值不在对应的基准数据区间内的情况下,判定数据块的数据在对应的基准数据区间内。
在一些可选的实施例中,基准数据块为相对于当前帧的前一帧的数据块。
在一些可选的实施例中,非易失性可读存储介质中存储的计算机子程序被处理器执行时,可以实现以下步骤:
以前一帧的数据块中所有数据的平均值作为基准值,对基准值增加第一预设量得到区间上限,对基准值减去第二预设量得到区间下限,根据区间上限和区间下限确定基准数据区间。
在一些可选的实施例中,非易失性可读存储介质中存储的计算机子程序被处理器执行时,可以实现以下步骤:
对于当前帧的所有数据块,计算每个数据块的所有数据的平均值;
判断平均值是否在对应的基准数据区间内;
在平均值在对应的基准数据区间内的情况下,判定数据块的数据不在对应的基准数据区间内;
在平均值不在对应的基准数据区间内的情况下,判定数据块的数据在对应的基准数据区间内。
在一些可选的实施例中,非易失性可读存储介质中存储的计算机子程序被处理器执行时,可以实现以下步 骤:
对数据块依次执行离散余弦转换、量化处理和熵编码操作,得到当前帧的压缩数据块。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种基板管理控制芯片的视频压缩方法、系统及相关组件进行了详细介绍,本文中应用了个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (20)

  1. 一种基板管理控制芯片的视频压缩方法,其特征在于,包括:
    获取主机端的原始视频数据流;
    将所述原始视频数据流转换为YUV格式的数据块;
    对于当前帧的所有数据块,判断每个所述数据块的数据是否在对应的基准数据区间内;
    在每个所述数据块的数据在对应的所述基准数据区间内的情况下,将所述基准数据区间对应的压缩基准数据块作为当前帧的压缩数据块输出到后级组帧单元;
    在每个所述数据块的数据不在对应的所述基准数据区间内的情况下,对所述数据块进行压缩操作得到当前帧的压缩数据块并输出到所述后级组帧单元。
  2. 根据权利要求1所述视频压缩方法,其特征在于,所述基准数据区间的确定过程包括:
    以基准数据块中所有数据作为基准值,对所述基准值中每一位数据增加第一预设量得到每一位数据对应的区间上限,对所述基准值中每一位数据减去第二预设量得到每一位数据对应的区间下限,根据所述区间上限和所述区间下限确定每一位数据对应的所述基准数据区间。
  3. 根据权利要求2所述视频压缩方法,其特征在于,所述对于当前帧的所有数据块,判断每个所述数据块的数据是否在对应的基准数据区间内的过程,包括:
    对于当前帧的所有数据块,判断每个所述数据块的每一位数据是否在对应的基准数据区间内;
    对每个所述数据块中不在对应的所述基准数据区间内的数据计数,得到第一数据位数;
    判断所述第一数据位数是否大于预设数据位数;
    在所述第一数据位数大于所述预设数据位数的情况下,判定所述数据块的数据不在对应的所述基准数据区间内;
    在所述第一数据位数小于或者等于所述预设数据位数的情况下,判定所述数据块的数据在对应的所述基准数据区间内。
  4. 根据权利要求3所述视频压缩方法,其特征在于,所述基准数据块为相对于当前帧的前一帧中与待判断的所述数据块位置相同的同位数据块。
  5. 根据权利要求4所述视频压缩方法,其特征在于,当所述数据块的数据不在对应的基准数据区间内,所述视频压缩方法还包括:
    判断所述数据块的每一位数据是否在对应的参考数据区间内;
    对所述数据块中不在对应的所述参考数据区间内的数据计数,得到第二数据位数;
    判断所述第二数据位数是否大于所述预设数据位数;
    在所述第二数据位数大于所述预设数据位数的情况下,判定所述数据块的数据不在对应的所述参考数据区间内,对所述数据块进行压缩操作得到当前帧的压缩数据块并输出到所述后级组帧单元;
    在所述第二数据位数小于或者等于所述预设数据位数的情况下,判定所述数据块的数据在对应的所述参考数据区间内,将所述参考数据区间对应的压缩参考数据块作为当前帧的压缩数据块输出到后级组帧单元。
  6. 根据权利要求5所述视频压缩方法,其特征在于,所述参考数据区间的确定过程包括:
    以不同于所述基准数据块的参考数据块中所有数据作为参考值,对所述参考值中每一位数据增加第一预设量得到每一位数据对应的区间上限,对所述参考值中每一位数据减去第二预设量得到每一位数据对应的区间下限,根据所述区间上限和所述区间下限确定每一位数据对应的所述参考数据区间。
  7. 根据权利要求6所述视频压缩方法,其特征在于,所述参考数据块为:
    相对于当前帧的前一帧中与待判断的所述数据块位置相邻的邻位数据块。
  8. 根据权利要求6所述视频压缩方法,其特征在于,所述参考数据块为预设标准帧中待判断的所述数据块位置相同的标准同位数据块。
  9. 根据权利要求3所述视频压缩方法,其特征在于,所述基准数据块为预设标准帧中待判断的所述数据块位置相同的标准同位数据块。
  10. 根据权利要求1所述视频压缩方法,其特征在于,所述基准数据区间的确定过程包括:
    以前一帧的数据块中所有数据的平均值作为基准值,对所述基准值增加第一预设量得到区间上限,对所述基准值减去第二预设量得到区间下限,根据所述区间上限和所述区间下限确定所述基准数据区间。
  11. 根据权利要求10所述视频压缩方法,其特征在于,所述对于当前帧的所有数据块,判断每个所述数据块的数据是否在对应的基准数据区间内的过程,包括:
    对于当前帧的所有数据块,计算每个所述数据块的所有数据的平均值;
    判断所述平均值是否在对应的基准数据区间内;
    在所述平均值在对应的基准数据区间内的情况下,判定所述数据块的数据不在对应的基准数据区间内;
    在所述平均值不在对应的基准数据区间内的情况下,判定所述数据块的数据在对应的基准数据区间内。
  12. 根据权利要求1至11任一项所述视频压缩方法,其特征在于,所述对于当前帧的所有数据块,判断每个所述数据块的数据是否在对应的基准数据区间内的过程,包括:
    通过多个FIFO通道,并行读取当前帧的多个数据块到缓存区域,并对所述缓存区域中完成读取的每个所述数据块,执行所述判断每个所述数据块的数据是否在对应的基准数据区间内的步骤。
  13. 根据权利要求1所述视频压缩方法,其特征在于,所述对于当前帧的所有数据块,判断每个所述数据块的数据是否在对应的基准数据区间内,包括:
    通过两个FIFO通道,并行读取当前帧的多个数据块到缓存区域,并对所述缓存区域中完成读取的每个所述数据块,执行所述判断每个所述数据块的数据是否在对应的基准数据区间内的步骤;
    其中,第一个所述FIFO通道读取到一个完整的所述数据块的时刻比第二个所述FIFO通道读取到一个完整的数据块的时刻慢一行数据。
  14. 根据权利要求1所述视频压缩方法,其特征在于,所述获取主机端的原始视频数据流,包括:
    通过高速串行计算机扩展总线标准总线从所述主机端中获取所述原始视频数据流,其中,所述原始视频数据流以每帧视频图像为单位通过所述高速串行计算机扩展总线标准总线向基板管理控制芯片传送,所述原始视频数据流为RGB格式的视频数据。
  15. 根据权利要求1所述视频压缩方法,其特征在于,所述将所述原始视频数据流转换为YUV格式的数据块,包括:
    通过基板管理控制芯片中的RGB2YUV模块将所述原始视频数据流转换为YUV格式的数据块,并通过所述基板管理控制芯片中的YUV2BLOCK模块将所述YUV格式的数据块缓存在所述基板管理控制芯片的片内存储资源中。
  16. 根据权利要求1所述视频压缩方法,其特征在于,所述对所述数据块进行压缩操作得到当前帧的压缩数据块并输出到所述后级组帧单元,包括:
    对所述数据块进行离散余弦转换、量化处理和熵编码操作,得到当前帧的所述压缩数据块;
    将当前帧的所述压缩数据块输出到所述后级组帧单元。
  17. 根据权利要求1所述视频压缩方法,其特征在于,在所述对所述数据块进行压缩操作得到当前帧的压缩数据块并输出到所述后级组帧单元之后,所述方法还包括:
    将所述压缩数据块写入双倍速率同步动态随机存储器;
    通过以太网媒体访问控制器网卡从所述双倍速率同步动态随机存储器中读取已完成压缩的所述压缩数据块并传输至远端进行远程显示。
  18. 一种基板管理控制芯片的视频压缩系统,其特征在于,包括:
    接口模块,被设置为获取主机端的原始视频数据流;
    转换模块,被设置为将所述原始视频数据流转换为YUV格式的数据块;
    判断模块,被设置为对于当前帧的所有数据块,判断每个所述数据块的数据是否在对应的基准数据区间内;
    压缩选择模块,被设置为当所述判断模块的结果为每个所述数据块的数据在对应的基准数据区间内时,将所述基准数据区间对应的压缩基准数据块作为当前帧的压缩数据块输出到后级组帧单元,还被设置为当所述判断模块的判定结果为每个所述数据块的数据不在对应的基准数据区间内时,对所述数据块进行压缩操作得到当前帧的压缩数据块并输出到所述后级组帧单元。
  19. 一种电子设备,其特征在于,包括:
    存储器,被设置为存储计算机程序;
    处理器,被设置为执行所述计算机程序时实现如权利要求1至17任一项所述基板管理控制芯片的视频压缩方法的步骤。
  20. 一种非易失性可读存储介质,其特征在于,所述非易失性可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述基板管理控制芯片的视频压缩方法的步骤。
PCT/CN2023/095596 2022-11-11 2023-05-22 一种基板管理控制芯片的视频压缩方法、系统及相关组件 WO2024098715A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211412341.0 2022-11-11
CN202211412341.0A CN115460414B (zh) 2022-11-11 2022-11-11 一种基板管理控制芯片的视频压缩方法、系统及相关组件

Publications (1)

Publication Number Publication Date
WO2024098715A1 true WO2024098715A1 (zh) 2024-05-16

Family

ID=84295748

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/095596 WO2024098715A1 (zh) 2022-11-11 2023-05-22 一种基板管理控制芯片的视频压缩方法、系统及相关组件

Country Status (2)

Country Link
CN (1) CN115460414B (zh)
WO (1) WO2024098715A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115460414B (zh) * 2022-11-11 2023-03-07 苏州浪潮智能科技有限公司 一种基板管理控制芯片的视频压缩方法、系统及相关组件
CN117319676B (zh) * 2023-11-28 2024-02-23 苏州元脑智能科技有限公司 一种视频压缩装置、芯片、系统及方法
CN117319716B (zh) * 2023-11-28 2024-02-27 苏州元脑智能科技有限公司 基板管理控制芯片的资源调度方法及基板管理控制芯片
CN117319675B (zh) * 2023-11-28 2024-02-27 苏州元脑智能科技有限公司 服务器管理控制芯片的视频压缩系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016017953A1 (ko) * 2014-07-30 2016-02-04 엔트릭스 주식회사 클라우드 스트리밍 서비스 시스템, 스틸 이미지 기반 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
CN109640089A (zh) * 2018-11-02 2019-04-16 西安万像电子科技有限公司 图像编解码方法及装置
CN113905240A (zh) * 2020-06-22 2022-01-07 中兴通讯股份有限公司 视频编码方法及装置、服务器、存储介质
CN115086668A (zh) * 2022-07-21 2022-09-20 苏州浪潮智能科技有限公司 一种视频压缩方法、系统、设备及计算机可读存储介质
CN115209145A (zh) * 2022-09-15 2022-10-18 苏州浪潮智能科技有限公司 一种视频压缩方法、系统、装置及可读存储介质
CN115460414A (zh) * 2022-11-11 2022-12-09 苏州浪潮智能科技有限公司 一种基板管理控制芯片的视频压缩方法、系统及相关组件

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107659815B (zh) * 2017-09-13 2022-06-03 中国科学院半导体研究所 图像解压方法及执行其的装置
CN113079379A (zh) * 2021-03-26 2021-07-06 山东英信计算机技术有限公司 一种视频压缩方法、装置、设备及计算机可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016017953A1 (ko) * 2014-07-30 2016-02-04 엔트릭스 주식회사 클라우드 스트리밍 서비스 시스템, 스틸 이미지 기반 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
CN109640089A (zh) * 2018-11-02 2019-04-16 西安万像电子科技有限公司 图像编解码方法及装置
CN113905240A (zh) * 2020-06-22 2022-01-07 中兴通讯股份有限公司 视频编码方法及装置、服务器、存储介质
CN115086668A (zh) * 2022-07-21 2022-09-20 苏州浪潮智能科技有限公司 一种视频压缩方法、系统、设备及计算机可读存储介质
CN115209145A (zh) * 2022-09-15 2022-10-18 苏州浪潮智能科技有限公司 一种视频压缩方法、系统、装置及可读存储介质
CN115460414A (zh) * 2022-11-11 2022-12-09 苏州浪潮智能科技有限公司 一种基板管理控制芯片的视频压缩方法、系统及相关组件

Also Published As

Publication number Publication date
CN115460414B (zh) 2023-03-07
CN115460414A (zh) 2022-12-09

Similar Documents

Publication Publication Date Title
WO2024098715A1 (zh) 一种基板管理控制芯片的视频压缩方法、系统及相关组件
CN112839231B (zh) 一种视频压缩传输方法和系统
CN115086668B (zh) 一种视频压缩方法、系统、设备及计算机可读存储介质
CN114501024B (zh) 一种视频压缩系统、方法、计算机可读存储介质及服务器
WO2023197507A1 (zh) 视频数据处理方法、系统、装置及计算机可读存储介质
TW201034468A (en) Video compression circuit and method thereof
CN103914404A (zh) 一种粗粒度可重构系统中的配置信息缓存装置及压缩方法
JP2017005456A (ja) 画像圧縮方法、画像圧縮装置及び撮像装置
CN106412473A (zh) 影像处理装置、影视子系统与影视处理电路
EP2787738A1 (en) Tile-based compression and decompression for graphic applications
CN113613289A (zh) 一种蓝牙数据传输方法、系统及通信设备
CN108881923B (zh) 减少jpeg编解码行缓冲容量的方法
CN112637602B (zh) 一种jpeg接口及数字图像处理系统
CN115866331A (zh) 视频抽帧分析方法、装置、设备及存储介质
WO2021237513A1 (zh) 数据压缩存储的系统、方法、处理器及计算机存储介质
CN201044472Y (zh) 一种图像处理的装置
CN108876703B (zh) 数据存储方法
CN101247474B (zh) 一种图像处理的装置及方法
CN206181271U (zh) 视频压缩系统
KR20210134947A (ko) 외부 메모리의 협력 액세스 방법 및 시스템, 협력 액세스 아키텍처
CN109688350A (zh) 基于非制冷型红外热像仪的视频处理系统
WO2021237518A1 (zh) 数据存储的方法、装置、处理器及计算机存储介质
CN105007490B (zh) 基于OmapL138芯片的Jpeg压缩算法
CN103414898A (zh) 一种高分辨率视频采集方法及系统
US20180041612A1 (en) System and method for out-of-stream order compression of multi-media tiles in a system on a chip