tì so bong da hom nay keo nha cai

  • Sự đóng góp
  • Thời gian cập nhật 23/10/2021
  • 3 readings
  • Rating 0
  • great
  • Step on

Giới thiệu về tì so bong da hom nay keo nha cai

bong da 789

Tóm tắt: Dựa trên các đặc điểm của công nghệ nghe nhìn hiện tại, bài viết thiết kế một bộ sơ đồ triển khai công cụ nghe nhìn đa phương tiện dựa trên sơ đồ thu nhận và phát lại của công nghệ DirectX, đồng thời tích hợp công nghệ mã hóa và giải mã H.264 và Speex . Việc triển khai công cụ này kết hợp mọi khía cạnh của quá trình xử lý dữ liệu âm thanh và video của ứng dụng khách đa phương tiện, bảo vệ các khái niệm cơ bản về video và âm thanh phức tạp của nhà phát triển ứng dụng, cung cấp giao diện rõ ràng cho việc phát triển công cụ và nhận ra các dịch vụ thời gian thực, hiệu quả và ổn định. Thử nghiệm thực tế cho thấy động cơ đạt yêu cầu.
Từ khóa: Video và Audio Engine DirectX H.264 Speex
Số phân loại thư viện Trung Quốc: TP391.41 Mã nhận dạng tài liệu: A Số bài viết: 1007-9416 (2016) 01-0000-00
1. Giới thiệu
Hiện tại, hầu hết các hội nghị truyền hình mạng và nền tảng làm việc thời gian thực đều dựa trên máy khách đa phương tiện. Trong số các dịch vụ mà máy khách đa phương tiện có thể cung cấp, dịch vụ nghe nhìn là quan trọng nhất và đi kèm với sự tiến bộ không ngừng của công nghệ mạng máy tính., Audio- dịch vụ hình ảnh đã trở thành ưu tiên hàng đầu của nó, do đó, việc thiết kế và triển khai các dịch vụ công cụ nghe nhìn chất lượng cao đã trở thành một điểm nóng hiện nay. Thiết kế này bắt nguồn từ dự án phát triển động cơ của hệ thống hội nghị Internet. Mục đích của nó là phát triển một bộ hệ thống động cơ video và âm thanh có thể đáp ứng các yêu cầu về tiêu thụ điện năng thực tế thấp, băng thông thấp và chất lượng chủ quan tốt và có thể hỗ trợ Dịch vụ hội nghị Internet Công cụ có thể cung cấp Giao diện của các chế độ khác nhau của các nhà phát triển ứng dụng, để cho phép người dùng có được trải nghiệm thực tế tốt hơn, do đó giảm chi phí phát triển hệ thống hội nghị Internet.
2 Thiết kế và triển khai công cụ video và âm thanh
Dịch vụ được cung cấp bởi công cụ video và âm thanh, trước hết, là dịch vụ thu thập dữ liệu video và âm thanh. Trong công nghệ mã hóa và giải mã video và âm thanh, H.264 và Speex được người dùng sử dụng rộng rãi vì tính thực tiễn cao, do đó, thiết kế này sử dụng H.264 và Speex làm phương pháp mã hóa và giải mã đầu cuối. Theo nhận thức của chức năng động cơ, nó có thể được chia thành ba mô-đun ứng dụng: (1) mô-đun thu thập dữ liệu video và âm thanh; (2) mô-đun codec dữ liệu video và âm thanh; (3) mô-đun phát lại dữ liệu âm thanh và video. Thiết kế của động cơ trong bài báo được nghiên cứu dựa trên ba mô-đun trên.
2.1 Thu thập dữ liệu video và âm thanh
Dịch vụ video và âm thanh do engine cung cấp trước tiên sẽ thu thập dữ liệu của nó. Việc thu thập video và giọng nói được thực hiện khi máy ảnh và micrô được bật.
2.1.1 Mua thiết bị nghe nhìn
Tại thời điểm thu thập ban đầu, chương trình ứng dụng trước tiên xác định tính khả dụng của thiết bị nghe nhìn trong hệ thống, sau đó tạo danh sách thiết bị hệ thống thông qua DirectShow, để nó có thể làm việc với việc lựa chọn thiết bị tương ứng. Khi thiết bị được chọn, chương trình sẽ ghi lại ID của thiết bị và bắt đầu thu thập dữ liệu.
2.1.2 Thu thập dữ liệu video và âm thanh
Sau khi lấy được ID của thiết bị, nó bắt đầu thu thập dữ liệu, hệ thống sẽ mở thiết bị được chỉ định bằng cách nhận dạng ID, đồng thời bắt đầu thu thập dữ liệu và truy xuất dữ liệu video và âm thanh thông qua chức năng gọi lại MMGrabber.
(1) Khởi tạo giao diện IcaptureGraphBuilder2. Đối với quay video và âm thanh do DirectShow thực hiện, khi xây dựng một ứng dụng, DirectShow cung cấp một đối tượng có tên là Capture Graph Builder và một giao diện của IcaptureGraphBuilder2, có thể được sử dụng để thiết lập và kiểm soát Capture Graph bằng cách gọi giao diện này. Khi xây dựng một chương trình quay video, trước tiên bạn nên lấy và khởi chạy giao diện IcaptureGraphBuilder2, sau đó chọn thiết bị quay video. (2) Tạo bộ lọc Chụp. Sau khi hoàn thành khởi tạo giao diện và chọn thiết bị, bộ lọc Capture của thiết bị tương ứng sẽ được tạo. Sau khi tạo xong, thêm bộ lọc Chụp của thiết bị tương ứng vào Đồ thị bộ lọc bằng cách gọi AddiFilter để bắt đầu thu thập dữ liệu nghe nhìn. (3) Thực hiện thu thập dữ liệu video và âm thanh. Sau khi hoàn thành việc tạo và bổ sung bộ lọc Capture thiết bị, hãy khởi động chương trình hệ thống và chạy nó, lúc này DirectShow sẽ chụp dữ liệu video của thiết bị video và audio tương ứng theo thời gian thực và gửi đến mô-đun codec của hệ thống để nén và chỉnh sửa video và âm thanh tiếp theo. Xử lý giải mã.
2.2 Mã hóa và giải mã dữ liệu video và âm thanh
Để giảm dung lượng truyền dữ liệu của Internet, dữ liệu video và âm thanh phải được nén. Do đó, phải chọn một sơ đồ codec video và âm thanh phù hợp để thiết bị đầu cuối Internet được truyền tải nhanh chóng. Trong thiết kế này, H.264 và Speex được sử dụng làm phương pháp mã hóa và giải mã video và âm thanh để thực hiện nén và giải nén dữ liệu.
Hoạt động mã hóa và giải mã dữ liệu video và âm thanh được chia thành: hoạt động mã hóa ở đầu truyền và hoạt động giải mã ở đầu nhận.
2.2.1 Xử lý mã hóa ở người gửi
(1) Tạo bộ mã hóa. Hình 1 cho thấy sơ đồ của quá trình mã hóa tại máy phát Từ hình 1 có thể thấy rằng bước đầu tiên của quá trình mã hóa tại máy phát là tạo một bộ mã hóa, và công việc của bộ mã hóa là mã hóa các khung hình và âm thanh. . Thiết kế này sử dụng Video_CreateEncoder để tạo bộ mã hóa. Trước khi tạo bộ mã hóa, hãy xác định trước các biến cần thiết. (2) Tự động điều chỉnh các thông số. Sau khi bộ mã hóa video và âm thanh được tạo, cần phải bắt đầu quyền điều chỉnh thông số động trong quá trình chạy, nghĩa là cho phép cài đặt động của các thông số bộ mã hóa. Khi các thông số được thiết lập lại, bộ mã hóa sẽ hoạt động theo các thông số mới. Để đặt lại thông số mã hóa, bạn cần gọi x264_param_parse để đặt lại thông số và gọi x264_encoder_reconfig để cập nhật thông số. (3) Mã hóa video và âm thanh. Khi bộ mã hóa được tạo, video_EncodeFrame được sử dụng để mã hóa dữ liệu video và âm thanh. Trong quá trình mã hóa, ID bộ mã hóa được xác định bởi các tham số tương ứng, và sau đó thông tin dữ liệu ban đầu trong bộ nhớ được chuyển. 4. Phá hủy bộ mã hóa. Khi hoàn tất hoạt động mã hóa dữ liệu âm thanh và video, cần phải hủy bộ mã hóa đã được thiết lập sẵn. Tại thời điểm này, hàm video_ReleaseEncoder cần được gọi để hoàn tất. Khi video_release_encoder được gọi, x264_picture_clean được gọi nội bộ để dọn dẹp không gian cấu trúc trong bộ mã hóa tương ứng và x264_encoder_close được sử dụng để hủy bộ mã hóa.
2.2.2 Xử lý giải mã ở đầu nhận
(1) Bộ giải mã được tạo. Hình 2 cho thấy lưu đồ cơ bản của quá trình giải mã ở đầu nhận. Khi chương trình được khởi tạo, chương trình đầu tiên tạo một bộ giải mã. So với việc tạo bộ mã hóa, chương trình sẽ sử dụng hàm video_create_decoder để tạo bộ giải mã. Trước tiên, chương trình sẽ vẽ và duyệt qua danh sách được liên kết, đồng thời tìm kiếm các bộ giải mã H.264 và Speex, sau đó khởi tạo các tham số và đồng thời, hoạt động tạo bộ giải mã được hoàn thành tương ứng. (2) Giải mã khung dữ liệu. Sau khi bộ giải mã được tạo, hãy bắt đầu hoạt động giải mã. Khi dữ liệu video nén được chuyển đến đầu nhận, bộ giải mã được tạo sẽ giải mã dữ liệu khung hình âm thanh và video. Sau khi hoàn thành thao tác giải nén, nó sẽ được chuyển sang giao diện phát lại để phát lại video và âm thanh. Để tạo điều kiện thuận lợi cho thao tác, hãy đặt chức năng hoạt động giải mã dữ liệu video và âm thanh video_decode_frame thành loại đầu vào kép. Ngoài ID của bộ giải mã, hai không gian lưu trữ được tùy chỉnh, một trong số đó lưu thông tin trước khi giải mã và khác cho thông tin sau khi giải mã. (3) Phá hủy bộ giải mã. Việc tạo ra và phá hủy bộ giải mã và bộ mã hóa tương ứng với việc cấp phát và thu hồi tài nguyên. Khi chương trình kết thúc, để giải phóng tài nguyên bị chiếm dụng và để lại đủ dung lượng cho các hoạt động tiếp theo, bộ giải mã cần được phá hủy. Khi chương trình ứng dụng kết thúc, bộ giải mã sẽ bị hủy theo quy trình, đồng thời tài nguyên bị bộ giải mã chiếm giữ sẽ được giải phóng và bộ mã hóa sẽ bị phá hủy bằng cách gọi các hàm video_ReleaseDecoder và x264_encoder_close.2.3 Phát lại dữ liệu video và âm thanh
2.3.1 Phát lại video
Sau quá trình giải mã, hình ảnh cần được hiển thị trong cửa sổ, sau đó sẽ sử dụng chức năng cửa sổ hiển thị để xử lý.
(1) Cửa sổ hiển thị video được tạo. Hiển thị video vẫn cần hỗ trợ DirectShow. Đầu tiên, một cửa sổ hiển thị video sẽ được tạo. Vì môi trường hoạt động của chương trình được thực hiện trong hệ thống Windows, khi tạo cửa sổ hiển thị video, tay cầm Windows phải được nhập dưới dạng tham số. Khi hoạt động của cửa sổ video kết thúc, tài nguyên cửa sổ video cũng sẽ được giải phóng. Sau khi tạo cửa sổ, dữ liệu trong bộ đệm cần được hiển thị, lúc này nhập một số thông số tương ứng của cửa sổ để hoàn tất việc chuẩn bị hiển thị video. (2) Hiển thị video. Bất kể đó là hình ảnh cục bộ hay hình ảnh từ xa, chức năng chức năng hiển thị sẽ được sử dụng để nhận hỗ trợ. Hệ thống này đã thiết kế chuỗi chức năng Render để hỗ trợ các chức năng này, render_CreateRender, render_DrawBuffer và render_ReleaseRender, tương ứng thực hiện việc tạo cửa sổ hiển thị video, hiển thị dữ liệu trong bộ đệm và đưa ra cửa sổ hiển thị video. Khi hình ảnh video được hiển thị, vẫn cần sử dụng giao diện DirectDraw để hỗ trợ hoàn thành.
2.3.2 Phát lại âm thanh
Để phát lại âm thanh, trước tiên bạn nên tạo một đối tượng DirectSound, sau đó điền vào cấu trúc DSBUFFERDESC (cấu trúc này chứa thông tin quan trọng trong bộ đệm). Cái khó của việc phát âm thanh DirectSound là xử lý vùng lưu trữ đệm Liên kết chính là thao tác khóa vùng lưu trữ đệm, để đảm bảo âm thanh phát liên tục cần phải liên tục lặp dữ liệu bộ nhớ đệm. Khi âm thanh đang phát, "con trỏ đọc" chịu trách nhiệm đọc dữ liệu tiếp tục di chuyển về phía trước theo tiến trình đọc. Khi nó di chuyển đến vị trí cuối của không gian lưu trữ, nó sẽ nhảy đến vị trí bắt đầu của vùng lưu trữ bộ đệm để tiếp tục thao tác đọc. "Con trỏ ghi" của dữ liệu được thêm vào phải trễ hơn "con trỏ đọc" của dữ liệu phát lại. Chỉ bằng cách này, việc phát lại mới nhất quán. Trong hoạt động thực tế, việc đặt điểm thông báo là nơi dễ xảy ra lỗi hơn. Trong DirectSound, chức năng SetNotificationPositions của cấu trúc LPDIRECTSOUNDNOTIFY chịu trách nhiệm thiết lập các điểm thông báo. Khi xác định điểm thông báo, bạn cần đặt cấu trúc DSBPOSITIONNOTIFY (lưu trữ độ lệch của điểm thông báo từ vị trí bắt đầu bộ nhớ và xử lý thông báo thời gian hệ thống). Khi con trỏ chịu trách nhiệm phát đến vị trí bù của thông báo, chương trình sẽ tạo ra sự kiện, lúc này hàm Lock được gọi để khóa vị trí của con trỏ ghi, sau đó bắt đầu thao tác ghi. Độ dài của dữ liệu được viết là hai điểm thông báo. Phân cụm thực tế. Sau khi dữ liệu được ghi, bộ đệm cần được mở khóa. Khi thực hiện trộn và phát lại âm thanh, một đối tượng IDirectSound cần được tạo. Đồng thời, DirectSound tự động tạo bộ đệm chính, nhưng bộ đệm phụ cần được tạo độc lập. Khi gọi bộ đệm phụ, khóa và mở khóa, cơ chế và cơ chế thông báo cũng nên được sử dụng để hỗ trợ hoàn thành.
2.4 Kiểm tra Công cụ AV
Thử nghiệm video và âm thanh mạng LAN so sánh và phân tích chương trình thử nghiệm của công cụ âm thanh và video này và công cụ video thương mại. Về hình ảnh, các mục kiểm tra bao gồm chất lượng hình ảnh, băng thông và mức sử dụng CPU. Về phần nói, các bài kiểm tra chỉ mang tính chất nghe chủ quan. Phân tích hiệu ứng kiểm tra hình ảnh: Trong thử nghiệm mạng LAN, khi băng thông mạng được đảm bảo thì chất lượng hình ảnh tốt hơn và rõ nét hơn, khi mạng bị nghẽn, hình ảnh thỉnh thoảng gây thiếu thông tin cục bộ nhưng không ảnh hưởng. hiệu ứng hình ảnh. Phân tích hiệu ứng kiểm tra giọng nói: Trong kiểm tra mạng cục bộ, khi băng thông mạng được đảm bảo, chất lượng âm thanh tốt hơn và âm thanh cũng rất mượt mà, khi mạng bị tắc nghẽn, âm thanh thỉnh thoảng sẽ bị gián đoạn, nhưng không. ảnh hưởng đến hiệu ứng nghe. Đối với loại bỏ tiếng vọng, khi độ trễ mạng nhỏ, tác dụng loại bỏ tiếng vọng của công cụ này rõ ràng hơn.
3. Kết luận
Tóm lại, thiết kế động cơ đáp ứng các yêu cầu và có thể cung cấp các dịch vụ nghe nhìn thời gian thực, hiệu quả và ổn định.
người giới thiệu
  [1] Liu Yiwei. Lựa chọn trường hợp thực tế cho dự án phát triển âm thanh / video Visual C ++[M]Nhà xuất bản Bưu chính Viễn thông Nhân dân, 2004.
  [2] Jorn Ostermann, Jan Bormans, Peter list, Detlev Marpe, Matthias Narroschke,
Fernando Pereira, Thomas Stockhammer, Thomas Wedi. Mã hóa video bằng H.264 / AVC: Công cụ, Hiệu suất và Độ phức tạp[J].IEEE MẠCH VÀ HỆ THỐNG TẠP CHÍ QUÝ 1 NĂM 2004.
  [3] Bi Houjie. Một thế hệ video mới Bài viết này được cung cấp bởi wWw.DYlw.net, dịch vụ viết và viết và xuất bản chuyên nghiệp trên giấy đầu tiên, chào mừng bạn đến với dYLW.nETTiêu chuẩn mã hóa nén — H.264 / AVC[M]Nhà xuất bản Bưu chính Viễn thông Nhân dân, 2005.
  [4] E Zhidong. Nghiên cứu về nén video X.264 dựa trên nền tảng windows[D]Đại học Bưu chính Viễn thông Bắc Kinh, 2006.
  [5] Xie Xiaogang, Cai Jun, Chen Qichuan, Ou Jianlin. Thiết kế và triển khai hệ thống VoIP dựa trên Speex Voice Engine[J]Nghiên cứu Ứng dụng Máy tính, 2007 (12).
Ngày nhận: 2015-11-30
Vài nét về tác giả: Zheng Liguo (1964—), nam, sinh ra tại Trường Xuân, tỉnh Cát Lâm, nghiên cứu sinh, tốt nghiệp Đại học Kinh tế Tài chính Cát Lâm, nhà nghiên cứu, hiện đang công tác tại Jilin Animation College, hướng nghiên cứu: nghiên cứu phát triển công nghệ hoạt hình.

Chúc các bạn đọc tin tì so bong da hom nay keo nha cai vui vẻ!

Original text