-
Notifications
You must be signed in to change notification settings - Fork 95
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into feat/spi_nand_flash_mt29f1
- Loading branch information
Showing
43 changed files
with
19,955 additions
and
1,052 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,3 @@ | ||
target = "all" | ||
paths = "." | ||
recursive = true | ||
exclude = [ | ||
".github", | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
version: "1.0.5~3" | ||
version: "1.1.0" | ||
description: "JPEG Decoder: TJpgDec" | ||
url: https://github.com/espressif/idf-extra-components/tree/master/esp_jpeg/ | ||
dependencies: | ||
idf: ">=4.4" | ||
idf: ">=5.0" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
/* | ||
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD | ||
* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
// Default Huffman tables for baseline JPEG | ||
|
||
// These values are taken directly from CCITT Rec. T.81 (1992 E) Appendix K.3.3 | ||
// The *_num_bits array always contains exactly 16 elements. | ||
// Each element represents the number of Huffman codes of a specific length: | ||
// - The first element corresponds to codes of length 1 bit, | ||
// - The second element to codes of length 2 bits, and so forth up to 16 bits. | ||
// | ||
// The *_values array has a length equal to the sum of all elements in the *_num_bits array, | ||
// representing the actual values associated with each Huffman code in order. | ||
|
||
// Luminance DC Table | ||
const unsigned char esp_jpeg_lum_dc_num_bits[16] = {0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}; | ||
const unsigned esp_jpeg_lum_dc_codes_total = 12; | ||
const unsigned char esp_jpeg_lum_dc_values[12] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; | ||
|
||
// Chrominance DC Table | ||
const unsigned char esp_jpeg_chrom_dc_num_bits[16] = {0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}; | ||
const unsigned esp_jpeg_chrom_dc_codes_total = 12; | ||
const unsigned char esp_jpeg_chrom_dc_values[12] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; | ||
|
||
// Luminance AC Table | ||
const unsigned char esp_jpeg_lum_ac_num_bits[16] = {0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125}; | ||
const unsigned esp_jpeg_lum_ac_codes_total = 162; | ||
const unsigned char esp_jpeg_lum_ac_values[162] = { | ||
0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, | ||
0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xA1, 0x08, 0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, 0xD1, 0xF0, | ||
0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28, | ||
0x29, 0x2A, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, | ||
0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, | ||
0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, | ||
0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, | ||
0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5, | ||
0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE1, 0xE2, | ||
0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, | ||
0xF9, 0xFA | ||
}; | ||
|
||
// Chrominance AC Table | ||
const unsigned char esp_jpeg_chrom_ac_num_bits[16] = {0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119}; | ||
const unsigned esp_jpeg_chrom_ac_codes_total = 162; | ||
const unsigned char esp_jpeg_chrom_ac_values[162] = { | ||
0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, | ||
0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, 0xA1, 0xB1, 0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0, | ||
0x15, 0x62, 0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34, 0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26, | ||
0x27, 0x28, 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, | ||
0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, | ||
0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, | ||
0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, | ||
0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, | ||
0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, | ||
0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, | ||
0xF9, 0xFA | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
idf_component_register(SRCS "tjpgd_test.c" "test_tjpgd_main.c" | ||
INCLUDE_DIRS "." | ||
PRIV_REQUIRES "unity" | ||
WHOLE_ARCHIVE) | ||
WHOLE_ARCHIVE | ||
EMBED_FILES "logo.jpg" "usb_camera.jpg") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
from PIL import Image | ||
|
||
|
||
def jpg_to_rgb888_hex_c_array(input_filename: str, output_filename: str) -> str: | ||
""" | ||
Convert a .jpg file to RGB888 hex data and format it as a C-style array. | ||
Parameters: | ||
input_filename (str): The path to the JPEG file. | ||
Returns: | ||
str: A string representing the RGB888 hex data formatted as a C array. | ||
""" | ||
# Open the image file | ||
with Image.open(input_filename) as img: | ||
# Ensure the image is in RGB mode | ||
rgb_img = img.convert("RGB") | ||
|
||
# Get image dimensions | ||
width, height = rgb_img.size | ||
|
||
# List to store hex values as C-style entries | ||
hex_data = [] | ||
|
||
# Iterate over each pixel to get RGB values | ||
for y in range(height): | ||
for x in range(width): | ||
r, g, b = rgb_img.getpixel((x, y)) | ||
# Format each RGB value as C-style hex (e.g., 0xRRGGBB) | ||
hex_data.append(f"0x{r:02X}{g:02X}{b:02X}") | ||
|
||
# Format as a C-style array with line breaks for readability | ||
hex_array = ",\n ".join(hex_data) | ||
c_array = f"unsigned int image_data[{width * height}] = {{\n {hex_array}\n}};" | ||
|
||
# Write the C array to the output file | ||
with open(output_filename, "w") as file: | ||
file.write(c_array) | ||
|
||
print(f"C-style RGB888 hex array saved to {output_filename}") | ||
|
||
return c_array | ||
|
||
|
||
def main(): | ||
""" | ||
Main function to convert a JPEG file to an RGB888 C-style hex array. | ||
Instructions: | ||
1. Replace 'input.jpg' with the path to your JPEG file. | ||
2. Run the script to get the C-style array output. | ||
""" | ||
# Input JPEG file path | ||
input_filename = "usb_camera.jpg" # Replace with your JPEG file path | ||
|
||
# Output file path for the C array | ||
output_filename = "output_array.c" # Specify your desired output filename | ||
|
||
# Convert JPEG to C-style RGB888 hex array | ||
jpg_to_rgb888_hex_c_array(input_filename, output_filename) | ||
|
||
|
||
if __name__ == "__main__": | ||
main() |
Oops, something went wrong.