A method of palette coding for a picture, wherein the picture is divided into multiple coding units, the method comprising: receiving input data associated with a current palette table for a current coding unit; identifying a palette predictor table; determining reuse flags to indicate whether individual palette values in the palette predictor table are used in the current palette table, wherein one reuse flag is assigned a first value if one corresponding palette value in the palette predictor table is not used in the current palette table, and said one reuse flag is assigned a second value if said one corresponding palette value in the palette predictor table is used in the current palette table; and binarizing a first codeword of the reuse flags, wherein the first codeword means next N palette values are not reused, the first codeword corresponds to N, and the first codeword of the reuse flags is binarized using Exponential-Golomb code with order-K (EG-K code), truncated Exponential-Golomb code with order-K (truncated EG-K code), or L-bit Truncated Unary code + EG-K code; wherein each first codeword of the reuse flags represents a run-length of the reuse flags that corresponds to N and means that there are N reuse flags having the first value before the next reuse flag having the second value; characterized in that. an explicit ending_flag is used to indicate an end of the compressed data associated with the current coding unit, and a run-length code value for one of the run-lengths of the reuse flags is designated as the ending_flag, wherein an additional bit is appended to the end of each binary code used for the run-lengths having the one run-length code value which is designated as the ending_flag, and to the end of the binary code used for the ending_flag, and wherein a value of the additional bit depends on whether the binary code, to which the additional bit is appended, corresponds to a run-length or to the ending flag; or an end-code is assigned to the first codeword of the reuse flags representing the last run-length for the current coding unit to indicate that none of one or more remaining reuse flags after a current reuse flag has the second value, the end-code is equal to M, and M is an integer, wherein a syntax num_of_zero_run_M is signaled to indicate a number of run-lengths for the current coding unit having a run-length value being equal to the end code M, or wherein a syntax num_of_zero_run_equal_larger_M is signaled to indicate a number of run-lengths for the current coding unit having a run-length value being equal to or greater than the end code M, wherein the syntax num_of_zero_run_M or the syntax num_of_zero_run_equal_larger_M is coded before the run-lengths for the current coding unit. receiving input data associated with a current palette table for a current coding unit; identifying a palette predictor table; determining reuse flags to indicate whether individual palette values in the palette predictor table are used in the current palette table, wherein one reuse flag is assigned a first value if one corresponding palette value in the palette predictor table is not used in the current palette table, and said one reuse flag is assigned a second value if said one corresponding palette value in the palette predictor table is used in the current palette table; and binarizing a first codeword of the reuse flags, wherein the first codeword means next N palette values are not reused, the first codeword corresponds to N, and the first codeword of the reuse flags is binarized using Exponential-Golomb code with order-K (EG-K code), truncated Exponential-Golomb code with order-K (truncated EG-K code), or L-bit Truncated Unary code + EG-K code; wherein each first codeword of the reuse flags represents a run-length of the reuse flags that corresponds to N and means that there are N reuse flags having the first value before the next reuse flag having the second value; characterized in that. an explicit ending_flag is used to indicate an end of the compressed data associated with the current coding unit, and a run-length code value for one of the run-lengths of the reuse flags is designated as the ending_flag, wherein an additional bit is appended to the end of each binary code used for the run-lengths having the one run-length code value which is designated as the ending_flag, and to the end of the binary code used for the ending_flag, and wherein a value of the additional bit depends on whether the binary code, to which the additional bit is appended, corresponds to a run-length or to the ending flag; or an end-code is assigned to the first codeword of the reuse flags representing the last run-length for the current coding unit to indicate that none of one or more remaining reuse flags after a current reuse flag has the second value, the end-code is equal to M, and M is an integer, wherein a syntax num_of_zero_run_M is signaled to indicate a number of run-lengths for the current coding unit having a run-length value being equal to the end code M, or wherein a syntax num_of_zero_run_equal_larger_M is signaled to indicate a number of run-lengths for the current coding unit having a run-length value being equal to or greater than the end code M, wherein the syntax num_of_zero_run_M or the syntax num_of_zero_run_equal_larger_M is coded before the run-lengths for the current coding unit.