A computer-implemented method, comprising: determining, from a source image, a target region, the source image comprising a plurality of image elements arranged in rows and columns, and the target region comprising one or more flat or textured areas in the source image and a sub-region comprising a plurality of consecutive image elements; converting target data into a sequence of logical values represented in a predetermined format; and generating a target image embedded with the target data by changing an image value of at least one of the image elements of the target region within a predetermined range based on the sequence of logical values, different image values of the image elements in the target region indicating different logical values in the predetermined format, respectively, wherein the generating comprises: packaging the sequence of logical values into a plurality of data blocks in a predetermined order, each data block comprising a predetermined number of logical values placed in rows and columns; and embedding the plurality of data blocks into the target region, wherein the embedding comprises: embedding a start mark block in the sub-region, the start mark block comprising a plurality of logical values arranged in rows and columns to indicate a start of data embedding in the sub-region, and embedding an end mark block following the plurality of data blocks in the sub-region, the end mark block comprising a plurality of logical values arranged in rows and columns to indicate an end of the data embedding in the sub-region. determining, from a source image, a target region, the source image comprising a plurality of image elements arranged in rows and columns, and the target region comprising one or more flat or textured areas in the source image and a sub-region comprising a plurality of consecutive image elements; converting target data into a sequence of logical values represented in a predetermined format; and generating a target image embedded with the target data by changing an image value of at least one of the image elements of the target region within a predetermined range based on the sequence of logical values, different image values of the image elements in the target region indicating different logical values in the predetermined format, respectively, wherein the generating comprises: packaging the sequence of logical values into a plurality of data blocks in a predetermined order, each data block comprising a predetermined number of logical values placed in rows and columns; and embedding the plurality of data blocks into the target region, wherein the embedding comprises: embedding a start mark block in the sub-region, the start mark block comprising a plurality of logical values arranged in rows and columns to indicate a start of data embedding in the sub-region, and embedding an end mark block following the plurality of data blocks in the sub-region, the end mark block comprising a plurality of logical values arranged in rows and columns to indicate an end of the data embedding in the sub-region. packaging the sequence of logical values into a plurality of data blocks in a predetermined order, each data block comprising a predetermined number of logical values placed in rows and columns; and embedding the plurality of data blocks into the target region, wherein the embedding comprises: embedding a start mark block in the sub-region, the start mark block comprising a plurality of logical values arranged in rows and columns to indicate a start of data embedding in the sub-region, and embedding an end mark block following the plurality of data blocks in the sub-region, the end mark block comprising a plurality of logical values arranged in rows and columns to indicate an end of the data embedding in the sub-region. embedding a start mark block in the sub-region, the start mark block comprising a plurality of logical values arranged in rows and columns to indicate a start of data embedding in the sub-region, and embedding an end mark block following the plurality of data blocks in the sub-region, the end mark block comprising a plurality of logical values arranged in rows and columns to indicate an end of the data embedding in the sub-region.