1. Trang chủ
  2. » Tất cả

Thiết kế máy ảnh kỹ thuật số giới thiệu về máy ảnh kỹ thuật số đơn giản quan điểm của nhà thiết kế yêu cầu và thông số kỹ thuật thiết kế và triển khai

57 6 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế máy ảnh kỹ thuật số giới thiệu về máy ảnh kỹ thuật số đơn giản quan điểm của nhà thiết kế yêu cầu và thông số kỹ thuật thiết kế và triển khai
Trường học Trường Đại Học Công Nghệ Thông Tin - ĐHQG Hà Nội
Chuyên ngành Kỹ thuật Điện tử truyền thông
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 57
Dung lượng 1,69 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Máy ảnh kỹ thuật số đơn giảnYÊU CẦU CHUNG • Chụp ảnh • Lưu trễ ảnh dưới dạng số Không sử dụng film Lưu nhiều ảnh trên máy ảnh o Số lượng phụ thuộc vào dung lượng bộ nhớ và số bit sử dụng

Trang 1

TỔNG QUAN

1 Giới thiệu về máy ảnh kỹ thuật số đơn

giản

2 Quan điểm của nhà thiết kế

3 Yêu cầu và thông số kỹ thuật

4 Thiết kế và triển khai

Thiết kế máy ảnh kỹ thuật số

Trang 2

• Thiết kế một máy ảnh kỹ thuật số

Bộ xử lý đa năng vs bộ xử lý đơn chức năng

Phân tách chức năng giữa các loại bộ xử lý khác

nhau

Trang 3

Máy ảnh kỹ thuật số đơn giản

YÊU CẦU CHUNG

• Chụp ảnh

• Lưu trễ ảnh dưới dạng số

Không sử dụng film

Lưu nhiều ảnh trên máy ảnh

o Số lượng phụ thuộc vào dung lượng bộ nhớ và số bit sử dụng cho mỗi ảnh

• TẢI ẢNH LÊN HỆ THỐNG MÁY TÍNH (PC)

CHỈ KHẢ THI GẦN ĐÂY

• Hệ thống trên một chip (SOC): nhiều bộ xử lý và bộ nhớ trên một IC

• Bộ nhớ flash dung lượng cao

• Mô tả đơn giản: Máy ảnh kỹ thuật số thực có nhiều tính hơn

Ảnh có thể có kích thước khác nhau, xóa ảnh, kéo dãn số học, phóng to/thu nhỏ, vv.

Trang 4

Máy ảnh kỹ thuật số đơn giản

• Đơn chức năng – luôn là máy ảnh kỹ thuật số

• Bị ràng buộc chặt chẽ Chi phí thấp, công suất thấp, nhỏ, nhanh

• Phản ứng nhanh theo thời gian thực – Chỉ trong phạm vi nhỏ

Trang 6

Thách thức thiết kế

Số liệu thiết kế chung

• Chi phí đơn vị: Chi phí để sản xuất mỗi bản sao của hệ thống, không bao gồm chi phí NRE

chỉ một lần

• Kích thước: không gian vật lý cần thiết cho hệ thống

• Hiệu suất: thời gian thực thi hoặc thông lượng của hệ thống

• Công suất: lượng điêu tiêu thụ của hệ thống

• Tính linh hoạt: khả năng thay đổi chức năng của hệ thống

mà không gây chi phí NRE nặng nề

Trang 7

Thách thức thiết kế

Số liệu thiết kế chung

• Thời gian tới nguyên mẫu: thời gian cần thiết để xây

dựng phiên bản hoạt động của hệ thống

• Thời gian đưa ra thị trường: thời gian cần thiết để phát triển hệ thống đến mức có thể phát hành và bán cho

Trang 8

Số liệu thiết kế

• Cần có chuyên môn về cả phần cứng và phần mềm để tối ưu hóa các chỉ số thiết kế

Không chỉ là 1 chuyên gia phần cứnghoặc phần mềm nhưu thường thấy

1 nhà thiết kế phải thoải mái với cáccông nghệ khác nhau để có thể lựachọn công nghệ tốt nhất cho 1 ứngdụng cụ thể và các rang buộc liên quan

Phần cứng Phần mềm

Kích cỡ Hiệu suất

bộ điều khiển DMA

bộ điều khiển bộ nhớ Giao diện xe buýt ISA UART màn hình LCD

Trang 9

Thời gian đưa ra thị trường

• Thời gian đưa ra thị trường trung bình hạn chế là

1 số liệu thiết kế đòi hỏi khắt khe

• Thời gian cần thiết để phát triển sản phẩm đến mức có thể bán cho khách hàng

• Cửa sổ thị trường

Khoảng thời gian mà cácsản phẩm sẽ có doanh thucao nhất

Trang 10

Tổn thất do gia nhập thị trường chậm trễ

• Mô hình doanh thu đơn giản hóa

Tuổi thọ sản phẩm = 2W, Đỉnh tại WThời gian gia nhập thị trường xácđịnh 1 tam giác, đại diện cho thâmnhập thị trường

Diện tích tam giác bằng doanh thu

Trang 11

Tổn thất do gia nhập thị trường chậm trễ

• Diện tích = 1/2 * đế * cao

Đúng giờ = 1/2 * 2W * WTrì hoãn = 1/2 * (W-D+W)*(W-D)

• Tỉ lệ thất thoát doanh thu

• Ví dụ

On-time

entry

Doanh thu cao nhất

Doanh thu cao nhất từ mục nhập bị trì hoãn Thị trường tăng

Trang 12

NRE và số liệu chi phí đơn vị

Chi phí:

Chi phí đơn vị: Chi phí bằng tiền để sản xuất mỗi bản sao của hệ

thống, không bao gồm chi phí NRE

Chi phí NRE (Chi phí kỹ thuật không định kỳ): Chi phí thiết kế hệ thống

một lần duy nhất

Tổng chi phí = Chi phí NRE + Chi phí đơn vị * số đơn vị

Chi phí mỗi sản phẩm= tổng chi phí / số đơn vị

= (Chi phí NRE / số đơn vị) + Chi phí đơn vị

Chi phí mỗi sản phẩm= Tổng chi phí /Số đơn vị

= (Chi phí NRE/Số đơn vị) + Chi phí đơn vị

Ví dụ:

– NRE=$2000, đơn giá 1 sản phẩm=$100

– Với 10 sản phẩm

– Tổng chi phí = $2000 + 10*$100 = $3000 – Chi phí trên mỗi sản phẩm = $2000/10 + $100 = $300

Phân bổ chi phí NRE trên các đơn vị sản 12

Trang 13

NRE và số liệu chi phí đơn vị

• So sánh các công nghệ theo chi phí—tốt nhất phụ thuộc vào số lượng

Công nghệ A: NRE=$2,000, đơn vị=$100Công nghệ B: NRE=$30,000, đơn vị=$30Công nghệ C: NRE=$100,000, đơn vị=$2

Trang 14

Hiệu suất: Một thước đo thiết kế

• Đo lường thông dụng của hệ thống, nhưng thường bị lạm dụng

Tần số xung, số lệnh trên giây - không phải là các đo lường tốt

Ví dụ về máy ảnh kỹ thuật số - người dùng quan tâm đến tốc độ xử lý ảnh nhanh như thế nào, không phải tần số xung hay số lệnh trên giây

• Độ trễ (thời gian phản hồi)

Thời gian giữa bắt đầu và kết thúc nhiệm vụ

Ví dụ, Camera A và B xử lý hình ảnh trong 0,25 giây

• Thực hiện tác vụ trên giây

Tác vụ trên giây, ví dụ Camera A xử lý 4 ảnh mỗi giây

Thực hiện tác vụ trên giây có thể nhanh hơn thời gian trễ vì sự đồng thời, ví dụ Camera B có thể xử lý 8 ảnh mỗi giây (bằng cách chụp ảnh mới trong khi ảnh trước đó đang được lưu trữ).

• Tốc độ tăng nhanh của B so với A = hiệu suất của B / hiệu suất của A

Tốc độ tăng thực hiện tác vụ trên giây = 8/4 = 2

Trang 15

Quan điểm của nhà thiết kế máy ảnh kỹ thuật số

Trang 16

được chuyển đổi thành

giá trị n bit trong đó 0

biểu thị không có phơi

phủ bởi một dải sơn

màu đen Cường độ ánh

sáng của các pixel này

Mạch điện tử, khi được lệnh, sẽ phóng điện các ô, kích hoạt màn trập cơ điện, sau đó đọc giá trị điện tích n-bit của mỗi ô Các giá trị này có thể được bấm giờ ra khỏi CCD bằng logic mở rộng thông qua giao diện bus song song.

Lens area

Pixel columns

Covered columns

Electronic circuitry

mechanical shutter

Trang 17

Sai số không điều chỉnh

• Lỗi sản xuất khiến các ô đo cường độ sáng cao hơn hoặc thấp

hơn một chút so với cường độ ánh sáng thực tế

• Lỗi thường giống nhau giữa các cột nhưng khác nhau giữa các

hàng

• Lỗi thường giống nhau giữa các cột nhưng khác nhau giữa các

hàng lỗi sai số không điều chỉnh

Việc đọc khác 0 trong các ô bị chặn là sai số không điều chỉnh

Mỗi hàng được sửa bằng cách trừ đi lỗi trung bình được tìm

thấy trong các ô bị chặn cho hàng đó

Covered cells

Before zero-bias adjustment After zero-bias adjustment

-13 -11 -9 0 -7 -1 -4 -5

Zero-bias adjustment

Trang 18

• Lưu trữ nhiều hình ảnh hơn

• Truyền hình ảnh tới PC trong thời gian ngắn hơn

• JPEG (Nhóm chuyên gia chụp ảnh chung)

Định dạng tiêu chuẩn phổ biến để thể hiện hình ảnh kỹ thuật số

được nén

Cung cấp một số chế độ hoạt động khác nhau

Chế độ được sử dụng trong chương này cung cấp tỷ lệ nén cao bằng cách sử dụng DCT (biến đổi cosin rời rạc)

Dữ liệu ảnh được chia thành các khối 8 x 8

Thực hiện 3 bước trên mỗi khối

DCT, lượng tử hóa and Huffman encoding

Trang 19

bước DCT

• Biến đổi khối 8 x 8 ban đầu thành tần số cosin lãnh địa

Giá trị góc trên bên trái thể hiện nhiều hơn bản chất của hình ảnhGiá trị góc dưới bên phải thể hiện chi tiết tốt hơn o Có thể giảm độ chính xác của các giá trị này và giữ lại chất lượng hình ảnh hợp lý

• Công thức FDCT (Chuyển tiếp DCT)

C(h) = if (h == 0) then 1/sqrt(2) else 1.0

Chức năng phụ dùng trong chức năng chính F(u,v)

F(u,v) = ¼ C(u) C(v) Σ x=0 7 Σ y=0 7 D xy cos(π(2x + 1)u/16) cos(π(2y + 1)v/16)

Cung cấp pixel được mã hóa ở hàng u, cột v Dxy là giá trị pixel gốc ở hàng x, cột y

• IDCT (Nghịch đảo DCT)

Đảo ngược quy trình để có được khối ban đầu (không cần thiết

cho thiết kế này)

Trang 20

bước lượng tử hóa

• Đạt được tỷ lệ nén cao bằng cách giảm hình

ảnh chất lượng

Giảm độ chính xác bit của dữ liệu được mã hóa

o Cần ít bit hơn để mã hóa

o Một cách là chia tất cả các giá trị cho hệ số 2

Dịch chuyển sang phải đơn giản có thể thực hiện điều này

Dequantization sẽ đảo ngược quá trình giải nén

0 -8 -2 -2 5 -3 -2 1

5 -1 -1 -1 3 -4 -3 2 -2 -1 3 -1 0 0 2 -3 -1 -2 -1 -2 -1 0 1 -1

Sau khi được giải mã bằng

DCT

Sau khi lượng

tử hóa Divide each cell’s

value by 8

Trang 21

Mã hóa Huffman

• Sắp xếp theo thứ tự khối pixel 8 x 8

Các giá trị được chuyển đổi thành một danh sách duy nhất bằng cách sử dụng mẫu hình zigzag

• Thực hiện mã hóa Huffman

Các pixel xuất hiện thường xuyên hơn được gán mã nhị phân ngắn

Mã nhị phân dài hơn dành cho các pixel ít xuất hiện hơn

• Mỗi pixel trong danh sách nối tiếp được chuyển đổi thành các giá trị được mã

hóa Huffman

Danh sách ngắn hơn nhiều, do đó nén

Trang 22

Ví dụ mã hóa Huffman

Tần số pixel ở bên trái

• Giá trị pixel –1 xảy ra 15 lần

• Giá trị pixel 14 xảy ra 1 lần

Xây dựng cây Huffman từ dưới lên

• Tạo một nút lá cho mỗi pixel giá trị

và gán tần số làm giá trị của nút

• Tạo một nút bên trong bằng cách nối

hai nút bất kỳ có tổng bằng một giá trị

nhỏ nhất

• Lặp lại cho đến khi hoàn thành cây nhị

phân Duyệt cây từ gốc đến lá

Để lấy mã nhị phân cho

pixel của lá

• Nối 0 cho duyệt trái, 1 cho duyệt phải

Mã hóa Huffman có thể đảo ngược

• Không mã nào là tiền tố của mã khác

4

5

1 1 5

1 4

6

1 7

8

1 8

1

-15

29

3 5

-1 s15

x

0 8x -2 6x

1 5x

2 5x

3 5x

5 5x -3 4x -5 3x -10 2x

144 1x -9 1x -8 1x -4 1x

Trang 23

lưu trữ

• Ghi lại địa chỉ bắt đầu và kích thước hình ảnh

Có thể sử dụng cấu trúc danh sách liên kết

• Một cách khả thi để lưu trữ hình ảnh số lượng hình

ảnh được lưu trữ là N

Dành bộ nhớ cho N địa chỉ và N biến kích thước hình ảnh

Giữ bộ đếm cho vị trí của địa chỉ khả dụng tiếp theo

Khởi tạo địa chỉ và biến kích thước hình ảnh thành 0

Đặt địa chỉ bộ nhớ chung thành N x 4

o Giả sử biến kích thước ảnh chiếm N x 4 byte

Ảnh đầu tiên được lưu trữ bắt đầu từ địa chỉ N x 4

Địa chỉ bộ nhớ chung được cập nhật thành N x 4 + (kích

thước ảnh nén)

• Yêu cầu bộ nhớ dựa trên N, kích thước hình ảnh và

tỷ lệ nén trung bình

Trang 24

Tải lên hệ thống máy tính

Khi được kết nối với Hệ thống máy tính và

nhận được lệnh tải lên

• Đọc hình ảnh từ bộ nhớ

• Truyền nối tiếp bằng UART (ví

dụ: qua cổng USB)

• Trong khi truyền

Đặt lại con trỏ, biến kích thước hình ảnh

và con trỏ bộ nhớ chung cho phù hợp

Trang 25

Yêu cầu Thông số kỹ thuật

Yêu cầu của hệ thống – hệ thống nên làm gì

• Yêu cầu phi chức năng

Các ràng buộc về số liệu thiết kế (ví dụ: “nên sử dụng 0,001 watt trởxuống”)

• Yêu cầu chức năng

Hành vi của hệ thống (ví dụ: “đầu ra X phải là đầu vào Y nhân 2”)

• Thông số kỹ thuật ban đầu có thể rất chung chung và đến từ bộ

phận tiếp thị

Ví dụ: Một tài liệu ngắn mô tả nhu cầu thị trường cho một máy ảnh kỹ

thuật số cấp thấp:

Chụp và lưu trữ ít nhất 50 hình ảnh có độ phân giải thấp và tải lên máy tính.

Chi phí khoảng 100 đô la với một IC kích thước trung bình duy nhất có giá

dưới 25 đô la

Có thời lượng pin dài nhất có thể

Doanh số dự kiến là 200.000 nếu gia nhập thị trường < 6 tháng

100.000 nếu từ 6 đến 12 tháng

doanh số bán hàng không đáng kể sau 12 tháng

Trang 26

Những yêu cầu phi lý

Thiết kế các số liệu quan trọng dựa trên đặc

điểm kỹ thuật ban đầu

Hiệu suất: thời gian cần thiết để xử lý hình ảnh

Kích thước: số lượng cổng logic (cổng NAND 2 đầu vào) trong

IC

Công suất: đo lượng điện tiêu thụ trung bình trong khi xử lý

Năng lượng: tuổi thọ pin (công suất x thời gian)

Số liệu bị ràng buộc

• Giá trị phải ở dưới (đôi khi ở trên) ngưỡng nhất định

Số liệu tối ưu hóa

• Cải thiện càng nhiều càng tốt để cải thiện sản phẩm

Số liệu có thể vừa bị hạn chế vừa tối ưu hóa

Trang 27

Những yêu cầu phi lý

Kích cỡPhải sử dụng IC phù hợp với camera có kích thước hợp lý

Số liệu hạn chế và tối ưu hóa: 200K cổng, nhưng thấp hơn thì rẻ

Giảm công suất hoặc thời gian làm giảm năng lượng

Số liệu được tối ưu hóa: muốn pin hoạt động càng lâu càng tốt

Trang 28

Thông số kỹ thuật chức năng phi chính thức

• Sơ đồ luồng giúp phân tách

chức năng thành các chức

năng đơn giản hơn

• Chi tiết của mỗi chức năng có

thể được mô tả bằng tiếng Anh

Đã thực hiện trong chương trình trước đó

• Hình ảnh chất lượng thấp có

độ phân giải là 64x64

• Ánh xạ các chức năng vào một

loại bộ vi xử lý cụ thể chưa được

thực hiện ở giai đoạn này

Đầu ra nối tiếp vd:.

011010

Đầu vào CCD

Điều chỉnh độ lệch bằng không DCT

Lượng tử hóa

Lưu trữ trong

bộ nhớ

Có hơn 8x8 khối

?

Transmit serially

không Hoàn

thành

?

Trang 29

Thông số ký thuật chức năng được hiệu chỉnh/hoàn thiện

• Tinh chỉnh thông số kỹ thuật phi chính

nhiều thời gian tính toán

• Có thể thu được đầu ra mẫu được

sử dụng để xác minh tính chính xác

của triển khai cuối cùng

image file

10101101 01101010 10010101 101

CODEC C

CCDPP

C

Mô hình thực thi của máy ảnh kỹthuật số

Trang 30

static unsigned rowIndex,

void CcdInitialize(const char *imageFileName) { imageFileHandle = fopen(imageFileName, "r"); rowIndex = -1;

colIndex = -1;

} colIndex;

rewind(imageFileHandle);

for(rowIndex=0; rowIndex<SZ_ROW; rowIndex++) { for(colIndex=0; colIndex<SZ_COL; colIndex++) { if( fscanf(imageFileHandle, "%i", &pixel)

== 1 ) { buffer[rowIndex][colIndex] = (char)pixel; }

} } rowIndex = 0;

colIndex = 0;

}

Trang 31

• Thực hiện điều chỉnh không có sự

lệch sau mỗi hàng được đọc vào

#define SZ_ROW

#define SZ_COL

64 64 static char

buffer[SZ_ROW][SZ_COL];

static unsigned rowIndex, colIndex;

void CcdppInitialize() { rowIndex = -1;

colIndex = -1;

} void CcdppCapture(void) {

char bias;

CcdCapture();

for(rowIndex=0; rowIndex<SZ_ROW; rowIndex++) {

for(colIndex=0; colIndex<SZ_COL; colIndex++) {

buffer[rowIndex][colIndex] = CcdPopPixel();

}

bias = (CcdPopPixel() + CcdPopPixel()) / 2;

for(colIndex=0; colIndex<SZ_COL; colIndex++) {

pixel = buffer[rowIndex][colIndex];

if( ++colIndex == SZ_COL ) { colIndex = 0;

if( ++rowIndex == SZ_ROW ) {

colIndex = -1;

rowIndex = -1;

} } return pixel;

}

Trang 32

static FILE *outputFileHandle;

void UartInitialize(const char *outputFileName) { outputFileHandle = fopen(outputFileName, "w");

}

void UartSend(char d) { fprintf(outputFileHandle, "%i\n", (int)d);

}

Trang 33

Mô-đun CODEC

• Mô hình mã hóa FDCT

• ibuffer chứa khối gốc 8 x 8 ban đầu

• obuffer chứa khối mã hóa 8 x 8

• Hàm CodecPushPixel được gọi

64 lần để điền khối gốc vào ibuffer

• Hàm CodecDoFdct được

gọi một lần để biến đổi

khối 8 x 8

Được giải thích trong slide kế tiếp

• Hàm CodecPopPixel được gọi

64 lần để lấy khối mã hóa từ

ibuffer[idx / 8][idx % 8] = p;

idx++;

} void CodecDoFdct(void) { int x, y;

for(x=0; x<8; x++) { for(y=0; y<8; y++) obuffer[x][y] = FDCT(x, y, ibuffer);

} idx = 0;

}

short CodecPopPixel(void) { short p;

if( idx == 64 ) idx = 0;

p = obuffer[idx / 8][idx % 8];

idx++;

return p;

}

Trang 34

Thực hiện công thức FDCT

C(h) = if (h == 0) then 1/sqrt(2) else 1.0

F(u,v) = ¼ C(u) C(v) Σ x=0 7 Σ y=0 7 D xy cos(π(2x + 1)u/16) cos(π(2y + 1)v/16)

Chỉ có 64 giá trị đầu vào có thể đưa vào hàm COS, vì vậy bảng có thể được sử dụng để

tiết kiệm thời gian xử lý

Giá trị dấu phẩy động được nhân với 32.678 và làm tròn đến số nguyên gần nhất 32,678 được chọn để lưu trữ mỗi giá trị trong 2 byte của bộ nhớ

Đại diện cho dấu chấm động cố định được giải thích thêm sau FDCT được triển khai bằng cách xử lý

vòng lặp bên trong của tổng, cài đặt tổng bên ngoài dưới dạng hai vòng lặp liên tiếp

static short ONE_OVER_SQRT_TWO = 23170;

static double COS(int xy, int uv) {

short COS_TABLE[8][8] =

32138, 30273, 27245,

{

23170, 18204, 12539, 6392 }, { 32768, 27245, 12539, -6392, -23170, -32138, -30273, -18204 }, { 32768, 18204, -12539, -32138, -23170, 6392, 30273, 27245 }, { 32768, 6392, -30273, -18204, 23170, 27245, -12539, -32138 }, { 32768, -6392, -30273, 18204, 23170, -27245, -12539, 32138 }, { 32768, -18204, -12539, 32138, -23170, -6392, 30273, -27245 }, { 32768, -27245, 12539, 6392, -23170, 32138, -30273, 18204 }, { 32768, -32138, 30273, -27245, 23170, -18204, 12539, -6392 } };

static int FDCT(int u, int v, short img[8][8]) { double s[8], r = 0; int x;

for(x=0; x<8; x++) { s[x] = img[x][0] * COS(0, v) + img[x][1] * COS(1, v) + img[x][2] * COS(2, v) + img[x][3] * COS(3, v) + img[x][4] * COS(4, v) + img[x][5] * COS(5, v) + img[x][6] * COS(6, v) + img[x][7] * COS(7, v); }

for(x=0; x<8; x++) r += s[x] * COS(x, u);

return (short)(r * 25 * C(u) * C(v));

}

Ngày đăng: 09/03/2023, 22:06

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w