WO2021147463A1 - 视频处理方法、装置及电子设备 - Google Patents

视频处理方法、装置及电子设备 Download PDF

Info

Publication number
WO2021147463A1
WO2021147463A1 PCT/CN2020/127586 CN2020127586W WO2021147463A1 WO 2021147463 A1 WO2021147463 A1 WO 2021147463A1 CN 2020127586 W CN2020127586 W CN 2020127586W WO 2021147463 A1 WO2021147463 A1 WO 2021147463A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
pixel block
bit
preset
processed
Prior art date
Application number
PCT/CN2020/127586
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 WO2021147463A1 publication Critical patent/WO2021147463A1/zh

Links

Images

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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Definitions

  • the embodiments of the present disclosure relate to the field of coding technology, and in particular, to a video processing method, device, and electronic equipment.
  • Video image signals have become people’s daily routines due to their intuitiveness and efficiency. The most important way to get information in life. Take screen video as an example.
  • the screen video content is the video content directly captured in the image display of computers, mobile phones and other terminals. It mainly includes computer graphics, text documents, natural video and graphic text mixed images, and computer-generated images. Screen video coding has broad application prospects in desktop sharing, video conferencing, online education, cloud games and other fields.
  • hevc scc puts forward an expansion proposal for screen video content on hevc/h.265.
  • the hevc scc coding tool has intra block copy (IBC for short).
  • IBC intra block copy
  • performing a traditional motion search method cannot accurately find a perfectly matched reference block. If the above-mentioned IBC is used to search for a matching block in the screen content, and if a matching reference block can be searched, the residual is almost zero, which greatly improves the compression efficiency.
  • IBC is based on the gradient calculation of image blocks, and there will be a large number of similar image blocks with the same hash value. In this way, when searching for reference blocks based on the hash value, it will cause more reference blocks to be searched.
  • the reference block is further processed to determine the final reference block, thereby reducing the encoding speed.
  • the embodiments of the present disclosure provide a video processing method, device, and electronic equipment to overcome the problem that a large number of similar image blocks have the same hash value caused by IBC encoding, thereby reducing the encoding speed.
  • embodiments of the present disclosure provide a video processing method, including:
  • the preset encoding mode according to the value of the first preset bit in the 32-bit cyclic redundancy check (crc) value of the target pixel block, search for the second preset bit in the preset pixel block information table.
  • the searched second preset bit is the same as the value of the second preset bit in the 32-bit crc value of the target pixel block, then according to the searched second preset bit The value of the bit, obtaining the coordinates of the reference pixel block from the preset pixel block information table;
  • a video processing device including:
  • the search module is configured to search for the value of the first preset bit in the preset pixel block information table according to the value of the first preset bit in the 32-bit crc value of the target pixel block in the preset coding mode The value of the corresponding second preset bit;
  • An obtaining module configured to: if the value of the second preset bit found in the search is the same as the value of the second preset bit in the 32-bit crc value of the target pixel block, then according to the searched The value of the second preset bit, obtaining the coordinates of the reference pixel block from the preset pixel block information table;
  • the encoding module is configured to perform conversion between the target pixel block and the bit representation of the target pixel block according to the coordinates of the reference pixel block.
  • an embodiment of the present disclosure provides an electronic device, including: at least one processor and a memory;
  • the memory stores computer execution instructions
  • the at least one processor executes the computer-executable instructions stored in the memory, so that the at least one processor executes the video processing method described in the first aspect and various possible designs of the first aspect.
  • embodiments of the present disclosure provide a computer-readable storage medium that stores computer-executable instructions.
  • the processor executes the computer-executable instructions, the first aspect and the first aspect described above are implemented. In terms of various possible designs, the video processing method described.
  • the method when encoding a target pixel block, searches for a reference pixel from a preset pixel block information table according to the 32-bit crc value of the target pixel block in a preset encoding mode Block, and obtain the coordinates of the reference pixel block, and then perform the conversion between the bit representations of the target pixel block and the target pixel block according to the coordinates of the reference pixel block.
  • 32-bit crc The values are completely different, which solves the problem that IBC encoding causes a large number of similar image blocks to have the same hash value, thereby reducing the encoding speed.
  • the preset pixel block information table when searching for a reference pixel block, according to the above-mentioned target pixel block.
  • the value of the first preset bit and the value of the second preset bit in the 32-bit crc value are searched in segments in the preset pixel block information table, so that the preset pixel block information table can divide the information Segment storage saves storage space and is suitable for practical applications.
  • FIG. 1 is a schematic diagram of the architecture of a video processing system provided by an embodiment of the disclosure
  • FIG. 2 is a schematic flowchart of a video processing method provided by an embodiment of the present disclosure
  • FIG. 3 is a schematic flowchart of another video processing method provided by an embodiment of the present disclosure.
  • FIG. 4 is a schematic flowchart of still another video processing method provided by an embodiment of the disclosure.
  • FIG. 5 is a schematic flowchart of another video processing method provided by an embodiment of the present disclosure.
  • FIG. 6 is a schematic flowchart of another video processing method provided by an embodiment of the present disclosure.
  • FIG. 7 is a schematic flowchart of another video processing method provided by an embodiment of the present disclosure.
  • FIG. 8 is a schematic structural diagram of a video processing device provided by an embodiment of the disclosure.
  • FIG. 9 is a schematic structural diagram of another video processing device provided by an embodiment of the disclosure.
  • FIG. 10 is a schematic diagram of the hardware structure of an electronic device provided by an embodiment of the disclosure.
  • Video coding usually refers to processing a sequence of pictures that form a video or video sequence.
  • the terms "piCTUre", “frame” or “image” can be used as synonyms.
  • the video encoding in the present disclosure is performed on the source side, and usually includes processing (for example, by compressing) the original video picture to reduce the amount of data required to represent the video picture (thus storing and/or transmitting more efficiently).
  • Video decoding is performed on the destination side and usually involves inverse processing relative to the encoder to reconstruct the video picture.
  • the term "block” may be a part of a picture or frame.
  • VVC Versatile Video Coding
  • VCEG ITU-T Video Coding Experts Group
  • HEVC ISO/IEC Motion Picture Experts Group
  • JCT-VC Joint Collaboration Team on Video Coding
  • a coding tree unit is split into multiple coding units (Coding Unit, CU for short) by using a quad-tree structure represented as a coding tree.
  • CU is the coding unit, usually corresponding to an A ⁇ B rectangular area, including A ⁇ B luminance pixels and its corresponding chrominance pixels, A is the width of the rectangle, B is the height of the rectangle, and A and B can be the same. It can be different.
  • the values of A and B are usually integer powers of 2, such as 128, 64, 32, 16, 8, 4.
  • a coding unit can obtain a reconstructed image of an A ⁇ B rectangular area through decoding processing.
  • the decoding processing usually includes prediction, inverse quantization, inverse transformation, etc., to generate a predicted image and residual, and the predicted image and residual are superimposed to be reconstructed image.
  • CTU is the coding tree unit. An image is composed of multiple CTUs.
  • a CTU usually corresponds to a square image area and contains the luminance pixels and chrominance pixels in this image area (or only luminance pixels, or only luminance pixels). Including chrominance pixels);
  • the CTU also contains syntax elements, which indicate how to divide the CTU into at least one CU, and the method of decoding each coding unit to obtain a reconstructed image.
  • the existing screen video content is the video content directly captured in the image display of the computer, mobile phone and other terminals, mainly including computer graphics, text documents, natural video and graphic text mixed images, computer-generated images, etc.
  • hevc scc puts forward an expansion proposal for screen video content on hevc/h.265.
  • the hevc scc coding tool has IBC.
  • performing a traditional motion search method cannot accurately find a perfectly matched reference block. If the above-mentioned IBC is used to search for a matching block in the screen content, and if a matching reference block can be searched, the residual is almost zero, which greatly improves the compression efficiency.
  • IBC is based on the gradient calculation of image blocks. There are a large number of similar image blocks with the same hash value (hash value). In this way, subsequent search for reference blocks based on the hash value will result in more reference blocks being searched. The searched reference block is further processed to determine the final reference block, thereby reducing the encoding speed.
  • IBC For an 8x8 coding block:
  • H is the result hash value to be calculated, a total of 16 bits.
  • MSB(val,n) refers to the highest n bits of val.
  • means shift left.
  • dc 0-3 represents the DC value of four 4x4 sub-blocks, or the average pixel value.
  • Grad represents the average value of the gradient values in the horizontal and vertical directions.
  • the present disclosure provides a video processing method by searching for reference pixels from the preset pixel block information table according to the 32-bit crc value of the target pixel block in the preset encoding mode when encoding the target pixel block Block, and obtain the coordinates of the reference pixel block, and then perform the conversion between the bit representations of the target pixel block and the target pixel block according to the coordinates of the reference pixel block.
  • 32-bit crc The values are completely different, which solves the problem that IBC encoding causes a large number of similar image blocks to have the same hash value, thereby reducing the encoding speed.
  • the preset pixel block information table when searching for a reference pixel block, according to the above-mentioned target pixel block.
  • the value of the first preset bit and the value of the second preset bit in the 32-bit crc value are searched in segments in the preset pixel block information table, so that the preset pixel block information table can divide the information Segment storage saves storage space and is suitable for practical applications.
  • the video processing method provided by the present disclosure can be applied to the schematic diagram of the video processing system architecture shown in FIG. 1.
  • the video processing system 10 includes a source device 12 and a target device 14, and the source device 12 includes: picture acquisition The device 121, the preprocessor 122, the encoder 123 and the communication interface 124.
  • the target device 14 includes a display device 141, a processor 142, a decoder 143, and a communication interface 144.
  • the source device 12 sends the encoded data 13 obtained by encoding to the target device 14.
  • the method of the present disclosure is applied to the encoder 123.
  • the source device 12 may be referred to as a video encoding device or a video encoding device.
  • the target device 14 may be referred to as a video decoding device or a video decoding device.
  • the source device 12 and the target device 14 may be examples of video encoding devices or video encoding devices.
  • the source device 12 and the target device 14 may include any of a variety of devices, including any type of handheld or stationary device, for example, a notebook or laptop computer, mobile phone, smart phone, tablet or tablet computer, video camera, desktop computer , Set-top boxes, televisions, display devices, digital media players, video game consoles, video streaming devices (such as content service servers or content distribution servers), broadcast receiver devices, broadcast transmitter devices, etc., and may not be used or Use any type of operating system.
  • a notebook or laptop computer mobile phone, smart phone, tablet or tablet computer, video camera, desktop computer , Set-top boxes, televisions, display devices, digital media players, video game consoles, video streaming devices (such as content service servers or content distribution servers), broadcast receiver devices, broadcast transmitter devices, etc., and may not be used or Use any type of operating system.
  • source device 12 and target device 14 may be equipped for wireless communication. Therefore, the source device 12 and the target device 14 may be wireless communication devices.
  • the video processing system 10 shown in FIG. 1 is only an example, and the technology of the present disclosure can be applied to video encoding settings (for example, video encoding or video decoding) that do not necessarily include any data communication between encoding and decoding devices. .
  • the data can be retrieved from local storage, streamed on the network, etc.
  • the video encoding device can encode data and store the data to the memory, and/or the video decoding device can retrieve the data from the memory and decode the data.
  • encoding and decoding are performed by devices that do not communicate with each other but only encode data to and/or retrieve data from the memory and decode the data.
  • the encoder 123 of the video processing system 10 may also be referred to as a video encoder, and the decoder 143 may also be referred to as a video decoder.
  • the picture acquisition device 121 may include or may be any type of picture capture device, for example, to capture real-world pictures, and/or any type of pictures or comments (for screen content encoding, some text on the screen is also Considered to be a part of the picture or image to be encoded) generating equipment, for example, a computer graphics processor for generating computer animation pictures, or for obtaining and/or providing real-world pictures, computer animation pictures (for example, screen content, virtual Any type of equipment of virtual reality (VR) pictures, and/or any combination thereof (for example, augmented reality (AR) pictures).
  • the picture is or can be regarded as a two-dimensional array or matrix of sampling points with brightness values.
  • the sampling points in the array may also be called pixels (pixels) or pixels (piCTUre element, pel for short).
  • the number of sampling points of the array in the horizontal and vertical directions (or axis) defines the size and/or resolution of the picture.
  • three color components are usually used, that is, pictures can be represented as or contain three sample arrays.
  • a picture includes corresponding red, green, and blue sample arrays.
  • each pixel is usually expressed in a luminance/chrominance format or color space, for example, YCbCr, including the luminance (luma) component indicated by Y (sometimes indicated by L), and Cb and Cr indications.
  • the two chroma (chroma for short) components The luminance component Y represents luminance or gray level intensity (for example, the two are the same in a grayscale picture), and the two chrominance components Cb and Cr represent chrominance or color information components.
  • a picture in the YCbCr format includes a luminance sample array of the luminance component (Y), and two chrominance sample arrays of the chrominance component (Cb and Cr).
  • Pictures in RGB format can be converted or converted to YCbCr format, and vice versa. This process is also called color conversion or conversion.
  • the picture acquisition device 121 may be, for example, a camera for capturing pictures, such as a memory of a picture memory, including or storing previously captured or generated pictures, and/or any type of (internal or external) interface for acquiring or receiving pictures.
  • the camera may be, for example, an integrated camera that is local or integrated in the source device, and the memory may be local or, for example, an integrated memory that is integrated in the source device.
  • the interface may be, for example, an external interface for receiving pictures from an external video source.
  • the external video source is, for example, an external picture capturing device, such as a camera, an external memory, or an external picture generating device
  • the external picture generating device is, for example, an external computer graphics processor. , Computer or server.
  • the interface can be any type of interface according to any proprietary or standardized interface protocol, such as a wired or wireless interface, and an optical interface.
  • the interface for acquiring the picture data 125 in FIG. 1 may be the same interface as the communication interface 124 or a part of the communication interface 124.
  • the picture data 125 (for example, video data) may be referred to as original picture or original picture data.
  • the pre-processor 122 is used to receive the picture data 125 and perform pre-processing on the picture data 125 to obtain a pre-processed picture (or pre-processed picture data) 126.
  • the preprocessing performed by the preprocessor 122 may include trimming, color format conversion (for example, conversion from RGB to YCbCr), toning or denoising. It can be understood that the pre-processor 122 may be an optional component.
  • the encoder 123 (eg, a video encoder) is used to receive pre-processed pictures (or pre-processed picture data) 126 and provide encoded picture data 127.
  • the communication interface 124 of the source device 12 can be used to receive the encoded picture data 127 and transmit it to other devices, for example, the target device 14 or any other device for storage or direct reconstruction, or for storing
  • the encoded data 13 is stored and/or the encoded picture data 127 is processed before transmitting the encoded data 13 to other devices, such as the target device 14 or any other device for decoding or storage.
  • the communication interface 144 of the target device 14 is used, for example, to directly receive the encoded picture data 127 or the encoded data 13 from the source device 12 or any other source. Any other source is, for example, a storage device, and the storage device is, for example, an encoded picture data storage device.
  • the communication interface 124 and the communication interface 144 can be used to directly communicate through the direct communication link between the source device 12 and the target device 14 or through any type of network to transmit or receive the encoded picture data 127 or the encoded data 13
  • the link is, for example, a direct wired or wireless connection, and any type of network is, for example, a wired or wireless network or any combination thereof, or any type of private network and public network, or any combination thereof.
  • the communication interface 124 may be used, for example, to encapsulate the encoded picture data 127 into a suitable format, such as a packet, for transmission on a communication link or communication network.
  • the communication interface 144 forming the corresponding part of the communication interface 124 may be used, for example, to decapsulate the encoded data 13 to obtain the encoded picture data 127.
  • Both the communication interface 124 and the communication interface 144 can be configured as a one-way communication interface, as indicated by the arrow pointing from the source device 12 to the target device 14 for the encoded picture data 127 in FIG. 1, or can be configured as a two-way communication interface, and can It is used, for example, to send and receive messages to establish a connection, confirm and exchange any other information related to the communication link and/or data transmission such as the transmission of encoded picture data.
  • the decoder 143 is used to receive encoded picture data 127 and provide decoded picture data (or decoded picture) 145.
  • the processor 142 of the target device 14 is used to post-process decoded picture data (or decoded picture) 145, for example, a decoded picture, to obtain post-processed picture data 146, for example, a post-processed picture.
  • the post-processing performed by the processor 142 may include, for example, color format conversion (for example, conversion from YCbCr to RGB), toning, trimming or resampling, or any other processing for preparing decoded picture data (or decoded picture data, for example).
  • the picture 145 is displayed by the display device 141.
  • the display device 141 of the target device 14 is used to receive the post-processed picture data 145 to display the picture to, for example, a user or viewer.
  • the display device 141 may be or may include any type of display for presenting the reconstructed picture, for example, an integrated or external display or monitor.
  • the display may include a liquid crystal display (LCD for short), an organic light emitting diode (OLED) display, a plasma display, a projector, a micro LED display, and a liquid crystal on silicon (liquid crystal on silicon, for short) LCoS), digital light processor (digital light processor, DLP for short), or any other type of display.
  • FIG. 1 depicts the source device 12 and the target device 14 as separate devices
  • the device embodiment may also include the source device 12 and the target device 14 or the functionality of both, that is, the source device 12 or the corresponding The functionality of the target device 14 or the corresponding functionality.
  • the same hardware and/or software may be used, or separate hardware and/or software, or any combination thereof may be used to implement the source device 12 or the corresponding functionality and the target device 14 or the corresponding functionality.
  • the functionality of different units or the existence and (accurate) division of the functionality of the source device 12 and/or the target device 14 shown in FIG. 1 may vary according to actual devices and applications.
  • both the encoder 123 e.g., video encoder
  • the decoder 143 e.g., video decoder
  • DSP digital Signal processor
  • ASIC application-specific integrated circuit
  • FPGA field-programmable gate array
  • the device can store the instructions of the software in a suitable non-transitory computer-readable storage medium, and can use one or more processors to execute the instructions in hardware to execute the technology of the present disclosure. .
  • Each of the encoder 123 and the decoder 143 may be included in one or more encoders or decoders, and any one of the encoders or decoders may be integrated as a combined encoder/decoder in the corresponding device ( Codec).
  • the decoder 143 may be used to perform the reverse process.
  • the decoder 143 can be used to receive and parse such syntax elements, and decode related video data accordingly.
  • the encoder 123 may entropy encode one or more defined syntax elements into an encoded video bitstream. In such instances, the decoder 143 can parse such syntax elements and decode related video data accordingly.
  • FIG. 2 is a schematic flowchart of a video processing method provided by an embodiment of the present disclosure.
  • the execution subject of the embodiment of the present disclosure may be the encoder in the foregoing embodiment.
  • the method may include:
  • S201 In the preset coding mode, according to the value of the first preset bit in the 32-bit crc value of the target pixel block, search the preset pixel block information table for the second corresponding to the value of the first preset bit. The value of the preset bit.
  • the above-mentioned target pixel blocks can be determined according to actual conditions, and the comparison of the embodiments of the present disclosure is not particularly limited.
  • the above-mentioned preset coding mode may be an IBC coding mode, a Hashme coding mode, and the like.
  • the first preset bit and the second preset bit can be set according to actual conditions. For example, the upper 16 bits of the 32-bit crc value are used as the first preset bit, and the value of the 32-bit crc value is The lower 16 bits are used as the second preset bit.
  • the above-mentioned preset pixel block information table may prestore the value of the first preset bit, the value of the second preset bit among the 32-bit crc values of the multiple pixel blocks, and the corresponding relationship between the coordinates of the pixel block.
  • the aforementioned 32-bit crc value may be a fastcrc32 value.
  • the searched value of the second preset bit is the same as the target If the second preset bit value in the 32-bit crc value of the pixel block is the same, the coordinates of the reference pixel block are obtained from the preset pixel block information table according to the searched second preset bit value.
  • the value of the second preset bit corresponding to the value of the first preset bit is not searched in the preset pixel block information table, or the value of the searched second preset bit is the same as the target pixel If the value of the second preset bit in the 32-bit crc value of the block is different, a corresponding prompt is given, and the above steps can be performed in other preset coding modes until the coordinates of the reference pixel block are obtained.
  • S203 Perform the conversion between the bit representation of the target pixel block and the target pixel block according to the coordinates of the reference pixel block.
  • bit representation conversion of the target pixel block to the target pixel block means encoding
  • bit representation of the target pixel block conversion to the target pixel block means decoding
  • the encoding mode is the IBC encoding mode
  • the conversion between the bit representations of the target pixel block and the target pixel block is performed according to the coordinates of the reference pixel block.
  • you can’t encode to IBC mode you can try the hash me encoding mode.
  • the hash me encoding mode according to the value of the first preset bit in the 32-bit crc value of the target pixel block, in the preset pixel block information table Search for the value of the second preset bit corresponding to the value of the first preset bit. If the value of the searched second preset bit is the same as the second preset in the 32-bit crc value of the target pixel block.
  • the coordinates of the reference pixel block are obtained from the preset pixel block information table according to the searched second preset bit value, and the target pixel block is executed according to the coordinates of the reference pixel block. Conversion with the bit representation of the target pixel block, etc.
  • the reference pixel block is searched from the preset pixel block information table, and the reference pixel block is obtained.
  • the coordinates, and further, the conversion between the bit representations of the target pixel block and the target pixel block described above is performed according to the coordinates of the reference pixel block.
  • the 32-bit crc value is completely different, and then Solve the problem that IBC encoding causes a large number of similar image blocks to have the same hash value, thereby reducing the encoding speed.
  • the preset pixel block information table when searching for a reference pixel block, according to the first prediction of the 32-bit crc value of the target pixel block, Set the value of the bit and the value of the second preset bit, and perform a segment search in the preset pixel block information table, so that the preset pixel block information table can store information in segments, saving storage space, Suitable for practical applications.
  • FIG. 3 is a schematic flowchart of another video processing method proposed by an embodiment of the disclosure.
  • the execution subject of this embodiment may be the encoder in the embodiment shown in FIG. 1. As shown in Figure 3, the method includes:
  • S301 Determine the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed.
  • the foregoing coding tree unit to be processed may be determined according to actual conditions, and the comparison of the embodiments of the present disclosure is not particularly limited.
  • each pixel block of each pixel position of the current CTU luminance component for example, the 32-bit crc value of an 8 ⁇ 8 pixel block, thereby obtaining the calculated 32-bit crc value of the pixel block
  • the 32-bit crc value of the target pixel block is exemplary, before encoding the CTU.
  • the foregoing determination of the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed may include:
  • Parallel processing is performed on the pixel value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed to obtain the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed.
  • the foregoing determination of the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed may also include:
  • the 32-bit crc value calculation function is used to obtain the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed.
  • the 32-bit crc value of the coding tree unit to be processed can be calculated in parallel, and/or the pixel values are combined in the calculation process, so as to increase the calculation speed, and further, increase the encoding speed.
  • the calculation function of the aforementioned 32-bit crc value can be determined according to actual conditions, and the comparison of the embodiments of the present disclosure does not make special restrictions.
  • the calculation function of the above 32-bit crc value can be X 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 +x 2 +x+1.
  • the foregoing obtaining the 32-bit crc value of the pixel block at each pixel position of the brightness component of the coding tree unit to be processed may include:
  • the aforementioned 32-bit crc value calculation function is used to obtain the to-be-processed 32-bit crc value
  • a random calculation function is used to obtain the 32-bit crc value of the pixel block at each pixel position of the luminance component of the encoding tree unit to be processed.
  • the above-mentioned random calculation function may also be determined according to actual conditions, and the comparison of the embodiments of the present disclosure is not particularly limited.
  • the embodiment of the present disclosure further uses a random calculation function to obtain the 32-bit crc value of the pixel block at each pixel position of the brightness component of the above-mentioned to-be-processed coding tree unit based on the above-mentioned to-be-processed 32-bit crc value, so as to ensure that the pixel After the 32-bit crc values of the two blocks with different values are subsequently segmented, the crc values after the segmentation are also different, thereby ensuring that the subsequent processing is performed normally.
  • the final 32-bit crc value is represented by p, which has 32 bits, and the initial value is set to 0.
  • the pixel value of the pixel block of each pixel position of the brightness component of the coding tree unit to be processed can be processed in parallel to obtain the 32-bit crc value of the pixel block of each pixel position, wherein the specific steps of each processing can be as follows
  • the above (1)-(3) can increase the calculation speed and, in turn, increase the coding speed.
  • the above-mentioned parallel processing can be implemented by single instruction multiple data (Single Instruction Multiple Data, SIMD for short) vector parallel computing.
  • an avx2 register executes steps (1)-(3), which can complete 32 bits of the four positions of a[0]a[8]a[16]a[24] in parallel crc value.
  • S302 Obtain the 32-bit crc value of the target pixel block from the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed.
  • S303 In the preset coding mode, according to the value of the first preset bit in the 32-bit crc value of the target pixel block, search the preset pixel block information table for the second corresponding to the value of the first preset bit. The value of the preset bit.
  • S305 Perform the conversion between the bit representation of the target pixel block and the target pixel block according to the coordinates of the reference pixel block.
  • steps S303-S305 are implemented in the same manner as the foregoing steps S201-S203, and will not be repeated here.
  • the video processing method provided by the embodiments of the present disclosure improves the speed of calculating the 32-bit crc value of the coding tree unit to be processed through parallel calculation and/or the merging of pixel values in the calculation process, thereby increasing the encoding speed, and
  • the reference pixel block is searched from the preset pixel block information table, and the coordinates of the reference pixel block are obtained, and then, according to the reference pixel block Perform the conversion between the bit representations of the target pixel block and the target pixel block above.
  • the 32-bit crc value is completely different, which solves the problem that IBC encoding leads to a large number of similar images Blocks have the same hash value, thereby reducing the problem of encoding speed.
  • the embodiment of the present disclosure uses the first preset bit value and the second preset bit value in the 32-bit crc value of the target pixel block. The value of the preset bit position is searched in segments in the preset pixel block information table, so that the preset pixel block information table can store information in segments, which saves storage space and is suitable for practical applications.
  • FIG. 4 is a schematic flowchart of another video processing method proposed by an embodiment of the disclosure.
  • the execution subject of this embodiment may be the encoder in the embodiment shown in FIG. 1. As shown in Figure 4, the method includes:
  • S401 Determine the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed.
  • step S401 is implemented in the same manner as the foregoing step S301, and will not be repeated here.
  • S402 Obtain the value of the first preset bit and the value of the second preset bit from the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed, and determine the corresponding The coordinates of the pixel block.
  • correspondingly represents the information that the value of the first preset bit and the value of the second preset bit obtained above, and the coordinates of the determined pixel block are the same pixel block.
  • S403 Save the obtained value of the first preset bit, the value of the second preset bit, and the determined coordinates of the corresponding pixel block in the preset pixel block information table.
  • the above-mentioned pixel block information table may be pre-established, and the value of the first preset bit, the value of the second preset bit, and the pixel block among the 32-bit crc values of multiple pixel blocks may be pre-stored in the pixel block information table. Correspondence of the coordinates.
  • the value of the first preset bit and the second preset bit are respectively obtained from the 32-bit crc value And determine the coordinates of the corresponding pixel block, update the hash table, and then in the subsequent video processing, the corresponding information can be directly obtained from the preset pixel block information table, reducing repeated calculations.
  • S404 Obtain the 32-bit crc value of the target pixel block from the 32-bit crc value of the pixel block at each pixel position of the brightness component of the coding tree unit to be processed.
  • S405 In the preset encoding mode, according to the value of the first preset bit in the 32-bit crc value of the target pixel block, search the preset pixel block information table for the first preset bit corresponding to the value of the first preset bit. Two preset bit value.
  • S407 Perform the conversion between the bit representation of the target pixel block and the target pixel block according to the coordinates of the reference pixel block.
  • steps S405-S407 are implemented in the same manner as the foregoing steps S303-S305, and will not be repeated here.
  • the video processing method provided by the embodiments of the present disclosure establishes a preset pixel block information table, so that in subsequent video processing, corresponding information can be directly obtained from the above information table, reducing repeated calculations, and when encoding the target pixel block,
  • the preset encoding mode according to the 32-bit crc value of the target pixel block, the reference pixel block is searched from the preset pixel block information table, and the coordinates of the reference pixel block are obtained, and then the target pixel block and the target pixel block are executed according to the coordinates of the reference pixel block.
  • the conversion between the bit representations of the target pixel block For two blocks with different pixel values, the 32-bit crc value is completely different.
  • FIG. 5 is a schematic flowchart of another video processing method proposed by an embodiment of the disclosure.
  • the execution subject of this embodiment may be the encoder in the embodiment shown in FIG. 1. As shown in Figure 5, the method includes:
  • S501 Determine whether the number of times of searching for the value of the second preset bit corresponding to the value of the first preset bit in the preset pixel block information table reaches the upper limit of the preset search times.
  • the above-mentioned preset upper limit of the number of searches can be set according to actual conditions, which is not particularly limited in the embodiment of the disclosure.
  • S504 According to the coordinates of the reference pixel block, perform conversion between the bit representation of the target pixel block and the target pixel block.
  • steps S502-S504 are implemented in the same manner as the foregoing steps S201-S203, and will not be repeated here.
  • the video processing method provided by the embodiments of the present disclosure solves the problem of excessive search times and slow encoding speed by setting the preset upper limit of the number of searches, and when encoding the target pixel block, the preset encoding mode is based on the target pixel block's 32-bit crc value, search for the reference pixel block from the preset pixel block information table, and obtain the coordinates of the reference pixel block, and then perform the conversion between the above-mentioned target pixel block and the bit representation of the target pixel block according to the coordinates of the reference pixel block Among them, for two blocks with different pixel values, the 32-bit crc value is completely different, which solves the problem that IBC encoding causes a large number of similar image blocks to have the same hash value, thereby reducing the encoding speed.
  • this when searching for a reference pixel block, segmentation is performed in the preset pixel block information table according to the value of the first preset bit and the value of the second preset bit in the 32-bit crc value of the target pixel block. Search, so that the preset pixel block information table can store information in segments, which saves storage space and is suitable for practical applications.
  • FIG. 6 is a schematic flowchart of another video processing method proposed by an embodiment of the disclosure.
  • the execution subject of this embodiment may be the encoder in the embodiment shown in FIG. 1. As shown in Figure 6, the method includes:
  • S601 In the preset encoding mode, according to the value of the first preset bit in the 32-bit crc value of the target pixel block, search the preset pixel block information table for the second corresponding to the value of the first preset bit. The value of the preset bit.
  • step S601 is implemented in the same manner as the foregoing step S201, and will not be repeated here.
  • S603 Obtain the pixel block corresponding to the minimum value of the cost value from the pixel block to be processed as a reference pixel block, and obtain the coordinates of the reference pixel block from the preset pixel block information table.
  • the cost value between the pixel blocks to be processed corresponding to the value of the second preset bit searched by the target pixel block and belonging to the above-mentioned preset pixel block information table is calculated respectively, where the cost value may be the rate distortion cost (RDcost), thus, the pixel block corresponding to the minimum cost value obtained in the pixel block to be processed is used as the reference pixel block, and the best reference pixel block is found, so that the residual error is almost zero, which greatly improves the compression efficiency.
  • RDcost rate distortion cost
  • S604 Perform the conversion between the bit representation of the target pixel block and the target pixel block according to the coordinates of the reference pixel block.
  • step S604 is implemented in the same manner as the foregoing step S203, and will not be repeated here.
  • the video processing method provided by the embodiments of the present disclosure can search for matching reference blocks, so that the residual error is almost zero, which greatly improves the compression efficiency.
  • the preset encoding mode is based on the 32% of the target pixel block.
  • Bit crc value search the reference pixel block from the preset pixel block information table, and obtain the coordinates of the reference pixel block, and then perform the conversion between the above-mentioned target pixel block and the bit representation of the target pixel block according to the coordinates of the reference pixel block, Among them, for two blocks with different pixel values, the 32-bit crc value is completely different, which solves the problem that IBC encoding causes a large number of similar image blocks to have the same hash value, thereby reducing the encoding speed.
  • the present disclosure when searching for a reference pixel block, a segment search is performed in the preset pixel block information table according to the value of the first preset bit and the value of the second preset bit in the 32-bit crc value of the target pixel block. Therefore, the preset pixel block information table can store information in segments, which saves storage space and is suitable for practical applications.
  • the above-mentioned preset pixel block information table is a hash table.
  • the value of the first preset bit in the 32-bit crc value of the pixel block is used as a key
  • the 32-bit crc value of the pixel block is used as a key.
  • the value of the second preset bit in the value and the coordinates of the pixel block are values.
  • the embodiment of the present disclosure can also search for the value of the second preset bit corresponding to the value of the first preset bit in the above-mentioned hash table.
  • FIG. 7 is a schematic flowchart of another video processing method proposed by an embodiment of the disclosure.
  • the execution subject of this embodiment may be the encoder in the embodiment shown in FIG. 1. As shown in Figure 7, the method includes:
  • S701 In the preset coding mode, use the value of the first preset bit in the 32-bit crc value of the target pixel block as the search key, and search the hash table for the value corresponding to the search key.
  • the above-mentioned hash table can be set in each frame, and the hash table is a data structure that is directly accessed according to the key code value (key value), that is, (Key value).
  • key value is the value of the first preset bit in the 32-bit crc value of the pixel block
  • value is the value of the second preset bit in the 32-bit crc value of the pixel block and the pixel block.
  • a keyword may correspond to multiple values, connected by a linked list.
  • the value of the first preset bit in the 32-bit crc value of the target pixel block is used as the search key, and the hash table is searched. If it can be found, the value linked list is obtained. Traverse the linked list of values, find the value of the second preset bit in the value equal to the second bit in the 32-bit crc value of the target pixel block, obtain the coordinates of the reference pixel from this value, and then execute The conversion step between the target pixel block and the bit representation of the target pixel block.
  • a hash table in subsequent video processing, corresponding information can be directly obtained from the above-mentioned hash table, thereby reducing repeated calculations.
  • S703 According to the coordinates of the reference pixel block, perform the conversion between the bit representation of the target pixel block and the target pixel block.
  • step S703 is implemented in the same manner as the foregoing step S203, and will not be repeated here.
  • the video processing method provided by the embodiments of the present disclosure establishes a hash table so that in subsequent video processing, corresponding information can be directly obtained from the above-mentioned hash table, reducing repeated calculations.
  • the encoding mode searches for the reference pixel block from the preset pixel block information table according to the 32-bit crc value of the target pixel block, and obtains the coordinates of the reference pixel block, and then executes the target pixel block and the target pixel according to the coordinates of the reference pixel block.
  • the fast file test results, bd-bitrate about -30%, coding time +30%, coding efficiency reached expectations, and complexity It is much lower than the original plan.
  • FIG. 8 is a schematic structural diagram of a video processing device provided in an embodiment of the disclosure.
  • the video processing device 80 includes: a searching module 801, an obtaining module 802, and an encoding module 803.
  • the search module 801 is configured to search for the first preset bit in the preset pixel block information table according to the value of the first preset bit in the 32-bit crc value of the target pixel block in the preset coding mode. Set the value of the bit to correspond to the value of the second preset bit.
  • the obtaining module 802 is configured to: if the value of the second preset bit found in the search is the same as the value of the second preset bit in the 32-bit crc value of the target pixel block, then according to the searched value For the value of the second preset bit, the coordinates of the reference pixel block are obtained from the preset pixel block information table.
  • the encoding module 803 is configured to perform conversion between the target pixel block and the bit representation of the target pixel block according to the coordinates of the reference pixel block.
  • the device provided in the embodiment of the present disclosure can be used to implement the technical solutions of the foregoing method embodiments, and its implementation principles and technical effects are similar, and the embodiments of the present disclosure will not be repeated here.
  • FIG. 9 is a schematic structural diagram of another video processing device provided by an embodiment of the disclosure. As shown in FIG. 9, on the basis of the embodiment in FIG. 8, the embodiment of the present disclosure further includes: a determining module 804, an obtaining module 805, and a saving module 806.
  • the determining module 804 is used for the search module 801 to search for the value of the second preset bit corresponding to the value of the first preset bit in the preset pixel block information table. , Determine the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed;
  • the obtaining module 805 is configured to obtain the 32-bit crc value of the target pixel block from the 32-bit crc value of the pixel block at each pixel position of the brightness component of the coding tree unit to be processed.
  • the determining module 804 is specifically used for:
  • Parallel processing is performed on the pixel value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed to obtain the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed .
  • the determining module 804 is specifically used for:
  • a 32-bit crc value calculation function is used to obtain the 32-bit crc value of the pixel block at each pixel position of the brightness component of the coding tree unit to be processed.
  • the determining module 804 obtains the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed, including:
  • the 32-bit crc value calculation function is used to obtain the 32-bit crc value to be processed
  • a random calculation function is used to obtain the 32-bit crc value of the pixel block at each pixel position of the brightness component of the encoding tree unit to be processed.
  • the saving module 806 is configured to, after the determining module 804 determines the 32-bit crc value of the pixel block at each pixel position of the brightness component of the coding tree unit to be processed, from the to-be-processed From the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit, obtain the value of the first preset bit and the value of the second preset bit respectively, and determine the corresponding pixel
  • the coordinates of the block; the obtained value of the first preset bit and the value of the second preset bit, as well as the determined coordinates of the corresponding pixel block, are stored in the preset pixel block information table.
  • the search module 801 before the search module 801 searches for the value of the second preset bit corresponding to the value of the first preset bit in the preset pixel block information table, it also uses At:
  • the step of searching for the value of the second preset bit corresponding to the value of the first preset bit in the preset pixel block information table is performed .
  • the obtaining module 802 is specifically used for:
  • the preset pixel block information table is a hash table, and the hash table uses the value of the first preset bit in the 32-bit crc value of the pixel block as the key, and uses the pixel
  • the value of the second preset bit in the 32-bit crc value of the block and the coordinate of the pixel block are values.
  • the search module 801 searches for the second preset bit corresponding to the first preset bit value in the preset pixel block information table according to the value of the first preset bit in the 32-bit crc value of the target pixel block.
  • the value of preset bits includes:
  • the obtaining module 802 will determine the value of the second preset bit according to the searched
  • the value of the second preset bit, obtaining the coordinates of the reference pixel block from the preset pixel block information table includes:
  • the value of the second preset bit in the value corresponding to the search key found is the same as the value of the second preset bit in the 32-bit crc value of the target pixel block, then The coordinates of the reference pixel block are obtained from the value corresponding to the search key.
  • the device provided in the embodiment of the present disclosure can be used to implement the technical solutions of the foregoing method embodiments, and its implementation principles and technical effects are similar, and the embodiments of the present disclosure will not be repeated here.
  • the electronic device 1000 may include a processing device (such as a central processing unit, a graphics processor, etc.) 1001, which may be loaded from a storage device 1008 according to a program stored in a read only memory (Read Only Memory, ROM) 1002 Various appropriate actions and processing are executed by programs in random access memory (Random Access Memory, RAM for short) 1003. In the RAM 1003, various programs and data required for the operation of the electronic device 1000 are also stored.
  • the processing device 1001, ROM 1002, and RAM 1003 are connected to each other through a bus 1004.
  • An input/output (I/O) interface 1005 is also connected to the bus 1004.
  • the following devices can be connected to the I/O interface 1005: including input devices 1006 such as touch screen, touch pad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; including output such as LCD, speaker, vibrator, etc.
  • the device 1007 includes a storage device 1008 such as a magnetic tape, a hard disk, etc.; and a communication device 1009.
  • the communication device 1009 may allow the electronic device 1000 to perform wireless or wired communication with other devices to exchange data.
  • FIG. 10 shows the electronic device 1000 having various devices, it should be understood that it is not required to implement or have all the illustrated devices. It may be implemented alternatively or provided with more or fewer devices.
  • an embodiment of the present disclosure includes a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program contains program code for executing the method shown in the flowchart.
  • the computer program may be downloaded and installed from the network through the communication device 1009, or installed from the storage device 1008, or installed from the ROM 1002.
  • the processing device 1001 the above-mentioned functions defined in the method of the embodiment of the present disclosure are executed.
  • the above-mentioned computer-readable medium in the present disclosure may be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two.
  • the computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or a combination of any of the above. More specific examples of computer-readable storage media may include, but are not limited to: electrical connections with one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable Programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
  • a computer-readable storage medium may be any tangible medium that contains or stores a program, and the program may be used by or in combination with an instruction execution system, apparatus, or device.
  • a computer-readable signal medium may include a data signal propagated in a baseband or as a part of a carrier wave, and a computer-readable program code is carried therein. This propagated data signal can take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
  • the computer-readable signal medium may also be any computer-readable medium other than the computer-readable storage medium.
  • the computer-readable signal medium may send, propagate, or transmit the program for use by or in combination with the instruction execution system, apparatus, or device .
  • the program code contained on the computer-readable medium can be transmitted by any suitable medium, including but not limited to: wire, optical cable, RF (Radio Frequency), etc., or any suitable combination of the above.
  • the above-mentioned computer-readable medium may be included in the above-mentioned electronic device; or it may exist alone without being assembled into the electronic device.
  • the foregoing computer-readable medium carries one or more programs, and when the foregoing one or more programs are executed by the electronic device, the electronic device is caused to execute the method shown in the foregoing embodiment.
  • the computer program code used to perform the operations of the present disclosure may be written in one or more programming languages or a combination thereof.
  • the above-mentioned programming languages include object-oriented programming languages—such as Java, Smalltalk, C++, and also conventional Procedural programming language-such as "C" language or similar programming language.
  • the program code can be executed entirely on the user's computer, partly on the user's computer, executed as an independent software package, partly on the user's computer and partly executed on a remote computer, or entirely executed on the remote computer or server.
  • the remote computer can be connected to the user's computer through any kind of network-including Local Area Network (LAN) or Wide Area Network (WAN)-or it can be connected to the outside Computer (for example, using an Internet service provider to connect via the Internet).
  • LAN Local Area Network
  • WAN Wide Area Network
  • each block in the flowchart or block diagram can represent a module, program segment, or part of code, and the module, program segment, or part of code contains one or more for realizing the specified logic function.
  • Executable instructions can also occur in a different order from the order marked in the drawings. For example, two blocks shown one after another can actually be executed substantially in parallel, and they can sometimes be executed in the reverse order, depending on the functions involved.
  • each block in the block diagram and/or flowchart, and the combination of the blocks in the block diagram and/or flowchart can be implemented by a dedicated hardware-based system that performs the specified functions or operations Or it can be realized by a combination of dedicated hardware and computer instructions.
  • the units involved in the embodiments described in the present disclosure can be implemented in software or hardware. Wherein, the name of the unit does not constitute a limitation on the unit itself under certain circumstances.
  • the first obtaining unit can also be described as "a unit for obtaining at least two Internet Protocol addresses.”
  • exemplary types of hardware logic components include: Field Programmable Gate Array (FPGA), Application Specific Integrated Circuit (ASIC), Application Specific Standard Product (ASSP), System on Chip (SOC), Complex Programmable Logical device (CPLD) and so on.
  • FPGA Field Programmable Gate Array
  • ASIC Application Specific Integrated Circuit
  • ASSP Application Specific Standard Product
  • SOC System on Chip
  • CPLD Complex Programmable Logical device
  • a machine-readable medium may be a tangible medium, which may contain or store a program for use by the instruction execution system, apparatus, or device or in combination with the instruction execution system, apparatus, or device.
  • the machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
  • the machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any suitable combination of the foregoing.
  • machine-readable storage media would include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
  • RAM random access memory
  • ROM read-only memory
  • EPROM or flash memory erasable programmable read-only memory
  • CD-ROM compact disk read-only memory
  • magnetic storage device or any suitable combination of the above.
  • a video processing method including:
  • the preset encoding mode according to the value of the first preset bit in the 32-bit crc value of the target pixel block, search the preset pixel block information table for the second preset corresponding to the value of the first preset bit. Set the value of the bit;
  • the searched second preset bit is the same as the value of the second preset bit in the 32-bit crc value of the target pixel block, then according to the searched second preset bit The value of the bit, obtaining the coordinates of the reference pixel block from the preset pixel block information table;
  • the method before the searching for the value of the second preset bit corresponding to the value of the first preset bit in the preset pixel block information table, the method further includes:
  • the determining the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed includes:
  • Parallel processing is performed on the pixel value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed to obtain the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed .
  • the determining the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed includes:
  • a 32-bit crc value calculation function is used to obtain the 32-bit crc value of the pixel block at each pixel position of the brightness component of the coding tree unit to be processed.
  • the obtaining the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed includes:
  • the 32-bit crc value calculation function is used to obtain the 32-bit crc value to be processed
  • a random calculation function is used to obtain the 32-bit crc value of the pixel block at each pixel position of the brightness component of the encoding tree unit to be processed.
  • the method further includes:
  • the method before the searching for the value of the second preset bit corresponding to the value of the first preset bit in the preset pixel block information table, the method further includes:
  • the step of searching for the value of the second preset bit corresponding to the value of the first preset bit in the preset pixel block information table is performed .
  • the obtaining the coordinates of the reference pixel block from the preset pixel block information table according to the searched value of the second preset bit includes:
  • the preset pixel block information table is a hash table, and the hash table uses the value of the first preset bit in the 32-bit crc value of the pixel block as a key , Taking the value of the second preset bit in the 32-bit crc value of the pixel block and the coordinates of the pixel block as values;
  • the searching for the second preset bit corresponding to the value of the first preset bit in the preset pixel block information table according to the value of the first preset bit in the 32-bit crc value of the target pixel block includes:
  • the value of the first preset bit in the 32-bit crc value of the target pixel block is used as a search key, and the hash table is searched for a value corresponding to the search key.
  • the value of the second preset bit found in the search is the same as the value of the second preset bit in the 32-bit crc value of the target pixel block .
  • the value of the second preset bit in the value corresponding to the search key found is the same as the value of the second preset bit in the 32-bit crc value of the target pixel block, then The coordinates of the reference pixel block are obtained from the value corresponding to the search key.
  • a video processing device including:
  • the search module is configured to search for the value of the first preset bit in the preset pixel block information table according to the value of the first preset bit in the 32-bit crc value of the target pixel block in the preset coding mode The value of the corresponding second preset bit;
  • An obtaining module configured to: if the value of the second preset bit found in the search is the same as the value of the second preset bit in the 32-bit crc value of the target pixel block, then according to the searched The value of the second preset bit, obtaining the coordinates of the reference pixel block from the preset pixel block information table;
  • the encoding module is configured to perform conversion between the target pixel block and the bit representation of the target pixel block according to the coordinates of the reference pixel block.
  • the method further includes a determining module, configured to search for the second preset bit corresponding to the value of the first preset bit in the preset pixel block information table by the search module Before the value of, determine the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed;
  • the obtaining module is configured to obtain the 32-bit crc value of the target pixel block from the 32-bit crc value of the pixel block at each pixel position of the brightness component of the coding tree unit to be processed.
  • the determining module is specifically configured to:
  • Parallel processing is performed on the pixel value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed to obtain the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed .
  • the determining module is specifically configured to:
  • a 32-bit crc value calculation function is used to obtain the 32-bit crc value of the pixel block at each pixel position of the brightness component of the coding tree unit to be processed.
  • the determining module obtains the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed, including:
  • the 32-bit crc value calculation function is used to obtain the 32-bit crc value to be processed
  • a random calculation function is used to obtain the 32-bit crc value of the pixel block at each pixel position of the brightness component of the encoding tree unit to be processed.
  • it further includes a saving module, configured to obtain the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed after the determination module determines the Obtain the value of the first preset bit and the value of the second preset bit from the 32-bit crc value of each pixel block of each pixel position of the brightness component of the coding tree unit to be processed, and Determine the coordinates of the corresponding pixel block; save the acquired value of the first preset bit and the value of the second preset bit, and the determined coordinates of the corresponding pixel block in the preset pixel block information Table.
  • a saving module configured to obtain the 32-bit crc value of the pixel block at each pixel position of the luminance component of the coding tree unit to be processed after the determination module determines the Obtain the value of the first preset bit and the value of the second preset bit from the 32-bit crc value of each pixel block of each pixel position of the brightness component of the coding tree unit to be processed, and
  • the search module before the search module searches for the value of the second preset bit corresponding to the value of the first preset bit in the preset pixel block information table, Also used for:
  • the obtaining module is specifically used for:
  • an electronic device including: at least one processor and a memory;
  • the memory stores computer execution instructions
  • the at least one processor executes the computer-executable instructions stored in the memory, so that the at least one processor executes the video processing method described in the first aspect and various possible designs of the first aspect.
  • a computer-readable storage medium stores computer-executable instructions.
  • a processor executes the computer-executable instructions, The video processing method described in the above first aspect and various possible designs of the first aspect is implemented.

Landscapes

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

Abstract

本公开实施例提供一种视频处理方法、装置及电子设备,该方法在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取其坐标,进而,根据该坐标执行目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,解决IBC编码导致大量相似的图像块具有相同的哈希值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据目标像素块的32位crc值中第一预设比特位和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。

Description

视频处理方法、装置及电子设备
本申请要求于2020年01月22日提交中国专利局、申请号为202010074802.2、申请名称为“视频处理方法、装置及电子设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本公开实施例涉及编码技术领域,尤其涉及一种视频处理方法、装置及电子设备。
背景技术
随着信息技术的发展,高清晰度电视、网络会议、交互式网络电视(IPTV)、三维(3D)电视等视频图像业务迅速发展,视频图像信号以其直观性和高效性等优势成为人们日常生活中获取信息最主要的方式。以屏幕视频为例,屏幕视频内容是计算机、手机等终端的图像显示器里直接捕捉到的视频内容,主要包括计算机图形,文字文档,自然视频和图形文字混合图像,计算机生成图像等。屏幕视频编码在桌面共享、视频会议、在线教育、云游戏等领域有广泛应用前景。
相关技术中,hevc scc在hevc/h.265上针对屏幕视频内容提出拓展提案。hevc scc编码工具有帧内块拷贝(intra block copy,简称IBC)。在屏幕视频内容中有大量重复的内容,比如文字图标等。在编码当前块时,执行传统的运动搜索方法并不能精准找到完全匹配的参考块。如果采用上述IBC来搜索屏幕内容中匹配的块,如果能搜索到匹配的参考块,则残差几乎为零,大幅提升压缩效率。
然而,IBC基于图像块的梯度计算,会有大量相似的图像块具有相同的哈希值,这样,后续在根据哈希值搜索参考块时,会导致搜索的参考块较多,需要对搜索的参考块进一步处理确定最终参考块,从而降低编码速度。
发明内容
本公开实施例提供一种视频处理方法、装置及电子设备,以克服IBC编码导致大量相似的图像块具有相同的哈希值,从而降低编码速度的问题。
第一方面,本公开实施例提供一种视频处理方法,包括:
在预设编码模式,根据目标像素块的32位循环冗余校验(cyclic redundancy check,简称crc)值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值;
若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标;
根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。
第二方面,本公开实施例提供一种视频处理装置,包括:
搜索模块,用于在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值;
获得模块,用于若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标;
编码模块,用于根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。
第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的视频处理方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的视频处理方法。
本公开实施例提供的视频处理方法、装置及电子设备,该方法在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决IBC编码导致大量相似的图像块具有相同的哈希值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。
附图说明
图1为本公开实施例提供的一种视频处理系统架构示意图;
图2为本公开实施例提供的一种视频处理方法的流程示意图;
图3为本公开实施例提供的另一种视频处理方法的流程示意图;
图4为本公开实施例提供的再一种视频处理方法的流程示意图;
图5为本公开实施例提供的又一种视频处理方法的流程示意图;
图6为本公开实施例提供的又一种视频处理方法的流程示意图;
图7为本公开实施例提供的又一种视频处理方法的流程示意图;
图8为本公开实施例提供的一种视频处理装置的结构示意图;
图9为本公开实施例提供的另一种视频处理装置的结构示意图;
图10为本公开实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
首先对本公开所涉及的名词进行解释:
视频编码:通常是指处理形成视频或视频序列的图片序列。在视频编码领域,术语“图片(piCTUre)”、“帧(frame)”或“图像(image)”可以用作同义词。本公开中视频编码在源侧执行,通常包括处理(例如,通过压缩)原始视频图片以减少表示该视频图片所需的数据量(从而更高效地存储和/或传输)。视频解码在目的地侧执行,通常包括相对于编码器作逆处理,以重构视频图片。
如本公开中所用,术语“块”可以为图片或帧的一部分。为便于描述,参考多用途视频编码(Versatile Video Coding,简称VVC)或由ITU-T视频编码专家组(Video Coding Experts Group,简称VCEG)和ISO/IEC运动图像专家组(Motion PiCTUre Experts Group,简称MPEG)的视频编码联合工作组(Joint Collaboration Team on Video Coding,简称JCT-VC)开发的高效视频编码(High-Efficiency Video Coding,简称HEVC)描述本公开实施例。在HEVC中,通过使用表示为编码树的四叉树结构将编码树单元拆分为多个编码单元(Coding Unit,简称CU)。其中,CU即编码单元,通常对应于一个A×B的矩形区域,包含A×B亮度像素和它对应的色度像素,A为矩形的宽,B为矩形的高,A和B可以相同也可以不同,A和B的取值通常为2的整数次幂,例如128、64、32、16、8、4。一个编码单元可通过解码处理解码得到一个A×B的矩形区域的重建图像,解码处理通常包括预测、反量化、反变换等处理,产生预测图像和残差,预测图像和残差叠加后得到重建图像。CTU即编码树单元,一幅图像由多个CTU构成,一个CTU通常对应于一个方形图像区域,包含这个图像区域中的亮度像素和色度像素(或者也可以只包含亮度像素,或者也可以只包含色度像素);CTU中还包含语法元素,这些语法元素指示如何将CTU划分成至少一个CU,以及解码每个编码单元得到重建图像的方法。
现有屏幕视频内容是计算机、手机等终端的图像显示器里直接捕捉到的视频内容,主要包括计算机图形,文字文档,自然视频和图形文字混合图像,计算机生成图像等。相关技术中,hevc scc在hevc/h.265上针对屏幕视频内容提出拓展提案。hevc scc编码工具有IBC。在屏幕视频内容中有大量重复的内容,比如文字图标等。在编码当前块时,执行传统的运动搜索方法并不能精准找到完全匹配的参考块。如果采用上述IBC来搜索屏幕内容中匹配的块,如果能搜索到匹配的参考块,则残差几乎为零,大幅提升压缩效率。
然而,IBC是基于图像块的梯度计算,有大量相似的图像块具有相同的哈希值 (hash值),这样,后续根据哈希值搜索参考块时,会导致搜索的参考块较多,需要对搜索的参考块进一步处理确定最终参考块,从而降低编码速度。示例性的,IBC:对于8x8的编码块:
H=MSB(dc0,3)<<13+MSB(dc1,3)<<10+MSB(dc2,3)<<7+MSB(dc3,3)<<4+MSB(Grad,4)
其中,H是要计算的结果哈希值,一共16bit。MSB(val,n)是指val的最高n个bits。<<表示左移。dc 0-3表示四个4x4的子块的DC值,或称像素平均值。Grad表示水平和竖直方向的梯度值的平均值。
因此,考虑到上述问题,本公开提供一种视频处理方法,通过在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决IBC编码导致大量相似的图像块具有相同的哈希值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。
本公开提供的一种视频处理方法,可以适用于图1所示的视频处理系统架构示意图,如图1所示,视频处理系统10包括源设备12和目标设备14,源设备12包括:图片获取装置121、预处理器122、编码器123和通信接口124。目标设备14包括:显示设备141、处理器142、解码器143和通信接口144。源设备12将编码得到的编码数据13发送给目标设备14。本公开的方法应用于编码器123。
其中,源设备12可称为视频编码设备或视频编码装置。目标设备14可称为视频解码设备或视频解码装置。源设备12以及目标设备14可以是视频编码设备或视频编码装置的实例。
源设备12和目标设备14可以包括各种设备中的任一个,包含任何类别的手持或静止设备,例如,笔记本或膝上型计算机、移动电话、智能电话、平板或平板计算机、摄像机、台式计算机、机顶盒、电视、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备(例如内容服务服务器或内容分发服务器)、广播接收器设备、广播发射器设备等,并可以不使用或使用任何类别的操作系统。
在一些情况下,源设备12和目标设备14可以经装备以用于无线通信。因此,源设备12和目标设备14可以为无线通信设备。
在一些情况下,图1中所示视频处理系统10仅为示例,本公开的技术可以适用于不必包含编码和解码设备之间的任何数据通信的视频编码设置(例如,视频编码或视频解码)。在其它实例中,数据可从本地存储器检索、在网络上流式传输等。视频编码设备可以对数据进行编码并且将数据存储到存储器,和/或视频解码设备可以从存储器检索数据并且对数据进行解码。在一些实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的设备执行编码和解码。
在一些情况下,视频处理系统10的编码器123也可以称为视频编码器,解码器 143也可以称为视频解码器。
在一些情况下,图片获取装置121可以包括或可以为任何类别的图片捕获设备,用于例如捕获现实世界图片,和/或任何类别的图片或评论(对于屏幕内容编码,屏幕上的一些文字也认为是待编码的图片或图像的一部分)生成设备,例如,用于生成计算机动画图片的计算机图形处理器,或用于获取和/或提供现实世界图片、计算机动画图片(例如,屏幕内容、虚拟现实(virtual reality,简称VR)图片)的任何类别设备,和/或其任何组合(例如,实景(augmented reality,简称AR)图片)。其中,图片为或者可以视为具有亮度值的采样点的二维阵列或矩阵。以阵列为例,阵列中的采样点也可以称为像素(pixel)或像素(piCTUre element,简称pel)。阵列在水平和垂直方向(或轴线)上的采样点数目定义图片的尺寸和/或分辨率。为了表示颜色,通常采用三个颜色分量,即图片可以表示为或包含三个采样阵列。RBG格式或颜色空间中,图片包括对应的红色、绿色及蓝色采样阵列。但是,在视频编码中,每个像素通常以亮度/色度格式或颜色空间表示,例如,YCbCr,包括Y指示的亮度(简写为luma)分量(有时也可以用L指示)以及Cb和Cr指示的两个色度(简写为chroma)分量。亮度分量Y表示亮度或灰度水平强度(例如,在灰度等级图片中两者相同),而两个色度分量Cb和Cr表示色度或颜色信息分量。相应地,YCbCr格式的图片包括亮度分量(Y)的亮度采样阵列,和色度分量(Cb和Cr)的两个色度采样阵列。RGB格式的图片可以转换或变换为YCbCr格式,反之亦然,该过程也称为色彩变换或转换。
另外,图片获取装置121可以为,例如用于捕获图片的相机,例如图片存储器的存储器,包括或存储先前捕获或产生的图片,和/或获取或接收图片的任何类别的(内部或外部)接口。其中,相机可以为,例如,本地的或集成在源设备中的集成相机,存储器可为本地的或例如集成在源设备中的集成存储器。接口可以为,例如,从外部视频源接收图片的外部接口,这里,外部视频源例如为外部图片捕获设备,比如相机、外部存储器或外部图片生成设备,外部图片生成设备例如为外部计算机图形处理器、计算机或服务器。另外,接口可以为根据任何专有或标准化接口协议的任何类别的接口,例如有线或无线接口、光接口。图1中获取图片数据125的接口可以是与通信接口124相同的接口或是通信接口124的一部分。其中,图片数据125(例如,视频数据)可以称为原始图片或原始图片数据。
在一些情况下,预处理器122用于接收图片数据125并对图片数据125执行预处理,以获取经预处理的图片(或经预处理的图片数据)126。其中,预处理器122执行的预处理可以包括整修、色彩格式转换(例如,从RGB转换为YCbCr)、调色或去噪。可以理解,预处理器122可以是可选组件。
在一些情况下,编码器123(例如,视频编码器)用于接收经预处理的图片(或经预处理的图片数据)126并提供经编码图片数据127。
在一些情况下,源设备12的通信接口124可以用于接收经编码图片数据127并传输至其它设备,例如,目标设备14或任何其它设备,以用于存储或直接重构,或用于在对应地存储编码数据13和/或传输编码数据13至其它设备之前处理经编码图片数据127,其它设备例如为目标设备14或任何其它用于解码或存储的设备。目标设备14的通信接口144用于例如,直接从源设备12或任何其它源接收经编码图片数据127 或编码数据13,任何其它源例如为存储设备,存储设备例如为经编码图片数据存储设备。
其中,通信接口124和通信接口144可以用于藉由源设备12和目标设备14之间的直接通信链路或藉由任何类别的网络传输或接收经编码图片数据127或编码数据13,直接通信链路例如为直接有线或无线连接,任何类别的网络例如为有线或无线网络或其任何组合,或任何类别的私网和公网,或其任何组合。通信接口124可以例如用于将经编码图片数据127封装成合适的格式,例如包,以在通信链路或通信网络上传输。形成通信接口124的对应部分的通信接口144可以例如用于解封装编码数据13,以获取经编码图片数据127。通信接口124和通信接口144都可以配置为单向通信接口,如图1中用于经编码图片数据127的从源设备12指向目标设备14的箭头所指示,或配置为双向通信接口,以及可以用于例如发送和接收消息来建立连接、确认和交换任何其它与通信链路和/或例如经编码图片数据传输的数据传输有关的信息。
在一些情况下,解码器143用于接收经编码图片数据127并提供经解码图片数据(或经解码图片)145。
在一些情况下,目标设备14的处理器142用于后处理经解码图片数据(或经解码图片)145,例如,经解码图片,以获取经后处理图片数据146,例如,经后处理图片。处理器142执行的后处理可以包括,例如,色彩格式转换(例如,从YCbCr转换为RGB)、调色、整修或重采样,或任何其它处理,用于例如准备经解码图片数据(或经解码图片)145以由显示设备141显示。
在一些情况下,目标设备14的显示设备141用于接收经后处理图片数据145以向例如用户或观看者显示图片。显示设备141可以为或可以包括任何类别的用于呈现经重构图片的显示器,例如,集成的或外部的显示器或监视器。例如,显示器可以包括液晶显示器(liquid crystal display,简称LCD)、有机发光二极管(organic light emitting diode,简称OLED)显示器、等离子显示器、投影仪、微LED显示器、硅基液晶(liquid crystal on silicon,简称LCoS)、数字光处理器(digital light processor,简称DLP)或任何类别的其它显示器。
另外,虽然图1将源设备12和目标设备14绘示为单独的设备,但设备实施例也可以同时包括源设备12和目标设备14或同时包括两者的功能性,即源设备12或对应的功能性以及目标设备14或对应的功能性。在此类实施例中,可以使用相同硬件和/或软件,或使用单独的硬件和/或软件,或其任何组合来实施源设备12或对应的功能性以及目标设备14或对应的功能性。不同单元的功能性或图1所示的源设备12和/或目标设备14的功能性的存在和(准确)划分可能根据实际设备和应用有所不同。
在一些情况下,编码器123(例如,视频编码器)和解码器143(例如,视频解码器)都可以实施为各种合适电路中的任一个,例如,一个或多个微处理器、数字信号处理器(digital signal processor,简称DSP)、专用集成电路(application-specific integrated circuit,简称ASIC)、现场可编程门阵列(field-programmable gate array,简称FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件实施所述技术,则设备可将软件的指令存储于合适的非暂时性计算机可读存储介质中,且可使用一或多个处理器以硬件执行指令从而执行本公开的技术。前述内容(包含硬件、软件、硬件与软件的组合等) 中的任一者可视为一或多个处理器。编码器123和解码器143中的每一个可以包含在一或多个编码器或解码器中,所述编码器或解码器中的任一个可以集成为对应设备中的组合编码器/解码器(编解码器)的一部分。
应理解,对于以上参考编码器123所描述的实例中的每一个,解码器143可以用于执行相反过程。关于信令语法元素,解码器143可以用于接收并解析这种语法元素,相应地解码相关视频数据。在一些例子中,编码器123可以将一个或多个定义的语法元素熵编码成经编码视频比特流。在此类实例中,解码器143可以解析这种语法元素,并相应地解码相关视频数据。
下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体地实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
图2为本公开实施例提供的一种视频处理方法的流程示意图,本公开实施例的执行主体可以为上述实施例中的编码器。如图2所示,该方法可以包括:
S201:在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值。
其中,上述目标像素块均可以根据实际情况确定,本公开实施例对比不做特别限制。
这里,上述预设编码模式可以为IBC编码模式、哈希me编码模式等。上述第一预设比特位和第二预设比特位可以根据实际情况设置,例如以上述32位crc值中的高16比特位作为上述第一预设比特位,以上述32位crc值中的低16比特位作为上述第二预设比特位。
上述预设像素块信息表可以预存多个像素块的32位crc值中第一预设比特位的值、第二预设比特位的值,以及像素块的坐标的对应关系。
以IBC编码模式为例,以目标像素块的32位crc值中第一预设比特位的值,在上述预设像素块信息表的上述对应关系中搜索与上述第一预设比特位的值对应的第二预设比特位的值。
另外,上述32位crc值可以为fastcrc32值。
S202:若搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则根据搜索到的第二预设比特位的值,从上述预设像素块信息表中获得参考像素块的坐标。
这里,如果在上述预设像素块信息表中搜索到与上述第一预设比特位的值对应的第二预设比特位的值,且搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则进一步根据搜索到的第二预设比特位的值,从上述预设像素块信息表中获得参考像素块的坐标。
如果在上述预设像素块信息表中没有搜索到与上述第一预设比特位的值对应的第二预设比特位的值,或者搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值不同,则进行相应提示,可以在其它预设编码模式执行上述步骤,直至获得参考像素块的坐标。
S203:根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换。
其中,目标像素块向目标像素块的比特表示转换表示进行编码,目标像素块的比特表示向目标像素块转换表示进行解码。
示例性的,如果上述编码模式为IBC编码模式,则根据上述参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换。如果不能编码为IBC模式,可以尝试哈希me编码模式,在哈希me编码模式,根据上述目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值,如果搜索到的第二预设比特位的值与上述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的第二预设比特位的值,从上述预设像素块信息表中获得参考像素块的坐标,根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换等。
从上述描述可知,本公开实施例在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决IBC编码导致大量相似的图像块具有相同的哈希值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。
另外,本公开实施例在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值之前,还能够确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,并从中获取目标像素块的32位crc值。图3为本公开实施例提出的另一种视频处理方法的流程示意图,本实施例的执行主体可以为图1所示实施例中的编码器。如图3所示,该方法包括:
S301:确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
其中,上述待处理编码树单元可以根据实际情况确定,本公开实施例对比不做特别限制。
示例性的,在编码CTU之前计算当前CTU亮度分量的每一个像素位置的每一像素块,例如8×8像素块的32位crc值,从而,从计算的像素块的32位crc值中获取目标像素块的32位crc值。
可选地,上述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,可以包括:
对上述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行并行处理,获得上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
另外,上述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,还可以包括:
对上述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行合并,获得32位像素值;
根据上述32位像素值,采用32位crc值的计算函数,获得上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
这里,上述待处理编码树单元的32位crc值可以通过并行计算,和/或,在计算过程中对像素值的合并,提高计算速度,进而,提高编码速度。
其中,上述32位crc值的计算函数可以根据实际情况确定,本公开实施例对比不做特别限制。例如在一些情况下,上述32位crc值的计算函数可以为X 32+x 26+x 23+x 22+x 16+x 12+x 11+x 10+x 8+x 7+x 5+x 4+x 2+x+1。
这里,上述获得上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,可以包括:
根据上述32位像素值,采用上述32位crc值的计算函数,获得待处理32位crc值;
根据上述待处理32位crc值,采用随机计算函数,获得上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
其中,上述随机计算函数也可以根据实际情况确定,本公开实施例对比不做特别限制。
这里,对于像素值有差异的两个块,采用上述32位crc值的计算函数,可以获得不一样的待处理32位crc值。但是考虑到后续处理会对32位crc值进行分段,例如后续在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,可能会出现分段后的crc值相同的情况。为了解决该问题,本公开实施例进一步采用随机计算函数,基于上述待处理32位crc值,获得上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,保证像素值有差异的两个块的32位crc值在后续分段处理后,分段后的crc值也不同,进而,保证后续处理正常进行。
示例性的,以计算8×8像素块的32位crc值为例,可以包括以下操作:
(1)对于8x8的像素块,共有64个像素,每个像素值是8bit,每4个像素一组合并,即分别合并4个8bit像素值得到一个32bit的值,最终得到16个32bit的值buf[i](i=0,1…15)。在后续步骤中,以p表示最终32位crc值,有32bit,初始值设为0。
(2)对于每一个buf[i],执行p=f(p,buf[i]),直至完成16次迭代计算,其中f是32位crc值的计算函数。
(3)执行随机计算,p=rand(p),其中rand是随机计算函数。
这里,对待处理编码树单元的亮度分量的每一像素位置的像素块的像素值可以进行并行处理,获得每一像素位置的像素块的32位crc值,其中,每一处理的具体步骤可以如上述(1)-(3),从而提高计算速度,进而,提高编码速度。上述并行处理可以通过单指令多数据流(Single Instruction Multiple Data,简称SIMD)矢量并行计算实现,本公开实施例以完成armv7 armv8 sse avx2的simd实现,以256bit的avx2实现为例,对于一行像素点a[i](i=0…31),一个avx2寄存器执行步骤(1)-(3),可以并行完成a[0]a[8]a[16]a[24]四个位置的32位crc值。
S302:从上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc 值中,获取目标像素块的32位crc值。
S303:在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值。
S304:若搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则根据搜索到的第二预设比特位的值,从上述预设像素块信息表中获得参考像素块的坐标。
S305:根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换。
其中,步骤S303-S305与上述步骤S201-S203的实现方式相同,此处不再赘述。
本公开实施例提供的视频处理方法,通过并行计算,和/或,在计算过程中对像素值的合并,提高计算待处理编码树单元的32位crc值的速度,进而,提高编码速度,并且,在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决IBC编码导致大量相似的图像块具有相同的哈希值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。
另外,本公开实施例在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值之前,还能够在预设像素块信息表保存像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,以及像素块的坐标。图4为本公开实施例提出的再一种视频处理方法的流程示意图,本实施例的执行主体可以为图1所示实施例中的编码器。如图4所示,该方法包括:
S401:确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
其中,步骤S401与上述步骤S301的实现方式相同,此处不再赘述。
S402:从上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,分别获取第一预设比特位的值和第二预设比特位的值,并确定相应像素块的坐标。
这里,相应表示上述获取的第一预设比特位的值和第二预设比特位的值,以及确定的像素块的坐标为同一像素块的信息。
S403:将获取的上述第一预设比特位的值和上述第二预设比特位的值,以及确定的相应像素块的坐标,保存在预设像素块信息表中。
这里,上述像素块信息表可以预先设立,在该像素块信息表可以预存多个像素块的32位crc值中第一预设比特位的值、第二预设比特位的值,以及像素块的坐标的对应关系。
在上述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值后,从该32位crc值中分别获取第一预设比特位的值和第二预设比特位的值,并确定相应像素块的坐标,更新上述哈希表,进而在后续视频处理中,可以直接从上述预设 像素块信息表中获取相应信息,减少重复计算。
S404:从上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,获取目标像素块的32位crc值。
S405:在预设编码模式,根据上述目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值。
S406:若搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则根据搜索到的第二预设比特位的值,从上述预设像素块信息表中获得参考像素块的坐标。
S407:根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换。
其中,步骤S405-S407与上述步骤S303-S305的实现方式相同,此处不再赘述。
本公开实施例提供的视频处理方法,通过建立预设像素块信息表,使得在后续视频处理中,可以直接从上述信息表中获取相应信息,减少重复计算,并且,在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决IBC编码导致大量相似的图像块具有相同的哈希值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。
另外,本公开实施例还能够在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值之前,还能够判断搜索次数。图5为本公开实施例提出的又一种视频处理方法的流程示意图,本实施例的执行主体可以为图1所示实施例中的编码器。如图5所示,该方法包括:
S501:判断在预设像素块信息表中搜索与第一预设比特位的值对应的第二预设比特位的值的次数是否达到预设搜索次数上限。
S502:若上述次数未达到预设搜索次数上限,则在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值。
其中,上述预设搜索次数上限可以根据实际情况设置,本公开实施例对此不做特别限制。
在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值之前,判断搜索次数是否达到预设搜索次数上限,如果达到,则停止搜索,否则,进行相应搜索。
这里,通过设置预设搜索次数上限,解决现有搜索次数过多,编码速度慢的问题。
S503:若搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则根据搜索到的第二预设比特位的值,从上述预设像素块信息表 中获得参考像素块的坐标。
S504:根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换。
其中,步骤S502-S504与上述步骤S201-S203的实现方式相同,此处不再赘述。
本公开实施例提供的视频处理方法,通过设置预设搜索次数上限,解决现有搜索次数过多,编码速度慢的问题,并且在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决IBC编码导致大量相似的图像块具有相同的哈希值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。
另外,本公开实施例还能够根据相应代价从预设像素块信息表中获取参考像素块的坐标。图6为本公开实施例提出的又一种视频处理方法的流程示意图,本实施例的执行主体可以为图1所示实施例中的编码器。如图6所示,该方法包括:
S601:在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值。
其中,步骤S601与上述步骤S201的实现方式相同,此处不再赘述。
S602:若搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则分别确定上述目标像素块与搜索到的第二预设比特位的值对应的且属于上述预设像素块信息表的待处理像素块之间的代价值。
S603:从上述待处理像素块中获取上述代价值的最小值对应的像素块作为参考像素块,从上述预设像素块信息表中获取上述参考像素块的坐标。
这里,分别计算目标像素块搜索到的第二预设比特位的值对应的且属于上述预设像素块信息表的待处理像素块之间的代价值,其中,该代价值可以为率失真代价(RDcost),从而,将上述待处理像素块中获取上述代价值的最小值对应的像素块作为参考像素块,找到最佳参考像素块,使得残差几乎为零,大幅提升压缩效率。
S604:根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换。
其中,步骤S604与上述步骤S203的实现方式相同,此处不再赘述。
本公开实施例提供的视频处理方法,能搜索到匹配的参考块,使得残差几乎为零,大幅提升压缩效率,另外,在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决IBC编码导致大量相似的图像块具有相同的哈希值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像 素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。
另外,上述预设像素块信息表为哈希表,该哈希表中以像素块的32位crc值中第一预设比特位的值为关键字(key),以像素块的32位crc值中第二预设比特位的值和像素块的坐标为值(value)。本公开实施例还能够在上述哈希表中搜索与第一预设比特位的值对应的第二预设比特位的值。图7为本公开实施例提出的又一种视频处理方法的流程示意图,本实施例的执行主体可以为图1所示实施例中的编码器。如图7所示,该方法包括:
S701:在预设编码模式,将目标像素块的32位crc值中第一预设比特位的值作为搜索关键字,在上述哈希表中搜索与上述搜索关键字对应的值。
S702:若搜索到的上述搜索关键字对应的值中的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则在上述搜索关键字对应的值中获得参考像素块的坐标。
这里,可以在每一帧设置上述哈希表,该哈希表是根据关键码值(关键字值),即(Key value)而直接进行访问的数据结构。其中,关键字为像素块的32位crc值中第一预设比特位的值,值为像素块的32位crc值中第二预设比特位的值和像素块。一个关键字可能对应多个值,通过链表连接。
上述获得参考像素块的坐标过程中,是先将目标像素块的32位crc值中的第一预设比特位的值作为搜索关键字,在哈希表中查找,如果能找到则得到值链表的表头,遍历值链表,找到值中第二预设比特位的值与目标像素块的32位crc值中第二比特位相等的值,从这个值中获得参考像素的坐标,随即可以执行上述目标像素块与目标像素块的比特表示之间的转换步骤。其中,通过建立哈希表使得后续视频处理中,可以直接从上述哈希表中获取相应信息,减少重复计算。
S703:根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换。
其中,步骤S703与上述步骤S203的实现方式相同,此处不再赘述。
本公开实施例提供的视频处理方法,通过建立哈希表,使得在后续视频处理中,可以直接从上述哈希表中获取相应信息,减少重复计算,另外,在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决IBC编码导致大量相似的图像块具有相同的哈希值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。
另外,基于本申请实施例在自研项目上实现的IBC和哈希me工具,快速档测试结果,bd-bitrate:-30%左右,编码时间+30%,编码效率达到了预期,同时复杂度远低于原始方案。
对应于上文实施例的视频处理方法,图8为本公开实施例提供的视频处理装置的 结构示意图。为了便于说明,仅示出了与本公开实施例相关的部分。图8为本公开实施例提供的一种视频处理装置的结构示意图。如图7所示,该视频处理装置80包括:搜索模块801、获得模块802以及编码模块803。
其中,搜索模块801,用于在预设编码模式,根据所述目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值。
获得模块802,用于若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标。
编码模块803,用于根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。
本公开实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本公开实施例此处不再赘述。
图9为本公开实施例提供的另一种视频处理装置的结构示意图。如图9所示,本公开实施例在图8实施例的基础上,还包括:确定模块804、获取模块805和保存模块806。
在一种可能的设计中,确定模块804,用于所述搜索模块801在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值;
获取模块805,用于从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,获取所述目标像素块的32位crc值。
在一种可能的设计中,所述确定模块804,具体用于:
对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行并行处理,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
在一种可能的设计中,所述确定模块804,具体用于:
对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行合并,获得32位像素值;
根据所述32位像素值,采用32位crc值的计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
在一种可能的设计中,所述确定模块804获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:
根据所述32位像素值,采用所述32位crc值的计算函数,获得待处理32位crc值;
根据所述待处理32位crc值,采用随机计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
在一种可能的设计中,所述保存模块806,用于在所述确定模块804确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值之后,从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,分别获取所述第一预设比特位的值和所述第二预设比特位的值,并确定相应像素块的坐标;将获取的所述 第一预设比特位的值和所述第二预设比特位的值,以及确定的相应像素块的坐标,保存在所述预设像素块信息表中。
在一种可能的设计中,所述搜索模块801在所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,还用于:
判断在所述预设像素块信息表中搜索与所述第一预设比特位的值对应的所述第二预设比特位的值的次数是否达到预设搜索次数上限;
若所述次数未达到所述预设搜索次数上限,则执行所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值的步骤。
在一种可能的设计中,所述获得模块802,具体用于:
分别确定所述目标像素块与搜索到的所述第二预设比特位的值对应的且属于所述预设像素块信息表的待处理像素块之间的代价值;
从所述待处理像素块中获取所述代价值的最小值对应的像素块作为所述参考像素块,从所述预设像素块信息表中获取所述参考像素块的坐标。
在一种可能的设计中,所述预设像素块信息表为哈希表,所述哈希表中以像素块的32位crc值中第一预设比特位的值为关键字,以像素块的32位crc值中第二预设比特位的值和像素块的坐标为值。
所述搜索模块801根据所述目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值,包括:
将所述目标像素块的32位crc值中第一预设比特位的值作为搜索关键字,在所述哈希表中搜索与所述搜索关键字对应的值;
所述若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则获得模块802根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标,包括:
若搜索到的所述搜索关键字对应的值中的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则在所述搜索关键字对应的值中获得所述参考像素块的坐标。
本公开实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本公开实施例此处不再赘述。
参考图10,电子设备1000可以包括处理装置(例如中央处理器、图形处理器等)1001,其可以根据存储在只读存储器(Read Only Memory,简称ROM)1002中的程序或者从存储装置1008加载到随机访问存储器(Random Access Memory,简称RAM)1003中的程序而执行各种适当的动作和处理。在RAM 1003中,还存储有电子设备1000操作所需的各种程序和数据。处理装置1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
通常,以下装置可以连接至I/O接口1005:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1006;包括例如LCD、扬声器、振动器等的输出装置1007;包括例如磁带、硬盘等的存储装置1008;以及通信装置1009。通信装置1009可以允许电子设备1000与其他设备进行无线或有线通信以交换 数据。虽然图10示出了具有各种装置的电子设备1000,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1009从网络上被下载和安装,或者从存储装置1008被安装,或者从ROM 1002被安装。在该计算机程序被处理装置1001执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体地例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(Local Area Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框 可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
第一方面,根据本公开的一个或多个实施例,提供了一种视频处理方法,包括:
在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值;
若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标;
根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。
根据本公开的一个或多个实施例,在所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,还包括:
确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值;
从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,获取所述目标像素块的32位crc值。
根据本公开的一个或多个实施例,所述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:
对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行并行处理,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
根据本公开的一个或多个实施例,所述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:
对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行合并,获得32位像素值;
根据所述32位像素值,采用32位crc值的计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
根据本公开的一个或多个实施例,所述获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:
根据所述32位像素值,采用所述32位crc值的计算函数,获得待处理32位crc值;
根据所述待处理32位crc值,采用随机计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
根据本公开的一个或多个实施例,在所述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值之后,还包括:
从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,分别获取所述第一预设比特位的值和所述第二预设比特位的值,并确定相应像素块的坐标;
将获取的所述第一预设比特位的值和所述第二预设比特位的值,以及确定的相应像素块的坐标,保存在所述预设像素块信息表中
根据本公开的一个或多个实施例,在所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,还包括:
判断在所述预设像素块信息表中搜索与所述第一预设比特位的值对应的所述第二预设比特位的值的次数是否达到预设搜索次数上限;
若所述次数未达到所述预设搜索次数上限,则执行所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值的步骤。
根据本公开的一个或多个实施例,所述根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标,包括:
分别确定所述目标像素块与搜索到的所述第二预设比特位的值对应的且属于所述预设像素块信息表的待处理像素块之间的代价值;
从所述待处理像素块中获取所述代价值的最小值对应的像素块作为所述参考像素块,从所述预设像素块信息表中获取所述参考像素块的坐标。
根据本公开的一个或多个实施例,所述预设像素块信息表为哈希表,所述哈希表中以像素块的32位crc值中第一预设比特位的值为关键字,以像素块的32位crc值中第二预设比特位的值和像素块的坐标为值;
所述根据所述目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值,包括:
将所述目标像素块的32位crc值中第一预设比特位的值作为搜索关键字,在所述哈希表中搜索与所述搜索关键字对应的值。
根据本公开的一个或多个实施例,所述若搜索到的所述第二预设比特位的值与所 述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标,包括:
若搜索到的所述搜索关键字对应的值中的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则在所述搜索关键字对应的值中获得所述参考像素块的坐标。
第二方面,根据本公开的一个或多个实施例,提供了视频处理装置,包括:
搜索模块,用于在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值;
获得模块,用于若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标;
编码模块,用于根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。
根据本公开的一个或多个实施例,还包括确定模块,用于所述搜索模块在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值;
获取模块,用于从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,获取所述目标像素块的32位crc值。
根据本公开的一个或多个实施例,所述确定模块,具体用于:
对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行并行处理,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
根据本公开的一个或多个实施例,所述确定模块,具体用于:
对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行合并,获得32位像素值;
根据所述32位像素值,采用32位crc值的计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
根据本公开的一个或多个实施例,所述确定模块获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:
根据所述32位像素值,采用所述32位crc值的计算函数,获得待处理32位crc值;
根据所述待处理32位crc值,采用随机计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
根据本公开的一个或多个实施例,还包括保存模块,用于在所述确定模块确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值之后,从所述待处理编码树单元的亮度分量的每一个像素位置的每一像素块的32位crc值中,分别获取所述第一预设比特位的值和所述第二预设比特位的值,并确定相应像素块的坐标;将获取的所述第一预设比特位的值和所述第二预设比特位的值,以及确定的相应像素块的坐标,保存在所述预设像素块信息表中。
根据本公开的一个或多个实施例,所述搜索模块在所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,还用于:
判断在所述预设像素块信息表中搜索与所述第一预设比特位的值对应的所述第二预设比特位的值的次数是否达到预设搜索次数上限;若所述次数未达到所述预设搜索次数上限,则执行所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值的步骤。
根据本公开的一个或多个实施例,所述获得模块,具体用于:
分别确定所述目标像素块与搜索到的所述第二预设比特位的值对应的且属于所述预设像素块信息表的待处理像素块之间的代价值;从所述待处理像素块中获取所述代价值的最小值对应的像素块作为所述参考像素块,从所述预设像素块信息表中获取所述参考像素块的坐标。
第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的视频处理方法。
第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的视频处理方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (20)

  1. 一种视频处理方法,其特征在于,包括:
    在预设编码模式,根据目标像素块的32位循环冗余校验crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值;
    若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标;
    根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。
  2. 根据权利要求1所述的方法,其特征在于,在所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,还包括:
    确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值;
    从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,获取所述目标像素块的32位crc值。
  3. 根据权利要求2所述的方法,其特征在于,所述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:
    对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行并行处理,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
  4. 根据权利要求2所述的方法,其特征在于,所述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:
    对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行合并,获得32位像素值;
    根据所述32位像素值,采用32位crc值的计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
  5. 根据权利要求4所述的方法,其特征在于,所述获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:
    根据所述32位像素值,采用所述32位crc值的计算函数,获得待处理32位crc值;
    根据所述待处理32位crc值,采用随机计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
  6. 根据权利要求2所述的方法,其特征在于,在所述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值之后,还包括:
    从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,分别获取所述第一预设比特位的值和所述第二预设比特位的值,并确定相应像素块的坐标;
    将获取的所述第一预设比特位的值和所述第二预设比特位的值,以及确定的相应像素块的坐标,保存在所述预设像素块信息表中。
  7. 根据权利要求1所述的方法,其特征在于,在所述在预设像素块信息表中搜索 与所述第一预设比特位的值对应的第二预设比特位的值之前,还包括:
    判断在所述预设像素块信息表中搜索与所述第一预设比特位的值对应的所述第二预设比特位的值的次数是否达到预设搜索次数上限;
    若所述次数未达到所述预设搜索次数上限,则执行所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值的步骤。
  8. 根据权利要求1至7中任一项所述的方法,其特征在于,所述根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标,包括:
    分别确定所述目标像素块与搜索到的所述第二预设比特位的值对应的且属于所述预设像素块信息表的待处理像素块之间的代价值;
    从所述待处理像素块中获取所述代价值的最小值对应的像素块作为所述参考像素块,从所述预设像素块信息表中获取所述参考像素块的坐标。
  9. 根据权利要求1至7中任一项所述的方法,其特征在于,所述预设像素块信息表为哈希表,所述哈希表中以像素块的32位crc值中第一预设比特位的值为关键字,以像素块的32位crc值中第二预设比特位的值和像素块的坐标为值;
    所述根据所述目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值,包括:
    将所述目标像素块的32位crc值中第一预设比特位的值作为搜索关键字,在所述哈希表中搜索与所述搜索关键字对应的值;
    所述若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标,包括:
    若搜索到的所述搜索关键字对应的值中的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则在所述搜索关键字对应的值中获得所述参考像素块的坐标。
  10. 一种视频处理装置,其特征在于,包括:
    搜索模块,用于在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值;
    获得模块,用于若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标;
    编码模块,用于根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。
  11. 根据权利要求10所述的装置,其特征在于,还包括确定模块,用于所述搜索模块在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值;
    获取模块,用于从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,获取所述目标像素块的32位crc值。
  12. 根据权利要求11所述的装置,其特征在于,所述确定模块,具体用于:
    对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行并行处理,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
  13. 根据权利要求11所述的装置,其特征在于,所述确定模块,具体用于:
    对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行合并,获得32位像素值;
    根据所述32位像素值,采用32位crc值的计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
  14. 根据权利要求13所述的装置,其特征在于,所述确定模块获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:
    根据所述32位像素值,采用所述32位crc值的计算函数,获得待处理32位crc值;
    根据所述待处理32位crc值,采用随机计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。
  15. 根据权利要求11所述的装置,其特征在于,还包括保存模块,用于在所述确定模块确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值之后,从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,分别获取所述第一预设比特位的值和所述第二预设比特位的值,并确定相应像素块的坐标;将获取的所述第一预设比特位的值和所述第二预设比特位的值,以及确定的相应像素块的坐标,保存在所述预设像素块信息表中。
  16. 根据权利要求10所述的装置,其特征在于,所述搜索模块在所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,还用于:
    判断在所述预设像素块信息表中搜索与所述第一预设比特位的值对应的所述第二预设比特位的值的次数是否达到预设搜索次数上限;
    若所述次数未达到所述预设搜索次数上限,则执行所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值的步骤。
  17. 根据权利要求10至16中任一项所述的装置,其特征在于,所述获得模块,具体用于:
    分别确定所述目标像素块与搜索到的所述第二预设比特位的值对应的且属于所述预设像素块信息表的待处理像素块之间的代价值;
    从所述待处理像素块中获取所述代价值的最小值对应的像素块作为所述参考像素块,从所述预设像素块信息表中获取所述参考像素块的坐标。
  18. 一种电子设备,其特征在于,包括:至少一个处理器和存储器;
    所述存储器存储计算机执行指令;
    所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至9任一项所述的视频处理方法。
  19. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至9任一项所述的视频处理方法。
  20. 一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令, 所述计算机指令用于使计算机执行如权利要求1至9任一项所述的视频处理方法。
PCT/CN2020/127586 2020-01-22 2020-11-09 视频处理方法、装置及电子设备 WO2021147463A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010074802.2 2020-01-22
CN202010074802.2A CN111246208B (zh) 2020-01-22 2020-01-22 视频处理方法、装置及电子设备

Publications (1)

Publication Number Publication Date
WO2021147463A1 true WO2021147463A1 (zh) 2021-07-29

Family

ID=70871438

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/127586 WO2021147463A1 (zh) 2020-01-22 2020-11-09 视频处理方法、装置及电子设备

Country Status (2)

Country Link
CN (1) CN111246208B (zh)
WO (1) WO2021147463A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115086684A (zh) * 2022-08-22 2022-09-20 中科金勃信(山东)科技有限公司 一种基于crc的图像压缩方法、系统及介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111246208B (zh) * 2020-01-22 2022-04-08 北京字节跳动网络技术有限公司 视频处理方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106331703A (zh) * 2015-07-03 2017-01-11 华为技术有限公司 视频编码和解码方法、视频编码和解码装置
CN109743570A (zh) * 2019-01-09 2019-05-10 北京工业大学 一种屏幕内容视频的压缩方法
WO2019133158A1 (en) * 2017-12-29 2019-07-04 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
CN111246208A (zh) * 2020-01-22 2020-06-05 北京字节跳动网络技术有限公司 视频处理方法、装置及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6865577B1 (en) * 2000-11-06 2005-03-08 At&T Corp. Method and system for efficiently retrieving information from a database
US10291827B2 (en) * 2013-11-22 2019-05-14 Futurewei Technologies, Inc. Advanced screen content coding solution
US10462491B2 (en) * 2015-11-02 2019-10-29 Dolby Laboratories Licensing Corporation Layered representation and delivery of high dynamic range video
CN108495139A (zh) * 2018-04-18 2018-09-04 北方工业大学 屏幕内容编码的哈希块匹配
US10904559B2 (en) * 2018-07-13 2021-01-26 Tencent America LLC Block vector prediction in intra block copy mode
CN109889851B (zh) * 2019-03-11 2021-02-02 珠海市杰理科技股份有限公司 视频编码的块匹配方法、装置、计算机设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106331703A (zh) * 2015-07-03 2017-01-11 华为技术有限公司 视频编码和解码方法、视频编码和解码装置
WO2019133158A1 (en) * 2017-12-29 2019-07-04 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
CN109743570A (zh) * 2019-01-09 2019-05-10 北京工业大学 一种屏幕内容视频的压缩方法
CN111246208A (zh) * 2020-01-22 2020-06-05 北京字节跳动网络技术有限公司 视频处理方法、装置及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115086684A (zh) * 2022-08-22 2022-09-20 中科金勃信(山东)科技有限公司 一种基于crc的图像压缩方法、系统及介质
CN115086684B (zh) * 2022-08-22 2022-11-18 中科金勃信(山东)科技有限公司 一种基于crc的图像压缩方法、系统及介质

Also Published As

Publication number Publication date
CN111246208A (zh) 2020-06-05
CN111246208B (zh) 2022-04-08

Similar Documents

Publication Publication Date Title
JP7375125B2 (ja) ルーマおよびクロマ成分についてibc専用バッファおよびデフォルト値リフレッシュを使用するエンコーダ、デコーダおよび対応する方法
US20190273929A1 (en) De-Blocking Filtering Method and Terminal
JP7205038B2 (ja) 任意のctuサイズのためのibc検索範囲最適化を用いるエンコーダ、デコーダおよび対応する方法
US11943451B2 (en) Chroma block prediction method and apparatus
WO2020103800A1 (zh) 视频解码方法和视频解码器
WO2020052534A1 (zh) 视频解码方法及视频解码器
WO2021147463A1 (zh) 视频处理方法、装置及电子设备
US11481929B2 (en) System and method for compressing and decompressing images using block-based compression format
CN117915101A (zh) 色度块预测方法以及设备
WO2021147464A1 (zh) 视频处理方法、装置及电子设备
JP2023126795A (ja) ビデオコーディングにおけるクロマイントラ予測のための方法及び装置
WO2021169817A1 (zh) 视频处理方法及电子设备
KR102631517B1 (ko) 픽처 분할 방법 및 장치
BR112020026183A2 (pt) Método de codificação de vídeo, codificador, decodificador e produto de programa de computador
US20210337189A1 (en) Prediction mode determining method and apparatus
US11985303B2 (en) Context modeling method and apparatus for flag
WO2021168624A1 (zh) 视频图像编码方法、设备及可移动平台
KR20210008080A (ko) 변환 프로세스를 위해 사용되는 인코더, 디코더 및 대응하는 방법
CN111885389B (zh) 一种多媒体数据编码方法、装置及存储介质
CN113747099B (zh) 视频传输方法和设备
WO2023202177A1 (zh) 图像编码方法和装置
RU2814812C2 (ru) Выведение веса выборки цветности для геометрического режима разделения
US20240089499A1 (en) Displacement coding for mesh compression
US20240137564A1 (en) Fast computation of local coordinate system for displacement vectors in mesh coding
CN111770337B (zh) 视频编码方法、视频解码方法及相关设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20915544

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20915544

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 13.02.2023)