[go: up one dir, main page]

CN114630131A - Jump-out pixel codec method in index map codec - Google Patents

Jump-out pixel codec method in index map codec Download PDF

Info

Publication number
CN114630131A
CN114630131A CN202111452015.8A CN202111452015A CN114630131A CN 114630131 A CN114630131 A CN 114630131A CN 202111452015 A CN202111452015 A CN 202111452015A CN 114630131 A CN114630131 A CN 114630131A
Authority
CN
China
Prior art keywords
palette
index
pixel
run
copy
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN202111452015.8A
Other languages
Chinese (zh)
Other versions
CN114630131B (en
Inventor
庄子德
陈庆晔
孙域晨
夜静
刘杉
许晓中
金廷宣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MediaTek Inc
Original Assignee
MediaTek Inc
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 MediaTek Inc filed Critical MediaTek Inc
Priority to CN202111452015.8A priority Critical patent/CN114630131B/en
Priority claimed from PCT/CN2015/094410 external-priority patent/WO2016074627A1/en
Publication of CN114630131A publication Critical patent/CN114630131A/en
Application granted granted Critical
Publication of CN114630131B publication Critical patent/CN114630131B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Landscapes

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

Abstract

公开了一种通过重用用于调色板编解码的变换系数缓冲器调色板来降低实现成本的视频编解码方法。如果当前预测模式是帧内预测模式或帧间预测模式,则将由帧内预测或帧间预测产生的当前块的预测残差的变换系数相关的信息存储在变换系数缓冲器中。如果当前预测模式是调色板编解码模式,则与当前块相关联的调色板数据相关的信息被存储在变换系数缓冲器中。如果当前块在帧内预测模式或帧间预测模式下编解码,则基于与变换系数相关的信息,对当前块进行编码或解码,或者如果当前的预测模式是调色板编解码模式,则基于与存储在变换系数缓冲器中调色板数据相关的信息,对当前块进行编码或解码。

Figure 202111452015

A video codec method is disclosed that reduces implementation cost by reusing a transform coefficient buffer palette for palette codec. If the current prediction mode is the intra prediction mode or the inter prediction mode, information related to transform coefficients of the prediction residual of the current block generated by the intra prediction or the inter prediction is stored in the transform coefficient buffer. If the current prediction mode is the palette codec mode, information related to palette data associated with the current block is stored in the transform coefficient buffer. If the current block is encoded or decoded in the intra prediction mode or the inter prediction mode, the current block is encoded or decoded based on the information related to the transform coefficients, or if the current prediction mode is the palette codec mode, based on Information about the palette data stored in the transform coefficient buffer to encode or decode the current block.

Figure 202111452015

Description

索引映射编解码中的跳出像素编解码方法Jump-out pixel encoding and decoding method in index map encoding and decoding

【交叉引用】【cross reference】

本申请要求申请日为2014年11月12日,美国临时申请号为62/078,595的美国临时申请案、申请日为2014年12月4日,美国临时申请号为62/087,454的美国临时申请案、申请日为2015年2月24日,美国临时申请号为62/119,950的美国临时申请案、申请日为2015年4月10日,美国临时申请号为62/145,578的美国临时申请案、申请日为2015年5月15日,美国临时申请号为62/162,313的美国临时申请案和申请日为2015年6月4日,美国临时申请号为62/170,828的美国临时申请案的优先权,上述临时申请案的内容一并并入本申请。This application requires a U.S. Provisional Application with a filing date of November 12, 2014, a U.S. Provisional Application No. 62/078,595, a U.S. Provisional Application with a filing date of December 4, 2014, and a U.S. Provisional Application No. 62/087,454 , the filing date is February 24, 2015, the U.S. Provisional Application with U.S. Provisional Application No. 62/119,950, the filing date is April 10, 2015, and the U.S. Provisional Application and Application with U.S. Provisional Application No. 62/145,578 Priority of U.S. Provisional Application No. 62/162,313, dated May 15, 2015, and U.S. Provisional Application No. 62/170,828, filed June 4, 2015, The content of the above provisional application is incorporated into this application.

【技术领域】【Technical field】

本发明涉及视频数据的调色板编解码(palette coding)。特别地,本发明涉及通过重用变换系数(transform coefficient)缓冲器或聚集跳出值(Group Escape Value)、调色板预测值(palette predictor)初始化、调色板预测值条目语义(entry semantics)、或调色板条目(entry)语义来一起保存(conserve)系统存储器或增加系统吞吐量的各种技术。The present invention relates to palette coding of video data. In particular, the present invention relates to reusing transform coefficient buffers or Group Escape Values, palette predictor initialization, palette predictor entry semantics, or Palette entry semantics to conserve system memory or various techniques to increase system throughput.

【背景技术】【Background technique】

高效视频编解码(High Efficiency Video Coding,简写为HEVC)是近年来已经开发的新的编解码标准。在高效视频编解码(HEVC)系统中,H.264/AVC的固定大小宏块(fixed-size macro block)由称为编解码单元(coding unit,简写为CU)的灵活块替换。CU中的像素共享相同的编解码参数以提高编解码效率。CU可以以最大CU(LCU)开始,其在HEVC中也被称为已编解码树单元(coded tree unit,简写为CTU)。除了编解码单元的概念,在HEVC中也引入了预测单元(prediction unit,简写为PU)的概念。一旦CU层次树的分裂完成,则根据预测类型和PU分割将每个叶CU被进一步拆分成一个或多个预测单元(PU)。已经开发了用于屏幕内容编解码的几种编解码工具。与本发明相关的这些工具简要回顾如下。High Efficiency Video Coding (HEVC for short) is a new codec standard that has been developed in recent years. In the High Efficiency Video Codec (HEVC) system, the fixed-size macro blocks of H.264/AVC are replaced by flexible blocks called coding units (CU for short). Pixels in a CU share the same codec parameters to improve codec efficiency. A CU may start with a Largest CU (LCU), which is also referred to as a coded tree unit (CTU) in HEVC. In addition to the concept of a codec unit, the concept of a prediction unit (PU for short) is also introduced in HEVC. Once the splitting of the CU-level tree is complete, each leaf CU is further split into one or more prediction units (PUs) according to prediction type and PU partitioning. Several codec tools have been developed for encoding and decoding screen content. These tools relevant to the present invention are briefly reviewed below.

调色板编解码palette codec

在HEVC屏幕内容编解码(screen content coding,简写为SCC)的开发期间,已经公开了若干建议来解决基于调色板的编解码。例如,JCTVC-N0247(Guo等人,“RCE3:Resultsof Test 3.1on Palette Mode for Screen Content Codin g”,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11视频编解码联合协作小组(Joint Collaborative Team on VideoCoding)(JCT-VC),第14次会议:Vienna,AT,2013.7.25-2013.8.2,文档编号:JCTVC-N0247)和JCTV C-O0218(Guo等人,“Evaluation of Palette Mode Coding on HM-12.0+RExt-4.1”,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11视频编解码联合协作小组(JointCollaborative Team on Video Coding)(JCT-VC),第15次会议:Geneva,CH,2013.10.23–2013.11.1,文档编号:JCTVC-O0218)中揭露了调色板预测和共享技术。在JCTVC-N0247和JCTVC-O0218中,构造并传输每个颜色分量的调色板。可以从其左相邻CU预测(或共享)调色板以减小位率。然后,使用它们的调色板索引对给定块内的所有像素进行编解码。根据JCTVC-N0247的编码处理的示例如下所示。During the development of HEVC screen content coding (SCC for short), several proposals have been published to address palette-based codecs. For example, JCTVC-N0247 (Guo et al., "RCE3: Results of Test 3.1 on Palette Mode for Screen Content Coding", Joint Collaborative Group on ITU-T SG 16WP 3 and ISO/IEC JTC 1/SC 29/WG 11 Video Codecs (Joint Collaborative Team on VideoCoding) (JCT-VC), 14th Session: Vienna, AT, 2013.7.25-2013.8.2, Document Number: JCTVC-N0247) and JCTV C-O0218 (Guo et al., "Evaluation of Palette Mode Coding on HM-12.0+RExt-4.1”, ITU-T SG 16WP 3 and ISO/IEC JTC 1/SC 29/WG 11 Joint Collaborative Team on Video Coding (JCT-VC), Palette prediction and sharing techniques are disclosed in the 15th session: Geneva, CH, 2013.10.23–2013.11.1, Document No.: JCTVC-O0218). In JCTVC-N0247 and JCTVC-O0218, a palette for each color component is constructed and transmitted. The palette may be predicted (or shared) from its left neighbor CU to reduce bit rate. All pixels within a given block are then encoded and decoded using their palette indices. An example of the encoding process according to JCTVC-N0247 is shown below.

调色板的传输:首先传输颜色索引表(也称为调色板表)大小,然后是调色板元素(即,颜色值)。Palette transfer: The color index table (also called palette table) size is transferred first, followed by the palette elements (ie, color values).

像素调色板索引值的传输(索引指向调色板中的颜色):CU中的像素的索引值以光栅扫描顺序编码(encoding)。对于每个位置,首先发送标志以指示是否正在使用“运行模式(run mode)”或“复制上方(copy above)运行模式”。Transmission of pixel palette index value (index points to a color in the palette): The index value of a pixel in the CU is encoded in raster scan order. For each location, a flag is first sent to indicate whether "run mode" or "copy above run mode" is being used.

a.“运行模式”:在“运行模式”中,首先发出调色板索引,之后是“palette_run”(例如,M)。由于具有与已经标示的调色板索引相同的调色板索引,因此不需要为当前位置和随后M个位置发送进一步的信息。调色板索引(例如,i)由所有三个颜色分量共享,这意味着重构的像素值为(Y,U,V)=(paletteY[i],paletteU[i],paletteV[i])(假定颜色空间是YUV)。a. "Run Mode": In "Run Mode", the palette index is emitted first, followed by "palette_run" (eg, M). Since there is the same palette index as the already marked palette index, no further information needs to be sent for the current position and the following M positions. The palette index (e.g., i) is shared by all three color components, which means the reconstructed pixel value is (Y, U, V) = (palette Y [i], palette U [i], palette V [ i]) (assuming the color space is YUV).

b.“复制上方运行模式”:在“复制上方运行模式”中,发送值“copy_run”(例如,N)以指示对于随后N个位置(包括当前位置),调色板索引等于在上方行中处于相同位置的调色板索引。b. "Copy Above Run Mode": In "Copy Above Run Mode", the value "copy_run" (eg, N) is sent to indicate that for the next N positions (including the current position), the palette index is equal to that in the top row Palette index at the same position.

残差的传输:在阶段2中发送的调色板索引被转换回到像素值并用作预测。残差信息使用HEVC残差编解码传输,并被添加到重构预测中。Transfer of residuals: The palette indices sent in stage 2 are converted back to pixel values and used as predictions. Residual information is transmitted using the HEVC residual codec and added to the reconstruction prediction.

在JCTVC-N0247中,构建和传输每个分量的调色板。调色板可以从其左邻CU预测(或共享)以降低位率。在JCTVC-O0218中,调色板中的每个元素都是三元组(triplet),表示三种颜色分量的特定组合。跨CU(across CU)调色板的预测编解码被去除。In JCTVC-N0247, a palette for each component is constructed and transmitted. The palette can be predicted (or shared) from its left neighbor CU to reduce bit rate. In JCTVC-O0218, each element in the palette is a triplet, representing a specific combination of three color components. Predictive codecs for across CU palettes are removed.

在JCTVC-O0182(Guo等人,“AHG8:Major-color-based screen content coding”,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11视频编解码联合协作小组(JointCollaborative Team on Video Coding)(JCT-VC),第15次会议:Geneva,CH,2013.10.23-2013.11.1,文档编号:JCTVC-O0182)中,揭露了另一种调色板编解码方法。代替从左侧CU预测整个调色板表,可以从上方CU或左CU中的确切对应的调色板颜色条目预测调色板中的各个调色板颜色条目。In JCTVC-O0182 (Guo et al., "AHG8: Major-color-based screen content coding", ITU-T SG 16WP 3 and ISO/IEC JTC 1/SC 29/WG 11 Joint Collaborative Team on Video Codecs Video Coding) (JCT-VC), the 15th meeting: Geneva, CH, 2013.10.23-2013.11.1, document number: JCTVC-O0182), another palette encoding and decoding method is disclosed. Instead of predicting the entire palette table from the left CU, individual palette color entries in the palette may be predicted from the exact corresponding palette color entry in the upper or left CU.

对于像素调色板索引值的传输,根据JCTVC-O0182将预测编解码方法应用于索引。索引行可以通过不同的模式进行预测。特别地,索引行使用三种行模式,即水平模式(horizontal mode)、垂直模式(vertical mode)和正常模式(normal mode)。在水平模式下,同一行中的所有索引具有相同的值。如果该值与上方像素行的第一像素相同,则仅发送行模式信令位(line mode signaling bi t)。否则,索引值也被发送。在垂直模式下,当前索引行与上方索引行相同。因此,只传输行模式信令位。在正常模式下,一行中的指数被单独预测。对于每个索引位置,将左邻或上邻(left or above neighbor)用作预测值,并将预测符号发送到解码器。For the transmission of pixel palette index values, a predictive codec method is applied to the index according to JCTVC-O0182. Index rows can be predicted by different modes. In particular, the index row uses three row modes, namely horizontal mode, vertical mode and normal mode. In horizontal mode, all indices in the same row have the same value. If the value is the same as the first pixel of the row of pixels above, only line mode signaling bits are sent. Otherwise, the index value is also sent. In vertical mode, the current index row is the same as the upper index row. Therefore, only row mode signaling bits are transmitted. In normal mode, the exponents in a row are predicted individually. For each index position, the left or above neighbor is used as the predicted value and the predicted symbol is sent to the decoder.

此外,根据JCTVC-O0182,像素被分类为主要颜色像素(major color pixel)(具有指向调色板颜色的调色板索引)和跳出像素(escape pixel)。对于主要颜色像素,解码器根据主要颜色指数(即,JCTVC-N0247和JCTVC-O0182中的调色板索引)和调色板表重构像素值。对于跳出像素,编码器将进一步发送像素值。Furthermore, according to JCTVC-00182, pixels are classified into major color pixels (with palette indices pointing to palette colors) and escape pixels. For primary color pixels, the decoder reconstructs the pixel value from the primary color index (ie, the palette index in JCTVC-N0247 and JCTVC-O0182) and the palette table. For bounced pixels, the encoder will send further pixel values.

调色板表信令(signaling)Palette table signaling

在屏幕内容编解码(Screen Content Coding,简写为SCC)标准的参考软件中,SCM-2.0(JCTVC-R1014:Joshi等,Screen content coding test model 2(SCM 2),ITU-TSG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11视频编解码联合协作小组(JointCollaborative Team on Video Coding)(JCT-VC),第18次会议:Sapporo,JP,2014.6.30-7.9,文档编号:JCTVC-R1014)最后编解码调色板CU的调色板表用作当前调色板表编解码的预测值。在调色板表编解码中,首先标示palette_share_flag。如果palette_share_flag为1,则最后编解码调色板表中的所有调色板颜色将重新用于当前CU。在这种情况下,当前的调色板大小等于最后编解码调色板CU的调色板大小。否则(即palette_share_flag为0),通过指示可以重新使用最后编解码调色板表中的哪个调色板颜色、或通过发送新的调色板颜色来标示(signaled)当前调色板表。当前调色板的大小被设置为预测调色板的大小(即,numPredPreviousPalette)加上所传送的调色板的大小(即,num_signaled_palette_entries)。预测的调色板是从先前重构的调色板编解码的CU得到的调色板。当将当前CU编解码为调色板模式时,不使用预测调色板预测的调色板颜色通过位流直接发送。例如,如果当前CU被编解码为调色板大小等于6的调色板模式。如果六种主色中的三种从调色板预测值预测,三种直接通过位流传输。以下伪代码使用上述示例语法说明了传输的三个调色板颜色的示例。In the reference software of Screen Content Coding (SCC for short) standard, SCM-2.0 (JCTVC-R1014: Joshi et al., Screen content coding test model 2 (SCM 2), ITU-TSG 16WP 3 and ISO/ IEC JTC 1/SC 29/WG 11 Joint Collaborative Team on Video Coding (JCT-VC), 18th meeting: Sapporo, JP, 2014.6.30-7.9, document number: JCTVC-R1014) The palette table of the last codec palette CU is used as the predicted value of the current palette table codec. In the palette table codec, the palette_share_flag is first marked. If palette_share_flag is 1, all palette colors in the last codec palette table will be reused for the current CU. In this case, the current palette size is equal to the palette size of the last codec palette CU. Otherwise (ie palette_share_flag is 0), the current palette table is signaled by indicating which palette color in the last codec palette table can be reused, or by sending a new palette color. The size of the current palette is set to the size of the predicted palette (ie, numPredPreviousPalette) plus the size of the passed palette (ie, num_signaled_palette_entries). The predicted palette is the palette obtained from the CU encoded and decoded from the previously reconstructed palette. When encoding the current CU into palette mode, the palette colors predicted without using the predicted palette are sent directly through the bitstream. For example, if the current CU is encoded in palette mode with palette size equal to 6. If three of the six dominant colors are predicted from palette predictions, three are transmitted directly through the bitstream. The following pseudocode illustrates an example of three palette colors transferred using the example syntax above.

Figure BDA0003386477810000041
Figure BDA0003386477810000041

由于在该示例中调色板大小为6,所以从0到5的调色板索引用于指示每个调色板编解码像素,并且可以将每个调色板重构为调色板颜色表中的主要颜色。Since the palette size is 6 in this example, a palette index from 0 to 5 is used to indicate each palette codec pixel, and each palette can be reconstructed into a palette color table main color in .

在SCM-2.0中,如果不应用波前并行处理(wavefront parallel processing,简写为WPP),则在每个片(slice)的开始处或在每个平铺块(tile)的开始处对最后编解码的调色板表进行初始化(即,复位(reset))。如果应用WPP,则最后编解码的调色板表不仅在每个片的开始处或每个平铺块的开始处被初始化(复位),而且在每个CTU行的开始处被初始化(即,复位)。In SCM-2.0, if wavefront parallel processing (WPP for short) is not applied, the final coding is performed at the beginning of each slice or at the beginning of each tile. The decoded palette table is initialized (ie, reset). If WPP is applied, the palette table of the last codec is initialized (reset) not only at the beginning of each slice or at the beginning of each tile, but also at the beginning of each CTU row (i.e., reset).

调色板索引映射扫描次序Palette index map scan order

在SCM-3.0(JCTVC-R1014:Joshi等,Screen content coding test model 3(SCM3),ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11视频编解码联合协作小组(JointCollaborative Team on Video Coding)(JCT-VC),第19次会议:Strasbourg,FR,2014.10.17-24,文档编号:JCTVC-S1014)调色板模式编解码中,遍历扫描(traverse scan)用于如图1所示的索引映射编解码。图1示出了8×8块的遍历扫描的示例。在遍历扫描(Traverse Scan)中,对于偶数行的扫描从左到右,对于奇数行的扫描从右到左。遍历扫描适用于调色板模式下的所有块大小。In SCM-3.0 (JCTVC-R1014: Joshi et al., Screen content coding test model 3 (SCM3), ITU-T SG 16WP 3 and ISO/IEC JTC 1/SC 29/WG 11 Video Codec Joint Collaborative Team on Video Coding) (JCT-VC), the 19th meeting: Strasbourg, FR, 2014.10.17-24, document number: JCTVC-S1014) palette mode codec, traverse scan (traverse scan) is used as shown in Figure 1 The index map codec shown. Figure 1 shows an example of a traversal scan of 8x8 blocks. In a traverse scan, even rows are scanned from left to right, and odd rows are scanned from right to left. Traversal scan works for all block sizes in palette mode.

SCM-4.0中的调色板索引映射编解码Palette Index Map Codec in SCM-4.0

在SCM-4.0(JCTVC-T1014:Joshi等,Screen content coding test model 4(SCM4),ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11视频编解码联合协作小组(JointCollaborative Team on Video Coding)(JCT-VC),第20次会议:Geneva,CH,2015.2.10-18,文档编号:JCTVC-T1014)调色板模式编解码中,调色板索引在对应块的编解码数据的前面(即,在palette_run_mo de和palette_run编解码之前)被聚集和标示(signaled)。另一方面,对于相应的块的编解码数据的结尾处,编解码跳出像素(escape pixel)。语法元素palette_run_mode和palette_run在调色板索引和跳出像素之间被编解码。图2示出了根据SCM 4.0的索引映射语法信令的示例性流程图。标示索引(210)、最后一个运行类型(runtype)(230)和聚集索引(220)的数量。在标示索引信息之后,重复标示一对运行类型(240)和运行次数(250)。最后,如有必要,标示一组跳出值(260)。In SCM-4.0 (JCTVC-T1014: Joshi et al., Screen content coding test model 4 (SCM4), ITU-T SG 16WP 3 and ISO/IEC JTC 1/SC 29/WG 11 Video Codec Joint Collaborative Team on Video Coding) (JCT-VC), the 20th meeting: Geneva, CH, 2015.2.10-18, document number: JCTVC-T1014) In palette mode codec, the palette index is in the codec data of the corresponding block (ie, before palette_run_mode and palette_run codec) are aggregated and signaled. On the other hand, at the end of the codec data for the corresponding block, the codec escape pixel (escape pixel). The syntax elements palette_run_mode and palette_run are encoded and decoded between palette index and jump out pixels. Figure 2 shows an exemplary flow diagram of index mapping syntax signaling according to SCM 4.0. Indicates the number of indexes (210), last runtype (230) and clustered indexes (220). After the index information is marked, a pair of run types (240) and run times (250) are repeatedly marked. Finally, if necessary, a set of bounce values is indicated (260).

调色板预测值初始化Palette prediction value initialization

在SCM-4.0中,全局调色板预测值集合被标示在以PPS(picture parameter set,图像参数集)中。使用从PPS获得的值,而不是将所有调色板预测状态(包括PredictorPaletteSize、PreviousPaletteSize和PredictorPaletteEntries)重置为0。In SCM-4.0, the global palette prediction value set is marked with PPS (picture parameter set, picture parameter set). Use values obtained from PPS instead of resetting all palette prediction states (including PredictorPaletteSize, PreviousPaletteSize, and PredictorPaletteEntries) to 0.

调色板语法palette syntax

对于索引映射中的索引的运行,需要被标示的几个要素包括:For the operation of the index in the index map, several elements that need to be marked include:

1)运行类型:它是复制上方运行或复制索引运行。1) Type of run: It is a copy above run or a copy index run.

2)调色板索引:用于在复制索引运行中标示哪个索引用于此运行。2) Palette Index: Used to indicate in a copy index run which index is used for this run.

3)运行长度:它代表复制上方和复制索引类型的此运行的长度。3) Run Length: It represents the length of this run of replication above and replication index types.

4)跳出像素:如果运行中有N(N>=1)个跳出像素,则需要为这些N个跳出像素标示N个像素值。4) Jumping out pixels: If there are N (N>=1) jumping out pixels in the operation, N pixel values need to be marked for these N jumping out pixels.

在JCTVC-T0064(JCTVC-T0064:Joshi等,Screen content coding test model 4(SCM 4),ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11视频编解码联合协作小组(Joint Collaborative Team on Video Coding)(JCT-VC),第20次会议:Geneva,CH,2015.2.10-18,文档编号:JCTVC-T1014中,所有的调色板索引都聚集在一起。首先标示调色板索引的数量,其次是调色板索引。In JCTVC-T0064 (JCTVC-T0064: Joshi et al., Screen content coding test model 4 (SCM 4), ITU-T SG 16WP 3 and ISO/IEC JTC 1/SC 29/WG 11 Video Codec Joint Collaborative Group Team on Video Coding) (JCT-VC), Session 20: Geneva, CH, 2015.2.10-18, Document No.: JCTVC-T1014, all palette indices are clustered together. The palette is first marked The number of indices, followed by the palette indices.

根据现有的HEVC规范,当每个颜色分量的调色板索引被聚集在一起时,用于不同颜色分量的大多数其他调色板编解码相关数据在位流中被交错。此外,用单独存储空间的存储帧间/帧内编解码块(Inter/Intra coded block)并存储调色板编解码块。期望开发提高系统吞吐量和/或降低系统实施成本的技术。According to the existing HEVC specification, when the palette indices for each color component are clustered together, most other palette codec related data for different color components is interleaved in the bitstream. In addition, a separate storage space is used to store Inter/Intra coded blocks and to store palette codec blocks. It is desirable to develop techniques to increase system throughput and/or reduce system implementation costs.

【发明内容】[Content of the invention]

公开了一种通过重用用于调色板编解码的变换系数缓冲器调色板来降低实现成本的视频编解码方法。如果当前预测模式是帧内预测模式或帧间预测模式,则将由帧内预测或帧间预测产生的当前块的预测残差的变换系数相关的信息存储在变换系数缓冲器中。如果当前预测模式是调色板编解码模式,则与当前块相关联的调色板数据相关的信息被存储在变换系数缓冲器中。如果当前块在帧内预测模式或帧间预测模式下编解码,则基于与变换系数相关的信息,对当前块进行编码或解码,或者如果当前的预测模式是调色板编解码模式,则基于与存储在变换系数缓冲器中调色板数据相关的信息,对当前块进行编解码或解码。A video codec method is disclosed that reduces implementation cost by reusing a transform coefficient buffer palette for palette codec. If the current prediction mode is the intra prediction mode or the inter prediction mode, information related to transform coefficients of the prediction residual of the current block generated by the intra prediction or the inter prediction is stored in the transform coefficient buffer. If the current prediction mode is the palette codec mode, information related to palette data associated with the current block is stored in the transform coefficient buffer. If the current block is encoded or decoded in the intra prediction mode or the inter prediction mode, the current block is encoded or decoded based on the information related to the transform coefficients, or if the current prediction mode is the palette codec mode, based on Information related to palette data stored in the transform coefficient buffer to encode or decode the current block.

如果当前预测模式是调色板编解码模式,则调色板数据可以对应于与当前块相关联的调色板运行类型、调色板索引、调色板运行、跳出值、跳出标志、调色板表或其任何组合。与调色板数据相关的信息可以对应于调色板数据、解析的调色板数据、或重构的调色板数据。例如,在解析阶段重构当前块的样本的解析调色板索引,并且在解码器侧将重构的调色板索引和重构的跳出值存储在变换系数缓冲器中。在另一示例中,重构当前块的采样的解析调色板索引,在解析阶段,使用调色板表将重构的调色板索引进一步重构为重构的像素值,并将重构的像素值和重构的跳出值存储在解码器侧的变换系数缓冲器中。此外,可以在分析阶段指定一个存储区域来存储调色板表,并且存储区域可以在重构阶段由调色板表从使用中释放。跳出标志也可以存储在解码器侧的变换系数缓冲器中。在另一示例中,跳出标志存储在变换系数缓冲器的一部分(例如,变换系数缓冲器的最高有效位(MSB)部分)中,并且重构的像素值或跳出值存储在变换系数缓冲器的另一部分中。If the current prediction mode is the palette codec mode, the palette data may correspond to the palette run type, palette index, palette run, jump value, jump flag, palette associated with the current block board table or any combination thereof. The information related to palette data may correspond to palette data, parsed palette data, or reconstructed palette data. For example, the parsed palette indices of the samples of the current block are reconstructed at the parsing stage, and the reconstructed palette indices and reconstructed skip values are stored in the transform coefficient buffer at the decoder side. In another example, the parsed palette indices of the samples of the current block are reconstructed, during the parsing phase, the reconstructed palette indices are further reconstructed into reconstructed pixel values using a palette table, and the reconstructed The pixel values and reconstructed skip values are stored in the transform coefficient buffer on the decoder side. Additionally, a storage area can be designated during the analysis phase to store the palette table, and the storage area can be released from use by the palette table during the reconstruction phase. The jump-out flag can also be stored in the transform coefficient buffer on the decoder side. In another example, the jump-out flag is stored in a portion of the transform coefficient buffer (eg, the most significant bit (MSB) portion of the transform coefficient buffer), and the reconstructed pixel value or jump-out value is stored in a in another part.

在另一个实施例中,如果当前预测模式是调色板编解码模式,则聚集在一起的相同颜色分量的所有跳出值在解码器侧从视频位流解析,或者对于相同颜色分量的所有跳出值在编码器侧聚集在一起。然后将包含跳出值的信息用于当前块的编码或解码。可以在当前块的编解码调色板数据结束时标示相同颜色分量的聚集跳出值。可以为当前块分别发出不同颜色分量的聚集跳出值。当前块的相同颜色分量的聚集跳出值可以存储在变换系数缓冲器中。不同颜色分量的聚集跳出值可以通过将一个颜色分量的聚集跳出值一次存储在变换系数缓冲器中来共享变换系数缓冲器。In another embodiment, if the current prediction mode is a palette codec mode, all the jump-out values for the same color component that are clustered together are parsed from the video bitstream at the decoder side, or for all the jump-out values for the same color component Gather together on the encoder side. The information containing the skip value is then used for encoding or decoding of the current block. Aggregate breakout values for the same color component may be indicated at the end of the codec palette data for the current block. Aggregated bounce values for different color components may be emitted separately for the current block. Aggregated dropout values for the same color component of the current block may be stored in a transform coefficient buffer. Aggregated skip values for different color components may share transform coefficient buffers by storing aggregated skip values for one color component in the transform coefficient buffer at a time.

在另一个实施例中,在解码器侧从视频位流解析在序列参数集(SPS)、图像参数集(PPS)、或片标头中聚集在一起的相同颜色分量的所有初始调色板预测值,或者在编码器侧将相同颜色分量的所有初始调色板预测值聚集在一起。使用初始调色板预测值对相应序列、图片或片内的至少一个调色板编解码块进行编码或解码。In another embodiment, all initial palette predictions for the same color components grouped together in a sequence parameter set (SPS), picture parameter set (PPS), or slice header are parsed from the video bitstream at the decoder side value, or aggregate all initial palette predictions for the same color component together on the encoder side. At least one palette codec block within the corresponding sequence, picture or slice is encoded or decoded using the initial palette predictor.

在另一个实施例中,在解码器侧,从视频位流解析聚集在一起的相同颜色分量的当前块的所有调色板预测值条目或调色板条目,或者在编码器侧,将用于相同颜色分量的所有调色板预测值条目或调色板条目聚集在一起。然后使用由所有调色板预测值条目组成的调色板预测值或由所有调色板条目组成的调色板表来对当前块进行编码或解码。In another embodiment, on the decoder side, all palette predictor entries or palette entries for the current block of the same color component grouped together are parsed from the video bitstream, or on the encoder side, will be used for All palette predictor entries or palette entries for the same color component are grouped together. The current block is then encoded or decoded using the palette predictor consisting of all palette predictor entries or the palette table consisting of all palette entries.

【附图说明】【Description of drawings】

图1示出了8×8块的遍历扫描的示例。Figure 1 shows an example of a traversal scan of 8x8 blocks.

图2示出了根据屏幕内容编解码测试模块版本4(SCM-4.0)的示例性调色板索引映射语法信令。Figure 2 illustrates exemplary palette index mapping syntax signaling according to Screen Content Codec Test Module Version 4 (SCM-4.0).

图3A示出了索引编解码之前的示例索引映射翻转。Figure 3A shows an example index map flip prior to index encoding and decoding.

图3B示出了与图3A中的索引映射对应的翻转索引映射的示例。FIG. 3B shows an example of a flipped index map corresponding to the index map in FIG. 3A.

图4示出了在索引映射编解码之前翻转索引映射的示例,其中使用上方相邻构造的像素来预测物理位置中的最后行中的像素是低效的。Figure 4 shows an example of flipping the index map prior to index map encoding and decoding, where it is inefficient to predict the pixel in the last row in the physical location using the pixel constructed from the upper neighbor.

图5A-B示出了根据本发明的实施例的来自具有翻转索引映射的上方CU的预测的示例,其中,复制上方运行模式中的索引总是从其物理上方位置预测,而不管索引映射是否被翻转。在图5A中,线填充块表示翻转索引映射,而图5B中的透明块代表原始的索引映射。Figures 5A-B illustrate an example of prediction from an upper CU with flipped index mapping, where an index in a copy-over operating mode is always predicted from its physical upper position regardless of whether the index mapping is in accordance with an embodiment of the present invention is flipped. In Figure 5A, the line-filled blocks represent the flipped index map, while the transparent blocks in Figure 5B represent the original index map.

图6A-B示出了根据本发明的实施例的来自具有翻转索引映射的上方CU的另一示例,其中从其物理最近位置的样本预测第一行的复制上方运行编解码像素。在图6A中,线填充块表示翻转的索引映射,而图6B中的透明块代表原始的索引映射。6A-B illustrate another example from an upper CU with a flipped index map, where a copy of the first row is predicted from its physically closest location sample, running codec pixels above, in accordance with an embodiment of the invention. In Figure 6A, the line-filled blocks represent the inverted index map, while the transparent blocks in Figure 6B represent the original index map.

图7A-B示出了根据本发明的实施例的从具有翻转索引映射的上方CU预测的另一示例,其中根据上方相邻CU的物理像素位置预测最后行的复制上方运行编解码像素。在图7A中,线填充块表示翻转的索引映射,而图7B在的透明块代表原始索引映射。7A-B illustrate another example of prediction from an upper CU with a flipped index map, where a copy of the last row of codec pixels above is predicted from the physical pixel locations of the upper neighboring CU, according to an embodiment of the invention. In Figure 7A, the line-filled blocks represent the inverted index map, while the transparent blocks in Figure 7B represent the original index map.

图8A示出了扩展的复制上方运行模式的示例,其中从位于CU边界上方的上一行复制两行像素(即,L=2)。8A shows an example of an extended copy-over mode of operation, where two rows of pixels are copied from the previous row above the CU boundary (ie, L=2).

图8B示出了通过信令语法元素pixel_num(M)来指示从重构像素预测前M个(即,M=11个)样本的跨CU预测的示例。8B shows an example of cross-CU prediction indicating the prediction of the first M (ie, M=11) samples from reconstructed pixels by signaling syntax element pixel_num(M).

图9A示出了通过上方CU的最后一行的重构像素值来预测前两行样本的像素值的示例。FIG. 9A shows an example of predicting the pixel values of the first two rows of samples from the reconstructed pixel values of the last row of the upper CU.

图9B示出了通过左CU的最右边列的重构像素值来预测前两列样本的像素值的示例。9B shows an example of predicting the pixel values of the first two columns of samples from the reconstructed pixel values of the rightmost column of the left CU.

图10A-C示出了根据本发明的实施例的用于跨CU预测的三种不同的扫描模式。10A-C illustrate three different scan modes for cross-CU prediction in accordance with embodiments of the present invention.

图11A-C示出了根据本发明的另一个实施例的用于跨CU预测的三种不同的扫描模式。11A-C illustrate three different scan modes for cross-CU prediction in accordance with another embodiment of the present invention.

图12A-B示出了根据本发明的实施例的用于跨CU预测的反向扫描的两种不同扫描模式。12A-B illustrate two different scan modes for inverse scan for cross-CU prediction in accordance with an embodiment of the present invention.

图13示出了将基于行的复制像素从相邻CU延伸到在帧间模式中编解码的8×8CU的示例。Figure 13 shows an example of extending row-based replicated pixels from adjacent CUs to 8x8 CUs coded in inter mode.

图14示出了根据本发明的实施例的改变相邻参考像素的位置的示例,其中从右上方的CU复制右上参考像素。FIG. 14 shows an example of changing the positions of adjacent reference pixels, in which the upper right reference pixel is copied from the upper right CU, according to an embodiment of the present invention.

图15示出了根据本发明的实施例的改变相邻参考像素的位置的另一示例,其中从第三行的最右边的像素复制右上参考像素。FIG. 15 shows another example of changing the position of adjacent reference pixels, wherein the upper right reference pixel is copied from the rightmost pixel of the third row, according to an embodiment of the present invention.

图16示出根据具有当前编解码块(N=5)内的不同位置中的N个跳出像素的实施例的解码跳出颜色的示例,其中每个跳出像素出现的像素值仍然被写入位流,并且使用水平遍历扫描。Figure 16 shows an example of decoded pop-out color according to an embodiment with N pop-out pixels in different positions within the current codec block (N=5), where the pixel value where each pop-out pixel occurs is still written to the bitstream , and scan using horizontal traversal.

图17示出了根据另一个实施例的解码跳出颜色的示例,其中当前编解码块(N=5)中的不同位置中具有N个跳出像素,其中只有非重复的颜色被解码。Figure 17 shows an example of decoding a jump out color according to another embodiment, where there are N jump out pixels in different positions in the current codec block (N=5), where only non-repeating colors are decoded.

图18示出了跨CU边界使用表示为N的相邻构造像素(NCP)的特殊索引的示例。Figure 18 shows an example of using a special index denoted N adjacent construction pixels (NCPs) across CU boundaries.

图19示出了在最大索引值为0的情况下使用相邻构造像素(NCP)的特殊索引的示例。FIG. 19 shows an example of using the special index of the adjacent construction pixel (NCP) in the case where the maximum index value is 0.

图20示出了在最大索引值为1的情况下对相邻构造像素(NCP)使用特殊索引的示例。FIG. 20 shows an example of using a special index for a neighboring construction pixel (NCP) with a maximum index value of 1.

图21示出了用于支持跨CU的索引预测的信令的示例性流程图,其中添加了新标志all_pixel_from_NCP_flag,并且根据SCM3.0的语法用于跨CU的索引预测。21 shows an exemplary flow diagram of signaling to support index prediction across CUs, where a new flag all_pixel_from_NCP_flag is added and used for index prediction across CUs according to the syntax of SCM3.0.

图22示出了用于支持跨CU的索引预测的信令的示例性流程图,其中添加了新的标志all_pixel_from_NCP_flag,当all_pixel_from_NCP_flag关闭时,根据SCM3.0的语法在没有跨CU索引预测的情况下被使用。Figure 22 shows an exemplary flowchart for signaling to support index prediction across CUs, where a new flag all_pixel_from_NCP_flag is added, when all_pixel_from_NCP_flag is off, without cross-CU index prediction according to the syntax of SCM3.0 used.

图23示出了类似于图22的另一示例性流程图。然而,当最大索引值不为0时,根据SCM3.0的语法用于CU上的索引预测。FIG. 23 shows another exemplary flowchart similar to that of FIG. 22 . However, when the maximum index value is not 0, the syntax according to SCM3.0 is used for index prediction on the CU.

图24示出了根据本发明的实施例的用于支持跨CU的索引预测的信令的示例性流程图。24 shows an exemplary flow diagram of signaling for supporting index prediction across CUs according to an embodiment of the present invention.

图25示出了根据本发明的另一实施例的用于支持跨CU的索引预测的信令的示例性流程图。25 shows an exemplary flowchart of signaling for supporting index prediction across CUs according to another embodiment of the present invention.

图26示出了根据本发明另一实施例的用于支持跨CU的索引预测的信令的示例性流程图。26 shows an exemplary flowchart of signaling for supporting index prediction across CUs according to another embodiment of the present invention.

图27示出了根据本发明的另一个实施例的用于支持跨CU的索引预测的信令的示例性流程图。27 shows an exemplary flowchart of signaling for supporting index prediction across CUs according to another embodiment of the present invention.

图28A示出了根据本发明的另一个实施例的用于支持跨CU的索引预测的信令的示例性流程图。28A shows an exemplary flowchart of signaling for supporting index prediction across CUs according to another embodiment of the present invention.

图28B示出了根据本发明的另一个实施例的用于支持跨CU的索引预测的信令的示例性流程图。28B shows an exemplary flowchart of signaling for supporting index prediction across CUs according to another embodiment of the present invention.

图29示出了用于帧内块复制预测和补偿的源像素的示例,其中点填充区域对应于当前CTU(编解码树单元)和左CTU中的未滤波像素。Figure 29 shows an example of source pixels used for intra block copy prediction and compensation, where the dot padding regions correspond to unfiltered pixels in the current CTU (Codec Tree Unit) and the left CTU.

图30示出了用于帧内块复制预测和补偿的源像素的另一示例,其中点填充区域对应于当前CTU(编解码树单元)、左CTU和上方CTU的底部四行以及左上CTU的底部四行中的未滤波像素。Figure 30 shows another example of source pixels for intra block copy prediction and compensation, where the dot padding area corresponds to the current CTU (Codec Tree Unit), the bottom four rows of the left and upper CTUs, and the bottom four rows of the left and upper CTUs Unfiltered pixels in the bottom four rows.

图31示出了用于帧内块复制预测和补偿的源像素的另一示例,其中点填充区域对应于当前CTU(编解码树单元)、N个左CTU、上方CTU的底部四行以及N个左上CTU的底部四行中的未滤波像素。Figure 31 shows another example of source pixels for intra block copy prediction and compensation, where the dot padding area corresponds to the current CTU (codec tree unit), the N left CTUs, the bottom four rows of the upper CTU, and the N Unfiltered pixels in the bottom four rows of the top left CTU.

图32示出了用于帧内块复制预测和补偿的源像素的另一示例,其中点填充区域对应于当前CTU(编解码树单元),上方CTU的底部四行,以及左CTU的底部四行中的未滤波像素。Figure 32 shows another example of source pixels for intra block copy prediction and compensation, where the dot padding area corresponds to the current CTU (Codec Tree Unit), the bottom four rows of the upper CTU, and the bottom four rows of the left CTU Unfiltered pixels in a row.

图33示出了用于帧内块复制预测和补偿的源像素的另一示例,其中点填充区域对应于当前CTU(编解码树单元)、N个左CTU、以及上方CTU的底部四行、N个左上CTU的底部四行和第N+1个左CTU的右方四列中的未滤波像素。Figure 33 shows another example of source pixels for intra block copy prediction and compensation, where the dot padding area corresponds to the current CTU (codec tree unit), the N left CTUs, and the bottom four rows of the upper CTU, Unfiltered pixels in the bottom four rows of the N upper left CTUs and the right four columns of the N+1 th left CTU.

图34示出了结合本发明的实施例的用于调色板编解码块共享变换系数缓冲器的系统的示例性流程图。34 shows an exemplary flow diagram of a system for palette codec block sharing transform coefficient buffers incorporating embodiments of the present invention.

【具体实施方式】【Detailed ways】

以下描述是实施本发明的最佳设想模式。这一描述是为了说明本发明的一般原理,而不应被认为是限制性的。本发明的范围最好通过所附权利要求书来确定。The following description is of the best contemplated mode for carrying out the invention. This description is intended to illustrate the general principles of the invention and should not be considered limiting. The scope of the invention is best determined by the appended claims.

重用HEVC变换系数缓冲器用于调色板相关信息Reuse HEVC transform coefficient buffers for palette related information

在HEVC中,除了调色板编解码之外,帧间预测(Inter prediction)和帧内预测(Intra prediction)是可用的编解码模式。当使用帧间或帧内预测时,变换编解码通常应用于由帧间/帧内预测得到的预测残差。然后对变换系数进行量化和熵编解码以包含在编解码位流中。在解码器侧,将反向操作应用于所接收的位流。换句话说,将熵解码应用于位流以恢复对应于量化变换系数的编解码符号。然后量化的变换系数被去量化并逆变换以重构帧间/帧内预测残差。在编码器侧和解码器侧经常使用变换系数缓冲器,以在熵编解码和量化/变换操作之间根据需要存储变换系数。In HEVC, in addition to palette codec, Inter prediction and Intra prediction are available codec modes. When using inter or intra prediction, transform coding is usually applied to the prediction residuals obtained by inter/intra prediction. The transform coefficients are then quantized and entropy coded for inclusion in the coded bitstream. On the decoder side, the reverse operation is applied to the received bitstream. In other words, entropy decoding is applied to the bitstream to recover the codec symbols corresponding to the quantized transform coefficients. The quantized transform coefficients are then dequantized and inverse transformed to reconstruct the inter/intra prediction residuals. Transform coefficient buffers are often used on both the encoder side and the decoder side to store transform coefficients as needed between entropy encoding and decoding and quantization/transform operations.

对于彩色视频数据,可能需要多个变换系数缓冲器。然而,也可以将系统配置为一次(at a time)处理一个颜色分量,使得仅需要一个变换系数缓冲器。当块被调色板编解码时,不对块进行变换,并且不使用变换系数缓冲器。为了节省系统实现成本,本发明的实施例重用变换系数缓冲器来存储调色板编解码相关数据。因此,对于帧间/帧内编解码块,在系数解析阶段,TU的解码系数被存储在系数缓冲器中。然而,对于SCC(屏幕内容编解码)编解码块,调色板编解码块不需要残差编解码。因此,根据本发明的一个实施例,变换系数缓冲器用于存储调色板编解码相关信息,其可以包括调色板运行类型、调色板索引、调色板运行、跳出值、跳出标志、调色板表或其任何组合。For color video data, multiple transform coefficient buffers may be required. However, it is also possible to configure the system to process one color component at a time, such that only one transform coefficient buffer is required. When a block is palette encoded, the block is not transformed, and no transform coefficient buffer is used. In order to save the system implementation cost, the embodiment of the present invention reuses the transform coefficient buffer to store the palette codec related data. Therefore, for inter/intra codec blocks, in the coefficient parsing stage, the decoded coefficients of the TU are stored in the coefficient buffer. However, for the SCC (Screen Content Codec) codec block, the palette codec block does not require residual codec. Therefore, according to an embodiment of the present invention, the transform coefficient buffer is used to store palette codec related information, which may include palette run type, palette index, palette run, jump value, jump flag, Swatches or any combination thereof.

例如,在解析阶段重构块的样本的解析调色板索引。变换系数缓冲器用于存储重构的调色板索引和跳出值。For example, the parsing palette index of the samples of the reconstructed block during the parsing phase. Transform coefficient buffers are used to store reconstructed palette indices and skip values.

在另一示例中,在解析阶段块的样本的经解析的调色板索引被重构。解析索引用于在解析阶段使用调色板表查找重构相应颜色分量的像素值。因此,系数缓冲器用于存储重构的像素值和跳出值,或者用于存储重构的像素值、跳出值和跳出标志。在这种情况下,调色板表只需要存储在解析阶段。在重构阶段不需要存储和维护调色板表。变换系数所需的数据深度可能高于调色板编解码相关数据的数据深度。例如,变换系数可能需要16位深度的缓冲器。然而,对于调色板编解码,如果最大调色板索引为63,则调色板索引的存储仅需要6位的深度。此外,跳出值的最大位长度等于通常为8位或10位的位深度。因此,16位的一部分(即8位或6位)是空闲的,并且可以用于存储用于跳出标志的信息。例如,系数缓冲器的六个MSB(most significant bits,最高有效位)可用于存储跳出标志。其余位用于存储重构的像素值或跳出值。在重构阶段,MSB可用于直接重构跳出值或重构像素值。In another example, the parsed palette indices of the samples of the block are reconstructed at the parsing stage. The parsing index is used to reconstruct the pixel value of the corresponding color component using the palette table lookup during the parsing phase. Therefore, the coefficient buffer is used to store reconstructed pixel values and jump values, or for storing reconstructed pixel values, jump values and jump flags. In this case, the palette table only needs to be stored during the parsing phase. There is no need to store and maintain palette tables during the refactoring phase. The data depth required for the transform coefficients may be higher than the data depth of the palette codec-related data. For example, transform coefficients may require a 16-bit deep buffer. However, for palette encoding and decoding, if the maximum palette index is 63, the storage of the palette index only needs to be 6 bits deep. Furthermore, the maximum bit length of the jump value is equal to the bit depth which is usually 8 or 10 bits. Therefore, a portion of the 16 bits (ie, 8 or 6 bits) are free and can be used to store information for the jump flag. For example, the six MSBs (most significant bits) of the coefficient buffer can be used to store the pop-out flag. The remaining bits are used to store the reconstructed pixel value or jump out value. In the reconstruction stage, the MSB can be used to directly reconstruct the pop-out value or reconstruct the pixel value.

在又一示例中,在解析阶段重构样本的解析调色板索引,并且在解析阶段中也使用调色板表查找来重构不同颜色分量的重构值。跳出样本的像素值也由解析阶段中的跳出值重构。因此,系数缓冲器用于存储重构的像素值。在这种情况下,调色板表只需要存储在解析阶段。重构阶段不需要存储和维护调色板表。In yet another example, the parsed palette indices of the samples are reconstructed in the parsing stage, and palette table lookups are also used in the parsing stage to reconstruct the reconstructed values of the different color components. The pixel values of the bounced samples are also reconstructed from the bounced values in the parsing stage. Therefore, the coefficient buffer is used to store reconstructed pixel values. In this case, the palette table only needs to be stored during the parsing phase. The refactoring phase does not need to store and maintain the palette table.

对相同颜色分量的跳出值进行聚集Aggregate bounce values of the same color component

在JCTVC-T0064(JCTVC-T0064:Joshi等,Screen content coding test model 4(SCM 4),ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11视频编解码联合协作小组(Joint Collaborative Team on Video Coding)(JCT-VC),第20次会议:Geneva,CH,2015.2.10-18,文档编号:JCTVC-T1014中,三个颜色分量的跳出值被聚集在一起。换句话说,对于每个样本,三个分量的跳出值被顺序编解码。根据JCTVC-T1014的跳出值编解码的语法表示于表1中。In JCTVC-T0064 (JCTVC-T0064: Joshi et al., Screen content coding test model 4 (SCM 4), ITU-T SG 16WP 3 and ISO/IEC JTC 1/SC 29/WG 11 Video Codec Joint Collaborative Group Team on Video Coding) (JCT-VC), 20th Session: Geneva, CH, 2015.2.10-18, Document Number: JCTVC-T1014, the bounce values of the three color components are clustered together. In other words, For each sample, the jump values of the three components are sequentially coded and decoded. The syntax of the jump value codec according to JCTVC-T1014 is shown in Table 1.

表1.Table 1.

Figure BDA0003386477810000111
Figure BDA0003386477810000111

Figure BDA0003386477810000121
Figure BDA0003386477810000121

由于没有用于调色板模式的残差编解码,所以可以重用系数缓冲器来存储调色板索引映射信息。在HEVC系数解析中,一次只解析一个颜色分量的TU。语法解析器对于一个颜色分量只能具有一个系数缓冲器,并且只能访问一个颜色分量的一个系数缓冲器。然而,在调色板编解码中,一个调色板索引表示多个颜色分量的像素值。调色板模式可以一次解码多个颜色分量值。调色板索引可以存储在一个颜色分量的一个系数缓冲器中。然而,在当前的SCM-4.0语法解析顺序中,跳出值可能需要三个颜色分量的三个系数缓冲器。Since there is no residual codec for palette mode, coefficient buffers can be reused to store palette index mapping information. In HEVC coefficient parsing, only the TUs of one color component are parsed at a time. The parser can only have one coefficient buffer for a color component, and can only access one coefficient buffer for a color component. However, in palette encoding and decoding, a palette index represents the pixel values of multiple color components. Palette mode can decode multiple color component values at once. The palette index can be stored in a coefficient buffer for a color component. However, in the current SCM-4.0 parsing order, a jump-out value may require three coefficient buffers for three color components.

因此,根据另一个实施例,改变跳出值的语法解析顺序,以克服涉及需要三个系数缓冲器来存储三个颜色分量的问题。相同颜色分量的跳出值被聚集在一起,并在块的调色板语法编解码结束时被标示。不同颜色分量的跳出值分别发出信号。结合本实施例的调色板编解码的示例性语法表示于表2中。Therefore, according to another embodiment, the parsing order of the bounce values is changed to overcome the problem involving the need for three coefficient buffers to store the three color components. Bounce values for the same color component are grouped together and marked at the end of the block's palette syntax codec. The bounce values for different color components are signaled separately. An exemplary syntax of the palette codec in conjunction with this embodiment is shown in Table 2.

表2.Table 2.

Figure BDA0003386477810000131
Figure BDA0003386477810000131

在表2中,线填充区域中的文本表示删除。不同颜色分量的do-loop语句(即“for(cIdx=0;cIdx<numComps;cIdx++)”)从注释(2-1)所示的原始位置向上移动到由注释(2-2)所示的新位置。因此,它可以解析CU的一个颜色分量的所有跳出值。可以写出第一颜色分量的调色板索引和跳出值(即,cIdx等于0),然后解析器可以重用相同的缓冲器来解析第二颜色分量的信息。通过表2中的语法更改,用于存储用于一个颜色分量的调色板编解码相关数据的一个系数缓冲器足以进行调色板模式解析。SCC解析器的实现复杂度和成本并不会增加。In Table 2, the text in the line-filled area indicates deletion. The do-loop statement for the different color components (i.e. "for(cIdx=0; cIdx<numComps; cIdx++)") moves up from the original position indicated by note (2-1) to the one indicated by note (2-2) new location. Therefore, it can resolve all bounce values for one color component of the CU. The palette index and dropout value for the first color component can be written out (ie, cIdx equals 0), and the parser can then reuse the same buffer to parse the information for the second color component. With the syntax changes in Table 2, one coefficient buffer to store palette codec-related data for one color component is sufficient for palette mode parsing. The implementation complexity and cost of the SCC parser do not increase.

对相同颜色分量的调色板预测值初始化进行聚集Aggregate initialization of palette predictions for the same color components

在SCM 4.0中,标示一组PPS(图片参数集)语法元素以指定调色板预测值初始化器。PPS扩展的现有语法如表3所示。In SCM 4.0, a set of PPS (Picture Parameter Set) syntax elements are indicated to specify palette predictor initializers. The existing syntax of the PPS extension is shown in Table 3.

表3.table 3.

Figure BDA0003386477810000141
Figure BDA0003386477810000141

根据现有SCM 4.0的调色板预测值初始化过程如下所示:The initialization process of the palette prediction values according to the existing SCM 4.0 is as follows:

·此过程的输出是初始化的调色板预测变量PredictorPaletteSize和PredictorPaletteEntries。The output of this process is the initialized palette predictor variables PredictorPaletteSize and PredictorPaletteEntries.

·PredictorPaletteSize被导出如下:PredictorPaletteSize is exported as follows:

–若palette_predictor_initializer_present_flag等于1,PredictorPaletteSize被设置为等于to num_palette_predictor_initializer_minus1加1.– If palette_predictor_initializer_present_flag is equal to 1, PredictorPaletteSize is set equal to num_palette_predictor_initializer_minus1 plus 1.

–否则(palette_predictor_initializer_present_flag等于0),PredictorPaletteSize被设置为0.- Otherwise (palette_predictor_initializer_present_flag is equal to 0), PredictorPaletteSize is set to 0.

·PredictorPaletteEntries数组(array)导出如下:The PredictorPaletteEntries array (array) is exported as follows:

–若palette_predictor_initializer_present_flag等于1,– If palette_predictor_initializer_present_flag is equal to 1,

for(i=0;i<PredictorPaletteSize;i++)for(i=0; i<PredictorPaletteSize; i++)

for(comp=0;comp<3;comp++)for(comp=0;comp<3;comp++)

PredictorPaletteEntries[i][comp]=palette_predictor_initializers[i][comp]PredictorPaletteEntries[i][comp]=palette_predictor_initializers[i][comp]

–否则(palette_predictor_initializer_present_flag等于0),PredictorPaletteEntries被设置为0.- Otherwise (palette_predictor_initializer_present_flag is equal to 0), PredictorPaletteEntries is set to 0.

在一个实施例中,预测值初始化值可以组合在一起分别用于Y分量、Cb分量、Cr分量。语法更改如表4所示。与表3相比,两个do-loop语句按注释(4-1)和注释(4-2)所示进行交换,以便组合相同颜色分量的调色板预测值初始化。In one embodiment, the predictor initialization values may be combined together for the Y component, the Cb component, and the Cr component, respectively. The syntax changes are shown in Table 4. Compared to Table 3, the two do-loop statements are swapped as indicated in Notes (4-1) and (4-2) to combine the initialization of the palette predictions of the same color components.

表4.Table 4.

Figure BDA0003386477810000151
Figure BDA0003386477810000151

Figure BDA0003386477810000161
Figure BDA0003386477810000161

对应于上述实施例的示例性调色板预测值初始化过程如下所示。An exemplary palette prediction value initialization process corresponding to the above-described embodiment is shown below.

·此过程的输出是初始化的调色板预测变量PredictorPaletteSize和PredictorPaletteEntries。The output of this process is the initialized palette predictor variables PredictorPaletteSize and PredictorPaletteEntries.

·PredictorPaletteSize被导出如下:PredictorPaletteSize is exported as follows:

–若palette_predictor_initializer_present_flag等于1,PredictorPaletteSize被设置为等于num_palette_predictor_initializer_minus1加1.– If palette_predictor_initializer_present_flag is equal to 1, PredictorPaletteSize is set equal to num_palette_predictor_initializer_minus1 plus 1.

–否则(palette_predictor_initializer_present_flag等于0),PredictorPaletteSize被设置为等于0.- Otherwise (palette_predictor_initializer_present_flag is equal to 0), PredictorPaletteSize is set equal to 0.

·PredictorPaletteEntries数组导出如下:The PredictorPaletteEntries array is exported as follows:

–若palette_predictor_initializer_present_flag is等于1,– If palette_predictor_initializer_present_flag is equal to 1,

for(comp=0;comp<3;comp++)for(comp=0;comp<3;comp++)

for(i=0;i<PredictorPaletteSize;i++)for(i=0; i<PredictorPaletteSize; i++)

PredictorPaletteEntries[i][comp]=palette_predictor_initializers[i][comp]PredictorPaletteEntries[i][comp]=palette_predictor_initializers[i][comp]

–否则(palette_predictor_initializer_present_flag等于0),PredictorPaletteEntries被设置为0.- Otherwise (palette_predictor_initializer_present_flag is equal to 0), PredictorPaletteEntries is set to 0.

如果调色板预测值初始化器在SPS(序列参数集)或片标头(slice header)处被标志,则可以应用相同的聚集方法。换句话说,Y分量的所有初始化值一起被标示,Cb分量的所有初始化值一起被标示,且Cr分量的所有初始化值一起被标示。The same aggregation method can be applied if the palette predictor initializer is flagged at the SPS (sequence parameter set) or slice header. In other words, all initialization values of the Y component are marked together, all initialization values of the Cb component are marked together, and all initialization values of the Cr component are marked together.

对相同颜色分量的调色板预测值更新过程进行聚集Aggregate the update process of palette predictions for the same color components

现有的调色板预测值更新过程如下。The existing palette prediction value update process is as follows.

如等式(1)所示导出变量numComps:The variable numComps is derived as shown in equation (1):

numComps=(ChromaArrayType==0)?1:3 (1)numComps=(ChromaArrayType==0)? 1:3 (1)

变量PredictorPaletteSize和Predictor Palette Entries被修改,如表5中的伪代码所示。The variables PredictorPaletteSize and Predictor Palette Entries are modified as shown in the pseudocode in Table 5.

表5.table 5.

Figure BDA0003386477810000162
Figure BDA0003386477810000162

Figure BDA0003386477810000171
Figure BDA0003386477810000171

如表5所示,newPredictorPaletteEntries更新过程的第一部分在由注释(5-1)和注释(5-2)表示的双重do-loop中执行,其中与颜色分量相关联的do-loop(即cIdx)在内部do-loop中。因此,对于每个调色板条目,更新三个颜色分量。其余的newPredictorPaletteEntries更新的两个do-loop语句由注释(5-3)和注释(5-4)表示,其中不同颜色分量的do-loop语句对应于内循环(inner loop)。因此,对于每个条目,更新三个颜色分量。PredictorPaletteEntries更新的两个do-loop语句由注释(5-5)和注释(5-6)表示,其中不同颜色分量的do-loop语句对应于外循环(outer loop)。因此,为每个颜色分量更新PredictorPaletteEntries值。As shown in Table 5, the first part of the newPredictorPaletteEntries update process is performed in a double do-loop denoted by annotations (5-1) and (5-2), where the do-loop associated with the color components (i.e. cIdx) in the inner do-loop. Therefore, for each palette entry, the three color components are updated. The remaining two do-loop statements updated by newPredictorPaletteEntries are denoted by comments (5-3) and (5-4), where the do-loop statements for different color components correspond to the inner loop. Therefore, for each entry, the three color components are updated. The two do-loop statements updated by PredictorPaletteEntries are represented by annotations (5-5) and (5-6), where the do-loop statements for different color components correspond to the outer loop. Therefore, update the PredictorPaletteEntries value for each color component.

在一个实施例中,对于三个相应分量的调色板预测值被聚集,然后被更新。对现有更新过程的示例性修改如下所示。In one embodiment, the palette predictions for the three corresponding components are aggregated and then updated. Exemplary modifications to the existing update process are shown below.

可变numComps的导出与等式(1)保持相同。变量PredictorPaletteSize和PredictorPaletteEntries被修改,如表6中的以下示例性伪代码所示。The derivation of variable numComps remains the same as equation (1). The variables PredictorPaletteSize and PredictorPaletteEntries are modified as shown in the following exemplary pseudocode in Table 6.

表6.Table 6.

Figure BDA0003386477810000181
Figure BDA0003386477810000181

在上述示例中,第一部分newPredictorPaletteEntries更新的两个do-loop语句由注释(6-1)和注释(6-2)表示,其中不同颜色分量的do-loop语句对应于外循环。因此,为每个颜色分量更新其余的newPredictorPaletteEntries值。由注释(6-3)和注释(6-4)表示的双重do-loop指示的newPredictorPaletteEntries更新过程与表5中现有的更新过程保持一致。由注释(6-5)和注释(6-6)表示的双重do-loop指示的PredictorPaletteEntries更新过程与表5中现有的更新过程保持一致。In the above example, the two do-loop statements updated by the first part newPredictorPaletteEntries are represented by annotations (6-1) and (6-2), where the do-loop statements for different color components correspond to the outer loop. Therefore, the remaining newPredictorPaletteEntries values are updated for each color component. The update process of newPredictorPaletteEntries indicated by the double do-loop denoted by Note (6-3) and Note (6-4) is consistent with the existing update process in Table 5. The update process of PredictorPaletteEntries indicated by the double do-loop indicated by annotations (6-5) and (6-6) is consistent with the existing update process in Table 5.

在另一个实施例中,变量PredictorPaletteSize和PredictorPaletteEntries被修改,如表7中的以下示例性伪代码所示。In another embodiment, the variables PredictorPaletteSize and PredictorPaletteEntries are modified as shown in the following exemplary pseudocode in Table 7.

表7.Table 7.

Figure BDA0003386477810000182
Figure BDA0003386477810000182

Figure BDA0003386477810000191
Figure BDA0003386477810000191

在上述示例中,newPredictorPaletteEntries更新的第一部分的两个do-loop语句由注释(7-1)和注释(7-2)表示,其中不同颜色分量的do-loop语句对应于外循环。因此,为每个颜色分量更新其余的newPredictorPaletteEntries值。由注释(7-3)和注释(7-4)表示双重do-loop指示的newPredictorPaletteEntries更新过程,其中不同分量的do-loop语句对应于外循环。因此,为每个颜色分量更新newPred ictorPaletteEntries值。由Note(7-5)和Note(7-6)表示的双重do-loop指示的Pre dictorPaletteEntries更新过程与表5中现有的更新过程保持一致。In the above example, the two do-loop statements of the first part of the newPredictorPaletteEntries update are represented by annotations (7-1) and (7-2), where the do-loop statements for different color components correspond to the outer loop. Therefore, the remaining newPredictorPaletteEntries values are updated for each color component. The newPredictorPaletteEntries update process indicated by a double do-loop is denoted by Notes (7-3) and (7-4), where the do-loop statements of different components correspond to the outer loop. Therefore, update the newPred ictorPaletteEntries value for each color component. The update process of Pre dictorPaletteEntries indicated by the double do-loops represented by Note(7-5) and Note(7-6) is consistent with the existing update process in Table 5.

在另一个实施例中,变量PredictorPaletteSize和PredictorPaletteEntries被修改,如表8中的以下示例性伪代码所示。In another embodiment, the variables PredictorPaletteSize and PredictorPaletteEntries are modified as shown in the following exemplary pseudocode in Table 8.

表8.Table 8.

Figure BDA0003386477810000192
Figure BDA0003386477810000192

Figure BDA0003386477810000201
Figure BDA0003386477810000201

在上述示例中,newPredictorPaletteEntries和PredictorPaletteEntries更新过程的双循环(two-loop)语句由注释(8-1)、注释(8-2)、注释(8-3)和注释(8-4)表示,其中不同颜色分量的do-loop语句对应于外循环。因此,为每个颜色分量更新newPredictorPaletteEntries值和PredictorPaletteEntries。In the above example, the two-loop statement of the update process of newPredictorPaletteEntries and PredictorPaletteEntries is represented by annotation (8-1), annotation (8-2), annotation (8-3), and annotation (8-4), where The do-loop statements for the different color components correspond to the outer loop. Therefore, the newPredictorPaletteEntries value and PredictorPaletteEntries are updated for each color component.

在表6至表8中已经示出了用于更新过程对相同颜色分量的调色板预测值进行聚集的各种示例,其中根据本发明的实施例,已经使用HEVC语法元素来通过对相同颜色分量的调色板预测值进行聚集来演示更新过程。然而,本发明不限于这些示例中列出的特定语法元素和特定伪代码。本领域的技术人员可以在不偏离本发明的精神的情况下实践本发明。Various examples for the update process to aggregate palette prediction values for the same color components have been shown in Tables 6 to 8, where HEVC syntax elements have been used to The component palette predictions are aggregated to demonstrate the update process. However, the invention is not limited to the specific syntax elements and specific pseudocode listed in these examples. Those skilled in the art can practice the present invention without departing from the spirit of the present invention.

将相同颜色分量的调色板条目语义聚集Semantic clustering of palette entries of the same color component

在当前的SCM4.0中,语法元素palette_entry用于指定当前调色板的调色板条目中的分量的值。变量PredictorPaletteEntries[cIdx][i]指定颜色分量cIdx的预测值调色板中的第i个元素。变量numComps是如等式(1)所示导出的。变量CurrentPaletteEntries[cIdx][i]指定颜色分量cIdx的当前调色板中的第i个元素,并且如表9中的以下示例性伪代码所示导出。In the current SCM4.0, the syntax element palette_entry is used to specify the value of the component in the palette entry of the current palette. The variable PredictorPaletteEntries[cIdx][i] specifies the ith element in the palette of predicted values for color component cIdx. The variable numComps is derived as shown in equation (1). The variable CurrentPaletteEntries[cIdx][i] specifies the ith element in the current palette of color components cIdx, and is derived as shown in the following exemplary pseudocode in Table 9.

表9.Table 9.

Figure BDA0003386477810000211
Figure BDA0003386477810000211

如表9所示,调色板预测值的CurrentPaletteEntries如注释(9-1)和注释(9-2)所示更新,其中不同颜色分量的do-loop语句对应于内循环。因此,对于每个条目,更新三个颜色分量。此外,来自新调色板条目的CurrentPaletteEntries将更新为注释(9-3)和注释(9-4)所示,其中不同颜色分量的do-loop语句对应于外循环。因此,为每个颜色分量更新CurrentPaletteEntries值。As shown in Table 9, the CurrentPaletteEntries of the palette predictions are updated as shown in Notes (9-1) and (9-2), where do-loop statements for different color components correspond to inner loops. Therefore, for each entry, the three color components are updated. Additionally, the CurrentPaletteEntries from the new palette entry will be updated as shown in Notes (9-3) and (9-4), where the do-loop statements for the different color components correspond to the outer loop. Therefore, the CurrentPaletteEntries value is updated for each color component.

在一个实施例中,三个分量中的每一个的调色板预测值可以聚集在一起。对现有过程的示例性改变如下所示。In one embodiment, the palette prediction values for each of the three components may be clustered together. Exemplary changes to existing procedures are shown below.

如等式(1)所示导出变量numComps。变量CurrentPaletteEntries[cIdx][i]指定颜色分量cIdx的当前调色板中的第i个元素,并且如表10中的以下示例性伪代码所示导出。The variable numComps is derived as shown in equation (1). The variable CurrentPaletteEntries[cIdx][i] specifies the ith element in the current palette of color components cIdx, and is derived as shown in the following exemplary pseudocode in Table 10.

表10.Table 10.

Figure BDA0003386477810000221
Figure BDA0003386477810000221

如表10所示,来自调色板预测值的CurrentPaletteEntries如注释(10-1)和注释(10-2)所示更新,其中不同颜色分量的do-loop语句对应于外循环。因此,为每个颜色分量更新CurrentPaletteEntries值。新调色板条目中的CurrentPaletteEn tries如注释(10-3)和注释(10-4)所示更新,且与表9保持一致。As shown in Table 10, the CurrentPaletteEntries from the palette predictions are updated as shown in annotations (10-1) and (10-2), where the do-loop statements for different color components correspond to the outer loop. Therefore, the CurrentPaletteEntries value is updated for each color component. The CurrentPaletteEn tries in the new palette entry are updated as indicated in Notes (10-3) and (10-4) and are consistent with Table 9.

在另一实施例中,三个分量可以组合在一起。更改如下所示。In another embodiment, the three components may be combined together. The changes are as follows.

如等式(1)所示导出变量numComps:The variable numComps is derived as shown in equation (1):

变量CurrentPaletteEntries[cIdx][i]指定用于颜色分量cIdx的当前调色板中的第i个元素,并且如表11中的以下示例性伪代码所示导出。The variable CurrentPaletteEntries[cIdx][i] specifies the ith element in the current palette for color component cIdx, and is derived as shown in the following exemplary pseudocode in Table 11.

表11.Table 11.

Figure BDA0003386477810000222
Figure BDA0003386477810000222

Figure BDA0003386477810000231
Figure BDA0003386477810000231

如表11所示,调色板预测值中的CurrentPaletteEntries和来自新调色板条目的CurrentPaletteEntries如注释(11-1)、注释(11-2)、注释(11-3)和注释(11-4)所示更新,其中不同颜色分量的do-loop语句对应于外循环。因此,为每个颜色分量更新CurrentPaletteEntries值。As shown in Table 11, the CurrentPaletteEntries in the palette predictions and the CurrentPaletteEntries from the new palette entries are as Annotation(11-1), Annotation(11-2), Annotation(11-3) and Annotation(11-4 ), where the do-loop statements for the different color components correspond to the outer loop. Therefore, the CurrentPaletteEntries value is updated for each color component.

根据本发明的实施例,在表10和表11中已经示出了用于更新处理的相同颜色分量的调色板条目语义的聚集的各种示例,其中HEVC语法元素已经用于通过对相同颜色分量的调色板条目语义进行聚集来演示更新过程。然而,本发明不限于这些示例中列出的特定语法元素和特定伪代码。本领域的技术人员可以在不偏离本发明的精神的情况下实践本发明。Various examples of aggregation of palette entry semantics for the same color component of update processing have been shown in Tables 10 and 11, where HEVC syntax elements have been used to pass the same color The palette entry semantics of the components are aggregated to demonstrate the update process. However, the invention is not limited to the specific syntax elements and specific pseudocode listed in these examples. Those skilled in the art can practice the present invention without departing from the spirit of the present invention.

其他调色板语法聚集Additional palette syntax aggregation

在SCM-4.0中,调色板索引被聚集在前面,并且跳出值在最后被聚集。调色板索引和跳出值用旁路二进制文件(bypass bin)编解码。使用调色板索引对跳出值进行聚集(即,聚集旁路编解码的二进制文件)可以增加解析吞吐量。在SCM-4.0中,要解析的跳出值的数量取决于调色板运行模式、调色板索引和调色板运行。因此,跳出值只能在最后聚集。为了使用调色板索引对跳出值进行聚集,公开如下几种方法。In SCM-4.0, palette indices are clustered first, and bounce values are clustered last. Palette indices and jump values are encoded and decoded using bypass bins. Aggregating bounced values using palette indices (ie, aggregating bypass-encoded binaries) can increase parsing throughput. In SCM-4.0, the number of bounce values to resolve depends on the palette run mode, palette index, and palette run. Therefore, bounce values can only be aggregated at the end. In order to aggregate the bounced values using the palette index, the following methods are exposed.

方法一:使用调色板索引对前面的跳出值进行聚集:Method 1: Use the palette index to aggregate the previous bounce values:

如果跳出值聚集在前面,则要解析的跳出值的数量应该与调色板运行无关。对于跳出值解析,为了去除调色板运行的数据依赖性,当从上方行复制跳出样本时,本发明的实施例改变了复制上方运行模式行为。如果预测变量是跳出样本,则将跳出样本视为预测变量复制模式中的预定义颜色索引。If the bounces are clustered in front, the number of bounces to resolve should be independent of palette runs. For bounce value parsing, in order to remove the data dependency of the palette run, embodiments of the present invention change the copy-over-run mode behavior when copying bounce samples from the row above. If the predictor is a dropout sample, the dropout sample is considered a predefined color index in the predictor replication mode.

在复制上方运行模式中,传送或导出“调色板运行”值以指示要从上方行复制的随后样本的数量。颜色指数等于上方行中的颜色指数。在一个实施例中,如果上方或左侧样本是跳出样本,则将上方样本的颜色指数视为预定义的颜色指数(例如0)。当前索引设置为预定义的索引。这些预测值复制模式不需要跳出值。在该方法中,即使被标志的索引等于跳出索引,调色板运行也可以被标志用于索引运行模式。如果跳出索引的运行大于0(例如N,N>0),则用编解码的跳出值重构第一个样本。可以将第一个样本的索引设置为跳出索引或预定义的颜色索引。将剩余N个样本的索引设置为预定索引(例如,索引0),并且利用预定索引(例如,索引0)的值重构剩余的N个样本。在一个实施例中,除了索引运行模式的第一个样本之外,运行模式(例如,adjustIndexMax)中的最大码字索引是固定的(例如固定为indexMax-1)。对于CU中的第一个样本,adjus tIndexMax等于indexMax。仍然可以应用冗余索引删除。在这种方法中,需要解析的跳出值的数量取决于等于跳出索引的解析/重构索引的数量。例如,如果调色板索引用截断的二进制代码编解码,并且编解码的二进制文件都是1,那么比较解析索引(parsed index)是跳出索引。需要解析的跳出值的数量与调色板运行无关。因此,利用调色板索引,跳出值的语法可以放到前面(即调色板运行之前)。In Copy Above Run mode, the Palette Run value is transferred or exported to indicate the number of subsequent samples to be copied from the top row. The color index is equal to the color index in the upper row. In one embodiment, if the upper or left sample is a pop-out sample, the color index of the upper sample is treated as a predefined color index (eg, 0). The current index is set to a predefined index. These predictor copy modes do not require jump values. In this method, palette run can be flagged for index run mode even if flagged index is equal to jump index. If the run of the skip index is greater than 0 (eg N, N>0), then reconstruct the first sample with the codec's skip value. The index of the first sample can be set to a jump index or a predefined color index. The index of the remaining N samples is set to a predetermined index (eg, index 0), and the remaining N samples are reconstructed using the value of the predetermined index (eg, index 0). In one embodiment, the maximum codeword index in a mode of operation (eg, adjustIndexMax) is fixed (eg, fixed at indexMax-1) except for the first sample of the index mode of operation. For the first sample in the CU, adjustIndexMax equals indexMax. Redundant index removal can still be applied. In this approach, the number of bounce values that need to be resolved depends on the number of resolved/refactored indexes equal to the bounce index. For example, if the palette index is encoded with a truncated binary code, and the encoded and decoded binaries are both 1, then comparing the parsed index is the jump index. The number of bounce values that need to be resolved is independent of palette runs. Therefore, using the palette index, the syntax of the jump value can be brought to the front (ie, before the palette runs).

语法顺序示例1:copy_above_run或number_run的数量→last_run_mode→运行类型聚集(上下文编解码)→调色板索引聚集(旁路编解码)→跳出值聚集(旁路编解码)→运行长度聚集。Syntax sequence example 1: number of copy_above_run or number_run → last_run_mode → run type aggregation (context codec) → palette index aggregation (bypass codec) → jump value aggregation (bypass codec) → run length aggregation.

在这种情况下,last_run_mode表示最后一个运行模式是copy_above_run或index_run。例如,在编码/解码运行类型聚集中,如果编解码/解码的index_run数量等于index_run的数量,并且last_run_mode是index_run,则运行类型聚集将被终止。如果编解码/解码的index_run数量等于index_run的数量,而last_run_mode是copy_above_run,则运行类型聚集也将被终止,而copy_above_run被插入到末尾。In this case, last_run_mode indicates that the last run mode was copy_above_run or index_run. For example, in encoding/decoding run type aggregation, if the number of index_runs for encoding/decoding is equal to the number of index_runs, and last_run_mode is index_run, the run type aggregation will be terminated. If the number of codec/decode index_runs is equal to the number of index_runs, and the last_run_mode is copy_above_run, the run type aggregation will also be terminated, and copy_above_run is inserted at the end.

语法顺序示例2:copy_above_run或index_run的数量→运行类型聚集(上下文编解码)→last_run_mode→调色板索引聚集(旁路编解码)→跳出值聚集(旁路编解码)→运行长度聚集。Syntax sequence example 2: number of copy_above_run or index_run → run type aggregation (context codec) → last_run_mode → palette index aggregation (bypass codec) → jump value aggregation (bypass codec) → run length aggregation.

在这种情况下,last_run_mode指示最后一个运行模式是copy_above_run还是index_run。例如,在编码/解码运行类型聚集中,如果编解码/解码的index_run数量等于index_run的数量,则运行类型聚集将被终止,并且last_run_mode被标示。如果last_run_mode为copy_above_run,则在末尾插入copy_above_run。In this case, last_run_mode indicates whether the last run mode was copy_above_run or index_run. For example, in encoding/decoding run type aggregation, if the number of index_runs for encoding/decoding is equal to the number of index_runs, the run type aggregation will be terminated and last_run_mode is marked. If last_run_mode is copy_above_run, insert copy_above_run at the end.

语法顺序示例3:copy_above_run或index_run的数量→运行类型聚集(上下文编解码)→调色板索引聚集(旁路编解码)→跳出值聚集(旁路编解码)→last_run_mode→运行长度聚集。Syntax sequence example 3: number of copy_above_run or index_run → run type aggregation (context codec) → palette index aggregation (bypass codec) → skip value aggregation (bypass codec) → last_run_mode → run length aggregation.

在这种情况下,last_run_mode表示最后一个运行模式是copy_above_run或index_run。例如,在编码/解码运行类型聚集中,如果编解码/解码的index_run数量等于index_run的数量,则运行类型聚集将被终止。标示last_run_mode。如果last_run_mode为copy_above_run,则在末尾插入一个copy_above_run。In this case, last_run_mode indicates that the last run mode was copy_above_run or index_run. For example, in encoding/decoding run type aggregation, if the number of index_runs for encoding/decoding is equal to the number of index_runs, the run type aggregation will be terminated. Mark last_run_mode. If last_run_mode is copy_above_run, insert a copy_above_run at the end.

语法顺序示例4:copy_above_run的数量或index_run的数量→运行类型聚集(上下文编解码)→调色板索引聚集(旁路编解码)→last_run_mode→跳出值(旁路编解码)聚集→运行长度聚集。Syntax sequence example 4: number of copy_above_runs or number of index_runs → run type aggregation (context codec) → palette index aggregation (bypass codec) → last_run_mode → skip value (bypass codec) aggregation → run length aggregation.

在这种情况下,last_run_mode指示最后一个运行模式是copy_above_run还是index_run。例如,在编码/解码运行类型聚集中,如果编解码/解码的index_run数量等于index_run的数量,则运行类型聚集将被终止。标示last_run_mode。如果last_run_mode为copy_above_run,则在最后插入一个copy_above_run。In this case, last_run_mode indicates whether the last run mode was copy_above_run or index_run. For example, in encoding/decoding run type aggregation, if the number of index_runs for encoding/decoding is equal to the number of index_runs, the run type aggregation will be terminated. Mark last_run_mode. If last_run_mode is copy_above_run, insert a copy_above_run at the end.

语法顺序示例5:copy_above_run的数量或index_run的数量→调色板索引聚集→跳出值聚集→last_run_mode→运行类型聚集→运行长度聚集。Syntax sequence example 5: number of copy_above_runs or number of index_runs → palette index aggregation → jump value aggregation → last_run_mode → run type aggregation → run length aggregation.

在这种情况下,last_run_mode指示最后一个运行模式是copy_above_run还是index_run。例如,在编码/解码运行类型聚集中,如果编解码/解码的index_run数量等于index_run的数量,则运行类型聚集将被终止。如果last_run_mode为copy_above_run,则在末尾插入一个不被标示的copy_above_run。对于最后一个调色板运行模式,调色板运行被推断为在PU/CU的末尾。In this case, last_run_mode indicates whether the last run mode was copy_above_run or index_run. For example, in encoding/decoding run type aggregation, if the number of index_runs for encoding/decoding is equal to the number of index_runs, the run type aggregation will be terminated. If last_run_mode is copy_above_run, insert an unmarked copy_above_run at the end. For the last palette run mode, the palette run is inferred to be at the end of the PU/CU.

语法顺序示例6:copy_above_run的数量或index_run的数量→调色板索引聚集→last_run_mode→跳出值聚集→运行类型聚集→运行长度聚集。Syntax sequence example 6: number of copy_above_runs or number of index_runs → palette index aggregation → last_run_mode → jump value aggregation → run type aggregation → run length aggregation.

在这种情况下,last_run_mode指示最后一个运行模式是copy_above_run还是index_run。例如,在编码/解码运行类型聚集中,如果编解码/解码的index_run数等于index_run的数量,则运行类型聚集将被终止。如果last_run_mode为copy_above_run,则copy_above_run被插入在末尾,而不标示。对于最后一个调色板运行模式,调色板运行被推断为在PU/CU的末尾。In this case, last_run_mode indicates whether the last run mode was copy_above_run or index_run. For example, in encoding/decoding run type aggregation, if the number of index_runs for encoding/decoding is equal to the number of index_runs, the run type aggregation will be terminated. If last_run_mode is copy_above_run, copy_above_run is inserted at the end without marking. For the last palette run mode, the palette run is inferred to be at the end of the PU/CU.

语法顺序示例7:copy_above_run的数量或index_run的数量→调色板索引聚集→跳出值聚集→last_run_mode→交错{调色板运行类型,调色板运行长度}。Syntax sequence example 7: number of copy_above_runs or number of index_runs → palette index aggregation → skip value aggregation → last_run_mode → interleave {palette run type, palette run length}.

在这种情况下,last_run_mode指示最后一个运行模式是copy_above_run还是index_run。例如,在编码/解码运行类型聚集中,如果编解码/解码的index_run数量等于index_run的数量,则运行类型聚集将被终止。如果last_run_mode为copy_above_run,则copy_above_run被插入在末尾,而不标示。对于最后一个调色板运行模式,调色板运行被推断为在PU/CU的末尾。In this case, last_run_mode indicates whether the last run mode was copy_above_run or index_run. For example, in encoding/decoding run type aggregation, if the number of index_runs for encoding/decoding is equal to the number of index_runs, the run type aggregation will be terminated. If last_run_mode is copy_above_run, copy_above_run is inserted at the end without marking. For the last palette run mode, the palette run is inferred to be at the end of the PU/CU.

语法顺序示例8:copy_above_run的数量或index_run的数量→调色板索引聚集→last_run_mode→跳出值聚集→交错{调色板运行类型,调色板运行长度}。Syntax sequence example 8: number of copy_above_runs or number of index_runs → palette index aggregation → last_run_mode → skip value aggregation → interleave {palette run type, palette run length}.

在这种情况下,last_run_mode指示最后一个运行模式是copy_above_run还是index_run。例如,在编码/解码运行类型聚集中,如果编解码/解码的index_run数量等于index_run的数量,则运行类型聚集将被终止。如果last_run_mode为copy_above_run,则copy_above_run被插入在末尾,而不被标示。对于最后一个调色板运行模式,调色板运行被推断为在PU/CU的末尾。In this case, last_run_mode indicates whether the last run mode was copy_above_run or index_run. For example, in encoding/decoding run type aggregation, if the number of index_runs for encoding/decoding is equal to the number of index_runs, the run type aggregation will be terminated. If last_run_mode is copy_above_run, copy_above_run is inserted at the end without being marked. For the last palette run mode, the palette run is inferred to be at the end of the PU/CU.

在上述示例中,copy_above_run对应于上述“复制上方运行模式”的示例性语法元素。此外,index_run对应于“运行模式”的示例性语法元素。In the above example, copy_above_run corresponds to the above-described exemplary syntax element of "copy above run mode". Furthermore, index_run corresponds to an exemplary syntax element of "run mode".

在上述语法顺序的示例1、2、3和5中,“调色板索引聚集(旁路编解码)→跳出(旁路编解码)值聚集”可以是“交错{调色板索引,跳出值}”。调色板索引和跳出值可以以交错方式进行编解码。如果解析的索引等于跳出索引,则可以立即解析跳出值。In Examples 1, 2, 3, and 5 of the above syntax sequence, "palette index aggregation (bypass codec) → skip (bypass codec) value aggregation" can be "interleave { palette index, skip value }". Palette indices and jump values can be encoded and decoded in an interleaved fashion. If the parsed index is equal to the bounce index, the bounce value can be parsed immediately.

在上述语法顺序的示例2至7中,“last_run_mode”可以在“copy_above_run的数量或index_run的数量”之后被标示。In Examples 2 to 7 of the above syntax sequence, "last_run_mode" may be indicated after "number of copy_above_runs or number of index_runs".

在上述语法顺序的示例1至8中,可以在标示最后一个调色板运行之前的任何地方标示“last_run_mode”。In Examples 1 to 8 of the above syntax sequence, "last_run_mode" may be indicated anywhere before the last palette run is indicated.

在上述语法顺序的示例1至4中,调色板运行聚集在调色板运行聚集之前被解码。因此,对于调色板运行信令,最大可能运行(maximum possible run)可以进一步减去(subtracted by)剩余的索引运行模式的数量、剩余的复制上方运行模式的数量、或剩余的索引的数量运行模式+剩余的复制上方运行模式的数量。例如,maxPaletteRun=nCbS*nCbS–scanPos–1–剩余的COPY_INDEX_MODE的数量,或maxPaletteRun=nCbS*nCbS–scanPos–1–剩余的COPY_ABOVE_MODE的数量,或maxPaletteRun=nCbS*nCbS–scanPos–1–剩余的COPY_ABOVE_MODE的数量–剩余的COPY_INDEX_MODE的数量。在上述示例中,maxPaletteRun对应于用于最大调色板运行的示例性语法元素,nCbS对应于用于当前亮度编解码块的大小的示例性语法元素,scanPos对应于当前像素的扫描位置。In Examples 1 to 4 of the above syntactic sequence, the palette-run-gather is decoded before the palette-run-gather. Thus, for palette run signaling, the maximum possible run may be further subtracted by the number of index run modes remaining, the number of copy-over run modes remaining, or the number of index runs remaining pattern + the number of remaining patterns to run above the copy. For example, maxPaletteRun=nCbS*nCbS–scanPos–1–number of COPY_INDEX_MODEs remaining, or maxPaletteRun=nCbS*nCbS–scanPos–1–number of COPY_ABOVE_MODEs remaining, or maxPaletteRun=nCbS*nCbS–scanPos–1–number of COPY_ABOVE_MODEs remaining Quantity – The number of COPY_INDEX_MODE remaining. In the above example, maxPaletteRun corresponds to an exemplary syntax element for maximum palette run, nCbS corresponds to an exemplary syntax element for the size of the current luma codec block, and scanPos corresponds to the scan position of the current pixel.

在上述语法顺序的示例1至7中,对于最后一个调色板运行模式,调色板运行被推断为在PU/CU的末尾。In Examples 1 to 7 of the above syntax sequence, for the last palette run mode, the palette run is inferred to be at the end of the PU/CU.

方法2:使用跳出值将调色板索引聚集到最后。Method 2: Cluster the palette index to the end using a bounce value.

在SCM-4.0中,调色板运行的上下文形成取决于调色板索引。因此,调色板索引只能在调色板运行前进行编解码。为了将调色板索引聚集到最后,调色板运行的上下文形成应该与调色板索引无关。In SCM-4.0, the context in which the palette operates depends on the palette index. Therefore, the palette index can only be encoded and decoded before the palette is run. In order to cluster the palette index to the end, the context in which the palette runs should be formed independent of the palette index.

因此,调色板运行的上下文形成需要改变,使得调色板运行的上下文形成将仅取决于当前调色板运行模式、先前调色板运行模式、先前调色板运行、前一样本的调色板运行模式、前一样本的调色板运行,或上述信息的组合。或者,调色板运行可以用旁路二进制文件进行编解码。Therefore, the context formation of the palette run needs to be changed so that the context formation of the palette run will depend only on the current palette run mode, previous palette run mode, previous palette run, previous sample's palette palette run mode, palette run of the previous sample, or a combination of the above. Alternatively, palette runs can be encoded and decoded with bypass binaries.

调色板索引映射编解码的语法顺序的各种示例如下所示。Various examples of syntax orders for palette index mapping codecs are shown below.

语法顺序示例1:copy_above_run的数量或index_run的数量→last_run_mode→运行类型聚集(上下文编解码)→运行长度聚集(不依赖于调色板索引)→调色板索引聚集(旁路编解码)→跳出值聚集(旁路编解码)。Syntax sequence example 1: number of copy_above_run or number of index_run → last_run_mode → run type aggregation (context codec) → run length aggregation (does not depend on palette index) → palette index aggregation (bypass codec) → jump out Value aggregation (codec bypass).

在这种情况下,last_run_mode表示最后一个运行模式是copy_above_run还是index_run。例如,当编码/解码运行类型聚集时,如果编解码/解码的index_run数量等于index_run的数量,且last_run_mode是index_run,则运行类型聚集将被终止。如果编解码/解码的index_run数量等于index_run的数量,而last_run_mode为copy_above_run,则运行类型聚集也将被终止,并且copy_above_run被插入至末尾。对于最后一个调色板运行模式,调色板运行被推断为在PU/CU的末尾。In this case, last_run_mode indicates whether the last run mode was copy_above_run or index_run. For example, when encoding/decoding run type aggregation, if the number of index_runs for encoding/decoding is equal to the number of index_runs, and last_run_mode is index_run, the run type aggregation will be terminated. If the number of codec/decode index_runs is equal to the number of index_runs, and the last_run_mode is copy_above_run, the run type aggregation will also be terminated, and copy_above_run is inserted at the end. For the last palette run mode, the palette run is inferred to be at the end of the PU/CU.

语法顺序示例2:copy_above_run的数量或index_run的数量→运行类型聚集→last_run_mode→运行长度聚集→调色板索引聚集→跳出值聚集。Syntax sequence example 2: number of copy_above_runs or number of index_runs → run type aggregation → last_run_mode → run length aggregation → palette index aggregation → jump value aggregation.

在这种情况下,last_run_mode表示最后一个运行模式是copy_above_run还是index_run。例如,当编码/解码运行类型分组时,如果编解码/解码的index_run数量等于index_run的数量,则运行类型聚集将被终止,并且标示last_run_mode。如果last_run_mode为copy_above_run,则将copy_above_run插入到末尾。对于最后一个调色板运行模式,调色板运行被推断为在PU/CU的末尾。In this case, last_run_mode indicates whether the last run mode was copy_above_run or index_run. For example, when encoding/decoding run type grouping, if the number of index_runs for encoding/decoding is equal to the number of index_runs, the run type aggregation will be terminated and last_run_mode will be indicated. If last_run_mode is copy_above_run, insert copy_above_run at the end. For the last palette run mode, the palette run is inferred to be at the end of the PU/CU.

语法顺序示例3:交错{调色板运行类型,调色板运行长度},调色板索引聚集→跳出值聚集。Syntax Sequence Example 3: Interleave {Palette Run Type, Palette Run Length}, Palette Index Aggregation → Jump Value Aggregation.

在上述语法顺序的示例1至3中,“调色板索引聚集→跳出值聚集”可以是“交错{调色板索引,跳出值}”。调色板索引和跳出值可以以交错方式进行编解码。如果解析的索引等于跳出索引,则可以立即解析跳出值。In Examples 1 to 3 of the above syntactic order, "palette index aggregation → jump value aggregation" may be "interleaved {palette index, jump value}". Palette indices and jump values can be encoded and decoded in an interleaved fashion. If the parsed index is equal to the bounce index, the bounce value can be parsed immediately.

在上述语法顺序的示例1至3中,可以在标示最后一个调色板运行之前的任何地方标示“last_run_mode”。In Examples 1 to 3 of the above syntax sequence, "last_run_mode" may be indicated anywhere before the last palette run is indicated.

在上述语法顺序的示例1和2中,调色板运行聚集可以在调色板索引聚集之前被解码。因此,对于调色板运行信令,最大可能的运行可以进一步减去剩余索引运行模式、剩余复制上方运行模式的数量、或剩余索引运行模式的数量+剩余复制上方运行模式的数量。例如,maxPaletteRun=nCbS*nCbS–scanPos–1–剩余COPY_INDEX_MODE的数量,或maxPaletteRun=nCbS*nCbS–scanPos–1–剩余COPY_ABOVE_MODE的数量,或maxPaletteRun=nCbS*nCbS–scanPos–1–剩余COPY_ABOVE_MODE的数量–剩余COPY_INDEX_MODE的数量。In examples 1 and 2 of the above syntactic sequence, the palette run aggregation can be decoded before the palette index aggregation. Thus, for palette run signaling, the maximum possible run can be further subtracted from the number of remaining index run modes, the number of remaining copy-over run modes, or the number of remaining index run modes + the number of remaining copy-over run modes. For example, maxPaletteRun=nCbS*nCbS–scanPos–1–number of COPY_INDEX_MODE remaining, or maxPaletteRun=nCbS*nCbS–scanPos–1–number of COPY_ABOVE_MODE remaining, or maxPaletteRun=nCbS*nCbS–scanPos–1–number of COPY_ABOVE_MODE remaining–remaining Number of COPY_INDEX_MODEs.

在上述语法顺序的示例1和2中,对于最后一个调色板运行模式,调色板运行被推断为在PU/CU的末尾。In Examples 1 and 2 of the above syntax sequence, for the last palette run mode, the palette run is inferred to be at the end of the PU/CU.

本发明还涉及下面所公开的调色板编解码的各个方面。The present invention also relates to various aspects of the palette codec disclosed below.

移除调色板索引映射解析中的行缓冲器Remove line buffer in palette index map parsing

在SCM-3.0中,以交错方式编解码四个调色板索引映射语法元素(即,调色板运行模式、调色板索引、调色板运行和跳出值)。虽然调色板运行模式的上下文形式被修改为独立于SCM-4.0中的上方样本的调色板运行模式,索引映射解析需要上方行的信息。例如,当使用复制上方运行模式时,要解析的跳出值的数量取决于要从上方行复制的跳出像素的数量。当先前编解码模式是复制上方运行模式时,索引重构也取决于上方样本的调色板索引。为了在调色板索引映射解析中保存(save)行缓冲器,公开了从上述示例中去除数据依赖关系的几种方法。In SCM-3.0, four palette index mapping syntax elements (ie, palette run mode, palette index, palette run, and skip value) are encoded and decoded in an interleaved fashion. Although the contextual form of the palette run mode is modified to be independent of the palette run mode of the upper sample in SCM-4.0, index map resolution requires information from the upper row. For example, when using the copy above run mode, the number of bounce values to resolve depends on the number of bounce pixels to be copied from the row above. When the previous codec mode is the copy-above run mode, the index reconstruction also depends on the palette index of the upper sample. Several methods for removing data dependencies from the above example are disclosed in order to save the line buffer in palette index map parsing.

方法-1:如果预测值是跳出样本,则以预测值复制模式直接复制跳出值。Method-1: If the predicted value is a jump-out sample, copy the jump-out value directly in the predicted value copy mode.

为了在计算在复制上方运行模式中要解析的跳出像素的数量期间去除依赖关系,根据本发明的实施例修改了复制上方运行模式行为,用于从上方行复制移除样本。In order to remove dependencies during the calculation of the number of bounced pixels to resolve in the run-over-copy mode, embodiments in accordance with the present invention modify the run-over-copy mode behavior for copy-removing samples from the upper row.

在复制上方运行模式中,传送或导出“调色板运行”值以指示要从上方行复制的以下样本的数量。颜色指数等于上方行中的颜色指数。根据一个实施例,如果预测值(即,上面的位置)是跳出样本,则当前样本不仅复制索引(跳出索引),而且还复制来自上方行的跳出值。在这些样本中不需要解析跳出值。在这种方法中,即使标示的索引等于跳出索引,仍可以标示运行用于索引运行模式。如果跳出索引的运行大于0(例如N,N>0),解码器将从第一个样本开始填充N个样本的重构值(或跳出值)。运行语法之后可以标示跳出值。In Copy Above Run mode, the Palette Run value is transferred or exported to indicate the number of the following samples to be copied from the top row. The color index is equal to the color index in the upper row. According to one embodiment, if the predicted value (ie, the upper position) is a jump sample, the current sample not only copies the index (the jump index), but also copies the jump value from the upper row. There is no need to parse the bounce value in these samples. In this method, even if the marked index is equal to the jump index, the run can be marked for the index run mode. If the run of the skip index is greater than 0 (eg N, N>0), the decoder will fill in the reconstructed value (or skip value) of N samples starting from the first sample. Escape values can be marked after running the syntax.

为了在先前的模式是复制上方运行模式时,去除索引解析和索引运行模式的重构的数据依赖性,当先前的模式是复制上方运行模式时,冗余索引删除被禁用,如JCTVC-T0078(JCTVC-T00784:Kim等,CE1-related:simplification for index map coding inpalette mode,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11视频编解码联合协作小组(Joint Collaborative Team on Video Coding)(JCT-VC),第20次会议:Geneva,CH,2015.2.10-18,文档编号:JCTVC-T0078)中所述。In order to remove the data dependency of index resolution and index run mode refactoring when the previous mode was a run-over-copy mode, redundant index deletion is disabled when the previous mode is run-above-copy mode, as described in JCTVC-T0078 ( JCTVC-T00784: Kim et al., CE1-related: simplification for index map coding inpalette mode, ITU-T SG 16WP 3 and ISO/IEC JTC 1/SC 29/WG 11 Joint Collaborative Team on Video Coding ) (JCT-VC), 20th meeting: Geneva, CH, 2015.2.10-18, Document No.: JCTVC-T0078).

基于方法-1,索引映射解析不依赖于上方行的信息。熵解码器可以通过仅使用先前编解码调色板运行模式和调色板索引的依赖来解析所有调色板索引映射语法。Based on method-1, index map resolution does not rely on information from the upper row. The entropy decoder can parse all palette index mapping syntaxes by using only the dependencies of the previous codec palette operating mode and palette index.

在一个实施例中,在复制索引运行模式中,发送或导出“调色板运行”值以指示要在位流中编解码的以下样本的数量。当前位置的颜色索引被编解码。然而,如果当前位置的样本是跳出样本,则不仅对当前样本的索引(跳出索引)进行编解码,而且对跳出值进行编解码。在这种方法中,即使标示的指数等于跳出索引,也可以为索引运行模式标示运行。如果跳出索引的运行大于0(例如,N,N>0),则解码器将从第一个样本开始填充N个样本的重构值(或跳出值)。运行语法之后可以标示跳出值。In one embodiment, in the copy index run mode, a "palette run" value is sent or derived to indicate the number of following samples to be encoded and decoded in the bitstream. The color index of the current position is encoded and decoded. However, if the sample at the current position is a jump-out sample, not only the index of the current sample (the jump-out index) but also the jump-out value is encoded and decoded. In this method, the run can be flagged for the index run mode even if the flagged index is equal to the jump index. If the run of the skip index is greater than 0 (eg, N, N>0), the decoder will fill in the reconstructed values (or skip values) for N samples, starting from the first sample. Escape values can be marked after running the syntax.

为了在先前的模式是复制索引运行模式时,去除索引解析和复制索引运行模式的重构的数据依赖性,当先前的模式是复制索引运行模式时,禁用冗余索引删除。In order to remove the data dependency of index resolution and reconstruction of the replicated index operational mode when the previous mode is the replicated index operational mode, redundant index deletion is disabled when the previous mode is the replicated index operational mode.

利用上述方法,索引映射解析不依赖于先前索引的信息。熵解码器可以通过使用对先前编解码的调色板运行模式和调色板索引的依赖来解析所有调色板索引映射语法。With the above approach, index map resolution does not depend on information from previous indexes. The entropy decoder can parse all palette index mapping syntaxes by using dependencies on the palette operating mode and palette index of the previous codec.

方法-2:如果预测值是跳出样本,则将跳出样本作为预测值复制模式中的预定颜色索引进行处理。Method-2: If the predicted value is a skip sample, the skip sample is processed as a predetermined color index in the predicted value copy mode.

在复制上方运行模式中,传送或导出“调色板运行”值以指示要从上方行复制的以下样本的数量。颜色索引等于上方行中的颜色索引。根据一个实施例,如果上方或左侧样本是跳出样本,则将上方样本的颜色索引视为预定义的颜色索引(例如0)。当前索引设置为预定义的索引。这些预测值复制模式不需要跳出值。根据一个实施例,即使标示的索引等于跳出索引,也可以为索引运行模式标示调色板运行。运行语法之后可以标示跳出值。如果跳出索引的运行大于0(例如N,N>0),则用编解码的跳出值重构第一个样本。可以将第一个样本的索引设置为跳出索引或预定义的颜色索引。剩余N个样本的索引被设置为预定索引(例如,索引0)。其余N个样本用预定义索引(例如索引0)的值重构。在另一个例子中,如果跳出索引的运行大于0(例如N,N>0),则用跳出值重构第一个样本,并且还需要标示随后N个样本的跳出值。剩余的样本分别标示跳出值重构。可以将第一样本和其余N个样本的索引设置为预定索引(例如,索引0)。In Copy Above Run mode, the Palette Run value is transferred or exported to indicate the number of the following samples to be copied from the top row. The color index is equal to the color index in the row above. According to one embodiment, if the upper or left sample is a pop-out sample, the color index of the upper sample is treated as a predefined color index (eg, 0). The current index is set to a predefined index. These predictor copy modes do not require jump values. According to one embodiment, a palette run may be marked for an indexed run mode even if the marked index is equal to the jump index. Escape values can be marked after running the syntax. If the run of the skip index is greater than 0 (eg N, N>0), then reconstruct the first sample with the codec's skip value. The index of the first sample can be set to a jump index or a predefined color index. The index of the remaining N samples is set to a predetermined index (eg, index 0). The remaining N samples are reconstructed with the value of a predefined index (eg index 0). In another example, if the run of the jump index is greater than 0 (eg, N, N>0), then the first sample is reconstructed with the jump value, and the jump value for the following N samples also needs to be indicated. The remaining samples are respectively marked with bounce value reconstruction. The indices of the first sample and the remaining N samples may be set to predetermined indices (eg, index 0).

根据方法-2,除了索引运行模式的第一个样本之外,运行模式(即,adjustedIndexMax)中的最大码字索引是固定的(例如固定为indexMax-1)。对于CU中的第一个样本,adjustIndexMax等于indexMax。可以继续应用冗余索引删除。According to method-2, the maximum codeword index in the run mode (ie, adjustedIndexMax) is fixed (eg, fixed at indexMax-1), except for the first sample of the index run mode. For the first sample in the CU, adjustIndexMax is equal to indexMax. Redundant index removal can continue to be applied.

根据方法-2,虽然索引映射重构仍然需要上述样本的索引值,但是熵解码器可以通过仅使用对先前编解码的调色板运行模式和调色板索引的依赖来解析所有的调色板索引映射语法。According to method-2, although the index values of the above samples are still required for index map reconstruction, the entropy decoder can resolve all palettes by using only dependencies on previously encoded palette operating modes and palette indices Index mapping syntax.

根据JCTVC-T0078,为了在先前的模式是复制上方运行模式时,去除索引运行模式的索引重构的数据依赖性,当先前的模式是复制上方运行模式.时,冗余索引删除将被禁用。According to JCTVC-T0078, in order to remove the data dependency of index rebuilds for index run mode when the previous mode was run above copy mode, redundant index deletion will be disabled when the previous mode is run above copy mode.

索引映射翻转下的复制上方模式Copy-above mode under index map rollover

本发明还涉及与索引映射编解码之前的索引映射翻转有关的问题。在解码器翻转索引映射之后,复制上方运行模式中的预测源是与以前不同的物理位置上的上方像素(physical above pixels)。图3A示出了索引编解码之前的示例索引映射翻转。图3B示出了翻转索引映射的示例。The present invention also relates to problems related to index map flipping before index map encoding and decoding. After the decoder flips the index map, the prediction source in the copy above mode of operation is the physical above pixels at different physical locations than before. Figure 3A shows an example index map flip prior to index encoding and decoding. FIG. 3B shows an example of a flip index map.

图3A示出了原始编解码单元的示例。在索引映射翻转后,最后一行中的像素(即像素0至像素7)将被翻转到第一行,如图3B所示。如果预测可以跨越CU,则由上方相邻构造像素(neighboring constructed pixel,简写为NCP)预测现在的第一行像素。如图3B所示,线填充块指示翻转的索引映射,而图3A中的透明块(clear block)表示原始索引映射。对于翻转后的其他行中的像素,复制上方运行模式中的预测成为翻转之前由下面物理位置的像素位置的预测。在该方法中,索引重构不需要第二遍(second pass)。FIG. 3A shows an example of an original codec unit. After the index map is flipped, the pixels in the last row (ie, pixels 0 to 7) will be flipped to the first row, as shown in Figure 3B. If the prediction can span CUs, the current first row of pixels is predicted from the neighboring constructed pixels (NCP for short) above. As shown in Figure 3B, the line-filled blocks indicate the inverted index map, while the clear blocks in Figure 3A represent the original index map. For pixels in other rows after flipping, the predictions in the upper operating mode are copied as predictions from the pixel positions of the underlying physical locations before flipping. In this approach, index reconstruction does not require a second pass.

然而,在索引映射编解码之前翻转索引映射意味着使用上述NCP来预测物理位置中最后一行中的像素,如图4所示。这个预测过程是无效的,因为预测值和要预测的潜在索引之间的距离很大。However, flipping the index map before encoding and decoding the index map means using the above NCP to predict the pixel in the last row in the physical location, as shown in Figure 4. This prediction process is ineffective because of the large distance between the predicted value and the potential index to be predicted.

因此,以下公开了提高与索引映射翻转有关的编解码效率的方法。Therefore, the following discloses a method for improving codec efficiency related to index map flipping.

方法1:如图5A和图5B所示,无论索引映射是否被翻转,复制上方运行模式中的索引是从其物理的上方位置(如果转置标志开启(transpose flag is on),则为左侧位置)预测的。如图5A所示,线填充块表示翻转索引映射,而图5B中的透明块代表原始的索引映射。Method 1: As shown in Figure 5A and Figure 5B, regardless of whether the index map is flipped, the index in the copy-up mode of operation is from its physical upper position (left if the transpose flag is on). location) predicted. As shown in Figure 5A, the line-filled blocks represent the inverted index map, while the transparent blocks in Figure 5B represent the original index map.

方法2:信令不同的运行扫描起始位置。该方法类似于方法1,其中复制上方运行模式中的索引是从物理的上方位置中的像素预测的。可以标示附加信息以指示“运行扫描起始位置”或“扫描模式”。“运行扫描起始位置”可以是左上、右上、左下或右下。“扫描图案”可以是水平扫描、垂直扫描、水平遍历扫描或垂直遍历扫描。Method 2: Signal different starting positions of the running scan. This method is similar to method 1, where the index in the copy-over mode of operation is predicted from the pixel in the physical over-position. Additional information can be marked to indicate the "running scan start position" or "scan mode". The Run Scan Start Position can be top left, top right, bottom left, or bottom right. The "scan pattern" can be horizontal scan, vertical scan, horizontal traversal scan, or vertical traverse scan.

方法3:如果索引映射被翻转,则从其物理的最近位置的样本预测第一行的复制上方运行编解码像素,如图6A和图6B所示。图6A示出了如线填充块所示的翻转样本,图6B示出了原始物理位置的样本。如果转置标志关闭,物理位置中最后一行的复制上方运行编解码像素是从其物理的最近位置的样本中预测的。Approach 3: If the index map is flipped, run the codec pixel over a copy of the first row of sample predictions from its physically closest position, as shown in Figures 6A and 6B. Figure 6A shows the flipped samples as indicated by the line-filled blocks, and Figure 6B shows the samples at the original physical location. If the transpose flag is off, the codec running above the copy of the last row in the physical location pixel is predicted from the sample at its physically closest location.

方法4:如果索引映射被翻转,则从上述相邻CU的物理像素位置预测最后行的复制上方运行编解码像素,如图7A和图7B所示。图7A示出了由线填充块指示的翻转像素,图7B示出了原始物理位置的样本。如果转置标志关闭,则可以从上述相邻CU的物理像素位置预测物理位置的第一行(或前M行)。M可以是1、2、或3。M也可以取决于CU大小。可以标示M,使得解码器可以相应地进行解码。Method 4: If the index map is flipped, run the codec pixel above the copy of the last row of predictions from the physical pixel positions of the adjacent CUs described above, as shown in Figures 7A and 7B. Figure 7A shows flipped pixels indicated by line fill blocks, and Figure 7B shows a sample of the original physical location. If the transpose flag is turned off, the first row (or first M rows) of the physical location can be predicted from the physical pixel locations of the aforementioned adjacent CUs. M can be 1, 2, or 3. M may also depend on the CU size. M can be marked so that the decoder can decode accordingly.

跨CU预测Cross-CU prediction

为了进一步提高编解码效率,公开了一种特殊的运行。这个特别的运行扩展了从调色板编解码CU的第一个样本开始的复制上方运行。该特殊运行可以标示一次(signaledonce)。扩展复制上方运行模式中的样本是从相邻CU中的重构像素预测的。使用SCM-4.0或SCM-3.0中指定的调色板语法对该CU中的其余样本进行编解码,不同之处在于PU/CU中的总调色板编解码样本减少。In order to further improve the efficiency of encoding and decoding, a special operation is disclosed. This particular run extends the copy above run from the first sample of the palette codec CU. The special run can be signaled once. Samples in the operating mode above extended replication are predicted from reconstructed pixels in adjacent CUs. The remaining samples in this CU are encoded and decoded using the palette syntax specified in SCM-4.0 or SCM-3.0, with the difference that the total palette encoded/decoded samples in the PU/CU are reduced.

方法1:首先标示语法元素(例如,由L表示的line_num),以指示从相邻CU中的重构像素预测前L行样本,其中L是正整数。使用SCM-4.0或SCM-3.0中的调色板语法对剩余的样本进行编解码,不同之处在于PU/CU中的总调色板编解码样本减少。对于前L行样本,自其相邻CU中的重构像素预测它们的像素值。例如,如果palette_transpose_flag为0,则使用上方CU中的重构像素。前L行样本的像素值是上方CU的最后一行的重构像素值。类似于将垂直内部预测(Intra vertical prediction)应用于前L行样本,而其余行用正常调色板模式进行编解码。Method 1: First denote a syntax element (eg, line_num denoted by L) to indicate that the first L lines of samples are predicted from reconstructed pixels in neighboring CUs, where L is a positive integer. The remaining samples are encoded and decoded using the palette syntax in SCM-4.0 or SCM-3.0, with the difference that the total palette codec samples in the PU/CU are reduced. For the first L rows of samples, their pixel values are predicted from reconstructed pixels in their neighboring CUs. For example, if palette_transpose_flag is 0, the reconstructed pixels in the CU above are used. The pixel values of the first L rows of samples are the reconstructed pixel values of the last row of the upper CU. Similar to applying Intra vertical prediction to the first L rows of samples, while the remaining rows are encoded and decoded with the normal palette mode.

图8A示出了扩展复制上方运行模式的示例,其中从位于CU边界810上方的上一行复制两行像素(即,L=2)。FIG. 8A shows an example of an extended copy-over mode of operation, where two rows of pixels are copied from the previous row above the CU boundary 810 (ie, L=2).

方法2:首先标示语法元素(例如,由M表示的pixel_num),以指示从相邻CU中的重构像素预测前M个样本,其中M是正整数。使用SCM-4.0或SCM-3.0中的调色板语法对剩余的样本进行编解码,不同之处在于PU/CU中的总调色板编解码样本减少。例如,如果palette_transpose_flag为0,则使用上方CU中的重构像素。前M个样本的像素值是上方CU的最后一行的重构像素值。类似于将垂直内部预测应用于前M行样本。如果CU的宽度为CU_width,根据SCM-4.0中的语法,从(M+1)处的第一个样本开始到CU中的(M+CU_width)个样本的第一个CU_width样本不能在复制上方运行模式中编解码。换句话说,根据SCM-4.0中的语法,扫描位置等于M到(M+CU_width-1)的样本不能在复制上方运行模式中编解码。图8B示出了通过标示语法元素pixel_num(M)来指示从重构像素预测前M(即,M=11)个样本的跨CU的预测的示例。Method 2: First denote a syntax element (eg, pixel_num denoted by M) to indicate that the first M samples are predicted from reconstructed pixels in neighboring CUs, where M is a positive integer. The remaining samples are encoded and decoded using the palette syntax in SCM-4.0 or SCM-3.0, with the difference that the total palette codec samples in the PU/CU are reduced. For example, if palette_transpose_flag is 0, the reconstructed pixels in the CU above are used. The pixel values of the first M samples are the reconstructed pixel values of the last row of the CU above. Similar to applying vertical intra-prediction to the first M rows of samples. If the width of the CU is CU_width, according to the syntax in SCM-4.0, starting from the first sample at (M+1) to the first CU_width sample of (M+CU_width) samples in the CU cannot run above the copy codec in mode. In other words, according to the syntax in SCM-4.0, samples with scan positions equal to M to (M+CU_width-1) cannot be encoded and decoded in the run-up-copy mode. 8B illustrates an example of cross-CU prediction indicating the prediction of the first M (ie, M=11) samples from reconstructed pixels by denoting the syntax element pixel_num(M).

例如,可以修改SCM-3.0中palette_coding的语法表,如表12所示。For example, the syntax table of palette_coding in SCM-3.0 can be modified, as shown in Table 12.

表12.Table 12.

Figure BDA0003386477810000321
Figure BDA0003386477810000321

Figure BDA0003386477810000331
Figure BDA0003386477810000331

如表12所示,语法元素pixel_num被并入,如注释(12-1)所示,其中在调色板索引映射编解码之前标示pixel_num。从如注释(12-2)所示的pixel_num开始的扫描位置编解码其余的调色板样本。之前的调色板样本位置是根据注释(12-3)得出的。在前pixel_num样本之后的第一个样本行不允许复制上方模式,如注释(12-4)所示。As shown in Table 12, the syntax element pixel_num is incorporated as shown in Note (12-1), where pixel_num is indicated before palette index mapping encoding and decoding. The rest of the palette samples are encoded and decoded from the scan position starting with pixel_num as shown in Note (12-2). The previous palette sample positions were derived from annotations (12-3). The first sample line after the first pixel_num samples does not allow the above pattern to be copied, as indicated in comment (12-4).

表示经调整的最大索引的变量adjustIndexMax如下导出:The variable adjustIndexMax representing the adjusted maximum index is derived as follows:

adjustedIndexMax=indexMaxadjustedIndexMax=indexMax

if(scanPos>pixel_num)if(scanPos>pixel_num)

adjustedIndexMax-=1adjustedIndexMax-=1

表示经调整的最大参考索引的变量adjustRefIndexMax导出如下:The variable adjustRefIndexMax representing the adjusted maximum reference index is derived as follows:

Figure BDA0003386477810000332
Figure BDA0003386477810000332

在上述方法1和方法2中,可以首先标示语法元素copy_from_neighboring_CU_flag。如果copy_from_neighboring_CU_flag为0,则不会标示line_num和pixel_num,并将其推断为0。如果copy_from_neighboring_CU_flag为1,则会标示line_num和pixel_num。与解析的line_num和pixel_num相等的实际line_num和pixel_num增加1。In the above method 1 and method 2, the syntax element copy_from_neighboring_CU_flag may be marked first. If copy_from_neighboring_CU_flag is 0, line_num and pixel_num will not be marked and inferred to be 0. If copy_from_neighboring_CU_flag is 1, line_num and pixel_num will be marked. The actual line_num and pixel_num equal to the parsed line_num and pixel_num are incremented by 1.

方法3:在该方法中,相邻像素用于预测在调色板模式下编解码的当前像素。首先标示Num_copy_pixel_line,指示从相邻CU中的重构像素预测前num_copy_pixel_line样本行。除了起始点改变,PU/CU中的总调色板编解码样本减少之外,剩余样本由正常调色板索引映射编解码进行编解码。Method 3: In this method, neighboring pixels are used to predict the current pixel encoded and decoded in palette mode. Num_copy_pixel_line is first labeled, indicating that the first num_copy_pixel_line sample lines are predicted from reconstructed pixels in neighboring CUs. Except that the starting point is changed and the total palette codec samples in the PU/CU are reduced, the remaining samples are encoded and decoded by the normal palette index map codec.

对于样本的前num_copy_pixel_line行,它们的像素值是从相邻CU中的重构像素预测的,其中语法元素num_copy_pixel_line对应于要复制的像素线的数量。例如,如果palette_transpose_flag为0,则使用上方CU中的重构像素,如图9A所示。通过上方CU的最后一行的重构像素值来预测前num_copy_pixel_line(例如K)行样本的像素值。其类似于将帧内垂直预测(Intra vertical prediction)应用于样本的前K行,而其余行用正常的调色板模式进行编解码。如果palette_transpose_flag为1,则使用左CU中的重构像素,如图9B所示。For the first num_copy_pixel_line lines of samples, their pixel values are predicted from reconstructed pixels in neighboring CUs, where the syntax element num_copy_pixel_line corresponds to the number of pixel lines to copy. For example, if palette_transpose_flag is 0, the reconstructed pixels in the upper CU are used, as shown in Figure 9A. The pixel values of the first num_copy_pixel_line (eg, K) lines of samples are predicted by the reconstructed pixel values of the last line of the upper CU. It is similar to applying Intra vertical prediction to the first K rows of samples, while the remaining rows are encoded and decoded with the normal palette mode. If palette_transpose_flag is 1, the reconstructed pixels in the left CU are used, as shown in Figure 9B.

num_copy_pixel_line的语法可以在调色板模式标示之后并在调色板表编解码之前标示。如果num_copy_pixel_line等于CU宽度或CU高度,则标示palette_transpose_flag以指示从上方像素或左侧像素预测整个CU。由于预测了当前CU中的所有样本,所以跳过调色板表编解码和索引映射编解码的语法。The syntax of num_copy_pixel_line can be indicated after the palette mode indication and before the palette table codec. If num_copy_pixel_line is equal to CU width or CU height, then flag palette_transpose_flag to indicate that the entire CU is predicted from upper or left pixels. Since all samples in the current CU are predicted, the syntax for palette table codec and index map codec is skipped.

如果num_copy_pixel_line小于CU宽度或CU高度,则应用普通调色板表编解码和调色板索引映射编解码。在SCM-4.0中,如果MaxPaletteIndex等于0,则palette_transpose_flag被推断为0。但是,根据当前方法,如果MaxPaletteIndex等于0,且num_copy_pixel_line不等于0,palette_transpose_flag仍然需要标示,以指示要从上方CU或左侧CU中的重构像素预测的前num_copy_pixel_line行或列样本。对于索引映射编解码,起始样本位置设置为num_copy_pixel_line*CU_width。对于具有num_copy_pixel_line*CU_width和(num_copy_pixel_line+1)*CU_width–1之间的样本位置的样本,无法选择复制上方运行模式。换句话说,样本位置小于CU_width*(num_copy_pixel_line+1)的样本不能标示为复制上方运行模式。If num_copy_pixel_line is less than CU width or CU height, normal palette table codec and palette index map codec are applied. In SCM-4.0, if MaxPaletteIndex is equal to 0, palette_transpose_flag is inferred to be 0. However, according to the current method, if MaxPaletteIndex is equal to 0 and num_copy_pixel_line is not equal to 0, palette_transpose_flag still needs to be flagged to indicate the first num_copy_pixel_line row or column samples to be predicted from reconstructed pixels in the upper CU or left CU. For index map encoding and decoding, the starting sample position is set to num_copy_pixel_line*CU_width. For samples with sample positions between num_copy_pixel_line*CU_width and (num_copy_pixel_line+1)*CU_width – 1, copy-above run mode cannot be selected. In other words, samples whose sample positions are smaller than CU_width*(num_copy_pixel_line+1) cannot be marked for copy-up operation mode.

表13示出了根据上述公开的方法的实施例的调色板编解码的示例性语法表。Table 13 shows an exemplary syntax table for palette encoding and decoding according to embodiments of the methods disclosed above.

表13.Table 13.

Figure BDA0003386477810000341
Figure BDA0003386477810000341

Figure BDA0003386477810000351
Figure BDA0003386477810000351

Figure BDA0003386477810000361
Figure BDA0003386477810000361

Figure BDA0003386477810000371
Figure BDA0003386477810000371

在表13中,语法元素num_copy_pixel_line被并入所有语法的前面,如注释(13-1)所示。如果num_copy_pixel_line等于nCbS(即CU宽度或CU高度),则语法palette_transpose_flag如注释(13-2)所示被合并。整个CU的调色板索引被分配为-1,如注释(13-3)所示,其指示从相邻CU复制像素值。如果num_copy_pixel_line不等于0,MaxPaletteIndex不大于0(例如MaxPaletteIndex等于0),则语法元素palette_transpose_flag如注释(13-4)所示被合并。num_copy_pixel_line行中的样本的调色板索引分配为-1,如注释(13-5)所示。在前nCbS*num_copy_pixel_line行之后的第一个样本行不允许复制上方模式,如注释(13-6)所示。In Table 13, the syntax element num_copy_pixel_line is incorporated in front of all syntaxes, as shown in Note (13-1). If num_copy_pixel_line is equal to nCbS (ie CU width or CU height), the syntax palette_transpose_flag is merged as shown in Note (13-2). The palette index for the entire CU is assigned -1, as shown in note (13-3), which indicates that pixel values are copied from neighboring CUs. If num_copy_pixel_line is not equal to 0 and MaxPaletteIndex is not greater than 0 (eg MaxPaletteIndex is equal to 0), the syntax element palette_transpose_flag is merged as indicated in note (13-4). The palette index for the samples in the num_copy_pixel_line line is assigned -1, as indicated in comment (13-5). The first sample line after the first nCbS*num_copy_pixel_line line does not allow copying of the pattern above, as indicated in note (13-6).

变量AdjustedMaxPaletteIndex导出如下:The variable AdjustedMaxPaletteIndex is exported as follows:

AdjustedMaxPaletteIndex=MaxPaletteIndexAdjustedMaxPaletteIndex=MaxPaletteIndex

if(PaletteScanPos>num_copy_pixel_line*nCbS)if(PaletteScanPos>num_copy_pixel_line*nCbS)

AdjustedMaxPaletteIndex-=1AdjustedMaxPaletteIndex-=1

变量adjustRefPaletteIndex如下导出:The variable adjustRefPaletteIndex is derived as follows:

Figure BDA0003386477810000372
Figure BDA0003386477810000372

Figure BDA0003386477810000381
Figure BDA0003386477810000381

如果PaletteIndexMap[xC][yC]等于-1,则相应的像素值与其相邻像素相同。根据该方法,如果上方或左侧像素不可用(例如,当应用限制性帧内预测时,在帧边界处的样本或帧间编解码的样本),则使用具有等于0的调色板索引的颜色。如果当前CU的调色板表未被编解码(例如,num_copy_pixel_line等于CU_width),则使用调色板预测值表中的第一个调色板。If PaletteIndexMap[xC][yC] is equal to -1, then the corresponding pixel value is the same as its neighbors. According to this method, if the upper or left pixels are not available (eg, samples at frame boundaries or inter-coded samples when restrictive intra prediction is applied), then the ones with a palette index equal to 0 are used. color. If the palette table of the current CU is not encoded (eg, num_copy_pixel_line is equal to CU_width), the first palette in the palette predictor table is used.

在另一示例中,如果上方或左侧像素不可用,则可以使用HEVC帧内预测边界像素填充方法来生成替换相邻像素。In another example, if upper or left pixels are not available, HEVC intra-prediction boundary pixel padding methods may be used to generate replacement adjacent pixels.

使用复制上方像素行模式的行数可以根据语法元素num_copy_pixel_line_indication导出,而不是作为num_copy_pixel_line直接标示。如果num_copy_pixel_line_indication为0,则将num_copy_pixel_line导出为0.如果num_copy_pixel_line_indication为1,则将num_copy_pixel_line导出为N,其为预定义的数字。如果num_copy_pixel_line_indication为k,则将num_copy_pixel_line导出为k*N。The number of lines using the Copy Above Pixel Line mode can be derived from the syntax element num_copy_pixel_line_indication instead of being directly indicated as num_copy_pixel_line. If num_copy_pixel_line_indication is 0, export num_copy_pixel_line as 0. If num_copy_pixel_line_indication is 1, export num_copy_pixel_line as N, which is a predefined number. If num_copy_pixel_line_indication is k, then export num_copy_pixel_line as k*N.

方法4:在该方法中,在palette_transpose_flag语法之前标示num_copy_pixel_line语法。表14示出了根据该方法的实施例的示例性调色板编解码语法表。Method 4: In this method, the num_copy_pixel_line syntax is marked before the palette_transpose_flag syntax. Table 14 shows an exemplary palette codec syntax table according to an embodiment of the method.

表14.Table 14.

Figure BDA0003386477810000382
Figure BDA0003386477810000382

Figure BDA0003386477810000391
Figure BDA0003386477810000391

Figure BDA0003386477810000401
Figure BDA0003386477810000401

在表14中,在palette_escape_val_present_flag信令之后,语法元素num_copy_pixel_line被并入,如注释(14-1)所示。如果num_copy_pixel_line不等于0,MaxPaletteIndex不大于0(例如MaxPaletteIndex等于0),则语法palette_transpose_flag如注释(14-2)所示被并入。num_copy_pixel_line行中的样本的调色板索引被分配为-1,如注释(14-3)所示。在前nCbS*num_copy_pixel_line之后的第一个样本行不允许复制上方模式,如注释(14-4)所示。In Table 14, after the palette_escape_val_present_flag signaling, the syntax element num_copy_pixel_line is incorporated as shown in Note (14-1). If num_copy_pixel_line is not equal to 0 and MaxPaletteIndex is not greater than 0 (eg MaxPaletteIndex is equal to 0), the syntax palette_transpose_flag is incorporated as indicated in Note (14-2). The palette index of the samples in the num_copy_pixel_line line is assigned -1 as indicated in comment (14-3). The first sample line after the first nCbS*num_copy_pixel_line does not allow copying of the upper pattern, as indicated in note (14-4).

语法元素num_copy_pixel_line可以在语法元素palette_escape_val_present_flag前面标示。表15示出了根据该方法的调色板编解码的示例性语法表。The syntax element num_copy_pixel_line may be indicated before the syntax element palette_escape_val_present_flag. Table 15 shows an exemplary syntax table for palette codec according to this method.

表15.Table 15.

Figure BDA0003386477810000411
Figure BDA0003386477810000411

Figure BDA0003386477810000421
Figure BDA0003386477810000421

在表15中,在palette_escape_val_present_flag语法信令之前,语法元素num_copy_pixel_line被并入,如注释(15-1)所示。如果num_copy_pixel_line不等于0并且MaxPaletteIndex不大于0(例如MaxPaletteIndex等于0),则会按照注释(15-2)所示的方式合并语法palette_transpose_flag。num_copy_pixel_line行中的样本的调色板索引被分配为-1,如注释(15-3)所示。在前个nCbS*num_copy_pixel_line行之后的第一个样本行不允许复制上方模式,如注释(15-4)所示。In Table 15, before the palette_escape_val_present_flag syntax signaling, the syntax element num_copy_pixel_line is incorporated as shown in Note (15-1). If num_copy_pixel_line is not equal to 0 and MaxPaletteIndex is not greater than 0 (eg MaxPaletteIndex is equal to 0), the syntax palette_transpose_flag is merged as shown in Note (15-2). The palette index of the samples in the num_copy_pixel_line line is assigned -1 as indicated in comment (15-3). The first sample line after the previous nCbS*num_copy_pixel_line line does not allow copying of the pattern above, as indicated in note (15-4).

在该实施例中,如果语法元素num_copy_pixel_line等于CU_width,则语法元素NumPredictedPaletteEntries和num_signaled_palette_entries均应当为0。第一编解码语法元素palette_predictor_run应为1。In this embodiment, the syntax elements NumPredictedPaletteEntries and num_signaled_palette_entries should both be zero if the syntax element num_copy_pixel_line is equal to CU_width. The first codec syntax element palette_predictor_run shall be 1.

在palette_escape_val_present_flag(例如表15)之前的信令(signaling)num_copy_pixel_line的语法设计中,NumPredictedPaletteEntries和num_signaled_palette_entries应当都为0,第一个编解码的palette_predictor_run应为1,而palette_escape_val_present_flag被推断为0。In the syntax design of signaling (signaling) num_copy_pixel_line before palette_escape_val_present_flag (eg Table 15), NumPredictedPaletteEntries and num_signaled_palette_entries should both be 0, palette_predictor_run of the first codec should be 1, and palette_escape_val_present_flag is inferred to be 0.

方法5:根据该方法,在palette_transpose_flag之后标示num_copy_pixel_line。在这种语法设计中,即使MaxPaletteIndex等于0,也需要标示语法元素palette_transpose_flag。表16示出了根据该方法的实施例的调色板编解码的示例性语法表。Method 5: According to this method, num_copy_pixel_line is marked after palette_transpose_flag. In this syntax design, even if MaxPaletteIndex is equal to 0, the syntax element palette_transpose_flag needs to be marked. Table 16 shows an exemplary syntax table for palette encoding and decoding according to an embodiment of the method.

表16.Table 16.

Figure BDA0003386477810000431
Figure BDA0003386477810000431

Figure BDA0003386477810000441
Figure BDA0003386477810000441

由于语法元素palette_transpose_flag即使在MaxPaletteIndex等于0的情况下也需要标示,所以在测试“if(MaxPaletteIndex>0)”之外会合并语法(如注释(16-1)所示)。同时,测试“if(MaxPaletteIndex>0)”中的语法元素palette_transpose_flag如注释(16-2)中的行填充文本所示删除。语法元素num_copy_pixel_line如注释(16-3)所示被并入。num_copy_pixel_line行中的样本的调色板索引被分配为-1,如注释(16-4)所示。Since the syntax element palette_transpose_flag needs to be flagged even when MaxPaletteIndex is equal to 0, syntax is merged outside of the test "if(MaxPaletteIndex>0)" (as shown in Note (16-1)). At the same time, the syntax element palette_transpose_flag in the test "if(MaxPaletteIndex>0)" is removed as indicated by the line padding text in comment (16-2). The syntax element num_copy_pixel_line is incorporated as indicated in note (16-3). The palette index of the samples in the num_copy_pixel_line line is assigned -1 as indicated in comment (16-4).

如果num_copy_pixel_line是偶数,则对于第一法线(normal line)使用从左到右扫描是自然的,如图10A所示。但是,如果num_copy_pixel_line是奇数,则有两种类型的扫描可以选择。一个是如图10B所示的第一法线的从左到右的扫描,另一个是如图10C所示的第一法线的从右到左的扫描。If num_copy_pixel_line is even, it is natural to use a left-to-right scan for the first normal line, as shown in Figure 10A. However, if num_copy_pixel_line is odd, there are two types of scans to choose from. One is a left-to-right scan of the first normal as shown in FIG. 10B , and the other is a right-to-left scan of the first normal as shown in FIG. 10C .

如图10B所示,它向下移动遍历扫描(traverse scan downward)或从第一个法线使用遍历。在图10C,它是使用从当前CU中第一个样本的遍历扫描,并跳过前num_copy_pixel_line行的扫描。在表13至16中,使用图10C中的扫描。可以相应地修改语法表用于图10B中的扫描。As shown in Figure 10B, it moves a traverse scan downward or uses a traverse from the first normal. In Figure 10C, it is using a traversal scan from the first sample in the current CU, and skipping the scan for the first num_copy_pixel_line lines. In Tables 13 to 16, the scan in Figure 1OC was used. The syntax table can be modified accordingly for the scan in Figure 10B.

方法6:表17示出了用于图10B中扫描的调色板编解码的示例性语法表。Method 6: Table 17 shows an exemplary syntax table for the palette codec scanned in Figure 10B.

表17.Table 17.

Figure BDA0003386477810000442
Figure BDA0003386477810000442

Figure BDA0003386477810000451
Figure BDA0003386477810000451

Figure BDA0003386477810000461
Figure BDA0003386477810000461

Figure BDA0003386477810000471
Figure BDA0003386477810000471

Figure BDA0003386477810000481
Figure BDA0003386477810000481

在表17中,语法元素num_copy_pixel_line被并入所有语法的前面,如注释(17-1)所示。如果num_copy_pixel_line等于nCbS(即CU宽度或CU高度),则语法palette_transpose_flag被并入,如注释(17-2)所示。整个CU的调色板索引被分配为-1,如注释(17-3)所示,其指示从相邻CU复制像素值。如果num_copy_pixel_line不等于0,并且MaxPaletteIndex不大于0(例如MaxPaletteIndex等于0),则会按照注释(17-4)的方式合并语法palette_transpose_flag。num_copy_pixel_line行中的样本的调色板索引分配给-1,如注释(17-5)所示。PaletteScanPos将重置为0,如注释(17-6)所示。由于PaletteScanPos被复位(reset),实际的样本索引需要增加num_copy_pixel_line*nCbS,如注释(17-7和17-10到17-12)所示。垂直位置需要增加num_copy_pixel_line,如注释(17-8,17-9和17-13)所示。In Table 17, the syntax element num_copy_pixel_line is incorporated in front of all syntaxes, as shown in Note (17-1). If num_copy_pixel_line is equal to nCbS (ie CU width or CU height), the syntax palette_transpose_flag is incorporated as shown in Note (17-2). The palette index for the entire CU is assigned -1, as indicated by note (17-3), which indicates that pixel values are copied from neighboring CUs. If num_copy_pixel_line is not equal to 0, and MaxPaletteIndex is not greater than 0 (eg MaxPaletteIndex is equal to 0), the syntax palette_transpose_flag will be merged as in Note (17-4). The palette indices of the samples in the num_copy_pixel_line line are assigned -1 as indicated in note (17-5). PaletteScanPos will be reset to 0 as indicated in note (17-6). Since PaletteScanPos is reset, the actual sample index needs to be increased by num_copy_pixel_line*nCbS, as shown in Notes (17-7 and 17-10 to 17-12). The vertical position needs to be increased by num_copy_pixel_line as indicated in comments (17-8, 17-9 and 17-13).

变量AdjustedMaxPaletteIndex如下导出:The variable AdjustedMaxPaletteIndex is exported as follows:

AdjustedMaxPaletteIndex=MaxPaletteIndexAdjustedMaxPaletteIndex=MaxPaletteIndex

if(PaletteScanPos>0)if(PaletteScanPos>0)

AdjustedMaxPaletteIndex-=1AdjustedMaxPaletteIndex-=1

变量adjustRefPaletteIndex如下导出:The variable adjustRefPaletteIndex is derived as follows:

Figure BDA0003386477810000482
Figure BDA0003386477810000482

Figure BDA0003386477810000491
Figure BDA0003386477810000491

注意,在上述方法3至方法6中,num_copy_pixel_line的信令也可以通过使用现有HEVC SCC规范中的palette_run语法元素和上下文来构造。例如,其可以如表18所示标示。Note that in the above methods 3 to 6, the signaling of num_copy_pixel_line can also be constructed by using the palette_run syntax element and context in the existing HEVC SCC specification. For example, it can be labeled as shown in Table 18.

表18.Table 18.

Figure BDA0003386477810000492
Figure BDA0003386477810000492

在表18中,使用上述语法,解码的copy_pixel_line_length可以在语义上是复制像素行的数量。该编解码元素的最大值为块高度-1。In Table 18, using the above syntax, the decoded copy_pixel_line_length can semantically be the number of copied pixel lines. The maximum value of this codec element is block height-1.

解码的copy_pixel_line长度也可以是使用复制像素模式的实际样本数,并且将复制像素线的数量导出为copy_pixel_line长度/block_width。注意,在该方法中,对copy_pixel_line长度施加一致性约束(conformance constraint),使得它必须是block_width的倍数。The decoded copy_pixel_line length can also be the actual number of samples using the copy pixel mode, and the number of copied pixel lines is derived as copy_pixel_line length/block_width. Note that in this method, a conformance constraint is imposed on the copy_pixel_line length such that it must be a multiple of block_width.

方法7:在该方法中,使用具有修改解码过程的当前语法结构来标示块是否从当前CU外部的复制像素模式开始的指示,以及使用复制像素模式的行数(样本数)。例如,这可以通过以下方式实现:Method 7: In this method, the current syntax structure with the modified decoding process is used to indicate whether the block starts from a copied pixel pattern outside the current CU, and the number of rows (samples) of the copied pixel pattern is used. For example, this can be achieved by:

·允许复制上方运行模式用于块中的第一个样本。这通过使用语法元素palette_run_type_flag[0][0]来指示。如果palette_run_type_flag[0][0]为1,以下行使用复制像素填充标示行数的样本。如果palette_run_type_flag[0][0]为0,剩余的语法信令(syntaxsignaling)将保持与当前语法结构相同。· Allows duplicating the run pattern above for the first sample in the block. This is indicated by using the syntax element palette_run_type_flag[0][0]. If palette_run_type_flag[0][0] is 1, the following lines are filled with samples of the indicated line number with replicated pixels. If palette_run_type_flag[0][0] is 0, the remaining syntax signaling (syntaxsignaling) will remain the same as the current syntax structure.

·当palette_run_type_flag[0][0]为1时,使用用于信令调色板运行长度的相同的语法元素来标示使用复制像素的行数。有两种方法可以使用调色板运行长度语法来通知行数。• When palette_run_type_flag[0][0] is 1, use the same syntax element used to signal the palette run length to indicate the number of lines using duplicated pixels. There are two ways to use the palette run-length syntax to notify the number of lines.

o用于复制像素模式的解码调色板运行长度R语义意味着行数(而不是样本数)。因此,复制像素的实际运行是水平扫描的解码值R*block_width,或垂直扫描的解码值R*block_height。该解码的R的最大值应为块高度(或宽度)。o The decoded palette run-length R semantics for replicating pixel patterns means the number of rows (not the number of samples). Therefore, the actual operation of copying pixels is the decoded value R*block_width for horizontal scanning, or the decoded value R*block_height for vertical scanning. The maximum value of this decoded R shall be the block height (or width).

o另一种方法是解码的调色板运行长度R是实际的复制像素运行。该方法不需要更改复制像素运行的语义和解码过程。o Another way is that the decoded palette run length R is the actual replicated pixel run. This method does not require changing the semantics and decoding process of the copied pixel operation.

注意,对于该方法,必须对解码值R施加一致性约束,使得它必须是block_width的倍数。Note that for this method, a consistency constraint must be imposed on the decoded value R such that it must be a multiple of block_width.

·当palette_run_type_flag[0][0]为1时,复制像素行之后,下一行样本不能使用复制上方运行模式。根据此条件修改解析标准,以不解析此行的run_type标志。· When palette_run_type_flag[0][0] is 1, after copying the pixel row, the next row of samples cannot use the copy above run mode. Modify the parsing criteria based on this condition to not parse the run_type flag for this line.

·当palette_run_type_flag[0][0]为0时,第一行中的其余样本不能使用复制上方运行模式。解析标准根据此条件进行修改,以不解析这些样本的run_type标志。· When palette_run_type_flag[0][0] is 0, the rest of the samples in the first row cannot use the copy above run mode. The parsing standard is modified according to this condition to not parse the run_type flag of these samples.

表19示出了根据该方法的调色板编解码的示例性语法表。复制像素模式的“调色板运行长度R”的编解码语义上意味着行数(不是样本数)。Table 19 shows an exemplary syntax table for palette codec according to this method. The codec semantics for the "palette run length R" of the copied pixel pattern means the number of rows (not the number of samples).

表19.Table 19.

Figure BDA0003386477810000501
Figure BDA0003386477810000501

Figure BDA0003386477810000511
Figure BDA0003386477810000511

Figure BDA0003386477810000521
Figure BDA0003386477810000521

Figure BDA0003386477810000531
Figure BDA0003386477810000531

在表19中,由于即使MaxPaletteIndex等于0,也需要标示语法元素palette_transpose_flag,所以在测试“if(MaxPaletteIndex>0)”之外,结合了语法(如注(19-1)所示)。同时,注释(19-2)中的行填充文本表示删除测试“if(MaxPaletteIndex>0)”内的语法元素palette_transpose_flag。整个CU的调色板索引首先被重新设置为-1,如注释(19-3)所示,其指示像素值从相邻CU复制。第一个样本(PaletteScanPos==0)的Palette_run_type_flag和paletteRun用于指示num_copy_pixel_line。如注释(19-5)所示,对于第一个样本,如果palette_run_type_flag等于COPY_ABOVE_MODE,所述maxPaletteRun被设定为等于nCbS–1,如注释(19-4)所示,并且num_copy_pixel_line等于解码的paletteRun。否则,num_copy_pixel_line设置为0。In Table 19, since the syntax element palette_transpose_flag needs to be marked even if MaxPaletteIndex is equal to 0, the syntax (as shown in Note (19-1)) is combined in addition to the test "if(MaxPaletteIndex>0)". Meanwhile, the line padding text in comment (19-2) indicates the deletion of the syntax element palette_transpose_flag within the test "if(MaxPaletteIndex>0)". The palette index for the entire CU is first reset to -1, as shown in note (19-3), which indicates that pixel values are copied from neighboring CUs. Palette_run_type_flag and paletteRun of the first sample (PaletteScanPos==0) are used to indicate num_copy_pixel_line. As noted in Note (19-5), for the first sample, if palette_run_type_flag is equal to COPY_ABOVE_MODE, the maxPaletteRun is set equal to nCbS-1, as noted in Note (19-4), and num_copy_pixel_line is equal to the decoded paletteRun. Otherwise, num_copy_pixel_line is set to 0.

表20示出了根据该方法的调色板编解码的另一示例性语法表。复制像素模式的“调色板运行长度R”的编解码是实际的运行长度,并且施加一致性约束使得R必须是CU_width的倍数。Table 20 shows another exemplary syntax table for palette codec according to this method. The codec for the "palette run length R" of the replicated pixel mode is the actual run length and imposes consistency constraints such that R must be a multiple of CU_width.

表20.Table 20.

Figure BDA0003386477810000532
Figure BDA0003386477810000532

Figure BDA0003386477810000541
Figure BDA0003386477810000541

Figure BDA0003386477810000551
Figure BDA0003386477810000551

在表20中,由于即使MaxPaletteIndex等于0,也需要标示语法元素palette_transpose_flag,所以在测试“if(MaxPaletteIndex>0”之外,结合了语法(如注(20-1)所示)。同时,注释(20-2)中的行填充文本表示删除测试“if(MaxPaletteIndex>0)”内的语法元素palette_transpose_flag。整个CU的调色板索引首先被重新设置为-1,如注释(20-3)所示,表示像素值从相邻的CU复制。第一个样本(PaletteScanPos==0)的palette_run_type_flag和paletteRun用于指示num_copy_pixel_line。如注释(20-4)所示,对于第一个样本,如果palette_run_type_flag等于COPY_ABOVE_MODE,则num_copy_pixel_line等于解码的paletteRun/nCbs。请注意,在这种情况下,对paletteRun施加一致性约束,使其必须是nCbs的倍数。否则(即palette_run_type_flag不等于COPY_ABOVE_MODE),num_copy_pixel_line设置为0。In Table 20, since the syntax element palette_transpose_flag needs to be marked even if MaxPaletteIndex is equal to 0, the syntax (as shown in Note (20-1)) is combined outside the test "if (MaxPaletteIndex>0"). At the same time, the note ( The line padding text in 20-2) indicates the deletion of the syntax element palette_transpose_flag within the test "if(MaxPaletteIndex>0)". The palette index for the entire CU is first reset to -1 as shown in note (20-3) , represents that pixel value is copied from adjacent CU. The palette_run_type_flag and paletteRun of the first sample (PaletteScanPos==0) are used to indicate num_copy_pixel_line.As shown in note (20-4), for the first sample, if palette_run_type_flag is equal to COPY_ABOVE_MODE , then num_copy_pixel_line is equal to decoded paletteRun/nCbs. Note that in this case, a consistency constraint is imposed on paletteRun so that it must be a multiple of nCbs. Otherwise (ie palette_run_type_flag is not equal to COPY_ABOVE_MODE), num_copy_pixel_line is set to 0.

方法8:根据该方法,仅测试num_copy_pixel_line=0或CU_width。通过引入新的语法元素pred_from_neighboring_pixels提供调色板模式的快捷方式。如果pred_from_neighboring_pixels为1,则显示palette_transpose_flag。Method 8: According to this method, only num_copy_pixel_line=0 or CU_width is tested. Provides a shortcut to palette mode by introducing a new syntax element pred_from_neighboring_pixels. If pred_from_neighboring_pixels is 1, display palette_transpose_flag.

如果pred_from_neighboring_pixels为1,并且palette_transpose_flag为0,则从上方CU的像素预测所有样本。如果pred_from_neighboring_pixels为1,且palette_transpose_flag为1,则从左侧CU的像素预测所有样本。如果相邻像素不可用,则有两种方法来生成替换像素。根据第一种方法,可以使用帧内预测边界(Intra predictionboundary)像素生成方法。它类似于没有残差编解码的水平或垂直帧内预测。根据第二种方法,使用调色板指数等于0的颜色。如果当前CU的调色板表未被编解码(例如,num_copy_pixel_line等于CU_width),则使用调色板预测值表中的第一个调色板。If pred_from_neighboring_pixels is 1 and palette_transpose_flag is 0, all samples are predicted from the pixels of the CU above. If pred_from_neighboring_pixels is 1 and palette_transpose_flag is 1, all samples are predicted from the pixels of the left CU. If adjacent pixels are not available, there are two ways to generate replacement pixels. According to the first method, an intra prediction boundary pixel generation method can be used. It is similar to horizontal or vertical intra prediction without residual coding. According to the second method, a color with a palette index equal to 0 is used. If the palette table of the current CU is not encoded (eg, num_copy_pixel_line is equal to CU_width), the first palette in the palette predictor table is used.

表21示出了根据该方法的调色板编解码的示例性语法表。Table 21 shows an exemplary syntax table for palette codec according to this method.

表21.Table 21.

Figure BDA0003386477810000561
Figure BDA0003386477810000561

在表21中,语法元素pred_from_neighboring_pixels语法如注释(21-1)所示被合并。如果pred_from_neighboring_pixels为真实(true),palette_transpose_flag被合并,并且整个CU的调色板索引被设置为-1,如注释(21-2)所示。In Table 21, the syntax element pred_from_neighboring_pixels syntax is merged as shown in Note (21-1). If pred_from_neighboring_pixels is true (true), the palette_transpose_flag is merged, and the palette index for the entire CU is set to -1, as indicated in note (21-2).

在方法3至方法8中,仅标示一个palette_transpose_flag。如果palette_transpose_flag等于0,则首先使用垂直复制像素模式,然后使用索引水平扫描。否则,首先使用水平复制像素,然后使用索引垂直扫描。In method 3 to method 8, only one palette_transpose_flag is marked. If palette_transpose_flag is equal to 0, the vertical copy pixel mode is used first, then the indexed horizontal scan is used. Otherwise, copy pixels horizontally first, then scan vertically using indexing.

或者,可以标示两个转置标志,例如palette_copy_pixel_transpose_flag和palette_scan_transpose_flag。Palette_copy_pixel_transpose_flag表示来自相邻CU的复制像素模式的方向。Palette_scan_transpose_flag指示调色板扫描的方向。例如,palette_copy_pixel_transpose_flag等于0表示来自上方CU的复制像素模式,而palette_copy_pixel_transpose_flag等于1表示来自左侧CU的复制像素模式。Palette_scan_transpose_flag等于0表示使用水平扫描,而Palette_scan_transpose_flag等于1表示使用垂直扫描。Alternatively, two transpose flags can be flagged, eg palette_copy_pixel_transpose_flag and palette_scan_transpose_flag. Palette_copy_pixel_transpose_flag indicates the direction of copying pixel patterns from neighboring CUs. Palette_scan_transpose_flag indicates the direction of palette scan. For example, palette_copy_pixel_transpose_flag equal to 0 indicates the copied pixel mode from the upper CU, while palette_copy_pixel_transpose_flag equal to 1 indicates the copied pixel mode from the left CU. Palette_scan_transpose_flag equal to 0 means to use horizontal scan, and Palette_scan_transpose_flag equal to 1 means to use vertical scan.

例如,在图11A中,palette_copy_pixel_transpose_flag为0,palette_scan_transpose_flag为0。在图11B中,palette_copy_pixel_transpose_flag为0,palette_scan_transpose_flag为1。在图11C中,palette_copy_pixel_transpose_flag为1,palette_scan_transpose_flag为0。For example, in FIG. 11A, palette_copy_pixel_transpose_flag is 0, and palette_scan_transpose_flag is 0. In FIG. 11B, palette_copy_pixel_transpose_flag is 0, and palette_scan_transpose_flag is 1. In FIG. 11C, palette_copy_pixel_transpose_flag is 1 and palette_scan_transpose_flag is 0.

通过反向遍历扫描和旋转遍历扫描在CU上进行预测Prediction on CU with reverse traversal scan and rotation traversal scan

根据一个实施例,跨CU的预测可以用反向遍历扫描和旋转遍历扫描来实现。图12A示出了通过反向遍历扫描跨CU预测的示例,图12B示出了通过旋转遍历扫描跨CU预测的示例。两个扫描的正常索引映射编解码的扫描位置从0开始,结束于nCbS*nCbS-num_copy_pixel_line*nCbS–1。对于样本位置等于或大于nCbS*nCbS-num_copy_pixel_line*nCbS的其余样本,PaletteIndexMap[xC][yC]设置为-1,这意味着它们的像素值与相邻像素相同。According to one embodiment, prediction across CUs may be implemented with reverse traversal scans and rotational traversal scans. FIG. 12A shows an example of cross-CU prediction by reverse traversal scanning, and FIG. 12B shows an example of cross-CU prediction by rotated traversal scanning. The normal index mapping codec for both scans starts at 0 and ends at nCbS*nCbS-num_copy_pixel_line*nCbS–1. For the remaining samples with sample positions equal to or greater than nCbS*nCbS-num_copy_pixel_line*nCbS, PaletteIndexMap[xC][yC] is set to -1, which means that their pixel values are the same as adjacent pixels.

num_copy_pixel_line的上下文形成和二值化(Binarization)Context formation and binarization of num_copy_pixel_line

语法元素num_copy_pixel_line可以使用K阶(EG-K代码)的指数-哥伦布(Exponential-Golomb)码,K阶的截断的指数-哥伦布码(截断的EG-K码),N位截断的一元码(Unary code)+EG-K代码,或调色板运行中使用的相同的二值化方法(二值化为palette_run_msb_id_plus1和palette_run_refinement_bits)。The syntax element num_copy_pixel_line can use an Exponential-Golomb code of order K (EG-K code), a truncated Exponential-Golomb code of order K (truncated EG-K code), an N-bit truncated unary code (Unary code) + EG-K code, or the same binarization method used in the palette run (binarized as palette_run_msb_id_plus1 and palette_run_refinement_bits).

上下文二进制文件(context bins)可以用于编解码num_copy_pixel_line。例如,我们可以使用与num_copy_pixel_line的调色板运行中使用的相同的二值化方法。palette_run_msb_id_plus1的前N个位可以使用上下文编解码二进制文件(bins)。例如,N可以是3。剩余的二进制文件(bins)被编解码在旁路二进制文件(bins)中。可以通过调色板运行编解码共享上下文。例如,上下文可以与扩展的复制上方运行模式共享。Context bins can be used to encode and decode num_copy_pixel_line. For example, we can use the same binarization method used in the palette run of num_copy_pixel_line. The first N bits of palette_run_msb_id_plus1 can use context codec bins. For example, N can be 3. The remaining bins are encoded and decoded in bypass bins. Codec shared contexts can be run through the palette. For example, a context can be shared with an extended copy-over-run mode.

由于num_copy_pixel_line等于CU_width和0的概率大于num_copy_pixel_line作为其他数字的概率,因此修改了代码二值化以便将等于CU_width的num_copy_pixel_line的码字(codeword)减小。例如,CU_width的值可以插入到用于二值化的码字表中的数字P(例如1)之前。等于或大于P的num_copy_pixel_line的值在编码器侧将增加1。在解码器侧,如果解析的码字为P,则表示num_copy_pixel_line等于CU_width。如果解析的码字小于P,则num_copy_pixel_line等于解析的码字。如果解析的码字大于P,则num_copy_pixel_line等于解析的码字减1。Since the probability that num_copy_pixel_line is equal to CU_width and 0 is greater than the probability that num_copy_pixel_line is other numbers, the code binarization is modified to reduce the codeword of num_copy_pixel_line equal to CU_width. For example, the value of CU_width may be inserted before the number P (eg, 1) in the codeword table for binarization. The value of num_copy_pixel_line equal to or greater than P will be incremented by 1 on the encoder side. On the decoder side, if the parsed codeword is P, it means that num_copy_pixel_line is equal to CU_width. If the parsed codeword is less than P, then num_copy_pixel_line is equal to the parsed codeword. If the parsed codeword is greater than P, then num_copy_pixel_line is equal to the parsed codeword minus 1.

在另一个实施例中,两个附加位用于指示num_copy_pixel_line是否等于0、CU_width、或其他数字。例如,“0”表示num_copy_pixel_line等于0,“10”表示num_copy_pixel_line等于CU_width,而“11+codeord-L”表示num_copy_pixel_line等于L+1。In another embodiment, two additional bits are used to indicate whether num_copy_pixel_line is equal to 0, CU_width, or other numbers. For example, "0" means that num_copy_pixel_line is equal to 0, "10" means that num_copy_pixel_line is equal to CU_width, and "11+codeord-L" means that num_copy_pixel_line is equal to L+1.

在另一个实施例中,使用两个附加位来指示num_copy_pixel_line是否等于0、CU_width、或其他数字。例如,“0”表示num_copy_pixel_line等于CU_width,“10”表示num_copy_pixel_line等于0,而“11+codeord-L”表示num_copy_pixel_line等于L+1。In another embodiment, two additional bits are used to indicate whether num_copy_pixel_line is equal to 0, CU_width, or other number. For example, "0" means that num_copy_pixel_line is equal to CU_width, "10" means that num_copy_pixel_line is equal to 0, and "11+codeord-L" means that num_copy_pixel_line is equal to L+1.

对于跨CU区域预测中提到的方法4至方法7,在调色板表编解码之后标示num_copy_pixel_line。num_copy_pixel_line的二值化可以根据调色板表编解码的解码信息进行修改。例如,如果NumPredictedPaletteEntries和num_signaled_palette_entries都为0,则这意味着至少一个样本行/列通过正常调色板模式进行编解码。因此,num_copy_pixel_line不应等于CU_width。因此,num_copy_pixel_line的码字范围被限制为从0到(CU_width-1)。例如,如果使用K阶的截断的指数-哥伦布码(截断的EG-K码)、N位截断的一元代码+EG-K代码,或在调色板运行中使用的相同的二值化方法用于对num_copy_pixel_line进行编解码,则cMax、MaxPaletteRun、或最大可能值设置为CU_width-1。用于调色板运行的二值化方法将把调色板运行二值化为palette_run_msb_id_plus1和palette_run_refinement_bits。For methods 4 to 7 mentioned in cross-CU region prediction, num_copy_pixel_line is marked after palette table encoding and decoding. The binarization of num_copy_pixel_line can be modified according to the decoding information of the palette table codec. For example, if NumPredictedPaletteEntries and num_signaled_palette_entries are both 0, this means that at least one sample row/column is encoded and decoded via normal palette mode. Therefore, num_copy_pixel_line should not be equal to CU_width. Therefore, the codeword range of num_copy_pixel_line is limited from 0 to (CU_width-1). For example, if you use a truncated exponential-Golomb code of order K (truncated EG-K code), an N-bit truncated unary code + EG-K code, or the same binarization method used in the palette run with For encoding and decoding num_copy_pixel_line, cMax, MaxPaletteRun, or the maximum possible value is set to CU_width-1. The binarization method for palette run will binarize the palette run into palette_run_msb_id_plus1 and palette_run_refinement_bits.

确定num_copy_pixel_line的搜索方法Determine the search method for num_copy_pixel_line

在另一个实施例中,公开了用于确定复制像素行数(即,num_copy_pixel_line)的搜索方法。In another embodiment, a search method for determining the number of copied pixel lines (ie, num_copy_pixel_line) is disclosed.

方法1:在编码器侧,确定num_copy_pixel_line的值。从相邻像素预测前num_copy_pixel_line列/行。剩下的样本用于导出剩余样本和索引映射的调色板。Method 1: On the encoder side, determine the value of num_copy_pixel_line. Predict the first num_copy_pixel_line columns/rows from neighboring pixels. The remaining samples are used to derive a palette of remaining samples and index mappings.

方法2:在编码器侧,使用整个CU的样本来首先导出调色板。根据该调色板表,可以使用速率失真优化(ate-distortion-optimization,简写为RDO)过程来确定num_copy_pixel_line的最佳值。内插(interpolation)可用于估计不同num_copy_pixel_line的位成本。例如,如果num_copy_pixel_line=0的位成本为R0,且CU_width为16,则num_copy_pixel_line=3的位成本等于R0*(CU_width-3)/CU_width(即13/16*R0)。Method 2: On the encoder side, use the samples of the entire CU to first derive the palette. From this palette table, an optimal value for num_copy_pixel_line can be determined using a rate-distortion-optimization (RDO) process. Interpolation can be used to estimate the bit cost of different num_copy_pixel_lines. For example, if the bit cost of num_copy_pixel_line=0 is R0 and CU_width is 16, then the bit cost of num_copy_pixel_line=3 is equal to R0*(CU_width-3)/CU_width (ie 13/16*R0).

在确定num_copy_pixel_line之后,从相邻像素预测前num_copy_pixel_line列/行。剩余的样本用于重新导出剩余样本和索引映射的调色板。After num_copy_pixel_line is determined, the first num_copy_pixel_line columns/rows are predicted from neighboring pixels. The remaining samples are used to re-export the remaining samples and index-mapped palettes.

来自相邻CU的基于行的复制像素Row-based replicated pixels from adjacent CUs

在前面的部分中,公开了来自相邻CU的基于行的复制像素用于调色板模式编解码。首先标示表示复制像素行数的语法元素num_copy_pixel_row,以从相邻CU中的重构像素指示要预测的前num_copy_pixel_row行样本。类似的概念可以应用于其他模式,如帧间模式,帧内BC模式和帧内BC模式。In the previous section, row-based replicated pixels from adjacent CUs were disclosed for palette mode codec. The syntax element num_copy_pixel_row representing the number of copied pixel rows is first indicated to indicate the first num_copy_pixel_row row samples to be predicted from reconstructed pixels in adjacent CUs. Similar concepts can be applied to other modes such as Inter mode, Intra BC mode and Intra BC mode.

在一个实施例中,来自相邻CU的基于行的复制像素被应用于帧间模式和/或帧内模式PU或CU。首先标示语法元素num_copy_pixel_row。如果num_copy_pixel_row不等于0,则标示语法元素copy_pixel_row_direction_flag以指示复制像素行的方向。如果copy_pixel_row_direction_flag为0,则num_copy_pixel_row表示从上方CU中的重构像素预测的前num_copy_pixel_row行样本。如果copy_pixel_row_direction_flag为1,则num_copy_pixel_row表示从左CU中的重构像素预测的前num_copy_pixel_row列样本。例如,图13示出了在帧间模式中编解码的8×8CU的示例。该CU的num_copy_pixel_row的值为3,且该CU的copy_pixel_row_direction_flag为0。上三行中的预测值由上方CU的最后一行的重构像素值代替。其余像素由原始帧间模式预测。它类似于对整个CU/PU执行帧间模式预测,然后用相邻像素代替前num_copy_pixel_row行或列。In one embodiment, row-based replicated pixels from adjacent CUs are applied to inter-mode and/or intra-mode PUs or CUs. The syntax element num_copy_pixel_row is first marked. If num_copy_pixel_row is not equal to 0, the syntax element copy_pixel_row_direction_flag is flagged to indicate the direction of copying the pixel row. If copy_pixel_row_direction_flag is 0, then num_copy_pixel_row represents the first num_copy_pixel_row row samples predicted from the reconstructed pixels in the CU above. If copy_pixel_row_direction_flag is 1, then num_copy_pixel_row represents the first num_copy_pixel_row column samples predicted from the reconstructed pixels in the left CU. For example, FIG. 13 shows an example of an 8x8 CU encoded and decoded in inter mode. The value of num_copy_pixel_row of the CU is 3, and the copy_pixel_row_direction_flag of the CU is 0. The predicted values in the top three rows are replaced by the reconstructed pixel values of the last row of the CU above. The remaining pixels are predicted by the original inter mode. It is similar to performing inter-mode prediction on the entire CU/PU and then replacing the first num_copy_pixel_row rows or columns with adjacent pixels.

帧内预测相邻像素构造可用于生成相邻参考像素。如果相邻像素不可用(例如,在图像边界之外),则可以应用帧内预测中的参考像素填充方法来生成相邻参考像素。帧内预测中的平滑滤波器可以被应用或关闭。Intra-predicted neighbor construction can be used to generate neighbor reference pixels. If adjacent pixels are not available (eg, outside the image boundaries), the reference pixel padding method in intra prediction can be applied to generate adjacent reference pixels. The smoothing filter in intra prediction can be applied or turned off.

语法元素num_copy_pixel_row和copy_pixel_row_direction_flag可以以CU级或PU级标示信号。可以在CU或PU前面标示Num_copy_pixel_row和copy_pixel_row_direction_flag,或者可以在CU或PU的中间标示,或者可以在CU或PU的末尾标示。例如,如果num_copy_pixel_row和copy_pixel_row_direction_flag以CU级标示并且在CU前面标示,则可以在part_mode之前标示num_copy_pixel_row和copy_pixel_row_direction_flag。可以根据num_copy_pixel_row和copy_pixel_row_direction_flag的值自适应地改变part_mode的码字。例如,如果copy_pixel_row_direction_flag为0并且num_copy_pixel_row等于或大于CU_height/2,则PART_2NxN和PART_2NxnU无效。修改part_mode的码字二值化。例如,如果删除了PART_2NxN和PART_2NxnU,则part_mode的二值化显示在表22中。The syntax elements num_copy_pixel_row and copy_pixel_row_direction_flag may indicate signals at the CU level or the PU level. Num_copy_pixel_row and copy_pixel_row_direction_flag may be indicated before the CU or PU, or may be indicated in the middle of the CU or PU, or may be indicated at the end of the CU or PU. For example, if num_copy_pixel_row and copy_pixel_row_direction_flag are indicated at the CU level and are indicated before the CU, then num_copy_pixel_row and copy_pixel_row_direction_flag may be indicated before part_mode. The codeword of part_mode may be adaptively changed according to the values of num_copy_pixel_row and copy_pixel_row_direction_flag. For example, if copy_pixel_row_direction_flag is 0 and num_copy_pixel_row is equal to or greater than CU_height/2, then PART_2NxN and PART_2NxnU are invalid. Modify the codeword binarization of part_mode. For example, if PART_2NxN and PART_2NxnU are removed, the binarization of part_mode is shown in Table 22.

表22.Table 22.

Figure BDA0003386477810000601
Figure BDA0003386477810000601

Figure BDA0003386477810000611
Figure BDA0003386477810000611

在表22中,具有线填充背景的文本对应于删除的文本。在另一个示例中,如果在CU级标示了num_copy_pixel_row和copy_pixel_row_direction_flag,并且在CU的结尾处或在CU的中间标示num_copy_pixel_row和copy_pixel_row_direction_flag,则可以在part_mode之后标示num_opy_pixel_row和copy_pixel_row_direction_flag。在接收到part_mode之后,可以限制num_copy_pixel_row和copy_pixel_row_direction_flag的值。例如,如果part_mode为PART_2NxN且copy_pixel_row_direction_flag为0,则num_copy_pixel_row的值将被限制在从0到CU_height/2的范围内。In Table 22, text with a line-filled background corresponds to deleted text. In another example, if num_copy_pixel_row and copy_pixel_row_direction_flag are indicated at the CU level, and num_copy_pixel_row and copy_pixel_row_direction_flag are indicated at the end of the CU or in the middle of the CU, then num_opy_pixel_row and copy_pixel_row_direction_flag may be indicated after part_mode. After receiving part_mode, the values of num_copy_pixel_row and copy_pixel_row_direction_flag can be limited. For example, if part_mode is PART_2NxN and copy_pixel_row_direction_flag is 0, the value of num_copy_pixel_row will be restricted to the range from 0 to CU_height/2.

帧内边界(Intra Boundary)参考像素Intra Boundary reference pixel

在帧内模式中,如果num_copy_pixel_row不为0,则相邻参考像素可以与从源自HEVC的像素相同。它与执行PU的帧内预测相同,然后用相邻CU的像素替换前几行或列。In intra mode, if num_copy_pixel_row is not 0, the adjacent reference pixel may be the same as the pixel from HEVC origin. It is the same as performing intra prediction of the PU and then replacing the first few rows or columns with pixels from neighboring CUs.

在另一个实施例中,如果num_copy_pixel_row不为0,则相邻参考像素的位置被改变。图14和图15示出了根据本实施例的改变相邻参考像素的位置的示例。在图14和图15中,num_copy_pixel_row为3,而copy_pixel_row_direction_flag为0。上方参考像素和左上参考像素移动到第三行。如图14所示,从右上方的CU复制右上方的参考像素。如图15所示,从第三行的最右边的像素复制右上方的参考像素。In another embodiment, if num_copy_pixel_row is not 0, the position of the adjacent reference pixel is changed. 14 and 15 illustrate an example of changing the positions of adjacent reference pixels according to the present embodiment. In Figures 14 and 15, num_copy_pixel_row is 3, and copy_pixel_row_direction_flag is 0. The upper reference pixel and the upper left reference pixel are moved to the third row. As shown in Figure 14, the upper right reference pixel is copied from the upper right CU. As shown in Figure 15, the upper right reference pixel is copied from the rightmost pixel in the third row.

对于从相邻CU预测的区域的残差编解码Residual coding for regions predicted from neighboring CUs

根据一个实施例,如果num_copy_pixel_row为N且copy_pixel_row_direction_flag为0,则从相邻CU预测上方N行。可以将上方N行的残差限制为0。根据另一实施例,可以标示上方N行的残差。对于帧间模式,应用HEVC残差四叉树。According to one embodiment, if num_copy_pixel_row is N and copy_pixel_row_direction_flag is 0, the upper N rows are predicted from neighboring CUs. The residuals in the upper N rows can be constrained to 0. According to another embodiment, the residuals of the upper N rows may be marked. For inter mode, HEVC residual quadtree is applied.

num_copy_pixel_row的上下文形成和二值化Context formation and binarization of num_copy_pixel_row

num_copy_pixel_row可以使用K阶的指数Golomb码(EG-K码),K阶截断的指数Golomb码(截断的EG-K代码),N位截断的一元码+EG-K代码或调色板运行中使用的相同二值化方法(即,被二值化为palette_run_msb_id_plus1和palette_run_refinement_bits)。num_copy_pixel_row can use K-order exponential Golomb code (EG-K code), K-order truncated exponential Golomb code (truncated EG-K code), N-bit truncated unary code + EG-K code or used in palette operation The same binarization method of (ie, is binarized as palette_run_msb_id_plus1 and palette_run_refinement_bits).

上下文二进制文件可以用于对num_copy_pixel_row进行编解码。例如,可以使用与调色板运行编解码中的num_copy_pixel_row相同的二值化方法。palette_run_msb_id_plus1的前N个位可以使用上下文编解码的二进制文件。例如,N可以是3。其余的二进制文件被编解码在旁路二进制文件中。可以通过调色板运行编解码共享上下文。例如,上下文可以与扩展复制上方运行模式共享。The context binary can be used to encode and decode num_copy_pixel_row. For example, the same binarization method as num_copy_pixel_row in the palette run codec can be used. The first N bits of palette_run_msb_id_plus1 can use the context codec binary. For example, N can be 3. The rest of the binaries are encoded and decoded in bypass binaries. Codec shared contexts can be run through the palette. For example, the context can be shared with the run mode above the extended replication.

由于num_copy_pixel_row等于CU_width和0的概率高于num_copy_pixel_row作为其他数字的概率,因此可以修改代码二值化以减少等于CU_width的num_copy_pixel_row的码字。例如,可以在码字表中的数字M(例如1)之前插入CU_width的值。等于或大于M的num_copy_pixel_row的值在编码器侧将增加1。在解码器侧,如果解析的码字为M,则表示num_copy_pixel_row等于CU_width。如果解析的码字小于M,则num_copy_pixel_row等于被解析的码字。如果解析的码字大于M,则num_copy_pixel_row等于解析的码字减1。Since the probability of num_copy_pixel_row being equal to CU_width and 0 is higher than the probability of num_copy_pixel_row being other numbers, the code binarization can be modified to reduce the codewords of num_copy_pixel_row equal to CU_width. For example, the value of CU_width may be inserted before the number M (eg, 1) in the codeword table. The value of num_copy_pixel_row equal to or greater than M will be incremented by 1 on the encoder side. On the decoder side, if the parsed codeword is M, it means that num_copy_pixel_row is equal to CU_width. If the parsed codeword is less than M, then num_copy_pixel_row is equal to the parsed codeword. If the parsed codeword is greater than M, then num_copy_pixel_row is equal to the parsed codeword minus 1.

根据另一实施例,使用两个附加位来指示num_copy_pixel_row是否等于0、CU_width、或其他数。例如,“0”表示num_copy_pixel_row等于0,“10”表示num_copy_pixel_row等于CU_width,“11+codeord-L”表示num_copy_pixel_row等于L+1。在另一个例子中,“0”表示num_copy_pixel_row等于CU_width,“10”表示num_copy_pixel_row等于0,“11+codeord-L”表示num_copy_pixel_row等于L+1。According to another embodiment, two additional bits are used to indicate whether num_copy_pixel_row is equal to 0, CU_width, or other number. For example, "0" means that num_copy_pixel_row is equal to 0, "10" means that num_copy_pixel_row is equal to CU_width, and "11+codeord-L" means that num_copy_pixel_row is equal to L+1. In another example, "0" means that num_copy_pixel_row is equal to CU_width, "10" means that num_copy_pixel_row is equal to 0, and "11+codeord-L" means that num_copy_pixel_row is equal to L+1.

对于在跨CU部分的预测中提到的方法4到方法7,可以在调色板表编解码之后标示num_copy_pixel_row。num_copy_pixel_row的二值化可以根据调色板表编解码的解码信息进行修改。例如,如果NumPredictedPaletteEntries和num_signaled_palette_entries都为0,则表示至少有一个行/列的样本以正常调色板模式进行编解码。num_copy_pixel_row不应等于CU_width。因此,num_copy_pixel_row的码字范围被限制为从0到(CU_width-1)。例如,如果K阶截断的指数–哥伦布码(截断的EG-K代码)、N位截断的一元代码+EG-K代码、在调色板运行中使用的相同二值化方法(即被二值化为palette_run_msb_id_plus1和palette_run_refinement_bits)用于对num_copy_pixel_row进行编解码,将cMax,MaxPaletteRun、或最大可能值设置为CU_width-1。num_copy_pixel_row不应等于CU_widthFor methods 4 to 7 mentioned in the prediction of the cross-CU part, num_copy_pixel_row can be indicated after the palette table encoding and decoding. The binarization of num_copy_pixel_row can be modified according to the decoding information of the palette table codec. For example, if both NumPredictedPaletteEntries and num_signaled_palette_entries are 0, it means that at least one row/column of samples is encoded and decoded in normal palette mode. num_copy_pixel_row should not be equal to CU_width. Therefore, the codeword range of num_copy_pixel_row is limited from 0 to (CU_width-1). For example, if K-order truncated exponential – Golomb code (truncated EG-K code), N-bit truncated unary code + EG-K code, the same binarization method used in the palette run (i.e. Change to palette_run_msb_id_plus1 and palette_run_refinement_bits) for encoding and decoding num_copy_pixel_row, set cMax, MaxPaletteRun, or the maximum possible value to CU_width-1. num_copy_pixel_row should not be equal to CU_width

在该部分中,上述CU_width可以由来自相邻方法的CU级或PU级的基于行的复制像素的CU_height、PU_width、或PU_height替代。In this section, the above-mentioned CU_width may be replaced by CU_height, PU_width, or PU_height of a row-based copy pixel from a CU-level or PU-level of an adjacent method.

索引编解码数量Number of index codecs

在SCM-4.0调色板索引映射编解码中,首先标示索引数。为了标示索引的数量,首先导出变量“索引数量-调色板大小”。然后执行映射处理以将“索引数量-调色板大小”映射到“映射值”。映射值使用与“coeff_abs_level_remaining”相同的二值化方法进行二值化,并标示。前缀部分由截断的Rice码表示。后缀部分由指数哥伦布码表示。这个二值化过程可以被认为具有输入cParam,并且cParam被设置为(2+indexMax/6)。但是,indexMax/6需要划分或查找表操作。因此,根据本发明的实施例,将cParam设置为(2+indexMax/M),并且M是2的整数次幂(power-of-2)(例如2n,n是整数)。因此,indexMax/M可以通过将indexMax右移到n位来实现。例如,cParam设置为(2+indexMax/4)或(2+indexMax/8),可以通过分别将indexMax右移2或3位来实现。In the SCM-4.0 palette index mapping codec, the index number is first marked. To indicate the number of indices, the variable "number of indices - palette size" is first derived. A mapping process is then performed to map "number of indices-palette size" to "mapped value". The mapped values are binarized using the same binarization method as "coeff_abs_level_remaining" and marked. The prefix part is represented by a truncated Rice code. The suffix part is represented by exponential Golomb code. This binarization process can be thought of as having an input cParam, and cParam is set to (2+indexMax/6). However, indexMax/6 requires division or lookup table operations. Therefore, according to an embodiment of the present invention, cParam is set to (2+indexMax/M), and M is a power-of-2 (eg, 2 n , where n is an integer). Therefore, indexMax/M can be achieved by right-shifting indexMax by n bits. For example, setting cParam to (2+indexMax/4) or (2+indexMax/8) can be achieved by shifting indexMax to the right by 2 or 3 bits, respectively.

在编码/解析调色板索引映射之前聚集所有的跳出颜色Gather all bounce colors before encoding/parsing the palette index map

在当前的HEVC SCC规范或先前版本中,在索引映射的编解码期间,调制板编解码中的跳出像素的值以其它规则索引以交错方式标示,或者在索引映射的编解码完成之后将像素值聚集在一起。根据本发明的一个实施例,所有跳出像素值被聚集在索引映射编解码之前。In the current HEVC SCC specification or previous versions, during encoding and decoding of the index map, the values of the jumping out pixels in the modulation board codec are marked with other regular indexes in an interleaved manner, or after the encoding and decoding of the index map is completed, the pixel values come together. According to one embodiment of the present invention, all jumping out pixel values are aggregated before index map encoding and decoding.

假设在当前编解码块内的不同位置存在N个跳出像素,其中N是正整数。在一个实施例中,在对该编解码块的调色板索引映射进行编码/解码之前,这些跳出像素的所有颜色值被一起编码/解码。以这种方式,当索引被解码为跳出索引时,其对应的像素值不再需要被解码。请注意,某些跳出像素可能具有相同的颜色值。在一个实施例中,每个跳出像素出现的像素值仍被写入位流。It is assumed that there are N jump-out pixels at different positions within the current codec block, where N is a positive integer. In one embodiment, all color values of these skip pixels are encoded/decoded together before encoding/decoding the palette index map for the codec block. In this way, when an index is decoded as a jump index, its corresponding pixel value no longer needs to be decoded. Note that some bounce pixels may have the same color value. In one embodiment, the pixel value of each pop-out pixel occurrence is still written to the bitstream.

图16是根据该方法的实施例,用N=5解码跳出颜色的示例,其中每个跳出像素出现的像素值仍然被写入到位流中。在此示例中,使用水平遍历扫描。根据解码顺序,每个跳出像素可以在解码表中找到相应的颜色。Figure 16 is an example of decoding a pop-out color with N=5, where the pixel value at which each pop-out pixel occurs is still written to the bitstream, according to an embodiment of the method. In this example, a horizontal traversal scan is used. According to the decoding order, each jumping out pixel can find the corresponding color in the decoding table.

在另一个实施例中,仅将非重复的颜色值写入位流中,并且为每个跳出像素发生标示这些写入的颜色的索引。In another embodiment, only non-repeating color values are written to the bitstream, and an index identifying these written colors occurs for each bounce pixel.

图17示出了根据N=5的方法的实施例来解码跳出颜色的示例,其中只有非重复的颜色值被写入位流。在此示例中,使用水平遍历扫描。只有不重复的颜色被解码(例如M=3),并且用于每个跳出像素出现的该颜色表中的索引被标示通知(例如N=5)。根据解码顺序,每个跳出像素可以在解码表中找到相应的颜色。Figure 17 shows an example of decoding a pop-out color according to an embodiment of the N=5 method, where only non-repeating color values are written to the bitstream. In this example, a horizontal traversal scan is used. Only non-repeating colors are decoded (eg, M=3), and the index in the color table for each pop-out pixel occurrence is signaled (eg, N=5). According to the decoding order, each jumping out pixel can find the corresponding color in the decoding table.

跳出颜色信令终止Jump out color signaling termination

在一个实施例中,标示编码/解码的跳出颜色的数量。例如,在每个跳出颜色被编解码或解码之后,如果这是要被编码或解码的最后一个颜色,则使用1位标志“end_of_escape_color_flag”来发出信号。当解码的end_of_escape_color_flag为1时,不需要解码更多的跳出颜色。假设当前编解码块中有N个跳出颜色,最后的M个像素具有相同的颜色值,其中M和N是整数,M<=N。在另一个实施例中,仅需要发送这些M个像素的一个颜色值,并且end_of_escape_color_flag被设置为1。最后(M-1)个跳出像素被推断为共享最后解码的跳出颜色值。对于N=5和M=3,该方法的示例在表23中示出。In one embodiment, the number of bounced colors encoded/decoded is indicated. For example, after each escape color is encoded or decoded, a 1-bit flag "end_of_escape_color_flag" is used to signal if this is the last color to be encoded or decoded. When the decoded end_of_escape_color_flag is 1, no more escape colors need to be decoded. Assuming that there are N jump colors in the current codec block, the last M pixels have the same color value, where M and N are integers, and M<=N. In another embodiment, only one color value of the M pixels needs to be sent, and end_of_escape_color_flag is set to 1. The last (M-1) bounce pixels are inferred to share the last decoded bounce color value. An example of this method is shown in Table 23 for N=5 and M=3.

表23.Table 23.

Figure BDA0003386477810000641
Figure BDA0003386477810000641

在另一个实施例中,在对颜色值进行编码/解码之前,显式地(explicitly)标示了跳出颜色的总数。此外,end_of_escape_color_flag可以是旁路编解码或上下文编解码。In another embodiment, the total number of bounced colors is explicitly indicated before encoding/decoding the color values. Also, end_of_escape_color_flag can be bypass codec or context codec.

在编解码块中允许的跳出颜色总数的限制Limit on the total number of bounce colors allowed in a codec block

可以通过在诸如序列级、图片级或片(slice)级的高级报头处设置最大允许数量来限制解码的跳出颜色的总数。The total number of decoded bounce colors can be limited by setting the maximum allowed number at an advanced header such as sequence level, picture level or slice level.

如果达到该最大数目,则根据一个实施例,推断剩余的跳出像素以共享最后解码的跳出颜色的值。在另一个实施例中,推断剩余的跳出像素以共享特定解码的跳出颜色的值,例如最常用的颜色。If the maximum number is reached, according to one embodiment, the remaining bounce pixels are inferred to share the value of the last decoded bounce color. In another embodiment, the remaining bounce pixels are inferred to share the value of a particular decoded bounce color, such as the most commonly used color.

从CU外部复制像素Copy pixels from outside the CU

在SCM 3.0中,颜色索引值范围取决于调色板大小和跳出标志。如果跳出标志关闭,则最大索引值等于调色板大小。如果跳出标志打开,则最大索引值等于(调色板大小+1)。如果最大索引值等于N,则可能的索引值范围为0到(N-1)。在SCM 3.0中,禁止等于0的最大索引值。如果最大索引值等于1,则CU中的所有颜色索引将被推定为0。如果只有一个可能的索引值,则假定所有颜色索引应为0。In SCM 3.0, the range of color index values depends on the palette size and the bounce flag. If the jump flag is off, the maximum index value is equal to the palette size. If the jump flag is on, the maximum index value is equal to (palette size + 1). If the maximum index value is equal to N, the range of possible index values is 0 to (N-1). In SCM 3.0, a maximum index value equal to 0 is prohibited. If the maximum index value is equal to 1, then all color indices in the CU will be presumed to be 0. If there is only one possible index value, it is assumed that all color indices should be 0.

根据上文的公开,可以通过COPY_ABOVE来标示像素。在这种情况下,它不仅将复制上方像素的像素索引,而且还将复制上方像素的像素值。解码器可以从拷贝的像素值重构COPY_ABOVE中的像素,而不必引用调色板。如果上述像素跨越CU边界,根据上文的公开,分配相邻CU的相邻构造像素(NCP)的特殊索引(表示为N)。当像素由COPY_ABOVE标示时,它不仅会复制上方像素的像素索引(N),而且还将复制图18中由点填充区域指示的上方像素的像素值,其中图18展示了CU边界(1810)。According to the above disclosure, pixels can be marked by COPY_ABOVE. In this case it will not only copy the pixel index of the pixel above, but also the pixel value of the pixel above. The decoder can reconstruct the pixels in COPY_ABOVE from the copied pixel values without having to reference the palette. If the above-mentioned pixel crosses a CU boundary, according to the above disclosure, a special index (denoted as N) of the adjacent structuring pixel (NCP) of the adjacent CU is assigned. When a pixel is denoted by COPY_ABOVE, it copies not only the pixel index (N) of the pixel above, but also the pixel value of the pixel above indicated by the dot-filled area in Figure 18, which shows the CU boundary (1810).

基于复制NCP的像素值的方法,以零/一个索引值处理调色板编解码的CU的假设不是真的。对于最大索引值等于0的情况,可以从NCP中预测CU中的所有像素,如图19所示。Based on the method of copying the pixel values of the NCP, the assumption that the CU of the palette codec is processed with zero/one index value is not true. For the case where the maximum index value is equal to 0, all pixels in the CU can be predicted from the NCP, as shown in Figure 19.

如果最大索引值等于1,则不是所有的颜色索引都可以为0。像素的一部分可以是0,并且可以从NCP预测一部分像素,如图20所示。If the maximum index value is equal to 1, not all color indices can be 0. A portion of the pixels can be 0, and a portion of the pixels can be predicted from the NCP, as shown in Figure 20.

在图19和图20所示的例子中,在SCM3.0中没有相应的语法可以使用。因此,以下公开了用于标示这些情况的新语法。In the examples shown in Figure 19 and Figure 20, there is no corresponding syntax available in SCM3.0. Therefore, a new syntax for denoting these cases is disclosed below.

用于跨CU的索引预测的语法元素Syntax elements for index prediction across CUs

在SCM3.0中,调色板编解码CU包含以下语法:In SCM3.0, the palette codec CU contains the following syntax:

·Palette_share_flag等于1指定调色板大小等于先前的previousPetteBoxEntries,整个调色板条目与先前的调色板条目相同。Palette_share_flag equal to 1 specifies that the palette size is equal to the previous previousPetteBoxEntries, and the entire palette entry is the same as the previous palette entry.

·Palette_transpose_flag等于1指定将转置过程应用于当前CU的关联调色板索引。Palette_transpose_flag等于0指定转置过程不应用于当前CU的关联调色板索引。Palette_transpose_flag equal to 1 specifies that the transpose process is applied to the current CU's associated palette index. Palette_transpose_flag equal to 0 specifies that the transpose process should not be applied to the current CU's associated palette index.

·Palette_escape_val_present_flag指定跳出编解码的样本值。· Palette_escape_val_present_flag specifies the sample value of the skip codec.

·Palette_prediction_run[i]指定了先前的调色板previousPaletteEntries中当前重用的索引和下一个重新调用的调色板条目的索引之间的差异,但有以下例外:palette_prediction_run等于0表示当前和下一个重用条目的索引之间的差异为1,palette_prediction_run等于1表示不再重用先前调色板previousPaletteEntries的更多条目。Palette_prediction_run[i] specifies the difference between the index of the current reused palette entry in the previous palette previousPaletteEntries and the index of the next recalled palette entry, with the following exceptions: palette_prediction_run equal to 0 means the current and next reused entry The difference between the indices is 1, and palette_prediction_run equal to 1 means no more entries from the previous palette previousPaletteEntries are reused.

·Num_signaled_palette_entries指定调色板中针对当前编解码单元明确标示的条目数。Num_signaled_palette_entries specifies the number of entries in the palette that are explicitly marked for the current codec unit.

·Palette_entries指定颜色分量cIdx的调色板中的第i个元素Palette_entries specifies the ith element in the palette of the color component cIdx

·Palette_run_coding()指定索引映射的运行编解码模式。· Palette_run_coding() specifies the run codec mode of the index map.

为了提供跨CU的索引预测的语法,根据本发明的实施例公开了以下语法示例:To provide syntax for index prediction across CUs, the following syntax examples are disclosed according to embodiments of the present invention:

语法示例1:添加新的标志all_pixel_from_NCP_flag。如果all_pixel_from_NCP_flag关闭,其他语法与SCM3.0相同。在第一行中,可以标示复制运行模式以允许跨CU预测。如果all_pixel_from_NCP_flag打开,则意味着(imply)所有像素都将从NCP预测。Palette_transpose_flag可以标示来自左NCP或以上NCP的预测。也可以标示其他预测方向。如果all_pixel_from_NCP_flag打开,则可以跳过信令palette_share_flag、palette_escape_val_present_flag、palette_prediction_run、num_signaled_palette_entries、palette_entries、或palette_run_coding()。Syntax Example 1: Add a new flag all_pixel_from_NCP_flag. If all_pixel_from_NCP_flag is off, other syntax is the same as SCM3.0. In the first row, a copy run mode may be indicated to allow cross-CU prediction. If all_pixel_from_NCP_flag is on, it means (imply) that all pixels will be predicted from NCP. Palette_transpose_flag may indicate prediction from left NCP or above. Other prediction directions may also be indicated. If all_pixel_from_NCP_flag is on, signaling palette_share_flag, palette_escape_val_present_flag, palette_prediction_run, num_signaled_palette_entries, palette_entries, or palette_run_coding() can be skipped.

图21示出了根据上述示例的用于支持跨CU的索引预测的信令的示例性流程图。在步骤2110中,测试all_pixel_from_NCP_flag是否等于1。如果结果为“是”,则执行步骤2130。如果结果为“否”,则执行步骤2120。在步骤2130中,palette_transpose_flag被标示以指示来自左NCP或上方NCP的预测。在步骤2120中,基于SCM3.0的语法用于跨CU的索引预测。21 illustrates an exemplary flow diagram of signaling to support index prediction across CUs according to the above-described examples. In step 2110, it is tested whether all_pixel_from_NCP_flag is equal to 1. If the result is "yes", step 2130 is performed. If the result is "no", step 2120 is performed. In step 2130, palette_transpose_flag is flagged to indicate prediction from either the left NCP or the upper NCP. In step 2120, SCM3.0 based syntax is used for index prediction across CUs.

语法示例2:添加新标志any_pixel_from_NCP_flag。如果any_pixel_from_NCP_flag关闭,其他语法与SCM3.0相同。在第一行中,复制运行模式没有标示(没有跨CU的预测)。如果any_pixel_from_NCP_flag打开,则暗示(imply)要从NCP中预测部分像素。编码器可以标示palette_share_flag、palette_prediction_run、num_signaled_palette_entries、palette_escape_val_present_flag,并且解码器可以基于该信息计算最大索引值。如果最大索引值等于0,则从NCP预测所有像素,并且可以跳过palette_run_coding()。如果最大索引值大于0,则从NCP预测部分像素,并且可以标示palette_run_coding()。Syntax example 2: Add new flag any_pixel_from_NCP_flag. If any_pixel_from_NCP_flag is off, other syntax is the same as SCM3.0. In the first row, the copy run mode is not indicated (no cross-CU prediction). If any_pixel_from_NCP_flag is on, it is implied that some pixels are to be predicted from NCP. The encoder can flag palette_share_flag, palette_prediction_run, num_signaled_palette_entries, palette_escape_val_present_flag, and the decoder can calculate the maximum index value based on this information. If the maximum index value is equal to 0, all pixels are predicted from NCP and palette_run_coding() can be skipped. If the maximum index value is greater than 0, partial pixels are predicted from NCP, and palette_run_coding() can be flagged.

图22示出了根据上述示例的用于支持跨CU的索引预测的信令的示例性流程图。如步骤2210所示,测试any_pixel_from_NCP_flag是否等于1。如果结果为“是”,则执行步骤2230。如果结果为“否”,则执行步骤2220。在步骤2220中,基于SCM3.0的语法用于索引预测,且不需要跨CU预测。在步骤2230中,标示包括palette_share_flag、palette_prediction_run、num_signaled_palette_entries、以及palette_escape_val_present_flag的各种语法元素。解码器基于该信息计算最大索引值,并且在步骤2240中检查最大索引值是否等于0。如果结果为“是”,则执行步骤2260。如果结果为“否”,则执行步骤2250。在步骤2250中,标示palette_transpose_flag和palette_run_coding()。在步骤2260中,标示palette_transpose_flag,并且跳过palette_run_coding()(即,从NCP预测所有像素)。22 illustrates an exemplary flow diagram of signaling to support index prediction across CUs according to the above-described examples. As shown in step 2210, test whether any_pixel_from_NCP_flag is equal to 1. If the result is "yes", step 2230 is performed. If the result is "no", step 2220 is performed. In step 2220, SCM3.0 based syntax is used for index prediction and no cross-CU prediction is required. In step 2230, various syntax elements including palette_share_flag, palette_prediction_run, num_signaled_palette_entries, and palette_escape_val_present_flag are marked. The decoder calculates the maximum index value based on this information and checks in step 2240 whether the maximum index value is equal to zero. If the result is "yes", step 2260 is performed. If the result is "no", step 2250 is performed. In step 2250, flag palette_transpose_flag and palette_run_coding(). In step 2260, the palette_transpose_flag is flagged, and palette_run_coding() is skipped (ie, all pixels are predicted from NCP).

语法示例3:添加新标志any_pixel_from_NCP_flag。如果any_pixel_from_NCP_flag关闭,其他语法与SCM3.0相同。在第一行中,复制运行模式没有标示(没有跨CU的预测)。如果any_pixel_from_NCP_flag打开,则暗示要从NCP中预测部分像素。编码器可以标示palette_share_flag、palette_prediction_run、num_signaled_palette_entries、palette_escape_val_present_flag,并且解码器可以基于该信息计算最大索引值。如果最大索引值等于0,则从NCP预测所有像素,并且可以跳过palette_run_coding(),如图2所示。否则,其他语法与SCM3.0相同。在第一行中,复制运行模式被标示(跨CU预测)。请注意,如果最大索引值等于1,则可以跳过palette_run_coding()和palette_transpose_flag。Syntax Example 3: Add new flag any_pixel_from_NCP_flag. If any_pixel_from_NCP_flag is off, other syntax is the same as SCM3.0. In the first row, the copy run mode is not indicated (no cross-CU prediction). If any_pixel_from_NCP_flag is on, it implies that partial pixels are to be predicted from NCP. The encoder can flag palette_share_flag, palette_prediction_run, num_signaled_palette_entries, palette_escape_val_present_flag, and the decoder can calculate the maximum index value based on this information. If the maximum index value is equal to 0, all pixels are predicted from NCP and palette_run_coding() can be skipped, as shown in Figure 2. Otherwise, other syntax is the same as SCM3.0. In the first row, the copy operation mode is indicated (cross-CU prediction). Note that palette_run_coding() and palette_transpose_flag can be skipped if the maximum index value is equal to 1.

图23示出了根据上述示例的用于支持跨CU的索引预测的信令的示例性流程图。该流程图与图22中基本相同,除了最大索引不为0的情况(即,来自步骤2240的“否”路径)之外。在这种情况下,如步骤2310所示,根据SCM3.0的语法用于跨CU的预测。23 shows an exemplary flow diagram of signaling to support index prediction across CUs according to the above-described examples. The flowchart is essentially the same as in Figure 22, except for the case where the maximum index is not 0 (ie, the "no" path from step 2240). In this case, as shown in step 2310, the syntax according to SCM3.0 is used for prediction across CUs.

语法示例4:语法示例1中的“all_pixel_from_NCP_flag”和语法示例2或3中的“any_pixel_from_NCP_flag”可以组合成palette_prediction_run。在SCM3.0中,palette_prediction_run是运行长度编解码。如果第一次运行(即palette_prediction_run[0])等于固定或派生值,则all_pixel_from_NCP_flag或any_pixel_from_NCP_flag被推断为打开(on)。该值可以是0或1。Syntax Example 4: "all_pixel_from_NCP_flag" in Syntax Example 1 and "any_pixel_from_NCP_flag" in Syntax Example 2 or 3 can be combined into palette_prediction_run. In SCM3.0, palette_prediction_run is the run-length codec. All_pixel_from_NCP_flag or any_pixel_from_NCP_flag is inferred to be on (on) if the first run (ie palette_prediction_run[0]) is equal to a fixed or derived value. The value can be 0 or 1.

语法示例5:如图24的步骤2410所示,编码器可以标示palette_share_flag、palette_prediction_run,和num_signaled_palette_entries信号。然后,可以根据信息导出调色板大小。Syntax Example 5: As shown in step 2410 of Figure 24, the encoder may flag the palette_share_flag, palette_prediction_run, and num_signaled_palette_entries signals. The palette size can then be derived based on the information.

检查调色板大小以确定其是否等于0,如步骤2420所示。如果调色板大小大于0(即,来自步骤2420的“否”路径),其他语法与SCM3.0相同,如步骤2430所示。在第一行中,可以根据是否是跨CU预测来标示复制运行模式。The palette size is checked to determine if it is equal to 0, as shown in step 2420. If the palette size is greater than 0 (ie, the "NO" path from step 2420), the other syntax is the same as for SCM3.0, as shown in step 2430. In the first row, the copy operation mode may be indicated according to whether it is a cross-CU prediction.

如果调色板大小等于0(即,来自步骤2420的“是”路径),则标示signal_from_NCP_flag。在步骤2440中检查any_pixel_from_NCP_flag是否打开。如果any_pixel_from_NCP_flag关闭(即,来自步骤2440的“否”路径),则palette_escape_val_present_flag被推断为打开,如步骤2450所示,并且基于SCM3.0的语法用于索引预测,且不需要跨CU预测。如果any_pixel_from_NCP_flag打开,则标示palette_escape_val_present_flag。如果any_pixel_from_NCP_flag打开(即,来自步骤2440的“是”路径)且palette_escape_val_present_flag关闭(即,来自步骤2460的“否”路径),则可以从NCP预测所有像素,并且可以跳过palette_run_coding(),如步骤2470所示。如果any_pixel_from_NCP_flag打开(即,来自步骤2440的“是”路径),且palette_escape_val_present_flag打开,则部分像素从NCP预测,并且可以标示palette_run_coding(),如步骤2480所示。If the palette size is equal to 0 (ie, the "yes" path from step 2420), then signal_from_NCP_flag is flagged. In step 2440 it is checked whether any_pixel_from_NCP_flag is on. If any_pixel_from_NCP_flag is off (ie, "NO" path from step 2440), then palette_escape_val_present_flag is inferred to be on, as shown in step 2450, and the SCM3.0-based syntax is used for index prediction, and cross-CU prediction is not required. If any_pixel_from_NCP_flag is on, flag palette_escape_val_present_flag. If any_pixel_from_NCP_flag is on (ie, "yes" path from step 2440 ) and palette_escape_val_present_flag is off (ie, "no" path from step 2460 ), then all pixels can be predicted from NCP and palette_run_coding( ) can be skipped as in step 2470 shown. If any_pixel_from_NCP_flag is on (ie, the "yes" path from step 2440 ), and the palette_escape_val_present_flag is on, then some pixels are predicted from NCP, and palette_run_coding( ) may be flagged, as shown in step 2480 .

语法示例6:该示例与语法示例5基本相同,除了any_pixel_from_NCP_flag是打开的(即,来自步骤2440的“是”路径)以及palette_escape_val_present_flag是打开的(即,来自步骤2460的“是”路径)情况。在这种情况下,如图25的步骤2510所示,所有像素都是跳出索引。Syntax Example 6: This example is essentially the same as Syntax Example 5, except that any_pixel_from_NCP_flag is on (ie, the "yes" path from step 2440) and palette_escape_val_present_flag is on (ie, the "yes" path from step 2460). In this case, as shown in step 2510 of Figure 25, all pixels are jump indices.

语法示例7:编码器可以标示palette_share_flag、palette_prediction_run、num_signaled_palette_entries,如图26的步骤2610所示。然后,可以根据信息导出调色板大小。Syntax Example 7: The encoder may flag palette_share_flag, palette_prediction_run, num_signaled_palette_entries, as shown in step 2610 of FIG. 26 . The palette size can then be derived based on the information.

在步骤2620中检查调色板大小以确定其是否等于0。如果调色板大小等于0(即,来自步骤2620的“是”),则标示all_pixel_from_NCP_flag并且在步骤2640中检查all_pixel_from_NCP_flag是否打开。如果all_pixel_from_NCP_flag打开(即,来自步骤2640的“是”路径),则所有像素被暗示为预测自NCP,如步骤2660所示。在这种情况下,可以标示palette_transpose_flag以暗示预测来自左NCP或上方NCP。也可以标示其他预测方向。否则,语法与步骤2650中所示的SCM3.0相同。在第一行中,可以标示复制运行模式(即跨CU的预测)。The palette size is checked in step 2620 to determine if it is equal to zero. If the palette size is equal to 0 (ie, "Yes" from step 2620), then flag all_pixel_from_NCP_flag and check in step 2640 whether all_pixel_from_NCP_flag is on. If all_pixel_from_NCP_flag is on (ie, "yes" path from step 2640 ), then all pixels are implied to be predicted from NCP, as shown in step 2660 . In this case, the palette_transpose_flag can be flagged to imply that the prediction is from the left NCP or the upper NCP. Other prediction directions may also be indicated. Otherwise, the syntax is the same as SCM3.0 shown in step 2650. In the first row, the replication mode of operation (ie, prediction across CUs) may be indicated.

语法示例8:在语法示例8中,可以标示运行编解码以指示图27中的情况。图27中的流程图类似于图26中的流程图。然而,图26中的步骤2630和步骤2650被替换为步骤2710和步骤2720(即,标示palette_escape_val_Present_flag、palette_transcope_flag和palette_run_coding())。Syntax Example 8: In Syntax Example 8, the codec may be marked to run to indicate the situation in FIG. 27 . The flowchart in FIG. 27 is similar to the flowchart in FIG. 26 . However, steps 2630 and 2650 in FIG. 26 are replaced by steps 2710 and 2720 (ie, the flags palette_escape_val_Present_flag, palette_transcope_flag, and palette_run_coding( )).

语法示例9:如图28A的步骤2810所示,编码器可以发送palette_share_flag、palette_reuse_flag()、num_signaled_palette_entries、palette_escape_val_present_flag,且解码器可以基于该信息计算最大指标值。如果最大索引值等于0或1(即,来自步骤2820的“否”路径),则可以跳过palette_run_coding()。如果最大索引值等于0(即,来自步骤2830的“否”路径),则如步骤2850所示,从NCP预测所有像素。如步骤2840所示,如果最大索引值大于1(即来自步骤2820的“是”路径),则可以标示palette_transpose_flag以暗示来自左NCP或上方NCP的预测。也可以标示其它预测方向。如果最大索引值等于1(即来自步骤2830的“是”路径),则CU中的所有颜色索引将被推断为0或跳出,如步骤2860所示。Syntax Example 9: As shown in step 2810 of Figure 28A, the encoder may send palette_share_flag, palette_reuse_flag(), num_signaled_palette_entries, palette_escape_val_present_flag, and the decoder may calculate the maximum indicator value based on this information. If the maximum index value is equal to 0 or 1 (ie, the "no" path from step 2820), then palette_run_coding() may be skipped. If the maximum index value is equal to 0 (ie, the "NO" path from step 2830), then as shown in step 2850, all pixels are predicted from the NCP. As shown in step 2840, if the maximum index value is greater than 1 (ie, the "yes" path from step 2820), the palette_transpose_flag may be flagged to imply prediction from either the left NCP or the upper NCP. Other prediction directions may also be indicated. If the maximum index value is equal to 1 (ie, the "yes" path from step 2830 ), then all color indices in the CU will be inferred to 0 or jumped out, as shown in step 2860 .

语法示例10:如图28B的步骤2812所示,编码器可以标示palette_share_flag、palette_reuse_flag()、num_signaled_palette_entries、palette_escape_val_present_flag,解码器可以基于该信息计算最大索引值。如果最大索引值等于0(即,来自步骤2822的“否”路径),则如步骤2832所示,从NCP预测所有像素。如果最大索引值大于0(即,来自步骤2822的“是”路径),则可以标示palette_transpose_flag以暗示来自左NCP或上方NCP的预测,如步骤2842所示。也可以标示其它预测方向。可以跳过Palette_run_coding()。如果最大索引值大于0,则可以标示palette_transpose_flag和palette_run_coding(),如图20所示。Syntax Example 10: As shown in step 2812 of FIG. 28B, the encoder can flag palette_share_flag, palette_reuse_flag(), num_signaled_palette_entries, palette_escape_val_present_flag, and the decoder can calculate the maximum index value based on this information. If the maximum index value is equal to 0 (ie, the "NO" path from step 2822), then as shown in step 2832, all pixels are predicted from the NCP. If the maximum index value is greater than 0 (ie, the "yes" path from step 2822 ), the palette_transpose_flag may be flagged to imply prediction from either the left NCP or the upper NCP, as shown in step 2842 . Other prediction directions may also be indicated. Palette_run_coding() can be skipped. If the maximum index value is greater than 0, palette_transpose_flag and palette_run_coding() can be marked, as shown in Figure 20.

在上述语法示例中,NCP可以是最靠近的上方行或最靠近的左边列。如果NCP行的数量大于1(例如,两个最靠近的上方行或两个最靠近的左边列),可能需要额外的信令来指示哪个NCP行被用于预测。在语法示例中“全部像素从NCP预测”的情况下,NCP可以被限制为最近的上方行或最靠近的左边列。In the above syntax example, the NCP can be the closest upper row or the closest left column. If the number of NCP rows is greater than 1 (eg, the two closest upper rows or the two closest left columns), additional signaling may be required to indicate which NCP row is used for prediction. In the case of "all pixels predicted from NCP" in the syntax example, the NCP may be restricted to the nearest upper row or the nearest left column.

虽然根据本发明的实施例,使用特定语法元素来说明用于支持跨CU的索引预测的语法示例,但是这些特定语法元素不应被解释为对本发明的限制。在不脱离本发明的精神的情况下,本领域技术人员可以使用其他语法元素和语义来跨CU执行索引预测。Although specific syntax elements are used to illustrate syntax examples for supporting index prediction across CUs according to embodiments of the present invention, these specific syntax elements should not be construed as limitations of the present invention. Those skilled in the art may use other syntax elements and semantics to perform index prediction across CUs without departing from the spirit of this disclosure.

用于启用跨CU的索引预测的语法元素Syntax element for enabling index prediction across CUs

对于跨CU的索引预测,可以在PPS(图像参数集)或SPS(序列参数集)中标示启用标志。此外,只有当SPS中的palette_mode_enabled_flag为真时,才能标示标志。否则其将被推断为假。当跨CU的索引预测的启用标志为假时,跨CU的索引预测被禁用。在另一实施例中,当跨CU的索引预测的启用标志为假时,可以将相邻的索引或值推定为预定值。例如,可以将每个颜色分量的相邻索引设置为0,并且可以将相邻的值设置为128。在本发明中,预测块中的索引或值的方法不限于相邻像素(或块)的信息。For index prediction across CUs, an enable flag may be indicated in PPS (Picture Parameter Set) or SPS (Sequence Parameter Set). Also, flags can be flagged only when palette_mode_enabled_flag in SPS is true. Otherwise it will be inferred to be false. When the enable flag for index prediction across CUs is false, index prediction across CUs is disabled. In another embodiment, when the enable flag for index prediction across CUs is false, adjacent indices or values may be inferred to be predetermined values. For example, the adjacent index of each color component can be set to 0, and the adjacent value can be set to 128. In the present invention, the method of predicting an index or value in a block is not limited to information of adjacent pixels (or blocks).

运行模式的上下文选择:在SCM 3.0中,用于索引映射编解码的语法元素palette_mode被上下文编码。palette_mode有两个上下文。根据上方索引的palette_mode选择上下文。然而,对于第一行的索引,没有上方索引。Context selection of operating mode: In SCM 3.0, the syntax element palette_mode used for index map encoding and decoding is context encoded. palette_mode has two contexts. Context is selected according to palette_mode indexed above. However, for the index of the first row, there is no upper index.

在这种情况下公开了处理上下文选择的几种方法:Several methods for handling context selection are exposed in this case:

1.第一行的上下文使用一个固定的上下文。该上下文可以是当上方索引通过INDEX-RUN编解码所用的第一个上下文,或者是当上方索引由COPY-运行模式编解码时所用的第二个上下文。1. The context of the first line uses a fixed context. This context can be the first context used when the upper index is encoded and decoded by INDEX-RUN, or the second context used when the upper index is encoded and decoded by COPY-run mode.

2.第一行的索引可以是第三个上下文。2. The index of the first row can be the third context.

3.CU中的所有索引使用相同的上下文来编解码palette_mode。可以根据CU大小选择上下文,并且CU中的所有索引使用相同的上下文来编解码palette_mode。在这种情况下可以有两个上下文。如果CU大小大于固定或派生的阈值,则使用第一个上下文。否则,使用另一个上下文。在另一示例中,上下文的数量可以减少到1。在这种情况下,所有CU大小的上下文是相同的。3. All indices in the CU use the same context to encode and decode palette_mode. The context can be selected according to the CU size, and all indexes in the CU use the same context to encode and decode palette_mode. There can be two contexts in this case. If the CU size is larger than a fixed or derived threshold, the first context is used. Otherwise, use another context. In another example, the number of contexts can be reduced to one. In this case, the context is the same for all CU sizes.

修改的帧内预测方案Modified intra prediction scheme

在另一个实施例中,为了实现与图19和图20中公开的预测方案相同的效果,基于HEVC、HEVC范围扩展、或HEVC SCC中的常规帧内预测,语法元素rqt_root_cbf被标示以指示从根源于(rooted from)当前CU的TU(变换单元)是否具有残差。rqt_root_cbf的信令可以与HEVC中CU间(inter CU)冗余编解码的rqt_root_cbf信令相同。In another embodiment, to achieve the same effect as the prediction schemes disclosed in Figures 19 and 20, based on HEVC, HEVC range extension, or conventional intra prediction in HEVC SCC, the syntax element rqt_root_cbf is marked to indicate the Whether the TU (transform unit) rooted from the current CU has residual. The signaling of rqt_root_cbf may be the same as the signaling of rqt_root_cbf for inter-CU redundancy codec in HEVC.

基于根据本发明的实施例的具有rqt_root_cbf的帧内预测,可以将rqt_root_cbf选择性地应用于包括亮度和色度帧内预测模式的帧内预测模式的子集。rqt_root_cbf仅用于子集中的那些帧内预测模式。在一个示例中,修改方案仅适用于等于水平或垂直预测模式的亮度帧内预测模式,而色度帧内预测模式未被修改。Based on intra prediction with rqt_root_cbf according to an embodiment of the present invention, rqt_root_cbf may be selectively applied to a subset of intra prediction modes including luma and chroma intra prediction modes. rqt_root_cbf is only used for those intra prediction modes in the subset. In one example, the modification scheme applies only to the luma intra prediction mode equal to the horizontal or vertical prediction mode, while the chroma intra prediction mode is not modified.

在另一个实施例中,一个CU级标志用于帧内CU(intra CU)指示是否存在用于对该内部CU编解码的残差信号。类似地,该标志可以选择性地应用于帧内预测模式的子集。In another embodiment, a CU-level flag is used for an intra CU (intra CU) to indicate whether there is a residual signal for encoding and decoding the intra CU. Similarly, this flag can be selectively applied to a subset of intra prediction modes.

帧内块复制(IntraBC)搜索Intra Block Copy (IntraBC) search

本发明的一个实施例改变了IntraBC的源像素。用于IntraBC预测和补偿的像素可以是取决于像素的位置的未滤波像素(即,去块(deblock)之前)或滤波像素(即,在去块和SAO(采样自适应偏移)之后)。One embodiment of the present invention changes the source pixels of IntraBC. The pixels used for IntraBC prediction and compensation may be unfiltered pixels (ie, before deblocking) or filtered pixels (ie, after deblocking and SAO (Sampling Adaptive Offset)) depending on the position of the pixel.

例如,如图29所示,用于IntraBC预测和补偿的像素可以基于当前CTU(2910)和左CTU(2920)中的像素的未滤波像素。其他像素仍然使用滤波像素。图29示出了根据本发明的实施例的源像素的示例,其中点填充像素来自未滤波的像素,并且透明像素来自用于IntraBC的滤波像素。For example, as shown in Figure 29, pixels used for IntraBC prediction and compensation may be based on unfiltered pixels of pixels in the current CTU (2910) and the left CTU (2920). Other pixels still use filtered pixels. Figure 29 shows an example of a source pixel according to an embodiment of the present invention, where the dot fill pixels are from unfiltered pixels and the transparent pixels are from filtered pixels for IntraBC.

在另一个示例中,如图30所示,用于IntraBC预测和补偿的像素是当前CTU(3010)、左CTU(3020),以及上方CTU(3030)的底部四行和左上CTU(3040)的底部四行中的像素的未滤波像素。其他像素使用滤波像素。在图30中,点填充像素来自未经滤波的像素,并且透明像素来自用于IntraBC的滤波像素。In another example, as shown in Figure 30, the pixels used for IntraBC prediction and compensation are the current CTU (3010), the left CTU (3020), and the bottom four rows of the upper CTU (3030) and the upper left CTU (3040). Unfiltered pixels for the pixels in the bottom four rows. Other pixels use filtered pixels. In Figure 30, the dot fill pixels are from unfiltered pixels, and the transparent pixels are from filtered pixels for IntraBC.

在另一示例中,如图31所示,用于IntraBC预测和补偿的像素是当前CTU、左方N个CTU中,以及上方CTU的底部四行和N个左上CTU的底部四行的像素的未滤波像素。N是正整数。其他像素使用滤波像素。在图31中,点填充像素来自未经滤波的像素,而透明像素来自IntraBC的滤波像素。In another example, as shown in FIG. 31, the pixels used for IntraBC prediction and compensation are the pixels in the current CTU, the N CTUs to the left, and the bottom four rows of the upper CTU and the bottom four rows of the N upper left CTUs. Unfiltered pixels. N is a positive integer. Other pixels use filtered pixels. In Figure 31, the dot-fill pixels are from unfiltered pixels, while the transparent pixels are from IntraBC's filtered pixels.

在另一示例中,用于IntraBC预测和补偿的像素是当前CTU、上方CTU的底部四行和左CTU的右四列中的像素的未滤波像素。其他像素使用如图32所示进行滤波。在图32中,点填充像素来自未滤波的像素,并且透明像素来自IntraBC的滤波像素。In another example, the pixels used for IntraBC prediction and compensation are the unfiltered pixels of the pixels in the current CTU, the bottom four rows of the upper CTU, and the right four columns of the left CTU. Other pixels are filtered using as shown in Figure 32. In Figure 32, the dot fill pixels are from unfiltered pixels, and the transparent pixels are from IntraBC's filtered pixels.

在另一示例中,用于IntraBC预测和补偿的像素是当前CTU、N个左CTU,上方CTU中的底部四行和N个左上方CTU的底部四行,以及第(N+1)个左方CTU的右方四列中的像素的未滤波像素。N是正整数值。其他像素使用滤波像素。在图33中,点填充像素来自未滤波的像素,而透明像素来自IntraBC的滤波像素。In another example, the pixels used for IntraBC prediction and compensation are the current CTU, the N left CTUs, the bottom four rows in the upper CTU and the bottom four rows of the N upper left CTUs, and the (N+1)th left CTU The unfiltered pixels of the pixels in the four columns to the right of the square CTU. N is a positive integer value. Other pixels use filtered pixels. In Figure 33, the dot-fill pixels are from unfiltered pixels, while the transparent pixels are from IntraBC's filtered pixels.

图34示出了结合本发明的实施例的用于调色板编解码块共享变换系数缓冲器的系统的示例性流程图。系统在步骤3410中确定当前块的当前预测模式,并在步骤3420中将存储区域指定为变换系数缓冲器。在步骤3430中,如果当前预测模式是帧内预测模式或帧间预测,将由帧内预测或帧间预测产生的当前块的预测残差的变换系数相关的第一信息存储在变换系数缓冲器中。在步骤3440中,如果当前预测模式是调色板编解码模式,则将与当前块相关联的调色板数据相关的信息存储在变换系数缓冲器中。在步骤3450中,如果当前块在帧内预测模式或帧间预测模式下编解码,则基于与变换系数相关的信息,对当前块进行编码或解码,或者如果当前块在调制板编解码模式下编解码,则基于与调色板数据相关的存储在变换系数缓冲器中的信息,对当前块进行编解码或解码。34 shows an exemplary flow diagram of a system for palette codec block sharing transform coefficient buffers incorporating embodiments of the present invention. The system determines the current prediction mode for the current block in step 3410 and designates the storage area as a transform coefficient buffer in step 3420. In step 3430, if the current prediction mode is the intra prediction mode or the inter prediction, store the first information related to the transform coefficient of the prediction residual of the current block generated by the intra prediction or the inter prediction in the transform coefficient buffer . In step 3440, if the current prediction mode is the palette codec mode, information related to palette data associated with the current block is stored in the transform coefficient buffer. In step 3450, the current block is encoded or decoded based on the information related to the transform coefficients if the current block is encoded or decoded in the intra prediction mode or the inter prediction mode, or if the current block is in the modulation plate codec mode For encoding and decoding, the current block is encoded, decoded or decoded based on the information stored in the transform coefficient buffer related to the palette data.

呈现上述描述以使得本领域普通技术人员能够在特定应用及其要求的上下文中实施本发明。对所描述的实施例的各种修改对于本领域技术人员将是显而易见的,并且本文定义的一般原理可以应用于其他实施例。因此,本发明不旨在限于所示出和描述的具体实施例,而是符合与本文所公开的原理和新颖特征相一致的最广范围。在上述详细描述中,示出了各种具体细节以便提供对本发明的透彻理解。然而,本领域技术人员将理解,可以实施本发明。The above description is presented to enable one of ordinary skill in the art to implement the invention in the context of a particular application and its requirements. Various modifications to the described embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the specific embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein. In the foregoing detailed description, various specific details are set forth in order to provide a thorough understanding of the present invention. However, those skilled in the art will understand that the present invention may be practiced.

如上所述的本发明的实施例可以以各种硬件、软件代码或两者的组合来实现。例如,本发明的实施例可以是集成到视频压缩芯片中的一个或多个电子电路或集成到视频压缩软件中的程序代码,以执行本文所述的处理。本发明的实施例也可以是要在数字信号处理器(DSP)上执行以执行本文所述的处理的程序代码。本发明还可以涉及由计算机处理器、数字信号处理器、微处理器、或现场可编程门阵列(FPGA)执行的许多功能。可以通过执行定义本发明所体现的特定方法的机器可读软件代码或固件代码来将这些处理器配置成执行根据本发明的特定任务。软件代码或固件代码可以以不同的编程语言和不同的格式或风格开发。也可以为不同的目标平台编译软件代码。然而,根据本发明软件代码的不同的代码格式、样式和语言以及配置代码的其他方式将不会脱离本发明的精神和范围。Embodiments of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, embodiments of the present invention may be one or more electronic circuits integrated into a video compression chip or program code integrated into video compression software to perform the processes described herein. Embodiments of the present invention may also be program code to be executed on a digital signal processor (DSP) to perform the processes described herein. The invention may also relate to many functions performed by a computer processor, digital signal processor, microprocessor, or field programmable gate array (FPGA). These processors may be configured to perform certain tasks in accordance with the present invention by executing machine-readable software code or firmware code that defines the particular methods embodied by the present invention. Software code or firmware code can be developed in different programming languages and in different formats or styles. Software code can also be compiled for different target platforms. However, different code formats, styles and languages of the software code according to the present invention and other ways of configuring the code will not depart from the spirit and scope of the present invention.

在不脱离本发明的精神或基本特征的情况下,本发明可以以其它具体形式实施。所描述的例子仅在所有方面被认为是说明性的而不是限制性的。因此,本发明的范围由所附权利要求而不是前面的描述来指示。属于权利要求的等同物的含义和范围内的所有变化将被包括在其范围内。The present invention may be embodied in other specific forms without departing from the spirit or essential characteristics of the invention. The described examples are to be considered in all respects only as illustrative and not restrictive. Accordingly, the scope of the invention is to be indicated by the appended claims rather than the foregoing description. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims (2)

1. A video coding method using a plurality of prediction modes including a palette coding mode, the method comprising:
parsing all initial palette predictors of a same color component grouped together in a sequence parameter set, a picture parameter set, or a slice header from a video bitstream at a decoder side or grouping all initial palette predictors of the same color component together at an encoder side; and
decoding or encoding at least one palette coded block within a respective sequence, picture or slice using the initial palette predictor value.
2. A video coding method using a plurality of prediction modes including a palette coding mode, the method comprising:
at the decoder side, parsing all palette predictor entries or palette entries of a current block of the same color component aggregated together from the video bitstream, or aggregating all palette predictor entries or palette entries of the same color component at the encoder side; and
decoding or encoding the current block using a palette predictor consisting of all palette predictor entries or a palette table consisting of all palette entries.
CN202111452015.8A 2014-11-12 2015-11-12 Jump out pixel encoding and decoding method in index mapping encoding and decoding Active CN114630131B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111452015.8A CN114630131B (en) 2014-11-12 2015-11-12 Jump out pixel encoding and decoding method in index mapping encoding and decoding

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201461078595P 2014-11-12 2014-11-12
US62/078,595 2014-11-12
US201462087454P 2014-12-04 2014-12-04
US62/087,454 2014-12-04
US201562119950P 2015-02-24 2015-02-24
US62/119,950 2015-02-24
US201562145578P 2015-04-10 2015-04-10
US62/145,578 2015-04-10
US201562162313P 2015-05-15 2015-05-15
US62/162,313 2015-05-15
US201562170828P 2015-06-04 2015-06-04
US62/170,828 2015-06-04
CN201580061695.7A CN107005717B (en) 2014-11-12 2015-11-12 Skip pixel coding and decoding method in index mapping coding and decoding
PCT/CN2015/094410 WO2016074627A1 (en) 2014-11-12 2015-11-12 Methods of escape pixel coding in index map coding
CN202111452015.8A CN114630131B (en) 2014-11-12 2015-11-12 Jump out pixel encoding and decoding method in index mapping encoding and decoding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201580061695.7A Division CN107005717B (en) 2014-11-12 2015-11-12 Skip pixel coding and decoding method in index mapping coding and decoding

Publications (2)

Publication Number Publication Date
CN114630131A true CN114630131A (en) 2022-06-14
CN114630131B CN114630131B (en) 2023-11-07

Family

ID=59422558

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202111452015.8A Active CN114630131B (en) 2014-11-12 2015-11-12 Jump out pixel encoding and decoding method in index mapping encoding and decoding
CN201580061695.7A Active CN107005717B (en) 2014-11-12 2015-11-12 Skip pixel coding and decoding method in index mapping coding and decoding

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201580061695.7A Active CN107005717B (en) 2014-11-12 2015-11-12 Skip pixel coding and decoding method in index mapping coding and decoding

Country Status (1)

Country Link
CN (2) CN114630131B (en)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016146076A1 (en) 2015-03-18 2016-09-22 Mediatek Inc. Method and apparatus for index map coding in video and image compression
WO2020006707A1 (en) * 2018-07-04 2020-01-09 Alibaba Group Holding Limited Palette-based residual coding for video compression system
WO2020098803A1 (en) * 2018-11-15 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Harmonization between affine mode and other inter coding tools
CA3127848C (en) 2019-02-02 2024-06-11 Beijing Bytedance Network Technology Co., Ltd. Buffer management for intra block copy in video coding
EP3900357A4 (en) 2019-02-02 2022-06-08 Beijing Bytedance Network Technology Co., Ltd. Buffer initialization for intra block copy in video coding
MX2021009943A (en) 2019-02-24 2021-09-21 Beijing Bytedance Network Tech Co Ltd INDEPENDENT CODING OF THE INDICATION OF USE OF THE PALETTE MODE.
WO2020177659A1 (en) 2019-03-01 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Direction-based prediction for intra block copy in video coding
CN117395439A (en) 2019-03-01 2024-01-12 北京字节跳动网络技术有限公司 Direction-based prediction for intra block copying in video codec
JP7284284B2 (en) 2019-03-04 2023-05-30 北京字節跳動網絡技術有限公司 Aspects of Implementation of Intra Block Copy in Video Coding
WO2020182113A1 (en) * 2019-03-10 2020-09-17 Beijing Bytedance Network Technology Co., Ltd. Combined screen content coding mode
PL3941048T3 (en) 2019-03-13 2024-12-16 Guangdong Oppo Mobile Telecommunications Corp., Ltd. METHOD AND DEVICE FOR ENCODING/DECODING AN IMAGE AND METHOD OF TRANSMITTING A BIT STREAM
WO2020207421A1 (en) * 2019-04-09 2020-10-15 Beijing Bytedance Network Technology Co., Ltd. Entry construction for palette mode coding
CN117221544A (en) 2019-05-19 2023-12-12 字节跳动有限公司 Transform bypass coding residual block in digital video
CN117729331A (en) 2019-06-28 2024-03-19 字节跳动有限公司 Techniques for modifying quantization parameters in transform skip mode
KR102684993B1 (en) 2019-06-28 2024-07-16 바이트댄스 아이엔씨 Derivation of chroma intra mode in screen content coding
CN114175645B (en) 2019-07-06 2024-04-12 北京字节跳动网络技术有限公司 Virtual prediction buffering for intra block copying in video codec
CN117395398A (en) 2019-07-10 2024-01-12 北京字节跳动网络技术有限公司 Sample identification for intra block copying in video codec
JP7359936B2 (en) * 2019-07-20 2023-10-11 北京字節跳動網絡技術有限公司 Conditional Encoding of Instructions for Use of Palette Mode
ES3023935T3 (en) 2019-07-21 2025-06-03 Lg Electronics Inc Image encoding/decoding method and device for signaling chroma component prediction information according to whether palette mode is applicable, and method for transmitting bitstream
CN117221536A (en) * 2019-07-23 2023-12-12 北京字节跳动网络技术有限公司 Mode determination for palette mode coding and decoding
CN114208174B (en) 2019-07-29 2023-11-28 北京字节跳动网络技术有限公司 Palette mode coding in prediction
JP7494289B2 (en) * 2019-08-15 2024-06-03 バイトダンス インコーポレイテッド Palette modes with different partition structures
WO2021040400A1 (en) * 2019-08-26 2021-03-04 엘지전자 주식회사 Image or video coding based on palette mode
CN114342392A (en) * 2019-08-30 2022-04-12 株式会社Kt Video signal processing method and apparatus
EP4011080A4 (en) * 2019-09-12 2023-04-12 ByteDance Inc. Using palette predictor in video coding
CN119996672A (en) * 2019-09-23 2025-05-13 Lg电子株式会社 Decoding device, encoding device, and data transmitting device
EP4561074A3 (en) * 2019-10-05 2025-07-23 LG Electronics Inc. Image or video coding based on signaling of transform skip - and palette coding-related information
CN114762339B (en) * 2019-10-05 2023-10-27 Lg电子株式会社 Image or video coding based on transform skip and palette coding related high level syntax elements
CN117412066A (en) * 2019-10-05 2024-01-16 Lg电子株式会社 Decoding equipment, encoding equipment and sending equipment
CN116418980B (en) * 2020-01-11 2024-03-29 北京达佳互联信息技术有限公司 Methods, devices and media for encoding video data

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5883633A (en) * 1997-04-15 1999-03-16 Microsoft Corporation Method and system of variable run length image encoding using sub-palette
US20030202602A1 (en) * 2002-04-30 2003-10-30 Apostolopoulos John G. Compression of images and image sequences through adaptive partitioning
CN101340587A (en) * 2007-07-05 2009-01-07 联发科技股份有限公司 Method for encoding input image and method and device for playing encoded image
US20100046628A1 (en) * 2008-08-19 2010-02-25 Vasudev Bhaskaran Systems and Methods for Perceptually Lossless Video Compression
CN103703779A (en) * 2011-11-03 2014-04-02 谷歌公司 Image compression using sub-resolution images
US20140189476A1 (en) * 2012-12-27 2014-07-03 Reflektion, Inc. Image manipulation for web content
US20140301475A1 (en) * 2013-04-05 2014-10-09 Qualcomm Incorporated Determining palette indices in palette-based video coding

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPO648397A0 (en) * 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Improvements in multiprocessor architecture operation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5883633A (en) * 1997-04-15 1999-03-16 Microsoft Corporation Method and system of variable run length image encoding using sub-palette
US20030202602A1 (en) * 2002-04-30 2003-10-30 Apostolopoulos John G. Compression of images and image sequences through adaptive partitioning
CN101340587A (en) * 2007-07-05 2009-01-07 联发科技股份有限公司 Method for encoding input image and method and device for playing encoded image
US20100046628A1 (en) * 2008-08-19 2010-02-25 Vasudev Bhaskaran Systems and Methods for Perceptually Lossless Video Compression
CN103703779A (en) * 2011-11-03 2014-04-02 谷歌公司 Image compression using sub-resolution images
US20140189476A1 (en) * 2012-12-27 2014-07-03 Reflektion, Inc. Image manipulation for web content
US20140301475A1 (en) * 2013-04-05 2014-10-09 Qualcomm Incorporated Determining palette indices in palette-based video coding

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
SHINYA SHIMIZU: "Block-adaptive palette-based prediction for depth map coding", 《2011 18TH IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING》 *
XIAOYU XIU ET AL: "Removal of parsing dependency in palette-based coding" *
李少龙: "视频数据采集及编码技术的研究与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *
胡健: "多图像格式及三维图像输出功能研究", 《硕士论文》 *

Also Published As

Publication number Publication date
CN107005717A (en) 2017-08-01
CN107005717B (en) 2020-04-07
CN114630131B (en) 2023-11-07

Similar Documents

Publication Publication Date Title
CN110519604B (en) Skip pixel coding and decoding method in index mapping coding and decoding
CN114630131B (en) Jump out pixel encoding and decoding method in index mapping encoding and decoding
CN107534783B (en) A palette index map encoding and decoding method for blocks in an image
CN106537910B (en) Method for using jumping-out pixel as predictor in index image coding
KR101887798B1 (en) Method and apparatus of binarization and context-adaptive coding for syntax in video coding
CN105981388A (en) Method and device for syntactic redundancy removal in palette coding
CN106464869B (en) Method for initializing and managing palette table
JP6223998B2 (en) Method and apparatus for coding block flag coding in high efficiency video coding
CN107251555A (en) Method and apparatus for monochrome content palette coding in video and image compression
CN107534782A (en) Palette Mode Coding and Decoding Method in Video Coding and Decoding
CA2934246C (en) Palette prediction and sharing in video coding
JP2024102288A (en) Video image processing method, device, and storage medium
CN107431827B (en) Method and apparatus for video and image coding and decoding using palette coding mode
BR112017009946B1 (en) EXHAUST PIXEL TO CODE CONVERSION METHODS IN INDICATOR MAP TO CODE CONVERSION

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant