WO2015124058A1 - 编解码方法和装置 - Google Patents

编解码方法和装置 Download PDF

Info

Publication number
WO2015124058A1
WO2015124058A1 PCT/CN2015/072089 CN2015072089W WO2015124058A1 WO 2015124058 A1 WO2015124058 A1 WO 2015124058A1 CN 2015072089 W CN2015072089 W CN 2015072089W WO 2015124058 A1 WO2015124058 A1 WO 2015124058A1
Authority
WO
WIPO (PCT)
Prior art keywords
block group
coding
processing order
determining
coded block
Prior art date
Application number
PCT/CN2015/072089
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 华为技术有限公司
Priority to KR1020167023765A priority Critical patent/KR101960825B1/ko
Priority to JP2016552562A priority patent/JP6389264B2/ja
Priority to EP15752321.8A priority patent/EP3094091A4/en
Publication of WO2015124058A1 publication Critical patent/WO2015124058A1/zh
Priority to US15/240,436 priority patent/US20160373767A1/en

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/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation

Definitions

  • the present invention relates to the field of image processing and, more particularly, to a codec method and apparatus.
  • Video compression coding technology is widely used in multimedia services, broadcast communication, video communication, storage and other fields.
  • the Advanced Video Coding (AVC) standard is the most widely used video coding standard today, however H.264/AVC is not suitable for compression coding of high resolution video.
  • JCT-VC Joint Collaborative Team on Video Coding proposes High Efficiency Video Coding (HEVC), which The compression efficiency is increased by approximately 50% relative to H.264/AVC.
  • an image to be encoded is divided into non-overlapping image blocks, and the encoder sequentially processes each image block in a row scan.
  • the image block may be further divided into a plurality of sub-blocks, and each sub-block may independently determine its encoding parameters.
  • the above non-overlapping image blocks are called Coding Tree Units (CTUs), and their sizes are generally set to 64x64 pixels.
  • the CTU may be further divided into a plurality of the sub-blocks by a structure of a quadtree, which is commonly referred to as a Coding Unit (CU) in HEVC.
  • CU Coding Unit
  • the CUs inside a CTU are encoded in the zigzag scanning order, and all CTUs in one frame are encoded in the order of line scanning.
  • the intra prediction modes in HEVC include DC prediction, plane prediction, and angle prediction.
  • the blocks to be coded are predicted using the left and above reconstructed coded block blocks as reference.
  • the pixels used in the reconstructed block for prediction are referred to as reference pixels.
  • DC prediction is applied to blocks of flat areas of texture in the image, and all pixels in the block use reference images.
  • the average value of the prime is used as the predicted value.
  • Planar prediction uses bi-linear interpolation of reference pixels to obtain predictions for all pixels in the block, so it is suitable for blocks with smooth texture changes.
  • the angle prediction uses the texture of the current coded block to be highly correlated with the reconstructed block, and the value of the corresponding reference pixel is copied along a certain angle as the predicted value of the pixel in the current block.
  • a coding block is called a Macro Block (MB), and the size of a macroblock is fixed to 16 ⁇ 16 pixels, and each macroblock can only be divided into 4 ⁇ 4, 8 ⁇ 8 or A 16 ⁇ 16 Sub Macro Block (SMB) performs predictive coding.
  • MB and SMB correspond to CTU and CU in HEVC, respectively.
  • the encoding order of MB is similar to that of CTU, which is encoded in the order of line scanning.
  • the encoding order of SMB is also zigzag progressive scanning.
  • Intra prediction in H.264/AVC also uses mean prediction and angle prediction, but there are only a maximum of nine prediction modes.
  • the image to be encoded is first divided into non-overlapping code blocks, and then each block is sequentially coded in a fixed order (row scan order), so that the coding compression efficiency is low.
  • the embodiments of the present invention provide a codec method and apparatus, which can fully utilize spatial correlation in video information, thereby improving compression efficiency in codec.
  • an encoding method including: determining a first processing order of a plurality of encoding block groups included in the target image according to a total encoding cost of the target image; and the plurality of encodings according to the first processing order
  • the coded block group in the coded block group is encoded to generate a code stream; and the first process order is written to the code stream.
  • determining, by the total coding cost of the target image, a first processing order of the plurality of coding block groups included in the target image including: determining the multiple coding a total coding cost corresponding to each processing order in all processing orders of the block group, wherein a total coding cost corresponding to each of the processing orders is an encoding cost of the plurality of coding block groups encoded according to each processing order And determining a processing order corresponding to a minimum total encoding cost of the total encoding costs corresponding to each processing order is the first processing order.
  • the encoding, by the first processing order, the coding block group in the plurality of coding block groups to generate a code stream Determining, according to the first processing order, determining a processing order of the plurality of coding blocks included in the coding block group; according to the first processing order and the plurality of coding blocks included in the coding block group
  • the encoding block is encoded in the order of the encoding.
  • the determining, by the first processing order, the processing sequence of the multiple coding blocks included in the coding block group includes: Determining, by the first processing order, a relative positional relationship of the coded block group and a processed coded block group adjacent to the coded block group; and determining the coded block according to the correspondence relationship and the relative positional relationship The processing order of multiple coded blocks contained in a group.
  • determining a plurality of candidate processing orders of the coding block includes: using a plurality of candidate processing orders of the preset coding block.
  • the determining, by the first processing order, a processing sequence of the multiple coding blocks included in the coding block group including: Determining, by the first processing order, a relative positional relationship between the coded block group and a processed coded block group adjacent to the coded block group; and corresponding to a plurality of positional relationships according to a preset plurality of candidate processing orders The relationship and the relative positional relationship determine a processing order of the plurality of coding blocks included in the coding block group, wherein the plurality of positional relationships are the currently processed coding block group and adjacent to the currently processed coding block group A variety of relative positional relationships of processed coded block groups.
  • the writing the first processing order to the code stream comprises: arranging according to the first processing order An index of the encoded block group; encoding an index of the aligned coded block groups and writing the code stream; or arranging coordinates of the coded block group according to the first processing order; encoding the aligned code blocks The coordinates of the group are written to the code stream.
  • the coding cost of the coding block group includes at least one of the following: coding a number of bits consumed by the coding block group; Distortion of the block group.
  • a decoding method including: acquiring multiple target images from a code stream a first processing order of the coding block group; determining a processing order of the plurality of coding blocks included in the coding block group in the plurality of coding block groups according to the first processing order; according to the first processing order and the encoding The processing order of the plurality of coding blocks included in the block group decodes the code stream.
  • the determining, before the processing order of the plurality of coding blocks included in the coding block group in the plurality of coding block groups, according to the first processing order further includes: determining a plurality of candidate processing orders of the coded block; and determining a correspondence between the plurality of candidate processing orders and the plurality of positional relationships, wherein the plurality of positional relationships are the currently processed coded block group and the current A plurality of relative positional relationships of the processed coded block groups adjacent to the processed coded block group.
  • the determining, by the first processing order, the multiple coding blocks included in the coding block group in the multiple coding block groups Processing sequence includes: determining, according to the first processing order, a relative positional relationship between the coded block group and a processed coded block group adjacent to the coded block group; and according to the correspondence relationship and the relative The positional relationship determines a processing order of the plurality of coding blocks included in the coding block group.
  • determining a plurality of candidate processing orders of the coding block includes: using a plurality of candidate processing orders of the preset coding block.
  • determining a processing order of the multiple coding blocks included in the coding block group according to the first processing order including: determining the coding according to the first processing order a relative positional relationship between the block group and the processed coded block group adjacent to the coded block group; and determining, according to a preset correspondence between the plurality of candidate processing orders and the plurality of positional relationships and the relative positional relationship, determining that the coded block group contains more The processing order of the coded blocks, wherein the plurality of positional relationships are a plurality of relative positional relationships of the currently processed coded block set and the processed coded block set adjacent to the currently processed coded block set.
  • the first processing sequence of acquiring the plurality of coding block groups of the target image from the code stream including: from the code stream Decoding an index of the plurality of encoded block groups that are arranged; determining the first processing order according to an order of arrangement of indexes of the plurality of encoding block groups; or decoding the plurality of arranged permutations from the code stream The coordinates of the coded block group; the first processing order is determined according to the order of the coordinates of the plurality of coded block groups.
  • an encoder comprising: a determining unit for a total coding cost determining a first processing order of the plurality of coding block groups included in the target image; a coding unit, configured to encode the plurality of coding block groups according to the first processing order determined by the determining unit The block group is encoded to generate a code stream; and the encoding unit is further configured to write the first processing order determined by the determining unit to the code stream.
  • the determining unit is specifically configured to: determine a total coding cost corresponding to each processing order in all processing orders of the multiple coding block groups, where The total coding cost corresponding to each processing order is a sum of coding costs of the plurality of coding block groups encoded according to each processing order; determining a minimum total coding of total coding costs corresponding to each processing order The processing order corresponding to the cost is the first processing order.
  • the coding unit is specifically configured to: determine, according to the first processing order, that the coding block group includes by using the determining unit a processing order of the plurality of coding blocks; encoding the coding block group according to the first processing order and a processing order of the plurality of coding blocks included in the coding block group.
  • the determining unit is further configured to: determine a plurality of candidate processing orders of the coding block; and determine the multiple candidate processing order and A correspondence of a plurality of positional relationships, wherein the plurality of positional relationships are a plurality of relative positional relationships of the currently processed coded block group and the processed coded block group adjacent to the currently processed coded block group.
  • the determining unit is specifically configured to: determine, according to the first processing order, the coding block group and the coding block group a relative positional relationship of adjacent processed coded block groups; and determining a processing order of the plurality of coded blocks included in the coded block group according to the correspondence relationship and the relative positional relationship.
  • the determining unit is specifically configured to: use multiple candidate processing orders of the preset coding block.
  • the determining unit is specifically configured to: determine, according to the first processing order, the coding block group and the coding block group a relative positional relationship of the adjacent processed coding block groups; and determining a plurality of coding blocks included in the coding block group according to a preset correspondence between the plurality of candidate processing orders and the plurality of positional relationships and the relative positional relationship Processing order, wherein the plurality of positional relationships are a plurality of relative positional relationships of the currently processed coded block set and the processed coded block set adjacent to the currently processed coded block set.
  • the coding unit is specifically configured to: perform an index of the coding block group according to the first processing order; Encoding the coded block group and writing the code stream; or arranging the coordinates of the coded block group according to the first processing order; encoding the coordinates of the aligned code block group and writing the code stream
  • the coding cost of the coding block group includes at least one of the following: the coding unit encodes the number of bits consumed by the coding block group The distortion of the coded block group.
  • a decoder comprising: an obtaining unit, configured to acquire a first processing order of a plurality of encoding block groups of a target image from a code stream; and a determining unit, configured to determine according to the first processing order a processing order of the plurality of coding blocks included in the coding block group in the plurality of coding block groups; and a decoding unit, configured to decode according to the first processing order and a processing order of the plurality of coding blocks included in the coding block group The code stream.
  • the determining unit is further configured to: determine a plurality of candidate processing orders of the coding block; and determine the multiple candidate processing order and the multiple location relationship Corresponding relationship, wherein the plurality of positional relationships are a plurality of relative positional relationships of the currently processed coded block group and the processed coded block group adjacent to the currently processed coded block group.
  • the determining unit is specifically configured to: determine, according to the first processing order, the coding block group and the coding block group a relative positional relationship of adjacent processed coded block groups; and determining a processing order of the plurality of coded blocks included in the coded block group according to the correspondence relationship and the relative positional relationship.
  • the determining unit is specifically configured to: use multiple candidate processing orders of the preset coding block.
  • the determining unit is specifically configured to: determine, according to the first processing order, the coded block group and the processed code adjacent to the coded block group a relative positional relationship of the block group; and determining, according to a preset correspondence between the plurality of candidate processing orders and the plurality of positional relationships and a relative positional relationship, a processing order of the plurality of coding blocks included in the coding block group, wherein the plurality of positional relationships are current A plurality of relative positional relationships of the processed coded block groups and the processed coded block groups adjacent to the currently processed coded block group.
  • the acquiring unit is specifically configured to: by using the decoding unit, decode the aligned device from the code stream Determining an index of a plurality of coding block groups; determining, by the determining unit, the first processing order according to an arrangement order of indexes of the plurality of coding block groups; or decoding, by the decoding unit, from the code stream Coordinates of the plurality of coding block groups arranged; the first processing order is determined according to an arrangement order of coordinates of the plurality of coding block groups by the determining unit.
  • the embodiment of the present invention determines a first processing order of the plurality of coding block groups included in the target image according to a total coding cost of the target image, and encodes and decodes the plurality of coding block groups according to the first processing order, and can fully utilize the video. Spatial correlation in information, thereby improving compression efficiency in codecs.
  • FIG. 1 is a flow chart of a method of encoding in accordance with an embodiment of the present invention.
  • FIG. 2 is a flow chart of a method of decoding in accordance with an embodiment of the present invention.
  • Figure 3 is a diagram showing the processing sequence of a coding block according to an embodiment of the present invention.
  • FIG. 4 is a schematic diagram of a processing sequence of a coding block according to another embodiment of the present invention.
  • FIG. 5 is a schematic diagram showing a correspondence relationship between a candidate processing order of a coding block and various positional relationships according to an embodiment of the present invention.
  • FIG. 6 is a flow chart of encoding at the encoding end according to an embodiment of the present invention.
  • FIG. 7 is a flowchart of decoding of a decoding end according to an embodiment of the present invention.
  • Figure 8 is a schematic block diagram of an encoder in accordance with one embodiment of the present invention.
  • Figure 9 is a schematic block diagram of a decoder in accordance with one embodiment of the present invention.
  • Figure 10 is a schematic block diagram of an encoder in accordance with another embodiment of the present invention.
  • Figure 11 is a schematic block diagram of a decoder in accordance with another embodiment of the present invention.
  • FIG. 1 is a flow chart of a method of encoding in accordance with an embodiment of the present invention.
  • the embodiment of the present invention determines a first processing order of the plurality of coding block groups included in the target image according to a total coding cost of the target image, and encodes the plurality of coding block groups according to the first processing order, and can fully utilize the target image. Spatial correlation in order to improve compression efficiency in encoding.
  • the target image in the embodiment of the present invention is an image to be encoded, which may also be referred to as a coded image.
  • the target image is divided into a plurality of non-overlapping coding block groups, which may be equivalent to the coding tree unit CTU in HEVC, or may be equivalent to the macroblock MB in H.264/AVC, and the like.
  • the coded block group may continue to be divided into a plurality of coded blocks capable of independently determining coding parameters, the coded block may be equivalent to the coding unit CU in HEVC, or may be equivalent to the sub-macroblock SMB in H.264/AVC, and the like.
  • step 101 includes: determining a total coding cost corresponding to each processing order in all processing orders of the plurality of coding block groups, where a total coding cost corresponding to each processing order is a plurality of coding block groups.
  • the sum of the encoding costs of encoding according to each processing order; determining the processing order corresponding to the smallest total encoding cost of the total encoding costs corresponding to each processing order is the first processing order.
  • the coding cost of each coded block group may vary with the order of processing.
  • the coding cost of a coded block group is an important criterion for measuring the quality of the block group.
  • the calculation of the coding cost takes into account both the number of bits used to encode the block and the quality of the block after reconstruction. The lower the value of the coding cost indicates the block. The better the coding. Therefore, the processing order that can minimize the total coding cost of all coded block groups can be used as the optimal processing order.
  • the problem of determining the optimal processing order can be translated into the problem of solving the minimum total coding cost:
  • N represents the total number of coded block groups
  • 1 ⁇ i ⁇ N represents an index indicating the coded block group in order from left to right and top to bottom.
  • O is a vector indicating the processing order of the coding block group, and each item of O is an arrangement of the coding block group index.
  • a total possible processing order N is a full arrangement N!
  • S j,k is a set including an index of processed j block groups, and k represents that the processed j block groups are selected from the N block groups by j block groups The kth combination of possible combinations.
  • i represents one of the block groups that have not been encoded.
  • RD(S j,k ,i) represents the cost required to process the block group i in the case where all coded block groups in S j,k have been processed.
  • S N represents a set of all N coded block groups. Represents the optimal processing order of N coded block groups. The purpose of this optimization problem is to find a processing order Making the total cost of all N coded block groups The smallest.
  • the cost RD(S j,k ,i) of each coded block group needs to be calculated. After the cost RD(S j,k ,i) of a coded block group is obtained, the optimal processing order of the coded block group can be determined by the method described in the equation (2).
  • j, 1 ⁇ j ⁇ N-1 represents the number of coded block groups that have been processed.
  • S j,k is a set including the index of the processed j block groups in the case of the kth combination described above.
  • the cost function DP(S j,k ,O Sj,k ) represents the sum of the costs of all block groups in the set of coded block groups S j,k , ie the processing contained in S j,k is processed using the optimal processing order O Sj,k
  • RD(S j,k ,i) represents the cost resulting from the encoding process of the block group i in the case where all the j block groups indicated by the k-th combination shown by S j,k have been processed.
  • the other coding block group is a block group with sequence number 3, a block group with sequence number 2, and a block group with sequence number 1.
  • the corresponding cost of encoding this block group is RD( ⁇ 1,2 ⁇ ,3), RD( ⁇ 1,3 ⁇ ,2), and RD( ⁇ 2,3 ⁇ ,1).
  • the minimum cost DP ( ⁇ 1, 2, 3 ⁇ , O ⁇ 1 , 2, 3 ⁇ ) of the three coding block groups of coding numbers 1, 2, and 3 can be calculated by the equations (3) and (3). Then, the optimal processing order O ⁇ 1, 2, 3 ⁇ is determined .
  • step 102 includes: determining a processing order of the plurality of coding blocks included in the coding block group according to the first processing order; processing order of the plurality of coding blocks included in the coding block group according to the first processing order Encode the block group.
  • the processing order of the coded blocks within the current coded block group may be determined according to the processing order of the coded block groups. That is to say, the processing order of the current coding block group and its adjacent coding block group may be determined according to the processing order of the coding block group, thereby determining the processing order of the coding blocks in the current coding block group.
  • the coding block in the current coding block group may have multiple preset candidate processing orders, and each candidate processing order corresponds to a position relationship, which is the currently processed coding block group and the current processing.
  • the relative positional relationship of the processed coded block groups adjacent to the coded block group may be determined first, and then the corresponding position relationship is determined according to the determined relative position relationship.
  • the processing order of the coded blocks within the coded block group may be determined first, and then the corresponding position relationship is determined according to the determined relative position relationship.
  • the processing order of the coding block After the processing order of the coding block is determined, all coding blocks in the current coding block group are encoded according to the processing order, and after processing, the next coding block group is processed according to the first processing order, similar to the current coding block group, and needs to be The relative positional relationship determines the processing order of the encoded blocks in the next coded block group, and so on, until all coded block groups of the target image are encoded in the first processing order.
  • the method before determining, according to the first processing order, a processing order of the multiple coding blocks included in each coding block group in the coding block group, the method further includes: determining a plurality of candidate processing orders of the coding block; and determining A correspondence between a plurality of candidate processing orders and a plurality of positional relationships, wherein the plurality of positional relationships are a plurality of relative positional relationships of the currently processed coded block group and the processed coded block group adjacent to the currently processed coded block group.
  • determining a plurality of candidate processing orders of the coding block includes: using a plurality of candidate processing orders of the preset coding block.
  • the plurality of candidate processing orders of the predetermined coding block may be determined using a plurality of methods, for example, according to the division manner of the coding blocks included in the coding block group.
  • the division manner of the coding block may include equal-size division, that is, the coding blocks in the coding block group have the same size, for example, H.264/AVC, etc., and the coding block division manner may further include non-equal size division, such as HEVC.
  • a plurality of candidate processing orders of a predetermined coding block may be as shown in FIG. 4, and in the case of non-equal size division, a plurality of candidate processing orders of a predetermined coding block may be as Figure 3 shows. It should be understood that the several processing orders shown in FIG. 3 and FIG. 4 are only some examples, and the processing order of the preset encoding blocks is not limited thereto, and may be any order.
  • the encoding end may preset the correspondence between the multiple processing order of the coding block in the coding block group and the relative position of the coded block group and the coded coding block group.
  • the processing order of the four coding blocks as shown in FIG. 4 may be preset, the order 0 is a left-to-right progressive scan, the order 1 is a right-to-left progressive scan, and the order 2 is from top to bottom.
  • Column scan, order 3 is a column-by-column scan from bottom to top.
  • the relative positions of the coded block group and the coded code block group may be sixteen as shown in FIG. 5: 1, the adjacent coded block group is not encoded; 2.
  • the upper code block group is coded; 3, right The coding block group on the side is encoded; 4, the code block group below is coded; 5, the code block group on the left is encoded; 6, the code block group on the top and the right is coded; 7, the code on the lower and right sides
  • the block group is encoded; 8, the left and bottom code block groups are encoded; 9, the left and top code block groups are encoded; 10, the upper and lower code block groups are coded; 11, left and right
  • the coding block group is coded; 12, the upper, lower, and left three coding block groups are encoded; 13, the left, right, and upper three coding block groups are encoded; 14, the upper, lower, and right three sides of the coding
  • the block group is encoded; 15, the coding block groups of the left, right, and lower sides are encoded; 16, the code block groups of the upper, lower, left, and right sides are encoded.
  • the encoding end may further pre-configure the correspondence between the above four processing orders and the relative positional relationship in the foregoing 16, for example, the relative positional relationship 1 corresponds to the sequence 0, the relative positional relationship 2 corresponds to the sequence 3, and the relative positional relationship 3 Corresponds to order 2, and so on.
  • the current coding block group selects a corresponding one from the above sixteen cases, and then determines the processing order of the coding blocks in the current coding block group. Then, the coding block in the current coding block group is subjected to an encoding operation in accordance with a given coding block processing order, and the coding cost is calculated.
  • the determination of the coding block processing order utilizes the pixel values in the adjacent processed coded block group as much as possible to predict the pixel values within the current coded block group.
  • the spatial correlation of the coded image is fully considered, which contributes to the improvement of compression efficiency.
  • determining a processing order of the plurality of coding blocks included in the coding block group according to the first processing order including: determining, according to the first processing order, the processed block group and the processed block adjacent to the coding block group. And encoding a relative positional relationship of the block group; and determining a processing order of the plurality of coding blocks included in the coding block group according to a preset correspondence between the plurality of candidate processing orders and the plurality of positional relationships, and the plurality of positional relationships are A plurality of relative positional relationships of the currently processed coded block group and the processed coded block group adjacent to the currently processed coded block group.
  • the plurality of candidate processing orders of the coding block, and the correspondence between the plurality of candidate processing orders and the plurality of positional relationships may be preset.
  • the encoding end is determining the currently processed code
  • the processing order corresponding to the coding blocks of the currently processed coding block group may be directly determined according to the preset correspondence relationship, wherein the multiple candidate processing orders and corresponding relationships are similar to the above embodiment. , will not repeat them here.
  • the first processing order is written into the code stream, including: arranging the indexes of the coded block groups according to the first processing order; encoding the index of the aligned coded block groups and writing the code stream; or The first processing order arranges the coordinates of the encoded block group; encodes the coordinates of the arranged encoded block group and writes the code stream.
  • the processing order of the coding block group may be written into the code stream in an index or coordinate manner, so that the decoding end can directly obtain the coding order of the coding block group at the time of encoding when performing decoding.
  • the processing order may be written into the code stream in an index or coordinate manner, so that the decoding end can directly obtain the coding order of the coding block group at the time of encoding when performing decoding.
  • One way is to assign an index number to the coded block group in the coded picture from left to right from top to bottom, for example from 0 to N-1.
  • the N index numbers are written to the code stream according to the calculated optimal processing order.
  • Another way is to assign the horizontal and vertical values to the coded block group from left to right, for example (x, y) to represent the coded block.
  • N w*h
  • x and y have a value range of 0 ⁇ x ⁇ w-1. 0 ⁇ y ⁇ h-1.
  • the N sets of coordinates may be encoded according to the calculated optimal processing order.
  • the N pieces of abscissa values and the N pieces may be independently coded in sequence using a code method similar to Pulse Code Modulation (PCM).
  • PCM Pulse Code Modulation
  • the ordinate value may also be encoded by a differential pulse code modulation (DPCM) encoding method and the N ordinate values.
  • DPCM differential pulse code modulation
  • the encoding result is output to the video code stream, so that the decoding end performs decoding according to the optimal processing order.
  • the coding cost of the coded block group as an embodiment comprises at least one of the following: the number of bits consumed by the coded block group; and the distortion of the coded block group.
  • the coding cost of a coded block group is an important criterion for measuring the quality of the block group.
  • the calculation of the coding cost takes into account both the number of bits used to encode the block and the quality of the block after reconstruction. The lower the value of the coding cost indicates the block. The better the coding.
  • the first processing order of the coding block group included in the target image may be determined according to the method of the embodiment of the present invention, and the partial coding may be determined when determining the processing order of the coding block of the coding block group.
  • the processing order of the coding blocks of the block group, and the processing order of the coding blocks of the remaining coding block groups may be determined according to other technical solutions or pre-agreed.
  • the embodiment of the present invention determines a first processing order of the plurality of coding block groups included in the target image according to a total coding cost of the target image, and encodes the plurality of coding block groups according to the first processing order, so as to fully utilize the target Spatial correlation in the image to improve compression efficiency in encoding.
  • FIG. 2 is a flow chart of a method of decoding in accordance with an embodiment of the present invention.
  • the embodiment of the present invention determines a processing order of coding blocks in each coding block group according to a first processing order determined by an encoding end that enables the total coding cost to be minimized, and encodes according to the first processing order and each coding block group.
  • the processing order of the block decodes the code stream of the target image, and the spatial correlation of the target image is fully utilized in the encoding process, thereby improving the compression efficiency in encoding.
  • the method before determining a processing order of the plurality of coding blocks included in the coding block group in the plurality of coding block groups according to the first processing order, the method further includes: determining a plurality of candidate processing orders of the coding block; and Corresponding relationships of a plurality of candidate processing orders to a plurality of positional relationships are determined, wherein the plurality of positional relationships are a plurality of relative positional relationships of the currently processed coded block groups and the processed coded block groups adjacent to the currently processed coded block group.
  • the decoding end determines the processing order of the coding blocks in the current coding block group according to the processing order of the coding block group by the same scheme as the coding end.
  • the coding block in the current coding block group may have multiple preset candidate processing orders, and each candidate processing order corresponds to a position relationship, which is the currently processed coding block group and the current processing.
  • the relative positional relationship of the processed coded block groups adjacent to the coded block group When the current coded block group is decoded, the relative positional relationship between the current coded block group and the adjacent or similar decoded code block group may be determined, and then the corresponding position relationship is determined according to the determined relative position relationship.
  • the processing order of the coded blocks within the coded block group may be determined, and then the corresponding position relationship is determined according to the determined relative position relationship.
  • the processing order of the coding block After the processing order of the coding block is determined, all the coding blocks in the current coding block group are decoded according to the processing order, and after processing, the next coding block group is processed according to the first processing order, similar to the current coding block group, and needs to be
  • the relative positional relationship determines the processing order of the encoded blocks in the next coded block group, and so on, until all coded block groups of the target image are decoded in the first processing order.
  • each of the plurality of coding block groups is determined according to the first processing order
  • the processing order of the coding blocks of the coding block group includes: determining, according to the first processing order, a relative positional relationship between the coded block group and the processed coded block group adjacent to the coded block group; and determining the coding according to the correspondence relationship and the relative positional relationship
  • the processing order of multiple coded blocks contained in a block group includes: using a plurality of candidate processing orders of the preset coding block.
  • the plurality of candidate processing orders of the predetermined coding block may be determined using a plurality of methods, for example, according to the division manner of the coding blocks included in the coding block group.
  • the division manner of the coding block may include equal-size division, that is, the coding blocks in the coding block group have the same size, for example, H.264/AVC, etc., and the coding block division manner may further include non-equal size division, such as HEVC.
  • a plurality of candidate processing orders of a predetermined coding block may be as shown in FIG. 4, and in the case of non-equal size division, a plurality of candidate processing orders of a predetermined coding block may be as Figure 3 shows. It should be understood that the several processing orders shown in FIG. 3 and FIG. 4 are only some examples, and the processing order of the preset encoding blocks is not limited thereto, and may be any order.
  • the decoding end may preset the correspondence between the multiple processing order of the coding block in the coding block group and the relative position of the coded block group and the decoded coding block group.
  • the processing order of the four kinds of coding blocks as shown in FIG. 4 is set in advance, the order 0 is a line scan from left to right, the order 1 is a line scan from right to left, and the order 2 is column by column from top to bottom. Scan, sequence 3 is a column-by-column scan from bottom to top.
  • the relative positions of the coded block group and the decoded coded block group may have sixteen cases as shown in FIG. 5: 1. There is no coded block group adjacent to the decoding; 2.
  • the upper code block group is decoded;
  • the code block group on the right has been decoded; 4, the lower code block group has been decoded; 5, the left code block group has been decoded; 6, the upper and right code block groups have been decoded; 7, below and on the right
  • the coded block group has been decoded; 8, the left and lower coded block groups have been decoded; 9, the left and upper coded block groups have been decoded; 10, the upper and lower coded block groups have been decoded; 11, left and right
  • the coding block group of the side is decoded; 12, the coding block group of the upper, lower and left sides has been decoded; 13, the coding block group of the left, right and upper three sides has been decoded; 14, the upper, lower and right sides are The coded block group has been decoded; 15, the coded block groups of the left, right, and lower three sides have been decoded; 16, the coded block groups of the upper, lower, left, and right sides have been decoded.
  • the decoding end may further pre-configure the correspondence between the above four processing orders and the relative positional relationship in the foregoing 16, for example, the relative positional relationship 1 corresponds to the sequence 0, the relative positional relationship 2 corresponds to the sequence 3, and the relative positional relationship 3 Corresponds to order 2, and so on.
  • the current coding block group selects a corresponding one from the above sixteen cases, and then determines the processing order of the coding blocks in the current coding block group. And then encoding the current encoding block group according to the given encoding block processing order The block performs a decoding operation.
  • determining a processing order of the plurality of coding blocks included in the coding block group according to the first processing order including: determining, according to the first processing order, the processed block group and the processed block adjacent to the coding block group. And encoding a relative positional relationship of the block group; and determining a processing order of the plurality of coding blocks included in the coding block group according to a preset correspondence between the plurality of candidate processing orders and the plurality of positional relationships, and the plurality of positional relationships are A plurality of relative positional relationships of the currently processed coded block group and the processed coded block group adjacent to the currently processed coded block group.
  • the plurality of candidate processing orders of the coding block, and the correspondence between the plurality of candidate processing orders and the plurality of positional relationships may be preset.
  • the processing order corresponding to the coding blocks of the currently processed coding block group may be directly determined according to the preset correspondence relationship, where multiple candidate processing orders and The corresponding relationship is similar to the above embodiment, and details are not described herein again.
  • step 201 includes: decoding an index of the arranged plurality of coding block groups from the code stream; determining a first processing order according to an arrangement order of the indexes of the plurality of coding block groups; or from the code stream Decoding the coordinates of the plurality of coded block groups that are arranged; determining the first processing order according to the order of the coordinates of the plurality of coded block groups.
  • the processing sequence may be written into the code stream by using an index or a coordinate, etc., so that the decoding end can directly obtain the encoding time block group when encoding. Coding order. Specifically, there are two ways:
  • One way is to assign an index number to the coded block group in the coded picture from left to right from top to bottom, for example from 0 to N-1.
  • the N index numbers are written to the code stream according to the calculated optimal processing order.
  • Another way is to assign the horizontal and vertical values to the coded block group from left to right, for example (x, y) to represent the coded block.
  • N w*h
  • x and y have a value range of 0 ⁇ x ⁇ w-1. 0 ⁇ y ⁇ h-1.
  • the N sets of coordinates may be encoded according to the calculated optimal processing order.
  • the N pieces of abscissa values and the N pieces may be independently coded in sequence using a code method similar to Pulse Code Modulation (PCM).
  • PCM Pulse Code Modulation
  • the ordinate value can also be similar to differential pulse code modulation (Differential Pulse Code) Modulation, DPCM) encodes the N abscissa values and the N ordinate values.
  • the decoding end can learn the processing order of the coding block group according to the information written by the encoding end to the code stream in the above two manners.
  • the embodiment of the present invention determines a processing order of coding blocks in each coding block group according to a first processing order determined by an encoding end that enables the total coding cost to be minimized, and encodes according to the first processing order and each coding block group.
  • the processing order of the block decodes the code stream of the target image, and the spatial correlation of the target image is fully utilized in the encoding process, thereby improving the compression efficiency in encoding.
  • Figure 3 is a diagram showing the processing sequence of a coding block according to an embodiment of the present invention.
  • 4 is a schematic diagram of a processing sequence of a coding block according to another embodiment of the present invention.
  • processing order of the coding block group in the embodiment of the present invention may be an arbitrary order.
  • the foregoing embodiment in FIG. 2 details the determination or selection of the processing order of the coding block group, and details are not described herein again.
  • the processing order of all the coding blocks in the coding block group may be selected from a plurality of candidate processing orders set in advance.
  • four Z-scan processing orders as shown in FIG. 3 may be preset, and the processing order of four progressive scans as shown in FIG. 4 may be preset.
  • 3 and FIG. 4 are merely for convenience of description. Actually, any number of processing orders may be preset, and the processing order may be arbitrary and hopping, which is not limited by the present invention.
  • the four processing orders shown in FIG. 3 can be selected as the preset encoding block processing order. If the coding block sizes in the coding block group are the same, similar to the size of the SMB in the MB as in H.264/AVC, the processing order of the four progressive scans shown in FIG. 4 can be selected as the preset coding block. Processing order. Wherein the numbers on the coded blocks represent the processing order of the corresponding coded blocks.
  • FIG. 5 is a schematic diagram showing a correspondence relationship between a candidate processing order of a coding block and various positional relationships according to an embodiment of the present invention.
  • the encoding end may preset a correspondence between a plurality of processing orders of the encoding blocks in the encoding block group and a relative position of the encoding block group and the encoded encoding block group.
  • the processing order of four kinds of coding blocks may be preset, the order 0 is a left-to-right progressive scan, the order 1 is a right-to-left progressive scan, the order 2 is a column-by-column scan from top to bottom, and the order 3 is Scan column by column from bottom to top.
  • the relative positions of the coded block group and the coded code block group may be preset to sixteen relative positions as shown in FIG. 5: 1, adjacent coded block groups are not encoded; 2.
  • the upper code block group has been Coding; 3, the coding block group on the right side is encoded; 4, the coding block group on the lower side is encoded; 5, the coding block group on the left side is encoded; 6, on The square and right coding block groups are encoded; 7, the lower and right coding block groups are encoded; 8, the left and lower coding block groups are encoded; 9, the left and upper coding block groups are encoded; 10, the upper and lower coding block groups are encoded; 11, the left and right coding block groups are encoded; 12, the upper, lower, left three coding block groups are encoded; 13, left, right, top three The coding block group of the side is coded; 14, the coding block group of the upper, lower and right sides is coded; 15, the coding block group of the left, right and lower sides is coded; 16, the coding block group of the upper, lower, left and right sides Coded.
  • the encoding end may further pre-configure the correspondence between the above four processing orders and the relative positional relationship in the above 16 .
  • the relative positional relationship 1 corresponds to the sequence 0
  • the relative positional relationship 2 corresponds to the sequence 3
  • the relative positional relationship 3 corresponds to Order 2, and so on.
  • the current coding block group selects a corresponding one from the above sixteen cases, and then determines the processing order of the coding blocks in the current coding block group. Then, the coding block in the current coding block group is subjected to an encoding operation in accordance with a given coding block processing order, and the coding cost is calculated. For example, processing to the current coding block group according to the first processing order, firstly determining that the coding block group on the left side and the right side of the current coding block group has been coded, and determining the current coding block as the position according to the relative positional relationship in FIG.
  • the processing order of the corresponding coding block is order 0, after which the coding end can scan the coding block in the current coding block group line by line from left to right according to the order 0, and perform coding, after the coding of all coding blocks is completed, according to the A coding order processes the next coded block group.
  • the determination of the coding block processing order utilizes the pixel values in the adjacent processed coded block group as much as possible to predict the pixel values within the current coded block group.
  • the spatial correlation of the coded image is fully considered, which contributes to the improvement of compression efficiency.
  • FIG. 6 is a flow chart of encoding at the encoding end according to an embodiment of the present invention.
  • the target image 601 is divided into a plurality of non-overlapping coding block groups, and the coding block group division method may depend on a codec standard.
  • the coding block group divided in HEVC may be a CTU, and the H.264/AVC is divided.
  • the coding block group can be MB or the like.
  • the division of the coding block group can also be preset and arbitrary.
  • the coding block group may further continue to be divided into a plurality of coding blocks capable of independently determining coding parameters.
  • the above coded block group or code block is a set of pixels. For example, if the size of the coding block is NxN, it means that the block is a two-dimensional pixel array whose horizontal and vertical directions are both N. The pixel size.
  • the encoding end performs a prediction operation on the encoded block to obtain a predicted value 602 of the pixel therein.
  • the prediction operation can be generally divided into an inter prediction 611 and an intra prediction 612.
  • the difference between the original value 603 of the encoded block pixel and the predicted value 602 of the encoded block pixel is further calculated.
  • the set of predicted difference values for the pixels in the coded block is referred to as the residual 604 of the coded block.
  • the residual 604 is transformed and quantized 613 to obtain a transformed quantized coefficient 605.
  • the transform quantization coefficient 605 is subjected to an entropy encoding 614 operation and the bit string of the entropy encoded output is written into the code stream.
  • the transformed quantized coefficients 605 after the transform and quantization 613 are subjected to inverse quantization and inverse transform 614 operations to obtain a reconstructed residual 606, and then the reconstructed residual 606 is added to the predicted value 602 of the current coded block to obtain the block.
  • the reconstruction 607 of the current block may be used to predict subsequent coded blocks, which may be the coded block to be processed in the current coded picture, or may be the coded block in the subsequent picture to be coded.
  • the encoding end may determine the processing order of the plurality of encoding block groups included in the target image 601 before performing predictive encoding on the target image 601. Specifically, when processing the encoding block group in different processing order, each coding block The encoding cost of the group may vary depending on the processing order, and therefore, the processing order capable of minimizing the total encoding cost of all the encoding block groups may be determined as the processing order of the encoding block group when actually encoding. For the specific determination method, reference may be made to the related steps in the foregoing embodiment of FIG. 1 and the formulas (1), (2), etc., and details are not described herein again.
  • the processing order of the coded blocks in each of the coded block groups can be determined. Specifically, the processing order of the current coded block group and its neighboring coded block group may be determined according to the processing order of the coded block group, thereby determining the processing order of the coded block in the current coded block group.
  • the coding block in the current coding block group may have multiple preset candidate processing orders, and each candidate processing order corresponds to a position relationship, which is the currently processed coding block group and the current processing. The relative positional relationship of the processed coded block groups adjacent to the coded block group.
  • the relative positional relationship between the current coded block group and the adjacent or similar coded code block group may be determined first, and then the corresponding position relationship is determined according to the determined relative position relationship.
  • the processing order of the coded blocks within the coded block group After the processing order of the coding block is determined, all coding blocks in the current coding block group are coded according to the processing order, and after processing, the next coding block group is processed according to the processing order of the coding block group, similar to the current coding block group. It is necessary to determine the processing order of the coding blocks in the next coding block group according to the relative positional relationship, and so on, until all the coding block groups of the target image are encoded in the processing order.
  • the "processing" described above may include prediction operations 611, 612, determining residual 604 and transform/quantization 613 operations, entropy coding 614 operations The inverse quantization/inverse transform 614 operation and the reconstruction 607 operation and the like.
  • the processing order of the coded block group may be written into the code stream, so that the decoding end performs decoding according to the order.
  • the method for identifying the specific processing order may refer to the corresponding method in FIG. 1 above, and no longer Narration.
  • the embodiment of the present invention determines a processing order of a plurality of coding block groups included in the target image according to a total coding cost of the target image, and encodes the plurality of coding block groups according to the processing order, so as to fully utilize the target image. Spatial correlation, thereby improving compression efficiency in encoding.
  • FIG. 7 is a flowchart of decoding of a decoding end according to an embodiment of the present invention.
  • the processing method of the decoding end corresponds to the encoding end. After the decoding end obtains the code stream output by the encoding end, the processing sequence of the encoding end when encoding the encoding block group can be obtained from the code stream. According to the processing order, the decoding end is capable of determining a relative positional relationship between the currently processed coded block group and the adjacent or similar decoded coded block group, thereby determining a corresponding code in the pre-configured correspondence according to the determined relative positional relationship. The processing order of the coded blocks within the block group.
  • the processing order of the coding block After the processing order of the coding block is determined, all the coding blocks in the current coding block group are decoded according to the processing order, and after processing, the next coding block group is processed according to the first processing order, similar to the current coding block group, and needs to be
  • the relative positional relationship determines the processing order of the encoded blocks in the next coded block group, and so on, until all coded block groups of the target image are decoded in the first processing order.
  • the "processing" of the above decoding end includes entropy decoding 711 the input code stream to obtain prediction mode information and transform quantization coefficient 701.
  • the decoder obtains the prediction of the current coded block using the prediction mode information and the reconstructed block or image, and the reconstructed residual 702 obtained by the inverse quantization/inverse transform 712, the reconstructed residual 702 and the predicted value of the current coded block 703.
  • the addition 704 of the coded block is obtained.
  • the encoding end writes the information of each coding block into the code stream according to the processing order of the determined coding block group and the processing order of the coding block in the coding block group, and correspondingly, the decoding end also sequentially decodes the decoded code in the above order.
  • the reconstructed block of the block is placed in the reconstructed image.
  • the embodiment of the present invention determines a processing order of a plurality of coding block groups included in the target image according to a total coding cost of the target image, and encodes the plurality of coding block groups according to the processing order, so as to fully utilize the target image. Spatial correlation, thereby improving compression efficiency in encoding.
  • FIG. 8 is a schematic block diagram of an encoder in accordance with one embodiment of the present invention.
  • the encoder 80 of FIG. 8 includes a determining unit 81 and an encoding unit 82.
  • the determining unit 81 determines a plurality of codes included in the target image according to the total encoding cost of the target image.
  • the first processing order of the block group The encoding unit 82 encodes the encoding block group in the plurality of encoding block groups to generate a code stream according to the first processing order determined by the determining unit 81; and the encoding unit 82 writes the first processing order determined by the determining unit 81 to the code stream.
  • the encoder 80 of the embodiment of the present invention determines a first processing order of the plurality of coding block groups included in the target image according to a total coding cost of the target image, and encodes the plurality of coding block groups according to the first processing order, Make full use of the spatial correlation in the target image to improve the compression efficiency in the encoding.
  • the target image in the embodiment of the present invention is an image to be encoded, which may also be referred to as a coded image.
  • the target image is divided into a plurality of non-overlapping coding block groups, which may be equivalent to the coding tree unit CTU in HEVC, or may be equivalent to the macroblock MB in H.264/AVC, and the like.
  • the coded block group may continue to be divided into a plurality of coded blocks capable of independently determining coding parameters, the coded block may be equivalent to the coding unit CU in HEVC, or may be equivalent to the sub-macroblock SMB in H.264/AVC, and the like.
  • the determining unit 81 is specifically configured to: determine a total coding cost corresponding to each processing order in all processing orders of the multiple coding block groups, where each processing order corresponds to a total coding cost of multiple A coding block is a sum of coding costs encoded in each processing order; determining a processing order corresponding to a minimum total coding cost of a total coding cost corresponding to each processing order is a first processing order.
  • the coding cost of each coded block group may vary with the order of processing.
  • the coding cost of a coded block group is an important criterion for measuring the quality of the block group.
  • the calculation of the coding cost takes into account both the number of bits used to encode the block and the quality of the block after reconstruction. The lower the value of the coding cost indicates the block. The better the coding. Therefore, the processing order that can minimize the total coding cost of all coded block groups can be used as the optimal processing order.
  • the problem of determining the optimal processing order can be translated into the problem of solving the minimum total coding cost:
  • N represents the total number of coded block groups
  • 1 ⁇ i ⁇ N represents an index indicating the coded block group in order from left to right and top to bottom.
  • O is a vector indicating the processing order of the coding block group, and each item of O is an arrangement of the coding block group index.
  • a total possible processing order N is a full arrangement N!
  • S j,k is a set including an index of processed j block groups, and k indicates that the processed j block groups are selected from the N block groups by j block groups The kth combination of possible combinations.
  • i represents one of the block groups that have not been encoded.
  • RD(S j,k ,i) represents the cost required to process the block group i in the case where all coded block groups in S j,k have been processed.
  • S N represents a set of all N coded block groups. Represents the optimal processing order of N coded block groups. The purpose of this optimization problem is to find a processing order Making the total cost of all N coded block groups The smallest.
  • the cost RD(S j,k ,i) of each coded block group needs to be calculated. After the cost RD(S j,k ,i) of a coded block group is obtained, the optimal processing order of the coded block group can be determined by the method described in the equation (5).
  • j, 1 ⁇ j ⁇ N-1 represents the number of coded block groups that have been processed.
  • S j,k is a set including the index of the processed j block groups in the case of the kth combination described above.
  • Cost function Represents the sum of the costs of all block groups in the set of coded block groups S j,k , ie using the optimal processing order The total cost required to process the j coded block groups contained in S j,k .
  • RD(S j,k ,i) represents the cost resulting from the encoding process of the block group i in the case where all the j block groups indicated by the k-th combination shown by S j,k have been processed.
  • the other coding block group is a block group with sequence number 3, a block group with sequence number 2, and a block group with sequence number 1.
  • the corresponding cost of encoding this block group is RD( ⁇ 1,2 ⁇ ,3), RD( ⁇ 1,3 ⁇ ,2), and RD( ⁇ 2,3 ⁇ ,1).
  • the minimum cost DP ( ⁇ 1, 2, 3 ⁇ , O ⁇ 1 , 2, 3 ⁇ ) of the three coding block groups of coding numbers 1, 2, and 3 can be calculated by the equations (6) and (3). Then, the optimal processing order O ⁇ 1, 2, 3 ⁇ is determined .
  • the coding unit is specifically configured to: according to the first processing order, determine, by the determining unit, a processing order of the multiple coding blocks included in the coding block group; according to the first processing order and the coding block group The processing order of the coding blocks encodes the coding block group.
  • the processing order of the coded blocks within the current coded block group may be determined according to the processing order of the coded block groups. That is to say, the processing order of the current coding block group and its adjacent coding block group may be determined according to the processing order of the coding block group, thereby determining the processing order of the coding blocks in the current coding block group.
  • the coding block in the current coding block group may have multiple preset candidate processing orders, and each candidate processing order corresponds to a position relationship, which is the currently processed coding block group and the current processing.
  • the relative positional relationship of the processed coded block groups adjacent to the coded block group may be determined first, and then the corresponding position relationship is determined according to the determined relative position relationship.
  • the processing order of the coded blocks within the coded block group may be determined first, and then the corresponding position relationship is determined according to the determined relative position relationship.
  • the processing order of the coding block After the processing order of the coding block is determined, all coding blocks in the current coding block group are encoded according to the processing order, and after processing, the next coding block group is processed according to the first processing order, similar to the current coding block group, and needs to be The relative positional relationship determines the processing order of the encoded blocks in the next coded block group, and so on, until all coded block groups of the target image are encoded in the first processing order.
  • the determining unit is further configured to: determine a plurality of candidate processing orders of the coding block; and determine a correspondence between the multiple candidate processing orders and the multiple location relationships, where the multiple location relationships are currently processed A plurality of relative positional relationships of the encoded block group and the processed coded block group adjacent to the currently processed coded block group.
  • the determining unit is further configured to: use a plurality of candidate processing orders of the preset coding block.
  • the plurality of candidate processing orders of the predetermined coding block may be determined using a plurality of methods, for example, according to the division manner of the coding blocks included in the coding block group.
  • the division manner of the coding block may include equal-size division, that is, the coding blocks in the coding block group have the same size, for example, H.264/AVC, etc., and the coding block division manner may further include non-equal size division, such as HEVC.
  • equal size division a plurality of candidate processing orders of a predetermined coding block may be as shown in FIG. 4, and in the case of non-equal size division, a plurality of candidate processing orders of a predetermined coding block may be as Figure 3 shows. It should be understood that the several processing orders shown in FIG. 3 and FIG. 4 are only some examples, and the processing order of the preset encoding blocks is not limited thereto, and may be any order.
  • the encoder 80 may preset the correspondence between the various processing orders of the coding blocks in the coding block group and the relative positions of the coded block groups and the coded coding block groups.
  • the processing order of the four coding blocks as shown in FIG. 4 may be preset, the order 0 is a left-to-right progressive scan, the order 1 is a right-to-left progressive scan, and the order 2 is from top to bottom.
  • Column scan, order 3 is a column-by-column scan from bottom to top.
  • the relative positions of the coded block group and the coded code block group may be sixteen as shown in FIG. 5: 1, the adjacent coded block group is not encoded; 2.
  • the upper code block group is coded; 3, right The coding block group on the side is encoded; 4, the code block group below is coded; 5, the code block group on the left is encoded; 6, the code block group on the top and the right is coded; 7, the code on the lower and right sides
  • the block group is encoded; 8, the left and bottom code block groups are encoded; 9, the left and top code block groups are encoded; 10, the upper and lower code block groups are coded; 11, left and right
  • the coding block group is coded; 12, the upper, lower, and left three coding block groups are encoded; 13, the left, right, and upper three coding block groups are encoded; 14, the upper, lower, and right three sides of the coding
  • the block group is encoded; 15, the coding block groups of the left, right, and lower sides are encoded; 16, the code block groups of the upper, lower, left, and right sides are encoded.
  • the encoder 80 can also pre-configure the correspondence between the above four processing orders and the relative positional relationship in the above 16 .
  • the relative positional relationship 1 corresponds to the sequence 0
  • the relative positional relationship 2 corresponds to the sequence 3
  • the relative positional relationship. 3 corresponds to order 2, and so on.
  • the current coding block group selects a corresponding one from the above sixteen cases, and then determines the processing order of the coding blocks in the current coding block group. Then, the coding block in the current coding block group is subjected to an encoding operation in accordance with a given coding block processing order, and the coding cost is calculated.
  • the determination of the coding block processing order utilizes the pixel values in the adjacent processed coded block group as much as possible to predict the pixel values within the current coded block group.
  • the spatial correlation of the coded image is fully considered, which contributes to the improvement of compression efficiency.
  • the determining unit is specifically configured to: determine, according to the first processing order, a relative position relationship between the coded block group and the processed coded block group adjacent to the coded block group; and according to the correspondence relationship and the relative position The relationship determines the processing order of the plurality of coding blocks included in the coding block group.
  • the determining unit is specifically configured to: determine, according to the first processing order, a relative position relationship between the coded block group and the processed coded block group adjacent to the coded block group; and according to the preset multiple The correspondence between the candidate processing order and the plurality of positional relationships and the relative positional relationship determine a processing order of the plurality of coding blocks included in the coding block group, wherein the plurality of positional relationships are the currently processed coding block group and the currently processed coding block group Multiple relative positional relationships of adjacent processed coded block groups.
  • the plurality of candidate processing orders of the coding block, and the correspondence between the plurality of candidate processing orders and the plurality of positional relationships may be preset.
  • the encoder 80 can directly determine the corresponding correspondence according to the preset relationship.
  • the processing order corresponding to the coded block of the currently processed coded block group is determined, and the multiple candidate processing order and the corresponding relationship are similar to those of the foregoing embodiment, and details are not described herein again.
  • the coding unit is specifically configured to: arrange an index of the coding block group according to the first processing order; encode an index of the aligned coding block group and write the code stream; or arrange the coding according to the first processing order The coordinates of the block group; encode the coordinates of the aligned code block group and write to the code stream.
  • the processing order of the coding block group may be written into the code stream in an index or coordinate manner, so that the decoding end can directly obtain the coding order of the coding block group at the time of encoding when performing decoding.
  • the processing order may be written into the code stream in an index or coordinate manner, so that the decoding end can directly obtain the coding order of the coding block group at the time of encoding when performing decoding.
  • One way is to assign an index number to the coded block group in the coded picture from left to right from top to bottom, for example from 0 to N-1.
  • the N index numbers are written to the code stream according to the calculated optimal processing order.
  • Another way is to assign the horizontal and vertical values to the coded block group from left to right, for example (x, y) to represent the coded block.
  • N w*h
  • x and y have a value range of 0 ⁇ x ⁇ w-1. 0 ⁇ y ⁇ h-1.
  • the N sets of coordinates may be encoded according to the calculated optimal processing order.
  • the N pieces of abscissa values and the N pieces may be independently coded in sequence using a code method similar to Pulse Code Modulation (PCM).
  • PCM Pulse Code Modulation
  • the ordinate value may also be encoded by a differential pulse code modulation (DPCM) encoding method and the N ordinate values.
  • DPCM differential pulse code modulation
  • the encoding result is output to the video code stream, so that the decoding end performs decoding according to the optimal processing order.
  • the coding cost of the coding block group includes at least one of the following: the number of bits consumed by the coding unit coding coding block group; and the distortion of the coding block group.
  • the coding cost of a coded block group is an important criterion for measuring the quality of the block group.
  • the calculation of the coding cost takes into account both the number of bits used to encode the block and the quality of the block after reconstruction. The lower the value of the coding cost indicates the block. The better the coding.
  • the first processing order of the coding block group included in the target image may be determined according to the method of the embodiment of the present invention, and the partial coding may be determined when determining the processing order of the coding block of the coding block group.
  • the processing order of the coding blocks of the block group, and the processing order of the coding blocks of the remaining coding block groups may be determined according to other technical solutions or pre-agreed.
  • the encoder 80 of the embodiment of the present invention determines a first processing order of the plurality of coding block groups included in the target image according to a total coding cost of the target image, and encodes the plurality of coding block groups according to the first processing order,
  • the spatial correlation in the target image can be fully utilized, thereby improving the compression efficiency in encoding.
  • FIG. 9 is a schematic block diagram of a decoder in accordance with one embodiment of the present invention.
  • the decoder 90 in FIG. 9 includes an acquisition unit 91, a determination unit 92, and a decoding unit 93.
  • the obtaining unit 91 acquires a first processing order of a plurality of encoding block groups of the target image from the code stream.
  • the determining unit 92 determines a processing order of the plurality of encoding blocks included in the encoding block group in the plurality of encoding block groups according to the first processing order.
  • the decoding unit 93 decodes the code stream according to the first processing order and the processing order of the plurality of encoding blocks included in the encoding block group.
  • the embodiment of the present invention determines the processing order of the coding blocks in each coding block group according to the first processing order determined by the encoding end that enables the total coding cost to be minimized, and is decoded by the decoder 90 according to the first processing order and each coding.
  • the processing order of the coding blocks in the block group decodes the code stream of the target image, and the spatial correlation of the target image is fully utilized in the encoding process, thereby improving the compression efficiency in encoding.
  • the determining unit 92 is further configured to: determine a plurality of candidate processing orders of the coding block; and determine a correspondence between the multiple candidate processing orders and the multiple location relationships, where the multiple location relationships are current processing A plurality of relative positional relationships of the processed coded block groups adjacent to the currently processed coded block group.
  • the decoder 90 determines the processing order of the coded blocks in the current coded block group according to the processing order of the coded block groups, using the same scheme as the code side.
  • the coding block in the current coding block group may have multiple preset candidate processing orders, and each candidate processing order corresponds to a position relationship, which is the currently processed coding block group and the current processing.
  • the relative positional relationship of the processed coded block groups adjacent to the coded block group When the current coded block group is decoded, the relative positional relationship between the current coded block group and the adjacent or similar decoded code block group may be determined, and then the corresponding position relationship is determined according to the determined relative position relationship.
  • the processing order of the coded blocks within the coded block group may be determined, and then the corresponding position relationship is determined according to the determined relative position relationship.
  • the processing order of the coding block After the processing order of the coding block is determined, all the coding blocks in the current coding block group are decoded according to the processing order, and after processing, the next coding block group is processed according to the first processing order, similar to the current coding block group, and needs to be
  • the relative positional relationship determines the processing order of the encoded blocks in the next coded block group, and so on, until all coded block groups of the target image are decoded in the first processing order.
  • the determining unit is specifically configured to: determine, according to the first processing order, a relative position relationship between the coded block group and the processed coded block group adjacent to the coded block group; and according to the correspondence relationship and the relative position The relationship determines the processing order of the plurality of coding blocks included in the coding block group.
  • the determining unit is specifically configured to: use multiple candidate processing orders of the preset coding block.
  • the plurality of candidate processing orders of the predetermined coding block may be determined using a plurality of methods, for example, according to the division manner of the coding blocks included in the coding block group.
  • the division manner of the coding block may include equal-size division, that is, the coding blocks in the coding block group have the same size, for example, H.264/AVC, etc., and the coding block division manner may further include non-equal size division, such as HEVC.
  • equal size division a plurality of candidate processing orders of a predetermined coding block may be as shown in FIG. 4, and in the case of non-equal size division, a plurality of candidate processing orders of a predetermined coding block may be as Figure 3 shows. It should be understood that the several processing orders shown in FIG. 3 and FIG. 4 are only some examples, and the processing order of the preset encoding blocks is not limited thereto, and may be any order.
  • the decoder 90 may preset the correspondence between the various processing orders of the coding blocks in the coding block group and the relative positions of the coding block groups and the decoded coding block groups.
  • the processing order of the four kinds of coding blocks as shown in FIG. 4 is set in advance, the order 0 is a line scan from left to right, the order 1 is a line scan from right to left, and the order 2 is column by column from top to bottom. Scan, sequence 3 is a column-by-column scan from bottom to top.
  • the relative positions of the coded block group and the decoded coded block group may have sixteen cases as shown in FIG. 5: 1. There is no coded block group adjacent to the decoding; 2.
  • the upper code block group is decoded;
  • the code block group on the right has been decoded; 4, the lower code block group has been decoded; 5, the left code block group has been decoded; 6, the upper and right code block groups have been decoded; 7, below and on the right
  • the coded block group has been decoded; 8, the left and lower coded block groups have been decoded; 9, the left and upper coded block groups have been decoded; 10, the upper and lower coded block groups have been decoded; 11, left and right
  • the coding block group of the side is decoded; 12, the coding block group of the upper, lower and left sides has been decoded; 13, the coding block group of the left, right and upper three sides has been decoded; 14, the upper, lower and right sides are The coded block group has been decoded; 15, the coded block groups of the left, right, and lower three sides have been decoded; 16, the coded block groups of the upper, lower, left, and right sides have been decoded.
  • the decoder 90 may further pre-configure the correspondence between the above four processing orders and the relative positional relationship in the above 16 .
  • the relative positional relationship 1 corresponds to the sequence 0
  • the relative positional relationship 2 corresponds to the sequence 3
  • the relative positional relationship. 3 corresponds to order 2, and so on.
  • the current coding block group selects a corresponding one from the above sixteen cases, and then determines the processing order of the coding blocks in the current coding block group. And then encoding the current encoding block group according to the given encoding block processing order The block performs a decoding operation.
  • the determining unit is specifically configured to: determine, according to the first processing order, a relative position relationship between the coded block group and the processed coded block group adjacent to the coded block group; and according to the preset multiple The correspondence between the candidate processing order and the plurality of positional relationships and the relative positional relationship determine a processing order of the plurality of coding blocks included in the coding block group, wherein the plurality of positional relationships are the currently processed coding block group and the currently processed coding block group Multiple relative positional relationships of adjacent processed coded block groups.
  • the plurality of candidate processing orders of the coding block, and the correspondence between the plurality of candidate processing orders and the plurality of positional relationships may be preset.
  • the processing order corresponding to the coding blocks of the currently processed coding block group may be directly determined according to the preset correspondence relationship, where multiple candidate processing orders and The corresponding relationship is similar to the above embodiment, and details are not described herein again.
  • the acquiring unit 91 is specifically configured to: decode an index of the plurality of coded block groups that are arranged from the code stream; determine a first processing order according to an arrangement order of indexes of the plurality of coded block groups; or The coordinates of the plurality of coded block groups that are arranged are decoded from the code stream; the first processing order is determined according to the order of the coordinates of the plurality of coded block groups.
  • the encoding end may write the processing order into the code stream by using an index or a coordinate, etc., so that the decoder 90 can directly obtain the encoding time block group when performing decoding.
  • the coding order Specifically, there are two ways:
  • One way is to assign an index number to the coded block group in the coded picture from left to right from top to bottom, for example from 0 to N-1.
  • the N index numbers are written to the code stream according to the calculated optimal processing order.
  • Another way is to assign the horizontal and vertical values to the coded block group from left to right, for example (x, y) to represent the coded block.
  • N w*h
  • x and y have a value range of 0 ⁇ x ⁇ w-1. 0 ⁇ y ⁇ h-1.
  • the N sets of coordinates may be encoded according to the calculated optimal processing order.
  • the N pieces of abscissa values and the N pieces may be independently coded in sequence using a code method similar to Pulse Code Modulation (PCM).
  • PCM Pulse Code Modulation
  • the ordinate value can also be similar to differential pulse code modulation (Differential Pulse Code) Modulation, DPCM) encodes the N abscissa values and the N ordinate values.
  • the decoder 90 can learn the processing order of the coded block group according to the information written by the code side of the code stream in the above two manners.
  • the embodiment of the present invention determines the processing order of the coding blocks in each coding block group according to the first processing order determined by the encoding end that enables the total coding cost to be minimized, and is decoded by the decoder 90 according to the first processing order and each coding.
  • the processing order of the coding blocks in the block group decodes the code stream of the target image, and the spatial correlation of the target image is fully utilized in the encoding process, thereby improving the compression efficiency in encoding.
  • FIG. 10 is a schematic block diagram of an encoder in accordance with another embodiment of the present invention.
  • the encoder 100 of FIG. 10 includes a processor 101 and a memory 102.
  • the processor 101 and the memory 102 are connected by a bus system 103.
  • the memory 102 is configured to store an instruction that causes the processor 101 to: determine a first processing order of the plurality of encoding block groups included in the target image according to a total encoding cost of the target image; to the plurality of encoding block groups according to the first processing order
  • the coded block group is encoded to generate a code stream; and the first process order is written to the code stream.
  • the encoder 100 of the embodiment of the present invention determines a first processing order of a plurality of coding block groups included in the target image according to a total coding cost of the target image, and encodes the plurality of coding block groups according to the first processing order, Make full use of the spatial correlation in the target image to improve the compression efficiency in the encoding.
  • the target image in the embodiment of the present invention is an image to be encoded, which may also be referred to as a coded image.
  • the target image is divided into a plurality of non-overlapping coding block groups, which may be equivalent to the coding tree unit CTU in HEVC, or may be equivalent to the macroblock MB in H.264/AVC, and the like.
  • the coded block group may continue to be divided into a plurality of coded blocks capable of independently determining coding parameters, the coded block may be equivalent to the coding unit CU in HEVC, or may be equivalent to the sub-macroblock SMB in H.264/AVC, and the like.
  • the encoder 100 may further include a transmitting circuit 104 and the like.
  • the processor 101 controls the operation of the encoder 100, which may also be referred to as a CPU (Central Processing Unit).
  • Memory 102 can include read only memory and random access memory and provides instructions and data to processor 101.
  • a portion of the memory 102 may also include non-volatile random access memory (NVRAM).
  • the various components of the encoder 100 are coupled together by a bus system 103, which may include a power bus, a control bus, and a bus in addition to the data bus. State signal bus, etc. However, for clarity of description, various buses are labeled as the bus system 103 in the figure.
  • Processor 101 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method may be completed by an integrated logic circuit of hardware in the processor 101 or an instruction in a form of software.
  • the processor 101 described above may be a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), an off-the-shelf programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, or discrete hardware. Component.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA off-the-shelf programmable gate array
  • the methods, steps, and logical block diagrams disclosed in the embodiments of the present invention may be implemented or carried out.
  • the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
  • the steps of the method disclosed in the embodiments of the present invention may be directly implemented by the hardware decoding processor, or may be performed by a combination of hardware and software modules in the decoding processor.
  • the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
  • the storage medium is located in the memory 102, and the processor 101 reads the information in the memory 102 and performs the steps of the above method in combination with its hardware.
  • determining, by the total coding cost of the target image, a first processing order of the plurality of coding block groups included in the target image including: determining, in each processing order of the multiple coding block groups, corresponding to each processing order The total coding cost, where the total coding cost corresponding to each processing order is the sum of the coding costs of the plurality of coding block groups encoded in each processing order; determining the minimum total coding cost of the total coding cost corresponding to each processing order The corresponding processing order is the first processing order.
  • encoding the coded block group in the plurality of coding block groups according to the first processing order to generate the code stream including: determining, according to the first processing order, the plurality of coding blocks included in the coding block group. Processing order; encoding the block group according to the first processing order and the processing order of the plurality of coding blocks included in the coding block group.
  • the method before determining, according to the first processing order, a processing order of the plurality of coding blocks included in the coding block group, the method further includes: determining a plurality of candidate processing orders of the coding block; and determining a plurality of candidate processing orders and A correspondence of a plurality of positional relationships, wherein the plurality of positional relationships are a plurality of relative positional relationships of the currently processed coded block group and the processed coded block group adjacent to the currently processed coded block group.
  • the processing order of the coding block includes: determining, according to the first processing order, a relative positional relationship between the coded block group and the processed coded block group adjacent to the coded block group; and determining, according to the correspondence relationship and the relative positional relationship, the coded block group The processing order of multiple coded blocks.
  • determining a plurality of candidate processing orders of the coding block includes: using a plurality of candidate processing orders of the preset coding block.
  • determining a processing order of the plurality of coding blocks included in the coding block group according to the first processing order including: determining, according to the first processing order, the processed block group and the processed block adjacent to the coding block group. And encoding a relative positional relationship of the block group; and determining a processing order of the plurality of coding blocks included in the coding block group according to a preset correspondence between the plurality of candidate processing orders and the plurality of positional relationships, and the plurality of positional relationships are A plurality of relative positional relationships of the currently processed coded block group and the processed coded block group adjacent to the currently processed coded block group.
  • the first processing order is written into the code stream, including: arranging the indexes of the coded block groups according to the first processing order; encoding the index of the aligned coded block groups and writing the code stream; or The first processing order arranges the coordinates of the encoded block group; encodes the coordinates of the arranged encoded block group and writes the code stream.
  • the coding cost of the coded block group includes at least one of the following: a number of bits consumed by the coded block group; and a distortion of the coded block group.
  • the encoder 100 of the embodiment of the present invention determines a first processing order of the plurality of coding block groups included in the target image according to a total coding cost of the target image, and encodes the plurality of coding block groups according to the first processing order,
  • the spatial correlation in the target image can be fully utilized, thereby improving the compression efficiency in encoding.
  • FIG. 11 is a schematic block diagram of a decoder in accordance with another embodiment of the present invention.
  • the decoder 110 of FIG. 11 includes a processor 111 and a memory 112.
  • the processor 111 and the memory 112 are connected by a bus system 113.
  • the memory 112 is configured to store an instruction causing the processor 111 to: obtain a first processing order of a plurality of encoding block groups of the target image from the code stream; and determine a coding block group in the plurality of encoding block groups according to the first processing order a processing order of the plurality of encoded blocks included; decoding the code stream according to a first processing order and a processing order of the plurality of encoding blocks included in the encoding block group.
  • the embodiment of the present invention determines the processing order of the coding blocks in each coding block group according to the first processing order determined by the encoding end to minimize the total coding cost, and is determined by the decoder 110 according to the first processing order and each coding.
  • the processing order of the coded blocks in the block group solves the code stream of the target image In the code, the spatial correlation of the target image is fully utilized in the encoding process, thereby improving the compression efficiency in the encoding.
  • the decoder 110 may further include a transmitting circuit 114 and the like.
  • the processor 111 controls the operation of the decoder 110, which may also be referred to as a CPU (Central Processing Unit).
  • Memory 112 can include read only memory and random access memory and provides instructions and data to processor 111. A portion of the memory 112 may also include non-volatile random access memory (NVRAM).
  • NVRAM non-volatile random access memory
  • the various components of the decoder 110 are coupled together by a bus system 113, which may include, in addition to the data bus, a power bus, a control bus, a status signal bus, and the like. However, for clarity of description, various buses are labeled as the bus system 113 in the figure.
  • the method disclosed in the foregoing embodiments of the present invention may be applied to the processor 111 or implemented by the processor 111.
  • the processor 111 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method may be completed by an integrated logic circuit of hardware in the processor 111 or an instruction in a form of software.
  • the processor 111 described above may be a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), an off-the-shelf programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, or discrete hardware. Component.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA off-the-shelf programmable gate array
  • the methods, steps, and logical block diagrams disclosed in the embodiments of the present invention may be implemented or carried out.
  • the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
  • the steps of the method disclosed in the embodiments of the present invention may be directly implemented by the hardware decoding processor, or may be performed by a combination of hardware and software modules in the decoding processor.
  • the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
  • the storage medium is located in the memory 112, and the processor 111 reads the information in the memory 112 and performs the steps of the above method in combination with its hardware.
  • the method before determining a processing order of the plurality of coding blocks included in the coding block group in the plurality of coding block groups according to the first processing order, the method further includes: determining a plurality of candidate processing orders of the coding block; and Determining a correspondence between a plurality of candidate processing orders and a plurality of positional relationships, wherein the plurality of positional relationships are multiple relative positional relationships of the currently processed coding block group and the processed coding block group adjacent to the currently processed coding block group.
  • determining a processing order of the multiple coding blocks included in the coding block group in the multiple coding block group according to the first processing order including: determining the coding block group and the coding block according to the first processing order.
  • the relative positional relationship of the group of processed coded block groups adjacent to each other; The system and the relative positional relationship determine the processing order of the plurality of coding blocks included in the coding block group.
  • determining a plurality of candidate processing orders of the coding block includes: using a plurality of candidate processing orders of the preset coding block.
  • determining a processing order of the plurality of coding blocks included in the coding block group according to the first processing order including: determining, according to the first processing order, the processed block group and the processed block adjacent to the coding block group. And encoding a relative positional relationship of the block group; and determining a processing order of the plurality of coding blocks included in the coding block group according to a preset correspondence between the plurality of candidate processing orders and the plurality of positional relationships, and the plurality of positional relationships are A plurality of relative positional relationships of the currently processed coded block group and the processed coded block group adjacent to the currently processed coded block group.
  • acquiring, by the code stream, a first processing order of the plurality of coding block groups of the target image comprising: decoding an index of the plurality of coded block groups that are arranged from the code stream; The order of the indexes of the block groups determines the first processing order; or the coordinates of the plurality of coded block groups that are arranged are decoded from the code stream; the first processing order is determined according to the order of the coordinates of the plurality of coded block groups.
  • the embodiment of the present invention determines the processing order of the coding blocks in each coding block group according to the first processing order determined by the encoding end to minimize the total coding cost, and is determined by the decoder 110 according to the first processing order and each coding.
  • the processing order of the coding blocks in the block group decodes the code stream of the target image, and the spatial correlation of the target image is fully utilized in the encoding process, thereby improving the compression efficiency in encoding.
  • RAM random access memory
  • ROM read only memory
  • EEPROM electrically programmable ROM
  • EEPly erasable programmable ROM registers
  • hard disk removable disk
  • CD-ROM computer-readable media

Landscapes

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

Abstract

一种编解码方法和装置,能够充分利用视频信息中的空间相关性,从而提高编解码中的压缩效率。该方法包括:根据目标图像的总编码代价确定该目标图像包含的多个编码块组的第一处理次序;根据该第一处理次序对该多个编码块组中的编码块组进行编码以生成码流;并且将该第一处理次序写入该码流。根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的第一处理次序,并根据第一处理次序对该多个编码块组进行编解码,能够充分利用视频信息中的空间相关性,从而提高编解码中的压缩效率。

Description

编解码方法和装置
本申请要求于2014年2月18日提交中国专利局、申请号为CN201410054130.3、发明名称为“编解码方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及图像处理领域,并且更具体地,涉及编解码方法和装置。
背景技术
视频压缩编码技术在多媒体服务、广播通信、视频通信、存储等领域都有广泛应用。由国际电信联盟电信标准化组(International Telecommunication Union-Telecommunication standardization sector,ITU-T)和国际标准化组织(International Organization for Standardization,ISO)/国际电工委员会(International Electrotechnical Commission,IEC)联合开发的H.264和先进视频编码(Advanced Video Coding,AVC)标准是现今应用最广泛的视频编码标准,然而H.264/AVC不适用于高分辨率视频的压缩编码。随着人们对高清、超高清以及3D视频的需求不断增大,视频编码联合工作组(Joint Collaborative Team on Video Coding,JCT-VC)提出了高效视频编码标准(High Efficiency Video Coding,HEVC),其压缩效率相对于H.264/AVC提高了大约50%。
在HEVC标准中,待编码图像被划分为不重叠的图像块,编码器按行扫描依次处理每一个图像块,上述图像块可以进一步划分为多个子块,而每个子块可独立确定其编码参数。在HEVC惯用术语中,上述不重叠的图像块被称为编码树单元(Coding Tree Unit,CTU),其大小一般设置为64x64像素。可采用一种四叉树的结构将CTU进一步划分为多个所述子块,在HEVC中通常称作编码单元(Coding Unit,CU)。一个CTU内部的CU以Z字形扫描的顺序编码,一帧内的所有CTU以行扫描的顺序编码。HEVC中的帧内预测模式包括直流预测,平面预测和角度预测,待编码块使用左面和上面已重建的编码块块作为参考进行预测,已重建块中用来进行预测的像素称为参考像素。直流预测适用于图像中纹理平坦区域的块,块中所有像素使用参考像 素的平均值作为预测值。平面预测使用参考像素进行双线性插值得到块中所有像素的预测值,因此适用于纹理平滑变化的块。角度预测利用当前编码块包含的纹理与邻近已重建块高度相关的特性,沿某一角度以复制对应参考像素的值作为当前块中的像素的预测值。
在H.264/AVC标准中,编码块被称为宏块(Macro Block,MB),宏块的大小固定为16×16像素,每个宏块只能划分为4×4、8×8或16×16的子宏块(Sub Macro Block,SMB)进行预测编码。其中,MB和SMB分别对应于HEVC中的CTU和CU。MB的编码顺序与CTU相类似,都是以行扫描的顺序编码,SMB的编码顺序也是Z字形逐行扫描。H.264/AVC中帧内预测也是采用均值预测和角度预测,但最多只有9种预测模式。
也就是说,在传统的视频编码标准编码一幅图像时,先将待编码图像划分为不重叠的编码块,然后以固定的顺序(行扫描顺序)依次编码每一块,从而编码压缩效率较低。
发明内容
本发明实施例提供一种编解码方法和装置,能够充分利用视频信息中的空间相关性,从而提高编解码中的压缩效率。
第一方面,提供了一种编码方法,包括:根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的第一处理次序;根据所述第一处理次序对所述多个编码块组中的编码块组进行编码以生成码流;并且将所述第一处理次序写入所述码流。
结合第一方面,在第一方面的第一种实现方式中,根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的第一处理次序,包括:确定所述多个编码块组的所有处理次序中每种处理次序对应的总编码代价,其中所述每种处理次序对应的总编码代价为所述多个编码块组按照所述每种处理次序进行编码的编码代价之和;确定所述每种处理次序对应的总编码代价中的最小总编码代价对应的处理次序为所述第一处理次序。
结合第一方面及其上述实现方式,在第一方面的第二种实现方式中,所述根据所述第一处理次序对所述多个编码块组中的编码块组进行编码以生成码流,包括:根据所述第一处理次序确定所述编码块组包含的多个编码块的处理次序;根据所述第一处理次序和所述编码块组包含的多个编码块的处 理次序对所述编码块组进行编码。
结合第一方面及其上述实现方式,在第一方面的第三种实现方式中,所述根据所述第一处理次序确定所述编码块组包含的多个编码块的处理次序之前,还包括:确定编码块的多种候选处理次序;并且确定所述多种候选处理次序与多种位置关系的对应关系,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
结合第一方面及其上述实现方式,在第一方面的第四种实现方式中,所述根据所述第一处理次序确定所述编码块组包含的多个编码块的处理次序,包括:根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已处理的编码块组的相对位置关系;并且根据所述对应关系和所述相对位置关系确定所述编码块组包含的多个编码块的处理次序。
结合第一方面及其上述实现方式,在第一方面的第五种实现方式中,确定编码块的多种候选处理次序,包括:使用预先设定的编码块的多种候选处理次序。
结合第一方面及其上述实现方式,在第一方面的第六种实现方式中,所述根据所述第一处理次序确定所述编码块组包含的多个编码块的处理次序,包括:根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已处理的编码块组的相对位置关系;并且根据预设的多种候选处理次序与多种位置关系的对应关系和所述相对位置关系确定所述编码块组包含的多个编码块的处理次序,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
结合第一方面及其上述实现方式,在第一方面的第七种实现方式中,所述将所述第一处理次序写入所述码流,包括:根据所述第一处理次序排列所述编码块组的索引;编码经过排列的所述编码块组的索引并写入所述码流;或者根据所述第一处理次序排列所述编码块组的坐标;编码经过排列的所述编码块组的坐标并写入所述码流。
结合第一方面及其上述实现方式,在第一方面的第八种实现方式中,所述编码块组的编码代价包含以下至少一种:编码所述编码块组消耗的比特数;所述编码块组的失真。
第二方面,提供了一种解码方法,包括:从码流中获取目标图像的多个 编码块组的第一处理次序;根据所述第一处理次序确定所述多个编码块组中的编码块组包含的多个编码块的处理次序;根据所述第一处理次序和所述编码块组包含的多个编码块的处理次序解码所述码流。
结合第二方面,在第二方面的第一种实现方式中,所述根据所述第一处理次序确定所述多个编码块组中的编码块组包含的多个编码块的处理次序之前,还包括:确定编码块的多种候选处理次序;并且确定所述多种候选处理次序与多种位置关系的对应关系,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
结合第二方面及其上述实现方式,在第二方面的第二种实现方式中,所述根据所述第一处理次序确定所述多个编码块组中的编码块组包含的多个编码块的处理次序,包括:根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已处理的编码块组的相对位置关系;并且根据所述对应关系和所述相对位置关系确定所述编码块组包含的多个编码块的处理次序。
结合第二方面及其上述实现方式,在第二方面的第三种实现方式中,确定编码块的多种候选处理次序,包括:使用预先设定的编码块的多种候选处理次序。
结合第二方面及其上述实现方式,在第二方面的第四种实现方式中,根据第一处理次序确定编码块组包含的多个编码块的处理次序,包括:根据第一处理次序确定编码块组与和编码块组相邻的已处理的编码块组的相对位置关系;并且根据预设的多种候选处理次序与多种位置关系的对应关系和相对位置关系确定编码块组包含的多个编码块的处理次序,其中多种位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
结合第二方面及其上述实现方式,在第二方面的第五种实现方式中,所述从码流中获取目标图像的多个编码块组的第一处理次序,包括:从所述码流中解码经过排列的所述多个编码块组的索引;根据所述多个编码块组的索引的排列顺序确定所述第一处理次序;或者从所述码流中解码经过排列的所述多个编码块组的坐标;根据所述多个编码块组的坐标的排列顺序确定所述第一处理次序。
第三方面,提供了一种编码器,包括:确定单元,用于根据目标图像的 总编码代价确定所述目标图像包含的多个编码块组的第一处理次序;编码单元,用于根据所述确定单元确定的所述第一处理次序对所述多个编码块组中的编码块组进行编码以生成码流;并且所述编码单元还用于将所述确定单元确定的所述第一处理次序写入所述码流。
结合第三方面,在第三方面的第一种实现方式中,所述确定单元具体用于:确定所述多个编码块组的所有处理次序中每种处理次序对应的总编码代价,其中所述每种处理次序对应的总编码代价为所述多个编码块组按照所述每种处理次序进行编码的编码代价之和;确定所述每种处理次序对应的总编码代价中的最小总编码代价对应的处理次序为所述第一处理次序。
结合第三方面及其上述实现方式,在第三方面的第二种实现方式中,所述编码单元具体用于:根据所述第一处理次序,通过所述确定单元确定所述编码块组包含的多个编码块的处理次序;根据所述第一处理次序和所述编码块组包含的多个编码块的处理次序对所述编码块组进行编码。
结合第三方面及其上述实现方式,在第三方面的第三种实现方式中,所述确定单元还用于:确定编码块的多种候选处理次序;并且确定所述多种候选处理次序与多种位置关系的对应关系,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
结合第三方面及其上述实现方式,在第三方面的第四种实现方式中,所述确定单元具体用于:根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已处理的编码块组的相对位置关系;并且根据所述对应关系和所述相对位置关系确定所述编码块组包含的多个编码块的处理次序。
结合第三方面及其上述实现方式,在第三方面的第五种实现方式中,确定单元具体用于:使用预先设定的编码块的多种候选处理次序。
结合第三方面及其上述实现方式,在第三方面的第六种实现方式中,所述确定单元具体用于:根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已处理的编码块组的相对位置关系;并且根据预设的多种候选处理次序与多种位置关系的对应关系和所述相对位置关系确定所述编码块组包含的多个编码块的处理次序,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
结合第三方面及其上述实现方式,在第三方面的第七种实现方式中,所述编码单元具体用于:根据所述第一处理次序排列所述编码块组的索引;编码经过排列的所述编码块组的索引并写入所述码流;或者根据所述第一处理次序排列所述编码块组的坐标;编码经过排列的所述编码块组的坐标并写入所述码流
结合第三方面及其上述实现方式,在第三方面的第八种实现方式中,所述编码块组的编码代价包含以下至少一种:所述编码单元编码所述编码块组消耗的比特数;所述编码块组的失真。
第四方面,提供了一种解码器,包括:获取单元,用于从码流中获取目标图像的多个编码块组的第一处理次序;确定单元,用于根据所述第一处理次序确定所述多个编码块组中的编码块组包含的多个编码块的处理次序;解码单元,用于根据所述第一处理次序和所述编码块组包含的多个编码块的处理次序解码所述码流。
结合第四方面,在第四方面的第一种实现方式中,所述确定单元还用于:确定编码块的多种候选处理次序;并且确定所述多种候选处理次序与多种位置关系的对应关系,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
结合第四方面及其上述实现方式,在第四方面的第二种实现方式中,所述确定单元具体用于:根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已处理的编码块组的相对位置关系;并且根据所述对应关系和所述相对位置关系确定所述编码块组包含的多个编码块的处理次序。
结合第四方面及其上述实现方式,在第四方面的第三种实现方式中,,确定单元具体用于:使用预先设定的编码块的多种候选处理次序。
结合第四方面及其上述实现方式,在第四方面的第四种实现方式中,,确定单元具体用于:根据第一处理次序确定编码块组与和编码块组相邻的已处理的编码块组的相对位置关系;并且根据预设的多种候选处理次序与多种位置关系的对应关系和相对位置关系确定编码块组包含的多个编码块的处理次序,其中多种位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
结合第四方面及其上述实现方式,在第四方面的第五种实现方式中,所述获取单元具体用于:通过所述解码单元,从所述码流中解码经过排列的所 述多个编码块组的索引;通过所述确定单元,根据所述多个编码块组的索引的排列顺序确定所述第一处理次序;或者通过所述解码单元,从所述码流中解码经过排列的所述多个编码块组的坐标;通过所述确定单元,根据所述多个编码块组的坐标的排列顺序确定所述第一处理次序。
本发明实施例根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的第一处理次序,并根据第一处理次序对该多个编码块组进行编解码,能够充分利用视频信息中的空间相关性,从而提高编解码中的压缩效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的编码的方法的流程图。
图2是本发明一个实施例的解码的方法的流程图。
图3是本发明一个实施例的编码块的处理次序的示意图。
图4是本发明另一实施例的编码块的处理次序的示意图。
图5是本发明一个实施例的编码块的候选处理次序与多种位置关系的对应关系的示意图。
图6是本发明一个实施例的编码端的编码流程图。
图7是本发明一个实施例的解码端的解码流程图。
图8是本发明一个实施例的编码器的示意框图。
图9是本发明一个实施例的解码器的示意框图。
图10是本发明另一实施例的编码器的示意框图。
图11是本发明另一实施例的解码器的示意框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创 造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1是本发明一个实施例的编码的方法的流程图。
101,根据目标图像的总编码代价确定目标图像包含的多个编码块组的第一处理次序。
102,根据第一处理次序对多个编码块组中的编码块组进行编码以生成码流。
103,将第一处理次序写入码流。
本发明实施例根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的第一处理次序,并根据第一处理次序对该多个编码块组进行编码,能够充分利用目标图像中的空间相关性,从而提高编码中的压缩效率。
应理解,本发明实施例中的目标图像为待编码图像,也可以称为编码图像。目标图像被划分为多个不重叠的编码块组,该编码块组可以等同于HEVC中的编码树单元CTU,也可以等同于H.264/AVC中的宏块MB,等等。编码块组可以继续划分为能够独立确定编码参数的多个编码块,编码块可以等同于HEVC中的编码单元CU,也可以等同于H.264/AVC中的子宏块SMB,等等。
可选地,作为一个实施例,步骤101包括:确定多个编码块组的所有处理次序中每种处理次序对应的总编码代价,其中每种处理次序对应的总编码代价为多个编码块组按照每种处理次序进行编码的编码代价之和;确定每种处理次序对应的总编码代价中的最小总编码代价对应的处理次序为第一处理次序。
具体地,当以不同的处理次序处理编码块组时,每一编码块组的编码代价会随着处理次序的不同而改变。编码块组的编码代价是衡量编码该块组好坏的重要标准,编码代价的计算要同时考虑到编码该块消耗的比特数和该块重建后的质量,编码代价的值越低表明该块编码的越好。因此,能够使得所有编码块组的总编码代价最小的处理次序,可以作为最优的处理次序。因而,确定最优处理次序的问题可以转化为求解最小总编码代价的问题:
Figure PCTCN2015072089-appb-000001
其中,N表示总的编码块组的数量,1≤i≤N代表以从左到右从上到下顺序表示编码块组的索引。O为表示编码块组处理次序的向量,O的每一项为 编码块组索引的一种排列方式总共可能的处理次序为N的全排列N!,当O=[1,2,…,N]时表示的处理次序为传统行扫描处理次序。Sj,k是一个集合,包括已处理j个块组的索引,k表示所述已处理j个块组为从所述N个块组中选择j个块组的
Figure PCTCN2015072089-appb-000002
种可能组合中的第k种组合。i表示还未编码的块组中的一个。RD(Sj,k,i)表示在已处理Sj,k中所有编码块组的情况下,处理编码块组i所需的代价。SN表示所有N个编码块组的集合。
Figure PCTCN2015072089-appb-000003
表示N个编码块组的最优处理次序。该最优化问题的目的是找到一种处理次序
Figure PCTCN2015072089-appb-000004
使得所有N个编码块组总的代价
Figure PCTCN2015072089-appb-000005
最小。
求解
Figure PCTCN2015072089-appb-000006
需要计算每一编码块组的代价RD(Sj,k,i)。在求得一个编码块组的代价RD(Sj,k,i)后,可采用式(2)中描述的方法确定编码块组的最优处理次序。
Figure PCTCN2015072089-appb-000007
其中j,1≤j≤N-1表示已处理的编码块组的数量。
Figure PCTCN2015072089-appb-000008
表示已处理的j个块组的所有可能的组合中的第k个组合。Sj,k是一个集合,包括在上述第k个组合的情况下的已处理j个块组的索引。代价函数DP(Sj,k,OSj,k)表示编码块组集合Sj,k中所有块组的代价的和,即使用最优处理次序OSj,k处理Sj,k中包含的j个编码块组所需的总代价。RD(Sj,k,i)表示在Sj,k所示第k组合所示的j个块组均已处理完成的情况下,对块组i进行编码处理所导致的代价。
针对上述过程进行举例说明,有序号为1,2,3的三个编码块组待处理。当j=2时,Sj,k有三种可能情况,即Sj,k={1,2}、Sj,k={1,3}、和Sj,k={2,3},其最优编码次序为O{1,2}=1,2、O{1,3}=3,1、和O{2,3}=3,2,而与之对应的最优代价为DP({1,2},O{1,2})、DP({1,3},O{1,3})、和DP({2,3},O{2,3})。进一步考虑j=3时的情况,在Sj,k三种可能的情况下,另一个编码块组分别为序号为3的块组、序号为2的块组、和序号为1的块组,对应的编码这个块组所导致的代价分别为RD({1,2},3)、RD({1,3},2)、和RD({2,3},1)。此时,可以通过式(3)(3)计算得到编码序号为1、2、3这三个编码块组的最小代价DP({1,2,3},O{1,2,3}),随之确定最优处理次序O{1,2,3}
Figure PCTCN2015072089-appb-000009
可选地,作为一个实施例,步骤102包括:根据第一处理次序确定编码块组包含的多个编码块的处理次序;根据第一处理次序和编码块组包含的多个编码块的处理次序对编码块组进行编码。
具体地,在确定了编码块组的处理次序后,还需要确定编码块组中包含的编码块的处理次序。可以根据编码块组的处理次序确定当前编码块组内编码块的处理次序。也就是说,可根据编码块组的处理次序确定当前编码块组与其邻近编码块组先后处理次序,从而确定当前编码块组内编码块的处理次序。其中,当前编码块组内的编码块可以有多种预先设定的候选处理次序,每种候选处理次序都对应于一种位置关系,该位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的相对位置关系。在对当前编码块组进行编码时,可以先确定当前编码块组与相邻或相近的已编码的编码块组的相对位置关系,然后根据确定的相对位置关系在预先配置的对应关系中确定对应的编码块组内编码块的处理次序。在编码块的处理次序确定后,按照该处理次序对当前编码块组内的全部编码块进行编码,完成后按照第一处理次序处理下一个编码块组,与当前编码块组相类似,需要根据相对位置关系确定下一编码块组中编码块的处理次序,以此类推,直至目标图像的全部编码块组按照第一处理次序编码完毕。
可选地,作为一个实施例,根据第一处理次序确定编码块组中每个编码块组包含的多个编码块的处理次序之前,还包括:确定编码块的多种候选处理次序;并且确定多种候选处理次序与多种位置关系的对应关系,其中多种位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。可选地,作为一个实施例,确定编码块的多种候选处理次序,包括:使用预先设定的编码块的多种候选处理次序。预先设定的编码块的多种候选处理次序可以使用多种方法确定,例如根据编码块组包含的编码块的划分方式确定。其中编码块的划分方式可以包括等大小划分,即编码块组中编码块的大小相同,例如H.264/AVC等,编码块的划分方式还可以包括非等大小划分,例如HEVC等。在等大小划分的情况下,预先设定的编码块的多种候选处理次序可以如图4所示,在非等大小划分的情况下,预先设定的编码块的多种候选处理次序可以如图3所示。应理解,图3和图4所示出的几种处理次序仅仅为一些例子,预先设定的编码块的处理次序并不限于此,可以是任意次序。
举个例子进行说明,编码端可以预先设置编码块组内的编码块的多种处理次序与该编码块组与已编码的编码块组的相对位置的对应关系。例如,可以预先设定如图4所示的4种编码块的处理次序,次序0为从左到右逐行扫描,次序1为从右到左逐行扫描,次序2为从上到下逐列扫描,次序3为从下到上逐列扫描。而编码块组与已编码的编码块组的相对位置可以有如图5所示的十六种:1,相邻没有已编码的编码块组;2,上方的编码块组已编码;3,右侧的编码块组已编码;4,下方的编码块组已编码;5,左侧的编码块组已编码;6,上方和右侧的编码块组已编码;7,下方和右侧的编码块组已编码;8,左侧和下方的编码块组已编码;9,左侧和上方的编码块组已编码;10,上方和下方的编码块组已编码;11,左侧和右侧的编码块组已编码;12,上、下、左三侧的编码块组已编码;13,左、右、上三侧的编码块组已编码;14,上、下、右三侧的编码块组已编码;15,左、右、下三侧的编码块组已编码;16,上下左右四侧的编码块组已编码。
其中,编码端还可以预先配置上述4种处理次序与上述16中相对位置关系之间的对应关系,例如,相对位置关系1对应于次序0、相对位置关系2对应于次序3、相对位置关系3对应于次序2,等等。
由以上对应关系可知,当给定不同的编码块组处理次序时,当前编码块组从上述十六种情况中选择对应的一种情况,并随之确定当前编码块组中编码块的处理次序,接着按照给定的编码块处理次序对当前编码块组中的编码块进行编码操作,并计算编码代价。
这里,编码块处理次序的确定,尽可能地利用了邻近已处理编码块组中的像素值来预测当前编码块组内的像素值。比较充分地考虑了编码图像的空间相关性,有助于压缩效率的提升。
可选地,作为一个实施例,根据第一处理次序确定编码块组包含的多个编码块的处理次序,包括:根据第一处理次序确定编码块组与和编码块组相邻的已处理的编码块组的相对位置关系;并且根据预设的多种候选处理次序与多种位置关系的对应关系和相对位置关系确定编码块组包含的多个编码块的处理次序,其中多种位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
也就是说,编码块的多种候选处理次序,以及多种候选处理次序与多种位置关系的对应关系都可以是预先设置好的。编码端在确定当前处理的编码 块组中的编码块的处理次序时,可以直接根据预先设置好的对应关系确定当前处理的编码块组的编码块对应的处理次序,其中多种候选处理次序和对应关系与上述实施例相类似,此处不再赘述。
可选地,作为一个实施例,将第一处理次序写入码流,包括:根据第一处理次序排列编码块组的索引;编码经过排列的编码块组的索引并写入码流;或者根据第一处理次序排列编码块组的坐标;编码经过排列的编码块组的坐标并写入码流。
具体地,在编码块组的处理次序确定后,可以将该处理次序以索引或者坐标等方式写入码流,以便于解码端在进行解码时能够直接获取编码时编码块组的编码次序。具体地,可以有以下两种方式:
一种方式可以从左到右从上到下的行扫描方式为编码图像中的编码块组分配一个索引号,例如从0到N-1。按照计算得到的最优处理次序,将这N个索引号写入码流。
另一种方式可以从左到右从上到下的方式为编码块组分配横坐标值与纵坐标值,例如(x,y)来表示编码块。如果编码图像中横向和纵向分别有w和h个编码块组,则编码图像中共有N个编码块组,N=w*h,x与y的取值范围为0≤x≤w-1,0≤y≤h-1。可以按照计算得到的最优处理次序,对这N组坐标进行编码,例如,可采用类似于脉冲编码调制(Pulse Code Modulation,PCM)的编码方式依次独立编码这N个横坐标值与这N个纵坐标值,还可采用类似于差分脉冲编码调制(Differential Pulse Code Modulation,DPCM)的编码方式编码这N个横坐标值与这N个纵坐标值。
按上述方法对编码块组的最优处理次序O进行编码处理后,将编码结果输出到视频码流中,以便于解码端按照该最优处理次序进行解码。
可选地,作为一个实施例编码块组的编码代价包含以下至少一种:编码编码块组消耗的比特数;编码块组的失真。编码块组的编码代价是衡量编码该块组好坏的重要标准,编码代价的计算要同时考虑到编码该块消耗的比特数和该块重建后的质量,编码代价的值越低表明该块编码的越好。
应理解,在对目标图像进行编码时,可以按照本发明实施例的方法确定目标图像包含的编码块组的第一处理次序,在确定编码块组的编码块的处理次序时,可以确定部分编码块组的编码块的处理次序,其余编码块组的编码块的处理次序可以按照其它技术方案确定或者预先约定。
本发明实施例根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的第一处理次序,并根据第一处理次序对所述多个编码块组进行编码,能够充分利用目标图像中的空间相关性,从而提高编码中的压缩效率。
图2是本发明一个实施例的解码的方法的流程图。
201,从码流中获取目标图像的多个编码块组的第一处理次序。
202,根据第一处理次序确定多个编码块组中的编码块组包含的多个编码块的处理次序。
203,根据第一处理次序和编码块组包含的多个编码块的处理次序解码码流。
本发明实施例根据由编码端确定的能够使得总编码代价最小的第一处理次序,来确定每个编码块组中编码块的处理次序,并根据第一处理次序和每个编码块组中编码块的处理次序对目标图像的码流进行解码,编码过程中充分利用了目标图像的空间相关性,从而提高编码中的压缩效率。
可选地,作为一个实施例,根据第一处理次序确定多个编码块组中的编码块组包含的多个编码块的处理次序之前,还包括:确定编码块的多种候选处理次序;并且确定多种候选处理次序与多种位置关系的对应关系,其中多种位置关系为当前处理的编码块组与当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
为保证编解码匹配,解码端采用与编码端相同的方案根据编码块组的处理次序确定当前编码块组内编码块的处理次序。其中,当前编码块组内的编码块可以有多种预先设定的候选处理次序,每种候选处理次序都对应于一种位置关系,该位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的相对位置关系。在对当前编码块组进行解码时,可以先确定当前编码块组与相邻或相近的已解码的编码块组的相对位置关系,然后根据确定的相对位置关系在预先配置的对应关系中确定对应的编码块组内编码块的处理次序。在编码块的处理次序确定后,按照该处理次序对当前编码块组内的全部编码块进行解码,完成后按照第一处理次序处理下一个编码块组,与当前编码块组相类似,需要根据相对位置关系确定下一编码块组中编码块的处理次序,以此类推,直至目标图像的全部编码块组按照第一处理次序解码完毕。
可选地,作为一个实施例,根据第一处理次序确定多个编码块组中每个 编码块组的编码块的处理次序,包括:根据第一处理次序确定编码块组与和编码块组相邻的已处理的编码块组的相对位置关系;并且根据对应关系和相对位置关系确定编码块组包含的多个编码块的处理次序。可选地,作为一个实施例,确定编码块的多种候选处理次序,包括:使用预先设定的编码块的多种候选处理次序。预先设定的编码块的多种候选处理次序可以使用多种方法确定,例如根据编码块组包含的编码块的划分方式确定。其中编码块的划分方式可以包括等大小划分,即编码块组中编码块的大小相同,例如H.264/AVC等,编码块的划分方式还可以包括非等大小划分,例如HEVC等。在等大小划分的情况下,预先设定的编码块的多种候选处理次序可以如图4所示,在非等大小划分的情况下,预先设定的编码块的多种候选处理次序可以如图3所示。应理解,图3和图4所示出的几种处理次序仅仅为一些例子,预先设定的编码块的处理次序并不限于此,可以是任意次序。
举个例子进行说明,解码端可以预先设置编码块组内的编码块的多种处理次序与该编码块组与已解码的编码块组的相对位置的对应关系。例如,预先设定如图4所示的4种编码块的处理次序,次序0为从左到右逐行扫描,次序1为从右到左逐行扫描,次序2为从上到下逐列扫描,次序3为从下到上逐列扫描。而编码块组与已解码的编码块组的相对位置可以有如图5所示的十六种情况:1,相邻没有已解码的编码块组;2,上方的编码块组已解码;3,右侧的编码块组已解码;4,下方的编码块组已解码;5,左侧的编码块组已解码;6,上方和右侧的编码块组已解码;7,下方和右侧的编码块组已解码;8,左侧和下方的编码块组已解码;9,左侧和上方的编码块组已解码;10,上方和下方的编码块组已解码;11,左侧和右侧的编码块组已解码;12,上、下、左三侧的编码块组已解码;13,左、右、上三侧的编码块组已解码;14,上、下、右三侧的编码块组已解码;15,左、右、下三侧的编码块组已解码;16,上下左右四侧的编码块组已解码。
其中,解码端还可以预先配置上述4种处理次序与上述16中相对位置关系之间的对应关系,例如,相对位置关系1对应于次序0、相对位置关系2对应于次序3、相对位置关系3对应于次序2,等等。
由以上对应关系可知,当给定不同的编码块组处理次序时,当前编码块组从上述十六种情况中选择对应的一种情况,并随之确定当前编码块组中编码块的处理次序,接着按照给定的编码块处理次序对当前编码块组中的编码 块进行解码操作。
应理解,解码端的上述多种预设模式,以及对应关系与编码端预设的模式以及对应关系相同。
可选地,作为一个实施例,根据第一处理次序确定编码块组包含的多个编码块的处理次序,包括:根据第一处理次序确定编码块组与和编码块组相邻的已处理的编码块组的相对位置关系;并且根据预设的多种候选处理次序与多种位置关系的对应关系和相对位置关系确定编码块组包含的多个编码块的处理次序,其中多种位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
也就是说,编码块的多种候选处理次序,以及多种候选处理次序与多种位置关系的对应关系都可以是预先设置好的。编码端在确定当前处理的编码块组中的编码块的处理次序时,可以直接根据预先设置好的对应关系确定当前处理的编码块组的编码块对应的处理次序,其中多种候选处理次序和对应关系与上述实施例相类似,此处不再赘述。
可选地,作为一个实施例,步骤201包括:从码流中解码经过排列的多个编码块组的索引;根据多个编码块组的索引的排列顺序确定第一处理次序;或者从码流中解码经过排列的多个编码块组的坐标;根据多个编码块组的坐标的排列顺序确定第一处理次序。
具体地,编码端在确定了编码块组的处理次序确定后,可以将该处理次序以索引或者坐标等方式写入码流,以便于解码端在进行解码时能够直接获取编码时编码块组的编码次序。具体地,可以有以下两种方式:
一种方式可以从左到右从上到下的行扫描方式为编码图像中的编码块组分配一个索引号,例如从0到N-1。按照计算得到的最优处理次序,将这N个索引号写入码流。
另一种方式可以从左到右从上到下的方式为编码块组分配横坐标值与纵坐标值,例如(x,y)来表示编码块。如果编码图像中横向和纵向分别有w和h个编码块组,则编码图像中共有N个编码块组,N=w*h,x与y的取值范围为0≤x≤w-1,0≤y≤h-1。可以按照计算得到的最优处理次序,对这N组坐标进行编码,例如,可采用类似于脉冲编码调制(Pulse Code Modulation,PCM)的编码方式依次独立编码这N个横坐标值与这N个纵坐标值,还可采用类似于差分脉冲编码调制(Differential Pulse Code  Modulation,DPCM)的编码方式编码这N个横坐标值与这N个纵坐标值。
也就是说,相应地解码端可以按照上述两种方式根据编码端写入码流的信息获知编码块组的处理次序。
本发明实施例根据由编码端确定的能够使得总编码代价最小的第一处理次序,来确定每个编码块组中编码块的处理次序,并根据第一处理次序和每个编码块组中编码块的处理次序对目标图像的码流进行解码,编码过程中充分利用了目标图像的空间相关性,从而提高编码中的压缩效率。
图3是本发明一个实施例的编码块的处理次序的示意图。图4是本发明另一实施例的编码块的处理次序的示意图。
应理解,本发明实施例中编码块组的处理次序可以是任意的次序,上述图2中的实施例详细描述了编码块组处理次序的确定或选取,此处不再赘述。
编码块组中所有编码块的处理次序可以从预先设置的多个备选处理次序中选择其一。例如,可以预设如图3所示的四种Z扫描处理次序,也可以预设如图4所示的四种逐行扫描的处理次序。这里图3和图4仅仅为了方便举例描述,实际可以预设任意数量的处理次序,并且处理次序可以是任意的、跳跃的,本发明对此并不限定。
如果编码块组中编码块大小不同,类似于如HEVC中CTU中的CU可以取不同的大小,则不适合使用行扫描顺序来处理各个编码块。此时可选择图3所示的4种处理次序作为预设的编码块处理次序。如果编码块组中编码块大小相同,类似于如H.264/AVC中MB中的SMB的大小都相同,则可以选择图4所示的4种逐行扫描的处理次序作为预设的编码块处理次序。其中,编码块上的数字代表相应编码块的处理次序。
图5是本发明一个实施例的编码块的候选处理次序与多种位置关系的对应关系的示意图。
编码端可以预先设置编码块组内的编码块的多种处理次序与该编码块组与已编码的编码块组的相对位置的对应关系。例如,可以预先设定4种编码块的处理次序,次序0为从左到右逐行扫描,次序1为从右到左逐行扫描,次序2为从上到下逐列扫描,次序3为从下到上逐列扫描。而编码块组与已编码的编码块组的相对位置可以预设为如图5所示的十六种相对位置:1,相邻没有已编码的编码块组;2,上方的编码块组已编码;3,右侧的编码块组已编码;4,下方的编码块组已编码;5,左侧的编码块组已编码;6,上 方和右侧的编码块组已编码;7,下方和右侧的编码块组已编码;8,左侧和下方的编码块组已编码;9,左侧和上方的编码块组已编码;10,上方和下方的编码块组已编码;11,左侧和右侧的编码块组已编码;12,上、下、左三侧的编码块组已编码;13,左、右、上三侧的编码块组已编码;14,上、下、右三侧的编码块组已编码;15,左、右、下三侧的编码块组已编码;16,上下左右四侧的编码块组已编码。
编码端还可以预先配置上述4种处理次序与上述16中相对位置关系之间的对应关系,例如,相对位置关系1对应于次序0、相对位置关系2对应于次序3、相对位置关系3对应于次序2,等等。
应理解,图5所示的对应关系仅仅是为了方便举例描述,实际可以预设任意数量的处理次序以及相对位置关系,并且处理次序可以是任意的、跳跃的,本发明对此并不限定。
由以上对应关系可知,当给定不同的编码块组处理次序时,当前编码块组从上述十六种情况中选择对应的一种情况,并随之确定当前编码块组中编码块的处理次序,接着按照给定的编码块处理次序对当前编码块组中的编码块进行编码操作,并计算编码代价。例如,按照第一处理次序处理到当前编码块组,首先能够确定当前编码块组的左侧以及右侧的编码块组已经完成编码,根据图5中的相对位置关系可以确定当前编码块为位置关系11,其对应的编码块的处理次序为次序0,之后编码端可以按照次序0从左到右逐行扫描当前编码块组中的编码块,进行编码,待全部编码块编码完成后按照第一编码次序处理下一编码块组。
这里,编码块处理次序的确定,尽可能地利用了邻近已处理编码块组中的像素值来预测当前编码块组内的像素值。比较充分地考虑了编码图像的空间相关性,有助于压缩效率的提升。
图6是本发明一个实施例的编码端的编码流程图。
首先,目标图像601被划分为多个不重叠的编码块组,编码块组的划分方法可以取决于编解码标准,例如,HEVC中划分的编码块组可以为CTU,H.264/AVC中划分的编码块组可以为MB等。此外编码块组的划分也可以是预设的、任意的。进一步地,编码块组还可以继续划分为能够独立确定编码参数的多个编码块。上述编码块组或编码块为像素的集合。例如,若编码块的大小为NxN,则表示该块是一个二维像素阵列,其水平与竖直方向均为N 像素大小。
编码端对编码块进行预测操作获取其中像素的预测值602。其中,预测操作一般可以分为帧间预测611和帧内预测612。进一步计算编码块像素的原始值603与编码块像素的预测值602的差值。编码块中像素的预测差值的集合称为编码块的残差604。残差604经过变换、量化613得到变换量化系数605。最后对变换量化系数605进行熵编码614操作并将熵编码输出的比特串写入码流。与此同时,经过变换和量化613之后的变换量化系数605经过反量化、反变换614操作得到重建的残差606,然后将重建残差606与当前编码块的预测值602相加得到该块的重建607。当前块的重建607会被用于预测后续的编码块,所述后续编码块可以是当前编码图像中的待处理编码块,也可以是后续待编码图像中的编码块。
其中,编码端在对目标图像601进行预测编码之前,可以先确定目标图像601包含的多个编码块组的处理次序,具体地,当以不同的处理次序处理编码块组时,每一编码块组的编码代价会随着处理次序的不同而改变,因此,可以确定能够使得所有编码块组的总编码代价最小的处理次序作为实际进行编码时编码块组的处理次序。具体确定方法可以参照上述图1实施例中的相关步骤以及公式(1)、(2)等,此处不再赘述。
确定了编码块组的处理次序后,可以确定每一个编码块组中编码块的处理次序。具体地,可以根据编码块组的处理次序确定当前编码块组与其邻近编码块组先后处理次序,从而确定当前编码块组内编码块的处理次序。其中,当前编码块组内的编码块可以有多种预先设定的候选处理次序,每种候选处理次序都对应于一种位置关系,该位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的相对位置关系。在对当前编码块组进行编码时,可以先确定当前编码块组与相邻或相近的已编码的编码块组的相对位置关系,然后根据确定的相对位置关系在预先配置的对应关系中确定对应的编码块组内编码块的处理次序。在编码块的处理次序确定后,按照该处理次序对当前编码块组内的全部编码块进行编码,完成后按照编码块组的处理次序处理下一个编码块组,与当前编码块组相类似,需要根据相对位置关系确定下一编码块组中编码块的处理次序,以此类推,直至目标图像的全部编码块组按照处理次序编码完毕。其中,以上所述的“处理”可以包括预测操作611、612,确定残差604以及变换/量化613操作,熵编码614操 作,反量化/反变换614操作以及重建607操作等。
此外,生成码流时,可以将编码块组的处理次序写入码流,以便于解码端按照该次序进行解码,具体处理次序的标识方法可以参照上述图1中相应的方法,此处不再赘述。
本发明实施例根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的处理次序,并根据该处理次序对所述多个编码块组进行编码,能够充分利用目标图像中的空间相关性,从而提高编码中的压缩效率。
图7是本发明一个实施例的解码端的解码流程图。
解码端的处理方法与编码端相对应。解码端得到编码端编码输出的码流后,可以从码流中获取编码端在对编码块组进行编码时的处理次序。根据该处理次序,解码端能够确定当前处理的编码块组与相邻或相近的已解码的编码块组的相对位置关系,从而根据确定的相对位置关系在预先配置的对应关系中确定对应的编码块组内编码块的处理次序。在编码块的处理次序确定后,按照该处理次序对当前编码块组内的全部编码块进行解码,完成后按照第一处理次序处理下一个编码块组,与当前编码块组相类似,需要根据相对位置关系确定下一编码块组中编码块的处理次序,以此类推,直至目标图像的全部编码块组按照第一处理次序解码完毕。具体可以参照上述图2中的方法,此处不再赘述。应理解,上述解码端的“处理”包括对输入的码流进行熵解码711得到预测模式信息和变换量化系数701。解码器使用预测模式信息以及已经重建的块或图像得到当前编码块的预测,变换量化系数701经过反量化/反变换712得到的重建残差702,重建残差702与当前编码块的预测值703相加得到该编码块的重建704。其中,编码端按照确定的编码块组的处理次序以及编码块组中编码块的处理次序将每一个编码块的信息写入码流,对应的,解码端也按上述次序依次将解码得到的编码块的重建块放入重建图像中。
本发明实施例根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的处理次序,并根据该处理次序对所述多个编码块组进行编码,能够充分利用目标图像中的空间相关性,从而提高编码中的压缩效率。
图8是本发明一个实施例的编码器的示意框图。图8的编码器80包括确定单元81和编码单元82。
确定单元81根据目标图像的总编码代价确定目标图像包含的多个编码 块组的第一处理次序。编码单元82根据确定单元81确定的第一处理次序对多个编码块组中的编码块组进行编码以生成码流;并且编码单元82将确定单元81确定的第一处理次序写入码流。
本发明实施例的编码器80根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的第一处理次序,并根据第一处理次序对该多个编码块组进行编码,能够充分利用目标图像中的空间相关性,从而提高编码中的压缩效率。
应理解,本发明实施例中的目标图像为待编码图像,也可以称为编码图像。目标图像被划分为多个不重叠的编码块组,该编码块组可以等同于HEVC中的编码树单元CTU,也可以等同于H.264/AVC中的宏块MB,等等。编码块组可以继续划分为能够独立确定编码参数的多个编码块,编码块可以等同于HEVC中的编码单元CU,也可以等同于H.264/AVC中的子宏块SMB,等等。
可选地,作为一个实施例,确定单元81具体用于:确定多个编码块组的所有处理次序中每种处理次序对应的总编码代价,其中每种处理次序对应的总编码代价为多个编码块组按照每种处理次序进行编码的编码代价之和;确定每种处理次序对应的总编码代价中的最小总编码代价对应的处理次序为第一处理次序。
具体地,当以不同的处理次序处理编码块组时,每一编码块组的编码代价会随着处理次序的不同而改变。编码块组的编码代价是衡量编码该块组好坏的重要标准,编码代价的计算要同时考虑到编码该块消耗的比特数和该块重建后的质量,编码代价的值越低表明该块编码的越好。因此,能够使得所有编码块组的总编码代价最小的处理次序,可以作为最优的处理次序。因而,确定最优处理次序的问题可以转化为求解最小总编码代价的问题:
Figure PCTCN2015072089-appb-000010
其中,N表示总的编码块组的数量,1≤i≤N代表以从左到右从上到下顺序表示编码块组的索引。O为表示编码块组处理次序的向量,O的每一项为编码块组索引的一种排列方式总共可能的处理次序为N的全排列N!,当O=[1,2,…,N]时表示的处理次序为传统行扫描处理次序。Sj,k是一个集合,包括已处理j个块组的索引,k表示所述已处理j个块组为从所述N个块组中 选择j个块组的
Figure PCTCN2015072089-appb-000011
种可能组合中的第k种组合。i表示还未编码的块组中的一个。RD(Sj,k,i)表示在已处理Sj,k中所有编码块组的情况下,处理编码块组i所需的代价。SN表示所有N个编码块组的集合。
Figure PCTCN2015072089-appb-000012
表示N个编码块组的最优处理次序。该最优化问题的目的是找到一种处理次序
Figure PCTCN2015072089-appb-000013
使得所有N个编码块组总的代价
Figure PCTCN2015072089-appb-000014
最小。
求解
Figure PCTCN2015072089-appb-000015
需要计算每一编码块组的代价RD(Sj,k,i)。在求得一个编码块组的代价RD(Sj,k,i)后,可采用式(5)中描述的方法确定编码块组的最优处理次序。
Figure PCTCN2015072089-appb-000016
其中j,1≤j≤N-1表示已处理的编码块组的数量。
Figure PCTCN2015072089-appb-000017
表示已处理的j个块组的所有可能的组合中的第k个组合。Sj,k是一个集合,包括在上述第k个组合的情况下的已处理j个块组的索引。代价函数
Figure PCTCN2015072089-appb-000018
表示编码块组集合Sj,k中所有块组的代价的和,即使用最优处理次序
Figure PCTCN2015072089-appb-000019
处理Sj,k中包含的j个编码块组所需的总代价。RD(Sj,k,i)表示在Sj,k所示第k组合所示的j个块组均已处理完成的情况下,对块组i进行编码处理所导致的代价。
针对上述过程进行举例说明,有序号为1,2,3的三个编码块组待处理。当j=2时,Sj,k有三种可能情况,即Sj,k={1,2}、Sj,k={1,3}、和Sj,k={2,3},其最优编码次序为O{1,2}=1,2、O{1,3}=3,1、和O{2,3}=3,2,而与之对应的最优代价为DP({1,2},O{1,2})、DP({1,3},O{1,3})、和DP({2,3},O{2,3})。进一步考虑j=3时的情况,在Sj,k三种可能的情况下,另一个编码块组分别为序号为3的块组、序号为2的块组、和序号为1的块组,对应的编码这个块组所导致的代价分别为RD({1,2},3)、RD({1,3},2)、和RD({2,3},1)。此时,可以通过式(6)(3)计算得到编码序号为1、2、3这三个编码块组的最小代价DP({1,2,3},O{1,2,3}),随之确定最优处理次序O{1,2,3}
Figure PCTCN2015072089-appb-000020
可选地,作为一个实施例,编码单元具体用于:根据第一处理次序,通过确定单元确定编码块组包含的多个编码块的处理次序;根据第一处理次序和编码块组包含的多个编码块的处理次序对编码块组进行编码。
具体地,在确定了编码块组的处理次序后,还需要确定编码块组中包含的编码块的处理次序。可以根据编码块组的处理次序确定当前编码块组内编码块的处理次序。也就是说,可根据编码块组的处理次序确定当前编码块组与其邻近编码块组先后处理次序,从而确定当前编码块组内编码块的处理次序。其中,当前编码块组内的编码块可以有多种预先设定的候选处理次序,每种候选处理次序都对应于一种位置关系,该位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的相对位置关系。在对当前编码块组进行编码时,可以先确定当前编码块组与相邻或相近的已编码的编码块组的相对位置关系,然后根据确定的相对位置关系在预先配置的对应关系中确定对应的编码块组内编码块的处理次序。在编码块的处理次序确定后,按照该处理次序对当前编码块组内的全部编码块进行编码,完成后按照第一处理次序处理下一个编码块组,与当前编码块组相类似,需要根据相对位置关系确定下一编码块组中编码块的处理次序,以此类推,直至目标图像的全部编码块组按照第一处理次序编码完毕。
可选地,作为一个实施例,确定单元还用于:确定编码块的多种候选处理次序;并且确定多种候选处理次序与多种位置关系的对应关系,其中多种位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。可选地,作为一个实施例,确定单元还用于:使用预先设定的编码块的多种候选处理次序。预先设定的编码块的多种候选处理次序可以使用多种方法确定,例如根据编码块组包含的编码块的划分方式确定。其中编码块的划分方式可以包括等大小划分,即编码块组中编码块的大小相同,例如H.264/AVC等,编码块的划分方式还可以包括非等大小划分,例如HEVC等。在等大小划分的情况下,预先设定的编码块的多种候选处理次序可以如图4所示,在非等大小划分的情况下,预先设定的编码块的多种候选处理次序可以如图3所示。应理解,图3和图4所示出的几种处理次序仅仅为一些例子,预先设定的编码块的处理次序并不限于此,可以是任意次序。
举个例子进行说明,编码器80可以预先设置编码块组内的编码块的多种处理次序与该编码块组与已编码的编码块组的相对位置的对应关系。例如,可以预先设定如图4所示的4种编码块的处理次序,次序0为从左到右逐行扫描,次序1为从右到左逐行扫描,次序2为从上到下逐列扫描,次序 3为从下到上逐列扫描。而编码块组与已编码的编码块组的相对位置可以有如图5所示的十六种:1,相邻没有已编码的编码块组;2,上方的编码块组已编码;3,右侧的编码块组已编码;4,下方的编码块组已编码;5,左侧的编码块组已编码;6,上方和右侧的编码块组已编码;7,下方和右侧的编码块组已编码;8,左侧和下方的编码块组已编码;9,左侧和上方的编码块组已编码;10,上方和下方的编码块组已编码;11,左侧和右侧的编码块组已编码;12,上、下、左三侧的编码块组已编码;13,左、右、上三侧的编码块组已编码;14,上、下、右三侧的编码块组已编码;15,左、右、下三侧的编码块组已编码;16,上下左右四侧的编码块组已编码。
其中,编码器80还可以预先配置上述4种处理次序与上述16中相对位置关系之间的对应关系,例如,相对位置关系1对应于次序0、相对位置关系2对应于次序3、相对位置关系3对应于次序2,等等。
由以上对应关系可知,当给定不同的编码块组处理次序时,当前编码块组从上述十六种情况中选择对应的一种情况,并随之确定当前编码块组中编码块的处理次序,接着按照给定的编码块处理次序对当前编码块组中的编码块进行编码操作,并计算编码代价。
这里,编码块处理次序的确定,尽可能地利用了邻近已处理编码块组中的像素值来预测当前编码块组内的像素值。比较充分地考虑了编码图像的空间相关性,有助于压缩效率的提升。
可选地,作为一个实施例,确定单元具体用于:根据第一处理次序确定编码块组与和编码块组相邻的已处理的编码块组的相对位置关系;并且根据对应关系和相对位置关系确定编码块组包含的多个编码块的处理次序。
可选地,作为一个实施例,确定单元具体用于:根据第一处理次序确定编码块组与和编码块组相邻的已处理的编码块组的相对位置关系;并且根据预设的多种候选处理次序与多种位置关系的对应关系和相对位置关系确定编码块组包含的多个编码块的处理次序,其中多种位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
也就是说,编码块的多种候选处理次序,以及多种候选处理次序与多种位置关系的对应关系都可以是预先设置好的。编码器80在确定当前处理的编码块组中的编码块的处理次序时,可以直接根据预先设置好的对应关系确 定当前处理的编码块组的编码块对应的处理次序,其中多种候选处理次序和对应关系与上述实施例相类似,此处不再赘述。
可选地,作为一个实施例,编码单元具体用于:根据第一处理次序排列编码块组的索引;编码经过排列的编码块组的索引并写入码流;或者根据第一处理次序排列编码块组的坐标;编码经过排列的编码块组的坐标并写入码流。
具体地,在编码块组的处理次序确定后,可以将该处理次序以索引或者坐标等方式写入码流,以便于解码端在进行解码时能够直接获取编码时编码块组的编码次序。具体地,可以有以下两种方式:
一种方式可以从左到右从上到下的行扫描方式为编码图像中的编码块组分配一个索引号,例如从0到N-1。按照计算得到的最优处理次序,将这N个索引号写入码流。
另一种方式可以从左到右从上到下的方式为编码块组分配横坐标值与纵坐标值,例如(x,y)来表示编码块。如果编码图像中横向和纵向分别有w和h个编码块组,则编码图像中共有N个编码块组,N=w*h,x与y的取值范围为0≤x≤w-1,0≤y≤h-1。可以按照计算得到的最优处理次序,对这N组坐标进行编码,例如,可采用类似于脉冲编码调制(Pulse Code Modulation,PCM)的编码方式依次独立编码这N个横坐标值与这N个纵坐标值,还可采用类似于差分脉冲编码调制(Differential Pulse Code Modulation,DPCM)的编码方式编码这N个横坐标值与这N个纵坐标值。
按上述方法对编码块组的最优处理次序O进行编码处理后,将编码结果输出到视频码流中,以便于解码端按照该最优处理次序进行解码。
可选地,作为一个实施例,编码块组的编码代价包含以下至少一种:编码单元编码编码块组消耗的比特数;编码块组的失真。
编码块组的编码代价是衡量编码该块组好坏的重要标准,编码代价的计算要同时考虑到编码该块消耗的比特数和该块重建后的质量,编码代价的值越低表明该块编码的越好。
应理解,在对目标图像进行编码时,可以按照本发明实施例的方法确定目标图像包含的编码块组的第一处理次序,在确定编码块组的编码块的处理次序时,可以确定部分编码块组的编码块的处理次序,其余编码块组的编码块的处理次序可以按照其它技术方案确定或者预先约定。
本发明实施例的编码器80根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的第一处理次序,并根据第一处理次序对所述多个编码块组进行编码,能够充分利用目标图像中的空间相关性,从而提高编码中的压缩效率。
图9是本发明一个实施例的解码器的示意框图。图9中的解码器90包括获取单元91、确定单元92和解码单元93。
获取单元91从码流中获取目标图像的多个编码块组的第一处理次序。确定单元92根据第一处理次序确定多个编码块组中的编码块组包含的多个编码块的处理次序。解码单元93根据第一处理次序和编码块组包含的多个编码块的处理次序解码码流。
本发明实施例根据由编码端确定的能够使得总编码代价最小的第一处理次序,来确定每个编码块组中编码块的处理次序,并由解码器90根据第一处理次序和每个编码块组中编码块的处理次序对目标图像的码流进行解码,编码过程中充分利用了目标图像的空间相关性,从而提高编码中的压缩效率。
可选地,作为一个实施例,确定单元92还用于:确定编码块的多种候选处理次序;并且确定多种候选处理次序与多种位置关系的对应关系,其中多种位置关系为当前处理的编码块组与当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
为保证编解码匹配,解码器90采用与编码端相同的方案根据编码块组的处理次序确定当前编码块组内编码块的处理次序。其中,当前编码块组内的编码块可以有多种预先设定的候选处理次序,每种候选处理次序都对应于一种位置关系,该位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的相对位置关系。在对当前编码块组进行解码时,可以先确定当前编码块组与相邻或相近的已解码的编码块组的相对位置关系,然后根据确定的相对位置关系在预先配置的对应关系中确定对应的编码块组内编码块的处理次序。在编码块的处理次序确定后,按照该处理次序对当前编码块组内的全部编码块进行解码,完成后按照第一处理次序处理下一个编码块组,与当前编码块组相类似,需要根据相对位置关系确定下一编码块组中编码块的处理次序,以此类推,直至目标图像的全部编码块组按照第一处理次序解码完毕。
可选地,作为一个实施例,确定单元具体用于:根据第一处理次序确定编码块组与和编码块组相邻的已处理的编码块组的相对位置关系;并且根据对应关系和相对位置关系确定编码块组包含的多个编码块的处理次序。可选地,作为一个实施例,确定单元具体用于:使用预先设定的编码块的多种候选处理次序。预先设定的编码块的多种候选处理次序可以使用多种方法确定,例如根据编码块组包含的编码块的划分方式确定。其中编码块的划分方式可以包括等大小划分,即编码块组中编码块的大小相同,例如H.264/AVC等,编码块的划分方式还可以包括非等大小划分,例如HEVC等。在等大小划分的情况下,预先设定的编码块的多种候选处理次序可以如图4所示,在非等大小划分的情况下,预先设定的编码块的多种候选处理次序可以如图3所示。应理解,图3和图4所示出的几种处理次序仅仅为一些例子,预先设定的编码块的处理次序并不限于此,可以是任意次序。
举个例子进行说明,解码器90可以预先设置编码块组内的编码块的多种处理次序与该编码块组与已解码的编码块组的相对位置的对应关系。例如,预先设定如图4所示的4种编码块的处理次序,次序0为从左到右逐行扫描,次序1为从右到左逐行扫描,次序2为从上到下逐列扫描,次序3为从下到上逐列扫描。而编码块组与已解码的编码块组的相对位置可以有如图5所示的十六种情况:1,相邻没有已解码的编码块组;2,上方的编码块组已解码;3,右侧的编码块组已解码;4,下方的编码块组已解码;5,左侧的编码块组已解码;6,上方和右侧的编码块组已解码;7,下方和右侧的编码块组已解码;8,左侧和下方的编码块组已解码;9,左侧和上方的编码块组已解码;10,上方和下方的编码块组已解码;11,左侧和右侧的编码块组已解码;12,上、下、左三侧的编码块组已解码;13,左、右、上三侧的编码块组已解码;14,上、下、右三侧的编码块组已解码;15,左、右、下三侧的编码块组已解码;16,上下左右四侧的编码块组已解码。
其中,解码器90还可以预先配置上述4种处理次序与上述16中相对位置关系之间的对应关系,例如,相对位置关系1对应于次序0、相对位置关系2对应于次序3、相对位置关系3对应于次序2,等等。
由以上对应关系可知,当给定不同的编码块组处理次序时,当前编码块组从上述十六种情况中选择对应的一种情况,并随之确定当前编码块组中编码块的处理次序,接着按照给定的编码块处理次序对当前编码块组中的编码 块进行解码操作。
应理解,解码器90的上述多种预设模式,以及对应关系可以与编码端预设的模式以及对应关系相同。
可选地,作为一个实施例,确定单元具体用于:根据第一处理次序确定编码块组与和编码块组相邻的已处理的编码块组的相对位置关系;并且根据预设的多种候选处理次序与多种位置关系的对应关系和相对位置关系确定编码块组包含的多个编码块的处理次序,其中多种位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
也就是说,编码块的多种候选处理次序,以及多种候选处理次序与多种位置关系的对应关系都可以是预先设置好的。编码端在确定当前处理的编码块组中的编码块的处理次序时,可以直接根据预先设置好的对应关系确定当前处理的编码块组的编码块对应的处理次序,其中多种候选处理次序和对应关系与上述实施例相类似,此处不再赘述。
可选地,作为一个实施例,获取单元91具体用于:从码流中解码经过排列的多个编码块组的索引;根据多个编码块组的索引的排列顺序确定第一处理次序;或者从码流中解码经过排列的多个编码块组的坐标;根据多个编码块组的坐标的排列顺序确定第一处理次序。
具体地,编码端在确定了编码块组的处理次序确定后,可以将该处理次序以索引或者坐标等方式写入码流,以便于解码器90在进行解码时能够直接获取编码时编码块组的编码次序。具体地,可以有以下两种方式:
一种方式可以从左到右从上到下的行扫描方式为编码图像中的编码块组分配一个索引号,例如从0到N-1。按照计算得到的最优处理次序,将这N个索引号写入码流。
另一种方式可以从左到右从上到下的方式为编码块组分配横坐标值与纵坐标值,例如(x,y)来表示编码块。如果编码图像中横向和纵向分别有w和h个编码块组,则编码图像中共有N个编码块组,N=w*h,x与y的取值范围为0≤x≤w-1,0≤y≤h-1。可以按照计算得到的最优处理次序,对这N组坐标进行编码,例如,可采用类似于脉冲编码调制(Pulse Code Modulation,PCM)的编码方式依次独立编码这N个横坐标值与这N个纵坐标值,还可采用类似于差分脉冲编码调制(Differential Pulse Code  Modulation,DPCM)的编码方式编码这N个横坐标值与这N个纵坐标值。
也就是说,相应地解码器90可以按照上述两种方式根据编码端写入码流的信息获知编码块组的处理次序。
本发明实施例根据由编码端确定的能够使得总编码代价最小的第一处理次序,来确定每个编码块组中编码块的处理次序,并由解码器90根据第一处理次序和每个编码块组中编码块的处理次序对目标图像的码流进行解码,编码过程中充分利用了目标图像的空间相关性,从而提高编码中的压缩效率。
图10是本发明另一实施例的编码器的示意框图。图10的编码器100包括处理器101和存储器102。处理器101和存储器102通过总线系统103相连。
存储器102用于存储使得处理器101执行以下操作的指令:根据目标图像的总编码代价确定目标图像包含的多个编码块组的第一处理次序;根据第一处理次序对多个编码块组中的编码块组进行编码以生成码流;并且将第一处理次序写入码流。
本发明实施例的编码器100根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的第一处理次序,并根据第一处理次序对该多个编码块组进行编码,能够充分利用目标图像中的空间相关性,从而提高编码中的压缩效率。
应理解,本发明实施例中的目标图像为待编码图像,也可以称为编码图像。目标图像被划分为多个不重叠的编码块组,该编码块组可以等同于HEVC中的编码树单元CTU,也可以等同于H.264/AVC中的宏块MB,等等。编码块组可以继续划分为能够独立确定编码参数的多个编码块,编码块可以等同于HEVC中的编码单元CU,也可以等同于H.264/AVC中的子宏块SMB,等等。
此外,编码器100还可以包括发射电路104等。处理器101控制编码器100的操作,处理器101还可以称为CPU(Central Processing Unit,中央处理单元)。存储器102可以包括只读存储器和随机存取存储器,并向处理器101提供指令和数据。存储器102的一部分还可以包括非易失性随机存取存储器(NVRAM)。编码器100的各个组件通过总线系统103耦合在一起,其中总线系统103除包括数据总线之外,还可以包括电源总线、控制总线和状 态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统103。
上述本发明实施例揭示的方法可以应用于处理器101中,或者由处理器101实现。处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器102,处理器101读取存储器102中的信息,结合其硬件完成上述方法的步骤。
可选地,作为一个实施例,根据目标图像的总编码代价确定目标图像包含的多个编码块组的第一处理次序,包括:确定多个编码块组的所有处理次序中每种处理次序对应的总编码代价,其中每种处理次序对应的总编码代价为多个编码块组按照每种处理次序进行编码的编码代价之和;确定每种处理次序对应的总编码代价中的最小总编码代价对应的处理次序为第一处理次序。
可选地,作为一个实施例,根据第一处理次序对多个编码块组中的编码块组进行编码以生成码流,包括:根据第一处理次序确定编码块组包含的多个编码块的处理次序;根据第一处理次序和编码块组包含的多个编码块的处理次序对编码块组进行编码。
可选地,作为一个实施例,根据第一处理次序确定编码块组包含的多个编码块的处理次序之前,还包括:确定编码块的多种候选处理次序;并且确定多种候选处理次序与多种位置关系的对应关系,其中多种位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
可选地,作为一个实施例,根据第一处理次序确定编码块组包含的多个 编码块的处理次序,包括:根据第一处理次序确定编码块组与和编码块组相邻的已处理的编码块组的相对位置关系;并且根据对应关系和相对位置关系确定编码块组包含的多个编码块的处理次序。
可选地,作为一个实施例,确定编码块的多种候选处理次序,包括:使用预先设定的编码块的多种候选处理次序。
可选地,作为一个实施例,根据第一处理次序确定编码块组包含的多个编码块的处理次序,包括:根据第一处理次序确定编码块组与和编码块组相邻的已处理的编码块组的相对位置关系;并且根据预设的多种候选处理次序与多种位置关系的对应关系和相对位置关系确定编码块组包含的多个编码块的处理次序,其中多种位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
可选地,作为一个实施例,将第一处理次序写入码流,包括:根据第一处理次序排列编码块组的索引;编码经过排列的编码块组的索引并写入码流;或者根据第一处理次序排列编码块组的坐标;编码经过排列的编码块组的坐标并写入码流。
可选地,作为一个实施例,编码块组的编码代价包含以下至少一种:编码编码块组消耗的比特数;编码块组的失真。
本发明实施例的编码器100根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的第一处理次序,并根据第一处理次序对所述多个编码块组进行编码,能够充分利用目标图像中的空间相关性,从而提高编码中的压缩效率。
图11是本发明另一实施例的解码器的示意框图。图11的解码器110包括处理器111和存储器112。处理器111和存储器112通过总线系统113相连。
存储器112用于存储使得处理器111执行以下操作的指令:从码流中获取目标图像的多个编码块组的第一处理次序;根据第一处理次序确定多个编码块组中的编码块组包含的多个编码块的处理次序;根据第一处理次序和编码块组包含的多个编码块的处理次序解码码流。
本发明实施例根据由编码端确定的能够使得总编码代价最小的第一处理次序,来确定每个编码块组中编码块的处理次序,并由解码器110根据第一处理次序和每个编码块组中编码块的处理次序对目标图像的码流进行解 码,编码过程中充分利用了目标图像的空间相关性,从而提高编码中的压缩效率。
此外,解码器110还可以包括发射电路114等。处理器111控制解码器110的操作,处理器111还可以称为CPU(Central Processing Unit,中央处理单元)。存储器112可以包括只读存储器和随机存取存储器,并向处理器111提供指令和数据。存储器112的一部分还可以包括非易失性随机存取存储器(NVRAM)。解码器110的各个组件通过总线系统113耦合在一起,其中总线系统113除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统113。
上述本发明实施例揭示的方法可以应用于处理器111中,或者由处理器111实现。处理器111可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器111中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器111可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器112,处理器111读取存储器112中的信息,结合其硬件完成上述方法的步骤。
可选地,作为一个实施例,根据第一处理次序确定多个编码块组中的编码块组包含的多个编码块的处理次序之前,还包括:确定编码块的多种候选处理次序;并且确定多种候选处理次序与多种位置关系的对应关系,其中多种位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
可选地,作为一个实施例,根据第一处理次序确定多个编码块组中的编码块组包含的多个编码块的处理次序,包括:根据第一处理次序确定编码块组与和编码块组相邻的已处理的编码块组的相对位置关系;并且根据对应关 系和相对位置关系确定编码块组包含的多个编码块的处理次序。
可选地,作为一个实施例,确定编码块的多种候选处理次序,包括:使用预先设定的编码块的多种候选处理次序。
可选地,作为一个实施例,根据第一处理次序确定编码块组包含的多个编码块的处理次序,包括:根据第一处理次序确定编码块组与和编码块组相邻的已处理的编码块组的相对位置关系;并且根据预设的多种候选处理次序与多种位置关系的对应关系和相对位置关系确定编码块组包含的多个编码块的处理次序,其中多种位置关系为当前处理的编码块组与和当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
可选地,作为一个实施例,从码流中获取目标图像的多个编码块组的第一处理次序,包括:从码流中解码经过排列的多个编码块组的索引;根据多个编码块组的索引的排列顺序确定第一处理次序;或者从码流中解码经过排列的多个编码块组的坐标;根据多个编码块组的坐标的排列顺序确定第一处理次序。
本发明实施例根据由编码端确定的能够使得总编码代价最小的第一处理次序,来确定每个编码块组中编码块的处理次序,并由解码器110根据第一处理次序和每个编码块组中编码块的处理次序对目标图像的码流进行解码,编码过程中充分利用了目标图像的空间相关性,从而提高编码中的压缩效率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或步骤可以用硬件、处理器执行的软件程序,或者二者的结合来实施。软件程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内。

Claims (30)

  1. 一种编码方法,其特征在于,包括:
    根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的第一处理次序;
    根据所述第一处理次序对所述多个编码块组中的编码块组进行编码以生成码流;并且
    将所述第一处理次序写入所述码流。
  2. 根据权利要求1所述的方法,其特征在于,根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的第一处理次序,包括:
    确定所述多个编码块组的所有处理次序中每种处理次序对应的总编码代价,其中所述每种处理次序对应的总编码代价为所述多个编码块组按照所述每种处理次序进行编码的编码代价之和;
    确定所述每种处理次序对应的总编码代价中的最小总编码代价对应的处理次序为所述第一处理次序。
  3. 根据权利要求1所述的方法,其特征在于,所述根据所述第一处理次序对所述多个编码块组中的编码块组进行编码以生成码流,包括:
    根据所述第一处理次序确定所述编码块组包含的多个编码块的处理次序;
    根据所述第一处理次序和所述编码块组包含的多个编码块的处理次序对所述编码块组进行编码。
  4. 根据权利要求3所述的方法,其特征在于,所述根据所述第一处理次序确定所述编码块组包含的多个编码块的处理次序之前,还包括:
    确定编码块的多种候选处理次序;并且
    确定所述多种候选处理次序与多种位置关系的对应关系,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
  5. 根据权利要求4所述的方法,其特征在于,所述根据所述第一处理次序确定所述编码块组包含的多个编码块的处理次序,包括:
    根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已处理的编码块组的相对位置关系;并且
    根据所述对应关系和所述相对位置关系确定所述编码块组包含的多个 编码块的处理次序。
  6. 根据权利要求4所述的方法,其特征在于,所述确定编码块的多种候选处理次序,包括:使用预先设定的编码块的多种候选处理次序。
  7. 根据权利要求6所述的方法,其特征在于,所述根据所述第一处理次序确定所述编码块组包含的多个编码块的处理次序,包括:
    根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已处理的编码块组的相对位置关系;并且
    根据预设的多种候选处理次序与多种位置关系的对应关系和所述相对位置关系确定所述编码块组包含的多个编码块的处理次序,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
  8. 根据权利要求1所述的方法,其特征在于,所述将所述第一处理次序写入所述码流,包括:
    根据所述第一处理次序排列所述编码块组的索引;
    编码经过排列的所述编码块组的索引并写入所述码流;或者
    根据所述第一处理次序排列所述编码块组的坐标;
    编码经过排列的所述编码块组的坐标并写入所述码流。
  9. 根据权利要求1-8中任意一项所述的方法,其特征在于,所述编码块组的编码代价包含以下至少一种:
    编码所述编码块组消耗的比特数;
    所述编码块组的失真。
  10. 一种解码方法,其特征在于,包括:
    从码流中获取目标图像的多个编码块组的第一处理次序;
    根据所述第一处理次序确定所述多个编码块组中的编码块组包含的多个编码块的处理次序;
    根据所述第一处理次序和所述编码块组包含的多个编码块的处理次序解码所述码流。
  11. 根据权利要求10所述的方法,其特征在于,所述根据所述第一处理次序确定所述多个编码块组中的编码块组包含的多个编码块的处理次序之前,还包括:
    确定编码块的多种候选处理次序;并且
    确定所述多种候选处理次序与多种位置关系的对应关系,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
  12. 根据权利要求11所述的方法,其特征在于,所述根据所述第一处理次序确定所述多个编码块组中的编码块组包含的多个编码块的处理次序,包括:
    根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已处理的编码块组的相对位置关系;并且
    根据所述对应关系和所述相对位置关系确定所述编码块组包含的多个编码块的处理次序。
  13. 根据权利要求11所述的方法,其特征在于,所述确定编码块的多种候选处理次序,包括:使用预先设定的编码块的多种候选处理次序。
  14. 根据权利要求13所述的方法,其特征在于,所述根据所述第一处理次序确定所述编码块组包含的多个编码块的处理次序,包括:
    根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已处理的编码块组的相对位置关系;并且
    根据预设的多种候选处理次序与多种位置关系的对应关系和所述相对位置关系确定所述编码块组包含的多个编码块的处理次序,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
  15. 根据权利要求10所述的方法,其特征在于,所述从码流中获取目标图像的多个编码块组的第一处理次序,包括:
    从所述码流中解码经过排列的所述多个编码块组的索引;
    根据所述多个编码块组的索引的排列顺序确定所述第一处理次序;或者
    从所述码流中解码经过排列的所述多个编码块组的坐标;
    根据所述多个编码块组的坐标的排列顺序确定所述第一处理次序。
  16. 一种编码器,其特征在于,包括:
    确定单元,用于根据目标图像的总编码代价确定所述目标图像包含的多个编码块组的第一处理次序;
    编码单元,用于根据所述确定单元确定的所述第一处理次序对所述多个编码块组中的编码块组进行编码以生成码流;并且
    所述编码单元还用于将所述确定单元确定的所述第一处理次序写入所述码流。
  17. 根据权利要求16所述的编码器,其特征在于,所述确定单元具体用于:
    确定所述多个编码块组的所有处理次序中每种处理次序对应的总编码代价,其中所述每种处理次序对应的总编码代价为所述多个编码块组按照所述每种处理次序进行编码的编码代价之和;
    确定所述每种处理次序对应的总编码代价中的最小总编码代价对应的处理次序为所述第一处理次序。
  18. 根据权利要求16所述的编码器,其特征在于,所述编码单元具体用于:
    根据所述第一处理次序,通过所述确定单元确定所述编码块组包含的多个编码块的处理次序;
    根据所述第一处理次序和所述编码块组包含的多个编码块的处理次序对所述编码块组进行编码。
  19. 根据权利要求18所述的编码器,其特征在于,所述确定单元还用于:
    确定编码块的多种候选处理次序;并且
    确定所述多种候选处理次序与多种位置关系的对应关系,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
  20. 根据权利要求19所述的编码器,其特征在于,所述确定单元具体用于:
    根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已处理的编码块组的相对位置关系;并且
    根据所述对应关系和所述相对位置关系确定所述编码块组包含的多个编码块的处理次序。
  21. 根据权利要求19所述的编码器,其特征在于,所述确定单元具体用于:使用预先设定的编码块的多种候选处理次序。
  22. 根据权利要求21所述的编码器,其特征在于,所述确定单元具体用于:
    根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已 处理的编码块组的相对位置关系;并且
    根据预设的多种候选处理次序与多种位置关系的对应关系和所述相对位置关系确定所述编码块组包含的多个编码块的处理次序,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
  23. 根据权利要求16所述的编码器,其特征在于,所述编码单元具体用于:
    根据所述第一处理次序排列所述编码块组的索引;
    编码经过排列的所述编码块组的索引并写入所述码流;或者
    根据所述第一处理次序排列所述编码块组的坐标;
    编码经过排列的所述编码块组的坐标并写入所述码流。
  24. 根据权利要求16-23中任意一项所述的编码器,其特征在于,所述编码块组的编码代价包含以下至少一种:
    所述编码单元编码所述编码块组消耗的比特数;
    所述编码块组的失真。
  25. 一种解码器,其特征在于,包括:
    获取单元,用于从码流中获取目标图像的多个编码块组的第一处理次序;
    确定单元,用于根据所述第一处理次序确定所述多个编码块组中的编码块组包含的多个编码块的处理次序;
    解码单元,用于根据所述第一处理次序和所述编码块组包含的多个编码块的处理次序解码所述码流。
  26. 根据权利要求25所述的解码器,其特征在于,所述确定单元还用于:
    确定编码块的多种候选处理次序;并且
    确定所述多种候选处理次序与多种位置关系的对应关系,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
  27. 根据权利要求26所述的解码器,其特征在于,所述确定单元具体用于:
    根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已 处理的编码块组的相对位置关系;并且
    根据所述对应关系和所述相对位置关系确定所述编码块组包含的多个编码块的处理次序。
  28. 根据权利要求26所述的解码器,其特征在于,所述确定单元具体用于:使用预先设定的编码块的多种候选处理次序。
  29. 根据权利要求28所述的解码器,其特征在于,所述确定单元具体用于:
    根据所述第一处理次序确定所述编码块组与和所述编码块组相邻的已处理的编码块组的相对位置关系;并且
    根据预设的多种候选处理次序与多种位置关系的对应关系和所述相对位置关系确定所述编码块组包含的多个编码块的处理次序,其中所述多种位置关系为当前处理的编码块组与和所述当前处理的编码块组相邻的已处理的编码块组的多种相对位置关系。
  30. 根据权利要求25所述的解码器,其特征在于,所述获取单元具体用于:
    通过所述解码单元,从所述码流中解码经过排列的所述多个编码块组的索引;
    通过所述确定单元,根据所述多个编码块组的索引的排列顺序确定所述第一处理次序;或者
    通过所述解码单元,从所述码流中解码经过排列的所述多个编码块组的坐标;
    通过所述确定单元,根据所述多个编码块组的坐标的排列顺序确定所述第一处理次序。
PCT/CN2015/072089 2014-02-18 2015-02-02 编解码方法和装置 WO2015124058A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020167023765A KR101960825B1 (ko) 2014-02-18 2015-02-02 인코딩 및 디코딩 방법과 장치
JP2016552562A JP6389264B2 (ja) 2014-02-18 2015-02-02 エンコーディング方法及び装置並びにデコーディング方法及び装置
EP15752321.8A EP3094091A4 (en) 2014-02-18 2015-02-02 CODING AND DECODING METHOD AND DEVICE
US15/240,436 US20160373767A1 (en) 2014-02-18 2016-08-18 Encoding and Decoding Methods and Apparatuses

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410054130.3A CN104853196B (zh) 2014-02-18 2014-02-18 编解码方法和装置
CN201410054130.3 2014-02-18

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/240,436 Continuation US20160373767A1 (en) 2014-02-18 2016-08-18 Encoding and Decoding Methods and Apparatuses

Publications (1)

Publication Number Publication Date
WO2015124058A1 true WO2015124058A1 (zh) 2015-08-27

Family

ID=53852510

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/072089 WO2015124058A1 (zh) 2014-02-18 2015-02-02 编解码方法和装置

Country Status (6)

Country Link
US (1) US20160373767A1 (zh)
EP (1) EP3094091A4 (zh)
JP (1) JP6389264B2 (zh)
KR (1) KR101960825B1 (zh)
CN (1) CN104853196B (zh)
WO (1) WO2015124058A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018535601A (ja) * 2015-11-24 2018-11-29 サムスン エレクトロニクス カンパニー リミテッド 符号化順序符号化方法及びその装置、該復号方法及びその装置
US11240505B2 (en) 2017-11-09 2022-02-01 Interdigital Vc Holdings, Inc. Automated scanning order for sub-divided blocks

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102370375B1 (ko) 2015-05-12 2022-03-04 삼성전자주식회사 적응적인 순서로 결정되는 블록을 이용하여 영상을 부호화 또는 복호화하는 방법 및 장치
CN107888330B (zh) * 2016-09-30 2022-04-05 华为技术有限公司 一种数据传输的方法和装置
US10771196B2 (en) * 2017-03-20 2020-09-08 Qualcomm Incorporated Techniques for signaling compressed HARQ or retransmission information between a base station and a user equipment
CN108881909A (zh) * 2017-05-09 2018-11-23 富士通株式会社 扫描顺序生成方法和扫描顺序生成设备
EP3512145B1 (en) 2017-11-10 2020-08-05 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Wireless communication method and device
WO2019104611A1 (en) * 2017-11-30 2019-06-06 SZ DJI Technology Co., Ltd. System and method for controlling video coding within image frame
CN111164972A (zh) 2017-11-30 2020-05-15 深圳市大疆创新科技有限公司 用于在帧级别控制视频编码的系统和方法
CN110832856A (zh) 2017-11-30 2020-02-21 深圳市大疆创新科技有限公司 用于减小视频编码波动的系统及方法
US10530387B1 (en) * 2018-10-22 2020-01-07 Uber Technologies, Inc. Estimating an optimal ordering for data compression
CA3132390A1 (en) * 2019-03-11 2020-09-17 Tencent America LLC Tile and sub-picture partitioning
CN113079375B (zh) * 2021-06-03 2022-03-08 浙江智慧视频安防创新中心有限公司 基于相关度比较确定视频编解码优先顺序的方法及装置
CN113660498B (zh) * 2021-10-20 2022-02-11 康达洲际医疗器械有限公司 一种基于显著性检测的帧间图像通用编码方法与系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101350927A (zh) * 2008-07-29 2009-01-21 北京中星微电子有限公司 帧内预测选择最优预测模式的方法及装置
CN101965734A (zh) * 2008-03-05 2011-02-02 三星电子株式会社 用于图像帧内预测的方法和设备
CN102045560A (zh) * 2009-10-23 2011-05-04 华为技术有限公司 一种视频编解码方法及设备
CN102651816A (zh) * 2011-02-23 2012-08-29 华为技术有限公司 一种变换系数块的扫描方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8934729B2 (en) * 2006-09-30 2015-01-13 Texas Instruments Incorporated Method and apparatus for frame coding in vertical raster scan order for HEVC
JPWO2008084817A1 (ja) * 2007-01-09 2010-05-06 株式会社東芝 画像符号化と復号化の方法及び装置
JP5082548B2 (ja) * 2007-03-30 2012-11-28 富士通株式会社 画像処理方法、符号化器および復号化器
EP2211552A1 (en) * 2009-01-22 2010-07-28 Thomson Licensing Method and device for video coding using macroblock groups
US9042440B2 (en) * 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US9392301B2 (en) * 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
JP2013150124A (ja) * 2012-01-18 2013-08-01 Sony Corp 画像処理装置および方法
CN103428487B (zh) * 2012-07-16 2017-06-09 上海数字电视国家工程研究中心有限公司 用于高清视频序列帧率提升的块处理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101965734A (zh) * 2008-03-05 2011-02-02 三星电子株式会社 用于图像帧内预测的方法和设备
CN101350927A (zh) * 2008-07-29 2009-01-21 北京中星微电子有限公司 帧内预测选择最优预测模式的方法及装置
CN102045560A (zh) * 2009-10-23 2011-05-04 华为技术有限公司 一种视频编解码方法及设备
CN102651816A (zh) * 2011-02-23 2012-08-29 华为技术有限公司 一种变换系数块的扫描方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3094091A4 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018535601A (ja) * 2015-11-24 2018-11-29 サムスン エレクトロニクス カンパニー リミテッド 符号化順序符号化方法及びその装置、該復号方法及びその装置
US10979713B2 (en) 2015-11-24 2021-04-13 Samsung Electronics Co., Ltd. Encoding sequence encoding method and device thereof, and decoding method and device thereof
JP2021106424A (ja) * 2015-11-24 2021-07-26 サムスン エレクトロニクス カンパニー リミテッド 符号化順序符号化方法及びその装置、該復号方法及びその装置
US11089306B2 (en) 2015-11-24 2021-08-10 Samsung Electronics Co., Ltd. Encoding sequence encoding method and device thereof, and decoding method and device thereof
JP7069379B2 (ja) 2015-11-24 2022-05-17 サムスン エレクトロニクス カンパニー リミテッド 符号化順序符号化方法及びその装置、該復号方法及びその装置
US11363269B2 (en) 2015-11-24 2022-06-14 Samsung Electronics Co., Ltd. Encoding sequence encoding method and device thereof, and decoding method and device thereof
JP2022093628A (ja) * 2015-11-24 2022-06-23 サムスン エレクトロニクス カンパニー リミテッド 符号化順序符号化方法及びその装置、該復号方法及びその装置
JP7274022B2 (ja) 2015-11-24 2023-05-15 サムスン エレクトロニクス カンパニー リミテッド 符号化順序符号化方法及びその装置、該復号方法及びその装置
US11812023B2 (en) 2015-11-24 2023-11-07 Samsung Electronics Co., Ltd. Encoding sequence encoding method and device thereof, and decoding method and device thereof
US11240505B2 (en) 2017-11-09 2022-02-01 Interdigital Vc Holdings, Inc. Automated scanning order for sub-divided blocks

Also Published As

Publication number Publication date
CN104853196B (zh) 2018-10-19
US20160373767A1 (en) 2016-12-22
EP3094091A1 (en) 2016-11-16
JP6389264B2 (ja) 2018-09-12
KR20160114166A (ko) 2016-10-04
KR101960825B1 (ko) 2019-03-21
EP3094091A4 (en) 2016-11-16
JP2017506463A (ja) 2017-03-02
CN104853196A (zh) 2015-08-19

Similar Documents

Publication Publication Date Title
WO2015124058A1 (zh) 编解码方法和装置
TWI536811B (zh) 影像處理方法與系統、解碼方法、編碼器與解碼器
TWI755376B (zh) 用於視訊寫碼之濾波器之幾何轉換
TWI665907B (zh) 用於圖像和視訊編碼的基於模板的圖框內預測的方法和裝置
WO2020253829A1 (zh) 一种编解码方法、装置及存储介质
TWI524780B (zh) 在變換單元內之多符號位元隱藏
JP2017538381A (ja) ビデオ符号化における成分間予測
WO2015096647A1 (en) Method and apparatus for major color index map coding
WO2020259631A1 (en) Signaling coding of transform-skipped blocks
WO2021139572A1 (zh) 编码方法、解码方法、编码器、解码器以及存储介质
JP2022524916A (ja) 適応的な数の領域を伴う幾何学的分割のための形状適応離散コサイン変換
TW202135530A (zh) 用於編碼和解碼視訊樣本區塊的方法、設備及系統
TW202112135A (zh) 用於視訊寫碼之色度內預測單元
CN111448798A (zh) 基于块形状的视频编码和解码的方法和装置
CN110832854B (zh) 利用插值进行帧内预测的方法和装置
WO2021196035A1 (zh) 视频编码的方法和装置
JP2024503193A (ja) フレーム内予測方法、装置、及びデコーダとエンコーダ
JP2022521933A (ja) 符号化方法、復号化方法、デコーダ、エンコーダー及び記憶媒体
WO2019217122A1 (en) Method and apparatus for blended intra prediction
WO2021134654A1 (zh) 视频编码的方法和装置
WO2024077562A1 (zh) 编解码方法及装置、编解码器、码流、存储介质
JP2006165699A (ja) 画像符号化装置および画像符号化方法
CN114175653B (zh) 用于视频编解码中的无损编解码模式的方法和装置
US20240214561A1 (en) Methods and devices for decoder-side intra mode derivation
CN111279699B (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: 15752321

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2015752321

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015752321

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2016552562

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20167023765

Country of ref document: KR

Kind code of ref document: A