This paper proposes a lossless data embedding scheme of great payload capacity and good image quality, which is based on difference expansion. In this scheme, every pixel in a host image is divided into two nibbles and each nibble pair between two adjacent pixels can be used to hide a secret message. In order to completely recover the host image, the arithmetic coding is adopted based on prediction by partial matching (PPM) model to compress the restored information. This proposed scheme has been successfully applied to different images. According to the experimental results, embedded information can be extracted correctly and quickly from the embedded image. In addition, the proposed scheme can not only hide a large amount of information in a host image without making noticeable distortion, but can also completely restore the host image from the embedded image.