A method of video or image decoding using palette coding mode, comprising: receiving a video bitstream corresponding to coded data of a current block; parsing a first syntax element from the video bitstream to indicate whether a last run type for the current block is a copy-index mode or a copy-above mode, wherein the copy-index mode represents M consecutive indices all having a first index value by signaling the first index value and M runs, and the copy-above mode represents N consecutive second index values all having same second index values as corresponding N above pixels by signaling N runs; determining a maximum palette run for a current pixel being coded based on coding information including whether the last run type for the current block is the copy-index mode or the copy-above mode; and decoding current run associated with the current pixel from the video bitstream according to the maximum palette run; wherein the maximum palette run is determined according to, maxPaletteRun = nCbS * nCbS − scanPos − NumIndicesLeft − last _ palette _ run _ type _ flag − 1 , or maxPaletteRun = nCbS * nCbS − scanPos − NumIndicesLeft − last _ palette _ run _ type _ flag = = the copy-index mode ? 0 : 1 − 1 , or maxPaletteRun = nCbS * nCbS − scanPos − NumIndicesLeft − last _ palette _ run _ type _ flag = = the copy-above mode ? 1 : 0 − 1 , wherein maxPaletteRun represents the maximum palette run, nCbS is included in the coding information and represents width and height of the current block, scanPos is included in the coding information and represents a pixel location of the current pixel, NumlndicesLeft is included in the coding information and represents a number of remaining palette indices for the current block at the pixel location of the current pixel, and last_palette_run_type_flag represents the first syntax element, last_palette_run_type_flag has a value of 1 if the last run type is the copy-above mode and last_palette_run_type_flag has a value of 0 if the last run type is the copy-index mode. receiving a video bitstream corresponding to coded data of a current block; parsing a first syntax element from the video bitstream to indicate whether a last run type for the current block is a copy-index mode or a copy-above mode, wherein the copy-index mode represents M consecutive indices all having a first index value by signaling the first index value and M runs, and the copy-above mode represents N consecutive second index values all having same second index values as corresponding N above pixels by signaling N runs; determining a maximum palette run for a current pixel being coded based on coding information including whether the last run type for the current block is the copy-index mode or the copy-above mode; and decoding current run associated with the current pixel from the video bitstream according to the maximum palette run; wherein the maximum palette run is determined according to, maxPaletteRun = nCbS * nCbS − scanPos − NumIndicesLeft − last _ palette _ run _ type _ flag − 1 , or maxPaletteRun = nCbS * nCbS − scanPos − NumIndicesLeft − last _ palette _ run _ type _ flag = = the copy-index mode ? 0 : 1 − 1 , or maxPaletteRun = nCbS * nCbS − scanPos − NumIndicesLeft − last _ palette _ run _ type _ flag = = the copy-above mode ? 1 : 0 − 1 , wherein maxPaletteRun represents the maximum palette run, nCbS is included in the coding information and represents width and height of the current block, scanPos is included in the coding information and represents a pixel location of the current pixel, NumlndicesLeft is included in the coding information and represents a number of remaining palette indices for the current block at the pixel location of the current pixel, and last_palette_run_type_flag represents the first syntax element, last_palette_run_type_flag has a value of 1 if the last run type is the copy-above mode and last_palette_run_type_flag has a value of 0 if the last run type is the copy-index mode. <EOS>