Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 5963191
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T19:12:46+00:00 2026-05-22T19:12:46+00:00

I recently designed an H.323 / SIP compliant video server (in code at least)

  • 0

I recently designed an H.323/SIP compliant video server (in code at least) fully equipped with a sockets based API which a .NET SDK would use, and a web server, you know … all of that stuff. Anyway, I chose to use OPAL for my call stack and based my architecture loosely upon the design of EKIGA. I even hijacked the serial ports for digital I/O with two outputs and three inputs.

Everything works great from my Linux P.C.. I built my own Linux distribution specifically for the new boards with the Intel Atom processors with 2 GB of RAM. The problem? The Atom processors can’t handle the load of the encoders. The maximum frame rate I ever pull is about 7 FPS on NTSC. It does this regardless of bitrate. I know I don’t have any memory leaks, however the CPU load rises to about 130% between two cores so really about 66% total. I really don’t want to have to change stacks, but I don’t know what I need to do. Are there some lighter weight encoders I can convert into PWLIB plugins?

The problem happens regardless of video encoder, H.261, theora, H.263+, etc… What should be my next plan of attack?

Update:

OK, so I think my next move is going to be to find a very low profile PCIe GPU that is OpenGL compatible; it needs to lay parallel to the motherboard. How can I do that? Also, am I barking up the wrong tree? I am just a programmer, so please pardon my ignorance.

Additional question:

Assuming that I get another board with a GPU. How do I make sure that the encoding is done on the GPU and not on the CPU? Is this managed by the OS and the driver? Do I need to write special code to do so? Also, it seems to me that the main function of the GPU is in rendering and output, does it also manage actual transforms and encoding? A good book recommendation would be nice.

More information:

I suspect now that the GPU is not the problem. I think it may have something to do with the temporal spatial tradeoff. I mounted the flash on my overclocked i7 950 and had the same exact problem. I discovered that the framerate drops on motion, but that if there is no motion then I can keep a high framerate. I also talked to one of the architects at OPAL VoIP and they also doubt that the GPU is the problem. What else could the problem be?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T19:12:48+00:00Added an answer on May 22, 2026 at 7:12 pm

    This is the time for microptimisation: Time to look carefully at your inner loops.

    You need to figure out which inner loops matter, and then look carefully at how you can get the most throughput. You can also do a sanity check: Can the machine really do what you want to do? Eg. if you need to do n multiple/accumulate operations and you have n/3 cycles, there is a basic problem and you need to do something else.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Recently I tried to explain some poorly designed code to my project manager. All
Recently the security team on my project released a secure code guidelines document, designed
I had some site templates designed for me recently. I got the final HTML
I've recently inherited the job of maintaining a database that wasn't designed very well
Recently, I started changing some of our applications to support MS SQL Server as
Recently we got a new server at the office purely for testing purposes. It
I have recently designed a web application that I would like to write in
Recently I've been trying to restructure an old database that was not designed with
I run a forum designed to support an international mathematics group. I've recently switched
I recently bought a new web server 2008 for our company and require a

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.