Thư viện giải mã ảnh JPEG – TinyJPEG

Một phần của tài liệu Luận Văn: Xây dựng hệ thống hiển thị thông tin hình ảnh thông qua mạng Internet (Trang 57)

TinyJpeg Decoder là một thư viện nhỏ dành cho các ứng dụng cần giải mã ảnh Jpeg. TinyJpeg được viết theo thư viện C chuẩn nên hỗ trợ nhiều phần cứng khác nhau. Tuy nhiên, khi sử dụng trên hệ thống nhúng SOC với tốc độ vi xử lý thấp như Spartan-3E, tốc độ giải mã khá là chậm. Theo lưu đồ giải mã hình ảnh Jpeg mô tả ở hình 3.18, chúng ta cần gọi 5 hàm của thư viện TinyJpeg theo đúng trình tự. Sau đây là bảng mô tả các hàm được sử dụng giải mã Jpeg.

Bảng 3-6: Mô tả hàm khởi tạo tinyjpeg_init [4]

Prototype struct jdec_private *tinyjpeg_init(void)

Parameters N/A

Description

Hàm này khởi tạo vùng nhớ để chuẩn bị lưu trữ thông tin của ảnh và dữ liệu sau khi giải mã jpeg. Hàm này cần được gọi đầu tiên

Return Giá trị trả về:

ỏ tới vùng nhớ vừa được tạo ỗi khởi tạo.

Comment

Includes Tinyjpeg.h

Bảng 3-7: Mô tả hàm duyệt header file tinyjpeg_parse_header [4]

Prototype int tinyjpeg_parse_header( struct jdec_private *priv, const unsigned char *buf, unsigned int size);

Parameters *priv: Tinyjpeg object

*buf: con trỏ tới dữ liệu của file jpeg cần giải mã size: kích thước của file

Description

Hàm này thực hiện kiểm tra file jpeg xem có thể giải mã được hay không. Nếu được thì nó sẽ lấy các thông tin header của file jpeg và truyền vào biến priv

Return Giá trị trả về:

57

ể giải mã được file này

Comment Hàm này được gọi sau tinyjpeg_init()

Includes Tinyjpeg.h

Bảng 3-8: Mô tả hàm giải mã ảnh tinyjpeg_decode [4]

Prototype int tinyjpeg_decode(

struct jdec_private *priv, int pixel_format);

Parameters *priv: con trỏtới Tinyjpeg object

pixel_format: định dạng ảnh sau khi giải mã. Tinyjpeg hỗ trợ các định dạng sau: - TINYJPEG_FMT_YUV420P - TINYJPEG_FMT_RGB24 - TINYJPEG_FMT_BGR24 - TINYJPEG_FMT_GREY Description

Hàm này thực hiện quá trình giải mã ảnh; chuyển đổi ảnh kết quả sang định dạng pixel_format và lưu trữ bởi con trỏ priv

Return Giá trị trả về:

> 0: hàm thực hiện thành công < 0: hàm thực hiện bị lỗi

Comment Cần thực hiện hai hàm trên trước khi gọi hàm này

Includes Tinyjpeg.h

Bảng 3-9: Mô tả hàm đọc kích thước ảnh tinyjpeg_get_size [4]

Prototype void tinyjpeg_get_size(

struct jdec_private *priv, unsigned int *width, unsigned int *height)

Parameters *priv: con trỏtới Tinyjpeg object

*width: con trỏsẽ lưu độrộng củaảnh

*height: con trỏsẽlưu chiều cao củaảnh

58

Return void

Comment

Cần thực hiện hàm tinyjpeg_parse_header() trước khi gọi hàm này

Includes Tinyjpeg.h

Bảng 3-10: Mô tả hàm tinyjpeg_get_components [4]

Prototype int tinyjpeg_get_components( struct jdec_private *priv, unsigned char **components)

Parameters *priv: con trỏtới Tinyjpeg object

**components: con trỏ lưu các thành phần màu củ a ảnh sau

giải mã

Description

Hàm này lấy tham ra các thành phần màu của ảnh sau khi đã giải mã

Return int

Comment

Cần thực hiện hàm tinyjpeg_decode() trước khi gọi hàm này

Includes Tinyjpeg.h

Bảng 3-11: Mô tả hàm giải phóng bộ nhớ tinyjpeg_free [4]

Prototype void tinyjpeg_free(

struct jdec_private *priv)

Parameters *priv: con trỏtới Tinyjpeg object

Description

Hàm này thực hiện giải phóng bộ nhớ bị chiếm bởi con trỏ *priv

Return void

Comment

59

CHƯƠNG 4: : KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ

Chương này sẽ giới thiệu về các kết quả thực thi phần cứng và phần mềm điều khiển hệ thống.

Một phần của tài liệu Luận Văn: Xây dựng hệ thống hiển thị thông tin hình ảnh thông qua mạng Internet (Trang 57)